From 35acf6c84b164813f483773872d11ea9321e6b37 Mon Sep 17 00:00:00 2001 From: Masterain98 Date: Tue, 28 Nov 2023 07:04:55 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20DGP-Stud?= =?UTF-8?q?io/Snap.Hutao.Docs@5791ed717a1f8c388cdf0e184f3ac060d80dc6d1=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 6 +++--- .../{404.html-73628d5c.js => 404.html-887cec77.js} | 2 +- .../{FAQ.html-dd5de6e3.js => FAQ.html-414ac22f.js} | 2 +- .../{FAQ.html-2df9b9a2.js => FAQ.html-7f0963c6.js} | 2 +- ...ha-system-and-export-principal.html-160e18ef.js} | 2 +- ...ha-system-and-export-principal.html-bfc5bd6f.js} | 2 +- ...ml-c51f91b4.js => achievements.html-06dd492a.js} | 2 +- ...ml-a2f7d03f.js => achievements.html-0de1eff5.js} | 2 +- assets/{app-8966c29b.js => app-5a96e1e2.js} | 4 ++-- ...html-23f07cf7.js => bug-report.html-6dbadeb5.js} | 2 +- ...html-690a4891.js => bug-report.html-f5518e52.js} | 2 +- ...-9b06863f.js => character-data.html-3b2a78c6.js} | 2 +- ...-0e2a5520.js => character-data.html-49915f74.js} | 2 +- ...-1c3e2191.js => character-wiki.html-32a83ab1.js} | 2 +- ...-1a49a85c.js => character-wiki.html-9436f4de.js} | 2 +- assets/community.html-1c109378.js | 1 - ....html-f8bc6215.js => community.html-417cf11c.js} | 2 +- ....html-6555cfd3.js => community.html-6382b9ab.js} | 2 +- assets/community.html-ca7edab2.js | 1 + ...{component-ee6bd77b.js => component-638e0776.js} | 2 +- ...html-d0274f20.js => contribute.html-54af88d0.js} | 2 +- ...html-70e3d28c.js => contribute.html-e1851f90.js} | 2 +- ....html-1f8f954a.js => dashboard.html-26c28184.js} | 2 +- ....html-877fc948.js => dashboard.html-83ef77ec.js} | 2 +- ...html-cc0594b5.js => dependency.html-0fd09a7f.js} | 2 +- ...html-0db61041.js => dependency.html-f161842e.js} | 2 +- ...ml-80517d09.js => develop-plan.html-08ab6a3f.js} | 2 +- ...ml-95024404.js => develop-plan.html-1a88a516.js} | 2 +- ...html-d3fe7c53.js => exceptions.html-40258713.js} | 2 +- ...html-fc4790dc.js => exceptions.html-f92d5379.js} | 2 +- ...l-3ffa01a8.js => game-launcher.html-50a78294.js} | 2 +- ...l-904f564a.js => game-launcher.html-a55f58e7.js} | 2 +- ...en-cookie-from-the-third-party.html-48dcba2c.js} | 2 +- ...en-cookie-from-the-third-party.html-c6b7387c.js} | 2 +- ....html-c6aa20fe.js => hutao-API.html-0b11e24f.js} | 2 +- ....html-265d153a.js => hutao-API.html-7018cba6.js} | 2 +- ...-5f75f3e0.js => hutao-settings.html-e7324425.js} | 2 +- ...-0972e72a.js => hutao-settings.html-fc06a94c.js} | 2 +- ...{i18n.html-36f51d1e.js => i18n.html-0cf3ba2c.js} | 2 +- ...{i18n.html-6ae0b651.js => i18n.html-ea3f12cc.js} | 2 +- ...ndex.html-97c29d40.js => index.html-1b5b714a.js} | 2 +- ...ndex.html-c63d8593.js => index.html-1c71d3f9.js} | 2 +- ...ndex.html-25a8e1be.js => index.html-41a05330.js} | 2 +- ...ndex.html-cead7bed.js => index.html-45dede9b.js} | 2 +- ...ndex.html-e4c3aa9e.js => index.html-619b8ca3.js} | 2 +- ...ndex.html-9b2dfc89.js => index.html-7cc8179e.js} | 2 +- ...ndex.html-07883274.js => index.html-8ee577f1.js} | 2 +- ...ndex.html-0c692529.js => index.html-a55c6bb9.js} | 2 +- ...ndex.html-08181d34.js => index.html-b2424ddd.js} | 2 +- ...ndex.html-99346794.js => index.html-d56d80a3.js} | 2 +- ...ndex.html-f72bced7.js => index.html-f7d0e723.js} | 2 +- ...tml-7adae529.js => known-issue.html-6e4b2dbb.js} | 2 +- ...tml-ea460e26.js => known-issue.html-928c6706.js} | 2 +- ...{menu.html-5943d5ab.js => menu.html-4e298123.js} | 2 +- ...{menu.html-96b70279.js => menu.html-940f952e.js} | 2 +- ...4bd06.js => mhy-account-switch.html-84159f63.js} | 2 +- ...df260.js => mhy-account-switch.html-866591ed.js} | 2 +- ...ml-3aaff82c.js => monster-wiki.html-b4a92c1c.js} | 2 +- ...ml-e5fc1b84.js => monster-wiki.html-e22d8ce1.js} | 2 +- ...m.html-b4ee221c.js => platform.html-77fb71fa.js} | 2 +- ...m.html-36392819.js => platform.html-cb36bf71.js} | 2 +- ...-8f872be8.js => privacy-notice.html-b62d63cc.js} | 2 +- ...-0f688115.js => privacy-notice.html-f461657a.js} | 2 +- ...ct.html-8bb151df.js => project.html-29490bdd.js} | 2 +- ...ct.html-c2c3c465.js => project.html-877937ff.js} | 2 +- ...tml-7495b37d.js => quick-start.html-2537d0db.js} | 2 +- ...tml-5b6055dc.js => quick-start.html-e4021577.js} | 2 +- ...25aed809.js => real-time-notes.html-5f5b5c06.js} | 2 +- ...de90b20c.js => real-time-notes.html-c14ac987.js} | 2 +- ...etup.html-aafce36e.js => setup.html-0a76845b.js} | 2 +- ...etup.html-a545afac.js => setup.html-0d692030.js} | 2 +- ....html-f0d36725.js => side-load.html-e2489460.js} | 2 +- ....html-503e3506.js => side-load.html-ff763136.js} | 2 +- ...ml-b1a3dcce.js => star-request.html-87e9c10d.js} | 2 +- ...ml-c91f6d76.js => star-request.html-9881dff3.js} | 2 +- ...html-cbffe867.js => symposium1.html-f64f4f79.js} | 2 +- ...html-46c6280f.js => symposium2.html-159d4eab.js} | 2 +- .../{tos.html-1c0a6890.js => tos.html-324ae865.js} | 2 +- .../{tos.html-ba544e7e.js => tos.html-e6f84201.js} | 2 +- ....html-5214283b.js => uninstall.html-21af1d57.js} | 2 +- ....html-4c4795fe.js => uninstall.html-aa4818ea.js} | 2 +- ...html-3e82a157.js => update-log.html-180bffb9.js} | 2 +- ...html-dbfb081f.js => update-log.html-e12012a1.js} | 2 +- ...tml-dcbaafb6.js => weapon-wiki.html-a2df1cbf.js} | 2 +- ...tml-0edcd288.js => weapon-wiki.html-c611d75d.js} | 2 +- ...tml-fba13e79.js => wish-export.html-60af732a.js} | 2 +- ...tml-0565104e.js => wish-export.html-c0178db9.js} | 2 +- en/advanced/FAQ.html | 4 ++-- en/advanced/Gacha-system-and-export-principal.html | 4 ++-- en/advanced/dependency.html | 4 ++-- en/advanced/exceptions.html | 4 ++-- .../get-stoken-cookie-from-the-third-party.html | 4 ++-- en/advanced/index.html | 4 ++-- en/advanced/known-issue.html | 4 ++-- en/advanced/uninstall.html | 4 ++-- en/community.html | 4 ++-- en/development/contribute.html | 4 ++-- en/development/index.html | 4 ++-- en/development/platform.html | 4 ++-- en/features/achievements.html | 4 ++-- en/features/character-data.html | 4 ++-- en/features/character-wiki.html | 4 ++-- en/features/dashboard.html | 4 ++-- en/features/develop-plan.html | 4 ++-- en/features/game-launcher.html | 4 ++-- en/features/hutao-API.html | 4 ++-- en/features/hutao-settings.html | 4 ++-- en/features/index.html | 4 ++-- en/features/mhy-account-switch.html | 4 ++-- en/features/monster-wiki.html | 4 ++-- en/features/real-time-notes.html | 4 ++-- en/features/setup.html | 4 ++-- en/features/weapon-wiki.html | 4 ++-- en/features/wish-export.html | 4 ++-- en/i18n.html | 4 ++-- en/index.html | 4 ++-- en/menu.html | 4 ++-- en/project.html | 4 ++-- en/quick-start.html | 4 ++-- en/rss.xml | 4 ++-- en/side-load.html | 4 ++-- en/star-request.html | 4 ++-- en/statements/bug-report.html | 4 ++-- en/statements/index.html | 4 ++-- en/statements/privacy-notice.html | 4 ++-- en/statements/tos.html | 4 ++-- en/statements/update-log.html | 4 ++-- index.html | 4 ++-- rss.xml | 4 ++-- service-worker.js | 2 +- service-worker.js.map | 2 +- sitemap.xml | 2 +- zh/advanced/FAQ.html | 4 ++-- zh/advanced/Gacha-system-and-export-principal.html | 4 ++-- zh/advanced/dependency.html | 4 ++-- zh/advanced/exceptions.html | 4 ++-- .../get-stoken-cookie-from-the-third-party.html | 4 ++-- zh/advanced/index.html | 4 ++-- zh/advanced/known-issue.html | 4 ++-- zh/advanced/uninstall.html | 4 ++-- zh/community.html | 8 ++++---- zh/development/contribute.html | 4 ++-- zh/development/index.html | 4 ++-- zh/development/platform.html | 4 ++-- zh/development/symposium1.html | 4 ++-- zh/development/symposium2.html | 4 ++-- zh/features/achievements.html | 4 ++-- zh/features/character-data.html | 4 ++-- zh/features/character-wiki.html | 4 ++-- zh/features/dashboard.html | 4 ++-- zh/features/develop-plan.html | 4 ++-- zh/features/game-launcher.html | 4 ++-- zh/features/hutao-API.html | 4 ++-- zh/features/hutao-settings.html | 4 ++-- zh/features/index.html | 4 ++-- zh/features/mhy-account-switch.html | 4 ++-- zh/features/monster-wiki.html | 4 ++-- zh/features/real-time-notes.html | 4 ++-- zh/features/setup.html | 4 ++-- zh/features/weapon-wiki.html | 4 ++-- zh/features/wish-export.html | 4 ++-- zh/i18n.html | 4 ++-- zh/index.html | 4 ++-- zh/menu.html | 4 ++-- zh/project.html | 4 ++-- zh/quick-start.html | 4 ++-- zh/rss.xml | 13 +++++++++---- zh/side-load.html | 4 ++-- zh/star-request.html | 4 ++-- zh/statements/bug-report.html | 4 ++-- zh/statements/index.html | 4 ++-- zh/statements/privacy-notice.html | 4 ++-- zh/statements/tos.html | 4 ++-- zh/statements/update-log.html | 4 ++-- 174 files changed, 269 insertions(+), 264 deletions(-) rename assets/{404.html-73628d5c.js => 404.html-887cec77.js} (71%) rename assets/{FAQ.html-dd5de6e3.js => FAQ.html-414ac22f.js} (99%) rename assets/{FAQ.html-2df9b9a2.js => FAQ.html-7f0963c6.js} (99%) rename assets/{Gacha-system-and-export-principal.html-a2c73de6.js => Gacha-system-and-export-principal.html-160e18ef.js} (98%) rename assets/{Gacha-system-and-export-principal.html-340b7e28.js => Gacha-system-and-export-principal.html-bfc5bd6f.js} (98%) rename assets/{achievements.html-c51f91b4.js => achievements.html-06dd492a.js} (94%) rename assets/{achievements.html-a2f7d03f.js => achievements.html-0de1eff5.js} (94%) rename assets/{app-8966c29b.js => app-5a96e1e2.js} (96%) rename assets/{bug-report.html-23f07cf7.js => bug-report.html-6dbadeb5.js} (98%) rename assets/{bug-report.html-690a4891.js => bug-report.html-f5518e52.js} (98%) rename assets/{character-data.html-9b06863f.js => character-data.html-3b2a78c6.js} (98%) rename assets/{character-data.html-0e2a5520.js => character-data.html-49915f74.js} (98%) rename assets/{character-wiki.html-1c3e2191.js => character-wiki.html-32a83ab1.js} (97%) rename assets/{character-wiki.html-1a49a85c.js => character-wiki.html-9436f4de.js} (97%) delete mode 100644 assets/community.html-1c109378.js rename assets/{community.html-f8bc6215.js => community.html-417cf11c.js} (80%) rename assets/{community.html-6555cfd3.js => community.html-6382b9ab.js} (98%) create mode 100644 assets/community.html-ca7edab2.js rename assets/{component-ee6bd77b.js => component-638e0776.js} (99%) rename assets/{contribute.html-d0274f20.js => contribute.html-54af88d0.js} (97%) rename assets/{contribute.html-70e3d28c.js => contribute.html-e1851f90.js} (97%) rename assets/{dashboard.html-1f8f954a.js => dashboard.html-26c28184.js} (96%) rename assets/{dashboard.html-877fc948.js => dashboard.html-83ef77ec.js} (96%) rename assets/{dependency.html-cc0594b5.js => dependency.html-0fd09a7f.js} (95%) rename assets/{dependency.html-0db61041.js => dependency.html-f161842e.js} (95%) rename assets/{develop-plan.html-80517d09.js => develop-plan.html-08ab6a3f.js} (98%) rename assets/{develop-plan.html-95024404.js => develop-plan.html-1a88a516.js} (97%) rename assets/{exceptions.html-d3fe7c53.js => exceptions.html-40258713.js} (98%) rename assets/{exceptions.html-fc4790dc.js => exceptions.html-f92d5379.js} (98%) rename assets/{game-launcher.html-3ffa01a8.js => game-launcher.html-50a78294.js} (99%) rename assets/{game-launcher.html-904f564a.js => game-launcher.html-a55f58e7.js} (99%) rename assets/{get-stoken-cookie-from-the-third-party.html-3f1836be.js => get-stoken-cookie-from-the-third-party.html-48dcba2c.js} (96%) rename assets/{get-stoken-cookie-from-the-third-party.html-032b8690.js => get-stoken-cookie-from-the-third-party.html-c6b7387c.js} (96%) rename assets/{hutao-API.html-c6aa20fe.js => hutao-API.html-0b11e24f.js} (99%) rename assets/{hutao-API.html-265d153a.js => hutao-API.html-7018cba6.js} (99%) rename assets/{hutao-settings.html-5f75f3e0.js => hutao-settings.html-e7324425.js} (99%) rename assets/{hutao-settings.html-0972e72a.js => hutao-settings.html-fc06a94c.js} (99%) rename assets/{i18n.html-36f51d1e.js => i18n.html-0cf3ba2c.js} (98%) rename assets/{i18n.html-6ae0b651.js => i18n.html-ea3f12cc.js} (98%) rename assets/{index.html-97c29d40.js => index.html-1b5b714a.js} (85%) rename assets/{index.html-c63d8593.js => index.html-1c71d3f9.js} (85%) rename assets/{index.html-25a8e1be.js => index.html-41a05330.js} (85%) rename assets/{index.html-cead7bed.js => index.html-45dede9b.js} (96%) rename assets/{index.html-e4c3aa9e.js => index.html-619b8ca3.js} (92%) rename assets/{index.html-9b2dfc89.js => index.html-7cc8179e.js} (84%) rename assets/{index.html-07883274.js => index.html-8ee577f1.js} (84%) rename assets/{index.html-0c692529.js => index.html-a55c6bb9.js} (86%) rename assets/{index.html-08181d34.js => index.html-b2424ddd.js} (96%) rename assets/{index.html-99346794.js => index.html-d56d80a3.js} (85%) rename assets/{index.html-f72bced7.js => index.html-f7d0e723.js} (85%) rename assets/{known-issue.html-7adae529.js => known-issue.html-6e4b2dbb.js} (96%) rename assets/{known-issue.html-ea460e26.js => known-issue.html-928c6706.js} (96%) rename assets/{menu.html-5943d5ab.js => menu.html-4e298123.js} (86%) rename assets/{menu.html-96b70279.js => menu.html-940f952e.js} (85%) rename assets/{mhy-account-switch.html-e484bd06.js => mhy-account-switch.html-84159f63.js} (98%) rename assets/{mhy-account-switch.html-d22df260.js => mhy-account-switch.html-866591ed.js} (98%) rename assets/{monster-wiki.html-3aaff82c.js => monster-wiki.html-b4a92c1c.js} (94%) rename assets/{monster-wiki.html-e5fc1b84.js => monster-wiki.html-e22d8ce1.js} (95%) rename assets/{platform.html-b4ee221c.js => platform.html-77fb71fa.js} (96%) rename assets/{platform.html-36392819.js => platform.html-cb36bf71.js} (96%) rename assets/{privacy-notice.html-8f872be8.js => privacy-notice.html-b62d63cc.js} (97%) rename assets/{privacy-notice.html-0f688115.js => privacy-notice.html-f461657a.js} (97%) rename assets/{project.html-8bb151df.js => project.html-29490bdd.js} (97%) rename assets/{project.html-c2c3c465.js => project.html-877937ff.js} (97%) rename assets/{quick-start.html-7495b37d.js => quick-start.html-2537d0db.js} (99%) rename assets/{quick-start.html-5b6055dc.js => quick-start.html-e4021577.js} (99%) rename assets/{real-time-notes.html-25aed809.js => real-time-notes.html-5f5b5c06.js} (98%) rename assets/{real-time-notes.html-de90b20c.js => real-time-notes.html-c14ac987.js} (98%) rename assets/{setup.html-aafce36e.js => setup.html-0a76845b.js} (96%) rename assets/{setup.html-a545afac.js => setup.html-0d692030.js} (95%) rename assets/{side-load.html-f0d36725.js => side-load.html-e2489460.js} (96%) rename assets/{side-load.html-503e3506.js => side-load.html-ff763136.js} (96%) rename assets/{star-request.html-b1a3dcce.js => star-request.html-87e9c10d.js} (96%) rename assets/{star-request.html-c91f6d76.js => star-request.html-9881dff3.js} (96%) rename assets/{symposium1.html-cbffe867.js => symposium1.html-f64f4f79.js} (98%) rename assets/{symposium2.html-46c6280f.js => symposium2.html-159d4eab.js} (96%) rename assets/{tos.html-1c0a6890.js => tos.html-324ae865.js} (99%) rename assets/{tos.html-ba544e7e.js => tos.html-e6f84201.js} (99%) rename assets/{uninstall.html-5214283b.js => uninstall.html-21af1d57.js} (97%) rename assets/{uninstall.html-4c4795fe.js => uninstall.html-aa4818ea.js} (97%) rename assets/{update-log.html-3e82a157.js => update-log.html-180bffb9.js} (99%) rename assets/{update-log.html-dbfb081f.js => update-log.html-e12012a1.js} (99%) rename assets/{weapon-wiki.html-dcbaafb6.js => weapon-wiki.html-a2df1cbf.js} (95%) rename assets/{weapon-wiki.html-0edcd288.js => weapon-wiki.html-c611d75d.js} (95%) rename assets/{wish-export.html-fba13e79.js => wish-export.html-60af732a.js} (99%) rename assets/{wish-export.html-0565104e.js => wish-export.html-c0178db9.js} (99%) diff --git a/404.html b/404.html index 0d07cf6f9..53a43e724 100644 --- a/404.html +++ b/404.html @@ -31,10 +31,10 @@ } - + -
Skip to main content

404

Page not found

How did we get here?

- +
Skip to main content

404

Page not found

Looks like we've got some broken links.

+ diff --git a/assets/404.html-73628d5c.js b/assets/404.html-887cec77.js similarity index 71% rename from assets/404.html-73628d5c.js rename to assets/404.html-887cec77.js index 4b32bf917..77151d421 100644 --- a/assets/404.html-73628d5c.js +++ b/assets/404.html-887cec77.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as t,c}from"./app-8966c29b.js";const o={};function r(_,n){return t(),c("div")}const f=e(o,[["render",r],["__file","404.html.vue"]]);export{f as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as t,c}from"./app-5a96e1e2.js";const o={};function r(_,n){return t(),c("div")}const f=e(o,[["render",r],["__file","404.html.vue"]]);export{f as default}; diff --git a/assets/FAQ.html-dd5de6e3.js b/assets/FAQ.html-414ac22f.js similarity index 99% rename from assets/FAQ.html-dd5de6e3.js rename to assets/FAQ.html-414ac22f.js index 7582c8e0d..068613bad 100644 --- a/assets/FAQ.html-dd5de6e3.js +++ b/assets/FAQ.html-414ac22f.js @@ -1,4 +1,4 @@ -import{_ as h}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as u,c as _,a as e,b as i,d as n,w as l,e as o}from"./app-8966c29b.js";const p={},m=e("h1",{id:"常见问题",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#常见问题","aria-hidden":"true"},"#"),i(" 常见问题")],-1),b=e("h2",{id:"如何创建胡桃的桌面快捷方式-非管理员模式",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#如何创建胡桃的桌面快捷方式-非管理员模式","aria-hidden":"true"},"#"),i(" 如何创建胡桃的桌面快捷方式(非管理员模式)")],-1),g={class:"hint-container tip"},f=e("p",{class:"hint-container-title"},"社区力量",-1),x={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/12",target:"_blank",rel:"noopener noreferrer"},v=o('

如何添加一个默认以管理员方式运行的快捷方式

自 Snap Hutao 1.7.4 版本起,你可以在程序设置页面中点击创建快捷方式来在桌面上添加一个具有管理员权限的快捷方式

你可以移动这个快捷方式到你想要的地方

如何让胡桃工具箱开机自动启动

',5),k={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/184",target:"_blank",rel:"noopener noreferrer"},S=e("li",null,[i("设置一个"),e("strong",null,"计划任务程序"),i("令上述批处理文件开机自启,或将上述批处理文件加入"),e("strong",null,"启动项"),i("中")],-1),C=e("li",null,"或有其他令胡桃工具箱可开机自启的思路,可自行探索",-1),w=o('

如何通过胡桃工具箱快速地启动游戏

如何通过网络代理使用胡桃工具箱

',3),D=e("h2",{id:"为什么程序会出现乱码现象",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#为什么程序会出现乱码现象","aria-hidden":"true"},"#"),i(" 为什么程序会出现乱码现象")],-1),I=e("li",null,[i("当用户在 Windows 10 下使用胡桃且发现有乱码情况时: "),e("ul",null,[e("li",null,[i("可以下载 "),e("code",null,"Segoe Fluent Icons"),i("字体")]),e("li",null,[i("安装时选择"),e("code",null,"为系统所有用户安装"),i(",即可解决问题")])])],-1),A={href:"https://aka.ms/SegoeFluentIcons",target:"_blank",rel:"noopener noreferrer"},G=e("h2",{id:"为什么会弹出需要使用新应用以打开的对话框",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#为什么会弹出需要使用新应用以打开的对话框","aria-hidden":"true"},"#"),i(" 为什么会弹出需要使用新应用以打开的对话框")],-1),H=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01b3j0eY1g6duBXLJXg_!!1797064093.jpg_.webp",alt:"uninstall-error",loading:"lazy"})],-1),W=e("p",null,[i("如在卸载胡桃工具箱后出现如上图所示的"),e("code",null,"需要使用新应用以打开此 hutao 链接"),i(",说明没有按文档要求在卸载前清除实时便笺定时任务。 请根据文档在设置中清除定时任务后再卸载胡桃工具箱。")],-1),E={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/18",target:"_blank",rel:"noopener noreferrer"},B=e("h2",{id:"为什么米游社帐号登录状态经常失效-添加的帐号消失",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#为什么米游社帐号登录状态经常失效-添加的帐号消失","aria-hidden":"true"},"#"),i(" 为什么米游社帐号登录状态经常失效,添加的帐号消失")],-1),N=e("li",null,"我们通过储存帐号的米游社 Cookie 来维持登录状态。",-1),y=e("li",null,[i("但是当用户在浏览器或其它设备上"),e("strong",null,"注销帐号"),i("后, 维持登录状态的 Cookie 将"),e("strong",null,"失效"),i("。")],-1),z=e("li",null,"这会导致胡桃工具箱上的米游社帐号在启动后被自动移除。",-1),O=e("li",null,"此情况也可能因为网络连接问题导致无法检查 Cookie 有效性,故出现此情况后请优先重启胡桃工具箱。",-1),U=e("li",null,"自 1.4.15 版本起,你可以通过在帐号面板中刷新 Cookie 来刷新登录状态",-1),F=o('

为什么游戏登录状态会失效,导致切换帐号功能无效

为什么程序会提示注册计划任务失败

使用管理员模式使用一次实时便笺后,胡桃的任务计划会被以管理员权限创建。当再次以非管理员模式启动胡桃时,程序在修改计划任务时会缺少权限。 继续使用管理员模式即可解决该问题。

使用 MSIX 安装包安装时进度卡在正在安装所需框架

',5),R=e("li",null,"请确保 Windows Update 已启用;胡桃工具箱升级同样依赖于 Windows Update 组件",-1),Y={href:"https://d.hut.ao/releases/Dependency",target:"_blank",rel:"noopener noreferrer"},q=o('

无法使用管理员模式启动胡桃工具箱

该问题仅存在于 Windows 10 低于 22H2 的版本中

转换服务器失败后如何恢复游戏程序

功能原理说明

胡桃客户端始终只从原神官方服务器下载转换服务器需要的文件,这保证了用户不会下载到被第三方篡改的危险程序。 如果你在转换到某一种目标服务器时频繁因网络问题而转换失败,则意味你的网络到目标的原神官方服务器连接质量差。 你应检查你的互联网连接、联系你的运营商或向专业人士咨询以保证你的正常使用体验。

在转换原神服务器时,如果胡桃客户端意外退出或由于用户侧网络问题会导致转换流程中断并进而导致原神客户端损坏。 此时胡桃工具箱会提示 游戏路径不正确,前往设置更改游戏路径,而游戏路径下此时可能不存在任何游戏主程序文件,导致用户无法正确设置。

在这种情况下,用户可以执行下面的步骤手动将胡桃客户端备份的游戏主程序恢复至原本的游戏目录中直接使用官方启动器修复游戏

在开始手动恢复游戏程序之前,你需要知道以下基本知识:

  1. 关于游戏客户端
    1. 国服原神客户端目录下有名为 YuanShen.exe 的游戏主程序和名为 YuanShen_Data 的游戏程序目录
    2. 国际服原神客户端目录下有名为 GenshinImpact.exe 的游戏主程序和名为 GenshinImpact_Data 的游戏程序目录
  2. 关于胡桃客户端转换服务器功能下的备份步骤
    1. 在转换服务器前,胡桃客户端会备份当前游戏客户端的主程序以及国服/国际服客户端专有的一些组件程序,即 exe 主程序和 _Data 目录
    2. 备份文件储存于当前 Windows 用户下的文档库中的 Hutao/ServerCache 目录下,即 %userprofile%/Documents/Hutao/ServerCache

手动恢复游戏主程序步骤(此处以国际服转国服为例):

  1. 进入胡桃用于备份游戏主程序的 ServerCache 目录,此时该目录下存放着转换前的游戏程序备份文件,即 GenshinImpact.exeGenshinImpact_Data
  2. 进入游戏主程序目录,此时既没有 YuanShen.exe 也没有 GenshinImpact.exe,并且有一个国服目录 YuanShen_Data
  3. 手动将游戏主程序目录下的 YuanShen_Data 文件夹更名为 GenshinImpact_Data
  4. 手动将 Hutao/ServerCache 下的 GenshinImpact.exeGenshinImpact_Data 复制回游戏主程序目录中并覆盖当前已有文件
  5. 此时你的游戏客户端应已恢复正常
  6. 重新进入胡桃客户端的 游戏启动器 界面,游戏路径不正确 错误应不再出现,且服务器设置一栏为空。此时,你可以选择原本的服务器版本(国际服) 并立刻启动游戏,或选择新的服务器目标(国服)并转换客户端版本。

如何恢复 config.ini 配置文件

在某些特定条件下(如游戏目录权限错误),config.ini 文件会在转服后丢失。这会造成无法进入胡桃工具箱高级启动器界面和游戏无法正常启动。

在判断你当前的游戏版本后,你可以在游戏目录 %your_launcher_folder%/Genshin Impact Game/ 下手动创建并填入对应的配置文件,下面是常见的配置文件内容。

',14),L=e("div",{class:"language-text line-numbers-mode","data-ext":"text"},[e("pre",{class:"language-text"},[e("code",null,`[General] +import{_ as h}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as u,c as _,a as e,b as i,d as n,w as l,e as o}from"./app-5a96e1e2.js";const p={},m=e("h1",{id:"常见问题",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#常见问题","aria-hidden":"true"},"#"),i(" 常见问题")],-1),b=e("h2",{id:"如何创建胡桃的桌面快捷方式-非管理员模式",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#如何创建胡桃的桌面快捷方式-非管理员模式","aria-hidden":"true"},"#"),i(" 如何创建胡桃的桌面快捷方式(非管理员模式)")],-1),g={class:"hint-container tip"},f=e("p",{class:"hint-container-title"},"社区力量",-1),x={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/12",target:"_blank",rel:"noopener noreferrer"},v=o('

如何添加一个默认以管理员方式运行的快捷方式

自 Snap Hutao 1.7.4 版本起,你可以在程序设置页面中点击创建快捷方式来在桌面上添加一个具有管理员权限的快捷方式

你可以移动这个快捷方式到你想要的地方

如何让胡桃工具箱开机自动启动

',5),k={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/184",target:"_blank",rel:"noopener noreferrer"},S=e("li",null,[i("设置一个"),e("strong",null,"计划任务程序"),i("令上述批处理文件开机自启,或将上述批处理文件加入"),e("strong",null,"启动项"),i("中")],-1),C=e("li",null,"或有其他令胡桃工具箱可开机自启的思路,可自行探索",-1),w=o('

如何通过胡桃工具箱快速地启动游戏

如何通过网络代理使用胡桃工具箱

',3),D=e("h2",{id:"为什么程序会出现乱码现象",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#为什么程序会出现乱码现象","aria-hidden":"true"},"#"),i(" 为什么程序会出现乱码现象")],-1),I=e("li",null,[i("当用户在 Windows 10 下使用胡桃且发现有乱码情况时: "),e("ul",null,[e("li",null,[i("可以下载 "),e("code",null,"Segoe Fluent Icons"),i("字体")]),e("li",null,[i("安装时选择"),e("code",null,"为系统所有用户安装"),i(",即可解决问题")])])],-1),A={href:"https://aka.ms/SegoeFluentIcons",target:"_blank",rel:"noopener noreferrer"},G=e("h2",{id:"为什么会弹出需要使用新应用以打开的对话框",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#为什么会弹出需要使用新应用以打开的对话框","aria-hidden":"true"},"#"),i(" 为什么会弹出需要使用新应用以打开的对话框")],-1),H=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01b3j0eY1g6duBXLJXg_!!1797064093.jpg_.webp",alt:"uninstall-error",loading:"lazy"})],-1),W=e("p",null,[i("如在卸载胡桃工具箱后出现如上图所示的"),e("code",null,"需要使用新应用以打开此 hutao 链接"),i(",说明没有按文档要求在卸载前清除实时便笺定时任务。 请根据文档在设置中清除定时任务后再卸载胡桃工具箱。")],-1),E={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/18",target:"_blank",rel:"noopener noreferrer"},B=e("h2",{id:"为什么米游社帐号登录状态经常失效-添加的帐号消失",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#为什么米游社帐号登录状态经常失效-添加的帐号消失","aria-hidden":"true"},"#"),i(" 为什么米游社帐号登录状态经常失效,添加的帐号消失")],-1),N=e("li",null,"我们通过储存帐号的米游社 Cookie 来维持登录状态。",-1),y=e("li",null,[i("但是当用户在浏览器或其它设备上"),e("strong",null,"注销帐号"),i("后, 维持登录状态的 Cookie 将"),e("strong",null,"失效"),i("。")],-1),z=e("li",null,"这会导致胡桃工具箱上的米游社帐号在启动后被自动移除。",-1),O=e("li",null,"此情况也可能因为网络连接问题导致无法检查 Cookie 有效性,故出现此情况后请优先重启胡桃工具箱。",-1),U=e("li",null,"自 1.4.15 版本起,你可以通过在帐号面板中刷新 Cookie 来刷新登录状态",-1),F=o('

为什么游戏登录状态会失效,导致切换帐号功能无效

为什么程序会提示注册计划任务失败

使用管理员模式使用一次实时便笺后,胡桃的任务计划会被以管理员权限创建。当再次以非管理员模式启动胡桃时,程序在修改计划任务时会缺少权限。 继续使用管理员模式即可解决该问题。

使用 MSIX 安装包安装时进度卡在正在安装所需框架

',5),R=e("li",null,"请确保 Windows Update 已启用;胡桃工具箱升级同样依赖于 Windows Update 组件",-1),Y={href:"https://d.hut.ao/releases/Dependency",target:"_blank",rel:"noopener noreferrer"},q=o('

无法使用管理员模式启动胡桃工具箱

该问题仅存在于 Windows 10 低于 22H2 的版本中

转换服务器失败后如何恢复游戏程序

功能原理说明

胡桃客户端始终只从原神官方服务器下载转换服务器需要的文件,这保证了用户不会下载到被第三方篡改的危险程序。 如果你在转换到某一种目标服务器时频繁因网络问题而转换失败,则意味你的网络到目标的原神官方服务器连接质量差。 你应检查你的互联网连接、联系你的运营商或向专业人士咨询以保证你的正常使用体验。

在转换原神服务器时,如果胡桃客户端意外退出或由于用户侧网络问题会导致转换流程中断并进而导致原神客户端损坏。 此时胡桃工具箱会提示 游戏路径不正确,前往设置更改游戏路径,而游戏路径下此时可能不存在任何游戏主程序文件,导致用户无法正确设置。

在这种情况下,用户可以执行下面的步骤手动将胡桃客户端备份的游戏主程序恢复至原本的游戏目录中直接使用官方启动器修复游戏

在开始手动恢复游戏程序之前,你需要知道以下基本知识:

  1. 关于游戏客户端
    1. 国服原神客户端目录下有名为 YuanShen.exe 的游戏主程序和名为 YuanShen_Data 的游戏程序目录
    2. 国际服原神客户端目录下有名为 GenshinImpact.exe 的游戏主程序和名为 GenshinImpact_Data 的游戏程序目录
  2. 关于胡桃客户端转换服务器功能下的备份步骤
    1. 在转换服务器前,胡桃客户端会备份当前游戏客户端的主程序以及国服/国际服客户端专有的一些组件程序,即 exe 主程序和 _Data 目录
    2. 备份文件储存于当前 Windows 用户下的文档库中的 Hutao/ServerCache 目录下,即 %userprofile%/Documents/Hutao/ServerCache

手动恢复游戏主程序步骤(此处以国际服转国服为例):

  1. 进入胡桃用于备份游戏主程序的 ServerCache 目录,此时该目录下存放着转换前的游戏程序备份文件,即 GenshinImpact.exeGenshinImpact_Data
  2. 进入游戏主程序目录,此时既没有 YuanShen.exe 也没有 GenshinImpact.exe,并且有一个国服目录 YuanShen_Data
  3. 手动将游戏主程序目录下的 YuanShen_Data 文件夹更名为 GenshinImpact_Data
  4. 手动将 Hutao/ServerCache 下的 GenshinImpact.exeGenshinImpact_Data 复制回游戏主程序目录中并覆盖当前已有文件
  5. 此时你的游戏客户端应已恢复正常
  6. 重新进入胡桃客户端的 游戏启动器 界面,游戏路径不正确 错误应不再出现,且服务器设置一栏为空。此时,你可以选择原本的服务器版本(国际服) 并立刻启动游戏,或选择新的服务器目标(国服)并转换客户端版本。

如何恢复 config.ini 配置文件

在某些特定条件下(如游戏目录权限错误),config.ini 文件会在转服后丢失。这会造成无法进入胡桃工具箱高级启动器界面和游戏无法正常启动。

在判断你当前的游戏版本后,你可以在游戏目录 %your_launcher_folder%/Genshin Impact Game/ 下手动创建并填入对应的配置文件,下面是常见的配置文件内容。

',14),L=e("div",{class:"language-text line-numbers-mode","data-ext":"text"},[e("pre",{class:"language-text"},[e("code",null,`[General] channel=1 cps=mihoyo game_version=4.1.0 diff --git a/assets/FAQ.html-2df9b9a2.js b/assets/FAQ.html-7f0963c6.js similarity index 99% rename from assets/FAQ.html-2df9b9a2.js rename to assets/FAQ.html-7f0963c6.js index 568f428e0..ba41961fa 100644 --- a/assets/FAQ.html-2df9b9a2.js +++ b/assets/FAQ.html-7f0963c6.js @@ -1,4 +1,4 @@ -import{_ as u}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as h,c as p,a as e,b as a,d as t,w as o,e as l}from"./app-8966c29b.js";const g={},m=e("h1",{id:"faq",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#faq","aria-hidden":"true"},"#"),a(" FAQ")],-1),f=e("h2",{id:"how-to-create-desktop-shortcut-with-no-admin-privilege",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#how-to-create-desktop-shortcut-with-no-admin-privilege","aria-hidden":"true"},"#"),a(" How to create desktop shortcut (with no admin privilege)")],-1),w={class:"hint-container tip"},b=e("p",{class:"hint-container-title"},"Community Power",-1),v={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/12",target:"_blank",rel:"noopener noreferrer"},k=l('

How to create desktop shortcut with Administrator privilege

Starting from Snap Hutao 1.7.4, you can create a desktop shortcut with Administrator privilege by click Create Desktop Shortcut in the settings page.

You can move this shortcut to any place you need.

How to run Snap Hutao when Windows starts

This is a workaround solution

',6),_={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/184",target:"_blank",rel:"noopener noreferrer"},y=e("li",null,"Create a Scheduled Task, run the bat when Windows startup, or drag it to Windows start folder",-1),S=l('

Use Snap Hutao to quick start the game

Use Snap Hutao with Network Proxy

',3),x=e("h2",{id:"mojibake-in-snap-hutao",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mojibake-in-snap-hutao","aria-hidden":"true"},"#"),a(" Mojibake in Snap Hutao")],-1),H=e("li",null,[a("If you are using Windows 10 and see some button are not display properly "),e("ul",null,[e("li",null,[a("You can download "),e("code",null,"Segoe Fluent Icons"),a(" font")]),e("li",null,"You need to install it for all users")])],-1),C={href:"https://aka.ms/SegoeFluentIcons",target:"_blank",rel:"noopener noreferrer"},A=l('

MiHoYo BBS Account often Lose Login Status

Snap Hutao use saved MiHoYo BBS cookies to maintain login status. If you log out your account in your browser or other device, cookie will become invalid, and Snap Hutao will also be forced to log out, account will be automatically removed.

This problem may also be caused by network error, you should check this first; If it's not caused by network issue, you can use Refresh Cookie in the account panel; You can also remove your account manually and add it back again.

Since October 2022, MiYouShe (Chinese BBS) rapidly increased bot detection and may set users' account as under-risk status, this may cause Snap Hutao failed to check validation of the cookie

Game Account Lose Login Status in the Launcher

Snap Hutao Throws Failed to add Scheduled Task Error

If you are using Administrator privilege to start real-time notes feature, Snap Hutao's scheduled task will be created as Administrator role. When next time edit real-time notes settings without Administrator privilege, the program will have a lack of privilege to edit the settings and throw out this error.

Run Snap Hutao as Administrator to edit your settings to solve this issue.

Stuck at Installing Required Framework when Using MSIX Package to Install

Unable to Run Snap Hutao as Administrator

This issue only occurs in Windows 10 older than 22H2 version

How to Recover config.ini Configuration File

In some particular conditions (such as wrong game folder permission), config.ini may lose after server conversion. This will cause user not able to get into advanced launcher page and launch the game.

After identify the server version on your device, you can manually create and fill the configuration file with the right content. The following are common configurations.

',17),I=e("div",{class:"language-text line-numbers-mode","data-ext":"text"},[e("pre",{class:"language-text"},[e("code",null,`[General] +import{_ as u}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as h,c as p,a as e,b as a,d as t,w as o,e as l}from"./app-5a96e1e2.js";const g={},m=e("h1",{id:"faq",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#faq","aria-hidden":"true"},"#"),a(" FAQ")],-1),f=e("h2",{id:"how-to-create-desktop-shortcut-with-no-admin-privilege",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#how-to-create-desktop-shortcut-with-no-admin-privilege","aria-hidden":"true"},"#"),a(" How to create desktop shortcut (with no admin privilege)")],-1),w={class:"hint-container tip"},b=e("p",{class:"hint-container-title"},"Community Power",-1),v={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/12",target:"_blank",rel:"noopener noreferrer"},k=l('

How to create desktop shortcut with Administrator privilege

Starting from Snap Hutao 1.7.4, you can create a desktop shortcut with Administrator privilege by click Create Desktop Shortcut in the settings page.

You can move this shortcut to any place you need.

How to run Snap Hutao when Windows starts

This is a workaround solution

',6),_={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/184",target:"_blank",rel:"noopener noreferrer"},y=e("li",null,"Create a Scheduled Task, run the bat when Windows startup, or drag it to Windows start folder",-1),S=l('

Use Snap Hutao to quick start the game

Use Snap Hutao with Network Proxy

',3),x=e("h2",{id:"mojibake-in-snap-hutao",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#mojibake-in-snap-hutao","aria-hidden":"true"},"#"),a(" Mojibake in Snap Hutao")],-1),H=e("li",null,[a("If you are using Windows 10 and see some button are not display properly "),e("ul",null,[e("li",null,[a("You can download "),e("code",null,"Segoe Fluent Icons"),a(" font")]),e("li",null,"You need to install it for all users")])],-1),C={href:"https://aka.ms/SegoeFluentIcons",target:"_blank",rel:"noopener noreferrer"},A=l('

MiHoYo BBS Account often Lose Login Status

Snap Hutao use saved MiHoYo BBS cookies to maintain login status. If you log out your account in your browser or other device, cookie will become invalid, and Snap Hutao will also be forced to log out, account will be automatically removed.

This problem may also be caused by network error, you should check this first; If it's not caused by network issue, you can use Refresh Cookie in the account panel; You can also remove your account manually and add it back again.

Since October 2022, MiYouShe (Chinese BBS) rapidly increased bot detection and may set users' account as under-risk status, this may cause Snap Hutao failed to check validation of the cookie

Game Account Lose Login Status in the Launcher

Snap Hutao Throws Failed to add Scheduled Task Error

If you are using Administrator privilege to start real-time notes feature, Snap Hutao's scheduled task will be created as Administrator role. When next time edit real-time notes settings without Administrator privilege, the program will have a lack of privilege to edit the settings and throw out this error.

Run Snap Hutao as Administrator to edit your settings to solve this issue.

Stuck at Installing Required Framework when Using MSIX Package to Install

Unable to Run Snap Hutao as Administrator

This issue only occurs in Windows 10 older than 22H2 version

How to Recover config.ini Configuration File

In some particular conditions (such as wrong game folder permission), config.ini may lose after server conversion. This will cause user not able to get into advanced launcher page and launch the game.

After identify the server version on your device, you can manually create and fill the configuration file with the right content. The following are common configurations.

',17),I=e("div",{class:"language-text line-numbers-mode","data-ext":"text"},[e("pre",{class:"language-text"},[e("code",null,`[General] channel=1 cps=mihoyo game_version=4.1.0 diff --git a/assets/Gacha-system-and-export-principal.html-a2c73de6.js b/assets/Gacha-system-and-export-principal.html-160e18ef.js similarity index 98% rename from assets/Gacha-system-and-export-principal.html-a2c73de6.js rename to assets/Gacha-system-and-export-principal.html-160e18ef.js index 68536af32..ca6d1bbc4 100644 --- a/assets/Gacha-system-and-export-principal.html-a2c73de6.js +++ b/assets/Gacha-system-and-export-principal.html-160e18ef.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{o as e,c as i,e as r}from"./app-8966c29b.js";const t={},l=r('

祈愿系统与导出原理

Gacha System and Principal

胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

祈愿的获取

获取祈愿记录需要请求米哈游的 API

关于此 API, 有下列几个注意点

为了请求此 API,我们需要四个关键参数

在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

祈愿的存储

获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

这样,用户即可长期地保存帐号的完整祈愿记录

UIGF 格式

统一可交换祈愿记录标准

Uniformed Interchangeable GachaLog Format standard

UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

祈愿的导入

在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

(因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

祈愿的导出

尚未实现,正在设计 已实装

',25),n=[l];function h(p,d){return e(),i("div",null,n)}const s=a(t,[["render",h],["__file","Gacha-system-and-export-principal.html.vue"]]);export{s as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{o as e,c as i,e as r}from"./app-5a96e1e2.js";const t={},l=r('

祈愿系统与导出原理

Gacha System and Principal

胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

祈愿的获取

获取祈愿记录需要请求米哈游的 API

关于此 API, 有下列几个注意点

为了请求此 API,我们需要四个关键参数

在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

祈愿的存储

获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

这样,用户即可长期地保存帐号的完整祈愿记录

UIGF 格式

统一可交换祈愿记录标准

Uniformed Interchangeable GachaLog Format standard

UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

祈愿的导入

在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

(因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

祈愿的导出

尚未实现,正在设计 已实装

',25),n=[l];function h(p,d){return e(),i("div",null,n)}const s=a(t,[["render",h],["__file","Gacha-system-and-export-principal.html.vue"]]);export{s as default}; diff --git a/assets/Gacha-system-and-export-principal.html-340b7e28.js b/assets/Gacha-system-and-export-principal.html-bfc5bd6f.js similarity index 98% rename from assets/Gacha-system-and-export-principal.html-340b7e28.js rename to assets/Gacha-system-and-export-principal.html-bfc5bd6f.js index 68536af32..ca6d1bbc4 100644 --- a/assets/Gacha-system-and-export-principal.html-340b7e28.js +++ b/assets/Gacha-system-and-export-principal.html-bfc5bd6f.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{o as e,c as i,e as r}from"./app-8966c29b.js";const t={},l=r('

祈愿系统与导出原理

Gacha System and Principal

胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

祈愿的获取

获取祈愿记录需要请求米哈游的 API

关于此 API, 有下列几个注意点

为了请求此 API,我们需要四个关键参数

在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

祈愿的存储

获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

这样,用户即可长期地保存帐号的完整祈愿记录

UIGF 格式

统一可交换祈愿记录标准

Uniformed Interchangeable GachaLog Format standard

UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

祈愿的导入

在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

(因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

祈愿的导出

尚未实现,正在设计 已实装

',25),n=[l];function h(p,d){return e(),i("div",null,n)}const s=a(t,[["render",h],["__file","Gacha-system-and-export-principal.html.vue"]]);export{s as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{o as e,c as i,e as r}from"./app-5a96e1e2.js";const t={},l=r('

祈愿系统与导出原理

Gacha System and Principal

胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

祈愿的获取

获取祈愿记录需要请求米哈游的 API

关于此 API, 有下列几个注意点

为了请求此 API,我们需要四个关键参数

在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

祈愿的存储

获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

这样,用户即可长期地保存帐号的完整祈愿记录

UIGF 格式

统一可交换祈愿记录标准

Uniformed Interchangeable GachaLog Format standard

UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

祈愿的导入

在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

(因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

祈愿的导出

尚未实现,正在设计 已实装

',25),n=[l];function h(p,d){return e(),i("div",null,n)}const s=a(t,[["render",h],["__file","Gacha-system-and-export-principal.html.vue"]]);export{s as default}; diff --git a/assets/achievements.html-c51f91b4.js b/assets/achievements.html-06dd492a.js similarity index 94% rename from assets/achievements.html-c51f91b4.js rename to assets/achievements.html-06dd492a.js index 665b0304d..477cdf341 100644 --- a/assets/achievements.html-c51f91b4.js +++ b/assets/achievements.html-06dd492a.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as c,c as l,a as e,b as t,d as a,e as s}from"./app-8966c29b.js";const h={},m=s('

Achievement Management

Achievement Screenshot

Snap Hutao offers local achievement management feature, users can view and manage status of achievement

Achievement Import

',5),d={href:"https://uigf.org/en/standards/UIAF.html",target:"_blank",rel:"noopener noreferrer"},u=e("ul",null,[e("li",null,[t("This standard allows user to transmit achievement data between Snap Hutao wiht other achievement tools, such as "),e("strong",null,"Achievement exporter")])],-1),p=e("li",null,[t("You can click on "),e("code",null,"Import"),t(" at top right menu on Achievement Management page, and select file import to load UIAF formatted data")],-1),_=e("h2",{id:"achievement-tools-we-recommend",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#achievement-tools-we-recommend","aria-hidden":"true"},"#"),t(" Achievement Tools We Recommend")],-1),v={href:"https://github.com/HolographicHat/YaeAchievement",target:"_blank",rel:"noopener noreferrer"},g={href:"https://cocogoat.work/",target:"_blank",rel:"noopener noreferrer"};function f(A,x){const n=r("ExternalLinkIcon"),o=r("Badge");return c(),l("div",null,[m,e("ul",null,[e("li",null,[t("Snap Hutao is using "),e("a",d,[t("Uniformed Interchangeable Achievement Format Standar"),a(n)]),t(" to store user's achievement data "),u]),p]),_,e("ul",null,[e("li",null,[e("p",null,[e("a",v,[t("YaeAchievement"),a(n)]),t(),a(o,{text:"Achievement Recognition",type:"tip"})])]),e("li",null,[e("p",null,[e("a",g,[t("椰羊 cocogoat"),a(n)]),t(),a(o,{text:"Achievement Guide",type:"tip"})])])])])}const k=i(h,[["render",f],["__file","achievements.html.vue"]]);export{k as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as c,c as l,a as e,b as t,d as a,e as s}from"./app-5a96e1e2.js";const h={},m=s('

Achievement Management

Achievement Screenshot

Snap Hutao offers local achievement management feature, users can view and manage status of achievement

Achievement Import

',5),d={href:"https://uigf.org/en/standards/UIAF.html",target:"_blank",rel:"noopener noreferrer"},u=e("ul",null,[e("li",null,[t("This standard allows user to transmit achievement data between Snap Hutao wiht other achievement tools, such as "),e("strong",null,"Achievement exporter")])],-1),p=e("li",null,[t("You can click on "),e("code",null,"Import"),t(" at top right menu on Achievement Management page, and select file import to load UIAF formatted data")],-1),_=e("h2",{id:"achievement-tools-we-recommend",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#achievement-tools-we-recommend","aria-hidden":"true"},"#"),t(" Achievement Tools We Recommend")],-1),v={href:"https://github.com/HolographicHat/YaeAchievement",target:"_blank",rel:"noopener noreferrer"},g={href:"https://cocogoat.work/",target:"_blank",rel:"noopener noreferrer"};function f(A,x){const n=r("ExternalLinkIcon"),o=r("Badge");return c(),l("div",null,[m,e("ul",null,[e("li",null,[t("Snap Hutao is using "),e("a",d,[t("Uniformed Interchangeable Achievement Format Standar"),a(n)]),t(" to store user's achievement data "),u]),p]),_,e("ul",null,[e("li",null,[e("p",null,[e("a",v,[t("YaeAchievement"),a(n)]),t(),a(o,{text:"Achievement Recognition",type:"tip"})])]),e("li",null,[e("p",null,[e("a",g,[t("椰羊 cocogoat"),a(n)]),t(),a(o,{text:"Achievement Guide",type:"tip"})])])])])}const k=i(h,[["render",f],["__file","achievements.html.vue"]]);export{k as default}; diff --git a/assets/achievements.html-a2f7d03f.js b/assets/achievements.html-0de1eff5.js similarity index 94% rename from assets/achievements.html-a2f7d03f.js rename to assets/achievements.html-0de1eff5.js index 2e268909d..42c5f62d5 100644 --- a/assets/achievements.html-a2f7d03f.js +++ b/assets/achievements.html-0de1eff5.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as c,c as i,a as e,b as t,d as n,e as s}from"./app-8966c29b.js";const d={},h=s('

成就管理

成就管理界面

胡桃工具箱提供成就管理功能,用户可以通过它浏览并管理所有的成就状态

成就导入

',5),_={href:"https://uigf.org/zh/standards/UIAF.html",target:"_blank",rel:"noopener noreferrer"},p=e("ul",null,[e("li",null,[t("该标准允许用户从其它"),e("strong",null,"成就导出工具"),t("中通过 Url 协议和剪贴板将数据导入到胡桃工具箱中")])],-1),u=e("li",null,[t("你可以点击成就页面右上角隐藏菜单中的"),e("code",null,"导入"),t("按钮,并选择"),e("code",null,"从 UIAF 文件导入"),t("以加载以 UIAF 数据格式储存的第三方成就数据")],-1),m=e("h2",{id:"推荐使用的成就识别工具",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#推荐使用的成就识别工具","aria-hidden":"true"},"#"),t(" 推荐使用的成就识别工具")],-1),g={href:"https://github.com/HolographicHat/YaeAchievement",target:"_blank",rel:"noopener noreferrer"},f={href:"https://cocogoat.work/",target:"_blank",rel:"noopener noreferrer"};function x(b,k){const o=l("ExternalLinkIcon"),a=l("Badge");return c(),i("div",null,[h,e("ul",null,[e("li",null,[t("胡桃工具箱使用"),e("a",_,[t("统一可交换成就标准"),n(o)]),t("数据标准来储存用户的成就数据 "),p]),u]),m,e("ul",null,[e("li",null,[e("p",null,[e("a",g,[t("YaeAchievement"),n(o)]),t(),n(a,{text:"成就识别",type:"tip"})])]),e("li",null,[e("p",null,[e("a",f,[t("椰羊 cocogoat"),n(o)]),t(),n(a,{text:"成就攻略",type:"tip"})])])])])}const B=r(d,[["render",x],["__file","achievements.html.vue"]]);export{B as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as c,c as i,a as e,b as t,d as n,e as s}from"./app-5a96e1e2.js";const d={},h=s('

成就管理

成就管理界面

胡桃工具箱提供成就管理功能,用户可以通过它浏览并管理所有的成就状态

成就导入

',5),_={href:"https://uigf.org/zh/standards/UIAF.html",target:"_blank",rel:"noopener noreferrer"},p=e("ul",null,[e("li",null,[t("该标准允许用户从其它"),e("strong",null,"成就导出工具"),t("中通过 Url 协议和剪贴板将数据导入到胡桃工具箱中")])],-1),u=e("li",null,[t("你可以点击成就页面右上角隐藏菜单中的"),e("code",null,"导入"),t("按钮,并选择"),e("code",null,"从 UIAF 文件导入"),t("以加载以 UIAF 数据格式储存的第三方成就数据")],-1),m=e("h2",{id:"推荐使用的成就识别工具",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#推荐使用的成就识别工具","aria-hidden":"true"},"#"),t(" 推荐使用的成就识别工具")],-1),g={href:"https://github.com/HolographicHat/YaeAchievement",target:"_blank",rel:"noopener noreferrer"},f={href:"https://cocogoat.work/",target:"_blank",rel:"noopener noreferrer"};function x(b,k){const o=l("ExternalLinkIcon"),a=l("Badge");return c(),i("div",null,[h,e("ul",null,[e("li",null,[t("胡桃工具箱使用"),e("a",_,[t("统一可交换成就标准"),n(o)]),t("数据标准来储存用户的成就数据 "),p]),u]),m,e("ul",null,[e("li",null,[e("p",null,[e("a",g,[t("YaeAchievement"),n(o)]),t(),n(a,{text:"成就识别",type:"tip"})])]),e("li",null,[e("p",null,[e("a",f,[t("椰羊 cocogoat"),n(o)]),t(),n(a,{text:"成就攻略",type:"tip"})])])])])}const B=r(d,[["render",x],["__file","achievements.html.vue"]]);export{B as default}; diff --git a/assets/app-8966c29b.js b/assets/app-5a96e1e2.js similarity index 96% rename from assets/app-8966c29b.js rename to assets/app-5a96e1e2.js index 481258fe5..3f551ef05 100644 --- a/assets/app-8966c29b.js +++ b/assets/app-5a96e1e2.js @@ -1,4 +1,4 @@ -const bu="modulepreload",yu=function(e){return"/"+e},Ua={},_=function(t,n,o){if(!n||n.length===0)return t();const r=document.getElementsByTagName("link");return Promise.all(n.map(a=>{if(a=yu(a),a in Ua)return;Ua[a]=!0;const i=a.endsWith(".css"),s=i?'[rel="stylesheet"]':"";if(!!o)for(let u=r.length-1;u>=0;u--){const f=r[u];if(f.href===a&&(!i||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${s}`))return;const c=document.createElement("link");if(c.rel=i?"stylesheet":bu,i||(c.as="script",c.crossOrigin=""),c.href=a,document.head.appendChild(c),i)return new Promise((u,f)=>{c.addEventListener("load",u),c.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>t()).catch(a=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=a,window.dispatchEvent(i),!i.defaultPrevented)throw a})};function Zr(e,t){const n=Object.create(null),o=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const ye={},_n=[],lt=()=>{},wu=()=>!1,Eu=/^on[^a-z]/,co=e=>Eu.test(e),ea=e=>e.startsWith("onUpdate:"),Ce=Object.assign,ta=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Tu=Object.prototype.hasOwnProperty,ue=(e,t)=>Tu.call(e,t),K=Array.isArray,bn=e=>uo(e)==="[object Map]",Dn=e=>uo(e)==="[object Set]",qa=e=>uo(e)==="[object Date]",ne=e=>typeof e=="function",se=e=>typeof e=="string",An=e=>typeof e=="symbol",ve=e=>e!==null&&typeof e=="object",Ls=e=>(ve(e)||ne(e))&&ne(e.then)&&ne(e.catch),Os=Object.prototype.toString,uo=e=>Os.call(e),Au=e=>uo(e).slice(8,-1),Cs=e=>uo(e)==="[object Object]",na=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Yn=Zr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Go=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},ku=/-(\w)/g,Ze=Go(e=>e.replace(ku,(t,n)=>n?n.toUpperCase():"")),Lu=/\B([A-Z])/g,$n=Go(e=>e.replace(Lu,"-$1").toLowerCase()),fo=Go(e=>e.charAt(0).toUpperCase()+e.slice(1)),fr=Go(e=>e?`on${fo(e)}`:""),tn=(e,t)=>!Object.is(e,t),xo=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Mo=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ou=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let Ka;const Ir=()=>Ka||(Ka=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function oa(e){if(K(e)){const t={};for(let n=0;n{if(n){const o=n.split(Su);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function ra(e){let t="";if(se(e))t=e;else if(K(e))for(let n=0;nnn(n,t))}const k0=e=>se(e)?e:e==null?"":K(e)||ve(e)&&(e.toString===Os||!ne(e.toString))?JSON.stringify(e,Ps,2):String(e),Ps=(e,t)=>t&&t.__v_isRef?Ps(e,t.value):bn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r])=>(n[`${o} =>`]=r,n),{})}:Dn(t)?{[`Set(${t.size})`]:[...t.values()]}:ve(t)&&!K(t)&&!Cs(t)?String(t):t;let Ue;class $u{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Ue,!t&&Ue&&(this.index=(Ue.scopes||(Ue.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Ue;try{return Ue=this,t()}finally{Ue=n}}}on(){Ue=this}off(){Ue=this.parent}stop(t){if(this._active){let n,o;for(n=0,o=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Rs=e=>(e.w&jt)>0,xs=e=>(e.n&jt)>0,Vu=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o{(u==="length"||!An(u)&&u>=l)&&s.push(c)})}else switch(n!==void 0&&s.push(i.get(n)),t){case"add":K(e)?na(n)&&s.push(i.get("length")):(s.push(i.get(Xt)),bn(e)&&s.push(i.get(xr)));break;case"delete":K(e)||(s.push(i.get(Xt)),bn(e)&&s.push(i.get(xr)));break;case"set":bn(e)&&s.push(i.get(Xt));break}if(s.length===1)s[0]&&Dr(s[0]);else{const l=[];for(const c of s)c&&l.push(...c);Dr(ia(l))}}function Dr(e,t){const n=K(e)?e:[...e];for(const o of n)o.computed&&Ya(o);for(const o of n)o.computed||Ya(o)}function Ya(e,t){(e!==at||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function Bu(e,t){var n;return(n=No.get(e))==null?void 0:n.get(t)}const zu=Zr("__proto__,__v_isRef,__isVue"),Ms=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(An)),Ja=Hu();function Hu(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const o=le(this);for(let a=0,i=this.length;a{e[t]=function(...n){Mn();const o=le(this)[t].apply(this,n);return Nn(),o}}),e}function ju(e){const t=le(this);return ze(t,"has",e),t.hasOwnProperty(e)}class Ns{constructor(t=!1,n=!1){this._isReadonly=t,this._shallow=n}get(t,n,o){const r=this._isReadonly,a=this._shallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return a;if(n==="__v_raw"&&o===(r?a?nd:zs:a?Bs:Fs).get(t))return t;const i=K(t);if(!r){if(i&&ue(Ja,n))return Reflect.get(Ja,n,o);if(n==="hasOwnProperty")return ju}const s=Reflect.get(t,n,o);return(An(n)?Ms.has(n):zu(n))||(r||ze(t,"get",n),a)?s:Ae(s)?i&&na(n)?s:s.value:ve(s)?r?St(s):po(s):s}}class Vs extends Ns{constructor(t=!1){super(!1,t)}set(t,n,o,r){let a=t[n];if(kn(a)&&Ae(a)&&!Ae(o))return!1;if(!this._shallow&&(!Vo(o)&&!kn(o)&&(a=le(a),o=le(o)),!K(t)&&Ae(a)&&!Ae(o)))return a.value=o,!0;const i=K(t)&&na(n)?Number(n)e,Yo=e=>Reflect.getPrototypeOf(e);function bo(e,t,n=!1,o=!1){e=e.__v_raw;const r=le(e),a=le(t);n||(tn(t,a)&&ze(r,"get",t),ze(r,"get",a));const{has:i}=Yo(r),s=o?la:n?da:no;if(i.call(r,t))return s(e.get(t));if(i.call(r,a))return s(e.get(a));e!==r&&e.get(t)}function yo(e,t=!1){const n=this.__v_raw,o=le(n),r=le(e);return t||(tn(e,r)&&ze(o,"has",e),ze(o,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function wo(e,t=!1){return e=e.__v_raw,!t&&ze(le(e),"iterate",Xt),Reflect.get(e,"size",e)}function Qa(e){e=le(e);const t=le(this);return Yo(t).has.call(t,e)||(t.add(e),kt(t,"add",e,e)),this}function Xa(e,t){t=le(t);const n=le(this),{has:o,get:r}=Yo(n);let a=o.call(n,e);a||(e=le(e),a=o.call(n,e));const i=r.call(n,e);return n.set(e,t),a?tn(t,i)&&kt(n,"set",e,t):kt(n,"add",e,t),this}function Za(e){const t=le(this),{has:n,get:o}=Yo(t);let r=n.call(t,e);r||(e=le(e),r=n.call(t,e)),o&&o.call(t,e);const a=t.delete(e);return r&&kt(t,"delete",e,void 0),a}function ei(){const e=le(this),t=e.size!==0,n=e.clear();return t&&kt(e,"clear",void 0,void 0),n}function Eo(e,t){return function(o,r){const a=this,i=a.__v_raw,s=le(i),l=t?la:e?da:no;return!e&&ze(s,"iterate",Xt),i.forEach((c,u)=>o.call(r,l(c),l(u),a))}}function To(e,t,n){return function(...o){const r=this.__v_raw,a=le(r),i=bn(a),s=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=r[e](...o),u=n?la:t?da:no;return!t&&ze(a,"iterate",l?xr:Xt),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:s?[u(f[0]),u(f[1])]:u(f),done:p}},[Symbol.iterator](){return this}}}}function Dt(e){return function(...t){return e==="delete"?!1:this}}function Gu(){const e={get(a){return bo(this,a)},get size(){return wo(this)},has:yo,add:Qa,set:Xa,delete:Za,clear:ei,forEach:Eo(!1,!1)},t={get(a){return bo(this,a,!1,!0)},get size(){return wo(this)},has:yo,add:Qa,set:Xa,delete:Za,clear:ei,forEach:Eo(!1,!0)},n={get(a){return bo(this,a,!0)},get size(){return wo(this,!0)},has(a){return yo.call(this,a,!0)},add:Dt("add"),set:Dt("set"),delete:Dt("delete"),clear:Dt("clear"),forEach:Eo(!0,!1)},o={get(a){return bo(this,a,!0,!0)},get size(){return wo(this,!0)},has(a){return yo.call(this,a,!0)},add:Dt("add"),set:Dt("set"),delete:Dt("delete"),clear:Dt("clear"),forEach:Eo(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=To(a,!1,!1),n[a]=To(a,!0,!1),t[a]=To(a,!1,!0),o[a]=To(a,!0,!0)}),[e,n,t,o]}const[Yu,Ju,Qu,Xu]=Gu();function ca(e,t){const n=t?e?Xu:Qu:e?Ju:Yu;return(o,r,a)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?o:Reflect.get(ue(n,r)&&r in o?n:o,r,a)}const Zu={get:ca(!1,!1)},ed={get:ca(!1,!0)},td={get:ca(!0,!1)},Fs=new WeakMap,Bs=new WeakMap,zs=new WeakMap,nd=new WeakMap;function od(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function rd(e){return e.__v_skip||!Object.isExtensible(e)?0:od(Au(e))}function po(e){return kn(e)?e:ua(e,!1,Uu,Zu,Fs)}function Hs(e){return ua(e,!1,Ku,ed,Bs)}function St(e){return ua(e,!0,qu,td,zs)}function ua(e,t,n,o,r){if(!ve(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=r.get(e);if(a)return a;const i=rd(e);if(i===0)return e;const s=new Proxy(e,i===2?o:n);return r.set(e,s),s}function yn(e){return kn(e)?yn(e.__v_raw):!!(e&&e.__v_isReactive)}function kn(e){return!!(e&&e.__v_isReadonly)}function Vo(e){return!!(e&&e.__v_isShallow)}function js(e){return yn(e)||kn(e)}function le(e){const t=e&&e.__v_raw;return t?le(t):e}function Ws(e){return $o(e,"__v_skip",!0),e}const no=e=>ve(e)?po(e):e,da=e=>ve(e)?St(e):e;function fa(e){zt&&at&&(e=le(e),$s(e.dep||(e.dep=ia())))}function pa(e,t){e=le(e);const n=e.dep;n&&Dr(n)}function Ae(e){return!!(e&&e.__v_isRef===!0)}function G(e){return Us(e,!1)}function tt(e){return Us(e,!0)}function Us(e,t){return Ae(e)?e:new ad(e,t)}class ad{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:le(t),this._value=n?t:no(t)}get value(){return fa(this),this._value}set value(t){const n=this.__v_isShallow||Vo(t)||kn(t);t=n?t:le(t),tn(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:no(t),pa(this))}}function it(e){return Ae(e)?e.value:e}const id={get:(e,t,n)=>it(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Ae(r)&&!Ae(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function qs(e){return yn(e)?e:new Proxy(e,id)}class sd{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:o}=t(()=>fa(this),()=>pa(this));this._get=n,this._set=o}get value(){return this._get()}set value(t){this._set(t)}}function Ks(e){return new sd(e)}class ld{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Bu(le(this._object),this._key)}}class cd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Jo(e,t,n){return Ae(e)?e:ne(e)?new cd(e):ve(e)&&arguments.length>1?ud(e,t,n):G(e)}function ud(e,t,n){const o=e[t];return Ae(o)?o:new ld(e,t,n)}class dd{constructor(t,n,o,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new sa(t,()=>{this._dirty||(this._dirty=!0,pa(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=o}get value(){const t=le(this);return fa(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function fd(e,t,n=!1){let o,r;const a=ne(e);return a?(o=e,r=lt):(o=e.get,r=e.set),new dd(o,r,a||!r,n)}function Ht(e,t,n,o){let r;try{r=o?e(...o):e()}catch(a){ho(a,t,n)}return r}function Je(e,t,n,o){if(ne(e)){const a=Ht(e,t,n,o);return a&&Ls(a)&&a.catch(i=>{ho(i,t,n)}),a}const r=[];for(let a=0;a>>1,r=xe[o],a=ro(r);avt&&xe.splice(t,1)}function vd(e){K(e)?wn.push(...e):(!Et||!Et.includes(e,e.allowRecurse?Gt+1:Gt))&&wn.push(e),Ys()}function ti(e,t=oo?vt+1:0){for(;tro(n)-ro(o)),Gt=0;Gte.id==null?1/0:e.id,gd=(e,t)=>{const n=ro(e)-ro(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Js(e){$r=!1,oo=!0,xe.sort(gd);const t=lt;try{for(vt=0;vtse(m)?m.trim():m)),f&&(r=n.map(Mo))}let s,l=o[s=fr(t)]||o[s=fr(Ze(t))];!l&&a&&(l=o[s=fr($n(t))]),l&&Je(l,e,6,r);const c=o[s+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,Je(c,e,6,r)}}function Qs(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(r!==void 0)return r;const a=e.emits;let i={},s=!1;if(!ne(e)){const l=c=>{const u=Qs(c,t,!0);u&&(s=!0,Ce(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(ve(e)&&o.set(e,null),null):(K(a)?a.forEach(l=>i[l]=null):Ce(i,a),ve(e)&&o.set(e,i),i)}function Xo(e,t){return!e||!co(t)?!1:(t=t.slice(2).replace(/Once$/,""),ue(e,t[0].toLowerCase()+t.slice(1))||ue(e,$n(t))||ue(e,t))}let Ke=null,Xs=null;function Bo(e){const t=Ke;return Ke=e,Xs=e&&e.type.__scopeId||null,t}function bd(e,t=Ke,n){if(!t||e._n)return e;const o=(...r)=>{o._d&&pi(-1);const a=Bo(t);let i;try{i=e(...r)}finally{Bo(a),o._d&&pi(1)}return i};return o._n=!0,o._c=!0,o._d=!0,o}function pr(e){const{type:t,vnode:n,proxy:o,withProxy:r,props:a,propsOptions:[i],slots:s,attrs:l,emit:c,render:u,renderCache:f,data:p,setupState:m,ctx:g,inheritAttrs:E}=e;let A,w;const O=Bo(e);try{if(n.shapeFlag&4){const T=r||o;A=rt(u.call(T,T,f,a,m,p,g)),w=l}else{const T=t;A=rt(T.length>1?T(a,{attrs:l,slots:s,emit:c}):T(a,null)),w=t.props?l:yd(l)}}catch(T){Zn.length=0,ho(T,e,1),A=ke(Qe)}let y=A;if(w&&E!==!1){const T=Object.keys(w),{shapeFlag:N}=y;T.length&&N&7&&(i&&T.some(ea)&&(w=wd(w,i)),y=Wt(y,w))}return n.dirs&&(y=Wt(y),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&(y.transition=n.transition),A=y,Bo(O),A}const yd=e=>{let t;for(const n in e)(n==="class"||n==="style"||co(n))&&((t||(t={}))[n]=e[n]);return t},wd=(e,t)=>{const n={};for(const o in e)(!ea(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Ed(e,t,n){const{props:o,children:r,component:a}=e,{props:i,children:s,patchFlag:l}=t,c=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?ni(o,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fe.__isSuspense;function Zs(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):vd(e)}function el(e,t){return ma(e,null,t)}const Ao={};function re(e,t,n){return ma(e,t,n)}function ma(e,t,{immediate:n,deep:o,flush:r,onTrack:a,onTrigger:i}=ye){var s;const l=Is()===((s=Se)==null?void 0:s.scope)?Se:null;let c,u=!1,f=!1;if(Ae(e)?(c=()=>e.value,u=Vo(e)):yn(e)?(c=()=>e,o=!0):K(e)?(f=!0,u=e.some(T=>yn(T)||Vo(T)),c=()=>e.map(T=>{if(Ae(T))return T.value;if(yn(T))return Qt(T);if(ne(T))return Ht(T,l,2)})):ne(e)?t?c=()=>Ht(e,l,2):c=()=>{if(!(l&&l.isUnmounted))return p&&p(),Je(e,l,3,[m])}:c=lt,t&&o){const T=c;c=()=>Qt(T())}let p,m=T=>{p=O.onStop=()=>{Ht(T,l,4)}},g;if(Cn)if(m=lt,t?n&&Je(t,l,3,[c(),f?[]:void 0,m]):c(),r==="sync"){const T=yf();g=T.__watcherHandles||(T.__watcherHandles=[])}else return lt;let E=f?new Array(e.length).fill(Ao):Ao;const A=()=>{if(O.active)if(t){const T=O.run();(o||u||(f?T.some((N,I)=>tn(N,E[I])):tn(T,E)))&&(p&&p(),Je(t,l,3,[T,E===Ao?void 0:f&&E[0]===Ao?[]:E,m]),E=T)}else O.run()};A.allowRecurse=!!t;let w;r==="sync"?w=A:r==="post"?w=()=>Fe(A,l&&l.suspense):(A.pre=!0,l&&(A.id=l.uid),w=()=>Qo(A));const O=new sa(c,w);t?n?A():E=O.run():r==="post"?Fe(O.run.bind(O),l&&l.suspense):O.run();const y=()=>{O.stop(),l&&l.scope&&ta(l.scope.effects,O)};return g&&g.push(y),y}function kd(e,t,n){const o=this.proxy,r=se(e)?e.includes(".")?tl(o,e):()=>o[e]:e.bind(o,o);let a;ne(t)?a=t:(a=t.handler,n=t);const i=Se;On(this);const s=ma(r,a.bind(o),n);return i?On(i):en(),s}function tl(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;r{Qt(n,t)});else if(Cs(e))for(const n in e)Qt(e[n],t);return e}function L0(e,t){const n=Ke;if(n===null)return e;const o=tr(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let a=0;a{e.isMounted=!0}),ga(()=>{e.isUnmounting=!0}),e}const Ge=[Function,Array],ol={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ge,onEnter:Ge,onAfterEnter:Ge,onEnterCancelled:Ge,onBeforeLeave:Ge,onLeave:Ge,onAfterLeave:Ge,onLeaveCancelled:Ge,onBeforeAppear:Ge,onAppear:Ge,onAfterAppear:Ge,onAppearCancelled:Ge},Ld={name:"BaseTransition",props:ol,setup(e,{slots:t}){const n=ln(),o=nl();let r;return()=>{const a=t.default&&va(t.default(),!0);if(!a||!a.length)return;let i=a[0];if(a.length>1){for(const E of a)if(E.type!==Qe){i=E;break}}const s=le(e),{mode:l}=s;if(o.isLeaving)return hr(i);const c=oi(i);if(!c)return hr(i);const u=ao(c,s,o,n);io(c,u);const f=n.subTree,p=f&&oi(f);let m=!1;const{getTransitionKey:g}=c.type;if(g){const E=g();r===void 0?r=E:E!==r&&(r=E,m=!0)}if(p&&p.type!==Qe&&(!Yt(c,p)||m)){const E=ao(p,s,o,n);if(io(p,E),l==="out-in")return o.isLeaving=!0,E.afterLeave=()=>{o.isLeaving=!1,n.update.active!==!1&&n.update()},hr(i);l==="in-out"&&c.type!==Qe&&(E.delayLeave=(A,w,O)=>{const y=rl(o,p);y[String(p.key)]=p,A[Vt]=()=>{w(),A[Vt]=void 0,delete u.delayedLeave},u.delayedLeave=O})}return i}}},Od=Ld;function rl(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function ao(e,t,n,o){const{appear:r,mode:a,persisted:i=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:f,onLeave:p,onAfterLeave:m,onLeaveCancelled:g,onBeforeAppear:E,onAppear:A,onAfterAppear:w,onAppearCancelled:O}=t,y=String(e.key),T=rl(n,e),N=(P,H)=>{P&&Je(P,o,9,H)},I=(P,H)=>{const j=H[1];N(P,H),K(P)?P.every(ie=>ie.length<=1)&&j():P.length<=1&&j()},M={mode:a,persisted:i,beforeEnter(P){let H=s;if(!n.isMounted)if(r)H=E||s;else return;P[Vt]&&P[Vt](!0);const j=T[y];j&&Yt(e,j)&&j.el[Vt]&&j.el[Vt](),N(H,[P])},enter(P){let H=l,j=c,ie=u;if(!n.isMounted)if(r)H=A||l,j=w||c,ie=O||u;else return;let B=!1;const ee=P[ko]=Ee=>{B||(B=!0,Ee?N(ie,[P]):N(j,[P]),M.delayedLeave&&M.delayedLeave(),P[ko]=void 0)};H?I(H,[P,ee]):ee()},leave(P,H){const j=String(e.key);if(P[ko]&&P[ko](!0),n.isUnmounting)return H();N(f,[P]);let ie=!1;const B=P[Vt]=ee=>{ie||(ie=!0,H(),ee?N(g,[P]):N(m,[P]),P[Vt]=void 0,T[j]===e&&delete T[j])};T[j]=e,p?I(p,[P,B]):B()},clone(P){return ao(P,t,n,o)}};return M}function hr(e){if(mo(e))return e=Wt(e),e.children=null,e}function oi(e){return mo(e)?e.children?e.children[0]:void 0:e}function io(e,t){e.shapeFlag&6&&e.component?io(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function va(e,t=!1,n){let o=[],r=0;for(let a=0;a1)for(let a=0;aCe({name:e.name},t,{setup:e}))():e}const Jn=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function $(e){ne(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:r=200,timeout:a,suspensible:i=!0,onError:s}=e;let l=null,c,u=0;const f=()=>(u++,l=null,p()),p=()=>{let m;return l||(m=l=t().catch(g=>{if(g=g instanceof Error?g:new Error(String(g)),s)return new Promise((E,A)=>{s(g,()=>E(f()),()=>A(g),u+1)});throw g}).then(g=>m!==l&&l?l:(g&&(g.__esModule||g[Symbol.toStringTag]==="Module")&&(g=g.default),c=g,g)))};return W({name:"AsyncComponentWrapper",__asyncLoader:p,get __asyncResolved(){return c},setup(){const m=Se;if(c)return()=>mr(c,m);const g=O=>{l=null,ho(O,m,13,!o)};if(i&&m.suspense||Cn)return p().then(O=>()=>mr(O,m)).catch(O=>(g(O),()=>o?ke(o,{error:O}):null));const E=G(!1),A=G(),w=G(!!r);return r&&setTimeout(()=>{w.value=!1},r),a!=null&&setTimeout(()=>{if(!E.value&&!A.value){const O=new Error(`Async component timed out after ${a}ms.`);g(O),A.value=O}},a),p().then(()=>{E.value=!0,m.parent&&mo(m.parent.vnode)&&Qo(m.parent.update)}).catch(O=>{g(O),A.value=O}),()=>{if(E.value&&c)return mr(c,m);if(A.value&&o)return ke(o,{error:A.value});if(n&&!w.value)return ke(n)}}})}function mr(e,t){const{ref:n,props:o,children:r,ce:a}=t.vnode,i=ke(e,o,r);return i.ref=n,i.ce=a,delete t.vnode.ce,i}const mo=e=>e.type.__isKeepAlive;function Cd(e,t){al(e,"a",t)}function Sd(e,t){al(e,"da",t)}function al(e,t,n=Se){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Zo(t,o,n),n){let r=n.parent;for(;r&&r.parent;)mo(r.parent.vnode)&&Pd(o,t,n,r),r=r.parent}}function Pd(e,t,n,o){const r=Zo(t,e,o,!0);Vn(()=>{ta(o[t],r)},n)}function Zo(e,t,n=Se,o=!1){if(n){const r=n[e]||(n[e]=[]),a=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;Mn(),On(n);const s=Je(t,n,e,i);return en(),Nn(),s});return o?r.unshift(a):r.push(a),a}}const Pt=e=>(t,n=Se)=>(!Cn||e==="sp")&&Zo(e,(...o)=>t(...o),n),Id=Pt("bm"),pe=Pt("m"),Rd=Pt("bu"),il=Pt("u"),ga=Pt("bum"),Vn=Pt("um"),xd=Pt("sp"),Dd=Pt("rtg"),$d=Pt("rtc");function Md(e,t=Se){Zo("ec",e,t)}const sl="components";function ct(e,t){return Vd(sl,e,!0,t)||e}const Nd=Symbol.for("v-ndc");function Vd(e,t,n=!0,o=!1){const r=Ke||Se;if(r){const a=r.type;if(e===sl){const s=gf(a,!1);if(s&&(s===t||s===Ze(t)||s===fo(Ze(t))))return a}const i=ri(r[e]||a[e],t)||ri(r.appContext[e],t);return!i&&o?a:i}}function ri(e,t){return e&&(e[t]||e[Ze(t)]||e[fo(Ze(t))])}function O0(e,t,n,o){let r;const a=n&&n[o];if(K(e)||se(e)){r=new Array(e.length);for(let i=0,s=e.length;it(i,s,void 0,a&&a[s]));else{const i=Object.keys(e);r=new Array(i.length);for(let s=0,l=i.length;se?wl(e)?tr(e)||e.proxy:Mr(e.parent):null,Qn=Ce(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Mr(e.parent),$root:e=>Mr(e.root),$emit:e=>e.emit,$options:e=>_a(e),$forceUpdate:e=>e.f||(e.f=()=>Qo(e.update)),$nextTick:e=>e.n||(e.n=sn.bind(e.proxy)),$watch:e=>kd.bind(e)}),vr=(e,t)=>e!==ye&&!e.__isScriptSetup&&ue(e,t),Fd={get({_:e},t){const{ctx:n,setupState:o,data:r,props:a,accessCache:i,type:s,appContext:l}=e;let c;if(t[0]!=="$"){const m=i[t];if(m!==void 0)switch(m){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return a[t]}else{if(vr(o,t))return i[t]=1,o[t];if(r!==ye&&ue(r,t))return i[t]=2,r[t];if((c=e.propsOptions[0])&&ue(c,t))return i[t]=3,a[t];if(n!==ye&&ue(n,t))return i[t]=4,n[t];Nr&&(i[t]=0)}}const u=Qn[t];let f,p;if(u)return t==="$attrs"&&ze(e,"get",t),u(e);if((f=s.__cssModules)&&(f=f[t]))return f;if(n!==ye&&ue(n,t))return i[t]=4,n[t];if(p=l.config.globalProperties,ue(p,t))return p[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:a}=e;return vr(r,t)?(r[t]=n,!0):o!==ye&&ue(o,t)?(o[t]=n,!0):ue(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,propsOptions:a}},i){let s;return!!n[i]||e!==ye&&ue(e,i)||vr(t,i)||(s=a[0])&&ue(s,i)||ue(o,i)||ue(Qn,i)||ue(r.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ue(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ai(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Nr=!0;function Bd(e){const t=_a(e),n=e.proxy,o=e.ctx;Nr=!1,t.beforeCreate&&ii(t.beforeCreate,e,"bc");const{data:r,computed:a,methods:i,watch:s,provide:l,inject:c,created:u,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:E,deactivated:A,beforeDestroy:w,beforeUnmount:O,destroyed:y,unmounted:T,render:N,renderTracked:I,renderTriggered:M,errorCaptured:P,serverPrefetch:H,expose:j,inheritAttrs:ie,components:B,directives:ee,filters:Ee}=t;if(c&&zd(c,o,null),i)for(const oe in i){const J=i[oe];ne(J)&&(o[oe]=J.bind(n))}if(r){const oe=r.call(n,n);ve(oe)&&(e.data=po(oe))}if(Nr=!0,a)for(const oe in a){const J=a[oe],nt=ne(J)?J.bind(n,n):ne(J.get)?J.get.bind(n,n):lt,xt=!ne(J)&&ne(J.set)?J.set.bind(n):lt,pt=k({get:nt,set:xt});Object.defineProperty(o,oe,{enumerable:!0,configurable:!0,get:()=>pt.value,set:Ve=>pt.value=Ve})}if(s)for(const oe in s)ll(s[oe],o,n,oe);if(l){const oe=ne(l)?l.call(n):l;Reflect.ownKeys(oe).forEach(J=>{Zt(J,oe[J])})}u&&ii(u,e,"c");function Y(oe,J){K(J)?J.forEach(nt=>oe(nt.bind(n))):J&&oe(J.bind(n))}if(Y(Id,f),Y(pe,p),Y(Rd,m),Y(il,g),Y(Cd,E),Y(Sd,A),Y(Md,P),Y($d,I),Y(Dd,M),Y(ga,O),Y(Vn,T),Y(xd,H),K(j))if(j.length){const oe=e.exposed||(e.exposed={});j.forEach(J=>{Object.defineProperty(oe,J,{get:()=>n[J],set:nt=>n[J]=nt})})}else e.exposed||(e.exposed={});N&&e.render===lt&&(e.render=N),ie!=null&&(e.inheritAttrs=ie),B&&(e.components=B),ee&&(e.directives=ee)}function zd(e,t,n=lt){K(e)&&(e=Vr(e));for(const o in e){const r=e[o];let a;ve(r)?"default"in r?a=we(r.from||o,r.default,!0):a=we(r.from||o):a=we(r),Ae(a)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>a.value,set:i=>a.value=i}):t[o]=a}}function ii(e,t,n){Je(K(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function ll(e,t,n,o){const r=o.includes(".")?tl(n,o):()=>n[o];if(se(e)){const a=t[e];ne(a)&&re(r,a)}else if(ne(e))re(r,e.bind(n));else if(ve(e))if(K(e))e.forEach(a=>ll(a,t,n,o));else{const a=ne(e.handler)?e.handler.bind(n):t[e.handler];ne(a)&&re(r,a,e)}}function _a(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:a,config:{optionMergeStrategies:i}}=e.appContext,s=a.get(t);let l;return s?l=s:!r.length&&!n&&!o?l=t:(l={},r.length&&r.forEach(c=>zo(l,c,i,!0)),zo(l,t,i)),ve(t)&&a.set(t,l),l}function zo(e,t,n,o=!1){const{mixins:r,extends:a}=t;a&&zo(e,a,n,!0),r&&r.forEach(i=>zo(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const s=Hd[i]||n&&n[i];e[i]=s?s(e[i],t[i]):t[i]}return e}const Hd={data:si,props:li,emits:li,methods:Gn,computed:Gn,beforeCreate:$e,created:$e,beforeMount:$e,mounted:$e,beforeUpdate:$e,updated:$e,beforeDestroy:$e,beforeUnmount:$e,destroyed:$e,unmounted:$e,activated:$e,deactivated:$e,errorCaptured:$e,serverPrefetch:$e,components:Gn,directives:Gn,watch:Wd,provide:si,inject:jd};function si(e,t){return t?e?function(){return Ce(ne(e)?e.call(this,this):e,ne(t)?t.call(this,this):t)}:t:e}function jd(e,t){return Gn(Vr(e),Vr(t))}function Vr(e){if(K(e)){const t={};for(let n=0;n1)return n&&ne(t)?t.call(o&&o.proxy):t}}function Kd(e,t,n,o=!1){const r={},a={};$o(a,er,1),e.propsDefaults=Object.create(null),ul(e,t,r,a);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=o?r:Hs(r):e.type.props?e.props=r:e.props=a,e.attrs=a}function Gd(e,t,n,o){const{props:r,attrs:a,vnode:{patchFlag:i}}=e,s=le(r),[l]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[p,m]=dl(f,t,!0);Ce(i,p),m&&s.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!a&&!l)return ve(e)&&o.set(e,_n),_n;if(K(a))for(let u=0;u-1,m[1]=E<0||g-1||ue(m,"default"))&&s.push(f)}}}const c=[i,s];return ve(e)&&o.set(e,c),c}function ci(e){return e[0]!=="$"}function ui(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function di(e,t){return ui(e)===ui(t)}function fi(e,t){return K(t)?t.findIndex(n=>di(n,e)):ne(t)&&di(t,e)?0:-1}const fl=e=>e[0]==="_"||e==="$stable",ba=e=>K(e)?e.map(rt):[rt(e)],Yd=(e,t,n)=>{if(t._n)return t;const o=bd((...r)=>ba(t(...r)),n);return o._c=!1,o},pl=(e,t,n)=>{const o=e._ctx;for(const r in e){if(fl(r))continue;const a=e[r];if(ne(a))t[r]=Yd(r,a,o);else if(a!=null){const i=ba(a);t[r]=()=>i}}},hl=(e,t)=>{const n=ba(t);e.slots.default=()=>n},Jd=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=le(t),$o(t,"_",n)):pl(t,e.slots={})}else e.slots={},t&&hl(e,t);$o(e.slots,er,1)},Qd=(e,t,n)=>{const{vnode:o,slots:r}=e;let a=!0,i=ye;if(o.shapeFlag&32){const s=t._;s?n&&s===1?a=!1:(Ce(r,t),!n&&s===1&&delete r._):(a=!t.$stable,pl(t,r)),i=t}else t&&(hl(e,t),i={default:1});if(a)for(const s in r)!fl(s)&&i[s]==null&&delete r[s]};function jo(e,t,n,o,r=!1){if(K(e)){e.forEach((p,m)=>jo(p,t&&(K(t)?t[m]:t),n,o,r));return}if(Jn(o)&&!r)return;const a=o.shapeFlag&4?tr(o.component)||o.component.proxy:o.el,i=r?null:a,{i:s,r:l}=e,c=t&&t.r,u=s.refs===ye?s.refs={}:s.refs,f=s.setupState;if(c!=null&&c!==l&&(se(c)?(u[c]=null,ue(f,c)&&(f[c]=null)):Ae(c)&&(c.value=null)),ne(l))Ht(l,s,12,[i,u]);else{const p=se(l),m=Ae(l);if(p||m){const g=()=>{if(e.f){const E=p?ue(f,l)?f[l]:u[l]:l.value;r?K(E)&&ta(E,a):K(E)?E.includes(a)||E.push(a):p?(u[l]=[a],ue(f,l)&&(f[l]=u[l])):(l.value=[a],e.k&&(u[e.k]=l.value))}else p?(u[l]=i,ue(f,l)&&(f[l]=i)):m&&(l.value=i,e.k&&(u[e.k]=i))};i?(g.id=-1,Fe(g,n)):g()}}}let $t=!1;const Lo=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Oo=e=>e.nodeType===8;function Xd(e){const{mt:t,p:n,o:{patchProp:o,createText:r,nextSibling:a,parentNode:i,remove:s,insert:l,createComment:c}}=e,u=(y,T)=>{if(!T.hasChildNodes()){n(null,y,T),Fo(),T._vnode=y;return}$t=!1,f(T.firstChild,y,null,null,null),Fo(),T._vnode=y,$t&&console.error("Hydration completed but contains mismatches.")},f=(y,T,N,I,M,P=!1)=>{const H=Oo(y)&&y.data==="[",j=()=>E(y,T,N,I,M,H),{type:ie,ref:B,shapeFlag:ee,patchFlag:Ee}=T;let Te=y.nodeType;T.el=y,Ee===-2&&(P=!1,T.dynamicChildren=null);let Y=null;switch(ie){case Ln:Te!==3?T.children===""?(l(T.el=r(""),i(y),y),Y=y):Y=j():(y.data!==T.children&&($t=!0,y.data=T.children),Y=a(y));break;case Qe:if(Te!==8||H)if(y.tagName.toLowerCase()==="template"){const oe=T.el.content.firstChild;w(oe,y,N),T.el=y=oe,Y=a(y)}else Y=j();else Y=a(y);break;case Xn:if(H&&(y=a(y),Te=y.nodeType),Te===1||Te===3){Y=y;const oe=!T.children.length;for(let J=0;J{P=P||!!T.dynamicChildren;const{type:H,props:j,patchFlag:ie,shapeFlag:B,dirs:ee,transition:Ee}=T,Te=H==="input"&&ee||H==="option";if(Te||ie!==-1){if(ee&&mt(T,null,N,"created"),j)if(Te||!P||ie&48)for(const J in j)(Te&&J.endsWith("value")||co(J)&&!Yn(J))&&o(y,J,null,j[J],!1,void 0,N);else j.onClick&&o(y,"onClick",null,j.onClick,!1,void 0,N);let Y;(Y=j&&j.onVnodeBeforeMount)&&Ye(Y,N,T);let oe=!1;if(O(y)){oe=ml(I,Ee)&&N&&N.vnode.props&&N.vnode.props.appear;const J=y.content.firstChild;oe&&Ee.beforeEnter(J),w(J,y,N),T.el=y=J}if(ee&&mt(T,null,N,"beforeMount"),((Y=j&&j.onVnodeMounted)||ee||oe)&&Zs(()=>{Y&&Ye(Y,N,T),oe&&Ee.enter(y),ee&&mt(T,null,N,"mounted")},I),B&16&&!(j&&(j.innerHTML||j.textContent))){let J=m(y.firstChild,T,y,N,I,M,P);for(;J;){$t=!0;const nt=J;J=J.nextSibling,s(nt)}}else B&8&&y.textContent!==T.children&&($t=!0,y.textContent=T.children)}return y.nextSibling},m=(y,T,N,I,M,P,H)=>{H=H||!!T.dynamicChildren;const j=T.children,ie=j.length;for(let B=0;B{const{slotScopeIds:H}=T;H&&(M=M?M.concat(H):H);const j=i(y),ie=m(a(y),T,j,N,I,M,P);return ie&&Oo(ie)&&ie.data==="]"?a(T.anchor=ie):($t=!0,l(T.anchor=c("]"),j,ie),ie)},E=(y,T,N,I,M,P)=>{if($t=!0,T.el=null,P){const ie=A(y);for(;;){const B=a(y);if(B&&B!==ie)s(B);else break}}const H=a(y),j=i(y);return s(y),n(null,T,j,H,N,I,Lo(j),M),H},A=(y,T="[",N="]")=>{let I=0;for(;y;)if(y=a(y),y&&Oo(y)&&(y.data===T&&I++,y.data===N)){if(I===0)return a(y);I--}return y},w=(y,T,N)=>{const I=T.parentNode;I&&I.replaceChild(y,T);let M=N;for(;M;)M.vnode.el===T&&(M.vnode.el=y,M.subTree.el=y),M=M.parent},O=y=>y.nodeType===1&&y.tagName.toLowerCase()==="template";return[u,f]}const Fe=Zs;function Zd(e){return ef(e,Xd)}function ef(e,t){const n=Ir();n.__VUE__=!0;const{insert:o,remove:r,patchProp:a,createElement:i,createText:s,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:p,setScopeId:m=lt,insertStaticContent:g}=e,E=(h,v,b,L=null,S=null,R=null,z=!1,D=null,V=!!v.dynamicChildren)=>{if(h===v)return;h&&!Yt(h,v)&&(L=C(h),Ve(h,S,R,!0),h=null),v.patchFlag===-2&&(V=!1,v.dynamicChildren=null);const{type:x,ref:X,shapeFlag:q}=v;switch(x){case Ln:A(h,v,b,L);break;case Qe:w(h,v,b,L);break;case Xn:h==null&&O(v,b,L,z);break;case qe:B(h,v,b,L,S,R,z,D,V);break;default:q&1?N(h,v,b,L,S,R,z,D,V):q&6?ee(h,v,b,L,S,R,z,D,V):(q&64||q&128)&&x.process(h,v,b,L,S,R,z,D,V,F)}X!=null&&S&&jo(X,h&&h.ref,R,v||h,!v)},A=(h,v,b,L)=>{if(h==null)o(v.el=s(v.children),b,L);else{const S=v.el=h.el;v.children!==h.children&&c(S,v.children)}},w=(h,v,b,L)=>{h==null?o(v.el=l(v.children||""),b,L):v.el=h.el},O=(h,v,b,L)=>{[h.el,h.anchor]=g(h.children,v,b,L,h.el,h.anchor)},y=({el:h,anchor:v},b,L)=>{let S;for(;h&&h!==v;)S=p(h),o(h,b,L),h=S;o(v,b,L)},T=({el:h,anchor:v})=>{let b;for(;h&&h!==v;)b=p(h),r(h),h=b;r(v)},N=(h,v,b,L,S,R,z,D,V)=>{z=z||v.type==="svg",h==null?I(v,b,L,S,R,z,D,V):H(h,v,S,R,z,D,V)},I=(h,v,b,L,S,R,z,D)=>{let V,x;const{type:X,props:q,shapeFlag:Z,transition:te,dirs:ae}=h;if(V=h.el=i(h.type,R,q&&q.is,q),Z&8?u(V,h.children):Z&16&&P(h.children,V,null,L,S,R&&X!=="foreignObject",z,D),ae&&mt(h,null,L,"created"),M(V,h,h.scopeId,z,L),q){for(const me in q)me!=="value"&&!Yn(me)&&a(V,me,null,q[me],R,h.children,L,S,Re);"value"in q&&a(V,"value",null,q.value),(x=q.onVnodeBeforeMount)&&Ye(x,L,h)}ae&&mt(h,null,L,"beforeMount");const _e=ml(S,te);_e&&te.beforeEnter(V),o(V,v,b),((x=q&&q.onVnodeMounted)||_e||ae)&&Fe(()=>{x&&Ye(x,L,h),_e&&te.enter(V),ae&&mt(h,null,L,"mounted")},S)},M=(h,v,b,L,S)=>{if(b&&m(h,b),L)for(let R=0;R{for(let x=V;x{const D=v.el=h.el;let{patchFlag:V,dynamicChildren:x,dirs:X}=v;V|=h.patchFlag&16;const q=h.props||ye,Z=v.props||ye;let te;b&&qt(b,!1),(te=Z.onVnodeBeforeUpdate)&&Ye(te,b,v,h),X&&mt(v,h,b,"beforeUpdate"),b&&qt(b,!0);const ae=S&&v.type!=="foreignObject";if(x?j(h.dynamicChildren,x,D,b,L,ae,R):z||J(h,v,D,null,b,L,ae,R,!1),V>0){if(V&16)ie(D,v,q,Z,b,L,S);else if(V&2&&q.class!==Z.class&&a(D,"class",null,Z.class,S),V&4&&a(D,"style",q.style,Z.style,S),V&8){const _e=v.dynamicProps;for(let me=0;me<_e.length;me++){const Oe=_e[me],ot=q[Oe],fn=Z[Oe];(fn!==ot||Oe==="value")&&a(D,Oe,ot,fn,S,h.children,b,L,Re)}}V&1&&h.children!==v.children&&u(D,v.children)}else!z&&x==null&&ie(D,v,q,Z,b,L,S);((te=Z.onVnodeUpdated)||X)&&Fe(()=>{te&&Ye(te,b,v,h),X&&mt(v,h,b,"updated")},L)},j=(h,v,b,L,S,R,z)=>{for(let D=0;D{if(b!==L){if(b!==ye)for(const D in b)!Yn(D)&&!(D in L)&&a(h,D,b[D],null,z,v.children,S,R,Re);for(const D in L){if(Yn(D))continue;const V=L[D],x=b[D];V!==x&&D!=="value"&&a(h,D,x,V,z,v.children,S,R,Re)}"value"in L&&a(h,"value",b.value,L.value)}},B=(h,v,b,L,S,R,z,D,V)=>{const x=v.el=h?h.el:s(""),X=v.anchor=h?h.anchor:s("");let{patchFlag:q,dynamicChildren:Z,slotScopeIds:te}=v;te&&(D=D?D.concat(te):te),h==null?(o(x,b,L),o(X,b,L),P(v.children,b,X,S,R,z,D,V)):q>0&&q&64&&Z&&h.dynamicChildren?(j(h.dynamicChildren,Z,b,S,R,z,D),(v.key!=null||S&&v===S.subTree)&&vl(h,v,!0)):J(h,v,b,X,S,R,z,D,V)},ee=(h,v,b,L,S,R,z,D,V)=>{v.slotScopeIds=D,h==null?v.shapeFlag&512?S.ctx.activate(v,b,L,z,V):Ee(v,b,L,S,R,z,V):Te(h,v,V)},Ee=(h,v,b,L,S,R,z)=>{const D=h.component=ff(h,L,S);if(mo(h)&&(D.ctx.renderer=F),pf(D),D.asyncDep){if(S&&S.registerDep(D,Y),!h.el){const V=D.subTree=ke(Qe);w(null,V,v,b)}return}Y(D,h,v,b,S,R,z)},Te=(h,v,b)=>{const L=v.component=h.component;if(Ed(h,v,b))if(L.asyncDep&&!L.asyncResolved){oe(L,v,b);return}else L.next=v,md(L.update),L.update();else v.el=h.el,L.vnode=v},Y=(h,v,b,L,S,R,z)=>{const D=()=>{if(h.isMounted){let{next:X,bu:q,u:Z,parent:te,vnode:ae}=h,_e=X,me;qt(h,!1),X?(X.el=ae.el,oe(h,X,z)):X=ae,q&&xo(q),(me=X.props&&X.props.onVnodeBeforeUpdate)&&Ye(me,te,X,ae),qt(h,!0);const Oe=pr(h),ot=h.subTree;h.subTree=Oe,E(ot,Oe,f(ot.el),C(ot),h,S,R),X.el=Oe.el,_e===null&&Td(h,Oe.el),Z&&Fe(Z,S),(me=X.props&&X.props.onVnodeUpdated)&&Fe(()=>Ye(me,te,X,ae),S)}else{let X;const{el:q,props:Z}=v,{bm:te,m:ae,parent:_e}=h,me=Jn(v);if(qt(h,!1),te&&xo(te),!me&&(X=Z&&Z.onVnodeBeforeMount)&&Ye(X,_e,v),qt(h,!0),q&&de){const Oe=()=>{h.subTree=pr(h),de(q,h.subTree,h,S,null)};me?v.type.__asyncLoader().then(()=>!h.isUnmounted&&Oe()):Oe()}else{const Oe=h.subTree=pr(h);E(null,Oe,b,L,h,S,R),v.el=Oe.el}if(ae&&Fe(ae,S),!me&&(X=Z&&Z.onVnodeMounted)){const Oe=v;Fe(()=>Ye(X,_e,Oe),S)}(v.shapeFlag&256||_e&&Jn(_e.vnode)&&_e.vnode.shapeFlag&256)&&h.a&&Fe(h.a,S),h.isMounted=!0,v=b=L=null}},V=h.effect=new sa(D,()=>Qo(x),h.scope),x=h.update=()=>V.run();x.id=h.uid,qt(h,!0),x()},oe=(h,v,b)=>{v.component=h;const L=h.vnode.props;h.vnode=v,h.next=null,Gd(h,v.props,L,b),Qd(h,v.children,b),Mn(),ti(),Nn()},J=(h,v,b,L,S,R,z,D,V=!1)=>{const x=h&&h.children,X=h?h.shapeFlag:0,q=v.children,{patchFlag:Z,shapeFlag:te}=v;if(Z>0){if(Z&128){xt(x,q,b,L,S,R,z,D,V);return}else if(Z&256){nt(x,q,b,L,S,R,z,D,V);return}}te&8?(X&16&&Re(x,S,R),q!==x&&u(b,q)):X&16?te&16?xt(x,q,b,L,S,R,z,D,V):Re(x,S,R,!0):(X&8&&u(b,""),te&16&&P(q,b,L,S,R,z,D,V))},nt=(h,v,b,L,S,R,z,D,V)=>{h=h||_n,v=v||_n;const x=h.length,X=v.length,q=Math.min(x,X);let Z;for(Z=0;ZX?Re(h,S,R,!0,!1,q):P(v,b,L,S,R,z,D,V,q)},xt=(h,v,b,L,S,R,z,D,V)=>{let x=0;const X=v.length;let q=h.length-1,Z=X-1;for(;x<=q&&x<=Z;){const te=h[x],ae=v[x]=V?Ft(v[x]):rt(v[x]);if(Yt(te,ae))E(te,ae,b,null,S,R,z,D,V);else break;x++}for(;x<=q&&x<=Z;){const te=h[q],ae=v[Z]=V?Ft(v[Z]):rt(v[Z]);if(Yt(te,ae))E(te,ae,b,null,S,R,z,D,V);else break;q--,Z--}if(x>q){if(x<=Z){const te=Z+1,ae=teZ)for(;x<=q;)Ve(h[x],S,R,!0),x++;else{const te=x,ae=x,_e=new Map;for(x=ae;x<=Z;x++){const We=v[x]=V?Ft(v[x]):rt(v[x]);We.key!=null&&_e.set(We.key,x)}let me,Oe=0;const ot=Z-ae+1;let fn=!1,Ha=0;const Hn=new Array(ot);for(x=0;x=ot){Ve(We,S,R,!0);continue}let ht;if(We.key!=null)ht=_e.get(We.key);else for(me=ae;me<=Z;me++)if(Hn[me-ae]===0&&Yt(We,v[me])){ht=me;break}ht===void 0?Ve(We,S,R,!0):(Hn[ht-ae]=x+1,ht>=Ha?Ha=ht:fn=!0,E(We,v[ht],b,null,S,R,z,D,V),Oe++)}const ja=fn?tf(Hn):_n;for(me=ja.length-1,x=ot-1;x>=0;x--){const We=ae+x,ht=v[We],Wa=We+1{const{el:R,type:z,transition:D,children:V,shapeFlag:x}=h;if(x&6){pt(h.component.subTree,v,b,L);return}if(x&128){h.suspense.move(v,b,L);return}if(x&64){z.move(h,v,b,F);return}if(z===qe){o(R,v,b);for(let q=0;qD.enter(R),S);else{const{leave:q,delayLeave:Z,afterLeave:te}=D,ae=()=>o(R,v,b),_e=()=>{q(R,()=>{ae(),te&&te()})};Z?Z(R,ae,_e):_e()}else o(R,v,b)},Ve=(h,v,b,L=!1,S=!1)=>{const{type:R,props:z,ref:D,children:V,dynamicChildren:x,shapeFlag:X,patchFlag:q,dirs:Z}=h;if(D!=null&&jo(D,null,b,h,!0),X&256){v.ctx.deactivate(h);return}const te=X&1&&Z,ae=!Jn(h);let _e;if(ae&&(_e=z&&z.onVnodeBeforeUnmount)&&Ye(_e,v,h),X&6)_o(h.component,b,L);else{if(X&128){h.suspense.unmount(b,L);return}te&&mt(h,null,v,"beforeUnmount"),X&64?h.type.remove(h,v,b,S,F,L):x&&(R!==qe||q>0&&q&64)?Re(x,v,b,!1,!0):(R===qe&&q&384||!S&&X&16)&&Re(V,v,b),L&&un(h)}(ae&&(_e=z&&z.onVnodeUnmounted)||te)&&Fe(()=>{_e&&Ye(_e,v,h),te&&mt(h,null,v,"unmounted")},b)},un=h=>{const{type:v,el:b,anchor:L,transition:S}=h;if(v===qe){dn(b,L);return}if(v===Xn){T(h);return}const R=()=>{r(b),S&&!S.persisted&&S.afterLeave&&S.afterLeave()};if(h.shapeFlag&1&&S&&!S.persisted){const{leave:z,delayLeave:D}=S,V=()=>z(b,R);D?D(h.el,R,V):V()}else R()},dn=(h,v)=>{let b;for(;h!==v;)b=p(h),r(h),h=b;r(v)},_o=(h,v,b)=>{const{bum:L,scope:S,update:R,subTree:z,um:D}=h;L&&xo(L),S.stop(),R&&(R.active=!1,Ve(z,h,v,b)),D&&Fe(D,v),Fe(()=>{h.isUnmounted=!0},v),v&&v.pendingBranch&&!v.isUnmounted&&h.asyncDep&&!h.asyncResolved&&h.suspenseId===v.pendingId&&(v.deps--,v.deps===0&&v.resolve())},Re=(h,v,b,L=!1,S=!1,R=0)=>{for(let z=R;zh.shapeFlag&6?C(h.component.subTree):h.shapeFlag&128?h.suspense.next():p(h.anchor||h.el),U=(h,v,b)=>{h==null?v._vnode&&Ve(v._vnode,null,null,!0):E(v._vnode||null,h,v,null,null,null,b),ti(),Fo(),v._vnode=h},F={p:E,um:Ve,m:pt,r:un,mt:Ee,mc:P,pc:J,pbc:j,n:C,o:e};let Q,de;return t&&([Q,de]=t(F)),{render:U,hydrate:Q,createApp:qd(U,Q)}}function qt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ml(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function vl(e,t,n=!1){const o=e.children,r=t.children;if(K(o)&&K(r))for(let a=0;a>1,e[n[s]]0&&(t[o]=n[a-1]),n[a]=o)}}for(a=n.length,i=n[a-1];a-- >0;)n[a]=i,i=t[i];return n}const nf=e=>e.__isTeleport,qe=Symbol.for("v-fgt"),Ln=Symbol.for("v-txt"),Qe=Symbol.for("v-cmt"),Xn=Symbol.for("v-stc"),Zn=[];let st=null;function of(e=!1){Zn.push(st=e?null:[])}function rf(){Zn.pop(),st=Zn[Zn.length-1]||null}let so=1;function pi(e){so+=e}function gl(e){return e.dynamicChildren=so>0?st||_n:null,rf(),so>0&&st&&st.push(e),e}function C0(e,t,n,o,r,a){return gl(bl(e,t,n,o,r,a,!0))}function af(e,t,n,o,r){return gl(ke(e,t,n,o,r,!0))}function Br(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const er="__vInternal",_l=({key:e})=>e??null,Do=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||Ae(e)||ne(e)?{i:Ke,r:e,k:t,f:!!n}:e:null);function bl(e,t=null,n=null,o=0,r=null,a=e===qe?0:1,i=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&_l(t),ref:t&&Do(t),scopeId:Xs,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ke};return s?(ya(l,n),a&128&&e.normalize(l)):n&&(l.shapeFlag|=se(n)?8:16),so>0&&!i&&st&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&st.push(l),l}const ke=sf;function sf(e,t=null,n=null,o=0,r=null,a=!1){if((!e||e===Nd)&&(e=Qe),Br(e)){const s=Wt(e,t,!0);return n&&ya(s,n),so>0&&!a&&st&&(s.shapeFlag&6?st[st.indexOf(e)]=s:st.push(s)),s.patchFlag|=-2,s}if(_f(e)&&(e=e.__vccOpts),t){t=lf(t);let{class:s,style:l}=t;s&&!se(s)&&(t.class=ra(s)),ve(l)&&(js(l)&&!K(l)&&(l=Ce({},l)),t.style=oa(l))}const i=se(e)?1:Ad(e)?128:nf(e)?64:ve(e)?4:ne(e)?2:0;return bl(e,t,n,o,r,i,a,!0)}function lf(e){return e?js(e)||er in e?Ce({},e):e:null}function Wt(e,t,n=!1){const{props:o,ref:r,patchFlag:a,children:i}=e,s=t?cf(o||{},t):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&_l(s),ref:t&&t.ref?n&&r?K(r)?r.concat(Do(t)):[r,Do(t)]:Do(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==qe?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Wt(e.ssContent),ssFallback:e.ssFallback&&Wt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function yl(e=" ",t=0){return ke(Ln,null,e,t)}function S0(e,t){const n=ke(Xn,null,e);return n.staticCount=t,n}function P0(e="",t=!1){return t?(of(),af(Qe,null,e)):ke(Qe,null,e)}function rt(e){return e==null||typeof e=="boolean"?ke(Qe):K(e)?ke(qe,null,e.slice()):typeof e=="object"?Ft(e):ke(Ln,null,String(e))}function Ft(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wt(e)}function ya(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),ya(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(er in t)?t._ctx=Ke:r===3&&Ke&&(Ke.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ne(t)?(t={default:t,_ctx:Ke},n=32):(t=String(t),o&64?(n=16,t=[yl(t)]):n=8);e.children=t,e.shapeFlag|=n}function cf(...e){const t={};for(let n=0;nSe||Ke;let wa,pn,hi="__VUE_INSTANCE_SETTERS__";(pn=Ir()[hi])||(pn=Ir()[hi]=[]),pn.push(e=>Se=e),wa=e=>{pn.length>1?pn.forEach(t=>t(e)):pn[0](e)};const On=e=>{wa(e),e.scope.on()},en=()=>{Se&&Se.scope.off(),wa(null)};function wl(e){return e.vnode.shapeFlag&4}let Cn=!1;function pf(e,t=!1){Cn=t;const{props:n,children:o}=e.vnode,r=wl(e);Kd(e,n,r,t),Jd(e,o);const a=r?hf(e,t):void 0;return Cn=!1,a}function hf(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Ws(new Proxy(e.ctx,Fd));const{setup:o}=n;if(o){const r=e.setupContext=o.length>1?vf(e):null;On(e),Mn();const a=Ht(o,e,0,[e.props,r]);if(Nn(),en(),Ls(a)){if(a.then(en,en),t)return a.then(i=>{mi(e,i,t)}).catch(i=>{ho(i,e,0)});e.asyncDep=a}else mi(e,a,t)}else El(e,t)}function mi(e,t,n){ne(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ve(t)&&(e.setupState=qs(t)),El(e,n)}let vi;function El(e,t,n){const o=e.type;if(!e.render){if(!t&&vi&&!o.render){const r=o.template||_a(e).template;if(r){const{isCustomElement:a,compilerOptions:i}=e.appContext.config,{delimiters:s,compilerOptions:l}=o,c=Ce(Ce({isCustomElement:a,delimiters:s},i),l);o.render=vi(r,c)}}e.render=o.render||lt}{On(e),Mn();try{Bd(e)}finally{Nn(),en()}}}function mf(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return ze(e,"get","$attrs"),t[n]}}))}function vf(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return mf(e)},slots:e.slots,emit:e.emit,expose:t}}function tr(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(qs(Ws(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Qn)return Qn[n](e)},has(t,n){return n in t||n in Qn}}))}function gf(e,t=!0){return ne(e)?e.displayName||e.name:e.name||t&&e.__name}function _f(e){return ne(e)&&"__vccOpts"in e}const k=(e,t)=>fd(e,t,Cn);function d(e,t,n){const o=arguments.length;return o===2?ve(t)&&!K(t)?Br(t)?ke(e,null,[t]):ke(e,t):ke(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Br(n)&&(n=[n]),ke(e,t,n))}const bf=Symbol.for("v-scx"),yf=()=>we(bf),wf="3.3.7",Ef="http://www.w3.org/2000/svg",Jt=typeof document<"u"?document:null,gi=Jt&&Jt.createElement("template"),Tf={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t?Jt.createElementNS(Ef,e):Jt.createElement(e,n?{is:n}:void 0);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>Jt.createTextNode(e),createComment:e=>Jt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Jt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,a){const i=n?n.previousSibling:t.lastChild;if(r&&(r===a||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===a||!(r=r.nextSibling)););else{gi.innerHTML=o?`${e}`:e;const s=gi.content;if(o){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Mt="transition",jn="animation",Sn=Symbol("_vtc"),Ot=(e,{slots:t})=>d(Od,Al(e),t);Ot.displayName="Transition";const Tl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Af=Ot.props=Ce({},ol,Tl),Kt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},_i=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Al(e){const t={};for(const B in e)B in Tl||(t[B]=e[B]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,enterFromClass:a=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:l=a,appearActiveClass:c=i,appearToClass:u=s,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=kf(r),E=g&&g[0],A=g&&g[1],{onBeforeEnter:w,onEnter:O,onEnterCancelled:y,onLeave:T,onLeaveCancelled:N,onBeforeAppear:I=w,onAppear:M=O,onAppearCancelled:P=y}=t,H=(B,ee,Ee)=>{Nt(B,ee?u:s),Nt(B,ee?c:i),Ee&&Ee()},j=(B,ee)=>{B._isLeaving=!1,Nt(B,f),Nt(B,m),Nt(B,p),ee&&ee()},ie=B=>(ee,Ee)=>{const Te=B?M:O,Y=()=>H(ee,B,Ee);Kt(Te,[ee,Y]),bi(()=>{Nt(ee,B?l:a),bt(ee,B?u:s),_i(Te)||yi(ee,o,E,Y)})};return Ce(t,{onBeforeEnter(B){Kt(w,[B]),bt(B,a),bt(B,i)},onBeforeAppear(B){Kt(I,[B]),bt(B,l),bt(B,c)},onEnter:ie(!1),onAppear:ie(!0),onLeave(B,ee){B._isLeaving=!0;const Ee=()=>j(B,ee);bt(B,f),Ll(),bt(B,p),bi(()=>{B._isLeaving&&(Nt(B,f),bt(B,m),_i(T)||yi(B,o,A,Ee))}),Kt(T,[B,Ee])},onEnterCancelled(B){H(B,!1),Kt(y,[B])},onAppearCancelled(B){H(B,!0),Kt(P,[B])},onLeaveCancelled(B){j(B),Kt(N,[B])}})}function kf(e){if(e==null)return null;if(ve(e))return[gr(e.enter),gr(e.leave)];{const t=gr(e);return[t,t]}}function gr(e){return Ou(e)}function bt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Sn]||(e[Sn]=new Set)).add(t)}function Nt(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[Sn];n&&(n.delete(t),n.size||(e[Sn]=void 0))}function bi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Lf=0;function yi(e,t,n,o){const r=e._endId=++Lf,a=()=>{r===e._endId&&o()};if(n)return setTimeout(a,n);const{type:i,timeout:s,propCount:l}=kl(e,t);if(!i)return o();const c=i+"end";let u=0;const f=()=>{e.removeEventListener(c,p),a()},p=m=>{m.target===e&&++u>=l&&f()};setTimeout(()=>{u(n[g]||"").split(", "),r=o(`${Mt}Delay`),a=o(`${Mt}Duration`),i=wi(r,a),s=o(`${jn}Delay`),l=o(`${jn}Duration`),c=wi(s,l);let u=null,f=0,p=0;t===Mt?i>0&&(u=Mt,f=i,p=a.length):t===jn?c>0&&(u=jn,f=c,p=l.length):(f=Math.max(i,c),u=f>0?i>c?Mt:jn:null,p=u?u===Mt?a.length:l.length:0);const m=u===Mt&&/\b(transform|all)(,|$)/.test(o(`${Mt}Property`).toString());return{type:u,timeout:f,propCount:p,hasTransform:m}}function wi(e,t){for(;e.lengthEi(n)+Ei(e[o])))}function Ei(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Ll(){return document.body.offsetHeight}function Of(e,t,n){const o=e[Sn];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ea=Symbol("_vod"),I0={beforeMount(e,{value:t},{transition:n}){e[Ea]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Wn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Wn(e,!0),o.enter(e)):o.leave(e,()=>{Wn(e,!1)}):Wn(e,t))},beforeUnmount(e,{value:t}){Wn(e,t)}};function Wn(e,t){e.style.display=t?e[Ea]:"none"}function Cf(e,t,n){const o=e.style,r=se(n);if(n&&!r){if(t&&!se(t))for(const a in t)n[a]==null&&zr(o,a,"");for(const a in n)zr(o,a,n[a])}else{const a=o.display;r?t!==n&&(o.cssText=n):t&&e.removeAttribute("style"),Ea in e&&(o.display=a)}}const Ti=/\s*!important$/;function zr(e,t,n){if(K(n))n.forEach(o=>zr(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=Sf(e,t);Ti.test(n)?e.setProperty($n(o),n.replace(Ti,""),"important"):e[o]=n}}const Ai=["Webkit","Moz","ms"],_r={};function Sf(e,t){const n=_r[t];if(n)return n;let o=Ze(t);if(o!=="filter"&&o in e)return _r[t]=o;o=fo(o);for(let r=0;rbr||($f.then(()=>br=0),br=Date.now());function Nf(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;Je(Vf(o,n.value),t,5,[o])};return n.value=e,n.attached=Mf(),n}function Vf(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>r=>!r._stopped&&o&&o(r))}else return t}const Ci=/^on[a-z]/,Ff=(e,t,n,o,r=!1,a,i,s,l)=>{t==="class"?Of(e,o,r):t==="style"?Cf(e,n,o):co(t)?ea(t)||xf(e,t,n,o,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Bf(e,t,o,r))?If(e,t,o,a,i,s,l):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),Pf(e,t,o,r))};function Bf(e,t,n,o){return o?!!(t==="innerHTML"||t==="textContent"||t in e&&Ci.test(t)&&ne(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Ci.test(t)&&se(n)?!1:t in e}const Ol=new WeakMap,Cl=new WeakMap,Wo=Symbol("_moveCb"),Si=Symbol("_enterCb"),Sl={name:"TransitionGroup",props:Ce({},Af,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ln(),o=nl();let r,a;return il(()=>{if(!r.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!Uf(r[0].el,n.vnode.el,i))return;r.forEach(Hf),r.forEach(jf);const s=r.filter(Wf);Ll(),s.forEach(l=>{const c=l.el,u=c.style;bt(c,i),u.transform=u.webkitTransform=u.transitionDuration="";const f=c[Wo]=p=>{p&&p.target!==c||(!p||/transform$/.test(p.propertyName))&&(c.removeEventListener("transitionend",f),c[Wo]=null,Nt(c,i))};c.addEventListener("transitionend",f)})}),()=>{const i=le(e),s=Al(i);let l=i.tag||qe;r=a,a=t.default?va(t.default()):[];for(let c=0;cdelete e.mode;Sl.props;const Ta=Sl;function Hf(e){const t=e.el;t[Wo]&&t[Wo](),t[Si]&&t[Si]()}function jf(e){Cl.set(e,e.el.getBoundingClientRect())}function Wf(e){const t=Ol.get(e),n=Cl.get(e),o=t.left-n.left,r=t.top-n.top;if(o||r){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${o}px,${r}px)`,a.transitionDuration="0s",e}}function Uf(e,t,n){const o=e.cloneNode(),r=e[Sn];r&&r.forEach(s=>{s.split(/\s+/).forEach(l=>l&&o.classList.remove(l))}),n.split(/\s+/).forEach(s=>s&&o.classList.add(s)),o.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(o);const{hasTransform:i}=kl(o);return a.removeChild(o),i}const Ut=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>xo(t,n):t};function qf(e){e.target.composing=!0}function Pi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Xe=Symbol("_assign"),Ii={created(e,{modifiers:{lazy:t,trim:n,number:o}},r){e[Xe]=Ut(r);const a=o||r.props&&r.props.type==="number";Tt(e,t?"change":"input",i=>{if(i.target.composing)return;let s=e.value;n&&(s=s.trim()),a&&(s=Mo(s)),e[Xe](s)}),n&&Tt(e,"change",()=>{e.value=e.value.trim()}),t||(Tt(e,"compositionstart",qf),Tt(e,"compositionend",Pi),Tt(e,"change",Pi))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:o,number:r}},a){if(e[Xe]=Ut(a),e.composing||document.activeElement===e&&e.type!=="range"&&(n||o&&e.value.trim()===t||(r||e.type==="number")&&Mo(e.value)===t))return;const i=t??"";e.value!==i&&(e.value=i)}},Kf={deep:!0,created(e,t,n){e[Xe]=Ut(n),Tt(e,"change",()=>{const o=e._modelValue,r=Pn(e),a=e.checked,i=e[Xe];if(K(o)){const s=aa(o,r),l=s!==-1;if(a&&!l)i(o.concat(r));else if(!a&&l){const c=[...o];c.splice(s,1),i(c)}}else if(Dn(o)){const s=new Set(o);a?s.add(r):s.delete(r),i(s)}else i(Pl(e,a))})},mounted:Ri,beforeUpdate(e,t,n){e[Xe]=Ut(n),Ri(e,t,n)}};function Ri(e,{value:t,oldValue:n},o){e._modelValue=t,K(t)?e.checked=aa(t,o.props.value)>-1:Dn(t)?e.checked=t.has(o.props.value):t!==n&&(e.checked=nn(t,Pl(e,!0)))}const Gf={created(e,{value:t},n){e.checked=nn(t,n.props.value),e[Xe]=Ut(n),Tt(e,"change",()=>{e[Xe](Pn(e))})},beforeUpdate(e,{value:t,oldValue:n},o){e[Xe]=Ut(o),t!==n&&(e.checked=nn(t,o.props.value))}},Yf={deep:!0,created(e,{value:t,modifiers:{number:n}},o){const r=Dn(t);Tt(e,"change",()=>{const a=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?Mo(Pn(i)):Pn(i));e[Xe](e.multiple?r?new Set(a):a:a[0])}),e[Xe]=Ut(o)},mounted(e,{value:t}){xi(e,t)},beforeUpdate(e,t,n){e[Xe]=Ut(n)},updated(e,{value:t}){xi(e,t)}};function xi(e,t){const n=e.multiple;if(!(n&&!K(t)&&!Dn(t))){for(let o=0,r=e.options.length;o-1:a.selected=t.has(i);else if(nn(Pn(a),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Pn(e){return"_value"in e?e._value:e.value}function Pl(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const R0={created(e,t,n){Co(e,t,n,null,"created")},mounted(e,t,n){Co(e,t,n,null,"mounted")},beforeUpdate(e,t,n,o){Co(e,t,n,o,"beforeUpdate")},updated(e,t,n,o){Co(e,t,n,o,"updated")}};function Jf(e,t){switch(e){case"SELECT":return Yf;case"TEXTAREA":return Ii;default:switch(t){case"checkbox":return Kf;case"radio":return Gf;default:return Ii}}}function Co(e,t,n,o,r){const i=Jf(e.tagName,n.props&&n.props.type)[r];i&&i(e,t,n,o)}const Qf=Ce({patchProp:Ff},Tf);let yr,Di=!1;function Xf(){return yr=Di?yr:Zd(Qf),Di=!0,yr}const Zf=(...e)=>{const t=Xf().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=ep(o);if(r)return n(r,!0,r instanceof SVGElement)},t};function ep(e){return se(e)?document.querySelector(e):e}const tp={"v-2d0a870d":()=>_(()=>import("./index.html-279f7857.js"),[]).then(({data:e})=>e),"v-082946dd":()=>_(()=>import("./community.html-84f8e709.js"),[]).then(({data:e})=>e),"v-038e810e":()=>_(()=>import("./i18n.html-10933388.js"),[]).then(({data:e})=>e),"v-ba407326":()=>_(()=>import("./menu.html-5e29ea11.js"),[]).then(({data:e})=>e),"v-586858ed":()=>_(()=>import("./project.html-9b08d186.js"),[]).then(({data:e})=>e),"v-0c01f6a4":()=>_(()=>import("./quick-start.html-dab9eba3.js"),[]).then(({data:e})=>e),"v-23b9870a":()=>_(()=>import("./side-load.html-93a3f61b.js"),[]).then(({data:e})=>e),"v-7d29d7d8":()=>_(()=>import("./star-request.html-7f0089f1.js"),[]).then(({data:e})=>e),"v-2d0ad528":()=>_(()=>import("./index.html-81dd031d.js"),[]).then(({data:e})=>e),"v-5cad49b8":()=>_(()=>import("./community.html-f8bc6215.js"),[]).then(({data:e})=>e),"v-27c4e153":()=>_(()=>import("./i18n.html-f972be08.js"),[]).then(({data:e})=>e),"v-71d3b29c":()=>_(()=>import("./menu.html-37a47978.js"),[]).then(({data:e})=>e),"v-6c355688":()=>_(()=>import("./project.html-bd19dacf.js"),[]).then(({data:e})=>e),"v-4f90aebf":()=>_(()=>import("./quick-start.html-0a9c32af.js"),[]).then(({data:e})=>e),"v-783d89e5":()=>_(()=>import("./side-load.html-0a898ed6.js"),[]).then(({data:e})=>e),"v-a91bb9c6":()=>_(()=>import("./star-request.html-eb357667.js"),[]).then(({data:e})=>e),"v-1bd4ef83":()=>_(()=>import("./FAQ.html-58ca3047.js"),[]).then(({data:e})=>e),"v-5c3f740a":()=>_(()=>import("./Gacha-system-and-export-principal.html-015af494.js"),[]).then(({data:e})=>e),"v-5f449840":()=>_(()=>import("./index.html-6a43042e.js"),[]).then(({data:e})=>e),"v-e14c56e4":()=>_(()=>import("./dependency.html-cb812315.js"),[]).then(({data:e})=>e),"v-1a028d16":()=>_(()=>import("./exceptions.html-a05a1b2d.js"),[]).then(({data:e})=>e),"v-bd668802":()=>_(()=>import("./get-stoken-cookie-from-the-third-party.html-75f986b3.js"),[]).then(({data:e})=>e),"v-51647c4a":()=>_(()=>import("./known-issue.html-dcf2dda3.js"),[]).then(({data:e})=>e),"v-bbae7dd2":()=>_(()=>import("./uninstall.html-90d5e7a1.js"),[]).then(({data:e})=>e),"v-f88d343e":()=>_(()=>import("./index.html-061d6dc0.js"),[]).then(({data:e})=>e),"v-4c2cca8b":()=>_(()=>import("./contribute.html-7f946320.js"),[]).then(({data:e})=>e),"v-32bb1805":()=>_(()=>import("./platform.html-a018603e.js"),[]).then(({data:e})=>e),"v-30f089b6":()=>_(()=>import("./index.html-ce254148.js"),[]).then(({data:e})=>e),"v-699a13b0":()=>_(()=>import("./achievements.html-a6a0de9a.js"),[]).then(({data:e})=>e),"v-f3692af4":()=>_(()=>import("./character-data.html-8a78117e.js"),[]).then(({data:e})=>e),"v-10108380":()=>_(()=>import("./character-wiki.html-90b9eedb.js"),[]).then(({data:e})=>e),"v-36ceadac":()=>_(()=>import("./dashboard.html-de43d08c.js"),[]).then(({data:e})=>e),"v-83f6294a":()=>_(()=>import("./develop-plan.html-72b138aa.js"),[]).then(({data:e})=>e),"v-7839fe83":()=>_(()=>import("./game-launcher.html-bbaa8a3b.js"),[]).then(({data:e})=>e),"v-0106e0dc":()=>_(()=>import("./hutao-API.html-4088b7a3.js"),[]).then(({data:e})=>e),"v-639b3ef9":()=>_(()=>import("./hutao-settings.html-280e1afc.js"),[]).then(({data:e})=>e),"v-03aaffb1":()=>_(()=>import("./mhy-account-switch.html-ca9beaf1.js"),[]).then(({data:e})=>e),"v-1e98d471":()=>_(()=>import("./monster-wiki.html-ed4ef353.js"),[]).then(({data:e})=>e),"v-124743a4":()=>_(()=>import("./real-time-notes.html-6da9b42a.js"),[]).then(({data:e})=>e),"v-3b7edd61":()=>_(()=>import("./setup.html-af40dc11.js"),[]).then(({data:e})=>e),"v-e30b3c46":()=>_(()=>import("./weapon-wiki.html-5c2ca54e.js"),[]).then(({data:e})=>e),"v-b8e3a2b8":()=>_(()=>import("./wish-export.html-b1d5faab.js"),[]).then(({data:e})=>e),"v-a4f9d2c4":()=>_(()=>import("./index.html-3216a9e5.js"),[]).then(({data:e})=>e),"v-45ceb024":()=>_(()=>import("./bug-report.html-84fe1704.js"),[]).then(({data:e})=>e),"v-b4085a44":()=>_(()=>import("./privacy-notice.html-69586390.js"),[]).then(({data:e})=>e),"v-b1c7a1c2":()=>_(()=>import("./tos.html-e7fb0dd0.js"),[]).then(({data:e})=>e),"v-52f43e3b":()=>_(()=>import("./update-log.html-999bcfb3.js"),[]).then(({data:e})=>e),"v-4a1d3ac8":()=>_(()=>import("./FAQ.html-42cbaba4.js"),[]).then(({data:e})=>e),"v-b0dd6b00":()=>_(()=>import("./Gacha-system-and-export-principal.html-81906cdb.js"),[]).then(({data:e})=>e),"v-16d7d7b6":()=>_(()=>import("./index.html-a228d087.js"),[]).then(({data:e})=>e),"v-37e841a9":()=>_(()=>import("./dependency.html-6aa2a973.js"),[]).then(({data:e})=>e),"v-c8e5b2e0":()=>_(()=>import("./exceptions.html-5e79025e.js"),[]).then(({data:e})=>e),"v-6892c29a":()=>_(()=>import("./get-stoken-cookie-from-the-third-party.html-698c6b8e.js"),[]).then(({data:e})=>e),"v-8ab89ae2":()=>_(()=>import("./known-issue.html-353310f4.js"),[]).then(({data:e})=>e),"v-a04a76c8":()=>_(()=>import("./uninstall.html-3103004e.js"),[]).then(({data:e})=>e),"v-d0f33908":()=>_(()=>import("./index.html-6913b6c2.js"),[]).then(({data:e})=>e),"v-62778390":()=>_(()=>import("./contribute.html-64ac2d95.js"),[]).then(({data:e})=>e),"v-c80b636c":()=>_(()=>import("./platform.html-ec227b31.js"),[]).then(({data:e})=>e),"v-56d3ae80":()=>_(()=>import("./symposium1.html-4ca69a8e.js"),[]).then(({data:e})=>e),"v-5369fd42":()=>_(()=>import("./symposium2.html-b9b55802.js"),[]).then(({data:e})=>e),"v-0bbe1b6a":()=>_(()=>import("./index.html-947e2238.js"),[]).then(({data:e})=>e),"v-2841a60b":()=>_(()=>import("./achievements.html-48ffc151.js"),[]).then(({data:e})=>e),"v-3957d221":()=>_(()=>import("./character-data.html-42720767.js"),[]).then(({data:e})=>e),"v-a9f7b44a":()=>_(()=>import("./character-wiki.html-1b9db7c1.js"),[]).then(({data:e})=>e),"v-1b6aa6a2":()=>_(()=>import("./dashboard.html-50b728ce.js"),[]).then(({data:e})=>e),"v-7cac7db6":()=>_(()=>import("./develop-plan.html-4cd8de09.js"),[]).then(({data:e})=>e),"v-e2f690f0":()=>_(()=>import("./game-launcher.html-48fbcd0a.js"),[]).then(({data:e})=>e),"v-0eb8e461":()=>_(()=>import("./hutao-API.html-c450cbe0.js"),[]).then(({data:e})=>e),"v-16a7a694":()=>_(()=>import("./hutao-settings.html-72e1a0f6.js"),[]).then(({data:e})=>e),"v-04b421cc":()=>_(()=>import("./mhy-account-switch.html-db811865.js"),[]).then(({data:e})=>e),"v-457f3268":()=>_(()=>import("./monster-wiki.html-a4668d7a.js"),[]).then(({data:e})=>e),"v-b5462c1a":()=>_(()=>import("./real-time-notes.html-42fa37e7.js"),[]).then(({data:e})=>e),"v-0e3d2934":()=>_(()=>import("./setup.html-829b4bbd.js"),[]).then(({data:e})=>e),"v-108ccfbc":()=>_(()=>import("./weapon-wiki.html-12997220.js"),[]).then(({data:e})=>e),"v-0ccd64e9":()=>_(()=>import("./wish-export.html-30e5101d.js"),[]).then(({data:e})=>e),"v-c4bb0cba":()=>_(()=>import("./index.html-8616774c.js"),[]).then(({data:e})=>e),"v-c87f8b6e":()=>_(()=>import("./bug-report.html-310cbc3b.js"),[]).then(({data:e})=>e),"v-70e6808e":()=>_(()=>import("./privacy-notice.html-e40ff099.js"),[]).then(({data:e})=>e),"v-647ebd24":()=>_(()=>import("./tos.html-3a563f3d.js"),[]).then(({data:e})=>e),"v-119bd096":()=>_(()=>import("./update-log.html-942a467d.js"),[]).then(({data:e})=>e),"v-3706649a":()=>_(()=>import("./404.html-cc4520a7.js"),[]).then(({data:e})=>e),"v-8daa1a0e":()=>_(()=>import("./index.html-ead0711a.js"),[]).then(({data:e})=>e)},np=JSON.parse('{"base":"/","lang":"en-US","title":"","description":"","head":[["script",{"src":"https://umami.irain.in/script.js","data-website-id":"1a7be6c3-a024-47e2-9a42-29e66b997a36","async":"","defer":""}],["script",{"type":"module","src":"https://get.microsoft.com/badge/ms-store-badge.bundled.js"}],["link",{"rel":"icon","href":"/favicon.ico"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-512.png","type":"image/png","sizes":"512x512"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-192.png","type":"image/png","sizes":"192x192"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-144.png","type":"image/png","sizes":"144x144"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-72.png","type":"image/png","sizes":"72x72"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-96.png","type":"image/png","sizes":"96x96"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-48.png","type":"image/png","sizes":"48x48"}],["link",{"rel":"manifest","href":"/manifest.webmanifest","crossorigin":"use-credentials"}],["meta",{"name":"theme-color","content":"#f26d6d"}],["link",{"rel":"apple-touch-icon","href":"/favicon.ico"}],["meta",{"name":"apple-mobile-web-app-capable","content":"yes"}],["meta",{"name":"apple-mobile-web-app-status-bar-style","content":"black"}],["meta",{"name":"msapplication-TileImage","content":"/favicon.ico"}],["meta",{"name":"msapplication-TileColor","content":"#ffffff"}],["meta",{"name":"viewport","content":"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"}]],"locales":{"/zh/":{"lang":"zh-CN","title":"胡桃工具箱","description":"多功能的原神工具箱"},"/en/":{"lang":"en-US","title":"Snap Hutao","description":"Super utilitarian Genshin Impact Toolkit"}}}');var op=([e,t,n])=>e==="meta"&&t.name?`${e}.${t.name}`:["title","base"].includes(e)?e:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,t,n]),rp=e=>{const t=new Set,n=[];return e.forEach(o=>{const r=op(o);t.has(r)||(t.add(r),n.push(o))}),n},ap=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,ip=e=>e.startsWith("ftp://"),Fn=e=>/^(https?:)?\/\//.test(e),sp=/.md((\?|#).*)?$/,Uo=(e,t="/")=>!!(Fn(e)||ip(e)||e.startsWith("/")&&!e.startsWith(t)&&!sp.test(e)),Il=e=>/^mailto:/.test(e),lp=e=>/^tel:/.test(e),Aa=e=>Object.prototype.toString.call(e)==="[object Object]",ka=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Rl=e=>e[0]==="/"?e.slice(1):e,cp=(e,t)=>{const n=Object.keys(e).sort((o,r)=>{const a=r.split("/").length-o.split("/").length;return a!==0?a:r.length-o.length});for(const o of n)if(t.startsWith(o))return o;return"/"},$i=(e,t="/")=>{const n=e.replace(/^(https?:)?\/\/[^/]*/,"");return n.startsWith(t)?`/${n.slice(t.length)}`:n};const xl={"v-2d0a870d":$(()=>_(()=>import("./index.html-cead7bed.js"),["assets/index.html-cead7bed.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-082946dd":$(()=>_(()=>import("./community.html-6555cfd3.js"),["assets/community.html-6555cfd3.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-038e810e":$(()=>_(()=>import("./i18n.html-6ae0b651.js"),["assets/i18n.html-6ae0b651.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-ba407326":$(()=>_(()=>import("./menu.html-96b70279.js"),["assets/menu.html-96b70279.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-586858ed":$(()=>_(()=>import("./project.html-8bb151df.js"),["assets/project.html-8bb151df.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0c01f6a4":$(()=>_(()=>import("./quick-start.html-5b6055dc.js"),["assets/quick-start.html-5b6055dc.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-23b9870a":$(()=>_(()=>import("./side-load.html-f0d36725.js"),["assets/side-load.html-f0d36725.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7d29d7d8":$(()=>_(()=>import("./star-request.html-c91f6d76.js"),["assets/star-request.html-c91f6d76.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-2d0ad528":$(()=>_(()=>import("./index.html-08181d34.js"),["assets/index.html-08181d34.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5cad49b8":$(()=>_(()=>import("./community.html-1c109378.js"),["assets/community.html-1c109378.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-27c4e153":$(()=>_(()=>import("./i18n.html-36f51d1e.js"),["assets/i18n.html-36f51d1e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-71d3b29c":$(()=>_(()=>import("./menu.html-5943d5ab.js"),["assets/menu.html-5943d5ab.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-6c355688":$(()=>_(()=>import("./project.html-c2c3c465.js"),["assets/project.html-c2c3c465.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-4f90aebf":$(()=>_(()=>import("./quick-start.html-7495b37d.js"),["assets/quick-start.html-7495b37d.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-783d89e5":$(()=>_(()=>import("./side-load.html-503e3506.js"),["assets/side-load.html-503e3506.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a91bb9c6":$(()=>_(()=>import("./star-request.html-b1a3dcce.js"),["assets/star-request.html-b1a3dcce.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1bd4ef83":$(()=>_(()=>import("./FAQ.html-2df9b9a2.js"),["assets/FAQ.html-2df9b9a2.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5c3f740a":$(()=>_(()=>import("./Gacha-system-and-export-principal.html-a2c73de6.js"),["assets/Gacha-system-and-export-principal.html-a2c73de6.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5f449840":$(()=>_(()=>import("./index.html-9b2dfc89.js"),["assets/index.html-9b2dfc89.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-e14c56e4":$(()=>_(()=>import("./dependency.html-cc0594b5.js"),["assets/dependency.html-cc0594b5.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1a028d16":$(()=>_(()=>import("./exceptions.html-d3fe7c53.js"),["assets/exceptions.html-d3fe7c53.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-bd668802":$(()=>_(()=>import("./get-stoken-cookie-from-the-third-party.html-3f1836be.js"),["assets/get-stoken-cookie-from-the-third-party.html-3f1836be.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-51647c4a":$(()=>_(()=>import("./known-issue.html-7adae529.js"),["assets/known-issue.html-7adae529.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-bbae7dd2":$(()=>_(()=>import("./uninstall.html-5214283b.js"),["assets/uninstall.html-5214283b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-f88d343e":$(()=>_(()=>import("./index.html-0c692529.js"),["assets/index.html-0c692529.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-4c2cca8b":$(()=>_(()=>import("./contribute.html-70e3d28c.js"),["assets/contribute.html-70e3d28c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-32bb1805":$(()=>_(()=>import("./platform.html-36392819.js"),["assets/platform.html-36392819.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-30f089b6":$(()=>_(()=>import("./index.html-f72bced7.js"),["assets/index.html-f72bced7.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-699a13b0":$(()=>_(()=>import("./achievements.html-c51f91b4.js"),["assets/achievements.html-c51f91b4.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-f3692af4":$(()=>_(()=>import("./character-data.html-0e2a5520.js"),["assets/character-data.html-0e2a5520.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-10108380":$(()=>_(()=>import("./character-wiki.html-1a49a85c.js"),["assets/character-wiki.html-1a49a85c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-36ceadac":$(()=>_(()=>import("./dashboard.html-1f8f954a.js"),["assets/dashboard.html-1f8f954a.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-83f6294a":$(()=>_(()=>import("./develop-plan.html-95024404.js"),["assets/develop-plan.html-95024404.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7839fe83":$(()=>_(()=>import("./game-launcher.html-904f564a.js"),["assets/game-launcher.html-904f564a.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0106e0dc":$(()=>_(()=>import("./hutao-API.html-265d153a.js"),["assets/hutao-API.html-265d153a.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-639b3ef9":$(()=>_(()=>import("./hutao-settings.html-5f75f3e0.js"),["assets/hutao-settings.html-5f75f3e0.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-03aaffb1":$(()=>_(()=>import("./mhy-account-switch.html-e484bd06.js"),["assets/mhy-account-switch.html-e484bd06.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1e98d471":$(()=>_(()=>import("./monster-wiki.html-3aaff82c.js"),["assets/monster-wiki.html-3aaff82c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-124743a4":$(()=>_(()=>import("./real-time-notes.html-de90b20c.js"),["assets/real-time-notes.html-de90b20c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-3b7edd61":$(()=>_(()=>import("./setup.html-aafce36e.js"),["assets/setup.html-aafce36e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-e30b3c46":$(()=>_(()=>import("./weapon-wiki.html-0edcd288.js"),["assets/weapon-wiki.html-0edcd288.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b8e3a2b8":$(()=>_(()=>import("./wish-export.html-fba13e79.js"),["assets/wish-export.html-fba13e79.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a4f9d2c4":$(()=>_(()=>import("./index.html-99346794.js"),["assets/index.html-99346794.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-45ceb024":$(()=>_(()=>import("./bug-report.html-690a4891.js"),["assets/bug-report.html-690a4891.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b4085a44":$(()=>_(()=>import("./privacy-notice.html-0f688115.js"),["assets/privacy-notice.html-0f688115.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b1c7a1c2":$(()=>_(()=>import("./tos.html-ba544e7e.js"),["assets/tos.html-ba544e7e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-52f43e3b":$(()=>_(()=>import("./update-log.html-dbfb081f.js"),["assets/update-log.html-dbfb081f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-4a1d3ac8":$(()=>_(()=>import("./FAQ.html-dd5de6e3.js"),["assets/FAQ.html-dd5de6e3.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b0dd6b00":$(()=>_(()=>import("./Gacha-system-and-export-principal.html-340b7e28.js"),["assets/Gacha-system-and-export-principal.html-340b7e28.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-16d7d7b6":$(()=>_(()=>import("./index.html-07883274.js"),["assets/index.html-07883274.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-37e841a9":$(()=>_(()=>import("./dependency.html-0db61041.js"),["assets/dependency.html-0db61041.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c8e5b2e0":$(()=>_(()=>import("./exceptions.html-fc4790dc.js"),["assets/exceptions.html-fc4790dc.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-6892c29a":$(()=>_(()=>import("./get-stoken-cookie-from-the-third-party.html-032b8690.js"),["assets/get-stoken-cookie-from-the-third-party.html-032b8690.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-8ab89ae2":$(()=>_(()=>import("./known-issue.html-ea460e26.js"),["assets/known-issue.html-ea460e26.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a04a76c8":$(()=>_(()=>import("./uninstall.html-4c4795fe.js"),["assets/uninstall.html-4c4795fe.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-d0f33908":$(()=>_(()=>import("./index.html-c63d8593.js"),["assets/index.html-c63d8593.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-62778390":$(()=>_(()=>import("./contribute.html-d0274f20.js"),["assets/contribute.html-d0274f20.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c80b636c":$(()=>_(()=>import("./platform.html-b4ee221c.js"),["assets/platform.html-b4ee221c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-56d3ae80":$(()=>_(()=>import("./symposium1.html-cbffe867.js"),["assets/symposium1.html-cbffe867.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5369fd42":$(()=>_(()=>import("./symposium2.html-46c6280f.js"),["assets/symposium2.html-46c6280f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0bbe1b6a":$(()=>_(()=>import("./index.html-97c29d40.js"),["assets/index.html-97c29d40.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-2841a60b":$(()=>_(()=>import("./achievements.html-a2f7d03f.js"),["assets/achievements.html-a2f7d03f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-3957d221":$(()=>_(()=>import("./character-data.html-9b06863f.js"),["assets/character-data.html-9b06863f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a9f7b44a":$(()=>_(()=>import("./character-wiki.html-1c3e2191.js"),["assets/character-wiki.html-1c3e2191.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1b6aa6a2":$(()=>_(()=>import("./dashboard.html-877fc948.js"),["assets/dashboard.html-877fc948.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7cac7db6":$(()=>_(()=>import("./develop-plan.html-80517d09.js"),["assets/develop-plan.html-80517d09.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-e2f690f0":$(()=>_(()=>import("./game-launcher.html-3ffa01a8.js"),["assets/game-launcher.html-3ffa01a8.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0eb8e461":$(()=>_(()=>import("./hutao-API.html-c6aa20fe.js"),["assets/hutao-API.html-c6aa20fe.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-16a7a694":$(()=>_(()=>import("./hutao-settings.html-0972e72a.js"),["assets/hutao-settings.html-0972e72a.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-04b421cc":$(()=>_(()=>import("./mhy-account-switch.html-d22df260.js"),["assets/mhy-account-switch.html-d22df260.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-457f3268":$(()=>_(()=>import("./monster-wiki.html-e5fc1b84.js"),["assets/monster-wiki.html-e5fc1b84.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b5462c1a":$(()=>_(()=>import("./real-time-notes.html-25aed809.js"),["assets/real-time-notes.html-25aed809.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0e3d2934":$(()=>_(()=>import("./setup.html-a545afac.js"),["assets/setup.html-a545afac.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-108ccfbc":$(()=>_(()=>import("./weapon-wiki.html-dcbaafb6.js"),["assets/weapon-wiki.html-dcbaafb6.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0ccd64e9":$(()=>_(()=>import("./wish-export.html-0565104e.js"),["assets/wish-export.html-0565104e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c4bb0cba":$(()=>_(()=>import("./index.html-25a8e1be.js"),["assets/index.html-25a8e1be.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c87f8b6e":$(()=>_(()=>import("./bug-report.html-23f07cf7.js"),["assets/bug-report.html-23f07cf7.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-70e6808e":$(()=>_(()=>import("./privacy-notice.html-8f872be8.js"),["assets/privacy-notice.html-8f872be8.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-647ebd24":$(()=>_(()=>import("./tos.html-1c0a6890.js"),["assets/tos.html-1c0a6890.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-119bd096":$(()=>_(()=>import("./update-log.html-3e82a157.js"),["assets/update-log.html-3e82a157.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-3706649a":$(()=>_(()=>import("./404.html-73628d5c.js"),["assets/404.html-73628d5c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-8daa1a0e":$(()=>_(()=>import("./index.html-e4c3aa9e.js"),["assets/index.html-e4c3aa9e.js","assets/plugin-vue_export-helper-c27b6911.js"]))};var up=Symbol(""),Dl=Symbol(""),dp=St({key:"",path:"",title:"",lang:"",frontmatter:{},headers:[]}),he=()=>{const e=we(Dl);if(!e)throw new Error("pageData() is called without provider.");return e},$l=Symbol(""),Le=()=>{const e=we($l);if(!e)throw new Error("usePageFrontmatter() is called without provider.");return e},Ml=Symbol(""),fp=()=>{const e=we(Ml);if(!e)throw new Error("usePageHead() is called without provider.");return e},pp=Symbol(""),Nl=Symbol(""),nr=()=>{const e=we(Nl);if(!e)throw new Error("usePageLang() is called without provider.");return e},Vl=Symbol(""),hp=()=>{const e=we(Vl);if(!e)throw new Error("usePageLayout() is called without provider.");return e},mp=G(tp),La=Symbol(""),It=()=>{const e=we(La);if(!e)throw new Error("useRouteLocale() is called without provider.");return e},vn=G(np),Fl=()=>vn,Bl=Symbol(""),or=()=>{const e=we(Bl);if(!e)throw new Error("useSiteLocaleData() is called without provider.");return e},vp=Symbol(""),gp="Layout",_p="NotFound",yt=po({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageData:async e=>{const t=mp.value[e];return await(t==null?void 0:t())??dp},resolvePageFrontmatter:e=>e.frontmatter,resolvePageHead:(e,t,n)=>{const o=se(t.description)?t.description:n.description,r=[...K(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:o}]];return rp(r)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||"en-US",resolvePageLayout:(e,t)=>{let n;if(e.path){const o=e.frontmatter.layout;se(o)?n=o:n=gp}else n=_p;return t[n]},resolveRouteLocale:(e,t)=>cp(e,t),resolveSiteLocaleData:(e,t)=>({...e,...e.locales[t]})}),rr=W({name:"ClientOnly",setup(e,t){const n=G(!1);return pe(()=>{n.value=!0}),()=>{var o,r;return n.value?(r=(o=t.slots).default)==null?void 0:r.call(o):null}}}),zl=W({name:"Content",props:{pageKey:{type:String,required:!1,default:""}},setup(e){const t=he(),n=k(()=>xl[e.pageKey||t.value.key]);return()=>n.value?d(n.value):d("div","404 Not Found")}}),Ne=(e={})=>e,Me=e=>Fn(e)?e:`/${Rl(e)}`;const bp={};/*! +const bu="modulepreload",yu=function(e){return"/"+e},Ua={},_=function(t,n,o){if(!n||n.length===0)return t();const r=document.getElementsByTagName("link");return Promise.all(n.map(a=>{if(a=yu(a),a in Ua)return;Ua[a]=!0;const i=a.endsWith(".css"),s=i?'[rel="stylesheet"]':"";if(!!o)for(let u=r.length-1;u>=0;u--){const f=r[u];if(f.href===a&&(!i||f.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${a}"]${s}`))return;const c=document.createElement("link");if(c.rel=i?"stylesheet":bu,i||(c.as="script",c.crossOrigin=""),c.href=a,document.head.appendChild(c),i)return new Promise((u,f)=>{c.addEventListener("load",u),c.addEventListener("error",()=>f(new Error(`Unable to preload CSS for ${a}`)))})})).then(()=>t()).catch(a=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=a,window.dispatchEvent(i),!i.defaultPrevented)throw a})};function Zr(e,t){const n=Object.create(null),o=e.split(",");for(let r=0;r!!n[r.toLowerCase()]:r=>!!n[r]}const ye={},_n=[],lt=()=>{},wu=()=>!1,Eu=/^on[^a-z]/,co=e=>Eu.test(e),ea=e=>e.startsWith("onUpdate:"),Ce=Object.assign,ta=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Tu=Object.prototype.hasOwnProperty,ue=(e,t)=>Tu.call(e,t),K=Array.isArray,bn=e=>uo(e)==="[object Map]",Dn=e=>uo(e)==="[object Set]",qa=e=>uo(e)==="[object Date]",ne=e=>typeof e=="function",se=e=>typeof e=="string",An=e=>typeof e=="symbol",ve=e=>e!==null&&typeof e=="object",Ls=e=>(ve(e)||ne(e))&&ne(e.then)&&ne(e.catch),Os=Object.prototype.toString,uo=e=>Os.call(e),Au=e=>uo(e).slice(8,-1),Cs=e=>uo(e)==="[object Object]",na=e=>se(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Yn=Zr(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Go=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},ku=/-(\w)/g,Ze=Go(e=>e.replace(ku,(t,n)=>n?n.toUpperCase():"")),Lu=/\B([A-Z])/g,$n=Go(e=>e.replace(Lu,"-$1").toLowerCase()),fo=Go(e=>e.charAt(0).toUpperCase()+e.slice(1)),fr=Go(e=>e?`on${fo(e)}`:""),tn=(e,t)=>!Object.is(e,t),xo=(e,t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:n})},Mo=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Ou=e=>{const t=se(e)?Number(e):NaN;return isNaN(t)?e:t};let Ka;const Ir=()=>Ka||(Ka=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function oa(e){if(K(e)){const t={};for(let n=0;n{if(n){const o=n.split(Su);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function ra(e){let t="";if(se(e))t=e;else if(K(e))for(let n=0;nnn(n,t))}const k0=e=>se(e)?e:e==null?"":K(e)||ve(e)&&(e.toString===Os||!ne(e.toString))?JSON.stringify(e,Ps,2):String(e),Ps=(e,t)=>t&&t.__v_isRef?Ps(e,t.value):bn(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,r])=>(n[`${o} =>`]=r,n),{})}:Dn(t)?{[`Set(${t.size})`]:[...t.values()]}:ve(t)&&!K(t)&&!Cs(t)?String(t):t;let Ue;class $u{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Ue,!t&&Ue&&(this.index=(Ue.scopes||(Ue.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Ue;try{return Ue=this,t()}finally{Ue=n}}}on(){Ue=this}off(){Ue=this.parent}stop(t){if(this._active){let n,o;for(n=0,o=this.effects.length;n{const t=new Set(e);return t.w=0,t.n=0,t},Rs=e=>(e.w&jt)>0,xs=e=>(e.n&jt)>0,Vu=({deps:e})=>{if(e.length)for(let t=0;t{const{deps:t}=e;if(t.length){let n=0;for(let o=0;o{(u==="length"||!An(u)&&u>=l)&&s.push(c)})}else switch(n!==void 0&&s.push(i.get(n)),t){case"add":K(e)?na(n)&&s.push(i.get("length")):(s.push(i.get(Xt)),bn(e)&&s.push(i.get(xr)));break;case"delete":K(e)||(s.push(i.get(Xt)),bn(e)&&s.push(i.get(xr)));break;case"set":bn(e)&&s.push(i.get(Xt));break}if(s.length===1)s[0]&&Dr(s[0]);else{const l=[];for(const c of s)c&&l.push(...c);Dr(ia(l))}}function Dr(e,t){const n=K(e)?e:[...e];for(const o of n)o.computed&&Ya(o);for(const o of n)o.computed||Ya(o)}function Ya(e,t){(e!==at||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}function Bu(e,t){var n;return(n=No.get(e))==null?void 0:n.get(t)}const zu=Zr("__proto__,__v_isRef,__isVue"),Ms=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(An)),Ja=Hu();function Hu(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const o=le(this);for(let a=0,i=this.length;a{e[t]=function(...n){Mn();const o=le(this)[t].apply(this,n);return Nn(),o}}),e}function ju(e){const t=le(this);return ze(t,"has",e),t.hasOwnProperty(e)}class Ns{constructor(t=!1,n=!1){this._isReadonly=t,this._shallow=n}get(t,n,o){const r=this._isReadonly,a=this._shallow;if(n==="__v_isReactive")return!r;if(n==="__v_isReadonly")return r;if(n==="__v_isShallow")return a;if(n==="__v_raw"&&o===(r?a?nd:zs:a?Bs:Fs).get(t))return t;const i=K(t);if(!r){if(i&&ue(Ja,n))return Reflect.get(Ja,n,o);if(n==="hasOwnProperty")return ju}const s=Reflect.get(t,n,o);return(An(n)?Ms.has(n):zu(n))||(r||ze(t,"get",n),a)?s:Ae(s)?i&&na(n)?s:s.value:ve(s)?r?St(s):po(s):s}}class Vs extends Ns{constructor(t=!1){super(!1,t)}set(t,n,o,r){let a=t[n];if(kn(a)&&Ae(a)&&!Ae(o))return!1;if(!this._shallow&&(!Vo(o)&&!kn(o)&&(a=le(a),o=le(o)),!K(t)&&Ae(a)&&!Ae(o)))return a.value=o,!0;const i=K(t)&&na(n)?Number(n)e,Yo=e=>Reflect.getPrototypeOf(e);function bo(e,t,n=!1,o=!1){e=e.__v_raw;const r=le(e),a=le(t);n||(tn(t,a)&&ze(r,"get",t),ze(r,"get",a));const{has:i}=Yo(r),s=o?la:n?da:no;if(i.call(r,t))return s(e.get(t));if(i.call(r,a))return s(e.get(a));e!==r&&e.get(t)}function yo(e,t=!1){const n=this.__v_raw,o=le(n),r=le(e);return t||(tn(e,r)&&ze(o,"has",e),ze(o,"has",r)),e===r?n.has(e):n.has(e)||n.has(r)}function wo(e,t=!1){return e=e.__v_raw,!t&&ze(le(e),"iterate",Xt),Reflect.get(e,"size",e)}function Qa(e){e=le(e);const t=le(this);return Yo(t).has.call(t,e)||(t.add(e),kt(t,"add",e,e)),this}function Xa(e,t){t=le(t);const n=le(this),{has:o,get:r}=Yo(n);let a=o.call(n,e);a||(e=le(e),a=o.call(n,e));const i=r.call(n,e);return n.set(e,t),a?tn(t,i)&&kt(n,"set",e,t):kt(n,"add",e,t),this}function Za(e){const t=le(this),{has:n,get:o}=Yo(t);let r=n.call(t,e);r||(e=le(e),r=n.call(t,e)),o&&o.call(t,e);const a=t.delete(e);return r&&kt(t,"delete",e,void 0),a}function ei(){const e=le(this),t=e.size!==0,n=e.clear();return t&&kt(e,"clear",void 0,void 0),n}function Eo(e,t){return function(o,r){const a=this,i=a.__v_raw,s=le(i),l=t?la:e?da:no;return!e&&ze(s,"iterate",Xt),i.forEach((c,u)=>o.call(r,l(c),l(u),a))}}function To(e,t,n){return function(...o){const r=this.__v_raw,a=le(r),i=bn(a),s=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=r[e](...o),u=n?la:t?da:no;return!t&&ze(a,"iterate",l?xr:Xt),{next(){const{value:f,done:p}=c.next();return p?{value:f,done:p}:{value:s?[u(f[0]),u(f[1])]:u(f),done:p}},[Symbol.iterator](){return this}}}}function Dt(e){return function(...t){return e==="delete"?!1:this}}function Gu(){const e={get(a){return bo(this,a)},get size(){return wo(this)},has:yo,add:Qa,set:Xa,delete:Za,clear:ei,forEach:Eo(!1,!1)},t={get(a){return bo(this,a,!1,!0)},get size(){return wo(this)},has:yo,add:Qa,set:Xa,delete:Za,clear:ei,forEach:Eo(!1,!0)},n={get(a){return bo(this,a,!0)},get size(){return wo(this,!0)},has(a){return yo.call(this,a,!0)},add:Dt("add"),set:Dt("set"),delete:Dt("delete"),clear:Dt("clear"),forEach:Eo(!0,!1)},o={get(a){return bo(this,a,!0,!0)},get size(){return wo(this,!0)},has(a){return yo.call(this,a,!0)},add:Dt("add"),set:Dt("set"),delete:Dt("delete"),clear:Dt("clear"),forEach:Eo(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(a=>{e[a]=To(a,!1,!1),n[a]=To(a,!0,!1),t[a]=To(a,!1,!0),o[a]=To(a,!0,!0)}),[e,n,t,o]}const[Yu,Ju,Qu,Xu]=Gu();function ca(e,t){const n=t?e?Xu:Qu:e?Ju:Yu;return(o,r,a)=>r==="__v_isReactive"?!e:r==="__v_isReadonly"?e:r==="__v_raw"?o:Reflect.get(ue(n,r)&&r in o?n:o,r,a)}const Zu={get:ca(!1,!1)},ed={get:ca(!1,!0)},td={get:ca(!0,!1)},Fs=new WeakMap,Bs=new WeakMap,zs=new WeakMap,nd=new WeakMap;function od(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function rd(e){return e.__v_skip||!Object.isExtensible(e)?0:od(Au(e))}function po(e){return kn(e)?e:ua(e,!1,Uu,Zu,Fs)}function Hs(e){return ua(e,!1,Ku,ed,Bs)}function St(e){return ua(e,!0,qu,td,zs)}function ua(e,t,n,o,r){if(!ve(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=r.get(e);if(a)return a;const i=rd(e);if(i===0)return e;const s=new Proxy(e,i===2?o:n);return r.set(e,s),s}function yn(e){return kn(e)?yn(e.__v_raw):!!(e&&e.__v_isReactive)}function kn(e){return!!(e&&e.__v_isReadonly)}function Vo(e){return!!(e&&e.__v_isShallow)}function js(e){return yn(e)||kn(e)}function le(e){const t=e&&e.__v_raw;return t?le(t):e}function Ws(e){return $o(e,"__v_skip",!0),e}const no=e=>ve(e)?po(e):e,da=e=>ve(e)?St(e):e;function fa(e){zt&&at&&(e=le(e),$s(e.dep||(e.dep=ia())))}function pa(e,t){e=le(e);const n=e.dep;n&&Dr(n)}function Ae(e){return!!(e&&e.__v_isRef===!0)}function G(e){return Us(e,!1)}function tt(e){return Us(e,!0)}function Us(e,t){return Ae(e)?e:new ad(e,t)}class ad{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:le(t),this._value=n?t:no(t)}get value(){return fa(this),this._value}set value(t){const n=this.__v_isShallow||Vo(t)||kn(t);t=n?t:le(t),tn(t,this._rawValue)&&(this._rawValue=t,this._value=n?t:no(t),pa(this))}}function it(e){return Ae(e)?e.value:e}const id={get:(e,t,n)=>it(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const r=e[t];return Ae(r)&&!Ae(n)?(r.value=n,!0):Reflect.set(e,t,n,o)}};function qs(e){return yn(e)?e:new Proxy(e,id)}class sd{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:o}=t(()=>fa(this),()=>pa(this));this._get=n,this._set=o}get value(){return this._get()}set value(t){this._set(t)}}function Ks(e){return new sd(e)}class ld{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Bu(le(this._object),this._key)}}class cd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function Jo(e,t,n){return Ae(e)?e:ne(e)?new cd(e):ve(e)&&arguments.length>1?ud(e,t,n):G(e)}function ud(e,t,n){const o=e[t];return Ae(o)?o:new ld(e,t,n)}class dd{constructor(t,n,o,r){this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this._dirty=!0,this.effect=new sa(t,()=>{this._dirty||(this._dirty=!0,pa(this))}),this.effect.computed=this,this.effect.active=this._cacheable=!r,this.__v_isReadonly=o}get value(){const t=le(this);return fa(t),(t._dirty||!t._cacheable)&&(t._dirty=!1,t._value=t.effect.run()),t._value}set value(t){this._setter(t)}}function fd(e,t,n=!1){let o,r;const a=ne(e);return a?(o=e,r=lt):(o=e.get,r=e.set),new dd(o,r,a||!r,n)}function Ht(e,t,n,o){let r;try{r=o?e(...o):e()}catch(a){ho(a,t,n)}return r}function Je(e,t,n,o){if(ne(e)){const a=Ht(e,t,n,o);return a&&Ls(a)&&a.catch(i=>{ho(i,t,n)}),a}const r=[];for(let a=0;a>>1,r=xe[o],a=ro(r);avt&&xe.splice(t,1)}function vd(e){K(e)?wn.push(...e):(!Et||!Et.includes(e,e.allowRecurse?Gt+1:Gt))&&wn.push(e),Ys()}function ti(e,t=oo?vt+1:0){for(;tro(n)-ro(o)),Gt=0;Gte.id==null?1/0:e.id,gd=(e,t)=>{const n=ro(e)-ro(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Js(e){$r=!1,oo=!0,xe.sort(gd);const t=lt;try{for(vt=0;vtse(m)?m.trim():m)),f&&(r=n.map(Mo))}let s,l=o[s=fr(t)]||o[s=fr(Ze(t))];!l&&a&&(l=o[s=fr($n(t))]),l&&Je(l,e,6,r);const c=o[s+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,Je(c,e,6,r)}}function Qs(e,t,n=!1){const o=t.emitsCache,r=o.get(e);if(r!==void 0)return r;const a=e.emits;let i={},s=!1;if(!ne(e)){const l=c=>{const u=Qs(c,t,!0);u&&(s=!0,Ce(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!a&&!s?(ve(e)&&o.set(e,null),null):(K(a)?a.forEach(l=>i[l]=null):Ce(i,a),ve(e)&&o.set(e,i),i)}function Xo(e,t){return!e||!co(t)?!1:(t=t.slice(2).replace(/Once$/,""),ue(e,t[0].toLowerCase()+t.slice(1))||ue(e,$n(t))||ue(e,t))}let Ke=null,Xs=null;function Bo(e){const t=Ke;return Ke=e,Xs=e&&e.type.__scopeId||null,t}function bd(e,t=Ke,n){if(!t||e._n)return e;const o=(...r)=>{o._d&&pi(-1);const a=Bo(t);let i;try{i=e(...r)}finally{Bo(a),o._d&&pi(1)}return i};return o._n=!0,o._c=!0,o._d=!0,o}function pr(e){const{type:t,vnode:n,proxy:o,withProxy:r,props:a,propsOptions:[i],slots:s,attrs:l,emit:c,render:u,renderCache:f,data:p,setupState:m,ctx:g,inheritAttrs:E}=e;let A,w;const O=Bo(e);try{if(n.shapeFlag&4){const T=r||o;A=rt(u.call(T,T,f,a,m,p,g)),w=l}else{const T=t;A=rt(T.length>1?T(a,{attrs:l,slots:s,emit:c}):T(a,null)),w=t.props?l:yd(l)}}catch(T){Zn.length=0,ho(T,e,1),A=ke(Qe)}let y=A;if(w&&E!==!1){const T=Object.keys(w),{shapeFlag:N}=y;T.length&&N&7&&(i&&T.some(ea)&&(w=wd(w,i)),y=Wt(y,w))}return n.dirs&&(y=Wt(y),y.dirs=y.dirs?y.dirs.concat(n.dirs):n.dirs),n.transition&&(y.transition=n.transition),A=y,Bo(O),A}const yd=e=>{let t;for(const n in e)(n==="class"||n==="style"||co(n))&&((t||(t={}))[n]=e[n]);return t},wd=(e,t)=>{const n={};for(const o in e)(!ea(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function Ed(e,t,n){const{props:o,children:r,component:a}=e,{props:i,children:s,patchFlag:l}=t,c=a.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return o?ni(o,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fe.__isSuspense;function Zs(e,t){t&&t.pendingBranch?K(e)?t.effects.push(...e):t.effects.push(e):vd(e)}function el(e,t){return ma(e,null,t)}const Ao={};function re(e,t,n){return ma(e,t,n)}function ma(e,t,{immediate:n,deep:o,flush:r,onTrack:a,onTrigger:i}=ye){var s;const l=Is()===((s=Se)==null?void 0:s.scope)?Se:null;let c,u=!1,f=!1;if(Ae(e)?(c=()=>e.value,u=Vo(e)):yn(e)?(c=()=>e,o=!0):K(e)?(f=!0,u=e.some(T=>yn(T)||Vo(T)),c=()=>e.map(T=>{if(Ae(T))return T.value;if(yn(T))return Qt(T);if(ne(T))return Ht(T,l,2)})):ne(e)?t?c=()=>Ht(e,l,2):c=()=>{if(!(l&&l.isUnmounted))return p&&p(),Je(e,l,3,[m])}:c=lt,t&&o){const T=c;c=()=>Qt(T())}let p,m=T=>{p=O.onStop=()=>{Ht(T,l,4)}},g;if(Cn)if(m=lt,t?n&&Je(t,l,3,[c(),f?[]:void 0,m]):c(),r==="sync"){const T=yf();g=T.__watcherHandles||(T.__watcherHandles=[])}else return lt;let E=f?new Array(e.length).fill(Ao):Ao;const A=()=>{if(O.active)if(t){const T=O.run();(o||u||(f?T.some((N,I)=>tn(N,E[I])):tn(T,E)))&&(p&&p(),Je(t,l,3,[T,E===Ao?void 0:f&&E[0]===Ao?[]:E,m]),E=T)}else O.run()};A.allowRecurse=!!t;let w;r==="sync"?w=A:r==="post"?w=()=>Fe(A,l&&l.suspense):(A.pre=!0,l&&(A.id=l.uid),w=()=>Qo(A));const O=new sa(c,w);t?n?A():E=O.run():r==="post"?Fe(O.run.bind(O),l&&l.suspense):O.run();const y=()=>{O.stop(),l&&l.scope&&ta(l.scope.effects,O)};return g&&g.push(y),y}function kd(e,t,n){const o=this.proxy,r=se(e)?e.includes(".")?tl(o,e):()=>o[e]:e.bind(o,o);let a;ne(t)?a=t:(a=t.handler,n=t);const i=Se;On(this);const s=ma(r,a.bind(o),n);return i?On(i):en(),s}function tl(e,t){const n=t.split(".");return()=>{let o=e;for(let r=0;r{Qt(n,t)});else if(Cs(e))for(const n in e)Qt(e[n],t);return e}function L0(e,t){const n=Ke;if(n===null)return e;const o=tr(n)||n.proxy,r=e.dirs||(e.dirs=[]);for(let a=0;a{e.isMounted=!0}),ga(()=>{e.isUnmounting=!0}),e}const Ge=[Function,Array],ol={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Ge,onEnter:Ge,onAfterEnter:Ge,onEnterCancelled:Ge,onBeforeLeave:Ge,onLeave:Ge,onAfterLeave:Ge,onLeaveCancelled:Ge,onBeforeAppear:Ge,onAppear:Ge,onAfterAppear:Ge,onAppearCancelled:Ge},Ld={name:"BaseTransition",props:ol,setup(e,{slots:t}){const n=ln(),o=nl();let r;return()=>{const a=t.default&&va(t.default(),!0);if(!a||!a.length)return;let i=a[0];if(a.length>1){for(const E of a)if(E.type!==Qe){i=E;break}}const s=le(e),{mode:l}=s;if(o.isLeaving)return hr(i);const c=oi(i);if(!c)return hr(i);const u=ao(c,s,o,n);io(c,u);const f=n.subTree,p=f&&oi(f);let m=!1;const{getTransitionKey:g}=c.type;if(g){const E=g();r===void 0?r=E:E!==r&&(r=E,m=!0)}if(p&&p.type!==Qe&&(!Yt(c,p)||m)){const E=ao(p,s,o,n);if(io(p,E),l==="out-in")return o.isLeaving=!0,E.afterLeave=()=>{o.isLeaving=!1,n.update.active!==!1&&n.update()},hr(i);l==="in-out"&&c.type!==Qe&&(E.delayLeave=(A,w,O)=>{const y=rl(o,p);y[String(p.key)]=p,A[Vt]=()=>{w(),A[Vt]=void 0,delete u.delayedLeave},u.delayedLeave=O})}return i}}},Od=Ld;function rl(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function ao(e,t,n,o){const{appear:r,mode:a,persisted:i=!1,onBeforeEnter:s,onEnter:l,onAfterEnter:c,onEnterCancelled:u,onBeforeLeave:f,onLeave:p,onAfterLeave:m,onLeaveCancelled:g,onBeforeAppear:E,onAppear:A,onAfterAppear:w,onAppearCancelled:O}=t,y=String(e.key),T=rl(n,e),N=(P,H)=>{P&&Je(P,o,9,H)},I=(P,H)=>{const j=H[1];N(P,H),K(P)?P.every(ie=>ie.length<=1)&&j():P.length<=1&&j()},M={mode:a,persisted:i,beforeEnter(P){let H=s;if(!n.isMounted)if(r)H=E||s;else return;P[Vt]&&P[Vt](!0);const j=T[y];j&&Yt(e,j)&&j.el[Vt]&&j.el[Vt](),N(H,[P])},enter(P){let H=l,j=c,ie=u;if(!n.isMounted)if(r)H=A||l,j=w||c,ie=O||u;else return;let B=!1;const ee=P[ko]=Ee=>{B||(B=!0,Ee?N(ie,[P]):N(j,[P]),M.delayedLeave&&M.delayedLeave(),P[ko]=void 0)};H?I(H,[P,ee]):ee()},leave(P,H){const j=String(e.key);if(P[ko]&&P[ko](!0),n.isUnmounting)return H();N(f,[P]);let ie=!1;const B=P[Vt]=ee=>{ie||(ie=!0,H(),ee?N(g,[P]):N(m,[P]),P[Vt]=void 0,T[j]===e&&delete T[j])};T[j]=e,p?I(p,[P,B]):B()},clone(P){return ao(P,t,n,o)}};return M}function hr(e){if(mo(e))return e=Wt(e),e.children=null,e}function oi(e){return mo(e)?e.children?e.children[0]:void 0:e}function io(e,t){e.shapeFlag&6&&e.component?io(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function va(e,t=!1,n){let o=[],r=0;for(let a=0;a1)for(let a=0;aCe({name:e.name},t,{setup:e}))():e}const Jn=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function $(e){ne(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:r=200,timeout:a,suspensible:i=!0,onError:s}=e;let l=null,c,u=0;const f=()=>(u++,l=null,p()),p=()=>{let m;return l||(m=l=t().catch(g=>{if(g=g instanceof Error?g:new Error(String(g)),s)return new Promise((E,A)=>{s(g,()=>E(f()),()=>A(g),u+1)});throw g}).then(g=>m!==l&&l?l:(g&&(g.__esModule||g[Symbol.toStringTag]==="Module")&&(g=g.default),c=g,g)))};return W({name:"AsyncComponentWrapper",__asyncLoader:p,get __asyncResolved(){return c},setup(){const m=Se;if(c)return()=>mr(c,m);const g=O=>{l=null,ho(O,m,13,!o)};if(i&&m.suspense||Cn)return p().then(O=>()=>mr(O,m)).catch(O=>(g(O),()=>o?ke(o,{error:O}):null));const E=G(!1),A=G(),w=G(!!r);return r&&setTimeout(()=>{w.value=!1},r),a!=null&&setTimeout(()=>{if(!E.value&&!A.value){const O=new Error(`Async component timed out after ${a}ms.`);g(O),A.value=O}},a),p().then(()=>{E.value=!0,m.parent&&mo(m.parent.vnode)&&Qo(m.parent.update)}).catch(O=>{g(O),A.value=O}),()=>{if(E.value&&c)return mr(c,m);if(A.value&&o)return ke(o,{error:A.value});if(n&&!w.value)return ke(n)}}})}function mr(e,t){const{ref:n,props:o,children:r,ce:a}=t.vnode,i=ke(e,o,r);return i.ref=n,i.ce=a,delete t.vnode.ce,i}const mo=e=>e.type.__isKeepAlive;function Cd(e,t){al(e,"a",t)}function Sd(e,t){al(e,"da",t)}function al(e,t,n=Se){const o=e.__wdc||(e.__wdc=()=>{let r=n;for(;r;){if(r.isDeactivated)return;r=r.parent}return e()});if(Zo(t,o,n),n){let r=n.parent;for(;r&&r.parent;)mo(r.parent.vnode)&&Pd(o,t,n,r),r=r.parent}}function Pd(e,t,n,o){const r=Zo(t,e,o,!0);Vn(()=>{ta(o[t],r)},n)}function Zo(e,t,n=Se,o=!1){if(n){const r=n[e]||(n[e]=[]),a=t.__weh||(t.__weh=(...i)=>{if(n.isUnmounted)return;Mn(),On(n);const s=Je(t,n,e,i);return en(),Nn(),s});return o?r.unshift(a):r.push(a),a}}const Pt=e=>(t,n=Se)=>(!Cn||e==="sp")&&Zo(e,(...o)=>t(...o),n),Id=Pt("bm"),pe=Pt("m"),Rd=Pt("bu"),il=Pt("u"),ga=Pt("bum"),Vn=Pt("um"),xd=Pt("sp"),Dd=Pt("rtg"),$d=Pt("rtc");function Md(e,t=Se){Zo("ec",e,t)}const sl="components";function ct(e,t){return Vd(sl,e,!0,t)||e}const Nd=Symbol.for("v-ndc");function Vd(e,t,n=!0,o=!1){const r=Ke||Se;if(r){const a=r.type;if(e===sl){const s=gf(a,!1);if(s&&(s===t||s===Ze(t)||s===fo(Ze(t))))return a}const i=ri(r[e]||a[e],t)||ri(r.appContext[e],t);return!i&&o?a:i}}function ri(e,t){return e&&(e[t]||e[Ze(t)]||e[fo(Ze(t))])}function O0(e,t,n,o){let r;const a=n&&n[o];if(K(e)||se(e)){r=new Array(e.length);for(let i=0,s=e.length;it(i,s,void 0,a&&a[s]));else{const i=Object.keys(e);r=new Array(i.length);for(let s=0,l=i.length;se?wl(e)?tr(e)||e.proxy:Mr(e.parent):null,Qn=Ce(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Mr(e.parent),$root:e=>Mr(e.root),$emit:e=>e.emit,$options:e=>_a(e),$forceUpdate:e=>e.f||(e.f=()=>Qo(e.update)),$nextTick:e=>e.n||(e.n=sn.bind(e.proxy)),$watch:e=>kd.bind(e)}),vr=(e,t)=>e!==ye&&!e.__isScriptSetup&&ue(e,t),Fd={get({_:e},t){const{ctx:n,setupState:o,data:r,props:a,accessCache:i,type:s,appContext:l}=e;let c;if(t[0]!=="$"){const m=i[t];if(m!==void 0)switch(m){case 1:return o[t];case 2:return r[t];case 4:return n[t];case 3:return a[t]}else{if(vr(o,t))return i[t]=1,o[t];if(r!==ye&&ue(r,t))return i[t]=2,r[t];if((c=e.propsOptions[0])&&ue(c,t))return i[t]=3,a[t];if(n!==ye&&ue(n,t))return i[t]=4,n[t];Nr&&(i[t]=0)}}const u=Qn[t];let f,p;if(u)return t==="$attrs"&&ze(e,"get",t),u(e);if((f=s.__cssModules)&&(f=f[t]))return f;if(n!==ye&&ue(n,t))return i[t]=4,n[t];if(p=l.config.globalProperties,ue(p,t))return p[t]},set({_:e},t,n){const{data:o,setupState:r,ctx:a}=e;return vr(r,t)?(r[t]=n,!0):o!==ye&&ue(o,t)?(o[t]=n,!0):ue(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:r,propsOptions:a}},i){let s;return!!n[i]||e!==ye&&ue(e,i)||vr(t,i)||(s=a[0])&&ue(s,i)||ue(o,i)||ue(Qn,i)||ue(r.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ue(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function ai(e){return K(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Nr=!0;function Bd(e){const t=_a(e),n=e.proxy,o=e.ctx;Nr=!1,t.beforeCreate&&ii(t.beforeCreate,e,"bc");const{data:r,computed:a,methods:i,watch:s,provide:l,inject:c,created:u,beforeMount:f,mounted:p,beforeUpdate:m,updated:g,activated:E,deactivated:A,beforeDestroy:w,beforeUnmount:O,destroyed:y,unmounted:T,render:N,renderTracked:I,renderTriggered:M,errorCaptured:P,serverPrefetch:H,expose:j,inheritAttrs:ie,components:B,directives:ee,filters:Ee}=t;if(c&&zd(c,o,null),i)for(const oe in i){const J=i[oe];ne(J)&&(o[oe]=J.bind(n))}if(r){const oe=r.call(n,n);ve(oe)&&(e.data=po(oe))}if(Nr=!0,a)for(const oe in a){const J=a[oe],nt=ne(J)?J.bind(n,n):ne(J.get)?J.get.bind(n,n):lt,xt=!ne(J)&&ne(J.set)?J.set.bind(n):lt,pt=k({get:nt,set:xt});Object.defineProperty(o,oe,{enumerable:!0,configurable:!0,get:()=>pt.value,set:Ve=>pt.value=Ve})}if(s)for(const oe in s)ll(s[oe],o,n,oe);if(l){const oe=ne(l)?l.call(n):l;Reflect.ownKeys(oe).forEach(J=>{Zt(J,oe[J])})}u&&ii(u,e,"c");function Y(oe,J){K(J)?J.forEach(nt=>oe(nt.bind(n))):J&&oe(J.bind(n))}if(Y(Id,f),Y(pe,p),Y(Rd,m),Y(il,g),Y(Cd,E),Y(Sd,A),Y(Md,P),Y($d,I),Y(Dd,M),Y(ga,O),Y(Vn,T),Y(xd,H),K(j))if(j.length){const oe=e.exposed||(e.exposed={});j.forEach(J=>{Object.defineProperty(oe,J,{get:()=>n[J],set:nt=>n[J]=nt})})}else e.exposed||(e.exposed={});N&&e.render===lt&&(e.render=N),ie!=null&&(e.inheritAttrs=ie),B&&(e.components=B),ee&&(e.directives=ee)}function zd(e,t,n=lt){K(e)&&(e=Vr(e));for(const o in e){const r=e[o];let a;ve(r)?"default"in r?a=we(r.from||o,r.default,!0):a=we(r.from||o):a=we(r),Ae(a)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>a.value,set:i=>a.value=i}):t[o]=a}}function ii(e,t,n){Je(K(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function ll(e,t,n,o){const r=o.includes(".")?tl(n,o):()=>n[o];if(se(e)){const a=t[e];ne(a)&&re(r,a)}else if(ne(e))re(r,e.bind(n));else if(ve(e))if(K(e))e.forEach(a=>ll(a,t,n,o));else{const a=ne(e.handler)?e.handler.bind(n):t[e.handler];ne(a)&&re(r,a,e)}}function _a(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:r,optionsCache:a,config:{optionMergeStrategies:i}}=e.appContext,s=a.get(t);let l;return s?l=s:!r.length&&!n&&!o?l=t:(l={},r.length&&r.forEach(c=>zo(l,c,i,!0)),zo(l,t,i)),ve(t)&&a.set(t,l),l}function zo(e,t,n,o=!1){const{mixins:r,extends:a}=t;a&&zo(e,a,n,!0),r&&r.forEach(i=>zo(e,i,n,!0));for(const i in t)if(!(o&&i==="expose")){const s=Hd[i]||n&&n[i];e[i]=s?s(e[i],t[i]):t[i]}return e}const Hd={data:si,props:li,emits:li,methods:Gn,computed:Gn,beforeCreate:$e,created:$e,beforeMount:$e,mounted:$e,beforeUpdate:$e,updated:$e,beforeDestroy:$e,beforeUnmount:$e,destroyed:$e,unmounted:$e,activated:$e,deactivated:$e,errorCaptured:$e,serverPrefetch:$e,components:Gn,directives:Gn,watch:Wd,provide:si,inject:jd};function si(e,t){return t?e?function(){return Ce(ne(e)?e.call(this,this):e,ne(t)?t.call(this,this):t)}:t:e}function jd(e,t){return Gn(Vr(e),Vr(t))}function Vr(e){if(K(e)){const t={};for(let n=0;n1)return n&&ne(t)?t.call(o&&o.proxy):t}}function Kd(e,t,n,o=!1){const r={},a={};$o(a,er,1),e.propsDefaults=Object.create(null),ul(e,t,r,a);for(const i in e.propsOptions[0])i in r||(r[i]=void 0);n?e.props=o?r:Hs(r):e.type.props?e.props=r:e.props=a,e.attrs=a}function Gd(e,t,n,o){const{props:r,attrs:a,vnode:{patchFlag:i}}=e,s=le(r),[l]=e.propsOptions;let c=!1;if((o||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[p,m]=dl(f,t,!0);Ce(i,p),m&&s.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!a&&!l)return ve(e)&&o.set(e,_n),_n;if(K(a))for(let u=0;u-1,m[1]=E<0||g-1||ue(m,"default"))&&s.push(f)}}}const c=[i,s];return ve(e)&&o.set(e,c),c}function ci(e){return e[0]!=="$"}function ui(e){const t=e&&e.toString().match(/^\s*(function|class) (\w+)/);return t?t[2]:e===null?"null":""}function di(e,t){return ui(e)===ui(t)}function fi(e,t){return K(t)?t.findIndex(n=>di(n,e)):ne(t)&&di(t,e)?0:-1}const fl=e=>e[0]==="_"||e==="$stable",ba=e=>K(e)?e.map(rt):[rt(e)],Yd=(e,t,n)=>{if(t._n)return t;const o=bd((...r)=>ba(t(...r)),n);return o._c=!1,o},pl=(e,t,n)=>{const o=e._ctx;for(const r in e){if(fl(r))continue;const a=e[r];if(ne(a))t[r]=Yd(r,a,o);else if(a!=null){const i=ba(a);t[r]=()=>i}}},hl=(e,t)=>{const n=ba(t);e.slots.default=()=>n},Jd=(e,t)=>{if(e.vnode.shapeFlag&32){const n=t._;n?(e.slots=le(t),$o(t,"_",n)):pl(t,e.slots={})}else e.slots={},t&&hl(e,t);$o(e.slots,er,1)},Qd=(e,t,n)=>{const{vnode:o,slots:r}=e;let a=!0,i=ye;if(o.shapeFlag&32){const s=t._;s?n&&s===1?a=!1:(Ce(r,t),!n&&s===1&&delete r._):(a=!t.$stable,pl(t,r)),i=t}else t&&(hl(e,t),i={default:1});if(a)for(const s in r)!fl(s)&&i[s]==null&&delete r[s]};function jo(e,t,n,o,r=!1){if(K(e)){e.forEach((p,m)=>jo(p,t&&(K(t)?t[m]:t),n,o,r));return}if(Jn(o)&&!r)return;const a=o.shapeFlag&4?tr(o.component)||o.component.proxy:o.el,i=r?null:a,{i:s,r:l}=e,c=t&&t.r,u=s.refs===ye?s.refs={}:s.refs,f=s.setupState;if(c!=null&&c!==l&&(se(c)?(u[c]=null,ue(f,c)&&(f[c]=null)):Ae(c)&&(c.value=null)),ne(l))Ht(l,s,12,[i,u]);else{const p=se(l),m=Ae(l);if(p||m){const g=()=>{if(e.f){const E=p?ue(f,l)?f[l]:u[l]:l.value;r?K(E)&&ta(E,a):K(E)?E.includes(a)||E.push(a):p?(u[l]=[a],ue(f,l)&&(f[l]=u[l])):(l.value=[a],e.k&&(u[e.k]=l.value))}else p?(u[l]=i,ue(f,l)&&(f[l]=i)):m&&(l.value=i,e.k&&(u[e.k]=i))};i?(g.id=-1,Fe(g,n)):g()}}}let $t=!1;const Lo=e=>/svg/.test(e.namespaceURI)&&e.tagName!=="foreignObject",Oo=e=>e.nodeType===8;function Xd(e){const{mt:t,p:n,o:{patchProp:o,createText:r,nextSibling:a,parentNode:i,remove:s,insert:l,createComment:c}}=e,u=(y,T)=>{if(!T.hasChildNodes()){n(null,y,T),Fo(),T._vnode=y;return}$t=!1,f(T.firstChild,y,null,null,null),Fo(),T._vnode=y,$t&&console.error("Hydration completed but contains mismatches.")},f=(y,T,N,I,M,P=!1)=>{const H=Oo(y)&&y.data==="[",j=()=>E(y,T,N,I,M,H),{type:ie,ref:B,shapeFlag:ee,patchFlag:Ee}=T;let Te=y.nodeType;T.el=y,Ee===-2&&(P=!1,T.dynamicChildren=null);let Y=null;switch(ie){case Ln:Te!==3?T.children===""?(l(T.el=r(""),i(y),y),Y=y):Y=j():(y.data!==T.children&&($t=!0,y.data=T.children),Y=a(y));break;case Qe:if(Te!==8||H)if(y.tagName.toLowerCase()==="template"){const oe=T.el.content.firstChild;w(oe,y,N),T.el=y=oe,Y=a(y)}else Y=j();else Y=a(y);break;case Xn:if(H&&(y=a(y),Te=y.nodeType),Te===1||Te===3){Y=y;const oe=!T.children.length;for(let J=0;J{P=P||!!T.dynamicChildren;const{type:H,props:j,patchFlag:ie,shapeFlag:B,dirs:ee,transition:Ee}=T,Te=H==="input"&&ee||H==="option";if(Te||ie!==-1){if(ee&&mt(T,null,N,"created"),j)if(Te||!P||ie&48)for(const J in j)(Te&&J.endsWith("value")||co(J)&&!Yn(J))&&o(y,J,null,j[J],!1,void 0,N);else j.onClick&&o(y,"onClick",null,j.onClick,!1,void 0,N);let Y;(Y=j&&j.onVnodeBeforeMount)&&Ye(Y,N,T);let oe=!1;if(O(y)){oe=ml(I,Ee)&&N&&N.vnode.props&&N.vnode.props.appear;const J=y.content.firstChild;oe&&Ee.beforeEnter(J),w(J,y,N),T.el=y=J}if(ee&&mt(T,null,N,"beforeMount"),((Y=j&&j.onVnodeMounted)||ee||oe)&&Zs(()=>{Y&&Ye(Y,N,T),oe&&Ee.enter(y),ee&&mt(T,null,N,"mounted")},I),B&16&&!(j&&(j.innerHTML||j.textContent))){let J=m(y.firstChild,T,y,N,I,M,P);for(;J;){$t=!0;const nt=J;J=J.nextSibling,s(nt)}}else B&8&&y.textContent!==T.children&&($t=!0,y.textContent=T.children)}return y.nextSibling},m=(y,T,N,I,M,P,H)=>{H=H||!!T.dynamicChildren;const j=T.children,ie=j.length;for(let B=0;B{const{slotScopeIds:H}=T;H&&(M=M?M.concat(H):H);const j=i(y),ie=m(a(y),T,j,N,I,M,P);return ie&&Oo(ie)&&ie.data==="]"?a(T.anchor=ie):($t=!0,l(T.anchor=c("]"),j,ie),ie)},E=(y,T,N,I,M,P)=>{if($t=!0,T.el=null,P){const ie=A(y);for(;;){const B=a(y);if(B&&B!==ie)s(B);else break}}const H=a(y),j=i(y);return s(y),n(null,T,j,H,N,I,Lo(j),M),H},A=(y,T="[",N="]")=>{let I=0;for(;y;)if(y=a(y),y&&Oo(y)&&(y.data===T&&I++,y.data===N)){if(I===0)return a(y);I--}return y},w=(y,T,N)=>{const I=T.parentNode;I&&I.replaceChild(y,T);let M=N;for(;M;)M.vnode.el===T&&(M.vnode.el=y,M.subTree.el=y),M=M.parent},O=y=>y.nodeType===1&&y.tagName.toLowerCase()==="template";return[u,f]}const Fe=Zs;function Zd(e){return ef(e,Xd)}function ef(e,t){const n=Ir();n.__VUE__=!0;const{insert:o,remove:r,patchProp:a,createElement:i,createText:s,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:p,setScopeId:m=lt,insertStaticContent:g}=e,E=(h,v,b,L=null,S=null,R=null,z=!1,D=null,V=!!v.dynamicChildren)=>{if(h===v)return;h&&!Yt(h,v)&&(L=C(h),Ve(h,S,R,!0),h=null),v.patchFlag===-2&&(V=!1,v.dynamicChildren=null);const{type:x,ref:X,shapeFlag:q}=v;switch(x){case Ln:A(h,v,b,L);break;case Qe:w(h,v,b,L);break;case Xn:h==null&&O(v,b,L,z);break;case qe:B(h,v,b,L,S,R,z,D,V);break;default:q&1?N(h,v,b,L,S,R,z,D,V):q&6?ee(h,v,b,L,S,R,z,D,V):(q&64||q&128)&&x.process(h,v,b,L,S,R,z,D,V,F)}X!=null&&S&&jo(X,h&&h.ref,R,v||h,!v)},A=(h,v,b,L)=>{if(h==null)o(v.el=s(v.children),b,L);else{const S=v.el=h.el;v.children!==h.children&&c(S,v.children)}},w=(h,v,b,L)=>{h==null?o(v.el=l(v.children||""),b,L):v.el=h.el},O=(h,v,b,L)=>{[h.el,h.anchor]=g(h.children,v,b,L,h.el,h.anchor)},y=({el:h,anchor:v},b,L)=>{let S;for(;h&&h!==v;)S=p(h),o(h,b,L),h=S;o(v,b,L)},T=({el:h,anchor:v})=>{let b;for(;h&&h!==v;)b=p(h),r(h),h=b;r(v)},N=(h,v,b,L,S,R,z,D,V)=>{z=z||v.type==="svg",h==null?I(v,b,L,S,R,z,D,V):H(h,v,S,R,z,D,V)},I=(h,v,b,L,S,R,z,D)=>{let V,x;const{type:X,props:q,shapeFlag:Z,transition:te,dirs:ae}=h;if(V=h.el=i(h.type,R,q&&q.is,q),Z&8?u(V,h.children):Z&16&&P(h.children,V,null,L,S,R&&X!=="foreignObject",z,D),ae&&mt(h,null,L,"created"),M(V,h,h.scopeId,z,L),q){for(const me in q)me!=="value"&&!Yn(me)&&a(V,me,null,q[me],R,h.children,L,S,Re);"value"in q&&a(V,"value",null,q.value),(x=q.onVnodeBeforeMount)&&Ye(x,L,h)}ae&&mt(h,null,L,"beforeMount");const _e=ml(S,te);_e&&te.beforeEnter(V),o(V,v,b),((x=q&&q.onVnodeMounted)||_e||ae)&&Fe(()=>{x&&Ye(x,L,h),_e&&te.enter(V),ae&&mt(h,null,L,"mounted")},S)},M=(h,v,b,L,S)=>{if(b&&m(h,b),L)for(let R=0;R{for(let x=V;x{const D=v.el=h.el;let{patchFlag:V,dynamicChildren:x,dirs:X}=v;V|=h.patchFlag&16;const q=h.props||ye,Z=v.props||ye;let te;b&&qt(b,!1),(te=Z.onVnodeBeforeUpdate)&&Ye(te,b,v,h),X&&mt(v,h,b,"beforeUpdate"),b&&qt(b,!0);const ae=S&&v.type!=="foreignObject";if(x?j(h.dynamicChildren,x,D,b,L,ae,R):z||J(h,v,D,null,b,L,ae,R,!1),V>0){if(V&16)ie(D,v,q,Z,b,L,S);else if(V&2&&q.class!==Z.class&&a(D,"class",null,Z.class,S),V&4&&a(D,"style",q.style,Z.style,S),V&8){const _e=v.dynamicProps;for(let me=0;me<_e.length;me++){const Oe=_e[me],ot=q[Oe],fn=Z[Oe];(fn!==ot||Oe==="value")&&a(D,Oe,ot,fn,S,h.children,b,L,Re)}}V&1&&h.children!==v.children&&u(D,v.children)}else!z&&x==null&&ie(D,v,q,Z,b,L,S);((te=Z.onVnodeUpdated)||X)&&Fe(()=>{te&&Ye(te,b,v,h),X&&mt(v,h,b,"updated")},L)},j=(h,v,b,L,S,R,z)=>{for(let D=0;D{if(b!==L){if(b!==ye)for(const D in b)!Yn(D)&&!(D in L)&&a(h,D,b[D],null,z,v.children,S,R,Re);for(const D in L){if(Yn(D))continue;const V=L[D],x=b[D];V!==x&&D!=="value"&&a(h,D,x,V,z,v.children,S,R,Re)}"value"in L&&a(h,"value",b.value,L.value)}},B=(h,v,b,L,S,R,z,D,V)=>{const x=v.el=h?h.el:s(""),X=v.anchor=h?h.anchor:s("");let{patchFlag:q,dynamicChildren:Z,slotScopeIds:te}=v;te&&(D=D?D.concat(te):te),h==null?(o(x,b,L),o(X,b,L),P(v.children,b,X,S,R,z,D,V)):q>0&&q&64&&Z&&h.dynamicChildren?(j(h.dynamicChildren,Z,b,S,R,z,D),(v.key!=null||S&&v===S.subTree)&&vl(h,v,!0)):J(h,v,b,X,S,R,z,D,V)},ee=(h,v,b,L,S,R,z,D,V)=>{v.slotScopeIds=D,h==null?v.shapeFlag&512?S.ctx.activate(v,b,L,z,V):Ee(v,b,L,S,R,z,V):Te(h,v,V)},Ee=(h,v,b,L,S,R,z)=>{const D=h.component=ff(h,L,S);if(mo(h)&&(D.ctx.renderer=F),pf(D),D.asyncDep){if(S&&S.registerDep(D,Y),!h.el){const V=D.subTree=ke(Qe);w(null,V,v,b)}return}Y(D,h,v,b,S,R,z)},Te=(h,v,b)=>{const L=v.component=h.component;if(Ed(h,v,b))if(L.asyncDep&&!L.asyncResolved){oe(L,v,b);return}else L.next=v,md(L.update),L.update();else v.el=h.el,L.vnode=v},Y=(h,v,b,L,S,R,z)=>{const D=()=>{if(h.isMounted){let{next:X,bu:q,u:Z,parent:te,vnode:ae}=h,_e=X,me;qt(h,!1),X?(X.el=ae.el,oe(h,X,z)):X=ae,q&&xo(q),(me=X.props&&X.props.onVnodeBeforeUpdate)&&Ye(me,te,X,ae),qt(h,!0);const Oe=pr(h),ot=h.subTree;h.subTree=Oe,E(ot,Oe,f(ot.el),C(ot),h,S,R),X.el=Oe.el,_e===null&&Td(h,Oe.el),Z&&Fe(Z,S),(me=X.props&&X.props.onVnodeUpdated)&&Fe(()=>Ye(me,te,X,ae),S)}else{let X;const{el:q,props:Z}=v,{bm:te,m:ae,parent:_e}=h,me=Jn(v);if(qt(h,!1),te&&xo(te),!me&&(X=Z&&Z.onVnodeBeforeMount)&&Ye(X,_e,v),qt(h,!0),q&&de){const Oe=()=>{h.subTree=pr(h),de(q,h.subTree,h,S,null)};me?v.type.__asyncLoader().then(()=>!h.isUnmounted&&Oe()):Oe()}else{const Oe=h.subTree=pr(h);E(null,Oe,b,L,h,S,R),v.el=Oe.el}if(ae&&Fe(ae,S),!me&&(X=Z&&Z.onVnodeMounted)){const Oe=v;Fe(()=>Ye(X,_e,Oe),S)}(v.shapeFlag&256||_e&&Jn(_e.vnode)&&_e.vnode.shapeFlag&256)&&h.a&&Fe(h.a,S),h.isMounted=!0,v=b=L=null}},V=h.effect=new sa(D,()=>Qo(x),h.scope),x=h.update=()=>V.run();x.id=h.uid,qt(h,!0),x()},oe=(h,v,b)=>{v.component=h;const L=h.vnode.props;h.vnode=v,h.next=null,Gd(h,v.props,L,b),Qd(h,v.children,b),Mn(),ti(),Nn()},J=(h,v,b,L,S,R,z,D,V=!1)=>{const x=h&&h.children,X=h?h.shapeFlag:0,q=v.children,{patchFlag:Z,shapeFlag:te}=v;if(Z>0){if(Z&128){xt(x,q,b,L,S,R,z,D,V);return}else if(Z&256){nt(x,q,b,L,S,R,z,D,V);return}}te&8?(X&16&&Re(x,S,R),q!==x&&u(b,q)):X&16?te&16?xt(x,q,b,L,S,R,z,D,V):Re(x,S,R,!0):(X&8&&u(b,""),te&16&&P(q,b,L,S,R,z,D,V))},nt=(h,v,b,L,S,R,z,D,V)=>{h=h||_n,v=v||_n;const x=h.length,X=v.length,q=Math.min(x,X);let Z;for(Z=0;ZX?Re(h,S,R,!0,!1,q):P(v,b,L,S,R,z,D,V,q)},xt=(h,v,b,L,S,R,z,D,V)=>{let x=0;const X=v.length;let q=h.length-1,Z=X-1;for(;x<=q&&x<=Z;){const te=h[x],ae=v[x]=V?Ft(v[x]):rt(v[x]);if(Yt(te,ae))E(te,ae,b,null,S,R,z,D,V);else break;x++}for(;x<=q&&x<=Z;){const te=h[q],ae=v[Z]=V?Ft(v[Z]):rt(v[Z]);if(Yt(te,ae))E(te,ae,b,null,S,R,z,D,V);else break;q--,Z--}if(x>q){if(x<=Z){const te=Z+1,ae=teZ)for(;x<=q;)Ve(h[x],S,R,!0),x++;else{const te=x,ae=x,_e=new Map;for(x=ae;x<=Z;x++){const We=v[x]=V?Ft(v[x]):rt(v[x]);We.key!=null&&_e.set(We.key,x)}let me,Oe=0;const ot=Z-ae+1;let fn=!1,Ha=0;const Hn=new Array(ot);for(x=0;x=ot){Ve(We,S,R,!0);continue}let ht;if(We.key!=null)ht=_e.get(We.key);else for(me=ae;me<=Z;me++)if(Hn[me-ae]===0&&Yt(We,v[me])){ht=me;break}ht===void 0?Ve(We,S,R,!0):(Hn[ht-ae]=x+1,ht>=Ha?Ha=ht:fn=!0,E(We,v[ht],b,null,S,R,z,D,V),Oe++)}const ja=fn?tf(Hn):_n;for(me=ja.length-1,x=ot-1;x>=0;x--){const We=ae+x,ht=v[We],Wa=We+1{const{el:R,type:z,transition:D,children:V,shapeFlag:x}=h;if(x&6){pt(h.component.subTree,v,b,L);return}if(x&128){h.suspense.move(v,b,L);return}if(x&64){z.move(h,v,b,F);return}if(z===qe){o(R,v,b);for(let q=0;qD.enter(R),S);else{const{leave:q,delayLeave:Z,afterLeave:te}=D,ae=()=>o(R,v,b),_e=()=>{q(R,()=>{ae(),te&&te()})};Z?Z(R,ae,_e):_e()}else o(R,v,b)},Ve=(h,v,b,L=!1,S=!1)=>{const{type:R,props:z,ref:D,children:V,dynamicChildren:x,shapeFlag:X,patchFlag:q,dirs:Z}=h;if(D!=null&&jo(D,null,b,h,!0),X&256){v.ctx.deactivate(h);return}const te=X&1&&Z,ae=!Jn(h);let _e;if(ae&&(_e=z&&z.onVnodeBeforeUnmount)&&Ye(_e,v,h),X&6)_o(h.component,b,L);else{if(X&128){h.suspense.unmount(b,L);return}te&&mt(h,null,v,"beforeUnmount"),X&64?h.type.remove(h,v,b,S,F,L):x&&(R!==qe||q>0&&q&64)?Re(x,v,b,!1,!0):(R===qe&&q&384||!S&&X&16)&&Re(V,v,b),L&&un(h)}(ae&&(_e=z&&z.onVnodeUnmounted)||te)&&Fe(()=>{_e&&Ye(_e,v,h),te&&mt(h,null,v,"unmounted")},b)},un=h=>{const{type:v,el:b,anchor:L,transition:S}=h;if(v===qe){dn(b,L);return}if(v===Xn){T(h);return}const R=()=>{r(b),S&&!S.persisted&&S.afterLeave&&S.afterLeave()};if(h.shapeFlag&1&&S&&!S.persisted){const{leave:z,delayLeave:D}=S,V=()=>z(b,R);D?D(h.el,R,V):V()}else R()},dn=(h,v)=>{let b;for(;h!==v;)b=p(h),r(h),h=b;r(v)},_o=(h,v,b)=>{const{bum:L,scope:S,update:R,subTree:z,um:D}=h;L&&xo(L),S.stop(),R&&(R.active=!1,Ve(z,h,v,b)),D&&Fe(D,v),Fe(()=>{h.isUnmounted=!0},v),v&&v.pendingBranch&&!v.isUnmounted&&h.asyncDep&&!h.asyncResolved&&h.suspenseId===v.pendingId&&(v.deps--,v.deps===0&&v.resolve())},Re=(h,v,b,L=!1,S=!1,R=0)=>{for(let z=R;zh.shapeFlag&6?C(h.component.subTree):h.shapeFlag&128?h.suspense.next():p(h.anchor||h.el),U=(h,v,b)=>{h==null?v._vnode&&Ve(v._vnode,null,null,!0):E(v._vnode||null,h,v,null,null,null,b),ti(),Fo(),v._vnode=h},F={p:E,um:Ve,m:pt,r:un,mt:Ee,mc:P,pc:J,pbc:j,n:C,o:e};let Q,de;return t&&([Q,de]=t(F)),{render:U,hydrate:Q,createApp:qd(U,Q)}}function qt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function ml(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function vl(e,t,n=!1){const o=e.children,r=t.children;if(K(o)&&K(r))for(let a=0;a>1,e[n[s]]0&&(t[o]=n[a-1]),n[a]=o)}}for(a=n.length,i=n[a-1];a-- >0;)n[a]=i,i=t[i];return n}const nf=e=>e.__isTeleport,qe=Symbol.for("v-fgt"),Ln=Symbol.for("v-txt"),Qe=Symbol.for("v-cmt"),Xn=Symbol.for("v-stc"),Zn=[];let st=null;function of(e=!1){Zn.push(st=e?null:[])}function rf(){Zn.pop(),st=Zn[Zn.length-1]||null}let so=1;function pi(e){so+=e}function gl(e){return e.dynamicChildren=so>0?st||_n:null,rf(),so>0&&st&&st.push(e),e}function C0(e,t,n,o,r,a){return gl(bl(e,t,n,o,r,a,!0))}function af(e,t,n,o,r){return gl(ke(e,t,n,o,r,!0))}function Br(e){return e?e.__v_isVNode===!0:!1}function Yt(e,t){return e.type===t.type&&e.key===t.key}const er="__vInternal",_l=({key:e})=>e??null,Do=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?se(e)||Ae(e)||ne(e)?{i:Ke,r:e,k:t,f:!!n}:e:null);function bl(e,t=null,n=null,o=0,r=null,a=e===qe?0:1,i=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&_l(t),ref:t&&Do(t),scopeId:Xs,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:o,dynamicProps:r,dynamicChildren:null,appContext:null,ctx:Ke};return s?(ya(l,n),a&128&&e.normalize(l)):n&&(l.shapeFlag|=se(n)?8:16),so>0&&!i&&st&&(l.patchFlag>0||a&6)&&l.patchFlag!==32&&st.push(l),l}const ke=sf;function sf(e,t=null,n=null,o=0,r=null,a=!1){if((!e||e===Nd)&&(e=Qe),Br(e)){const s=Wt(e,t,!0);return n&&ya(s,n),so>0&&!a&&st&&(s.shapeFlag&6?st[st.indexOf(e)]=s:st.push(s)),s.patchFlag|=-2,s}if(_f(e)&&(e=e.__vccOpts),t){t=lf(t);let{class:s,style:l}=t;s&&!se(s)&&(t.class=ra(s)),ve(l)&&(js(l)&&!K(l)&&(l=Ce({},l)),t.style=oa(l))}const i=se(e)?1:Ad(e)?128:nf(e)?64:ve(e)?4:ne(e)?2:0;return bl(e,t,n,o,r,i,a,!0)}function lf(e){return e?js(e)||er in e?Ce({},e):e:null}function Wt(e,t,n=!1){const{props:o,ref:r,patchFlag:a,children:i}=e,s=t?cf(o||{},t):o;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&_l(s),ref:t&&t.ref?n&&r?K(r)?r.concat(Do(t)):[r,Do(t)]:Do(t):r,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==qe?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Wt(e.ssContent),ssFallback:e.ssFallback&&Wt(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce}}function yl(e=" ",t=0){return ke(Ln,null,e,t)}function S0(e,t){const n=ke(Xn,null,e);return n.staticCount=t,n}function P0(e="",t=!1){return t?(of(),af(Qe,null,e)):ke(Qe,null,e)}function rt(e){return e==null||typeof e=="boolean"?ke(Qe):K(e)?ke(qe,null,e.slice()):typeof e=="object"?Ft(e):ke(Ln,null,String(e))}function Ft(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Wt(e)}function ya(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(K(t))n=16;else if(typeof t=="object")if(o&65){const r=t.default;r&&(r._c&&(r._d=!1),ya(e,r()),r._c&&(r._d=!0));return}else{n=32;const r=t._;!r&&!(er in t)?t._ctx=Ke:r===3&&Ke&&(Ke.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ne(t)?(t={default:t,_ctx:Ke},n=32):(t=String(t),o&64?(n=16,t=[yl(t)]):n=8);e.children=t,e.shapeFlag|=n}function cf(...e){const t={};for(let n=0;nSe||Ke;let wa,pn,hi="__VUE_INSTANCE_SETTERS__";(pn=Ir()[hi])||(pn=Ir()[hi]=[]),pn.push(e=>Se=e),wa=e=>{pn.length>1?pn.forEach(t=>t(e)):pn[0](e)};const On=e=>{wa(e),e.scope.on()},en=()=>{Se&&Se.scope.off(),wa(null)};function wl(e){return e.vnode.shapeFlag&4}let Cn=!1;function pf(e,t=!1){Cn=t;const{props:n,children:o}=e.vnode,r=wl(e);Kd(e,n,r,t),Jd(e,o);const a=r?hf(e,t):void 0;return Cn=!1,a}function hf(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=Ws(new Proxy(e.ctx,Fd));const{setup:o}=n;if(o){const r=e.setupContext=o.length>1?vf(e):null;On(e),Mn();const a=Ht(o,e,0,[e.props,r]);if(Nn(),en(),Ls(a)){if(a.then(en,en),t)return a.then(i=>{mi(e,i,t)}).catch(i=>{ho(i,e,0)});e.asyncDep=a}else mi(e,a,t)}else El(e,t)}function mi(e,t,n){ne(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:ve(t)&&(e.setupState=qs(t)),El(e,n)}let vi;function El(e,t,n){const o=e.type;if(!e.render){if(!t&&vi&&!o.render){const r=o.template||_a(e).template;if(r){const{isCustomElement:a,compilerOptions:i}=e.appContext.config,{delimiters:s,compilerOptions:l}=o,c=Ce(Ce({isCustomElement:a,delimiters:s},i),l);o.render=vi(r,c)}}e.render=o.render||lt}{On(e),Mn();try{Bd(e)}finally{Nn(),en()}}}function mf(e){return e.attrsProxy||(e.attrsProxy=new Proxy(e.attrs,{get(t,n){return ze(e,"get","$attrs"),t[n]}}))}function vf(e){const t=n=>{e.exposed=n||{}};return{get attrs(){return mf(e)},slots:e.slots,emit:e.emit,expose:t}}function tr(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy(qs(Ws(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Qn)return Qn[n](e)},has(t,n){return n in t||n in Qn}}))}function gf(e,t=!0){return ne(e)?e.displayName||e.name:e.name||t&&e.__name}function _f(e){return ne(e)&&"__vccOpts"in e}const k=(e,t)=>fd(e,t,Cn);function d(e,t,n){const o=arguments.length;return o===2?ve(t)&&!K(t)?Br(t)?ke(e,null,[t]):ke(e,t):ke(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Br(n)&&(n=[n]),ke(e,t,n))}const bf=Symbol.for("v-scx"),yf=()=>we(bf),wf="3.3.7",Ef="http://www.w3.org/2000/svg",Jt=typeof document<"u"?document:null,gi=Jt&&Jt.createElement("template"),Tf={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const r=t?Jt.createElementNS(Ef,e):Jt.createElement(e,n?{is:n}:void 0);return e==="select"&&o&&o.multiple!=null&&r.setAttribute("multiple",o.multiple),r},createText:e=>Jt.createTextNode(e),createComment:e=>Jt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Jt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,r,a){const i=n?n.previousSibling:t.lastChild;if(r&&(r===a||r.nextSibling))for(;t.insertBefore(r.cloneNode(!0),n),!(r===a||!(r=r.nextSibling)););else{gi.innerHTML=o?`${e}`:e;const s=gi.content;if(o){const l=s.firstChild;for(;l.firstChild;)s.appendChild(l.firstChild);s.removeChild(l)}t.insertBefore(s,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Mt="transition",jn="animation",Sn=Symbol("_vtc"),Ot=(e,{slots:t})=>d(Od,Al(e),t);Ot.displayName="Transition";const Tl={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},Af=Ot.props=Ce({},ol,Tl),Kt=(e,t=[])=>{K(e)?e.forEach(n=>n(...t)):e&&e(...t)},_i=e=>e?K(e)?e.some(t=>t.length>1):e.length>1:!1;function Al(e){const t={};for(const B in e)B in Tl||(t[B]=e[B]);if(e.css===!1)return t;const{name:n="v",type:o,duration:r,enterFromClass:a=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:s=`${n}-enter-to`,appearFromClass:l=a,appearActiveClass:c=i,appearToClass:u=s,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=kf(r),E=g&&g[0],A=g&&g[1],{onBeforeEnter:w,onEnter:O,onEnterCancelled:y,onLeave:T,onLeaveCancelled:N,onBeforeAppear:I=w,onAppear:M=O,onAppearCancelled:P=y}=t,H=(B,ee,Ee)=>{Nt(B,ee?u:s),Nt(B,ee?c:i),Ee&&Ee()},j=(B,ee)=>{B._isLeaving=!1,Nt(B,f),Nt(B,m),Nt(B,p),ee&&ee()},ie=B=>(ee,Ee)=>{const Te=B?M:O,Y=()=>H(ee,B,Ee);Kt(Te,[ee,Y]),bi(()=>{Nt(ee,B?l:a),bt(ee,B?u:s),_i(Te)||yi(ee,o,E,Y)})};return Ce(t,{onBeforeEnter(B){Kt(w,[B]),bt(B,a),bt(B,i)},onBeforeAppear(B){Kt(I,[B]),bt(B,l),bt(B,c)},onEnter:ie(!1),onAppear:ie(!0),onLeave(B,ee){B._isLeaving=!0;const Ee=()=>j(B,ee);bt(B,f),Ll(),bt(B,p),bi(()=>{B._isLeaving&&(Nt(B,f),bt(B,m),_i(T)||yi(B,o,A,Ee))}),Kt(T,[B,Ee])},onEnterCancelled(B){H(B,!1),Kt(y,[B])},onAppearCancelled(B){H(B,!0),Kt(P,[B])},onLeaveCancelled(B){j(B),Kt(N,[B])}})}function kf(e){if(e==null)return null;if(ve(e))return[gr(e.enter),gr(e.leave)];{const t=gr(e);return[t,t]}}function gr(e){return Ou(e)}function bt(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Sn]||(e[Sn]=new Set)).add(t)}function Nt(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[Sn];n&&(n.delete(t),n.size||(e[Sn]=void 0))}function bi(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Lf=0;function yi(e,t,n,o){const r=e._endId=++Lf,a=()=>{r===e._endId&&o()};if(n)return setTimeout(a,n);const{type:i,timeout:s,propCount:l}=kl(e,t);if(!i)return o();const c=i+"end";let u=0;const f=()=>{e.removeEventListener(c,p),a()},p=m=>{m.target===e&&++u>=l&&f()};setTimeout(()=>{u(n[g]||"").split(", "),r=o(`${Mt}Delay`),a=o(`${Mt}Duration`),i=wi(r,a),s=o(`${jn}Delay`),l=o(`${jn}Duration`),c=wi(s,l);let u=null,f=0,p=0;t===Mt?i>0&&(u=Mt,f=i,p=a.length):t===jn?c>0&&(u=jn,f=c,p=l.length):(f=Math.max(i,c),u=f>0?i>c?Mt:jn:null,p=u?u===Mt?a.length:l.length:0);const m=u===Mt&&/\b(transform|all)(,|$)/.test(o(`${Mt}Property`).toString());return{type:u,timeout:f,propCount:p,hasTransform:m}}function wi(e,t){for(;e.lengthEi(n)+Ei(e[o])))}function Ei(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Ll(){return document.body.offsetHeight}function Of(e,t,n){const o=e[Sn];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Ea=Symbol("_vod"),I0={beforeMount(e,{value:t},{transition:n}){e[Ea]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Wn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Wn(e,!0),o.enter(e)):o.leave(e,()=>{Wn(e,!1)}):Wn(e,t))},beforeUnmount(e,{value:t}){Wn(e,t)}};function Wn(e,t){e.style.display=t?e[Ea]:"none"}function Cf(e,t,n){const o=e.style,r=se(n);if(n&&!r){if(t&&!se(t))for(const a in t)n[a]==null&&zr(o,a,"");for(const a in n)zr(o,a,n[a])}else{const a=o.display;r?t!==n&&(o.cssText=n):t&&e.removeAttribute("style"),Ea in e&&(o.display=a)}}const Ti=/\s*!important$/;function zr(e,t,n){if(K(n))n.forEach(o=>zr(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=Sf(e,t);Ti.test(n)?e.setProperty($n(o),n.replace(Ti,""),"important"):e[o]=n}}const Ai=["Webkit","Moz","ms"],_r={};function Sf(e,t){const n=_r[t];if(n)return n;let o=Ze(t);if(o!=="filter"&&o in e)return _r[t]=o;o=fo(o);for(let r=0;rbr||($f.then(()=>br=0),br=Date.now());function Nf(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;Je(Vf(o,n.value),t,5,[o])};return n.value=e,n.attached=Mf(),n}function Vf(e,t){if(K(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>r=>!r._stopped&&o&&o(r))}else return t}const Ci=/^on[a-z]/,Ff=(e,t,n,o,r=!1,a,i,s,l)=>{t==="class"?Of(e,o,r):t==="style"?Cf(e,n,o):co(t)?ea(t)||xf(e,t,n,o,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Bf(e,t,o,r))?If(e,t,o,a,i,s,l):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),Pf(e,t,o,r))};function Bf(e,t,n,o){return o?!!(t==="innerHTML"||t==="textContent"||t in e&&Ci.test(t)&&ne(n)):t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA"||Ci.test(t)&&se(n)?!1:t in e}const Ol=new WeakMap,Cl=new WeakMap,Wo=Symbol("_moveCb"),Si=Symbol("_enterCb"),Sl={name:"TransitionGroup",props:Ce({},Af,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=ln(),o=nl();let r,a;return il(()=>{if(!r.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!Uf(r[0].el,n.vnode.el,i))return;r.forEach(Hf),r.forEach(jf);const s=r.filter(Wf);Ll(),s.forEach(l=>{const c=l.el,u=c.style;bt(c,i),u.transform=u.webkitTransform=u.transitionDuration="";const f=c[Wo]=p=>{p&&p.target!==c||(!p||/transform$/.test(p.propertyName))&&(c.removeEventListener("transitionend",f),c[Wo]=null,Nt(c,i))};c.addEventListener("transitionend",f)})}),()=>{const i=le(e),s=Al(i);let l=i.tag||qe;r=a,a=t.default?va(t.default()):[];for(let c=0;cdelete e.mode;Sl.props;const Ta=Sl;function Hf(e){const t=e.el;t[Wo]&&t[Wo](),t[Si]&&t[Si]()}function jf(e){Cl.set(e,e.el.getBoundingClientRect())}function Wf(e){const t=Ol.get(e),n=Cl.get(e),o=t.left-n.left,r=t.top-n.top;if(o||r){const a=e.el.style;return a.transform=a.webkitTransform=`translate(${o}px,${r}px)`,a.transitionDuration="0s",e}}function Uf(e,t,n){const o=e.cloneNode(),r=e[Sn];r&&r.forEach(s=>{s.split(/\s+/).forEach(l=>l&&o.classList.remove(l))}),n.split(/\s+/).forEach(s=>s&&o.classList.add(s)),o.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(o);const{hasTransform:i}=kl(o);return a.removeChild(o),i}const Ut=e=>{const t=e.props["onUpdate:modelValue"]||!1;return K(t)?n=>xo(t,n):t};function qf(e){e.target.composing=!0}function Pi(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Xe=Symbol("_assign"),Ii={created(e,{modifiers:{lazy:t,trim:n,number:o}},r){e[Xe]=Ut(r);const a=o||r.props&&r.props.type==="number";Tt(e,t?"change":"input",i=>{if(i.target.composing)return;let s=e.value;n&&(s=s.trim()),a&&(s=Mo(s)),e[Xe](s)}),n&&Tt(e,"change",()=>{e.value=e.value.trim()}),t||(Tt(e,"compositionstart",qf),Tt(e,"compositionend",Pi),Tt(e,"change",Pi))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,modifiers:{lazy:n,trim:o,number:r}},a){if(e[Xe]=Ut(a),e.composing||document.activeElement===e&&e.type!=="range"&&(n||o&&e.value.trim()===t||(r||e.type==="number")&&Mo(e.value)===t))return;const i=t??"";e.value!==i&&(e.value=i)}},Kf={deep:!0,created(e,t,n){e[Xe]=Ut(n),Tt(e,"change",()=>{const o=e._modelValue,r=Pn(e),a=e.checked,i=e[Xe];if(K(o)){const s=aa(o,r),l=s!==-1;if(a&&!l)i(o.concat(r));else if(!a&&l){const c=[...o];c.splice(s,1),i(c)}}else if(Dn(o)){const s=new Set(o);a?s.add(r):s.delete(r),i(s)}else i(Pl(e,a))})},mounted:Ri,beforeUpdate(e,t,n){e[Xe]=Ut(n),Ri(e,t,n)}};function Ri(e,{value:t,oldValue:n},o){e._modelValue=t,K(t)?e.checked=aa(t,o.props.value)>-1:Dn(t)?e.checked=t.has(o.props.value):t!==n&&(e.checked=nn(t,Pl(e,!0)))}const Gf={created(e,{value:t},n){e.checked=nn(t,n.props.value),e[Xe]=Ut(n),Tt(e,"change",()=>{e[Xe](Pn(e))})},beforeUpdate(e,{value:t,oldValue:n},o){e[Xe]=Ut(o),t!==n&&(e.checked=nn(t,o.props.value))}},Yf={deep:!0,created(e,{value:t,modifiers:{number:n}},o){const r=Dn(t);Tt(e,"change",()=>{const a=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?Mo(Pn(i)):Pn(i));e[Xe](e.multiple?r?new Set(a):a:a[0])}),e[Xe]=Ut(o)},mounted(e,{value:t}){xi(e,t)},beforeUpdate(e,t,n){e[Xe]=Ut(n)},updated(e,{value:t}){xi(e,t)}};function xi(e,t){const n=e.multiple;if(!(n&&!K(t)&&!Dn(t))){for(let o=0,r=e.options.length;o-1:a.selected=t.has(i);else if(nn(Pn(a),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Pn(e){return"_value"in e?e._value:e.value}function Pl(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const R0={created(e,t,n){Co(e,t,n,null,"created")},mounted(e,t,n){Co(e,t,n,null,"mounted")},beforeUpdate(e,t,n,o){Co(e,t,n,o,"beforeUpdate")},updated(e,t,n,o){Co(e,t,n,o,"updated")}};function Jf(e,t){switch(e){case"SELECT":return Yf;case"TEXTAREA":return Ii;default:switch(t){case"checkbox":return Kf;case"radio":return Gf;default:return Ii}}}function Co(e,t,n,o,r){const i=Jf(e.tagName,n.props&&n.props.type)[r];i&&i(e,t,n,o)}const Qf=Ce({patchProp:Ff},Tf);let yr,Di=!1;function Xf(){return yr=Di?yr:Zd(Qf),Di=!0,yr}const Zf=(...e)=>{const t=Xf().createApp(...e),{mount:n}=t;return t.mount=o=>{const r=ep(o);if(r)return n(r,!0,r instanceof SVGElement)},t};function ep(e){return se(e)?document.querySelector(e):e}const tp={"v-2d0a870d":()=>_(()=>import("./index.html-279f7857.js"),[]).then(({data:e})=>e),"v-082946dd":()=>_(()=>import("./community.html-84f8e709.js"),[]).then(({data:e})=>e),"v-038e810e":()=>_(()=>import("./i18n.html-10933388.js"),[]).then(({data:e})=>e),"v-ba407326":()=>_(()=>import("./menu.html-5e29ea11.js"),[]).then(({data:e})=>e),"v-586858ed":()=>_(()=>import("./project.html-9b08d186.js"),[]).then(({data:e})=>e),"v-0c01f6a4":()=>_(()=>import("./quick-start.html-dab9eba3.js"),[]).then(({data:e})=>e),"v-23b9870a":()=>_(()=>import("./side-load.html-93a3f61b.js"),[]).then(({data:e})=>e),"v-7d29d7d8":()=>_(()=>import("./star-request.html-7f0089f1.js"),[]).then(({data:e})=>e),"v-2d0ad528":()=>_(()=>import("./index.html-81dd031d.js"),[]).then(({data:e})=>e),"v-5cad49b8":()=>_(()=>import("./community.html-417cf11c.js"),[]).then(({data:e})=>e),"v-27c4e153":()=>_(()=>import("./i18n.html-f972be08.js"),[]).then(({data:e})=>e),"v-71d3b29c":()=>_(()=>import("./menu.html-37a47978.js"),[]).then(({data:e})=>e),"v-6c355688":()=>_(()=>import("./project.html-bd19dacf.js"),[]).then(({data:e})=>e),"v-4f90aebf":()=>_(()=>import("./quick-start.html-0a9c32af.js"),[]).then(({data:e})=>e),"v-783d89e5":()=>_(()=>import("./side-load.html-0a898ed6.js"),[]).then(({data:e})=>e),"v-a91bb9c6":()=>_(()=>import("./star-request.html-eb357667.js"),[]).then(({data:e})=>e),"v-1bd4ef83":()=>_(()=>import("./FAQ.html-58ca3047.js"),[]).then(({data:e})=>e),"v-5c3f740a":()=>_(()=>import("./Gacha-system-and-export-principal.html-015af494.js"),[]).then(({data:e})=>e),"v-5f449840":()=>_(()=>import("./index.html-6a43042e.js"),[]).then(({data:e})=>e),"v-e14c56e4":()=>_(()=>import("./dependency.html-cb812315.js"),[]).then(({data:e})=>e),"v-1a028d16":()=>_(()=>import("./exceptions.html-a05a1b2d.js"),[]).then(({data:e})=>e),"v-bd668802":()=>_(()=>import("./get-stoken-cookie-from-the-third-party.html-75f986b3.js"),[]).then(({data:e})=>e),"v-51647c4a":()=>_(()=>import("./known-issue.html-dcf2dda3.js"),[]).then(({data:e})=>e),"v-bbae7dd2":()=>_(()=>import("./uninstall.html-90d5e7a1.js"),[]).then(({data:e})=>e),"v-f88d343e":()=>_(()=>import("./index.html-061d6dc0.js"),[]).then(({data:e})=>e),"v-4c2cca8b":()=>_(()=>import("./contribute.html-7f946320.js"),[]).then(({data:e})=>e),"v-32bb1805":()=>_(()=>import("./platform.html-a018603e.js"),[]).then(({data:e})=>e),"v-30f089b6":()=>_(()=>import("./index.html-ce254148.js"),[]).then(({data:e})=>e),"v-699a13b0":()=>_(()=>import("./achievements.html-a6a0de9a.js"),[]).then(({data:e})=>e),"v-f3692af4":()=>_(()=>import("./character-data.html-8a78117e.js"),[]).then(({data:e})=>e),"v-10108380":()=>_(()=>import("./character-wiki.html-90b9eedb.js"),[]).then(({data:e})=>e),"v-36ceadac":()=>_(()=>import("./dashboard.html-de43d08c.js"),[]).then(({data:e})=>e),"v-83f6294a":()=>_(()=>import("./develop-plan.html-72b138aa.js"),[]).then(({data:e})=>e),"v-7839fe83":()=>_(()=>import("./game-launcher.html-bbaa8a3b.js"),[]).then(({data:e})=>e),"v-0106e0dc":()=>_(()=>import("./hutao-API.html-4088b7a3.js"),[]).then(({data:e})=>e),"v-639b3ef9":()=>_(()=>import("./hutao-settings.html-280e1afc.js"),[]).then(({data:e})=>e),"v-03aaffb1":()=>_(()=>import("./mhy-account-switch.html-ca9beaf1.js"),[]).then(({data:e})=>e),"v-1e98d471":()=>_(()=>import("./monster-wiki.html-ed4ef353.js"),[]).then(({data:e})=>e),"v-124743a4":()=>_(()=>import("./real-time-notes.html-6da9b42a.js"),[]).then(({data:e})=>e),"v-3b7edd61":()=>_(()=>import("./setup.html-af40dc11.js"),[]).then(({data:e})=>e),"v-e30b3c46":()=>_(()=>import("./weapon-wiki.html-5c2ca54e.js"),[]).then(({data:e})=>e),"v-b8e3a2b8":()=>_(()=>import("./wish-export.html-b1d5faab.js"),[]).then(({data:e})=>e),"v-a4f9d2c4":()=>_(()=>import("./index.html-3216a9e5.js"),[]).then(({data:e})=>e),"v-45ceb024":()=>_(()=>import("./bug-report.html-84fe1704.js"),[]).then(({data:e})=>e),"v-b4085a44":()=>_(()=>import("./privacy-notice.html-69586390.js"),[]).then(({data:e})=>e),"v-b1c7a1c2":()=>_(()=>import("./tos.html-e7fb0dd0.js"),[]).then(({data:e})=>e),"v-52f43e3b":()=>_(()=>import("./update-log.html-999bcfb3.js"),[]).then(({data:e})=>e),"v-4a1d3ac8":()=>_(()=>import("./FAQ.html-42cbaba4.js"),[]).then(({data:e})=>e),"v-b0dd6b00":()=>_(()=>import("./Gacha-system-and-export-principal.html-81906cdb.js"),[]).then(({data:e})=>e),"v-16d7d7b6":()=>_(()=>import("./index.html-a228d087.js"),[]).then(({data:e})=>e),"v-37e841a9":()=>_(()=>import("./dependency.html-6aa2a973.js"),[]).then(({data:e})=>e),"v-c8e5b2e0":()=>_(()=>import("./exceptions.html-5e79025e.js"),[]).then(({data:e})=>e),"v-6892c29a":()=>_(()=>import("./get-stoken-cookie-from-the-third-party.html-698c6b8e.js"),[]).then(({data:e})=>e),"v-8ab89ae2":()=>_(()=>import("./known-issue.html-353310f4.js"),[]).then(({data:e})=>e),"v-a04a76c8":()=>_(()=>import("./uninstall.html-3103004e.js"),[]).then(({data:e})=>e),"v-d0f33908":()=>_(()=>import("./index.html-6913b6c2.js"),[]).then(({data:e})=>e),"v-62778390":()=>_(()=>import("./contribute.html-64ac2d95.js"),[]).then(({data:e})=>e),"v-c80b636c":()=>_(()=>import("./platform.html-ec227b31.js"),[]).then(({data:e})=>e),"v-56d3ae80":()=>_(()=>import("./symposium1.html-4ca69a8e.js"),[]).then(({data:e})=>e),"v-5369fd42":()=>_(()=>import("./symposium2.html-b9b55802.js"),[]).then(({data:e})=>e),"v-0bbe1b6a":()=>_(()=>import("./index.html-947e2238.js"),[]).then(({data:e})=>e),"v-2841a60b":()=>_(()=>import("./achievements.html-48ffc151.js"),[]).then(({data:e})=>e),"v-3957d221":()=>_(()=>import("./character-data.html-42720767.js"),[]).then(({data:e})=>e),"v-a9f7b44a":()=>_(()=>import("./character-wiki.html-1b9db7c1.js"),[]).then(({data:e})=>e),"v-1b6aa6a2":()=>_(()=>import("./dashboard.html-50b728ce.js"),[]).then(({data:e})=>e),"v-7cac7db6":()=>_(()=>import("./develop-plan.html-4cd8de09.js"),[]).then(({data:e})=>e),"v-e2f690f0":()=>_(()=>import("./game-launcher.html-48fbcd0a.js"),[]).then(({data:e})=>e),"v-0eb8e461":()=>_(()=>import("./hutao-API.html-c450cbe0.js"),[]).then(({data:e})=>e),"v-16a7a694":()=>_(()=>import("./hutao-settings.html-72e1a0f6.js"),[]).then(({data:e})=>e),"v-04b421cc":()=>_(()=>import("./mhy-account-switch.html-db811865.js"),[]).then(({data:e})=>e),"v-457f3268":()=>_(()=>import("./monster-wiki.html-a4668d7a.js"),[]).then(({data:e})=>e),"v-b5462c1a":()=>_(()=>import("./real-time-notes.html-42fa37e7.js"),[]).then(({data:e})=>e),"v-0e3d2934":()=>_(()=>import("./setup.html-829b4bbd.js"),[]).then(({data:e})=>e),"v-108ccfbc":()=>_(()=>import("./weapon-wiki.html-12997220.js"),[]).then(({data:e})=>e),"v-0ccd64e9":()=>_(()=>import("./wish-export.html-30e5101d.js"),[]).then(({data:e})=>e),"v-c4bb0cba":()=>_(()=>import("./index.html-8616774c.js"),[]).then(({data:e})=>e),"v-c87f8b6e":()=>_(()=>import("./bug-report.html-310cbc3b.js"),[]).then(({data:e})=>e),"v-70e6808e":()=>_(()=>import("./privacy-notice.html-e40ff099.js"),[]).then(({data:e})=>e),"v-647ebd24":()=>_(()=>import("./tos.html-3a563f3d.js"),[]).then(({data:e})=>e),"v-119bd096":()=>_(()=>import("./update-log.html-942a467d.js"),[]).then(({data:e})=>e),"v-3706649a":()=>_(()=>import("./404.html-cc4520a7.js"),[]).then(({data:e})=>e),"v-8daa1a0e":()=>_(()=>import("./index.html-ead0711a.js"),[]).then(({data:e})=>e)},np=JSON.parse('{"base":"/","lang":"en-US","title":"","description":"","head":[["script",{"src":"https://umami.irain.in/script.js","data-website-id":"1a7be6c3-a024-47e2-9a42-29e66b997a36","async":"","defer":""}],["script",{"type":"module","src":"https://get.microsoft.com/badge/ms-store-badge.bundled.js"}],["link",{"rel":"icon","href":"/favicon.ico"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-512.png","type":"image/png","sizes":"512x512"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-192.png","type":"image/png","sizes":"192x192"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-144.png","type":"image/png","sizes":"144x144"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-72.png","type":"image/png","sizes":"72x72"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-96.png","type":"image/png","sizes":"96x96"}],["link",{"rel":"icon","href":"/pwa-icon/chrome-48.png","type":"image/png","sizes":"48x48"}],["link",{"rel":"manifest","href":"/manifest.webmanifest","crossorigin":"use-credentials"}],["meta",{"name":"theme-color","content":"#f26d6d"}],["link",{"rel":"apple-touch-icon","href":"/favicon.ico"}],["meta",{"name":"apple-mobile-web-app-capable","content":"yes"}],["meta",{"name":"apple-mobile-web-app-status-bar-style","content":"black"}],["meta",{"name":"msapplication-TileImage","content":"/favicon.ico"}],["meta",{"name":"msapplication-TileColor","content":"#ffffff"}],["meta",{"name":"viewport","content":"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"}]],"locales":{"/zh/":{"lang":"zh-CN","title":"胡桃工具箱","description":"多功能的原神工具箱"},"/en/":{"lang":"en-US","title":"Snap Hutao","description":"Super utilitarian Genshin Impact Toolkit"}}}');var op=([e,t,n])=>e==="meta"&&t.name?`${e}.${t.name}`:["title","base"].includes(e)?e:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,t,n]),rp=e=>{const t=new Set,n=[];return e.forEach(o=>{const r=op(o);t.has(r)||(t.add(r),n.push(o))}),n},ap=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,ip=e=>e.startsWith("ftp://"),Fn=e=>/^(https?:)?\/\//.test(e),sp=/.md((\?|#).*)?$/,Uo=(e,t="/")=>!!(Fn(e)||ip(e)||e.startsWith("/")&&!e.startsWith(t)&&!sp.test(e)),Il=e=>/^mailto:/.test(e),lp=e=>/^tel:/.test(e),Aa=e=>Object.prototype.toString.call(e)==="[object Object]",ka=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Rl=e=>e[0]==="/"?e.slice(1):e,cp=(e,t)=>{const n=Object.keys(e).sort((o,r)=>{const a=r.split("/").length-o.split("/").length;return a!==0?a:r.length-o.length});for(const o of n)if(t.startsWith(o))return o;return"/"},$i=(e,t="/")=>{const n=e.replace(/^(https?:)?\/\/[^/]*/,"");return n.startsWith(t)?`/${n.slice(t.length)}`:n};const xl={"v-2d0a870d":$(()=>_(()=>import("./index.html-45dede9b.js"),["assets/index.html-45dede9b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-082946dd":$(()=>_(()=>import("./community.html-6382b9ab.js"),["assets/community.html-6382b9ab.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-038e810e":$(()=>_(()=>import("./i18n.html-ea3f12cc.js"),["assets/i18n.html-ea3f12cc.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-ba407326":$(()=>_(()=>import("./menu.html-940f952e.js"),["assets/menu.html-940f952e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-586858ed":$(()=>_(()=>import("./project.html-29490bdd.js"),["assets/project.html-29490bdd.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0c01f6a4":$(()=>_(()=>import("./quick-start.html-e4021577.js"),["assets/quick-start.html-e4021577.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-23b9870a":$(()=>_(()=>import("./side-load.html-e2489460.js"),["assets/side-load.html-e2489460.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7d29d7d8":$(()=>_(()=>import("./star-request.html-9881dff3.js"),["assets/star-request.html-9881dff3.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-2d0ad528":$(()=>_(()=>import("./index.html-b2424ddd.js"),["assets/index.html-b2424ddd.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5cad49b8":$(()=>_(()=>import("./community.html-ca7edab2.js"),["assets/community.html-ca7edab2.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-27c4e153":$(()=>_(()=>import("./i18n.html-0cf3ba2c.js"),["assets/i18n.html-0cf3ba2c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-71d3b29c":$(()=>_(()=>import("./menu.html-4e298123.js"),["assets/menu.html-4e298123.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-6c355688":$(()=>_(()=>import("./project.html-877937ff.js"),["assets/project.html-877937ff.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-4f90aebf":$(()=>_(()=>import("./quick-start.html-2537d0db.js"),["assets/quick-start.html-2537d0db.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-783d89e5":$(()=>_(()=>import("./side-load.html-ff763136.js"),["assets/side-load.html-ff763136.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a91bb9c6":$(()=>_(()=>import("./star-request.html-87e9c10d.js"),["assets/star-request.html-87e9c10d.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1bd4ef83":$(()=>_(()=>import("./FAQ.html-7f0963c6.js"),["assets/FAQ.html-7f0963c6.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5c3f740a":$(()=>_(()=>import("./Gacha-system-and-export-principal.html-bfc5bd6f.js"),["assets/Gacha-system-and-export-principal.html-bfc5bd6f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5f449840":$(()=>_(()=>import("./index.html-7cc8179e.js"),["assets/index.html-7cc8179e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-e14c56e4":$(()=>_(()=>import("./dependency.html-0fd09a7f.js"),["assets/dependency.html-0fd09a7f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1a028d16":$(()=>_(()=>import("./exceptions.html-40258713.js"),["assets/exceptions.html-40258713.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-bd668802":$(()=>_(()=>import("./get-stoken-cookie-from-the-third-party.html-48dcba2c.js"),["assets/get-stoken-cookie-from-the-third-party.html-48dcba2c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-51647c4a":$(()=>_(()=>import("./known-issue.html-6e4b2dbb.js"),["assets/known-issue.html-6e4b2dbb.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-bbae7dd2":$(()=>_(()=>import("./uninstall.html-21af1d57.js"),["assets/uninstall.html-21af1d57.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-f88d343e":$(()=>_(()=>import("./index.html-a55c6bb9.js"),["assets/index.html-a55c6bb9.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-4c2cca8b":$(()=>_(()=>import("./contribute.html-e1851f90.js"),["assets/contribute.html-e1851f90.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-32bb1805":$(()=>_(()=>import("./platform.html-cb36bf71.js"),["assets/platform.html-cb36bf71.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-30f089b6":$(()=>_(()=>import("./index.html-f7d0e723.js"),["assets/index.html-f7d0e723.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-699a13b0":$(()=>_(()=>import("./achievements.html-06dd492a.js"),["assets/achievements.html-06dd492a.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-f3692af4":$(()=>_(()=>import("./character-data.html-49915f74.js"),["assets/character-data.html-49915f74.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-10108380":$(()=>_(()=>import("./character-wiki.html-9436f4de.js"),["assets/character-wiki.html-9436f4de.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-36ceadac":$(()=>_(()=>import("./dashboard.html-26c28184.js"),["assets/dashboard.html-26c28184.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-83f6294a":$(()=>_(()=>import("./develop-plan.html-1a88a516.js"),["assets/develop-plan.html-1a88a516.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7839fe83":$(()=>_(()=>import("./game-launcher.html-a55f58e7.js"),["assets/game-launcher.html-a55f58e7.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0106e0dc":$(()=>_(()=>import("./hutao-API.html-7018cba6.js"),["assets/hutao-API.html-7018cba6.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-639b3ef9":$(()=>_(()=>import("./hutao-settings.html-e7324425.js"),["assets/hutao-settings.html-e7324425.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-03aaffb1":$(()=>_(()=>import("./mhy-account-switch.html-84159f63.js"),["assets/mhy-account-switch.html-84159f63.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1e98d471":$(()=>_(()=>import("./monster-wiki.html-b4a92c1c.js"),["assets/monster-wiki.html-b4a92c1c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-124743a4":$(()=>_(()=>import("./real-time-notes.html-c14ac987.js"),["assets/real-time-notes.html-c14ac987.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-3b7edd61":$(()=>_(()=>import("./setup.html-0a76845b.js"),["assets/setup.html-0a76845b.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-e30b3c46":$(()=>_(()=>import("./weapon-wiki.html-c611d75d.js"),["assets/weapon-wiki.html-c611d75d.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b8e3a2b8":$(()=>_(()=>import("./wish-export.html-60af732a.js"),["assets/wish-export.html-60af732a.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a4f9d2c4":$(()=>_(()=>import("./index.html-d56d80a3.js"),["assets/index.html-d56d80a3.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-45ceb024":$(()=>_(()=>import("./bug-report.html-f5518e52.js"),["assets/bug-report.html-f5518e52.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b4085a44":$(()=>_(()=>import("./privacy-notice.html-f461657a.js"),["assets/privacy-notice.html-f461657a.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b1c7a1c2":$(()=>_(()=>import("./tos.html-e6f84201.js"),["assets/tos.html-e6f84201.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-52f43e3b":$(()=>_(()=>import("./update-log.html-e12012a1.js"),["assets/update-log.html-e12012a1.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-4a1d3ac8":$(()=>_(()=>import("./FAQ.html-414ac22f.js"),["assets/FAQ.html-414ac22f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b0dd6b00":$(()=>_(()=>import("./Gacha-system-and-export-principal.html-160e18ef.js"),["assets/Gacha-system-and-export-principal.html-160e18ef.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-16d7d7b6":$(()=>_(()=>import("./index.html-8ee577f1.js"),["assets/index.html-8ee577f1.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-37e841a9":$(()=>_(()=>import("./dependency.html-f161842e.js"),["assets/dependency.html-f161842e.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c8e5b2e0":$(()=>_(()=>import("./exceptions.html-f92d5379.js"),["assets/exceptions.html-f92d5379.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-6892c29a":$(()=>_(()=>import("./get-stoken-cookie-from-the-third-party.html-c6b7387c.js"),["assets/get-stoken-cookie-from-the-third-party.html-c6b7387c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-8ab89ae2":$(()=>_(()=>import("./known-issue.html-928c6706.js"),["assets/known-issue.html-928c6706.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a04a76c8":$(()=>_(()=>import("./uninstall.html-aa4818ea.js"),["assets/uninstall.html-aa4818ea.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-d0f33908":$(()=>_(()=>import("./index.html-1c71d3f9.js"),["assets/index.html-1c71d3f9.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-62778390":$(()=>_(()=>import("./contribute.html-54af88d0.js"),["assets/contribute.html-54af88d0.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c80b636c":$(()=>_(()=>import("./platform.html-77fb71fa.js"),["assets/platform.html-77fb71fa.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-56d3ae80":$(()=>_(()=>import("./symposium1.html-f64f4f79.js"),["assets/symposium1.html-f64f4f79.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-5369fd42":$(()=>_(()=>import("./symposium2.html-159d4eab.js"),["assets/symposium2.html-159d4eab.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0bbe1b6a":$(()=>_(()=>import("./index.html-1b5b714a.js"),["assets/index.html-1b5b714a.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-2841a60b":$(()=>_(()=>import("./achievements.html-0de1eff5.js"),["assets/achievements.html-0de1eff5.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-3957d221":$(()=>_(()=>import("./character-data.html-3b2a78c6.js"),["assets/character-data.html-3b2a78c6.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-a9f7b44a":$(()=>_(()=>import("./character-wiki.html-32a83ab1.js"),["assets/character-wiki.html-32a83ab1.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-1b6aa6a2":$(()=>_(()=>import("./dashboard.html-83ef77ec.js"),["assets/dashboard.html-83ef77ec.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-7cac7db6":$(()=>_(()=>import("./develop-plan.html-08ab6a3f.js"),["assets/develop-plan.html-08ab6a3f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-e2f690f0":$(()=>_(()=>import("./game-launcher.html-50a78294.js"),["assets/game-launcher.html-50a78294.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0eb8e461":$(()=>_(()=>import("./hutao-API.html-0b11e24f.js"),["assets/hutao-API.html-0b11e24f.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-16a7a694":$(()=>_(()=>import("./hutao-settings.html-fc06a94c.js"),["assets/hutao-settings.html-fc06a94c.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-04b421cc":$(()=>_(()=>import("./mhy-account-switch.html-866591ed.js"),["assets/mhy-account-switch.html-866591ed.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-457f3268":$(()=>_(()=>import("./monster-wiki.html-e22d8ce1.js"),["assets/monster-wiki.html-e22d8ce1.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-b5462c1a":$(()=>_(()=>import("./real-time-notes.html-5f5b5c06.js"),["assets/real-time-notes.html-5f5b5c06.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0e3d2934":$(()=>_(()=>import("./setup.html-0d692030.js"),["assets/setup.html-0d692030.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-108ccfbc":$(()=>_(()=>import("./weapon-wiki.html-a2df1cbf.js"),["assets/weapon-wiki.html-a2df1cbf.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-0ccd64e9":$(()=>_(()=>import("./wish-export.html-c0178db9.js"),["assets/wish-export.html-c0178db9.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c4bb0cba":$(()=>_(()=>import("./index.html-41a05330.js"),["assets/index.html-41a05330.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-c87f8b6e":$(()=>_(()=>import("./bug-report.html-6dbadeb5.js"),["assets/bug-report.html-6dbadeb5.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-70e6808e":$(()=>_(()=>import("./privacy-notice.html-b62d63cc.js"),["assets/privacy-notice.html-b62d63cc.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-647ebd24":$(()=>_(()=>import("./tos.html-324ae865.js"),["assets/tos.html-324ae865.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-119bd096":$(()=>_(()=>import("./update-log.html-180bffb9.js"),["assets/update-log.html-180bffb9.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-3706649a":$(()=>_(()=>import("./404.html-887cec77.js"),["assets/404.html-887cec77.js","assets/plugin-vue_export-helper-c27b6911.js"])),"v-8daa1a0e":$(()=>_(()=>import("./index.html-619b8ca3.js"),["assets/index.html-619b8ca3.js","assets/plugin-vue_export-helper-c27b6911.js"]))};var up=Symbol(""),Dl=Symbol(""),dp=St({key:"",path:"",title:"",lang:"",frontmatter:{},headers:[]}),he=()=>{const e=we(Dl);if(!e)throw new Error("pageData() is called without provider.");return e},$l=Symbol(""),Le=()=>{const e=we($l);if(!e)throw new Error("usePageFrontmatter() is called without provider.");return e},Ml=Symbol(""),fp=()=>{const e=we(Ml);if(!e)throw new Error("usePageHead() is called without provider.");return e},pp=Symbol(""),Nl=Symbol(""),nr=()=>{const e=we(Nl);if(!e)throw new Error("usePageLang() is called without provider.");return e},Vl=Symbol(""),hp=()=>{const e=we(Vl);if(!e)throw new Error("usePageLayout() is called without provider.");return e},mp=G(tp),La=Symbol(""),It=()=>{const e=we(La);if(!e)throw new Error("useRouteLocale() is called without provider.");return e},vn=G(np),Fl=()=>vn,Bl=Symbol(""),or=()=>{const e=we(Bl);if(!e)throw new Error("useSiteLocaleData() is called without provider.");return e},vp=Symbol(""),gp="Layout",_p="NotFound",yt=po({resolveLayouts:e=>e.reduce((t,n)=>({...t,...n.layouts}),{}),resolvePageData:async e=>{const t=mp.value[e];return await(t==null?void 0:t())??dp},resolvePageFrontmatter:e=>e.frontmatter,resolvePageHead:(e,t,n)=>{const o=se(t.description)?t.description:n.description,r=[...K(t.head)?t.head:[],...n.head,["title",{},e],["meta",{name:"description",content:o}]];return rp(r)},resolvePageHeadTitle:(e,t)=>[e.title,t.title].filter(n=>!!n).join(" | "),resolvePageLang:(e,t)=>e.lang||t.lang||"en-US",resolvePageLayout:(e,t)=>{let n;if(e.path){const o=e.frontmatter.layout;se(o)?n=o:n=gp}else n=_p;return t[n]},resolveRouteLocale:(e,t)=>cp(e,t),resolveSiteLocaleData:(e,t)=>({...e,...e.locales[t]})}),rr=W({name:"ClientOnly",setup(e,t){const n=G(!1);return pe(()=>{n.value=!0}),()=>{var o,r;return n.value?(r=(o=t.slots).default)==null?void 0:r.call(o):null}}}),zl=W({name:"Content",props:{pageKey:{type:String,required:!1,default:""}},setup(e){const t=he(),n=k(()=>xl[e.pageKey||t.value.key]);return()=>n.value?d(n.value):d("div","404 Not Found")}}),Ne=(e={})=>e,Me=e=>Fn(e)?e:`/${Rl(e)}`;const bp={};/*! * vue-router v4.2.5 * (c) 2023 Eduardo San Martin Morote * @license MIT @@ -7,4 +7,4 @@ const bu="modulepreload",yu=function(e){return"/"+e},Ua={},_=function(t,n,o){if( `)},rootComponents:[()=>d(Em,{}),()=>d(qr,{config:[{path:"/zh/",title:"加入我们",content:"如果你有软件开发网页前端文档管理视频创作的经验,并希望将其施展于胡桃工具箱项目中,欢迎加入开发团队",fullscreen:!1,showOnce:!1}]})]});function _c(e,t,n){var o,r,a;t===void 0&&(t=50),n===void 0&&(n={});var i=(o=n.isImmediate)!=null&&o,s=(r=n.callback)!=null&&r,l=n.maxWait,c=Date.now(),u=[];function f(){if(l!==void 0){var m=Date.now()-c;if(m+t>=l)return l-m}return t}var p=function(){var m=[].slice.call(arguments),g=this;return new Promise(function(E,A){var w=i&&a===void 0;if(a!==void 0&&clearTimeout(a),a=setTimeout(function(){if(a=void 0,c=Date.now(),!i){var y=e.apply(g,m);s&&s(y),u.forEach(function(T){return(0,T.resolve)(y)}),u=[]}},f()),w){var O=e.apply(g,m);return s&&s(O),E(O)}u.push({resolve:E,reject:A})})};return p.cancel=function(m){a!==void 0&&clearTimeout(a),u.forEach(function(g){return(0,g.reject)(m)}),u=[]},p}const km=({headerLinkSelector:e,headerAnchorSelector:t,delay:n,offset:o=5})=>{const r=De(),i=_c(()=>{var E,A;const s=Math.max(window.scrollY,document.documentElement.scrollTop,document.body.scrollTop);if(Math.abs(s-0)p.some(O=>O.hash===w.hash));for(let w=0;w=(((E=O.parentElement)==null?void 0:E.offsetTop)??0)-o,N=!y||s<(((A=y.parentElement)==null?void 0:A.offsetTop)??0)-o;if(!(T&&N))continue;const M=decodeURIComponent(r.currentRoute.value.hash),P=decodeURIComponent(O.hash);if(M===P)return;if(f){for(let H=w+1;H{window.addEventListener("scroll",i)}),ga(()=>{window.removeEventListener("scroll",i)})},ls=async(e,t)=>{const{scrollBehavior:n}=e.options;e.options.scrollBehavior=void 0,await e.replace({query:e.currentRoute.value.query,hash:t}).finally(()=>e.options.scrollBehavior=n)},Lm=".vp-sidebar-link, .toc-link",Om=".header-anchor",Cm=200,Sm=5,Pm=Ne({setup(){km({headerLinkSelector:Lm,headerAnchorSelector:Om,delay:Cm,offset:Sm})}});let bc=()=>null;const yc=Symbol(""),Im=e=>{bc=e},Rm=()=>we(yc),xm=e=>{e.provide(yc,bc)};var Dm=W({name:"AutoCatalog",props:{base:{type:String,default:""},level:{type:Number,default:3},index:Boolean,indexType:{type:String,default:"ul"},hideHeading:Boolean},setup(e){const t=Rm(),n=cn({"/zh/":{title:"目录",empty:"暂无目录"},"/en/":{title:"Catalog",empty:"No catalog"},"/":{title:"Catalog",empty:"No catalog"}}),o=he(),r=De(),a=Fl(),i=c=>{const u=c.I;return typeof u>"u"||u},s=()=>{const c=e.base||o.value.path.replace(/\/[^/]+$/,"/"),u=r.getRoutes(),f=[];return u.filter(({meta:p,path:m})=>{if(!on(m,c)||m===c)return!1;if(c==="/"){const g=Bn(a.value.locales).filter(E=>E!=="/");if(m==="/404.html"||g.some(E=>on(m,E)))return!1}return(hn(m,".html")&&!hn(m,"/index.html")||hn(m,"/"))&&i(p)}).map(({path:p,meta:m})=>{const g=p.substring(c.length).split("/").length;return{title:m.t||"",icon:m.i,base:p.replace(/\/[^/]+\/?$/,"/"),order:m.O||null,level:hn(p,"/")?g-1:g,path:p}}).filter(({title:p,level:m})=>p&&m<=e.level).sort(({title:p,level:m,path:g,order:E},{title:A,level:w,path:O,order:y})=>m-w||(hn(g,"/index.html")?-1:hn(O,"/index.html")?1:E===null?y===null?p.localeCompare(A):y:y===null?E:E>0?y>0?E-y:-1:y<0?E-y:1)).forEach(p=>{var E;const{base:m,level:g}=p;switch(g){case 1:f.push(p);break;case 2:{const A=f.find(w=>w.path===m);A&&(A.children??(A.children=[])).push(p);break}default:{const A=f.find(w=>w.path===m.replace(/\/[^/]+\/$/,"/"));if(A){const w=(E=A.children)==null?void 0:E.find(O=>O.path===m);w&&(w.children??(w.children=[])).push(p)}}}}),f},l=k(()=>s());return()=>d("div",{class:"vp-catalog"},[e.hideHeading?null:d("h2",{class:"vp-catalog-main-title"},n.value.title),l.value.length?l.value.map(({children:c=[],icon:u,path:f,title:p},m)=>[d("h3",{id:p,class:["vp-catalog-child-title",{"has-children":c.length}]},[d("a",{href:`#${p}`,class:"header-anchor","aria-hidden":!0},"#"),d(ut,{class:"vp-catalog-title",to:f},()=>[e.index?`${m+1}.`:null,u&&t?d(t,{icon:u}):null,p||f])]),c.length?d(e.index&&e.indexType==="ol"?"ol":"ul",{class:"vp-catalog-child-catalogs"},c.map(({children:g=[],icon:E,path:A,title:w},O)=>d("li",{class:"vp-child-catalog"},[d("div",{class:["vp-catalog-sub-title",{"has-children":g.length}]},[d("a",{href:`#${w}`,class:"header-anchor"},"#"),d(ut,{class:"vp-catalog-title",to:A},()=>[e.index?`${m+1}.${O+1}`:null,E&&t?d(t,{icon:E}):null,w||A])]),g.length?d("div",{class:"v-sub-catalogs"},g.map(({icon:y,path:T,title:N},I)=>d(ut,{class:"vp-sub-catalog",to:T},()=>[e.index&&e.indexType!=="ol"?`${m+1}.${O+1}.${I+1}`:null,y&&t?d(t,{icon:y}):null,N||T]))):null]))):null]):d("p",{class:"vp-empty-catalog"},n.value.empty)])}}),$m=Ne({enhance:({app:e})=>{xm(e),gt("AutoCatalog",e)||e.component("AutoCatalog",Dm)}});const Mm=d("svg",{class:"external-link-icon",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",focusable:"false",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"},[d("path",{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}),d("polygon",{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"})]),wc=W({name:"ExternalLinkIcon",props:{locales:{type:Object,required:!1,default:()=>({})}},setup(e){const t=It(),n=k(()=>e.locales[t.value]??{openInNewWindow:"open in new window"});return()=>d("span",[Mm,d("span",{class:"external-link-icon-sr-only"},n.value.openInNewWindow)])}}),Nm={},Vm=Ne({enhance({app:e}){e.component("ExternalLinkIcon",d(wc,{locales:Nm}))}});/** * NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress * @license MIT - */const ce={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},status:null,set:e=>{const t=ce.isStarted();e=kr(e,ce.settings.minimum,1),ce.status=e===1?null:e;const n=ce.render(!t),o=n.querySelector(ce.settings.barSelector),r=ce.settings.speed,a=ce.settings.easing;return n.offsetWidth,Fm(i=>{Io(o,{transform:"translate3d("+cs(e)+"%,0,0)",transition:"all "+r+"ms "+a}),e===1?(Io(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(function(){Io(n,{transition:"all "+r+"ms linear",opacity:"0"}),setTimeout(function(){ce.remove(),i()},r)},r)):setTimeout(()=>i(),r)}),ce},isStarted:()=>typeof ce.status=="number",start:()=>{ce.status||ce.set(0);const e=()=>{setTimeout(()=>{ce.status&&(ce.trickle(),e())},ce.settings.trickleSpeed)};return ce.settings.trickle&&e(),ce},done:e=>!e&&!ce.status?ce:ce.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=ce.status;return t?(typeof e!="number"&&(e=(1-t)*kr(Math.random()*t,.1,.95)),t=kr(t+e,0,.994),ce.set(t)):ce.start()},trickle:()=>ce.inc(Math.random()*ce.settings.trickleRate),render:e=>{if(ce.isRendered())return document.getElementById("nprogress");us(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=ce.settings.template;const n=t.querySelector(ce.settings.barSelector),o=e?"-100":cs(ce.status||0),r=document.querySelector(ce.settings.parent);return Io(n,{transition:"all 0 linear",transform:"translate3d("+o+"%,0,0)"}),r!==document.body&&us(r,"nprogress-custom-parent"),r==null||r.appendChild(t),t},remove:()=>{ds(document.documentElement,"nprogress-busy"),ds(document.querySelector(ce.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&Bm(e)},isRendered:()=>!!document.getElementById("nprogress")},kr=(e,t,n)=>en?n:e,cs=e=>(-1+e)*100,Fm=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),Io=function(){const e=["Webkit","O","Moz","ms"],t={};function n(i){return i.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(s,l){return l.toUpperCase()})}function o(i){const s=document.body.style;if(i in s)return i;let l=e.length;const c=i.charAt(0).toUpperCase()+i.slice(1);let u;for(;l--;)if(u=e[l]+c,u in s)return u;return i}function r(i){return i=n(i),t[i]??(t[i]=o(i))}function a(i,s,l){s=r(s),i.style[s]=l}return function(i,s){for(const l in s){const c=s[l];c!==void 0&&Object.prototype.hasOwnProperty.call(s,l)&&a(i,l,c)}}}(),Ec=(e,t)=>(typeof e=="string"?e:Na(e)).indexOf(" "+t+" ")>=0,us=(e,t)=>{const n=Na(e),o=n+t;Ec(n,t)||(e.className=o.substring(1))},ds=(e,t)=>{const n=Na(e);if(!Ec(e,t))return;const o=n.replace(" "+t+" "," ");e.className=o.substring(1,o.length-1)},Na=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),Bm=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)};const zm=()=>{pe(()=>{const e=De(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||ce.start()}),e.afterEach(n=>{t.add(n.path),ce.done()})})},Hm=Ne({setup(){zm()}}),jm=JSON.parse(`{"encrypt":{},"author":{"name":"DGP-Studio","url":"https://github.com/DGP-Studio"},"logo":"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01vK3m2w1g6duwt8quS_!!1797064093.png","repo":"DGP-Studio/Snap.Hutao","pageInfo":["Author","Original","Date","Category","Tag","ReadingTime"],"docsRepo":"DGP-Studio/Snap.Hutao.Docs","docsDir":"docs","locales":{"/zh/":{"lang":"zh-CN","navbarLocales":{"langName":"简体中文","selectLangAriaLabel":"选择语言"},"metaLocales":{"author":"作者","date":"写作日期","origin":"原创","views":"访问量","category":"分类","tag":"标签","readingTime":"阅读时间","words":"字数","toc":"此页内容","prev":"上一页","next":"下一页","lastUpdated":"上次编辑于","contributors":"贡献者","editLink":"在 GitHub 上编辑此页","print":"打印"},"outlookLocales":{"themeColor":"主题色","darkmode":"外观","fullscreen":"全屏"},"routeLocales":{"skipToContent":"跳至主要內容","notFoundTitle":"页面不存在","notFoundMsg":["这里什么也没有","我们是怎么来到这儿的?","这 是 四 零 四 !","看起来你访问了一个失效的链接"],"back":"返回上一页","home":"带我回家","openInNewWindow":"Open in new window"},"navbar":["/zh/",{"text":"文档","icon":"iconfont icon-article","link":"/zh/menu.html"},{"text":"下载","icon":"iconfont icon-install","link":"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52"},{"text":"加入用户社区","icon":"iconfont icon-community","link":"/zh/community"},{"text":"服务可用性","icon":"iconfont icon-define","link":"https://status.hut.ao/"}],"sidebar":{"/zh/":["","project","i18n","quick-start",{"icon":"iconfont icon-read","text":"功能指南","prefix":"features/","children":"structure"},{"icon":"iconfont icon-advance","text":"高级","prefix":"advanced/","children":"structure"},{"icon":"iconfont icon-github","text":"开源开发","prefix":"development/","children":"structure"},{"icon":"iconfont icon-article","text":"声明和公告","prefix":"statements/","children":"structure"}]},"footer":"用开源社区力量为原神 PC 端玩家带来最好的游戏体验","displayFooter":true},"/en/":{"lang":"en-US","navbarLocales":{"langName":"English","selectLangAriaLabel":"Select language"},"metaLocales":{"author":"Author","date":"Writing Date","origin":"Original","views":"Page views","category":"Category","tag":"Tag","readingTime":"Reading Time","words":"Words","toc":"On This Page","prev":"Prev","next":"Next","lastUpdated":"Last update","contributors":"Contributors","editLink":"Edit this page on GitHub","print":"Print"},"outlookLocales":{"themeColor":"Theme Color","darkmode":"Theme Mode","fullscreen":"Full Screen"},"routeLocales":{"skipToContent":"Skip to main content","notFoundTitle":"Page not found","notFoundMsg":["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],"back":"Go back","home":"Take me home","openInNewWindow":"Open in new window"},"navbar":["/en/",{"text":"Document","icon":"iconfont icon-article","link":"/en/menu.html"},{"text":"Download","icon":"iconfont icon-install","link":"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52"},{"text":"Community","icon":"iconfont icon-community","link":"/en/community"},{"text":"Service Availability","icon":"iconfont icon-define","link":"https://status.hut.ao/"}],"sidebar":{"/en/":["","project","i18n","quick-start",{"icon":"iconfont icon-read","text":"Features","prefix":"features/","children":"structure"},{"icon":"iconfont icon-advance","text":"Advanced","prefix":"advanced/","children":"structure"},{"icon":"iconfont icon-github","text":"Open Source Development","prefix":"development/","children":"structure"},{"icon":"iconfont icon-article","text":"Statements","prefix":"statements/","children":"structure"}]},"footer":"Be the best Genshin Impact tool","displayFooter":true},"/":{"lang":"en-US","navbarLocales":{"langName":"English","selectLangAriaLabel":"Select language"},"metaLocales":{"author":"Author","date":"Writing Date","origin":"Original","views":"Page views","category":"Category","tag":"Tag","readingTime":"Reading Time","words":"Words","toc":"On This Page","prev":"Prev","next":"Next","lastUpdated":"Last update","contributors":"Contributors","editLink":"Edit this page","print":"Print"},"outlookLocales":{"themeColor":"Theme Color","darkmode":"Theme Mode","fullscreen":"Full Screen"},"routeLocales":{"skipToContent":"Skip to main content","notFoundTitle":"Page not found","notFoundMsg":["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],"back":"Go back","home":"Take me home","openInNewWindow":"Open in new window"}}}}`),Wm=G(jm),Tc=()=>Wm,Ac=Symbol(""),Um=()=>{const e=we(Ac);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},qm=(e,t)=>{const{locales:n,...o}=e;return{...o,...n==null?void 0:n[t]}},Km=Ne({enhance({app:e}){const t=Tc(),n=e._context.provides[La],o=k(()=>qm(t.value,n.value));e.provide(Ac,o),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return o.value}}})}}),Gm={"Content-Type":"application/json"},Ym=({serverURL:e,lang:t,paths:n,signal:o})=>(({serverURL:r,lang:a,paths:i,type:s,signal:l})=>fetch(`${r}/article?path=${encodeURIComponent(i.join(","))}&type=${encodeURIComponent(s.join(","))}&lang=${a}`,{signal:l}).then(c=>c.json()))({serverURL:e,lang:t,paths:n,type:["time"],signal:o}).then(r=>Array.isArray(r)?r:[r]),Jm=e=>(({serverURL:t,lang:n,path:o,type:r,action:a})=>fetch(`${t}/article?lang=${n}`,{method:"POST",headers:Gm,body:JSON.stringify({path:o,type:r,action:a})}).then(i=>i.json()))({...e,type:"time",action:"inc"}),fs=e=>{const t=((n="")=>n.replace(/\/$/u,""))(e);return/^(https?:)?\/\//.test(t)?t:`https://${t}`},Qm=e=>{e.name!=="AbortError"&&console.error(e.message)},ps=e=>e.dataset.path||e.getAttribute("id"),hs=(e,t)=>{t.forEach((n,o)=>{n.innerText=e[o].toString()})},Xm=({serverURL:e,path:t=window.location.pathname,selector:n=".waline-pageview-count",update:o=!0,lang:r=navigator.language})=>{const a=new AbortController,i=Array.from(document.querySelectorAll(n)),s=c=>{const u=ps(c);return u!==null&&t!==u},l=c=>Ym({serverURL:fs(e),paths:c.map(u=>ps(u)||t),lang:r,signal:a.signal}).then(u=>hs(u,c)).catch(Qm);if(o){const c=i.filter(f=>!s(f)),u=i.filter(s);Jm({serverURL:fs(e),path:t,lang:r}).then(f=>hs(new Array(c.length).fill(f),c)),u.length&&l(u)}else l(i);return a.abort.bind(a)};const Zm={provider:"Waline",dark:'html[data-theme="dark"]',serverURL:"https://comments.snapgenshin.com",emoji:["//unpkg.com/@waline/emojis@1.1.0/weibo","//unpkg.com/@waline/emojis@1.1.0/bilibili","//unpkg.com/@waline/emojis@1.1.0/bmoji","//unpkg.com/@waline/emojis@1.1.0/qq","//unpkg.com/@waline/emojis@1.1.0/tieba"],requiredMeta:["mail"],reaction:!1};let ev=Zm;const kc=Symbol(""),Lc=()=>we(kc),tv=Lc,nv=e=>{e.provide(kc,ev)},ov={"/zh/":{placeholder:"请留言。(填写邮箱可在被回复时收到邮件提醒)"},"/en/":{placeholder:"Write a comment here (Fill in the email address to receive an email notification when being replied)"},"/":{placeholder:"Write a comment here (Fill in the email address to receive an email notification when being replied)"}};_(()=>import("./waline-meta-56fbc549.js"),[]);var rv=W({name:"WalineComment",props:{identifier:{type:String,required:!0}},setup(e){const t=tv(),n=Le(),o=nr(),r=cn(ov);let a;const i=!!t.serverURL,s=k(()=>{if(!i)return!1;const c=t.pageview!==!1,u=n.value.pageview;return!!u||c!==!1&&u!==!1}),l=k(()=>({lang:o.value==="zh-CN"?"zh-CN":"en",locale:r.value,dark:"html.dark",...t,path:e.identifier}));return pe(()=>{re(()=>e.identifier,()=>{a==null||a(),s.value&&sn().then(()=>{setTimeout(()=>{a=Xm({serverURL:t.serverURL,path:e.identifier})},t.delay||800)})},{immediate:!0})}),()=>i?d("div",{id:"comment",class:"waline-wrapper"},d($({loader:async()=>(await _(()=>import("./component-ee6bd77b.js"),[])).Waline,loadingComponent:Sa}),l.value)):null}}),av=W({name:"CommentService",props:{darkmode:Boolean},setup(e){const t=Lc(),n=he(),o=Le(),r=t.comment!==!1,a=k(()=>o.value.comment||r&&o.value.comment!==!1);return()=>d(rv,{identifier:o.value.commentID||n.value.path,darkmode:e.darkmode,style:{display:a.value?"block":"none"}})}}),iv=Ne({enhance:({app:e})=>{nv(e),e.component("CommentService",av)}});const sv=800,lv=2e3,cv={"/zh/":{copy:"复制代码",copied:"已复制",hint:"复制成功"},"/en/":{copy:"Copy code",copied:"Copied",hint:"Copied successfully"},"/":{copy:"Copy code",copied:"Copied",hint:"Copied successfully"}},uv=!1,dv=['.theme-hope-content div[class*="language-"] pre'],ms=!1,Lr=new Map,fv=()=>{const{copy:e}=nm({legacy:!0}),t=cn(cv),n=he(),o=Vh(),r=s=>{if(!s.hasAttribute("copy-code-registered")){const l=document.createElement("button");l.type="button",l.classList.add("copy-code-button"),l.innerHTML='
',l.setAttribute("aria-label",t.value.copy),l.setAttribute("data-copied",t.value.copied),s.parentElement&&s.parentElement.insertBefore(l,s),s.setAttribute("copy-code-registered","")}},a=()=>sn().then(()=>new Promise(s=>{setTimeout(()=>{dv.forEach(l=>{document.querySelectorAll(l).forEach(r)}),s()},sv)})),i=(s,l,c)=>{let{innerText:u=""}=l;/language-(shellscript|shell|bash|sh|zsh)/.test(s.classList.toString())&&(u=u.replace(/^ *(\$|>) /gm,"")),e(u).then(()=>{c.classList.add("copied"),clearTimeout(Lr.get(c));const f=setTimeout(()=>{c.classList.remove("copied"),c.blur(),Lr.delete(c)},lv);Lr.set(c,f)})};pe(()=>{(!o.value||ms)&&a(),Ie("click",s=>{const l=s.target;if(l.matches('div[class*="language-"] > button.copy')){const c=l.parentElement,u=l.nextElementSibling;u&&i(c,u,l)}else if(l.matches('div[class*="language-"] div.copy-icon')){const c=l.parentElement,u=c.parentElement,f=c.nextElementSibling;f&&i(u,f,c)}}),re(()=>n.value.path,()=>{(!o.value||ms)&&a()})})};var pv=Ne({setup:()=>{fv()}});const Or=Da("VUEPRESS_TAB_STORE",{});var hv=W({name:"Tabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=G(e.active),o=tt([]),r=()=>{e.tabId&&(Or.value[e.tabId]=e.data[n.value].id)},a=(c=n.value)=>{n.value=c{n.value=c>0?c-1:o.value.length-1,o.value[n.value].focus()},s=(c,u)=>{c.key===" "||c.key==="Enter"?(c.preventDefault(),n.value=u):c.key==="ArrowRight"?(c.preventDefault(),a()):c.key==="ArrowLeft"&&(c.preventDefault(),i()),r()},l=()=>{if(e.tabId){const c=e.data.findIndex(({id:u})=>Or.value[e.tabId]===u);if(c!==-1)return c}return e.active};return pe(()=>{n.value=l(),re(()=>Or.value[e.tabId],(c,u)=>{if(e.tabId&&c!==u){const f=e.data.findIndex(({id:p})=>p===c);f!==-1&&(n.value=f)}})}),()=>e.data.length?d("div",{class:"vp-tabs"},[d("div",{class:"vp-tabs-nav",role:"tablist"},e.data.map(({id:c},u)=>{const f=u===n.value;return d("button",{type:"button",ref:p=>{p&&(o.value[u]=p)},class:["vp-tab-nav",{active:f}],role:"tab","aria-controls":`tab-${e.id}-${u}`,"aria-selected":f,onClick:()=>{n.value=u,r()},onKeydown:p=>s(p,u)},t[`title${u}`]({value:c,isActive:f}))})),e.data.map(({id:c},u)=>{const f=u===n.value;return d("div",{class:["vp-tab",{active:f}],id:`tab-${e.id}-${u}`,role:"tabpanel","aria-expanded":f},t[`tab${u}`]({value:c,isActive:f}))})]):null}});const mv=Ne({enhance:({app:e})=>{e.component("Tabs",hv)},setup:()=>{}});let vv={};const Oc=Symbol(""),gv=()=>we(Oc),_v=e=>{e.provide(Oc,vv)};const bv=".theme-hope-content :not(a) > img:not([no-view])",yv={"/zh/":{closeTitle:"关闭",downloadTitle:"下载图片",fullscreenTitle:"切换全屏",zoomTitle:"缩放",arrowPrevTitle:"上一个 (左箭头)",arrowNextTitle:"下一个 (右箭头)"},"/en/":{closeTitle:"Close",downloadTitle:"Download Image",fullscreenTitle:"Switch to full screen",zoomTitle:"Zoom in/out",arrowPrevTitle:"Prev (Arrow Left)",arrowNextTitle:"Next (Arrow Right)"},"/":{closeTitle:"Close",downloadTitle:"Download Image",fullscreenTitle:"Switch to full screen",zoomTitle:"Zoom in/out",arrowPrevTitle:"Prev (Arrow Left)",arrowNextTitle:"Next (Arrow Right)"}},wv=800,Ev='
',Tv=e=>se(e)?Array.from(document.querySelectorAll(e)):e.map(t=>Array.from(document.querySelectorAll(t))).flat(),Cc=e=>new Promise((t,n)=>{e.complete?t({type:"image",element:e,src:e.src,width:e.naturalWidth,height:e.naturalHeight,alt:e.alt,msrc:e.src}):(e.onload=()=>t(Cc(e)),e.onerror=o=>n(o))}),Av=()=>{const{isSupported:e,toggle:t}=$a(),n=gv(),o=cn(yv),r=he();let a;const i=l=>{l.on("uiRegister",()=>{e&&l.ui.registerElement({name:"fullscreen",order:7,isButton:!0,html:'',onClick:()=>{t()}}),l.ui.registerElement({name:"download",order:8,isButton:!0,tagName:"a",html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-download"},onInit:(c,u)=>{c.setAttribute("download",""),c.setAttribute("target","_blank"),c.setAttribute("rel","noopener"),u.on("change",()=>{c.setAttribute("href",u.currSlide.data.src)})}}),l.ui.registerElement({name:"bulletsIndicator",className:"photo-swipe-bullets-indicator",appendTo:"wrapper",onInit:(c,u)=>{const f=[];let p=-1;for(let m=0;m{u.goTo(f.indexOf(E.target))},f.push(g),c.appendChild(g)}u.on("change",()=>{p>=0&&f[p].classList.remove("active"),f[u.currIndex].classList.add("active"),p=u.currIndex})}})})},s=()=>Promise.all([_(()=>import("./photoswipe.esm-1464cdb9.js"),[]),sn().then(()=>new Promise(l=>setTimeout(l,wv)).then(()=>Tv(bv)))]).then(([{default:l},c])=>{const u=c.map(f=>({html:Ev,element:f,msrc:f.src}));c.forEach((f,p)=>{const m=()=>{a=new l({preloaderDelay:0,showHideAnimationType:"zoom",...o.value,...n,dataSource:u,index:p,closeOnVerticalDrag:!0,wheelToZoom:!1}),i(a),a.addFilter("thumbEl",()=>f),a.addFilter("placeholderSrc",()=>f.src),a.init()};f.style.cursor="zoom-in",f.addEventListener("click",()=>{m()}),f.addEventListener("keypress",({key:g})=>{g==="Enter"&&m()})}),c.forEach((f,p)=>{Cc(f).then(m=>{u.splice(p,1,m),a==null||a.refreshSlideContent(p)})})});pe(()=>{Ie("wheel",()=>{a==null||a.close()}),s(),re(()=>r.value.path,()=>s())})};var kv=Ne({enhance:({app:e})=>{_v(e)},setup:()=>{Av()}});function Lv(e){return{all:e=e||new Map,on:function(t,n){var o=e.get(t);o?o.push(n):e.set(t,[n])},off:function(t,n){var o=e.get(t);o&&(n?o.splice(o.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var o=e.get(t);o&&o.slice().map(function(r){r(n)}),(o=e.get("*"))&&o.slice().map(function(r){r(t,n)})}}}const Sc=Symbol(""),Ov=()=>{const e=we(Sc);if(!e)throw new Error("usePWAEvent() is called without provider.");return e},Cv=async(e,t={},n=!0)=>{const{register:o}=await _(()=>import("./index-e32a7948.js"),[]);o(e,{ready(r){var a;n&&console.info("[Service Worker]: active"),(a=t.ready)==null||a.call(t,r)},registered(r){var a;n&&console.log("[Service Worker]: registered"),(a=t.registered)==null||a.call(t,r)},cached(r){var a;n&&console.log("[Service Worker]: cached"),(a=t.cached)==null||a.call(t,r)},async updatefound(r){var a;await navigator.serviceWorker.getRegistration()&&(n&&console.log("[Service Worker]: update found"),(a=t.updatefound)==null||a.call(t,r))},updated(r){var a;n&&console.log("[Service Worker]: updated"),(a=t.updated)==null||a.call(t,r)},offline(){var r;n&&console.log("[Service Worker]: offline"),(r=t.offline)==null||r.call(t)},error(r){var a;n&&console.error("[Service Worker]: ",r),(a=t.error)==null||a.call(t,r)}})},Sv=async e=>Cv(Me("service-worker.js"),{ready(t){e.emit("ready",t)},registered(t){e.emit("registered",t)},cached(t){e.emit("cached",t)},updatefound(t){e.emit("updatefound",t)},updated(t){const n="service-worker-version",o=Number(localStorage.getItem(n)||0);localStorage.setItem(n,(o+1).toString()),localStorage.removeItem("manifest"),e.emit("updated",t)},offline(){e.emit("offline")},error(t){e.emit("error",t)}}),Pv=()=>{const e=Lv();Zt(Sc,e),pe(async()=>{var n;let t=!1;(n=navigator.serviceWorker)!=null&&n.controller&&navigator.serviceWorker.addEventListener("controllerchange",()=>{t||(t=!0,window.location.reload())}),await Sv(e)})},Pc=()=>d(be,{name:"update"},()=>d("path",{d:"M949.949 146.25v255.826c0 21.981-13.989 35.97-35.97 35.97H658.154c-13.988 0-25.983-7.992-33.973-21.981-5.997-13.989-4-27.977 7.991-39.97l79.942-77.946c-55.954-51.973-121.918-77.955-199.863-77.955-37.975 0-75.95 8.002-113.924 21.99-37.975 15.985-67.948 37.976-91.934 63.957-25.982 23.987-47.973 53.96-63.957 91.934-29.983 73.955-29.983 153.895 0 227.85 15.984 37.976 37.975 67.947 63.957 91.934 23.986 25.982 53.959 47.973 91.934 63.956 37.974 13.989 75.95 21.991 113.924 21.991 45.967 0 87.942-9.998 127.913-29.982 41.976-17.99 75.951-45.967 101.931-83.943 7.993-4 11.994-5.995 13.989-5.995 5.997 0 9.998 1.994 13.988 5.995l77.958 77.946c3.989 4 5.986 7.993 5.986 11.994 0 1.994-1.996 5.995-3.99 11.994-43.973 51.962-93.941 91.934-151.9 117.914-53.958 25.983-115.92 39.972-185.874 39.972-61.961 0-119.921-11.984-169.89-33.973-57.96-25.985-105.923-57.963-139.896-93.943-35.98-33.972-67.958-81.936-93.94-139.897-45.967-101.93-45.967-237.846 0-339.777 25.982-57.96 57.96-105.923 93.94-139.896 33.973-35.98 81.936-67.958 139.896-93.94 49.968-21.99 107.928-33.974 169.89-33.974 55.963 0 109.923 9.988 161.885 29.973 53.97 21.99 101.933 51.963 139.908 89.938l73.954-73.944c9.987-9.998 23.987-13.988 39.971-8.002 13.988 8.002 21.98 19.995 21.98 33.984z"}));Pc.displayName="UpdateIcon";const Iv={"/zh/":{install:"安装",iOSInstall:"点击分享按钮然后点击“添加到主屏幕”",cancel:"取消",close:"关闭",prevImage:"上一张图片",nextImage:"下一张图片",desc:"详情",feature:"主要特色",explain:"该应用可以安装在你的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和你的操作系统安全地进行交互。",hint:"发现新内容可用",update:"新内容已就绪"},"/en/":{install:"Install",iOSInstall:"Tap the share button and then 'Add to Home Screen'",cancel:"Cancel",close:"Close",prevImage:"Previous Image",nextImage:"Next Image",desc:"Description",feature:"Key Features",explain:"This app can be installed on your PC or mobile device. This will allow this web app to look and behave like any other installed app. You will find it in your app lists and be able to pin it to your home screen, start menus or task bars. This installed web app will also be able to safely interact with other apps and your operating system. ",hint:"New content found.",update:"New content is available."},"/":{install:"Install",iOSInstall:"Tap the share button and then 'Add to Home Screen'",cancel:"Cancel",close:"Close",prevImage:"Previous Image",nextImage:"Next Image",desc:"Description",feature:"Key Features",explain:"This app can be installed on your PC or mobile device. This will allow this web app to look and behave like any other installed app. You will find it in your app lists and be able to pin it to your home screen, start menus or task bars. This installed web app will also be able to safely interact with other apps and your operating system. ",hint:"New content found.",update:"New content is available."}};var Rv=W({name:"SWHintPopup",slots:Object,setup(e,{slots:t}){const n=cn(Iv),o=G(!1),r=()=>{o.value&&(window.location.reload(!0),o.value=!1)};return pe(()=>{const a=Ov();a.on("updatefound",()=>{navigator.serviceWorker.getRegistration().then(i=>{i&&i.active&&(o.value=!0)})}),a.on("updated",()=>{o.value=!1})}),()=>d(Ot,{name:"popup"},()=>{var a;return((a=t.default)==null?void 0:a.call(t,{enabled:o.value,uninstall:r}))||(o.value?d("button",{type:"button",class:"sw-hint-popup",tabindex:0,onClick:()=>r()},[n.value.hint,d("span",{class:"icon-wrapper"},d(Pc))]):null)})}});const xv=Ne({setup:()=>{Pv()},rootComponents:[Rv]}),Ic=()=>{const e=he();return k(()=>e.value.readingTime??null)},Kr=typeof{"/zh/":{word:"约 $word 字",less1Minute:"小于 1 分钟",time:"大约 $time 分钟"},"/en/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"},"/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"}}>"u"?null:{"/zh/":{word:"约 $word 字",less1Minute:"小于 1 分钟",time:"大约 $time 分钟"},"/en/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"},"/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"}},Dv=(e,t)=>{const{minutes:n,words:o}=e,{less1Minute:r,word:a,time:i}=t;return{time:n<1?r:i.replace("$time",Math.round(n).toString()),words:a.replace("$word",o.toString())}},vs={words:"",time:""},$v=()=>Kr?cn(Kr):k(()=>null),Mv=()=>{if(typeof Kr>"u")return k(()=>vs);const e=Ic(),t=$v();return k(()=>e.value&&t.value?Dv(e.value,t.value):vs)},zn=()=>Tc(),ge=()=>Um(),ur=()=>k(()=>!!zn().value.pure);var gs=W({name:"EmptyComponent",setup:()=>()=>null});const Nv="719px",Vv="1440px",Fv="false",Va={mobileBreakPoint:Nv,pcBreakPoint:Vv,enableThemeColor:Fv},Fa={"/zh/features/":["setup","dashboard","game-launcher","wish-export","achievements","real-time-notes","character-data","hutao-API","develop-plan","character-wiki","weapon-wiki","monster-wiki","mhy-account-switch","hutao-settings"],"/zh/advanced/":["FAQ","exceptions","known-issue","dependency","get-stoken-cookie-from-the-third-party","Gacha-system-and-export-principal","uninstall"],"/zh/development/":["platform","contribute"],"/zh/statements/":["update-log","bug-report","privacy-notice","tos"],"/en/features/":["setup","dashboard","game-launcher","wish-export","achievements","real-time-notes","character-data","hutao-API","develop-plan","character-wiki","weapon-wiki","monster-wiki","mhy-account-switch","hutao-settings"],"/en/advanced/":["FAQ","exceptions","known-issue","dependency","get-stoken-cookie-from-the-third-party","Gacha-system-and-export-principal","uninstall"],"/en/development/":["platform","contribute"],"/en/statements/":["update-log","bug-report","privacy-notice","tos"],"/":[]},Rc=e=>{const{icon:t="",color:n,size:o}=e,r={};return n&&(r.color=n),o&&(r.height=Number.isNaN(Number(o))?o:`${o}px`),Fn(t)?d("img",{class:"icon",src:t,"no-view":"",style:r}):cr(t)?d("img",{class:"icon",src:Me(t),"no-view":"",style:r}):d(ct("FontIcon"),e)};Rc.displayName="HopeIcon";var He=Rc,At=(e=>(e.type="y",e.title="t",e.shortTitle="s",e.icon="i",e.author="a",e.date="d",e.localizedDate="l",e.category="c",e.tag="g",e.isEncrypted="n",e.isOriginal="o",e.readingTime="r",e.excerpt="e",e.sticky="u",e.cover="v",e.index="I",e.order="O",e))(At||{}),Bv=(e=>(e.article="a",e.home="h",e.slide="s",e.page="p",e))(Bv||{});const En=(e,t,n=!1)=>{let o=Ko(e,oc(encodeURI(t)));o.name==="404"&&(o=Ko(e,t));const{fullPath:r,meta:a,name:i}=o;return{text:!n&&a[At.shortTitle]?a[At.shortTitle]:a[At.title]||t,link:i==="404"?t:r,...a[At.icon]?{icon:a[At.icon]}:{}}},zv=()=>{const e=De(),t=je();return n=>{if(n)if(cr(n))t.path!==n&&e.push(n);else if(Fn(n)||Il(n))window&&window.open(n);else{const o=t.path.slice(0,t.path.lastIndexOf("/"));e.push(`${o}/${encodeURI(n)}`)}}},xc=()=>{const e=ge(),t=Le();return k(()=>{const{author:n}=t.value;return n?Xi(n):n===!1?[]:Xi(e.value.author,!1)})},Hv=()=>{const e=Le();return k(()=>Rh(e.value.category).map(t=>({name:t,path:""})))},jv=()=>{const e=Le();return k(()=>xh(e.value.tag).map(t=>({name:t,path:""})))},Wv=()=>{const e=Le(),t=he();return k(()=>{const n=Eh(e.value.date);if(n)return n;const{createdTime:o}=t.value.git||{};return o?new Date(o):null})},Uv=()=>{const e=ge(),t=he(),n=Le(),o=xc(),r=Hv(),a=jv(),i=Wv(),s=Ic(),l=Mv(),c=k(()=>({author:o.value,category:r.value,date:i.value,localizedDate:t.value.localizedDate,tag:a.value,isOriginal:n.value.isOriginal||!1,readingTime:s.value,readingTimeLocale:l.value,pageview:"pageview"in n.value?n.value.pageview:!0})),u=k(()=>"pageInfo"in n.value?n.value.pageInfo:"pageInfo"in e.value?e.value.pageInfo:null);return{info:c,items:u}},{mobileBreakPoint:qv,pcBreakPoint:Kv}=Va,_s=e=>e.endsWith("px")?Number(e.slice(0,-2)):null,dr=()=>{const e=G(!1),t=G(!1),n=()=>{e.value=window.innerWidth<=(_s(qv)??719),t.value=window.innerWidth>=(_s(Kv)??1440)};return pe(()=>{n(),Ie("resize",n,!1),Ie("orientationchange",n,!1)}),{isMobile:e,isPC:t}},Dc=Symbol(""),go=()=>{const e=we(Dc);if(!e)throw new Error("useDarkmode() is called without provider.");return e},Gv=e=>{const t=zn(),n=lm(),o=Da("vuepress-theme-hope-scheme","auto"),r=k(()=>t.value.darkmode||"switch"),a=k(()=>{const s=r.value;return s==="disable"?!1:s==="enable"?!0:s==="auto"?n.value:s==="toggle"?o.value==="dark":o.value==="dark"||o.value==="auto"&&n.value}),i=k(()=>{const s=r.value;return s==="switch"||s==="toggle"});e.provide(Dc,{canToggle:i,config:r,isDarkmode:a,status:o}),Object.defineProperties(e.config.globalProperties,{$isDarkmode:{get:()=>a.value}})},Yv=()=>{const{isDarkmode:e}=go(),t=(n=e.value)=>document.documentElement.setAttribute("data-theme",n?"dark":"light");pe(()=>{re(e,t,{immediate:!0})})};var Be=W({name:"AutoLink",inheritAttrs:!1,props:{config:{type:Object,required:!0},exact:Boolean,noExternalLinkIcon:Boolean},emits:["focusout"],slots:Object,setup(e,{attrs:t,emit:n,slots:o}){const r=je(),a=Fl(),i=Jo(e,"config"),s=k(()=>Fn(i.value.link)),l=k(()=>Il(i.value.link)||lp(i.value.link)),c=k(()=>l.value?void 0:i.value.target||(s.value?"_blank":void 0)),u=k(()=>c.value==="_blank"),f=k(()=>!s.value&&!l.value&&!u.value),p=k(()=>l.value?void 0:i.value.rel||(u.value?"noopener noreferrer":void 0)),m=k(()=>i.value.ariaLabel||i.value.text),g=k(()=>{if(e.exact)return!1;const A=Bn(a.value.locales);return A.length?A.every(w=>w!==i.value.link):i.value.link!=="/"}),E=k(()=>f.value?i.value.activeMatch?new RegExp(i.value.activeMatch).test(r.path):g.value?on(r.path,i.value.link):r.path===i.value.link:!1);return()=>{const{before:A,after:w,default:O}=o,{text:y,icon:T,link:N}=i.value;return f.value?d(ut,{to:N,"aria-label":m.value,...t,class:["nav-link",{active:E.value},t.class],onFocusout:()=>n("focusout")},()=>O?O():[A?A():d(He,{icon:T}),y,w==null?void 0:w()]):d("a",{href:N,rel:p.value,target:c.value,"aria-label":m.value,...t,class:["nav-link",t.class],onFocusout:()=>n("focusout")},O?O():[A?A():d(He,{icon:T}),y,e.noExternalLinkIcon?null:d(wc),w==null?void 0:w()])}}});const xn=(e,t,n=!1)=>"activeMatch"in t?new RegExp(t.activeMatch).test(e.path):Pa(e,t.link)?!0:t.children&&!n?t.children.some(o=>xn(e,o)):!1,$c=(e,t)=>t.type==="group"?t.children.some(n=>n.type==="group"?$c(e,n):n.type==="page"&&xn(e,n,!0))||"prefix"in t&&Pa(e,t.prefix):!1,Mc=(e,t)=>se(e.link)?d(Be,{...t,config:e}):d("p",t,[d(He,{icon:e.icon}),e.text]),Nc=e=>{const t=je();return e?d("ul",{class:"vp-sidebar-sub-headers"},e.map(n=>{const o=xn(t,n,!0);return d("li",{class:"vp-sidebar-sub-header"},[Mc(n,{class:["vp-sidebar-link","vp-heading",{active:o}]}),Nc(n.children)])})):null},Cr=(e="",t="")=>cr(t)?t:`${ap(e)}${t}`,Jv=(e,t)=>{const n=he();return{type:"heading",text:e.title,link:`${n.value.path}#${e.slug}`,children:Ba(e.children,t)}},Ba=(e,t)=>t>0?e.map(n=>Jv(n,t-1)):[],Vc=e=>{const t=he();return Ba(t.value.headers,e)},Gr=(e,t,n="")=>{const o=De(),r=he(),a=(i,s=n)=>{var c;const l=se(i)?En(o,Cr(s,i)):i.link?{...i,...Uo(i.link)?{}:{link:En(o,Cr(s,i.link)).link}}:i;if("children"in l){const u=Cr(s,l.prefix),f=l.children==="structure"?Fa[u]:l.children;return{type:"group",...l,prefix:u,children:f.map(p=>a(p,u))}}return{type:"page",...l,children:l.link===r.value.path?Ba(((c=r.value.headers[0])==null?void 0:c.level)===1?r.value.headers[0].children:r.value.headers,t):[]}};return e.map(i=>a(i))},Qv=(e,t)=>{const n=he(),o=Bn(e).sort((r,a)=>a.length-r.length);for(const r of o)if(on(decodeURI(n.value.path),r)){const a=e[r];return a?Gr(a==="structure"?Fa[r]:a==="heading"?Vc(t):a,t,r):[]}return console.warn(`${n.value.path} is missing sidebar config.`),[]},Xv=(e,t)=>{const n=It();return e===!1?[]:e==="heading"?Vc(t):e==="structure"?Gr(Fa[n.value],t,n.value):K(e)?Gr(e,t):Aa(e)?Qv(e,t):[]},Fc=Symbol(""),Zv=()=>{const e=Le(),t=ge(),n=k(()=>e.value.home?!1:e.value.sidebar??t.value.sidebar??"structure"),o=k(()=>e.value.headerDepth??t.value.headerDepth??2),r=k(()=>Xv(n.value,o.value));Zt(Fc,r)},za=()=>{const e=we(Fc);if(!e)throw new Error("useSidebarItems() is called without provider.");return e};var e1=W({name:"PageFooter",setup(){const e=Le(),t=ge(),n=xc(),o=k(()=>{const{copyright:i,footer:s}=e.value;return s!==!1&&!!(i||s||t.value.displayFooter)}),r=k(()=>{const{footer:i}=e.value;return i===!1?!1:se(i)?i:t.value.footer||""}),a=k(()=>"copyright"in e.value?e.value.copyright:"copyright"in t.value?t.value.copyright:n.value.length?`Copyright © ${new Date().getFullYear()} ${n.value[0].name}`:!1);return()=>o.value?d("footer",{class:"vp-footer-wrapper"},[r.value?d("div",{class:"vp-footer",innerHTML:r.value}):null,a.value?d("div",{class:"vp-copyright",innerHTML:a.value}):null]):null}}),Bc=W({name:"NavbarDropdownLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=he(),o=Jo(e,"config"),r=k(()=>o.value.ariaLabel||o.value.text),a=G(!1);re(()=>n.value.path,()=>{a.value=!1});const i=s=>{s.detail===0&&(a.value=!a.value)};return()=>{var s;return d("div",{class:["dropdown-wrapper",{open:a.value}]},[d("button",{type:"button",class:"dropdown-title","aria-label":r.value,onClick:i},[((s=t.title)==null?void 0:s.call(t))||d("span",{class:"title"},[d(He,{icon:o.value.icon}),e.config.text]),d("span",{class:"arrow"}),d("ul",{class:"nav-dropdown"},o.value.children.map((l,c)=>{const u=c===o.value.children.length-1;return d("li",{class:"dropdown-item"},"children"in l?[d("h4",{class:"dropdown-subtitle"},l.link?d(Be,{config:l,onFocusout:()=>{l.children.length===0&&u&&(a.value=!1)}}):d("span",l.text)),d("ul",{class:"dropdown-subitem-wrapper"},l.children.map((f,p)=>d("li",{class:"dropdown-subitem"},d(Be,{config:f,onFocusout:()=>{p===l.children.length-1&&u&&(a.value=!1)}}))))]:d(Be,{config:l,onFocusout:()=>{u&&(a.value=!1)}}))}))])])}}});const zc=()=>d(be,{name:"i18n"},()=>[d("path",{d:"M379.392 460.8 494.08 575.488l-42.496 102.4L307.2 532.48 138.24 701.44l-71.68-72.704L234.496 460.8l-45.056-45.056c-27.136-27.136-51.2-66.56-66.56-108.544h112.64c7.68 14.336 16.896 27.136 26.112 35.84l45.568 46.08 45.056-45.056C382.976 312.32 409.6 247.808 409.6 204.8H0V102.4h256V0h102.4v102.4h256v102.4H512c0 70.144-37.888 161.28-87.04 210.944L378.88 460.8zM576 870.4 512 1024H409.6l256-614.4H768l256 614.4H921.6l-64-153.6H576zM618.496 768h196.608L716.8 532.48 618.496 768z"})]);zc.displayName="I18nIcon";const Hc=(e,t,n="")=>se(t)?En(e,`${n}${t}`):"children"in t?{...t,...t.link&&!Uo(t.link)?En(e,`${n}${t.link}`):{},children:t.children.map(o=>Hc(e,o,`${n}${t.prefix||""}`))}:{...t,link:Uo(t.link)?t.link:En(e,`${n}${t.link}`).link},jc=()=>{const e=ge(),t=De(),n=()=>(e.value.navbar||[]).map(r=>Hc(t,r)),o=G(n());return re(e,()=>{o.value=n()}),o},t1=()=>{const e=De(),t=je(),n=It(),o=or(),r=zn(),a=ge();return k(()=>{const i=Bn(o.value.locales),s=lr(r.value.extraLocales??{});if(i.length<2&&!s.length)return null;const{path:l,fullPath:c}=e.currentRoute.value,{navbarLocales:u}=a.value;return{text:"",ariaLabel:u==null?void 0:u.selectLangAriaLabel,children:[...i.map(f=>{var w,O,y;const p=((w=o.value.locales)==null?void 0:w[f])??{},m=((O=r.value.locales)==null?void 0:O[f])??{},g=p.lang||"",E=((y=m.navbarLocales)==null?void 0:y.langName)??g;let A;if(g===o.value.lang)A=l;else{const T=l.replace(n.value,f);A=e.getRoutes().some(N=>N.path===T)?c.replace(l,T):m.home??f}return{text:E,link:A}}),...s.map(([f,p])=>({text:f,link:p.replace(":route",t.path.replace(n.value,""))}))]}})},n1=()=>{const e=ge(),t=k(()=>e.value.repo||null),n=k(()=>t.value?$h(t.value):null),o=k(()=>t.value?ic(t.value):null),r=k(()=>n.value?e.value.repoLabel??(o.value===null?"Source":o.value):null);return k(()=>!n.value||!r.value||e.value.repoDisplay===!1?null:{type:o.value||"Source",label:r.value,link:n.value})};var o1=W({name:"LanguageDropdown",setup(){const e=t1();return()=>e.value?d("div",{class:"nav-item"},d(Bc,{class:"i18n-dropdown",config:e.value},{title:()=>{var t;return d(zc,{"aria-label":(t=e.value)==null?void 0:t.ariaLabel,style:{width:"1rem",height:"1rem",verticalAlign:"middle"}})}})):null}}),r1=W({name:"NavScreenDropdown",props:{config:{type:Object,required:!0}},setup(e){const t=he(),n=Jo(e,"config"),o=k(()=>n.value.ariaLabel||n.value.text),r=G(!1);re(()=>t.value.path,()=>{r.value=!1});const a=(i,s)=>s[s.length-1]===i;return()=>[d("button",{type:"button",class:["nav-screen-dropdown-title",{active:r.value}],"aria-label":o.value,onClick:()=>{r.value=!r.value}},[d("span",{class:"title"},[d(He,{icon:n.value.icon}),e.config.text]),d("span",{class:["arrow",r.value?"down":"end"]})]),d("ul",{class:["nav-screen-dropdown",{hide:!r.value}]},n.value.children.map(i=>d("li",{class:"dropdown-item"},"children"in i?[d("h4",{class:"dropdown-subtitle"},i.link?d(Be,{config:i,onFocusout:()=>{a(i,n.value.children)&&i.children.length===0&&(r.value=!1)}}):d("span",i.text)),d("ul",{class:"dropdown-subitem-wrapper"},i.children.map(s=>d("li",{class:"dropdown-subitem"},d(Be,{config:s,onFocusout:()=>{a(s,i.children)&&a(i,n.value.children)&&(r.value=!1)}}))))]:d(Be,{config:i,onFocusout:()=>{a(i,n.value.children)&&(r.value=!1)}}))))]}}),a1=W({name:"NavScreenLinks",setup(){const e=jc();return()=>e.value.length?d("nav",{class:"nav-screen-links"},e.value.map(t=>d("div",{class:"navbar-links-item"},"children"in t?d(r1,{config:t}):d(Be,{config:t})))):null}});const Wc=()=>d(be,{name:"dark"},()=>d("path",{d:"M524.8 938.667h-4.267a439.893 439.893 0 0 1-313.173-134.4 446.293 446.293 0 0 1-11.093-597.334A432.213 432.213 0 0 1 366.933 90.027a42.667 42.667 0 0 1 45.227 9.386 42.667 42.667 0 0 1 10.24 42.667 358.4 358.4 0 0 0 82.773 375.893 361.387 361.387 0 0 0 376.747 82.774 42.667 42.667 0 0 1 54.187 55.04 433.493 433.493 0 0 1-99.84 154.88 438.613 438.613 0 0 1-311.467 128z"}));Wc.displayName="DarkIcon";const Uc=()=>d(be,{name:"light"},()=>d("path",{d:"M952 552h-80a40 40 0 0 1 0-80h80a40 40 0 0 1 0 80zM801.88 280.08a41 41 0 0 1-57.96-57.96l57.96-58a41.04 41.04 0 0 1 58 58l-58 57.96zM512 752a240 240 0 1 1 0-480 240 240 0 0 1 0 480zm0-560a40 40 0 0 1-40-40V72a40 40 0 0 1 80 0v80a40 40 0 0 1-40 40zm-289.88 88.08-58-57.96a41.04 41.04 0 0 1 58-58l57.96 58a41 41 0 0 1-57.96 57.96zM192 512a40 40 0 0 1-40 40H72a40 40 0 0 1 0-80h80a40 40 0 0 1 40 40zm30.12 231.92a41 41 0 0 1 57.96 57.96l-57.96 58a41.04 41.04 0 0 1-58-58l58-57.96zM512 832a40 40 0 0 1 40 40v80a40 40 0 0 1-80 0v-80a40 40 0 0 1 40-40zm289.88-88.08 58 57.96a41.04 41.04 0 0 1-58 58l-57.96-58a41 41 0 0 1 57.96-57.96z"}));Uc.displayName="LightIcon";const qc=()=>d(be,{name:"auto"},()=>d("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm0-840c-198.78 0-360 161.22-360 360 0 198.84 161.22 360 360 360s360-161.16 360-360c0-198.78-161.22-360-360-360zm0 660V212c165.72 0 300 134.34 300 300 0 165.72-134.28 300-300 300z"}));qc.displayName="AutoIcon";const Kc=()=>d(be,{name:"enter-fullscreen"},()=>d("path",{d:"M762.773 90.24h-497.28c-96.106 0-174.4 78.293-174.4 174.4v497.28c0 96.107 78.294 174.4 174.4 174.4h497.28c96.107 0 175.04-78.293 174.4-174.4V264.64c0-96.213-78.186-174.4-174.4-174.4zm-387.2 761.173H215.04c-21.867 0-40.427-17.92-41.067-41.066V649.92c0-22.507 17.92-40.427 40.427-40.427 11.307 0 21.227 4.694 28.48 11.947 7.253 7.253 11.947 17.92 11.947 28.48v62.293l145.28-145.28c15.893-15.893 41.813-15.893 57.706 0 15.894 15.894 15.894 41.814 0 57.707l-145.28 145.28h62.294c22.506 0 40.426 17.92 40.426 40.427s-17.173 41.066-39.68 41.066zM650.24 165.76h160.427c21.866 0 40.426 17.92 41.066 41.067v160.426c0 22.507-17.92 40.427-40.426 40.427-11.307 0-21.227-4.693-28.48-11.947-7.254-7.253-11.947-17.92-11.947-28.48v-62.186L625.6 450.347c-15.893 15.893-41.813 15.893-57.707 0-15.893-15.894-15.893-41.814 0-57.707l145.28-145.28H650.88c-22.507 0-40.427-17.92-40.427-40.427s17.174-41.173 39.787-41.173z"}));Kc.displayName="EnterFullScreenIcon";const Gc=()=>d(be,{name:"cancel-fullscreen"},()=>d("path",{d:"M778.468 78.62H247.922c-102.514 0-186.027 83.513-186.027 186.027V795.08c0 102.514 83.513 186.027 186.027 186.027h530.432c102.514 0 186.71-83.513 186.026-186.027V264.647C964.494 162.02 880.981 78.62 778.468 78.62zM250.88 574.35h171.122c23.324 0 43.122 19.115 43.804 43.805v171.121c0 24.008-19.114 43.122-43.122 43.122-12.06 0-22.641-5.006-30.378-12.743s-12.743-19.115-12.743-30.379V722.83L224.597 877.91c-16.953 16.952-44.6 16.952-61.553 0-16.953-16.954-16.953-44.602 0-61.554L318.009 661.39h-66.446c-24.007 0-43.122-19.114-43.122-43.122 0-24.12 18.432-43.918 42.439-43.918zm521.899-98.873H601.657c-23.325 0-43.122-19.114-43.805-43.804V260.55c0-24.007 19.115-43.122 43.122-43.122 12.06 0 22.642 5.007 30.379 12.743s12.743 19.115 12.743 30.38v66.445l154.965-154.965c16.953-16.953 44.601-16.953 61.554 0 16.953 16.953 16.953 44.6 0 61.554L705.536 388.55h66.446c24.007 0 43.122 19.115 43.122 43.122.114 24.007-18.318 43.804-42.325 43.804z"}));Gc.displayName="CancelFullScreenIcon";const Yc=()=>d(be,{name:"outlook"},()=>[d("path",{d:"M224 800c0 9.6 3.2 44.8 6.4 54.4 6.4 48-48 76.8-48 76.8s80 41.6 147.2 0 134.4-134.4 38.4-195.2c-22.4-12.8-41.6-19.2-57.6-19.2C259.2 716.8 227.2 761.6 224 800zM560 675.2l-32 51.2c-51.2 51.2-83.2 32-83.2 32 25.6 67.2 0 112-12.8 128 25.6 6.4 51.2 9.6 80 9.6 54.4 0 102.4-9.6 150.4-32l0 0c3.2 0 3.2-3.2 3.2-3.2 22.4-16 12.8-35.2 6.4-44.8-9.6-12.8-12.8-25.6-12.8-41.6 0-54.4 60.8-99.2 137.6-99.2 6.4 0 12.8 0 22.4 0 12.8 0 38.4 9.6 48-25.6 0-3.2 0-3.2 3.2-6.4 0-3.2 3.2-6.4 3.2-6.4 6.4-16 6.4-16 6.4-19.2 9.6-35.2 16-73.6 16-115.2 0-105.6-41.6-198.4-108.8-268.8C704 396.8 560 675.2 560 675.2zM224 419.2c0-28.8 22.4-51.2 51.2-51.2 28.8 0 51.2 22.4 51.2 51.2 0 28.8-22.4 51.2-51.2 51.2C246.4 470.4 224 448 224 419.2zM320 284.8c0-22.4 19.2-41.6 41.6-41.6 22.4 0 41.6 19.2 41.6 41.6 0 22.4-19.2 41.6-41.6 41.6C339.2 326.4 320 307.2 320 284.8zM457.6 208c0-12.8 12.8-25.6 25.6-25.6 12.8 0 25.6 12.8 25.6 25.6 0 12.8-12.8 25.6-25.6 25.6C470.4 233.6 457.6 220.8 457.6 208zM128 505.6C128 592 153.6 672 201.6 736c28.8-60.8 112-60.8 124.8-60.8-16-51.2 16-99.2 16-99.2l316.8-422.4c-48-19.2-99.2-32-150.4-32C297.6 118.4 128 291.2 128 505.6zM764.8 86.4c-22.4 19.2-390.4 518.4-390.4 518.4-22.4 28.8-12.8 76.8 22.4 99.2l9.6 6.4c35.2 22.4 80 12.8 99.2-25.6 0 0 6.4-12.8 9.6-19.2 54.4-105.6 275.2-524.8 288-553.6 6.4-19.2-3.2-32-19.2-32C777.6 76.8 771.2 80 764.8 86.4z"})]);Yc.displayName="OutlookIcon";var Jc=W({name:"AppearanceSwitch",setup(){const{config:e,status:t}=go(),n=()=>{e.value==="switch"?t.value={light:"dark",dark:"auto",auto:"light"}[t.value]:t.value=t.value==="light"?"dark":"light"};return()=>d("button",{type:"button",id:"appearance-switch",onClick:()=>n()},[d(qc,{style:{display:t.value==="auto"?"block":"none"}}),d(Wc,{style:{display:t.value==="dark"?"block":"none"}}),d(Uc,{style:{display:t.value==="light"?"block":"none"}})])}}),i1=W({name:"AppearanceMode",setup(){const e=ge(),{canToggle:t}=go(),n=k(()=>e.value.outlookLocales.darkmode);return()=>t.value?d("div",{class:"appearance-wrapper"},[d("label",{class:"appearance-title",for:"appearance-switch"},n.value),d(Jc)]):null}});const Sr="VUEPRESS_THEME_COLOR";var s1=W({name:"ThemeColorPicker",props:{themeColor:{type:Object,required:!0}},setup(e){const t=(n="")=>{const o=document.documentElement.classList,r=Bn(e.themeColor);if(!n){localStorage.removeItem(Sr),o.remove(...r);return}o.remove(...r.filter(a=>a!==n)),o.add(n),localStorage.setItem(Sr,n)};return pe(()=>{const n=localStorage.getItem(Sr);n&&t(n)}),()=>d("ul",{id:"theme-color-picker"},[d("li",d("span",{class:"theme-color",onClick:()=>t()})),lr(e.themeColor).map(([n,o])=>d("li",d("span",{style:{background:o},onClick:()=>t(n)})))])}});const Tn=Va.enableThemeColor==="true",l1=Tn?Ph(lr(Va).filter(([e])=>e.startsWith("theme-"))):{};var c1=W({name:"ThemeColor",setup(){const e=ge(),t=k(()=>e.value.outlookLocales.themeColor);return()=>Tn?d("div",{class:"theme-color-wrapper"},[d("label",{class:"theme-color-title",for:"theme-color-picker"},t.value),d(s1,{themeColor:l1})]):null}}),Qc=W({name:"ToggleFullScreenButton",setup(){const e=ge(),{isSupported:t,isFullscreen:n,toggle:o}=$a(),r=k(()=>e.value.outlookLocales.fullscreen);return()=>t?d("div",{class:"full-screen-wrapper"},[d("label",{class:"full-screen-title",for:"full-screen-switch"},r.value),d("button",{type:"button",id:"full-screen-switch",class:"full-screen",ariaPressed:n.value,onClick:()=>o()},n.value?d(Gc):d(Kc))]):null}}),Xc=W({name:"OutlookSettings",setup(){const e=zn(),t=ur(),n=k(()=>!t.value&&e.value.fullscreen);return()=>d(rr,()=>[Tn?d(c1):null,d(i1),n.value?d(Qc):null])}}),u1=W({name:"NavScreen",props:{show:Boolean},emits:["close"],slots:Object,setup(e,{emit:t,slots:n}){const o=he(),{isMobile:r}=dr(),a=tt(),i=Ma(a);return pe(()=>{a.value=document.body,re(r,s=>{!s&&e.show&&(i.value=!1,t("close"))}),re(()=>o.value.path,()=>{i.value=!1,t("close")})}),Vn(()=>{i.value=!1}),()=>d(Ot,{name:"fade",onEnter:()=>{i.value=!0},onAfterLeave:()=>{i.value=!1}},()=>{var s,l;return e.show?d("div",{id:"nav-screen"},d("div",{class:"vp-nav-screen-container"},[(s=n.before)==null?void 0:s.call(n),d(a1),d("div",{class:"vp-outlook-wrapper"},d(Xc)),(l=n.after)==null?void 0:l.call(n)])):null})}}),d1=W({name:"NavbarBrand",setup(){const e=It(),t=or(),n=ge(),o=k(()=>n.value.home||e.value),r=k(()=>t.value.title),a=k(()=>n.value.navTitle??r.value),i=k(()=>n.value.logo?Me(n.value.logo):null),s=k(()=>n.value.logoDark?Me(n.value.logoDark):null);return()=>d(ut,{to:o.value,class:"vp-brand"},()=>[i.value?d("img",{class:["vp-nav-logo",{light:!!s.value}],src:i.value,alt:r.value}):null,s.value?d("img",{class:["vp-nav-logo dark"],src:s.value,alt:r.value}):null,a.value?d("span",{class:["vp-site-name",{"hide-in-pad":i.value&&n.value.hideSiteNameOnMobile!==!1}]},a.value):null])}}),f1=W({name:"NavbarLinks",setup(){const e=jc();return()=>e.value.length?d("nav",{class:"vp-nav-links"},e.value.map(t=>d("div",{class:"nav-item hide-in-mobile"},"children"in t?d(Bc,{config:t}):d(Be,{config:t})))):null}}),p1=W({name:"RepoLink",components:{BitbucketIcon:uc,GiteeIcon:cc,GitHubIcon:sc,GitLabIcon:lc,SourceIcon:dc},setup(){const e=n1();return()=>e.value?d("div",{class:"nav-item vp-repo"},d("a",{class:"vp-repo-link",href:e.value.link,target:"_blank",rel:"noopener noreferrer","aria-label":e.value.label},d(ct(`${e.value.type}Icon`),{style:{width:"1.25rem",height:"1.25rem",verticalAlign:"middle"}}))):null}});const Zc=({active:e=!1},{emit:t})=>d("button",{type:"button",class:["vp-toggle-navbar-button",{"is-active":e}],"aria-label":"Toggle Navbar","aria-expanded":e,"aria-controls":"nav-screen",onClick:()=>t("toggle")},d("span",[d("span",{class:"vp-top"}),d("span",{class:"vp-middle"}),d("span",{class:"vp-bottom"})]));Zc.displayName="ToggleNavbarButton";var h1=Zc;const Yr=(e,{emit:t})=>d("button",{type:"button",class:"vp-toggle-sidebar-button",title:"Toggle Sidebar",onClick:()=>t("toggle")},d("span",{class:"icon"}));Yr.displayName="ToggleSidebarButton",Yr.emits=["toggle"];var m1=Yr,v1=W({name:"OutlookButton",setup(){const{isSupported:e}=$a(),t=zn(),n=ur(),o=he(),{canToggle:r}=go(),a=G(!1),i=k(()=>!n.value&&t.value.fullscreen&&e);return re(()=>o.value.path,()=>{a.value=!1}),()=>r.value||i.value||Tn?d("div",{class:"nav-item hide-in-mobile"},r.value&&!i.value&&!Tn?d(Jc):i.value&&!r.value&&!Tn?d(Qc):d("button",{type:"button",class:["outlook-button",{open:a.value}],tabindex:"-1","aria-hidden":!0},[d(Yc),d("div",{class:"outlook-dropdown"},d(Xc))])):null}}),g1=W({name:"NavBar",emits:["toggleSidebar"],slots:Object,setup(e,{emit:t,slots:n}){const o=ge(),{isMobile:r}=dr(),a=G(!1),i=k(()=>{const{navbarAutoHide:u="mobile"}=o.value;return u!=="none"&&(u==="always"||r.value)}),s=k(()=>o.value.navbarLayout||{start:["Brand"],center:["Links"],end:["Language","Repo","Outlook","Search"]}),l={Brand:d1,Language:o1,Links:f1,Repo:p1,Outlook:v1,Search:gt("Docsearch")?ct("Docsearch"):gt("SearchBox")?ct("SearchBox"):gs},c=u=>l[u]??(gt(u)?ct(u):gs);return()=>{var u,f,p,m,g,E;return[d("header",{id:"navbar",class:["vp-navbar",{"auto-hide":i.value,"hide-icon":o.value.navbarIcon===!1}]},[d("div",{class:"vp-navbar-start"},[d(m1,{onToggle:()=>{a.value&&(a.value=!1),t("toggleSidebar")}}),(u=n.startBefore)==null?void 0:u.call(n),(s.value.start||[]).map(A=>d(c(A))),(f=n.startAfter)==null?void 0:f.call(n)]),d("div",{class:"vp-navbar-center"},[(p=n.centerBefore)==null?void 0:p.call(n),(s.value.center||[]).map(A=>d(c(A))),(m=n.centerAfter)==null?void 0:m.call(n)]),d("div",{class:"vp-navbar-end"},[(g=n.endBefore)==null?void 0:g.call(n),(s.value.end||[]).map(A=>d(c(A))),(E=n.endAfter)==null?void 0:E.call(n),d(h1,{active:a.value,onToggle:()=>{a.value=!a.value}})])]),d(u1,{show:a.value,onClose:()=>{a.value=!1}},{before:()=>{var A;return(A=n.screenTop)==null?void 0:A.call(n)},after:()=>{var A;return(A=n.screenBottom)==null?void 0:A.call(n)}})]}}}),_1=W({name:"SidebarChild",props:{config:{type:Object,required:!0}},setup(e){const t=je();return()=>[Mc(e.config,{class:["vp-sidebar-link",`vp-sidebar-${e.config.type}`,{active:xn(t,e.config,!0)}],exact:!0}),Nc(e.config.children)]}}),b1=W({name:"SidebarGroup",props:{config:{type:Object,required:!0},open:{type:Boolean,required:!0}},emits:["toggle"],setup(e,{emit:t}){const n=je(),o=k(()=>xn(n,e.config)),r=k(()=>xn(n,e.config,!0));return()=>{const{collapsible:a,children:i=[],icon:s,prefix:l,link:c,text:u}=e.config;return d("section",{class:"vp-sidebar-group"},[d(a?"button":"p",{class:["vp-sidebar-heading",{clickable:a||c,exact:r.value,active:o.value}],...a?{type:"button",onClick:()=>t("toggle"),onKeydown:f=>{f.key==="Enter"&&t("toggle")}}:{}},[d(He,{icon:s}),c?d(Be,{class:"vp-sidebar-title",config:{text:u,link:c},noExternalLinkIcon:!0}):d("span",{class:"vp-sidebar-title"},u),a?d("span",{class:["vp-arrow",e.open?"down":"end"]}):null]),e.open||!a?d(eu,{key:l,config:i}):null])}}}),eu=W({name:"SidebarLinks",props:{config:{type:Array,required:!0}},setup(e){const t=je(),n=G(-1),o=r=>{n.value=r===n.value?-1:r};return re(()=>t.path,()=>{const r=e.config.findIndex(a=>$c(t,a));n.value=r},{immediate:!0,flush:"post"}),()=>d("ul",{class:"vp-sidebar-links"},e.config.map((r,a)=>d("li",r.type==="group"?d(b1,{config:r,open:a===n.value,onToggle:()=>o(a)}):d(_1,{config:r}))))}}),y1=W({name:"SideBar",slots:Object,setup(e,{slots:t}){const n=je(),o=ge(),r=za(),a=tt();return pe(()=>{re(()=>n.hash,i=>{const s=document.querySelector(`.vp-sidebar a.vp-sidebar-link[href="${n.path}${i}"]`);if(!s)return;const{top:l,height:c}=a.value.getBoundingClientRect(),{top:u,height:f}=s.getBoundingClientRect();ul+c&&s.scrollIntoView(!1)},{immediate:!0})}),()=>{var i,s,l;return d("aside",{ref:a,id:"sidebar",class:["vp-sidebar",{"hide-icon":o.value.sidebarIcon===!1}]},[(i=t.top)==null?void 0:i.call(t),((s=t.default)==null?void 0:s.call(t))||d(eu,{config:r.value}),(l=t.bottom)==null?void 0:l.call(t)])}}}),tu=W({name:"CommonWrapper",props:{containerClass:{type:String,default:""},noNavbar:Boolean,noSidebar:Boolean,noToc:Boolean},slots:Object,setup(e,{slots:t}){const n=De(),o=he(),r=Le(),a=ge(),{isMobile:i,isPC:s}=dr(),[l,c]=ns(!1),[u,f]=ns(!1),p=za(),m=G(!1),g=k(()=>e.noNavbar||r.value.navbar===!1||a.value.navbar===!1?!1:!!(o.value.title||a.value.logo||a.value.repo||a.value.navbar)),E=k(()=>e.noSidebar?!1:r.value.sidebar!==!1&&p.value.length!==0&&!r.value.home),A=k(()=>e.noToc||r.value.home?!1:r.value.toc||a.value.toc!==!1&&r.value.toc!==!1),w={x:0,y:0},O=I=>{w.x=I.changedTouches[0].clientX,w.y=I.changedTouches[0].clientY},y=I=>{const M=I.changedTouches[0].clientX-w.x,P=I.changedTouches[0].clientY-w.y;Math.abs(M)>Math.abs(P)*1.5&&Math.abs(M)>40&&(M>0&&w.x<=80?c(!0):c(!1))},T=()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;let N=0;return Ie("scroll",Kh(()=>{const I=T();I<=58||I{I||c(!1)}),pe(()=>{const I=Ma(document.body);re(l,P=>{I.value=P});const M=n.afterEach(()=>{c(!1)});Vn(()=>{I.value=!1,M()})}),()=>d(gt("GlobalEncrypt")?ct("GlobalEncrypt"):Zl,()=>d("div",{class:["theme-container",{"no-navbar":!g.value,"no-sidebar":!E.value&&!(t.sidebar||t.sidebarTop||t.sidebarBottom),"has-toc":A.value,"hide-navbar":m.value,"sidebar-collapsed":!i.value&&!s.value&&u.value,"sidebar-open":i.value&&l.value},e.containerClass,r.value.containerClass||""],onTouchStart:O,onTouchEnd:y},[g.value?d(g1,{onToggleSidebar:()=>c()},{startBefore:()=>{var I;return(I=t.navbarStartBefore)==null?void 0:I.call(t)},startAfter:()=>{var I;return(I=t.navbarStartAfter)==null?void 0:I.call(t)},centerBefore:()=>{var I;return(I=t.navbarCenterBefore)==null?void 0:I.call(t)},centerAfter:()=>{var I;return(I=t.navbarCenterAfter)==null?void 0:I.call(t)},endBefore:()=>{var I;return(I=t.navbarEndBefore)==null?void 0:I.call(t)},endAfter:()=>{var I;return(I=t.navbarEndAfter)==null?void 0:I.call(t)},screenTop:()=>{var I;return(I=t.navScreenTop)==null?void 0:I.call(t)},screenBottom:()=>{var I;return(I=t.navScreenBottom)==null?void 0:I.call(t)}}):null,d(Ot,{name:"fade"},()=>l.value?d("div",{class:"vp-sidebar-mask",onClick:()=>c(!1)}):null),d(Ot,{name:"fade"},()=>i.value?null:d("div",{class:"toggle-sidebar-wrapper",onClick:()=>f()},d("span",{class:["arrow",u.value?"end":"start"]}))),d(y1,{},{...t.sidebar?{default:()=>t.sidebar()}:{},top:()=>{var I;return(I=t.sidebarTop)==null?void 0:I.call(t)},bottom:()=>{var I;return(I=t.sidebarBottom)==null?void 0:I.call(t)}}),t.default(),d(e1)]))}}),gn=W({name:"DropTransition",props:{type:{type:String,default:"single"},delay:{type:Number,default:0},duration:{type:Number,default:.25},appear:Boolean},slots:Object,setup(e,{slots:t}){const n=r=>{r.style.transition=`transform ${e.duration}s ease-in-out ${e.delay}s, opacity ${e.duration}s ease-in-out ${e.delay}s`,r.style.transform="translateY(-20px)",r.style.opacity="0"},o=r=>{r.style.transform="translateY(0)",r.style.opacity="1"};return()=>d(e.type==="single"?Ot:Ta,{name:"drop",appear:e.appear,onAppear:n,onAfterAppear:o,onEnter:n,onAfterEnter:o,onBeforeLeave:n},()=>t.default())}});const Jr=({custom:e})=>d(zl,{class:["theme-hope-content",{custom:e}]});Jr.displayName="MarkdownContent",Jr.props={custom:Boolean};var nu=Jr;const ou=()=>d(be,{name:"author"},()=>d("path",{d:"M649.6 633.6c86.4-48 147.2-144 147.2-249.6 0-160-128-288-288-288s-288 128-288 288c0 108.8 57.6 201.6 147.2 249.6-121.6 48-214.4 153.6-240 288-3.2 9.6 0 19.2 6.4 25.6 3.2 9.6 12.8 12.8 22.4 12.8h704c9.6 0 19.2-3.2 25.6-12.8 6.4-6.4 9.6-16 6.4-25.6-25.6-134.4-121.6-240-243.2-288z"}));ou.displayName="AuthorIcon";const ru=()=>d(be,{name:"calendar"},()=>d("path",{d:"M716.4 110.137c0-18.753-14.72-33.473-33.472-33.473-18.753 0-33.473 14.72-33.473 33.473v33.473h66.993v-33.473zm-334.87 0c0-18.753-14.72-33.473-33.473-33.473s-33.52 14.72-33.52 33.473v33.473h66.993v-33.473zm468.81 33.52H716.4v100.465c0 18.753-14.72 33.473-33.472 33.473a33.145 33.145 0 01-33.473-33.473V143.657H381.53v100.465c0 18.753-14.72 33.473-33.473 33.473a33.145 33.145 0 01-33.473-33.473V143.657H180.6A134.314 134.314 0 0046.66 277.595v535.756A134.314 134.314 0 00180.6 947.289h669.74a134.36 134.36 0 00133.94-133.938V277.595a134.314 134.314 0 00-133.94-133.938zm33.473 267.877H147.126a33.145 33.145 0 01-33.473-33.473c0-18.752 14.72-33.473 33.473-33.473h736.687c18.752 0 33.472 14.72 33.472 33.473a33.145 33.145 0 01-33.472 33.473z"}));ru.displayName="CalendarIcon";const au=()=>d(be,{name:"category"},()=>d("path",{d:"M148.41 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H148.41c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.311-40.31zM147.556 553.478H429.73c22.263 0 40.311 18.048 40.311 40.31v282.176c0 22.263-18.048 40.312-40.31 40.312H147.555c-22.263 0-40.311-18.049-40.311-40.312V593.79c0-22.263 18.048-40.311 40.31-40.311zM593.927 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H593.927c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.31-40.31zM730.22 920.502H623.926c-40.925 0-74.22-33.388-74.22-74.425V623.992c0-41.038 33.387-74.424 74.425-74.424h222.085c41.038 0 74.424 33.226 74.424 74.067v114.233c0 10.244-8.304 18.548-18.547 18.548s-18.548-8.304-18.548-18.548V623.635c0-20.388-16.746-36.974-37.33-36.974H624.13c-20.585 0-37.331 16.747-37.331 37.33v222.086c0 20.585 16.654 37.331 37.126 37.331H730.22c10.243 0 18.547 8.304 18.547 18.547 0 10.244-8.304 18.547-18.547 18.547z"}));au.displayName="CategoryIcon";const iu=()=>d(be,{name:"eye"},()=>d("path",{d:"M992 512.096c0-5.76-.992-10.592-1.28-11.136-.192-2.88-1.152-8.064-2.08-10.816-.256-.672-.544-1.376-.832-2.08-.48-1.568-1.024-3.104-1.6-4.32C897.664 290.112 707.104 160 512 160c-195.072 0-385.632 130.016-473.76 322.592-1.056 2.112-1.792 4.096-2.272 5.856a55.512 55.512 0 00-.64 1.6c-1.76 5.088-1.792 8.64-1.632 7.744-.832 3.744-1.568 11.168-1.568 11.168-.224 2.272-.224 4.032.032 6.304 0 0 .736 6.464 1.088 7.808.128 1.824.576 4.512 1.12 6.976h-.032c.448 2.08 1.12 4.096 1.984 6.08.48 1.536.992 2.976 1.472 4.032C126.432 733.856 316.992 864 512 864c195.136 0 385.696-130.048 473.216-321.696 1.376-2.496 2.24-4.832 2.848-6.912.256-.608.48-1.184.672-1.728 1.536-4.48 1.856-8.32 1.728-8.32l-.032.032c.608-3.104 1.568-7.744 1.568-13.28zM512 672c-88.224 0-160-71.776-160-160s71.776-160 160-160 160 71.776 160 160-71.776 160-160 160z"}));iu.displayName="EyeIcon";const su=()=>d(be,{name:"fire"},()=>d("path",{d:"M726.4 201.6c-12.8-9.6-28.8-6.4-38.4 0-9.6 9.6-16 25.6-9.6 38.4 6.4 12.8 9.6 28.8 12.8 44.8C604.8 83.2 460.8 38.4 454.4 35.2c-9.6-3.2-22.4 0-28.8 6.4-9.6 6.4-12.8 19.2-9.6 28.8 12.8 86.4-25.6 188.8-115.2 310.4-6.4-25.6-16-51.2-32-80-9.6-9.6-22.4-16-35.2-12.8-16 3.2-25.6 12.8-25.6 28.8-3.2 48-25.6 92.8-51.2 140.8C134.4 499.2 112 544 102.4 592c-32 150.4 99.2 329.6 233.6 380.8 9.6 3.2 19.2 6.4 32 9.6-25.6-19.2-41.6-51.2-48-96C294.4 691.2 505.6 640 515.2 460.8c153.6 105.6 224 336 137.6 505.6 3.2 0 6.4-3.2 9.6-3.2 0 0 3.2 0 3.2-3.2 163.2-89.6 252.8-208 259.2-345.6 16-211.2-163.2-390.4-198.4-412.8z"}));su.displayName="FireIcon";const lu=()=>d(be,{name:"print"},()=>d("path",{d:"M819.2 364.8h-44.8V128c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v236.8h-44.8C145.067 364.8 96 413.867 96 473.6v192c0 59.733 49.067 108.8 108.8 108.8h44.8V896c0 17.067 14.933 32 32 32h460.8c17.067 0 32-14.933 32-32V774.4h44.8c59.733 0 108.8-49.067 108.8-108.8v-192c0-59.733-49.067-108.8-108.8-108.8zM313.6 160h396.8v204.8H313.6V160zm396.8 704H313.6V620.8h396.8V864zM864 665.6c0 25.6-19.2 44.8-44.8 44.8h-44.8V588.8c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v121.6h-44.8c-25.6 0-44.8-19.2-44.8-44.8v-192c0-25.6 19.2-44.8 44.8-44.8h614.4c25.6 0 44.8 19.2 44.8 44.8v192z"}));lu.displayName="PrintIcon";const cu=()=>d(be,{name:"tag"},()=>d("path",{d:"M939.902 458.563L910.17 144.567c-1.507-16.272-14.465-29.13-30.737-30.737L565.438 84.098h-.402c-3.215 0-5.726 1.005-7.634 2.913l-470.39 470.39a10.004 10.004 0 000 14.164l365.423 365.424c1.909 1.908 4.42 2.913 7.132 2.913s5.223-1.005 7.132-2.913l470.39-470.39c2.01-2.11 3.014-5.023 2.813-8.036zm-240.067-72.121c-35.458 0-64.286-28.828-64.286-64.286s28.828-64.285 64.286-64.285 64.286 28.828 64.286 64.285-28.829 64.286-64.286 64.286z"}));cu.displayName="TagIcon";const uu=()=>d(be,{name:"timer"},()=>d("path",{d:"M799.387 122.15c4.402-2.978 7.38-7.897 7.38-13.463v-1.165c0-8.933-7.38-16.312-16.312-16.312H256.33c-8.933 0-16.311 7.38-16.311 16.312v1.165c0 5.825 2.977 10.874 7.637 13.592 4.143 194.44 97.22 354.963 220.201 392.763-122.204 37.542-214.893 196.511-220.2 389.397-4.661 5.049-7.638 11.651-7.638 19.03v5.825h566.49v-5.825c0-7.379-2.849-13.981-7.509-18.9-5.049-193.016-97.867-351.985-220.2-389.527 123.24-37.67 216.446-198.453 220.588-392.892zM531.16 450.445v352.632c117.674 1.553 211.787 40.778 211.787 88.676H304.097c0-48.286 95.149-87.382 213.728-88.676V450.445c-93.077-3.107-167.901-81.297-167.901-177.093 0-8.803 6.99-15.793 15.793-15.793 8.803 0 15.794 6.99 15.794 15.793 0 80.261 63.69 145.635 142.01 145.635s142.011-65.374 142.011-145.635c0-8.803 6.99-15.793 15.794-15.793s15.793 6.99 15.793 15.793c0 95.019-73.789 172.82-165.96 177.093z"}));uu.displayName="TimerIcon";const du=()=>d(be,{name:"word"},()=>[d("path",{d:"M518.217 432.64V73.143A73.143 73.143 0 01603.43 1.097a512 512 0 01419.474 419.474 73.143 73.143 0 01-72.046 85.212H591.36a73.143 73.143 0 01-73.143-73.143z"}),d("path",{d:"M493.714 566.857h340.297a73.143 73.143 0 0173.143 85.577A457.143 457.143 0 11371.566 117.76a73.143 73.143 0 0185.577 73.143v339.383a36.571 36.571 0 0036.571 36.571z"})]);du.displayName="WordIcon";const Rt=()=>{const e=ge();return k(()=>e.value.metaLocales)};var w1=W({name:"AuthorInfo",inheritAttrs:!1,props:{author:{type:Array,required:!0},pure:Boolean},setup(e){const t=Rt();return()=>e.author.length?d("span",{class:"page-author-info","aria-label":`${t.value.author}${e.pure?"":"🖊"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(ou),d("span",e.author.map(n=>n.url?d("a",{class:"page-author-item",href:n.url,target:"_blank",rel:"noopener noreferrer"},n.name):d("span",{class:"page-author-item"},n.name))),d("span",{property:"author",content:e.author.map(n=>n.name).join(", ")})]):null}}),E1=W({name:"CategoryInfo",inheritAttrs:!1,props:{category:{type:Array,required:!0},pure:Boolean},setup(e){const t=De(),n=he(),o=Rt(),r=(a,i="")=>{i&&n.value.path!==i&&(a.preventDefault(),t.push(i))};return()=>e.category.length?d("span",{class:"page-category-info","aria-label":`${o.value.category}${e.pure?"":"🌈"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(au),e.category.map(({name:a,path:i})=>d("span",{class:["page-category-item",{[`category${ec(a,9)}`]:!e.pure,clickable:i}],role:i?"navigation":"",onClick:s=>r(s,i)},a)),d("meta",{property:"articleSection",content:e.category.map(({name:a})=>a).join(",")})]):null}}),T1=W({name:"DateInfo",inheritAttrs:!1,props:{date:{type:Object,default:null},localizedDate:{type:String,default:""},pure:Boolean},setup(e){const t=nr(),n=Rt();return()=>e.date?d("span",{class:"page-date-info","aria-label":`${n.value.date}${e.pure?"":"📅"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(ru),d("span",d(rr,()=>e.localizedDate||e.date.toLocaleDateString(t.value))),d("meta",{property:"datePublished",content:e.date.toISOString()||""})]):null}}),A1=W({name:"OriginalInfo",inheritAttrs:!1,props:{isOriginal:Boolean},setup(e){const t=Rt();return()=>e.isOriginal?d("span",{class:"page-original-info"},t.value.origin):null}}),k1=W({name:"PageViewInfo",inheritAttrs:!1,props:{pageview:{type:[Boolean,String],default:!1},pure:Boolean},setup(e){const t=je(),n=Rt(),o=tt(),r=G(0);return cm(o,()=>{const a=o.value.textContent;a&&!isNaN(Number(a))&&(r.value=Number(a))},{childList:!0}),()=>e.pageview?d("span",{class:"page-pageview-info","aria-label":`${n.value.views}${e.pure?"":"🔢"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(r.value<1e3?iu:su),d("span",{ref:o,id:"ArtalkPV",class:"waline-pageview-count","data-path":se(e.pageview)?e.pageview:t.path},"...")]):null}}),L1=W({name:"ReadingTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=Rt(),n=k(()=>{if(!e.readingTime)return null;const{minutes:o}=e.readingTime;return o<1?"PT1M":`PT${Math.round(o)}M`});return()=>{var o,r;return(o=e.readingTimeLocale)!=null&&o.time?d("span",{class:"page-reading-time-info","aria-label":`${t.value.readingTime}${e.pure?"":"⌛"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(uu),d("span",(r=e.readingTimeLocale)==null?void 0:r.time),d("meta",{property:"timeRequired",content:n.value})]):null}}}),O1=W({name:"TagInfo",inheritAttrs:!1,props:{tag:{type:Array,default:()=>[]},pure:Boolean},setup(e){const t=De(),n=he(),o=Rt(),r=(a,i="")=>{i&&n.value.path!==i&&(a.preventDefault(),t.push(i))};return()=>e.tag.length?d("span",{class:"page-tag-info","aria-label":`${o.value.tag}${e.pure?"":"🏷"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(cu),e.tag.map(({name:a,path:i})=>d("span",{class:["page-tag-item",{[`tag${ec(a,9)}`]:!e.pure,clickable:i}],role:i?"navigation":"",onClick:s=>r(s,i)},a)),d("meta",{property:"keywords",content:e.tag.map(({name:a})=>a).join(",")})]):null}}),C1=W({name:"ReadTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=Rt();return()=>{var n,o,r;return(n=e.readingTimeLocale)!=null&&n.words?d("span",{class:"page-word-info","aria-label":`${t.value.words}${e.pure?"":"🔠"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(du),d("span",(o=e.readingTimeLocale)==null?void 0:o.words),d("meta",{property:"wordCount",content:(r=e.readingTime)==null?void 0:r.words})]):null}}}),S1=W({name:"PageInfo",components:{AuthorInfo:w1,CategoryInfo:E1,DateInfo:T1,OriginalInfo:A1,PageViewInfo:k1,ReadingTimeInfo:L1,TagInfo:O1,WordInfo:C1},props:{items:{type:[Array,Boolean],default:()=>["Author","Original","Date","PageView","ReadingTime","Category","Tag"]},info:{type:Object,required:!0}},setup(e){const t=ur();return()=>e.items?d("div",{class:"page-info"},e.items.map(n=>d(ct(`${n}Info`),{...e.info,pure:t.value}))):null}}),P1=W({name:"PrintButton",setup(){const e=zn(),t=ge();return()=>e.value.print===!1?null:d("button",{type:"button",class:"print-button",title:t.value.metaLocales.print,onClick:()=>{window.print()}},d(lu))}});const I1=({title:e,level:t,slug:n})=>d(ut,{to:`#${n}`,class:["toc-link",`level${t}`]},()=>e),Qr=(e,t)=>{const n=je();return e.length&&t>0?d("ul",{class:"toc-list"},e.map(o=>{const r=Qr(o.children,t-1);return[d("li",{class:["toc-item",{active:Pa(n,`#${o.slug}`)}]},I1(o)),r?d("li",r):null]})):null};var R1=W({name:"TOC",props:{items:{type:Array,default:()=>[]},headerDepth:{type:Number,default:2}},slots:Object,setup(e,{slots:t}){const n=je(),o=he(),r=Rt(),a=tt(),i=G("-1.7rem"),s=c=>{var u;(u=a.value)==null||u.scrollTo({top:c,behavior:"smooth"})},l=()=>{if(a.value){const c=document.querySelector(".toc-item.active");c?i.value=`${c.getBoundingClientRect().top-a.value.getBoundingClientRect().top+a.value.scrollTop}px`:i.value="-1.7rem"}else i.value="-1.7rem"};return pe(()=>{re(()=>n.hash,c=>{if(a.value){const u=document.querySelector(`#toc a.toc-link[href$="${c}"]`);if(!u)return;const{top:f,height:p}=a.value.getBoundingClientRect(),{top:m,height:g}=u.getBoundingClientRect();mf+p&&s(a.value.scrollTop+m+g-f-p)}}),re(()=>n.fullPath,()=>l(),{flush:"post",immediate:!0})}),()=>{var u,f;const c=e.items.length?Qr(e.items,e.headerDepth):o.value.headers?Qr(o.value.headers,e.headerDepth):null;return c?d("div",{class:"toc-place-holder"},[d("aside",{id:"toc"},[(u=t.before)==null?void 0:u.call(t),d("div",{class:"toc-header"},[r.value.toc,d(P1)]),d("div",{class:"toc-wrapper",ref:a},[c,d("div",{class:"toc-marker",style:{top:i.value}})]),(f=t.after)==null?void 0:f.call(t)])]):null}}}),fu=W({name:"SkipLink",props:{content:{type:String,default:"main-content"}},setup(e){const t=he(),n=ge(),o=tt(),r=({target:a})=>{const i=document.querySelector(a.hash);if(i){const s=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",s)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",s),i.focus(),window.scrollTo(0,0)}};return pe(()=>{re(()=>t.value.path,()=>o.value.focus())}),()=>[d("span",{ref:o,tabindex:"-1"}),d("a",{href:`#${e.content}`,class:"vp-skip-link sr-only",onClick:r},n.value.routeLocales.skipToContent)]}});let Pr=null,qn=null;const x1={wait:()=>Pr,pending:()=>{Pr=new Promise(e=>qn=e)},resolve:()=>{qn==null||qn(),Pr=null,qn=null}},pu=()=>x1;var D1=W({name:"FadeSlideY",slots:Object,setup(e,{slots:t}){const{resolve:n,pending:o}=pu();return()=>d(Ot,{name:"fade-slide-y",mode:"out-in",onBeforeEnter:n,onBeforeLeave:o},()=>{var r;return(r=t.default)==null?void 0:r.call(t)})}});const $1=(e,t)=>{const n=e.replace(t,"/").split("/"),o=[];let r=ka(t);return n.forEach((a,i)=>{i!==n.length-1?(r+=`${a}/`,o.push({link:r,name:a||"Home"})):a!==""&&(r+=a,o.push({link:r,name:a}))}),o},hu=(e,{slots:t})=>{var f,p;const{bgImage:n,bgImageDark:o,bgImageStyle:r,color:a,description:i,image:s,imageDark:l,header:c,features:u=[]}=e;return d("div",{class:"vp-feature-wrapper"},[n?d("div",{class:["vp-feature-bg",{light:o}],style:[{"background-image":`url(${n})`},r]}):null,o?d("div",{class:"vp-feature-bg dark",style:[{"background-image":`url(${o})`},r]}):null,d("div",{class:"vp-feature",style:a?{color:a}:{}},[((f=t.image)==null?void 0:f.call(t,e))||[s?d("img",{class:["vp-feature-image",{light:l}],src:Me(s),alt:c}):null,l?d("img",{class:"vp-feature-image dark",src:Me(l),alt:c}):null],((p=t.info)==null?void 0:p.call(t,e))||[c?d("h2",{class:"vp-feature-header"},c):null,i?d("p",{class:"vp-feature-description",innerHTML:i}):null],u.length?d("div",{class:"vp-features"},u.map(({icon:m,title:g,details:E,link:A})=>{const w=[d("h3",{class:"vp-feature-title"},[d(He,{icon:m}),d("span",{innerHTML:g})]),d("p",{class:"vp-feature-details",innerHTML:E})];return A?Uo(A)?d("a",{class:"vp-feature-item link",href:A,role:"navigation","aria-label":g,target:"_blank"},w):d(ut,{class:"vp-feature-item link",to:A,role:"navigation","aria-label":g},()=>w):d("div",{class:"vp-feature-item"},w)})):null])])};hu.displayName="FeaturePanel";var bs=hu,M1=W({name:"HeroInfo",slots:Object,setup(e,{slots:t}){const n=Le(),o=or(),r=k(()=>n.value.heroFullScreen??!1),a=k(()=>{const{heroText:c,tagline:u}=n.value;return{text:c??o.value.title??"Hello",tagline:u??o.value.description??"",isFullScreen:r.value}}),i=k(()=>{const{heroText:c,heroImage:u,heroImageDark:f,heroAlt:p,heroImageStyle:m}=n.value;return{image:u?Me(u):null,imageDark:f?Me(f):null,heroStyle:m,alt:p||c||"hero image",isFullScreen:r.value}}),s=k(()=>{const{bgImage:c,bgImageDark:u,bgImageStyle:f}=n.value;return{image:Ct(c)?Me(c):null,imageDark:Ct(u)?Me(u):null,bgStyle:f,isFullScreen:r.value}}),l=k(()=>n.value.actions??[]);return()=>{var c,u,f;return d("header",{class:["vp-hero-info-wrapper",{fullscreen:r.value}]},[((c=t.heroBg)==null?void 0:c.call(t,s.value))||[s.value.image?d("div",{class:["vp-hero-mask",{light:s.value.imageDark}],style:[{"background-image":`url(${s.value.image})`},s.value.bgStyle]}):null,s.value.imageDark?d("div",{class:"vp-hero-mask dark",style:[{"background-image":`url(${s.value.imageDark})`},s.value.bgStyle]}):null],d("div",{class:"vp-hero-info"},[((u=t.heroImage)==null?void 0:u.call(t,i.value))||d(gn,{appear:!0,type:"group"},()=>[i.value.image?d("img",{key:"light",class:["vp-hero-image",{light:i.value.imageDark}],style:i.value.heroStyle,src:i.value.image,alt:i.value.alt}):null,i.value.imageDark?d("img",{key:"dark",class:"vp-hero-image dark",style:i.value.heroStyle,src:i.value.imageDark,alt:i.value.alt}):null]),((f=t.heroInfo)==null?void 0:f.call(t,a.value))??d("div",{class:"vp-hero-infos"},[a.value.text?d(gn,{appear:!0,delay:.04},()=>d("h1",{id:"main-title"},a.value.text)):null,a.value.tagline?d(gn,{appear:!0,delay:.08},()=>d("p",{class:"vp-description",innerHTML:a.value.tagline})):null,l.value.length?d(gn,{appear:!0,delay:.12},()=>d("p",{class:"vp-actions"},l.value.map(p=>d(Be,{class:["vp-action",p.type||"default"],config:p,noExternalLinkIcon:!0})))):null])])])}}});const mu=(e,{slots:t})=>{var p,m,g;const{bgImage:n,bgImageDark:o,bgImageStyle:r,color:a,description:i,image:s,imageDark:l,header:c,highlights:u=[],type:f="un-order"}=e;return d("div",{class:"vp-highlight-wrapper",style:a?{color:a}:{}},[n?d("div",{class:["vp-highlight-bg",{light:o}],style:[{"background-image":`url(${n})`},r]}):null,o?d("div",{class:"vp-highlight-bg dark",style:[{"background-image":`url(${o})`},r]}):null,d("div",{class:"vp-highlight"},[((p=t.image)==null?void 0:p.call(t,e))||[s?d("img",{class:["vp-highlight-image",{light:l}],src:Me(s),alt:c}):null,l?d("img",{class:"vp-highlight-image dark",src:Me(l),alt:c}):null],((m=t.info)==null?void 0:m.call(t,e))||[d("div",{class:"vp-highlight-info-wrapper"},d("div",{class:"vp-highlight-info"},[c?d("h2",{class:"vp-highlight-header",innerHTML:c}):null,i?d("p",{class:"vp-highlight-description",innerHTML:i}):null,((g=t.highlights)==null?void 0:g.call(t,u))||d(f==="order"?"ol":f==="no-order"?"dl":"ul",{class:"vp-highlights"},u.map(({icon:E,title:A,details:w,link:O})=>{const y=[d(f==="no-order"?"dt":"h3",{class:"vp-highlight-title"},[E?d(He,{class:"vp-highlight-icon",icon:E}):null,d("span",{innerHTML:A})]),w?d(f==="no-order"?"dd":"p",{class:"vp-highlight-details",innerHTML:w}):null];return d(f==="no-order"?"div":"li",{class:["vp-highlight-item-wrapper",{link:O}]},O?Oh(O)?d("a",{class:"vp-highlight-item link",href:O,role:"navigation","aria-label":A,target:"_blank"},y):d(ut,{class:"vp-highlight-item link",to:O,role:"navigation","aria-label":A},()=>y):d("div",{class:"vp-highlight-item"},y))}))]))]])])};mu.displayName="HighlightPanel";var N1=mu,V1=W({name:"HomePage",slots:Object,setup(e,{slots:t}){const n=ur(),o=Le(),r=k(()=>{const{features:i}=o.value;return K(i)?i:null}),a=k(()=>{const{highlights:i}=o.value;return K(i)?i:null});return()=>{var i,s,l,c;return d("main",{id:"main-content",class:["vp-project-home ",{pure:n.value}],"aria-labelledby":o.value.heroText===null?"":"main-title"},[(i=t.top)==null?void 0:i.call(t),d(M1),((s=a.value)==null?void 0:s.map(u=>"features"in u?d(bs,u):d(N1,u)))||(r.value?d(gn,{appear:!0,delay:.24},()=>d(bs,{features:r.value})):null),(l=t.center)==null?void 0:l.call(t),d(gn,{appear:!0,delay:.32},()=>d(nu)),(c=t.bottom)==null?void 0:c.call(t)])}}}),F1=W({name:"BreadCrumb",setup(){const e=De(),t=he(),n=It(),o=Le(),r=ge(),a=tt([]),i=k(()=>(o.value.breadcrumb||o.value.breadcrumb!==!1&&r.value.breadcrumb!==!1)&&a.value.length>1),s=k(()=>o.value.breadcrumbIcon||o.value.breadcrumbIcon!==!1&&r.value.breadcrumbIcon!==!1),l=()=>{const c=e.getRoutes(),u=$1(t.value.path,n.value).map(({link:f,name:p})=>{const m=c.find(g=>g.path===f);if(m){const{meta:g,path:E}=Ko(e,m.path);return{title:g[At.shortTitle]||g[At.title]||p,icon:g[At.icon],path:E}}return null}).filter(f=>f!==null);u.length>1&&(a.value=u)};return pe(()=>{l(),re(()=>t.value.path,l)}),()=>d("nav",{class:["vp-breadcrumb",{disable:!i.value}]},i.value?d("ol",{vocab:"https://schema.org/",typeof:"BreadcrumbList"},a.value.map((c,u)=>d("li",{class:{"is-active":a.value.length-1===u},property:"itemListElement",typeof:"ListItem"},[d(ut,{to:c.path,property:"item",typeof:"WebPage"},()=>[s.value?d(He,{icon:c.icon}):null,d("span",{property:"name"},c.title||"Unknown")]),d("meta",{property:"position",content:u+1})]))):[])}});const ys=e=>{const t=De();return e===!1?!1:se(e)?En(t,e,!0):Aa(e)?e:null},Xr=(e,t,n)=>{const o=e.findIndex(r=>r.link===t);if(o!==-1){const r=e[o+n];return r!=null&&r.link?r:null}for(const r of e)if(r.children){const a=Xr(r.children,t,n);if(a)return a}return null};var B1=W({name:"PageNav",setup(){const e=ge(),t=Le(),n=za(),o=he(),r=zv(),a=k(()=>{const s=ys(t.value.prev);return s===!1?null:s||(e.value.prevLink===!1?null:Xr(n.value,o.value.path,-1))}),i=k(()=>{const s=ys(t.value.next);return s===!1?null:s||(e.value.nextLink===!1?null:Xr(n.value,o.value.path,1))});return Ie("keydown",s=>{s.altKey&&(s.key==="ArrowRight"?i.value&&(r(i.value.link),s.preventDefault()):s.key==="ArrowLeft"&&a.value&&(r(a.value.link),s.preventDefault()))}),()=>a.value||i.value?d("nav",{class:"vp-page-nav"},[a.value?d(Be,{class:"prev",config:a.value},()=>{var s,l;return[d("div",{class:"hint"},[d("span",{class:"arrow start"}),e.value.metaLocales.prev]),d("div",{class:"link"},[d(He,{icon:(s=a.value)==null?void 0:s.icon}),(l=a.value)==null?void 0:l.text])]}):null,i.value?d(Be,{class:"next",config:i.value},()=>{var s,l;return[d("div",{class:"hint"},[e.value.metaLocales.next,d("span",{class:"arrow end"})]),d("div",{class:"link"},[(s=i.value)==null?void 0:s.text,d(He,{icon:(l=i.value)==null?void 0:l.icon})])]}):null]):null}});const z1={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},H1=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:o,editLinkPattern:r})=>{if(!o)return null;const a=ic(e);let i;return r?i=r:a!==null&&(i=z1[a]),i?i.replace(/:repo/,Fn(e)?e:`https://github.com/${e}`).replace(/:branch/,t).replace(/:path/,Rl(`${ka(n)}/${o}`)):null},j1=()=>{const e=ge(),t=he(),n=Le();return k(()=>{const{repo:o,docsRepo:r=o,docsBranch:a="main",docsDir:i="",editLink:s,editLinkPattern:l=""}=e.value;if(!(n.value.editLink??s??!0)||!r)return null;const c=H1({docsRepo:r,docsBranch:a,docsDir:i,editLinkPattern:l,filePathRelative:t.value.filePathRelative});return c?{text:e.value.metaLocales.editLink,link:c}:null})},W1=()=>{const e=or(),t=ge(),n=he(),o=Le();return k(()=>{var r,a;return!(o.value.lastUpdated??t.value.lastUpdated??!0)||!((r=n.value.git)!=null&&r.updatedTime)?null:new Date((a=n.value.git)==null?void 0:a.updatedTime).toLocaleString(e.value.lang)})},U1=()=>{const e=ge(),t=he(),n=Le();return k(()=>{var o;return n.value.contributors??e.value.contributors??!0?((o=t.value.git)==null?void 0:o.contributors)??null:null})};var q1=W({name:"PageTitle",setup(){const e=he(),t=Le(),n=ge(),{info:o,items:r}=Uv();return()=>d("div",{class:"vp-page-title"},[d("h1",[n.value.titleIcon===!1?null:d(He,{icon:t.value.icon}),e.value.title]),d(S1,{info:o.value,...r.value===null?{}:{items:r.value}}),d("hr")])}});const vu=()=>d(be,{name:"edit"},()=>[d("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),d("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})]);vu.displayName="EditIcon";var K1=W({name:"PageMeta",setup(){const e=ge(),t=j1(),n=W1(),o=U1();return()=>{const{metaLocales:r}=e.value;return d("footer",{class:"page-meta"},[t.value?d("div",{class:"meta-item edit-link"},d(Be,{class:"label",config:t.value},{before:()=>d(vu)})):null,d("div",{class:"meta-item git-info"},[n.value?d("div",{class:"update-time"},[d("span",{class:"label"},`${r.lastUpdated}: `),d(rr,()=>d("span",{class:"info"},n.value))]):null,o.value&&o.value.length?d("div",{class:"contributors"},[d("span",{class:"label"},`${r.contributors}: `),o.value.map(({email:a,name:i},s)=>[d("span",{class:"contributor",title:`email: ${a}`},i),s!==o.value.length-1?",":""])]):null])])}}}),G1=W({name:"NormalPage",slots:Object,setup(e,{slots:t}){const n=Le(),o=he(),{isDarkmode:r}=go(),a=ge(),i=k(()=>n.value.toc||n.value.toc!==!1&&a.value.toc!==!1);return()=>d("main",{id:"main-content",class:"vp-page"},d(gt("LocalEncrypt")?ct("LocalEncrypt"):Zl,()=>{var s,l,c,u;return[(s=t.top)==null?void 0:s.call(t),n.value.cover?d("img",{class:"page-cover",src:Me(n.value.cover),alt:o.value.title,"no-view":""}):null,d(F1),d(q1),i.value?d(R1,{headerDepth:n.value.headerDepth??a.value.headerDepth??2},{before:()=>{var f;return(f=t.tocBefore)==null?void 0:f.call(t)},after:()=>{var f;return(f=t.tocAfter)==null?void 0:f.call(t)}}):null,(l=t.contentBefore)==null?void 0:l.call(t),d(nu),(c=t.contentAfter)==null?void 0:c.call(t),d(K1),d(B1),gt("CommentService")?d(ct("CommentService"),{darkmode:r.value}):null,(u=t.bottom)==null?void 0:u.call(t)]}))}}),Y1=W({name:"Layout",setup(){ge();const e=he(),t=Le(),{isMobile:n}=dr(),o=k(()=>"none");return()=>[d(fu),d(tu,{},{default:()=>t.value.home?d(V1):d(D1,()=>d(G1,{key:e.value.path})),...o.value!=="none"?{navScreenBottom:()=>d(ct("BloggerInfo"))}:{},...!n.value&&o.value==="always"?{sidebar:()=>d(ct("BloggerInfo"))}:{}})]}}),J1=W({name:"NotFoundHint",setup(){const e=ge(),t=()=>{const n=e.value.routeLocales.notFoundMsg;return n[Math.floor(Math.random()*n.length)]};return()=>d("div",{class:"not-found-hint"},[d("p",{class:"error-code"},"404"),d("h1",{class:"error-title"},e.value.routeLocales.notFoundTitle),d("p",{class:"error-hint"},t())])}}),Q1=W({name:"NotFound",slots:Object,setup(e,{slots:t}){const n=It(),o=ge(),{navigate:r}=Ur({to:o.value.home??n.value});return()=>[d(fu),d(tu,{noSidebar:!0},()=>{var a;return d("main",{id:"main-content",class:"vp-page not-found"},((a=t.default)==null?void 0:a.call(t))||[d(J1),d("div",{class:"actions"},[d("button",{type:"button",class:"action-button",onClick:()=>{window.history.go(-1)}},o.value.routeLocales.back),d("button",{type:"button",class:"action-button",onClick:()=>r()},o.value.routeLocales.home)])])})]}});Im(He);const X1=Ne({enhance:({app:e,router:t})=>{const{scrollBehavior:n}=t.options;t.options.scrollBehavior=async(...o)=>(await pu().wait(),n(...o)),Gv(e),e.component("HopeIcon",He),e.component("VPLink",ut)},setup:()=>{Yv(),Zv()},layouts:{Layout:Y1,NotFound:Q1}}),Z1=e=>{const t=Ie("keydown",n=>{const o=n.key==="k"&&(n.ctrlKey||n.metaKey);!(n.key==="/")&&!o||(n.preventDefault(),e(),t())})},e0=e=>e.button===1||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey,t0=()=>{const e=De();return{hitComponent:({hit:t,children:n})=>({type:"a",ref:void 0,constructor:void 0,key:void 0,props:{href:t.url,onClick:o=>{e0(o)||(o.preventDefault(),e.push($i(t.url,"/")))},children:n},__v:null}),navigator:{navigate:({itemUrl:t})=>{e.push($i(t,"/"))}},transformSearchClient:t=>{const n=_c(t.search,500);return{...t,search:async(...o)=>n(...o)}}}},n0=(e=[],t)=>[`lang:${t}`,...K(e)?e:[e]],o0=({buttonText:e="Search",buttonAriaLabel:t=e}={})=>``,r0=16,gu=()=>{if(document.querySelector(".DocSearch-Modal"))return;const e=new Event("keydown");e.key="k",e.metaKey=!0,window.dispatchEvent(e),setTimeout(gu,r0)},a0=e=>{const t="algolia-preconnect";(window.requestIdleCallback||setTimeout)(()=>{if(document.head.querySelector(`#${t}`))return;const o=document.createElement("link");o.id=t,o.rel="preconnect",o.href=`https://${e}-dsn.algolia.net`,o.crossOrigin="",document.head.appendChild(o)})},i0={appId:"28CTGDOOQD",apiKey:"72d7a9a0f9f0466218ea19988886dce8",indexName:"hutao",locales:{"/zh/":{placeholder:"搜索文档",translations:{button:{buttonText:"搜索文档",buttonAriaLabel:"搜索文档"},modal:{searchBox:{resetButtonTitle:"清除查询条件",resetButtonAriaLabel:"清除查询条件",cancelButtonText:"取消",cancelButtonAriaLabel:"取消"},startScreen:{recentSearchesTitle:"搜索历史",noRecentSearchesText:"没有搜索历史",saveRecentSearchButtonTitle:"保存至搜索历史",removeRecentSearchButtonTitle:"从搜索历史中移除",favoriteSearchesTitle:"收藏",removeFavoriteSearchButtonTitle:"从收藏中移除"},errorScreen:{titleText:"无法获取结果",helpText:"你可能需要检查你的网络连接"},footer:{selectText:"选择",navigateText:"切换",closeText:"关闭",searchByText:"搜索提供者"},noResultsScreen:{noResultsText:"无法找到相关结果",suggestedQueryText:"你可以尝试查询",reportMissingResultsText:"你认为该查询应该有结果?",reportMissingResultsLinkText:"点击反馈"}}}},"/en/":{placeholder:"Search documents",translations:{button:{buttonText:"Search documents"}}}}};_(()=>import("./style-e9220a04.js"),[]),_(()=>import("./docsearch-1d421ddb.js"),[]);const s0=W({name:"Docsearch",props:{containerId:{type:String,required:!1,default:"docsearch-container"},options:{type:Object,required:!1,default:()=>i0}},setup(e){const t=t0(),n=nr(),o=It(),r=G(!1),a=G(!1),i=k(()=>{var c;return{...e.options,...(c=e.options.locales)==null?void 0:c[o.value]}}),s=async()=>{var u;const{default:c}=await _(()=>import("./index-82585c84.js"),[]);c({...t,...i.value,container:`#${e.containerId}`,searchParameters:{...i.value.searchParameters,facetFilters:n0((u=i.value.searchParameters)==null?void 0:u.facetFilters,n.value)}}),r.value=!0},l=()=>{a.value||r.value||(a.value=!0,s(),gu(),re(o,s))};return Z1(l),pe(()=>a0(i.value.appId)),()=>{var c;return[d("div",{id:e.containerId,style:{display:r.value?"block":"none"}}),r.value?null:d("div",{onClick:l,innerHTML:o0((c=i.value.translations)==null?void 0:c.button)})]}}}),l0=Ne({enhance({app:e}){e.component("Docsearch",s0)}}),c0=e=>{if(window.dataLayer&&window.gtag)return;const t=document.createElement("script");t.src=`https://www.googletagmanager.com/gtag/js?id=${e.id}`,t.async=!0,document.head.appendChild(t),window.dataLayer=window.dataLayer||[],window.gtag=function(){dataLayer.push(arguments)},gtag("js",new Date),e.debug?gtag("config",e.id,{debug_mode:!0}):gtag("config",e.id)},u0={id:"G-F3LFJCE3RM"},d0=Ne({enhance(){c0(u0)}});const _u={autoLocale:!0,switchLocale:"modal",localeConfig:{0:["/en/",["en-US","en-UK","en"]],1:["/zh/",["zh-CN","zh-TW","zh"]],"/zh/":["zh-CN"],"/en/":["en-US"]},defaultLocale:"/en/",localeFallback:!0,defaultBehavior:"defaultLocale"},ws=lr(_u.localeConfig),Es={"/zh/":{name:"简体中文",hint:"您的首选语言是 $1,是否切换到该语言?",switch:"切换到 $1",cancel:"取消"},"/en/":{name:"English",hint:"Your primary language is $1, do you want to switch to it?",switch:"Switch to $1",cancel:"Cancel"},"/":{name:"English",hint:"Your primary language is $1, do you want to switch to it?",switch:"Switch to $1",cancel:"Cancel"}},{switchLocale:Ts}=_u,As=hm("VUEPRESS_REDIRECT_LOCALES",{});var f0=W({name:"LanguageSwitch",setup(){const e=fm(),t=je(),n=De(),o=It(),r=G(!1),a=k(()=>{if(ws.some(([c])=>o.value===c)){for(const c of e.value)for(const[u,f]of ws)if(f.includes(c))return u===o.value?null:{lang:c,localePath:u}}return null}),i=k(()=>{if(a.value){const{lang:c,localePath:u}=a.value,f=[Es[o.value],Es[u]];return{hint:f.map(({hint:p})=>p.replace("$1",c)),switch:f.map(({switch:p})=>p.replace("$1",c)).join(" / "),cancel:f.map(({cancel:p})=>p).join(" / ")}}return null}),s=k(()=>a.value?t.path.replace(o.value,a.value.localePath):null),l=()=>{As.value[o.value]=!0,r.value=!1};return pe(()=>{const c=Ma(document.body);As.value[o.value]||(a.value?Ts==="direct"?n.replace(s.value):Ts==="modal"?r.value=!0:r.value=!1:r.value=!1),re(r,u=>{c.value=u},{immediate:!0}),Vn(()=>{c.value=!1})}),()=>r.value?d(Ta,{name:"lang-modal-fade"},()=>{var c,u,f;return r.value?[d("div",{key:"mask",class:"lang-modal-mask"}),d("div",{key:"popup",class:"lang-modal-wrapper"},[d("div",{class:"lang-modal-content"},(c=i.value)==null?void 0:c.hint.map(p=>d("p",p))),d("button",{type:"button",class:"lang-modal-action primary",onClick:()=>{l(),n.replace(s.value)}},(u=i.value)==null?void 0:u.switch),d("button",{type:"button",class:"lang-modal-action",onClick:()=>l()},(f=i.value)==null?void 0:f.cancel)])]:[]}):null}}),p0=Ne({setup(){},rootComponents:[f0]});const Ro=[bp,Am,Pm,$m,Vm,Hm,Km,iv,pv,mv,kv,xv,X1,l0,d0,p0],h0=[["v-2d0a870d","/en/",{y:"h",t:"Home",i:"iconfont icon-home"},["/en/README.md"]],["v-082946dd","/en/community.html",{y:"a",t:"Join Community",i:"iconfont icon-community",O:8},[":md"]],["v-038e810e","/en/i18n.html",{y:"a",t:"Localization",i:"iconfont icon-network",O:7},[":md"]],["v-ba407326","/en/menu.html",{y:"a",t:"Site Menu",I:0},[":md"]],["v-586858ed","/en/project.html",{y:"a",t:"Project",i:"iconfont icon-workingDirectory",O:6},[":md"]],["v-0c01f6a4","/en/quick-start.html",{y:"a",t:"Quick Start",i:"iconfont icon-play",O:5},[":md"]],["v-23b9870a","/en/side-load.html",{y:"a",t:""},[":md"]],["v-7d29d7d8","/en/star-request.html",{y:"a",t:""},[":md"]],["v-2d0ad528","/zh/",{y:"h",t:"首页",i:"iconfont icon-home"},["/zh/README.md"]],["v-5cad49b8","/zh/community.html",{y:"a",t:"加入用户社区",i:"iconfont icon-community",O:8},[":md"]],["v-27c4e153","/zh/i18n.html",{y:"a",t:"国际化支持",i:"iconfont icon-network",O:7},[":md"]],["v-71d3b29c","/zh/menu.html",{y:"a",t:"全站目录",I:0},[":md"]],["v-6c355688","/zh/project.html",{y:"a",t:"项目说明",i:"iconfont icon-workingDirectory",O:6},[":md"]],["v-4f90aebf","/zh/quick-start.html",{y:"a",t:"快速开始",i:"iconfont icon-play",O:5},[":md"]],["v-783d89e5","/zh/side-load.html",{y:"a",t:""},[":md"]],["v-a91bb9c6","/zh/star-request.html",{y:"a",t:""},[":md"]],["v-1bd4ef83","/en/advanced/FAQ.html",{y:"a",t:"FAQ",i:"iconfont icon-ask",O:1},[":md"]],["v-5c3f740a","/en/advanced/Gacha-system-and-export-principal.html",{y:"a",t:"祈愿系统与导出原理",i:"iconfont icon-read",O:8},[":md"]],["v-5f449840","/en/advanced/",{y:"a",t:"Advanced",O:2},["/en/advanced/README.md"]],["v-e14c56e4","/en/advanced/dependency.html",{y:"a",t:"Install Dependency Manually",i:"iconfont icon-structure",O:6},[":md"]],["v-1a028d16","/en/advanced/exceptions.html",{y:"a",t:"Common Program Exceptions",i:"iconfont icon-warn",O:2},[":md"]],["v-bd668802","/en/advanced/get-stoken-cookie-from-the-third-party.html",{y:"a",t:"使用第三方工具获取有 Stoken 的 cookie",i:"iconfont icon-read",O:7},[":md"]],["v-51647c4a","/en/advanced/known-issue.html",{y:"a",t:"Known Issue",i:"iconfont icon-tool",O:3},[":md"]],["v-bbae7dd2","/en/advanced/uninstall.html",{y:"a",t:"Uninstall Snap Hutao",i:"iconfont icon-delete",O:9},[":md"]],["v-f88d343e","/en/development/",{y:"a",t:"Open Source Development",O:3},["/en/development/README.md"]],["v-4c2cca8b","/en/development/contribute.html",{y:"a",t:"Contribute Your Code",i:"iconfont icon-code",O:2},[":md"]],["v-32bb1805","/en/development/platform.html",{y:"a",t:"Hutao Open Platform",i:"iconfont icon-vscode",O:1},[":md"]],["v-30f089b6","/en/features/",{y:"a",t:"Features",O:1},["/en/features/README.md"]],["v-699a13b0","/en/features/achievements.html",{y:"a",t:"Achievement Management",O:5},[":md"]],["v-f3692af4","/en/features/character-data.html",{y:"a",t:"My Characters",O:7},[":md"]],["v-10108380","/en/features/character-wiki.html",{y:"a",t:"Character WIKI",O:10},[":md"]],["v-36ceadac","/en/features/dashboard.html",{y:"a",t:"Home Dashboard",O:2},[":md"]],["v-83f6294a","/en/features/develop-plan.html",{y:"a",t:"Development Plan",O:9},[":md"]],["v-7839fe83","/en/features/game-launcher.html",{y:"a",t:"Game Launcher",O:3},[":md"]],["v-0106e0dc","/en/features/hutao-API.html",{y:"a",t:"Hutao Database / Abyss Record",O:8},[":md"]],["v-639b3ef9","/en/features/hutao-settings.html",{y:"a",t:"Software Settings",O:14},[":md"]],["v-03aaffb1","/en/features/mhy-account-switch.html",{y:"a",t:"MiHoYo BBS Account Switch",O:13},[":md"]],["v-1e98d471","/en/features/monster-wiki.html",{y:"a",t:"Monster WIKI",O:12},[":md"]],["v-124743a4","/en/features/real-time-notes.html",{y:"a",t:"Real-time Notes",O:6},[":md"]],["v-3b7edd61","/en/features/setup.html",{y:"a",t:"Initial Setup Guide",O:1},[":md"]],["v-e30b3c46","/en/features/weapon-wiki.html",{y:"a",t:"Weapon WIKI",O:11},[":md"]],["v-b8e3a2b8","/en/features/wish-export.html",{y:"a",t:"Wish History",O:4},[":md"]],["v-a4f9d2c4","/en/statements/",{y:"a",t:"Statements",O:4},["/en/statements/README.md"]],["v-45ceb024","/en/statements/bug-report.html",{y:"a",t:"Submit Bug Report",i:"iconfont icon-debug",O:2},[":md"]],["v-b4085a44","/en/statements/privacy-notice.html",{y:"a",t:"User Data and Privacy Notice",i:"iconfont icon-license",O:3},[":md"]],["v-b1c7a1c2","/en/statements/tos.html",{y:"a",t:"User Agreement and Legal Notices",i:"iconfont icon-license",O:4},[":md"]],["v-52f43e3b","/en/statements/update-log.html",{y:"a",t:"Update Logs",i:"iconfont icon-update",O:1},[":md"]],["v-4a1d3ac8","/zh/advanced/FAQ.html",{y:"a",t:"常见问题",i:"iconfont icon-ask",O:1},[":md"]],["v-b0dd6b00","/zh/advanced/Gacha-system-and-export-principal.html",{y:"a",t:"祈愿系统与导出原理",i:"iconfont icon-read",O:8},[":md"]],["v-16d7d7b6","/zh/advanced/",{y:"a",t:"高级",O:2},["/zh/advanced/README.md"]],["v-37e841a9","/zh/advanced/dependency.html",{y:"a",t:"手动安装依赖项",i:"iconfont icon-structure",O:6},[":md"]],["v-c8e5b2e0","/zh/advanced/exceptions.html",{y:"a",t:"常见的程序异常",i:"iconfont icon-warn",O:2},[":md"]],["v-6892c29a","/zh/advanced/get-stoken-cookie-from-the-third-party.html",{y:"a",t:"使用第三方工具获取有 Stoken 的 cookie",i:"iconfont icon-read",O:7},[":md"]],["v-8ab89ae2","/zh/advanced/known-issue.html",{y:"a",t:"已知问题",i:"iconfont icon-tool",O:3},[":md"]],["v-a04a76c8","/zh/advanced/uninstall.html",{y:"a",t:"卸载胡桃工具箱",i:"iconfont icon-delete",O:9},[":md"]],["v-d0f33908","/zh/development/",{y:"a",t:"开源开发",O:3},["/zh/development/README.md"]],["v-62778390","/zh/development/contribute.html",{y:"a",t:"贡献你的代码",i:"iconfont icon-code",O:2},[":md"]],["v-c80b636c","/zh/development/platform.html",{y:"a",t:"胡桃开放平台",i:"iconfont icon-vscode",O:1},[":md"]],["v-56d3ae80","/zh/development/symposium1.html",{y:"a",t:"第一期开发组座谈会",I:0},[":md"]],["v-5369fd42","/zh/development/symposium2.html",{y:"a",t:"第二期开发组座谈会",I:0},[":md"]],["v-0bbe1b6a","/zh/features/",{y:"a",t:"功能指南",O:1},["/zh/features/README.md"]],["v-2841a60b","/zh/features/achievements.html",{y:"a",t:"成就管理",O:5},[":md"]],["v-3957d221","/zh/features/character-data.html",{y:"a",t:"属性统计",O:7},[":md"]],["v-a9f7b44a","/zh/features/character-wiki.html",{y:"a",t:"角色资料",O:10},[":md"]],["v-1b6aa6a2","/zh/features/dashboard.html",{y:"a",t:"首页仪表盘",O:2},[":md"]],["v-7cac7db6","/zh/features/develop-plan.html",{y:"a",t:"养成计划",O:9},[":md"]],["v-e2f690f0","/zh/features/game-launcher.html",{y:"a",t:"高级启动器",O:3},[":md"]],["v-0eb8e461","/zh/features/hutao-API.html",{y:"a",t:"胡桃数据库/深渊统计",O:8},[":md"]],["v-16a7a694","/zh/features/hutao-settings.html",{y:"a",t:"软件设置",O:14},[":md"]],["v-04b421cc","/zh/features/mhy-account-switch.html",{y:"a",t:"米游社多帐号切换",O:13},[":md"]],["v-457f3268","/zh/features/monster-wiki.html",{y:"a",t:"怪物资料",O:12},[":md"]],["v-b5462c1a","/zh/features/real-time-notes.html",{y:"a",t:"实时便笺",O:6},[":md"]],["v-0e3d2934","/zh/features/setup.html",{y:"a",t:"初始化引导",O:1},[":md"]],["v-108ccfbc","/zh/features/weapon-wiki.html",{y:"a",t:"武器资料",O:11},[":md"]],["v-0ccd64e9","/zh/features/wish-export.html",{y:"a",t:"祈愿记录",O:4},[":md"]],["v-c4bb0cba","/zh/statements/",{y:"a",t:"声明和公告",O:4},["/zh/statements/README.md"]],["v-c87f8b6e","/zh/statements/bug-report.html",{y:"a",t:"提交 BUG 报告",i:"iconfont icon-debug",O:2},[":md"]],["v-70e6808e","/zh/statements/privacy-notice.html",{y:"a",t:"用户数据和隐私权益",i:"iconfont icon-license",O:3},[":md"]],["v-647ebd24","/zh/statements/tos.html",{y:"a",t:"用户使用协议和法律声明",i:"iconfont icon-license",O:4},[":md"]],["v-119bd096","/zh/statements/update-log.html",{y:"a",t:"更新日志",i:"iconfont icon-update",O:1},[":md"]],["v-3706649a","/404.html",{y:"p",t:""},[]],["v-8daa1a0e","/",{y:"p",t:"Home"},[]]];var ks=W({name:"Vuepress",setup(){const e=hp();return()=>d(e.value)}}),m0=()=>h0.reduce((e,[t,n,o,r])=>(e.push({name:t,path:n,component:ks,meta:o},{path:n.endsWith("/")?n+"index.html":n.substring(0,n.length-5),redirect:n},...r.map(a=>({path:a===":md"?n.substring(0,n.length-5)+".md":a,redirect:n}))),e),[{name:"404",path:"/:catchAll(.*)",component:ks}]),v0=Np,g0=()=>{const e=yh({history:v0(ka("/")),routes:m0(),scrollBehavior:(t,n,o)=>o||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{var o;(t.path!==n.path||n===wt)&&([t.meta._data]=await Promise.all([yt.resolvePageData(t.name),(o=xl[t.name])==null?void 0:o.__asyncLoader()]))}),e},_0=e=>{e.component("ClientOnly",rr),e.component("Content",zl)},b0=(e,t,n)=>{const o=es(()=>t.currentRoute.value.path),r=es(()=>yt.resolveRouteLocale(vn.value.locales,o.value)),a=Fh(o,()=>t.currentRoute.value.meta._data),i=k(()=>yt.resolveLayouts(n)),s=k(()=>yt.resolveSiteLocaleData(vn.value,r.value)),l=k(()=>yt.resolvePageFrontmatter(a.value)),c=k(()=>yt.resolvePageHeadTitle(a.value,s.value)),u=k(()=>yt.resolvePageHead(c.value,l.value,s.value)),f=k(()=>yt.resolvePageLang(a.value,s.value)),p=k(()=>yt.resolvePageLayout(a.value,i.value));return e.provide(up,i),e.provide(Dl,a),e.provide($l,l),e.provide(pp,c),e.provide(Ml,u),e.provide(Nl,f),e.provide(Vl,p),e.provide(La,r),e.provide(Bl,s),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>l.value},$head:{get:()=>u.value},$headTitle:{get:()=>c.value},$lang:{get:()=>f.value},$page:{get:()=>a.value},$routeLocale:{get:()=>r.value},$site:{get:()=>vn.value},$siteLocale:{get:()=>s.value},$withBase:{get:()=>Me}}),{layouts:i,pageData:a,pageFrontmatter:l,pageHead:u,pageHeadTitle:c,pageLang:f,pageLayout:p,routeLocale:r,siteData:vn,siteLocaleData:s}},y0=()=>{const e=fp(),t=nr(),n=G([]),o=()=>{e.value.forEach(a=>{const i=w0(a);i&&n.value.push(i)})},r=()=>{document.documentElement.lang=t.value,n.value.forEach(a=>{a.parentNode===document.head&&document.head.removeChild(a)}),n.value.splice(0,n.value.length),e.value.forEach(a=>{const i=E0(a);i!==null&&(document.head.appendChild(i),n.value.push(i))})};Zt(vp,r),pe(()=>{o(),r(),re(()=>e.value,r)})},w0=([e,t,n=""])=>{const o=Object.entries(t).map(([s,l])=>se(l)?`[${s}=${JSON.stringify(l)}]`:l===!0?`[${s}]`:"").join(""),r=`head > ${e}${o}`;return Array.from(document.querySelectorAll(r)).find(s=>s.innerText===n)||null},E0=([e,t,n])=>{if(!se(e))return null;const o=document.createElement(e);return Aa(t)&&Object.entries(t).forEach(([r,a])=>{se(a)?o.setAttribute(r,a):a===!0&&o.setAttribute(r,"")}),se(n)&&o.appendChild(document.createTextNode(n)),o},T0=Zf,A0=async()=>{var n;const e=T0({name:"VuepressApp",setup(){var o;y0();for(const r of Ro)(o=r.setup)==null||o.call(r);return()=>[d(Xl),...Ro.flatMap(({rootComponents:r=[]})=>r.map(a=>d(a)))]}}),t=g0();_0(e),b0(e,t,Ro);for(const o of Ro)await((n=o.enhance)==null?void 0:n.call(o,{app:e,router:t,siteData:vn}));return e.use(t),{app:e,router:t}};A0().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{po as A,L0 as B,R0 as C,Ii as D,Ae as E,qe as F,I0 as G,as as H,Zt as I,sn as J,$0 as K,x0 as L,bl as a,yl as b,C0 as c,A0 as createVueApp,ke as d,S0 as e,pe as f,W as g,G as h,re as i,ga as j,O0 as k,we as l,k as m,oa as n,of as o,P0 as p,af as q,ct as r,it as s,k0 as t,D0 as u,ra as v,bd as w,d as x,Da as y,Vn as z}; + */const ce={settings:{minimum:.08,easing:"ease",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,barSelector:'[role="bar"]',parent:"body",template:'
'},status:null,set:e=>{const t=ce.isStarted();e=kr(e,ce.settings.minimum,1),ce.status=e===1?null:e;const n=ce.render(!t),o=n.querySelector(ce.settings.barSelector),r=ce.settings.speed,a=ce.settings.easing;return n.offsetWidth,Fm(i=>{Io(o,{transform:"translate3d("+cs(e)+"%,0,0)",transition:"all "+r+"ms "+a}),e===1?(Io(n,{transition:"none",opacity:"1"}),n.offsetWidth,setTimeout(function(){Io(n,{transition:"all "+r+"ms linear",opacity:"0"}),setTimeout(function(){ce.remove(),i()},r)},r)):setTimeout(()=>i(),r)}),ce},isStarted:()=>typeof ce.status=="number",start:()=>{ce.status||ce.set(0);const e=()=>{setTimeout(()=>{ce.status&&(ce.trickle(),e())},ce.settings.trickleSpeed)};return ce.settings.trickle&&e(),ce},done:e=>!e&&!ce.status?ce:ce.inc(.3+.5*Math.random()).set(1),inc:e=>{let t=ce.status;return t?(typeof e!="number"&&(e=(1-t)*kr(Math.random()*t,.1,.95)),t=kr(t+e,0,.994),ce.set(t)):ce.start()},trickle:()=>ce.inc(Math.random()*ce.settings.trickleRate),render:e=>{if(ce.isRendered())return document.getElementById("nprogress");us(document.documentElement,"nprogress-busy");const t=document.createElement("div");t.id="nprogress",t.innerHTML=ce.settings.template;const n=t.querySelector(ce.settings.barSelector),o=e?"-100":cs(ce.status||0),r=document.querySelector(ce.settings.parent);return Io(n,{transition:"all 0 linear",transform:"translate3d("+o+"%,0,0)"}),r!==document.body&&us(r,"nprogress-custom-parent"),r==null||r.appendChild(t),t},remove:()=>{ds(document.documentElement,"nprogress-busy"),ds(document.querySelector(ce.settings.parent),"nprogress-custom-parent");const e=document.getElementById("nprogress");e&&Bm(e)},isRendered:()=>!!document.getElementById("nprogress")},kr=(e,t,n)=>en?n:e,cs=e=>(-1+e)*100,Fm=function(){const e=[];function t(){const n=e.shift();n&&n(t)}return function(n){e.push(n),e.length===1&&t()}}(),Io=function(){const e=["Webkit","O","Moz","ms"],t={};function n(i){return i.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(s,l){return l.toUpperCase()})}function o(i){const s=document.body.style;if(i in s)return i;let l=e.length;const c=i.charAt(0).toUpperCase()+i.slice(1);let u;for(;l--;)if(u=e[l]+c,u in s)return u;return i}function r(i){return i=n(i),t[i]??(t[i]=o(i))}function a(i,s,l){s=r(s),i.style[s]=l}return function(i,s){for(const l in s){const c=s[l];c!==void 0&&Object.prototype.hasOwnProperty.call(s,l)&&a(i,l,c)}}}(),Ec=(e,t)=>(typeof e=="string"?e:Na(e)).indexOf(" "+t+" ")>=0,us=(e,t)=>{const n=Na(e),o=n+t;Ec(n,t)||(e.className=o.substring(1))},ds=(e,t)=>{const n=Na(e);if(!Ec(e,t))return;const o=n.replace(" "+t+" "," ");e.className=o.substring(1,o.length-1)},Na=e=>(" "+(e.className||"")+" ").replace(/\s+/gi," "),Bm=e=>{e&&e.parentNode&&e.parentNode.removeChild(e)};const zm=()=>{pe(()=>{const e=De(),t=new Set;t.add(e.currentRoute.value.path),e.beforeEach(n=>{t.has(n.path)||ce.start()}),e.afterEach(n=>{t.add(n.path),ce.done()})})},Hm=Ne({setup(){zm()}}),jm=JSON.parse(`{"encrypt":{},"author":{"name":"DGP-Studio","url":"https://github.com/DGP-Studio"},"logo":"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01vK3m2w1g6duwt8quS_!!1797064093.png","repo":"DGP-Studio/Snap.Hutao","pageInfo":["Author","Original","Date","Category","Tag","ReadingTime"],"docsRepo":"DGP-Studio/Snap.Hutao.Docs","docsDir":"docs","locales":{"/zh/":{"lang":"zh-CN","navbarLocales":{"langName":"简体中文","selectLangAriaLabel":"选择语言"},"metaLocales":{"author":"作者","date":"写作日期","origin":"原创","views":"访问量","category":"分类","tag":"标签","readingTime":"阅读时间","words":"字数","toc":"此页内容","prev":"上一页","next":"下一页","lastUpdated":"上次编辑于","contributors":"贡献者","editLink":"在 GitHub 上编辑此页","print":"打印"},"outlookLocales":{"themeColor":"主题色","darkmode":"外观","fullscreen":"全屏"},"routeLocales":{"skipToContent":"跳至主要內容","notFoundTitle":"页面不存在","notFoundMsg":["这里什么也没有","我们是怎么来到这儿的?","这 是 四 零 四 !","看起来你访问了一个失效的链接"],"back":"返回上一页","home":"带我回家","openInNewWindow":"Open in new window"},"navbar":["/zh/",{"text":"文档","icon":"iconfont icon-article","link":"/zh/menu.html"},{"text":"下载","icon":"iconfont icon-install","link":"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52"},{"text":"加入用户社区","icon":"iconfont icon-community","link":"/zh/community"},{"text":"服务可用性","icon":"iconfont icon-define","link":"https://status.hut.ao/"}],"sidebar":{"/zh/":["","project","i18n","quick-start",{"icon":"iconfont icon-read","text":"功能指南","prefix":"features/","children":"structure"},{"icon":"iconfont icon-advance","text":"高级","prefix":"advanced/","children":"structure"},{"icon":"iconfont icon-github","text":"开源开发","prefix":"development/","children":"structure"},{"icon":"iconfont icon-article","text":"声明和公告","prefix":"statements/","children":"structure"}]},"footer":"用开源社区力量为原神 PC 端玩家带来最好的游戏体验","displayFooter":true},"/en/":{"lang":"en-US","navbarLocales":{"langName":"English","selectLangAriaLabel":"Select language"},"metaLocales":{"author":"Author","date":"Writing Date","origin":"Original","views":"Page views","category":"Category","tag":"Tag","readingTime":"Reading Time","words":"Words","toc":"On This Page","prev":"Prev","next":"Next","lastUpdated":"Last update","contributors":"Contributors","editLink":"Edit this page on GitHub","print":"Print"},"outlookLocales":{"themeColor":"Theme Color","darkmode":"Theme Mode","fullscreen":"Full Screen"},"routeLocales":{"skipToContent":"Skip to main content","notFoundTitle":"Page not found","notFoundMsg":["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],"back":"Go back","home":"Take me home","openInNewWindow":"Open in new window"},"navbar":["/en/",{"text":"Document","icon":"iconfont icon-article","link":"/en/menu.html"},{"text":"Download","icon":"iconfont icon-install","link":"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52"},{"text":"Community","icon":"iconfont icon-community","link":"/en/community"},{"text":"Service Availability","icon":"iconfont icon-define","link":"https://status.hut.ao/"}],"sidebar":{"/en/":["","project","i18n","quick-start",{"icon":"iconfont icon-read","text":"Features","prefix":"features/","children":"structure"},{"icon":"iconfont icon-advance","text":"Advanced","prefix":"advanced/","children":"structure"},{"icon":"iconfont icon-github","text":"Open Source Development","prefix":"development/","children":"structure"},{"icon":"iconfont icon-article","text":"Statements","prefix":"statements/","children":"structure"}]},"footer":"Be the best Genshin Impact tool","displayFooter":true},"/":{"lang":"en-US","navbarLocales":{"langName":"English","selectLangAriaLabel":"Select language"},"metaLocales":{"author":"Author","date":"Writing Date","origin":"Original","views":"Page views","category":"Category","tag":"Tag","readingTime":"Reading Time","words":"Words","toc":"On This Page","prev":"Prev","next":"Next","lastUpdated":"Last update","contributors":"Contributors","editLink":"Edit this page","print":"Print"},"outlookLocales":{"themeColor":"Theme Color","darkmode":"Theme Mode","fullscreen":"Full Screen"},"routeLocales":{"skipToContent":"Skip to main content","notFoundTitle":"Page not found","notFoundMsg":["There’s nothing here.","How did we get here?","That’s a Four-Oh-Four.","Looks like we've got some broken links."],"back":"Go back","home":"Take me home","openInNewWindow":"Open in new window"}}}}`),Wm=G(jm),Tc=()=>Wm,Ac=Symbol(""),Um=()=>{const e=we(Ac);if(!e)throw new Error("useThemeLocaleData() is called without provider.");return e},qm=(e,t)=>{const{locales:n,...o}=e;return{...o,...n==null?void 0:n[t]}},Km=Ne({enhance({app:e}){const t=Tc(),n=e._context.provides[La],o=k(()=>qm(t.value,n.value));e.provide(Ac,o),Object.defineProperties(e.config.globalProperties,{$theme:{get(){return t.value}},$themeLocale:{get(){return o.value}}})}}),Gm={"Content-Type":"application/json"},Ym=({serverURL:e,lang:t,paths:n,signal:o})=>(({serverURL:r,lang:a,paths:i,type:s,signal:l})=>fetch(`${r}/article?path=${encodeURIComponent(i.join(","))}&type=${encodeURIComponent(s.join(","))}&lang=${a}`,{signal:l}).then(c=>c.json()))({serverURL:e,lang:t,paths:n,type:["time"],signal:o}).then(r=>Array.isArray(r)?r:[r]),Jm=e=>(({serverURL:t,lang:n,path:o,type:r,action:a})=>fetch(`${t}/article?lang=${n}`,{method:"POST",headers:Gm,body:JSON.stringify({path:o,type:r,action:a})}).then(i=>i.json()))({...e,type:"time",action:"inc"}),fs=e=>{const t=((n="")=>n.replace(/\/$/u,""))(e);return/^(https?:)?\/\//.test(t)?t:`https://${t}`},Qm=e=>{e.name!=="AbortError"&&console.error(e.message)},ps=e=>e.dataset.path||e.getAttribute("id"),hs=(e,t)=>{t.forEach((n,o)=>{n.innerText=e[o].toString()})},Xm=({serverURL:e,path:t=window.location.pathname,selector:n=".waline-pageview-count",update:o=!0,lang:r=navigator.language})=>{const a=new AbortController,i=Array.from(document.querySelectorAll(n)),s=c=>{const u=ps(c);return u!==null&&t!==u},l=c=>Ym({serverURL:fs(e),paths:c.map(u=>ps(u)||t),lang:r,signal:a.signal}).then(u=>hs(u,c)).catch(Qm);if(o){const c=i.filter(f=>!s(f)),u=i.filter(s);Jm({serverURL:fs(e),path:t,lang:r}).then(f=>hs(new Array(c.length).fill(f),c)),u.length&&l(u)}else l(i);return a.abort.bind(a)};const Zm={provider:"Waline",dark:'html[data-theme="dark"]',serverURL:"https://comments.snapgenshin.com",emoji:["//unpkg.com/@waline/emojis@1.1.0/weibo","//unpkg.com/@waline/emojis@1.1.0/bilibili","//unpkg.com/@waline/emojis@1.1.0/bmoji","//unpkg.com/@waline/emojis@1.1.0/qq","//unpkg.com/@waline/emojis@1.1.0/tieba"],requiredMeta:["mail"],reaction:!1};let ev=Zm;const kc=Symbol(""),Lc=()=>we(kc),tv=Lc,nv=e=>{e.provide(kc,ev)},ov={"/zh/":{placeholder:"请留言。(填写邮箱可在被回复时收到邮件提醒)"},"/en/":{placeholder:"Write a comment here (Fill in the email address to receive an email notification when being replied)"},"/":{placeholder:"Write a comment here (Fill in the email address to receive an email notification when being replied)"}};_(()=>import("./waline-meta-56fbc549.js"),[]);var rv=W({name:"WalineComment",props:{identifier:{type:String,required:!0}},setup(e){const t=tv(),n=Le(),o=nr(),r=cn(ov);let a;const i=!!t.serverURL,s=k(()=>{if(!i)return!1;const c=t.pageview!==!1,u=n.value.pageview;return!!u||c!==!1&&u!==!1}),l=k(()=>({lang:o.value==="zh-CN"?"zh-CN":"en",locale:r.value,dark:"html.dark",...t,path:e.identifier}));return pe(()=>{re(()=>e.identifier,()=>{a==null||a(),s.value&&sn().then(()=>{setTimeout(()=>{a=Xm({serverURL:t.serverURL,path:e.identifier})},t.delay||800)})},{immediate:!0})}),()=>i?d("div",{id:"comment",class:"waline-wrapper"},d($({loader:async()=>(await _(()=>import("./component-638e0776.js"),[])).Waline,loadingComponent:Sa}),l.value)):null}}),av=W({name:"CommentService",props:{darkmode:Boolean},setup(e){const t=Lc(),n=he(),o=Le(),r=t.comment!==!1,a=k(()=>o.value.comment||r&&o.value.comment!==!1);return()=>d(rv,{identifier:o.value.commentID||n.value.path,darkmode:e.darkmode,style:{display:a.value?"block":"none"}})}}),iv=Ne({enhance:({app:e})=>{nv(e),e.component("CommentService",av)}});const sv=800,lv=2e3,cv={"/zh/":{copy:"复制代码",copied:"已复制",hint:"复制成功"},"/en/":{copy:"Copy code",copied:"Copied",hint:"Copied successfully"},"/":{copy:"Copy code",copied:"Copied",hint:"Copied successfully"}},uv=!1,dv=['.theme-hope-content div[class*="language-"] pre'],ms=!1,Lr=new Map,fv=()=>{const{copy:e}=nm({legacy:!0}),t=cn(cv),n=he(),o=Vh(),r=s=>{if(!s.hasAttribute("copy-code-registered")){const l=document.createElement("button");l.type="button",l.classList.add("copy-code-button"),l.innerHTML='
',l.setAttribute("aria-label",t.value.copy),l.setAttribute("data-copied",t.value.copied),s.parentElement&&s.parentElement.insertBefore(l,s),s.setAttribute("copy-code-registered","")}},a=()=>sn().then(()=>new Promise(s=>{setTimeout(()=>{dv.forEach(l=>{document.querySelectorAll(l).forEach(r)}),s()},sv)})),i=(s,l,c)=>{let{innerText:u=""}=l;/language-(shellscript|shell|bash|sh|zsh)/.test(s.classList.toString())&&(u=u.replace(/^ *(\$|>) /gm,"")),e(u).then(()=>{c.classList.add("copied"),clearTimeout(Lr.get(c));const f=setTimeout(()=>{c.classList.remove("copied"),c.blur(),Lr.delete(c)},lv);Lr.set(c,f)})};pe(()=>{(!o.value||ms)&&a(),Ie("click",s=>{const l=s.target;if(l.matches('div[class*="language-"] > button.copy')){const c=l.parentElement,u=l.nextElementSibling;u&&i(c,u,l)}else if(l.matches('div[class*="language-"] div.copy-icon')){const c=l.parentElement,u=c.parentElement,f=c.nextElementSibling;f&&i(u,f,c)}}),re(()=>n.value.path,()=>{(!o.value||ms)&&a()})})};var pv=Ne({setup:()=>{fv()}});const Or=Da("VUEPRESS_TAB_STORE",{});var hv=W({name:"Tabs",props:{active:{type:Number,default:0},data:{type:Array,required:!0},id:{type:String,required:!0},tabId:{type:String,default:""}},slots:Object,setup(e,{slots:t}){const n=G(e.active),o=tt([]),r=()=>{e.tabId&&(Or.value[e.tabId]=e.data[n.value].id)},a=(c=n.value)=>{n.value=c{n.value=c>0?c-1:o.value.length-1,o.value[n.value].focus()},s=(c,u)=>{c.key===" "||c.key==="Enter"?(c.preventDefault(),n.value=u):c.key==="ArrowRight"?(c.preventDefault(),a()):c.key==="ArrowLeft"&&(c.preventDefault(),i()),r()},l=()=>{if(e.tabId){const c=e.data.findIndex(({id:u})=>Or.value[e.tabId]===u);if(c!==-1)return c}return e.active};return pe(()=>{n.value=l(),re(()=>Or.value[e.tabId],(c,u)=>{if(e.tabId&&c!==u){const f=e.data.findIndex(({id:p})=>p===c);f!==-1&&(n.value=f)}})}),()=>e.data.length?d("div",{class:"vp-tabs"},[d("div",{class:"vp-tabs-nav",role:"tablist"},e.data.map(({id:c},u)=>{const f=u===n.value;return d("button",{type:"button",ref:p=>{p&&(o.value[u]=p)},class:["vp-tab-nav",{active:f}],role:"tab","aria-controls":`tab-${e.id}-${u}`,"aria-selected":f,onClick:()=>{n.value=u,r()},onKeydown:p=>s(p,u)},t[`title${u}`]({value:c,isActive:f}))})),e.data.map(({id:c},u)=>{const f=u===n.value;return d("div",{class:["vp-tab",{active:f}],id:`tab-${e.id}-${u}`,role:"tabpanel","aria-expanded":f},t[`tab${u}`]({value:c,isActive:f}))})]):null}});const mv=Ne({enhance:({app:e})=>{e.component("Tabs",hv)},setup:()=>{}});let vv={};const Oc=Symbol(""),gv=()=>we(Oc),_v=e=>{e.provide(Oc,vv)};const bv=".theme-hope-content :not(a) > img:not([no-view])",yv={"/zh/":{closeTitle:"关闭",downloadTitle:"下载图片",fullscreenTitle:"切换全屏",zoomTitle:"缩放",arrowPrevTitle:"上一个 (左箭头)",arrowNextTitle:"下一个 (右箭头)"},"/en/":{closeTitle:"Close",downloadTitle:"Download Image",fullscreenTitle:"Switch to full screen",zoomTitle:"Zoom in/out",arrowPrevTitle:"Prev (Arrow Left)",arrowNextTitle:"Next (Arrow Right)"},"/":{closeTitle:"Close",downloadTitle:"Download Image",fullscreenTitle:"Switch to full screen",zoomTitle:"Zoom in/out",arrowPrevTitle:"Prev (Arrow Left)",arrowNextTitle:"Next (Arrow Right)"}},wv=800,Ev='
',Tv=e=>se(e)?Array.from(document.querySelectorAll(e)):e.map(t=>Array.from(document.querySelectorAll(t))).flat(),Cc=e=>new Promise((t,n)=>{e.complete?t({type:"image",element:e,src:e.src,width:e.naturalWidth,height:e.naturalHeight,alt:e.alt,msrc:e.src}):(e.onload=()=>t(Cc(e)),e.onerror=o=>n(o))}),Av=()=>{const{isSupported:e,toggle:t}=$a(),n=gv(),o=cn(yv),r=he();let a;const i=l=>{l.on("uiRegister",()=>{e&&l.ui.registerElement({name:"fullscreen",order:7,isButton:!0,html:'',onClick:()=>{t()}}),l.ui.registerElement({name:"download",order:8,isButton:!0,tagName:"a",html:{isCustomSVG:!0,inner:'',outlineID:"pswp__icn-download"},onInit:(c,u)=>{c.setAttribute("download",""),c.setAttribute("target","_blank"),c.setAttribute("rel","noopener"),u.on("change",()=>{c.setAttribute("href",u.currSlide.data.src)})}}),l.ui.registerElement({name:"bulletsIndicator",className:"photo-swipe-bullets-indicator",appendTo:"wrapper",onInit:(c,u)=>{const f=[];let p=-1;for(let m=0;m{u.goTo(f.indexOf(E.target))},f.push(g),c.appendChild(g)}u.on("change",()=>{p>=0&&f[p].classList.remove("active"),f[u.currIndex].classList.add("active"),p=u.currIndex})}})})},s=()=>Promise.all([_(()=>import("./photoswipe.esm-1464cdb9.js"),[]),sn().then(()=>new Promise(l=>setTimeout(l,wv)).then(()=>Tv(bv)))]).then(([{default:l},c])=>{const u=c.map(f=>({html:Ev,element:f,msrc:f.src}));c.forEach((f,p)=>{const m=()=>{a=new l({preloaderDelay:0,showHideAnimationType:"zoom",...o.value,...n,dataSource:u,index:p,closeOnVerticalDrag:!0,wheelToZoom:!1}),i(a),a.addFilter("thumbEl",()=>f),a.addFilter("placeholderSrc",()=>f.src),a.init()};f.style.cursor="zoom-in",f.addEventListener("click",()=>{m()}),f.addEventListener("keypress",({key:g})=>{g==="Enter"&&m()})}),c.forEach((f,p)=>{Cc(f).then(m=>{u.splice(p,1,m),a==null||a.refreshSlideContent(p)})})});pe(()=>{Ie("wheel",()=>{a==null||a.close()}),s(),re(()=>r.value.path,()=>s())})};var kv=Ne({enhance:({app:e})=>{_v(e)},setup:()=>{Av()}});function Lv(e){return{all:e=e||new Map,on:function(t,n){var o=e.get(t);o?o.push(n):e.set(t,[n])},off:function(t,n){var o=e.get(t);o&&(n?o.splice(o.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var o=e.get(t);o&&o.slice().map(function(r){r(n)}),(o=e.get("*"))&&o.slice().map(function(r){r(t,n)})}}}const Sc=Symbol(""),Ov=()=>{const e=we(Sc);if(!e)throw new Error("usePWAEvent() is called without provider.");return e},Cv=async(e,t={},n=!0)=>{const{register:o}=await _(()=>import("./index-e32a7948.js"),[]);o(e,{ready(r){var a;n&&console.info("[Service Worker]: active"),(a=t.ready)==null||a.call(t,r)},registered(r){var a;n&&console.log("[Service Worker]: registered"),(a=t.registered)==null||a.call(t,r)},cached(r){var a;n&&console.log("[Service Worker]: cached"),(a=t.cached)==null||a.call(t,r)},async updatefound(r){var a;await navigator.serviceWorker.getRegistration()&&(n&&console.log("[Service Worker]: update found"),(a=t.updatefound)==null||a.call(t,r))},updated(r){var a;n&&console.log("[Service Worker]: updated"),(a=t.updated)==null||a.call(t,r)},offline(){var r;n&&console.log("[Service Worker]: offline"),(r=t.offline)==null||r.call(t)},error(r){var a;n&&console.error("[Service Worker]: ",r),(a=t.error)==null||a.call(t,r)}})},Sv=async e=>Cv(Me("service-worker.js"),{ready(t){e.emit("ready",t)},registered(t){e.emit("registered",t)},cached(t){e.emit("cached",t)},updatefound(t){e.emit("updatefound",t)},updated(t){const n="service-worker-version",o=Number(localStorage.getItem(n)||0);localStorage.setItem(n,(o+1).toString()),localStorage.removeItem("manifest"),e.emit("updated",t)},offline(){e.emit("offline")},error(t){e.emit("error",t)}}),Pv=()=>{const e=Lv();Zt(Sc,e),pe(async()=>{var n;let t=!1;(n=navigator.serviceWorker)!=null&&n.controller&&navigator.serviceWorker.addEventListener("controllerchange",()=>{t||(t=!0,window.location.reload())}),await Sv(e)})},Pc=()=>d(be,{name:"update"},()=>d("path",{d:"M949.949 146.25v255.826c0 21.981-13.989 35.97-35.97 35.97H658.154c-13.988 0-25.983-7.992-33.973-21.981-5.997-13.989-4-27.977 7.991-39.97l79.942-77.946c-55.954-51.973-121.918-77.955-199.863-77.955-37.975 0-75.95 8.002-113.924 21.99-37.975 15.985-67.948 37.976-91.934 63.957-25.982 23.987-47.973 53.96-63.957 91.934-29.983 73.955-29.983 153.895 0 227.85 15.984 37.976 37.975 67.947 63.957 91.934 23.986 25.982 53.959 47.973 91.934 63.956 37.974 13.989 75.95 21.991 113.924 21.991 45.967 0 87.942-9.998 127.913-29.982 41.976-17.99 75.951-45.967 101.931-83.943 7.993-4 11.994-5.995 13.989-5.995 5.997 0 9.998 1.994 13.988 5.995l77.958 77.946c3.989 4 5.986 7.993 5.986 11.994 0 1.994-1.996 5.995-3.99 11.994-43.973 51.962-93.941 91.934-151.9 117.914-53.958 25.983-115.92 39.972-185.874 39.972-61.961 0-119.921-11.984-169.89-33.973-57.96-25.985-105.923-57.963-139.896-93.943-35.98-33.972-67.958-81.936-93.94-139.897-45.967-101.93-45.967-237.846 0-339.777 25.982-57.96 57.96-105.923 93.94-139.896 33.973-35.98 81.936-67.958 139.896-93.94 49.968-21.99 107.928-33.974 169.89-33.974 55.963 0 109.923 9.988 161.885 29.973 53.97 21.99 101.933 51.963 139.908 89.938l73.954-73.944c9.987-9.998 23.987-13.988 39.971-8.002 13.988 8.002 21.98 19.995 21.98 33.984z"}));Pc.displayName="UpdateIcon";const Iv={"/zh/":{install:"安装",iOSInstall:"点击分享按钮然后点击“添加到主屏幕”",cancel:"取消",close:"关闭",prevImage:"上一张图片",nextImage:"下一张图片",desc:"详情",feature:"主要特色",explain:"该应用可以安装在你的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和你的操作系统安全地进行交互。",hint:"发现新内容可用",update:"新内容已就绪"},"/en/":{install:"Install",iOSInstall:"Tap the share button and then 'Add to Home Screen'",cancel:"Cancel",close:"Close",prevImage:"Previous Image",nextImage:"Next Image",desc:"Description",feature:"Key Features",explain:"This app can be installed on your PC or mobile device. This will allow this web app to look and behave like any other installed app. You will find it in your app lists and be able to pin it to your home screen, start menus or task bars. This installed web app will also be able to safely interact with other apps and your operating system. ",hint:"New content found.",update:"New content is available."},"/":{install:"Install",iOSInstall:"Tap the share button and then 'Add to Home Screen'",cancel:"Cancel",close:"Close",prevImage:"Previous Image",nextImage:"Next Image",desc:"Description",feature:"Key Features",explain:"This app can be installed on your PC or mobile device. This will allow this web app to look and behave like any other installed app. You will find it in your app lists and be able to pin it to your home screen, start menus or task bars. This installed web app will also be able to safely interact with other apps and your operating system. ",hint:"New content found.",update:"New content is available."}};var Rv=W({name:"SWHintPopup",slots:Object,setup(e,{slots:t}){const n=cn(Iv),o=G(!1),r=()=>{o.value&&(window.location.reload(!0),o.value=!1)};return pe(()=>{const a=Ov();a.on("updatefound",()=>{navigator.serviceWorker.getRegistration().then(i=>{i&&i.active&&(o.value=!0)})}),a.on("updated",()=>{o.value=!1})}),()=>d(Ot,{name:"popup"},()=>{var a;return((a=t.default)==null?void 0:a.call(t,{enabled:o.value,uninstall:r}))||(o.value?d("button",{type:"button",class:"sw-hint-popup",tabindex:0,onClick:()=>r()},[n.value.hint,d("span",{class:"icon-wrapper"},d(Pc))]):null)})}});const xv=Ne({setup:()=>{Pv()},rootComponents:[Rv]}),Ic=()=>{const e=he();return k(()=>e.value.readingTime??null)},Kr=typeof{"/zh/":{word:"约 $word 字",less1Minute:"小于 1 分钟",time:"大约 $time 分钟"},"/en/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"},"/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"}}>"u"?null:{"/zh/":{word:"约 $word 字",less1Minute:"小于 1 分钟",time:"大约 $time 分钟"},"/en/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"},"/":{word:"About $word words",less1Minute:"Less than 1 minute",time:"About $time min"}},Dv=(e,t)=>{const{minutes:n,words:o}=e,{less1Minute:r,word:a,time:i}=t;return{time:n<1?r:i.replace("$time",Math.round(n).toString()),words:a.replace("$word",o.toString())}},vs={words:"",time:""},$v=()=>Kr?cn(Kr):k(()=>null),Mv=()=>{if(typeof Kr>"u")return k(()=>vs);const e=Ic(),t=$v();return k(()=>e.value&&t.value?Dv(e.value,t.value):vs)},zn=()=>Tc(),ge=()=>Um(),ur=()=>k(()=>!!zn().value.pure);var gs=W({name:"EmptyComponent",setup:()=>()=>null});const Nv="719px",Vv="1440px",Fv="false",Va={mobileBreakPoint:Nv,pcBreakPoint:Vv,enableThemeColor:Fv},Fa={"/zh/features/":["setup","dashboard","game-launcher","wish-export","achievements","real-time-notes","character-data","hutao-API","develop-plan","character-wiki","weapon-wiki","monster-wiki","mhy-account-switch","hutao-settings"],"/zh/advanced/":["FAQ","exceptions","known-issue","dependency","get-stoken-cookie-from-the-third-party","Gacha-system-and-export-principal","uninstall"],"/zh/development/":["platform","contribute"],"/zh/statements/":["update-log","bug-report","privacy-notice","tos"],"/en/features/":["setup","dashboard","game-launcher","wish-export","achievements","real-time-notes","character-data","hutao-API","develop-plan","character-wiki","weapon-wiki","monster-wiki","mhy-account-switch","hutao-settings"],"/en/advanced/":["FAQ","exceptions","known-issue","dependency","get-stoken-cookie-from-the-third-party","Gacha-system-and-export-principal","uninstall"],"/en/development/":["platform","contribute"],"/en/statements/":["update-log","bug-report","privacy-notice","tos"],"/":[]},Rc=e=>{const{icon:t="",color:n,size:o}=e,r={};return n&&(r.color=n),o&&(r.height=Number.isNaN(Number(o))?o:`${o}px`),Fn(t)?d("img",{class:"icon",src:t,"no-view":"",style:r}):cr(t)?d("img",{class:"icon",src:Me(t),"no-view":"",style:r}):d(ct("FontIcon"),e)};Rc.displayName="HopeIcon";var He=Rc,At=(e=>(e.type="y",e.title="t",e.shortTitle="s",e.icon="i",e.author="a",e.date="d",e.localizedDate="l",e.category="c",e.tag="g",e.isEncrypted="n",e.isOriginal="o",e.readingTime="r",e.excerpt="e",e.sticky="u",e.cover="v",e.index="I",e.order="O",e))(At||{}),Bv=(e=>(e.article="a",e.home="h",e.slide="s",e.page="p",e))(Bv||{});const En=(e,t,n=!1)=>{let o=Ko(e,oc(encodeURI(t)));o.name==="404"&&(o=Ko(e,t));const{fullPath:r,meta:a,name:i}=o;return{text:!n&&a[At.shortTitle]?a[At.shortTitle]:a[At.title]||t,link:i==="404"?t:r,...a[At.icon]?{icon:a[At.icon]}:{}}},zv=()=>{const e=De(),t=je();return n=>{if(n)if(cr(n))t.path!==n&&e.push(n);else if(Fn(n)||Il(n))window&&window.open(n);else{const o=t.path.slice(0,t.path.lastIndexOf("/"));e.push(`${o}/${encodeURI(n)}`)}}},xc=()=>{const e=ge(),t=Le();return k(()=>{const{author:n}=t.value;return n?Xi(n):n===!1?[]:Xi(e.value.author,!1)})},Hv=()=>{const e=Le();return k(()=>Rh(e.value.category).map(t=>({name:t,path:""})))},jv=()=>{const e=Le();return k(()=>xh(e.value.tag).map(t=>({name:t,path:""})))},Wv=()=>{const e=Le(),t=he();return k(()=>{const n=Eh(e.value.date);if(n)return n;const{createdTime:o}=t.value.git||{};return o?new Date(o):null})},Uv=()=>{const e=ge(),t=he(),n=Le(),o=xc(),r=Hv(),a=jv(),i=Wv(),s=Ic(),l=Mv(),c=k(()=>({author:o.value,category:r.value,date:i.value,localizedDate:t.value.localizedDate,tag:a.value,isOriginal:n.value.isOriginal||!1,readingTime:s.value,readingTimeLocale:l.value,pageview:"pageview"in n.value?n.value.pageview:!0})),u=k(()=>"pageInfo"in n.value?n.value.pageInfo:"pageInfo"in e.value?e.value.pageInfo:null);return{info:c,items:u}},{mobileBreakPoint:qv,pcBreakPoint:Kv}=Va,_s=e=>e.endsWith("px")?Number(e.slice(0,-2)):null,dr=()=>{const e=G(!1),t=G(!1),n=()=>{e.value=window.innerWidth<=(_s(qv)??719),t.value=window.innerWidth>=(_s(Kv)??1440)};return pe(()=>{n(),Ie("resize",n,!1),Ie("orientationchange",n,!1)}),{isMobile:e,isPC:t}},Dc=Symbol(""),go=()=>{const e=we(Dc);if(!e)throw new Error("useDarkmode() is called without provider.");return e},Gv=e=>{const t=zn(),n=lm(),o=Da("vuepress-theme-hope-scheme","auto"),r=k(()=>t.value.darkmode||"switch"),a=k(()=>{const s=r.value;return s==="disable"?!1:s==="enable"?!0:s==="auto"?n.value:s==="toggle"?o.value==="dark":o.value==="dark"||o.value==="auto"&&n.value}),i=k(()=>{const s=r.value;return s==="switch"||s==="toggle"});e.provide(Dc,{canToggle:i,config:r,isDarkmode:a,status:o}),Object.defineProperties(e.config.globalProperties,{$isDarkmode:{get:()=>a.value}})},Yv=()=>{const{isDarkmode:e}=go(),t=(n=e.value)=>document.documentElement.setAttribute("data-theme",n?"dark":"light");pe(()=>{re(e,t,{immediate:!0})})};var Be=W({name:"AutoLink",inheritAttrs:!1,props:{config:{type:Object,required:!0},exact:Boolean,noExternalLinkIcon:Boolean},emits:["focusout"],slots:Object,setup(e,{attrs:t,emit:n,slots:o}){const r=je(),a=Fl(),i=Jo(e,"config"),s=k(()=>Fn(i.value.link)),l=k(()=>Il(i.value.link)||lp(i.value.link)),c=k(()=>l.value?void 0:i.value.target||(s.value?"_blank":void 0)),u=k(()=>c.value==="_blank"),f=k(()=>!s.value&&!l.value&&!u.value),p=k(()=>l.value?void 0:i.value.rel||(u.value?"noopener noreferrer":void 0)),m=k(()=>i.value.ariaLabel||i.value.text),g=k(()=>{if(e.exact)return!1;const A=Bn(a.value.locales);return A.length?A.every(w=>w!==i.value.link):i.value.link!=="/"}),E=k(()=>f.value?i.value.activeMatch?new RegExp(i.value.activeMatch).test(r.path):g.value?on(r.path,i.value.link):r.path===i.value.link:!1);return()=>{const{before:A,after:w,default:O}=o,{text:y,icon:T,link:N}=i.value;return f.value?d(ut,{to:N,"aria-label":m.value,...t,class:["nav-link",{active:E.value},t.class],onFocusout:()=>n("focusout")},()=>O?O():[A?A():d(He,{icon:T}),y,w==null?void 0:w()]):d("a",{href:N,rel:p.value,target:c.value,"aria-label":m.value,...t,class:["nav-link",t.class],onFocusout:()=>n("focusout")},O?O():[A?A():d(He,{icon:T}),y,e.noExternalLinkIcon?null:d(wc),w==null?void 0:w()])}}});const xn=(e,t,n=!1)=>"activeMatch"in t?new RegExp(t.activeMatch).test(e.path):Pa(e,t.link)?!0:t.children&&!n?t.children.some(o=>xn(e,o)):!1,$c=(e,t)=>t.type==="group"?t.children.some(n=>n.type==="group"?$c(e,n):n.type==="page"&&xn(e,n,!0))||"prefix"in t&&Pa(e,t.prefix):!1,Mc=(e,t)=>se(e.link)?d(Be,{...t,config:e}):d("p",t,[d(He,{icon:e.icon}),e.text]),Nc=e=>{const t=je();return e?d("ul",{class:"vp-sidebar-sub-headers"},e.map(n=>{const o=xn(t,n,!0);return d("li",{class:"vp-sidebar-sub-header"},[Mc(n,{class:["vp-sidebar-link","vp-heading",{active:o}]}),Nc(n.children)])})):null},Cr=(e="",t="")=>cr(t)?t:`${ap(e)}${t}`,Jv=(e,t)=>{const n=he();return{type:"heading",text:e.title,link:`${n.value.path}#${e.slug}`,children:Ba(e.children,t)}},Ba=(e,t)=>t>0?e.map(n=>Jv(n,t-1)):[],Vc=e=>{const t=he();return Ba(t.value.headers,e)},Gr=(e,t,n="")=>{const o=De(),r=he(),a=(i,s=n)=>{var c;const l=se(i)?En(o,Cr(s,i)):i.link?{...i,...Uo(i.link)?{}:{link:En(o,Cr(s,i.link)).link}}:i;if("children"in l){const u=Cr(s,l.prefix),f=l.children==="structure"?Fa[u]:l.children;return{type:"group",...l,prefix:u,children:f.map(p=>a(p,u))}}return{type:"page",...l,children:l.link===r.value.path?Ba(((c=r.value.headers[0])==null?void 0:c.level)===1?r.value.headers[0].children:r.value.headers,t):[]}};return e.map(i=>a(i))},Qv=(e,t)=>{const n=he(),o=Bn(e).sort((r,a)=>a.length-r.length);for(const r of o)if(on(decodeURI(n.value.path),r)){const a=e[r];return a?Gr(a==="structure"?Fa[r]:a==="heading"?Vc(t):a,t,r):[]}return console.warn(`${n.value.path} is missing sidebar config.`),[]},Xv=(e,t)=>{const n=It();return e===!1?[]:e==="heading"?Vc(t):e==="structure"?Gr(Fa[n.value],t,n.value):K(e)?Gr(e,t):Aa(e)?Qv(e,t):[]},Fc=Symbol(""),Zv=()=>{const e=Le(),t=ge(),n=k(()=>e.value.home?!1:e.value.sidebar??t.value.sidebar??"structure"),o=k(()=>e.value.headerDepth??t.value.headerDepth??2),r=k(()=>Xv(n.value,o.value));Zt(Fc,r)},za=()=>{const e=we(Fc);if(!e)throw new Error("useSidebarItems() is called without provider.");return e};var e1=W({name:"PageFooter",setup(){const e=Le(),t=ge(),n=xc(),o=k(()=>{const{copyright:i,footer:s}=e.value;return s!==!1&&!!(i||s||t.value.displayFooter)}),r=k(()=>{const{footer:i}=e.value;return i===!1?!1:se(i)?i:t.value.footer||""}),a=k(()=>"copyright"in e.value?e.value.copyright:"copyright"in t.value?t.value.copyright:n.value.length?`Copyright © ${new Date().getFullYear()} ${n.value[0].name}`:!1);return()=>o.value?d("footer",{class:"vp-footer-wrapper"},[r.value?d("div",{class:"vp-footer",innerHTML:r.value}):null,a.value?d("div",{class:"vp-copyright",innerHTML:a.value}):null]):null}}),Bc=W({name:"NavbarDropdownLink",props:{config:{type:Object,required:!0}},slots:Object,setup(e,{slots:t}){const n=he(),o=Jo(e,"config"),r=k(()=>o.value.ariaLabel||o.value.text),a=G(!1);re(()=>n.value.path,()=>{a.value=!1});const i=s=>{s.detail===0&&(a.value=!a.value)};return()=>{var s;return d("div",{class:["dropdown-wrapper",{open:a.value}]},[d("button",{type:"button",class:"dropdown-title","aria-label":r.value,onClick:i},[((s=t.title)==null?void 0:s.call(t))||d("span",{class:"title"},[d(He,{icon:o.value.icon}),e.config.text]),d("span",{class:"arrow"}),d("ul",{class:"nav-dropdown"},o.value.children.map((l,c)=>{const u=c===o.value.children.length-1;return d("li",{class:"dropdown-item"},"children"in l?[d("h4",{class:"dropdown-subtitle"},l.link?d(Be,{config:l,onFocusout:()=>{l.children.length===0&&u&&(a.value=!1)}}):d("span",l.text)),d("ul",{class:"dropdown-subitem-wrapper"},l.children.map((f,p)=>d("li",{class:"dropdown-subitem"},d(Be,{config:f,onFocusout:()=>{p===l.children.length-1&&u&&(a.value=!1)}}))))]:d(Be,{config:l,onFocusout:()=>{u&&(a.value=!1)}}))}))])])}}});const zc=()=>d(be,{name:"i18n"},()=>[d("path",{d:"M379.392 460.8 494.08 575.488l-42.496 102.4L307.2 532.48 138.24 701.44l-71.68-72.704L234.496 460.8l-45.056-45.056c-27.136-27.136-51.2-66.56-66.56-108.544h112.64c7.68 14.336 16.896 27.136 26.112 35.84l45.568 46.08 45.056-45.056C382.976 312.32 409.6 247.808 409.6 204.8H0V102.4h256V0h102.4v102.4h256v102.4H512c0 70.144-37.888 161.28-87.04 210.944L378.88 460.8zM576 870.4 512 1024H409.6l256-614.4H768l256 614.4H921.6l-64-153.6H576zM618.496 768h196.608L716.8 532.48 618.496 768z"})]);zc.displayName="I18nIcon";const Hc=(e,t,n="")=>se(t)?En(e,`${n}${t}`):"children"in t?{...t,...t.link&&!Uo(t.link)?En(e,`${n}${t.link}`):{},children:t.children.map(o=>Hc(e,o,`${n}${t.prefix||""}`))}:{...t,link:Uo(t.link)?t.link:En(e,`${n}${t.link}`).link},jc=()=>{const e=ge(),t=De(),n=()=>(e.value.navbar||[]).map(r=>Hc(t,r)),o=G(n());return re(e,()=>{o.value=n()}),o},t1=()=>{const e=De(),t=je(),n=It(),o=or(),r=zn(),a=ge();return k(()=>{const i=Bn(o.value.locales),s=lr(r.value.extraLocales??{});if(i.length<2&&!s.length)return null;const{path:l,fullPath:c}=e.currentRoute.value,{navbarLocales:u}=a.value;return{text:"",ariaLabel:u==null?void 0:u.selectLangAriaLabel,children:[...i.map(f=>{var w,O,y;const p=((w=o.value.locales)==null?void 0:w[f])??{},m=((O=r.value.locales)==null?void 0:O[f])??{},g=p.lang||"",E=((y=m.navbarLocales)==null?void 0:y.langName)??g;let A;if(g===o.value.lang)A=l;else{const T=l.replace(n.value,f);A=e.getRoutes().some(N=>N.path===T)?c.replace(l,T):m.home??f}return{text:E,link:A}}),...s.map(([f,p])=>({text:f,link:p.replace(":route",t.path.replace(n.value,""))}))]}})},n1=()=>{const e=ge(),t=k(()=>e.value.repo||null),n=k(()=>t.value?$h(t.value):null),o=k(()=>t.value?ic(t.value):null),r=k(()=>n.value?e.value.repoLabel??(o.value===null?"Source":o.value):null);return k(()=>!n.value||!r.value||e.value.repoDisplay===!1?null:{type:o.value||"Source",label:r.value,link:n.value})};var o1=W({name:"LanguageDropdown",setup(){const e=t1();return()=>e.value?d("div",{class:"nav-item"},d(Bc,{class:"i18n-dropdown",config:e.value},{title:()=>{var t;return d(zc,{"aria-label":(t=e.value)==null?void 0:t.ariaLabel,style:{width:"1rem",height:"1rem",verticalAlign:"middle"}})}})):null}}),r1=W({name:"NavScreenDropdown",props:{config:{type:Object,required:!0}},setup(e){const t=he(),n=Jo(e,"config"),o=k(()=>n.value.ariaLabel||n.value.text),r=G(!1);re(()=>t.value.path,()=>{r.value=!1});const a=(i,s)=>s[s.length-1]===i;return()=>[d("button",{type:"button",class:["nav-screen-dropdown-title",{active:r.value}],"aria-label":o.value,onClick:()=>{r.value=!r.value}},[d("span",{class:"title"},[d(He,{icon:n.value.icon}),e.config.text]),d("span",{class:["arrow",r.value?"down":"end"]})]),d("ul",{class:["nav-screen-dropdown",{hide:!r.value}]},n.value.children.map(i=>d("li",{class:"dropdown-item"},"children"in i?[d("h4",{class:"dropdown-subtitle"},i.link?d(Be,{config:i,onFocusout:()=>{a(i,n.value.children)&&i.children.length===0&&(r.value=!1)}}):d("span",i.text)),d("ul",{class:"dropdown-subitem-wrapper"},i.children.map(s=>d("li",{class:"dropdown-subitem"},d(Be,{config:s,onFocusout:()=>{a(s,i.children)&&a(i,n.value.children)&&(r.value=!1)}}))))]:d(Be,{config:i,onFocusout:()=>{a(i,n.value.children)&&(r.value=!1)}}))))]}}),a1=W({name:"NavScreenLinks",setup(){const e=jc();return()=>e.value.length?d("nav",{class:"nav-screen-links"},e.value.map(t=>d("div",{class:"navbar-links-item"},"children"in t?d(r1,{config:t}):d(Be,{config:t})))):null}});const Wc=()=>d(be,{name:"dark"},()=>d("path",{d:"M524.8 938.667h-4.267a439.893 439.893 0 0 1-313.173-134.4 446.293 446.293 0 0 1-11.093-597.334A432.213 432.213 0 0 1 366.933 90.027a42.667 42.667 0 0 1 45.227 9.386 42.667 42.667 0 0 1 10.24 42.667 358.4 358.4 0 0 0 82.773 375.893 361.387 361.387 0 0 0 376.747 82.774 42.667 42.667 0 0 1 54.187 55.04 433.493 433.493 0 0 1-99.84 154.88 438.613 438.613 0 0 1-311.467 128z"}));Wc.displayName="DarkIcon";const Uc=()=>d(be,{name:"light"},()=>d("path",{d:"M952 552h-80a40 40 0 0 1 0-80h80a40 40 0 0 1 0 80zM801.88 280.08a41 41 0 0 1-57.96-57.96l57.96-58a41.04 41.04 0 0 1 58 58l-58 57.96zM512 752a240 240 0 1 1 0-480 240 240 0 0 1 0 480zm0-560a40 40 0 0 1-40-40V72a40 40 0 0 1 80 0v80a40 40 0 0 1-40 40zm-289.88 88.08-58-57.96a41.04 41.04 0 0 1 58-58l57.96 58a41 41 0 0 1-57.96 57.96zM192 512a40 40 0 0 1-40 40H72a40 40 0 0 1 0-80h80a40 40 0 0 1 40 40zm30.12 231.92a41 41 0 0 1 57.96 57.96l-57.96 58a41.04 41.04 0 0 1-58-58l58-57.96zM512 832a40 40 0 0 1 40 40v80a40 40 0 0 1-80 0v-80a40 40 0 0 1 40-40zm289.88-88.08 58 57.96a41.04 41.04 0 0 1-58 58l-57.96-58a41 41 0 0 1 57.96-57.96z"}));Uc.displayName="LightIcon";const qc=()=>d(be,{name:"auto"},()=>d("path",{d:"M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm0-840c-198.78 0-360 161.22-360 360 0 198.84 161.22 360 360 360s360-161.16 360-360c0-198.78-161.22-360-360-360zm0 660V212c165.72 0 300 134.34 300 300 0 165.72-134.28 300-300 300z"}));qc.displayName="AutoIcon";const Kc=()=>d(be,{name:"enter-fullscreen"},()=>d("path",{d:"M762.773 90.24h-497.28c-96.106 0-174.4 78.293-174.4 174.4v497.28c0 96.107 78.294 174.4 174.4 174.4h497.28c96.107 0 175.04-78.293 174.4-174.4V264.64c0-96.213-78.186-174.4-174.4-174.4zm-387.2 761.173H215.04c-21.867 0-40.427-17.92-41.067-41.066V649.92c0-22.507 17.92-40.427 40.427-40.427 11.307 0 21.227 4.694 28.48 11.947 7.253 7.253 11.947 17.92 11.947 28.48v62.293l145.28-145.28c15.893-15.893 41.813-15.893 57.706 0 15.894 15.894 15.894 41.814 0 57.707l-145.28 145.28h62.294c22.506 0 40.426 17.92 40.426 40.427s-17.173 41.066-39.68 41.066zM650.24 165.76h160.427c21.866 0 40.426 17.92 41.066 41.067v160.426c0 22.507-17.92 40.427-40.426 40.427-11.307 0-21.227-4.693-28.48-11.947-7.254-7.253-11.947-17.92-11.947-28.48v-62.186L625.6 450.347c-15.893 15.893-41.813 15.893-57.707 0-15.893-15.894-15.893-41.814 0-57.707l145.28-145.28H650.88c-22.507 0-40.427-17.92-40.427-40.427s17.174-41.173 39.787-41.173z"}));Kc.displayName="EnterFullScreenIcon";const Gc=()=>d(be,{name:"cancel-fullscreen"},()=>d("path",{d:"M778.468 78.62H247.922c-102.514 0-186.027 83.513-186.027 186.027V795.08c0 102.514 83.513 186.027 186.027 186.027h530.432c102.514 0 186.71-83.513 186.026-186.027V264.647C964.494 162.02 880.981 78.62 778.468 78.62zM250.88 574.35h171.122c23.324 0 43.122 19.115 43.804 43.805v171.121c0 24.008-19.114 43.122-43.122 43.122-12.06 0-22.641-5.006-30.378-12.743s-12.743-19.115-12.743-30.379V722.83L224.597 877.91c-16.953 16.952-44.6 16.952-61.553 0-16.953-16.954-16.953-44.602 0-61.554L318.009 661.39h-66.446c-24.007 0-43.122-19.114-43.122-43.122 0-24.12 18.432-43.918 42.439-43.918zm521.899-98.873H601.657c-23.325 0-43.122-19.114-43.805-43.804V260.55c0-24.007 19.115-43.122 43.122-43.122 12.06 0 22.642 5.007 30.379 12.743s12.743 19.115 12.743 30.38v66.445l154.965-154.965c16.953-16.953 44.601-16.953 61.554 0 16.953 16.953 16.953 44.6 0 61.554L705.536 388.55h66.446c24.007 0 43.122 19.115 43.122 43.122.114 24.007-18.318 43.804-42.325 43.804z"}));Gc.displayName="CancelFullScreenIcon";const Yc=()=>d(be,{name:"outlook"},()=>[d("path",{d:"M224 800c0 9.6 3.2 44.8 6.4 54.4 6.4 48-48 76.8-48 76.8s80 41.6 147.2 0 134.4-134.4 38.4-195.2c-22.4-12.8-41.6-19.2-57.6-19.2C259.2 716.8 227.2 761.6 224 800zM560 675.2l-32 51.2c-51.2 51.2-83.2 32-83.2 32 25.6 67.2 0 112-12.8 128 25.6 6.4 51.2 9.6 80 9.6 54.4 0 102.4-9.6 150.4-32l0 0c3.2 0 3.2-3.2 3.2-3.2 22.4-16 12.8-35.2 6.4-44.8-9.6-12.8-12.8-25.6-12.8-41.6 0-54.4 60.8-99.2 137.6-99.2 6.4 0 12.8 0 22.4 0 12.8 0 38.4 9.6 48-25.6 0-3.2 0-3.2 3.2-6.4 0-3.2 3.2-6.4 3.2-6.4 6.4-16 6.4-16 6.4-19.2 9.6-35.2 16-73.6 16-115.2 0-105.6-41.6-198.4-108.8-268.8C704 396.8 560 675.2 560 675.2zM224 419.2c0-28.8 22.4-51.2 51.2-51.2 28.8 0 51.2 22.4 51.2 51.2 0 28.8-22.4 51.2-51.2 51.2C246.4 470.4 224 448 224 419.2zM320 284.8c0-22.4 19.2-41.6 41.6-41.6 22.4 0 41.6 19.2 41.6 41.6 0 22.4-19.2 41.6-41.6 41.6C339.2 326.4 320 307.2 320 284.8zM457.6 208c0-12.8 12.8-25.6 25.6-25.6 12.8 0 25.6 12.8 25.6 25.6 0 12.8-12.8 25.6-25.6 25.6C470.4 233.6 457.6 220.8 457.6 208zM128 505.6C128 592 153.6 672 201.6 736c28.8-60.8 112-60.8 124.8-60.8-16-51.2 16-99.2 16-99.2l316.8-422.4c-48-19.2-99.2-32-150.4-32C297.6 118.4 128 291.2 128 505.6zM764.8 86.4c-22.4 19.2-390.4 518.4-390.4 518.4-22.4 28.8-12.8 76.8 22.4 99.2l9.6 6.4c35.2 22.4 80 12.8 99.2-25.6 0 0 6.4-12.8 9.6-19.2 54.4-105.6 275.2-524.8 288-553.6 6.4-19.2-3.2-32-19.2-32C777.6 76.8 771.2 80 764.8 86.4z"})]);Yc.displayName="OutlookIcon";var Jc=W({name:"AppearanceSwitch",setup(){const{config:e,status:t}=go(),n=()=>{e.value==="switch"?t.value={light:"dark",dark:"auto",auto:"light"}[t.value]:t.value=t.value==="light"?"dark":"light"};return()=>d("button",{type:"button",id:"appearance-switch",onClick:()=>n()},[d(qc,{style:{display:t.value==="auto"?"block":"none"}}),d(Wc,{style:{display:t.value==="dark"?"block":"none"}}),d(Uc,{style:{display:t.value==="light"?"block":"none"}})])}}),i1=W({name:"AppearanceMode",setup(){const e=ge(),{canToggle:t}=go(),n=k(()=>e.value.outlookLocales.darkmode);return()=>t.value?d("div",{class:"appearance-wrapper"},[d("label",{class:"appearance-title",for:"appearance-switch"},n.value),d(Jc)]):null}});const Sr="VUEPRESS_THEME_COLOR";var s1=W({name:"ThemeColorPicker",props:{themeColor:{type:Object,required:!0}},setup(e){const t=(n="")=>{const o=document.documentElement.classList,r=Bn(e.themeColor);if(!n){localStorage.removeItem(Sr),o.remove(...r);return}o.remove(...r.filter(a=>a!==n)),o.add(n),localStorage.setItem(Sr,n)};return pe(()=>{const n=localStorage.getItem(Sr);n&&t(n)}),()=>d("ul",{id:"theme-color-picker"},[d("li",d("span",{class:"theme-color",onClick:()=>t()})),lr(e.themeColor).map(([n,o])=>d("li",d("span",{style:{background:o},onClick:()=>t(n)})))])}});const Tn=Va.enableThemeColor==="true",l1=Tn?Ph(lr(Va).filter(([e])=>e.startsWith("theme-"))):{};var c1=W({name:"ThemeColor",setup(){const e=ge(),t=k(()=>e.value.outlookLocales.themeColor);return()=>Tn?d("div",{class:"theme-color-wrapper"},[d("label",{class:"theme-color-title",for:"theme-color-picker"},t.value),d(s1,{themeColor:l1})]):null}}),Qc=W({name:"ToggleFullScreenButton",setup(){const e=ge(),{isSupported:t,isFullscreen:n,toggle:o}=$a(),r=k(()=>e.value.outlookLocales.fullscreen);return()=>t?d("div",{class:"full-screen-wrapper"},[d("label",{class:"full-screen-title",for:"full-screen-switch"},r.value),d("button",{type:"button",id:"full-screen-switch",class:"full-screen",ariaPressed:n.value,onClick:()=>o()},n.value?d(Gc):d(Kc))]):null}}),Xc=W({name:"OutlookSettings",setup(){const e=zn(),t=ur(),n=k(()=>!t.value&&e.value.fullscreen);return()=>d(rr,()=>[Tn?d(c1):null,d(i1),n.value?d(Qc):null])}}),u1=W({name:"NavScreen",props:{show:Boolean},emits:["close"],slots:Object,setup(e,{emit:t,slots:n}){const o=he(),{isMobile:r}=dr(),a=tt(),i=Ma(a);return pe(()=>{a.value=document.body,re(r,s=>{!s&&e.show&&(i.value=!1,t("close"))}),re(()=>o.value.path,()=>{i.value=!1,t("close")})}),Vn(()=>{i.value=!1}),()=>d(Ot,{name:"fade",onEnter:()=>{i.value=!0},onAfterLeave:()=>{i.value=!1}},()=>{var s,l;return e.show?d("div",{id:"nav-screen"},d("div",{class:"vp-nav-screen-container"},[(s=n.before)==null?void 0:s.call(n),d(a1),d("div",{class:"vp-outlook-wrapper"},d(Xc)),(l=n.after)==null?void 0:l.call(n)])):null})}}),d1=W({name:"NavbarBrand",setup(){const e=It(),t=or(),n=ge(),o=k(()=>n.value.home||e.value),r=k(()=>t.value.title),a=k(()=>n.value.navTitle??r.value),i=k(()=>n.value.logo?Me(n.value.logo):null),s=k(()=>n.value.logoDark?Me(n.value.logoDark):null);return()=>d(ut,{to:o.value,class:"vp-brand"},()=>[i.value?d("img",{class:["vp-nav-logo",{light:!!s.value}],src:i.value,alt:r.value}):null,s.value?d("img",{class:["vp-nav-logo dark"],src:s.value,alt:r.value}):null,a.value?d("span",{class:["vp-site-name",{"hide-in-pad":i.value&&n.value.hideSiteNameOnMobile!==!1}]},a.value):null])}}),f1=W({name:"NavbarLinks",setup(){const e=jc();return()=>e.value.length?d("nav",{class:"vp-nav-links"},e.value.map(t=>d("div",{class:"nav-item hide-in-mobile"},"children"in t?d(Bc,{config:t}):d(Be,{config:t})))):null}}),p1=W({name:"RepoLink",components:{BitbucketIcon:uc,GiteeIcon:cc,GitHubIcon:sc,GitLabIcon:lc,SourceIcon:dc},setup(){const e=n1();return()=>e.value?d("div",{class:"nav-item vp-repo"},d("a",{class:"vp-repo-link",href:e.value.link,target:"_blank",rel:"noopener noreferrer","aria-label":e.value.label},d(ct(`${e.value.type}Icon`),{style:{width:"1.25rem",height:"1.25rem",verticalAlign:"middle"}}))):null}});const Zc=({active:e=!1},{emit:t})=>d("button",{type:"button",class:["vp-toggle-navbar-button",{"is-active":e}],"aria-label":"Toggle Navbar","aria-expanded":e,"aria-controls":"nav-screen",onClick:()=>t("toggle")},d("span",[d("span",{class:"vp-top"}),d("span",{class:"vp-middle"}),d("span",{class:"vp-bottom"})]));Zc.displayName="ToggleNavbarButton";var h1=Zc;const Yr=(e,{emit:t})=>d("button",{type:"button",class:"vp-toggle-sidebar-button",title:"Toggle Sidebar",onClick:()=>t("toggle")},d("span",{class:"icon"}));Yr.displayName="ToggleSidebarButton",Yr.emits=["toggle"];var m1=Yr,v1=W({name:"OutlookButton",setup(){const{isSupported:e}=$a(),t=zn(),n=ur(),o=he(),{canToggle:r}=go(),a=G(!1),i=k(()=>!n.value&&t.value.fullscreen&&e);return re(()=>o.value.path,()=>{a.value=!1}),()=>r.value||i.value||Tn?d("div",{class:"nav-item hide-in-mobile"},r.value&&!i.value&&!Tn?d(Jc):i.value&&!r.value&&!Tn?d(Qc):d("button",{type:"button",class:["outlook-button",{open:a.value}],tabindex:"-1","aria-hidden":!0},[d(Yc),d("div",{class:"outlook-dropdown"},d(Xc))])):null}}),g1=W({name:"NavBar",emits:["toggleSidebar"],slots:Object,setup(e,{emit:t,slots:n}){const o=ge(),{isMobile:r}=dr(),a=G(!1),i=k(()=>{const{navbarAutoHide:u="mobile"}=o.value;return u!=="none"&&(u==="always"||r.value)}),s=k(()=>o.value.navbarLayout||{start:["Brand"],center:["Links"],end:["Language","Repo","Outlook","Search"]}),l={Brand:d1,Language:o1,Links:f1,Repo:p1,Outlook:v1,Search:gt("Docsearch")?ct("Docsearch"):gt("SearchBox")?ct("SearchBox"):gs},c=u=>l[u]??(gt(u)?ct(u):gs);return()=>{var u,f,p,m,g,E;return[d("header",{id:"navbar",class:["vp-navbar",{"auto-hide":i.value,"hide-icon":o.value.navbarIcon===!1}]},[d("div",{class:"vp-navbar-start"},[d(m1,{onToggle:()=>{a.value&&(a.value=!1),t("toggleSidebar")}}),(u=n.startBefore)==null?void 0:u.call(n),(s.value.start||[]).map(A=>d(c(A))),(f=n.startAfter)==null?void 0:f.call(n)]),d("div",{class:"vp-navbar-center"},[(p=n.centerBefore)==null?void 0:p.call(n),(s.value.center||[]).map(A=>d(c(A))),(m=n.centerAfter)==null?void 0:m.call(n)]),d("div",{class:"vp-navbar-end"},[(g=n.endBefore)==null?void 0:g.call(n),(s.value.end||[]).map(A=>d(c(A))),(E=n.endAfter)==null?void 0:E.call(n),d(h1,{active:a.value,onToggle:()=>{a.value=!a.value}})])]),d(u1,{show:a.value,onClose:()=>{a.value=!1}},{before:()=>{var A;return(A=n.screenTop)==null?void 0:A.call(n)},after:()=>{var A;return(A=n.screenBottom)==null?void 0:A.call(n)}})]}}}),_1=W({name:"SidebarChild",props:{config:{type:Object,required:!0}},setup(e){const t=je();return()=>[Mc(e.config,{class:["vp-sidebar-link",`vp-sidebar-${e.config.type}`,{active:xn(t,e.config,!0)}],exact:!0}),Nc(e.config.children)]}}),b1=W({name:"SidebarGroup",props:{config:{type:Object,required:!0},open:{type:Boolean,required:!0}},emits:["toggle"],setup(e,{emit:t}){const n=je(),o=k(()=>xn(n,e.config)),r=k(()=>xn(n,e.config,!0));return()=>{const{collapsible:a,children:i=[],icon:s,prefix:l,link:c,text:u}=e.config;return d("section",{class:"vp-sidebar-group"},[d(a?"button":"p",{class:["vp-sidebar-heading",{clickable:a||c,exact:r.value,active:o.value}],...a?{type:"button",onClick:()=>t("toggle"),onKeydown:f=>{f.key==="Enter"&&t("toggle")}}:{}},[d(He,{icon:s}),c?d(Be,{class:"vp-sidebar-title",config:{text:u,link:c},noExternalLinkIcon:!0}):d("span",{class:"vp-sidebar-title"},u),a?d("span",{class:["vp-arrow",e.open?"down":"end"]}):null]),e.open||!a?d(eu,{key:l,config:i}):null])}}}),eu=W({name:"SidebarLinks",props:{config:{type:Array,required:!0}},setup(e){const t=je(),n=G(-1),o=r=>{n.value=r===n.value?-1:r};return re(()=>t.path,()=>{const r=e.config.findIndex(a=>$c(t,a));n.value=r},{immediate:!0,flush:"post"}),()=>d("ul",{class:"vp-sidebar-links"},e.config.map((r,a)=>d("li",r.type==="group"?d(b1,{config:r,open:a===n.value,onToggle:()=>o(a)}):d(_1,{config:r}))))}}),y1=W({name:"SideBar",slots:Object,setup(e,{slots:t}){const n=je(),o=ge(),r=za(),a=tt();return pe(()=>{re(()=>n.hash,i=>{const s=document.querySelector(`.vp-sidebar a.vp-sidebar-link[href="${n.path}${i}"]`);if(!s)return;const{top:l,height:c}=a.value.getBoundingClientRect(),{top:u,height:f}=s.getBoundingClientRect();ul+c&&s.scrollIntoView(!1)},{immediate:!0})}),()=>{var i,s,l;return d("aside",{ref:a,id:"sidebar",class:["vp-sidebar",{"hide-icon":o.value.sidebarIcon===!1}]},[(i=t.top)==null?void 0:i.call(t),((s=t.default)==null?void 0:s.call(t))||d(eu,{config:r.value}),(l=t.bottom)==null?void 0:l.call(t)])}}}),tu=W({name:"CommonWrapper",props:{containerClass:{type:String,default:""},noNavbar:Boolean,noSidebar:Boolean,noToc:Boolean},slots:Object,setup(e,{slots:t}){const n=De(),o=he(),r=Le(),a=ge(),{isMobile:i,isPC:s}=dr(),[l,c]=ns(!1),[u,f]=ns(!1),p=za(),m=G(!1),g=k(()=>e.noNavbar||r.value.navbar===!1||a.value.navbar===!1?!1:!!(o.value.title||a.value.logo||a.value.repo||a.value.navbar)),E=k(()=>e.noSidebar?!1:r.value.sidebar!==!1&&p.value.length!==0&&!r.value.home),A=k(()=>e.noToc||r.value.home?!1:r.value.toc||a.value.toc!==!1&&r.value.toc!==!1),w={x:0,y:0},O=I=>{w.x=I.changedTouches[0].clientX,w.y=I.changedTouches[0].clientY},y=I=>{const M=I.changedTouches[0].clientX-w.x,P=I.changedTouches[0].clientY-w.y;Math.abs(M)>Math.abs(P)*1.5&&Math.abs(M)>40&&(M>0&&w.x<=80?c(!0):c(!1))},T=()=>window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;let N=0;return Ie("scroll",Kh(()=>{const I=T();I<=58||I{I||c(!1)}),pe(()=>{const I=Ma(document.body);re(l,P=>{I.value=P});const M=n.afterEach(()=>{c(!1)});Vn(()=>{I.value=!1,M()})}),()=>d(gt("GlobalEncrypt")?ct("GlobalEncrypt"):Zl,()=>d("div",{class:["theme-container",{"no-navbar":!g.value,"no-sidebar":!E.value&&!(t.sidebar||t.sidebarTop||t.sidebarBottom),"has-toc":A.value,"hide-navbar":m.value,"sidebar-collapsed":!i.value&&!s.value&&u.value,"sidebar-open":i.value&&l.value},e.containerClass,r.value.containerClass||""],onTouchStart:O,onTouchEnd:y},[g.value?d(g1,{onToggleSidebar:()=>c()},{startBefore:()=>{var I;return(I=t.navbarStartBefore)==null?void 0:I.call(t)},startAfter:()=>{var I;return(I=t.navbarStartAfter)==null?void 0:I.call(t)},centerBefore:()=>{var I;return(I=t.navbarCenterBefore)==null?void 0:I.call(t)},centerAfter:()=>{var I;return(I=t.navbarCenterAfter)==null?void 0:I.call(t)},endBefore:()=>{var I;return(I=t.navbarEndBefore)==null?void 0:I.call(t)},endAfter:()=>{var I;return(I=t.navbarEndAfter)==null?void 0:I.call(t)},screenTop:()=>{var I;return(I=t.navScreenTop)==null?void 0:I.call(t)},screenBottom:()=>{var I;return(I=t.navScreenBottom)==null?void 0:I.call(t)}}):null,d(Ot,{name:"fade"},()=>l.value?d("div",{class:"vp-sidebar-mask",onClick:()=>c(!1)}):null),d(Ot,{name:"fade"},()=>i.value?null:d("div",{class:"toggle-sidebar-wrapper",onClick:()=>f()},d("span",{class:["arrow",u.value?"end":"start"]}))),d(y1,{},{...t.sidebar?{default:()=>t.sidebar()}:{},top:()=>{var I;return(I=t.sidebarTop)==null?void 0:I.call(t)},bottom:()=>{var I;return(I=t.sidebarBottom)==null?void 0:I.call(t)}}),t.default(),d(e1)]))}}),gn=W({name:"DropTransition",props:{type:{type:String,default:"single"},delay:{type:Number,default:0},duration:{type:Number,default:.25},appear:Boolean},slots:Object,setup(e,{slots:t}){const n=r=>{r.style.transition=`transform ${e.duration}s ease-in-out ${e.delay}s, opacity ${e.duration}s ease-in-out ${e.delay}s`,r.style.transform="translateY(-20px)",r.style.opacity="0"},o=r=>{r.style.transform="translateY(0)",r.style.opacity="1"};return()=>d(e.type==="single"?Ot:Ta,{name:"drop",appear:e.appear,onAppear:n,onAfterAppear:o,onEnter:n,onAfterEnter:o,onBeforeLeave:n},()=>t.default())}});const Jr=({custom:e})=>d(zl,{class:["theme-hope-content",{custom:e}]});Jr.displayName="MarkdownContent",Jr.props={custom:Boolean};var nu=Jr;const ou=()=>d(be,{name:"author"},()=>d("path",{d:"M649.6 633.6c86.4-48 147.2-144 147.2-249.6 0-160-128-288-288-288s-288 128-288 288c0 108.8 57.6 201.6 147.2 249.6-121.6 48-214.4 153.6-240 288-3.2 9.6 0 19.2 6.4 25.6 3.2 9.6 12.8 12.8 22.4 12.8h704c9.6 0 19.2-3.2 25.6-12.8 6.4-6.4 9.6-16 6.4-25.6-25.6-134.4-121.6-240-243.2-288z"}));ou.displayName="AuthorIcon";const ru=()=>d(be,{name:"calendar"},()=>d("path",{d:"M716.4 110.137c0-18.753-14.72-33.473-33.472-33.473-18.753 0-33.473 14.72-33.473 33.473v33.473h66.993v-33.473zm-334.87 0c0-18.753-14.72-33.473-33.473-33.473s-33.52 14.72-33.52 33.473v33.473h66.993v-33.473zm468.81 33.52H716.4v100.465c0 18.753-14.72 33.473-33.472 33.473a33.145 33.145 0 01-33.473-33.473V143.657H381.53v100.465c0 18.753-14.72 33.473-33.473 33.473a33.145 33.145 0 01-33.473-33.473V143.657H180.6A134.314 134.314 0 0046.66 277.595v535.756A134.314 134.314 0 00180.6 947.289h669.74a134.36 134.36 0 00133.94-133.938V277.595a134.314 134.314 0 00-133.94-133.938zm33.473 267.877H147.126a33.145 33.145 0 01-33.473-33.473c0-18.752 14.72-33.473 33.473-33.473h736.687c18.752 0 33.472 14.72 33.472 33.473a33.145 33.145 0 01-33.472 33.473z"}));ru.displayName="CalendarIcon";const au=()=>d(be,{name:"category"},()=>d("path",{d:"M148.41 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H148.41c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.311-40.31zM147.556 553.478H429.73c22.263 0 40.311 18.048 40.311 40.31v282.176c0 22.263-18.048 40.312-40.31 40.312H147.555c-22.263 0-40.311-18.049-40.311-40.312V593.79c0-22.263 18.048-40.311 40.31-40.311zM593.927 106.992h282.176c22.263 0 40.31 18.048 40.31 40.31V429.48c0 22.263-18.047 40.31-40.31 40.31H593.927c-22.263 0-40.311-18.047-40.311-40.31V147.302c0-22.263 18.048-40.31 40.31-40.31zM730.22 920.502H623.926c-40.925 0-74.22-33.388-74.22-74.425V623.992c0-41.038 33.387-74.424 74.425-74.424h222.085c41.038 0 74.424 33.226 74.424 74.067v114.233c0 10.244-8.304 18.548-18.547 18.548s-18.548-8.304-18.548-18.548V623.635c0-20.388-16.746-36.974-37.33-36.974H624.13c-20.585 0-37.331 16.747-37.331 37.33v222.086c0 20.585 16.654 37.331 37.126 37.331H730.22c10.243 0 18.547 8.304 18.547 18.547 0 10.244-8.304 18.547-18.547 18.547z"}));au.displayName="CategoryIcon";const iu=()=>d(be,{name:"eye"},()=>d("path",{d:"M992 512.096c0-5.76-.992-10.592-1.28-11.136-.192-2.88-1.152-8.064-2.08-10.816-.256-.672-.544-1.376-.832-2.08-.48-1.568-1.024-3.104-1.6-4.32C897.664 290.112 707.104 160 512 160c-195.072 0-385.632 130.016-473.76 322.592-1.056 2.112-1.792 4.096-2.272 5.856a55.512 55.512 0 00-.64 1.6c-1.76 5.088-1.792 8.64-1.632 7.744-.832 3.744-1.568 11.168-1.568 11.168-.224 2.272-.224 4.032.032 6.304 0 0 .736 6.464 1.088 7.808.128 1.824.576 4.512 1.12 6.976h-.032c.448 2.08 1.12 4.096 1.984 6.08.48 1.536.992 2.976 1.472 4.032C126.432 733.856 316.992 864 512 864c195.136 0 385.696-130.048 473.216-321.696 1.376-2.496 2.24-4.832 2.848-6.912.256-.608.48-1.184.672-1.728 1.536-4.48 1.856-8.32 1.728-8.32l-.032.032c.608-3.104 1.568-7.744 1.568-13.28zM512 672c-88.224 0-160-71.776-160-160s71.776-160 160-160 160 71.776 160 160-71.776 160-160 160z"}));iu.displayName="EyeIcon";const su=()=>d(be,{name:"fire"},()=>d("path",{d:"M726.4 201.6c-12.8-9.6-28.8-6.4-38.4 0-9.6 9.6-16 25.6-9.6 38.4 6.4 12.8 9.6 28.8 12.8 44.8C604.8 83.2 460.8 38.4 454.4 35.2c-9.6-3.2-22.4 0-28.8 6.4-9.6 6.4-12.8 19.2-9.6 28.8 12.8 86.4-25.6 188.8-115.2 310.4-6.4-25.6-16-51.2-32-80-9.6-9.6-22.4-16-35.2-12.8-16 3.2-25.6 12.8-25.6 28.8-3.2 48-25.6 92.8-51.2 140.8C134.4 499.2 112 544 102.4 592c-32 150.4 99.2 329.6 233.6 380.8 9.6 3.2 19.2 6.4 32 9.6-25.6-19.2-41.6-51.2-48-96C294.4 691.2 505.6 640 515.2 460.8c153.6 105.6 224 336 137.6 505.6 3.2 0 6.4-3.2 9.6-3.2 0 0 3.2 0 3.2-3.2 163.2-89.6 252.8-208 259.2-345.6 16-211.2-163.2-390.4-198.4-412.8z"}));su.displayName="FireIcon";const lu=()=>d(be,{name:"print"},()=>d("path",{d:"M819.2 364.8h-44.8V128c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v236.8h-44.8C145.067 364.8 96 413.867 96 473.6v192c0 59.733 49.067 108.8 108.8 108.8h44.8V896c0 17.067 14.933 32 32 32h460.8c17.067 0 32-14.933 32-32V774.4h44.8c59.733 0 108.8-49.067 108.8-108.8v-192c0-59.733-49.067-108.8-108.8-108.8zM313.6 160h396.8v204.8H313.6V160zm396.8 704H313.6V620.8h396.8V864zM864 665.6c0 25.6-19.2 44.8-44.8 44.8h-44.8V588.8c0-17.067-14.933-32-32-32H281.6c-17.067 0-32 14.933-32 32v121.6h-44.8c-25.6 0-44.8-19.2-44.8-44.8v-192c0-25.6 19.2-44.8 44.8-44.8h614.4c25.6 0 44.8 19.2 44.8 44.8v192z"}));lu.displayName="PrintIcon";const cu=()=>d(be,{name:"tag"},()=>d("path",{d:"M939.902 458.563L910.17 144.567c-1.507-16.272-14.465-29.13-30.737-30.737L565.438 84.098h-.402c-3.215 0-5.726 1.005-7.634 2.913l-470.39 470.39a10.004 10.004 0 000 14.164l365.423 365.424c1.909 1.908 4.42 2.913 7.132 2.913s5.223-1.005 7.132-2.913l470.39-470.39c2.01-2.11 3.014-5.023 2.813-8.036zm-240.067-72.121c-35.458 0-64.286-28.828-64.286-64.286s28.828-64.285 64.286-64.285 64.286 28.828 64.286 64.285-28.829 64.286-64.286 64.286z"}));cu.displayName="TagIcon";const uu=()=>d(be,{name:"timer"},()=>d("path",{d:"M799.387 122.15c4.402-2.978 7.38-7.897 7.38-13.463v-1.165c0-8.933-7.38-16.312-16.312-16.312H256.33c-8.933 0-16.311 7.38-16.311 16.312v1.165c0 5.825 2.977 10.874 7.637 13.592 4.143 194.44 97.22 354.963 220.201 392.763-122.204 37.542-214.893 196.511-220.2 389.397-4.661 5.049-7.638 11.651-7.638 19.03v5.825h566.49v-5.825c0-7.379-2.849-13.981-7.509-18.9-5.049-193.016-97.867-351.985-220.2-389.527 123.24-37.67 216.446-198.453 220.588-392.892zM531.16 450.445v352.632c117.674 1.553 211.787 40.778 211.787 88.676H304.097c0-48.286 95.149-87.382 213.728-88.676V450.445c-93.077-3.107-167.901-81.297-167.901-177.093 0-8.803 6.99-15.793 15.793-15.793 8.803 0 15.794 6.99 15.794 15.793 0 80.261 63.69 145.635 142.01 145.635s142.011-65.374 142.011-145.635c0-8.803 6.99-15.793 15.794-15.793s15.793 6.99 15.793 15.793c0 95.019-73.789 172.82-165.96 177.093z"}));uu.displayName="TimerIcon";const du=()=>d(be,{name:"word"},()=>[d("path",{d:"M518.217 432.64V73.143A73.143 73.143 0 01603.43 1.097a512 512 0 01419.474 419.474 73.143 73.143 0 01-72.046 85.212H591.36a73.143 73.143 0 01-73.143-73.143z"}),d("path",{d:"M493.714 566.857h340.297a73.143 73.143 0 0173.143 85.577A457.143 457.143 0 11371.566 117.76a73.143 73.143 0 0185.577 73.143v339.383a36.571 36.571 0 0036.571 36.571z"})]);du.displayName="WordIcon";const Rt=()=>{const e=ge();return k(()=>e.value.metaLocales)};var w1=W({name:"AuthorInfo",inheritAttrs:!1,props:{author:{type:Array,required:!0},pure:Boolean},setup(e){const t=Rt();return()=>e.author.length?d("span",{class:"page-author-info","aria-label":`${t.value.author}${e.pure?"":"🖊"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(ou),d("span",e.author.map(n=>n.url?d("a",{class:"page-author-item",href:n.url,target:"_blank",rel:"noopener noreferrer"},n.name):d("span",{class:"page-author-item"},n.name))),d("span",{property:"author",content:e.author.map(n=>n.name).join(", ")})]):null}}),E1=W({name:"CategoryInfo",inheritAttrs:!1,props:{category:{type:Array,required:!0},pure:Boolean},setup(e){const t=De(),n=he(),o=Rt(),r=(a,i="")=>{i&&n.value.path!==i&&(a.preventDefault(),t.push(i))};return()=>e.category.length?d("span",{class:"page-category-info","aria-label":`${o.value.category}${e.pure?"":"🌈"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(au),e.category.map(({name:a,path:i})=>d("span",{class:["page-category-item",{[`category${ec(a,9)}`]:!e.pure,clickable:i}],role:i?"navigation":"",onClick:s=>r(s,i)},a)),d("meta",{property:"articleSection",content:e.category.map(({name:a})=>a).join(",")})]):null}}),T1=W({name:"DateInfo",inheritAttrs:!1,props:{date:{type:Object,default:null},localizedDate:{type:String,default:""},pure:Boolean},setup(e){const t=nr(),n=Rt();return()=>e.date?d("span",{class:"page-date-info","aria-label":`${n.value.date}${e.pure?"":"📅"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(ru),d("span",d(rr,()=>e.localizedDate||e.date.toLocaleDateString(t.value))),d("meta",{property:"datePublished",content:e.date.toISOString()||""})]):null}}),A1=W({name:"OriginalInfo",inheritAttrs:!1,props:{isOriginal:Boolean},setup(e){const t=Rt();return()=>e.isOriginal?d("span",{class:"page-original-info"},t.value.origin):null}}),k1=W({name:"PageViewInfo",inheritAttrs:!1,props:{pageview:{type:[Boolean,String],default:!1},pure:Boolean},setup(e){const t=je(),n=Rt(),o=tt(),r=G(0);return cm(o,()=>{const a=o.value.textContent;a&&!isNaN(Number(a))&&(r.value=Number(a))},{childList:!0}),()=>e.pageview?d("span",{class:"page-pageview-info","aria-label":`${n.value.views}${e.pure?"":"🔢"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(r.value<1e3?iu:su),d("span",{ref:o,id:"ArtalkPV",class:"waline-pageview-count","data-path":se(e.pageview)?e.pageview:t.path},"...")]):null}}),L1=W({name:"ReadingTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=Rt(),n=k(()=>{if(!e.readingTime)return null;const{minutes:o}=e.readingTime;return o<1?"PT1M":`PT${Math.round(o)}M`});return()=>{var o,r;return(o=e.readingTimeLocale)!=null&&o.time?d("span",{class:"page-reading-time-info","aria-label":`${t.value.readingTime}${e.pure?"":"⌛"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(uu),d("span",(r=e.readingTimeLocale)==null?void 0:r.time),d("meta",{property:"timeRequired",content:n.value})]):null}}}),O1=W({name:"TagInfo",inheritAttrs:!1,props:{tag:{type:Array,default:()=>[]},pure:Boolean},setup(e){const t=De(),n=he(),o=Rt(),r=(a,i="")=>{i&&n.value.path!==i&&(a.preventDefault(),t.push(i))};return()=>e.tag.length?d("span",{class:"page-tag-info","aria-label":`${o.value.tag}${e.pure?"":"🏷"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(cu),e.tag.map(({name:a,path:i})=>d("span",{class:["page-tag-item",{[`tag${ec(a,9)}`]:!e.pure,clickable:i}],role:i?"navigation":"",onClick:s=>r(s,i)},a)),d("meta",{property:"keywords",content:e.tag.map(({name:a})=>a).join(",")})]):null}}),C1=W({name:"ReadTimeInfo",inheritAttrs:!1,props:{readingTime:{type:Object,default:()=>null},readingTimeLocale:{type:Object,default:()=>null},pure:Boolean},setup(e){const t=Rt();return()=>{var n,o,r;return(n=e.readingTimeLocale)!=null&&n.words?d("span",{class:"page-word-info","aria-label":`${t.value.words}${e.pure?"":"🔠"}`,...e.pure?{}:{"data-balloon-pos":"down"}},[d(du),d("span",(o=e.readingTimeLocale)==null?void 0:o.words),d("meta",{property:"wordCount",content:(r=e.readingTime)==null?void 0:r.words})]):null}}}),S1=W({name:"PageInfo",components:{AuthorInfo:w1,CategoryInfo:E1,DateInfo:T1,OriginalInfo:A1,PageViewInfo:k1,ReadingTimeInfo:L1,TagInfo:O1,WordInfo:C1},props:{items:{type:[Array,Boolean],default:()=>["Author","Original","Date","PageView","ReadingTime","Category","Tag"]},info:{type:Object,required:!0}},setup(e){const t=ur();return()=>e.items?d("div",{class:"page-info"},e.items.map(n=>d(ct(`${n}Info`),{...e.info,pure:t.value}))):null}}),P1=W({name:"PrintButton",setup(){const e=zn(),t=ge();return()=>e.value.print===!1?null:d("button",{type:"button",class:"print-button",title:t.value.metaLocales.print,onClick:()=>{window.print()}},d(lu))}});const I1=({title:e,level:t,slug:n})=>d(ut,{to:`#${n}`,class:["toc-link",`level${t}`]},()=>e),Qr=(e,t)=>{const n=je();return e.length&&t>0?d("ul",{class:"toc-list"},e.map(o=>{const r=Qr(o.children,t-1);return[d("li",{class:["toc-item",{active:Pa(n,`#${o.slug}`)}]},I1(o)),r?d("li",r):null]})):null};var R1=W({name:"TOC",props:{items:{type:Array,default:()=>[]},headerDepth:{type:Number,default:2}},slots:Object,setup(e,{slots:t}){const n=je(),o=he(),r=Rt(),a=tt(),i=G("-1.7rem"),s=c=>{var u;(u=a.value)==null||u.scrollTo({top:c,behavior:"smooth"})},l=()=>{if(a.value){const c=document.querySelector(".toc-item.active");c?i.value=`${c.getBoundingClientRect().top-a.value.getBoundingClientRect().top+a.value.scrollTop}px`:i.value="-1.7rem"}else i.value="-1.7rem"};return pe(()=>{re(()=>n.hash,c=>{if(a.value){const u=document.querySelector(`#toc a.toc-link[href$="${c}"]`);if(!u)return;const{top:f,height:p}=a.value.getBoundingClientRect(),{top:m,height:g}=u.getBoundingClientRect();mf+p&&s(a.value.scrollTop+m+g-f-p)}}),re(()=>n.fullPath,()=>l(),{flush:"post",immediate:!0})}),()=>{var u,f;const c=e.items.length?Qr(e.items,e.headerDepth):o.value.headers?Qr(o.value.headers,e.headerDepth):null;return c?d("div",{class:"toc-place-holder"},[d("aside",{id:"toc"},[(u=t.before)==null?void 0:u.call(t),d("div",{class:"toc-header"},[r.value.toc,d(P1)]),d("div",{class:"toc-wrapper",ref:a},[c,d("div",{class:"toc-marker",style:{top:i.value}})]),(f=t.after)==null?void 0:f.call(t)])]):null}}}),fu=W({name:"SkipLink",props:{content:{type:String,default:"main-content"}},setup(e){const t=he(),n=ge(),o=tt(),r=({target:a})=>{const i=document.querySelector(a.hash);if(i){const s=()=>{i.removeAttribute("tabindex"),i.removeEventListener("blur",s)};i.setAttribute("tabindex","-1"),i.addEventListener("blur",s),i.focus(),window.scrollTo(0,0)}};return pe(()=>{re(()=>t.value.path,()=>o.value.focus())}),()=>[d("span",{ref:o,tabindex:"-1"}),d("a",{href:`#${e.content}`,class:"vp-skip-link sr-only",onClick:r},n.value.routeLocales.skipToContent)]}});let Pr=null,qn=null;const x1={wait:()=>Pr,pending:()=>{Pr=new Promise(e=>qn=e)},resolve:()=>{qn==null||qn(),Pr=null,qn=null}},pu=()=>x1;var D1=W({name:"FadeSlideY",slots:Object,setup(e,{slots:t}){const{resolve:n,pending:o}=pu();return()=>d(Ot,{name:"fade-slide-y",mode:"out-in",onBeforeEnter:n,onBeforeLeave:o},()=>{var r;return(r=t.default)==null?void 0:r.call(t)})}});const $1=(e,t)=>{const n=e.replace(t,"/").split("/"),o=[];let r=ka(t);return n.forEach((a,i)=>{i!==n.length-1?(r+=`${a}/`,o.push({link:r,name:a||"Home"})):a!==""&&(r+=a,o.push({link:r,name:a}))}),o},hu=(e,{slots:t})=>{var f,p;const{bgImage:n,bgImageDark:o,bgImageStyle:r,color:a,description:i,image:s,imageDark:l,header:c,features:u=[]}=e;return d("div",{class:"vp-feature-wrapper"},[n?d("div",{class:["vp-feature-bg",{light:o}],style:[{"background-image":`url(${n})`},r]}):null,o?d("div",{class:"vp-feature-bg dark",style:[{"background-image":`url(${o})`},r]}):null,d("div",{class:"vp-feature",style:a?{color:a}:{}},[((f=t.image)==null?void 0:f.call(t,e))||[s?d("img",{class:["vp-feature-image",{light:l}],src:Me(s),alt:c}):null,l?d("img",{class:"vp-feature-image dark",src:Me(l),alt:c}):null],((p=t.info)==null?void 0:p.call(t,e))||[c?d("h2",{class:"vp-feature-header"},c):null,i?d("p",{class:"vp-feature-description",innerHTML:i}):null],u.length?d("div",{class:"vp-features"},u.map(({icon:m,title:g,details:E,link:A})=>{const w=[d("h3",{class:"vp-feature-title"},[d(He,{icon:m}),d("span",{innerHTML:g})]),d("p",{class:"vp-feature-details",innerHTML:E})];return A?Uo(A)?d("a",{class:"vp-feature-item link",href:A,role:"navigation","aria-label":g,target:"_blank"},w):d(ut,{class:"vp-feature-item link",to:A,role:"navigation","aria-label":g},()=>w):d("div",{class:"vp-feature-item"},w)})):null])])};hu.displayName="FeaturePanel";var bs=hu,M1=W({name:"HeroInfo",slots:Object,setup(e,{slots:t}){const n=Le(),o=or(),r=k(()=>n.value.heroFullScreen??!1),a=k(()=>{const{heroText:c,tagline:u}=n.value;return{text:c??o.value.title??"Hello",tagline:u??o.value.description??"",isFullScreen:r.value}}),i=k(()=>{const{heroText:c,heroImage:u,heroImageDark:f,heroAlt:p,heroImageStyle:m}=n.value;return{image:u?Me(u):null,imageDark:f?Me(f):null,heroStyle:m,alt:p||c||"hero image",isFullScreen:r.value}}),s=k(()=>{const{bgImage:c,bgImageDark:u,bgImageStyle:f}=n.value;return{image:Ct(c)?Me(c):null,imageDark:Ct(u)?Me(u):null,bgStyle:f,isFullScreen:r.value}}),l=k(()=>n.value.actions??[]);return()=>{var c,u,f;return d("header",{class:["vp-hero-info-wrapper",{fullscreen:r.value}]},[((c=t.heroBg)==null?void 0:c.call(t,s.value))||[s.value.image?d("div",{class:["vp-hero-mask",{light:s.value.imageDark}],style:[{"background-image":`url(${s.value.image})`},s.value.bgStyle]}):null,s.value.imageDark?d("div",{class:"vp-hero-mask dark",style:[{"background-image":`url(${s.value.imageDark})`},s.value.bgStyle]}):null],d("div",{class:"vp-hero-info"},[((u=t.heroImage)==null?void 0:u.call(t,i.value))||d(gn,{appear:!0,type:"group"},()=>[i.value.image?d("img",{key:"light",class:["vp-hero-image",{light:i.value.imageDark}],style:i.value.heroStyle,src:i.value.image,alt:i.value.alt}):null,i.value.imageDark?d("img",{key:"dark",class:"vp-hero-image dark",style:i.value.heroStyle,src:i.value.imageDark,alt:i.value.alt}):null]),((f=t.heroInfo)==null?void 0:f.call(t,a.value))??d("div",{class:"vp-hero-infos"},[a.value.text?d(gn,{appear:!0,delay:.04},()=>d("h1",{id:"main-title"},a.value.text)):null,a.value.tagline?d(gn,{appear:!0,delay:.08},()=>d("p",{class:"vp-description",innerHTML:a.value.tagline})):null,l.value.length?d(gn,{appear:!0,delay:.12},()=>d("p",{class:"vp-actions"},l.value.map(p=>d(Be,{class:["vp-action",p.type||"default"],config:p,noExternalLinkIcon:!0})))):null])])])}}});const mu=(e,{slots:t})=>{var p,m,g;const{bgImage:n,bgImageDark:o,bgImageStyle:r,color:a,description:i,image:s,imageDark:l,header:c,highlights:u=[],type:f="un-order"}=e;return d("div",{class:"vp-highlight-wrapper",style:a?{color:a}:{}},[n?d("div",{class:["vp-highlight-bg",{light:o}],style:[{"background-image":`url(${n})`},r]}):null,o?d("div",{class:"vp-highlight-bg dark",style:[{"background-image":`url(${o})`},r]}):null,d("div",{class:"vp-highlight"},[((p=t.image)==null?void 0:p.call(t,e))||[s?d("img",{class:["vp-highlight-image",{light:l}],src:Me(s),alt:c}):null,l?d("img",{class:"vp-highlight-image dark",src:Me(l),alt:c}):null],((m=t.info)==null?void 0:m.call(t,e))||[d("div",{class:"vp-highlight-info-wrapper"},d("div",{class:"vp-highlight-info"},[c?d("h2",{class:"vp-highlight-header",innerHTML:c}):null,i?d("p",{class:"vp-highlight-description",innerHTML:i}):null,((g=t.highlights)==null?void 0:g.call(t,u))||d(f==="order"?"ol":f==="no-order"?"dl":"ul",{class:"vp-highlights"},u.map(({icon:E,title:A,details:w,link:O})=>{const y=[d(f==="no-order"?"dt":"h3",{class:"vp-highlight-title"},[E?d(He,{class:"vp-highlight-icon",icon:E}):null,d("span",{innerHTML:A})]),w?d(f==="no-order"?"dd":"p",{class:"vp-highlight-details",innerHTML:w}):null];return d(f==="no-order"?"div":"li",{class:["vp-highlight-item-wrapper",{link:O}]},O?Oh(O)?d("a",{class:"vp-highlight-item link",href:O,role:"navigation","aria-label":A,target:"_blank"},y):d(ut,{class:"vp-highlight-item link",to:O,role:"navigation","aria-label":A},()=>y):d("div",{class:"vp-highlight-item"},y))}))]))]])])};mu.displayName="HighlightPanel";var N1=mu,V1=W({name:"HomePage",slots:Object,setup(e,{slots:t}){const n=ur(),o=Le(),r=k(()=>{const{features:i}=o.value;return K(i)?i:null}),a=k(()=>{const{highlights:i}=o.value;return K(i)?i:null});return()=>{var i,s,l,c;return d("main",{id:"main-content",class:["vp-project-home ",{pure:n.value}],"aria-labelledby":o.value.heroText===null?"":"main-title"},[(i=t.top)==null?void 0:i.call(t),d(M1),((s=a.value)==null?void 0:s.map(u=>"features"in u?d(bs,u):d(N1,u)))||(r.value?d(gn,{appear:!0,delay:.24},()=>d(bs,{features:r.value})):null),(l=t.center)==null?void 0:l.call(t),d(gn,{appear:!0,delay:.32},()=>d(nu)),(c=t.bottom)==null?void 0:c.call(t)])}}}),F1=W({name:"BreadCrumb",setup(){const e=De(),t=he(),n=It(),o=Le(),r=ge(),a=tt([]),i=k(()=>(o.value.breadcrumb||o.value.breadcrumb!==!1&&r.value.breadcrumb!==!1)&&a.value.length>1),s=k(()=>o.value.breadcrumbIcon||o.value.breadcrumbIcon!==!1&&r.value.breadcrumbIcon!==!1),l=()=>{const c=e.getRoutes(),u=$1(t.value.path,n.value).map(({link:f,name:p})=>{const m=c.find(g=>g.path===f);if(m){const{meta:g,path:E}=Ko(e,m.path);return{title:g[At.shortTitle]||g[At.title]||p,icon:g[At.icon],path:E}}return null}).filter(f=>f!==null);u.length>1&&(a.value=u)};return pe(()=>{l(),re(()=>t.value.path,l)}),()=>d("nav",{class:["vp-breadcrumb",{disable:!i.value}]},i.value?d("ol",{vocab:"https://schema.org/",typeof:"BreadcrumbList"},a.value.map((c,u)=>d("li",{class:{"is-active":a.value.length-1===u},property:"itemListElement",typeof:"ListItem"},[d(ut,{to:c.path,property:"item",typeof:"WebPage"},()=>[s.value?d(He,{icon:c.icon}):null,d("span",{property:"name"},c.title||"Unknown")]),d("meta",{property:"position",content:u+1})]))):[])}});const ys=e=>{const t=De();return e===!1?!1:se(e)?En(t,e,!0):Aa(e)?e:null},Xr=(e,t,n)=>{const o=e.findIndex(r=>r.link===t);if(o!==-1){const r=e[o+n];return r!=null&&r.link?r:null}for(const r of e)if(r.children){const a=Xr(r.children,t,n);if(a)return a}return null};var B1=W({name:"PageNav",setup(){const e=ge(),t=Le(),n=za(),o=he(),r=zv(),a=k(()=>{const s=ys(t.value.prev);return s===!1?null:s||(e.value.prevLink===!1?null:Xr(n.value,o.value.path,-1))}),i=k(()=>{const s=ys(t.value.next);return s===!1?null:s||(e.value.nextLink===!1?null:Xr(n.value,o.value.path,1))});return Ie("keydown",s=>{s.altKey&&(s.key==="ArrowRight"?i.value&&(r(i.value.link),s.preventDefault()):s.key==="ArrowLeft"&&a.value&&(r(a.value.link),s.preventDefault()))}),()=>a.value||i.value?d("nav",{class:"vp-page-nav"},[a.value?d(Be,{class:"prev",config:a.value},()=>{var s,l;return[d("div",{class:"hint"},[d("span",{class:"arrow start"}),e.value.metaLocales.prev]),d("div",{class:"link"},[d(He,{icon:(s=a.value)==null?void 0:s.icon}),(l=a.value)==null?void 0:l.text])]}):null,i.value?d(Be,{class:"next",config:i.value},()=>{var s,l;return[d("div",{class:"hint"},[e.value.metaLocales.next,d("span",{class:"arrow end"})]),d("div",{class:"link"},[(s=i.value)==null?void 0:s.text,d(He,{icon:(l=i.value)==null?void 0:l.icon})])]}):null]):null}});const z1={GitHub:":repo/edit/:branch/:path",GitLab:":repo/-/edit/:branch/:path",Gitee:":repo/edit/:branch/:path",Bitbucket:":repo/src/:branch/:path?mode=edit&spa=0&at=:branch&fileviewer=file-view-default"},H1=({docsRepo:e,docsBranch:t,docsDir:n,filePathRelative:o,editLinkPattern:r})=>{if(!o)return null;const a=ic(e);let i;return r?i=r:a!==null&&(i=z1[a]),i?i.replace(/:repo/,Fn(e)?e:`https://github.com/${e}`).replace(/:branch/,t).replace(/:path/,Rl(`${ka(n)}/${o}`)):null},j1=()=>{const e=ge(),t=he(),n=Le();return k(()=>{const{repo:o,docsRepo:r=o,docsBranch:a="main",docsDir:i="",editLink:s,editLinkPattern:l=""}=e.value;if(!(n.value.editLink??s??!0)||!r)return null;const c=H1({docsRepo:r,docsBranch:a,docsDir:i,editLinkPattern:l,filePathRelative:t.value.filePathRelative});return c?{text:e.value.metaLocales.editLink,link:c}:null})},W1=()=>{const e=or(),t=ge(),n=he(),o=Le();return k(()=>{var r,a;return!(o.value.lastUpdated??t.value.lastUpdated??!0)||!((r=n.value.git)!=null&&r.updatedTime)?null:new Date((a=n.value.git)==null?void 0:a.updatedTime).toLocaleString(e.value.lang)})},U1=()=>{const e=ge(),t=he(),n=Le();return k(()=>{var o;return n.value.contributors??e.value.contributors??!0?((o=t.value.git)==null?void 0:o.contributors)??null:null})};var q1=W({name:"PageTitle",setup(){const e=he(),t=Le(),n=ge(),{info:o,items:r}=Uv();return()=>d("div",{class:"vp-page-title"},[d("h1",[n.value.titleIcon===!1?null:d(He,{icon:t.value.icon}),e.value.title]),d(S1,{info:o.value,...r.value===null?{}:{items:r.value}}),d("hr")])}});const vu=()=>d(be,{name:"edit"},()=>[d("path",{d:"M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"}),d("path",{d:"M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"})]);vu.displayName="EditIcon";var K1=W({name:"PageMeta",setup(){const e=ge(),t=j1(),n=W1(),o=U1();return()=>{const{metaLocales:r}=e.value;return d("footer",{class:"page-meta"},[t.value?d("div",{class:"meta-item edit-link"},d(Be,{class:"label",config:t.value},{before:()=>d(vu)})):null,d("div",{class:"meta-item git-info"},[n.value?d("div",{class:"update-time"},[d("span",{class:"label"},`${r.lastUpdated}: `),d(rr,()=>d("span",{class:"info"},n.value))]):null,o.value&&o.value.length?d("div",{class:"contributors"},[d("span",{class:"label"},`${r.contributors}: `),o.value.map(({email:a,name:i},s)=>[d("span",{class:"contributor",title:`email: ${a}`},i),s!==o.value.length-1?",":""])]):null])])}}}),G1=W({name:"NormalPage",slots:Object,setup(e,{slots:t}){const n=Le(),o=he(),{isDarkmode:r}=go(),a=ge(),i=k(()=>n.value.toc||n.value.toc!==!1&&a.value.toc!==!1);return()=>d("main",{id:"main-content",class:"vp-page"},d(gt("LocalEncrypt")?ct("LocalEncrypt"):Zl,()=>{var s,l,c,u;return[(s=t.top)==null?void 0:s.call(t),n.value.cover?d("img",{class:"page-cover",src:Me(n.value.cover),alt:o.value.title,"no-view":""}):null,d(F1),d(q1),i.value?d(R1,{headerDepth:n.value.headerDepth??a.value.headerDepth??2},{before:()=>{var f;return(f=t.tocBefore)==null?void 0:f.call(t)},after:()=>{var f;return(f=t.tocAfter)==null?void 0:f.call(t)}}):null,(l=t.contentBefore)==null?void 0:l.call(t),d(nu),(c=t.contentAfter)==null?void 0:c.call(t),d(K1),d(B1),gt("CommentService")?d(ct("CommentService"),{darkmode:r.value}):null,(u=t.bottom)==null?void 0:u.call(t)]}))}}),Y1=W({name:"Layout",setup(){ge();const e=he(),t=Le(),{isMobile:n}=dr(),o=k(()=>"none");return()=>[d(fu),d(tu,{},{default:()=>t.value.home?d(V1):d(D1,()=>d(G1,{key:e.value.path})),...o.value!=="none"?{navScreenBottom:()=>d(ct("BloggerInfo"))}:{},...!n.value&&o.value==="always"?{sidebar:()=>d(ct("BloggerInfo"))}:{}})]}}),J1=W({name:"NotFoundHint",setup(){const e=ge(),t=()=>{const n=e.value.routeLocales.notFoundMsg;return n[Math.floor(Math.random()*n.length)]};return()=>d("div",{class:"not-found-hint"},[d("p",{class:"error-code"},"404"),d("h1",{class:"error-title"},e.value.routeLocales.notFoundTitle),d("p",{class:"error-hint"},t())])}}),Q1=W({name:"NotFound",slots:Object,setup(e,{slots:t}){const n=It(),o=ge(),{navigate:r}=Ur({to:o.value.home??n.value});return()=>[d(fu),d(tu,{noSidebar:!0},()=>{var a;return d("main",{id:"main-content",class:"vp-page not-found"},((a=t.default)==null?void 0:a.call(t))||[d(J1),d("div",{class:"actions"},[d("button",{type:"button",class:"action-button",onClick:()=>{window.history.go(-1)}},o.value.routeLocales.back),d("button",{type:"button",class:"action-button",onClick:()=>r()},o.value.routeLocales.home)])])})]}});Im(He);const X1=Ne({enhance:({app:e,router:t})=>{const{scrollBehavior:n}=t.options;t.options.scrollBehavior=async(...o)=>(await pu().wait(),n(...o)),Gv(e),e.component("HopeIcon",He),e.component("VPLink",ut)},setup:()=>{Yv(),Zv()},layouts:{Layout:Y1,NotFound:Q1}}),Z1=e=>{const t=Ie("keydown",n=>{const o=n.key==="k"&&(n.ctrlKey||n.metaKey);!(n.key==="/")&&!o||(n.preventDefault(),e(),t())})},e0=e=>e.button===1||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey,t0=()=>{const e=De();return{hitComponent:({hit:t,children:n})=>({type:"a",ref:void 0,constructor:void 0,key:void 0,props:{href:t.url,onClick:o=>{e0(o)||(o.preventDefault(),e.push($i(t.url,"/")))},children:n},__v:null}),navigator:{navigate:({itemUrl:t})=>{e.push($i(t,"/"))}},transformSearchClient:t=>{const n=_c(t.search,500);return{...t,search:async(...o)=>n(...o)}}}},n0=(e=[],t)=>[`lang:${t}`,...K(e)?e:[e]],o0=({buttonText:e="Search",buttonAriaLabel:t=e}={})=>``,r0=16,gu=()=>{if(document.querySelector(".DocSearch-Modal"))return;const e=new Event("keydown");e.key="k",e.metaKey=!0,window.dispatchEvent(e),setTimeout(gu,r0)},a0=e=>{const t="algolia-preconnect";(window.requestIdleCallback||setTimeout)(()=>{if(document.head.querySelector(`#${t}`))return;const o=document.createElement("link");o.id=t,o.rel="preconnect",o.href=`https://${e}-dsn.algolia.net`,o.crossOrigin="",document.head.appendChild(o)})},i0={appId:"28CTGDOOQD",apiKey:"72d7a9a0f9f0466218ea19988886dce8",indexName:"hutao",locales:{"/zh/":{placeholder:"搜索文档",translations:{button:{buttonText:"搜索文档",buttonAriaLabel:"搜索文档"},modal:{searchBox:{resetButtonTitle:"清除查询条件",resetButtonAriaLabel:"清除查询条件",cancelButtonText:"取消",cancelButtonAriaLabel:"取消"},startScreen:{recentSearchesTitle:"搜索历史",noRecentSearchesText:"没有搜索历史",saveRecentSearchButtonTitle:"保存至搜索历史",removeRecentSearchButtonTitle:"从搜索历史中移除",favoriteSearchesTitle:"收藏",removeFavoriteSearchButtonTitle:"从收藏中移除"},errorScreen:{titleText:"无法获取结果",helpText:"你可能需要检查你的网络连接"},footer:{selectText:"选择",navigateText:"切换",closeText:"关闭",searchByText:"搜索提供者"},noResultsScreen:{noResultsText:"无法找到相关结果",suggestedQueryText:"你可以尝试查询",reportMissingResultsText:"你认为该查询应该有结果?",reportMissingResultsLinkText:"点击反馈"}}}},"/en/":{placeholder:"Search documents",translations:{button:{buttonText:"Search documents"}}}}};_(()=>import("./style-e9220a04.js"),[]),_(()=>import("./docsearch-1d421ddb.js"),[]);const s0=W({name:"Docsearch",props:{containerId:{type:String,required:!1,default:"docsearch-container"},options:{type:Object,required:!1,default:()=>i0}},setup(e){const t=t0(),n=nr(),o=It(),r=G(!1),a=G(!1),i=k(()=>{var c;return{...e.options,...(c=e.options.locales)==null?void 0:c[o.value]}}),s=async()=>{var u;const{default:c}=await _(()=>import("./index-82585c84.js"),[]);c({...t,...i.value,container:`#${e.containerId}`,searchParameters:{...i.value.searchParameters,facetFilters:n0((u=i.value.searchParameters)==null?void 0:u.facetFilters,n.value)}}),r.value=!0},l=()=>{a.value||r.value||(a.value=!0,s(),gu(),re(o,s))};return Z1(l),pe(()=>a0(i.value.appId)),()=>{var c;return[d("div",{id:e.containerId,style:{display:r.value?"block":"none"}}),r.value?null:d("div",{onClick:l,innerHTML:o0((c=i.value.translations)==null?void 0:c.button)})]}}}),l0=Ne({enhance({app:e}){e.component("Docsearch",s0)}}),c0=e=>{if(window.dataLayer&&window.gtag)return;const t=document.createElement("script");t.src=`https://www.googletagmanager.com/gtag/js?id=${e.id}`,t.async=!0,document.head.appendChild(t),window.dataLayer=window.dataLayer||[],window.gtag=function(){dataLayer.push(arguments)},gtag("js",new Date),e.debug?gtag("config",e.id,{debug_mode:!0}):gtag("config",e.id)},u0={id:"G-F3LFJCE3RM"},d0=Ne({enhance(){c0(u0)}});const _u={autoLocale:!0,switchLocale:"modal",localeConfig:{0:["/en/",["en-US","en-UK","en"]],1:["/zh/",["zh-CN","zh-TW","zh"]],"/zh/":["zh-CN"],"/en/":["en-US"]},defaultLocale:"/en/",localeFallback:!0,defaultBehavior:"defaultLocale"},ws=lr(_u.localeConfig),Es={"/zh/":{name:"简体中文",hint:"您的首选语言是 $1,是否切换到该语言?",switch:"切换到 $1",cancel:"取消"},"/en/":{name:"English",hint:"Your primary language is $1, do you want to switch to it?",switch:"Switch to $1",cancel:"Cancel"},"/":{name:"English",hint:"Your primary language is $1, do you want to switch to it?",switch:"Switch to $1",cancel:"Cancel"}},{switchLocale:Ts}=_u,As=hm("VUEPRESS_REDIRECT_LOCALES",{});var f0=W({name:"LanguageSwitch",setup(){const e=fm(),t=je(),n=De(),o=It(),r=G(!1),a=k(()=>{if(ws.some(([c])=>o.value===c)){for(const c of e.value)for(const[u,f]of ws)if(f.includes(c))return u===o.value?null:{lang:c,localePath:u}}return null}),i=k(()=>{if(a.value){const{lang:c,localePath:u}=a.value,f=[Es[o.value],Es[u]];return{hint:f.map(({hint:p})=>p.replace("$1",c)),switch:f.map(({switch:p})=>p.replace("$1",c)).join(" / "),cancel:f.map(({cancel:p})=>p).join(" / ")}}return null}),s=k(()=>a.value?t.path.replace(o.value,a.value.localePath):null),l=()=>{As.value[o.value]=!0,r.value=!1};return pe(()=>{const c=Ma(document.body);As.value[o.value]||(a.value?Ts==="direct"?n.replace(s.value):Ts==="modal"?r.value=!0:r.value=!1:r.value=!1),re(r,u=>{c.value=u},{immediate:!0}),Vn(()=>{c.value=!1})}),()=>r.value?d(Ta,{name:"lang-modal-fade"},()=>{var c,u,f;return r.value?[d("div",{key:"mask",class:"lang-modal-mask"}),d("div",{key:"popup",class:"lang-modal-wrapper"},[d("div",{class:"lang-modal-content"},(c=i.value)==null?void 0:c.hint.map(p=>d("p",p))),d("button",{type:"button",class:"lang-modal-action primary",onClick:()=>{l(),n.replace(s.value)}},(u=i.value)==null?void 0:u.switch),d("button",{type:"button",class:"lang-modal-action",onClick:()=>l()},(f=i.value)==null?void 0:f.cancel)])]:[]}):null}}),p0=Ne({setup(){},rootComponents:[f0]});const Ro=[bp,Am,Pm,$m,Vm,Hm,Km,iv,pv,mv,kv,xv,X1,l0,d0,p0],h0=[["v-2d0a870d","/en/",{y:"h",t:"Home",i:"iconfont icon-home"},["/en/README.md"]],["v-082946dd","/en/community.html",{y:"a",t:"Join Community",i:"iconfont icon-community",O:8},[":md"]],["v-038e810e","/en/i18n.html",{y:"a",t:"Localization",i:"iconfont icon-network",O:7},[":md"]],["v-ba407326","/en/menu.html",{y:"a",t:"Site Menu",I:0},[":md"]],["v-586858ed","/en/project.html",{y:"a",t:"Project",i:"iconfont icon-workingDirectory",O:6},[":md"]],["v-0c01f6a4","/en/quick-start.html",{y:"a",t:"Quick Start",i:"iconfont icon-play",O:5},[":md"]],["v-23b9870a","/en/side-load.html",{y:"a",t:""},[":md"]],["v-7d29d7d8","/en/star-request.html",{y:"a",t:""},[":md"]],["v-2d0ad528","/zh/",{y:"h",t:"首页",i:"iconfont icon-home"},["/zh/README.md"]],["v-5cad49b8","/zh/community.html",{y:"a",t:"加入用户社区",i:"iconfont icon-community",O:8},[":md"]],["v-27c4e153","/zh/i18n.html",{y:"a",t:"国际化支持",i:"iconfont icon-network",O:7},[":md"]],["v-71d3b29c","/zh/menu.html",{y:"a",t:"全站目录",I:0},[":md"]],["v-6c355688","/zh/project.html",{y:"a",t:"项目说明",i:"iconfont icon-workingDirectory",O:6},[":md"]],["v-4f90aebf","/zh/quick-start.html",{y:"a",t:"快速开始",i:"iconfont icon-play",O:5},[":md"]],["v-783d89e5","/zh/side-load.html",{y:"a",t:""},[":md"]],["v-a91bb9c6","/zh/star-request.html",{y:"a",t:""},[":md"]],["v-1bd4ef83","/en/advanced/FAQ.html",{y:"a",t:"FAQ",i:"iconfont icon-ask",O:1},[":md"]],["v-5c3f740a","/en/advanced/Gacha-system-and-export-principal.html",{y:"a",t:"祈愿系统与导出原理",i:"iconfont icon-read",O:8},[":md"]],["v-5f449840","/en/advanced/",{y:"a",t:"Advanced",O:2},["/en/advanced/README.md"]],["v-e14c56e4","/en/advanced/dependency.html",{y:"a",t:"Install Dependency Manually",i:"iconfont icon-structure",O:6},[":md"]],["v-1a028d16","/en/advanced/exceptions.html",{y:"a",t:"Common Program Exceptions",i:"iconfont icon-warn",O:2},[":md"]],["v-bd668802","/en/advanced/get-stoken-cookie-from-the-third-party.html",{y:"a",t:"使用第三方工具获取有 Stoken 的 cookie",i:"iconfont icon-read",O:7},[":md"]],["v-51647c4a","/en/advanced/known-issue.html",{y:"a",t:"Known Issue",i:"iconfont icon-tool",O:3},[":md"]],["v-bbae7dd2","/en/advanced/uninstall.html",{y:"a",t:"Uninstall Snap Hutao",i:"iconfont icon-delete",O:9},[":md"]],["v-f88d343e","/en/development/",{y:"a",t:"Open Source Development",O:3},["/en/development/README.md"]],["v-4c2cca8b","/en/development/contribute.html",{y:"a",t:"Contribute Your Code",i:"iconfont icon-code",O:2},[":md"]],["v-32bb1805","/en/development/platform.html",{y:"a",t:"Hutao Open Platform",i:"iconfont icon-vscode",O:1},[":md"]],["v-30f089b6","/en/features/",{y:"a",t:"Features",O:1},["/en/features/README.md"]],["v-699a13b0","/en/features/achievements.html",{y:"a",t:"Achievement Management",O:5},[":md"]],["v-f3692af4","/en/features/character-data.html",{y:"a",t:"My Characters",O:7},[":md"]],["v-10108380","/en/features/character-wiki.html",{y:"a",t:"Character WIKI",O:10},[":md"]],["v-36ceadac","/en/features/dashboard.html",{y:"a",t:"Home Dashboard",O:2},[":md"]],["v-83f6294a","/en/features/develop-plan.html",{y:"a",t:"Development Plan",O:9},[":md"]],["v-7839fe83","/en/features/game-launcher.html",{y:"a",t:"Game Launcher",O:3},[":md"]],["v-0106e0dc","/en/features/hutao-API.html",{y:"a",t:"Hutao Database / Abyss Record",O:8},[":md"]],["v-639b3ef9","/en/features/hutao-settings.html",{y:"a",t:"Software Settings",O:14},[":md"]],["v-03aaffb1","/en/features/mhy-account-switch.html",{y:"a",t:"MiHoYo BBS Account Switch",O:13},[":md"]],["v-1e98d471","/en/features/monster-wiki.html",{y:"a",t:"Monster WIKI",O:12},[":md"]],["v-124743a4","/en/features/real-time-notes.html",{y:"a",t:"Real-time Notes",O:6},[":md"]],["v-3b7edd61","/en/features/setup.html",{y:"a",t:"Initial Setup Guide",O:1},[":md"]],["v-e30b3c46","/en/features/weapon-wiki.html",{y:"a",t:"Weapon WIKI",O:11},[":md"]],["v-b8e3a2b8","/en/features/wish-export.html",{y:"a",t:"Wish History",O:4},[":md"]],["v-a4f9d2c4","/en/statements/",{y:"a",t:"Statements",O:4},["/en/statements/README.md"]],["v-45ceb024","/en/statements/bug-report.html",{y:"a",t:"Submit Bug Report",i:"iconfont icon-debug",O:2},[":md"]],["v-b4085a44","/en/statements/privacy-notice.html",{y:"a",t:"User Data and Privacy Notice",i:"iconfont icon-license",O:3},[":md"]],["v-b1c7a1c2","/en/statements/tos.html",{y:"a",t:"User Agreement and Legal Notices",i:"iconfont icon-license",O:4},[":md"]],["v-52f43e3b","/en/statements/update-log.html",{y:"a",t:"Update Logs",i:"iconfont icon-update",O:1},[":md"]],["v-4a1d3ac8","/zh/advanced/FAQ.html",{y:"a",t:"常见问题",i:"iconfont icon-ask",O:1},[":md"]],["v-b0dd6b00","/zh/advanced/Gacha-system-and-export-principal.html",{y:"a",t:"祈愿系统与导出原理",i:"iconfont icon-read",O:8},[":md"]],["v-16d7d7b6","/zh/advanced/",{y:"a",t:"高级",O:2},["/zh/advanced/README.md"]],["v-37e841a9","/zh/advanced/dependency.html",{y:"a",t:"手动安装依赖项",i:"iconfont icon-structure",O:6},[":md"]],["v-c8e5b2e0","/zh/advanced/exceptions.html",{y:"a",t:"常见的程序异常",i:"iconfont icon-warn",O:2},[":md"]],["v-6892c29a","/zh/advanced/get-stoken-cookie-from-the-third-party.html",{y:"a",t:"使用第三方工具获取有 Stoken 的 cookie",i:"iconfont icon-read",O:7},[":md"]],["v-8ab89ae2","/zh/advanced/known-issue.html",{y:"a",t:"已知问题",i:"iconfont icon-tool",O:3},[":md"]],["v-a04a76c8","/zh/advanced/uninstall.html",{y:"a",t:"卸载胡桃工具箱",i:"iconfont icon-delete",O:9},[":md"]],["v-d0f33908","/zh/development/",{y:"a",t:"开源开发",O:3},["/zh/development/README.md"]],["v-62778390","/zh/development/contribute.html",{y:"a",t:"贡献你的代码",i:"iconfont icon-code",O:2},[":md"]],["v-c80b636c","/zh/development/platform.html",{y:"a",t:"胡桃开放平台",i:"iconfont icon-vscode",O:1},[":md"]],["v-56d3ae80","/zh/development/symposium1.html",{y:"a",t:"第一期开发组座谈会",I:0},[":md"]],["v-5369fd42","/zh/development/symposium2.html",{y:"a",t:"第二期开发组座谈会",I:0},[":md"]],["v-0bbe1b6a","/zh/features/",{y:"a",t:"功能指南",O:1},["/zh/features/README.md"]],["v-2841a60b","/zh/features/achievements.html",{y:"a",t:"成就管理",O:5},[":md"]],["v-3957d221","/zh/features/character-data.html",{y:"a",t:"属性统计",O:7},[":md"]],["v-a9f7b44a","/zh/features/character-wiki.html",{y:"a",t:"角色资料",O:10},[":md"]],["v-1b6aa6a2","/zh/features/dashboard.html",{y:"a",t:"首页仪表盘",O:2},[":md"]],["v-7cac7db6","/zh/features/develop-plan.html",{y:"a",t:"养成计划",O:9},[":md"]],["v-e2f690f0","/zh/features/game-launcher.html",{y:"a",t:"高级启动器",O:3},[":md"]],["v-0eb8e461","/zh/features/hutao-API.html",{y:"a",t:"胡桃数据库/深渊统计",O:8},[":md"]],["v-16a7a694","/zh/features/hutao-settings.html",{y:"a",t:"软件设置",O:14},[":md"]],["v-04b421cc","/zh/features/mhy-account-switch.html",{y:"a",t:"米游社多帐号切换",O:13},[":md"]],["v-457f3268","/zh/features/monster-wiki.html",{y:"a",t:"怪物资料",O:12},[":md"]],["v-b5462c1a","/zh/features/real-time-notes.html",{y:"a",t:"实时便笺",O:6},[":md"]],["v-0e3d2934","/zh/features/setup.html",{y:"a",t:"初始化引导",O:1},[":md"]],["v-108ccfbc","/zh/features/weapon-wiki.html",{y:"a",t:"武器资料",O:11},[":md"]],["v-0ccd64e9","/zh/features/wish-export.html",{y:"a",t:"祈愿记录",O:4},[":md"]],["v-c4bb0cba","/zh/statements/",{y:"a",t:"声明和公告",O:4},["/zh/statements/README.md"]],["v-c87f8b6e","/zh/statements/bug-report.html",{y:"a",t:"提交 BUG 报告",i:"iconfont icon-debug",O:2},[":md"]],["v-70e6808e","/zh/statements/privacy-notice.html",{y:"a",t:"用户数据和隐私权益",i:"iconfont icon-license",O:3},[":md"]],["v-647ebd24","/zh/statements/tos.html",{y:"a",t:"用户使用协议和法律声明",i:"iconfont icon-license",O:4},[":md"]],["v-119bd096","/zh/statements/update-log.html",{y:"a",t:"更新日志",i:"iconfont icon-update",O:1},[":md"]],["v-3706649a","/404.html",{y:"p",t:""},[]],["v-8daa1a0e","/",{y:"p",t:"Home"},[]]];var ks=W({name:"Vuepress",setup(){const e=hp();return()=>d(e.value)}}),m0=()=>h0.reduce((e,[t,n,o,r])=>(e.push({name:t,path:n,component:ks,meta:o},{path:n.endsWith("/")?n+"index.html":n.substring(0,n.length-5),redirect:n},...r.map(a=>({path:a===":md"?n.substring(0,n.length-5)+".md":a,redirect:n}))),e),[{name:"404",path:"/:catchAll(.*)",component:ks}]),v0=Np,g0=()=>{const e=yh({history:v0(ka("/")),routes:m0(),scrollBehavior:(t,n,o)=>o||(t.hash?{el:t.hash}:{top:0})});return e.beforeResolve(async(t,n)=>{var o;(t.path!==n.path||n===wt)&&([t.meta._data]=await Promise.all([yt.resolvePageData(t.name),(o=xl[t.name])==null?void 0:o.__asyncLoader()]))}),e},_0=e=>{e.component("ClientOnly",rr),e.component("Content",zl)},b0=(e,t,n)=>{const o=es(()=>t.currentRoute.value.path),r=es(()=>yt.resolveRouteLocale(vn.value.locales,o.value)),a=Fh(o,()=>t.currentRoute.value.meta._data),i=k(()=>yt.resolveLayouts(n)),s=k(()=>yt.resolveSiteLocaleData(vn.value,r.value)),l=k(()=>yt.resolvePageFrontmatter(a.value)),c=k(()=>yt.resolvePageHeadTitle(a.value,s.value)),u=k(()=>yt.resolvePageHead(c.value,l.value,s.value)),f=k(()=>yt.resolvePageLang(a.value,s.value)),p=k(()=>yt.resolvePageLayout(a.value,i.value));return e.provide(up,i),e.provide(Dl,a),e.provide($l,l),e.provide(pp,c),e.provide(Ml,u),e.provide(Nl,f),e.provide(Vl,p),e.provide(La,r),e.provide(Bl,s),Object.defineProperties(e.config.globalProperties,{$frontmatter:{get:()=>l.value},$head:{get:()=>u.value},$headTitle:{get:()=>c.value},$lang:{get:()=>f.value},$page:{get:()=>a.value},$routeLocale:{get:()=>r.value},$site:{get:()=>vn.value},$siteLocale:{get:()=>s.value},$withBase:{get:()=>Me}}),{layouts:i,pageData:a,pageFrontmatter:l,pageHead:u,pageHeadTitle:c,pageLang:f,pageLayout:p,routeLocale:r,siteData:vn,siteLocaleData:s}},y0=()=>{const e=fp(),t=nr(),n=G([]),o=()=>{e.value.forEach(a=>{const i=w0(a);i&&n.value.push(i)})},r=()=>{document.documentElement.lang=t.value,n.value.forEach(a=>{a.parentNode===document.head&&document.head.removeChild(a)}),n.value.splice(0,n.value.length),e.value.forEach(a=>{const i=E0(a);i!==null&&(document.head.appendChild(i),n.value.push(i))})};Zt(vp,r),pe(()=>{o(),r(),re(()=>e.value,r)})},w0=([e,t,n=""])=>{const o=Object.entries(t).map(([s,l])=>se(l)?`[${s}=${JSON.stringify(l)}]`:l===!0?`[${s}]`:"").join(""),r=`head > ${e}${o}`;return Array.from(document.querySelectorAll(r)).find(s=>s.innerText===n)||null},E0=([e,t,n])=>{if(!se(e))return null;const o=document.createElement(e);return Aa(t)&&Object.entries(t).forEach(([r,a])=>{se(a)?o.setAttribute(r,a):a===!0&&o.setAttribute(r,"")}),se(n)&&o.appendChild(document.createTextNode(n)),o},T0=Zf,A0=async()=>{var n;const e=T0({name:"VuepressApp",setup(){var o;y0();for(const r of Ro)(o=r.setup)==null||o.call(r);return()=>[d(Xl),...Ro.flatMap(({rootComponents:r=[]})=>r.map(a=>d(a)))]}}),t=g0();_0(e),b0(e,t,Ro);for(const o of Ro)await((n=o.enhance)==null?void 0:n.call(o,{app:e,router:t,siteData:vn}));return e.use(t),{app:e,router:t}};A0().then(({app:e,router:t})=>{t.isReady().then(()=>{e.mount("#app")})});export{po as A,L0 as B,R0 as C,Ii as D,Ae as E,qe as F,I0 as G,as as H,Zt as I,sn as J,$0 as K,x0 as L,bl as a,yl as b,C0 as c,A0 as createVueApp,ke as d,S0 as e,pe as f,W as g,G as h,re as i,ga as j,O0 as k,we as l,k as m,oa as n,of as o,P0 as p,af as q,ct as r,it as s,k0 as t,D0 as u,ra as v,bd as w,d as x,Da as y,Vn as z}; diff --git a/assets/bug-report.html-23f07cf7.js b/assets/bug-report.html-6dbadeb5.js similarity index 98% rename from assets/bug-report.html-23f07cf7.js rename to assets/bug-report.html-6dbadeb5.js index 1c3872d25..189583e98 100644 --- a/assets/bug-report.html-23f07cf7.js +++ b/assets/bug-report.html-6dbadeb5.js @@ -1 +1 @@ -import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as n,c as d,a as s,b as t,d as e,w as o,e as b}from"./app-8966c29b.js";const k={},u=s("h1",{id:"提交-bug-报告",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#提交-bug-报告","aria-hidden":"true"},"#"),t(" 提交 BUG 报告")],-1),r=s("p",null,"在你使用 Snap Hutao 时如果发现了可复现或不可自行修复的问题,可以通过提交问题反馈来告知开发者。",-1),m=s("p",null,[s("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01jXBMbe1g6du15k9kx_!!1797064093.jpg_.webp",alt:"suggestion",loading:"lazy"})],-1),h=s("p",null,"在发起新的 Issue 之前,请先执行以下清单:",-1),_={class:"task-list-container"},p=s("li",{class:"task-list-item"},[s("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-0",disabled:"disabled"}),s("label",{class:"task-list-item-label",for:"task-item-0"}," 当前使用的是最新版本客户端")],-1),x={class:"task-list-item"},f=s("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-1",disabled:"disabled"},null,-1),g={class:"task-list-item-label",for:"task-item-1"},S=s("li",{class:"task-list-item"},[s("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-2",disabled:"disabled"}),s("label",{class:"task-list-item-label",for:"task-item-2"}," 搜索项目 Issue,检查是否已有相同或类似的问题")],-1),H=s("li",null,"若执行上述步骤后没有得到问题解决方案,你可以在 GitHub 上发起一个新的 Issue",-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E4%BC%98%E8%B4%A8%E9%97%AE%E9%A2%98+is%3Aclosed",target:"_blank",rel:"noopener noreferrer"},I={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/new/choose",target:"_blank",rel:"noopener noreferrer"},D=b('
  • 在 Issue 中,你应包含以下内容:
  • ',1),E=s("h2",{id:"请求增加或更新文档",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#请求增加或更新文档","aria-hidden":"true"},"#"),t(" 请求增加或更新文档")],-1),G=s("p",null,"如果你认为 Snap Hutao 的文档缺少重要内容或有错误的信息,可以从 Snap.Hutao.Docs 项目中发起 Issue",-1),w={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/new/choose",target:"_blank",rel:"noopener noreferrer"};function A(B,N){const a=i("RouterLink"),l=i("ExternalLinkIcon");return n(),d("div",null,[u,r,m,h,s("ul",_,[p,s("li",x,[f,s("label",g,[t(" 阅读"),e(a,{to:"/zh/advanced/FAQ.html"},{default:o(()=>[t("常见问题")]),_:1}),t("文档和"),e(a,{to:"/zh/advanced/known-issue.html"},{default:o(()=>[t("已知问题")]),_:1}),t("文档")])]),S,H]),s("p",null,[t("如果你不清楚怎样是一个好的 Issue 可以阅读 Snap Hutao 过去的一些"),s("a",y,[t("优质问题"),e(l)])]),s("ul",null,[s("li",null,[t("通过 GitHub 提交问题 "),s("ul",null,[s("li",null,[s("a",I,[t("github.com/DGP-Studio/Snap.Hutao/issues/new/choose"),e(l)])])])]),D]),E,G,s("ul",null,[s("li",null,[t("通过 GitHub 提交问题:"),s("a",w,[t("DGP-Studio/Snap.Hutao.Docs"),e(l)])])])])}const C=c(k,[["render",A],["__file","bug-report.html.vue"]]);export{C as default}; +import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as n,c as d,a as s,b as t,d as e,w as o,e as b}from"./app-5a96e1e2.js";const k={},u=s("h1",{id:"提交-bug-报告",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#提交-bug-报告","aria-hidden":"true"},"#"),t(" 提交 BUG 报告")],-1),r=s("p",null,"在你使用 Snap Hutao 时如果发现了可复现或不可自行修复的问题,可以通过提交问题反馈来告知开发者。",-1),m=s("p",null,[s("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01jXBMbe1g6du15k9kx_!!1797064093.jpg_.webp",alt:"suggestion",loading:"lazy"})],-1),h=s("p",null,"在发起新的 Issue 之前,请先执行以下清单:",-1),_={class:"task-list-container"},p=s("li",{class:"task-list-item"},[s("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-0",disabled:"disabled"}),s("label",{class:"task-list-item-label",for:"task-item-0"}," 当前使用的是最新版本客户端")],-1),x={class:"task-list-item"},f=s("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-1",disabled:"disabled"},null,-1),g={class:"task-list-item-label",for:"task-item-1"},S=s("li",{class:"task-list-item"},[s("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-2",disabled:"disabled"}),s("label",{class:"task-list-item-label",for:"task-item-2"}," 搜索项目 Issue,检查是否已有相同或类似的问题")],-1),H=s("li",null,"若执行上述步骤后没有得到问题解决方案,你可以在 GitHub 上发起一个新的 Issue",-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E4%BC%98%E8%B4%A8%E9%97%AE%E9%A2%98+is%3Aclosed",target:"_blank",rel:"noopener noreferrer"},I={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/new/choose",target:"_blank",rel:"noopener noreferrer"},D=b('
  • 在 Issue 中,你应包含以下内容:
  • ',1),E=s("h2",{id:"请求增加或更新文档",tabindex:"-1"},[s("a",{class:"header-anchor",href:"#请求增加或更新文档","aria-hidden":"true"},"#"),t(" 请求增加或更新文档")],-1),G=s("p",null,"如果你认为 Snap Hutao 的文档缺少重要内容或有错误的信息,可以从 Snap.Hutao.Docs 项目中发起 Issue",-1),w={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/new/choose",target:"_blank",rel:"noopener noreferrer"};function A(B,N){const a=i("RouterLink"),l=i("ExternalLinkIcon");return n(),d("div",null,[u,r,m,h,s("ul",_,[p,s("li",x,[f,s("label",g,[t(" 阅读"),e(a,{to:"/zh/advanced/FAQ.html"},{default:o(()=>[t("常见问题")]),_:1}),t("文档和"),e(a,{to:"/zh/advanced/known-issue.html"},{default:o(()=>[t("已知问题")]),_:1}),t("文档")])]),S,H]),s("p",null,[t("如果你不清楚怎样是一个好的 Issue 可以阅读 Snap Hutao 过去的一些"),s("a",y,[t("优质问题"),e(l)])]),s("ul",null,[s("li",null,[t("通过 GitHub 提交问题 "),s("ul",null,[s("li",null,[s("a",I,[t("github.com/DGP-Studio/Snap.Hutao/issues/new/choose"),e(l)])])])]),D]),E,G,s("ul",null,[s("li",null,[t("通过 GitHub 提交问题:"),s("a",w,[t("DGP-Studio/Snap.Hutao.Docs"),e(l)])])])])}const C=c(k,[["render",A],["__file","bug-report.html.vue"]]);export{C as default}; diff --git a/assets/bug-report.html-690a4891.js b/assets/bug-report.html-f5518e52.js similarity index 98% rename from assets/bug-report.html-690a4891.js rename to assets/bug-report.html-f5518e52.js index 1d701f141..abc7e74e6 100644 --- a/assets/bug-report.html-690a4891.js +++ b/assets/bug-report.html-f5518e52.js @@ -1 +1 @@ -import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as n,c as r,a as e,b as s,d as t,w as o,e as u}from"./app-8966c29b.js";const d={},b=e("h1",{id:"submit-bug-report",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#submit-bug-report","aria-hidden":"true"},"#"),s(" Submit Bug Report")],-1),m=e("p",null,"You can submit bug reports when you find reproducible issue that cannot be fixed by yourself",-1),k=e("p",null,"Before submitting your issue, please do the following checklist:",-1),h={class:"task-list-container"},p=e("li",{class:"task-list-item"},[e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-0",disabled:"disabled"}),e("label",{class:"task-list-item-label",for:"task-item-0"}," Make sure you are in the latest version of Snap Hutao")],-1),_={class:"task-list-item"},f=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-1",disabled:"disabled"},null,-1),y={class:"task-list-item-label",for:"task-item-1"},x=e("li",{class:"task-list-item"},[e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-2",disabled:"disabled"}),e("label",{class:"task-list-item-label",for:"task-item-2"}," Search current issues in the project to see if there is same or similar issues")],-1),g=e("p",null,"If you don't get a solution from the above checklist, you can start a new issue on GitHub",-1),S={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E4%BC%98%E8%B4%A8%E9%97%AE%E9%A2%98+is%3Aclosed",target:"_blank",rel:"noopener noreferrer"},w={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/new/choose",target:"_blank",rel:"noopener noreferrer"},H=u('
  • You should include these information in your issue:
  • ',1),v=e("h2",{id:"request-document-update",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#request-document-update","aria-hidden":"true"},"#"),s(" Request Document Update")],-1),D=e("p",null,"If you think Snap Hutao document is missing some information or contains errors, you can start an issue on Snap.Hutao.Docs project",-1),E={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/new/choose",target:"_blank",rel:"noopener noreferrer"};function A(G,I){const a=l("RouterLink"),i=l("ExternalLinkIcon");return n(),r("div",null,[b,m,k,e("ul",h,[p,e("li",_,[f,e("label",y,[s(" Check "),t(a,{to:"/en/advanced/FAQ.html"},{default:o(()=>[s("FAQ")]),_:1}),s(" document and "),t(a,{to:"/en/advanced/known-issue.html"},{default:o(()=>[s("known issues")]),_:1}),s(" document")])]),x]),g,e("p",null,[s("If you need some examples of good issues, you can check them "),e("a",S,[s("here"),t(i)])]),e("ul",null,[e("li",null,[s("Submit your issue on GitHub "),e("ul",null,[e("li",null,[e("a",w,[s("github.com/DGP-Studio/Snap.Hutao/issues/new/choose"),t(i)])])])]),H]),v,D,e("ul",null,[e("li",null,[s("Submit your issue on GitHub:"),e("a",E,[s("DGP-Studio/Snap.Hutao.Docs"),t(i)])])])])}const P=c(d,[["render",A],["__file","bug-report.html.vue"]]);export{P as default}; +import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as n,c as r,a as e,b as s,d as t,w as o,e as u}from"./app-5a96e1e2.js";const d={},b=e("h1",{id:"submit-bug-report",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#submit-bug-report","aria-hidden":"true"},"#"),s(" Submit Bug Report")],-1),m=e("p",null,"You can submit bug reports when you find reproducible issue that cannot be fixed by yourself",-1),k=e("p",null,"Before submitting your issue, please do the following checklist:",-1),h={class:"task-list-container"},p=e("li",{class:"task-list-item"},[e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-0",disabled:"disabled"}),e("label",{class:"task-list-item-label",for:"task-item-0"}," Make sure you are in the latest version of Snap Hutao")],-1),_={class:"task-list-item"},f=e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-1",disabled:"disabled"},null,-1),y={class:"task-list-item-label",for:"task-item-1"},x=e("li",{class:"task-list-item"},[e("input",{type:"checkbox",class:"task-list-item-checkbox",id:"task-item-2",disabled:"disabled"}),e("label",{class:"task-list-item-label",for:"task-item-2"}," Search current issues in the project to see if there is same or similar issues")],-1),g=e("p",null,"If you don't get a solution from the above checklist, you can start a new issue on GitHub",-1),S={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E4%BC%98%E8%B4%A8%E9%97%AE%E9%A2%98+is%3Aclosed",target:"_blank",rel:"noopener noreferrer"},w={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/new/choose",target:"_blank",rel:"noopener noreferrer"},H=u('
  • You should include these information in your issue:
  • ',1),v=e("h2",{id:"request-document-update",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#request-document-update","aria-hidden":"true"},"#"),s(" Request Document Update")],-1),D=e("p",null,"If you think Snap Hutao document is missing some information or contains errors, you can start an issue on Snap.Hutao.Docs project",-1),E={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs/issues/new/choose",target:"_blank",rel:"noopener noreferrer"};function A(G,I){const a=l("RouterLink"),i=l("ExternalLinkIcon");return n(),r("div",null,[b,m,k,e("ul",h,[p,e("li",_,[f,e("label",y,[s(" Check "),t(a,{to:"/en/advanced/FAQ.html"},{default:o(()=>[s("FAQ")]),_:1}),s(" document and "),t(a,{to:"/en/advanced/known-issue.html"},{default:o(()=>[s("known issues")]),_:1}),s(" document")])]),x]),g,e("p",null,[s("If you need some examples of good issues, you can check them "),e("a",S,[s("here"),t(i)])]),e("ul",null,[e("li",null,[s("Submit your issue on GitHub "),e("ul",null,[e("li",null,[e("a",w,[s("github.com/DGP-Studio/Snap.Hutao/issues/new/choose"),t(i)])])])]),H]),v,D,e("ul",null,[e("li",null,[s("Submit your issue on GitHub:"),e("a",E,[s("DGP-Studio/Snap.Hutao.Docs"),t(i)])])])])}const P=c(d,[["render",A],["__file","bug-report.html.vue"]]);export{P as default}; diff --git a/assets/character-data.html-9b06863f.js b/assets/character-data.html-3b2a78c6.js similarity index 98% rename from assets/character-data.html-9b06863f.js rename to assets/character-data.html-3b2a78c6.js index abdd0fc34..1573a73e2 100644 --- a/assets/character-data.html-9b06863f.js +++ b/assets/character-data.html-3b2a78c6.js @@ -1 +1 @@ -import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as c,c as d,a as i,b as l,d as a,w as t,e as r}from"./app-8966c29b.js";const s={},h=i("h1",{id:"属性统计",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#属性统计","aria-hidden":"true"},"#"),l(" 属性统计")],-1),u={class:"hint-container info"},p=i("p",{class:"hint-container-title"},"相关信息",-1),_=r('

    属性统计,即主程序侧栏中的我的角色功能,可读取当前账号所拥有角色的具体数据,包括等级、命之座、武器、天赋、圣遗物等;并自动计算圣遗物评分和双爆评分

    属性统计示例图

    同步角色信息

    从 Enka API 同步

    同步特征

    • Enka API 同步游戏内角色橱窗中公开展示的角色的信息

      • 该同步方式包括圣遗物具体数据
      • 该同步方法包括角色着装信息
      • 该同步方式一次最多包含 8 个角色 :::
    • 在游戏中将角色橱窗设置为公开并添加需要获取详细资料的角色进入橱窗展示

      • 角色橱窗中最多可同时展示 8 个角色
    • 若您更换了橱窗内的角色或角色内的配置,需等待游戏内的数据同步至服务器

      • 开启功能和更换角色后需要最多 5 分钟同步数据
    • 进入胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息

    • 点击从Enka API 同步

    从 米游社我的角色 同步

    同步特征

    • 米游社我的角色 同步的数据来源于米游社数据

      • 该同步方式不包含圣遗物信息
      • 该同步方式一次可同步全部角色信息 :::
    • 在胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息

    • 点击从米游社我的角色同步

    从 米游社养成计算 同步

    同步特征

    • 米游社养成计算 同步的数据来源于米游社养成计算数据

      • 该同步方式包含角色天赋等级信息
      • 该同步方式一次可同步全部角色信息
    • 在胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息
    • 点击从米游社养成计算同步

    将当前选定角色加入养成计算

    • 在胡桃工具箱的我的角色功能页面,点击切换至需要加入养成计算的角色的资料页面
    • 点击界面右上方的"养成计算"按钮,输入目标等级
      • 已同步数据的角色的当前角色等级、天赋等级会预填入其中,目标等级可自由更改

    rolescal

    • 添加完毕后,您可在"养成计划"功能中查看"已添加的养成目标"

    image

    ',11),m=i("h2",{id:"导出图片",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#导出图片","aria-hidden":"true"},"#"),l(" 导出图片")],-1),g=i("ul",null,[i("li",null,[l("在我的角色页面中,你可以在选择一个角色的情况下点击右上角的"),i("code",null,"导出图片"),l("按钮以将角色数据转化为图片形式,这将有助于你分享你的角色信息")]),i("li",null,"导出的图片储存在系统剪贴板中,你可以在合适的地方直接粘贴以获得该图片"),i("li",null,"导出图片样式如下图所示")],-1),f=i("p",null,[i("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ah7JlQ1g6du4WrI0A_!!1797064093.png_.webp",alt:"sample-output-image",loading:"lazy"})],-1);function x(b,v){const e=o("RouterLink");return c(),d("div",null,[h,i("div",u,[p,i("p",null,[l("该功能需要你在胡桃工具箱中登录米游社帐号,登录方法可见"),a(e,{to:"/zh/features/mhy-account-switch.html"},{default:t(()=>[l("米游社多帐号切换")]),_:1}),l("文档")])]),_,i("ul",null,[i("li",null,[l("关于养成计划功能的详细说明,请见"),a(e,{to:"/zh/features/develop-plan.html"},{default:t(()=>[l("养成计划")]),_:1}),l("文档")])]),m,g,f])}const N=n(s,[["render",x],["__file","character-data.html.vue"]]);export{N as default}; +import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as c,c as d,a as i,b as l,d as a,w as t,e as r}from"./app-5a96e1e2.js";const s={},h=i("h1",{id:"属性统计",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#属性统计","aria-hidden":"true"},"#"),l(" 属性统计")],-1),u={class:"hint-container info"},p=i("p",{class:"hint-container-title"},"相关信息",-1),_=r('

    属性统计,即主程序侧栏中的我的角色功能,可读取当前账号所拥有角色的具体数据,包括等级、命之座、武器、天赋、圣遗物等;并自动计算圣遗物评分和双爆评分

    属性统计示例图

    同步角色信息

    从 Enka API 同步

    同步特征

    • Enka API 同步游戏内角色橱窗中公开展示的角色的信息

      • 该同步方式包括圣遗物具体数据
      • 该同步方法包括角色着装信息
      • 该同步方式一次最多包含 8 个角色 :::
    • 在游戏中将角色橱窗设置为公开并添加需要获取详细资料的角色进入橱窗展示

      • 角色橱窗中最多可同时展示 8 个角色
    • 若您更换了橱窗内的角色或角色内的配置,需等待游戏内的数据同步至服务器

      • 开启功能和更换角色后需要最多 5 分钟同步数据
    • 进入胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息

    • 点击从Enka API 同步

    从 米游社我的角色 同步

    同步特征

    • 米游社我的角色 同步的数据来源于米游社数据

      • 该同步方式不包含圣遗物信息
      • 该同步方式一次可同步全部角色信息 :::
    • 在胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息

    • 点击从米游社我的角色同步

    从 米游社养成计算 同步

    同步特征

    • 米游社养成计算 同步的数据来源于米游社养成计算数据

      • 该同步方式包含角色天赋等级信息
      • 该同步方式一次可同步全部角色信息
    • 在胡桃工具箱的我的角色功能页面,在界面右上角点击同步角色信息
    • 点击从米游社养成计算同步

    将当前选定角色加入养成计算

    • 在胡桃工具箱的我的角色功能页面,点击切换至需要加入养成计算的角色的资料页面
    • 点击界面右上方的"养成计算"按钮,输入目标等级
      • 已同步数据的角色的当前角色等级、天赋等级会预填入其中,目标等级可自由更改

    rolescal

    • 添加完毕后,您可在"养成计划"功能中查看"已添加的养成目标"

    image

    ',11),m=i("h2",{id:"导出图片",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#导出图片","aria-hidden":"true"},"#"),l(" 导出图片")],-1),g=i("ul",null,[i("li",null,[l("在我的角色页面中,你可以在选择一个角色的情况下点击右上角的"),i("code",null,"导出图片"),l("按钮以将角色数据转化为图片形式,这将有助于你分享你的角色信息")]),i("li",null,"导出的图片储存在系统剪贴板中,你可以在合适的地方直接粘贴以获得该图片"),i("li",null,"导出图片样式如下图所示")],-1),f=i("p",null,[i("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ah7JlQ1g6du4WrI0A_!!1797064093.png_.webp",alt:"sample-output-image",loading:"lazy"})],-1);function x(b,v){const e=o("RouterLink");return c(),d("div",null,[h,i("div",u,[p,i("p",null,[l("该功能需要你在胡桃工具箱中登录米游社帐号,登录方法可见"),a(e,{to:"/zh/features/mhy-account-switch.html"},{default:t(()=>[l("米游社多帐号切换")]),_:1}),l("文档")])]),_,i("ul",null,[i("li",null,[l("关于养成计划功能的详细说明,请见"),a(e,{to:"/zh/features/develop-plan.html"},{default:t(()=>[l("养成计划")]),_:1}),l("文档")])]),m,g,f])}const N=n(s,[["render",x],["__file","character-data.html.vue"]]);export{N as default}; diff --git a/assets/character-data.html-0e2a5520.js b/assets/character-data.html-49915f74.js similarity index 98% rename from assets/character-data.html-0e2a5520.js rename to assets/character-data.html-49915f74.js index d11f281c5..e13f13e20 100644 --- a/assets/character-data.html-0e2a5520.js +++ b/assets/character-data.html-49915f74.js @@ -1 +1 @@ -import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as r,c as l,a as e,b as a,d as o,w as n,e as s}from"./app-8966c29b.js";const d={},h=e("h1",{id:"my-characters",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#my-characters","aria-hidden":"true"},"#"),a(" My Characters")],-1),u={class:"hint-container info"},p=e("p",{class:"hint-container-title"},"Info",-1),m=s('

    My characters is a character statistics feature that allows Snap Hutao to read character's statistics on the account, including level, constellation, weapon, talent and artifact set; we also provide artifacts rating and CRTI rating for each character.

    My Character Screenshot

    Sync Character Data

    Sync from Enka API

    Synchronous Feature

    • Enka API sync data from characters displayed in the in-game character showcase

      • Data includes Artifacts detail data, weapon detail data, talent data
      • Character costume
      • This sync method only support 8 characters at a time
    • In the game, put characters that you need detailed data into the showcase
      • The character showcase allows up to 8 characters at the same time
    • You need to wait for data sync to complete after editing the showcase configuration
      • You may need up to 5 minutes after enable the showcase or re-config the showcase
    • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
    • Select Sync from Enka API

    Sync from MiHoYo BBS - My Characters

    Synchronous Feature

    • Data in this sync method comes from My Characters feature in MiHoYo official BSS

      • This method does not contain any artifacts data
      • This method can sync all characters data at a time
    • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
    • Select Sync from MiHoYo BBS My Characters

    Sync from MiHoYo BBS - Development Plan

    Synchronous Feature

    • Data in this method comes from Enhancement Progression Calculator feature in MiHoYo official BBS tool set

      • This sync method contains talent level data
      • This sync method can sync all characters data at a time
    • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
    • Select Sync from MiHoYo BBS Developement Plan

    Add Selected Character to Development Plan

    • Enter My Characters page in the Snap Hutao, click on character you need to add to development plan
    • Click on Development Plan and enter target level
      • Synchronized data of the character will be pre-filled into current level, and you can change the target level

    rolescal

    • After adding successfully, you can find added development plan in the Dev Plan page in Snap Hutao

    image

    ',17),y=e("h2",{id:"export-as-image",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#export-as-image","aria-hidden":"true"},"#"),a(" Export as Image")],-1),f=e("ul",null,[e("li",null,[a("In "),e("code",null,"My Characters"),a(" page, you can select a character and then click "),e("code",null,"Export as Image"),a(" button to create image with your character's data, this will help you to share your character's data")]),e("li",null,"The exported image is stored in your clipboard, and you can paste it wherever you need"),e("li",null,"A sample exported image is shown below")],-1),g=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ah7JlQ1g6du4WrI0A_!!1797064093.png",alt:"sample-output-image",loading:"lazy"})],-1);function S(_,v){const t=i("RouterLink");return r(),l("div",null,[h,e("div",u,[p,e("p",null,[a("This features required sign in to MiHoYo BBS account, please refer to "),o(t,{to:"/en/features/mhy-account-switch.html"},{default:n(()=>[a("MiHoYo BBS Account Switch")]),_:1}),a(" document for sign in tutorial")])]),m,e("ul",null,[e("li",null,[a("For tutorial of Dev Plan feature, please refer to "),o(t,{to:"/en/features/develop-plan.html"},{default:n(()=>[a("Dev Plan")]),_:1}),a(" document")])]),y,f,g])}const b=c(d,[["render",S],["__file","character-data.html.vue"]]);export{b as default}; +import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as r,c as l,a as e,b as a,d as o,w as n,e as s}from"./app-5a96e1e2.js";const d={},h=e("h1",{id:"my-characters",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#my-characters","aria-hidden":"true"},"#"),a(" My Characters")],-1),u={class:"hint-container info"},p=e("p",{class:"hint-container-title"},"Info",-1),m=s('

    My characters is a character statistics feature that allows Snap Hutao to read character's statistics on the account, including level, constellation, weapon, talent and artifact set; we also provide artifacts rating and CRTI rating for each character.

    My Character Screenshot

    Sync Character Data

    Sync from Enka API

    Synchronous Feature

    • Enka API sync data from characters displayed in the in-game character showcase

      • Data includes Artifacts detail data, weapon detail data, talent data
      • Character costume
      • This sync method only support 8 characters at a time
    • In the game, put characters that you need detailed data into the showcase
      • The character showcase allows up to 8 characters at the same time
    • You need to wait for data sync to complete after editing the showcase configuration
      • You may need up to 5 minutes after enable the showcase or re-config the showcase
    • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
    • Select Sync from Enka API

    Sync from MiHoYo BBS - My Characters

    Synchronous Feature

    • Data in this sync method comes from My Characters feature in MiHoYo official BSS

      • This method does not contain any artifacts data
      • This method can sync all characters data at a time
    • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
    • Select Sync from MiHoYo BBS My Characters

    Sync from MiHoYo BBS - Development Plan

    Synchronous Feature

    • Data in this method comes from Enhancement Progression Calculator feature in MiHoYo official BBS tool set

      • This sync method contains talent level data
      • This sync method can sync all characters data at a time
    • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
    • Select Sync from MiHoYo BBS Developement Plan

    Add Selected Character to Development Plan

    • Enter My Characters page in the Snap Hutao, click on character you need to add to development plan
    • Click on Development Plan and enter target level
      • Synchronized data of the character will be pre-filled into current level, and you can change the target level

    rolescal

    • After adding successfully, you can find added development plan in the Dev Plan page in Snap Hutao

    image

    ',17),y=e("h2",{id:"export-as-image",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#export-as-image","aria-hidden":"true"},"#"),a(" Export as Image")],-1),f=e("ul",null,[e("li",null,[a("In "),e("code",null,"My Characters"),a(" page, you can select a character and then click "),e("code",null,"Export as Image"),a(" button to create image with your character's data, this will help you to share your character's data")]),e("li",null,"The exported image is stored in your clipboard, and you can paste it wherever you need"),e("li",null,"A sample exported image is shown below")],-1),g=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01ah7JlQ1g6du4WrI0A_!!1797064093.png",alt:"sample-output-image",loading:"lazy"})],-1);function S(_,v){const t=i("RouterLink");return r(),l("div",null,[h,e("div",u,[p,e("p",null,[a("This features required sign in to MiHoYo BBS account, please refer to "),o(t,{to:"/en/features/mhy-account-switch.html"},{default:n(()=>[a("MiHoYo BBS Account Switch")]),_:1}),a(" document for sign in tutorial")])]),m,e("ul",null,[e("li",null,[a("For tutorial of Dev Plan feature, please refer to "),o(t,{to:"/en/features/develop-plan.html"},{default:n(()=>[a("Dev Plan")]),_:1}),a(" document")])]),y,f,g])}const b=c(d,[["render",S],["__file","character-data.html.vue"]]);export{b as default}; diff --git a/assets/character-wiki.html-1c3e2191.js b/assets/character-wiki.html-32a83ab1.js similarity index 97% rename from assets/character-wiki.html-1c3e2191.js rename to assets/character-wiki.html-32a83ab1.js index 0ba07dcd9..357e5b282 100644 --- a/assets/character-wiki.html-1c3e2191.js +++ b/assets/character-wiki.html-32a83ab1.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as r,c as o,a as l,b as i,d as c,w as n,e as u}from"./app-8966c29b.js";const s={},d=u('

    角色资料

    characters-wiki

    角色资料是胡桃工具箱中内置的用于查询各个角色的基础信息、天赋数值、命之座、培养材料等数据的 wiki

    已包含的数据

    • 角色列表
      • 使用列表左上角的按钮,可切换列表显示的方式:即"缩略图与名称"或"仅缩略图"
      • 单击列表中的缩略图或名称,即可跳转到相应的介绍页面
    • 数据内容
      • 角色基本信息
        • 介绍
        • 各等级下的数值
        • 属性
    • 天赋
      • 基本介绍
      • 可切换至对应等级天赋的各项数值
    • 命之座
    • 根据"胡桃数据库"的统计信息而展示的角色队伍搭配、武器搭配以及圣遗物搭配的相关推荐
    • 其他信息
      • 角色立绘
      • 特色料理
      • 衣装信息
      • 角色资料
      • 角色故事

    添加至养成计划

    ',6),h=l("code",null,"养成计算",-1),_=l("li",null,"该养成计划将默认从角色 1 级开始培养",-1);function m(p,f){const e=t("RouterLink");return r(),o("div",null,[d,l("ul",null,[l("li",null,[i("在角色资料页面,你可以在选定角色后,点击右上角的"),h,i("按钮来将该角色添加至你的养成计划中 "),l("ul",null,[_,l("li",null,[i("如果你需要基于当前已有的角色创建养成计划,可以使用"),c(e,{to:"/zh/features/character-data.html"},{default:n(()=>[i("我的角色")]),_:1}),i("功能")])])])])])}const k=a(s,[["render",m],["__file","character-wiki.html.vue"]]);export{k as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as r,c as o,a as l,b as i,d as c,w as n,e as u}from"./app-5a96e1e2.js";const s={},d=u('

    角色资料

    characters-wiki

    角色资料是胡桃工具箱中内置的用于查询各个角色的基础信息、天赋数值、命之座、培养材料等数据的 wiki

    已包含的数据

    • 角色列表
      • 使用列表左上角的按钮,可切换列表显示的方式:即"缩略图与名称"或"仅缩略图"
      • 单击列表中的缩略图或名称,即可跳转到相应的介绍页面
    • 数据内容
      • 角色基本信息
        • 介绍
        • 各等级下的数值
        • 属性
    • 天赋
      • 基本介绍
      • 可切换至对应等级天赋的各项数值
    • 命之座
    • 根据"胡桃数据库"的统计信息而展示的角色队伍搭配、武器搭配以及圣遗物搭配的相关推荐
    • 其他信息
      • 角色立绘
      • 特色料理
      • 衣装信息
      • 角色资料
      • 角色故事

    添加至养成计划

    ',6),h=l("code",null,"养成计算",-1),_=l("li",null,"该养成计划将默认从角色 1 级开始培养",-1);function m(p,f){const e=t("RouterLink");return r(),o("div",null,[d,l("ul",null,[l("li",null,[i("在角色资料页面,你可以在选定角色后,点击右上角的"),h,i("按钮来将该角色添加至你的养成计划中 "),l("ul",null,[_,l("li",null,[i("如果你需要基于当前已有的角色创建养成计划,可以使用"),c(e,{to:"/zh/features/character-data.html"},{default:n(()=>[i("我的角色")]),_:1}),i("功能")])])])])])}const k=a(s,[["render",m],["__file","character-wiki.html.vue"]]);export{k as default}; diff --git a/assets/character-wiki.html-1a49a85c.js b/assets/character-wiki.html-9436f4de.js similarity index 97% rename from assets/character-wiki.html-1a49a85c.js rename to assets/character-wiki.html-9436f4de.js index a6d24fcd8..bbe5a3a87 100644 --- a/assets/character-wiki.html-1a49a85c.js +++ b/assets/character-wiki.html-9436f4de.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as o,a as e,b as a,d as c,w as n,e as d}from"./app-8966c29b.js";const h={},s=d('

    Character WIKI

    characters-wiki

    Character WIKI is a Snap Hutao build-in WIKI feature used to query each character's information.

    Included Data

    • Character list
      • Use the icon above the list, you can change the view between list and grid
      • Click on character's icon or title, and you will be directed to its WIKI page
    • Character information
      • Character information
        • Introduction of the character
        • Numerical attributes value at each level
        • Attributes
    • Talent
      • Introduction
      • Numerical talent value at each level
    • Constellation
    • statistical information on Team, weapon usage, artifact set usage provided by Hutao Database
    • Other information
      • Character tachie
      • Special food
      • Costume
      • Character stories

    Add to Dev Plan

    ',6),u=e("code",null,"Dev Plan",-1),f=e("li",null,[a("The new plan will set the base level as "),e("code",null,"1")],-1);function m(p,_){const t=l("RouterLink");return r(),o("div",null,[s,e("ul",null,[e("li",null,[a("At character WIKI page, you can select character and click on "),u,a(" on the top right to add it to your Dev Plan "),e("ul",null,[f,e("li",null,[a("If you want to make new Dev Plan based on character you already have, you can try "),c(t,{to:"/en/features/character-data.html"},{default:n(()=>[a("My Character")]),_:1}),a(" feature")])])])])])}const w=i(h,[["render",m],["__file","character-wiki.html.vue"]]);export{w as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as o,a as e,b as a,d as c,w as n,e as d}from"./app-5a96e1e2.js";const h={},s=d('

    Character WIKI

    characters-wiki

    Character WIKI is a Snap Hutao build-in WIKI feature used to query each character's information.

    Included Data

    • Character list
      • Use the icon above the list, you can change the view between list and grid
      • Click on character's icon or title, and you will be directed to its WIKI page
    • Character information
      • Character information
        • Introduction of the character
        • Numerical attributes value at each level
        • Attributes
    • Talent
      • Introduction
      • Numerical talent value at each level
    • Constellation
    • statistical information on Team, weapon usage, artifact set usage provided by Hutao Database
    • Other information
      • Character tachie
      • Special food
      • Costume
      • Character stories

    Add to Dev Plan

    ',6),u=e("code",null,"Dev Plan",-1),f=e("li",null,[a("The new plan will set the base level as "),e("code",null,"1")],-1);function m(p,_){const t=l("RouterLink");return r(),o("div",null,[s,e("ul",null,[e("li",null,[a("At character WIKI page, you can select character and click on "),u,a(" on the top right to add it to your Dev Plan "),e("ul",null,[f,e("li",null,[a("If you want to make new Dev Plan based on character you already have, you can try "),c(t,{to:"/en/features/character-data.html"},{default:n(()=>[a("My Character")]),_:1}),a(" feature")])])])])])}const w=i(h,[["render",m],["__file","character-wiki.html.vue"]]);export{w as default}; diff --git a/assets/community.html-1c109378.js b/assets/community.html-1c109378.js deleted file mode 100644 index 50da21b76..000000000 --- a/assets/community.html-1c109378.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as a,c,a as o,b as t,d as e,w as d}from"./app-8966c29b.js";const u={},h=o("h1",{id:"加入用户社区",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#加入用户社区","aria-hidden":"true"},"#"),t(" 加入用户社区")],-1),_=o("p",null,"作为开源软件,社区动力是胡桃工具箱生态的重要组成部分,你可以在通过下面的方式加入到胡桃的用户社区中。",-1),m=o("p",null,[o("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},g=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},f=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),H=o("li",null,[t("在"),o("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),t("上给出好评")],-1),y=o("li",null,"在更多的地方帮助我们宣传",-1),k=o("p",null,[o("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),o("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),q={id:"github-讨论",tabindex:"-1"},S=o("a",{class:"header-anchor",href:"#github-讨论","aria-hidden":"true"},"#",-1),P={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions",target:"_blank",rel:"noopener noreferrer"},D={id:"qq-群",tabindex:"-1"},v=o("a",{class:"header-anchor",href:"#qq-群","aria-hidden":"true"},"#",-1),x={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DmW_LDX35YEr1CQZwjZ6x4JYP03soai2&authKey=z3PzXsuYlaPTm%2FW7TyE0o9KNz7H6LA%2BTEZ4mK2BE9%2Fcz0HhH3s1qgbydciAmrGeg&noverify=0&group_code=910780153",target:"_blank",rel:"noopener noreferrer"},G=o("ul",null,[o("li",null,"胡桃一般用户群"),o("li",null,[t("若入群问题为最新版本号则请输入三位版本号(如 "),o("code",null,"1.2.3"),t(")而不是四位版本号(如 "),o("code",null,"1.2.3.0"),t(")")])],-1),z={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XJPjE6ffuYPkZmXvujdP1ZDY2BqL8RDg&authKey=YHBYvW4KmPUpPjGwYwGduG7ZELhFIkd9QxLHuwBFmm4UvQH1ThWiv%2FKPgeckiqt4&noverify=0&group_code=982424236",target:"_blank",rel:"noopener noreferrer"},w=o("em",null,"Snap 开发交流群",-1),L=o("li",null,"广泛的技术交流群,并非胡桃工具箱开发群",-1),Y=o("li",null,"开发群对申请者的技术水平有一定要求",-1),E={id:"discord",tabindex:"-1"},B=o("a",{class:"header-anchor",href:"#discord","aria-hidden":"true"},"#",-1),K={href:"https://discord.gg/Yb8bykaUKp",target:"_blank",rel:"noopener noreferrer"};function I(N,Z){const n=s("ExternalLinkIcon"),i=s("HopeIcon"),l=s("RouterLink");return a(),c("div",null,[h,_,m,o("ul",null,[o("li",null,[t("为我们在 GitHub 上的项目加星点赞 ⭐ "),o("ul",null,[o("li",null,[o("a",p,[t("Snap.Hutao"),e(n)]),t(),g]),o("li",null,[o("a",b,[t("Snap.Hutao.Docs"),e(n)]),t(),f])])]),H,y]),k,o("h2",q,[S,t(),e(i,{icon:"iconfont icon-github",size:"1.5rem"}),t(" GitHub 讨论")]),o("p",null,[o("a",P,[t("Snap.Hutao Discussion"),e(n)])]),o("h2",D,[v,t(),e(i,{icon:"iconfont icon-qq",size:"1.5rem",color:"rgb(0,126,198)"}),t(" QQ 群")]),o("ul",null,[o("li",null,[o("a",x,[t("Snap Hutao 用户群"),e(n)]),G]),o("li",null,[o("a",z,[w,e(n)]),o("ul",null,[L,Y,o("li",null,[t("如果你想要"),e(l,{to:"/zh/project.html"},{default:d(()=>[t("加入开发团队")]),_:1}),t(",请在入群验证时提及")])])])]),o("h2",E,[B,t(),e(i,{icon:"iconfont icon-discord1",size:"1.5rem",color:"rgb(115,139,216)"}),t(" Discord")]),o("p",null,[t("邀请链接:"),o("a",K,[t("https://discord.gg/Yb8bykaUKp"),e(n)])])])}const Q=r(u,[["render",I],["__file","community.html.vue"]]);export{Q as default}; diff --git a/assets/community.html-f8bc6215.js b/assets/community.html-417cf11c.js similarity index 80% rename from assets/community.html-f8bc6215.js rename to assets/community.html-417cf11c.js index f2e6ae4cf..1848c92b4 100644 --- a/assets/community.html-f8bc6215.js +++ b/assets/community.html-417cf11c.js @@ -1 +1 @@ -const t=JSON.parse('{"key":"v-5cad49b8","path":"/zh/community.html","title":"加入用户社区","lang":"zh-CN","frontmatter":{"headerDepth":0,"category":["公告"],"redirectFrom":"/community.html","comment":false,"icon":"iconfont icon-community","order":8,"description":"作为开源软件,社区动力是胡桃工具箱生态的重要组成部分,你可以在通过下面的方式加入到胡桃的用户社区中。 GitHub 讨论 Snap.Hutao Discussion (https://github.com/DGP-Studio/Snap.Hutao/discussions) QQ 群 Snap Hutao 用户群 (http://qm.qq.com/c...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://hut.ao/en/community.html"}],["meta",{"property":"og:url","content":"https://hut.ao/zh/community.html"}],["meta",{"property":"og:site_name","content":"胡桃工具箱"}],["meta",{"property":"og:title","content":"加入用户社区"}],["meta",{"property":"og:description","content":"作为开源软件,社区动力是胡桃工具箱生态的重要组成部分,你可以在通过下面的方式加入到胡桃的用户社区中。 GitHub 讨论 Snap.Hutao Discussion (https://github.com/DGP-Studio/Snap.Hutao/discussions) QQ 群 Snap Hutao 用户群 (http://qm.qq.com/c..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2023-10-30T08:25:43.000Z"}],["meta",{"property":"article:author","content":"DGP-Studio"}],["meta",{"property":"article:modified_time","content":"2023-10-30T08:25:43.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"加入用户社区\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-10-30T08:25:43.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"DGP-Studio\\",\\"url\\":\\"https://github.com/DGP-Studio\\"}]}"],["link",{"rel":"alternate","type":"application/rss+xml","href":"https://hut.ao/zh/rss.xml","title":"胡桃工具箱 RSS Feed"}]]},"headers":[{"level":2,"title":"GitHub 讨论","slug":"github-讨论","link":"#github-讨论","children":[]},{"level":2,"title":"QQ 群","slug":"qq-群","link":"#qq-群","children":[]},{"level":2,"title":"Discord","slug":"discord","link":"#discord","children":[]}],"git":{"createdTime":1679366029000,"updatedTime":1698654343000,"contributors":[{"name":"Masterain","email":"i@irain.in","commits":13},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"readingTime":{"minutes":0.87,"words":261},"filePathRelative":"zh/community.md","localizedDate":"2023年3月21日","autoDesc":true}');export{t as data}; +const t=JSON.parse('{"key":"v-5cad49b8","path":"/zh/community.html","title":"加入用户社区","lang":"zh-CN","frontmatter":{"headerDepth":0,"category":["公告"],"redirectFrom":"/community.html","comment":false,"icon":"iconfont icon-community","order":8,"description":"作为开源软件,社区动力是胡桃工具箱生态的重要组成部分,你可以在通过下面的方式加入到胡桃的用户社区中。 GitHub 讨论 Snap.Hutao Discussion (https://github.com/DGP-Studio/Snap.Hutao/discussions) QQ 群 Snap Hutao 用户群 910780153 (http://q...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://hut.ao/en/community.html"}],["meta",{"property":"og:url","content":"https://hut.ao/zh/community.html"}],["meta",{"property":"og:site_name","content":"胡桃工具箱"}],["meta",{"property":"og:title","content":"加入用户社区"}],["meta",{"property":"og:description","content":"作为开源软件,社区动力是胡桃工具箱生态的重要组成部分,你可以在通过下面的方式加入到胡桃的用户社区中。 GitHub 讨论 Snap.Hutao Discussion (https://github.com/DGP-Studio/Snap.Hutao/discussions) QQ 群 Snap Hutao 用户群 910780153 (http://q..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2023-11-28T07:03:58.000Z"}],["meta",{"property":"article:author","content":"DGP-Studio"}],["meta",{"property":"article:modified_time","content":"2023-11-28T07:03:58.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"加入用户社区\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2023-11-28T07:03:58.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"DGP-Studio\\",\\"url\\":\\"https://github.com/DGP-Studio\\"}]}"],["link",{"rel":"alternate","type":"application/rss+xml","href":"https://hut.ao/zh/rss.xml","title":"胡桃工具箱 RSS Feed"}]]},"headers":[{"level":2,"title":"GitHub 讨论","slug":"github-讨论","link":"#github-讨论","children":[]},{"level":2,"title":"QQ 群","slug":"qq-群","link":"#qq-群","children":[]},{"level":2,"title":"Discord","slug":"discord","link":"#discord","children":[]}],"git":{"createdTime":1679366029000,"updatedTime":1701155038000,"contributors":[{"name":"Masterain","email":"i@irain.in","commits":14},{"name":"Mr.Hope","email":"mister-hope@outlook.com","commits":1}]},"readingTime":{"minutes":0.97,"words":291},"filePathRelative":"zh/community.md","localizedDate":"2023年3月21日","autoDesc":true}');export{t as data}; diff --git a/assets/community.html-6555cfd3.js b/assets/community.html-6382b9ab.js similarity index 98% rename from assets/community.html-6555cfd3.js rename to assets/community.html-6382b9ab.js index c88194c00..acb977480 100644 --- a/assets/community.html-6555cfd3.js +++ b/assets/community.html-6382b9ab.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as a,c as l,a as o,b as t,d as e}from"./app-8966c29b.js";const c={},u=o("h1",{id:"join-community",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#join-community","aria-hidden":"true"},"#"),t(" Join Community")],-1),d=o("p",null,"As open-source software, community power is an important part of the ecology of Snap Hutao, and you can join our user community by following ways.",-1),h=o("p",null,[o("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},_=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),m={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},g=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),f=o("li",null,[t("Rate our App on "),o("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),b=o("li",null,"Promote our project in your network",-1),y=o("p",null,[o("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t(),o("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),H={id:"github-discussion",tabindex:"-1"},S=o("a",{class:"header-anchor",href:"#github-discussion","aria-hidden":"true"},"#",-1),k={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions",target:"_blank",rel:"noopener noreferrer"},q={id:"qq-group-cn",tabindex:"-1"},D=o("a",{class:"header-anchor",href:"#qq-group-cn","aria-hidden":"true"},"#",-1),P={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DmW_LDX35YEr1CQZwjZ6x4JYP03soai2&authKey=z3PzXsuYlaPTm%2FW7TyE0o9KNz7H6LA%2BTEZ4mK2BE9%2Fcz0HhH3s1qgbydciAmrGeg&noverify=0&group_code=910780153",target:"_blank",rel:"noopener noreferrer"},v={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XJPjE6ffuYPkZmXvujdP1ZDY2BqL8RDg&authKey=YHBYvW4KmPUpPjGwYwGduG7ZELhFIkd9QxLHuwBFmm4UvQH1ThWiv%2FKPgeckiqt4&noverify=0&group_code=982424236",target:"_blank",rel:"noopener noreferrer"},w=o("em",null,"Snap Developer Open Discussion Group",-1),G=o("ul",null,[o("li",null,"General tech talk, not Snap Hutao Project development group"),o("li",null,"The Dev group requires some basic tech knowledge")],-1),x={id:"discord",tabindex:"-1"},j=o("a",{class:"header-anchor",href:"#discord","aria-hidden":"true"},"#",-1),z={href:"https://discord.gg/Yb8bykaUKp",target:"_blank",rel:"noopener noreferrer"};function Y(E,B){const n=s("ExternalLinkIcon"),i=s("HopeIcon");return a(),l("div",null,[u,d,h,o("ul",null,[o("li",null,[t("Star our project on GitHub ⭐ "),o("ul",null,[o("li",null,[o("a",p,[t("Snap.Hutao"),e(n)]),t(),_]),o("li",null,[o("a",m,[t("Snap.Hutao.Docs"),e(n)]),t(),g])])]),f,b]),y,o("h2",H,[S,t(),e(i,{icon:"iconfont icon-github",size:"1.5rem"}),t(" GitHub Discussion")]),o("p",null,[o("a",k,[t("Snap.Hutao Discussion"),e(n)])]),o("h2",q,[D,t(),e(i,{icon:"iconfont icon-qq",size:"1.5rem",color:"rgb(0,126,198)"}),t(" QQ Group (CN)")]),o("ul",null,[o("li",null,[o("a",P,[t("Snap Hutao"),e(n)])]),o("li",null,[o("a",v,[w,e(n)]),G])]),o("h2",x,[j,t(),e(i,{icon:"iconfont icon-discord1",size:"1.5rem",color:"rgb(115,139,216)"}),t(" Discord")]),o("p",null,[t("Invite link:"),o("a",z,[t("https://discord.gg/Yb8bykUKp"),e(n)])])])}const L=r(c,[["render",Y],["__file","community.html.vue"]]);export{L as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as a,c as l,a as o,b as t,d as e}from"./app-5a96e1e2.js";const c={},u=o("h1",{id:"join-community",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#join-community","aria-hidden":"true"},"#"),t(" Join Community")],-1),d=o("p",null,"As open-source software, community power is an important part of the ecology of Snap Hutao, and you can join our user community by following ways.",-1),h=o("p",null,[o("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},_=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),m={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},g=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),f=o("li",null,[t("Rate our App on "),o("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),b=o("li",null,"Promote our project in your network",-1),y=o("p",null,[o("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t(),o("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),H={id:"github-discussion",tabindex:"-1"},S=o("a",{class:"header-anchor",href:"#github-discussion","aria-hidden":"true"},"#",-1),k={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions",target:"_blank",rel:"noopener noreferrer"},q={id:"qq-group-cn",tabindex:"-1"},D=o("a",{class:"header-anchor",href:"#qq-group-cn","aria-hidden":"true"},"#",-1),P={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DmW_LDX35YEr1CQZwjZ6x4JYP03soai2&authKey=z3PzXsuYlaPTm%2FW7TyE0o9KNz7H6LA%2BTEZ4mK2BE9%2Fcz0HhH3s1qgbydciAmrGeg&noverify=0&group_code=910780153",target:"_blank",rel:"noopener noreferrer"},v={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XJPjE6ffuYPkZmXvujdP1ZDY2BqL8RDg&authKey=YHBYvW4KmPUpPjGwYwGduG7ZELhFIkd9QxLHuwBFmm4UvQH1ThWiv%2FKPgeckiqt4&noverify=0&group_code=982424236",target:"_blank",rel:"noopener noreferrer"},w=o("em",null,"Snap Developer Open Discussion Group",-1),G=o("ul",null,[o("li",null,"General tech talk, not Snap Hutao Project development group"),o("li",null,"The Dev group requires some basic tech knowledge")],-1),x={id:"discord",tabindex:"-1"},j=o("a",{class:"header-anchor",href:"#discord","aria-hidden":"true"},"#",-1),z={href:"https://discord.gg/Yb8bykaUKp",target:"_blank",rel:"noopener noreferrer"};function Y(E,B){const n=s("ExternalLinkIcon"),i=s("HopeIcon");return a(),l("div",null,[u,d,h,o("ul",null,[o("li",null,[t("Star our project on GitHub ⭐ "),o("ul",null,[o("li",null,[o("a",p,[t("Snap.Hutao"),e(n)]),t(),_]),o("li",null,[o("a",m,[t("Snap.Hutao.Docs"),e(n)]),t(),g])])]),f,b]),y,o("h2",H,[S,t(),e(i,{icon:"iconfont icon-github",size:"1.5rem"}),t(" GitHub Discussion")]),o("p",null,[o("a",k,[t("Snap.Hutao Discussion"),e(n)])]),o("h2",q,[D,t(),e(i,{icon:"iconfont icon-qq",size:"1.5rem",color:"rgb(0,126,198)"}),t(" QQ Group (CN)")]),o("ul",null,[o("li",null,[o("a",P,[t("Snap Hutao"),e(n)])]),o("li",null,[o("a",v,[w,e(n)]),G])]),o("h2",x,[j,t(),e(i,{icon:"iconfont icon-discord1",size:"1.5rem",color:"rgb(115,139,216)"}),t(" Discord")]),o("p",null,[t("Invite link:"),o("a",z,[t("https://discord.gg/Yb8bykUKp"),e(n)])])])}const L=r(c,[["render",Y],["__file","community.html.vue"]]);export{L as default}; diff --git a/assets/community.html-ca7edab2.js b/assets/community.html-ca7edab2.js new file mode 100644 index 000000000..02595ebae --- /dev/null +++ b/assets/community.html-ca7edab2.js @@ -0,0 +1 @@ +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as a,c,a as o,b as t,d as e,w as u}from"./app-5a96e1e2.js";const d={},h=o("h1",{id:"加入用户社区",tabindex:"-1"},[o("a",{class:"header-anchor",href:"#加入用户社区","aria-hidden":"true"},"#"),t(" 加入用户社区")],-1),_=o("p",null,"作为开源软件,社区动力是胡桃工具箱生态的重要组成部分,你可以在通过下面的方式加入到胡桃的用户社区中。",-1),m=o("p",null,[o("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},g=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},f=o("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),q=o("li",null,[t("在"),o("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),t("上给出好评")],-1),H=o("li",null,"在更多的地方帮助我们宣传",-1),y=o("p",null,[o("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),o("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),k={id:"github-讨论",tabindex:"-1"},S=o("a",{class:"header-anchor",href:"#github-讨论","aria-hidden":"true"},"#",-1),D={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions",target:"_blank",rel:"noopener noreferrer"},P={id:"qq-群",tabindex:"-1"},v=o("a",{class:"header-anchor",href:"#qq-群","aria-hidden":"true"},"#",-1),x={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DmW_LDX35YEr1CQZwjZ6x4JYP03soai2&authKey=z3PzXsuYlaPTm%2FW7TyE0o9KNz7H6LA%2BTEZ4mK2BE9%2Fcz0HhH3s1qgbydciAmrGeg&noverify=0&group_code=910780153",target:"_blank",rel:"noopener noreferrer"},G=o("ul",null,[o("li",null,"胡桃一般用户群"),o("li",null,[t("若入群问题为最新版本号则请输入三位版本号(如 "),o("code",null,"1.2.3"),t(")而不是四位版本号(如 "),o("code",null,"1.2.3.0"),t(")")])],-1),z={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=uxqsxPJPB_jOVbMFOzZv5LcDyIF2HAiu&authKey=Deo2c2ZhmqSAQ%2BGUL0ItD7bYtYG5blYxQor25BXoCcaCGllZYtZ4eDNwZ3yZz8gH&noverify=0&group_code=531960040",target:"_blank",rel:"noopener noreferrer"},Y=o("ul",null,[o("li",null,"全体禁言,仅发送公告")],-1),w={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XJPjE6ffuYPkZmXvujdP1ZDY2BqL8RDg&authKey=YHBYvW4KmPUpPjGwYwGduG7ZELhFIkd9QxLHuwBFmm4UvQH1ThWiv%2FKPgeckiqt4&noverify=0&group_code=982424236",target:"_blank",rel:"noopener noreferrer"},L=o("em",null,"Snap 开发交流群",-1),Z=o("li",null,"广泛的技术交流群,并非胡桃工具箱开发群",-1),B=o("li",null,"开发群对申请者的技术水平有一定要求",-1),E={id:"discord",tabindex:"-1"},K=o("a",{class:"header-anchor",href:"#discord","aria-hidden":"true"},"#",-1),I={href:"https://discord.gg/Yb8bykaUKp",target:"_blank",rel:"noopener noreferrer"};function F(N,Q){const n=l("ExternalLinkIcon"),i=l("HopeIcon"),s=l("RouterLink");return a(),c("div",null,[h,_,m,o("ul",null,[o("li",null,[t("为我们在 GitHub 上的项目加星点赞 ⭐ "),o("ul",null,[o("li",null,[o("a",p,[t("Snap.Hutao"),e(n)]),t(),g]),o("li",null,[o("a",b,[t("Snap.Hutao.Docs"),e(n)]),t(),f])])]),q,H]),y,o("h2",k,[S,t(),e(i,{icon:"iconfont icon-github",size:"1.5rem"}),t(" GitHub 讨论")]),o("p",null,[o("a",D,[t("Snap.Hutao Discussion"),e(n)])]),o("h2",P,[v,t(),e(i,{icon:"iconfont icon-qq",size:"1.5rem",color:"rgb(0,126,198)"}),t(" QQ 群")]),o("ul",null,[o("li",null,[o("a",x,[t("Snap Hutao 用户群 910780153"),e(n)]),G]),o("li",null,[o("a",z,[t("Snap Hutao 公告群 531960040"),e(n)]),Y]),o("li",null,[o("a",w,[L,e(n)]),o("ul",null,[Z,B,o("li",null,[t("如果你想要"),e(s,{to:"/zh/project.html"},{default:u(()=>[t("加入开发团队")]),_:1}),t(",请在入群验证时提及")])])])]),o("h2",E,[K,t(),e(i,{icon:"iconfont icon-discord1",size:"1.5rem",color:"rgb(115,139,216)"}),t(" Discord")]),o("p",null,[t("邀请链接:"),o("a",I,[t("https://discord.gg/Yb8bykaUKp"),e(n)])])])}const X=r(d,[["render",F],["__file","community.html.vue"]]);export{X as default}; diff --git a/assets/component-ee6bd77b.js b/assets/component-638e0776.js similarity index 99% rename from assets/component-ee6bd77b.js rename to assets/component-638e0776.js index 9b6a96842..97c74eceb 100644 --- a/assets/component-ee6bd77b.js +++ b/assets/component-638e0776.js @@ -1,4 +1,4 @@ -var an=Object.defineProperty;var rn=(l,t,n)=>t in l?an(l,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[t]=n;var wt=(l,t,n)=>(rn(l,typeof t!="symbol"?t+"":t,n),n);import{a as _,g as Ne,h as U,f as et,i as ve,j as sn,o as m,c as w,F as te,k as se,n as yt,l as ut,u as on,m as X,r as cn,p as j,q as ke,s as T,t as M,v as J,d as ee,x as N,y as Le,z as pt,A as un,B as qe,C as pn,D as hn,E as dn,G as bt,b as Ce,H as gn,I as fn,J as mn,K as vn,L as kn}from"./app-8966c29b.js";var Be=new Map;function wn(l){var t=Be.get(l);t&&t.destroy()}function yn(l){var t=Be.get(l);t&&t.update()}var De=null;typeof window>"u"?((De=function(l){return l}).destroy=function(l){return l},De.update=function(l){return l}):((De=function(l,t){return l&&Array.prototype.forEach.call(l.length?l:[l],function(n){return function(e){if(e&&e.nodeName&&e.nodeName==="TEXTAREA"&&!Be.has(e)){var i,a=null,r=window.getComputedStyle(e),s=(i=e.value,function(){d({testForHeightReduction:i===""||!e.value.startsWith(i),restoreTextAlign:null}),i=e.value}),u=(function(p){e.removeEventListener("autosize:destroy",u),e.removeEventListener("autosize:update",c),e.removeEventListener("input",s),window.removeEventListener("resize",c),Object.keys(p).forEach(function(g){return e.style[g]=p[g]}),Be.delete(e)}).bind(e,{height:e.style.height,resize:e.style.resize,textAlign:e.style.textAlign,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",u),e.addEventListener("autosize:update",c),e.addEventListener("input",s),window.addEventListener("resize",c),e.style.overflowX="hidden",e.style.wordWrap="break-word",Be.set(e,{destroy:u,update:c}),c()}function d(p){var g,h,E=p.restoreTextAlign,o=E===void 0?null:E,f=p.testForHeightReduction,R=f===void 0||f,z=r.overflowY;if(e.scrollHeight!==0&&(r.resize==="vertical"?e.style.resize="none":r.resize==="both"&&(e.style.resize="horizontal"),R&&(g=function($){for(var V=[];$&&$.parentNode&&$.parentNode instanceof Element;)$.parentNode.scrollTop&&V.push([$.parentNode,$.parentNode.scrollTop]),$=$.parentNode;return function(){return V.forEach(function(O){var P=O[0],ie=O[1];P.style.scrollBehavior="auto",P.scrollTop=ie,P.style.scrollBehavior=null})}}(e),e.style.height=""),h=r.boxSizing==="content-box"?e.scrollHeight-(parseFloat(r.paddingTop)+parseFloat(r.paddingBottom)):e.scrollHeight+parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),r.maxHeight!=="none"&&h>parseFloat(r.maxHeight)?(r.overflowY==="hidden"&&(e.style.overflow="scroll"),h=parseFloat(r.maxHeight)):r.overflowY!=="hidden"&&(e.style.overflow="hidden"),e.style.height=h+"px",o&&(e.style.textAlign=o),g&&g(),a!==h&&(e.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),a=h),z!==r.overflow&&!o)){var I=r.textAlign;r.overflow==="hidden"&&(e.style.textAlign=I==="start"?"end":"start"),d({restoreTextAlign:I,testForHeightReduction:!0})}}function c(){d({testForHeightReduction:!0,restoreTextAlign:null})}}(n)}),l}).destroy=function(l){return l&&Array.prototype.forEach.call(l.length?l:[l],wn),l},De.update=function(l){return l&&Array.prototype.forEach.call(l.length?l:[l],yn),l});var xt=De;function Vt(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}let _e=Vt();function bn(l){_e=l}const Ft=/[&<>"']/,xn=new RegExp(Ft.source,"g"),Wt=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,$n=new RegExp(Wt.source,"g"),Cn={"&":"&","<":"<",">":">",'"':""","'":"'"},$t=l=>Cn[l];function Y(l,t){if(t){if(Ft.test(l))return l.replace(xn,$t)}else if(Wt.test(l))return l.replace($n,$t);return l}const _n=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function qt(l){return l.replace(_n,(t,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const zn=/(^|[^\[])\^/g;function W(l,t){l=typeof l=="string"?l:l.source,t=t||"";const n={replace:(e,i)=>(i=i.source||i,i=i.replace(zn,"$1"),l=l.replace(e,i),n),getRegex:()=>new RegExp(l,t)};return n}const Rn=/[^\w:]/g,Sn=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function Ct(l,t,n){if(l){let e;try{e=decodeURIComponent(qt(n)).replace(Rn,"").toLowerCase()}catch{return null}if(e.indexOf("javascript:")===0||e.indexOf("vbscript:")===0||e.indexOf("data:")===0)return null}t&&!Sn.test(n)&&(n=An(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch{return null}return n}const Ze={},Ln=/^[^:]+:\/*[^/]*$/,In=/^([^:]+:)[\s\S]*$/,En=/^([^:]+:\/*[^/]*)[\s\S]*$/;function An(l,t){Ze[" "+l]||(Ln.test(l)?Ze[" "+l]=l+"/":Ze[" "+l]=Ge(l,"/",!0)),l=Ze[" "+l];const n=l.indexOf(":")===-1;return t.substring(0,2)==="//"?n?t:l.replace(In,"$1")+t:t.charAt(0)==="/"?n?t:l.replace(En,"$1")+t:l+t}const Xe={exec:function(){}};function _t(l,t){const n=l.replace(/\|/g,(a,r,s)=>{let u=!1,d=r;for(;--d>=0&&s[d]==="\\";)u=!u;return u?"|":" |"}),e=n.split(/ \|/);let i=0;if(e[0].trim()||e.shift(),e.length>0&&!e[e.length-1].trim()&&e.pop(),e.length>t)e.splice(t);else for(;e.length1;)t&1&&(n+=l),t>>=1,l+=l;return n+l}function Rt(l,t,n,e){const i=t.href,a=t.title?Y(t.title):null,r=l[1].replace(/\\([\[\]])/g,"$1");if(l[0].charAt(0)!=="!"){e.state.inLink=!0;const s={type:"link",raw:n,href:i,title:a,text:r,tokens:e.inlineTokens(r)};return e.state.inLink=!1,s}return{type:"image",raw:n,href:i,title:a,text:Y(r)}}function Un(l,t){const n=l.match(/^(\s+)(?:```)/);if(n===null)return t;const e=n[1];return t.split(` +var an=Object.defineProperty;var rn=(l,t,n)=>t in l?an(l,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[t]=n;var wt=(l,t,n)=>(rn(l,typeof t!="symbol"?t+"":t,n),n);import{a as _,g as Ne,h as U,f as et,i as ve,j as sn,o as m,c as w,F as te,k as se,n as yt,l as ut,u as on,m as X,r as cn,p as j,q as ke,s as T,t as M,v as J,d as ee,x as N,y as Le,z as pt,A as un,B as qe,C as pn,D as hn,E as dn,G as bt,b as Ce,H as gn,I as fn,J as mn,K as vn,L as kn}from"./app-5a96e1e2.js";var Be=new Map;function wn(l){var t=Be.get(l);t&&t.destroy()}function yn(l){var t=Be.get(l);t&&t.update()}var De=null;typeof window>"u"?((De=function(l){return l}).destroy=function(l){return l},De.update=function(l){return l}):((De=function(l,t){return l&&Array.prototype.forEach.call(l.length?l:[l],function(n){return function(e){if(e&&e.nodeName&&e.nodeName==="TEXTAREA"&&!Be.has(e)){var i,a=null,r=window.getComputedStyle(e),s=(i=e.value,function(){d({testForHeightReduction:i===""||!e.value.startsWith(i),restoreTextAlign:null}),i=e.value}),u=(function(p){e.removeEventListener("autosize:destroy",u),e.removeEventListener("autosize:update",c),e.removeEventListener("input",s),window.removeEventListener("resize",c),Object.keys(p).forEach(function(g){return e.style[g]=p[g]}),Be.delete(e)}).bind(e,{height:e.style.height,resize:e.style.resize,textAlign:e.style.textAlign,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",u),e.addEventListener("autosize:update",c),e.addEventListener("input",s),window.addEventListener("resize",c),e.style.overflowX="hidden",e.style.wordWrap="break-word",Be.set(e,{destroy:u,update:c}),c()}function d(p){var g,h,E=p.restoreTextAlign,o=E===void 0?null:E,f=p.testForHeightReduction,R=f===void 0||f,z=r.overflowY;if(e.scrollHeight!==0&&(r.resize==="vertical"?e.style.resize="none":r.resize==="both"&&(e.style.resize="horizontal"),R&&(g=function($){for(var V=[];$&&$.parentNode&&$.parentNode instanceof Element;)$.parentNode.scrollTop&&V.push([$.parentNode,$.parentNode.scrollTop]),$=$.parentNode;return function(){return V.forEach(function(O){var P=O[0],ie=O[1];P.style.scrollBehavior="auto",P.scrollTop=ie,P.style.scrollBehavior=null})}}(e),e.style.height=""),h=r.boxSizing==="content-box"?e.scrollHeight-(parseFloat(r.paddingTop)+parseFloat(r.paddingBottom)):e.scrollHeight+parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),r.maxHeight!=="none"&&h>parseFloat(r.maxHeight)?(r.overflowY==="hidden"&&(e.style.overflow="scroll"),h=parseFloat(r.maxHeight)):r.overflowY!=="hidden"&&(e.style.overflow="hidden"),e.style.height=h+"px",o&&(e.style.textAlign=o),g&&g(),a!==h&&(e.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),a=h),z!==r.overflow&&!o)){var I=r.textAlign;r.overflow==="hidden"&&(e.style.textAlign=I==="start"?"end":"start"),d({restoreTextAlign:I,testForHeightReduction:!0})}}function c(){d({testForHeightReduction:!0,restoreTextAlign:null})}}(n)}),l}).destroy=function(l){return l&&Array.prototype.forEach.call(l.length?l:[l],wn),l},De.update=function(l){return l&&Array.prototype.forEach.call(l.length?l:[l],yn),l});var xt=De;function Vt(){return{async:!1,baseUrl:null,breaks:!1,extensions:null,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,hooks:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}let _e=Vt();function bn(l){_e=l}const Ft=/[&<>"']/,xn=new RegExp(Ft.source,"g"),Wt=/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,$n=new RegExp(Wt.source,"g"),Cn={"&":"&","<":"<",">":">",'"':""","'":"'"},$t=l=>Cn[l];function Y(l,t){if(t){if(Ft.test(l))return l.replace(xn,$t)}else if(Wt.test(l))return l.replace($n,$t);return l}const _n=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function qt(l){return l.replace(_n,(t,n)=>(n=n.toLowerCase(),n==="colon"?":":n.charAt(0)==="#"?n.charAt(1)==="x"?String.fromCharCode(parseInt(n.substring(2),16)):String.fromCharCode(+n.substring(1)):""))}const zn=/(^|[^\[])\^/g;function W(l,t){l=typeof l=="string"?l:l.source,t=t||"";const n={replace:(e,i)=>(i=i.source||i,i=i.replace(zn,"$1"),l=l.replace(e,i),n),getRegex:()=>new RegExp(l,t)};return n}const Rn=/[^\w:]/g,Sn=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function Ct(l,t,n){if(l){let e;try{e=decodeURIComponent(qt(n)).replace(Rn,"").toLowerCase()}catch{return null}if(e.indexOf("javascript:")===0||e.indexOf("vbscript:")===0||e.indexOf("data:")===0)return null}t&&!Sn.test(n)&&(n=An(t,n));try{n=encodeURI(n).replace(/%25/g,"%")}catch{return null}return n}const Ze={},Ln=/^[^:]+:\/*[^/]*$/,In=/^([^:]+:)[\s\S]*$/,En=/^([^:]+:\/*[^/]*)[\s\S]*$/;function An(l,t){Ze[" "+l]||(Ln.test(l)?Ze[" "+l]=l+"/":Ze[" "+l]=Ge(l,"/",!0)),l=Ze[" "+l];const n=l.indexOf(":")===-1;return t.substring(0,2)==="//"?n?t:l.replace(In,"$1")+t:t.charAt(0)==="/"?n?t:l.replace(En,"$1")+t:l+t}const Xe={exec:function(){}};function _t(l,t){const n=l.replace(/\|/g,(a,r,s)=>{let u=!1,d=r;for(;--d>=0&&s[d]==="\\";)u=!u;return u?"|":" |"}),e=n.split(/ \|/);let i=0;if(e[0].trim()||e.shift(),e.length>0&&!e[e.length-1].trim()&&e.pop(),e.length>t)e.splice(t);else for(;e.length1;)t&1&&(n+=l),t>>=1,l+=l;return n+l}function Rt(l,t,n,e){const i=t.href,a=t.title?Y(t.title):null,r=l[1].replace(/\\([\[\]])/g,"$1");if(l[0].charAt(0)!=="!"){e.state.inLink=!0;const s={type:"link",raw:n,href:i,title:a,text:r,tokens:e.inlineTokens(r)};return e.state.inLink=!1,s}return{type:"image",raw:n,href:i,title:a,text:Y(r)}}function Un(l,t){const n=l.match(/^(\s+)(?:```)/);if(n===null)return t;const e=n[1];return t.split(` `).map(i=>{const a=i.match(/^\s+/);if(a===null)return i;const[r]=a;return r.length>=e.length?i.slice(e.length):i}).join(` `)}class ht{constructor(t){this.options=t||_e}space(t){const n=this.rules.block.newline.exec(t);if(n&&n[0].length>0)return{type:"space",raw:n[0]}}code(t){const n=this.rules.block.code.exec(t);if(n){const e=n[0].replace(/^ {1,4}/gm,"");return{type:"code",raw:n[0],codeBlockStyle:"indented",text:this.options.pedantic?e:Ge(e,` `)}}}fences(t){const n=this.rules.block.fences.exec(t);if(n){const e=n[0],i=Un(e,n[3]||"");return{type:"code",raw:e,lang:n[2]?n[2].trim().replace(this.rules.inline._escapes,"$1"):n[2],text:i}}}heading(t){const n=this.rules.block.heading.exec(t);if(n){let e=n[2].trim();if(/#$/.test(e)){const i=Ge(e,"#");(this.options.pedantic||!i||/ $/.test(i))&&(e=i.trim())}return{type:"heading",raw:n[0],depth:n[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(t){const n=this.rules.block.hr.exec(t);if(n)return{type:"hr",raw:n[0]}}blockquote(t){const n=this.rules.block.blockquote.exec(t);if(n){const e=n[0].replace(/^ *>[ \t]?/gm,""),i=this.lexer.state.top;this.lexer.state.top=!0;const a=this.lexer.blockTokens(e);return this.lexer.state.top=i,{type:"blockquote",raw:n[0],tokens:a,text:e}}}list(t){let n=this.rules.block.list.exec(t);if(n){let e,i,a,r,s,u,d,c,p,g,h,E,o=n[1].trim();const f=o.length>1,R={type:"list",raw:"",ordered:f,start:f?+o.slice(0,-1):"",loose:!1,items:[]};o=f?`\\d{1,9}\\${o.slice(-1)}`:`\\${o}`,this.options.pedantic&&(o=f?o:"[*+-]");const z=new RegExp(`^( {0,3}${o})((?:[ ][^\\n]*)?(?:\\n|$))`);for(;t&&(E=!1,!(!(n=z.exec(t))||this.rules.block.hr.test(t)));){if(e=n[0],t=t.substring(e.length),c=n[2].split(` diff --git a/assets/contribute.html-d0274f20.js b/assets/contribute.html-54af88d0.js similarity index 97% rename from assets/contribute.html-d0274f20.js rename to assets/contribute.html-54af88d0.js index 060565e32..74bc42023 100644 --- a/assets/contribute.html-d0274f20.js +++ b/assets/contribute.html-54af88d0.js @@ -1 +1 @@ -import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as r,c as a,a as e,b as o,d as t,e as c}from"./app-8966c29b.js";const d={},u=e("h1",{id:"贡献你的代码",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#贡献你的代码","aria-hidden":"true"},"#"),o(" 贡献你的代码")],-1),h=e("p",null,"胡桃工具箱使用 C# 和 .NET 框架开发桌面客户端和服务端。如果你愿意贡献你的代码,请阅读以下指导文档。",-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+is%3Aopen+-label%3A%E5%B7%B2%E4%BF%AE%E5%A4%8D+",target:"_blank",rel:"noopener noreferrer"},p={id:"设置-snap-hutao-项目",tabindex:"-1"},f=e("a",{class:"header-anchor",href:"#设置-snap-hutao-项目","aria-hidden":"true"},"#",-1),b={href:"https://visualstudio.microsoft.com/downloads/",target:"_blank",rel:"noopener noreferrer"},m=c("
  • 启动 Visual Studio Installer 以完成 Visual Studio 的安装流程
    • 你需要安装 .NET desktop developmentDesktop development with C++Universal Windows Platform development 组件
  • 安装 Visual Studio 商店中由 Microsoft 提供的 Single-project MSIX Packaging Tools for VS 2022 插件
  • 使用 Git clone https://github.com/DGP-Studio/Snap.Hutao.git 到你的本地设备
  • 将分支切换为 develop
  • 使用你的 Visual Studio 打开项目 solution,接下来你就可以开始编辑代码了
  • ",5),g={id:"开启-debug",tabindex:"-1"},S=e("a",{class:"header-anchor",href:"#开启-debug","aria-hidden":"true"},"#",-1),k={href:"https://www.microsoft.com/store/productid/9P7KNL5RWT25",target:"_blank",rel:"noopener noreferrer"},w={href:"https://learn.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite",target:"_blank",rel:"noopener noreferrer"},v=e("code",null,"Sysinternals Suite",-1),H=e("li",null,[o("从开始菜单或解压后的文件中找到 "),e("code",null,"DebugView"),o(" 并启动")],-1),P=e("li",null,"启动 Snap Hutao 主程序",-1),V=e("li",null,"观察 DebugView 的输出",-1),x={id:"发起-pull-request",tabindex:"-1"},D=e("a",{class:"header-anchor",href:"#发起-pull-request","aria-hidden":"true"},"#",-1),E=e("li",null,[o("所有不是从项目其它分支发起的 Pull Request 都只被允许合并进 "),e("code",null,"develop"),o(" 分支")],-1),I={href:"https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests",target:"_blank",rel:"noopener noreferrer"},q=e("code",null,"main",-1),A={id:"测试打包程序",tabindex:"-1"},C=e("a",{class:"header-anchor",href:"#测试打包程序","aria-hidden":"true"},"#",-1),G=e("code",null,"develop",-1),N=e("code",null,"main",-1),z=e("code",null,"Snap Hutao Alpha",-1),B=e("code",null,"pre-release",-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/releases",target:"_blank",rel:"noopener noreferrer"},R={href:"https://github.com/DGP-Studio/Snap.Hutao/releases/download/2023.10.3.1/Snap.Hutao.CI.cer",target:"_blank",rel:"noopener noreferrer"},T=e("p",null,"*如果在最新的发布中没有包含程序安装包附件,则意味着它仍然处于上传过程中。",-1);function L(M,W){const n=i("ExternalLinkIcon"),s=i("HopeIcon");return r(),a("div",null,[u,h,e("p",null,[o("你可以在 GitHub 上查看所有当前仍然"),e("a",_,[o("未解决的问题"),t(n)])]),e("h2",p,[f,o(),t(s,{icon:"iconfont icon-visual-studio",size:"1.5rem",color:"rgb(193,142,241)"}),o(" 设置 Snap.Hutao 项目")]),e("ol",null,[e("li",null,[o("下载并安装 "),e("a",b,[o("Visual Studio 2022 Community"),t(n)])]),m]),e("h2",g,[S,o(),t(s,{icon:"iconfont icon-debug",size:"1.5rem",color:"rgb(73,156,84)"}),o(" 开启 Debug")]),e("ol",null,[e("li",null,[o("从"),e("a",k,[o("微软商店"),t(n)]),o("或"),e("a",w,[o("微软官网"),t(n)]),o("下载并安装 "),v]),H,P,V]),e("h2",x,[D,o(),t(s,{icon:"iconfont icon-pull-request",size:"1.5rem",color:"rgb(130,80,223)"}),o(" 发起 Pull Request")]),e("ul",null,[E,e("li",null,[o("如果你提交的代码与已有的 issue 相关,请使用请使用"),e("a",I,[o("关键词"),t(n)]),o(" 将你的 PR 与相关的 issue 关联起来。这样当你的 PR 最终被合并进 "),q,o(" 主分支时,这些 issue 将被自动关闭。")])]),e("h2",A,[C,o(),t(s,{icon:"iconfont icon-build-package",size:"1.5rem",color:"rgb(254,189,105)"}),o(" 测试打包程序")]),e("p",null,[o("一旦你的代码被合并进 "),G,o(" 和 "),N,o(" 分支,一个 Azure Pipeline CI 流水线脚本将运行起来以构建所在分支的最新代码,并以 "),z,o(" 命名。 当该测试包打包完成后,它将被以 "),B,o(" 的形式发布在 "),e("a",y,[o("GitHub 发布页面"),t(n)]),o("上。")]),e("p",null,[o("你需要安装 "),e("a",R,[o("Snap.Hutao.CI.cer"),t(n)]),o(" 证书到你的本地设备上以允许你安装测试版安装包。")]),T])}const K=l(d,[["render",L],["__file","contribute.html.vue"]]);export{K as default}; +import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as r,c as a,a as e,b as o,d as t,e as c}from"./app-5a96e1e2.js";const d={},u=e("h1",{id:"贡献你的代码",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#贡献你的代码","aria-hidden":"true"},"#"),o(" 贡献你的代码")],-1),h=e("p",null,"胡桃工具箱使用 C# 和 .NET 框架开发桌面客户端和服务端。如果你愿意贡献你的代码,请阅读以下指导文档。",-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+is%3Aopen+-label%3A%E5%B7%B2%E4%BF%AE%E5%A4%8D+",target:"_blank",rel:"noopener noreferrer"},p={id:"设置-snap-hutao-项目",tabindex:"-1"},f=e("a",{class:"header-anchor",href:"#设置-snap-hutao-项目","aria-hidden":"true"},"#",-1),b={href:"https://visualstudio.microsoft.com/downloads/",target:"_blank",rel:"noopener noreferrer"},m=c("
  • 启动 Visual Studio Installer 以完成 Visual Studio 的安装流程
    • 你需要安装 .NET desktop developmentDesktop development with C++Universal Windows Platform development 组件
  • 安装 Visual Studio 商店中由 Microsoft 提供的 Single-project MSIX Packaging Tools for VS 2022 插件
  • 使用 Git clone https://github.com/DGP-Studio/Snap.Hutao.git 到你的本地设备
  • 将分支切换为 develop
  • 使用你的 Visual Studio 打开项目 solution,接下来你就可以开始编辑代码了
  • ",5),g={id:"开启-debug",tabindex:"-1"},S=e("a",{class:"header-anchor",href:"#开启-debug","aria-hidden":"true"},"#",-1),k={href:"https://www.microsoft.com/store/productid/9P7KNL5RWT25",target:"_blank",rel:"noopener noreferrer"},w={href:"https://learn.microsoft.com/zh-cn/sysinternals/downloads/sysinternals-suite",target:"_blank",rel:"noopener noreferrer"},v=e("code",null,"Sysinternals Suite",-1),H=e("li",null,[o("从开始菜单或解压后的文件中找到 "),e("code",null,"DebugView"),o(" 并启动")],-1),P=e("li",null,"启动 Snap Hutao 主程序",-1),V=e("li",null,"观察 DebugView 的输出",-1),x={id:"发起-pull-request",tabindex:"-1"},D=e("a",{class:"header-anchor",href:"#发起-pull-request","aria-hidden":"true"},"#",-1),E=e("li",null,[o("所有不是从项目其它分支发起的 Pull Request 都只被允许合并进 "),e("code",null,"develop"),o(" 分支")],-1),I={href:"https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests",target:"_blank",rel:"noopener noreferrer"},q=e("code",null,"main",-1),A={id:"测试打包程序",tabindex:"-1"},C=e("a",{class:"header-anchor",href:"#测试打包程序","aria-hidden":"true"},"#",-1),G=e("code",null,"develop",-1),N=e("code",null,"main",-1),z=e("code",null,"Snap Hutao Alpha",-1),B=e("code",null,"pre-release",-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/releases",target:"_blank",rel:"noopener noreferrer"},R={href:"https://github.com/DGP-Studio/Snap.Hutao/releases/download/2023.10.3.1/Snap.Hutao.CI.cer",target:"_blank",rel:"noopener noreferrer"},T=e("p",null,"*如果在最新的发布中没有包含程序安装包附件,则意味着它仍然处于上传过程中。",-1);function L(M,W){const n=i("ExternalLinkIcon"),s=i("HopeIcon");return r(),a("div",null,[u,h,e("p",null,[o("你可以在 GitHub 上查看所有当前仍然"),e("a",_,[o("未解决的问题"),t(n)])]),e("h2",p,[f,o(),t(s,{icon:"iconfont icon-visual-studio",size:"1.5rem",color:"rgb(193,142,241)"}),o(" 设置 Snap.Hutao 项目")]),e("ol",null,[e("li",null,[o("下载并安装 "),e("a",b,[o("Visual Studio 2022 Community"),t(n)])]),m]),e("h2",g,[S,o(),t(s,{icon:"iconfont icon-debug",size:"1.5rem",color:"rgb(73,156,84)"}),o(" 开启 Debug")]),e("ol",null,[e("li",null,[o("从"),e("a",k,[o("微软商店"),t(n)]),o("或"),e("a",w,[o("微软官网"),t(n)]),o("下载并安装 "),v]),H,P,V]),e("h2",x,[D,o(),t(s,{icon:"iconfont icon-pull-request",size:"1.5rem",color:"rgb(130,80,223)"}),o(" 发起 Pull Request")]),e("ul",null,[E,e("li",null,[o("如果你提交的代码与已有的 issue 相关,请使用请使用"),e("a",I,[o("关键词"),t(n)]),o(" 将你的 PR 与相关的 issue 关联起来。这样当你的 PR 最终被合并进 "),q,o(" 主分支时,这些 issue 将被自动关闭。")])]),e("h2",A,[C,o(),t(s,{icon:"iconfont icon-build-package",size:"1.5rem",color:"rgb(254,189,105)"}),o(" 测试打包程序")]),e("p",null,[o("一旦你的代码被合并进 "),G,o(" 和 "),N,o(" 分支,一个 Azure Pipeline CI 流水线脚本将运行起来以构建所在分支的最新代码,并以 "),z,o(" 命名。 当该测试包打包完成后,它将被以 "),B,o(" 的形式发布在 "),e("a",y,[o("GitHub 发布页面"),t(n)]),o("上。")]),e("p",null,[o("你需要安装 "),e("a",R,[o("Snap.Hutao.CI.cer"),t(n)]),o(" 证书到你的本地设备上以允许你安装测试版安装包。")]),T])}const K=l(d,[["render",L],["__file","contribute.html.vue"]]);export{K as default}; diff --git a/assets/contribute.html-70e3d28c.js b/assets/contribute.html-e1851f90.js similarity index 97% rename from assets/contribute.html-70e3d28c.js rename to assets/contribute.html-e1851f90.js index 3b3dc8505..bb3180238 100644 --- a/assets/contribute.html-70e3d28c.js +++ b/assets/contribute.html-e1851f90.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as l,c as r,a as e,b as o,d as t,e as c}from"./app-8966c29b.js";const d={},u=e("h1",{id:"contribute-your-code",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#contribute-your-code","aria-hidden":"true"},"#"),o(" Contribute Your Code")],-1),h=e("p",null,"Snap Hutao is using C# and .NET Framework to develop both client and server. If you are willing to contribute your code to the project, please read the following guidelines.",-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+is%3Aopen+-label%3A%E5%B7%B2%E4%BF%AE%E5%A4%8D+",target:"_blank",rel:"noopener noreferrer"},_={id:"setup-snap-hutao-project",tabindex:"-1"},b=e("a",{class:"header-anchor",href:"#setup-snap-hutao-project","aria-hidden":"true"},"#",-1),g={href:"https://visualstudio.microsoft.com/downloads/",target:"_blank",rel:"noopener noreferrer"},m=c("
  • Open Visual Studio Installer to complete Visual Studio installation
    • You need to install .NET desktop development, Desktop development with C++ and Universal Windows Platform development components
  • Install Single-project MSIX Packaging Tools for VS 2022 provided by Microsoft in Visual Studio marketplace
  • Use git to clone the project https://github.com/DGP-Studio/Snap.Hutao.git to your local device
  • Switch git branch to develop
  • Open project solution with your Visual Studio and then you are ready to go
  • ",5),f={id:"enable-debug",tabindex:"-1"},k=e("a",{class:"header-anchor",href:"#enable-debug","aria-hidden":"true"},"#",-1),S=e("code",null,"Sysinternals Suite",-1),w={href:"https://www.microsoft.com/store/productid/9P7KNL5RWT25",target:"_blank",rel:"noopener noreferrer"},y={href:"https://learn.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite",target:"_blank",rel:"noopener noreferrer"},v=e("li",null,[o("Locate and run "),e("code",null,"DebugView"),o(" program in the installed app list or unzipped folder")],-1),H=e("li",null,"Run Snap Hutao client",-1),P=e("li",null,"Check DebugView output",-1),x={id:"start-pull-request",tabindex:"-1"},I=e("a",{class:"header-anchor",href:"#start-pull-request","aria-hidden":"true"},"#",-1),V=e("li",null,[o("All code-related changes from authors' own branches are only allowed be merged to "),e("code",null,"develop"),o(" branch")],-1),D={href:"https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests",target:"_blank",rel:"noopener noreferrer"},C=e("code",null,"main",-1),E={id:"test-binary-package",tabindex:"-1"},A=e("a",{class:"header-anchor",href:"#test-binary-package","aria-hidden":"true"},"#",-1),j=e("code",null,"develop",-1),B=e("code",null,"main",-1),N=e("code",null,"Snap Hutao Alpha",-1),q={href:"https://github.com/DGP-Studio/Snap.Hutao/releases",target:"_blank",rel:"noopener noreferrer"},z={href:"https://github.com/DGP-Studio/Snap.Hutao/releases/download/2023.10.3.1/Snap.Hutao.CI.cer",target:"_blank",rel:"noopener noreferrer"},G=e("p",null,"*If the latest release does not contain attached file, that means package is still in uploading process.",-1);function T(R,L){const n=i("ExternalLinkIcon"),a=i("HopeIcon");return l(),r("div",null,[u,h,e("p",null,[o("You can find all "),e("a",p,[o("unsolved opened issues"),t(n)]),o(" on GitHub")]),e("h2",_,[b,o(),t(a,{icon:"iconfont icon-visual-studio",size:"1.5rem",color:"rgb(193,142,241)"}),o(" Setup Snap.Hutao Project")]),e("ol",null,[e("li",null,[o("Download and install "),e("a",g,[o("Visual Studio 2022 Community"),t(n)])]),m]),e("h2",f,[k,o(),t(a,{icon:"iconfont icon-debug",size:"1.5rem",color:"rgb(73,156,84)"}),o(" Enable Debug")]),e("ol",null,[e("li",null,[o("Download and install "),S,o(" from "),e("a",w,[o("Microsoft Store"),t(n)]),o(" or "),e("a",y,[o("Microsoft website"),t(n)])]),v,H,P]),e("h2",x,[I,o(),t(a,{icon:"iconfont icon-pull-request",size:"1.5rem",color:"rgb(130,80,223)"}),o(" Start Pull Request")]),e("ul",null,[V,e("li",null,[o("Please use "),e("a",D,[o("keywords"),t(n)]),o(" to link your PR or commits with issues, so issues can be automatically closed once commits are merged into "),C,o(" branch.")])]),e("h2",E,[A,o(),t(a,{icon:"iconfont icon-build-package",size:"1.5rem",color:"rgb(254,189,105)"}),o(" Test Binary Package")]),e("p",null,[o("Once the code in updated in "),j,o(" and "),B,o(" branches, an Azure Pipeline CI script will build the latest code to "),N,o(" package. Once the package is built, it will be released on "),e("a",q,[o("GitHub Release page"),t(n)]),o(" as a pre-released package.")]),e("p",null,[o("You need to install "),e("a",z,[o("Snap.Hutao.CI.cer"),t(n)]),o(" certificate to your local machine, and then install the msix package in the release.")]),G])}const Y=s(d,[["render",T],["__file","contribute.html.vue"]]);export{Y as default}; +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as l,c as r,a as e,b as o,d as t,e as c}from"./app-5a96e1e2.js";const d={},u=e("h1",{id:"contribute-your-code",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#contribute-your-code","aria-hidden":"true"},"#"),o(" Contribute Your Code")],-1),h=e("p",null,"Snap Hutao is using C# and .NET Framework to develop both client and server. If you are willing to contribute your code to the project, please read the following guidelines.",-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+is%3Aopen+-label%3A%E5%B7%B2%E4%BF%AE%E5%A4%8D+",target:"_blank",rel:"noopener noreferrer"},_={id:"setup-snap-hutao-project",tabindex:"-1"},b=e("a",{class:"header-anchor",href:"#setup-snap-hutao-project","aria-hidden":"true"},"#",-1),g={href:"https://visualstudio.microsoft.com/downloads/",target:"_blank",rel:"noopener noreferrer"},m=c("
  • Open Visual Studio Installer to complete Visual Studio installation
    • You need to install .NET desktop development, Desktop development with C++ and Universal Windows Platform development components
  • Install Single-project MSIX Packaging Tools for VS 2022 provided by Microsoft in Visual Studio marketplace
  • Use git to clone the project https://github.com/DGP-Studio/Snap.Hutao.git to your local device
  • Switch git branch to develop
  • Open project solution with your Visual Studio and then you are ready to go
  • ",5),f={id:"enable-debug",tabindex:"-1"},k=e("a",{class:"header-anchor",href:"#enable-debug","aria-hidden":"true"},"#",-1),S=e("code",null,"Sysinternals Suite",-1),w={href:"https://www.microsoft.com/store/productid/9P7KNL5RWT25",target:"_blank",rel:"noopener noreferrer"},y={href:"https://learn.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite",target:"_blank",rel:"noopener noreferrer"},v=e("li",null,[o("Locate and run "),e("code",null,"DebugView"),o(" program in the installed app list or unzipped folder")],-1),H=e("li",null,"Run Snap Hutao client",-1),P=e("li",null,"Check DebugView output",-1),x={id:"start-pull-request",tabindex:"-1"},I=e("a",{class:"header-anchor",href:"#start-pull-request","aria-hidden":"true"},"#",-1),V=e("li",null,[o("All code-related changes from authors' own branches are only allowed be merged to "),e("code",null,"develop"),o(" branch")],-1),D={href:"https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/using-keywords-in-issues-and-pull-requests",target:"_blank",rel:"noopener noreferrer"},C=e("code",null,"main",-1),E={id:"test-binary-package",tabindex:"-1"},A=e("a",{class:"header-anchor",href:"#test-binary-package","aria-hidden":"true"},"#",-1),j=e("code",null,"develop",-1),B=e("code",null,"main",-1),N=e("code",null,"Snap Hutao Alpha",-1),q={href:"https://github.com/DGP-Studio/Snap.Hutao/releases",target:"_blank",rel:"noopener noreferrer"},z={href:"https://github.com/DGP-Studio/Snap.Hutao/releases/download/2023.10.3.1/Snap.Hutao.CI.cer",target:"_blank",rel:"noopener noreferrer"},G=e("p",null,"*If the latest release does not contain attached file, that means package is still in uploading process.",-1);function T(R,L){const n=i("ExternalLinkIcon"),a=i("HopeIcon");return l(),r("div",null,[u,h,e("p",null,[o("You can find all "),e("a",p,[o("unsolved opened issues"),t(n)]),o(" on GitHub")]),e("h2",_,[b,o(),t(a,{icon:"iconfont icon-visual-studio",size:"1.5rem",color:"rgb(193,142,241)"}),o(" Setup Snap.Hutao Project")]),e("ol",null,[e("li",null,[o("Download and install "),e("a",g,[o("Visual Studio 2022 Community"),t(n)])]),m]),e("h2",f,[k,o(),t(a,{icon:"iconfont icon-debug",size:"1.5rem",color:"rgb(73,156,84)"}),o(" Enable Debug")]),e("ol",null,[e("li",null,[o("Download and install "),S,o(" from "),e("a",w,[o("Microsoft Store"),t(n)]),o(" or "),e("a",y,[o("Microsoft website"),t(n)])]),v,H,P]),e("h2",x,[I,o(),t(a,{icon:"iconfont icon-pull-request",size:"1.5rem",color:"rgb(130,80,223)"}),o(" Start Pull Request")]),e("ul",null,[V,e("li",null,[o("Please use "),e("a",D,[o("keywords"),t(n)]),o(" to link your PR or commits with issues, so issues can be automatically closed once commits are merged into "),C,o(" branch.")])]),e("h2",E,[A,o(),t(a,{icon:"iconfont icon-build-package",size:"1.5rem",color:"rgb(254,189,105)"}),o(" Test Binary Package")]),e("p",null,[o("Once the code in updated in "),j,o(" and "),B,o(" branches, an Azure Pipeline CI script will build the latest code to "),N,o(" package. Once the package is built, it will be released on "),e("a",q,[o("GitHub Release page"),t(n)]),o(" as a pre-released package.")]),e("p",null,[o("You need to install "),e("a",z,[o("Snap.Hutao.CI.cer"),t(n)]),o(" certificate to your local machine, and then install the msix package in the release.")]),G])}const Y=s(d,[["render",T],["__file","contribute.html.vue"]]);export{Y as default}; diff --git a/assets/dashboard.html-1f8f954a.js b/assets/dashboard.html-26c28184.js similarity index 96% rename from assets/dashboard.html-1f8f954a.js rename to assets/dashboard.html-26c28184.js index d9d4693c6..fed2c6a8a 100644 --- a/assets/dashboard.html-1f8f954a.js +++ b/assets/dashboard.html-26c28184.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as t,e as i}from"./app-8966c29b.js";const o={},n=i('

    Home Dashboard

    dashbord screenshot

    Snap Hutao will enter home dashboard by default when it's opened. The top part is your personal gaming data; the bottom part is recent game notice and event countdown in days and hours.

    Gaming data dashboard includes:

    • Snap Hutao Announcement
      • If Snap Hutao dev team publish a new announcement, it will be shown on the dashboard, it can be manually closed
    • Snap Hutao Account
      • If you have a signed in Snap Hutao account, the email address will be shown on the top; If not signed in, there will be a register/login hint
    • Game launcher
      • You can select your account and start the game from dashboard
    • Wish history
      • Game UID and progress bar styled pity count will be display in the dashboard
      • If you have multiple wish history archives, you can use arrow button on left and right side of chart to switch archive
    • Achievement statistics
      • Achievement statistics charts includes gained achievements count, percentage, and the latest gained achievements
      • If you have multiple achievement archives, you can use arrow button on left and right side of chart to switch archive
    • Real-time Notes
      • Real-time notes data will be displayed on home dashboard
      • If you have multiple activated real-time notes account, you can use arrow button on left and right side of chart to switch account
    ',5),l=[n];function s(r,h){return a(),t("div",null,l)}const u=e(o,[["render",s],["__file","dashboard.html.vue"]]);export{u as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as t,e as i}from"./app-5a96e1e2.js";const o={},n=i('

    Home Dashboard

    dashbord screenshot

    Snap Hutao will enter home dashboard by default when it's opened. The top part is your personal gaming data; the bottom part is recent game notice and event countdown in days and hours.

    Gaming data dashboard includes:

    • Snap Hutao Announcement
      • If Snap Hutao dev team publish a new announcement, it will be shown on the dashboard, it can be manually closed
    • Snap Hutao Account
      • If you have a signed in Snap Hutao account, the email address will be shown on the top; If not signed in, there will be a register/login hint
    • Game launcher
      • You can select your account and start the game from dashboard
    • Wish history
      • Game UID and progress bar styled pity count will be display in the dashboard
      • If you have multiple wish history archives, you can use arrow button on left and right side of chart to switch archive
    • Achievement statistics
      • Achievement statistics charts includes gained achievements count, percentage, and the latest gained achievements
      • If you have multiple achievement archives, you can use arrow button on left and right side of chart to switch archive
    • Real-time Notes
      • Real-time notes data will be displayed on home dashboard
      • If you have multiple activated real-time notes account, you can use arrow button on left and right side of chart to switch account
    ',5),l=[n];function s(r,h){return a(),t("div",null,l)}const u=e(o,[["render",s],["__file","dashboard.html.vue"]]);export{u as default}; diff --git a/assets/dashboard.html-877fc948.js b/assets/dashboard.html-83ef77ec.js similarity index 96% rename from assets/dashboard.html-877fc948.js rename to assets/dashboard.html-83ef77ec.js index 71363491d..2d5ac9765 100644 --- a/assets/dashboard.html-877fc948.js +++ b/assets/dashboard.html-83ef77ec.js @@ -1 +1 @@ -import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{o as i,c as a,e}from"./app-8966c29b.js";const t={},o=e('

    首页仪表盘

    仪表盘

    胡桃工具箱启动后会默认进入首页仪表盘,上半部分为你的个人游戏数据,下半部分为近期游戏公告及游戏活动倒计时。

    个人游戏数据仪表盘包含以下内容:

    • Snap Hutao 公告
      • 若 Snap Hutao 开发组发布了新的公告则会在仪表盘上方显示,你可以手动关闭这些公告
    • 胡桃帐号
      • 若你已登录胡桃帐号,将会在顶部显示胡桃邮箱帐号;若未登录将会有注册和登录提示
    • 游戏启动器
      • 你可以直接在仪表盘中选择帐号并启动游戏
    • 祈愿记录
      • 仪表盘中将显示祈愿档案 UID 并以进度条的形式显示保底计数
      • 如在胡桃工具箱中有多个祈愿档案,你可以使用祈愿记录图表两侧的箭头按钮来切换档案
    • 成就统计
      • 仪表盘中将显示成就档案中已完成成就总数、百分比和最新获得的成就
      • 如在胡桃工具箱中有多个成就档案,你可以使用成就统计图表两侧的箭头按钮来切换档案
    • 实时便笺
      • 仪表盘中将显示实时便笺数据
      • 如在胡桃工具箱中有多个激活的实时便笺,你可以使用实时便笺两侧的箭头按钮来切换档案
    ',5),r=[o];function c(u,n){return i(),a("div",null,r)}const _=l(t,[["render",c],["__file","dashboard.html.vue"]]);export{_ as default}; +import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{o as i,c as a,e}from"./app-5a96e1e2.js";const t={},o=e('

    首页仪表盘

    仪表盘

    胡桃工具箱启动后会默认进入首页仪表盘,上半部分为你的个人游戏数据,下半部分为近期游戏公告及游戏活动倒计时。

    个人游戏数据仪表盘包含以下内容:

    • Snap Hutao 公告
      • 若 Snap Hutao 开发组发布了新的公告则会在仪表盘上方显示,你可以手动关闭这些公告
    • 胡桃帐号
      • 若你已登录胡桃帐号,将会在顶部显示胡桃邮箱帐号;若未登录将会有注册和登录提示
    • 游戏启动器
      • 你可以直接在仪表盘中选择帐号并启动游戏
    • 祈愿记录
      • 仪表盘中将显示祈愿档案 UID 并以进度条的形式显示保底计数
      • 如在胡桃工具箱中有多个祈愿档案,你可以使用祈愿记录图表两侧的箭头按钮来切换档案
    • 成就统计
      • 仪表盘中将显示成就档案中已完成成就总数、百分比和最新获得的成就
      • 如在胡桃工具箱中有多个成就档案,你可以使用成就统计图表两侧的箭头按钮来切换档案
    • 实时便笺
      • 仪表盘中将显示实时便笺数据
      • 如在胡桃工具箱中有多个激活的实时便笺,你可以使用实时便笺两侧的箭头按钮来切换档案
    ',5),r=[o];function c(u,n){return i(),a("div",null,r)}const _=l(t,[["render",c],["__file","dashboard.html.vue"]]);export{_ as default}; diff --git a/assets/dependency.html-cc0594b5.js b/assets/dependency.html-0fd09a7f.js similarity index 95% rename from assets/dependency.html-cc0594b5.js rename to assets/dependency.html-0fd09a7f.js index 2d990a8e4..af772fa2f 100644 --- a/assets/dependency.html-cc0594b5.js +++ b/assets/dependency.html-0fd09a7f.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as l,c as s,a as e,b as n,d as i}from"./app-8966c29b.js";const r={},d=e("h1",{id:"install-dependency-manually",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#install-dependency-manually","aria-hidden":"true"},"#"),n(" Install Dependency Manually")],-1),c=e("p",null,"Snap Hutao relies on Windows App Runtime as a dependency, when user's system is missing this environment, Windows will install this framework before Snap Hutao's installation.",-1),p=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01RJFPnY1g6dye2b8Uy_!!1797064093.png_.webp",alt:"",loading:"lazy"})],-1),u=e("p",null,"If you are in a poor network, you may slow or even stuck at framework installation stage. In such a scenario, you can download the framework from Microsoft website and install it manually.",-1),_={href:"https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads",target:"_blank",rel:"noopener noreferrer"},m=e("li",null,[n("Click on "),e("code",null,"Dwonload the latest x64 stable installer"),n(" to download the offline installer")],-1),h=e("li",null,"Run Windows App Runtime installer you just downloaded, and then install Snap Hutao",-1);function f(w,y){const o=a("ExternalLinkIcon");return l(),s("div",null,[d,c,p,u,e("ol",null,[e("li",null,[n("Visit Microsoft document page:"),e("a",_,[n("Latest downloads for the Windows App SDK"),i(o)])]),m,h])])}const x=t(r,[["render",f],["__file","dependency.html.vue"]]);export{x as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as l,c as s,a as e,b as n,d as i}from"./app-5a96e1e2.js";const r={},d=e("h1",{id:"install-dependency-manually",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#install-dependency-manually","aria-hidden":"true"},"#"),n(" Install Dependency Manually")],-1),c=e("p",null,"Snap Hutao relies on Windows App Runtime as a dependency, when user's system is missing this environment, Windows will install this framework before Snap Hutao's installation.",-1),p=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01RJFPnY1g6dye2b8Uy_!!1797064093.png_.webp",alt:"",loading:"lazy"})],-1),u=e("p",null,"If you are in a poor network, you may slow or even stuck at framework installation stage. In such a scenario, you can download the framework from Microsoft website and install it manually.",-1),_={href:"https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/downloads",target:"_blank",rel:"noopener noreferrer"},m=e("li",null,[n("Click on "),e("code",null,"Dwonload the latest x64 stable installer"),n(" to download the offline installer")],-1),h=e("li",null,"Run Windows App Runtime installer you just downloaded, and then install Snap Hutao",-1);function f(w,y){const o=a("ExternalLinkIcon");return l(),s("div",null,[d,c,p,u,e("ol",null,[e("li",null,[n("Visit Microsoft document page:"),e("a",_,[n("Latest downloads for the Windows App SDK"),i(o)])]),m,h])])}const x=t(r,[["render",f],["__file","dependency.html.vue"]]);export{x as default}; diff --git a/assets/dependency.html-0db61041.js b/assets/dependency.html-f161842e.js similarity index 95% rename from assets/dependency.html-0db61041.js rename to assets/dependency.html-f161842e.js index fddce833c..9cb37f4cb 100644 --- a/assets/dependency.html-0db61041.js +++ b/assets/dependency.html-f161842e.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as a,c as l,a as e,b as n,d as i}from"./app-8966c29b.js";const c={},d=e("h1",{id:"手动安装依赖项",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#手动安装依赖项","aria-hidden":"true"},"#"),n(" 手动安装依赖项")],-1),r=e("p",null,"Snap Hutao 依赖于 Windows App Runtime 作为环境,当用户系统缺少该环境时,Windows 系统会在安装胡桃前安装该框架。",-1),_=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01xH5WtE1g6dyZoGnu3_!!1797064093.png_.webp",alt:"",loading:"lazy"})],-1),p=e("p",null,"若你处在网络较差的环境中,可能会卡在环境安装过程中。在这种情况下,你可以从微软官网下载 Windows App Runtime 安装包并手动安装:",-1),u={href:"https://learn.microsoft.com/zh-cn/windows/apps/windows-app-sdk/downloads",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[n("点击"),e("code",null,"下载最新的 x64 稳定安装程序"),n("以下载离线安装包")],-1),m=e("li",null,"运行下载的 Windows App Runtime 安装包,完成后再安装 Snap Hutao",-1);function f(w,x){const o=s("ExternalLinkIcon");return a(),l("div",null,[d,r,_,p,e("ol",null,[e("li",null,[n("访问微软官方文档:"),e("a",u,[n("Windows 应用 SDK 最新的下载项"),i(o)])]),h,m])])}const W=t(c,[["render",f],["__file","dependency.html.vue"]]);export{W as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as a,c as l,a as e,b as n,d as i}from"./app-5a96e1e2.js";const c={},d=e("h1",{id:"手动安装依赖项",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#手动安装依赖项","aria-hidden":"true"},"#"),n(" 手动安装依赖项")],-1),r=e("p",null,"Snap Hutao 依赖于 Windows App Runtime 作为环境,当用户系统缺少该环境时,Windows 系统会在安装胡桃前安装该框架。",-1),_=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01xH5WtE1g6dyZoGnu3_!!1797064093.png_.webp",alt:"",loading:"lazy"})],-1),p=e("p",null,"若你处在网络较差的环境中,可能会卡在环境安装过程中。在这种情况下,你可以从微软官网下载 Windows App Runtime 安装包并手动安装:",-1),u={href:"https://learn.microsoft.com/zh-cn/windows/apps/windows-app-sdk/downloads",target:"_blank",rel:"noopener noreferrer"},h=e("li",null,[n("点击"),e("code",null,"下载最新的 x64 稳定安装程序"),n("以下载离线安装包")],-1),m=e("li",null,"运行下载的 Windows App Runtime 安装包,完成后再安装 Snap Hutao",-1);function f(w,x){const o=s("ExternalLinkIcon");return a(),l("div",null,[d,r,_,p,e("ol",null,[e("li",null,[n("访问微软官方文档:"),e("a",u,[n("Windows 应用 SDK 最新的下载项"),i(o)])]),h,m])])}const W=t(c,[["render",f],["__file","dependency.html.vue"]]);export{W as default}; diff --git a/assets/develop-plan.html-80517d09.js b/assets/develop-plan.html-08ab6a3f.js similarity index 98% rename from assets/develop-plan.html-80517d09.js rename to assets/develop-plan.html-08ab6a3f.js index 68c96a629..452bb0bef 100644 --- a/assets/develop-plan.html-80517d09.js +++ b/assets/develop-plan.html-08ab6a3f.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as o,e as t}from"./app-8966c29b.js";const e={},a=t('

    养成计划

    dev-plan

    添加养成目标进入材料清单

    基于 WIKI 资料添加

    • 在胡桃工具箱的左侧栏目中,点击角色资料武器资料功能
    • 在"胡桃工具箱"的整体界面右上部分,点击养成计算按钮
    • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的起始等级以及目标等级
      • 基于 WIKI 资料添加的养成目标,默认初始值为 1 级

    基于玩家数据添加

    • 在"胡桃工具箱"的左侧栏目中,点击我的角色功能
    • 在选中角色后,点击右上角的养成计算按钮
    • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的"起始等级"以及"目标等级"
      • 基于玩家数据添加的养成目标,默认初始等级为玩家当前的角色等级
      • 请参考属性统计文档以获取更多信息

    背包物品

    • 在"胡桃工具箱"的左侧栏目中,点击"养成计划"功能
    • 点击"背包物品"功能栏
    • 在"胡桃工具箱"的整体界面右上部分,点击"新建计划"按钮
    • 在弹出的"创建新的养成计划"的窗口中,填写需要创建的养成计划名称
      • 此处可勾选"绑定当前选中的账号角色"
      • "新建计划"按钮左侧的下拉选项框,可自行切换不同的养成计划
    • 点击下方的任意物品图标或数字区域,即可手动编辑该种材料的数目
      • 背包物品的具体材料信息,对应于其修改时,所切换至的养成计划
    • 在"胡桃工具箱"的整体界面右上部分,可点击"删除计划"按钮,将当前的养成计划删除
      • 在删除当前养成计划后,处于切换至该养成计划时,输入的背包物品信息将一同删除
    ',9),u=[a];function d(r,c){return l(),o("div",null,u)}const q=i(e,[["render",d],["__file","develop-plan.html.vue"]]);export{q as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as o,e as t}from"./app-5a96e1e2.js";const e={},a=t('

    养成计划

    dev-plan

    添加养成目标进入材料清单

    基于 WIKI 资料添加

    • 在胡桃工具箱的左侧栏目中,点击角色资料武器资料功能
    • 在"胡桃工具箱"的整体界面右上部分,点击养成计算按钮
    • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的起始等级以及目标等级
      • 基于 WIKI 资料添加的养成目标,默认初始值为 1 级

    基于玩家数据添加

    • 在"胡桃工具箱"的左侧栏目中,点击我的角色功能
    • 在选中角色后,点击右上角的养成计算按钮
    • 在弹出的"添加到当前养成计划"的窗口中,填写角色需要计算的各项属性的"起始等级"以及"目标等级"
      • 基于玩家数据添加的养成目标,默认初始等级为玩家当前的角色等级
      • 请参考属性统计文档以获取更多信息

    背包物品

    • 在"胡桃工具箱"的左侧栏目中,点击"养成计划"功能
    • 点击"背包物品"功能栏
    • 在"胡桃工具箱"的整体界面右上部分,点击"新建计划"按钮
    • 在弹出的"创建新的养成计划"的窗口中,填写需要创建的养成计划名称
      • 此处可勾选"绑定当前选中的账号角色"
      • "新建计划"按钮左侧的下拉选项框,可自行切换不同的养成计划
    • 点击下方的任意物品图标或数字区域,即可手动编辑该种材料的数目
      • 背包物品的具体材料信息,对应于其修改时,所切换至的养成计划
    • 在"胡桃工具箱"的整体界面右上部分,可点击"删除计划"按钮,将当前的养成计划删除
      • 在删除当前养成计划后,处于切换至该养成计划时,输入的背包物品信息将一同删除
    ',9),u=[a];function d(r,c){return l(),o("div",null,u)}const q=i(e,[["render",d],["__file","develop-plan.html.vue"]]);export{q as default}; diff --git a/assets/develop-plan.html-95024404.js b/assets/develop-plan.html-1a88a516.js similarity index 97% rename from assets/develop-plan.html-95024404.js rename to assets/develop-plan.html-1a88a516.js index 3bc9ca993..db9c93fdb 100644 --- a/assets/develop-plan.html-95024404.js +++ b/assets/develop-plan.html-1a88a516.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as t,e as l}from"./app-8966c29b.js";const o={},d=l('

    Development Plan

    dev-plan

    Add Develop Goals into Material Checklist

    Add Goals from WIKIs

    • Click Character WIKI or Weapon WIKI from the left menu bar
    • Select on character or weapon to want to add
    • Click Add to Dev Plan on the top right
    • In the pop-up window, input the base level and target level
      • By default, add goals from WIKIs will set base level as 1

    Add Goals from My Characters Data

    • Click My Characters from the left menu bar
    • Select the character you want to add
    • In the pop-up window, input the base level and target level
      • By default, add goals from WIKIs will set base level as player's live data'
      • Refer to My Characters document to get more guides

    Inventory Items

    Info

    This feature is under construction for non-Chinese languages

    ',9),i=[d];function r(n,c){return a(),t("div",null,i)}const p=e(o,[["render",r],["__file","develop-plan.html.vue"]]);export{p as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as t,e as l}from"./app-5a96e1e2.js";const o={},d=l('

    Development Plan

    dev-plan

    Add Develop Goals into Material Checklist

    Add Goals from WIKIs

    • Click Character WIKI or Weapon WIKI from the left menu bar
    • Select on character or weapon to want to add
    • Click Add to Dev Plan on the top right
    • In the pop-up window, input the base level and target level
      • By default, add goals from WIKIs will set base level as 1

    Add Goals from My Characters Data

    • Click My Characters from the left menu bar
    • Select the character you want to add
    • In the pop-up window, input the base level and target level
      • By default, add goals from WIKIs will set base level as player's live data'
      • Refer to My Characters document to get more guides

    Inventory Items

    Info

    This feature is under construction for non-Chinese languages

    ',9),i=[d];function r(n,c){return a(),t("div",null,i)}const p=e(o,[["render",r],["__file","develop-plan.html.vue"]]);export{p as default}; diff --git a/assets/exceptions.html-d3fe7c53.js b/assets/exceptions.html-40258713.js similarity index 98% rename from assets/exceptions.html-d3fe7c53.js rename to assets/exceptions.html-40258713.js index a3af8eeed..e08268636 100644 --- a/assets/exceptions.html-d3fe7c53.js +++ b/assets/exceptions.html-40258713.js @@ -1,2 +1,2 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as s,c as l,a as e,b as o,d as n,e as i}from"./app-8966c29b.js";const c={},d=e("h1",{id:"common-program-exceptions",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#common-program-exceptions","aria-hidden":"true"},"#"),o(" Common Program Exceptions")],-1),u=e("p",null,[o("This document covers solutions of "),e("strong",null,"foreseeable client error")],-1),p=e("h2",{id:"runtimeenvironmentexception",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#runtimeenvironmentexception","aria-hidden":"true"},"#"),o(" RuntimeEnvironmentException")],-1),h=e("li",null,[o("Exception: "),e("code",null,"RuntimeEnvironmentException"),e("ul",null,[e("li",null,[o("Hint: "),e("code",null,"Unable to set registry key without enabling long path")])])],-1),m=e("li",null,"Issue source: Windows long path limit is set to be limited at 256 characters by default",-1),f={href:"https://d.hut.ao/d/tools/EnableLongPaths.zip",target:"_blank",rel:"noopener noreferrer"},g=e("code",null,".reg",-1),b=i('

    Return Code: -10001

    • This error comes directly from MiHoYo BBS, hints include
      • Return Code: -10001
      • Return Code: -100
    • Issue source
      1. Cookie expired
      2. Network error
      3. System time is not accurate
    • Solution
      1. In the account panel, execute Refresh Cookies
      2. Remove your account and add it again
      3. Sync your system time

    Return Code: 1034 Verification Failed

    • If Snap Hutao returns 1034 status code and hints verification failed (usually during the operation of Realtime Notes), it means the operation is blocked by MiHoYo BBS anti-bot system
    • Solution:
      • Enter Realtime Notes
      • Click on Verify Current User and Role button
      • Follow the instruction in MiHoYo BBS to verify
      • After finishing the verification process, click Complete to close the verification window
      • Now, the account should back to normal; If not, process the step above again

        Tips

    If the risk prompt is too frequent, or the verification cannot be triggered at all, it means that the risk of your account is too high, please change the password, so that the simultaneous login status of multiple devices will be reset

    :::

    Note

    • You hardly cannot pass imperceptible verification when your account is login at other remote Genshin tools or login at multiple devices. This is a security designing of MiHoYo BBS, and cannot bypass
    • If you are using multiple MiHoYo BBS account in your device, frequent usage with MiHoYo BBS API will result in your IP address being banned for a period of time (usually no more than 24 hours). This is a security designing of MiHoYo BBS, and cannot bypass

    HttpRequestException Metadata Download Failed

    403 (Forbidden) / 404 (Not Found)

    Solution: Update your Snap Hutao to latest version

    502 (Bad Gateway)

    ',11),_={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},y=e("p",null,"This HTTP Exception occurs when Snap Hutao failed to fetch remote resource (usually static image and configuration)",-1),w=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01Tb2RUm1g6du5YeNuy_!!1797064093.jpg",alt:"HttpRequestException",loading:"lazy"})],-1),k={href:"https://www.telerik.com/fiddler/add-ons",target:"_blank",rel:"noopener noreferrer"},x={href:"https://learn.microsoft.com/zh-CN/windows/iot-core/develop-your-app/loopback",target:"_blank",rel:"noopener noreferrer"},v=i(`

    You can also execute the following PowerShell script to remove all container loopback limits

    FOR /F "tokens=11 delims=\\" %p IN ('REG QUERY "HKCU\\Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\CurrentVersion\\AppContainer\\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p
    +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as s,c as l,a as e,b as o,d as n,e as i}from"./app-5a96e1e2.js";const c={},d=e("h1",{id:"common-program-exceptions",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#common-program-exceptions","aria-hidden":"true"},"#"),o(" Common Program Exceptions")],-1),u=e("p",null,[o("This document covers solutions of "),e("strong",null,"foreseeable client error")],-1),p=e("h2",{id:"runtimeenvironmentexception",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#runtimeenvironmentexception","aria-hidden":"true"},"#"),o(" RuntimeEnvironmentException")],-1),h=e("li",null,[o("Exception: "),e("code",null,"RuntimeEnvironmentException"),e("ul",null,[e("li",null,[o("Hint: "),e("code",null,"Unable to set registry key without enabling long path")])])],-1),m=e("li",null,"Issue source: Windows long path limit is set to be limited at 256 characters by default",-1),f={href:"https://d.hut.ao/d/tools/EnableLongPaths.zip",target:"_blank",rel:"noopener noreferrer"},g=e("code",null,".reg",-1),b=i('

    Return Code: -10001

    • This error comes directly from MiHoYo BBS, hints include
      • Return Code: -10001
      • Return Code: -100
    • Issue source
      1. Cookie expired
      2. Network error
      3. System time is not accurate
    • Solution
      1. In the account panel, execute Refresh Cookies
      2. Remove your account and add it again
      3. Sync your system time

    Return Code: 1034 Verification Failed

    • If Snap Hutao returns 1034 status code and hints verification failed (usually during the operation of Realtime Notes), it means the operation is blocked by MiHoYo BBS anti-bot system
    • Solution:
      • Enter Realtime Notes
      • Click on Verify Current User and Role button
      • Follow the instruction in MiHoYo BBS to verify
      • After finishing the verification process, click Complete to close the verification window
      • Now, the account should back to normal; If not, process the step above again

        Tips

    If the risk prompt is too frequent, or the verification cannot be triggered at all, it means that the risk of your account is too high, please change the password, so that the simultaneous login status of multiple devices will be reset

    :::

    Note

    • You hardly cannot pass imperceptible verification when your account is login at other remote Genshin tools or login at multiple devices. This is a security designing of MiHoYo BBS, and cannot bypass
    • If you are using multiple MiHoYo BBS account in your device, frequent usage with MiHoYo BBS API will result in your IP address being banned for a period of time (usually no more than 24 hours). This is a security designing of MiHoYo BBS, and cannot bypass

    HttpRequestException Metadata Download Failed

    403 (Forbidden) / 404 (Not Found)

    Solution: Update your Snap Hutao to latest version

    502 (Bad Gateway)

    ',11),_={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},y=e("p",null,"This HTTP Exception occurs when Snap Hutao failed to fetch remote resource (usually static image and configuration)",-1),w=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01Tb2RUm1g6du5YeNuy_!!1797064093.jpg",alt:"HttpRequestException",loading:"lazy"})],-1),k={href:"https://www.telerik.com/fiddler/add-ons",target:"_blank",rel:"noopener noreferrer"},x={href:"https://learn.microsoft.com/zh-CN/windows/iot-core/develop-your-app/loopback",target:"_blank",rel:"noopener noreferrer"},v=i(`

    You can also execute the following PowerShell script to remove all container loopback limits

    FOR /F "tokens=11 delims=\\" %p IN ('REG QUERY "HKCU\\Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\CurrentVersion\\AppContainer\\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p
     

    Error Finding Required Modules

    When user launching game with unlock frame-rate feature on, the game may be failed to be launched with the following error shows up:

    1. Error finding required modules: could not read any module, the protection driver may have been loaded
    2. Error finding required modules: timeout

    This issue only occurs when Genshin Impact's anti-cheat module starts earlier than frame-rate-unlocker module. When these errors happen, Snap Hutao will exit game process, and you can re-launch the game.

    `,6);function S(E,C){const t=r("ExternalLinkIcon");return s(),l("div",null,[d,u,p,e("ul",null,[h,m,e("li",null,[o("Solution: Download "),e("a",f,[o("EnableLongPaths.zip"),n(t)]),o(", unzip it and run "),g,o(" file")])]),b,e("blockquote",null,[e("p",null,[o("Associated Issue: "),e("a",_,[o("https://github.com/DGP-Studio/Snap.Hutao/issues/100"),n(t)])])]),y,w,e("p",null,[o("If you are using proxy software, you may need to turn it off or using TUN mode proxy; otherwise you need to use "),e("a",k,[o("Windows 8 AppContainer Loopback Utility"),n(t)]),o(" to remove "),e("a",x,[o("Windows APP Container Loopback limits"),n(t)]),o(".")]),v])}const R=a(c,[["render",S],["__file","exceptions.html.vue"]]);export{R as default}; diff --git a/assets/exceptions.html-fc4790dc.js b/assets/exceptions.html-f92d5379.js similarity index 98% rename from assets/exceptions.html-fc4790dc.js rename to assets/exceptions.html-f92d5379.js index be339ead0..ae5d52a6a 100644 --- a/assets/exceptions.html-fc4790dc.js +++ b/assets/exceptions.html-f92d5379.js @@ -1,2 +1,2 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as s,c as r,a as e,b as o,d as t,e as a}from"./app-8966c29b.js";const d={},c=e("h1",{id:"常见的程序异常",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#常见的程序异常","aria-hidden":"true"},"#"),o(" 常见的程序异常")],-1),p=e("p",null,[o("该文档包含由"),e("strong",null,"用户端错误"),o("造成的问题")],-1),h=e("h2",{id:"runtimeenvironmentexception",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#runtimeenvironmentexception","aria-hidden":"true"},"#"),o(" RuntimeEnvironmentException")],-1),u=e("li",null,[o("异常:"),e("code",null,"RuntimeEnvironmentException"),e("ul",null,[e("li",null,[o("提示:"),e("code",null,"未开启长路径功能,无法设置注册表键值")])])],-1),_=e("li",null,"问题来源:没有解除 Windows 目录长度限制",-1),g={href:"https://d.hut.ao/d/tools/EnableLongPaths.zip",target:"_blank",rel:"noopener noreferrer"},f=e("code",null,".reg",-1),b=a('

    Return Code: -10001

    • 该异常实际上来源于米游社的返回信息,包括:
      • Return Code: -10001
      • Return Code: -100
    • 问题来源:
      1. Cookie 过期或网络异常
      2. 系统时间错误
    • 解决方案:
      1. 在帐号面板中,点击刷新 Cookie
      2. 删除帐号后重新添加米游社帐号
      3. 在系统设置中启用自动同步时间并立刻同步时间

    状态:1034 验证失败

    • 当胡桃工具箱返回 1034 状态码并提示验证失败时(通常是实时便笺功能),代表当前的操作被米游社的验证系统所阻挡
    • 解决方式:
      • 进入 实时便笺 功能
      • 点击右上角的 验证当前用户与角色按钮
      • 根据米游社提示进行验证
      • 完成验证后点击完成
      • 此时,风控应当已被解除;若没有,可继续执行上述操作

    提示

    • 若风险提示过于频繁,或始终无法触发验证,代表您的账号风险已过高,请修改密码,使多个设备同时登录的状态被重置

    注意

    • 若您已绑定并使用可提供原神查询的 Bot同时有多个设备使用同一个米哈游通行证,则本条目所示的情况,尤其无感验证将基本无法成功,这是米游社后端的安全性设计,不可避免,无法绕过
    • 若您本地有多个米哈游通行证同时频繁与米游社进行数据交互,则可能会被米游社在一定时间内封禁 IP 地址,这是米游社后端的安全性设计,不可避免,无法绕过

    HttpRequestException 元数据校验文件下载失败

    403 (Forbidden)/ 404 (NOT FOUND)

    ',8),m={href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},k=e("h3",{id:"_502-bad-gateway",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_502-bad-gateway","aria-hidden":"true"},"#"),o(" 502 (Bad Gateway)")],-1),x={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},w=e("p",null,[o("当胡桃工具箱无法从远程服务器获取到必要资源时(通常是配置文件和图片缓存),会在用户界面抛出如下图所示的 "),e("code",null,"HttpRequestException"),o(" 错误。")],-1),v=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01Tb2RUm1g6du5YeNuy_!!1797064093.jpg_.webp",alt:"HttpRequestException",loading:"lazy"})],-1),C=e("p",null,"当你遇到该情况,且已经确定本地网络没有互联网连接问题时,请检查是否启用了系统代理程序。如果是,请关闭。胡桃工具箱的远程服务器在全世界范围内都有类似的体验效果, 你无需为了胡桃工具箱的网络连接而使用代理网络。",-1),E={href:"https://www.telerik.com/fiddler/add-ons",target:"_blank",rel:"noopener noreferrer"},N={href:"https://learn.microsoft.com/zh-CN/windows/iot-core/develop-your-app/loopback",target:"_blank",rel:"noopener noreferrer"},R=a(`

    你亦可以执行下面的 PowerShell 脚本以解除本机所有容器化应用的 Loopback 限制

    FOR /F "tokens=11 delims=\\" %p IN ('REG QUERY "HKCU\\Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\CurrentVersion\\AppContainer\\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p
    +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as s,c as r,a as e,b as o,d as t,e as a}from"./app-5a96e1e2.js";const d={},c=e("h1",{id:"常见的程序异常",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#常见的程序异常","aria-hidden":"true"},"#"),o(" 常见的程序异常")],-1),p=e("p",null,[o("该文档包含由"),e("strong",null,"用户端错误"),o("造成的问题")],-1),h=e("h2",{id:"runtimeenvironmentexception",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#runtimeenvironmentexception","aria-hidden":"true"},"#"),o(" RuntimeEnvironmentException")],-1),u=e("li",null,[o("异常:"),e("code",null,"RuntimeEnvironmentException"),e("ul",null,[e("li",null,[o("提示:"),e("code",null,"未开启长路径功能,无法设置注册表键值")])])],-1),_=e("li",null,"问题来源:没有解除 Windows 目录长度限制",-1),g={href:"https://d.hut.ao/d/tools/EnableLongPaths.zip",target:"_blank",rel:"noopener noreferrer"},f=e("code",null,".reg",-1),b=a('

    Return Code: -10001

    • 该异常实际上来源于米游社的返回信息,包括:
      • Return Code: -10001
      • Return Code: -100
    • 问题来源:
      1. Cookie 过期或网络异常
      2. 系统时间错误
    • 解决方案:
      1. 在帐号面板中,点击刷新 Cookie
      2. 删除帐号后重新添加米游社帐号
      3. 在系统设置中启用自动同步时间并立刻同步时间

    状态:1034 验证失败

    • 当胡桃工具箱返回 1034 状态码并提示验证失败时(通常是实时便笺功能),代表当前的操作被米游社的验证系统所阻挡
    • 解决方式:
      • 进入 实时便笺 功能
      • 点击右上角的 验证当前用户与角色按钮
      • 根据米游社提示进行验证
      • 完成验证后点击完成
      • 此时,风控应当已被解除;若没有,可继续执行上述操作

    提示

    • 若风险提示过于频繁,或始终无法触发验证,代表您的账号风险已过高,请修改密码,使多个设备同时登录的状态被重置

    注意

    • 若您已绑定并使用可提供原神查询的 Bot同时有多个设备使用同一个米哈游通行证,则本条目所示的情况,尤其无感验证将基本无法成功,这是米游社后端的安全性设计,不可避免,无法绕过
    • 若您本地有多个米哈游通行证同时频繁与米游社进行数据交互,则可能会被米游社在一定时间内封禁 IP 地址,这是米游社后端的安全性设计,不可避免,无法绕过

    HttpRequestException 元数据校验文件下载失败

    403 (Forbidden)/ 404 (NOT FOUND)

    ',8),m={href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},k=e("h3",{id:"_502-bad-gateway",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_502-bad-gateway","aria-hidden":"true"},"#"),o(" 502 (Bad Gateway)")],-1),x={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/100",target:"_blank",rel:"noopener noreferrer"},w=e("p",null,[o("当胡桃工具箱无法从远程服务器获取到必要资源时(通常是配置文件和图片缓存),会在用户界面抛出如下图所示的 "),e("code",null,"HttpRequestException"),o(" 错误。")],-1),v=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01Tb2RUm1g6du5YeNuy_!!1797064093.jpg_.webp",alt:"HttpRequestException",loading:"lazy"})],-1),C=e("p",null,"当你遇到该情况,且已经确定本地网络没有互联网连接问题时,请检查是否启用了系统代理程序。如果是,请关闭。胡桃工具箱的远程服务器在全世界范围内都有类似的体验效果, 你无需为了胡桃工具箱的网络连接而使用代理网络。",-1),E={href:"https://www.telerik.com/fiddler/add-ons",target:"_blank",rel:"noopener noreferrer"},N={href:"https://learn.microsoft.com/zh-CN/windows/iot-core/develop-your-app/loopback",target:"_blank",rel:"noopener noreferrer"},R=a(`

    你亦可以执行下面的 PowerShell 脚本以解除本机所有容器化应用的 Loopback 限制

    FOR /F "tokens=11 delims=\\" %p IN ('REG QUERY "HKCU\\Software\\Classes\\Local Settings\\Software\\Microsoft\\Windows\\CurrentVersion\\AppContainer\\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p
     

    653366069 请求异常

    • 网络请求错误,请求异常前程序会说明具体哪一个功能的网络请求失败。
      • 如果仅是偶尔出现的问题,你可以考虑忽略该错误
      • 如果持续该错误,请检查本地网络到目标服务器的连接是否正常

    在查找必要的模块时出现问题

    当用户在解锁游戏帧数限制的情况下启动游戏时,可能会遇上以下错误提示并启动游戏失败

    1. 在查找必要的模块时遇到问题:无法读取任何模块,可能是保护驱动已经加载完成
    2. 在查找必要的模块时遇到问题:查找模块超时 该问题仅当原神反作弊模块早于解锁帧率模块启动时出现。在出现该错误后,胡桃会主动关闭游戏进程,用户再次尝试启动游戏即可。

    应用安装失败,错误消息:出现内部错误 0x80073D05

    安装时出现 0x80073D05 错误码的主要原因是先前卸载时没有删除部分本地文件导致的。

    • 需要打开 %appdata%/../Local/Packages
    • 并在文件夹中找到 60568DGPStudio.SnapHutao_ebfp3nyc27j86 文件夹并删除
    `,10);function P(S,q){const n=l("ExternalLinkIcon");return s(),r("div",null,[c,p,h,e("ul",null,[u,_,e("li",null,[o("解决方案:下载 "),e("a",g,[o("EnableLongPaths.zip"),t(n)]),o(" 后解压,运行解压后的 "),f,o(" 文件")])]),b,e("p",null,[o("解决方案:更新胡桃工具箱至"),e("a",m,[o("最新版本"),t(n)])]),k,e("blockquote",null,[e("p",null,[o("相关 Issue: "),e("a",x,[o("https://github.com/DGP-Studio/Snap.Hutao/issues/100"),t(n)])])]),w,v,C,e("p",null,[o("如果系统代理是你的网络必须选项,请关闭系统代理而使用 TUN 模式代理;或者也可以通过 "),e("a",E,[o("Windows 8 AppContainer Loopback Utility"),t(n)]),o(" 解除 "),e("a",N,[o("Windows APP Container Loopback 的限制"),t(n)]),o(" 。")]),R])}const H=i(d,[["render",P],["__file","exceptions.html.vue"]]);export{H as default}; diff --git a/assets/game-launcher.html-3ffa01a8.js b/assets/game-launcher.html-50a78294.js similarity index 99% rename from assets/game-launcher.html-3ffa01a8.js rename to assets/game-launcher.html-50a78294.js index f1b8ced92..81b7ffdc7 100644 --- a/assets/game-launcher.html-3ffa01a8.js +++ b/assets/game-launcher.html-50a78294.js @@ -1 +1 @@ -import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as d,o as a,c as r,a as l,b as e,d as t,w as s,e as i}from"./app-8966c29b.js";const h={},u=i('

    高级启动器

    游戏启动器

    • 胡桃工具箱提供的高级启动器功能中通过多样的设置选项来允许用户以自定义设置启动游戏
    • 你可以通过点击左侧菜单栏中的启动游戏进入高级启动器功能
      • 第一次使用时你会被跳转到设置页面以设置你的游戏路径
      • 选择游戏路径时,请注意此处选择的应是游戏本身
        • 形如:$\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
        • 而官方启动器的目录一般是$\\Genshin Impact\\launcher.exe
    • 在设置完毕启动游戏所需的附加选项后,点击右上角的启动游戏按钮即可
      • 附加选项请看本页下方的功能文档

    切换服务器

    权限提示

    1. 使用该功能时需要以管理员权限启动胡桃工具
    2. 胡桃工具箱会在数据目录下创建一个名为 ServerCache 的文件夹并储存转换服务器所需要的文件
    • 在主界面点击左侧菜单栏进入启动游戏页面
    • 找到常规分类中的服务器一栏
    • 点击右侧选项中的服务器名称,选择要进入的服务器。目前可选的服务器包括:
    选项服务器
    官方服 Default中国大陆服务器
    官方服 Official中国大陆服务器,与上一栏无实质区别
    官方服 NoTapTap禁用 TapTap 帐号登录的中国大陆服务器
    渠道服 Default使用 BiliBili 帐号登录的中国大陆服务器
    国际服 DefaultHoYoverse 国际服服务器
    国际服 Epic使用 Epic 商城支付网关的 HoYoverse 国际服服务器
    国际服 Google使用 Google Pay 支付网关的 HoYoverse 国际服服务器
    • 点击右上角的启动游戏按钮,胡桃会自动下载并应用对应服务器的文件并启动游戏

    账号保存

    提示

    1. 本功能所描述的帐号,特指当前原神所登录游戏账号的登录状态
    2. 目前仅支持切换官方服(不含渠道服)帐号
    ',10),p=l("thead",null,[l("tr",null,[l("th"),l("th",null,"官方服"),l("th",null,"渠道服"),l("th",null,"国际服")])],-1),_=l("tr",null,[l("td",null,"保存登录状态"),l("td",null,"支持"),l("td",null,"支持"),l("td",null,"支持")],-1),g=l("td",null,"切换账号",-1),f=l("td",null,"支持",-1),m=l("td",null,"不支持",-1),b=l("br",null,null,-1),x={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/638",target:"_blank",rel:"noopener noreferrer"},v=i('
    1. 在主界面点击左侧菜单栏进入启动游戏标签
    2. 点击常规分类中的检测账号一栏,胡桃工具箱会保存当前原神游戏的登录状态
    3. 在弹出的为账号命名界面中,输入您要为此账号设置的名称,点击确认
    4. 在游戏中,注销当前登录并登录你另一个帐号。重复执行上述的第 2 步和第三步直至你将全部的帐号添加进胡桃工具箱中。
    5. 此时即可在账号功能下方自由选择您要切换的账号
      • 每个已保存的账号均为可点击选择的按钮
      • 在其右侧有三个按钮,分别为:
        • 绑定当前用户角色,即将您当前选择的米游社登录状态绑定至该账号中,点击该按钮后,对应的 UID 将出现在该账号自定义名称的下方
        • 重命名,即修改当前选择账号的自定义名称
        • 删除,即删除当前选择的账号

    外观选项

    注意

    • 在当前的游戏版本中,有案例表明部分用户使用胡桃工具箱,选择独占全屏模式启动原神游戏,出现游戏无响应或卡顿的情况
      • 建议此部分用户使用无边框选项进行启动游戏
      • 问题的来源是游戏内置浏览器无法运行
    • 在主界面点击左侧菜单栏进入启动游戏标签
    • 外观功能中,有六个选项:
      • 独占全屏,即选择游戏进程以独占全屏模式运行
        • 你应仅在能独立描述独占全屏的技术原理和效果的情况下开启本项
      • 全屏,即选择启动游戏后的游戏界面是否设置为全屏
      • 无边框,即选择启动游戏后的游戏界面是否设置为无边框窗口
      • 宽度,即选择启动游戏后的游戏界面的宽度,例如1920
      • 高度,即选择启动游戏后的游戏界面的高度,例如1080
      • 显示器,允许多显示器用户选择指定的显示器来运行游戏

    资源下载

    胡桃工具箱在高级启动器的资源下载页面会列出实时的原神国服游戏的安装包和增量包。用户可以点击对应包右侧的超链接按钮以跳转到浏览器并开始下载对应的文件, 从而使用自己偏好的下载工具下载游戏。

    当用户需要进行游戏版本升级时,可以执行以下步骤:

    1. 升级官方启动器
    2. 在胡桃工具箱中找到对应版本的增量包及已安装语言的升级包,点击下载
    3. 将所有下载的压缩包移动至与游戏程序同级的目录中
    4. 启动官方启动器,点击更新按钮。此时官方启动器将跳过下载步骤,直接解压升级包并完成升级

    高级功能

    警告

    • 请注意:高级功能已明确标注为 Dangerous Feature,即危险功能,选择启用即代表您选择自行承担任意风险
    • 你需要首先在胡桃设置页面中启用高级功能

    解锁帧率上限

    ',11),k={class:"hint-container danger"},y=l("p",{class:"hint-container-title"},"警告",-1),D={href:"https://github.com/DGP-Studio/Unlocker",target:"_blank",rel:"noopener noreferrer"},G=l("code",null,"120帧率",-1),I=i("
    • 使用管理员模式启动胡桃

    • 在主界面点击左侧菜单栏进入启动游戏标签

    • 在最下方可见 解锁帧率限制 选项

      • 在右侧点击开启或关闭按钮,所显示的 禁用启用 分别代表已禁用已启用该功能
      • 在下方的 设置帧率上限 选项中,可自由拖动拉杆,调整到您需要设置的最高帧率上限
    • 会导致解锁帧率上限失败的因素:

      • 胡桃工具箱没有保持在后台运行
      • 游戏内未关闭垂直同步选项
      • 在显卡驱动中存在最大帧速率的设置
      • 在显卡驱动软件内存在未关闭的类似于节能模式的选项
      • 显卡性能不足
    ",1);function N(S,T){const o=d("ExternalLinkIcon"),n=d("RouterLink");return a(),r("div",null,[u,l("table",null,[p,l("tbody",null,[_,l("tr",null,[g,f,m,l("td",null,[e("理论支持"),b,l("a",x,[e("我们期待更多的社区开发者帮助"),t(o)])])])])]),v,l("div",k,[y,l("ul",null,[l("li",null,[l("a",D,[e("Unlocker 项目"),t(o)]),e("仅作用于 UnityPlayer 本身,即直接作用于 Unity3D 引擎,与游戏本体不发生直接关系,本质上与移动端中"),G,e("等设置无异,但您仍应谨慎使用并自行阅读"),t(n,{to:"/zh/statements/tos.html"},{default:s(()=>[e("用户协议")]),_:1})])])]),I])}const E=c(h,[["render",N],["__file","game-launcher.html.vue"]]);export{E as default}; +import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as d,o as a,c as r,a as l,b as e,d as t,w as s,e as i}from"./app-5a96e1e2.js";const h={},u=i('

    高级启动器

    游戏启动器

    • 胡桃工具箱提供的高级启动器功能中通过多样的设置选项来允许用户以自定义设置启动游戏
    • 你可以通过点击左侧菜单栏中的启动游戏进入高级启动器功能
      • 第一次使用时你会被跳转到设置页面以设置你的游戏路径
      • 选择游戏路径时,请注意此处选择的应是游戏本身
        • 形如:$\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
        • 而官方启动器的目录一般是$\\Genshin Impact\\launcher.exe
    • 在设置完毕启动游戏所需的附加选项后,点击右上角的启动游戏按钮即可
      • 附加选项请看本页下方的功能文档

    切换服务器

    权限提示

    1. 使用该功能时需要以管理员权限启动胡桃工具
    2. 胡桃工具箱会在数据目录下创建一个名为 ServerCache 的文件夹并储存转换服务器所需要的文件
    • 在主界面点击左侧菜单栏进入启动游戏页面
    • 找到常规分类中的服务器一栏
    • 点击右侧选项中的服务器名称,选择要进入的服务器。目前可选的服务器包括:
    选项服务器
    官方服 Default中国大陆服务器
    官方服 Official中国大陆服务器,与上一栏无实质区别
    官方服 NoTapTap禁用 TapTap 帐号登录的中国大陆服务器
    渠道服 Default使用 BiliBili 帐号登录的中国大陆服务器
    国际服 DefaultHoYoverse 国际服服务器
    国际服 Epic使用 Epic 商城支付网关的 HoYoverse 国际服服务器
    国际服 Google使用 Google Pay 支付网关的 HoYoverse 国际服服务器
    • 点击右上角的启动游戏按钮,胡桃会自动下载并应用对应服务器的文件并启动游戏

    账号保存

    提示

    1. 本功能所描述的帐号,特指当前原神所登录游戏账号的登录状态
    2. 目前仅支持切换官方服(不含渠道服)帐号
    ',10),p=l("thead",null,[l("tr",null,[l("th"),l("th",null,"官方服"),l("th",null,"渠道服"),l("th",null,"国际服")])],-1),_=l("tr",null,[l("td",null,"保存登录状态"),l("td",null,"支持"),l("td",null,"支持"),l("td",null,"支持")],-1),g=l("td",null,"切换账号",-1),f=l("td",null,"支持",-1),m=l("td",null,"不支持",-1),b=l("br",null,null,-1),x={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/638",target:"_blank",rel:"noopener noreferrer"},v=i('
    1. 在主界面点击左侧菜单栏进入启动游戏标签
    2. 点击常规分类中的检测账号一栏,胡桃工具箱会保存当前原神游戏的登录状态
    3. 在弹出的为账号命名界面中,输入您要为此账号设置的名称,点击确认
    4. 在游戏中,注销当前登录并登录你另一个帐号。重复执行上述的第 2 步和第三步直至你将全部的帐号添加进胡桃工具箱中。
    5. 此时即可在账号功能下方自由选择您要切换的账号
      • 每个已保存的账号均为可点击选择的按钮
      • 在其右侧有三个按钮,分别为:
        • 绑定当前用户角色,即将您当前选择的米游社登录状态绑定至该账号中,点击该按钮后,对应的 UID 将出现在该账号自定义名称的下方
        • 重命名,即修改当前选择账号的自定义名称
        • 删除,即删除当前选择的账号

    外观选项

    注意

    • 在当前的游戏版本中,有案例表明部分用户使用胡桃工具箱,选择独占全屏模式启动原神游戏,出现游戏无响应或卡顿的情况
      • 建议此部分用户使用无边框选项进行启动游戏
      • 问题的来源是游戏内置浏览器无法运行
    • 在主界面点击左侧菜单栏进入启动游戏标签
    • 外观功能中,有六个选项:
      • 独占全屏,即选择游戏进程以独占全屏模式运行
        • 你应仅在能独立描述独占全屏的技术原理和效果的情况下开启本项
      • 全屏,即选择启动游戏后的游戏界面是否设置为全屏
      • 无边框,即选择启动游戏后的游戏界面是否设置为无边框窗口
      • 宽度,即选择启动游戏后的游戏界面的宽度,例如1920
      • 高度,即选择启动游戏后的游戏界面的高度,例如1080
      • 显示器,允许多显示器用户选择指定的显示器来运行游戏

    资源下载

    胡桃工具箱在高级启动器的资源下载页面会列出实时的原神国服游戏的安装包和增量包。用户可以点击对应包右侧的超链接按钮以跳转到浏览器并开始下载对应的文件, 从而使用自己偏好的下载工具下载游戏。

    当用户需要进行游戏版本升级时,可以执行以下步骤:

    1. 升级官方启动器
    2. 在胡桃工具箱中找到对应版本的增量包及已安装语言的升级包,点击下载
    3. 将所有下载的压缩包移动至与游戏程序同级的目录中
    4. 启动官方启动器,点击更新按钮。此时官方启动器将跳过下载步骤,直接解压升级包并完成升级

    高级功能

    警告

    • 请注意:高级功能已明确标注为 Dangerous Feature,即危险功能,选择启用即代表您选择自行承担任意风险
    • 你需要首先在胡桃设置页面中启用高级功能

    解锁帧率上限

    ',11),k={class:"hint-container danger"},y=l("p",{class:"hint-container-title"},"警告",-1),D={href:"https://github.com/DGP-Studio/Unlocker",target:"_blank",rel:"noopener noreferrer"},G=l("code",null,"120帧率",-1),I=i("
    • 使用管理员模式启动胡桃

    • 在主界面点击左侧菜单栏进入启动游戏标签

    • 在最下方可见 解锁帧率限制 选项

      • 在右侧点击开启或关闭按钮,所显示的 禁用启用 分别代表已禁用已启用该功能
      • 在下方的 设置帧率上限 选项中,可自由拖动拉杆,调整到您需要设置的最高帧率上限
    • 会导致解锁帧率上限失败的因素:

      • 胡桃工具箱没有保持在后台运行
      • 游戏内未关闭垂直同步选项
      • 在显卡驱动中存在最大帧速率的设置
      • 在显卡驱动软件内存在未关闭的类似于节能模式的选项
      • 显卡性能不足
    ",1);function N(S,T){const o=d("ExternalLinkIcon"),n=d("RouterLink");return a(),r("div",null,[u,l("table",null,[p,l("tbody",null,[_,l("tr",null,[g,f,m,l("td",null,[e("理论支持"),b,l("a",x,[e("我们期待更多的社区开发者帮助"),t(o)])])])])]),v,l("div",k,[y,l("ul",null,[l("li",null,[l("a",D,[e("Unlocker 项目"),t(o)]),e("仅作用于 UnityPlayer 本身,即直接作用于 Unity3D 引擎,与游戏本体不发生直接关系,本质上与移动端中"),G,e("等设置无异,但您仍应谨慎使用并自行阅读"),t(n,{to:"/zh/statements/tos.html"},{default:s(()=>[e("用户协议")]),_:1})])])]),I])}const E=c(h,[["render",N],["__file","game-launcher.html.vue"]]);export{E as default}; diff --git a/assets/game-launcher.html-904f564a.js b/assets/game-launcher.html-a55f58e7.js similarity index 99% rename from assets/game-launcher.html-904f564a.js rename to assets/game-launcher.html-a55f58e7.js index 1289f2ef5..dfb7a3d52 100644 --- a/assets/game-launcher.html-904f564a.js +++ b/assets/game-launcher.html-a55f58e7.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as c,c as s,a as e,b as t,d as a,w as d,e as i}from"./app-8966c29b.js";const u={},h=i('

    Game Launcher

    Game Launcher

    • Snap Hutao offers advanced game launcher feature allows user to launch the game with self-defined settings
    • Click on the Game Launcher on the sidebar to get into game launcher's page
      • If you are using it at the first time, you will be redirected to Snap Hutao settings page and asked to set your game path
        • When choosing the game path, noticed that you should choose game program instead of launcher program
          • Such as $\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe and $\\Genshin Impact\\Genshin Impact Game\\Genshin Impact.exe
          • Official launcher program is usually $\\Genshin Impact\\launcher.exe
    • You can make launcher configuration options in the game launcher's page, and then click Launcher button on the top-right to launch the game
      • Launcher options is explained in the document below

    Server Switch

    Privilege Notice

    1. You need to run Snap Hutao as administrator to use this feature
    2. Snap Hutao will create ServerCache folder in the data directory to save required sever switch files

    Enter Game Launcher page In the General - Server field, select the server you want

    • Current available serves options include:
    OptionServer
    CN DefaultMainland China server
    CN OfficialMainland China server, no difference with previous row
    CN NoTapTapMainland China server without TapTap account login method
    BiliBiliChinese server with BiliBili account system
    Global DefaultHoYoVerse servers
    Global EpicHoYoVerse servers with Epic Store payment gateway
    Global GoogleHoYoVerse servers with Google Pay payment gateway
    • click Launcher button on the top-right to launch the game, Snap Hutao will download server required files and then launch the game

    Game Account Switch

    Tips

    1. The account mentioned in this feature is Genshin game login account instead of HoYoLAB account
    2. Game account switch feature currently only supporting official CN server
    ',11),p=e("thead",null,[e("tr",null,[e("th"),e("th",null,"CN"),e("th",null,"BiliBili"),e("th",null,"Global")])],-1),g=e("tr",null,[e("td",null,"Save Login Status"),e("td",null,"Supported"),e("td",null,"Supported"),e("td",null,"Supported")],-1),m=e("td",null,"Switch Account",-1),f=e("td",null,"Supported",-1),w=e("td",null,"Not Supported",-1),y=e("br",null,null,-1),v={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/638",target:"_blank",rel:"noopener noreferrer"},b=i('
    1. Enter Game Launcher page
    2. Click Detect Account field in the General category, Snap Hutao will detect current Genshin Impact's account login status
    3. In this pop-up window, enter an archive name for this account and click Confirm
    4. Go back to the game, sign out and sign in to your another account. Repeat step 2 and 3 to add all your account to Snap Hutao
      • Each saved account are selectable
      • On the right side, there are three buttons, they are:
        • Bind current user account, bind current activated MiHoYo BBS account with this game account, an UID will be display on this archive
        • Rename, rename current account archive name
        • Delete, delete current account archive

    Appearance

    Note

    • In some reported cases, using Snap Hutao with Exclusive Fullscreen mode will cause the game process no response.

      • Suggest to use Borderless or Fullscreen mode if you faced same problem
      • The problem is caused by failure of game embedded browser cannot run
    • Enter Game Launcher page
    • In the Appearance category, there are 6 available options:
      • Exclusive Fullscreen, the game process will run in exclusive fullscreen mode
        • You should only use this option when you are able to independently describe technical principles and effects of exclusive fullscreen
      • Fullscreen, the game display mode is set to fullscreen
      • Borderless, the game display mode is set to borderless
      • Width, game window width, such as 1920
      • Height, game window height, such as 1080
      • Display, users with multiple displays can use this option to set which display to run the game

    Resource Download

    Game launcher in Snap Hutao also offers resource download feature, which lists real time Genshin Impact (CN server) client package and OTA package. User can click the hyperlink icon on each package's right side to redirect to browser to download them by user favored download tools.

    When you are updating the game client, you can do the following steps:

    1. Update official launcher to the latest
    2. In Snap Hutao - Game Launcher - Resource Download, find needed client OTA package and installed language OTA package
    3. Move all package to folder where game client located
    4. Start official launcher, click on update button. The launcher should skip the download and directly starts to unzip the OTA packages to update client

    Advanced Features

    Warning

    • Be aware: all advanced features are labeled as Dangeroud Feature; indicating that enabling them means you choose to assume any risk on your own.
    • You need to enable advanced features in Snap Hutao's settings page

    Unlock Frame Rate Limit

    ',11),_={class:"hint-container danger"},S=e("p",{class:"hint-container-title"},"Warning",-1),k={href:"https://github.com/DGP-Studio/Unlocker",target:"_blank",rel:"noopener noreferrer"},G=i("
    • Run Snap Hutao as administrator

    • Enter Game Launcher page

    • At the bottom of the page, you can find Unlock Frame Rate Limit option

      • Trigger the switch to enable or disable this feature
      • In the Set Frame Rate Limit field, you can adjust the limit freely
    • Fact that may cause failure in unlocking frame rate limit:

      • Snap Hutao process is not kept in the background
      • V-Sync is not set to off in the game
      • Max Framerate limit is not changed in your graphic card settings
      • Power Saving mode is not disabled in power settings
      • Your graphic card is not powerful enough
    ",1);function x(H,L){const n=o("ExternalLinkIcon"),l=o("RouterLink");return c(),s("div",null,[h,e("table",null,[p,e("tbody",null,[g,e("tr",null,[m,f,w,e("td",null,[t("Theoretically Supported "),y,e("a",v,[t("We need community's support for this"),a(n)])])])])]),b,e("div",_,[S,e("ul",null,[e("li",null,[t("The "),e("a",k,[t("Unlocker project"),a(n)]),t(" only affects the UnityPlayer itself, directly affecting the Unity3D engine, and does not have a direct relationship with the game itself. Essentially, it is no different from settings like 120 FPS in mobile devices. However, you should still use it with caution and read the "),a(l,{to:"/en/statements/tos.html"},{default:d(()=>[t("user agreement")]),_:1}),t(" on your own.")])])]),G])}const B=r(u,[["render",x],["__file","game-launcher.html.vue"]]);export{B as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as c,c as s,a as e,b as t,d as a,w as d,e as i}from"./app-5a96e1e2.js";const u={},h=i('

    Game Launcher

    Game Launcher

    • Snap Hutao offers advanced game launcher feature allows user to launch the game with self-defined settings
    • Click on the Game Launcher on the sidebar to get into game launcher's page
      • If you are using it at the first time, you will be redirected to Snap Hutao settings page and asked to set your game path
        • When choosing the game path, noticed that you should choose game program instead of launcher program
          • Such as $\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe and $\\Genshin Impact\\Genshin Impact Game\\Genshin Impact.exe
          • Official launcher program is usually $\\Genshin Impact\\launcher.exe
    • You can make launcher configuration options in the game launcher's page, and then click Launcher button on the top-right to launch the game
      • Launcher options is explained in the document below

    Server Switch

    Privilege Notice

    1. You need to run Snap Hutao as administrator to use this feature
    2. Snap Hutao will create ServerCache folder in the data directory to save required sever switch files

    Enter Game Launcher page In the General - Server field, select the server you want

    • Current available serves options include:
    OptionServer
    CN DefaultMainland China server
    CN OfficialMainland China server, no difference with previous row
    CN NoTapTapMainland China server without TapTap account login method
    BiliBiliChinese server with BiliBili account system
    Global DefaultHoYoVerse servers
    Global EpicHoYoVerse servers with Epic Store payment gateway
    Global GoogleHoYoVerse servers with Google Pay payment gateway
    • click Launcher button on the top-right to launch the game, Snap Hutao will download server required files and then launch the game

    Game Account Switch

    Tips

    1. The account mentioned in this feature is Genshin game login account instead of HoYoLAB account
    2. Game account switch feature currently only supporting official CN server
    ',11),p=e("thead",null,[e("tr",null,[e("th"),e("th",null,"CN"),e("th",null,"BiliBili"),e("th",null,"Global")])],-1),g=e("tr",null,[e("td",null,"Save Login Status"),e("td",null,"Supported"),e("td",null,"Supported"),e("td",null,"Supported")],-1),m=e("td",null,"Switch Account",-1),f=e("td",null,"Supported",-1),w=e("td",null,"Not Supported",-1),y=e("br",null,null,-1),v={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/638",target:"_blank",rel:"noopener noreferrer"},b=i('
    1. Enter Game Launcher page
    2. Click Detect Account field in the General category, Snap Hutao will detect current Genshin Impact's account login status
    3. In this pop-up window, enter an archive name for this account and click Confirm
    4. Go back to the game, sign out and sign in to your another account. Repeat step 2 and 3 to add all your account to Snap Hutao
      • Each saved account are selectable
      • On the right side, there are three buttons, they are:
        • Bind current user account, bind current activated MiHoYo BBS account with this game account, an UID will be display on this archive
        • Rename, rename current account archive name
        • Delete, delete current account archive

    Appearance

    Note

    • In some reported cases, using Snap Hutao with Exclusive Fullscreen mode will cause the game process no response.

      • Suggest to use Borderless or Fullscreen mode if you faced same problem
      • The problem is caused by failure of game embedded browser cannot run
    • Enter Game Launcher page
    • In the Appearance category, there are 6 available options:
      • Exclusive Fullscreen, the game process will run in exclusive fullscreen mode
        • You should only use this option when you are able to independently describe technical principles and effects of exclusive fullscreen
      • Fullscreen, the game display mode is set to fullscreen
      • Borderless, the game display mode is set to borderless
      • Width, game window width, such as 1920
      • Height, game window height, such as 1080
      • Display, users with multiple displays can use this option to set which display to run the game

    Resource Download

    Game launcher in Snap Hutao also offers resource download feature, which lists real time Genshin Impact (CN server) client package and OTA package. User can click the hyperlink icon on each package's right side to redirect to browser to download them by user favored download tools.

    When you are updating the game client, you can do the following steps:

    1. Update official launcher to the latest
    2. In Snap Hutao - Game Launcher - Resource Download, find needed client OTA package and installed language OTA package
    3. Move all package to folder where game client located
    4. Start official launcher, click on update button. The launcher should skip the download and directly starts to unzip the OTA packages to update client

    Advanced Features

    Warning

    • Be aware: all advanced features are labeled as Dangeroud Feature; indicating that enabling them means you choose to assume any risk on your own.
    • You need to enable advanced features in Snap Hutao's settings page

    Unlock Frame Rate Limit

    ',11),_={class:"hint-container danger"},S=e("p",{class:"hint-container-title"},"Warning",-1),k={href:"https://github.com/DGP-Studio/Unlocker",target:"_blank",rel:"noopener noreferrer"},G=i("
    • Run Snap Hutao as administrator

    • Enter Game Launcher page

    • At the bottom of the page, you can find Unlock Frame Rate Limit option

      • Trigger the switch to enable or disable this feature
      • In the Set Frame Rate Limit field, you can adjust the limit freely
    • Fact that may cause failure in unlocking frame rate limit:

      • Snap Hutao process is not kept in the background
      • V-Sync is not set to off in the game
      • Max Framerate limit is not changed in your graphic card settings
      • Power Saving mode is not disabled in power settings
      • Your graphic card is not powerful enough
    ",1);function x(H,L){const n=o("ExternalLinkIcon"),l=o("RouterLink");return c(),s("div",null,[h,e("table",null,[p,e("tbody",null,[g,e("tr",null,[m,f,w,e("td",null,[t("Theoretically Supported "),y,e("a",v,[t("We need community's support for this"),a(n)])])])])]),b,e("div",_,[S,e("ul",null,[e("li",null,[t("The "),e("a",k,[t("Unlocker project"),a(n)]),t(" only affects the UnityPlayer itself, directly affecting the Unity3D engine, and does not have a direct relationship with the game itself. Essentially, it is no different from settings like 120 FPS in mobile devices. However, you should still use it with caution and read the "),a(l,{to:"/en/statements/tos.html"},{default:d(()=>[t("user agreement")]),_:1}),t(" on your own.")])])]),G])}const B=r(u,[["render",x],["__file","game-launcher.html.vue"]]);export{B as default}; diff --git a/assets/get-stoken-cookie-from-the-third-party.html-3f1836be.js b/assets/get-stoken-cookie-from-the-third-party.html-48dcba2c.js similarity index 96% rename from assets/get-stoken-cookie-from-the-third-party.html-3f1836be.js rename to assets/get-stoken-cookie-from-the-third-party.html-48dcba2c.js index 02330265c..31e028aee 100644 --- a/assets/get-stoken-cookie-from-the-third-party.html-3f1836be.js +++ b/assets/get-stoken-cookie-from-the-third-party.html-48dcba2c.js @@ -1 +1 @@ -import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as c,c as r,a as e,b as o,d as l,e as i}from"./app-8966c29b.js";const d={},s=i('

    使用第三方工具获取有 Stoken 的 cookie

    Note

    • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
    • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

    Android

    Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

    ',4),h={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"GetToken 开源项目",-1),k={href:"https://github.com/HolographicHat/GetToken",target:"_blank",rel:"noopener noreferrer"},u=i('
    • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
      • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
      • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
        • 你需要卸载官方版米游社以安装该版本的米游社
    • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
    • 在右上角点击形如 🔑 形状的按钮
    • 点击勾选 Stoken 选项
    • 点击复制登录信息
    • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
    • 胡桃工具箱中的账号登录位置,点击手动输入
    • 将之前获取到的 cookie 输入,此时即可完成登录

    iOS

    iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

    ',3),_={href:"https://apps.apple.com/cn/app/stream/id1312141691",target:"_blank",rel:"noopener noreferrer"},m=i("
  • 对域名 api-takumi.mihoyo.com 进行抓包分析
  • 找到并复制带有 Stoken 的数据
    • 形如stuid=****;stoken=v2****;mid=****;
  • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
  • 胡桃工具箱中的账号登录位置,点击手动输入
  • 将之前获取到的 cookie 输入,此时即可完成登录
  • ",5);function S(f,T){const t=a("ExternalLinkIcon");return c(),r("div",null,[s,e("div",h,[p,e("ul",null,[e("li",null,[o("GitHub:"),e("a",k,[o("HolographicHat/GetToken"),l(t)])])])]),u,e("ul",null,[e("li",null,[o("从 App Store 下载 "),e("a",_,[o("Stream"),l(t)])]),m])])}const b=n(d,[["render",S],["__file","get-stoken-cookie-from-the-third-party.html.vue"]]);export{b as default}; +import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as c,c as r,a as e,b as o,d as l,e as i}from"./app-5a96e1e2.js";const d={},s=i('

    使用第三方工具获取有 Stoken 的 cookie

    Note

    • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
    • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

    Android

    Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

    ',4),h={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"GetToken 开源项目",-1),k={href:"https://github.com/HolographicHat/GetToken",target:"_blank",rel:"noopener noreferrer"},u=i('
    • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
      • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
      • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
        • 你需要卸载官方版米游社以安装该版本的米游社
    • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
    • 在右上角点击形如 🔑 形状的按钮
    • 点击勾选 Stoken 选项
    • 点击复制登录信息
    • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
    • 胡桃工具箱中的账号登录位置,点击手动输入
    • 将之前获取到的 cookie 输入,此时即可完成登录

    iOS

    iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

    ',3),_={href:"https://apps.apple.com/cn/app/stream/id1312141691",target:"_blank",rel:"noopener noreferrer"},m=i("
  • 对域名 api-takumi.mihoyo.com 进行抓包分析
  • 找到并复制带有 Stoken 的数据
    • 形如stuid=****;stoken=v2****;mid=****;
  • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
  • 胡桃工具箱中的账号登录位置,点击手动输入
  • 将之前获取到的 cookie 输入,此时即可完成登录
  • ",5);function S(f,T){const t=a("ExternalLinkIcon");return c(),r("div",null,[s,e("div",h,[p,e("ul",null,[e("li",null,[o("GitHub:"),e("a",k,[o("HolographicHat/GetToken"),l(t)])])])]),u,e("ul",null,[e("li",null,[o("从 App Store 下载 "),e("a",_,[o("Stream"),l(t)])]),m])])}const b=n(d,[["render",S],["__file","get-stoken-cookie-from-the-third-party.html.vue"]]);export{b as default}; diff --git a/assets/get-stoken-cookie-from-the-third-party.html-032b8690.js b/assets/get-stoken-cookie-from-the-third-party.html-c6b7387c.js similarity index 96% rename from assets/get-stoken-cookie-from-the-third-party.html-032b8690.js rename to assets/get-stoken-cookie-from-the-third-party.html-c6b7387c.js index d507b01a4..10c486431 100644 --- a/assets/get-stoken-cookie-from-the-third-party.html-032b8690.js +++ b/assets/get-stoken-cookie-from-the-third-party.html-c6b7387c.js @@ -1 +1 @@ -import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as c,c as r,a as e,b as o,d as l,e as i}from"./app-8966c29b.js";const d={},s=i('

    使用第三方工具获取有 Stoken 的 cookie

    注意

    • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
    • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

    Android

    Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

    ',4),h={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"GetToken 开源项目",-1),k={href:"https://github.com/HolographicHat/GetToken",target:"_blank",rel:"noopener noreferrer"},u=i('
    • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
      • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
      • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
        • 你需要卸载官方版米游社以安装该版本的米游社
    • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
    • 在右上角点击形如 🔑 形状的按钮
    • 点击勾选 Stoken 选项
    • 点击复制登录信息
    • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
    • 胡桃工具箱中的账号登录位置,点击手动输入
    • 将之前获取到的 cookie 输入,此时即可完成登录

    iOS

    iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

    ',3),_={href:"https://apps.apple.com/cn/app/stream/id1312141691",target:"_blank",rel:"noopener noreferrer"},m=i("
  • 对域名 api-takumi.mihoyo.com 进行抓包分析
  • 找到并复制带有 Stoken 的数据
    • 形如stuid=****;stoken=v2****;mid=****;
  • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
  • 胡桃工具箱中的账号登录位置,点击手动输入
  • 将之前获取到的 cookie 输入,此时即可完成登录
  • ",5);function S(f,T){const t=a("ExternalLinkIcon");return c(),r("div",null,[s,e("div",h,[p,e("ul",null,[e("li",null,[o("GitHub:"),e("a",k,[o("HolographicHat/GetToken"),l(t)])])])]),u,e("ul",null,[e("li",null,[o("从 App Store 下载 "),e("a",_,[o("Stream"),l(t)])]),m])])}const b=n(d,[["render",S],["__file","get-stoken-cookie-from-the-third-party.html.vue"]]);export{b as default}; +import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as c,c as r,a as e,b as o,d as l,e as i}from"./app-5a96e1e2.js";const d={},s=i('

    使用第三方工具获取有 Stoken 的 cookie

    注意

    • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
    • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

    Android

    Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

    ',4),h={class:"hint-container tip"},p=e("p",{class:"hint-container-title"},"GetToken 开源项目",-1),k={href:"https://github.com/HolographicHat/GetToken",target:"_blank",rel:"noopener noreferrer"},u=i('
    • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
      • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
      • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
        • 你需要卸载官方版米游社以安装该版本的米游社
    • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
    • 在右上角点击形如 🔑 形状的按钮
    • 点击勾选 Stoken 选项
    • 点击复制登录信息
    • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
    • 胡桃工具箱中的账号登录位置,点击手动输入
    • 将之前获取到的 cookie 输入,此时即可完成登录

    iOS

    iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

    ',3),_={href:"https://apps.apple.com/cn/app/stream/id1312141691",target:"_blank",rel:"noopener noreferrer"},m=i("
  • 对域名 api-takumi.mihoyo.com 进行抓包分析
  • 找到并复制带有 Stoken 的数据
    • 形如stuid=****;stoken=v2****;mid=****;
  • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
  • 胡桃工具箱中的账号登录位置,点击手动输入
  • 将之前获取到的 cookie 输入,此时即可完成登录
  • ",5);function S(f,T){const t=a("ExternalLinkIcon");return c(),r("div",null,[s,e("div",h,[p,e("ul",null,[e("li",null,[o("GitHub:"),e("a",k,[o("HolographicHat/GetToken"),l(t)])])])]),u,e("ul",null,[e("li",null,[o("从 App Store 下载 "),e("a",_,[o("Stream"),l(t)])]),m])])}const b=n(d,[["render",S],["__file","get-stoken-cookie-from-the-third-party.html.vue"]]);export{b as default}; diff --git a/assets/hutao-API.html-c6aa20fe.js b/assets/hutao-API.html-0b11e24f.js similarity index 99% rename from assets/hutao-API.html-c6aa20fe.js rename to assets/hutao-API.html-0b11e24f.js index 467ca3cb6..e9be15805 100644 --- a/assets/hutao-API.html-c6aa20fe.js +++ b/assets/hutao-API.html-0b11e24f.js @@ -1 +1 @@ -import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{r as c,o as p,c as h,d as l,w as o,a as e,b as a,e as n}from"./app-8966c29b.js";const f={},u=n('

    胡桃数据库/深渊统计

    胡桃工具箱提供两个主要的深境螺旋挑战统计的功能

    • 侧栏中的深渊统计是一个旨在通过统计并展示广大玩家深境螺旋挑战数据,来帮助对原神对战系统不熟悉玩家组建队伍、通关深渊、获取奖励的功能
    • 侧栏中的深渊记录是一个通过保存玩家每一期深境螺旋挑战数据来帮助个人玩家回顾游戏经历及个人数据收集的统计功能
      • 众多的玩家通过上传个人的深渊记录来形成胡桃数据库的深渊统计数据集
    ',3),g=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i2/1797064093/O1CN01QnrxoH1g6dyBQazad_!!1797064093.png_.webp",alt:"character-usage-rate",loading:"lazy"})],-1),_=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01SZxOoc1g6dyBJC3g3_!!1797064093.png_.webp",alt:"character-held-n-usage-rate",loading:"lazy"})],-1),m=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01oERCCj1g6dyHvhPXj_!!1797064093.png_.webp",alt:"hutaoapi",loading:"lazy"})],-1),v=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN0112Fro61g6dyGCiFxq_!!1797064093.png_.webp",alt:"character-held-rate",loading:"lazy"})],-1),b=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01wrgGYm1g6dyH6BpIL_!!1797064093.png_.webp",alt:"personal-record-stat",loading:"lazy"})],-1),x=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN012Rt60l1g6dyGCgiHv_!!1797064093.png_.webp",alt:"personal-record-details",loading:"lazy"})],-1),A=n('

    查看深渊数据

    数据范围局限性

    所有计算数据都基于已上传至胡桃数据库中的玩家数据,无法代表全部原神玩家的平均数据,数据仅做参考用途

    数据刷新周期

    1. 深境螺旋统计数据(角色使用率、角色出场率、队伍出场)在帐号所属游戏服务器时区每月 1 日和 16 日的 4 点自动清理。
      • 点击界面右上角的信息按钮你可以查看当前实时已上传的总数据
    2. 同时,若用户在 30 天内没有重新上传记录以更新数据,则其的角色持有数据将被清理
    • 在主界面点击左侧菜单栏进入深渊统计页面
    • 点击角色使用以查看角色使用率数据
      • 角色使用率 = 角色在当前层数出场次数[1] / 持有该角色的玩家在该层数的总记录数
    • 点击角色出场以查看角色出场率数据
      • 角色出场率 = 角色在当前层数出场次数[2] / 当前层数总记录数
    • 点击角色持有以查看角色持有率数据[3]
      • 角色持有率[4] = 所有拥有该角色的玩家数量 / 全部玩家数量
    • 点击队伍出场以查看队伍组合出场次数数据
      • 各种角色组队情况下出场次数的排名

    上传深境螺旋数据

    使用胡桃客户端

    • 在主界面点击左侧菜单栏进入深渊记录功能页面
    • 点击右上角的刷新数据以确保胡桃工具箱客户端已经获取到最新的个人深境螺旋数据
    • 点击右上角的上传数据以上传你的深境螺旋数据
      • 这可能需要花费数秒,上传成功后你将会看到如下图的成功提示 upload-hutaoapi

    使用浏览器

    相关信息

    该方法不适用于 HoYoLAB

    • 打开我们的 JavaScript 脚本,复制全部内容

    • 在浏览器中创建一个新的书签

      • 在名称中填写一个合适的名称
      • 在 URL 中粘贴你刚刚复制的全部代码

      add-bookmark

    • 访问米游社,在页面加载完成后点击你刚刚创建的书签

    • 稍等片刻,你应该能看到请求上传的确认窗口

    • 在确认后,浏览器将上传你的深渊数据,请勿关闭米游社页面

    • 在上传完成后,浏览器会有确认完成的提示窗口

    数据共享

    Snap Hutao 与其它开发者共同维护着胡桃数据库,你可以在多个应用中查看深渊统计数据并上传你的深渊数据。目前,Snap Hutao 正在与以下应用共享深渊数据:

    ',12),y={href:"https://github.com/yoimiya-kokomi/miao-plugin/tree/master",target:"_blank",rel:"noopener noreferrer"},C={href:"https://apps.apple.com/cn/app/%E6%8A%AB%E8%90%A8%E5%B0%8F%E5%8A%A9%E6%89%8B/id1635319193",target:"_blank",rel:"noopener noreferrer"},k=e("li",null,"微信小程序 Ysin",-1),w=n('
    1. 在当前层中不同间内多次出现的同一个角色仅记 1 次出场次数 ↩︎

    2. 在当前层中不同间内多次出现的同一个角色仅记 1 次出场次数 ↩︎

    3. 角色持有数据与深境螺旋记录独立 ↩︎

    4. 只要拥有该角色,即使没有在深境螺旋中登场,也会被计入拥有的状态;只要上传过深境螺旋记录,即会被计入全部玩家的数据中。 ↩︎

    ',2);function N(B,O){const r=c("Tabs"),s=c("ExternalLinkIcon");return p(),h("div",null,[u,l(r,{id:"25",data:[{id:"角色使用率"},{id:"角色出场率"},{id:"队伍出场次数"},{id:"角色持有率"},{id:"个人数据统计"},{id:"个人数据详情"}]},{title0:o(({value:t,isActive:i})=>[a("角色使用率")]),title1:o(({value:t,isActive:i})=>[a("角色出场率")]),title2:o(({value:t,isActive:i})=>[a("队伍出场次数")]),title3:o(({value:t,isActive:i})=>[a("角色持有率")]),title4:o(({value:t,isActive:i})=>[a("个人数据统计")]),title5:o(({value:t,isActive:i})=>[a("个人数据详情")]),tab0:o(({value:t,isActive:i})=>[g]),tab1:o(({value:t,isActive:i})=>[_]),tab2:o(({value:t,isActive:i})=>[m]),tab3:o(({value:t,isActive:i})=>[v]),tab4:o(({value:t,isActive:i})=>[b]),tab5:o(({value:t,isActive:i})=>[x]),_:1}),A,e("ol",null,[e("li",null,[e("a",y,[a("Miao-Plugin for Yunzai-Bot"),l(s)])]),e("li",null,[e("a",C,[a("原神披萨助手"),l(s)])]),k]),w])}const H=d(f,[["render",N],["__file","hutao-API.html.vue"]]);export{H as default}; +import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{r as c,o as p,c as h,d as l,w as o,a as e,b as a,e as n}from"./app-5a96e1e2.js";const f={},u=n('

    胡桃数据库/深渊统计

    胡桃工具箱提供两个主要的深境螺旋挑战统计的功能

    • 侧栏中的深渊统计是一个旨在通过统计并展示广大玩家深境螺旋挑战数据,来帮助对原神对战系统不熟悉玩家组建队伍、通关深渊、获取奖励的功能
    • 侧栏中的深渊记录是一个通过保存玩家每一期深境螺旋挑战数据来帮助个人玩家回顾游戏经历及个人数据收集的统计功能
      • 众多的玩家通过上传个人的深渊记录来形成胡桃数据库的深渊统计数据集
    ',3),g=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i2/1797064093/O1CN01QnrxoH1g6dyBQazad_!!1797064093.png_.webp",alt:"character-usage-rate",loading:"lazy"})],-1),_=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01SZxOoc1g6dyBJC3g3_!!1797064093.png_.webp",alt:"character-held-n-usage-rate",loading:"lazy"})],-1),m=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01oERCCj1g6dyHvhPXj_!!1797064093.png_.webp",alt:"hutaoapi",loading:"lazy"})],-1),v=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN0112Fro61g6dyGCiFxq_!!1797064093.png_.webp",alt:"character-held-rate",loading:"lazy"})],-1),b=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01wrgGYm1g6dyH6BpIL_!!1797064093.png_.webp",alt:"personal-record-stat",loading:"lazy"})],-1),x=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN012Rt60l1g6dyGCgiHv_!!1797064093.png_.webp",alt:"personal-record-details",loading:"lazy"})],-1),A=n('

    查看深渊数据

    数据范围局限性

    所有计算数据都基于已上传至胡桃数据库中的玩家数据,无法代表全部原神玩家的平均数据,数据仅做参考用途

    数据刷新周期

    1. 深境螺旋统计数据(角色使用率、角色出场率、队伍出场)在帐号所属游戏服务器时区每月 1 日和 16 日的 4 点自动清理。
      • 点击界面右上角的信息按钮你可以查看当前实时已上传的总数据
    2. 同时,若用户在 30 天内没有重新上传记录以更新数据,则其的角色持有数据将被清理
    • 在主界面点击左侧菜单栏进入深渊统计页面
    • 点击角色使用以查看角色使用率数据
      • 角色使用率 = 角色在当前层数出场次数[1] / 持有该角色的玩家在该层数的总记录数
    • 点击角色出场以查看角色出场率数据
      • 角色出场率 = 角色在当前层数出场次数[2] / 当前层数总记录数
    • 点击角色持有以查看角色持有率数据[3]
      • 角色持有率[4] = 所有拥有该角色的玩家数量 / 全部玩家数量
    • 点击队伍出场以查看队伍组合出场次数数据
      • 各种角色组队情况下出场次数的排名

    上传深境螺旋数据

    使用胡桃客户端

    • 在主界面点击左侧菜单栏进入深渊记录功能页面
    • 点击右上角的刷新数据以确保胡桃工具箱客户端已经获取到最新的个人深境螺旋数据
    • 点击右上角的上传数据以上传你的深境螺旋数据
      • 这可能需要花费数秒,上传成功后你将会看到如下图的成功提示 upload-hutaoapi

    使用浏览器

    相关信息

    该方法不适用于 HoYoLAB

    • 打开我们的 JavaScript 脚本,复制全部内容

    • 在浏览器中创建一个新的书签

      • 在名称中填写一个合适的名称
      • 在 URL 中粘贴你刚刚复制的全部代码

      add-bookmark

    • 访问米游社,在页面加载完成后点击你刚刚创建的书签

    • 稍等片刻,你应该能看到请求上传的确认窗口

    • 在确认后,浏览器将上传你的深渊数据,请勿关闭米游社页面

    • 在上传完成后,浏览器会有确认完成的提示窗口

    数据共享

    Snap Hutao 与其它开发者共同维护着胡桃数据库,你可以在多个应用中查看深渊统计数据并上传你的深渊数据。目前,Snap Hutao 正在与以下应用共享深渊数据:

    ',12),y={href:"https://github.com/yoimiya-kokomi/miao-plugin/tree/master",target:"_blank",rel:"noopener noreferrer"},C={href:"https://apps.apple.com/cn/app/%E6%8A%AB%E8%90%A8%E5%B0%8F%E5%8A%A9%E6%89%8B/id1635319193",target:"_blank",rel:"noopener noreferrer"},k=e("li",null,"微信小程序 Ysin",-1),w=n('
    1. 在当前层中不同间内多次出现的同一个角色仅记 1 次出场次数 ↩︎

    2. 在当前层中不同间内多次出现的同一个角色仅记 1 次出场次数 ↩︎

    3. 角色持有数据与深境螺旋记录独立 ↩︎

    4. 只要拥有该角色,即使没有在深境螺旋中登场,也会被计入拥有的状态;只要上传过深境螺旋记录,即会被计入全部玩家的数据中。 ↩︎

    ',2);function N(B,O){const r=c("Tabs"),s=c("ExternalLinkIcon");return p(),h("div",null,[u,l(r,{id:"25",data:[{id:"角色使用率"},{id:"角色出场率"},{id:"队伍出场次数"},{id:"角色持有率"},{id:"个人数据统计"},{id:"个人数据详情"}]},{title0:o(({value:t,isActive:i})=>[a("角色使用率")]),title1:o(({value:t,isActive:i})=>[a("角色出场率")]),title2:o(({value:t,isActive:i})=>[a("队伍出场次数")]),title3:o(({value:t,isActive:i})=>[a("角色持有率")]),title4:o(({value:t,isActive:i})=>[a("个人数据统计")]),title5:o(({value:t,isActive:i})=>[a("个人数据详情")]),tab0:o(({value:t,isActive:i})=>[g]),tab1:o(({value:t,isActive:i})=>[_]),tab2:o(({value:t,isActive:i})=>[m]),tab3:o(({value:t,isActive:i})=>[v]),tab4:o(({value:t,isActive:i})=>[b]),tab5:o(({value:t,isActive:i})=>[x]),_:1}),A,e("ol",null,[e("li",null,[e("a",y,[a("Miao-Plugin for Yunzai-Bot"),l(s)])]),e("li",null,[e("a",C,[a("原神披萨助手"),l(s)])]),k]),w])}const H=d(f,[["render",N],["__file","hutao-API.html.vue"]]);export{H as default}; diff --git a/assets/hutao-API.html-265d153a.js b/assets/hutao-API.html-7018cba6.js similarity index 99% rename from assets/hutao-API.html-265d153a.js rename to assets/hutao-API.html-7018cba6.js index 04383a165..d037d54df 100644 --- a/assets/hutao-API.html-265d153a.js +++ b/assets/hutao-API.html-7018cba6.js @@ -1 +1 @@ -import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as h,c as p,d as s,w as e,a,b as i,e as r}from"./app-8966c29b.js";const u={},f=r('

    Hutao Database / Abyss Record

    Snap Hutao offers two major statistic features associated with Spiral Abyss challenge

    • Abyss Stats on the sidebar is a feature designed to help players who are not familiar with Genshin Impact's battle system to build teams, pass the Abyss and obtain rewards by collecting and displaying challenge stats data from the Spiral Abyss from a large number of players.
    • Abyss Record on the sidebar is a statistical feature that helps individuals review their gaming experience and personal data collection by saving their challenge data from each period of the Spiral Abyss.
      • Many players contribute to the Hutao Database's Abyss Stats dataset by uploading their personal Abyss Records
    ',3),b=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01cAHDDi1g6dyEPgDBp_!!1797064093.png_.webp",alt:"character-usage-rate",loading:"lazy"})],-1),m=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01oGusSy1g6dyD7kKoP_!!1797064093.png_.webp",alt:"character-held-n-usage-rate",loading:"lazy"})],-1),g=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i2/1797064093/O1CN010K1SE91g6dyGYLnWB_!!1797064093.png_.webp",alt:"Teams Appearance",loading:"lazy"})],-1),y=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01O2jCWZ1g6dy4fzxlw_!!1797064093.png_.webp",alt:"character-held-rate",loading:"lazy"})],-1),_=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01YDXi8r1g6dyGBmAt2_!!1797064093.png_.webp",alt:"personal-record-stat",loading:"lazy"})],-1),w=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01YwoXln1g6dyEKoJ2r_!!1797064093.png_.webp",alt:"personal-record-details",loading:"lazy"})],-1),A=r('

    View Abyss Stats

    Data Scope Limitation

    All calculated data are based on the player data uploaded to the Hutao Database and cannot represent the average data of all Genshin Impact players. The data is for reference only.

    Stats Data Refresh Cycle

    1. Abyss Stats (character usage, character appearance, teams appearance) wil be automatically reset on 1st and 16th day of each month on the gaming server timezone of your account
      • You can view real-time total uploaded data by clicking Details button in the Abyss Stats page
    2. If user does not upload its record for 30 days, its character constellation data will be reset in the database
    • Enter Abyss Records page by clicking Abyss Stats on the sidebar menu
    • Click Character Usage tab to view character usage rate statistics
      • Character Usage Rate = Character Appearance in this Floor [1] / Number of Player who Own this Character
    • Click Character Appearance tab to view character appearance rate statistics
      • Character Appearance Rate = Character Appearance in this Floor [2] / Total Number of Abyss Record of this Floor
    • Click Teams tab to view teams appearance time statistics
      • Team appearance is the appearance time rank of different characters team combination
    • Click Character Constellation tab to view character constellation statistics [3]
      • Character Constellation [4] = Number of Player who Own this Character / Total Number of Player

    Upload Abyss Data

    Use Snap Hutao Client

    • Enter Abyss Records page by clicking Abyss Records on the sidebar menu
    • Click Refresh Data button to make suer Snap Hutao is storing your latest Spiral Abyss record
    • Click Upload Data to upload your Spiral Abyss records
      • This may take a few seconds, you will see the following success message after your data is submitted upload-hutaoapi

    Use Browser

    Info

    This method does not support HoYoLAB

    • Open our JavaScript file, copy the entire content
    • Create new bookmark in your browser
      • Fill with a suitable name
      • in the URL field, fill with script you just copied add-bookmark
    • Visit MiYouShe, wait the page to be fully loaded, and then click the bookmark
    • Wait for a moment, and you will see data upload request window
    • After confirm it, the browser will upload your abyss record, do not turn off your browser
    • You will receive a notification when your data is submitted

    Data Sharing

    Snap Hutao is contributing data to Hutao Database with other developers. You can view our Abyss Stats, and upload your Abyss data in multiple applications other than Snap Hutao. Currently, Snap Hutao is sharing Abyss data with following applications:

    ',12),v={href:"https://github.com/yoimiya-kokomi/miao-plugin/tree/master",target:"_blank",rel:"noopener noreferrer"},C={href:"https://apps.apple.com/us/app/pizza-helper-for-genshin/id1635319193",target:"_blank",rel:"noopener noreferrer"},k=a("li",null,"WeChat Mini Program: Ysin",-1),S=r('
    1. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

    2. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

    3. Character constellation data is a separate data set from Spiral Abyss records database ↩︎

    4. Once owned this character, it's counted into database even it's not appearing in Spiral Abyss; Once upload your Abyss stats, all collected characters will be included ↩︎

    ',2);function x(D,N){const c=n("Tabs"),l=n("ExternalLinkIcon");return h(),p("div",null,[f,s(c,{id:"25",data:[{id:"Character Usage"},{id:"Character Appearance"},{id:"Teams Appearance"},{id:"Character Constellation"},{id:"Personal Statistics"},{id:"Personal Stats Details"}]},{title0:e(({value:t,isActive:o})=>[i("Character Usage")]),title1:e(({value:t,isActive:o})=>[i("Character Appearance")]),title2:e(({value:t,isActive:o})=>[i("Teams Appearance")]),title3:e(({value:t,isActive:o})=>[i("Character Constellation")]),title4:e(({value:t,isActive:o})=>[i("Personal Statistics")]),title5:e(({value:t,isActive:o})=>[i("Personal Stats Details")]),tab0:e(({value:t,isActive:o})=>[b]),tab1:e(({value:t,isActive:o})=>[m]),tab2:e(({value:t,isActive:o})=>[g]),tab3:e(({value:t,isActive:o})=>[y]),tab4:e(({value:t,isActive:o})=>[_]),tab5:e(({value:t,isActive:o})=>[w]),_:1}),A,a("ol",null,[a("li",null,[a("a",v,[i("Miao-Plugin for Yunzai-Bot"),s(l)])]),a("li",null,[a("a",C,[i("Pizza Helper for Genshin"),s(l)])]),k]),S])}const P=d(u,[["render",x],["__file","hutao-API.html.vue"]]);export{P as default}; +import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as h,c as p,d as s,w as e,a,b as i,e as r}from"./app-5a96e1e2.js";const u={},f=r('

    Hutao Database / Abyss Record

    Snap Hutao offers two major statistic features associated with Spiral Abyss challenge

    • Abyss Stats on the sidebar is a feature designed to help players who are not familiar with Genshin Impact's battle system to build teams, pass the Abyss and obtain rewards by collecting and displaying challenge stats data from the Spiral Abyss from a large number of players.
    • Abyss Record on the sidebar is a statistical feature that helps individuals review their gaming experience and personal data collection by saving their challenge data from each period of the Spiral Abyss.
      • Many players contribute to the Hutao Database's Abyss Stats dataset by uploading their personal Abyss Records
    ',3),b=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i3/1797064093/O1CN01cAHDDi1g6dyEPgDBp_!!1797064093.png_.webp",alt:"character-usage-rate",loading:"lazy"})],-1),m=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01oGusSy1g6dyD7kKoP_!!1797064093.png_.webp",alt:"character-held-n-usage-rate",loading:"lazy"})],-1),g=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i2/1797064093/O1CN010K1SE91g6dyGYLnWB_!!1797064093.png_.webp",alt:"Teams Appearance",loading:"lazy"})],-1),y=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01O2jCWZ1g6dy4fzxlw_!!1797064093.png_.webp",alt:"character-held-rate",loading:"lazy"})],-1),_=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01YDXi8r1g6dyGBmAt2_!!1797064093.png_.webp",alt:"personal-record-stat",loading:"lazy"})],-1),w=a("p",null,[a("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01YwoXln1g6dyEKoJ2r_!!1797064093.png_.webp",alt:"personal-record-details",loading:"lazy"})],-1),A=r('

    View Abyss Stats

    Data Scope Limitation

    All calculated data are based on the player data uploaded to the Hutao Database and cannot represent the average data of all Genshin Impact players. The data is for reference only.

    Stats Data Refresh Cycle

    1. Abyss Stats (character usage, character appearance, teams appearance) wil be automatically reset on 1st and 16th day of each month on the gaming server timezone of your account
      • You can view real-time total uploaded data by clicking Details button in the Abyss Stats page
    2. If user does not upload its record for 30 days, its character constellation data will be reset in the database
    • Enter Abyss Records page by clicking Abyss Stats on the sidebar menu
    • Click Character Usage tab to view character usage rate statistics
      • Character Usage Rate = Character Appearance in this Floor [1] / Number of Player who Own this Character
    • Click Character Appearance tab to view character appearance rate statistics
      • Character Appearance Rate = Character Appearance in this Floor [2] / Total Number of Abyss Record of this Floor
    • Click Teams tab to view teams appearance time statistics
      • Team appearance is the appearance time rank of different characters team combination
    • Click Character Constellation tab to view character constellation statistics [3]
      • Character Constellation [4] = Number of Player who Own this Character / Total Number of Player

    Upload Abyss Data

    Use Snap Hutao Client

    • Enter Abyss Records page by clicking Abyss Records on the sidebar menu
    • Click Refresh Data button to make suer Snap Hutao is storing your latest Spiral Abyss record
    • Click Upload Data to upload your Spiral Abyss records
      • This may take a few seconds, you will see the following success message after your data is submitted upload-hutaoapi

    Use Browser

    Info

    This method does not support HoYoLAB

    • Open our JavaScript file, copy the entire content
    • Create new bookmark in your browser
      • Fill with a suitable name
      • in the URL field, fill with script you just copied add-bookmark
    • Visit MiYouShe, wait the page to be fully loaded, and then click the bookmark
    • Wait for a moment, and you will see data upload request window
    • After confirm it, the browser will upload your abyss record, do not turn off your browser
    • You will receive a notification when your data is submitted

    Data Sharing

    Snap Hutao is contributing data to Hutao Database with other developers. You can view our Abyss Stats, and upload your Abyss data in multiple applications other than Snap Hutao. Currently, Snap Hutao is sharing Abyss data with following applications:

    ',12),v={href:"https://github.com/yoimiya-kokomi/miao-plugin/tree/master",target:"_blank",rel:"noopener noreferrer"},C={href:"https://apps.apple.com/us/app/pizza-helper-for-genshin/id1635319193",target:"_blank",rel:"noopener noreferrer"},k=a("li",null,"WeChat Mini Program: Ysin",-1),S=r('
    1. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

    2. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

    3. Character constellation data is a separate data set from Spiral Abyss records database ↩︎

    4. Once owned this character, it's counted into database even it's not appearing in Spiral Abyss; Once upload your Abyss stats, all collected characters will be included ↩︎

    ',2);function x(D,N){const c=n("Tabs"),l=n("ExternalLinkIcon");return h(),p("div",null,[f,s(c,{id:"25",data:[{id:"Character Usage"},{id:"Character Appearance"},{id:"Teams Appearance"},{id:"Character Constellation"},{id:"Personal Statistics"},{id:"Personal Stats Details"}]},{title0:e(({value:t,isActive:o})=>[i("Character Usage")]),title1:e(({value:t,isActive:o})=>[i("Character Appearance")]),title2:e(({value:t,isActive:o})=>[i("Teams Appearance")]),title3:e(({value:t,isActive:o})=>[i("Character Constellation")]),title4:e(({value:t,isActive:o})=>[i("Personal Statistics")]),title5:e(({value:t,isActive:o})=>[i("Personal Stats Details")]),tab0:e(({value:t,isActive:o})=>[b]),tab1:e(({value:t,isActive:o})=>[m]),tab2:e(({value:t,isActive:o})=>[g]),tab3:e(({value:t,isActive:o})=>[y]),tab4:e(({value:t,isActive:o})=>[_]),tab5:e(({value:t,isActive:o})=>[w]),_:1}),A,a("ol",null,[a("li",null,[a("a",v,[i("Miao-Plugin for Yunzai-Bot"),s(l)])]),a("li",null,[a("a",C,[i("Pizza Helper for Genshin"),s(l)])]),k]),S])}const P=d(u,[["render",x],["__file","hutao-API.html.vue"]]);export{P as default}; diff --git a/assets/hutao-settings.html-5f75f3e0.js b/assets/hutao-settings.html-e7324425.js similarity index 99% rename from assets/hutao-settings.html-5f75f3e0.js rename to assets/hutao-settings.html-e7324425.js index 9ada5099d..8b9b33315 100644 --- a/assets/hutao-settings.html-5f75f3e0.js +++ b/assets/hutao-settings.html-e7324425.js @@ -1 +1 @@ -import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as u,c as d,a as e,b as a,d as t,w as n,e as r}from"./app-8966c29b.js";const p={},f=r('

    Software Settings

    Info

    • The following feature tutorials are introduced in-program order.

    About Snap Hutao

    This part has the following information:

    ',4),m={href:"https://space.bilibili.com/274422134",target:"_blank",rel:"noopener noreferrer"},g={class:"hint-container details"},y=e("summary",null,"Drawing Process",-1),_={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},w=e("li",null,"Snap Hutao client version",-1),b=e("li",null,"Device ID",-1),S={id:"snap-hutao-account",tabindex:"-1"},v=e("a",{class:"header-anchor",href:"#snap-hutao-account","aria-hidden":"true"},"#",-1),x=r('

    Hutao-account Snap Hutao account system is designed by DGP-Studio to provide fundamental component for cloud service such as wish history backup. Currently, you are already able to register and login to your Snap Hutao account in the settings page.

    Shell Experience

    • Create Desktop Shortcut
      • Snap Hutao will create a shortcut with Administrator privilege on user's desktop

    Appearance

    • Language

      • Snap Hutao will following system language setting by default
      • You can force to change to another language in the settings page
    • Backdrop Material

      • In this option, you can change the backdrop material of the software to
        • Acrylic
        • Mica (Windows 11 only)
        • MicaAlt (Windows 11 only)
      • The setting will take effect immediately

    Home

    • Dashboard Card
      • You can click on this option to switch display of card on Home Dashboard
        • Game Launcher
        • Wish History
        • Achievement
        • Realtime Notes

    Game

    • Game Path

      • In this field, you can modify or set your game path for Snap Hutao
      • When setting the game path, you should select game program instead of launcher program
        • Such as $\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
    • PowerShell Path

      • Snap Hutao uses PowerShell to modify Genshin Impact registry field to switch game account. This option allows user to select PowerShell path to fix issue when PowerShell path is unable to located automatically
    • Delete Game Embedded Browser Web Cache

      • When you are using web cache refresh method in the wish history feature and receiving authkey expiration error, you can try this operation to fix the error
      • Click on this field to execute the operation

    Wish History

    • In this field, you can choose to hide wish event that you do not have any record in the period in the wish export feature

    Geetest Verification

    MiYouShe uses Geetest verification to block requests not from real human operations, so some requests from Snap Hutao, such as claim check-in reward and fetch Real-time Notes data may be failed due to marked as robot operation. If you have a third party service to bypass Geetest verification, you can config this setting to pass verification parameters to service provider you used.

    Successfully config this setting will help Snap Hutao pass verification when fetching data from Real-time Notes and claiming check-in rewards, and avoid -1034 error from MiYouShe.

    Storage

    • Open Data Folder
      • Click this field to open data folder that contains user data, log, and metadata
    • Change Data Directory
      • This field allows you to change the data directory to path you want
    • Open Cache Folder
      • Click this field will open cache folder that saves image assets used by Snap Hutao
    • Reset Image Resource
      • This option allows user to reset image cache when there are too many image failed to load. The program will re-download images resource at next start-up

    Dangerous Features

    ',17),k=e("p",null,"For reference:",-1),H={href:"https://ys.mihoyo.com/main/company/agreement",target:"_blank",rel:"noopener noreferrer"},G={href:"https://genshin.hoyoverse.com/en/company/terms",target:"_blank",rel:"noopener noreferrer"},C=e("li",null,[a("Delete All Users "),e("ul",null,[e("li",null,"Execute this operation will delete all user data in Snap Hutao"),e("li",null,"Click on the field to operate, you will be asked to confirm"),e("li",null,"In most scenario, you don't need to use this field")])],-1);function B(D,I){const l=o("RouterLink"),i=o("ExternalLinkIcon"),s=o("BiliBili"),h=o("Badge");return u(),d("div",null,[f,e("ul",null,[e("li",null,[a("The icon of Snap Hutao:You can find the original image of the icon at the "),t(l,{to:"/"},{default:n(()=>[a("home page")]),_:1}),e("ul",null,[e("li",null,[a("The artist is "),e("a",m,[a("画画的芦苇 (BiliBili)"),t(i)]),e("details",g,[y,t(s,{bvid:"BV1UL411d7Py"})])]),e("li",null,[e("a",_,[a("DGP-Studio"),t(i)]),a(" is authorized by owner to use it for Snap Hutao Project")])])]),w,b]),e("h2",S,[v,a(" Snap Hutao Account "),t(h,{text:"Beta",type:"info"})]),x,e("ul",null,[e("li",null,[a("Enable Advanced Features "),e("ul",null,[e("li",null,[a("With Snap Hutao running as administrator, you can enable this field to enable advanced features in the game launcher "),e("blockquote",null,[k,e("p",null,[t(l,{to:"/en/statements/tos.html"},{default:n(()=>[a("Snap Hutao Terms of Service")]),_:1})]),e("p",null,[e("a",H,[a("Genshin Impact Terms of Service (CN server/Chinese)"),t(i)])]),e("p",null,[e("a",G,[a("Genshin Impact Terms of Service (Oversea servers/English)"),t(i)])])])])])]),C])])}const A=c(p,[["render",B],["__file","hutao-settings.html.vue"]]);export{A as default}; +import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as u,c as d,a as e,b as a,d as t,w as n,e as r}from"./app-5a96e1e2.js";const p={},f=r('

    Software Settings

    Info

    • The following feature tutorials are introduced in-program order.

    About Snap Hutao

    This part has the following information:

    ',4),m={href:"https://space.bilibili.com/274422134",target:"_blank",rel:"noopener noreferrer"},g={class:"hint-container details"},y=e("summary",null,"Drawing Process",-1),_={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},w=e("li",null,"Snap Hutao client version",-1),b=e("li",null,"Device ID",-1),S={id:"snap-hutao-account",tabindex:"-1"},v=e("a",{class:"header-anchor",href:"#snap-hutao-account","aria-hidden":"true"},"#",-1),x=r('

    Hutao-account Snap Hutao account system is designed by DGP-Studio to provide fundamental component for cloud service such as wish history backup. Currently, you are already able to register and login to your Snap Hutao account in the settings page.

    Shell Experience

    • Create Desktop Shortcut
      • Snap Hutao will create a shortcut with Administrator privilege on user's desktop

    Appearance

    • Language

      • Snap Hutao will following system language setting by default
      • You can force to change to another language in the settings page
    • Backdrop Material

      • In this option, you can change the backdrop material of the software to
        • Acrylic
        • Mica (Windows 11 only)
        • MicaAlt (Windows 11 only)
      • The setting will take effect immediately

    Home

    • Dashboard Card
      • You can click on this option to switch display of card on Home Dashboard
        • Game Launcher
        • Wish History
        • Achievement
        • Realtime Notes

    Game

    • Game Path

      • In this field, you can modify or set your game path for Snap Hutao
      • When setting the game path, you should select game program instead of launcher program
        • Such as $\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
    • PowerShell Path

      • Snap Hutao uses PowerShell to modify Genshin Impact registry field to switch game account. This option allows user to select PowerShell path to fix issue when PowerShell path is unable to located automatically
    • Delete Game Embedded Browser Web Cache

      • When you are using web cache refresh method in the wish history feature and receiving authkey expiration error, you can try this operation to fix the error
      • Click on this field to execute the operation

    Wish History

    • In this field, you can choose to hide wish event that you do not have any record in the period in the wish export feature

    Geetest Verification

    MiYouShe uses Geetest verification to block requests not from real human operations, so some requests from Snap Hutao, such as claim check-in reward and fetch Real-time Notes data may be failed due to marked as robot operation. If you have a third party service to bypass Geetest verification, you can config this setting to pass verification parameters to service provider you used.

    Successfully config this setting will help Snap Hutao pass verification when fetching data from Real-time Notes and claiming check-in rewards, and avoid -1034 error from MiYouShe.

    Storage

    • Open Data Folder
      • Click this field to open data folder that contains user data, log, and metadata
    • Change Data Directory
      • This field allows you to change the data directory to path you want
    • Open Cache Folder
      • Click this field will open cache folder that saves image assets used by Snap Hutao
    • Reset Image Resource
      • This option allows user to reset image cache when there are too many image failed to load. The program will re-download images resource at next start-up

    Dangerous Features

    ',17),k=e("p",null,"For reference:",-1),H={href:"https://ys.mihoyo.com/main/company/agreement",target:"_blank",rel:"noopener noreferrer"},G={href:"https://genshin.hoyoverse.com/en/company/terms",target:"_blank",rel:"noopener noreferrer"},C=e("li",null,[a("Delete All Users "),e("ul",null,[e("li",null,"Execute this operation will delete all user data in Snap Hutao"),e("li",null,"Click on the field to operate, you will be asked to confirm"),e("li",null,"In most scenario, you don't need to use this field")])],-1);function B(D,I){const l=o("RouterLink"),i=o("ExternalLinkIcon"),s=o("BiliBili"),h=o("Badge");return u(),d("div",null,[f,e("ul",null,[e("li",null,[a("The icon of Snap Hutao:You can find the original image of the icon at the "),t(l,{to:"/"},{default:n(()=>[a("home page")]),_:1}),e("ul",null,[e("li",null,[a("The artist is "),e("a",m,[a("画画的芦苇 (BiliBili)"),t(i)]),e("details",g,[y,t(s,{bvid:"BV1UL411d7Py"})])]),e("li",null,[e("a",_,[a("DGP-Studio"),t(i)]),a(" is authorized by owner to use it for Snap Hutao Project")])])]),w,b]),e("h2",S,[v,a(" Snap Hutao Account "),t(h,{text:"Beta",type:"info"})]),x,e("ul",null,[e("li",null,[a("Enable Advanced Features "),e("ul",null,[e("li",null,[a("With Snap Hutao running as administrator, you can enable this field to enable advanced features in the game launcher "),e("blockquote",null,[k,e("p",null,[t(l,{to:"/en/statements/tos.html"},{default:n(()=>[a("Snap Hutao Terms of Service")]),_:1})]),e("p",null,[e("a",H,[a("Genshin Impact Terms of Service (CN server/Chinese)"),t(i)])]),e("p",null,[e("a",G,[a("Genshin Impact Terms of Service (Oversea servers/English)"),t(i)])])])])])]),C])])}const A=c(p,[["render",B],["__file","hutao-settings.html.vue"]]);export{A as default}; diff --git a/assets/hutao-settings.html-0972e72a.js b/assets/hutao-settings.html-fc06a94c.js similarity index 99% rename from assets/hutao-settings.html-0972e72a.js rename to assets/hutao-settings.html-fc06a94c.js index 70fb78caf..d02b659fc 100644 --- a/assets/hutao-settings.html-0972e72a.js +++ b/assets/hutao-settings.html-fc06a94c.js @@ -1 +1 @@ -import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as s,c,a as l,b as e,d as i,w as o,e as r}from"./app-8966c29b.js";const p={},_=r('

    软件设置

    相关信息

    • 以下内容将以胡桃工具箱内的设置功能的条目排列顺序为介绍顺序

    关于 胡桃

    该部分包含以下信息:

    ',4),m={href:"https://space.bilibili.com/274422134",target:"_blank",rel:"noopener noreferrer"},f={class:"hint-container details"},g=l("summary",null,"图标的绘制过程",-1),b={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},x=l("li",null,"胡桃的版本号",-1),S=l("li",null,"设备 ID",-1),k={id:"胡桃帐号",tabindex:"-1"},w=l("a",{class:"header-anchor",href:"#胡桃帐号","aria-hidden":"true"},"#",-1),y=r('

    Hutao-account 胡桃帐号是由 DGP-Studio 团队创建的为胡桃工具箱服务的帐号系统,以使用在会在未来提供的包括祈愿云同步在内的涉及云端服务的功能。 目前胡桃帐号已支持注册和登录,你可以在设置中点击这一选项以注册并登录你的帐号。

    Shell 体验

    • 创建快捷方式
      • 点击该按钮后胡桃将会在桌面上创建一个以管理员模式启动的快捷方式

    外观

    • 语言

      • 默认情况下胡桃会跟随系统设置来显示对应的语言
      • 使用该功能你可以强制将胡桃的显示语言设置为指定的语言
    • 背景材质

      • 在此选项中,您可以更改背景的材质为:
        • 亚克力
        • 云母 (Windows 11 特性)
        • 变种云母(Windows 11 特性)
      • 每个背景材质被选中后,您可以即时查看更改后的效果

    主页

    • 主页卡片
      • 点击该选项后,可以设置是否在主页仪表盘中显示以下卡片
        • 启动游戏
        • 祈愿记录
        • 成就管理
        • 实时便笺

    游戏

    • 游戏路径
      • 在此条目中,可以修改或设置您的游戏路径
      • 选择游戏路径时,请注意此处选择的应是游戏本身
        • 形如:$\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
    • PowerShell 路径
      • 胡桃使用 PowerShell 来修改原神相关的注册表项以实现游戏帐号切换功能。该选项允许用户手动选择 PowerShell 路径以解决部分用户使用自定义 PowerShell 版本而造成的无法定位 PowerShell 的问题
    • 删除游戏内网页缓存
      • 若您在使用祈愿记录功能时,选择使用"从缓存刷新",但频繁提示验证密钥过期,可以尝试此操作
      • 点击此选项即可执行操作

    祈愿记录

    • 在此条目中,您可以选择是否隐藏无记录的历史祈愿活动,即"没有祈愿记录的卡池"

    无感验证

    由于米游社使用了极验用于拦截非人类直接执行的请求,Snap Hutao 部分的请求(如签到和实时便笺数据更新)会被极验判定为机器人行为并造成请求失败。 如果你使用了第三方验证极验验证码的服务,则可以通过该项设置将极验生成的随机数据传递给验证服务商。

    成功配置该项设置后,Snap Hutao 在执行实时便笺自动刷新和米游社签到时会直接调用该验证服务以通过极验验证,避免米游社生成 -1034 错误。

    储存空间

    • 打开数据文件夹

      • 点击此选项,即可打开包含"用户数据/日志/元数据"的文件夹
    • 更换数据目录

      • 此选项将允许用户将数据文件夹设置到其它目录
    • 打开缓存文件夹

      • 点击此选项即可打开包含"图片缓存"的文件夹
      • 在此文件夹内,存储了胡桃工具箱在运行期间产生的图片缓存
    • 重置图片资源

      • 此选项允许用户在有大量图片下载失败的情况下重置缓存记录,执行该操作后软件会重启并重新下载图片缓存资源

    危险功能

    ',17),B=l("p",null,"参考阅读:",-1),q={href:"https://ys.mihoyo.com/main/company/agreement",target:"_blank",rel:"noopener noreferrer"},P={href:"https://genshin.hoyoverse.com/en/company/terms",target:"_blank",rel:"noopener noreferrer"},v=l("li",null,[e("删除所有用户 "),l("ul",null,[l("li",null,"此功能的作用是删除用户表的所有记录"),l("li",null,[e("点击"),l("code",null,"执行"),e("按钮即可完成删除")]),l("li",null,"通常情况下,用户不需要使用此功能来删除用户表的信息")])],-1);function G(V,I){const a=n("RouterLink"),t=n("ExternalLinkIcon"),h=n("BiliBili"),u=n("Badge");return s(),c("div",null,[_,l("ul",null,[l("li",null,[e("胡桃工具箱的图标:您可以在胡桃的"),i(a,{to:"/"},{default:o(()=>[e("首页")]),_:1}),e("查看它的原图 "),l("ul",null,[l("li",null,[e("该图像作品的作者为"),l("a",m,[e("画画的芦苇"),i(t)]),l("details",f,[g,i(h,{bvid:"BV1UL411d7Py"})])]),l("li",null,[l("a",b,[e("DGP-Studio"),i(t)]),e("已被所有者授权使用")])])]),x,S]),l("h2",k,[w,e(" 胡桃帐号 "),i(u,{text:"测试功能",type:"info"})]),y,l("ul",null,[l("li",null,[e("启用高级功能 "),l("ul",null,[l("li",null,[e("在管理员模式下,你可以通过启用这一栏设置以启用游戏启动器中的高级功能 "),l("blockquote",null,[B,l("p",null,[i(a,{to:"/zh/statements/tos.html"},{default:o(()=>[e("胡桃工具箱用户协议")]),_:1})]),l("p",null,[l("a",q,[e("原神用户协议(国服)"),i(t)])]),l("p",null,[l("a",P,[e("原神用户协议(国际服)"),i(t)])])])])])]),v])])}const D=d(p,[["render",G],["__file","hutao-settings.html.vue"]]);export{D as default}; +import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as s,c,a as l,b as e,d as i,w as o,e as r}from"./app-5a96e1e2.js";const p={},_=r('

    软件设置

    相关信息

    • 以下内容将以胡桃工具箱内的设置功能的条目排列顺序为介绍顺序

    关于 胡桃

    该部分包含以下信息:

    ',4),m={href:"https://space.bilibili.com/274422134",target:"_blank",rel:"noopener noreferrer"},f={class:"hint-container details"},g=l("summary",null,"图标的绘制过程",-1),b={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},x=l("li",null,"胡桃的版本号",-1),S=l("li",null,"设备 ID",-1),k={id:"胡桃帐号",tabindex:"-1"},w=l("a",{class:"header-anchor",href:"#胡桃帐号","aria-hidden":"true"},"#",-1),y=r('

    Hutao-account 胡桃帐号是由 DGP-Studio 团队创建的为胡桃工具箱服务的帐号系统,以使用在会在未来提供的包括祈愿云同步在内的涉及云端服务的功能。 目前胡桃帐号已支持注册和登录,你可以在设置中点击这一选项以注册并登录你的帐号。

    Shell 体验

    • 创建快捷方式
      • 点击该按钮后胡桃将会在桌面上创建一个以管理员模式启动的快捷方式

    外观

    • 语言

      • 默认情况下胡桃会跟随系统设置来显示对应的语言
      • 使用该功能你可以强制将胡桃的显示语言设置为指定的语言
    • 背景材质

      • 在此选项中,您可以更改背景的材质为:
        • 亚克力
        • 云母 (Windows 11 特性)
        • 变种云母(Windows 11 特性)
      • 每个背景材质被选中后,您可以即时查看更改后的效果

    主页

    • 主页卡片
      • 点击该选项后,可以设置是否在主页仪表盘中显示以下卡片
        • 启动游戏
        • 祈愿记录
        • 成就管理
        • 实时便笺

    游戏

    • 游戏路径
      • 在此条目中,可以修改或设置您的游戏路径
      • 选择游戏路径时,请注意此处选择的应是游戏本身
        • 形如:$\\Genshin Impact\\Genshin Impact Game\\YuanShen.exe
    • PowerShell 路径
      • 胡桃使用 PowerShell 来修改原神相关的注册表项以实现游戏帐号切换功能。该选项允许用户手动选择 PowerShell 路径以解决部分用户使用自定义 PowerShell 版本而造成的无法定位 PowerShell 的问题
    • 删除游戏内网页缓存
      • 若您在使用祈愿记录功能时,选择使用"从缓存刷新",但频繁提示验证密钥过期,可以尝试此操作
      • 点击此选项即可执行操作

    祈愿记录

    • 在此条目中,您可以选择是否隐藏无记录的历史祈愿活动,即"没有祈愿记录的卡池"

    无感验证

    由于米游社使用了极验用于拦截非人类直接执行的请求,Snap Hutao 部分的请求(如签到和实时便笺数据更新)会被极验判定为机器人行为并造成请求失败。 如果你使用了第三方验证极验验证码的服务,则可以通过该项设置将极验生成的随机数据传递给验证服务商。

    成功配置该项设置后,Snap Hutao 在执行实时便笺自动刷新和米游社签到时会直接调用该验证服务以通过极验验证,避免米游社生成 -1034 错误。

    储存空间

    • 打开数据文件夹

      • 点击此选项,即可打开包含"用户数据/日志/元数据"的文件夹
    • 更换数据目录

      • 此选项将允许用户将数据文件夹设置到其它目录
    • 打开缓存文件夹

      • 点击此选项即可打开包含"图片缓存"的文件夹
      • 在此文件夹内,存储了胡桃工具箱在运行期间产生的图片缓存
    • 重置图片资源

      • 此选项允许用户在有大量图片下载失败的情况下重置缓存记录,执行该操作后软件会重启并重新下载图片缓存资源

    危险功能

    ',17),B=l("p",null,"参考阅读:",-1),q={href:"https://ys.mihoyo.com/main/company/agreement",target:"_blank",rel:"noopener noreferrer"},P={href:"https://genshin.hoyoverse.com/en/company/terms",target:"_blank",rel:"noopener noreferrer"},v=l("li",null,[e("删除所有用户 "),l("ul",null,[l("li",null,"此功能的作用是删除用户表的所有记录"),l("li",null,[e("点击"),l("code",null,"执行"),e("按钮即可完成删除")]),l("li",null,"通常情况下,用户不需要使用此功能来删除用户表的信息")])],-1);function G(V,I){const a=n("RouterLink"),t=n("ExternalLinkIcon"),h=n("BiliBili"),u=n("Badge");return s(),c("div",null,[_,l("ul",null,[l("li",null,[e("胡桃工具箱的图标:您可以在胡桃的"),i(a,{to:"/"},{default:o(()=>[e("首页")]),_:1}),e("查看它的原图 "),l("ul",null,[l("li",null,[e("该图像作品的作者为"),l("a",m,[e("画画的芦苇"),i(t)]),l("details",f,[g,i(h,{bvid:"BV1UL411d7Py"})])]),l("li",null,[l("a",b,[e("DGP-Studio"),i(t)]),e("已被所有者授权使用")])])]),x,S]),l("h2",k,[w,e(" 胡桃帐号 "),i(u,{text:"测试功能",type:"info"})]),y,l("ul",null,[l("li",null,[e("启用高级功能 "),l("ul",null,[l("li",null,[e("在管理员模式下,你可以通过启用这一栏设置以启用游戏启动器中的高级功能 "),l("blockquote",null,[B,l("p",null,[i(a,{to:"/zh/statements/tos.html"},{default:o(()=>[e("胡桃工具箱用户协议")]),_:1})]),l("p",null,[l("a",q,[e("原神用户协议(国服)"),i(t)])]),l("p",null,[l("a",P,[e("原神用户协议(国际服)"),i(t)])])])])])]),v])])}const D=d(p,[["render",G],["__file","hutao-settings.html.vue"]]);export{D as default}; diff --git a/assets/i18n.html-36f51d1e.js b/assets/i18n.html-0cf3ba2c.js similarity index 98% rename from assets/i18n.html-36f51d1e.js rename to assets/i18n.html-0cf3ba2c.js index db4fa31d3..54a85d6ef 100644 --- a/assets/i18n.html-36f51d1e.js +++ b/assets/i18n.html-0cf3ba2c.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as k,a as l,b as e,d as s,e as d}from"./app-8966c29b.js";const b={},o=d('

    国际化支持

    国际化进度

    Snap Hutao 虽然基于原神国服提供功能,但项目也有意提升国际化支持,包括语言本土化和功能国际化。目前国际化进度如下:

    • Snap Hutao 主项目
        • 进度:Crowdin
    • Snap Hutao 文档
      • 进度:

    参与国际化

    ',5),n=l("code",null,"[Hoyolab]: Globalization support",-1),m={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/144",target:"_blank",rel:"noopener noreferrer"},h=l("ul",null,[l("li",null,"我们会在该 Issue 中更新当前主程序国际化进度"),l("li",null,[e("你可以在这里宣布参与主程序某一部分的国际化支持,我们会为此提供支持 "),l("ul",null,[l("li",null,"我们也欢迎直接通过分支发起 Pull Request")])])],-1),r={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},u=l("li",null,"开发团队正在维护中文文档并完善英文文档",-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},x=l("li",null,[e("如果你计划为一个新的语言翻译文档,你可以创建一个英文文档目录("),l("code",null,"en"),e("目录)的副本然后以 [ISO 639-1 语言代码]命名 "),l("ul",null,[l("li",null,[e("比如说日语文档目录应命名为 "),l("code",null,"jp")]),l("li",null,[e("不要基于中文文档("),l("code",null,"zh"),e(")翻译,因为其中有一些内容是专门有效于中文用户的;对于国际用户而言并不是有用的。")])])],-1);function f(_,y){const t=i("ExternalLinkIcon");return c(),k("div",null,[o,l("ul",null,[l("li",null,[e("Snap Hutao 主项目 "),l("ul",null,[l("li",null,[e("我们在 GitHub 上创建了一个名为 "),n,e(" 的 "),l("a",m,[e("Issue"),s(t)]),h]),l("li",null,[l("strong",null,[e("你可以在 "),l("a",r,[e("translate.hut.ao"),s(t)]),e(" 参与客户端的翻译工作")])])])]),l("li",null,[e("Snap Hutao 文档 "),l("ul",null,[u,l("li",null,[e("你可以克隆"),l("a",p,[e("文档库"),s(t)]),e(",在你自己的库中使用你喜欢的工具翻译文档,之后创建一个 PR 来将你的作品提交到文档库中")]),x])])])])}const H=a(b,[["render",f],["__file","i18n.html.vue"]]);export{H as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as k,a as l,b as e,d as s,e as d}from"./app-5a96e1e2.js";const b={},o=d('

    国际化支持

    国际化进度

    Snap Hutao 虽然基于原神国服提供功能,但项目也有意提升国际化支持,包括语言本土化和功能国际化。目前国际化进度如下:

    • Snap Hutao 主项目
        • 进度:Crowdin
    • Snap Hutao 文档
      • 进度:

    参与国际化

    ',5),n=l("code",null,"[Hoyolab]: Globalization support",-1),m={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/144",target:"_blank",rel:"noopener noreferrer"},h=l("ul",null,[l("li",null,"我们会在该 Issue 中更新当前主程序国际化进度"),l("li",null,[e("你可以在这里宣布参与主程序某一部分的国际化支持,我们会为此提供支持 "),l("ul",null,[l("li",null,"我们也欢迎直接通过分支发起 Pull Request")])])],-1),r={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},u=l("li",null,"开发团队正在维护中文文档并完善英文文档",-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},x=l("li",null,[e("如果你计划为一个新的语言翻译文档,你可以创建一个英文文档目录("),l("code",null,"en"),e("目录)的副本然后以 [ISO 639-1 语言代码]命名 "),l("ul",null,[l("li",null,[e("比如说日语文档目录应命名为 "),l("code",null,"jp")]),l("li",null,[e("不要基于中文文档("),l("code",null,"zh"),e(")翻译,因为其中有一些内容是专门有效于中文用户的;对于国际用户而言并不是有用的。")])])],-1);function f(_,y){const t=i("ExternalLinkIcon");return c(),k("div",null,[o,l("ul",null,[l("li",null,[e("Snap Hutao 主项目 "),l("ul",null,[l("li",null,[e("我们在 GitHub 上创建了一个名为 "),n,e(" 的 "),l("a",m,[e("Issue"),s(t)]),h]),l("li",null,[l("strong",null,[e("你可以在 "),l("a",r,[e("translate.hut.ao"),s(t)]),e(" 参与客户端的翻译工作")])])])]),l("li",null,[e("Snap Hutao 文档 "),l("ul",null,[u,l("li",null,[e("你可以克隆"),l("a",p,[e("文档库"),s(t)]),e(",在你自己的库中使用你喜欢的工具翻译文档,之后创建一个 PR 来将你的作品提交到文档库中")]),x])])])])}const H=a(b,[["render",f],["__file","i18n.html.vue"]]);export{H as default}; diff --git a/assets/i18n.html-6ae0b651.js b/assets/i18n.html-ea3f12cc.js similarity index 98% rename from assets/i18n.html-6ae0b651.js rename to assets/i18n.html-ea3f12cc.js index 99263c8f8..57d6541eb 100644 --- a/assets/i18n.html-6ae0b651.js +++ b/assets/i18n.html-ea3f12cc.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as o,a as e,b as l,d as a,e as n}from"./app-8966c29b.js";const r={},d=n('

    Localization

    Localization Process

    Snap Hutao Project features were originally based on the China server, but we are also trying to expand the coverage globally through the support of the MiHoYo global gaming server & software localization.Currently, our localization process includes:

    • Snap Hutao
        • Process: Crowdin
    • Snao Hutao Docs
      • Process:

    Engage our Localization

    ',5),k=e("code",null,"[Hoyolab] on GitHub: Globalization support",-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/144",target:"_blank",rel:"noopener noreferrer"},h=e("ul",null,[e("li",null,"We will update our process in this thread"),e("li",null,[l("You can declare your localization engagement in the thread, and we will provide the necessary support "),e("ul",null,[e("li",null,"We also welcome PR directly")])])],-1),m={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},u=e("li",null,"The developer team is maintaining Chinese documents and working on English documents",-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},f=e("code",null,"en",-1),x={href:"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes",target:"_blank",rel:"noopener noreferrer"},g=e("ul",null,[e("li",null,[l("For example "),e("code",null,"jp"),l(" as Japanese")]),e("li",null,[l("Do not translate based on Chinese docs ("),e("code",null,"zh"),l(") as there are some content only specific useful for Chinese users; they are not useful for international users.")])],-1);function y(_,w){const t=i("ExternalLinkIcon");return c(),o("div",null,[d,e("ul",null,[e("li",null,[l("Snap Hutao "),e("ul",null,[e("li",null,[l("We created an issue thread named "),k,l(),e("a",b,[l("Issue"),a(t)]),h]),e("li",null,[e("strong",null,[l("You can provide your translation at "),e("a",m,[l("translate.hut.ao"),a(t)])])])])]),e("li",null,[l("Snap Hutao Docs "),e("ul",null,[u,e("li",null,[l("You can clone the "),e("a",p,[l("docs repository"),a(t)]),l(", translate docs with your favorite tools, and make a Pull Request to contribute your work to the main repository")]),e("li",null,[l("If you are adding a new language, you can copy the entire "),f,l(" folder and rename it with "),e("a",x,[l("ISO 639-1 language code"),a(t)]),g])])])])])}const H=s(r,[["render",y],["__file","i18n.html.vue"]]);export{H as default}; +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as o,a as e,b as l,d as a,e as n}from"./app-5a96e1e2.js";const r={},d=n('

    Localization

    Localization Process

    Snap Hutao Project features were originally based on the China server, but we are also trying to expand the coverage globally through the support of the MiHoYo global gaming server & software localization.Currently, our localization process includes:

    • Snap Hutao
        • Process: Crowdin
    • Snao Hutao Docs
      • Process:

    Engage our Localization

    ',5),k=e("code",null,"[Hoyolab] on GitHub: Globalization support",-1),b={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/144",target:"_blank",rel:"noopener noreferrer"},h=e("ul",null,[e("li",null,"We will update our process in this thread"),e("li",null,[l("You can declare your localization engagement in the thread, and we will provide the necessary support "),e("ul",null,[e("li",null,"We also welcome PR directly")])])],-1),m={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},u=e("li",null,"The developer team is maintaining Chinese documents and working on English documents",-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},f=e("code",null,"en",-1),x={href:"https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes",target:"_blank",rel:"noopener noreferrer"},g=e("ul",null,[e("li",null,[l("For example "),e("code",null,"jp"),l(" as Japanese")]),e("li",null,[l("Do not translate based on Chinese docs ("),e("code",null,"zh"),l(") as there are some content only specific useful for Chinese users; they are not useful for international users.")])],-1);function y(_,w){const t=i("ExternalLinkIcon");return c(),o("div",null,[d,e("ul",null,[e("li",null,[l("Snap Hutao "),e("ul",null,[e("li",null,[l("We created an issue thread named "),k,l(),e("a",b,[l("Issue"),a(t)]),h]),e("li",null,[e("strong",null,[l("You can provide your translation at "),e("a",m,[l("translate.hut.ao"),a(t)])])])])]),e("li",null,[l("Snap Hutao Docs "),e("ul",null,[u,e("li",null,[l("You can clone the "),e("a",p,[l("docs repository"),a(t)]),l(", translate docs with your favorite tools, and make a Pull Request to contribute your work to the main repository")]),e("li",null,[l("If you are adding a new language, you can copy the entire "),f,l(" folder and rename it with "),e("a",x,[l("ISO 639-1 language code"),a(t)]),g])])])])])}const H=s(r,[["render",y],["__file","i18n.html.vue"]]);export{H as default}; diff --git a/assets/index.html-97c29d40.js b/assets/index.html-1b5b714a.js similarity index 85% rename from assets/index.html-97c29d40.js rename to assets/index.html-1b5b714a.js index a5ffeb834..3fcdd48ca 100644 --- a/assets/index.html-97c29d40.js +++ b/assets/index.html-1b5b714a.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-8966c29b.js";const d={},_=e("h1",{id:"功能指南",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#功能指南","aria-hidden":"true"},"#"),s(" 功能指南")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-5a96e1e2.js";const d={},_=e("h1",{id:"功能指南",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#功能指南","aria-hidden":"true"},"#"),s(" 功能指南")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; diff --git a/assets/index.html-c63d8593.js b/assets/index.html-1c71d3f9.js similarity index 85% rename from assets/index.html-c63d8593.js rename to assets/index.html-1c71d3f9.js index ae5655728..38fc9affb 100644 --- a/assets/index.html-c63d8593.js +++ b/assets/index.html-1c71d3f9.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-8966c29b.js";const d={},_=e("h1",{id:"开源开发",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#开源开发","aria-hidden":"true"},"#"),s(" 开源开发")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-5a96e1e2.js";const d={},_=e("h1",{id:"开源开发",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#开源开发","aria-hidden":"true"},"#"),s(" 开源开发")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; diff --git a/assets/index.html-25a8e1be.js b/assets/index.html-41a05330.js similarity index 85% rename from assets/index.html-25a8e1be.js rename to assets/index.html-41a05330.js index c9bd73945..9c66b2a16 100644 --- a/assets/index.html-25a8e1be.js +++ b/assets/index.html-41a05330.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-8966c29b.js";const d={},_=e("h1",{id:"声明和公告",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#声明和公告","aria-hidden":"true"},"#"),s(" 声明和公告")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-5a96e1e2.js";const d={},_=e("h1",{id:"声明和公告",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#声明和公告","aria-hidden":"true"},"#"),s(" 声明和公告")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; diff --git a/assets/index.html-cead7bed.js b/assets/index.html-45dede9b.js similarity index 96% rename from assets/index.html-cead7bed.js rename to assets/index.html-45dede9b.js index 57ba87b9c..1c6e0fb65 100644 --- a/assets/index.html-cead7bed.js +++ b/assets/index.html-45dede9b.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as i,a as t,b as o,d as e,w as c}from"./app-8966c29b.js";const u={},h=t("h2",{id:"contribute",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#contribute","aria-hidden":"true"},"#"),o(" Contribute")],-1),d=t("p",null,"Snap Hutao is a free software maintained by open-source community, and we hope more players with same ambitions can join together to provide more features to the community.",-1),p=t("p",null,"You can make contribution by the following ways:",-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao/pulls",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},g=t("p",null,[t("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},b=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},w=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),S=t("li",null,[o("Rate our App on "),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),k=t("li",null,"Promote our project in your network",-1),H=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),o(),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),v={style:{"text-align":"center"}},x=t("h2",{id:"sponsorship",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#sponsorship","aria-hidden":"true"},"#"),o(" Sponsorship")],-1),D=t("p",null,"Snap Hutao is currently using sponsored software from the following service providers.",-1),P={href:"https://www.netlify.com/",target:"_blank",rel:"noopener noreferrer"},G=t("img",{src:"https://www.netlify.com/v3/img/components/netlify-light.svg",alt:"",loading:"lazy"},null,-1),z={href:"https://crowdin.com/",target:"_blank",rel:"noopener noreferrer"},j=t("img",{src:"https://badges.crowdin.net/badge/light/crowdin-on-dark.png",alt:"",loading:"lazy"},null,-1),L={href:"https://gitlab.cn/",target:"_blank",rel:"noopener noreferrer"},N=t("img",{src:"https://gitlab.cn/images/icons/logos/logo-121-75.svg",alt:"",loading:"lazy"},null,-1);function C(I,R){const n=l("ExternalLinkIcon"),s=l("RouterLink");return r(),i("div",null,[h,d,p,t("ol",null,[t("li",null,[t("a",_,[o("Make Pull Requests to our code"),e(n)])]),t("li",null,[o("Translate the project for a better "),e(s,{to:"/en/i18n.html"},{default:c(()=>[o("localization")]),_:1})]),t("li",null,[t("a",m,[o("Update document"),e(n)])])]),g,t("ul",null,[t("li",null,[o("Star our project on GitHub ⭐ "),t("ul",null,[t("li",null,[t("a",f,[o("Snap.Hutao"),e(n)]),o(),b]),t("li",null,[t("a",y,[o("Snap.Hutao.Docs"),e(n)]),o(),w])])]),S,k]),H,t("div",v,[x,D,t("table",null,[t("thead",null,[t("tr",null,[t("th",null,[t("a",P,[G,e(n)])]),t("th",null,[t("a",z,[j,e(n)])]),t("th",null,[t("a",L,[N,e(n)])])])])])])])}const V=a(u,[["render",C],["__file","index.html.vue"]]);export{V as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as i,a as t,b as o,d as e,w as c}from"./app-5a96e1e2.js";const u={},h=t("h2",{id:"contribute",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#contribute","aria-hidden":"true"},"#"),o(" Contribute")],-1),d=t("p",null,"Snap Hutao is a free software maintained by open-source community, and we hope more players with same ambitions can join together to provide more features to the community.",-1),p=t("p",null,"You can make contribution by the following ways:",-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao/pulls",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},g=t("p",null,[t("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},b=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},w=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),S=t("li",null,[o("Rate our App on "),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),k=t("li",null,"Promote our project in your network",-1),H=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),o(),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),v={style:{"text-align":"center"}},x=t("h2",{id:"sponsorship",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#sponsorship","aria-hidden":"true"},"#"),o(" Sponsorship")],-1),D=t("p",null,"Snap Hutao is currently using sponsored software from the following service providers.",-1),P={href:"https://www.netlify.com/",target:"_blank",rel:"noopener noreferrer"},G=t("img",{src:"https://www.netlify.com/v3/img/components/netlify-light.svg",alt:"",loading:"lazy"},null,-1),z={href:"https://crowdin.com/",target:"_blank",rel:"noopener noreferrer"},j=t("img",{src:"https://badges.crowdin.net/badge/light/crowdin-on-dark.png",alt:"",loading:"lazy"},null,-1),L={href:"https://gitlab.cn/",target:"_blank",rel:"noopener noreferrer"},N=t("img",{src:"https://gitlab.cn/images/icons/logos/logo-121-75.svg",alt:"",loading:"lazy"},null,-1);function C(I,R){const n=l("ExternalLinkIcon"),s=l("RouterLink");return r(),i("div",null,[h,d,p,t("ol",null,[t("li",null,[t("a",_,[o("Make Pull Requests to our code"),e(n)])]),t("li",null,[o("Translate the project for a better "),e(s,{to:"/en/i18n.html"},{default:c(()=>[o("localization")]),_:1})]),t("li",null,[t("a",m,[o("Update document"),e(n)])])]),g,t("ul",null,[t("li",null,[o("Star our project on GitHub ⭐ "),t("ul",null,[t("li",null,[t("a",f,[o("Snap.Hutao"),e(n)]),o(),b]),t("li",null,[t("a",y,[o("Snap.Hutao.Docs"),e(n)]),o(),w])])]),S,k]),H,t("div",v,[x,D,t("table",null,[t("thead",null,[t("tr",null,[t("th",null,[t("a",P,[G,e(n)])]),t("th",null,[t("a",z,[j,e(n)])]),t("th",null,[t("a",L,[N,e(n)])])])])])])])}const V=a(u,[["render",C],["__file","index.html.vue"]]);export{V as default}; diff --git a/assets/index.html-e4c3aa9e.js b/assets/index.html-619b8ca3.js similarity index 92% rename from assets/index.html-e4c3aa9e.js rename to assets/index.html-619b8ca3.js index 6684ae28c..c8f028ccd 100644 --- a/assets/index.html-e4c3aa9e.js +++ b/assets/index.html-619b8ca3.js @@ -1 +1 @@ -import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{f as u,o as _,c as m,a as p}from"./app-8966c29b.js";const g=p("p",null,"Redirecting to the correct locale...",-1),$=[g],z={__name:"index.html",setup(x){return u(()=>{const{languages:c}=window.navigator,{hash:l,origin:o}=window.location,e=l.substring(1),r={0:["/en/",["en-US","en-UK","en"]],1:["/zh/",["zh-CN","zh-TW","zh"]],"/zh/":["zh-CN"],"/en/":["en-US"]},t=["/en/","/zh/"],a=t.pop();let n=null;e:for(const h of c)for(const[i,f]of Object.entries(r))if(f.includes(h)){if(!t.includes(i))continue;n=i;break e}const s=a?`${o}${a}${e?`#${e}`:""}`:null;n&&t.includes(n)?location.href=`${o}${n}${e?`#${e}`:""}`:s?location.href=s:location.href=`${o}/404.html`}),(c,l)=>(_(),m("div",null,$))}},v=d(z,[["__file","index.html.vue"]]);export{v as default}; +import{_ as d}from"./plugin-vue_export-helper-c27b6911.js";import{f as u,o as _,c as m,a as p}from"./app-5a96e1e2.js";const g=p("p",null,"Redirecting to the correct locale...",-1),$=[g],z={__name:"index.html",setup(x){return u(()=>{const{languages:c}=window.navigator,{hash:l,origin:o}=window.location,e=l.substring(1),r={0:["/en/",["en-US","en-UK","en"]],1:["/zh/",["zh-CN","zh-TW","zh"]],"/zh/":["zh-CN"],"/en/":["en-US"]},t=["/en/","/zh/"],a=t.pop();let n=null;e:for(const h of c)for(const[i,f]of Object.entries(r))if(f.includes(h)){if(!t.includes(i))continue;n=i;break e}const s=a?`${o}${a}${e?`#${e}`:""}`:null;n&&t.includes(n)?location.href=`${o}${n}${e?`#${e}`:""}`:s?location.href=s:location.href=`${o}/404.html`}),(c,l)=>(_(),m("div",null,$))}},v=d(z,[["__file","index.html.vue"]]);export{v as default}; diff --git a/assets/index.html-9b2dfc89.js b/assets/index.html-7cc8179e.js similarity index 84% rename from assets/index.html-9b2dfc89.js rename to assets/index.html-7cc8179e.js index 4ce4dd701..84ddbe5eb 100644 --- a/assets/index.html-9b2dfc89.js +++ b/assets/index.html-7cc8179e.js @@ -1 +1 @@ -import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as n,c,d as r,a as e,b as d}from"./app-8966c29b.js";const s={},_=e("h1",{id:"advanced",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#advanced","aria-hidden":"true"},"#"),d(" Advanced")],-1);function i(l,m){const a=t("AutoCatalog");return n(),c("div",null,[_,r(a)])}const u=o(s,[["render",i],["__file","index.html.vue"]]);export{u as default}; +import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as n,c,d as r,a as e,b as d}from"./app-5a96e1e2.js";const s={},_=e("h1",{id:"advanced",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#advanced","aria-hidden":"true"},"#"),d(" Advanced")],-1);function i(l,m){const a=t("AutoCatalog");return n(),c("div",null,[_,r(a)])}const u=o(s,[["render",i],["__file","index.html.vue"]]);export{u as default}; diff --git a/assets/index.html-07883274.js b/assets/index.html-8ee577f1.js similarity index 84% rename from assets/index.html-07883274.js rename to assets/index.html-8ee577f1.js index d1b5ea08d..42f47f266 100644 --- a/assets/index.html-07883274.js +++ b/assets/index.html-8ee577f1.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-8966c29b.js";const d={},_=e("h1",{id:"高级",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#高级","aria-hidden":"true"},"#"),s(" 高级")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as r,c as n,d as c,a as e,b as s}from"./app-5a96e1e2.js";const d={},_=e("h1",{id:"高级",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#高级","aria-hidden":"true"},"#"),s(" 高级")],-1);function i(l,m){const o=a("AutoCatalog");return r(),n("div",null,[_,c(o)])}const u=t(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; diff --git a/assets/index.html-0c692529.js b/assets/index.html-a55c6bb9.js similarity index 86% rename from assets/index.html-0c692529.js rename to assets/index.html-a55c6bb9.js index 307e49fff..34d0ccc89 100644 --- a/assets/index.html-0c692529.js +++ b/assets/index.html-a55c6bb9.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as n,c as r,d as c,a as e,b as s}from"./app-8966c29b.js";const d={},l=e("h1",{id:"open-source-development",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#open-source-development","aria-hidden":"true"},"#"),s(" Open Source Development")],-1);function _(i,m){const o=a("AutoCatalog");return n(),r("div",null,[l,c(o)])}const f=t(d,[["render",_],["__file","index.html.vue"]]);export{f as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as n,c as r,d as c,a as e,b as s}from"./app-5a96e1e2.js";const d={},l=e("h1",{id:"open-source-development",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#open-source-development","aria-hidden":"true"},"#"),s(" Open Source Development")],-1);function _(i,m){const o=a("AutoCatalog");return n(),r("div",null,[l,c(o)])}const f=t(d,[["render",_],["__file","index.html.vue"]]);export{f as default}; diff --git a/assets/index.html-08181d34.js b/assets/index.html-b2424ddd.js similarity index 96% rename from assets/index.html-08181d34.js rename to assets/index.html-b2424ddd.js index 0365f549e..62b5d0963 100644 --- a/assets/index.html-08181d34.js +++ b/assets/index.html-b2424ddd.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as i,c as r,a as t,b as o,d as e,w as c}from"./app-8966c29b.js";const h={},d=t("h2",{id:"贡献",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#贡献","aria-hidden":"true"},"#"),o(" 贡献")],-1),_=t("p",null,"Snap Hutao 是一个由开源社区维护的免费项目,我们希望有更多志同道合的开发者能参与到项目中,为 Snap Hutao 带来更多的功能。",-1),u=t("p",null,"你可以通过以下方法为项目作出贡献:",-1),g={href:"https://github.com/DGP-Studio/Snap.Hutao/pulls",target:"_blank",rel:"noopener noreferrer"},p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},m=t("p",null,[t("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},b=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},S=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),H=t("li",null,[o("在"),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),o("上给出好评")],-1),x=t("li",null,"在更多的地方帮助我们宣传",-1),k=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),w={style:{"text-align":"center"}},D=t("h2",{id:"赞助商",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#赞助商","aria-hidden":"true"},"#"),o(" 赞助商")],-1),P=t("p",null,"Snap Hutao 目前使用了以下软件厂商赞助的服务",-1),v={style:{"text-align":"center"}},G={href:"https://www.netlify.com/",target:"_blank",rel:"noopener noreferrer"},z=t("img",{src:"https://www.netlify.com/v3/img/components/netlify-light.svg",alt:"",loading:"lazy"},null,-1),L={style:{"text-align":"center"}},N={href:"https://crowdin.com/",target:"_blank",rel:"noopener noreferrer"},B=t("img",{src:"https://badges.crowdin.net/badge/light/crowdin-on-dark.png",alt:"",loading:"lazy"},null,-1),C={style:{"text-align":"center"}},E={href:"https://gitlab.cn/",target:"_blank",rel:"noopener noreferrer"},I=t("img",{src:"https://gitlab.cn/images/icons/logos/logo-121-75.svg",alt:"",loading:"lazy"},null,-1);function R(V,J){const n=l("ExternalLinkIcon"),s=l("RouterLink");return i(),r("div",null,[d,_,u,t("ol",null,[t("li",null,[t("a",g,[o("向我们提交 PR"),e(n)])]),t("li",null,[o("为项目贡献"),e(s,{to:"/zh/i18n.html"},{default:c(()=>[o("本地化翻译")]),_:1})]),t("li",null,[t("a",p,[o("为我们更新文档"),e(n)])])]),m,t("ul",null,[t("li",null,[o("为我们在 GitHub 上的项目加星点赞 ⭐ "),t("ul",null,[t("li",null,[t("a",f,[o("Snap.Hutao"),e(n)]),o(),b]),t("li",null,[t("a",y,[o("Snap.Hutao.Docs"),e(n)]),o(),S])])]),H,x]),k,t("div",w,[D,P,t("table",null,[t("thead",null,[t("tr",null,[t("th",v,[t("a",G,[z,e(n)])]),t("th",L,[t("a",N,[B,e(n)])]),t("th",C,[t("a",E,[I,e(n)])])])])])])])}const j=a(h,[["render",R],["__file","index.html.vue"]]);export{j as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as i,c as r,a as t,b as o,d as e,w as c}from"./app-5a96e1e2.js";const h={},d=t("h2",{id:"贡献",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#贡献","aria-hidden":"true"},"#"),o(" 贡献")],-1),_=t("p",null,"Snap Hutao 是一个由开源社区维护的免费项目,我们希望有更多志同道合的开发者能参与到项目中,为 Snap Hutao 带来更多的功能。",-1),u=t("p",null,"你可以通过以下方法为项目作出贡献:",-1),g={href:"https://github.com/DGP-Studio/Snap.Hutao/pulls",target:"_blank",rel:"noopener noreferrer"},p={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},m=t("p",null,[t("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},b=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},S=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),H=t("li",null,[o("在"),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),o("上给出好评")],-1),x=t("li",null,"在更多的地方帮助我们宣传",-1),k=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1),w={style:{"text-align":"center"}},D=t("h2",{id:"赞助商",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#赞助商","aria-hidden":"true"},"#"),o(" 赞助商")],-1),P=t("p",null,"Snap Hutao 目前使用了以下软件厂商赞助的服务",-1),v={style:{"text-align":"center"}},G={href:"https://www.netlify.com/",target:"_blank",rel:"noopener noreferrer"},z=t("img",{src:"https://www.netlify.com/v3/img/components/netlify-light.svg",alt:"",loading:"lazy"},null,-1),L={style:{"text-align":"center"}},N={href:"https://crowdin.com/",target:"_blank",rel:"noopener noreferrer"},B=t("img",{src:"https://badges.crowdin.net/badge/light/crowdin-on-dark.png",alt:"",loading:"lazy"},null,-1),C={style:{"text-align":"center"}},E={href:"https://gitlab.cn/",target:"_blank",rel:"noopener noreferrer"},I=t("img",{src:"https://gitlab.cn/images/icons/logos/logo-121-75.svg",alt:"",loading:"lazy"},null,-1);function R(V,J){const n=l("ExternalLinkIcon"),s=l("RouterLink");return i(),r("div",null,[d,_,u,t("ol",null,[t("li",null,[t("a",g,[o("向我们提交 PR"),e(n)])]),t("li",null,[o("为项目贡献"),e(s,{to:"/zh/i18n.html"},{default:c(()=>[o("本地化翻译")]),_:1})]),t("li",null,[t("a",p,[o("为我们更新文档"),e(n)])])]),m,t("ul",null,[t("li",null,[o("为我们在 GitHub 上的项目加星点赞 ⭐ "),t("ul",null,[t("li",null,[t("a",f,[o("Snap.Hutao"),e(n)]),o(),b]),t("li",null,[t("a",y,[o("Snap.Hutao.Docs"),e(n)]),o(),S])])]),H,x]),k,t("div",w,[D,P,t("table",null,[t("thead",null,[t("tr",null,[t("th",v,[t("a",G,[z,e(n)])]),t("th",L,[t("a",N,[B,e(n)])]),t("th",C,[t("a",E,[I,e(n)])])])])])])])}const j=a(h,[["render",R],["__file","index.html.vue"]]);export{j as default}; diff --git a/assets/index.html-99346794.js b/assets/index.html-d56d80a3.js similarity index 85% rename from assets/index.html-99346794.js rename to assets/index.html-d56d80a3.js index 00cfa64c2..eb14fa40d 100644 --- a/assets/index.html-99346794.js +++ b/assets/index.html-d56d80a3.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as n,c as s,d as r,a as e,b as c}from"./app-8966c29b.js";const d={},_=e("h1",{id:"statements",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#statements","aria-hidden":"true"},"#"),c(" Statements")],-1);function i(l,m){const t=o("AutoCatalog");return n(),s("div",null,[_,r(t)])}const u=a(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as n,c as s,d as r,a as e,b as c}from"./app-5a96e1e2.js";const d={},_=e("h1",{id:"statements",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#statements","aria-hidden":"true"},"#"),c(" Statements")],-1);function i(l,m){const t=o("AutoCatalog");return n(),s("div",null,[_,r(t)])}const u=a(d,[["render",i],["__file","index.html.vue"]]);export{u as default}; diff --git a/assets/index.html-f72bced7.js b/assets/index.html-f7d0e723.js similarity index 85% rename from assets/index.html-f72bced7.js rename to assets/index.html-f7d0e723.js index fbe82d2e5..e91d0322b 100644 --- a/assets/index.html-f72bced7.js +++ b/assets/index.html-f7d0e723.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as r,c as s,d as n,a as e,b as c}from"./app-8966c29b.js";const d={},_=e("h1",{id:"features",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#features","aria-hidden":"true"},"#"),c(" Features")],-1);function i(l,f){const t=o("AutoCatalog");return r(),s("div",null,[_,n(t)])}const h=a(d,[["render",i],["__file","index.html.vue"]]);export{h as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as r,c as s,d as n,a as e,b as c}from"./app-5a96e1e2.js";const d={},_=e("h1",{id:"features",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#features","aria-hidden":"true"},"#"),c(" Features")],-1);function i(l,f){const t=o("AutoCatalog");return r(),s("div",null,[_,n(t)])}const h=a(d,[["render",i],["__file","index.html.vue"]]);export{h as default}; diff --git a/assets/known-issue.html-7adae529.js b/assets/known-issue.html-6e4b2dbb.js similarity index 96% rename from assets/known-issue.html-7adae529.js rename to assets/known-issue.html-6e4b2dbb.js index 505ae770d..18d102e3d 100644 --- a/assets/known-issue.html-7adae529.js +++ b/assets/known-issue.html-6e4b2dbb.js @@ -1 +1 @@ -import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as u,a as e,b as t,d as n}from"./app-8966c29b.js";const a={},i=e("h1",{id:"known-issue",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#known-issue","aria-hidden":"true"},"#"),t(" Known Issue")],-1),d={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue",target:"_blank",rel:"noopener noreferrer"},c=e("thead",null,[e("tr",null,[e("th",null,"Category"),e("th",null,"Flag")])],-1),h={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3ABUG+is%3Aopen",target:"_blank",rel:"noopener noreferrer"},_=e("td",null,[t("Labeled with "),e("code",null,"BUG")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aopen+is%3Aissue+label%3A%E5%8A%9F%E8%83%BD",target:"_blank",rel:"noopener noreferrer"},b=e("td",null,[t("Labeled with "),e("code",null,"功能"),t(" (Feature)")],-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E5%B7%B2%E4%BF%AE%E5%A4%8D",target:"_blank",rel:"noopener noreferrer"},A=e("td",null,[t("Labeled with "),e("code",null,"已修复"),t(" (Fixed)")],-1),m={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E7%AD%89%E5%BE%85%E5%8F%91%E5%B8%83",target:"_blank",rel:"noopener noreferrer"},E=e("td",null,[t("Labeled with "),e("code",null,"等待发布"),t(" (Ready for Publish)")],-1);function g(k,B){const s=l("ExternalLinkIcon");return r(),u("div",null,[i,e("p",null,[t("You can view all issues on "),e("a",d,[t("GitHub Issue page"),n(s)])]),e("table",null,[c,e("tbody",null,[e("tr",null,[e("td",null,[e("a",h,[t("All Opened BUG Issues"),n(s)])]),_]),e("tr",null,[e("td",null,[e("a",p,[t("All Opened Feature Request Issues"),n(s)])]),b]),e("tr",null,[e("td",null,[e("a",f,[t("Fixed and Resolved Issues"),n(s)])]),A]),e("tr",null,[e("td",null,[e("a",m,[t("Issues will be Fixed in Next Version"),n(s)])]),E])])])])}const S=o(a,[["render",g],["__file","known-issue.html.vue"]]);export{S as default}; +import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as u,a as e,b as t,d as n}from"./app-5a96e1e2.js";const a={},i=e("h1",{id:"known-issue",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#known-issue","aria-hidden":"true"},"#"),t(" Known Issue")],-1),d={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue",target:"_blank",rel:"noopener noreferrer"},c=e("thead",null,[e("tr",null,[e("th",null,"Category"),e("th",null,"Flag")])],-1),h={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3ABUG+is%3Aopen",target:"_blank",rel:"noopener noreferrer"},_=e("td",null,[t("Labeled with "),e("code",null,"BUG")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aopen+is%3Aissue+label%3A%E5%8A%9F%E8%83%BD",target:"_blank",rel:"noopener noreferrer"},b=e("td",null,[t("Labeled with "),e("code",null,"功能"),t(" (Feature)")],-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E5%B7%B2%E4%BF%AE%E5%A4%8D",target:"_blank",rel:"noopener noreferrer"},A=e("td",null,[t("Labeled with "),e("code",null,"已修复"),t(" (Fixed)")],-1),m={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E7%AD%89%E5%BE%85%E5%8F%91%E5%B8%83",target:"_blank",rel:"noopener noreferrer"},E=e("td",null,[t("Labeled with "),e("code",null,"等待发布"),t(" (Ready for Publish)")],-1);function g(k,B){const s=l("ExternalLinkIcon");return r(),u("div",null,[i,e("p",null,[t("You can view all issues on "),e("a",d,[t("GitHub Issue page"),n(s)])]),e("table",null,[c,e("tbody",null,[e("tr",null,[e("td",null,[e("a",h,[t("All Opened BUG Issues"),n(s)])]),_]),e("tr",null,[e("td",null,[e("a",p,[t("All Opened Feature Request Issues"),n(s)])]),b]),e("tr",null,[e("td",null,[e("a",f,[t("Fixed and Resolved Issues"),n(s)])]),A]),e("tr",null,[e("td",null,[e("a",m,[t("Issues will be Fixed in Next Version"),n(s)])]),E])])])])}const S=o(a,[["render",g],["__file","known-issue.html.vue"]]);export{S as default}; diff --git a/assets/known-issue.html-ea460e26.js b/assets/known-issue.html-928c6706.js similarity index 96% rename from assets/known-issue.html-ea460e26.js rename to assets/known-issue.html-928c6706.js index 93d187c1b..30cf2da78 100644 --- a/assets/known-issue.html-ea460e26.js +++ b/assets/known-issue.html-928c6706.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as u,a as e,b as t,d as o}from"./app-8966c29b.js";const a={},i=e("h1",{id:"已知问题",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#已知问题","aria-hidden":"true"},"#"),t(" 已知问题")],-1),d={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue",target:"_blank",rel:"noopener noreferrer"},c=e("thead",null,[e("tr",null,[e("th",null,"类别"),e("th",null,"特征")])],-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3ABUG+is%3Aopen",target:"_blank",rel:"noopener noreferrer"},h=e("td",null,[t("包含标签 "),e("code",null,"BUG")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aopen+is%3Aissue+label%3A%E5%8A%9F%E8%83%BD",target:"_blank",rel:"noopener noreferrer"},b=e("td",null,[t("包含标签 "),e("code",null,"功能")],-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E5%B7%B2%E4%BF%AE%E5%A4%8D",target:"_blank",rel:"noopener noreferrer"},m=e("td",null,[t("包含标签 "),e("code",null,"已修复")],-1),A={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E7%AD%89%E5%BE%85%E5%8F%91%E5%B8%83",target:"_blank",rel:"noopener noreferrer"},E=e("td",null,[t("包含标签 "),e("code",null,"等待发布")],-1);function B(k,g){const n=l("ExternalLinkIcon");return r(),u("div",null,[i,e("p",null,[t("你可以在 "),e("a",d,[t("GitHub Issue 页面"),o(n)]),t(" 查看全部的议题")]),e("table",null,[c,e("tbody",null,[e("tr",null,[e("td",null,[e("a",_,[t("全部未关闭的 BUG 议题"),o(n)])]),h]),e("tr",null,[e("td",null,[e("a",p,[t("全部未关闭的功能提案"),o(n)])]),b]),e("tr",null,[e("td",null,[e("a",f,[t("已修复或已实现的功能"),o(n)])]),m]),e("tr",null,[e("td",null,[e("a",A,[t("将在下一版本修复的问题"),o(n)])]),E])])])])}const D=s(a,[["render",B],["__file","known-issue.html.vue"]]);export{D as default}; +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as r,c as u,a as e,b as t,d as o}from"./app-5a96e1e2.js";const a={},i=e("h1",{id:"已知问题",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#已知问题","aria-hidden":"true"},"#"),t(" 已知问题")],-1),d={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue",target:"_blank",rel:"noopener noreferrer"},c=e("thead",null,[e("tr",null,[e("th",null,"类别"),e("th",null,"特征")])],-1),_={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3ABUG+is%3Aopen",target:"_blank",rel:"noopener noreferrer"},h=e("td",null,[t("包含标签 "),e("code",null,"BUG")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aopen+is%3Aissue+label%3A%E5%8A%9F%E8%83%BD",target:"_blank",rel:"noopener noreferrer"},b=e("td",null,[t("包含标签 "),e("code",null,"功能")],-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E5%B7%B2%E4%BF%AE%E5%A4%8D",target:"_blank",rel:"noopener noreferrer"},m=e("td",null,[t("包含标签 "),e("code",null,"已修复")],-1),A={href:"https://github.com/DGP-Studio/Snap.Hutao/issues?q=is%3Aissue+label%3A%E7%AD%89%E5%BE%85%E5%8F%91%E5%B8%83",target:"_blank",rel:"noopener noreferrer"},E=e("td",null,[t("包含标签 "),e("code",null,"等待发布")],-1);function B(k,g){const n=l("ExternalLinkIcon");return r(),u("div",null,[i,e("p",null,[t("你可以在 "),e("a",d,[t("GitHub Issue 页面"),o(n)]),t(" 查看全部的议题")]),e("table",null,[c,e("tbody",null,[e("tr",null,[e("td",null,[e("a",_,[t("全部未关闭的 BUG 议题"),o(n)])]),h]),e("tr",null,[e("td",null,[e("a",p,[t("全部未关闭的功能提案"),o(n)])]),b]),e("tr",null,[e("td",null,[e("a",f,[t("已修复或已实现的功能"),o(n)])]),m]),e("tr",null,[e("td",null,[e("a",A,[t("将在下一版本修复的问题"),o(n)])]),E])])])])}const D=s(a,[["render",B],["__file","known-issue.html.vue"]]);export{D as default}; diff --git a/assets/menu.html-5943d5ab.js b/assets/menu.html-4e298123.js similarity index 86% rename from assets/menu.html-5943d5ab.js rename to assets/menu.html-4e298123.js index 08b58e189..72153ab83 100644 --- a/assets/menu.html-5943d5ab.js +++ b/assets/menu.html-4e298123.js @@ -1 +1 @@ -import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as r,c as n,d as c,a as e,b as s}from"./app-8966c29b.js";const _={},l=e("h1",{id:"全站目录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#全站目录","aria-hidden":"true"},"#"),s(" 全站目录")],-1);function d(m,i){const a=t("AutoCatalog");return r(),n("div",null,[l,c(a,{base:"/zh/",level:"3"})])}const f=o(_,[["render",d],["__file","menu.html.vue"]]);export{f as default}; +import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as r,c as n,d as c,a as e,b as s}from"./app-5a96e1e2.js";const _={},l=e("h1",{id:"全站目录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#全站目录","aria-hidden":"true"},"#"),s(" 全站目录")],-1);function d(m,i){const a=t("AutoCatalog");return r(),n("div",null,[l,c(a,{base:"/zh/",level:"3"})])}const f=o(_,[["render",d],["__file","menu.html.vue"]]);export{f as default}; diff --git a/assets/menu.html-96b70279.js b/assets/menu.html-940f952e.js similarity index 85% rename from assets/menu.html-96b70279.js rename to assets/menu.html-940f952e.js index 933164c3d..4041eb021 100644 --- a/assets/menu.html-96b70279.js +++ b/assets/menu.html-940f952e.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as n,c as r,d as s,a as e,b as c}from"./app-8966c29b.js";const _={},l=e("h1",{id:"site-menu",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#site-menu","aria-hidden":"true"},"#"),c(" Site Menu")],-1);function d(i,m){const t=o("AutoCatalog");return n(),r("div",null,[l,s(t,{base:"/en/",level:"3"})])}const h=a(_,[["render",d],["__file","menu.html.vue"]]);export{h as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as n,c as r,d as s,a as e,b as c}from"./app-5a96e1e2.js";const _={},l=e("h1",{id:"site-menu",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#site-menu","aria-hidden":"true"},"#"),c(" Site Menu")],-1);function d(i,m){const t=o("AutoCatalog");return n(),r("div",null,[l,s(t,{base:"/en/",level:"3"})])}const h=a(_,[["render",d],["__file","menu.html.vue"]]);export{h as default}; diff --git a/assets/mhy-account-switch.html-e484bd06.js b/assets/mhy-account-switch.html-84159f63.js similarity index 98% rename from assets/mhy-account-switch.html-e484bd06.js rename to assets/mhy-account-switch.html-84159f63.js index bbd966f4e..4c1d9808b 100644 --- a/assets/mhy-account-switch.html-e484bd06.js +++ b/assets/mhy-account-switch.html-84159f63.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as c,o as a,c as l,a as o,b as e,d as u,w as s,e as t}from"./app-8966c29b.js";const r={},d=t('

    MiHoYo BBS Account Switch

    Tips

    There are two types of MiHoYo BBS, MiYouShe and HoYoLAB. MiYouShe refers to Mainland China version, HoYoLAB refers to global version, both of them are accepted by Snap Hutao

    • The document in page is talking about MiHoYo BBS account, not Genshin Impact's in-game account
    • Before starting using Snap Hutao, you must initial your MiHoYo BBS account by login to your account in official mobile application
      • If your account name shows like user_123456789, then it means the account is not initial yet

    MiHoYo BBS Accounts

    At the left bottom corner, you can find the account menu above the Settings button. In the pop-up account menu, you can find the entry to login in to your MiYouShe and HoYoLAB account:

    ',4),h=o("li",null,[e("Click on "),o("code",null,"Web Login"),o("ul",null,[o("li",null,"In the pop-up build-in browser, login with your account"),o("li",null,[e("Click "),o("code",null,"I'm logged in"),e(" button on the top right, after you have logged into your account")]),o("li",null,"Then your account will be added to Snap Hutao, the browser will close automatically")])],-1),p=o("code",null,"Input Manually",-1),y=o("li",null,[e("If you do so, the cookies must contains "),o("code",null,"SToken"),e(" field")],-1),m=o("code",null,"SToken",-1),f=o("li",null,[e("After added your MiHoYo BBS account, you need to switch to account you want in the account menu, to activate it "),o("ul",null,[o("li",null,"You can always switch your MiHoYo BBS account in the account menu, and you are also allowed to copy account's cookie or remove account there"),o("li",null,[e("After select an account in the panel, you can also "),o("ul",null,[o("li",null,[e("Click "),o("code",null,"Refresh Cookie"),e(" to update local cookie")]),o("li",null,[e("Click "),o("code",null,"Claim Check-In Reward"),e(" to get daily check-in reward. For MiYouShe account, you need to bypass Geetest verification first.")])])])])],-1),g=t('

    Security Tips

    • SToken is a security sensitive cookie field, you should NEVER store it in cloud-based software or device that you cannot guarantee the safety (such as public computers).
    • You can copy accounts' cookie with SToken from Snap Hutao, but you should carefully consider if the receiver is trustworthy to have SToken cookie
    • When you are signing in to your MiHoYo BBS account in Snap Hutao, the data are only been processed by MiHoYo's official server and local Snap Hutao program, no third-party server (including any server from Snap Hutao) will involve in this process.
    ',1);function S(_,k){const n=c("RouterLink");return a(),l("div",null,[d,o("ul",null,[h,o("li",null,[e("Alternatively, you can enter your MiHoYo BBS cookie list by click on "),p,e(" button "),o("ul",null,[y,o("li",null,[e("You can refer to "),u(n,{to:"/en/advanced/get-SToken-cookie-from-the-third-party.html"},{default:s(()=>[e("使用第三方工具获取有 SToken 的 cookie")]),_:1}),e(" document for methods to capture cookie with "),m])])]),f]),g])}const v=i(r,[["render",S],["__file","mhy-account-switch.html.vue"]]);export{v as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as c,o as a,c as l,a as o,b as e,d as u,w as s,e as t}from"./app-5a96e1e2.js";const r={},d=t('

    MiHoYo BBS Account Switch

    Tips

    There are two types of MiHoYo BBS, MiYouShe and HoYoLAB. MiYouShe refers to Mainland China version, HoYoLAB refers to global version, both of them are accepted by Snap Hutao

    • The document in page is talking about MiHoYo BBS account, not Genshin Impact's in-game account
    • Before starting using Snap Hutao, you must initial your MiHoYo BBS account by login to your account in official mobile application
      • If your account name shows like user_123456789, then it means the account is not initial yet

    MiHoYo BBS Accounts

    At the left bottom corner, you can find the account menu above the Settings button. In the pop-up account menu, you can find the entry to login in to your MiYouShe and HoYoLAB account:

    ',4),h=o("li",null,[e("Click on "),o("code",null,"Web Login"),o("ul",null,[o("li",null,"In the pop-up build-in browser, login with your account"),o("li",null,[e("Click "),o("code",null,"I'm logged in"),e(" button on the top right, after you have logged into your account")]),o("li",null,"Then your account will be added to Snap Hutao, the browser will close automatically")])],-1),p=o("code",null,"Input Manually",-1),y=o("li",null,[e("If you do so, the cookies must contains "),o("code",null,"SToken"),e(" field")],-1),m=o("code",null,"SToken",-1),f=o("li",null,[e("After added your MiHoYo BBS account, you need to switch to account you want in the account menu, to activate it "),o("ul",null,[o("li",null,"You can always switch your MiHoYo BBS account in the account menu, and you are also allowed to copy account's cookie or remove account there"),o("li",null,[e("After select an account in the panel, you can also "),o("ul",null,[o("li",null,[e("Click "),o("code",null,"Refresh Cookie"),e(" to update local cookie")]),o("li",null,[e("Click "),o("code",null,"Claim Check-In Reward"),e(" to get daily check-in reward. For MiYouShe account, you need to bypass Geetest verification first.")])])])])],-1),g=t('

    Security Tips

    • SToken is a security sensitive cookie field, you should NEVER store it in cloud-based software or device that you cannot guarantee the safety (such as public computers).
    • You can copy accounts' cookie with SToken from Snap Hutao, but you should carefully consider if the receiver is trustworthy to have SToken cookie
    • When you are signing in to your MiHoYo BBS account in Snap Hutao, the data are only been processed by MiHoYo's official server and local Snap Hutao program, no third-party server (including any server from Snap Hutao) will involve in this process.
    ',1);function S(_,k){const n=c("RouterLink");return a(),l("div",null,[d,o("ul",null,[h,o("li",null,[e("Alternatively, you can enter your MiHoYo BBS cookie list by click on "),p,e(" button "),o("ul",null,[y,o("li",null,[e("You can refer to "),u(n,{to:"/en/advanced/get-SToken-cookie-from-the-third-party.html"},{default:s(()=>[e("使用第三方工具获取有 SToken 的 cookie")]),_:1}),e(" document for methods to capture cookie with "),m])])]),f]),g])}const v=i(r,[["render",S],["__file","mhy-account-switch.html.vue"]]);export{v as default}; diff --git a/assets/mhy-account-switch.html-d22df260.js b/assets/mhy-account-switch.html-866591ed.js similarity index 98% rename from assets/mhy-account-switch.html-d22df260.js rename to assets/mhy-account-switch.html-866591ed.js index edb1d4bcd..ff72ea99b 100644 --- a/assets/mhy-account-switch.html-d22df260.js +++ b/assets/mhy-account-switch.html-866591ed.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as s,a as o,b as l,d as a,w as r,e}from"./app-8966c29b.js";const d={},u=e('

    米游社多帐号切换

    提示

    胡桃工具箱支持中国大陆版米哈游论坛米游社和国际版论坛 HoYoLAB的帐号。HoYoLAB 默认阻拦来自中国大陆的网络连接,Snap Hutao 软件无法自行绕开该限制。

    • 本文档所描述的帐号切换指的是用于获取游戏数据的米游社/ HoYoLAB 帐号,不是原神游戏内的帐号
    • 在使用本功能前,你需要使用官方的米游社 App 登录你的帐号以初始化你的米游社功能
      • 如果在胡桃中登录的帐号名称格式为 user_123456789 则其有可能没有被初始化

    多帐号管理样图

    你可以在程序主界面的左下角,设置按钮的上方找到帐号菜单,以管理你在胡桃工具箱中登录的米游社帐号。在弹出的面板中你可以添加米游社或 HoYoLAB 帐号 ,登录它们的方法是一样的:

    ',4),_=o("code",null,"网页登录",-1),h=o("li",null,[l("您也可以通过点击"),o("code",null,"手动输入"),l("按钮,直接输入米游社通行证 cookie 来添加您的帐号")],-1),k=o("code",null,"手动输入",-1),p=o("strong",null,[l("必须包含 "),o("code",null,"SToken"),l(" 字段")],-1),g=o("code",null,"SToken",-1),m=o("li",null,'在弹出的内置浏览器登陆成功后,点击右上角的"我已登陆"按钮',-1),f=o("li",null,[l("完成后,您就可以在帐号管理面板切换已登录的米游社帐号了 "),o("ul",null,[o("li",null,"新添加米游社账号后,需在主界面左下角切换账号的功能中,手动点击一次新登录的账号,以将其设置为使用状态"),o("li",null,"你可以在帐号管理菜单中复制对应帐号的 cookie 或从胡桃工具箱中删除该帐号"),o("li",null,[l("在选中登录帐号后,你可以 "),o("ul",null,[o("li",null,"点击刷新 Cookie 按钮来更新当前储存的 Cookie"),o("li",null,"点击签到按钮来执行米哈游论坛签到。对于米游社帐号,需要先接触风控状态才可成功执行签到。")])])])],-1),S=e('

    安全提示

    • SToken 是一个安全敏感的 cookie 字段,你不应该在任何云端或其它无法保证数据安全的设备上储存含有 SToken 字段的 cookie。
    • 从胡桃工具箱中复制获得的 cookie 中包含该字段,请慎重考虑是否为接受 cookie 的一方提供 SToken 字段。
    • 在胡桃工具箱中通过密码或 cookie 登录米游社的过程中,你的数据只经米游社服务器和本地胡桃工具箱处理,不经过包括胡桃服务器在内的任何第三方服务。
    ',1);function v(x,T){const n=i("RouterLink");return c(),s("div",null,[u,o("ul",null,[o("li",null,[l("在对应的帐号种类中点击"),_,l("按钮 "),o("ul",null,[h,o("li",null,[l("若您选择"),k,l("米游社 cookie,则该 cookie "),p,o("ul",null,[o("li",null,[l("手动获取含 "),g,l(" 字段的 cookie 的方式可参考"),a(n,{to:"/zh/advanced/get-SToken-cookie-from-the-third-party.html"},{default:r(()=>[l("使用第三方工具获取有 SToken 的 cookie")]),_:1}),l(" 文档")])])])])]),m,f]),S])}const C=t(d,[["render",v],["__file","mhy-account-switch.html.vue"]]);export{C as default}; +import{_ as t}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as s,a as o,b as l,d as a,w as r,e}from"./app-5a96e1e2.js";const d={},u=e('

    米游社多帐号切换

    提示

    胡桃工具箱支持中国大陆版米哈游论坛米游社和国际版论坛 HoYoLAB的帐号。HoYoLAB 默认阻拦来自中国大陆的网络连接,Snap Hutao 软件无法自行绕开该限制。

    • 本文档所描述的帐号切换指的是用于获取游戏数据的米游社/ HoYoLAB 帐号,不是原神游戏内的帐号
    • 在使用本功能前,你需要使用官方的米游社 App 登录你的帐号以初始化你的米游社功能
      • 如果在胡桃中登录的帐号名称格式为 user_123456789 则其有可能没有被初始化

    多帐号管理样图

    你可以在程序主界面的左下角,设置按钮的上方找到帐号菜单,以管理你在胡桃工具箱中登录的米游社帐号。在弹出的面板中你可以添加米游社或 HoYoLAB 帐号 ,登录它们的方法是一样的:

    ',4),_=o("code",null,"网页登录",-1),h=o("li",null,[l("您也可以通过点击"),o("code",null,"手动输入"),l("按钮,直接输入米游社通行证 cookie 来添加您的帐号")],-1),k=o("code",null,"手动输入",-1),p=o("strong",null,[l("必须包含 "),o("code",null,"SToken"),l(" 字段")],-1),g=o("code",null,"SToken",-1),m=o("li",null,'在弹出的内置浏览器登陆成功后,点击右上角的"我已登陆"按钮',-1),f=o("li",null,[l("完成后,您就可以在帐号管理面板切换已登录的米游社帐号了 "),o("ul",null,[o("li",null,"新添加米游社账号后,需在主界面左下角切换账号的功能中,手动点击一次新登录的账号,以将其设置为使用状态"),o("li",null,"你可以在帐号管理菜单中复制对应帐号的 cookie 或从胡桃工具箱中删除该帐号"),o("li",null,[l("在选中登录帐号后,你可以 "),o("ul",null,[o("li",null,"点击刷新 Cookie 按钮来更新当前储存的 Cookie"),o("li",null,"点击签到按钮来执行米哈游论坛签到。对于米游社帐号,需要先接触风控状态才可成功执行签到。")])])])],-1),S=e('

    安全提示

    • SToken 是一个安全敏感的 cookie 字段,你不应该在任何云端或其它无法保证数据安全的设备上储存含有 SToken 字段的 cookie。
    • 从胡桃工具箱中复制获得的 cookie 中包含该字段,请慎重考虑是否为接受 cookie 的一方提供 SToken 字段。
    • 在胡桃工具箱中通过密码或 cookie 登录米游社的过程中,你的数据只经米游社服务器和本地胡桃工具箱处理,不经过包括胡桃服务器在内的任何第三方服务。
    ',1);function v(x,T){const n=i("RouterLink");return c(),s("div",null,[u,o("ul",null,[o("li",null,[l("在对应的帐号种类中点击"),_,l("按钮 "),o("ul",null,[h,o("li",null,[l("若您选择"),k,l("米游社 cookie,则该 cookie "),p,o("ul",null,[o("li",null,[l("手动获取含 "),g,l(" 字段的 cookie 的方式可参考"),a(n,{to:"/zh/advanced/get-SToken-cookie-from-the-third-party.html"},{default:r(()=>[l("使用第三方工具获取有 SToken 的 cookie")]),_:1}),l(" 文档")])])])])]),m,f]),S])}const C=t(d,[["render",v],["__file","mhy-account-switch.html.vue"]]);export{C as default}; diff --git a/assets/monster-wiki.html-3aaff82c.js b/assets/monster-wiki.html-b4a92c1c.js similarity index 94% rename from assets/monster-wiki.html-3aaff82c.js rename to assets/monster-wiki.html-b4a92c1c.js index f59df0638..d6a721ba0 100644 --- a/assets/monster-wiki.html-3aaff82c.js +++ b/assets/monster-wiki.html-b4a92c1c.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as i,c as t,e as a}from"./app-8966c29b.js";const o={},l=a('

    Monster WIKI

    monster-wiki

    Monster WIKI is an embedded WIKI database used to look up each monster's Base ability, ability in each level, RES, drop items

    Included Data

    • Monster list
      • Use the icon above the list, you can change the view between list and grid
      • Click on monster's icon or title, and you will be directed to its WIKI page
    • WIKI data
      • Monster's ability
        • Monster base HP, base ATK, base DEF
        • Monster's HP, ATK and DEF in each level switched to
      • Drop items
    ',5),s=[l];function n(r,d){return i(),t("div",null,s)}const m=e(o,[["render",n],["__file","monster-wiki.html.vue"]]);export{m as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as i,c as t,e as a}from"./app-5a96e1e2.js";const o={},l=a('

    Monster WIKI

    monster-wiki

    Monster WIKI is an embedded WIKI database used to look up each monster's Base ability, ability in each level, RES, drop items

    Included Data

    • Monster list
      • Use the icon above the list, you can change the view between list and grid
      • Click on monster's icon or title, and you will be directed to its WIKI page
    • WIKI data
      • Monster's ability
        • Monster base HP, base ATK, base DEF
        • Monster's HP, ATK and DEF in each level switched to
      • Drop items
    ',5),s=[l];function n(r,d){return i(),t("div",null,s)}const m=e(o,[["render",n],["__file","monster-wiki.html.vue"]]);export{m as default}; diff --git a/assets/monster-wiki.html-e5fc1b84.js b/assets/monster-wiki.html-e22d8ce1.js similarity index 95% rename from assets/monster-wiki.html-e5fc1b84.js rename to assets/monster-wiki.html-e22d8ce1.js index 1073bffe1..6d95bfc15 100644 --- a/assets/monster-wiki.html-e5fc1b84.js +++ b/assets/monster-wiki.html-e22d8ce1.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as t,e}from"./app-8966c29b.js";const o={},r=e('

    怪物资料

    monster-wiki

    怪物资料是胡桃工具箱中内置的用于查询各个怪物的基础数值、各等级数值、元素抗性、掉落物品数据的 WIKI

    已包含的数据

    • 怪物列表
      • 使用列表左上角的按钮,可切换列表显示的方式:即"缩略图与名称"或"仅缩略图"
      • 单击列表中的缩略图或名称,即可跳转到相应的介绍页面
    • 数据内容
      • 怪物数值
        • 怪物基础生命值、攻击力、防御力
        • 可切换至对应等级的怪物各项数值
      • 掉落物品
    ',5),a=[r];function n(s,c){return l(),t("div",null,a)}const h=i(o,[["render",n],["__file","monster-wiki.html.vue"]]);export{h as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as t,e}from"./app-5a96e1e2.js";const o={},r=e('

    怪物资料

    monster-wiki

    怪物资料是胡桃工具箱中内置的用于查询各个怪物的基础数值、各等级数值、元素抗性、掉落物品数据的 WIKI

    已包含的数据

    • 怪物列表
      • 使用列表左上角的按钮,可切换列表显示的方式:即"缩略图与名称"或"仅缩略图"
      • 单击列表中的缩略图或名称,即可跳转到相应的介绍页面
    • 数据内容
      • 怪物数值
        • 怪物基础生命值、攻击力、防御力
        • 可切换至对应等级的怪物各项数值
      • 掉落物品
    ',5),a=[r];function n(s,c){return l(),t("div",null,a)}const h=i(o,[["render",n],["__file","monster-wiki.html.vue"]]);export{h as default}; diff --git a/assets/platform.html-b4ee221c.js b/assets/platform.html-77fb71fa.js similarity index 96% rename from assets/platform.html-b4ee221c.js rename to assets/platform.html-77fb71fa.js index 82afd13a8..42d9f172b 100644 --- a/assets/platform.html-b4ee221c.js +++ b/assets/platform.html-77fb71fa.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as h,c as i,a as e,b as t,d as n,w as l}from"./app-8966c29b.js";const c={},_=e("h1",{id:"胡桃开放平台",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#胡桃开放平台","aria-hidden":"true"},"#"),t(" 胡桃开放平台")],-1),d=e("p",null,"Snap Hutao 项目自 2022 年 4 月 18 日在 GitHub 上创立项目以来获得了开源社区和用户的广泛支持。随着项目的发展,我们创建了一系列的支持服务作为 Snap Hutao 的中间组件。",-1),p=e("p",null,"现在,开发组将其中一些实用的服务以开放接口的形式公开给开源社区,供与我们有共同愿景的开发者使用。我们将为这些接口编写使用文档,维护这些服务并提供 常见问题的解答。无论你是一个有经验的开发者还是初学者,我们都希望这些接口能为你创造应用提供帮助。",-1),u=e("h2",{id:"胡桃-api-胡桃云开发者许可证",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#胡桃-api-胡桃云开发者许可证","aria-hidden":"true"},"#"),t(" 胡桃 API & 胡桃云开发者许可证")],-1),f=e("p",null,"胡桃 API 是一个将胡桃深渊数据库公开的接口服务。开源软件作者可以通过胡桃 API 从胡桃数据库获取数据。",-1),k=e("p",null,"获得胡桃 API 权限的开发者同时也获得胡桃工具箱内胡桃云功能的完整权限作为福利。",-1),m={href:"https://homa.snapgenshin.com/",target:"_blank",rel:"noopener noreferrer"},g=e("h2",{id:"enka-api-中国加速服务",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#enka-api-中国加速服务","aria-hidden":"true"},"#"),t(" Enka API 中国加速服务")],-1),I={href:"https://enka.network/",target:"_blank",rel:"noopener noreferrer"},b=e("p",null,"开发者可以在 Snap Hutao 开发者交流群或者 Discord 频道中向管理员提出申请",-1),x=e("h2",{id:"uigf-可交换数据记录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uigf-可交换数据记录","aria-hidden":"true"},"#"),t(" UIGF 可交换数据记录")],-1),E={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},w={href:"https://github.com/UIGF-org",target:"_blank",rel:"noopener noreferrer"};function A(N,P){const a=r("ExternalLinkIcon"),o=r("RouterLink");return h(),i("div",null,[_,d,p,u,f,k,e("p",null,[t("开发者可以通过"),e("a",m,[t("胡桃 API 开放平台"),n(a)]),t(",提交信息申请权限。")]),g,e("p",null,[e("a",I,[t("Enka Network"),n(a)]),t(" 是一个优秀的原神工具,它可以为用户获取当前角色展柜内角色的详细数据。 由于 Enka Network 使用了中国网络访问受阻的网络服务,其功能在中国地区难以获得稳定性保证。")]),e("p",null,[t("胡桃工具箱在开发"),n(o,{to:"/zh/features/character-data.html"},{default:l(()=>[t("我的角色")]),_:1}),t("功能时使用了 Enka Network 的数据, 并搭建了中转服务器以保证胡桃工具箱中国用户的使用体验。")]),b,x,e("p",null,[t("胡桃工具箱希望用户的数据能在具有不同特色的开源工具自由流动,并因此设定了最初版本的"),e("a",E,[t("统一可交换抽卡记录标准"),n(a)]),t("。 现在这一标准获得了更多开发者的相应,更多的标准被推行。")]),e("p",null,[t("众多的开发者现在聚集于 "),e("a",w,[t("UIGF-Org"),n(a)]),t(",我们希望通过维护这一组织让更多的开发者通过接触更多的用户, 获得更多的反馈并获得技术上的进步,创造更多优秀的原神开源工具。")])])}const H=s(c,[["render",A],["__file","platform.html.vue"]]);export{H as default}; +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r,o as h,c as i,a as e,b as t,d as n,w as l}from"./app-5a96e1e2.js";const c={},_=e("h1",{id:"胡桃开放平台",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#胡桃开放平台","aria-hidden":"true"},"#"),t(" 胡桃开放平台")],-1),d=e("p",null,"Snap Hutao 项目自 2022 年 4 月 18 日在 GitHub 上创立项目以来获得了开源社区和用户的广泛支持。随着项目的发展,我们创建了一系列的支持服务作为 Snap Hutao 的中间组件。",-1),p=e("p",null,"现在,开发组将其中一些实用的服务以开放接口的形式公开给开源社区,供与我们有共同愿景的开发者使用。我们将为这些接口编写使用文档,维护这些服务并提供 常见问题的解答。无论你是一个有经验的开发者还是初学者,我们都希望这些接口能为你创造应用提供帮助。",-1),u=e("h2",{id:"胡桃-api-胡桃云开发者许可证",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#胡桃-api-胡桃云开发者许可证","aria-hidden":"true"},"#"),t(" 胡桃 API & 胡桃云开发者许可证")],-1),f=e("p",null,"胡桃 API 是一个将胡桃深渊数据库公开的接口服务。开源软件作者可以通过胡桃 API 从胡桃数据库获取数据。",-1),k=e("p",null,"获得胡桃 API 权限的开发者同时也获得胡桃工具箱内胡桃云功能的完整权限作为福利。",-1),m={href:"https://homa.snapgenshin.com/",target:"_blank",rel:"noopener noreferrer"},g=e("h2",{id:"enka-api-中国加速服务",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#enka-api-中国加速服务","aria-hidden":"true"},"#"),t(" Enka API 中国加速服务")],-1),I={href:"https://enka.network/",target:"_blank",rel:"noopener noreferrer"},b=e("p",null,"开发者可以在 Snap Hutao 开发者交流群或者 Discord 频道中向管理员提出申请",-1),x=e("h2",{id:"uigf-可交换数据记录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uigf-可交换数据记录","aria-hidden":"true"},"#"),t(" UIGF 可交换数据记录")],-1),E={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},w={href:"https://github.com/UIGF-org",target:"_blank",rel:"noopener noreferrer"};function A(N,P){const a=r("ExternalLinkIcon"),o=r("RouterLink");return h(),i("div",null,[_,d,p,u,f,k,e("p",null,[t("开发者可以通过"),e("a",m,[t("胡桃 API 开放平台"),n(a)]),t(",提交信息申请权限。")]),g,e("p",null,[e("a",I,[t("Enka Network"),n(a)]),t(" 是一个优秀的原神工具,它可以为用户获取当前角色展柜内角色的详细数据。 由于 Enka Network 使用了中国网络访问受阻的网络服务,其功能在中国地区难以获得稳定性保证。")]),e("p",null,[t("胡桃工具箱在开发"),n(o,{to:"/zh/features/character-data.html"},{default:l(()=>[t("我的角色")]),_:1}),t("功能时使用了 Enka Network 的数据, 并搭建了中转服务器以保证胡桃工具箱中国用户的使用体验。")]),b,x,e("p",null,[t("胡桃工具箱希望用户的数据能在具有不同特色的开源工具自由流动,并因此设定了最初版本的"),e("a",E,[t("统一可交换抽卡记录标准"),n(a)]),t("。 现在这一标准获得了更多开发者的相应,更多的标准被推行。")]),e("p",null,[t("众多的开发者现在聚集于 "),e("a",w,[t("UIGF-Org"),n(a)]),t(",我们希望通过维护这一组织让更多的开发者通过接触更多的用户, 获得更多的反馈并获得技术上的进步,创造更多优秀的原神开源工具。")])])}const H=s(c,[["render",A],["__file","platform.html.vue"]]);export{H as default}; diff --git a/assets/platform.html-36392819.js b/assets/platform.html-cb36bf71.js similarity index 96% rename from assets/platform.html-36392819.js rename to assets/platform.html-cb36bf71.js index 678894852..c78f80523 100644 --- a/assets/platform.html-36392819.js +++ b/assets/platform.html-cb36bf71.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as i,c as h,a as e,b as a,d as t,w as c}from"./app-8966c29b.js";const l={},d=e("h1",{id:"hutao-open-platform",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hutao-open-platform","aria-hidden":"true"},"#"),a(" Hutao Open Platform")],-1),u=e("p",null,"The Snap Hutao project has received wide supports from the open-source community and users since its inception on GitHub on April 18, 2022. As the project has evolved, we have created a series of supporting services as middleware for Snap Hutao.",-1),p=e("p",null,"Now, the development team is making some of these practical services available to the open-source community in the form of open interfaces, for use by developers who share our vision. We will be writing usage documentation for these interfaces, maintaining the services, and providing answers to frequently asked questions. Whether you are an experienced developer or a beginner, we hope that these interfaces will assist you in creating applications.",-1),f=e("h2",{id:"hutao-api-hutao-cloud-open-source-developer-s-license",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hutao-api-hutao-cloud-open-source-developer-s-license","aria-hidden":"true"},"#"),a(" Hutao API & Hutao Cloud Open-source Developer's License")],-1),m=e("p",null,"Hutao API is an interface service that exposes the Hutao Abyssal Database. Open-source software authors can use the Hutao API to retrieve data from the Hutao database or upload data.",-1),_=e("p",null,"Developers who gain access to the Hutao API also receive full privileges to the Hutao Cloud feature within the Snap Hutao as a benefit.",-1),g={href:"https://homa.snapgenshin.com/",target:"_blank",rel:"noopener noreferrer"},v=e("h2",{id:"enka-api-with-china-acceleration",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#enka-api-with-china-acceleration","aria-hidden":"true"},"#"),a(" Enka API with China Acceleration")],-1),b={href:"https://enka.network/",target:"_blank",rel:"noopener noreferrer"},w=e("p",null,"Developers can ask for access in Snap Hutao development group chat or discord group from administrator.",-1),k=e("h2",{id:"uigf-interchangeable-game-data-format",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uigf-interchangeable-game-data-format","aria-hidden":"true"},"#"),a(" UIGF Interchangeable Game Data Format")],-1),H={href:"https://uigf.org/en/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},I={href:"https://github.com/UIGF-org",target:"_blank",rel:"noopener noreferrer"};function x(y,A){const o=n("ExternalLinkIcon"),r=n("RouterLink");return i(),h("div",null,[d,u,p,f,m,_,e("p",null,[a("Developers can apply for access by submitting their information through the Hutao API Open Platform at "),e("a",g,[a("homa.snapgenshin.com"),t(o)])]),v,e("p",null,[e("a",b,[a("Enka Network"),t(o)]),a(" is an excellent Genshin Impact tool that provides detailed data on characters in the user's current character showcase. However, due to restricted access to certain network services in China, the stability of Enka Network's functionality in the region is compromised.")]),e("p",null,[a("To ensure a smooth user experience for Snap Hutao users in China, the development team has utilized Enka Network's data for the development of the "),t(r,{to:"/en/features/character-data.html"},{default:c(()=>[a("My Characters")]),_:1}),a(" feature and established a proxy server.")]),w,k,e("p",null,[a("Snap Hutao aims to enable the free flow of user data among various open-source tools with different features. To facilitate this, Snap Hutao has established the initial version of the "),e("a",H,[a("Uniformed Interchangeable GachaLog Format Standard (UIGF)"),t(o)]),a(".")]),e("p",null,[a("Since then, this standard has gained more recognition among developers, leading to the promotion of additional standards. Many developers have now gathered under the "),e("a",I,[a("UIGF organization"),t(o)]),a(". Our goal is to maintain this organization, allowing developers to connect with more users, receive feedback, make technical advancements, and create outstanding open-source Genshin Impact tools.")])])}const C=s(l,[["render",x],["__file","platform.html.vue"]]);export{C as default}; +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as i,c as h,a as e,b as a,d as t,w as c}from"./app-5a96e1e2.js";const l={},d=e("h1",{id:"hutao-open-platform",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hutao-open-platform","aria-hidden":"true"},"#"),a(" Hutao Open Platform")],-1),u=e("p",null,"The Snap Hutao project has received wide supports from the open-source community and users since its inception on GitHub on April 18, 2022. As the project has evolved, we have created a series of supporting services as middleware for Snap Hutao.",-1),p=e("p",null,"Now, the development team is making some of these practical services available to the open-source community in the form of open interfaces, for use by developers who share our vision. We will be writing usage documentation for these interfaces, maintaining the services, and providing answers to frequently asked questions. Whether you are an experienced developer or a beginner, we hope that these interfaces will assist you in creating applications.",-1),f=e("h2",{id:"hutao-api-hutao-cloud-open-source-developer-s-license",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#hutao-api-hutao-cloud-open-source-developer-s-license","aria-hidden":"true"},"#"),a(" Hutao API & Hutao Cloud Open-source Developer's License")],-1),m=e("p",null,"Hutao API is an interface service that exposes the Hutao Abyssal Database. Open-source software authors can use the Hutao API to retrieve data from the Hutao database or upload data.",-1),_=e("p",null,"Developers who gain access to the Hutao API also receive full privileges to the Hutao Cloud feature within the Snap Hutao as a benefit.",-1),g={href:"https://homa.snapgenshin.com/",target:"_blank",rel:"noopener noreferrer"},v=e("h2",{id:"enka-api-with-china-acceleration",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#enka-api-with-china-acceleration","aria-hidden":"true"},"#"),a(" Enka API with China Acceleration")],-1),b={href:"https://enka.network/",target:"_blank",rel:"noopener noreferrer"},w=e("p",null,"Developers can ask for access in Snap Hutao development group chat or discord group from administrator.",-1),k=e("h2",{id:"uigf-interchangeable-game-data-format",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uigf-interchangeable-game-data-format","aria-hidden":"true"},"#"),a(" UIGF Interchangeable Game Data Format")],-1),H={href:"https://uigf.org/en/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},I={href:"https://github.com/UIGF-org",target:"_blank",rel:"noopener noreferrer"};function x(y,A){const o=n("ExternalLinkIcon"),r=n("RouterLink");return i(),h("div",null,[d,u,p,f,m,_,e("p",null,[a("Developers can apply for access by submitting their information through the Hutao API Open Platform at "),e("a",g,[a("homa.snapgenshin.com"),t(o)])]),v,e("p",null,[e("a",b,[a("Enka Network"),t(o)]),a(" is an excellent Genshin Impact tool that provides detailed data on characters in the user's current character showcase. However, due to restricted access to certain network services in China, the stability of Enka Network's functionality in the region is compromised.")]),e("p",null,[a("To ensure a smooth user experience for Snap Hutao users in China, the development team has utilized Enka Network's data for the development of the "),t(r,{to:"/en/features/character-data.html"},{default:c(()=>[a("My Characters")]),_:1}),a(" feature and established a proxy server.")]),w,k,e("p",null,[a("Snap Hutao aims to enable the free flow of user data among various open-source tools with different features. To facilitate this, Snap Hutao has established the initial version of the "),e("a",H,[a("Uniformed Interchangeable GachaLog Format Standard (UIGF)"),t(o)]),a(".")]),e("p",null,[a("Since then, this standard has gained more recognition among developers, leading to the promotion of additional standards. Many developers have now gathered under the "),e("a",I,[a("UIGF organization"),t(o)]),a(". Our goal is to maintain this organization, allowing developers to connect with more users, receive feedback, make technical advancements, and create outstanding open-source Genshin Impact tools.")])])}const C=s(l,[["render",x],["__file","platform.html.vue"]]);export{C as default}; diff --git a/assets/privacy-notice.html-8f872be8.js b/assets/privacy-notice.html-b62d63cc.js similarity index 97% rename from assets/privacy-notice.html-8f872be8.js rename to assets/privacy-notice.html-b62d63cc.js index 46e29ee52..0c15c9b93 100644 --- a/assets/privacy-notice.html-8f872be8.js +++ b/assets/privacy-notice.html-b62d63cc.js @@ -1 +1 @@ -import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{o as i,c as o,e}from"./app-8966c29b.js";const a={},n=e('

    用户数据和隐私权益

    个人信息数据

    Snap Hutao 的项目性质决定了其不会收集任何个人信息数据

    常规数据使用

    胡桃工具箱充分尊重用户的隐私,目前我们会按下方的说明使用用户的数据:

    • 使用胡桃后,在 数据目录 中以数据库文件的形式

      • 储存
        • 米游社和 HoYoLab Cookie
        • 胡桃的软件设置信息
        • 全部的用户数据
    • 使用胡桃主程序时,胡桃会因开发和统计为目的匿名化地收集程序意外停止或出错时抛出的日志,包括:

      • 用户设备 ID
      • 错误与崩溃日志
      • 用户活跃数据统计信息
    • 使用 胡桃数据库 (深渊记录/深渊统计) 功能并选择上传数据时,

      • 向 胡桃 API 上传
        • 用户的游戏 UID
        • 用户的深境螺旋记录
        • 用户的角色信息及其装备的武器和圣遗物信息
    • 使用实时便笺功能后

      • 在 Windows 定时任务中创建一个用于获取数据的定时任务
    • 使用高级启动器中的服务器切换功能后,在胡桃数据目录中

      • 储存服务器转换所需要的文件
    • 使用胡桃帐号功能后,胡桃帐号云端系统会

      • 储存
        • 注册使用的邮箱
        • 加密后的密码

    可信任的域名

    Snap Hutao 项目目前持有以下域名,它们在本项目范围内是可信任的域名,请警惕此列表以外域名所提供的信息(包括网站、邮件等)

    • hut.ao
    • snapgenshin.com
      • 我们仅使用此域名发送系统邮件
    • dgp-studio.cn
      • 我们仅使用此域名用于公开的邮件联系方式
    • snapgenshin.cn
    • snaphutao.com
    • hutao.ao
    ',9),t=[n];function r(c,d){return i(),o("div",null,t)}const h=l(a,[["render",r],["__file","privacy-notice.html.vue"]]);export{h as default}; +import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{o as i,c as o,e}from"./app-5a96e1e2.js";const a={},n=e('

    用户数据和隐私权益

    个人信息数据

    Snap Hutao 的项目性质决定了其不会收集任何个人信息数据

    常规数据使用

    胡桃工具箱充分尊重用户的隐私,目前我们会按下方的说明使用用户的数据:

    • 使用胡桃后,在 数据目录 中以数据库文件的形式

      • 储存
        • 米游社和 HoYoLab Cookie
        • 胡桃的软件设置信息
        • 全部的用户数据
    • 使用胡桃主程序时,胡桃会因开发和统计为目的匿名化地收集程序意外停止或出错时抛出的日志,包括:

      • 用户设备 ID
      • 错误与崩溃日志
      • 用户活跃数据统计信息
    • 使用 胡桃数据库 (深渊记录/深渊统计) 功能并选择上传数据时,

      • 向 胡桃 API 上传
        • 用户的游戏 UID
        • 用户的深境螺旋记录
        • 用户的角色信息及其装备的武器和圣遗物信息
    • 使用实时便笺功能后

      • 在 Windows 定时任务中创建一个用于获取数据的定时任务
    • 使用高级启动器中的服务器切换功能后,在胡桃数据目录中

      • 储存服务器转换所需要的文件
    • 使用胡桃帐号功能后,胡桃帐号云端系统会

      • 储存
        • 注册使用的邮箱
        • 加密后的密码

    可信任的域名

    Snap Hutao 项目目前持有以下域名,它们在本项目范围内是可信任的域名,请警惕此列表以外域名所提供的信息(包括网站、邮件等)

    • hut.ao
    • snapgenshin.com
      • 我们仅使用此域名发送系统邮件
    • dgp-studio.cn
      • 我们仅使用此域名用于公开的邮件联系方式
    • snapgenshin.cn
    • snaphutao.com
    • hutao.ao
    ',9),t=[n];function r(c,d){return i(),o("div",null,t)}const h=l(a,[["render",r],["__file","privacy-notice.html.vue"]]);export{h as default}; diff --git a/assets/privacy-notice.html-0f688115.js b/assets/privacy-notice.html-f461657a.js similarity index 97% rename from assets/privacy-notice.html-0f688115.js rename to assets/privacy-notice.html-f461657a.js index 0bc96d674..436e62e8b 100644 --- a/assets/privacy-notice.html-0f688115.js +++ b/assets/privacy-notice.html-f461657a.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as i,e as t}from"./app-8966c29b.js";const o={},r=t('

    User Data and Privacy Notice

    Personal Information

    The nature of Snap Hutao project states it does not collect any personal information data.

    Regular Data Usage

    Snap Hutao respects the privacy of users, and we're currently using data as described below:

    • Once using Snap Hutao,the database file in the data directory

      • Store
        • MiHoYo BBS and HoYoLab cookie
        • Snap Hutao program settings
        • All other user data
    • When using Snap Hutao, we collect anonymously logs data for development and statistical purposes when program stops unexpectedly or throw an error, including - User device ID - Error or crash log - Active user statistical data

    • When using Hutao Database (Abyss Record/Abyss Stats) feature and select Upload Data

      • Upload data to Hutao API, including
        • User's in-game UID
        • User's Abyss record
        • User's character information including artifact and weapon data
    • After using Real-time Notes features

      • Create a Windows scheduled task to fetch data timely
    • After using server switch feature in Game Laucher, in Snap Hutao's data directory

      • Store game files for server switch usage
    • After using Hutao Account features, Hutao Account system server will

      • Store
        • User registered email address
        • Encrypted password

    Trustable Domains

    Snap Hutao project is holding the following domains, they are trustable in this project scope, please be wary of information provided by domains outside this list (including websites, emails, etc.)

    • hut.ao
    • snapgenshin.com
      • We only use this domain for system emails
    • dgp-studio.cn
      • We only use this domain for public email contact
    • snapgenshin.cn
    • hutao.ao
    • snaphutao.com
    ',9),s=[r];function l(n,d){return a(),i("div",null,s)}const p=e(o,[["render",l],["__file","privacy-notice.html.vue"]]);export{p as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as i,e as t}from"./app-5a96e1e2.js";const o={},r=t('

    User Data and Privacy Notice

    Personal Information

    The nature of Snap Hutao project states it does not collect any personal information data.

    Regular Data Usage

    Snap Hutao respects the privacy of users, and we're currently using data as described below:

    • Once using Snap Hutao,the database file in the data directory

      • Store
        • MiHoYo BBS and HoYoLab cookie
        • Snap Hutao program settings
        • All other user data
    • When using Snap Hutao, we collect anonymously logs data for development and statistical purposes when program stops unexpectedly or throw an error, including - User device ID - Error or crash log - Active user statistical data

    • When using Hutao Database (Abyss Record/Abyss Stats) feature and select Upload Data

      • Upload data to Hutao API, including
        • User's in-game UID
        • User's Abyss record
        • User's character information including artifact and weapon data
    • After using Real-time Notes features

      • Create a Windows scheduled task to fetch data timely
    • After using server switch feature in Game Laucher, in Snap Hutao's data directory

      • Store game files for server switch usage
    • After using Hutao Account features, Hutao Account system server will

      • Store
        • User registered email address
        • Encrypted password

    Trustable Domains

    Snap Hutao project is holding the following domains, they are trustable in this project scope, please be wary of information provided by domains outside this list (including websites, emails, etc.)

    • hut.ao
    • snapgenshin.com
      • We only use this domain for system emails
    • dgp-studio.cn
      • We only use this domain for public email contact
    • snapgenshin.cn
    • hutao.ao
    • snaphutao.com
    ',9),s=[r];function l(n,d){return a(),i("div",null,s)}const p=e(o,[["render",l],["__file","privacy-notice.html.vue"]]);export{p as default}; diff --git a/assets/project.html-8bb151df.js b/assets/project.html-29490bdd.js similarity index 97% rename from assets/project.html-8bb151df.js rename to assets/project.html-29490bdd.js index 9f331a161..628bfa73d 100644 --- a/assets/project.html-8bb151df.js +++ b/assets/project.html-29490bdd.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as u,c as s,a as e,b as t,d as l,w as a}from"./app-8966c29b.js";const c={},d=e("h1",{id:"project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#project","aria-hidden":"true"},"#"),t(" Project")],-1),h=e("p",null,"Snap Hutao is an open-source Genshin Impact toolkit under MIT license, designed for modern Windows platform to improve the gaming experience for desktop players. By combining existing official resources with new features designed by the development team, it provides a complete and useful set of tools without the need to rely on mobile devices. Snap Hutao does not take any destructive modification to the game client to ensure the security of the toolkit.",-1),m=e("h2",{id:"project-resource",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#project-resource","aria-hidden":"true"},"#"),t(" Project Resource")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},f={href:"https://translate.hut.ao/",target:"_blank",rel:"noopener noreferrer"},_=e("h2",{id:"feature-overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#feature-overview","aria-hidden":"true"},"#"),t(" Feature Overview")],-1),v=e("ul",null,[e("li",null,"Support using web login or Cookie input to sign in to MiYouShe and HoYoLAB"),e("li",null,"Support daily checkin")],-1),g=e("ul",null,[e("li",null,"Game server convert er"),e("li",null,"Game account switcher"),e("li",null,"Customized frame rate limit"),e("li",null,"Game patch download")],-1),b=e("ul",null,[e("li",null,"Refresh data from game"),e("li",null,"Import and export UIGF format data file"),e("li",null,"Global wish statistics")],-1),w=e("ul",null,[e("li",null,"Export achievement data from game"),e("li",null,"Import and export UIAF format data file")],-1),y=e("ul",null,[e("li",null,"Support multi account real-time note"),e("li",null,"Customized refresh cycle"),e("li",null,"Windows native style notification push")],-1),I=e("ul",null,[e("li",null,"Support multiple source synchronization"),e("li",null,"Artifact rating & CRIT rating"),e("li",null,"Export my character data as image to clipboard")],-1),k=e("ul",null,[e("li",null,"Details of monster and blessing for each schedule"),e("li",null,"Sync detailed battle data for current schedule and store data in local device forever"),e("li",null,[t("Hutao Database (Spiral Abyss Database) "),e("ul",null,[e("li",null,"Character usage rate"),e("li",null,"Character appearance rate"),e("li",null,"Team lineup count"),e("li",null,"Character constellation")])])],-1),x=e("ul",null,[e("li",null,"Support to initial dev plan from my characters' data and WIKI data"),e("li",null,"Support multiple archives")],-1),S=e("li",null,[e("a",{href:"features/hutao-settings#snap-hutao-account"},"Snap Hutao Account"),e("ul",null,[e("li",null,"Wish data backup"),e("li",null,"Wish stat-based prediction")])],-1);function C(W,A){const o=i("ExternalLinkIcon"),n=i("RouterLink");return u(),s("div",null,[d,h,m,e("ul",null,[e("li",null,[e("a",p,[t("GitHub code repository"),l(o)])]),e("li",null,[e("a",f,[t("Crowdin localization translation"),l(o)])]),e("li",null,[l(n,{to:"/en/community.html"},{default:a(()=>[t("Snap Hutao Community")]),_:1})])]),_,e("ul",null,[e("li",null,[l(n,{to:"/en/features/dashboard.html"},{default:a(()=>[t("In-game announcement & event countdown")]),_:1})]),e("li",null,[l(n,{to:"/en/features/mhy-account-switch.html"},{default:a(()=>[t("MiHoYo BBS multi account login")]),_:1}),v]),e("li",null,[l(n,{to:"/en/features/game-launcher.html"},{default:a(()=>[t("Advanced game launcher")]),_:1}),g]),e("li",null,[l(n,{to:"/en/features/wish-export.html"},{default:a(()=>[t("Wish history management")]),_:1}),b]),e("li",null,[l(n,{to:"/en/features/achievements.html"},{default:a(()=>[t("Achievement management")]),_:1}),w]),e("li",null,[l(n,{to:"/en/features/real-time-notes.html"},{default:a(()=>[t("Real-time Note")]),_:1}),y]),e("li",null,[l(n,{to:"/en/features/character-data.html"},{default:a(()=>[t("My Characters")]),_:1}),I]),e("li",null,[l(n,{to:"/en/features/hutao-API.html"},{default:a(()=>[t("Spiral Abyss")]),_:1}),k]),e("li",null,[l(n,{to:"/en/features/develop-plan.html"},{default:a(()=>[t("Development Plan")]),_:1}),x]),e("li",null,[t("WIKI data "),e("ul",null,[e("li",null,[l(n,{to:"/en/features/character-wiki.html"},{default:a(()=>[t("Character WIKI")]),_:1})]),e("li",null,[l(n,{to:"/en/features/weapon-wiki.html"},{default:a(()=>[t("Weapon WIKI")]),_:1})]),e("li",null,[l(n,{to:"/en/features/monster-wiki.html"},{default:a(()=>[t("Monster WIKI")]),_:1})])])]),S])])}const G=r(c,[["render",C],["__file","project.html.vue"]]);export{G as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as u,c as s,a as e,b as t,d as l,w as a}from"./app-5a96e1e2.js";const c={},d=e("h1",{id:"project",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#project","aria-hidden":"true"},"#"),t(" Project")],-1),h=e("p",null,"Snap Hutao is an open-source Genshin Impact toolkit under MIT license, designed for modern Windows platform to improve the gaming experience for desktop players. By combining existing official resources with new features designed by the development team, it provides a complete and useful set of tools without the need to rely on mobile devices. Snap Hutao does not take any destructive modification to the game client to ensure the security of the toolkit.",-1),m=e("h2",{id:"project-resource",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#project-resource","aria-hidden":"true"},"#"),t(" Project Resource")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},f={href:"https://translate.hut.ao/",target:"_blank",rel:"noopener noreferrer"},_=e("h2",{id:"feature-overview",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#feature-overview","aria-hidden":"true"},"#"),t(" Feature Overview")],-1),v=e("ul",null,[e("li",null,"Support using web login or Cookie input to sign in to MiYouShe and HoYoLAB"),e("li",null,"Support daily checkin")],-1),g=e("ul",null,[e("li",null,"Game server convert er"),e("li",null,"Game account switcher"),e("li",null,"Customized frame rate limit"),e("li",null,"Game patch download")],-1),b=e("ul",null,[e("li",null,"Refresh data from game"),e("li",null,"Import and export UIGF format data file"),e("li",null,"Global wish statistics")],-1),w=e("ul",null,[e("li",null,"Export achievement data from game"),e("li",null,"Import and export UIAF format data file")],-1),y=e("ul",null,[e("li",null,"Support multi account real-time note"),e("li",null,"Customized refresh cycle"),e("li",null,"Windows native style notification push")],-1),I=e("ul",null,[e("li",null,"Support multiple source synchronization"),e("li",null,"Artifact rating & CRIT rating"),e("li",null,"Export my character data as image to clipboard")],-1),k=e("ul",null,[e("li",null,"Details of monster and blessing for each schedule"),e("li",null,"Sync detailed battle data for current schedule and store data in local device forever"),e("li",null,[t("Hutao Database (Spiral Abyss Database) "),e("ul",null,[e("li",null,"Character usage rate"),e("li",null,"Character appearance rate"),e("li",null,"Team lineup count"),e("li",null,"Character constellation")])])],-1),x=e("ul",null,[e("li",null,"Support to initial dev plan from my characters' data and WIKI data"),e("li",null,"Support multiple archives")],-1),S=e("li",null,[e("a",{href:"features/hutao-settings#snap-hutao-account"},"Snap Hutao Account"),e("ul",null,[e("li",null,"Wish data backup"),e("li",null,"Wish stat-based prediction")])],-1);function C(W,A){const o=i("ExternalLinkIcon"),n=i("RouterLink");return u(),s("div",null,[d,h,m,e("ul",null,[e("li",null,[e("a",p,[t("GitHub code repository"),l(o)])]),e("li",null,[e("a",f,[t("Crowdin localization translation"),l(o)])]),e("li",null,[l(n,{to:"/en/community.html"},{default:a(()=>[t("Snap Hutao Community")]),_:1})])]),_,e("ul",null,[e("li",null,[l(n,{to:"/en/features/dashboard.html"},{default:a(()=>[t("In-game announcement & event countdown")]),_:1})]),e("li",null,[l(n,{to:"/en/features/mhy-account-switch.html"},{default:a(()=>[t("MiHoYo BBS multi account login")]),_:1}),v]),e("li",null,[l(n,{to:"/en/features/game-launcher.html"},{default:a(()=>[t("Advanced game launcher")]),_:1}),g]),e("li",null,[l(n,{to:"/en/features/wish-export.html"},{default:a(()=>[t("Wish history management")]),_:1}),b]),e("li",null,[l(n,{to:"/en/features/achievements.html"},{default:a(()=>[t("Achievement management")]),_:1}),w]),e("li",null,[l(n,{to:"/en/features/real-time-notes.html"},{default:a(()=>[t("Real-time Note")]),_:1}),y]),e("li",null,[l(n,{to:"/en/features/character-data.html"},{default:a(()=>[t("My Characters")]),_:1}),I]),e("li",null,[l(n,{to:"/en/features/hutao-API.html"},{default:a(()=>[t("Spiral Abyss")]),_:1}),k]),e("li",null,[l(n,{to:"/en/features/develop-plan.html"},{default:a(()=>[t("Development Plan")]),_:1}),x]),e("li",null,[t("WIKI data "),e("ul",null,[e("li",null,[l(n,{to:"/en/features/character-wiki.html"},{default:a(()=>[t("Character WIKI")]),_:1})]),e("li",null,[l(n,{to:"/en/features/weapon-wiki.html"},{default:a(()=>[t("Weapon WIKI")]),_:1})]),e("li",null,[l(n,{to:"/en/features/monster-wiki.html"},{default:a(()=>[t("Monster WIKI")]),_:1})])])]),S])])}const G=r(c,[["render",C],["__file","project.html.vue"]]);export{G as default}; diff --git a/assets/project.html-c2c3c465.js b/assets/project.html-877937ff.js similarity index 97% rename from assets/project.html-c2c3c465.js rename to assets/project.html-877937ff.js index 4bd0b0368..6c2e81322 100644 --- a/assets/project.html-c2c3c465.js +++ b/assets/project.html-877937ff.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as s,c as h,a as l,b as t,d as e,w as u}from"./app-8966c29b.js";const r={},_=l("h1",{id:"项目说明",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#项目说明","aria-hidden":"true"},"#"),t(" 项目说明")],-1),d=l("p",null,"胡桃工具箱是一款以 MIT 协议开源的原神工具箱,专为现代化 Windows 平台设计,旨在改善桌面端玩家的游戏体验。通过将既有的官方资源与开发团队设计的全新 功能相结合,它提供了一套完整且实用的工具集,且无需依赖任何移动设备。它不对游戏客户端进行任何破坏性修改以确保工具箱的安全性。",-1),c=l("h2",{id:"加入我们",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#加入我们","aria-hidden":"true"},"#"),t(" 加入我们")],-1),f={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XJPjE6ffuYPkZmXvujdP1ZDY2BqL8RDg&authKey=YHBYvW4KmPUpPjGwYwGduG7ZELhFIkd9QxLHuwBFmm4UvQH1ThWiv%2FKPgeckiqt4&noverify=0&group_code=982424236",target:"_blank",rel:"noopener noreferrer"},m=l("em",null,"Snap 开发交流群",-1),p=l("strong",null,"C# .NET 开发",-1),k=l("ul",null,[l("li",null,"包括服务端开发和桌面端开发")],-1),w=l("li",null,[l("strong",null,"网页前端"),l("ul",null,[l("li",null,"Snap Hutao 项目有意开发一个基于胡桃 API 的深渊数据库网页,并包含基础的胡桃账号管理功能")])],-1),z=l("li",null,[t("Python 开发 "),l("ul",null,[l("li",null,"服务端和自动化脚本")])],-1),b=l("li",null,"文档编写",-1),x=l("li",null,"视频制作和编辑",-1),g=l("h2",{id:"项目资源",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#项目资源","aria-hidden":"true"},"#"),t(" 项目资源")],-1),v={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},I={href:"https://translate.hut.ao/",target:"_blank",rel:"noopener noreferrer"},E=l("h2",{id:"功能一览",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#功能一览","aria-hidden":"true"},"#"),t(" 功能一览")],-1),P=l("ul",null,[l("li",null,"支持以网页登录和输入 Cookie 的方式登录米游社和 HoYoLAB"),l("li",null,"支持签到奖励")],-1),B=l("ul",null,[l("li",null,"服务器切换"),l("li",null,"游戏账号切换"),l("li",null,"自定义帧率上限"),l("li",null,"游戏补丁包下载")],-1),H=l("ul",null,[l("li",null,"从游戏数据中刷新数据"),l("li",null,"导入/导出 UIGF 数据文件"),l("li",null,"全局祈愿数据统计")],-1),L=l("ul",null,[l("li",null,"从游戏数据中刷新数据"),l("li",null,"导入/导出 UIAF 数据文件")],-1),q=l("ul",null,[l("li",null,"支持多账号实时便笺"),l("li",null,"自定义刷新间隔"),l("li",null,"Windows 原生通知推送")],-1),A=l("ul",null,[l("li",null,"支持多数据源同步数据"),l("li",null,"圣遗物评分和双爆评分"),l("li",null,"导出我的角色数据截图")],-1),F=l("ul",null,[l("li",null,"每期怪物和渊月祝福详情"),l("li",null,"同步深境螺旋分详情战斗数据"),l("li",null,[t("胡桃深渊数据库 "),l("ul",null,[l("li",null,"角色使用率"),l("li",null,"角色出场率"),l("li",null,"队伍出场统计"),l("li",null,"角色持有率")])])],-1),G=l("ul",null,[l("li",null,"支持从实时数据和 WIKI 数据创建角色和武器养成计划"),l("li",null,"支持多计划存档")],-1),S=l("li",null,[l("a",{href:"features/hutao-settings#%E8%83%A1%E6%A1%83%E5%B8%90%E5%8F%B7"},"胡桃云账号系统"),l("ul",null,[l("li",null,"祈愿数据备份"),l("li",null,"祈愿统计预测")])],-1);function W(Y,j){const o=i("ExternalLinkIcon"),n=i("RouterLink");return s(),h("div",null,[_,d,c,l("p",null,[t("如果你有以下经验之一且有兴趣加入 Snap Hutao 开发团队,并接触到更多的原神开源项目,你可以通过加入 QQ 群"),l("a",f,[m,e(o)]),t("来联系我们。")]),l("ul",null,[l("li",null,[e(n,{to:"/zh/development/contribute.html"},{default:u(()=>[p]),_:1}),k]),w,z,b,x]),g,l("ul",null,[l("li",null,[l("a",v,[t("GitHub 代码库"),e(o)])]),l("li",null,[l("a",I,[t("Crowdin 本地化翻译"),e(o)])]),l("li",null,[e(n,{to:"/zh/community.html"},{default:u(()=>[t("Snap Hutao 用户社区")]),_:1})])]),E,l("ul",null,[l("li",null,[e(n,{to:"/zh/features/dashboard.html"},{default:u(()=>[t("游戏内公告及倒计时")]),_:1})]),l("li",null,[e(n,{to:"/zh/features/mhy-account-switch.html"},{default:u(()=>[t("米哈游论坛多账号登录支持")]),_:1}),P]),l("li",null,[e(n,{to:"/zh/features/game-launcher.html"},{default:u(()=>[t("高级启动器")]),_:1}),B]),l("li",null,[e(n,{to:"/zh/features/wish-export.html"},{default:u(()=>[t("祈愿记录管理")]),_:1}),H]),l("li",null,[e(n,{to:"/zh/features/achievements.html"},{default:u(()=>[t("成就管理")]),_:1}),L]),l("li",null,[e(n,{to:"/zh/features/real-time-notes.html"},{default:u(()=>[t("实时便笺")]),_:1}),q]),l("li",null,[e(n,{to:"/zh/features/character-data.html"},{default:u(()=>[t("我的角色")]),_:1}),A]),l("li",null,[e(n,{to:"/zh/features/hutao-API.html"},{default:u(()=>[t("深境螺旋")]),_:1}),F]),l("li",null,[e(n,{to:"/zh/features/develop-plan.html"},{default:u(()=>[t("养成计划")]),_:1}),G]),l("li",null,[t("WIKI 数据 "),l("ul",null,[l("li",null,[e(n,{to:"/zh/features/character-wiki.html"},{default:u(()=>[t("角色资料")]),_:1})]),l("li",null,[e(n,{to:"/zh/features/weapon-wiki.html"},{default:u(()=>[t("武器资料")]),_:1})]),l("li",null,[e(n,{to:"/zh/features/monster-wiki.html"},{default:u(()=>[t("怪物资料")]),_:1})])])]),S])])}const K=a(r,[["render",W],["__file","project.html.vue"]]);export{K as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as s,c as h,a as l,b as t,d as e,w as u}from"./app-5a96e1e2.js";const r={},_=l("h1",{id:"项目说明",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#项目说明","aria-hidden":"true"},"#"),t(" 项目说明")],-1),d=l("p",null,"胡桃工具箱是一款以 MIT 协议开源的原神工具箱,专为现代化 Windows 平台设计,旨在改善桌面端玩家的游戏体验。通过将既有的官方资源与开发团队设计的全新 功能相结合,它提供了一套完整且实用的工具集,且无需依赖任何移动设备。它不对游戏客户端进行任何破坏性修改以确保工具箱的安全性。",-1),c=l("h2",{id:"加入我们",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#加入我们","aria-hidden":"true"},"#"),t(" 加入我们")],-1),f={href:"http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XJPjE6ffuYPkZmXvujdP1ZDY2BqL8RDg&authKey=YHBYvW4KmPUpPjGwYwGduG7ZELhFIkd9QxLHuwBFmm4UvQH1ThWiv%2FKPgeckiqt4&noverify=0&group_code=982424236",target:"_blank",rel:"noopener noreferrer"},m=l("em",null,"Snap 开发交流群",-1),p=l("strong",null,"C# .NET 开发",-1),k=l("ul",null,[l("li",null,"包括服务端开发和桌面端开发")],-1),w=l("li",null,[l("strong",null,"网页前端"),l("ul",null,[l("li",null,"Snap Hutao 项目有意开发一个基于胡桃 API 的深渊数据库网页,并包含基础的胡桃账号管理功能")])],-1),z=l("li",null,[t("Python 开发 "),l("ul",null,[l("li",null,"服务端和自动化脚本")])],-1),b=l("li",null,"文档编写",-1),x=l("li",null,"视频制作和编辑",-1),g=l("h2",{id:"项目资源",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#项目资源","aria-hidden":"true"},"#"),t(" 项目资源")],-1),v={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},I={href:"https://translate.hut.ao/",target:"_blank",rel:"noopener noreferrer"},E=l("h2",{id:"功能一览",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#功能一览","aria-hidden":"true"},"#"),t(" 功能一览")],-1),P=l("ul",null,[l("li",null,"支持以网页登录和输入 Cookie 的方式登录米游社和 HoYoLAB"),l("li",null,"支持签到奖励")],-1),B=l("ul",null,[l("li",null,"服务器切换"),l("li",null,"游戏账号切换"),l("li",null,"自定义帧率上限"),l("li",null,"游戏补丁包下载")],-1),H=l("ul",null,[l("li",null,"从游戏数据中刷新数据"),l("li",null,"导入/导出 UIGF 数据文件"),l("li",null,"全局祈愿数据统计")],-1),L=l("ul",null,[l("li",null,"从游戏数据中刷新数据"),l("li",null,"导入/导出 UIAF 数据文件")],-1),q=l("ul",null,[l("li",null,"支持多账号实时便笺"),l("li",null,"自定义刷新间隔"),l("li",null,"Windows 原生通知推送")],-1),A=l("ul",null,[l("li",null,"支持多数据源同步数据"),l("li",null,"圣遗物评分和双爆评分"),l("li",null,"导出我的角色数据截图")],-1),F=l("ul",null,[l("li",null,"每期怪物和渊月祝福详情"),l("li",null,"同步深境螺旋分详情战斗数据"),l("li",null,[t("胡桃深渊数据库 "),l("ul",null,[l("li",null,"角色使用率"),l("li",null,"角色出场率"),l("li",null,"队伍出场统计"),l("li",null,"角色持有率")])])],-1),G=l("ul",null,[l("li",null,"支持从实时数据和 WIKI 数据创建角色和武器养成计划"),l("li",null,"支持多计划存档")],-1),S=l("li",null,[l("a",{href:"features/hutao-settings#%E8%83%A1%E6%A1%83%E5%B8%90%E5%8F%B7"},"胡桃云账号系统"),l("ul",null,[l("li",null,"祈愿数据备份"),l("li",null,"祈愿统计预测")])],-1);function W(Y,j){const o=i("ExternalLinkIcon"),n=i("RouterLink");return s(),h("div",null,[_,d,c,l("p",null,[t("如果你有以下经验之一且有兴趣加入 Snap Hutao 开发团队,并接触到更多的原神开源项目,你可以通过加入 QQ 群"),l("a",f,[m,e(o)]),t("来联系我们。")]),l("ul",null,[l("li",null,[e(n,{to:"/zh/development/contribute.html"},{default:u(()=>[p]),_:1}),k]),w,z,b,x]),g,l("ul",null,[l("li",null,[l("a",v,[t("GitHub 代码库"),e(o)])]),l("li",null,[l("a",I,[t("Crowdin 本地化翻译"),e(o)])]),l("li",null,[e(n,{to:"/zh/community.html"},{default:u(()=>[t("Snap Hutao 用户社区")]),_:1})])]),E,l("ul",null,[l("li",null,[e(n,{to:"/zh/features/dashboard.html"},{default:u(()=>[t("游戏内公告及倒计时")]),_:1})]),l("li",null,[e(n,{to:"/zh/features/mhy-account-switch.html"},{default:u(()=>[t("米哈游论坛多账号登录支持")]),_:1}),P]),l("li",null,[e(n,{to:"/zh/features/game-launcher.html"},{default:u(()=>[t("高级启动器")]),_:1}),B]),l("li",null,[e(n,{to:"/zh/features/wish-export.html"},{default:u(()=>[t("祈愿记录管理")]),_:1}),H]),l("li",null,[e(n,{to:"/zh/features/achievements.html"},{default:u(()=>[t("成就管理")]),_:1}),L]),l("li",null,[e(n,{to:"/zh/features/real-time-notes.html"},{default:u(()=>[t("实时便笺")]),_:1}),q]),l("li",null,[e(n,{to:"/zh/features/character-data.html"},{default:u(()=>[t("我的角色")]),_:1}),A]),l("li",null,[e(n,{to:"/zh/features/hutao-API.html"},{default:u(()=>[t("深境螺旋")]),_:1}),F]),l("li",null,[e(n,{to:"/zh/features/develop-plan.html"},{default:u(()=>[t("养成计划")]),_:1}),G]),l("li",null,[t("WIKI 数据 "),l("ul",null,[l("li",null,[e(n,{to:"/zh/features/character-wiki.html"},{default:u(()=>[t("角色资料")]),_:1})]),l("li",null,[e(n,{to:"/zh/features/weapon-wiki.html"},{default:u(()=>[t("武器资料")]),_:1})]),l("li",null,[e(n,{to:"/zh/features/monster-wiki.html"},{default:u(()=>[t("怪物资料")]),_:1})])])]),S])])}const K=a(r,[["render",W],["__file","project.html.vue"]]);export{K as default}; diff --git a/assets/quick-start.html-7495b37d.js b/assets/quick-start.html-2537d0db.js similarity index 99% rename from assets/quick-start.html-7495b37d.js rename to assets/quick-start.html-2537d0db.js index d29a4fd9c..4ce28987a 100644 --- a/assets/quick-start.html-7495b37d.js +++ b/assets/quick-start.html-2537d0db.js @@ -1 +1 @@ -import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as h,c as _,d as n,w as l,a as e,b as t,e as r}from"./app-8966c29b.js";const p={},v=r('

    快速开始

    遵循这篇快速开始文档,你将可以快速地将胡桃工具箱设置为可用状态。

    最低系统要求

    要求规格
    最低可运行系统版本Windows 10 Build 19045 (22H2)
    Windows 11 Build 22621 (22H2)
    推荐系统版本Windows 11 Build 22621 (22H2) 或更高版本
    必要组件Windows Update, App Installer
    可选组件WebView2 Runtime

    不支持的系统版本

    1. LTSC 和 LTSB 版本系统由于不包含微软商店,不在支持列表中
    2. Windows 10 Build 19041 亦可以安装, 但部分功能会因内核问题无法使用,故该版本下的胡桃工具箱问题将不会被处理
    3. Windows Insider 预览版本的问题不会被处理

    下载胡桃工具箱

    全新安装

    无论使用何种安装方式,应用包来源和注册授权都由微软商店管理

    ',9),b=e("p",null,[t("微软商店链接:"),e("a",{href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},"Snap Hutao")],-1),f=e("p",null,"在 Windows 10 和 Windows 11 下你可以直接点击上面的按钮来下载胡桃工具箱",-1),w=e("li",null,"启动 PowerShell",-1),g=e("li",null,[t("执行命令 "),e("code",null,'winget install "Snap Hutao"')],-1),m=e("li",null,[t("访问胡桃工具箱"),e("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"最新发布页面")],-1),S=e("li",null,"下载 MSIX 应用包",-1),A=e("h3",{id:"从侧载版升级至商店版",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#从侧载版升级至商店版","aria-hidden":"true"},"#"),t(" 从侧载版升级至商店版")],-1),k=e("p",null,"如果你之前安装了 Snap Hutao 侧载版则需要先卸载旧版本再进行全新安装",-1),x=e("ul",null,[e("li",null,"只要不手动删除数据目录,你的数据不会受到影响")],-1),H=e("li",null,"按照上述方法全新安装商店版应用",-1),W=e("h3",{id:"更新胡桃工具箱",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#更新胡桃工具箱","aria-hidden":"true"},"#"),t(" 更新胡桃工具箱")],-1),X=e("p",null,[e("strong",null,"无论你使用何种方式安装了应用,你都可以选择任意的方式去更新它,不必选择和安装时一样的方法,因为微软商店是应用包唯一来源")],-1),I=e("ul",null,[e("li",null,"启动微软商店"),e("li",null,"点击左下角的库,查看到你目前已安装的全部应用"),e("li",null,"点击界面右上角的获取更新,你的应用将会被更新")],-1),N=e("p",null,[t("若点击获取更新后胡桃仍然没有获取到更新,则可以进入"),e("code",null,"Snap Hutao"),t("的"),e("a",{href:"(https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52)"},"商店详情页面"),t(",等待信息加载完成来获取更新")],-1),V=e("ul",null,[e("li",null,"启动 PowerShell"),e("li",null,[t("执行命令 "),e("code",null,'winget upgrade "Snap Hutao"')]),e("li",null,"根据提示允许安装")],-1),B=e("ul",null,[e("li",null,[t("访问胡桃工具箱"),e("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"最新发布页面")]),e("li",null,"下载 MSIX 应用包"),e("li",null,"直接运行 MSIX 应用包以执行安装")],-1),C=r('

    安装可选组件

    通过可选组件,胡桃工具箱可以通过系统级的环境来更方便地实现一些功能,它们不是强制要求的组件,但可以带来更好的体验

    WebView2 运行时

    WebView2 运行时由微软提供,其允许胡桃在程序内低开销地启用一个内置的浏览器。通过该组件,胡桃允许用户通过 WebView2 内置浏览器登录米游社账号。

    微软官网的底部,你可以找到常青独立安装程序,选择x64下载并根据提示安装即可

    添加第一个米游社账号

    在进入胡桃工具箱主界面后,点击左下角文档按钮和设置按钮中间的账号面板。在弹出的米游社账号面板中,根据你的账号类型选择对应的登录按钮。

    如果你的原神账号是米哈游的国服账号,需要在米游社类别内登录;如果你的原神账号是 HoYoverse 的国际服账号,需要在 HoYoLAB 类别内登录。

    无论是国服账号还是国际服账号,你都有网页登录Cookie登录两种登录方式

    ',9),M=e("p",null,[e("strong",null,"网页登录需要使用 Microsoft WebView2 运行时组件")],-1),P=e("ol",null,[e("li",null,[t("点击账号面板中的"),e("code",null,"网页登录"),t("按钮,胡桃将会通过 WebView2 打开米游社登录界面")]),e("li",null,"在该界面中登录你的米游社账号,登录成功后你将进入米游社通行证界面并看到登录账号的信息"),e("li",null,[t("点击程序主界面右上角的"),e("code",null,"我已登录"),t("按钮,胡桃工具箱会将当前账号添加进本地客户端,并在账号面板中显示出来")])],-1),J=e("p",null,[t("如果你能希望使用自己提取的米哈游通行证 Cookie 登录到胡桃工具箱,可以在登录面板中点击 "),e("code",null,"手动输入"),t(",并在弹出的窗口中输入包含 SToken 的 Cookie。 若你填入了一个有效的 Cookie,在点击"),e("code",null,"确认"),t("后你将成功登录你的米游社账号并在账号面板中显示出来。")],-1),T=e("hr",null,null,-1),L=e("p",null,[e("em",null,[e("strong",null,"至此,你已经初步设置好了你的胡桃工具箱。你现在可以自由探索这个应用,你也可以在这个这个网站中找到胡桃的全部帮助文档。")])],-1);function y(z,R){const u=s("ms-store-badge"),a=s("RouterLink"),d=s("Tabs");return h(),_("div",null,[v,n(d,{id:"84",data:[{id:"使用微软商店安装"},{id:"使用 winget 安装"},{id:"使用 MSIX 安装包安装"}]},{title0:l(({value:i,isActive:o})=>[t("使用微软商店安装")]),title1:l(({value:i,isActive:o})=>[t("使用 winget 安装")]),title2:l(({value:i,isActive:o})=>[t("使用 MSIX 安装包安装")]),tab0:l(({value:i,isActive:o})=>[n(u,{productid:"9PH4NXJ2JN52",theme:"auto"}),b,f]),tab1:l(({value:i,isActive:o})=>[e("ul",null,[w,g,e("li",null,[t("根据提示允许安装 "),e("ul",null,[e("li",null,[t("如果安装失败或显示缺少依赖包,或卡在安装框架阶段,请参考"),n(a,{to:"/zh/advanced/dependency.html"},{default:l(()=>[t("手动安装依赖项")]),_:1}),t("一文")])])])])]),tab2:l(({value:i,isActive:o})=>[e("ul",null,[m,S,e("li",null,[t("直接运行 MSIX 应用包以执行安装 "),e("ul",null,[e("li",null,[t("如果安装失败或显示缺少依赖包,或卡在安装框架阶段,请参考"),n(a,{to:"/zh/advanced/dependency.html"},{default:l(()=>[t("手动安装依赖项")]),_:1}),t("一文")])])])])]),_:1}),A,k,e("ul",null,[e("li",null,[t("按照文档提供的"),n(a,{to:"/zh/advanced/uninstall.html"},{default:l(()=>[t("卸载方法")]),_:1}),t("卸载侧载版应用 "),x]),H]),W,X,n(d,{id:"178",data:[{id:"使用微软商店更新"},{id:"使用 winget 更新"},{id:"使用 MSIX 安装包更新"}]},{title0:l(({value:i,isActive:o})=>[t("使用微软商店更新")]),title1:l(({value:i,isActive:o})=>[t("使用 winget 更新")]),title2:l(({value:i,isActive:o})=>[t("使用 MSIX 安装包更新")]),tab0:l(({value:i,isActive:o})=>[I,N]),tab1:l(({value:i,isActive:o})=>[V]),tab2:l(({value:i,isActive:o})=>[B]),_:1}),C,n(d,{id:"267",data:[{id:"网页登录"},{id:"Cookie 登录"}]},{title0:l(({value:i,isActive:o})=>[t("网页登录")]),title1:l(({value:i,isActive:o})=>[t("Cookie 登录")]),tab0:l(({value:i,isActive:o})=>[M,P]),tab1:l(({value:i,isActive:o})=>[J]),_:1}),T,L])}const G=c(p,[["render",y],["__file","quick-start.html.vue"]]);export{G as default}; +import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as h,c as _,d as n,w as l,a as e,b as t,e as r}from"./app-5a96e1e2.js";const p={},v=r('

    快速开始

    遵循这篇快速开始文档,你将可以快速地将胡桃工具箱设置为可用状态。

    最低系统要求

    要求规格
    最低可运行系统版本Windows 10 Build 19045 (22H2)
    Windows 11 Build 22621 (22H2)
    推荐系统版本Windows 11 Build 22621 (22H2) 或更高版本
    必要组件Windows Update, App Installer
    可选组件WebView2 Runtime

    不支持的系统版本

    1. LTSC 和 LTSB 版本系统由于不包含微软商店,不在支持列表中
    2. Windows 10 Build 19041 亦可以安装, 但部分功能会因内核问题无法使用,故该版本下的胡桃工具箱问题将不会被处理
    3. Windows Insider 预览版本的问题不会被处理

    下载胡桃工具箱

    全新安装

    无论使用何种安装方式,应用包来源和注册授权都由微软商店管理

    ',9),b=e("p",null,[t("微软商店链接:"),e("a",{href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},"Snap Hutao")],-1),f=e("p",null,"在 Windows 10 和 Windows 11 下你可以直接点击上面的按钮来下载胡桃工具箱",-1),w=e("li",null,"启动 PowerShell",-1),g=e("li",null,[t("执行命令 "),e("code",null,'winget install "Snap Hutao"')],-1),m=e("li",null,[t("访问胡桃工具箱"),e("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"最新发布页面")],-1),S=e("li",null,"下载 MSIX 应用包",-1),A=e("h3",{id:"从侧载版升级至商店版",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#从侧载版升级至商店版","aria-hidden":"true"},"#"),t(" 从侧载版升级至商店版")],-1),k=e("p",null,"如果你之前安装了 Snap Hutao 侧载版则需要先卸载旧版本再进行全新安装",-1),x=e("ul",null,[e("li",null,"只要不手动删除数据目录,你的数据不会受到影响")],-1),H=e("li",null,"按照上述方法全新安装商店版应用",-1),W=e("h3",{id:"更新胡桃工具箱",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#更新胡桃工具箱","aria-hidden":"true"},"#"),t(" 更新胡桃工具箱")],-1),X=e("p",null,[e("strong",null,"无论你使用何种方式安装了应用,你都可以选择任意的方式去更新它,不必选择和安装时一样的方法,因为微软商店是应用包唯一来源")],-1),I=e("ul",null,[e("li",null,"启动微软商店"),e("li",null,"点击左下角的库,查看到你目前已安装的全部应用"),e("li",null,"点击界面右上角的获取更新,你的应用将会被更新")],-1),N=e("p",null,[t("若点击获取更新后胡桃仍然没有获取到更新,则可以进入"),e("code",null,"Snap Hutao"),t("的"),e("a",{href:"(https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52)"},"商店详情页面"),t(",等待信息加载完成来获取更新")],-1),V=e("ul",null,[e("li",null,"启动 PowerShell"),e("li",null,[t("执行命令 "),e("code",null,'winget upgrade "Snap Hutao"')]),e("li",null,"根据提示允许安装")],-1),B=e("ul",null,[e("li",null,[t("访问胡桃工具箱"),e("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"最新发布页面")]),e("li",null,"下载 MSIX 应用包"),e("li",null,"直接运行 MSIX 应用包以执行安装")],-1),C=r('

    安装可选组件

    通过可选组件,胡桃工具箱可以通过系统级的环境来更方便地实现一些功能,它们不是强制要求的组件,但可以带来更好的体验

    WebView2 运行时

    WebView2 运行时由微软提供,其允许胡桃在程序内低开销地启用一个内置的浏览器。通过该组件,胡桃允许用户通过 WebView2 内置浏览器登录米游社账号。

    微软官网的底部,你可以找到常青独立安装程序,选择x64下载并根据提示安装即可

    添加第一个米游社账号

    在进入胡桃工具箱主界面后,点击左下角文档按钮和设置按钮中间的账号面板。在弹出的米游社账号面板中,根据你的账号类型选择对应的登录按钮。

    如果你的原神账号是米哈游的国服账号,需要在米游社类别内登录;如果你的原神账号是 HoYoverse 的国际服账号,需要在 HoYoLAB 类别内登录。

    无论是国服账号还是国际服账号,你都有网页登录Cookie登录两种登录方式

    ',9),M=e("p",null,[e("strong",null,"网页登录需要使用 Microsoft WebView2 运行时组件")],-1),P=e("ol",null,[e("li",null,[t("点击账号面板中的"),e("code",null,"网页登录"),t("按钮,胡桃将会通过 WebView2 打开米游社登录界面")]),e("li",null,"在该界面中登录你的米游社账号,登录成功后你将进入米游社通行证界面并看到登录账号的信息"),e("li",null,[t("点击程序主界面右上角的"),e("code",null,"我已登录"),t("按钮,胡桃工具箱会将当前账号添加进本地客户端,并在账号面板中显示出来")])],-1),J=e("p",null,[t("如果你能希望使用自己提取的米哈游通行证 Cookie 登录到胡桃工具箱,可以在登录面板中点击 "),e("code",null,"手动输入"),t(",并在弹出的窗口中输入包含 SToken 的 Cookie。 若你填入了一个有效的 Cookie,在点击"),e("code",null,"确认"),t("后你将成功登录你的米游社账号并在账号面板中显示出来。")],-1),T=e("hr",null,null,-1),L=e("p",null,[e("em",null,[e("strong",null,"至此,你已经初步设置好了你的胡桃工具箱。你现在可以自由探索这个应用,你也可以在这个这个网站中找到胡桃的全部帮助文档。")])],-1);function y(z,R){const u=s("ms-store-badge"),a=s("RouterLink"),d=s("Tabs");return h(),_("div",null,[v,n(d,{id:"84",data:[{id:"使用微软商店安装"},{id:"使用 winget 安装"},{id:"使用 MSIX 安装包安装"}]},{title0:l(({value:i,isActive:o})=>[t("使用微软商店安装")]),title1:l(({value:i,isActive:o})=>[t("使用 winget 安装")]),title2:l(({value:i,isActive:o})=>[t("使用 MSIX 安装包安装")]),tab0:l(({value:i,isActive:o})=>[n(u,{productid:"9PH4NXJ2JN52",theme:"auto"}),b,f]),tab1:l(({value:i,isActive:o})=>[e("ul",null,[w,g,e("li",null,[t("根据提示允许安装 "),e("ul",null,[e("li",null,[t("如果安装失败或显示缺少依赖包,或卡在安装框架阶段,请参考"),n(a,{to:"/zh/advanced/dependency.html"},{default:l(()=>[t("手动安装依赖项")]),_:1}),t("一文")])])])])]),tab2:l(({value:i,isActive:o})=>[e("ul",null,[m,S,e("li",null,[t("直接运行 MSIX 应用包以执行安装 "),e("ul",null,[e("li",null,[t("如果安装失败或显示缺少依赖包,或卡在安装框架阶段,请参考"),n(a,{to:"/zh/advanced/dependency.html"},{default:l(()=>[t("手动安装依赖项")]),_:1}),t("一文")])])])])]),_:1}),A,k,e("ul",null,[e("li",null,[t("按照文档提供的"),n(a,{to:"/zh/advanced/uninstall.html"},{default:l(()=>[t("卸载方法")]),_:1}),t("卸载侧载版应用 "),x]),H]),W,X,n(d,{id:"178",data:[{id:"使用微软商店更新"},{id:"使用 winget 更新"},{id:"使用 MSIX 安装包更新"}]},{title0:l(({value:i,isActive:o})=>[t("使用微软商店更新")]),title1:l(({value:i,isActive:o})=>[t("使用 winget 更新")]),title2:l(({value:i,isActive:o})=>[t("使用 MSIX 安装包更新")]),tab0:l(({value:i,isActive:o})=>[I,N]),tab1:l(({value:i,isActive:o})=>[V]),tab2:l(({value:i,isActive:o})=>[B]),_:1}),C,n(d,{id:"267",data:[{id:"网页登录"},{id:"Cookie 登录"}]},{title0:l(({value:i,isActive:o})=>[t("网页登录")]),title1:l(({value:i,isActive:o})=>[t("Cookie 登录")]),tab0:l(({value:i,isActive:o})=>[M,P]),tab1:l(({value:i,isActive:o})=>[J]),_:1}),T,L])}const G=c(p,[["render",y],["__file","quick-start.html.vue"]]);export{G as default}; diff --git a/assets/quick-start.html-5b6055dc.js b/assets/quick-start.html-e4021577.js similarity index 99% rename from assets/quick-start.html-5b6055dc.js rename to assets/quick-start.html-e4021577.js index 9387a9657..b2e9c990c 100644 --- a/assets/quick-start.html-5b6055dc.js +++ b/assets/quick-start.html-e4021577.js @@ -1 +1 @@ -import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as h,c as p,a as t,b as e,d as i,w as o,e as d}from"./app-8966c29b.js";const m={},f=t("h1",{id:"quick-start",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#quick-start","aria-hidden":"true"},"#"),e(" Quick Start")],-1),g={class:"hint-container tip"},_=t("p",{class:"hint-container-title"},"Tips",-1),b=t("strong",null,"Snap Hutao",-1),w=d('

    If you believe Snap Hutao is a good project and helps you, you can support us by the following ways

    commit_activity hutao-last-commit

    Minimum System Requirements

    RequirementAttribute
    Minimum Required OSWindows 10 Build 19045 (22H2) [1]
    Recommended OSWindows 11 Build 22621 (22H2) or later versions
    Required ComponentsWindows Update, App Installer
    Optional ComponentsWebView2 Runtime

    Download Snap Hutao

    Whatever installation method you used, package source and registration are always handled by Microsoft Store.

    ',7),S=t("p",null,[e("Microsoft Store Link:"),t("a",{href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},"Snap Hutao")],-1),v=t("p",null,"On Windows 10 and Windows 11 you can click the button above to download Snap Hutao.",-1),y=t("li",null,"Launch PowerShell",-1),H=t("li",null,[e("Execute command "),t("code",null,'winget install "Snap Hutao"')],-1),k=t("li",null,[e("Visit the "),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"latest release page"),e(" of Snap Hutao")],-1),M=t("li",null,"Download MSIX Package",-1),A=t("h3",{id:"upgrade-to-ms-store-version-from-sideload-versions",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#upgrade-to-ms-store-version-from-sideload-versions","aria-hidden":"true"},"#"),e(" Upgrade to MS Store Version from Sideload Versions")],-1),P=t("ul",null,[t("li",null,"You data will not lose as long as you don't delete data directory manually")],-1),D=t("li",null,"Follow the method above to install the Microsoft Store version application",-1),x=t("h2",{id:"update-snap-hutao",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#update-snap-hutao","aria-hidden":"true"},"#"),e(" Update Snap Hutao")],-1),I=t("p",null,[t("strong",null,"You can use any of the update methods, whatever method you used when you installed Snap Hutao. They don't need to be consistent, as Microsoft Store is the only source of packages.")],-1),G=t("ul",null,[t("li",null,"Launch Microsoft Store"),t("li",null,"Click on Library in the bottom left to see all apps you have installed"),t("li",null,[e("Click "),t("code",null,"Get updates"),e(" on the top right and your application will be updated")])],-1),R=t("p",null,[e("If you still don't receive the update, you may enter the Snap Hutao "),t("a",{href:"(https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52)"},"detail page"),e(" in Microsoft Store, to allow the store to fetch the latest metadata.")],-1),W=t("ul",null,[t("li",null,"Launch PowerShell"),t("li",null,[e("Execute command "),t("code",null,'winget upgrade "Snap Hutao"')]),t("li",null,"Follow the prompt to allow the upgrade")],-1),N=t("ul",null,[t("li",null,[e("Visit the "),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"latest release page"),e(" of Snap Hutao")]),t("li",null,"Download MSIX Package"),t("li",null,"Run the MSIX package directly to perform upgrade")],-1),V=d('

    Installing WebView2 Runtime

    WebView2 Runtime is provided by Microsoft, which enables a built-in browser at a low resource cost inside the program. As an optional component, WebView2 is not a mandatory component, but it will make some Snap Hutao's features easier.

    At the bottom of the Microsoft official page, you can findEvergreen Standalone Installer, choosex64download and install as prompted


    1. As LTSC and LTSB Windows versions do not contain Microsoft Store and some other necessary dependencies, they are not supported.Windows 10 Build 19041 is allowed to install Snap Hutao, but some features have known issues caused by Windows Os Kernal, those issues won't be fixed. ↩︎

    ',5);function q(L,C){const l=s("RouterLink"),u=s("ms-store-badge"),r=s("Tabs");return h(),p("div",null,[f,t("div",g,[_,t("p",null,[e("If you download and use "),b,e(",you are agree to our "),i(l,{to:"/en/statements/tos.html"},{default:o(()=>[e("terms of service")]),_:1})])]),w,i(r,{id:"100",data:[{id:"Microsoft Store"},{id:"winget"},{id:"GitHub"}]},{title0:o(({value:a,isActive:n})=>[e("Microsoft Store")]),title1:o(({value:a,isActive:n})=>[e("winget")]),title2:o(({value:a,isActive:n})=>[e("GitHub")]),tab0:o(({value:a,isActive:n})=>[i(u,{productid:"9PH4NXJ2JN52",theme:"auto"}),S,v]),tab1:o(({value:a,isActive:n})=>[t("ul",null,[y,H,t("li",null,[e("Follow the prompt to allow the installation "),t("ul",null,[t("li",null,[e("If failed install, receive error of missing dependency or stuck at framework installation stage, please refer to "),i(l,{to:"/en/advanced/dependency.html"},{default:o(()=>[e("Install Dependency Manually")]),_:1}),e(" document")])])])])]),tab2:o(({value:a,isActive:n})=>[t("ul",null,[k,M,t("li",null,[e("Run the MSIX package directly to perform installation "),t("ul",null,[t("li",null,[e("If failed install, receive error of missing dependency or stuck at framework installation stage, please refer to "),i(l,{to:"/en/advanced/dependency.html"},{default:o(()=>[e("Install Dependency Manually")]),_:1}),e(" document")])])])])]),_:1}),A,t("ul",null,[t("li",null,[e("Uninstall the sideload version with our "),i(l,{to:"/advanced/uninstall.html"},{default:o(()=>[e("uninstallation instruction document")]),_:1}),P]),D]),x,I,i(r,{id:"191",data:[{id:"Microsoft"},{id:"winget"},{id:"GitHub"}]},{title0:o(({value:a,isActive:n})=>[e("Microsoft")]),title1:o(({value:a,isActive:n})=>[e("winget")]),title2:o(({value:a,isActive:n})=>[e("GitHub")]),tab0:o(({value:a,isActive:n})=>[G,R]),tab1:o(({value:a,isActive:n})=>[W]),tab2:o(({value:a,isActive:n})=>[N]),_:1}),V])}const B=c(m,[["render",q],["__file","quick-start.html.vue"]]);export{B as default}; +import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as s,o as h,c as p,a as t,b as e,d as i,w as o,e as d}from"./app-5a96e1e2.js";const m={},f=t("h1",{id:"quick-start",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#quick-start","aria-hidden":"true"},"#"),e(" Quick Start")],-1),g={class:"hint-container tip"},_=t("p",{class:"hint-container-title"},"Tips",-1),b=t("strong",null,"Snap Hutao",-1),w=d('

    If you believe Snap Hutao is a good project and helps you, you can support us by the following ways

    commit_activity hutao-last-commit

    Minimum System Requirements

    RequirementAttribute
    Minimum Required OSWindows 10 Build 19045 (22H2) [1]
    Recommended OSWindows 11 Build 22621 (22H2) or later versions
    Required ComponentsWindows Update, App Installer
    Optional ComponentsWebView2 Runtime

    Download Snap Hutao

    Whatever installation method you used, package source and registration are always handled by Microsoft Store.

    ',7),S=t("p",null,[e("Microsoft Store Link:"),t("a",{href:"https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52",target:"_blank",rel:"noopener noreferrer"},"Snap Hutao")],-1),v=t("p",null,"On Windows 10 and Windows 11 you can click the button above to download Snap Hutao.",-1),y=t("li",null,"Launch PowerShell",-1),H=t("li",null,[e("Execute command "),t("code",null,'winget install "Snap Hutao"')],-1),k=t("li",null,[e("Visit the "),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"latest release page"),e(" of Snap Hutao")],-1),M=t("li",null,"Download MSIX Package",-1),A=t("h3",{id:"upgrade-to-ms-store-version-from-sideload-versions",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#upgrade-to-ms-store-version-from-sideload-versions","aria-hidden":"true"},"#"),e(" Upgrade to MS Store Version from Sideload Versions")],-1),P=t("ul",null,[t("li",null,"You data will not lose as long as you don't delete data directory manually")],-1),D=t("li",null,"Follow the method above to install the Microsoft Store version application",-1),x=t("h2",{id:"update-snap-hutao",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#update-snap-hutao","aria-hidden":"true"},"#"),e(" Update Snap Hutao")],-1),I=t("p",null,[t("strong",null,"You can use any of the update methods, whatever method you used when you installed Snap Hutao. They don't need to be consistent, as Microsoft Store is the only source of packages.")],-1),G=t("ul",null,[t("li",null,"Launch Microsoft Store"),t("li",null,"Click on Library in the bottom left to see all apps you have installed"),t("li",null,[e("Click "),t("code",null,"Get updates"),e(" on the top right and your application will be updated")])],-1),R=t("p",null,[e("If you still don't receive the update, you may enter the Snap Hutao "),t("a",{href:"(https://apps.microsoft.com/store/detail/snap-hutao/9PH4NXJ2JN52)"},"detail page"),e(" in Microsoft Store, to allow the store to fetch the latest metadata.")],-1),W=t("ul",null,[t("li",null,"Launch PowerShell"),t("li",null,[e("Execute command "),t("code",null,'winget upgrade "Snap Hutao"')]),t("li",null,"Follow the prompt to allow the upgrade")],-1),N=t("ul",null,[t("li",null,[e("Visit the "),t("a",{href:"https://github.com/DGP-Studio/Snap.Hutao/releases/latest/",target:"_blank",rel:"noopener noreferrer"},"latest release page"),e(" of Snap Hutao")]),t("li",null,"Download MSIX Package"),t("li",null,"Run the MSIX package directly to perform upgrade")],-1),V=d('

    Installing WebView2 Runtime

    WebView2 Runtime is provided by Microsoft, which enables a built-in browser at a low resource cost inside the program. As an optional component, WebView2 is not a mandatory component, but it will make some Snap Hutao's features easier.

    At the bottom of the Microsoft official page, you can findEvergreen Standalone Installer, choosex64download and install as prompted


    1. As LTSC and LTSB Windows versions do not contain Microsoft Store and some other necessary dependencies, they are not supported.Windows 10 Build 19041 is allowed to install Snap Hutao, but some features have known issues caused by Windows Os Kernal, those issues won't be fixed. ↩︎

    ',5);function q(L,C){const l=s("RouterLink"),u=s("ms-store-badge"),r=s("Tabs");return h(),p("div",null,[f,t("div",g,[_,t("p",null,[e("If you download and use "),b,e(",you are agree to our "),i(l,{to:"/en/statements/tos.html"},{default:o(()=>[e("terms of service")]),_:1})])]),w,i(r,{id:"100",data:[{id:"Microsoft Store"},{id:"winget"},{id:"GitHub"}]},{title0:o(({value:a,isActive:n})=>[e("Microsoft Store")]),title1:o(({value:a,isActive:n})=>[e("winget")]),title2:o(({value:a,isActive:n})=>[e("GitHub")]),tab0:o(({value:a,isActive:n})=>[i(u,{productid:"9PH4NXJ2JN52",theme:"auto"}),S,v]),tab1:o(({value:a,isActive:n})=>[t("ul",null,[y,H,t("li",null,[e("Follow the prompt to allow the installation "),t("ul",null,[t("li",null,[e("If failed install, receive error of missing dependency or stuck at framework installation stage, please refer to "),i(l,{to:"/en/advanced/dependency.html"},{default:o(()=>[e("Install Dependency Manually")]),_:1}),e(" document")])])])])]),tab2:o(({value:a,isActive:n})=>[t("ul",null,[k,M,t("li",null,[e("Run the MSIX package directly to perform installation "),t("ul",null,[t("li",null,[e("If failed install, receive error of missing dependency or stuck at framework installation stage, please refer to "),i(l,{to:"/en/advanced/dependency.html"},{default:o(()=>[e("Install Dependency Manually")]),_:1}),e(" document")])])])])]),_:1}),A,t("ul",null,[t("li",null,[e("Uninstall the sideload version with our "),i(l,{to:"/advanced/uninstall.html"},{default:o(()=>[e("uninstallation instruction document")]),_:1}),P]),D]),x,I,i(r,{id:"191",data:[{id:"Microsoft"},{id:"winget"},{id:"GitHub"}]},{title0:o(({value:a,isActive:n})=>[e("Microsoft")]),title1:o(({value:a,isActive:n})=>[e("winget")]),title2:o(({value:a,isActive:n})=>[e("GitHub")]),tab0:o(({value:a,isActive:n})=>[G,R]),tab1:o(({value:a,isActive:n})=>[W]),tab2:o(({value:a,isActive:n})=>[N]),_:1}),V])}const B=c(m,[["render",q],["__file","quick-start.html.vue"]]);export{B as default}; diff --git a/assets/real-time-notes.html-25aed809.js b/assets/real-time-notes.html-5f5b5c06.js similarity index 98% rename from assets/real-time-notes.html-25aed809.js rename to assets/real-time-notes.html-5f5b5c06.js index 26f6cd516..27489c43b 100644 --- a/assets/real-time-notes.html-25aed809.js +++ b/assets/real-time-notes.html-5f5b5c06.js @@ -1 +1 @@ -import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as d,c,a as l,b as e,d as a,w as t,e as r}from"./app-8966c29b.js";const s={},h=l("h1",{id:"实时便笺",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#实时便笺","aria-hidden":"true"},"#"),e(" 实时便笺")],-1),u={class:"hint-container info"},_=l("p",{class:"hint-container-title"},"相关信息",-1),m=l("p",null,[l("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01yhh71O1g6dyG80pQP_!!1797064093.png_.webp",alt:"live-data-tracking",loading:"lazy"})],-1),f=l("h2",{id:"添加角色",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#添加角色","aria-hidden":"true"},"#"),e(" 添加角色")],-1),p=l("li",null,[e("点击"),l("code",null,"添加角色"),e("按钮")],-1),x=l("li",null,[e("在弹出的"),l("code",null,"添加角色"),e("浮窗中,找到你要添加的游戏角色 UID,并单击其右侧的加号按钮")],-1),b=l("li",null,[e("实时便笺是间隔固定时间自动刷新的 "),l("ul",null,[l("li",null,[e("你可以点击窗口右上角的"),l("code",null,"通知设置"),e("来设置查询的间隔时间")]),l("li",null,[e("如您需要立即刷新以获取实时的最新数值,请单击"),l("code",null,"立即刷新"),e("按钮")])])],-1),g=r('

    验证用户与角色

    若你使用的是米游社帐号,则你的帐号非常容易受到风控机制的影响而触发验证码。在触发风控的情况下,实时便笺数据将无法刷新。 你可以点击实时便笺页面左上角的验证当前用户与角色按钮。点击后,胡桃会弹出验证窗口,在你完成验证后即可对受到验证码风控的帐号刷新数据。

    全局通知设置

    • 在窗口右上角点击通知设置可以修改实时便笺的全局设置,包括:
      • 启用/禁用数据自动刷新
      • 数据自动刷新间隔时间
      • 通知免打扰
      • 高优先度通知
        • 这将避免胡桃工具箱的通知被自动收入操作中心
        • 请注意,开启此设置可能会让您在日常使用电脑期间受到打扰
      • 自定义数据转发 Webhook
        • 胡桃客户端允许用户将获取到的实时便笺数据转发给其它程序以减少账号对米哈游 API 的请求
        • 将第三方程序的 HTTP API 接口填写在 实时便笺 Webhook Url 设置中,胡桃将以 POST 的方式将原始数据转发至该接口

    帐号独立设置

    • 胡桃工具箱的实时便笺功能允许用户对每一个被监控的帐号给予不同的设置
    • 将鼠标停留在需要被设置的角色实时便笺的窗体上
    • 点击其窗体右上角出现的设置图案按钮,即可修改如下参数
      • 原粹树脂提醒阈值
      • 洞天宝钱提醒阈值
      • 启用参量质变仪提醒
      • 启用每日委托上限提醒
      • 启用探索派遣完成提醒
    • 点击保存,即可保存您当前所设置的通知选项

    删除角色

    • 将鼠标停留在需要被设置的角色实时便笺的窗体上
    • 点击其窗体右上角出现的移除标志按钮,即可移除该角色对应的实时便笺
    ',8);function A(k,E){const i=o("RouterLink");return d(),c("div",null,[h,l("div",u,[_,l("p",null,[e("该功能需要你在胡桃工具箱中登录米游社帐号,登录方法可见"),a(i,{to:"/zh/features/mhy-account-switch.html"},{default:t(()=>[e("米游社多帐号切换")]),_:1}),e("文档")])]),m,f,l("ul",null,[p,x,l("li",null,[e("此时您添加的游戏角色即可显示在实时便笺页面中 "),l("ul",null,[b,l("li",null,[e('如出现"账号有风险,请前往米游社查看"字样的提示 '),l("ul",null,[l("li",null,[e("请参考"),a(i,{to:"/zh/advanced/exceptions.html#%E7%8A%B6%E6%80%811034-%E9%AA%8C%E8%AF%81%E5%A4%B1%E8%B4%A5"},{default:t(()=>[e("账号风险提示")]),_:1}),e("文档")])])])])])]),g])}const N=n(s,[["render",A],["__file","real-time-notes.html.vue"]]);export{N as default}; +import{_ as n}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as d,c,a as l,b as e,d as a,w as t,e as r}from"./app-5a96e1e2.js";const s={},h=l("h1",{id:"实时便笺",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#实时便笺","aria-hidden":"true"},"#"),e(" 实时便笺")],-1),u={class:"hint-container info"},_=l("p",{class:"hint-container-title"},"相关信息",-1),m=l("p",null,[l("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN01yhh71O1g6dyG80pQP_!!1797064093.png_.webp",alt:"live-data-tracking",loading:"lazy"})],-1),f=l("h2",{id:"添加角色",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#添加角色","aria-hidden":"true"},"#"),e(" 添加角色")],-1),p=l("li",null,[e("点击"),l("code",null,"添加角色"),e("按钮")],-1),x=l("li",null,[e("在弹出的"),l("code",null,"添加角色"),e("浮窗中,找到你要添加的游戏角色 UID,并单击其右侧的加号按钮")],-1),b=l("li",null,[e("实时便笺是间隔固定时间自动刷新的 "),l("ul",null,[l("li",null,[e("你可以点击窗口右上角的"),l("code",null,"通知设置"),e("来设置查询的间隔时间")]),l("li",null,[e("如您需要立即刷新以获取实时的最新数值,请单击"),l("code",null,"立即刷新"),e("按钮")])])],-1),g=r('

    验证用户与角色

    若你使用的是米游社帐号,则你的帐号非常容易受到风控机制的影响而触发验证码。在触发风控的情况下,实时便笺数据将无法刷新。 你可以点击实时便笺页面左上角的验证当前用户与角色按钮。点击后,胡桃会弹出验证窗口,在你完成验证后即可对受到验证码风控的帐号刷新数据。

    全局通知设置

    • 在窗口右上角点击通知设置可以修改实时便笺的全局设置,包括:
      • 启用/禁用数据自动刷新
      • 数据自动刷新间隔时间
      • 通知免打扰
      • 高优先度通知
        • 这将避免胡桃工具箱的通知被自动收入操作中心
        • 请注意,开启此设置可能会让您在日常使用电脑期间受到打扰
      • 自定义数据转发 Webhook
        • 胡桃客户端允许用户将获取到的实时便笺数据转发给其它程序以减少账号对米哈游 API 的请求
        • 将第三方程序的 HTTP API 接口填写在 实时便笺 Webhook Url 设置中,胡桃将以 POST 的方式将原始数据转发至该接口

    帐号独立设置

    • 胡桃工具箱的实时便笺功能允许用户对每一个被监控的帐号给予不同的设置
    • 将鼠标停留在需要被设置的角色实时便笺的窗体上
    • 点击其窗体右上角出现的设置图案按钮,即可修改如下参数
      • 原粹树脂提醒阈值
      • 洞天宝钱提醒阈值
      • 启用参量质变仪提醒
      • 启用每日委托上限提醒
      • 启用探索派遣完成提醒
    • 点击保存,即可保存您当前所设置的通知选项

    删除角色

    • 将鼠标停留在需要被设置的角色实时便笺的窗体上
    • 点击其窗体右上角出现的移除标志按钮,即可移除该角色对应的实时便笺
    ',8);function A(k,E){const i=o("RouterLink");return d(),c("div",null,[h,l("div",u,[_,l("p",null,[e("该功能需要你在胡桃工具箱中登录米游社帐号,登录方法可见"),a(i,{to:"/zh/features/mhy-account-switch.html"},{default:t(()=>[e("米游社多帐号切换")]),_:1}),e("文档")])]),m,f,l("ul",null,[p,x,l("li",null,[e("此时您添加的游戏角色即可显示在实时便笺页面中 "),l("ul",null,[b,l("li",null,[e('如出现"账号有风险,请前往米游社查看"字样的提示 '),l("ul",null,[l("li",null,[e("请参考"),a(i,{to:"/zh/advanced/exceptions.html#%E7%8A%B6%E6%80%811034-%E9%AA%8C%E8%AF%81%E5%A4%B1%E8%B4%A5"},{default:t(()=>[e("账号风险提示")]),_:1}),e("文档")])])])])])]),g])}const N=n(s,[["render",A],["__file","real-time-notes.html.vue"]]);export{N as default}; diff --git a/assets/real-time-notes.html-de90b20c.js b/assets/real-time-notes.html-c14ac987.js similarity index 98% rename from assets/real-time-notes.html-de90b20c.js rename to assets/real-time-notes.html-c14ac987.js index bb724addb..8ecc8f20b 100644 --- a/assets/real-time-notes.html-de90b20c.js +++ b/assets/real-time-notes.html-c14ac987.js @@ -1 +1 @@ -import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as n,c as l,a as e,b as t,d as r,w as c,e as s}from"./app-8966c29b.js";const d={},u=e("h1",{id:"real-time-notes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#real-time-notes","aria-hidden":"true"},"#"),t(" Real-time Notes")],-1),h={class:"hint-container info"},f=e("p",{class:"hint-container-title"},"Info",-1),m=s('

    live-data-tracking

    Add Role

    • Click on Add Role button
    • In the pop-up menu, find the UID you want to add, and click on the add button to its right
    • Now, the game UID character's Real-time Notes should be displayed in the page
      • The Real-time Notes is set to refresh timely
        • You can click on the Notification Settings on the top right to manage it
        • If you want to see the data at this moment, you can click Refresh button to refresh data immediately
      • If you receive any warning similar to Verification failed, it may be caused by too many account added, and you can try to fix it youself by refreshing account cookie

    Verify Current User and Role

    If you are using a MiYouShe account, then you account is very likely to be marked as robot-usage and leads to an anti-bot verification. In this status, Real-time Notes data cannot be updated.

    You can click on Verify Current User and Role button, Snap Hutao will pop up verification window. After finishing the verification, then your account can be used to refresh data.

    Global Notification Settings

    • In the Notification Settings on the top right, you can change the global settings of Real-time Notes, including:
      • Enable/Disable auto refresh
      • Refresh rate
      • Do not disturb setting
      • Prioritized notification
        • This prevent Snap Hutao's notification being closed automatically
      • Customized data forwarding Webhook
        • Snap Hutao allows user to forward Realtime Notes data to other applications to reduce account's request to MiHoYo API
        • Input your third party HTTP API endpoint in Realtime Notes Webhook Url setting field, and Snap Hutao will forward the raw data through POST requests

    Independent Settings for Accounts

    • Snap Hutao allows different settings on each Real-time Notes account
    • Hover the cursor over the form of Real-time Notes account that needs to set
    • Click on the setting button on it, and you can modify these settings:
      • Original Resin threshold value
      • Realm Currency threshold value
      • Parametric Transformer notification
      • Daily Commission notification
      • Expeditions notification
      • Display in the main page (feature coming soon)
    • Click on Save and you can save the settings

    Delete Daily-Notes Account

    • Hover the cursor over the form of Real-time Notes account that needs to delete
    • Clock on the remove button on it, and you can remove the corresponding account
    ',12);function p(g,y){const i=a("RouterLink");return n(),l("div",null,[u,e("div",h,[f,e("p",null,[t("This features requires you to login in to your MiYouShe or HoYoLab account in Snap Hutao, you can check "),r(i,{to:"/en/features/mhy-account-switch.html"},{default:c(()=>[t("MiHoYo BBS Account Switch")]),_:1}),t(" for more information.")])]),m])}const v=o(d,[["render",p],["__file","real-time-notes.html.vue"]]);export{v as default}; +import{_ as o}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as n,c as l,a as e,b as t,d as r,w as c,e as s}from"./app-5a96e1e2.js";const d={},u=e("h1",{id:"real-time-notes",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#real-time-notes","aria-hidden":"true"},"#"),t(" Real-time Notes")],-1),h={class:"hint-container info"},f=e("p",{class:"hint-container-title"},"Info",-1),m=s('

    live-data-tracking

    Add Role

    • Click on Add Role button
    • In the pop-up menu, find the UID you want to add, and click on the add button to its right
    • Now, the game UID character's Real-time Notes should be displayed in the page
      • The Real-time Notes is set to refresh timely
        • You can click on the Notification Settings on the top right to manage it
        • If you want to see the data at this moment, you can click Refresh button to refresh data immediately
      • If you receive any warning similar to Verification failed, it may be caused by too many account added, and you can try to fix it youself by refreshing account cookie

    Verify Current User and Role

    If you are using a MiYouShe account, then you account is very likely to be marked as robot-usage and leads to an anti-bot verification. In this status, Real-time Notes data cannot be updated.

    You can click on Verify Current User and Role button, Snap Hutao will pop up verification window. After finishing the verification, then your account can be used to refresh data.

    Global Notification Settings

    • In the Notification Settings on the top right, you can change the global settings of Real-time Notes, including:
      • Enable/Disable auto refresh
      • Refresh rate
      • Do not disturb setting
      • Prioritized notification
        • This prevent Snap Hutao's notification being closed automatically
      • Customized data forwarding Webhook
        • Snap Hutao allows user to forward Realtime Notes data to other applications to reduce account's request to MiHoYo API
        • Input your third party HTTP API endpoint in Realtime Notes Webhook Url setting field, and Snap Hutao will forward the raw data through POST requests

    Independent Settings for Accounts

    • Snap Hutao allows different settings on each Real-time Notes account
    • Hover the cursor over the form of Real-time Notes account that needs to set
    • Click on the setting button on it, and you can modify these settings:
      • Original Resin threshold value
      • Realm Currency threshold value
      • Parametric Transformer notification
      • Daily Commission notification
      • Expeditions notification
      • Display in the main page (feature coming soon)
    • Click on Save and you can save the settings

    Delete Daily-Notes Account

    • Hover the cursor over the form of Real-time Notes account that needs to delete
    • Clock on the remove button on it, and you can remove the corresponding account
    ',12);function p(g,y){const i=a("RouterLink");return n(),l("div",null,[u,e("div",h,[f,e("p",null,[t("This features requires you to login in to your MiYouShe or HoYoLab account in Snap Hutao, you can check "),r(i,{to:"/en/features/mhy-account-switch.html"},{default:c(()=>[t("MiHoYo BBS Account Switch")]),_:1}),t(" for more information.")])]),m])}const v=o(d,[["render",p],["__file","real-time-notes.html.vue"]]);export{v as default}; diff --git a/assets/setup.html-aafce36e.js b/assets/setup.html-0a76845b.js similarity index 96% rename from assets/setup.html-aafce36e.js rename to assets/setup.html-0a76845b.js index e583b3732..1e30ccffb 100644 --- a/assets/setup.html-aafce36e.js +++ b/assets/setup.html-0a76845b.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as s,c as o,a as e,b as t,d as l,e as r}from"./app-8966c29b.js";const c={},u=e("h1",{id:"initial-setup-guide",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#initial-setup-guide","aria-hidden":"true"},"#"),t(" Initial Setup Guide")],-1),d=e("p",null,"When launching the Snap Hutao for the first time, the client will automatically enter an initialization setup guide to assist users in configuring the client correctly.",-1),h=e("p",null,"Currently, Snap Hutao will guide users through the process of setting the language, confirming user agreements, checking necessary environmental configurations, and downloading static resources.",-1),p={class:"hint-container details"},m=e("summary",null,"Language Setting",-1),g=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01wBgRV01g6dyC2bc62_!!1797064093.png_.webp",alt:"",loading:"lazy"})],-1),_=e("p",null,"In the language settings section, you can choose from the interface languages currently supported by Snap Hutao. If you change the language, the Snap Hutao will automatically restart.",-1),y={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},f=r('
    User Agreement Confirmation

    In the user agreement documents confirmation section, you will need to confirm several documents provided by Snap Hutao. These documents can help you understand the nature of the Snap Hutao project and will be beneficial for your future usage.

    Environment Checking

    In the environment checking section, Snap Hutao will utilize two small tests to assist users in determining whether the system environment, which will enhance user experience, has been installed: the Segoe Fluent Icons font and the WebView2 Runtime.

    You can assess whether these two environment packages are installed based on the prompts. If they are not installed, you can click the corresponding link buttons to download and install the required content.

    The image above is the expected outcome in this step.

    Assets Download

    In this step, Snap Hutao will automatically download the required static image resources. Once the download is complete, Snap Hutao will close the initialization setup interface and automatically load the main program.

    ',3);function w(b,x){const n=i("ExternalLinkIcon");return s(),o("div",null,[u,d,h,e("details",p,[m,g,_,e("p",null,[t("Snap Hutao uses Simplified Chinese as the base language and actively maintains English text. Traditional Chinese, Korean, and Japanese texts are translated by community contributors. If you're interested in contributing translations, you can lend your support at "),e("a",y,[t("https://translate.hut.ao"),l(n)]),t(".")])]),f])}const v=a(c,[["render",w],["__file","setup.html.vue"]]);export{v as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as s,c as o,a as e,b as t,d as l,e as r}from"./app-5a96e1e2.js";const c={},u=e("h1",{id:"initial-setup-guide",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#initial-setup-guide","aria-hidden":"true"},"#"),t(" Initial Setup Guide")],-1),d=e("p",null,"When launching the Snap Hutao for the first time, the client will automatically enter an initialization setup guide to assist users in configuring the client correctly.",-1),h=e("p",null,"Currently, Snap Hutao will guide users through the process of setting the language, confirming user agreements, checking necessary environmental configurations, and downloading static resources.",-1),p={class:"hint-container details"},m=e("summary",null,"Language Setting",-1),g=e("p",null,[e("img",{src:"https://img.alicdn.com/imgextra/i1/1797064093/O1CN01wBgRV01g6dyC2bc62_!!1797064093.png_.webp",alt:"",loading:"lazy"})],-1),_=e("p",null,"In the language settings section, you can choose from the interface languages currently supported by Snap Hutao. If you change the language, the Snap Hutao will automatically restart.",-1),y={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},f=r('
    User Agreement Confirmation

    In the user agreement documents confirmation section, you will need to confirm several documents provided by Snap Hutao. These documents can help you understand the nature of the Snap Hutao project and will be beneficial for your future usage.

    Environment Checking

    In the environment checking section, Snap Hutao will utilize two small tests to assist users in determining whether the system environment, which will enhance user experience, has been installed: the Segoe Fluent Icons font and the WebView2 Runtime.

    You can assess whether these two environment packages are installed based on the prompts. If they are not installed, you can click the corresponding link buttons to download and install the required content.

    The image above is the expected outcome in this step.

    Assets Download

    In this step, Snap Hutao will automatically download the required static image resources. Once the download is complete, Snap Hutao will close the initialization setup interface and automatically load the main program.

    ',3);function w(b,x){const n=i("ExternalLinkIcon");return s(),o("div",null,[u,d,h,e("details",p,[m,g,_,e("p",null,[t("Snap Hutao uses Simplified Chinese as the base language and actively maintains English text. Traditional Chinese, Korean, and Japanese texts are translated by community contributors. If you're interested in contributing translations, you can lend your support at "),e("a",y,[t("https://translate.hut.ao"),l(n)]),t(".")])]),f])}const v=a(c,[["render",w],["__file","setup.html.vue"]]);export{v as default}; diff --git a/assets/setup.html-a545afac.js b/assets/setup.html-0d692030.js similarity index 95% rename from assets/setup.html-a545afac.js rename to assets/setup.html-0d692030.js index 8e304c8b0..e61597745 100644 --- a/assets/setup.html-a545afac.js +++ b/assets/setup.html-0d692030.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as i,c as o,a as t,b as e,d as l,e as r}from"./app-8966c29b.js";const c={},d=t("h1",{id:"初始化引导",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#初始化引导","aria-hidden":"true"},"#"),e(" 初始化引导")],-1),p=t("p",null,"在初次启动胡桃工具箱时,胡桃工具箱将自动进入初始化引导流程以帮助用户正确地配置胡桃工具箱。 目前,胡桃工具箱将引导用户设置语言、确认重要的用户协议、检查必要的环境配置并下载静态资源。",-1),m={class:"hint-container details"},_=t("summary",null,"语言设置",-1),h=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN016IMEtP1g6dyEFo5uK_!!1797064093.png_.webp",alt:"",loading:"lazy"})],-1),g=t("p",null,"在语言设置环节,你可以选择当前胡桃已支持的界面语言。若更换了语言,胡桃工具箱将自动重启。",-1),u={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},y=r('
    用户协议

    在用户协议文档环节,你需要确认胡桃提供数项文档。这些文档可以帮助你理解 Snap Hutao 项目的性质并有助于你未来的使用。

    环境检测

    在环境检测环节,胡桃工具箱将使用两个小型测试来帮助用户确定是否安装了有助于提升使用体验的系统环境:Segoe Fluent Icons 字体 和 WebView2 运行时。

    你可以根据提示来判断这两个环境包是否已安装,若未安装则可以点击对应的链接按钮以下载并安装所需要的内容。

    上方的图片是在拥有完整环境下,该步骤中应显示出的效果。

    资源下载

    在该步骤中,胡桃工具箱将自动下载所需要的静态图片资源。下载完成后,胡桃将关闭初始化设置流程界面并自动加载主程序。

    ',3);function f(x,b){const a=n("ExternalLinkIcon");return i(),o("div",null,[d,p,t("details",m,[_,h,g,t("p",null,[e("胡桃工具箱以简体中文为基础语言并主动维护英语文本。繁体中文、韩语、日语文本由社区用户提供翻译。 如果你有兴趣提供翻译,可以在 "),t("a",u,[e("https://translate.hut.ao"),l(a)]),e(" 贡献你的力量。")])]),y])}const V=s(c,[["render",f],["__file","setup.html.vue"]]);export{V as default}; +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as i,c as o,a as t,b as e,d as l,e as r}from"./app-5a96e1e2.js";const c={},d=t("h1",{id:"初始化引导",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#初始化引导","aria-hidden":"true"},"#"),e(" 初始化引导")],-1),p=t("p",null,"在初次启动胡桃工具箱时,胡桃工具箱将自动进入初始化引导流程以帮助用户正确地配置胡桃工具箱。 目前,胡桃工具箱将引导用户设置语言、确认重要的用户协议、检查必要的环境配置并下载静态资源。",-1),m={class:"hint-container details"},_=t("summary",null,"语言设置",-1),h=t("p",null,[t("img",{src:"https://img.alicdn.com/imgextra/i4/1797064093/O1CN016IMEtP1g6dyEFo5uK_!!1797064093.png_.webp",alt:"",loading:"lazy"})],-1),g=t("p",null,"在语言设置环节,你可以选择当前胡桃已支持的界面语言。若更换了语言,胡桃工具箱将自动重启。",-1),u={href:"https://translate.hut.ao",target:"_blank",rel:"noopener noreferrer"},y=r('
    用户协议

    在用户协议文档环节,你需要确认胡桃提供数项文档。这些文档可以帮助你理解 Snap Hutao 项目的性质并有助于你未来的使用。

    环境检测

    在环境检测环节,胡桃工具箱将使用两个小型测试来帮助用户确定是否安装了有助于提升使用体验的系统环境:Segoe Fluent Icons 字体 和 WebView2 运行时。

    你可以根据提示来判断这两个环境包是否已安装,若未安装则可以点击对应的链接按钮以下载并安装所需要的内容。

    上方的图片是在拥有完整环境下,该步骤中应显示出的效果。

    资源下载

    在该步骤中,胡桃工具箱将自动下载所需要的静态图片资源。下载完成后,胡桃将关闭初始化设置流程界面并自动加载主程序。

    ',3);function f(x,b){const a=n("ExternalLinkIcon");return i(),o("div",null,[d,p,t("details",m,[_,h,g,t("p",null,[e("胡桃工具箱以简体中文为基础语言并主动维护英语文本。繁体中文、韩语、日语文本由社区用户提供翻译。 如果你有兴趣提供翻译,可以在 "),t("a",u,[e("https://translate.hut.ao"),l(a)]),e(" 贡献你的力量。")])]),y])}const V=s(c,[["render",f],["__file","setup.html.vue"]]);export{V as default}; diff --git a/assets/side-load.html-f0d36725.js b/assets/side-load.html-e2489460.js similarity index 96% rename from assets/side-load.html-f0d36725.js rename to assets/side-load.html-e2489460.js index b545aa1d1..1d044b82b 100644 --- a/assets/side-load.html-f0d36725.js +++ b/assets/side-load.html-e2489460.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as d,e as o}from"./app-8966c29b.js";const c={},i=o('

    侧载安装

    通用安装方式

    • 在系统设置中打开开发者设置界面,勾选 开发人员模式允许 PowerShell 脚本 (自行百度)
    • 解压已下载的压缩包,找到Install.ps1文件,右键选择使用PowerShell运行,按照提示允许 PowerShell 执行操作即可
    • 安装完毕,胡桃将出现在您的开始菜单

    小白级安装方式

    • 解压已下载的安装包
    • 运行 Snap.Hutao.Installer.exe
      • 该程序将执行上述通用安装方式的命令
    • 安装完毕,胡桃将出现在您的开始菜单

    升级胡桃工具箱

    • 解压你下载的最新版本压缩包
    • 重复 安装胡桃工具箱 的步骤
    • 若您安装失败或出现异常情况,可参考如下步骤
      • 先卸载已经安装的胡桃工具箱
      • 重复 安装胡桃工具箱 的步骤
    ',7),a=[i];function r(h,t){return l(),d("div",null,a)}const u=e(c,[["render",r],["__file","side-load.html.vue"]]);export{u as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as d,e as o}from"./app-5a96e1e2.js";const c={},i=o('

    侧载安装

    通用安装方式

    • 在系统设置中打开开发者设置界面,勾选 开发人员模式允许 PowerShell 脚本 (自行百度)
    • 解压已下载的压缩包,找到Install.ps1文件,右键选择使用PowerShell运行,按照提示允许 PowerShell 执行操作即可
    • 安装完毕,胡桃将出现在您的开始菜单

    小白级安装方式

    • 解压已下载的安装包
    • 运行 Snap.Hutao.Installer.exe
      • 该程序将执行上述通用安装方式的命令
    • 安装完毕,胡桃将出现在您的开始菜单

    升级胡桃工具箱

    • 解压你下载的最新版本压缩包
    • 重复 安装胡桃工具箱 的步骤
    • 若您安装失败或出现异常情况,可参考如下步骤
      • 先卸载已经安装的胡桃工具箱
      • 重复 安装胡桃工具箱 的步骤
    ',7),a=[i];function r(h,t){return l(),d("div",null,a)}const u=e(c,[["render",r],["__file","side-load.html.vue"]]);export{u as default}; diff --git a/assets/side-load.html-503e3506.js b/assets/side-load.html-ff763136.js similarity index 96% rename from assets/side-load.html-503e3506.js rename to assets/side-load.html-ff763136.js index b545aa1d1..1d044b82b 100644 --- a/assets/side-load.html-503e3506.js +++ b/assets/side-load.html-ff763136.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as d,e as o}from"./app-8966c29b.js";const c={},i=o('

    侧载安装

    通用安装方式

    • 在系统设置中打开开发者设置界面,勾选 开发人员模式允许 PowerShell 脚本 (自行百度)
    • 解压已下载的压缩包,找到Install.ps1文件,右键选择使用PowerShell运行,按照提示允许 PowerShell 执行操作即可
    • 安装完毕,胡桃将出现在您的开始菜单

    小白级安装方式

    • 解压已下载的安装包
    • 运行 Snap.Hutao.Installer.exe
      • 该程序将执行上述通用安装方式的命令
    • 安装完毕,胡桃将出现在您的开始菜单

    升级胡桃工具箱

    • 解压你下载的最新版本压缩包
    • 重复 安装胡桃工具箱 的步骤
    • 若您安装失败或出现异常情况,可参考如下步骤
      • 先卸载已经安装的胡桃工具箱
      • 重复 安装胡桃工具箱 的步骤
    ',7),a=[i];function r(h,t){return l(),d("div",null,a)}const u=e(c,[["render",r],["__file","side-load.html.vue"]]);export{u as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as d,e as o}from"./app-5a96e1e2.js";const c={},i=o('

    侧载安装

    通用安装方式

    • 在系统设置中打开开发者设置界面,勾选 开发人员模式允许 PowerShell 脚本 (自行百度)
    • 解压已下载的压缩包,找到Install.ps1文件,右键选择使用PowerShell运行,按照提示允许 PowerShell 执行操作即可
    • 安装完毕,胡桃将出现在您的开始菜单

    小白级安装方式

    • 解压已下载的安装包
    • 运行 Snap.Hutao.Installer.exe
      • 该程序将执行上述通用安装方式的命令
    • 安装完毕,胡桃将出现在您的开始菜单

    升级胡桃工具箱

    • 解压你下载的最新版本压缩包
    • 重复 安装胡桃工具箱 的步骤
    • 若您安装失败或出现异常情况,可参考如下步骤
      • 先卸载已经安装的胡桃工具箱
      • 重复 安装胡桃工具箱 的步骤
    ',7),a=[i];function r(h,t){return l(),d("div",null,a)}const u=e(c,[["render",r],["__file","side-load.html.vue"]]);export{u as default}; diff --git a/assets/star-request.html-b1a3dcce.js b/assets/star-request.html-87e9c10d.js similarity index 96% rename from assets/star-request.html-b1a3dcce.js rename to assets/star-request.html-87e9c10d.js index d7f813378..e57367a38 100644 --- a/assets/star-request.html-b1a3dcce.js +++ b/assets/star-request.html-87e9c10d.js @@ -1 +1 @@ -import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as i,c as n,a as t,b as o,d as s}from"./app-8966c29b.js";const r={},c=t("p",null,[t("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),u={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},d=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),h={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},_=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),m=t("li",null,[o("在"),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),o("上给出好评")],-1),p=t("li",null,"在更多的地方帮助我们宣传",-1),g=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1);function f(S,b){const e=a("ExternalLinkIcon");return i(),n("div",null,[c,t("ul",null,[t("li",null,[o("为我们在 GitHub 上的项目加星点赞 ⭐ "),t("ul",null,[t("li",null,[t("a",u,[o("Snap.Hutao"),s(e)]),o(),d]),t("li",null,[t("a",h,[o("Snap.Hutao.Docs"),s(e)]),o(),_])])]),m,p]),g])}const D=l(r,[["render",f],["__file","star-request.html.vue"]]);export{D as default}; +import{_ as l}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as i,c as n,a as t,b as o,d as s}from"./app-5a96e1e2.js";const r={},c=t("p",null,[t("strong",null,"如果你认为胡桃工具箱是一个好的项目或者有帮助到你,你可以通过以下方式支持我们")],-1),u={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},d=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),h={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},_=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),m=t("li",null,[o("在"),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"微软商店"),o("上给出好评")],-1),p=t("li",null,"在更多的地方帮助我们宣传",-1),g=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1);function f(S,b){const e=a("ExternalLinkIcon");return i(),n("div",null,[c,t("ul",null,[t("li",null,[o("为我们在 GitHub 上的项目加星点赞 ⭐ "),t("ul",null,[t("li",null,[t("a",u,[o("Snap.Hutao"),s(e)]),o(),d]),t("li",null,[t("a",h,[o("Snap.Hutao.Docs"),s(e)]),o(),_])])]),m,p]),g])}const D=l(r,[["render",f],["__file","star-request.html.vue"]]);export{D as default}; diff --git a/assets/star-request.html-c91f6d76.js b/assets/star-request.html-9881dff3.js similarity index 96% rename from assets/star-request.html-c91f6d76.js rename to assets/star-request.html-9881dff3.js index e917a3a69..33626c8fb 100644 --- a/assets/star-request.html-c91f6d76.js +++ b/assets/star-request.html-9881dff3.js @@ -1 +1 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as i,c as n,a as t,b as o,d as s}from"./app-8966c29b.js";const r={},u=t("p",null,[t("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),c={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},d=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),h={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},p=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),_=t("li",null,[o("Rate our App on "),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),m=t("li",null,"Promote our project in your network",-1),g=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),o(),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1);function f(y,S){const e=l("ExternalLinkIcon");return i(),n("div",null,[u,t("ul",null,[t("li",null,[o("Star our project on GitHub ⭐ "),t("ul",null,[t("li",null,[t("a",c,[o("Snap.Hutao"),s(e)]),o(),d]),t("li",null,[t("a",h,[o("Snap.Hutao.Docs"),s(e)]),o(),p])])]),_,m]),g])}const D=a(r,[["render",f],["__file","star-request.html.vue"]]);export{D as default}; +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as i,c as n,a as t,b as o,d as s}from"./app-5a96e1e2.js";const r={},u=t("p",null,[t("strong",null,"If you believe Snap Hutao is a good project and helps you, you can support us by the following ways")],-1),c={href:"https://github.com/DGP-Studio/Snap.Hutao",target:"_blank",rel:"noopener noreferrer"},d=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao?style=plastic&color=red",alt:"hutao.stars",loading:"lazy"},null,-1),h={href:"https://github.com/DGP-Studio/Snap.Hutao.Docs",target:"_blank",rel:"noopener noreferrer"},p=t("img",{src:"https://img.shields.io/github/stars/DGP-Studio/Snap.Hutao.Docs?style=plastic&color=red",alt:"hutao.docs.stars",loading:"lazy"},null,-1),_=t("li",null,[o("Rate our App on "),t("a",{href:"ms-windows-store://review/?ProductId=9PH4NXJ2JN52"},"Microsoft Store")],-1),m=t("li",null,"Promote our project in your network",-1),g=t("p",null,[t("img",{src:"https://img.shields.io/github/commit-activity/y/DGP-Studio/Snap.Hutao?style=for-the-badge",alt:"commit_activity",loading:"lazy"}),o(),t("img",{src:"https://img.shields.io/github/last-commit/DGP-Studio/Snap.Hutao?label=Hutao Last Commit&style=for-the-badge",alt:"hutao-last-commit",loading:"lazy"})],-1);function f(y,S){const e=l("ExternalLinkIcon");return i(),n("div",null,[u,t("ul",null,[t("li",null,[o("Star our project on GitHub ⭐ "),t("ul",null,[t("li",null,[t("a",c,[o("Snap.Hutao"),s(e)]),o(),d]),t("li",null,[t("a",h,[o("Snap.Hutao.Docs"),s(e)]),o(),p])])]),_,m]),g])}const D=a(r,[["render",f],["__file","star-request.html.vue"]]);export{D as default}; diff --git a/assets/symposium1.html-cbffe867.js b/assets/symposium1.html-f64f4f79.js similarity index 98% rename from assets/symposium1.html-cbffe867.js rename to assets/symposium1.html-f64f4f79.js index 94579ac24..124138e60 100644 --- a/assets/symposium1.html-cbffe867.js +++ b/assets/symposium1.html-f64f4f79.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as d,o as s,c as n,a as e,b as a,d as i,e as t}from"./app-8966c29b.js";const o={},c=e("h1",{id:"第一期开发组座谈会",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#第一期开发组座谈会","aria-hidden":"true"},"#"),a(" 第一期开发组座谈会")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions/46",target:"_blank",rel:"noopener noreferrer"},u=t('

    为啥胡桃在电脑上要做成类似 uwp 格式的应用?

    开发 MSIX 封装的应用是桌面端的开发趋势,开发体验更佳,用户体验也能提升。

    胡桃的作用是啥,和 SG 有什么区别?

    胡桃是 SG 的次世代版本,更新/更快/更强。

    胡桃会全面继承 SG 的功能吗?SG 的一些功能会在 hutao 里被弃用吗?

    多数功能会完全继承与升级。少数功能会以整合功能的形式出现在胡桃中。

    为啥不把胡桃和 SG 集合到一起,而是要分开呢?和 sg 有什么侧重上的不同?

    Snap Genshin 采用 WPF 技术开发,该技术基于 DirectX 9,而 胡桃 采用 WinUI 3 开发,该新技术基于 DirectX 12 与其他较新的显示技术,呈现的效果更好,同时也更易于开发,胡桃 与 Snap Genshin 类似,但侧重于流畅、简单的用户体验,同时也更注重程序架构的可维护性,更关注性能表现。

    除了 SG 的旧功能迁移,还会有新功能开发吗?

    随着原神的发展,我们也会推出更多的功能。

    SG 永远不会更新了吗?SG 是快不能用了吗?

    没有严重的数据异常问题不会再更新。由于缺乏维护,不保证在何时由于某些不确定的原因会导致 SG 的部分功能失效(如先去的签到功能)。 Snap.Genshin 已停止更新,项目已归档

    胡桃的使用文档秋梨膏?

    使用文档 @Masterain98 正在制作中,很快就会和大家见面。 你现在看到的就是

    胡桃图标还会更新嘛?

    不会,我们持有胡桃图标的版权。

    什么时候上微软商店?上微软商店是否不需要自己信任证书了?胡桃以后会在线更新嘛?

    会在所有功能完善后上架。不需要证书。上架后就可以支持在线更新了。

    有考虑增加根据角色展示面板来计算伤害的功能吗?什么时候胡桃能当启动器,解锁帧率?这个无边框全屏的功能以后会不会支持?

    面板功能会在用户系统重构后进行开发,并且会在完成面板查询功能后实现启动游戏相关功能。启动参数包括在内。

    胡桃数据库 和 Hutao 是否有关系?什么时候上胡桃数据库?

    胡桃数据库是 HutaoAPI 的一部分,包含了深渊相关的数据,HutaoAPI 是胡桃使用的 RESTful API,同时面向其他应用的开发者开放,接入成本低,接入收益高。胡桃数据库将会在后续版本实装。 已经实装

    会把胡桃放到右下角任务栏吗?会考虑在角色里添加立绘吗?

    基本不会考虑。后续可能会考虑。

    你可以通过快速启动栏来快速启动游戏,具体方法可见此文档

    将来会有移动端吗?有考虑根据胡桃做个手机桌面小组件吗?胡桃以后支持插件吗?胡桃会有插件开发文档吗?

    短时间内不会考虑移动端。手机桌面小组件也基本不会考虑。不会再支持插件。同样也不会有插件文档。

    离支持外服账号还有多远?会整合其他插件比如空荧酒馆这种嘛?

    Hoyolab 的相关支持需要其他开发者的帮助。由于技术栈的不同,很难整合。

    受益于开源社区力量,目前高级启动器、祈愿记录导出和成就管理功能已支持国际服。

    有没有打算添加收费功能,还是说只靠捐助?

    由于服务器需要资费,与服务器存储相关的功能可能会进行收费。 Snap.Hutao 等有关项目均为公益项目

    是用爱发电吗?开发胡桃,是业余时间开发的吗?

    显然是。

    ',34);function l(f,x){const h=d("ExternalLinkIcon");return s(),n("div",null,[c,e("p",null,[a("复制自 "),e("a",p,[a("GitHub 讨论帖"),i(h)]),a(",总结于群讨论")]),u])}const _=r(o,[["render",l],["__file","symposium1.html.vue"]]);export{_ as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as d,o as s,c as n,a as e,b as a,d as i,e as t}from"./app-5a96e1e2.js";const o={},c=e("h1",{id:"第一期开发组座谈会",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#第一期开发组座谈会","aria-hidden":"true"},"#"),a(" 第一期开发组座谈会")],-1),p={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions/46",target:"_blank",rel:"noopener noreferrer"},u=t('

    为啥胡桃在电脑上要做成类似 uwp 格式的应用?

    开发 MSIX 封装的应用是桌面端的开发趋势,开发体验更佳,用户体验也能提升。

    胡桃的作用是啥,和 SG 有什么区别?

    胡桃是 SG 的次世代版本,更新/更快/更强。

    胡桃会全面继承 SG 的功能吗?SG 的一些功能会在 hutao 里被弃用吗?

    多数功能会完全继承与升级。少数功能会以整合功能的形式出现在胡桃中。

    为啥不把胡桃和 SG 集合到一起,而是要分开呢?和 sg 有什么侧重上的不同?

    Snap Genshin 采用 WPF 技术开发,该技术基于 DirectX 9,而 胡桃 采用 WinUI 3 开发,该新技术基于 DirectX 12 与其他较新的显示技术,呈现的效果更好,同时也更易于开发,胡桃 与 Snap Genshin 类似,但侧重于流畅、简单的用户体验,同时也更注重程序架构的可维护性,更关注性能表现。

    除了 SG 的旧功能迁移,还会有新功能开发吗?

    随着原神的发展,我们也会推出更多的功能。

    SG 永远不会更新了吗?SG 是快不能用了吗?

    没有严重的数据异常问题不会再更新。由于缺乏维护,不保证在何时由于某些不确定的原因会导致 SG 的部分功能失效(如先去的签到功能)。 Snap.Genshin 已停止更新,项目已归档

    胡桃的使用文档秋梨膏?

    使用文档 @Masterain98 正在制作中,很快就会和大家见面。 你现在看到的就是

    胡桃图标还会更新嘛?

    不会,我们持有胡桃图标的版权。

    什么时候上微软商店?上微软商店是否不需要自己信任证书了?胡桃以后会在线更新嘛?

    会在所有功能完善后上架。不需要证书。上架后就可以支持在线更新了。

    有考虑增加根据角色展示面板来计算伤害的功能吗?什么时候胡桃能当启动器,解锁帧率?这个无边框全屏的功能以后会不会支持?

    面板功能会在用户系统重构后进行开发,并且会在完成面板查询功能后实现启动游戏相关功能。启动参数包括在内。

    胡桃数据库 和 Hutao 是否有关系?什么时候上胡桃数据库?

    胡桃数据库是 HutaoAPI 的一部分,包含了深渊相关的数据,HutaoAPI 是胡桃使用的 RESTful API,同时面向其他应用的开发者开放,接入成本低,接入收益高。胡桃数据库将会在后续版本实装。 已经实装

    会把胡桃放到右下角任务栏吗?会考虑在角色里添加立绘吗?

    基本不会考虑。后续可能会考虑。

    你可以通过快速启动栏来快速启动游戏,具体方法可见此文档

    将来会有移动端吗?有考虑根据胡桃做个手机桌面小组件吗?胡桃以后支持插件吗?胡桃会有插件开发文档吗?

    短时间内不会考虑移动端。手机桌面小组件也基本不会考虑。不会再支持插件。同样也不会有插件文档。

    离支持外服账号还有多远?会整合其他插件比如空荧酒馆这种嘛?

    Hoyolab 的相关支持需要其他开发者的帮助。由于技术栈的不同,很难整合。

    受益于开源社区力量,目前高级启动器、祈愿记录导出和成就管理功能已支持国际服。

    有没有打算添加收费功能,还是说只靠捐助?

    由于服务器需要资费,与服务器存储相关的功能可能会进行收费。 Snap.Hutao 等有关项目均为公益项目

    是用爱发电吗?开发胡桃,是业余时间开发的吗?

    显然是。

    ',34);function l(f,x){const h=d("ExternalLinkIcon");return s(),n("div",null,[c,e("p",null,[a("复制自 "),e("a",p,[a("GitHub 讨论帖"),i(h)]),a(",总结于群讨论")]),u])}const _=r(o,[["render",l],["__file","symposium1.html.vue"]]);export{_ as default}; diff --git a/assets/symposium2.html-46c6280f.js b/assets/symposium2.html-159d4eab.js similarity index 96% rename from assets/symposium2.html-46c6280f.js rename to assets/symposium2.html-159d4eab.js index 8e83b0d9c..12832066f 100644 --- a/assets/symposium2.html-46c6280f.js +++ b/assets/symposium2.html-159d4eab.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as n,c as s,a,b as e,d as h,e as d}from"./app-8966c29b.js";const o={},c=a("h1",{id:"第二期开发组座谈会",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#第二期开发组座谈会","aria-hidden":"true"},"#"),e(" 第二期开发组座谈会")],-1),l={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions/280",target:"_blank",rel:"noopener noreferrer"},u=d('

    现在成就导出的 json 格式也是 UIGF 的嘛

    A: UIAF

    能否适配祈愿系统数据 UEFI 旧版本的导入,和 SG 一样就可以

    A: 首先它叫 UIGF 格式,其次一直是适配的,只是 SG 的导入导出规则较为宽泛,如果您从始至终仅使用且正确使用了我们的产品,是不会出现导入导出异常的问题的

    啥时候会有 sg 那种自动检查更新下载

    A: 自动更新不能在 MSIX 包上实现,检查更新会在后续版本推出。

    我同一个设备上同时登陆 SG,hutao 会算作一个设备还是两个设备

    A: 两个设备,理论上每次重启胡桃后均相当于切换了设备

    我感觉胡桃有些页面的加载需要很久,会影响使用体验,感觉胡桃的界面有点掉帧

    A: 深渊统计页面在 1.2.6 版本前确实存在加载慢的问题,已在新版本解决,如果有其他页面的卡顿问题,通常是因为你的显卡不够强劲,或者胡桃通过你的集显进行渲染。

    属性统计经常加载不了

    A: 历史遗留问题,可以通过备份数据后删除 userdata.db 解决

    自定义网页功能是否还有规划

    A: 别急

    微软方面的问题,我们无法解决

    • 有的时候使用管理员启动并不能获取到管理员权限,需要关掉后二次启动
    • 胡桃的图标尺寸可不可以改成像其他图标—样的小尺寸呀
    • 写入的注册表文件,在更新时遇安装问题,尝试所有修复无果,在卸载重装进行修复的过程中会否因卸载残留问题对重装造成影响
    ',15);function p(f,_){const r=t("ExternalLinkIcon");return n(),s("div",null,[c,a("p",null,[e("复制自 "),a("a",l,[e("GitHub 讨论帖"),h(r)]),e(",总结于群讨论")]),u])}const b=i(o,[["render",p],["__file","symposium2.html.vue"]]);export{b as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as t,o as n,c as s,a,b as e,d as h,e as d}from"./app-5a96e1e2.js";const o={},c=a("h1",{id:"第二期开发组座谈会",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#第二期开发组座谈会","aria-hidden":"true"},"#"),e(" 第二期开发组座谈会")],-1),l={href:"https://github.com/DGP-Studio/Snap.Hutao/discussions/280",target:"_blank",rel:"noopener noreferrer"},u=d('

    现在成就导出的 json 格式也是 UIGF 的嘛

    A: UIAF

    能否适配祈愿系统数据 UEFI 旧版本的导入,和 SG 一样就可以

    A: 首先它叫 UIGF 格式,其次一直是适配的,只是 SG 的导入导出规则较为宽泛,如果您从始至终仅使用且正确使用了我们的产品,是不会出现导入导出异常的问题的

    啥时候会有 sg 那种自动检查更新下载

    A: 自动更新不能在 MSIX 包上实现,检查更新会在后续版本推出。

    我同一个设备上同时登陆 SG,hutao 会算作一个设备还是两个设备

    A: 两个设备,理论上每次重启胡桃后均相当于切换了设备

    我感觉胡桃有些页面的加载需要很久,会影响使用体验,感觉胡桃的界面有点掉帧

    A: 深渊统计页面在 1.2.6 版本前确实存在加载慢的问题,已在新版本解决,如果有其他页面的卡顿问题,通常是因为你的显卡不够强劲,或者胡桃通过你的集显进行渲染。

    属性统计经常加载不了

    A: 历史遗留问题,可以通过备份数据后删除 userdata.db 解决

    自定义网页功能是否还有规划

    A: 别急

    微软方面的问题,我们无法解决

    • 有的时候使用管理员启动并不能获取到管理员权限,需要关掉后二次启动
    • 胡桃的图标尺寸可不可以改成像其他图标—样的小尺寸呀
    • 写入的注册表文件,在更新时遇安装问题,尝试所有修复无果,在卸载重装进行修复的过程中会否因卸载残留问题对重装造成影响
    ',15);function p(f,_){const r=t("ExternalLinkIcon");return n(),s("div",null,[c,a("p",null,[e("复制自 "),a("a",l,[e("GitHub 讨论帖"),h(r)]),e(",总结于群讨论")]),u])}const b=i(o,[["render",p],["__file","symposium2.html.vue"]]);export{b as default}; diff --git a/assets/tos.html-1c0a6890.js b/assets/tos.html-324ae865.js similarity index 99% rename from assets/tos.html-1c0a6890.js rename to assets/tos.html-324ae865.js index 128d7826f..f882220c4 100644 --- a/assets/tos.html-1c0a6890.js +++ b/assets/tos.html-324ae865.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as u,o as r,c as s,a as l,b as t,d as o,e as n}from"./app-8966c29b.js";const a={},h=l("h1",{id:"用户使用协议和法律声明",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#用户使用协议和法律声明","aria-hidden":"true"},"#"),t(" 用户使用协议和法律声明")],-1),d=l("h2",{id:"总则",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#总则","aria-hidden":"true"},"#"),t(" 总则")],-1),_={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},c=l("ul",null,[l("li",null,[t("请您仔细阅读本用户使用协议的"),l("strong",null,"全部内容"),t(',在您阅读"使用协议"后,若对此用户使用协议中的'),l("strong",null,"任何条款"),t("有异议,请立刻停止使用本团队所开发的任意项目。")]),l("li",null,"如您未满 18 周岁,请在法定监护人陪同下仔细阅读并充分理解本协议,并征得法定监护人的同意后使用本团队所开发的任意项目。"),l("li",null,"若您已安装、使用或在开发时引用本团队所开发的任意项目,表示您已主动阅读(已阅读完毕)并完全同意本使用协议所列明的条款,即已充分理解本协议并承诺作为本协议的一方当事人接受协议、法律声明、隐私政策以及与本团队所开发的任意项目相关的规则、规范、声明、公告、通知等内容的约束。"),l("li",null,'此《用户使用协议》是由用户(以下或称"您")与本团队所开发的任意项目所订立的用户使用协议和法律声明,本协议对用户和本团队均具有法律效力。')],-1),p=l("h2",{id:"项目性质、服务以及有关责任与义务的界定",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#项目性质、服务以及有关责任与义务的界定","aria-hidden":"true"},"#"),t(" 项目性质、服务以及有关责任与义务的界定")],-1),f=l("li",null,[l("p",null,'一、由于本团队所开发的任意项目,均"开源"、"非经营性质",故本团队可随时执行全权决定:包括但不限于更改"使用协议",修改本团队所开发的任意项目内的任何内容。如"条款"及"作品的内容"有任何变更,我方将在相关的项目展示网站上刊载公告作为通知。经修订的"条款"一经在官方网站上公布后,即自动生效。')],-1),b=l("li",null,[l("p",null,'二、本软件以"学习开发知识"、"积累开发经验"为目的进行开发,所有项目所提供的功能,均"开源"、"非经营性质",如用户对本团队所开发的任意项目的安全性表示不满,请立即卸载/删除/停用,如您仍在正常使用,则表示您认可本团队所开发的任意项目的安全性。')],-1),q={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/DGP-Studio/Snap.Hutao/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer"},g=n("
  • 四、用户使用本团队所开发的任意项目期间,本团队不做任何不发生如下情况的保证:

    • 因网络状况、通讯线路等任何技术原因而导致用户不能正常使用或更新;
    • 因使用"第三方开发的本软件内插件"、"第三方进行二次编译的本软件的修改版"、"复用本开发团队所创作的项目代码而编译成的软件"造成负面结果。
  • 五、用户认可本团队所开发的任意项目,除被动接收软件或其他相关项目中的必要的上传报告或有关信息外,所有信息的上传均需要用户的主动触发;

    • 用户认可本团队所开发的任意项目,均完全尊重并保护所有用户的"个人隐私权",项目代码亦完全公开,用户不具有"因隐私权收到侵犯"而对开发团队或团队成员发起控诉的主观理由。
    • 本团队所开发的任意项目不会向第三方共享、转让您的个人信息,除非经过您本人事先授权同意,或者共享、转让的个人信息是去标识化处理后的信息,且共享第三方无法重新识别此类信息的自然人主体。
    • 本团队所开发的任意项目包含到其他站点的链接,当您访问第三方链接时,请认真阅读第三方站点的用户协议和声明,本团队对于第三方站点的内容、隐私条款、使用协议等不负任何责任。
    • 在使用本团队所开发的任意项目时,提交任意资料的过程中,本团队不保证提交的信息保存成功,您需要对您提交的资料做好存储保管。本团队所开发的部分项目为"被授权数据"提供存储,但在存储过程中存在各种不可抗力的因素,本团队无法承诺对用户的存储信息无限期保留,您的重要信息请自行备份。
  • ",2),S=l("h2",{id:"权利和义务",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#权利和义务","aria-hidden":"true"},"#"),t(" 权利和义务")],-1),G=l("li",null,[l("p",null,"六、我方允许任何单位或个人在没有本开发团队授权的情况下,对本团队所开发的任意项目进行的二次开发、功能修改以及复用我方创作的代码进行其他项目的开发,但对其所侵犯我方计算机软件著作权的行为,我方保留追责的权利。"),l("ul",null,[l("li",null,"我开发团队不对任何单位或个人在使用本团队所开发的任意项目的内容进行的公开发布行为(包括但不限于制作视频、发布带有本软件内容的文章、上传至非我开发团队指定的下载网站提供下载等)的内容所致的任意结果进行负责。"),l("li",null,'我开发团队不对使用"第三方开发的可用于本团队所开发的任意项目的附属程序或额外代码"、"第三方进行二次编译的本团队所开发的任意项目的修改版"、"复用本开发团队所创作的项目代码而编译成的软件"造成的任意结果负责。'),l("li",null,'在此基础上,根据《计算机软件保护条例》第二条与第三条对于"计算机软件"和"文档"的法律定义,本软件开发团队(DGP Studio)保留全部我方开发项目的计算机软件著作权,其包括但不限于项目构建所需的全部信息、全部项目有关的所有文档资料(即用来描述程序的内容、组成、设计、功能规格、开发情况的程序设计说明书、流程图、用户手册等),具体内容以各项目《计算机软件著作权登记证书》的实际内容为准。')])],-1),x=l("li",null,[l("p",null,"七、本团队所开发的任意项目仅作用于合法、合规范围内的学习及研究所用,不得利用本软件系统从事违法活动。"),l("ul",null,[l("li",null,"本团队仅作为项目的开发团队(非法人性质,为自然人组成的团体),对任何使用结果不负任何连带责任,软件以及我方开发的任意项目的使用过程中产生的任何法律后果我们概不负责、不承担任何法律责任。"),l("li",null,'若用户已开始使用本团队所开发的任意项目,即已同意"使用协议",表明本团队已履行完毕"本使用协议第十款"的告知情形。')])],-1),k=l("p",null,"八、所开发项目的著作权。",-1),D=l("li",null,'本软件开发团队对所开发的"Snap.Genshin 软件"、"Snap.Hutao 软件"等作品的软件本身(不包括软件内除功能模块外的显示内容)、上述作品的全部历史版本以及周边网站,以及本团队所开发的任意其他作品,拥有软件内的"各商标的所有权"(引用于网络的图片除外),"著作权"等有关的应有权益。',-1),P=l("li",null,"本团队所开发的任意项目的统计数据全部来源于软件用户主动提交,经过对数据简单地筛选后进行展示,因此本团队所开发的任意项目不对数据的准确性负责,该数据也与我方无关。",-1),E={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},N=l("li",null,"Snap Hutao 客户端程序,以及 hut.ao 网站均与米哈游无关。",-1),I=l("li",null,"原神的游戏内容和各种素材与商标的版权都属于米哈游。",-1),V=l("h2",{id:"其他条款",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#其他条款","aria-hidden":"true"},"#"),t(" 其他条款")],-1),v=n("
  • 九、对于团队所开发项目的"非经营性质"的确定。

    • 本团队所开发的任意项目,均无任何经营性质。

    • 若开发团队的个别或部分成员,在参与开发本团队所开发的任意项目期间,与本团队所开发的任意项目的第三方用户间产生了包括但不限于:赠与、交换、买卖等关系,其所产生的关系与本开发团队无关,此种情形的发生不基于团队开发有关项目这一事实,而是基于其与第三方用户,在发生上述关系的互联网交互位置或现实地点所产生的独立事件,应当以发生上述关系的互联网交互位置的用户使用条款或结合其在现实地点所发生的具体行为来判定此行为的性质。

  • 十、本团队所开发的任意项目(含网站),均以"学习开发知识"、"积累开发经验"为目的进行开发,仅供学习交流,严禁用于商业用途,请您在下载或进行查看学习后的 24 小时内自行删除全部相关信息,若您无视本条要求,本软件开发团队不对"可能产生的版权纠纷、著作权侵权以及民事纠纷等问题"负责。

  • 十一、本协议的成立、生效、履行、解释及争议的解决均应适用中华人民共和国大陆地区法律。倘本协议之任何规定因与中华人民共和国的法律抵触而无效,则这些条款将尽可能接近本协议原条文意旨重新解析,且本协议其它规定仍应具有完整的效力及效果。

  • 十二、本协议签订地点为辽宁省盘锦市辽河油田矿区,在履行本协议中发生纠纷,由双方协商解决,如协商不成,由辽河人民法院管辖,所产生的每阶段费用均由上诉人即时承担。

  • 十三、本协议中的标题(包括副标题)仅为方便及阅读而设,并不影响本协议中任何规定的含义或解释。

  • 十四、您和本开发团队均是独立的主体,在任何情况下本协议不构成本开发团队对用户的任何形式的明示或暗示担保或条件,双方之间亦不构成代理、合伙、合营或雇佣关系。

  • ",6),B={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},H={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"};function L(C,T){const e=u("ExternalLinkIcon");return r(),s("div",null,[h,d,l("ul",null,[l("li",null,[t('本"用户使用协议和法律声明"(以下简称"条款"或"使用协议")适用于'),l("a",_,[t("DGP-Studio 开发团队"),o(e)]),t('(以下简称"本团队"或"我方")开发的全部软件作品、各开发项目的官方网站、附属的自媒体账号等。 '),c])]),p,l("ul",null,[f,b,l("li",null,[l("p",null,[t('三、一切因使用本团队所开发的任意项目的内容而导致的"任何意外损失(包括但不限于:软件、硬件、财产以及虚拟物品等)"、"合约毁坏"、"诽谤"、"版权或知识产权侵犯"及其所造成的损失与责任,均为使用者自身对于网络公开的开源软件的使用过程中自身发生的使用行为所引致的"损失与责任",基于全部作品在其开放源代码的位置(即'),l("a",q,[t("Github"),o(e)]),t(")中所声明的"),l("a",m,[t("MIT license"),o(e)]),t('以及本声明所约定的内容,应当认定前述的"损失与责任"与全部项目的有关开发者无责任关联。')])]),g]),S,l("ul",null,[G,x,l("li",null,[k,l("ul",null,[D,P,l("li",null,[t('使用本团队所开发的任意项目的过程中可能会产生拥有原有版权的数据,对于这些数据,本团队所开发的任意项目不拥有它们的所有权,为了避免造成侵权,使用者有义务完全阅读并履行"本使用协议第十条"的内容。本软件内使用的资源(包括但不限于字体、图片、文字等)均来源于互联网的公开信息,如果出现侵权可立即联系'),l("a",E,[t("我方"),o(e)]),t("移除。")]),N,I])])]),V,l("ul",null,[v,l("li",null,[l("p",null,[t('十五、本"用户使用协议和法律声明"中,"我方"或称"本开发团队"(区别于"用户"或"您")的实际主体为'),l("a",B,[t("DGP-Studio 开发团队"),o(e)]),t("的团队整体及每个成员个人,即包含前述网站中,"),l("a",H,[t("DGP-Studio 开发团队"),o(e)]),t("的全部成员。")])])])])}const w=i(a,[["render",L],["__file","tos.html.vue"]]);export{w as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{r as u,o as r,c as s,a as l,b as t,d as o,e as n}from"./app-5a96e1e2.js";const a={},h=l("h1",{id:"用户使用协议和法律声明",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#用户使用协议和法律声明","aria-hidden":"true"},"#"),t(" 用户使用协议和法律声明")],-1),d=l("h2",{id:"总则",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#总则","aria-hidden":"true"},"#"),t(" 总则")],-1),_={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},c=l("ul",null,[l("li",null,[t("请您仔细阅读本用户使用协议的"),l("strong",null,"全部内容"),t(',在您阅读"使用协议"后,若对此用户使用协议中的'),l("strong",null,"任何条款"),t("有异议,请立刻停止使用本团队所开发的任意项目。")]),l("li",null,"如您未满 18 周岁,请在法定监护人陪同下仔细阅读并充分理解本协议,并征得法定监护人的同意后使用本团队所开发的任意项目。"),l("li",null,"若您已安装、使用或在开发时引用本团队所开发的任意项目,表示您已主动阅读(已阅读完毕)并完全同意本使用协议所列明的条款,即已充分理解本协议并承诺作为本协议的一方当事人接受协议、法律声明、隐私政策以及与本团队所开发的任意项目相关的规则、规范、声明、公告、通知等内容的约束。"),l("li",null,'此《用户使用协议》是由用户(以下或称"您")与本团队所开发的任意项目所订立的用户使用协议和法律声明,本协议对用户和本团队均具有法律效力。')],-1),p=l("h2",{id:"项目性质、服务以及有关责任与义务的界定",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#项目性质、服务以及有关责任与义务的界定","aria-hidden":"true"},"#"),t(" 项目性质、服务以及有关责任与义务的界定")],-1),f=l("li",null,[l("p",null,'一、由于本团队所开发的任意项目,均"开源"、"非经营性质",故本团队可随时执行全权决定:包括但不限于更改"使用协议",修改本团队所开发的任意项目内的任何内容。如"条款"及"作品的内容"有任何变更,我方将在相关的项目展示网站上刊载公告作为通知。经修订的"条款"一经在官方网站上公布后,即自动生效。')],-1),b=l("li",null,[l("p",null,'二、本软件以"学习开发知识"、"积累开发经验"为目的进行开发,所有项目所提供的功能,均"开源"、"非经营性质",如用户对本团队所开发的任意项目的安全性表示不满,请立即卸载/删除/停用,如您仍在正常使用,则表示您认可本团队所开发的任意项目的安全性。')],-1),q={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},m={href:"https://github.com/DGP-Studio/Snap.Hutao/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer"},g=n("
  • 四、用户使用本团队所开发的任意项目期间,本团队不做任何不发生如下情况的保证:

    • 因网络状况、通讯线路等任何技术原因而导致用户不能正常使用或更新;
    • 因使用"第三方开发的本软件内插件"、"第三方进行二次编译的本软件的修改版"、"复用本开发团队所创作的项目代码而编译成的软件"造成负面结果。
  • 五、用户认可本团队所开发的任意项目,除被动接收软件或其他相关项目中的必要的上传报告或有关信息外,所有信息的上传均需要用户的主动触发;

    • 用户认可本团队所开发的任意项目,均完全尊重并保护所有用户的"个人隐私权",项目代码亦完全公开,用户不具有"因隐私权收到侵犯"而对开发团队或团队成员发起控诉的主观理由。
    • 本团队所开发的任意项目不会向第三方共享、转让您的个人信息,除非经过您本人事先授权同意,或者共享、转让的个人信息是去标识化处理后的信息,且共享第三方无法重新识别此类信息的自然人主体。
    • 本团队所开发的任意项目包含到其他站点的链接,当您访问第三方链接时,请认真阅读第三方站点的用户协议和声明,本团队对于第三方站点的内容、隐私条款、使用协议等不负任何责任。
    • 在使用本团队所开发的任意项目时,提交任意资料的过程中,本团队不保证提交的信息保存成功,您需要对您提交的资料做好存储保管。本团队所开发的部分项目为"被授权数据"提供存储,但在存储过程中存在各种不可抗力的因素,本团队无法承诺对用户的存储信息无限期保留,您的重要信息请自行备份。
  • ",2),S=l("h2",{id:"权利和义务",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#权利和义务","aria-hidden":"true"},"#"),t(" 权利和义务")],-1),G=l("li",null,[l("p",null,"六、我方允许任何单位或个人在没有本开发团队授权的情况下,对本团队所开发的任意项目进行的二次开发、功能修改以及复用我方创作的代码进行其他项目的开发,但对其所侵犯我方计算机软件著作权的行为,我方保留追责的权利。"),l("ul",null,[l("li",null,"我开发团队不对任何单位或个人在使用本团队所开发的任意项目的内容进行的公开发布行为(包括但不限于制作视频、发布带有本软件内容的文章、上传至非我开发团队指定的下载网站提供下载等)的内容所致的任意结果进行负责。"),l("li",null,'我开发团队不对使用"第三方开发的可用于本团队所开发的任意项目的附属程序或额外代码"、"第三方进行二次编译的本团队所开发的任意项目的修改版"、"复用本开发团队所创作的项目代码而编译成的软件"造成的任意结果负责。'),l("li",null,'在此基础上,根据《计算机软件保护条例》第二条与第三条对于"计算机软件"和"文档"的法律定义,本软件开发团队(DGP Studio)保留全部我方开发项目的计算机软件著作权,其包括但不限于项目构建所需的全部信息、全部项目有关的所有文档资料(即用来描述程序的内容、组成、设计、功能规格、开发情况的程序设计说明书、流程图、用户手册等),具体内容以各项目《计算机软件著作权登记证书》的实际内容为准。')])],-1),x=l("li",null,[l("p",null,"七、本团队所开发的任意项目仅作用于合法、合规范围内的学习及研究所用,不得利用本软件系统从事违法活动。"),l("ul",null,[l("li",null,"本团队仅作为项目的开发团队(非法人性质,为自然人组成的团体),对任何使用结果不负任何连带责任,软件以及我方开发的任意项目的使用过程中产生的任何法律后果我们概不负责、不承担任何法律责任。"),l("li",null,'若用户已开始使用本团队所开发的任意项目,即已同意"使用协议",表明本团队已履行完毕"本使用协议第十款"的告知情形。')])],-1),k=l("p",null,"八、所开发项目的著作权。",-1),D=l("li",null,'本软件开发团队对所开发的"Snap.Genshin 软件"、"Snap.Hutao 软件"等作品的软件本身(不包括软件内除功能模块外的显示内容)、上述作品的全部历史版本以及周边网站,以及本团队所开发的任意其他作品,拥有软件内的"各商标的所有权"(引用于网络的图片除外),"著作权"等有关的应有权益。',-1),P=l("li",null,"本团队所开发的任意项目的统计数据全部来源于软件用户主动提交,经过对数据简单地筛选后进行展示,因此本团队所开发的任意项目不对数据的准确性负责,该数据也与我方无关。",-1),E={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},N=l("li",null,"Snap Hutao 客户端程序,以及 hut.ao 网站均与米哈游无关。",-1),I=l("li",null,"原神的游戏内容和各种素材与商标的版权都属于米哈游。",-1),V=l("h2",{id:"其他条款",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#其他条款","aria-hidden":"true"},"#"),t(" 其他条款")],-1),v=n("
  • 九、对于团队所开发项目的"非经营性质"的确定。

    • 本团队所开发的任意项目,均无任何经营性质。

    • 若开发团队的个别或部分成员,在参与开发本团队所开发的任意项目期间,与本团队所开发的任意项目的第三方用户间产生了包括但不限于:赠与、交换、买卖等关系,其所产生的关系与本开发团队无关,此种情形的发生不基于团队开发有关项目这一事实,而是基于其与第三方用户,在发生上述关系的互联网交互位置或现实地点所产生的独立事件,应当以发生上述关系的互联网交互位置的用户使用条款或结合其在现实地点所发生的具体行为来判定此行为的性质。

  • 十、本团队所开发的任意项目(含网站),均以"学习开发知识"、"积累开发经验"为目的进行开发,仅供学习交流,严禁用于商业用途,请您在下载或进行查看学习后的 24 小时内自行删除全部相关信息,若您无视本条要求,本软件开发团队不对"可能产生的版权纠纷、著作权侵权以及民事纠纷等问题"负责。

  • 十一、本协议的成立、生效、履行、解释及争议的解决均应适用中华人民共和国大陆地区法律。倘本协议之任何规定因与中华人民共和国的法律抵触而无效,则这些条款将尽可能接近本协议原条文意旨重新解析,且本协议其它规定仍应具有完整的效力及效果。

  • 十二、本协议签订地点为辽宁省盘锦市辽河油田矿区,在履行本协议中发生纠纷,由双方协商解决,如协商不成,由辽河人民法院管辖,所产生的每阶段费用均由上诉人即时承担。

  • 十三、本协议中的标题(包括副标题)仅为方便及阅读而设,并不影响本协议中任何规定的含义或解释。

  • 十四、您和本开发团队均是独立的主体,在任何情况下本协议不构成本开发团队对用户的任何形式的明示或暗示担保或条件,双方之间亦不构成代理、合伙、合营或雇佣关系。

  • ",6),B={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"},H={href:"https://github.com/DGP-Studio",target:"_blank",rel:"noopener noreferrer"};function L(C,T){const e=u("ExternalLinkIcon");return r(),s("div",null,[h,d,l("ul",null,[l("li",null,[t('本"用户使用协议和法律声明"(以下简称"条款"或"使用协议")适用于'),l("a",_,[t("DGP-Studio 开发团队"),o(e)]),t('(以下简称"本团队"或"我方")开发的全部软件作品、各开发项目的官方网站、附属的自媒体账号等。 '),c])]),p,l("ul",null,[f,b,l("li",null,[l("p",null,[t('三、一切因使用本团队所开发的任意项目的内容而导致的"任何意外损失(包括但不限于:软件、硬件、财产以及虚拟物品等)"、"合约毁坏"、"诽谤"、"版权或知识产权侵犯"及其所造成的损失与责任,均为使用者自身对于网络公开的开源软件的使用过程中自身发生的使用行为所引致的"损失与责任",基于全部作品在其开放源代码的位置(即'),l("a",q,[t("Github"),o(e)]),t(")中所声明的"),l("a",m,[t("MIT license"),o(e)]),t('以及本声明所约定的内容,应当认定前述的"损失与责任"与全部项目的有关开发者无责任关联。')])]),g]),S,l("ul",null,[G,x,l("li",null,[k,l("ul",null,[D,P,l("li",null,[t('使用本团队所开发的任意项目的过程中可能会产生拥有原有版权的数据,对于这些数据,本团队所开发的任意项目不拥有它们的所有权,为了避免造成侵权,使用者有义务完全阅读并履行"本使用协议第十条"的内容。本软件内使用的资源(包括但不限于字体、图片、文字等)均来源于互联网的公开信息,如果出现侵权可立即联系'),l("a",E,[t("我方"),o(e)]),t("移除。")]),N,I])])]),V,l("ul",null,[v,l("li",null,[l("p",null,[t('十五、本"用户使用协议和法律声明"中,"我方"或称"本开发团队"(区别于"用户"或"您")的实际主体为'),l("a",B,[t("DGP-Studio 开发团队"),o(e)]),t("的团队整体及每个成员个人,即包含前述网站中,"),l("a",H,[t("DGP-Studio 开发团队"),o(e)]),t("的全部成员。")])])])])}const w=i(a,[["render",L],["__file","tos.html.vue"]]);export{w as default}; diff --git a/assets/tos.html-ba544e7e.js b/assets/tos.html-e6f84201.js similarity index 99% rename from assets/tos.html-ba544e7e.js rename to assets/tos.html-e6f84201.js index 8b71dbd75..f4fa4837c 100644 --- a/assets/tos.html-ba544e7e.js +++ b/assets/tos.html-e6f84201.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as t,c as o,e as a}from"./app-8966c29b.js";const i={},n=a('

    User Agreement and Legal Notices

    General Provisions

    • This "User Agreement and Legal Disclaimer" (hereinafter referred to as "Terms" or "User Agreement") applies to all software works developed by the DGP-Studio development team (hereinafter referred to as "the team" or "we"), the official website of each development project, and affiliated self-hosted media accounts.
      • Please read all the contents of this User Agreement carefully. If you have any objections to any terms of this User Agreement after reading it, please immediately stop using any projects developed by the team.
      • If you are under 18 years old, please read and fully understand this agreement with the accompaniment of a legal guardian, and obtain the consent of the legal guardian before using any projects developed by the team.
      • If you have installed, used, or referenced any projects developed by the team during development, it means that you have actively read (read it completely) and fully agree to the terms listed in this User Agreement, that is, you have fully understood this Agreement and promised to accept the constraints of the agreement, legal statements, privacy policies, rules, norms, statements, notices, and other content related to any projects developed by the team.
      • This "User Agreement" is a user agreement and legal disclaimer entered into by the user (hereinafter referred to as "you") and any projects developed by the team. This agreement has legal effect on both the user and the team.

    Nature of the Project, Services, and Definition of Responsibilities and Obligations

    1. As all projects developed by the team are "open-source" and "non-business" in nature, the team can make full decisions at any time, including but not limited to changing the "User Agreement" and modifying any content within any projects developed by the team. If there are any changes to the "Terms" or the content of the works, we will post notices on the relevant project display website. The revised "Terms" will take effect automatically after they are published on the official website.

    2. The development of this software is aimed at "learning development knowledge" and "accumulating development experience." All functions provided by all projects are "open-source" and "non-business" in nature. If you are dissatisfied with the security of any projects developed by the team, please uninstall/delete/stop using them immediately. If you continue to use them normally, it means that you approve of the security of any projects developed by the team.

    3. Any "unexpected losses (including but not limited to: software, hardware, property, virtual items, etc.)", "contractual damage", "defamation", "copyright or intellectual property infringement," and the resulting losses and liabilities caused by the use of any content in any projects developed by the team are all "losses and liabilities" caused by the user's own use behavior of open-source software on the Internet. Based on the MIT license declared in all works at their open-source location (i.e., GitHub) and the content stipulated in this declaration, it should be deemed that the aforementioned "losses and liabilities" have no responsibility relationship with all the relevant developers of the projects.

    4. During the user's use of any projects developed by the team, the team does not make any guarantees that do not occur under the following circumstances:

      • The user cannot use or update normally due to network conditions, communication lines, and other technical reasons;
      • Negative results caused by using "plug-ins in this software developed by a third party," "modified versions of this software compiled by a third party," and "software compiled by reusing project code created by this development team."
    5. Users acknowledge that any project developed by our team requires active user trigger for any information upload, except for necessary upload reports or related information in passive receipt of software or other related projects.

      • Users acknowledge that any project developed by our team fully respects and protects the "personal privacy rights" of all users. The project code is also fully open, and users do not have subjective reasons to accuse the development team or team members of "violation of privacy rights".
      • Any personal information of users will not be shared or transferred to third parties by any project developed by our team, unless with the user's prior authorization or the shared and transferred personal information has been de-identified and the third party cannot re-identify the natural person subject of such information.
      • Any project developed by our team contains links to other sites. When you visit third-party links, please read the user agreement and statement of the third-party site carefully. Our team is not responsible for the content, privacy terms, and usage agreements of third-party sites.
      • When using any project developed by our team, we cannot guarantee that the information you submit will be saved successfully. You need to properly store and keep the information you submit. Some projects developed by our team provide storage for "authorized data," but there are various force majeure factors in the storage process. Our team cannot promise to keep users' stored information indefinitely. Please back up your important information yourself.

    Rights and Obligations

    1. Our team allows any individual or organization to conduct secondary development, functional modification, and reuse of our code for other projects without our team's authorization, for any project developed by our team. However, we reserve the right to pursue legal action against any infringement of our team's computer software copyright.

      • Our team shall not be responsible for any consequences resulting from the public release of the contents of any project developed by our team (including but not limited to video production, articles with content of this software, uploading to download sites not designated by our development team, etc.) by any individual or organization using the project developed by our team.
      • Our team shall not be responsible for any consequences resulting from the use of "third-party subsidiary programs or additional code that can be used for any project developed by our team", "modified versions of any project developed by our team that have been compiled by third parties", or "software compiled using the project code created by our development team".
      • Based on the legal definitions of "computer software" and "documents" in Article 2 and Article 3 of the "Regulations on the Protection of Computer Software," DGP Studio reserves all computer software copyright for all of our development projects. This includes but is not limited to all information necessary to construct the project and all document data related to the project (i.e. program design specifications, flowcharts, user manuals, etc.), with the actual content subject to the "Computer Software Copyright Registration Certificate" for each project.
    2. Any project developed by our team is only intended for lawful and compliant learning and research use and shall not be used for illegal activities.

      • Our team is only a development team (not a legal entity composed of natural persons), and shall not be held responsible for any joint liability for any use of the software or any project developed by our team that results in any legal consequences.
      • If a user has already started using any project developed by our team, it means that they have agreed to the "Usage Agreement" and that our team has already fulfilled the notification requirements in Section 10 of this Usage Agreement.
    3. Copyright of the developed projects.

      • Our software development team holds the ownership of all trademarks in the software itself (excluding display content other than functional modules), all historical versions of the aforementioned works, and the surrounding websites. We also hold any related rights and interests regarding copyright.
      • All statistical data of any project developed by our team comes from users who submit data voluntarily. After the data is screened, it is displayed. Therefore, our team is not responsible for the accuracy of the data, and the data is not related to us.
      • During the use of any project developed by our team, there may be data that has original copyright. For these data, our team does not own their ownership. In order to avoid infringement, the user has the obligation to fully read and comply with the content of Section 10 of this Usage Agreement. The resources used in this software (including but not limited to fonts, images, and text) are from public information on the Internet. If infringement occurs, you can contact us at our GitHub to remove it.
      • Snap Hutao program and hut.ao website are not affiliated with miHoYo.
      • The copyright of Genshin Impact's game content and various materials and trademarks belongs to miHoYo.

    Other Terms

    1. Determination of "Non-Business Nature" of Projects Developed by the Team.

      • Any project developed by the team has no business nature.
      • If individual or certain members of the development team, during their participation in the development of any project developed by the team, have entered into relationships with third-party users, including but not limited to gifts, exchanges, sales, etc., the resulting relationships are unrelated to the development team. This occurrence is not based on the fact that the team developed a related project, but rather on independent events that occurred at the location where the user entered into the aforementioned relationship on the Internet or in reality. The nature of this behavior should be determined based on the user terms of use at the Internet interaction location where the aforementioned relationship occurred, or in combination with specific behaviors that occurred in reality.
    2. Any project (including websites) developed by the team is developed for the purpose of "learning development knowledge" and "accumulating development experience," and is only for learning and communication purposes. It is strictly prohibited to use it for commercial purposes. After downloading or viewing the learning materials, please delete all related information within 24 hours. If you ignore this requirement, the software development team is not responsible for "possible copyright disputes, infringement of intellectual property rights, and civil disputes."

    3. The establishment, effectiveness, performance, interpretation, and dispute resolution of this agreement shall be governed by the laws of the mainland of the People's Republic of China. If any provision of this agreement conflicts with the laws of the People's Republic of China and is invalid, these provisions will be reinterpreted as closely as possible to the original intent of this agreement. The other provisions of this agreement shall remain in full force and effect.

    4. The place of signing this agreement is Liaohe Oilfield Mining Area, Panjin City, Liaoning Province, China. If a dispute arises in the performance of this agreement, the parties shall resolve it through consultation. If no agreement can be reached through consultation, the Liaohe People's Court shall have jurisdiction, and the appellant shall bear the costs of each stage immediately.

    5. The titles (including subtitles) in this agreement are for convenience and reading only and do not affect the meaning or interpretation of any provisions of this agreement.

    6. Both you and the development team are independent entities, and under no circumstances does this agreement constitute any express or implied guarantee or condition of the development team towards users. There is also no agency, partnership, joint venture, or employment relationship between the two parties.

    7. In this "User Agreement and Legal Statement," the term "our party" or "the development team" (as distinguished from "you" or "the user") refers to the entire team of DGP-Studio Development Team, including each individual member.

    ',9),r=[n];function s(l,d){return t(),o("div",null,r)}const c=e(i,[["render",s],["__file","tos.html.vue"]]);export{c as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as t,c as o,e as a}from"./app-5a96e1e2.js";const i={},n=a('

    User Agreement and Legal Notices

    General Provisions

    • This "User Agreement and Legal Disclaimer" (hereinafter referred to as "Terms" or "User Agreement") applies to all software works developed by the DGP-Studio development team (hereinafter referred to as "the team" or "we"), the official website of each development project, and affiliated self-hosted media accounts.
      • Please read all the contents of this User Agreement carefully. If you have any objections to any terms of this User Agreement after reading it, please immediately stop using any projects developed by the team.
      • If you are under 18 years old, please read and fully understand this agreement with the accompaniment of a legal guardian, and obtain the consent of the legal guardian before using any projects developed by the team.
      • If you have installed, used, or referenced any projects developed by the team during development, it means that you have actively read (read it completely) and fully agree to the terms listed in this User Agreement, that is, you have fully understood this Agreement and promised to accept the constraints of the agreement, legal statements, privacy policies, rules, norms, statements, notices, and other content related to any projects developed by the team.
      • This "User Agreement" is a user agreement and legal disclaimer entered into by the user (hereinafter referred to as "you") and any projects developed by the team. This agreement has legal effect on both the user and the team.

    Nature of the Project, Services, and Definition of Responsibilities and Obligations

    1. As all projects developed by the team are "open-source" and "non-business" in nature, the team can make full decisions at any time, including but not limited to changing the "User Agreement" and modifying any content within any projects developed by the team. If there are any changes to the "Terms" or the content of the works, we will post notices on the relevant project display website. The revised "Terms" will take effect automatically after they are published on the official website.

    2. The development of this software is aimed at "learning development knowledge" and "accumulating development experience." All functions provided by all projects are "open-source" and "non-business" in nature. If you are dissatisfied with the security of any projects developed by the team, please uninstall/delete/stop using them immediately. If you continue to use them normally, it means that you approve of the security of any projects developed by the team.

    3. Any "unexpected losses (including but not limited to: software, hardware, property, virtual items, etc.)", "contractual damage", "defamation", "copyright or intellectual property infringement," and the resulting losses and liabilities caused by the use of any content in any projects developed by the team are all "losses and liabilities" caused by the user's own use behavior of open-source software on the Internet. Based on the MIT license declared in all works at their open-source location (i.e., GitHub) and the content stipulated in this declaration, it should be deemed that the aforementioned "losses and liabilities" have no responsibility relationship with all the relevant developers of the projects.

    4. During the user's use of any projects developed by the team, the team does not make any guarantees that do not occur under the following circumstances:

      • The user cannot use or update normally due to network conditions, communication lines, and other technical reasons;
      • Negative results caused by using "plug-ins in this software developed by a third party," "modified versions of this software compiled by a third party," and "software compiled by reusing project code created by this development team."
    5. Users acknowledge that any project developed by our team requires active user trigger for any information upload, except for necessary upload reports or related information in passive receipt of software or other related projects.

      • Users acknowledge that any project developed by our team fully respects and protects the "personal privacy rights" of all users. The project code is also fully open, and users do not have subjective reasons to accuse the development team or team members of "violation of privacy rights".
      • Any personal information of users will not be shared or transferred to third parties by any project developed by our team, unless with the user's prior authorization or the shared and transferred personal information has been de-identified and the third party cannot re-identify the natural person subject of such information.
      • Any project developed by our team contains links to other sites. When you visit third-party links, please read the user agreement and statement of the third-party site carefully. Our team is not responsible for the content, privacy terms, and usage agreements of third-party sites.
      • When using any project developed by our team, we cannot guarantee that the information you submit will be saved successfully. You need to properly store and keep the information you submit. Some projects developed by our team provide storage for "authorized data," but there are various force majeure factors in the storage process. Our team cannot promise to keep users' stored information indefinitely. Please back up your important information yourself.

    Rights and Obligations

    1. Our team allows any individual or organization to conduct secondary development, functional modification, and reuse of our code for other projects without our team's authorization, for any project developed by our team. However, we reserve the right to pursue legal action against any infringement of our team's computer software copyright.

      • Our team shall not be responsible for any consequences resulting from the public release of the contents of any project developed by our team (including but not limited to video production, articles with content of this software, uploading to download sites not designated by our development team, etc.) by any individual or organization using the project developed by our team.
      • Our team shall not be responsible for any consequences resulting from the use of "third-party subsidiary programs or additional code that can be used for any project developed by our team", "modified versions of any project developed by our team that have been compiled by third parties", or "software compiled using the project code created by our development team".
      • Based on the legal definitions of "computer software" and "documents" in Article 2 and Article 3 of the "Regulations on the Protection of Computer Software," DGP Studio reserves all computer software copyright for all of our development projects. This includes but is not limited to all information necessary to construct the project and all document data related to the project (i.e. program design specifications, flowcharts, user manuals, etc.), with the actual content subject to the "Computer Software Copyright Registration Certificate" for each project.
    2. Any project developed by our team is only intended for lawful and compliant learning and research use and shall not be used for illegal activities.

      • Our team is only a development team (not a legal entity composed of natural persons), and shall not be held responsible for any joint liability for any use of the software or any project developed by our team that results in any legal consequences.
      • If a user has already started using any project developed by our team, it means that they have agreed to the "Usage Agreement" and that our team has already fulfilled the notification requirements in Section 10 of this Usage Agreement.
    3. Copyright of the developed projects.

      • Our software development team holds the ownership of all trademarks in the software itself (excluding display content other than functional modules), all historical versions of the aforementioned works, and the surrounding websites. We also hold any related rights and interests regarding copyright.
      • All statistical data of any project developed by our team comes from users who submit data voluntarily. After the data is screened, it is displayed. Therefore, our team is not responsible for the accuracy of the data, and the data is not related to us.
      • During the use of any project developed by our team, there may be data that has original copyright. For these data, our team does not own their ownership. In order to avoid infringement, the user has the obligation to fully read and comply with the content of Section 10 of this Usage Agreement. The resources used in this software (including but not limited to fonts, images, and text) are from public information on the Internet. If infringement occurs, you can contact us at our GitHub to remove it.
      • Snap Hutao program and hut.ao website are not affiliated with miHoYo.
      • The copyright of Genshin Impact's game content and various materials and trademarks belongs to miHoYo.

    Other Terms

    1. Determination of "Non-Business Nature" of Projects Developed by the Team.

      • Any project developed by the team has no business nature.
      • If individual or certain members of the development team, during their participation in the development of any project developed by the team, have entered into relationships with third-party users, including but not limited to gifts, exchanges, sales, etc., the resulting relationships are unrelated to the development team. This occurrence is not based on the fact that the team developed a related project, but rather on independent events that occurred at the location where the user entered into the aforementioned relationship on the Internet or in reality. The nature of this behavior should be determined based on the user terms of use at the Internet interaction location where the aforementioned relationship occurred, or in combination with specific behaviors that occurred in reality.
    2. Any project (including websites) developed by the team is developed for the purpose of "learning development knowledge" and "accumulating development experience," and is only for learning and communication purposes. It is strictly prohibited to use it for commercial purposes. After downloading or viewing the learning materials, please delete all related information within 24 hours. If you ignore this requirement, the software development team is not responsible for "possible copyright disputes, infringement of intellectual property rights, and civil disputes."

    3. The establishment, effectiveness, performance, interpretation, and dispute resolution of this agreement shall be governed by the laws of the mainland of the People's Republic of China. If any provision of this agreement conflicts with the laws of the People's Republic of China and is invalid, these provisions will be reinterpreted as closely as possible to the original intent of this agreement. The other provisions of this agreement shall remain in full force and effect.

    4. The place of signing this agreement is Liaohe Oilfield Mining Area, Panjin City, Liaoning Province, China. If a dispute arises in the performance of this agreement, the parties shall resolve it through consultation. If no agreement can be reached through consultation, the Liaohe People's Court shall have jurisdiction, and the appellant shall bear the costs of each stage immediately.

    5. The titles (including subtitles) in this agreement are for convenience and reading only and do not affect the meaning or interpretation of any provisions of this agreement.

    6. Both you and the development team are independent entities, and under no circumstances does this agreement constitute any express or implied guarantee or condition of the development team towards users. There is also no agency, partnership, joint venture, or employment relationship between the two parties.

    7. In this "User Agreement and Legal Statement," the term "our party" or "the development team" (as distinguished from "you" or "the user") refers to the entire team of DGP-Studio Development Team, including each individual member.

    ',9),r=[n];function s(l,d){return t(),o("div",null,r)}const c=e(i,[["render",s],["__file","tos.html.vue"]]);export{c as default}; diff --git a/assets/uninstall.html-5214283b.js b/assets/uninstall.html-21af1d57.js similarity index 97% rename from assets/uninstall.html-5214283b.js rename to assets/uninstall.html-21af1d57.js index f37164598..b91bf2fdd 100644 --- a/assets/uninstall.html-5214283b.js +++ b/assets/uninstall.html-21af1d57.js @@ -1,2 +1,2 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as d,c as r,a as e,b as l,d as t,w as u,e as a}from"./app-8966c29b.js";const c={},h=e("h1",{id:"uninstall-snap-hutao",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uninstall-snap-hutao","aria-hidden":"true"},"#"),l(" Uninstall Snap Hutao")],-1),p=e("strong",null,"Method 1",-1),_=e("li",null,"Launch Snap Hutao, and go to settings page",-1),m=e("strong",null,"Delete All Scheduled Task",-1),B=e("strong",null,"Execute",-1),f=a(`
  • Method 2
    • Execute the following PowerShell script
      schtasks /delete /tn SnapHutaoDailyNoteRefreshTask
      +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as d,c as r,a as e,b as l,d as t,w as u,e as a}from"./app-5a96e1e2.js";const c={},h=e("h1",{id:"uninstall-snap-hutao",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#uninstall-snap-hutao","aria-hidden":"true"},"#"),l(" Uninstall Snap Hutao")],-1),p=e("strong",null,"Method 1",-1),_=e("li",null,"Launch Snap Hutao, and go to settings page",-1),m=e("strong",null,"Delete All Scheduled Task",-1),B=e("strong",null,"Execute",-1),f=a(`
    • Method 2
      • Execute the following PowerShell script
        schtasks /delete /tn SnapHutaoDailyNoteRefreshTask
         
    • Method 3
      • Open Windows Scheduled Task Manager
      • Find SnapHutaoDailyNoteRefreshTask task and delete it
    • Method 4
      • Upgrade to1.5.1 version and open Real-time Notes
      • Close software and remove it
    • `,3),g=a("
    • Remove the Software
      • Open Start Menu
      • Find or search Snap Hutao
      • Right click on it, and select Unstall
    • Remove data folder (If you want remove it completely)
      • Open and delete %userprofile%/Documents/Hutao
    • ",2);function E(v,S){const i=n("RouterLink"),o=n("Badge");return d(),r("div",null,[h,e("ul",null,[e("li",null,[l("Clear Real-time Notes Scheduled Task "),e("ul",null,[e("li",null,[l("Before version 1.4.15, if not execute this step, scheduled task used to refresh real-time notes may not be deleted,and you may face "),t(i,{to:"/en/advanced/FAQ.html#%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%BC%B9%E5%87%BA%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8%E6%96%B0%E5%BA%94%E7%94%A8%E4%BB%A5%E6%89%93%E5%BC%80%E7%9A%84%E5%AF%B9%E8%AF%9D%E6%A1%86"},{default:u(()=>[l("this issue")]),_:1}),e("ul",null,[e("li",null,[p,l(),t(o,{text:"For version <= 1.4.15",type:"tip"}),l(": "),e("ul",null,[_,e("li",null,[l("Find "),m,l(" field, and click on "),B,l(" Button "),t(o,{text:"Requires administrator privileges",type:"tip"})])])])])]),f])]),g])])}const x=s(c,[["render",E],["__file","uninstall.html.vue"]]);export{x as default}; diff --git a/assets/uninstall.html-4c4795fe.js b/assets/uninstall.html-aa4818ea.js similarity index 97% rename from assets/uninstall.html-4c4795fe.js rename to assets/uninstall.html-aa4818ea.js index 8c933cc6c..0a2641638 100644 --- a/assets/uninstall.html-4c4795fe.js +++ b/assets/uninstall.html-aa4818ea.js @@ -1,2 +1,2 @@ -import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as d,a as e,b as l,d as o,w as r,e as n}from"./app-8966c29b.js";const u={},_=e("h1",{id:"卸载胡桃工具箱",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#卸载胡桃工具箱","aria-hidden":"true"},"#"),l(" 卸载胡桃工具箱")],-1),h=e("strong",null,"方法 1",-1),B=e("li",null,[l("打开胡桃,选择 "),e("strong",null,"设置"),l(" 页签")],-1),E=e("strong",null,"删除所有计划任务",-1),m=e("strong",null,"执行",-1),p=n(`
    • 方法 2
      • 执行下方的脚本
        schtasks /delete /tn SnapHutaoDailyNoteRefreshTask
        +import{_ as a}from"./plugin-vue_export-helper-c27b6911.js";import{r as i,o as c,c as d,a as e,b as l,d as o,w as r,e as n}from"./app-5a96e1e2.js";const u={},_=e("h1",{id:"卸载胡桃工具箱",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#卸载胡桃工具箱","aria-hidden":"true"},"#"),l(" 卸载胡桃工具箱")],-1),h=e("strong",null,"方法 1",-1),B=e("li",null,[l("打开胡桃,选择 "),e("strong",null,"设置"),l(" 页签")],-1),E=e("strong",null,"删除所有计划任务",-1),m=e("strong",null,"执行",-1),p=n(`
      • 方法 2
        • 执行下方的脚本
          schtasks /delete /tn SnapHutaoDailyNoteRefreshTask
           
      • 方法 3
        • 打开 Windows 计划任务程序
        • 找到 SnapHutaoDailyNoteRefreshTask 任务并删除
      • 方法 4
        • 升级至1.5.1版本并使用一次实时便笺功能
        • 直接卸载胡桃工具箱
      • `,3),g=n("
      • 卸载软件
        • 打开开始菜单
        • 找到或搜索到胡桃
        • 右键点击胡桃,并选择卸载
      • 清除数据文件夹(如需完全卸载)
        • 打开并删除该文件夹 %userprofile%/Documents/Hutao
      • ",2);function f(A,v){const s=i("RouterLink"),t=i("Badge");return c(),d("div",null,[_,e("ul",null,[e("li",null,[l("清除有关的任务计划 "),e("ul",null,[e("li",null,[l("1.4.15 版本前,若不执行该步骤,胡桃用于获取实时便笺数据的计划任务将不会被删除,会出现"),o(s,{to:"/zh/advanced/FAQ.html#%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BC%9A%E5%BC%B9%E5%87%BA%E9%9C%80%E8%A6%81%E4%BD%BF%E7%94%A8%E6%96%B0%E5%BA%94%E7%94%A8%E4%BB%A5%E6%89%93%E5%BC%80%E7%9A%84%E5%AF%B9%E8%AF%9D%E6%A1%86"},{default:r(()=>[l("这个问题")]),_:1})]),e("li",null,[h,l(),o(t,{text:"仅限早于 1.4.15 的版本",type:"tip"}),l(": "),e("ul",null,[B,e("li",null,[l("找到 "),E,l(" 一栏中,点击右侧的 "),m,l(" 按钮 "),o(t,{text:"需要管理员模式",type:"tip"})])])]),p])]),g])])}const w=a(u,[["render",f],["__file","uninstall.html.vue"]]);export{w as default}; diff --git a/assets/update-log.html-3e82a157.js b/assets/update-log.html-180bffb9.js similarity index 99% rename from assets/update-log.html-3e82a157.js rename to assets/update-log.html-180bffb9.js index 50fb03a2c..a4291618f 100644 --- a/assets/update-log.html-3e82a157.js +++ b/assets/update-log.html-180bffb9.js @@ -1 +1 @@ -import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as a,c as h,a as l,b as e,d as i,w as _,e as r}from"./app-8966c29b.js";const d={},c=l("h1",{id:"更新日志",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#更新日志","aria-hidden":"true"},"#"),e(" 更新日志")],-1),p={id:"_1-8-1",tabindex:"-1"},f=l("a",{class:"header-anchor",href:"#_1-8-1","aria-hidden":"true"},"#",-1),b=l("em",null,"启动游戏",-1),g={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1082",target:"_blank",rel:"noopener noreferrer"},S=l("em",null,"祈愿记录",-1),m=l("em",null,"胡桃云面板",-1),k=l("em",null,"深渊记录",-1),H={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1116",target:"_blank",rel:"noopener noreferrer"},G=l("em",null,"自动连点",-1),D={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1119",target:"_blank",rel:"noopener noreferrer"},P=l("em",null,"养成计划",-1),x={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1099",target:"_blank",rel:"noopener noreferrer"},I=l("em",null,"成就管理",-1),U={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1124",target:"_blank",rel:"noopener noreferrer"},v=l("em",null,"启动游戏",-1),E=l("em",null,"资源下载",-1),L={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1126",target:"_blank",rel:"noopener noreferrer"},A=l("em",null,"实时便笺",-1),B={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1123",target:"_blank",rel:"noopener noreferrer"},w=l("em",null,"用户面板",-1),F={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1121",target:"_blank",rel:"noopener noreferrer"},W=l("li",null,[e("重做了"),l("em",null,"角色资料"),e("页面的 UI")],-1),Y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1127",target:"_blank",rel:"noopener noreferrer"},T=l("h2",{id:"_1-8-0",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-8-0","aria-hidden":"true"},"#"),e(" 1.8.0")],-1),C=l("strong",null,"升级了 .NET 版本到 8",-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1103",target:"_blank",rel:"noopener noreferrer"},V=l("em",null,"胡桃通行证",-1),K={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1087",target:"_blank",rel:"noopener noreferrer"},N=l("em",null,"养成计划",-1),R={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1099",target:"_blank",rel:"noopener noreferrer"},J=l("em",null,"启动游戏",-1),j={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1106",target:"_blank",rel:"noopener noreferrer"},z={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1096",target:"_blank",rel:"noopener noreferrer"},M=l("li",null,"修复了启动时初始化用户信息可能导致程序假死的问题",-1),q=l("li",null,"修复了部分页面在切换后会产生不必要的异常的问题",-1),O=l("li",null,"修复了部分异常无法正常捕获的问题",-1),Q=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"为元数据初始化添加了更详细的失败信息")])],-1),X=l("h2",{id:"_1-7-17",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-17","aria-hidden":"true"},"#"),e(" 1.7.17")],-1),Z={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1079",target:"_blank",rel:"noopener noreferrer"},$={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1081",target:"_blank",rel:"noopener noreferrer"},ll=l("li",null,"修复了特定条件下错误日志无法正常获取并上传的问题",-1),el=l("li",null,"修复了导出祈愿记录中时间不正确的问题",-1),il=l("li",null,"修复了米游社网页弹窗数据异常的问题",-1),tl=l("li",null,"修复了祈愿记录页面历史/角色/武器页签中物品数量遮罩的圆角半径不正确的问题",-1),nl=l("li",null,"修复了非 UTC+08 时区下首页中公告的时间可能不正确的问题",-1),ol=l("li",null,"更改了米游社网页弹窗的 UI, 支持后退与刷新并能查看网页标题",-1),rl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/961",target:"_blank",rel:"noopener noreferrer"},ul={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/830",target:"_blank",rel:"noopener noreferrer"},sl=l("h2",{id:"_1-7-16",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-16","aria-hidden":"true"},"#"),e(" 1.7.16")],-1),al=l("p",null,"新增",-1),hl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1065",target:"_blank",rel:"noopener noreferrer"},_l={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1062",target:"_blank",rel:"noopener noreferrer"},dl={href:"https://github.com/Scighost/Starward",target:"_blank",rel:"noopener noreferrer"},cl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1071",target:"_blank",rel:"noopener noreferrer"},pl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1074",target:"_blank",rel:"noopener noreferrer"},fl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/778",target:"_blank",rel:"noopener noreferrer"},bl=l("p",null,"修复",-1),gl=l("li",null,"修复了米游社小工具页面无法正常跳转的问题",-1),Sl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1069",target:"_blank",rel:"noopener noreferrer"},ml=l("code",null,"5003",-1),kl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1060",target:"_blank",rel:"noopener noreferrer"},Hl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1068",target:"_blank",rel:"noopener noreferrer"},Gl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1072",target:"_blank",rel:"noopener noreferrer"},Dl=l("p",null,"优化",-1),Pl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1074",target:"_blank",rel:"noopener noreferrer"},xl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1015",target:"_blank",rel:"noopener noreferrer"},Il={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/778",target:"_blank",rel:"noopener noreferrer"},Ul=l("li",null,"增强了客户端稳定性",-1),vl=l("h2",{id:"_1-7-15",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-15","aria-hidden":"true"},"#"),e(" 1.7.15")],-1),El={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/886",target:"_blank",rel:"noopener noreferrer"},Ll={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1052",target:"_blank",rel:"noopener noreferrer"},Al={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1059",target:"_blank",rel:"noopener noreferrer"},Bl=l("li",null,"修复了设置实时便笺 Webhook Url 后可能导致通知功能不正常的问题",-1),wl=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"优化了客户端中胡桃云账号修改密码和注销账号的操作逻辑")])],-1),Fl={id:"_1-7-14",tabindex:"-1"},Wl=l("a",{class:"header-anchor",href:"#_1-7-14","aria-hidden":"true"},"#",-1),Yl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1052",target:"_blank",rel:"noopener noreferrer"},Tl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1054",target:"_blank",rel:"noopener noreferrer"},Cl=l("h2",{id:"_1-7-13",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-13","aria-hidden":"true"},"#"),e(" 1.7.13")],-1),yl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/431",target:"_blank",rel:"noopener noreferrer"},Vl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/899",target:"_blank",rel:"noopener noreferrer"},Kl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1021",target:"_blank",rel:"noopener noreferrer"},Nl=l("code",null,"参数错误",-1),Rl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/925",target:"_blank",rel:"noopener noreferrer"},Jl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1035",target:"_blank",rel:"noopener noreferrer"},jl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1023",target:"_blank",rel:"noopener noreferrer"},zl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1041",target:"_blank",rel:"noopener noreferrer"},Ml=l("li",null,"修复了无法正确检测游戏是否正在运行的问题",-1),ql={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/903",target:"_blank",rel:"noopener noreferrer"},Ol=l("li",null,"为胡桃云服务的提示文本增加了国际化支持",-1),Ql={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1021",target:"_blank",rel:"noopener noreferrer"},Xl=l("li",null,"重新设计了启动游戏页面的 UI",-1),Zl=l("li",null,"用户现在可以在高级启动器中选择游戏启动参数",-1),$l={id:"_1-7-11",tabindex:"-1"},le=l("a",{class:"header-anchor",href:"#_1-7-11","aria-hidden":"true"},"#",-1),ee=l("ul",null,[l("li",null,"修复了游戏启动器中窗口设置的错误 (hotfix)")],-1),ie=l("h2",{id:"_1-7-10",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-10","aria-hidden":"true"},"#"),e(" 1.7.10")],-1),te={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1011",target:"_blank",rel:"noopener noreferrer"},ne={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1012",target:"_blank",rel:"noopener noreferrer"},oe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1013",target:"_blank",rel:"noopener noreferrer"},re=l("code",null,"无效的物品",-1),ue={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1001",target:"_blank",rel:"noopener noreferrer"},se=l("li",null,"修复了提供无效的无感验证 Url 后在请求相应接口时会导致程序崩溃的问题",-1),ae=l("li",null,"修复了部分无效的通道状态下进入启动游戏页面会导致程序崩溃的问题",-1),he=l("li",null,"修复了 WebView2 Runtime 版本过低时查看内嵌网页并切换账号会导致程序崩溃的问题",-1),_e=l("li",null,"修复了深境螺旋页面当部分记录无有效值时会导致程序崩溃的问题",-1),de=l("li",null,"修复了内嵌网页可能导致内存溢出的一个问题",-1),ce=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"现在启动游戏页面中检测账号后若已经存在对应账号会自动选择")])],-1),pe=l("h2",{id:"_1-7-9",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-9","aria-hidden":"true"},"#"),e(" 1.7.9")],-1),fe=l("li",null,"修复了退出程序后显示器分辨率更改后无法以正确窗口尺寸启动的问题",-1),be={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1005",target:"_blank",rel:"noopener noreferrer"},ge={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1007",target:"_blank",rel:"noopener noreferrer"},Se=l("li",null,"修复了 1.7.7 版本无法正确上传崩溃日志的问题",-1),me={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1008",target:"_blank",rel:"noopener noreferrer"},ke=r('

        1.7.7

        • 在以下位置增加了卡片阴影以优化视觉效果
          • 仪表板与活动公告
          • 高级启动器资源下载页签
          • 祈愿记录总览页签
          • 祈愿记录历史页签详情
          • 祈愿记录统计页签
          • 实时便笺卡片
          • 我的角色列表视图详情
          • 角色 WIKI 立绘框
          • 武器 WIKI 立绘框
        • 修复
          • 修复了网格视图下顶部边距不正确的问题
          • 修复了多个导致崩溃的问题
          • 修复了无法正常转换官服/Bilibili 服务器的问题
        • 优化
          • 调整了验证当前用户与角色按钮的位置
            • 现在你可以在账号面板中直接找到它
          • 获取深渊记录/上传数据引入验证重试机制
            • 未使用无感验证的用户可以在角色面板中打开我的角色网页视图手动验证后重试

        1.7.6

        ',3),He=l("li",null,[e("新增 "),l("ul",null,[l("li",null,[e("新增了管理员模式下的 F8 鼠标连点功能 "),l("ul",null,[l("li",null,"在即将到来的原神 4.1 和 4.2 版本,该功能可以帮助跳过你不喜欢的剧情部分")])])])],-1),Ge={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/947",target:"_blank",rel:"noopener noreferrer"},De={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/865",target:"_blank",rel:"noopener noreferrer"},Pe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/956",target:"_blank",rel:"noopener noreferrer"},xe=l("li",null,"修复了 4.1 版本元数据导致深境螺旋页面崩溃的问题",-1),Ie=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"调整了部分用户界面的细节呈现"),l("li",null,"调整了特定情况下的游戏公告文本的颜色"),l("li",null,"调整了下载离散资源图片文件失败时的逻辑")])],-1),Ue=l("h2",{id:"_1-7-5",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-5","aria-hidden":"true"},"#"),e(" 1.7.5")],-1),ve=l("li",null,"成就记录页面新增成就对应版本号数据",-1),Ee={href:"https://space.bilibili.com/3537104994831140",target:"_blank",rel:"noopener noreferrer"},Le={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/876",target:"_blank",rel:"noopener noreferrer"},Ae={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/875",target:"_blank",rel:"noopener noreferrer"},Be={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/924",target:"_blank",rel:"noopener noreferrer"},we={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/880",target:"_blank",rel:"noopener noreferrer"},Fe=l("li",null,"修复了实时便笺界面切换帐号后无法切换待验证帐号的问题",-1),We=l("li",null,"修复了深渊记录有时无法正确刷新详细数据的问题",-1),Ye={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/930",target:"_blank",rel:"noopener noreferrer"},Te={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/929",target:"_blank",rel:"noopener noreferrer"},Ce=l("li",null,[l("strong",null,"深渊统计页面迁移合并至深渊记录页面下")],-1),ye=l("li",null,"调整了多处时间显示的格式",-1),Ve=l("h2",{id:"_1-7-4",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-4","aria-hidden":"true"},"#"),e(" 1.7.4")],-1),Ke=l("li",null,"设置页面新增了切换 PowerShell 实例的选项",-1),Ne={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/912",target:"_blank",rel:"noopener noreferrer"},Re=l("li",null,"设置页面新增了调整主页卡片是否呈现的选项",-1),Je=l("li",null,"我的角色页面新增批量添加到养成计划的功能",-1),je={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/887",target:"_blank",rel:"noopener noreferrer"},ze={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/904",target:"_blank",rel:"noopener noreferrer"},Me={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/907",target:"_blank",rel:"noopener noreferrer"},qe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/893",target:"_blank",rel:"noopener noreferrer"},Oe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/917",target:"_blank",rel:"noopener noreferrer"},Qe=l("li",null,"修复了养成计划在未进入养成计划页面前没有提前选中的问题,该问题曾导致至少需要进入一次养成计划页面才能添加养成计划",-1),Xe=l("li",null,"修复了领取签到奖励触发验证时有即使接口报告成功也无法验证成功的问题",-1),Ze=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"调整了怪物资料中怪物的展示顺序"),l("li",null,"优化了祈愿统计的加载速度"),l("li",null,"优化了数据库访问的 UI 线程占用"),l("li",null,"优化了养成计划页面中部分视图的滚动体验,现在可能需要更长的时间才能加载视图")])],-1),$e=r('

        1.7.3

        • 修复了 HoYoverse 网页登录失效的问题
        • 升级了 Windows App SDK 版本,修复了标题栏顶部无法缩放窗口的问题
        • 调整了 UIGF v2.2 导入失败的提示,现在能根据 Id 更快地定位问题
        • 修复了用户面板领取签到奖励失败但仍然显示成功的问题
        • 修复了任务栏中的启动游戏项会同时启动游戏窗口和主窗口的问题

        1.7.2

        • 祈愿记录
          • 修复了全量刷新无法正确生效的问题
          • 修复了无错误的 UIGF 文件无法正确导入的问题
          • 修复了胡桃云记录无法正确获取的问题
          • 调整了胡桃云窗口的 UI,使其显示对应 UID 存档中的抽数
        • 我的角色
          • 调整了界面 UI 使其变得更加紧凑
        • 调整了主页通知的 UI, 使其向右侧边缘对齐

        1.7.0

        • 增加了引导页面,在首次启动胡桃时将引导用户使用胡桃
          • 引导用户选择语言
          • 引导用户确认条款
          • 引导用户安装 Segoe Fluent Icons 字体和 WebView2 运行时
          • 引导用户下载静态资源
        • 胡桃主界面
          • 调整了导航栏的图标样式
          • 修复了调整窗口大小时,可能导致意外崩溃的问题
        • 用户面板
          • 调整了用户面板的样式
          • 增加了为当前用户领取签到奖励的按钮
          • 修复了部分情况下启动时无法正确选中当前用户与角色的问题
        • 主页仪表盘
          • 新增胡桃软件公告
          • 实时便笺卡片增加了刷新时间提示
          • 修复了实时便笺卡片有时无法正确加载并导致假死/崩溃的问题
          • 部分活动公告的开始/结束时间修正
          • 修复了部分公告在查看详情时无法正确显示某些段落的问题
        • 启动游戏(高级启动器)
          • 命令栏新增游戏状态指示文本
          • 修复了无法转换服务器的问题
          • 调整了转换服务器的逻辑,允许在下载资源失败后重试
          • 调整了解锁帧率的逻辑,在解锁失败后会自动结束游戏进程
          • 移除了多客户端功能
          • 修复了资源下载中客户端本体文件无名称且无法跳转下载的问题
        • 祈愿记录
          • 调整了总览页面的卡片样式,物品变得更大,同时折叠了多项文本
          • 修复了在未登录或无胡桃云服务时长时进入祈愿记录页面报错的问题
          • 修复了总览页面卡片列表视图中物品抽数进度条进度与颜色显示不正确的问题
          • 修复了胡桃云无时长上传奖励文本错误的问题
          • 修复了能够导入包含不正确物品的 UIGF 格式数据的问题
          • 修复了无法正确定位到游戏缓存目录的问题
          • 优化了当物品数量较多时页面加载缓慢的问题
        • 成就记录
          • 修复了在列表/网格视图选择成就分类后切换到相反视图时选中的项可能不会正确显示的问题
          • 优化了页面的加载速度
        • 实时便笺
          • 调整了验证当前用户与角色按钮的样式
          • 调整了通知设置视图的样式
          • 增加了关闭实时便笺自动刷新的入口(仅非管理员模式下可切换,已在管理员模式下进入过实时便笺页面的用户可能无法正确切换此选项)
          • 调整了实时便笺的样式
          • 调整了未解锁洞天与未拥有参量质变仪时的文本提示
          • 实时便笺卡片增加了刷新时间提示
        • 我的角色
          • 调整了列表视图下左侧角色列表的宽度
          • 命令栏增加了刷新时间显示切换按钮
          • 增加了角色的各个刷新方法的刷新时间
          • 角色详情中圣遗物增加了词条强化次数显示
        • 养成计划
          • 修复了从养成计划页面切换至其他页面后可能会导致选中状态保存异常的问题
        • 角色资料
          • 修复了在列表/网格视图选择角色后切换到相反视图时选中的项可能不会正确显示的问题
        • 武器资料
          • 修复了在列表/网格视图选择武器后切换到相反视图时选中的项可能不会正确显示的问题
          • 增加了武器养成材料速查章节
        • 怪物资料
          • 修复了在列表/网格视图选择怪物后切换到相反视图时选中的项可能不会正确显示的问题
        • 设置
          • 修复了无法删除游戏缓存目录的问题
          • 增加了极验验证接口配置功能,通过正确配置此选项以对米游社请求进行无感验证
        • 优化了程序的帧率表现
        • 优化了多线程调度的内存占用
        • 优化了物品图标的加载速度
        • 调整了数据库读写的方式,以优化内存占用与响应速度
        • 调整了 -100-10001 返回代码的文本提示,以帮助用户更好地理解其含义
        • 其他的小型更改

        1.6.6

        • 新增
          • 祈愿记录页面胡桃云服务新增服务到期时间与开发者提示
          • 祈愿记录页面新增统计页签,可以查看来自胡桃云的祈愿数据统计
        • 修复
          • 修复了祈愿记录页面缓存刷新失效的问题
          • 修复了中文繁体无法正确加载元数据的问题

        1.6.5

        ',9),li={href:"https://translate.hut.ao/",target:"_blank",rel:"noopener noreferrer"},ei={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/747",target:"_blank",rel:"noopener noreferrer"},ii={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/747",target:"_blank",rel:"noopener noreferrer"},ti=l("li",null,"完善仪表盘",-1),ni=l("li",null,"使用 Metadata v2",-1),oi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/749",target:"_blank",rel:"noopener noreferrer"},ri=l("h2",{id:"_1-6-4",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-6-4","aria-hidden":"true"},"#"),e(" 1.6.4")],-1),ui={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},si={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/733",target:"_blank",rel:"noopener noreferrer"},ai=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"在非管理员模式下运行程序时,对管理员模式有要求的功能会有文字提示"),l("li",null,"HoYoLAB 的支持"),l("li",null,"国际化支持")])],-1),hi=r('

        1.6.3

        • 新增
          • 首页仪表盘,包含胡桃云帐号、游戏启动器、祈愿记录、成就统计和实时便笺
          • 启用新的信息栏功能将自动隐藏应用内通知
          • 隐藏国服 TapTap 帐号登录的服务器版本
        • 修复
          • 上传深境螺旋数据后无法获得胡桃云奖励的问题
          • HoYoLab 不支持 Facebook 登录的问题
          • HoYoLab 签到问题
          • 获取抽卡记录过程中值为空时会产生的问题
        • 优化
          • 项目重构,软件性能提高 20%
          • 增加支持 WIKI 功能中的本地化翻译
          • 增加支持国际服支付渠道切换
            • 包括 HoYoverse 默认,Epic 和 Google Pay
          • 开启帧率解锁后,可以在游戏启动时修改帧率上限并立即生效

        1.6.2

        • 全新功能
          • 基于胡桃帐号系统的祈愿记录云同步
            • 当前在爱发电打赏用户和测试用户会获得对应时间的云同步权限,已注册用户在上传深渊记录后会获赠 5 天云同步有效期
            • 该功能会在接下来的数个 1.6 版本中持续优化
        • 修复
          • 渠道服帐号的实时便笺无法获取数据的问题
          • HoYoLab 帐号的登录问题
        • 优化
          • 重新设计了静态文件获取的流程

        1.6.0

        • 新增
          • 胡桃帐号的注册和登录的基本功能
          • HoYoLab 帐号的登录并增加其在以下功能的支持
            • 网页登录和 SToken Cookie 登录
            • 深境螺旋记录
            • 每日签到
            • 我的角色
            • 实时便笺
        • 优化
          • 帧数解锁功能性能
          • 多客户端功能
          • 帧数解锁和游戏多开功能现在需要用户在设置中手动解锁高级功能
          • 设置页面布局
          • Windows 10 磁贴图标

        1.5.4

        • 新增
          • 游戏启动器
            • 游戏资源下载
            • 原神游戏进程多开
            • 允许用户在多显示器情况下选择指定显示器启动游戏
          • 使用了全新的图标(更可爱的胡桃)
        • 修复
          • 游戏客户端转换中卡死并无限写入的问题
        • 优化
          • 默认的语言选择方式
          • 允许直接复制设备 ID
          • 设置页面美化

        1.5.1

        • 优化
          • JumpList菜单更换为JumpTask,即使用户关闭最近文件功能也可以使用快速启动菜单了
          • 增加优先度高于系统设置的语言设置选项
          • 增加贡献翻译入口
          • 增加重置图片资源的设置选项
        • 添加
          • 怪物 WIKI
          • 韩语翻译
          • 国际化元数据

        1.4.15

        ',11),_i=l("li",null,[e("新增 "),l("ul",null,[l("li",null,"重置图片资源的入口"),l("li",null,"刷新 Cookie 方法")])],-1),di=l("li",null,"修复了部分情况下程序内清除定时任务计划失败的情况",-1),ci={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/486",target:"_blank",rel:"noopener noreferrer"},pi=l("li",null,"完善英语和繁体中文翻译",-1),fi=l("li",null,"在触发 Windows 长路径限制时增加提示",-1),bi=l("li",null,"优化了定时任务的唤醒方式",-1),gi=l("h2",{id:"_1-4-14",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-4-14","aria-hidden":"true"},"#"),e(" 1.4.14")],-1),Si=l("ul",null,[l("li",null,"修复了养成计划无法添加的问题"),l("li",null,"支持英语界面"),l("li",null,"其他的问题修复")],-1),mi=l("h2",{id:"_1-4-11",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-4-11","aria-hidden":"true"},"#"),e(" 1.4.11")],-1),ki=l("ul",null,[l("li",null,"商店初版")],-1);function Hi(Gi,Di){const n=o("Badge"),t=o("ExternalLinkIcon"),u=o("RouterLink");return a(),h("div",null,[c,l("h2",p,[f,e(" 1.8.1 "),i(n,{text:"最新版",type:"tip"})]),l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[l("li",null,[b,e("新增 Discord Activity 同步功能,开启后在游玩时会自动同步状态 "),l("a",g,[e("#1082"),i(t)])])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了从"),S,e("页面"),m,e("导航至"),k,e("页面不会同步导航栏选项的问题 "),l("a",H,[e("#1116"),i(t)])]),l("li",null,[e("修复了"),G,e("功能无法绑定 Alt 键的问题 "),l("a",D,[e("#1119"),i(t)])]),l("li",null,[e("修复了"),P,e("切换计划后部分物品无法刷新的问题 "),l("a",x,[e("#1099"),i(t)])]),l("li",null,[e("修复了"),I,e("只能导入名称为空的 json 文件的问题 "),l("a",U,[e("#1124"),i(t)])]),l("li",null,[e("修复了"),v,e("页面"),E,e("页签 中完整包链接无效的问题,现在替换为了分段文件的链接 "),l("a",L,[e("#1126"),i(t)])]),l("li",null,[e("修复了"),A,e("通知提示的内容不正确,通知会反复弹出,以及通知会忽略用户设置的静默提示的问题 "),l("a",B,[e("#1123"),i(t)])])])]),l("li",null,[e("优化 "),l("ul",null,[l("li",null,[e("为 设备指纹/CookieToken 引入了超时刷新机制,现在不需要经常在"),w,e("中点击刷新了 "),l("a",F,[e("#1121"),i(t)])]),W,l("li",null,[e("在未登录米游社/HoYoLAB的情况下左下角会显示相应文本 "),l("a",Y,[e("#1127"),i(t)])])])])]),T,l("ul",null,[l("li",null,[C,e(),l("a",y,[e("#1103"),i(t)])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了"),V,e("注册/注销/重置密码提示未翻译的问题 "),l("a",K,[e("#1087"),i(t)]),e(" by @Tangweirui2021")]),l("li",null,[e("修复了"),N,e("页面首排物品在切换计划后无法正确刷新的问题 "),l("a",R,[e("#1099"),i(t)])]),l("li",null,[e("修复了"),J,e("页面 无边框与独占全屏无法同时设置的问题 "),l("a",j,[e("#1106"),i(t)])]),l("li",null,[e("替换了文件选择器的实现,解决了无法在管理员模式下使用文件选择器的问题 "),l("a",z,[e("#1096"),i(t)])]),M,q,O])]),Q]),X,l("ul",null,[l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了养成计划养成物品列表首个物品在切换计划后不会刷新的问题 "),l("a",Z,[e("#1079"),i(t)])]),l("li",null,[e("修复了无法获取国际服祈愿记录 URL 的问题 "),l("a",$,[e("#1081"),i(t)])]),ll,el,il,tl,nl])]),l("li",null,[e("优化 "),l("ul",null,[ol,l("li",null,[e("自动连点功能支持禁用功能和自定义按键 "),l("a",rl,[e("#961"),i(t)])]),l("li",null,[e("祈愿记录 UIGF 导入/导出支持 UIGF v2.4 格式 "),l("ul",null,[l("li",null,[e("增加了对祈愿记录服务器时区的时间判断 "),l("a",ul,[e("#830"),i(t)])])])])])])]),sl,l("ul",null,[l("li",null,[al,l("ul",null,[l("li",null,[e("启动游戏页面为启动参数增加了总开关 "),l("a",hl,[e("#1065"),i(t)])]),l("li",null,[e("启动游戏页面新增快速选择分辨率的下拉框 "),l("a",_l,[e("#1062"),i(t)])]),l("li",null,[e("增加对 "),l("a",dl,[e("Starward"),i(t)]),e(" 客户端的支持,以允许用户实现游戏时长统计 "),l("a",cl,[e("#1071"),i(t)])]),l("li",null,[e("游戏启动器资源下载中增加资源链接复制按钮 "),l("a",pl,[e("#1074"),i(t)])]),l("li",null,[e("列表/网格视图切换状态全局记忆 "),l("a",fl,[e("#778"),i(t)])])])]),l("li",null,[bl,l("ul",null,[gl,l("li",null,[e("修复了我的角色功能中无法正常显示角色等级技能的问题 "),l("a",Sl,[e("#1069"),i(t)])]),l("li",null,[e("修复了获取用户米游社数据时返回"),ml,e("错误的问题 "),l("a",kl,[e("#1060"),i(t)])]),l("li",null,[e("修复了养成计划物品内物品列表无法滚动的问题 "),l("a",Hl,[e("#1068"),i(t)])]),l("li",null,[e("修复了特定条件下设置页面无法滚动的问题 "),l("a",Gl,[e("#1072"),i(t)])])])]),l("li",null,[Dl,l("ul",null,[l("li",null,[e("启动游戏页面资源下载中导航按钮更改为链接复制按钮 "),l("a",Pl,[e("#1074"),i(t)])]),l("li",null,[e("优化了胡桃软件更新公告的显示逻辑,不再显示低版本的更新通知 "),l("a",xl,[e("#1015"),i(t)])]),l("li",null,[e("用户的按钮选项在全客户端范围内将会被自动记忆 "),l("a",Il,[e("#778"),i(t)])]),Ul])])]),vl,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[l("li",null,[e("新增从胡桃云恢复抽卡记录至本地新存档的选项 "),l("a",El,[e("#886"),i(t)])])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了游戏启动项能填入非法数值的问题,为部分启动参数增加了开关 "),l("a",Ll,[e("#1061"),i(t)])]),l("li",null,[e("修复了无法在客户端中注册胡桃云账号的问题 "),l("a",Al,[e("#1059"),i(t)])]),Bl])]),wl]),l("h2",Fl,[Wl,e(" 1.7.14 "),i(n,{text:"hotfix",type:"tip"})]),l("ul",null,[l("li",null,[e("修复了部分功能在打开对话框时会崩溃的问题 "),l("a",Yl,[e("#1052"),i(t)]),e(),l("a",Tl,[e("#1054"),i(t)])])]),Cl,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[l("li",null,[e("增加实时便笺数据转发 Webhook 选项 "),l("a",yl,[e("#431"),i(t)])]),l("li",null,[e("在祈愿记录页面显示祈愿记录范围时间 "),l("a",Vl,[e("#899"),i(t)])]),l("li",null,[e("为实时便笺页面引入了历练点详情视图,可以查看当前历练点获取情况 "),l("a",Kl,[e("#1021"),i(t)])])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了通过快速启动窗口启动游戏会抛出"),Nl,e("的问题 "),l("a",Rl,[e("#925"),i(t)])]),l("li",null,[e("修复了高级启动器界面闪退的问题 "),l("a",Jl,[e("#1035"),i(t)])]),l("li",null,[e("修复了内嵌网页在米游社页面中无法返回的问题 "),l("a",jl,[e("#1023"),i(t)])]),l("li",null,[e("修复了从 B 服转换服务器中出现的问题 "),l("a",zl,[e("#1041"),i(t)])]),Ml,l("li",null,[e("修复了切换胡桃通行证后祈愿记录中的胡桃云集成无法正确反应的问题 "),l("a",ql,[e("#903"),i(t)])])])]),l("li",null,[e("优化 "),l("ul",null,[Ol,l("li",null,[e("重新设计了胡桃通行证页面的 UI,现在集成在设置页面中 "),l("a",Ql,[e("#911"),i(t)])]),Xl,Zl])])]),l("h2",$l,[le,e(" 1.7.11 "),i(n,{text:"hotfix",type:"tip"})]),ee,ie,l("ul",null,[l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了 HoYoverse 无法正常登录的问题 "),l("a",te,[e("#1011"),i(t)]),e(),l("a",ne,[e("#1012"),i(t)])]),l("li",null,[e("修复了 HoYoLAB 账号无法正常签到的问题 "),l("a",oe,[e("#1013"),i(t)])]),l("li",null,[e("修复了导入 UIGF v2.2 文件时语言不正确会导致提示"),re,e("的问题 "),l("a",ue,[e("#1001"),i(t)])]),se,ae,he,_e,de])]),ce]),pe,l("ul",null,[l("li",null,[e("修复 "),l("ul",null,[fe,l("li",null,[e("修复了米哈游通行证页面无法正确登录的问题 "),l("a",be,[e("#1005"),i(t)])]),l("li",null,[e("修复了 HoYoverse 登录页面不正确的问题 "),l("a",ge,[e("#1007"),i(t)])]),Se,l("li",null,[e("修复了深境螺旋页面本期页签上场队伍页签列表中的上场次数过长可能无法正常显示的问题 "),l("a",me,[e("#1008"),i(t)])])])])]),ke,l("ul",null,[He,l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了在使用实时便笺验证功能后从实时便笺页面切换到其他页面后切换账号有概率导致崩溃的问题 "),l("a",Ge,[e("#947"),i(t)])]),l("li",null,[e("修复了在启动游戏后重新打开程序无法正确匹配当前游戏内账号的问题 "),l("a",De,[e("#865"),i(t)])]),l("li",null,[e("修复了成就页面成就统计文本过长时会被裁切的问题 "),l("a",Pe,[e("#956"),i(t)])]),xe])]),Ie]),Ue,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[ve,l("li",null,[e("深渊记录界面新增怪物波次数据 (数据来源 "),l("a",Ee,[e("@妮可少女"),i(t)]),e(")")]),l("li",null,[e("在设置页面新增微软商店评价的按钮 "),l("a",Le,[e("#876"),i(t)])]),l("li",null,[e("在用户按钮上方增加了新的文档按钮,用户点击将跳转到当前界面对应的功能文档 "),l("a",Ae,[e("#875"),i(t)])])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了主页启动游戏卡片帐号空白的情况 "),l("a",Be,[e("#924"),i(t)])]),l("li",null,[e("修复了成就记录无法保存手动取消勾选记录的问题 "),l("a",we,[e("#880"),i(t)])]),Fe,We])]),l("li",null,[e("优化 "),l("ul",null,[l("li",null,[e("优化部分错误语句,增加了解决提示 "),l("a",Ye,[e("#930"),i(t)])]),l("li",null,[e("首页的胡桃推送通知现在允许用户复制 "),l("a",Te,[e("#929"),i(t)])]),Ce,ye])])]),Ve,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[Ke,l("li",null,[e("设置页面新增了创建桌面快捷方式的选项 "),l("a",Ne,[e("#912"),i(t)])]),Re,Je])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了主页中部分公告的活动开始时间不正确的问题 "),l("a",je,[e("#887"),i(t)])]),l("li",null,[e("修复了我的角色页面中点击未使用角色橱窗同步数据的武器时会导致崩溃的问题 "),l("a",ze,[e("#904"),i(t)])]),l("li",null,[e("修复了我的角色页面中武器数值显示不正确的问题 "),l("a",Me,[e("#907"),i(t)])]),l("li",null,[e("修复了无法从 Bilibili 服务器转换到部分服务器的问题 "),l("a",qe,[e("#893"),i(t)])]),l("li",null,[e("修复了祈愿记录页面中当记录存在新手祈愿时会导致崩溃的问题 "),l("a",Oe,[e("#917"),i(t)])]),Qe,Xe])]),Ze]),$e,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[l("li",null,[e("日语选项;社区用户可以现在可以在 "),l("a",li,[e("translate.hut.ao"),i(t)]),e(" 中贡献日语翻译")])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复无法添加武器养成计划的问题 "),l("a",ei,[e("Issue #745"),i(t)])]),l("li",null,[e("部分用户在特定情况下解锁帧数上限失效的问题 "),l("a",ii,[e("Issue #747"),i(t)])])])]),l("li",null,[e("优化 "),l("ul",null,[ti,ni,l("li",null,[e("优化养成计划中材料统计的排序 "),l("a",oi,[e("Issue #749"),i(t)])])])])]),ri,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[l("li",null,[e("以 "),l("a",ui,[e("UIGF v2.3"),i(t)]),e(" 数据格式导出祈愿记录")])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("解锁帧数上限失效的问题 "),l("a",si,[e("Issue #733"),i(t)])])])]),ai]),hi,l("ul",null,[_i,l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了"),i(u,{to:"/advanced/known-issue.html#_2-%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%87%E6%8D%A2%E5%AF%BC%E8%87%B431-4302%E6%8A%A5%E9%94%99"},{default:_(()=>[e("#2 服务器切换导致 31-4302 报错")]),_:1})]),di])]),l("li",null,[e("优化 "),l("ul",null,[l("li",null,[e("优化了养成计划界面 "),l("a",ci,[e("#486"),i(t)])]),pi,fi,bi])])]),gi,Si,mi,ki])}const Ii=s(d,[["render",Hi],["__file","update-log.html.vue"]]);export{Ii as default}; +import{_ as s}from"./plugin-vue_export-helper-c27b6911.js";import{r as o,o as a,c as h,a as l,b as e,d as i,w as _,e as r}from"./app-5a96e1e2.js";const d={},c=l("h1",{id:"更新日志",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#更新日志","aria-hidden":"true"},"#"),e(" 更新日志")],-1),p={id:"_1-8-1",tabindex:"-1"},f=l("a",{class:"header-anchor",href:"#_1-8-1","aria-hidden":"true"},"#",-1),b=l("em",null,"启动游戏",-1),g={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1082",target:"_blank",rel:"noopener noreferrer"},S=l("em",null,"祈愿记录",-1),m=l("em",null,"胡桃云面板",-1),k=l("em",null,"深渊记录",-1),H={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1116",target:"_blank",rel:"noopener noreferrer"},G=l("em",null,"自动连点",-1),D={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1119",target:"_blank",rel:"noopener noreferrer"},P=l("em",null,"养成计划",-1),x={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1099",target:"_blank",rel:"noopener noreferrer"},I=l("em",null,"成就管理",-1),U={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1124",target:"_blank",rel:"noopener noreferrer"},v=l("em",null,"启动游戏",-1),E=l("em",null,"资源下载",-1),L={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1126",target:"_blank",rel:"noopener noreferrer"},A=l("em",null,"实时便笺",-1),B={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1123",target:"_blank",rel:"noopener noreferrer"},w=l("em",null,"用户面板",-1),F={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1121",target:"_blank",rel:"noopener noreferrer"},W=l("li",null,[e("重做了"),l("em",null,"角色资料"),e("页面的 UI")],-1),Y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1127",target:"_blank",rel:"noopener noreferrer"},T=l("h2",{id:"_1-8-0",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-8-0","aria-hidden":"true"},"#"),e(" 1.8.0")],-1),C=l("strong",null,"升级了 .NET 版本到 8",-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1103",target:"_blank",rel:"noopener noreferrer"},V=l("em",null,"胡桃通行证",-1),K={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1087",target:"_blank",rel:"noopener noreferrer"},N=l("em",null,"养成计划",-1),R={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1099",target:"_blank",rel:"noopener noreferrer"},J=l("em",null,"启动游戏",-1),j={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1106",target:"_blank",rel:"noopener noreferrer"},z={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1096",target:"_blank",rel:"noopener noreferrer"},M=l("li",null,"修复了启动时初始化用户信息可能导致程序假死的问题",-1),q=l("li",null,"修复了部分页面在切换后会产生不必要的异常的问题",-1),O=l("li",null,"修复了部分异常无法正常捕获的问题",-1),Q=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"为元数据初始化添加了更详细的失败信息")])],-1),X=l("h2",{id:"_1-7-17",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-17","aria-hidden":"true"},"#"),e(" 1.7.17")],-1),Z={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1079",target:"_blank",rel:"noopener noreferrer"},$={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1081",target:"_blank",rel:"noopener noreferrer"},ll=l("li",null,"修复了特定条件下错误日志无法正常获取并上传的问题",-1),el=l("li",null,"修复了导出祈愿记录中时间不正确的问题",-1),il=l("li",null,"修复了米游社网页弹窗数据异常的问题",-1),tl=l("li",null,"修复了祈愿记录页面历史/角色/武器页签中物品数量遮罩的圆角半径不正确的问题",-1),nl=l("li",null,"修复了非 UTC+08 时区下首页中公告的时间可能不正确的问题",-1),ol=l("li",null,"更改了米游社网页弹窗的 UI, 支持后退与刷新并能查看网页标题",-1),rl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/961",target:"_blank",rel:"noopener noreferrer"},ul={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/830",target:"_blank",rel:"noopener noreferrer"},sl=l("h2",{id:"_1-7-16",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-16","aria-hidden":"true"},"#"),e(" 1.7.16")],-1),al=l("p",null,"新增",-1),hl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1065",target:"_blank",rel:"noopener noreferrer"},_l={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1062",target:"_blank",rel:"noopener noreferrer"},dl={href:"https://github.com/Scighost/Starward",target:"_blank",rel:"noopener noreferrer"},cl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1071",target:"_blank",rel:"noopener noreferrer"},pl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1074",target:"_blank",rel:"noopener noreferrer"},fl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/778",target:"_blank",rel:"noopener noreferrer"},bl=l("p",null,"修复",-1),gl=l("li",null,"修复了米游社小工具页面无法正常跳转的问题",-1),Sl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1069",target:"_blank",rel:"noopener noreferrer"},ml=l("code",null,"5003",-1),kl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1060",target:"_blank",rel:"noopener noreferrer"},Hl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1068",target:"_blank",rel:"noopener noreferrer"},Gl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1072",target:"_blank",rel:"noopener noreferrer"},Dl=l("p",null,"优化",-1),Pl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1074",target:"_blank",rel:"noopener noreferrer"},xl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1015",target:"_blank",rel:"noopener noreferrer"},Il={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/778",target:"_blank",rel:"noopener noreferrer"},Ul=l("li",null,"增强了客户端稳定性",-1),vl=l("h2",{id:"_1-7-15",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-15","aria-hidden":"true"},"#"),e(" 1.7.15")],-1),El={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/886",target:"_blank",rel:"noopener noreferrer"},Ll={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1052",target:"_blank",rel:"noopener noreferrer"},Al={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1059",target:"_blank",rel:"noopener noreferrer"},Bl=l("li",null,"修复了设置实时便笺 Webhook Url 后可能导致通知功能不正常的问题",-1),wl=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"优化了客户端中胡桃云账号修改密码和注销账号的操作逻辑")])],-1),Fl={id:"_1-7-14",tabindex:"-1"},Wl=l("a",{class:"header-anchor",href:"#_1-7-14","aria-hidden":"true"},"#",-1),Yl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1052",target:"_blank",rel:"noopener noreferrer"},Tl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1054",target:"_blank",rel:"noopener noreferrer"},Cl=l("h2",{id:"_1-7-13",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-13","aria-hidden":"true"},"#"),e(" 1.7.13")],-1),yl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/431",target:"_blank",rel:"noopener noreferrer"},Vl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/899",target:"_blank",rel:"noopener noreferrer"},Kl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1021",target:"_blank",rel:"noopener noreferrer"},Nl=l("code",null,"参数错误",-1),Rl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/925",target:"_blank",rel:"noopener noreferrer"},Jl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1035",target:"_blank",rel:"noopener noreferrer"},jl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1023",target:"_blank",rel:"noopener noreferrer"},zl={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1041",target:"_blank",rel:"noopener noreferrer"},Ml=l("li",null,"修复了无法正确检测游戏是否正在运行的问题",-1),ql={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/903",target:"_blank",rel:"noopener noreferrer"},Ol=l("li",null,"为胡桃云服务的提示文本增加了国际化支持",-1),Ql={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1021",target:"_blank",rel:"noopener noreferrer"},Xl=l("li",null,"重新设计了启动游戏页面的 UI",-1),Zl=l("li",null,"用户现在可以在高级启动器中选择游戏启动参数",-1),$l={id:"_1-7-11",tabindex:"-1"},le=l("a",{class:"header-anchor",href:"#_1-7-11","aria-hidden":"true"},"#",-1),ee=l("ul",null,[l("li",null,"修复了游戏启动器中窗口设置的错误 (hotfix)")],-1),ie=l("h2",{id:"_1-7-10",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-10","aria-hidden":"true"},"#"),e(" 1.7.10")],-1),te={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1011",target:"_blank",rel:"noopener noreferrer"},ne={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1012",target:"_blank",rel:"noopener noreferrer"},oe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1013",target:"_blank",rel:"noopener noreferrer"},re=l("code",null,"无效的物品",-1),ue={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1001",target:"_blank",rel:"noopener noreferrer"},se=l("li",null,"修复了提供无效的无感验证 Url 后在请求相应接口时会导致程序崩溃的问题",-1),ae=l("li",null,"修复了部分无效的通道状态下进入启动游戏页面会导致程序崩溃的问题",-1),he=l("li",null,"修复了 WebView2 Runtime 版本过低时查看内嵌网页并切换账号会导致程序崩溃的问题",-1),_e=l("li",null,"修复了深境螺旋页面当部分记录无有效值时会导致程序崩溃的问题",-1),de=l("li",null,"修复了内嵌网页可能导致内存溢出的一个问题",-1),ce=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"现在启动游戏页面中检测账号后若已经存在对应账号会自动选择")])],-1),pe=l("h2",{id:"_1-7-9",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-9","aria-hidden":"true"},"#"),e(" 1.7.9")],-1),fe=l("li",null,"修复了退出程序后显示器分辨率更改后无法以正确窗口尺寸启动的问题",-1),be={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1005",target:"_blank",rel:"noopener noreferrer"},ge={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1007",target:"_blank",rel:"noopener noreferrer"},Se=l("li",null,"修复了 1.7.7 版本无法正确上传崩溃日志的问题",-1),me={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1008",target:"_blank",rel:"noopener noreferrer"},ke=r('

        1.7.7

        • 在以下位置增加了卡片阴影以优化视觉效果
          • 仪表板与活动公告
          • 高级启动器资源下载页签
          • 祈愿记录总览页签
          • 祈愿记录历史页签详情
          • 祈愿记录统计页签
          • 实时便笺卡片
          • 我的角色列表视图详情
          • 角色 WIKI 立绘框
          • 武器 WIKI 立绘框
        • 修复
          • 修复了网格视图下顶部边距不正确的问题
          • 修复了多个导致崩溃的问题
          • 修复了无法正常转换官服/Bilibili 服务器的问题
        • 优化
          • 调整了验证当前用户与角色按钮的位置
            • 现在你可以在账号面板中直接找到它
          • 获取深渊记录/上传数据引入验证重试机制
            • 未使用无感验证的用户可以在角色面板中打开我的角色网页视图手动验证后重试

        1.7.6

        ',3),He=l("li",null,[e("新增 "),l("ul",null,[l("li",null,[e("新增了管理员模式下的 F8 鼠标连点功能 "),l("ul",null,[l("li",null,"在即将到来的原神 4.1 和 4.2 版本,该功能可以帮助跳过你不喜欢的剧情部分")])])])],-1),Ge={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/947",target:"_blank",rel:"noopener noreferrer"},De={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/865",target:"_blank",rel:"noopener noreferrer"},Pe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/956",target:"_blank",rel:"noopener noreferrer"},xe=l("li",null,"修复了 4.1 版本元数据导致深境螺旋页面崩溃的问题",-1),Ie=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"调整了部分用户界面的细节呈现"),l("li",null,"调整了特定情况下的游戏公告文本的颜色"),l("li",null,"调整了下载离散资源图片文件失败时的逻辑")])],-1),Ue=l("h2",{id:"_1-7-5",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-5","aria-hidden":"true"},"#"),e(" 1.7.5")],-1),ve=l("li",null,"成就记录页面新增成就对应版本号数据",-1),Ee={href:"https://space.bilibili.com/3537104994831140",target:"_blank",rel:"noopener noreferrer"},Le={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/876",target:"_blank",rel:"noopener noreferrer"},Ae={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/875",target:"_blank",rel:"noopener noreferrer"},Be={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/924",target:"_blank",rel:"noopener noreferrer"},we={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/880",target:"_blank",rel:"noopener noreferrer"},Fe=l("li",null,"修复了实时便笺界面切换帐号后无法切换待验证帐号的问题",-1),We=l("li",null,"修复了深渊记录有时无法正确刷新详细数据的问题",-1),Ye={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/930",target:"_blank",rel:"noopener noreferrer"},Te={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/929",target:"_blank",rel:"noopener noreferrer"},Ce=l("li",null,[l("strong",null,"深渊统计页面迁移合并至深渊记录页面下")],-1),ye=l("li",null,"调整了多处时间显示的格式",-1),Ve=l("h2",{id:"_1-7-4",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-7-4","aria-hidden":"true"},"#"),e(" 1.7.4")],-1),Ke=l("li",null,"设置页面新增了切换 PowerShell 实例的选项",-1),Ne={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/912",target:"_blank",rel:"noopener noreferrer"},Re=l("li",null,"设置页面新增了调整主页卡片是否呈现的选项",-1),Je=l("li",null,"我的角色页面新增批量添加到养成计划的功能",-1),je={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/887",target:"_blank",rel:"noopener noreferrer"},ze={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/904",target:"_blank",rel:"noopener noreferrer"},Me={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/907",target:"_blank",rel:"noopener noreferrer"},qe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/893",target:"_blank",rel:"noopener noreferrer"},Oe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/917",target:"_blank",rel:"noopener noreferrer"},Qe=l("li",null,"修复了养成计划在未进入养成计划页面前没有提前选中的问题,该问题曾导致至少需要进入一次养成计划页面才能添加养成计划",-1),Xe=l("li",null,"修复了领取签到奖励触发验证时有即使接口报告成功也无法验证成功的问题",-1),Ze=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"调整了怪物资料中怪物的展示顺序"),l("li",null,"优化了祈愿统计的加载速度"),l("li",null,"优化了数据库访问的 UI 线程占用"),l("li",null,"优化了养成计划页面中部分视图的滚动体验,现在可能需要更长的时间才能加载视图")])],-1),$e=r('

        1.7.3

        • 修复了 HoYoverse 网页登录失效的问题
        • 升级了 Windows App SDK 版本,修复了标题栏顶部无法缩放窗口的问题
        • 调整了 UIGF v2.2 导入失败的提示,现在能根据 Id 更快地定位问题
        • 修复了用户面板领取签到奖励失败但仍然显示成功的问题
        • 修复了任务栏中的启动游戏项会同时启动游戏窗口和主窗口的问题

        1.7.2

        • 祈愿记录
          • 修复了全量刷新无法正确生效的问题
          • 修复了无错误的 UIGF 文件无法正确导入的问题
          • 修复了胡桃云记录无法正确获取的问题
          • 调整了胡桃云窗口的 UI,使其显示对应 UID 存档中的抽数
        • 我的角色
          • 调整了界面 UI 使其变得更加紧凑
        • 调整了主页通知的 UI, 使其向右侧边缘对齐

        1.7.0

        • 增加了引导页面,在首次启动胡桃时将引导用户使用胡桃
          • 引导用户选择语言
          • 引导用户确认条款
          • 引导用户安装 Segoe Fluent Icons 字体和 WebView2 运行时
          • 引导用户下载静态资源
        • 胡桃主界面
          • 调整了导航栏的图标样式
          • 修复了调整窗口大小时,可能导致意外崩溃的问题
        • 用户面板
          • 调整了用户面板的样式
          • 增加了为当前用户领取签到奖励的按钮
          • 修复了部分情况下启动时无法正确选中当前用户与角色的问题
        • 主页仪表盘
          • 新增胡桃软件公告
          • 实时便笺卡片增加了刷新时间提示
          • 修复了实时便笺卡片有时无法正确加载并导致假死/崩溃的问题
          • 部分活动公告的开始/结束时间修正
          • 修复了部分公告在查看详情时无法正确显示某些段落的问题
        • 启动游戏(高级启动器)
          • 命令栏新增游戏状态指示文本
          • 修复了无法转换服务器的问题
          • 调整了转换服务器的逻辑,允许在下载资源失败后重试
          • 调整了解锁帧率的逻辑,在解锁失败后会自动结束游戏进程
          • 移除了多客户端功能
          • 修复了资源下载中客户端本体文件无名称且无法跳转下载的问题
        • 祈愿记录
          • 调整了总览页面的卡片样式,物品变得更大,同时折叠了多项文本
          • 修复了在未登录或无胡桃云服务时长时进入祈愿记录页面报错的问题
          • 修复了总览页面卡片列表视图中物品抽数进度条进度与颜色显示不正确的问题
          • 修复了胡桃云无时长上传奖励文本错误的问题
          • 修复了能够导入包含不正确物品的 UIGF 格式数据的问题
          • 修复了无法正确定位到游戏缓存目录的问题
          • 优化了当物品数量较多时页面加载缓慢的问题
        • 成就记录
          • 修复了在列表/网格视图选择成就分类后切换到相反视图时选中的项可能不会正确显示的问题
          • 优化了页面的加载速度
        • 实时便笺
          • 调整了验证当前用户与角色按钮的样式
          • 调整了通知设置视图的样式
          • 增加了关闭实时便笺自动刷新的入口(仅非管理员模式下可切换,已在管理员模式下进入过实时便笺页面的用户可能无法正确切换此选项)
          • 调整了实时便笺的样式
          • 调整了未解锁洞天与未拥有参量质变仪时的文本提示
          • 实时便笺卡片增加了刷新时间提示
        • 我的角色
          • 调整了列表视图下左侧角色列表的宽度
          • 命令栏增加了刷新时间显示切换按钮
          • 增加了角色的各个刷新方法的刷新时间
          • 角色详情中圣遗物增加了词条强化次数显示
        • 养成计划
          • 修复了从养成计划页面切换至其他页面后可能会导致选中状态保存异常的问题
        • 角色资料
          • 修复了在列表/网格视图选择角色后切换到相反视图时选中的项可能不会正确显示的问题
        • 武器资料
          • 修复了在列表/网格视图选择武器后切换到相反视图时选中的项可能不会正确显示的问题
          • 增加了武器养成材料速查章节
        • 怪物资料
          • 修复了在列表/网格视图选择怪物后切换到相反视图时选中的项可能不会正确显示的问题
        • 设置
          • 修复了无法删除游戏缓存目录的问题
          • 增加了极验验证接口配置功能,通过正确配置此选项以对米游社请求进行无感验证
        • 优化了程序的帧率表现
        • 优化了多线程调度的内存占用
        • 优化了物品图标的加载速度
        • 调整了数据库读写的方式,以优化内存占用与响应速度
        • 调整了 -100-10001 返回代码的文本提示,以帮助用户更好地理解其含义
        • 其他的小型更改

        1.6.6

        • 新增
          • 祈愿记录页面胡桃云服务新增服务到期时间与开发者提示
          • 祈愿记录页面新增统计页签,可以查看来自胡桃云的祈愿数据统计
        • 修复
          • 修复了祈愿记录页面缓存刷新失效的问题
          • 修复了中文繁体无法正确加载元数据的问题

        1.6.5

        ',9),li={href:"https://translate.hut.ao/",target:"_blank",rel:"noopener noreferrer"},ei={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/747",target:"_blank",rel:"noopener noreferrer"},ii={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/747",target:"_blank",rel:"noopener noreferrer"},ti=l("li",null,"完善仪表盘",-1),ni=l("li",null,"使用 Metadata v2",-1),oi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/749",target:"_blank",rel:"noopener noreferrer"},ri=l("h2",{id:"_1-6-4",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-6-4","aria-hidden":"true"},"#"),e(" 1.6.4")],-1),ui={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},si={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/733",target:"_blank",rel:"noopener noreferrer"},ai=l("li",null,[e("优化 "),l("ul",null,[l("li",null,"在非管理员模式下运行程序时,对管理员模式有要求的功能会有文字提示"),l("li",null,"HoYoLAB 的支持"),l("li",null,"国际化支持")])],-1),hi=r('

        1.6.3

        • 新增
          • 首页仪表盘,包含胡桃云帐号、游戏启动器、祈愿记录、成就统计和实时便笺
          • 启用新的信息栏功能将自动隐藏应用内通知
          • 隐藏国服 TapTap 帐号登录的服务器版本
        • 修复
          • 上传深境螺旋数据后无法获得胡桃云奖励的问题
          • HoYoLab 不支持 Facebook 登录的问题
          • HoYoLab 签到问题
          • 获取抽卡记录过程中值为空时会产生的问题
        • 优化
          • 项目重构,软件性能提高 20%
          • 增加支持 WIKI 功能中的本地化翻译
          • 增加支持国际服支付渠道切换
            • 包括 HoYoverse 默认,Epic 和 Google Pay
          • 开启帧率解锁后,可以在游戏启动时修改帧率上限并立即生效

        1.6.2

        • 全新功能
          • 基于胡桃帐号系统的祈愿记录云同步
            • 当前在爱发电打赏用户和测试用户会获得对应时间的云同步权限,已注册用户在上传深渊记录后会获赠 5 天云同步有效期
            • 该功能会在接下来的数个 1.6 版本中持续优化
        • 修复
          • 渠道服帐号的实时便笺无法获取数据的问题
          • HoYoLab 帐号的登录问题
        • 优化
          • 重新设计了静态文件获取的流程

        1.6.0

        • 新增
          • 胡桃帐号的注册和登录的基本功能
          • HoYoLab 帐号的登录并增加其在以下功能的支持
            • 网页登录和 SToken Cookie 登录
            • 深境螺旋记录
            • 每日签到
            • 我的角色
            • 实时便笺
        • 优化
          • 帧数解锁功能性能
          • 多客户端功能
          • 帧数解锁和游戏多开功能现在需要用户在设置中手动解锁高级功能
          • 设置页面布局
          • Windows 10 磁贴图标

        1.5.4

        • 新增
          • 游戏启动器
            • 游戏资源下载
            • 原神游戏进程多开
            • 允许用户在多显示器情况下选择指定显示器启动游戏
          • 使用了全新的图标(更可爱的胡桃)
        • 修复
          • 游戏客户端转换中卡死并无限写入的问题
        • 优化
          • 默认的语言选择方式
          • 允许直接复制设备 ID
          • 设置页面美化

        1.5.1

        • 优化
          • JumpList菜单更换为JumpTask,即使用户关闭最近文件功能也可以使用快速启动菜单了
          • 增加优先度高于系统设置的语言设置选项
          • 增加贡献翻译入口
          • 增加重置图片资源的设置选项
        • 添加
          • 怪物 WIKI
          • 韩语翻译
          • 国际化元数据

        1.4.15

        ',11),_i=l("li",null,[e("新增 "),l("ul",null,[l("li",null,"重置图片资源的入口"),l("li",null,"刷新 Cookie 方法")])],-1),di=l("li",null,"修复了部分情况下程序内清除定时任务计划失败的情况",-1),ci={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/486",target:"_blank",rel:"noopener noreferrer"},pi=l("li",null,"完善英语和繁体中文翻译",-1),fi=l("li",null,"在触发 Windows 长路径限制时增加提示",-1),bi=l("li",null,"优化了定时任务的唤醒方式",-1),gi=l("h2",{id:"_1-4-14",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-4-14","aria-hidden":"true"},"#"),e(" 1.4.14")],-1),Si=l("ul",null,[l("li",null,"修复了养成计划无法添加的问题"),l("li",null,"支持英语界面"),l("li",null,"其他的问题修复")],-1),mi=l("h2",{id:"_1-4-11",tabindex:"-1"},[l("a",{class:"header-anchor",href:"#_1-4-11","aria-hidden":"true"},"#"),e(" 1.4.11")],-1),ki=l("ul",null,[l("li",null,"商店初版")],-1);function Hi(Gi,Di){const n=o("Badge"),t=o("ExternalLinkIcon"),u=o("RouterLink");return a(),h("div",null,[c,l("h2",p,[f,e(" 1.8.1 "),i(n,{text:"最新版",type:"tip"})]),l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[l("li",null,[b,e("新增 Discord Activity 同步功能,开启后在游玩时会自动同步状态 "),l("a",g,[e("#1082"),i(t)])])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了从"),S,e("页面"),m,e("导航至"),k,e("页面不会同步导航栏选项的问题 "),l("a",H,[e("#1116"),i(t)])]),l("li",null,[e("修复了"),G,e("功能无法绑定 Alt 键的问题 "),l("a",D,[e("#1119"),i(t)])]),l("li",null,[e("修复了"),P,e("切换计划后部分物品无法刷新的问题 "),l("a",x,[e("#1099"),i(t)])]),l("li",null,[e("修复了"),I,e("只能导入名称为空的 json 文件的问题 "),l("a",U,[e("#1124"),i(t)])]),l("li",null,[e("修复了"),v,e("页面"),E,e("页签 中完整包链接无效的问题,现在替换为了分段文件的链接 "),l("a",L,[e("#1126"),i(t)])]),l("li",null,[e("修复了"),A,e("通知提示的内容不正确,通知会反复弹出,以及通知会忽略用户设置的静默提示的问题 "),l("a",B,[e("#1123"),i(t)])])])]),l("li",null,[e("优化 "),l("ul",null,[l("li",null,[e("为 设备指纹/CookieToken 引入了超时刷新机制,现在不需要经常在"),w,e("中点击刷新了 "),l("a",F,[e("#1121"),i(t)])]),W,l("li",null,[e("在未登录米游社/HoYoLAB的情况下左下角会显示相应文本 "),l("a",Y,[e("#1127"),i(t)])])])])]),T,l("ul",null,[l("li",null,[C,e(),l("a",y,[e("#1103"),i(t)])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了"),V,e("注册/注销/重置密码提示未翻译的问题 "),l("a",K,[e("#1087"),i(t)]),e(" by @Tangweirui2021")]),l("li",null,[e("修复了"),N,e("页面首排物品在切换计划后无法正确刷新的问题 "),l("a",R,[e("#1099"),i(t)])]),l("li",null,[e("修复了"),J,e("页面 无边框与独占全屏无法同时设置的问题 "),l("a",j,[e("#1106"),i(t)])]),l("li",null,[e("替换了文件选择器的实现,解决了无法在管理员模式下使用文件选择器的问题 "),l("a",z,[e("#1096"),i(t)])]),M,q,O])]),Q]),X,l("ul",null,[l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了养成计划养成物品列表首个物品在切换计划后不会刷新的问题 "),l("a",Z,[e("#1079"),i(t)])]),l("li",null,[e("修复了无法获取国际服祈愿记录 URL 的问题 "),l("a",$,[e("#1081"),i(t)])]),ll,el,il,tl,nl])]),l("li",null,[e("优化 "),l("ul",null,[ol,l("li",null,[e("自动连点功能支持禁用功能和自定义按键 "),l("a",rl,[e("#961"),i(t)])]),l("li",null,[e("祈愿记录 UIGF 导入/导出支持 UIGF v2.4 格式 "),l("ul",null,[l("li",null,[e("增加了对祈愿记录服务器时区的时间判断 "),l("a",ul,[e("#830"),i(t)])])])])])])]),sl,l("ul",null,[l("li",null,[al,l("ul",null,[l("li",null,[e("启动游戏页面为启动参数增加了总开关 "),l("a",hl,[e("#1065"),i(t)])]),l("li",null,[e("启动游戏页面新增快速选择分辨率的下拉框 "),l("a",_l,[e("#1062"),i(t)])]),l("li",null,[e("增加对 "),l("a",dl,[e("Starward"),i(t)]),e(" 客户端的支持,以允许用户实现游戏时长统计 "),l("a",cl,[e("#1071"),i(t)])]),l("li",null,[e("游戏启动器资源下载中增加资源链接复制按钮 "),l("a",pl,[e("#1074"),i(t)])]),l("li",null,[e("列表/网格视图切换状态全局记忆 "),l("a",fl,[e("#778"),i(t)])])])]),l("li",null,[bl,l("ul",null,[gl,l("li",null,[e("修复了我的角色功能中无法正常显示角色等级技能的问题 "),l("a",Sl,[e("#1069"),i(t)])]),l("li",null,[e("修复了获取用户米游社数据时返回"),ml,e("错误的问题 "),l("a",kl,[e("#1060"),i(t)])]),l("li",null,[e("修复了养成计划物品内物品列表无法滚动的问题 "),l("a",Hl,[e("#1068"),i(t)])]),l("li",null,[e("修复了特定条件下设置页面无法滚动的问题 "),l("a",Gl,[e("#1072"),i(t)])])])]),l("li",null,[Dl,l("ul",null,[l("li",null,[e("启动游戏页面资源下载中导航按钮更改为链接复制按钮 "),l("a",Pl,[e("#1074"),i(t)])]),l("li",null,[e("优化了胡桃软件更新公告的显示逻辑,不再显示低版本的更新通知 "),l("a",xl,[e("#1015"),i(t)])]),l("li",null,[e("用户的按钮选项在全客户端范围内将会被自动记忆 "),l("a",Il,[e("#778"),i(t)])]),Ul])])]),vl,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[l("li",null,[e("新增从胡桃云恢复抽卡记录至本地新存档的选项 "),l("a",El,[e("#886"),i(t)])])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了游戏启动项能填入非法数值的问题,为部分启动参数增加了开关 "),l("a",Ll,[e("#1061"),i(t)])]),l("li",null,[e("修复了无法在客户端中注册胡桃云账号的问题 "),l("a",Al,[e("#1059"),i(t)])]),Bl])]),wl]),l("h2",Fl,[Wl,e(" 1.7.14 "),i(n,{text:"hotfix",type:"tip"})]),l("ul",null,[l("li",null,[e("修复了部分功能在打开对话框时会崩溃的问题 "),l("a",Yl,[e("#1052"),i(t)]),e(),l("a",Tl,[e("#1054"),i(t)])])]),Cl,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[l("li",null,[e("增加实时便笺数据转发 Webhook 选项 "),l("a",yl,[e("#431"),i(t)])]),l("li",null,[e("在祈愿记录页面显示祈愿记录范围时间 "),l("a",Vl,[e("#899"),i(t)])]),l("li",null,[e("为实时便笺页面引入了历练点详情视图,可以查看当前历练点获取情况 "),l("a",Kl,[e("#1021"),i(t)])])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了通过快速启动窗口启动游戏会抛出"),Nl,e("的问题 "),l("a",Rl,[e("#925"),i(t)])]),l("li",null,[e("修复了高级启动器界面闪退的问题 "),l("a",Jl,[e("#1035"),i(t)])]),l("li",null,[e("修复了内嵌网页在米游社页面中无法返回的问题 "),l("a",jl,[e("#1023"),i(t)])]),l("li",null,[e("修复了从 B 服转换服务器中出现的问题 "),l("a",zl,[e("#1041"),i(t)])]),Ml,l("li",null,[e("修复了切换胡桃通行证后祈愿记录中的胡桃云集成无法正确反应的问题 "),l("a",ql,[e("#903"),i(t)])])])]),l("li",null,[e("优化 "),l("ul",null,[Ol,l("li",null,[e("重新设计了胡桃通行证页面的 UI,现在集成在设置页面中 "),l("a",Ql,[e("#911"),i(t)])]),Xl,Zl])])]),l("h2",$l,[le,e(" 1.7.11 "),i(n,{text:"hotfix",type:"tip"})]),ee,ie,l("ul",null,[l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了 HoYoverse 无法正常登录的问题 "),l("a",te,[e("#1011"),i(t)]),e(),l("a",ne,[e("#1012"),i(t)])]),l("li",null,[e("修复了 HoYoLAB 账号无法正常签到的问题 "),l("a",oe,[e("#1013"),i(t)])]),l("li",null,[e("修复了导入 UIGF v2.2 文件时语言不正确会导致提示"),re,e("的问题 "),l("a",ue,[e("#1001"),i(t)])]),se,ae,he,_e,de])]),ce]),pe,l("ul",null,[l("li",null,[e("修复 "),l("ul",null,[fe,l("li",null,[e("修复了米哈游通行证页面无法正确登录的问题 "),l("a",be,[e("#1005"),i(t)])]),l("li",null,[e("修复了 HoYoverse 登录页面不正确的问题 "),l("a",ge,[e("#1007"),i(t)])]),Se,l("li",null,[e("修复了深境螺旋页面本期页签上场队伍页签列表中的上场次数过长可能无法正常显示的问题 "),l("a",me,[e("#1008"),i(t)])])])])]),ke,l("ul",null,[He,l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了在使用实时便笺验证功能后从实时便笺页面切换到其他页面后切换账号有概率导致崩溃的问题 "),l("a",Ge,[e("#947"),i(t)])]),l("li",null,[e("修复了在启动游戏后重新打开程序无法正确匹配当前游戏内账号的问题 "),l("a",De,[e("#865"),i(t)])]),l("li",null,[e("修复了成就页面成就统计文本过长时会被裁切的问题 "),l("a",Pe,[e("#956"),i(t)])]),xe])]),Ie]),Ue,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[ve,l("li",null,[e("深渊记录界面新增怪物波次数据 (数据来源 "),l("a",Ee,[e("@妮可少女"),i(t)]),e(")")]),l("li",null,[e("在设置页面新增微软商店评价的按钮 "),l("a",Le,[e("#876"),i(t)])]),l("li",null,[e("在用户按钮上方增加了新的文档按钮,用户点击将跳转到当前界面对应的功能文档 "),l("a",Ae,[e("#875"),i(t)])])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了主页启动游戏卡片帐号空白的情况 "),l("a",Be,[e("#924"),i(t)])]),l("li",null,[e("修复了成就记录无法保存手动取消勾选记录的问题 "),l("a",we,[e("#880"),i(t)])]),Fe,We])]),l("li",null,[e("优化 "),l("ul",null,[l("li",null,[e("优化部分错误语句,增加了解决提示 "),l("a",Ye,[e("#930"),i(t)])]),l("li",null,[e("首页的胡桃推送通知现在允许用户复制 "),l("a",Te,[e("#929"),i(t)])]),Ce,ye])])]),Ve,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[Ke,l("li",null,[e("设置页面新增了创建桌面快捷方式的选项 "),l("a",Ne,[e("#912"),i(t)])]),Re,Je])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了主页中部分公告的活动开始时间不正确的问题 "),l("a",je,[e("#887"),i(t)])]),l("li",null,[e("修复了我的角色页面中点击未使用角色橱窗同步数据的武器时会导致崩溃的问题 "),l("a",ze,[e("#904"),i(t)])]),l("li",null,[e("修复了我的角色页面中武器数值显示不正确的问题 "),l("a",Me,[e("#907"),i(t)])]),l("li",null,[e("修复了无法从 Bilibili 服务器转换到部分服务器的问题 "),l("a",qe,[e("#893"),i(t)])]),l("li",null,[e("修复了祈愿记录页面中当记录存在新手祈愿时会导致崩溃的问题 "),l("a",Oe,[e("#917"),i(t)])]),Qe,Xe])]),Ze]),$e,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[l("li",null,[e("日语选项;社区用户可以现在可以在 "),l("a",li,[e("translate.hut.ao"),i(t)]),e(" 中贡献日语翻译")])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复无法添加武器养成计划的问题 "),l("a",ei,[e("Issue #745"),i(t)])]),l("li",null,[e("部分用户在特定情况下解锁帧数上限失效的问题 "),l("a",ii,[e("Issue #747"),i(t)])])])]),l("li",null,[e("优化 "),l("ul",null,[ti,ni,l("li",null,[e("优化养成计划中材料统计的排序 "),l("a",oi,[e("Issue #749"),i(t)])])])])]),ri,l("ul",null,[l("li",null,[e("新增 "),l("ul",null,[l("li",null,[e("以 "),l("a",ui,[e("UIGF v2.3"),i(t)]),e(" 数据格式导出祈愿记录")])])]),l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("解锁帧数上限失效的问题 "),l("a",si,[e("Issue #733"),i(t)])])])]),ai]),hi,l("ul",null,[_i,l("li",null,[e("修复 "),l("ul",null,[l("li",null,[e("修复了"),i(u,{to:"/advanced/known-issue.html#_2-%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%87%E6%8D%A2%E5%AF%BC%E8%87%B431-4302%E6%8A%A5%E9%94%99"},{default:_(()=>[e("#2 服务器切换导致 31-4302 报错")]),_:1})]),di])]),l("li",null,[e("优化 "),l("ul",null,[l("li",null,[e("优化了养成计划界面 "),l("a",ci,[e("#486"),i(t)])]),pi,fi,bi])])]),gi,Si,mi,ki])}const Ii=s(d,[["render",Hi],["__file","update-log.html.vue"]]);export{Ii as default}; diff --git a/assets/update-log.html-dbfb081f.js b/assets/update-log.html-e12012a1.js similarity index 99% rename from assets/update-log.html-dbfb081f.js rename to assets/update-log.html-e12012a1.js index 5d11cd245..04f6bd8d2 100644 --- a/assets/update-log.html-dbfb081f.js +++ b/assets/update-log.html-e12012a1.js @@ -1 +1 @@ -import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as u,c as d,a as e,b as i,d as t,w as h,e as l}from"./app-8966c29b.js";const c={},p=e("h1",{id:"update-logs",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#update-logs","aria-hidden":"true"},"#"),i(" Update Logs")],-1),g={id:"_1-8-1",tabindex:"-1"},_=e("a",{class:"header-anchor",href:"#_1-8-1","aria-hidden":"true"},"#",-1),m=e("em",null,"Game Launcher",-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1082",target:"_blank",rel:"noopener noreferrer"},b=e("em",null,"Wish Export",-1),w=e("em",null,"Hutao Cloud",-1),S=e("em",null,"Spiral Abyss",-1),x={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1116",target:"_blank",rel:"noopener noreferrer"},v=e("em",null,"Auto Click",-1),k=e("code",null,"Alt",-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1119",target:"_blank",rel:"noopener noreferrer"},F=e("em",null,"Dev Plan",-1),H={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1099",target:"_blank",rel:"noopener noreferrer"},A=e("code",null,"Achievement",-1),P={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1124",target:"_blank",rel:"noopener noreferrer"},D=e("em",null,"Resource Download",-1),G=e("em",null,"Game Launcher",-1),I={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1126",target:"_blank",rel:"noopener noreferrer"},z=e("em",null,"Realtime Note",-1),C={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1123",target:"_blank",rel:"noopener noreferrer"},O=e("code",null,"Refresh Cookie",-1),U=e("em",null,"User Panel",-1),R={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1121",target:"_blank",rel:"noopener noreferrer"},B=e("li",null,[i("Remake "),e("em",null,"Character WIKI"),i(" page UI")],-1),N={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1127",target:"_blank",rel:"noopener noreferrer"},W=e("h2",{id:"_1-8-0",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-8-0","aria-hidden":"true"},"#"),i(" 1.8.0")],-1),L=e("strong",null,"Upgraded .NET version to 8",-1),E={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1103",target:"_blank",rel:"noopener noreferrer"},M=e("em",null,"Hutao Passport",-1),T={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1087",target:"_blank",rel:"noopener noreferrer"},j=e("em",null,"Dev Plan",-1),Y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1099",target:"_blank",rel:"noopener noreferrer"},K=e("em",null,"Game Launcher",-1),V={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1106",target:"_blank",rel:"noopener noreferrer"},J={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1096",target:"_blank",rel:"noopener noreferrer"},q=e("li",null,"Fixed an issue where initializing user information at startup could lead to program freezing",-1),Q=e("li",null,"Fixed unnecessary exceptions occurring on certain pages after being switched from",-1),X=e("li",null,"Fixed issues with some exceptions not being captured properly",-1),Z=e("li",null,[i("Optimization "),e("ul",null,[e("li",null,"Added more detailed failure information for metadata initialization")])],-1),$=e("h2",{id:"_1-7-17",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-17","aria-hidden":"true"},"#"),i(" 1.7.17")],-1),ee={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1079",target:"_blank",rel:"noopener noreferrer"},ie={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1081",target:"_blank",rel:"noopener noreferrer"},te=e("li",null,"Fixed the issue that error log cannot be captured correctly in some specific situations",-1),ne=e("li",null,"Fixed wrong wish record time issue",-1),oe=e("li",null,"Fixed the data exception in MiHoYo BBS web pop-ups",-1),le=e("li",null,"Fixed the issue of wrong corner radius settings of mask of history/character/weapon page in Wish History",-1),ae=e("li",null,"Fixed the wrong announcement time in time zone other than UTC+8",-1),se=e("li",null,"Optimized the UI of MiHoYo BBS web pop-ups, supports backward and refresh feature, supports showing the web title",-1),re={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/961",target:"_blank",rel:"noopener noreferrer"},ue={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/830",target:"_blank",rel:"noopener noreferrer"},de=e("h2",{id:"_1-7-16",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-16","aria-hidden":"true"},"#"),i(" 1.7.16")],-1),he={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1062",target:"_blank",rel:"noopener noreferrer"},ce={href:"https://github.com/Scighost/Starward",target:"_blank",rel:"noopener noreferrer"},pe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1071",target:"_blank",rel:"noopener noreferrer"},ge={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1074",target:"_blank",rel:"noopener noreferrer"},_e=e("code",null,"5003",-1),me={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1060",target:"_blank",rel:"noopener noreferrer"},fe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1068",target:"_blank",rel:"noopener noreferrer"},be={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1072",target:"_blank",rel:"noopener noreferrer"},we={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1069",target:"_blank",rel:"noopener noreferrer"},Se={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1015",target:"_blank",rel:"noopener noreferrer"},xe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/778",target:"_blank",rel:"noopener noreferrer"},ve=e("li",null,"Improved client stability",-1),ke=e("h2",{id:"_1-7-15",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-15","aria-hidden":"true"},"#"),i(" 1.7.15")],-1),ye={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/886",target:"_blank",rel:"noopener noreferrer"},Fe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1052",target:"_blank",rel:"noopener noreferrer"},He={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1059",target:"_blank",rel:"noopener noreferrer"},Ae=e("li",null,"Fixed notification issue after Realtime Note Webhook Url is set",-1),Pe=e("li",null,[i("Optimization "),e("ul",null,[e("li",null,"Optimized Snap Hutao account's change password and delete account logic in the client")])],-1),De={id:"_1-7-14",tabindex:"-1"},Ge=e("a",{class:"header-anchor",href:"#_1-7-14","aria-hidden":"true"},"#",-1),Ie={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1052",target:"_blank",rel:"noopener noreferrer"},ze={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1054",target:"_blank",rel:"noopener noreferrer"},Ce=e("h2",{id:"_1-7-13",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-13","aria-hidden":"true"},"#"),i(" 1.7.13")],-1),Oe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/431",target:"_blank",rel:"noopener noreferrer"},Ue={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/899",target:"_blank",rel:"noopener noreferrer"},Re={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1021",target:"_blank",rel:"noopener noreferrer"},Be=e("code",null,"Argument error",-1),Ne={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/925",target:"_blank",rel:"noopener noreferrer"},We={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1035",target:"_blank",rel:"noopener noreferrer"},Le={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1023",target:"_blank",rel:"noopener noreferrer"},Ee={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1041",target:"_blank",rel:"noopener noreferrer"},Me=e("li",null,"Fixed issue that Snap Hutao cannot identify game client status",-1),Te={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/903",target:"_blank",rel:"noopener noreferrer"},je=e("li",null,"Added localization support on prompts that returned by Snap Hutao Cloud server",-1),Ye={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1021",target:"_blank",rel:"noopener noreferrer"},Ke=e("li",null,"Redesigned advanced game launcher page UI",-1),Ve=e("li",null,"User now can view and select launcher parameters in advanced game launcher",-1),Je={id:"_1-7-11",tabindex:"-1"},qe=e("a",{class:"header-anchor",href:"#_1-7-11","aria-hidden":"true"},"#",-1),Qe=e("ul",null,[e("li",null,"Fixed the game launching arguments error (hotfix)")],-1),Xe=e("h2",{id:"_1-7-10",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-10","aria-hidden":"true"},"#"),i(" 1.7.10")],-1),Ze={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1011",target:"_blank",rel:"noopener noreferrer"},$e={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1012",target:"_blank",rel:"noopener noreferrer"},ei={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1013",target:"_blank",rel:"noopener noreferrer"},ii=e("code",null,"Invalid item",-1),ti={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1001",target:"_blank",rel:"noopener noreferrer"},ni=e("li",null,"Fixed crash issue when an invalid CAPTCHA Url is input in the setting",-1),oi=e("li",null,"Fixed crash issue when an invalid channel setting is given when launching the game",-1),li=e("li",null,"Fixed crash when switching account while WebView2 Runtime version is too low to have necessary feature",-1),ai=e("li",null,"Fixed crash issue when an invalid record is displayed in Spiral Abyss page",-1),si=e("li",null,"Fixed a memory overflow issue in embedded pages",-1),ri=e("li",null,[i("Optimization "),e("ul",null,[e("li",null,"Current game account now can be automatically identified when reaching the game launcher page")])],-1),ui=e("h2",{id:"_1-7-9",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-9","aria-hidden":"true"},"#"),i(" 1.7.9")],-1),di=e("li",null,"Fixed an issue that prevented the program from launching with the correct window size after the monitor resolution was changed after exiting the program",-1),hi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1005",target:"_blank",rel:"noopener noreferrer"},ci={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1007",target:"_blank",rel:"noopener noreferrer"},pi=e("li",null,"Fixed crash log upload issue in version 1.7.7",-1),gi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1008",target:"_blank",rel:"noopener noreferrer"},_i=l('

        1.7.7

        • Added card shadow in the following elements to optimize visual effect
          • Dashboard and in-game announcements
          • Download resource card in advanced game launcher page
          • Overview card in wish export page
          • Statistics card in wish export page
          • Real-time note card
          • List view in my character page
          • Image card in character WIKI
          • Image card in weapon WIKI
        • Fix
          • Fixed top margin error under grid view
          • Fixed grid view crash issues from multiple causes
          • Fixed server conversion issue from CN server to Bilibili server
        • Optimize
          • Optimize button position for manual account validation
            • You can now find it directly from account panel
          • Added retry logic for fetching abyss record and record upload
            • User who does not set up CAPTURE verification API can retry after manually validating account from account panel

        ## 1.7.6

        ',3),mi=e("li",null,[i("Add "),e("ul",null,[e("li",null,[i("Added mouse auto click feature triggered by F8, under Administrator privilege mode "),e("ul",null,[e("li",null,"In the upcoming Genshin Impact 4.1 and 4.2 version, this feature may help you skip some task conversation you dislike")])])])],-1),fi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/947",target:"_blank",rel:"noopener noreferrer"},bi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/865",target:"_blank",rel:"noopener noreferrer"},wi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/956",target:"_blank",rel:"noopener noreferrer"},Si=e("li",null,"Fixed an issue that Genshin Impact 4.1 version metadata will cause program to crash on Spiral Abyss page",-1),xi=e("li",null,[i("Optimize "),e("ul",null,[e("li",null,"Optimized some user interface details on some pages"),e("li",null,"Optimized announcement text color in some particular situation"),e("li",null,"Optimized download logic of downloading static images")])],-1),vi={id:"_1-7-5",tabindex:"-1"},ki=e("a",{class:"header-anchor",href:"#_1-7-5","aria-hidden":"true"},"#",-1),yi=e("li",null,"Added version number for each achievement",-1),Fi={href:"https://space.bilibili.com/3537104994831140",target:"_blank",rel:"noopener noreferrer"},Hi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/876",target:"_blank",rel:"noopener noreferrer"},Ai={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/875",target:"_blank",rel:"noopener noreferrer"},Pi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/924",target:"_blank",rel:"noopener noreferrer"},Di={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/880",target:"_blank",rel:"noopener noreferrer"},Gi=e("li",null,"Fixed issue that Realtime Note verification on wrong MiHoYo BBS account",-1),Ii=e("li",null,"Fixed issue that sometime spiral abyss statistics data are missing",-1),zi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/930",target:"_blank",rel:"noopener noreferrer"},Ci={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/929",target:"_blank",rel:"noopener noreferrer"},Oi=e("li",null,[e("strong",null,"Abyss Stats page is now merged into Abyss Records page")],-1),Ui=e("li",null,"Optimized time format in multiple places",-1),Ri={id:"_1-7-4",tabindex:"-1"},Bi=e("a",{class:"header-anchor",href:"#_1-7-4","aria-hidden":"true"},"#",-1),Ni=e("li",null,"Added option to change PowerShell entry in settings page",-1),Wi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/912",target:"_blank",rel:"noopener noreferrer"},Li=e("li",null,"Added option to switch display of cards on home dashboard",-1),Ei=e("li",null,"Added batch-add to Dev Plan option on My Character page",-1),Mi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/887",target:"_blank",rel:"noopener noreferrer"},Ti={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/904",target:"_blank",rel:"noopener noreferrer"},ji={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/907",target:"_blank",rel:"noopener noreferrer"},Yi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/893",target:"_blank",rel:"noopener noreferrer"},Ki={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/917",target:"_blank",rel:"noopener noreferrer"},Vi=e("li",null,"Fixed an issue where a Dev Plan was not pre-selected before entering the Dev Plan page, which had caused the Dev Plan page to need to be entered at least once to add a Dev Plan archive",-1),Ji=e("li",null,"Fixed the issue that failed to claim checkin reward when triggered anti-bot verification, even when anti-bot API returns success result",-1),qi=e("li",null,[i("Optimize "),e("ul",null,[e("li",null,"Optimized monsters' display order on Monster WIKI page"),e("li",null,"Optimized launch speed of Wish History page"),e("li",null,"Optimized local database thread on UI display functions"),e("li",null,"Optimized the scrolling experience for some views of Dev Plan, it may now take longer for views to be loaded")])],-1),Qi=l('

        1.7.3

        • Fixed the issue of HoYoverse web login not working
        • Upgraded the Windows App SDK version to fix the issue where the top of the title bar could not resize the window
        • Adjusted the prompt for UIGF v2.2 file import failures, now allowing for faster issue identification based on IDs
        • Fixed the issue where the user panel would display a successful claim of login rewards even if it failed
        • Fixed the problem where launching the game from the taskbar would open both the game window and the main program window simultaneously

        1.7.2

        • Wish Export
          • Fixed an issue where full refresh was not working correctly.
          • Fixed an issue where no-error UIGF files were not being imported correctly
          • Fixed an issue where Hutao Cloud records were not being retrieved correctly
          • Adjusted the UI of the Hutao Cloud window to display the number of wishes corresponding to the UID archive
        • My Characters
          • Adjusted the UI to make it more compact
        • Adjusted the UI of the homepage notifications to align them with the right edge

        1.7.0

        • Add a startup guide to help user familiarize Snap Hutao on start launch
          • Guiding users to select a language
          • Guiding users to confirm terms of service
          • Guiding users to install Segoe Fluent Icons font and WebView2 Runtime
          • Guiding users to download static assets
        • Main Interface
          • Adjusted icon styles in the navigation bar
          • Fixed a bug where adjusting window size could lead to unexpected crashes
        • User Panel
          • Adjusted styles of the user panel
          • Added a button to allow the current user to claim sign-in rewards
          • Fixed an issue where in some cases, the current user and character could not be selected correctly on startup
        • Home Dashboard
          • Added Snap Hutao announcement
          • Real-Time Note now display refresh time for each card
          • Fixed an issue where Real-Time Note card fail to load correctly, leading program to freezing or crashing
          • Corrected start/end times for certain event announcements
          • Fixed an issue where some paragraphs were not displaying correctly when viewing details of certain announcements
        • Game Launch (Advanced Launcher)
          • Added game status indicator text to the command bar
          • Fixed an issue where server switch function was not working
          • Adjusted server switch function logic to allow retries after resource download failure
          • Adjusted unlocked frame rate logic; game process will automatically end if unlocking fails
          • Removed multi-client
          • Fixed an issue in resource download page where game client had no names and couldn't be downloaded
        • Wish History
          • Adjusted card style on the overview page, making items larger and collapsing multiple text items
          • Fixed an issue where entering the wish history page without logging in or without Snap Hutao Cloud service caused errors
          • Fixed progress bar and color display issues in the card list view on the overview page
          • Fixed incorrect text for Snap Hutao Cloud's upload reward
          • Fixed the issue that UIGF formatted data file with incorrect item ID can be imported
          • Fixed the issue that failed to locate game cache directory
          • Optimized page load speed when there is a large amount of items
        • Achievement
          • Fixed a display issue that occurs after selecting achievement categories in list/grid view and switching to the other view type
          • Optimized page load speed
        • Real-Time Notes
          • Adjusted the style of the Verify Current User and Role button
          • Adjusted the style of the notification settings view
          • Added an option to disable auto-refresh for real-time notes (toggle available only in non-administrator mode; users who have previously accessed the real-time notes page in administrator mode might not be able to toggle this option)
          • Adjusted the style of real-time notes
          • Adjusted text prompts for locked Serenitea Pot and unowned Parametric Transformations
          • Added previous refresh time for each Real-time note cards
        • My Characters
          • Adjusted width of character list when using list view
          • Added a button to toggle display of refresh time in command bar
          • Added previous refresh time for each refresh function
          • Added display of times artifacts were enhanced in character details
        • Dev Plan
          • Fixed issue failure of saving active archive when switching page from dev plan to others
        • Character WIKI
          • Fixed a display issue that occurs after selecting character in list/grid view and switching to the other view type
        • Weapon WIKI
          • Fixed a display issue that occurs after selecting weapon in list/grid view and switching to the other view type
          • Added ascension material section for each weapon
        • Monster WIKI
          • Fixed a display issue that occurs after selecting monster in list/grid view and switching to the other view type
        • Settings
          • Fixed issue that unable to clear game cache directory
          • Added configuration field for Geetest CAPTCHA verification API, correct configuration on this field can handle anti-bot verification from MiYouShe
        • Improved program frame rate performance
        • Optimized memory usage for multi-thread scheduling
        • Optimized loading speed of item image assets
        • Adjusted database read/write methods to optimize memory usage and responsiveness
        • Adjusted text prompts for return codes -100 and -10001 to help users better understand their meanings
        • Other minor changes

        1.6.6

        • New
          • Snap Hutao Cloud tab will show expiration time and developer's license on the wish history page now
          • Wish statistics are now available on the wish history page, with data supported by Snap Hutao Cloud
        • Fix
          • Fix failure of web cache refresh method for wish history export
          • Fix Traditional Chinese metadata loading error

        1.6.5

        ',9),Xi={href:"https://translate.hut.ao/",target:"_blank",rel:"noopener noreferrer"},Zi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/747",target:"_blank",rel:"noopener noreferrer"},$i={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/747",target:"_blank",rel:"noopener noreferrer"},et=e("li",null,"Refine dashboard UI",-1),it=e("li",null,"Introducing Metadata v2",-1),tt={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/749",target:"_blank",rel:"noopener noreferrer"},nt=e("h2",{id:"_1-6-4",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-6-4","aria-hidden":"true"},"#"),i(" 1.6.4")],-1),ot={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},lt={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/733",target:"_blank",rel:"noopener noreferrer"},at=e("li",null,[i("Optimize "),e("ul",null,[e("li",null,"When running program without administrator privilege, features require administrator privilege will have text hints"),e("li",null,"Support of HoYoLAB"),e("li",null,"Localization updates")])],-1),st=l('

        1.6.3

        • New
          • Home dashboard, including Hutao Cloud account, game launcher, wish history, achievement stat and real-time notes
          • Enable notification box will now automatically hide in-app notification
          • CN server option without TapTap account
        • Fix
          • Issue that user cannot get Hutao Cloud bonus after uploading Abyss record
          • Issue that cannot sign in to HoYoLab with Facebook
          • HoYoLab check-in issue
          • Issue when facing empty value during wish history fetch progress
        • Optimize
          • Project refactoring, brings a 20% performance improvement
          • Add localization support for WIKI features
          • Add support for all international channels (which affect payment gateway)
            • Supporting HoYoverse official, Google Pay, Epic
          • When Unlock framerate limit is enabled, limit value can be modified during the game, and will take effect immediately
        ',2),rt={id:"_1-6-2",tabindex:"-1"},ut=e("a",{class:"header-anchor",href:"#_1-6-2","aria-hidden":"true"},"#",-1),dt=l('
        • New Feature
          • Wish history cloud backup based on Hutao account system
            • Currently, sponsors on AFDIAN and beta users will receive corresponding cloud membership time; All registered users will receive 5 days membership time after uploading Abyss record.
            • This feature will be optimized constantly in the following 1.6 versions
        • Fix
          • Issue that BiliBili server account cannot receive data for Real-time Notes
          • Issue on HoYoLab login
        • Optimize
          • Static assets download logic

        1.6.0

        • Add
          • Hutao account system with registration and login available now
          • Support of HoYoLab account login, and add its support to the following features:
            • Web login and Stoken Cookie login
            • Abyss record
            • Daily check-in reward
            • My character
            • Real-time notes
        • Optimization
          • Performance of frame rate unlock
          • Multi-client
          • Now users must unlock advanced features in the settings page before actually using them
          • Settings page layout
          • Tiles image on Windows 10

        1.5.4

        • Add
          • Game Launcher
            • Game resource package download
            • Allow multiple Genshin Impact process to run
            • Allow users to select the specified monitor to start the game
          • New icons have been used
        • Fix
          • Issue caused unlimited file writing during server switch
        • Optimization
          • Optimize default language selection
          • Allow device ID be copied with button
          • Setting page UI optimization

        1.5.1

        • Optimization
          • Replace JumpList menus with JumpTask,
          • Add option to allow user set language over system default setting
          • Add translation contribution entry
          • Add options to reset the image resource
        • Add
          • Monster WIKI
          • Korean translation
          • Internationalized Metadata

        1.4.15

        ',8),ht=e("li",null,[i("New "),e("ul",null,[e("li",null,"Static image reset method"),e("li",null,"Cookie refresh")])],-1),ct=e("li",null,"Fix the failure of clearing scheduled task in some specific situations",-1),pt={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/486",target:"_blank",rel:"noopener noreferrer"},gt=e("li",null,"Optimize English and Traditional Chinese translations",-1),_t=e("li",null,"Add hints when Windows long path limits are triggered",-1),mt=e("li",null,"Optimize wake-up for scheduled tasks",-1),ft=e("h2",{id:"_1-4-14",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-4-14","aria-hidden":"true"},"#"),i(" 1.4.14")],-1),bt=e("ul",null,[e("li",null,"Fix issue that new dev plan cannot be added"),e("li",null,"Support English UI"),e("li",null,"Other minor bug fix")],-1),wt=e("h2",{id:"_1-4-11",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-4-11","aria-hidden":"true"},"#"),i(" 1.4.11")],-1),St=e("ul",null,[e("li",null,"First version on Microsoft Store")],-1);function xt(vt,kt){const o=a("Badge"),n=a("ExternalLinkIcon"),s=a("RouterLink");return u(),d("div",null,[p,e("h2",g,[_,i(" 1.8.1 "),t(o,{text:"latest",type:"tip"})]),e("ul",null,[e("li",null,[i("Add "),e("ul",null,[e("li",null,[i("Added Discord Activity synchronization functions in "),m,i(", it syncs game status when playing Genshin Impact "),e("a",f,[i("#1082"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed the issue where navigating from "),b,i(" page "),w,i(" panel to "),S,i(" page would not synchronize the navigation bar options "),e("a",x,[i("#1116"),t(n)])]),e("li",null,[i("Fixed the issue that "),v,i(" feature cannot bind with "),k,i(" key "),e("a",y,[i("#1119"),t(n)])]),e("li",null,[i("Fixed item refresh issue after switching plans in "),F,i(),e("a",H,[i("#1099"),t(n)])]),e("li",null,[i("Fixed issue that only blank name json file can be imported in "),A,i(" page "),e("a",P,[i("#1124"),t(n)])]),e("li",null,[i("Fixed full package download link under "),D,i(" page in "),G,i(", it is replaced with split files link "),e("a",I,[i("#1126"),t(n)])]),e("li",null,[i("Fixed the notification issues from "),z,i(", includes wrong content, repeated notifications and unexpectedly bypass client mode "),e("a",C,[i("#1123"),t(n)])])])]),e("li",null,[i("Optimization "),e("ul",null,[e("li",null,[i("Added overtime refresh rules for Fingerprint/CookieToken, users don't need to click "),O,i(" in "),U,i(" so often "),e("a",R,[i("#1121"),t(n)])]),B,e("li",null,[i("Added hint text when there is no signed in MiHoYo BBS account "),e("a",N,[i("#1127"),t(n)])])])])]),W,e("ul",null,[e("li",null,[L,i(),e("a",E,[i("#1103"),t(n)])]),e("li",null,[i("Fixes "),e("ul",null,[e("li",null,[i("Fixed translation issues with "),M,i(" registration/logoff/reset password prompts "),e("a",T,[i("#1087"),t(n)]),i(" by @Tangweirui2021")]),e("li",null,[i("Fixed an issue with the first-row items on the "),j,i(" page not refreshing correctly after switching plans "),e("a",Y,[i("#1099"),t(n)])]),e("li",null,[i("Fixed an issue on the "),K,i(" page where borderless and exclusive fullscreen could not be set simultaneously "),e("a",V,[i("#1106"),t(n)])]),e("li",null,[i("Replaced the file pickers implementation, resolving the problem of being unable to use the file pickers under administrator privilege "),e("a",J,[i("#1096"),t(n)])]),q,Q,X])]),Z]),$,e("ul",null,[e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed the issue that the first item in Dev Plan won't be refresh after switching the plan "),e("a",ee,[i("#1079"),t(n)])]),e("li",null,[i("Fixed the issue that wish record URL for global server cannot be found "),e("a",ie,[i("#1081"),t(n)])]),te,ne,oe,le,ae])]),e("li",null,[i("Optimization "),e("ul",null,[se,e("li",null,[i("Auto click feature now can be switched off and hot key can be changed "),e("a",re,[i("#961"),t(n)])]),e("li",null,[i("Added support of UIGF v2.4 format import and export "),e("ul",null,[e("li",null,[i("Added time zone inference based on account's server "),e("a",ue,[i("#830"),t(n)])])])])])])]),de,e("ul",null,[e("li",null,[i("Add "),e("ul",null,[e("li",null,[i("Add screen resolution quick switch dropdown in Game Launcher "),e("a",he,[i("#1062"),t(n)])]),e("li",null,[i("Add support to allow user to cooperate "),e("a",ce,[i("Starward"),t(n)]),i(" with Snap Hutao to collect game play time stats "),e("a",pe,[i("#1071"),t(n)])]),e("li",null,[i("Add resource download link copy option in Game Launcher "),e("a",ge,[i("#1074"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed issue that MiHoYo BBS returns "),_e,i(" error when fetching data "),e("a",me,[i("#1060"),t(n)])]),e("li",null,[i("Fixed issue that page cannot be scrolled in some particular situations "),e("a",fe,[i("#1068"),t(n)]),i(),e("a",be,[i("#1072"),t(n)])]),e("li",null,[i("Fixed issue that characters' skill levels are not shown in My Character "),e("a",we,[i("#1069"),t(n)])])])]),e("li",null,[i("Optimization "),e("ul",null,[e("li",null,[i("Optimized update log display logic "),e("a",Se,[i("#1015"),t(n)])]),e("li",null,[i("User's setting selection on each button will be memorized in global scope "),e("a",xe,[i("#778"),t(n)])]),ve])])]),ke,e("ul",null,[e("li",null,[i("Add "),e("ul",null,[e("li",null,[i("Added option to recover full wish history record backup from Snap Hutao Cloud service into new archive "),e("a",ye,[i("#886"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed issue that invalid game launching parameter can be parsed; added switch for some launch parameters "),e("a",Fe,[i("#1061"),t(n)])]),e("li",null,[i("Fixed issue that user cannot register Snap Hutao account in the client "),e("a",He,[i("#1059"),t(n)])]),Ae])]),Pe]),e("h2",De,[Ge,i(" 1.7.14 "),t(o,{text:"hotfix",type:"tip"})]),e("ul",null,[e("li",null,[i("Fixed an issue causes the program to crash when opening some specific dialog boxes "),e("a",Ie,[i("#1052"),t(n)]),i(),e("a",ze,[i("#1054"),t(n)])])]),Ce,e("ul",null,[e("li",null,[i("Add "),e("ul",null,[e("li",null,[i("Added option to forward Realtime Note data to specified webhook "),e("a",Oe,[i("#431"),t(n)])]),e("li",null,[i("Added date range of wish history records "),e("a",Ue,[i("#899"),t(n)])]),e("li",null,[i("Added detail view of Adventure Encounter Points in Realtime Note, support view of current Adventure Encounter Points status "),e("a",Re,[i("#1021"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed "),Be,i(" when using quick launcher from task bar in some conditions "),e("a",Ne,[i("#925"),t(n)])]),e("li",null,[i("Fixed crash issue when using advanced launcher in some conditions "),e("a",We,[i("#1035"),t(n)])]),e("li",null,[i("Fixed issue that cannot go back on embedded MiHoYo BBS browser "),e("a",Le,[i("#1023"),t(n)])]),e("li",null,[i("Fixed issue on converting server from bilibili server to global server "),e("a",Ee,[i("#1041"),t(n)])]),Me,e("li",null,[i("Fixed issue on Snap Hutao Cloud status on wish export page, after switching Snap Hutao account "),e("a",Te,[i("#903"),t(n)])])])]),e("li",null,[i("Optimization "),e("ul",null,[je,e("li",null,[i("Redesigned Snap Hutao Passport UI, and now it is embedded in settings page "),e("a",Ye,[i("#911"),t(n)])]),Ke,Ve])])]),e("h2",Je,[qe,i(" 1.7.11 "),t(o,{text:"hotfix",type:"tip"})]),Qe,Xe,e("ul",null,[e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed login issue with HoYoverse account "),e("a",Ze,[i("#1011"),t(n)]),i(),e("a",$e,[i("#1012"),t(n)])]),e("li",null,[i("Fixed daily check-in issue on HoYoLAB account "),e("a",ei,[i("#1013"),t(n)])]),e("li",null,[i("Fixed issue that "),ii,i(" error show up when language does not match in UIGFv2.2 data file "),e("a",ti,[i("#1001"),t(n)])]),ni,oi,li,ai,si])]),ri]),ui,e("ul",null,[e("li",null,[i("Fix "),e("ul",null,[di,e("li",null,[i("Fixed login issue of MiHoYo BBS "),e("a",hi,[i("#1005"),t(n)])]),e("li",null,[i("Fixed HoYoverse login issue "),e("a",ci,[i("#1007"),t(n)])]),pi,e("li",null,[i("Fixed UI display issue on Team Lineup page in Spiral Abyss feature "),e("a",gi,[i("#1008"),t(n)])])])])]),_i,e("ul",null,[mi,e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed crash issue when switching account after validating cookie on Realtime Notes page "),e("a",fi,[i("#947"),t(n)])]),e("li",null,[i("Fixed failure of matching current in-game account after rebooting Snap Hutao and game client "),e("a",bi,[i("#865"),t(n)])]),e("li",null,[i("Fixed display issue on Achievement page "),e("a",wi,[i("#956"),t(n)])]),Si])]),xi]),e("h2",vi,[ki,i(" 1.7.5 "),t(o,{text:"latest",type:"tip"})]),e("ul",null,[e("li",null,[i("Add "),e("ul",null,[yi,e("li",null,[i("Added monster waves data in Abyss Data page (data provided by "),e("a",Fi,[i("@妮可少女"),t(n)]),i(")")]),e("li",null,[i("Added Microsoft Store rating button on settings page "),e("a",Hi,[i("#876"),t(n)])]),e("li",null,[i("Added a document button above user panel, user will be redirected to current page's document when click on it "),e("a",Ai,[i("#875"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed game launcher card on dashboard showing empty account issue "),e("a",Pi,[i("#924"),t(n)])]),e("li",null,[i("Fixed achievement status cannot be saved when be manually unchecked "),e("a",Di,[i("#880"),t(n)])]),Gi,Ii])]),e("li",null,[i("Optimizations "),e("ul",null,[e("li",null,[i("Optimized some error messages, added solution hints "),e("a",zi,[i("#930"),t(n)])]),e("li",null,[i("Snap Hutao Announcements content on dashboard now is copyable "),e("a",Ci,[i("#929"),t(n)])]),Oi,Ui])])]),e("h2",Ri,[Bi,i(" 1.7.4 "),t(o,{text:"latest",type:"tip"})]),e("ul",null,[e("li",null,[i("Add "),e("ul",null,[Ni,e("li",null,[i("Added option to create desktop shortcut in settings page "),e("a",Wi,[i("#912"),t(n)])]),Li,Ei])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed an issue which event start time is not accurate on Home Dashboard "),e("a",Mi,[i("#887"),t(n)])]),e("li",null,[i("Fixed an issue on My Character page that caused crashes when clicking on weapon that is not synchronized by Enka API "),e("a",Ti,[i("#904"),t(n)])]),e("li",null,[i("Fixed an issue of weapon value display error on My Character page "),e("a",ji,[i("#907"),t(n)])]),e("li",null,[i("Fixed an issue where Bilibili server cannot be converted to some other servers "),e("a",Yi,[i("#893"),t(n)])]),e("li",null,[i("Fixed an issue where fetching Novice Wish history will cause the program to crash "),e("a",Ki,[i("#917"),t(n)])]),Vi,Ji])]),qi]),Qi,e("ul",null,[e("li",null,[i("New "),e("ul",null,[e("li",null,[i("Japanese is now a new language option; community members can contribute Japanese language on "),e("a",Xi,[i("translate.hut.ao"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Issue that cannot add weapons to dev plan "),e("a",Zi,[i("Issue #745"),t(n)])]),e("li",null,[i("Issue on some users failed to unlock frame rate limit under certain environment "),e("a",$i,[i("Issue #747"),t(n)])])])]),e("li",null,[i("Optimize "),e("ul",null,[et,it,e("li",null,[i("Sorting order of materials in dev plan "),e("a",tt,[i("Issue #749"),t(n)])])])])]),nt,e("ul",null,[e("li",null,[i("New "),e("ul",null,[e("li",null,[i("Export wish history data with "),e("a",ot,[i("UIGF v2.3"),t(n)]),i(" data format")])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("FPS unlocker "),e("a",lt,[i("Issue #733"),t(n)])])])]),at]),st,e("h2",rt,[ut,i(" 1.6.2 "),t(o,{text:"latest",type:"tip"})]),dt,e("ul",null,[ht,e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fix "),t(s,{to:"/advanced/known-issue.html#_2-%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%87%E6%8D%A2%E5%AF%BC%E8%87%B431-4302%E6%8A%A5%E9%94%99"},{default:h(()=>[i("#2 31-4302 caused by server switch")]),_:1})]),ct])]),e("li",null,[i("Optimization "),e("ul",null,[e("li",null,[i("Optimize Dev Plan UI "),e("a",pt,[i("#486"),t(n)])]),gt,_t,mt])])]),ft,bt,wt,St])}const Ht=r(c,[["render",xt],["__file","update-log.html.vue"]]);export{Ht as default}; +import{_ as r}from"./plugin-vue_export-helper-c27b6911.js";import{r as a,o as u,c as d,a as e,b as i,d as t,w as h,e as l}from"./app-5a96e1e2.js";const c={},p=e("h1",{id:"update-logs",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#update-logs","aria-hidden":"true"},"#"),i(" Update Logs")],-1),g={id:"_1-8-1",tabindex:"-1"},_=e("a",{class:"header-anchor",href:"#_1-8-1","aria-hidden":"true"},"#",-1),m=e("em",null,"Game Launcher",-1),f={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1082",target:"_blank",rel:"noopener noreferrer"},b=e("em",null,"Wish Export",-1),w=e("em",null,"Hutao Cloud",-1),S=e("em",null,"Spiral Abyss",-1),x={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1116",target:"_blank",rel:"noopener noreferrer"},v=e("em",null,"Auto Click",-1),k=e("code",null,"Alt",-1),y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1119",target:"_blank",rel:"noopener noreferrer"},F=e("em",null,"Dev Plan",-1),H={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1099",target:"_blank",rel:"noopener noreferrer"},A=e("code",null,"Achievement",-1),P={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1124",target:"_blank",rel:"noopener noreferrer"},D=e("em",null,"Resource Download",-1),G=e("em",null,"Game Launcher",-1),I={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1126",target:"_blank",rel:"noopener noreferrer"},z=e("em",null,"Realtime Note",-1),C={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1123",target:"_blank",rel:"noopener noreferrer"},O=e("code",null,"Refresh Cookie",-1),U=e("em",null,"User Panel",-1),R={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1121",target:"_blank",rel:"noopener noreferrer"},B=e("li",null,[i("Remake "),e("em",null,"Character WIKI"),i(" page UI")],-1),N={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1127",target:"_blank",rel:"noopener noreferrer"},W=e("h2",{id:"_1-8-0",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-8-0","aria-hidden":"true"},"#"),i(" 1.8.0")],-1),L=e("strong",null,"Upgraded .NET version to 8",-1),E={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1103",target:"_blank",rel:"noopener noreferrer"},M=e("em",null,"Hutao Passport",-1),T={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1087",target:"_blank",rel:"noopener noreferrer"},j=e("em",null,"Dev Plan",-1),Y={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1099",target:"_blank",rel:"noopener noreferrer"},K=e("em",null,"Game Launcher",-1),V={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1106",target:"_blank",rel:"noopener noreferrer"},J={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1096",target:"_blank",rel:"noopener noreferrer"},q=e("li",null,"Fixed an issue where initializing user information at startup could lead to program freezing",-1),Q=e("li",null,"Fixed unnecessary exceptions occurring on certain pages after being switched from",-1),X=e("li",null,"Fixed issues with some exceptions not being captured properly",-1),Z=e("li",null,[i("Optimization "),e("ul",null,[e("li",null,"Added more detailed failure information for metadata initialization")])],-1),$=e("h2",{id:"_1-7-17",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-17","aria-hidden":"true"},"#"),i(" 1.7.17")],-1),ee={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1079",target:"_blank",rel:"noopener noreferrer"},ie={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1081",target:"_blank",rel:"noopener noreferrer"},te=e("li",null,"Fixed the issue that error log cannot be captured correctly in some specific situations",-1),ne=e("li",null,"Fixed wrong wish record time issue",-1),oe=e("li",null,"Fixed the data exception in MiHoYo BBS web pop-ups",-1),le=e("li",null,"Fixed the issue of wrong corner radius settings of mask of history/character/weapon page in Wish History",-1),ae=e("li",null,"Fixed the wrong announcement time in time zone other than UTC+8",-1),se=e("li",null,"Optimized the UI of MiHoYo BBS web pop-ups, supports backward and refresh feature, supports showing the web title",-1),re={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/961",target:"_blank",rel:"noopener noreferrer"},ue={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/830",target:"_blank",rel:"noopener noreferrer"},de=e("h2",{id:"_1-7-16",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-16","aria-hidden":"true"},"#"),i(" 1.7.16")],-1),he={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1062",target:"_blank",rel:"noopener noreferrer"},ce={href:"https://github.com/Scighost/Starward",target:"_blank",rel:"noopener noreferrer"},pe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1071",target:"_blank",rel:"noopener noreferrer"},ge={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1074",target:"_blank",rel:"noopener noreferrer"},_e=e("code",null,"5003",-1),me={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1060",target:"_blank",rel:"noopener noreferrer"},fe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1068",target:"_blank",rel:"noopener noreferrer"},be={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1072",target:"_blank",rel:"noopener noreferrer"},we={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1069",target:"_blank",rel:"noopener noreferrer"},Se={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1015",target:"_blank",rel:"noopener noreferrer"},xe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/778",target:"_blank",rel:"noopener noreferrer"},ve=e("li",null,"Improved client stability",-1),ke=e("h2",{id:"_1-7-15",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-15","aria-hidden":"true"},"#"),i(" 1.7.15")],-1),ye={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/886",target:"_blank",rel:"noopener noreferrer"},Fe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1052",target:"_blank",rel:"noopener noreferrer"},He={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1059",target:"_blank",rel:"noopener noreferrer"},Ae=e("li",null,"Fixed notification issue after Realtime Note Webhook Url is set",-1),Pe=e("li",null,[i("Optimization "),e("ul",null,[e("li",null,"Optimized Snap Hutao account's change password and delete account logic in the client")])],-1),De={id:"_1-7-14",tabindex:"-1"},Ge=e("a",{class:"header-anchor",href:"#_1-7-14","aria-hidden":"true"},"#",-1),Ie={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1052",target:"_blank",rel:"noopener noreferrer"},ze={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1054",target:"_blank",rel:"noopener noreferrer"},Ce=e("h2",{id:"_1-7-13",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-13","aria-hidden":"true"},"#"),i(" 1.7.13")],-1),Oe={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/431",target:"_blank",rel:"noopener noreferrer"},Ue={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/899",target:"_blank",rel:"noopener noreferrer"},Re={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1021",target:"_blank",rel:"noopener noreferrer"},Be=e("code",null,"Argument error",-1),Ne={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/925",target:"_blank",rel:"noopener noreferrer"},We={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1035",target:"_blank",rel:"noopener noreferrer"},Le={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1023",target:"_blank",rel:"noopener noreferrer"},Ee={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1041",target:"_blank",rel:"noopener noreferrer"},Me=e("li",null,"Fixed issue that Snap Hutao cannot identify game client status",-1),Te={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/903",target:"_blank",rel:"noopener noreferrer"},je=e("li",null,"Added localization support on prompts that returned by Snap Hutao Cloud server",-1),Ye={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1021",target:"_blank",rel:"noopener noreferrer"},Ke=e("li",null,"Redesigned advanced game launcher page UI",-1),Ve=e("li",null,"User now can view and select launcher parameters in advanced game launcher",-1),Je={id:"_1-7-11",tabindex:"-1"},qe=e("a",{class:"header-anchor",href:"#_1-7-11","aria-hidden":"true"},"#",-1),Qe=e("ul",null,[e("li",null,"Fixed the game launching arguments error (hotfix)")],-1),Xe=e("h2",{id:"_1-7-10",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-10","aria-hidden":"true"},"#"),i(" 1.7.10")],-1),Ze={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1011",target:"_blank",rel:"noopener noreferrer"},$e={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1012",target:"_blank",rel:"noopener noreferrer"},ei={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1013",target:"_blank",rel:"noopener noreferrer"},ii=e("code",null,"Invalid item",-1),ti={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1001",target:"_blank",rel:"noopener noreferrer"},ni=e("li",null,"Fixed crash issue when an invalid CAPTCHA Url is input in the setting",-1),oi=e("li",null,"Fixed crash issue when an invalid channel setting is given when launching the game",-1),li=e("li",null,"Fixed crash when switching account while WebView2 Runtime version is too low to have necessary feature",-1),ai=e("li",null,"Fixed crash issue when an invalid record is displayed in Spiral Abyss page",-1),si=e("li",null,"Fixed a memory overflow issue in embedded pages",-1),ri=e("li",null,[i("Optimization "),e("ul",null,[e("li",null,"Current game account now can be automatically identified when reaching the game launcher page")])],-1),ui=e("h2",{id:"_1-7-9",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-7-9","aria-hidden":"true"},"#"),i(" 1.7.9")],-1),di=e("li",null,"Fixed an issue that prevented the program from launching with the correct window size after the monitor resolution was changed after exiting the program",-1),hi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1005",target:"_blank",rel:"noopener noreferrer"},ci={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1007",target:"_blank",rel:"noopener noreferrer"},pi=e("li",null,"Fixed crash log upload issue in version 1.7.7",-1),gi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/1008",target:"_blank",rel:"noopener noreferrer"},_i=l('

        1.7.7

        • Added card shadow in the following elements to optimize visual effect
          • Dashboard and in-game announcements
          • Download resource card in advanced game launcher page
          • Overview card in wish export page
          • Statistics card in wish export page
          • Real-time note card
          • List view in my character page
          • Image card in character WIKI
          • Image card in weapon WIKI
        • Fix
          • Fixed top margin error under grid view
          • Fixed grid view crash issues from multiple causes
          • Fixed server conversion issue from CN server to Bilibili server
        • Optimize
          • Optimize button position for manual account validation
            • You can now find it directly from account panel
          • Added retry logic for fetching abyss record and record upload
            • User who does not set up CAPTURE verification API can retry after manually validating account from account panel

        ## 1.7.6

        ',3),mi=e("li",null,[i("Add "),e("ul",null,[e("li",null,[i("Added mouse auto click feature triggered by F8, under Administrator privilege mode "),e("ul",null,[e("li",null,"In the upcoming Genshin Impact 4.1 and 4.2 version, this feature may help you skip some task conversation you dislike")])])])],-1),fi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/947",target:"_blank",rel:"noopener noreferrer"},bi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/865",target:"_blank",rel:"noopener noreferrer"},wi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/956",target:"_blank",rel:"noopener noreferrer"},Si=e("li",null,"Fixed an issue that Genshin Impact 4.1 version metadata will cause program to crash on Spiral Abyss page",-1),xi=e("li",null,[i("Optimize "),e("ul",null,[e("li",null,"Optimized some user interface details on some pages"),e("li",null,"Optimized announcement text color in some particular situation"),e("li",null,"Optimized download logic of downloading static images")])],-1),vi={id:"_1-7-5",tabindex:"-1"},ki=e("a",{class:"header-anchor",href:"#_1-7-5","aria-hidden":"true"},"#",-1),yi=e("li",null,"Added version number for each achievement",-1),Fi={href:"https://space.bilibili.com/3537104994831140",target:"_blank",rel:"noopener noreferrer"},Hi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/876",target:"_blank",rel:"noopener noreferrer"},Ai={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/875",target:"_blank",rel:"noopener noreferrer"},Pi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/924",target:"_blank",rel:"noopener noreferrer"},Di={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/880",target:"_blank",rel:"noopener noreferrer"},Gi=e("li",null,"Fixed issue that Realtime Note verification on wrong MiHoYo BBS account",-1),Ii=e("li",null,"Fixed issue that sometime spiral abyss statistics data are missing",-1),zi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/930",target:"_blank",rel:"noopener noreferrer"},Ci={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/929",target:"_blank",rel:"noopener noreferrer"},Oi=e("li",null,[e("strong",null,"Abyss Stats page is now merged into Abyss Records page")],-1),Ui=e("li",null,"Optimized time format in multiple places",-1),Ri={id:"_1-7-4",tabindex:"-1"},Bi=e("a",{class:"header-anchor",href:"#_1-7-4","aria-hidden":"true"},"#",-1),Ni=e("li",null,"Added option to change PowerShell entry in settings page",-1),Wi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/912",target:"_blank",rel:"noopener noreferrer"},Li=e("li",null,"Added option to switch display of cards on home dashboard",-1),Ei=e("li",null,"Added batch-add to Dev Plan option on My Character page",-1),Mi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/887",target:"_blank",rel:"noopener noreferrer"},Ti={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/904",target:"_blank",rel:"noopener noreferrer"},ji={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/907",target:"_blank",rel:"noopener noreferrer"},Yi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/893",target:"_blank",rel:"noopener noreferrer"},Ki={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/917",target:"_blank",rel:"noopener noreferrer"},Vi=e("li",null,"Fixed an issue where a Dev Plan was not pre-selected before entering the Dev Plan page, which had caused the Dev Plan page to need to be entered at least once to add a Dev Plan archive",-1),Ji=e("li",null,"Fixed the issue that failed to claim checkin reward when triggered anti-bot verification, even when anti-bot API returns success result",-1),qi=e("li",null,[i("Optimize "),e("ul",null,[e("li",null,"Optimized monsters' display order on Monster WIKI page"),e("li",null,"Optimized launch speed of Wish History page"),e("li",null,"Optimized local database thread on UI display functions"),e("li",null,"Optimized the scrolling experience for some views of Dev Plan, it may now take longer for views to be loaded")])],-1),Qi=l('

        1.7.3

        • Fixed the issue of HoYoverse web login not working
        • Upgraded the Windows App SDK version to fix the issue where the top of the title bar could not resize the window
        • Adjusted the prompt for UIGF v2.2 file import failures, now allowing for faster issue identification based on IDs
        • Fixed the issue where the user panel would display a successful claim of login rewards even if it failed
        • Fixed the problem where launching the game from the taskbar would open both the game window and the main program window simultaneously

        1.7.2

        • Wish Export
          • Fixed an issue where full refresh was not working correctly.
          • Fixed an issue where no-error UIGF files were not being imported correctly
          • Fixed an issue where Hutao Cloud records were not being retrieved correctly
          • Adjusted the UI of the Hutao Cloud window to display the number of wishes corresponding to the UID archive
        • My Characters
          • Adjusted the UI to make it more compact
        • Adjusted the UI of the homepage notifications to align them with the right edge

        1.7.0

        • Add a startup guide to help user familiarize Snap Hutao on start launch
          • Guiding users to select a language
          • Guiding users to confirm terms of service
          • Guiding users to install Segoe Fluent Icons font and WebView2 Runtime
          • Guiding users to download static assets
        • Main Interface
          • Adjusted icon styles in the navigation bar
          • Fixed a bug where adjusting window size could lead to unexpected crashes
        • User Panel
          • Adjusted styles of the user panel
          • Added a button to allow the current user to claim sign-in rewards
          • Fixed an issue where in some cases, the current user and character could not be selected correctly on startup
        • Home Dashboard
          • Added Snap Hutao announcement
          • Real-Time Note now display refresh time for each card
          • Fixed an issue where Real-Time Note card fail to load correctly, leading program to freezing or crashing
          • Corrected start/end times for certain event announcements
          • Fixed an issue where some paragraphs were not displaying correctly when viewing details of certain announcements
        • Game Launch (Advanced Launcher)
          • Added game status indicator text to the command bar
          • Fixed an issue where server switch function was not working
          • Adjusted server switch function logic to allow retries after resource download failure
          • Adjusted unlocked frame rate logic; game process will automatically end if unlocking fails
          • Removed multi-client
          • Fixed an issue in resource download page where game client had no names and couldn't be downloaded
        • Wish History
          • Adjusted card style on the overview page, making items larger and collapsing multiple text items
          • Fixed an issue where entering the wish history page without logging in or without Snap Hutao Cloud service caused errors
          • Fixed progress bar and color display issues in the card list view on the overview page
          • Fixed incorrect text for Snap Hutao Cloud's upload reward
          • Fixed the issue that UIGF formatted data file with incorrect item ID can be imported
          • Fixed the issue that failed to locate game cache directory
          • Optimized page load speed when there is a large amount of items
        • Achievement
          • Fixed a display issue that occurs after selecting achievement categories in list/grid view and switching to the other view type
          • Optimized page load speed
        • Real-Time Notes
          • Adjusted the style of the Verify Current User and Role button
          • Adjusted the style of the notification settings view
          • Added an option to disable auto-refresh for real-time notes (toggle available only in non-administrator mode; users who have previously accessed the real-time notes page in administrator mode might not be able to toggle this option)
          • Adjusted the style of real-time notes
          • Adjusted text prompts for locked Serenitea Pot and unowned Parametric Transformations
          • Added previous refresh time for each Real-time note cards
        • My Characters
          • Adjusted width of character list when using list view
          • Added a button to toggle display of refresh time in command bar
          • Added previous refresh time for each refresh function
          • Added display of times artifacts were enhanced in character details
        • Dev Plan
          • Fixed issue failure of saving active archive when switching page from dev plan to others
        • Character WIKI
          • Fixed a display issue that occurs after selecting character in list/grid view and switching to the other view type
        • Weapon WIKI
          • Fixed a display issue that occurs after selecting weapon in list/grid view and switching to the other view type
          • Added ascension material section for each weapon
        • Monster WIKI
          • Fixed a display issue that occurs after selecting monster in list/grid view and switching to the other view type
        • Settings
          • Fixed issue that unable to clear game cache directory
          • Added configuration field for Geetest CAPTCHA verification API, correct configuration on this field can handle anti-bot verification from MiYouShe
        • Improved program frame rate performance
        • Optimized memory usage for multi-thread scheduling
        • Optimized loading speed of item image assets
        • Adjusted database read/write methods to optimize memory usage and responsiveness
        • Adjusted text prompts for return codes -100 and -10001 to help users better understand their meanings
        • Other minor changes

        1.6.6

        • New
          • Snap Hutao Cloud tab will show expiration time and developer's license on the wish history page now
          • Wish statistics are now available on the wish history page, with data supported by Snap Hutao Cloud
        • Fix
          • Fix failure of web cache refresh method for wish history export
          • Fix Traditional Chinese metadata loading error

        1.6.5

        ',9),Xi={href:"https://translate.hut.ao/",target:"_blank",rel:"noopener noreferrer"},Zi={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/747",target:"_blank",rel:"noopener noreferrer"},$i={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/747",target:"_blank",rel:"noopener noreferrer"},et=e("li",null,"Refine dashboard UI",-1),it=e("li",null,"Introducing Metadata v2",-1),tt={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/749",target:"_blank",rel:"noopener noreferrer"},nt=e("h2",{id:"_1-6-4",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-6-4","aria-hidden":"true"},"#"),i(" 1.6.4")],-1),ot={href:"https://uigf.org/zh/standards/UIGF.html",target:"_blank",rel:"noopener noreferrer"},lt={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/733",target:"_blank",rel:"noopener noreferrer"},at=e("li",null,[i("Optimize "),e("ul",null,[e("li",null,"When running program without administrator privilege, features require administrator privilege will have text hints"),e("li",null,"Support of HoYoLAB"),e("li",null,"Localization updates")])],-1),st=l('

        1.6.3

        • New
          • Home dashboard, including Hutao Cloud account, game launcher, wish history, achievement stat and real-time notes
          • Enable notification box will now automatically hide in-app notification
          • CN server option without TapTap account
        • Fix
          • Issue that user cannot get Hutao Cloud bonus after uploading Abyss record
          • Issue that cannot sign in to HoYoLab with Facebook
          • HoYoLab check-in issue
          • Issue when facing empty value during wish history fetch progress
        • Optimize
          • Project refactoring, brings a 20% performance improvement
          • Add localization support for WIKI features
          • Add support for all international channels (which affect payment gateway)
            • Supporting HoYoverse official, Google Pay, Epic
          • When Unlock framerate limit is enabled, limit value can be modified during the game, and will take effect immediately
        ',2),rt={id:"_1-6-2",tabindex:"-1"},ut=e("a",{class:"header-anchor",href:"#_1-6-2","aria-hidden":"true"},"#",-1),dt=l('
        • New Feature
          • Wish history cloud backup based on Hutao account system
            • Currently, sponsors on AFDIAN and beta users will receive corresponding cloud membership time; All registered users will receive 5 days membership time after uploading Abyss record.
            • This feature will be optimized constantly in the following 1.6 versions
        • Fix
          • Issue that BiliBili server account cannot receive data for Real-time Notes
          • Issue on HoYoLab login
        • Optimize
          • Static assets download logic

        1.6.0

        • Add
          • Hutao account system with registration and login available now
          • Support of HoYoLab account login, and add its support to the following features:
            • Web login and Stoken Cookie login
            • Abyss record
            • Daily check-in reward
            • My character
            • Real-time notes
        • Optimization
          • Performance of frame rate unlock
          • Multi-client
          • Now users must unlock advanced features in the settings page before actually using them
          • Settings page layout
          • Tiles image on Windows 10

        1.5.4

        • Add
          • Game Launcher
            • Game resource package download
            • Allow multiple Genshin Impact process to run
            • Allow users to select the specified monitor to start the game
          • New icons have been used
        • Fix
          • Issue caused unlimited file writing during server switch
        • Optimization
          • Optimize default language selection
          • Allow device ID be copied with button
          • Setting page UI optimization

        1.5.1

        • Optimization
          • Replace JumpList menus with JumpTask,
          • Add option to allow user set language over system default setting
          • Add translation contribution entry
          • Add options to reset the image resource
        • Add
          • Monster WIKI
          • Korean translation
          • Internationalized Metadata

        1.4.15

        ',8),ht=e("li",null,[i("New "),e("ul",null,[e("li",null,"Static image reset method"),e("li",null,"Cookie refresh")])],-1),ct=e("li",null,"Fix the failure of clearing scheduled task in some specific situations",-1),pt={href:"https://github.com/DGP-Studio/Snap.Hutao/issues/486",target:"_blank",rel:"noopener noreferrer"},gt=e("li",null,"Optimize English and Traditional Chinese translations",-1),_t=e("li",null,"Add hints when Windows long path limits are triggered",-1),mt=e("li",null,"Optimize wake-up for scheduled tasks",-1),ft=e("h2",{id:"_1-4-14",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-4-14","aria-hidden":"true"},"#"),i(" 1.4.14")],-1),bt=e("ul",null,[e("li",null,"Fix issue that new dev plan cannot be added"),e("li",null,"Support English UI"),e("li",null,"Other minor bug fix")],-1),wt=e("h2",{id:"_1-4-11",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#_1-4-11","aria-hidden":"true"},"#"),i(" 1.4.11")],-1),St=e("ul",null,[e("li",null,"First version on Microsoft Store")],-1);function xt(vt,kt){const o=a("Badge"),n=a("ExternalLinkIcon"),s=a("RouterLink");return u(),d("div",null,[p,e("h2",g,[_,i(" 1.8.1 "),t(o,{text:"latest",type:"tip"})]),e("ul",null,[e("li",null,[i("Add "),e("ul",null,[e("li",null,[i("Added Discord Activity synchronization functions in "),m,i(", it syncs game status when playing Genshin Impact "),e("a",f,[i("#1082"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed the issue where navigating from "),b,i(" page "),w,i(" panel to "),S,i(" page would not synchronize the navigation bar options "),e("a",x,[i("#1116"),t(n)])]),e("li",null,[i("Fixed the issue that "),v,i(" feature cannot bind with "),k,i(" key "),e("a",y,[i("#1119"),t(n)])]),e("li",null,[i("Fixed item refresh issue after switching plans in "),F,i(),e("a",H,[i("#1099"),t(n)])]),e("li",null,[i("Fixed issue that only blank name json file can be imported in "),A,i(" page "),e("a",P,[i("#1124"),t(n)])]),e("li",null,[i("Fixed full package download link under "),D,i(" page in "),G,i(", it is replaced with split files link "),e("a",I,[i("#1126"),t(n)])]),e("li",null,[i("Fixed the notification issues from "),z,i(", includes wrong content, repeated notifications and unexpectedly bypass client mode "),e("a",C,[i("#1123"),t(n)])])])]),e("li",null,[i("Optimization "),e("ul",null,[e("li",null,[i("Added overtime refresh rules for Fingerprint/CookieToken, users don't need to click "),O,i(" in "),U,i(" so often "),e("a",R,[i("#1121"),t(n)])]),B,e("li",null,[i("Added hint text when there is no signed in MiHoYo BBS account "),e("a",N,[i("#1127"),t(n)])])])])]),W,e("ul",null,[e("li",null,[L,i(),e("a",E,[i("#1103"),t(n)])]),e("li",null,[i("Fixes "),e("ul",null,[e("li",null,[i("Fixed translation issues with "),M,i(" registration/logoff/reset password prompts "),e("a",T,[i("#1087"),t(n)]),i(" by @Tangweirui2021")]),e("li",null,[i("Fixed an issue with the first-row items on the "),j,i(" page not refreshing correctly after switching plans "),e("a",Y,[i("#1099"),t(n)])]),e("li",null,[i("Fixed an issue on the "),K,i(" page where borderless and exclusive fullscreen could not be set simultaneously "),e("a",V,[i("#1106"),t(n)])]),e("li",null,[i("Replaced the file pickers implementation, resolving the problem of being unable to use the file pickers under administrator privilege "),e("a",J,[i("#1096"),t(n)])]),q,Q,X])]),Z]),$,e("ul",null,[e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed the issue that the first item in Dev Plan won't be refresh after switching the plan "),e("a",ee,[i("#1079"),t(n)])]),e("li",null,[i("Fixed the issue that wish record URL for global server cannot be found "),e("a",ie,[i("#1081"),t(n)])]),te,ne,oe,le,ae])]),e("li",null,[i("Optimization "),e("ul",null,[se,e("li",null,[i("Auto click feature now can be switched off and hot key can be changed "),e("a",re,[i("#961"),t(n)])]),e("li",null,[i("Added support of UIGF v2.4 format import and export "),e("ul",null,[e("li",null,[i("Added time zone inference based on account's server "),e("a",ue,[i("#830"),t(n)])])])])])])]),de,e("ul",null,[e("li",null,[i("Add "),e("ul",null,[e("li",null,[i("Add screen resolution quick switch dropdown in Game Launcher "),e("a",he,[i("#1062"),t(n)])]),e("li",null,[i("Add support to allow user to cooperate "),e("a",ce,[i("Starward"),t(n)]),i(" with Snap Hutao to collect game play time stats "),e("a",pe,[i("#1071"),t(n)])]),e("li",null,[i("Add resource download link copy option in Game Launcher "),e("a",ge,[i("#1074"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed issue that MiHoYo BBS returns "),_e,i(" error when fetching data "),e("a",me,[i("#1060"),t(n)])]),e("li",null,[i("Fixed issue that page cannot be scrolled in some particular situations "),e("a",fe,[i("#1068"),t(n)]),i(),e("a",be,[i("#1072"),t(n)])]),e("li",null,[i("Fixed issue that characters' skill levels are not shown in My Character "),e("a",we,[i("#1069"),t(n)])])])]),e("li",null,[i("Optimization "),e("ul",null,[e("li",null,[i("Optimized update log display logic "),e("a",Se,[i("#1015"),t(n)])]),e("li",null,[i("User's setting selection on each button will be memorized in global scope "),e("a",xe,[i("#778"),t(n)])]),ve])])]),ke,e("ul",null,[e("li",null,[i("Add "),e("ul",null,[e("li",null,[i("Added option to recover full wish history record backup from Snap Hutao Cloud service into new archive "),e("a",ye,[i("#886"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed issue that invalid game launching parameter can be parsed; added switch for some launch parameters "),e("a",Fe,[i("#1061"),t(n)])]),e("li",null,[i("Fixed issue that user cannot register Snap Hutao account in the client "),e("a",He,[i("#1059"),t(n)])]),Ae])]),Pe]),e("h2",De,[Ge,i(" 1.7.14 "),t(o,{text:"hotfix",type:"tip"})]),e("ul",null,[e("li",null,[i("Fixed an issue causes the program to crash when opening some specific dialog boxes "),e("a",Ie,[i("#1052"),t(n)]),i(),e("a",ze,[i("#1054"),t(n)])])]),Ce,e("ul",null,[e("li",null,[i("Add "),e("ul",null,[e("li",null,[i("Added option to forward Realtime Note data to specified webhook "),e("a",Oe,[i("#431"),t(n)])]),e("li",null,[i("Added date range of wish history records "),e("a",Ue,[i("#899"),t(n)])]),e("li",null,[i("Added detail view of Adventure Encounter Points in Realtime Note, support view of current Adventure Encounter Points status "),e("a",Re,[i("#1021"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed "),Be,i(" when using quick launcher from task bar in some conditions "),e("a",Ne,[i("#925"),t(n)])]),e("li",null,[i("Fixed crash issue when using advanced launcher in some conditions "),e("a",We,[i("#1035"),t(n)])]),e("li",null,[i("Fixed issue that cannot go back on embedded MiHoYo BBS browser "),e("a",Le,[i("#1023"),t(n)])]),e("li",null,[i("Fixed issue on converting server from bilibili server to global server "),e("a",Ee,[i("#1041"),t(n)])]),Me,e("li",null,[i("Fixed issue on Snap Hutao Cloud status on wish export page, after switching Snap Hutao account "),e("a",Te,[i("#903"),t(n)])])])]),e("li",null,[i("Optimization "),e("ul",null,[je,e("li",null,[i("Redesigned Snap Hutao Passport UI, and now it is embedded in settings page "),e("a",Ye,[i("#911"),t(n)])]),Ke,Ve])])]),e("h2",Je,[qe,i(" 1.7.11 "),t(o,{text:"hotfix",type:"tip"})]),Qe,Xe,e("ul",null,[e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed login issue with HoYoverse account "),e("a",Ze,[i("#1011"),t(n)]),i(),e("a",$e,[i("#1012"),t(n)])]),e("li",null,[i("Fixed daily check-in issue on HoYoLAB account "),e("a",ei,[i("#1013"),t(n)])]),e("li",null,[i("Fixed issue that "),ii,i(" error show up when language does not match in UIGFv2.2 data file "),e("a",ti,[i("#1001"),t(n)])]),ni,oi,li,ai,si])]),ri]),ui,e("ul",null,[e("li",null,[i("Fix "),e("ul",null,[di,e("li",null,[i("Fixed login issue of MiHoYo BBS "),e("a",hi,[i("#1005"),t(n)])]),e("li",null,[i("Fixed HoYoverse login issue "),e("a",ci,[i("#1007"),t(n)])]),pi,e("li",null,[i("Fixed UI display issue on Team Lineup page in Spiral Abyss feature "),e("a",gi,[i("#1008"),t(n)])])])])]),_i,e("ul",null,[mi,e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed crash issue when switching account after validating cookie on Realtime Notes page "),e("a",fi,[i("#947"),t(n)])]),e("li",null,[i("Fixed failure of matching current in-game account after rebooting Snap Hutao and game client "),e("a",bi,[i("#865"),t(n)])]),e("li",null,[i("Fixed display issue on Achievement page "),e("a",wi,[i("#956"),t(n)])]),Si])]),xi]),e("h2",vi,[ki,i(" 1.7.5 "),t(o,{text:"latest",type:"tip"})]),e("ul",null,[e("li",null,[i("Add "),e("ul",null,[yi,e("li",null,[i("Added monster waves data in Abyss Data page (data provided by "),e("a",Fi,[i("@妮可少女"),t(n)]),i(")")]),e("li",null,[i("Added Microsoft Store rating button on settings page "),e("a",Hi,[i("#876"),t(n)])]),e("li",null,[i("Added a document button above user panel, user will be redirected to current page's document when click on it "),e("a",Ai,[i("#875"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed game launcher card on dashboard showing empty account issue "),e("a",Pi,[i("#924"),t(n)])]),e("li",null,[i("Fixed achievement status cannot be saved when be manually unchecked "),e("a",Di,[i("#880"),t(n)])]),Gi,Ii])]),e("li",null,[i("Optimizations "),e("ul",null,[e("li",null,[i("Optimized some error messages, added solution hints "),e("a",zi,[i("#930"),t(n)])]),e("li",null,[i("Snap Hutao Announcements content on dashboard now is copyable "),e("a",Ci,[i("#929"),t(n)])]),Oi,Ui])])]),e("h2",Ri,[Bi,i(" 1.7.4 "),t(o,{text:"latest",type:"tip"})]),e("ul",null,[e("li",null,[i("Add "),e("ul",null,[Ni,e("li",null,[i("Added option to create desktop shortcut in settings page "),e("a",Wi,[i("#912"),t(n)])]),Li,Ei])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fixed an issue which event start time is not accurate on Home Dashboard "),e("a",Mi,[i("#887"),t(n)])]),e("li",null,[i("Fixed an issue on My Character page that caused crashes when clicking on weapon that is not synchronized by Enka API "),e("a",Ti,[i("#904"),t(n)])]),e("li",null,[i("Fixed an issue of weapon value display error on My Character page "),e("a",ji,[i("#907"),t(n)])]),e("li",null,[i("Fixed an issue where Bilibili server cannot be converted to some other servers "),e("a",Yi,[i("#893"),t(n)])]),e("li",null,[i("Fixed an issue where fetching Novice Wish history will cause the program to crash "),e("a",Ki,[i("#917"),t(n)])]),Vi,Ji])]),qi]),Qi,e("ul",null,[e("li",null,[i("New "),e("ul",null,[e("li",null,[i("Japanese is now a new language option; community members can contribute Japanese language on "),e("a",Xi,[i("translate.hut.ao"),t(n)])])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Issue that cannot add weapons to dev plan "),e("a",Zi,[i("Issue #745"),t(n)])]),e("li",null,[i("Issue on some users failed to unlock frame rate limit under certain environment "),e("a",$i,[i("Issue #747"),t(n)])])])]),e("li",null,[i("Optimize "),e("ul",null,[et,it,e("li",null,[i("Sorting order of materials in dev plan "),e("a",tt,[i("Issue #749"),t(n)])])])])]),nt,e("ul",null,[e("li",null,[i("New "),e("ul",null,[e("li",null,[i("Export wish history data with "),e("a",ot,[i("UIGF v2.3"),t(n)]),i(" data format")])])]),e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("FPS unlocker "),e("a",lt,[i("Issue #733"),t(n)])])])]),at]),st,e("h2",rt,[ut,i(" 1.6.2 "),t(o,{text:"latest",type:"tip"})]),dt,e("ul",null,[ht,e("li",null,[i("Fix "),e("ul",null,[e("li",null,[i("Fix "),t(s,{to:"/advanced/known-issue.html#_2-%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%88%87%E6%8D%A2%E5%AF%BC%E8%87%B431-4302%E6%8A%A5%E9%94%99"},{default:h(()=>[i("#2 31-4302 caused by server switch")]),_:1})]),ct])]),e("li",null,[i("Optimization "),e("ul",null,[e("li",null,[i("Optimize Dev Plan UI "),e("a",pt,[i("#486"),t(n)])]),gt,_t,mt])])]),ft,bt,wt,St])}const Ht=r(c,[["render",xt],["__file","update-log.html.vue"]]);export{Ht as default}; diff --git a/assets/weapon-wiki.html-dcbaafb6.js b/assets/weapon-wiki.html-a2df1cbf.js similarity index 95% rename from assets/weapon-wiki.html-dcbaafb6.js rename to assets/weapon-wiki.html-a2df1cbf.js index 696fd6a90..68d4e34e4 100644 --- a/assets/weapon-wiki.html-dcbaafb6.js +++ b/assets/weapon-wiki.html-a2df1cbf.js @@ -1 +1 @@ -import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as e,e as t}from"./app-8966c29b.js";const a={},o=t('

        武器资料

        weapon-wiki

        武器资料是胡桃工具箱中内置的用于查询各个武器的外观、参数、精炼效果、推荐搭配等数据的 Wiki

        已包含的数据

        • 武器列表
          • 使用列表左上角的按钮,可切换列表显示的方式:即"缩略图与名称"或"仅缩略图"
          • 单击列表中的缩略图或名称,即可跳转到相应的介绍页面
        • 数据内容
          • 武器基本信息
            • 突破前后的武器图标对比
            • 对应武器的立绘展示
            • 武器的简介内容
            • 可切换至对应等级的武器各项数值
          • 武器精炼信息
            • 对应精炼阶数的精炼属性
          • 武器养成材料
          • 根据胡桃数据库的统计信息而展示的武器使用的相关推荐
        ',5),r=[o];function n(s,c){return l(),e("div",null,r)}const h=i(a,[["render",n],["__file","weapon-wiki.html.vue"]]);export{h as default}; +import{_ as i}from"./plugin-vue_export-helper-c27b6911.js";import{o as l,c as e,e as t}from"./app-5a96e1e2.js";const a={},o=t('

        武器资料

        weapon-wiki

        武器资料是胡桃工具箱中内置的用于查询各个武器的外观、参数、精炼效果、推荐搭配等数据的 Wiki

        已包含的数据

        • 武器列表
          • 使用列表左上角的按钮,可切换列表显示的方式:即"缩略图与名称"或"仅缩略图"
          • 单击列表中的缩略图或名称,即可跳转到相应的介绍页面
        • 数据内容
          • 武器基本信息
            • 突破前后的武器图标对比
            • 对应武器的立绘展示
            • 武器的简介内容
            • 可切换至对应等级的武器各项数值
          • 武器精炼信息
            • 对应精炼阶数的精炼属性
          • 武器养成材料
          • 根据胡桃数据库的统计信息而展示的武器使用的相关推荐
        ',5),r=[o];function n(s,c){return l(),e("div",null,r)}const h=i(a,[["render",n],["__file","weapon-wiki.html.vue"]]);export{h as default}; diff --git a/assets/weapon-wiki.html-0edcd288.js b/assets/weapon-wiki.html-c611d75d.js similarity index 95% rename from assets/weapon-wiki.html-0edcd288.js rename to assets/weapon-wiki.html-c611d75d.js index e615e2a6d..4182c228b 100644 --- a/assets/weapon-wiki.html-0edcd288.js +++ b/assets/weapon-wiki.html-c611d75d.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as i,e as n}from"./app-8966c29b.js";const o={},l=n('

        Weapon WIKI

        weapon-wiki

        Weapon WIKI is a Snap Hutao build-in WIKI feature used to look up each weapon's information

        Included Data

        • Weapon list
          • Use the icon above the list, you can change the view between list and grid
          • Click on weapon's icon or title, and you will be directed to its WIKI page
        • Weapon data
          • Weapon basic information
            • Images of weapon before and after ascension
            • Weapon's main image
            • Weapon's introduction
            • Weapon's numerical value at value you switch to
          • Weapon refinement data
            • Weapon's numerical value at each refinement level
          • Weapon's ascension materials
          • Weapon's most used by characters data provided by Hutao Database
        ',5),t=[l];function s(c,d){return a(),i("div",null,t)}const u=e(o,[["render",s],["__file","weapon-wiki.html.vue"]]);export{u as default}; +import{_ as e}from"./plugin-vue_export-helper-c27b6911.js";import{o as a,c as i,e as n}from"./app-5a96e1e2.js";const o={},l=n('

        Weapon WIKI

        weapon-wiki

        Weapon WIKI is a Snap Hutao build-in WIKI feature used to look up each weapon's information

        Included Data

        • Weapon list
          • Use the icon above the list, you can change the view between list and grid
          • Click on weapon's icon or title, and you will be directed to its WIKI page
        • Weapon data
          • Weapon basic information
            • Images of weapon before and after ascension
            • Weapon's main image
            • Weapon's introduction
            • Weapon's numerical value at value you switch to
          • Weapon refinement data
            • Weapon's numerical value at each refinement level
          • Weapon's ascension materials
          • Weapon's most used by characters data provided by Hutao Database
        ',5),t=[l];function s(c,d){return a(),i("div",null,t)}const u=e(o,[["render",s],["__file","weapon-wiki.html.vue"]]);export{u as default}; diff --git a/assets/wish-export.html-fba13e79.js b/assets/wish-export.html-60af732a.js similarity index 99% rename from assets/wish-export.html-fba13e79.js rename to assets/wish-export.html-60af732a.js index 315175d58..45d5db4a2 100644 --- a/assets/wish-export.html-fba13e79.js +++ b/assets/wish-export.html-60af732a.js @@ -1 +1 @@ -import{_ as h}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as c,c as d,a as e,b as t,d as o,w as s,e as a}from"./app-8966c29b.js";const u={},p=e("h1",{id:"wish-history",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#wish-history","aria-hidden":"true"},"#"),t(" Wish History")],-1),f=e("p",null,[t("Gacha is one of the core gameplay in Genshin Impact. Whether it's for commemorative and show-off purposes, or for serious planning for a gacha strategy, it's very important to perform statical analysis on historical gacha record. However, Genshin Impact only provides players with six months of gacha records, which is not user-friendly "),e("s",null,"(although they still keep tracking how many Timmie's pigeons you've killed for the whole year)")],-1),y=e("p",null,"Therefore, we need to use the gacha records from these six months to retrieve the data and transfer the record to our local device. This is the purpose of wish history export feature in Snap Hutao.",-1),m=a('

        wish export

        As shown in the above figure, through the wish history feature in Snap Hutao, you can clearly obtain the following information: total number of wishes, current pity count, quantity and percentage of obtained items with different rarity, number of times a 5-star rarity item was not obtained and the current pity status.

        Additionally, user with Hutao Cloud can view prediction data calculated by Hutao Cloud server

        Delay in Gacha Data Export

        Snap Hutao retrieves gacha records from the MiHoYo servers, which means that recently made wishes may not be immediately available. When you see the latest batch of gacha records in the game's own history, then you can then obtain the corresponding statistics from Snap Hutao.

        Fetch Wish History

        ',5),w={id:"refresh-with-stoken-cookie",tabindex:"-1"},g=e("a",{class:"header-anchor",href:"#refresh-with-stoken-cookie","aria-hidden":"true"},"#",-1),_={class:"hint-container info"},b=e("p",{class:"hint-container-title"},"Hint",-1),x=e("li",null,[e("strong",null,"SToken Cookie refresh method does not support global server (HoYoLAB)")],-1),v=e("ul",null,[e("li",null,"Make sure the account you want to refresh wish history has been signed in to Snap Hutao"),e("li",null,[t("Switch to "),e("code",null,"Wish History"),t(" feature page in Snap Hutao")]),e("li",null,[t("Click on "),e("code",null,"Refresh"),t(" button and select "),e("code",null,"SToken Refresh")]),e("li",null,"Wait for refresh task to complete")],-1),S={id:"refresh-with-web-cache",tabindex:"-1"},H=e("a",{class:"header-anchor",href:"#refresh-with-web-cache","aria-hidden":"true"},"#",-1),k=a('
        • Switch to Wish History feature page in Snap Hutao
        • Start the game, go to in-game wish history page
        • Go back to Snap Hutao, clock on Refresh button and select Refresh with Web Cache
        • Wait for refresh task to complete

        Tips

        If errors keep occur:

        • Go to settings page in Snap Hutao
        • Execute operation Delete game embeeded browser web cache
        ',2),C={id:"refresh-with-manually-input-url",tabindex:"-1"},I=e("a",{class:"header-anchor",href:"#refresh-with-manually-input-url","aria-hidden":"true"},"#",-1),G=a('
        • If you get your personal wish history URL, you can select Manual Input and submit your wish history URL
        • Be aware that the URL is time-sensitive

        Explanation on Full Refresh Option

        By default, Snap Hutao will stop importing gacha records once it matches a Wish ID that already exists locally. However, if you wish to obtain all the historical records from the Genshin Impact servers (even if they are already present in your local wish history), you can check the "Full Refresh" option.

        Not selecting Full Refresh will not cause you to lose your wishing data, and selecting Full Refresh will not cause your local records to mistakenly record the same wishing data twice.

        ',4),R={id:"import-wish-history-data-from-other-applications",tabindex:"-1"},W=e("a",{class:"header-anchor",href:"#import-wish-history-data-from-other-applications","aria-hidden":"true"},"#",-1),B=a('

        Snap Hutao supports importing wish history data file that in UIGF data format[1]

        If you need to import such type of data, you can:

        • Start Snap Hutao, switch to Wish History feature page
        • Select Import
        • Select your UIGF Json data file
        • Check the imported file information and confirm to import
        ',3),U={id:"export-wish-history-data",tabindex:"-1"},F=e("a",{class:"header-anchor",href:"#export-wish-history-data","aria-hidden":"true"},"#",-1),A=e("p",null,"Snap Hutao support exporting wish history data to a Json file written in UIGF data format",-1),D=e("p",null,"If you need to export the wish history data, you can:",-1),T=e("ul",null,[e("li",null,[t("Start Snap Hutao, switch to "),e("code",null,"Wish History"),t(" feature page")]),e("li",null,[t("Switch to the archive you want to export, and select "),e("code",null,"Export"),e("ul",null,[e("li",null,"In the pop-up window, confirm your export path")])]),e("li",null,"Confirm and export data")],-1),E={id:"wish-history-cloud-sync",tabindex:"-1"},L=e("a",{class:"header-anchor",href:"#wish-history-cloud-sync","aria-hidden":"true"},"#",-1),Y=a('

        Wish history cloud sync is designed on Snap Hutao Account. You need to register an account in the settings to use this feature

        With this feature, you can upload your wish history to Hutao Cloud, to avoid risk of losing data, and make it easier to transfer data between devices.

        Cloud Sync Privilege

        Cloud synchronization is a service uses Snap Hutao's server resource, so it is a time-limited feature. Currently, you have the following ways to enable Cloud Sync:

        1. Donate us on AiFaDian. The privilege will automatically assigned to Snap Hutao Account with same email address on AiFaDian
        2. For all registered user, after upload Abyss record in each schedule, 3-day privilege will be automatically assigned
          • This is a method you can constantly use benefit of Hutao Cloud
        3. Users who make contributions to our open-source community, including code development, program designing, localization translations, can contact the dev team to get your benefit for free
          • We are designing an automation system to auto assign license to our contributors, it will be live with more development of Hutao Cloud

        After your Hutao Cloud privilege expired, you will not be able to upload, download or delete your data, but your data will not be removed. You can continue to operate it once you get your privilege again.

        Upload

        • In wish export page, select the archive you need to sync data
        • Click Snap Hutao Cloud button on the top right
        • Click Upload Current Wish Archive, and then your data will be backup to the cloud

        Download

        • In wish export page, Click Snap Hutao Cloud button on the top right
        • Click download button on the right side of UID which data needs to be downloaded

        Delete

        • In wish export page, Click Snap Hutao Cloud button on the top right
        • Click delete button on the right side of UID which data needs to be deleted

        ',13),M={class:"footnotes"},q={class:"footnotes-list"},N={id:"footnote1",class:"footnote-item"},z={href:"https://uigf.org/",target:"_blank",rel:"noopener noreferrer"},O=e("a",{href:"#footnote-ref1",class:"footnote-backref"},"↩︎",-1);function V(J,P){const r=n("RouterLink"),i=n("Badge"),l=n("ExternalLinkIcon");return c(),d("div",null,[p,f,y,e("p",null,[t("Regarding the technical principles of exporting Genshin Impact gacha records, you can refer to our article on "),o(r,{to:"/en/advanced/Gacha-system-and-export-principal.html"},{default:s(()=>[t("Gacha System and Export Principles")]),_:1})]),m,e("h3",w,[g,t(" Refresh with SToken Cookie "),o(i,{text:"Recommend",type:"tip"})]),e("div",_,[b,e("ul",null,[e("li",null,[t("This method requires user to sign in to MiHoYo BBS account in Snap Hutao, refer to "),o(r,{to:"/en/features/mhy-account-switch.html"},{default:s(()=>[t("MiHoYo BBS Account Switch")]),_:1}),t(" to get to know how to login to your MiHoYo BBS account")]),x])]),v,e("h3",S,[H,t(" Refresh with Web Cache "),o(i,{text:"Global Server Supported",type:"tip"})]),k,e("h3",C,[I,t(" Refresh with Manually Input URL "),o(i,{text:"Global Server Supported",type:"tip"})]),G,e("h3",R,[W,t(" Import Wish History Data from Other Applications "),o(i,{text:"UIGF",type:"info"})]),B,e("h2",U,[F,t(" Export Wish History Data "),o(i,{text:"UIGF",type:"info"})]),A,D,T,e("h2",E,[L,t(" Wish History Cloud Sync "),o(i,{text:"Beta",type:"info"})]),Y,e("section",M,[e("ol",q,[e("li",N,[e("p",null,[t("Unified Standardized GenshinData Format is provided by "),e("a",z,[t("UIGF-Org"),o(l)]),t(),O])])])])])}const Q=h(u,[["render",V],["__file","wish-export.html.vue"]]);export{Q as default}; +import{_ as h}from"./plugin-vue_export-helper-c27b6911.js";import{r as n,o as c,c as d,a as e,b as t,d as o,w as s,e as a}from"./app-5a96e1e2.js";const u={},p=e("h1",{id:"wish-history",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#wish-history","aria-hidden":"true"},"#"),t(" Wish History")],-1),f=e("p",null,[t("Gacha is one of the core gameplay in Genshin Impact. Whether it's for commemorative and show-off purposes, or for serious planning for a gacha strategy, it's very important to perform statical analysis on historical gacha record. However, Genshin Impact only provides players with six months of gacha records, which is not user-friendly "),e("s",null,"(although they still keep tracking how many Timmie's pigeons you've killed for the whole year)")],-1),y=e("p",null,"Therefore, we need to use the gacha records from these six months to retrieve the data and transfer the record to our local device. This is the purpose of wish history export feature in Snap Hutao.",-1),m=a('

        wish export

        As shown in the above figure, through the wish history feature in Snap Hutao, you can clearly obtain the following information: total number of wishes, current pity count, quantity and percentage of obtained items with different rarity, number of times a 5-star rarity item was not obtained and the current pity status.

        Additionally, user with Hutao Cloud can view prediction data calculated by Hutao Cloud server

        Delay in Gacha Data Export

        Snap Hutao retrieves gacha records from the MiHoYo servers, which means that recently made wishes may not be immediately available. When you see the latest batch of gacha records in the game's own history, then you can then obtain the corresponding statistics from Snap Hutao.

        Fetch Wish History

        ',5),w={id:"refresh-with-stoken-cookie",tabindex:"-1"},g=e("a",{class:"header-anchor",href:"#refresh-with-stoken-cookie","aria-hidden":"true"},"#",-1),_={class:"hint-container info"},b=e("p",{class:"hint-container-title"},"Hint",-1),x=e("li",null,[e("strong",null,"SToken Cookie refresh method does not support global server (HoYoLAB)")],-1),v=e("ul",null,[e("li",null,"Make sure the account you want to refresh wish history has been signed in to Snap Hutao"),e("li",null,[t("Switch to "),e("code",null,"Wish History"),t(" feature page in Snap Hutao")]),e("li",null,[t("Click on "),e("code",null,"Refresh"),t(" button and select "),e("code",null,"SToken Refresh")]),e("li",null,"Wait for refresh task to complete")],-1),S={id:"refresh-with-web-cache",tabindex:"-1"},H=e("a",{class:"header-anchor",href:"#refresh-with-web-cache","aria-hidden":"true"},"#",-1),k=a('
        • Switch to Wish History feature page in Snap Hutao
        • Start the game, go to in-game wish history page
        • Go back to Snap Hutao, clock on Refresh button and select Refresh with Web Cache
        • Wait for refresh task to complete

        Tips

        If errors keep occur:

        • Go to settings page in Snap Hutao
        • Execute operation Delete game embeeded browser web cache
        ',2),C={id:"refresh-with-manually-input-url",tabindex:"-1"},I=e("a",{class:"header-anchor",href:"#refresh-with-manually-input-url","aria-hidden":"true"},"#",-1),G=a('
        • If you get your personal wish history URL, you can select Manual Input and submit your wish history URL
        • Be aware that the URL is time-sensitive

        Explanation on Full Refresh Option

        By default, Snap Hutao will stop importing gacha records once it matches a Wish ID that already exists locally. However, if you wish to obtain all the historical records from the Genshin Impact servers (even if they are already present in your local wish history), you can check the "Full Refresh" option.

        Not selecting Full Refresh will not cause you to lose your wishing data, and selecting Full Refresh will not cause your local records to mistakenly record the same wishing data twice.

        ',4),R={id:"import-wish-history-data-from-other-applications",tabindex:"-1"},W=e("a",{class:"header-anchor",href:"#import-wish-history-data-from-other-applications","aria-hidden":"true"},"#",-1),B=a('

        Snap Hutao supports importing wish history data file that in UIGF data format[1]

        If you need to import such type of data, you can:

        • Start Snap Hutao, switch to Wish History feature page
        • Select Import
        • Select your UIGF Json data file
        • Check the imported file information and confirm to import
        ',3),U={id:"export-wish-history-data",tabindex:"-1"},F=e("a",{class:"header-anchor",href:"#export-wish-history-data","aria-hidden":"true"},"#",-1),A=e("p",null,"Snap Hutao support exporting wish history data to a Json file written in UIGF data format",-1),D=e("p",null,"If you need to export the wish history data, you can:",-1),T=e("ul",null,[e("li",null,[t("Start Snap Hutao, switch to "),e("code",null,"Wish History"),t(" feature page")]),e("li",null,[t("Switch to the archive you want to export, and select "),e("code",null,"Export"),e("ul",null,[e("li",null,"In the pop-up window, confirm your export path")])]),e("li",null,"Confirm and export data")],-1),E={id:"wish-history-cloud-sync",tabindex:"-1"},L=e("a",{class:"header-anchor",href:"#wish-history-cloud-sync","aria-hidden":"true"},"#",-1),Y=a('

        Wish history cloud sync is designed on Snap Hutao Account. You need to register an account in the settings to use this feature

        With this feature, you can upload your wish history to Hutao Cloud, to avoid risk of losing data, and make it easier to transfer data between devices.

        Cloud Sync Privilege

        Cloud synchronization is a service uses Snap Hutao's server resource, so it is a time-limited feature. Currently, you have the following ways to enable Cloud Sync:

        1. Donate us on AiFaDian. The privilege will automatically assigned to Snap Hutao Account with same email address on AiFaDian
        2. For all registered user, after upload Abyss record in each schedule, 3-day privilege will be automatically assigned
          • This is a method you can constantly use benefit of Hutao Cloud
        3. Users who make contributions to our open-source community, including code development, program designing, localization translations, can contact the dev team to get your benefit for free
          • We are designing an automation system to auto assign license to our contributors, it will be live with more development of Hutao Cloud

        After your Hutao Cloud privilege expired, you will not be able to upload, download or delete your data, but your data will not be removed. You can continue to operate it once you get your privilege again.

        Upload

        • In wish export page, select the archive you need to sync data
        • Click Snap Hutao Cloud button on the top right
        • Click Upload Current Wish Archive, and then your data will be backup to the cloud

        Download

        • In wish export page, Click Snap Hutao Cloud button on the top right
        • Click download button on the right side of UID which data needs to be downloaded

        Delete

        • In wish export page, Click Snap Hutao Cloud button on the top right
        • Click delete button on the right side of UID which data needs to be deleted

        ',13),M={class:"footnotes"},q={class:"footnotes-list"},N={id:"footnote1",class:"footnote-item"},z={href:"https://uigf.org/",target:"_blank",rel:"noopener noreferrer"},O=e("a",{href:"#footnote-ref1",class:"footnote-backref"},"↩︎",-1);function V(J,P){const r=n("RouterLink"),i=n("Badge"),l=n("ExternalLinkIcon");return c(),d("div",null,[p,f,y,e("p",null,[t("Regarding the technical principles of exporting Genshin Impact gacha records, you can refer to our article on "),o(r,{to:"/en/advanced/Gacha-system-and-export-principal.html"},{default:s(()=>[t("Gacha System and Export Principles")]),_:1})]),m,e("h3",w,[g,t(" Refresh with SToken Cookie "),o(i,{text:"Recommend",type:"tip"})]),e("div",_,[b,e("ul",null,[e("li",null,[t("This method requires user to sign in to MiHoYo BBS account in Snap Hutao, refer to "),o(r,{to:"/en/features/mhy-account-switch.html"},{default:s(()=>[t("MiHoYo BBS Account Switch")]),_:1}),t(" to get to know how to login to your MiHoYo BBS account")]),x])]),v,e("h3",S,[H,t(" Refresh with Web Cache "),o(i,{text:"Global Server Supported",type:"tip"})]),k,e("h3",C,[I,t(" Refresh with Manually Input URL "),o(i,{text:"Global Server Supported",type:"tip"})]),G,e("h3",R,[W,t(" Import Wish History Data from Other Applications "),o(i,{text:"UIGF",type:"info"})]),B,e("h2",U,[F,t(" Export Wish History Data "),o(i,{text:"UIGF",type:"info"})]),A,D,T,e("h2",E,[L,t(" Wish History Cloud Sync "),o(i,{text:"Beta",type:"info"})]),Y,e("section",M,[e("ol",q,[e("li",N,[e("p",null,[t("Unified Standardized GenshinData Format is provided by "),e("a",z,[t("UIGF-Org"),o(l)]),t(),O])])])])])}const Q=h(u,[["render",V],["__file","wish-export.html.vue"]]);export{Q as default}; diff --git a/assets/wish-export.html-0565104e.js b/assets/wish-export.html-c0178db9.js similarity index 99% rename from assets/wish-export.html-0565104e.js rename to assets/wish-export.html-c0178db9.js index 28b8aed28..3b5b6c7c8 100644 --- a/assets/wish-export.html-0565104e.js +++ b/assets/wish-export.html-c0178db9.js @@ -1 +1 @@ -import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as h,c as r,a as e,b as o,d as i,w as s,e as n}from"./app-8966c29b.js";const _={},p=e("h1",{id:"祈愿记录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#祈愿记录","aria-hidden":"true"},"#"),o(" 祈愿记录")],-1),u=e("p",null,[o("抽卡是原神的核心玩法之一,无论是出于纪念、炫耀的目的还是认真规划抽取计划,对历史抽卡进行统计分析都是非常重要的。 但是原神官方只为玩家提供了半年的抽卡记录,这是很不友好的("),e("s",null,"但是他们还是统计了你一整年杀了多少提米的鸽子"),o(")。")],-1),f=e("p",null,"因此,我们需要利用这半年的抽卡记录调取窗口,将抽卡记录转移到我们自己手中,这就是胡桃工具箱中祈愿记录导出功能的目的所在。",-1),x=e("strong",null,"祈愿系统与导出原理",-1),g=n('

        祈愿导出

        如上图所示,从胡桃工具箱的祈愿导出功能,你可以清晰地获取到包括:抽卡总数、当前已垫抽数、不同稀有度获取的数量和百分比、 每次五星稀有度获取的抽数以及保底情况。胡桃云用户可以额外地获取由云端服务器计算的抽卡预测数据。

        原神抽卡记录的延迟性

        胡桃工具箱获取抽卡记录的来源也为米哈游服务器,因此短时间内刚刚结束的抽卡无法被获取。 当你在游戏内抽卡历史记录中看到了最新的一批抽卡记录,则可以在胡桃中获取统计数据。

        获取祈愿数据

        ',4),b={id:"利用-stoken-从服务器获取最新的祈愿记录",tabindex:"-1"},m=e("a",{class:"header-anchor",href:"#利用-stoken-从服务器获取最新的祈愿记录","aria-hidden":"true"},"#",-1),k={class:"hint-container info"},G=e("p",{class:"hint-container-title"},"提示",-1),U=e("li",null,"SToken 刷新方法暂不支持国际服",-1),I=e("ul",null,[e("li",null,"在胡桃工具箱中确保你需要获取记录的米游社帐号已登录"),e("li",null,[o("从左侧菜单栏进入"),e("code",null,"祈愿记录")]),e("li",null,[o("点击右上角的"),e("code",null,"刷新"),o(",并点击"),e("code",null,"SToken刷新")]),e("li",null,"等待读取完毕,即可查看最新的祈愿记录")],-1),S={id:"从网页缓存获取最新的祈愿记录",tabindex:"-1"},y=e("a",{class:"header-anchor",href:"#从网页缓存获取最新的祈愿记录","aria-hidden":"true"},"#",-1),v=n('
        • 从左侧菜单栏进入祈愿记录
        • 启动游戏并登入游戏,打开游戏内的祈愿历史记录
        • 回到胡桃工具箱,点击刷新按钮,在刷新菜单中点击网页缓存刷新

        提示

        若出现网页缓存刷新功能异常的情况:

        • 从胡桃工具箱的设置
        • 删除游戏内网页缓存功能中执行删除操作
        ',2),E={id:"通过输入-url-获取祈愿记录",tabindex:"-1"},F=e("a",{class:"header-anchor",href:"#通过输入-url-获取祈愿记录","aria-hidden":"true"},"#",-1),B=n('
        • 如果你通过其它工具获取到了你祈愿历史记录的 Url,可以选择手动输入Url并根据提示操作
        • 但应注意此类 Url 具有时效性

        对于全量刷新选项的补充说明

        在默认情况下,胡桃工具箱会在匹配到本地已有记录的祈愿 ID 后停止导入。 但如果你希望完整地获取原神服务器中所有的历史记录(即使它已经存在于你的本地祈愿记录中),你可以勾选全量刷新

        不勾选全量刷新不会使你丢失祈愿数据,勾选全量刷新也不会让你的本地记录错误地额外记录一次相同的祈愿数据。

        ',4),w={id:"从其它祈愿导出程序导入祈愿数据",tabindex:"-1"},C=e("a",{class:"header-anchor",href:"#从其它祈愿导出程序导入祈愿数据","aria-hidden":"true"},"#",-1),N=n('

        胡桃工具箱支持导入 UIGF 数据格式 的祈愿记录数据[1]

        如果你希望导入这一类数据,可以:

        • 启动胡桃工具箱,从左侧菜单栏进入祈愿记录
        • 点击右上角的导入
        • 选择你的 UIGF Json 数据文件
        • 根据界面确认导入数据

        从 Snap Genshin 转移祈愿记录数据

        如果你希望从 Snap Genshin 中转移祈愿数据至胡桃工具箱,你可以:

        • 升级 Snap Genshin 到最新版本
        • 进入祈愿记录功能
          • 如果你由于无法登录米游社而无法进入 Snap Genshin,可以在胡桃工具箱中登录米游社帐号并复制 Cookie 到 Snap Genshin
        • 点击右上角的功能菜单
        • 通过导出 UIGF Json 文件导出 Json 格式的祈愿记录
        • 在胡桃工具箱中导入该文件
        ',6),T={id:"导出祈愿数据",tabindex:"-1"},J=e("a",{class:"header-anchor",href:"#导出祈愿数据","aria-hidden":"true"},"#",-1),L=n("

        胡桃工具箱支持导出 UIGF数据格式 的 Json 文件格式的祈愿记录数据

        如果你希望导出祈愿数据,可以:

        • 启动胡桃工具箱,从左侧菜单栏进入祈愿记录
        • 选择您要导出的祈愿记录存档
        • 点击导出按钮
          • 在弹出的界面选择您需要将此导出的祈愿记录数据文件存放的位置,并点击导出
        • 导出完成
        ",3),V={id:"祈愿记录云同步",tabindex:"-1"},z=e("a",{class:"header-anchor",href:"#祈愿记录云同步","aria-hidden":"true"},"#",-1),D=n('

        祈愿记录云同步功能基于胡桃云帐号,你需要在设置中注册并登录胡桃帐号以使用该功能

        用户可以使用该功能,将本地的祈愿记录上传到胡桃云,避免珍贵的祈愿记录丢失,方便数据在多设备之间转移。

        云同步权限

        由于云同步是一个消耗胡桃服务器资源的功能,故该功能有时间限制。目前,胡桃提供以下几种启用云同步功能的方法:

        1. 在爱发电上打赏胡桃的用户,我们会向与爱发电邮箱帐号相匹配的胡桃帐号自动增加使用时间作为胡桃工具箱开发团队对打赏用户的感谢
        2. 对于所有注册用户,在每一期深渊第一次成功向胡桃数据库上传深境螺旋挑战记录后,会获得 3 天的同步功能使用时间
          • 你可以通过该方法长期地免费使用胡桃云
        3. 为胡桃工具箱开源社区贡献(包括但不限于代码开发、程序设计、本地化翻译)的用户,可以直接联系开发团队添加时长
          • 我们目前正在设计一个完善而自动化的开发者许可证颁发流程,它将会随着胡桃帐号系统的完善而推出

        当你的胡桃帐号云同步权限过期后,你将无法上传、下载和删除数据,但你的数据不会被删除。你可以在恢复权限后重新操作你的云备份数据。

        上传

        • 在祈愿导出界面,选择你需要同步的祈愿存档
        • 点击右上角的胡桃云按钮
        • 点击上传当前的祈愿存档即可备份当前的存档数据至云端

        下载

        • 在祈愿导出界面,点击右上角的胡桃云按钮
        • 在对应 UID 的帐号右侧点击下载按钮即可下载目标存档的云端数据

        删除

        • 在祈愿导出界面,点击右上角的胡桃云按钮
        • 在对应 UID 的帐号右侧点击删除按钮即可删除目标存档的云端数据

        ',13),R={class:"footnotes"},q={class:"footnotes-list"},A={id:"footnote1",class:"footnote-item"},O={href:"https://uigf.org/",target:"_blank",rel:"noopener noreferrer"},P=e("a",{href:"#footnote-ref1",class:"footnote-backref"},"↩︎",-1);function M(Y,j){const a=l("RouterLink"),t=l("Badge"),d=l("ExternalLinkIcon");return h(),r("div",null,[p,u,f,e("p",null,[o("有关原神祈愿记录导出的技术原理,你可以参阅我们的"),i(a,{to:"/zh/advanced/Gacha-system-and-export-principal.html"},{default:s(()=>[x]),_:1}),o("一文。")]),g,e("h3",b,[m,o(" 利用 SToken 从服务器获取最新的祈愿记录 "),i(t,{text:"推荐",type:"tip"})]),e("div",k,[G,e("ul",null,[e("li",null,[o("已登录的米游社帐号是使用 SToken 刷新方法的前提,你可以参考"),i(a,{to:"/zh/features/mhy-account-switch.html"},{default:s(()=>[o("米游社多帐号切换")]),_:1}),o("一文在胡桃工具箱中登录你的帐号")]),U])]),I,e("h3",S,[y,o(" 从网页缓存获取最新的祈愿记录 "),i(t,{text:"支持国际服",type:"tip"})]),v,e("h3",E,[F,o(" 通过输入 Url 获取祈愿记录 "),i(t,{text:"支持国际服",type:"tip"})]),B,e("h3",w,[C,o(" 从其它祈愿导出程序导入祈愿数据 "),i(t,{text:"UIGF",type:"info"})]),N,e("h2",T,[J,o(" 导出祈愿数据 "),i(t,{text:"UIGF",type:"info"})]),L,e("h2",V,[z,o(" 祈愿记录云同步 "),i(t,{text:"测试功能",type:"info"})]),D,e("section",R,[e("ol",q,[e("li",A,[e("p",null,[o("统一标准化的原神数据格式由 "),e("a",O,[o("UIGF-Org"),i(d)]),o(" 提供 "),P])])])])])}const Q=c(_,[["render",M],["__file","wish-export.html.vue"]]);export{Q as default}; +import{_ as c}from"./plugin-vue_export-helper-c27b6911.js";import{r as l,o as h,c as r,a as e,b as o,d as i,w as s,e as n}from"./app-5a96e1e2.js";const _={},p=e("h1",{id:"祈愿记录",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#祈愿记录","aria-hidden":"true"},"#"),o(" 祈愿记录")],-1),u=e("p",null,[o("抽卡是原神的核心玩法之一,无论是出于纪念、炫耀的目的还是认真规划抽取计划,对历史抽卡进行统计分析都是非常重要的。 但是原神官方只为玩家提供了半年的抽卡记录,这是很不友好的("),e("s",null,"但是他们还是统计了你一整年杀了多少提米的鸽子"),o(")。")],-1),f=e("p",null,"因此,我们需要利用这半年的抽卡记录调取窗口,将抽卡记录转移到我们自己手中,这就是胡桃工具箱中祈愿记录导出功能的目的所在。",-1),x=e("strong",null,"祈愿系统与导出原理",-1),g=n('

        祈愿导出

        如上图所示,从胡桃工具箱的祈愿导出功能,你可以清晰地获取到包括:抽卡总数、当前已垫抽数、不同稀有度获取的数量和百分比、 每次五星稀有度获取的抽数以及保底情况。胡桃云用户可以额外地获取由云端服务器计算的抽卡预测数据。

        原神抽卡记录的延迟性

        胡桃工具箱获取抽卡记录的来源也为米哈游服务器,因此短时间内刚刚结束的抽卡无法被获取。 当你在游戏内抽卡历史记录中看到了最新的一批抽卡记录,则可以在胡桃中获取统计数据。

        获取祈愿数据

        ',4),b={id:"利用-stoken-从服务器获取最新的祈愿记录",tabindex:"-1"},m=e("a",{class:"header-anchor",href:"#利用-stoken-从服务器获取最新的祈愿记录","aria-hidden":"true"},"#",-1),k={class:"hint-container info"},G=e("p",{class:"hint-container-title"},"提示",-1),U=e("li",null,"SToken 刷新方法暂不支持国际服",-1),I=e("ul",null,[e("li",null,"在胡桃工具箱中确保你需要获取记录的米游社帐号已登录"),e("li",null,[o("从左侧菜单栏进入"),e("code",null,"祈愿记录")]),e("li",null,[o("点击右上角的"),e("code",null,"刷新"),o(",并点击"),e("code",null,"SToken刷新")]),e("li",null,"等待读取完毕,即可查看最新的祈愿记录")],-1),S={id:"从网页缓存获取最新的祈愿记录",tabindex:"-1"},y=e("a",{class:"header-anchor",href:"#从网页缓存获取最新的祈愿记录","aria-hidden":"true"},"#",-1),v=n('
        • 从左侧菜单栏进入祈愿记录
        • 启动游戏并登入游戏,打开游戏内的祈愿历史记录
        • 回到胡桃工具箱,点击刷新按钮,在刷新菜单中点击网页缓存刷新

        提示

        若出现网页缓存刷新功能异常的情况:

        • 从胡桃工具箱的设置
        • 删除游戏内网页缓存功能中执行删除操作
        ',2),E={id:"通过输入-url-获取祈愿记录",tabindex:"-1"},F=e("a",{class:"header-anchor",href:"#通过输入-url-获取祈愿记录","aria-hidden":"true"},"#",-1),B=n('
        • 如果你通过其它工具获取到了你祈愿历史记录的 Url,可以选择手动输入Url并根据提示操作
        • 但应注意此类 Url 具有时效性

        对于全量刷新选项的补充说明

        在默认情况下,胡桃工具箱会在匹配到本地已有记录的祈愿 ID 后停止导入。 但如果你希望完整地获取原神服务器中所有的历史记录(即使它已经存在于你的本地祈愿记录中),你可以勾选全量刷新

        不勾选全量刷新不会使你丢失祈愿数据,勾选全量刷新也不会让你的本地记录错误地额外记录一次相同的祈愿数据。

        ',4),w={id:"从其它祈愿导出程序导入祈愿数据",tabindex:"-1"},C=e("a",{class:"header-anchor",href:"#从其它祈愿导出程序导入祈愿数据","aria-hidden":"true"},"#",-1),N=n('

        胡桃工具箱支持导入 UIGF 数据格式 的祈愿记录数据[1]

        如果你希望导入这一类数据,可以:

        • 启动胡桃工具箱,从左侧菜单栏进入祈愿记录
        • 点击右上角的导入
        • 选择你的 UIGF Json 数据文件
        • 根据界面确认导入数据

        从 Snap Genshin 转移祈愿记录数据

        如果你希望从 Snap Genshin 中转移祈愿数据至胡桃工具箱,你可以:

        • 升级 Snap Genshin 到最新版本
        • 进入祈愿记录功能
          • 如果你由于无法登录米游社而无法进入 Snap Genshin,可以在胡桃工具箱中登录米游社帐号并复制 Cookie 到 Snap Genshin
        • 点击右上角的功能菜单
        • 通过导出 UIGF Json 文件导出 Json 格式的祈愿记录
        • 在胡桃工具箱中导入该文件
        ',6),T={id:"导出祈愿数据",tabindex:"-1"},J=e("a",{class:"header-anchor",href:"#导出祈愿数据","aria-hidden":"true"},"#",-1),L=n("

        胡桃工具箱支持导出 UIGF数据格式 的 Json 文件格式的祈愿记录数据

        如果你希望导出祈愿数据,可以:

        • 启动胡桃工具箱,从左侧菜单栏进入祈愿记录
        • 选择您要导出的祈愿记录存档
        • 点击导出按钮
          • 在弹出的界面选择您需要将此导出的祈愿记录数据文件存放的位置,并点击导出
        • 导出完成
        ",3),V={id:"祈愿记录云同步",tabindex:"-1"},z=e("a",{class:"header-anchor",href:"#祈愿记录云同步","aria-hidden":"true"},"#",-1),D=n('

        祈愿记录云同步功能基于胡桃云帐号,你需要在设置中注册并登录胡桃帐号以使用该功能

        用户可以使用该功能,将本地的祈愿记录上传到胡桃云,避免珍贵的祈愿记录丢失,方便数据在多设备之间转移。

        云同步权限

        由于云同步是一个消耗胡桃服务器资源的功能,故该功能有时间限制。目前,胡桃提供以下几种启用云同步功能的方法:

        1. 在爱发电上打赏胡桃的用户,我们会向与爱发电邮箱帐号相匹配的胡桃帐号自动增加使用时间作为胡桃工具箱开发团队对打赏用户的感谢
        2. 对于所有注册用户,在每一期深渊第一次成功向胡桃数据库上传深境螺旋挑战记录后,会获得 3 天的同步功能使用时间
          • 你可以通过该方法长期地免费使用胡桃云
        3. 为胡桃工具箱开源社区贡献(包括但不限于代码开发、程序设计、本地化翻译)的用户,可以直接联系开发团队添加时长
          • 我们目前正在设计一个完善而自动化的开发者许可证颁发流程,它将会随着胡桃帐号系统的完善而推出

        当你的胡桃帐号云同步权限过期后,你将无法上传、下载和删除数据,但你的数据不会被删除。你可以在恢复权限后重新操作你的云备份数据。

        上传

        • 在祈愿导出界面,选择你需要同步的祈愿存档
        • 点击右上角的胡桃云按钮
        • 点击上传当前的祈愿存档即可备份当前的存档数据至云端

        下载

        • 在祈愿导出界面,点击右上角的胡桃云按钮
        • 在对应 UID 的帐号右侧点击下载按钮即可下载目标存档的云端数据

        删除

        • 在祈愿导出界面,点击右上角的胡桃云按钮
        • 在对应 UID 的帐号右侧点击删除按钮即可删除目标存档的云端数据

        ',13),R={class:"footnotes"},q={class:"footnotes-list"},A={id:"footnote1",class:"footnote-item"},O={href:"https://uigf.org/",target:"_blank",rel:"noopener noreferrer"},P=e("a",{href:"#footnote-ref1",class:"footnote-backref"},"↩︎",-1);function M(Y,j){const a=l("RouterLink"),t=l("Badge"),d=l("ExternalLinkIcon");return h(),r("div",null,[p,u,f,e("p",null,[o("有关原神祈愿记录导出的技术原理,你可以参阅我们的"),i(a,{to:"/zh/advanced/Gacha-system-and-export-principal.html"},{default:s(()=>[x]),_:1}),o("一文。")]),g,e("h3",b,[m,o(" 利用 SToken 从服务器获取最新的祈愿记录 "),i(t,{text:"推荐",type:"tip"})]),e("div",k,[G,e("ul",null,[e("li",null,[o("已登录的米游社帐号是使用 SToken 刷新方法的前提,你可以参考"),i(a,{to:"/zh/features/mhy-account-switch.html"},{default:s(()=>[o("米游社多帐号切换")]),_:1}),o("一文在胡桃工具箱中登录你的帐号")]),U])]),I,e("h3",S,[y,o(" 从网页缓存获取最新的祈愿记录 "),i(t,{text:"支持国际服",type:"tip"})]),v,e("h3",E,[F,o(" 通过输入 Url 获取祈愿记录 "),i(t,{text:"支持国际服",type:"tip"})]),B,e("h3",w,[C,o(" 从其它祈愿导出程序导入祈愿数据 "),i(t,{text:"UIGF",type:"info"})]),N,e("h2",T,[J,o(" 导出祈愿数据 "),i(t,{text:"UIGF",type:"info"})]),L,e("h2",V,[z,o(" 祈愿记录云同步 "),i(t,{text:"测试功能",type:"info"})]),D,e("section",R,[e("ol",q,[e("li",A,[e("p",null,[o("统一标准化的原神数据格式由 "),e("a",O,[o("UIGF-Org"),i(d)]),o(" 提供 "),P])])])])])}const Q=c(_,[["render",M],["__file","wish-export.html.vue"]]);export{Q as default}; diff --git a/en/advanced/FAQ.html b/en/advanced/FAQ.html index bedf1db4e..3a17e4245 100644 --- a/en/advanced/FAQ.html +++ b/en/advanced/FAQ.html @@ -31,7 +31,7 @@ } - +
        Skip to main content

        FAQ

        DGP-StudioFAQAbout 3 min

        FAQ

        How to create desktop shortcut (with no admin privilege)

        • Use Win+R to start run, in the window input shell:AppsFolder Run
        • In the new pop-up window, find Snap Hutao
        • Right lick on it, and click Create shortcut
        • Confirm the operation and you will get the desktop shortcut

        How to create desktop shortcut with Administrator privilege

        Starting from Snap Hutao 1.7.4, you can create a desktop shortcut with Administrator privilege by click Create Desktop Shortcut in the settings page.

        You can move this shortcut to any place you need.

        How to run Snap Hutao when Windows starts

        This is a workaround solution

        • Create a bat file, content refers to this Issueopen in new window, it allows bat to run Snap Hutao with Administrator privilege
        • Create a Scheduled Task, run the bat when Windows startup, or drag it to Windows start folder

        Use Snap Hutao to quick start the game

        • Config the game launcher in the settings

        • Pin Snap Hutao on taskbar

        • Right click on Snap Hutao and you will see the quick launcher

          quick-start

        • Select Lauch Game, you will be asked which account to start the game

        Use Snap Hutao with Network Proxy

        Refer to HttpRequestException Error (502) document

        Mojibake in Snap Hutao

        • If you are using Windows 10 and see some button are not display properly
          • You can download Segoe Fluent Icons font
          • You need to install it for all users
        • You can find this font from Microsoftopen in new window

        MiHoYo BBS Account often Lose Login Status

        Snap Hutao use saved MiHoYo BBS cookies to maintain login status. If you log out your account in your browser or other device, cookie will become invalid, and Snap Hutao will also be forced to log out, account will be automatically removed.

        This problem may also be caused by network error, you should check this first; If it's not caused by network issue, you can use Refresh Cookie in the account panel; You can also remove your account manually and add it back again.

        Since October 2022, MiYouShe (Chinese BBS) rapidly increased bot detection and may set users' account as under-risk status, this may cause Snap Hutao failed to check validation of the cookie

        Game Account Lose Login Status in the Launcher

        • There are two factors associated with game account login status: network and device ID
        • This issue usually caused by:
          • Change of public IP address
          • Change of network adapter or network adapter MAC address
          • Failed saving operation, no real login status been saved (Snap Hutao cannot detect if the status is real valid)
            • Make sure to enter the game after sign in
            • Make sure the game process is gone after closing the game
            • Detect the account again to save your login status

        Snap Hutao Throws Failed to add Scheduled Task Error

        If you are using Administrator privilege to start real-time notes feature, Snap Hutao's scheduled task will be created as Administrator role. When next time edit real-time notes settings without Administrator privilege, the program will have a lack of privilege to edit the settings and throw out this error.

        Run Snap Hutao as Administrator to edit your settings to solve this issue.

        Stuck at Installing Required Framework when Using MSIX Package to Install

        • When user's OS missing required dependency framework, Windows will download and install it automatically. However, if the user disabled Windows Update or have a bad network, the system is unable to process this installation.
          • Make sure Windows Update is enabled; Snap Hutao's update also relies on it
          • You can also download and install the dependency manually

        Unable to Run Snap Hutao as Administrator

        This issue only occurs in Windows 10 older than 22H2 version

        • When user's OS version older than Windows Build 19045 (aka Windows 10 22H2), Snap Hutao is unable to start when running as Administrator
          • This issue comes from Windows kernel, and it's hard to locate, so we suggest you to update your OS to the latest version

        How to Recover config.ini Configuration File

        In some particular conditions (such as wrong game folder permission), config.ini may lose after server conversion. This will cause user not able to get into advanced launcher page and launch the game.

        After identify the server version on your device, you can manually create and fill the configuration file with the right content. The following are common configurations.

        [General]
        @@ -47,6 +47,6 @@ game_version=4.1.0
         sub_channel=0
         plugin_7_version=1.0.0
         

        How to Fully Backup/Recover Client Data

        Data Security Warning

        Userdata.db contains all client data, including MiHoYO BBS Cookie, please save the data file properly and do NOT share it with anyone.

        Copy Userdata.db from Snap Hutao data folder (%userprofile%/Documents/Hutao by default) to your backup location, this file contains entire data of the client.

        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.8
        - + diff --git a/en/advanced/Gacha-system-and-export-principal.html b/en/advanced/Gacha-system-and-export-principal.html index afc40f20e..8922b33f3 100644 --- a/en/advanced/Gacha-system-and-export-principal.html +++ b/en/advanced/Gacha-system-and-export-principal.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        祈愿系统与导出原理

        DGP-StudioFAQAbout 2 min

        祈愿系统与导出原理

        Gacha System and Principal

        胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

        本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

        祈愿的获取

        获取祈愿记录需要请求米哈游的 API

        关于此 API, 有下列几个注意点

        • 通过米哈游服务器的 API,只能查询到过去 6 个月内的祈愿记录
          • 这也是原神客户端中祈愿记录的来源
        • API 存在请求速率限制,过快的请求会导致后续的请求失败,无法正常获取数据

        为了请求此 API,我们需要四个关键参数

        • 目前有下列几种方法可以获取这些参数
          • 遍历 Unity 的日志文件,查找用户打开的祈愿记录 URL
          • 代理本机流量,筛选祈愿记录 URL
          • 查找 CefBrowser 的浏览器缓存,找到祈愿记录 URL
          • 对于包含了 Stoken 的 Cookie,调用 genAuthKey API,获取参数
          • 高级用户手动输入相关 URL

        在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

        祈愿的存储

        获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

        后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

        这样,用户即可长期地保存帐号的完整祈愿记录

        UIGF 格式

        统一可交换祈愿记录标准

        Uniformed Interchangeable GachaLog Format standard

        UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

        标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

        祈愿的导入

        在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

        胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

        (因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

        祈愿的导出

        尚未实现,正在设计 已实装

        - + diff --git a/en/advanced/dependency.html b/en/advanced/dependency.html index 75c18168c..bfaa93ad1 100644 --- a/en/advanced/dependency.html +++ b/en/advanced/dependency.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Install Dependency Manually

        DGP-StudioFAQdependencyinstallationLess than 1 minute

        Install Dependency Manually

        Snap Hutao relies on Windows App Runtime as a dependency, when user's system is missing this environment, Windows will install this framework before Snap Hutao's installation.

        If you are in a poor network, you may slow or even stuck at framework installation stage. In such a scenario, you can download the framework from Microsoft website and install it manually.

        1. Visit Microsoft document page:Latest downloads for the Windows App SDKopen in new window
        2. Click on Dwonload the latest x64 stable installer to download the offline installer
        3. Run Windows App Runtime installer you just downloaded, and then install Snap Hutao
        - + diff --git a/en/advanced/exceptions.html b/en/advanced/exceptions.html index eb63a5445..90c374d7e 100644 --- a/en/advanced/exceptions.html +++ b/en/advanced/exceptions.html @@ -31,11 +31,11 @@ } - +
        Skip to main content

        Common Program Exceptions

        DGP-StudioFAQAbout 2 min

        Common Program Exceptions

        This document covers solutions of foreseeable client error

        RuntimeEnvironmentException

        • Exception: RuntimeEnvironmentException
          • Hint: Unable to set registry key without enabling long path
        • Issue source: Windows long path limit is set to be limited at 256 characters by default
        • Solution: Download EnableLongPaths.zipopen in new window, unzip it and run .reg file

        Return Code: -10001

        • This error comes directly from MiHoYo BBS, hints include
          • Return Code: -10001
          • Return Code: -100
        • Issue source
          1. Cookie expired
          2. Network error
          3. System time is not accurate
        • Solution
          1. In the account panel, execute Refresh Cookies
          2. Remove your account and add it again
          3. Sync your system time

        Return Code: 1034 Verification Failed

        • If Snap Hutao returns 1034 status code and hints verification failed (usually during the operation of Realtime Notes), it means the operation is blocked by MiHoYo BBS anti-bot system
        • Solution:
          • Enter Realtime Notes
          • Click on Verify Current User and Role button
          • Follow the instruction in MiHoYo BBS to verify
          • After finishing the verification process, click Complete to close the verification window
          • Now, the account should back to normal; If not, process the step above again

            Tips

        If the risk prompt is too frequent, or the verification cannot be triggered at all, it means that the risk of your account is too high, please change the password, so that the simultaneous login status of multiple devices will be reset

        :::

        Note

        • You hardly cannot pass imperceptible verification when your account is login at other remote Genshin tools or login at multiple devices. This is a security designing of MiHoYo BBS, and cannot bypass
        • If you are using multiple MiHoYo BBS account in your device, frequent usage with MiHoYo BBS API will result in your IP address being banned for a period of time (usually no more than 24 hours). This is a security designing of MiHoYo BBS, and cannot bypass

        HttpRequestException Metadata Download Failed

        403 (Forbidden) / 404 (Not Found)

        Solution: Update your Snap Hutao to latest version

        502 (Bad Gateway)

        Associated Issue: https://github.com/DGP-Studio/Snap.Hutao/issues/100open in new window

        This HTTP Exception occurs when Snap Hutao failed to fetch remote resource (usually static image and configuration)

        HttpRequestException

        If you are using proxy software, you may need to turn it off or using TUN mode proxy; otherwise you need to use Windows 8 AppContainer Loopback Utilityopen in new window to remove Windows APP Container Loopback limitsopen in new window.

        You can also execute the following PowerShell script to remove all container loopback limits

        FOR /F "tokens=11 delims=\" %p IN ('REG QUERY "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p
         

        Error Finding Required Modules

        When user launching game with unlock frame-rate feature on, the game may be failed to be launched with the following error shows up:

        1. Error finding required modules: could not read any module, the protection driver may have been loaded
        2. Error finding required modules: timeout

        This issue only occurs when Genshin Impact's anti-cheat module starts earlier than frame-rate-unlocker module. When these errors happen, Snap Hutao will exit game process, and you can re-launch the game.

        - + diff --git a/en/advanced/get-stoken-cookie-from-the-third-party.html b/en/advanced/get-stoken-cookie-from-the-third-party.html index b6813d4a8..350ef0829 100644 --- a/en/advanced/get-stoken-cookie-from-the-third-party.html +++ b/en/advanced/get-stoken-cookie-from-the-third-party.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        使用第三方工具获取有 Stoken 的 cookie

        DGP-StudioFAQ第三方工具About 2 min

        使用第三方工具获取有 Stoken 的 cookie

        Note

        • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
        • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

        Android

        Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

        GetToken 开源项目

        • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
          • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
          • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
            • 你需要卸载官方版米游社以安装该版本的米游社
        • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
        • 在右上角点击形如 🔑 形状的按钮
        • 点击勾选 Stoken 选项
        • 点击复制登录信息
        • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
        • 胡桃工具箱中的账号登录位置,点击手动输入
        • 将之前获取到的 cookie 输入,此时即可完成登录

        iOS

        iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

        • 从 App Store 下载 Streamopen in new window
        • 对域名 api-takumi.mihoyo.com 进行抓包分析
        • 找到并复制带有 Stoken 的数据
          • 形如stuid=****;stoken=v2****;mid=****;
        • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
        • 胡桃工具箱中的账号登录位置,点击手动输入
        • 将之前获取到的 cookie 输入,此时即可完成登录
        - + diff --git a/en/advanced/index.html b/en/advanced/index.html index 88edf7162..48d4cb1be 100644 --- a/en/advanced/index.html +++ b/en/advanced/index.html @@ -31,10 +31,10 @@ } - + - + diff --git a/en/advanced/known-issue.html b/en/advanced/known-issue.html index 034662675..89d3ac39c 100644 --- a/en/advanced/known-issue.html +++ b/en/advanced/known-issue.html @@ -31,10 +31,10 @@ } - +
        Skip to main content
        - + diff --git a/en/advanced/uninstall.html b/en/advanced/uninstall.html index f4393b049..1a7a7d63b 100644 --- a/en/advanced/uninstall.html +++ b/en/advanced/uninstall.html @@ -31,11 +31,11 @@ } - +
        Skip to main content

        Uninstall Snap Hutao

        DGP-StudioFAQLess than 1 minute

        Uninstall Snap Hutao

        • Clear Real-time Notes Scheduled Task
          • Before version 1.4.15, if not execute this step, scheduled task used to refresh real-time notes may not be deleted,and you may face this issue
            • Method 1 For version <= 1.4.15
              • Launch Snap Hutao, and go to settings page
              • Find Delete All Scheduled Task field, and click on Execute Button Requires administrator privileges
          • Method 2
            • Execute the following PowerShell script
              schtasks /delete /tn SnapHutaoDailyNoteRefreshTask
               
          • Method 3
            • Open Windows Scheduled Task Manager
            • Find SnapHutaoDailyNoteRefreshTask task and delete it
          • Method 4
            • Upgrade to1.5.1 version and open Real-time Notes
            • Close software and remove it
        • Remove the Software
          • Open Start Menu
          • Find or search Snap Hutao
          • Right click on it, and select Unstall
        • Remove data folder (If you want remove it completely)
          • Open and delete %userprofile%/Documents/Hutao
        - + diff --git a/en/community.html b/en/community.html index 9616c012e..1cdaf4d0c 100644 --- a/en/community.html +++ b/en/community.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Join Community

        DGP-StudioAnnouncementLess than 1 minute

        Join Community

        As open-source software, community power is an important part of the ecology of Snap Hutao, and you can join our user community by following ways.

        If you believe Snap Hutao is a good project and helps you, you can support us by the following ways

        commit_activity hutao-last-commit

        GitHub Discussion

        Snap.Hutao Discussionopen in new window

        QQ Group (CN)

        Discord

        Invite link:https://discord.gg/Yb8bykUKpopen in new window

        - + diff --git a/en/development/contribute.html b/en/development/contribute.html index 44001107c..3f2612d29 100644 --- a/en/development/contribute.html +++ b/en/development/contribute.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Contribute Your Code

        DGP-Studioopen sourcedevelopmentdevelopmentGitHubAbout 1 min

        Contribute Your Code

        Snap Hutao is using C# and .NET Framework to develop both client and server. If you are willing to contribute your code to the project, please read the following guidelines.

        You can find all unsolved opened issuesopen in new window on GitHub

        Setup Snap.Hutao Project

        1. Download and install Visual Studio 2022 Communityopen in new window
        2. Open Visual Studio Installer to complete Visual Studio installation
          • You need to install .NET desktop development, Desktop development with C++ and Universal Windows Platform development components
        3. Install Single-project MSIX Packaging Tools for VS 2022 provided by Microsoft in Visual Studio marketplace
        4. Use git to clone the project https://github.com/DGP-Studio/Snap.Hutao.git to your local device
        5. Switch git branch to develop
        6. Open project solution with your Visual Studio and then you are ready to go

        Enable Debug

        1. Download and install Sysinternals Suite from Microsoft Storeopen in new window or Microsoft websiteopen in new window
        2. Locate and run DebugView program in the installed app list or unzipped folder
        3. Run Snap Hutao client
        4. Check DebugView output

        Start Pull Request

        • All code-related changes from authors' own branches are only allowed be merged to develop branch
        • Please use keywordsopen in new window to link your PR or commits with issues, so issues can be automatically closed once commits are merged into main branch.

        Test Binary Package

        Once the code in updated in develop and main branches, an Azure Pipeline CI script will build the latest code to Snap Hutao Alpha package. Once the package is built, it will be released on GitHub Release pageopen in new window as a pre-released package.

        You need to install Snap.Hutao.CI.ceropen in new window certificate to your local machine, and then install the msix package in the release.

        *If the latest release does not contain attached file, that means package is still in uploading process.

        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.8
        - + diff --git a/en/development/index.html b/en/development/index.html index 4689256a1..8f39b6ed8 100644 --- a/en/development/index.html +++ b/en/development/index.html @@ -31,10 +31,10 @@ } - + - + diff --git a/en/development/platform.html b/en/development/platform.html index 102544aa5..bded0d6e9 100644 --- a/en/development/platform.html +++ b/en/development/platform.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Hutao Open Platform

        DGP-Studioopen sourcedevelopmentopen sourceHutao DatabaseSpiral Abyss DatabaseEnkaUIGFOpen dataAbout 1 min

        Hutao Open Platform

        The Snap Hutao project has received wide supports from the open-source community and users since its inception on GitHub on April 18, 2022. As the project has evolved, we have created a series of supporting services as middleware for Snap Hutao.

        Now, the development team is making some of these practical services available to the open-source community in the form of open interfaces, for use by developers who share our vision. We will be writing usage documentation for these interfaces, maintaining the services, and providing answers to frequently asked questions. Whether you are an experienced developer or a beginner, we hope that these interfaces will assist you in creating applications.

        Hutao API & Hutao Cloud Open-source Developer's License

        Hutao API is an interface service that exposes the Hutao Abyssal Database. Open-source software authors can use the Hutao API to retrieve data from the Hutao database or upload data.

        Developers who gain access to the Hutao API also receive full privileges to the Hutao Cloud feature within the Snap Hutao as a benefit.

        Developers can apply for access by submitting their information through the Hutao API Open Platform at homa.snapgenshin.comopen in new window

        Enka API with China Acceleration

        Enka Networkopen in new window is an excellent Genshin Impact tool that provides detailed data on characters in the user's current character showcase. However, due to restricted access to certain network services in China, the stability of Enka Network's functionality in the region is compromised.

        To ensure a smooth user experience for Snap Hutao users in China, the development team has utilized Enka Network's data for the development of the My Characters feature and established a proxy server.

        Developers can ask for access in Snap Hutao development group chat or discord group from administrator.

        UIGF Interchangeable Game Data Format

        Snap Hutao aims to enable the free flow of user data among various open-source tools with different features. To facilitate this, Snap Hutao has established the initial version of the Uniformed Interchangeable GachaLog Format Standard (UIGF)open in new window.

        Since then, this standard has gained more recognition among developers, leading to the promotion of additional standards. Many developers have now gathered under the UIGF organizationopen in new window. Our goal is to maintain this organization, allowing developers to connect with more users, receive feedback, make technical advancements, and create outstanding open-source Genshin Impact tools.

        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.8
        - + diff --git a/en/features/achievements.html b/en/features/achievements.html index 4daa926d0..95bedfc8c 100644 --- a/en/features/achievements.html +++ b/en/features/achievements.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Achievement Management

        DGP-StudioFeatureTutorialAchievementLess than 1 minute

        Achievement Management

        Achievement Screenshot

        Snap Hutao offers local achievement management feature, users can view and manage status of achievement

        • At first time use, you will follow the instruction to create an archive and name it
        • After that, you are still able to make new archives by click on Create New Archive for other game accounts

        Achievement Import

        • Snap Hutao is using Uniformed Interchangeable Achievement Format Standaropen in new window to store user's achievement data
          • This standard allows user to transmit achievement data between Snap Hutao wiht other achievement tools, such as Achievement exporter
        • You can click on Import at top right menu on Achievement Management page, and select file import to load UIAF formatted data

        Achievement Tools We Recommend

        - + diff --git a/en/features/character-data.html b/en/features/character-data.html index df85d279e..219de4eb7 100644 --- a/en/features/character-data.html +++ b/en/features/character-data.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        My Characters

        DGP-StudioFeatureTutorialCharacter showcaseCharacter statisticsAbout 2 min

        My Characters

        Info

        This features required sign in to MiHoYo BBS account, please refer to MiHoYo BBS Account Switch document for sign in tutorial

        My characters is a character statistics feature that allows Snap Hutao to read character's statistics on the account, including level, constellation, weapon, talent and artifact set; we also provide artifacts rating and CRTI rating for each character.

        My Character Screenshot

        Sync Character Data

        Sync from Enka API

        Synchronous Feature

        • Enka API sync data from characters displayed in the in-game character showcase

          • Data includes Artifacts detail data, weapon detail data, talent data
          • Character costume
          • This sync method only support 8 characters at a time
        • In the game, put characters that you need detailed data into the showcase
          • The character showcase allows up to 8 characters at the same time
        • You need to wait for data sync to complete after editing the showcase configuration
          • You may need up to 5 minutes after enable the showcase or re-config the showcase
        • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
        • Select Sync from Enka API

        Sync from MiHoYo BBS - My Characters

        Synchronous Feature

        • Data in this sync method comes from My Characters feature in MiHoYo official BSS

          • This method does not contain any artifacts data
          • This method can sync all characters data at a time
        • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
        • Select Sync from MiHoYo BBS My Characters

        Sync from MiHoYo BBS - Development Plan

        Synchronous Feature

        • Data in this method comes from Enhancement Progression Calculator feature in MiHoYo official BBS tool set

          • This sync method contains talent level data
          • This sync method can sync all characters data at a time
        • Enter My Characters page in the Snap Hutao, Click Sync Character Data button on the top-right
        • Select Sync from MiHoYo BBS Developement Plan

        Add Selected Character to Development Plan

        • Enter My Characters page in the Snap Hutao, click on character you need to add to development plan
        • Click on Development Plan and enter target level
          • Synchronized data of the character will be pre-filled into current level, and you can change the target level

        rolescal

        • After adding successfully, you can find added development plan in the Dev Plan page in Snap Hutao

        image

        • For tutorial of Dev Plan feature, please refer to Dev Plan document

        Export as Image

        • In My Characters page, you can select a character and then click Export as Image button to create image with your character's data, this will help you to share your character's data
        • The exported image is stored in your clipboard, and you can paste it wherever you need
        • A sample exported image is shown below

        sample-output-image

        - + diff --git a/en/features/character-wiki.html b/en/features/character-wiki.html index 032eb2a67..21bbdaf41 100644 --- a/en/features/character-wiki.html +++ b/en/features/character-wiki.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Character WIKI

        DGP-StudioFeatureTutorialCharacterWIKIDataLess than 1 minute

        Character WIKI

        characters-wiki

        Character WIKI is a Snap Hutao build-in WIKI feature used to query each character's information.

        Included Data

        • Character list
          • Use the icon above the list, you can change the view between list and grid
          • Click on character's icon or title, and you will be directed to its WIKI page
        • Character information
          • Character information
            • Introduction of the character
            • Numerical attributes value at each level
            • Attributes
        • Talent
          • Introduction
          • Numerical talent value at each level
        • Constellation
        • statistical information on Team, weapon usage, artifact set usage provided by Hutao Database
        • Other information
          • Character tachie
          • Special food
          • Costume
          • Character stories

        Add to Dev Plan

        • At character WIKI page, you can select character and click on Dev Plan on the top right to add it to your Dev Plan
          • The new plan will set the base level as 1
          • If you want to make new Dev Plan based on character you already have, you can try My Character feature
        - + diff --git a/en/features/dashboard.html b/en/features/dashboard.html index c168174bc..167667235 100644 --- a/en/features/dashboard.html +++ b/en/features/dashboard.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Home Dashboard

        DGP-StudioFeatureTutorialDashboardAnnouncementSnap Hutao CloudLess than 1 minute

        Home Dashboard

        dashbord screenshot

        Snap Hutao will enter home dashboard by default when it's opened. The top part is your personal gaming data; the bottom part is recent game notice and event countdown in days and hours.

        Gaming data dashboard includes:

        • Snap Hutao Announcement
          • If Snap Hutao dev team publish a new announcement, it will be shown on the dashboard, it can be manually closed
        • Snap Hutao Account
          • If you have a signed in Snap Hutao account, the email address will be shown on the top; If not signed in, there will be a register/login hint
        • Game launcher
          • You can select your account and start the game from dashboard
        • Wish history
          • Game UID and progress bar styled pity count will be display in the dashboard
          • If you have multiple wish history archives, you can use arrow button on left and right side of chart to switch archive
        • Achievement statistics
          • Achievement statistics charts includes gained achievements count, percentage, and the latest gained achievements
          • If you have multiple achievement archives, you can use arrow button on left and right side of chart to switch archive
        • Real-time Notes
          • Real-time notes data will be displayed on home dashboard
          • If you have multiple activated real-time notes account, you can use arrow button on left and right side of chart to switch account
        - + diff --git a/en/features/develop-plan.html b/en/features/develop-plan.html index 571dfd63e..031c6d942 100644 --- a/en/features/develop-plan.html +++ b/en/features/develop-plan.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Development Plan

        DGP-StudioFeatureTutorialdevelop plandevelop calculatorLess than 1 minute

        Development Plan

        dev-plan

        Add Develop Goals into Material Checklist

        Add Goals from WIKIs

        • Click Character WIKI or Weapon WIKI from the left menu bar
        • Select on character or weapon to want to add
        • Click Add to Dev Plan on the top right
        • In the pop-up window, input the base level and target level
          • By default, add goals from WIKIs will set base level as 1

        Add Goals from My Characters Data

        • Click My Characters from the left menu bar
        • Select the character you want to add
        • In the pop-up window, input the base level and target level
          • By default, add goals from WIKIs will set base level as player's live data'
          • Refer to My Characters document to get more guides

        Inventory Items

        Info

        This feature is under construction for non-Chinese languages

        - + diff --git a/en/features/game-launcher.html b/en/features/game-launcher.html index 486201187..ed6093246 100644 --- a/en/features/game-launcher.html +++ b/en/features/game-launcher.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Game Launcher

        DGP-StudioFeatureTutorialunlock framerateconvert serverswitch accountAbout 3 min

        Game Launcher

        Game Launcher

        • Snap Hutao offers advanced game launcher feature allows user to launch the game with self-defined settings
        • Click on the Game Launcher on the sidebar to get into game launcher's page
          • If you are using it at the first time, you will be redirected to Snap Hutao settings page and asked to set your game path
            • When choosing the game path, noticed that you should choose game program instead of launcher program
              • Such as $\Genshin Impact\Genshin Impact Game\YuanShen.exe and $\Genshin Impact\Genshin Impact Game\Genshin Impact.exe
              • Official launcher program is usually $\Genshin Impact\launcher.exe
        • You can make launcher configuration options in the game launcher's page, and then click Launcher button on the top-right to launch the game
          • Launcher options is explained in the document below

        Server Switch

        Privilege Notice

        1. You need to run Snap Hutao as administrator to use this feature
        2. Snap Hutao will create ServerCache folder in the data directory to save required sever switch files

        Enter Game Launcher page In the General - Server field, select the server you want

        • Current available serves options include:
        OptionServer
        CN DefaultMainland China server
        CN OfficialMainland China server, no difference with previous row
        CN NoTapTapMainland China server without TapTap account login method
        BiliBiliChinese server with BiliBili account system
        Global DefaultHoYoVerse servers
        Global EpicHoYoVerse servers with Epic Store payment gateway
        Global GoogleHoYoVerse servers with Google Pay payment gateway
        • click Launcher button on the top-right to launch the game, Snap Hutao will download server required files and then launch the game

        Game Account Switch

        Tips

        1. The account mentioned in this feature is Genshin game login account instead of HoYoLAB account
        2. Game account switch feature currently only supporting official CN server
        CNBiliBiliGlobal
        Save Login StatusSupportedSupportedSupported
        Switch AccountSupportedNot SupportedTheoretically Supported
        We need community's support for thisopen in new window
        1. Enter Game Launcher page
        2. Click Detect Account field in the General category, Snap Hutao will detect current Genshin Impact's account login status
        3. In this pop-up window, enter an archive name for this account and click Confirm
        4. Go back to the game, sign out and sign in to your another account. Repeat step 2 and 3 to add all your account to Snap Hutao
          • Each saved account are selectable
          • On the right side, there are three buttons, they are:
            • Bind current user account, bind current activated MiHoYo BBS account with this game account, an UID will be display on this archive
            • Rename, rename current account archive name
            • Delete, delete current account archive

        Appearance

        Note

        • In some reported cases, using Snap Hutao with Exclusive Fullscreen mode will cause the game process no response.

          • Suggest to use Borderless or Fullscreen mode if you faced same problem
          • The problem is caused by failure of game embedded browser cannot run
        • Enter Game Launcher page
        • In the Appearance category, there are 6 available options:
          • Exclusive Fullscreen, the game process will run in exclusive fullscreen mode
            • You should only use this option when you are able to independently describe technical principles and effects of exclusive fullscreen
          • Fullscreen, the game display mode is set to fullscreen
          • Borderless, the game display mode is set to borderless
          • Width, game window width, such as 1920
          • Height, game window height, such as 1080
          • Display, users with multiple displays can use this option to set which display to run the game

        Resource Download

        Game launcher in Snap Hutao also offers resource download feature, which lists real time Genshin Impact (CN server) client package and OTA package. User can click the hyperlink icon on each package's right side to redirect to browser to download them by user favored download tools.

        When you are updating the game client, you can do the following steps:

        1. Update official launcher to the latest
        2. In Snap Hutao - Game Launcher - Resource Download, find needed client OTA package and installed language OTA package
        3. Move all package to folder where game client located
        4. Start official launcher, click on update button. The launcher should skip the download and directly starts to unzip the OTA packages to update client

        Advanced Features

        Warning

        • Be aware: all advanced features are labeled as Dangeroud Feature; indicating that enabling them means you choose to assume any risk on your own.
        • You need to enable advanced features in Snap Hutao's settings page

        Unlock Frame Rate Limit

        Warning

        • The Unlocker projectopen in new window only affects the UnityPlayer itself, directly affecting the Unity3D engine, and does not have a direct relationship with the game itself. Essentially, it is no different from settings like 120 FPS in mobile devices. However, you should still use it with caution and read the user agreement on your own.
        • Run Snap Hutao as administrator

        • Enter Game Launcher page

        • At the bottom of the page, you can find Unlock Frame Rate Limit option

          • Trigger the switch to enable or disable this feature
          • In the Set Frame Rate Limit field, you can adjust the limit freely
        • Fact that may cause failure in unlocking frame rate limit:

          • Snap Hutao process is not kept in the background
          • V-Sync is not set to off in the game
          • Max Framerate limit is not changed in your graphic card settings
          • Power Saving mode is not disabled in power settings
          • Your graphic card is not powerful enough
        - + diff --git a/en/features/hutao-API.html b/en/features/hutao-API.html index 60b9eb48e..c4e72383b 100644 --- a/en/features/hutao-API.html +++ b/en/features/hutao-API.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Hutao Database / Abyss Record

        DGP-StudioFeatureTutorialSpiral AbyssSpiral Abyss DatabaseSpiral Abyss AnalyticsAbout 2 min

        Hutao Database / Abyss Record

        Snap Hutao offers two major statistic features associated with Spiral Abyss challenge

        • Abyss Stats on the sidebar is a feature designed to help players who are not familiar with Genshin Impact's battle system to build teams, pass the Abyss and obtain rewards by collecting and displaying challenge stats data from the Spiral Abyss from a large number of players.
        • Abyss Record on the sidebar is a statistical feature that helps individuals review their gaming experience and personal data collection by saving their challenge data from each period of the Spiral Abyss.
          • Many players contribute to the Hutao Database's Abyss Stats dataset by uploading their personal Abyss Records

        character-usage-rate

        View Abyss Stats

        Data Scope Limitation

        All calculated data are based on the player data uploaded to the Hutao Database and cannot represent the average data of all Genshin Impact players. The data is for reference only.

        Stats Data Refresh Cycle

        1. Abyss Stats (character usage, character appearance, teams appearance) wil be automatically reset on 1st and 16th day of each month on the gaming server timezone of your account
          • You can view real-time total uploaded data by clicking Details button in the Abyss Stats page
        2. If user does not upload its record for 30 days, its character constellation data will be reset in the database
        • Enter Abyss Records page by clicking Abyss Stats on the sidebar menu
        • Click Character Usage tab to view character usage rate statistics
          • Character Usage Rate = Character Appearance in this Floor [1] / Number of Player who Own this Character
        • Click Character Appearance tab to view character appearance rate statistics
          • Character Appearance Rate = Character Appearance in this Floor [2] / Total Number of Abyss Record of this Floor
        • Click Teams tab to view teams appearance time statistics
          • Team appearance is the appearance time rank of different characters team combination
        • Click Character Constellation tab to view character constellation statistics [3]
          • Character Constellation [4] = Number of Player who Own this Character / Total Number of Player

        Upload Abyss Data

        Use Snap Hutao Client

        • Enter Abyss Records page by clicking Abyss Records on the sidebar menu
        • Click Refresh Data button to make suer Snap Hutao is storing your latest Spiral Abyss record
        • Click Upload Data to upload your Spiral Abyss records
          • This may take a few seconds, you will see the following success message after your data is submitted upload-hutaoapi

        Use Browser

        Info

        This method does not support HoYoLAB

        • Open our JavaScript file, copy the entire content
        • Create new bookmark in your browser
          • Fill with a suitable name
          • in the URL field, fill with script you just copied add-bookmark
        • Visit MiYouShe, wait the page to be fully loaded, and then click the bookmark
        • Wait for a moment, and you will see data upload request window
        • After confirm it, the browser will upload your abyss record, do not turn off your browser
        • You will receive a notification when your data is submitted

        Data Sharing

        Snap Hutao is contributing data to Hutao Database with other developers. You can view our Abyss Stats, and upload your Abyss data in multiple applications other than Snap Hutao. Currently, Snap Hutao is sharing Abyss data with following applications:

        1. Miao-Plugin for Yunzai-Botopen in new window
        2. Pizza Helper for Genshinopen in new window
        3. WeChat Mini Program: Ysin

        1. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

        2. When same character appearances in the same floor but different level, appearance time only count for 1 ↩︎

        3. Character constellation data is a separate data set from Spiral Abyss records database ↩︎

        4. Once owned this character, it's counted into database even it's not appearing in Spiral Abyss; Once upload your Abyss stats, all collected characters will be included ↩︎

        - + diff --git a/en/features/hutao-settings.html b/en/features/hutao-settings.html index 930619560..a923956aa 100644 --- a/en/features/hutao-settings.html +++ b/en/features/hutao-settings.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Software Settings

        DGP-StudioFeatureTutorialSnap Hutao CloudGeetest verificationLanguage settingsAdvanced settingsAbout 2 min

        Software Settings

        Info

        • The following feature tutorials are introduced in-program order.

        About Snap Hutao

        This part has the following information:

        Snap Hutao Account Beta

        Hutao-account Snap Hutao account system is designed by DGP-Studio to provide fundamental component for cloud service such as wish history backup. Currently, you are already able to register and login to your Snap Hutao account in the settings page.

        Shell Experience

        • Create Desktop Shortcut
          • Snap Hutao will create a shortcut with Administrator privilege on user's desktop

        Appearance

        • Language

          • Snap Hutao will following system language setting by default
          • You can force to change to another language in the settings page
        • Backdrop Material

          • In this option, you can change the backdrop material of the software to
            • Acrylic
            • Mica (Windows 11 only)
            • MicaAlt (Windows 11 only)
          • The setting will take effect immediately

        Home

        • Dashboard Card
          • You can click on this option to switch display of card on Home Dashboard
            • Game Launcher
            • Wish History
            • Achievement
            • Realtime Notes

        Game

        • Game Path

          • In this field, you can modify or set your game path for Snap Hutao
          • When setting the game path, you should select game program instead of launcher program
            • Such as $\Genshin Impact\Genshin Impact Game\YuanShen.exe
        • PowerShell Path

          • Snap Hutao uses PowerShell to modify Genshin Impact registry field to switch game account. This option allows user to select PowerShell path to fix issue when PowerShell path is unable to located automatically
        • Delete Game Embedded Browser Web Cache

          • When you are using web cache refresh method in the wish history feature and receiving authkey expiration error, you can try this operation to fix the error
          • Click on this field to execute the operation

        Wish History

        • In this field, you can choose to hide wish event that you do not have any record in the period in the wish export feature

        Geetest Verification

        MiYouShe uses Geetest verification to block requests not from real human operations, so some requests from Snap Hutao, such as claim check-in reward and fetch Real-time Notes data may be failed due to marked as robot operation. If you have a third party service to bypass Geetest verification, you can config this setting to pass verification parameters to service provider you used.

        Successfully config this setting will help Snap Hutao pass verification when fetching data from Real-time Notes and claiming check-in rewards, and avoid -1034 error from MiYouShe.

        Storage

        • Open Data Folder
          • Click this field to open data folder that contains user data, log, and metadata
        • Change Data Directory
          • This field allows you to change the data directory to path you want
        • Open Cache Folder
          • Click this field will open cache folder that saves image assets used by Snap Hutao
        • Reset Image Resource
          • This option allows user to reset image cache when there are too many image failed to load. The program will re-download images resource at next start-up

        Dangerous Features

        - + diff --git a/en/features/index.html b/en/features/index.html index b4c60329e..5022a034e 100644 --- a/en/features/index.html +++ b/en/features/index.html @@ -31,10 +31,10 @@ } - + - + diff --git a/en/features/mhy-account-switch.html b/en/features/mhy-account-switch.html index e94e6b7be..628ade4fc 100644 --- a/en/features/mhy-account-switch.html +++ b/en/features/mhy-account-switch.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        MiHoYo BBS Account Switch

        DGP-StudioFeatureTutorialMiYouSheHoYoLABMulti accountcheck-inAbout 1 min

        MiHoYo BBS Account Switch

        Tips

        There are two types of MiHoYo BBS, MiYouShe and HoYoLAB. MiYouShe refers to Mainland China version, HoYoLAB refers to global version, both of them are accepted by Snap Hutao

        • The document in page is talking about MiHoYo BBS account, not Genshin Impact's in-game account
        • Before starting using Snap Hutao, you must initial your MiHoYo BBS account by login to your account in official mobile application
          • If your account name shows like user_123456789, then it means the account is not initial yet

        MiHoYo BBS Accounts

        At the left bottom corner, you can find the account menu above the Settings button. In the pop-up account menu, you can find the entry to login in to your MiYouShe and HoYoLAB account:

        • Click on Web Login
          • In the pop-up build-in browser, login with your account
          • Click I'm logged in button on the top right, after you have logged into your account
          • Then your account will be added to Snap Hutao, the browser will close automatically
        • Alternatively, you can enter your MiHoYo BBS cookie list by click on Input Manually button
        • After added your MiHoYo BBS account, you need to switch to account you want in the account menu, to activate it
          • You can always switch your MiHoYo BBS account in the account menu, and you are also allowed to copy account's cookie or remove account there
          • After select an account in the panel, you can also
            • Click Refresh Cookie to update local cookie
            • Click Claim Check-In Reward to get daily check-in reward. For MiYouShe account, you need to bypass Geetest verification first.

        Security Tips

        • SToken is a security sensitive cookie field, you should NEVER store it in cloud-based software or device that you cannot guarantee the safety (such as public computers).
        • You can copy accounts' cookie with SToken from Snap Hutao, but you should carefully consider if the receiver is trustworthy to have SToken cookie
        • When you are signing in to your MiHoYo BBS account in Snap Hutao, the data are only been processed by MiHoYo's official server and local Snap Hutao program, no third-party server (including any server from Snap Hutao) will involve in this process.
        - + diff --git a/en/features/monster-wiki.html b/en/features/monster-wiki.html index 6e7d667b4..6c5f4448f 100644 --- a/en/features/monster-wiki.html +++ b/en/features/monster-wiki.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Monster WIKI

        DGP-StudioFeatureTutorialmonsterWIKIdataLess than 1 minute

        Monster WIKI

        monster-wiki

        Monster WIKI is an embedded WIKI database used to look up each monster's Base ability, ability in each level, RES, drop items

        Included Data

        • Monster list
          • Use the icon above the list, you can change the view between list and grid
          • Click on monster's icon or title, and you will be directed to its WIKI page
        • WIKI data
          • Monster's ability
            • Monster base HP, base ATK, base DEF
            • Monster's HP, ATK and DEF in each level switched to
          • Drop items
        - + diff --git a/en/features/real-time-notes.html b/en/features/real-time-notes.html index ca4927930..4013c63ac 100644 --- a/en/features/real-time-notes.html +++ b/en/features/real-time-notes.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Real-time Notes

        DGP-StudioFeatureTutorialReal-time NotesExpeditionsResinAbout 1 min

        Real-time Notes

        Info

        This features requires you to login in to your MiYouShe or HoYoLab account in Snap Hutao, you can check MiHoYo BBS Account Switch for more information.

        live-data-tracking

        Add Role

        • Click on Add Role button
        • In the pop-up menu, find the UID you want to add, and click on the add button to its right
        • Now, the game UID character's Real-time Notes should be displayed in the page
          • The Real-time Notes is set to refresh timely
            • You can click on the Notification Settings on the top right to manage it
            • If you want to see the data at this moment, you can click Refresh button to refresh data immediately
          • If you receive any warning similar to Verification failed, it may be caused by too many account added, and you can try to fix it youself by refreshing account cookie

        Verify Current User and Role

        If you are using a MiYouShe account, then you account is very likely to be marked as robot-usage and leads to an anti-bot verification. In this status, Real-time Notes data cannot be updated.

        You can click on Verify Current User and Role button, Snap Hutao will pop up verification window. After finishing the verification, then your account can be used to refresh data.

        Global Notification Settings

        • In the Notification Settings on the top right, you can change the global settings of Real-time Notes, including:
          • Enable/Disable auto refresh
          • Refresh rate
          • Do not disturb setting
          • Prioritized notification
            • This prevent Snap Hutao's notification being closed automatically
          • Customized data forwarding Webhook
            • Snap Hutao allows user to forward Realtime Notes data to other applications to reduce account's request to MiHoYo API
            • Input your third party HTTP API endpoint in Realtime Notes Webhook Url setting field, and Snap Hutao will forward the raw data through POST requests

        Independent Settings for Accounts

        • Snap Hutao allows different settings on each Real-time Notes account
        • Hover the cursor over the form of Real-time Notes account that needs to set
        • Click on the setting button on it, and you can modify these settings:
          • Original Resin threshold value
          • Realm Currency threshold value
          • Parametric Transformer notification
          • Daily Commission notification
          • Expeditions notification
          • Display in the main page (feature coming soon)
        • Click on Save and you can save the settings

        Delete Daily-Notes Account

        • Hover the cursor over the form of Real-time Notes account that needs to delete
        • Clock on the remove button on it, and you can remove the corresponding account
        - + diff --git a/en/features/setup.html b/en/features/setup.html index f3b5a7205..77f72d044 100644 --- a/en/features/setup.html +++ b/en/features/setup.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Initial Setup Guide

        DGP-StudioFeatureTutorialAbout 1 min

        Initial Setup Guide

        When launching the Snap Hutao for the first time, the client will automatically enter an initialization setup guide to assist users in configuring the client correctly.

        Currently, Snap Hutao will guide users through the process of setting the language, confirming user agreements, checking necessary environmental configurations, and downloading static resources.

        Language Setting

        In the language settings section, you can choose from the interface languages currently supported by Snap Hutao. If you change the language, the Snap Hutao will automatically restart.

        Snap Hutao uses Simplified Chinese as the base language and actively maintains English text. Traditional Chinese, Korean, and Japanese texts are translated by community contributors. If you're interested in contributing translations, you can lend your support at https://translate.hut.aoopen in new window.

        User Agreement Confirmation

        In the user agreement documents confirmation section, you will need to confirm several documents provided by Snap Hutao. These documents can help you understand the nature of the Snap Hutao project and will be beneficial for your future usage.

        Environment Checking

        In the environment checking section, Snap Hutao will utilize two small tests to assist users in determining whether the system environment, which will enhance user experience, has been installed: the Segoe Fluent Icons font and the WebView2 Runtime.

        You can assess whether these two environment packages are installed based on the prompts. If they are not installed, you can click the corresponding link buttons to download and install the required content.

        The image above is the expected outcome in this step.

        Assets Download

        In this step, Snap Hutao will automatically download the required static image resources. Once the download is complete, Snap Hutao will close the initialization setup interface and automatically load the main program.

        - + diff --git a/en/features/weapon-wiki.html b/en/features/weapon-wiki.html index 540e31b3b..acdee23d4 100644 --- a/en/features/weapon-wiki.html +++ b/en/features/weapon-wiki.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Weapon WIKI

        DGP-StudioFeatureTutorialWeaponWIKIDataLess than 1 minute

        Weapon WIKI

        weapon-wiki

        Weapon WIKI is a Snap Hutao build-in WIKI feature used to look up each weapon's information

        Included Data

        • Weapon list
          • Use the icon above the list, you can change the view between list and grid
          • Click on weapon's icon or title, and you will be directed to its WIKI page
        • Weapon data
          • Weapon basic information
            • Images of weapon before and after ascension
            • Weapon's main image
            • Weapon's introduction
            • Weapon's numerical value at value you switch to
          • Weapon refinement data
            • Weapon's numerical value at each refinement level
          • Weapon's ascension materials
          • Weapon's most used by characters data provided by Hutao Database
        - + diff --git a/en/features/wish-export.html b/en/features/wish-export.html index 2542ef005..c0a01c4c0 100644 --- a/en/features/wish-export.html +++ b/en/features/wish-export.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Wish History

        DGP-StudioFeatureTutorialwish exportgachawishAbout 4 min

        Wish History

        Gacha is one of the core gameplay in Genshin Impact. Whether it's for commemorative and show-off purposes, or for serious planning for a gacha strategy, it's very important to perform statical analysis on historical gacha record. However, Genshin Impact only provides players with six months of gacha records, which is not user-friendly (although they still keep tracking how many Timmie's pigeons you've killed for the whole year)

        Therefore, we need to use the gacha records from these six months to retrieve the data and transfer the record to our local device. This is the purpose of wish history export feature in Snap Hutao.

        Regarding the technical principles of exporting Genshin Impact gacha records, you can refer to our article on Gacha System and Export Principles

        wish export

        As shown in the above figure, through the wish history feature in Snap Hutao, you can clearly obtain the following information: total number of wishes, current pity count, quantity and percentage of obtained items with different rarity, number of times a 5-star rarity item was not obtained and the current pity status.

        Additionally, user with Hutao Cloud can view prediction data calculated by Hutao Cloud server

        Delay in Gacha Data Export

        Snap Hutao retrieves gacha records from the MiHoYo servers, which means that recently made wishes may not be immediately available. When you see the latest batch of gacha records in the game's own history, then you can then obtain the corresponding statistics from Snap Hutao.

        Fetch Wish History

        Hint

        • This method requires user to sign in to MiHoYo BBS account in Snap Hutao, refer to MiHoYo BBS Account Switch to get to know how to login to your MiHoYo BBS account
        • SToken Cookie refresh method does not support global server (HoYoLAB)
        • Make sure the account you want to refresh wish history has been signed in to Snap Hutao
        • Switch to Wish History feature page in Snap Hutao
        • Click on Refresh button and select SToken Refresh
        • Wait for refresh task to complete

        Refresh with Web Cache Global Server Supported

        • Switch to Wish History feature page in Snap Hutao
        • Start the game, go to in-game wish history page
        • Go back to Snap Hutao, clock on Refresh button and select Refresh with Web Cache
        • Wait for refresh task to complete

        Tips

        If errors keep occur:

        • Go to settings page in Snap Hutao
        • Execute operation Delete game embeeded browser web cache

        Refresh with Manually Input URL Global Server Supported

        • If you get your personal wish history URL, you can select Manual Input and submit your wish history URL
        • Be aware that the URL is time-sensitive

        Explanation on Full Refresh Option

        By default, Snap Hutao will stop importing gacha records once it matches a Wish ID that already exists locally. However, if you wish to obtain all the historical records from the Genshin Impact servers (even if they are already present in your local wish history), you can check the "Full Refresh" option.

        Not selecting Full Refresh will not cause you to lose your wishing data, and selecting Full Refresh will not cause your local records to mistakenly record the same wishing data twice.

        Import Wish History Data from Other Applications UIGF

        Snap Hutao supports importing wish history data file that in UIGF data format[1]

        If you need to import such type of data, you can:

        • Start Snap Hutao, switch to Wish History feature page
        • Select Import
        • Select your UIGF Json data file
        • Check the imported file information and confirm to import

        Export Wish History Data UIGF

        Snap Hutao support exporting wish history data to a Json file written in UIGF data format

        If you need to export the wish history data, you can:

        • Start Snap Hutao, switch to Wish History feature page
        • Switch to the archive you want to export, and select Export
          • In the pop-up window, confirm your export path
        • Confirm and export data

        Wish History Cloud Sync Beta

        Wish history cloud sync is designed on Snap Hutao Account. You need to register an account in the settings to use this feature

        With this feature, you can upload your wish history to Hutao Cloud, to avoid risk of losing data, and make it easier to transfer data between devices.

        Cloud Sync Privilege

        Cloud synchronization is a service uses Snap Hutao's server resource, so it is a time-limited feature. Currently, you have the following ways to enable Cloud Sync:

        1. Donate us on AiFaDian. The privilege will automatically assigned to Snap Hutao Account with same email address on AiFaDian
        2. For all registered user, after upload Abyss record in each schedule, 3-day privilege will be automatically assigned
          • This is a method you can constantly use benefit of Hutao Cloud
        3. Users who make contributions to our open-source community, including code development, program designing, localization translations, can contact the dev team to get your benefit for free
          • We are designing an automation system to auto assign license to our contributors, it will be live with more development of Hutao Cloud

        After your Hutao Cloud privilege expired, you will not be able to upload, download or delete your data, but your data will not be removed. You can continue to operate it once you get your privilege again.

        Upload

        • In wish export page, select the archive you need to sync data
        • Click Snap Hutao Cloud button on the top right
        • Click Upload Current Wish Archive, and then your data will be backup to the cloud

        Download

        • In wish export page, Click Snap Hutao Cloud button on the top right
        • Click download button on the right side of UID which data needs to be downloaded

        Delete

        • In wish export page, Click Snap Hutao Cloud button on the top right
        • Click delete button on the right side of UID which data needs to be deleted

        1. Unified Standardized GenshinData Format is provided by UIGF-Orgopen in new window ↩︎

        - + diff --git a/en/i18n.html b/en/i18n.html index efeb350cd..4ac1a38ed 100644 --- a/en/i18n.html +++ b/en/i18n.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Localization

        DGP-StudioAnnouncementi18nLess than 1 minute

        Localization

        Localization Process

        Snap Hutao Project features were originally based on the China server, but we are also trying to expand the coverage globally through the support of the MiHoYo global gaming server & software localization.Currently, our localization process includes:

        • Snap Hutao
            • Process: Crowdin
        • Snao Hutao Docs
          • Process:

        Engage our Localization

        • Snap Hutao
          • We created an issue thread named [Hoyolab] on GitHub: Globalization support Issueopen in new window
            • We will update our process in this thread
            • You can declare your localization engagement in the thread, and we will provide the necessary support
              • We also welcome PR directly
          • You can provide your translation at translate.hut.aoopen in new window
        • Snap Hutao Docs
          • The developer team is maintaining Chinese documents and working on English documents
          • You can clone the docs repositoryopen in new window, translate docs with your favorite tools, and make a Pull Request to contribute your work to the main repository
          • If you are adding a new language, you can copy the entire en folder and rename it with ISO 639-1 language codeopen in new window
            • For example jp as Japanese
            • Do not translate based on Chinese docs (zh) as there are some content only specific useful for Chinese users; they are not useful for international users.
        - + diff --git a/en/index.html b/en/index.html index aca0767c7..2f85d6be9 100644 --- a/en/index.html +++ b/en/index.html @@ -31,10 +31,10 @@ } - +
        Skip to main content
        Snap Hutao

        Snap Hutao

        Multifunctional Open-source Genshin Toolkit 🧰

        DownloadQuick StartDocumentProject

        Secure Program Designing

        Secure Program Designing

        • You Control Your Data

          Your data is stored in your local device, does not rely on any cloud service or third-party platform, you have freedom control your data

        • We Protect Your Data

          Your data can be backed up to Snap Hutao Cloud, you never lose data when you are on a new device

        • Community Guards your Program

          Snap Hutao is open-sourced on GitHub with MIT license, we welcome community members to review and contribute to our code. The software is listed in Microsoft Store, which passes Microsoft's security review

        All-in-one Toolbox

        All-in-one Toolbox

        Quick start tools your need and explore more possibility

        Better than Snap.Genshin

        Snap.Hutao has more extensive data support and better client performance while inheriting all Snap Genshin functionality

        Real-time Notes

        Don't be trapped by Mobile Application. Receive your Genshin real-time notes notification on your desktop with native Windows notification

        Spiral Abyss Record

        Get the personal Spiral Abyss records, including statistics and detailed data, permanently save past Spiral Abyss challenges on your device

        Multi-Account Switch

        Snap.Hutao supports multiple MiHoYo BBS accounts to stay logged in and create separate profiles for each account in each function, so players can easily manage their multiple accounts

        Wish History Record

        Capture your wish history from your game log, export them to your local device, with the support of unlimited account data archives

        Achievement

        Achievement statistics feature allows players to export achievement data and keep statistics outside the game; based on achievement splitting, players can manage milestones for hidden achievements

        Advanced Game Launcher

        With the advanced launcher in Snap.Hutao, players can easily switch their Genshin accounts, switch servers, modify game window settings and further explore more advanced features

        Hutao Database

        Check out the details of community's current Spiral Abyss teaming, weapon matching, and artifact set matching; share your own Spiral Abyss lineup configuration

        My Characters

        View detailed data about the player's character, including level, constellations, weapons, talents, artifact set, etc.; automatically calculate artifact set score

        Character Wiki

        Check the character's numerical information; talent and constellations; training materials; character's background story and other information; get the most weapons and artifact set matching scheme among players through the Hutao database

        Weapon Wiki

        Check weapon values and stories; get the most character matching data among players through the Hutao database

        Development Calculator

        Make implementable character development plans based on your actual situation; support multiple accounts, multiple plan lists, and backpack item records

        Contribute

        Snap Hutao is a free software maintained by open-source community, and we hope more players with same ambitions can join together to provide more features to the community.

        You can make contribution by the following ways:

        1. Make Pull Requests to our codeopen in new window
        2. Translate the project for a better localization
        3. Update documentopen in new window

        If you believe Snap Hutao is a good project and helps you, you can support us by the following ways

        commit_activity hutao-last-commit

        Sponsorship

        Snap Hutao is currently using sponsored software from the following service providers.

        open in new windowopen in new windowopen in new window
        - + diff --git a/en/menu.html b/en/menu.html index 0987bc96b..e97a688c1 100644 --- a/en/menu.html +++ b/en/menu.html @@ -31,10 +31,10 @@ } - + - + diff --git a/en/project.html b/en/project.html index 363c2a3ba..18c1de53f 100644 --- a/en/project.html +++ b/en/project.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Project

        DGP-StudioannouncementprojectfeaturesAbout 1 min

        Project

        Snap Hutao is an open-source Genshin Impact toolkit under MIT license, designed for modern Windows platform to improve the gaming experience for desktop players. By combining existing official resources with new features designed by the development team, it provides a complete and useful set of tools without the need to rely on mobile devices. Snap Hutao does not take any destructive modification to the game client to ensure the security of the toolkit.

        Project Resource

        Feature Overview

        - + diff --git a/en/quick-start.html b/en/quick-start.html index b1a09dc78..1fed3bbf2 100644 --- a/en/quick-start.html +++ b/en/quick-start.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Quick Start

        DGP-StudioFeatureTutorialAbout 2 min

        Quick Start

        Tips

        If you download and use Snap Hutao,you are agree to our terms of service

        If you believe Snap Hutao is a good project and helps you, you can support us by the following ways

        commit_activity hutao-last-commit

        Minimum System Requirements

        RequirementAttribute
        Minimum Required OSWindows 10 Build 19045 (22H2) [1]
        Recommended OSWindows 11 Build 22621 (22H2) or later versions
        Required ComponentsWindows Update, App Installer
        Optional ComponentsWebView2 Runtime

        Download Snap Hutao

        Whatever installation method you used, package source and registration are always handled by Microsoft Store.

        Microsoft Store Link:Snap Hutao

        On Windows 10 and Windows 11 you can click the button above to download Snap Hutao.

        Upgrade to MS Store Version from Sideload Versions

        • Uninstall the sideload version with our uninstallation instruction document
          • You data will not lose as long as you don't delete data directory manually
        • Follow the method above to install the Microsoft Store version application

        Update Snap Hutao

        You can use any of the update methods, whatever method you used when you installed Snap Hutao. They don't need to be consistent, as Microsoft Store is the only source of packages.

        • Launch Microsoft Store
        • Click on Library in the bottom left to see all apps you have installed
        • Click Get updates on the top right and your application will be updated

        If you still don't receive the update, you may enter the Snap Hutao detail page in Microsoft Store, to allow the store to fetch the latest metadata.

        Installing WebView2 Runtime

        WebView2 Runtime is provided by Microsoft, which enables a built-in browser at a low resource cost inside the program. As an optional component, WebView2 is not a mandatory component, but it will make some Snap Hutao's features easier.

        At the bottom of the Microsoft official page, you can findEvergreen Standalone Installer, choosex64download and install as prompted


        1. As LTSC and LTSB Windows versions do not contain Microsoft Store and some other necessary dependencies, they are not supported.Windows 10 Build 19041 is allowed to install Snap Hutao, but some features have known issues caused by Windows Os Kernal, those issues won't be fixed. ↩︎

        - + diff --git a/en/rss.xml b/en/rss.xml index 4e079fb52..10b818ef5 100644 --- a/en/rss.xml +++ b/en/rss.xml @@ -6,8 +6,8 @@ https://hut.ao/en/ Super utilitarian Genshin Impact Toolkit en-US - Tue, 28 Nov 2023 03:30:05 GMT - Tue, 28 Nov 2023 03:30:05 GMT + Tue, 28 Nov 2023 07:04:52 GMT + Tue, 28 Nov 2023 07:04:52 GMT vuepress-plugin-feed2 https://validator.w3.org/feed/docs/rss2.html open source diff --git a/en/side-load.html b/en/side-load.html index 2aebd528b..7aa5a5cac 100644 --- a/en/side-load.html +++ b/en/side-load.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        DGP-StudioLess than 1 minute

        侧载安装

        通用安装方式

        • 在系统设置中打开开发者设置界面,勾选 开发人员模式允许 PowerShell 脚本 (自行百度)
        • 解压已下载的压缩包,找到Install.ps1文件,右键选择使用PowerShell运行,按照提示允许 PowerShell 执行操作即可
        • 安装完毕,胡桃将出现在您的开始菜单

        小白级安装方式

        • 解压已下载的安装包
        • 运行 Snap.Hutao.Installer.exe
          • 该程序将执行上述通用安装方式的命令
        • 安装完毕,胡桃将出现在您的开始菜单

        升级胡桃工具箱

        • 解压你下载的最新版本压缩包
        • 重复 安装胡桃工具箱 的步骤
        • 若您安装失败或出现异常情况,可参考如下步骤
          • 先卸载已经安装的胡桃工具箱
          • 重复 安装胡桃工具箱 的步骤
        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.8
        - + diff --git a/en/star-request.html b/en/star-request.html index 4d87030f7..b11c19955 100644 --- a/en/star-request.html +++ b/en/star-request.html @@ -31,10 +31,10 @@ } - + - + diff --git a/en/statements/bug-report.html b/en/statements/bug-report.html index edd751a47..20e6db9f0 100644 --- a/en/statements/bug-report.html +++ b/en/statements/bug-report.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Submit Bug Report

        DGP-StudioAnnouncementLess than 1 minute

        Submit Bug Report

        You can submit bug reports when you find reproducible issue that cannot be fixed by yourself

        Before submitting your issue, please do the following checklist:

        If you don't get a solution from the above checklist, you can start a new issue on GitHub

        If you need some examples of good issues, you can check them hereopen in new window

        • Submit your issue on GitHub
        • You should include these information in your issue:

        Request Document Update

        If you think Snap Hutao document is missing some information or contains errors, you can start an issue on Snap.Hutao.Docs project

        - + diff --git a/en/statements/index.html b/en/statements/index.html index 9b2711e5c..d1eed719d 100644 --- a/en/statements/index.html +++ b/en/statements/index.html @@ -31,10 +31,10 @@ } - + - + diff --git a/en/statements/privacy-notice.html b/en/statements/privacy-notice.html index 5c788502f..1d344f378 100644 --- a/en/statements/privacy-notice.html +++ b/en/statements/privacy-notice.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        User Data and Privacy Notice

        DGP-StudioAnnouncementLess than 1 minute

        User Data and Privacy Notice

        Personal Information

        The nature of Snap Hutao project states it does not collect any personal information data.

        Regular Data Usage

        Snap Hutao respects the privacy of users, and we're currently using data as described below:

        • Once using Snap Hutao,the database file in the data directory

          • Store
            • MiHoYo BBS and HoYoLab cookie
            • Snap Hutao program settings
            • All other user data
        • When using Snap Hutao, we collect anonymously logs data for development and statistical purposes when program stops unexpectedly or throw an error, including - User device ID - Error or crash log - Active user statistical data

        • When using Hutao Database (Abyss Record/Abyss Stats) feature and select Upload Data

          • Upload data to Hutao API, including
            • User's in-game UID
            • User's Abyss record
            • User's character information including artifact and weapon data
        • After using Real-time Notes features

          • Create a Windows scheduled task to fetch data timely
        • After using server switch feature in Game Laucher, in Snap Hutao's data directory

          • Store game files for server switch usage
        • After using Hutao Account features, Hutao Account system server will

          • Store
            • User registered email address
            • Encrypted password

        Trustable Domains

        Snap Hutao project is holding the following domains, they are trustable in this project scope, please be wary of information provided by domains outside this list (including websites, emails, etc.)

        • hut.ao
        • snapgenshin.com
          • We only use this domain for system emails
        • dgp-studio.cn
          • We only use this domain for public email contact
        • snapgenshin.cn
        • hutao.ao
        • snaphutao.com
        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.8
        - + diff --git a/en/statements/tos.html b/en/statements/tos.html index 6c2c54844..665245b37 100644 --- a/en/statements/tos.html +++ b/en/statements/tos.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        User Agreement and Legal Notices

        DGP-StudioAnnouncementAbout 6 min

        User Agreement and Legal Notices

        General Provisions

        • This "User Agreement and Legal Disclaimer" (hereinafter referred to as "Terms" or "User Agreement") applies to all software works developed by the DGP-Studio development team (hereinafter referred to as "the team" or "we"), the official website of each development project, and affiliated self-hosted media accounts.
          • Please read all the contents of this User Agreement carefully. If you have any objections to any terms of this User Agreement after reading it, please immediately stop using any projects developed by the team.
          • If you are under 18 years old, please read and fully understand this agreement with the accompaniment of a legal guardian, and obtain the consent of the legal guardian before using any projects developed by the team.
          • If you have installed, used, or referenced any projects developed by the team during development, it means that you have actively read (read it completely) and fully agree to the terms listed in this User Agreement, that is, you have fully understood this Agreement and promised to accept the constraints of the agreement, legal statements, privacy policies, rules, norms, statements, notices, and other content related to any projects developed by the team.
          • This "User Agreement" is a user agreement and legal disclaimer entered into by the user (hereinafter referred to as "you") and any projects developed by the team. This agreement has legal effect on both the user and the team.

        Nature of the Project, Services, and Definition of Responsibilities and Obligations

        1. As all projects developed by the team are "open-source" and "non-business" in nature, the team can make full decisions at any time, including but not limited to changing the "User Agreement" and modifying any content within any projects developed by the team. If there are any changes to the "Terms" or the content of the works, we will post notices on the relevant project display website. The revised "Terms" will take effect automatically after they are published on the official website.

        2. The development of this software is aimed at "learning development knowledge" and "accumulating development experience." All functions provided by all projects are "open-source" and "non-business" in nature. If you are dissatisfied with the security of any projects developed by the team, please uninstall/delete/stop using them immediately. If you continue to use them normally, it means that you approve of the security of any projects developed by the team.

        3. Any "unexpected losses (including but not limited to: software, hardware, property, virtual items, etc.)", "contractual damage", "defamation", "copyright or intellectual property infringement," and the resulting losses and liabilities caused by the use of any content in any projects developed by the team are all "losses and liabilities" caused by the user's own use behavior of open-source software on the Internet. Based on the MIT license declared in all works at their open-source location (i.e., GitHub) and the content stipulated in this declaration, it should be deemed that the aforementioned "losses and liabilities" have no responsibility relationship with all the relevant developers of the projects.

        4. During the user's use of any projects developed by the team, the team does not make any guarantees that do not occur under the following circumstances:

          • The user cannot use or update normally due to network conditions, communication lines, and other technical reasons;
          • Negative results caused by using "plug-ins in this software developed by a third party," "modified versions of this software compiled by a third party," and "software compiled by reusing project code created by this development team."
        5. Users acknowledge that any project developed by our team requires active user trigger for any information upload, except for necessary upload reports or related information in passive receipt of software or other related projects.

          • Users acknowledge that any project developed by our team fully respects and protects the "personal privacy rights" of all users. The project code is also fully open, and users do not have subjective reasons to accuse the development team or team members of "violation of privacy rights".
          • Any personal information of users will not be shared or transferred to third parties by any project developed by our team, unless with the user's prior authorization or the shared and transferred personal information has been de-identified and the third party cannot re-identify the natural person subject of such information.
          • Any project developed by our team contains links to other sites. When you visit third-party links, please read the user agreement and statement of the third-party site carefully. Our team is not responsible for the content, privacy terms, and usage agreements of third-party sites.
          • When using any project developed by our team, we cannot guarantee that the information you submit will be saved successfully. You need to properly store and keep the information you submit. Some projects developed by our team provide storage for "authorized data," but there are various force majeure factors in the storage process. Our team cannot promise to keep users' stored information indefinitely. Please back up your important information yourself.

        Rights and Obligations

        1. Our team allows any individual or organization to conduct secondary development, functional modification, and reuse of our code for other projects without our team's authorization, for any project developed by our team. However, we reserve the right to pursue legal action against any infringement of our team's computer software copyright.

          • Our team shall not be responsible for any consequences resulting from the public release of the contents of any project developed by our team (including but not limited to video production, articles with content of this software, uploading to download sites not designated by our development team, etc.) by any individual or organization using the project developed by our team.
          • Our team shall not be responsible for any consequences resulting from the use of "third-party subsidiary programs or additional code that can be used for any project developed by our team", "modified versions of any project developed by our team that have been compiled by third parties", or "software compiled using the project code created by our development team".
          • Based on the legal definitions of "computer software" and "documents" in Article 2 and Article 3 of the "Regulations on the Protection of Computer Software," DGP Studio reserves all computer software copyright for all of our development projects. This includes but is not limited to all information necessary to construct the project and all document data related to the project (i.e. program design specifications, flowcharts, user manuals, etc.), with the actual content subject to the "Computer Software Copyright Registration Certificate" for each project.
        2. Any project developed by our team is only intended for lawful and compliant learning and research use and shall not be used for illegal activities.

          • Our team is only a development team (not a legal entity composed of natural persons), and shall not be held responsible for any joint liability for any use of the software or any project developed by our team that results in any legal consequences.
          • If a user has already started using any project developed by our team, it means that they have agreed to the "Usage Agreement" and that our team has already fulfilled the notification requirements in Section 10 of this Usage Agreement.
        3. Copyright of the developed projects.

          • Our software development team holds the ownership of all trademarks in the software itself (excluding display content other than functional modules), all historical versions of the aforementioned works, and the surrounding websites. We also hold any related rights and interests regarding copyright.
          • All statistical data of any project developed by our team comes from users who submit data voluntarily. After the data is screened, it is displayed. Therefore, our team is not responsible for the accuracy of the data, and the data is not related to us.
          • During the use of any project developed by our team, there may be data that has original copyright. For these data, our team does not own their ownership. In order to avoid infringement, the user has the obligation to fully read and comply with the content of Section 10 of this Usage Agreement. The resources used in this software (including but not limited to fonts, images, and text) are from public information on the Internet. If infringement occurs, you can contact us at our GitHub to remove it.
          • Snap Hutao program and hut.ao website are not affiliated with miHoYo.
          • The copyright of Genshin Impact's game content and various materials and trademarks belongs to miHoYo.

        Other Terms

        1. Determination of "Non-Business Nature" of Projects Developed by the Team.

          • Any project developed by the team has no business nature.
          • If individual or certain members of the development team, during their participation in the development of any project developed by the team, have entered into relationships with third-party users, including but not limited to gifts, exchanges, sales, etc., the resulting relationships are unrelated to the development team. This occurrence is not based on the fact that the team developed a related project, but rather on independent events that occurred at the location where the user entered into the aforementioned relationship on the Internet or in reality. The nature of this behavior should be determined based on the user terms of use at the Internet interaction location where the aforementioned relationship occurred, or in combination with specific behaviors that occurred in reality.
        2. Any project (including websites) developed by the team is developed for the purpose of "learning development knowledge" and "accumulating development experience," and is only for learning and communication purposes. It is strictly prohibited to use it for commercial purposes. After downloading or viewing the learning materials, please delete all related information within 24 hours. If you ignore this requirement, the software development team is not responsible for "possible copyright disputes, infringement of intellectual property rights, and civil disputes."

        3. The establishment, effectiveness, performance, interpretation, and dispute resolution of this agreement shall be governed by the laws of the mainland of the People's Republic of China. If any provision of this agreement conflicts with the laws of the People's Republic of China and is invalid, these provisions will be reinterpreted as closely as possible to the original intent of this agreement. The other provisions of this agreement shall remain in full force and effect.

        4. The place of signing this agreement is Liaohe Oilfield Mining Area, Panjin City, Liaoning Province, China. If a dispute arises in the performance of this agreement, the parties shall resolve it through consultation. If no agreement can be reached through consultation, the Liaohe People's Court shall have jurisdiction, and the appellant shall bear the costs of each stage immediately.

        5. The titles (including subtitles) in this agreement are for convenience and reading only and do not affect the meaning or interpretation of any provisions of this agreement.

        6. Both you and the development team are independent entities, and under no circumstances does this agreement constitute any express or implied guarantee or condition of the development team towards users. There is also no agency, partnership, joint venture, or employment relationship between the two parties.

        7. In this "User Agreement and Legal Statement," the term "our party" or "the development team" (as distinguished from "you" or "the user") refers to the entire team of DGP-Studio Development Team, including each individual member.

        Last update:
        Contributors: Masterain,Mr.Hope
        - + diff --git a/en/statements/update-log.html b/en/statements/update-log.html index 8efb3ddbd..ce4e8de4b 100644 --- a/en/statements/update-log.html +++ b/en/statements/update-log.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Update Logs

        DGP-StudioAnnouncementAbout 11 min

        Update Logs

        1.8.1 latest

        • Add
          • Added Discord Activity synchronization functions in Game Launcher, it syncs game status when playing Genshin Impact #1082open in new window
        • Fix
          • Fixed the issue where navigating from Wish Export page Hutao Cloud panel to Spiral Abyss page would not synchronize the navigation bar options #1116open in new window
          • Fixed the issue that Auto Click feature cannot bind with Alt key #1119open in new window
          • Fixed item refresh issue after switching plans in Dev Plan #1099open in new window
          • Fixed issue that only blank name json file can be imported in Achievement page #1124open in new window
          • Fixed full package download link under Resource Download page in Game Launcher, it is replaced with split files link #1126open in new window
          • Fixed the notification issues from Realtime Note, includes wrong content, repeated notifications and unexpectedly bypass client mode #1123open in new window
        • Optimization
          • Added overtime refresh rules for Fingerprint/CookieToken, users don't need to click Refresh Cookie in User Panel so often #1121open in new window
          • Remake Character WIKI page UI
          • Added hint text when there is no signed in MiHoYo BBS account #1127open in new window

        1.8.0

        • Upgraded .NET version to 8 #1103open in new window
        • Fixes
          • Fixed translation issues with Hutao Passport registration/logoff/reset password prompts #1087open in new window by @Tangweirui2021
          • Fixed an issue with the first-row items on the Dev Plan page not refreshing correctly after switching plans #1099open in new window
          • Fixed an issue on the Game Launcher page where borderless and exclusive fullscreen could not be set simultaneously #1106open in new window
          • Replaced the file pickers implementation, resolving the problem of being unable to use the file pickers under administrator privilege #1096open in new window
          • Fixed an issue where initializing user information at startup could lead to program freezing
          • Fixed unnecessary exceptions occurring on certain pages after being switched from
          • Fixed issues with some exceptions not being captured properly
        • Optimization
          • Added more detailed failure information for metadata initialization

        1.7.17

        • Fix
          • Fixed the issue that the first item in Dev Plan won't be refresh after switching the plan #1079open in new window
          • Fixed the issue that wish record URL for global server cannot be found #1081open in new window
          • Fixed the issue that error log cannot be captured correctly in some specific situations
          • Fixed wrong wish record time issue
          • Fixed the data exception in MiHoYo BBS web pop-ups
          • Fixed the issue of wrong corner radius settings of mask of history/character/weapon page in Wish History
          • Fixed the wrong announcement time in time zone other than UTC+8
        • Optimization
          • Optimized the UI of MiHoYo BBS web pop-ups, supports backward and refresh feature, supports showing the web title
          • Auto click feature now can be switched off and hot key can be changed #961open in new window
          • Added support of UIGF v2.4 format import and export

        1.7.16

        1.7.15

        • Add
          • Added option to recover full wish history record backup from Snap Hutao Cloud service into new archive #886open in new window
        • Fix
          • Fixed issue that invalid game launching parameter can be parsed; added switch for some launch parameters #1061open in new window
          • Fixed issue that user cannot register Snap Hutao account in the client #1059open in new window
          • Fixed notification issue after Realtime Note Webhook Url is set
        • Optimization
          • Optimized Snap Hutao account's change password and delete account logic in the client

        1.7.14 hotfix

        1.7.13

        • Add
        • Fix
        • Optimization
          • Added localization support on prompts that returned by Snap Hutao Cloud server
          • Redesigned Snap Hutao Passport UI, and now it is embedded in settings page #911open in new window
          • Redesigned advanced game launcher page UI
          • User now can view and select launcher parameters in advanced game launcher

        1.7.11 hotfix

        • Fixed the game launching arguments error (hotfix)

        1.7.10

        • Fix
          • Fixed login issue with HoYoverse account #1011open in new window #1012open in new window
          • Fixed daily check-in issue on HoYoLAB account #1013open in new window
          • Fixed issue that Invalid item error show up when language does not match in UIGFv2.2 data file #1001open in new window
          • Fixed crash issue when an invalid CAPTCHA Url is input in the setting
          • Fixed crash issue when an invalid channel setting is given when launching the game
          • Fixed crash when switching account while WebView2 Runtime version is too low to have necessary feature
          • Fixed crash issue when an invalid record is displayed in Spiral Abyss page
          • Fixed a memory overflow issue in embedded pages
        • Optimization
          • Current game account now can be automatically identified when reaching the game launcher page

        1.7.9

        • Fix
          • Fixed an issue that prevented the program from launching with the correct window size after the monitor resolution was changed after exiting the program
          • Fixed login issue of MiHoYo BBS #1005open in new window
          • Fixed HoYoverse login issue #1007open in new window
          • Fixed crash log upload issue in version 1.7.7
          • Fixed UI display issue on Team Lineup page in Spiral Abyss feature #1008open in new window

        1.7.7

        • Added card shadow in the following elements to optimize visual effect
          • Dashboard and in-game announcements
          • Download resource card in advanced game launcher page
          • Overview card in wish export page
          • Statistics card in wish export page
          • Real-time note card
          • List view in my character page
          • Image card in character WIKI
          • Image card in weapon WIKI
        • Fix
          • Fixed top margin error under grid view
          • Fixed grid view crash issues from multiple causes
          • Fixed server conversion issue from CN server to Bilibili server
        • Optimize
          • Optimize button position for manual account validation
            • You can now find it directly from account panel
          • Added retry logic for fetching abyss record and record upload
            • User who does not set up CAPTURE verification API can retry after manually validating account from account panel

        ## 1.7.6

        • Add
          • Added mouse auto click feature triggered by F8, under Administrator privilege mode
            • In the upcoming Genshin Impact 4.1 and 4.2 version, this feature may help you skip some task conversation you dislike
        • Fix
          • Fixed crash issue when switching account after validating cookie on Realtime Notes page #947open in new window
          • Fixed failure of matching current in-game account after rebooting Snap Hutao and game client #865open in new window
          • Fixed display issue on Achievement page #956open in new window
          • Fixed an issue that Genshin Impact 4.1 version metadata will cause program to crash on Spiral Abyss page
        • Optimize
          • Optimized some user interface details on some pages
          • Optimized announcement text color in some particular situation
          • Optimized download logic of downloading static images

        1.7.5 latest

        • Add
        • Fix
          • Fixed game launcher card on dashboard showing empty account issue #924open in new window
          • Fixed achievement status cannot be saved when be manually unchecked #880open in new window
          • Fixed issue that Realtime Note verification on wrong MiHoYo BBS account
          • Fixed issue that sometime spiral abyss statistics data are missing
        • Optimizations
          • Optimized some error messages, added solution hints #930open in new window
          • Snap Hutao Announcements content on dashboard now is copyable #929open in new window
          • Abyss Stats page is now merged into Abyss Records page
          • Optimized time format in multiple places

        1.7.4 latest

        • Add
          • Added option to change PowerShell entry in settings page
          • Added option to create desktop shortcut in settings page #912open in new window
          • Added option to switch display of cards on home dashboard
          • Added batch-add to Dev Plan option on My Character page
        • Fix
          • Fixed an issue which event start time is not accurate on Home Dashboard #887open in new window
          • Fixed an issue on My Character page that caused crashes when clicking on weapon that is not synchronized by Enka API #904open in new window
          • Fixed an issue of weapon value display error on My Character page #907open in new window
          • Fixed an issue where Bilibili server cannot be converted to some other servers #893open in new window
          • Fixed an issue where fetching Novice Wish history will cause the program to crash #917open in new window
          • Fixed an issue where a Dev Plan was not pre-selected before entering the Dev Plan page, which had caused the Dev Plan page to need to be entered at least once to add a Dev Plan archive
          • Fixed the issue that failed to claim checkin reward when triggered anti-bot verification, even when anti-bot API returns success result
        • Optimize
          • Optimized monsters' display order on Monster WIKI page
          • Optimized launch speed of Wish History page
          • Optimized local database thread on UI display functions
          • Optimized the scrolling experience for some views of Dev Plan, it may now take longer for views to be loaded

        1.7.3

        • Fixed the issue of HoYoverse web login not working
        • Upgraded the Windows App SDK version to fix the issue where the top of the title bar could not resize the window
        • Adjusted the prompt for UIGF v2.2 file import failures, now allowing for faster issue identification based on IDs
        • Fixed the issue where the user panel would display a successful claim of login rewards even if it failed
        • Fixed the problem where launching the game from the taskbar would open both the game window and the main program window simultaneously

        1.7.2

        • Wish Export
          • Fixed an issue where full refresh was not working correctly.
          • Fixed an issue where no-error UIGF files were not being imported correctly
          • Fixed an issue where Hutao Cloud records were not being retrieved correctly
          • Adjusted the UI of the Hutao Cloud window to display the number of wishes corresponding to the UID archive
        • My Characters
          • Adjusted the UI to make it more compact
        • Adjusted the UI of the homepage notifications to align them with the right edge

        1.7.0

        • Add a startup guide to help user familiarize Snap Hutao on start launch
          • Guiding users to select a language
          • Guiding users to confirm terms of service
          • Guiding users to install Segoe Fluent Icons font and WebView2 Runtime
          • Guiding users to download static assets
        • Main Interface
          • Adjusted icon styles in the navigation bar
          • Fixed a bug where adjusting window size could lead to unexpected crashes
        • User Panel
          • Adjusted styles of the user panel
          • Added a button to allow the current user to claim sign-in rewards
          • Fixed an issue where in some cases, the current user and character could not be selected correctly on startup
        • Home Dashboard
          • Added Snap Hutao announcement
          • Real-Time Note now display refresh time for each card
          • Fixed an issue where Real-Time Note card fail to load correctly, leading program to freezing or crashing
          • Corrected start/end times for certain event announcements
          • Fixed an issue where some paragraphs were not displaying correctly when viewing details of certain announcements
        • Game Launch (Advanced Launcher)
          • Added game status indicator text to the command bar
          • Fixed an issue where server switch function was not working
          • Adjusted server switch function logic to allow retries after resource download failure
          • Adjusted unlocked frame rate logic; game process will automatically end if unlocking fails
          • Removed multi-client
          • Fixed an issue in resource download page where game client had no names and couldn't be downloaded
        • Wish History
          • Adjusted card style on the overview page, making items larger and collapsing multiple text items
          • Fixed an issue where entering the wish history page without logging in or without Snap Hutao Cloud service caused errors
          • Fixed progress bar and color display issues in the card list view on the overview page
          • Fixed incorrect text for Snap Hutao Cloud's upload reward
          • Fixed the issue that UIGF formatted data file with incorrect item ID can be imported
          • Fixed the issue that failed to locate game cache directory
          • Optimized page load speed when there is a large amount of items
        • Achievement
          • Fixed a display issue that occurs after selecting achievement categories in list/grid view and switching to the other view type
          • Optimized page load speed
        • Real-Time Notes
          • Adjusted the style of the Verify Current User and Role button
          • Adjusted the style of the notification settings view
          • Added an option to disable auto-refresh for real-time notes (toggle available only in non-administrator mode; users who have previously accessed the real-time notes page in administrator mode might not be able to toggle this option)
          • Adjusted the style of real-time notes
          • Adjusted text prompts for locked Serenitea Pot and unowned Parametric Transformations
          • Added previous refresh time for each Real-time note cards
        • My Characters
          • Adjusted width of character list when using list view
          • Added a button to toggle display of refresh time in command bar
          • Added previous refresh time for each refresh function
          • Added display of times artifacts were enhanced in character details
        • Dev Plan
          • Fixed issue failure of saving active archive when switching page from dev plan to others
        • Character WIKI
          • Fixed a display issue that occurs after selecting character in list/grid view and switching to the other view type
        • Weapon WIKI
          • Fixed a display issue that occurs after selecting weapon in list/grid view and switching to the other view type
          • Added ascension material section for each weapon
        • Monster WIKI
          • Fixed a display issue that occurs after selecting monster in list/grid view and switching to the other view type
        • Settings
          • Fixed issue that unable to clear game cache directory
          • Added configuration field for Geetest CAPTCHA verification API, correct configuration on this field can handle anti-bot verification from MiYouShe
        • Improved program frame rate performance
        • Optimized memory usage for multi-thread scheduling
        • Optimized loading speed of item image assets
        • Adjusted database read/write methods to optimize memory usage and responsiveness
        • Adjusted text prompts for return codes -100 and -10001 to help users better understand their meanings
        • Other minor changes

        1.6.6

        • New
          • Snap Hutao Cloud tab will show expiration time and developer's license on the wish history page now
          • Wish statistics are now available on the wish history page, with data supported by Snap Hutao Cloud
        • Fix
          • Fix failure of web cache refresh method for wish history export
          • Fix Traditional Chinese metadata loading error

        1.6.5

        1.6.4

        • New
        • Fix
        • Optimize
          • When running program without administrator privilege, features require administrator privilege will have text hints
          • Support of HoYoLAB
          • Localization updates

        1.6.3

        • New
          • Home dashboard, including Hutao Cloud account, game launcher, wish history, achievement stat and real-time notes
          • Enable notification box will now automatically hide in-app notification
          • CN server option without TapTap account
        • Fix
          • Issue that user cannot get Hutao Cloud bonus after uploading Abyss record
          • Issue that cannot sign in to HoYoLab with Facebook
          • HoYoLab check-in issue
          • Issue when facing empty value during wish history fetch progress
        • Optimize
          • Project refactoring, brings a 20% performance improvement
          • Add localization support for WIKI features
          • Add support for all international channels (which affect payment gateway)
            • Supporting HoYoverse official, Google Pay, Epic
          • When Unlock framerate limit is enabled, limit value can be modified during the game, and will take effect immediately

        1.6.2 latest

        • New Feature
          • Wish history cloud backup based on Hutao account system
            • Currently, sponsors on AFDIAN and beta users will receive corresponding cloud membership time; All registered users will receive 5 days membership time after uploading Abyss record.
            • This feature will be optimized constantly in the following 1.6 versions
        • Fix
          • Issue that BiliBili server account cannot receive data for Real-time Notes
          • Issue on HoYoLab login
        • Optimize
          • Static assets download logic

        1.6.0

        • Add
          • Hutao account system with registration and login available now
          • Support of HoYoLab account login, and add its support to the following features:
            • Web login and Stoken Cookie login
            • Abyss record
            • Daily check-in reward
            • My character
            • Real-time notes
        • Optimization
          • Performance of frame rate unlock
          • Multi-client
          • Now users must unlock advanced features in the settings page before actually using them
          • Settings page layout
          • Tiles image on Windows 10

        1.5.4

        • Add
          • Game Launcher
            • Game resource package download
            • Allow multiple Genshin Impact process to run
            • Allow users to select the specified monitor to start the game
          • New icons have been used
        • Fix
          • Issue caused unlimited file writing during server switch
        • Optimization
          • Optimize default language selection
          • Allow device ID be copied with button
          • Setting page UI optimization

        1.5.1

        • Optimization
          • Replace JumpList menus with JumpTask,
          • Add option to allow user set language over system default setting
          • Add translation contribution entry
          • Add options to reset the image resource
        • Add
          • Monster WIKI
          • Korean translation
          • Internationalized Metadata

        1.4.15

        • New
          • Static image reset method
          • Cookie refresh
        • Fix
        • Optimization
          • Optimize Dev Plan UI #486open in new window
          • Optimize English and Traditional Chinese translations
          • Add hints when Windows long path limits are triggered
          • Optimize wake-up for scheduled tasks

        1.4.14

        • Fix issue that new dev plan cannot be added
        • Support English UI
        • Other minor bug fix

        1.4.11

        • First version on Microsoft Store
        - + diff --git a/index.html b/index.html index 2799f40c3..b3d926951 100644 --- a/index.html +++ b/index.html @@ -31,10 +31,10 @@ } - +
        Skip to main content

        Home

        DGP-StudioLess than 1 minute

        Redirecting to the correct locale...

        Comments
        • Latest
        • Oldest
        • Hottest
        Powered by Waline v2.15.8
        - + diff --git a/rss.xml b/rss.xml index 1981ef305..5758d9fc9 100644 --- a/rss.xml +++ b/rss.xml @@ -6,8 +6,8 @@ https://hut.ao/ en-US - Tue, 28 Nov 2023 03:30:05 GMT - Tue, 28 Nov 2023 03:30:05 GMT + Tue, 28 Nov 2023 07:04:52 GMT + Tue, 28 Nov 2023 07:04:52 GMT vuepress-plugin-feed2 https://validator.w3.org/feed/docs/rss2.html diff --git a/service-worker.js b/service-worker.js index 82218788c..ae406642d 100644 --- a/service-worker.js +++ b/service-worker.js @@ -1,2 +1,2 @@ -if(!self.define){let e,s={};const a=(a,c)=>(a=new URL(a+".js",c).href,s[a]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=a,e.onload=s,document.head.appendChild(e)}else e=a,importScripts(a),s()})).then((()=>{let e=s[a];if(!e)throw new Error(`Module ${a} didn’t register its module`);return e})));self.define=(c,i)=>{const d=e||("document"in self?document.currentScript.src:"")||location.href;if(s[d])return;let r={};const t=e=>a(e,d),f={module:{uri:d},exports:r,require:t};s[d]=Promise.all(c.map((e=>f[e]||t(e)))).then((e=>(i(...e),r)))}}define(["./workbox-33d91895"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.clientsClaim(),e.precacheAndRoute([{url:"assets/404.html-73628d5c.js",revision:"02b312ae848231a1e5d0eb0de939b8e2"},{url:"assets/404.html-cc4520a7.js",revision:"603894850918e0d0424fa87be67b1b21"},{url:"assets/achievements.html-48ffc151.js",revision:"13a76d7e8cfcf1bd939c185ee15085f9"},{url:"assets/achievements.html-a2f7d03f.js",revision:"6e6bb11fa07488451c918e3fed6911e9"},{url:"assets/achievements.html-a6a0de9a.js",revision:"75eab6790f6d5e7f011445af2520df05"},{url:"assets/achievements.html-c51f91b4.js",revision:"2fd577e9c8c44a1f14b2ecb8bb47c6cd"},{url:"assets/app-8966c29b.js",revision:"11207f335666e74107337610eec709d7"},{url:"assets/bug-report.html-23f07cf7.js",revision:"bed51c5f219e85eb77c9aa1cf409a4ea"},{url:"assets/bug-report.html-310cbc3b.js",revision:"0b90cc93185ccd747c1d04a2ccf8210e"},{url:"assets/bug-report.html-690a4891.js",revision:"37bffba88a47ff72779dcd20268ad752"},{url:"assets/bug-report.html-84fe1704.js",revision:"cdc39d1ae597168004ffecbec46ca1aa"},{url:"assets/character-data.html-0e2a5520.js",revision:"7defb148f667ad979edf5a14078c29d3"},{url:"assets/character-data.html-42720767.js",revision:"26bb97d023b8bf081334042267a35385"},{url:"assets/character-data.html-8a78117e.js",revision:"f3941634724fcc4938079fa9c55a2b01"},{url:"assets/character-data.html-9b06863f.js",revision:"8b38f7636ddf99c199fe479e741560a7"},{url:"assets/character-wiki.html-1a49a85c.js",revision:"6734ae1b7c0f1119365873bed940450a"},{url:"assets/character-wiki.html-1b9db7c1.js",revision:"c254c0d48e5fcdac79185e870835dbf0"},{url:"assets/character-wiki.html-1c3e2191.js",revision:"38f32ee69cad57fabd62bc82bb78a24d"},{url:"assets/character-wiki.html-90b9eedb.js",revision:"8dfc2f275cfe6ccfc8159cc3ffbdb9bd"},{url:"assets/community.html-1c109378.js",revision:"01084112b701941a5935f499a4e74b16"},{url:"assets/community.html-6555cfd3.js",revision:"2c2b55b3271c346e6ea752f039f8a734"},{url:"assets/community.html-84f8e709.js",revision:"044388d4b7b8152ac5df304c080d0cc7"},{url:"assets/community.html-f8bc6215.js",revision:"1cc0d886bc7215b0fb5bccbe0128639d"},{url:"assets/component-ee6bd77b.js",revision:"e357b7702cb8fdd0ab8d22c236d756e7"},{url:"assets/contribute.html-64ac2d95.js",revision:"204b515728553ce1d712a01e2c249605"},{url:"assets/contribute.html-70e3d28c.js",revision:"21394fe2b8791e894161f7d0edc98fde"},{url:"assets/contribute.html-7f946320.js",revision:"18599b25749263485f64f72421a43ddf"},{url:"assets/contribute.html-d0274f20.js",revision:"086dea958ff93981a0c3f9f9c9016567"},{url:"assets/dashboard.html-1f8f954a.js",revision:"ed7585ee81ed8ecb56fa87bc3f7c2da5"},{url:"assets/dashboard.html-50b728ce.js",revision:"4f61da7b47cc877825b939ca85ef9c21"},{url:"assets/dashboard.html-877fc948.js",revision:"8a210f8977c40992ab3c726bb356b4a8"},{url:"assets/dashboard.html-de43d08c.js",revision:"196a6ca2646b2292ace1ae77cee8b4d0"},{url:"assets/dependency.html-0db61041.js",revision:"9507fd57cb5eaf8674c89342f25aca21"},{url:"assets/dependency.html-6aa2a973.js",revision:"e669ebecaa985c9836b7cbbe1a3b7efa"},{url:"assets/dependency.html-cb812315.js",revision:"e8577918470c24e6896599ffc443359e"},{url:"assets/dependency.html-cc0594b5.js",revision:"abb1939d7d2189901a1c8b88eb18d50c"},{url:"assets/develop-plan.html-4cd8de09.js",revision:"0ea5475c971b1fa3c7eac3c95d82c901"},{url:"assets/develop-plan.html-72b138aa.js",revision:"9070fb1ed188e5fa1c8efa2619e90818"},{url:"assets/develop-plan.html-80517d09.js",revision:"f355b46ae08993ed3458824cbc8f428f"},{url:"assets/develop-plan.html-95024404.js",revision:"692fe4ede7845a3c806139d06cc1b3f3"},{url:"assets/docsearch-1d421ddb.js",revision:"582ce23a3b7a09735ae2e462904b2e3a"},{url:"assets/exceptions.html-5e79025e.js",revision:"fe972e8c932f2355356f8dcac9ffcbeb"},{url:"assets/exceptions.html-a05a1b2d.js",revision:"968828e74ee284108dd0e46d80800d01"},{url:"assets/exceptions.html-d3fe7c53.js",revision:"f05a3364699576067e4aab9eafebcae7"},{url:"assets/exceptions.html-fc4790dc.js",revision:"76a3d6883ea2705ef4cc6b2cbd456242"},{url:"assets/FAQ.html-2df9b9a2.js",revision:"f3c9a2dcb8f7b6789159117c6d5a7f55"},{url:"assets/FAQ.html-42cbaba4.js",revision:"85d981c1081e1f75f102f9bbb86676f2"},{url:"assets/FAQ.html-58ca3047.js",revision:"dee0c9854d3a79e051cc52f64d85107c"},{url:"assets/FAQ.html-dd5de6e3.js",revision:"08565f61551e0567fd9f208a5f59a247"},{url:"assets/Gacha-system-and-export-principal.html-015af494.js",revision:"ce641ab3fb44cf7d3c118e52e2e9e4b7"},{url:"assets/Gacha-system-and-export-principal.html-340b7e28.js",revision:"a8c282b81182b205152ab38d224300cc"},{url:"assets/Gacha-system-and-export-principal.html-81906cdb.js",revision:"c294c2c93b1030af939992f5cac028c5"},{url:"assets/Gacha-system-and-export-principal.html-a2c73de6.js",revision:"a8c282b81182b205152ab38d224300cc"},{url:"assets/game-launcher.html-3ffa01a8.js",revision:"2e1ca7626c228730cb2d2d89fbfeea99"},{url:"assets/game-launcher.html-48fbcd0a.js",revision:"faa3250409d30ba684322ed2a33905f5"},{url:"assets/game-launcher.html-904f564a.js",revision:"e9c291323ac23152d2dca9566f0aaeb3"},{url:"assets/game-launcher.html-bbaa8a3b.js",revision:"c7706ba704e184828516d14b397f693a"},{url:"assets/get-stoken-cookie-from-the-third-party.html-032b8690.js",revision:"347925ad0d2c54e791f375dd713face8"},{url:"assets/get-stoken-cookie-from-the-third-party.html-3f1836be.js",revision:"78ebb9d9370a4c58cb3bd80863bcea83"},{url:"assets/get-stoken-cookie-from-the-third-party.html-698c6b8e.js",revision:"48059663f453f004ae4149f5c79744bb"},{url:"assets/get-stoken-cookie-from-the-third-party.html-75f986b3.js",revision:"dc026647681da97901bf0668ea77dd31"},{url:"assets/hutao-API.html-265d153a.js",revision:"647406edaa03cfb67b212524bcf3c202"},{url:"assets/hutao-API.html-4088b7a3.js",revision:"6205c4f437dc582fe620a9bbed791e31"},{url:"assets/hutao-API.html-c450cbe0.js",revision:"ab57dba63ac53e3e1a265e0df685f731"},{url:"assets/hutao-API.html-c6aa20fe.js",revision:"a44f687a1b3c2d553cc6506f9756be09"},{url:"assets/hutao-settings.html-0972e72a.js",revision:"1448ba843e523734ae1a7b90839b1257"},{url:"assets/hutao-settings.html-280e1afc.js",revision:"cb5fe502c022604c20df1164c9cb854c"},{url:"assets/hutao-settings.html-5f75f3e0.js",revision:"cc6144cdc1cc1e502d90f7b59dd13af2"},{url:"assets/hutao-settings.html-72e1a0f6.js",revision:"5a49038d6e41a095c6a58534b035b254"},{url:"assets/i18n.html-10933388.js",revision:"c4b1d2626298dff9d345783c66c1b9a8"},{url:"assets/i18n.html-36f51d1e.js",revision:"78931b56164c3a6bda4bf89c41534ed2"},{url:"assets/i18n.html-6ae0b651.js",revision:"343037d80437b847cab6a94f1ba99664"},{url:"assets/i18n.html-f972be08.js",revision:"baa9fa66b31c0976d12bc702842da205"},{url:"assets/index-82585c84.js",revision:"938526a93de840eecd804073030c5832"},{url:"assets/index-e32a7948.js",revision:"46a193641571106d3b7b43f9bc2a2735"},{url:"assets/index.html-061d6dc0.js",revision:"b28f922d563cf64d86259330b9927a11"},{url:"assets/index.html-07883274.js",revision:"04174cd79c3d4c0a1a1540b7693a0710"},{url:"assets/index.html-08181d34.js",revision:"0a5a6a8e88f5fd00023e43aa483ece97"},{url:"assets/index.html-0c692529.js",revision:"7e44e543db515753652bd78dde63ada7"},{url:"assets/index.html-25a8e1be.js",revision:"20b31e71591de917e41b5f6f3e5ebaaa"},{url:"assets/index.html-279f7857.js",revision:"30e9584503c92ac28b592451f4482133"},{url:"assets/index.html-3216a9e5.js",revision:"eaf3b1d621d6705eb2c3476f8159906c"},{url:"assets/index.html-6913b6c2.js",revision:"3472044dc3e4d1ec7359aabd1c35ad31"},{url:"assets/index.html-6a43042e.js",revision:"77cf96b2c3c39b7a622a3d95997b13a0"},{url:"assets/index.html-81dd031d.js",revision:"fd8b9ba49115551d897d53bc6841ee7e"},{url:"assets/index.html-8616774c.js",revision:"edbefcde92c4e01f99fae9abdcfd403f"},{url:"assets/index.html-947e2238.js",revision:"d896dd240ff16005bd475786b8c4b389"},{url:"assets/index.html-97c29d40.js",revision:"ac12243cfa9c017b4627db89390e1159"},{url:"assets/index.html-99346794.js",revision:"ccf8d0edbc095eb3943083dab0fc5dbe"},{url:"assets/index.html-9b2dfc89.js",revision:"a6670bef87b0eee8d6c3ff2dc79a0f32"},{url:"assets/index.html-a228d087.js",revision:"f597a202ff25b04eb08d9f40b4ecb9c6"},{url:"assets/index.html-c63d8593.js",revision:"a3d365328975a64fe5cdb7df5eb53943"},{url:"assets/index.html-ce254148.js",revision:"f4f322313fa70ab549b3d165ac5b1273"},{url:"assets/index.html-cead7bed.js",revision:"edef513650e64fc3efeb30b3da2c1336"},{url:"assets/index.html-e4c3aa9e.js",revision:"06f1ce39590c5d3055130fba61dd4939"},{url:"assets/index.html-ead0711a.js",revision:"de8de7dab77f3d8beb7480ed2831da3a"},{url:"assets/index.html-f72bced7.js",revision:"fde7ba03ba8fef1fbd35b0a155bd39a7"},{url:"assets/known-issue.html-353310f4.js",revision:"67ee4533cb4264ff960dead3eae34430"},{url:"assets/known-issue.html-7adae529.js",revision:"a5b28ff9d24e3640196535d50f58b23b"},{url:"assets/known-issue.html-dcf2dda3.js",revision:"2477a2e8cec3fe145c1f586abdab2efe"},{url:"assets/known-issue.html-ea460e26.js",revision:"1c2d06ed50fb212f720b6ca0d564cf4f"},{url:"assets/menu.html-37a47978.js",revision:"91b7cf707098fb8026edcbe62c9f6322"},{url:"assets/menu.html-5943d5ab.js",revision:"30d229a01e8144d8e59c8a481f4f82ba"},{url:"assets/menu.html-5e29ea11.js",revision:"43c77387eb0d9c82cc4f34720cac295e"},{url:"assets/menu.html-96b70279.js",revision:"83d531dbb71fa486bebb5fe7337d146a"},{url:"assets/mhy-account-switch.html-ca9beaf1.js",revision:"a7b9508fbf561048c43b568df3ecd41c"},{url:"assets/mhy-account-switch.html-d22df260.js",revision:"fcf72ab6527cf7b38cc6be2919743237"},{url:"assets/mhy-account-switch.html-db811865.js",revision:"cd64d7c7287848c2efae0443ba2db1f5"},{url:"assets/mhy-account-switch.html-e484bd06.js",revision:"7adaffb776297da7705e7b5c80bd0ac8"},{url:"assets/monster-wiki.html-3aaff82c.js",revision:"fb52177ade567751ab8bbece029c58a3"},{url:"assets/monster-wiki.html-a4668d7a.js",revision:"7970433e2b9746f25307b2fa55a36772"},{url:"assets/monster-wiki.html-e5fc1b84.js",revision:"4aa9b76dd6f261da285e955d4aec8cc2"},{url:"assets/monster-wiki.html-ed4ef353.js",revision:"16f8fda35bffa7a5ba4ba2c2f7c22cb7"},{url:"assets/photoswipe.esm-1464cdb9.js",revision:"3a72d9823ffa5943f03c5e884d0f66d8"},{url:"assets/platform.html-36392819.js",revision:"19d1086c6352139f94d9a534c67e228a"},{url:"assets/platform.html-a018603e.js",revision:"89a4ccb7922e5cb9670e02ecdd58b44f"},{url:"assets/platform.html-b4ee221c.js",revision:"1773dea34d2ec0cc218ad7debde1804a"},{url:"assets/platform.html-ec227b31.js",revision:"f4a3b4723af281c3c3146be834b362de"},{url:"assets/plugin-vue_export-helper-c27b6911.js",revision:"25e3a5dcaf00fb2b1ba0c8ecea6d2560"},{url:"assets/privacy-notice.html-0f688115.js",revision:"def37305b18f4e4e512e0771bd208288"},{url:"assets/privacy-notice.html-69586390.js",revision:"ccbb4203331610ce1af193c2dd780239"},{url:"assets/privacy-notice.html-8f872be8.js",revision:"45453f08d62daf7c2e9a42e51b65a3f1"},{url:"assets/privacy-notice.html-e40ff099.js",revision:"a2760af798972147096754cf017bfad9"},{url:"assets/project.html-8bb151df.js",revision:"ec465ef5ab2d3f2d44d717a072a5e1f5"},{url:"assets/project.html-9b08d186.js",revision:"8b7bd376d882e29ce9bd60798ba8b388"},{url:"assets/project.html-bd19dacf.js",revision:"65dea2e16a2399d6c2dca5d3a885c47a"},{url:"assets/project.html-c2c3c465.js",revision:"e1bed318336b4793940ce886f8e4b054"},{url:"assets/quick-start.html-0a9c32af.js",revision:"3efc1cf73040a8c41df24bc0bc27adc6"},{url:"assets/quick-start.html-5b6055dc.js",revision:"2e6c827021d7668f1aeaf3b58176ea6b"},{url:"assets/quick-start.html-7495b37d.js",revision:"da658677fe7e924eb026787610d25fed"},{url:"assets/quick-start.html-dab9eba3.js",revision:"d57e2e2fbfbbe1bc1b00db57d852ac70"},{url:"assets/real-time-notes.html-25aed809.js",revision:"732da1efa102a60219280f043f324f25"},{url:"assets/real-time-notes.html-42fa37e7.js",revision:"8b78216f937b1bcab42706be284aef40"},{url:"assets/real-time-notes.html-6da9b42a.js",revision:"e65f142d514ee140637c5b27fef42581"},{url:"assets/real-time-notes.html-de90b20c.js",revision:"0fed87db342e3c96d3f612d176939e5c"},{url:"assets/setup.html-829b4bbd.js",revision:"29faf34d3d34b295983b32617e7e13d7"},{url:"assets/setup.html-a545afac.js",revision:"25cd2cecfb915ccf10409662dd11365f"},{url:"assets/setup.html-aafce36e.js",revision:"1dbf9599cfa21ce54ffaf5a63c84d9aa"},{url:"assets/setup.html-af40dc11.js",revision:"6f53b9f1930e2cac3d641fc5ec228489"},{url:"assets/side-load.html-0a898ed6.js",revision:"0415aa8e51f3730757e450a47b30d441"},{url:"assets/side-load.html-503e3506.js",revision:"c2c3143f0f420fa0f10d77a6e8eff26b"},{url:"assets/side-load.html-93a3f61b.js",revision:"d3123e3e80faa5a4ba2f51acb5b018b3"},{url:"assets/side-load.html-f0d36725.js",revision:"c2c3143f0f420fa0f10d77a6e8eff26b"},{url:"assets/star-request.html-7f0089f1.js",revision:"27dfdc170327f7658b49d86d88cff1c4"},{url:"assets/star-request.html-b1a3dcce.js",revision:"e987e3766dcd534197f8dd3b02e01b2f"},{url:"assets/star-request.html-c91f6d76.js",revision:"4995da6b9d8c3f91a5584a210ff6f796"},{url:"assets/star-request.html-eb357667.js",revision:"79801dfbfe99d5202323c4f6f246c0a1"},{url:"assets/style-a6da9cda.css",revision:"707a73c999e23d0d084e6d4f04805655"},{url:"assets/style-e9220a04.js",revision:"b40fc755bce11d2ee5ec6b814c802a65"},{url:"assets/symposium1.html-4ca69a8e.js",revision:"9e38d23bebd819ee8112e2306c0f6999"},{url:"assets/symposium1.html-cbffe867.js",revision:"6ac2df891e403e078abf9fa4a70d3cca"},{url:"assets/symposium2.html-46c6280f.js",revision:"fca64673a107e0ecebac70bcd76f31e8"},{url:"assets/symposium2.html-b9b55802.js",revision:"4737a434d776df0d0bee1391970bb013"},{url:"assets/tos.html-1c0a6890.js",revision:"cf8a5a673aa7d9dd2477882721f3c304"},{url:"assets/tos.html-3a563f3d.js",revision:"668d37e9508582d680a270647bc68159"},{url:"assets/tos.html-ba544e7e.js",revision:"0f1793f8d15771287d15d896d665b364"},{url:"assets/tos.html-e7fb0dd0.js",revision:"a5509330b39e17b8587d6bf82fbca7a9"},{url:"assets/uninstall.html-3103004e.js",revision:"a4d27d8eb36ac36ae4c92b4f25674223"},{url:"assets/uninstall.html-4c4795fe.js",revision:"c1a93b163d2f2e7a0a401740b2ba4f7b"},{url:"assets/uninstall.html-5214283b.js",revision:"f6bcd58b46b9d94b00337263d215c713"},{url:"assets/uninstall.html-90d5e7a1.js",revision:"79bdca9323776fd73ad0d21f21437fa9"},{url:"assets/update-log.html-3e82a157.js",revision:"c9d8fd1a53876a080060e394858b5a15"},{url:"assets/update-log.html-942a467d.js",revision:"3ec510c0c4a43a74fe48a4a1d303730c"},{url:"assets/update-log.html-999bcfb3.js",revision:"ce957b62e4ec15a9bc2f9e3dbbb58f45"},{url:"assets/update-log.html-dbfb081f.js",revision:"8c02eafbd4090a69341622ccea66ed8b"},{url:"assets/waline-meta-56fbc549.js",revision:"fe8fce833452b0c8ea188f0342a2ce65"},{url:"assets/weapon-wiki.html-0edcd288.js",revision:"6b1dc26566337fe556d20ac7dd51b7ce"},{url:"assets/weapon-wiki.html-12997220.js",revision:"9fcc3412dd2c6e3c6585e894b6fae4d8"},{url:"assets/weapon-wiki.html-5c2ca54e.js",revision:"49f602a411138efd8ce35cfa6c50886c"},{url:"assets/weapon-wiki.html-dcbaafb6.js",revision:"4b689bda388e5697775aa312a38be2d0"},{url:"assets/wish-export.html-0565104e.js",revision:"36ce3a4951f13b652d1b3b902f85eb47"},{url:"assets/wish-export.html-30e5101d.js",revision:"2d0cac968845f5bc436e697f71a0739c"},{url:"assets/wish-export.html-b1d5faab.js",revision:"e94740d52a7512ddfd9df61af8db93dd"},{url:"assets/wish-export.html-fba13e79.js",revision:"da7c38412e41022c3201b899b09c3010"},{url:"fontlist/demo.css",revision:"c470b271d96640b2d527d864d838d550"},{url:"fontlist/iconfont.css",revision:"47f9418c83e516e2f92fffa11e06ff9f"},{url:"fontlist/iconfont.js",revision:"787c135beed0ae93c145ae2de3cbfefe"},{url:"fontlist/iconfont.ttf",revision:"6d90ead1de012ad82077c2a898dcc136"},{url:"fontlist/iconfont.woff",revision:"c50542a321198d3a49a56ba9f50923f6"},{url:"fontlist/iconfont.woff2",revision:"a917e0d0985aaabe49b9bd5ad48bd270"},{url:"upload-abyss-data.js",revision:"e3c5df0c4de06f2bd47d19d95f478c8e"},{url:"index.html",revision:"934015b4223140a44529b56a467a51fc"},{url:"404.html",revision:"55e9297fdf03f36b78fb289a189fa530"},{url:"images/202209/Achievements.png",revision:"067cff70d53656b2e3e878df949823f6"},{url:"images/202209/HeroImageLogo.png",revision:"fb8507e3eaccbd6408874dcf10973d62"},{url:"images/202209/IndexIconAchievements.png",revision:"ea409f5a87b1c7666121ead606e323ef"},{url:"images/202209/IndexIconCharacters.png",revision:"db66594140f8dfc65556cc0ac2ed3e3e"},{url:"images/202209/IndexIconMihoyoBBS.png",revision:"b9c679888c01a50e6b126f9dae0d50d1"},{url:"images/202209/IndexIconWeapons.png",revision:"21a20e656ff91575a50c2a1c0253a581"},{url:"images/202209/IndexIconWish.png",revision:"0b4e790c4cb1eeba7473ad8e1b14ac23"},{url:"images/202209/SGLogoUpgrade64.png",revision:"1b95d8969049e0b31c0d89eeface0b89"},{url:"images/202209/wish-export.png",revision:"ef07fa6499c22d00c78dc182ad3cbab5"},{url:"images/202210/1.1.7-Update-Error-Fix.png",revision:"1f1958198ca4510713648cff6c43fcd5"},{url:"images/202210/1.1.7-Update-Error.png",revision:"3e04317e974e1cec550096b7ea88d708"},{url:"images/202210/account-upgrade.png",revision:"52b1c5695109142c9496bb6e14a9c2d1"},{url:"images/202210/HttpRequestException.jpg",revision:"878a57ab9fe5de6b774d7e91776987ab"},{url:"images/202210/hutao-api-submit.png",revision:"6a201ae85f470f3bb70e868137524830"},{url:"images/202210/hutao-api.png",revision:"5bd260fe9b5c18a41765c1126cfd91ff"},{url:"images/202210/hutao-login.png",revision:"21af43587bacf56bf40cadc884381c49"},{url:"images/202211/character-data-display.png",revision:"0cd41e7a02ee864ff12f0f69c926b79f"},{url:"images/202211/character-data-logo.png",revision:"04cc28833ed4c2108ba215fbc33325bf"},{url:"images/202211/character-wiki-logo.png",revision:"db66594140f8dfc65556cc0ac2ed3e3e"},{url:"images/202211/character-wiki.png",revision:"002ee49f019709942ae1b3dc541d05e4"},{url:"images/202211/game-launcher-logo.png",revision:"a5a5d6d5a09926689f8a61db4b24c2df"},{url:"images/202211/hutao-api-logo.png",revision:"feb8ae3e6c4099e0b7804e3d7ebda7c2"},{url:"images/202211/wish-export.png",revision:"c695c558c514d9aa0d3903d5c41f63b9"},{url:"images/202301/achievement.png",revision:"42fd361ea1336daf7cd33bf187e62fa2"},{url:"images/202301/dev-plan-logo.png",revision:"5d69e71ecd6e1b553395e2306fff5f34"},{url:"images/202301/live-stat-tracking-logo.png",revision:"23a418c1d29dbbf0142085f2e8ad464d"},{url:"images/202301/spiral-abyss-record-logo.png",revision:"6d213b91803137c600bb27b973a7ee25"},{url:"images/202301/weapon-wiki-logo.png",revision:"21a20e656ff91575a50c2a1c0253a581"},{url:"images/202308/Calculator_Icon.png",revision:"7fb5a148e1ae7f98c4848f3601a158fb"},{url:"images/202308/Character_WIKI_Icon.png",revision:"efb6186847a600de2a4a429052d1c77b"},{url:"images/202308/Game_Launcher_Icon.png",revision:"3d1f2ce60f927919a4120b9e2206dca1"},{url:"images/202308/head-back.png",revision:"627872a2d3a6e0a9175362a2bce9df75"},{url:"images/202308/highlights-head.png",revision:"95af9689fe9b2659f4e1e8c6ad365d87"},{url:"images/202308/hoyolab-miyoushe-Icon.png",revision:"e06a266f679fb74b6259579846410d8c"},{url:"images/202308/My_Character_Icon.png",revision:"394b9ce7a3f8d92109dac083c1e916c8"},{url:"images/202308/UI_BtnIcon_Gacha.png",revision:"912a76ce2d4579c72ada39c79237279d"},{url:"images/202308/UI_ChapterIcon_Hutao.png",revision:"86791e433554edf6652ee9dfd0d4ef69"},{url:"images/202308/Weapon_WIKI_Icon.png",revision:"3f20fdf346dafbd370054f04ec00b8cf"},{url:"images/202309/head-back2.png",revision:"68cab275f36686f7032e495c58cc47df"},{url:"images/202309/security.png",revision:"1853661345ceb924817aae9ebdd7ec1f"},{url:"pwa-icon/chrome-144.png",revision:"24dd1f208ca63bef5c104659ae25c0e8"},{url:"pwa-icon/chrome-192.png",revision:"984b2a8dfd5dfb1cecfb73bc940bf070"},{url:"pwa-icon/chrome-48.png",revision:"a424e2c1b597db8e320cb3184c78ae23"},{url:"pwa-icon/chrome-512.png",revision:"06ecfca5b4c625d580608e04850f9f29"},{url:"pwa-icon/chrome-72.png",revision:"b9c2449570f275fd5dd34b887aa04697"},{url:"pwa-icon/chrome-96.png",revision:"64e04325061a5fa6de31f4b52bb7498f"}],{}),e.cleanupOutdatedCaches()})); +if(!self.define){let e,s={};const a=(a,c)=>(a=new URL(a+".js",c).href,s[a]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=a,e.onload=s,document.head.appendChild(e)}else e=a,importScripts(a),s()})).then((()=>{let e=s[a];if(!e)throw new Error(`Module ${a} didn’t register its module`);return e})));self.define=(c,i)=>{const d=e||("document"in self?document.currentScript.src:"")||location.href;if(s[d])return;let r={};const t=e=>a(e,d),f={module:{uri:d},exports:r,require:t};s[d]=Promise.all(c.map((e=>f[e]||t(e)))).then((e=>(i(...e),r)))}}define(["./workbox-33d91895"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.clientsClaim(),e.precacheAndRoute([{url:"assets/404.html-887cec77.js",revision:"f44a9b03d54b27cdec15e9a71545af01"},{url:"assets/404.html-cc4520a7.js",revision:"603894850918e0d0424fa87be67b1b21"},{url:"assets/achievements.html-06dd492a.js",revision:"69eac6f9d18734340ea6a6a23fbb533b"},{url:"assets/achievements.html-0de1eff5.js",revision:"773193abcaaffc3fb06520789ec51acd"},{url:"assets/achievements.html-48ffc151.js",revision:"13a76d7e8cfcf1bd939c185ee15085f9"},{url:"assets/achievements.html-a6a0de9a.js",revision:"75eab6790f6d5e7f011445af2520df05"},{url:"assets/app-5a96e1e2.js",revision:"997e8a517aa1b40450dc0ba962947deb"},{url:"assets/bug-report.html-310cbc3b.js",revision:"0b90cc93185ccd747c1d04a2ccf8210e"},{url:"assets/bug-report.html-6dbadeb5.js",revision:"33bda63396390a9d7ef70367d64009ea"},{url:"assets/bug-report.html-84fe1704.js",revision:"cdc39d1ae597168004ffecbec46ca1aa"},{url:"assets/bug-report.html-f5518e52.js",revision:"a80aed39d2a7ff215183462ff5bc2919"},{url:"assets/character-data.html-3b2a78c6.js",revision:"95e87c497033ddcd8e2575a64d9c7693"},{url:"assets/character-data.html-42720767.js",revision:"26bb97d023b8bf081334042267a35385"},{url:"assets/character-data.html-49915f74.js",revision:"6addb48b8d20c5c08ef2855890977772"},{url:"assets/character-data.html-8a78117e.js",revision:"f3941634724fcc4938079fa9c55a2b01"},{url:"assets/character-wiki.html-1b9db7c1.js",revision:"c254c0d48e5fcdac79185e870835dbf0"},{url:"assets/character-wiki.html-32a83ab1.js",revision:"eb23cc4f082545f7983152150b3b6324"},{url:"assets/character-wiki.html-90b9eedb.js",revision:"8dfc2f275cfe6ccfc8159cc3ffbdb9bd"},{url:"assets/character-wiki.html-9436f4de.js",revision:"5f25961f641fd7d37ed51a10cf7fecf8"},{url:"assets/community.html-417cf11c.js",revision:"c48941c57445f24f36d123a5f0077bf9"},{url:"assets/community.html-6382b9ab.js",revision:"6d642b52c7c58c40ea30a17405d9e3bf"},{url:"assets/community.html-84f8e709.js",revision:"044388d4b7b8152ac5df304c080d0cc7"},{url:"assets/community.html-ca7edab2.js",revision:"57c847bd648203dc814f461084d8cb8a"},{url:"assets/component-638e0776.js",revision:"e4bcb4cdde520e69430a4f69dbeb221d"},{url:"assets/contribute.html-54af88d0.js",revision:"3e4114cabab6b55137e1fc06a921a59b"},{url:"assets/contribute.html-64ac2d95.js",revision:"204b515728553ce1d712a01e2c249605"},{url:"assets/contribute.html-7f946320.js",revision:"18599b25749263485f64f72421a43ddf"},{url:"assets/contribute.html-e1851f90.js",revision:"5ac490b0b2ec67665cddffa339b6115e"},{url:"assets/dashboard.html-26c28184.js",revision:"b1b69b548607e56930664a1eaca49cc9"},{url:"assets/dashboard.html-50b728ce.js",revision:"4f61da7b47cc877825b939ca85ef9c21"},{url:"assets/dashboard.html-83ef77ec.js",revision:"aece8f699512dfb73d2d3a3a49cb80ca"},{url:"assets/dashboard.html-de43d08c.js",revision:"196a6ca2646b2292ace1ae77cee8b4d0"},{url:"assets/dependency.html-0fd09a7f.js",revision:"6f86b106cb5d4e7475f0e8c05bcd00c5"},{url:"assets/dependency.html-6aa2a973.js",revision:"e669ebecaa985c9836b7cbbe1a3b7efa"},{url:"assets/dependency.html-cb812315.js",revision:"e8577918470c24e6896599ffc443359e"},{url:"assets/dependency.html-f161842e.js",revision:"c4723254144e9135eeb40756b720ab71"},{url:"assets/develop-plan.html-08ab6a3f.js",revision:"264b657c57572dfec9bba3e5a48dc633"},{url:"assets/develop-plan.html-1a88a516.js",revision:"1e2dfe2d7991848406374bbd10b6ad18"},{url:"assets/develop-plan.html-4cd8de09.js",revision:"0ea5475c971b1fa3c7eac3c95d82c901"},{url:"assets/develop-plan.html-72b138aa.js",revision:"9070fb1ed188e5fa1c8efa2619e90818"},{url:"assets/docsearch-1d421ddb.js",revision:"582ce23a3b7a09735ae2e462904b2e3a"},{url:"assets/exceptions.html-40258713.js",revision:"32bf71e7f76d8c910f2fe4cb67f4711c"},{url:"assets/exceptions.html-5e79025e.js",revision:"fe972e8c932f2355356f8dcac9ffcbeb"},{url:"assets/exceptions.html-a05a1b2d.js",revision:"968828e74ee284108dd0e46d80800d01"},{url:"assets/exceptions.html-f92d5379.js",revision:"8c179a5b97c39e3ec9385753f3f0b708"},{url:"assets/FAQ.html-414ac22f.js",revision:"7bd1ecfa9a97b40b99c2a365e4fb0e4a"},{url:"assets/FAQ.html-42cbaba4.js",revision:"85d981c1081e1f75f102f9bbb86676f2"},{url:"assets/FAQ.html-58ca3047.js",revision:"dee0c9854d3a79e051cc52f64d85107c"},{url:"assets/FAQ.html-7f0963c6.js",revision:"9ba5381dddb637a87daf2a01c5fc0a13"},{url:"assets/Gacha-system-and-export-principal.html-015af494.js",revision:"ce641ab3fb44cf7d3c118e52e2e9e4b7"},{url:"assets/Gacha-system-and-export-principal.html-160e18ef.js",revision:"98d0b6261728d7f3f1d89b916eecfe88"},{url:"assets/Gacha-system-and-export-principal.html-81906cdb.js",revision:"c294c2c93b1030af939992f5cac028c5"},{url:"assets/Gacha-system-and-export-principal.html-bfc5bd6f.js",revision:"98d0b6261728d7f3f1d89b916eecfe88"},{url:"assets/game-launcher.html-48fbcd0a.js",revision:"faa3250409d30ba684322ed2a33905f5"},{url:"assets/game-launcher.html-50a78294.js",revision:"288cb4aef6927035ea2fed2802d48103"},{url:"assets/game-launcher.html-a55f58e7.js",revision:"69517c36702ac098a9f0184a181a3d10"},{url:"assets/game-launcher.html-bbaa8a3b.js",revision:"c7706ba704e184828516d14b397f693a"},{url:"assets/get-stoken-cookie-from-the-third-party.html-48dcba2c.js",revision:"a9310b659a31453ec674595b26214cd4"},{url:"assets/get-stoken-cookie-from-the-third-party.html-698c6b8e.js",revision:"48059663f453f004ae4149f5c79744bb"},{url:"assets/get-stoken-cookie-from-the-third-party.html-75f986b3.js",revision:"dc026647681da97901bf0668ea77dd31"},{url:"assets/get-stoken-cookie-from-the-third-party.html-c6b7387c.js",revision:"8655124ee10ada71e9d66a8c81491be9"},{url:"assets/hutao-API.html-0b11e24f.js",revision:"65038be382e2549c285d01cacba7858b"},{url:"assets/hutao-API.html-4088b7a3.js",revision:"6205c4f437dc582fe620a9bbed791e31"},{url:"assets/hutao-API.html-7018cba6.js",revision:"346ad4927e306175e503d96a764f6871"},{url:"assets/hutao-API.html-c450cbe0.js",revision:"ab57dba63ac53e3e1a265e0df685f731"},{url:"assets/hutao-settings.html-280e1afc.js",revision:"cb5fe502c022604c20df1164c9cb854c"},{url:"assets/hutao-settings.html-72e1a0f6.js",revision:"5a49038d6e41a095c6a58534b035b254"},{url:"assets/hutao-settings.html-e7324425.js",revision:"bee7f2bbdc9fa5e0c6912d167094de6a"},{url:"assets/hutao-settings.html-fc06a94c.js",revision:"3332d37b0ea4cd728140e45608a49cc9"},{url:"assets/i18n.html-0cf3ba2c.js",revision:"310355a8621c68efd8decd4d67e57ff3"},{url:"assets/i18n.html-10933388.js",revision:"c4b1d2626298dff9d345783c66c1b9a8"},{url:"assets/i18n.html-ea3f12cc.js",revision:"2003d861ffb421effd3d3a65e980300c"},{url:"assets/i18n.html-f972be08.js",revision:"baa9fa66b31c0976d12bc702842da205"},{url:"assets/index-82585c84.js",revision:"938526a93de840eecd804073030c5832"},{url:"assets/index-e32a7948.js",revision:"46a193641571106d3b7b43f9bc2a2735"},{url:"assets/index.html-061d6dc0.js",revision:"b28f922d563cf64d86259330b9927a11"},{url:"assets/index.html-1b5b714a.js",revision:"890223d7b85384bd4da04df7b3608048"},{url:"assets/index.html-1c71d3f9.js",revision:"5e112473d069282512c381ba89aab9aa"},{url:"assets/index.html-279f7857.js",revision:"30e9584503c92ac28b592451f4482133"},{url:"assets/index.html-3216a9e5.js",revision:"eaf3b1d621d6705eb2c3476f8159906c"},{url:"assets/index.html-41a05330.js",revision:"ea15a5c78af12e531e0af0bfe0f1f63a"},{url:"assets/index.html-45dede9b.js",revision:"d19d3d34fa34b917c7cbc86a246adce7"},{url:"assets/index.html-619b8ca3.js",revision:"c4acba12708e08d543f7bebbb047d4b0"},{url:"assets/index.html-6913b6c2.js",revision:"3472044dc3e4d1ec7359aabd1c35ad31"},{url:"assets/index.html-6a43042e.js",revision:"77cf96b2c3c39b7a622a3d95997b13a0"},{url:"assets/index.html-7cc8179e.js",revision:"4045a817b7cb1d9ac896e19e13fba895"},{url:"assets/index.html-81dd031d.js",revision:"fd8b9ba49115551d897d53bc6841ee7e"},{url:"assets/index.html-8616774c.js",revision:"edbefcde92c4e01f99fae9abdcfd403f"},{url:"assets/index.html-8ee577f1.js",revision:"de74546201be0ac6fc9bc7f352ad447d"},{url:"assets/index.html-947e2238.js",revision:"d896dd240ff16005bd475786b8c4b389"},{url:"assets/index.html-a228d087.js",revision:"f597a202ff25b04eb08d9f40b4ecb9c6"},{url:"assets/index.html-a55c6bb9.js",revision:"ef1ed5ea2f45ec6412d19ede63a5991f"},{url:"assets/index.html-b2424ddd.js",revision:"a5d21b71d658b7a61d8b0e0220374079"},{url:"assets/index.html-ce254148.js",revision:"f4f322313fa70ab549b3d165ac5b1273"},{url:"assets/index.html-d56d80a3.js",revision:"e0c82173eecbe4e6a012ab615088235a"},{url:"assets/index.html-ead0711a.js",revision:"de8de7dab77f3d8beb7480ed2831da3a"},{url:"assets/index.html-f7d0e723.js",revision:"8f52c2c1808ab40a8debbd70d297e824"},{url:"assets/known-issue.html-353310f4.js",revision:"67ee4533cb4264ff960dead3eae34430"},{url:"assets/known-issue.html-6e4b2dbb.js",revision:"3f866ec3e38e3e8bafcc594b6e37740c"},{url:"assets/known-issue.html-928c6706.js",revision:"e9acf53425e2224aab6b423651a514f6"},{url:"assets/known-issue.html-dcf2dda3.js",revision:"2477a2e8cec3fe145c1f586abdab2efe"},{url:"assets/menu.html-37a47978.js",revision:"91b7cf707098fb8026edcbe62c9f6322"},{url:"assets/menu.html-4e298123.js",revision:"d055fce42e2ce05d0255d5ed8b69d999"},{url:"assets/menu.html-5e29ea11.js",revision:"43c77387eb0d9c82cc4f34720cac295e"},{url:"assets/menu.html-940f952e.js",revision:"8c577125c7ea9e01f122c472dd62ffd4"},{url:"assets/mhy-account-switch.html-84159f63.js",revision:"69b642ca8e822c9b7adf46c2225bf88f"},{url:"assets/mhy-account-switch.html-866591ed.js",revision:"aded56f98d6ae36ad9fbee7b8405f08c"},{url:"assets/mhy-account-switch.html-ca9beaf1.js",revision:"a7b9508fbf561048c43b568df3ecd41c"},{url:"assets/mhy-account-switch.html-db811865.js",revision:"cd64d7c7287848c2efae0443ba2db1f5"},{url:"assets/monster-wiki.html-a4668d7a.js",revision:"7970433e2b9746f25307b2fa55a36772"},{url:"assets/monster-wiki.html-b4a92c1c.js",revision:"ce88c552d5c6558eb5e1454e0be50bae"},{url:"assets/monster-wiki.html-e22d8ce1.js",revision:"d6ee2927994c3654e84f3a06db70e2c7"},{url:"assets/monster-wiki.html-ed4ef353.js",revision:"16f8fda35bffa7a5ba4ba2c2f7c22cb7"},{url:"assets/photoswipe.esm-1464cdb9.js",revision:"3a72d9823ffa5943f03c5e884d0f66d8"},{url:"assets/platform.html-77fb71fa.js",revision:"20efe8d3f1b9c14cf61a6365c59b112c"},{url:"assets/platform.html-a018603e.js",revision:"89a4ccb7922e5cb9670e02ecdd58b44f"},{url:"assets/platform.html-cb36bf71.js",revision:"48ec30c45f9711da40c89fcb2ad1d07b"},{url:"assets/platform.html-ec227b31.js",revision:"f4a3b4723af281c3c3146be834b362de"},{url:"assets/plugin-vue_export-helper-c27b6911.js",revision:"25e3a5dcaf00fb2b1ba0c8ecea6d2560"},{url:"assets/privacy-notice.html-69586390.js",revision:"ccbb4203331610ce1af193c2dd780239"},{url:"assets/privacy-notice.html-b62d63cc.js",revision:"60adf5863ae49d907299aea1c031df1a"},{url:"assets/privacy-notice.html-e40ff099.js",revision:"a2760af798972147096754cf017bfad9"},{url:"assets/privacy-notice.html-f461657a.js",revision:"c3d79f911327a88f8ec558c626d76dd4"},{url:"assets/project.html-29490bdd.js",revision:"bcbb0a9823bf69cf5d28d35cf80a857e"},{url:"assets/project.html-877937ff.js",revision:"01850567f17ceef125132223e4fec0b1"},{url:"assets/project.html-9b08d186.js",revision:"8b7bd376d882e29ce9bd60798ba8b388"},{url:"assets/project.html-bd19dacf.js",revision:"65dea2e16a2399d6c2dca5d3a885c47a"},{url:"assets/quick-start.html-0a9c32af.js",revision:"3efc1cf73040a8c41df24bc0bc27adc6"},{url:"assets/quick-start.html-2537d0db.js",revision:"b2b88186236060a041229b20141fe0f1"},{url:"assets/quick-start.html-dab9eba3.js",revision:"d57e2e2fbfbbe1bc1b00db57d852ac70"},{url:"assets/quick-start.html-e4021577.js",revision:"aba98e82274ccacb99a784f8d2c39de1"},{url:"assets/real-time-notes.html-42fa37e7.js",revision:"8b78216f937b1bcab42706be284aef40"},{url:"assets/real-time-notes.html-5f5b5c06.js",revision:"770b6ac912d6157a74ea88094c533ccc"},{url:"assets/real-time-notes.html-6da9b42a.js",revision:"e65f142d514ee140637c5b27fef42581"},{url:"assets/real-time-notes.html-c14ac987.js",revision:"9edc198bbe350acf7d8dfaf1c1247c4d"},{url:"assets/setup.html-0a76845b.js",revision:"14df88d0fe7502cbf7f28e78ee522d77"},{url:"assets/setup.html-0d692030.js",revision:"31d6ea17ad4b367c8f64d7ffc93b9d6a"},{url:"assets/setup.html-829b4bbd.js",revision:"29faf34d3d34b295983b32617e7e13d7"},{url:"assets/setup.html-af40dc11.js",revision:"6f53b9f1930e2cac3d641fc5ec228489"},{url:"assets/side-load.html-0a898ed6.js",revision:"0415aa8e51f3730757e450a47b30d441"},{url:"assets/side-load.html-93a3f61b.js",revision:"d3123e3e80faa5a4ba2f51acb5b018b3"},{url:"assets/side-load.html-e2489460.js",revision:"1fe724b4fa2d6b41ed05716843d91b2b"},{url:"assets/side-load.html-ff763136.js",revision:"1fe724b4fa2d6b41ed05716843d91b2b"},{url:"assets/star-request.html-7f0089f1.js",revision:"27dfdc170327f7658b49d86d88cff1c4"},{url:"assets/star-request.html-87e9c10d.js",revision:"3b1410fd1446a08a458f0b208f2ac753"},{url:"assets/star-request.html-9881dff3.js",revision:"567bce1570d7bbcffd30ee9ec5be6594"},{url:"assets/star-request.html-eb357667.js",revision:"79801dfbfe99d5202323c4f6f246c0a1"},{url:"assets/style-a6da9cda.css",revision:"707a73c999e23d0d084e6d4f04805655"},{url:"assets/style-e9220a04.js",revision:"b40fc755bce11d2ee5ec6b814c802a65"},{url:"assets/symposium1.html-4ca69a8e.js",revision:"9e38d23bebd819ee8112e2306c0f6999"},{url:"assets/symposium1.html-f64f4f79.js",revision:"5dd400f79173ca43fe3fef15ed426f31"},{url:"assets/symposium2.html-159d4eab.js",revision:"71569e233c59f42cd36f7226ed77040b"},{url:"assets/symposium2.html-b9b55802.js",revision:"4737a434d776df0d0bee1391970bb013"},{url:"assets/tos.html-324ae865.js",revision:"d25286b5818c27ba0a2ec77d3392126b"},{url:"assets/tos.html-3a563f3d.js",revision:"668d37e9508582d680a270647bc68159"},{url:"assets/tos.html-e6f84201.js",revision:"bb96b785eca49ab5f42dfdc42ba7b6c8"},{url:"assets/tos.html-e7fb0dd0.js",revision:"a5509330b39e17b8587d6bf82fbca7a9"},{url:"assets/uninstall.html-21af1d57.js",revision:"23a784091eb2ec672bb1bdb40ae07cf4"},{url:"assets/uninstall.html-3103004e.js",revision:"a4d27d8eb36ac36ae4c92b4f25674223"},{url:"assets/uninstall.html-90d5e7a1.js",revision:"79bdca9323776fd73ad0d21f21437fa9"},{url:"assets/uninstall.html-aa4818ea.js",revision:"8be2876d122dd7e0b58548b2fa59f464"},{url:"assets/update-log.html-180bffb9.js",revision:"4afec87be673ac42ebf2d24b1c3cd5eb"},{url:"assets/update-log.html-942a467d.js",revision:"3ec510c0c4a43a74fe48a4a1d303730c"},{url:"assets/update-log.html-999bcfb3.js",revision:"ce957b62e4ec15a9bc2f9e3dbbb58f45"},{url:"assets/update-log.html-e12012a1.js",revision:"b20632d8ec37f6514811aff789668a1e"},{url:"assets/waline-meta-56fbc549.js",revision:"fe8fce833452b0c8ea188f0342a2ce65"},{url:"assets/weapon-wiki.html-12997220.js",revision:"9fcc3412dd2c6e3c6585e894b6fae4d8"},{url:"assets/weapon-wiki.html-5c2ca54e.js",revision:"49f602a411138efd8ce35cfa6c50886c"},{url:"assets/weapon-wiki.html-a2df1cbf.js",revision:"fc2b878465ec6c7fde5436f9d781ee7f"},{url:"assets/weapon-wiki.html-c611d75d.js",revision:"843bb3265546bd0c4650b0067612de8f"},{url:"assets/wish-export.html-30e5101d.js",revision:"2d0cac968845f5bc436e697f71a0739c"},{url:"assets/wish-export.html-60af732a.js",revision:"8eaab8437002e9c1c0c7aa951ac7fab2"},{url:"assets/wish-export.html-b1d5faab.js",revision:"e94740d52a7512ddfd9df61af8db93dd"},{url:"assets/wish-export.html-c0178db9.js",revision:"707f90e2eb9776489bc058115ac0c14a"},{url:"fontlist/demo.css",revision:"c470b271d96640b2d527d864d838d550"},{url:"fontlist/iconfont.css",revision:"47f9418c83e516e2f92fffa11e06ff9f"},{url:"fontlist/iconfont.js",revision:"787c135beed0ae93c145ae2de3cbfefe"},{url:"fontlist/iconfont.ttf",revision:"6d90ead1de012ad82077c2a898dcc136"},{url:"fontlist/iconfont.woff",revision:"c50542a321198d3a49a56ba9f50923f6"},{url:"fontlist/iconfont.woff2",revision:"a917e0d0985aaabe49b9bd5ad48bd270"},{url:"upload-abyss-data.js",revision:"e3c5df0c4de06f2bd47d19d95f478c8e"},{url:"index.html",revision:"ab5b1ab5763d555df5b31b625e739cf1"},{url:"404.html",revision:"b7320282f6f05cf979c544f9fc204bbd"},{url:"images/202209/Achievements.png",revision:"067cff70d53656b2e3e878df949823f6"},{url:"images/202209/HeroImageLogo.png",revision:"fb8507e3eaccbd6408874dcf10973d62"},{url:"images/202209/IndexIconAchievements.png",revision:"ea409f5a87b1c7666121ead606e323ef"},{url:"images/202209/IndexIconCharacters.png",revision:"db66594140f8dfc65556cc0ac2ed3e3e"},{url:"images/202209/IndexIconMihoyoBBS.png",revision:"b9c679888c01a50e6b126f9dae0d50d1"},{url:"images/202209/IndexIconWeapons.png",revision:"21a20e656ff91575a50c2a1c0253a581"},{url:"images/202209/IndexIconWish.png",revision:"0b4e790c4cb1eeba7473ad8e1b14ac23"},{url:"images/202209/SGLogoUpgrade64.png",revision:"1b95d8969049e0b31c0d89eeface0b89"},{url:"images/202209/wish-export.png",revision:"ef07fa6499c22d00c78dc182ad3cbab5"},{url:"images/202210/1.1.7-Update-Error-Fix.png",revision:"1f1958198ca4510713648cff6c43fcd5"},{url:"images/202210/1.1.7-Update-Error.png",revision:"3e04317e974e1cec550096b7ea88d708"},{url:"images/202210/account-upgrade.png",revision:"52b1c5695109142c9496bb6e14a9c2d1"},{url:"images/202210/HttpRequestException.jpg",revision:"878a57ab9fe5de6b774d7e91776987ab"},{url:"images/202210/hutao-api-submit.png",revision:"6a201ae85f470f3bb70e868137524830"},{url:"images/202210/hutao-api.png",revision:"5bd260fe9b5c18a41765c1126cfd91ff"},{url:"images/202210/hutao-login.png",revision:"21af43587bacf56bf40cadc884381c49"},{url:"images/202211/character-data-display.png",revision:"0cd41e7a02ee864ff12f0f69c926b79f"},{url:"images/202211/character-data-logo.png",revision:"04cc28833ed4c2108ba215fbc33325bf"},{url:"images/202211/character-wiki-logo.png",revision:"db66594140f8dfc65556cc0ac2ed3e3e"},{url:"images/202211/character-wiki.png",revision:"002ee49f019709942ae1b3dc541d05e4"},{url:"images/202211/game-launcher-logo.png",revision:"a5a5d6d5a09926689f8a61db4b24c2df"},{url:"images/202211/hutao-api-logo.png",revision:"feb8ae3e6c4099e0b7804e3d7ebda7c2"},{url:"images/202211/wish-export.png",revision:"c695c558c514d9aa0d3903d5c41f63b9"},{url:"images/202301/achievement.png",revision:"42fd361ea1336daf7cd33bf187e62fa2"},{url:"images/202301/dev-plan-logo.png",revision:"5d69e71ecd6e1b553395e2306fff5f34"},{url:"images/202301/live-stat-tracking-logo.png",revision:"23a418c1d29dbbf0142085f2e8ad464d"},{url:"images/202301/spiral-abyss-record-logo.png",revision:"6d213b91803137c600bb27b973a7ee25"},{url:"images/202301/weapon-wiki-logo.png",revision:"21a20e656ff91575a50c2a1c0253a581"},{url:"images/202308/Calculator_Icon.png",revision:"7fb5a148e1ae7f98c4848f3601a158fb"},{url:"images/202308/Character_WIKI_Icon.png",revision:"efb6186847a600de2a4a429052d1c77b"},{url:"images/202308/Game_Launcher_Icon.png",revision:"3d1f2ce60f927919a4120b9e2206dca1"},{url:"images/202308/head-back.png",revision:"627872a2d3a6e0a9175362a2bce9df75"},{url:"images/202308/highlights-head.png",revision:"95af9689fe9b2659f4e1e8c6ad365d87"},{url:"images/202308/hoyolab-miyoushe-Icon.png",revision:"e06a266f679fb74b6259579846410d8c"},{url:"images/202308/My_Character_Icon.png",revision:"394b9ce7a3f8d92109dac083c1e916c8"},{url:"images/202308/UI_BtnIcon_Gacha.png",revision:"912a76ce2d4579c72ada39c79237279d"},{url:"images/202308/UI_ChapterIcon_Hutao.png",revision:"86791e433554edf6652ee9dfd0d4ef69"},{url:"images/202308/Weapon_WIKI_Icon.png",revision:"3f20fdf346dafbd370054f04ec00b8cf"},{url:"images/202309/head-back2.png",revision:"68cab275f36686f7032e495c58cc47df"},{url:"images/202309/security.png",revision:"1853661345ceb924817aae9ebdd7ec1f"},{url:"pwa-icon/chrome-144.png",revision:"24dd1f208ca63bef5c104659ae25c0e8"},{url:"pwa-icon/chrome-192.png",revision:"984b2a8dfd5dfb1cecfb73bc940bf070"},{url:"pwa-icon/chrome-48.png",revision:"a424e2c1b597db8e320cb3184c78ae23"},{url:"pwa-icon/chrome-512.png",revision:"06ecfca5b4c625d580608e04850f9f29"},{url:"pwa-icon/chrome-72.png",revision:"b9c2449570f275fd5dd34b887aa04697"},{url:"pwa-icon/chrome-96.png",revision:"64e04325061a5fa6de31f4b52bb7498f"}],{}),e.cleanupOutdatedCaches()})); //# sourceMappingURL=service-worker.js.map diff --git a/service-worker.js.map b/service-worker.js.map index a296f608d..72b6707ea 100644 --- a/service-worker.js.map +++ b/service-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/97b4b28be24bc2e5f70a026524307360/service-worker.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-core@7.0.0/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-precaching@7.0.0/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-precaching@7.0.0/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"assets/404.html-73628d5c.js\",\n \"revision\": \"02b312ae848231a1e5d0eb0de939b8e2\"\n },\n {\n \"url\": \"assets/404.html-cc4520a7.js\",\n \"revision\": \"603894850918e0d0424fa87be67b1b21\"\n },\n {\n \"url\": \"assets/achievements.html-48ffc151.js\",\n \"revision\": \"13a76d7e8cfcf1bd939c185ee15085f9\"\n },\n {\n \"url\": \"assets/achievements.html-a2f7d03f.js\",\n \"revision\": \"6e6bb11fa07488451c918e3fed6911e9\"\n },\n {\n \"url\": \"assets/achievements.html-a6a0de9a.js\",\n \"revision\": \"75eab6790f6d5e7f011445af2520df05\"\n },\n {\n \"url\": \"assets/achievements.html-c51f91b4.js\",\n \"revision\": \"2fd577e9c8c44a1f14b2ecb8bb47c6cd\"\n },\n {\n \"url\": \"assets/app-8966c29b.js\",\n \"revision\": \"11207f335666e74107337610eec709d7\"\n },\n {\n \"url\": \"assets/bug-report.html-23f07cf7.js\",\n \"revision\": \"bed51c5f219e85eb77c9aa1cf409a4ea\"\n },\n {\n \"url\": \"assets/bug-report.html-310cbc3b.js\",\n \"revision\": \"0b90cc93185ccd747c1d04a2ccf8210e\"\n },\n {\n \"url\": \"assets/bug-report.html-690a4891.js\",\n \"revision\": \"37bffba88a47ff72779dcd20268ad752\"\n },\n {\n \"url\": \"assets/bug-report.html-84fe1704.js\",\n \"revision\": \"cdc39d1ae597168004ffecbec46ca1aa\"\n },\n {\n \"url\": \"assets/character-data.html-0e2a5520.js\",\n \"revision\": \"7defb148f667ad979edf5a14078c29d3\"\n },\n {\n \"url\": \"assets/character-data.html-42720767.js\",\n \"revision\": \"26bb97d023b8bf081334042267a35385\"\n },\n {\n \"url\": \"assets/character-data.html-8a78117e.js\",\n \"revision\": \"f3941634724fcc4938079fa9c55a2b01\"\n },\n {\n \"url\": \"assets/character-data.html-9b06863f.js\",\n \"revision\": \"8b38f7636ddf99c199fe479e741560a7\"\n },\n {\n \"url\": \"assets/character-wiki.html-1a49a85c.js\",\n \"revision\": \"6734ae1b7c0f1119365873bed940450a\"\n },\n {\n \"url\": \"assets/character-wiki.html-1b9db7c1.js\",\n \"revision\": \"c254c0d48e5fcdac79185e870835dbf0\"\n },\n {\n \"url\": \"assets/character-wiki.html-1c3e2191.js\",\n \"revision\": \"38f32ee69cad57fabd62bc82bb78a24d\"\n },\n {\n \"url\": \"assets/character-wiki.html-90b9eedb.js\",\n \"revision\": \"8dfc2f275cfe6ccfc8159cc3ffbdb9bd\"\n },\n {\n \"url\": \"assets/community.html-1c109378.js\",\n \"revision\": \"01084112b701941a5935f499a4e74b16\"\n },\n {\n \"url\": \"assets/community.html-6555cfd3.js\",\n \"revision\": \"2c2b55b3271c346e6ea752f039f8a734\"\n },\n {\n \"url\": \"assets/community.html-84f8e709.js\",\n \"revision\": \"044388d4b7b8152ac5df304c080d0cc7\"\n },\n {\n \"url\": \"assets/community.html-f8bc6215.js\",\n \"revision\": \"1cc0d886bc7215b0fb5bccbe0128639d\"\n },\n {\n \"url\": \"assets/component-ee6bd77b.js\",\n \"revision\": \"e357b7702cb8fdd0ab8d22c236d756e7\"\n },\n {\n \"url\": \"assets/contribute.html-64ac2d95.js\",\n \"revision\": \"204b515728553ce1d712a01e2c249605\"\n },\n {\n \"url\": \"assets/contribute.html-70e3d28c.js\",\n \"revision\": \"21394fe2b8791e894161f7d0edc98fde\"\n },\n {\n \"url\": \"assets/contribute.html-7f946320.js\",\n \"revision\": \"18599b25749263485f64f72421a43ddf\"\n },\n {\n \"url\": \"assets/contribute.html-d0274f20.js\",\n \"revision\": \"086dea958ff93981a0c3f9f9c9016567\"\n },\n {\n \"url\": \"assets/dashboard.html-1f8f954a.js\",\n \"revision\": \"ed7585ee81ed8ecb56fa87bc3f7c2da5\"\n },\n {\n \"url\": \"assets/dashboard.html-50b728ce.js\",\n \"revision\": \"4f61da7b47cc877825b939ca85ef9c21\"\n },\n {\n \"url\": \"assets/dashboard.html-877fc948.js\",\n \"revision\": \"8a210f8977c40992ab3c726bb356b4a8\"\n },\n {\n \"url\": \"assets/dashboard.html-de43d08c.js\",\n \"revision\": \"196a6ca2646b2292ace1ae77cee8b4d0\"\n },\n {\n \"url\": \"assets/dependency.html-0db61041.js\",\n \"revision\": \"9507fd57cb5eaf8674c89342f25aca21\"\n },\n {\n \"url\": \"assets/dependency.html-6aa2a973.js\",\n \"revision\": \"e669ebecaa985c9836b7cbbe1a3b7efa\"\n },\n {\n \"url\": \"assets/dependency.html-cb812315.js\",\n \"revision\": \"e8577918470c24e6896599ffc443359e\"\n },\n {\n \"url\": \"assets/dependency.html-cc0594b5.js\",\n \"revision\": \"abb1939d7d2189901a1c8b88eb18d50c\"\n },\n {\n \"url\": \"assets/develop-plan.html-4cd8de09.js\",\n \"revision\": \"0ea5475c971b1fa3c7eac3c95d82c901\"\n },\n {\n \"url\": \"assets/develop-plan.html-72b138aa.js\",\n \"revision\": \"9070fb1ed188e5fa1c8efa2619e90818\"\n },\n {\n \"url\": \"assets/develop-plan.html-80517d09.js\",\n \"revision\": \"f355b46ae08993ed3458824cbc8f428f\"\n },\n {\n \"url\": \"assets/develop-plan.html-95024404.js\",\n \"revision\": \"692fe4ede7845a3c806139d06cc1b3f3\"\n },\n {\n \"url\": \"assets/docsearch-1d421ddb.js\",\n \"revision\": \"582ce23a3b7a09735ae2e462904b2e3a\"\n },\n {\n \"url\": \"assets/exceptions.html-5e79025e.js\",\n \"revision\": \"fe972e8c932f2355356f8dcac9ffcbeb\"\n },\n {\n \"url\": \"assets/exceptions.html-a05a1b2d.js\",\n \"revision\": \"968828e74ee284108dd0e46d80800d01\"\n },\n {\n \"url\": \"assets/exceptions.html-d3fe7c53.js\",\n \"revision\": \"f05a3364699576067e4aab9eafebcae7\"\n },\n {\n \"url\": \"assets/exceptions.html-fc4790dc.js\",\n \"revision\": \"76a3d6883ea2705ef4cc6b2cbd456242\"\n },\n {\n \"url\": \"assets/FAQ.html-2df9b9a2.js\",\n \"revision\": \"f3c9a2dcb8f7b6789159117c6d5a7f55\"\n },\n {\n \"url\": \"assets/FAQ.html-42cbaba4.js\",\n \"revision\": \"85d981c1081e1f75f102f9bbb86676f2\"\n },\n {\n \"url\": \"assets/FAQ.html-58ca3047.js\",\n \"revision\": \"dee0c9854d3a79e051cc52f64d85107c\"\n },\n {\n \"url\": \"assets/FAQ.html-dd5de6e3.js\",\n \"revision\": \"08565f61551e0567fd9f208a5f59a247\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-015af494.js\",\n \"revision\": \"ce641ab3fb44cf7d3c118e52e2e9e4b7\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-340b7e28.js\",\n \"revision\": \"a8c282b81182b205152ab38d224300cc\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-81906cdb.js\",\n \"revision\": \"c294c2c93b1030af939992f5cac028c5\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-a2c73de6.js\",\n \"revision\": \"a8c282b81182b205152ab38d224300cc\"\n },\n {\n \"url\": \"assets/game-launcher.html-3ffa01a8.js\",\n \"revision\": \"2e1ca7626c228730cb2d2d89fbfeea99\"\n },\n {\n \"url\": \"assets/game-launcher.html-48fbcd0a.js\",\n \"revision\": \"faa3250409d30ba684322ed2a33905f5\"\n },\n {\n \"url\": \"assets/game-launcher.html-904f564a.js\",\n \"revision\": \"e9c291323ac23152d2dca9566f0aaeb3\"\n },\n {\n \"url\": \"assets/game-launcher.html-bbaa8a3b.js\",\n \"revision\": \"c7706ba704e184828516d14b397f693a\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-032b8690.js\",\n \"revision\": \"347925ad0d2c54e791f375dd713face8\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-3f1836be.js\",\n \"revision\": \"78ebb9d9370a4c58cb3bd80863bcea83\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-698c6b8e.js\",\n \"revision\": \"48059663f453f004ae4149f5c79744bb\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-75f986b3.js\",\n \"revision\": \"dc026647681da97901bf0668ea77dd31\"\n },\n {\n \"url\": \"assets/hutao-API.html-265d153a.js\",\n \"revision\": \"647406edaa03cfb67b212524bcf3c202\"\n },\n {\n \"url\": \"assets/hutao-API.html-4088b7a3.js\",\n \"revision\": \"6205c4f437dc582fe620a9bbed791e31\"\n },\n {\n \"url\": \"assets/hutao-API.html-c450cbe0.js\",\n \"revision\": \"ab57dba63ac53e3e1a265e0df685f731\"\n },\n {\n \"url\": \"assets/hutao-API.html-c6aa20fe.js\",\n \"revision\": \"a44f687a1b3c2d553cc6506f9756be09\"\n },\n {\n \"url\": \"assets/hutao-settings.html-0972e72a.js\",\n \"revision\": \"1448ba843e523734ae1a7b90839b1257\"\n },\n {\n \"url\": \"assets/hutao-settings.html-280e1afc.js\",\n \"revision\": \"cb5fe502c022604c20df1164c9cb854c\"\n },\n {\n \"url\": \"assets/hutao-settings.html-5f75f3e0.js\",\n \"revision\": \"cc6144cdc1cc1e502d90f7b59dd13af2\"\n },\n {\n \"url\": \"assets/hutao-settings.html-72e1a0f6.js\",\n \"revision\": \"5a49038d6e41a095c6a58534b035b254\"\n },\n {\n \"url\": \"assets/i18n.html-10933388.js\",\n \"revision\": \"c4b1d2626298dff9d345783c66c1b9a8\"\n },\n {\n \"url\": \"assets/i18n.html-36f51d1e.js\",\n \"revision\": \"78931b56164c3a6bda4bf89c41534ed2\"\n },\n {\n \"url\": \"assets/i18n.html-6ae0b651.js\",\n \"revision\": \"343037d80437b847cab6a94f1ba99664\"\n },\n {\n \"url\": \"assets/i18n.html-f972be08.js\",\n \"revision\": \"baa9fa66b31c0976d12bc702842da205\"\n },\n {\n \"url\": \"assets/index-82585c84.js\",\n \"revision\": \"938526a93de840eecd804073030c5832\"\n },\n {\n \"url\": \"assets/index-e32a7948.js\",\n \"revision\": \"46a193641571106d3b7b43f9bc2a2735\"\n },\n {\n \"url\": \"assets/index.html-061d6dc0.js\",\n \"revision\": \"b28f922d563cf64d86259330b9927a11\"\n },\n {\n \"url\": \"assets/index.html-07883274.js\",\n \"revision\": \"04174cd79c3d4c0a1a1540b7693a0710\"\n },\n {\n \"url\": \"assets/index.html-08181d34.js\",\n \"revision\": \"0a5a6a8e88f5fd00023e43aa483ece97\"\n },\n {\n \"url\": \"assets/index.html-0c692529.js\",\n \"revision\": \"7e44e543db515753652bd78dde63ada7\"\n },\n {\n \"url\": \"assets/index.html-25a8e1be.js\",\n \"revision\": \"20b31e71591de917e41b5f6f3e5ebaaa\"\n },\n {\n \"url\": \"assets/index.html-279f7857.js\",\n \"revision\": \"30e9584503c92ac28b592451f4482133\"\n },\n {\n \"url\": \"assets/index.html-3216a9e5.js\",\n \"revision\": \"eaf3b1d621d6705eb2c3476f8159906c\"\n },\n {\n \"url\": \"assets/index.html-6913b6c2.js\",\n \"revision\": \"3472044dc3e4d1ec7359aabd1c35ad31\"\n },\n {\n \"url\": \"assets/index.html-6a43042e.js\",\n \"revision\": \"77cf96b2c3c39b7a622a3d95997b13a0\"\n },\n {\n \"url\": \"assets/index.html-81dd031d.js\",\n \"revision\": \"fd8b9ba49115551d897d53bc6841ee7e\"\n },\n {\n \"url\": \"assets/index.html-8616774c.js\",\n \"revision\": \"edbefcde92c4e01f99fae9abdcfd403f\"\n },\n {\n \"url\": \"assets/index.html-947e2238.js\",\n \"revision\": \"d896dd240ff16005bd475786b8c4b389\"\n },\n {\n \"url\": \"assets/index.html-97c29d40.js\",\n \"revision\": \"ac12243cfa9c017b4627db89390e1159\"\n },\n {\n \"url\": \"assets/index.html-99346794.js\",\n \"revision\": \"ccf8d0edbc095eb3943083dab0fc5dbe\"\n },\n {\n \"url\": \"assets/index.html-9b2dfc89.js\",\n \"revision\": \"a6670bef87b0eee8d6c3ff2dc79a0f32\"\n },\n {\n \"url\": \"assets/index.html-a228d087.js\",\n \"revision\": \"f597a202ff25b04eb08d9f40b4ecb9c6\"\n },\n {\n \"url\": \"assets/index.html-c63d8593.js\",\n \"revision\": \"a3d365328975a64fe5cdb7df5eb53943\"\n },\n {\n \"url\": \"assets/index.html-ce254148.js\",\n \"revision\": \"f4f322313fa70ab549b3d165ac5b1273\"\n },\n {\n \"url\": \"assets/index.html-cead7bed.js\",\n \"revision\": \"edef513650e64fc3efeb30b3da2c1336\"\n },\n {\n \"url\": \"assets/index.html-e4c3aa9e.js\",\n \"revision\": \"06f1ce39590c5d3055130fba61dd4939\"\n },\n {\n \"url\": \"assets/index.html-ead0711a.js\",\n \"revision\": \"de8de7dab77f3d8beb7480ed2831da3a\"\n },\n {\n \"url\": \"assets/index.html-f72bced7.js\",\n \"revision\": \"fde7ba03ba8fef1fbd35b0a155bd39a7\"\n },\n {\n \"url\": \"assets/known-issue.html-353310f4.js\",\n \"revision\": \"67ee4533cb4264ff960dead3eae34430\"\n },\n {\n \"url\": \"assets/known-issue.html-7adae529.js\",\n \"revision\": \"a5b28ff9d24e3640196535d50f58b23b\"\n },\n {\n \"url\": \"assets/known-issue.html-dcf2dda3.js\",\n \"revision\": \"2477a2e8cec3fe145c1f586abdab2efe\"\n },\n {\n \"url\": \"assets/known-issue.html-ea460e26.js\",\n \"revision\": \"1c2d06ed50fb212f720b6ca0d564cf4f\"\n },\n {\n \"url\": \"assets/menu.html-37a47978.js\",\n \"revision\": \"91b7cf707098fb8026edcbe62c9f6322\"\n },\n {\n \"url\": \"assets/menu.html-5943d5ab.js\",\n \"revision\": \"30d229a01e8144d8e59c8a481f4f82ba\"\n },\n {\n \"url\": \"assets/menu.html-5e29ea11.js\",\n \"revision\": \"43c77387eb0d9c82cc4f34720cac295e\"\n },\n {\n \"url\": \"assets/menu.html-96b70279.js\",\n \"revision\": \"83d531dbb71fa486bebb5fe7337d146a\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-ca9beaf1.js\",\n \"revision\": \"a7b9508fbf561048c43b568df3ecd41c\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-d22df260.js\",\n \"revision\": \"fcf72ab6527cf7b38cc6be2919743237\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-db811865.js\",\n \"revision\": \"cd64d7c7287848c2efae0443ba2db1f5\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-e484bd06.js\",\n \"revision\": \"7adaffb776297da7705e7b5c80bd0ac8\"\n },\n {\n \"url\": \"assets/monster-wiki.html-3aaff82c.js\",\n \"revision\": \"fb52177ade567751ab8bbece029c58a3\"\n },\n {\n \"url\": \"assets/monster-wiki.html-a4668d7a.js\",\n \"revision\": \"7970433e2b9746f25307b2fa55a36772\"\n },\n {\n \"url\": \"assets/monster-wiki.html-e5fc1b84.js\",\n \"revision\": \"4aa9b76dd6f261da285e955d4aec8cc2\"\n },\n {\n \"url\": \"assets/monster-wiki.html-ed4ef353.js\",\n \"revision\": \"16f8fda35bffa7a5ba4ba2c2f7c22cb7\"\n },\n {\n \"url\": \"assets/photoswipe.esm-1464cdb9.js\",\n \"revision\": \"3a72d9823ffa5943f03c5e884d0f66d8\"\n },\n {\n \"url\": \"assets/platform.html-36392819.js\",\n \"revision\": \"19d1086c6352139f94d9a534c67e228a\"\n },\n {\n \"url\": \"assets/platform.html-a018603e.js\",\n \"revision\": \"89a4ccb7922e5cb9670e02ecdd58b44f\"\n },\n {\n \"url\": \"assets/platform.html-b4ee221c.js\",\n \"revision\": \"1773dea34d2ec0cc218ad7debde1804a\"\n },\n {\n \"url\": \"assets/platform.html-ec227b31.js\",\n \"revision\": \"f4a3b4723af281c3c3146be834b362de\"\n },\n {\n \"url\": \"assets/plugin-vue_export-helper-c27b6911.js\",\n \"revision\": \"25e3a5dcaf00fb2b1ba0c8ecea6d2560\"\n },\n {\n \"url\": \"assets/privacy-notice.html-0f688115.js\",\n \"revision\": \"def37305b18f4e4e512e0771bd208288\"\n },\n {\n \"url\": \"assets/privacy-notice.html-69586390.js\",\n \"revision\": \"ccbb4203331610ce1af193c2dd780239\"\n },\n {\n \"url\": \"assets/privacy-notice.html-8f872be8.js\",\n \"revision\": \"45453f08d62daf7c2e9a42e51b65a3f1\"\n },\n {\n \"url\": \"assets/privacy-notice.html-e40ff099.js\",\n \"revision\": \"a2760af798972147096754cf017bfad9\"\n },\n {\n \"url\": \"assets/project.html-8bb151df.js\",\n \"revision\": \"ec465ef5ab2d3f2d44d717a072a5e1f5\"\n },\n {\n \"url\": \"assets/project.html-9b08d186.js\",\n \"revision\": \"8b7bd376d882e29ce9bd60798ba8b388\"\n },\n {\n \"url\": \"assets/project.html-bd19dacf.js\",\n \"revision\": \"65dea2e16a2399d6c2dca5d3a885c47a\"\n },\n {\n \"url\": \"assets/project.html-c2c3c465.js\",\n \"revision\": \"e1bed318336b4793940ce886f8e4b054\"\n },\n {\n \"url\": \"assets/quick-start.html-0a9c32af.js\",\n \"revision\": \"3efc1cf73040a8c41df24bc0bc27adc6\"\n },\n {\n \"url\": \"assets/quick-start.html-5b6055dc.js\",\n \"revision\": \"2e6c827021d7668f1aeaf3b58176ea6b\"\n },\n {\n \"url\": \"assets/quick-start.html-7495b37d.js\",\n \"revision\": \"da658677fe7e924eb026787610d25fed\"\n },\n {\n \"url\": \"assets/quick-start.html-dab9eba3.js\",\n \"revision\": \"d57e2e2fbfbbe1bc1b00db57d852ac70\"\n },\n {\n \"url\": \"assets/real-time-notes.html-25aed809.js\",\n \"revision\": \"732da1efa102a60219280f043f324f25\"\n },\n {\n \"url\": \"assets/real-time-notes.html-42fa37e7.js\",\n \"revision\": \"8b78216f937b1bcab42706be284aef40\"\n },\n {\n \"url\": \"assets/real-time-notes.html-6da9b42a.js\",\n \"revision\": \"e65f142d514ee140637c5b27fef42581\"\n },\n {\n \"url\": \"assets/real-time-notes.html-de90b20c.js\",\n \"revision\": \"0fed87db342e3c96d3f612d176939e5c\"\n },\n {\n \"url\": \"assets/setup.html-829b4bbd.js\",\n \"revision\": \"29faf34d3d34b295983b32617e7e13d7\"\n },\n {\n \"url\": \"assets/setup.html-a545afac.js\",\n \"revision\": \"25cd2cecfb915ccf10409662dd11365f\"\n },\n {\n \"url\": \"assets/setup.html-aafce36e.js\",\n \"revision\": \"1dbf9599cfa21ce54ffaf5a63c84d9aa\"\n },\n {\n \"url\": \"assets/setup.html-af40dc11.js\",\n \"revision\": \"6f53b9f1930e2cac3d641fc5ec228489\"\n },\n {\n \"url\": \"assets/side-load.html-0a898ed6.js\",\n \"revision\": \"0415aa8e51f3730757e450a47b30d441\"\n },\n {\n \"url\": \"assets/side-load.html-503e3506.js\",\n \"revision\": \"c2c3143f0f420fa0f10d77a6e8eff26b\"\n },\n {\n \"url\": \"assets/side-load.html-93a3f61b.js\",\n \"revision\": \"d3123e3e80faa5a4ba2f51acb5b018b3\"\n },\n {\n \"url\": \"assets/side-load.html-f0d36725.js\",\n \"revision\": \"c2c3143f0f420fa0f10d77a6e8eff26b\"\n },\n {\n \"url\": \"assets/star-request.html-7f0089f1.js\",\n \"revision\": \"27dfdc170327f7658b49d86d88cff1c4\"\n },\n {\n \"url\": \"assets/star-request.html-b1a3dcce.js\",\n \"revision\": \"e987e3766dcd534197f8dd3b02e01b2f\"\n },\n {\n \"url\": \"assets/star-request.html-c91f6d76.js\",\n \"revision\": \"4995da6b9d8c3f91a5584a210ff6f796\"\n },\n {\n \"url\": \"assets/star-request.html-eb357667.js\",\n \"revision\": \"79801dfbfe99d5202323c4f6f246c0a1\"\n },\n {\n \"url\": \"assets/style-a6da9cda.css\",\n \"revision\": \"707a73c999e23d0d084e6d4f04805655\"\n },\n {\n \"url\": \"assets/style-e9220a04.js\",\n \"revision\": \"b40fc755bce11d2ee5ec6b814c802a65\"\n },\n {\n \"url\": \"assets/symposium1.html-4ca69a8e.js\",\n \"revision\": \"9e38d23bebd819ee8112e2306c0f6999\"\n },\n {\n \"url\": \"assets/symposium1.html-cbffe867.js\",\n \"revision\": \"6ac2df891e403e078abf9fa4a70d3cca\"\n },\n {\n \"url\": \"assets/symposium2.html-46c6280f.js\",\n \"revision\": \"fca64673a107e0ecebac70bcd76f31e8\"\n },\n {\n \"url\": \"assets/symposium2.html-b9b55802.js\",\n \"revision\": \"4737a434d776df0d0bee1391970bb013\"\n },\n {\n \"url\": \"assets/tos.html-1c0a6890.js\",\n \"revision\": \"cf8a5a673aa7d9dd2477882721f3c304\"\n },\n {\n \"url\": \"assets/tos.html-3a563f3d.js\",\n \"revision\": \"668d37e9508582d680a270647bc68159\"\n },\n {\n \"url\": \"assets/tos.html-ba544e7e.js\",\n \"revision\": \"0f1793f8d15771287d15d896d665b364\"\n },\n {\n \"url\": \"assets/tos.html-e7fb0dd0.js\",\n \"revision\": \"a5509330b39e17b8587d6bf82fbca7a9\"\n },\n {\n \"url\": \"assets/uninstall.html-3103004e.js\",\n \"revision\": \"a4d27d8eb36ac36ae4c92b4f25674223\"\n },\n {\n \"url\": \"assets/uninstall.html-4c4795fe.js\",\n \"revision\": \"c1a93b163d2f2e7a0a401740b2ba4f7b\"\n },\n {\n \"url\": \"assets/uninstall.html-5214283b.js\",\n \"revision\": \"f6bcd58b46b9d94b00337263d215c713\"\n },\n {\n \"url\": \"assets/uninstall.html-90d5e7a1.js\",\n \"revision\": \"79bdca9323776fd73ad0d21f21437fa9\"\n },\n {\n \"url\": \"assets/update-log.html-3e82a157.js\",\n \"revision\": \"c9d8fd1a53876a080060e394858b5a15\"\n },\n {\n \"url\": \"assets/update-log.html-942a467d.js\",\n \"revision\": \"3ec510c0c4a43a74fe48a4a1d303730c\"\n },\n {\n \"url\": \"assets/update-log.html-999bcfb3.js\",\n \"revision\": \"ce957b62e4ec15a9bc2f9e3dbbb58f45\"\n },\n {\n \"url\": \"assets/update-log.html-dbfb081f.js\",\n \"revision\": \"8c02eafbd4090a69341622ccea66ed8b\"\n },\n {\n \"url\": \"assets/waline-meta-56fbc549.js\",\n \"revision\": \"fe8fce833452b0c8ea188f0342a2ce65\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-0edcd288.js\",\n \"revision\": \"6b1dc26566337fe556d20ac7dd51b7ce\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-12997220.js\",\n \"revision\": \"9fcc3412dd2c6e3c6585e894b6fae4d8\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-5c2ca54e.js\",\n \"revision\": \"49f602a411138efd8ce35cfa6c50886c\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-dcbaafb6.js\",\n \"revision\": \"4b689bda388e5697775aa312a38be2d0\"\n },\n {\n \"url\": \"assets/wish-export.html-0565104e.js\",\n \"revision\": \"36ce3a4951f13b652d1b3b902f85eb47\"\n },\n {\n \"url\": \"assets/wish-export.html-30e5101d.js\",\n \"revision\": \"2d0cac968845f5bc436e697f71a0739c\"\n },\n {\n \"url\": \"assets/wish-export.html-b1d5faab.js\",\n \"revision\": \"e94740d52a7512ddfd9df61af8db93dd\"\n },\n {\n \"url\": \"assets/wish-export.html-fba13e79.js\",\n \"revision\": \"da7c38412e41022c3201b899b09c3010\"\n },\n {\n \"url\": \"fontlist/demo.css\",\n \"revision\": \"c470b271d96640b2d527d864d838d550\"\n },\n {\n \"url\": \"fontlist/iconfont.css\",\n \"revision\": \"47f9418c83e516e2f92fffa11e06ff9f\"\n },\n {\n \"url\": \"fontlist/iconfont.js\",\n \"revision\": \"787c135beed0ae93c145ae2de3cbfefe\"\n },\n {\n \"url\": \"fontlist/iconfont.ttf\",\n \"revision\": \"6d90ead1de012ad82077c2a898dcc136\"\n },\n {\n \"url\": \"fontlist/iconfont.woff\",\n \"revision\": \"c50542a321198d3a49a56ba9f50923f6\"\n },\n {\n \"url\": \"fontlist/iconfont.woff2\",\n \"revision\": \"a917e0d0985aaabe49b9bd5ad48bd270\"\n },\n {\n \"url\": \"upload-abyss-data.js\",\n \"revision\": \"e3c5df0c4de06f2bd47d19d95f478c8e\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"934015b4223140a44529b56a467a51fc\"\n },\n {\n \"url\": \"404.html\",\n \"revision\": \"55e9297fdf03f36b78fb289a189fa530\"\n },\n {\n \"url\": \"images/202209/Achievements.png\",\n \"revision\": \"067cff70d53656b2e3e878df949823f6\"\n },\n {\n \"url\": \"images/202209/HeroImageLogo.png\",\n \"revision\": \"fb8507e3eaccbd6408874dcf10973d62\"\n },\n {\n \"url\": \"images/202209/IndexIconAchievements.png\",\n \"revision\": \"ea409f5a87b1c7666121ead606e323ef\"\n },\n {\n \"url\": \"images/202209/IndexIconCharacters.png\",\n \"revision\": \"db66594140f8dfc65556cc0ac2ed3e3e\"\n },\n {\n \"url\": \"images/202209/IndexIconMihoyoBBS.png\",\n \"revision\": \"b9c679888c01a50e6b126f9dae0d50d1\"\n },\n {\n \"url\": \"images/202209/IndexIconWeapons.png\",\n \"revision\": \"21a20e656ff91575a50c2a1c0253a581\"\n },\n {\n \"url\": \"images/202209/IndexIconWish.png\",\n \"revision\": \"0b4e790c4cb1eeba7473ad8e1b14ac23\"\n },\n {\n \"url\": \"images/202209/SGLogoUpgrade64.png\",\n \"revision\": \"1b95d8969049e0b31c0d89eeface0b89\"\n },\n {\n \"url\": \"images/202209/wish-export.png\",\n \"revision\": \"ef07fa6499c22d00c78dc182ad3cbab5\"\n },\n {\n \"url\": \"images/202210/1.1.7-Update-Error-Fix.png\",\n \"revision\": \"1f1958198ca4510713648cff6c43fcd5\"\n },\n {\n \"url\": \"images/202210/1.1.7-Update-Error.png\",\n \"revision\": \"3e04317e974e1cec550096b7ea88d708\"\n },\n {\n \"url\": \"images/202210/account-upgrade.png\",\n \"revision\": \"52b1c5695109142c9496bb6e14a9c2d1\"\n },\n {\n \"url\": \"images/202210/HttpRequestException.jpg\",\n \"revision\": \"878a57ab9fe5de6b774d7e91776987ab\"\n },\n {\n \"url\": \"images/202210/hutao-api-submit.png\",\n \"revision\": \"6a201ae85f470f3bb70e868137524830\"\n },\n {\n \"url\": \"images/202210/hutao-api.png\",\n \"revision\": \"5bd260fe9b5c18a41765c1126cfd91ff\"\n },\n {\n \"url\": \"images/202210/hutao-login.png\",\n \"revision\": \"21af43587bacf56bf40cadc884381c49\"\n },\n {\n \"url\": \"images/202211/character-data-display.png\",\n \"revision\": \"0cd41e7a02ee864ff12f0f69c926b79f\"\n },\n {\n \"url\": \"images/202211/character-data-logo.png\",\n \"revision\": \"04cc28833ed4c2108ba215fbc33325bf\"\n },\n {\n \"url\": \"images/202211/character-wiki-logo.png\",\n \"revision\": \"db66594140f8dfc65556cc0ac2ed3e3e\"\n },\n {\n \"url\": \"images/202211/character-wiki.png\",\n \"revision\": \"002ee49f019709942ae1b3dc541d05e4\"\n },\n {\n \"url\": \"images/202211/game-launcher-logo.png\",\n \"revision\": \"a5a5d6d5a09926689f8a61db4b24c2df\"\n },\n {\n \"url\": \"images/202211/hutao-api-logo.png\",\n \"revision\": \"feb8ae3e6c4099e0b7804e3d7ebda7c2\"\n },\n {\n \"url\": \"images/202211/wish-export.png\",\n \"revision\": \"c695c558c514d9aa0d3903d5c41f63b9\"\n },\n {\n \"url\": \"images/202301/achievement.png\",\n \"revision\": \"42fd361ea1336daf7cd33bf187e62fa2\"\n },\n {\n \"url\": \"images/202301/dev-plan-logo.png\",\n \"revision\": \"5d69e71ecd6e1b553395e2306fff5f34\"\n },\n {\n \"url\": \"images/202301/live-stat-tracking-logo.png\",\n \"revision\": \"23a418c1d29dbbf0142085f2e8ad464d\"\n },\n {\n \"url\": \"images/202301/spiral-abyss-record-logo.png\",\n \"revision\": \"6d213b91803137c600bb27b973a7ee25\"\n },\n {\n \"url\": \"images/202301/weapon-wiki-logo.png\",\n \"revision\": \"21a20e656ff91575a50c2a1c0253a581\"\n },\n {\n \"url\": \"images/202308/Calculator_Icon.png\",\n \"revision\": \"7fb5a148e1ae7f98c4848f3601a158fb\"\n },\n {\n \"url\": \"images/202308/Character_WIKI_Icon.png\",\n \"revision\": \"efb6186847a600de2a4a429052d1c77b\"\n },\n {\n \"url\": \"images/202308/Game_Launcher_Icon.png\",\n \"revision\": \"3d1f2ce60f927919a4120b9e2206dca1\"\n },\n {\n \"url\": \"images/202308/head-back.png\",\n \"revision\": \"627872a2d3a6e0a9175362a2bce9df75\"\n },\n {\n \"url\": \"images/202308/highlights-head.png\",\n \"revision\": \"95af9689fe9b2659f4e1e8c6ad365d87\"\n },\n {\n \"url\": \"images/202308/hoyolab-miyoushe-Icon.png\",\n \"revision\": \"e06a266f679fb74b6259579846410d8c\"\n },\n {\n \"url\": \"images/202308/My_Character_Icon.png\",\n \"revision\": \"394b9ce7a3f8d92109dac083c1e916c8\"\n },\n {\n \"url\": \"images/202308/UI_BtnIcon_Gacha.png\",\n \"revision\": \"912a76ce2d4579c72ada39c79237279d\"\n },\n {\n \"url\": \"images/202308/UI_ChapterIcon_Hutao.png\",\n \"revision\": \"86791e433554edf6652ee9dfd0d4ef69\"\n },\n {\n \"url\": \"images/202308/Weapon_WIKI_Icon.png\",\n \"revision\": \"3f20fdf346dafbd370054f04ec00b8cf\"\n },\n {\n \"url\": \"images/202309/head-back2.png\",\n \"revision\": \"68cab275f36686f7032e495c58cc47df\"\n },\n {\n \"url\": \"images/202309/security.png\",\n \"revision\": \"1853661345ceb924817aae9ebdd7ec1f\"\n },\n {\n \"url\": \"pwa-icon/chrome-144.png\",\n \"revision\": \"24dd1f208ca63bef5c104659ae25c0e8\"\n },\n {\n \"url\": \"pwa-icon/chrome-192.png\",\n \"revision\": \"984b2a8dfd5dfb1cecfb73bc940bf070\"\n },\n {\n \"url\": \"pwa-icon/chrome-48.png\",\n \"revision\": \"a424e2c1b597db8e320cb3184c78ae23\"\n },\n {\n \"url\": \"pwa-icon/chrome-512.png\",\n \"revision\": \"06ecfca5b4c625d580608e04850f9f29\"\n },\n {\n \"url\": \"pwa-icon/chrome-72.png\",\n \"revision\": \"b9c2449570f275fd5dd34b887aa04697\"\n },\n {\n \"url\": \"pwa-icon/chrome-96.png\",\n \"revision\": \"64e04325061a5fa6de31f4b52bb7498f\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches"],"mappings":"0nBAqBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAGFC,EAAAA,eAQAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,8CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,WACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,4CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../tmp/8bb23ddd8547f78c837d64d4e8c9a4a0/service-worker.js"],"sourcesContent":["import {clientsClaim as workbox_core_clientsClaim} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-core@7.0.0/node_modules/workbox-core/clientsClaim.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-precaching@7.0.0/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/Snap.Hutao.Docs/Snap.Hutao.Docs/node_modules/.pnpm/workbox-precaching@7.0.0/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\nworkbox_core_clientsClaim();\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"assets/404.html-887cec77.js\",\n \"revision\": \"f44a9b03d54b27cdec15e9a71545af01\"\n },\n {\n \"url\": \"assets/404.html-cc4520a7.js\",\n \"revision\": \"603894850918e0d0424fa87be67b1b21\"\n },\n {\n \"url\": \"assets/achievements.html-06dd492a.js\",\n \"revision\": \"69eac6f9d18734340ea6a6a23fbb533b\"\n },\n {\n \"url\": \"assets/achievements.html-0de1eff5.js\",\n \"revision\": \"773193abcaaffc3fb06520789ec51acd\"\n },\n {\n \"url\": \"assets/achievements.html-48ffc151.js\",\n \"revision\": \"13a76d7e8cfcf1bd939c185ee15085f9\"\n },\n {\n \"url\": \"assets/achievements.html-a6a0de9a.js\",\n \"revision\": \"75eab6790f6d5e7f011445af2520df05\"\n },\n {\n \"url\": \"assets/app-5a96e1e2.js\",\n \"revision\": \"997e8a517aa1b40450dc0ba962947deb\"\n },\n {\n \"url\": \"assets/bug-report.html-310cbc3b.js\",\n \"revision\": \"0b90cc93185ccd747c1d04a2ccf8210e\"\n },\n {\n \"url\": \"assets/bug-report.html-6dbadeb5.js\",\n \"revision\": \"33bda63396390a9d7ef70367d64009ea\"\n },\n {\n \"url\": \"assets/bug-report.html-84fe1704.js\",\n \"revision\": \"cdc39d1ae597168004ffecbec46ca1aa\"\n },\n {\n \"url\": \"assets/bug-report.html-f5518e52.js\",\n \"revision\": \"a80aed39d2a7ff215183462ff5bc2919\"\n },\n {\n \"url\": \"assets/character-data.html-3b2a78c6.js\",\n \"revision\": \"95e87c497033ddcd8e2575a64d9c7693\"\n },\n {\n \"url\": \"assets/character-data.html-42720767.js\",\n \"revision\": \"26bb97d023b8bf081334042267a35385\"\n },\n {\n \"url\": \"assets/character-data.html-49915f74.js\",\n \"revision\": \"6addb48b8d20c5c08ef2855890977772\"\n },\n {\n \"url\": \"assets/character-data.html-8a78117e.js\",\n \"revision\": \"f3941634724fcc4938079fa9c55a2b01\"\n },\n {\n \"url\": \"assets/character-wiki.html-1b9db7c1.js\",\n \"revision\": \"c254c0d48e5fcdac79185e870835dbf0\"\n },\n {\n \"url\": \"assets/character-wiki.html-32a83ab1.js\",\n \"revision\": \"eb23cc4f082545f7983152150b3b6324\"\n },\n {\n \"url\": \"assets/character-wiki.html-90b9eedb.js\",\n \"revision\": \"8dfc2f275cfe6ccfc8159cc3ffbdb9bd\"\n },\n {\n \"url\": \"assets/character-wiki.html-9436f4de.js\",\n \"revision\": \"5f25961f641fd7d37ed51a10cf7fecf8\"\n },\n {\n \"url\": \"assets/community.html-417cf11c.js\",\n \"revision\": \"c48941c57445f24f36d123a5f0077bf9\"\n },\n {\n \"url\": \"assets/community.html-6382b9ab.js\",\n \"revision\": \"6d642b52c7c58c40ea30a17405d9e3bf\"\n },\n {\n \"url\": \"assets/community.html-84f8e709.js\",\n \"revision\": \"044388d4b7b8152ac5df304c080d0cc7\"\n },\n {\n \"url\": \"assets/community.html-ca7edab2.js\",\n \"revision\": \"57c847bd648203dc814f461084d8cb8a\"\n },\n {\n \"url\": \"assets/component-638e0776.js\",\n \"revision\": \"e4bcb4cdde520e69430a4f69dbeb221d\"\n },\n {\n \"url\": \"assets/contribute.html-54af88d0.js\",\n \"revision\": \"3e4114cabab6b55137e1fc06a921a59b\"\n },\n {\n \"url\": \"assets/contribute.html-64ac2d95.js\",\n \"revision\": \"204b515728553ce1d712a01e2c249605\"\n },\n {\n \"url\": \"assets/contribute.html-7f946320.js\",\n \"revision\": \"18599b25749263485f64f72421a43ddf\"\n },\n {\n \"url\": \"assets/contribute.html-e1851f90.js\",\n \"revision\": \"5ac490b0b2ec67665cddffa339b6115e\"\n },\n {\n \"url\": \"assets/dashboard.html-26c28184.js\",\n \"revision\": \"b1b69b548607e56930664a1eaca49cc9\"\n },\n {\n \"url\": \"assets/dashboard.html-50b728ce.js\",\n \"revision\": \"4f61da7b47cc877825b939ca85ef9c21\"\n },\n {\n \"url\": \"assets/dashboard.html-83ef77ec.js\",\n \"revision\": \"aece8f699512dfb73d2d3a3a49cb80ca\"\n },\n {\n \"url\": \"assets/dashboard.html-de43d08c.js\",\n \"revision\": \"196a6ca2646b2292ace1ae77cee8b4d0\"\n },\n {\n \"url\": \"assets/dependency.html-0fd09a7f.js\",\n \"revision\": \"6f86b106cb5d4e7475f0e8c05bcd00c5\"\n },\n {\n \"url\": \"assets/dependency.html-6aa2a973.js\",\n \"revision\": \"e669ebecaa985c9836b7cbbe1a3b7efa\"\n },\n {\n \"url\": \"assets/dependency.html-cb812315.js\",\n \"revision\": \"e8577918470c24e6896599ffc443359e\"\n },\n {\n \"url\": \"assets/dependency.html-f161842e.js\",\n \"revision\": \"c4723254144e9135eeb40756b720ab71\"\n },\n {\n \"url\": \"assets/develop-plan.html-08ab6a3f.js\",\n \"revision\": \"264b657c57572dfec9bba3e5a48dc633\"\n },\n {\n \"url\": \"assets/develop-plan.html-1a88a516.js\",\n \"revision\": \"1e2dfe2d7991848406374bbd10b6ad18\"\n },\n {\n \"url\": \"assets/develop-plan.html-4cd8de09.js\",\n \"revision\": \"0ea5475c971b1fa3c7eac3c95d82c901\"\n },\n {\n \"url\": \"assets/develop-plan.html-72b138aa.js\",\n \"revision\": \"9070fb1ed188e5fa1c8efa2619e90818\"\n },\n {\n \"url\": \"assets/docsearch-1d421ddb.js\",\n \"revision\": \"582ce23a3b7a09735ae2e462904b2e3a\"\n },\n {\n \"url\": \"assets/exceptions.html-40258713.js\",\n \"revision\": \"32bf71e7f76d8c910f2fe4cb67f4711c\"\n },\n {\n \"url\": \"assets/exceptions.html-5e79025e.js\",\n \"revision\": \"fe972e8c932f2355356f8dcac9ffcbeb\"\n },\n {\n \"url\": \"assets/exceptions.html-a05a1b2d.js\",\n \"revision\": \"968828e74ee284108dd0e46d80800d01\"\n },\n {\n \"url\": \"assets/exceptions.html-f92d5379.js\",\n \"revision\": \"8c179a5b97c39e3ec9385753f3f0b708\"\n },\n {\n \"url\": \"assets/FAQ.html-414ac22f.js\",\n \"revision\": \"7bd1ecfa9a97b40b99c2a365e4fb0e4a\"\n },\n {\n \"url\": \"assets/FAQ.html-42cbaba4.js\",\n \"revision\": \"85d981c1081e1f75f102f9bbb86676f2\"\n },\n {\n \"url\": \"assets/FAQ.html-58ca3047.js\",\n \"revision\": \"dee0c9854d3a79e051cc52f64d85107c\"\n },\n {\n \"url\": \"assets/FAQ.html-7f0963c6.js\",\n \"revision\": \"9ba5381dddb637a87daf2a01c5fc0a13\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-015af494.js\",\n \"revision\": \"ce641ab3fb44cf7d3c118e52e2e9e4b7\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-160e18ef.js\",\n \"revision\": \"98d0b6261728d7f3f1d89b916eecfe88\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-81906cdb.js\",\n \"revision\": \"c294c2c93b1030af939992f5cac028c5\"\n },\n {\n \"url\": \"assets/Gacha-system-and-export-principal.html-bfc5bd6f.js\",\n \"revision\": \"98d0b6261728d7f3f1d89b916eecfe88\"\n },\n {\n \"url\": \"assets/game-launcher.html-48fbcd0a.js\",\n \"revision\": \"faa3250409d30ba684322ed2a33905f5\"\n },\n {\n \"url\": \"assets/game-launcher.html-50a78294.js\",\n \"revision\": \"288cb4aef6927035ea2fed2802d48103\"\n },\n {\n \"url\": \"assets/game-launcher.html-a55f58e7.js\",\n \"revision\": \"69517c36702ac098a9f0184a181a3d10\"\n },\n {\n \"url\": \"assets/game-launcher.html-bbaa8a3b.js\",\n \"revision\": \"c7706ba704e184828516d14b397f693a\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-48dcba2c.js\",\n \"revision\": \"a9310b659a31453ec674595b26214cd4\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-698c6b8e.js\",\n \"revision\": \"48059663f453f004ae4149f5c79744bb\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-75f986b3.js\",\n \"revision\": \"dc026647681da97901bf0668ea77dd31\"\n },\n {\n \"url\": \"assets/get-stoken-cookie-from-the-third-party.html-c6b7387c.js\",\n \"revision\": \"8655124ee10ada71e9d66a8c81491be9\"\n },\n {\n \"url\": \"assets/hutao-API.html-0b11e24f.js\",\n \"revision\": \"65038be382e2549c285d01cacba7858b\"\n },\n {\n \"url\": \"assets/hutao-API.html-4088b7a3.js\",\n \"revision\": \"6205c4f437dc582fe620a9bbed791e31\"\n },\n {\n \"url\": \"assets/hutao-API.html-7018cba6.js\",\n \"revision\": \"346ad4927e306175e503d96a764f6871\"\n },\n {\n \"url\": \"assets/hutao-API.html-c450cbe0.js\",\n \"revision\": \"ab57dba63ac53e3e1a265e0df685f731\"\n },\n {\n \"url\": \"assets/hutao-settings.html-280e1afc.js\",\n \"revision\": \"cb5fe502c022604c20df1164c9cb854c\"\n },\n {\n \"url\": \"assets/hutao-settings.html-72e1a0f6.js\",\n \"revision\": \"5a49038d6e41a095c6a58534b035b254\"\n },\n {\n \"url\": \"assets/hutao-settings.html-e7324425.js\",\n \"revision\": \"bee7f2bbdc9fa5e0c6912d167094de6a\"\n },\n {\n \"url\": \"assets/hutao-settings.html-fc06a94c.js\",\n \"revision\": \"3332d37b0ea4cd728140e45608a49cc9\"\n },\n {\n \"url\": \"assets/i18n.html-0cf3ba2c.js\",\n \"revision\": \"310355a8621c68efd8decd4d67e57ff3\"\n },\n {\n \"url\": \"assets/i18n.html-10933388.js\",\n \"revision\": \"c4b1d2626298dff9d345783c66c1b9a8\"\n },\n {\n \"url\": \"assets/i18n.html-ea3f12cc.js\",\n \"revision\": \"2003d861ffb421effd3d3a65e980300c\"\n },\n {\n \"url\": \"assets/i18n.html-f972be08.js\",\n \"revision\": \"baa9fa66b31c0976d12bc702842da205\"\n },\n {\n \"url\": \"assets/index-82585c84.js\",\n \"revision\": \"938526a93de840eecd804073030c5832\"\n },\n {\n \"url\": \"assets/index-e32a7948.js\",\n \"revision\": \"46a193641571106d3b7b43f9bc2a2735\"\n },\n {\n \"url\": \"assets/index.html-061d6dc0.js\",\n \"revision\": \"b28f922d563cf64d86259330b9927a11\"\n },\n {\n \"url\": \"assets/index.html-1b5b714a.js\",\n \"revision\": \"890223d7b85384bd4da04df7b3608048\"\n },\n {\n \"url\": \"assets/index.html-1c71d3f9.js\",\n \"revision\": \"5e112473d069282512c381ba89aab9aa\"\n },\n {\n \"url\": \"assets/index.html-279f7857.js\",\n \"revision\": \"30e9584503c92ac28b592451f4482133\"\n },\n {\n \"url\": \"assets/index.html-3216a9e5.js\",\n \"revision\": \"eaf3b1d621d6705eb2c3476f8159906c\"\n },\n {\n \"url\": \"assets/index.html-41a05330.js\",\n \"revision\": \"ea15a5c78af12e531e0af0bfe0f1f63a\"\n },\n {\n \"url\": \"assets/index.html-45dede9b.js\",\n \"revision\": \"d19d3d34fa34b917c7cbc86a246adce7\"\n },\n {\n \"url\": \"assets/index.html-619b8ca3.js\",\n \"revision\": \"c4acba12708e08d543f7bebbb047d4b0\"\n },\n {\n \"url\": \"assets/index.html-6913b6c2.js\",\n \"revision\": \"3472044dc3e4d1ec7359aabd1c35ad31\"\n },\n {\n \"url\": \"assets/index.html-6a43042e.js\",\n \"revision\": \"77cf96b2c3c39b7a622a3d95997b13a0\"\n },\n {\n \"url\": \"assets/index.html-7cc8179e.js\",\n \"revision\": \"4045a817b7cb1d9ac896e19e13fba895\"\n },\n {\n \"url\": \"assets/index.html-81dd031d.js\",\n \"revision\": \"fd8b9ba49115551d897d53bc6841ee7e\"\n },\n {\n \"url\": \"assets/index.html-8616774c.js\",\n \"revision\": \"edbefcde92c4e01f99fae9abdcfd403f\"\n },\n {\n \"url\": \"assets/index.html-8ee577f1.js\",\n \"revision\": \"de74546201be0ac6fc9bc7f352ad447d\"\n },\n {\n \"url\": \"assets/index.html-947e2238.js\",\n \"revision\": \"d896dd240ff16005bd475786b8c4b389\"\n },\n {\n \"url\": \"assets/index.html-a228d087.js\",\n \"revision\": \"f597a202ff25b04eb08d9f40b4ecb9c6\"\n },\n {\n \"url\": \"assets/index.html-a55c6bb9.js\",\n \"revision\": \"ef1ed5ea2f45ec6412d19ede63a5991f\"\n },\n {\n \"url\": \"assets/index.html-b2424ddd.js\",\n \"revision\": \"a5d21b71d658b7a61d8b0e0220374079\"\n },\n {\n \"url\": \"assets/index.html-ce254148.js\",\n \"revision\": \"f4f322313fa70ab549b3d165ac5b1273\"\n },\n {\n \"url\": \"assets/index.html-d56d80a3.js\",\n \"revision\": \"e0c82173eecbe4e6a012ab615088235a\"\n },\n {\n \"url\": \"assets/index.html-ead0711a.js\",\n \"revision\": \"de8de7dab77f3d8beb7480ed2831da3a\"\n },\n {\n \"url\": \"assets/index.html-f7d0e723.js\",\n \"revision\": \"8f52c2c1808ab40a8debbd70d297e824\"\n },\n {\n \"url\": \"assets/known-issue.html-353310f4.js\",\n \"revision\": \"67ee4533cb4264ff960dead3eae34430\"\n },\n {\n \"url\": \"assets/known-issue.html-6e4b2dbb.js\",\n \"revision\": \"3f866ec3e38e3e8bafcc594b6e37740c\"\n },\n {\n \"url\": \"assets/known-issue.html-928c6706.js\",\n \"revision\": \"e9acf53425e2224aab6b423651a514f6\"\n },\n {\n \"url\": \"assets/known-issue.html-dcf2dda3.js\",\n \"revision\": \"2477a2e8cec3fe145c1f586abdab2efe\"\n },\n {\n \"url\": \"assets/menu.html-37a47978.js\",\n \"revision\": \"91b7cf707098fb8026edcbe62c9f6322\"\n },\n {\n \"url\": \"assets/menu.html-4e298123.js\",\n \"revision\": \"d055fce42e2ce05d0255d5ed8b69d999\"\n },\n {\n \"url\": \"assets/menu.html-5e29ea11.js\",\n \"revision\": \"43c77387eb0d9c82cc4f34720cac295e\"\n },\n {\n \"url\": \"assets/menu.html-940f952e.js\",\n \"revision\": \"8c577125c7ea9e01f122c472dd62ffd4\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-84159f63.js\",\n \"revision\": \"69b642ca8e822c9b7adf46c2225bf88f\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-866591ed.js\",\n \"revision\": \"aded56f98d6ae36ad9fbee7b8405f08c\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-ca9beaf1.js\",\n \"revision\": \"a7b9508fbf561048c43b568df3ecd41c\"\n },\n {\n \"url\": \"assets/mhy-account-switch.html-db811865.js\",\n \"revision\": \"cd64d7c7287848c2efae0443ba2db1f5\"\n },\n {\n \"url\": \"assets/monster-wiki.html-a4668d7a.js\",\n \"revision\": \"7970433e2b9746f25307b2fa55a36772\"\n },\n {\n \"url\": \"assets/monster-wiki.html-b4a92c1c.js\",\n \"revision\": \"ce88c552d5c6558eb5e1454e0be50bae\"\n },\n {\n \"url\": \"assets/monster-wiki.html-e22d8ce1.js\",\n \"revision\": \"d6ee2927994c3654e84f3a06db70e2c7\"\n },\n {\n \"url\": \"assets/monster-wiki.html-ed4ef353.js\",\n \"revision\": \"16f8fda35bffa7a5ba4ba2c2f7c22cb7\"\n },\n {\n \"url\": \"assets/photoswipe.esm-1464cdb9.js\",\n \"revision\": \"3a72d9823ffa5943f03c5e884d0f66d8\"\n },\n {\n \"url\": \"assets/platform.html-77fb71fa.js\",\n \"revision\": \"20efe8d3f1b9c14cf61a6365c59b112c\"\n },\n {\n \"url\": \"assets/platform.html-a018603e.js\",\n \"revision\": \"89a4ccb7922e5cb9670e02ecdd58b44f\"\n },\n {\n \"url\": \"assets/platform.html-cb36bf71.js\",\n \"revision\": \"48ec30c45f9711da40c89fcb2ad1d07b\"\n },\n {\n \"url\": \"assets/platform.html-ec227b31.js\",\n \"revision\": \"f4a3b4723af281c3c3146be834b362de\"\n },\n {\n \"url\": \"assets/plugin-vue_export-helper-c27b6911.js\",\n \"revision\": \"25e3a5dcaf00fb2b1ba0c8ecea6d2560\"\n },\n {\n \"url\": \"assets/privacy-notice.html-69586390.js\",\n \"revision\": \"ccbb4203331610ce1af193c2dd780239\"\n },\n {\n \"url\": \"assets/privacy-notice.html-b62d63cc.js\",\n \"revision\": \"60adf5863ae49d907299aea1c031df1a\"\n },\n {\n \"url\": \"assets/privacy-notice.html-e40ff099.js\",\n \"revision\": \"a2760af798972147096754cf017bfad9\"\n },\n {\n \"url\": \"assets/privacy-notice.html-f461657a.js\",\n \"revision\": \"c3d79f911327a88f8ec558c626d76dd4\"\n },\n {\n \"url\": \"assets/project.html-29490bdd.js\",\n \"revision\": \"bcbb0a9823bf69cf5d28d35cf80a857e\"\n },\n {\n \"url\": \"assets/project.html-877937ff.js\",\n \"revision\": \"01850567f17ceef125132223e4fec0b1\"\n },\n {\n \"url\": \"assets/project.html-9b08d186.js\",\n \"revision\": \"8b7bd376d882e29ce9bd60798ba8b388\"\n },\n {\n \"url\": \"assets/project.html-bd19dacf.js\",\n \"revision\": \"65dea2e16a2399d6c2dca5d3a885c47a\"\n },\n {\n \"url\": \"assets/quick-start.html-0a9c32af.js\",\n \"revision\": \"3efc1cf73040a8c41df24bc0bc27adc6\"\n },\n {\n \"url\": \"assets/quick-start.html-2537d0db.js\",\n \"revision\": \"b2b88186236060a041229b20141fe0f1\"\n },\n {\n \"url\": \"assets/quick-start.html-dab9eba3.js\",\n \"revision\": \"d57e2e2fbfbbe1bc1b00db57d852ac70\"\n },\n {\n \"url\": \"assets/quick-start.html-e4021577.js\",\n \"revision\": \"aba98e82274ccacb99a784f8d2c39de1\"\n },\n {\n \"url\": \"assets/real-time-notes.html-42fa37e7.js\",\n \"revision\": \"8b78216f937b1bcab42706be284aef40\"\n },\n {\n \"url\": \"assets/real-time-notes.html-5f5b5c06.js\",\n \"revision\": \"770b6ac912d6157a74ea88094c533ccc\"\n },\n {\n \"url\": \"assets/real-time-notes.html-6da9b42a.js\",\n \"revision\": \"e65f142d514ee140637c5b27fef42581\"\n },\n {\n \"url\": \"assets/real-time-notes.html-c14ac987.js\",\n \"revision\": \"9edc198bbe350acf7d8dfaf1c1247c4d\"\n },\n {\n \"url\": \"assets/setup.html-0a76845b.js\",\n \"revision\": \"14df88d0fe7502cbf7f28e78ee522d77\"\n },\n {\n \"url\": \"assets/setup.html-0d692030.js\",\n \"revision\": \"31d6ea17ad4b367c8f64d7ffc93b9d6a\"\n },\n {\n \"url\": \"assets/setup.html-829b4bbd.js\",\n \"revision\": \"29faf34d3d34b295983b32617e7e13d7\"\n },\n {\n \"url\": \"assets/setup.html-af40dc11.js\",\n \"revision\": \"6f53b9f1930e2cac3d641fc5ec228489\"\n },\n {\n \"url\": \"assets/side-load.html-0a898ed6.js\",\n \"revision\": \"0415aa8e51f3730757e450a47b30d441\"\n },\n {\n \"url\": \"assets/side-load.html-93a3f61b.js\",\n \"revision\": \"d3123e3e80faa5a4ba2f51acb5b018b3\"\n },\n {\n \"url\": \"assets/side-load.html-e2489460.js\",\n \"revision\": \"1fe724b4fa2d6b41ed05716843d91b2b\"\n },\n {\n \"url\": \"assets/side-load.html-ff763136.js\",\n \"revision\": \"1fe724b4fa2d6b41ed05716843d91b2b\"\n },\n {\n \"url\": \"assets/star-request.html-7f0089f1.js\",\n \"revision\": \"27dfdc170327f7658b49d86d88cff1c4\"\n },\n {\n \"url\": \"assets/star-request.html-87e9c10d.js\",\n \"revision\": \"3b1410fd1446a08a458f0b208f2ac753\"\n },\n {\n \"url\": \"assets/star-request.html-9881dff3.js\",\n \"revision\": \"567bce1570d7bbcffd30ee9ec5be6594\"\n },\n {\n \"url\": \"assets/star-request.html-eb357667.js\",\n \"revision\": \"79801dfbfe99d5202323c4f6f246c0a1\"\n },\n {\n \"url\": \"assets/style-a6da9cda.css\",\n \"revision\": \"707a73c999e23d0d084e6d4f04805655\"\n },\n {\n \"url\": \"assets/style-e9220a04.js\",\n \"revision\": \"b40fc755bce11d2ee5ec6b814c802a65\"\n },\n {\n \"url\": \"assets/symposium1.html-4ca69a8e.js\",\n \"revision\": \"9e38d23bebd819ee8112e2306c0f6999\"\n },\n {\n \"url\": \"assets/symposium1.html-f64f4f79.js\",\n \"revision\": \"5dd400f79173ca43fe3fef15ed426f31\"\n },\n {\n \"url\": \"assets/symposium2.html-159d4eab.js\",\n \"revision\": \"71569e233c59f42cd36f7226ed77040b\"\n },\n {\n \"url\": \"assets/symposium2.html-b9b55802.js\",\n \"revision\": \"4737a434d776df0d0bee1391970bb013\"\n },\n {\n \"url\": \"assets/tos.html-324ae865.js\",\n \"revision\": \"d25286b5818c27ba0a2ec77d3392126b\"\n },\n {\n \"url\": \"assets/tos.html-3a563f3d.js\",\n \"revision\": \"668d37e9508582d680a270647bc68159\"\n },\n {\n \"url\": \"assets/tos.html-e6f84201.js\",\n \"revision\": \"bb96b785eca49ab5f42dfdc42ba7b6c8\"\n },\n {\n \"url\": \"assets/tos.html-e7fb0dd0.js\",\n \"revision\": \"a5509330b39e17b8587d6bf82fbca7a9\"\n },\n {\n \"url\": \"assets/uninstall.html-21af1d57.js\",\n \"revision\": \"23a784091eb2ec672bb1bdb40ae07cf4\"\n },\n {\n \"url\": \"assets/uninstall.html-3103004e.js\",\n \"revision\": \"a4d27d8eb36ac36ae4c92b4f25674223\"\n },\n {\n \"url\": \"assets/uninstall.html-90d5e7a1.js\",\n \"revision\": \"79bdca9323776fd73ad0d21f21437fa9\"\n },\n {\n \"url\": \"assets/uninstall.html-aa4818ea.js\",\n \"revision\": \"8be2876d122dd7e0b58548b2fa59f464\"\n },\n {\n \"url\": \"assets/update-log.html-180bffb9.js\",\n \"revision\": \"4afec87be673ac42ebf2d24b1c3cd5eb\"\n },\n {\n \"url\": \"assets/update-log.html-942a467d.js\",\n \"revision\": \"3ec510c0c4a43a74fe48a4a1d303730c\"\n },\n {\n \"url\": \"assets/update-log.html-999bcfb3.js\",\n \"revision\": \"ce957b62e4ec15a9bc2f9e3dbbb58f45\"\n },\n {\n \"url\": \"assets/update-log.html-e12012a1.js\",\n \"revision\": \"b20632d8ec37f6514811aff789668a1e\"\n },\n {\n \"url\": \"assets/waline-meta-56fbc549.js\",\n \"revision\": \"fe8fce833452b0c8ea188f0342a2ce65\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-12997220.js\",\n \"revision\": \"9fcc3412dd2c6e3c6585e894b6fae4d8\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-5c2ca54e.js\",\n \"revision\": \"49f602a411138efd8ce35cfa6c50886c\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-a2df1cbf.js\",\n \"revision\": \"fc2b878465ec6c7fde5436f9d781ee7f\"\n },\n {\n \"url\": \"assets/weapon-wiki.html-c611d75d.js\",\n \"revision\": \"843bb3265546bd0c4650b0067612de8f\"\n },\n {\n \"url\": \"assets/wish-export.html-30e5101d.js\",\n \"revision\": \"2d0cac968845f5bc436e697f71a0739c\"\n },\n {\n \"url\": \"assets/wish-export.html-60af732a.js\",\n \"revision\": \"8eaab8437002e9c1c0c7aa951ac7fab2\"\n },\n {\n \"url\": \"assets/wish-export.html-b1d5faab.js\",\n \"revision\": \"e94740d52a7512ddfd9df61af8db93dd\"\n },\n {\n \"url\": \"assets/wish-export.html-c0178db9.js\",\n \"revision\": \"707f90e2eb9776489bc058115ac0c14a\"\n },\n {\n \"url\": \"fontlist/demo.css\",\n \"revision\": \"c470b271d96640b2d527d864d838d550\"\n },\n {\n \"url\": \"fontlist/iconfont.css\",\n \"revision\": \"47f9418c83e516e2f92fffa11e06ff9f\"\n },\n {\n \"url\": \"fontlist/iconfont.js\",\n \"revision\": \"787c135beed0ae93c145ae2de3cbfefe\"\n },\n {\n \"url\": \"fontlist/iconfont.ttf\",\n \"revision\": \"6d90ead1de012ad82077c2a898dcc136\"\n },\n {\n \"url\": \"fontlist/iconfont.woff\",\n \"revision\": \"c50542a321198d3a49a56ba9f50923f6\"\n },\n {\n \"url\": \"fontlist/iconfont.woff2\",\n \"revision\": \"a917e0d0985aaabe49b9bd5ad48bd270\"\n },\n {\n \"url\": \"upload-abyss-data.js\",\n \"revision\": \"e3c5df0c4de06f2bd47d19d95f478c8e\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"ab5b1ab5763d555df5b31b625e739cf1\"\n },\n {\n \"url\": \"404.html\",\n \"revision\": \"b7320282f6f05cf979c544f9fc204bbd\"\n },\n {\n \"url\": \"images/202209/Achievements.png\",\n \"revision\": \"067cff70d53656b2e3e878df949823f6\"\n },\n {\n \"url\": \"images/202209/HeroImageLogo.png\",\n \"revision\": \"fb8507e3eaccbd6408874dcf10973d62\"\n },\n {\n \"url\": \"images/202209/IndexIconAchievements.png\",\n \"revision\": \"ea409f5a87b1c7666121ead606e323ef\"\n },\n {\n \"url\": \"images/202209/IndexIconCharacters.png\",\n \"revision\": \"db66594140f8dfc65556cc0ac2ed3e3e\"\n },\n {\n \"url\": \"images/202209/IndexIconMihoyoBBS.png\",\n \"revision\": \"b9c679888c01a50e6b126f9dae0d50d1\"\n },\n {\n \"url\": \"images/202209/IndexIconWeapons.png\",\n \"revision\": \"21a20e656ff91575a50c2a1c0253a581\"\n },\n {\n \"url\": \"images/202209/IndexIconWish.png\",\n \"revision\": \"0b4e790c4cb1eeba7473ad8e1b14ac23\"\n },\n {\n \"url\": \"images/202209/SGLogoUpgrade64.png\",\n \"revision\": \"1b95d8969049e0b31c0d89eeface0b89\"\n },\n {\n \"url\": \"images/202209/wish-export.png\",\n \"revision\": \"ef07fa6499c22d00c78dc182ad3cbab5\"\n },\n {\n \"url\": \"images/202210/1.1.7-Update-Error-Fix.png\",\n \"revision\": \"1f1958198ca4510713648cff6c43fcd5\"\n },\n {\n \"url\": \"images/202210/1.1.7-Update-Error.png\",\n \"revision\": \"3e04317e974e1cec550096b7ea88d708\"\n },\n {\n \"url\": \"images/202210/account-upgrade.png\",\n \"revision\": \"52b1c5695109142c9496bb6e14a9c2d1\"\n },\n {\n \"url\": \"images/202210/HttpRequestException.jpg\",\n \"revision\": \"878a57ab9fe5de6b774d7e91776987ab\"\n },\n {\n \"url\": \"images/202210/hutao-api-submit.png\",\n \"revision\": \"6a201ae85f470f3bb70e868137524830\"\n },\n {\n \"url\": \"images/202210/hutao-api.png\",\n \"revision\": \"5bd260fe9b5c18a41765c1126cfd91ff\"\n },\n {\n \"url\": \"images/202210/hutao-login.png\",\n \"revision\": \"21af43587bacf56bf40cadc884381c49\"\n },\n {\n \"url\": \"images/202211/character-data-display.png\",\n \"revision\": \"0cd41e7a02ee864ff12f0f69c926b79f\"\n },\n {\n \"url\": \"images/202211/character-data-logo.png\",\n \"revision\": \"04cc28833ed4c2108ba215fbc33325bf\"\n },\n {\n \"url\": \"images/202211/character-wiki-logo.png\",\n \"revision\": \"db66594140f8dfc65556cc0ac2ed3e3e\"\n },\n {\n \"url\": \"images/202211/character-wiki.png\",\n \"revision\": \"002ee49f019709942ae1b3dc541d05e4\"\n },\n {\n \"url\": \"images/202211/game-launcher-logo.png\",\n \"revision\": \"a5a5d6d5a09926689f8a61db4b24c2df\"\n },\n {\n \"url\": \"images/202211/hutao-api-logo.png\",\n \"revision\": \"feb8ae3e6c4099e0b7804e3d7ebda7c2\"\n },\n {\n \"url\": \"images/202211/wish-export.png\",\n \"revision\": \"c695c558c514d9aa0d3903d5c41f63b9\"\n },\n {\n \"url\": \"images/202301/achievement.png\",\n \"revision\": \"42fd361ea1336daf7cd33bf187e62fa2\"\n },\n {\n \"url\": \"images/202301/dev-plan-logo.png\",\n \"revision\": \"5d69e71ecd6e1b553395e2306fff5f34\"\n },\n {\n \"url\": \"images/202301/live-stat-tracking-logo.png\",\n \"revision\": \"23a418c1d29dbbf0142085f2e8ad464d\"\n },\n {\n \"url\": \"images/202301/spiral-abyss-record-logo.png\",\n \"revision\": \"6d213b91803137c600bb27b973a7ee25\"\n },\n {\n \"url\": \"images/202301/weapon-wiki-logo.png\",\n \"revision\": \"21a20e656ff91575a50c2a1c0253a581\"\n },\n {\n \"url\": \"images/202308/Calculator_Icon.png\",\n \"revision\": \"7fb5a148e1ae7f98c4848f3601a158fb\"\n },\n {\n \"url\": \"images/202308/Character_WIKI_Icon.png\",\n \"revision\": \"efb6186847a600de2a4a429052d1c77b\"\n },\n {\n \"url\": \"images/202308/Game_Launcher_Icon.png\",\n \"revision\": \"3d1f2ce60f927919a4120b9e2206dca1\"\n },\n {\n \"url\": \"images/202308/head-back.png\",\n \"revision\": \"627872a2d3a6e0a9175362a2bce9df75\"\n },\n {\n \"url\": \"images/202308/highlights-head.png\",\n \"revision\": \"95af9689fe9b2659f4e1e8c6ad365d87\"\n },\n {\n \"url\": \"images/202308/hoyolab-miyoushe-Icon.png\",\n \"revision\": \"e06a266f679fb74b6259579846410d8c\"\n },\n {\n \"url\": \"images/202308/My_Character_Icon.png\",\n \"revision\": \"394b9ce7a3f8d92109dac083c1e916c8\"\n },\n {\n \"url\": \"images/202308/UI_BtnIcon_Gacha.png\",\n \"revision\": \"912a76ce2d4579c72ada39c79237279d\"\n },\n {\n \"url\": \"images/202308/UI_ChapterIcon_Hutao.png\",\n \"revision\": \"86791e433554edf6652ee9dfd0d4ef69\"\n },\n {\n \"url\": \"images/202308/Weapon_WIKI_Icon.png\",\n \"revision\": \"3f20fdf346dafbd370054f04ec00b8cf\"\n },\n {\n \"url\": \"images/202309/head-back2.png\",\n \"revision\": \"68cab275f36686f7032e495c58cc47df\"\n },\n {\n \"url\": \"images/202309/security.png\",\n \"revision\": \"1853661345ceb924817aae9ebdd7ec1f\"\n },\n {\n \"url\": \"pwa-icon/chrome-144.png\",\n \"revision\": \"24dd1f208ca63bef5c104659ae25c0e8\"\n },\n {\n \"url\": \"pwa-icon/chrome-192.png\",\n \"revision\": \"984b2a8dfd5dfb1cecfb73bc940bf070\"\n },\n {\n \"url\": \"pwa-icon/chrome-48.png\",\n \"revision\": \"a424e2c1b597db8e320cb3184c78ae23\"\n },\n {\n \"url\": \"pwa-icon/chrome-512.png\",\n \"revision\": \"06ecfca5b4c625d580608e04850f9f29\"\n },\n {\n \"url\": \"pwa-icon/chrome-72.png\",\n \"revision\": \"b9c2449570f275fd5dd34b887aa04697\"\n },\n {\n \"url\": \"pwa-icon/chrome-96.png\",\n \"revision\": \"64e04325061a5fa6de31f4b52bb7498f\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\n\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_core_clientsClaim","workbox_precaching_precacheAndRoute","url","revision","workbox_precaching_cleanupOutdatedCaches"],"mappings":"0nBAqBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAGFC,EAAAA,eAQAC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,4DACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,iEACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,8CACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,4BACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,oBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,aACPC,SAAY,oCAEd,CACED,IAAO,WACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,2CACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,gCACPC,SAAY,oCAEd,CACED,IAAO,kCACPC,SAAY,oCAEd,CACED,IAAO,4CACPC,SAAY,oCAEd,CACED,IAAO,6CACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,oCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,sCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,qCAEb,CAAE,GACLC,EAAAA"} \ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index 9c3596638..c6c29b658 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,3 +1,3 @@ -https://hut.ao/en/2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/en/community.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/en/i18n.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/en/menu.html2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/en/project.html2023-10-18T22:09:45.000Zweeklyhttps://hut.ao/en/quick-start.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/en/side-load.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/star-request.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/zh/2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/zh/community.html2023-10-30T08:25:43.000Zweeklyhttps://hut.ao/zh/i18n.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/zh/menu.html2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/zh/project.html2023-11-15T08:48:53.000Zweeklyhttps://hut.ao/zh/quick-start.html2023-11-26T08:06:07.000Zweeklyhttps://hut.ao/zh/side-load.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/star-request.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/en/advanced/FAQ.html2023-10-23T10:46:54.000Zweeklyhttps://hut.ao/en/advanced/Gacha-system-and-export-principal.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/en/advanced/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/advanced/dependency.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/en/advanced/exceptions.html2023-10-18T20:49:27.000Zweeklyhttps://hut.ao/en/advanced/get-stoken-cookie-from-the-third-party.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/en/advanced/known-issue.html2023-10-22T05:37:19.000Zweeklyhttps://hut.ao/en/advanced/uninstall.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/en/development/2023-10-12T07:23:38.000Zweeklyhttps://hut.ao/en/development/contribute.html2023-10-19T12:19:52.000Zweeklyhttps://hut.ao/en/development/platform.html2023-10-12T07:23:38.000Zweeklyhttps://hut.ao/en/features/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/features/achievements.html2023-09-01T09:36:47.000Zweeklyhttps://hut.ao/en/features/character-data.html2023-09-01T09:36:57.000Zweeklyhttps://hut.ao/en/features/character-wiki.html2023-09-01T09:37:10.000Zweeklyhttps://hut.ao/en/features/dashboard.html2023-09-01T09:37:23.000Zweeklyhttps://hut.ao/en/features/develop-plan.html2023-09-01T09:37:45.000Zweeklyhttps://hut.ao/en/features/game-launcher.html2023-09-16T04:22:59.000Zweeklyhttps://hut.ao/en/features/hutao-API.html2023-09-01T09:38:05.000Zweeklyhttps://hut.ao/en/features/hutao-settings.html2023-09-12T08:42:27.000Zweeklyhttps://hut.ao/en/features/mhy-account-switch.html2023-09-01T10:47:27.000Zweeklyhttps://hut.ao/en/features/monster-wiki.html2023-09-01T09:35:59.000Zweeklyhttps://hut.ao/en/features/real-time-notes.html2023-10-30T09:48:10.000Zweeklyhttps://hut.ao/en/features/setup.html2023-09-01T09:38:52.000Zweeklyhttps://hut.ao/en/features/weapon-wiki.html2023-09-01T09:39:12.000Zweeklyhttps://hut.ao/en/features/wish-export.html2023-09-01T09:39:21.000Zweeklyhttps://hut.ao/en/statements/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/statements/bug-report.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/en/statements/privacy-notice.html2023-10-18T23:32:02.000Zweeklyhttps://hut.ao/en/statements/tos.html2023-10-18T04:32:52.000Zweeklyhttps://hut.ao/en/statements/update-log.html2023-11-27T12:07:20.000Zweeklyhttps://hut.ao/zh/advanced/FAQ.html2023-11-06T14:25:01.000Zweeklyhttps://hut.ao/zh/advanced/Gacha-system-and-export-principal.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/zh/advanced/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/advanced/dependency.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/zh/advanced/exceptions.html2023-11-25T13:50:20.000Zweeklyhttps://hut.ao/zh/advanced/get-stoken-cookie-from-the-third-party.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/zh/advanced/known-issue.html2023-10-22T05:37:19.000Zweeklyhttps://hut.ao/zh/advanced/uninstall.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/zh/development/2023-10-12T07:23:38.000Zweeklyhttps://hut.ao/zh/development/contribute.html2023-10-19T12:19:52.000Zweeklyhttps://hut.ao/zh/development/platform.html2023-10-12T07:23:38.000Zweeklyhttps://hut.ao/zh/development/symposium1.html2023-05-17T11:04:00.000Zweeklyhttps://hut.ao/zh/development/symposium2.html2023-05-17T11:04:00.000Zweeklyhttps://hut.ao/zh/features/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/features/achievements.html2023-09-01T09:36:47.000Zweeklyhttps://hut.ao/zh/features/character-data.html2023-09-01T09:36:57.000Zweeklyhttps://hut.ao/zh/features/character-wiki.html2023-09-01T09:37:10.000Zweeklyhttps://hut.ao/zh/features/dashboard.html2023-09-19T02:47:00.000Zweeklyhttps://hut.ao/zh/features/develop-plan.html2023-09-01T09:37:45.000Zweeklyhttps://hut.ao/zh/features/game-launcher.html2023-09-16T04:22:59.000Zweeklyhttps://hut.ao/zh/features/hutao-API.html2023-09-01T09:38:05.000Zweeklyhttps://hut.ao/zh/features/hutao-settings.html2023-09-12T08:42:27.000Zweeklyhttps://hut.ao/zh/features/mhy-account-switch.html2023-09-01T10:47:27.000Zweeklyhttps://hut.ao/zh/features/monster-wiki.html2023-09-01T09:35:59.000Zweeklyhttps://hut.ao/zh/features/real-time-notes.html2023-10-30T09:48:10.000Zweeklyhttps://hut.ao/zh/features/setup.html2023-09-01T09:38:52.000Zweeklyhttps://hut.ao/zh/features/weapon-wiki.html2023-09-01T09:39:12.000Zweeklyhttps://hut.ao/zh/features/wish-export.html2023-09-01T09:39:21.000Zweeklyhttps://hut.ao/zh/statements/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/statements/bug-report.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/zh/statements/privacy-notice.html2023-10-18T23:32:02.000Zweeklyhttps://hut.ao/zh/statements/tos.html2023-10-18T04:32:52.000Zweeklyhttps://hut.ao/zh/statements/update-log.html2023-11-27T12:07:20.000Zweeklyhttps://hut.ao/weekly \ No newline at end of file +https://hut.ao/en/2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/en/community.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/en/i18n.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/en/menu.html2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/en/project.html2023-10-18T22:09:45.000Zweeklyhttps://hut.ao/en/quick-start.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/en/side-load.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/en/star-request.html2023-04-26T04:06:29.000Zweeklyhttps://hut.ao/zh/2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/zh/community.html2023-11-28T07:03:58.000Zweeklyhttps://hut.ao/zh/i18n.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/zh/menu.html2023-05-22T05:41:54.000Zweeklyhttps://hut.ao/zh/project.html2023-11-15T08:48:53.000Zweeklyhttps://hut.ao/zh/quick-start.html2023-11-26T08:06:07.000Zweeklyhttps://hut.ao/zh/side-load.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/zh/star-request.html2023-04-26T05:03:02.000Zweeklyhttps://hut.ao/en/advanced/FAQ.html2023-10-23T10:46:54.000Zweeklyhttps://hut.ao/en/advanced/Gacha-system-and-export-principal.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/en/advanced/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/advanced/dependency.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/en/advanced/exceptions.html2023-10-18T20:49:27.000Zweeklyhttps://hut.ao/en/advanced/get-stoken-cookie-from-the-third-party.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/en/advanced/known-issue.html2023-10-22T05:37:19.000Zweeklyhttps://hut.ao/en/advanced/uninstall.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/en/development/2023-10-12T07:23:38.000Zweeklyhttps://hut.ao/en/development/contribute.html2023-10-19T12:19:52.000Zweeklyhttps://hut.ao/en/development/platform.html2023-10-12T07:23:38.000Zweeklyhttps://hut.ao/en/features/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/features/achievements.html2023-09-01T09:36:47.000Zweeklyhttps://hut.ao/en/features/character-data.html2023-09-01T09:36:57.000Zweeklyhttps://hut.ao/en/features/character-wiki.html2023-09-01T09:37:10.000Zweeklyhttps://hut.ao/en/features/dashboard.html2023-09-01T09:37:23.000Zweeklyhttps://hut.ao/en/features/develop-plan.html2023-09-01T09:37:45.000Zweeklyhttps://hut.ao/en/features/game-launcher.html2023-09-16T04:22:59.000Zweeklyhttps://hut.ao/en/features/hutao-API.html2023-09-01T09:38:05.000Zweeklyhttps://hut.ao/en/features/hutao-settings.html2023-09-12T08:42:27.000Zweeklyhttps://hut.ao/en/features/mhy-account-switch.html2023-09-01T10:47:27.000Zweeklyhttps://hut.ao/en/features/monster-wiki.html2023-09-01T09:35:59.000Zweeklyhttps://hut.ao/en/features/real-time-notes.html2023-10-30T09:48:10.000Zweeklyhttps://hut.ao/en/features/setup.html2023-09-01T09:38:52.000Zweeklyhttps://hut.ao/en/features/weapon-wiki.html2023-09-01T09:39:12.000Zweeklyhttps://hut.ao/en/features/wish-export.html2023-09-01T09:39:21.000Zweeklyhttps://hut.ao/en/statements/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/en/statements/bug-report.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/en/statements/privacy-notice.html2023-10-18T23:32:02.000Zweeklyhttps://hut.ao/en/statements/tos.html2023-10-18T04:32:52.000Zweeklyhttps://hut.ao/en/statements/update-log.html2023-11-27T12:07:20.000Zweeklyhttps://hut.ao/zh/advanced/FAQ.html2023-11-06T14:25:01.000Zweeklyhttps://hut.ao/zh/advanced/Gacha-system-and-export-principal.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/zh/advanced/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/advanced/dependency.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/zh/advanced/exceptions.html2023-11-25T13:50:20.000Zweeklyhttps://hut.ao/zh/advanced/get-stoken-cookie-from-the-third-party.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/zh/advanced/known-issue.html2023-10-22T05:37:19.000Zweeklyhttps://hut.ao/zh/advanced/uninstall.html2023-10-12T16:19:24.000Zweeklyhttps://hut.ao/zh/development/2023-10-12T07:23:38.000Zweeklyhttps://hut.ao/zh/development/contribute.html2023-10-19T12:19:52.000Zweeklyhttps://hut.ao/zh/development/platform.html2023-10-12T07:23:38.000Zweeklyhttps://hut.ao/zh/development/symposium1.html2023-05-17T11:04:00.000Zweeklyhttps://hut.ao/zh/development/symposium2.html2023-05-17T11:04:00.000Zweeklyhttps://hut.ao/zh/features/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/features/achievements.html2023-09-01T09:36:47.000Zweeklyhttps://hut.ao/zh/features/character-data.html2023-09-01T09:36:57.000Zweeklyhttps://hut.ao/zh/features/character-wiki.html2023-09-01T09:37:10.000Zweeklyhttps://hut.ao/zh/features/dashboard.html2023-09-19T02:47:00.000Zweeklyhttps://hut.ao/zh/features/develop-plan.html2023-09-01T09:37:45.000Zweeklyhttps://hut.ao/zh/features/game-launcher.html2023-09-16T04:22:59.000Zweeklyhttps://hut.ao/zh/features/hutao-API.html2023-09-01T09:38:05.000Zweeklyhttps://hut.ao/zh/features/hutao-settings.html2023-09-12T08:42:27.000Zweeklyhttps://hut.ao/zh/features/mhy-account-switch.html2023-09-01T10:47:27.000Zweeklyhttps://hut.ao/zh/features/monster-wiki.html2023-09-01T09:35:59.000Zweeklyhttps://hut.ao/zh/features/real-time-notes.html2023-10-30T09:48:10.000Zweeklyhttps://hut.ao/zh/features/setup.html2023-09-01T09:38:52.000Zweeklyhttps://hut.ao/zh/features/weapon-wiki.html2023-09-01T09:39:12.000Zweeklyhttps://hut.ao/zh/features/wish-export.html2023-09-01T09:39:21.000Zweeklyhttps://hut.ao/zh/statements/2023-05-24T07:08:29.000Zweeklyhttps://hut.ao/zh/statements/bug-report.html2023-10-09T11:35:30.000Zweeklyhttps://hut.ao/zh/statements/privacy-notice.html2023-10-18T23:32:02.000Zweeklyhttps://hut.ao/zh/statements/tos.html2023-10-18T04:32:52.000Zweeklyhttps://hut.ao/zh/statements/update-log.html2023-11-27T12:07:20.000Zweeklyhttps://hut.ao/weekly \ No newline at end of file diff --git a/zh/advanced/FAQ.html b/zh/advanced/FAQ.html index f2737076a..e538919aa 100644 --- a/zh/advanced/FAQ.html +++ b/zh/advanced/FAQ.html @@ -31,7 +31,7 @@ } - +
        跳至主要內容

        常见问题

        DGP-StudioFAQ大约 8 分钟

        常见问题

        如何创建胡桃的桌面快捷方式(非管理员模式)

        • Win+R 呼出运行窗口,在窗口中输入shell:AppsFolderRun
        • Windows 会弹出应用程序目录,找到胡桃工具箱
        • 右键,点击创建快捷方式
        • 根据提示操作你就可以获得一个桌面快捷方式了

        如何添加一个默认以管理员方式运行的快捷方式

        自 Snap Hutao 1.7.4 版本起,你可以在程序设置页面中点击创建快捷方式来在桌面上添加一个具有管理员权限的快捷方式

        你可以移动这个快捷方式到你想要的地方

        如何让胡桃工具箱开机自动启动

        • 请参考如下思路
          • 可以自行创建一个批处理文件,内容参考此 issueopen in new window中,令胡桃以管理员模式直接运行的命令。
          • 设置一个计划任务程序令上述批处理文件开机自启,或将上述批处理文件加入启动项
        • 或有其他令胡桃工具箱可开机自启的思路,可自行探索

        如何通过胡桃工具箱快速地启动游戏

        • 在主程序中正确设置高级启动器功能

        • 将胡桃工具箱在系统中固定在快速启动栏中

        • 在快速启动栏中右键胡桃应用程序

          quick-start

        • 选择启动游戏即可

        如何通过网络代理使用胡桃工具箱

        参考 HttpRequestException 错误 文档

        为什么程序会出现乱码现象

        • 当用户在 Windows 10 下使用胡桃且发现有乱码情况时:
          • 可以下载 Segoe Fluent Icons字体
          • 安装时选择为系统所有用户安装,即可解决问题
        • 您可以从 微软官方open in new window下载到该字体文件

        为什么会弹出需要使用新应用以打开的对话框

        uninstall-error

        如在卸载胡桃工具箱后出现如上图所示的需要使用新应用以打开此 hutao 链接,说明没有按文档要求在卸载前清除实时便笺定时任务。 请根据文档在设置中清除定时任务后再卸载胡桃工具箱。

        为什么米游社帐号登录状态经常失效,添加的帐号消失

        • 我们通过储存帐号的米游社 Cookie 来维持登录状态。
        • 但是当用户在浏览器或其它设备上注销帐号后, 维持登录状态的 Cookie 将失效
        • 这会导致胡桃工具箱上的米游社帐号在启动后被自动移除。
        • 此情况也可能因为网络连接问题导致无法检查 Cookie 有效性,故出现此情况后请优先重启胡桃工具箱。
        • 自 2022 年 10 月起,米游社极大地提高了账号被判定为有风险的概率,账号有风险时亦会令 Cookie 无法被识别为有效状态
        • 自 1.4.15 版本起,你可以通过在帐号面板中刷新 Cookie 来刷新登录状态

        为什么游戏登录状态会失效,导致切换帐号功能无效

        • 保存游戏登录状态的要素有两个:网络环境和设备 ID
        • 导致该问题的常见原因是:
          • 网络环境频繁变换,如公网 IP 更换
          • 网络设备变换,比如网卡更新、MAC 地址更换
          • 操作失误,导致实际上根本没有保存登录状态(空的登录状态无法避免被胡桃识别)
            • 确认你的帐号已登录后,进入游戏
            • 关闭游戏后,确定游戏进程已关闭
            • 再次进行帐号检测,来添加登录状态

        为什么程序会提示注册计划任务失败

        使用管理员模式使用一次实时便笺后,胡桃的任务计划会被以管理员权限创建。当再次以非管理员模式启动胡桃时,程序在修改计划任务时会缺少权限。 继续使用管理员模式即可解决该问题。

        使用 MSIX 安装包安装时进度卡在正在安装所需框架

        • 当用户系统缺少必要依赖环境时,系统会自动安装所需依赖。若用户禁用了 Windows Update 组件或网络条件差时,系统无法完成该步骤。

        无法使用管理员模式启动胡桃工具箱

        该问题仅存在于 Windows 10 低于 22H2 的版本中

        • 当用户系统版本低于 Windows Build 19045(即 Windows 10 22H2 版本)时,可能无法通过管理员模式启动胡桃工具箱
          • 该问题属于 Windows 内核级别问题,难以判断具体来源,故建议用户升级至 Windows 10 最新版本

        转换服务器失败后如何恢复游戏程序

        功能原理说明

        胡桃客户端始终只从原神官方服务器下载转换服务器需要的文件,这保证了用户不会下载到被第三方篡改的危险程序。 如果你在转换到某一种目标服务器时频繁因网络问题而转换失败,则意味你的网络到目标的原神官方服务器连接质量差。 你应检查你的互联网连接、联系你的运营商或向专业人士咨询以保证你的正常使用体验。

        在转换原神服务器时,如果胡桃客户端意外退出或由于用户侧网络问题会导致转换流程中断并进而导致原神客户端损坏。 此时胡桃工具箱会提示 游戏路径不正确,前往设置更改游戏路径,而游戏路径下此时可能不存在任何游戏主程序文件,导致用户无法正确设置。

        在这种情况下,用户可以执行下面的步骤手动将胡桃客户端备份的游戏主程序恢复至原本的游戏目录中直接使用官方启动器修复游戏

        在开始手动恢复游戏程序之前,你需要知道以下基本知识:

        1. 关于游戏客户端
          1. 国服原神客户端目录下有名为 YuanShen.exe 的游戏主程序和名为 YuanShen_Data 的游戏程序目录
          2. 国际服原神客户端目录下有名为 GenshinImpact.exe 的游戏主程序和名为 GenshinImpact_Data 的游戏程序目录
        2. 关于胡桃客户端转换服务器功能下的备份步骤
          1. 在转换服务器前,胡桃客户端会备份当前游戏客户端的主程序以及国服/国际服客户端专有的一些组件程序,即 exe 主程序和 _Data 目录
          2. 备份文件储存于当前 Windows 用户下的文档库中的 Hutao/ServerCache 目录下,即 %userprofile%/Documents/Hutao/ServerCache

        手动恢复游戏主程序步骤(此处以国际服转国服为例):

        1. 进入胡桃用于备份游戏主程序的 ServerCache 目录,此时该目录下存放着转换前的游戏程序备份文件,即 GenshinImpact.exeGenshinImpact_Data
        2. 进入游戏主程序目录,此时既没有 YuanShen.exe 也没有 GenshinImpact.exe,并且有一个国服目录 YuanShen_Data
        3. 手动将游戏主程序目录下的 YuanShen_Data 文件夹更名为 GenshinImpact_Data
        4. 手动将 Hutao/ServerCache 下的 GenshinImpact.exeGenshinImpact_Data 复制回游戏主程序目录中并覆盖当前已有文件
        5. 此时你的游戏客户端应已恢复正常
        6. 重新进入胡桃客户端的 游戏启动器 界面,游戏路径不正确 错误应不再出现,且服务器设置一栏为空。此时,你可以选择原本的服务器版本(国际服) 并立刻启动游戏,或选择新的服务器目标(国服)并转换客户端版本。

        如何恢复 config.ini 配置文件

        在某些特定条件下(如游戏目录权限错误),config.ini 文件会在转服后丢失。这会造成无法进入胡桃工具箱高级启动器界面和游戏无法正常启动。

        在判断你当前的游戏版本后,你可以在游戏目录 %your_launcher_folder%/Genshin Impact Game/ 下手动创建并填入对应的配置文件,下面是常见的配置文件内容。

        [General]
        @@ -47,6 +47,6 @@ game_version=4.1.0
         sub_channel=0
         plugin_7_version=1.0.0
         

        如何完整地备份/恢复客户端数据

        数据安全提示

        Userdata.db 包含你的全部客户端数据,包括安全敏感的米哈游论坛 Cookie,请妥善储存该文件,不要将其分享给任何人。

        从在胡桃数据目录(默认路径为 %userprofile%/Documents/Hutao)中以复制的方式将 Userdata.db 拷贝至你的备份目录即可,该文件包含了全部的 胡桃客户端数据。

        - + diff --git a/zh/advanced/Gacha-system-and-export-principal.html b/zh/advanced/Gacha-system-and-export-principal.html index cfb5d5cfd..6cbbdc1dc 100644 --- a/zh/advanced/Gacha-system-and-export-principal.html +++ b/zh/advanced/Gacha-system-and-export-principal.html @@ -31,10 +31,10 @@ } - +
        跳至主要內容

        祈愿系统与导出原理

        DGP-StudioFAQ大约 2 分钟

        祈愿系统与导出原理

        Gacha System and Principal

        胡桃的祈愿系统相较 Snap Genshin 进行了整体架构上的重新设计。

        本文将解释原神的祈愿记录机制和胡桃工具箱中祈愿导出功能的技术原理。

        祈愿的获取

        获取祈愿记录需要请求米哈游的 API

        关于此 API, 有下列几个注意点

        • 通过米哈游服务器的 API,只能查询到过去 6 个月内的祈愿记录
          • 这也是原神客户端中祈愿记录的来源
        • API 存在请求速率限制,过快的请求会导致后续的请求失败,无法正常获取数据

        为了请求此 API,我们需要四个关键参数

        • 目前有下列几种方法可以获取这些参数
          • 遍历 Unity 的日志文件,查找用户打开的祈愿记录 URL
          • 代理本机流量,筛选祈愿记录 URL
          • 查找 CefBrowser 的浏览器缓存,找到祈愿记录 URL
          • 对于包含了 Stoken 的 Cookie,调用 genAuthKey API,获取参数
          • 高级用户手动输入相关 URL

        在请求 API 后可以获取到零散的祈愿记录,在对其进行拼接后即可获得一份完整的祈愿记录列表

        祈愿的存储

        获得完整的祈愿记录列表后即可将其简单的序列化入本地数据库内,在需要时可从数据库中反序列化出来呈现给用户。

        后续的对服务器的请求只需要对比数据库中的数据请求新增的部分即可。

        这样,用户即可长期地保存帐号的完整祈愿记录

        UIGF 格式

        统一可交换祈愿记录标准

        Uniformed Interchangeable GachaLog Format standard

        UIGF 是由我们联合其他祈愿记录应用倡导、推出并持久维护的一个统一的祈愿记录数据交换标准

        标准化的数据格式将允许用户将祈愿记录在不同的转移数据,以使用到不同原神工具中各自的特色功能

        祈愿的导入

        在使用 UIGF 数据格式的前提下,可以导入曾在其他应用中储存的数据

        胡桃在处理导入时,会对比本地储存中存在的最早的索引(ID)并仅导入较老的数据

        (因为始终可以从米哈游的服务器获取较新的数据,这种原始数据有更高的精确度)

        祈愿的导出

        尚未实现,正在设计 已实装

        - + diff --git a/zh/advanced/dependency.html b/zh/advanced/dependency.html index 4b18fdb71..7e312e571 100644 --- a/zh/advanced/dependency.html +++ b/zh/advanced/dependency.html @@ -31,10 +31,10 @@ } - +
        跳至主要內容

        手动安装依赖项

        DGP-StudioFAQ依赖项安装小于 1 分钟

        手动安装依赖项

        Snap Hutao 依赖于 Windows App Runtime 作为环境,当用户系统缺少该环境时,Windows 系统会在安装胡桃前安装该框架。

        若你处在网络较差的环境中,可能会卡在环境安装过程中。在这种情况下,你可以从微软官网下载 Windows App Runtime 安装包并手动安装:

        1. 访问微软官方文档:Windows 应用 SDK 最新的下载项open in new window
        2. 点击下载最新的 x64 稳定安装程序以下载离线安装包
        3. 运行下载的 Windows App Runtime 安装包,完成后再安装 Snap Hutao
        - + diff --git a/zh/advanced/exceptions.html b/zh/advanced/exceptions.html index 884d966d7..d0e380a1f 100644 --- a/zh/advanced/exceptions.html +++ b/zh/advanced/exceptions.html @@ -31,11 +31,11 @@ } - +
        跳至主要內容

        常见的程序异常

        DGP-StudioFAQ大约 4 分钟

        常见的程序异常

        该文档包含由用户端错误造成的问题

        RuntimeEnvironmentException

        • 异常:RuntimeEnvironmentException
          • 提示:未开启长路径功能,无法设置注册表键值
        • 问题来源:没有解除 Windows 目录长度限制
        • 解决方案:下载 EnableLongPaths.zipopen in new window 后解压,运行解压后的 .reg 文件

        Return Code: -10001

        • 该异常实际上来源于米游社的返回信息,包括:
          • Return Code: -10001
          • Return Code: -100
        • 问题来源:
          1. Cookie 过期或网络异常
          2. 系统时间错误
        • 解决方案:
          1. 在帐号面板中,点击刷新 Cookie
          2. 删除帐号后重新添加米游社帐号
          3. 在系统设置中启用自动同步时间并立刻同步时间

        状态:1034 验证失败

        • 当胡桃工具箱返回 1034 状态码并提示验证失败时(通常是实时便笺功能),代表当前的操作被米游社的验证系统所阻挡
        • 解决方式:
          • 进入 实时便笺 功能
          • 点击右上角的 验证当前用户与角色按钮
          • 根据米游社提示进行验证
          • 完成验证后点击完成
          • 此时,风控应当已被解除;若没有,可继续执行上述操作

        提示

        • 若风险提示过于频繁,或始终无法触发验证,代表您的账号风险已过高,请修改密码,使多个设备同时登录的状态被重置

        注意

        • 若您已绑定并使用可提供原神查询的 Bot同时有多个设备使用同一个米哈游通行证,则本条目所示的情况,尤其无感验证将基本无法成功,这是米游社后端的安全性设计,不可避免,无法绕过
        • 若您本地有多个米哈游通行证同时频繁与米游社进行数据交互,则可能会被米游社在一定时间内封禁 IP 地址,这是米游社后端的安全性设计,不可避免,无法绕过

        HttpRequestException 元数据校验文件下载失败

        403 (Forbidden)/ 404 (NOT FOUND)

        解决方案:更新胡桃工具箱至最新版本open in new window

        502 (Bad Gateway)

        相关 Issue: https://github.com/DGP-Studio/Snap.Hutao/issues/100open in new window

        当胡桃工具箱无法从远程服务器获取到必要资源时(通常是配置文件和图片缓存),会在用户界面抛出如下图所示的 HttpRequestException 错误。

        HttpRequestException

        当你遇到该情况,且已经确定本地网络没有互联网连接问题时,请检查是否启用了系统代理程序。如果是,请关闭。胡桃工具箱的远程服务器在全世界范围内都有类似的体验效果, 你无需为了胡桃工具箱的网络连接而使用代理网络。

        如果系统代理是你的网络必须选项,请关闭系统代理而使用 TUN 模式代理;或者也可以通过 Windows 8 AppContainer Loopback Utilityopen in new window 解除 Windows APP Container Loopback 的限制open in new window

        你亦可以执行下面的 PowerShell 脚本以解除本机所有容器化应用的 Loopback 限制

        FOR /F "tokens=11 delims=\" %p IN ('REG QUERY "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p
         

        653366069 请求异常

        • 网络请求错误,请求异常前程序会说明具体哪一个功能的网络请求失败。
          • 如果仅是偶尔出现的问题,你可以考虑忽略该错误
          • 如果持续该错误,请检查本地网络到目标服务器的连接是否正常

        在查找必要的模块时出现问题

        当用户在解锁游戏帧数限制的情况下启动游戏时,可能会遇上以下错误提示并启动游戏失败

        1. 在查找必要的模块时遇到问题:无法读取任何模块,可能是保护驱动已经加载完成
        2. 在查找必要的模块时遇到问题:查找模块超时 该问题仅当原神反作弊模块早于解锁帧率模块启动时出现。在出现该错误后,胡桃会主动关闭游戏进程,用户再次尝试启动游戏即可。

        应用安装失败,错误消息:出现内部错误 0x80073D05

        安装时出现 0x80073D05 错误码的主要原因是先前卸载时没有删除部分本地文件导致的。

        • 需要打开 %appdata%/../Local/Packages
        • 并在文件夹中找到 60568DGPStudio.SnapHutao_ebfp3nyc27j86 文件夹并删除
        - + diff --git a/zh/advanced/get-stoken-cookie-from-the-third-party.html b/zh/advanced/get-stoken-cookie-from-the-third-party.html index a2bf138ac..3fdb27f50 100644 --- a/zh/advanced/get-stoken-cookie-from-the-third-party.html +++ b/zh/advanced/get-stoken-cookie-from-the-third-party.html @@ -31,10 +31,10 @@ } - +
        跳至主要內容

        使用第三方工具获取有 Stoken 的 cookie

        DGP-StudioFAQ第三方工具大约 2 分钟

        使用第三方工具获取有 Stoken 的 cookie

        注意

        • 以下步骤中涉及的软件、开源项目等资源均来源于互联网,与 DGP-Studio 无关
        • 本说明文档仅提供有关的解决思路,仅供学习使用,具体操作与操作后果与本项目无关

        Android

        Android 用户可以使用开源项目 GetToken 来获取包含 Stoken 字段的 cookie

        GetToken 开源项目

        • GetToken 项目的发布会包含两个 apk 文件,两者最终效果相同。根据你的设备情况选择适合你的版本即可
          • app-release.apk 为一个 LSPosed 插件允许用户在官方米游社中使用 GetToken 功能
          • 名称以lspatched结尾的 apk 文件是一个已包含 GetToken 功能的修改版米游社程序
            • 你需要卸载官方版米游社以安装该版本的米游社
        • 启用插件或安装修改版米游社后打开米游社,在底栏点击"我的",然后登录您的通行证
        • 在右上角点击形如 🔑 形状的按钮
        • 点击勾选 Stoken 选项
        • 点击复制登录信息
        • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
        • 胡桃工具箱中的账号登录位置,点击手动输入
        • 将之前获取到的 cookie 输入,此时即可完成登录

        iOS

        iOS 用户可以在 App Store 下载抓包软件 Stream 来获取包含 Stoken 字段的 cookie

        • 从 App Store 下载 Streamopen in new window
        • 对域名 api-takumi.mihoyo.com 进行抓包分析
        • 找到并复制带有 Stoken 的数据
          • 形如stuid=****;stoken=v2****;mid=****;
        • 将复制到的 Stoken 发送到已经安装了胡桃工具箱的电脑
        • 胡桃工具箱中的账号登录位置,点击手动输入
        • 将之前获取到的 cookie 输入,此时即可完成登录
        - + diff --git a/zh/advanced/index.html b/zh/advanced/index.html index cef06e88b..2565d33c7 100644 --- a/zh/advanced/index.html +++ b/zh/advanced/index.html @@ -31,10 +31,10 @@ } - + - + diff --git a/zh/advanced/known-issue.html b/zh/advanced/known-issue.html index f58f6a3d0..9f21103ef 100644 --- a/zh/advanced/known-issue.html +++ b/zh/advanced/known-issue.html @@ -31,10 +31,10 @@ } - +
        跳至主要內容
        - + diff --git a/zh/advanced/uninstall.html b/zh/advanced/uninstall.html index ca169b17e..63a955ddd 100644 --- a/zh/advanced/uninstall.html +++ b/zh/advanced/uninstall.html @@ -31,11 +31,11 @@ } - +
        跳至主要內容

        卸载胡桃工具箱

        DGP-StudioFAQ小于 1 分钟

        卸载胡桃工具箱

        • 清除有关的任务计划
          • 1.4.15 版本前,若不执行该步骤,胡桃用于获取实时便笺数据的计划任务将不会被删除,会出现这个问题
          • 方法 1 仅限早于 1.4.15 的版本
            • 打开胡桃,选择 设置 页签
            • 找到 删除所有计划任务 一栏中,点击右侧的 执行 按钮 需要管理员模式
          • 方法 2
            • 执行下方的脚本
              schtasks /delete /tn SnapHutaoDailyNoteRefreshTask
               
          • 方法 3
            • 打开 Windows 计划任务程序
            • 找到 SnapHutaoDailyNoteRefreshTask 任务并删除
          • 方法 4
            • 升级至1.5.1版本并使用一次实时便笺功能
            • 直接卸载胡桃工具箱
        • 卸载软件
          • 打开开始菜单
          • 找到或搜索到胡桃
          • 右键点击胡桃,并选择卸载
        • 清除数据文件夹(如需完全卸载)
          • 打开并删除该文件夹 %userprofile%/Documents/Hutao
        - + diff --git a/zh/community.html b/zh/community.html index 85fc321d2..0a344f11f 100644 --- a/zh/community.html +++ b/zh/community.html @@ -5,7 +5,7 @@ - 加入用户社区 | 胡桃工具箱 + 加入用户社区 | 胡桃工具箱