diff --git a/src/obsidian-vault/syntax/index.ts b/src/obsidian-vault/syntax/index.ts index ef12503..0fdc1cd 100644 --- a/src/obsidian-vault/syntax/index.ts +++ b/src/obsidian-vault/syntax/index.ts @@ -217,6 +217,8 @@ function shiraz_callout_syntax(page_content: string) { } let type = head_arr[0].substring(2, head_arr[0].length - 1).toLowerCase() let title = head_arr.length == 2 ? head_arr[1] : "" + // 同样的语法md格式空一行解析失败,而tw格式解析成功。 + // 要删掉空行,并使用tw无序列表*作为前缀解决多行解析问题。 var page_content = page_content.replace(quotes_str_full, `<>\n`); } return page_content diff --git a/wiki/tiddlers/$__plugins_Gk0Wk_CPL-Repo.json b/wiki/tiddlers/$__plugins_Gk0Wk_CPL-Repo.json index cf01ba8..21c982c 100644 --- a/wiki/tiddlers/$__plugins_Gk0Wk_CPL-Repo.json +++ b/wiki/tiddlers/$__plugins_Gk0Wk_CPL-Repo.json @@ -1 +1 @@ -{"tiddlers":{"$:/config/TiddlyWiki-CPL/GitHub":{"title":"$:/config/TiddlyWiki-CPL/GitHub","caption":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\"><$list filter=\"[search:title[zh]]\">太微中文社区插件源(~GitHub版)<$list filter=\"[!search:title[zh]]\">TiddlyWiki CPL(~GitHub Host)","tags":["$:/tags/PluginLibrary","$:/tags/PluginLibrary/CPL"],"type":"text/vnd.tiddlywiki","url":"https://tiddly-gittly.github.io/TiddlyWiki-CPL/library/index.html","text":"\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\">\n<$list filter=\"[search:title[zh]]\" variable=\"lang\">\n\n欢迎使用''【太微中文社区插件源】''!\n\n本插件源是由[[太微(TiddlyWiki)中文社区|https://github.com/tiddly-gittly]]维护的、致力于搜集网络上所有与 ~TiddlyWiki5 有关插件的、希望为中国以及全世界的太微用户提供一键安装、更新插件体验的公开插件源。\n\n如果还不了解该如何使用太微和本插件源,欢迎阅读[[中文社区共建的太微(TiddlyWiki)教程|https://tw-cn.netlify.app]]里插件相关的部分。如上提到的插件源和教程皆为开源项目,你可以在 [[GitHub|https://github.com/tiddly-gittly]] 中找到并参与贡献!如果乐意,可以通过QQ群等方式加入我们,详情请见如上提到的中文教程。\n\n要添加这个插件库到你的 Wiki 中,只需鼠标拖动这个链接到你的 Wiki 里即可:<$link to=<>>{{!!caption}}\n\n注意:本插件源版本为 ~GitHub Page 的版本,更新更快,但是可能需要科学上网手段。如果你在国内,而且不清楚什么是“科学上网”,请选用另一个经过 netlify.app 加速的[[版本|$:/config/TiddlyWiki-CPL/Netlify]],虽然更新有一定的延迟,但对国内用户更加友好。\n\n@@color:red;''安装任何插件前,请记得备份你的Wiki,本插件源无法为插件造成的个人损失负责!''@@\n\n\n\n<$list filter=\"[!search:title[zh]]\" variable=\"lang\">\n\nWelcome to the ''[TiddlyWiki Chinese Community Plugin Source]''!\n\nThis plugin source is maintained by the [[TiddlyWiki Chinese Community]] and is dedicated to collecting all TiddlyWiki5 related plugins on the web, hoping to provide a one-click installation and update plugin experience for TiddlyWiki users in China and around the world.\n\nIf you don't know how to use TiddlyWiki and this source, you are welcome to read the plugins related section in the [[TiddlyWiki Tutorials for Chinese Communities|https://tw-cn.netlify.app]]. As mentioned above, both the plugin source and the tutorial are open source projects, you can find them in [[GitHub|https://github.com/tiddly-gittly]] and participate in contributing! If you like, you can join us through QQ groups and other means, see the Chinese tutorials mentioned above for details.\n\nTo add this plugin library to your Wiki, just drag this link with your mouse into your Wiki: <$link to=<>>{{!!caption}}\n\nNote: The source version of this plugin is the ~GitHub Page version, which is faster to update, but may require scientific Internet access. If you are in China and are not sure what GFW is, please use another [[version|$:/config/TiddlyWiki-CPL/Netlify]] that is accelerated by netlify.app, although there is a certain delay in updating, but it is more friendly to domestic users more friendly.\n\n@@color:red;''Please remember to back up your Wiki before installing any plugins, this plugin source cannot be held responsible for personal losses caused by plugins!''@@\n\n\n\n"},"$:/config/TiddlyWiki-CPL/Netlify":{"title":"$:/config/TiddlyWiki-CPL/Netlify","caption":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\"><$list filter=\"[search:title[zh]]\">太微中文社区插件源(大陆加速版)<$list filter=\"[!search:title[zh]]\">TiddlyWiki CPL(Netlify Host)","tags":["$:/tags/PluginLibrary","$:/tags/PluginLibrary/CPL"],"type":"text/vnd.tiddlywiki","url":"https://tw-cpl.netlify.app/library/index.html","text":"\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\">\n<$list filter=\"[search:title[zh]]\" variable=\"lang\">\n\n欢迎使用''【太微中文社区插件源】''!\n\n本插件源是由[[太微(TiddlyWiki)中文社区|https://github.com/tiddly-gittly]]维护的、致力于搜集网络上所有与 ~TiddlyWiki5 有关插件的、希望为中国以及全世界的太微用户提供一键安装、更新插件体验的公开插件源。\n\n如果还不了解该如何使用太微和本插件源,欢迎阅读[[中文社区共建的太微(TiddlyWiki)教程|https://tw-cn.netlify.app]]里插件相关的部分。如上提到的插件源和教程皆为开源项目,你可以在 [[GitHub|https://github.com/tiddly-gittly]] 中找到并参与贡献!如果乐意,可以通过QQ群等方式加入我们,详情请见如上提到的中文教程。\n\n要添加这个插件库到你的 Wiki 中,只需鼠标拖动这个链接到你的 Wiki 里即可:<$link to=<>>{{!!caption}}\n\n注意:本插件源版本为经过 netlify.app 加速的版本,对国内用户更加友好,但是更新有一定的延迟。还提供另一版本,是直接使用 ~GitHub Page 服务器的版本,更新更快,但是可能需要科学上网手段。\n\n@@color:red;''安装任何插件前,请记得备份你的Wiki,本插件源无法为插件造成的个人损失负责!''@@\n\n\n\n<$list filter=\"[!search:title[zh]]\" variable=\"lang\">\n\nWelcome to the ''[TiddlyWiki Chinese Community Plugin Source]''!\n\nThis plugin source is maintained by the [[TiddlyWiki Chinese Community]] and is dedicated to collecting all TiddlyWiki5 related plugins on the web, hoping to provide a one-click installation and update plugin experience for TiddlyWiki users in China and around the world.\n\nIf you don't know how to use TiddlyWiki and this source, you are welcome to read the plugins related section in the [[TiddlyWiki Tutorials for Chinese Communities|https://tw-cn.netlify.app]]. As mentioned above, both the plugin source and the tutorial are open source projects, you can find them in [[GitHub|https://github.com/tiddly-gittly]] and participate in contributing! If you like, you can join us through QQ groups and other means, see the Chinese tutorials mentioned above for details.\n\nTo add this plugin library to your Wiki, just drag this link with your mouse into your Wiki: <$link to=<>>{{!!caption}}\n\nNote: The source version of this plugin is a version accelerated by netlify.app, which is more friendly to China mainland users, but there is a delay in updating. There is also another version that uses the GitHub Page server directly, which is faster to update, but may require technology to overturn the GFW.\n\n@@color:red;''Please remember to back up your Wiki before installing any plugins, this plugin source cannot be held responsible for personal losses caused by plugins!''@@\n\n\n\n"}}} \ No newline at end of file +{"tiddlers":{"$:/config/TiddlyWiki-CPL/GitHub":{"title":"$:/config/TiddlyWiki-CPL/GitHub","caption":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\"><$list filter=\"[search:title[zh]]\">太微中文社区插件源(~GitHub版)<$list filter=\"[!search:title[zh]]\">TiddlyWiki CPL(~GitHub Host)","tags":["$:/tags/PluginLibrary","$:/tags/PluginLibrary/CPL"],"type":"text/vnd.tiddlywiki","url":"https://tiddly-gittly.github.io/TiddlyWiki-CPL/library/index.html","text":"\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\">\n<$list filter=\"[search:title[zh]]\" variable=\"lang\">\n\n欢迎使用''【太微中文社区插件源】''!\n\n本插件源是由[[太微(TiddlyWiki)中文社区|https://github.com/tiddly-gittly]]维护的、致力于搜集网络上所有与 ~TiddlyWiki5 有关插件的、希望为中国以及全世界的太微用户提供一键安装、更新插件体验的公开插件源。\n\n如果还不了解该如何使用太微和本插件源,欢迎阅读[[中文社区共建的太微(TiddlyWiki)教程|https://tw-cn.netlify.app]]里插件相关的部分。如上提到的插件源和教程皆为开源项目,你可以在 [[GitHub|https://github.com/tiddly-gittly]] 中找到并参与贡献!如果乐意,可以通过QQ群等方式加入我们,详情请见如上提到的中文教程。\n\n要添加这个插件库到你的 Wiki 中,只需鼠标拖动这个链接到你的 Wiki 里即可:<$link to=<>>{{!!caption}}\n\n注意:本插件源版本为 ~GitHub Page 的版本,更新更快,但是可能需要科学上网手段。如果你在国内,而且不清楚什么是“科学上网”,请选用另一个经过 netlify.app 加速的[[版本|$:/config/TiddlyWiki-CPL/Netlify]],虽然更新有一定的延迟,但对国内用户更加友好。\n\n@@color:red;''安装任何插件前,请记得备份你的Wiki,本插件源无法为插件造成的个人损失负责!''@@\n\n\n\n<$list filter=\"[!search:title[zh]]\" variable=\"lang\">\n\nWelcome to the ''[TiddlyWiki Chinese Community Plugin Source]''!\n\nThis plugin source is maintained by the [[TiddlyWiki Chinese Community]] and is dedicated to collecting all TiddlyWiki5 related plugins on the web, hoping to provide a one-click installation and update plugin experience for TiddlyWiki users in China and around the world.\n\nIf you don't know how to use TiddlyWiki and this source, you are welcome to read the plugins related section in the [[TiddlyWiki Tutorials for Chinese Communities|https://tw-cn.netlify.app]]. As mentioned above, both the plugin source and the tutorial are open source projects, you can find them in [[GitHub|https://github.com/tiddly-gittly]] and participate in contributing! If you like, you can join us through QQ groups and other means, see the Chinese tutorials mentioned above for details.\n\nTo add this plugin library to your Wiki, just drag this link with your mouse into your Wiki: <$link to=<>>{{!!caption}}\n\nNote: The source version of this plugin is the ~GitHub Page version, which is faster to update, but may require scientific Internet access. If you are in China and are not sure what GFW is, please use another [[version|$:/config/TiddlyWiki-CPL/Netlify]] that is accelerated by netlify.app, although there is a certain delay in updating, but it is more friendly to domestic users more friendly.\n\n@@color:red;''Please remember to back up your Wiki before installing any plugins, this plugin source cannot be held responsible for personal losses caused by plugins!''@@\n\n\n\n"},"$:/config/TiddlyWiki-CPL/Netlify":{"title":"$:/config/TiddlyWiki-CPL/Netlify","caption":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\"><$list filter=\"[search:title[zh]]\">太微中文社区插件源(大陆加速版)<$list filter=\"[!search:title[zh]]\">TiddlyWiki CPL(Netlify Host)","tags":["$:/tags/PluginLibrary","$:/tags/PluginLibrary/CPL"],"type":"text/vnd.tiddlywiki","url":"https://tw-cpl.netlify.app/library/index.html","text":"\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]]\" variable=\"lang\">\n<$list filter=\"[search:title[zh]]\" variable=\"lang\">\n\n欢迎使用''【太微中文社区插件源】''!\n\n本插件源是由[[太微(TiddlyWiki)中文社区|https://github.com/tiddly-gittly]]维护的、致力于搜集网络上所有与 ~TiddlyWiki5 有关插件的、希望为中国以及全世界的太微用户提供一键安装、更新插件体验的公开插件源。\n\n如果还不了解该如何使用太微和本插件源,欢迎阅读[[中文社区共建的太微(TiddlyWiki)教程|https://tw-cn.netlify.app]]里插件相关的部分。如上提到的插件源和教程皆为开源项目,你可以在 [[GitHub|https://github.com/tiddly-gittly]] 中找到并参与贡献!如果乐意,可以通过QQ群等方式加入我们,详情请见如上提到的中文教程。\n\n要添加这个插件库到你的 Wiki 中,只需鼠标拖动这个链接到你的 Wiki 里即可:<$link to=<>>{{!!caption}}\n\n注意:本插件源版本为经过 netlify.app 加速的版本,对国内用户更加友好,但是更新有一定的延迟。还提供另一版本,是直接使用 ~GitHub Page 服务器的版本,更新更快,但是可能需要科学上网手段。\n\n@@color:red;''安装任何插件前,请记得备份你的Wiki,本插件源无法为插件造成的个人损失负责!''@@\n\n\n\n<$list filter=\"[!search:title[zh]]\" variable=\"lang\">\n\nWelcome to the ''[TiddlyWiki Chinese Community Plugin Source]''!\n\nThis plugin source is maintained by the [[TiddlyWiki Chinese Community]] and is dedicated to collecting all TiddlyWiki5 related plugins on the web, hoping to provide a one-click installation and update plugin experience for TiddlyWiki users in China and around the world.\n\nIf you don't know how to use TiddlyWiki and this source, you are welcome to read the plugins related section in the [[TiddlyWiki Tutorials for Chinese Communities|https://tw-cn.netlify.app]]. As mentioned above, both the plugin source and the tutorial are open source projects, you can find them in [[GitHub|https://github.com/tiddly-gittly]] and participate in contributing! If you like, you can join us through QQ groups and other means, see the Chinese tutorials mentioned above for details.\n\nTo add this plugin library to your Wiki, just drag this link with your mouse into your Wiki: <$link to=<>>{{!!caption}}\n\nNote: The source version of this plugin is a version accelerated by netlify.app, which is more friendly to China mainland users, but there is a delay in updating. There is also another version that uses the GitHub Page server directly, which is faster to update, but may require technology to overturn the GFW.\n\n@@color:red;''Please remember to back up your Wiki before installing any plugins, this plugin source cannot be held responsible for personal losses caused by plugins!''@@\n\n\n\n"},"$:/plugins/Gk0Wk/CPL-Repo/about-banner":{"title":"$:/plugins/Gk0Wk/CPL-Repo/about-banner","tags":[],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n
\n
<$text text={{{ [match[yes]then[加入我们, 共建设社区生态!]else[Join us in building a community ecology!]] }}}/>
\n\n
<$text text={{{ [match[yes]then[欢迎任何人在CPL仓库贡献更多插件!]else[Anyone is welcome to contribute more plugins to the CPL repository!]] }}}/>
\n
\n\n"},"$:/plugins/Gk0Wk/CPL-Repo/category-gallery":{"title":"$:/plugins/Gk0Wk/CPL-Repo/category-gallery","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[分类]else[Categories]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"<$macrocall\n\t$name=\"tabs\"\n\tstate=\"$:/temp/CPL-Repo/category-gallery-tab-state\"\n\ttabsList=\"[{$:/temp/CPL-Repo/categories}jsonindexes[]]\"\n\tdefault={{{ [{$:/temp/CPL-Repo/categories}jsonindexes[]first[]] }}}\n\ttemplate=\"$:/plugins/Gk0Wk/CPL-Repo/category-tab-container-template\"\n\tbuttonTemplate=\"$:/plugins/Gk0Wk/CPL-Repo/category-tab-button-template\"\n/>"},"$:/plugins/Gk0Wk/CPL-Repo/category-tab-button-template":{"title":"$:/plugins/Gk0Wk/CPL-Repo/category-tab-button-template","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]] :then[addprefix[$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/]get[text]else[?]] :else[else[Unknown]else[?]] }}} />"},"$:/plugins/Gk0Wk/CPL-Repo/category-tab-container-template":{"title":"$:/plugins/Gk0Wk/CPL-Repo/category-tab-container-template","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-list-item\n\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n\\import $:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list\n\n<]\" field:\"category-gallery\" class1:\"cpl-plugin-info-box\" class2:\"cpl-paged-plugin-list-control\">>\n"},"$:/plugins/Gk0Wk/CPL-Repo/config/current-repo":{"title":"$:/plugins/Gk0Wk/CPL-Repo/config/current-repo","text":"https://tw-cpl.netlify.app/repo"},"$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup-threshold":{"title":"$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup-threshold","text":"1"},"$:/plugins/Gk0Wk/CPL-Repo/config/repos":{"title":"$:/plugins/Gk0Wk/CPL-Repo/config/repos","text":"https://tw-cpl.netlify.app/repo https://tiddly-gittly.github.io/TiddlyWiki-CPL/repo"},"$:/plugins/Gk0Wk/CPL-Repo/config/update-filter":{"title":"$:/plugins/Gk0Wk/CPL-Repo/config/update-filter","text":"[has[plugin-type]] -[prefix[$:/plugins/tiddlywiki/]] -[prefix[$:/themes/tiddlywiki/]] -[prefix[$:/languages/]] -[prefix[$:/temp/]] -[[$:/core]]"},"$:/plugins/Gk0Wk/CPL-Repo/core.js":{"title":"$:/plugins/Gk0Wk/CPL-Repo/core.js","text":"(function () {\n\"use strict\";\n\nexports.name = \"cpl-repo-init\";\nexports.platforms = [\"browser\"];\nexports.after = [\"render\"];\nexports.synchronous = true;\n\n/**\n * CPL通信接口,往返,异步\n * const result = await globalThis.__tiddlywiki_cpl__('类型', { ... });\n */\nvar messagerPromise;\nvar previousEntry;\nvar cpl = function (type, payload) {\n\tvar entry = $tw.wiki.getTiddlerText('$:/plugins/Gk0Wk/CPL-Repo/config/current-repo', 'https://tiddly-gittly.github.io/TiddlyWiki-CPL/repo');\n\tif (previousEntry !== entry && globalThis.__tiddlywiki_cpl__reset__ !== undefined) globalThis.__tiddlywiki_cpl__reset__();\n\tpreviousEntry = entry;\n if (messagerPromise === undefined) messagerPromise = new Promise(function (rrr) {\n var counter = 0;\n var callbackMap = new Map();\n var iframe = $tw.utils.domMaker(\"iframe\", {\n document,\n attributes: { src: entry },\n style: { display: \"none\" },\n });\n function ccc(e) {\n //console.log('<=', e.data);\n if (iframe.contentWindow === null || e.source !== iframe.contentWindow)\n return;\n if (e.data.target !== \"tiddlywiki-cpl\" || e.data.token === undefined)\n return;\n switch (e.data.type) {\n case \"Ready\": {\n if (counter === 0) {\n counter++;\n rrr(function (type, payload) {\n return new Promise(function (resolve, reject) {\n var token = counter++;\n callbackMap.set(token, [resolve, reject]);\n //console.log('=>', { type, token, target: \"tiddlywiki-cpl\", ...payload });\n iframe.contentWindow.postMessage(\n Object.assign({}, payload, {\n type: type,\n token: token,\n target: \"tiddlywiki-cpl\",\n }),\n \"*\"\n );\n });\n });\n }\n break;\n }\n default: {\n var r = callbackMap.get(e.data.token);\n if (r !== undefined) {\n callbackMap.delete(e.data.token);\n r[e.data.success ? 0 : 1](e.data.payload);\n }\n break;\n }\n }\n }\n window.addEventListener(\"message\", ccc);\n document.body.appendChild(iframe);\n globalThis.__tiddlywiki_cpl__reset__ = function () {\n delete globalThis.__tiddlywiki_cpl__reset__;\n messagerPromise = undefined;\n window.removeEventListener(\"message\", ccc);\n iframe.parentNode.removeChild(iframe);\n callbackMap.forEach((r) => {\n r[1]();\n });\n };\n });\n return messagerPromise.then(function (r) { return r(type, payload) });\n};\n\nfunction getAutoUpdateTime() {\n\treturn parseInt($tw.wiki.getTiddlerText('$:/plugins/Gk0Wk/CPL-Repo/config/auto-update-intervals-minutes', '-1')) || -1;\n}\n\n// 自动更新服务、各种消息通信\nexports.startup = function () {\n globalThis.__tiddlywiki_cpl__ = cpl;\n\t// 检测更新\n\tvar lastUpdateTime = -1;\n var updateLock = false;\n\tfunction update(notify) {\n try {\n if (updateLock) return;\n updateLock = true;\n lastUpdateTime = Date.now();\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/updaing', text: 'yes' });\n // filter 和 网络请求并发一下\n var updateP = cpl('Update');\n // 根据条件筛选插件\n var plugins = $tw.wiki.filterTiddlers($tw.wiki.getTiddlerText('$:/plugins/Gk0Wk/CPL-Repo/config/update-filter'));\n var t = [];\n updateP.then(function (text) {\n // 统计需要更新的插件\n var updatePlugins = JSON.parse(text);\n for (var title of plugins) {\n var lastestVersion = updatePlugins[title]; // [version, coreVersion]\n if (lastestVersion === undefined) continue; // 不存在该插件\n if (lastestVersion[1] && $tw.utils.compareVersions($tw.version, lastestVersion[1].trim()) < 0) continue; // 插件兼容性检查\n var version = $tw.wiki.getTiddler(title).fields.version;\n if (version && lastestVersion[0] && $tw.utils.compareVersions(version.trim(), lastestVersion[0].trim()) >= 0) continue; // 插件是否更新\n t.push(title);\n }\n if (t.length > 0) {\n // 写入临时信息\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/update-plugins', type: 'application/json', text: JSON.stringify(t) });\n if (notify !== false) {\n // 暂时修改通知停留时间为 10s\n var tt = $tw.config.preferences.notificationDuration;\n $tw.config.preferences.notificationDuration = 10_000;\n // 弹出通知框\n $tw.notifier.display(\"$:/plugins/Gk0Wk/CPL-Repo/update-notify-template\", {\n variables: { updateCount: t.length },\n });\n $tw.config.preferences.notificationDuration = tt;\n }\n }\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/updaing');\n updateLock = false;\n }).catch(function (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/updaing', text: String(err) });\n updateLock = false;\n });\n } catch (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/updaing', text: String(err) });\n updateLock = false;\n }\n\t}\n\n\t// 监听自动更新策略的更改,调整更新间隔或者开关自动更新\n\tvar autoUpdateInterval;\n\tvar autoTimeout;\n\t$tw.wiki.addEventListener(\"change\", function (changes) {\n\t\tif($tw.utils.hop(changes, '$:/plugins/Gk0Wk/CPL-Repo/config/auto-update-intervals-minutes')) {\n var time = getAutoUpdateTime();\n\t\t\tif (autoUpdateInterval !== undefined) clearInterval(autoUpdateInterval);\n\t\t\tif (autoTimeout !== undefined) clearTimeout(autoTimeout);\n\t\t\tautoUpdateInterval = undefined;\n\t\t\tautoTimeout = undefined;\n\t\t\tif (time > 0) {\n\t\t\t\tautoTimeout = setTimeout(function () {\n\t\t\t\t\tupdate();\n\t\t\t\t\tautoUpdateInterval = setInterval(function () {\n\t\t\t\t\t\tupdate();\n\t\t\t\t\t}, time * 60_000);\n\t\t\t\t}, lastUpdateTime === -1 ? 0 : time * 60_000 + lastUpdateTime - Date.now());\n\t\t\t}\n\t\t}\n if($tw.titleWidgetNode.refresh(changes, $tw.titleContainer, null)) {\n document.title = $tw.titleContainer.textContent;\n }\n\t});\n\t// 最初启用\n\tautoTimeout = setTimeout(function () {\n var time = getAutoUpdateTime();\n\t\tif (time > 0) {\n update();\n autoUpdateInterval = setInterval(function () {\n update();\n }, time * 60_000);\n }\n\t}, 3_000);\n\n // 消息监听\n $tw.rootWidget.addEventListener(\"cpl-update-check\", function () {\n update();\n });\n var installRequestLock = false;\n $tw.rootWidget.addEventListener(\"cpl-install-plugin-request\", function (event) {\n try {\n if (installRequestLock) return;\n var paramObject = event.paramObject || {};\n var title = paramObject.title;\n var version = paramObject.version || \"latest\";\n if (!title) return;\n installRequestLock = true;\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/instal-plugin-requesting', text: 'yes', 'plugin-title': title });\n $tw.notifier.display('$:/plugins/Gk0Wk/CPL-Repo/install-plugin-query-notify', { variables: {} });\n var existingTitle = new Set(); // 避免环\n var versionsMap = {};\n var versionsMapLatest = {};\n var sizesMap = {};\n // 递归检查依赖\n var title_ = title;\n function recursiveInstallCheck(title) {\n return new Promise(function (resolve, reject) {\n cpl('Query', { plugin: title }).then(function (text) {\n var data = JSON.parse(text);\n existingTitle.add(title);\n if (title === title_ && data.versions.indexOf(version) < 0) version = data.latest;\n versionsMap[title] = data.versions;\n versionsMapLatest[title] = data.latest;\n sizesMap[title] = data['versions-size'] || {};\n var t = new Set();\n var promisese = [];\n var subtree = {};\n\n // for没有局部作用域,var不是迭代局部的\n function fuckUpVar(ti) {\n t.add(ti);\n if (existingTitle.has(ti)) {\n subtree[ti] = {};\n } else {\n promisese.push(recursiveInstallCheck(ti).then(\n function (tt) { subtree[ti] = tt; },\n function (tt) { reject(tt); },\n ));\n }\n }\n if (data['parent-plugin']) {\n fuckUpVar(data['parent-plugin']);\n }\n for (var ti of $tw.utils.parseStringArray(data.dependents || '')) {\n if (t.has(ti)) continue;\n fuckUpVar(ti);\n }\n Promise.all(promisese).then(function () {\n resolve(subtree);\n });\n }).catch(function (err) {\n if (err.startsWith('404')) err = '[404] Cannot find plugin '+ title;\n reject(err);\n });\n });\n }\n\n recursiveInstallCheck(title).then(function (tree) {\n var f = {};\n for (var ti of existingTitle) {\n if (ti === title) continue;\n f['cpl-plugin#version#' + ti] = versionsMapLatest[ti];\n f['cpl-plugin#install#' + ti] = $tw.wiki.tiddlerExists(ti) ? \"no\" : \"yes\";\n }\n f['cpl-plugin#version#' + title] = version;\n $tw.wiki.addTiddler({\n title: '$:/temp/CPL-Repo/instal-plugin-request-tree/' + title,\n type: 'application/json',\n text: JSON.stringify({ title: title, versions: versionsMap, sizes: sizesMap, tree: tree }),\n ...f,\n });\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/instal-plugin-requesting');\n $tw.modal.display('$:/plugins/Gk0Wk/CPL-Repo/install-plugin-request-model-template', {\n variables: {\n requestTiddler: '$:/temp/CPL-Repo/instal-plugin-request-tree/' + title,\n },\n event: event,\n });\n }).catch(function (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/instal-plugin-requesting', text: err, 'plugin-title': title });\n }).finally(function () {\n installRequestLock = false;\n });\n } catch (err) {\n console.error(err);\n installRequestLock = false;\n }\n });\n var installLock = false;\n $tw.rootWidget.addEventListener(\"cpl-install-plugin\", function (event) {\n try {\n if (installLock) return;\n var paramObject = event.paramObject || {};\n var response = paramObject.response;\n if (!$tw.wiki.tiddlerExists(response)) return;\n var responseTiddler = $tw.wiki.getTiddler(response).fields;\n $tw.wiki.deleteTiddler(response);\n var data = JSON.parse(responseTiddler.text);\n var rootPlugin = data.title;\n var plugins = [[rootPlugin, responseTiddler['cpl-plugin#version#'+rootPlugin]]];\n for (var plugin in data.versions) {\n if (responseTiddler['cpl-plugin#install#'+plugin] === 'yes' && responseTiddler['cpl-plugin#version#'+plugin]) {\n plugins.push([plugin, responseTiddler['cpl-plugin#version#'+plugin]]);\n }\n }\n var total = plugins.length;\n var count = 0;\n installLock=true;\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/installing-plugin', text: 'yes', 'plugin-title': rootPlugin });\n Promise.all(plugins.map(function (t) {\n return cpl('Install', { plugin: t[0], version: t[1] }).then(function (text) {\n $tw.notifier.display('$:/plugins/Gk0Wk/CPL-Repo/downloading-notify', {\n variables: { plugin: t[0], count: ++count, total: total },\n });\n return new $tw.Tiddler($tw.utils.parseJSONSafe(text));\n });\n })).then(function (tiddlers) {\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/installing-plugin');\n for (var tiddler of tiddlers) {\n $tw.wiki.addTiddler(tiddler);\n }\n $tw.notifier.display('$:/plugins/Gk0Wk/CPL-Repo/downloading-complete-notify', { variables: {} });\n }).catch(function (err) {\n console.error(err);\n $tw.notifier.display('$:/plugins/Gk0Wk/CPL-Repo/downloading-fail-notify', {\n variables: { message: err },\n });\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/installing-plugin', text: err, 'plugin-title': rootPlugin });\n }).finally(function () {\n installLock = false;\n });\n } catch (e) {\n console.error(e);\n installLock = false;\n }\n });\n var tmpIndex;\n var tmpAllPlugins;\n var tmpCategories;\n var getPluginsIndexLock = false;\n $tw.rootWidget.addEventListener(\"cpl-get-plugins-index\", function () {\n try {\n if (getPluginsIndexLock) return;\n getPluginsIndexLock = true;\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/getting-plugins-index', text: 'yes' });\n cpl('Index').then(function (text) {\n var data = JSON.parse(text);\n var pluginMap = {};\n var categories = {};\n var authors = {};\n var allPlugins = [];\n var allTags = new Set();\n for (var p of data) {\n pluginMap[p.title] = p;\n allPlugins.push(p.title);\n if (p.category && p.category !== 'Unknown') {\n if (categories[p.category] === undefined) categories[p.category] = [];\n categories[p.category].push(p.title);\n }\n if (p.author) {\n if (authors[p.author] === undefined) authors[p.author] = [];\n authors[p.author].push(p.title);\n }\n if (!p.title.startsWith('$:/languages') && p.title.split('/').length === 4) {\n var a = p.title.split('/')[2];\n if (a !== p.author) {\n if (authors[a] === undefined) authors[a] = [];\n authors[a].push(p.title);\n }\n }\n if (p.tags) {\n for (var tag of $tw.utils.parseStringArray(p.tags)) {\n allTags.add(tag);\n }\n }\n }\n tmpIndex = data;\n tmpAllPlugins = allPlugins;\n tmpCategories = categories;\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/plugins-index', text: JSON.stringify(pluginMap), type: 'application/json' });\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/categories', text: JSON.stringify(categories), type: 'application/json' });\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/authors', text: JSON.stringify(authors), type: 'application/json' });\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/tags', text: JSON.stringify(Array.from(allTags)), type: 'application/json' });\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/getting-plugins-index');\n }).catch(function (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/getting-plugins-index', text: err });\n }).finally(function () {\n getPluginsIndexLock = false;\n });\n } catch (err) {\n console.error(err);\n getPluginsIndexLock = false;\n }\n });\n var queryPluginLocks = new Set();\n $tw.rootWidget.addEventListener(\"cpl-query-plugin\", function (event) {\n try {\n var paramObject = event.paramObject || {};\n var title = paramObject.title;\n if (queryPluginLocks.has(title)) return;\n if (!title) return;\n queryPluginLocks.add(title);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/querying-plugin/' + title, text: 'yes' });\n cpl('Query', { plugin: title }).then(function (text) {\n var data = JSON.parse(text);\n // 计算作者\n if (!data.author) {\n if (!data.title.startsWith('$:/languages') && data.title.split('/').length === 4) {\n data.author = data.title.split('/')[2];\n }\n }\n // 相似推荐\n var suggestions = [];\n if (tmpIndex && data.category !== 'Language') {\n // 基于标签距离进行推荐\n if (data.tags) {\n var tags = new Set($tw.utils.parseStringArray(data.tags).map(function (t) { return t.toLowerCase(); }));\n for (var plugin of tmpIndex) {\n if (!plugin.tags || plugin.title === title) continue;\n var weight = 0;\n for (var t of $tw.utils.parseStringArray(data.tags)) {\n if (tags.has(t.toLowerCase())) weight++;\n }\n if (weight === 0) continue;\n suggestions.push([plugin.title, weight]);\n }\n }\n // 按照权重排序\n suggestions.sort(function (a, b) { return b[1] - a[1]; });\n suggestions = suggestions.slice(0, 20).map(function (t) { return t[0] });\n // 如果数量不够,用同category\n if (suggestions.length < 20 && data.category !== '' && data.category !== 'Unknown') {\n var tset = new Set(suggestions);\n for (var p of (tmpCategories[data.category] ?? [])) {\n if (tset.has(p) || p === title) continue;\n suggestions.push(p);\n if (suggestions.length >= 20) break;\n }\n }\n }\n data.suggestions = $tw.utils.stringifyList(suggestions);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/plugin-info/' + title, text: JSON.stringify(data), type: 'application/json' });\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/querying-plugin/' + title);\n }).catch(function (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/querying-plugin/' + title, text: err });\n }).finally(function () {\n queryPluginLocks.delete(title);\n });\n } catch (err) {\n console.error(err);\n if (event.paramObject && event.paramObject.title) queryPluginLocks.delete(event.paramObject.title);\n }\n });\n // 插件查询\n var searchPluginsLock = false;\n $tw.rootWidget.addEventListener(\"cpl-search-plugins\", function (event) {\n try {\n if (searchPluginsLock) return;\n if (tmpAllPlugins === undefined) return;\n var paramObject = event.paramObject || {};\n var mode = paramObject.mode ?? '';\n var text = paramObject.text ?? '';\n var saveTo = paramObject.saveTo ?? '';\n if (!saveTo) return;\n searchPluginsLock = true;\n switch (mode) {\n case \"mix\": {\n if (text.length < 3) {\n // 字太少,匹配量爆炸,直接返回所有\n $tw.wiki.addTiddler({\n title: saveTo,\n text: JSON.stringify(tmpAllPlugins),\n type: 'application/json'\n });\n } else {\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/searching-plugin', text: 'yes' });\n var patterns = new Set(text.split(/\\s+/).map(function (t) { return t.toLowerCase(); }));\n patterns = new Set(Array.from(patterns).slice(0, 10)); // 再多性能撑不住了\n var suggestions = [];\n for (var plugin of tmpIndex) {\n var weight = 0;\n // 标题、作者、名称的搜索 10 权重\n for (var f of ['title', 'author', 'name']) {\n if (plugin[f]) {\n var t = plugin[f].toLowerCase();\n for (var pattern of patterns) {\n if (t.indexOf(pattern) >= 0) weight += 10;\n }\n }\n }\n // tag 的搜索 5 权重\n if (plugin.tags) {\n for (var t of $tw.utils.parseStringArray(plugin.tags)) {\n if (patterns.has(t.toLowerCase())) weight += 5;\n }\n }\n // description 搜索 2 权重\n if (plugin.description) {\n var t = plugin.description.toLowerCase();\n for (var pattern of patterns) {\n if (t.indexOf(pattern) >= 0) weight += 2;\n }\n }\n // readme 搜索 1 权重\n if (plugin.description) {\n var t = plugin.description;\n for (var pattern of patterns) {\n if (t.indexOf(pattern) >= 0) weight += 1;\n }\n }\n if (weight === 0) continue;\n suggestions.push([plugin.title, weight]);\n }\n // 按照权重排序\n suggestions.sort(function (a, b) { return b[1] - a[1]; });\n suggestions = suggestions.map(function (t) { return t[0] });\n $tw.wiki.addTiddler({\n title: saveTo,\n text: JSON.stringify(suggestions),\n type: 'application/json'\n });\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/searching-plugin');\n }\n break;\n }\n case \"tags\": {\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/searching-plugin', text: 'yes' });\n var tags = new Set($tw.utils.parseStringArray(text).map(function (t) { return t.toLowerCase(); }));\n var result = [];\n for (var plugin of tmpIndex) {\n if (!plugin.tags) continue;\n var matched = true;\n for (var t of $tw.utils.parseStringArray(plugin.tags)) {\n if (tags.has(t.toLowerCase())) continue;\n matched = false;\n break;\n }\n if (matched) result.push(plugin.title);\n }\n $tw.wiki.addTiddler({\n title: saveTo,\n text: JSON.stringify(result),\n type: 'application/json'\n });\n $tw.wiki.deleteTiddler('$:/temp/CPL-Repo/searching-plugin');\n break;\n }\n default: {\n return;\n }\n }\n searchPluginsLock = false;\n } catch (err) {\n console.error(err);\n $tw.wiki.addTiddler({ title: '$:/temp/CPL-Repo/searching-plugin', text: String(err) });\n searchPluginsLock = false;\n }\n });\n};\n\n/*\n安装插件\n<$action-sendmessage $message=\"cpl-install-plugin\" title=\"xxx\" version=\"latest\"/>\n$:/temp/CPL-Repo/installing-plugin 如果为 yes 说明正在安装,请勿进行其他操作 如果不是yes,如果非空说明是错误信息 plugin-title字段是正在安装的插件\n\n获取所有插件的索引\n<$action-sendmessage $message=\"cpl-get-plugins-index\"/>\n$:/temp/CPL-Repo/plugins-index 所有信息\n$:/temp/CPL-Repo/getting-plugins-index 同上\n\n查询某个插件的信息\n<$action-sendmessage $message=\"cpl-query-plugin\" title=\"xxx\"/>\n$:/temp/CPL-Repo/plugin-info/<插件title> 插件的相关信息\n$:/temp/CPL-Repo/querying-plugin/<插件title> 同上\n*/\n})();\n","module-type":"startup","tags":[],"type":"application/javascript"},"$:/plugins/Gk0Wk/CPL-Repo/downloading-complete-notify":{"title":"$:/plugins/Gk0Wk/CPL-Repo/downloading-complete-notify","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"!! <$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[安装完成]else[Installation completed]] }}} />"},"$:/plugins/Gk0Wk/CPL-Repo/downloading-fail-notify":{"title":"$:/plugins/Gk0Wk/CPL-Repo/downloading-fail-notify","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"!! <$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[安装失败]else[Installation failed]] }}} />\n\n<>"},"$:/plugins/Gk0Wk/CPL-Repo/downloading-notify":{"title":"$:/plugins/Gk0Wk/CPL-Repo/downloading-notify","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$list filter=\"[match[yes]]\" variable=\"t\">\n\n!! 请稍候...\n\n正在下载第 <> 个插件(共 <> 个): <>\n\n\n\n<$list filter=\"[!match[yes]]\" variable=\"t\">\n\n!! Please wait...\n\nDownloading the <> of plugins (total <>): <>\n\n\n\n"},"$:/plugins/Gk0Wk/CPL-Repo/home-gallery":{"title":"$:/plugins/Gk0Wk/CPL-Repo/home-gallery","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[首页]else[Home]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-list-item\n\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n\\import $:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list\n\\define go-search()\n<$action-sendmessage\n $message=\"cpl-search-plugins\"\n mode=\"mix\"\n text={{$:/temp/CPL-Repo/searchplugin-home/input}}\n saveTo=\"$:/temp/CPL-Repo/searchplugin-home/result\"\n/>\n\\end\n\n
\n
\n<$macrocall\n $name=\"keyboard-driven-input\"\n tiddler=\"$:/temp/CPL-Repo/searchplugin-home/input\"\n tag=\"input\"\n class=\"tc-edit-texteditor tc-popup-handle\"\n focus=\"true\"\n filterMinLength=\"2\"\n placeholder={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[搜索插件...]else[Search for plugin...]] }}}\n inputAcceptActions=<>\n class=\"tc-titlebar tc-edit-texteditor\"\n/>\n
\n<$button class=\"tc-primary-btn tc-btn-big-green cpl-plugin-search-go\" disabled={{$:/temp/CPL-Repo/searching-plugin}}>\n <$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]] :then[{$:/temp/CPL-Repo/searching-plugin}match[yes]then[搜索中...]else[搜索]] :else[{$:/temp/CPL-Repo/searching-plugin}match[yes]then[Searching...]else[Search]] }}} />\n <>\n\n
\n<$list filter=\"[[$:/temp/CPL-Repo/searching-plugin]is[tiddler]!field:text[yes]]\">\n
\n\t<$text text={{{ [match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n
\n\n<$list filter=\"[[$:/temp/CPL-Repo/searchplugin-home/result]is[tiddler]then[yes]else[no]]\" variable=\"go\">\n\n<$list filter=\"[match[yes]]\" variable=\"t\">\n<>\n\n\n<$list filter=\"[match[no]]\" variable=\"t\">\n<>\n\n\n"},"$:/plugins/Gk0Wk/CPL-Repo/install-plugin-query-notify":{"title":"$:/plugins/Gk0Wk/CPL-Repo/install-plugin-query-notify","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[获取安装信息中,请稍候]else[Getting installation information, please wait]] }}} />"},"$:/plugins/Gk0Wk/CPL-Repo/install-plugin-request-model-template":{"title":"$:/plugins/Gk0Wk/CPL-Repo/install-plugin-request-model-template","code-body":"yes","subtitle":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[请确认安装]else[Please Confirm to Install]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n\n\\define dependents-tree(json,checked-title,versions,sizes)\n<$list filter=\"[<__json__>jsonindexes[]]\" variable=\"plugin\">\n
\n <$let install-field={{{ [[cpl-plugin#install#]addsuffix] }}} version-field={{{ [[cpl-plugin#version#]addsuffix] }}}>\n
\n \n ''<$text text=<>/>'' \n <$let v={{{ [<__checked-title__>get] }}}>\n <$macrocall $name=\"plugin-size\" size={{{ [<__sizes__>jsonget,else[0]] }}} />\n \n \n \n <$checkbox tiddler=<<__checked-title__>> field=<> checked=\"yes\" unchecked=\"no\" default=\"no\">\n <$text text={{{ [<__checked-title__>getmatch[yes]] :then[match[yes]then[即将安装:]else[Will be installed:]] :else[match[yes]then[不会安装]else[Will not be installed]] }}} />\n \n <$list filter=\"[<__checked-title__>getmatch[yes]]\" variable=\"t\">\n  \n <$select tiddler=<<__checked-title__>> field=<>>\n <$list filter=\"[<__versions__>jsonget]\" variable=\"version\">\n \n \n \n \n \n
\n <$macrocall $name=\"dependents-tree\" json={{{ [<__json__>jsonextract] }}} checked-title=<<__checked-title__>> versions=<<__versions__>> sizes=<<__sizes__>> />\n \n
\n\n\\end\n\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n<$let json={{{ [get[text]] }}}>\n\n<<<\n<$let title={{{ [jsonget[title]] }}} version-field={{{ [[cpl-plugin#version#]addsuffix] }}}>\n''<$text text={{{ [<chinese>match[yes]then[即将安装:]else[To be installed:]] }}}/>''\n<$text text=<<title>>/>   \n''<$text text={{{ [<chinese>match[yes]then[选择版本:]else[Select version:]] }}}/>''\n<$select tiddler=<<requestTiddler>> field=<<version-field>>>\n<$list filter=\"[<json>jsonget[versions],<title>]\" variable=\"version\">\n<option value=<<version>>><$text text=<<version>>/></option>\n</$list>\n</$select>\n \n<$let v={{{ [<requestTiddler>get<version-field>] }}}>\n<$macrocall $name=\"plugin-size\" size={{{ [<json>jsonget[sizes],<title>,<v>else[0]] }}} />\n</$let>\n</$let>\n<<<\n\n<!-- 依赖树 -->\n<$list filter=\"[<json>jsonextract[tree]jsonindexes[]count[]compare:integer:gt[0]]\" variable=\"t\">\n<$list filter=\"[<chinese>match[yes]]\" variable=\"t\">\n\n这个插件有一些依赖项,在安装插件之前,将会递归地安装这些插件,如果这些插件没有被成功安装,将会回滚所有安装动作。\n\n你可以自行选择安装哪些插件并选择其版本。插件依赖树如下:\n\n</$list>\n<$list filter=\"[<chinese>!match[yes]]\" variable=\"t\">\n\nThis plugin has some dependencies that will be installed recursively before installing the plugin, and if these plugins are not installed successfully, all installation actions will be rolled back.\n\nIt is up to you to choose which plugins to install and select their versions. The plugin dependency tree is as follows:\n\n</$list>\n</$list>\n<div style=\"margin-left:-1em;margin-right:6px;\">\n <$macrocall\n $name=\"dependents-tree\"\n json={{{ [<json>jsonextract[tree]] }}}\n checked-title=<<requestTiddler>>\n versions={{{ [<json>jsonextract[versions]] }}}\n sizes={{{ [<json>jsonextract[sizes]] }}}\n />\n</div>\n<hr/>\n\n<$list filter=\"[<chinese>match[yes]]\" variable=\"t\">\n\n注意:虽然 CPL 对安装失败有一定的回滚措施,但是无法避免因插件自身以及插件间相互作用所产生的潜在风险,包括但不限于\n\n* 浏览器崩溃;\n* Wiki 系统受损或数据丢失;\n* 插件内含恶意脚本的执行造成隐私泄露或系统损坏;\n\nCPL [[接受恶意插件举报|https://github.com/tiddly-gittly/TiddlyWiki-CPL/issues]]并将下架这类插件,但 CPL 不能保证其中收录的所有插件均安全可用。如您在安装后出现任何问题造成损失,CPL 无法负责。\n\n@@background:#e91e3db0;color:white;padding:4px;''因此,在安装任何插件前,请备份您的Wiki!''@@\n\n即便如此,您依然要安装吗?\n\n</$list>\n\n<$list filter=\"[<chinese>!match[yes]]\" variable=\"t\">\n\nNote: Although the CPL has some rollback measures for failed installations, it is not immune to the potential risks arising from the plugins themselves and from interactions between plugins, including but not limited to\n\n* Browser crashes;\n* Damage to the Wiki system or loss of data;\n* Privacy leakage or system damage caused by the execution of malicious scripts contained in the plugin;\n\nCPL [[accepts reports of malicious plugins|https://github.com/tiddly-gittly/TiddlyWiki-CPL/issues]] and will take down such plugins, but CPL cannot guarantee that all plugins included are safe and available. However, CPL cannot guarantee that all plugins are safe and available. CPL cannot be held responsible for any damage caused by any problem that occurs after you have installed the plugin.\n\n@@background:#e91e3db0;color:white;width:100%;padding:4px;''Therefore, please back up your wiki before installing any plugins!''@@\n\nEven so, do you still want to install it?\n\n</$list>\n\n<$button class=\"tc-btn-big-green tc-primary-btn\" message=\"tm-close-tiddler\">\n<$action-sendmessage $message=\"cpl-install-plugin\" response=<<requestTiddler>> />\n{{$:/core/images/done-button}}\n \n<$text text={{{ [<chinese>match[yes]then[确认安装]else[Confirm to Install]] }}} />\n</$button>\n\n</$let>\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list":{"title":"$:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"\\define paged-plugin-list-control(class2:\"\")\n\\whitespace trim\n<$list filter=\"[<pageMin>!match<pageMax>]\">\n<div class=\"$class2$\">\n <div>\n <$list filter=\"[<page>!match<lastPage>]\">\n <$button setTitle=<<pageState>> setTo=<<lastPage>>>{{$:/core/images/left-arrow}}</$button>\n </$list>\n </div>\n <span><$text text={{{ [<page>add[1]] }}}/> / <$text text={{{ [<pageMax>add[1]] }}}/></span>\n <div>\n <$list filter=\"[<page>!match<nextPage>]\">\n <$button setTitle=<<pageState>> setTo=<<nextPage>>>{{$:/core/images/right-arrow}}</$button>\n </$list>\n </div>\n</div>\n</$list>\n\\end\n\\define paged-plugin-list(filter,field,pageSize:\"10\",indexTitle:\"$:/temp/CPL-Repo/plugins-index\",class1:\"\",class2:\"\")\n\\whitespace trim\n<$let pageSize={{{ [<__pageSize__>min[1]] }}} indexTitle=<<__indexTitle__>> pageState=<<qualify \"$:/temp/CPL-Repo/paged-plugin-list-page\">> pluginCount={{{ $filter$ +[count[]] }}}>\n<$let pageMin=\"0\" pageMax={{{ [<pluginCount>divide<__pageSize__>ceil[]subtract[1]max[0]] }}}>\n<$let page={{{ [<pageState>get[text]else<pageMin>] +[max<pageMin>min<pageMax>] }}}>\n<$let firstIndex={{{ [<page>multiply<__pageSize__>] }}} nextPage={{{ [<page>add[1]min<pageMax>] }}} lastPage={{{ [<page>subtract[1]max<pageMin>] }}}>\n<<paged-plugin-list-control \"$class2$\">>\n<div class=\"$class1$\">\n <$list filter=\"$filter$ +[rest<firstIndex>first<__pageSize__>]\" variable=\"plugin\">\n <$macrocall\n $name=\"plugin-list-item\"\n json={{{ [{$:/temp/CPL-Repo/plugins-index}jsonextract<plugin>] }}}\n field=\"$field$\"\n class=\"cpl-plugin-info-box\"\n />\n </$list>\n</div>\n<<paged-plugin-list-control \"$class2$\">>\n</$let>\n</$let>\n</$let>\n</$let>\n\\end\n"},"$:/plugins/Gk0Wk/CPL-Repo/panel":{"title":"$:/plugins/Gk0Wk/CPL-Repo/panel","caption":"CPL","list-after":"$:/core/ui/ControlPanel/Plugins","tags":["$:/tags/MoreSideBar","$:/tags/ControlPanel"],"type":"text/vnd.tiddlywiki","text":"<!-- 在侧栏不显示 -->\n<$list filter=\"[<listItem>!match[$:/core/ui/SideBarSegments/tabs]]\">\n{{$:/plugins/Gk0Wk/CPL-Repo/about-banner}}\n</$list>\n\n<$macrocall\n\t$name=\"tabs\"\n\tstate=\"$:/temp/CPL-Repo/panel-tab-state\"\n\ttabsList=\"plugin-database uninstall-manager settings +[addprefix[$:/plugins/Gk0Wk/CPL-Repo/]]\"\n\tdefault=\"$:/plugins/Gk0Wk/CPL-Repo/plugin-database\"\n/>\n"},"$:/plugins/Gk0Wk/CPL-Repo/plugin-database":{"title":"$:/plugins/Gk0Wk/CPL-Repo/plugin-database","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[插件数据库]else[Plugin Database]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$button disabled={{{ [{$:/temp/CPL-Repo/getting-plugins-index}match[yes]else[no]] }}} class=\"tc-btn-big-green tc-primary-btn\">\n<$action-sendmessage $message=\"cpl-get-plugins-index\" />\n{{$:/core/images/download-button}}\n \n<$text text={{{ [[$:/temp/CPL-Repo/plugins-index]is[tiddler]] :then[<chinese>match[yes]then[刷新数据库]else[Refresh Database]] :else[<chinese>match[yes]then[加载数据库]else[Load Database]] }}} />\n</$button>\n\n<span style=\"opacity:0.5;\"><$text text={{{ [<chinese>match[yes]then[当前镜像]else[Current mirror]] }}}/>: <$text text={{{ [{$:/plugins/Gk0Wk/CPL-Repo/config/current-repo}!is[blank]else[https://tiddly-gittly.github.io/TiddlyWiki-CPL/library/all]] }}} /></span>\n\n<!-- 错误提示 -->\n<$list filter=\"[[$:/temp/CPL-Repo/getting-plugins-index]is[tiddler]!field:text[yes]]\">\n<div style=\"background:#e91e3db0;color:white;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n\t<$text text={{{ [<chinese>match[yes]then[请尝试刷新]else[Please try refreshing]] }}}/>\n</div>\n</$list>\n\n<!-- 加载中提示 -->\n<$list filter=\"[[$:/temp/CPL-Repo/getting-plugins-index]is[tiddler]field:text[yes]]\">\n<div style=\"background:#0005;color:#aaa;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[加载中...]else[Loading...]] }}}/>\n</div>\n</$list>\n\n<$list filter=\"[[$:/temp/CPL-Repo/plugins-index]is[tiddler]]\" variable=\"ready\">\n<$macrocall\n\t$name=\"tabs\"\n\tstate=\"$:/temp/CPL-Repo/plugin-database-tab-state\"\n\ttabsList=\"home-gallery category-gallery tags-gallery update-manager +[addprefix[$:/plugins/Gk0Wk/CPL-Repo/]]\"\n\tdefault=\"$:/plugins/Gk0Wk/CPL-Repo/home-gallery\"\n/>\n</$list>\n\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/plugin-list-item":{"title":"$:/plugins/Gk0Wk/CPL-Repo/plugin-list-item","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"\\define tag-plain(text:\"\",icon:\"\",color:\"\",bg:\"\")\n\\whitespace trim\n<span class=\"tc-tag-label\" style=\"background-color:$bg$;color:$color$;fill:$color$;user-select:none;margin-right:6px;\">\n\t{{$icon$}}$text$\n</span>\n\\end\n\n<!-- 安装插件的按钮 -->\n\\define install-plugin-button(plugin,libraryVersion,installedVersion)\n\\whitespace trim\n<div>\n <$let libraryVersion=<<__libraryVersion__>> installedVersion=<<__installedVersion__>> plugin=<<__plugin__>>>\n <$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n <$button class={{{ [<installedVersion>!is[blank]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}} disabled={{{ [[$:/temp/CPL-Repo/instal-plugin-requesting]field:text[yes]else[]] [[$:/temp/CPL-Repo/installing-plugin]field:text[yes]else[]] +[unique[]match[yes]limit[1]else[no]] }}}>\n <$action-sendmessage $message=\"cpl-install-plugin-request\" title=<<plugin>> version=<<libraryVersion>>/>\n <$list filter=\"[[$:/temp/CPL-Repo/instal-plugin-requesting]field:plugin-title<plugin>]\">{{$:/core/images/timestamp-on}}</$list>\n <$list filter=\"[[$:/temp/CPL-Repo/instal-plugin-requesting]!field:plugin-title<plugin>]\">\n {{$:/core/images/download-button}}\n \n <!-- 根据版本判断安装/升级/降级/重装 -->\n <$list filter=\"[<installedVersion>is[blank]]\">{{$:/language/ControlPanel/Plugins/Install/Caption}}</$list>\n <$list filter=\"[<installedVersion>!is[blank]]\">\n <$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\">{{$:/language/ControlPanel/Plugins/Update/Caption}}</$list>\n <$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\">{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}</$list>\n <$list filter=\"[<libraryVersion>compare:version:eq<installedVersion>]\">{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}</$list>\n </$list>\n </$list>\n </$button>\n </$set>\n </$let>\n</div>\n\\end\n\n\\define plugin-list-item(json,field,show-suggestion:\"yes\",class:\"\")\n\\whitespace trim\n\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n<div class=\"$class$\">\n<$let json=<<__json__>>>\n<$let\n title={{{ [<json>jsonget[title]] }}}\n tags={{{ [<json>jsonget[tags]] }}}\n icon={{{ [<json>jsonget[icon]trim[]] }}}\n type={{{ [<json>jsonget[type]else[plugin]] }}}\n name={{{ [<json>jsonget[name]] ~[<json>jsonget[title]split[/]last[1]] }}}\n description={{{ [<json>jsonget[description]] }}}\n version={{{ [<json>jsonget[version]] }}}\n category={{{ [<json>jsonget[category]!is[blank]else[Unknown]] }}}\n installedVersion={{{ [<json>jsonget[title]get[version]] }}}\n detailJsonTitle={{{ $:/temp/CPL-Repo/plugin-info [<json>jsonget[title]] +[join[/]] }}}\n detailJsonStateTitle={{{ $:/temp/CPL-Repo/querying-plugin [<json>jsonget[title]] +[join[/]] }}}\n>\n<$let popup-state={{{ $:/temp/CPL-Repo/popup-state [<__field__>] [<title>] +[join[/]] }}}>\n<!-- 插件简介 -->\n<div class=\"tc-plugin-info\">\n <!-- 展开/收起按钮 -->\n <div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n <$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n <$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n <$action-sendmessage $message=\"cpl-query-plugin\" title=<<title>>/>\n {{$:/core/images/chevron-right}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n <$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n {{$:/core/images/chevron-down}}\n </$button>\n </$reveal>\n </div>\n <!-- 插件图标 -->\n <div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n <$list filter=\"[<icon>!is[blank]]\">\n <img src=<<icon>>/>\n </$list>\n <$list filter=\"[<icon>is[blank]]\">\n <$transclude tiddler={{{ [[$:/core/images/plugin-generic-]addsuffix<type>] }}}/>\n </$list>\n </div>\n <!-- 标题,简介,版本,是否安装,标签分类 -->\n <div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n <h1><strong><$text text=<<name>>/></strong>: <$text text=<<description>>/></h1>\n <h2><$text text=<<title>>/></h2>\n <div><em><$text text=<<version>>/></em></div>\n <div style=\"padding-top:4px;\">\n <$macrocall $name=\"tag-plain\" text={{{ [<chinese>match[yes]] :then[<category>addprefix[$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/]get[text]else[未分类]] :else[<category>] }}} icon=\"$:/core/images/folder\" bg=\"#3f51b5\" color=\"#fff\" />\n <$let bg={{{ [{$:/palette}getindex[tag-background]] }}} color={{{ [{$:/palette}getindex[foreground]] }}}>\n <$list filter=\"[enlist<tags>]\" variable=\"tag\">\n <$macrocall $name=\"tag-plain\" text=<<tag>> icon=\"$:/core/images/tag-button\" bg=<<bg>> color=<<color>> />\n </$list>\n </$let>\n </div>\n <$list filter=\"[<installedVersion>!is[blank]]\" variable=\"t\">\n <div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div>\n </$list>\n <$list filter=\"[[$:/temp/CPL-Repo/instal-plugin-requesting]is[tiddler]field:plugin-title<plugin>]\">\n <$list filter=\"[{$:/temp/CPL-Repo/instal-plugin-requesting}match[yes]]\">\n <span style=\"color:#3ed044;font-weight:800;\"><$text text={{{ [<chinese>match[yes]then[安装准备中...]else[Preparing installation...]] }}}/></span>\n </$list>\n <$list filter=\"[{$:/temp/CPL-Repo/instal-plugin-requesting}!match[yes]]\">\n <span style=\"color:#fd160e;font-weight:800;\"><$text text={{{ [<chinese>match[yes]then[出错: ]else[Error: ]addsuffix{$:/temp/CPL-Repo/instal-plugin-requesting}] }}}/></span>\n </$list>\n </$list>\n <$list filter=\"[[$:/temp/CPL-Repo/installing-plugin]is[tiddler]field:plugin-title<plugin>]\">\n <$list filter=\"[{$:/temp/CPL-Repo/installing-plugin}match[yes]]\">\n <span style=\"color:#3ed044;font-weight:800;\"><$text text={{{ [<chinese>match[yes]then[安装中...]else[Installing...]] }}}/></span>\n </$list>\n <$list filter=\"[{$:/temp/CPL-Repo/installing-plugin}!match[yes]]\">\n <span style=\"color:#fd160e;font-weight:800;\"><$text text={{{ [<chinese>match[yes]then[出错: ]else[Error: ]addsuffix{$:/temp/CPL-Repo/installing-plugin}] }}}/></span>\n </$list>\n </$list>\n </div>\n <!-- 安装按钮 -->\n <div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n <$macrocall $name=\"install-plugin-button\" plugin=<<title>> libraryVersion=<<version>> installedVersion=<<installedVersion>> />\n </div>\n</div>\n<!-- 详情 -->\n<$list filter=\"[<popup-state>field:text[yes]]\">\n<div class=\"tc-plugin-info-dropdown\">\n <!-- 错误提示 -->\n <$list filter=\"[<detailJsonStateTitle>is[tiddler]!field:text[yes]]\">\n <div style=\"background:#e91e3db0;color:white;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n <$text text={{{ [<chinese>match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n <$text text={{{ [<chinese>match[yes]then[请尝试刷新]else[Please try refreshing]] }}}/>\n </div>\n </$list>\n <!-- 加载中提示 -->\n <$list filter=\"[<detailJsonStateTitle>is[tiddler]field:text[yes]]\">\n <div style=\"background:#0005;color:#aaa;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n <$text text={{{ [<chinese>match[yes]then[加载中...]else[Loading...]] }}}/>\n </div>\n </$list>\n <!-- 插件详情 -->\n <$list filter=\"[<detailJsonStateTitle>!is[tiddler]]\" veriable=\"t\">\n <$let json={{{ [<detailJsonTitle>get[text]] }}}>\n <$let\n title={{{ [<json>jsonget[title]] }}}\n readme={{{ [<json>jsonget[readme]] }}}\n parent-plugin={{{ [<json>jsonget[parent-plugin]] }}}\n dependents={{{ [<json>jsonget[dependents]] }}}\n latest={{{ [<json>jsonget[latest]] }}}\n author={{{ [<json>jsonget[author]] }}}\n suggestions={{{ [<json>jsonget[suggestions]] }}}\n >\n <!-- 依赖 -->\n <$list filter=\"[<title>!is[tiddler]]\" variable=\"ignore\">\n <div style=\"background:#e91e3db0;color:white;padding:6px;\" class=\"cpl-plugin-dependencies\">\n {{$:/language/ControlPanel/Plugins/NotInstalled/Hint}} \n <$list filter=\"[enlist<dependents>] [<parent-plugin>] +[unique[]!is[blank]!is[tiddler]limit[1]]\" variable=\"ignore\">\n <div>\n {{$:/language/ControlPanel/Plugins/AlsoRequires}} \n <$list filter=\"[enlist<dependents>] [<parent-plugin>] +[unique[]!is[blank]!is[tiddler]sort[name]]\" variable=\"dependency\">\n <span style=\"border-radius:12px;padding:3px 8px;background:#1c3b40c2;font-size:12px;line-height:24px\"><$text text=<<dependency>>/></span> \n </$list>\n </div>\n </$list>\n </div>\n </$list>\n <!-- 历史版本 -->\n <$list filter=\"[<json>jsonget[versions]count[]compare:integer:gt[1]]\" variable=\"t\">\n <details class=\"more-versions-details\">\n <summary style=\"background:#246b84;padding:4px 10px;cursor:pointer;user-select:none;\">\n <$text text={{{ [<chinese>match[yes]then[浏览其他历史版本]else[Browse older versions]] }}}/>\n </summary>\n <$list filter=\"[<json>jsonget[versions]reverse[]]\" variable=\"version\">\n <div style=\"background:#1a4655;padding:4px 12px;display:flex;flex-direction:row;align-items:center;justify-content:space-between;border-top:1px solid #15333c;\">\n <span>\n <span style=\"color: white;\"><<version>></span>\n <span style=\"opacity: 0.8;\"> (<$macrocall $name=\"plugin-size\" size={{{ [<json>jsonget[versions-size],<version>else[0]] }}} />)</span>\n <$list filter=\"[<latest>compare:version:eq<version>]\"> <span class=\"cpl-latest-version-icon\">{{$:/core/images/star-filled}}</span></$list>\n <$list filter=\"[<installedVersion>compare:version:eq<version>]\"> <span class=\"cpl-installed-version-icon\">{{$:/core/images/done-button}}</span></$list>\n </span>\n <div style=\"font-size:0.8em;line-height:1.2;\"><$macrocall $name=\"install-plugin-button\" plugin=<<title>> libraryVersion=<<version>> installedVersion=<<installedVersion>> /></div>\n </div>\n </$list>\n </details>\n </$list>\n <!-- 正文 -->\n <div class=\"tc-plugin-info-dropdown-body\">\n <$wikify name=\"rendered\" text=<<readme>> output=\"html\"><<rendered>></$wikify>\n </div>\n <!-- 推荐 -->\n <$list filter=\"[<__show-suggestion__>match[yes]]\" variable=\"t\">\n <div style=\"padding:10px 20px;backdrop-filter:contrast(1.1);\">\n <!-- 作者的其他插件 -->\n <$list filter=\"[{$:/temp/CPL-Repo/authors}jsonget<author>count[]compare:integer:gt[1]]\" variable=\"t\">\n <details>\n <summary style=\"padding:10px 0;\">\n <$text text={{{ [<chinese>match[yes]then[作者的其他插件]else[Other plugins of Author]] }}} />\n </summary>\n <div style=\"padding:6px;display:flex;flex-direction:column;\">\n <$list filter=\"[{$:/temp/CPL-Repo/authors}jsonget<author>] -[<title>]\" variable=\"plugin\">\n <$macrocall\n $name=\"plugin-list-item\"\n json={{{ [{$:/temp/CPL-Repo/plugins-index}jsonextract<plugin>] }}}\n field=\"$field$-author-suggestion\"\n show-suggestion=\"no\"\n class=\"cpl-plugin-info-box\"\n />\n </$list>\n </div>\n </details>\n </$list>\n <!-- 插件推荐 -->\n <$list filter=\"[enlist<suggestions>count[]compare:integer:gt[1]]\" variable=\"t\">\n <details>\n <summary style=\"padding:10px 0;\">\n <$text text={{{ [<chinese>match[yes]then[你可能感兴趣的插件]else[Plugins you may be interested in]] }}} />\n </summary>\n <div style=\"padding:6px;display:flex;flex-direction:column;\">\n <$list filter=\"[enlist<suggestions>]\" variable=\"plugin\">\n <$macrocall\n $name=\"plugin-list-item\"\n json={{{ [{$:/temp/CPL-Repo/plugins-index}jsonextract<plugin>] }}}\n field=\"$field$-author-suggestion\"\n show-suggestion=\"no\"\n class=\"cpl-plugin-info-box\"\n />\n </$list>\n </div>\n </details>\n </$list>\n </div>\n </$list>\n </$let>\n </$let>\n </$list>\n</div>\n</$list>\n</$let>\n</$let>\n</$let>\n</div>\n</$list>\n\\end\n"},"$:/plugins/Gk0Wk/CPL-Repo/plugin-size":{"title":"$:/plugins/Gk0Wk/CPL-Repo/plugin-size","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"\\define plugin-size(size:\"0\")\n<$list filter=\"[<__size__>compare:integer:gt[0]]\" variable=\"size\" emptyMessage=\"?\">\n<$let unit-step={{{ [<size>compare:integer:gteq[1048576]] :then[<size>compare:integer:gteq[1073741824]then[GiB#1073741824]else[MiB#1048576]] :else[<size>compare:integer:gteq[1024]then[KiB#1024]else[B#1]] }}}>\n<$let unit={{{ [<unit-step>split[#]first[]] }}} step={{{ [<unit-step>split[#]last[]] }}}>\n<$text text={{{ [<size>divide<step>fixed[2]] [<unit>] +[join[ ]] }}}/>\n</$let>\n</$let>\n</$list>\n\\end"},"$:/plugins/Gk0Wk/CPL-Repo/plugin-uninstall-plugins-item":{"title":"$:/plugins/Gk0Wk/CPL-Repo/plugin-uninstall-plugins-item","code-body":"yes","tags":[],"type":"text/vnd.tiddlywiki","text":"\\whitespace trim\n<$list filter=\"[!has[draft.of]plugin-type<currentTab>sort[name]]\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>\n<div style=\"display:flex;margin:-0.5em 0;\">\n\t<div style=\"flex-grow:1;\">{{||$:/core/ui/PluginListItemTemplate}}</div>\n\t<$button style=\"backdrop-filter:contrast(0.65);margin:0.5em 0;padding:4px 16px !important;cursor:pointer;background-color:#d7074ebd !important;border:none !important;\">\n\t\t{{$:/core/images/delete-button}}\n\t\t<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/uninstall-plugin-model-template\" plugin=<<currentTiddler>>/>\n\t</$button>\n</div>\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Beautify":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Beautify","text":"美化"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Developing":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Developing","text":"开发工具"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Fun":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Fun","text":"趣味"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Functional":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Functional","text":"功能性"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Language":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Language","text":"多语言"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Showcase":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Showcase","text":"演示"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Unknown":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Unknown","text":"未分类"},"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Visualization":{"title":"$:/plugins/Gk0Wk/CPL-Repo/PluginCategory/Visualization","text":"可视化"},"$:/plugins/Gk0Wk/CPL-Repo/popup-readme":{"title":"$:/plugins/Gk0Wk/CPL-Repo/popup-readme","subtitle":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[CPL 使用须知]else[Note to use CPL]] }}}/>","tags":[],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$checkbox\n tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup\"\n field=\"text\"\n checked={{$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup-threshold}}\n unchecked=\"0\"\n default=\"0\">\n <$text text={{{ [<chinese>match[yes]then[不再弹出该消息]else[No longer pops up this message]] }}}/>\n</$checkbox>\n\n{{$:/plugins/Gk0Wk/CPL-Repo/readme}}\n\n<$list filter=\"[<chinese>match[yes]]\">\n\nCPL 的各项功能需要连接互联网、从插件数据库的静态资源网站下载 JSON 文件来实现。CPL 只会从网站上下载数据,不会将你的数据上传。\n\n未来 CPL 可能添加插件投票和下载量统计功能,如添加这些功能,会先征得你的同意。你将来可以随时关闭这类功能。\n\n你可以在这里查看 CPL 插件的逻辑代码: [[$:/plugins/Gk0Wk/CPL-Repo/core.js]]\n\nCPL 当前尚未开启自动更新检测功能,如需开启,请手动前往设置页面启动:<$button>设置<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/settings\" /></$button>\n\n</$list>\n\n<$list filter=\"[<chinese>match[no]]\">\n\nThe functions of the CPL require an Internet connection to download JSON files from the plug-in database's static resource site for implementation. The CPL will only download data from the site, it will not upload your data.\n\nIn the future, CPL may add plugin polling and download statistics, and will ask for your permission to add these features. You can disable these features at any time in the future.\n\nYou can view the logic code of the CPL plugin here: [[$:/plugins/Gk0Wk/CPL-Repo/core.js]]\n\nCPL has not yet enabled the automatic update detection function, if you want to enable it, please go to the settings page manually to start it: <$button>Settings<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/settings\" /></$button>\n\n</$list>\n\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/popup-readme-at-startup":{"title":"$:/plugins/Gk0Wk/CPL-Repo/popup-readme-at-startup","code-body":"yes","tags":["$:/tags/StartupAction/PostRender"],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[{$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup}!is[blank]else[0]compare:integer:lt{$:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup-threshold}]\">\n<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/popup-readme\" />\n</$list>"},"$:/plugins/Gk0Wk/CPL-Repo/readme":{"title":"$:/plugins/Gk0Wk/CPL-Repo/readme","tags":[],"type":"text/vnd.tiddlywiki","text":"<div style=\"display:flex;justify-content:center;\">\n{{$:/plugins/Gk0Wk/CPL-Repo/about-banner}}\n</div>\n\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$list filter=\"[<chinese>match[yes]]\">\n\n> 好用到哭,装就完了!\n\n!! 欢迎使用 CPL!\n\n使用 TW 这么久,你还在为四处寻觅好用的插件而发愁吗?还在为管理一大堆插件的更新、处理插件的依赖而苦恼吗?你还在为查找插件的用法而翻遍全网吗?你是否希望安装一个插件的某个历史版本,而非最新版本?\n\n如果你是插件的作者,你是否还在苦恼如何推广自己的插件,如何让用户及时获得最新的版本呢?\n\n你是否希望 TW 能像其他现代笔记软件一样,能够一键管理所有插件,能够更傻瓜化地查找和安装插件,甚至主动为你推广插件。是否希望 TW 能够帮助你自动保持插件的最新?\n\n这一切,在 CPL 得以实现!\n\n---\n\nCPL 是由[[太微(TiddlyWiki)中文社区|https://github.com/tiddly-gittly]]维护的、致力于搜集网络上所有与 <$text text={{{ TiddlyWiki5 }}}/> 有关插件的、希望为中国以及全世界的太微用户提供一键安装、更新插件体验的插件聚合中心。\n\n本插件有如下特点:\n\n* 聚合各种 TW 插件并保持最新当前 500+;\n* 在你的 Wiki 中搜索各种插件,提供关键词、分类和标签搜索;\n* 自动检查插件更新;\n* 安装插件时可自动递归安装依赖,并可以指定所有插件的安装版本;\n\n</$list>\n\n<$list filter=\"[<chinese>match[no]]\">\n\n> Just install it! I think you need it.\n\n!! Welcome to CPL!\n\nAfter using TW for so long, are you still worried about looking around for good plugins? Are you still struggling to manage a bunch of plugin updates and deal with plugin dependencies? Are you still searching the web to find out how to use a plugin? Do you want to install some historical version of a plugin instead of the latest version?\n\nIf you are a plugin author, do you still struggle with how to promote your plugin and how to keep users up to date with the latest version?\n\nDo you wish TW could manage all your plugins with one click like other modern note-taking software, make it more foolproof to find and install plugins, and even proactively promote plugins for you? Do you want TW to help you keep your plugins up-to-date automatically?\n\nIt's all here at CPL!\n\n---\n\nThis plugin source is maintained by the [[TiddlyWiki Chinese Community|https://github.com/tiddly-gittly]] and is dedicated to collecting all <$text text={{{ TiddlyWiki5 }}}/> related plugins on the web, hoping to provide a one-click installation and update plugin experience for TW users all around the world.\n\nThis plugin has the following features:\n\n* Aggregate various TW plugins and keep them up-to-date with the current 500+;.\n* Search for various plugins in your Wiki, providing keyword, category and tag search;.\n* Check for plugin updates automatically;\n* Install plugins with automatic recursive installation of dependencies, and you can specify the installed version of all plugins;\n\n</$list>\n\n</$list>"},"$:/plugins/Gk0Wk/CPL-Repo/settings":{"title":"$:/plugins/Gk0Wk/CPL-Repo/settings","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[设置]else[Settings]] }}}/>","subtitle":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[CPL 设置]else[CPL Settings]] }}}/>","tags":[],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$list filter=\"[<chinese>match[yes]]\">\n\n在该页面内您可以对 CPL 插件的行为进行设定。\n\n; CPL 数据库镜像入口 <$select tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/current-repo\" field=\"text\">\n<$list filter=\"[{$:/plugins/Gk0Wk/CPL-Repo/config/repos}enlist-input[]]\" variable=\"repo\">\n<option value=<<repo>>><$text text=<<repo>>/></option>\n</$list>\n</$select>\n\n<<<\n当 CPL 获取数据经常失败时,你可以尝试切换到其他镜像,目前国内推荐使用 netlify 镜像,\n\n欢迎各位大佬部署国内镜像,详情请咨询QQ交流群或在[[GitHub Issue|https://github.com/tiddly-gittly/TiddlyWiki-CPL/issues]]提问\n\n你可以手动更改数据库镜像入口:[[$:/plugins/Gk0Wk/CPL-Repo/config/current-repo]]\n<<<\n\n; 自动更新检查间隔 <$edit-text tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/auto-update-intervals-minutes\" tag=\"input\" default=\"-1\" /> (分钟/次)\n\n<<<\n自动更新检查会在 Wiki 刚打开时进行,并每隔指定间隔进行一次检查\n\n显然自动检查需要联网,每次所消耗的流量很小,大概10KB。如果发现有插件可以更新会在右上角弹窗提醒。\n\n当值小于等于0,则关闭自动更新,也包括刚打开 Wiki 的那一次。\n\n关闭后可以手动在 [[$:/ControlPanel]] 的 [CPL] 中进行检查。\n<<<\n\n; 插件更新筛选器 <$edit-text tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/update-filter\" tag=\"input\" default=\"\" />\n\n<<<\n插件更新是有选择的,你可以通过修改筛选器来排除一些插件。\n<<<\n\n</$list>\n\n<$list filter=\"[<chinese>match[no]]\">\n\nIn this page you can set the behavior of the CPL plugin.\n\n; CPL Database Mirror Entry <$select tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/current-repo\" field=\"text\">\n<$list filter=\"[{$:/plugins/Gk0Wk/CPL-Repo/config/repos}enlist-input[]]\" variable=\"repo\">\n<option value=<<repo>>><$text text=<<repo>>/></option>\n</$list>\n</$select>\n\n<<<\nWhen the CPL fails to fetch the data often, you can try to switch to another mirror.\n\nIf you'd like to deploy your own mirrors, feel free to ask questions in the [[GitHub Issue|https://github.com/tiddly-gittly/TiddlyWiki-CPL/issues]]!\n\nYou can manually change the database mirror entry: [[$:/plugins/Gk0Wk/CPL-Repo/config/current-repo]]\n<<<\n\n; Automatic update of check intervals <$edit-text tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/auto-update-intervals-minutes\" tag=\"input\" default=\"-1\" /> (minute(s) per time)\n\n<<<\nThe automatic update check is performed when the Wiki is first opened, and at specified intervals\n\nObviously auto-checking requires an internet connection and consumes very little traffic each time, about 10KB. If a plugin is found to be updatable, a pop-up window will alert you in the upper right corner.\n\nWhen the value is less than or equal to 0, auto-update is turned off, also when the Wiki is just opened.\n\nAfter closing it can be checked manually in [CPL] of [[$:/ControlPanel]].\n<<<\n\n; Plugin Update Filter <$edit-text tiddler=\"$:/plugins/Gk0Wk/CPL-Repo/config/update-filter\" tag=\"input\" default=\"\" />\n\n<<<\nPlugin updates are selective and you can exclude some plugins by modifying the filter.\n<<<\n\n</$list>\n\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/style.css":{"title":"$:/plugins/Gk0Wk/CPL-Repo/style.css","tags":["$:/tags/Stylesheet"],"type":"text/vnd.tiddlywiki","text":".cpl-normal-button {\n color: <<colour foreground>>;\n fill: color: <<colour foreground>>;\n}\n\n.cpl-plugin-info-box {\n overflow: hidden;\n border: 1px solid <<colour tiddler-info-border>>;\n background-color: <<colour tiddler-info-background>>;\n}\n.cpl-plugin-dependencies {\n border-left: 0.8px solid <<colour tiddler-info-border>>;\n border-right: 0.8px solid <<colour tiddler-info-border>>;\n}\n\n.cpl-plugin-info-box > .tc-plugin-info {\n margin: 0 !important;\n border: none !important;\n}\n\n.cpl-plugin-info-box > .tc-plugin-info-dropdown {\n margin-top: 0 !important;\n border: none !important;\n}\n\n.cpl-plugin-info-box > .tc-plugin-info-dropdown,\n.cpl-plugin-info-box > .tc-plugin-info-dropdown > .tc-plugin-info-dropdown-message,\n.cpl-plugin-info-box > .tc-plugin-info-dropdown > .tc-plugin-info-dropdown-body {\n background: transparent !important;\n background-color: transparent !important;\n}\n\n.cpl-plugin-info-box > .tc-plugin-info-dropdown > .tc-plugin-info-dropdown-body {\n box-shadow: inset 0 12px 12px -12px rgba(0, 0, 0, 0.3);\n}\n\n.cpl-latest-version-icon > svg, .cpl-installed-version-icon > svg {\n height: 1em;\n width: 1em;\n}\n\n.cpl-latest-version-icon > svg {\n color: #FFC107;\n fill: #FFC107;\n}\n\n.cpl-installed-version-icon > svg {\n color: #3ccb0f;\n fill: #3ccb0f;\n}\n\n.cpl-plugin-install-request-dependents-tree {\n border-left:2px dotted <<colour very-muted-foreground>>;\n background: #0002;\n}\n\n.cpl-plugin-search {\n flex-grow: 1;\n width: 0;\n}\n\n.cpl-plugin-search span {\n display: inline-block;\n width: 100%;\n}\n\n.cpl-plugin-search span input {\n margin: 0 !important;\n width: 100%;\n}\n\n.cpl-plugin-search-go {\n border-radius: 0 !important;\n margin: 0 !important;\n padding: 10px 20px !important;\n word-break: keep-all;\n}\n\n.cpl-paged-plugin-list-control {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 40px;\n border: 2px solid <<colour tiddler-info-border>>;\n background-color: <<colour tiddler-info-background>>;\n}\n\n.cpl-paged-plugin-list-control > div {\n flex-grow: 1;\n width: 0;\n height: 100%;\n}\n\n.cpl-paged-plugin-list-control > div > button {\n width: 100%;\n height: 100%;\n border: none !important;\n background: transparent !important;\n cursor: pointer !important;\n}\n\n.cpl-paged-plugin-list-control > div > button:hover {\n backdrop-filter: contrast(0.75);\n}\n\n.cpl-paged-plugin-list-control > span {\n padding: 0 10px;\n height: 100%;\n display: flex;\n align-items: center;\n user-select: none;\n}\n\n.cpl-banner-button-group svg {\n height: 1em;\n width: 1em;\n}\n"},"$:/plugins/Gk0Wk/CPL-Repo/tags-gallery":{"title":"$:/plugins/Gk0Wk/CPL-Repo/tags-gallery","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[标签]else[Tags]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-list-item\n\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n\\import $:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list\n\n\\define tag-plain(text:\"\",icon:\"\",color:\"\",bg:\"\")\n\\whitespace trim\n<span class=\"tc-tag-label\" style=\"background-color:$bg$;color:$color$;fill:$color$;user-select:none;margin-right:6px;\">\n\t{{$icon$}}$text$\n</span>\n\\end\n\n\\define tag-plain-removable(saveTiddler,saveField:\"tags\",text:\"\",icon:\"\",color:\"\",bg:\"\")\n\\whitespace trim\n<span class=\"tc-tag-label\" style=\"background-color:$bg$;color:$color$;fill:$color$;user-select:none;margin:4px 6px 2px 0;padding:4px 10px;\">\n\t{{$icon$}}$text$\n\t<$button class=\"tc-btn-invisible tc-remove-tag-button\" style=\"background-color:$bg$;color:$color$;fill:$color$;\">\n\t\t<$action-listops $tiddler=<<__saveTiddler__>> $field=<<__saveField__>> $subfilter=\"-[<__text__>]\"/>{{$:/core/images/close-button}}\n\t</$button>\n</span>\n\\end\n\n<$let bg={{{ [{$:/palette}getindex[tag-background]] }}} color={{{ [{$:/palette}getindex[foreground]] }}} saveTiddler=\"$:/temp/CPL-Repo/search-tag-input\">\n<!-- 展示待检索的标签,以及搜索按钮 -->\n<div style=\"width:100%;display:flex;backdrop-filter:contrast(1.3);\">\n <div class=\"cpl-search-tags\" style=\"flex-grow:1;width:0;display:flex;align-items:center;padding:4px 8px;flex-wrap:wrap;\">\n <!-- 已有的标签,可删除 -->\n <$list filter=\"[<saveTiddler>get[text]enlist-input[]]\" variable=\"tag\">\n <$macrocall $name=\"tag-plain-removable\" text=<<tag>> icon=\"$:/core/images/tag-button\" bg=<<bg>> color=<<color>> saveTiddler=<<saveTiddler>> saveField=\"text\" />\n </$list>\n <div class=\"cpl-search-tags-input\">\n <!-- 输入 -->\n <$macrocall\n $name=\"keyboard-driven-input\"\n tiddler=\"$:/temp/CPL-Repo/add-search-tag-input\"\n tag=\"input\"\n placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}}\n focusPopup=\"$:/temp/CPL-Repo/add-search-tag-popup\"\n class=\"tc-edit-texteditor tc-popup-handle\"\n tabindex=<<tabIndex>>\n focus=\"yes\"\n filterMinLength=\"2\"\n configTiddlerFilter=\"[[$:/core/macros/tag-picker]]\"\n />\n <!-- 弹出 -->\n <$reveal state=\"$:/temp/CPL-Repo/add-search-tag-popup\" type=\"nomatch\" text=\"\" default=\"\">\n <div class=\"tc-block-dropdown tc-block-tags-dropdown\">\n <$list filter=\"[{$:/temp/CPL-Repo/tags}jsonget[]search{$:/temp/CPL-Repo/add-search-tag-input}]\" variable=\"tag\">\n <$button class=\"tc-btn-invisible\" tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n <$macrocall $name=\"tag-plain\" text=<<tag>> icon=\"$:/core/images/tag-button\" bg=<<bg>> color=<<color>> />\n <$action-listops $tiddler=<<saveTiddler>> $field=\"text\" $subfilter=\"[<tag>]\"/>\n </$button>\n </$list>\n </div>\n </$reveal>\n </div>\n </div>\n <!-- 搜索按钮 -->\n <$button class=\"tc-primary-btn tc-btn-big-green cpl-plugin-search-go\" disabled={{$:/temp/CPL-Repo/searching-plugin}}>\n <$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]] :then[{$:/temp/CPL-Repo/searching-plugin}match[yes]then[搜索中...]else[搜索]] :else[{$:/temp/CPL-Repo/searching-plugin}match[yes]then[Searching...]else[Search]] }}} />\n <$action-sendmessage\n $message=\"cpl-search-plugins\"\n mode=\"tags\"\n text={{{ [<saveTiddler>get[text]] }}}\n saveTo=\"$:/temp/CPL-Repo/searchplugin-tags/result\"\n />\n </$button>\n</div>\n<$list filter=\"[[$:/temp/CPL-Repo/searching-plugin]is[tiddler]!field:text[yes]]\">\n<div style=\"background:#e91e3db0;color:white;padding:2px 6px;margin:3px 0;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n</div>\n</$list>\n<$list filter=\"[[$:/temp/CPL-Repo/searchplugin-tags/result]is[tiddler]then[yes]else[no]]\" variable=\"go\">\n<!-- 有搜索结果 -->\n<$list filter=\"[<go>match[yes]]\" variable=\"t\">\n<<paged-plugin-list filter:\"[{$:/temp/CPL-Repo/searchplugin-tags/result}jsonget[]]\" field:\"tag-gallery\" class1:\"cpl-plugin-info-box\" class2:\"cpl-paged-plugin-list-control\">>\n</$list>\n<!-- 没有搜索结果,展示全部 -->\n<$list filter=\"[<go>match[no]]\" variable=\"t\">\n<<paged-plugin-list filter:\"[{$:/temp/CPL-Repo/plugins-index}jsonindexes[]!prefix[$:/language]]\" field:\"tag-gallery\" class1:\"cpl-plugin-info-box\" class2:\"cpl-paged-plugin-list-control\">>\n</$list>\n</$list>\n</$let>\n"},"$:/plugins/Gk0Wk/CPL-Repo/uninstall-manager":{"title":"$:/plugins/Gk0Wk/CPL-Repo/uninstall-manager","code-body":"yes","tags":[],"caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[卸载]else[Uninstall]] }}} />","type":"text/vnd.tiddlywiki","text":"<$macrocall\n\t$name=\"tabs\"\n\tstate=\"$:/temp/CPL-Repo/plugin-uninstall-manager-tab-state\"\n\ttabsList=\"plugin theme language\"\n\tdefault=\"plugin\"\n\ttemplate=\"$:/plugins/Gk0Wk/CPL-Repo/plugin-uninstall-plugins-item\"\n/>\n"},"$:/plugins/Gk0Wk/CPL-Repo/uninstall-plugin-model-template":{"title":"$:/plugins/Gk0Wk/CPL-Repo/uninstall-plugin-model-template","code-body":"yes","subtitle":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[请确认卸载]else[Please Confirm to Uninstall]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"\\define checkShadow() <$action-listops $tiddler=<<tiddler>> $field=<<field>> $subfilter=\"[<shadow>]\"/>\n\\define uncheckShadow() <$action-listops $tiddler=<<tiddler>> $field=<<field>> $subfilter=\"-[<shadow>]\"/>\n\n<$let chinese={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]] }}}>\n\n<$list filter=\"[<chinese>match[yes]]\">\n\n> 即将卸载 <<plugin>>\n\n<$list filter=\"[!field:plugin-type[]search:parent-plugin<plugin>] [!field:plugin-type[]search:dependent<plugin>] +[limit[1]]\" variable=\"t\">\n\n---\n\n!! 注意:插件被依赖\n\n该插件仍然被如下插件依赖,是否继续卸载?\n\n<$list filter=\"[!field:plugin-type[]search:parent-plugin<plugin>] [!field:plugin-type[]search:dependent<plugin>] +[unique[]sort[title]]\" variable=\"other-plugin\">\n\n: <<other-plugin>>\n\n</$list>\n</$list>\n\n---\n\n!! 注意:残留条目\n\n该插件中,有一些条目已不是默认值(有一个同名的非影子条目),因此这些条目在删除插件后仍将保留。这可能会为你的 Wiki 增添一些额外的垃圾条目,或者为下一次安装插件或升级插件带来困扰。所以在删除插件时,是否该同时清理这些条目?请选择要删除或者保留的条目,或者点击其标题来产看它的内容来决定。\n\n在决定之后,点击下方的按钮,卸载插件并同时删除勾选的条目。\n\n</$list>\n<$list filter=\"[<chinese>match[no]]\">\n\n> To uninstall <<plugin>>\n\n<$list filter=\"[!field:plugin-type[]search:parent-plugin<plugin>] [!field:plugin-type[]search:dependent<plugin>] +[limit[1]]\" variable=\"t\">\n\n---\n\n!! Note: Plugin is Dependent\n\nThe plugin is still dependent on the following plugins, do you continue to uninstall?\n\n<$list filter=\"[!field:plugin-type[]search:parent-plugin<plugin>] [!field:plugin-type[]search:dependent<plugin>] +[unique[]sort[title]]\" variable=\"other-plugin\">\n\n: <<other-plugin>>\n\n</$list>\n</$list>\n\n---\n\n!! Note: Left tiddlers\n\nThe plugin has some entries that are no longer default (there is a non-shadow entry with the same name), so these entries will remain after removing the plugin. This may add some extra junk entries to your Wiki, or cause problems for the next time you install the plugin or upgrade it. So when deleting a plugin, should you clean up these entries at the same time? Please select the entry you want to delete or keep, or click on its title to see what it says to decide.\n\nAfter deciding, click the button below to uninstall the plugin and remove the checked entries at the same time.\n</$list>\n\n<$button class=\"tc-btn-big-green tc-primary-btn\" message=\"tm-close-tiddler\">\n{{$:/core/images/delete-button}}\n \n<$text text={{{ [<chinese>match[yes]then[确认卸载]else[Confirm to Uninstall]] }}} />\n<$action-deletetiddler $filter=\"[<tiddler>get[text]enlist-input[]] [<plugin>]\" />\n</$button>\n\n<$let keep={{{ [<chinese>match[yes]then[保留]else[Keep]] }}} nokeep={{{ [<chinese>match[yes]then[删除]else[Delete]] }}}>\n<$let tiddler=<<qualify \"$:/temp/CPL-Repo/deleting-plugin-shadows\">> field=\"text\">\n\n<div style=\"display:flex;flex-direction:column;\">\n<$list filter=\"[<plugin>get[text]jsonindexes[tiddlers]is[tiddler]]\" variable=\"shadow\" emptyMessage=\"<$text text={{{ [<chinese>match[yes]then[无]else[]] }}} />\">\n<$let is-keep={{{ [<tiddler>get[text]enlist-input[]match<shadow>limit[1]then[no]else[yes]] }}}>\n<div style={{{ [[background:]] [<is-keep>match[yes]then[#00ff2d1d]else[#fd004748]] [[;display:flex;justify-content:space-between;padding:4px 6px;border:1px solid #7774]] +[join[]] }}}>\n<span><<shadow>></span>\n<span>\n<$checkbox filter=\"[<tiddler>get[text]enlist-input[]]\" checked=<<shadow>> checkactions=<<checkShadow>> uncheckactions=<<uncheckShadow>>> ''<$text text={{{ [<is-keep>match[yes]then<keep>else<nokeep>] }}}/>''</$checkbox>\n</span>\n</div>\n</$let>\n</$list>\n</div>\n\n</$let>\n</$let>\n"},"$:/plugins/Gk0Wk/CPL-Repo/update-body":{"title":"$:/plugins/Gk0Wk/CPL-Repo/update-body","subtitle":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[更新列表]else[Update List]] }}}/>","tags":[],"type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-list-item\n\\import $:/plugins/Gk0Wk/CPL-Repo/plugin-size\n\\import $:/plugins/Gk0Wk/CPL-Repo/paged-plugin-list\n\n<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n<$list filter=\"[[$:/temp/CPL-Repo/update-plugins]is[tiddler]] [[$:/temp/CPL-Repo/plugins-index]is[tiddler]] +[count[]compare:integer:eq[2]then[yes]else[no]]\" variable=\"ready\">\n\n<$list filter=\"[<ready>match[yes]]\">\n<<paged-plugin-list filter:\"[{$:/temp/CPL-Repo/update-plugins}jsonget[]]\" field:\"update-list\" class1:\"cpl-plugin-info-box\" class2:\"cpl-paged-plugin-list-control\">>\n</$list>\n\n<$list filter=\"[<ready>match[no]]\">\n<!-- 错误提示 -->\n<$list filter=\"[[$:/temp/CPL-Repo/getting-plugins-index]is[tiddler]!field:text[yes]]\">\n<div style=\"background:#e91e3db0;color:white;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n\t<$text text={{{ [<chinese>match[yes]then[请尝试刷新]else[Please try refreshing]] }}}/>\n</div>\n</$list>\n<!-- 错误提示 -->\n<$list filter=\"[[$:/temp/CPL-Repo/updaing]is[tiddler]!field:text[yes]]\">\n<div style=\"background:#e91e3db0;color:white;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[出现了一些问题]else[Some errors occured]] }}}/>: <$text text={{!!text}}/>\n\t<$text text={{{ [<chinese>match[yes]then[请尝试刷新]else[Please try refreshing]] }}}/>\n</div>\n</$list>\n<!-- 加载中提示 -->\n<$list filter=\"[[$:/temp/CPL-Repo/getting-plugins-index]is[tiddler]field:text[yes]] [[$:/temp/CPL-Repo/updaing]is[tiddler]field:text[yes]] +[limit[1]]\">\n<div style=\"background:#0005;color:#aaa;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[加载中...]else[Loading...]] }}}/>\n</div>\n</$list>\n<$list filter=\"[[$:/temp/CPL-Repo/getting-plugins-index]is[tiddler]field:text[yes]] [[$:/temp/CPL-Repo/updaing]is[tiddler]field:text[yes]] +[limit[1]]\">\n<div style=\"background:#0005;color:#aaa;padding:2px 6px;margin:3px 0;border-radius:2px;backdrop-filter:blur(4px);min-height:100px;display:flex;align-items:center;justify-content:center;\">\n\t<$text text={{{ [<chinese>match[yes]then[加载中...]else[Loading...]] }}}/>\n</div>\n</$list>\n</$list>\n\n</$list>\n</$list>\n"},"$:/plugins/Gk0Wk/CPL-Repo/update-manager":{"title":"$:/plugins/Gk0Wk/CPL-Repo/update-manager","caption":"<$text text={{{ [[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[更新]else[Updates]] }}} />","tags":[],"type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n<$button disabled={{{ [{$:/temp/CPL-Repo/getting-plugins-index}match[yes]else[no]] }}} class=\"tc-btn-big-green tc-primary-btn\">\n<$action-sendmessage $message=\"cpl-update-check\" />\n{{$:/core/images/refresh-button}}\n \n<$text text={{{ [[$:/temp/CPL-Repo/update-plugins]is[tiddler]] :then[<chinese>match[yes]then[重新获取更新]else[Refetch CPL]] :else[<chinese>match[yes]then[获取更新]else[Fetch update]] }}} />\n</$button>\n</$list>\n\n{{$:/plugins/Gk0Wk/CPL-Repo/update-body}}"},"$:/plugins/Gk0Wk/CPL-Repo/update-notify-template":{"title":"$:/plugins/Gk0Wk/CPL-Repo/update-notify-template","type":"text/vnd.tiddlywiki","text":"<$list filter=\"[[$:/language]get[text]removeprefix[$:/languages/]else[en-GB]search[zh]then[yes]else[no]]\" variable=\"chinese\">\n\n<$list filter=\"[<chinese>match[yes]]\">\n\n!! CPL 更新提醒\n\n您的 Wiki 中有 <<updateCount>> 款插件在 CPL 中有更新版本, 快来更新吧!\n\n<$button class=\"cpl-normal-button\">\n 更新\n <$action-sendmessage $message=\"cpl-get-plugins-index\" />\n <$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/update-body\" />\n</$button>\n<$button class=\"cpl-normal-button\">\n 设置\n <$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/settings\" />\n</$button>\n\n</$list>\n\n<$list filter=\"[<chinese>!match[yes]]\">\n\n!! CPL Update Alert\n\nThere are <<updateCount>> plugins in your Wiki that have newer versions in CPL, so update them now!\n\n<$button class=\"cpl-normal-button\">\n Update\n <$action-sendmessage $message=\"cpl-get-plugins-index\" />\n <$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/update-body\" />\n</$button>\n<$button class=\"cpl-normal-button\">\n Settings\n <$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/Gk0Wk/CPL-Repo/settings\" />\n</$button>\n\n</$list>\n\n</$list>\n"}}} \ No newline at end of file diff --git a/wiki/tiddlers/$__plugins_Gk0Wk_CPL-Repo.json.meta b/wiki/tiddlers/$__plugins_Gk0Wk_CPL-Repo.json.meta index 227fed0..245b6ae 100644 --- a/wiki/tiddlers/$__plugins_Gk0Wk_CPL-Repo.json.meta +++ b/wiki/tiddlers/$__plugins_Gk0Wk_CPL-Repo.json.meta @@ -1,7 +1,8 @@ author: Gk0Wk -description: Repos for CPL +description: Essential and powerful plugin manager and library +list: readme name: CPL Repo plugin-type: plugin title: $:/plugins/Gk0Wk/CPL-Repo type: application/json -version: 2022.12.28 \ No newline at end of file +version: 2023.12.9 \ No newline at end of file diff --git a/wiki/tiddlers/$__plugins_Gk0Wk_CPL-Repo_config_popup-readme-at-startup.tid b/wiki/tiddlers/$__plugins_Gk0Wk_CPL-Repo_config_popup-readme-at-startup.tid new file mode 100644 index 0000000..a7ecf54 --- /dev/null +++ b/wiki/tiddlers/$__plugins_Gk0Wk_CPL-Repo_config_popup-readme-at-startup.tid @@ -0,0 +1,6 @@ +created: 20240202122713989 +modified: 20240202122713989 +title: $:/plugins/Gk0Wk/CPL-Repo/config/popup-readme-at-startup +type: text/vnd.tiddlywiki + +1 \ No newline at end of file diff --git a/wiki/tiddlers/$__plugins_linonetwo_tw-react.json b/wiki/tiddlers/$__plugins_linonetwo_tw-react.json deleted file mode 100644 index e8c1ec5..0000000 --- a/wiki/tiddlers/$__plugins_linonetwo_tw-react.json +++ /dev/null @@ -1 +0,0 @@ -{"tiddlers":{"$:/plugins/linonetwo/tw-react/docs/FAQ":{"title":"$:/plugins/linonetwo/tw-react/docs/FAQ","creator":"LinOnetwo","text":"!! FAQ\n\n!!! _jsxRuntime\n\n`slate-write/node_modules/react-dnd/dist/cjs/core/DndProvider.js` has `var _jsxRuntime = require(\"react/jsx-runtime\");`\n\nBut `slate-write/node_modules/react-dnd/dist/esm/core/DndProvider.mjs` has `import { jsx as _jsx } from \"react/jsx-runtime.js\";`\n\nNote the difference between `react/jsx-runtime` and `react/jsx-runtime.js`!\n\nCurrently tw-react ship with `react/jsx-runtime.js`, so if your plugin uses cjs version of react-dnd, you will have error:\n\n```\nError executing boot module $:/plugins/linonetwo/slate-write/components/index.js: \"Cannot find module named 'react/jsx-runtime' required by module '$:/plugins/linonetwo/slate-write/components/index.js', resolved to react/jsx-runtime\"\n\nundefined\n```\n\nThe solution is to ask me provide a version of tw-react that has `react/jsx-runtime`, or you can use esm version of `react-dnd`.\n"},"$:/plugins/linonetwo/tw-react/docs/example":{"title":"$:/plugins/linonetwo/tw-react/docs/example","creator":"LinOnetwo","type":"text/vnd.tiddlywiki","text":"!! Example\n\n```tid\n<$likeButtonExampleWidget stateTiddler=\"$:/state/tw-react/readme/like-button\" />\n```\n\nButton1:\n\n<$likeButtonExampleWidget stateTiddler=\"$:/state/tw-react/readme/like-button\" />\n\nButton2:\n\n<$likeButtonExampleWidget stateTiddler=\"$:/state/tw-react/readme/like-button\" />\n\nState:\n\n{{$:/state/tw-react/readme/like-button}}\n\nIt keeps its state via a state tiddler, and title of state tiddler is pass-in using `getProps = () => ({ stateTiddler: this.getAttribute('stateTiddler') });`, so `stateTiddler` attribute is passed from widget parameter to the React props.\n\nTwo buttons have shared state [[$:/state/tw-react/readme/like-button]], but not updated when state changed (although you can implement this in the `refresh` method by yourself in your own component), so when you click one, and close this tiddler then reopen it, you will see two buttons have same ''clicked'' state.\n\n`likeButtonExampleWidget` is a class component, it calls a functional component `ExampleFunction` that will use react hook to update self +1 every second.\n\nSee [[$:/plugins/linonetwo/tw-react/example.ts]] for example.\n"},"$:/plugins/linonetwo/tw-react/docs/install":{"title":"$:/plugins/linonetwo/tw-react/docs/install","creator":"LinOnetwo","text":"!! Install\n\nAs a user, just install from [[CPL|https://tw-cpl.netlify.app/#linonetwo%2Ftw-react:Index%20linonetwo%2Ftw-react]].\n\nAs a developer, you can continue reading.\n\n!!! Require and externalize 'react', 'react-dom'\n\nPlease make sure to externalize them, for example in the [[RollUp|https://rollupjs.org/]]:\n\n```json\n{\n external: ['react', 'react-dom']\n}\n```\n\nOtherwise you will get [[You might have more than one copy of React in the same app|https://reactjs.org/docs/error-decoder.html/?invariant=321]] error.\n\nAnd use the subclass of Widget provided by this plugin:\n\n```\nconst Widget = require('$:/plugins/linonetwo/tw-react/widget.js').widget\n```\n\n!!! Using Typescript\n\n# use [[TW5-Typed|https://github.com/tiddly-gittly/TW5-Typed]] for basic tw types, see its readme for install instruction\n# install `tw-react` package via `npm i tw-react`, and import the type by `import type { ReactWidget } from 'tw-react';`\n\nUse the type:\n\n```js\nimport { useRenderTiddler } from '$:/plugins/linonetwo/tw-react/index.js';\nimport type { ReactWidget } from 'tw-react';\n\nconst Widget = require('$:/plugins/linonetwo/tw-react/widget.js').widget as typeof ReactWidget;\n\nclass YourWidget extends Widget {\n reactComponent = SomeReactComponent;\n getProps = () => {\n return {\n stateTiddler: this.getAttribute('stateTiddler'),\n // ... other props for your react component\n };\n };\n}\n```\n\n!!! Props\n\nAnything returned from `getProps` method will pass to react component, passing `stateTiddler` is a good idea, but is not mandatory.\n\nFor example, this is what I returned in my `linonetwo/smart-form` plugin:\n\n```js\ngetProps = () => {\n const currentTiddler = this.getAttribute('tiddler', this.getVariable('currentTiddler'));\n // with lots of filter running and data transforms...\n return {\n schema,\n formData,\n children: null,\n onChange,\n };\n };\n```\n\n!!! React Hooks\n\nWe provided some hooks for reactive data management with tw data source. You can import them from the `$:/plugins/linonetwo/tw-react/index.js` (Instead of from `tw-react` package, because they already included in the plugin).\n\n```ts\nimport { useFilter } from '$:/plugins/linonetwo/tw-react/index.js'\n```\n\nYou can't import them from plugin's file, because they are optional, so only included in the npm package, not in the plugin json bundle.\n\n!!!! useFilter\n\nGet list of titles from a filter.\n\n```ts\nconst titles = useFilter('[all[]tag[Index]]');\n```\n\nThe second parameter is an optional dependencies list, you can use it to trigger re-calculate. Otherwise it only rerun filter when filter text changes.\n\n```ts\nconst [toggle, setToggle] = useState(false);\nconst titles = useFilter('[all[]tag[Index]]', [toggle]);\n\n...\n\n<Button onClick={() => setToggle(!toggle)}>Trigger refresh</Button>\n```\n"},"$:/plugins/linonetwo/tw-react/docs/reactAPIs":{"title":"$:/plugins/linonetwo/tw-react/docs/reactAPIs","creator":"LinOnetwo","text":"!! React APIs\n\nTBD, read the source now."},"$:/plugins/linonetwo/tw-react/example.js":{"title":"$:/plugins/linonetwo/tw-react/example.js","text":"\"use strict\";\n\n// src/example.tsx\nvar import_widget = require(\"$:/plugins/linonetwo/tw-react/widget.js\");\n\n// src/exampleFunction.tsx\nvar import_react = require(\"react\");\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nfunction ExampleFunction() {\n const [counter, counterSetter] = (0, import_react.useState)(0);\n (0, import_react.useEffect)(() => {\n let localCounter = 0;\n const handle = setInterval(() => {\n counterSetter(++localCounter);\n }, 1e3);\n return () => {\n clearInterval(handle);\n };\n }, []);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\"span\", { children: counter });\n}\n\n// src/example.tsx\nvar import_jsx_runtime2 = require(\"react/jsx-runtime\");\nvar ReactDom = require(\"react-dom\");\nvar React = require(\"react\");\nvar LikeButton = class extends React.Component {\n constructor(props) {\n super(props);\n const defaultState = { liked: false };\n try {\n this.state = JSON.parse($tw.wiki.getTiddlerText(this.props.stateTiddler ?? \"\", \"{}\")) ?? defaultState;\n } catch {\n this.state = defaultState;\n }\n }\n setState(nextState) {\n super.setState(nextState);\n if (this.props.stateTiddler === void 0)\n return;\n $tw.wiki.setText(this.props.stateTiddler, \"text\", void 0, JSON.stringify(nextState));\n }\n render() {\n if (this.state.liked) {\n return \"You liked this.\";\n }\n return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(\n \"button\",\n {\n onClick: () => {\n this.setState({ liked: true });\n },\n children: [\n \"Like \",\n /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ExampleFunction, {})\n ]\n }\n );\n }\n};\nvar LikeButtonWidget = class extends import_widget.widget {\n constructor() {\n super(...arguments);\n this.reactComponent = LikeButton;\n this.getProps = () => ({ stateTiddler: this.getAttribute(\"stateTiddler\") });\n }\n};\nexports.likeButtonExampleWidget = LikeButtonWidget;\n","creator":"LinOnetwo","type":"application/javascript","module-type":"widget"},"$:/plugins/linonetwo/tw-react/index.js":{"title":"$:/plugins/linonetwo/tw-react/index.js","text":"\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar src_exports = {};\n__export(src_exports, {\n ParentWidgetContext: () => ParentWidgetContext,\n useFilter: () => useFilter,\n useRenderTiddler: () => useRenderTiddler,\n useWidget: () => useWidget\n});\nmodule.exports = __toCommonJS(src_exports);\n\n// src/hooks/context.ts\nvar import_react = require(\"react\");\nvar ParentWidgetContext = (0, import_react.createContext)(void 0);\n\n// src/hooks/useFilter.ts\nvar import_react2 = require(\"react\");\nfunction useFilter(twFilter, widget = $tw.rootWidget, dependencies = []) {\n const [filterResult, setFilterResult] = (0, import_react2.useState)([]);\n const compiledFilter = (0, import_react2.useMemo)(() => $tw.wiki.compileFilter(twFilter), [twFilter]);\n (0, import_react2.useEffect)(() => {\n setFilterResult(compiledFilter(void 0, widget));\n }, [compiledFilter, widget, ...dependencies]);\n return filterResult;\n}\n\n// src/hooks/useRenderTiddler.ts\nvar import_react3 = require(\"react\");\nfunction useRenderTiddler(tiddlerTitle, containerReference, options) {\n const parentWidget = (0, import_react3.useContext)(ParentWidgetContext);\n (0, import_react3.useEffect)(() => {\n const domNode = containerReference.current;\n if (domNode === null) {\n return;\n }\n if (parentWidget === void 0) {\n throw new Error(\n \"Your plugin have a bug: `parentWidget` is undefined, you should use `<ParentWidgetContext.Provider value={props.parentWidget}>`, see tw-react for document.\"\n );\n }\n if (options?.skip === true) {\n return;\n }\n const id = String(Math.random());\n const transcludeWidgetNode = $tw.wiki.makeTranscludeWidget(tiddlerTitle, {\n document,\n parentWidget,\n recursionMarker: \"yes\",\n mode: \"block\",\n importPageMacros: true,\n variables: { \"use-widget-id\": id }\n });\n const tiddlerContainer = document.createElement(\"div\");\n domNode.append(tiddlerContainer);\n transcludeWidgetNode.render(tiddlerContainer, null);\n parentWidget.children.push(transcludeWidgetNode);\n return () => {\n parentWidget.children = parentWidget.children.filter((child) => child.getVariable(\"use-widget-id\") !== id);\n if (domNode === null) {\n return;\n }\n domNode.textContent = \"\";\n };\n }, [tiddlerTitle, containerReference, parentWidget, options?.skip]);\n}\n\n// src/hooks/useWidget.ts\nvar import_react4 = require(\"react\");\nfunction useWidget(parseTreeNode, containerReference, options) {\n const parentWidget = (0, import_react4.useContext)(ParentWidgetContext);\n (0, import_react4.useEffect)(() => {\n const domNode = containerReference.current;\n if (domNode === null) {\n return;\n }\n if (parentWidget === void 0) {\n throw new Error(\n \"Your plugin have a bug: `parentWidget` is undefined, you should use `<ParentWidgetContext.Provider value={props.parentWidget}>`, see tw-react for document.\"\n );\n }\n if (options?.skip === true) {\n return;\n }\n const id = String(Math.random());\n const newWidgetNode = parentWidget.makeChildWidget(parseTreeNode, { variables: { \"use-widget-id\": id } });\n newWidgetNode.render(domNode, null);\n parentWidget.children.push(newWidgetNode);\n return () => {\n parentWidget.children = parentWidget.children.filter((child) => child.getVariable(\"use-widget-id\") !== id);\n if (domNode === null) {\n return;\n }\n domNode.textContent = \"\";\n };\n }, [parseTreeNode, containerReference, parentWidget, options?.skip]);\n}\n","creator":"LinOnetwo","type":"application/javascript","module-type":"library"},"react/jsx-runtime.js":{"title":"react/jsx-runtime.js","text":"\"use strict\";var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};function q(e,r,t){var o,f={},_=null,s=null;for(o in void 0!==t&&(_=\"\"+t),void 0!==r.key&&(_=\"\"+r.key),void 0!==r.ref&&(s=r.ref),r)m.call(r,o)&&!p.hasOwnProperty(o)&&(f[o]=r[o]);if(e&&e.defaultProps)for(o in r=e.defaultProps)void 0===f[o]&&(f[o]=r[o]);return{$$typeof:k,type:e,key:_,ref:s,props:f,_owner:n.current}}exports.Fragment=l,exports.jsx=q,exports.jsxs=q;","creator":"LinOnetwo","type":"application/javascript","module-type":"library"},"react-dom":{"title":"react-dom","text":"!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports,require(\"react\")):\"function\"==typeof define&&define.amd?define([\"exports\",\"react\"],t):t((e=e||self).ReactDOM={},e.React)}(this,function(e,t){\"use strict\";var n=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,r=!1;function a(e){if(!r){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];i(\"warn\",e,n)}}function o(e){if(!r){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];i(\"error\",e,n)}}function i(e,t,r){var a=n.ReactDebugCurrentFrame.getStackAddendum();\"\"!==a&&(t+=\"%s\",r=r.concat([a]));var o=r.map(function(e){return String(e)});o.unshift(\"Warning: \"+t),Function.prototype.apply.call(console[e],console,o)}var l=0,u=1,s=2,c=3,d=4,f=5,p=6,h=7,m=8,v=9,g=10,y=11,b=12,w=13,k=14,S=15,x=16,C=17,E=18,T=19,R=21,P=22,D=23,N=24,_=25,I=!0,L=!1,z=!1,M=!1,O=!0,U=!1,F=!1,A=!0,W=!0,j=!0,B=new Set,H={},V={};function Y(e,t){Q(e,t),Q(e+\"Capture\",t)}function Q(e,t){H[e]&&o(\"EventRegistry: More than one plugin attempted to publish the same registration name, `%s`.\",e),H[e]=t;var n=e.toLowerCase();V[n]=e,\"onDoubleClick\"===e&&(V.ondblclick=e);for(var r=0;r<t.length;r++)B.add(t[r])}var q=!(\"undefined\"==typeof window||void 0===window.document||void 0===window.document.createElement),$=Object.prototype.hasOwnProperty;function X(e){return\"function\"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||\"Object\"}function K(e){try{return G(e),!1}catch(e){return!0}}function G(e){return\"\"+e}function J(e,t){if(K(e))return o(\"The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before before using it here.\",t,X(e)),G(e)}function Z(e){if(K(e))return o(\"Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before before using it here.\",X(e)),G(e)}var ee=0,te=2,ne=3,re=4,ae=5,oe=6,ie=\":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\",le=ie+\"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\",ue=new RegExp(\"^[\"+ie+\"][\"+le+\"]*$\"),se={},ce={};function de(e){return!!$.call(ce,e)||!$.call(se,e)&&(ue.test(e)?(ce[e]=!0,!0):(se[e]=!0,o(\"Invalid attribute name: `%s`\",e),!1))}function fe(e,t,n){return null!==t?t.type===ee:!n&&(e.length>2&&(\"o\"===e[0]||\"O\"===e[0])&&(\"n\"===e[1]||\"N\"===e[1]))}function pe(e,t,n,r){if(null!==n&&n.type===ee)return!1;switch(typeof t){case\"function\":case\"symbol\":return!0;case\"boolean\":if(r)return!1;if(null!==n)return!n.acceptsBooleans;var a=e.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}function he(e,t,n,r){if(null===t||void 0===t)return!0;if(pe(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case ne:return!t;case re:return!1===t;case ae:return isNaN(t);case oe:return isNaN(t)||t<1}return!1}function me(e){return ge.hasOwnProperty(e)?ge[e]:null}function ve(e,t,n,r,a,o,i){this.acceptsBooleans=t===te||t===ne||t===re,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var ge={};[\"children\",\"dangerouslySetInnerHTML\",\"defaultValue\",\"defaultChecked\",\"innerHTML\",\"suppressContentEditableWarning\",\"suppressHydrationWarning\",\"style\"].forEach(function(e){ge[e]=new ve(e,ee,!1,e,null,!1,!1)}),[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(e){var t=e[0],n=e[1];ge[t]=new ve(t,1,!1,n,null,!1,!1)}),[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(e){ge[e]=new ve(e,te,!1,e.toLowerCase(),null,!1,!1)}),[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(e){ge[e]=new ve(e,te,!1,e,null,!1,!1)}),[\"allowFullScreen\",\"async\",\"autoFocus\",\"autoPlay\",\"controls\",\"default\",\"defer\",\"disabled\",\"disablePictureInPicture\",\"disableRemotePlayback\",\"formNoValidate\",\"hidden\",\"loop\",\"noModule\",\"noValidate\",\"open\",\"playsInline\",\"readOnly\",\"required\",\"reversed\",\"scoped\",\"seamless\",\"itemScope\"].forEach(function(e){ge[e]=new ve(e,ne,!1,e.toLowerCase(),null,!1,!1)}),[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(e){ge[e]=new ve(e,ne,!0,e,null,!1,!1)}),[\"capture\",\"download\"].forEach(function(e){ge[e]=new ve(e,re,!1,e,null,!1,!1)}),[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(e){ge[e]=new ve(e,oe,!1,e,null,!1,!1)}),[\"rowSpan\",\"start\"].forEach(function(e){ge[e]=new ve(e,ae,!1,e.toLowerCase(),null,!1,!1)});var ye=/[\\-\\:]([a-z])/g,be=function(e){return e[1].toUpperCase()};[\"accent-height\",\"alignment-baseline\",\"arabic-form\",\"baseline-shift\",\"cap-height\",\"clip-path\",\"clip-rule\",\"color-interpolation\",\"color-interpolation-filters\",\"color-profile\",\"color-rendering\",\"dominant-baseline\",\"enable-background\",\"fill-opacity\",\"fill-rule\",\"flood-color\",\"flood-opacity\",\"font-family\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-variant\",\"font-weight\",\"glyph-name\",\"glyph-orientation-horizontal\",\"glyph-orientation-vertical\",\"horiz-adv-x\",\"horiz-origin-x\",\"image-rendering\",\"letter-spacing\",\"lighting-color\",\"marker-end\",\"marker-mid\",\"marker-start\",\"overline-position\",\"overline-thickness\",\"paint-order\",\"panose-1\",\"pointer-events\",\"rendering-intent\",\"shape-rendering\",\"stop-color\",\"stop-opacity\",\"strikethrough-position\",\"strikethrough-thickness\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke-width\",\"text-anchor\",\"text-decoration\",\"text-rendering\",\"underline-position\",\"underline-thickness\",\"unicode-bidi\",\"unicode-range\",\"units-per-em\",\"v-alphabetic\",\"v-hanging\",\"v-ideographic\",\"v-mathematical\",\"vector-effect\",\"vert-adv-y\",\"vert-origin-x\",\"vert-origin-y\",\"word-spacing\",\"writing-mode\",\"xmlns:xlink\",\"x-height\"].forEach(function(e){var t=e.replace(ye,be);ge[t]=new ve(t,1,!1,e,null,!1,!1)}),[\"xlink:actuate\",\"xlink:arcrole\",\"xlink:role\",\"xlink:show\",\"xlink:title\",\"xlink:type\"].forEach(function(e){var t=e.replace(ye,be);ge[t]=new ve(t,1,!1,e,\"http://www.w3.org/1999/xlink\",!1,!1)}),[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(e){var t=e.replace(ye,be);ge[t]=new ve(t,1,!1,e,\"http://www.w3.org/XML/1998/namespace\",!1,!1)}),[\"tabIndex\",\"crossOrigin\"].forEach(function(e){ge[e]=new ve(e,1,!1,e.toLowerCase(),null,!1,!1)});ge.xlinkHref=new ve(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1),[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(e){ge[e]=new ve(e,1,!1,e.toLowerCase(),null,!0,!0)});var we=/^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i,ke=!1;function Se(e){!ke&&we.test(e)&&(ke=!0,o(\"A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.\",JSON.stringify(e)))}function xe(e,t,n,r){if(r.mustUseProperty)return e[r.propertyName];J(n,t),r.sanitizeURL&&Se(\"\"+n);var a=r.attributeName,o=null;if(r.type===re){if(e.hasAttribute(a)){var i=e.getAttribute(a);return\"\"===i||(he(t,n,r,!1)?i:i===\"\"+n?n:i)}}else if(e.hasAttribute(a)){if(he(t,n,r,!1))return e.getAttribute(a);if(r.type===ne)return n;o=e.getAttribute(a)}return he(t,n,r,!1)?null===o?n:o:o===\"\"+n?n:o}function Ce(e,t,n,r){if(de(t)){if(!e.hasAttribute(t))return void 0===n?void 0:null;var a=e.getAttribute(t);return J(n,t),a===\"\"+n?n:a}}function Ee(e,t,n,r){var a=me(t);if(!fe(t,a,r))if(he(t,n,a,r)&&(n=null),r||null===a){if(de(t)){var o=t;null===n?e.removeAttribute(o):(J(n,t),e.setAttribute(o,\"\"+n))}}else if(a.mustUseProperty){var i=a.propertyName;if(null===n){var l=a.type;e[i]=l!==ne&&\"\"}else e[i]=n}else{var u=a.attributeName,s=a.attributeNamespace;if(null===n)e.removeAttribute(u);else{var c,d=a.type;d===ne||d===re&&!0===n?c=\"\":(J(n,u),c=\"\"+n,a.sanitizeURL&&Se(c.toString())),s?e.setAttributeNS(s,u,c):e.setAttribute(u,c)}}}var Te=Symbol.for(\"react.element\"),Re=Symbol.for(\"react.portal\"),Pe=Symbol.for(\"react.fragment\"),De=Symbol.for(\"react.strict_mode\"),Ne=Symbol.for(\"react.profiler\"),_e=Symbol.for(\"react.provider\"),Ie=Symbol.for(\"react.context\"),Le=Symbol.for(\"react.forward_ref\"),ze=Symbol.for(\"react.suspense\"),Me=Symbol.for(\"react.suspense_list\"),Oe=Symbol.for(\"react.memo\"),Ue=Symbol.for(\"react.lazy\"),Fe=Symbol.for(\"react.scope\"),Ae=Symbol.for(\"react.debug_trace_mode\"),We=Symbol.for(\"react.offscreen\"),je=Symbol.for(\"react.legacy_hidden\"),Be=Symbol.for(\"react.cache\"),He=Symbol.for(\"react.tracing_marker\"),Ve=Symbol.iterator,Ye=\"@@iterator\";function Qe(e){if(null===e||\"object\"!=typeof e)return null;var t=Ve&&e[Ve]||e[Ye];return\"function\"==typeof t?t:null}var qe,$e,Xe,Ke,Ge,Je,Ze,et=Object.assign,tt=0;function nt(){}nt.__reactDisabledLog=!0;var rt,at=n.ReactCurrentDispatcher;function ot(e,t,n){if(void 0===rt)try{throw Error()}catch(e){var r=e.stack.trim().match(/\\n( *(at )?)/);rt=r&&r[1]||\"\"}return\"\\n\"+rt+e}var it,lt=!1,ut=\"function\"==typeof WeakMap?WeakMap:Map;function st(e,t){if(!e||lt)return\"\";var n,r=it.get(e);if(void 0!==r)return r;lt=!0;var a,i=Error.prepareStackTrace;Error.prepareStackTrace=void 0,a=at.current,at.current=null,function(){if(0===tt){qe=console.log,$e=console.info,Xe=console.warn,Ke=console.error,Ge=console.group,Je=console.groupCollapsed,Ze=console.groupEnd;var e={configurable:!0,enumerable:!0,value:nt,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}tt++}();try{if(t){var l=function(){throw Error()};if(Object.defineProperty(l.prototype,\"props\",{set:function(){throw Error()}}),\"object\"==typeof Reflect&&Reflect.construct){try{Reflect.construct(l,[])}catch(e){n=e}Reflect.construct(e,[],l)}else{try{l.call()}catch(e){n=e}e.call(l.prototype)}}else{try{throw Error()}catch(e){n=e}e()}}catch(t){if(t&&n&&\"string\"==typeof t.stack){for(var u=t.stack.split(\"\\n\"),s=n.stack.split(\"\\n\"),c=u.length-1,d=s.length-1;c>=1&&d>=0&&u[c]!==s[d];)d--;for(;c>=1&&d>=0;c--,d--)if(u[c]!==s[d]){if(1!==c||1!==d)do{if(c--,--d<0||u[c]!==s[d]){var f=\"\\n\"+u[c].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"<anonymous>\")&&(f=f.replace(\"<anonymous>\",e.displayName)),\"function\"==typeof e&&it.set(e,f),f}}while(c>=1&&d>=0);break}}}finally{lt=!1,at.current=a,function(){if(0==--tt){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:et({},e,{value:qe}),info:et({},e,{value:$e}),warn:et({},e,{value:Xe}),error:et({},e,{value:Ke}),group:et({},e,{value:Ge}),groupCollapsed:et({},e,{value:Je}),groupEnd:et({},e,{value:Ze})})}tt<0&&o(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}(),Error.prepareStackTrace=i}var p=e?e.displayName||e.name:\"\",h=p?ot(p):\"\";return\"function\"==typeof e&&it.set(e,h),h}function ct(e,t,n){return st(e,!1)}function dt(e){e._debugOwner&&e._debugOwner.type,e._debugSource;switch(e.tag){case f:return ot(e.type);case x:return ot(\"Lazy\");case w:return ot(\"Suspense\");case T:return ot(\"SuspenseList\");case l:case s:case S:return ct(e.type);case y:return ct(e.type.render);case u:return st(e.type,!0);default:return\"\"}}function ft(e){try{var t=\"\",n=e;do{t+=dt(n),n=n.return}while(n);return t}catch(e){return\"\\nError generating stack: \"+e.message+\"\\n\"+e.stack}}function pt(e){return e.displayName||\"Context\"}function ht(e){if(null==e)return null;if(\"number\"==typeof e.tag&&o(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),\"function\"==typeof e)return e.displayName||e.name||null;if(\"string\"==typeof e)return e;switch(e){case Pe:return\"Fragment\";case Re:return\"Portal\";case Ne:return\"Profiler\";case De:return\"StrictMode\";case ze:return\"Suspense\";case Me:return\"SuspenseList\"}if(\"object\"==typeof e)switch(e.$$typeof){case Ie:return pt(e)+\".Consumer\";case _e:return pt(e._context)+\".Provider\";case Le:return function(e,t,n){var r=e.displayName;if(r)return r;var a=t.displayName||t.name||\"\";return\"\"!==a?n+\"(\"+a+\")\":n}(e,e.render,\"ForwardRef\");case Oe:var t=e.displayName||null;return null!==t?t:ht(e.type)||\"Memo\";case Ue:var n=e,r=n._payload,a=n._init;try{return ht(a(r))}catch(e){return null}}return null}function mt(e){return e.displayName||\"Context\"}function vt(e){var t,n,r,a,o=e.tag,i=e.type;switch(o){case N:return\"Cache\";case v:return mt(i)+\".Consumer\";case g:return mt(i._context)+\".Provider\";case E:return\"DehydratedFragment\";case y:return t=i,n=i.render,r=\"ForwardRef\",a=n.displayName||n.name||\"\",t.displayName||(\"\"!==a?r+\"(\"+a+\")\":r);case h:return\"Fragment\";case f:return i;case d:return\"Portal\";case c:return\"Root\";case p:return\"Text\";case x:return ht(i);case m:return i===De?\"StrictMode\":\"Mode\";case P:return\"Offscreen\";case b:return\"Profiler\";case R:return\"Scope\";case w:return\"Suspense\";case T:return\"SuspenseList\";case _:return\"TracingMarker\";case u:case l:case C:case s:case k:case S:if(\"function\"==typeof i)return i.displayName||i.name||null;if(\"string\"==typeof i)return i}return null}it=new ut;var gt=n.ReactDebugCurrentFrame,yt=null,bt=!1;function wt(){if(null===yt)return null;var e=yt._debugOwner;return null!==e&&void 0!==e?vt(e):null}function kt(){return null===yt?\"\":ft(yt)}function St(){gt.getCurrentStack=null,yt=null,bt=!1}function xt(e){gt.getCurrentStack=null===e?null:kt,yt=e,bt=!1}function Ct(e){bt=e}function Et(e){return\"\"+e}function Tt(e){switch(typeof e){case\"boolean\":case\"number\":case\"string\":case\"undefined\":return e;case\"object\":return Z(e),e;default:return\"\"}}var Rt={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0};function Pt(e,t){Rt[t.type]||t.onChange||t.onInput||t.readOnly||t.disabled||null==t.value||o(\"You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.\"),t.onChange||t.readOnly||t.disabled||null==t.checked||o(\"You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.\")}function Dt(e){var t=e.type,n=e.nodeName;return n&&\"input\"===n.toLowerCase()&&(\"checkbox\"===t||\"radio\"===t)}function Nt(e){return e._valueTracker}function _t(e){Nt(e)||(e._valueTracker=function(e){var t=Dt(e)?\"checked\":\"value\",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);Z(e[t]);var r=\"\"+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&\"function\"==typeof n.get&&\"function\"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){Z(e),r=\"\"+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){Z(e),r=\"\"+e},stopTracking:function(){!function(e){e._valueTracker=null}(e),delete e[t]}}}}(e))}function It(e){if(!e)return!1;var t=Nt(e);if(!t)return!0;var n=t.getValue(),r=function(e){var t=\"\";return e?t=Dt(e)?e.checked?\"true\":\"false\":e.value:t}(e);return r!==n&&(t.setValue(r),!0)}function Lt(e){if(void 0===(e=e||(\"undefined\"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}var zt=!1,Mt=!1,Ot=!1,Ut=!1;function Ft(e){return\"checkbox\"===e.type||\"radio\"===e.type?null!=e.checked:null!=e.value}function At(e,t){var n=e,r=t.checked;return et({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=r?r:n._wrapperState.initialChecked})}function Wt(e,t){Pt(0,t),void 0===t.checked||void 0===t.defaultChecked||Mt||(o(\"%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components\",wt()||\"A component\",t.type),Mt=!0),void 0===t.value||void 0===t.defaultValue||zt||(o(\"%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components\",wt()||\"A component\",t.type),zt=!0);var n=e,r=null==t.defaultValue?\"\":t.defaultValue;n._wrapperState={initialChecked:null!=t.checked?t.checked:t.defaultChecked,initialValue:Tt(null!=t.value?t.value:r),controlled:Ft(t)}}function jt(e,t){var n=e,r=t.checked;null!=r&&Ee(n,\"checked\",r,!1)}function Bt(e,t){var n=e,r=Ft(t);n._wrapperState.controlled||!r||Ut||(o(\"A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components\"),Ut=!0),!n._wrapperState.controlled||r||Ot||(o(\"A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components\"),Ot=!0),jt(e,t);var a=Tt(t.value),i=t.type;if(null!=a)\"number\"===i?(0===a&&\"\"===n.value||n.value!=a)&&(n.value=Et(a)):n.value!==Et(a)&&(n.value=Et(a));else if(\"submit\"===i||\"reset\"===i)return void n.removeAttribute(\"value\");t.hasOwnProperty(\"value\")?Yt(n,t.type,a):t.hasOwnProperty(\"defaultValue\")&&Yt(n,t.type,Tt(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(n.defaultChecked=!!t.defaultChecked)}function Ht(e,t,n){var r=e;if(t.hasOwnProperty(\"value\")||t.hasOwnProperty(\"defaultValue\")){var a=t.type;if((\"submit\"===a||\"reset\"===a)&&(void 0===t.value||null===t.value))return;var o=Et(r._wrapperState.initialValue);n||o!==r.value&&(r.value=o),r.defaultValue=o}var i=r.name;\"\"!==i&&(r.name=\"\"),r.defaultChecked=!r.defaultChecked,r.defaultChecked=!!r._wrapperState.initialChecked,\"\"!==i&&(r.name=i)}function Vt(e,t){var n=e;Bt(n,t),function(e,t){var n=t.name;if(\"radio\"===t.type&&null!=n){for(var r=e;r.parentNode;)r=r.parentNode;J(n,\"name\");for(var a=r.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+n)+'][type=\"radio\"]'),o=0;o<a.length;o++){var i=a[o];if(i!==e&&i.form===e.form){var l=ud(i);if(!l)throw new Error(\"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.\");It(i),Bt(i,l)}}}}(n,t)}function Yt(e,t,n){\"number\"===t&&Lt(e.ownerDocument)===e||(null==n?e.defaultValue=Et(e._wrapperState.initialValue):e.defaultValue!==Et(n)&&(e.defaultValue=Et(n)))}var Qt=!1,qt=!1,$t=!1;function Xt(e,n){null==n.value&&(\"object\"==typeof n.children&&null!==n.children?t.Children.forEach(n.children,function(e){null!=e&&\"string\"!=typeof e&&\"number\"!=typeof e&&(qt||(qt=!0,o(\"Cannot infer the option value of complex children. Pass a `value` prop or use a plain string as children to <option>.\")))}):null!=n.dangerouslySetInnerHTML&&($t||($t=!0,o(\"Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.\")))),null==n.selected||Qt||(o(\"Use the `defaultValue` or `value` props on <select> instead of setting `selected` on <option>.\"),Qt=!0)}var Kt,Gt=Array.isArray;function Jt(e){return Gt(e)}function Zt(){var e=wt();return e?\"\\n\\nCheck the render method of `\"+e+\"`.\":\"\"}Kt=!1;var en=[\"value\",\"defaultValue\"];function tn(e,t,n,r){var a=e.options;if(t){for(var o=n,i={},l=0;l<o.length;l++)i[\"$\"+o[l]]=!0;for(var u=0;u<a.length;u++){var s=i.hasOwnProperty(\"$\"+a[u].value);a[u].selected!==s&&(a[u].selected=s),s&&r&&(a[u].defaultSelected=!0)}}else{for(var c=Et(Tt(n)),d=null,f=0;f<a.length;f++){if(a[f].value===c)return a[f].selected=!0,void(r&&(a[f].defaultSelected=!0));null!==d||a[f].disabled||(d=a[f])}null!==d&&(d.selected=!0)}}function nn(e,t){return et({},t,{value:void 0})}function rn(e,t){var n=e;!function(e){Pt(0,e);for(var t=0;t<en.length;t++){var n=en[t];if(null!=e[n]){var r=Jt(e[n]);e.multiple&&!r?o(\"The `%s` prop supplied to <select> must be an array if `multiple` is true.%s\",n,Zt()):!e.multiple&&r&&o(\"The `%s` prop supplied to <select> must be a scalar value if `multiple` is false.%s\",n,Zt())}}}(t),n._wrapperState={wasMultiple:!!t.multiple},void 0===t.value||void 0===t.defaultValue||Kt||(o(\"Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://reactjs.org/link/controlled-components\"),Kt=!0)}var an=!1;function on(e,t){var n=e;if(null!=t.dangerouslySetInnerHTML)throw new Error(\"`dangerouslySetInnerHTML` does not make sense on <textarea>.\");return et({},t,{value:void 0,defaultValue:void 0,children:Et(n._wrapperState.initialValue)})}function ln(e,t){var n=e;Pt(0,t),void 0===t.value||void 0===t.defaultValue||an||(o(\"%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://reactjs.org/link/controlled-components\",wt()||\"A component\"),an=!0);var r=t.value;if(null==r){var a=t.children,i=t.defaultValue;if(null!=a){if(o(\"Use the `defaultValue` or `value` props instead of setting children on <textarea>.\"),null!=i)throw new Error(\"If you supply `defaultValue` on a <textarea>, do not pass children.\");if(Jt(a)){if(a.length>1)throw new Error(\"<textarea> can only have at most one child.\");a=a[0]}i=a}null==i&&(i=\"\"),r=i}n._wrapperState={initialValue:Tt(r)}}function un(e,t){var n=e,r=Tt(t.value),a=Tt(t.defaultValue);if(null!=r){var o=Et(r);o!==n.value&&(n.value=o),null==t.defaultValue&&n.defaultValue!==o&&(n.defaultValue=o)}null!=a&&(n.defaultValue=Et(a))}function sn(e,t){var n=e,r=n.textContent;r===n._wrapperState.initialValue&&\"\"!==r&&null!==r&&(n.value=r)}var cn=\"http://www.w3.org/1999/xhtml\",dn=\"http://www.w3.org/1998/Math/MathML\",fn=\"http://www.w3.org/2000/svg\";function pn(e){switch(e){case\"svg\":return fn;case\"math\":return dn;default:return cn}}function hn(e,t){return null==e||e===cn?pn(t):e===fn&&\"foreignObject\"===t?cn:e}var mn,vn,gn=(vn=function(e,t){if(e.namespaceURI!==fn||\"innerHTML\"in e)e.innerHTML=t;else{(mn=mn||document.createElement(\"div\")).innerHTML=\"<svg>\"+t.valueOf().toString()+\"</svg>\";for(var n=mn.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}},\"undefined\"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction(function(){return vn(e,t,n,r)})}:vn),yn=1,bn=3,wn=8,kn=9,Sn=11,xn=function(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===bn)return void(n.nodeValue=t)}e.textContent=t},Cn={animation:[\"animationDelay\",\"animationDirection\",\"animationDuration\",\"animationFillMode\",\"animationIterationCount\",\"animationName\",\"animationPlayState\",\"animationTimingFunction\"],background:[\"backgroundAttachment\",\"backgroundClip\",\"backgroundColor\",\"backgroundImage\",\"backgroundOrigin\",\"backgroundPositionX\",\"backgroundPositionY\",\"backgroundRepeat\",\"backgroundSize\"],backgroundPosition:[\"backgroundPositionX\",\"backgroundPositionY\"],border:[\"borderBottomColor\",\"borderBottomStyle\",\"borderBottomWidth\",\"borderImageOutset\",\"borderImageRepeat\",\"borderImageSlice\",\"borderImageSource\",\"borderImageWidth\",\"borderLeftColor\",\"borderLeftStyle\",\"borderLeftWidth\",\"borderRightColor\",\"borderRightStyle\",\"borderRightWidth\",\"borderTopColor\",\"borderTopStyle\",\"borderTopWidth\"],borderBlockEnd:[\"borderBlockEndColor\",\"borderBlockEndStyle\",\"borderBlockEndWidth\"],borderBlockStart:[\"borderBlockStartColor\",\"borderBlockStartStyle\",\"borderBlockStartWidth\"],borderBottom:[\"borderBottomColor\",\"borderBottomStyle\",\"borderBottomWidth\"],borderColor:[\"borderBottomColor\",\"borderLeftColor\",\"borderRightColor\",\"borderTopColor\"],borderImage:[\"borderImageOutset\",\"borderImageRepeat\",\"borderImageSlice\",\"borderImageSource\",\"borderImageWidth\"],borderInlineEnd:[\"borderInlineEndColor\",\"borderInlineEndStyle\",\"borderInlineEndWidth\"],borderInlineStart:[\"borderInlineStartColor\",\"borderInlineStartStyle\",\"borderInlineStartWidth\"],borderLeft:[\"borderLeftColor\",\"borderLeftStyle\",\"borderLeftWidth\"],borderRadius:[\"borderBottomLeftRadius\",\"borderBottomRightRadius\",\"borderTopLeftRadius\",\"borderTopRightRadius\"],borderRight:[\"borderRightColor\",\"borderRightStyle\",\"borderRightWidth\"],borderStyle:[\"borderBottomStyle\",\"borderLeftStyle\",\"borderRightStyle\",\"borderTopStyle\"],borderTop:[\"borderTopColor\",\"borderTopStyle\",\"borderTopWidth\"],borderWidth:[\"borderBottomWidth\",\"borderLeftWidth\",\"borderRightWidth\",\"borderTopWidth\"],columnRule:[\"columnRuleColor\",\"columnRuleStyle\",\"columnRuleWidth\"],columns:[\"columnCount\",\"columnWidth\"],flex:[\"flexBasis\",\"flexGrow\",\"flexShrink\"],flexFlow:[\"flexDirection\",\"flexWrap\"],font:[\"fontFamily\",\"fontFeatureSettings\",\"fontKerning\",\"fontLanguageOverride\",\"fontSize\",\"fontSizeAdjust\",\"fontStretch\",\"fontStyle\",\"fontVariant\",\"fontVariantAlternates\",\"fontVariantCaps\",\"fontVariantEastAsian\",\"fontVariantLigatures\",\"fontVariantNumeric\",\"fontVariantPosition\",\"fontWeight\",\"lineHeight\"],fontVariant:[\"fontVariantAlternates\",\"fontVariantCaps\",\"fontVariantEastAsian\",\"fontVariantLigatures\",\"fontVariantNumeric\",\"fontVariantPosition\"],gap:[\"columnGap\",\"rowGap\"],grid:[\"gridAutoColumns\",\"gridAutoFlow\",\"gridAutoRows\",\"gridTemplateAreas\",\"gridTemplateColumns\",\"gridTemplateRows\"],gridArea:[\"gridColumnEnd\",\"gridColumnStart\",\"gridRowEnd\",\"gridRowStart\"],gridColumn:[\"gridColumnEnd\",\"gridColumnStart\"],gridColumnGap:[\"columnGap\"],gridGap:[\"columnGap\",\"rowGap\"],gridRow:[\"gridRowEnd\",\"gridRowStart\"],gridRowGap:[\"rowGap\"],gridTemplate:[\"gridTemplateAreas\",\"gridTemplateColumns\",\"gridTemplateRows\"],listStyle:[\"listStyleImage\",\"listStylePosition\",\"listStyleType\"],margin:[\"marginBottom\",\"marginLeft\",\"marginRight\",\"marginTop\"],marker:[\"markerEnd\",\"markerMid\",\"markerStart\"],mask:[\"maskClip\",\"maskComposite\",\"maskImage\",\"maskMode\",\"maskOrigin\",\"maskPositionX\",\"maskPositionY\",\"maskRepeat\",\"maskSize\"],maskPosition:[\"maskPositionX\",\"maskPositionY\"],outline:[\"outlineColor\",\"outlineStyle\",\"outlineWidth\"],overflow:[\"overflowX\",\"overflowY\"],padding:[\"paddingBottom\",\"paddingLeft\",\"paddingRight\",\"paddingTop\"],placeContent:[\"alignContent\",\"justifyContent\"],placeItems:[\"alignItems\",\"justifyItems\"],placeSelf:[\"alignSelf\",\"justifySelf\"],textDecoration:[\"textDecorationColor\",\"textDecorationLine\",\"textDecorationStyle\"],textEmphasis:[\"textEmphasisColor\",\"textEmphasisStyle\"],transition:[\"transitionDelay\",\"transitionDuration\",\"transitionProperty\",\"transitionTimingFunction\"],wordWrap:[\"overflowWrap\"]},En={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};var Tn=[\"Webkit\",\"ms\",\"Moz\",\"O\"];function Rn(e,t,n){return null==t||\"boolean\"==typeof t||\"\"===t?\"\":n||\"number\"!=typeof t||0===t||En.hasOwnProperty(e)&&En[e]?(function(e,t){if(K(e))o(\"The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before before using it here.\",t,X(e)),G(e)}(t,e),(\"\"+t).trim()):t+\"px\"}Object.keys(En).forEach(function(e){Tn.forEach(function(t){En[function(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}(t,e)]=En[e]})});var Pn=/([A-Z])/g,Dn=/^ms-/;var Nn=/^(?:webkit|moz|o)[A-Z]/,_n=/^-ms-/,In=/-(.)/g,Ln=/;\\s*$/,zn={},Mn={},On=!1,Un=!1,Fn=function(e){zn.hasOwnProperty(e)&&zn[e]||(zn[e]=!0,o(\"Unsupported style property %s. Did you mean %s?\",e,e.replace(_n,\"ms-\").replace(In,function(e,t){return t.toUpperCase()})))},An=function(e,t){e.indexOf(\"-\")>-1?Fn(e):Nn.test(e)?function(e){zn.hasOwnProperty(e)&&zn[e]||(zn[e]=!0,o(\"Unsupported vendor-prefixed style property %s. Did you mean %s?\",e,e.charAt(0).toUpperCase()+e.slice(1)))}(e):Ln.test(t)&&function(e,t){Mn.hasOwnProperty(t)&&Mn[t]||(Mn[t]=!0,o('Style property values shouldn\\'t contain a semicolon. Try \"%s: %s\" instead.',e,t.replace(Ln,\"\")))}(e,t),\"number\"==typeof t&&(isNaN(t)?function(e,t){On||(On=!0,o(\"`NaN` is an invalid value for the `%s` css style property.\",e))}(e):isFinite(t)||function(e,t){Un||(Un=!0,o(\"`Infinity` is an invalid value for the `%s` css style property.\",e))}(e))};function Wn(e){var t=\"\",n=\"\";for(var r in e)if(e.hasOwnProperty(r)){var a=e[r];if(null!=a){var o=0===r.indexOf(\"--\");t+=n+(o?r:r.replace(Pn,\"-$1\").toLowerCase().replace(Dn,\"-ms-\"))+\":\",t+=Rn(r,a,o),n=\";\"}}return t||null}function jn(e,t){var n=e.style;for(var r in t)if(t.hasOwnProperty(r)){var a=0===r.indexOf(\"--\");a||An(r,t[r]);var o=Rn(r,t[r],a);\"float\"===r&&(r=\"cssFloat\"),a?n.setProperty(r,o):n[r]=o}}function Bn(e){var t={};for(var n in e)for(var r=Cn[n]||[n],a=0;a<r.length;a++)t[r[a]]=n;return t}var Hn=et({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}),Vn=\"__html\";function Yn(e,t){if(t){if(Hn[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw new Error(e+\" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\");if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw new Error(\"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\");if(\"object\"!=typeof t.dangerouslySetInnerHTML||!(Vn in t.dangerouslySetInnerHTML))throw new Error(\"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://reactjs.org/link/dangerously-set-inner-html for more information.\")}if(!t.suppressContentEditableWarning&&t.contentEditable&&null!=t.children&&o(\"A component is `contentEditable` and contains `children` managed by React. It is now your responsibility to guarantee that none of those nodes are unexpectedly modified or duplicated. This is probably not intentional.\"),null!=t.style&&\"object\"!=typeof t.style)throw new Error(\"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.\")}}function Qn(e,t){if(-1===e.indexOf(\"-\"))return\"string\"==typeof t.is;switch(e){case\"annotation-xml\":case\"color-profile\":case\"font-face\":case\"font-face-src\":case\"font-face-uri\":case\"font-face-format\":case\"font-face-name\":case\"missing-glyph\":return!1;default:return!0}}var qn={accept:\"accept\",acceptcharset:\"acceptCharset\",\"accept-charset\":\"acceptCharset\",accesskey:\"accessKey\",action:\"action\",allowfullscreen:\"allowFullScreen\",alt:\"alt\",as:\"as\",async:\"async\",autocapitalize:\"autoCapitalize\",autocomplete:\"autoComplete\",autocorrect:\"autoCorrect\",autofocus:\"autoFocus\",autoplay:\"autoPlay\",autosave:\"autoSave\",capture:\"capture\",cellpadding:\"cellPadding\",cellspacing:\"cellSpacing\",challenge:\"challenge\",charset:\"charSet\",checked:\"checked\",children:\"children\",cite:\"cite\",class:\"className\",classid:\"classID\",classname:\"className\",cols:\"cols\",colspan:\"colSpan\",content:\"content\",contenteditable:\"contentEditable\",contextmenu:\"contextMenu\",controls:\"controls\",controlslist:\"controlsList\",coords:\"coords\",crossorigin:\"crossOrigin\",dangerouslysetinnerhtml:\"dangerouslySetInnerHTML\",data:\"data\",datetime:\"dateTime\",default:\"default\",defaultchecked:\"defaultChecked\",defaultvalue:\"defaultValue\",defer:\"defer\",dir:\"dir\",disabled:\"disabled\",disablepictureinpicture:\"disablePictureInPicture\",disableremoteplayback:\"disableRemotePlayback\",download:\"download\",draggable:\"draggable\",enctype:\"encType\",enterkeyhint:\"enterKeyHint\",for:\"htmlFor\",form:\"form\",formmethod:\"formMethod\",formaction:\"formAction\",formenctype:\"formEncType\",formnovalidate:\"formNoValidate\",formtarget:\"formTarget\",frameborder:\"frameBorder\",headers:\"headers\",height:\"height\",hidden:\"hidden\",high:\"high\",href:\"href\",hreflang:\"hrefLang\",htmlfor:\"htmlFor\",httpequiv:\"httpEquiv\",\"http-equiv\":\"httpEquiv\",icon:\"icon\",id:\"id\",imagesizes:\"imageSizes\",imagesrcset:\"imageSrcSet\",innerhtml:\"innerHTML\",inputmode:\"inputMode\",integrity:\"integrity\",is:\"is\",itemid:\"itemID\",itemprop:\"itemProp\",itemref:\"itemRef\",itemscope:\"itemScope\",itemtype:\"itemType\",keyparams:\"keyParams\",keytype:\"keyType\",kind:\"kind\",label:\"label\",lang:\"lang\",list:\"list\",loop:\"loop\",low:\"low\",manifest:\"manifest\",marginwidth:\"marginWidth\",marginheight:\"marginHeight\",max:\"max\",maxlength:\"maxLength\",media:\"media\",mediagroup:\"mediaGroup\",method:\"method\",min:\"min\",minlength:\"minLength\",multiple:\"multiple\",muted:\"muted\",name:\"name\",nomodule:\"noModule\",nonce:\"nonce\",novalidate:\"noValidate\",open:\"open\",optimum:\"optimum\",pattern:\"pattern\",placeholder:\"placeholder\",playsinline:\"playsInline\",poster:\"poster\",preload:\"preload\",profile:\"profile\",radiogroup:\"radioGroup\",readonly:\"readOnly\",referrerpolicy:\"referrerPolicy\",rel:\"rel\",required:\"required\",reversed:\"reversed\",role:\"role\",rows:\"rows\",rowspan:\"rowSpan\",sandbox:\"sandbox\",scope:\"scope\",scoped:\"scoped\",scrolling:\"scrolling\",seamless:\"seamless\",selected:\"selected\",shape:\"shape\",size:\"size\",sizes:\"sizes\",span:\"span\",spellcheck:\"spellCheck\",src:\"src\",srcdoc:\"srcDoc\",srclang:\"srcLang\",srcset:\"srcSet\",start:\"start\",step:\"step\",style:\"style\",summary:\"summary\",tabindex:\"tabIndex\",target:\"target\",title:\"title\",type:\"type\",usemap:\"useMap\",value:\"value\",width:\"width\",wmode:\"wmode\",wrap:\"wrap\",about:\"about\",accentheight:\"accentHeight\",\"accent-height\":\"accentHeight\",accumulate:\"accumulate\",additive:\"additive\",alignmentbaseline:\"alignmentBaseline\",\"alignment-baseline\":\"alignmentBaseline\",allowreorder:\"allowReorder\",alphabetic:\"alphabetic\",amplitude:\"amplitude\",arabicform:\"arabicForm\",\"arabic-form\":\"arabicForm\",ascent:\"ascent\",attributename:\"attributeName\",attributetype:\"attributeType\",autoreverse:\"autoReverse\",azimuth:\"azimuth\",basefrequency:\"baseFrequency\",baselineshift:\"baselineShift\",\"baseline-shift\":\"baselineShift\",baseprofile:\"baseProfile\",bbox:\"bbox\",begin:\"begin\",bias:\"bias\",by:\"by\",calcmode:\"calcMode\",capheight:\"capHeight\",\"cap-height\":\"capHeight\",clip:\"clip\",clippath:\"clipPath\",\"clip-path\":\"clipPath\",clippathunits:\"clipPathUnits\",cliprule:\"clipRule\",\"clip-rule\":\"clipRule\",color:\"color\",colorinterpolation:\"colorInterpolation\",\"color-interpolation\":\"colorInterpolation\",colorinterpolationfilters:\"colorInterpolationFilters\",\"color-interpolation-filters\":\"colorInterpolationFilters\",colorprofile:\"colorProfile\",\"color-profile\":\"colorProfile\",colorrendering:\"colorRendering\",\"color-rendering\":\"colorRendering\",contentscripttype:\"contentScriptType\",contentstyletype:\"contentStyleType\",cursor:\"cursor\",cx:\"cx\",cy:\"cy\",d:\"d\",datatype:\"datatype\",decelerate:\"decelerate\",descent:\"descent\",diffuseconstant:\"diffuseConstant\",direction:\"direction\",display:\"display\",divisor:\"divisor\",dominantbaseline:\"dominantBaseline\",\"dominant-baseline\":\"dominantBaseline\",dur:\"dur\",dx:\"dx\",dy:\"dy\",edgemode:\"edgeMode\",elevation:\"elevation\",enablebackground:\"enableBackground\",\"enable-background\":\"enableBackground\",end:\"end\",exponent:\"exponent\",externalresourcesrequired:\"externalResourcesRequired\",fill:\"fill\",fillopacity:\"fillOpacity\",\"fill-opacity\":\"fillOpacity\",fillrule:\"fillRule\",\"fill-rule\":\"fillRule\",filter:\"filter\",filterres:\"filterRes\",filterunits:\"filterUnits\",floodopacity:\"floodOpacity\",\"flood-opacity\":\"floodOpacity\",floodcolor:\"floodColor\",\"flood-color\":\"floodColor\",focusable:\"focusable\",fontfamily:\"fontFamily\",\"font-family\":\"fontFamily\",fontsize:\"fontSize\",\"font-size\":\"fontSize\",fontsizeadjust:\"fontSizeAdjust\",\"font-size-adjust\":\"fontSizeAdjust\",fontstretch:\"fontStretch\",\"font-stretch\":\"fontStretch\",fontstyle:\"fontStyle\",\"font-style\":\"fontStyle\",fontvariant:\"fontVariant\",\"font-variant\":\"fontVariant\",fontweight:\"fontWeight\",\"font-weight\":\"fontWeight\",format:\"format\",from:\"from\",fx:\"fx\",fy:\"fy\",g1:\"g1\",g2:\"g2\",glyphname:\"glyphName\",\"glyph-name\":\"glyphName\",glyphorientationhorizontal:\"glyphOrientationHorizontal\",\"glyph-orientation-horizontal\":\"glyphOrientationHorizontal\",glyphorientationvertical:\"glyphOrientationVertical\",\"glyph-orientation-vertical\":\"glyphOrientationVertical\",glyphref:\"glyphRef\",gradienttransform:\"gradientTransform\",gradientunits:\"gradientUnits\",hanging:\"hanging\",horizadvx:\"horizAdvX\",\"horiz-adv-x\":\"horizAdvX\",horizoriginx:\"horizOriginX\",\"horiz-origin-x\":\"horizOriginX\",ideographic:\"ideographic\",imagerendering:\"imageRendering\",\"image-rendering\":\"imageRendering\",in2:\"in2\",in:\"in\",inlist:\"inlist\",intercept:\"intercept\",k1:\"k1\",k2:\"k2\",k3:\"k3\",k4:\"k4\",k:\"k\",kernelmatrix:\"kernelMatrix\",kernelunitlength:\"kernelUnitLength\",kerning:\"kerning\",keypoints:\"keyPoints\",keysplines:\"keySplines\",keytimes:\"keyTimes\",lengthadjust:\"lengthAdjust\",letterspacing:\"letterSpacing\",\"letter-spacing\":\"letterSpacing\",lightingcolor:\"lightingColor\",\"lighting-color\":\"lightingColor\",limitingconeangle:\"limitingConeAngle\",local:\"local\",markerend:\"markerEnd\",\"marker-end\":\"markerEnd\",markerheight:\"markerHeight\",markermid:\"markerMid\",\"marker-mid\":\"markerMid\",markerstart:\"markerStart\",\"marker-start\":\"markerStart\",markerunits:\"markerUnits\",markerwidth:\"markerWidth\",mask:\"mask\",maskcontentunits:\"maskContentUnits\",maskunits:\"maskUnits\",mathematical:\"mathematical\",mode:\"mode\",numoctaves:\"numOctaves\",offset:\"offset\",opacity:\"opacity\",operator:\"operator\",order:\"order\",orient:\"orient\",orientation:\"orientation\",origin:\"origin\",overflow:\"overflow\",overlineposition:\"overlinePosition\",\"overline-position\":\"overlinePosition\",overlinethickness:\"overlineThickness\",\"overline-thickness\":\"overlineThickness\",paintorder:\"paintOrder\",\"paint-order\":\"paintOrder\",panose1:\"panose1\",\"panose-1\":\"panose1\",pathlength:\"pathLength\",patterncontentunits:\"patternContentUnits\",patterntransform:\"patternTransform\",patternunits:\"patternUnits\",pointerevents:\"pointerEvents\",\"pointer-events\":\"pointerEvents\",points:\"points\",pointsatx:\"pointsAtX\",pointsaty:\"pointsAtY\",pointsatz:\"pointsAtZ\",prefix:\"prefix\",preservealpha:\"preserveAlpha\",preserveaspectratio:\"preserveAspectRatio\",primitiveunits:\"primitiveUnits\",property:\"property\",r:\"r\",radius:\"radius\",refx:\"refX\",refy:\"refY\",renderingintent:\"renderingIntent\",\"rendering-intent\":\"renderingIntent\",repeatcount:\"repeatCount\",repeatdur:\"repeatDur\",requiredextensions:\"requiredExtensions\",requiredfeatures:\"requiredFeatures\",resource:\"resource\",restart:\"restart\",result:\"result\",results:\"results\",rotate:\"rotate\",rx:\"rx\",ry:\"ry\",scale:\"scale\",security:\"security\",seed:\"seed\",shaperendering:\"shapeRendering\",\"shape-rendering\":\"shapeRendering\",slope:\"slope\",spacing:\"spacing\",specularconstant:\"specularConstant\",specularexponent:\"specularExponent\",speed:\"speed\",spreadmethod:\"spreadMethod\",startoffset:\"startOffset\",stddeviation:\"stdDeviation\",stemh:\"stemh\",stemv:\"stemv\",stitchtiles:\"stitchTiles\",stopcolor:\"stopColor\",\"stop-color\":\"stopColor\",stopopacity:\"stopOpacity\",\"stop-opacity\":\"stopOpacity\",strikethroughposition:\"strikethroughPosition\",\"strikethrough-position\":\"strikethroughPosition\",strikethroughthickness:\"strikethroughThickness\",\"strikethrough-thickness\":\"strikethroughThickness\",string:\"string\",stroke:\"stroke\",strokedasharray:\"strokeDasharray\",\"stroke-dasharray\":\"strokeDasharray\",strokedashoffset:\"strokeDashoffset\",\"stroke-dashoffset\":\"strokeDashoffset\",strokelinecap:\"strokeLinecap\",\"stroke-linecap\":\"strokeLinecap\",strokelinejoin:\"strokeLinejoin\",\"stroke-linejoin\":\"strokeLinejoin\",strokemiterlimit:\"strokeMiterlimit\",\"stroke-miterlimit\":\"strokeMiterlimit\",strokewidth:\"strokeWidth\",\"stroke-width\":\"strokeWidth\",strokeopacity:\"strokeOpacity\",\"stroke-opacity\":\"strokeOpacity\",suppresscontenteditablewarning:\"suppressContentEditableWarning\",suppresshydrationwarning:\"suppressHydrationWarning\",surfacescale:\"surfaceScale\",systemlanguage:\"systemLanguage\",tablevalues:\"tableValues\",targetx:\"targetX\",targety:\"targetY\",textanchor:\"textAnchor\",\"text-anchor\":\"textAnchor\",textdecoration:\"textDecoration\",\"text-decoration\":\"textDecoration\",textlength:\"textLength\",textrendering:\"textRendering\",\"text-rendering\":\"textRendering\",to:\"to\",transform:\"transform\",typeof:\"typeof\",u1:\"u1\",u2:\"u2\",underlineposition:\"underlinePosition\",\"underline-position\":\"underlinePosition\",underlinethickness:\"underlineThickness\",\"underline-thickness\":\"underlineThickness\",unicode:\"unicode\",unicodebidi:\"unicodeBidi\",\"unicode-bidi\":\"unicodeBidi\",unicoderange:\"unicodeRange\",\"unicode-range\":\"unicodeRange\",unitsperem:\"unitsPerEm\",\"units-per-em\":\"unitsPerEm\",unselectable:\"unselectable\",valphabetic:\"vAlphabetic\",\"v-alphabetic\":\"vAlphabetic\",values:\"values\",vectoreffect:\"vectorEffect\",\"vector-effect\":\"vectorEffect\",version:\"version\",vertadvy:\"vertAdvY\",\"vert-adv-y\":\"vertAdvY\",vertoriginx:\"vertOriginX\",\"vert-origin-x\":\"vertOriginX\",vertoriginy:\"vertOriginY\",\"vert-origin-y\":\"vertOriginY\",vhanging:\"vHanging\",\"v-hanging\":\"vHanging\",videographic:\"vIdeographic\",\"v-ideographic\":\"vIdeographic\",viewbox:\"viewBox\",viewtarget:\"viewTarget\",visibility:\"visibility\",vmathematical:\"vMathematical\",\"v-mathematical\":\"vMathematical\",vocab:\"vocab\",widths:\"widths\",wordspacing:\"wordSpacing\",\"word-spacing\":\"wordSpacing\",writingmode:\"writingMode\",\"writing-mode\":\"writingMode\",x1:\"x1\",x2:\"x2\",x:\"x\",xchannelselector:\"xChannelSelector\",xheight:\"xHeight\",\"x-height\":\"xHeight\",xlinkactuate:\"xlinkActuate\",\"xlink:actuate\":\"xlinkActuate\",xlinkarcrole:\"xlinkArcrole\",\"xlink:arcrole\":\"xlinkArcrole\",xlinkhref:\"xlinkHref\",\"xlink:href\":\"xlinkHref\",xlinkrole:\"xlinkRole\",\"xlink:role\":\"xlinkRole\",xlinkshow:\"xlinkShow\",\"xlink:show\":\"xlinkShow\",xlinktitle:\"xlinkTitle\",\"xlink:title\":\"xlinkTitle\",xlinktype:\"xlinkType\",\"xlink:type\":\"xlinkType\",xmlbase:\"xmlBase\",\"xml:base\":\"xmlBase\",xmllang:\"xmlLang\",\"xml:lang\":\"xmlLang\",xmlns:\"xmlns\",\"xml:space\":\"xmlSpace\",xmlnsxlink:\"xmlnsXlink\",\"xmlns:xlink\":\"xmlnsXlink\",xmlspace:\"xmlSpace\",y1:\"y1\",y2:\"y2\",y:\"y\",ychannelselector:\"yChannelSelector\",z:\"z\",zoomandpan:\"zoomAndPan\"},$n={\"aria-current\":0,\"aria-description\":0,\"aria-details\":0,\"aria-disabled\":0,\"aria-hidden\":0,\"aria-invalid\":0,\"aria-keyshortcuts\":0,\"aria-label\":0,\"aria-roledescription\":0,\"aria-autocomplete\":0,\"aria-checked\":0,\"aria-expanded\":0,\"aria-haspopup\":0,\"aria-level\":0,\"aria-modal\":0,\"aria-multiline\":0,\"aria-multiselectable\":0,\"aria-orientation\":0,\"aria-placeholder\":0,\"aria-pressed\":0,\"aria-readonly\":0,\"aria-required\":0,\"aria-selected\":0,\"aria-sort\":0,\"aria-valuemax\":0,\"aria-valuemin\":0,\"aria-valuenow\":0,\"aria-valuetext\":0,\"aria-atomic\":0,\"aria-busy\":0,\"aria-live\":0,\"aria-relevant\":0,\"aria-dropeffect\":0,\"aria-grabbed\":0,\"aria-activedescendant\":0,\"aria-colcount\":0,\"aria-colindex\":0,\"aria-colspan\":0,\"aria-controls\":0,\"aria-describedby\":0,\"aria-errormessage\":0,\"aria-flowto\":0,\"aria-labelledby\":0,\"aria-owns\":0,\"aria-posinset\":0,\"aria-rowcount\":0,\"aria-rowindex\":0,\"aria-rowspan\":0,\"aria-setsize\":0},Xn={},Kn=new RegExp(\"^(aria)-[\"+le+\"]*$\"),Gn=new RegExp(\"^(aria)[A-Z][\"+le+\"]*$\");function Jn(e,t){if($.call(Xn,t)&&Xn[t])return!0;if(Gn.test(t)){var n=\"aria-\"+t.slice(4).toLowerCase(),r=$n.hasOwnProperty(n)?n:null;if(null==r)return o(\"Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.\",t),Xn[t]=!0,!0;if(t!==r)return o(\"Invalid ARIA attribute `%s`. Did you mean `%s`?\",t,r),Xn[t]=!0,!0}if(Kn.test(t)){var a=t.toLowerCase(),i=$n.hasOwnProperty(a)?a:null;if(null==i)return Xn[t]=!0,!1;if(t!==i)return o(\"Unknown ARIA attribute `%s`. Did you mean `%s`?\",t,i),Xn[t]=!0,!0}return!0}function Zn(e,t){Qn(e,t)||function(e,t){var n=[];for(var r in t)Jn(0,r)||n.push(r);var a=n.map(function(e){return\"`\"+e+\"`\"}).join(\", \");1===n.length?o(\"Invalid aria prop %s on <%s> tag. For details, see https://reactjs.org/link/invalid-aria-props\",a,e):n.length>1&&o(\"Invalid aria props %s on <%s> tag. For details, see https://reactjs.org/link/invalid-aria-props\",a,e)}(e,t)}var er=!1;var tr,nr={},rr=/^on./,ar=/^on[^A-Z]/,or=new RegExp(\"^(aria)-[\"+le+\"]*$\"),ir=new RegExp(\"^(aria)[A-Z][\"+le+\"]*$\");tr=function(e,t,n,r){if($.call(nr,t)&&nr[t])return!0;var a=t.toLowerCase();if(\"onfocusin\"===a||\"onfocusout\"===a)return o(\"React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React.\"),nr[t]=!0,!0;if(null!=r){var i=r.registrationNameDependencies,l=r.possibleRegistrationNames;if(i.hasOwnProperty(t))return!0;var u=l.hasOwnProperty(a)?l[a]:null;if(null!=u)return o(\"Invalid event handler property `%s`. Did you mean `%s`?\",t,u),nr[t]=!0,!0;if(rr.test(t))return o(\"Unknown event handler property `%s`. It will be ignored.\",t),nr[t]=!0,!0}else if(rr.test(t))return ar.test(t)&&o(\"Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.\",t),nr[t]=!0,!0;if(or.test(t)||ir.test(t))return!0;if(\"innerhtml\"===a)return o(\"Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`.\"),nr[t]=!0,!0;if(\"aria\"===a)return o(\"The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead.\"),nr[t]=!0,!0;if(\"is\"===a&&null!==n&&void 0!==n&&\"string\"!=typeof n)return o(\"Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.\",typeof n),nr[t]=!0,!0;if(\"number\"==typeof n&&isNaN(n))return o(\"Received NaN for the `%s` attribute. If this is expected, cast the value to a string.\",t),nr[t]=!0,!0;var s=me(t),c=null!==s&&s.type===ee;if(qn.hasOwnProperty(a)){var d=qn[a];if(d!==t)return o(\"Invalid DOM property `%s`. Did you mean `%s`?\",t,d),nr[t]=!0,!0}else if(!c&&t!==a)return o(\"React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.\",t,a),nr[t]=!0,!0;return\"boolean\"==typeof n&&pe(t,n,s,!1)?(n?o('Received `%s` for a non-boolean attribute `%s`.\\n\\nIf you want to write it to the DOM, pass a string instead: %s=\"%s\" or %s={value.toString()}.',n,t,t,n,t):o('Received `%s` for a non-boolean attribute `%s`.\\n\\nIf you want to write it to the DOM, pass a string instead: %s=\"%s\" or %s={value.toString()}.\\n\\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',n,t,t,n,t,t,t),nr[t]=!0,!0):!!c||(pe(t,n,s,!1)?(nr[t]=!0,!1):\"false\"!==n&&\"true\"!==n||null===s||s.type!==ne||(o(\"Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?\",n,t,\"false\"===n?\"The browser will interpret it as a truthy value.\":'Although this works, it will not work as expected if you pass the string \"false\".',t,n),nr[t]=!0,!0))};var lr=function(e,t,n){var r=[];for(var a in t){tr(0,a,t[a],n)||r.push(a)}var i=r.map(function(e){return\"`\"+e+\"`\"}).join(\", \");1===r.length?o(\"Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://reactjs.org/link/attribute-behavior \",i,e):r.length>1&&o(\"Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://reactjs.org/link/attribute-behavior \",i,e)};var ur=1,sr=2,cr=4,dr=ur|sr|cr,fr=null;function pr(e){var t=e.target||e.srcElement||window;return t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===bn?t.parentNode:t}var hr=null,mr=null,vr=null;function gr(e){var t=id(e);if(t){if(\"function\"!=typeof hr)throw new Error(\"setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.\");var n=t.stateNode;if(n){var r=ud(n);hr(t.stateNode,t.type,r)}}}function yr(e){mr?vr?vr.push(e):vr=[e]:mr=e}function br(){if(mr){var e=mr,t=vr;if(mr=null,vr=null,gr(e),t)for(var n=0;n<t.length;n++)gr(t[n])}}var wr=function(e,t){return e(t)},kr=function(){},Sr=!1;function xr(){(null!==mr||null!==vr)&&(kr(),br())}function Cr(e,t,n){if(Sr)return e(t,n);Sr=!0;try{return wr(e,t,n)}finally{Sr=!1,xr()}}function Er(e,t){var n=e.stateNode;if(null===n)return null;var r=ud(n);if(null===r)return null;var a=r[t];if(function(e,t,n){switch(e){case\"onClick\":case\"onClickCapture\":case\"onDoubleClick\":case\"onDoubleClickCapture\":case\"onMouseDown\":case\"onMouseDownCapture\":case\"onMouseMove\":case\"onMouseMoveCapture\":case\"onMouseUp\":case\"onMouseUpCapture\":case\"onMouseEnter\":return!(!n.disabled||(r=t,\"button\"!==r&&\"input\"!==r&&\"select\"!==r&&\"textarea\"!==r));default:return!1}var r}(t,e.type,r))return null;if(a&&\"function\"!=typeof a)throw new Error(\"Expected `\"+t+\"` listener to be a function, instead got a value of `\"+typeof a+\"` type.\");return a}var Tr=!1;if(q)try{var Rr={};Object.defineProperty(Rr,\"passive\",{get:function(){Tr=!0}}),window.addEventListener(\"test\",Rr,Rr),window.removeEventListener(\"test\",Rr,Rr)}catch(e){Tr=!1}function Pr(e,t,n,r,a,o,i,l,u){var s=Array.prototype.slice.call(arguments,3);try{t.apply(n,s)}catch(e){this.onError(e)}}var Dr=Pr;if(\"undefined\"!=typeof window&&\"function\"==typeof window.dispatchEvent&&\"undefined\"!=typeof document&&\"function\"==typeof document.createEvent){var Nr=document.createElement(\"react\");Dr=function(e,t,n,r,a,o,i,l,u){if(\"undefined\"==typeof document||null===document)throw new Error(\"The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.\");var s=document.createEvent(\"Event\"),c=!1,d=!0,f=window.event,p=Object.getOwnPropertyDescriptor(window,\"event\");function h(){Nr.removeEventListener(k,g,!1),void 0!==window.event&&window.hasOwnProperty(\"event\")&&(window.event=f)}var m,v=Array.prototype.slice.call(arguments,3);function g(){c=!0,h(),t.apply(n,v),d=!1}var y=!1,b=!1;function w(e){if(m=e.error,y=!0,null===m&&0===e.colno&&0===e.lineno&&(b=!0),e.defaultPrevented&&null!=m&&\"object\"==typeof m)try{m._suppressLogging=!0}catch(e){}}var k=\"react-\"+(e||\"invokeguardedcallback\");if(window.addEventListener(\"error\",w),Nr.addEventListener(k,g,!1),s.initEvent(k,!1,!1),Nr.dispatchEvent(s),p&&Object.defineProperty(window,\"event\",p),c&&d&&(y?b&&(m=new Error(\"A cross-origin error was thrown. React doesn't have access to the actual error object in development. See https://reactjs.org/link/crossorigin-error for more information.\")):m=new Error(\"An error was thrown inside one of your components, but React doesn't know what it was. This is likely due to browser flakiness. React does its best to preserve the \\\"Pause on exceptions\\\" behavior of the DevTools, which requires some DEV-mode only tricks. It's possible that these don't work in your browser. Try triggering the error in production mode, or switching to a modern browser. If you suspect that this is actually an issue with React, please file an issue.\"),this.onError(m)),window.removeEventListener(\"error\",w),!c)return h(),Pr.apply(this,arguments)}}var _r=Dr,Ir=!1,Lr=null,zr=!1,Mr=null,Or={onError:function(e){Ir=!0,Lr=e}};function Ur(e,t,n,r,a,o,i,l,u){Ir=!1,Lr=null,_r.apply(Or,arguments)}function Fr(){if(Ir){var e=Lr;return Ir=!1,Lr=null,e}throw new Error(\"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\")}var Ar=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.Scheduler,Wr=Ar.unstable_cancelCallback,jr=Ar.unstable_now,Br=Ar.unstable_scheduleCallback,Hr=Ar.unstable_shouldYield,Vr=Ar.unstable_requestPaint,Yr=(Ar.unstable_getFirstCallbackNode,Ar.unstable_runWithPriority,Ar.unstable_next,Ar.unstable_continueExecution,Ar.unstable_pauseExecution,Ar.unstable_getCurrentPriorityLevel),Qr=Ar.unstable_ImmediatePriority,qr=Ar.unstable_UserBlockingPriority,$r=Ar.unstable_NormalPriority,Xr=Ar.unstable_LowPriority,Kr=Ar.unstable_IdlePriority,Gr=(Ar.unstable_forceFrameRate,Ar.unstable_flushAllWithoutAsserting,Ar.unstable_yieldValue),Jr=Ar.unstable_setDisableYieldValue;function Zr(e){return e._reactInternals}var ea=0,ta=1,na=2,ra=4,aa=16,oa=32,ia=64,la=128,ua=256,sa=512,ca=1024,da=2048,fa=4096,pa=8192,ha=16384,ma=da|ra|ia|sa|ca|ha,va=32767,ga=32768,ya=65536,ba=131072,wa=1048576,ka=2097152,Sa=4194304,xa=8388608,Ca=16777216,Ea=33554432,Ta=ra|ca|0,Ra=na|ra|aa|oa|sa|fa|pa,Pa=ra|ia|sa|pa,Da=da|aa,Na=Sa|xa|ka,_a=n.ReactCurrentOwner;function Ia(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{var r=t;do{((t=r).flags&(na|fa))!==ea&&(n=t.return),r=t.return}while(r)}return t.tag===c?n:null}function La(e){if(e.tag===w){var t=e.memoizedState;if(null===t){var n=e.alternate;null!==n&&(t=n.memoizedState)}if(null!==t)return t.dehydrated}return null}function za(e){return e.tag===c?e.stateNode.containerInfo:null}function Ma(e){if(Ia(e)!==e)throw new Error(\"Unable to find node on an unmounted component.\")}function Oa(e){var t=e.alternate;if(!t){var n=Ia(e);if(null===n)throw new Error(\"Unable to find node on an unmounted component.\");return n!==e?null:e}for(var r=e,a=t;;){var o=r.return;if(null===o)break;var i=o.alternate;if(null===i){var l=o.return;if(null!==l){r=a=l;continue}break}if(o.child===i.child){for(var u=o.child;u;){if(u===r)return Ma(o),e;if(u===a)return Ma(o),t;u=u.sibling}throw new Error(\"Unable to find node on an unmounted component.\")}if(r.return!==a.return)r=o,a=i;else{for(var s=!1,d=o.child;d;){if(d===r){s=!0,r=o,a=i;break}if(d===a){s=!0,a=o,r=i;break}d=d.sibling}if(!s){for(d=i.child;d;){if(d===r){s=!0,r=i,a=o;break}if(d===a){s=!0,a=i,r=o;break}d=d.sibling}if(!s)throw new Error(\"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\")}}if(r.alternate!==a)throw new Error(\"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\")}if(r.tag!==c)throw new Error(\"Unable to find node on an unmounted component.\");return r.stateNode.current===r?e:t}function Ua(e){var t=Oa(e);return null!==t?function e(t){if(t.tag===f||t.tag===p)return t;var n=t.child;for(;null!==n;){var r=e(n);if(null!==r)return r;n=n.sibling}return null}(t):null}function Fa(e){var t=Oa(e);return null!==t?function e(t){if(t.tag===f||t.tag===p)return t;var n=t.child;for(;null!==n;){if(n.tag!==d){var r=e(n);if(null!==r)return r}n=n.sibling}return null}(t):null}var Aa=Br,Wa=Wr,ja=Hr,Ba=Vr,Ha=jr,Va=Yr,Ya=Qr,Qa=qr,qa=$r,$a=Xr,Xa=Kr,Ka=Gr,Ga=Jr,Ja=null,Za=null,eo=null,to=!1,no=\"undefined\"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__;function ro(e){if(\"function\"==typeof Ka&&(Ga(e),r=e),Za&&\"function\"==typeof Za.setStrictMode)try{Za.setStrictMode(Ja,e)}catch(e){to||(to=!0,o(\"React instrumentation encountered an error: %s\",e))}}function ao(e){eo=e}function oo(){for(var e=new Map,t=1,n=0;n<To;n++){var r=ci(t);e.set(t,r),t*=2}return e}function io(){null!==eo&&\"function\"==typeof eo.markCommitStopped&&eo.markCommitStopped()}function lo(e){null!==eo&&\"function\"==typeof eo.markComponentRenderStarted&&eo.markComponentRenderStarted(e)}function uo(){null!==eo&&\"function\"==typeof eo.markComponentRenderStopped&&eo.markComponentRenderStopped()}function so(e){null!==eo&&\"function\"==typeof eo.markComponentLayoutEffectMountStarted&&eo.markComponentLayoutEffectMountStarted(e)}function co(e){null!==eo&&\"function\"==typeof eo.markComponentLayoutEffectUnmountStarted&&eo.markComponentLayoutEffectUnmountStarted(e)}function fo(){null!==eo&&\"function\"==typeof eo.markComponentLayoutEffectUnmountStopped&&eo.markComponentLayoutEffectUnmountStopped()}function po(e,t,n){null!==eo&&\"function\"==typeof eo.markComponentErrored&&eo.markComponentErrored(e,t,n)}function ho(e,t,n){null!==eo&&\"function\"==typeof eo.markComponentSuspended&&eo.markComponentSuspended(e,t,n)}function mo(e){null!==eo&&\"function\"==typeof eo.markRenderStarted&&eo.markRenderStarted(e)}function vo(){null!==eo&&\"function\"==typeof eo.markRenderStopped&&eo.markRenderStopped()}function go(e,t){null!==eo&&\"function\"==typeof eo.markStateUpdateScheduled&&eo.markStateUpdateScheduled(e,t)}var yo=0,bo=1,wo=2,ko=8,So=16,xo=Math.clz32?Math.clz32:function(e){var t=e>>>0;if(0===t)return 32;return 31-(Co(t)/Eo|0)|0},Co=Math.log,Eo=Math.LN2;var To=31,Ro=0,Po=0,Do=1,No=2,_o=4,Io=8,Lo=16,zo=32,Mo=4194240,Oo=64,Uo=128,Fo=256,Ao=512,Wo=1024,jo=2048,Bo=4096,Ho=8192,Vo=16384,Yo=32768,Qo=65536,qo=131072,$o=262144,Xo=524288,Ko=1048576,Go=2097152,Jo=130023424,Zo=4194304,ei=8388608,ti=16777216,ni=33554432,ri=67108864,ai=Zo,oi=134217728,ii=268435455,li=268435456,ui=536870912,si=1073741824;function ci(e){return e&Do?\"Sync\":e&No?\"InputContinuousHydration\":e&_o?\"InputContinuous\":e&Io?\"DefaultHydration\":e&Lo?\"Default\":e&zo?\"TransitionHydration\":e&Mo?\"Transition\":e&Jo?\"Retry\":e&oi?\"SelectiveHydration\":e&li?\"IdleHydration\":e&ui?\"Idle\":e&si?\"Offscreen\":void 0}var di=-1,fi=Oo,pi=Zo;function hi(e){switch(xi(e)){case Do:return Do;case No:return No;case _o:return _o;case Io:return Io;case Lo:return Lo;case zo:return zo;case Oo:case Uo:case Fo:case Ao:case Wo:case jo:case Bo:case Ho:case Vo:case Yo:case Qo:case qo:case $o:case Xo:case Ko:case Go:return e&Mo;case Zo:case ei:case ti:case ni:case ri:return e&Jo;case oi:return oi;case li:return li;case ui:return ui;case si:return si;default:return o(\"Should have found matching lanes. This is a bug in React.\"),e}}function mi(e,t){var n=e.pendingLanes;if(n===Ro)return Ro;var r=Ro,a=e.suspendedLanes,o=e.pingedLanes,i=nⅈif(i!==Ro){var l=i&~a;if(l!==Ro)r=hi(l);else{var u=i&o;u!==Ro&&(r=hi(u))}}else{var s=n&~a;s!==Ro?r=hi(s):o!==Ro&&(r=hi(o))}if(r===Ro)return Ro;if(t!==Ro&&t!==r&&(t&a)===Ro){var c=xi(r),d=xi(t);if(c>=d||c===Lo&&(d&Mo)!==Ro)return t}(r&_o)!==Ro&&(r|=n&Lo);var f=e.entangledLanes;if(f!==Ro)for(var p=e.entanglements,h=r&f;h>0;){var m=Ei(h),v=1<<m;r|=p[m],h&=~v}return r}function vi(e,t){switch(e){case Do:case No:case _o:return t+250;case Io:case Lo:case zo:case Oo:case Uo:case Fo:case Ao:case Wo:case jo:case Bo:case Ho:case Vo:case Yo:case Qo:case qo:case $o:case Xo:case Ko:case Go:return t+5e3;case Zo:case ei:case ti:case ni:case ri:return di;case oi:case li:case ui:case si:return di;default:return o(\"Should have found matching lanes. This is a bug in React.\"),di}}function gi(e){var t=e.pendingLanes&~si;return t!==Ro?t:t&si?si:Ro}function yi(e){return(e&ii)!==Ro}function bi(e){return(e&Jo)===e}function wi(e,t){return(t&(No|_o|Io|Lo))!==Ro}function ki(e){return(e&Mo)!==Ro}function Si(){var e=fi;return((fi<<=1)&Mo)===Ro&&(fi=Oo),e}function xi(e){return e&-e}function Ci(e){return xi(e)}function Ei(e){return 31-xo(e)}function Ti(e){return Ei(e)}function Ri(e,t){return(e&t)!==Ro}function Pi(e,t){return(e&t)===t}function Di(e,t){return e|t}function Ni(e,t){return e&~t}function _i(e,t){return e&t}function Ii(e){return e}function Li(e){for(var t=[],n=0;n<To;n++)t.push(e);return t}function zi(e,t,n){e.pendingLanes|=t,t!==ui&&(e.suspendedLanes=Ro,e.pingedLanes=Ro),e.eventTimes[Ti(t)]=n}function Mi(e,t,n){e.pingedLanes|=e.suspendedLanes&t}function Oi(e,t){for(var n=e.entangledLanes|=t,r=e.entanglements,a=n;a;){var o=Ei(a),i=1<<o;i&t|r[o]&t&&(r[o]|=t),a&=~i}}function Ui(e,t,n){if(no)for(var r=e.pendingUpdatersLaneMap;n>0;){var a=Ti(n),o=1<<a;r[a].add(t),n&=~o}}function Fi(e,t){if(no)for(var n=e.pendingUpdatersLaneMap,r=e.memoizedUpdaters;t>0;){var a=Ti(t),o=1<<a,i=n[a];i.size>0&&(i.forEach(function(e){var t=e.alternate;null!==t&&r.has(t)||r.add(e)}),i.clear()),t&=~o}}var Ai,Wi,ji,Bi,Hi,Vi=Do,Yi=_o,Qi=Lo,qi=ui,$i=Po;function Xi(){return $i}function Ki(e){$i=e}function Gi(e,t){return 0!==e&&e<t}function Ji(e){var t=xi(e);return Gi(Vi,t)?Gi(Yi,t)?yi(t)?Qi:qi:Yi:Vi}function Zi(e){return e.current.memoizedState.isDehydrated}function el(e){Ai(e)}var tl=!1,nl=[],rl=null,al=null,ol=null,il=new Map,ll=new Map,ul=[],sl=[\"mousedown\",\"mouseup\",\"touchcancel\",\"touchend\",\"touchstart\",\"auxclick\",\"dblclick\",\"pointercancel\",\"pointerdown\",\"pointerup\",\"dragend\",\"dragstart\",\"drop\",\"compositionend\",\"compositionstart\",\"keydown\",\"keypress\",\"keyup\",\"input\",\"textInput\",\"copy\",\"cut\",\"paste\",\"click\",\"change\",\"contextmenu\",\"reset\",\"submit\"];function cl(e,t){switch(e){case\"focusin\":case\"focusout\":rl=null;break;case\"dragenter\":case\"dragleave\":al=null;break;case\"mouseover\":case\"mouseout\":ol=null;break;case\"pointerover\":case\"pointerout\":var n=t.pointerId;il.delete(n);break;case\"gotpointercapture\":case\"lostpointercapture\":var r=t.pointerId;ll.delete(r)}}function dl(e,t,n,r,a,o){if(null===e||e.nativeEvent!==o){var i=function(e,t,n,r,a){return{blockedOn:e,domEventName:t,eventSystemFlags:n,nativeEvent:a,targetContainers:[r]}}(t,n,r,a,o);if(null!==t){var l=id(t);null!==l&&Wi(l)}return i}e.eventSystemFlags|=r;var u=e.targetContainers;return null!==a&&-1===u.indexOf(a)&&u.push(a),e}function fl(e){var t=od(e.target);if(null!==t){var n=Ia(t);if(null!==n){var r=n.tag;if(r===w){var a=La(n);if(null!==a)return e.blockedOn=a,void Hi(e.priority,function(){ji(n)})}else if(r===c){if(Zi(n.stateNode))return void(e.blockedOn=za(n))}}}e.blockedOn=null}function pl(e){if(null!==e.blockedOn)return!1;for(var t,n=e.targetContainers;n.length>0;){var r=n[0],a=El(e.domEventName,e.eventSystemFlags,r,e.nativeEvent);if(null!==a){var i=id(a);return null!==i&&Wi(i),e.blockedOn=a,!1}var l=e.nativeEvent,u=new l.constructor(l.type,l);t=u,null!==fr&&o(\"Expected currently replaying event to be null. This error is likely caused by a bug in React. Please file an issue.\"),fr=t,l.target.dispatchEvent(u),null===fr&&o(\"Expected currently replaying event to not be null. This error is likely caused by a bug in React. Please file an issue.\"),fr=null,n.shift()}return!0}function hl(e,t,n){pl(e)&&n.delete(t)}function ml(){tl=!1,null!==rl&&pl(rl)&&(rl=null),null!==al&&pl(al)&&(al=null),null!==ol&&pl(ol)&&(ol=null),il.forEach(hl),ll.forEach(hl)}function vl(e,t){e.blockedOn===t&&(e.blockedOn=null,tl||(tl=!0,Br($r,ml)))}function gl(e){if(nl.length>0){vl(nl[0],e);for(var t=1;t<nl.length;t++){var n=nl[t];n.blockedOn===e&&(n.blockedOn=null)}}null!==rl&&vl(rl,e),null!==al&&vl(al,e),null!==ol&&vl(ol,e);var r=function(t){return vl(t,e)};il.forEach(r),ll.forEach(r);for(var a=0;a<ul.length;a++){var o=ul[a];o.blockedOn===e&&(o.blockedOn=null)}for(;ul.length>0;){var i=ul[0];if(null!==i.blockedOn)break;fl(i),null===i.blockedOn&&ul.shift()}}var yl=n.ReactCurrentBatchConfig,bl=!0;function wl(e){bl=!!e}function kl(e,t,n,r){var a=Xi(),o=yl.transition;yl.transition=null;try{Ki(Vi),xl(e,t,n,r)}finally{Ki(a),yl.transition=o}}function Sl(e,t,n,r){var a=Xi(),o=yl.transition;yl.transition=null;try{Ki(Yi),xl(e,t,n,r)}finally{Ki(a),yl.transition=o}}function xl(e,t,n,r){bl&&function(e,t,n,r){var a=El(e,t,n,r);if(null===a)return Ns(e,t,r,Cl,n),void cl(e,r);if(function(e,t,n,r,a){switch(t){case\"focusin\":return rl=dl(rl,e,t,n,r,a),!0;case\"dragenter\":return al=dl(al,e,t,n,r,a),!0;case\"mouseover\":return ol=dl(ol,e,t,n,r,a),!0;case\"pointerover\":var o=a,i=o.pointerId;return il.set(i,dl(il.get(i)||null,e,t,n,r,o)),!0;case\"gotpointercapture\":var l=a,u=l.pointerId;return ll.set(u,dl(ll.get(u)||null,e,t,n,r,l)),!0}return!1}(a,e,t,n,r))return void r.stopPropagation();if(cl(e,r),t&cr&&(l=e,sl.indexOf(l)>-1)){for(;null!==a;){var o=id(a);null!==o&&el(o);var i=El(e,t,n,r);if(null===i&&Ns(e,t,r,Cl,n),i===a)break;a=i}return void(null!==a&&r.stopPropagation())}var l;Ns(e,t,r,null,n)}(e,t,n,r)}var Cl=null;function El(e,t,n,r){Cl=null;var a=od(pr(r));if(null!==a){var o=Ia(a);if(null===o)a=null;else{var i=o.tag;if(i===w){var l=La(o);if(null!==l)return l;a=null}else if(i===c){if(Zi(o.stateNode))return za(o);a=null}else o!==a&&(a=null)}}return Cl=a,null}function Tl(e){switch(e){case\"cancel\":case\"click\":case\"close\":case\"contextmenu\":case\"copy\":case\"cut\":case\"auxclick\":case\"dblclick\":case\"dragend\":case\"dragstart\":case\"drop\":case\"focusin\":case\"focusout\":case\"input\":case\"invalid\":case\"keydown\":case\"keypress\":case\"keyup\":case\"mousedown\":case\"mouseup\":case\"paste\":case\"pause\":case\"play\":case\"pointercancel\":case\"pointerdown\":case\"pointerup\":case\"ratechange\":case\"reset\":case\"resize\":case\"seeked\":case\"submit\":case\"touchcancel\":case\"touchend\":case\"touchstart\":case\"volumechange\":case\"change\":case\"selectionchange\":case\"textInput\":case\"compositionstart\":case\"compositionend\":case\"compositionupdate\":case\"beforeblur\":case\"afterblur\":case\"beforeinput\":case\"blur\":case\"fullscreenchange\":case\"focus\":case\"hashchange\":case\"popstate\":case\"select\":case\"selectstart\":return Vi;case\"drag\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"mousemove\":case\"mouseout\":case\"mouseover\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"scroll\":case\"toggle\":case\"touchmove\":case\"wheel\":case\"mouseenter\":case\"mouseleave\":case\"pointerenter\":case\"pointerleave\":return Yi;case\"message\":switch(Va()){case Ya:return Vi;case Qa:return Yi;case qa:case $a:return Qi;case Xa:return qi;default:return Qi}default:return Qi}}var Rl=null,Pl=null,Dl=null;function Nl(){if(Dl)return Dl;var e,t,n=Pl,r=n.length,a=_l(),o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);var l=t>1?1-t:void 0;return Dl=a.slice(e,l)}function _l(){return\"value\"in Rl?Rl.value:Rl.textContent}function Il(e){var t,n=e.keyCode;return\"charCode\"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,10===t&&(t=13),t>=32||13===t?t:0}function Ll(){return!0}function zl(){return!1}function Ml(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)if(e.hasOwnProperty(i)){var l=e[i];this[i]=l?l(a):a[i]}var u=null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue;return this.isDefaultPrevented=u?Ll:zl,this.isPropagationStopped=zl,this}return et(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():\"unknown\"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=Ll)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():\"unknown\"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=Ll)},persist:function(){},isPersistent:Ll}),t}var Ol,Ul,Fl,Al={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Wl=Ml(Al),jl=et({},Al,{view:0,detail:0}),Bl=Ml(jl);var Hl=et({},jl,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:tu,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return\"movementX\"in e?e.movementX:(function(e){e!==Fl&&(Fl&&\"mousemove\"===e.type?(Ol=e.screenX-Fl.screenX,Ul=e.screenY-Fl.screenY):(Ol=0,Ul=0),Fl=e)}(e),Ol)},movementY:function(e){return\"movementY\"in e?e.movementY:Ul}}),Vl=Ml(Hl),Yl=Ml(et({},Hl,{dataTransfer:0})),Ql=Ml(et({},jl,{relatedTarget:0})),ql=Ml(et({},Al,{animationName:0,elapsedTime:0,pseudoElement:0})),$l=Ml(et({},Al,{clipboardData:function(e){return\"clipboardData\"in e?e.clipboardData:window.clipboardData}})),Xl=Ml(et({},Al,{data:0})),Kl=Xl,Gl={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Jl={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"};var Zl={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function eu(e){var t=this.nativeEvent;if(t.getModifierState)return t.getModifierState(e);var n=Zl[e];return!!n&&!!t[n]}function tu(e){return eu}var nu=Ml(et({},jl,{key:function(e){if(e.key){var t=Gl[e.key]||e.key;if(\"Unidentified\"!==t)return t}if(\"keypress\"===e.type){var n=Il(e);return 13===n?\"Enter\":String.fromCharCode(n)}return\"keydown\"===e.type||\"keyup\"===e.type?Jl[e.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:tu,charCode:function(e){return\"keypress\"===e.type?Il(e):0},keyCode:function(e){return\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0},which:function(e){return\"keypress\"===e.type?Il(e):\"keydown\"===e.type||\"keyup\"===e.type?e.keyCode:0}})),ru=Ml(et({},Hl,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),au=Ml(et({},jl,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:tu})),ou=Ml(et({},Al,{propertyName:0,elapsedTime:0,pseudoElement:0})),iu=Ml(et({},Hl,{deltaX:function(e){return\"deltaX\"in e?e.deltaX:\"wheelDeltaX\"in e?-e.wheelDeltaX:0},deltaY:function(e){return\"deltaY\"in e?e.deltaY:\"wheelDeltaY\"in e?-e.wheelDeltaY:\"wheelDelta\"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),lu=[9,13,27,32],uu=229,su=q&&\"CompositionEvent\"in window,cu=null;q&&\"documentMode\"in document&&(cu=document.documentMode);var du=q&&\"TextEvent\"in window&&!cu,fu=q&&(!su||cu&&cu>8&&cu<=11),pu=32,hu=String.fromCharCode(pu);var mu=!1;function vu(e,t){switch(e){case\"keyup\":return-1!==lu.indexOf(t.keyCode);case\"keydown\":return t.keyCode!==uu;case\"keypress\":case\"mousedown\":case\"focusout\":return!0;default:return!1}}function gu(e){var t=e.detail;return\"object\"==typeof t&&\"data\"in t?t.data:null}function yu(e){return\"ko\"===e.locale}var bu=!1;function wu(e,t,n,r,a){var o,i;if(su?o=function(e){switch(e){case\"compositionstart\":return\"onCompositionStart\";case\"compositionend\":return\"onCompositionEnd\";case\"compositionupdate\":return\"onCompositionUpdate\"}}(t):bu?vu(t,r)&&(o=\"onCompositionEnd\"):function(e,t){return\"keydown\"===e&&t.keyCode===uu}(t,r)&&(o=\"onCompositionStart\"),!o)return null;fu&&!yu(r)&&(bu||\"onCompositionStart\"!==o?\"onCompositionEnd\"===o&&bu&&(i=Nl()):bu=function(e){return Rl=e,Pl=_l(),!0}(a));var l=Is(n,o);if(l.length>0){var u=new Xl(o,t,null,r,a);if(e.push({event:u,listeners:l}),i)u.data=i;else{var s=gu(r);null!==s&&(u.data=s)}}}function ku(e,t){if(bu){if(\"compositionend\"===e||!su&&vu(e,t)){var n=Nl();return Rl=null,Pl=null,Dl=null,bu=!1,n}return null}switch(e){case\"paste\":return null;case\"keypress\":if(!function(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}(t)){if(t.char&&t.char.length>1)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case\"compositionend\":return fu&&!yu(t)?null:t.data;default:return null}}function Su(e,t,n,r,a){var o;if(!(o=du?function(e,t){switch(e){case\"compositionend\":return gu(t);case\"keypress\":return t.which!==pu?null:(mu=!0,hu);case\"textInput\":var n=t.data;return n===hu&&mu?null:n;default:return null}}(t,r):ku(t,r)))return null;var i=Is(n,\"onBeforeInput\");if(i.length>0){var l=new Kl(\"onBeforeInput\",\"beforeinput\",null,r,a);e.push({event:l,listeners:i}),l.data=o}}var xu={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Cu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return\"input\"===t?!!xu[e.type]:\"textarea\"===t}function Eu(e,t,n,r){yr(r);var a=Is(t,\"onChange\");if(a.length>0){var o=new Wl(\"onChange\",\"change\",null,n,r);e.push({event:o,listeners:a})}}var Tu=null,Ru=null;function Pu(e){xs(e,0)}function Du(e){if(It(ld(e)))return e}function Nu(e,t){if(\"change\"===e)return t}var _u=!1;function Iu(){Tu&&(Tu.detachEvent(\"onpropertychange\",Lu),Tu=null,Ru=null)}function Lu(e){\"value\"===e.propertyName&&Du(Ru)&&function(e){var t=[];Eu(t,Ru,e,pr(e)),Cr(Pu,t)}(e)}function zu(e,t,n){\"focusin\"===e?(Iu(),function(e,t){Ru=t,(Tu=e).attachEvent(\"onpropertychange\",Lu)}(t,n)):\"focusout\"===e&&Iu()}function Mu(e,t){if(\"selectionchange\"===e||\"keyup\"===e||\"keydown\"===e)return Du(Ru)}function Ou(e,t){if(\"click\"===e)return Du(t)}function Uu(e,t){if(\"input\"===e||\"change\"===e)return Du(t)}function Fu(e,t,n,r,a,o,i){var l,u,s,c,d,f,p=n?ld(n):window;if(\"select\"===(c=(s=p).nodeName&&s.nodeName.toLowerCase())||\"input\"===c&&\"file\"===s.type?l=Nu:Cu(p)?_u?l=Uu:(l=Mu,u=zu):function(e){var t=e.nodeName;return t&&\"input\"===t.toLowerCase()&&(\"checkbox\"===e.type||\"radio\"===e.type)}(p)&&(l=Ou),l){var h=l(t,n);if(h)return void Eu(e,h,r,a)}u&&u(t,p,n),\"focusout\"===t&&(f=(d=p)._wrapperState)&&f.controlled&&\"number\"===d.type&&Yt(d,\"number\",d.value)}function Au(e,t,n,r,a,o,i){var l=\"mouseover\"===t||\"pointerover\"===t,u=\"mouseout\"===t||\"pointerout\"===t;if(l&&r!==fr){var s=r.relatedTarget||r.fromElement;if(s&&(od(s)||ad(s)))return}if(u||l){var c,d,h;if(a.window===a)c=a;else{var m=a.ownerDocument;c=m?m.defaultView||m.parentWindow:window}if(u){var v=r.relatedTarget||r.toElement;if(d=n,null!==(h=v?od(v):null))(h!==Ia(h)||h.tag!==f&&h.tag!==p)&&(h=null)}else d=null,h=n;if(d!==h){var g=Vl,y=\"onMouseLeave\",b=\"onMouseEnter\",w=\"mouse\";\"pointerout\"!==t&&\"pointerover\"!==t||(g=ru,y=\"onPointerLeave\",b=\"onPointerEnter\",w=\"pointer\");var k=null==d?c:ld(d),S=null==h?c:ld(h),x=new g(y,w+\"leave\",d,r,a);x.target=k,x.relatedTarget=S;var C=null;if(od(a)===n){var E=new g(b,w+\"enter\",h,r,a);E.target=S,E.relatedTarget=k,C=E}!function(e,t,n,r,a){var o=r&&a?function(e,t){for(var n=e,r=t,a=0,o=n;o;o=Ls(o))a++;for(var i=0,l=r;l;l=Ls(l))i++;for(;a-i>0;)n=Ls(n),a--;for(;i-a>0;)r=Ls(r),i--;var u=a;for(;u--;){if(n===r||null!==r&&n===r.alternate)return n;n=Ls(n),r=Ls(r)}return null}(r,a):null;null!==r&&zs(e,t,r,o,!1);null!==a&&null!==n&&zs(e,n,a,o,!0)}(e,x,C,d,h)}}}q&&(_u=function(e){if(!q)return!1;var t=\"on\"+e,n=t in document;if(!n){var r=document.createElement(\"div\");r.setAttribute(t,\"return;\"),n=\"function\"==typeof r[t]}return n}(\"input\")&&(!document.documentMode||document.documentMode>9));var Wu=\"function\"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function ju(e,t){if(Wu(e,t))return!0;if(\"object\"!=typeof e||null===e||\"object\"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var a=0;a<n.length;a++){var o=n[a];if(!$.call(t,o)||!Wu(e[o],t[o]))return!1}return!0}function Bu(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Hu(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}function Vu(e,t){for(var n=Bu(e),r=0,a=0;n;){if(n.nodeType===bn){if(a=r+n.textContent.length,r<=t&&a>=t)return{node:n,offset:t-r};r=a}n=Bu(Hu(n))}}function Yu(e){var t=e.ownerDocument,n=t&&t.defaultView||window,r=n.getSelection&&n.getSelection();if(!r||0===r.rangeCount)return null;var a=r.anchorNode,o=r.anchorOffset,i=r.focusNode,l=r.focusOffset;try{a.nodeType,i.nodeType}catch(e){return null}return function(e,t,n,r,a){var o=0,i=-1,l=-1,u=0,s=0,c=e,d=null;e:for(;;){for(var f=null;c!==t||0!==n&&c.nodeType!==bn||(i=o+n),c!==r||0!==a&&c.nodeType!==bn||(l=o+a),c.nodeType===bn&&(o+=c.nodeValue.length),null!==(f=c.firstChild);)d=c,c=f;for(;;){if(c===e)break e;if(d===t&&++u===n&&(i=o),d===r&&++s===a&&(l=o),null!==(f=c.nextSibling))break;d=(c=d).parentNode}c=f}if(-1===i||-1===l)return null;return{start:i,end:l}}(e,a,o,i,l)}function Qu(e){return e&&e.nodeType===bn}function qu(e){return e&&e.ownerDocument&&function e(t,n){return!(!t||!n)&&(t===n||!Qu(t)&&(Qu(n)?e(t,n.parentNode):\"contains\"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}(e.ownerDocument.documentElement,e)}function $u(e){try{return\"string\"==typeof e.contentWindow.location.href}catch(e){return!1}}function Xu(){for(var e=window,t=Lt();t instanceof e.HTMLIFrameElement;){if(!$u(t))return t;t=Lt((e=t.contentWindow).document)}return t}function Ku(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(\"input\"===t&&(\"text\"===e.type||\"search\"===e.type||\"tel\"===e.type||\"url\"===e.type||\"password\"===e.type)||\"textarea\"===t||\"true\"===e.contentEditable)}function Gu(){var e=Xu();return{focusedElem:e,selectionRange:Ku(e)?function(e){var t;t=\"selectionStart\"in e?{start:e.selectionStart,end:e.selectionEnd}:Yu(e);return t||{start:0,end:0}}(e):null}}function Ju(e){var t=Xu(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&qu(n)){null!==r&&Ku(n)&&function(e,t){var n=t.start,r=t.end;void 0===r&&(r=n);\"selectionStart\"in e?(e.selectionStart=n,e.selectionEnd=Math.min(r,e.value.length)):function(e,t){var n=e.ownerDocument||document,r=n&&n.defaultView||window;if(r.getSelection){var a=r.getSelection(),o=e.textContent.length,i=Math.min(t.start,o),l=void 0===t.end?i:Math.min(t.end,o);if(!a.extend&&i>l){var u=l;l=i,i=u}var s=Vu(e,i),c=Vu(e,l);if(s&&c){if(1===a.rangeCount&&a.anchorNode===s.node&&a.anchorOffset===s.offset&&a.focusNode===c.node&&a.focusOffset===c.offset)return;var d=n.createRange();d.setStart(s.node,s.offset),a.removeAllRanges(),i>l?(a.addRange(d),a.extend(c.node,c.offset)):(d.setEnd(c.node,c.offset),a.addRange(d))}}}(e,t)}(n,r);for(var a=[],o=n;o=o.parentNode;)o.nodeType===yn&&a.push({element:o,left:o.scrollLeft,top:o.scrollTop});\"function\"==typeof n.focus&&n.focus();for(var i=0;i<a.length;i++){var l=a[i];l.element.scrollLeft=l.left,l.element.scrollTop=l.top}}}var Zu=q&&\"documentMode\"in document&&document.documentMode<=11;var es=null,ts=null,ns=null,rs=!1;function as(e,t,n){var r,a=(r=n).window===r?r.document:r.nodeType===kn?r:r.ownerDocument;if(!rs&&null!=es&&es===Lt(a)){var o=function(e){if(\"selectionStart\"in e&&Ku(e))return{start:e.selectionStart,end:e.selectionEnd};var t=(e.ownerDocument&&e.ownerDocument.defaultView||window).getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}(es);if(!ns||!ju(ns,o)){ns=o;var i=Is(ts,\"onSelect\");if(i.length>0){var l=new Wl(\"onSelect\",\"select\",null,t,n);e.push({event:l,listeners:i}),l.target=es}}}}function os(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[\"Webkit\"+e]=\"webkit\"+t,n[\"Moz\"+e]=\"moz\"+t,n}var is={animationend:os(\"Animation\",\"AnimationEnd\"),animationiteration:os(\"Animation\",\"AnimationIteration\"),animationstart:os(\"Animation\",\"AnimationStart\"),transitionend:os(\"Transition\",\"TransitionEnd\")},ls={},us={};function ss(e){if(ls[e])return ls[e];if(!is[e])return e;var t=is[e];for(var n in t)if(t.hasOwnProperty(n)&&n in us)return ls[e]=t[n];return e}q&&(us=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete is.animationend.animation,delete is.animationiteration.animation,delete is.animationstart.animation),\"TransitionEvent\"in window||delete is.transitionend.transition);var cs=ss(\"animationend\"),ds=ss(\"animationiteration\"),fs=ss(\"animationstart\"),ps=ss(\"transitionend\"),hs=new Map,ms=[\"abort\",\"auxClick\",\"cancel\",\"canPlay\",\"canPlayThrough\",\"click\",\"close\",\"contextMenu\",\"copy\",\"cut\",\"drag\",\"dragEnd\",\"dragEnter\",\"dragExit\",\"dragLeave\",\"dragOver\",\"dragStart\",\"drop\",\"durationChange\",\"emptied\",\"encrypted\",\"ended\",\"error\",\"gotPointerCapture\",\"input\",\"invalid\",\"keyDown\",\"keyPress\",\"keyUp\",\"load\",\"loadedData\",\"loadedMetadata\",\"loadStart\",\"lostPointerCapture\",\"mouseDown\",\"mouseMove\",\"mouseOut\",\"mouseOver\",\"mouseUp\",\"paste\",\"pause\",\"play\",\"playing\",\"pointerCancel\",\"pointerDown\",\"pointerMove\",\"pointerOut\",\"pointerOver\",\"pointerUp\",\"progress\",\"rateChange\",\"reset\",\"resize\",\"seeked\",\"seeking\",\"stalled\",\"submit\",\"suspend\",\"timeUpdate\",\"touchCancel\",\"touchEnd\",\"touchStart\",\"volumeChange\",\"scroll\",\"toggle\",\"touchMove\",\"waiting\",\"wheel\"];function vs(e,t){hs.set(e,t),Y(t,[e])}function gs(e,t,n,r,a,o,i){var l=hs.get(t);if(void 0!==l){var u=Wl,s=t;switch(t){case\"keypress\":if(0===Il(r))return;case\"keydown\":case\"keyup\":u=nu;break;case\"focusin\":s=\"focus\",u=Ql;break;case\"focusout\":s=\"blur\",u=Ql;break;case\"beforeblur\":case\"afterblur\":u=Ql;break;case\"click\":if(2===r.button)return;case\"auxclick\":case\"dblclick\":case\"mousedown\":case\"mousemove\":case\"mouseup\":case\"mouseout\":case\"mouseover\":case\"contextmenu\":u=Vl;break;case\"drag\":case\"dragend\":case\"dragenter\":case\"dragexit\":case\"dragleave\":case\"dragover\":case\"dragstart\":case\"drop\":u=Yl;break;case\"touchcancel\":case\"touchend\":case\"touchmove\":case\"touchstart\":u=au;break;case cs:case ds:case fs:u=ql;break;case ps:u=ou;break;case\"scroll\":u=Bl;break;case\"wheel\":u=iu;break;case\"copy\":case\"cut\":case\"paste\":u=$l;break;case\"gotpointercapture\":case\"lostpointercapture\":case\"pointercancel\":case\"pointerdown\":case\"pointermove\":case\"pointerout\":case\"pointerover\":case\"pointerup\":u=ru}var c=0!=(o&cr),d=!c&&\"scroll\"===t,p=function(e,t,n,r,a,o){var i=r?null!==t?t+\"Capture\":null:t,l=[],u=e,s=null;for(;null!==u;){var c=u,d=c.stateNode,p=c.tag;if(p===f&&null!==d&&(s=d,null!==i)){var h=Er(u,i);null!=h&&l.push(_s(u,h,s))}if(a)break;u=u.return}return l}(n,l,r.type,c,d);if(p.length>0){var h=new u(l,s,null,r,a);e.push({event:h,listeners:p})}}}function ys(e,t,n,r,a,o,i){gs(e,t,n,r,a,o),0==(o&dr)&&(Au(e,t,n,r,a),Fu(e,t,n,r,a),function(e,t,n,r,a,o,i){var l=n?ld(n):window;switch(t){case\"focusin\":(Cu(l)||\"true\"===l.contentEditable)&&(es=l,ts=n,ns=null);break;case\"focusout\":es=null,ts=null,ns=null;break;case\"mousedown\":rs=!0;break;case\"contextmenu\":case\"mouseup\":case\"dragend\":rs=!1,as(e,r,a);break;case\"selectionchange\":if(Zu)break;case\"keydown\":case\"keyup\":as(e,r,a)}}(e,t,n,r,a),function(e,t,n,r,a,o,i){wu(e,t,n,r,a),Su(e,t,n,r,a)}(e,t,n,r,a))}!function(){for(var e=0;e<ms.length;e++){var t=ms[e];vs(t.toLowerCase(),\"on\"+(t[0].toUpperCase()+t.slice(1)))}vs(cs,\"onAnimationEnd\"),vs(ds,\"onAnimationIteration\"),vs(fs,\"onAnimationStart\"),vs(\"dblclick\",\"onDoubleClick\"),vs(\"focusin\",\"onFocus\"),vs(\"focusout\",\"onBlur\"),vs(ps,\"onTransitionEnd\")}(),Q(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]),Q(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]),Q(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]),Q(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]),Y(\"onChange\",[\"change\",\"click\",\"focusin\",\"focusout\",\"input\",\"keydown\",\"keyup\",\"selectionchange\"]),Y(\"onSelect\",[\"focusout\",\"contextmenu\",\"dragend\",\"focusin\",\"keydown\",\"keyup\",\"mousedown\",\"mouseup\",\"selectionchange\"]),Y(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]),Y(\"onCompositionEnd\",[\"compositionend\",\"focusout\",\"keydown\",\"keypress\",\"keyup\",\"mousedown\"]),Y(\"onCompositionStart\",[\"compositionstart\",\"focusout\",\"keydown\",\"keypress\",\"keyup\",\"mousedown\"]),Y(\"onCompositionUpdate\",[\"compositionupdate\",\"focusout\",\"keydown\",\"keypress\",\"keyup\",\"mousedown\"]);var bs=[\"abort\",\"canplay\",\"canplaythrough\",\"durationchange\",\"emptied\",\"encrypted\",\"ended\",\"error\",\"loadeddata\",\"loadedmetadata\",\"loadstart\",\"pause\",\"play\",\"playing\",\"progress\",\"ratechange\",\"resize\",\"seeked\",\"seeking\",\"stalled\",\"suspend\",\"timeupdate\",\"volumechange\",\"waiting\"],ws=new Set([\"cancel\",\"close\",\"invalid\",\"load\",\"scroll\",\"toggle\"].concat(bs));function ks(e,t,n){var r=e.type||\"unknown-event\";e.currentTarget=n,function(e,t,n,r,a,o,i,l,u){if(Ur.apply(this,arguments),Ir){var s=Fr();zr||(zr=!0,Mr=s)}}(r,t,void 0,e),e.currentTarget=null}function Ss(e,t,n){var r;if(n)for(var a=t.length-1;a>=0;a--){var o=t[a],i=o.instance,l=o.currentTarget,u=o.listener;if(i!==r&&e.isPropagationStopped())return;ks(e,u,l),r=i}else for(var s=0;s<t.length;s++){var c=t[s],d=c.instance,f=c.currentTarget,p=c.listener;if(d!==r&&e.isPropagationStopped())return;ks(e,p,f),r=d}}function xs(e,t){for(var n=0!=(t&cr),r=0;r<e.length;r++){var a=e[r];Ss(a.event,a.listeners,n)}!function(){if(zr){var e=Mr;throw zr=!1,Mr=null,e}}()}function Cs(e,t){ws.has(e)||o('Did not expect a listenToNonDelegatedEvent() call for \"%s\". This is a bug in React. Please file an issue.',e);var n=function(e){var t=e[Jc];void 0===t&&(t=e[Jc]=new Set);return t}(t),r=function(e,t){return e+\"__\"+(t?\"capture\":\"bubble\")}(e,!1);n.has(r)||(Ps(t,e,sr,!1),n.add(r))}function Es(e,t,n){ws.has(e)&&!t&&o('Did not expect a listenToNativeEvent() call for \"%s\" in the bubble phase. This is a bug in React. Please file an issue.',e);var r=0;t&&(r|=cr),Ps(n,e,r,t)}var Ts=\"_reactListening\"+Math.random().toString(36).slice(2);function Rs(e){if(!e[Ts]){e[Ts]=!0,B.forEach(function(t){\"selectionchange\"!==t&&(ws.has(t)||Es(t,!1,e),Es(t,!0,e))});var t=e.nodeType===kn?e:e.ownerDocument;null!==t&&(t[Ts]||(t[Ts]=!0,Es(\"selectionchange\",!1,t)))}}function Ps(e,t,n,r,a){var o=function(e,t,n){var r;switch(Tl(t)){case Vi:r=kl;break;case Yi:r=Sl;break;case Qi:default:r=xl}return r.bind(null,t,n,e)}(e,t,n),i=void 0;Tr&&(\"touchstart\"!==t&&\"touchmove\"!==t&&\"wheel\"!==t||(i=!0)),e=e,r?void 0!==i?function(e,t,n,r){e.addEventListener(t,n,{capture:!0,passive:r})}(e,t,o,i):function(e,t,n){e.addEventListener(t,n,!0)}(e,t,o):void 0!==i?function(e,t,n,r){e.addEventListener(t,n,{passive:r})}(e,t,o,i):function(e,t,n){e.addEventListener(t,n,!1)}(e,t,o)}function Ds(e,t){return e===t||e.nodeType===wn&&e.parentNode===t}function Ns(e,t,n,r,a){var o=r;if(0==(t&ur)&&0==(t&sr)){var i=a;if(null!==r){var l=r;e:for(;;){if(null===l)return;var u=l.tag;if(u===c||u===d){var s=l.stateNode.containerInfo;if(Ds(s,i))break;if(u===d)for(var h=l.return;null!==h;){var m=h.tag;if(m===c||m===d)if(Ds(h.stateNode.containerInfo,i))return;h=h.return}for(;null!==s;){var v=od(s);if(null===v)return;var g=v.tag;if(g===f||g===p){l=o=v;continue e}s=s.parentNode}}l=l.return}}}Cr(function(){return function(e,t,n,r,a){var o=[];ys(o,e,r,n,pr(n),t),xs(o,t)}(e,t,n,o)})}function _s(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Is(e,t){for(var n=t+\"Capture\",r=[],a=e;null!==a;){var o=a,i=o.stateNode;if(o.tag===f&&null!==i){var l=i,u=Er(a,n);null!=u&&r.unshift(_s(a,u,l));var s=Er(a,t);null!=s&&r.push(_s(a,s,l))}a=a.return}return r}function Ls(e){if(null===e)return null;do{e=e.return}while(e&&e.tag!==f);return e||null}function zs(e,t,n,r,a){for(var o=t._reactName,i=[],l=n;null!==l&&l!==r;){var u=l,s=u.alternate,c=u.stateNode,d=u.tag;if(null!==s&&s===r)break;if(d===f&&null!==c){var p=c;if(a){var h=Er(l,o);null!=h&&i.unshift(_s(l,h,p))}else if(!a){var m=Er(l,o);null!=m&&i.push(_s(l,m,p))}}l=l.return}0!==i.length&&e.push({event:t,listeners:i})}var Ms,Os,Us,Fs,As,Ws,js,Bs=!1,Hs=\"dangerouslySetInnerHTML\",Vs=\"suppressContentEditableWarning\",Ys=\"suppressHydrationWarning\",Qs=\"autoFocus\",qs=\"children\",$s=\"style\",Xs=\"__html\";Ms={dialog:!0,webview:!0},Os=function(e,t){Zn(e,t),function(e,t){\"input\"!==e&&\"textarea\"!==e&&\"select\"!==e||null==t||null!==t.value||er||(er=!0,\"select\"===e&&t.multiple?o(\"`value` prop on `%s` should not be null. Consider using an empty array when `multiple` is set to `true` to clear the component or `undefined` for uncontrolled components.\",e):o(\"`value` prop on `%s` should not be null. Consider using an empty string to clear the component or `undefined` for uncontrolled components.\",e))}(e,t),function(e,t,n){Qn(e,t)||lr(e,t,n)}(e,t,{registrationNameDependencies:H,possibleRegistrationNames:V})},Ws=q&&!document.documentMode,Us=function(e,t,n){if(!Bs){var r=Js(n),a=Js(t);a!==r&&(Bs=!0,o(\"Prop `%s` did not match. Server: %s Client: %s\",e,JSON.stringify(a),JSON.stringify(r)))}},Fs=function(e){if(!Bs){Bs=!0;var t=[];e.forEach(function(e){t.push(e)}),o(\"Extra attributes from the server: %s\",t)}},As=function(e,t){!1===t?o(\"Expected `%s` listener to be a function, instead got `false`.\\n\\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.\",e,e,e):o(\"Expected `%s` listener to be a function, instead got a value of `%s` type.\",e,typeof t)},js=function(e,t){var n=e.namespaceURI===cn?e.ownerDocument.createElement(e.tagName):e.ownerDocument.createElementNS(e.namespaceURI,e.tagName);return n.innerHTML=t,n.innerHTML};var Ks=/\\r\\n?/g,Gs=/\\u0000|\\uFFFD/g;function Js(e){return function(e){if(K(e))o(\"The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before before using it here.\",X(e)),G(e)}(e),(\"string\"==typeof e?e:\"\"+e).replace(Ks,\"\\n\").replace(Gs,\"\")}function Zs(e,t,n,r){var a=Js(t),i=Js(e);if(i!==a&&(r&&(Bs||(Bs=!0,o('Text content did not match. Server: \"%s\" Client: \"%s\"',i,a))),n&&I))throw new Error(\"Text content does not match server-rendered HTML.\")}function ec(e){return e.nodeType===kn?e:e.ownerDocument}function tc(){}function nc(e){e.onclick=tc}function rc(e,t,n,r){var a,o=Qn(t,n);switch(Os(t,n),t){case\"dialog\":Cs(\"cancel\",e),Cs(\"close\",e),a=n;break;case\"iframe\":case\"object\":case\"embed\":Cs(\"load\",e),a=n;break;case\"video\":case\"audio\":for(var i=0;i<bs.length;i++)Cs(bs[i],e);a=n;break;case\"source\":Cs(\"error\",e),a=n;break;case\"img\":case\"image\":case\"link\":Cs(\"error\",e),Cs(\"load\",e),a=n;break;case\"details\":Cs(\"toggle\",e),a=n;break;case\"input\":Wt(e,n),a=At(e,n),Cs(\"invalid\",e);break;case\"option\":Xt(0,n),a=n;break;case\"select\":rn(e,n),a=nn(0,n),Cs(\"invalid\",e);break;case\"textarea\":ln(e,n),a=on(e,n),Cs(\"invalid\",e);break;default:a=n}switch(Yn(t,a),function(e,t,n,r,a){for(var o in r)if(r.hasOwnProperty(o)){var i=r[o];if(o===$s)i&&Object.freeze(i),jn(t,i);else if(o===Hs){var l=i?i[Xs]:void 0;null!=l&&gn(t,l)}else o===qs?\"string\"==typeof i?(\"textarea\"!==e||\"\"!==i)&&xn(t,i):\"number\"==typeof i&&xn(t,\"\"+i):o===Vs||o===Ys||o===Qs||(H.hasOwnProperty(o)?null!=i&&(\"function\"!=typeof i&&As(o,i),\"onScroll\"===o&&Cs(\"scroll\",t)):null!=i&&Ee(t,o,i,a))}}(t,e,0,a,o),t){case\"input\":_t(e),Ht(e,n,!1);break;case\"textarea\":_t(e),sn(e);break;case\"option\":!function(e,t){null!=t.value&&e.setAttribute(\"value\",Et(Tt(t.value)))}(e,n);break;case\"select\":!function(e,t){var n=e;n.multiple=!!t.multiple;var r=t.value;null!=r?tn(n,!!t.multiple,r,!1):null!=t.defaultValue&&tn(n,!!t.multiple,t.defaultValue,!0)}(e,n);break;default:\"function\"==typeof a.onClick&&nc(e)}}function ac(e,t,n,r,a){Os(t,r);var i,l,u,s,c=null;switch(t){case\"input\":i=At(e,n),l=At(e,r),c=[];break;case\"select\":i=nn(0,n),l=nn(0,r),c=[];break;case\"textarea\":i=on(e,n),l=on(e,r),c=[];break;default:l=r,\"function\"!=typeof(i=n).onClick&&\"function\"==typeof l.onClick&&nc(e)}Yn(t,l);var d=null;for(u in i)if(!l.hasOwnProperty(u)&&i.hasOwnProperty(u)&&null!=i[u])if(u===$s){var f=i[u];for(s in f)f.hasOwnProperty(s)&&(d||(d={}),d[s]=\"\")}else u===Hs||u===qs||u===Vs||u===Ys||u===Qs||(H.hasOwnProperty(u)?c||(c=[]):(c=c||[]).push(u,null));for(u in l){var p=l[u],h=null!=i?i[u]:void 0;if(l.hasOwnProperty(u)&&p!==h&&(null!=p||null!=h))if(u===$s)if(p&&Object.freeze(p),h){for(s in h)!h.hasOwnProperty(s)||p&&p.hasOwnProperty(s)||(d||(d={}),d[s]=\"\");for(s in p)p.hasOwnProperty(s)&&h[s]!==p[s]&&(d||(d={}),d[s]=p[s])}else d||(c||(c=[]),c.push(u,d)),d=p;else if(u===Hs){var m=p?p[Xs]:void 0,v=h?h[Xs]:void 0;null!=m&&v!==m&&(c=c||[]).push(u,m)}else u===qs?\"string\"!=typeof p&&\"number\"!=typeof p||(c=c||[]).push(u,\"\"+p):u===Vs||u===Ys||(H.hasOwnProperty(u)?(null!=p&&(\"function\"!=typeof p&&As(u,p),\"onScroll\"===u&&Cs(\"scroll\",e)),c||h===p||(c=[])):(c=c||[]).push(u,p))}return d&&(!function(e,t){if(t){var n,r=Bn(e),a=Bn(t),i={};for(var l in r){var u=r[l],s=a[l];if(s&&u!==s){var c=u+\",\"+s;if(i[c])continue;i[c]=!0,o(\"%s a style property during rerender (%s) when a conflicting property is set (%s) can lead to styling bugs. To avoid this, don't mix shorthand and non-shorthand properties for the same value; instead, replace the shorthand with separate values.\",null==(n=e[u])||\"boolean\"==typeof n||\"\"===n?\"Removing\":\"Updating\",u,s)}}}}(d,l[$s]),(c=c||[]).push($s,d)),c}function oc(e,t,n,r,a){\"input\"===n&&\"radio\"===a.type&&null!=a.name&&jt(e,a);Qn(n,r);switch(function(e,t,n,r){for(var a=0;a<t.length;a+=2){var o=t[a],i=t[a+1];o===$s?jn(e,i):o===Hs?gn(e,i):o===qs?xn(e,i):Ee(e,o,i,r)}}(e,t,0,Qn(n,a)),n){case\"input\":Bt(e,a);break;case\"textarea\":un(e,a);break;case\"select\":!function(e,t){var n=e,r=n._wrapperState.wasMultiple;n._wrapperState.wasMultiple=!!t.multiple;var a=t.value;null!=a?tn(n,!!t.multiple,a,!1):r!==!!t.multiple&&(null!=t.defaultValue?tn(n,!!t.multiple,t.defaultValue,!0):tn(n,!!t.multiple,t.multiple?[]:\"\",!1))}(e,a)}}function ic(e,t){Bs||(Bs=!0,o(\"Did not expect server HTML to contain a <%s> in <%s>.\",t.nodeName.toLowerCase(),e.nodeName.toLowerCase()))}function lc(e,t){Bs||(Bs=!0,o('Did not expect server HTML to contain the text node \"%s\" in <%s>.',t.nodeValue,e.nodeName.toLowerCase()))}function uc(e,t,n){Bs||(Bs=!0,o(\"Expected server HTML to contain a matching <%s> in <%s>.\",t,e.nodeName.toLowerCase()))}function sc(e,t){\"\"!==t&&(Bs||(Bs=!0,o('Expected server HTML to contain a matching text node for \"%s\" in <%s>.',t,e.nodeName.toLowerCase())))}var cc=function(){},dc=function(){},fc=[\"address\",\"applet\",\"area\",\"article\",\"aside\",\"base\",\"basefont\",\"bgsound\",\"blockquote\",\"body\",\"br\",\"button\",\"caption\",\"center\",\"col\",\"colgroup\",\"dd\",\"details\",\"dir\",\"div\",\"dl\",\"dt\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"frame\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"iframe\",\"img\",\"input\",\"isindex\",\"li\",\"link\",\"listing\",\"main\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"nav\",\"noembed\",\"noframes\",\"noscript\",\"object\",\"ol\",\"p\",\"param\",\"plaintext\",\"pre\",\"script\",\"section\",\"select\",\"source\",\"style\",\"summary\",\"table\",\"tbody\",\"td\",\"template\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"title\",\"tr\",\"track\",\"ul\",\"wbr\",\"xmp\"],pc=[\"applet\",\"caption\",\"html\",\"table\",\"td\",\"th\",\"marquee\",\"object\",\"template\",\"foreignObject\",\"desc\",\"title\"],hc=pc.concat([\"button\"]),mc=[\"dd\",\"dt\",\"li\",\"option\",\"optgroup\",\"p\",\"rp\",\"rt\"],vc={current:null,formTag:null,aTagInScope:null,buttonTagInScope:null,nobrTagInScope:null,pTagInButtonScope:null,listItemTagAutoclosing:null,dlItemTagAutoclosing:null};dc=function(e,t){var n=et({},e||vc),r={tag:t};return-1!==pc.indexOf(t)&&(n.aTagInScope=null,n.buttonTagInScope=null,n.nobrTagInScope=null),-1!==hc.indexOf(t)&&(n.pTagInButtonScope=null),-1!==fc.indexOf(t)&&\"address\"!==t&&\"div\"!==t&&\"p\"!==t&&(n.listItemTagAutoclosing=null,n.dlItemTagAutoclosing=null),n.current=r,\"form\"===t&&(n.formTag=r),\"a\"===t&&(n.aTagInScope=r),\"button\"===t&&(n.buttonTagInScope=r),\"nobr\"===t&&(n.nobrTagInScope=r),\"p\"===t&&(n.pTagInButtonScope=r),\"li\"===t&&(n.listItemTagAutoclosing=r),\"dd\"!==t&&\"dt\"!==t||(n.dlItemTagAutoclosing=r),n};var gc={};cc=function(e,t,n){var r=(n=n||vc).current,a=r&&r.tag;null!=t&&(null!=e&&o(\"validateDOMNesting: when childText is passed, childTag should be null\"),e=\"#text\");var i=function(e,t){switch(t){case\"select\":return\"option\"===e||\"optgroup\"===e||\"#text\"===e;case\"optgroup\":return\"option\"===e||\"#text\"===e;case\"option\":return\"#text\"===e;case\"tr\":return\"th\"===e||\"td\"===e||\"style\"===e||\"script\"===e||\"template\"===e;case\"tbody\":case\"thead\":case\"tfoot\":return\"tr\"===e||\"style\"===e||\"script\"===e||\"template\"===e;case\"colgroup\":return\"col\"===e||\"template\"===e;case\"table\":return\"caption\"===e||\"colgroup\"===e||\"tbody\"===e||\"tfoot\"===e||\"thead\"===e||\"style\"===e||\"script\"===e||\"template\"===e;case\"head\":return\"base\"===e||\"basefont\"===e||\"bgsound\"===e||\"link\"===e||\"meta\"===e||\"title\"===e||\"noscript\"===e||\"noframes\"===e||\"style\"===e||\"script\"===e||\"template\"===e;case\"html\":return\"head\"===e||\"body\"===e||\"frameset\"===e;case\"frameset\":return\"frame\"===e;case\"#document\":return\"html\"===e}switch(e){case\"h1\":case\"h2\":case\"h3\":case\"h4\":case\"h5\":case\"h6\":return\"h1\"!==t&&\"h2\"!==t&&\"h3\"!==t&&\"h4\"!==t&&\"h5\"!==t&&\"h6\"!==t;case\"rp\":case\"rt\":return-1===mc.indexOf(t);case\"body\":case\"caption\":case\"col\":case\"colgroup\":case\"frameset\":case\"frame\":case\"head\":case\"html\":case\"tbody\":case\"td\":case\"tfoot\":case\"th\":case\"thead\":case\"tr\":return null==t}return!0}(e,a)?null:r,l=i?null:function(e,t){switch(e){case\"address\":case\"article\":case\"aside\":case\"blockquote\":case\"center\":case\"details\":case\"dialog\":case\"dir\":case\"div\":case\"dl\":case\"fieldset\":case\"figcaption\":case\"figure\":case\"footer\":case\"header\":case\"hgroup\":case\"main\":case\"menu\":case\"nav\":case\"ol\":case\"p\":case\"section\":case\"summary\":case\"ul\":case\"pre\":case\"listing\":case\"table\":case\"hr\":case\"xmp\":case\"h1\":case\"h2\":case\"h3\":case\"h4\":case\"h5\":case\"h6\":return t.pTagInButtonScope;case\"form\":return t.formTag||t.pTagInButtonScope;case\"li\":return t.listItemTagAutoclosing;case\"dd\":case\"dt\":return t.dlItemTagAutoclosing;case\"button\":return t.buttonTagInScope;case\"a\":return t.aTagInScope;case\"nobr\":return t.nobrTagInScope}return null}(e,n),u=i||l;if(u){var s=u.tag,c=!!i+\"|\"+e+\"|\"+s;if(!gc[c]){gc[c]=!0;var d=e,f=\"\";if(\"#text\"===e?/\\S/.test(t)?d=\"Text nodes\":(d=\"Whitespace text nodes\",f=\" Make sure you don't have any extra whitespace between tags on each line of your source code.\"):d=\"<\"+e+\">\",i){var p=\"\";\"table\"===s&&\"tr\"===e&&(p+=\" Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by the browser.\"),o(\"validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s\",d,s,f,p)}else o(\"validateDOMNesting(...): %s cannot appear as a descendant of <%s>.\",d,s)}}};var yc=\"suppressHydrationWarning\",bc=\"$\",wc=\"/$\",kc=\"$?\",Sc=\"$!\",xc=\"style\",Cc=null,Ec=null;function Tc(e){return e}function Rc(e){Cc=bl,Ec=Gu();return wl(!1),null}function Pc(e,t,n,r,a){var i=r;if(cc(e,null,i.ancestorInfo),\"string\"==typeof t.children||\"number\"==typeof t.children){var l=\"\"+t.children,u=dc(i.ancestorInfo,e);cc(null,l,u)}var s=function(e,t,n,r){var a,i,l=ec(n),u=r;if(u===cn&&(u=pn(e)),u===cn){if((a=Qn(e,t))||e===e.toLowerCase()||o(\"<%s /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.\",e),\"script\"===e){var s=l.createElement(\"div\");s.innerHTML=\"<script><\\/script>\";var c=s.firstChild;i=s.removeChild(c)}else if(\"string\"==typeof t.is)i=l.createElement(e,{is:t.is});else if(i=l.createElement(e),\"select\"===e){var d=i;t.multiple?d.multiple=!0:t.size&&(d.size=t.size)}}else i=l.createElementNS(u,e);return u===cn&&(a||\"[object HTMLUnknownElement]\"!==Object.prototype.toString.call(i)||$.call(Ms,e)||(Ms[e]=!0,o(\"The tag <%s> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.\",e))),i}(e,t,n,i.namespace);return td(a,s),sd(s,t),s}function Dc(e,t){return\"textarea\"===e||\"noscript\"===e||\"string\"==typeof t.children||\"number\"==typeof t.children||\"object\"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}function Nc(e,t,n,r){cc(null,e,n.ancestorInfo);var a=function(e,t){return ec(t).createTextNode(e)}(e,t);return td(r,a),a}var _c=\"function\"==typeof setTimeout?setTimeout:void 0,Ic=\"function\"==typeof clearTimeout?clearTimeout:void 0,Lc=-1,zc=\"function\"==typeof Promise?Promise:void 0,Mc=\"function\"==typeof queueMicrotask?queueMicrotask:void 0!==zc?function(e){return zc.resolve(null).then(e).catch(Oc)}:_c;function Oc(e){setTimeout(function(){throw e})}function Uc(e){xn(e,\"\")}function Fc(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&a.nodeType===wn){var o=a.data;if(o===wc){if(0===r)return e.removeChild(a),void gl(t);r--}else o!==bc&&o!==kc&&o!==Sc||r++}n=a}while(n);gl(t)}function Ac(e){var t=(e=e).style;\"function\"==typeof t.setProperty?t.setProperty(\"display\",\"none\",\"important\"):t.display=\"none\"}function Wc(e,t){e=e;var n=t[xc],r=void 0!==n&&null!==n&&n.hasOwnProperty(\"display\")?n.display:null;e.style.display=Rn(\"display\",r)}function jc(e,t){e.nodeValue=t}function Bc(e){return e.data===kc}function Hc(e){return e.data===Sc}function Vc(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(t===yn||t===bn)break;if(t===wn){var n=e.data;if(n===bc||n===Sc||n===kc)break;if(n===wc)return null}}return e}function Yc(e){return Vc(e.nextSibling)}function Qc(e,t,n,r,a,o,i){return td(o,e),sd(e,n),function(e,t,n,r,a,o,i){var l,u;switch(l=Qn(t,n),Os(t,n),t){case\"dialog\":Cs(\"cancel\",e),Cs(\"close\",e);break;case\"iframe\":case\"object\":case\"embed\":Cs(\"load\",e);break;case\"video\":case\"audio\":for(var s=0;s<bs.length;s++)Cs(bs[s],e);break;case\"source\":Cs(\"error\",e);break;case\"img\":case\"image\":case\"link\":Cs(\"error\",e),Cs(\"load\",e);break;case\"details\":Cs(\"toggle\",e);break;case\"input\":Wt(e,n),Cs(\"invalid\",e);break;case\"option\":Xt(0,n);break;case\"select\":rn(e,n),Cs(\"invalid\",e);break;case\"textarea\":ln(e,n),Cs(\"invalid\",e)}Yn(t,n),u=new Set;for(var c=e.attributes,d=0;d<c.length;d++)switch(c[d].name.toLowerCase()){case\"value\":case\"checked\":case\"selected\":break;default:u.add(c[d].name)}var f,p=null;for(var h in n)if(n.hasOwnProperty(h)){var m=n[h];if(h===qs)\"string\"==typeof m?e.textContent!==m&&(!0!==n[Ys]&&Zs(e.textContent,m,o,i),p=[qs,m]):\"number\"==typeof m&&e.textContent!==\"\"+m&&(!0!==n[Ys]&&Zs(e.textContent,m,o,i),p=[qs,\"\"+m]);else if(H.hasOwnProperty(h))null!=m&&(\"function\"!=typeof m&&As(h,m),\"onScroll\"===h&&Cs(\"scroll\",e));else if(i&&\"boolean\"==typeof l){var v=void 0,g=l&&U?null:me(h);if(!0===n[Ys]);else if(h===Vs||h===Ys||\"value\"===h||\"checked\"===h||\"selected\"===h);else if(h===Hs){var y=e.innerHTML,b=m?m[Xs]:void 0;if(null!=b){var w=js(e,b);w!==y&&Us(h,y,w)}}else if(h===$s){if(u.delete(h),Ws){var k=Wn(m);k!==(v=e.getAttribute(\"style\"))&&Us(h,v,k)}}else if(l&&!U)u.delete(h.toLowerCase()),m!==(v=Ce(e,h,m))&&Us(h,v,m);else if(!fe(h,g,l)&&!he(h,m,g,l)){var S=!1;if(null!==g)u.delete(g.attributeName),v=xe(e,h,m,g);else{var x=r;if(x===cn&&(x=pn(t)),x===cn)u.delete(h.toLowerCase());else{var C=(f=h.toLowerCase(),qn.hasOwnProperty(f)&&qn[f]||null);null!==C&&C!==h&&(S=!0,u.delete(C)),u.delete(h)}v=Ce(e,h,m)}U||m===v||S||Us(h,v,m)}}}switch(i&&u.size>0&&!0!==n[Ys]&&Fs(u),t){case\"input\":_t(e),Ht(e,n,!0);break;case\"textarea\":_t(e),sn(e);break;case\"select\":case\"option\":break;default:\"function\"==typeof n.onClick&&nc(e)}return p}(e,t,n,a.namespace,0,(o.mode&bo)!==yo,i)}function qc(e){for(var t=e.previousSibling,n=0;t;){if(t.nodeType===wn){var r=t.data;if(r===bc||r===Sc||r===kc){if(0===n)return t;n--}else r===wc&&n++}t=t.previousSibling}return null}var $c=Math.random().toString(36).slice(2),Xc=\"__reactFiber$\"+$c,Kc=\"__reactProps$\"+$c,Gc=\"__reactContainer$\"+$c,Jc=\"__reactEvents$\"+$c,Zc=\"__reactListeners$\"+$c,ed=\"__reactHandles$\"+$c;function td(e,t){t[Xc]=e}function nd(e,t){t[Gc]=e}function rd(e){e[Gc]=null}function ad(e){return!!e[Gc]}function od(e){var t=e[Xc];if(t)return t;for(var n=e.parentNode;n;){if(t=n[Gc]||n[Xc]){var r=t.alternate;if(null!==t.child||null!==r&&null!==r.child)for(var a=qc(e);null!==a;){var o=a[Xc];if(o)return o;a=qc(a)}return t}n=(e=n).parentNode}return null}function id(e){var t=e[Xc]||e[Gc];return t&&(t.tag===f||t.tag===p||t.tag===w||t.tag===c)?t:null}function ld(e){if(e.tag===f||e.tag===p)return e.stateNode;throw new Error(\"getNodeFromInstance: Invalid argument.\")}function ud(e){return e[Kc]||null}function sd(e,t){e[Kc]=t}var cd={},dd=n.ReactDebugCurrentFrame;function fd(e){if(e){var t=e._owner,n=function e(t,n,r){if(null==t)return\"\";if(\"function\"==typeof t)return st(t,!(!(a=t.prototype)||!a.isReactComponent));var a;if(\"string\"==typeof t)return ot(t);switch(t){case ze:return ot(\"Suspense\");case Me:return ot(\"SuspenseList\")}if(\"object\"==typeof t)switch(t.$$typeof){case Le:return ct(t.render);case Oe:return e(t.type,n,r);case Ue:var o=t,i=o._payload,l=o._init;try{return e(l(i),n,r)}catch(e){}}return\"\"}(e.type,e._source,t?t.type:null);dd.setExtraStackFrame(n)}else dd.setExtraStackFrame(null)}function pd(e,t,n,r,a){var i=Function.call.bind($);for(var l in e)if(i(e,l)){var u=void 0;try{if(\"function\"!=typeof e[l]){var s=Error((r||\"React class\")+\": \"+n+\" type `\"+l+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[l]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw s.name=\"Invariant Violation\",s}u=e[l](t,l,r,n,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(e){u=e}!u||u instanceof Error||(fd(a),o(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",r||\"React class\",n,l,typeof u),fd(null)),u instanceof Error&&!(u.message in cd)&&(cd[u.message]=!0,fd(a),o(\"Failed %s type: %s\",n,u.message),fd(null))}}var hd,md=[];hd=[];var vd,gd=-1;function yd(e){return{current:e}}function bd(e,t){gd<0?o(\"Unexpected pop.\"):(t!==hd[gd]&&o(\"Unexpected Fiber popped.\"),e.current=md[gd],md[gd]=null,hd[gd]=null,gd--)}function wd(e,t,n){md[++gd]=e.current,hd[gd]=n,e.current=t}vd={};var kd={};Object.freeze(kd);var Sd=yd(kd),xd=yd(!1),Cd=kd;function Ed(e,t,n){return n&&Dd(t)?Cd:Sd.current}function Td(e,t,n){var r=e.stateNode;r.__reactInternalMemoizedUnmaskedChildContext=t,r.__reactInternalMemoizedMaskedChildContext=n}function Rd(e,t){var n=e.type.contextTypes;if(!n)return kd;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a={};for(var o in n)a[o]=t[o];return pd(n,a,\"context\",vt(e)||\"Unknown\"),r&&Td(e,t,a),a}function Pd(){return xd.current}function Dd(e){var t=e.childContextTypes;return null!==t&&void 0!==t}function Nd(e){bd(xd,e),bd(Sd,e)}function _d(e){bd(xd,e),bd(Sd,e)}function Id(e,t,n){if(Sd.current!==kd)throw new Error(\"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\");wd(Sd,t,e),wd(xd,n,e)}function Ld(e,t,n){var r=e.stateNode,a=t.childContextTypes;if(\"function\"!=typeof r.getChildContext){var i=vt(e)||\"Unknown\";return vd[i]||(vd[i]=!0,o(\"%s.childContextTypes is specified but there is no getChildContext() method on the instance. You can either define getChildContext() on %s or remove childContextTypes from it.\",i,i)),n}var l=r.getChildContext();for(var u in l)if(!(u in a))throw new Error((vt(e)||\"Unknown\")+'.getChildContext(): key \"'+u+'\" is not defined in childContextTypes.');return pd(a,l,\"child context\",vt(e)||\"Unknown\"),et({},n,l)}function zd(e){var t=e.stateNode,n=t&&t.__reactInternalMemoizedMergedChildContext||kd;return Cd=Sd.current,wd(Sd,n,e),wd(xd,xd.current,e),!0}function Md(e,t,n){var r=e.stateNode;if(!r)throw new Error(\"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\");if(n){var a=Ld(e,t,Cd);r.__reactInternalMemoizedMergedChildContext=a,bd(xd,e),bd(Sd,e),wd(Sd,a,e),wd(xd,n,e)}else bd(xd,e),wd(xd,n,e)}function Od(e){if(!function(e){return Ia(e)===e}(e)||e.tag!==u)throw new Error(\"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\");var t=e;do{switch(t.tag){case c:return t.stateNode.context;case u:if(Dd(t.type))return t.stateNode.__reactInternalMemoizedMergedChildContext}t=t.return}while(null!==t);throw new Error(\"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\")}var Ud=0,Fd=1,Ad=null,Wd=!1,jd=!1;function Bd(e){null===Ad?Ad=[e]:Ad.push(e)}function Hd(){Wd&&Vd()}function Vd(){if(!jd&&null!==Ad){jd=!0;var e=0,t=Xi();try{var n=Ad;for(Ki(Vi);e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Ad=null,Wd=!1}catch(t){throw null!==Ad&&(Ad=Ad.slice(e+1)),Aa(Ya,Vd),t}finally{Ki(t),jd=!1}}return null}var Yd=[],Qd=0,qd=null,$d=0,Xd=[],Kd=0,Gd=null,Jd=1,Zd=\"\";function ef(){var e=Zd;return(Jd&~function(e){return 1<<af(e)-1}(Jd)).toString(32)+e}function tf(e,t){lf(),Yd[Qd++]=$d,Yd[Qd++]=qd,qd=e,$d=t}function nf(e,t,n){lf(),Xd[Kd++]=Jd,Xd[Kd++]=Zd,Xd[Kd++]=Gd,Gd=e;var r=Jd,a=Zd,o=af(r)-1,i=r&~(1<<o),l=n+1,u=af(t)+o;if(u>30){var s=o-o%5,c=(i&(1<<s)-1).toString(32),d=i>>s,f=o-s,p=af(t)+f;Jd=1<<p|(l<<f|d),Zd=c+a}else{Jd=1<<u|(l<<o|i),Zd=a}}function rf(e){if(lf(),null!==e.return){tf(e,1),nf(e,1,0)}}function af(e){return 32-xo(e)}function of(e){for(;e===qd;)qd=Yd[--Qd],Yd[Qd]=null,$d=Yd[--Qd],Yd[Qd]=null;for(;e===Gd;)Gd=Xd[--Kd],Xd[Kd]=null,Zd=Xd[--Kd],Xd[Kd]=null,Jd=Xd[--Kd],Xd[Kd]=null}function lf(){Lf()||o(\"Expected to be hydrating. This is a bug in React. Please file an issue.\")}var uf=null,sf=null,cf=!1,df=!1,ff=null;function pf(){cf&&o(\"We should not be hydrating here. This is a bug in React. Please file a bug.\")}function hf(){df=!0}function mf(e){var t=e.stateNode.containerInfo;return sf=Vc(t.firstChild),uf=e,cf=!0,ff=null,df=!1,!0}function vf(e,t,n){var r,a;return sf=Vc(t.nextSibling),uf=e,cf=!0,ff=null,df=!1,null!==n&&(r=e,a=n,lf(),Xd[Kd++]=Jd,Xd[Kd++]=Zd,Xd[Kd++]=Gd,Jd=a.id,Zd=a.overflow,Gd=r),!0}function gf(e,t){switch(e.tag){case c:!function(e,t){t.nodeType===yn?ic(e,t):t.nodeType===wn||lc(e,t)}(e.stateNode.containerInfo,t);break;case f:var n=(e.mode&bo)!==yo;!function(e,t,n,r,a){(a||!0!==t[yc])&&(r.nodeType===yn?ic(n,r):r.nodeType===wn||lc(n,r))}(e.type,e.memoizedProps,e.stateNode,t,n);break;case w:var r=e.memoizedState;null!==r.dehydrated&&function(e,t){var n=e.parentNode;null!==n&&(t.nodeType===yn?ic(n,t):t.nodeType===wn||lc(n,t))}(r.dehydrated,t)}}function yf(e,t){gf(e,t);var n,r=((n=uk(f,null,null,yo)).elementType=\"DELETED\",n);r.stateNode=t,r.return=e;var a=e.deletions;null===a?(e.deletions=[r],e.flags|=aa):a.push(r)}function bf(e,t){if(!df)switch(e.tag){case c:var n=e.stateNode.containerInfo;switch(t.tag){case f:var r=t.type;t.pendingProps;!function(e,t,n){uc(e,t)}(n,r);break;case p:!function(e,t){sc(e,t)}(n,t.pendingProps)}break;case f:e.type;var a=e.memoizedProps,o=e.stateNode;switch(t.tag){case f:var i=t.type;t.pendingProps;!function(e,t,n,r,a,o){(o||!0!==t[yc])&&uc(n,r)}(0,a,o,i,0,(e.mode&bo)!==yo);break;case p:!function(e,t,n,r,a){(a||!0!==t[yc])&&sc(n,r)}(0,a,o,t.pendingProps,(e.mode&bo)!==yo)}break;case w:var l=e.memoizedState.dehydrated;if(null!==l)switch(t.tag){case f:var u=t.type;t.pendingProps;!function(e,t,n){var r=e.parentNode;null!==r&&uc(r,t)}(l,u);break;case p:!function(e,t){var n=e.parentNode;null!==n&&sc(n,t)}(l,t.pendingProps)}break;default:return}}function wf(e,t){t.flags=t.flags&~fa|na,bf(e,t)}function kf(e,t){switch(e.tag){case f:var n=e.type,r=(e.pendingProps,function(e,t,n){return e.nodeType!==yn||t.toLowerCase()!==e.nodeName.toLowerCase()?null:e}(t,n));return null!==r&&(e.stateNode=r,uf=e,sf=Vc(r.firstChild),!0);case p:var a=function(e,t){return\"\"===t||e.nodeType!==bn?null:e}(t,e.pendingProps);return null!==a&&(e.stateNode=a,uf=e,sf=null,!0);case w:var o=function(e){return e.nodeType!==wn?null:e}(t);if(null!==o){var i={dehydrated:o,treeContext:(lf(),null!==Gd?{id:Jd,overflow:Zd}:null),retryLane:si};e.memoizedState=i;var l=function(e){var t=uk(E,null,null,yo);return t.stateNode=e,t}(o);return l.return=e,e.child=l,uf=e,sf=null,!0}return!1;default:return!1}}function Sf(e){return(e.mode&bo)!==yo&&(e.flags&la)===ea}function xf(e){throw new Error(\"Hydration failed because the initial UI does not match what was rendered on the server.\")}function Cf(e){if(cf){var t=sf;if(!t)return Sf(e)&&(bf(uf,e),xf()),wf(uf,e),cf=!1,void(uf=e);var n=t;if(!kf(e,t)){Sf(e)&&(bf(uf,e),xf()),t=Yc(n);var r=uf;if(!t||!kf(e,t))return wf(uf,e),cf=!1,void(uf=e);yf(r,n)}}}function Ef(e){var t=e.stateNode,n=e.memoizedProps,r=function(e,t,n,r){return td(n,e),n.mode,function(e,t,n){return e.nodeValue!==t}(e,t)}(t,n,e);if(r){var a=uf;if(null!==a)switch(a.tag){case c:a.stateNode.containerInfo;!function(e,t,n,r){Zs(t.nodeValue,n,r,!0)}(0,t,n,(a.mode&bo)!==yo);break;case f:a.type;var o=a.memoizedProps;a.stateNode;!function(e,t,n,r,a,o){!0!==t[yc]&&Zs(r.nodeValue,a,o,!0)}(0,o,0,t,n,(a.mode&bo)!==yo)}}return r}function Tf(e){var t=e.memoizedState,n=null!==t?t.dehydrated:null;if(!n)throw new Error(\"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\");!function(e,t){td(t,e)}(n,e)}function Rf(e){var t=e.memoizedState,n=null!==t?t.dehydrated:null;if(!n)throw new Error(\"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\");return function(e){for(var t=e.nextSibling,n=0;t;){if(t.nodeType===wn){var r=t.data;if(r===wc){if(0===n)return Yc(t);n--}else r!==bc&&r!==Sc&&r!==kc||n++}t=t.nextSibling}return null}(n)}function Pf(e){for(var t=e.return;null!==t&&t.tag!==f&&t.tag!==c&&t.tag!==w;)t=t.return;uf=t}function Df(e){if(e!==uf)return!1;if(!cf)return Pf(e),cf=!0,!1;if(e.tag!==c&&(e.tag!==f||\"head\"!==(n=e.type)&&\"body\"!==n&&!Dc(e.type,e.memoizedProps))){var t=sf;if(t)if(Sf(e))Nf(e),xf();else for(;t;)yf(e,t),t=Yc(t)}var n;return Pf(e),sf=e.tag===w?Rf(e):uf?Yc(e.stateNode):null,!0}function Nf(e){for(var t=sf;t;)gf(e,t),t=Yc(t)}function _f(){uf=null,sf=null,cf=!1,df=!1}function If(){null!==ff&&(cw(ff),ff=null)}function Lf(){return cf}function zf(e){null===ff?ff=[e]:ff.push(e)}var Mf=n.ReactCurrentBatchConfig,Of=null;var Uf={recordUnsafeLifecycleWarnings:function(e,t){},flushPendingUnsafeLifecycleWarnings:function(){},recordLegacyContextWarning:function(e,t){},flushLegacyContextWarning:function(){},discardPendingWarnings:function(){}},Ff=function(e){var t=[];return e.forEach(function(e){t.push(e)}),t.sort().join(\", \")},Af=[],Wf=[],jf=[],Bf=[],Hf=[],Vf=[],Yf=new Set;Uf.recordUnsafeLifecycleWarnings=function(e,t){Yf.has(e.type)||(\"function\"==typeof t.componentWillMount&&!0!==t.componentWillMount.__suppressDeprecationWarning&&Af.push(e),e.mode&ko&&\"function\"==typeof t.UNSAFE_componentWillMount&&Wf.push(e),\"function\"==typeof t.componentWillReceiveProps&&!0!==t.componentWillReceiveProps.__suppressDeprecationWarning&&jf.push(e),e.mode&ko&&\"function\"==typeof t.UNSAFE_componentWillReceiveProps&&Bf.push(e),\"function\"==typeof t.componentWillUpdate&&!0!==t.componentWillUpdate.__suppressDeprecationWarning&&Hf.push(e),e.mode&ko&&\"function\"==typeof t.UNSAFE_componentWillUpdate&&Vf.push(e))},Uf.flushPendingUnsafeLifecycleWarnings=function(){var e=new Set;Af.length>0&&(Af.forEach(function(t){e.add(vt(t)||\"Component\"),Yf.add(t.type)}),Af=[]);var t=new Set;Wf.length>0&&(Wf.forEach(function(e){t.add(vt(e)||\"Component\"),Yf.add(e.type)}),Wf=[]);var n=new Set;jf.length>0&&(jf.forEach(function(e){n.add(vt(e)||\"Component\"),Yf.add(e.type)}),jf=[]);var r=new Set;Bf.length>0&&(Bf.forEach(function(e){r.add(vt(e)||\"Component\"),Yf.add(e.type)}),Bf=[]);var i=new Set;Hf.length>0&&(Hf.forEach(function(e){i.add(vt(e)||\"Component\"),Yf.add(e.type)}),Hf=[]);var l=new Set;(Vf.length>0&&(Vf.forEach(function(e){l.add(vt(e)||\"Component\"),Yf.add(e.type)}),Vf=[]),t.size>0)&&o(\"Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n\\nPlease update the following components: %s\",Ff(t));r.size>0&&o(\"Using UNSAFE_componentWillReceiveProps in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n\\nPlease update the following components: %s\",Ff(r));l.size>0&&o(\"Using UNSAFE_componentWillUpdate in strict mode is not recommended and may indicate bugs in your code. See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n\\nPlease update the following components: %s\",Ff(l));e.size>0&&a(\"componentWillMount has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n* Rename componentWillMount to UNSAFE_componentWillMount to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n\\nPlease update the following components: %s\",Ff(e));n.size>0&&a(\"componentWillReceiveProps has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* If you're updating state whenever props change, refactor your code to use memoization techniques or move it to static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n\\nPlease update the following components: %s\",Ff(n));i.size>0&&a(\"componentWillUpdate has been renamed, and is not recommended for use. See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n* Move data fetching code or side effects to componentDidUpdate.\\n* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. To rename all deprecated lifecycles to their new names, you can run `npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n\\nPlease update the following components: %s\",Ff(i))};var Qf=new Map,qf=new Set;function $f(e,t){if(e&&e.defaultProps){var n=et({},t),r=e.defaultProps;for(var a in r)void 0===n[a]&&(n[a]=r[a]);return n}return t}Uf.recordLegacyContextWarning=function(e,t){var n=function(e){for(var t=null,n=e;null!==n;)n.mode&ko&&(t=n),n=n.return;return t}(e);if(null!==n){if(!qf.has(e.type)){var r=Qf.get(n);(null!=e.type.contextTypes||null!=e.type.childContextTypes||null!==t&&\"function\"==typeof t.getChildContext)&&(void 0===r&&(r=[],Qf.set(n,r)),r.push(e))}}else o(\"Expected to find a StrictMode component in a strict mode tree. This error is likely caused by a bug in React. Please file an issue.\")},Uf.flushLegacyContextWarning=function(){Qf.forEach(function(e,t){if(0!==e.length){var n=e[0],r=new Set;e.forEach(function(e){r.add(vt(e)||\"Component\"),qf.add(e.type)});var a=Ff(r);try{xt(n),o(\"Legacy context API has been detected within a strict-mode tree.\\n\\nThe old API will be supported in all 16.x releases, but applications using it should migrate to the new version.\\n\\nPlease update the following components: %s\\n\\nLearn more about this warning here: https://reactjs.org/link/legacy-context\",a)}finally{St()}}})},Uf.discardPendingWarnings=function(){Af=[],Wf=[],jf=[],Bf=[],Hf=[],Vf=[],Qf=new Map};var Xf,Kf=yd(null);Xf={};var Gf=null,Jf=null,Zf=null,ep=!1;function tp(){Gf=null,Jf=null,Zf=null,ep=!1}function np(){ep=!0}function rp(){ep=!1}function ap(e,t,n){wd(Kf,t._currentValue,e),t._currentValue=n,void 0!==t._currentRenderer&&null!==t._currentRenderer&&t._currentRenderer!==Xf&&o(\"Detected multiple renderers concurrently rendering the same context provider. This is currently unsupported.\"),t._currentRenderer=Xf}function op(e,t){var n=Kf.current;bd(Kf,t),e._currentValue=n}function ip(e,t,n){for(var r=e;null!==r;){var a=r.alternate;if(Pi(r.childLanes,t)?null===a||Pi(a.childLanes,t)||(a.childLanes=Di(a.childLanes,t)):(r.childLanes=Di(r.childLanes,t),null!==a&&(a.childLanes=Di(a.childLanes,t))),r===n)break;r=r.return}r!==n&&o(\"Expected to find the propagation root when scheduling context work. This error is likely caused by a bug in React. Please file an issue.\")}function lp(e,t,n){!function(e,t,n){var r=e.child;null!==r&&(r.return=e);for(;null!==r;){var a=void 0,o=r.dependencies;if(null!==o){a=r.child;for(var i=o.firstContext;null!==i;){if(i.context===t){if(r.tag===u){var l=Ci(n),s=Ep(di,l);s.tag=wp;var c=r.updateQueue;if(null===c);else{var d=c.shared,f=d.pending;null===f?s.next=s:(s.next=f.next,f.next=s),d.pending=s}}r.lanes=Di(r.lanes,n);var p=r.alternate;null!==p&&(p.lanes=Di(p.lanes,n)),ip(r.return,n,e),o.lanes=Di(o.lanes,n);break}i=i.next}}else if(r.tag===g)a=r.type===e.type?null:r.child;else if(r.tag===E){var h=r.return;if(null===h)throw new Error(\"We just came from a parent so we must have had a parent. This is a bug in React.\");h.lanes=Di(h.lanes,n);var m=h.alternate;null!==m&&(m.lanes=Di(m.lanes,n)),ip(h,n,e),a=r.sibling}else a=r.child;if(null!==a)a.return=r;else for(a=r;null!==a;){if(a===e){a=null;break}var v=a.sibling;if(null!==v){v.return=a.return,a=v;break}a=a.return}r=a}}(e,t,n)}function up(e,t){Gf=e,Jf=null,Zf=null;var n=e.dependencies;null!==n&&(null!==n.firstContext&&(Ri(n.lanes,t)&&Ug(),n.firstContext=null))}function sp(e){ep&&o(\"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\");var t=e._currentValue;if(Zf===e);else{var n={context:e,memoizedValue:t,next:null};if(null===Jf){if(null===Gf)throw new Error(\"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\");Jf=n,Gf.dependencies={lanes:Ro,firstContext:n}}else Jf=Jf.next=n}return t}var cp=null;function dp(e){null===cp?cp=[e]:cp.push(e)}function fp(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,dp(t)):(n.next=a.next,a.next=n),t.interleaved=n,mp(e,r)}function pp(e,t){return mp(e,t)}var hp=mp;function mp(e,t){e.lanes=Di(e.lanes,t);var n=e.alternate;null!==n&&(n.lanes=Di(n.lanes,t)),null===n&&(e.flags&(na|fa))!==ea&&Ww(e);for(var r=e,a=e.return;null!==a;)a.childLanes=Di(a.childLanes,t),null!==(n=a.alternate)?n.childLanes=Di(n.childLanes,t):(a.flags&(na|fa))!==ea&&Ww(e),r=a,a=a.return;return r.tag===c?r.stateNode:null}var vp,gp,yp=0,bp=1,wp=2,kp=3,Sp=!1;function xp(e){var t={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:Ro},effects:null};e.updateQueue=t}function Cp(e,t){var n=t.updateQueue,r=e.updateQueue;if(n===r){var a={baseState:r.baseState,firstBaseUpdate:r.firstBaseUpdate,lastBaseUpdate:r.lastBaseUpdate,shared:r.shared,effects:r.effects};t.updateQueue=a}}function Ep(e,t){return{eventTime:e,lane:t,tag:yp,payload:null,callback:null,next:null}}function Tp(e,t,n){var r=e.updateQueue;if(null===r)return null;var a=r.shared;if(gp!==a||vp||(o(\"An update (setState, replaceState, or forceUpdate) was scheduled from inside an update function. Update functions should be pure, with zero side-effects. Consider using componentDidUpdate or a callback.\"),vp=!0),(gb&ub)!==ib){var i=a.pending;return null===i?t.next=t:(t.next=i.next,i.next=t),a.pending=t,hp(e,n)}return function(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,dp(t)):(n.next=a.next,a.next=n),t.interleaved=n,mp(e,r)}(e,a,t,n)}function Rp(e,t,n){var r=t.updateQueue;if(null!==r){var a=r.shared;if(ki(n)){var o=a.lanes,i=Di(o=_i(o,e.pendingLanes),n);a.lanes=i,Oi(e,i)}}}function Pp(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r){var a=r.updateQueue;if(n===a){var o=null,i=null,l=n.firstBaseUpdate;if(null!==l){var u=l;do{var s={eventTime:u.eventTime,lane:u.lane,tag:u.tag,payload:u.payload,callback:u.callback,next:null};null===i?o=i=s:(i.next=s,i=s),u=u.next}while(null!==u);null===i?o=i=t:(i.next=t,i=t)}else o=i=t;return n={baseState:a.baseState,firstBaseUpdate:o,lastBaseUpdate:i,shared:a.shared,effects:a.effects},void(e.updateQueue=n)}}var c=n.lastBaseUpdate;null===c?n.firstBaseUpdate=t:c.next=t,n.lastBaseUpdate=t}function Dp(e,t,n,r,a,o){switch(n.tag){case bp:var i=n.payload;if(\"function\"==typeof i){np();var l=i.call(o,r,a);if(e.mode&ko){ro(!0);try{i.call(o,r,a)}finally{ro(!1)}}return rp(),l}return i;case kp:e.flags=e.flags&~ya|la;case yp:var u,s=n.payload;if(\"function\"==typeof s){if(np(),u=s.call(o,r,a),e.mode&ko){ro(!0);try{s.call(o,r,a)}finally{ro(!1)}}rp()}else u=s;return null===u||void 0===u?r:et({},r,u);case wp:return Sp=!0,r}return r}function Np(e,t,n,r){var a=e.updateQueue;Sp=!1,gp=a.shared;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,l=a.shared.pending;if(null!==l){a.shared.pending=null;var u=l,s=u.next;u.next=null,null===i?o=s:i.next=s,i=u;var c=e.alternate;if(null!==c){var d=c.updateQueue,f=d.lastBaseUpdate;f!==i&&(null===f?d.firstBaseUpdate=s:f.next=s,d.lastBaseUpdate=u)}}if(null!==o){for(var p=a.baseState,h=Ro,m=null,v=null,g=null,y=o;;){var b=y.lane,w=y.eventTime;if(Pi(r,b)){if(null!==g){var k={eventTime:w,lane:Po,tag:y.tag,payload:y.payload,callback:y.callback,next:null};g=g.next=k}if(p=Dp(e,0,y,p,t,n),null!==y.callback&&y.lane!==Po){e.flags|=ia;var S=a.effects;null===S?a.effects=[y]:S.push(y)}}else{var x={eventTime:w,lane:b,tag:y.tag,payload:y.payload,callback:y.callback,next:null};null===g?(v=g=x,m=p):g=g.next=x,h=Di(h,b)}if(null===(y=y.next)){if(null===(l=a.shared.pending))break;var C=l,E=C.next;C.next=null,y=E,a.lastBaseUpdate=C,a.shared.pending=null}}null===g&&(m=p),a.baseState=m,a.firstBaseUpdate=v,a.lastBaseUpdate=g;var T=a.shared.interleaved;if(null!==T){var R=T;do{h=Di(h,R.lane),R=R.next}while(R!==T)}else null===o&&(a.shared.lanes=Ro);Sw(h),e.lanes=h,e.memoizedState=p}gp=null}function _p(e,t){if(\"function\"!=typeof e)throw new Error(\"Invalid argument passed as callback. Expected a function. Instead received: \"+e);e.call(t)}function Ip(){Sp=!1}function Lp(){return Sp}function zp(e,t,n){var r=t.effects;if(t.effects=null,null!==r)for(var a=0;a<r.length;a++){var o=r[a],i=o.callback;null!==i&&(o.callback=null,_p(i,n))}}vp=!1,gp=null;var Mp,Op,Up,Fp,Ap,Wp,jp,Bp,Hp,Vp,Yp={},Qp=(new t.Component).refs;Mp=new Set,Op=new Set,Up=new Set,Fp=new Set,Bp=new Set,Ap=new Set,Hp=new Set,Vp=new Set;var qp=new Set;function $p(e,t,n,r){var a=e.memoizedState,o=n(r,a);if(e.mode&ko){ro(!0);try{o=n(r,a)}finally{ro(!1)}}Wp(t,o);var i=null===o||void 0===o?a:et({},a,o);(e.memoizedState=i,e.lanes===Ro)&&(e.updateQueue.baseState=i)}jp=function(e,t){if(null!==e&&\"function\"!=typeof e){var n=t+\"_\"+e;qp.has(n)||(qp.add(n),o(\"%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.\",t,e))}},Wp=function(e,t){if(void 0===t){var n=ht(e)||\"Component\";Ap.has(n)||(Ap.add(n),o(\"%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. You have returned undefined.\",n))}},Object.defineProperty(Yp,\"_processChildContext\",{enumerable:!1,value:function(){throw new Error(\"_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn't supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).\")}}),Object.freeze(Yp);var Xp,Kp,Gp,Jp,Zp,eh={isMounted:function(e){var t=_a.current;if(null!==t&&t.tag===u){var n=t,r=n.stateNode;r._warnedAboutRefsInRender||o(\"%s is accessing isMounted inside its render() function. render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.\",vt(n)||\"A component\"),r._warnedAboutRefsInRender=!0}var a=Zr(e);return!!a&&Ia(a)===a},enqueueSetState:function(e,t,n){var r=Zr(e),a=aw(),o=ow(r),i=Ep(a,o);i.payload=t,void 0!==n&&null!==n&&(jp(n,\"setState\"),i.callback=n);var l=Tp(r,i,o);null!==l&&(lw(l,r,o,a),Rp(l,r,o)),go(r,o)},enqueueReplaceState:function(e,t,n){var r=Zr(e),a=aw(),o=ow(r),i=Ep(a,o);i.tag=bp,i.payload=t,void 0!==n&&null!==n&&(jp(n,\"replaceState\"),i.callback=n);var l=Tp(r,i,o);null!==l&&(lw(l,r,o,a),Rp(l,r,o)),go(r,o)},enqueueForceUpdate:function(e,t){var n=Zr(e),r=aw(),a=ow(n),o=Ep(r,a);o.tag=wp,void 0!==t&&null!==t&&(jp(t,\"forceUpdate\"),o.callback=t);var i=Tp(n,o,a);null!==i&&(lw(i,n,a,r),Rp(i,n,a)),function(e,t){null!==eo&&\"function\"==typeof eo.markForceUpdateScheduled&&eo.markForceUpdateScheduled(e,t)}(n,a)}};function th(e,t,n,r,a,i,l){var u=e.stateNode;if(\"function\"==typeof u.shouldComponentUpdate){var s=u.shouldComponentUpdate(r,i,l);if(e.mode&ko){ro(!0);try{s=u.shouldComponentUpdate(r,i,l)}finally{ro(!1)}}return void 0===s&&o(\"%s.shouldComponentUpdate(): Returned undefined instead of a boolean value. Make sure to return true or false.\",ht(t)||\"Component\"),s}return!t.prototype||!t.prototype.isPureReactComponent||(!ju(n,r)||!ju(a,i))}function nh(e,t){var n;t.updater=eh,e.stateNode=t,n=e,t._reactInternals=n,t._reactInternalInstance=Yp}function rh(e,t,n){var r=!1,a=kd,i=kd,l=t.contextType;if(\"contextType\"in t&&(!(null===l||void 0!==l&&l.$$typeof===Ie&&void 0===l._context)&&!Vp.has(t))){Vp.add(t);var u=\"\";u=void 0===l?\" However, it is set to undefined. This can be caused by a typo or by mixing up named and default imports. This can also happen due to a circular dependency, so try moving the createContext() call to a separate file.\":\"object\"!=typeof l?\" However, it is set to a \"+typeof l+\".\":l.$$typeof===_e?\" Did you accidentally pass the Context.Provider instead?\":void 0!==l._context?\" Did you accidentally pass the Context.Consumer instead?\":\" However, it is set to an object with keys {\"+Object.keys(l).join(\", \")+\"}.\",o(\"%s defines an invalid contextType. contextType should point to the Context object returned by React.createContext().%s\",ht(t)||\"Component\",u)}if(\"object\"==typeof l&&null!==l)i=sp(l);else{a=Ed(0,t,!0);var s=t.contextTypes;i=(r=null!==s&&void 0!==s)?Rd(e,a):kd}var c=new t(n,i);if(e.mode&ko){ro(!0);try{c=new t(n,i)}finally{ro(!1)}}var d=e.memoizedState=null!==c.state&&void 0!==c.state?c.state:null;if(nh(e,c),\"function\"==typeof t.getDerivedStateFromProps&&null===d){var f=ht(t)||\"Component\";Op.has(f)||(Op.add(f),o(\"`%s` uses `getDerivedStateFromProps` but its initial state is %s. This is not recommended. Instead, define the initial state by assigning an object to `this.state` in the constructor of `%s`. This ensures that `getDerivedStateFromProps` arguments have a consistent shape.\",f,null===c.state?\"null\":\"undefined\",f))}if(\"function\"==typeof t.getDerivedStateFromProps||\"function\"==typeof c.getSnapshotBeforeUpdate){var p=null,h=null,m=null;if(\"function\"==typeof c.componentWillMount&&!0!==c.componentWillMount.__suppressDeprecationWarning?p=\"componentWillMount\":\"function\"==typeof c.UNSAFE_componentWillMount&&(p=\"UNSAFE_componentWillMount\"),\"function\"==typeof c.componentWillReceiveProps&&!0!==c.componentWillReceiveProps.__suppressDeprecationWarning?h=\"componentWillReceiveProps\":\"function\"==typeof c.UNSAFE_componentWillReceiveProps&&(h=\"UNSAFE_componentWillReceiveProps\"),\"function\"==typeof c.componentWillUpdate&&!0!==c.componentWillUpdate.__suppressDeprecationWarning?m=\"componentWillUpdate\":\"function\"==typeof c.UNSAFE_componentWillUpdate&&(m=\"UNSAFE_componentWillUpdate\"),null!==p||null!==h||null!==m){var v=ht(t)||\"Component\",g=\"function\"==typeof t.getDerivedStateFromProps?\"getDerivedStateFromProps()\":\"getSnapshotBeforeUpdate()\";Fp.has(v)||(Fp.add(v),o(\"Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\nhttps://reactjs.org/link/unsafe-component-lifecycles\",v,g,null!==p?\"\\n \"+p:\"\",null!==h?\"\\n \"+h:\"\",null!==m?\"\\n \"+m:\"\"))}}return r&&Td(e,a,i),c}function ah(e,t,n,r){var a=t.state;if(\"function\"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),\"function\"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==a){var i=vt(e)||\"Component\";Mp.has(i)||(Mp.add(i),o(\"%s.componentWillReceiveProps(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.\",i)),eh.enqueueReplaceState(t,t.state,null)}}function oh(e,t,n,r){!function(e,t,n){var r=e.stateNode,a=ht(t)||\"Component\";r.render||(t.prototype&&\"function\"==typeof t.prototype.render?o(\"%s(...): No `render` method found on the returned component instance: did you accidentally return an object from the constructor?\",a):o(\"%s(...): No `render` method found on the returned component instance: you may have forgotten to define `render`.\",a)),!r.getInitialState||r.getInitialState.isReactClassApproved||r.state||o(\"getInitialState was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Did you mean to define a state property instead?\",a),r.getDefaultProps&&!r.getDefaultProps.isReactClassApproved&&o(\"getDefaultProps was defined on %s, a plain JavaScript class. This is only supported for classes created using React.createClass. Use a static property to define defaultProps instead.\",a),r.propTypes&&o(\"propTypes was defined as an instance property on %s. Use a static property to define propTypes instead.\",a),r.contextType&&o(\"contextType was defined as an instance property on %s. Use a static property to define contextType instead.\",a),r.contextTypes&&o(\"contextTypes was defined as an instance property on %s. Use a static property to define contextTypes instead.\",a),t.contextType&&t.contextTypes&&!Hp.has(t)&&(Hp.add(t),o(\"%s declares both contextTypes and contextType static properties. The legacy contextTypes property will be ignored.\",a)),\"function\"==typeof r.componentShouldUpdate&&o(\"%s has a method called componentShouldUpdate(). Did you mean shouldComponentUpdate()? The name is phrased as a question because the function is expected to return a value.\",a),t.prototype&&t.prototype.isPureReactComponent&&void 0!==r.shouldComponentUpdate&&o(\"%s has a method called shouldComponentUpdate(). shouldComponentUpdate should not be used when extending React.PureComponent. Please extend React.Component if shouldComponentUpdate is used.\",ht(t)||\"A pure component\"),\"function\"==typeof r.componentDidUnmount&&o(\"%s has a method called componentDidUnmount(). But there is no such lifecycle method. Did you mean componentWillUnmount()?\",a),\"function\"==typeof r.componentDidReceiveProps&&o(\"%s has a method called componentDidReceiveProps(). But there is no such lifecycle method. If you meant to update the state in response to changing props, use componentWillReceiveProps(). If you meant to fetch data or run side-effects or mutations after React has updated the UI, use componentDidUpdate().\",a),\"function\"==typeof r.componentWillRecieveProps&&o(\"%s has a method called componentWillRecieveProps(). Did you mean componentWillReceiveProps()?\",a),\"function\"==typeof r.UNSAFE_componentWillRecieveProps&&o(\"%s has a method called UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?\",a);var i=r.props!==n;void 0!==r.props&&i&&o(\"%s(...): When calling super() in `%s`, make sure to pass up the same props that your component's constructor was passed.\",a,a),r.defaultProps&&o(\"Setting defaultProps as an instance property on %s is not supported and will be ignored. Instead, define defaultProps as a static property on %s.\",a,a),\"function\"!=typeof r.getSnapshotBeforeUpdate||\"function\"==typeof r.componentDidUpdate||Up.has(t)||(Up.add(t),o(\"%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). This component defines getSnapshotBeforeUpdate() only.\",ht(t))),\"function\"==typeof r.getDerivedStateFromProps&&o(\"%s: getDerivedStateFromProps() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",a),\"function\"==typeof r.getDerivedStateFromError&&o(\"%s: getDerivedStateFromError() is defined as an instance method and will be ignored. Instead, declare it as a static method.\",a),\"function\"==typeof t.getSnapshotBeforeUpdate&&o(\"%s: getSnapshotBeforeUpdate() is defined as a static method and will be ignored. Instead, declare it as an instance method.\",a);var l=r.state;l&&(\"object\"!=typeof l||Jt(l))&&o(\"%s.state: must be set to an object or null\",a),\"function\"==typeof r.getChildContext&&\"object\"!=typeof t.childContextTypes&&o(\"%s.getChildContext(): childContextTypes must be defined in order to use getChildContext().\",a)}(e,t,n);var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=Qp,xp(e);var i=t.contextType;if(\"object\"==typeof i&&null!==i)a.context=sp(i);else{var l=Ed(0,t,!0);a.context=Rd(e,l)}if(a.state===n){var u=ht(t)||\"Component\";Bp.has(u)||(Bp.add(u),o(\"%s: It is not recommended to assign props directly to state because updates to props won't be reflected in state. In most cases, it is better to use props directly.\",u))}e.mode&ko&&Uf.recordLegacyContextWarning(e,a),Uf.recordUnsafeLifecycleWarnings(e,a),a.state=e.memoizedState;var s=t.getDerivedStateFromProps;if(\"function\"==typeof s&&($p(e,t,s,n),a.state=e.memoizedState),\"function\"==typeof t.getDerivedStateFromProps||\"function\"==typeof a.getSnapshotBeforeUpdate||\"function\"!=typeof a.UNSAFE_componentWillMount&&\"function\"!=typeof a.componentWillMount||(!function(e,t){var n=t.state;\"function\"==typeof t.componentWillMount&&t.componentWillMount(),\"function\"==typeof t.UNSAFE_componentWillMount&&t.UNSAFE_componentWillMount(),n!==t.state&&(o(\"%s.componentWillMount(): Assigning directly to this.state is deprecated (except inside a component's constructor). Use setState instead.\",vt(e)||\"Component\"),eh.enqueueReplaceState(t,t.state,null))}(e,a),Np(e,n,a,r),a.state=e.memoizedState),\"function\"==typeof a.componentDidMount){var c=ra;c|=Sa,(e.mode&So)!==yo&&(c|=Ca),e.flags|=c}}var ih=function(e,t){};function lh(e,t,n){var r=n.ref;if(null!==r&&\"function\"!=typeof r&&\"object\"!=typeof r){if((e.mode&ko||F)&&(!n._owner||!n._self||n._owner.stateNode===n._self)){var a=vt(e)||\"Component\";Gp[a]||(o('A string ref, \"%s\", has been found within a strict mode tree. String refs are a source of potential bugs and should be avoided. We recommend using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',r),Gp[a]=!0)}if(n._owner){var i,l=n._owner;if(l){var s=l;if(s.tag!==u)throw new Error(\"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\");i=s.stateNode}if(!i)throw new Error(\"Missing owner for string ref \"+r+\". This error is likely caused by a bug in React. Please file an issue.\");var c=i;!function(e,t){if(K(e))o(\"The provided `%s` prop is an unsupported type %s. This value must be coerced to a string before before using it here.\",t,X(e)),G(e)}(r,\"ref\");var d=\"\"+r;if(null!==t&&null!==t.ref&&\"function\"==typeof t.ref&&t.ref._stringRef===d)return t.ref;var f=function(e){var t=c.refs;t===Qp&&(t=c.refs={}),null===e?delete t[d]:t[d]=e};return f._stringRef=d,f}if(\"string\"!=typeof r)throw new Error(\"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\");if(!n._owner)throw new Error(\"Element ref was specified as a string (\"+r+\") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\")}return r}function uh(e,t){var n=Object.prototype.toString.call(t);throw new Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===n?\"object with keys {\"+Object.keys(t).join(\", \")+\"}\":n)+\"). If you meant to render a collection of children, use an array instead.\")}function sh(e){var t=vt(e)||\"Component\";Zp[t]||(Zp[t]=!0,o(\"Functions are not valid as a React child. This may happen if you return a Component instead of <Component /> from render. Or maybe you meant to call this function rather than return it.\"))}function ch(e){var t=e._payload;return(0,e._init)(t)}function dh(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=aa):r.push(n)}}function n(n,r){if(!e)return null;for(var a=r;null!==a;)t(n,a),a=a.sibling;return null}function r(e,t){for(var n=new Map,r=t;null!==r;)null!==r.key?n.set(r.key,r):n.set(r.index,r),r=r.sibling;return n}function a(e,t){var n=ck(e,t);return n.index=0,n.sibling=null,n}function i(t,n,r){if(t.index=r,!e)return t.flags|=wa,n;var a=t.alternate;if(null!==a){var o=a.index;return o<n?(t.flags|=na,n):o}return t.flags|=na,n}function l(t){return e&&null===t.alternate&&(t.flags|=na),t}function u(e,t,n,r){if(null===t||t.tag!==p){var o=vk(n,e.mode,r);return o.return=e,o}var i=a(t,n);return i.return=e,i}function s(e,t,n,r){var o=n.type;if(o===Pe)return f(e,t,n.props.children,r,n.key);if(null!==t&&(t.elementType===o||tk(t,n)||\"object\"==typeof o&&null!==o&&o.$$typeof===Ue&&ch(o)===t.type)){var i=a(t,n.props);return i.ref=lh(e,t,n),i.return=e,i._debugSource=n._source,i._debugOwner=n._owner,i}var l=pk(n,e.mode,r);return l.ref=lh(e,t,n),l.return=e,l}function c(e,t,n,r){if(null===t||t.tag!==d||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation){var o=gk(n,e.mode,r);return o.return=e,o}var i=a(t,n.children||[]);return i.return=e,i}function f(e,t,n,r,o){if(null===t||t.tag!==h){var i=hk(n,e.mode,r,o);return i.return=e,i}var l=a(t,n);return l.return=e,l}function m(e,t,n){if(\"string\"==typeof t&&\"\"!==t||\"number\"==typeof t){var r=vk(\"\"+t,e.mode,n);return r.return=e,r}if(\"object\"==typeof t&&null!==t){switch(t.$$typeof){case Te:var a=pk(t,e.mode,n);return a.ref=lh(e,null,t),a.return=e,a;case Re:var o=gk(t,e.mode,n);return o.return=e,o;case Ue:var i=t._payload;return m(e,(0,t._init)(i),n)}if(Jt(t)||Qe(t)){var l=hk(t,e.mode,n,null);return l.return=e,l}uh(0,t)}return\"function\"==typeof t&&sh(e),null}function v(e,t,n,r){var a=null!==t?t.key:null;if(\"string\"==typeof n&&\"\"!==n||\"number\"==typeof n)return null!==a?null:u(e,t,\"\"+n,r);if(\"object\"==typeof n&&null!==n){switch(n.$$typeof){case Te:return n.key===a?s(e,t,n,r):null;case Re:return n.key===a?c(e,t,n,r):null;case Ue:var o=n._payload;return v(e,t,(0,n._init)(o),r)}if(Jt(n)||Qe(n))return null!==a?null:f(e,t,n,r,null);uh(0,n)}return\"function\"==typeof n&&sh(e),null}function g(e,t,n,r,a){if(\"string\"==typeof r&&\"\"!==r||\"number\"==typeof r)return u(t,e.get(n)||null,\"\"+r,a);if(\"object\"==typeof r&&null!==r){switch(r.$$typeof){case Te:return s(t,e.get(null===r.key?n:r.key)||null,r,a);case Re:return c(t,e.get(null===r.key?n:r.key)||null,r,a);case Ue:var o=r._payload;return g(e,t,n,(0,r._init)(o),a)}if(Jt(r)||Qe(r))return f(t,e.get(n)||null,r,a,null);uh(0,r)}return\"function\"==typeof r&&sh(t),null}function y(e,t,n){if(\"object\"!=typeof e||null===e)return t;switch(e.$$typeof){case Te:case Re:ih(e,n);var r=e.key;if(\"string\"!=typeof r)break;if(null===t){(t=new Set).add(r);break}if(!t.has(r)){t.add(r);break}o(\"Encountered two children with the same key, `%s`. Keys should be unique so that components maintain their identity across updates. Non-unique keys may cause children to be duplicated and/or omitted — the behavior is unsupported and could change in a future version.\",r);break;case Ue:var a=e._payload;y((0,e._init)(a),t,n)}return t}return function u(s,c,f,b){if(\"object\"==typeof f&&null!==f&&f.type===Pe&&null===f.key&&(f=f.props.children),\"object\"==typeof f&&null!==f){switch(f.$$typeof){case Te:return l(function(e,r,o,i){for(var l=o.key,u=r;null!==u;){if(u.key===l){var s=o.type;if(s===Pe){if(u.tag===h){n(e,u.sibling);var c=a(u,o.props.children);return c.return=e,c._debugSource=o._source,c._debugOwner=o._owner,c}}else if(u.elementType===s||tk(u,o)||\"object\"==typeof s&&null!==s&&s.$$typeof===Ue&&ch(s)===u.type){n(e,u.sibling);var d=a(u,o.props);return d.ref=lh(e,u,o),d.return=e,d._debugSource=o._source,d._debugOwner=o._owner,d}n(e,u);break}t(e,u),u=u.sibling}if(o.type===Pe){var f=hk(o.props.children,e.mode,i,o.key);return f.return=e,f}var p=pk(o,e.mode,i);return p.ref=lh(e,r,o),p.return=e,p}(s,c,f,b));case Re:return l(function(e,r,o,i){for(var l=o.key,u=r;null!==u;){if(u.key===l){if(u.tag===d&&u.stateNode.containerInfo===o.containerInfo&&u.stateNode.implementation===o.implementation){n(e,u.sibling);var s=a(u,o.children||[]);return s.return=e,s}n(e,u);break}t(e,u),u=u.sibling}var c=gk(o,e.mode,i);return c.return=e,c}(s,c,f,b));case Ue:var w=f._payload;return u(s,c,(0,f._init)(w),b)}if(Jt(f))return function(a,o,l,u){for(var s=null,c=0;c<l.length;c++)s=y(l[c],s,a);for(var d=null,f=null,p=o,h=0,b=0,w=null;null!==p&&b<l.length;b++){p.index>b?(w=p,p=null):w=p.sibling;var k=v(a,p,l[b],u);if(null===k){null===p&&(p=w);break}e&&p&&null===k.alternate&&t(a,p),h=i(k,h,b),null===f?d=k:f.sibling=k,f=k,p=w}if(b===l.length)return n(a,p),Lf()&&tf(a,b),d;if(null===p){for(;b<l.length;b++){var S=m(a,l[b],u);null!==S&&(h=i(S,h,b),null===f?d=S:f.sibling=S,f=S)}return Lf()&&tf(a,b),d}for(var x=r(0,p);b<l.length;b++){var C=g(x,a,b,l[b],u);null!==C&&(e&&null!==C.alternate&&x.delete(null===C.key?b:C.key),h=i(C,h,b),null===f?d=C:f.sibling=C,f=C)}return e&&x.forEach(function(e){return t(a,e)}),Lf()&&tf(a,b),d}(s,c,f,b);if(Qe(f))return function(a,l,u,s){var c=Qe(u);if(\"function\"!=typeof c)throw new Error(\"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\");\"function\"==typeof Symbol&&\"Generator\"===u[Symbol.toStringTag]&&(Kp||o(\"Using Generators as children is unsupported and will likely yield unexpected results because enumerating a generator mutates it. You may convert it to an array with `Array.from()` or the `[...spread]` operator before rendering. Keep in mind you might need to polyfill these features for older browsers.\"),Kp=!0),u.entries===c&&(Xp||o(\"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"),Xp=!0);var d=c.call(u);if(d)for(var f=null,p=d.next();!p.done;p=d.next())f=y(p.value,f,a);var h=c.call(u);if(null==h)throw new Error(\"An iterable object provided no iterator.\");for(var b=null,w=null,k=l,S=0,x=0,C=null,E=h.next();null!==k&&!E.done;x++,E=h.next()){k.index>x?(C=k,k=null):C=k.sibling;var T=v(a,k,E.value,s);if(null===T){null===k&&(k=C);break}e&&k&&null===T.alternate&&t(a,k),S=i(T,S,x),null===w?b=T:w.sibling=T,w=T,k=C}if(E.done)return n(a,k),Lf()&&tf(a,x),b;if(null===k){for(;!E.done;x++,E=h.next()){var R=m(a,E.value,s);null!==R&&(S=i(R,S,x),null===w?b=R:w.sibling=R,w=R)}return Lf()&&tf(a,x),b}for(var P=r(0,k);!E.done;x++,E=h.next()){var D=g(P,a,x,E.value,s);null!==D&&(e&&null!==D.alternate&&P.delete(null===D.key?x:D.key),S=i(D,S,x),null===w?b=D:w.sibling=D,w=D)}return e&&P.forEach(function(e){return t(a,e)}),Lf()&&tf(a,x),b}(s,c,f,b);uh(0,f)}return\"string\"==typeof f&&\"\"!==f||\"number\"==typeof f?l(function(e,t,r,o){if(null!==t&&t.tag===p){n(e,t.sibling);var i=a(t,r);return i.return=e,i}n(e,t);var l=vk(r,e.mode,o);return l.return=e,l}(s,c,\"\"+f,b)):(\"function\"==typeof f&&sh(s),n(s,c))}}Xp=!1,Kp=!1,Gp={},Jp={},Zp={},ih=function(e,t){if(null!==e&&\"object\"==typeof e&&e._store&&!e._store.validated&&null==e.key){if(\"object\"!=typeof e._store)throw new Error(\"React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.\");e._store.validated=!0;var n=vt(t)||\"Component\";Jp[n]||(Jp[n]=!0,o('Each child in a list should have a unique \"key\" prop. See https://reactjs.org/link/warning-keys for more information.'))}};var fh=dh(!0),ph=dh(!1);function hh(e,t){for(var n=e.child;null!==n;)dk(n,t),n=n.sibling}var mh={},vh=yd(mh),gh=yd(mh),yh=yd(mh);function bh(e){if(e===mh)throw new Error(\"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\");return e}function wh(){return bh(yh.current)}function kh(e,t){wd(yh,t,e),wd(gh,e,e),wd(vh,mh,e);var n=function(e){var t,n,r=e.nodeType;switch(r){case kn:case Sn:t=r===kn?\"#document\":\"#fragment\";var a=e.documentElement;n=a?a.namespaceURI:hn(null,\"\");break;default:var o=r===wn?e.parentNode:e;n=hn(o.namespaceURI||null,t=o.tagName)}var i=t.toLowerCase();return{namespace:n,ancestorInfo:dc(null,i)}}(t);bd(vh,e),wd(vh,n,e)}function Sh(e){bd(vh,e),bd(gh,e),bd(yh,e)}function xh(){return bh(vh.current)}function Ch(e){bh(yh.current);var t,n,r,a=bh(vh.current),o=(t=a,n=e.type,{namespace:hn((r=t).namespace,n),ancestorInfo:dc(r.ancestorInfo,n)});a!==o&&(wd(gh,e,e),wd(vh,o,e))}function Eh(e){gh.current===e&&(bd(vh,e),bd(gh,e))}var Th=1,Rh=1,Ph=2,Dh=yd(0);function Nh(e,t){return 0!=(e&t)}function _h(e){return e&Th}function Ih(e,t){return e&Th|t}function Lh(e,t){wd(Dh,t,e)}function zh(e){bd(Dh,e)}function Mh(e,t){var n=e.memoizedState;if(null!==n)return null!==n.dehydrated;e.memoizedProps;return!0}function Oh(e){for(var t=e;null!==t;){if(t.tag===w){var n=t.memoizedState;if(null!==n){var r=n.dehydrated;if(null===r||Bc(r)||Hc(r))return t}}else if(t.tag===T&&void 0!==t.memoizedProps.revealOrder){if((t.flags&la)!==ea)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)return null;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Uh=0,Fh=1,Ah=2,Wh=4,jh=8,Bh=[];function Hh(){for(var e=0;e<Bh.length;e++){Bh[e]._workInProgressVersionPrimary=null}Bh.length=0}function Vh(e,t){var n=(0,t._getVersion)(t._source);null==e.mutableSourceEagerHydrationData?e.mutableSourceEagerHydrationData=[t,n]:e.mutableSourceEagerHydrationData.push(t,n)}var Yh,Qh,qh=n.ReactCurrentDispatcher,$h=n.ReactCurrentBatchConfig;Yh=new Set;var Xh=Ro,Kh=null,Gh=null,Jh=null,Zh=!1,em=!1,tm=0,nm=0,rm=25,am=null,om=null,im=-1,lm=!1;function um(){var e=am;null===om?om=[e]:om.push(e)}function sm(){var e=am;null!==om&&om[++im]!==e&&function(e){var t=vt(Kh);if(!Yh.has(t)&&(Yh.add(t),null!==om)){for(var n=\"\",r=0;r<=im;r++){for(var a=om[r],i=r===im?e:a,l=r+1+\". \"+a;l.length<30;)l+=\" \";n+=l+=i+\"\\n\"}o(\"React has detected a change in the order of Hooks called by %s. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks\\n\\n Previous render Next render\\n ------------------------------------------------------\\n%s ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n\",t,n)}}(e)}function cm(e){void 0===e||null===e||Jt(e)||o(\"%s received a final argument that is not an array (instead, received `%s`). When specified, the final argument must be an array.\",am,typeof e)}function dm(){throw new Error(\"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\")}function fm(e,t){if(lm)return!1;if(null===t)return o(\"%s received a final argument during this render, but not during the previous render. Even though the final argument is optional, its type cannot change between renders.\",am),!1;e.length!==t.length&&o(\"The final argument passed to %s changed size between renders. The order and size of this array must remain constant.\\n\\nPrevious: %s\\nIncoming: %s\",am,\"[\"+t.join(\", \")+\"]\",\"[\"+e.join(\", \")+\"]\");for(var n=0;n<t.length&&n<e.length;n++)if(!Wu(e[n],t[n]))return!1;return!0}function pm(e,t,n,r,a,i){Xh=i,Kh=t,om=null!==e?e._debugHookTypes:null,im=-1,lm=null!==e&&e.type!==t.type,t.memoizedState=null,t.updateQueue=null,t.lanes=Ro,null!==e&&null!==e.memoizedState?qh.current=vv:qh.current=null!==om?mv:hv;var l=n(r,a);if(em){var u=0;do{if(em=!1,tm=0,u>=rm)throw new Error(\"Too many re-renders. React limits the number of renders to prevent an infinite loop.\");u+=1,lm=!1,Gh=null,Jh=null,t.updateQueue=null,im=-1,qh.current=gv,l=n(r,a)}while(em)}qh.current=pv,t._debugHookTypes=om;var s=null!==Gh&&null!==Gh.next;if(Xh=Ro,Kh=null,Gh=null,Jh=null,am=null,om=null,im=-1,null!==e&&(e.flags&Na)!=(t.flags&Na)&&(e.mode&bo)!==yo&&o(\"Internal React error: Expected static flag was missing. Please notify the React team.\"),Zh=!1,s)throw new Error(\"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\");return l}function hm(){var e=0!==tm;return tm=0,e}function mm(e,t,n){t.updateQueue=e.updateQueue,(t.mode&So)!==yo?t.flags&=~(Ea|Ca|da|ra):t.flags&=~(da|ra),e.lanes=Ni(e.lanes,n)}function vm(){if(qh.current=pv,Zh){for(var e=Kh.memoizedState;null!==e;){var t=e.queue;null!==t&&(t.pending=null),e=e.next}Zh=!1}Xh=Ro,Kh=null,Gh=null,Jh=null,om=null,im=-1,am=null,iv=!1,em=!1,tm=0}function gm(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===Jh?Kh.memoizedState=Jh=e:Jh=Jh.next=e,Jh}function ym(){var e,t;if(null===Gh){var n=Kh.alternate;e=null!==n?n.memoizedState:null}else e=Gh.next;if(null!==(t=null===Jh?Kh.memoizedState:Jh.next))t=(Jh=t).next,Gh=e;else{if(null===e)throw new Error(\"Rendered more hooks than during the previous render.\");var r={memoizedState:(Gh=e).memoizedState,baseState:Gh.baseState,baseQueue:Gh.baseQueue,queue:Gh.queue,next:null};null===Jh?Kh.memoizedState=Jh=r:Jh=Jh.next=r}return Jh}function bm(e,t){return\"function\"==typeof t?t(e):t}function wm(e,t,n){var r,a=gm();r=void 0!==n?n(t):t,a.memoizedState=a.baseState=r;var i={pending:null,interleaved:null,lanes:Ro,dispatch:null,lastRenderedReducer:e,lastRenderedState:r};a.queue=i;var l=i.dispatch=function(e,t,n){\"function\"==typeof arguments[3]&&o(\"State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().\");var r=ow(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(sv(e))cv(t,a);else{var i=fp(e,t,a,r);if(null!==i){var l=aw();lw(i,e,r,l),dv(i,t,r)}}fv(e,r)}.bind(null,Kh,i);return[a.memoizedState,l]}function km(e,t,n){var r=ym(),a=r.queue;if(null===a)throw new Error(\"Should have a queue. This is likely a bug in React. Please file an issue.\");a.lastRenderedReducer=e;var i=Gh,l=i.baseQueue,u=a.pending;if(null!==u){if(null!==l){var s=l.next,c=u.next;l.next=c,u.next=s}i.baseQueue!==l&&o(\"Internal error: Expected work-in-progress queue to be a clone. This is a bug in React.\"),i.baseQueue=l=u,a.pending=null}if(null!==l){var d=l.next,f=i.baseState,p=null,h=null,m=null,v=d;do{var g=v.lane;if(Pi(Xh,g)){if(null!==m){var y={lane:Po,action:v.action,hasEagerState:v.hasEagerState,eagerState:v.eagerState,next:null};m=m.next=y}if(v.hasEagerState)f=v.eagerState;else f=e(f,v.action)}else{var b={lane:g,action:v.action,hasEagerState:v.hasEagerState,eagerState:v.eagerState,next:null};null===m?(h=m=b,p=f):m=m.next=b,Kh.lanes=Di(Kh.lanes,g),Sw(g)}v=v.next}while(null!==v&&v!==d);null===m?p=f:m.next=h,Wu(f,r.memoizedState)||Ug(),r.memoizedState=f,r.baseState=p,r.baseQueue=m,a.lastRenderedState=f}var w=a.interleaved;if(null!==w){var k=w;do{var S=k.lane;Kh.lanes=Di(Kh.lanes,S),Sw(S),k=k.next}while(k!==w)}else null===l&&(a.lanes=Ro);var x=a.dispatch;return[r.memoizedState,x]}function Sm(e,t,n){var r=ym(),a=r.queue;if(null===a)throw new Error(\"Should have a queue. This is likely a bug in React. Please file an issue.\");a.lastRenderedReducer=e;var o=a.dispatch,i=a.pending,l=r.memoizedState;if(null!==i){a.pending=null;var u=i.next,s=u;do{l=e(l,s.action),s=s.next}while(s!==u);Wu(l,r.memoizedState)||Ug(),r.memoizedState=l,null===r.baseQueue&&(r.baseState=l),a.lastRenderedState=l}return[l,o]}function xm(e,t,n){var r,a=Kh,i=gm();if(Lf()){if(void 0===n)throw new Error(\"Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering.\");r=n(),Qh||r!==n()&&(o(\"The result of getServerSnapshot should be cached to avoid an infinite loop\"),Qh=!0)}else{if(r=t(),!Qh){var l=t();Wu(r,l)||(o(\"The result of getSnapshot should be cached to avoid an infinite loop\"),Qh=!0)}var u=rw();if(null===u)throw new Error(\"Expected a work-in-progress root. This is a bug in React. Please file an issue.\");wi(0,Xh)||Em(a,t,r)}i.memoizedState=r;var s={value:r,getSnapshot:t};return i.queue=s,Fm(Rm.bind(null,a,s,e),[e]),a.flags|=da,Lm(Fh|jh,Tm.bind(null,a,s,r,t),void 0,null),r}function Cm(e,t,n){var r=Kh,a=ym(),i=t();if(!Qh){var l=t();Wu(i,l)||(o(\"The result of getSnapshot should be cached to avoid an infinite loop\"),Qh=!0)}var u=a.memoizedState,s=!Wu(u,i);s&&(a.memoizedState=i,Ug());var c=a.queue;if(Am(Rm.bind(null,r,c,e),[e]),c.getSnapshot!==t||s||null!==Jh&&Jh.memoizedState.tag&Fh){r.flags|=da,Lm(Fh|jh,Tm.bind(null,r,c,i,t),void 0,null);var d=rw();if(null===d)throw new Error(\"Expected a work-in-progress root. This is a bug in React. Please file an issue.\");wi(0,Xh)||Em(r,t,i)}return i}function Em(e,t,n){e.flags|=ha;var r={getSnapshot:t,value:n},a=Kh.updateQueue;if(null===a)a={lastEffect:null,stores:null},Kh.updateQueue=a,a.stores=[r];else{var o=a.stores;null===o?a.stores=[r]:o.push(r)}}function Tm(e,t,n,r){t.value=n,t.getSnapshot=r,Pm(t)&&Dm(e)}function Rm(e,t,n){return n(function(){Pm(t)&&Dm(e)})}function Pm(e){var t=e.getSnapshot,n=e.value;try{var r=t();return!Wu(n,r)}catch(e){return!0}}function Dm(e){var t=pp(e,Do);null!==t&&lw(t,e,Do,di)}function Nm(e){var t=gm();\"function\"==typeof e&&(e=e()),t.memoizedState=t.baseState=e;var n={pending:null,interleaved:null,lanes:Ro,dispatch:null,lastRenderedReducer:bm,lastRenderedState:e};t.queue=n;var r=n.dispatch=function(e,t,n){\"function\"==typeof arguments[3]&&o(\"State updates from the useState() and useReducer() Hooks don't support the second callback argument. To execute a side effect after rendering, declare it in the component body with useEffect().\");var r=ow(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(sv(e))cv(t,a);else{var i=e.alternate;if(e.lanes===Ro&&(null===i||i.lanes===Ro)){var l=t.lastRenderedReducer;if(null!==l){var u;u=qh.current,qh.current=bv;try{var s=t.lastRenderedState,c=l(s,n);if(a.hasEagerState=!0,a.eagerState=c,Wu(c,s))return void function(e,t,n,r){var a=t.interleaved;null===a?(n.next=n,dp(t)):(n.next=a.next,a.next=n),t.interleaved=n}(0,t,a)}catch(e){}finally{qh.current=u}}}var d=fp(e,t,a,r);if(null!==d){var f=aw();lw(d,e,r,f),dv(d,t,r)}}fv(e,r)}.bind(null,Kh,n);return[t.memoizedState,r]}function _m(e){return km(bm)}function Im(e){return Sm(bm)}function Lm(e,t,n,r){var a={tag:e,create:t,destroy:n,deps:r,next:null},o=Kh.updateQueue;if(null===o)o={lastEffect:null,stores:null},Kh.updateQueue=o,o.lastEffect=a.next=a;else{var i=o.lastEffect;if(null===i)o.lastEffect=a.next=a;else{var l=i.next;i.next=a,a.next=l,o.lastEffect=a}}return a}function zm(e){var t={current:e};return gm().memoizedState=t,t}function Mm(e){return ym().memoizedState}function Om(e,t,n,r){var a=gm(),o=void 0===r?null:r;Kh.flags|=e,a.memoizedState=Lm(Fh|t,n,void 0,o)}function Um(e,t,n,r){var a=ym(),o=void 0===r?null:r,i=void 0;if(null!==Gh){var l=Gh.memoizedState;if(i=l.destroy,null!==o)if(fm(o,l.deps))return void(a.memoizedState=Lm(t,n,i,o))}Kh.flags|=e,a.memoizedState=Lm(Fh|t,n,i,o)}function Fm(e,t){return(Kh.mode&So)!==yo?Om(Ea|da|xa,jh,e,t):Om(da|xa,jh,e,t)}function Am(e,t){return Um(da,jh,e,t)}function Wm(e,t){return Om(ra,Ah,e,t)}function jm(e,t){return Um(ra,Ah,e,t)}function Bm(e,t){var n=ra;return n|=Sa,(Kh.mode&So)!==yo&&(n|=Ca),Om(n,Wh,e,t)}function Hm(e,t){return Um(ra,Wh,e,t)}function Vm(e,t){if(\"function\"==typeof t){var n=t,r=e();return n(r),function(){n(null)}}if(null!==t&&void 0!==t){var a=t;a.hasOwnProperty(\"current\")||o(\"Expected useImperativeHandle() first argument to either be a ref callback or React.createRef() object. Instead received: %s.\",\"an object with keys {\"+Object.keys(a).join(\", \")+\"}\");var i=e();return a.current=i,function(){a.current=null}}}function Ym(e,t,n){\"function\"!=typeof t&&o(\"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.\",null!==t?typeof t:\"null\");var r=null!==n&&void 0!==n?n.concat([e]):null,a=ra;return a|=Sa,(Kh.mode&So)!==yo&&(a|=Ca),Om(a,Wh,Vm.bind(null,t,e),r)}function Qm(e,t,n){\"function\"!=typeof t&&o(\"Expected useImperativeHandle() second argument to be a function that creates a handle. Instead received: %s.\",null!==t?typeof t:\"null\");var r=null!==n&&void 0!==n?n.concat([e]):null;return Um(ra,Wh,Vm.bind(null,t,e),r)}function qm(e,t){}var $m=qm;function Xm(e,t){var n=gm(),r=void 0===t?null:t;return n.memoizedState=[e,r],e}function Km(e,t){var n=ym(),r=void 0===t?null:t,a=n.memoizedState;if(null!==a&&(null!==r&&fm(r,a[1])))return a[0];return n.memoizedState=[e,r],e}function Gm(e,t){var n=gm(),r=void 0===t?null:t,a=e();return n.memoizedState=[a,r],a}function Jm(e,t){var n=ym(),r=void 0===t?null:t,a=n.memoizedState;if(null!==a&&(null!==r&&fm(r,a[1])))return a[0];var o=e();return n.memoizedState=[o,r],o}function Zm(e){return gm().memoizedState=e,e}function ev(e){return nv(ym(),Gh.memoizedState,e)}function tv(e){var t=ym();return null===Gh?(t.memoizedState=e,e):nv(t,Gh.memoizedState,e)}function nv(e,t,n){if(!((Xh&(Do|_o|Lo))===Ro)){if(!Wu(n,t)){var r=Si();Kh.lanes=Di(Kh.lanes,r),Sw(r),e.baseState=!0}return t}return e.baseState&&(e.baseState=!1,Ug()),e.memoizedState=n,n}function rv(){var e=Nm(!1),t=e[0],n=e[1],r=function(e,t,n){var r,o,i=Xi();Ki((o=Yi,0!==(r=i)&&r<o?r:o)),e(!0);var l=$h.transition;$h.transition={};var u=$h.transition;$h.transition._updatedFibers=new Set;try{e(!1),t()}finally{Ki(i),$h.transition=l,null===l&&u._updatedFibers&&(u._updatedFibers.size>10&&a(\"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"),u._updatedFibers.clear())}}.bind(null,n);return gm().memoizedState=r,[t,r]}function av(){return[_m()[0],ym().memoizedState]}function ov(){return[Im()[0],ym().memoizedState]}var iv=!1;function lv(){var e,t=gm(),n=rw().identifierPrefix;if(Lf()){e=\":\"+n+\"R\"+ef();var r=tm++;r>0&&(e+=\"H\"+r.toString(32)),e+=\":\"}else{e=\":\"+n+\"r\"+(nm++).toString(32)+\":\"}return t.memoizedState=e,e}function uv(){return ym().memoizedState}function sv(e){var t=e.alternate;return e===Kh||null!==t&&t===Kh}function cv(e,t){em=Zh=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function dv(e,t,n){if(ki(n)){var r=t.lanes,a=Di(r=_i(r,e.pendingLanes),n);t.lanes=a,Oi(e,a)}}function fv(e,t,n){go(e,t)}var pv={readContext:sp,useCallback:dm,useContext:dm,useEffect:dm,useImperativeHandle:dm,useInsertionEffect:dm,useLayoutEffect:dm,useMemo:dm,useReducer:dm,useRef:dm,useState:dm,useDebugValue:dm,useDeferredValue:dm,useTransition:dm,useMutableSource:dm,useSyncExternalStore:dm,useId:dm,unstable_isNewReconciler:!1},hv=null,mv=null,vv=null,gv=null,yv=null,bv=null,wv=null,kv=function(){o(\"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\")},Sv=function(){o(\"Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. You can only call Hooks at the top level of your React function. For more information, see https://reactjs.org/link/rules-of-hooks\")};hv={readContext:function(e){return sp(e)},useCallback:function(e,t){return am=\"useCallback\",um(),cm(t),Xm(e,t)},useContext:function(e){return am=\"useContext\",um(),sp(e)},useEffect:function(e,t){return am=\"useEffect\",um(),cm(t),Fm(e,t)},useImperativeHandle:function(e,t,n){return am=\"useImperativeHandle\",um(),cm(n),Ym(e,t,n)},useInsertionEffect:function(e,t){return am=\"useInsertionEffect\",um(),cm(t),Wm(e,t)},useLayoutEffect:function(e,t){return am=\"useLayoutEffect\",um(),cm(t),Bm(e,t)},useMemo:function(e,t){am=\"useMemo\",um(),cm(t);var n=qh.current;qh.current=yv;try{return Gm(e,t)}finally{qh.current=n}},useReducer:function(e,t,n){am=\"useReducer\",um();var r=qh.current;qh.current=yv;try{return wm(e,t,n)}finally{qh.current=r}},useRef:function(e){return am=\"useRef\",um(),zm(e)},useState:function(e){am=\"useState\",um();var t=qh.current;qh.current=yv;try{return Nm(e)}finally{qh.current=t}},useDebugValue:function(e,t){am=\"useDebugValue\",um()},useDeferredValue:function(e){return am=\"useDeferredValue\",um(),Zm(e)},useTransition:function(){return am=\"useTransition\",um(),rv()},useMutableSource:function(e,t,n){am=\"useMutableSource\",um()},useSyncExternalStore:function(e,t,n){return am=\"useSyncExternalStore\",um(),xm(e,t,n)},useId:function(){return am=\"useId\",um(),lv()},unstable_isNewReconciler:!1},mv={readContext:function(e){return sp(e)},useCallback:function(e,t){return am=\"useCallback\",sm(),Xm(e,t)},useContext:function(e){return am=\"useContext\",sm(),sp(e)},useEffect:function(e,t){return am=\"useEffect\",sm(),Fm(e,t)},useImperativeHandle:function(e,t,n){return am=\"useImperativeHandle\",sm(),Ym(e,t,n)},useInsertionEffect:function(e,t){return am=\"useInsertionEffect\",sm(),Wm(e,t)},useLayoutEffect:function(e,t){return am=\"useLayoutEffect\",sm(),Bm(e,t)},useMemo:function(e,t){am=\"useMemo\",sm();var n=qh.current;qh.current=yv;try{return Gm(e,t)}finally{qh.current=n}},useReducer:function(e,t,n){am=\"useReducer\",sm();var r=qh.current;qh.current=yv;try{return wm(e,t,n)}finally{qh.current=r}},useRef:function(e){return am=\"useRef\",sm(),zm(e)},useState:function(e){am=\"useState\",sm();var t=qh.current;qh.current=yv;try{return Nm(e)}finally{qh.current=t}},useDebugValue:function(e,t){am=\"useDebugValue\",sm()},useDeferredValue:function(e){return am=\"useDeferredValue\",sm(),Zm(e)},useTransition:function(){return am=\"useTransition\",sm(),rv()},useMutableSource:function(e,t,n){am=\"useMutableSource\",sm()},useSyncExternalStore:function(e,t,n){return am=\"useSyncExternalStore\",sm(),xm(e,t,n)},useId:function(){return am=\"useId\",sm(),lv()},unstable_isNewReconciler:!1},vv={readContext:function(e){return sp(e)},useCallback:function(e,t){return am=\"useCallback\",sm(),Km(e,t)},useContext:function(e){return am=\"useContext\",sm(),sp(e)},useEffect:function(e,t){return am=\"useEffect\",sm(),Am(e,t)},useImperativeHandle:function(e,t,n){return am=\"useImperativeHandle\",sm(),Qm(e,t,n)},useInsertionEffect:function(e,t){return am=\"useInsertionEffect\",sm(),jm(e,t)},useLayoutEffect:function(e,t){return am=\"useLayoutEffect\",sm(),Hm(e,t)},useMemo:function(e,t){am=\"useMemo\",sm();var n=qh.current;qh.current=bv;try{return Jm(e,t)}finally{qh.current=n}},useReducer:function(e,t,n){am=\"useReducer\",sm();var r=qh.current;qh.current=bv;try{return km(e)}finally{qh.current=r}},useRef:function(e){return am=\"useRef\",sm(),Mm()},useState:function(e){am=\"useState\",sm();var t=qh.current;qh.current=bv;try{return _m()}finally{qh.current=t}},useDebugValue:function(e,t){return am=\"useDebugValue\",sm(),$m()},useDeferredValue:function(e){return am=\"useDeferredValue\",sm(),ev(e)},useTransition:function(){return am=\"useTransition\",sm(),av()},useMutableSource:function(e,t,n){am=\"useMutableSource\",sm()},useSyncExternalStore:function(e,t,n){return am=\"useSyncExternalStore\",sm(),Cm(e,t)},useId:function(){return am=\"useId\",sm(),uv()},unstable_isNewReconciler:!1},gv={readContext:function(e){return sp(e)},useCallback:function(e,t){return am=\"useCallback\",sm(),Km(e,t)},useContext:function(e){return am=\"useContext\",sm(),sp(e)},useEffect:function(e,t){return am=\"useEffect\",sm(),Am(e,t)},useImperativeHandle:function(e,t,n){return am=\"useImperativeHandle\",sm(),Qm(e,t,n)},useInsertionEffect:function(e,t){return am=\"useInsertionEffect\",sm(),jm(e,t)},useLayoutEffect:function(e,t){return am=\"useLayoutEffect\",sm(),Hm(e,t)},useMemo:function(e,t){am=\"useMemo\",sm();var n=qh.current;qh.current=wv;try{return Jm(e,t)}finally{qh.current=n}},useReducer:function(e,t,n){am=\"useReducer\",sm();var r=qh.current;qh.current=wv;try{return Sm(e)}finally{qh.current=r}},useRef:function(e){return am=\"useRef\",sm(),Mm()},useState:function(e){am=\"useState\",sm();var t=qh.current;qh.current=wv;try{return Im()}finally{qh.current=t}},useDebugValue:function(e,t){return am=\"useDebugValue\",sm(),$m()},useDeferredValue:function(e){return am=\"useDeferredValue\",sm(),tv(e)},useTransition:function(){return am=\"useTransition\",sm(),ov()},useMutableSource:function(e,t,n){am=\"useMutableSource\",sm()},useSyncExternalStore:function(e,t,n){return am=\"useSyncExternalStore\",sm(),Cm(e,t)},useId:function(){return am=\"useId\",sm(),uv()},unstable_isNewReconciler:!1},yv={readContext:function(e){return kv(),sp(e)},useCallback:function(e,t){return am=\"useCallback\",Sv(),um(),Xm(e,t)},useContext:function(e){return am=\"useContext\",Sv(),um(),sp(e)},useEffect:function(e,t){return am=\"useEffect\",Sv(),um(),Fm(e,t)},useImperativeHandle:function(e,t,n){return am=\"useImperativeHandle\",Sv(),um(),Ym(e,t,n)},useInsertionEffect:function(e,t){return am=\"useInsertionEffect\",Sv(),um(),Wm(e,t)},useLayoutEffect:function(e,t){return am=\"useLayoutEffect\",Sv(),um(),Bm(e,t)},useMemo:function(e,t){am=\"useMemo\",Sv(),um();var n=qh.current;qh.current=yv;try{return Gm(e,t)}finally{qh.current=n}},useReducer:function(e,t,n){am=\"useReducer\",Sv(),um();var r=qh.current;qh.current=yv;try{return wm(e,t,n)}finally{qh.current=r}},useRef:function(e){return am=\"useRef\",Sv(),um(),zm(e)},useState:function(e){am=\"useState\",Sv(),um();var t=qh.current;qh.current=yv;try{return Nm(e)}finally{qh.current=t}},useDebugValue:function(e,t){am=\"useDebugValue\",Sv(),um()},useDeferredValue:function(e){return am=\"useDeferredValue\",Sv(),um(),Zm(e)},useTransition:function(){return am=\"useTransition\",Sv(),um(),rv()},useMutableSource:function(e,t,n){am=\"useMutableSource\",Sv(),um()},useSyncExternalStore:function(e,t,n){return am=\"useSyncExternalStore\",Sv(),um(),xm(e,t,n)},useId:function(){return am=\"useId\",Sv(),um(),lv()},unstable_isNewReconciler:!1},bv={readContext:function(e){return kv(),sp(e)},useCallback:function(e,t){return am=\"useCallback\",Sv(),sm(),Km(e,t)},useContext:function(e){return am=\"useContext\",Sv(),sm(),sp(e)},useEffect:function(e,t){return am=\"useEffect\",Sv(),sm(),Am(e,t)},useImperativeHandle:function(e,t,n){return am=\"useImperativeHandle\",Sv(),sm(),Qm(e,t,n)},useInsertionEffect:function(e,t){return am=\"useInsertionEffect\",Sv(),sm(),jm(e,t)},useLayoutEffect:function(e,t){return am=\"useLayoutEffect\",Sv(),sm(),Hm(e,t)},useMemo:function(e,t){am=\"useMemo\",Sv(),sm();var n=qh.current;qh.current=bv;try{return Jm(e,t)}finally{qh.current=n}},useReducer:function(e,t,n){am=\"useReducer\",Sv(),sm();var r=qh.current;qh.current=bv;try{return km(e)}finally{qh.current=r}},useRef:function(e){return am=\"useRef\",Sv(),sm(),Mm()},useState:function(e){am=\"useState\",Sv(),sm();var t=qh.current;qh.current=bv;try{return _m()}finally{qh.current=t}},useDebugValue:function(e,t){return am=\"useDebugValue\",Sv(),sm(),$m()},useDeferredValue:function(e){return am=\"useDeferredValue\",Sv(),sm(),ev(e)},useTransition:function(){return am=\"useTransition\",Sv(),sm(),av()},useMutableSource:function(e,t,n){am=\"useMutableSource\",Sv(),sm()},useSyncExternalStore:function(e,t,n){return am=\"useSyncExternalStore\",Sv(),sm(),Cm(e,t)},useId:function(){return am=\"useId\",Sv(),sm(),uv()},unstable_isNewReconciler:!1},wv={readContext:function(e){return kv(),sp(e)},useCallback:function(e,t){return am=\"useCallback\",Sv(),sm(),Km(e,t)},useContext:function(e){return am=\"useContext\",Sv(),sm(),sp(e)},useEffect:function(e,t){return am=\"useEffect\",Sv(),sm(),Am(e,t)},useImperativeHandle:function(e,t,n){return am=\"useImperativeHandle\",Sv(),sm(),Qm(e,t,n)},useInsertionEffect:function(e,t){return am=\"useInsertionEffect\",Sv(),sm(),jm(e,t)},useLayoutEffect:function(e,t){return am=\"useLayoutEffect\",Sv(),sm(),Hm(e,t)},useMemo:function(e,t){am=\"useMemo\",Sv(),sm();var n=qh.current;qh.current=bv;try{return Jm(e,t)}finally{qh.current=n}},useReducer:function(e,t,n){am=\"useReducer\",Sv(),sm();var r=qh.current;qh.current=bv;try{return Sm(e)}finally{qh.current=r}},useRef:function(e){return am=\"useRef\",Sv(),sm(),Mm()},useState:function(e){am=\"useState\",Sv(),sm();var t=qh.current;qh.current=bv;try{return Im()}finally{qh.current=t}},useDebugValue:function(e,t){return am=\"useDebugValue\",Sv(),sm(),$m()},useDeferredValue:function(e){return am=\"useDeferredValue\",Sv(),sm(),tv(e)},useTransition:function(){return am=\"useTransition\",Sv(),sm(),ov()},useMutableSource:function(e,t,n){am=\"useMutableSource\",Sv(),sm()},useSyncExternalStore:function(e,t,n){return am=\"useSyncExternalStore\",Sv(),sm(),Cm(e,t)},useId:function(){return am=\"useId\",Sv(),sm(),uv()},unstable_isNewReconciler:!1};var xv=jr,Cv=0,Ev=-1,Tv=-1,Rv=-1,Pv=!1,Dv=!1;function Nv(){return Pv}function _v(){return Cv}function Iv(){Cv=xv()}function Lv(e){Tv=xv(),e.actualStartTime<0&&(e.actualStartTime=xv())}function zv(e){Tv=-1}function Mv(e,t){if(Tv>=0){var n=xv()-Tv;e.actualDuration+=n,t&&(e.selfBaseDuration=n),Tv=-1}}function Ov(e){if(Ev>=0){var t=xv()-Ev;Ev=-1;for(var n=e.return;null!==n;){switch(n.tag){case c:return void(n.stateNode.effectDuration+=t);case b:return void(n.stateNode.effectDuration+=t)}n=n.return}}}function Uv(e){if(Rv>=0){var t=xv()-Rv;Rv=-1;for(var n=e.return;null!==n;){switch(n.tag){case c:var r=n.stateNode;return void(null!==r&&(r.passiveEffectDuration+=t));case b:var a=n.stateNode;return void(null!==a&&(a.passiveEffectDuration+=t))}n=n.return}}}function Fv(){Ev=xv()}function Av(){Rv=xv()}function Wv(e){for(var t=e.child;t;)e.actualDuration+=t.actualDuration,t=t.sibling}function jv(e,t){return{value:e,source:t,stack:ft(t),digest:null}}function Bv(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function Hv(e,t){try{0;var n=t.value,r=t.source,a=t.stack,o=null!==a?a:\"\";if(null!=n&&n._suppressLogging){if(e.tag===u)return;console.error(n)}var i=r?vt(r):null,l=(i?\"The above error occurred in the <\"+i+\"> component:\":\"The above error occurred in one of your React components:\")+\"\\n\"+o+\"\\n\\n\"+(e.tag===c?\"Consider adding an error boundary to your tree to customize error handling behavior.\\nVisit https://reactjs.org/link/error-boundaries to learn more about error boundaries.\":\"React will try to recreate this component tree from scratch using the error boundary you provided, \"+(vt(e)||\"Anonymous\")+\".\");console.error(l)}catch(e){setTimeout(function(){throw e})}}var Vv=\"function\"==typeof WeakMap?WeakMap:Map;function Yv(e,t,n){var r=Ep(di,n);r.tag=kp,r.payload={element:null};var a=t.value;return r.callback=function(){Iw(a),Hv(e,t)},r}function Qv(e,t,n){var r=Ep(di,n);r.tag=kp;var a=e.type.getDerivedStateFromError;if(\"function\"==typeof a){var i=t.value;r.payload=function(){return a(i)},r.callback=function(){nk(e),Hv(e,t)}}var l=e.stateNode;return null!==l&&\"function\"==typeof l.componentDidCatch&&(r.callback=function(){var n;nk(e),Hv(e,t),\"function\"!=typeof a&&(n=this,null===Wb?Wb=new Set([n]):Wb.add(n));var r=t.value,i=t.stack;this.componentDidCatch(r,{componentStack:null!==i?i:\"\"}),\"function\"!=typeof a&&(Ri(e.lanes,Do)||o(\"%s: Error boundaries should implement getDerivedStateFromError(). In that method, return a state update to display an error message or fallback UI.\",vt(e)||\"Unknown\"))}),r}function qv(e,t,n){var r,a=e.pingCache;if(null===a?(a=e.pingCache=new Vv,r=new Set,a.set(t,r)):void 0===(r=a.get(t))&&(r=new Set,a.set(t,r)),!r.has(n)){r.add(n);var i=function(e,t,n){var r=e.pingCache;null!==r&&r.delete(t);var a=aw();Mi(e,n),function(e){e.tag!==Ud&&eb()&&null===ob.current&&o(\"A suspended resource finished loading inside a test, but the event was not wrapped in act(...).\\n\\nWhen testing, code that resolves suspended data should be wrapped into act(...):\\n\\nact(() => {\\n /* finish loading suspended data */\\n});\\n/* assert on the output */\\n\\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act\")}(e),yb===e&&Pi(wb,n)&&(xb===hb||xb===pb&&bi(wb)&&Ha()-_b<Ib?yw(e,Ro):Pb=Di(Pb,n));uw(e,a)}.bind(null,e,t,n);no&&Hw(e,n),t.then(i,i)}}function $v(e){var t=e;do{if(t.tag===w&&Mh(t))return t;t=t.return}while(null!==t);return null}function Xv(e,t,n,r,a){if((e.mode&bo)===yo){if(e===t)e.flags|=ya;else{if(e.flags|=la,n.flags|=ba,n.flags&=~(ma|ga),n.tag===u)if(null===n.alternate)n.tag=C;else{var o=Ep(di,Do);o.tag=wp,Tp(n,o,Do)}n.lanes=Di(n.lanes,Do)}return e}return e.flags|=ya,e.lanes=a,e}function Kv(e,t,n,r,a){if(n.flags|=ga,no&&Hw(e,a),null!==r&&\"object\"==typeof r&&\"function\"==typeof r.then){var o=r;!function(e,t){var n=e.tag;if((e.mode&bo)===yo&&(n===l||n===y||n===S)){var r=e.alternate;r?(e.updateQueue=r.updateQueue,e.memoizedState=r.memoizedState,e.lanes=r.lanes):(e.updateQueue=null,e.memoizedState=null)}}(n),Lf()&&n.mode&bo&&hf();var i=$v(t);if(null!==i)return i.flags&=~ua,Xv(i,t,n,0,a),i.mode&bo&&qv(e,o,a),void function(e,t,n,r){var a=e.updateQueue;if(null===a){var o=new Set;o.add(n),e.updateQueue=o}else a.add(n)}(i,0,o);if((a&Do)===Ro)return qv(e,o,a),void xw();r=new Error(\"A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition.\")}else if(Lf()&&n.mode&bo){hf();var s=$v(t);if(null!==s)return(s.flags&ya)===ea&&(s.flags|=ua),Xv(s,t,n,0,a),void zf(jv(r,n))}!function(e){xb!==hb&&(xb=fb);null===Db?Db=[e]:Db.push(e)}(r=jv(r,n));var d=t;do{switch(d.tag){case c:var f=r;d.flags|=ya;var p=Ci(a);return d.lanes=Di(d.lanes,p),void Pp(d,Yv(d,f,p));case u:var h=r,m=d.type,v=d.stateNode;if((d.flags&la)===ea&&(\"function\"==typeof m.getDerivedStateFromError||null!==v&&\"function\"==typeof v.componentDidCatch&&!_w(v))){d.flags|=ya;var g=Ci(a);return d.lanes=Di(d.lanes,g),void Pp(d,Qv(d,h,g))}}d=d.return}while(null!==d)}var Gv,Jv,Zv,eg,tg,ng,rg,ag,og=n.ReactCurrentOwner,ig=!1;function lg(e,t,n,r){t.child=null===e?ph(t,null,n,r):fh(t,e.child,n,r)}function ug(e,t,n,r,a){if(t.type!==t.elementType){var o=n.propTypes;o&&pd(o,r,\"prop\",ht(n))}var i,l,u=n.render,s=t.ref;if(up(t,a),lo(t),og.current=t,Ct(!0),i=pm(e,t,u,r,s,a),l=hm(),t.mode&ko){ro(!0);try{i=pm(e,t,u,r,s,a),l=hm()}finally{ro(!1)}}return Ct(!1),uo(),null===e||ig?(Lf()&&l&&rf(t),t.flags|=ta,lg(e,t,i,a),t.child):(mm(e,t,a),Ag(e,t,a))}function sg(e,t,n,r,a){if(null===e){var o=n.type;if(function(e){return\"function\"==typeof e&&!sk(e)&&void 0===e.defaultProps}(o)&&null===n.compare&&void 0===n.defaultProps){var i;return i=Jw(o),t.tag=S,t.type=i,bg(t,o),cg(e,t,i,r,a)}var l=o.propTypes;l&&pd(l,r,\"prop\",ht(o));var u=fk(n.type,null,r,t,t.mode,a);return u.ref=t.ref,u.return=t,t.child=u,u}var s=n.type,c=s.propTypes;c&&pd(c,r,\"prop\",ht(s));var d=e.child;if(!Wg(e,a)){var f=d.memoizedProps,p=n.compare;if((p=null!==p?p:ju)(f,r)&&e.ref===t.ref)return Ag(e,t,a)}t.flags|=ta;var h=ck(d,r);return h.ref=t.ref,h.return=t,t.child=h,h}function cg(e,t,n,r,a){if(t.type!==t.elementType){var o=t.elementType;if(o.$$typeof===Ue){var i=o,l=i._payload,u=i._init;try{o=u(l)}catch(e){o=null}var s=o&&o.propTypes;s&&pd(s,r,\"prop\",ht(o))}}if(null!==e){var c=e.memoizedProps;if(ju(c,r)&&e.ref===t.ref&&t.type===e.type){if(ig=!1,t.pendingProps=r=c,!Wg(e,a))return t.lanes=e.lanes,Ag(e,t,a);(e.flags&ba)!==ea&&(ig=!0)}}return pg(e,t,n,r,a)}function dg(e,t,n){var r,a=t.pendingProps,o=a.children,i=null!==e?e.memoizedState:null;if(\"hidden\"===a.mode||z)if((t.mode&bo)===yo){var l={baseLanes:Ro,cachePool:null,transitions:null};t.memoizedState=l,vw(t,n)}else{if(!Ri(n,si)){var u;if(null!==i)u=Di(i.baseLanes,n);else u=n;t.lanes=t.childLanes=Ii(si);var s={baseLanes:u,cachePool:null,transitions:null};return t.memoizedState=s,t.updateQueue=null,vw(t,u),null}var c={baseLanes:Ro,cachePool:null,transitions:null};t.memoizedState=c,vw(t,null!==i?i.baseLanes:n)}else null!==i?(r=Di(i.baseLanes,n),t.memoizedState=null):r=n,vw(t,r);return lg(e,t,o,n),t.child}function fg(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=sa,t.flags|=ka)}function pg(e,t,n,r,a){if(t.type!==t.elementType){var o=n.propTypes;o&&pd(o,r,\"prop\",ht(n))}var i,l,u;if(i=Rd(t,Ed(0,n,!0)),up(t,a),lo(t),og.current=t,Ct(!0),l=pm(e,t,n,r,i,a),u=hm(),t.mode&ko){ro(!0);try{l=pm(e,t,n,r,i,a),u=hm()}finally{ro(!1)}}return Ct(!1),uo(),null===e||ig?(Lf()&&u&&rf(t),t.flags|=ta,lg(e,t,l,a),t.child):(mm(e,t,a),Ag(e,t,a))}function hg(e,t,n,r,a){switch(Ik(t)){case!1:var i=t.stateNode,l=new(0,t.type)(t.memoizedProps,i.context).state;i.updater.enqueueSetState(i,l,null);break;case!0:t.flags|=la,t.flags|=ya;var u=new Error(\"Simulated error coming from DevTools\"),s=Ci(a);t.lanes=Di(t.lanes,s),Pp(t,Qv(t,jv(u,t),s))}if(t.type!==t.elementType){var c=n.propTypes;c&&pd(c,r,\"prop\",ht(n))}var d,f;Dd(n)?(d=!0,zd(t)):d=!1,up(t,a),null===t.stateNode?(Fg(e,t),rh(t,n,r),oh(t,n,r,a),f=!0):f=null===e?function(e,t,n,r){var a=e.stateNode,o=e.memoizedProps;a.props=o;var i=a.context,l=t.contextType,u=kd;u=\"object\"==typeof l&&null!==l?sp(l):Rd(e,Ed(0,t,!0));var s=t.getDerivedStateFromProps,c=\"function\"==typeof s||\"function\"==typeof a.getSnapshotBeforeUpdate;c||\"function\"!=typeof a.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof a.componentWillReceiveProps||o===n&&i===u||ah(e,a,n,u),Ip();var d=e.memoizedState,f=a.state=d;if(Np(e,n,a,r),f=e.memoizedState,o===n&&d===f&&!Pd()&&!Lp()){if(\"function\"==typeof a.componentDidMount){var p=ra;p|=Sa,(e.mode&So)!==yo&&(p|=Ca),e.flags|=p}return!1}\"function\"==typeof s&&($p(e,t,s,n),f=e.memoizedState);var h=Lp()||th(e,t,o,n,d,f,u);if(h){if(c||\"function\"!=typeof a.UNSAFE_componentWillMount&&\"function\"!=typeof a.componentWillMount||(\"function\"==typeof a.componentWillMount&&a.componentWillMount(),\"function\"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount()),\"function\"==typeof a.componentDidMount){var m=ra;m|=Sa,(e.mode&So)!==yo&&(m|=Ca),e.flags|=m}}else{if(\"function\"==typeof a.componentDidMount){var v=ra;v|=Sa,(e.mode&So)!==yo&&(v|=Ca),e.flags|=v}e.memoizedProps=n,e.memoizedState=f}return a.props=n,a.state=f,a.context=u,h}(t,n,r,a):function(e,t,n,r,a){var o=t.stateNode;Cp(e,t);var i=t.memoizedProps,l=t.type===t.elementType?i:$f(t.type,i);o.props=l;var u=t.pendingProps,s=o.context,c=n.contextType,d=kd;d=\"object\"==typeof c&&null!==c?sp(c):Rd(t,Ed(0,n,!0));var f=n.getDerivedStateFromProps,p=\"function\"==typeof f||\"function\"==typeof o.getSnapshotBeforeUpdate;p||\"function\"!=typeof o.UNSAFE_componentWillReceiveProps&&\"function\"!=typeof o.componentWillReceiveProps||i===u&&s===d||ah(t,o,r,d),Ip();var h=t.memoizedState,m=o.state=h;if(Np(t,r,o,a),m=t.memoizedState,i===u&&h===m&&!Pd()&&!Lp()&&!L)return\"function\"==typeof o.componentDidUpdate&&(i===e.memoizedProps&&h===e.memoizedState||(t.flags|=ra)),\"function\"==typeof o.getSnapshotBeforeUpdate&&(i===e.memoizedProps&&h===e.memoizedState||(t.flags|=ca)),!1;\"function\"==typeof f&&($p(t,n,f,r),m=t.memoizedState);var v=Lp()||th(t,n,l,r,h,m,d)||L;return v?(p||\"function\"!=typeof o.UNSAFE_componentWillUpdate&&\"function\"!=typeof o.componentWillUpdate||(\"function\"==typeof o.componentWillUpdate&&o.componentWillUpdate(r,m,d),\"function\"==typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,m,d)),\"function\"==typeof o.componentDidUpdate&&(t.flags|=ra),\"function\"==typeof o.getSnapshotBeforeUpdate&&(t.flags|=ca)):(\"function\"==typeof o.componentDidUpdate&&(i===e.memoizedProps&&h===e.memoizedState||(t.flags|=ra)),\"function\"==typeof o.getSnapshotBeforeUpdate&&(i===e.memoizedProps&&h===e.memoizedState||(t.flags|=ca)),t.memoizedProps=r,t.memoizedState=m),o.props=r,o.state=m,o.context=d,v}(e,t,n,r,a);var p=mg(e,t,n,f,d,a),h=t.stateNode;return f&&h.props!==r&&(ng||o(\"It looks like %s is reassigning its own `this.props` while rendering. This is not supported and can lead to confusing bugs.\",vt(t)||\"a component\"),ng=!0),p}function mg(e,t,n,r,a,o){fg(e,t);var i=(t.flags&la)!==ea;if(!r&&!i)return a&&Md(t,n,!1),Ag(e,t,o);var l,u=t.stateNode;if(og.current=t,i&&\"function\"!=typeof n.getDerivedStateFromError)l=null,zv();else{if(lo(t),Ct(!0),l=u.render(),t.mode&ko){ro(!0);try{u.render()}finally{ro(!1)}}Ct(!1),uo()}return t.flags|=ta,null!==e&&i?function(e,t,n,r){t.child=fh(t,e.child,null,r),t.child=fh(t,null,n,r)}(e,t,l,o):lg(e,t,l,o),t.memoizedState=u.state,a&&Md(t,n,!0),t.child}function vg(e){var t=e.stateNode;t.pendingContext?Id(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Id(e,t.context,!1),kh(e,t.containerInfo)}function gg(e,t,n,r,a){return _f(),zf(a),t.flags|=ua,lg(e,t,n,r),t.child}function yg(e,t,n,r){Fg(e,t);var a=t.pendingProps,o=n,i=o._payload,c=(0,o._init)(i);t.type=c;var d=t.tag=function(e){if(\"function\"==typeof e)return sk(e)?u:l;if(void 0!==e&&null!==e){var t=e.$$typeof;if(t===Le)return y;if(t===Oe)return k}return s}(c),f=$f(c,a);switch(d){case l:return bg(t,c),t.type=c=Jw(c),pg(null,t,c,f,r);case u:return t.type=c=Zw(c),hg(null,t,c,f,r);case y:return t.type=c=ek(c),ug(null,t,c,f,r);case k:if(t.type!==t.elementType){var p=c.propTypes;p&&pd(p,f,\"prop\",ht(c))}return sg(null,t,c,$f(c.type,f),r)}var h=\"\";throw null!==c&&\"object\"==typeof c&&c.$$typeof===Ue&&(h=\" Did you wrap a component in React.lazy() more than once?\"),new Error(\"Element type is invalid. Received a promise that resolves to: \"+c+\". Lazy element type must resolve to a class or function.\"+h)}function bg(e,t){if(t&&t.childContextTypes&&o(\"%s(...): childContextTypes cannot be defined on a function component.\",t.displayName||t.name||\"Component\"),null!==e.ref){var n=\"\",r=wt();r&&(n+=\"\\n\\nCheck the render method of `\"+r+\"`.\");var a=r||\"\",i=e._debugSource;i&&(a=i.fileName+\":\"+i.lineNumber),tg[a]||(tg[a]=!0,o(\"Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?%s\",n))}if(\"function\"==typeof t.getDerivedStateFromProps){var l=ht(t)||\"Unknown\";eg[l]||(o(\"%s: Function components do not support getDerivedStateFromProps.\",l),eg[l]=!0)}if(\"object\"==typeof t.contextType&&null!==t.contextType){var u=ht(t)||\"Unknown\";Zv[u]||(o(\"%s: Function components do not support contextType.\",u),Zv[u]=!0)}}Gv={},Jv={},Zv={},eg={},tg={},ng=!1,rg={},ag={};var wg={dehydrated:null,treeContext:null,retryLane:Po};function kg(e){return{baseLanes:e,cachePool:null,transitions:null}}function Sg(e,t,n){var r=t.pendingProps;Lk(t)&&(t.flags|=la);var a=Dh.current,i=!1,l=(t.flags&la)!==ea;if(l||function(e,t,n,r){return(null===t||null!==t.memoizedState)&&Nh(e,Ph)}(a,e)?(i=!0,t.flags&=~la):null!==e&&null===e.memoizedState||(a=a|Rh),Lh(t,a=_h(a)),null===e){Cf(t);var u=t.memoizedState;if(null!==u){var s=u.dehydrated;if(null!==s)return function(e,t,n){(e.mode&bo)===yo?(o(\"Cannot hydrate Suspense in legacy mode. Switch from ReactDOM.hydrate(element, container) to ReactDOMClient.hydrateRoot(container, <App />).render(element) or remove the Suspense components from the server rendered components.\"),e.lanes=Ii(Do)):Hc(t)?e.lanes=Ii(Io):e.lanes=Ii(si);return null}(t,s)}var c=r.children,d=r.fallback;if(i){var f=function(e,t,n,r){var a,o,i=e.mode,l=e.child,u={mode:\"hidden\",children:t};(i&bo)===yo&&null!==l?((a=l).childLanes=Ro,a.pendingProps=u,e.mode&wo&&(a.actualDuration=0,a.actualStartTime=-1,a.selfBaseDuration=0,a.treeBaseDuration=0),o=hk(n,i,r,null)):(a=Cg(u,i),o=hk(n,i,r,null));return a.return=e,o.return=e,a.sibling=o,e.child=a,o}(t,c,d,n);return t.child.memoizedState=kg(n),t.memoizedState=wg,f}return xg(t,c)}var p=e.memoizedState;if(null!==p){var h=p.dehydrated;if(null!==h)return function(e,t,n,r,a,o,i){if(n){if(t.flags&ua){t.flags&=~ua;var l=Bv(new Error(\"There was an error while hydrating this Suspense boundary. Switched to client rendering.\"));return Tg(e,t,i,l)}if(null!==t.memoizedState)return t.child=e.child,t.flags|=la,null;var u=r.children,s=r.fallback,c=function(e,t,n,r,a){var o=t.mode,i=Cg({mode:\"visible\",children:n},o),l=hk(r,o,a,null);l.flags|=na,i.return=t,l.return=t,i.sibling=l,t.child=i,(t.mode&bo)!==yo&&fh(t,e.child,null,a);return l}(e,t,u,s,i),d=t.child;return d.memoizedState=kg(i),t.memoizedState=wg,c}if(pf(),(t.mode&bo)===yo)return Tg(e,t,i,null);if(Hc(a)){var f,p,h,m=function(e){var t,n,r,a=e.nextSibling&&e.nextSibling.dataset;return a&&(t=a.dgst,n=a.msg,r=a.stck),{message:n,digest:t,stack:r}}(a);f=m.digest,p=m.message,h=m.stack;var v=Bv(p?new Error(p):new Error(\"The server could not finish this Suspense boundary, likely due to an error during server rendering. Switched to client rendering.\"),f,h);return Tg(e,t,i,v)}var g=Ri(i,e.childLanes);if(ig||g){var y=rw();if(null!==y){var b=function(e,t){var n;switch(xi(t)){case _o:n=No;break;case Lo:n=Io;break;case Oo:case Uo:case Fo:case Ao:case Wo:case jo:case Bo:case Ho:case Vo:case Yo:case Qo:case qo:case $o:case Xo:case Ko:case Go:case Zo:case ei:case ti:case ni:case ri:n=zo;break;case ui:n=li;break;default:n=Po}return(n&(e.suspendedLanes|t))!==Po?Po:n}(y,i);if(b!==Po&&b!==o.retryLane){o.retryLane=b;var w=di;pp(e,b),lw(y,e,b,w)}}xw();var k=Bv(new Error(\"This Suspense boundary received an update before it finished hydrating. This caused the boundary to switch to client rendering. The usual way to fix this is to wrap the original update in startTransition.\"));return Tg(e,t,i,k)}if(Bc(a)){t.flags|=la,t.child=e.child;var S=function(e){var t=e.memoizedState,n=Po;null!==t&&(n=t.retryLane);Mw(e,n)}.bind(null,e);return E=S,a._reactRetry=E,null}vf(t,a,o.treeContext);var x=r.children,C=xg(t,x);return C.flags|=fa,C;var E}(e,t,l,r,h,p,n)}if(i){var m=r.fallback,v=function(e,t,n,r,a){var o,i,l=t.mode,u=e.child,s=u.sibling,c={mode:\"hidden\",children:n};if((l&bo)===yo&&t.child!==u){var d=t.child;(o=d).childLanes=Ro,o.pendingProps=c,t.mode&wo&&(o.actualDuration=0,o.actualStartTime=-1,o.selfBaseDuration=u.selfBaseDuration,o.treeBaseDuration=u.treeBaseDuration),t.deletions=null}else(o=Eg(u,c)).subtreeFlags=u.subtreeFlags&Na;null!==s?i=ck(s,r):(i=hk(r,l,a,null)).flags|=na;return i.return=t,o.return=t,o.sibling=i,t.child=o,i}(e,t,r.children,m,n),g=t.child,y=e.child.memoizedState;return g.memoizedState=null===y?kg(n):function(e,t){return{baseLanes:Di(e.baseLanes,t),cachePool:null,transitions:e.transitions}}(y,n),g.childLanes=function(e,t){return Ni(e.childLanes,t)}(e,n),t.memoizedState=wg,v}var b=function(e,t,n,r){var a=e.child,o=a.sibling,i=Eg(a,{mode:\"visible\",children:n});(t.mode&bo)===yo&&(i.lanes=r);if(i.return=t,i.sibling=null,null!==o){var l=t.deletions;null===l?(t.deletions=[o],t.flags|=aa):l.push(o)}return t.child=i,i}(e,t,r.children,n);return t.memoizedState=null,b}function xg(e,t,n){var r=Cg({mode:\"visible\",children:t},e.mode);return r.return=e,e.child=r,r}function Cg(e,t,n){return mk(e,t,Ro,null)}function Eg(e,t){return ck(e,t)}function Tg(e,t,n,r){null!==r&&zf(r),fh(t,e.child,null,n);var a=xg(t,t.pendingProps.children);return a.flags|=na,t.memoizedState=null,a}function Rg(e,t,n){e.lanes=Di(e.lanes,t);var r=e.alternate;null!==r&&(r.lanes=Di(r.lanes,t)),ip(e.return,t,n)}function Pg(e,t){var n=Jt(e),r=!n&&\"function\"==typeof Qe(e);if(n||r){var a=n?\"array\":\"iterable\";return o(\"A nested %s was passed to row #%s in <SuspenseList />. Wrap it in an additional SuspenseList to configure its revealOrder: <SuspenseList revealOrder=...> ... <SuspenseList revealOrder=...>{%s}</SuspenseList> ... </SuspenseList>\",a,t,a),!1}return!0}function Dg(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Ng(e,t,n){var r=t.pendingProps,a=r.revealOrder,i=r.tail,l=r.children;!function(e){if(void 0!==e&&\"forwards\"!==e&&\"backwards\"!==e&&\"together\"!==e&&!rg[e])if(rg[e]=!0,\"string\"==typeof e)switch(e.toLowerCase()){case\"together\":case\"forwards\":case\"backwards\":o('\"%s\" is not a valid value for revealOrder on <SuspenseList />. Use lowercase \"%s\" instead.',e,e.toLowerCase());break;case\"forward\":case\"backward\":o('\"%s\" is not a valid value for revealOrder on <SuspenseList />. React uses the -s suffix in the spelling. Use \"%ss\" instead.',e,e.toLowerCase());break;default:o('\"%s\" is not a supported revealOrder on <SuspenseList />. Did you mean \"together\", \"forwards\" or \"backwards\"?',e)}else o('%s is not a supported value for revealOrder on <SuspenseList />. Did you mean \"together\", \"forwards\" or \"backwards\"?',e)}(a),function(e,t){void 0===e||ag[e]||(\"collapsed\"!==e&&\"hidden\"!==e?(ag[e]=!0,o('\"%s\" is not a supported value for tail on <SuspenseList />. Did you mean \"collapsed\" or \"hidden\"?',e)):\"forwards\"!==t&&\"backwards\"!==t&&(ag[e]=!0,o('<SuspenseList tail=\"%s\" /> is only valid if revealOrder is \"forwards\" or \"backwards\". Did you mean to specify revealOrder=\"forwards\"?',e)))}(i,a),function(e,t){if((\"forwards\"===t||\"backwards\"===t)&&void 0!==e&&null!==e&&!1!==e)if(Jt(e)){for(var n=0;n<e.length;n++)if(!Pg(e[n],n))return}else{var r=Qe(e);if(\"function\"==typeof r){var a=r.call(e);if(a)for(var i=a.next(),l=0;!i.done;i=a.next()){if(!Pg(i.value,l))return;l++}}else o('A single row was passed to a <SuspenseList revealOrder=\"%s\" />. This is not useful since it needs multiple rows. Did you mean to pass multiple children or an array?',t)}}(l,a),lg(e,t,l,n);var u=Dh.current;Nh(u,Ph)?(u=Ih(u,Ph),t.flags|=la):(null!==e&&(e.flags&la)!==ea&&function(e,t,n){for(var r=t;null!==r;){if(r.tag===w)null!==r.memoizedState&&Rg(r,n,e);else if(r.tag===T)Rg(r,n,e);else if(null!==r.child){r.child.return=r,r=r.child;continue}if(r===e)return;for(;null===r.sibling;){if(null===r.return||r.return===e)return;r=r.return}r.sibling.return=r.return,r=r.sibling}}(t,t.child,n),u=_h(u));if(Lh(t,u),(t.mode&bo)===yo)t.memoizedState=null;else switch(a){case\"forwards\":var s,c=function(e){for(var t=e,n=null;null!==t;){var r=t.alternate;null!==r&&null===Oh(r)&&(n=t),t=t.sibling}return n}(t.child);null===c?(s=t.child,t.child=null):(s=c.sibling,c.sibling=null),Dg(t,!1,s,c,i);break;case\"backwards\":var d=null,f=t.child;for(t.child=null;null!==f;){var p=f.alternate;if(null!==p&&null===Oh(p)){t.child=f;break}var h=f.sibling;f.sibling=d,d=f,f=h}Dg(t,!0,d,null,i);break;case\"together\":Dg(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}var _g=!1;var Ig,Lg,zg,Mg,Og=!1;function Ug(){ig=!0}function Fg(e,t){(t.mode&bo)===yo&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=na)}function Ag(e,t,n){return null!==e&&(t.dependencies=e.dependencies),zv(),Sw(t.lanes),Ri(n,t.childLanes)?(function(e,t){if(null!==e&&t.child!==e.child)throw new Error(\"Resuming work not yet implemented.\");if(null!==t.child){var n=t.child,r=ck(n,n.pendingProps);for(t.child=r,r.return=t;null!==n.sibling;)n=n.sibling,(r=r.sibling=ck(n,n.pendingProps)).return=t;r.sibling=null}}(e,t),t.child):null}function Wg(e,t){return!!Ri(e.lanes,t)}function jg(e,t,n){if(t._debugNeedsRemount&&null!==e)return function(e,t,n){var r=t.return;if(null===r)throw new Error(\"Cannot swap the root fiber.\");if(e.alternate=null,t.alternate=null,n.index=t.index,n.sibling=t.sibling,n.return=t.return,n.ref=t.ref,t===r.child)r.child=n;else{var a=r.child;if(null===a)throw new Error(\"Expected parent to have a child.\");for(;a.sibling!==t;)if(null===(a=a.sibling))throw new Error(\"Expected to find the previous sibling.\");a.sibling=n}var o=r.deletions;return null===o?(r.deletions=[e],r.flags|=aa):o.push(e),n.flags|=na,n}(e,t,fk(t.type,t.key,t.pendingProps,t._debugOwner||null,t.mode,t.lanes));if(null!==e)if(e.memoizedProps!==t.pendingProps||Pd()||t.type!==e.type)ig=!0;else{if(!Wg(e,n)&&(t.flags&la)===ea)return ig=!1,function(e,t,n){switch(t.tag){case c:vg(t),t.stateNode,_f();break;case f:Ch(t);break;case u:Dd(t.type)&&zd(t);break;case d:kh(t,t.stateNode.containerInfo);break;case g:var r=t.memoizedProps.value;ap(t,t.type._context,r);break;case b:Ri(n,t.childLanes)&&(t.flags|=ra);var a=t.stateNode;a.effectDuration=0,a.passiveEffectDuration=0;break;case w:var o=t.memoizedState;if(null!==o){if(null!==o.dehydrated)return Lh(t,_h(Dh.current)),t.flags|=la,null;if(Ri(n,t.child.childLanes))return Sg(e,t,n);Lh(t,_h(Dh.current));var i=Ag(e,t,n);return null!==i?i.sibling:null}Lh(t,_h(Dh.current));break;case T:var l=(e.flags&la)!==ea,s=Ri(n,t.childLanes);if(l){if(s)return Ng(e,t,n);t.flags|=la}var p=t.memoizedState;if(null!==p&&(p.rendering=null,p.tail=null,p.lastEffect=null),Lh(t,Dh.current),s)break;return null;case P:case D:return t.lanes=Ro,dg(e,t,n)}return Ag(e,t,n)}(e,t,n);ig=(e.flags&ba)!==ea}else if(ig=!1,Lf()&&function(e){return lf(),(e.flags&wa)!==ea}(t)){var r=t.index;nf(t,(lf(),$d),r)}switch(t.lanes=Ro,t.tag){case s:return function(e,t,n,r){Fg(e,t);var a,i,s,c=t.pendingProps;if(a=Rd(t,Ed(0,n,!1)),up(t,r),lo(t),n.prototype&&\"function\"==typeof n.prototype.render){var d=ht(n)||\"Unknown\";Gv[d]||(o(\"The <%s /> component appears to have a render method, but doesn't extend React.Component. This is likely to cause errors. Change %s to extend React.Component instead.\",d,d),Gv[d]=!0)}if(t.mode&ko&&Uf.recordLegacyContextWarning(t,null),Ct(!0),og.current=t,i=pm(null,t,n,c,a,r),s=hm(),Ct(!1),uo(),t.flags|=ta,\"object\"==typeof i&&null!==i&&\"function\"==typeof i.render&&void 0===i.$$typeof){var f=ht(n)||\"Unknown\";Jv[f]||(o(\"The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.\",f,f,f),Jv[f]=!0)}if(\"object\"==typeof i&&null!==i&&\"function\"==typeof i.render&&void 0===i.$$typeof){var p=ht(n)||\"Unknown\";Jv[p]||(o(\"The <%s /> component appears to be a function component that returns a class instance. Change %s to a class that extends React.Component instead. If you can't use a class try assigning the prototype on the function as a workaround. `%s.prototype = React.Component.prototype`. Don't use an arrow function since it cannot be called with `new` by React.\",p,p,p),Jv[p]=!0),t.tag=u,t.memoizedState=null,t.updateQueue=null;var h=!1;return Dd(n)?(h=!0,zd(t)):h=!1,t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,xp(t),nh(t,i),oh(t,n,c,r),mg(null,t,n,!0,h,r)}if(t.tag=l,t.mode&ko){ro(!0);try{i=pm(null,t,n,c,a,r),s=hm()}finally{ro(!1)}}return Lf()&&s&&rf(t),lg(null,t,i,r),bg(t,n),t.child}(e,t,t.type,n);case x:return yg(e,t,t.elementType,n);case l:var a=t.type,i=t.pendingProps;return pg(e,t,a,t.elementType===a?i:$f(a,i),n);case u:var E=t.type,N=t.pendingProps;return hg(e,t,E,t.elementType===E?N:$f(E,N),n);case c:return function(e,t,n){if(vg(t),null===e)throw new Error(\"Should have a current fiber. This is a bug in React.\");var r=t.pendingProps,a=t.memoizedState,o=a.element;Cp(e,t),Np(t,r,null,n);var i=t.memoizedState,l=(t.stateNode,i.element);if(a.isDehydrated){var u={element:l,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions};if(t.updateQueue.baseState=u,t.memoizedState=u,t.flags&ua)return gg(e,t,l,n,jv(new Error(\"There was an error while hydrating. Because the error happened outside of a Suspense boundary, the entire root will switch to client rendering.\"),t));if(l!==o)return gg(e,t,l,n,jv(new Error(\"This root received an early update, before anything was able hydrate. Switched the entire root to client rendering.\"),t));mf(t);var s=ph(t,null,l,n);t.child=s;for(var c=s;c;)c.flags=c.flags&~na|fa,c=c.sibling}else{if(_f(),l===o)return Ag(e,t,n);lg(e,t,l,n)}return t.child}(e,t,n);case f:return function(e,t,n){Ch(t),null===e&&Cf(t);var r=t.type,a=t.pendingProps,o=null!==e?e.memoizedProps:null,i=a.children;return Dc(r,a)?i=null:null!==o&&Dc(r,o)&&(t.flags|=oa),fg(e,t),lg(e,t,i,n),t.child}(e,t,n);case p:return function(e,t){return null===e&&Cf(t),null}(e,t);case w:return Sg(e,t,n);case d:return function(e,t,n){kh(t,t.stateNode.containerInfo);var r=t.pendingProps;return null===e?t.child=fh(t,null,r,n):lg(e,t,r,n),t.child}(e,t,n);case y:var _=t.type,I=t.pendingProps;return ug(e,t,_,t.elementType===_?I:$f(_,I),n);case h:return function(e,t,n){return lg(e,t,t.pendingProps,n),t.child}(e,t,n);case m:return function(e,t,n){return lg(e,t,t.pendingProps.children,n),t.child}(e,t,n);case b:return function(e,t,n){t.flags|=ra;var r=t.stateNode;return r.effectDuration=0,r.passiveEffectDuration=0,lg(e,t,t.pendingProps.children,n),t.child}(e,t,n);case g:return function(e,t,n){var r=t.type._context,a=t.pendingProps,i=t.memoizedProps,l=a.value;\"value\"in a||_g||(_g=!0,o(\"The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?\"));var u=t.type.propTypes;if(u&&pd(u,a,\"prop\",\"Context.Provider\"),ap(t,r,l),null!==i){var s=i.value;if(Wu(s,l)){if(i.children===a.children&&!Pd())return Ag(e,t,n)}else lp(t,r,n)}return lg(e,t,a.children,n),t.child}(e,t,n);case v:return function(e,t,n){var r=t.type;void 0===r._context?r!==r.Consumer&&(Og||(Og=!0,o(\"Rendering <Context> directly is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?\"))):r=r._context;var a=t.pendingProps.children;\"function\"!=typeof a&&o(\"A context consumer was rendered with multiple children, or a child that isn't a function. A context consumer expects a single child that is a function. If you did pass a function, make sure there is no trailing or leading whitespace around it.\"),up(t,n);var i,l=sp(r);return lo(t),og.current=t,Ct(!0),i=a(l),Ct(!1),uo(),t.flags|=ta,lg(e,t,i,n),t.child}(e,t,n);case k:var L=t.type,z=$f(L,t.pendingProps);if(t.type!==t.elementType){var M=L.propTypes;M&&pd(M,z,\"prop\",ht(L))}return sg(e,t,L,z=$f(L.type,z),n);case S:return cg(e,t,t.type,t.pendingProps,n);case C:var O=t.type,U=t.pendingProps;return function(e,t,n,r,a){var o;return Fg(e,t),t.tag=u,Dd(n)?(o=!0,zd(t)):o=!1,up(t,a),rh(t,n,r),oh(t,n,r,a),mg(null,t,n,!0,o,a)}(e,t,O,t.elementType===O?U:$f(O,U),n);case T:return Ng(e,t,n);case R:break;case P:return dg(e,t,n)}throw new Error(\"Unknown unit of work tag (\"+t.tag+\"). This error is likely caused by a bug in React. Please file an issue.\")}function Bg(e){e.flags|=ra}function Hg(e){e.flags|=sa,e.flags|=ka}function Vg(e,t){if(!Lf())switch(e.tailMode){case\"hidden\":for(var n=e.tail,r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?e.tail=null:r.sibling=null;break;case\"collapsed\":for(var a=e.tail,o=null;null!==a;)null!==a.alternate&&(o=a),a=a.sibling;null===o?t||null===e.tail?e.tail=null:e.tail.sibling=null:o.sibling=null}}function Yg(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=Ro,r=ea;if(t){if((e.mode&wo)!==yo){for(var a=e.selfBaseDuration,o=e.child;null!==o;)n=Di(n,Di(o.lanes,o.childLanes)),r|=o.subtreeFlags&Na,r|=o.flags&Na,a+=o.treeBaseDuration,o=o.sibling;e.treeBaseDuration=a}else for(var i=e.child;null!==i;)n=Di(n,Di(i.lanes,i.childLanes)),r|=i.subtreeFlags&Na,r|=i.flags&Na,i.return=e,i=i.sibling;e.subtreeFlags|=r}else{if((e.mode&wo)!==yo){for(var l=e.actualDuration,u=e.selfBaseDuration,s=e.child;null!==s;)n=Di(n,Di(s.lanes,s.childLanes)),r|=s.subtreeFlags,r|=s.flags,l+=s.actualDuration,u+=s.treeBaseDuration,s=s.sibling;e.actualDuration=l,e.treeBaseDuration=u}else for(var c=e.child;null!==c;)n=Di(n,Di(c.lanes,c.childLanes)),r|=c.subtreeFlags,r|=c.flags,c.return=e,c=c.sibling;e.subtreeFlags|=r}return e.childLanes=n,t}function Qg(e,t,n){if(cf&&null!==sf&&(t.mode&bo)!==yo&&(t.flags&la)===ea)return Nf(t),_f(),t.flags|=ua|ga|ya,!1;var r=Df(t);if(null!==n&&null!==n.dehydrated){if(null===e){if(!r)throw new Error(\"A dehydrated suspense component was completed without a hydrated node. This is probably a bug in React.\");if(Tf(t),Yg(t),(t.mode&wo)!==yo)if(null!==n){var a=t.child;null!==a&&(t.treeBaseDuration-=a.treeBaseDuration)}return!1}if(_f(),(t.flags&la)===ea&&(t.memoizedState=null),t.flags|=ra,Yg(t),(t.mode&wo)!==yo&&null!==n){var o=t.child;null!==o&&(t.treeBaseDuration-=o.treeBaseDuration)}return!1}return If(),!0}function qg(e,t,n){var r=t.pendingProps;switch(of(t),t.tag){case s:case x:case S:case l:case y:case h:case m:case b:case v:case k:return Yg(t),null;case u:return Dd(t.type)&&Nd(t),Yg(t),null;case c:var a=t.stateNode;if(Sh(t),_d(t),Hh(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),null===e||null===e.child)if(Df(t))Bg(t);else if(null!==e)e.memoizedState.isDehydrated&&(t.flags&ua)===ea||(t.flags|=ca,If());return Lg(e,t),Yg(t),null;case f:Eh(t);var o=wh(),i=t.type;if(null!==e&&null!=t.stateNode)zg(e,t,i,r,o),e.ref!==t.ref&&Hg(t);else{if(!r){if(null===t.stateNode)throw new Error(\"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\");return Yg(t),null}var E=xh();if(Df(t))(function(e,t,n){var r=e.stateNode,a=!df,o=Qc(r,e.type,e.memoizedProps,0,n,e,a);return e.updateQueue=o,null!==o})(t,0,E)&&Bg(t);else{var I=Pc(i,r,o,E,t);Ig(I,t,!1,!1),t.stateNode=I,function(e,t,n,r,a){switch(rc(e,t,n),t){case\"button\":case\"input\":case\"select\":case\"textarea\":return!!n.autoFocus;case\"img\":return!0;default:return!1}}(I,i,r)&&Bg(t)}null!==t.ref&&Hg(t)}return Yg(t),null;case p:var L=r;if(e&&null!=t.stateNode){var O=e.memoizedProps;Mg(e,t,O,L)}else{if(\"string\"!=typeof L&&null===t.stateNode)throw new Error(\"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\");var U=wh(),F=xh();Df(t)?Ef(t)&&Bg(t):t.stateNode=Nc(L,U,F,t)}return Yg(t),null;case w:zh(t);var A=t.memoizedState;if(null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated)if(!Qg(e,t,A))return t.flags&ya?t:null;if((t.flags&la)!==ea)return t.lanes=n,(t.mode&wo)!==yo&&Wv(t),t;var W=null!==A;if(W!==(null!==e&&null!==e.memoizedState))if(W)if(t.child.flags|=pa,(t.mode&bo)!==yo)null===e&&(!0!==t.memoizedProps.unstable_avoidThisFallback||!M)||Nh(Dh.current,Rh)?xb===cb&&(xb=pb):xw();if(null!==t.updateQueue&&(t.flags|=ra),Yg(t),(t.mode&wo)!==yo&&W){var j=t.child;null!==j&&(t.treeBaseDuration-=j.treeBaseDuration)}return null;case d:return Sh(t),Lg(e,t),null===e&&Rs(t.stateNode.containerInfo),Yg(t),null;case g:return op(t.type._context,t),Yg(t),null;case C:return Dd(t.type)&&Nd(t),Yg(t),null;case T:zh(t);var B=t.memoizedState;if(null===B)return Yg(t),null;var H=(t.flags&la)!==ea,V=B.rendering;if(null===V)if(H)Vg(B,!1);else{if(!(xb===cb&&(null===e||(e.flags&la)===ea)))for(var Y=t.child;null!==Y;){var Q=Oh(Y);if(null!==Q){H=!0,t.flags|=la,Vg(B,!1);var q=Q.updateQueue;return null!==q&&(t.updateQueue=q,t.flags|=ra),t.subtreeFlags=ea,hh(t,n),Lh(t,Ih(Dh.current,Ph)),t.child}Y=Y.sibling}null!==B.tail&&Ha()>Ub()&&(t.flags|=la,H=!0,Vg(B,!1),t.lanes=ai)}else{if(!H){var $=Oh(V);if(null!==$){t.flags|=la,H=!0;var X=$.updateQueue;if(null!==X&&(t.updateQueue=X,t.flags|=ra),Vg(B,!0),null===B.tail&&\"hidden\"===B.tailMode&&!V.alternate&&!Lf())return Yg(t),null}else 2*Ha()-B.renderingStartTime>Ub()&&n!==si&&(t.flags|=la,H=!0,Vg(B,!1),t.lanes=ai)}if(B.isBackwards)V.sibling=t.child,t.child=V;else{var K=B.last;null!==K?K.sibling=V:t.child=V,B.last=V}}if(null!==B.tail){var G=B.tail;B.rendering=G,B.tail=G.sibling,B.renderingStartTime=Ha(),G.sibling=null;var J=Dh.current;return Lh(t,J=H?Ih(J,Ph):_h(J)),G}return Yg(t),null;case R:break;case P:case D:gw(t);var Z=null!==t.memoizedState;if(null!==e)null!==e.memoizedState===Z||z||(t.flags|=pa);return Z&&(t.mode&bo)!==yo?Ri(kb,si)&&(Yg(t),t.subtreeFlags&(na|ra)&&(t.flags|=pa)):Yg(t),null;case N:case _:return null}throw new Error(\"Unknown unit of work tag (\"+t.tag+\"). This error is likely caused by a bug in React. Please file an issue.\")}function $g(e,t,n){switch(of(t),t.tag){case u:Dd(t.type)&&Nd(t);var r=t.flags;return r&ya?(t.flags=r&~ya|la,(t.mode&wo)!==yo&&Wv(t),t):null;case c:t.stateNode;Sh(t),_d(t),Hh();var a=t.flags;return(a&ya)!==ea&&(a&la)===ea?(t.flags=a&~ya|la,t):null;case f:return Eh(t),null;case w:zh(t);var o=t.memoizedState;if(null!==o&&null!==o.dehydrated){if(null===t.alternate)throw new Error(\"Threw in newly mounted dehydrated component. This is likely a bug in React. Please file an issue.\");_f()}var i=t.flags;return i&ya?(t.flags=i&~ya|la,(t.mode&wo)!==yo&&Wv(t),t):null;case T:return zh(t),null;case d:return Sh(t),null;case g:return op(t.type._context,t),null;case P:case D:return gw(t),null;case N:default:return null}}function Xg(e,t,n){switch(of(t),t.tag){case u:var r=t.type.childContextTypes;null!==r&&void 0!==r&&Nd(t);break;case c:t.stateNode;Sh(t),_d(t),Hh();break;case f:Eh(t);break;case d:Sh(t);break;case w:case T:zh(t);break;case g:op(t.type._context,t);break;case P:case D:gw(t)}}Ig=function(e,t,n,r){for(var a,o,i=t.child;null!==i;){if(i.tag===f||i.tag===p)a=e,o=i.stateNode,a.appendChild(o);else if(i.tag===d);else if(null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)return;for(;null===i.sibling;){if(null===i.return||i.return===t)return;i=i.return}i.sibling.return=i.return,i=i.sibling}},Lg=function(e,t){},zg=function(e,t,n,r,a){var o=e.memoizedProps;if(o!==r){var i=function(e,t,n,r,a,o){var i=o;if(typeof r.children!=typeof n.children&&(\"string\"==typeof r.children||\"number\"==typeof r.children)){var l=\"\"+r.children,u=dc(i.ancestorInfo,t);cc(null,l,u)}return ac(e,t,n,r)}(t.stateNode,n,o,r,0,xh());t.updateQueue=i,i&&Bg(t)}},Mg=function(e,t,n,r){n!==r&&Bg(t)};var Kg=null;Kg=new Set;var Gg=!1,Jg=!1,Zg=\"function\"==typeof WeakSet?WeakSet:Set,ey=null,ty=null,ny=null;var ry=function(e,t){if(t.props=e.memoizedProps,t.state=e.memoizedState,e.mode&wo)try{Fv(),t.componentWillUnmount()}finally{Ov(e)}else t.componentWillUnmount()};function ay(e,t){try{hy(Wh,e)}catch(n){zw(e,t,n)}}function oy(e,t,n){try{ry(e,n)}catch(n){zw(e,t,n)}}function iy(e,t){try{yy(e)}catch(n){zw(e,t,n)}}function ly(e,t){var n=e.ref;if(null!==n)if(\"function\"==typeof n){var r;try{if(W&&j&&e.mode&wo)try{Fv(),r=n(null)}finally{Ov(e)}else r=n(null)}catch(n){zw(e,t,n)}\"function\"==typeof r&&o(\"Unexpected return value from a callback ref in %s. A callback ref should not return a function.\",vt(e))}else n.current=null}function uy(e,t,n){try{n()}catch(n){zw(e,t,n)}}var sy=!1;function cy(e,t){Rc(e.containerInfo),ey=t,function(){for(;null!==ey;){var e=ey,t=e.child;(e.subtreeFlags&Ta)!==ea&&null!==t?(t.return=e,ey=t):dy()}}();var n=sy;return sy=!1,null,n}function dy(){for(;null!==ey;){var e=ey;xt(e);try{fy(e)}catch(t){zw(e,e.return,t)}St();var t=e.sibling;if(null!==t)return t.return=e.return,void(ey=t);ey=e.return}}function fy(e){var t,n=e.alternate;if((e.flags&ca)!==ea){switch(xt(e),e.tag){case l:case y:case S:break;case u:if(null!==n){var r=n.memoizedProps,a=n.memoizedState,i=e.stateNode;e.type!==e.elementType||ng||(i.props!==e.memoizedProps&&o(\"Expected %s props to match memoized props before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",vt(e)||\"instance\"),i.state!==e.memoizedState&&o(\"Expected %s state to match memoized state before getSnapshotBeforeUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",vt(e)||\"instance\"));var s=i.getSnapshotBeforeUpdate(e.elementType===e.type?r:$f(e.type,r),a),h=Kg;void 0!==s||h.has(e.type)||(h.add(e.type),o(\"%s.getSnapshotBeforeUpdate(): A snapshot value (or null) must be returned. You have returned undefined.\",vt(e))),i.__reactInternalSnapshotBeforeUpdate=s}break;case c:var m=e.stateNode;(t=m.containerInfo).nodeType===yn?t.textContent=\"\":t.nodeType===kn&&t.documentElement&&t.removeChild(t.documentElement);break;case f:case p:case d:case C:break;default:throw new Error(\"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\")}St()}}function py(e,t,n){var r,a=t.updateQueue,o=null!==a?a.lastEffect:null;if(null!==o){var i=o.next,l=i;do{if((l.tag&e)===e){var u=l.destroy;l.destroy=void 0,void 0!==u&&((e&jh)!==Uh?(r=t,null!==eo&&\"function\"==typeof eo.markComponentPassiveEffectUnmountStarted&&eo.markComponentPassiveEffectUnmountStarted(r)):(e&Wh)!==Uh&&co(t),(e&Ah)!==Uh&&$w(!0),uy(t,n,u),(e&Ah)!==Uh&&$w(!1),(e&jh)!==Uh?null!==eo&&\"function\"==typeof eo.markComponentPassiveEffectUnmountStopped&&eo.markComponentPassiveEffectUnmountStopped():(e&Wh)!==Uh&&fo())}l=l.next}while(l!==i)}}function hy(e,t){var n,r=t.updateQueue,a=null!==r?r.lastEffect:null;if(null!==a){var i=a.next,l=i;do{if((l.tag&e)===e){(e&jh)!==Uh?(n=t,null!==eo&&\"function\"==typeof eo.markComponentPassiveEffectMountStarted&&eo.markComponentPassiveEffectMountStarted(n)):(e&Wh)!==Uh&&so(t);var u=l.create;(e&Ah)!==Uh&&$w(!0),l.destroy=u(),(e&Ah)!==Uh&&$w(!1),(e&jh)!==Uh?null!==eo&&\"function\"==typeof eo.markComponentPassiveEffectMountStopped&&eo.markComponentPassiveEffectMountStopped():(e&Wh)!==Uh&&null!==eo&&\"function\"==typeof eo.markComponentLayoutEffectMountStopped&&eo.markComponentLayoutEffectMountStopped();var s=l.destroy;if(void 0!==s&&\"function\"!=typeof s){var c=void 0;o(\"%s must not return anything besides a function, which is used for clean-up.%s\",c=(l.tag&Wh)!==ea?\"useLayoutEffect\":(l.tag&Ah)!==ea?\"useInsertionEffect\":\"useEffect\",null===s?\" You returned null. If your effect does not require clean up, return undefined (or nothing).\":\"function\"==typeof s.then?\"\\n\\nIt looks like you wrote \"+c+\"(async () => ...) or returned a Promise. Instead, write the async function inside your effect and call it immediately:\\n\\n\"+c+\"(() => {\\n async function fetchData() {\\n // You can await here\\n const response = await MyAPI.getData(someId);\\n // ...\\n }\\n fetchData();\\n}, [someId]); // Or [] if effect doesn't need props or state\\n\\nLearn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching\":\" You returned: \"+s)}}l=l.next}while(l!==i)}}function my(e,t){if((t.flags&ra)!==ea)switch(t.tag){case b:var n=t.stateNode.passiveEffectDuration,r=t.memoizedProps,a=r.id,o=r.onPostCommit,i=_v(),l=null===t.alternate?\"mount\":\"update\";Nv()&&(l=\"nested-update\"),\"function\"==typeof o&&o(a,l,n,i);var u=t.return;e:for(;null!==u;){switch(u.tag){case c:u.stateNode.passiveEffectDuration+=n;break e;case b:u.stateNode.passiveEffectDuration+=n;break e}u=u.return}}}function vy(e,t,n,r){if((n.flags&Pa)!==ea)switch(n.tag){case l:case y:case S:if(!Jg)if(n.mode&wo)try{Fv(),hy(Wh|Fh,n)}finally{Ov(n)}else hy(Wh|Fh,n);break;case u:var a=n.stateNode;if(n.flags&ra&&!Jg)if(null===t)if(n.type!==n.elementType||ng||(a.props!==n.memoizedProps&&o(\"Expected %s props to match memoized props before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",vt(n)||\"instance\"),a.state!==n.memoizedState&&o(\"Expected %s state to match memoized state before componentDidMount. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",vt(n)||\"instance\")),n.mode&wo)try{Fv(),a.componentDidMount()}finally{Ov(n)}else a.componentDidMount();else{var i=n.elementType===n.type?t.memoizedProps:$f(n.type,t.memoizedProps),s=t.memoizedState;if(n.type!==n.elementType||ng||(a.props!==n.memoizedProps&&o(\"Expected %s props to match memoized props before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",vt(n)||\"instance\"),a.state!==n.memoizedState&&o(\"Expected %s state to match memoized state before componentDidUpdate. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",vt(n)||\"instance\")),n.mode&wo)try{Fv(),a.componentDidUpdate(i,s,a.__reactInternalSnapshotBeforeUpdate)}finally{Ov(n)}else a.componentDidUpdate(i,s,a.__reactInternalSnapshotBeforeUpdate)}var h=n.updateQueue;null!==h&&(n.type!==n.elementType||ng||(a.props!==n.memoizedProps&&o(\"Expected %s props to match memoized props before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.\",vt(n)||\"instance\"),a.state!==n.memoizedState&&o(\"Expected %s state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.state`. Please file an issue.\",vt(n)||\"instance\")),zp(0,h,a));break;case c:var m=n.updateQueue;if(null!==m){var v=null;if(null!==n.child)switch(n.child.tag){case f:v=Tc(n.child.stateNode);break;case u:v=n.child.stateNode}zp(0,m,v)}break;case f:var g=n.stateNode;if(null===t&&n.flags&ra)!function(e,t,n,r){switch(t){case\"button\":case\"input\":case\"select\":case\"textarea\":return void(n.autoFocus&&e.focus());case\"img\":n.src&&(e.src=n.src)}}(g,n.type,n.memoizedProps);break;case p:case d:break;case b:var k=n.memoizedProps,x=k.onCommit,E=k.onRender,N=n.stateNode.effectDuration,I=_v(),L=null===t?\"mount\":\"update\";Nv()&&(L=\"nested-update\"),\"function\"==typeof E&&E(n.memoizedProps.id,L,n.actualDuration,n.treeBaseDuration,n.actualStartTime,I),\"function\"==typeof x&&x(n.memoizedProps.id,L,N,I),M=n,Vb.push(M),jb||(jb=!0,Yw(qa,function(){return Nw(),null}));var z=n.return;e:for(;null!==z;){switch(z.tag){case c:z.stateNode.effectDuration+=N;break e;case b:z.stateNode.effectDuration+=N;break e}z=z.return}break;case w:!function(e,t){if(null===t.memoizedState){var n=t.alternate;if(null!==n){var r=n.memoizedState;if(null!==r){var a=r.dehydrated;null!==a&&function(e){gl(e)}(a)}}}}(0,n);break;case T:case C:case R:case P:case D:case _:break;default:throw new Error(\"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\")}var M;Jg||n.flags&sa&&yy(n)}function gy(e){switch(e.tag){case l:case y:case S:if(e.mode&wo)try{Fv(),ay(e,e.return)}finally{Ov(e)}else ay(e,e.return);break;case u:var t=e.stateNode;\"function\"==typeof t.componentDidMount&&function(e,t,n){try{n.componentDidMount()}catch(n){zw(e,t,n)}}(e,e.return,t),iy(e,e.return);break;case f:iy(e,e.return)}}function yy(e){var t=e.ref;if(null!==t){var n,r=e.stateNode;switch(e.tag){case f:n=Tc(r);break;default:n=r}if(\"function\"==typeof t){var a;if(e.mode&wo)try{Fv(),a=t(n)}finally{Ov(e)}else a=t(n);\"function\"==typeof a&&o(\"Unexpected return value from a callback ref in %s. A callback ref should not return a function.\",vt(e))}else t.hasOwnProperty(\"current\")||o(\"Unexpected ref object provided for %s. Use either a ref-setter function or React.createRef().\",vt(e)),t.current=n}}function by(e){var t,n=e.alternate;if(null!==n&&(e.alternate=null,by(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===f){var r=e.stateNode;null!==r&&(delete(t=r)[Xc],delete t[Kc],delete t[Jc],delete t[Zc],delete t[ed])}e.stateNode=null,e._debugOwner=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function wy(e){return e.tag===f||e.tag===c||e.tag===d}function ky(e){var t=e;e:for(;;){for(;null===t.sibling;){if(null===t.return||wy(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==f&&t.tag!==p&&t.tag!==E;){if(t.flags&na)continue e;if(null===t.child||t.tag===d)continue e;t.child.return=t,t=t.child}if(!(t.flags&na))return t.stateNode}}function Sy(e){var t=function(e){for(var t=e.return;null!==t;){if(wy(t))return t;t=t.return}throw new Error(\"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\")}(e);switch(t.tag){case f:var n=t.stateNode;t.flags&oa&&(Uc(n),t.flags&=~oa),function e(t,n,r){var a=t.tag;var o=a===f||a===p;if(o){var i=t.stateNode;n?function(e,t,n){e.insertBefore(t,n)}(r,i,n):function(e,t){e.appendChild(t)}(r,i)}else if(a===d);else{var l=t.child;if(null!==l){e(l,n,r);for(var u=l.sibling;null!==u;)e(u,n,r),u=u.sibling}}}(e,ky(e),n);break;case c:case d:var r=t.stateNode.containerInfo;!function e(t,n,r){var a=t.tag;var o=a===f||a===p;if(o){var i=t.stateNode;n?function(e,t,n){e.nodeType===wn?e.parentNode.insertBefore(t,n):e.insertBefore(t,n)}(r,i,n):function(e,t){var n;e.nodeType===wn?(n=e.parentNode).insertBefore(t,e):(n=e).appendChild(t);var r=e._reactRootContainer;null!==r&&void 0!==r||null!==n.onclick||nc(n)}(r,i)}else if(a===d);else{var l=t.child;if(null!==l){e(l,n,r);for(var u=l.sibling;null!==u;)e(u,n,r),u=u.sibling}}}(e,ky(e),r);break;default:throw new Error(\"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\")}}var xy=null,Cy=!1;function Ey(e,t,n){var r,a,o=t;e:for(;null!==o;){switch(o.tag){case f:xy=o.stateNode,Cy=!1;break e;case c:case d:xy=o.stateNode.containerInfo,Cy=!0;break e}o=o.return}if(null===xy)throw new Error(\"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\");Ry(e,t,n),xy=null,Cy=!1,null!==(a=(r=n).alternate)&&(a.return=null),r.return=null}function Ty(e,t,n){for(var r=n.child;null!==r;)Ry(e,t,r),r=r.sibling}function Ry(e,t,n){switch(function(e){if(Za&&\"function\"==typeof Za.onCommitFiberUnmount)try{Za.onCommitFiberUnmount(Ja,e)}catch(e){to||(to=!0,o(\"React instrumentation encountered an error: %s\",e))}}(n),n.tag){case f:Jg||ly(n,t);case p:var r=xy,a=Cy;return xy=null,Ty(e,t,n),Cy=a,void(null!==(xy=r)&&(Cy?(T=xy,D=n.stateNode,T.nodeType===wn?T.parentNode.removeChild(D):T.removeChild(D)):function(e,t){e.removeChild(t)}(xy,n.stateNode)));case E:return void(null!==xy&&(Cy?function(e,t){e.nodeType===wn?Fc(e.parentNode,t):e.nodeType===yn&&Fc(e,t),gl(e)}(xy,n.stateNode):Fc(xy,n.stateNode)));case d:var i=xy,s=Cy;return xy=n.stateNode.containerInfo,Cy=!0,Ty(e,t,n),xy=i,void(Cy=s);case l:case y:case k:case S:if(!Jg){var c=n.updateQueue;if(null!==c){var h=c.lastEffect;if(null!==h){var m=h.next,v=m;do{var g=v,b=g.destroy,w=g.tag;void 0!==b&&((w&Ah)!==Uh?uy(n,t,b):(w&Wh)!==Uh&&(co(n),n.mode&wo?(Fv(),uy(n,t,b),Ov(n)):uy(n,t,b),fo())),v=v.next}while(v!==m)}}}return void Ty(e,t,n);case u:if(!Jg){ly(n,t);var x=n.stateNode;\"function\"==typeof x.componentWillUnmount&&oy(n,t,x)}return void Ty(e,t,n);case R:return void Ty(e,t,n);case P:if(n.mode&bo){var C=Jg;Jg=C||null!==n.memoizedState,Ty(e,t,n),Jg=C}else Ty(e,t,n);break;default:return void Ty(e,t,n)}var T,D}function Py(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Zg),t.forEach(function(t){var r=function(e,t){var n,r=Po;switch(e.tag){case w:n=e.stateNode;var a=e.memoizedState;null!==a&&(r=a.retryLane);break;case T:n=e.stateNode;break;default:throw new Error(\"Pinged unknown suspense boundary type. This is probably a bug in React.\")}null!==n&&n.delete(t);Mw(e,r)}.bind(null,e,t);if(!n.has(t)){if(n.add(t),no){if(null===ty||null===ny)throw Error(\"Expected finished root and lanes to be set. This is a bug in React.\");Hw(ny,ty)}t.then(r,r)}})}}function Dy(e,t,n){var r=t.deletions;if(null!==r)for(var a=0;a<r.length;a++){var o=r[a];try{Ey(e,t,o)}catch(e){zw(o,t,e)}}var i=yt;if(t.subtreeFlags&Ra)for(var l=t.child;null!==l;)xt(l),Ny(l,e),l=l.sibling;xt(i)}function Ny(e,t,n){var r=e.alternate,a=e.flags;switch(e.tag){case l:case y:case k:case S:if(Dy(t,e),_y(e),a&ra){try{py(Ah|Fh,e,e.return),hy(Ah|Fh,e)}catch(t){zw(e,e.return,t)}if(e.mode&wo){try{Fv(),py(Wh|Fh,e,e.return)}catch(t){zw(e,e.return,t)}Ov(e)}else try{py(Wh|Fh,e,e.return)}catch(t){zw(e,e.return,t)}}return;case u:return Dy(t,e),_y(e),void(a&sa&&null!==r&&ly(r,r.return));case f:if(Dy(t,e),_y(e),a&sa&&null!==r&&ly(r,r.return),e.flags&oa){var o=e.stateNode;try{Uc(o)}catch(t){zw(e,e.return,t)}}if(a&ra){var i=e.stateNode;if(null!=i){var s=e.memoizedProps,h=null!==r?r.memoizedProps:s,m=e.type,v=e.updateQueue;if(e.updateQueue=null,null!==v)try{!function(e,t,n,r,a,o){oc(e,t,n,r,a),sd(e,a)}(i,v,m,h,s)}catch(t){zw(e,e.return,t)}}}return;case p:if(Dy(t,e),_y(e),a&ra){if(null===e.stateNode)throw new Error(\"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\");var g=e.stateNode,b=e.memoizedProps;null!==r&&r.memoizedProps;try{!function(e,t,n){e.nodeValue=n}(g,0,b)}catch(t){zw(e,e.return,t)}}return;case c:if(Dy(t,e),_y(e),a&ra)if(null!==r)if(r.memoizedState.isDehydrated)try{gl(t.containerInfo)}catch(t){zw(e,e.return,t)}return;case d:return Dy(t,e),void _y(e);case w:Dy(t,e),_y(e);var x=e.child;if(x.flags&pa){var C=x.stateNode,E=null!==x.memoizedState;if(C.isHidden=E,E)null!==x.alternate&&null!==x.alternate.memoizedState||(_b=Ha())}if(a&ra){try{!function(e){e.memoizedState}(e)}catch(t){zw(e,e.return,t)}Py(e)}return;case P:var N=null!==r&&null!==r.memoizedState;if(e.mode&bo){var _=Jg;Jg=_||N,Dy(t,e),Jg=_}else Dy(t,e);if(_y(e),a&pa){var I=e.stateNode,L=null!==e.memoizedState,z=e;if(I.isHidden=L,L&&!N&&(z.mode&bo)!==yo){ey=z;for(var M=z.child;null!==M;)ey=M,zy(M),M=M.sibling}!function(e,t){for(var n=null,r=e;;){if(r.tag===f){if(null===n){n=r;try{var a=r.stateNode;t?Ac(a):Wc(r.stateNode,r.memoizedProps)}catch(t){zw(e,e.return,t)}}}else if(r.tag===p){if(null===n)try{var o=r.stateNode;t?o.nodeValue=\"\":jc(o,r.memoizedProps)}catch(t){zw(e,e.return,t)}}else if((r.tag!==P&&r.tag!==D||null===r.memoizedState||r===e)&&null!==r.child){r.child.return=r,r=r.child;continue}if(r===e)return;for(;null===r.sibling;){if(null===r.return||r.return===e)return;n===r&&(n=null),r=r.return}n===r&&(n=null),r.sibling.return=r.return,r=r.sibling}}(z,L)}return;case T:return Dy(t,e),_y(e),void(a&ra&&Py(e));case R:return;default:return Dy(t,e),void _y(e)}}function _y(e){var t=e.flags;if(t&na){try{Sy(e)}catch(t){zw(e,e.return,t)}e.flags&=~na}t&fa&&(e.flags&=~fa)}function Iy(e,t,n){ty=n,ny=t,ey=e,function e(t,n,r){var a=(t.mode&bo)!==yo;for(;null!==ey;){var o=ey,i=o.child;if(o.tag===P&&a){var l=null!==o.memoizedState,u=l||Gg;if(u){Ly(t,n,r);continue}var s=o.alternate,c=null!==s&&null!==s.memoizedState,d=c||Jg,f=Gg,p=Jg;Gg=u,(Jg=d)&&!p&&(ey=o,Oy(o));for(var h=i;null!==h;)ey=h,e(h,n,r),h=h.sibling;ey=o,Gg=f,Jg=p,Ly(t,n,r)}else(o.subtreeFlags&Pa)!==ea&&null!==i?(i.return=o,ey=i):Ly(t,n,r)}}(e,t,n),ty=null,ny=null}function Ly(e,t,n){for(;null!==ey;){var r=ey;if((r.flags&Pa)!==ea){var a=r.alternate;xt(r);try{vy(0,a,r)}catch(e){zw(r,r.return,e)}St()}if(r===e)return void(ey=null);var o=r.sibling;if(null!==o)return o.return=r.return,void(ey=o);ey=r.return}}function zy(e){for(;null!==ey;){var t=ey,n=t.child;switch(t.tag){case l:case y:case k:case S:if(t.mode&wo)try{Fv(),py(Wh,t,t.return)}finally{Ov(t)}else py(Wh,t,t.return);break;case u:ly(t,t.return);var r=t.stateNode;\"function\"==typeof r.componentWillUnmount&&oy(t,t.return,r);break;case f:ly(t,t.return);break;case P:if(null!==t.memoizedState){My(e);continue}}null!==n?(n.return=t,ey=n):My(e)}}function My(e){for(;null!==ey;){var t=ey;if(t===e)return void(ey=null);var n=t.sibling;if(null!==n)return n.return=t.return,void(ey=n);ey=t.return}}function Oy(e){for(;null!==ey;){var t=ey,n=t.child;if(t.tag===P)if(null!==t.memoizedState){Uy(e);continue}null!==n?(n.return=t,ey=n):Uy(e)}}function Uy(e){for(;null!==ey;){var t=ey;xt(t);try{gy(t)}catch(e){zw(t,t.return,e)}if(St(),t===e)return void(ey=null);var n=t.sibling;if(null!==n)return n.return=t.return,void(ey=n);ey=t.return}}function Fy(e,t,n,r){ey=t,function(e,t,n,r){for(;null!==ey;){var a=ey,o=a.child;(a.subtreeFlags&Da)!==ea&&null!==o?(o.return=a,ey=o):Ay(e,t,n,r)}}(t,e,n,r)}function Ay(e,t,n,r){for(;null!==ey;){var a=ey;if((a.flags&da)!==ea){xt(a);try{Wy(t,a,n,r)}catch(e){zw(a,a.return,e)}St()}if(a===e)return void(ey=null);var o=a.sibling;if(null!==o)return o.return=a.return,void(ey=o);ey=a.return}}function Wy(e,t,n,r){switch(t.tag){case l:case y:case S:if(t.mode&wo){Av();try{hy(jh|Fh,t)}finally{Uv(t)}}else hy(jh|Fh,t)}}function jy(e){ey=e,function(){for(;null!==ey;){var e=ey,t=e.child;if((ey.flags&aa)!==ea){var n=e.deletions;if(null!==n){for(var r=0;r<n.length;r++){var a=n[r];ey=a,Vy(a,e)}var o=e.alternate;if(null!==o){var i=o.child;if(null!==i){o.child=null;do{var l=i.sibling;i.sibling=null,i=l}while(null!==i)}}ey=e}}(e.subtreeFlags&Da)!==ea&&null!==t?(t.return=e,ey=t):By()}}()}function By(){for(;null!==ey;){var e=ey;(e.flags&da)!==ea&&(xt(e),Hy(e),St());var t=e.sibling;if(null!==t)return t.return=e.return,void(ey=t);ey=e.return}}function Hy(e){switch(e.tag){case l:case y:case S:e.mode&wo?(Av(),py(jh|Fh,e,e.return),Uv(e)):py(jh|Fh,e,e.return)}}function Vy(e,t){for(;null!==ey;){var n=ey;xt(n),Qy(n,t),St();var r=n.child;null!==r?(r.return=n,ey=r):Yy(e)}}function Yy(e){for(;null!==ey;){var t=ey,n=t.sibling,r=t.return;if(by(t),t===e)return void(ey=null);if(null!==n)return n.return=r,void(ey=n);ey=r}}function Qy(e,t){switch(e.tag){case l:case y:case S:e.mode&wo?(Av(),py(jh,e,t),Uv(e)):py(jh,e,t)}}function qy(e){switch(e.tag){case l:case y:case S:try{hy(Wh|Fh,e)}catch(t){zw(e,e.return,t)}break;case u:var t=e.stateNode;try{t.componentDidMount()}catch(t){zw(e,e.return,t)}}}function $y(e){switch(e.tag){case l:case y:case S:try{hy(jh|Fh,e)}catch(t){zw(e,e.return,t)}}}function Xy(e){switch(e.tag){case l:case y:case S:try{py(Wh|Fh,e,e.return)}catch(t){zw(e,e.return,t)}break;case u:var t=e.stateNode;\"function\"==typeof t.componentWillUnmount&&oy(e,e.return,t)}}function Ky(e){switch(e.tag){case l:case y:case S:try{py(jh|Fh,e,e.return)}catch(t){zw(e,e.return,t)}}}if(\"function\"==typeof Symbol&&Symbol.for){var Gy=Symbol.for;Gy(\"selector.component\"),Gy(\"selector.has_pseudo_class\"),Gy(\"selector.role\"),Gy(\"selector.test_id\"),Gy(\"selector.text\")}var Jy=[];var Zy=n.ReactCurrentActQueue;function eb(){var e=\"undefined\"!=typeof IS_REACT_ACT_ENVIRONMENT?IS_REACT_ACT_ENVIRONMENT:void 0;return e||null===Zy.current||o(\"The current testing environment is not configured to support act(...)\"),e}var tb=Math.ceil,nb=n.ReactCurrentDispatcher,rb=n.ReactCurrentOwner,ab=n.ReactCurrentBatchConfig,ob=n.ReactCurrentActQueue,ib=0,lb=1,ub=2,sb=4,cb=0,db=1,fb=2,pb=3,hb=4,mb=5,vb=6,gb=ib,yb=null,bb=null,wb=Ro,kb=Ro,Sb=yd(Ro),xb=cb,Cb=null,Eb=Ro,Tb=Ro,Rb=Ro,Pb=Ro,Db=null,Nb=null,_b=0,Ib=500,Lb=1/0,zb=500,Mb=null;function Ob(){Lb=Ha()+zb}function Ub(){return Lb}var Fb=!1,Ab=null,Wb=null,jb=!1,Bb=null,Hb=Ro,Vb=[],Yb=null,Qb=50,qb=0,$b=null,Xb=!1,Kb=!1,Gb=50,Jb=0,Zb=null,ew=di,tw=Ro,nw=!1;function rw(){return yb}function aw(){return(gb&(ub|sb))!==ib?Ha():ew!==di?ew:ew=Ha()}function ow(e){if((e.mode&bo)===yo)return Do;if((gb&ub)!==ib&&wb!==Ro)return Ci(wb);if(Mf.transition!==Of){if(null!==ab.transition){var t=ab.transition;t._updatedFibers||(t._updatedFibers=new Set),t._updatedFibers.add(e)}return tw===Po&&(tw=Si()),tw}var n,r=Xi();return r!==Po?r:void 0===(n=window.event)?Qi:Tl(n.type)}function iw(e){var t;return(e.mode&bo)===yo?Do:(t=pi,((pi<<=1)&Jo)===Ro&&(pi=Zo),t)}function lw(e,t,n,r){!function(){if(qb>Qb)throw qb=0,$b=null,new Error(\"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\");Jb>Gb&&(Jb=0,Zb=null,o(\"Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render.\"))}(),nw&&o(\"useInsertionEffect must not schedule updates.\"),Xb&&(Kb=!0),zi(e,n,r),(gb&ub)!==Ro&&e===yb?function(e){if(bt&&!iv)switch(e.tag){case l:case y:case S:var t=bb&&vt(bb)||\"Unknown\",n=t;if(!jw.has(n)){jw.add(n);var r=vt(e)||\"Unknown\";o(\"Cannot update a component (`%s`) while rendering a different component (`%s`). To locate the bad setState() call inside `%s`, follow the stack trace as described in https://reactjs.org/link/setstate-in-render\",r,t,t)}break;case u:Bw||(o(\"Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state.\"),Bw=!0)}}(t):(no&&Ui(e,t,n),function(e){if(e.mode&bo){if(!eb())return}else{if(t=\"undefined\"!=typeof IS_REACT_ACT_ENVIRONMENT?IS_REACT_ACT_ENVIRONMENT:void 0,\"undefined\"==typeof jest||!1===t)return;if(gb!==ib)return;if(e.tag!==l&&e.tag!==y&&e.tag!==S)return}var t;if(null===ob.current){var n=yt;try{xt(e),o(\"An update to %s inside a test was not wrapped in act(...).\\n\\nWhen testing, code that causes React state updates should be wrapped into act(...):\\n\\nact(() => {\\n /* fire events that update state */\\n});\\n/* assert on the output */\\n\\nThis ensures that you're testing the behavior the user would see in the browser. Learn more at https://reactjs.org/link/wrap-tests-with-act\",vt(e))}finally{n?xt(e):St()}}}(t),e===yb&&((gb&ub)===ib&&(Rb=Di(Rb,n)),xb===hb&&dw(e,wb)),uw(e,r),n!==Do||gb!==ib||(t.mode&bo)!==yo||ob.isBatchingLegacy||(Ob(),Hd()))}function uw(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.pendingLanes,r=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,i=n;i>0;){var l=Ei(i),u=1<<l,s=o[l];s===di?(u&r)!==Ro&&(u&a)===Ro||(o[l]=vi(u,t)):s<=t&&(e.expiredLanes|=u),i&=~u}}(e,t);var r=mi(e,e===yb?wb:Ro);if(r===Ro)return null!==n&&Qw(n),e.callbackNode=null,void(e.callbackPriority=Po);var a=xi(r),i=e.callbackPriority;if(i!==a||null!==ob.current&&n!==Vw){var l,u;if(null!=n&&Qw(n),a===Do)e.tag===Ud?(null!==ob.isBatchingLegacy&&(ob.didScheduleLegacyUpdate=!0),u=fw.bind(null,e),Wd=!0,Bd(u)):Bd(fw.bind(null,e)),null!==ob.current?ob.current.push(Vd):Mc(function(){(gb&(ub|sb))===ib&&Vd()}),l=null;else{var s;switch(Ji(r)){case Vi:s=Ya;break;case Yi:s=Qa;break;case Qi:s=qa;break;case qi:s=Xa;break;default:s=qa}l=Yw(s,function e(t,n){Pv=!1,Dv=!1;ew=di;tw=Ro;if((gb&(ub|sb))!==ib)throw new Error(\"Should not already be working.\");var r=t.callbackNode;var a=Nw();if(a&&t.callbackNode!==r)return null;var o=mi(t,t===yb?wb:Ro);if(o===Ro)return null;var i=!wi(0,o)&&!function(e,t){return(t&e.expiredLanes)!==Ro}(t,o)&&!n;var l=i?function(e,t){var n=gb;gb|=ub;var r=ww();if(yb!==e||wb!==t){if(no){var a=e.memoizedUpdaters;a.size>0&&(Hw(e,wb),a.clear()),Fi(e,t)}Mb=null,Ob(),yw(e,t)}mo(t);for(;;)try{Tw();break}catch(t){bw(e,t)}return tp(),kw(r),gb=n,null!==bb?(null!==eo&&\"function\"==typeof eo.markRenderYielded&&eo.markRenderYielded(),cb):(vo(),yb=null,wb=Ro,xb)}(t,o):Cw(t,o);if(l!==cb){if(l===fb){var u=gi(t);u!==Ro&&(o=u,l=sw(t,u))}if(l===db){var s=Cb;throw yw(t,Ro),dw(t,o),uw(t,Ha()),s}if(l===vb)dw(t,o);else{var c=!wi(0,o),d=t.current.alternate;if(c&&!function(e){var t=e;for(;;){if(t.flags&ha){var n=t.updateQueue;if(null!==n){var r=n.stores;if(null!==r)for(var a=0;a<r.length;a++){var o=r[a],i=o.getSnapshot,l=o.value;try{if(!Wu(i(),l))return!1}catch(e){return!1}}}}var u=t.child;if(t.subtreeFlags&ha&&null!==u)u.return=t,t=u;else{if(t===e)return!0;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(d)){if((l=Cw(t,o))===fb){var f=gi(t);f!==Ro&&(o=f,l=sw(t,f))}if(l===db){var p=Cb;throw yw(t,Ro),dw(t,o),uw(t,Ha()),p}}t.finishedWork=d,t.finishedLanes=o,function(e,t,n){switch(t){case cb:case db:throw new Error(\"Root did not complete. This is a bug in React.\");case fb:Dw(e,Nb,Mb);break;case pb:if(dw(e,n),bi(n)&&!qw()){var r=_b+Ib-Ha();if(r>10){var a=mi(e,Ro);if(a!==Ro)break;var o=e.suspendedLanes;if(!Pi(o,n)){aw();Mi(e,o);break}e.timeoutHandle=_c(Dw.bind(null,e,Nb,Mb),r);break}}Dw(e,Nb,Mb);break;case hb:if(dw(e,n),function(e){return(e&Mo)===e}(n))break;if(!qw()){var i=function(e,t){for(var n=e.eventTimes,r=di;t>0;){var a=Ei(t),o=1<<a,i=n[a];i>r&&(r=i),t&=~o}return r}(e,n),l=i,u=Ha()-l,s=((c=u)<120?120:c<480?480:c<1080?1080:c<1920?1920:c<3e3?3e3:c<4320?4320:1960*tb(c/1960))-u;if(s>10){e.timeoutHandle=_c(Dw.bind(null,e,Nb,Mb),s);break}}Dw(e,Nb,Mb);break;case mb:Dw(e,Nb,Mb);break;default:throw new Error(\"Unknown root exit status.\")}var c}(t,l,o)}}uw(t,Ha());if(t.callbackNode===r)return e.bind(null,t);return null}.bind(null,e))}e.callbackPriority=a,e.callbackNode=l}else null==n&&i!==Do&&o(\"Expected scheduled callback to exist. This error is likely caused by a bug in React. Please file an issue.\")}function sw(e,t){var n=Db;Zi(e)&&(yw(e,t).flags|=ua,o(\"An error occurred during hydration. The server HTML was replaced with client content in <%s>.\",e.containerInfo.nodeName.toLowerCase()));var r=Cw(e,t);if(r!==fb){var a=Nb;Nb=n,null!==a&&cw(a)}return r}function cw(e){null===Nb?Nb=e:Nb.push.apply(Nb,e)}function dw(e,t){!function(e,t){e.suspendedLanes|=t,e.pingedLanes&=~t;for(var n=e.expirationTimes,r=t;r>0;){var a=Ei(r),o=1<<a;n[a]=di,r&=~o}}(e,t=Ni(t=Ni(t,Pb),Rb))}function fw(e){if(Pv=Dv,Dv=!1,(gb&(ub|sb))!==ib)throw new Error(\"Should not already be working.\");Nw();var t=mi(e,Ro);if(!Ri(t,Do))return uw(e,Ha()),null;var n=Cw(e,t);if(e.tag!==Ud&&n===fb){var r=gi(e);r!==Ro&&(t=r,n=sw(e,r))}if(n===db){var a=Cb;throw yw(e,Ro),dw(e,t),uw(e,Ha()),a}if(n===vb)throw new Error(\"Root did not complete. This is a bug in React.\");var o=e.current.alternate;return e.finishedWork=o,e.finishedLanes=t,Dw(e,Nb,Mb),uw(e,Ha()),null}function pw(e,t){var n=gb;gb|=lb;try{return e(t)}finally{(gb=n)!==ib||ob.isBatchingLegacy||(Ob(),Hd())}}function hw(e){null!==Bb&&Bb.tag===Ud&&(gb&(ub|sb))===ib&&Nw();var t=gb;gb|=lb;var n=ab.transition,r=Xi();try{return ab.transition=null,Ki(Vi),e?e():void 0}finally{Ki(r),ab.transition=n,((gb=t)&(ub|sb))===ib&&Vd()}}function mw(){return(gb&(ub|sb))!==ib}function vw(e,t){wd(Sb,kb,e),kb=Di(kb,t),Eb=Di(Eb,t)}function gw(e){kb=Sb.current,bd(Sb,e)}function yw(e,t){e.finishedWork=null,e.finishedLanes=Ro;var n=e.timeoutHandle;if(n!==Lc&&(e.timeoutHandle=Lc,Ic(n)),null!==bb)for(var r=bb.return;null!==r;){r.alternate;Xg(0,r),r=r.return}yb=e;var a=ck(e.current,null);return bb=a,wb=kb=Eb=t,xb=cb,Cb=null,Tb=Ro,Rb=Ro,Pb=Ro,Db=null,Nb=null,function(){if(null!==cp){for(var e=0;e<cp.length;e++){var t=cp[e],n=t.interleaved;if(null!==n){t.interleaved=null;var r=n.next,a=t.pending;if(null!==a){var o=a.next;a.next=r,n.next=o}t.pending=n}}cp=null}}(),Uf.discardPendingWarnings(),a}function bw(e,t){for(;;){var n=bb;try{if(tp(),vm(),St(),rb.current=null,null===n||null===n.return)return xb=db,Cb=t,void(bb=null);if(W&&n.mode&wo&&Mv(n,!0),A)if(uo(),null!==t&&\"object\"==typeof t&&\"function\"==typeof t.then)ho(n,t,wb);else po(n,t,wb);Kv(e,n.return,n,t,wb),Pw(n)}catch(e){t=e,bb===n&&null!==n?(n=n.return,bb=n):n=bb;continue}return}}function ww(){var e=nb.current;return nb.current=pv,null===e?pv:e}function kw(e){nb.current=e}function Sw(e){Tb=Di(e,Tb)}function xw(){xb!==cb&&xb!==pb&&xb!==fb||(xb=hb),null!==yb&&(yi(Tb)||yi(Rb))&&dw(yb,wb)}function Cw(e,t){var n=gb;gb|=ub;var r=ww();if(yb!==e||wb!==t){if(no){var a=e.memoizedUpdaters;a.size>0&&(Hw(e,wb),a.clear()),Fi(e,t)}Mb=null,yw(e,t)}for(mo(t);;)try{Ew();break}catch(t){bw(e,t)}if(tp(),gb=n,kw(r),null!==bb)throw new Error(\"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\");return vo(),yb=null,wb=Ro,xb}function Ew(){for(;null!==bb;)Rw(bb)}function Tw(){for(;null!==bb&&!ja();)Rw(bb)}function Rw(e){var t,n=e.alternate;xt(e),(e.mode&wo)!==yo?(Lv(e),t=Fw(n,e,kb),Mv(e,!0)):t=Fw(n,e,kb),St(),e.memoizedProps=e.pendingProps,null===t?Pw(e):bb=t,rb.current=null}function Pw(e){var t=e;do{var n=t.alternate,r=t.return;if((t.flags&ga)===ea){xt(t);var a=void 0;if((t.mode&wo)===yo?a=qg(n,t,kb):(Lv(t),a=qg(n,t,kb),Mv(t,!1)),St(),null!==a)return void(bb=a)}else{var o=$g(0,t);if(null!==o)return o.flags&=va,void(bb=o);if((t.mode&wo)!==yo){Mv(t,!1);for(var i=t.actualDuration,l=t.child;null!==l;)i+=l.actualDuration,l=l.sibling;t.actualDuration=i}if(null===r)return xb=vb,void(bb=null);r.flags|=ga,r.subtreeFlags=ea,r.deletions=null}var u=t.sibling;if(null!==u)return void(bb=u);bb=t=r}while(null!==t);xb===cb&&(xb=mb)}function Dw(e,t,n){var r=Xi(),a=ab.transition;try{ab.transition=null,Ki(Vi),function(e,t,n,r){do{Nw()}while(null!==Bb);if(Uf.flushLegacyContextWarning(),Uf.flushPendingUnsafeLifecycleWarnings(),(gb&(ub|sb))!==ib)throw new Error(\"Should not already be working.\");var a=e.finishedWork,i=e.finishedLanes;if(function(e){null!==eo&&\"function\"==typeof eo.markCommitStarted&&eo.markCommitStarted(e)}(i),null===a)return io(),null;i===Ro&&o(\"root.finishedLanes should not be empty during a commit. This is a bug in React.\");if(e.finishedWork=null,e.finishedLanes=Ro,a===e.current)throw new Error(\"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\");e.callbackNode=null,e.callbackPriority=Po;var l=Di(a.lanes,a.childLanes);(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=Ro,e.pingedLanes=Ro,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t;for(var r=e.entanglements,a=e.eventTimes,o=e.expirationTimes,i=n;i>0;){var l=Ei(i),u=1<<l;r[l]=Ro,a[l]=di,o[l]=di,i&=~u}})(e,l),e===yb&&(yb=null,bb=null,wb=Ro);(a.subtreeFlags&Da)===ea&&(a.flags&Da)===ea||jb||(jb=!0,Yb=n,Yw(qa,function(){return Nw(),null}));var u=(a.subtreeFlags&(Ta|Ra|Pa|Da))!==ea,s=(a.flags&(Ta|Ra|Pa|Da))!==ea;if(u||s){var c=ab.transition;ab.transition=null;var d=Xi();Ki(Vi);var f=gb;gb|=sb,rb.current=null;cy(e,a);Iv(),function(e,t,n){ty=n,ny=e,xt(t),Ny(t,e),xt(t),ty=null,ny=null}(e,a,i),e.containerInfo,Ju(Ec),wl(Cc),Cc=null,Ec=null,e.current=a,function(e){null!==eo&&\"function\"==typeof eo.markLayoutEffectsStarted&&eo.markLayoutEffectsStarted(e)}(i),Iy(a,e,i),null!==eo&&\"function\"==typeof eo.markLayoutEffectsStopped&&eo.markLayoutEffectsStopped(),Ba(),gb=f,Ki(d),ab.transition=c}else e.current=a,Iv();var p=jb;jb?(jb=!1,Bb=e,Hb=i):(Jb=0,Zb=null);(l=e.pendingLanes)===Ro&&(Wb=null);p||Ow(e.current,!1);(function(e,t){if(Za&&\"function\"==typeof Za.onCommitFiberRoot)try{var n=(e.current.flags&la)===la;if(W){var r;switch(t){case Vi:r=Ya;break;case Yi:r=Qa;break;case Qi:r=qa;break;case qi:r=Xa;break;default:r=qa}Za.onCommitFiberRoot(Ja,e,r,n)}else Za.onCommitFiberRoot(Ja,e,void 0,n)}catch(e){to||(to=!0,o(\"React instrumentation encountered an error: %s\",e))}})(a.stateNode,r),no&&e.memoizedUpdaters.clear();if(Jy.forEach(function(e){return e()}),uw(e,Ha()),null!==t)for(var h=e.onRecoverableError,m=0;m<t.length;m++){var v=t[m],g=v.stack,y=v.digest;h(v.value,{componentStack:g,digest:y})}if(Fb){Fb=!1;var b=Ab;throw Ab=null,b}Ri(Hb,Do)&&e.tag!==Ud&&Nw();Ri(l=e.pendingLanes,Do)?(Dv=!0,e===$b?qb++:(qb=0,$b=e)):qb=0;Vd(),io()}(e,t,n,r)}finally{ab.transition=a,Ki(r)}return null}function Nw(){if(null!==Bb){var e=Ji(Hb),t=(i=e,0===(a=Qi)||a>i?a:i),n=ab.transition,r=Xi();try{return ab.transition=null,Ki(t),function(){if(null===Bb)return!1;var e=Yb;Yb=null;var t=Bb,n=Hb;if(Bb=null,Hb=Ro,(gb&(ub|sb))!==ib)throw new Error(\"Cannot flush passive effects while already rendering.\");Xb=!0,Kb=!1,function(e){null!==eo&&\"function\"==typeof eo.markPassiveEffectsStarted&&eo.markPassiveEffectsStarted(e)}(n);var r=gb;gb|=sb,jy(t.current),Fy(t,t.current,n,e);var a=Vb;Vb=[];for(var i=0;i<a.length;i++){var l=a[i];my(0,l)}null!==eo&&\"function\"==typeof eo.markPassiveEffectsStopped&&eo.markPassiveEffectsStopped(),Ow(t.current,!0),gb=r,Vd(),Kb?t===Zb?Jb++:(Jb=0,Zb=t):Jb=0;Xb=!1,Kb=!1,function(e){if(Za&&\"function\"==typeof Za.onPostCommitFiberRoot)try{Za.onPostCommitFiberRoot(Ja,e)}catch(e){to||(to=!0,o(\"React instrumentation encountered an error: %s\",e))}}(t);var u=t.current.stateNode;return u.effectDuration=0,u.passiveEffectDuration=0,!0}()}finally{Ki(r),ab.transition=n}}var a,i;return!1}function _w(e){return null!==Wb&&Wb.has(e)}var Iw=function(e){Fb||(Fb=!0,Ab=e)};function Lw(e,t,n){var r=Tp(e,Yv(e,jv(n,t),Do),Do),a=aw();null!==r&&(zi(r,Do,a),uw(r,a))}function zw(e,t,n){if(function(e){Ur(null,function(){throw e}),Fr()}(n),$w(!1),e.tag!==c){var r=null;for(r=t;null!==r;){if(r.tag===c)return void Lw(r,e,n);if(r.tag===u){var a=r.type,i=r.stateNode;if(\"function\"==typeof a.getDerivedStateFromError||\"function\"==typeof i.componentDidCatch&&!_w(i)){var l=Tp(r,Qv(r,jv(n,e),Do),Do),s=aw();return void(null!==l&&(zi(l,Do,s),uw(l,s)))}}r=r.return}o(\"Internal React error: Attempted to capture a commit phase error inside a detached tree. This indicates a bug in React. Likely causes include deleting the same fiber more than once, committing an already-finished tree, or an inconsistent return pointer.\\n\\nError message:\\n\\n%s\",n)}else Lw(e,e,n)}function Mw(e,t){t===Po&&(t=iw(e));var n=aw(),r=pp(e,t);null!==r&&(zi(r,t,n),uw(r,n))}function Ow(e,t){xt(e),Uw(e,Ca,Xy),t&&Uw(e,Ea,Ky),Uw(e,Ca,qy),t&&Uw(e,Ea,$y),St()}function Uw(e,t,n){for(var r=e,a=null;null!==r;){var o=r.subtreeFlags&t;r!==a&&null!==r.child&&o!==ea?r=r.child:((r.flags&t)!==ea&&n(r),r=null!==r.sibling?r.sibling:a=r.return)}}var Fw,Aw=null;function Ww(e){if((gb&ub)===ib&&e.mode&bo){var t=e.tag;if(t===s||t===c||t===u||t===l||t===y||t===k||t===S){var n=vt(e)||\"ReactComponent\";if(null!==Aw){if(Aw.has(n))return;Aw.add(n)}else Aw=new Set([n]);var r=yt;try{xt(e),o(\"Can't perform a React state update on a component that hasn't mounted yet. This indicates that you have a side-effect in your render function that asynchronously later calls tries to update the component. Move this work to useEffect instead.\")}finally{r?xt(e):St()}}}}Fw=function(e,t,n){var r=yk(null,t);try{return jg(e,t,n)}catch(o){if(df||null!==o&&\"object\"==typeof o&&\"function\"==typeof o.then)throw o;if(tp(),vm(),Xg(0,t),yk(t,r),t.mode&wo&&Lv(t),Ur(null,jg,null,e,t,n),Ir){var a=Fr();\"object\"==typeof a&&null!==a&&a._suppressLogging&&\"object\"==typeof o&&null!==o&&!o._suppressLogging&&(o._suppressLogging=!0)}throw o}};var jw,Bw=!1;function Hw(e,t){no&&e.memoizedUpdaters.forEach(function(n){Ui(e,n,t)})}jw=new Set;var Vw={};function Yw(e,t){var n=ob.current;return null!==n?(n.push(t),Vw):Aa(e,t)}function Qw(e){if(e!==Vw)return Wa(e)}function qw(){return null!==ob.current}function $w(e){nw=e}var Xw=null,Kw=null,Gw=function(e){Xw=e};function Jw(e){if(null===Xw)return e;var t=Xw(e);return void 0===t?e:t.current}function Zw(e){return Jw(e)}function ek(e){if(null===Xw)return e;var t=Xw(e);if(void 0===t){if(null!==e&&void 0!==e&&\"function\"==typeof e.render){var n=Jw(e.render);if(e.render!==n){var r={$$typeof:Le,render:n};return void 0!==e.displayName&&(r.displayName=e.displayName),r}}return e}return t.current}function tk(e,t){if(null===Xw)return!1;var n=e.elementType,r=t.type,a=!1,o=\"object\"==typeof r&&null!==r?r.$$typeof:null;switch(e.tag){case u:\"function\"==typeof r&&(a=!0);break;case l:\"function\"==typeof r?a=!0:o===Ue&&(a=!0);break;case y:o===Le?a=!0:o===Ue&&(a=!0);break;case k:case S:o===Oe?a=!0:o===Ue&&(a=!0);break;default:return!1}if(a){var i=Xw(n);if(void 0!==i&&i===Xw(r))return!0}return!1}function nk(e){null!==Xw&&\"function\"==typeof WeakSet&&(null===Kw&&(Kw=new WeakSet),Kw.add(e))}var rk=function(e,t){if(null!==Xw){var n=t.staleFamilies,r=t.updatedFamilies;Nw(),hw(function(){!function e(t,n,r){var a=t.alternate,o=t.child,i=t.sibling,s=t.tag,c=t.type,d=null;switch(s){case l:case S:case u:d=c;break;case y:d=c.render}if(null===Xw)throw new Error(\"Expected resolveFamily to be set during hot reload.\");var f=!1,p=!1;if(null!==d){var h=Xw(d);void 0!==h&&(r.has(h)?p=!0:n.has(h)&&(s===u?p=!0:f=!0))}if(null!==Kw&&(Kw.has(t)||null!==a&&Kw.has(a))&&(p=!0),p&&(t._debugNeedsRemount=!0),p||f){var m=pp(t,Do);null!==m&&lw(m,t,Do,di)}null===o||p||e(o,n,r),null!==i&&e(i,n,r)}(e.current,r,n)})}},ak=function(e,t){e.context===kd&&(Nw(),hw(function(){Rk(t,e,null,null)}))};var ok,ik=function(e,t){var n=new Set,r=new Set(t.map(function(e){return e.current}));return function e(t,n,r){var a=t.child,o=t.sibling,i=t.tag,s=t.type,p=null;switch(i){case l:case S:case u:p=s;break;case y:p=s.render}var h=!1;null!==p&&n.has(p)&&(h=!0),h?function(e,t){if(function(e,t){var n=e,r=!1;for(;;){if(n.tag===f)r=!0,t.add(n.stateNode);else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)return r;for(;null===n.sibling;){if(null===n.return||n.return===e)return r;n=n.return}n.sibling.return=n.return,n=n.sibling}return!1}(e,t))return;var n=e;for(;;){switch(n.tag){case f:return void t.add(n.stateNode);case d:case c:return void t.add(n.stateNode.containerInfo)}if(null===n.return)throw new Error(\"Expected to reach root first.\");n=n.return}}(t,r):null!==a&&e(a,n,r),null!==o&&e(o,n,r)}(e.current,r,n),n};ok=!1;try{var lk=Object.preventExtensions({});new Map([[lk,null]]),new Set([lk])}catch(e){ok=!0}var uk=function(e,t,n,r){return new function(e,t,n,r){this.tag=e,this.key=n,this.elementType=null,this.type=null,this.stateNode=null,this.return=null,this.child=null,this.sibling=null,this.index=0,this.ref=null,this.pendingProps=t,this.memoizedProps=null,this.updateQueue=null,this.memoizedState=null,this.dependencies=null,this.mode=r,this.flags=ea,this.subtreeFlags=ea,this.deletions=null,this.lanes=Ro,this.childLanes=Ro,this.alternate=null,this.actualDuration=Number.NaN,this.actualStartTime=Number.NaN,this.selfBaseDuration=Number.NaN,this.treeBaseDuration=Number.NaN,this.actualDuration=0,this.actualStartTime=-1,this.selfBaseDuration=0,this.treeBaseDuration=0,this._debugSource=null,this._debugOwner=null,this._debugNeedsRemount=!1,this._debugHookTypes=null,ok||\"function\"!=typeof Object.preventExtensions||Object.preventExtensions(this)}(e,t,n,r)};function sk(e){var t=e.prototype;return!(!t||!t.isReactComponent)}function ck(e,t){var n=e.alternate;null===n?((n=uk(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n._debugSource=e._debugSource,n._debugOwner=e._debugOwner,n._debugHookTypes=e._debugHookTypes,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=ea,n.subtreeFlags=ea,n.deletions=null,n.actualDuration=0,n.actualStartTime=-1),n.flags=e.flags&Na,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue;var r=e.dependencies;switch(n.dependencies=null===r?null:{lanes:r.lanes,firstContext:r.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.selfBaseDuration=e.selfBaseDuration,n.treeBaseDuration=e.treeBaseDuration,n._debugNeedsRemount=e._debugNeedsRemount,n.tag){case s:case l:case S:n.type=Jw(e.type);break;case u:n.type=Zw(e.type);break;case y:n.type=ek(e.type)}return n}function dk(e,t){e.flags&=Na|na;var n=e.alternate;if(null===n)e.childLanes=Ro,e.lanes=t,e.child=null,e.subtreeFlags=ea,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null,e.selfBaseDuration=0,e.treeBaseDuration=0;else{e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=ea,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type;var r=n.dependencies;e.dependencies=null===r?null:{lanes:r.lanes,firstContext:r.firstContext},e.selfBaseDuration=n.selfBaseDuration,e.treeBaseDuration=n.treeBaseDuration}return e}function fk(e,t,n,r,a,i){var l=s,c=e;if(\"function\"==typeof e)sk(e)?(l=u,c=Zw(c)):c=Jw(c);else if(\"string\"==typeof e)l=f;else e:switch(e){case Pe:return hk(n.children,a,i,t);case De:l=m,((a|=ko)&bo)!==yo&&(a|=So);break;case Ne:return function(e,t,n,r){\"string\"!=typeof e.id&&o('Profiler must specify an \"id\" of type `string` as a prop. Received the type `%s` instead.',typeof e.id);var a=uk(b,e,r,t|wo);return a.elementType=Ne,a.lanes=n,a.stateNode={effectDuration:0,passiveEffectDuration:0},a}(n,a,i,t);case ze:return function(e,t,n,r){var a=uk(w,e,r,t);return a.elementType=ze,a.lanes=n,a}(n,a,i,t);case Me:return function(e,t,n,r){var a=uk(T,e,r,t);return a.elementType=Me,a.lanes=n,a}(n,a,i,t);case We:return mk(n,a,i,t);case je:case Fe:case Be:case He:case Ae:default:if(\"object\"==typeof e&&null!==e)switch(e.$$typeof){case _e:l=g;break e;case Ie:l=v;break e;case Le:l=y,c=ek(c);break e;case Oe:l=k;break e;case Ue:l=x,c=null;break e}var d=\"\";(void 0===e||\"object\"==typeof e&&null!==e&&0===Object.keys(e).length)&&(d+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var p=r?vt(r):null;throw p&&(d+=\"\\n\\nCheck the render method of `\"+p+\"`.\"),new Error(\"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \"+(null==e?e:typeof e)+\".\"+d)}var h=uk(l,n,t,a);return h.elementType=e,h.type=c,h.lanes=i,h._debugOwner=r,h}function pk(e,t,n){var r;r=e._owner;var a=fk(e.type,e.key,e.props,r,t,n);return a._debugSource=e._source,a._debugOwner=e._owner,a}function hk(e,t,n,r){var a=uk(h,e,r,t);return a.lanes=n,a}function mk(e,t,n,r){var a=uk(P,e,r,t);a.elementType=We,a.lanes=n;return a.stateNode={isHidden:!1},a}function vk(e,t,n){var r=uk(p,e,null,t);return r.lanes=n,r}function gk(e,t,n){var r=null!==e.children?e.children:[],a=uk(d,r,e.key,t);return a.lanes=n,a.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},a}function yk(e,t){return null===e&&(e=uk(s,null,null,yo)),e.tag=t.tag,e.key=t.key,e.elementType=t.elementType,e.type=t.type,e.stateNode=t.stateNode,e.return=t.return,e.child=t.child,e.sibling=t.sibling,e.index=t.index,e.ref=t.ref,e.pendingProps=t.pendingProps,e.memoizedProps=t.memoizedProps,e.updateQueue=t.updateQueue,e.memoizedState=t.memoizedState,e.dependencies=t.dependencies,e.mode=t.mode,e.flags=t.flags,e.subtreeFlags=t.subtreeFlags,e.deletions=t.deletions,e.lanes=t.lanes,e.childLanes=t.childLanes,e.alternate=t.alternate,e.actualDuration=t.actualDuration,e.actualStartTime=t.actualStartTime,e.selfBaseDuration=t.selfBaseDuration,e.treeBaseDuration=t.treeBaseDuration,e._debugSource=t._debugSource,e._debugOwner=t._debugOwner,e._debugNeedsRemount=t._debugNeedsRemount,e._debugHookTypes=t._debugHookTypes,e}function bk(e,t,n,r,a,o,i,l,u,s){var d=new function(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.pendingChildren=null,this.current=null,this.pingCache=null,this.finishedWork=null,this.timeoutHandle=Lc,this.context=null,this.pendingContext=null,this.callbackNode=null,this.callbackPriority=Po,this.eventTimes=Li(Ro),this.expirationTimes=Li(di),this.pendingLanes=Ro,this.suspendedLanes=Ro,this.pingedLanes=Ro,this.expiredLanes=Ro,this.mutableReadLanes=Ro,this.finishedLanes=Ro,this.entangledLanes=Ro,this.entanglements=Li(Ro),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null,this.effectDuration=0,this.passiveEffectDuration=0,this.memoizedUpdaters=new Set;for(var o=this.pendingUpdatersLaneMap=[],i=0;i<To;i++)o.push(new Set);switch(t){case Fd:this._debugRootType=n?\"hydrateRoot()\":\"createRoot()\";break;case Ud:this._debugRootType=n?\"hydrate()\":\"render()\"}}(e,t,n,l,u),f=function(e,t,n){var r;return e===Fd?(r=bo,!0===t&&(r|=ko,r|=So)):r=yo,no&&(r|=wo),uk(c,null,null,r)}(t,o);d.current=f,f.stateNode=d;var p={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null};return f.memoizedState=p,xp(f),d}var wk,kk,Sk=\"18.2.0\";function xk(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return function(e){if(K(e))o(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",X(e)),G(e)}(r),{$$typeof:Re,key:null==r?null:\"\"+r,children:e,containerInfo:t,implementation:n}}function Ck(e){if(!e)return kd;var t=Zr(e),n=Od(t);if(t.tag===u){var r=t.type;if(Dd(r))return Ld(t,r,n)}return n}function Ek(e,t,n,r,a,o,i,l){return bk(e,t,!1,null,0,r,0,o,i)}function Tk(e,t,n,r,a,o,i,l,u,s){var c=bk(n,r,!0,e,0,o,0,l,u);c.context=Ck(null);var d=c.current,f=aw(),p=ow(d),h=Ep(f,p);return h.callback=void 0!==t&&null!==t?t:null,Tp(d,h,p),function(e,t,n){e.current.lanes=t,zi(e,t,n),uw(e,n)}(c,p,f),c}function Rk(e,t,n,r){!function(e,t){if(Za&&\"function\"==typeof Za.onScheduleFiberRoot)try{Za.onScheduleFiberRoot(Ja,e,t)}catch(e){to||(to=!0,o(\"React instrumentation encountered an error: %s\",e))}}(t,e);var a=t.current,i=aw(),l=ow(a);!function(e){null!==eo&&\"function\"==typeof eo.markRenderScheduled&&eo.markRenderScheduled(e)}(l);var u=Ck(n);null===t.context?t.context=u:t.pendingContext=u,bt&&null!==yt&&!wk&&(wk=!0,o(\"Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.\\n\\nCheck the render method of %s.\",vt(yt)||\"Unknown\"));var s=Ep(i,l);s.payload={element:e},null!==(r=void 0===r?null:r)&&(\"function\"!=typeof r&&o(\"render(...): Expected the last optional `callback` argument to be a function. Instead received: %s.\",r),s.callback=r);var c=Tp(a,s,l);return null!==c&&(lw(c,a,l,i),Rp(c,a,l)),l}function Pk(e){var t=e.current;if(!t.child)return null;switch(t.child.tag){case f:return Tc(t.child.stateNode);default:return t.child.stateNode}}function Dk(e,t){var n,r,a=e.memoizedState;null!==a&&null!==a.dehydrated&&(a.retryLane=(n=a.retryLane,r=t,n!==Po&&n<r?n:r))}function Nk(e,t){Dk(e,t);var n=e.alternate;n&&Dk(n,t)}function _k(e){var t=Fa(e);return null===t?null:t.stateNode}wk=!1,kk={};var Ik=function(e){return null};var Lk=function(e){return!1};var zk=null,Mk=null,Ok=null,Uk=null,Fk=null,Ak=null,Wk=null,jk=null,Bk=null,Hk=function(e,t,n){var r=t[n],a=Jt(e)?e.slice():et({},e);return n+1===t.length?(Jt(a)?a.splice(r,1):delete a[r],a):(a[r]=Hk(e[r],t,n+1),a)},Vk=function(e,t){return Hk(e,t,0)},Yk=function(e,t,n,r){var a=t[r],o=Jt(e)?e.slice():et({},e);r+1===t.length?(o[n[r]]=o[a],Jt(o)?o.splice(a,1):delete o[a]):o[a]=Yk(e[a],t,n,r+1);return o},Qk=function(e,t,n){if(t.length===n.length){for(var r=0;r<n.length-1;r++)if(t[r]!==n[r])return void a(\"copyWithRename() expects paths to be the same except for the deepest key\");return Yk(e,t,n,0)}a(\"copyWithRename() expects paths of the same length\")},qk=function(e,t,n,r){if(n>=t.length)return r;var a=t[n],o=Jt(e)?e.slice():et({},e);return o[a]=qk(e[a],t,n+1,r),o},$k=function(e,t,n){return qk(e,t,0,n)},Xk=function(e,t){for(var n=e.memoizedState;null!==n&&t>0;)n=n.next,t--;return n};function Kk(e){var t=Ua(e);return null===t?null:t.stateNode}function Gk(e){return null}function Jk(){return yt}zk=function(e,t,n,r){var a=Xk(e,t);if(null!==a){var o=$k(a.memoizedState,n,r);a.memoizedState=o,a.baseState=o,e.memoizedProps=et({},e.memoizedProps);var i=pp(e,Do);null!==i&&lw(i,e,Do,di)}},Mk=function(e,t,n){var r=Xk(e,t);if(null!==r){var a=Vk(r.memoizedState,n);r.memoizedState=a,r.baseState=a,e.memoizedProps=et({},e.memoizedProps);var o=pp(e,Do);null!==o&&lw(o,e,Do,di)}},Ok=function(e,t,n,r){var a=Xk(e,t);if(null!==a){var o=Qk(a.memoizedState,n,r);a.memoizedState=o,a.baseState=o,e.memoizedProps=et({},e.memoizedProps);var i=pp(e,Do);null!==i&&lw(i,e,Do,di)}},Uk=function(e,t,n){e.pendingProps=$k(e.memoizedProps,t,n),e.alternate&&(e.alternate.pendingProps=e.pendingProps);var r=pp(e,Do);null!==r&&lw(r,e,Do,di)},Fk=function(e,t){e.pendingProps=Vk(e.memoizedProps,t),e.alternate&&(e.alternate.pendingProps=e.pendingProps);var n=pp(e,Do);null!==n&&lw(n,e,Do,di)},Ak=function(e,t,n){e.pendingProps=Qk(e.memoizedProps,t,n),e.alternate&&(e.alternate.pendingProps=e.pendingProps);var r=pp(e,Do);null!==r&&lw(r,e,Do,di)},Wk=function(e){var t=pp(e,Do);null!==t&&lw(t,e,Do,di)},jk=function(e){Ik=e},Bk=function(e){Lk=e};var Zk=\"function\"==typeof reportError?reportError:function(e){console.error(e)};function eS(e){this._internalRoot=e}function tS(e){this._internalRoot=e}function nS(e){return!(!e||e.nodeType!==yn&&e.nodeType!==kn&&e.nodeType!==Sn&&O)}function rS(e){return!(!e||e.nodeType!==yn&&e.nodeType!==kn&&e.nodeType!==Sn&&(e.nodeType!==wn||\" react-mount-point-unstable \"!==e.nodeValue))}function aS(e){e.nodeType===yn&&e.tagName&&\"BODY\"===e.tagName.toUpperCase()&&o(\"createRoot(): Creating roots directly with document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try using a container element created for your app.\"),ad(e)&&(e._reactRootContainer?o(\"You are calling ReactDOMClient.createRoot() on a container that was previously passed to ReactDOM.render(). This is not supported.\"):o(\"You are calling ReactDOMClient.createRoot() on a container that has already been passed to createRoot() before. Instead, call root.render() on the existing root instead if you want to update it.\"))}tS.prototype.render=eS.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw new Error(\"Cannot update an unmounted root.\");\"function\"==typeof arguments[1]?o(\"render(...): does not support the second callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().\"):nS(arguments[1])?o(\"You passed a container to the second argument of root.render(...). You don't need to pass it again since you already passed it to create the root.\"):void 0!==arguments[1]&&o(\"You passed a second argument to root.render(...) but it only accepts one argument.\");var n=t.containerInfo;if(n.nodeType!==wn){var r=_k(t.current);r&&r.parentNode!==n&&o(\"render(...): It looks like the React-rendered content of the root container was removed without using React. This is not supported and will cause errors. Instead, call root.unmount() to empty a root's container.\")}Rk(e,t,null,null)},tS.prototype.unmount=eS.prototype.unmount=function(){\"function\"==typeof arguments[0]&&o(\"unmount(...): does not support a callback argument. To execute a side effect after rendering, declare it in a component body with useEffect().\");var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;mw()&&o(\"Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition.\"),hw(function(){Rk(null,e,null,null)}),rd(t)}},tS.prototype.unstable_scheduleHydration=function(e){e&&function(e){for(var t=Bi(),n={blockedOn:null,target:e,priority:t},r=0;r<ul.length&&Gi(t,ul[r].priority);r++);ul.splice(r,0,n),0===r&&fl(n)}(e)};var oS,iS=n.ReactCurrentOwner;function lS(e){return e?e.nodeType===kn?e.documentElement:e.firstChild:null}function uS(){}function sS(e,t,n,r,a){oS(n),function(e,t){null!==e&&\"function\"!=typeof e&&o(\"%s(...): Expected the last optional `callback` argument to be a function. Instead received: %s.\",t,e)}(void 0===a?null:a,\"render\");var i,l=n._reactRootContainer;if(l){if(i=l,\"function\"==typeof a){var u=a;a=function(){var e=Pk(i);u.call(e)}}Rk(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if(\"function\"==typeof r){var o=r;r=function(){var e=Pk(i);o.call(e)}}var i=Tk(t,r,e,Ud,0,!1,0,\"\",uS);return e._reactRootContainer=i,nd(i.current,e),Rs(e.nodeType===wn?e.parentNode:e),hw(),i}for(var l;l=e.lastChild;)e.removeChild(l);if(\"function\"==typeof r){var u=r;r=function(){var e=Pk(s);u.call(e)}}var s=Ek(e,Ud,0,!1,0,\"\",uS);return e._reactRootContainer=s,nd(s.current,e),Rs(e.nodeType===wn?e.parentNode:e),hw(function(){Rk(t,s,n,r)}),s}(n,t,e,a,r);return Pk(i)}oS=function(e){if(e._reactRootContainer&&e.nodeType!==wn){var t=_k(e._reactRootContainer.current);t&&t.parentNode!==e&&o(\"render(...): It looks like the React-rendered content of this container was removed without using React. This is not supported and will cause errors. Instead, call ReactDOM.unmountComponentAtNode to empty a container.\")}var n=!!e._reactRootContainer,r=lS(e);!(!r||!id(r))&&!n&&o(\"render(...): Replacing React-rendered children with a new root component. If you intended to update the children of this node, you should instead have the existing children update their state and render the new components instead of calling ReactDOM.render.\"),e.nodeType===yn&&e.tagName&&\"BODY\"===e.tagName.toUpperCase()&&o(\"render(): Rendering components directly into document.body is discouraged, since its children are often manipulated by third-party scripts and browser extensions. This may lead to subtle reconciliation issues. Try rendering into a container element created for your app.\")},Ai=function(e){switch(e.tag){case c:var t=e.stateNode;Zi(t)&&function(e,t){t!==Ro&&(Oi(e,Di(t,Do)),uw(e,Ha()),(gb&(ub|sb))===ib&&(Ob(),Vd()))}(t,function(e){return hi(e.pendingLanes)}(t));break;case w:hw(function(){var t=pp(e,Do);if(null!==t){var n=aw();lw(t,e,Do,n)}}),Nk(e,Do)}},function(e){Wi=e}(function(e){if(e.tag===w){var t=oi,n=pp(e,t);null!==n&&lw(n,e,t,aw()),Nk(e,t)}}),function(e){ji=e}(function(e){if(e.tag===w){var t=ow(e),n=pp(e,t);null!==n&&lw(n,e,t,aw()),Nk(e,t)}}),function(e){Bi=e}(Xi),function(e){Hi=e}(function(e,t){var n=$i;try{return $i=e,t()}finally{$i=n}}),\"function\"==typeof Map&&null!=Map.prototype&&\"function\"==typeof Map.prototype.forEach&&\"function\"==typeof Set&&null!=Set.prototype&&\"function\"==typeof Set.prototype.clear&&\"function\"==typeof Set.prototype.forEach||o(\"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\"),hr=function(e,t,n){switch(t){case\"input\":return void Vt(e,n);case\"textarea\":return void function(e,t){un(e,t)}(e,n);case\"select\":return void function(e,t){var n=e,r=t.value;null!=r&&tn(n,!!t.multiple,r,!1)}(e,n)}},wr=pw,kr=hw;var cS={usingClientEntryPoint:!1,Events:[id,ld,ud,yr,br,pw]};if(!function(e){var t=e.findFiberByHostInstance,r=n.ReactCurrentDispatcher;return function(e){if(\"undefined\"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled)return!0;if(!t.supportsFiber)return o(\"The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://reactjs.org/link/react-devtools\"),!0;try{A&&(e=et({},e,{getLaneLabelMap:oo,injectProfilingHooks:ao})),Ja=t.inject(e),Za=t}catch(e){o(\"React instrumentation encountered an error: %s.\",e)}return!!t.checkDCE}({bundleType:e.bundleType,version:e.version,rendererPackageName:e.rendererPackageName,rendererConfig:e.rendererConfig,overrideHookState:zk,overrideHookStateDeletePath:Mk,overrideHookStateRenamePath:Ok,overrideProps:Uk,overridePropsDeletePath:Fk,overridePropsRenamePath:Ak,setErrorHandler:jk,setSuspenseHandler:Bk,scheduleUpdate:Wk,currentDispatcherRef:r,findHostInstanceByFiber:Kk,findFiberByHostInstance:t||Gk,findHostInstancesForRefresh:ik,scheduleRefresh:rk,scheduleRoot:ak,setRefreshHandler:Gw,getCurrentFiber:Jk,reconcilerVersion:Sk})}({findFiberByHostInstance:od,bundleType:1,version:Sk,rendererPackageName:\"react-dom\"})&&q&&window.top===window.self&&(navigator.userAgent.indexOf(\"Chrome\")>-1&&-1===navigator.userAgent.indexOf(\"Edge\")||navigator.userAgent.indexOf(\"Firefox\")>-1)){var dS=window.location.protocol;/^(https?|file):$/.test(dS)&&console.info(\"%cDownload the React DevTools for a better development experience: https://reactjs.org/link/react-devtools\"+(\"file:\"===dS?\"\\nYou might need to use a local HTTP server (instead of file://): https://reactjs.org/link/react-devtools-faq\":\"\"),\"font-weight:bold\")}e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=cS,e.createPortal=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;if(!nS(t))throw new Error(\"Target container is not a DOM element.\");return xk(e,t,null,n)},e.createRoot=function(e,t){return cS.usingClientEntryPoint,function(e,t){if(!nS(e))throw new Error(\"createRoot(...): Target container is not a DOM element.\");aS(e);var n=!1,r=\"\",i=Zk;null!==t&&void 0!==t&&(t.hydrate?a(\"hydrate through createRoot is deprecated. Use ReactDOMClient.hydrateRoot(container, <App />) instead.\"):\"object\"==typeof t&&null!==t&&t.$$typeof===Te&&o(\"You passed a JSX element to createRoot. You probably meant to call root.render instead. Example usage:\\n\\n let root = createRoot(domContainer);\\n root.render(<App />);\"),!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(i=t.onRecoverableError),void 0!==t.transitionCallbacks&&t.transitionCallbacks);var l=Ek(e,Fd,0,n,0,r,i);return nd(l.current,e),Rs(e.nodeType===wn?e.parentNode:e),new eS(l)}(e,t)},e.findDOMNode=function(e){var t=iS.current;return null!==t&&null!==t.stateNode&&(t.stateNode._warnedAboutRefsInRender||o(\"%s is accessing findDOMNode inside its render(). render() should be a pure function of props and state. It should never access something that requires stale data from the previous render, such as refs. Move this logic to componentDidMount and componentDidUpdate instead.\",ht(t.type)||\"A component\"),t.stateNode._warnedAboutRefsInRender=!0),null==e?null:e.nodeType===yn?e:function(e,t){var n=Zr(e);if(void 0===n){if(\"function\"==typeof e.render)throw new Error(\"Unable to find node on an unmounted component.\");var r=Object.keys(e).join(\",\");throw new Error(\"Argument appears to not be a ReactComponent. Keys: \"+r)}var a=Ua(n);if(null===a)return null;if(a.mode&ko){var i=vt(n)||\"Component\";if(!kk[i]){kk[i]=!0;var l=yt;try{xt(a),n.mode&ko?o(\"%s is deprecated in StrictMode. %s was passed an instance of %s which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-node\",t,t,i):o(\"%s is deprecated in StrictMode. %s was passed an instance of %s which renders StrictMode children. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-node\",t,t,i)}finally{l?xt(l):St()}}}return a.stateNode}(e,\"findDOMNode\")},e.flushSync=function(e){return mw()&&o(\"flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task.\"),hw(e)},e.hydrate=function(e,t,n){if(o(\"ReactDOM.hydrate is no longer supported in React 18. Use hydrateRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot\"),!rS(t))throw new Error(\"Target container is not a DOM element.\");return ad(t)&&void 0===t._reactRootContainer&&o(\"You are calling ReactDOM.hydrate() on a container that was previously passed to ReactDOMClient.createRoot(). This is not supported. Did you mean to call hydrateRoot(container, element)?\"),sS(null,e,t,!0,n)},e.hydrateRoot=function(e,t,n){return cS.usingClientEntryPoint,function(e,t,n){if(!nS(e))throw new Error(\"hydrateRoot(...): Target container is not a DOM element.\");aS(e),void 0===t&&o(\"Must provide initial children as second argument to hydrateRoot. Example usage: hydrateRoot(domContainer, <App />)\");var r=null!=n&&n.hydratedSources||null,a=!1,i=\"\",l=Zk;null!==n&&void 0!==n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(l=n.onRecoverableError));var u=Tk(t,null,e,Fd,0,a,0,i,l);if(nd(u.current,e),Rs(e),r)for(var s=0;s<r.length;s++)Vh(u,r[s]);return new tS(u)}(e,t,n)},e.render=function(e,t,n){if(o(\"ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot\"),!rS(t))throw new Error(\"Target container is not a DOM element.\");return ad(t)&&void 0===t._reactRootContainer&&o(\"You are calling ReactDOM.render() on a container that was previously passed to ReactDOMClient.createRoot(). This is not supported. Did you mean to call root.render(element)?\"),sS(null,e,t,!1,n)},e.unmountComponentAtNode=function(e){if(!rS(e))throw new Error(\"unmountComponentAtNode(...): Target container is not a DOM element.\");if(ad(e)&&void 0===e._reactRootContainer&&o(\"You are calling ReactDOM.unmountComponentAtNode() on a container that was previously passed to ReactDOMClient.createRoot(). This is not supported. Did you mean to call root.unmount()?\"),e._reactRootContainer){var t=lS(e);return t&&!id(t)&&o(\"unmountComponentAtNode(): The node you're attempting to unmount was rendered by another copy of React.\"),hw(function(){sS(null,null,e,!1,function(){e._reactRootContainer=null,rd(e)})}),!0}var n=lS(e),r=!(!n||!id(n)),a=e.nodeType===yn&&rS(e.parentNode)&&!!e.parentNode._reactRootContainer;return r&&o(\"unmountComponentAtNode(): The node you're attempting to unmount was rendered by React and is not a top-level container. %s\",a?\"You may have accidentally passed in a React root node instead of its container.\":\"Instead, have the parent component update its state and rerender in order to remove this component.\"),!1},e.unstable_batchedUpdates=pw,e.unstable_renderSubtreeIntoContainer=function(e,t,n,r){return function(e,t,n,r){if(o(\"ReactDOM.unstable_renderSubtreeIntoContainer() is no longer supported in React 18. Consider using a portal instead. Until you switch to the createRoot API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot\"),!rS(n))throw new Error(\"Target container is not a DOM element.\");if(null==e||void 0===e._reactInternals)throw new Error(\"parentComponent must be a valid React Component\");return sS(e,t,n,!1,r)}(e,t,n,r)},e.version=Sk});","creator":"LinOnetwo","type":"application/javascript","module-type":"library"},"react":{"title":"react","text":"!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=e||self).React={})}(this,function(e){\"use strict\";var t=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),r=Symbol.for(\"react.fragment\"),o=Symbol.for(\"react.strict_mode\"),a=Symbol.for(\"react.profiler\"),i=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),c=Symbol.for(\"react.forward_ref\"),s=Symbol.for(\"react.suspense\"),l=Symbol.for(\"react.suspense_list\"),f=Symbol.for(\"react.memo\"),p=Symbol.for(\"react.lazy\"),d=Symbol.for(\"react.offscreen\"),y=Symbol.iterator,m=\"@@iterator\";function v(e){if(null===e||\"object\"!=typeof e)return null;var t=y&&e[y]||e[m];return\"function\"==typeof t?t:null}var h={current:null},g={transition:null},b={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},_={current:null},w={},k=null;function C(e){k=e}w.setExtraStackFrame=function(e){k=e},w.getCurrentStack=null,w.getStackAddendum=function(){var e=\"\";k&&(e+=k);var t=w.getCurrentStack;return t&&(e+=t()||\"\"),e};var R=!1,S=!1,P=!1,j=!1,x=!1,O={ReactCurrentDispatcher:h,ReactCurrentBatchConfig:g,ReactCurrentOwner:_};function T(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];$(\"warn\",e,n)}function E(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];$(\"error\",e,n)}function $(e,t,n){var r=O.ReactDebugCurrentFrame.getStackAddendum();\"\"!==r&&(t+=\"%s\",n=n.concat([r]));var o=n.map(function(e){return String(e)});o.unshift(\"Warning: \"+t),Function.prototype.apply.call(console[e],console,o)}O.ReactDebugCurrentFrame=w,O.ReactCurrentActQueue=b;var I={};function D(e,t){var n=e.constructor,r=n&&(n.displayName||n.name)||\"ReactClass\",o=r+\".\"+t;I[o]||(E(\"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",t,r),I[o]=!0)}var F={isMounted:function(e){return!1},enqueueForceUpdate:function(e,t,n){D(e,\"forceUpdate\")},enqueueReplaceState:function(e,t,n,r){D(e,\"replaceState\")},enqueueSetState:function(e,t,n,r){D(e,\"setState\")}},N=Object.assign,M={};function L(e,t,n){this.props=e,this.context=t,this.refs=M,this.updater=n||F}Object.freeze(M),L.prototype.isReactComponent={},L.prototype.setState=function(e,t){if(\"object\"!=typeof e&&\"function\"!=typeof e&&null!=e)throw new Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,e,t,\"setState\")},L.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,\"forceUpdate\")};var z={isMounted:[\"isMounted\",\"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"],replaceState:[\"replaceState\",\"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"]},U=function(e,t){Object.defineProperty(L.prototype,e,{get:function(){T(\"%s(...) is deprecated in plain JavaScript React classes. %s\",t[0],t[1])}})};for(var A in z)z.hasOwnProperty(A)&&U(A,z[A]);function V(){}function Y(e,t,n){this.props=e,this.context=t,this.refs=M,this.updater=n||F}V.prototype=L.prototype;var q=Y.prototype=new V;q.constructor=Y,N(q,L.prototype),q.isPureReactComponent=!0;var W=Array.isArray;function B(e){return W(e)}function H(e){return\"\"+e}function J(e){if(function(e){try{return H(e),!1}catch(e){return!0}}(e))return E(\"The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.\",function(e){return\"function\"==typeof Symbol&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||\"Object\"}(e)),H(e)}function Q(e){return e.displayName||\"Context\"}function X(e){if(null==e)return null;if(\"number\"==typeof e.tag&&E(\"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"),\"function\"==typeof e)return e.displayName||e.name||null;if(\"string\"==typeof e)return e;switch(e){case r:return\"Fragment\";case n:return\"Portal\";case a:return\"Profiler\";case o:return\"StrictMode\";case s:return\"Suspense\";case l:return\"SuspenseList\"}if(\"object\"==typeof e)switch(e.$$typeof){case u:return Q(e)+\".Consumer\";case i:return Q(e._context)+\".Provider\";case c:return function(e,t,n){var r=e.displayName;if(r)return r;var o=t.displayName||t.name||\"\";return\"\"!==o?n+\"(\"+o+\")\":n}(e,e.render,\"ForwardRef\");case f:var t=e.displayName||null;return null!==t?t:X(e.type)||\"Memo\";case p:var d=e,y=d._payload,m=d._init;try{return X(m(y))}catch(e){return null}}return null}var G,K,Z,ee=Object.prototype.hasOwnProperty,te={key:!0,ref:!0,__self:!0,__source:!0};function ne(e){if(ee.call(e,\"ref\")){var t=Object.getOwnPropertyDescriptor(e,\"ref\").get;if(t&&t.isReactWarning)return!1}return void 0!==e.ref}function re(e){if(ee.call(e,\"key\")){var t=Object.getOwnPropertyDescriptor(e,\"key\").get;if(t&&t.isReactWarning)return!1}return void 0!==e.key}Z={};var oe=function(e,n,r,o,a,i,u){var c={$$typeof:t,type:e,key:n,ref:r,props:u,_owner:i,_store:{}};return Object.defineProperty(c._store,\"validated\",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(c,\"_self\",{configurable:!1,enumerable:!1,writable:!1,value:o}),Object.defineProperty(c,\"_source\",{configurable:!1,enumerable:!1,writable:!1,value:a}),Object.freeze&&(Object.freeze(c.props),Object.freeze(c)),c};function ae(e,t,n){var r,o={},a=null,i=null,u=null,c=null;if(null!=t)for(r in ne(t)&&(i=t.ref,function(e){if(\"string\"==typeof e.ref&&_.current&&e.__self&&_.current.stateNode!==e.__self){var t=X(_.current.type);Z[t]||(E('Component \"%s\" contains the string ref \"%s\". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',t,e.ref),Z[t]=!0)}}(t)),re(t)&&(J(t.key),a=\"\"+t.key),u=void 0===t.__self?null:t.__self,c=void 0===t.__source?null:t.__source,t)ee.call(t,r)&&!te.hasOwnProperty(r)&&(o[r]=t[r]);var s=arguments.length-2;if(1===s)o.children=n;else if(s>1){for(var l=Array(s),f=0;f<s;f++)l[f]=arguments[f+2];Object.freeze&&Object.freeze(l),o.children=l}if(e&&e.defaultProps){var p=e.defaultProps;for(r in p)void 0===o[r]&&(o[r]=p[r])}if(a||i){var d=\"function\"==typeof e?e.displayName||e.name||\"Unknown\":e;a&&function(e,t){var n=function(){G||(G=!0,E(\"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};n.isReactWarning=!0,Object.defineProperty(e,\"key\",{get:n,configurable:!0})}(o,d),i&&function(e,t){var n=function(){K||(K=!0,E(\"%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)\",t))};n.isReactWarning=!0,Object.defineProperty(e,\"ref\",{get:n,configurable:!0})}(o,d)}return oe(e,a,i,u,c,_.current,o)}function ie(e){return\"object\"==typeof e&&null!==e&&e.$$typeof===t}var ue=\".\",ce=\":\";var se=!1,le=/\\/+/g;function fe(e){return e.replace(le,\"$&/\")}function pe(e,t){return\"object\"==typeof e&&null!==e&&null!=e.key?(J(e.key),n=\"\"+e.key,r={\"=\":\"=0\",\":\":\"=2\"},\"$\"+n.replace(/[=:]/g,function(e){return r[e]})):t.toString(36);var n,r}function de(e,r,o,a,i){var u=typeof e;\"undefined\"!==u&&\"boolean\"!==u||(e=null);var c,s,l,f=!1;if(null===e)f=!0;else switch(u){case\"string\":case\"number\":f=!0;break;case\"object\":switch(e.$$typeof){case t:case n:f=!0}}if(f){var p=e,d=i(p),y=\"\"===a?ue+pe(p,0):a;if(B(d)){var m=\"\";null!=y&&(m=fe(y)+\"/\"),de(d,r,m,\"\",function(e){return e})}else null!=d&&(ie(d)&&(!d.key||p&&p.key===d.key||J(d.key),c=d,s=o+(!d.key||p&&p.key===d.key?\"\":fe(\"\"+d.key)+\"/\")+y,d=oe(c.type,s,c.ref,c._self,c._source,c._owner,c.props)),r.push(d));return 1}var h=0,g=\"\"===a?ue:a+ce;if(B(e))for(var b=0;b<e.length;b++)h+=de(l=e[b],r,o,g+pe(l,b),i);else{var _=v(e);if(\"function\"==typeof _){var w=e;_===w.entries&&(se||T(\"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"),se=!0);for(var k,C=_.call(w),R=0;!(k=C.next()).done;)h+=de(l=k.value,r,o,g+pe(l,R++),i)}else if(\"object\"===u){var S=String(e);throw new Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===S?\"object with keys {\"+Object.keys(e).join(\", \")+\"}\":S)+\"). If you meant to render a collection of children, use an array instead.\")}}return h}function ye(e,t,n){if(null==e)return e;var r=[],o=0;return de(e,r,\"\",\"\",function(e){return t.call(n,e,o++)}),r}var me,ve=-1,he=0,ge=1,be=2;function _e(e){if(e._status===ve){var t=(0,e._result)();if(t.then(function(t){if(e._status===he||e._status===ve){var n=e;n._status=ge,n._result=t}},function(t){if(e._status===he||e._status===ve){var n=e;n._status=be,n._result=t}}),e._status===ve){var n=e;n._status=he,n._result=t}}if(e._status===ge){var r=e._result;return void 0===r&&E(\"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",r),\"default\"in r||E(\"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",r),r.default}throw e._result}function we(e){return\"string\"==typeof e||\"function\"==typeof e||(!!(e===r||e===a||x||e===o||e===s||e===l||j||e===d||R||S||P)||\"object\"==typeof e&&null!==e&&(e.$$typeof===p||e.$$typeof===f||e.$$typeof===i||e.$$typeof===u||e.$$typeof===c||e.$$typeof===me||void 0!==e.getModuleId))}function ke(){var e=h.current;return null===e&&E(\"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\"),e}me=Symbol.for(\"react.module.reference\");var Ce,Re,Se,Pe,je,xe,Oe,Te=0;function Ee(){}Ee.__reactDisabledLog=!0;var $e,Ie=O.ReactCurrentDispatcher;function De(e,t,n){if(void 0===$e)try{throw Error()}catch(e){var r=e.stack.trim().match(/\\n( *(at )?)/);$e=r&&r[1]||\"\"}return\"\\n\"+$e+e}var Fe,Ne=!1,Me=\"function\"==typeof WeakMap?WeakMap:Map;function Le(e,t){if(!e||Ne)return\"\";var n,r=Fe.get(e);if(void 0!==r)return r;Ne=!0;var o,a=Error.prepareStackTrace;Error.prepareStackTrace=void 0,o=Ie.current,Ie.current=null,function(){if(0===Te){Ce=console.log,Re=console.info,Se=console.warn,Pe=console.error,je=console.group,xe=console.groupCollapsed,Oe=console.groupEnd;var e={configurable:!0,enumerable:!0,value:Ee,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}Te++}();try{if(t){var i=function(){throw Error()};if(Object.defineProperty(i.prototype,\"props\",{set:function(){throw Error()}}),\"object\"==typeof Reflect&&Reflect.construct){try{Reflect.construct(i,[])}catch(e){n=e}Reflect.construct(e,[],i)}else{try{i.call()}catch(e){n=e}e.call(i.prototype)}}else{try{throw Error()}catch(e){n=e}e()}}catch(t){if(t&&n&&\"string\"==typeof t.stack){for(var u=t.stack.split(\"\\n\"),c=n.stack.split(\"\\n\"),s=u.length-1,l=c.length-1;s>=1&&l>=0&&u[s]!==c[l];)l--;for(;s>=1&&l>=0;s--,l--)if(u[s]!==c[l]){if(1!==s||1!==l)do{if(s--,--l<0||u[s]!==c[l]){var f=\"\\n\"+u[s].replace(\" at new \",\" at \");return e.displayName&&f.includes(\"<anonymous>\")&&(f=f.replace(\"<anonymous>\",e.displayName)),\"function\"==typeof e&&Fe.set(e,f),f}}while(s>=1&&l>=0);break}}}finally{Ne=!1,Ie.current=o,function(){if(0==--Te){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:N({},e,{value:Ce}),info:N({},e,{value:Re}),warn:N({},e,{value:Se}),error:N({},e,{value:Pe}),group:N({},e,{value:je}),groupCollapsed:N({},e,{value:xe}),groupEnd:N({},e,{value:Oe})})}Te<0&&E(\"disabledDepth fell below zero. This is a bug in React. Please file an issue.\")}(),Error.prepareStackTrace=a}var p=e?e.displayName||e.name:\"\",d=p?De(p):\"\";return\"function\"==typeof e&&Fe.set(e,d),d}function ze(e,t,n){if(null==e)return\"\";if(\"function\"==typeof e)return Le(e,!(!(r=e.prototype)||!r.isReactComponent));var r;if(\"string\"==typeof e)return De(e);switch(e){case s:return De(\"Suspense\");case l:return De(\"SuspenseList\")}if(\"object\"==typeof e)switch(e.$$typeof){case c:return Le(e.render,!1);case f:return ze(e.type,t,n);case p:var o=e,a=o._payload,i=o._init;try{return ze(i(a),t,n)}catch(e){}}return\"\"}Fe=new Me;var Ue,Ae={},Ve=O.ReactDebugCurrentFrame;function Ye(e){if(e){var t=e._owner,n=ze(e.type,e._source,t?t.type:null);Ve.setExtraStackFrame(n)}else Ve.setExtraStackFrame(null)}function qe(e){if(e){var t=e._owner;C(ze(e.type,e._source,t?t.type:null))}else C(null)}function We(){if(_.current){var e=X(_.current.type);if(e)return\"\\n\\nCheck the render method of `\"+e+\"`.\"}return\"\"}Ue=!1;var Be={};function He(e,t){if(e._store&&!e._store.validated&&null==e.key){e._store.validated=!0;var n=function(e){var t=We();if(!t){var n=\"string\"==typeof e?e:e.displayName||e.name;n&&(t=\"\\n\\nCheck the top-level render call using <\"+n+\">.\")}return t}(t);if(!Be[n]){Be[n]=!0;var r=\"\";e&&e._owner&&e._owner!==_.current&&(r=\" It was passed a child from \"+X(e._owner.type)+\".\"),qe(e),E('Each child in a list should have a unique \"key\" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',n,r),qe(null)}}}function Je(e,t){if(\"object\"==typeof e)if(B(e))for(var n=0;n<e.length;n++){var r=e[n];ie(r)&&He(r,t)}else if(ie(e))e._store&&(e._store.validated=!0);else if(e){var o=v(e);if(\"function\"==typeof o&&o!==e.entries)for(var a,i=o.call(e);!(a=i.next()).done;)ie(a.value)&&He(a.value,t)}}function Qe(e){var t,n=e.type;if(null!==n&&void 0!==n&&\"string\"!=typeof n){if(\"function\"==typeof n)t=n.propTypes;else{if(\"object\"!=typeof n||n.$$typeof!==c&&n.$$typeof!==f)return;t=n.propTypes}if(t){var r=X(n);!function(e,t,n,r,o){var a=Function.call.bind(ee);for(var i in e)if(a(e,i)){var u=void 0;try{if(\"function\"!=typeof e[i]){var c=Error((r||\"React class\")+\": \"+n+\" type `\"+i+\"` is invalid; it must be a function, usually from the `prop-types` package, but received `\"+typeof e[i]+\"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.\");throw c.name=\"Invariant Violation\",c}u=e[i](t,i,r,n,null,\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\")}catch(e){u=e}!u||u instanceof Error||(Ye(o),E(\"%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).\",r||\"React class\",n,i,typeof u),Ye(null)),u instanceof Error&&!(u.message in Ae)&&(Ae[u.message]=!0,Ye(o),E(\"Failed %s type: %s\",n,u.message),Ye(null))}}(t,e.props,\"prop\",r,e)}else if(void 0!==n.PropTypes&&!Ue){Ue=!0,E(\"Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?\",X(n)||\"Unknown\")}\"function\"!=typeof n.getDefaultProps||n.getDefaultProps.isReactClassApproved||E(\"getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.\")}}function Xe(e,n,o){var a,i,u=we(e);if(!u){var c=\"\";(void 0===e||\"object\"==typeof e&&null!==e&&0===Object.keys(e).length)&&(c+=\" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.\");var s,l=null!==(a=n)&&void 0!==a&&void 0!==(i=a.__source)?\"\\n\\nCheck your code at \"+i.fileName.replace(/^.*[\\\\\\/]/,\"\")+\":\"+i.lineNumber+\".\":\"\";c+=l||We(),null===e?s=\"null\":B(e)?s=\"array\":void 0!==e&&e.$$typeof===t?(s=\"<\"+(X(e.type)||\"Unknown\")+\" />\",c=\" Did you accidentally export a JSX literal instead of a component?\"):s=typeof e,E(\"React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s\",s,c)}var f=ae.apply(this,arguments);if(null==f)return f;if(u)for(var p=2;p<arguments.length;p++)Je(arguments[p],e);return e===r?function(e){for(var t=Object.keys(e.props),n=0;n<t.length;n++){var r=t[n];if(\"children\"!==r&&\"key\"!==r){qe(e),E(\"Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.\",r),qe(null);break}}null!==e.ref&&(qe(e),E(\"Invalid attribute `ref` supplied to `React.Fragment`.\"),qe(null))}(f):Qe(f),f}var Ge=!1;var Ke=!1,Ze=!1,et=5;function tt(e,t){var n=e.length;e.push(t),function(e,t,n){var r=n;for(;r>0;){var o=r-1>>>1,a=e[o];if(!(ot(a,t)>0))return;e[o]=t,e[r]=a,r=o}}(e,t,n)}function nt(e){return 0===e.length?null:e[0]}function rt(e){if(0===e.length)return null;var t=e[0],n=e.pop();return n!==t&&(e[0]=n,function(e,t,n){var r=n,o=e.length,a=o>>>1;for(;r<a;){var i=2*(r+1)-1,u=e[i],c=i+1,s=e[c];if(ot(u,t)<0)c<o&&ot(s,u)<0?(e[r]=s,e[c]=t,r=c):(e[r]=u,e[i]=t,r=i);else{if(!(c<o&&ot(s,t)<0))return;e[r]=s,e[c]=t,r=c}}}(e,n,0)),t}function ot(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var at,it=1,ut=2,ct=3,st=4,lt=5;if(\"object\"==typeof performance&&\"function\"==typeof performance.now){var ft=performance;at=function(){return ft.now()}}else{var pt=Date,dt=pt.now();at=function(){return pt.now()-dt}}var yt=-1,mt=250,vt=5e3,ht=1e4,gt=1073741823,bt=[],_t=[],wt=1,kt=null,Ct=ct,Rt=!1,St=!1,Pt=!1,jt=\"function\"==typeof setTimeout?setTimeout:null,xt=\"function\"==typeof clearTimeout?clearTimeout:null,Ot=\"undefined\"!=typeof setImmediate?setImmediate:null;\"undefined\"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Tt(e){for(var t=nt(_t);null!==t;){if(null===t.callback)rt(_t);else{if(!(t.startTime<=e))return;rt(_t),t.sortIndex=t.expirationTime,tt(bt,t)}t=nt(_t)}}function Et(e){if(Pt=!1,Tt(e),!St)if(null!==nt(bt))St=!0,qt($t);else{var t=nt(_t);null!==t&&Wt(Et,t.startTime-e)}}function $t(e,t){St=!1,Pt&&(Pt=!1,Bt()),Rt=!0;var n=Ct;try{if(!Ze)return It(e,t);try{return It(e,t)}catch(e){if(null!==kt){at();kt.isQueued=!1}throw e}}finally{kt=null,Ct=n,Rt=!1}}function It(e,t){var n=t;for(Tt(n),kt=nt(bt);null!==kt&&!Ke&&(!(kt.expirationTime>n)||e&&!zt());){var r=kt.callback;if(\"function\"==typeof r){kt.callback=null,Ct=kt.priorityLevel;var o=r(kt.expirationTime<=n);n=at(),\"function\"==typeof o?kt.callback=o:kt===nt(bt)&&rt(bt),Tt(n)}else rt(bt);kt=nt(bt)}if(null!==kt)return!0;var a=nt(_t);return null!==a&&Wt(Et,a.startTime-n),!1}var Dt=!1,Ft=null,Nt=-1,Mt=et,Lt=-1;function zt(){return!(at()-Lt<Mt)}var Ut,At=function(){if(null!==Ft){var e=at();Lt=e;var t=!0;try{t=Ft(!0,e)}finally{t?Ut():(Dt=!1,Ft=null)}}else Dt=!1};if(\"function\"==typeof Ot)Ut=function(){Ot(At)};else if(\"undefined\"!=typeof MessageChannel){var Vt=new MessageChannel,Yt=Vt.port2;Vt.port1.onmessage=At,Ut=function(){Yt.postMessage(null)}}else Ut=function(){jt(At,0)};function qt(e){Ft=e,Dt||(Dt=!0,Ut())}function Wt(e,t){Nt=jt(function(){e(at())},t)}function Bt(){xt(Nt),Nt=-1}var Ht=function(){},Jt={ReactCurrentDispatcher:h,ReactCurrentOwner:_,ReactCurrentBatchConfig:g,Scheduler:Object.freeze({__proto__:null,unstable_ImmediatePriority:it,unstable_UserBlockingPriority:ut,unstable_NormalPriority:ct,unstable_IdlePriority:lt,unstable_LowPriority:st,unstable_runWithPriority:function(e,t){switch(e){case it:case ut:case ct:case st:case lt:break;default:e=ct}var n=Ct;Ct=e;try{return t()}finally{Ct=n}},unstable_next:function(e){var t;switch(Ct){case it:case ut:case ct:t=ct;break;default:t=Ct}var n=Ct;Ct=t;try{return e()}finally{Ct=n}},unstable_scheduleCallback:function(e,t,n){var r,o,a=at();if(\"object\"==typeof n&&null!==n){var i=n.delay;r=\"number\"==typeof i&&i>0?a+i:a}else r=a;switch(e){case it:o=yt;break;case ut:o=mt;break;case lt:o=gt;break;case st:o=ht;break;case ct:default:o=vt}var u=r+o,c={id:wt++,callback:t,priorityLevel:e,startTime:r,expirationTime:u,sortIndex:-1};return r>a?(c.sortIndex=r,tt(_t,c),null===nt(bt)&&c===nt(_t)&&(Pt?Bt():Pt=!0,Wt(Et,r-a))):(c.sortIndex=u,tt(bt,c),St||Rt||(St=!0,qt($t))),c},unstable_cancelCallback:function(e){e.callback=null},unstable_wrapCallback:function(e){var t=Ct;return function(){var n=Ct;Ct=t;try{return e.apply(this,arguments)}finally{Ct=n}}},unstable_getCurrentPriorityLevel:function(){return Ct},unstable_shouldYield:zt,unstable_requestPaint:Ht,unstable_continueExecution:function(){St||Rt||(St=!0,qt($t))},unstable_pauseExecution:function(){},unstable_getFirstCallbackNode:function(){return nt(bt)},get unstable_now(){return at},unstable_forceFrameRate:function(e){e<0||e>125?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):Mt=e>0?Math.floor(1e3/e):et},unstable_Profiling:null})};Jt.ReactCurrentActQueue=b,Jt.ReactDebugCurrentFrame=w;var Qt=!1,Xt=null;var Gt=0,Kt=!1;function Zt(e){e!==Gt-1&&E(\"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"),Gt=e}function en(e,t,n){var r=b.current;if(null!==r)try{nn(r),function(e){if(null===Xt)try{var t=(\"require\"+Math.random()).slice(0,7),n=module&&module[t];Xt=n.call(module,\"timers\").setImmediate}catch(e){Xt=function(e){!1===Qt&&(Qt=!0,\"undefined\"==typeof MessageChannel&&E(\"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"));var t=new MessageChannel;t.port1.onmessage=e,t.port2.postMessage(void 0)}}Xt(e)}(function(){0===r.length?(b.current=null,t(e)):en(e,t,n)})}catch(e){n(e)}else t(e)}var tn=!1;function nn(e){if(!tn){tn=!0;var t=0;try{for(;t<e.length;t++){var n=e[t];do{n=n(!0)}while(null!==n)}e.length=0}catch(n){throw e=e.slice(t+1),n}finally{tn=!1}}}var rn=Xe,on=function(e,t,n){for(var r=function(e,t,n){if(null===e||void 0===e)throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+e+\".\");var r,o,a=N({},e.props),i=e.key,u=e.ref,c=e._self,s=e._source,l=e._owner;if(null!=t)for(r in ne(t)&&(u=t.ref,l=_.current),re(t)&&(J(t.key),i=\"\"+t.key),e.type&&e.type.defaultProps&&(o=e.type.defaultProps),t)ee.call(t,r)&&!te.hasOwnProperty(r)&&(void 0===t[r]&&void 0!==o?a[r]=o[r]:a[r]=t[r]);var f=arguments.length-2;if(1===f)a.children=n;else if(f>1){for(var p=Array(f),d=0;d<f;d++)p[d]=arguments[d+2];a.children=p}return oe(e.type,i,u,c,s,l,a)}.apply(this,arguments),o=2;o<arguments.length;o++)Je(arguments[o],r.type);return Qe(r),r},an=function(e){var t=Xe.bind(null,e);return t.type=e,Ge||(Ge=!0,T(\"React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.\")),Object.defineProperty(t,\"type\",{enumerable:!1,get:function(){return T(\"Factory.type is deprecated. Access the class directly before passing it to createFactory.\"),Object.defineProperty(this,\"type\",{value:e}),e}}),t},un={map:ye,forEach:function(e,t,n){ye(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ye(e,function(){t++}),t},toArray:function(e){return ye(e,function(e){return e})||[]},only:function(e){if(!ie(e))throw new Error(\"React.Children.only expected to receive a single React element child.\");return e}};e.Children=un,e.Component=L,e.Fragment=r,e.Profiler=a,e.PureComponent=Y,e.StrictMode=o,e.Suspense=s,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Jt,e.cloneElement=on,e.createContext=function(e){var t={$$typeof:u,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};t.Provider={$$typeof:i,_context:t};var n=!1,r=!1,o=!1,a={$$typeof:u,_context:t};return Object.defineProperties(a,{Provider:{get:function(){return r||(r=!0,E(\"Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?\")),t.Provider},set:function(e){t.Provider=e}},_currentValue:{get:function(){return t._currentValue},set:function(e){t._currentValue=e}},_currentValue2:{get:function(){return t._currentValue2},set:function(e){t._currentValue2=e}},_threadCount:{get:function(){return t._threadCount},set:function(e){t._threadCount=e}},Consumer:{get:function(){return n||(n=!0,E(\"Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?\")),t.Consumer}},displayName:{get:function(){return t.displayName},set:function(e){o||(T(\"Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.\",e),o=!0)}}}),t.Consumer=a,t._currentRenderer=null,t._currentRenderer2=null,t},e.createElement=rn,e.createFactory=an,e.createRef=function(){var e={current:null};return Object.seal(e),e},e.forwardRef=function(e){null!=e&&e.$$typeof===f?E(\"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"):\"function\"!=typeof e?E(\"forwardRef requires a render function but was given %s.\",null===e?\"null\":typeof e):0!==e.length&&2!==e.length&&E(\"forwardRef render functions accept exactly two parameters: props and ref. %s\",1===e.length?\"Did you forget to use the ref parameter?\":\"Any additional parameter will be undefined.\"),null!=e&&(null==e.defaultProps&&null==e.propTypes||E(\"forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?\"));var t,n={$$typeof:c,render:e};return Object.defineProperty(n,\"displayName\",{enumerable:!1,configurable:!0,get:function(){return t},set:function(n){t=n,e.name||e.displayName||(e.displayName=n)}}),n},e.isValidElement=ie,e.lazy=function(e){var t,n,r={$$typeof:p,_payload:{_status:ve,_result:e},_init:_e};return Object.defineProperties(r,{defaultProps:{configurable:!0,get:function(){return t},set:function(e){E(\"React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it.\"),t=e,Object.defineProperty(r,\"defaultProps\",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return n},set:function(e){E(\"React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it.\"),n=e,Object.defineProperty(r,\"propTypes\",{enumerable:!0})}}}),r},e.memo=function(e,t){we(e)||E(\"memo: The first argument must be a component. Instead received: %s\",null===e?\"null\":typeof e);var n,r={$$typeof:f,type:e,compare:void 0===t?null:t};return Object.defineProperty(r,\"displayName\",{enumerable:!1,configurable:!0,get:function(){return n},set:function(t){n=t,e.name||e.displayName||(e.displayName=t)}}),r},e.startTransition=function(e,t){var n=g.transition;g.transition={};var r=g.transition;g.transition._updatedFibers=new Set;try{e()}finally{g.transition=n,null===n&&r._updatedFibers&&(r._updatedFibers.size>10&&T(\"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"),r._updatedFibers.clear())}},e.unstable_act=function(e){var t=Gt;Gt++,null===b.current&&(b.current=[]);var n,r=b.isBatchingLegacy;try{if(b.isBatchingLegacy=!0,n=e(),!r&&b.didScheduleLegacyUpdate){var o=b.current;null!==o&&(b.didScheduleLegacyUpdate=!1,nn(o))}}catch(e){throw Zt(t),e}finally{b.isBatchingLegacy=r}if(null!==n&&\"object\"==typeof n&&\"function\"==typeof n.then){var a=n,i=!1,u={then:function(e,n){i=!0,a.then(function(r){Zt(t),0===Gt?en(r,e,n):e(r)},function(e){Zt(t),n(e)})}};return Kt||\"undefined\"==typeof Promise||Promise.resolve().then(function(){}).then(function(){i||(Kt=!0,E(\"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"))}),u}var c=n;if(Zt(t),0===Gt){var s=b.current;return null!==s&&(nn(s),b.current=null),{then:function(e,t){null===b.current?(b.current=[],en(c,e,t)):e(c)}}}return{then:function(e,t){e(c)}}},e.useCallback=function(e,t){return ke().useCallback(e,t)},e.useContext=function(e){var t=ke();if(void 0!==e._context){var n=e._context;n.Consumer===e?E(\"Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?\"):n.Provider===e&&E(\"Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?\")}return t.useContext(e)},e.useDebugValue=function(e,t){return ke().useDebugValue(e,t)},e.useDeferredValue=function(e){return ke().useDeferredValue(e)},e.useEffect=function(e,t){return ke().useEffect(e,t)},e.useId=function(){return ke().useId()},e.useImperativeHandle=function(e,t,n){return ke().useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return ke().useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return ke().useLayoutEffect(e,t)},e.useMemo=function(e,t){return ke().useMemo(e,t)},e.useReducer=function(e,t,n){return ke().useReducer(e,t,n)},e.useRef=function(e){return ke().useRef(e)},e.useState=function(e){return ke().useState(e)},e.useSyncExternalStore=function(e,t,n){return ke().useSyncExternalStore(e,t,n)},e.useTransition=function(){return ke().useTransition()},e.version=\"18.2.0\"});","creator":"LinOnetwo","type":"application/javascript","module-type":"library"},"$:/plugins/linonetwo/tw-react/readme":{"title":"$:/plugins/linonetwo/tw-react/readme","creator":"LinOnetwo","type":"text/vnd.tiddlywiki","text":"!! What is this\n\nThis is a dependency of slate-write WYSIWYG editor and flowtiwi-sidebar and many other dynamic widgets. This plugin enable powerful data operation and UI operation of those plugins, thus become a prerequisite of those plugins.\n\n!! Example\n\n{{$:/plugins/linonetwo/tw-react/docs/example}}\n\n!! Usage\n\n<<tree prefix:\"$:/plugins/linonetwo/tw-react/docs/\">>\n"},"$:/plugins/linonetwo/tw-react/tree":{"title":"$:/plugins/linonetwo/tw-react/tree","type":"text/vnd.tiddlywiki","text":"<<tree prefix:\"$:/plugins/linonetwo/tw-react/\">>"},"$:/plugins/linonetwo/tw-react/widget.js":{"title":"$:/plugins/linonetwo/tw-react/widget.js","text":"\"use strict\";\n\n// src/widget.ts\nvar import_widget = require(\"$:/core/modules/widgets/widget.js\");\nvar ReactDom = require(\"react-dom\");\nvar React = require(\"react\");\nif (typeof window !== \"undefined\") {\n window.React = React;\n} else if (typeof global !== \"undefined\") {\n global.React = React;\n}\nimport_widget.widget.prototype.removeLocalDomNodes = function() {\n if (this.domNodes.length > 0) {\n $tw.utils.each(this.domNodes, function(domNode) {\n domNode?.parentNode?.removeChild?.(domNode);\n });\n this.domNodes = [];\n }\n};\nvar ReactWidgetImpl = class extends import_widget.widget {\n constructor() {\n super(...arguments);\n /**\n * User of tw-react need to assign his react component to this property.\n */\n this.reactComponent = null;\n this.getProps = () => ({ parentWidget: this });\n }\n refresh(changedTiddlers) {\n return false;\n }\n render(parent, nextSibling) {\n this.parentDomNode = parent;\n this.computeAttributes();\n this.execute();\n if (this.reactComponent === void 0 || this.reactComponent === null) {\n return;\n }\n const currentProps = this.getProps() ?? {};\n if (currentProps.parentWidget === void 0 || currentProps.parentWidget === null) {\n currentProps.parentWidget = this;\n }\n if (this.root === void 0 || this.containerElement === void 0) {\n this.containerElement = document.createElement(\"div\");\n this.root = ReactDom.createRoot(this.containerElement);\n }\n this.domNodes.push(this.containerElement);\n parent.append(this.containerElement);\n const reactElement = React.createElement(this.reactComponent, currentProps);\n this.root.render(reactElement);\n }\n refreshSelf() {\n if (this.reactComponent === void 0 || this.reactComponent === null) {\n return;\n }\n if (this.root === void 0) {\n const nextSibling = this.findNextSiblingDomNode();\n this.render(this.parentDomNode, nextSibling);\n return;\n }\n this.computeAttributes();\n this.execute();\n const currentProps = this.getProps() ?? {};\n if (currentProps.parentWidget === void 0 || currentProps.parentWidget === null) {\n currentProps.parentWidget = this;\n }\n const reactElement = React.createElement(this.reactComponent, currentProps);\n this.root.render(reactElement);\n }\n destroy() {\n super.destroy?.();\n this.root?.unmount?.();\n }\n};\nexports.widget = ReactWidgetImpl;\n","creator":"LinOnetwo","type":"application/javascript","module-type":"library"}}} \ No newline at end of file diff --git a/wiki/tiddlers/$__plugins_linonetwo_tw-react.json.meta b/wiki/tiddlers/$__plugins_linonetwo_tw-react.json.meta deleted file mode 100644 index e6bd371..0000000 --- a/wiki/tiddlers/$__plugins_linonetwo_tw-react.json.meta +++ /dev/null @@ -1,9 +0,0 @@ -author: LinOnetwo -core-version: >=5.3.0 -dependents: -description: Allow using ReactJS Components in TW widget. -list: readme tree -plugin-type: plugin -title: $:/plugins/linonetwo/tw-react -type: application/json -version: 0.5.4 \ No newline at end of file