diff --git a/luci-app-openclash/Makefile b/luci-app-openclash/Makefile index 57fa0dd87..6a3957813 100644 --- a/luci-app-openclash/Makefile +++ b/luci-app-openclash/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-openclash -PKG_VERSION:=0.44.09 +PKG_VERSION:=0.44.16 PKG_RELEASE:=beta PKG_MAINTAINER:=vernesong diff --git a/luci-app-openclash/luasrc/controller/openclash.lua b/luci-app-openclash/luasrc/controller/openclash.lua index 32efe9ebb..faddaf438 100644 --- a/luci-app-openclash/luasrc/controller/openclash.lua +++ b/luci-app-openclash/luasrc/controller/openclash.lua @@ -107,10 +107,10 @@ end local function is_watchdog() local ps_version = luci.sys.exec("ps --version 2>&1 |grep -c procps-ng |tr -d '\n'") - if ps_version == "0" then - return luci.sys.call("ps |grep openclash_watchdog.sh |grep -v grep >/dev/null") == 0 + if ps_version == "1" then + return luci.sys.call("ps -efw |grep openclash_watchdog.sh |grep -v grep >/dev/null") == 0 else - return luci.sys.call("ps -ef |grep openclash_watchdog.sh |grep -v grep >/dev/null") == 0 + return luci.sys.call("ps -w |grep openclash_watchdog.sh |grep -v grep >/dev/null") == 0 end end @@ -274,6 +274,10 @@ local function corever() return uci:get("openclash", "config", "core_version") end +local function release_branch() + return uci:get("openclash", "config", "release_branch") +end + local function save_corever_branch() if luci.http.formvalue("core_ver") then uci:set("openclash", "config", "core_version", luci.http.formvalue("core_ver")) @@ -919,6 +923,7 @@ function action_update() coretuncv = coretuncv(), opcv = opcv(), corever = corever(), + release_branch = release_branch(), upchecktime = upchecktime(), corelv = corelv(), oplv = oplv(); diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua b/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua index 7b54ecd4b..d29b27367 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua @@ -163,6 +163,7 @@ o.rmempty = true ---- de_exkey o = s:option(MultiValue, "de_ex_keyword", font_red..bold_on..translate("Exclude Keyword Match Default")..bold_off..font_off) o.rmempty = true +o:depends("sub_convert", 0) o:value("过期时间") o:value("剩余流量") o:value("TG群") diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua b/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua index 30323056f..0e42a1acb 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua @@ -95,6 +95,16 @@ o.default = "150" o.rmempty = true o:depends("type", "url-test") +-- [[ interface-name ]]-- +o = s:option(Value, "interface_name", translate("interface-name")) +o.rmempty = true +o.placeholder = translate("eth0") + +-- [[ routing-mark ]]-- +o = s:option(Value, "routing_mark", translate("routing-mark")) +o.rmempty = true +o.placeholder = translate("2333") + o = s:option(DynamicList, "other_group", translate("Other Group")) o.description = font_red..bold_on..translate("The Added Proxy Groups Must Exist Except 'DIRECT' & 'REJECT'")..bold_off..font_off uci:foreach("openclash", "groups", diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/rule-providers-manage.lua b/luci-app-openclash/luasrc/model/cbi/openclash/rule-providers-manage.lua index 8fee90408..e43cdcfc5 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/rule-providers-manage.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/rule-providers-manage.lua @@ -11,7 +11,7 @@ local uci = require "luci.model.uci".cursor() m = SimpleForm("openclash", translate("Other Rule Providers List")) m.description=translate("Rule Project:").." ConnersHua ( https://github.com/DivineEngine/Profiles )
".. -translate("Rule Project:").." lhie1 ( https://github.com/lhie1/Rules )
".. +translate("Rule Project:").." lhie1 ( https://github.com/dler-io/Rules )
".. translate("Rule Project:").." ACL4SSR ( https://github.com/ACL4SSR/ACL4SSR/tree/master )" m.reset = false m.submit = false diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua b/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua index 90adfc5ab..ce546c5d8 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua @@ -150,6 +150,11 @@ o = s:option(Value, "psk", translate("Psk")) o.rmempty = false o:depends("type", "snell") +o = s:option(ListValue, "snell_version", translate("Version")) +o:value("2") +o:value("3") +o:depends("type", "snell") + o = s:option(ListValue, "cipher", translate("Encrypt Method")) for _, v in ipairs(encrypt_methods_ss) do o:value(v) end o.rmempty = true @@ -204,6 +209,7 @@ o:depends("type", "ssr") o:depends("type", "vmess") o:depends("type", "socks5") o:depends("type", "trojan") +o:depends({type = "snell", snell_version = "3"}) o = s:option(ListValue, "obfs", translate("obfs-mode")) o.rmempty = true @@ -398,7 +404,7 @@ o = s:option(Value, "interface_name", translate("interface-name")) o.rmempty = true o.placeholder = translate("eth0") --- [[ interface-name ]]-- +-- [[ routing-mark ]]-- o = s:option(Value, "routing_mark", translate("routing-mark")) o.rmempty = true o.placeholder = translate("2333") diff --git a/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua b/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua index b89d9c389..0ba4f5a43 100644 --- a/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua +++ b/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua @@ -475,80 +475,122 @@ o = s:taboption("stream_enhance", Flag, "stream_auto_select_netflix", translate( o.default=1 o:depends("stream_auto_select", "1") -o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_netflix", translate("Netflix Group Filter Keywords")) +o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_netflix", translate("Netflix Group Filter")) o.default = "Netflix|奈飞" o.placeholder = "Netflix|奈飞" -o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails") +o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") +o:depends("stream_auto_select_netflix", "1") + +o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_netflix", translate("Netflix Unlock Region Filter")) +o.default = "" +o.placeholder = "HK|SG|TW" +o.description = translate("It Will Be Selected Region According To The Regex") o:depends("stream_auto_select_netflix", "1") o = s:taboption("stream_enhance", Flag, "stream_auto_select_disney", translate("Disney Plus")) o.default=0 o:depends("stream_auto_select", "1") -o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_disney", translate("Disney Plus Group Filter Keywords")) +o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_disney", translate("Disney Plus Group Filter")) o.default = "Disney|迪士尼" o.placeholder = "Disney|迪士尼" -o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails") +o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") +o:depends("stream_auto_select_disney", "1") + +o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_disney", translate("Disney Plus Unlock Region Filter")) +o.default = "" +o.placeholder = "HK|SG|TW" +o.description = translate("It Will Be Selected Region According To The Regex") o:depends("stream_auto_select_disney", "1") o = s:taboption("stream_enhance", Flag, "stream_auto_select_ytb", translate("YouTube Premium")) o.default=0 o:depends("stream_auto_select", "1") -o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_ytb", translate("YouTube Premium Group Filter Keywords")) +o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_ytb", translate("YouTube Premium Group Filter")) o.default = "YouTube|油管" o.placeholder = "YouTube|油管" -o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails") +o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") +o:depends("stream_auto_select_ytb", "1") + +o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_ytb", translate("YouTube Premium Unlock Region Filter")) +o.default = "" +o.placeholder = "HK|US" +o.description = translate("It Will Be Selected Region According To The Regex") o:depends("stream_auto_select_ytb", "1") o = s:taboption("stream_enhance", Flag, "stream_auto_select_prime_video", translate("Amazon Prime Video")) o.default=0 o:depends("stream_auto_select", "1") -o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_prime_video", translate("Amazon Prime Video Group Filter Keywords")) +o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_prime_video", translate("Amazon Prime Video Group Filter")) o.default = "Amazon|Prime Video" o.placeholder = "Amazon|Prime Video" -o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails") +o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") +o:depends("stream_auto_select_prime_video", "1") + +o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_prime_video", translate("Amazon Prime Video Unlock Region Filter")) +o.default = "" +o.placeholder = "HK|US|SG" +o.description = translate("It Will Be Selected Region According To The Regex") o:depends("stream_auto_select_prime_video", "1") o = s:taboption("stream_enhance", Flag, "stream_auto_select_hbo_now", translate("HBO Now")) o.default=0 o:depends("stream_auto_select", "1") -o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_hbo_now", translate("HBO Now Group Filter Keywords")) +o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_hbo_now", translate("HBO Now Group Filter")) o.default = "HBO|HBONow|HBO Now" o.placeholder = "HBO|HBONow|HBO Now" -o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails") +o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") o:depends("stream_auto_select_hbo_now", "1") o = s:taboption("stream_enhance", Flag, "stream_auto_select_hbo_max", translate("HBO Max")) o.default=0 o:depends("stream_auto_select", "1") -o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_hbo_max", translate("HBO Max Group Filter Keywords")) +o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_hbo_max", translate("HBO Max Group Filter")) o.default = "HBO|HBOMax|HBO Max" o.placeholder = "HBO|HBOMax|HBO Max" -o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails") +o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") +o:depends("stream_auto_select_hbo_max", "1") + +o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_hbo_max", translate("HBO Max Unlock Region Filter")) +o.default = "" +o.placeholder = "US" +o.description = translate("It Will Be Selected Region According To The Regex") o:depends("stream_auto_select_hbo_max", "1") o = s:taboption("stream_enhance", Flag, "stream_auto_select_hbo_go_asia", translate("HBO GO Asia")) o.default=0 o:depends("stream_auto_select", "1") -o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_hbo_go_asia", translate("HBO GO Asia Group Filter Keywords")) +o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_hbo_go_asia", translate("HBO GO Asia Group Filter")) o.default = "HBO|HBOGO|HBO GO" o.placeholder = "HBO|HBOGO|HBO GO" -o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails") +o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") +o:depends("stream_auto_select_hbo_go_asia", "1") + +o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_hbo_go_asia", translate("HBO Max Unlock Region Filter")) +o.default = "" +o.placeholder = "HK|SG|TW" +o.description = translate("It Will Be Selected Region According To The Regex") o:depends("stream_auto_select_hbo_go_asia", "1") o = s:taboption("stream_enhance", Flag, "stream_auto_select_tvb_anywhere", translate("TVB Anywhere+")) o.default=0 o:depends("stream_auto_select", "1") -o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_tvb_anywhere", translate("TVB Anywhere+ Group Filter Keywords")) +o = s:taboption("stream_enhance", Value, "stream_auto_select_group_key_tvb_anywhere", translate("TVB Anywhere+ Group Filter")) o.default = "TVB" o.placeholder = "TVB" -o.description = translate("It Will Be Searched According To The Keywords When Auto Search Group Fails") +o.description = translate("It Will Be Searched According To The Regex When Auto Search Group Fails") +o:depends("stream_auto_select_tvb_anywhere", "1") + +o = s:taboption("stream_enhance", Value, "stream_auto_select_region_key_tvb_anywhere", translate("HBO Max Unlock Region Filter")) +o.default = "" +o.placeholder = "HK|SG|TW" +o.description = translate("It Will Be Selected Region According To The Regex") o:depends("stream_auto_select_tvb_anywhere", "1") ---- update Settings diff --git a/luci-app-openclash/luasrc/view/openclash/log.htm b/luci-app-openclash/luasrc/view/openclash/log.htm index 9b86c5fd8..d5f5f735c 100644 --- a/luci-app-openclash/luasrc/view/openclash/log.htm +++ b/luci-app-openclash/luasrc/view/openclash/log.htm @@ -57,11 +57,10 @@ ul{ } .radio-button{ - width: fit-content; + width: fit-content; text-align: center; overflow: auto; margin: 10px auto; - white-space: nowrap; background-color: #d1d1d1; border-radius: 4px; } diff --git a/luci-app-openclash/luasrc/view/openclash/status.htm b/luci-app-openclash/luasrc/view/openclash/status.htm index ae2a3f38b..505076ad1 100644 --- a/luci-app-openclash/luasrc/view/openclash/status.htm +++ b/luci-app-openclash/luasrc/view/openclash/status.htm @@ -383,7 +383,7 @@ XHR.get('<%=luci.dispatcher.build_url("admin", "services", "openclash", "state")%>', null, function(x, status) { if ( x && x.status == 200 ) { ipdb.innerHTML = status.ipdb ? ""+status.ipdb+"" : ""+"<%:File Not Exist%>"+""; - lhie1.innerHTML = status.lhie1 ? ""+status.lhie1+"/b>" : ""+"<%:File Not Exist%>"+""; + lhie1.innerHTML = status.lhie1 ? ""+status.lhie1+"" : ""+"<%:File Not Exist%>"+""; ConnersHua.innerHTML = status.ConnersHua ? ""+status.ConnersHua+"" : ""+"<%:File Not Exist%>"+""; ConnersHua_return.innerHTML = status.ConnersHua_return ? ""+status.ConnersHua_return+"" : ""+"<%:File Not Exist%>"+""; chnroute.innerHTML = status.chnroute ? ""+status.chnroute+"" : ""+"<%:File Not Exist%>"+""; diff --git a/luci-app-openclash/luasrc/view/openclash/sub_info_show.htm b/luci-app-openclash/luasrc/view/openclash/sub_info_show.htm index e5bc6a24e..2bdb2dd5d 100644 --- a/luci-app-openclash/luasrc/view/openclash/sub_info_show.htm +++ b/luci-app-openclash/luasrc/view/openclash/sub_info_show.htm @@ -73,7 +73,7 @@ function sub_info_get_<%=idname%>() }; }); - var s_<%=idname%> = setTimeout("sub_info_get_<%=idname%>()",1000*10); + var s_<%=idname%> = setTimeout("sub_info_get_<%=idname%>()",1000*60); }; //]]> diff --git a/luci-app-openclash/luasrc/view/openclash/update.htm b/luci-app-openclash/luasrc/view/openclash/update.htm index 969d9e9b7..7c861d1a6 100644 --- a/luci-app-openclash/luasrc/view/openclash/update.htm +++ b/luci-app-openclash/luasrc/view/openclash/update.htm @@ -24,8 +24,8 @@ <%:Release Branch Selected%> @@ -116,6 +116,12 @@ else { core_version.value = "0"; } + if ( status.release_branch != "" ) { + release_branch.value = status.release_branch; + } + else { + release_branch.value = "master"; + } } }); @@ -173,7 +179,7 @@ var oplvis = arr_op[0]; var new_op = arr_op[1]; op_cv.innerHTML = status.opcv ? ""+status.opcv+"" : "<%:Unknown%>"; - if ( new_op == "2" ) { + if ( new_op == "2" && oplvis != "") { op_lv.innerHTML = ""+oplvis+"<%:%>"; } else if (oplvis != "") { diff --git a/luci-app-openclash/po/zh-cn/openclash.zh-cn.po b/luci-app-openclash/po/zh-cn/openclash.zh-cn.po index cf18a8272..b2f116002 100644 --- a/luci-app-openclash/po/zh-cn/openclash.zh-cn.po +++ b/luci-app-openclash/po/zh-cn/openclash.zh-cn.po @@ -2474,29 +2474,50 @@ msgstr "展开策略组" msgid "Automatically Expand The Group When Selected" msgstr "自动展开嵌套的策略组并进行解锁检测,启用后可能会造成网络不稳定" -msgid "Netflix Group Filter Keywords" -msgstr "Netflix 策略组筛选关键字" +msgid "Netflix Group Filter" +msgstr "Netflix 策略组筛选" -msgid "Disney Plus Group Filter Keywords" -msgstr "Disney Plus 策略组筛选关键字" +msgid "Disney Plus Group Filter" +msgstr "Disney Plus 策略组筛选" -msgid "HBO Now Group Filter Keywords" -msgstr "HBO Now 策略组筛选关键字" +msgid "HBO Now Group Filter" +msgstr "HBO Now 策略组筛选" -msgid "HBO Max Group Filter Keywords" -msgstr "HBO Max 策略组筛选关键字" +msgid "HBO Max Group Filter" +msgstr "HBO Max 策略组筛选" -msgid "HBO GO Asia Group Filter Keywords" -msgstr "HBO GO Asia 策略组筛选关键字" +msgid "HBO GO Asia Group Filter" +msgstr "HBO GO Asia 策略组筛选" -msgid "YouTube Premium Group Filter Keywords" -msgstr "YouTube Premium 策略组筛选关键字" +msgid "YouTube Premium Group Filter" +msgstr "YouTube Premium 策略组筛选" -msgid "TVB Anywhere+ Group Filter Keywords" -msgstr "TVB Anywhere+ 策略组筛选关键字" +msgid "TVB Anywhere+ Group Filter" +msgstr "TVB Anywhere+ 策略组筛选" -msgid "Amazon Prime Video Group Filter Keywords" -msgstr "Amazon Prime Video 策略组筛选关键字" +msgid "Amazon Prime Video Group Filter" +msgstr "Amazon Prime Video 策略组筛选" + +msgid "Netflix Unlock Region Filter" +msgstr "Netflix 解锁区域筛选" + +msgid "Disney Plus Unlock Region Filter" +msgstr "Disney Plus 解锁区域筛选" + +msgid "HBO Max Unlock Region Filter" +msgstr "HBO Max 解锁区域筛选" + +msgid "HBO GO Asia Unlock Region Filter" +msgstr "HBO GO Asia 解锁区域筛选" + +msgid "YouTube Premium Unlock Region Filter" +msgstr "YouTube Premium 解锁区域筛选" + +msgid "TVB Anywhere+ Unlock Region Filter" +msgstr "TVB Anywhere+ 解锁区域筛选" + +msgid "Amazon Prime Video Unlock Region Filter" +msgstr "Amazon Prime Video 解锁区域筛选" msgid "Tip: Start Auto Select Proxy For Netflix Unlock..." msgstr "提示:开始自动选择(检测)Netflix 解锁节点..." @@ -2576,8 +2597,11 @@ msgstr "仅支持自制剧!开始进行解锁节点自动选择..." msgid "unlock test faild! start auto select unlock proxy..." msgstr "解锁检测失败!开始进行解锁节点自动选择..." -msgid "It Will Be Searched According To The Keywords When Auto Search Group Fails" -msgstr "策略组自动获取失败时将会根据关键字进行匹配" +msgid "It Will Be Searched According To The Regex When Auto Search Group Fails" +msgstr "策略组自动获取失败时将会根据正则表达式进行匹配" + +msgid "It Will Be Selected Region According To The Regex" +msgstr "解锁区域将会根据正则表达式进行匹配" msgid "not support unlock!" msgstr "不支持解锁!" @@ -2597,9 +2621,21 @@ msgstr "解锁节点自动选择失败,无可用节点,回退到" msgid ", area:" msgstr ",区域:" -msgid "failed to search based on keywords and automatically obtain the group, please confirm the validity of the keywords!" +msgid "failed to search based on keywords and automatically obtain the group, please confirm the validity of the regex!" msgstr "根据关键字搜索且自动获取策略组失败,请确认关键字的有效性!" +msgid "unlock node auto selected failed, no node match the regex, rolled back to other full support node" +msgstr "解锁节点自动选择失败,未找到区域匹配的节点,回退到其他区域的解锁节点" + +msgid "full support but not match the regex!" +msgstr "完整解锁但区域不匹配!" + +msgid "but not match the regex! the type of group is not select, auto select could not work!" +msgstr "完整解锁但区域不匹配!当前策略组类型非 Select,无法进行自动选择!" + +msgid "full support but not match the regex! start auto select unlock proxy..." +msgstr "完整解锁但区域不匹配!开始进行解锁节点自动选择..." + msgid "DNS Remote" msgstr "*远程域名解析" diff --git a/luci-app-openclash/root/etc/init.d/openclash b/luci-app-openclash/root/etc/init.d/openclash index 92009daf3..64df25075 100644 --- a/luci-app-openclash/root/etc/init.d/openclash +++ b/luci-app-openclash/root/etc/init.d/openclash @@ -1,26 +1,26 @@ #!/bin/sh /etc/rc.common # Copyright (c) 2019 vernesong -[ ! -f /etc/openwrt_release ] && exit 0 - -. /usr/share/openclash/openclash_ps.sh -. /usr/share/openclash/ruby.sh -. /usr/share/openclash/log.sh - START=99 STOP=15 +. $IPKG_INSTROOT/usr/share/openclash/openclash_ps.sh +. $IPKG_INSTROOT/usr/share/openclash/ruby.sh +. $IPKG_INSTROOT/usr/share/openclash/log.sh + +[ -f /etc/openwrt_release ] && { +RAW_CONFIG_FILE=$(uci -q get openclash.config.config_path) +BACKUP_FILE="/etc/openclash/backup/$(uci -q get openclash.config.config_path |awk -F '/' '{print $5}' 2>/dev/null)" +CONFIG_FILE="/etc/openclash/$(uci -q get openclash.config.config_path |awk -F '/' '{print $5}' 2>/dev/null)" +} LOGTIME=$(echo $(date "+%Y-%m-%d %H:%M:%S")) CLASH="/etc/openclash/clash" CLASH_CONFIG="/etc/openclash" CRON_FILE="/etc/crontabs/root" -RAW_CONFIG_FILE=$(uci -q get openclash.config.config_path) -BACKUP_FILE="/etc/openclash/backup/$(uci -q get openclash.config.config_path |awk -F '/' '{print $5}' 2>/dev/null)" CACHE_PATH_OLD="/etc/openclash/.cache" CACHE_PATH="/etc/openclash/cache.db" LOG_FILE="/tmp/openclash.log" START_LOG="/tmp/openclash_start.log" -CONFIG_FILE="/etc/openclash/$(uci -q get openclash.config.config_path |awk -F '/' '{print $5}' 2>/dev/null)" RULE_PROVIDER_FILE="/tmp/yaml_rule_provider.yaml" DNS_FILE="/tmp/yaml_dns.yaml" GAME_RULE_FILE="/tmp/yaml_game_rule.yaml" @@ -301,7 +301,7 @@ yml_provider_path() end #CDN Replace if x['url'] and x['url'] =~ /^https:\/\/raw.githubusercontent.com/ then - x['url'] = 'https://cdn.jsdelivr.net/gh/' + x['url'].split('/')[3] + '/' + x['url'].split('/')[4] + '@' + x['url'].split(x['url'].split('/')[4] + '/')[1] + x['url'] = 'https://cdn.jsdelivr.net/gh/' + x['url'].split('/')[3] + '/' + x['url'].split('/')[4] + '@' + x['url'].split(x['url'].split('/')[2] + '/' + x['url'].split('/')[3] + '/' + x['url'].split('/')[4] + '/')[1] end }; if not Value_1.eql?(Value['$2']) then @@ -1172,6 +1172,11 @@ do_run_file() geoip_path="/etc/openclash/Country.mmdb" chnr_path="/etc/openclash/china_ip_route.ipset" chnr6_path="/etc/openclash/china_ip6_route.ipset" + mv "/tmp/etc/openclash/Country.mmdb" "$geoip_path" 2>/dev/null + mv "/tmp/etc/openclash/china_ip_route.ipset" "$chnr_path" 2>/dev/null + mv "/tmp/etc/openclash/china_ip6_route.ipset" "$chnr6_path" 2>/dev/null + mv "/tmp/etc/openclash/core/" "/etc/openclash" 2>/dev/null + mv "/tmp/etc/openclash/cache.db" "/etc/openclash/cache.db" 2>/dev/null rm -rf "/tmp/etc/openclash" 2>/dev/null else dev_core_path="/tmp/etc/openclash/core/clash" @@ -1179,10 +1184,13 @@ do_run_file() geoip_path="/tmp/etc/openclash/Country.mmdb" chnr_path="/tmp/etc/openclash/china_ip_route.ipset" chnr6_path="/tmp/etc/openclash/china_ip6_route.ipset" - rm -rf "/etc/openclash/Country.mmdb" 2>/dev/null - rm -rf "/etc/openclash/china_ip_route.ipset" 2>/dev/null - rm -rf "/etc/openclash/china_ip6_route.ipset" 2>/dev/null - rm -rf "/etc/openclash/core" 2>/dev/null + CACHE_PATH="/tmp/etc/openclash/cache.db" + mkdir -p /tmp/etc/openclash + [ ! -h "/etc/openclash/Country.mmdb" ] && mv "/etc/openclash/Country.mmdb" "$geoip_path" 2>/dev/null + [ ! -h "/etc/openclash/china_ip_route.ipset" ] && mv "/etc/openclash/china_ip_route.ipset" "$chnr_path" 2>/dev/null + [ ! -h "/etc/openclash/china_ip6_route.ipset" ] && mv "/etc/openclash/china_ip6_route.ipset" "$chnr6_path" 2>/dev/null + mv "/etc/openclash/core/" "/tmp/etc/openclash" 2>/dev/null + [ ! -h "/etc/openclash/cache.db" ] && mv "/etc/openclash/cache.db" "$CACHE_PATH" 2>/dev/null fi rm -rf "/etc/openclash/clash" 2>/dev/null @@ -1226,12 +1234,41 @@ do_run_file() core_type="TUN" core_start_log="Tip: Detected that the Dev Core is not Installed, Use TUN Core to Start..." fi + + [ ! -f "$CLASH" ] && { + LOG_OUT "Tip: Detected that the Core is not Installed, Ready to Download..." + rm -rf "/tmp/clash_last_version" + /usr/share/openclash/openclash_core.sh "$core_type" + if [ "$core_type" == "TUN" ] && [ ! -f "$tun_core_path" ]; then + start_fail + elif [ -z "$core_type" ] && [ ! -f "$dev_core_path" ]; then + start_fail + else + del_lock + restart + exit 0 + fi + } + + [ ! -f "$geoip_path" ] && { + LOG_OUT "Tip: Detected that the GEOIP Database is not Installed, Ready to Download..." + /usr/share/openclash/openclash_ipdb.sh + } + + if [ "$china_ip_route" = "1" ] || [ "$china_ip6_route" = "1" ] || [ "$disable_udp_quic" = "1" ]; then + if [ ! -f "$chnr_path" ] || [ ! -f "$chnr6_path" ]; then + LOG_OUT "Tip: Detected that the Chnroute Cidr List is not Installed, Ready to Download..." + /usr/share/openclash/openclash_chnroute.sh + fi + fi + + if [ ! -f "$chnr_path" ] || [ ! -f "$chnr6_path" ] || [ ! -f "$geoip_path" ]; then + start_fail + fi -#权限检查 [ ! -x "$tun_core_path" ] && chmod 4755 "$tun_core_path" 2>/dev/null [ ! -x "$dev_core_path" ] && chmod 4755 "$dev_core_path" 2>/dev/null -#文件检查 #fake_ip_filter if [ "$3" = "fake-ip" ]; then if [ ! -f "/tmp/openclash_fake_filter.list" ] || [ -n "$(grep "config servers" /etc/config/openclash 2>/dev/null)" ]; then @@ -1255,31 +1292,36 @@ do_run_file() ln -s "$chnr6_path" /etc/openclash/china_ip6_route.ipset 2>/dev/null } - [ ! -f "$geoip_path" ] && { - LOG_OUT "Tip: Detected that the GEOIP Database is not Installed, Ready to Download..." - nofile=1 - nohup /usr/share/openclash/openclash_ipdb.sh & - } - - [ ! -f "$CLASH" ] && { - LOG_OUT "Tip: Detected that the Core is not Installed, Ready to Download..." - nofile=1 - rm -rf "/tmp/clash_last_version" - nohup /usr/share/openclash/openclash_core.sh "$core_type" & - } - - if [ "$china_ip_route" = "1" ] || [ "$china_ip6_route" = "1" ] || [ "$disable_udp_quic" = "1" ]; then - if [ ! -f "$chnr_path" ] || [ ! -f "$chnr6_path" ]; then - LOG_OUT "Tip: Detected that the Chnroute Cidr List is not Installed, Ready to Download..." - nofile=1 - nohup /usr/share/openclash/openclash_chnroute.sh & + #Resore history cache + if [ -f "$HISTORY_PATH" ] && [ -f "$HISTORY_PATH_OLD" ]; then + if [ "$(date -r $HISTORY_PATH +%s)" -ge "$(date -r $HISTORY_PATH_OLD +%s)" ]; then + cmp -s "$CACHE_PATH" "$HISTORY_PATH" + if [ "$?" -ne "0" ]; then + cp "$HISTORY_PATH" "$CACHE_PATH" 2>/dev/null + fi + else + cmp -s "$CACHE_PATH_OLD" "$HISTORY_PATH_OLD" + if [ "$?" -ne "0" ]; then + cp "$HISTORY_PATH_OLD" "$CACHE_PATH_OLD" 2>/dev/null + fi + fi + else + if [ -f "$HISTORY_PATH" ]; then + cmp -s "$CACHE_PATH" "$HISTORY_PATH" + if [ "$?" -ne "0" ]; then + cp "$HISTORY_PATH" "$CACHE_PATH" 2>/dev/null + fi + fi + if [ -f "$HISTORY_PATH_OLD" ]; then + cmp -s "$CACHE_PATH_OLD" "$HISTORY_PATH_OLD" + if [ "$?" -ne "0" ]; then + cp "$HISTORY_PATH_OLD" "$CACHE_PATH_OLD" 2>/dev/null + fi fi fi - - if [ "$nofile" = "1" ]; then - del_lock - exit 0 - fi + [ -f "$CACHE_PATH" ] && [ "$small_flash_memory" = "1" ] && { + ln -s "$CACHE_PATH" /etc/openclash/cache.db 2>/dev/null + } if [ -z "$_koolshare" ]; then if ! capsh --is-uid=0 >/dev/null || ! capsh --has-ambient >/dev/null; then @@ -1322,40 +1364,13 @@ start_run_core() modprobe tun >/dev/null 2>&1 check_interface_name config_reload=$(uci -q get openclash.config.config_reload) - #Resore history cache - if [ -f "$HISTORY_PATH" ] && [ -f "$HISTORY_PATH_OLD" ]; then - if [ "$(date -r $HISTORY_PATH +%s)" -ge "$(date -r $HISTORY_PATH_OLD +%s)" ]; then - cmp -s "$CACHE_PATH" "$HISTORY_PATH" - if [ "$?" -ne "0" ]; then - cp "$HISTORY_PATH" "$CACHE_PATH" 2>/dev/null - fi - else - cmp -s "$CACHE_PATH_OLD" "$HISTORY_PATH_OLD" - if [ "$?" -ne "0" ]; then - cp "$HISTORY_PATH_OLD" "$CACHE_PATH_OLD" 2>/dev/null - fi - fi - else - if [ -f "$HISTORY_PATH" ]; then - cmp -s "$CACHE_PATH" "$HISTORY_PATH" - if [ "$?" -ne "0" ]; then - cp "$HISTORY_PATH" "$CACHE_PATH" 2>/dev/null - fi - fi - if [ -f "$HISTORY_PATH_OLD" ]; then - cmp -s "$CACHE_PATH_OLD" "$HISTORY_PATH_OLD" - if [ "$?" -ne "0" ]; then - cp "$HISTORY_PATH_OLD" "$CACHE_PATH_OLD" 2>/dev/null - fi - fi - fi if [ -n "$(pidof clash)" ] && [ "$core_type" != "TUN" ] && [ "$config_reload" != "0" ]; then curl -s --connect-timeout 5 -m 5 -H 'Content-Type: application/json' -H "Authorization: Bearer ${da_password}" -XPUT http://"$lan_ip":"$cn_port"/configs -d "{\"path\": \"$CONFIG_FILE\"}" 2>/dev/null else kill_clash if [ -z "$_koolshare" ]; then #防止赋权失败 - touch /tmp/openclash.log 2>/dev/null + touch "/tmp/openclash.log" 2>/dev/null chmod o+w /etc/openclash/proxy_provider/* 2>/dev/null chmod o+w /etc/openclash/rule_provider/* 2>/dev/null chmod o+w /tmp/openclash.log 2>/dev/null @@ -1692,7 +1707,7 @@ fi if [ "$enable_redirect_dns" -eq 1 ] && [ -z "$(iptables -t nat -nL PREROUTING --line-number |grep 'DNS Hijack')"]; then DNSPORT=$(uci -q get dhcp.@dnsmasq[0].port) if [ -z "$DNSPORT" ]; then - DNSPORT=$(netstat -nlp |grep -E '127.0.0.1:.*dnsmasq' |awk -F '127.0.0.1:' '{print $2}' |awk '{print $1}' |head -1 || echo "$dns_port") + DNSPORT=$(netstat -nlp |grep -E '127.0.0.1:.*dnsmasq' |awk -F '127.0.0.1:' '{print $2}' |awk '{print $1}' |head -1 || echo "$dns_port") fi iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "DNS Hijack" iptables -t nat -I PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "DNS Hijack" @@ -1861,6 +1876,10 @@ if [ -z "$en_mode_tun" ] || [ "$en_mode_tun" -eq 2 ]; then if [ "$en_mode" = "fake-ip" ]; then iptables -t nat -N openclash_output iptables -t nat -F openclash_output + if [ "$enable_redirect_dns" -eq 1 ] && [ -z "$(iptables -t nat -nL OUTPUT --line-number |grep 'DNS Hijack')"]; then + iptables -t nat -I OUTPUT -p udp --dport 53 -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "DNS Hijack" + iptables -t nat -I OUTPUT -p tcp --dport 53 -j REDIRECT --to-ports "$DNSPORT" -m comment --comment "DNS Hijack" + fi iptables -t nat -A openclash_output -m set --match-set localnetwork dst -j RETURN if [ "$intranet_allowed" -eq 1 ]; then iptables -t nat -A openclash_output -p tcp -d 198.18.0.0/16 -j DNAT --to-destination "$lan_ip:$proxy_port" @@ -1870,7 +1889,7 @@ if [ -z "$en_mode_tun" ] || [ "$en_mode_tun" -eq 2 ]; then fi fi - iptables -t nat -I OUTPUT -j openclash_output >/dev/null 2>&1 + iptables -t nat -A OUTPUT -j openclash_output >/dev/null 2>&1 fi if [ -n "$en_mode_tun" ]; then #TUN模式 @@ -1902,7 +1921,7 @@ if [ -n "$en_mode_tun" ]; then elif [ -z "$_koolshare" ]; then iptables -t mangle -A openclash_output -m owner ! --uid-owner 65534 -p udp -d 198.18.0.0/16 -j MARK --set-mark "$PROXY_FWMARK" fi - iptables -t mangle -I OUTPUT -j openclash_output + iptables -t mangle -A OUTPUT -j openclash_output elif [ -z "$_koolshare" ] && [ "$en_mode" = "redir-host" ] && [ "$en_mode_tun" -eq 1 ]; then iptables -t mangle -N openclash_output iptables -t mangle -F openclash_output @@ -1913,7 +1932,7 @@ if [ -n "$en_mode_tun" ]; then iptables -t mangle -A openclash_output -m owner ! --uid-owner 65534 -m set --match-set china_ip_route dst -j RETURN >/dev/null 2>&1 fi iptables -t mangle -A openclash_output -m owner ! --uid-owner 65534 -p tcp -j MARK --set-mark "$PROXY_FWMARK" - iptables -t mangle -I OUTPUT -j openclash_output + iptables -t mangle -A OUTPUT -j openclash_output fi iptables -t mangle -N openclash diff --git a/luci-app-openclash/root/usr/share/openclash/clash_version.sh b/luci-app-openclash/root/usr/share/openclash/clash_version.sh index b48f88cba..e32047c92 100644 --- a/luci-app-openclash/root/usr/share/openclash/clash_version.sh +++ b/luci-app-openclash/root/usr/share/openclash/clash_version.sh @@ -17,10 +17,10 @@ set_lock if [ "$CKTIME" != "$(grep "CheckTime" $LAST_OPVER 2>/dev/null |awk -F ':' '{print $2}')" ]; then if pidof clash >/dev/null; then - curl -sL --connect-timeout 10 --retry 2 https://raw.githubusercontent.com/vernesong/OpenClash/"$RELEASE_BRANCH"/core_version -o $LAST_OPVER >/dev/null 2>&1 + curl -sL --connect-timeout 5 --retry 2 https://raw.githubusercontent.com/vernesong/OpenClash/"$RELEASE_BRANCH"/core_version -o $LAST_OPVER >/dev/null 2>&1 fi if [ "$?" -ne "0" ] || ! pidof clash >/dev/null; then - curl -sL --connect-timeout 10 --retry 2 https://cdn.jsdelivr.net/gh/vernesong/OpenClash@"$RELEASE_BRANCH"/core_version -o $LAST_OPVER >/dev/null 2>&1 + curl -sL --connect-timeout 5 --retry 2 https://cdn.jsdelivr.net/gh/vernesong/OpenClash@"$RELEASE_BRANCH"/core_version -o $LAST_OPVER >/dev/null 2>&1 fi if [ "$?" -eq "0" ] && [ -s "$LAST_OPVER" ]; then echo "CheckTime:$CKTIME" >>$LAST_OPVER diff --git a/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.049e98b9.js b/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.049e98b9.js new file mode 100644 index 000000000..72a9ff6cb --- /dev/null +++ b/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.049e98b9.js @@ -0,0 +1,2 @@ +var nt=Object.defineProperty,st=Object.defineProperties;var ot=Object.getOwnPropertyDescriptors;var Fe=Object.getOwnPropertySymbols;var at=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;var Ae=(t,n,s)=>n in t?nt(t,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[n]=s,b=(t,n)=>{for(var s in n||(n={}))at.call(n,s)&&Ae(t,s,n[s]);if(Fe)for(var s of Fe(n))rt.call(n,s)&&Ae(t,s,n[s]);return t},D=(t,n)=>st(t,ot(n));import{R as e,c as x,f as lt,r as d,a as pe,E as $e,b as le,d as ct,e as G,g as fe,u as Le,h as it,i as T,j as Ie,k as he,l as V,m as ut,n as Ee,o as mt,p as ye,q as dt,s as pt,t as ft,v as ee,w as ht,A as Et,F as yt,x as xt,N as gt,y as vt,z as Be,B as wt,H as Ct}from"./vendor.e882027f.js";const bt=function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))o(a);new MutationObserver(a=>{for(const r of a)if(r.type==="childList")for(const l of r.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&o(l)}).observe(document,{childList:!0,subtree:!0});function s(a){const r={};return a.integrity&&(r.integrity=a.integrity),a.referrerpolicy&&(r.referrerPolicy=a.referrerpolicy),a.crossorigin==="use-credentials"?r.credentials="include":a.crossorigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function o(a){if(a.ep)return;a.ep=!0;const r=s(a);fetch(a.href,r)}};bt();function q(){return navigator.userAgent==="ClashX Runtime"}let P=null;class Nt{constructor(n){this.instance=null,window.WebViewJavascriptBridge!=null&&(this.instance=window.WebViewJavascriptBridge),this.initBridge(s=>{this.instance=s,n()})}initBridge(n){if(!q())return n==null?void 0:n(null);if(window.WebViewJavascriptBridge!=null)return n(window.WebViewJavascriptBridge);if(window.WVJBCallbacks!=null)return window.WVJBCallbacks.push(n);window.WVJBCallbacks=[n];const s=document.createElement("iframe");s.style.display="none",s.src="https://__bridge_loaded__",document.documentElement.appendChild(s),setTimeout(()=>document.documentElement.removeChild(s),0)}async callHandler(n,s){return await new Promise(o=>{var a;(a=this.instance)==null||a.callHandler(n,s,o)})}async ping(){return await this.callHandler("ping")}async readConfigString(){return await this.callHandler("readConfigString")}async getPasteboard(){return await this.callHandler("getPasteboard")}async getAPIInfo(){return await this.callHandler("apiInfo")}async setPasteboard(n){return await this.callHandler("setPasteboard",n)}async writeConfigWithString(n){return await this.callHandler("writeConfigWithString",n)}async setSystemProxy(n){return await this.callHandler("setSystemProxy",n)}async getStartAtLogin(){return await this.callHandler("getStartAtLogin")}async getProxyDelay(n){return await this.callHandler("speedTest",n)}async setStartAtLogin(n){return await this.callHandler("setStartAtLogin",n)}async isSystemProxySet(){return await this.callHandler("isSystemProxySet")}}function Pt(t){if(P!=null){t();return}P=new Nt(t)}function j(t){const{title:n,children:s,className:o,style:a}=t;return e.createElement("header",{className:x("header",o),style:a},e.createElement("h1",{className:"md:text-xl"},n),e.createElement("div",{className:"flex flex-auto items-center justify-end"},s))}function R(t){const{type:n,size:s=14,className:o,style:a}=t,r=x("clash-iconfont",`icon-${n}`,o),l=b({fontSize:s},a),c=D(b({},t),{className:r,style:l});return e.createElement("i",b({},c))}function U(){}function St(t,n){const s=[],o=[];for(const a of t)n(a)?s.push(a):o.push(a);return[s,o]}function O(t){var o;const n=["B","KB","MB","GB","TB"],s=Math.floor(Math.log(t||1)/Math.log(1024));return`${lt(t/Math.pow(1024,s),2).toFixed(2)} ${(o=n==null?void 0:n[s])!=null?o:""}`}function xe(t){const{className:n,checked:s=!1,disabled:o=!1,onChange:a=U}=t,r=x("switch",{checked:s,disabled:o},n);function l(){o||a(!s)}return e.createElement("div",{className:r,onClick:l},e.createElement(R,{className:"switch-icon font-bold",type:"check",size:20}))}const z=d.exports.forwardRef((t,n)=>{const{className:s,style:o,children:a}=t;return e.createElement("div",{className:x("card",s),style:o,ref:n},a)});function Te(t){const{options:n,value:s,onSelect:o}=t;return e.createElement("div",{className:"button-select"},n.map(a=>e.createElement("button",{value:a.value,key:a.value,className:x("button-select-options",{actived:s===a.value}),onClick:()=>o==null?void 0:o(a.value)},a.label)))}const kt={SideBar:{Proxies:"Proxies",Overview:"Overview",Logs:"Logs",Rules:"Rules",Settings:"Setting",Connections:"Connections",Version:"Version"},Settings:{title:"Settings",labels:{startAtLogin:"Start at login",language:"language",setAsSystemProxy:"Set as system proxy",allowConnectFromLan:"Allow connect from Lan",proxyMode:"Mode",socks5ProxyPort:"Socks5 proxy port",httpProxyPort:"HTTP proxy port",mixedProxyPort:"Mixed proxy port",externalController:"External controller"},values:{cn:"\u4E2D\u6587",en:"English",global:"Global",rules:"Rules",direct:"Direct",script:"Script"},versionString:"Current ClashX is the latest version\uFF1A{{version}}",checkUpdate:"Check Update",externalControllerSetting:{title:"External Controller",note:"Please note that modifying this configuration will only configure Dashboard. Will not modify your Clash configuration file. Please make sure that the external controller address matches the address in the Clash configuration file, otherwise, Dashboard will not be able to connect to Clash.",host:"Host",port:"Port",secret:"Secret"}},Logs:{title:"Logs"},Rules:{title:"Rules",providerTitle:"Providers",providerUpdateTime:"Last updated at",ruleCount:"Rule count"},Connections:{title:"Connections",keepClosed:"Keep closed connections",total:{text:"total",upload:"upload",download:"download"},closeAll:{title:"Warning",content:"This would close all connections"},filter:{all:"All"},columns:{host:"Host",network:"Network",type:"Type",chains:"Chains",rule:"Rule",time:"Time",speed:"Speed",upload:"Upload",download:"Download",sourceIP:"Source IP"},info:{title:"Connection",id:"ID",host:"Host",hostEmpty:"Empty",dstIP:"IP",dstIPEmpty:"Empty",srcIP:"Source",upload:"Upload",download:"Download",network:"Network",inbound:"Inbound",rule:"Rule",chains:"Chains",status:"Status",opening:"Open",closed:"Closed",closeConnection:"Close"}},Proxies:{title:"Proxies",editDialog:{title:"Edit Proxy",color:"Color",name:"Name",type:"Type",server:"Server",port:"Port",password:"Password",cipher:"Cipher",obfs:"Obfs","obfs-host":"Obfs-host",uuid:"UUID",alterId:"AlterId",tls:"TLS"},groupTitle:"Policy Group",providerTitle:"Providers",providerUpdateTime:"Last updated at",expandText:"Expand",collapseText:"Collapse",speedTestText:"Speed Test",breakConnectionsText:"Close connections which include the group"},Modal:{ok:"Ok",cancel:"Cancel"}},Dt={SideBar:{Proxies:"\u4EE3\u7406",Overview:"\u603B\u89C8",Logs:"\u65E5\u5FD7",Rules:"\u89C4\u5219",Settings:"\u8BBE\u7F6E",Connections:"\u8FDE\u63A5",Version:"\u7248\u672C"},Settings:{title:"\u8BBE\u7F6E",labels:{startAtLogin:"\u5F00\u673A\u65F6\u542F\u52A8",language:"\u8BED\u8A00",setAsSystemProxy:"\u8BBE\u7F6E\u4E3A\u7CFB\u7EDF\u4EE3\u7406",allowConnectFromLan:"\u5141\u8BB8\u6765\u81EA\u5C40\u57DF\u7F51\u7684\u8FDE\u63A5",proxyMode:"\u4EE3\u7406\u6A21\u5F0F",socks5ProxyPort:"Socks5 \u4EE3\u7406\u7AEF\u53E3",httpProxyPort:"HTTP \u4EE3\u7406\u7AEF\u53E3",mixedProxyPort:"\u6DF7\u5408\u4EE3\u7406\u7AEF\u53E3",externalController:"\u5916\u90E8\u63A7\u5236\u8BBE\u7F6E"},values:{cn:"\u4E2D\u6587",en:"English",global:"\u5168\u5C40",rules:"\u89C4\u5219",direct:"\u76F4\u8FDE",script:"\u811A\u672C"},versionString:"\u5F53\u524D ClashX \u5DF2\u662F\u6700\u65B0\u7248\u672C\uFF1A{{version}}",checkUpdate:"\u68C0\u67E5\u66F4\u65B0",externalControllerSetting:{title:"\u7F16\u8F91\u5916\u90E8\u63A7\u5236\u8BBE\u7F6E",note:"\u8BF7\u6CE8\u610F\uFF0C\u4FEE\u6539\u8BE5\u914D\u7F6E\u9879\u5E76\u4E0D\u4F1A\u4FEE\u6539\u4F60\u7684 Clash \u914D\u7F6E\u6587\u4EF6\uFF0C\u8BF7\u786E\u8BA4\u4FEE\u6539\u540E\u7684\u5916\u90E8\u63A7\u5236\u5730\u5740\u548C Clash \u914D\u7F6E\u6587\u4EF6\u5185\u7684\u5730\u5740\u4E00\u81F4\uFF0C\u5426\u5219\u4F1A\u5BFC\u81F4 Dashboard \u65E0\u6CD5\u8FDE\u63A5\u3002",host:"Host",port:"\u7AEF\u53E3",secret:"\u5BC6\u94A5"}},Logs:{title:"\u65E5\u5FD7"},Rules:{title:"\u89C4\u5219",providerTitle:"\u89C4\u5219\u96C6",providerUpdateTime:"\u6700\u540E\u66F4\u65B0\u4E8E",ruleCount:"\u89C4\u5219\u6761\u6570"},Connections:{title:"\u8FDE\u63A5",keepClosed:"\u4FDD\u7559\u5173\u95ED\u8FDE\u63A5",total:{text:"\u603B\u91CF",upload:"\u4E0A\u4F20",download:"\u4E0B\u8F7D"},closeAll:{title:"\u8B66\u544A",content:"\u5C06\u4F1A\u5173\u95ED\u6240\u6709\u8FDE\u63A5"},filter:{all:"\u5168\u90E8"},columns:{host:"\u57DF\u540D",network:"\u7F51\u7EDC",type:"\u7C7B\u578B",chains:"\u8282\u70B9\u94FE",rule:"\u89C4\u5219",time:"\u8FDE\u63A5\u65F6\u95F4",speed:"\u901F\u7387",upload:"\u4E0A\u4F20",download:"\u4E0B\u8F7D",sourceIP:"\u6765\u6E90 IP"},info:{title:"\u8FDE\u63A5\u4FE1\u606F",id:"ID",host:"\u57DF\u540D",hostEmpty:"\u7A7A",dstIP:"IP",dstIPEmpty:"\u7A7A",srcIP:"\u6765\u6E90",upload:"\u4E0A\u4F20",download:"\u4E0B\u8F7D",network:"\u7F51\u7EDC",inbound:"\u5165\u53E3",rule:"\u89C4\u5219",chains:"\u4EE3\u7406",status:"\u72B6\u6001",opening:"\u8FDE\u63A5\u4E2D",closed:"\u5DF2\u5173\u95ED",closeConnection:"\u5173\u95ED\u8FDE\u63A5"}},Proxies:{title:"\u4EE3\u7406",editDialog:{title:"\u7F16\u8F91\u4EE3\u7406",color:"\u989C\u8272",name:"\u540D\u5B57",type:"\u7C7B\u578B",server:"\u670D\u52A1\u5668",port:"\u7AEF\u53E3",password:"\u5BC6\u7801",cipher:"\u52A0\u5BC6\u65B9\u5F0F",obfs:"Obfs","obfs-host":"Obfs-host",uuid:"UUID",alterId:"AlterId",tls:"TLS"},groupTitle:"\u7B56\u7565\u7EC4",providerTitle:"\u4EE3\u7406\u96C6",providerUpdateTime:"\u6700\u540E\u66F4\u65B0\u4E8E",expandText:"\u5C55\u5F00",collapseText:"\u6536\u8D77",speedTestText:"\u6D4B\u901F",breakConnectionsText:"\u5207\u6362\u65F6\u6253\u65AD\u5305\u542B\u7B56\u7565\u7EC4\u7684\u8FDE\u63A5"},Modal:{ok:"\u786E \u5B9A",cancel:"\u53D6 \u6D88"}},Re={en_US:kt,zh_CN:Dt},Ft=Object.keys(Re);function At(){for(const t of window.navigator.languages){if(t.includes("zh"))return"zh_CN";if(t.includes("us"))return"en_US"}return"en_US"}function ge(t){return d.exports.useMemo(()=>{function s(o,a){if(typeof o=="string")t(r=>{const l=o,c=a;r[l]=c});else if(typeof o=="function"){const r=o;t(l=>r(l))}else typeof o=="object"&&t(r=>pe(r,l=>{const c=o;for(const u of Object.keys(c)){const f=u;l[f]=c[f]}}))}return s},[t])}class Me{constructor(n){this.EE=new $e,this.innerBuffer=[],this.isClose=!1,this.config=Object.assign({bufferLength:0,retryInterval:5e3,headers:{}},n),this.config.useWebsocket?this.websocketLoop():this.loop()}websocketLoop(){var o;const n=new URL(this.config.url);n.protocol=n.protocol==="http:"?"ws:":"wss:",n.searchParams.set("token",(o=this.config.token)!=null?o:"");const s=new WebSocket(n.toString());s.addEventListener("message",a=>{const r=JSON.parse(a.data);this.EE.emit("data",[r]),this.config.bufferLength>0&&(this.innerBuffer.push(r),this.innerBuffer.length>this.config.bufferLength&&this.innerBuffer.splice(0,this.innerBuffer.length-this.config.bufferLength))}),s.addEventListener("close",()=>setTimeout(this.websocketLoop,this.config.retryInterval)),s.addEventListener("error",a=>{this.EE.emit("error",a),setTimeout(this.websocketLoop,this.config.retryInterval)})}async loop(){const n=await le.fromPromise(fetch(this.config.url,{mode:"cors",headers:this.config.token?{Authorization:`Bearer ${this.config.token}`}:{}}),a=>a);if(n.isErr()){this.retry(n.error);return}else if(n.value.body==null){this.retry(new Error("fetch body error"));return}const s=n.value.body.getReader(),o=new TextDecoder;for(;!this.isClose;){const a=await le.fromPromise(s==null?void 0:s.read(),c=>c);if(a.isErr()){this.retry(a.error);break}const l=o.decode(a.value.value).trim().split(` +`).map(c=>JSON.parse(c));this.EE.emit("data",l),this.config.bufferLength>0&&(this.innerBuffer.push(...l),this.innerBuffer.length>this.config.bufferLength&&this.innerBuffer.splice(0,this.innerBuffer.length-this.config.bufferLength))}}retry(n){this.isClose||(this.EE.emit("error",n),window.setTimeout(()=>{this.loop()},this.config.retryInterval))}subscribe(n,s){this.EE.addListener(n,s)}unsubscribe(n,s){this.EE.removeListener(n,s)}buffer(){return this.innerBuffer.slice()}destory(){this.EE.removeAllListeners(),this.isClose=!0}}class $t{constructor(n,s){this.axiosClient=ct.create({baseURL:n,headers:s?{Authorization:`Bearer ${s}`}:{}})}async getConfig(){return await this.axiosClient.get("configs")}async updateConfig(n){return await this.axiosClient.patch("configs",n)}async getRules(){return await this.axiosClient.get("rules")}async getProxyProviders(){const n=await this.axiosClient.get("providers/proxies",{validateStatus(s){return s>=200&&s<300||s===404}});return n.status===404&&(n.data={providers:{}}),n}async getRuleProviders(){return await this.axiosClient.get("providers/rules")}async updateProvider(n){return await this.axiosClient.put(`providers/proxies/${encodeURIComponent(n)}`)}async updateRuleProvider(n){return await this.axiosClient.put(`providers/rules/${encodeURIComponent(n)}`)}async healthCheckProvider(n){return await this.axiosClient.get(`providers/proxies/${encodeURIComponent(n)}/healthcheck`)}async getProxies(){return await this.axiosClient.get("proxies")}async getProxy(n){return await this.axiosClient.get(`proxies/${encodeURIComponent(n)}`)}async getVersion(){return await this.axiosClient.get("version")}async getProxyDelay(n){return await this.axiosClient.get(`proxies/${encodeURIComponent(n)}/delay`,{params:{timeout:5e3,url:"http://www.gstatic.com/generate_204"}})}async closeAllConnections(){return await this.axiosClient.delete("connections")}async closeConnection(n){return await this.axiosClient.delete(`connections/${n}`)}async getConnections(){return await this.axiosClient.get("connections")}async changeProxySelected(n,s){return await this.axiosClient.put(`proxies/${encodeURIComponent(n)}`,{name:s})}}const Lt=G(async()=>{if(!q())return null;const t=await P.getAPIInfo();return{hostname:t.host,port:t.port,secret:t.secret,protocol:"http:"}}),He=fe("externalControllers",[]);function te(){var f,i,m,h,E,w,F,A,L,k,N,I,J,X,_;const t=Le(Lt),n=it(),s=Le(He);if(t!=null)return t;let o;{const M=document.querySelector('meta[name="external-controller"]');((f=M==null?void 0:M.content)==null?void 0:f.match(/^https?:/))!=null&&(o=new URL(M.content))}const a=new URLSearchParams(n.search),r=(E=(h=(m=a.get("host"))!=null?m:(i=s==null?void 0:s[0])==null?void 0:i.hostname)!=null?h:o==null?void 0:o.hostname)!=null?E:"127.0.0.1",l=(L=(A=(F=a.get("port"))!=null?F:(w=s==null?void 0:s[0])==null?void 0:w.port)!=null?A:o==null?void 0:o.port)!=null?L:"9090",c=(J=(I=(N=a.get("secret"))!=null?N:(k=s==null?void 0:s[0])==null?void 0:k.secret)!=null?I:o==null?void 0:o.username)!=null?J:"",u=((X=a.get("protocol"))!=null?X:r==="127.0.0.1")?"http:":(_=o==null?void 0:o.protocol)!=null?_:window.location.protocol;return{hostname:r,port:l,secret:c,protocol:u}}const It=G({key:"",instance:null});function $(){const{hostname:t,port:n,secret:s,protocol:o}=te(),[a,r]=T(It),l=`${o}//${t}:${n}?secret=${s}`;if(a.key===l)return a.instance;const c=new $t(`${o}//${t}:${n}`,s);return r({key:l,instance:c}),c}const ve=G(!0),Bt=fe("language",void 0);function S(){const[t,n]=T(Bt),s=d.exports.useMemo(()=>t!=null?t:At(),[t]),o=d.exports.useCallback(function(a){function r(l){return ut(Re[s][a],l)}return{t:r}},[s]);return{lang:s,locales:Ft,setLang:n,translation:o}}const Ue=G({version:"",premium:!1});function ce(){const[t,n]=T(Ue),s=$(),o=he(ve);return V([s],async function(){const a=await le.fromPromise(s.getVersion(),r=>r);o(a.isOk()),n(a.isErr()?{version:"",premium:!1}:{version:a.value.data.version,premium:!!a.value.data.premium})}),t}function Oe(){const[{premium:t}]=T(Ue),n=$(),{data:s,mutate:o}=V(["/providers/rule",n,t],async()=>{if(!t)return[];const a=await n.getRuleProviders();return Object.keys(a.data.providers).map(r=>a.data.providers[r])});return{providers:s!=null?s:[],update:o}}const Tt=fe("profile",{breakConnections:!1});function ze(){const[t,n]=T(Tt),s=d.exports.useCallback(o=>{n(pe(t,o))},[t,n]);return{data:t,set:ge(s)}}const We=G([]);function je(){const[t,n]=T(We),s=$(),{data:o,mutate:a}=V(["/providers/proxy",s],async()=>{const r=await s.getProxyProviders();return Object.keys(r.data.providers).map(l=>r.data.providers[l]).filter(l=>l.name!=="default").filter(l=>l.vehicleType!=="Compatible")});return d.exports.useEffect(()=>{n(o!=null?o:[])},[o,n]),{providers:t,update:a}}function we(){const t=$(),{data:n,mutate:s}=V(["/config",t],async()=>{var r;const a=(await t.getConfig()).data;return{port:a.port,socksPort:a["socks-port"],mixedPort:(r=a["mixed-port"])!=null?r:0,redirPort:a["redir-port"],mode:a.mode.toLowerCase(),logLevel:a["log-level"],allowLan:a["allow-lan"]}});return{general:n!=null?n:{},update:s}}const _e=Ie({proxies:[],groups:[],global:{name:"GLOBAL",type:"Selector",now:"",history:[],all:[]}});function ie(){const[t,n]=T(_e),s=ge(n),o=$(),{mutate:a}=V(["/proxies",o],async()=>{const l=await o.getProxies(),c=l.data.proxies.GLOBAL;c.name="GLOBAL";const u=new Set(["Selector","URLTest","Fallback","LoadBalance"]),f=new Set(["DIRECT","REJECT","GLOBAL"]),i=c.all.filter(E=>!f.has(E)).map(E=>D(b({},l.data.proxies[E]),{name:E})),[m,h]=St(i,E=>!u.has(E.type));s({proxies:m,groups:h,global:c})}),r=d.exports.useCallback((l,c)=>{s(u=>{l==="GLOBAL"&&(u.global.now=c);for(const f of u.groups)f.name===l&&(f.now=c)})},[s]);return{proxies:t.proxies,groups:t.groups,global:t.global,update:a,markProxySelected:r,set:s}}const Rt=G(t=>{const n=t(_e),s=t(We),o=new Map;for(const a of n.proxies)o.set(a.name,a);for(const a of s)for(const r of a.proxies)o.set(r.name,r);return o});function Ge(){const{data:t,mutate:n}=V("/clashx",async()=>{var a,r;if(!q())return{isClashX:!1,startAtLogin:!1,systemProxy:!1};const s=(a=await(P==null?void 0:P.getStartAtLogin()))!=null?a:!1,o=(r=await(P==null?void 0:P.isSystemProxySet()))!=null?r:!1;return{startAtLogin:s,systemProxy:o,isClashX:!0}});return{data:t,update:n}}const Mt=Ie([]);function Ht(){const[t,n]=T(Mt),s=ge(n),o=$();async function a(){const r=await o.getRules();s(r.data.rules)}return{rules:t,update:a}}const Ut=G({key:"",instance:null});function Ve(){var i,m;const t=te(),{general:n}=we(),s=ce(),[o,a]=T(Ut);if(!s.version||!n.logLevel)return null;const r=!!s.version||!0,l=`${t.protocol}//${t.hostname}:${t.port}/logs?level=${(i=n.logLevel)!=null?i:""}&useWebsocket=${r}&secret=${t.secret}`;if(o.key===l)return o.instance;const c=o.instance,u=`${t.protocol}//${t.hostname}:${t.port}/logs?level=${(m=n.logLevel)!=null?m:""}`,f=new Me({url:u,bufferLength:200,token:t.secret,useWebsocket:r});return a({key:l,instance:f}),c!=null&&c.destory(),f}function Ot(){const t=te(),n=ce(),s=!!n.version||!0,o=`${t.protocol}//${t.hostname}:${t.port}/connections`;return d.exports.useMemo(()=>n.version?new Me({url:o,bufferLength:200,token:t.secret,useWebsocket:s}):null,[t.secret,o,s,n.version])}function zt(t){const{className:n,data:s,onClick:o,select:a,canClick:r,errSet:l,rowHeight:c}=t,{translation:u}=S(),{t:f}=u("Proxies"),[i,m]=d.exports.useState(!1),[h,E]=d.exports.useState(!1),w=d.exports.useRef(null);d.exports.useLayoutEffect(()=>{var N,I;E(((I=(N=w==null?void 0:w.current)==null?void 0:N.offsetHeight)!=null?I:0)>30)},[]);const F=i?"auto":c,A=r?o:U;function L(){m(!i)}const k=s.map(N=>{const I=x({"tags-selected":a===N,"cursor-pointer":r,error:l==null?void 0:l.has(N)});return e.createElement("li",{className:I,key:N,onClick:()=>A(N)},N)});return e.createElement("div",{className:x("flex items-start overflow-y-hidden",n),style:{height:F}},e.createElement("ul",{ref:w,className:x("tags",{expand:i})},k),h&&e.createElement("span",{className:"h-7 px-5 select-none cursor-pointer leading-7",onClick:L},f(i?"collapseText":"expandText")))}function K(t){const{className:n,style:s,value:o="",align:a="center",inside:r=!1,autoFocus:l=!1,type:c="text",disabled:u=!1,onChange:f=U,onBlur:i=U,onEnter:m=U}=t,h=x("input",`text-${a}`,{"focus:shadow-none":r},n);function E(w){w.code==="Enter"&&m(w)}return e.createElement("input",{disabled:u,className:h,style:s,value:o,autoFocus:l,type:c,onChange:w=>f(w.target.value,w),onBlur:i,onKeyDown:E})}function Je(t){const{show:n=!0,title:s="Modal",size:o="small",footer:a=!0,onOk:r=U,onClose:l=U,bodyClassName:c,bodyStyle:u,className:f,style:i,children:m}=t,{translation:h}=S(),{t:E}=h("Modal"),w=d.exports.useRef(document.createElement("div")),F=d.exports.useRef(null);d.exports.useLayoutEffect(()=>{const k=w.current;return document.body.appendChild(k),()=>{document.body.removeChild(k)}},[]);function A(k){k.target===F.current&&l()}const L=e.createElement("div",{className:x("modal-mask",{"modal-show":n}),ref:F,onMouseDown:A},e.createElement("div",{className:x("modal",`modal-${o}`,f),style:i},e.createElement("div",{className:"modal-title"},s),e.createElement("div",{className:x("modal-body",c),style:u},m),a&&e.createElement("div",{className:"footer"},e.createElement(Ce,{onClick:()=>l()},E("cancel")),e.createElement(Ce,{type:"primary",onClick:()=>r()},E("ok")))));return Ee.exports.createPortal(L,w.current)}const Wt={success:"check",info:"info",warning:"info",error:"close"};function jt(t){const{message:n="",type:s="info",inside:o=!1,children:a,className:r,style:l}=t,c=x("alert",`alert-${o?"note":"box"}-${s}`,r);return e.createElement("div",{className:c,style:l},e.createElement("span",{className:"alert-icon"},e.createElement(R,{type:Wt[s],size:26})),n?e.createElement("p",{className:"alert-message"},n):e.createElement("div",{className:"alert-message"},a))}function Ce(t){const{type:n="normal",onClick:s=U,children:o,className:a,style:r,disiabled:l}=t,c=x("button",`button-${n}`,a,{"button-disabled":l});return e.createElement("button",{className:c,style:r,onClick:s,disabled:l},o)}function ue(t){const[n,s]=mt(t),o=d.exports.useMemo(()=>{function a(r,l){typeof r=="string"?s(c=>{const u=r,f=l;c[u]=f}):typeof r=="function"?s(r):typeof r=="object"&&s(c=>{const u=r;for(const f of Object.keys(u)){const i=f;c[i]=u[i]}})}return a},[s]);return[n,o]}function _t(t,n=0){if(t.length<2)throw new Error("List requires at least two elements");const[s,o]=d.exports.useState(n);function a(){o((s+1)%t.length)}return{current:d.exports.useMemo(()=>t[s],[t,s]),next:a}}function be(t=!1){const[n,s]=d.exports.useState(t);function o(){s(!1)}function a(){s(!0)}return{visible:n,hide:o,show:a}}function Xe(t){const{className:n,checked:s=!1,onChange:o=U}=t,a=x("checkbox",{checked:s},n);function r(){o(!s)}return e.createElement("div",{className:a,onClick:r},e.createElement(R,{className:"checkbox-icon",type:"check",size:18}),e.createElement("div",null,t.children))}function me(t){const{color:n,className:s,style:o}=t,a=x("tag",s),r=b({color:n},o),l=D(b({},t),{className:a,style:r});return e.createElement("span",b({},l),t.children)}function Gt(t){const n=x("spinner",t.className);return e.createElement("div",{className:n},e.createElement("div",{className:"spinner-circle"},e.createElement("div",{className:"spinner-inner"})),e.createElement("div",{className:"spinner-circle"},e.createElement("div",{className:"spinner-inner"})),e.createElement("div",{className:"spinner-circle"},e.createElement("div",{className:"spinner-inner"})),e.createElement("div",{className:"spinner-circle"},e.createElement("div",{className:"spinner-inner"})),e.createElement("div",{className:"spinner-circle"},e.createElement("div",{className:"spinner-inner"})))}function Ye(t){const n=x("loading","visible",t.className);return t.visible?e.createElement("div",{className:n},e.createElement(Gt,{className:t.spinnerClassName})):null}function Vt(t){var a,r,l;const n=d.exports.useRef(document.createElement("div"));d.exports.useLayoutEffect(()=>{const c=n.current;return document.body.appendChild(c),()=>{document.body.removeChild(c)}},[]);const s="absolute h-full right-0 transition-transform transform translate-x-full duration-100 pointer-events-auto",o=e.createElement("div",{className:x(t.className,"absolute inset-0 pointer-events-none z-9999")},e.createElement(z,{className:x(s,{"translate-x-0":t.visible}),style:{width:(a=t.width)!=null?a:400}},t.children));return Ee.exports.createPortal(o,(l=(r=t.containerRef)==null?void 0:r.current)!=null?l:n.current)}ye.extend(dt);function Ne(t,n){const s=n==="en_US"?"en":"zh-cn";return ye().locale(s).from(t)}var Pe;(function(t){t.Domain="Domain",t.DomainSuffix="DomainSuffix",t.DomainKeyword="DomainKeyword",t.GeoIP="GeoIP",t.IPCIDR="IPCIDR",t.SrcIPCIDR="SrcIPCIDR",t.SrcPort="SrcPort",t.DstPort="DstPort",t.MATCH="MATCH",t.RuleSet="RuleSet"})(Pe||(Pe={}));function Jt(t){const{translation:n}=S(),s=d.exports.useMemo(()=>n("Connections").t,[n]),{className:o,style:a}=t,r=x("flex flex-wrap px-1",o);function l(c){var u;(u=t.onChange)==null||u.call(t,c)}return e.createElement("div",{className:r,style:a},e.createElement("div",{className:x("connections-devices-item pt-2 mb-2",{selected:t.selected===""}),onClick:()=>l("")},s("filter.all")),t.devices.map(c=>e.createElement("div",{key:c.label,className:x("connections-devices-item pt-2 mb-2",{selected:t.selected===c.label}),onClick:()=>l(c.label)},c.label," (",c.number,")")))}function Xt(t){var o,a,r,l,c,u,f,i,m,h,E;const{translation:n}=S(),s=d.exports.useMemo(()=>n("Connections").t,[n]);return e.createElement("div",{className:x(t.className,"text-sm flex flex-col")},e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.id")),e.createElement("span",{className:"font-mono"},t.connection.id)),e.createElement("div",{className:"flex my-3 justify-between"},e.createElement("div",{className:"flex flex-1"},e.createElement("span",{className:"font-bold w-16"},s("info.network")),e.createElement("span",{className:"font-mono"},(o=t.connection.metadata)==null?void 0:o.network)),e.createElement("div",{className:"flex flex-1"},e.createElement("span",{className:"font-bold w-16"},s("info.inbound")),e.createElement("span",{className:"font-mono"},(a=t.connection.metadata)==null?void 0:a.type))),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.host")),e.createElement("span",{className:"font-mono flex-1 break-all"},((r=t.connection.metadata)==null?void 0:r.host)?`${t.connection.metadata.host}:${(l=t.connection.metadata)==null?void 0:l.destinationPort}`:s("info.hostEmpty"))),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.dstIP")),e.createElement("span",{className:"font-mono"},((c=t.connection.metadata)==null?void 0:c.destinationIP)?`${t.connection.metadata.destinationIP}:${(u=t.connection.metadata)==null?void 0:u.destinationPort}`:s("info.hostEmpty"))),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.srcIP")),e.createElement("span",{className:"font-mono"},`${(f=t.connection.metadata)==null?void 0:f.sourceIP}:${(i=t.connection.metadata)==null?void 0:i.sourcePort}`)),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.rule")),e.createElement("span",{className:"font-mono"},t.connection.rule&&`${t.connection.rule}${t.connection.rulePayload&&`(${t.connection.rulePayload})`}`)),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.chains")),e.createElement("span",{className:"font-mono flex-1 break-all"},(m=t.connection.chains)==null?void 0:m.slice().reverse().join(" / "))),e.createElement("div",{className:"flex my-3 justify-between"},e.createElement("div",{className:"flex flex-1"},e.createElement("span",{className:"font-bold w-16"},s("info.upload")),e.createElement("span",{className:"font-mono"},O((h=t.connection.upload)!=null?h:0))),e.createElement("div",{className:"flex flex-1"},e.createElement("span",{className:"font-bold w-16"},s("info.download")),e.createElement("span",{className:"font-mono"},O((E=t.connection.download)!=null?E:0)))),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.status")),e.createElement("span",{className:"font-mono"},t.connection.completed?e.createElement("span",{className:"text-red"},s("info.closed")):e.createElement("span",{className:"text-green"},s("info.opening")))))}class Yt{constructor(){this.connections=new Map,this.saveDisconnection=!1}appendToSet(n){var o;const s=n.reduce((a,r)=>a.set(r.id,r),new Map);for(const a of this.connections.keys())if(!s.has(a))if(!this.saveDisconnection)this.connections.delete(a);else{const r=this.connections.get(a);r!=null&&this.connections.set(a,pe(r,l=>{l.completed=!0,l.uploadSpeed=0,l.downloadSpeed=0}))}for(const a of s.keys()){if(!this.connections.has(a)){this.connections.set(a,D(b({},s.get(a)),{uploadSpeed:0,downloadSpeed:0}));continue}const r=this.connections.get(a),l=s.get(a);(o=this.connections)==null||o.set(a,D(b({},l),{uploadSpeed:l.upload-r.upload,downloadSpeed:l.download-r.download}))}}toggleSave(){var n,s;if(this.saveDisconnection){this.saveDisconnection=!1;for(const o of this.connections.keys())((s=(n=this.connections)==null?void 0:n.get(o))==null?void 0:s.completed)&&this.connections.delete(o)}else this.saveDisconnection=!0;return this.saveDisconnection}getConnections(){return[...this.connections.values()]}}function qt(){const t=d.exports.useMemo(()=>new Yt,[]),n=d.exports.useRef(!0),[s,o]=d.exports.useState([]),[a,r]=d.exports.useState(!1),l=d.exports.useCallback(function(u){t.appendToSet(u),n.current&&o(t.getConnections()),n.current=!n.current},[t]),c=d.exports.useCallback(function(){const u=t.toggleSave();r(u),u||o(t.getConnections()),n.current=!0},[t]);return{connections:s,feed:l,toggleSave:c,save:a}}var y;(function(t){t.Host="host",t.Network="network",t.Type="type",t.Chains="chains",t.Rule="rule",t.Speed="speed",t.Upload="upload",t.Download="download",t.SourceIP="sourceIP",t.Time="time"})(y||(y={}));const Kt=new Set([y.Network,y.Type,y.Rule,y.Speed,y.Upload,y.Download,y.SourceIP,y.Time]);function Qt(t,n){switch(!0){case(t===0&&n===0):return"-";case(t!==0&&n!==0):return`\u2191 ${O(t)}/s \u2193 ${O(n)}/s`;case t!==0:return`\u2191 ${O(t)}/s`;default:return`\u2193 ${O(n)}/s`}}function Zt(){const{translation:t,lang:n}=S(),s=d.exports.useMemo(()=>t("Connections").t,[t]),o=Ot(),a=$(),r=d.exports.useRef(null),[l,c]=ue({uploadTotal:0,downloadTotal:0}),{visible:u,show:f,hide:i}=be();function m(){a.closeAllConnections().finally(()=>i())}const{connections:h,feed:E,save:w,toggleSave:F}=qt(),A=d.exports.useMemo(()=>h.map(p=>({id:p.id,host:`${p.metadata.host||p.metadata.destinationIP}:${p.metadata.destinationPort}`,chains:p.chains.slice().reverse().join(" / "),rule:p.rule===Pe.RuleSet?`${p.rule}(${p.rulePayload})`:p.rule,time:new Date(p.start).getTime(),upload:p.upload,download:p.download,sourceIP:p.metadata.sourceIP,type:p.metadata.type,network:p.metadata.network.toUpperCase(),speed:{upload:p.uploadSpeed,download:p.downloadSpeed},completed:!!p.completed,original:p})),[h]),L=d.exports.useMemo(()=>{const p=pt(h,"metadata.sourceIP");return Object.keys(p).map(C=>({label:C,number:p[C].length})).sort((C,v)=>C.label.localeCompare(v.label))},[h]),k=d.exports.useRef(null),{x:N}=ft(k),I=d.exports.useMemo(()=>[{Header:s(`columns.${y.Host}`),accessor:y.Host,minWidth:260,width:260},{Header:s(`columns.${y.Network}`),accessor:y.Network,minWidth:80,width:80},{Header:s(`columns.${y.Type}`),accessor:y.Type,minWidth:120,width:120},{Header:s(`columns.${y.Chains}`),accessor:y.Chains,minWidth:200,width:200},{Header:s(`columns.${y.Rule}`),accessor:y.Rule,minWidth:140,width:140},{id:y.Speed,Header:s(`columns.${y.Speed}`),accessor(p){return[p.speed.upload,p.speed.download]},sortType(p,C){const v=p.original.speed,Z=C.original.speed;return v.download===Z.download?v.upload-Z.upload:v.download-Z.download},minWidth:200,width:200,sortDescFirst:!0},{Header:s(`columns.${y.Upload}`),accessor:y.Upload,minWidth:100,width:100,sortDescFirst:!0},{Header:s(`columns.${y.Download}`),accessor:y.Download,minWidth:100,width:100,sortDescFirst:!0},{Header:s(`columns.${y.SourceIP}`),accessor:y.SourceIP,minWidth:140,width:140,filter:"equals"},{Header:s(`columns.${y.Time}`),accessor:y.Time,minWidth:120,width:120,sortType(p,C){return C.original.time-p.original.time}}],[s]);d.exports.useLayoutEffect(()=>{function p(C){for(const v of C)c({uploadTotal:v.uploadTotal,downloadTotal:v.downloadTotal}),E(v.connections)}return o==null||o.subscribe("data",p),()=>{o==null||o.unsubscribe("data",p),o==null||o.destory()}},[o,E,c]);const{getTableProps:J,getTableBodyProps:X,headerGroups:_,rows:M,prepareRow:se,setFilter:Q}=ee.exports.useTable({columns:I,data:A,autoResetSortBy:!1,autoResetFilters:!1,initialState:{sortBy:[{id:y.Time,desc:!1}]}},ee.exports.useResizeColumns,ee.exports.useBlockLayout,ee.exports.useFilters,ee.exports.useSortBy),Y=d.exports.useMemo(()=>_[0],[_]),H=d.exports.useCallback(function(p){switch(p.column.id){case y.Speed:return Qt(p.value[0],p.value[1]);case y.Upload:case y.Download:return O(p.value);case y.Time:return Ne(new Date(p.value),n);default:return p.value}},[n]),[de,oe]=d.exports.useState("");function ae(p){oe(p),Q==null||Q(y.SourceIP,p||void 0)}const[B,g]=ue({visible:!1,selectedID:"",connection:{}});function re(){g(p=>{p.connection.completed=!0}),a.closeConnection(B.selectedID)}const W=ht(B.connection);d.exports.useEffect(()=>{var C;const p=(C=A.find(v=>v.id===B.selectedID))==null?void 0:C.original;p?g(v=>{v.connection=b({},p),B.selectedID===W.current.id&&(v.connection.completed=W.current.completed)}):Object.keys(W.current).length!==0&&!W.current.completed&&g(v=>{v.connection.completed=!0})},[A,B.selectedID,W,g]);const De=d.exports.useMemo(()=>N>0,[N]),et=d.exports.useMemo(()=>Y.headers.map((p,C)=>{const v=p,Z=v.id;return e.createElement("div",D(b({},v.getHeaderProps()),{className:x("connections-th",{resizing:v.isResizing,fixed:v.id===y.Host,shadow:De&&v.id===y.Host}),key:Z}),e.createElement("div",b({},v.getSortByToggleProps()),p.render("Header"),v.isSorted?v.isSortedDesc?" \u2193":" \u2191":null),C!==Y.headers.length-1&&e.createElement("div",D(b({},v.getResizerProps()),{className:"connections-resizer"})))}),[Y.headers,De]),tt=d.exports.useMemo(()=>M.map(p=>(se(p),e.createElement("div",D(b({},p.getRowProps()),{className:"cursor-default connections-item select-none",key:p.original.id,onClick:()=>g({visible:!0,selectedID:p.original.id})}),p.cells.map(C=>{const v=x("connections-block",{"text-center":Kt.has(C.column.id),completed:p.original.completed},{fixed:C.column.id===y.Host,shadow:N>0&&C.column.id===y.Host});return e.createElement("div",D(b({},C.getCellProps()),{className:v,key:C.column.id}),H(C))})))),[se,H,M,N,g]);return e.createElement("div",{className:"page"},e.createElement(j,{title:s("title")},e.createElement("span",{className:"cursor-default flex-1 connections-filter"},`(${s("total.text")}: ${s("total.upload")} ${O(l.uploadTotal)} ${s("total.download")} ${O(l.downloadTotal)})`),e.createElement(Xe,{className:"connections-filter",checked:w,onChange:F},s("keepClosed")),e.createElement(R,{className:"connections-filter dangerous",onClick:f,type:"close-all",size:20})),L.length>1&&e.createElement(Jt,{devices:L,selected:de,onChange:ae}),e.createElement(z,{ref:r,className:"connections-card relative"},e.createElement("div",D(b({},J()),{className:"flex flex-col flex-1 w-full overflow-auto",style:{flexBasis:0},ref:k}),e.createElement("div",D(b({},Y.getHeaderGroupProps()),{className:"connections-header"}),et),e.createElement("div",D(b({},X()),{className:"flex-1"}),tt))),e.createElement(Je,{title:s("closeAll.title"),show:u,onClose:i,onOk:m},s("closeAll.content")),e.createElement(Vt,{containerRef:r,visible:B.visible,width:450},e.createElement("div",{className:"flex h-8 justify-between items-center"},e.createElement("span",{className:"font-bold pl-3"},s("info.title")),e.createElement(R,{type:"close",size:16,className:"cursor-pointer",onClick:()=>g("visible",!1)})),e.createElement(Xt,{className:"mt-3 px-5",connection:B.connection}),e.createElement("div",{className:"flex mt-3 pr-3 justify-end"},e.createElement(Ce,{type:"danger",disiabled:B.connection.completed,onClick:()=>re()},s("info.closeConnection")))))}function en(){const{translation:t}=S(),{t:n}=t("Settings"),{hostname:s,port:o,secret:a}=te(),[r,l]=T(ve),[c,u]=ue({hostname:"",port:"",secret:""});d.exports.useEffect(()=>{u({hostname:s,port:o,secret:a})},[s,o,a,u]);const f=he(He);function i(){const{hostname:m,port:h,secret:E}=c;f([{hostname:m,port:h,secret:E}])}return e.createElement(Je,{show:!r,title:n("externalControllerSetting.title"),bodyClassName:"external-controller",onClose:()=>l(!0),onOk:i},e.createElement(jt,{type:"info",inside:!0},e.createElement("p",null,n("externalControllerSetting.note"))),e.createElement("div",{className:"flex items-center"},e.createElement("span",{className:"font-bold my-1 w-14 md:my-3"},n("externalControllerSetting.host")),e.createElement(K,{className:"flex-1 my-1 md:my-3",align:"left",inside:!0,value:c.hostname,onChange:m=>u("hostname",m),onEnter:i})),e.createElement("div",{className:"flex items-center"},e.createElement("div",{className:"font-bold my-1 w-14 md:my-3"},n("externalControllerSetting.port")),e.createElement(K,{className:"flex-1 my-1 w-14 md:my-3",align:"left",inside:!0,value:c.port,onChange:m=>u("port",m),onEnter:i})),e.createElement("div",{className:"flex items-center"},e.createElement("div",{className:"font-bold my-1 w-14 md:my-3"},n("externalControllerSetting.secret")),e.createElement(K,{className:"flex-1 my-1 w-14 md:my-3",align:"left",inside:!0,value:c.secret,onChange:m=>u("secret",m),onEnter:i})))}function tn(){var u,f;const t=d.exports.useRef(null),n=d.exports.useRef([]),[s,o]=d.exports.useState([]),{translation:a}=S(),{t:r}=a("Logs"),l=Ve(),c=d.exports.useRef((f=(u=t.current)==null?void 0:u.scrollHeight)!=null?f:0);return d.exports.useLayoutEffect(()=>{var m;const i=t.current;i!=null&&c.current===i.scrollTop+i.clientHeight&&(i.scrollTop=i.scrollHeight-i.clientHeight),c.current=(m=i==null?void 0:i.scrollHeight)!=null?m:0}),d.exports.useEffect(()=>{function i(m){n.current=n.current.slice().concat(m.map(h=>D(b({},h),{time:new Date}))),o(n.current)}return l!=null&&(l.subscribe("data",i),n.current=l.buffer(),o(n.current)),()=>l==null?void 0:l.unsubscribe("data",i)},[l]),e.createElement("div",{className:"page"},e.createElement(j,{title:r("title")}),e.createElement(z,{className:"flex flex-col flex-1 mt-2.5 md:mt-4"},e.createElement("ul",{className:"logs-panel",ref:t},s.map((i,m)=>e.createElement("li",{className:"leading-5 inline-block",key:m},e.createElement("span",{className:"mr-4 text-gray-400 text-opacity-90"},ye(i.time).format("YYYY-MM-DD HH:mm:ss")),e.createElement("span",null,"[",i.type,"] ",i.payload))))))}var ne;(function(t){t.SPEED_NOTIFY="speed-notify"})(ne||(ne={}));class nn{constructor(){this.EE=new $e}notifySpeedTest(){this.EE.emit(ne.SPEED_NOTIFY)}subscribe(n,s){this.EE.addListener(n,s)}unsubscribe(n,s){this.EE.removeListener(n,s)}}var Se=new nn;const qe={"#909399":0,"#00c520":260,"#ff9a28":600,"#ff3e5e":1/0};function Ke(t){const{config:n,className:s}=t,{set:o}=ie(),a=$(),r=d.exports.useCallback(async m=>{var E;if(q())return(E=await(P==null?void 0:P.getProxyDelay(m)))!=null?E:0;const{data:{delay:h}}=await a.getProxyDelay(m);return h},[a]),l=d.exports.useCallback(async function(){const m=await le.fromPromise(r(n.name),E=>E),h=m.isErr()?0:m.value;o(E=>{const w=E.proxies.find(F=>F.name===n.name);w!=null&&w.history.push({time:Date.now().toString(),delay:h})})},[n.name,r,o]),c=d.exports.useMemo(()=>{var m;return((m=n.history)==null?void 0:m.length)?n.history.slice(-1)[0].delay:0},[n]);d.exports.useLayoutEffect(()=>{const m=()=>{l()};return Se.subscribe(ne.SPEED_NOTIFY,m),()=>Se.unsubscribe(ne.SPEED_NOTIFY,m)},[l]);const u=d.exports.useMemo(()=>c===0,[c]),f=d.exports.useMemo(()=>Object.keys(qe).find(m=>c<=qe[m]),[c]),i=u?void 0:f;return e.createElement("div",{className:x("proxy-item",{"proxy-error":u},s)},e.createElement("span",{className:"proxy-type",style:{backgroundColor:i}},n.type),e.createElement("p",{className:"proxy-name"},n.name),e.createElement("p",{className:"proxy-delay"},c===0?"-":`${c}ms`))}function sn(t){const{markProxySelected:n}=ie(),[s]=T(Rt),{data:o}=ze(),a=$(),{config:r}=t;async function l(f){if(await a.changeProxySelected(t.config.name,f),n(t.config.name,f),o.breakConnections){const i=[],m=await a.getConnections();for(const h of m.data.connections)h.chains.includes(t.config.name)&&i.push(h.id);await Promise.all(i.map(h=>a.closeConnection(h)))}}const c=d.exports.useMemo(()=>{var i;const f=new Set;for(const m of r.all){const h=(i=s.get(m))==null?void 0:i.history;(h==null?void 0:h.length)&&h.slice(-1)[0].delay===0&&f.add(m)}return f},[r.all,s]),u=r.type==="Selector";return e.createElement("div",{className:"proxy-group"},e.createElement("div",{className:"flex h-10 mt-4 w-full items-center justify-between md:h-15 md:mt-0 md:w-auto "},e.createElement("span",{className:"h-6 px-5 w-35 overflow-hidden overflow-ellipsis whitespace-nowrap md:w-30"},r.name),e.createElement(me,{className:"mr-5 md:mr-0"},r.type)),e.createElement("div",{className:"flex-1 py-2 md:py-4"},e.createElement(zt,{className:"ml-5 md:ml-8",data:r.all,onClick:l,errSet:c,select:r.now,canClick:u,rowHeight:30})))}function on(t){const{update:n}=je(),{translation:s,lang:o}=S(),a=$(),{provider:r}=t,{t:l}=s("Proxies"),{visible:c,hide:u,show:f}=be();function i(){f(),a.healthCheckProvider(r.name).then(async()=>await n()).finally(()=>u())}function m(){f(),a.updateProvider(r.name).then(async()=>await n()).finally(()=>u())}const h=d.exports.useMemo(()=>r.proxies.slice().sort((E,w)=>-1*ke(E,w)),[r.proxies]);return e.createElement(z,{className:"proxy-provider"},e.createElement(Ye,{visible:c}),e.createElement("div",{className:"flex flex-col justify-between md:flex-row md:items-center "},e.createElement("div",{className:"flex items-center"},e.createElement("span",{className:"mr-6"},r.name),e.createElement(me,null,r.vehicleType)),e.createElement("div",{className:"flex pt-3 items-center md:pt-0"},r.updatedAt&&e.createElement("span",{className:"text-sm"},`${l("providerUpdateTime")}: ${Ne(new Date(r.updatedAt),o)}`),e.createElement(R,{className:"cursor-pointer text-red pl-5",type:"healthcheck",size:18,onClick:i}),e.createElement(R,{className:"cursor-pointer pl-5",type:"update",size:18,onClick:m}))),e.createElement("ul",{className:"proxies-list"},h.map(E=>e.createElement("li",{key:E.name},e.createElement(Ke,{className:"proxy-provider-item",config:E})))))}var Qe;(function(t){t[t.None=0]="None",t[t.Asc=1]="Asc",t[t.Desc=2]="Desc"})(Qe||(Qe={}));const an={[0]:"sort",[1]:"sort-ascending",[2]:"sort-descending"};function ke(t,n){const s=t.history.length>0?t.history.slice(-1)[0].delay:0;return((n.history.length>0?n.history.slice(-1)[0].delay:0)||Number.MAX_SAFE_INTEGER)-(s||Number.MAX_SAFE_INTEGER)}function rn(){const{groups:t,global:n}=ie(),{data:s,set:o}=ze(),{general:a}=we(),{translation:r}=S(),{t:l}=r("Proxies"),c=d.exports.useMemo(()=>a.mode==="global"?[n,...t]:t,[a,t,n]);return e.createElement(e.Fragment,null,c.length!==0&&e.createElement("div",{className:"flex flex-col"},e.createElement(j,{title:l("groupTitle")},e.createElement(Xe,{className:"cursor-pointer text-sm text-shadow-primary text-primary-600",checked:s.breakConnections,onChange:u=>o("breakConnections",u)},l("breakConnectionsText"))),e.createElement(z,{className:"my-2.5 p-0 md:my-4"},e.createElement("ul",{className:"list-none divide-y divide-gray-300"},c.map(u=>e.createElement("li",{key:u.name},e.createElement(sn,{config:u})))))))}function ln(){const{providers:t}=je(),{translation:n}=S(),{t:s}=n("Proxies");return e.createElement(e.Fragment,null,t.length!==0&&e.createElement("div",{className:"flex flex-col"},e.createElement(j,{title:s("providerTitle")}),e.createElement("ul",{className:"list-none"},t.map(o=>e.createElement("li",{className:"my-2.5 md:my-4",key:o.name},e.createElement(on,{provider:o}))))))}function cn(){const{proxies:t}=ie(),{translation:n}=S(),{t:s}=n("Proxies");function o(){Se.notifySpeedTest()}const{current:a,next:r}=_t([1,2,0]),l=d.exports.useMemo(()=>{switch(a){case 2:return t.slice().sort((u,f)=>ke(u,f));case 1:return t.slice().sort((u,f)=>-1*ke(u,f));default:return t.slice()}},[a,t]),c=r;return e.createElement(e.Fragment,null,l.length!==0&&e.createElement("div",{className:"flex flex-col"},e.createElement(j,{title:s("title")},e.createElement(R,{className:"ml-3",type:an[a],onClick:c,size:20}),e.createElement(R,{className:"ml-3",type:"speed",size:20}),e.createElement("span",{className:"proxies-speed-test",onClick:o},s("speedTestText"))),e.createElement("ul",{className:"proxies-list"},l.map(u=>e.createElement("li",{key:u.name},e.createElement(Ke,{config:u}))))))}function un(){return e.createElement("div",{className:"page"},e.createElement(rn,null),e.createElement(ln,null),e.createElement(cn,null))}function mn(t){const{update:n}=Oe(),{translation:s,lang:o}=S(),a=$(),{provider:r}=t,{t:l}=s("Rules"),{visible:c,hide:u,show:f}=be();function i(){f(),a.updateRuleProvider(r.name).then(async()=>await n()).finally(()=>u())}const m=x("rule-provider-icon",{"rule-provider-loading":c});return e.createElement("div",{className:"rule-provider"},e.createElement("div",{className:"rule-provider-header"},e.createElement("div",{className:"rule-provider-header-part"},e.createElement("span",{className:"rule-provider-name"},r.name),e.createElement(me,null,r.vehicleType),e.createElement(me,{className:"rule-provider-behavior"},r.behavior),e.createElement("span",{className:"rule-provider-update"},`${l("ruleCount")}: ${r.ruleCount}`)),e.createElement("div",{className:"rule-provider-header-part"},r.updatedAt&&e.createElement("span",{className:"rule-provider-update"},`${l("providerUpdateTime")}: ${Ne(new Date(r.updatedAt),o)}`),e.createElement(R,{className:m,type:"update",size:18,onClick:i}))))}function dn(){const{providers:t}=Oe(),{translation:n}=S(),{t:s}=n("Rules");return e.createElement(e.Fragment,null,t.length!==0&&e.createElement("div",{className:"flex flex-col"},e.createElement(j,{title:s("providerTitle")}),e.createElement(z,{className:"divide-y rounded shadow-primary mt-4 p-0"},t.map(o=>e.createElement(mn,{key:o.name,provider:o})))))}function pn(){const{rules:t,update:n}=Ht(),{translation:s}=S(),{t:o}=s("Rules");V("rules",n);function a({index:r,style:l}){const c=t[r];return e.createElement("li",{className:"rule-item",style:l},e.createElement("div",{className:"flex py-1"},e.createElement("div",{className:"text-center w-40 rule-type"},c.type),e.createElement("div",{className:"flex-1 text-center payload"},c.payload),e.createElement("div",{className:"text-center w-40 rule-proxy"},c.proxy)))}return e.createElement("div",{className:"page"},e.createElement(dn,null),e.createElement(j,{className:"not-first:mt-7.5",title:o("title")}),e.createElement(z,{className:"flex flex-col flex-1 mt-2.5 p-0 md:mt-4 focus:outline-none"},e.createElement(Et,{className:"min-h-120"},({height:r,width:l})=>e.createElement(yt,{height:r,width:l,itemCount:t.length,itemSize:50},a))))}const fn=[{label:"\u4E2D\u6587",value:"zh_CN"},{label:"English",value:"en_US"}];function hn(){var oe,ae,B;const{premium:t}=ce(),{data:n,update:s}=Ge(),{general:o,update:a}=we(),r=he(ve),l=te(),{translation:c,setLang:u,lang:f}=S(),{t:i}=c("Settings"),m=$(),[h,E]=ue({socks5ProxyPort:7891,httpProxyPort:7890,mixedProxyPort:0});d.exports.useEffect(()=>{var g,re,W;E("socks5ProxyPort",(g=o==null?void 0:o.socksPort)!=null?g:0),E("httpProxyPort",(re=o==null?void 0:o.port)!=null?re:0),E("mixedProxyPort",(W=o==null?void 0:o.mixedPort)!=null?W:0)},[o,E]);async function w(g){await m.updateConfig({mode:g}),await a()}async function F(g){await(P==null?void 0:P.setStartAtLogin(g)),await s()}async function A(g){await(P==null?void 0:P.setSystemProxy(g)),await s()}function L(g){u(g)}async function k(){await m.updateConfig({port:h.httpProxyPort}),await a()}async function N(){await m.updateConfig({"socks-port":h.socks5ProxyPort}),await a()}async function I(){await m.updateConfig({"mixed-port":h.mixedProxyPort}),await a()}async function J(g){await m.updateConfig({"allow-lan":g}),await a()}const{hostname:X,port:_}=l,{allowLan:M,mode:se}=o,Q=(oe=n==null?void 0:n.startAtLogin)!=null?oe:!1,Y=(ae=n==null?void 0:n.systemProxy)!=null?ae:!1,H=(B=n==null?void 0:n.isClashX)!=null?B:!1,de=d.exports.useMemo(()=>{const g=[{label:i("values.global"),value:"Global"},{label:i("values.rules"),value:"Rule"},{label:i("values.direct"),value:"Direct"}];return t&&g.push({label:i("values.script"),value:"Script"}),g},[i,t]);return e.createElement("div",{className:"page"},e.createElement(j,{title:i("title")}),e.createElement(z,{className:"settings-card"},e.createElement("div",{className:"flex flex-wrap"},e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.startAtLogin")),e.createElement(xe,{disabled:!(n==null?void 0:n.isClashX),checked:Q,onChange:F})),e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.language")),e.createElement(Te,{options:fn,value:f,onSelect:g=>L(g)}))),e.createElement("div",{className:"flex flex-wrap"},e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.setAsSystemProxy")),e.createElement(xe,{disabled:!H,checked:Y,onChange:A})),e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.allowConnectFromLan")),e.createElement(xe,{checked:M,onChange:J})))),e.createElement(z,{className:"settings-card"},e.createElement("div",{className:"flex flex-wrap"},e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.proxyMode")),e.createElement(Te,{options:de,value:xt(se),onSelect:w})),e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.socks5ProxyPort")),e.createElement(K,{className:"w-28",disabled:H,value:h.socks5ProxyPort,onChange:g=>E("socks5ProxyPort",+g),onBlur:N}))),e.createElement("div",{className:"flex flex-wrap"},e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.httpProxyPort")),e.createElement(K,{className:"w-28",disabled:H,value:h.httpProxyPort,onChange:g=>E("httpProxyPort",+g),onBlur:k})),e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.mixedProxyPort")),e.createElement(K,{className:"w-28",disabled:H,value:h.mixedProxyPort,onChange:g=>E("mixedProxyPort",+g),onBlur:I}))),e.createElement("div",{className:"flex flex-wrap"},e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.externalController")),e.createElement("span",{className:x({"modify-btn":!H},"external-controller"),onClick:()=>!H&&r(!1)},`${X}:${_}`)),e.createElement("div",{className:"px-8 w-1/2"}))))}var En="./assets/logo.b453e72f.png";function yn(t){const{routes:n}=t,{translation:s}=S(),{version:o,premium:a}=ce(),{data:r}=Ge(),{t:l}=s("SideBar"),c=n.map(({path:u,name:f,noMobile:i})=>e.createElement("li",{className:x("item",{"no-mobile":i}),key:f},e.createElement(gt,{to:u,className:({isActive:m})=>x({active:m})},l(f))));return e.createElement("div",{className:"sidebar"},e.createElement("img",{src:En,alt:"logo",className:"sidebar-logo"}),e.createElement("ul",{className:"sidebar-menu"},c),e.createElement("div",{className:"sidebar-version"},e.createElement("span",{className:"sidebar-version-label"},"Clash",(r==null?void 0:r.isClashX)&&"X"," ",l("Version")),e.createElement("span",{className:"sidebar-version-text"},o),a&&e.createElement("span",{className:"sidebar-version-label"},"Premium")))}function xn(){Ve();const t=[{path:"/proxies",name:"Proxies",element:e.createElement(un,null)},{path:"/logs",name:"Logs",element:e.createElement(tn,null)},{path:"/rules",name:"Rules",element:e.createElement(pn,null),noMobile:!0},{path:"/connections",name:"Connections",element:e.createElement(Zt,null),noMobile:!0},{path:"/settings",name:"Settings",element:e.createElement(hn,null)}];return e.createElement("div",{className:x("app",{"not-clashx":!q()})},e.createElement(yn,{routes:t}),e.createElement("div",{className:"page-container"},e.createElement(vt,null,e.createElement(Be,{path:"/",element:e.createElement(wt,{to:"/proxies",replace:!0})}),t.map(n=>e.createElement(Be,{path:n.path,key:n.path,element:n.element})))),e.createElement(en,null))}function Ze(){const t=document.getElementById("root"),n=e.createElement(Ct,null,e.createElement(d.exports.Suspense,{fallback:e.createElement(Ye,{visible:!0})},e.createElement(xn,null)));Ee.exports.render(n,t)}q()?Pt(()=>Ze()):Ze(); diff --git a/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.61b62488.css b/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.61b62488.css deleted file mode 100644 index 7420e6cc9..000000000 --- a/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.61b62488.css +++ /dev/null @@ -1 +0,0 @@ -.header{margin:10px 0;width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;user-select:none}.header>h1{flex-shrink:0;font-size:24px;color:#2c8af8;font-weight:500;text-shadow:0 2px 6px rgba(44,138,248,.4);line-height:32px}.switch{display:inline-block;width:32px;height:16px;border-radius:8px;background-color:#d8dee2;transition:background-color .3s ease;position:relative;cursor:pointer}.switch.checked{background-color:#57befc}.switch.checked:after{transform:translate(16px)}.switch.disabled{cursor:not-allowed;background-color:#b7c5d6}.switch.disabled:after{background-color:#e4eaef;box-shadow:0 0 8px #90939980}.switch.checked.disabled{background-color:#e4eaef}.switch:after{content:"";position:absolute;top:-1px;height:18px;width:18px;border-radius:9px;background-color:#fff;box-shadow:0 0 8px #2c8af866;transition:transform .3s ease;transform:translate(-2px)}.switch-icon{position:absolute;transform:translate(-1px) scale(.4);color:#fff;line-height:16px}.card{padding:15px;box-shadow:2px 5px 20px -3px #2c8af82e;background-color:#fff;border-radius:4px}.button-select{display:flex;flex-direction:row}.button-select .button-select-options{height:30px;padding:0 15px;color:#54759a;font-size:12px;line-height:30px;background:#fff;border:1px solid #e4eaef;border-right:none;transition:all .3s ease;cursor:pointer;outline:0;display:block}.button-select .button-select-options:first-child{border-radius:3px 0 0 3px}.button-select .button-select-options:last-child{border-radius:0 3px 3px 0;border-right:1px solid #e4eaef}.button-select .button-select-options.actived{background:#57befc;color:#fff;border-color:#57befc;box-shadow:0 2px 5px #57befc80}.button-select .button-select-options.actived:active{box-shadow:none}.tags{display:flex;flex:1;align-items:center;list-style:none;flex-wrap:wrap;box-sizing:content-box}.tags li{position:relative;display:flex;align-items:center;justify-content:center;border:1px solid #2c8af8;color:#54759a;height:22px;border-radius:11px;padding:0 6px;margin:3px 4px;font-size:10px}.tags li.error{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.tags li.tags-selected.error{background:linear-gradient(135deg,#2c8af8,#f56c6c);border:none;height:24px;padding:0 7px}.tags .tags-selected{background-color:#2c8af8;color:#fff}.input{display:inline-block;height:30px;width:100%;padding:0 10px;font-size:14px;color:#54759a;border-radius:3px;border:1px solid #e4eaef;transition:all .3s;transition-property:border-color,color,box-shadow}.input:focus{outline:0;border-color:#57befc;color:#2c8af8;box-shadow:0 2px 5px #57befc80}.select{cursor:pointer;font-size:14px;line-height:30px;color:#54759a;display:flex;overflow:hidden}.select>i{margin-left:5px;color:#54759a}.select-list{position:absolute;max-width:170px;border-radius:4px;overflow:hidden;box-shadow:0 2px 5px #b7c5d680;opacity:.8;pointer-events:none;transform:scaleY(0);transform-origin:top;transition:all .2s linear}.select-list .list{max-height:300px;overflow:auto;background:#fff;padding:5px 0;transform:scaleY(2);transform-origin:top;transition:all .2s linear}.select-list .list>.option{color:#54759a;padding:10px 15px;font-size:14px;list-style:none;cursor:pointer}.select-list .list>.option:hover{background:rgba(228,234,239,.5)}.select-list .list>.selected{background:rgba(228,234,239,.5)}.select-list-show{opacity:1;pointer-events:visible;transform:scaleY(1)}.select-list-show .list{transform:scaleY(1)}.modal-mask{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.15);opacity:0;pointer-events:none;transition:all .5s ease;display:flex;justify-content:center;align-items:center;z-index:9999}.modal-mask .modal{margin-top:-50px;padding:20px 30px;background:#fff;box-shadow:0 2px 16px #54759a33;border-radius:4px;display:flex;flex-direction:column;transform:scale(0);transition:all .3s cubic-bezier(.32,.26,.71,1.29)}.modal-mask .modal .modal-title{margin:5px 0;width:100%;display:flex;align-items:center;justify-content:space-between;font-weight:bold;font-size:18px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4)}.modal-mask .modal .modal-body{margin:10px 0;font-size:14px;color:#54759a}.modal-mask .modal .footer{width:100%;margin:5px 0;display:flex;align-items:center;justify-content:flex-end}.modal-mask .modal .footer .button{margin-left:10px}.modal-mask .modal-small{width:400px}.modal-mask .modal-big{width:600px}.modal-show{opacity:1;pointer-events:visible}.modal-show .modal{transform:scale(1)}@media (max-width: 768px){.modal-mask .modal{margin-top:0;padding:18px 20px}.modal-mask .modal-small{width:280px}.modal-mask .modal-big{width:480px}}.alert{padding:15px;background:#fff;border-radius:4px;box-shadow:0 2px 8px #2c8af84d;font-size:13px;line-height:1.6;text-align:justify;display:flex}.alert .alert-icon{margin-right:10px;width:20px;height:20px;border-radius:50%;flex-shrink:0;display:flex;justify-content:center;align-items:center;background:#fff}.alert .alert-icon>i{transform:scale(.5);font-weight:bold}.alert .alert-message{width:100%;color:#fff}.alert-box-success{background:linear-gradient(135deg,#5dae34,#67c23a);box-shadow:0 2px 8px #5dae344d}.alert-box-success .alert-icon>i{color:#67c23a}.alert-box-info{background:linear-gradient(135deg,#3eb4fc,#57befc);box-shadow:0 2px 8px #3eb4fc4d}.alert-box-info .alert-icon>i{color:#57befc}.alert-box-warning{background:linear-gradient(135deg,#e39725,#e6a23c);box-shadow:0 2px 8px #e397254d}.alert-box-warning .alert-icon>i{color:#e6a23c}.alert-box-error{background:linear-gradient(135deg,#f35454,#f56c6c);box-shadow:0 2px 8px #f354544d}.alert-box-error .alert-icon>i{color:#f56c6c}.alert-note-success{background:rgba(103,194,58,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #67c23a;box-shadow:0 2px 8px #5dae344d}.alert-note-success .alert-icon{background:#67c23a}.alert-note-success .alert-icon>i{color:#fff}.alert-note-success .alert-message{color:#3d7323}.alert-note-info{background:rgba(87,190,252,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #57befc;box-shadow:0 2px 8px #3eb4fc4d}.alert-note-info .alert-icon{background:#57befc}.alert-note-info .alert-icon>i{color:#fff}.alert-note-info .alert-message{color:#0493e9}.alert-note-warning{background:rgba(230,162,60,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #e6a23c;box-shadow:0 2px 8px #e397254d}.alert-note-warning .alert-icon{background:#e6a23c}.alert-note-warning .alert-icon>i{color:#fff}.alert-note-warning .alert-message{color:#a76d15}.alert-note-error{background:rgba(245,108,108,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #f56c6c;box-shadow:0 2px 8px #f354544d}.alert-note-error .alert-icon{background:#f56c6c}.alert-note-error .alert-icon>i{color:#fff}.alert-note-error .alert-message{color:#eb1010}.button{outline:0;padding:0 15px;height:32px;line-height:32px;border-radius:16px;font-size:14px;cursor:pointer;transition:all .15s ease}.button:focus{outline:none}.button-primary{color:#fff;border:none;background:linear-gradient(135deg,#57befc,#2c8af8);box-shadow:0 2px 8px #2c8af880}.button-primary:hover{border:none}.button-primary:active{box-shadow:0 0 2px #2c8af880}.button-normal{color:#909399;background:#fff;border:1px solid rgba(0,0,0,.1)}.button-normal:hover{border-color:#b7c5d6;color:#54759a}.button-normal:active{background:#fafafa;color:#54759a}.button-danger{color:#fff;border:none;background:linear-gradient(135deg,#f56c6c,#f23c3c);box-shadow:0 2px 8px #f23c3c80}.button-danger:hover{border:none}.button-danger:active{box-shadow:0 0 2px #f23c3c80}.button-success{color:#fff;border:none;background:linear-gradient(135deg,#67c23a,#5dae34);box-shadow:0 2px 8px #5dae3480}.button-success:hover{border:none}.button-success:active{box-shadow:0 0 2px #5dae3480}.button-warning{color:#fff;border:none;background:linear-gradient(135deg,#e6a23c,#e39725);box-shadow:0 2px 8px #e3972580}.button-warning:hover{border:none}.button-warning:active{box-shadow:0 0 2px #e3972580}.button.button-disabled{color:#b7c5d6;background:linear-gradient(135deg,#f3f6f9,#e2e9f1);box-shadow:0 2px 8px #e2e9f180;cursor:not-allowed}.button.button-disabled:active{box-shadow:0 0 2px #e2e9f180}.message{position:fixed;top:20px;right:20px;border-radius:4px;opacity:0;background:#fff;display:flex;box-shadow:0 0 20px #2c8af833;transition:all .2s ease;transform:translate(100%)}.message .message-icon{width:36px;flex:1;border-radius:4px 0 0 4px;display:flex;justify-content:center;align-items:center}.message .message-icon>i{color:#fff}.message .message-content{padding:10px 15px;font-size:13px;color:#54759a}.message-info .message-icon{background:linear-gradient(135deg,#57befc,#2c8af8)}.message-success .message-icon{background:linear-gradient(135deg,#67c23a,#5dae34)}.message-warning .message-icon{background:linear-gradient(135deg,#e6a23c,#e39725)}.message-error .message-icon{background:linear-gradient(135deg,#f56c6c,#f23c3c)}.message-show{opacity:1;transition:all .2s ease;transform:translate(0)}.checkbox{display:flex;position:relative;padding-left:26px;cursor:pointer;line-height:18px}.checkbox:before{content:"";display:inline-block;position:absolute;left:0;top:50%;width:18px;height:18px;border-radius:3px;transition:background-color .3s ease;transform:translateY(-9px);background-color:#fff;border:1px solid #e4eaef}.checkbox.checked:before{background-color:#57befc}.checkbox-icon{position:absolute;left:0;top:50%;line-height:18px;transform:translateY(-9px) scale(.6);text-shadow:none;font-weight:bold}.checkbox-icon.checkbox-icon{color:#fff}.tag{display:flex;align-items:center;justify-content:center;height:24px;font-size:12px;padding:0 12px;text-align:center;background-color:#fff;border:2px solid #2c8af8;color:#2c8af8;border-radius:12px}.spinner{position:relative;width:80px;height:80px;border-radius:100%;animation:spinner 5s infinite linear}.spinner-circle{position:absolute;width:100%;height:100%;transform-origin:48% 48%}.spinner-inner{width:100%;height:100%;border-radius:100%;border:5px solid rgba(44,138,248,.7);border-right:none;border-top:none;background-clip:padding-box;box-shadow:inset 0 0 10px #2c8af826}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner-circle:nth-of-type(0){transform:rotate(0)}.spinner-circle:nth-of-type(0) .spinner-inner{animation:spinner 2s infinite linear}.spinner-circle:nth-of-type(1){transform:rotate(70deg)}.spinner-circle:nth-of-type(1) .spinner-inner{animation:spinner 2s infinite linear}.spinner-circle:nth-of-type(2){transform:rotate(140deg)}.spinner-circle:nth-of-type(2) .spinner-inner{animation:spinner 2s infinite linear}.loading{position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:0;bottom:0;right:0;background-color:#ffffffe6;box-shadow:inset 0 0 80px #0000001a;z-index:1000}.connections-devices-item{margin-right:20px;font-size:14px;color:#909399;border-radius:3px;cursor:pointer;transition:color .3s ease}.connections-devices-item.selected{color:#2c8af8}.connections-card{display:flex;flex-direction:column;flex:1;margin-top:10px;padding:0;overflow:hidden}.connections-card .connections-th{position:relative;text-align:center;color:#909399;background:#f3f6f9;height:30px;line-height:30px;font-weight:500;font-size:14px;cursor:pointer;user-select:none}.connections-card .connections-th.resizing .connections-resizer{opacity:1}.connections-card .connections-th.fixed{position:sticky!important;left:0;z-index:99;box-shadow:inset -9px 0 8px -14px #000}.connections-card .connections-resizer{position:absolute;opacity:0;right:-10px;top:8px;bottom:8px;width:20px;transition:opacity .3s ease;z-index:10;font-size:14px;font-weight:300;touch-action:none}.connections-card .connections-resizer:before{content:"";display:block;position:absolute;left:10px;transform:translate(-1px);width:2px;height:100%;background-color:#90939999}.connections-card .connections-header{position:sticky;top:0;z-index:999;white-space:nowrap}.connections-card .connections-header:hover .connections-resizer{opacity:1}.connections-card .connections-block{display:flex;align-items:center;font-size:14px;line-height:36px;padding:0 10px;color:#54759a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connections-card .connections-block.completed{background-color:#e9eef4;color:#54759a80}.connections-card .connections-block.fixed{position:sticky;left:0;z-index:998;background-color:#fff;box-shadow:inset -9px 0 8px -14px #000}.connections-filter{color:#2c8af8;font-size:14px;line-height:20px;margin-left:15px;text-shadow:0 0 6px rgba(44,138,248,.4);cursor:pointer}.connections-filter.dangerous{color:#f56c6c;text-shadow:0 0 6px rgba(87,190,252,.2)}.external-controller .alert{margin:10px 0}@media (max-width: 768px){.external-controller .alert{display:none}}.logs-panel{display:flex;flex-direction:column;flex-grow:1;flex-basis:0;list-style:none;padding:10px;border-radius:2px;background-color:#f3f6f9;font-size:12px;color:#73808f;overflow-y:auto;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace}.proxy-item{position:relative;width:100%;height:110px;padding:10px;border-radius:4px;background:#fff;user-select:none;cursor:default;box-shadow:2px 5px 20px -3px #2c8af833;transition:all .3s ease}.proxy-item .proxy-type{padding:2px 5px;font-size:10px;color:#fff;border-radius:2px}.proxy-item .proxy-name{display:-webkit-box;margin-top:10px;color:#54759a;font-size:10px;overflow:hidden;word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical}.proxy-item .proxy-delay{position:absolute;left:10px;bottom:13px;font-size:10px;color:#54759acc}.proxy-item .proxy-editor{position:absolute;right:10px;bottom:10px;cursor:pointer;color:#54759acc;opacity:0;pointer-events:none;transition:all .3s ease}.proxy-item:hover{box-shadow:0 14px 20px -4px #54759a66}.proxy-item:hover .proxy-editor{opacity:1;pointer-events:visible}.proxy-error{opacity:.5}.proxy-error .proxy-type{background-color:#909399}@media (max-width: 768px){.proxy-item{height:70px}.proxy-item .proxy-delay{left:unset;bottom:unset;top:0;right:20px;height:70px;line-height:70px}}.proxy-group{display:flex;align-items:flex-start;font-size:14px;color:#546b87}.proxies-group-item{border-bottom:1px solid #d8dee2}.proxies-group-item:last-child{border-bottom:none}@media (max-width: 768px){.proxy-group{flex-direction:column}}.proxy-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.proxy-provider-item{box-shadow:0 0 24px #2c8af833}.proxy-provider-item:hover{box-shadow:0 0 24px #54759a66}.proxies-list{--item-width: calc(100% / (var(--columns) + 1));--gap: calc(var(--item-width) / var(--columns));display:flex;margin-right:calc(-1 * var(--gap));margin-top:20px;flex-wrap:wrap;align-content:flex-start;list-style:none}@media (min-width: 2001px){.proxies-list{--columns: 12}}@media (max-width: 2000px){.proxies-list{--columns: 10}}@media (max-width: 1600px){.proxies-list{--columns: 8}}@media (max-width: 1340px){.proxies-list{--columns: 7}}@media (max-width: 960px){.proxies-list{--columns: 6}}@media (max-width: 860px){.proxies-list{--columns: 5}}@media (max-width: 760px){.proxies-list{--columns: 3}}.proxies-list>li{display:inline-block;width:var(--item-width);margin-right:var(--gap);flex-shrink:0;margin-bottom:10px}.proxies-speed-test{line-height:32px;margin:0 2px 0 6px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4);cursor:pointer}@media (max-width: 768px){.proxies-list{margin-right:0;padding-bottom:20px;flex-wrap:unset;flex-direction:column}.proxies-list>li{width:100%;margin-right:0;margin-bottom:10px}}.rule-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.rule-provider-header{display:flex;align-items:center;justify-content:space-between}.rule-provider-header-part{display:flex;align-items:center}.rule-provider-name{width:120px;margin-right:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-provider-behavior{width:80px;margin:0 20px 0 12px;background-color:#2c8af8;color:#fff}.rule-provider-spinner{transform:scale(.4)}.rule-provider-proxies{list-style:none}.rule-provider-item{box-shadow:0 0 24px #2c8af833}.rule-provider-item:hover{box-shadow:0 0 24px #54759a66}.rule-provider-update{line-height:14px;font-size:14px}.rule-provider-icon{display:block;margin-left:20px;cursor:pointer}.rule-provider-icon.rule-provider-loading:before{color:#909399;cursor:not-allowed;animation:spinner 2s infinite linear}@media (max-width: 768px){.rule-provider-header{flex-direction:column;align-items:flex-start}.rule-provider-header-part{margin:6px 0}}.rule-item{line-height:30px;padding:5px 0;height:50px;overflow:hidden;list-style:none;user-select:none;border-bottom:1px solid rgba(228,234,239,.5)}.rule-item .drag-handler{cursor:row-resize;margin:0 10px;display:flex;justify-content:center}.rule-item .drag-handler>i{font-weight:bold;color:#b7c5d6}.rule-item .rule-type{font-size:14px;color:#54759a}.rule-item .rule-type>i{margin-left:5px;color:#54759a}.rule-item .payload{font-size:14px;color:#54759a;cursor:pointer}.rule-item .rule-proxy{font-size:14px;color:#54759a}.rule-item .delete-btn{opacity:0;transition:all .3s ease}.rule-item .delete-btn span{font-size:14px;color:#f56c6c;cursor:pointer}.rule-item:last-child{border-bottom:none}.rule-item:hover .delete-btn{opacity:1}.settings-card{margin-top:10px;padding:.75rem 0}.settings-card .label{font-size:14px;color:#54759a}.settings-card .external-controller{font-size:14px;color:#54759a;display:flex;justify-content:flex-end;font-weight:normal;line-height:17px}.settings-card .external-controller.modify-btn{color:#57befc;cursor:pointer}.clash-version{position:relative;margin-top:10px;padding:20px 45px;display:flex}.clash-version .check-icon{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#57befc,#2c8af8);display:flex;justify-content:center;align-items:center}.clash-version .check-icon>i{transform:scale(.5);color:#fff;font-weight:bold}.clash-version .version-info{margin-left:10px;font-size:14px;line-height:24px;color:#54759a}.clash-version .check-update-btn{position:absolute;right:45px;font-size:14px;line-height:24px;color:#b7c5d6;cursor:pointer;transition:all .15s ease}.clash-version .check-update-btn:hover{color:#54759a}.sidebar{position:fixed;top:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:160px;user-select:none}.sidebar-logo{margin-top:50px;width:60px;height:60px}.sidebar-menu{display:flex;flex-direction:column;flex:1;margin-top:12px}.sidebar-menu .item{display:block;margin-top:18px}.sidebar-menu .item>a{display:block;width:120px;height:36px;line-height:36px;font-size:14px;border-radius:18px;text-align:center}.sidebar-menu .item>a,.sidebar-menu .item a:active,.sidebar-menu .item a:visited{color:#909399;text-decoration:none}.sidebar-menu .item>a.active{background:linear-gradient(135deg,#57befc,#2c8af8);color:#fff;box-shadow:0 2px 8px #2c8af880}.sidebar-version{display:flex;flex-direction:column;align-items:center;padding-bottom:20px}.sidebar-version-label{font-size:14px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4)}.sidebar-version-text{text-align:center;font-size:14px;margin:8px 0;padding:0 10px;color:#54759a}@media (max-width: 768px){.sidebar{width:100%;height:60px;flex-direction:row;background:#f4f5f6;z-index:10}.sidebar-logo{margin:0 15px;width:36px;height:36px}.sidebar-menu{flex:1;flex-direction:row;justify-content:center;margin-top:0;overflow-x:scroll;padding:10px}.sidebar-menu::-webkit-scrollbar{display:none}.sidebar-menu .item{margin:0 3px}.sidebar-menu .item>a{width:80px;height:32px;line-height:32px}.sidebar-menu .item.no-mobile{display:none}.sidebar-version{display:none}}html{box-sizing:border-box;background:rgba(255,255,255,.8);overflow:hidden}*,*:before,*:after{margin:0;padding:0;box-sizing:inherit}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol"}body ::-webkit-scrollbar{z-index:11;background:transparent}body ::-webkit-scrollbar-thumb{border-radius:5px;background:#2c8af8}body ::-webkit-scrollbar:vertical{width:6px}body ::-webkit-scrollbar:horizontal{height:6px}.app{min-height:100vh;padding-left:150px}.app.not-clashx{background:#f4f5f6}.page-container{width:100%;height:100vh;padding-left:10px;overflow-y:scroll}.page{padding:20px 35px 30px 20px;width:100%;min-height:100vh;margin:0 auto;display:flex;flex-direction:column}.container{margin:20px 0}input{-webkit-appearance:none}@media (max-width: 768px){.app{padding-left:0;padding-top:60px}.page-container{width:100%;padding:0 10px;height:calc(100vh - 60px);-webkit-overflow-scrolling:touch}.page-container::-webkit-scrollbar{display:none}.page{padding:0 0 20px;height:100%;min-height:unset}}@font-face{font-family:"clash-iconfont";src:url(//at.alicdn.com/t/font_841708_ok9czskbhel.ttf?t=1576162884356) format("truetype")}.clash-iconfont{font-family:"clash-iconfont"!important;font-size:14px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c8af8}.icon-update:before{content:"\e66f"}.icon-healthcheck:before{content:"\e63c"}.icon-speed:before{content:"\e61b"}.icon-close:before{content:"\e602"}.icon-drag:before{content:"\e604"}.icon-down-arrow-o:before{content:"\e605"}.icon-check:before{content:"\e606"}.icon-plus:before{content:"\e607"}.icon-triangle-up:before{content:"\e608"}.icon-triangle-down:before{content:"\e609"}.icon-up-arrow-o:before{content:"\e60a"}.icon-info:before{content:"\e60b"}.icon-info-o:before{content:"\e60c"}.icon-setting:before{content:"\e60d"}.icon-show:before{content:"\e60e"}.icon-hide:before{content:"\e60f"}.icon-sort:before{content:"\e8b3"}.icon-sort-descending:before{content:"\e8b4"}.icon-sort-ascending:before{content:"\e8b5"}.icon-close-all:before{content:"\e71b"}*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}*{--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}::moz-focus-inner{border-style:none;padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body{margin:0;font-family:inherit;line-height:inherit}button,input{font-family:inherit;font-size:100%;line-height:1.15;margin:0;padding:0;line-height:inherit;color:inherit}button{text-transform:none;background-color:transparent;background-image:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,[role=button]{cursor:pointer}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.5}h1{font-size:inherit;font-weight:inherit}img{border-style:solid;display:block;vertical-align:middle;max-width:100%;height:auto}input::placeholder{opacity:1;color:#9ca3af}input::webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}p,h1{margin:0}ul{list-style:none;margin:0;padding:0}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.rounded{border-radius:.25rem}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.inline-block{display:inline-block}.flex{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.table{display:table}.hidden{display:none}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;-webkit-flex:1 1 0%;flex:1 1 0%}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}.font-bold{font-weight:700}.h-full{height:100%}.h-7{height:1.75rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-6{height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.leading-7{line-height:1.75rem}.leading-5{line-height:1.25rem}.list-none{list-style-type:none}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2\.5{margin-top:.625rem;margin-bottom:.625rem}.mb-2{margin-bottom:.5rem}.mt-3{margin-top:.75rem}.mt-2\.5{margin-top:.625rem}.mr-4{margin-right:1rem}.mt-4{margin-top:1rem}.mr-5{margin-right:1.25rem}.ml-5{margin-left:1.25rem}.mr-6{margin-right:1.5rem}.ml-3{margin-left:.75rem}.not-first\:mt-7\.5:not(:first-child){margin-top:1.875rem}.min-h-120{min-height:30rem}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-hidden{overflow-y:hidden}.p-0{padding:0}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-8{padding-left:2rem;padding-right:2rem}.pt-2{padding-top:.5rem}.pl-3{padding-left:.75rem}.pr-3{padding-right:.75rem}.pt-3{padding-top:.75rem}.pl-5{padding-left:1.25rem}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0px;right:0px;bottom:0px;left:0px}.right-0{right:0px}.focus\:shadow-none:focus{--tw-shadow-color: 0, 0, 0;--tw-shadow: none;-webkit-box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-primary{--tw-shadow-color: 0, 0, 0;--tw-shadow: 2px 5px 20px -3px rgb(44 138 248 / 18%);-webkit-box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.text-center{text-align:center}.text-green{--tw-text-opacity: 1;color:rgba(103,194,58,var(--tw-text-opacity))}.text-red{--tw-text-opacity: 1;color:rgba(245,108,108,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgba(156,163,175,var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity: 1;color:rgba(44,138,248,var(--tw-text-opacity))}.text-opacity-90{--tw-text-opacity: .9}.overflow-ellipsis{-o-text-overflow:ellipsis;text-overflow:ellipsis}.text-shadow-primary{text-shadow:0 0 6px rgb(44 138 248 / 40%)}.capitalize{text-transform:capitalize}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.visible{visibility:visible}.\!visible{visibility:visible!important}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.w-16{width:4rem}.w-full{width:100%}.w-14{width:3.5rem}.w-40{width:10rem}.w-28{width:7rem}.w-1\/2{width:50%}.w-35{width:8.75rem}.z-9999{z-index:9999}.transform{--tw-rotate: 0;--tw-rotate-x: 0;--tw-rotate-y: 0;--tw-rotate-z: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-scale-z: 1;--tw-skew-x: 0;--tw-skew-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;-webkit-transform:rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z));-ms-transform:rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z));transform:rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotate(var(--tw-rotate-z)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) translate(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z))}.translate-x-full{--tw-translate-x: 100%}.translate-x-0{--tw-translate-x: 0px}.transition-transform{-webkit-transition-property:-webkit-transform;-o-transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);-o-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;-o-transition-duration:.15s;transition-duration:.15s}.duration-100{-webkit-transition-duration:.1s;-o-transition-duration:.1s;transition-duration:.1s}.duration{-webkit-transition-duration:.15s;-o-transition-duration:.15s;transition-duration:.15s}.filter{--tw-blur: var(--tw-empty, );--tw-brightness: var(--tw-empty, );--tw-contrast: var(--tw-empty, );--tw-grayscale: var(--tw-empty, );--tw-hue-rotate: var(--tw-empty, );--tw-invert: var(--tw-empty, );--tw-saturate: var(--tw-empty, );--tw-sepia: var(--tw-empty, );--tw-drop-shadow: var(--tw-empty, );-webkit-filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@media (min-width: 768px){.md\:flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.md\:items-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.md\:h-15{height:3.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:my-3{margin-top:.75rem;margin-bottom:.75rem}.md\:my-4{margin-top:1rem;margin-bottom:1rem}.md\:mt-4{margin-top:1rem}.md\:mt-0{margin-top:0}.md\:mr-0{margin-right:0}.md\:ml-8{margin-left:2rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:pt-0{padding-top:0}.md\:w-auto{width:auto}.md\:w-1\/2{width:50%}.md\:w-30{width:7.5rem}} diff --git a/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.760643c8.css b/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.760643c8.css new file mode 100644 index 000000000..15121c16d --- /dev/null +++ b/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.760643c8.css @@ -0,0 +1 @@ +.header{margin:10px 0;width:100%;display:flex;flex-direction:row;align-items:center;justify-content:space-between;user-select:none}.header>h1{flex-shrink:0;font-size:24px;color:#2c8af8;font-weight:500;text-shadow:0 2px 6px rgba(44,138,248,.4);line-height:32px}.switch{display:inline-block;width:32px;height:16px;border-radius:8px;background-color:#d8dee2;transition:background-color .3s ease;position:relative;cursor:pointer}.switch.checked{background-color:#57befc}.switch.checked:after{transform:translate(16px)}.switch.disabled{cursor:not-allowed;background-color:#b7c5d6}.switch.disabled:after{background-color:#e4eaef;box-shadow:0 0 8px #90939980}.switch.checked.disabled{background-color:#e4eaef}.switch:after{content:"";position:absolute;top:-1px;height:18px;width:18px;border-radius:9px;background-color:#fff;box-shadow:0 0 8px #2c8af866;transition:transform .3s ease;transform:translate(-2px)}.switch-icon{position:absolute;transform:translate(-1px) scale(.4);color:#fff;line-height:16px}.card{padding:15px;box-shadow:2px 5px 20px -3px #2c8af82e;background-color:#fff;border-radius:4px}.button-select{display:flex;flex-direction:row}.button-select .button-select-options{height:30px;padding:0 15px;color:#54759a;font-size:12px;line-height:30px;background:#fff;border:1px solid #e4eaef;border-right:none;transition:all .3s ease;cursor:pointer;outline:0;display:block}.button-select .button-select-options:first-child{border-radius:3px 0 0 3px}.button-select .button-select-options:last-child{border-radius:0 3px 3px 0;border-right:1px solid #e4eaef}.button-select .button-select-options.actived{background:#57befc;color:#fff;border-color:#57befc;box-shadow:0 2px 5px #57befc80}.button-select .button-select-options.actived:active{box-shadow:none}.tags{display:flex;flex:1;align-items:center;list-style:none;flex-wrap:wrap;box-sizing:content-box}.tags li{position:relative;display:flex;align-items:center;justify-content:center;border:1px solid #2c8af8;color:#54759a;height:22px;border-radius:11px;padding:0 6px;margin:3px 4px;font-size:10px}.tags li.error{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.tags li.tags-selected.error{background:linear-gradient(135deg,#2c8af8,#f56c6c);border:none;height:24px;padding:0 7px}.tags .tags-selected{background-color:#2c8af8;color:#fff}.input{display:inline-block;height:30px;width:100%;padding:0 10px;font-size:14px;color:#54759a;border-radius:3px;border:1px solid #e4eaef;transition:all .3s;transition-property:border-color,color,box-shadow}.input:focus{outline:0;border-color:#57befc;color:#2c8af8;box-shadow:0 2px 5px #57befc80}.select{cursor:pointer;font-size:14px;line-height:30px;color:#54759a;display:flex;overflow:hidden}.select>i{margin-left:5px;color:#54759a}.select-list{position:absolute;max-width:170px;border-radius:4px;overflow:hidden;box-shadow:0 2px 5px #b7c5d680;opacity:.8;pointer-events:none;transform:scaleY(0);transform-origin:top;transition:all .2s linear}.select-list .list{max-height:300px;overflow:auto;background:#fff;padding:5px 0;transform:scaleY(2);transform-origin:top;transition:all .2s linear}.select-list .list>.option{color:#54759a;padding:10px 15px;font-size:14px;list-style:none;cursor:pointer}.select-list .list>.option:hover{background:rgba(228,234,239,.5)}.select-list .list>.selected{background:rgba(228,234,239,.5)}.select-list-show{opacity:1;pointer-events:visible;transform:scaleY(1)}.select-list-show .list{transform:scaleY(1)}.modal-mask{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.15);opacity:0;pointer-events:none;transition:all .5s ease;display:flex;justify-content:center;align-items:center;z-index:9999}.modal-mask .modal{margin-top:-50px;padding:20px 30px;background:#fff;box-shadow:0 2px 16px #54759a33;border-radius:4px;display:flex;flex-direction:column;transform:scale(0);transition:all .3s cubic-bezier(.32,.26,.71,1.29)}.modal-mask .modal .modal-title{margin:5px 0;width:100%;display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:18px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4)}.modal-mask .modal .modal-body{margin:10px 0;font-size:14px;color:#54759a}.modal-mask .modal .footer{width:100%;margin:5px 0;display:flex;align-items:center;justify-content:flex-end}.modal-mask .modal .footer .button{margin-left:10px}.modal-mask .modal-small{width:400px}.modal-mask .modal-big{width:600px}.modal-show{opacity:1;pointer-events:visible}.modal-show .modal{transform:scale(1)}@media (max-width: 768px){.modal-mask .modal{margin-top:0;padding:18px 20px}.modal-mask .modal-small{width:280px}.modal-mask .modal-big{width:480px}}.alert{padding:15px;background:#fff;border-radius:4px;box-shadow:0 2px 8px #2c8af84d;font-size:13px;line-height:1.6;text-align:justify;display:flex}.alert .alert-icon{margin-right:10px;width:20px;height:20px;border-radius:50%;flex-shrink:0;display:flex;justify-content:center;align-items:center;background:#fff}.alert .alert-icon>i{transform:scale(.5);font-weight:700}.alert .alert-message{width:100%;color:#fff}.alert-box-success{background:linear-gradient(135deg,#5dae34,#67c23a);box-shadow:0 2px 8px #5dae344d}.alert-box-success .alert-icon>i{color:#67c23a}.alert-box-info{background:linear-gradient(135deg,#3eb4fc,#57befc);box-shadow:0 2px 8px #3eb4fc4d}.alert-box-info .alert-icon>i{color:#57befc}.alert-box-warning{background:linear-gradient(135deg,#e39725,#e6a23c);box-shadow:0 2px 8px #e397254d}.alert-box-warning .alert-icon>i{color:#e6a23c}.alert-box-error{background:linear-gradient(135deg,#f35454,#f56c6c);box-shadow:0 2px 8px #f354544d}.alert-box-error .alert-icon>i{color:#f56c6c}.alert-note-success{background:rgba(103,194,58,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #67c23a;box-shadow:0 2px 8px #5dae344d}.alert-note-success .alert-icon{background:#67c23a}.alert-note-success .alert-icon>i{color:#fff}.alert-note-success .alert-message{color:#3d7323}.alert-note-info{background:rgba(87,190,252,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #57befc;box-shadow:0 2px 8px #3eb4fc4d}.alert-note-info .alert-icon{background:#57befc}.alert-note-info .alert-icon>i{color:#fff}.alert-note-info .alert-message{color:#0493e9}.alert-note-warning{background:rgba(230,162,60,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #e6a23c;box-shadow:0 2px 8px #e397254d}.alert-note-warning .alert-icon{background:#e6a23c}.alert-note-warning .alert-icon>i{color:#fff}.alert-note-warning .alert-message{color:#a76d15}.alert-note-error{background:rgba(245,108,108,.05);border-radius:1px 4px 4px 1px;border-left:2px solid #f56c6c;box-shadow:0 2px 8px #f354544d}.alert-note-error .alert-icon{background:#f56c6c}.alert-note-error .alert-icon>i{color:#fff}.alert-note-error .alert-message{color:#eb1010}.button{outline:0;padding:0 15px;height:32px;line-height:32px;border-radius:16px;font-size:14px;cursor:pointer;transition:all .15s ease}.button:focus{outline:none}.button-primary{color:#fff;border:none;background:linear-gradient(135deg,#57befc,#2c8af8);box-shadow:0 2px 8px #2c8af880}.button-primary:hover{border:none}.button-primary:active{box-shadow:0 0 2px #2c8af880}.button-normal{color:#909399;background:#fff;border:1px solid rgba(0,0,0,.1)}.button-normal:hover{border-color:#b7c5d6;color:#54759a}.button-normal:active{background:#fafafa;color:#54759a}.button-danger{color:#fff;border:none;background:linear-gradient(135deg,#f56c6c,#f23c3c);box-shadow:0 2px 8px #f23c3c80}.button-danger:hover{border:none}.button-danger:active{box-shadow:0 0 2px #f23c3c80}.button-success{color:#fff;border:none;background:linear-gradient(135deg,#67c23a,#5dae34);box-shadow:0 2px 8px #5dae3480}.button-success:hover{border:none}.button-success:active{box-shadow:0 0 2px #5dae3480}.button-warning{color:#fff;border:none;background:linear-gradient(135deg,#e6a23c,#e39725);box-shadow:0 2px 8px #e3972580}.button-warning:hover{border:none}.button-warning:active{box-shadow:0 0 2px #e3972580}.button.button-disabled{color:#b7c5d6;background:linear-gradient(135deg,#f3f6f9,#e2e9f1);box-shadow:0 2px 8px #e2e9f180;cursor:not-allowed}.button.button-disabled:active{box-shadow:0 0 2px #e2e9f180}.message{position:fixed;top:20px;right:20px;border-radius:4px;opacity:0;background:#fff;display:flex;box-shadow:0 0 20px #2c8af833;transition:all .2s ease;transform:translate(100%)}.message .message-icon{width:36px;flex:1;border-radius:4px 0 0 4px;display:flex;justify-content:center;align-items:center}.message .message-icon>i{color:#fff}.message .message-content{padding:10px 15px;font-size:13px;color:#54759a}.message-info .message-icon{background:linear-gradient(135deg,#57befc,#2c8af8)}.message-success .message-icon{background:linear-gradient(135deg,#67c23a,#5dae34)}.message-warning .message-icon{background:linear-gradient(135deg,#e6a23c,#e39725)}.message-error .message-icon{background:linear-gradient(135deg,#f56c6c,#f23c3c)}.message-show{opacity:1;transition:all .2s ease;transform:translate(0)}.checkbox{display:flex;position:relative;padding-left:26px;cursor:pointer;line-height:18px}.checkbox:before{content:"";display:inline-block;position:absolute;left:0;top:50%;width:18px;height:18px;border-radius:3px;transition:background-color .3s ease;transform:translateY(-9px);background-color:#fff;border:1px solid #e4eaef}.checkbox.checked:before{background-color:#57befc}.checkbox-icon{position:absolute;left:0;top:50%;line-height:18px;transform:translateY(-9px) scale(.6);text-shadow:none;font-weight:700}.checkbox-icon.checkbox-icon{color:#fff}.tag{display:flex;align-items:center;justify-content:center;height:24px;font-size:12px;padding:0 12px;text-align:center;background-color:#fff;border:2px solid #2c8af8;color:#2c8af8;border-radius:12px}.spinner{position:relative;width:80px;height:80px;border-radius:100%;animation:spinner 5s infinite linear}.spinner-circle{position:absolute;width:100%;height:100%;transform-origin:48% 48%}.spinner-inner{width:100%;height:100%;border-radius:100%;border:5px solid rgba(44,138,248,.7);border-right:none;border-top:none;background-clip:padding-box;box-shadow:inset 0 0 10px #2c8af826}@keyframes spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner-circle:nth-of-type(0){transform:rotate(0)}.spinner-circle:nth-of-type(0) .spinner-inner{animation:spinner 2s infinite linear}.spinner-circle:nth-of-type(1){transform:rotate(70deg)}.spinner-circle:nth-of-type(1) .spinner-inner{animation:spinner 2s infinite linear}.spinner-circle:nth-of-type(2){transform:rotate(140deg)}.spinner-circle:nth-of-type(2) .spinner-inner{animation:spinner 2s infinite linear}.loading{position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:0;bottom:0;right:0;background-color:#ffffffe6;box-shadow:inset 0 0 80px #0000001a;z-index:1000}.connections-devices-item{margin-right:20px;font-size:14px;color:#909399;border-radius:3px;cursor:pointer;transition:color .3s ease}.connections-devices-item.selected{color:#2c8af8}.connections-card{display:flex;flex-direction:column;flex:1;margin-top:10px;padding:0;overflow:hidden}.connections-card .connections-th{position:relative;text-align:center;color:#909399;background:#f3f6f9;height:30px;line-height:30px;font-weight:500;font-size:14px;cursor:pointer;user-select:none}.connections-card .connections-th.resizing .connections-resizer{opacity:1}.connections-card .connections-th.fixed{position:sticky!important;left:0;z-index:99}.connections-card .connections-th.fixed.shadow{box-shadow:inset -9px 0 8px -14px #000}.connections-card .connections-resizer{position:absolute;opacity:0;right:-10px;top:8px;bottom:8px;width:20px;transition:opacity .3s ease;z-index:10;font-size:14px;font-weight:300;touch-action:none}.connections-card .connections-resizer:before{content:"";display:block;position:absolute;left:10px;transform:translate(-1px);width:2px;height:100%;background-color:#90939999}.connections-card .connections-header{position:sticky;top:0;z-index:999;white-space:nowrap}.connections-card .connections-header:hover .connections-resizer{opacity:1}.connections-card .connections-block{display:flex;align-items:center;font-size:14px;line-height:36px;padding:0 10px;color:#54759a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connections-card .connections-block.completed{background-color:#e9eef4;color:#54759a80}.connections-card .connections-block.fixed{position:sticky;left:0;z-index:998;background-color:#fff}.connections-card .connections-block.fixed.shadow{box-shadow:inset -9px 0 8px -14px #000}.connections-filter{color:#2c8af8;font-size:14px;line-height:20px;margin-left:15px;text-shadow:0 0 6px rgba(44,138,248,.4);cursor:pointer}.connections-filter.dangerous{color:#f56c6c;text-shadow:0 0 6px rgba(87,190,252,.2)}.external-controller .alert{margin:10px 0}@media (max-width: 768px){.external-controller .alert{display:none}}.logs-panel{display:flex;flex-direction:column;flex-grow:1;flex-basis:0;list-style:none;padding:10px;border-radius:2px;background-color:#f3f6f9;font-size:12px;color:#73808f;overflow-y:auto;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}.proxy-item{position:relative;width:100%;height:110px;padding:10px;border-radius:4px;background:#fff;user-select:none;cursor:default;box-shadow:2px 5px 20px -3px #2c8af833;transition:all .3s ease}.proxy-item .proxy-type{padding:2px 5px;font-size:10px;color:#fff;border-radius:2px}.proxy-item .proxy-name{display:-webkit-box;margin-top:10px;color:#54759a;font-size:10px;overflow:hidden;word-break:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical}.proxy-item .proxy-delay{position:absolute;left:10px;bottom:13px;font-size:10px;color:#54759acc}.proxy-item .proxy-editor{position:absolute;right:10px;bottom:10px;cursor:pointer;color:#54759acc;opacity:0;pointer-events:none;transition:all .3s ease}.proxy-item:hover{box-shadow:0 14px 20px -4px #54759a66}.proxy-item:hover .proxy-editor{opacity:1;pointer-events:visible}.proxy-error{opacity:.5}.proxy-error .proxy-type{background-color:#909399}@media (max-width: 768px){.proxy-item{height:70px}.proxy-item .proxy-delay{left:unset;bottom:unset;top:0;right:20px;height:70px;line-height:70px}}.proxy-group{display:flex;align-items:flex-start;font-size:14px;color:#546b87}@media (max-width: 768px){.proxy-group{flex-direction:column}}.proxy-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.proxy-provider-item{box-shadow:0 0 24px #2c8af833}.proxy-provider-item:hover{box-shadow:0 0 24px #54759a66}.proxies-list{--item-width: calc(100% / (var(--columns) + 1));--gap: calc(var(--item-width) / var(--columns));display:flex;margin-right:calc(-1 * var(--gap));margin-top:20px;flex-wrap:wrap;align-content:flex-start;list-style:none}@media (min-width: 2001px){.proxies-list{--columns: 12}}@media (max-width: 2000px){.proxies-list{--columns: 10}}@media (max-width: 1600px){.proxies-list{--columns: 8}}@media (max-width: 1340px){.proxies-list{--columns: 7}}@media (max-width: 960px){.proxies-list{--columns: 6}}@media (max-width: 860px){.proxies-list{--columns: 5}}@media (max-width: 760px){.proxies-list{--columns: 3}}.proxies-list>li{display:inline-block;width:var(--item-width);margin-right:var(--gap);flex-shrink:0;margin-bottom:10px}.proxies-speed-test{line-height:32px;margin:0 2px 0 6px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4);cursor:pointer}@media (max-width: 768px){.proxies-list{margin-right:0;padding-bottom:20px;flex-wrap:unset;flex-direction:column}.proxies-list>li{width:100%;margin-right:0;margin-bottom:10px}}.rule-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.rule-provider-header{display:flex;align-items:center;justify-content:space-between}.rule-provider-header-part{display:flex;align-items:center}.rule-provider-name{width:120px;margin-right:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-provider-behavior{width:80px;margin:0 20px 0 12px;background-color:#2c8af8;color:#fff}.rule-provider-spinner{transform:scale(.4)}.rule-provider-proxies{list-style:none}.rule-provider-item{box-shadow:0 0 24px #2c8af833}.rule-provider-item:hover{box-shadow:0 0 24px #54759a66}.rule-provider-update{line-height:14px;font-size:14px}.rule-provider-icon{display:block;margin-left:20px;cursor:pointer}.rule-provider-icon.rule-provider-loading:before{color:#909399;cursor:not-allowed;animation:spinner 2s infinite linear}@media (max-width: 768px){.rule-provider-header{flex-direction:column;align-items:flex-start}.rule-provider-header-part{margin:6px 0}}.rule-item{line-height:30px;padding:5px 0;height:50px;overflow:hidden;list-style:none;user-select:none;border-bottom:1px solid rgba(228,234,239,.5)}.rule-item .drag-handler{cursor:row-resize;margin:0 10px;display:flex;justify-content:center}.rule-item .drag-handler>i{font-weight:700;color:#b7c5d6}.rule-item .rule-type{font-size:14px;color:#54759a}.rule-item .rule-type>i{margin-left:5px;color:#54759a}.rule-item .payload{font-size:14px;color:#54759a;cursor:pointer}.rule-item .rule-proxy{font-size:14px;color:#54759a}.rule-item .delete-btn{opacity:0;transition:all .3s ease}.rule-item .delete-btn span{font-size:14px;color:#f56c6c;cursor:pointer}.rule-item:last-child{border-bottom:none}.rule-item:hover .delete-btn{opacity:1}.settings-card{margin-top:10px;padding:.75rem 0}.settings-card .label{font-size:14px;color:#54759a}.settings-card .external-controller{font-size:14px;color:#54759a;display:flex;justify-content:flex-end;font-weight:400;line-height:17px}.settings-card .external-controller.modify-btn{color:#57befc;cursor:pointer}.clash-version{position:relative;margin-top:10px;padding:20px 45px;display:flex}.clash-version .check-icon{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#57befc,#2c8af8);display:flex;justify-content:center;align-items:center}.clash-version .check-icon>i{transform:scale(.5);color:#fff;font-weight:700}.clash-version .version-info{margin-left:10px;font-size:14px;line-height:24px;color:#54759a}.clash-version .check-update-btn{position:absolute;right:45px;font-size:14px;line-height:24px;color:#b7c5d6;cursor:pointer;transition:all .15s ease}.clash-version .check-update-btn:hover{color:#54759a}.sidebar{position:fixed;top:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:160px;user-select:none}.sidebar-logo{margin-top:50px;width:60px;height:60px}.sidebar-menu{display:flex;flex-direction:column;flex:1;margin-top:12px}.sidebar-menu .item{display:block;margin-top:18px}.sidebar-menu .item>a{display:block;width:120px;height:36px;line-height:36px;font-size:14px;border-radius:18px;text-align:center}.sidebar-menu .item>a,.sidebar-menu .item a:active,.sidebar-menu .item a:visited{color:#909399;text-decoration:none}.sidebar-menu .item>a.active{background:linear-gradient(135deg,#57befc,#2c8af8);color:#fff;box-shadow:0 2px 8px #2c8af880}.sidebar-version{display:flex;flex-direction:column;align-items:center;padding-bottom:20px}.sidebar-version-label{font-size:14px;color:#2c8af8;text-shadow:0 2px 6px rgba(44,138,248,.4)}.sidebar-version-text{text-align:center;font-size:14px;margin:8px 0;padding:0 10px;color:#54759a}@media (max-width: 768px){.sidebar{width:100%;height:60px;flex-direction:row;background:#f4f5f6;z-index:10}.sidebar-logo{margin:0 15px;width:36px;height:36px}.sidebar-menu{flex:1;flex-direction:row;justify-content:center;margin-top:0;overflow-x:scroll;padding:10px}.sidebar-menu::-webkit-scrollbar{display:none}.sidebar-menu .item{margin:0 3px}.sidebar-menu .item>a{width:80px;height:32px;line-height:32px}.sidebar-menu .item.no-mobile,.sidebar-version{display:none}}html{box-sizing:border-box;background:rgba(255,255,255,.8);overflow:hidden}*,*:before,*:after{margin:0;padding:0;box-sizing:inherit}body{margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}body ::-webkit-scrollbar{z-index:11;background:transparent}body ::-webkit-scrollbar-thumb{border-radius:5px;background:#2c8af8}body ::-webkit-scrollbar:vertical{width:6px}body ::-webkit-scrollbar:horizontal{height:6px}.app{min-height:100vh;padding-left:150px}.app.not-clashx{background:#f4f5f6}.page-container{width:100%;height:100vh;padding-left:10px;overflow-y:scroll}.page{padding:20px 35px 30px 20px;width:100%;min-height:100vh;margin:0 auto;display:flex;flex-direction:column}.container{margin:20px 0}input{-webkit-appearance:none}@media (max-width: 768px){.app{padding-left:0;padding-top:60px}.page-container{width:100%;padding:0 10px;height:calc(100vh - 60px);-webkit-overflow-scrolling:touch}.page-container::-webkit-scrollbar{display:none}.page{padding:0 0 20px;height:100%;min-height:unset}}@font-face{font-family:clash-iconfont;src:url(//at.alicdn.com/t/font_841708_ok9czskbhel.ttf?t=1576162884356) format("truetype")}.clash-iconfont{font-family:clash-iconfont!important;font-size:14px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#2c8af8}.icon-update:before{content:"\e66f"}.icon-healthcheck:before{content:"\e63c"}.icon-speed:before{content:"\e61b"}.icon-close:before{content:"\e602"}.icon-drag:before{content:"\e604"}.icon-down-arrow-o:before{content:"\e605"}.icon-check:before{content:"\e606"}.icon-plus:before{content:"\e607"}.icon-triangle-up:before{content:"\e608"}.icon-triangle-down:before{content:"\e609"}.icon-up-arrow-o:before{content:"\e60a"}.icon-info:before{content:"\e60b"}.icon-info-o:before{content:"\e60c"}.icon-setting:before{content:"\e60d"}.icon-show:before{content:"\e60e"}.icon-hide:before{content:"\e60f"}.icon-sort:before{content:"\e8b3"}.icon-sort-descending:before{content:"\e8b4"}.icon-sort-ascending:before{content:"\e8b5"}.icon-close-all:before{content:"\e71b"}*,:before,:after{-webkit-box-sizing:border-box;box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}*{--tw-ring-inset: var(--tw-empty, );--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgba(59, 130, 246, .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}::moz-focus-inner{border-style:none;padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}body{margin:0;font-family:inherit;line-height:inherit}button,input{font-family:inherit;font-size:100%;line-height:1.15;margin:0;padding:0;line-height:inherit;color:inherit}button{text-transform:none;background-color:transparent;background-image:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button,[role=button]{cursor:pointer}html{-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5}h1{font-size:inherit;font-weight:inherit}img{border-style:solid;display:block;vertical-align:middle;max-width:100%;height:auto}input::placeholder{opacity:1;color:#9ca3af}input::webkit-input-placeholder{opacity:1;color:#9ca3af}input::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder{opacity:1;color:#9ca3af}input::-ms-input-placeholder{opacity:1;color:#9ca3af}p,h1{margin:0}ul{list-style:none;margin:0;padding:0}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-300>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgba(209,213,219,var(--tw-divide-opacity))}.rounded{border-radius:.25rem}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.inline-block{display:inline-block}.flex{display:-webkit-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.table{display:table}.hidden{display:none}.flex-col{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.flex-wrap{-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.items-start{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start}.items-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.justify-end{-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.justify-between{-webkit-box-pack:justify;-ms-flex-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.flex-auto{-webkit-box-flex:1;-ms-flex:1 1 auto;-webkit-flex:1 1 auto;flex:1 1 auto}.flex-1{-webkit-box-flex:1;-ms-flex:1 1 0%;-webkit-flex:1 1 0%;flex:1 1 0%}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-bold{font-weight:700}.h-full{height:100%}.h-7{height:1.75rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-6{height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.leading-7{line-height:1.75rem}.leading-5{line-height:1.25rem}.list-none{list-style-type:none}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2\.5{margin-top:.625rem;margin-bottom:.625rem}.mb-2{margin-bottom:.5rem}.mt-3{margin-top:.75rem}.mt-2\.5{margin-top:.625rem}.mr-4{margin-right:1rem}.mt-4{margin-top:1rem}.mr-5{margin-right:1.25rem}.ml-5{margin-left:1.25rem}.mr-6{margin-right:1.5rem}.ml-3{margin-left:.75rem}.not-first\:mt-7\.5:not(:first-child){margin-top:1.875rem}.min-h-120{min-height:30rem}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-hidden{overflow-y:hidden}.p-0{padding:0}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-8{padding-left:2rem;padding-right:2rem}.pt-2{padding-top:.5rem}.pl-3{padding-left:.75rem}.pr-3{padding-right:.75rem}.pt-3{padding-top:.75rem}.pl-5{padding-left:1.25rem}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0px;right:0px;bottom:0px;left:0px}.right-0{right:0px}.focus\:shadow-none:focus{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;-webkit-box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-primary{--tw-shadow: 2px 5px 20px -3px rgb(44 138 248 / 18%);--tw-shadow-colored: 2px 5px 20px -3px rgb(44 138 248 / 18%);-webkit-box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.text-center{text-align:center}.text-green{--tw-text-opacity: 1;color:rgba(103,194,58,var(--tw-text-opacity))}.text-red{--tw-text-opacity: 1;color:rgba(245,108,108,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgba(156,163,175,var(--tw-text-opacity))}.text-primary-600{--tw-text-opacity: 1;color:rgba(44,138,248,var(--tw-text-opacity))}.text-opacity-90{--tw-text-opacity: .9}.overflow-ellipsis{-o-text-overflow:ellipsis;text-overflow:ellipsis}.text-shadow-primary{text-shadow:0 0 6px rgb(44 138 248 / 40%)}.capitalize{text-transform:capitalize}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.visible{visibility:visible}.\!visible{visibility:visible!important}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.w-16{width:4rem}.w-full{width:100%}.w-14{width:3.5rem}.w-40{width:10rem}.w-28{width:7rem}.w-1\/2{width:50%}.w-35{width:8.75rem}.z-9999{z-index:9999}.transform{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-rotate: 0;--tw-rotate-x: 0;--tw-rotate-y: 0;--tw-rotate-z: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-scale-z: 1;-webkit-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));-ms-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotateZ(var(--tw-rotate-z)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z));transform:translate(var(--tw-translate-x)) translateY(var(--tw-translate-y)) translateZ(var(--tw-translate-z)) rotate(var(--tw-rotate)) rotateX(var(--tw-rotate-x)) rotateY(var(--tw-rotate-y)) rotate(var(--tw-rotate-z)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)) scaleZ(var(--tw-scale-z))}.translate-x-full{--tw-translate-x: 100%}.translate-x-0{--tw-translate-x: 0px}.transition-transform{-webkit-transition-property:-webkit-transform;-o-transition-property:transform;transition-property:transform,-webkit-transform;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);-o-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;-o-transition-duration:.15s;transition-duration:.15s}.duration-100{-webkit-transition-duration:.1s;-o-transition-duration:.1s;transition-duration:.1s}.duration{-webkit-transition-duration:.15s;-o-transition-duration:.15s;transition-duration:.15s}.filter{--tw-blur: var(--tw-empty, );--tw-brightness: var(--tw-empty, );--tw-contrast: var(--tw-empty, );--tw-grayscale: var(--tw-empty, );--tw-hue-rotate: var(--tw-empty, );--tw-invert: var(--tw-empty, );--tw-saturate: var(--tw-empty, );--tw-sepia: var(--tw-empty, );--tw-drop-shadow: var(--tw-empty, );-webkit-filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@media (min-width: 768px){.md\:flex-row{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.md\:items-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center}.md\:h-15{height:3.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:my-3{margin-top:.75rem;margin-bottom:.75rem}.md\:my-4{margin-top:1rem;margin-bottom:1rem}.md\:mt-4{margin-top:1rem}.md\:mt-0{margin-top:0}.md\:mr-0{margin-right:0}.md\:ml-8{margin-left:2rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:pt-0{padding-top:0}.md\:w-auto{width:auto}.md\:w-1\/2{width:50%}.md\:w-30{width:7.5rem}} diff --git a/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.c727f058.js b/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.c727f058.js deleted file mode 100644 index c1bdb3956..000000000 --- a/luci-app-openclash/root/usr/share/openclash/dashboard/assets/index.c727f058.js +++ /dev/null @@ -1,2 +0,0 @@ -var et=Object.defineProperty,tt=Object.defineProperties;var nt=Object.getOwnPropertyDescriptors;var Fe=Object.getOwnPropertySymbols;var st=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable;var Ae=(t,n,s)=>n in t?et(t,n,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[n]=s,b=(t,n)=>{for(var s in n||(n={}))st.call(n,s)&&Ae(t,s,n[s]);if(Fe)for(var s of Fe(n))ot.call(n,s)&&Ae(t,s,n[s]);return t},D=(t,n)=>tt(t,nt(n));import{R as e,c as x,r as d,f as fe,E as $e,a as le,b as at,d as _,e as he,u as Le,g as rt,h as T,i as Ie,j as Ee,k as G,l as lt,m as ye,n as ct,o as xe,p as it,q as ut,s as mt,t as ee,v as dt,A as pt,F as ft,w as ht,N as Et,x as yt,y as Be,z as xt,H as gt}from"./vendor.5151d57b.js";const vt=function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const l of r.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&a(l)}).observe(document,{childList:!0,subtree:!0});function s(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerpolicy&&(r.referrerPolicy=o.referrerpolicy),o.crossorigin==="use-credentials"?r.credentials="include":o.crossorigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(o){if(o.ep)return;o.ep=!0;const r=s(o);fetch(o.href,r)}};vt();function X(){return navigator.userAgent==="ClashX Runtime"}let N=null;class wt{constructor(n){this.instance=null,window.WebViewJavascriptBridge!=null&&(this.instance=window.WebViewJavascriptBridge),this.initBridge(s=>{this.instance=s,n()})}initBridge(n){if(!X())return n==null?void 0:n(null);if(window.WebViewJavascriptBridge!=null)return n(window.WebViewJavascriptBridge);if(window.WVJBCallbacks!=null)return window.WVJBCallbacks.push(n);window.WVJBCallbacks=[n];const s=document.createElement("iframe");s.style.display="none",s.src="https://__bridge_loaded__",document.documentElement.appendChild(s),setTimeout(()=>document.documentElement.removeChild(s),0)}async callHandler(n,s){return await new Promise(a=>{var o;(o=this.instance)==null||o.callHandler(n,s,a)})}async ping(){return await this.callHandler("ping")}async readConfigString(){return await this.callHandler("readConfigString")}async getPasteboard(){return await this.callHandler("getPasteboard")}async getAPIInfo(){return await this.callHandler("apiInfo")}async setPasteboard(n){return await this.callHandler("setPasteboard",n)}async writeConfigWithString(n){return await this.callHandler("writeConfigWithString",n)}async setSystemProxy(n){return await this.callHandler("setSystemProxy",n)}async getStartAtLogin(){return await this.callHandler("getStartAtLogin")}async getProxyDelay(n){return await this.callHandler("speedTest",n)}async setStartAtLogin(n){return await this.callHandler("setStartAtLogin",n)}async isSystemProxySet(){return await this.callHandler("isSystemProxySet")}}function Ct(t){if(N!=null){t();return}N=new wt(t)}function W(t){const{title:n,children:s,className:a,style:o}=t;return e.createElement("header",{className:x("header",a),style:o},e.createElement("h1",{className:"md:text-xl"},n),e.createElement("div",{className:"flex flex-auto items-center justify-end"},s))}function R(t){const{type:n,size:s=14,className:a,style:o}=t,r=x("clash-iconfont",`icon-${n}`,a),l=b({fontSize:s},o),c=D(b({},t),{className:r,style:l});return e.createElement("i",b({},c))}function H(){}function bt(t,n){const s=[],a=[];for(const o of t)n(o)?s.push(o):a.push(o);return[s,a]}function M(t){const n=["B","KB","MB","GB","TB"];let s=0;for(;~~(t/1024)&&s{const{className:s,style:a,children:o}=t;return e.createElement("div",{className:x("card",s),style:a,ref:n},o)});function Te(t){const{options:n,value:s,onSelect:a}=t;return e.createElement("div",{className:"button-select"},n.map(o=>e.createElement("button",{value:o.value,key:o.value,className:x("button-select-options",{actived:s===o.value}),onClick:()=>a==null?void 0:a(o.value)},o.label)))}const Nt={SideBar:{Proxies:"Proxies",Overview:"Overview",Logs:"Logs",Rules:"Rules",Settings:"Setting",Connections:"Connections",Version:"Version"},Settings:{title:"Settings",labels:{startAtLogin:"Start at login",language:"language",setAsSystemProxy:"Set as system proxy",allowConnectFromLan:"Allow connect from Lan",proxyMode:"Mode",socks5ProxyPort:"Socks5 proxy port",httpProxyPort:"HTTP proxy port",mixedProxyPort:"Mixed proxy port",externalController:"External controller"},values:{cn:"\u4E2D\u6587",en:"English",global:"Global",rules:"Rules",direct:"Direct",script:"Script"},versionString:"Current ClashX is the latest version\uFF1A{{version}}",checkUpdate:"Check Update",externalControllerSetting:{title:"External Controller",note:"Please note that modifying this configuration will only configure Dashboard. Will not modify your Clash configuration file. Please make sure that the external controller address matches the address in the Clash configuration file, otherwise, Dashboard will not be able to connect to Clash.",host:"Host",port:"Port",secret:"Secret"}},Logs:{title:"Logs"},Rules:{title:"Rules",providerTitle:"Providers",providerUpdateTime:"Last updated at",ruleCount:"Rule count"},Connections:{title:"Connections",keepClosed:"Keep closed connections",total:{text:"total",upload:"upload",download:"download"},closeAll:{title:"Warning",content:"This would close all connections"},filter:{all:"All"},columns:{host:"Host",network:"Network",type:"Type",chains:"Chains",rule:"Rule",time:"Time",speed:"Speed",upload:"Upload",download:"Download",sourceIP:"Source IP"},info:{title:"Connection",id:"ID",host:"Host",hostEmpty:"Empty",dstIP:"IP",dstIPEmpty:"Empty",srcIP:"Source",upload:"Upload",download:"Download",network:"Network",inbound:"Inbound",rule:"Rule",chains:"Chains",status:"Status",opening:"Open",closed:"Closed",closeConnection:"Close"}},Proxies:{title:"Proxies",editDialog:{title:"Edit Proxy",color:"Color",name:"Name",type:"Type",server:"Server",port:"Port",password:"Password",cipher:"Cipher",obfs:"Obfs","obfs-host":"Obfs-host",uuid:"UUID",alterId:"AlterId",tls:"TLS"},groupTitle:"Policy Group",providerTitle:"Providers",providerUpdateTime:"Last updated at",expandText:"Expand",collapseText:"Collapse",speedTestText:"Speed Test",breakConnectionsText:"Close connections which include the group"},Modal:{ok:"Ok",cancel:"Cancel"}},Pt={SideBar:{Proxies:"\u4EE3\u7406",Overview:"\u603B\u89C8",Logs:"\u65E5\u5FD7",Rules:"\u89C4\u5219",Settings:"\u8BBE\u7F6E",Connections:"\u8FDE\u63A5",Version:"\u7248\u672C"},Settings:{title:"\u8BBE\u7F6E",labels:{startAtLogin:"\u5F00\u673A\u65F6\u542F\u52A8",language:"\u8BED\u8A00",setAsSystemProxy:"\u8BBE\u7F6E\u4E3A\u7CFB\u7EDF\u4EE3\u7406",allowConnectFromLan:"\u5141\u8BB8\u6765\u81EA\u5C40\u57DF\u7F51\u7684\u8FDE\u63A5",proxyMode:"\u4EE3\u7406\u6A21\u5F0F",socks5ProxyPort:"Socks5 \u4EE3\u7406\u7AEF\u53E3",httpProxyPort:"HTTP \u4EE3\u7406\u7AEF\u53E3",mixedProxyPort:"\u6DF7\u5408\u4EE3\u7406\u7AEF\u53E3",externalController:"\u5916\u90E8\u63A7\u5236\u8BBE\u7F6E"},values:{cn:"\u4E2D\u6587",en:"English",global:"\u5168\u5C40",rules:"\u89C4\u5219",direct:"\u76F4\u8FDE",script:"\u811A\u672C"},versionString:"\u5F53\u524D ClashX \u5DF2\u662F\u6700\u65B0\u7248\u672C\uFF1A{{version}}",checkUpdate:"\u68C0\u67E5\u66F4\u65B0",externalControllerSetting:{title:"\u7F16\u8F91\u5916\u90E8\u63A7\u5236\u8BBE\u7F6E",note:"\u8BF7\u6CE8\u610F\uFF0C\u4FEE\u6539\u8BE5\u914D\u7F6E\u9879\u5E76\u4E0D\u4F1A\u4FEE\u6539\u4F60\u7684 Clash \u914D\u7F6E\u6587\u4EF6\uFF0C\u8BF7\u786E\u8BA4\u4FEE\u6539\u540E\u7684\u5916\u90E8\u63A7\u5236\u5730\u5740\u548C Clash \u914D\u7F6E\u6587\u4EF6\u5185\u7684\u5730\u5740\u4E00\u81F4\uFF0C\u5426\u5219\u4F1A\u5BFC\u81F4 Dashboard \u65E0\u6CD5\u8FDE\u63A5\u3002",host:"Host",port:"\u7AEF\u53E3",secret:"\u5BC6\u94A5"}},Logs:{title:"\u65E5\u5FD7"},Rules:{title:"\u89C4\u5219",providerTitle:"\u89C4\u5219\u96C6",providerUpdateTime:"\u6700\u540E\u66F4\u65B0\u4E8E",ruleCount:"\u89C4\u5219\u6761\u6570"},Connections:{title:"\u8FDE\u63A5",keepClosed:"\u4FDD\u7559\u5173\u95ED\u8FDE\u63A5",total:{text:"\u603B\u91CF",upload:"\u4E0A\u4F20",download:"\u4E0B\u8F7D"},closeAll:{title:"\u8B66\u544A",content:"\u5C06\u4F1A\u5173\u95ED\u6240\u6709\u8FDE\u63A5"},filter:{all:"\u5168\u90E8"},columns:{host:"\u57DF\u540D",network:"\u7F51\u7EDC",type:"\u7C7B\u578B",chains:"\u8282\u70B9\u94FE",rule:"\u89C4\u5219",time:"\u8FDE\u63A5\u65F6\u95F4",speed:"\u901F\u7387",upload:"\u4E0A\u4F20",download:"\u4E0B\u8F7D",sourceIP:"\u6765\u6E90 IP"},info:{title:"\u8FDE\u63A5\u4FE1\u606F",id:"ID",host:"\u57DF\u540D",hostEmpty:"\u7A7A",dstIP:"IP",dstIPEmpty:"\u7A7A",srcIP:"\u6765\u6E90",upload:"\u4E0A\u4F20",download:"\u4E0B\u8F7D",network:"\u7F51\u7EDC",inbound:"\u5165\u53E3",rule:"\u89C4\u5219",chains:"\u4EE3\u7406",status:"\u72B6\u6001",opening:"\u8FDE\u63A5\u4E2D",closed:"\u5DF2\u5173\u95ED",closeConnection:"\u5173\u95ED\u8FDE\u63A5"}},Proxies:{title:"\u4EE3\u7406",editDialog:{title:"\u7F16\u8F91\u4EE3\u7406",color:"\u989C\u8272",name:"\u540D\u5B57",type:"\u7C7B\u578B",server:"\u670D\u52A1\u5668",port:"\u7AEF\u53E3",password:"\u5BC6\u7801",cipher:"\u52A0\u5BC6\u65B9\u5F0F",obfs:"Obfs","obfs-host":"Obfs-host",uuid:"UUID",alterId:"AlterId",tls:"TLS"},groupTitle:"\u7B56\u7565\u7EC4",providerTitle:"\u4EE3\u7406\u96C6",providerUpdateTime:"\u6700\u540E\u66F4\u65B0\u4E8E",expandText:"\u5C55\u5F00",collapseText:"\u6536\u8D77",speedTestText:"\u6D4B\u901F",breakConnectionsText:"\u5207\u6362\u65F6\u6253\u65AD\u5305\u542B\u7B56\u7565\u7EC4\u7684\u8FDE\u63A5"},Modal:{ok:"\u786E \u5B9A",cancel:"\u53D6 \u6D88"}},Re={en_US:Nt,zh_CN:Pt},St=Object.keys(Re);function kt(){for(const t of window.navigator.languages){if(t.includes("zh"))return"zh_CN";if(t.includes("us"))return"en_US"}return"en_US"}function ve(t){return d.exports.useMemo(()=>{function s(a,o){if(typeof a=="string")t(r=>{const l=a,c=o;r[l]=c});else if(typeof a=="function"){const r=a;t(l=>r(l))}else typeof a=="object"&&t(r=>fe(r,l=>{const c=a;for(const u of Object.keys(c)){const f=u;l[f]=c[f]}}))}return s},[t])}class He{constructor(n){this.EE=new $e,this.innerBuffer=[],this.isClose=!1,this.config=Object.assign({bufferLength:0,retryInterval:5e3,headers:{}},n),this.config.useWebsocket?this.websocketLoop():this.loop()}websocketLoop(){var a;const n=new URL(this.config.url);n.protocol=n.protocol==="http:"?"ws:":"wss:",n.searchParams.set("token",(a=this.config.token)!=null?a:"");const s=new WebSocket(n.toString());s.addEventListener("message",o=>{const r=JSON.parse(o.data);this.EE.emit("data",[r]),this.config.bufferLength>0&&(this.innerBuffer.push(r),this.innerBuffer.length>this.config.bufferLength&&this.innerBuffer.splice(0,this.innerBuffer.length-this.config.bufferLength))}),s.addEventListener("close",()=>setTimeout(this.websocketLoop,this.config.retryInterval)),s.addEventListener("error",o=>{this.EE.emit("error",o),setTimeout(this.websocketLoop,this.config.retryInterval)})}async loop(){const n=await le.fromPromise(fetch(this.config.url,{mode:"cors",headers:this.config.token?{Authorization:`Bearer ${this.config.token}`}:{}}),o=>o);if(n.isErr()){this.retry(n.error);return}else if(n.value.body==null){this.retry(new Error("fetch body error"));return}const s=n.value.body.getReader(),a=new TextDecoder;for(;!this.isClose;){const o=await le.fromPromise(s==null?void 0:s.read(),c=>c);if(o.isErr()){this.retry(o.error);break}const l=a.decode(o.value.value).trim().split(` -`).map(c=>JSON.parse(c));this.EE.emit("data",l),this.config.bufferLength>0&&(this.innerBuffer.push(...l),this.innerBuffer.length>this.config.bufferLength&&this.innerBuffer.splice(0,this.innerBuffer.length-this.config.bufferLength))}}retry(n){this.isClose||(this.EE.emit("error",n),window.setTimeout(()=>{this.loop()},this.config.retryInterval))}subscribe(n,s){this.EE.addListener(n,s)}unsubscribe(n,s){this.EE.removeListener(n,s)}buffer(){return this.innerBuffer.slice()}destory(){this.EE.removeAllListeners(),this.isClose=!0}}class Dt{constructor(n,s){this.axiosClient=at.create({baseURL:n,headers:s?{Authorization:`Bearer ${s}`}:{}})}async getConfig(){return await this.axiosClient.get("configs")}async updateConfig(n){return await this.axiosClient.patch("configs",n)}async getRules(){return await this.axiosClient.get("rules")}async getProxyProviders(){const n=await this.axiosClient.get("providers/proxies",{validateStatus(s){return s>=200&&s<300||s===404}});return n.status===404&&(n.data={providers:{}}),n}async getRuleProviders(){return await this.axiosClient.get("providers/rules")}async updateProvider(n){return await this.axiosClient.put(`providers/proxies/${encodeURIComponent(n)}`)}async updateRuleProvider(n){return await this.axiosClient.put(`providers/rules/${encodeURIComponent(n)}`)}async healthCheckProvider(n){return await this.axiosClient.get(`providers/proxies/${encodeURIComponent(n)}/healthcheck`)}async getProxies(){return await this.axiosClient.get("proxies")}async getProxy(n){return await this.axiosClient.get(`proxies/${encodeURIComponent(n)}`)}async getVersion(){return await this.axiosClient.get("version")}async getProxyDelay(n){return await this.axiosClient.get(`proxies/${encodeURIComponent(n)}/delay`,{params:{timeout:5e3,url:"http://www.gstatic.com/generate_204"}})}async closeAllConnections(){return await this.axiosClient.delete("connections")}async closeConnection(n){return await this.axiosClient.delete(`connections/${n}`)}async getConnections(){return await this.axiosClient.get("connections")}async changeProxySelected(n,s){return await this.axiosClient.put(`proxies/${encodeURIComponent(n)}`,{name:s})}}const Ft=_(async()=>{if(!X())return null;const t=await N.getAPIInfo();return{hostname:t.host,port:t.port,secret:t.secret,protocol:"http:"}}),Me=he("externalControllers",[]);function te(){var f,i,m,h,E,w,F,A,L,k,P,I,V,J,j;const t=Le(Ft),n=rt(),s=Le(Me);if(t!=null)return t;let a;{const O=document.querySelector('meta[name="external-controller"]');((f=O==null?void 0:O.content)==null?void 0:f.match(/^https?:/))!=null&&(a=new URL(O.content))}const o=new URLSearchParams(n.search),r=(E=(h=(m=o.get("host"))!=null?m:(i=s==null?void 0:s[0])==null?void 0:i.hostname)!=null?h:a==null?void 0:a.hostname)!=null?E:"127.0.0.1",l=(L=(A=(F=o.get("port"))!=null?F:(w=s==null?void 0:s[0])==null?void 0:w.port)!=null?A:a==null?void 0:a.port)!=null?L:"9090",c=(V=(I=(P=o.get("secret"))!=null?P:(k=s==null?void 0:s[0])==null?void 0:k.secret)!=null?I:a==null?void 0:a.username)!=null?V:"",u=((J=o.get("protocol"))!=null?J:r==="127.0.0.1")?"http:":(j=a==null?void 0:a.protocol)!=null?j:window.location.protocol;return{hostname:r,port:l,secret:c,protocol:u}}const At=_({key:"",instance:null});function $(){const{hostname:t,port:n,secret:s,protocol:a}=te(),[o,r]=T(At),l=`${a}//${t}:${n}?secret=${s}`;if(o.key===l)return o.instance;const c=new Dt(`${a}//${t}:${n}`,s);return r({key:l,instance:c}),c}const we=_(!0),$t=he("language",void 0);function S(){const[t,n]=T($t),s=d.exports.useMemo(()=>t!=null?t:kt(),[t]),a=d.exports.useCallback(function(o){function r(l){return lt(Re[s][o],l)}return{t:r}},[s]);return{lang:s,locales:St,setLang:n,translation:a}}const Ue=_({version:"",premium:!1});function ce(){const[t,n]=T(Ue),s=$(),a=Ee(we);return G([s],async function(){const o=await le.fromPromise(s.getVersion(),r=>r);a(o.isOk()),n(o.isErr()?{version:"",premium:!1}:{version:o.value.data.version,premium:!!o.value.data.premium})}),t}function Oe(){const[{premium:t}]=T(Ue),n=$(),{data:s,mutate:a}=G(["/providers/rule",n,t],async()=>{if(!t)return[];const o=await n.getRuleProviders();return Object.keys(o.data.providers).map(r=>o.data.providers[r])});return{providers:s!=null?s:[],update:a}}const Lt=he("profile",{breakConnections:!1});function ze(){const[t,n]=T(Lt),s=d.exports.useCallback(a=>{n(fe(t,a))},[t,n]);return{data:t,set:ve(s)}}const We=_([]);function je(){const[t,n]=T(We),s=$(),{data:a,mutate:o}=G(["/providers/proxy",s],async()=>{const r=await s.getProxyProviders();return Object.keys(r.data.providers).map(l=>r.data.providers[l]).filter(l=>l.name!=="default").filter(l=>l.vehicleType!=="Compatible")});return d.exports.useEffect(()=>{n(a!=null?a:[])},[a,n]),{providers:t,update:o}}function Ce(){const t=$(),{data:n,mutate:s}=G(["/config",t],async()=>{var r;const o=(await t.getConfig()).data;return{port:o.port,socksPort:o["socks-port"],mixedPort:(r=o["mixed-port"])!=null?r:0,redirPort:o["redir-port"],mode:o.mode.toLowerCase(),logLevel:o["log-level"],allowLan:o["allow-lan"]}});return{general:n!=null?n:{},update:s}}const _e=Ie({proxies:[],groups:[],global:{name:"GLOBAL",type:"Selector",now:"",history:[],all:[]}});function ie(){const[t,n]=T(_e),s=ve(n),a=$(),{mutate:o}=G(["/proxies",a],async()=>{const l=await a.getProxies(),c=l.data.proxies.GLOBAL;c.name="GLOBAL";const u=new Set(["Selector","URLTest","Fallback","LoadBalance"]),f=new Set(["DIRECT","REJECT","GLOBAL"]),i=c.all.filter(E=>!f.has(E)).map(E=>D(b({},l.data.proxies[E]),{name:E})),[m,h]=bt(i,E=>!u.has(E.type));s({proxies:m,groups:h,global:c})}),r=d.exports.useCallback((l,c)=>{s(u=>{l==="GLOBAL"&&(u.global.now=c);for(const f of u.groups)f.name===l&&(f.now=c)})},[s]);return{proxies:t.proxies,groups:t.groups,global:t.global,update:o,markProxySelected:r,set:s}}const It=_(t=>{const n=t(_e),s=t(We),a=new Map;for(const o of n.proxies)a.set(o.name,o);for(const o of s)for(const r of o.proxies)a.set(r.name,r);return a});function Ge(){const{data:t,mutate:n}=G("/clashx",async()=>{var o,r;if(!X())return{isClashX:!1,startAtLogin:!1,systemProxy:!1};const s=(o=await(N==null?void 0:N.getStartAtLogin()))!=null?o:!1,a=(r=await(N==null?void 0:N.isSystemProxySet()))!=null?r:!1;return{startAtLogin:s,systemProxy:a,isClashX:!0}});return{data:t,update:n}}const Bt=Ie([]);function Tt(){const[t,n]=T(Bt),s=ve(n),a=$();async function o(){const r=await a.getRules();s(r.data.rules)}return{rules:t,update:o}}const Rt=_({key:"",instance:null});function Ve(){var i,m;const t=te(),{general:n}=Ce(),s=ce(),[a,o]=T(Rt);if(!s.version||!n.logLevel)return null;const r=!!s.version||!0,l=`${t.protocol}//${t.hostname}:${t.port}/logs?level=${(i=n.logLevel)!=null?i:""}&useWebsocket=${r}&secret=${t.secret}`;if(a.key===l)return a.instance;const c=a.instance,u=`${t.protocol}//${t.hostname}:${t.port}/logs?level=${(m=n.logLevel)!=null?m:""}`,f=new He({url:u,bufferLength:200,token:t.secret,useWebsocket:r});return o({key:l,instance:f}),c!=null&&c.destory(),f}function Ht(){const t=te(),n=ce(),s=!!n.version||!0,a=`${t.protocol}//${t.hostname}:${t.port}/connections`;return d.exports.useMemo(()=>n.version?new He({url:a,bufferLength:200,token:t.secret,useWebsocket:s}):null,[t.secret,a,s,n.version])}function Mt(t){const{className:n,data:s,onClick:a,select:o,canClick:r,errSet:l,rowHeight:c}=t,{translation:u}=S(),{t:f}=u("Proxies"),[i,m]=d.exports.useState(!1),[h,E]=d.exports.useState(!1),w=d.exports.useRef(null);d.exports.useLayoutEffect(()=>{var P,I;E(((I=(P=w==null?void 0:w.current)==null?void 0:P.offsetHeight)!=null?I:0)>30)},[]);const F=i?"auto":c,A=r?a:H;function L(){m(!i)}const k=s.map(P=>{const I=x({"tags-selected":o===P,"cursor-pointer":r,error:l==null?void 0:l.has(P)});return e.createElement("li",{className:I,key:P,onClick:()=>A(P)},P)});return e.createElement("div",{className:x("flex items-start overflow-y-hidden",n),style:{height:F}},e.createElement("ul",{ref:w,className:x("tags",{expand:i})},k),h&&e.createElement("span",{className:"h-7 px-5 select-none cursor-pointer leading-7",onClick:L},f(i?"collapseText":"expandText")))}function Y(t){const{className:n,style:s,value:a="",align:o="center",inside:r=!1,autoFocus:l=!1,type:c="text",disabled:u=!1,onChange:f=H,onBlur:i=H,onEnter:m=H}=t,h=x("input",`text-${o}`,{"focus:shadow-none":r},n);function E(w){w.code==="Enter"&&m(w)}return e.createElement("input",{disabled:u,className:h,style:s,value:a,autoFocus:l,type:c,onChange:w=>f(w.target.value,w),onBlur:i,onKeyDown:E})}function Je(t){const{show:n=!0,title:s="Modal",size:a="small",footer:o=!0,onOk:r=H,onClose:l=H,bodyClassName:c,bodyStyle:u,className:f,style:i,children:m}=t,{translation:h}=S(),{t:E}=h("Modal"),w=d.exports.useRef(document.createElement("div")),F=d.exports.useRef(null);d.exports.useLayoutEffect(()=>{const k=w.current;return document.body.appendChild(k),()=>{document.body.removeChild(k)}},[]);function A(k){k.target===F.current&&l()}const L=e.createElement("div",{className:x("modal-mask",{"modal-show":n}),ref:F,onMouseDown:A},e.createElement("div",{className:x("modal",`modal-${a}`,f),style:i},e.createElement("div",{className:"modal-title"},s),e.createElement("div",{className:x("modal-body",c),style:u},m),o&&e.createElement("div",{className:"footer"},e.createElement(be,{onClick:()=>l()},E("cancel")),e.createElement(be,{type:"primary",onClick:()=>r()},E("ok")))));return ye.exports.createPortal(L,w.current)}const Ut={success:"check",info:"info",warning:"info",error:"close"};function Ot(t){const{message:n="",type:s="info",inside:a=!1,children:o,className:r,style:l}=t,c=x("alert",`alert-${a?"note":"box"}-${s}`,r);return e.createElement("div",{className:c,style:l},e.createElement("span",{className:"alert-icon"},e.createElement(R,{type:Ut[s],size:26})),n?e.createElement("p",{className:"alert-message"},n):e.createElement("div",{className:"alert-message"},o))}function be(t){const{type:n="normal",onClick:s=H,children:a,className:o,style:r,disiabled:l}=t,c=x("button",`button-${n}`,o,{"button-disabled":l});return e.createElement("button",{className:c,style:r,onClick:s,disabled:l},a)}function ue(t){const[n,s]=ct(t),a=d.exports.useMemo(()=>{function o(r,l){typeof r=="string"?s(c=>{const u=r,f=l;c[u]=f}):typeof r=="function"?s(r):typeof r=="object"&&s(c=>{const u=r;for(const f of Object.keys(u)){const i=f;c[i]=u[i]}})}return o},[s]);return[n,a]}function zt(t,n=0){if(t.length<2)throw new Error("List requires at least two elements");const[s,a]=d.exports.useState(n);function o(){a((s+1)%t.length)}return{current:d.exports.useMemo(()=>t[s],[t,s]),next:o}}function Ne(t=!1){const[n,s]=d.exports.useState(t);function a(){s(!1)}function o(){s(!0)}return{visible:n,hide:a,show:o}}function Xe(t){const{className:n,checked:s=!1,onChange:a=H}=t,o=x("checkbox",{checked:s},n);function r(){a(!s)}return e.createElement("div",{className:o,onClick:r},e.createElement(R,{className:"checkbox-icon",type:"check",size:18}),e.createElement("div",null,t.children))}function me(t){const{color:n,className:s,style:a}=t,o=x("tag",s),r=b({color:n},a),l=D(b({},t),{className:o,style:r});return e.createElement("span",b({},l),t.children)}function Wt(t){const n=x("spinner",t.className);return e.createElement("div",{className:n},e.createElement("div",{className:"spinner-circle"},e.createElement("div",{className:"spinner-inner"})),e.createElement("div",{className:"spinner-circle"},e.createElement("div",{className:"spinner-inner"})),e.createElement("div",{className:"spinner-circle"},e.createElement("div",{className:"spinner-inner"})),e.createElement("div",{className:"spinner-circle"},e.createElement("div",{className:"spinner-inner"})),e.createElement("div",{className:"spinner-circle"},e.createElement("div",{className:"spinner-inner"})))}function Ye(t){const n=x("loading","visible",t.className);return t.visible?e.createElement("div",{className:n},e.createElement(Wt,{className:t.spinnerClassName})):null}function jt(t){var o,r,l;const n=d.exports.useRef(document.createElement("div"));d.exports.useLayoutEffect(()=>{const c=n.current;return document.body.appendChild(c),()=>{document.body.removeChild(c)}},[]);const s="absolute h-full right-0 transition-transform transform translate-x-full duration-100 pointer-events-auto",a=e.createElement("div",{className:x(t.className,"absolute inset-0 pointer-events-none z-9999")},e.createElement(U,{className:x(s,{"translate-x-0":t.visible}),style:{width:(o=t.width)!=null?o:400}},t.children));return ye.exports.createPortal(a,(l=(r=t.containerRef)==null?void 0:r.current)!=null?l:n.current)}xe.extend(it);function Pe(t,n){const s=n==="en_US"?"en":"zh-cn";return xe().locale(s).from(t)}var Se;(function(t){t.Domain="Domain",t.DomainSuffix="DomainSuffix",t.DomainKeyword="DomainKeyword",t.GeoIP="GeoIP",t.IPCIDR="IPCIDR",t.SrcIPCIDR="SrcIPCIDR",t.SrcPort="SrcPort",t.DstPort="DstPort",t.MATCH="MATCH",t.RuleSet="RuleSet"})(Se||(Se={}));function _t(t){const{translation:n}=S(),s=d.exports.useMemo(()=>n("Connections").t,[n]),{className:a,style:o}=t,r=x("flex flex-wrap px-1",a);function l(c){var u;(u=t.onChange)==null||u.call(t,c)}return e.createElement("div",{className:r,style:o},e.createElement("div",{className:x("connections-devices-item pt-2 mb-2",{selected:t.selected===""}),onClick:()=>l("")},s("filter.all")),t.devices.map(c=>e.createElement("div",{key:c.label,className:x("connections-devices-item pt-2 mb-2",{selected:t.selected===c.label}),onClick:()=>l(c.label)},c.label," (",c.number,")")))}function Gt(t){var a,o,r,l,c,u,f,i,m,h,E;const{translation:n}=S(),s=d.exports.useMemo(()=>n("Connections").t,[n]);return e.createElement("div",{className:x(t.className,"text-sm flex flex-col")},e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.id")),e.createElement("span",{className:"font-mono"},t.connection.id)),e.createElement("div",{className:"flex my-3 justify-between"},e.createElement("div",{className:"flex flex-1"},e.createElement("span",{className:"font-bold w-16"},s("info.network")),e.createElement("span",{className:"font-mono"},(a=t.connection.metadata)==null?void 0:a.network)),e.createElement("div",{className:"flex flex-1"},e.createElement("span",{className:"font-bold w-16"},s("info.inbound")),e.createElement("span",{className:"font-mono"},(o=t.connection.metadata)==null?void 0:o.type))),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.host")),e.createElement("span",{className:"font-mono flex-1 break-all"},((r=t.connection.metadata)==null?void 0:r.host)?`${t.connection.metadata.host}:${(l=t.connection.metadata)==null?void 0:l.destinationPort}`:s("info.hostEmpty"))),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.dstIP")),e.createElement("span",{className:"font-mono"},((c=t.connection.metadata)==null?void 0:c.destinationIP)?`${t.connection.metadata.destinationIP}:${(u=t.connection.metadata)==null?void 0:u.destinationPort}`:s("info.hostEmpty"))),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.srcIP")),e.createElement("span",{className:"font-mono"},`${(f=t.connection.metadata)==null?void 0:f.sourceIP}:${(i=t.connection.metadata)==null?void 0:i.sourcePort}`)),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.rule")),e.createElement("span",{className:"font-mono"},t.connection.rule&&`${t.connection.rule}${t.connection.rulePayload&&`(${t.connection.rulePayload})`}`)),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.chains")),e.createElement("span",{className:"font-mono flex-1 break-all"},(m=t.connection.chains)==null?void 0:m.slice().reverse().join(" / "))),e.createElement("div",{className:"flex my-3 justify-between"},e.createElement("div",{className:"flex flex-1"},e.createElement("span",{className:"font-bold w-16"},s("info.upload")),e.createElement("span",{className:"font-mono"},M((h=t.connection.upload)!=null?h:0))),e.createElement("div",{className:"flex flex-1"},e.createElement("span",{className:"font-bold w-16"},s("info.download")),e.createElement("span",{className:"font-mono"},M((E=t.connection.download)!=null?E:0)))),e.createElement("div",{className:"flex my-3"},e.createElement("span",{className:"font-bold w-16"},s("info.status")),e.createElement("span",{className:"font-mono"},t.connection.completed?e.createElement("span",{className:"text-red"},s("info.closed")):e.createElement("span",{className:"text-green"},s("info.opening")))))}class Vt{constructor(){this.connections=new Map,this.saveDisconnection=!1}appendToSet(n){var a;const s=n.reduce((o,r)=>o.set(r.id,r),new Map);for(const o of this.connections.keys())if(!s.has(o))if(!this.saveDisconnection)this.connections.delete(o);else{const r=this.connections.get(o);r!=null&&this.connections.set(o,fe(r,l=>{l.completed=!0,l.uploadSpeed=0,l.downloadSpeed=0}))}for(const o of s.keys()){if(!this.connections.has(o)){this.connections.set(o,D(b({},s.get(o)),{uploadSpeed:0,downloadSpeed:0}));continue}const r=this.connections.get(o),l=s.get(o);(a=this.connections)==null||a.set(o,D(b({},l),{uploadSpeed:l.upload-r.upload,downloadSpeed:l.download-r.download}))}}toggleSave(){var n,s;if(this.saveDisconnection){this.saveDisconnection=!1;for(const a of this.connections.keys())((s=(n=this.connections)==null?void 0:n.get(a))==null?void 0:s.completed)&&this.connections.delete(a)}else this.saveDisconnection=!0;return this.saveDisconnection}getConnections(){return[...this.connections.values()]}}function Jt(){const t=d.exports.useMemo(()=>new Vt,[]),n=d.exports.useRef(!0),[s,a]=d.exports.useState([]),[o,r]=d.exports.useState(!1),l=d.exports.useCallback(function(u){t.appendToSet(u),n.current&&a(t.getConnections()),n.current=!n.current},[t]),c=d.exports.useCallback(function(){const u=t.toggleSave();r(u),u||a(t.getConnections()),n.current=!0},[t]);return{connections:s,feed:l,toggleSave:c,save:o}}var y;(function(t){t.Host="host",t.Network="network",t.Type="type",t.Chains="chains",t.Rule="rule",t.Speed="speed",t.Upload="upload",t.Download="download",t.SourceIP="sourceIP",t.Time="time"})(y||(y={}));const Xt=new Set([y.Network,y.Type,y.Rule,y.Speed,y.Upload,y.Download,y.SourceIP,y.Time]);function Yt(t,n){switch(!0){case(t===0&&n===0):return"-";case(t!==0&&n!==0):return`\u2191 ${M(t)}/s \u2193 ${M(n)}/s`;case t!==0:return`\u2191 ${M(t)}/s`;default:return`\u2193 ${M(n)}/s`}}function qt(){const{translation:t,lang:n}=S(),s=d.exports.useMemo(()=>t("Connections").t,[t]),a=Ht(),o=$(),r=d.exports.useRef(null),[l,c]=ue({uploadTotal:0,downloadTotal:0}),{visible:u,show:f,hide:i}=Ne();function m(){o.closeAllConnections().finally(()=>i())}const{connections:h,feed:E,save:w,toggleSave:F}=Jt(),A=d.exports.useMemo(()=>h.map(p=>({id:p.id,host:`${p.metadata.host||p.metadata.destinationIP}:${p.metadata.destinationPort}`,chains:p.chains.slice().reverse().join(" / "),rule:p.rule===Se.RuleSet?`${p.rule}(${p.rulePayload})`:p.rule,time:new Date(p.start).getTime(),upload:p.upload,download:p.download,sourceIP:p.metadata.sourceIP,type:p.metadata.type,network:p.metadata.network.toUpperCase(),speed:{upload:p.uploadSpeed,download:p.downloadSpeed},completed:!!p.completed,original:p})),[h]),L=d.exports.useMemo(()=>{const p=ut(h,"metadata.sourceIP");return Object.keys(p).map(C=>({label:C,number:p[C].length})).sort((C,v)=>C.label.localeCompare(v.label))},[h]),k=d.exports.useRef(null),{x:P}=mt(k),I=d.exports.useMemo(()=>[{Header:s(`columns.${y.Host}`),accessor:y.Host,minWidth:260,width:260},{Header:s(`columns.${y.Network}`),accessor:y.Network,minWidth:80,width:80},{Header:s(`columns.${y.Type}`),accessor:y.Type,minWidth:120,width:120},{Header:s(`columns.${y.Chains}`),accessor:y.Chains,minWidth:200,width:200},{Header:s(`columns.${y.Rule}`),accessor:y.Rule,minWidth:140,width:140},{id:y.Speed,Header:s(`columns.${y.Speed}`),accessor(p){return[p.speed.upload,p.speed.download]},sortType(p,C){const v=p.original.speed,Z=C.original.speed;return v.download===Z.download?v.upload-Z.upload:v.download-Z.download},minWidth:200,width:200,sortDescFirst:!0},{Header:s(`columns.${y.Upload}`),accessor:y.Upload,minWidth:100,width:100,sortDescFirst:!0},{Header:s(`columns.${y.Download}`),accessor:y.Download,minWidth:100,width:100,sortDescFirst:!0},{Header:s(`columns.${y.SourceIP}`),accessor:y.SourceIP,minWidth:140,width:140,filter:"equals"},{Header:s(`columns.${y.Time}`),accessor:y.Time,minWidth:120,width:120,sortType(p,C){return C.original.time-p.original.time}}],[s]);d.exports.useLayoutEffect(()=>{function p(C){for(const v of C)c({uploadTotal:v.uploadTotal,downloadTotal:v.downloadTotal}),E(v.connections)}return a==null||a.subscribe("data",p),()=>{a==null||a.unsubscribe("data",p),a==null||a.destory()}},[a,E,c]);const{getTableProps:V,getTableBodyProps:J,headerGroups:j,rows:O,prepareRow:de,setFilter:q}=ee.exports.useTable({columns:I,data:A,autoResetSortBy:!1,autoResetFilters:!1,initialState:{sortBy:[{id:y.Time,desc:!1}]}},ee.exports.useResizeColumns,ee.exports.useBlockLayout,ee.exports.useFilters,ee.exports.useSortBy),K=d.exports.useMemo(()=>j[0],[j]),z=d.exports.useCallback(function(p){switch(p.column.id){case y.Speed:return Yt(p.value[0],p.value[1]);case y.Upload:case y.Download:return M(p.value);case y.Time:return Pe(new Date(p.value),n);default:return p.value}},[n]),[pe,se]=d.exports.useState("");function oe(p){se(p),q==null||q(y.SourceIP,p||void 0)}const[B,g]=ue({visible:!1,selectedID:"",connection:{}});function ae(p){g({visible:!0,selectedID:p})}function re(){g(p=>{p.connection.completed=!0}),o.closeConnection(B.selectedID)}const Q=dt(B.connection);return d.exports.useEffect(()=>{var C;const p=(C=A.find(v=>v.id===B.selectedID))==null?void 0:C.original;p?g(v=>{v.connection=b({},p),B.selectedID===Q.current.id&&(v.connection.completed=Q.current.completed)}):Object.keys(Q.current).length!==0&&!Q.current.completed&&g(v=>{v.connection.completed=!0})},[A,B.selectedID,Q,g]),e.createElement("div",{className:"page"},e.createElement(W,{title:s("title")},e.createElement("span",{className:"cursor-default flex-1 connections-filter"},`(${s("total.text")}: ${s("total.upload")} ${M(l.uploadTotal)} ${s("total.download")} ${M(l.downloadTotal)})`),e.createElement(Xe,{className:"connections-filter",checked:w,onChange:F},s("keepClosed")),e.createElement(R,{className:"connections-filter dangerous",onClick:f,type:"close-all",size:20})),L.length>1&&e.createElement(_t,{devices:L,selected:pe,onChange:oe}),e.createElement(U,{ref:r,className:"connections-card relative"},e.createElement("div",D(b({},V()),{className:"flex flex-col flex-1 w-full overflow-auto",style:{flexBasis:0},ref:k}),e.createElement("div",D(b({},K.getHeaderGroupProps()),{className:"connections-header"}),K.headers.map((p,C)=>{const v=p,Z=v.id;return e.createElement("div",D(b({},v.getHeaderProps()),{className:x("connections-th",{resizing:v.isResizing,fixed:P>0&&v.id===y.Host}),key:Z}),e.createElement("div",b({},v.getSortByToggleProps()),p.render("Header"),v.isSorted?v.isSortedDesc?" \u2193":" \u2191":null),C!==K.headers.length-1&&e.createElement("div",D(b({},v.getResizerProps()),{className:"connections-resizer"})))})),e.createElement("div",D(b({},J()),{className:"flex-1"}),O.map(p=>(de(p),e.createElement("div",D(b({},p.getRowProps()),{className:"cursor-default connections-item select-none",key:p.original.id,onClick:()=>ae(p.original.id)}),p.cells.map(C=>{const v=x("connections-block",{"text-center":Xt.has(C.column.id),completed:p.original.completed},{fixed:P>0&&C.column.id===y.Host});return e.createElement("div",D(b({},C.getCellProps()),{className:v,key:C.column.id}),z(C))}))))))),e.createElement(Je,{title:s("closeAll.title"),show:u,onClose:i,onOk:m},s("closeAll.content")),e.createElement(jt,{containerRef:r,visible:B.visible,width:450},e.createElement("div",{className:"flex h-8 justify-between items-center"},e.createElement("span",{className:"font-bold pl-3"},s("info.title")),e.createElement(R,{type:"close",size:16,className:"cursor-pointer",onClick:()=>g("visible",!1)})),e.createElement(Gt,{className:"mt-3 px-5",connection:B.connection}),e.createElement("div",{className:"flex mt-3 pr-3 justify-end"},e.createElement(be,{type:"danger",disiabled:B.connection.completed,onClick:()=>re()},s("info.closeConnection")))))}function Kt(){const{translation:t}=S(),{t:n}=t("Settings"),{hostname:s,port:a,secret:o}=te(),[r,l]=T(we),[c,u]=ue({hostname:"",port:"",secret:""});d.exports.useEffect(()=>{u({hostname:s,port:a,secret:o})},[s,a,o,u]);const f=Ee(Me);function i(){const{hostname:m,port:h,secret:E}=c;f([{hostname:m,port:h,secret:E}])}return e.createElement(Je,{show:!r,title:n("externalControllerSetting.title"),bodyClassName:"external-controller",onClose:()=>l(!0),onOk:i},e.createElement(Ot,{type:"info",inside:!0},e.createElement("p",null,n("externalControllerSetting.note"))),e.createElement("div",{className:"flex items-center"},e.createElement("span",{className:"font-bold my-1 w-14 md:my-3"},n("externalControllerSetting.host")),e.createElement(Y,{className:"flex-1 my-1 md:my-3",align:"left",inside:!0,value:c.hostname,onChange:m=>u("hostname",m),onEnter:i})),e.createElement("div",{className:"flex items-center"},e.createElement("div",{className:"font-bold my-1 w-14 md:my-3"},n("externalControllerSetting.port")),e.createElement(Y,{className:"flex-1 my-1 w-14 md:my-3",align:"left",inside:!0,value:c.port,onChange:m=>u("port",m),onEnter:i})),e.createElement("div",{className:"flex items-center"},e.createElement("div",{className:"font-bold my-1 w-14 md:my-3"},n("externalControllerSetting.secret")),e.createElement(Y,{className:"flex-1 my-1 w-14 md:my-3",align:"left",inside:!0,value:c.secret,onChange:m=>u("secret",m),onEnter:i})))}function Qt(){var u,f;const t=d.exports.useRef(null),n=d.exports.useRef([]),[s,a]=d.exports.useState([]),{translation:o}=S(),{t:r}=o("Logs"),l=Ve(),c=d.exports.useRef((f=(u=t.current)==null?void 0:u.scrollHeight)!=null?f:0);return d.exports.useLayoutEffect(()=>{var m;const i=t.current;i!=null&&c.current===i.scrollTop+i.clientHeight&&(i.scrollTop=i.scrollHeight-i.clientHeight),c.current=(m=i==null?void 0:i.scrollHeight)!=null?m:0}),d.exports.useEffect(()=>{function i(m){n.current=n.current.slice().concat(m.map(h=>D(b({},h),{time:new Date}))),a(n.current)}return l!=null&&(l.subscribe("data",i),n.current=l.buffer(),a(n.current)),()=>l==null?void 0:l.unsubscribe("data",i)},[l]),e.createElement("div",{className:"page"},e.createElement(W,{title:r("title")}),e.createElement(U,{className:"flex flex-col flex-1 mt-2.5 md:mt-4"},e.createElement("ul",{className:"logs-panel",ref:t},s.map((i,m)=>e.createElement("li",{className:"leading-5 inline-block",key:m},e.createElement("span",{className:"mr-4 text-gray-400 text-opacity-90"},xe(i.time).format("YYYY-MM-DD HH:mm:ss")),e.createElement("span",null,"[",i.type,"] ",i.payload))))))}var ne;(function(t){t.SPEED_NOTIFY="speed-notify"})(ne||(ne={}));class Zt{constructor(){this.EE=new $e}notifySpeedTest(){this.EE.emit(ne.SPEED_NOTIFY)}subscribe(n,s){this.EE.addListener(n,s)}unsubscribe(n,s){this.EE.removeListener(n,s)}}var ke=new Zt;const qe={"#909399":0,"#00c520":260,"#ff9a28":600,"#ff3e5e":1/0};function Ke(t){const{config:n,className:s}=t,{set:a}=ie(),o=$(),r=d.exports.useCallback(async m=>{var E;if(X())return(E=await(N==null?void 0:N.getProxyDelay(m)))!=null?E:0;const{data:{delay:h}}=await o.getProxyDelay(m);return h},[o]),l=d.exports.useCallback(async function(){const m=await le.fromPromise(r(n.name),E=>E),h=m.isErr()?0:m.value;a(E=>{const w=E.proxies.find(F=>F.name===n.name);w!=null&&w.history.push({time:Date.now().toString(),delay:h})})},[n.name,r,a]),c=d.exports.useMemo(()=>{var m;return((m=n.history)==null?void 0:m.length)?n.history.slice(-1)[0].delay:0},[n]);d.exports.useLayoutEffect(()=>{const m=()=>{l()};return ke.subscribe(ne.SPEED_NOTIFY,m),()=>ke.unsubscribe(ne.SPEED_NOTIFY,m)},[l]);const u=d.exports.useMemo(()=>c===0,[c]),f=d.exports.useMemo(()=>Object.keys(qe).find(m=>c<=qe[m]),[c]),i=u?void 0:f;return e.createElement("div",{className:x("proxy-item",{"proxy-error":u},s)},e.createElement("span",{className:"proxy-type",style:{backgroundColor:i}},n.type),e.createElement("p",{className:"proxy-name"},n.name),e.createElement("p",{className:"proxy-delay"},c===0?"-":`${c}ms`))}function en(t){const{markProxySelected:n}=ie(),[s]=T(It),{data:a}=ze(),o=$(),{config:r}=t;async function l(f){if(await o.changeProxySelected(t.config.name,f),n(t.config.name,f),a.breakConnections){const i=[],m=await o.getConnections();for(const h of m.data.connections)h.chains.includes(t.config.name)&&i.push(h.id);await Promise.all(i.map(h=>o.closeConnection(h)))}}const c=d.exports.useMemo(()=>{var i;const f=new Set;for(const m of r.all){const h=(i=s.get(m))==null?void 0:i.history;(h==null?void 0:h.length)&&h.slice(-1)[0].delay===0&&f.add(m)}return f},[r.all,s]),u=r.type==="Selector";return e.createElement("div",{className:"proxy-group"},e.createElement("div",{className:"flex h-10 mt-4 w-full items-center justify-between md:h-15 md:mt-0 md:w-auto "},e.createElement("span",{className:"h-6 px-5 w-35 overflow-hidden overflow-ellipsis whitespace-nowrap md:w-30"},r.name),e.createElement(me,{className:"mr-5 md:mr-0"},r.type)),e.createElement("div",{className:"flex-1 py-2 md:py-4"},e.createElement(Mt,{className:"ml-5 md:ml-8",data:r.all,onClick:l,errSet:c,select:r.now,canClick:u,rowHeight:30})))}function tn(t){const{update:n}=je(),{translation:s,lang:a}=S(),o=$(),{provider:r}=t,{t:l}=s("Proxies"),{visible:c,hide:u,show:f}=Ne();function i(){f(),o.healthCheckProvider(r.name).then(async()=>await n()).finally(()=>u())}function m(){f(),o.updateProvider(r.name).then(async()=>await n()).finally(()=>u())}const h=d.exports.useMemo(()=>r.proxies.slice().sort((E,w)=>-1*De(E,w)),[r.proxies]);return e.createElement(U,{className:"proxy-provider"},e.createElement(Ye,{visible:c}),e.createElement("div",{className:"flex flex-col justify-between md:flex-row md:items-center "},e.createElement("div",{className:"flex items-center"},e.createElement("span",{className:"mr-6"},r.name),e.createElement(me,null,r.vehicleType)),e.createElement("div",{className:"flex pt-3 items-center md:pt-0"},r.updatedAt&&e.createElement("span",{className:"text-sm"},`${l("providerUpdateTime")}: ${Pe(new Date(r.updatedAt),a)}`),e.createElement(R,{className:"cursor-pointer text-red pl-5",type:"healthcheck",size:18,onClick:i}),e.createElement(R,{className:"cursor-pointer pl-5",type:"update",size:18,onClick:m}))),e.createElement("ul",{className:"proxies-list"},h.map(E=>e.createElement("li",{key:E.name},e.createElement(Ke,{className:"proxy-provider-item",config:E})))))}var Qe;(function(t){t[t.None=0]="None",t[t.Asc=1]="Asc",t[t.Desc=2]="Desc"})(Qe||(Qe={}));const nn={[0]:"sort",[1]:"sort-ascending",[2]:"sort-descending"};function De(t,n){const s=t.history.length>0?t.history.slice(-1)[0].delay:0;return((n.history.length>0?n.history.slice(-1)[0].delay:0)||Number.MAX_SAFE_INTEGER)-(s||Number.MAX_SAFE_INTEGER)}function sn(){const{groups:t,global:n}=ie(),{data:s,set:a}=ze(),{general:o}=Ce(),{translation:r}=S(),{t:l}=r("Proxies"),c=d.exports.useMemo(()=>o.mode==="global"?[n]:t,[o,t,n]);return e.createElement(e.Fragment,null,c.length!==0&&e.createElement("div",{className:"flex flex-col"},e.createElement(W,{title:l("groupTitle")},e.createElement(Xe,{className:"cursor-pointer text-sm text-shadow-primary text-primary-600",checked:s.breakConnections,onChange:u=>a("breakConnections",u)},l("breakConnectionsText"))),e.createElement(U,{className:"my-2.5 p-0 md:my-4"},e.createElement("ul",{className:"list-none"},c.map(u=>e.createElement("li",{className:"proxies-group-item",key:u.name},e.createElement(en,{config:u})))))))}function on(){const{providers:t}=je(),{translation:n}=S(),{t:s}=n("Proxies");return e.createElement(e.Fragment,null,t.length!==0&&e.createElement("div",{className:"flex flex-col"},e.createElement(W,{title:s("providerTitle")}),e.createElement("ul",{className:"list-none"},t.map(a=>e.createElement("li",{className:"my-2.5 md:my-4",key:a.name},e.createElement(tn,{provider:a}))))))}function an(){const{proxies:t}=ie(),{translation:n}=S(),{t:s}=n("Proxies");function a(){ke.notifySpeedTest()}const{current:o,next:r}=zt([1,2,0]),l=d.exports.useMemo(()=>{switch(o){case 2:return t.slice().sort((u,f)=>De(u,f));case 1:return t.slice().sort((u,f)=>-1*De(u,f));default:return t.slice()}},[o,t]),c=r;return e.createElement(e.Fragment,null,l.length!==0&&e.createElement("div",{className:"flex flex-col"},e.createElement(W,{title:s("title")},e.createElement(R,{className:"ml-3",type:nn[o],onClick:c,size:20}),e.createElement(R,{className:"ml-3",type:"speed",size:20}),e.createElement("span",{className:"proxies-speed-test",onClick:a},s("speedTestText"))),e.createElement("ul",{className:"proxies-list"},l.map(u=>e.createElement("li",{key:u.name},e.createElement(Ke,{config:u}))))))}function rn(){return e.createElement("div",{className:"page"},e.createElement(sn,null),e.createElement(on,null),e.createElement(an,null))}function ln(t){const{update:n}=Oe(),{translation:s,lang:a}=S(),o=$(),{provider:r}=t,{t:l}=s("Rules"),{visible:c,hide:u,show:f}=Ne();function i(){f(),o.updateRuleProvider(r.name).then(async()=>await n()).finally(()=>u())}const m=x("rule-provider-icon",{"rule-provider-loading":c});return e.createElement("div",{className:"rule-provider"},e.createElement("div",{className:"rule-provider-header"},e.createElement("div",{className:"rule-provider-header-part"},e.createElement("span",{className:"rule-provider-name"},r.name),e.createElement(me,null,r.vehicleType),e.createElement(me,{className:"rule-provider-behavior"},r.behavior),e.createElement("span",{className:"rule-provider-update"},`${l("ruleCount")}: ${r.ruleCount}`)),e.createElement("div",{className:"rule-provider-header-part"},r.updatedAt&&e.createElement("span",{className:"rule-provider-update"},`${l("providerUpdateTime")}: ${Pe(new Date(r.updatedAt),a)}`),e.createElement(R,{className:m,type:"update",size:18,onClick:i}))))}function cn(){const{providers:t}=Oe(),{translation:n}=S(),{t:s}=n("Rules");return e.createElement(e.Fragment,null,t.length!==0&&e.createElement("div",{className:"flex flex-col"},e.createElement(W,{title:s("providerTitle")}),e.createElement(U,{className:"divide-y rounded shadow-primary mt-4 p-0"},t.map(a=>e.createElement(ln,{key:a.name,provider:a})))))}function un(){const{rules:t,update:n}=Tt(),{translation:s}=S(),{t:a}=s("Rules");G("rules",n);function o({index:r,style:l}){const c=t[r];return e.createElement("li",{className:"rule-item",style:l},e.createElement("div",{className:"flex py-1"},e.createElement("div",{className:"text-center w-40 rule-type"},c.type),e.createElement("div",{className:"flex-1 text-center payload"},c.payload),e.createElement("div",{className:"text-center w-40 rule-proxy"},c.proxy)))}return e.createElement("div",{className:"page"},e.createElement(cn,null),e.createElement(W,{className:"not-first:mt-7.5",title:a("title")}),e.createElement(U,{className:"flex flex-col flex-1 mt-2.5 p-0 md:mt-4 focus:outline-none"},e.createElement(pt,{className:"min-h-120"},({height:r,width:l})=>e.createElement(ft,{height:r,width:l,itemCount:t.length,itemSize:50},o))))}const mn=[{label:"\u4E2D\u6587",value:"zh_CN"},{label:"English",value:"en_US"}];function dn(){var se,oe,B;const{premium:t}=ce(),{data:n,update:s}=Ge(),{general:a,update:o}=Ce(),r=Ee(we),l=te(),{translation:c,setLang:u,lang:f}=S(),{t:i}=c("Settings"),m=$(),[h,E]=ue({socks5ProxyPort:7891,httpProxyPort:7890,mixedProxyPort:0});d.exports.useEffect(()=>{var g,ae,re;E("socks5ProxyPort",(g=a==null?void 0:a.socksPort)!=null?g:0),E("httpProxyPort",(ae=a==null?void 0:a.port)!=null?ae:0),E("mixedProxyPort",(re=a==null?void 0:a.mixedPort)!=null?re:0)},[a,E]);async function w(g){await m.updateConfig({mode:g}),await o()}async function F(g){await(N==null?void 0:N.setStartAtLogin(g)),await s()}async function A(g){await(N==null?void 0:N.setSystemProxy(g)),await s()}function L(g){u(g)}async function k(){await m.updateConfig({port:h.httpProxyPort}),await o()}async function P(){await m.updateConfig({"socks-port":h.socks5ProxyPort}),await o()}async function I(){await m.updateConfig({"mixed-port":h.mixedProxyPort}),await o()}async function V(g){await m.updateConfig({"allow-lan":g}),await o()}const{hostname:J,port:j}=l,{allowLan:O,mode:de}=a,q=(se=n==null?void 0:n.startAtLogin)!=null?se:!1,K=(oe=n==null?void 0:n.systemProxy)!=null?oe:!1,z=(B=n==null?void 0:n.isClashX)!=null?B:!1,pe=d.exports.useMemo(()=>{const g=[{label:i("values.global"),value:"Global"},{label:i("values.rules"),value:"Rule"},{label:i("values.direct"),value:"Direct"}];return t&&g.push({label:i("values.script"),value:"Script"}),g},[i,t]);return e.createElement("div",{className:"page"},e.createElement(W,{title:i("title")}),e.createElement(U,{className:"settings-card"},e.createElement("div",{className:"flex flex-wrap"},e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.startAtLogin")),e.createElement(ge,{disabled:!(n==null?void 0:n.isClashX),checked:q,onChange:F})),e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.language")),e.createElement(Te,{options:mn,value:f,onSelect:g=>L(g)}))),e.createElement("div",{className:"flex flex-wrap"},e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.setAsSystemProxy")),e.createElement(ge,{disabled:!z,checked:K,onChange:A})),e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.allowConnectFromLan")),e.createElement(ge,{checked:O,onChange:V})))),e.createElement(U,{className:"settings-card"},e.createElement("div",{className:"flex flex-wrap"},e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.proxyMode")),e.createElement(Te,{options:pe,value:ht(de),onSelect:w})),e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.socks5ProxyPort")),e.createElement(Y,{className:"w-28",disabled:z,value:h.socks5ProxyPort,onChange:g=>E("socks5ProxyPort",+g),onBlur:P}))),e.createElement("div",{className:"flex flex-wrap"},e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.httpProxyPort")),e.createElement(Y,{className:"w-28",disabled:z,value:h.httpProxyPort,onChange:g=>E("httpProxyPort",+g),onBlur:k})),e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.mixedProxyPort")),e.createElement(Y,{className:"w-28",disabled:z,value:h.mixedProxyPort,onChange:g=>E("mixedProxyPort",+g),onBlur:I}))),e.createElement("div",{className:"flex flex-wrap"},e.createElement("div",{className:"flex w-full py-3 px-8 items-center justify-between md:w-1/2"},e.createElement("span",{className:"font-bold label"},i("labels.externalController")),e.createElement("span",{className:x({"modify-btn":!z},"external-controller"),onClick:()=>!z&&r(!1)},`${J}:${j}`)),e.createElement("div",{className:"px-8 w-1/2"}))))}var pn="./assets/logo.b453e72f.png";function fn(t){const{routes:n}=t,{translation:s}=S(),{version:a,premium:o}=ce(),{data:r}=Ge(),{t:l}=s("SideBar"),c=n.map(({path:u,name:f,noMobile:i})=>e.createElement("li",{className:x("item",{"no-mobile":i}),key:f},e.createElement(Et,{to:u,className:({isActive:m})=>x({active:m})},l(f))));return e.createElement("div",{className:"sidebar"},e.createElement("img",{src:pn,alt:"logo",className:"sidebar-logo"}),e.createElement("ul",{className:"sidebar-menu"},c),e.createElement("div",{className:"sidebar-version"},e.createElement("span",{className:"sidebar-version-label"},"Clash",(r==null?void 0:r.isClashX)&&"X"," ",l("Version")),e.createElement("span",{className:"sidebar-version-text"},a),o&&e.createElement("span",{className:"sidebar-version-label"},"Premium")))}function hn(){Ve();const t=[{path:"/proxies",name:"Proxies",element:e.createElement(rn,null)},{path:"/logs",name:"Logs",element:e.createElement(Qt,null)},{path:"/rules",name:"Rules",element:e.createElement(un,null),noMobile:!0},{path:"/connections",name:"Connections",element:e.createElement(qt,null),noMobile:!0},{path:"/settings",name:"Settings",element:e.createElement(dn,null)}];return e.createElement("div",{className:x("app",{"not-clashx":!X()})},e.createElement(fn,{routes:t}),e.createElement("div",{className:"page-container"},e.createElement(yt,null,e.createElement(Be,{path:"/",element:e.createElement(xt,{to:"/proxies",replace:!0})}),t.map(n=>e.createElement(Be,{path:n.path,key:n.path,element:n.element})))),e.createElement(Kt,null))}function Ze(){const t=document.getElementById("root"),n=e.createElement(gt,null,e.createElement(d.exports.Suspense,{fallback:e.createElement(Ye,{visible:!0})},e.createElement(hn,null)));ye.exports.render(n,t)}X()?Ct(()=>Ze()):Ze(); diff --git a/luci-app-openclash/root/usr/share/openclash/dashboard/assets/vendor.5151d57b.js b/luci-app-openclash/root/usr/share/openclash/dashboard/assets/vendor.5151d57b.js deleted file mode 100644 index 4ac4b35fa..000000000 --- a/luci-app-openclash/root/usr/share/openclash/dashboard/assets/vendor.5151d57b.js +++ /dev/null @@ -1,83 +0,0 @@ -var li=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{},X={exports:{}},Re={};/* -object-assign -(c) Sindre Sorhus -@license MIT -*/var df=Object.getOwnPropertySymbols,iy=Object.prototype.hasOwnProperty,uy=Object.prototype.propertyIsEnumerable;function ly(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function ay(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map(function(i){return t[i]});if(r.join("")!=="0123456789")return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach(function(i){o[i]=i}),Object.keys(Object.assign({},o)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}var pf=ay()?Object.assign:function(e,t){for(var n,r=ly(e),o,i=1;i=g},o=function(){},e.unstable_forceFrameRate=function(b){0>b||125>>1,he=b[we];if(he!==void 0&&0G(Ie,ne))Pe!==void 0&&0>G(Pe,Ie)?(b[we]=Pe,b[Ue]=ne,we=Ue):(b[we]=Ie,b[Ee]=ne,we=Ee);else if(Pe!==void 0&&0>G(Pe,ne))b[we]=Pe,b[Ue]=ne,we=Ue;else break e}}return K}return null}function G(b,K){var ne=b.sortIndex-K.sortIndex;return ne!==0?ne:b.id-K.id}var B=[],oe=[],ye=1,Te=null,O=3,A=!1,N=!1,H=!1;function U(b){for(var K=T(oe);K!==null;){if(K.callback===null)j(oe);else if(K.startTime<=b)j(oe),K.sortIndex=K.expirationTime,I(B,K);else break;K=T(oe)}}function D(b){if(H=!1,U(b),!N)if(T(B)!==null)N=!0,t(z);else{var K=T(oe);K!==null&&n(D,K.startTime-b)}}function z(b,K){N=!1,H&&(H=!1,r()),A=!0;var ne=O;try{for(U(K),Te=T(B);Te!==null&&(!(Te.expirationTime>K)||b&&!e.unstable_shouldYield());){var we=Te.callback;if(typeof we=="function"){Te.callback=null,O=Te.priorityLevel;var he=we(Te.expirationTime<=K);K=e.unstable_now(),typeof he=="function"?Te.callback=he:Te===T(B)&&j(B),U(K)}else j(B);Te=T(B)}if(Te!==null)var Ee=!0;else{var Ie=T(oe);Ie!==null&&n(D,Ie.startTime-K),Ee=!1}return Ee}finally{Te=null,O=ne,A=!1}}var ee=o;e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(b){b.callback=null},e.unstable_continueExecution=function(){N||A||(N=!0,t(z))},e.unstable_getCurrentPriorityLevel=function(){return O},e.unstable_getFirstCallbackNode=function(){return T(B)},e.unstable_next=function(b){switch(O){case 1:case 2:case 3:var K=3;break;default:K=O}var ne=O;O=K;try{return b()}finally{O=ne}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=ee,e.unstable_runWithPriority=function(b,K){switch(b){case 1:case 2:case 3:case 4:case 5:break;default:b=3}var ne=O;O=b;try{return K()}finally{O=ne}},e.unstable_scheduleCallback=function(b,K,ne){var we=e.unstable_now();switch(typeof ne=="object"&&ne!==null?(ne=ne.delay,ne=typeof ne=="number"&&0we?(b.sortIndex=ne,I(oe,b),T(B)===null&&b===T(oe)&&(H?r():H=!0,n(D,ne-we))):(b.sortIndex=he,I(B,b),N||A||(N=!0,t(z))),b},e.unstable_wrapCallback=function(b){var K=O;return function(){var ne=O;O=K;try{return b.apply(this,arguments)}finally{O=ne}}}})(If);kf.exports=If;/** @license React v17.0.2 - * react-dom.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */var ci=X.exports,be=pf,Ye=kf.exports;function q(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nt}return!1}function lt(e,t,n,r,o,i,u){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=u}var Qe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Qe[e]=new lt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Qe[t]=new lt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Qe[e]=new lt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Qe[e]=new lt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Qe[e]=new lt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Qe[e]=new lt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Qe[e]=new lt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Qe[e]=new lt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Qe[e]=new lt(e,5,!1,e.toLowerCase(),null,!1,!1)});var il=/[\-:]([a-z])/g;function ul(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(il,ul);Qe[t]=new lt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(il,ul);Qe[t]=new lt(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(il,ul);Qe[t]=new lt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Qe[e]=new lt(e,1,!1,e.toLowerCase(),null,!1,!1)});Qe.xlinkHref=new lt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Qe[e]=new lt(e,1,!1,e.toLowerCase(),null,!0,!0)});function ll(e,t,n,r){var o=Qe.hasOwnProperty(t)?Qe[t]:null,i=o!==null?o.type===0:r?!1:!(!(2a||o[u]!==i[a])return` -`+o[u].replace(" at new "," at ");while(1<=u&&0<=a);break}}}finally{gl=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Xr(e):""}function wy(e){switch(e.tag){case 5:return Xr(e.type);case 16:return Xr("Lazy");case 13:return Xr("Suspense");case 19:return Xr("SuspenseList");case 0:case 2:case 15:return e=hi(e.type,!1),e;case 11:return e=hi(e.type.render,!1),e;case 22:return e=hi(e.type._render,!1),e;case 1:return e=hi(e.type,!0),e;default:return""}}function ur(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ln:return"Fragment";case Nn:return"Portal";case Kr:return"Profiler";case al:return"StrictMode";case qr:return"Suspense";case di:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case cl:return(e.displayName||"Context")+".Consumer";case sl:return(e._context.displayName||"Context")+".Provider";case fi:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case pi:return ur(e.type);case dl:return ur(e._render);case fl:t=e._payload,e=e._init;try{return ur(e(t))}catch{}}return null}function an(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function $f(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Sy(e){var t=$f(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n!="undefined"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(u){r=""+u,i.call(this,u)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(u){r=""+u},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function vi(e){e._valueTracker||(e._valueTracker=Sy(e))}function Ff(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=$f(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function mi(e){if(e=e||(typeof document!="undefined"?document:void 0),typeof e=="undefined")return null;try{return e.activeElement||e.body}catch{return e.body}}function yl(e,t){var n=t.checked;return be({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n!=null?n:e._wrapperState.initialChecked})}function Df(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=an(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function jf(e,t){t=t.checked,t!=null&&ll(e,"checked",t,!1)}function wl(e,t){jf(e,t);var n=an(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Sl(e,t.type,n):t.hasOwnProperty("defaultValue")&&Sl(e,t.type,an(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Bf(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Sl(e,t,n){(t!=="number"||mi(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function _y(e){var t="";return ci.Children.forEach(e,function(n){n!=null&&(t+=n)}),t}function _l(e,t){return e=be({children:void 0},t),(t=_y(t.children))&&(e.children=t),e}function lr(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o=n.length))throw Error(q(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:an(n)}}function Hf(e,t){var n=an(t.value),r=an(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function Wf(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}var xl={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Vf(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Cl(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Vf(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var gi,Gf=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e}(function(e,t){if(e.namespaceURI!==xl.svg||"innerHTML"in e)e.innerHTML=t;else{for(gi=gi||document.createElement("div"),gi.innerHTML=""+t.valueOf().toString()+"",t=gi.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Jr(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Zr={animationIterationCount:!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},Ey=["Webkit","ms","Moz","O"];Object.keys(Zr).forEach(function(e){Ey.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Zr[t]=Zr[e]})});function Yf(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Zr.hasOwnProperty(e)&&Zr[e]?(""+t).trim():t+"px"}function Kf(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=Yf(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var xy=be({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Rl(e,t){if(t){if(xy[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(q(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(q(60));if(!(typeof t.dangerouslySetInnerHTML=="object"&&"__html"in t.dangerouslySetInnerHTML))throw Error(q(61))}if(t.style!=null&&typeof t.style!="object")throw Error(q(62))}}function Pl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Ol(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Tl=null,ar=null,sr=null;function qf(e){if(e=wo(e)){if(typeof Tl!="function")throw Error(q(280));var t=e.stateNode;t&&(t=zi(t),Tl(e.stateNode,e.type,t))}}function Qf(e){ar?sr?sr.push(e):sr=[e]:ar=e}function Xf(){if(ar){var e=ar,t=sr;if(sr=ar=null,qf(e),t)for(e=0;er?0:1<n;n++)t.push(e);return t}function Ci(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,e=e.eventTimes,t=31-dn(t),e[t]=n}var dn=Math.clz32?Math.clz32:Dy,$y=Math.log,Fy=Math.LN2;function Dy(e){return e===0?32:31-($y(e)/Fy|0)|0}var jy=Ye.unstable_UserBlockingPriority,By=Ye.unstable_runWithPriority,Ri=!0;function Uy(e,t,n,r){Ln||Il();var o=Ul,i=Ln;Ln=!0;try{Jf(o,e,t,n,r)}finally{(Ln=i)||Ml()}}function Hy(e,t,n,r){By(jy,Ul.bind(null,e,t,n,r))}function Ul(e,t,n,r){if(Ri){var o;if((o=(t&4)==0)&&0=fo),Cd=String.fromCharCode(32),Rd=!1;function Pd(e,t){switch(e){case"keyup":return d0.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Od(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var hr=!1;function h0(e,t){switch(e){case"compositionend":return Od(t);case"keypress":return t.which!==32?null:(Rd=!0,Cd);case"textInput":return e=t.data,e===Cd&&Rd?null:e;default:return null}}function v0(e,t){if(hr)return e==="compositionend"||!Ql&&Pd(e,t)?(e=yd(),Pi=Wl=pn=null,hr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ld(n)}}function bd(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?bd(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function $d(){for(var e=window,t=mi();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=mi(e.document)}return t}function Zl(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var R0=Yt&&"documentMode"in document&&11>=document.documentMode,vr=null,ea=null,mo=null,ta=!1;function Fd(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ta||vr==null||vr!==mi(r)||(r=vr,"selectionStart"in r&&Zl(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),mo&&vo(mo,r)||(mo=r,r=Ai(ea,"onSelect"),0Sr||(e.current=aa[Sr],aa[Sr]=null,Sr--)}function Fe(e,t){Sr++,aa[Sr]=e.current,e.current=t}var mn={},tt=vn(mn),st=vn(!1),$n=mn;function _r(e,t){var n=e.type.contextTypes;if(!n)return mn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ct(e){return e=e.childContextTypes,e!=null}function bi(){Ne(st),Ne(tt)}function ep(e,t,n){if(tt.current!==mn)throw Error(q(168));Fe(tt,t),Fe(st,n)}function tp(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in e))throw Error(q(108,ur(t)||"Unknown",o));return be({},n,r)}function $i(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||mn,$n=tt.current,Fe(tt,e),Fe(st,st.current),!0}function np(e,t,n){var r=e.stateNode;if(!r)throw Error(q(169));n?(e=tp(e,t,$n),r.__reactInternalMemoizedMergedChildContext=e,Ne(st),Ne(tt),Fe(tt,e)):Ne(st),Fe(st,n)}var sa=null,Fn=null,T0=Ye.unstable_runWithPriority,ca=Ye.unstable_scheduleCallback,fa=Ye.unstable_cancelCallback,k0=Ye.unstable_shouldYield,rp=Ye.unstable_requestPaint,da=Ye.unstable_now,I0=Ye.unstable_getCurrentPriorityLevel,Fi=Ye.unstable_ImmediatePriority,op=Ye.unstable_UserBlockingPriority,ip=Ye.unstable_NormalPriority,up=Ye.unstable_LowPriority,lp=Ye.unstable_IdlePriority,pa={},A0=rp!==void 0?rp:function(){},Kt=null,Di=null,ha=!1,ap=da(),nt=1e4>ap?da:function(){return da()-ap};function Er(){switch(I0()){case Fi:return 99;case op:return 98;case ip:return 97;case up:return 96;case lp:return 95;default:throw Error(q(332))}}function sp(e){switch(e){case 99:return Fi;case 98:return op;case 97:return ip;case 96:return up;case 95:return lp;default:throw Error(q(332))}}function Dn(e,t){return e=sp(e),T0(e,t)}function So(e,t,n){return e=sp(e),ca(e,t,n)}function $t(){if(Di!==null){var e=Di;Di=null,fa(e)}cp()}function cp(){if(!ha&&Kt!==null){ha=!0;var e=0;try{var t=Kt;Dn(99,function(){for(;ej?(G=T,T=null):G=T.sibling;var B=S(d,T,g[j],y);if(B===null){T===null&&(T=G);break}e&&T&&B.alternate===null&&t(d,T),h=i(B,h,j),I===null?_=B:I.sibling=B,I=B,T=G}if(j===g.length)return n(d,T),_;if(T===null){for(;jj?(G=T,T=null):G=T.sibling;var oe=S(d,T,B.value,y);if(oe===null){T===null&&(T=G);break}e&&T&&oe.alternate===null&&t(d,T),h=i(oe,h,j),I===null?_=oe:I.sibling=oe,I=oe,T=G}if(B.done)return n(d,T),_;if(T===null){for(;!B.done;j++,B=g.next())B=x(d,B.value,y),B!==null&&(h=i(B,h,j),I===null?_=B:I.sibling=B,I=B);return _}for(T=r(d,T);!B.done;j++,B=g.next())B=R(T,d,j,B.value,y),B!==null&&(e&&B.alternate!==null&&T.delete(B.key===null?j:B.key),h=i(B,h,j),I===null?_=B:I.sibling=B,I=B);return e&&T.forEach(function(ye){return t(d,ye)}),_}return function(d,h,g,y){var _=typeof g=="object"&&g!==null&&g.type===ln&&g.key===null;_&&(g=g.props.children);var I=typeof g=="object"&&g!==null;if(I)switch(g.$$typeof){case Yr:e:{for(I=g.key,_=h;_!==null;){if(_.key===I){switch(_.tag){case 7:if(g.type===ln){n(d,_.sibling),h=o(_,g.props.children),h.return=d,d=h;break e}break;default:if(_.elementType===g.type){n(d,_.sibling),h=o(_,g.props),h.ref=Eo(d,_,g),h.return=d,d=h;break e}}n(d,_);break}else t(d,_);_=_.sibling}g.type===ln?(h=Mr(g.props.children,d.mode,y,g.key),h.return=d,d=h):(y=cu(g.type,g.key,g.props,null,d.mode,y),y.ref=Eo(d,h,g),y.return=d,d=y)}return u(d);case Nn:e:{for(_=g.key;h!==null;){if(h.key===_)if(h.tag===4&&h.stateNode.containerInfo===g.containerInfo&&h.stateNode.implementation===g.implementation){n(d,h.sibling),h=o(h,g.children||[]),h.return=d,d=h;break e}else{n(d,h);break}else t(d,h);h=h.sibling}h=ts(g,d.mode,y),h.return=d,d=h}return u(d)}if(typeof g=="string"||typeof g=="number")return g=""+g,h!==null&&h.tag===6?(n(d,h.sibling),h=o(h,g),h.return=d,d=h):(n(d,h),h=es(g,d.mode,y),h.return=d,d=h),u(d);if(Vi(g))return P(d,h,g,y);if(Qr(g))return k(d,h,g,y);if(I&&Gi(d,g),typeof g=="undefined"&&!_)switch(d.tag){case 1:case 22:case 0:case 11:case 15:throw Error(q(152,ur(d.type)||"Component"))}return n(d,h)}}var Yi=wp(!0),Sp=wp(!1),xo={},Ft=vn(xo),Co=vn(xo),Ro=vn(xo);function jn(e){if(e===xo)throw Error(q(174));return e}function wa(e,t){switch(Fe(Ro,t),Fe(Co,e),Fe(Ft,xo),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Cl(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Cl(t,e)}Ne(Ft),Fe(Ft,t)}function Rr(){Ne(Ft),Ne(Co),Ne(Ro)}function _p(e){jn(Ro.current);var t=jn(Ft.current),n=Cl(t,e.type);t!==n&&(Fe(Co,e),Fe(Ft,n))}function Sa(e){Co.current===e&&(Ne(Ft),Ne(Co))}var De=vn(0);function Ki(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&64)!=0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var qt=null,Sn=null,Dt=!1;function Ep(e,t){var n=Tt(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,e.lastEffect!==null?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function xp(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,!0):!1;case 13:return!1;default:return!1}}function _a(e){if(Dt){var t=Sn;if(t){var n=t;if(!xp(e,t)){if(t=gr(n.nextSibling),!t||!xp(e,t)){e.flags=e.flags&-1025|2,Dt=!1,qt=e;return}Ep(qt,n)}qt=e,Sn=gr(t.firstChild)}else e.flags=e.flags&-1025|2,Dt=!1,qt=e}}function Cp(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;qt=e}function qi(e){if(e!==qt)return!1;if(!Dt)return Cp(e),Dt=!0,!1;var t=e.type;if(e.tag!==5||t!=="head"&&t!=="body"&&!ia(t,e.memoizedProps))for(t=Sn;t;)Ep(e,t),t=gr(t.nextSibling);if(Cp(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(q(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){Sn=gr(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}Sn=null}}else Sn=qt?gr(e.stateNode.nextSibling):null;return!0}function Ea(){Sn=qt=null,Dt=!1}var Pr=[];function xa(){for(var e=0;ei))throw Error(q(301));i+=1,Xe=rt=null,t.updateQueue=null,Po.current=b0,e=n(r,o)}while(To)}if(Po.current=eu,t=rt!==null&&rt.next!==null,Oo=0,Xe=rt=Be=null,Qi=!1,t)throw Error(q(300));return e}function Bn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Xe===null?Be.memoizedState=Xe=e:Xe=Xe.next=e,Xe}function Un(){if(rt===null){var e=Be.alternate;e=e!==null?e.memoizedState:null}else e=rt.next;var t=Xe===null?Be.memoizedState:Xe.next;if(t!==null)Xe=t,rt=e;else{if(e===null)throw Error(q(310));rt=e,e={memoizedState:rt.memoizedState,baseState:rt.baseState,baseQueue:rt.baseQueue,queue:rt.queue,next:null},Xe===null?Be.memoizedState=Xe=e:Xe=Xe.next=e}return Xe}function jt(e,t){return typeof t=="function"?t(e):t}function ko(e){var t=Un(),n=t.queue;if(n===null)throw Error(q(311));n.lastRenderedReducer=e;var r=rt,o=r.baseQueue,i=n.pending;if(i!==null){if(o!==null){var u=o.next;o.next=i.next,i.next=u}r.baseQueue=o=i,n.pending=null}if(o!==null){o=o.next,r=r.baseState;var a=u=i=null,c=o;do{var s=c.lane;if((Oo&s)===s)a!==null&&(a=a.next={lane:0,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null}),r=c.eagerReducer===e?c.eagerState:e(r,c.action);else{var m={lane:s,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null};a===null?(u=a=m,i=r):a=a.next=m,Be.lanes|=s,No|=s}c=c.next}while(c!==null&&c!==o);a===null?i=r:a.next=u,Ct(r,t.memoizedState)||(Mt=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=a,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function Io(e){var t=Un(),n=t.queue;if(n===null)throw Error(q(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(o!==null){n.pending=null;var u=o=o.next;do i=e(i,u.action),u=u.next;while(u!==o);Ct(i,t.memoizedState)||(Mt=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Rp(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(o!==null?e=o===r:(e=e.mutableReadLanes,(e=(Oo&e)===e)&&(t._workInProgressVersionPrimary=r,Pr.push(t))),e)return n(t._source);throw Pr.push(t),Error(q(350))}function Pp(e,t,n,r){var o=at;if(o===null)throw Error(q(349));var i=t._getVersion,u=i(t._source),a=Po.current,c=a.useState(function(){return Rp(o,t,n)}),s=c[1],m=c[0];c=Xe;var x=e.memoizedState,S=x.refs,R=S.getSnapshot,P=x.source;x=x.subscribe;var k=Be;return e.memoizedState={refs:S,source:t,subscribe:r},a.useEffect(function(){S.getSnapshot=n,S.setSnapshot=s;var d=i(t._source);if(!Ct(u,d)){d=n(t._source),Ct(m,d)||(s(d),d=En(k),o.mutableReadLanes|=d&o.pendingLanes),d=o.mutableReadLanes,o.entangledLanes|=d;for(var h=o.entanglements,g=d;0n?98:n,function(){e(!0)}),Dn(97<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),n==="select"&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[hn]=t,e[Li]=r,Yp(e,t,!1,!1),t.stateNode=e,u=Pl(n,r),n){case"dialog":Me("cancel",e),Me("close",e),o=r;break;case"iframe":case"object":case"embed":Me("load",e),o=r;break;case"video":case"audio":for(o=0;oVa&&(t.flags|=64,i=!0,Mo(r,!1),t.lanes=33554432)}else{if(!i)if(e=Ki(u),e!==null){if(t.flags|=64,i=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Mo(r,!0),r.tail===null&&r.tailMode==="hidden"&&!u.alternate&&!Dt)return t=t.lastEffect=r.lastEffect,t!==null&&(t.nextEffect=null),null}else 2*nt()-r.renderingStartTime>Va&&n!==1073741824&&(t.flags|=64,i=!0,Mo(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(n=r.last,n!==null?n.sibling=u:t.child=u,r.last=u)}return r.tail!==null?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=nt(),n.sibling=null,t=De.current,Fe(De,i?t&1|2:t&1),n):null;case 23:case 24:return Xa(),e!==null&&e.memoizedState!==null!=(t.memoizedState!==null)&&r.mode!=="unstable-defer-without-hiding"&&(t.flags|=4),null}throw Error(q(156,t.tag))}function D0(e){switch(e.tag){case 1:ct(e.type)&&bi();var t=e.flags;return t&4096?(e.flags=t&-4097|64,e):null;case 3:if(Rr(),Ne(st),Ne(tt),xa(),t=e.flags,(t&64)!=0)throw Error(q(285));return e.flags=t&-4097|64,e;case 5:return Sa(e),null;case 13:return Ne(De),t=e.flags,t&4096?(e.flags=t&-4097|64,e):null;case 19:return Ne(De),null;case 4:return Rr(),null;case 10:return ma(e),null;case 23:case 24:return Xa(),null;default:return null}}function za(e,t){try{var n="",r=t;do n+=wy(r),r=r.return;while(r);var o=n}catch(i){o=` -Error generating stack: `+i.message+` -`+i.stack}return{value:e,source:t,stack:o}}function ba(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var j0=typeof WeakMap=="function"?WeakMap:Map;function Qp(e,t,n){n=yn(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){ou||(ou=!0,Ga=r),ba(e,t)},n}function Xp(e,t,n){n=yn(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var o=t.value;n.payload=function(){return ba(e,t),r(o)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){typeof r!="function"&&(Bt===null?Bt=new Set([this]):Bt.add(this),ba(e,t));var u=t.stack;this.componentDidCatch(t.value,{componentStack:u!==null?u:""})}),n}var B0=typeof WeakSet=="function"?WeakSet:Set;function Jp(e){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(n){Rn(e,n)}else t.current=null}function U0(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(t.flags&256&&e!==null){var n=e.memoizedProps,r=e.memoizedState;e=t.stateNode,t=e.getSnapshotBeforeUpdate(t.elementType===t.type?n:At(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:t.flags&256&&ua(t.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(q(163))}function H0(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(t=n.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{if((e.tag&3)==3){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(t=n.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{var o=e;r=o.next,o=o.tag,(o&4)!=0&&(o&1)!=0&&(ph(n,e),X0(n,e)),e=r}while(e!==t)}return;case 1:e=n.stateNode,n.flags&4&&(t===null?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:At(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),t=n.updateQueue,t!==null&&hp(n,t,e);return;case 3:if(t=n.updateQueue,t!==null){if(e=null,n.child!==null)switch(n.child.tag){case 5:e=n.child.stateNode;break;case 1:e=n.child.stateNode}hp(n,t,e)}return;case 5:e=n.stateNode,t===null&&n.flags&4&&qd(n.type,n.memoizedProps)&&e.focus();return;case 6:return;case 4:return;case 12:return;case 13:n.memoizedState===null&&(n=n.alternate,n!==null&&(n=n.memoizedState,n!==null&&(n=n.dehydrated,n!==null&&cd(n))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(q(163))}function Zp(e,t){for(var n=e;;){if(n.tag===5){var r=n.stateNode;if(t)r=r.style,typeof r.setProperty=="function"?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=o!=null&&o.hasOwnProperty("display")?o.display:null,r.style.display=Yf("display",o)}}else if(n.tag===6)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((n.tag!==23&&n.tag!==24||n.memoizedState===null||n===e)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function eh(e,t){if(Fn&&typeof Fn.onCommitFiberUnmount=="function")try{Fn.onCommitFiberUnmount(sa,t)}catch{}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(e=t.updateQueue,e!==null&&(e=e.lastEffect,e!==null)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,o!==void 0)if((r&4)!=0)ph(t,n);else{r=t;try{o()}catch(i){Rn(r,i)}}n=n.next}while(n!==e)}break;case 1:if(Jp(t),e=t.stateNode,typeof e.componentWillUnmount=="function")try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(i){Rn(t,i)}break;case 5:Jp(t);break;case 4:oh(e,t)}}function th(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function nh(e){return e.tag===5||e.tag===3||e.tag===4}function rh(e){e:{for(var t=e.return;t!==null;){if(nh(t))break e;t=t.return}throw Error(q(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:t=t.containerInfo,r=!0;break;case 4:t=t.containerInfo,r=!0;break;default:throw Error(q(161))}n.flags&16&&(Jr(t,""),n.flags&=-17);e:t:for(n=e;;){for(;n.sibling===null;){if(n.return===null||nh(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue t;n.child.return=n,n=n.child}if(!(n.flags&2)){n=n.stateNode;break e}}r?$a(e,n,t):Fa(e,n,t)}function $a(e,t,n){var r=e.tag,o=r===5||r===6;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Mi));else if(r!==4&&(e=e.child,e!==null))for($a(e,t,n),e=e.sibling;e!==null;)$a(e,t,n),e=e.sibling}function Fa(e,t,n){var r=e.tag,o=r===5||r===6;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Fa(e,t,n),e=e.sibling;e!==null;)Fa(e,t,n),e=e.sibling}function oh(e,t){for(var n=t,r=!1,o,i;;){if(!r){r=n.return;e:for(;;){if(r===null)throw Error(q(160));switch(o=r.stateNode,r.tag){case 5:i=!1;break e;case 3:o=o.containerInfo,i=!0;break e;case 4:o=o.containerInfo,i=!0;break e}r=r.return}r=!0}if(n.tag===5||n.tag===6){e:for(var u=e,a=n,c=a;;)if(eh(u,c),c.child!==null&&c.tag!==4)c.child.return=c,c=c.child;else{if(c===a)break e;for(;c.sibling===null;){if(c.return===null||c.return===a)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}i?(u=o,a=n.stateNode,u.nodeType===8?u.parentNode.removeChild(a):u.removeChild(a)):o.removeChild(n.stateNode)}else if(n.tag===4){if(n.child!==null){o=n.stateNode.containerInfo,i=!0,n.child.return=n,n=n.child;continue}}else if(eh(e,n),n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return,n.tag===4&&(r=!1)}n.sibling.return=n.return,n=n.sibling}}function Da(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var r=n=n.next;do(r.tag&3)==3&&(e=r.destroy,r.destroy=void 0,e!==void 0&&e()),r=r.next;while(r!==n)}return;case 1:return;case 5:if(n=t.stateNode,n!=null){r=t.memoizedProps;var o=e!==null?e.memoizedProps:r;e=t.type;var i=t.updateQueue;if(t.updateQueue=null,i!==null){for(n[Li]=r,e==="input"&&r.type==="radio"&&r.name!=null&&jf(n,r),Pl(e,o),t=Pl(e,r),o=0;oo&&(o=u),n&=~i}if(n=o,n=nt()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*V0(n/1960))-n,10 component higher in the tree to provide a loading indicator or placeholder to display.`)}Je!==5&&(Je=2),c=za(c,a),S=u;do{switch(S.tag){case 3:i=c,S.flags|=4096,t&=-t,S.lanes|=t;var I=Qp(S,i,t);pp(S,I);break e;case 1:i=c;var T=S.type,j=S.stateNode;if((S.flags&64)==0&&(typeof T.getDerivedStateFromError=="function"||j!==null&&typeof j.componentDidCatch=="function"&&(Bt===null||!Bt.has(j)))){S.flags|=4096,t&=-t,S.lanes|=t;var G=Xp(S,i,t);pp(S,G);break e}}S=S.return}while(S!==null)}dh(n)}catch(B){t=B,Ve===n&&n!==null&&(Ve=n=n.return);continue}break}while(1)}function ch(){var e=nu.current;return nu.current=eu,e===null?eu:e}function Fo(e,t){var n=pe;pe|=16;var r=ch();at===e&&ot===t||Ar(e,t);do try{Y0();break}catch(o){sh(e,o)}while(1);if(va(),pe=n,nu.current=r,Ve!==null)throw Error(q(261));return at=null,ot=0,Je}function Y0(){for(;Ve!==null;)fh(Ve)}function K0(){for(;Ve!==null&&!k0();)fh(Ve)}function fh(e){var t=vh(e.alternate,e,Hn);e.memoizedProps=e.pendingProps,t===null?dh(e):Ve=t,ja.current=null}function dh(e){var t=e;do{var n=t.alternate;if(e=t.return,(t.flags&2048)==0){if(n=F0(n,t,Hn),n!==null){Ve=n;return}if(n=t,n.tag!==24&&n.tag!==23||n.memoizedState===null||(Hn&1073741824)!=0||(n.mode&4)==0){for(var r=0,o=n.child;o!==null;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}e!==null&&(e.flags&2048)==0&&(e.firstEffect===null&&(e.firstEffect=t.firstEffect),t.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1u&&(a=u,u=I,I=a),a=zd(g,I),i=zd(g,u),a&&i&&(_.rangeCount!==1||_.anchorNode!==a.node||_.anchorOffset!==a.offset||_.focusNode!==i.node||_.focusOffset!==i.offset)&&(y=y.createRange(),y.setStart(a.node,a.offset),_.removeAllRanges(),I>u?(_.addRange(y),_.extend(i.node,i.offset)):(y.setEnd(i.node,i.offset),_.addRange(y)))))),y=[],_=g;_=_.parentNode;)_.nodeType===1&&y.push({element:_,left:_.scrollLeft,top:_.scrollTop});for(typeof g.focus=="function"&&g.focus(),g=0;gnt()-Wa?Ar(e,0):Ua|=n),Ot(e,t)}function ew(e,t){var n=e.stateNode;n!==null&&n.delete(t),t=0,t===0&&(t=e.mode,(t&2)==0?t=1:(t&4)==0?t=Er()===99?1:2:(Jt===0&&(Jt=Or),t=dr(62914560&~Jt),t===0&&(t=4194304))),n=vt(),e=au(e,t),e!==null&&(Ci(e,t,n),Ot(e,n))}var vh;vh=function(e,t,n){var r=t.lanes;if(e!==null)if(e.memoizedProps!==t.pendingProps||st.current)Mt=!0;else if((n&r)!=0)Mt=(e.flags&16384)!=0;else{switch(Mt=!1,t.tag){case 3:jp(t),Ea();break;case 5:_p(t);break;case 1:ct(t.type)&&$i(t);break;case 4:wa(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;Fe(ji,o._currentValue),o._currentValue=r;break;case 13:if(t.memoizedState!==null)return(n&t.child.childLanes)!=0?Bp(e,t,n):(Fe(De,De.current&1),t=Qt(e,t,n),t!==null?t.sibling:null);Fe(De,De.current&1);break;case 19:if(r=(n&t.childLanes)!=0,(e.flags&64)!=0){if(r)return Gp(e,t,n);t.flags|=64}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),Fe(De,De.current),r)break;return null;case 23:case 24:return t.lanes=0,Ia(e,t,n)}return Qt(e,t,n)}else Mt=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=_r(t,tt.current),Cr(t,n),o=Ra(null,t,r,e,o,n),t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,ct(r)){var i=!0;$i(t)}else i=!1;t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,ga(t);var u=r.getDerivedStateFromProps;typeof u=="function"&&Hi(t,r,u,e),o.updater=Wi,t.stateNode=o,o._reactInternals=t,ya(t,r,e,n),t=Ma(null,t,r,!0,i,n)}else t.tag=0,dt(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=o._init,o=i(o._payload),t.type=o,i=t.tag=nw(o),e=At(o,e),i){case 0:t=Aa(null,t,o,e,n);break e;case 1:t=Dp(null,t,o,e,n);break e;case 11:t=zp(null,t,o,e,n);break e;case 14:t=bp(null,t,o,At(o.type,e),r,n);break e}throw Error(q(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:At(r,o),Aa(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:At(r,o),Dp(e,t,r,o,n);case 3:if(jp(t),r=t.updateQueue,e===null||r===null)throw Error(q(282));if(r=t.pendingProps,o=t.memoizedState,o=o!==null?o.element:null,dp(e,t),_o(t,r,null,n),r=t.memoizedState.element,r===o)Ea(),t=Qt(e,t,n);else{if(o=t.stateNode,(i=o.hydrate)&&(Sn=gr(t.stateNode.containerInfo.firstChild),qt=t,i=Dt=!0),i){if(e=o.mutableSourceEagerHydrationData,e!=null)for(o=0;o{o(t,{replace:n,state:r})}),null}function fw(e){return vw()}function dw(e){Nt(!1)}function pw(e){let{basename:t="/",children:n=null,location:r,navigationType:o=Vn.Pop,navigator:i,static:u=!1}=e;Nr()&&Nt(!1);let a=zw(t),c=X.exports.useMemo(()=>({basename:a,navigator:i,static:u}),[a,i,u]);typeof r=="string"&&(r=On(r));let{pathname:s="/",search:m="",hash:x="",state:S=null,key:R="default"}=r,P=X.exports.useMemo(()=>{let k=Ph(s,a);return k==null?null:{pathname:k,search:m,hash:x,state:S,key:R}},[a,s,m,x,S,R]);return P==null?null:X.exports.createElement(us.Provider,{value:c},X.exports.createElement(ls.Provider,{children:n,value:{location:P,navigationType:o}}))}function GR(e){let{children:t,location:n}=e;return mw(ss(t),n)}function hw(e){Nr()||Nt(!1);let{basename:t,navigator:n}=X.exports.useContext(us),{hash:r,pathname:o,search:i}=as(e),u=o;if(t!=="/"){let a=Lw(e),c=a!=null&&a.endsWith("/");u=o==="/"?t+(c?"/":""):Tn([t,o])}return n.createHref({pathname:u,search:i,hash:r})}function Nr(){return X.exports.useContext(ls)!=null}function Wo(){return Nr()||Nt(!1),X.exports.useContext(ls).location}function Eh(){Nr()||Nt(!1);let{basename:e,navigator:t}=X.exports.useContext(us),{matches:n}=X.exports.useContext(Ho),{pathname:r}=Wo(),o=JSON.stringify(n.map(a=>a.pathnameBase)),i=X.exports.useRef(!1);return X.exports.useEffect(()=>{i.current=!0}),X.exports.useCallback(function(a,c){if(c===void 0&&(c={}),!i.current)return;if(typeof a=="number"){t.go(a);return}let s=Rh(a,JSON.parse(o),r);e!=="/"&&(s.pathname=Tn([e,s.pathname])),(c.replace?t.replace:t.push)(s,c.state)},[e,t,o,r])}function vw(){return X.exports.useContext(Ho).outlet}function as(e){let{matches:t}=X.exports.useContext(Ho),{pathname:n}=Wo(),r=JSON.stringify(t.map(o=>o.pathnameBase));return X.exports.useMemo(()=>Rh(e,JSON.parse(r),n),[e,r,n])}function mw(e,t){Nr()||Nt(!1);let{matches:n}=X.exports.useContext(Ho),r=n[n.length-1],o=r?r.params:{};r&&r.pathname;let i=r?r.pathnameBase:"/";r&&r.route;let u=Wo(),a;if(t){var c;let S=typeof t=="string"?On(t):t;i==="/"||((c=S.pathname)==null?void 0:c.startsWith(i))||Nt(!1),a=S}else a=u;let s=a.pathname||"/",m=i==="/"?s:s.slice(i.length)||"/",x=gw(e,{pathname:m});return Tw(x&&x.map(S=>Object.assign({},S,{params:Object.assign({},o,S.params),pathname:Tn([i,S.pathname]),pathnameBase:S.pathnameBase==="/"?i:Tn([i,S.pathnameBase])})),n)}function ss(e){let t=[];return X.exports.Children.forEach(e,n=>{if(!X.exports.isValidElement(n))return;if(n.type===X.exports.Fragment){t.push.apply(t,ss(n.props.children));return}n.type!==dw&&Nt(!1);let r={caseSensitive:n.props.caseSensitive,element:n.props.element,index:n.props.index,path:n.props.path};n.props.children&&(r.children=ss(n.props.children)),t.push(r)}),t}function gw(e,t,n){n===void 0&&(n="/");let r=typeof t=="string"?On(t):t,o=Ph(r.pathname||"/",n);if(o==null)return null;let i=xh(e);yw(i);let u=null;for(let a=0;u==null&&a{let u={relativePath:o.path||"",caseSensitive:o.caseSensitive===!0,childrenIndex:i};u.relativePath.startsWith("/")&&(u.relativePath.startsWith(r)||Nt(!1),u.relativePath=u.relativePath.slice(r.length));let a=Tn([r,u.relativePath]),c=n.concat(u);o.children&&o.children.length>0&&(o.index===!0&&Nt(!1),xh(o.children,t,c,a)),!(o.path==null&&!o.index)&&t.push({path:a,score:Rw(a,o.index),routesMeta:c})}),t}function yw(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Pw(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const ww=/^:\w+$/,Sw=3,_w=2,Ew=1,xw=10,Cw=-2,Ch=e=>e==="*";function Rw(e,t){let n=e.split("/"),r=n.length;return n.some(Ch)&&(r+=Cw),t&&(r+=_w),n.filter(o=>!Ch(o)).reduce((o,i)=>o+(ww.test(i)?Sw:i===""?Ew:xw),r)}function Pw(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function Ow(e,t,n){let r=t,{routesMeta:o}=e,i={},u="/",a=[];for(let c=0;cX.exports.createElement(Ho.Provider,{children:r.route.element!==void 0?r.route.element:X.exports.createElement(fw,null),value:{outlet:n,matches:t.concat(e.slice(0,o+1))}}),null)}function kw(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=Iw(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],u=i.replace(/(.)\/+$/,"$1"),a=o.slice(1);return{params:r.reduce((s,m,x)=>{if(m==="*"){let S=a[x]||"";u=i.slice(0,i.length-S.length).replace(/(.)\/+$/,"$1")}return s[m]=Aw(a[x]||""),s},{}),pathname:i,pathnameBase:u,pattern:e}}function Iw(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0);let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^$?{}|()[\]]/g,"\\$&").replace(/:(\w+)/g,(u,a)=>(r.push(a),"([^\\/]+)"));return e.endsWith("*")?(r.push("*"),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):o+=n?"\\/*$":"(?:\\b|$)",[new RegExp(o,t?void 0:"i"),r]}function Aw(e,t){try{return decodeURIComponent(e)}catch{return e}}function Mw(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?On(e):e;return{pathname:n?n.startsWith("/")?n:Nw(n,t):t,search:bw(r),hash:$w(o)}}function Nw(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function Rh(e,t,n){let r=typeof e=="string"?On(e):e,o=e===""||r.pathname===""?"/":r.pathname,i;if(o==null)i=n;else{let a=t.length-1;if(o.startsWith("..")){let c=o.split("/");for(;c[0]==="..";)c.shift(),a-=1;r.pathname=c.join("/")}i=a>=0?t[a]:"/"}let u=Mw(r,i);return o&&o!=="/"&&o.endsWith("/")&&!u.pathname.endsWith("/")&&(u.pathname+="/"),u}function Lw(e){return e===""||e.pathname===""?"/":typeof e=="string"?On(e).pathname:e.pathname}function Ph(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=e.charAt(t.length);return n&&n!=="/"?null:e.slice(t.length)||"/"}const Tn=e=>e.join("/").replace(/\/\/+/g,"/"),zw=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),bw=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,$w=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;/** - * React Router DOM v6.0.2 - * - * Copyright (c) Remix Software Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE.md file in the root directory of this source tree. - * - * @license MIT - */function hu(){return hu=Object.assign||function(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}const Fw=["onClick","reloadDocument","replace","state","target","to"],Dw=["aria-current","caseSensitive","className","end","style","to"];function YR(e){let{basename:t,children:n,window:r}=e,o=X.exports.useRef();o.current==null&&(o.current=cw({window:r}));let i=o.current,[u,a]=X.exports.useState({action:i.action,location:i.location});return X.exports.useLayoutEffect(()=>i.listen(a),[i]),X.exports.createElement(pw,{basename:t,children:n,location:u.location,navigationType:u.action,navigator:i})}function jw(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}const Bw=X.exports.forwardRef(function(t,n){let{onClick:r,reloadDocument:o,replace:i=!1,state:u,target:a,to:c}=t,s=Oh(t,Fw),m=hw(c),x=Uw(c,{replace:i,state:u,target:a});function S(R){r&&r(R),!R.defaultPrevented&&!o&&x(R)}return X.exports.createElement("a",hu({},s,{href:m,onClick:S,ref:n,target:a}))}),KR=X.exports.forwardRef(function(t,n){let{"aria-current":r="page",caseSensitive:o=!1,className:i="",end:u=!1,style:a,to:c}=t,s=Oh(t,Dw),m=Wo(),x=as(c),S=m.pathname,R=x.pathname;o||(S=S.toLowerCase(),R=R.toLowerCase());let P=S===R||!u&&S.startsWith(R)&&S.charAt(R.length)==="/",k=P?r:void 0,d;typeof i=="function"?d=i({isActive:P}):d=[i,P?"active":null].filter(Boolean).join(" ");let h=typeof a=="function"?a({isActive:P}):a;return X.exports.createElement(Bw,hu({},s,{"aria-current":k,className:d,ref:n,style:h,to:c}))});function Uw(e,t){let{target:n,replace:r,state:o}=t===void 0?{}:t,i=Eh(),u=Wo(),a=as(e);return X.exports.useCallback(c=>{if(c.button===0&&(!n||n==="_self")&&!jw(c)){c.preventDefault();let s=!!r||Uo(u)===Uo(a);i(e,{replace:s,state:o})}},[u,i,a,r,o,n,e])}var Th={exports:{}};/*! - Copyright (c) 2018 Jed Watson. - Licensed under the MIT License (MIT), see - http://jedwatson.github.io/classnames -*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var r=[],o=0;o1?t-1:0),r=1;r3?t.i-4:t.i:Array.isArray(e)?1:fs(e)?2:ds(e)?3:0}function cs(e,t){return zr(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Hw(e,t){return zr(e)===2?e.get(t):e[t]}function kh(e,t,n){var r=zr(e);r===2?e.set(t,n):r===3?(e.delete(t),e.add(n)):e[t]=n}function Ww(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function fs(e){return Kw&&e instanceof Map}function ds(e){return qw&&e instanceof Set}function Yn(e){return e.o||e.t}function ps(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Xw(e);delete t[mt];for(var n=xs(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=Vw),Object.freeze(e),t&&Vo(e,function(n,r){return Go(r,!0)},!0)),e}function Vw(){Lt(2)}function hs(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function Zt(e){var t=Jw[e];return t||Lt(18,e),t}function Ih(){return Yo}function vs(e,t){t&&(Zt("Patches"),e.u=[],e.s=[],e.v=t)}function vu(e){ms(e),e.p.forEach(Gw),e.p=null}function ms(e){e===Yo&&(Yo=e.l)}function Ah(e){return Yo={p:[],l:Yo,h:e,m:!0,_:0}}function Gw(e){var t=e[mt];t.i===0||t.i===1?t.j():t.O=!0}function gs(e,t){t._=t.p.length;var n=t.p[0],r=e!==void 0&&e!==n;return t.h.g||Zt("ES5").S(t,e,r),r?(n[mt].P&&(vu(t),Lt(4)),Gn(e)&&(e=mu(t,e),t.l||gu(t,e)),t.u&&Zt("Patches").M(n[mt],e,t.u,t.s)):e=mu(t,n,[]),vu(t),t.u&&t.v(t.u,t.s),e!==$h?e:void 0}function mu(e,t,n){if(hs(t))return t;var r=t[mt];if(!r)return Vo(t,function(i,u){return Mh(e,r,t,i,u,n)},!0),t;if(r.A!==e)return t;if(!r.P)return gu(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var o=r.i===4||r.i===5?r.o=ps(r.k):r.o;Vo(r.i===3?new Set(o):o,function(i,u){return Mh(e,r,o,i,u,n)}),gu(e,o,!1),n&&e.u&&Zt("Patches").R(r,n,e.u,e.s)}return r.o}function Mh(e,t,n,r,o,i){if(Lr(o)){var u=mu(e,o,i&&t&&t.i!==3&&!cs(t.D,r)?i.concat(r):void 0);if(kh(n,r,u),!Lr(u))return;e.m=!1}if(Gn(o)&&!hs(o)){if(!e.h.F&&e._<1)return;mu(e,o),t&&t.A.l||gu(e,o)}}function gu(e,t,n){n===void 0&&(n=!1),e.h.F&&e.m&&Go(t,n)}function ys(e,t){var n=e[mt];return(n?Yn(n):e)[t]}function Nh(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function ws(e){e.P||(e.P=!0,e.l&&ws(e.l))}function Ss(e){e.o||(e.o=ps(e.t))}function _s(e,t,n){var r=fs(t)?Zt("MapSet").N(t,n):ds(t)?Zt("MapSet").T(t,n):e.g?function(o,i){var u=Array.isArray(o),a={i:u?1:0,A:i?i.A:Ih(),P:!1,I:!1,D:{},l:i,t:o,k:null,o:null,j:null,C:!1},c=a,s=yu;u&&(c=[a],s=wu);var m=Proxy.revocable(c,s),x=m.revoke,S=m.proxy;return a.k=S,a.j=x,S}(t,n):Zt("ES5").J(t,n);return(n?n.A:Ih()).p.push(r),r}function Yw(e){return Lr(e)||Lt(22,e),function t(n){if(!Gn(n))return n;var r,o=n[mt],i=zr(n);if(o){if(!o.P&&(o.i<4||!Zt("ES5").K(o)))return o.t;o.I=!0,r=Lh(n,i),o.I=!1}else r=Lh(n,i);return Vo(r,function(u,a){o&&Hw(o.t,u)===a||kh(r,u,t(a))}),i===3?new Set(r):r}(e)}function Lh(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return ps(e)}var zh,Yo,Es=typeof Symbol!="undefined"&&typeof Symbol("x")=="symbol",Kw=typeof Map!="undefined",qw=typeof Set!="undefined",bh=typeof Proxy!="undefined"&&Proxy.revocable!==void 0&&typeof Reflect!="undefined",$h=Es?Symbol.for("immer-nothing"):((zh={})["immer-nothing"]=!0,zh),Fh=Es?Symbol.for("immer-draftable"):"__$immer_draftable",mt=Es?Symbol.for("immer-state"):"__$immer_state",Qw=""+Object.prototype.constructor,xs=typeof Reflect!="undefined"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Xw=Object.getOwnPropertyDescriptors||function(e){var t={};return xs(e).forEach(function(n){t[n]=Object.getOwnPropertyDescriptor(e,n)}),t},Jw={},yu={get:function(e,t){if(t===mt)return e;var n=Yn(e);if(!cs(n,t))return function(o,i,u){var a,c=Nh(i,u);return c?"value"in c?c.value:(a=c.get)===null||a===void 0?void 0:a.call(o.k):void 0}(e,n,t);var r=n[t];return e.I||!Gn(r)?r:r===ys(e.t,t)?(Ss(e),e.o[t]=_s(e.A.h,r,e)):r},has:function(e,t){return t in Yn(e)},ownKeys:function(e){return Reflect.ownKeys(Yn(e))},set:function(e,t,n){var r=Nh(Yn(e),t);if(r==null?void 0:r.set)return r.set.call(e.k,n),!0;if(!e.P){var o=ys(Yn(e),t),i=o==null?void 0:o[mt];if(i&&i.t===n)return e.o[t]=n,e.D[t]=!1,!0;if(Ww(n,o)&&(n!==void 0||cs(e.t,t)))return!0;Ss(e),ws(e)}return e.o[t]===n&&typeof n!="number"&&(n!==void 0||t in e.o)||(e.o[t]=n,e.D[t]=!0,!0)},deleteProperty:function(e,t){return ys(e.t,t)!==void 0||t in e.t?(e.D[t]=!1,Ss(e),ws(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var n=Yn(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty:function(){Lt(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){Lt(12)}},wu={};Vo(yu,function(e,t){wu[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),wu.deleteProperty=function(e,t){return yu.deleteProperty.call(this,e[0],t)},wu.set=function(e,t,n){return yu.set.call(this,e[0],t,n,e[0])};var Zw=function(){function e(n){var r=this;this.g=bh,this.F=!0,this.produce=function(o,i,u){if(typeof o=="function"&&typeof i!="function"){var a=i;i=o;var c=r;return function(R){var P=this;R===void 0&&(R=a);for(var k=arguments.length,d=Array(k>1?k-1:0),h=1;h1?s-1:0),x=1;x=0;o--){var i=r[o];if(i.path.length===0&&i.op==="replace"){n=i.value;break}}o>-1&&(r=r.slice(o+1));var u=Zt("Patches").$;return Lr(n)?u(n,r):this.produce(n,function(a){return u(a,r)})},e}(),gt=new Zw,Dh=gt.produce;gt.produceWithPatches.bind(gt);gt.setAutoFreeze.bind(gt);gt.setUseProxies.bind(gt);gt.applyPatches.bind(gt);gt.createDraft.bind(gt);gt.finishDraft.bind(gt);var e1=Object.defineProperty,t1=Object.defineProperties,n1=Object.getOwnPropertyDescriptors,jh=Object.getOwnPropertySymbols,r1=Object.prototype.hasOwnProperty,o1=Object.prototype.propertyIsEnumerable,Bh=(e,t,n)=>t in e?e1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,i1=(e,t)=>{for(var n in t||(t={}))r1.call(t,n)&&Bh(e,n,t[n]);if(jh)for(var n of jh(t))o1.call(t,n)&&Bh(e,n,t[n]);return e},u1=(e,t)=>t1(e,n1(t));const Cs=e=>"init"in e,br=Symbol(),Su=Symbol(),Uh=e=>!!e[br],l1=e=>{let t;const n=new Promise((r,o)=>{t=()=>{n[Su]=void 0,r()},e.then(t,o)});return n[br]=r=>n===r||e===r||Uh(e)&&e[br](r),n[Su]=t,n},Hh="r",Wh="w",Vh="c",Gh="s",a1="h";const s1=e=>{const t=new WeakMap,n=new WeakMap,r=new Map;let o,i;if(e)for(const[O,A]of e){const N={v:A,r:0,d:new Map};t.set(O,N)}const u=O=>t.get(O),a=(O,A)=>{const N=t.get(O);t.set(O,A),r.has(O)||r.set(O,N)},c=(O,A)=>{const N=u(O);return u1(i1({r:0},N),{d:A?new Map(Array.from(A).map(U=>{var D,z;return[U,(z=(D=u(U))==null?void 0:D.r)!=null?z:0]})):(N==null?void 0:N.d)||new Map})},s=(O,A,N,H)=>{var U,D;const z=c(O,N);H&&!((U=z.p)==null?void 0:U[br](H))||((D=z.c)==null||D.call(z),("e"in z||z.p||!("v"in z)||!Object.is(z.v,A))&&(++z.r,z.d.has(O)&&z.d.set(O,z.r)),z.v=A,delete z.e,delete z.p,delete z.c,delete z.i,a(O,z))},m=(O,A,N,H)=>{var U,D;const z=c(O,N);H&&!((U=z.p)==null?void 0:U[br](H))||((D=z.c)==null||D.call(z),delete z.p,delete z.c,delete z.i,z.e=A,a(O,z))},x=(O,A,N)=>{var H,U;const D=c(O,N);if((H=D.p)==null?void 0:H[br](A))return;(U=D.c)==null||U.call(D),delete D.e;const z=l1(A);D.p=z,D.c=z[Su],delete D.i,a(O,D)},S=O=>{const A=c(O);A.i=A.r,a(O,A)},R=(O,A)=>{if(!A){const z=u(O);if(z&&(z.d.forEach((ee,b)=>{if(b!==O)if(!n.has(b))R(b);else{const K=u(b);K&&K.r===K.i&&R(b,!0)}}),Array.from(z.d.entries()).every(([ee,b])=>{const K=u(ee);return K&&!("e"in K)&&!K.p&&K.r!==K.i&&K.r===b})))return z}let N,H,U;const D=new Set;try{const z=O.read(ee=>{D.add(ee);const b=ee===O?u(ee):R(ee);if(b){if("e"in b)throw b.e;if(b.p)throw b.p;return b.v}if(Cs(ee))return ee.init;throw new Error("no atom init")});z instanceof Promise?H=z.then(ee=>{s(O,ee,D,H),B()}).catch(ee=>{if(ee instanceof Promise)return(!Uh(ee)||!ee[Su])&&ee.finally(()=>R(O,!0)),ee;m(O,ee,D,H),B()}):U=z}catch(z){z instanceof Promise?H=z:N=z}return N?m(O,N,D):H?x(O,H,D):s(O,U,D),u(O)},P=O=>R(O),k=O=>{let A=n.get(O);return A||(A=T(O)),A},d=(O,A)=>!A.l.size&&(!A.d.size||A.d.size===1&&A.d.has(O)),h=O=>{const A=n.get(O);A&&d(O,A)&&j(O)},g=O=>{const A=n.get(O);A==null||A.d.forEach(N=>{N!==O&&(S(N),g(N))})},y=(O,A)=>{const N=(D,z)=>{typeof z=="boolean"&&(console.warn("[DEPRECATED] Please use { unstable_promise: true }"),z={unstable_promise:z});const ee=R(D);if("e"in ee)throw ee.e;if(ee.p){if(z==null?void 0:z.unstable_promise)return ee.p.then(()=>N(D,z));throw ee.p}if("v"in ee)return ee.v;throw new Error("no value found")},H=(D,z)=>{let ee;if(D===O){if(!Cs(D))throw new Error("atom not writable");z instanceof Promise?(ee=z.then(b=>{s(D,b),g(D),B()}).catch(b=>{m(O,b),B()}),x(O,ee)):s(D,z),g(D),B()}else ee=y(D,z);return ee},U=O.write(N,H,A);return B(),U},_=(O,A)=>y(O,A),I=O=>!!O.write,T=(O,A)=>{const N={d:new Set(A&&[A]),l:new Set};if(n.set(O,N),R(O).d.forEach((U,D)=>{if(D!==O){const z=n.get(D);z?z.d.add(O):T(D,O)}}),I(O)&&O.onMount){const U=z=>_(O,z),D=O.onMount(U);D&&(N.u=D)}return N},j=O=>{var A;const N=(A=n.get(O))==null?void 0:A.u;N&&N(),n.delete(O);const H=u(O);H&&H.d.forEach((U,D)=>{if(D!==O){const z=n.get(D);z&&(z.d.delete(O),d(D,z)&&j(D))}})},G=(O,A,N)=>{const H=new Set(A.d.keys());N.forEach((U,D)=>{if(H.has(D)){H.delete(D);return}const z=n.get(D);z&&(z.d.delete(O),d(D,z)&&j(D))}),H.forEach(U=>{const D=n.get(U);D?D.d.add(O):T(U,O)})},B=()=>{const O=Array.from(r);r.clear(),O.forEach(([A,N])=>{const H=u(A);H&&H.d!==(N==null?void 0:N.d)&&G(A,H,(N==null?void 0:N.d)||new Map);const U=n.get(A);U==null||U.l.forEach(D=>D())})},oe=O=>{B()},ye=(O,A)=>{const H=k(O).l;return H.add(A),()=>{H.delete(A),h(O)}},Te=O=>{for(const[A,N]of O)Cs(A)&&(s(A,N),g(A));B()};return{[Hh]:P,[Wh]:_,[Vh]:oe,[Gh]:ye,[a1]:Te}},c1=e=>({s:s1(e)}),Rs=new Map,Yh=e=>(Rs.has(e)||Rs.set(e,X.exports.createContext(c1())),Rs.get(e));let f1=0;function Ps(e,t){const n=`atom${++f1}`,r={toString:()=>n};return typeof e=="function"?r.read=e:(r.init=e,r.read=o=>o(r),r.write=(o,i,u)=>i(r,typeof u=="function"?u(o(r)):u)),t&&(r.write=t),r}const d1=e=>!!e.write;function p1(e,t){"scope"in e&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),t=e.scope);const n=Yh(t),r=X.exports.useContext(n).s,o=X.exports.useCallback(()=>{const s=r[Hh](e);if("e"in s)throw s.e;if(s.p)throw s.p;if("v"in s)return s.v;throw new Error("no atom value")},[r,e]),[[i,u],a]=X.exports.useReducer(X.exports.useCallback(s=>{const m=o();return Object.is(s[0],m)&&s[1]===e?s:[m,e]},[o,e]),void 0,()=>[o(),e]);u!==e&&a(),X.exports.useEffect(()=>{const s=r[Gh](e,a);return a(),s},[r,e]),X.exports.useEffect(()=>{r[Vh](e)});const c=X.exports.useCallback(s=>{if(d1(e))return r[Wh](e,s);throw new Error("not writable atom")},[r,e]);return X.exports.useDebugValue(i),[i,c]}function QR(e){const t=Ps(e,(n,r,o)=>r(t,Dh(n(t),typeof o=="function"?o:()=>o)));return t}const h1="w";function XR(e,t){const n=Yh(t),r=X.exports.useContext(n).s;return X.exports.useCallback(i=>r[h1](e,i),[r,e])}function JR(e,t){return p1(e,t)[0]}function v1(e){return{getItem:t=>{const n=e().getItem(t);return n instanceof Promise?n.then(r=>JSON.parse(r||"")):JSON.parse(n||"")},setItem:(t,n)=>{e().setItem(t,JSON.stringify(n))}}}const m1=v1(()=>localStorage);function ZR(e,t,n=m1){const r=()=>{try{const u=n.getItem(e);return u instanceof Promise?u.catch(()=>t):u}catch{return t}},o=Ps(n.delayInit?t:r());return o.onMount=u=>{let a;if(n.subscribe&&(a=n.subscribe(e,u)),n.delayInit){const c=r();c instanceof Promise?c.then(u):u(c)}return a},Ps(u=>u(o),(u,a,c)=>{const s=typeof c=="function"?c(u(o)):c;return a(o,s),n.setItem(e,s)})}var g1=typeof global=="object"&&global&&global.Object===Object&&global,Kh=g1,y1=typeof self=="object"&&self&&self.Object===Object&&self,w1=Kh||y1||Function("return this")(),en=w1,S1=en.Symbol,kn=S1,qh=Object.prototype,_1=qh.hasOwnProperty,E1=qh.toString,Ko=kn?kn.toStringTag:void 0;function x1(e){var t=_1.call(e,Ko),n=e[Ko];try{e[Ko]=void 0;var r=!0}catch{}var o=E1.call(e);return r&&(t?e[Ko]=n:delete e[Ko]),o}var C1=Object.prototype,R1=C1.toString;function P1(e){return R1.call(e)}var O1="[object Null]",T1="[object Undefined]",Qh=kn?kn.toStringTag:void 0;function $r(e){return e==null?e===void 0?T1:O1:Qh&&Qh in Object(e)?x1(e):P1(e)}function Fr(e){return e!=null&&typeof e=="object"}var k1="[object Symbol]";function Os(e){return typeof e=="symbol"||Fr(e)&&$r(e)==k1}function I1(e,t){for(var n=-1,r=e==null?0:e.length,o=Array(r);++n-1&&e%1==0&&e-1&&e%1==0&&e<=nS}function iv(e){return e!=null&&As(e.length)&&!ev(e)}var rS=Object.prototype;function oS(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||rS;return e===n}function iS(e,t){for(var n=-1,r=Array(e);++n-1}function y_(e,t){var n=this.__data__,r=_u(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function tn(e){var t=-1,n=e==null?0:e.length;for(this.clear();++to?0:o+t),n=n>o?o:n,n<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r=r?e:b_(e,t,n)}var F_="\\ud800-\\udfff",D_="\\u0300-\\u036f",j_="\\ufe20-\\ufe2f",B_="\\u20d0-\\u20ff",U_=D_+j_+B_,H_="\\ufe0e\\ufe0f",W_="\\u200d",V_=RegExp("["+W_+F_+U_+H_+"]");function yv(e){return V_.test(e)}function G_(e){return e.split("")}var wv="\\ud800-\\udfff",Y_="\\u0300-\\u036f",K_="\\ufe20-\\ufe2f",q_="\\u20d0-\\u20ff",Q_=Y_+K_+q_,X_="\\ufe0e\\ufe0f",J_="["+wv+"]",Fs="["+Q_+"]",Ds="\\ud83c[\\udffb-\\udfff]",Z_="(?:"+Fs+"|"+Ds+")",Sv="[^"+wv+"]",_v="(?:\\ud83c[\\udde6-\\uddff]){2}",Ev="[\\ud800-\\udbff][\\udc00-\\udfff]",eE="\\u200d",xv=Z_+"?",Cv="["+X_+"]?",tE="(?:"+eE+"(?:"+[Sv,_v,Ev].join("|")+")"+Cv+xv+")*",nE=Cv+xv+tE,rE="(?:"+[Sv+Fs+"?",Fs,_v,Ev,J_].join("|")+")",oE=RegExp(Ds+"(?="+Ds+")|"+rE+nE,"g");function iE(e){return e.match(oE)||[]}function uE(e){return yv(e)?iE(e):G_(e)}function lE(e){return function(t){t=$s(t);var n=yv(t)?uE(t):void 0,r=n?n[0]:t.charAt(0),o=n?$_(n,1).join(""):t.slice(1);return r[e]()+o}}var aE=lE("toUpperCase"),sE=aE;function eP(e){return sE($s(e).toLowerCase())}function cE(){this.__data__=new tn,this.size=0}function fE(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function dE(e){return this.__data__.get(e)}function pE(e){return this.__data__.has(e)}var hE=200;function vE(e,t){var n=this.__data__;if(n instanceof tn){var r=n.__data__;if(!Xo||r.lengtha))return!1;var s=i.get(e),m=i.get(t);if(s&&m)return s==t&&m==e;var x=-1,S=!0,R=n&DE?new Cu:void 0;for(i.set(e,t),i.set(t,e);++x0&&i[i.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]0)&&!(o=r.next()).done;)i.push(o.value)}catch(a){u={error:a}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(u)throw u.error}}return i}function Fx(){for(var e=[],t=0;t0&&i[i.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]i||setTimeout(r,a,o)}},rm=nm(new Map),om=rm[0],Jx=rm[1],im=er({onLoadingSlow:Ht,onSuccess:Ht,onError:Ht,onErrorRetry:Xx,onDiscarded:Ht,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:qv?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:qv?5e3:3e3,compare:function(e,t){return Zo(e)==Zo(t)},isPaused:function(){return!1},cache:om,mutate:Jx,fallback:{}},Kv),um=function(e,t){var n=er(e,t);if(t){var r=e.use,o=e.fallback,i=t.use,u=t.fallback;r&&i&&(n.use=r.concat(i)),o&&u&&(n.fallback=er(o,u))}return n},tc=X.exports.createContext({}),Zx=function(e){var t=e.value,n=um(X.exports.useContext(tc),t),r=t&&t.provider,o=X.exports.useState(function(){return r?nm(r(n.cache||om),t):yt})[0];return o&&(n.cache=o[0],n.mutate=o[1]),ei(function(){return o?o[2]:yt},[]),X.exports.createElement(tc.Provider,er(e,{value:n}))},eC=function(e,t){var n=X.exports.useState({})[1],r=X.exports.useRef(e),o=X.exports.useRef({data:!1,error:!1,isValidating:!1}),i=X.exports.useCallback(function(u){var a=!1,c=r.current;for(var s in u){var m=s;c[m]!==u[m]&&(c[m]=u[m],o.current[m]&&(a=!0))}a&&!t.current&&n({})},[]);return ei(function(){r.current=e}),[r,o.current,i]},tC=function(e){return Tu(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}]},nC=function(){return er(im,X.exports.useContext(tc))},rC=function(e){return function(){for(var t=[],n=0;n0;)s=m[x](s);return s(i,u||c.fetcher,c)}},lm=function(e,t,n){var r=t[e]||(t[e]=[]);return r.push(n),function(){var o=r.indexOf(n);o>=0&&(r[o]=r[r.length-1],r.pop())}},nc={dedupe:!0},oC=function(e,t,n){var r=n.cache,o=n.compare,i=n.fallbackData,u=n.suspense,a=n.revalidateOnMount,c=n.refreshInterval,s=n.refreshWhenHidden,m=n.refreshWhenOffline,x=tr.get(r),S=x[0],R=x[1],P=x[2],k=x[3],d=x[4],h=x[5],g=Qv(e),y=g[0],_=g[1],I=g[2],T=g[3],j=X.exports.useRef(!1),G=X.exports.useRef(!1),B=X.exports.useRef(y),oe=X.exports.useRef(n),ye=function(){return oe.current},Te=r.get(y),O=pt(i)?n.fallback[y]:i,A=pt(Te)?O:Te,N=r.get(I),H=function(){return pt(a)?ye().isPaused()?!1:u?!pt(A):pt(A)||n.revalidateIfStale:a},U=function(){return!y||!t?!1:r.get(T)?!0:!j.current&&H()},D=U(),z=eC({data:A,error:N,isValidating:D},G),ee=z[0],b=z[1],K=z[2],ne=X.exports.useCallback(function(he){return Wv(void 0,void 0,void 0,function(){var Ee,Ie,Ue,Pe,je,et,_t,qe,zt,Vt;return Vv(this,function(In){switch(In.label){case 0:if(!y||!t||G.current||ye().isPaused())return[2,!1];Ue=!0,Pe=he||{},je=pt(d[y])||!Pe.dedupe,et=function(){return!G.current&&y===B.current&&j.current},_t=function(){h[y]===Ie&&(delete d[y],delete h[y])},qe={isValidating:!1},zt=function(){r.set(T,!1),et()&&K(qe)},r.set(T,!0),K({isValidating:!0}),In.label=1;case 1:return In.trys.push([1,3,,4]),je&&(Au(r,y,ee.current.data,ee.current.error,!0),n.loadingTimeout&&!r.get(y)&&setTimeout(function(){Ue&&et()&&ye().onLoadingSlow(y,n)},n.loadingTimeout),h[y]=ec(),d[y]=t.apply(void 0,_)),Ie=h[y],[4,d[y]];case 2:return Ee=In.sent(),je&&setTimeout(_t,n.dedupingInterval),h[y]!==Ie?(je&&et()&&ye().onDiscarded(y),[2,!1]):(r.set(I,yt),qe.error=yt,!pt(P[y])&&(Ie<=P[y]||Ie<=k[y]||k[y]===0)?(zt(),je&&et()&&ye().onDiscarded(y),[2,!1]):(o(ee.current.data,Ee)||(qe.data=Ee),o(r.get(y),Ee)||r.set(y,Ee),je&&et()&&ye().onSuccess(Ee,y,n),[3,4]));case 3:return Vt=In.sent(),_t(),ye().isPaused()||(r.set(I,Vt),qe.error=Vt,je&&et()&&(ye().onError(Vt,y,n),n.shouldRetryOnError&&ye().onErrorRetry(Vt,y,n,ne,{retryCount:(Pe.retryCount||0)+1,dedupe:!0}))),[3,4];case 4:return Ue=!1,zt(),et()&&je&&Au(r,y,qe.data,qe.error,!1),[2,!0]}})})},[y]),we=X.exports.useCallback(em.bind(yt,r,function(){return B.current}),[]);if(ei(function(){oe.current=n}),ei(function(){if(!!y){var he=j.current,Ee=ne.bind(yt,nc),Ie=function(){return ye().isVisible()&&ye().isOnline()},Ue=function(qe,zt,Vt){K(er({error:zt,isValidating:Vt},o(ee.current.data,qe)?yt:{data:qe}))},Pe=0,je=function(qe){if(qe==Xv){var zt=Date.now();ye().revalidateOnFocus&&zt>Pe&&Ie()&&(Pe=zt+ye().focusThrottleInterval,Ee())}else if(qe==Jv)ye().revalidateOnReconnect&&Ie()&&Ee();else if(qe==Zv)return ne()},et=lm(y,R,Ue),_t=lm(y,S,je);return G.current=!1,B.current=y,j.current=!0,he&&K({data:A,error:N,isValidating:D}),H()&&(pt(A)||Iu?Ee():qx(Ee)),function(){G.current=!0,et(),_t()}}},[y,ne]),ei(function(){var he;function Ee(){c&&he!==-1&&(he=setTimeout(Ie,c))}function Ie(){!ee.current.error&&(s||ye().isVisible())&&(m||ye().isOnline())?ne(nc).then(Ee):Ee()}return Ee(),function(){he&&(clearTimeout(he),he=-1)}},[c,s,m,ne]),X.exports.useDebugValue(A),u&&pt(A))throw pt(N)?ne(nc):N;return{mutate:we,get data(){return b.data=!0,A},get error(){return b.error=!0,N},get isValidating(){return b.isValidating=!0,D}}};Jo.defineProperty(Zx,"default",{value:im});var nP=rC(oC),am={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function o(c,s,m){this.fn=c,this.context=s,this.once=m||!1}function i(c,s,m,x,S){if(typeof m!="function")throw new TypeError("The listener must be a function");var R=new o(m,x||c,S),P=n?n+s:s;return c._events[P]?c._events[P].fn?c._events[P]=[c._events[P],R]:c._events[P].push(R):(c._events[P]=R,c._eventsCount++),c}function u(c,s){--c._eventsCount==0?c._events=new r:delete c._events[s]}function a(){this._events=new r,this._eventsCount=0}a.prototype.eventNames=function(){var s=[],m,x;if(this._eventsCount===0)return s;for(x in m=this._events)t.call(m,x)&&s.push(n?x.slice(1):x);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(m)):s},a.prototype.listeners=function(s){var m=n?n+s:s,x=this._events[m];if(!x)return[];if(x.fn)return[x.fn];for(var S=0,R=x.length,P=new Array(R);S=0)return;r==="set-cookie"?n[r]=(n[r]?n[r]:[]).concat([o]):n[r]=n[r]?n[r]+", "+o:o}}),n},mm=wt,KC=mm.isStandardBrowserEnv()?function(){var t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a"),r;function o(i){var u=i;return t&&(n.setAttribute("href",u),u=n.href),n.setAttribute("href",u),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=o(window.location.href),function(u){var a=mm.isString(u)?o(u):u;return a.protocol===r.protocol&&a.host===r.host}}():function(){return function(){return!0}}();function sc(e){this.message=e}sc.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};sc.prototype.__CANCEL__=!0;var Fu=sc,Du=wt,qC=DC,QC=jC,XC=pm,JC=VC,ZC=YC,eR=KC,cc=vm,tR=Bu,nR=Fu,gm=function(t){return new Promise(function(r,o){var i=t.data,u=t.headers,a=t.responseType,c;function s(){t.cancelToken&&t.cancelToken.unsubscribe(c),t.signal&&t.signal.removeEventListener("abort",c)}Du.isFormData(i)&&delete u["Content-Type"];var m=new XMLHttpRequest;if(t.auth){var x=t.auth.username||"",S=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";u.Authorization="Basic "+btoa(x+":"+S)}var R=JC(t.baseURL,t.url);m.open(t.method.toUpperCase(),XC(R,t.params,t.paramsSerializer),!0),m.timeout=t.timeout;function P(){if(!!m){var d="getAllResponseHeaders"in m?ZC(m.getAllResponseHeaders()):null,h=!a||a==="text"||a==="json"?m.responseText:m.response,g={data:h,status:m.status,statusText:m.statusText,headers:d,config:t,request:m};qC(function(_){r(_),s()},function(_){o(_),s()},g),m=null}}if("onloadend"in m?m.onloadend=P:m.onreadystatechange=function(){!m||m.readyState!==4||m.status===0&&!(m.responseURL&&m.responseURL.indexOf("file:")===0)||setTimeout(P)},m.onabort=function(){!m||(o(cc("Request aborted",t,"ECONNABORTED",m)),m=null)},m.onerror=function(){o(cc("Network Error",t,null,m)),m=null},m.ontimeout=function(){var h=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",g=t.transitional||tR.transitional;t.timeoutErrorMessage&&(h=t.timeoutErrorMessage),o(cc(h,t,g.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",m)),m=null},Du.isStandardBrowserEnv()){var k=(t.withCredentials||eR(R))&&t.xsrfCookieName?QC.read(t.xsrfCookieName):void 0;k&&(u[t.xsrfHeaderName]=k)}"setRequestHeader"in m&&Du.forEach(u,function(h,g){typeof i=="undefined"&&g.toLowerCase()==="content-type"?delete u[g]:m.setRequestHeader(g,h)}),Du.isUndefined(t.withCredentials)||(m.withCredentials=!!t.withCredentials),a&&a!=="json"&&(m.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&m.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&m.upload&&m.upload.addEventListener("progress",t.onUploadProgress),(t.cancelToken||t.signal)&&(c=function(d){!m||(o(!d||d&&d.type?new nR("canceled"):d),m.abort(),m=null)},t.cancelToken&&t.cancelToken.subscribe(c),t.signal&&(t.signal.aborted?c():t.signal.addEventListener("abort",c))),i||(i=null),m.send(i)})},Ze=wt,ym=bC,rR=hm,oR={"Content-Type":"application/x-www-form-urlencoded"};function wm(e,t){!Ze.isUndefined(e)&&Ze.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function iR(){var e;return(typeof XMLHttpRequest!="undefined"||typeof process!="undefined"&&Object.prototype.toString.call(process)==="[object process]")&&(e=gm),e}function uR(e,t,n){if(Ze.isString(e))try{return(t||JSON.parse)(e),Ze.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}var ju={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:iR(),transformRequest:[function(t,n){return ym(n,"Accept"),ym(n,"Content-Type"),Ze.isFormData(t)||Ze.isArrayBuffer(t)||Ze.isBuffer(t)||Ze.isStream(t)||Ze.isFile(t)||Ze.isBlob(t)?t:Ze.isArrayBufferView(t)?t.buffer:Ze.isURLSearchParams(t)?(wm(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):Ze.isObject(t)||n&&n["Content-Type"]==="application/json"?(wm(n,"application/json"),uR(t)):t}],transformResponse:[function(t){var n=this.transitional||ju.transitional,r=n&&n.silentJSONParsing,o=n&&n.forcedJSONParsing,i=!r&&this.responseType==="json";if(i||o&&Ze.isString(t)&&t.length)try{return JSON.parse(t)}catch(u){if(i)throw u.name==="SyntaxError"?rR(u,this,"E_JSON_PARSE"):u}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};Ze.forEach(["delete","get","head"],function(t){ju.headers[t]={}});Ze.forEach(["post","put","patch"],function(t){ju.headers[t]=Ze.merge(oR)});var Bu=ju,lR=wt,aR=Bu,sR=function(t,n,r){var o=this||aR;return lR.forEach(r,function(u){t=u.call(o,t,n)}),t},Sm=function(t){return!!(t&&t.__CANCEL__)},_m=wt,fc=sR,cR=Sm,fR=Bu,dR=Fu;function dc(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new dR("canceled")}var pR=function(t){dc(t),t.headers=t.headers||{},t.data=fc.call(t,t.data,t.headers,t.transformRequest),t.headers=_m.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),_m.forEach(["delete","get","head","post","put","patch","common"],function(o){delete t.headers[o]});var n=t.adapter||fR.adapter;return n(t).then(function(o){return dc(t),o.data=fc.call(t,o.data,o.headers,t.transformResponse),o},function(o){return cR(o)||(dc(t),o&&o.response&&(o.response.data=fc.call(t,o.response.data,o.response.headers,t.transformResponse))),Promise.reject(o)})},St=wt,Em=function(t,n){n=n||{};var r={};function o(m,x){return St.isPlainObject(m)&&St.isPlainObject(x)?St.merge(m,x):St.isPlainObject(x)?St.merge({},x):St.isArray(x)?x.slice():x}function i(m){if(St.isUndefined(n[m])){if(!St.isUndefined(t[m]))return o(void 0,t[m])}else return o(t[m],n[m])}function u(m){if(!St.isUndefined(n[m]))return o(void 0,n[m])}function a(m){if(St.isUndefined(n[m])){if(!St.isUndefined(t[m]))return o(void 0,t[m])}else return o(void 0,n[m])}function c(m){if(m in n)return o(t[m],n[m]);if(m in t)return o(void 0,t[m])}var s={url:u,method:u,data:u,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:c};return St.forEach(Object.keys(t).concat(Object.keys(n)),function(x){var S=s[x]||i,R=S(x);St.isUndefined(R)&&S!==c||(r[x]=R)}),r},xm={version:"0.24.0"},hR=xm.version,pc={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){pc[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var Cm={};pc.transitional=function(t,n,r){function o(i,u){return"[Axios v"+hR+"] Transitional option '"+i+"'"+u+(r?". "+r:"")}return function(i,u,a){if(t===!1)throw new Error(o(u," has been removed"+(n?" in "+n:"")));return n&&!Cm[u]&&(Cm[u]=!0,console.warn(o(u," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,u,a):!0}};function vR(e,t,n){if(typeof e!="object")throw new TypeError("options must be an object");for(var r=Object.keys(e),o=r.length;o-- >0;){var i=r[o],u=t[i];if(u){var a=e[i],c=a===void 0||u(a,i,e);if(c!==!0)throw new TypeError("option "+i+" must be "+c);continue}if(n!==!0)throw Error("Unknown option "+i)}}var mR={assertOptions:vR,validators:pc},Rm=wt,gR=pm,Pm=LC,Om=pR,Uu=Em,Tm=mR,jr=Tm.validators;function ti(e){this.defaults=e,this.interceptors={request:new Pm,response:new Pm}}ti.prototype.request=function(t){typeof t=="string"?(t=arguments[1]||{},t.url=arguments[0]):t=t||{},t=Uu(this.defaults,t),t.method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var n=t.transitional;n!==void 0&&Tm.assertOptions(n,{silentJSONParsing:jr.transitional(jr.boolean),forcedJSONParsing:jr.transitional(jr.boolean),clarifyTimeoutError:jr.transitional(jr.boolean)},!1);var r=[],o=!0;this.interceptors.request.forEach(function(S){typeof S.runWhen=="function"&&S.runWhen(t)===!1||(o=o&&S.synchronous,r.unshift(S.fulfilled,S.rejected))});var i=[];this.interceptors.response.forEach(function(S){i.push(S.fulfilled,S.rejected)});var u;if(!o){var a=[Om,void 0];for(Array.prototype.unshift.apply(a,r),a=a.concat(i),u=Promise.resolve(t);a.length;)u=u.then(a.shift(),a.shift());return u}for(var c=t;r.length;){var s=r.shift(),m=r.shift();try{c=s(c)}catch(x){m(x);break}}try{u=Om(c)}catch(x){return Promise.reject(x)}for(;i.length;)u=u.then(i.shift(),i.shift());return u};ti.prototype.getUri=function(t){return t=Uu(this.defaults,t),gR(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};Rm.forEach(["delete","get","head","options"],function(t){ti.prototype[t]=function(n,r){return this.request(Uu(r||{},{method:t,url:n,data:(r||{}).data}))}});Rm.forEach(["post","put","patch"],function(t){ti.prototype[t]=function(n,r,o){return this.request(Uu(o||{},{method:t,url:n,data:r}))}});var yR=ti,wR=Fu;function Br(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(o){t=o});var n=this;this.promise.then(function(r){if(!!n._listeners){var o,i=n._listeners.length;for(o=0;o=0||(E[p]=l[p]);return E}function c(l){var f=function(p,v){if(typeof p!="object"||p===null)return p;var E=p[Symbol.toPrimitive];if(E!==void 0){var w=E.call(p,v||"default");if(typeof w!="object")return w;throw new TypeError("@@toPrimitive must return a primitive value.")}return(v==="string"?String:Number)(p)}(l,"string");return typeof f=="symbol"?f:String(f)}r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r;var s={init:"init"},m=function(l){var f=l.value;return f===void 0?"":f},x=function(){return r.createElement(r.Fragment,null,"\xA0")},S={Cell:m,width:150,minWidth:0,maxWidth:Number.MAX_SAFE_INTEGER};function R(){for(var l=arguments.length,f=new Array(l),p=0;p(w=typeof w=="number"?w:1/0)){var C=E;E=w,w=C}return l.filter(function(M){return f.some(function(L){var $=M.values[L];return $>=E&&$<=w})})};Lc.autoRemove=function(l){return!l||typeof l[0]!="number"&&typeof l[1]!="number"};var Hr=Object.freeze({__proto__:null,text:Rc,exactText:Pc,exactTextCase:Oc,includes:Tc,includesAll:kc,includesSome:Ic,includesValue:Ac,exact:Mc,equals:Nc,between:Lc});s.resetFilters="resetFilters",s.setFilter="setFilter",s.setAllFilters="setAllFilters";var zc=function(l){l.stateReducers.push(eg),l.useInstance.push(tg)};function eg(l,f,p,v){if(f.type===s.init)return u({filters:[]},l);if(f.type===s.resetFilters)return u({},l,{filters:v.initialState.filters||[]});if(f.type===s.setFilter){var E=f.columnId,w=f.filterValue,C=v.allColumns,M=v.filterTypes,L=C.find(function(Z){return Z.id===E});if(!L)throw new Error("React-Table: Could not find a column with id: "+E);var $=D(L.filter,M||{},Hr),Q=l.filters.find(function(Z){return Z.id===E}),V=g(w,Q&&Q.value);return z($.autoRemove,V,L)?u({},l,{filters:l.filters.filter(function(Z){return Z.id!==E})}):u({},l,Q?{filters:l.filters.map(function(Z){return Z.id===E?{id:E,value:V}:Z})}:{filters:[].concat(l.filters,[{id:E,value:V}])})}if(f.type===s.setAllFilters){var Y=f.filters,F=v.allColumns,W=v.filterTypes;return u({},l,{filters:g(Y,l.filters).filter(function(Z){var J=F.find(function(ue){return ue.id===Z.id});return!z(D(J.filter,W||{},Hr).autoRemove,Z.value,J)})})}}function tg(l){var f=l.data,p=l.rows,v=l.flatRows,E=l.rowsById,w=l.allColumns,C=l.filterTypes,M=l.manualFilters,L=l.defaultCanFilter,$=L!==void 0&&L,Q=l.disableFilters,V=l.state.filters,Y=l.dispatch,F=l.autoResetFilters,W=F===void 0||F,Z=r.useCallback(function(ce,fe){Y({type:s.setFilter,columnId:ce,filterValue:fe})},[Y]),J=r.useCallback(function(ce){Y({type:s.setAllFilters,filters:ce})},[Y]);w.forEach(function(ce){var fe=ce.id,ge=ce.accessor,le=ce.defaultCanFilter,se=ce.disableFilters;ce.canFilter=ge?A(se!==!0&&void 0,Q!==!0&&void 0,!0):A(le,$,!1),ce.setFilter=function(de){return Z(ce.id,de)};var Ce=V.find(function(de){return de.id===fe});ce.filterValue=Ce&&Ce.value});var ue=r.useMemo(function(){if(M||!V.length)return[p,v,E];var ce=[],fe={};return[function ge(le,se){se===void 0&&(se=0);var Ce=le;return(Ce=V.reduce(function(de,xe){var _e=xe.id,ke=xe.value,ie=w.find(function($e){return $e.id===_e});if(!ie)return de;se===0&&(ie.preFilteredRows=de);var Se=D(ie.filter,C||{},Hr);return Se?(ie.filteredRows=Se(de,[_e],ke),ie.filteredRows):(console.warn("Could not find a valid 'column.filter' for column with the ID: "+ie.id+"."),de)},le)).forEach(function(de){ce.push(de),fe[de.id]=de,de.subRows&&(de.subRows=de.subRows&&de.subRows.length>0?ge(de.subRows,se+1):de.subRows)}),Ce}(p),ce,fe]},[M,V,p,v,E,w,C]),me=ue[0],ve=ue[1],te=ue[2];r.useMemo(function(){w.filter(function(ce){return!V.find(function(fe){return fe.id===ce.id})}).forEach(function(ce){ce.preFilteredRows=me,ce.filteredRows=me})},[me,V,w]);var Oe=y(W);I(function(){Oe()&&Y({type:s.resetFilters})},[Y,M?null:f]),Object.assign(l,{preFilteredRows:p,preFilteredFlatRows:v,preFilteredRowsById:E,filteredRows:me,filteredFlatRows:ve,filteredRowsById:te,rows:me,flatRows:ve,rowsById:te,setFilter:Z,setAllFilters:J})}zc.pluginName="useFilters",s.resetGlobalFilter="resetGlobalFilter",s.setGlobalFilter="setGlobalFilter";var bc=function(l){l.stateReducers.push(ng),l.useInstance.push(rg)};function ng(l,f,p,v){if(f.type===s.resetGlobalFilter)return u({},l,{globalFilter:v.initialState.globalFilter||void 0});if(f.type===s.setGlobalFilter){var E=f.filterValue,w=v.userFilterTypes,C=D(v.globalFilter,w||{},Hr),M=g(E,l.globalFilter);return z(C.autoRemove,M)?(l.globalFilter,a(l,["globalFilter"])):u({},l,{globalFilter:M})}}function rg(l){var f=l.data,p=l.rows,v=l.flatRows,E=l.rowsById,w=l.allColumns,C=l.filterTypes,M=l.globalFilter,L=l.manualGlobalFilter,$=l.state.globalFilter,Q=l.dispatch,V=l.autoResetGlobalFilter,Y=V===void 0||V,F=l.disableGlobalFilter,W=r.useCallback(function(te){Q({type:s.setGlobalFilter,filterValue:te})},[Q]),Z=r.useMemo(function(){if(L||$===void 0)return[p,v,E];var te=[],Oe={},ce=D(M,C||{},Hr);if(!ce)return console.warn("Could not find a valid 'globalFilter' option."),p;w.forEach(function(ge){var le=ge.disableGlobalFilter;ge.canFilter=A(le!==!0&&void 0,F!==!0&&void 0,!0)});var fe=w.filter(function(ge){return ge.canFilter===!0});return[function ge(le){return(le=ce(le,fe.map(function(se){return se.id}),$)).forEach(function(se){te.push(se),Oe[se.id]=se,se.subRows=se.subRows&&se.subRows.length?ge(se.subRows):se.subRows}),le}(p),te,Oe]},[L,$,M,C,w,p,v,E,F]),J=Z[0],ue=Z[1],me=Z[2],ve=y(Y);I(function(){ve()&&Q({type:s.resetGlobalFilter})},[Q,L?null:f]),Object.assign(l,{preGlobalFilteredRows:p,preGlobalFilteredFlatRows:v,preGlobalFilteredRowsById:E,globalFilteredRows:J,globalFilteredFlatRows:ue,globalFilteredRowsById:me,rows:J,flatRows:ue,rowsById:me,setGlobalFilter:W,disableGlobalFilter:F})}function $c(l,f){return f.reduce(function(p,v){return p+(typeof v=="number"?v:0)},0)}bc.pluginName="useGlobalFilter";var Fc=Object.freeze({__proto__:null,sum:$c,min:function(l){var f=l[0]||0;return l.forEach(function(p){typeof p=="number"&&(f=Math.min(f,p))}),f},max:function(l){var f=l[0]||0;return l.forEach(function(p){typeof p=="number"&&(f=Math.max(f,p))}),f},minMax:function(l){var f=l[0]||0,p=l[0]||0;return l.forEach(function(v){typeof v=="number"&&(f=Math.min(f,v),p=Math.max(p,v))}),f+".."+p},average:function(l){return $c(0,l)/l.length},median:function(l){if(!l.length)return null;var f=Math.floor(l.length/2),p=[].concat(l).sort(function(v,E){return v-E});return l.length%2!=0?p[f]:(p[f-1]+p[f])/2},unique:function(l){return Array.from(new Set(l).values())},uniqueCount:function(l){return new Set(l).size},count:function(l){return l.length}}),og=[],ig={};s.resetGroupBy="resetGroupBy",s.setGroupBy="setGroupBy",s.toggleGroupBy="toggleGroupBy";var Dc=function(l){l.getGroupByToggleProps=[ug],l.stateReducers.push(lg),l.visibleColumnsDeps.push(function(f,p){var v=p.instance;return[].concat(f,[v.state.groupBy])}),l.visibleColumns.push(ag),l.useInstance.push(cg),l.prepareRow.push(fg)};Dc.pluginName="useGroupBy";var ug=function(l,f){var p=f.header;return[l,{onClick:p.canGroupBy?function(v){v.persist(),p.toggleGroupBy()}:void 0,style:{cursor:p.canGroupBy?"pointer":void 0},title:"Toggle GroupBy"}]};function lg(l,f,p,v){if(f.type===s.init)return u({groupBy:[]},l);if(f.type===s.resetGroupBy)return u({},l,{groupBy:v.initialState.groupBy||[]});if(f.type===s.setGroupBy)return u({},l,{groupBy:f.value});if(f.type===s.toggleGroupBy){var E=f.columnId,w=f.value,C=w!==void 0?w:!l.groupBy.includes(E);return u({},l,C?{groupBy:[].concat(l.groupBy,[E])}:{groupBy:l.groupBy.filter(function(M){return M!==E})})}}function ag(l,f){var p=f.instance.state.groupBy,v=p.map(function(w){return l.find(function(C){return C.id===w})}).filter(Boolean),E=l.filter(function(w){return!p.includes(w.id)});return(l=[].concat(v,E)).forEach(function(w){w.isGrouped=p.includes(w.id),w.groupedIndex=p.indexOf(w.id)}),l}var sg={};function cg(l){var f=l.data,p=l.rows,v=l.flatRows,E=l.rowsById,w=l.allColumns,C=l.flatHeaders,M=l.groupByFn,L=M===void 0?jc:M,$=l.manualGroupBy,Q=l.aggregations,V=Q===void 0?sg:Q,Y=l.plugins,F=l.state.groupBy,W=l.dispatch,Z=l.autoResetGroupBy,J=Z===void 0||Z,ue=l.disableGroupBy,me=l.defaultCanGroupBy,ve=l.getHooks;h(Y,["useColumnOrder","useFilters"],"useGroupBy");var te=y(l);w.forEach(function(ie){var Se=ie.accessor,$e=ie.defaultGroupBy,it=ie.disableGroupBy;ie.canGroupBy=Se?A(ie.canGroupBy,it!==!0&&void 0,ue!==!0&&void 0,!0):A(ie.canGroupBy,$e,me,!1),ie.canGroupBy&&(ie.toggleGroupBy=function(){return l.toggleGroupBy(ie.id)}),ie.Aggregated=ie.Aggregated||ie.Cell});var Oe=r.useCallback(function(ie,Se){W({type:s.toggleGroupBy,columnId:ie,value:Se})},[W]),ce=r.useCallback(function(ie){W({type:s.setGroupBy,value:ie})},[W]);C.forEach(function(ie){ie.getGroupByToggleProps=P(ve().getGroupByToggleProps,{instance:te(),header:ie})});var fe=r.useMemo(function(){if($||!F.length)return[p,v,E,og,ig,v,E];var ie=F.filter(function(Ge){return w.find(function(on){return on.id===Ge})}),Se=[],$e={},it=[],ae={},ze=[],He={},ut=function Ge(on,un,of){if(un===void 0&&(un=0),un===ie.length)return on;var Qu=ie[un],Jg=L(on,Qu);return Object.entries(Jg).map(function(uf,Zg){var lf=uf[0],ri=uf[1],oi=Qu+":"+lf,af=Ge(ri,un+1,oi=of?of+">"+oi:oi),sf=un?H(ri,"leafRows"):ri,ey=function(Et,Xu,ny){var ii={};return w.forEach(function(We){if(ie.includes(We.id))ii[We.id]=Xu[0]?Xu[0].values[We.id]:null;else{var cf=typeof We.aggregate=="function"?We.aggregate:V[We.aggregate]||Fc[We.aggregate];if(cf){var ry=Xu.map(function(ui){return ui.values[We.id]}),oy=Et.map(function(ui){var Ju=ui.values[We.id];if(!ny&&We.aggregateValue){var ff=typeof We.aggregateValue=="function"?We.aggregateValue:V[We.aggregateValue]||Fc[We.aggregateValue];if(!ff)throw console.info({column:We}),new Error("React Table: Invalid column.aggregateValue option for column listed above");Ju=ff(Ju,ui,We)}return Ju});ii[We.id]=cf(oy,ry)}else{if(We.aggregate)throw console.info({column:We}),new Error("React Table: Invalid column.aggregate option for column listed above");ii[We.id]=null}}}),ii}(sf,ri,un),ty={id:oi,isGrouped:!0,groupByID:Qu,groupByVal:lf,values:ey,subRows:af,leafRows:sf,depth:un,index:Zg};return af.forEach(function(Et){Se.push(Et),$e[Et.id]=Et,Et.isGrouped?(it.push(Et),ae[Et.id]=Et):(ze.push(Et),He[Et.id]=Et)}),ty})}(p);return ut.forEach(function(Ge){Se.push(Ge),$e[Ge.id]=Ge,Ge.isGrouped?(it.push(Ge),ae[Ge.id]=Ge):(ze.push(Ge),He[Ge.id]=Ge)}),[ut,Se,$e,it,ae,ze,He]},[$,F,p,v,E,w,V,L]),ge=fe[0],le=fe[1],se=fe[2],Ce=fe[3],de=fe[4],xe=fe[5],_e=fe[6],ke=y(J);I(function(){ke()&&W({type:s.resetGroupBy})},[W,$?null:f]),Object.assign(l,{preGroupedRows:p,preGroupedFlatRow:v,preGroupedRowsById:E,groupedRows:ge,groupedFlatRows:le,groupedRowsById:se,onlyGroupedFlatRows:Ce,onlyGroupedRowsById:de,nonGroupedFlatRows:xe,nonGroupedRowsById:_e,rows:ge,flatRows:le,rowsById:se,toggleGroupBy:Oe,setGroupBy:ce})}function fg(l){l.allCells.forEach(function(f){var p;f.isGrouped=f.column.isGrouped&&f.column.id===l.groupByID,f.isPlaceholder=!f.isGrouped&&f.column.isGrouped,f.isAggregated=!f.isGrouped&&!f.isPlaceholder&&((p=l.subRows)==null?void 0:p.length)})}function jc(l,f){return l.reduce(function(p,v,E){var w=""+v.values[f];return p[w]=Array.isArray(p[w])?p[w]:[],p[w].push(v),p},{})}var Bc=/([0-9]+)/gm;function Vu(l,f){return l===f?0:l>f?1:-1}function Wr(l,f,p){return[l.values[p],f.values[p]]}function Uc(l){return typeof l=="number"?isNaN(l)||l===1/0||l===-1/0?"":String(l):typeof l=="string"?l:""}var dg=Object.freeze({__proto__:null,alphanumeric:function(l,f,p){var v=Wr(l,f,p),E=v[0],w=v[1];for(E=Uc(E),w=Uc(w),E=E.split(Bc).filter(Boolean),w=w.split(Bc).filter(Boolean);E.length&&w.length;){var C=E.shift(),M=w.shift(),L=parseInt(C,10),$=parseInt(M,10),Q=[L,$].sort();if(isNaN(Q[0])){if(C>M)return 1;if(M>C)return-1}else{if(isNaN(Q[1]))return isNaN(L)?-1:1;if(L>$)return 1;if($>L)return-1}}return E.length-w.length},datetime:function(l,f,p){var v=Wr(l,f,p),E=v[0],w=v[1];return Vu(E=E.getTime(),w=w.getTime())},basic:function(l,f,p){var v=Wr(l,f,p);return Vu(v[0],v[1])},string:function(l,f,p){var v=Wr(l,f,p),E=v[0],w=v[1];for(E=E.split("").filter(Boolean),w=w.split("").filter(Boolean);E.length&&w.length;){var C=E.shift(),M=w.shift(),L=C.toLowerCase(),$=M.toLowerCase();if(L>$)return 1;if($>L)return-1;if(C>M)return 1;if(M>C)return-1}return E.length-w.length},number:function(l,f,p){var v=Wr(l,f,p),E=v[0],w=v[1],C=/[^0-9.]/gi;return Vu(E=Number(String(E).replace(C,"")),w=Number(String(w).replace(C,"")))}});s.resetSortBy="resetSortBy",s.setSortBy="setSortBy",s.toggleSortBy="toggleSortBy",s.clearSortBy="clearSortBy",S.sortType="alphanumeric",S.sortDescFirst=!1;var Hc=function(l){l.getSortByToggleProps=[pg],l.stateReducers.push(hg),l.useInstance.push(vg)};Hc.pluginName="useSortBy";var pg=function(l,f){var p=f.instance,v=f.column,E=p.isMultiSortEvent,w=E===void 0?function(C){return C.shiftKey}:E;return[l,{onClick:v.canSort?function(C){C.persist(),v.toggleSortBy(void 0,!p.disableMultiSort&&w(C))}:void 0,style:{cursor:v.canSort?"pointer":void 0},title:v.canSort?"Toggle SortBy":void 0}]};function hg(l,f,p,v){if(f.type===s.init)return u({sortBy:[]},l);if(f.type===s.resetSortBy)return u({},l,{sortBy:v.initialState.sortBy||[]});if(f.type===s.clearSortBy)return u({},l,{sortBy:l.sortBy.filter(function(te){return te.id!==f.columnId})});if(f.type===s.setSortBy)return u({},l,{sortBy:f.sortBy});if(f.type===s.toggleSortBy){var E,w=f.columnId,C=f.desc,M=f.multi,L=v.allColumns,$=v.disableMultiSort,Q=v.disableSortRemove,V=v.disableMultiRemove,Y=v.maxMultiSortColCount,F=Y===void 0?Number.MAX_SAFE_INTEGER:Y,W=l.sortBy,Z=L.find(function(te){return te.id===w}).sortDescFirst,J=W.find(function(te){return te.id===w}),ue=W.findIndex(function(te){return te.id===w}),me=C!=null,ve=[];return(E=!$&&M?J?"toggle":"add":ue!==W.length-1||W.length!==1?"replace":J?"toggle":"replace")!=="toggle"||Q||me||M&&V||!(J&&J.desc&&!Z||!J.desc&&Z)||(E="remove"),E==="replace"?ve=[{id:w,desc:me?C:Z}]:E==="add"?(ve=[].concat(W,[{id:w,desc:me?C:Z}])).splice(0,ve.length-F):E==="toggle"?ve=W.map(function(te){return te.id===w?u({},te,{desc:me?C:!J.desc}):te}):E==="remove"&&(ve=W.filter(function(te){return te.id!==w})),u({},l,{sortBy:ve})}}function vg(l){var f=l.data,p=l.rows,v=l.flatRows,E=l.allColumns,w=l.orderByFn,C=w===void 0?Wc:w,M=l.sortTypes,L=l.manualSortBy,$=l.defaultCanSort,Q=l.disableSortBy,V=l.flatHeaders,Y=l.state.sortBy,F=l.dispatch,W=l.plugins,Z=l.getHooks,J=l.autoResetSortBy,ue=J===void 0||J;h(W,["useFilters","useGlobalFilter","useGroupBy","usePivotColumns"],"useSortBy");var me=r.useCallback(function(le){F({type:s.setSortBy,sortBy:le})},[F]),ve=r.useCallback(function(le,se,Ce){F({type:s.toggleSortBy,columnId:le,desc:se,multi:Ce})},[F]),te=y(l);V.forEach(function(le){var se=le.accessor,Ce=le.canSort,de=le.disableSortBy,xe=le.id,_e=se?A(de!==!0&&void 0,Q!==!0&&void 0,!0):A($,Ce,!1);le.canSort=_e,le.canSort&&(le.toggleSortBy=function(ie,Se){return ve(le.id,ie,Se)},le.clearSortBy=function(){F({type:s.clearSortBy,columnId:le.id})}),le.getSortByToggleProps=P(Z().getSortByToggleProps,{instance:te(),column:le});var ke=Y.find(function(ie){return ie.id===xe});le.isSorted=!!ke,le.sortedIndex=Y.findIndex(function(ie){return ie.id===xe}),le.isSortedDesc=le.isSorted?ke.desc:void 0});var Oe=r.useMemo(function(){if(L||!Y.length)return[p,v];var le=[],se=Y.filter(function(Ce){return E.find(function(de){return de.id===Ce.id})});return[function Ce(de){var xe=C(de,se.map(function(_e){var ke=E.find(function($e){return $e.id===_e.id});if(!ke)throw new Error("React-Table: Could not find a column with id: "+_e.id+" while sorting");var ie=ke.sortType,Se=N(ie)||(M||{})[ie]||dg[ie];if(!Se)throw new Error("React-Table: Could not find a valid sortType of '"+ie+"' for column '"+_e.id+"'.");return function($e,it){return Se($e,it,_e.id,_e.desc)}}),se.map(function(_e){var ke=E.find(function(ie){return ie.id===_e.id});return ke&&ke.sortInverted?_e.desc:!_e.desc}));return xe.forEach(function(_e){le.push(_e),_e.subRows&&_e.subRows.length!==0&&(_e.subRows=Ce(_e.subRows))}),xe}(p),le]},[L,Y,p,v,E,C,M]),ce=Oe[0],fe=Oe[1],ge=y(ue);I(function(){ge()&&F({type:s.resetSortBy})},[L?null:f]),Object.assign(l,{preSortedRows:p,preSortedFlatRows:v,sortedRows:ce,sortedFlatRows:fe,rows:ce,flatRows:fe,setSortBy:me,toggleSortBy:ve})}function Wc(l,f,p){return[].concat(l).sort(function(v,E){for(var w=0;wl.pageIndex?M=E===-1?w.length>=l.pageSize:C-1),M?u({},l,{pageIndex:C}):l}if(f.type===s.setPageSize){var L=f.pageSize,$=l.pageSize*l.pageIndex;return u({},l,{pageIndex:Math.floor($/L),pageSize:L})}}function gg(l){var f=l.rows,p=l.autoResetPage,v=p===void 0||p,E=l.manualExpandedKey,w=E===void 0?"expanded":E,C=l.plugins,M=l.pageCount,L=l.paginateExpandedRows,$=L===void 0||L,Q=l.expandSubRows,V=Q===void 0||Q,Y=l.state,F=Y.pageSize,W=Y.pageIndex,Z=Y.expanded,J=Y.globalFilter,ue=Y.filters,me=Y.groupBy,ve=Y.sortBy,te=l.dispatch,Oe=l.data,ce=l.manualPagination;h(C,["useGlobalFilter","useFilters","useGroupBy","useSortBy","useExpanded"],"usePagination");var fe=y(v);I(function(){fe()&&te({type:s.resetPage})},[te,ce?null:Oe,J,ue,me,ve]);var ge=ce?M:Math.ceil(f.length/F),le=r.useMemo(function(){return ge>0?[].concat(new Array(ge)).fill(null).map(function(Se,$e){return $e}):[]},[ge]),se=r.useMemo(function(){var Se;if(ce)Se=f;else{var $e=F*W,it=$e+F;Se=f.slice($e,it)}return $?Se:U(Se,{manualExpandedKey:w,expanded:Z,expandSubRows:V})},[V,Z,w,ce,W,F,$,f]),Ce=W>0,de=ge===-1?se.length>=F:W-1&&w.push(E.splice(L,1)[0])};E.length&&v.length;)C();return[].concat(w,E)}function jg(l){var f=l.dispatch;l.setColumnOrder=r.useCallback(function(p){return f({type:s.setColumnOrder,columnOrder:p})},[f])}Jc.pluginName="useColumnOrder",S.canResize=!0,s.columnStartResizing="columnStartResizing",s.columnResizing="columnResizing",s.columnDoneResizing="columnDoneResizing",s.resetResize="resetResize";var Zc=function(l){l.getResizerProps=[Bg],l.getHeaderProps.push({style:{position:"relative"}}),l.stateReducers.push(Ug),l.useInstance.push(Wg),l.useInstanceBeforeDimensions.push(Hg)},Bg=function(l,f){var p=f.instance,v=f.header,E=p.dispatch,w=function(C,M){var L=!1;if(C.type==="touchstart"){if(C.touches&&C.touches.length>1)return;L=!0}var $=function(J){var ue=[];return function me(ve){ve.columns&&ve.columns.length&&ve.columns.map(me),ue.push(ve)}(J),ue}(M).map(function(J){return[J.id,J.totalWidth]}),Q=L?Math.round(C.touches[0].clientX):C.clientX,V=function(J){E({type:s.columnResizing,clientX:J})},Y=function(){return E({type:s.columnDoneResizing})},F={mouse:{moveEvent:"mousemove",moveHandler:function(J){return V(J.clientX)},upEvent:"mouseup",upHandler:function(J){document.removeEventListener("mousemove",F.mouse.moveHandler),document.removeEventListener("mouseup",F.mouse.upHandler),Y()}},touch:{moveEvent:"touchmove",moveHandler:function(J){return J.cancelable&&(J.preventDefault(),J.stopPropagation()),V(J.touches[0].clientX),!1},upEvent:"touchend",upHandler:function(J){document.removeEventListener(F.touch.moveEvent,F.touch.moveHandler),document.removeEventListener(F.touch.upEvent,F.touch.moveHandler),Y()}}},W=L?F.touch:F.mouse,Z=!!function(){if(typeof b=="boolean")return b;var J=!1;try{var ue={get passive(){return J=!0,!1}};window.addEventListener("test",null,ue),window.removeEventListener("test",null,ue)}catch{J=!1}return b=J}()&&{passive:!1};document.addEventListener(W.moveEvent,W.moveHandler,Z),document.addEventListener(W.upEvent,W.upHandler,Z),E({type:s.columnStartResizing,columnId:M.id,columnWidth:M.totalWidth,headerIdWidths:$,clientX:Q})};return[l,{onMouseDown:function(C){return C.persist()||w(C,v)},onTouchStart:function(C){return C.persist()||w(C,v)},style:{cursor:"col-resize"},draggable:!1,role:"separator"}]};function Ug(l,f){if(f.type===s.init)return u({columnResizing:{columnWidths:{}}},l);if(f.type===s.resetResize)return u({},l,{columnResizing:{columnWidths:{}}});if(f.type===s.columnStartResizing){var p=f.clientX,v=f.columnId,E=f.columnWidth,w=f.headerIdWidths;return u({},l,{columnResizing:u({},l.columnResizing,{startX:p,headerIdWidths:w,columnWidth:E,isResizingColumn:v})})}if(f.type===s.columnResizing){var C=f.clientX,M=l.columnResizing,L=M.startX,$=M.columnWidth,Q=M.headerIdWidths,V=(C-L)/$,Y={};return(Q===void 0?[]:Q).forEach(function(F){var W=F[0],Z=F[1];Y[W]=Math.max(Z+Z*V,0)}),u({},l,{columnResizing:u({},l.columnResizing,{columnWidths:u({},l.columnResizing.columnWidths,{},Y)})})}return f.type===s.columnDoneResizing?u({},l,{columnResizing:u({},l.columnResizing,{startX:null,isResizingColumn:null})}):void 0}Zc.pluginName="useResizeColumns";var Hg=function(l){var f=l.flatHeaders,p=l.disableResizing,v=l.getHooks,E=l.state.columnResizing,w=y(l);f.forEach(function(C){var M=A(C.disableResizing!==!0&&void 0,p!==!0&&void 0,!0);C.canResize=M,C.width=E.columnWidths[C.id]||C.originalWidth||C.width,C.isResizing=E.isResizingColumn===C.id,M&&(C.getResizerProps=P(v().getResizerProps,{instance:w(),header:C}))})};function Wg(l){var f=l.plugins,p=l.dispatch,v=l.autoResetResize,E=v===void 0||v,w=l.columns;h(f,["useAbsoluteLayout"],"useResizeColumns");var C=y(E);I(function(){C()&&p({type:s.resetResize})},[w]);var M=r.useCallback(function(){return p({type:s.resetResize})},[p]);Object.assign(l,{resetResizing:M})}var Gu={position:"absolute",top:0},ef=function(l){l.getTableBodyProps.push(ni),l.getRowProps.push(ni),l.getHeaderGroupProps.push(ni),l.getFooterGroupProps.push(ni),l.getHeaderProps.push(function(f,p){var v=p.column;return[f,{style:u({},Gu,{left:v.totalLeft+"px",width:v.totalWidth+"px"})}]}),l.getCellProps.push(function(f,p){var v=p.cell;return[f,{style:u({},Gu,{left:v.column.totalLeft+"px",width:v.column.totalWidth+"px"})}]}),l.getFooterProps.push(function(f,p){var v=p.column;return[f,{style:u({},Gu,{left:v.totalLeft+"px",width:v.totalWidth+"px"})}]})};ef.pluginName="useAbsoluteLayout";var ni=function(l,f){return[l,{style:{position:"relative",width:f.instance.totalColumnsWidth+"px"}}]},Yu={display:"inline-block",boxSizing:"border-box"},Ku=function(l,f){return[l,{style:{display:"flex",width:f.instance.totalColumnsWidth+"px"}}]},tf=function(l){l.getRowProps.push(Ku),l.getHeaderGroupProps.push(Ku),l.getFooterGroupProps.push(Ku),l.getHeaderProps.push(function(f,p){var v=p.column;return[f,{style:u({},Yu,{width:v.totalWidth+"px"})}]}),l.getCellProps.push(function(f,p){var v=p.cell;return[f,{style:u({},Yu,{width:v.column.totalWidth+"px"})}]}),l.getFooterProps.push(function(f,p){var v=p.column;return[f,{style:u({},Yu,{width:v.totalWidth+"px"})}]})};function nf(l){l.getTableProps.push(Vg),l.getRowProps.push(qu),l.getHeaderGroupProps.push(qu),l.getFooterGroupProps.push(qu),l.getHeaderProps.push(Gg),l.getCellProps.push(Yg),l.getFooterProps.push(Kg)}tf.pluginName="useBlockLayout",nf.pluginName="useFlexLayout";var Vg=function(l,f){return[l,{style:{minWidth:f.instance.totalColumnsMinWidth+"px"}}]},qu=function(l,f){return[l,{style:{display:"flex",flex:"1 0 auto",minWidth:f.instance.totalColumnsMinWidth+"px"}}]},Gg=function(l,f){var p=f.column;return[l,{style:{boxSizing:"border-box",flex:p.totalFlexWidth?p.totalFlexWidth+" 0 auto":void 0,minWidth:p.totalMinWidth+"px",width:p.totalWidth+"px"}}]},Yg=function(l,f){var p=f.cell;return[l,{style:{boxSizing:"border-box",flex:p.column.totalFlexWidth+" 0 auto",minWidth:p.column.totalMinWidth+"px",width:p.column.totalWidth+"px"}}]},Kg=function(l,f){var p=f.column;return[l,{style:{boxSizing:"border-box",flex:p.totalFlexWidth?p.totalFlexWidth+" 0 auto":void 0,minWidth:p.totalMinWidth+"px",width:p.totalWidth+"px"}}]};function rf(l){l.stateReducers.push(Xg),l.getTableProps.push(qg),l.getHeaderProps.push(Qg)}rf.pluginName="useGridLayout";var qg=function(l,f){return[l,{style:{display:"grid",gridTemplateColumns:f.instance.state.gridLayout.columnWidths.map(function(p){return p}).join(" ")}}]},Qg=function(l,f){return[l,{id:"header-cell-"+f.column.id,style:{position:"sticky"}}]};function Xg(l,f,p,v){if(f.type==="init")return u({gridLayout:{columnWidths:v.columns.map(function(){return"auto"})}},l);if(f.type==="columnStartResizing"){var E=f.columnId,w=v.visibleColumns.findIndex(function(F){return F.id===E}),C=function(F){var W,Z=(W=document.getElementById("header-cell-"+F))==null?void 0:W.offsetWidth;if(Z!==void 0)return Z}(E);return C!==void 0?u({},l,{gridLayout:u({},l.gridLayout,{columnId:E,columnIndex:w,startingWidth:C})}):l}if(f.type==="columnResizing"){var M=l.gridLayout,L=M.columnIndex,$=M.startingWidth,Q=M.columnWidths,V=$-(l.columnResizing.startX-f.clientX),Y=[].concat(Q);return Y[L]=V+"px",u({},l,{gridLayout:u({},l.gridLayout,{columnWidths:Y})})}}n._UNSTABLE_usePivotColumns=Gc,n.actions=s,n.defaultColumn=S,n.defaultGroupByFn=jc,n.defaultOrderByFn=Wc,n.defaultRenderer=m,n.emptyRenderer=x,n.ensurePluginOrder=h,n.flexRender=j,n.functionalUpdate=g,n.loopHooks=d,n.makePropGetter=P,n.makeRenderer=T,n.reduceHooks=k,n.safeUseLayoutEffect=_,n.useAbsoluteLayout=ef,n.useAsyncDebounce=function(l,f){f===void 0&&(f=0);var p=r.useRef({}),v=y(l),E=y(f);return r.useCallback(function(){var w=i(regeneratorRuntime.mark(function C(){var M,L,$,Q=arguments;return regeneratorRuntime.wrap(function(V){for(;;)switch(V.prev=V.next){case 0:for(M=Q.length,L=new Array(M),$=0;$1?f-1:0),v=1;v=A?O:""+Array(A+1-H.length).join(N)+O},_={s:y,z:function(O){var A=-O.utcOffset(),N=Math.abs(A),H=Math.floor(N/60),U=N%60;return(A<=0?"+":"-")+y(H,2,"0")+":"+y(U,2,"0")},m:function O(A,N){if(A.date()0,T<=I.r||!I.r){T<=1&&_>0&&(I=g[_-1]);var j=h[I.l];R&&(T=R(""+T)),k=typeof j=="string"?j.replace("%d",T):j(T,m,I.l,d);break}}if(m)return k;var G=d?h.future:h.past;return typeof G=="function"?G(k):G.replace("%s",k)},i.to=function(s,m){return a(s,m,this,!0)},i.from=function(s,m){return a(s,m,this)};var c=function(s){return s.$u?o.utc():o()};i.toNow=function(s){return this.to(c(this),s)},i.fromNow=function(s){return this.from(c(this),s)}}})})(Am);var cP=Am.exports,OR={exports:{}};(function(e,t){(function(n,r){e.exports=r(vc.exports)})(li,function(n){function r(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var o=r(n),i={name:"zh-cn",weekdays:"\u661F\u671F\u65E5_\u661F\u671F\u4E00_\u661F\u671F\u4E8C_\u661F\u671F\u4E09_\u661F\u671F\u56DB_\u661F\u671F\u4E94_\u661F\u671F\u516D".split("_"),weekdaysShort:"\u5468\u65E5_\u5468\u4E00_\u5468\u4E8C_\u5468\u4E09_\u5468\u56DB_\u5468\u4E94_\u5468\u516D".split("_"),weekdaysMin:"\u65E5_\u4E00_\u4E8C_\u4E09_\u56DB_\u4E94_\u516D".split("_"),months:"\u4E00\u6708_\u4E8C\u6708_\u4E09\u6708_\u56DB\u6708_\u4E94\u6708_\u516D\u6708_\u4E03\u6708_\u516B\u6708_\u4E5D\u6708_\u5341\u6708_\u5341\u4E00\u6708_\u5341\u4E8C\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(u,a){switch(a){case"W":return u+"\u5468";default:return u+"\u65E5"}},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5E74M\u6708D\u65E5",LLL:"YYYY\u5E74M\u6708D\u65E5Ah\u70B9mm\u5206",LLLL:"YYYY\u5E74M\u6708D\u65E5ddddAh\u70B9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5E74M\u6708D\u65E5",lll:"YYYY\u5E74M\u6708D\u65E5 HH:mm",llll:"YYYY\u5E74M\u6708D\u65E5dddd HH:mm"},relativeTime:{future:"%s\u5185",past:"%s\u524D",s:"\u51E0\u79D2",m:"1 \u5206\u949F",mm:"%d \u5206\u949F",h:"1 \u5C0F\u65F6",hh:"%d \u5C0F\u65F6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4E2A\u6708",MM:"%d \u4E2A\u6708",y:"1 \u5E74",yy:"%d \u5E74"},meridiem:function(u,a){var c=100*u+a;return c<600?"\u51CC\u6668":c<900?"\u65E9\u4E0A":c<1100?"\u4E0A\u5348":c<1300?"\u4E2D\u5348":c<1800?"\u4E0B\u5348":"\u665A\u4E0A"}};return o.default.locale(i,null,!0),i})})(OR);var TR=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},kR=function(){function e(t,n){for(var r=0;r div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',T=_.head||_.getElementsByTagName("head")[0],j=_.createElement("style");j.id="detectElementResize",j.type="text/css",e!=null&&j.setAttribute("nonce",e),j.styleSheet?j.styleSheet.cssText=I:j.appendChild(_.createTextNode(I)),T.appendChild(j)}},h=function(_,I){if(c)_.attachEvent("onresize",I);else{if(!_.__resizeTriggers__){var T=_.ownerDocument,j=kt.getComputedStyle(_);j&&j.position==="static"&&(_.style.position="relative"),d(T),_.__resizeLast__={},_.__resizeListeners__=[],(_.__resizeTriggers__=T.createElement("div")).className="resize-triggers";var G=T.createElement("div");G.className="expand-trigger",G.appendChild(T.createElement("div"));var B=T.createElement("div");B.className="contract-trigger",_.__resizeTriggers__.appendChild(G),_.__resizeTriggers__.appendChild(B),_.appendChild(_.__resizeTriggers__),u(_),_.addEventListener("scroll",a,!0),r&&(_.__resizeTriggers__.__animationListener__=function(ye){ye.animationName===n&&u(_)},_.__resizeTriggers__.addEventListener(r,_.__resizeTriggers__.__animationListener__))}_.__resizeListeners__.push(I)}},g=function(_,I){if(c)_.detachEvent("onresize",I);else if(_.__resizeListeners__.splice(_.__resizeListeners__.indexOf(I),1),!_.__resizeListeners__.length){_.removeEventListener("scroll",a,!0),_.__resizeTriggers__.__animationListener__&&(_.__resizeTriggers__.removeEventListener(r,_.__resizeTriggers__.__animationListener__),_.__resizeTriggers__.__animationListener__=null);try{_.__resizeTriggers__=!_.removeChild(_.__resizeTriggers__)}catch{}}};return{addResizeListener:h,removeResizeListener:g}}var LR=function(e){AR(t,e);function t(){var n,r,o,i;TR(this,t);for(var u=arguments.length,a=Array(u),c=0;c=t?e.call(null):o.id=requestAnimationFrame(r)}var o={id:requestAnimationFrame(r)};return o}var Ur=null;function Dm(e){if(e===void 0&&(e=!1),Ur===null||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var r=document.createElement("div"),o=r.style;return o.width="100px",o.height="100px",t.appendChild(r),document.body.appendChild(t),t.scrollLeft>0?Ur="positive-descending":(t.scrollLeft=1,t.scrollLeft===0?Ur="negative":Ur="positive-ascending"),document.body.removeChild(t),Ur}return Ur}var jR=150,BR=function(t,n){return t};function UR(e){var t,n,r=e.getItemOffset,o=e.getEstimatedTotalSize,i=e.getItemSize,u=e.getOffsetForIndexAndAlignment,a=e.getStartIndexForOffset,c=e.getStopIndexForStartIndex,s=e.initInstanceProps,m=e.shouldResetStyleCacheOnItemSizeChange,x=e.validateProps;return n=t=function(S){zR(R,S);function R(k){var d;return d=S.call(this,k)||this,d._instanceProps=s(d.props,Wu(Wu(d))),d._outerRef=void 0,d._resetIsScrollingTimeoutId=null,d.state={instance:Wu(Wu(d)),isScrolling:!1,scrollDirection:"forward",scrollOffset:typeof d.props.initialScrollOffset=="number"?d.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},d._callOnItemsRendered=void 0,d._callOnItemsRendered=_c(function(h,g,y,_){return d.props.onItemsRendered({overscanStartIndex:h,overscanStopIndex:g,visibleStartIndex:y,visibleStopIndex:_})}),d._callOnScroll=void 0,d._callOnScroll=_c(function(h,g,y){return d.props.onScroll({scrollDirection:h,scrollOffset:g,scrollUpdateWasRequested:y})}),d._getItemStyle=void 0,d._getItemStyle=function(h){var g=d.props,y=g.direction,_=g.itemSize,I=g.layout,T=d._getItemStyleCache(m&&_,m&&I,m&&y),j;if(T.hasOwnProperty(h))j=T[h];else{var G=r(d.props,h,d._instanceProps),B=i(d.props,h,d._instanceProps),oe=y==="horizontal"||I==="horizontal",ye=y==="rtl",Te=oe?G:0;T[h]=j={position:"absolute",left:ye?void 0:Te,right:ye?Te:void 0,top:oe?0:G,height:oe?"100%":B,width:oe?B:"100%"}}return j},d._getItemStyleCache=void 0,d._getItemStyleCache=_c(function(h,g,y){return{}}),d._onScrollHorizontal=function(h){var g=h.currentTarget,y=g.clientWidth,_=g.scrollLeft,I=g.scrollWidth;d.setState(function(T){if(T.scrollOffset===_)return null;var j=d.props.direction,G=_;if(j==="rtl")switch(Dm()){case"negative":G=-_;break;case"positive-descending":G=I-y-_;break}return G=Math.max(0,Math.min(G,I-y)),{isScrolling:!0,scrollDirection:T.scrollOffset<_?"forward":"backward",scrollOffset:G,scrollUpdateWasRequested:!1}},d._resetIsScrollingDebounced)},d._onScrollVertical=function(h){var g=h.currentTarget,y=g.clientHeight,_=g.scrollHeight,I=g.scrollTop;d.setState(function(T){if(T.scrollOffset===I)return null;var j=Math.max(0,Math.min(I,_-y));return{isScrolling:!0,scrollDirection:T.scrollOffset0)for(var he=K;he<=ne;he++)we.push(X.exports.createElement(h,{data:B,key:ye(he,B),index:he,isScrolling:H?D:void 0,style:this._getItemStyle(he)}));var Ee=o(this.props,this._instanceProps);return X.exports.createElement(O||A||"div",{className:g,onScroll:ee,ref:this._outerRefSetter,style:Bo({position:"relative",height:_,width:U,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:y},N)},X.exports.createElement(T||j||"div",{children:we,ref:I,style:{height:z?"100%":Ee,pointerEvents:D?"none":void 0,width:z?Ee:"100%"}}))},P._callPropsCallbacks=function(){if(typeof this.props.onItemsRendered=="function"){var d=this.props.itemCount;if(d>0){var h=this._getRangeToRender(),g=h[0],y=h[1],_=h[2],I=h[3];this._callOnItemsRendered(g,y,_,I)}}if(typeof this.props.onScroll=="function"){var T=this.state,j=T.scrollDirection,G=T.scrollOffset,B=T.scrollUpdateWasRequested;this._callOnScroll(j,G,B)}},P._getRangeToRender=function(){var d=this.props,h=d.itemCount,g=d.overscanCount,y=this.state,_=y.isScrolling,I=y.scrollDirection,T=y.scrollOffset;if(h===0)return[0,0,0,0];var j=a(this.props,T,this._instanceProps),G=c(this.props,j,T,this._instanceProps),B=!_||I==="backward"?Math.max(1,g):1,oe=!_||I==="forward"?Math.max(1,g):1;return[Math.max(0,j-B),Math.max(0,Math.min(h-1,G+oe)),j,G]},R}(X.exports.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},n}var HR=function(t,n){t.children,t.direction,t.height,t.layout,t.innerTagName,t.outerTagName,t.width,n.instance},fP=UR({getItemOffset:function(t,n){var r=t.itemSize;return n*r},getItemSize:function(t,n){var r=t.itemSize;return r},getEstimatedTotalSize:function(t){var n=t.itemCount,r=t.itemSize;return r*n},getOffsetForIndexAndAlignment:function(t,n,r,o){var i=t.direction,u=t.height,a=t.itemCount,c=t.itemSize,s=t.layout,m=t.width,x=i==="horizontal"||s==="horizontal",S=x?m:u,R=Math.max(0,a*c-S),P=Math.min(R,n*c),k=Math.max(0,n*c-S+c);switch(r==="smart"&&(o>=k-S&&o<=P+S?r="auto":r="center"),r){case"start":return P;case"end":return k;case"center":{var d=Math.round(k+(P-k)/2);return dR+Math.floor(S/2)?R:d}case"auto":default:return o>=k&&o<=P?o:o=v},o=function(){},e.unstable_forceFrameRate=function(R){0>R||125>>1,$=R[D];if($!==void 0&&0V(ce,N))ge!==void 0&&0>V(ge,ce)?(R[D]=ge,R[_e]=N,D=_e):(R[D]=ce,R[J]=N,D=J);else if(ge!==void 0&&0>V(ge,N))R[D]=ge,R[_e]=N,D=_e;else break e}}return A}return null}function V(R,A){var N=R.sortIndex-A.sortIndex;return N!==0?N:R.id-A.id}var U=[],re=[],xe=1,ke=null,ee=3,X=!1,B=!1,oe=!1;function te(R){for(var A=I(re);A!==null;){if(A.callback===null)j(re);else if(A.startTime<=R)j(re),A.sortIndex=A.expirationTime,M(U,A);else break;A=I(re)}}function se(R){if(oe=!1,te(R),!B)if(I(U)!==null)B=!0,t(ae);else{var A=I(re);A!==null&&n(se,A.startTime-R)}}function ae(R,A){B=!1,oe&&(oe=!1,r()),X=!0;var N=ee;try{for(te(A),ke=I(U);ke!==null&&(!(ke.expirationTime>A)||R&&!e.unstable_shouldYield());){var D=ke.callback;if(typeof D=="function"){ke.callback=null,ee=ke.priorityLevel;var $=D(ke.expirationTime<=A);A=e.unstable_now(),typeof $=="function"?ke.callback=$:ke===I(U)&&j(U),te(A)}else j(U);ke=I(U)}if(ke!==null)var J=!0;else{var ce=I(re);ce!==null&&n(se,ce.startTime-A),J=!1}return J}finally{ke=null,ee=N,X=!1}}var k=o;e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(R){R.callback=null},e.unstable_continueExecution=function(){B||X||(B=!0,t(ae))},e.unstable_getCurrentPriorityLevel=function(){return ee},e.unstable_getFirstCallbackNode=function(){return I(U)},e.unstable_next=function(R){switch(ee){case 1:case 2:case 3:var A=3;break;default:A=ee}var N=ee;ee=A;try{return R()}finally{ee=N}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=k,e.unstable_runWithPriority=function(R,A){switch(R){case 1:case 2:case 3:case 4:case 5:break;default:R=3}var N=ee;ee=R;try{return A()}finally{ee=N}},e.unstable_scheduleCallback=function(R,A,N){var D=e.unstable_now();switch(typeof N=="object"&&N!==null?(N=N.delay,N=typeof N=="number"&&0D?(R.sortIndex=N,M(re,R),I(U)===null&&R===I(re)&&(oe?r():oe=!0,n(se,N-D))):(R.sortIndex=$,M(U,R),B||X||(B=!0,t(ae))),R},e.unstable_wrapCallback=function(R){var A=ee;return function(){var N=ee;ee=A;try{return R.apply(this,arguments)}finally{ee=N}}}})($f);zf.exports=$f;/** @license React v17.0.2 + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var yi=Y.exports,be=wf,Ye=zf.exports;function q(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;nt}return!1}function lt(e,t,n,r,o,i,u){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=u}var Xe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Xe[e]=new lt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Xe[t]=new lt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Xe[e]=new lt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Xe[e]=new lt(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Xe[e]=new lt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Xe[e]=new lt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Xe[e]=new lt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Xe[e]=new lt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Xe[e]=new lt(e,5,!1,e.toLowerCase(),null,!1,!1)});var dl=/[\-:]([a-z])/g;function pl(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(dl,pl);Xe[t]=new lt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(dl,pl);Xe[t]=new lt(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(dl,pl);Xe[t]=new lt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Xe[e]=new lt(e,1,!1,e.toLowerCase(),null,!1,!1)});Xe.xlinkHref=new lt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Xe[e]=new lt(e,1,!1,e.toLowerCase(),null,!0,!0)});function hl(e,t,n,r){var o=Xe.hasOwnProperty(t)?Xe[t]:null,i=o!==null?o.type===0:r?!1:!(!(2a||o[u]!==i[a])return` +`+o[u].replace(" at new "," at ");while(1<=u&&0<=a);break}}}finally{Cl=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?eo(e):""}function Cy(e){switch(e.tag){case 5:return eo(e.type);case 16:return eo("Lazy");case 13:return eo("Suspense");case 19:return eo("SuspenseList");case 0:case 2:case 15:return e=Ei(e.type,!1),e;case 11:return e=Ei(e.type.render,!1),e;case 22:return e=Ei(e.type._render,!1),e;case 1:return e=Ei(e.type,!0),e;default:return""}}function lr(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ln:return"Fragment";case zn:return"Portal";case Xr:return"Profiler";case vl:return"StrictMode";case Jr:return"Suspense";case Si:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case gl:return(e.displayName||"Context")+".Consumer";case ml:return(e._context.displayName||"Context")+".Provider";case wi:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case _i:return lr(e.type);case wl:return lr(e._render);case yl:t=e._payload,e=e._init;try{return lr(e(t))}catch{}}return null}function an(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function Hf(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Ry(e){var t=Hf(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n!="undefined"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(u){r=""+u,i.call(this,u)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(u){r=""+u},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function xi(e){e._valueTracker||(e._valueTracker=Ry(e))}function Wf(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Hf(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Ci(e){if(e=e||(typeof document!="undefined"?document:void 0),typeof e=="undefined")return null;try{return e.activeElement||e.body}catch{return e.body}}function Rl(e,t){var n=t.checked;return be({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n!=null?n:e._wrapperState.initialChecked})}function Vf(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=an(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Gf(e,t){t=t.checked,t!=null&&hl(e,"checked",t,!1)}function Pl(e,t){Gf(e,t);var n=an(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Ol(e,t.type,n):t.hasOwnProperty("defaultValue")&&Ol(e,t.type,an(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Yf(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Ol(e,t,n){(t!=="number"||Ci(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}function Py(e){var t="";return yi.Children.forEach(e,function(n){n!=null&&(t+=n)}),t}function Tl(e,t){return e=be({children:void 0},t),(t=Py(t.children))&&(e.children=t),e}function ar(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o=n.length))throw Error(q(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:an(n)}}function Kf(e,t){var n=an(t.value),r=an(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=""+r)}function Qf(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}var Il={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function Xf(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Al(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Xf(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Ri,Jf=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(t,n,r,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,o)})}:e}(function(e,t){if(e.namespaceURI!==Il.svg||"innerHTML"in e)e.innerHTML=t;else{for(Ri=Ri||document.createElement("div"),Ri.innerHTML=""+t.valueOf().toString()+"",t=Ri.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function to(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var no={animationIterationCount:!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},Oy=["Webkit","ms","Moz","O"];Object.keys(no).forEach(function(e){Oy.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),no[t]=no[e]})});function Zf(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||no.hasOwnProperty(e)&&no[e]?(""+t).trim():t+"px"}function ed(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,o=Zf(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}var Ty=be({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ml(e,t){if(t){if(Ty[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(q(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(q(60));if(!(typeof t.dangerouslySetInnerHTML=="object"&&"__html"in t.dangerouslySetInnerHTML))throw Error(q(61))}if(t.style!=null&&typeof t.style!="object")throw Error(q(62))}}function Nl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Ll(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var zl=null,sr=null,cr=null;function td(e){if(e=Eo(e)){if(typeof zl!="function")throw Error(q(280));var t=e.stateNode;t&&(t=Hi(t),zl(e.stateNode,e.type,t))}}function nd(e){sr?cr?cr.push(e):cr=[e]:sr=e}function rd(){if(sr){var e=sr,t=cr;if(cr=sr=null,td(e),t)for(e=0;er?0:1<n;n++)t.push(e);return t}function Mi(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,e=e.eventTimes,t=31-dn(t),e[t]=n}var dn=Math.clz32?Math.clz32:Wy,Uy=Math.log,Hy=Math.LN2;function Wy(e){return e===0?32:31-(Uy(e)/Hy|0)|0}var Vy=Ye.unstable_UserBlockingPriority,Gy=Ye.unstable_runWithPriority,Ni=!0;function Yy(e,t,n,r){$n||bl();var o=Kl,i=$n;$n=!0;try{od(o,e,t,n,r)}finally{($n=i)||Dl()}}function qy(e,t,n,r){Gy(Vy,Kl.bind(null,e,t,n,r))}function Kl(e,t,n,r){if(Ni){var o;if((o=(t&4)==0)&&0=vo),Id=String.fromCharCode(32),Ad=!1;function Md(e,t){switch(e){case"keyup":return g0.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Nd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var vr=!1;function w0(e,t){switch(e){case"compositionend":return Nd(t);case"keypress":return t.which!==32?null:(Ad=!0,Id);case"textInput":return e=t.data,e===Id&&Ad?null:e;default:return null}}function S0(e,t){if(vr)return e==="compositionend"||!ra&&Md(e,t)?(e=Cd(),Li=Xl=pn=null,vr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=jd(n)}}function Ud(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ud(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Hd(){for(var e=window,t=Ci();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Ci(e.document)}return t}function ua(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var I0=Kt&&"documentMode"in document&&11>=document.documentMode,mr=null,la=null,wo=null,aa=!1;function Wd(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;aa||mr==null||mr!==Ci(r)||(r=mr,"selectionStart"in r&&ua(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),wo&&yo(wo,r)||(wo=r,r=Di(la,"onSelect"),0_r||(e.current=va[_r],va[_r]=null,_r--)}function De(e,t){_r++,va[_r]=e.current,e.current=t}var mn={},tt=vn(mn),ft=vn(!1),Dn=mn;function Er(e,t){var n=e.type.contextTypes;if(!n)return mn;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o={},i;for(i in n)o[i]=t[i];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function dt(e){return e=e.childContextTypes,e!=null}function Wi(){Le(ft),Le(tt)}function up(e,t,n){if(tt.current!==mn)throw Error(q(168));De(tt,t),De(ft,n)}function lp(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var o in r)if(!(o in e))throw Error(q(108,lr(t)||"Unknown",o));return be({},n,r)}function Vi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||mn,Dn=tt.current,De(tt,e),De(ft,ft.current),!0}function ap(e,t,n){var r=e.stateNode;if(!r)throw Error(q(169));n?(e=lp(e,t,Dn),r.__reactInternalMemoizedMergedChildContext=e,Le(ft),Le(tt),De(tt,e)):Le(ft),De(ft,n)}var ma=null,jn=null,N0=Ye.unstable_runWithPriority,ga=Ye.unstable_scheduleCallback,ya=Ye.unstable_cancelCallback,L0=Ye.unstable_shouldYield,sp=Ye.unstable_requestPaint,wa=Ye.unstable_now,z0=Ye.unstable_getCurrentPriorityLevel,Gi=Ye.unstable_ImmediatePriority,cp=Ye.unstable_UserBlockingPriority,fp=Ye.unstable_NormalPriority,dp=Ye.unstable_LowPriority,pp=Ye.unstable_IdlePriority,Sa={},$0=sp!==void 0?sp:function(){},Qt=null,Yi=null,_a=!1,hp=wa(),nt=1e4>hp?wa:function(){return wa()-hp};function xr(){switch(z0()){case Gi:return 99;case cp:return 98;case fp:return 97;case dp:return 96;case pp:return 95;default:throw Error(q(332))}}function vp(e){switch(e){case 99:return Gi;case 98:return cp;case 97:return fp;case 96:return dp;case 95:return pp;default:throw Error(q(332))}}function Bn(e,t){return e=vp(e),N0(e,t)}function xo(e,t,n){return e=vp(e),ga(e,t,n)}function Ft(){if(Yi!==null){var e=Yi;Yi=null,ya(e)}mp()}function mp(){if(!_a&&Qt!==null){_a=!0;var e=0;try{var t=Qt;Bn(99,function(){for(;ej?(V=I,I=null):V=I.sibling;var U=S(d,I,v[j],w);if(U===null){I===null&&(I=V);break}e&&I&&U.alternate===null&&t(d,I),h=i(U,h,j),M===null?_=U:M.sibling=U,M=U,I=V}if(j===v.length)return n(d,I),_;if(I===null){for(;jj?(V=I,I=null):V=I.sibling;var re=S(d,I,U.value,w);if(re===null){I===null&&(I=V);break}e&&I&&re.alternate===null&&t(d,I),h=i(re,h,j),M===null?_=re:M.sibling=re,M=re,I=V}if(U.done)return n(d,I),_;if(I===null){for(;!U.done;j++,U=v.next())U=E(d,U.value,w),U!==null&&(h=i(U,h,j),M===null?_=U:M.sibling=U,M=U);return _}for(I=r(d,I);!U.done;j++,U=v.next())U=P(I,d,j,U.value,w),U!==null&&(e&&U.alternate!==null&&I.delete(U.key===null?j:U.key),h=i(U,h,j),M===null?_=U:M.sibling=U,M=U);return e&&I.forEach(function(xe){return t(d,xe)}),_}return function(d,h,v,w){var _=typeof v=="object"&&v!==null&&v.type===ln&&v.key===null;_&&(v=v.props.children);var M=typeof v=="object"&&v!==null;if(M)switch(v.$$typeof){case Qr:e:{for(M=v.key,_=h;_!==null;){if(_.key===M){switch(_.tag){case 7:if(v.type===ln){n(d,_.sibling),h=o(_,v.props.children),h.return=d,d=h;break e}break;default:if(_.elementType===v.type){n(d,_.sibling),h=o(_,v.props),h.ref=Ro(d,_,v),h.return=d,d=h;break e}}n(d,_);break}else t(d,_);_=_.sibling}v.type===ln?(h=Nr(v.props.children,d.mode,w,v.key),h.return=d,d=h):(w=yu(v.type,v.key,v.props,null,d.mode,w),w.ref=Ro(d,h,v),w.return=d,d=w)}return u(d);case zn:e:{for(_=v.key;h!==null;){if(h.key===_)if(h.tag===4&&h.stateNode.containerInfo===v.containerInfo&&h.stateNode.implementation===v.implementation){n(d,h.sibling),h=o(h,v.children||[]),h.return=d,d=h;break e}else{n(d,h);break}else t(d,h);h=h.sibling}h=as(v,d.mode,w),h.return=d,d=h}return u(d)}if(typeof v=="string"||typeof v=="number")return v=""+v,h!==null&&h.tag===6?(n(d,h.sibling),h=o(h,v),h.return=d,d=h):(n(d,h),h=ls(v,d.mode,w),h.return=d,d=h),u(d);if(Zi(v))return O(d,h,v,w);if(Zr(v))return T(d,h,v,w);if(M&&eu(d,v),typeof v=="undefined"&&!_)switch(d.tag){case 1:case 22:case 0:case 11:case 15:throw Error(q(152,lr(d.type)||"Component"))}return n(d,h)}}var tu=Rp(!0),Pp=Rp(!1),Po={},Dt=vn(Po),Oo=vn(Po),To=vn(Po);function Un(e){if(e===Po)throw Error(q(174));return e}function Pa(e,t){switch(De(To,t),De(Oo,e),De(Dt,Po),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Al(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Al(t,e)}Le(Dt),De(Dt,t)}function Pr(){Le(Dt),Le(Oo),Le(To)}function Op(e){Un(To.current);var t=Un(Dt.current),n=Al(t,e.type);t!==n&&(De(Oo,e),De(Dt,n))}function Oa(e){Oo.current===e&&(Le(Dt),Le(Oo))}var je=vn(0);function nu(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&64)!=0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Xt=null,Sn=null,jt=!1;function Tp(e,t){var n=kt(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,e.lastEffect!==null?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function kp(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,!0):!1;case 13:return!1;default:return!1}}function Ta(e){if(jt){var t=Sn;if(t){var n=t;if(!kp(e,t)){if(t=yr(n.nextSibling),!t||!kp(e,t)){e.flags=e.flags&-1025|2,jt=!1,Xt=e;return}Tp(Xt,n)}Xt=e,Sn=yr(t.firstChild)}else e.flags=e.flags&-1025|2,jt=!1,Xt=e}}function Ip(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Xt=e}function ru(e){if(e!==Xt)return!1;if(!jt)return Ip(e),jt=!0,!1;var t=e.type;if(e.tag!==5||t!=="head"&&t!=="body"&&!da(t,e.memoizedProps))for(t=Sn;t;)Tp(e,t),t=yr(t.nextSibling);if(Ip(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(q(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){Sn=yr(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}Sn=null}}else Sn=Xt?yr(e.stateNode.nextSibling):null;return!0}function ka(){Sn=Xt=null,jt=!1}var Or=[];function Ia(){for(var e=0;ei))throw Error(q(301));i+=1,Je=rt=null,t.updateQueue=null,ko.current=B0,e=n(r,o)}while(Ao)}if(ko.current=au,t=rt!==null&&rt.next!==null,Io=0,Je=rt=Be=null,ou=!1,t)throw Error(q(300));return e}function Hn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Je===null?Be.memoizedState=Je=e:Je=Je.next=e,Je}function Wn(){if(rt===null){var e=Be.alternate;e=e!==null?e.memoizedState:null}else e=rt.next;var t=Je===null?Be.memoizedState:Je.next;if(t!==null)Je=t,rt=e;else{if(e===null)throw Error(q(310));rt=e,e={memoizedState:rt.memoizedState,baseState:rt.baseState,baseQueue:rt.baseQueue,queue:rt.queue,next:null},Je===null?Be.memoizedState=Je=e:Je=Je.next=e}return Je}function Bt(e,t){return typeof t=="function"?t(e):t}function Mo(e){var t=Wn(),n=t.queue;if(n===null)throw Error(q(311));n.lastRenderedReducer=e;var r=rt,o=r.baseQueue,i=n.pending;if(i!==null){if(o!==null){var u=o.next;o.next=i.next,i.next=u}r.baseQueue=o=i,n.pending=null}if(o!==null){o=o.next,r=r.baseState;var a=u=i=null,c=o;do{var s=c.lane;if((Io&s)===s)a!==null&&(a=a.next={lane:0,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null}),r=c.eagerReducer===e?c.eagerState:e(r,c.action);else{var m={lane:s,action:c.action,eagerReducer:c.eagerReducer,eagerState:c.eagerState,next:null};a===null?(u=a=m,i=r):a=a.next=m,Be.lanes|=s,$o|=s}c=c.next}while(c!==null&&c!==o);a===null?i=r:a.next=u,Rt(r,t.memoizedState)||(Nt=!0),t.memoizedState=r,t.baseState=i,t.baseQueue=a,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function No(e){var t=Wn(),n=t.queue;if(n===null)throw Error(q(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(o!==null){n.pending=null;var u=o=o.next;do i=e(i,u.action),u=u.next;while(u!==o);Rt(i,t.memoizedState)||(Nt=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Ap(e,t,n){var r=t._getVersion;r=r(t._source);var o=t._workInProgressVersionPrimary;if(o!==null?e=o===r:(e=e.mutableReadLanes,(e=(Io&e)===e)&&(t._workInProgressVersionPrimary=r,Or.push(t))),e)return n(t._source);throw Or.push(t),Error(q(350))}function Mp(e,t,n,r){var o=at;if(o===null)throw Error(q(349));var i=t._getVersion,u=i(t._source),a=ko.current,c=a.useState(function(){return Ap(o,t,n)}),s=c[1],m=c[0];c=Je;var E=e.memoizedState,S=E.refs,P=S.getSnapshot,O=E.source;E=E.subscribe;var T=Be;return e.memoizedState={refs:S,source:t,subscribe:r},a.useEffect(function(){S.getSnapshot=n,S.setSnapshot=s;var d=i(t._source);if(!Rt(u,d)){d=n(t._source),Rt(m,d)||(s(d),d=En(T),o.mutableReadLanes|=d&o.pendingLanes),d=o.mutableReadLanes,o.entangledLanes|=d;for(var h=o.entanglements,v=d;0n?98:n,function(){e(!0)}),Bn(97<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=u.createElement(n,{is:r.is}):(e=u.createElement(n),n==="select"&&(u=e,r.multiple?u.multiple=!0:r.size&&(u.size=r.size))):e=u.createElementNS(e,n),e[hn]=t,e[Ui]=r,Zp(e,t,!1,!1),t.stateNode=e,u=Nl(n,r),n){case"dialog":Ne("cancel",e),Ne("close",e),o=r;break;case"iframe":case"object":case"embed":Ne("load",e),o=r;break;case"video":case"audio":for(o=0;oJa&&(t.flags|=64,i=!0,zo(r,!1),t.lanes=33554432)}else{if(!i)if(e=nu(u),e!==null){if(t.flags|=64,i=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),zo(r,!0),r.tail===null&&r.tailMode==="hidden"&&!u.alternate&&!jt)return t=t.lastEffect=r.lastEffect,t!==null&&(t.nextEffect=null),null}else 2*nt()-r.renderingStartTime>Ja&&n!==1073741824&&(t.flags|=64,i=!0,zo(r,!1),t.lanes=33554432);r.isBackwards?(u.sibling=t.child,t.child=u):(n=r.last,n!==null?n.sibling=u:t.child=u,r.last=u)}return r.tail!==null?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=nt(),n.sibling=null,t=je.current,De(je,i?t&1|2:t&1),n):null;case 23:case 24:return os(),e!==null&&e.memoizedState!==null!=(t.memoizedState!==null)&&r.mode!=="unstable-defer-without-hiding"&&(t.flags|=4),null}throw Error(q(156,t.tag))}function W0(e){switch(e.tag){case 1:dt(e.type)&&Wi();var t=e.flags;return t&4096?(e.flags=t&-4097|64,e):null;case 3:if(Pr(),Le(ft),Le(tt),Ia(),t=e.flags,(t&64)!=0)throw Error(q(285));return e.flags=t&-4097|64,e;case 5:return Oa(e),null;case 13:return Le(je),t=e.flags,t&4096?(e.flags=t&-4097|64,e):null;case 19:return Le(je),null;case 4:return Pr(),null;case 10:return xa(e),null;case 23:case 24:return os(),null;default:return null}}function Ua(e,t){try{var n="",r=t;do n+=Cy(r),r=r.return;while(r);var o=n}catch(i){o=` +Error generating stack: `+i.message+` +`+i.stack}return{value:e,source:t,stack:o}}function Ha(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var V0=typeof WeakMap=="function"?WeakMap:Map;function nh(e,t,n){n=yn(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){du||(du=!0,Za=r),Ha(e,t)},n}function rh(e,t,n){n=yn(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r=="function"){var o=t.value;n.payload=function(){return Ha(e,t),r(o)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){typeof r!="function"&&(Ut===null?Ut=new Set([this]):Ut.add(this),Ha(e,t));var u=t.stack;this.componentDidCatch(t.value,{componentStack:u!==null?u:""})}),n}var G0=typeof WeakSet=="function"?WeakSet:Set;function oh(e){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(n){Rn(e,n)}else t.current=null}function Y0(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(t.flags&256&&e!==null){var n=e.memoizedProps,r=e.memoizedState;e=t.stateNode,t=e.getSnapshotBeforeUpdate(t.elementType===t.type?n:Mt(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:t.flags&256&&pa(t.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(q(163))}function q0(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(t=n.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{if((e.tag&3)==3){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(t=n.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{var o=e;r=o.next,o=o.tag,(o&4)!=0&&(o&1)!=0&&(wh(n,e),nw(n,e)),e=r}while(e!==t)}return;case 1:e=n.stateNode,n.flags&4&&(t===null?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:Mt(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),t=n.updateQueue,t!==null&&Sp(n,t,e);return;case 3:if(t=n.updateQueue,t!==null){if(e=null,n.child!==null)switch(n.child.tag){case 5:e=n.child.stateNode;break;case 1:e=n.child.stateNode}Sp(n,t,e)}return;case 5:e=n.stateNode,t===null&&n.flags&4&&tp(n.type,n.memoizedProps)&&e.focus();return;case 6:return;case 4:return;case 12:return;case 13:n.memoizedState===null&&(n=n.alternate,n!==null&&(n=n.memoizedState,n!==null&&(n=n.dehydrated,n!==null&&md(n))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(q(163))}function ih(e,t){for(var n=e;;){if(n.tag===5){var r=n.stateNode;if(t)r=r.style,typeof r.setProperty=="function"?r.setProperty("display","none","important"):r.display="none";else{r=n.stateNode;var o=n.memoizedProps.style;o=o!=null&&o.hasOwnProperty("display")?o.display:null,r.style.display=Zf("display",o)}}else if(n.tag===6)n.stateNode.nodeValue=t?"":n.memoizedProps;else if((n.tag!==23&&n.tag!==24||n.memoizedState===null||n===e)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function uh(e,t){if(jn&&typeof jn.onCommitFiberUnmount=="function")try{jn.onCommitFiberUnmount(ma,t)}catch{}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(e=t.updateQueue,e!==null&&(e=e.lastEffect,e!==null)){var n=e=e.next;do{var r=n,o=r.destroy;if(r=r.tag,o!==void 0)if((r&4)!=0)wh(t,n);else{r=t;try{o()}catch(i){Rn(r,i)}}n=n.next}while(n!==e)}break;case 1:if(oh(t),e=t.stateNode,typeof e.componentWillUnmount=="function")try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(i){Rn(t,i)}break;case 5:oh(t);break;case 4:ch(e,t)}}function lh(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function ah(e){return e.tag===5||e.tag===3||e.tag===4}function sh(e){e:{for(var t=e.return;t!==null;){if(ah(t))break e;t=t.return}throw Error(q(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:t=t.containerInfo,r=!0;break;case 4:t=t.containerInfo,r=!0;break;default:throw Error(q(161))}n.flags&16&&(to(t,""),n.flags&=-17);e:t:for(n=e;;){for(;n.sibling===null;){if(n.return===null||ah(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&&n.tag!==6&&n.tag!==18;){if(n.flags&2||n.child===null||n.tag===4)continue t;n.child.return=n,n=n.child}if(!(n.flags&2)){n=n.stateNode;break e}}r?Wa(e,n,t):Va(e,n,t)}function Wa(e,t,n){var r=e.tag,o=r===5||r===6;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=ji));else if(r!==4&&(e=e.child,e!==null))for(Wa(e,t,n),e=e.sibling;e!==null;)Wa(e,t,n),e=e.sibling}function Va(e,t,n){var r=e.tag,o=r===5||r===6;if(o)e=o?e.stateNode:e.stateNode.instance,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Va(e,t,n),e=e.sibling;e!==null;)Va(e,t,n),e=e.sibling}function ch(e,t){for(var n=t,r=!1,o,i;;){if(!r){r=n.return;e:for(;;){if(r===null)throw Error(q(160));switch(o=r.stateNode,r.tag){case 5:i=!1;break e;case 3:o=o.containerInfo,i=!0;break e;case 4:o=o.containerInfo,i=!0;break e}r=r.return}r=!0}if(n.tag===5||n.tag===6){e:for(var u=e,a=n,c=a;;)if(uh(u,c),c.child!==null&&c.tag!==4)c.child.return=c,c=c.child;else{if(c===a)break e;for(;c.sibling===null;){if(c.return===null||c.return===a)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}i?(u=o,a=n.stateNode,u.nodeType===8?u.parentNode.removeChild(a):u.removeChild(a)):o.removeChild(n.stateNode)}else if(n.tag===4){if(n.child!==null){o=n.stateNode.containerInfo,i=!0,n.child.return=n,n=n.child;continue}}else if(uh(e,n),n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return,n.tag===4&&(r=!1)}n.sibling.return=n.return,n=n.sibling}}function Ga(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var n=t.updateQueue;if(n=n!==null?n.lastEffect:null,n!==null){var r=n=n.next;do(r.tag&3)==3&&(e=r.destroy,r.destroy=void 0,e!==void 0&&e()),r=r.next;while(r!==n)}return;case 1:return;case 5:if(n=t.stateNode,n!=null){r=t.memoizedProps;var o=e!==null?e.memoizedProps:r;e=t.type;var i=t.updateQueue;if(t.updateQueue=null,i!==null){for(n[Ui]=r,e==="input"&&r.type==="radio"&&r.name!=null&&Gf(n,r),Nl(e,o),t=Nl(e,r),o=0;oo&&(o=u),n&=~i}if(n=o,n=nt()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*Q0(n/1960))-n,10 component higher in the tree to provide a loading indicator or placeholder to display.`)}Ze!==5&&(Ze=2),c=Ua(c,a),S=u;do{switch(S.tag){case 3:i=c,S.flags|=4096,t&=-t,S.lanes|=t;var M=nh(S,i,t);wp(S,M);break e;case 1:i=c;var I=S.type,j=S.stateNode;if((S.flags&64)==0&&(typeof I.getDerivedStateFromError=="function"||j!==null&&typeof j.componentDidCatch=="function"&&(Ut===null||!Ut.has(j)))){S.flags|=4096,t&=-t,S.lanes|=t;var V=rh(S,i,t);wp(S,V);break e}}S=S.return}while(S!==null)}yh(n)}catch(U){t=U,We===n&&n!==null&&(We=n=n.return);continue}break}while(1)}function mh(){var e=cu.current;return cu.current=au,e===null?au:e}function Bo(e,t){var n=ye;ye|=16;var r=mh();at===e&&ot===t||Mr(e,t);do try{J0();break}catch(o){vh(e,o)}while(1);if(Ea(),ye=n,cu.current=r,We!==null)throw Error(q(261));return at=null,ot=0,Ze}function J0(){for(;We!==null;)gh(We)}function Z0(){for(;We!==null&&!L0();)gh(We)}function gh(e){var t=_h(e.alternate,e,Vn);e.memoizedProps=e.pendingProps,t===null?yh(e):We=t,Ya.current=null}function yh(e){var t=e;do{var n=t.alternate;if(e=t.return,(t.flags&2048)==0){if(n=H0(n,t,Vn),n!==null){We=n;return}if(n=t,n.tag!==24&&n.tag!==23||n.memoizedState===null||(Vn&1073741824)!=0||(n.mode&4)==0){for(var r=0,o=n.child;o!==null;)r|=o.lanes|o.childLanes,o=o.sibling;n.childLanes=r}e!==null&&(e.flags&2048)==0&&(e.firstEffect===null&&(e.firstEffect=t.firstEffect),t.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1u&&(a=u,u=M,M=a),a=Bd(v,M),i=Bd(v,u),a&&i&&(_.rangeCount!==1||_.anchorNode!==a.node||_.anchorOffset!==a.offset||_.focusNode!==i.node||_.focusOffset!==i.offset)&&(w=w.createRange(),w.setStart(a.node,a.offset),_.removeAllRanges(),M>u?(_.addRange(w),_.extend(i.node,i.offset)):(w.setEnd(i.node,i.offset),_.addRange(w)))))),w=[],_=v;_=_.parentNode;)_.nodeType===1&&w.push({element:_,left:_.scrollLeft,top:_.scrollTop});for(typeof v.focus=="function"&&v.focus(),v=0;vnt()-Xa?Mr(e,0):Ka|=n),Tt(e,t)}function iw(e,t){var n=e.stateNode;n!==null&&n.delete(t),t=0,t===0&&(t=e.mode,(t&2)==0?t=1:(t&4)==0?t=xr()===99?1:2:(en===0&&(en=Tr),t=pr(62914560&~en),t===0&&(t=4194304))),n=gt(),e=mu(e,t),e!==null&&(Mi(e,t,n),Tt(e,n))}var _h;_h=function(e,t,n){var r=t.lanes;if(e!==null)if(e.memoizedProps!==t.pendingProps||ft.current)Nt=!0;else if((n&r)!=0)Nt=(e.flags&16384)!=0;else{switch(Nt=!1,t.tag){case 3:Gp(t),ka();break;case 5:Op(t);break;case 1:dt(t.type)&&Vi(t);break;case 4:Pa(t,t.stateNode.containerInfo);break;case 10:r=t.memoizedProps.value;var o=t.type._context;De(qi,o._currentValue),o._currentValue=r;break;case 13:if(t.memoizedState!==null)return(n&t.child.childLanes)!=0?Yp(e,t,n):(De(je,je.current&1),t=Jt(e,t,n),t!==null?t.sibling:null);De(je,je.current&1);break;case 19:if(r=(n&t.childLanes)!=0,(e.flags&64)!=0){if(r)return Jp(e,t,n);t.flags|=64}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),De(je,je.current),r)break;return null;case 23:case 24:return t.lanes=0,ba(e,t,n)}return Jt(e,t,n)}else Nt=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,o=Er(t,tt.current),Rr(t,n),o=Ma(null,t,r,e,o,n),t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,dt(r)){var i=!0;Vi(t)}else i=!1;t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,Ca(t);var u=r.getDerivedStateFromProps;typeof u=="function"&&Xi(t,r,u,e),o.updater=Ji,t.stateNode=o,o._reactInternals=t,Ra(t,r,e,n),t=Da(null,t,r,!0,i,n)}else t.tag=0,ht(null,t,o,n),t=t.child;return t;case 16:o=t.elementType;e:{switch(e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=o._init,o=i(o._payload),t.type=o,i=t.tag=lw(o),e=Mt(o,e),i){case 0:t=Fa(null,t,o,e,n);break e;case 1:t=Vp(null,t,o,e,n);break e;case 11:t=Bp(null,t,o,e,n);break e;case 14:t=Up(null,t,o,Mt(o.type,e),r,n);break e}throw Error(q(306,o,""))}return t;case 0:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Mt(r,o),Fa(e,t,r,o,n);case 1:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Mt(r,o),Vp(e,t,r,o,n);case 3:if(Gp(t),r=t.updateQueue,e===null||r===null)throw Error(q(282));if(r=t.pendingProps,o=t.memoizedState,o=o!==null?o.element:null,yp(e,t),Co(t,r,null,n),r=t.memoizedState.element,r===o)ka(),t=Jt(e,t,n);else{if(o=t.stateNode,(i=o.hydrate)&&(Sn=yr(t.stateNode.containerInfo.firstChild),Xt=t,i=jt=!0),i){if(e=o.mutableSourceEagerHydrationData,e!=null)for(o=0;o{o(t,{replace:n,state:r})}),null}function mw(e){return _w(e.context)}function gw(e){Lt(!1)}function yw(e){let{basename:t="/",children:n=null,location:r,navigationType:o=Yn.Pop,navigator:i,static:u=!1}=e;Lr()&&Lt(!1);let a=Bw(t),c=Y.exports.useMemo(()=>({basename:a,navigator:i,static:u}),[a,i,u]);typeof r=="string"&&(r=On(r));let{pathname:s="/",search:m="",hash:E="",state:S=null,key:P="default"}=r,O=Y.exports.useMemo(()=>{let T=Mh(s,a);return T==null?null:{pathname:T,search:m,hash:E,state:S,key:P}},[a,s,m,E,S,P]);return O==null?null:Y.exports.createElement(ps.Provider,{value:c},Y.exports.createElement(hs.Provider,{children:n,value:{location:O,navigationType:o}}))}function mP(e){let{children:t,location:n}=e;return Ew(ms(t),n)}function ww(e){Lr()||Lt(!1);let{basename:t,navigator:n}=Y.exports.useContext(ps),{hash:r,pathname:o,search:i}=vs(e),u=o;if(t!=="/"){let a=jw(e),c=a!=null&&a.endsWith("/");u=o==="/"?t+(c?"/":""):Tn([t,o])}return n.createHref({pathname:u,search:i,hash:r})}function Lr(){return Y.exports.useContext(hs)!=null}function Yo(){return Lr()||Lt(!1),Y.exports.useContext(hs).location}function Th(){Lr()||Lt(!1);let{basename:e,navigator:t}=Y.exports.useContext(ps),{matches:n}=Y.exports.useContext(Go),{pathname:r}=Yo(),o=JSON.stringify(n.map(a=>a.pathnameBase)),i=Y.exports.useRef(!1);return Y.exports.useEffect(()=>{i.current=!0}),Y.exports.useCallback(function(a,c){if(c===void 0&&(c={}),!i.current)return;if(typeof a=="number"){t.go(a);return}let s=Ah(a,JSON.parse(o),r);e!=="/"&&(s.pathname=Tn([e,s.pathname])),(c.replace?t.replace:t.push)(s,c.state)},[e,t,o,r])}const Sw=Y.exports.createContext(null);function _w(e){let t=Y.exports.useContext(Go).outlet;return t&&Y.exports.createElement(Sw.Provider,{value:e},t)}function vs(e){let{matches:t}=Y.exports.useContext(Go),{pathname:n}=Yo(),r=JSON.stringify(t.map(o=>o.pathnameBase));return Y.exports.useMemo(()=>Ah(e,JSON.parse(r),n),[e,r,n])}function Ew(e,t){Lr()||Lt(!1);let{matches:n}=Y.exports.useContext(Go),r=n[n.length-1],o=r?r.params:{};r&&r.pathname;let i=r?r.pathnameBase:"/";r&&r.route;let u=Yo(),a;if(t){var c;let S=typeof t=="string"?On(t):t;i==="/"||((c=S.pathname)==null?void 0:c.startsWith(i))||Lt(!1),a=S}else a=u;let s=a.pathname||"/",m=i==="/"?s:s.slice(i.length)||"/",E=xw(e,{pathname:m});return Lw(E&&E.map(S=>Object.assign({},S,{params:Object.assign({},o,S.params),pathname:Tn([i,S.pathname]),pathnameBase:S.pathnameBase==="/"?i:Tn([i,S.pathnameBase])})),n)}function ms(e){let t=[];return Y.exports.Children.forEach(e,n=>{if(!Y.exports.isValidElement(n))return;if(n.type===Y.exports.Fragment){t.push.apply(t,ms(n.props.children));return}n.type!==gw&&Lt(!1);let r={caseSensitive:n.props.caseSensitive,element:n.props.element,index:n.props.index,path:n.props.path};n.props.children&&(r.children=ms(n.props.children)),t.push(r)}),t}function xw(e,t,n){n===void 0&&(n="/");let r=typeof t=="string"?On(t):t,o=Mh(r.pathname||"/",n);if(o==null)return null;let i=kh(e);Cw(i);let u=null;for(let a=0;u==null&&a{let u={relativePath:o.path||"",caseSensitive:o.caseSensitive===!0,childrenIndex:i,route:o};u.relativePath.startsWith("/")&&(u.relativePath.startsWith(r)||Lt(!1),u.relativePath=u.relativePath.slice(r.length));let a=Tn([r,u.relativePath]),c=n.concat(u);o.children&&o.children.length>0&&(o.index===!0&&Lt(!1),kh(o.children,t,c,a)),!(o.path==null&&!o.index)&&t.push({path:a,score:Aw(a,o.index),routesMeta:c})}),t}function Cw(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:Mw(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const Rw=/^:\w+$/,Pw=3,Ow=2,Tw=1,kw=10,Iw=-2,Ih=e=>e==="*";function Aw(e,t){let n=e.split("/"),r=n.length;return n.some(Ih)&&(r+=Iw),t&&(r+=Ow),n.filter(o=>!Ih(o)).reduce((o,i)=>o+(Rw.test(i)?Pw:i===""?Tw:kw),r)}function Mw(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function Nw(e,t){let{routesMeta:n}=e,r={},o="/",i=[];for(let u=0;uY.exports.createElement(Go.Provider,{children:r.route.element!==void 0?r.route.element:Y.exports.createElement(mw,null),value:{outlet:n,matches:t.concat(e.slice(0,o+1))}}),null)}function zw(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=$w(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],u=i.replace(/(.)\/+$/,"$1"),a=o.slice(1);return{params:r.reduce((s,m,E)=>{if(m==="*"){let S=a[E]||"";u=i.slice(0,i.length-S.length).replace(/(.)\/+$/,"$1")}return s[m]=bw(a[E]||""),s},{}),pathname:i,pathnameBase:u,pattern:e}}function $w(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0);let r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^$?{}|()[\]]/g,"\\$&").replace(/:(\w+)/g,(u,a)=>(r.push(a),"([^\\/]+)"));return e.endsWith("*")?(r.push("*"),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):o+=n?"\\/*$":"(?:\\b|\\/|$)",[new RegExp(o,t?void 0:"i"),r]}function bw(e,t){try{return decodeURIComponent(e)}catch{return e}}function Fw(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?On(e):e;return{pathname:n?n.startsWith("/")?n:Dw(n,t):t,search:Uw(r),hash:Hw(o)}}function Dw(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function Ah(e,t,n){let r=typeof e=="string"?On(e):e,o=e===""||r.pathname===""?"/":r.pathname,i;if(o==null)i=n;else{let a=t.length-1;if(o.startsWith("..")){let c=o.split("/");for(;c[0]==="..";)c.shift(),a-=1;r.pathname=c.join("/")}i=a>=0?t[a]:"/"}let u=Fw(r,i);return o&&o!=="/"&&o.endsWith("/")&&!u.pathname.endsWith("/")&&(u.pathname+="/"),u}function jw(e){return e===""||e.pathname===""?"/":typeof e=="string"?On(e).pathname:e.pathname}function Mh(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=e.charAt(t.length);return n&&n!=="/"?null:e.slice(t.length)||"/"}const Tn=e=>e.join("/").replace(/\/\/+/g,"/"),Bw=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Uw=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Hw=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;/** + * React Router DOM v6.2.1 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */function Eu(){return Eu=Object.assign||function(e){for(var t=1;t=0)&&(n[o]=e[o]);return n}const Ww=["onClick","reloadDocument","replace","state","target","to"],Vw=["aria-current","caseSensitive","className","end","style","to","children"];function gP(e){let{basename:t,children:n,window:r}=e,o=Y.exports.useRef();o.current==null&&(o.current=vw({window:r}));let i=o.current,[u,a]=Y.exports.useState({action:i.action,location:i.location});return Y.exports.useLayoutEffect(()=>i.listen(a),[i]),Y.exports.createElement(yw,{basename:t,children:n,location:u.location,navigationType:u.action,navigator:i})}function Gw(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}const Yw=Y.exports.forwardRef(function(t,n){let{onClick:r,reloadDocument:o,replace:i=!1,state:u,target:a,to:c}=t,s=Nh(t,Ww),m=ww(c),E=qw(c,{replace:i,state:u,target:a});function S(P){r&&r(P),!P.defaultPrevented&&!o&&E(P)}return Y.exports.createElement("a",Eu({},s,{href:m,onClick:S,ref:n,target:a}))}),yP=Y.exports.forwardRef(function(t,n){let{"aria-current":r="page",caseSensitive:o=!1,className:i="",end:u=!1,style:a,to:c,children:s}=t,m=Nh(t,Vw),E=Yo(),S=vs(c),P=E.pathname,O=S.pathname;o||(P=P.toLowerCase(),O=O.toLowerCase());let T=P===O||!u&&P.startsWith(O)&&P.charAt(O.length)==="/",d=T?r:void 0,h;typeof i=="function"?h=i({isActive:T}):h=[i,T?"active":null].filter(Boolean).join(" ");let v=typeof a=="function"?a({isActive:T}):a;return Y.exports.createElement(Yw,Eu({},m,{"aria-current":d,className:h,ref:n,style:v,to:c}),typeof s=="function"?s({isActive:T}):s)});function qw(e,t){let{target:n,replace:r,state:o}=t===void 0?{}:t,i=Th(),u=Yo(),a=vs(e);return Y.exports.useCallback(c=>{if(c.button===0&&(!n||n==="_self")&&!Gw(c)){c.preventDefault();let s=!!r||Vo(u)===Vo(a);i(e,{replace:s,state:o})}},[u,i,a,r,o,n,e])}var Lh={exports:{}};/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/(function(e){(function(){var t={}.hasOwnProperty;function n(){for(var r=[],o=0;o-1&&e%1==0&&e-1&&e%1==0&&e<=V1}function Kh(e){return e!=null&&ws(e.length)&&!Wh(e)}var G1=Object.prototype;function Y1(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||G1;return e===n}function q1(e,t){for(var n=-1,r=Array(e);++n-1}function l_(e,t){var n=this.__data__,r=Cu(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function tn(e){var t=-1,n=e==null?0:e.length;for(this.clear();++to?0:o+t),n=n>o?o:n,n<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var i=Array(o);++r=r?e:R_(e,t,n)}var O_="\\ud800-\\udfff",T_="\\u0300-\\u036f",k_="\\ufe20-\\ufe2f",I_="\\u20d0-\\u20ff",A_=T_+k_+I_,M_="\\ufe0e\\ufe0f",N_="\\u200d",L_=RegExp("["+N_+O_+A_+M_+"]");function av(e){return L_.test(e)}function z_(e){return e.split("")}var sv="\\ud800-\\udfff",$_="\\u0300-\\u036f",b_="\\ufe20-\\ufe2f",F_="\\u20d0-\\u20ff",D_=$_+b_+F_,j_="\\ufe0e\\ufe0f",B_="["+sv+"]",Rs="["+D_+"]",Ps="\\ud83c[\\udffb-\\udfff]",U_="(?:"+Rs+"|"+Ps+")",cv="[^"+sv+"]",fv="(?:\\ud83c[\\udde6-\\uddff]){2}",dv="[\\ud800-\\udbff][\\udc00-\\udfff]",H_="\\u200d",pv=U_+"?",hv="["+j_+"]?",W_="(?:"+H_+"(?:"+[cv,fv,dv].join("|")+")"+hv+pv+")*",V_=hv+pv+W_,G_="(?:"+[cv+Rs+"?",Rs,fv,dv,B_].join("|")+")",Y_=RegExp(Ps+"(?="+Ps+")|"+G_+V_,"g");function q_(e){return e.match(Y_)||[]}function K_(e){return av(e)?q_(e):z_(e)}function Q_(e){return function(t){t=Zo(t);var n=av(t)?K_(t):void 0,r=n?n[0]:t.charAt(0),o=n?P_(n,1).join(""):t.slice(1);return r[e]()+o}}var X_=Q_("toUpperCase"),J_=X_;function SP(e){return J_(Zo(e).toLowerCase())}var Z_=Ht.isFinite,eE=Math.min;function tE(e){var t=Math[e];return function(n,r){if(n=Uh(n),r=r==null?0:eE(_1(r),292),r&&Z_(n)){var o=(Zo(n)+"e").split("e"),i=t(o[0]+"e"+(+o[1]+r));return o=(Zo(i)+"e").split("e"),+(o[0]+"e"+(+o[1]-r))}return t(n)}}function nE(){this.__data__=new tn,this.size=0}function rE(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function oE(e){return this.__data__.get(e)}function iE(e){return this.__data__.has(e)}var uE=200;function lE(e,t){var n=this.__data__;if(n instanceof tn){var r=n.__data__;if(!Jo||r.lengtha))return!1;var s=i.get(e),m=i.get(t);if(s&&m)return s==t&&m==e;var E=-1,S=!0,P=n&AE?new Ou:void 0;for(i.set(e,t),i.set(t,e);++E1?t-1:0),r=1;r3?t.i-4:t.i:Array.isArray(e)?1:Ns(e)?2:Ls(e)?3:0}function Ms(e,t){return Fr(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Ix(e,t){return Fr(e)===2?e.get(t):e[t]}function Av(e,t,n){var r=Fr(e);r===2?e.set(t,n):r===3?(e.delete(t),e.add(n)):e[t]=n}function Ax(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function Ns(e){return zx&&e instanceof Map}function Ls(e){return $x&&e instanceof Set}function Zn(e){return e.o||e.t}function zs(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=Fx(e);delete t[yt];for(var n=Vs(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=Mx),Object.freeze(e),t&&ei(e,function(n,r){return ti(r,!0)},!0)),e}function Mx(){zt(2)}function $s(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function Vt(e){var t=Dx[e];return t||zt(18,e),t}function Mv(){return ni}function bs(e,t){t&&(Vt("Patches"),e.u=[],e.s=[],e.v=t)}function ku(e){Fs(e),e.p.forEach(Nx),e.p=null}function Fs(e){e===ni&&(ni=e.l)}function Nv(e){return ni={p:[],l:ni,h:e,m:!0,_:0}}function Nx(e){var t=e[yt];t.i===0||t.i===1?t.j():t.O=!0}function Ds(e,t){t._=t.p.length;var n=t.p[0],r=e!==void 0&&e!==n;return t.h.g||Vt("ES5").S(t,e,r),r?(n[yt].P&&(ku(t),zt(4)),Jn(e)&&(e=Iu(t,e),t.l||Au(t,e)),t.u&&Vt("Patches").M(n[yt].t,e,t.u,t.s)):e=Iu(t,n,[]),ku(t),t.u&&t.v(t.u,t.s),e!==Dv?e:void 0}function Iu(e,t,n){if($s(t))return t;var r=t[yt];if(!r)return ei(t,function(i,u){return Lv(e,r,t,i,u,n)},!0),t;if(r.A!==e)return t;if(!r.P)return Au(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var o=r.i===4||r.i===5?r.o=zs(r.k):r.o;ei(r.i===3?new Set(o):o,function(i,u){return Lv(e,r,o,i,u,n)}),Au(e,o,!1),n&&e.u&&Vt("Patches").R(r,n,e.u,e.s)}return r.o}function Lv(e,t,n,r,o,i){if(br(o)){var u=Iu(e,o,i&&t&&t.i!==3&&!Ms(t.D,r)?i.concat(r):void 0);if(Av(n,r,u),!br(u))return;e.m=!1}if(Jn(o)&&!$s(o)){if(!e.h.F&&e._<1)return;Iu(e,o),t&&t.A.l||Au(e,o)}}function Au(e,t,n){n===void 0&&(n=!1),e.h.F&&e.m&&ti(t,n)}function js(e,t){var n=e[yt];return(n?Zn(n):e)[t]}function zv(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function Bs(e){e.P||(e.P=!0,e.l&&Bs(e.l))}function Us(e){e.o||(e.o=zs(e.t))}function Hs(e,t,n){var r=Ns(t)?Vt("MapSet").N(t,n):Ls(t)?Vt("MapSet").T(t,n):e.g?function(o,i){var u=Array.isArray(o),a={i:u?1:0,A:i?i.A:Mv(),P:!1,I:!1,D:{},l:i,t:o,k:null,o:null,j:null,C:!1},c=a,s=Gs;u&&(c=[a],s=ri);var m=Proxy.revocable(c,s),E=m.revoke,S=m.proxy;return a.k=S,a.j=E,S}(t,n):Vt("ES5").J(t,n);return(n?n.A:Mv()).p.push(r),r}function Lx(e){return br(e)||zt(22,e),function t(n){if(!Jn(n))return n;var r,o=n[yt],i=Fr(n);if(o){if(!o.P&&(o.i<4||!Vt("ES5").K(o)))return o.t;o.I=!0,r=$v(n,i),o.I=!1}else r=$v(n,i);return ei(r,function(u,a){o&&Ix(o.t,u)===a||Av(r,u,t(a))}),i===3?new Set(r):r}(e)}function $v(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return zs(e)}var bv,ni,Ws=typeof Symbol!="undefined"&&typeof Symbol("x")=="symbol",zx=typeof Map!="undefined",$x=typeof Set!="undefined",Fv=typeof Proxy!="undefined"&&Proxy.revocable!==void 0&&typeof Reflect!="undefined",Dv=Ws?Symbol.for("immer-nothing"):((bv={})["immer-nothing"]=!0,bv),jv=Ws?Symbol.for("immer-draftable"):"__$immer_draftable",yt=Ws?Symbol.for("immer-state"):"__$immer_state",bx=""+Object.prototype.constructor,Vs=typeof Reflect!="undefined"&&Reflect.ownKeys?Reflect.ownKeys:Object.getOwnPropertySymbols!==void 0?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:Object.getOwnPropertyNames,Fx=Object.getOwnPropertyDescriptors||function(e){var t={};return Vs(e).forEach(function(n){t[n]=Object.getOwnPropertyDescriptor(e,n)}),t},Dx={},Gs={get:function(e,t){if(t===yt)return e;var n=Zn(e);if(!Ms(n,t))return function(o,i,u){var a,c=zv(i,u);return c?"value"in c?c.value:(a=c.get)===null||a===void 0?void 0:a.call(o.k):void 0}(e,n,t);var r=n[t];return e.I||!Jn(r)?r:r===js(e.t,t)?(Us(e),e.o[t]=Hs(e.A.h,r,e)):r},has:function(e,t){return t in Zn(e)},ownKeys:function(e){return Reflect.ownKeys(Zn(e))},set:function(e,t,n){var r=zv(Zn(e),t);if(r==null?void 0:r.set)return r.set.call(e.k,n),!0;if(!e.P){var o=js(Zn(e),t),i=o==null?void 0:o[yt];if(i&&i.t===n)return e.o[t]=n,e.D[t]=!1,!0;if(Ax(n,o)&&(n!==void 0||Ms(e.t,t)))return!0;Us(e),Bs(e)}return e.o[t]===n&&typeof n!="number"&&(n!==void 0||t in e.o)||(e.o[t]=n,e.D[t]=!0,!0)},deleteProperty:function(e,t){return js(e.t,t)!==void 0||t in e.t?(e.D[t]=!1,Us(e),Bs(e)):delete e.D[t],e.o&&delete e.o[t],!0},getOwnPropertyDescriptor:function(e,t){var n=Zn(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{writable:!0,configurable:e.i!==1||t!=="length",enumerable:r.enumerable,value:n[t]}},defineProperty:function(){zt(11)},getPrototypeOf:function(e){return Object.getPrototypeOf(e.t)},setPrototypeOf:function(){zt(12)}},ri={};ei(Gs,function(e,t){ri[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}}),ri.deleteProperty=function(e,t){return ri.set.call(this,e,t,void 0)},ri.set=function(e,t,n){return Gs.set.call(this,e[0],t,n,e[0])};var jx=function(){function e(n){var r=this;this.g=Fv,this.F=!0,this.produce=function(o,i,u){if(typeof o=="function"&&typeof i!="function"){var a=i;i=o;var c=r;return function(T){var d=this;T===void 0&&(T=a);for(var h=arguments.length,v=Array(h>1?h-1:0),w=1;w1?m-1:0),S=1;S=0;o--){var i=r[o];if(i.path.length===0&&i.op==="replace"){n=i.value;break}}o>-1&&(r=r.slice(o+1));var u=Vt("Patches").$;return br(n)?u(n,r):this.produce(n,function(a){return u(a,r)})},e}(),wt=new jx,Bv=wt.produce;wt.produceWithPatches.bind(wt);wt.setAutoFreeze.bind(wt);wt.setUseProxies.bind(wt);wt.applyPatches.bind(wt);wt.createDraft.bind(wt);wt.finishDraft.bind(wt);const Dr=Symbol(),Uv=e=>!!e[Dr],Bx=e=>!e[Dr].c,Mu=e=>{var t,n;(n=(t=e[Dr]).c)==null||n.call(t)},Nu=(e,t)=>{const n=e[Dr].o,r=t[Dr].o;return n===r||e===r||Uv(n)&&Nu(n,t)},Hv=e=>{const t={o:e,c:null},n=new Promise(r=>{t.c=()=>{t.c=null,r()},e.then(t.c,t.c)});return n[Dr]=t,n};var Ux=Object.defineProperty,Hx=Object.defineProperties,Wx=Object.getOwnPropertyDescriptors,Wv=Object.getOwnPropertySymbols,Vx=Object.prototype.hasOwnProperty,Gx=Object.prototype.propertyIsEnumerable,Vv=(e,t,n)=>t in e?Ux(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yx=(e,t)=>{for(var n in t||(t={}))Vx.call(t,n)&&Vv(e,n,t[n]);if(Wv)for(var n of Wv(t))Gx.call(t,n)&&Vv(e,n,t[n]);return e},qx=(e,t)=>Hx(e,Wx(t));const Ys=e=>"init"in e,Gv="r",Yv="w",qv="c",Kv="s",Kx="h";const Qx=e=>{const t=new WeakMap,n=new WeakMap,r=new Map;let o,i;if(e)for(const[k,R]of e){const A={v:R,r:0,d:new Map};t.set(k,A)}const u=new WeakMap,a=(k,R,A)=>{let N=u.get(R);N||(N=new Map,u.set(R,N)),A.then(()=>{N.get(k)===A&&(N.delete(k),N.size||u.delete(R))}),N.set(k,A)},c=k=>{const R=new Set,A=u.get(k);return A&&(u.delete(k),A.forEach((N,D)=>{Mu(N),R.add(D)})),R},s=new WeakMap,m=k=>{let R=s.get(k);return R||(R=new Map,s.set(k,R)),R},E=(k,R)=>{if(k){const A=m(k);let N=A.get(R);return N||(N=E(k.p,R),N&&("p"in N&&N.p.then(()=>A.delete(R)),A.set(R,N))),N}return t.get(R)},S=(k,R,A)=>{if(k)m(k).set(R,A);else{const N=t.get(R);t.set(R,A),r.has(R)||r.set(R,N)}},P=(k,R=new Map,A)=>{if(!A)return R;const N=new Map;let D=!1;return A.forEach($=>{var J;const ce=((J=E(k,$))==null?void 0:J.r)||0;N.set($,ce),R.get($)!==ce&&(D=!0)}),R.size===N.size&&!D?R:N},O=(k,R,A,N,D)=>{const $=E(k,R);if($){if(D&&(!("p"in $)||!Nu($.p,D)))return $;"p"in $&&Mu($.p)}const J={v:A,r:($==null?void 0:$.r)||0,d:P(k,$==null?void 0:$.d,N)};return!$||!("v"in $)||!Object.is($.v,A)?(++J.r,J.d.has(R)&&(J.d=new Map(J.d).set(R,J.r))):J.d!==$.d&&(J.d.size!==$.d.size||!Array.from(J.d.keys()).every(ce=>$.d.has(ce)))&&Promise.resolve().then(()=>{B(k)}),S(k,R,J),J},T=(k,R,A,N,D)=>{const $=E(k,R);if($){if(D&&(!("p"in $)||!Nu($.p,D)))return $;"p"in $&&Mu($.p)}const J={e:A,r:($==null?void 0:$.r)||0,d:P(k,$==null?void 0:$.d,N)};return S(k,R,J),J},d=(k,R,A,N)=>{const D=E(k,R);if(D&&"p"in D){if(Nu(D.p,A))return D;Mu(D.p)}a(k,R,A);const $={p:A,r:(D==null?void 0:D.r)||0,d:P(k,D==null?void 0:D.d,N)};return S(k,R,$),$},h=(k,R,A,N)=>{if(A instanceof Promise){const D=Hv(A.then($=>{O(k,R,$,N,D),B(k)}).catch($=>{if($ instanceof Promise)return Uv($)?$.then(()=>{w(k,R,!0)}):$;T(k,R,$,N,D),B(k)}));return d(k,R,D,N)}return O(k,R,A,N)},v=(k,R)=>{const A=E(k,R);if(A){const N=qx(Yx({},A),{i:A.r});S(k,R,N)}},w=(k,R,A)=>{if(!A){const D=E(k,R);if(D&&(D.r!==D.i&&"p"in D&&!Bx(D.p)||(D.d.forEach(($,J)=>{if(J!==R)if(!n.has(J))w(k,J);else{const ce=E(k,J);ce&&ce.r===ce.i&&w(k,J)}}),Array.from(D.d).every(([$,J])=>{const ce=E(k,$);return ce&&"v"in ce&&ce.r===J}))))return D}const N=new Set;try{const D=R.read($=>{N.add($);const J=$===R?E(k,$):w(k,$);if(J){if("e"in J)throw J.e;if("p"in J)throw J.p;return J.v}if(Ys($))return $.init;throw new Error("no atom init")});return h(k,R,D,N)}catch(D){if(D instanceof Promise){const $=Hv(D);return d(k,R,$,N)}return T(k,R,D,N)}},_=(k,R)=>w(R,k),M=k=>{let R=n.get(k);return R||(R=ke(k)),R},I=(k,R)=>!R.l.size&&(!R.t.size||R.t.size===1&&R.t.has(k)),j=k=>{const R=n.get(k);R&&I(k,R)&&ee(k)},V=(k,R)=>{const A=n.get(R);A==null||A.t.forEach(N=>{N!==R&&(v(k,N),V(k,N))})},U=(k,R,A)=>{let N=!0;const D=(ce,_e)=>{typeof _e=="boolean"&&(console.warn("[DEPRECATED] Please use { unstable_promise: true }"),_e={unstable_promise:_e});const ge=w(k,ce);if("e"in ge)throw ge.e;if("p"in ge){if(_e==null?void 0:_e.unstable_promise)return ge.p.then(()=>D(ce,_e));throw ge.p}if("v"in ge)return ge.v;throw new Error("no value found")},$=(ce,_e)=>{let ge;if(ce===R){if(!Ys(ce))throw new Error("atom not writable");c(ce).forEach(ct=>{ct!==k&&h(ct,ce,_e)}),h(k,ce,_e),V(k,ce)}else ge=U(k,ce,_e);return N||B(k),ge},J=R.write(D,$,A);return N=!1,k=void 0,J},re=(k,R,A)=>{const N=U(A,k,R);return B(A),N},xe=k=>!!k.write,ke=(k,R)=>{const A={t:new Set(R&&[R]),l:new Set};if(n.set(k,A),w(void 0,k).d.forEach((D,$)=>{const J=n.get($);J?J.t.add(k):$!==k&&ke($,k)}),xe(k)&&k.onMount){const D=J=>re(k,J),$=k.onMount(D);$&&(A.u=$)}return A},ee=k=>{var R;const A=(R=n.get(k))==null?void 0:R.u;A&&A(),n.delete(k);const N=E(void 0,k);N&&N.d.forEach((D,$)=>{if($!==k){const J=n.get($);J&&(J.t.delete(k),I($,J)&&ee($))}})},X=(k,R,A)=>{const N=new Set(R.d.keys());A==null||A.forEach((D,$)=>{if(N.has($)){N.delete($);return}const J=n.get($);J&&(J.t.delete(k),I($,J)&&ee($))}),N.forEach(D=>{const $=n.get(D);$?$.t.add(k):n.has(k)&&ke(D,k)})},B=k=>{if(k){m(k).forEach((A,N)=>{if(A!==t.get(N)){const D=n.get(N);D==null||D.l.forEach($=>$(k))}});return}for(;r.size;){const R=Array.from(r);r.clear(),R.forEach(([A,N])=>{const D=E(void 0,A);D&&D.d!==(N==null?void 0:N.d)&&X(A,D,N==null?void 0:N.d);const $=n.get(A);$==null||$.l.forEach(J=>J())})}},oe=k=>{m(k).forEach((A,N)=>{const D=t.get(N);(A.r>((D==null?void 0:D.r)||0)||"v"in A&&A.r===(D==null?void 0:D.r)&&A.d!==(D==null?void 0:D.d))&&(t.set(N,A),A.d!==(D==null?void 0:D.d)&&X(N,A,D==null?void 0:D.d))})},te=(k,R)=>{R&&oe(R),B(void 0)},se=(k,R)=>{const N=M(k).l;return N.add(R),()=>{N.delete(R),j(k)}},ae=(k,R)=>{for(const[A,N]of k)Ys(A)&&(h(R,A,N),V(R,A));B(R)};return{[Gv]:_,[Yv]:re,[qv]:te,[Kv]:se,[Kx]:ae}},Xx=e=>({s:Qx(e)}),qs=new Map,Qv=e=>(qs.has(e)||qs.set(e,Y.exports.createContext(Xx())),qs.get(e));let Jx=0;function Ks(e,t){const n=`atom${++Jx}`,r={toString:()=>n};return typeof e=="function"?r.read=e:(r.init=e,r.read=o=>o(r),r.write=(o,i,u)=>i(r,typeof u=="function"?u(o(r)):u)),t&&(r.write=t),r}const Zx=e=>!!e.write;function eC(e,t){"scope"in e&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),t=e.scope);const n=Qv(t),{s:r,w:o}=Y.exports.useContext(n),i=Y.exports.useCallback(E=>{const S=r[Gv](e,E);if("e"in S)throw S.e;if("p"in S)throw S.p;if("v"in S)return S.v;throw new Error("no atom value")},[r,e]),[[u,a,c],s]=Y.exports.useReducer(Y.exports.useCallback((E,S)=>{const P=i(S);return Object.is(E[1],P)&&E[2]===e?E:[S,P,e]},[i,e]),void 0,()=>{const E=void 0,S=i(E);return[E,S,e]});c!==e&&s(void 0),Y.exports.useEffect(()=>{const E=r[Kv](e,s);return s(void 0),E},[r,e]),Y.exports.useEffect(()=>{r[qv](e,u)});const m=Y.exports.useCallback(E=>{if(Zx(e)){const S=P=>r[Yv](e,E,P);return o?o(S):S()}else throw new Error("not writable atom")},[r,o,e]);return Y.exports.useDebugValue(a),[a,m]}function xP(e){const t=Ks(e,(n,r,o)=>r(t,Bv(n(t),typeof o=="function"?o:()=>o)));return t}const tC=Symbol(),nC="w";function CP(e,t){const n=Qv(t),{s:r,w:o}=Y.exports.useContext(n);return Y.exports.useCallback(u=>{const a=c=>r[nC](e,u,c);return o?o(a):a()},[r,o,e])}function RP(e,t){return eC(e,t)[0]}function rC(e){try{e().removeItem||console.warn("Missing removeItem. In the next version, it will be required.")}catch{}return{getItem:t=>{const n=e().getItem(t);return n instanceof Promise?n.then(r=>JSON.parse(r||"")):JSON.parse(n||"")},setItem:(t,n)=>e().setItem(t,JSON.stringify(n)),removeItem:t=>{var n,r;return(r=(n=e()).removeItem)==null?void 0:r.call(n,t)}}}const oC=rC(()=>localStorage);function PP(e,t,n=oC){n.removeItem||console.warn("Missing removeItem. In the next version, it will be required.");const r=()=>{try{const u=n.getItem(e);return u instanceof Promise?u.catch(()=>t):u}catch{return t}},o=Ks(n.delayInit?t:r());return o.onMount=u=>{let a;if(n.subscribe&&(a=n.subscribe(e,u)),n.delayInit){const c=r();c instanceof Promise?c.then(u):u(c)}return a},Ks(u=>u(o),(u,a,c)=>{var s;if(c===tC)return a(o,t),(s=n.removeItem)==null?void 0:s.call(n,e);const m=typeof c=="function"?c(u(o)):c;return a(o,m),n.setItem(e,m)})}/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */function Qs(e,t,n,r){function o(i){return i instanceof n?i:new n(function(u){u(i)})}return new(n||(n=Promise))(function(i,u){function a(m){try{s(r.next(m))}catch(E){u(E)}}function c(m){try{s(r.throw(m))}catch(E){u(E)}}function s(m){m.done?i(m.value):o(m.value).then(a,c)}s((r=r.apply(e,t||[])).next())})}function Xs(e,t){var n={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},r,o,i,u;return u={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function a(s){return function(m){return c([s,m])}}function c(s){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,o&&(i=s[0]&2?o.return:s[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,s[1])).done)return i;switch(o=0,i&&(s=[s[0]&2,i.value]),s[0]){case 0:case 1:i=s;break;case 4:return n.label++,{value:s[1],done:!1};case 5:n.label++,o=s[1],s=[0];continue;case 7:s=n.ops.pop(),n.trys.pop();continue;default:if(i=n.trys,!(i=i.length>0&&i[i.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]0)&&!(o=r.next()).done;)i.push(o.value)}catch(a){u={error:a}}finally{try{o&&!o.done&&(n=r.return)&&n.call(r)}finally{if(u)throw u.error}}return i}function uC(){for(var e=[],t=0;t0&&i[i.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]i||setTimeout(r,a,o)},fm=cm(new Map),dm=fm[0],EC=fm[1],pm=nr({onLoadingSlow:Gt,onSuccess:Gt,onError:Gt,onErrorRetry:_C,onDiscarded:Gt,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:rm?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:rm?5e3:3e3,compare:function(e,t){return ui(e)==ui(t)},isPaused:function(){return!1},cache:dm,mutate:EC,fallback:{}},gC),hm=function(e,t){var n=nr(e,t);if(t){var r=e.use,o=e.fallback,i=t.use,u=t.fallback;r&&i&&(n.use=r.concat(i)),o&&u&&(n.fallback=nr(o,u))}return n},lc=Y.exports.createContext({}),xC=function(e){var t=e.value,n=hm(Y.exports.useContext(lc),t),r=t&&t.provider,o=Y.exports.useState(function(){return r?cm(r(n.cache||dm),t):st})[0];return o&&(n.cache=o[0],n.mutate=o[1]),li(function(){return o?o[2]:st},[]),Y.exports.createElement(lc.Provider,nr(e,{value:n}))},CC=function(e,t){var n=Y.exports.useState({})[1],r=Y.exports.useRef(e),o=Y.exports.useRef({data:!1,error:!1,isValidating:!1}),i=Y.exports.useCallback(function(u){var a=!1,c=r.current;for(var s in u){var m=s;c[m]!==u[m]&&(c[m]=u[m],o.current[m]&&(a=!0))}a&&!t.current&&n({})},[]);return li(function(){r.current=e}),[r,o.current,i]},RC=function(e){return ii(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}]},PC=function(){return nr(pm,Y.exports.useContext(lc))},OC=function(e){return function(){for(var t=[],n=0;n0;)s=m[E](s);return s(i,u||c.fetcher,c)}},vm=function(e,t,n){var r=t[e]||(t[e]=[]);return r.push(n),function(){var o=r.indexOf(n);o>=0&&(r[o]=r[r.length-1],r.pop())}},ac={dedupe:!0},TC=function(e,t,n){var r=n.cache,o=n.compare,i=n.fallbackData,u=n.suspense,a=n.revalidateOnMount,c=n.refreshInterval,s=n.refreshWhenHidden,m=n.refreshWhenOffline,E=rr.get(r),S=E[0],P=E[1],O=E[2],T=E[3],d=E[4],h=om(e),v=h[0],w=h[1],_=h[2],M=h[3],I=Y.exports.useRef(!1),j=Y.exports.useRef(!1),V=Y.exports.useRef(v),U=Y.exports.useRef(t),re=Y.exports.useRef(n),xe=function(){return re.current},ke=function(){return xe().isVisible()&&xe().isOnline()},ee=r.get(v),X=St(i)?n.fallback[v]:i,B=St(ee)?X:ee,oe=r.get(_),te=function(){return St(a)?xe().isPaused()?!1:u?!St(B):St(B)||n.revalidateIfStale:a},se=function(){return!v||!t?!1:r.get(M)?!0:!I.current&&te()},ae=se(),k=CC({data:B,error:oe,isValidating:ae},j),R=k[0],A=k[1],N=k[2],D=Y.exports.useCallback(function(J){return em(void 0,void 0,void 0,function(){var ce,_e,ge,Ke,ct,Qe,Ve,$t,Et,Wr,An,Vr;return tm(this,function(Mn){switch(Mn.label){case 0:if(ce=U.current,!v||!ce||j.current||xe().isPaused())return[2,!1];Ke=!0,ct=J||{},Qe=!d[v]||!ct.dedupe,Ve=function(){return!j.current&&v===V.current&&I.current},$t=function(){var si=d[v];si&&si[1]===ge&&delete d[v]},Et={isValidating:!1},Wr=function(){r.set(M,!1),Ve()&&N(Et)},r.set(M,!0),N({isValidating:!0}),Mn.label=1;case 1:return Mn.trys.push([1,3,,4]),Qe&&(Fu(r,v,R.current.data,R.current.error,!0),n.loadingTimeout&&!r.get(v)&&setTimeout(function(){Ke&&Ve()&&xe().onLoadingSlow(v,n)},n.loadingTimeout),d[v]=[ce.apply(void 0,w),uc()]),Vr=d[v],_e=Vr[0],ge=Vr[1],[4,_e];case 2:return _e=Mn.sent(),Qe&&setTimeout($t,n.dedupingInterval),!d[v]||d[v][1]!==ge?(Qe&&Ve()&&xe().onDiscarded(v),[2,!1]):(r.set(_,st),Et.error=st,!St(O[v])&&(ge<=O[v]||ge<=T[v]||T[v]===0)?(Wr(),Qe&&Ve()&&xe().onDiscarded(v),[2,!1]):(o(R.current.data,_e)?Et.data=R.current.data:Et.data=_e,o(r.get(v),_e)||r.set(v,_e),Qe&&Ve()&&xe().onSuccess(_e,v,n),[3,4]));case 3:return An=Mn.sent(),$t(),xe().isPaused()||(r.set(_,An),Et.error=An,Qe&&Ve()&&(xe().onError(An,v,n),n.shouldRetryOnError&&ke()&&xe().onErrorRetry(An,v,n,D,{retryCount:(ct.retryCount||0)+1,dedupe:!0}))),[3,4];case 4:return Ke=!1,Wr(),Ve()&&Qe&&Fu(r,v,Et.data,Et.error,!1),[2,!0]}})})},[v]),$=Y.exports.useCallback(am.bind(st,r,function(){return V.current}),[]);if(li(function(){U.current=t,re.current=n}),li(function(){if(!!v){var J=I.current,ce=D.bind(st,ac),_e=function(Ve,$t,Et){N(nr({error:$t,isValidating:Et},o(R.current.data,Ve)?st:{data:Ve}))},ge=0,Ke=function(Ve){if(Ve==im){var $t=Date.now();xe().revalidateOnFocus&&$t>ge&&ke()&&(ge=$t+xe().focusThrottleInterval,ce())}else if(Ve==um)xe().revalidateOnReconnect&&ke()&&ce();else if(Ve==lm)return D()},ct=vm(v,P,_e),Qe=vm(v,S,Ke);return j.current=!1,V.current=v,I.current=!0,J&&N({data:B,error:oe,isValidating:ae}),te()&&(St(B)||bu?ce():wC(ce)),function(){j.current=!0,ct(),Qe()}}},[v,D]),li(function(){var J;function ce(){var ge=ii(c)?c(B):c;ge&&J!==-1&&(J=setTimeout(_e,ge))}function _e(){!R.current.error&&(s||xe().isVisible())&&(m||xe().isOnline())?D(ac).then(ce):ce()}return ce(),function(){J&&(clearTimeout(J),J=-1)}},[c,s,m,D]),Y.exports.useDebugValue(B),u&&St(B)&&v)throw St(oe)?D(ac):oe;return{mutate:$,get data(){return A.data=!0,B},get error(){return A.error=!0,oe},get isValidating(){return A.isValidating=!0,ae}}};oi.defineProperty(xC,"default",{value:pm});var OP=OC(TC),mm={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function o(c,s,m){this.fn=c,this.context=s,this.once=m||!1}function i(c,s,m,E,S){if(typeof m!="function")throw new TypeError("The listener must be a function");var P=new o(m,E||c,S),O=n?n+s:s;return c._events[O]?c._events[O].fn?c._events[O]=[c._events[O],P]:c._events[O].push(P):(c._events[O]=P,c._eventsCount++),c}function u(c,s){--c._eventsCount==0?c._events=new r:delete c._events[s]}function a(){this._events=new r,this._eventsCount=0}a.prototype.eventNames=function(){var s=[],m,E;if(this._eventsCount===0)return s;for(E in m=this._events)t.call(m,E)&&s.push(n?E.slice(1):E);return Object.getOwnPropertySymbols?s.concat(Object.getOwnPropertySymbols(m)):s},a.prototype.listeners=function(s){var m=n?n+s:s,E=this._events[m];if(!E)return[];if(E.fn)return[E.fn];for(var S=0,P=E.length,O=new Array(P);S=0)return;r==="set-cookie"?n[r]=(n[r]?n[r]:[]).concat([o]):n[r]=n[r]?n[r]+", "+o:o}}),n},Rm=vt,gR=Rm.isStandardBrowserEnv()?function(){var t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a"),r;function o(i){var u=i;return t&&(n.setAttribute("href",u),u=n.href),n.setAttribute("href",u),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=o(window.location.href),function(u){var a=Rm.isString(u)?o(u):u;return a.protocol===r.protocol&&a.host===r.host}}():function(){return function(){return!0}}();function vc(e){this.message=e}vc.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")};vc.prototype.__CANCEL__=!0;var Vu=vc,Gu=vt,yR=aR,wR=sR,SR=Em,_R=hR,ER=mR,xR=gR,mc=Cm,CR=qu,RR=Vu,Pm=function(t){return new Promise(function(r,o){var i=t.data,u=t.headers,a=t.responseType,c;function s(){t.cancelToken&&t.cancelToken.unsubscribe(c),t.signal&&t.signal.removeEventListener("abort",c)}Gu.isFormData(i)&&delete u["Content-Type"];var m=new XMLHttpRequest;if(t.auth){var E=t.auth.username||"",S=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";u.Authorization="Basic "+btoa(E+":"+S)}var P=_R(t.baseURL,t.url);m.open(t.method.toUpperCase(),SR(P,t.params,t.paramsSerializer),!0),m.timeout=t.timeout;function O(){if(!!m){var d="getAllResponseHeaders"in m?ER(m.getAllResponseHeaders()):null,h=!a||a==="text"||a==="json"?m.responseText:m.response,v={data:h,status:m.status,statusText:m.statusText,headers:d,config:t,request:m};yR(function(_){r(_),s()},function(_){o(_),s()},v),m=null}}if("onloadend"in m?m.onloadend=O:m.onreadystatechange=function(){!m||m.readyState!==4||m.status===0&&!(m.responseURL&&m.responseURL.indexOf("file:")===0)||setTimeout(O)},m.onabort=function(){!m||(o(mc("Request aborted",t,"ECONNABORTED",m)),m=null)},m.onerror=function(){o(mc("Network Error",t,null,m)),m=null},m.ontimeout=function(){var h=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",v=t.transitional||CR.transitional;t.timeoutErrorMessage&&(h=t.timeoutErrorMessage),o(mc(h,t,v.clarifyTimeoutError?"ETIMEDOUT":"ECONNABORTED",m)),m=null},Gu.isStandardBrowserEnv()){var T=(t.withCredentials||xR(P))&&t.xsrfCookieName?wR.read(t.xsrfCookieName):void 0;T&&(u[t.xsrfHeaderName]=T)}"setRequestHeader"in m&&Gu.forEach(u,function(h,v){typeof i=="undefined"&&v.toLowerCase()==="content-type"?delete u[v]:m.setRequestHeader(v,h)}),Gu.isUndefined(t.withCredentials)||(m.withCredentials=!!t.withCredentials),a&&a!=="json"&&(m.responseType=t.responseType),typeof t.onDownloadProgress=="function"&&m.addEventListener("progress",t.onDownloadProgress),typeof t.onUploadProgress=="function"&&m.upload&&m.upload.addEventListener("progress",t.onUploadProgress),(t.cancelToken||t.signal)&&(c=function(d){!m||(o(!d||d&&d.type?new RR("canceled"):d),m.abort(),m=null)},t.cancelToken&&t.cancelToken.subscribe(c),t.signal&&(t.signal.aborted?c():t.signal.addEventListener("abort",c))),i||(i=null),m.send(i)})},et=vt,Om=iR,PR=xm,OR={"Content-Type":"application/x-www-form-urlencoded"};function Tm(e,t){!et.isUndefined(e)&&et.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}function TR(){var e;return(typeof XMLHttpRequest!="undefined"||typeof process!="undefined"&&Object.prototype.toString.call(process)==="[object process]")&&(e=Pm),e}function kR(e,t,n){if(et.isString(e))try{return(t||JSON.parse)(e),et.trim(e)}catch(r){if(r.name!=="SyntaxError")throw r}return(n||JSON.stringify)(e)}var Yu={transitional:{silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},adapter:TR(),transformRequest:[function(t,n){return Om(n,"Accept"),Om(n,"Content-Type"),et.isFormData(t)||et.isArrayBuffer(t)||et.isBuffer(t)||et.isStream(t)||et.isFile(t)||et.isBlob(t)?t:et.isArrayBufferView(t)?t.buffer:et.isURLSearchParams(t)?(Tm(n,"application/x-www-form-urlencoded;charset=utf-8"),t.toString()):et.isObject(t)||n&&n["Content-Type"]==="application/json"?(Tm(n,"application/json"),kR(t)):t}],transformResponse:[function(t){var n=this.transitional||Yu.transitional,r=n&&n.silentJSONParsing,o=n&&n.forcedJSONParsing,i=!r&&this.responseType==="json";if(i||o&&et.isString(t)&&t.length)try{return JSON.parse(t)}catch(u){if(i)throw u.name==="SyntaxError"?PR(u,this,"E_JSON_PARSE"):u}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};et.forEach(["delete","get","head"],function(t){Yu.headers[t]={}});et.forEach(["post","put","patch"],function(t){Yu.headers[t]=et.merge(OR)});var qu=Yu,IR=vt,AR=qu,MR=function(t,n,r){var o=this||AR;return IR.forEach(r,function(u){t=u.call(o,t,n)}),t},km=function(t){return!!(t&&t.__CANCEL__)},Im=vt,gc=MR,NR=km,LR=qu,zR=Vu;function yc(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new zR("canceled")}var $R=function(t){yc(t),t.headers=t.headers||{},t.data=gc.call(t,t.data,t.headers,t.transformRequest),t.headers=Im.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),Im.forEach(["delete","get","head","post","put","patch","common"],function(o){delete t.headers[o]});var n=t.adapter||LR.adapter;return n(t).then(function(o){return yc(t),o.data=gc.call(t,o.data,o.headers,t.transformResponse),o},function(o){return NR(o)||(yc(t),o&&o.response&&(o.response.data=gc.call(t,o.response.data,o.response.headers,t.transformResponse))),Promise.reject(o)})},_t=vt,Am=function(t,n){n=n||{};var r={};function o(m,E){return _t.isPlainObject(m)&&_t.isPlainObject(E)?_t.merge(m,E):_t.isPlainObject(E)?_t.merge({},E):_t.isArray(E)?E.slice():E}function i(m){if(_t.isUndefined(n[m])){if(!_t.isUndefined(t[m]))return o(void 0,t[m])}else return o(t[m],n[m])}function u(m){if(!_t.isUndefined(n[m]))return o(void 0,n[m])}function a(m){if(_t.isUndefined(n[m])){if(!_t.isUndefined(t[m]))return o(void 0,t[m])}else return o(void 0,n[m])}function c(m){if(m in n)return o(t[m],n[m]);if(m in t)return o(void 0,t[m])}var s={url:u,method:u,data:u,baseURL:a,transformRequest:a,transformResponse:a,paramsSerializer:a,timeout:a,timeoutMessage:a,withCredentials:a,adapter:a,responseType:a,xsrfCookieName:a,xsrfHeaderName:a,onUploadProgress:a,onDownloadProgress:a,decompress:a,maxContentLength:a,maxBodyLength:a,transport:a,httpAgent:a,httpsAgent:a,cancelToken:a,socketPath:a,responseEncoding:a,validateStatus:c};return _t.forEach(Object.keys(t).concat(Object.keys(n)),function(E){var S=s[E]||i,P=S(E);_t.isUndefined(P)&&S!==c||(r[E]=P)}),r},Mm={version:"0.25.0"},bR=Mm.version,wc={};["object","boolean","number","function","string","symbol"].forEach(function(e,t){wc[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});var Nm={};wc.transitional=function(t,n,r){function o(i,u){return"[Axios v"+bR+"] Transitional option '"+i+"'"+u+(r?". "+r:"")}return function(i,u,a){if(t===!1)throw new Error(o(u," has been removed"+(n?" in "+n:"")));return n&&!Nm[u]&&(Nm[u]=!0,console.warn(o(u," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(i,u,a):!0}};function FR(e,t,n){if(typeof e!="object")throw new TypeError("options must be an object");for(var r=Object.keys(e),o=r.length;o-- >0;){var i=r[o],u=t[i];if(u){var a=e[i],c=a===void 0||u(a,i,e);if(c!==!0)throw new TypeError("option "+i+" must be "+c);continue}if(n!==!0)throw Error("Unknown option "+i)}}var DR={assertOptions:FR,validators:wc},Lm=vt,jR=Em,zm=rR,$m=$R,Ku=Am,bm=DR,Br=bm.validators;function ai(e){this.defaults=e,this.interceptors={request:new zm,response:new zm}}ai.prototype.request=function(t,n){if(typeof t=="string"?(n=n||{},n.url=t):n=t||{},!n.url)throw new Error("Provided config url is not valid");n=Ku(this.defaults,n),n.method?n.method=n.method.toLowerCase():this.defaults.method?n.method=this.defaults.method.toLowerCase():n.method="get";var r=n.transitional;r!==void 0&&bm.assertOptions(r,{silentJSONParsing:Br.transitional(Br.boolean),forcedJSONParsing:Br.transitional(Br.boolean),clarifyTimeoutError:Br.transitional(Br.boolean)},!1);var o=[],i=!0;this.interceptors.request.forEach(function(P){typeof P.runWhen=="function"&&P.runWhen(n)===!1||(i=i&&P.synchronous,o.unshift(P.fulfilled,P.rejected))});var u=[];this.interceptors.response.forEach(function(P){u.push(P.fulfilled,P.rejected)});var a;if(!i){var c=[$m,void 0];for(Array.prototype.unshift.apply(c,o),c=c.concat(u),a=Promise.resolve(n);c.length;)a=a.then(c.shift(),c.shift());return a}for(var s=n;o.length;){var m=o.shift(),E=o.shift();try{s=m(s)}catch(S){E(S);break}}try{a=$m(s)}catch(S){return Promise.reject(S)}for(;u.length;)a=a.then(u.shift(),u.shift());return a};ai.prototype.getUri=function(t){if(!t.url)throw new Error("Provided config url is not valid");return t=Ku(this.defaults,t),jR(t.url,t.params,t.paramsSerializer).replace(/^\?/,"")};Lm.forEach(["delete","get","head","options"],function(t){ai.prototype[t]=function(n,r){return this.request(Ku(r||{},{method:t,url:n,data:(r||{}).data}))}});Lm.forEach(["post","put","patch"],function(t){ai.prototype[t]=function(n,r,o){return this.request(Ku(o||{},{method:t,url:n,data:r}))}});var BR=ai,UR=Vu;function Ur(e){if(typeof e!="function")throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(o){t=o});var n=this;this.promise.then(function(r){if(!!n._listeners){var o,i=n._listeners.length;for(o=0;o=0||(x[p]=l[p]);return x}function c(l){var f=function(p,g){if(typeof p!="object"||p===null)return p;var x=p[Symbol.toPrimitive];if(x!==void 0){var y=x.call(p,g||"default");if(typeof y!="object")return y;throw new TypeError("@@toPrimitive must return a primitive value.")}return(g==="string"?String:Number)(p)}(l,"string");return typeof f=="symbol"?f:String(f)}r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r;var s={init:"init"},m=function(l){var f=l.value;return f===void 0?"":f},E=function(){return r.createElement(r.Fragment,null,"\xA0")},S={Cell:m,width:150,minWidth:0,maxWidth:Number.MAX_SAFE_INTEGER};function P(){for(var l=arguments.length,f=new Array(l),p=0;p(y=typeof y=="number"?y:1/0)){var C=x;x=y,y=C}return l.filter(function(L){return f.some(function(z){var b=L.values[z];return b>=x&&b<=y})})};jc.autoRemove=function(l){return!l||typeof l[0]!="number"&&typeof l[1]!="number"};var Gr=Object.freeze({__proto__:null,text:Ac,exactText:Mc,exactTextCase:Nc,includes:Lc,includesAll:zc,includesSome:$c,includesValue:bc,exact:Fc,equals:Dc,between:jc});s.resetFilters="resetFilters",s.setFilter="setFilter",s.setAllFilters="setAllFilters";var Bc=function(l){l.stateReducers.push(ig),l.useInstance.push(ug)};function ig(l,f,p,g){if(f.type===s.init)return u({filters:[]},l);if(f.type===s.resetFilters)return u({},l,{filters:g.initialState.filters||[]});if(f.type===s.setFilter){var x=f.columnId,y=f.filterValue,C=g.allColumns,L=g.filterTypes,z=C.find(function(Z){return Z.id===x});if(!z)throw new Error("React-Table: Could not find a column with id: "+x);var b=se(z.filter,L||{},Gr),K=l.filters.find(function(Z){return Z.id===x}),W=v(y,K&&K.value);return ae(b.autoRemove,W,z)?u({},l,{filters:l.filters.filter(function(Z){return Z.id!==x})}):u({},l,K?{filters:l.filters.map(function(Z){return Z.id===x?{id:x,value:W}:Z})}:{filters:[].concat(l.filters,[{id:x,value:W}])})}if(f.type===s.setAllFilters){var G=f.filters,F=g.allColumns,H=g.filterTypes;return u({},l,{filters:v(G,l.filters).filter(function(Z){var Q=F.find(function(le){return le.id===Z.id});return!ae(se(Q.filter,H||{},Gr).autoRemove,Z.value,Q)})})}}function ug(l){var f=l.data,p=l.rows,g=l.flatRows,x=l.rowsById,y=l.allColumns,C=l.filterTypes,L=l.manualFilters,z=l.defaultCanFilter,b=z!==void 0&&z,K=l.disableFilters,W=l.state.filters,G=l.dispatch,F=l.autoResetFilters,H=F===void 0||F,Z=r.useCallback(function(he,ve){G({type:s.setFilter,columnId:he,filterValue:ve})},[G]),Q=r.useCallback(function(he){G({type:s.setAllFilters,filters:he})},[G]);y.forEach(function(he){var ve=he.id,Ee=he.accessor,fe=he.defaultCanFilter,pe=he.disableFilters;he.canFilter=Ee?X(pe!==!0&&void 0,K!==!0&&void 0,!0):X(fe,b,!1),he.setFilter=function(me){return Z(he.id,me)};var Oe=W.find(function(me){return me.id===ve});he.filterValue=Oe&&Oe.value});var le=r.useMemo(function(){if(L||!W.length)return[p,g,x];var he=[],ve={};return[function Ee(fe,pe){pe===void 0&&(pe=0);var Oe=fe;return(Oe=W.reduce(function(me,Pe){var Re=Pe.id,Ae=Pe.value,ue=y.find(function(Fe){return Fe.id===Re});if(!ue)return me;pe===0&&(ue.preFilteredRows=me);var Ce=se(ue.filter,C||{},Gr);return Ce?(ue.filteredRows=Ce(me,[Re],Ae),ue.filteredRows):(console.warn("Could not find a valid 'column.filter' for column with the ID: "+ue.id+"."),me)},fe)).forEach(function(me){he.push(me),ve[me.id]=me,me.subRows&&(me.subRows=me.subRows&&me.subRows.length>0?Ee(me.subRows,pe+1):me.subRows)}),Oe}(p),he,ve]},[L,W,p,g,x,y,C]),Se=le[0],we=le[1],ne=le[2];r.useMemo(function(){y.filter(function(he){return!W.find(function(ve){return ve.id===he.id})}).forEach(function(he){he.preFilteredRows=Se,he.filteredRows=Se})},[Se,W,y]);var Ie=w(H);M(function(){Ie()&&G({type:s.resetFilters})},[G,L?null:f]),Object.assign(l,{preFilteredRows:p,preFilteredFlatRows:g,preFilteredRowsById:x,filteredRows:Se,filteredFlatRows:we,filteredRowsById:ne,rows:Se,flatRows:we,rowsById:ne,setFilter:Z,setAllFilters:Q})}Bc.pluginName="useFilters",s.resetGlobalFilter="resetGlobalFilter",s.setGlobalFilter="setGlobalFilter";var Uc=function(l){l.stateReducers.push(lg),l.useInstance.push(ag)};function lg(l,f,p,g){if(f.type===s.resetGlobalFilter)return u({},l,{globalFilter:g.initialState.globalFilter||void 0});if(f.type===s.setGlobalFilter){var x=f.filterValue,y=g.userFilterTypes,C=se(g.globalFilter,y||{},Gr),L=v(x,l.globalFilter);return ae(C.autoRemove,L)?(l.globalFilter,a(l,["globalFilter"])):u({},l,{globalFilter:L})}}function ag(l){var f=l.data,p=l.rows,g=l.flatRows,x=l.rowsById,y=l.allColumns,C=l.filterTypes,L=l.globalFilter,z=l.manualGlobalFilter,b=l.state.globalFilter,K=l.dispatch,W=l.autoResetGlobalFilter,G=W===void 0||W,F=l.disableGlobalFilter,H=r.useCallback(function(ne){K({type:s.setGlobalFilter,filterValue:ne})},[K]),Z=r.useMemo(function(){if(z||b===void 0)return[p,g,x];var ne=[],Ie={},he=se(L,C||{},Gr);if(!he)return console.warn("Could not find a valid 'globalFilter' option."),p;y.forEach(function(Ee){var fe=Ee.disableGlobalFilter;Ee.canFilter=X(fe!==!0&&void 0,F!==!0&&void 0,!0)});var ve=y.filter(function(Ee){return Ee.canFilter===!0});return[function Ee(fe){return(fe=he(fe,ve.map(function(pe){return pe.id}),b)).forEach(function(pe){ne.push(pe),Ie[pe.id]=pe,pe.subRows=pe.subRows&&pe.subRows.length?Ee(pe.subRows):pe.subRows}),fe}(p),ne,Ie]},[z,b,L,C,y,p,g,x,F]),Q=Z[0],le=Z[1],Se=Z[2],we=w(G);M(function(){we()&&K({type:s.resetGlobalFilter})},[K,z?null:f]),Object.assign(l,{preGlobalFilteredRows:p,preGlobalFilteredFlatRows:g,preGlobalFilteredRowsById:x,globalFilteredRows:Q,globalFilteredFlatRows:le,globalFilteredRowsById:Se,rows:Q,flatRows:le,rowsById:Se,setGlobalFilter:H,disableGlobalFilter:F})}function Hc(l,f){return f.reduce(function(p,g){return p+(typeof g=="number"?g:0)},0)}Uc.pluginName="useGlobalFilter";var Wc=Object.freeze({__proto__:null,sum:Hc,min:function(l){var f=l[0]||0;return l.forEach(function(p){typeof p=="number"&&(f=Math.min(f,p))}),f},max:function(l){var f=l[0]||0;return l.forEach(function(p){typeof p=="number"&&(f=Math.max(f,p))}),f},minMax:function(l){var f=l[0]||0,p=l[0]||0;return l.forEach(function(g){typeof g=="number"&&(f=Math.min(f,g),p=Math.max(p,g))}),f+".."+p},average:function(l){return Hc(0,l)/l.length},median:function(l){if(!l.length)return null;var f=Math.floor(l.length/2),p=[].concat(l).sort(function(g,x){return g-x});return l.length%2!=0?p[f]:(p[f-1]+p[f])/2},unique:function(l){return Array.from(new Set(l).values())},uniqueCount:function(l){return new Set(l).size},count:function(l){return l.length}}),sg=[],cg={};s.resetGroupBy="resetGroupBy",s.setGroupBy="setGroupBy",s.toggleGroupBy="toggleGroupBy";var Vc=function(l){l.getGroupByToggleProps=[fg],l.stateReducers.push(dg),l.visibleColumnsDeps.push(function(f,p){var g=p.instance;return[].concat(f,[g.state.groupBy])}),l.visibleColumns.push(pg),l.useInstance.push(vg),l.prepareRow.push(mg)};Vc.pluginName="useGroupBy";var fg=function(l,f){var p=f.header;return[l,{onClick:p.canGroupBy?function(g){g.persist(),p.toggleGroupBy()}:void 0,style:{cursor:p.canGroupBy?"pointer":void 0},title:"Toggle GroupBy"}]};function dg(l,f,p,g){if(f.type===s.init)return u({groupBy:[]},l);if(f.type===s.resetGroupBy)return u({},l,{groupBy:g.initialState.groupBy||[]});if(f.type===s.setGroupBy)return u({},l,{groupBy:f.value});if(f.type===s.toggleGroupBy){var x=f.columnId,y=f.value,C=y!==void 0?y:!l.groupBy.includes(x);return u({},l,C?{groupBy:[].concat(l.groupBy,[x])}:{groupBy:l.groupBy.filter(function(L){return L!==x})})}}function pg(l,f){var p=f.instance.state.groupBy,g=p.map(function(y){return l.find(function(C){return C.id===y})}).filter(Boolean),x=l.filter(function(y){return!p.includes(y.id)});return(l=[].concat(g,x)).forEach(function(y){y.isGrouped=p.includes(y.id),y.groupedIndex=p.indexOf(y.id)}),l}var hg={};function vg(l){var f=l.data,p=l.rows,g=l.flatRows,x=l.rowsById,y=l.allColumns,C=l.flatHeaders,L=l.groupByFn,z=L===void 0?Gc:L,b=l.manualGroupBy,K=l.aggregations,W=K===void 0?hg:K,G=l.plugins,F=l.state.groupBy,H=l.dispatch,Z=l.autoResetGroupBy,Q=Z===void 0||Z,le=l.disableGroupBy,Se=l.defaultCanGroupBy,we=l.getHooks;h(G,["useColumnOrder","useFilters"],"useGroupBy");var ne=w(l);y.forEach(function(ue){var Ce=ue.accessor,Fe=ue.defaultGroupBy,it=ue.disableGroupBy;ue.canGroupBy=Ce?X(ue.canGroupBy,it!==!0&&void 0,le!==!0&&void 0,!0):X(ue.canGroupBy,Fe,Se,!1),ue.canGroupBy&&(ue.toggleGroupBy=function(){return l.toggleGroupBy(ue.id)}),ue.Aggregated=ue.Aggregated||ue.Cell});var Ie=r.useCallback(function(ue,Ce){H({type:s.toggleGroupBy,columnId:ue,value:Ce})},[H]),he=r.useCallback(function(ue){H({type:s.setGroupBy,value:ue})},[H]);C.forEach(function(ue){ue.getGroupByToggleProps=O(we().getGroupByToggleProps,{instance:ne(),header:ue})});var ve=r.useMemo(function(){if(b||!F.length)return[p,g,x,sg,cg,g,x];var ue=F.filter(function(Ge){return y.find(function(on){return on.id===Ge})}),Ce=[],Fe={},it=[],de={},$e=[],Ue={},ut=function Ge(on,un,ff){if(un===void 0&&(un=0),un===ue.length)return on;var rl=ue[un],ry=z(on,rl);return Object.entries(ry).map(function(df,oy){var pf=df[0],fi=df[1],di=rl+":"+pf,hf=Ge(fi,un+1,di=ff?ff+">"+di:di),vf=un?oe(fi,"leafRows"):fi,iy=function(xt,ol,ly){var pi={};return y.forEach(function(He){if(ue.includes(He.id))pi[He.id]=ol[0]?ol[0].values[He.id]:null;else{var mf=typeof He.aggregate=="function"?He.aggregate:W[He.aggregate]||Wc[He.aggregate];if(mf){var ay=ol.map(function(hi){return hi.values[He.id]}),sy=xt.map(function(hi){var il=hi.values[He.id];if(!ly&&He.aggregateValue){var gf=typeof He.aggregateValue=="function"?He.aggregateValue:W[He.aggregateValue]||Wc[He.aggregateValue];if(!gf)throw console.info({column:He}),new Error("React Table: Invalid column.aggregateValue option for column listed above");il=gf(il,hi,He)}return il});pi[He.id]=mf(sy,ay)}else{if(He.aggregate)throw console.info({column:He}),new Error("React Table: Invalid column.aggregate option for column listed above");pi[He.id]=null}}}),pi}(vf,fi,un),uy={id:di,isGrouped:!0,groupByID:rl,groupByVal:pf,values:iy,subRows:hf,leafRows:vf,depth:un,index:oy};return hf.forEach(function(xt){Ce.push(xt),Fe[xt.id]=xt,xt.isGrouped?(it.push(xt),de[xt.id]=xt):($e.push(xt),Ue[xt.id]=xt)}),uy})}(p);return ut.forEach(function(Ge){Ce.push(Ge),Fe[Ge.id]=Ge,Ge.isGrouped?(it.push(Ge),de[Ge.id]=Ge):($e.push(Ge),Ue[Ge.id]=Ge)}),[ut,Ce,Fe,it,de,$e,Ue]},[b,F,p,g,x,y,W,z]),Ee=ve[0],fe=ve[1],pe=ve[2],Oe=ve[3],me=ve[4],Pe=ve[5],Re=ve[6],Ae=w(Q);M(function(){Ae()&&H({type:s.resetGroupBy})},[H,b?null:f]),Object.assign(l,{preGroupedRows:p,preGroupedFlatRow:g,preGroupedRowsById:x,groupedRows:Ee,groupedFlatRows:fe,groupedRowsById:pe,onlyGroupedFlatRows:Oe,onlyGroupedRowsById:me,nonGroupedFlatRows:Pe,nonGroupedRowsById:Re,rows:Ee,flatRows:fe,rowsById:pe,toggleGroupBy:Ie,setGroupBy:he})}function mg(l){l.allCells.forEach(function(f){var p;f.isGrouped=f.column.isGrouped&&f.column.id===l.groupByID,f.isPlaceholder=!f.isGrouped&&f.column.isGrouped,f.isAggregated=!f.isGrouped&&!f.isPlaceholder&&((p=l.subRows)==null?void 0:p.length)})}function Gc(l,f){return l.reduce(function(p,g,x){var y=""+g.values[f];return p[y]=Array.isArray(p[y])?p[y]:[],p[y].push(g),p},{})}var Yc=/([0-9]+)/gm;function Ju(l,f){return l===f?0:l>f?1:-1}function Yr(l,f,p){return[l.values[p],f.values[p]]}function qc(l){return typeof l=="number"?isNaN(l)||l===1/0||l===-1/0?"":String(l):typeof l=="string"?l:""}var gg=Object.freeze({__proto__:null,alphanumeric:function(l,f,p){var g=Yr(l,f,p),x=g[0],y=g[1];for(x=qc(x),y=qc(y),x=x.split(Yc).filter(Boolean),y=y.split(Yc).filter(Boolean);x.length&&y.length;){var C=x.shift(),L=y.shift(),z=parseInt(C,10),b=parseInt(L,10),K=[z,b].sort();if(isNaN(K[0])){if(C>L)return 1;if(L>C)return-1}else{if(isNaN(K[1]))return isNaN(z)?-1:1;if(z>b)return 1;if(b>z)return-1}}return x.length-y.length},datetime:function(l,f,p){var g=Yr(l,f,p),x=g[0],y=g[1];return Ju(x=x.getTime(),y=y.getTime())},basic:function(l,f,p){var g=Yr(l,f,p);return Ju(g[0],g[1])},string:function(l,f,p){var g=Yr(l,f,p),x=g[0],y=g[1];for(x=x.split("").filter(Boolean),y=y.split("").filter(Boolean);x.length&&y.length;){var C=x.shift(),L=y.shift(),z=C.toLowerCase(),b=L.toLowerCase();if(z>b)return 1;if(b>z)return-1;if(C>L)return 1;if(L>C)return-1}return x.length-y.length},number:function(l,f,p){var g=Yr(l,f,p),x=g[0],y=g[1],C=/[^0-9.]/gi;return Ju(x=Number(String(x).replace(C,"")),y=Number(String(y).replace(C,"")))}});s.resetSortBy="resetSortBy",s.setSortBy="setSortBy",s.toggleSortBy="toggleSortBy",s.clearSortBy="clearSortBy",S.sortType="alphanumeric",S.sortDescFirst=!1;var Kc=function(l){l.getSortByToggleProps=[yg],l.stateReducers.push(wg),l.useInstance.push(Sg)};Kc.pluginName="useSortBy";var yg=function(l,f){var p=f.instance,g=f.column,x=p.isMultiSortEvent,y=x===void 0?function(C){return C.shiftKey}:x;return[l,{onClick:g.canSort?function(C){C.persist(),g.toggleSortBy(void 0,!p.disableMultiSort&&y(C))}:void 0,style:{cursor:g.canSort?"pointer":void 0},title:g.canSort?"Toggle SortBy":void 0}]};function wg(l,f,p,g){if(f.type===s.init)return u({sortBy:[]},l);if(f.type===s.resetSortBy)return u({},l,{sortBy:g.initialState.sortBy||[]});if(f.type===s.clearSortBy)return u({},l,{sortBy:l.sortBy.filter(function(ne){return ne.id!==f.columnId})});if(f.type===s.setSortBy)return u({},l,{sortBy:f.sortBy});if(f.type===s.toggleSortBy){var x,y=f.columnId,C=f.desc,L=f.multi,z=g.allColumns,b=g.disableMultiSort,K=g.disableSortRemove,W=g.disableMultiRemove,G=g.maxMultiSortColCount,F=G===void 0?Number.MAX_SAFE_INTEGER:G,H=l.sortBy,Z=z.find(function(ne){return ne.id===y}).sortDescFirst,Q=H.find(function(ne){return ne.id===y}),le=H.findIndex(function(ne){return ne.id===y}),Se=C!=null,we=[];return(x=!b&&L?Q?"toggle":"add":le!==H.length-1||H.length!==1?"replace":Q?"toggle":"replace")!=="toggle"||K||Se||L&&W||!(Q&&Q.desc&&!Z||!Q.desc&&Z)||(x="remove"),x==="replace"?we=[{id:y,desc:Se?C:Z}]:x==="add"?(we=[].concat(H,[{id:y,desc:Se?C:Z}])).splice(0,we.length-F):x==="toggle"?we=H.map(function(ne){return ne.id===y?u({},ne,{desc:Se?C:!Q.desc}):ne}):x==="remove"&&(we=H.filter(function(ne){return ne.id!==y})),u({},l,{sortBy:we})}}function Sg(l){var f=l.data,p=l.rows,g=l.flatRows,x=l.allColumns,y=l.orderByFn,C=y===void 0?Qc:y,L=l.sortTypes,z=l.manualSortBy,b=l.defaultCanSort,K=l.disableSortBy,W=l.flatHeaders,G=l.state.sortBy,F=l.dispatch,H=l.plugins,Z=l.getHooks,Q=l.autoResetSortBy,le=Q===void 0||Q;h(H,["useFilters","useGlobalFilter","useGroupBy","usePivotColumns"],"useSortBy");var Se=r.useCallback(function(fe){F({type:s.setSortBy,sortBy:fe})},[F]),we=r.useCallback(function(fe,pe,Oe){F({type:s.toggleSortBy,columnId:fe,desc:pe,multi:Oe})},[F]),ne=w(l);W.forEach(function(fe){var pe=fe.accessor,Oe=fe.canSort,me=fe.disableSortBy,Pe=fe.id,Re=pe?X(me!==!0&&void 0,K!==!0&&void 0,!0):X(b,Oe,!1);fe.canSort=Re,fe.canSort&&(fe.toggleSortBy=function(ue,Ce){return we(fe.id,ue,Ce)},fe.clearSortBy=function(){F({type:s.clearSortBy,columnId:fe.id})}),fe.getSortByToggleProps=O(Z().getSortByToggleProps,{instance:ne(),column:fe});var Ae=G.find(function(ue){return ue.id===Pe});fe.isSorted=!!Ae,fe.sortedIndex=G.findIndex(function(ue){return ue.id===Pe}),fe.isSortedDesc=fe.isSorted?Ae.desc:void 0});var Ie=r.useMemo(function(){if(z||!G.length)return[p,g];var fe=[],pe=G.filter(function(Oe){return x.find(function(me){return me.id===Oe.id})});return[function Oe(me){var Pe=C(me,pe.map(function(Re){var Ae=x.find(function(Fe){return Fe.id===Re.id});if(!Ae)throw new Error("React-Table: Could not find a column with id: "+Re.id+" while sorting");var ue=Ae.sortType,Ce=B(ue)||(L||{})[ue]||gg[ue];if(!Ce)throw new Error("React-Table: Could not find a valid sortType of '"+ue+"' for column '"+Re.id+"'.");return function(Fe,it){return Ce(Fe,it,Re.id,Re.desc)}}),pe.map(function(Re){var Ae=x.find(function(ue){return ue.id===Re.id});return Ae&&Ae.sortInverted?Re.desc:!Re.desc}));return Pe.forEach(function(Re){fe.push(Re),Re.subRows&&Re.subRows.length!==0&&(Re.subRows=Oe(Re.subRows))}),Pe}(p),fe]},[z,G,p,g,x,C,L]),he=Ie[0],ve=Ie[1],Ee=w(le);M(function(){Ee()&&F({type:s.resetSortBy})},[z?null:f]),Object.assign(l,{preSortedRows:p,preSortedFlatRows:g,sortedRows:he,sortedFlatRows:ve,rows:he,flatRows:ve,setSortBy:Se,toggleSortBy:we})}function Qc(l,f,p){return[].concat(l).sort(function(g,x){for(var y=0;yl.pageIndex?L=x===-1?y.length>=l.pageSize:C-1),L?u({},l,{pageIndex:C}):l}if(f.type===s.setPageSize){var z=f.pageSize,b=l.pageSize*l.pageIndex;return u({},l,{pageIndex:Math.floor(b/z),pageSize:z})}}function Eg(l){var f=l.rows,p=l.autoResetPage,g=p===void 0||p,x=l.manualExpandedKey,y=x===void 0?"expanded":x,C=l.plugins,L=l.pageCount,z=l.paginateExpandedRows,b=z===void 0||z,K=l.expandSubRows,W=K===void 0||K,G=l.state,F=G.pageSize,H=G.pageIndex,Z=G.expanded,Q=G.globalFilter,le=G.filters,Se=G.groupBy,we=G.sortBy,ne=l.dispatch,Ie=l.data,he=l.manualPagination;h(C,["useGlobalFilter","useFilters","useGroupBy","useSortBy","useExpanded"],"usePagination");var ve=w(g);M(function(){ve()&&ne({type:s.resetPage})},[ne,he?null:Ie,Q,le,Se,we]);var Ee=he?L:Math.ceil(f.length/F),fe=r.useMemo(function(){return Ee>0?[].concat(new Array(Ee)).fill(null).map(function(Ce,Fe){return Fe}):[]},[Ee]),pe=r.useMemo(function(){var Ce;if(he)Ce=f;else{var Fe=F*H,it=Fe+F;Ce=f.slice(Fe,it)}return b?Ce:te(Ce,{manualExpandedKey:y,expanded:Z,expandSubRows:W})},[W,Z,y,he,H,F,b,f]),Oe=H>0,me=Ee===-1?pe.length>=F:H-1&&y.push(x.splice(z,1)[0])};x.length&&g.length;)C();return[].concat(y,x)}function Vg(l){var f=l.dispatch;l.setColumnOrder=r.useCallback(function(p){return f({type:s.setColumnOrder,columnOrder:p})},[f])}of.pluginName="useColumnOrder",S.canResize=!0,s.columnStartResizing="columnStartResizing",s.columnResizing="columnResizing",s.columnDoneResizing="columnDoneResizing",s.resetResize="resetResize";var uf=function(l){l.getResizerProps=[Gg],l.getHeaderProps.push({style:{position:"relative"}}),l.stateReducers.push(Yg),l.useInstance.push(Kg),l.useInstanceBeforeDimensions.push(qg)},Gg=function(l,f){var p=f.instance,g=f.header,x=p.dispatch,y=function(C,L){var z=!1;if(C.type==="touchstart"){if(C.touches&&C.touches.length>1)return;z=!0}var b=function(Q){var le=[];return function Se(we){we.columns&&we.columns.length&&we.columns.map(Se),le.push(we)}(Q),le}(L).map(function(Q){return[Q.id,Q.totalWidth]}),K=z?Math.round(C.touches[0].clientX):C.clientX,W=function(Q){x({type:s.columnResizing,clientX:Q})},G=function(){return x({type:s.columnDoneResizing})},F={mouse:{moveEvent:"mousemove",moveHandler:function(Q){return W(Q.clientX)},upEvent:"mouseup",upHandler:function(Q){document.removeEventListener("mousemove",F.mouse.moveHandler),document.removeEventListener("mouseup",F.mouse.upHandler),G()}},touch:{moveEvent:"touchmove",moveHandler:function(Q){return Q.cancelable&&(Q.preventDefault(),Q.stopPropagation()),W(Q.touches[0].clientX),!1},upEvent:"touchend",upHandler:function(Q){document.removeEventListener(F.touch.moveEvent,F.touch.moveHandler),document.removeEventListener(F.touch.upEvent,F.touch.moveHandler),G()}}},H=z?F.touch:F.mouse,Z=!!function(){if(typeof R=="boolean")return R;var Q=!1;try{var le={get passive(){return Q=!0,!1}};window.addEventListener("test",null,le),window.removeEventListener("test",null,le)}catch{Q=!1}return R=Q}()&&{passive:!1};document.addEventListener(H.moveEvent,H.moveHandler,Z),document.addEventListener(H.upEvent,H.upHandler,Z),x({type:s.columnStartResizing,columnId:L.id,columnWidth:L.totalWidth,headerIdWidths:b,clientX:K})};return[l,{onMouseDown:function(C){return C.persist()||y(C,g)},onTouchStart:function(C){return C.persist()||y(C,g)},style:{cursor:"col-resize"},draggable:!1,role:"separator"}]};function Yg(l,f){if(f.type===s.init)return u({columnResizing:{columnWidths:{}}},l);if(f.type===s.resetResize)return u({},l,{columnResizing:{columnWidths:{}}});if(f.type===s.columnStartResizing){var p=f.clientX,g=f.columnId,x=f.columnWidth,y=f.headerIdWidths;return u({},l,{columnResizing:u({},l.columnResizing,{startX:p,headerIdWidths:y,columnWidth:x,isResizingColumn:g})})}if(f.type===s.columnResizing){var C=f.clientX,L=l.columnResizing,z=L.startX,b=L.columnWidth,K=L.headerIdWidths,W=(C-z)/b,G={};return(K===void 0?[]:K).forEach(function(F){var H=F[0],Z=F[1];G[H]=Math.max(Z+Z*W,0)}),u({},l,{columnResizing:u({},l.columnResizing,{columnWidths:u({},l.columnResizing.columnWidths,{},G)})})}return f.type===s.columnDoneResizing?u({},l,{columnResizing:u({},l.columnResizing,{startX:null,isResizingColumn:null})}):void 0}uf.pluginName="useResizeColumns";var qg=function(l){var f=l.flatHeaders,p=l.disableResizing,g=l.getHooks,x=l.state.columnResizing,y=w(l);f.forEach(function(C){var L=X(C.disableResizing!==!0&&void 0,p!==!0&&void 0,!0);C.canResize=L,C.width=x.columnWidths[C.id]||C.originalWidth||C.width,C.isResizing=x.isResizingColumn===C.id,L&&(C.getResizerProps=O(g().getResizerProps,{instance:y(),header:C}))})};function Kg(l){var f=l.plugins,p=l.dispatch,g=l.autoResetResize,x=g===void 0||g,y=l.columns;h(f,["useAbsoluteLayout"],"useResizeColumns");var C=w(x);M(function(){C()&&p({type:s.resetResize})},[y]);var L=r.useCallback(function(){return p({type:s.resetResize})},[p]);Object.assign(l,{resetResizing:L})}var Zu={position:"absolute",top:0},lf=function(l){l.getTableBodyProps.push(ci),l.getRowProps.push(ci),l.getHeaderGroupProps.push(ci),l.getFooterGroupProps.push(ci),l.getHeaderProps.push(function(f,p){var g=p.column;return[f,{style:u({},Zu,{left:g.totalLeft+"px",width:g.totalWidth+"px"})}]}),l.getCellProps.push(function(f,p){var g=p.cell;return[f,{style:u({},Zu,{left:g.column.totalLeft+"px",width:g.column.totalWidth+"px"})}]}),l.getFooterProps.push(function(f,p){var g=p.column;return[f,{style:u({},Zu,{left:g.totalLeft+"px",width:g.totalWidth+"px"})}]})};lf.pluginName="useAbsoluteLayout";var ci=function(l,f){return[l,{style:{position:"relative",width:f.instance.totalColumnsWidth+"px"}}]},el={display:"inline-block",boxSizing:"border-box"},tl=function(l,f){return[l,{style:{display:"flex",width:f.instance.totalColumnsWidth+"px"}}]},af=function(l){l.getRowProps.push(tl),l.getHeaderGroupProps.push(tl),l.getFooterGroupProps.push(tl),l.getHeaderProps.push(function(f,p){var g=p.column;return[f,{style:u({},el,{width:g.totalWidth+"px"})}]}),l.getCellProps.push(function(f,p){var g=p.cell;return[f,{style:u({},el,{width:g.column.totalWidth+"px"})}]}),l.getFooterProps.push(function(f,p){var g=p.column;return[f,{style:u({},el,{width:g.totalWidth+"px"})}]})};function sf(l){l.getTableProps.push(Qg),l.getRowProps.push(nl),l.getHeaderGroupProps.push(nl),l.getFooterGroupProps.push(nl),l.getHeaderProps.push(Xg),l.getCellProps.push(Jg),l.getFooterProps.push(Zg)}af.pluginName="useBlockLayout",sf.pluginName="useFlexLayout";var Qg=function(l,f){return[l,{style:{minWidth:f.instance.totalColumnsMinWidth+"px"}}]},nl=function(l,f){return[l,{style:{display:"flex",flex:"1 0 auto",minWidth:f.instance.totalColumnsMinWidth+"px"}}]},Xg=function(l,f){var p=f.column;return[l,{style:{boxSizing:"border-box",flex:p.totalFlexWidth?p.totalFlexWidth+" 0 auto":void 0,minWidth:p.totalMinWidth+"px",width:p.totalWidth+"px"}}]},Jg=function(l,f){var p=f.cell;return[l,{style:{boxSizing:"border-box",flex:p.column.totalFlexWidth+" 0 auto",minWidth:p.column.totalMinWidth+"px",width:p.column.totalWidth+"px"}}]},Zg=function(l,f){var p=f.column;return[l,{style:{boxSizing:"border-box",flex:p.totalFlexWidth?p.totalFlexWidth+" 0 auto":void 0,minWidth:p.totalMinWidth+"px",width:p.totalWidth+"px"}}]};function cf(l){l.stateReducers.push(ny),l.getTableProps.push(ey),l.getHeaderProps.push(ty)}cf.pluginName="useGridLayout";var ey=function(l,f){return[l,{style:{display:"grid",gridTemplateColumns:f.instance.state.gridLayout.columnWidths.map(function(p){return p}).join(" ")}}]},ty=function(l,f){return[l,{id:"header-cell-"+f.column.id,style:{position:"sticky"}}]};function ny(l,f,p,g){if(f.type==="init")return u({gridLayout:{columnWidths:g.columns.map(function(){return"auto"})}},l);if(f.type==="columnStartResizing"){var x=f.columnId,y=g.visibleColumns.findIndex(function(F){return F.id===x}),C=function(F){var H,Z=(H=document.getElementById("header-cell-"+F))==null?void 0:H.offsetWidth;if(Z!==void 0)return Z}(x);return C!==void 0?u({},l,{gridLayout:u({},l.gridLayout,{columnId:x,columnIndex:y,startingWidth:C})}):l}if(f.type==="columnResizing"){var L=l.gridLayout,z=L.columnIndex,b=L.startingWidth,K=L.columnWidths,W=b-(l.columnResizing.startX-f.clientX),G=[].concat(K);return G[z]=W+"px",u({},l,{gridLayout:u({},l.gridLayout,{columnWidths:G})})}}n._UNSTABLE_usePivotColumns=Jc,n.actions=s,n.defaultColumn=S,n.defaultGroupByFn=Gc,n.defaultOrderByFn=Qc,n.defaultRenderer=m,n.emptyRenderer=E,n.ensurePluginOrder=h,n.flexRender=j,n.functionalUpdate=v,n.loopHooks=d,n.makePropGetter=O,n.makeRenderer=I,n.reduceHooks=T,n.safeUseLayoutEffect=_,n.useAbsoluteLayout=lf,n.useAsyncDebounce=function(l,f){f===void 0&&(f=0);var p=r.useRef({}),g=w(l),x=w(f);return r.useCallback(function(){var y=i(regeneratorRuntime.mark(function C(){var L,z,b,K=arguments;return regeneratorRuntime.wrap(function(W){for(;;)switch(W.prev=W.next){case 0:for(L=K.length,z=new Array(L),b=0;b1?f-1:0),g=1;g=X?ee:""+Array(X+1-oe.length).join(B)+ee},_={s:w,z:function(ee){var X=-ee.utcOffset(),B=Math.abs(X),oe=Math.floor(B/60),te=B%60;return(X<=0?"+":"-")+w(oe,2,"0")+":"+w(te,2,"0")},m:function ee(X,B){if(X.date()0,I<=M.r||!M.r){I<=1&&_>0&&(M=v[_-1]);var j=h[M.l];P&&(I=P(""+I)),T=typeof j=="string"?j.replace("%d",I):j(I,m,M.l,d);break}}if(m)return T;var V=d?h.future:h.past;return typeof V=="function"?V(T):V.replace("%s",T)},i.to=function(s,m){return a(s,m,this,!0)},i.from=function(s,m){return a(s,m,this)};var c=function(s){return s.$u?o.utc():o()};i.toNow=function(s){return this.to(c(this),s)},i.fromNow=function(s){return this.from(c(this),s)}}})})(jm);var zP=jm.exports,XR={exports:{}};(function(e,t){(function(n,r){e.exports=r(_c.exports)})(vi,function(n){function r(u){return u&&typeof u=="object"&&"default"in u?u:{default:u}}var o=r(n),i={name:"zh-cn",weekdays:"\u661F\u671F\u65E5_\u661F\u671F\u4E00_\u661F\u671F\u4E8C_\u661F\u671F\u4E09_\u661F\u671F\u56DB_\u661F\u671F\u4E94_\u661F\u671F\u516D".split("_"),weekdaysShort:"\u5468\u65E5_\u5468\u4E00_\u5468\u4E8C_\u5468\u4E09_\u5468\u56DB_\u5468\u4E94_\u5468\u516D".split("_"),weekdaysMin:"\u65E5_\u4E00_\u4E8C_\u4E09_\u56DB_\u4E94_\u516D".split("_"),months:"\u4E00\u6708_\u4E8C\u6708_\u4E09\u6708_\u56DB\u6708_\u4E94\u6708_\u516D\u6708_\u4E03\u6708_\u516B\u6708_\u4E5D\u6708_\u5341\u6708_\u5341\u4E00\u6708_\u5341\u4E8C\u6708".split("_"),monthsShort:"1\u6708_2\u6708_3\u6708_4\u6708_5\u6708_6\u6708_7\u6708_8\u6708_9\u6708_10\u6708_11\u6708_12\u6708".split("_"),ordinal:function(u,a){switch(a){case"W":return u+"\u5468";default:return u+"\u65E5"}},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY\u5E74M\u6708D\u65E5",LLL:"YYYY\u5E74M\u6708D\u65E5Ah\u70B9mm\u5206",LLLL:"YYYY\u5E74M\u6708D\u65E5ddddAh\u70B9mm\u5206",l:"YYYY/M/D",ll:"YYYY\u5E74M\u6708D\u65E5",lll:"YYYY\u5E74M\u6708D\u65E5 HH:mm",llll:"YYYY\u5E74M\u6708D\u65E5dddd HH:mm"},relativeTime:{future:"%s\u5185",past:"%s\u524D",s:"\u51E0\u79D2",m:"1 \u5206\u949F",mm:"%d \u5206\u949F",h:"1 \u5C0F\u65F6",hh:"%d \u5C0F\u65F6",d:"1 \u5929",dd:"%d \u5929",M:"1 \u4E2A\u6708",MM:"%d \u4E2A\u6708",y:"1 \u5E74",yy:"%d \u5E74"},meridiem:function(u,a){var c=100*u+a;return c<600?"\u51CC\u6668":c<900?"\u65E9\u4E0A":c<1100?"\u4E0A\u5348":c<1300?"\u4E2D\u5348":c<1800?"\u4E0B\u5348":"\u665A\u4E0A"}};return o.default.locale(i,null,!0),i})})(XR);var JR=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},ZR=function(){function e(t,n){for(var r=0;r div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',I=_.head||_.getElementsByTagName("head")[0],j=_.createElement("style");j.id="detectElementResize",j.type="text/css",e!=null&&j.setAttribute("nonce",e),j.styleSheet?j.styleSheet.cssText=M:j.appendChild(_.createTextNode(M)),I.appendChild(j)}},h=function(_,M){if(c)_.attachEvent("onresize",M);else{if(!_.__resizeTriggers__){var I=_.ownerDocument,j=It.getComputedStyle(_);j&&j.position==="static"&&(_.style.position="relative"),d(I),_.__resizeLast__={},_.__resizeListeners__=[],(_.__resizeTriggers__=I.createElement("div")).className="resize-triggers";var V=I.createElement("div");V.className="expand-trigger",V.appendChild(I.createElement("div"));var U=I.createElement("div");U.className="contract-trigger",_.__resizeTriggers__.appendChild(V),_.__resizeTriggers__.appendChild(U),_.appendChild(_.__resizeTriggers__),u(_),_.addEventListener("scroll",a,!0),r&&(_.__resizeTriggers__.__animationListener__=function(xe){xe.animationName===n&&u(_)},_.__resizeTriggers__.addEventListener(r,_.__resizeTriggers__.__animationListener__))}_.__resizeListeners__.push(M)}},v=function(_,M){if(c)_.detachEvent("onresize",M);else if(_.__resizeListeners__.splice(_.__resizeListeners__.indexOf(M),1),!_.__resizeListeners__.length){_.removeEventListener("scroll",a,!0),_.__resizeTriggers__.__animationListener__&&(_.__resizeTriggers__.removeEventListener(r,_.__resizeTriggers__.__animationListener__),_.__resizeTriggers__.__animationListener__=null);try{_.__resizeTriggers__=!_.removeChild(_.__resizeTriggers__)}catch{}}};return{addResizeListener:h,removeResizeListener:v}}var oP=function(e){tP(t,e);function t(){var n,r,o,i;JR(this,t);for(var u=arguments.length,a=Array(u),c=0;c=t?e.call(null):o.id=requestAnimationFrame(r)}var o={id:requestAnimationFrame(r)};return o}var Hr=null;function qm(e){if(e===void 0&&(e=!1),Hr===null||e){var t=document.createElement("div"),n=t.style;n.width="50px",n.height="50px",n.overflow="scroll",n.direction="rtl";var r=document.createElement("div"),o=r.style;return o.width="100px",o.height="100px",t.appendChild(r),document.body.appendChild(t),t.scrollLeft>0?Hr="positive-descending":(t.scrollLeft=1,t.scrollLeft===0?Hr="negative":Hr="positive-ascending"),document.body.removeChild(t),Hr}return Hr}var cP=150,fP=function(t,n){return t};function dP(e){var t,n,r=e.getItemOffset,o=e.getEstimatedTotalSize,i=e.getItemSize,u=e.getOffsetForIndexAndAlignment,a=e.getStartIndexForOffset,c=e.getStopIndexForStartIndex,s=e.initInstanceProps,m=e.shouldResetStyleCacheOnItemSizeChange,E=e.validateProps;return n=t=function(S){iP(P,S);function P(T){var d;return d=S.call(this,T)||this,d._instanceProps=s(d.props,Xu(Xu(d))),d._outerRef=void 0,d._resetIsScrollingTimeoutId=null,d.state={instance:Xu(Xu(d)),isScrolling:!1,scrollDirection:"forward",scrollOffset:typeof d.props.initialScrollOffset=="number"?d.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},d._callOnItemsRendered=void 0,d._callOnItemsRendered=Oc(function(h,v,w,_){return d.props.onItemsRendered({overscanStartIndex:h,overscanStopIndex:v,visibleStartIndex:w,visibleStopIndex:_})}),d._callOnScroll=void 0,d._callOnScroll=Oc(function(h,v,w){return d.props.onScroll({scrollDirection:h,scrollOffset:v,scrollUpdateWasRequested:w})}),d._getItemStyle=void 0,d._getItemStyle=function(h){var v=d.props,w=v.direction,_=v.itemSize,M=v.layout,I=d._getItemStyleCache(m&&_,m&&M,m&&w),j;if(I.hasOwnProperty(h))j=I[h];else{var V=r(d.props,h,d._instanceProps),U=i(d.props,h,d._instanceProps),re=w==="horizontal"||M==="horizontal",xe=w==="rtl",ke=re?V:0;I[h]=j={position:"absolute",left:xe?void 0:ke,right:xe?ke:void 0,top:re?0:V,height:re?"100%":U,width:re?U:"100%"}}return j},d._getItemStyleCache=void 0,d._getItemStyleCache=Oc(function(h,v,w){return{}}),d._onScrollHorizontal=function(h){var v=h.currentTarget,w=v.clientWidth,_=v.scrollLeft,M=v.scrollWidth;d.setState(function(I){if(I.scrollOffset===_)return null;var j=d.props.direction,V=_;if(j==="rtl")switch(qm()){case"negative":V=-_;break;case"positive-descending":V=M-w-_;break}return V=Math.max(0,Math.min(V,M-w)),{isScrolling:!0,scrollDirection:I.scrollOffset<_?"forward":"backward",scrollOffset:V,scrollUpdateWasRequested:!1}},d._resetIsScrollingDebounced)},d._onScrollVertical=function(h){var v=h.currentTarget,w=v.clientHeight,_=v.scrollHeight,M=v.scrollTop;d.setState(function(I){if(I.scrollOffset===M)return null;var j=Math.max(0,Math.min(M,_-w));return{isScrolling:!0,scrollDirection:I.scrollOffset0)for(var $=A;$<=N;$++)D.push(Y.exports.createElement(h,{data:U,key:xe($,U),index:$,isScrolling:oe?se:void 0,style:this._getItemStyle($)}));var J=o(this.props,this._instanceProps);return Y.exports.createElement(ee||X||"div",{className:v,onScroll:k,ref:this._outerRefSetter,style:Wo({position:"relative",height:_,width:te,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:w},B)},Y.exports.createElement(I||j||"div",{children:D,ref:M,style:{height:ae?"100%":J,pointerEvents:se?"none":void 0,width:ae?J:"100%"}}))},O._callPropsCallbacks=function(){if(typeof this.props.onItemsRendered=="function"){var d=this.props.itemCount;if(d>0){var h=this._getRangeToRender(),v=h[0],w=h[1],_=h[2],M=h[3];this._callOnItemsRendered(v,w,_,M)}}if(typeof this.props.onScroll=="function"){var I=this.state,j=I.scrollDirection,V=I.scrollOffset,U=I.scrollUpdateWasRequested;this._callOnScroll(j,V,U)}},O._getRangeToRender=function(){var d=this.props,h=d.itemCount,v=d.overscanCount,w=this.state,_=w.isScrolling,M=w.scrollDirection,I=w.scrollOffset;if(h===0)return[0,0,0,0];var j=a(this.props,I,this._instanceProps),V=c(this.props,j,I,this._instanceProps),U=!_||M==="backward"?Math.max(1,v):1,re=!_||M==="forward"?Math.max(1,v):1;return[Math.max(0,j-U),Math.max(0,Math.min(h-1,V+re)),j,V]},P}(Y.exports.PureComponent),t.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},n}var pP=function(t,n){t.children,t.direction,t.height,t.layout,t.innerTagName,t.outerTagName,t.width,n.instance},$P=dP({getItemOffset:function(t,n){var r=t.itemSize;return n*r},getItemSize:function(t,n){var r=t.itemSize;return r},getEstimatedTotalSize:function(t){var n=t.itemCount,r=t.itemSize;return r*n},getOffsetForIndexAndAlignment:function(t,n,r,o){var i=t.direction,u=t.height,a=t.itemCount,c=t.itemSize,s=t.layout,m=t.width,E=i==="horizontal"||s==="horizontal",S=E?m:u,P=Math.max(0,a*c-S),O=Math.min(P,n*c),T=Math.max(0,n*c-S+c);switch(r==="smart"&&(o>=T-S&&o<=O+S?r="auto":r="center"),r){case"start":return O;case"end":return T;case"center":{var d=Math.round(T+(O-T)/2);return dP+Math.floor(S/2)?P:d}case"auto":default:return o>=T&&o<=O?o:o Clash - - - + + + diff --git a/luci-app-openclash/root/usr/share/openclash/dashboard/sw.js b/luci-app-openclash/root/usr/share/openclash/dashboard/sw.js index e643cfbd9..95c7c117e 100644 --- a/luci-app-openclash/root/usr/share/openclash/dashboard/sw.js +++ b/luci-app-openclash/root/usr/share/openclash/dashboard/sw.js @@ -1 +1 @@ -if(!self.define){let e,s={};const n=(n,i)=>(n=new URL(n+".js",i).href,s[n]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=s,document.head.appendChild(e)}else e=n,importScripts(n),s()})).then((()=>{let e=s[n];if(!e)throw new Error(`Module ${n} didn’t register its module`);return e})));self.define=(i,t)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let o={};const l=e=>n(e,r),u={module:{uri:r},exports:o,require:l};s[r]=Promise.all(i.map((e=>u[e]||l(e)))).then((e=>(t(...e),o)))}}define(["./workbox-6659438f"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"assets/index.61b62488.css",revision:null},{url:"assets/index.c727f058.js",revision:null},{url:"assets/vendor.5151d57b.js",revision:null},{url:"index.html",revision:"6315ca1a6e197faa97288f5bcf8cc706"},{url:"manifest.webmanifest",revision:"d3dd1da0aa7614180924343e65244285"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))})); +if(!self.define){let e,s={};const n=(n,i)=>(n=new URL(n+".js",i).href,s[n]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=n,e.onload=s,document.head.appendChild(e)}else e=n,importScripts(n),s()})).then((()=>{let e=s[n];if(!e)throw new Error(`Module ${n} didn’t register its module`);return e})));self.define=(i,t)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let o={};const l=e=>n(e,r),d={module:{uri:r},exports:o,require:l};s[r]=Promise.all(i.map((e=>d[e]||l(e)))).then((e=>(t(...e),o)))}}define(["./workbox-b7e829be"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"assets/index.049e98b9.js",revision:null},{url:"assets/index.760643c8.css",revision:null},{url:"assets/vendor.e882027f.js",revision:null},{url:"index.html",revision:"4e8629bf048d1d7a769b0e0678133f08"},{url:"manifest.webmanifest",revision:"d3dd1da0aa7614180924343e65244285"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))})); diff --git a/luci-app-openclash/root/usr/share/openclash/dashboard/workbox-6659438f.js b/luci-app-openclash/root/usr/share/openclash/dashboard/workbox-b7e829be.js similarity index 98% rename from luci-app-openclash/root/usr/share/openclash/dashboard/workbox-6659438f.js rename to luci-app-openclash/root/usr/share/openclash/dashboard/workbox-b7e829be.js index 90db3b6eb..f903a21f3 100644 --- a/luci-app-openclash/root/usr/share/openclash/dashboard/workbox-6659438f.js +++ b/luci-app-openclash/root/usr/share/openclash/dashboard/workbox-b7e829be.js @@ -1 +1 @@ -define(["exports"],(function(t){"use strict";try{self["workbox:core:6.4.0"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:6.4.0"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class i{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class r extends i{constructor(t,e,s){super((({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)}),e,s)}}class o{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",(t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map((e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})})));t.waitUntil(s),t.ports&&t.ports[0]&&s.then((()=>t.ports[0].postMessage(!0)))}}))}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let o=r&&r.handler;const c=t.method;if(!o&&this.i.has(c)&&(o=this.i.get(c)),!o)return;let a;try{a=o.handle({url:s,request:t,event:e,params:i})}catch(t){a=Promise.reject(t)}const h=r&&r.catchHandler;return a instanceof Promise&&(this.o||h)&&(a=a.catch((async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:i})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n}))),a}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const i=this.t.get(s.method)||[];for(const r of i){let i;const o=r.match({url:t,sameOrigin:e,request:s,event:n});if(o)return i=o,(Array.isArray(i)&&0===i.length||o.constructor===Object&&0===Object.keys(o).length||"boolean"==typeof o)&&(i=void 0),{route:r,params:i}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let c;const a=()=>(c||(c=new o,c.addFetchListener(),c.addCacheListener()),c);function h(t,e,n){let o;if("string"==typeof t){const s=new URL(t,location.href);o=new i((({url:t})=>t.href===s.href),e,n)}else if(t instanceof RegExp)o=new r(t,e,n);else if("function"==typeof t)o=new i(t,e,n);else{if(!(t instanceof i))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});o=t}return a().registerRoute(o),o}const u={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},l=t=>[u.prefix,t,u.suffix].filter((t=>t&&t.length>0)).join("-"),f=t=>t||l(u.precache),w=t=>t||l(u.runtime);function d(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:6.4.0"]&&_()}catch(t){}function p(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class y{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class g{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.h.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.h=t}}let R;async function m(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const i=t.clone(),r={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=e?e(r):r,c=function(){if(void 0===R){const t=new Response("");if("body"in t)try{new Response(t.body),R=!0}catch(t){R=!1}R=!1}return R}()?i.body:await i.blob();return new Response(c,o)}function v(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class q{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}const U=new Set;try{self["workbox:strategies:6.4.0"]&&_()}catch(t){}function L(t){return"string"==typeof t?new Request(t):t}class b{constructor(t,e){this.u={},Object.assign(this,e),this.event=e.event,this.l=t,this.p=new q,this.g=[],this.R=[...t.plugins],this.m=new Map;for(const t of this.R)this.m.set(t,{});this.event.waitUntil(this.p.promise)}async fetch(t){const{event:e}=this;let n=L(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const i=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const r=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.l.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:r,response:t});return t}catch(t){throw i&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:i.clone(),request:r.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=L(t);let s;const{cacheName:n,matchOptions:i}=this.l,r=await this.getCacheKey(e,"read"),o=Object.assign(Object.assign({},i),{cacheName:n});s=await caches.match(r,o);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:i,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(t,e){const n=L(t);var i;await(i=0,new Promise((t=>setTimeout(t,i))));const r=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(o=r.url,new URL(String(o),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var o;const c=await this.v(e);if(!c)return!1;const{cacheName:a,matchOptions:h}=this.l,u=await self.caches.open(a),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const i=v(e.url,s);if(e.url===i)return t.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),o=await t.keys(e,r);for(const e of o)if(i===v(e.url,s))return t.match(e,n)}(u,r.clone(),["__WB_REVISION__"],h):null;try{await u.put(r,l?c.clone():c)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of U)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:a,oldResponse:f,newResponse:c.clone(),request:r,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.u[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=L(await t({mode:e,request:n,event:this.event,params:this.params}));this.u[s]=n}return this.u[s]}hasCallback(t){for(const e of this.l.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.l.plugins)if("function"==typeof e[t]){const s=this.m.get(e),n=n=>{const i=Object.assign(Object.assign({},n),{state:s});return e[t](i)};yield n}}waitUntil(t){return this.g.push(t),t}async doneWaiting(){let t;for(;t=this.g.shift();)await t}destroy(){this.p.resolve(null)}async v(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class C extends class{constructor(t={}){this.cacheName=w(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,i=new b(this,{event:e,request:s,params:n}),r=this.q(i,s,e);return[r,this.U(r,i,s,e)]}async q(t,e,n){let i;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(i=await this.L(e,t),!i||"error"===i.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const r of t.iterateCallbacks("handlerDidError"))if(i=await r({error:s,event:n,request:e}),i)break;if(!i)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))i=await s({event:n,request:e,response:i});return i}async U(t,e,s,n){let i,r;try{i=await t}catch(r){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:i}),await e.doneWaiting()}catch(t){t instanceof Error&&(r=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:i,error:r}),e.destroy(),r)throw r}}{constructor(t={}){t.cacheName=f(t.cacheName),super(t),this._=!1!==t.fallbackToNetwork,this.plugins.push(C.copyRedirectedCacheableResponsesPlugin)}async L(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.C(t,e):await this.O(t,e))}async O(t,e){let n;const i=e.params||{};if(!this._)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=i.integrity,r=t.integrity,o=!r||r===s;n=await e.fetch(new Request(t,{integrity:r||s})),s&&o&&(this.N(),await e.cachePut(t,n.clone()))}return n}async C(t,e){this.N();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}N(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==C.copyRedirectedCacheableResponsesPlugin&&(n===C.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(C.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}C.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},C.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await m(t):t};class E{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.k=new Map,this.K=new Map,this.P=new Map,this.l=new C({cacheName:f(t),plugins:[...e,new g({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.l}precache(t){this.addToCacheList(t),this.T||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.T=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=p(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.k.has(i)&&this.k.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.k.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.P.has(t)&&this.P.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.P.set(t,n.integrity)}if(this.k.set(i,t),this.K.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return d(t,(async()=>{const e=new y;this.strategy.plugins.push(e);for(const[e,s]of this.k){const n=this.P.get(s),i=this.K.get(e),r=new Request(e,{integrity:n,cache:i,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:r,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}}))}activate(t){return d(t,(async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.k.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this.k}getCachedURLs(){return[...this.k.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.k.get(e.href)}getIntegrityForCacheKey(t){return this.P.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}let O;const x=()=>(O||(O=new E),O);class N extends i{constructor(t,e){super((({request:s})=>{const n=t.getURLsToCacheKeys();for(const i of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const o=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some((t=>t.test(s)))&&t.searchParams.delete(s);return t}(r,e);if(yield o.href,s&&o.pathname.endsWith("/")){const t=new URL(o.href);t.pathname+=s,yield t.href}if(n){const t=new URL(o.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(i);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}}),t.strategy)}}t.NavigationRoute=class extends i{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super((t=>this.W(t)),t),this.j=e,this.M=s}W({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.M)if(t.test(s))return!1;return!!this.j.some((t=>t.test(s)))}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",(t=>{const e=f();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter((s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t));return await Promise.all(s.map((t=>self.caches.delete(t)))),s})(e).then((t=>{})))}))},t.createHandlerBoundToURL=function(t){return x().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){x().precache(t)}(t),function(t){const e=x();h(new N(e,t))}(e)},t.registerRoute=h})); +define(["exports"],(function(t){"use strict";try{self["workbox:core:6.4.1"]&&_()}catch(t){}const e=(t,...e)=>{let s=t;return e.length>0&&(s+=` :: ${JSON.stringify(e)}`),s};class s extends Error{constructor(t,s){super(e(t,s)),this.name=t,this.details=s}}try{self["workbox:routing:6.4.1"]&&_()}catch(t){}const n=t=>t&&"object"==typeof t?t:{handle:t};class i{constructor(t,e,s="GET"){this.handler=n(e),this.match=t,this.method=s}setCatchHandler(t){this.catchHandler=n(t)}}class r extends i{constructor(t,e,s){super((({url:e})=>{const s=t.exec(e.href);if(s&&(e.origin===location.origin||0===s.index))return s.slice(1)}),e,s)}}class o{constructor(){this.t=new Map,this.i=new Map}get routes(){return this.t}addFetchListener(){self.addEventListener("fetch",(t=>{const{request:e}=t,s=this.handleRequest({request:e,event:t});s&&t.respondWith(s)}))}addCacheListener(){self.addEventListener("message",(t=>{if(t.data&&"CACHE_URLS"===t.data.type){const{payload:e}=t.data,s=Promise.all(e.urlsToCache.map((e=>{"string"==typeof e&&(e=[e]);const s=new Request(...e);return this.handleRequest({request:s,event:t})})));t.waitUntil(s),t.ports&&t.ports[0]&&s.then((()=>t.ports[0].postMessage(!0)))}}))}handleRequest({request:t,event:e}){const s=new URL(t.url,location.href);if(!s.protocol.startsWith("http"))return;const n=s.origin===location.origin,{params:i,route:r}=this.findMatchingRoute({event:e,request:t,sameOrigin:n,url:s});let o=r&&r.handler;const c=t.method;if(!o&&this.i.has(c)&&(o=this.i.get(c)),!o)return;let a;try{a=o.handle({url:s,request:t,event:e,params:i})}catch(t){a=Promise.reject(t)}const h=r&&r.catchHandler;return a instanceof Promise&&(this.o||h)&&(a=a.catch((async n=>{if(h)try{return await h.handle({url:s,request:t,event:e,params:i})}catch(t){t instanceof Error&&(n=t)}if(this.o)return this.o.handle({url:s,request:t,event:e});throw n}))),a}findMatchingRoute({url:t,sameOrigin:e,request:s,event:n}){const i=this.t.get(s.method)||[];for(const r of i){let i;const o=r.match({url:t,sameOrigin:e,request:s,event:n});if(o)return i=o,(Array.isArray(i)&&0===i.length||o.constructor===Object&&0===Object.keys(o).length||"boolean"==typeof o)&&(i=void 0),{route:r,params:i}}return{}}setDefaultHandler(t,e="GET"){this.i.set(e,n(t))}setCatchHandler(t){this.o=n(t)}registerRoute(t){this.t.has(t.method)||this.t.set(t.method,[]),this.t.get(t.method).push(t)}unregisterRoute(t){if(!this.t.has(t.method))throw new s("unregister-route-but-not-found-with-method",{method:t.method});const e=this.t.get(t.method).indexOf(t);if(!(e>-1))throw new s("unregister-route-route-not-registered");this.t.get(t.method).splice(e,1)}}let c;const a=()=>(c||(c=new o,c.addFetchListener(),c.addCacheListener()),c);function h(t,e,n){let o;if("string"==typeof t){const s=new URL(t,location.href);o=new i((({url:t})=>t.href===s.href),e,n)}else if(t instanceof RegExp)o=new r(t,e,n);else if("function"==typeof t)o=new i(t,e,n);else{if(!(t instanceof i))throw new s("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});o=t}return a().registerRoute(o),o}const u={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!=typeof registration?registration.scope:""},l=t=>[u.prefix,t,u.suffix].filter((t=>t&&t.length>0)).join("-"),f=t=>t||l(u.precache),w=t=>t||l(u.runtime);function d(t,e){const s=e();return t.waitUntil(s),s}try{self["workbox:precaching:6.4.1"]&&_()}catch(t){}function p(t){if(!t)throw new s("add-to-cache-list-unexpected-type",{entry:t});if("string"==typeof t){const e=new URL(t,location.href);return{cacheKey:e.href,url:e.href}}const{revision:e,url:n}=t;if(!n)throw new s("add-to-cache-list-unexpected-type",{entry:t});if(!e){const t=new URL(n,location.href);return{cacheKey:t.href,url:t.href}}const i=new URL(n,location.href),r=new URL(n,location.href);return i.searchParams.set("__WB_REVISION__",e),{cacheKey:i.href,url:r.href}}class y{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:t,state:e})=>{e&&(e.originalRequest=t)},this.cachedResponseWillBeUsed=async({event:t,state:e,cachedResponse:s})=>{if("install"===t.type&&e&&e.originalRequest&&e.originalRequest instanceof Request){const t=e.originalRequest.url;s?this.notUpdatedURLs.push(t):this.updatedURLs.push(t)}return s}}}class g{constructor({precacheController:t}){this.cacheKeyWillBeUsed=async({request:t,params:e})=>{const s=(null==e?void 0:e.cacheKey)||this.h.getCacheKeyForURL(t.url);return s?new Request(s,{headers:t.headers}):t},this.h=t}}let R;async function m(t,e){let n=null;if(t.url){n=new URL(t.url).origin}if(n!==self.location.origin)throw new s("cross-origin-copy-response",{origin:n});const i=t.clone(),r={headers:new Headers(i.headers),status:i.status,statusText:i.statusText},o=e?e(r):r,c=function(){if(void 0===R){const t=new Response("");if("body"in t)try{new Response(t.body),R=!0}catch(t){R=!1}R=!1}return R}()?i.body:await i.blob();return new Response(c,o)}function v(t,e){const s=new URL(t);for(const t of e)s.searchParams.delete(t);return s.href}class q{constructor(){this.promise=new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}}const U=new Set;try{self["workbox:strategies:6.4.1"]&&_()}catch(t){}function L(t){return"string"==typeof t?new Request(t):t}class b{constructor(t,e){this.u={},Object.assign(this,e),this.event=e.event,this.l=t,this.p=new q,this.g=[],this.R=[...t.plugins],this.m=new Map;for(const t of this.R)this.m.set(t,{});this.event.waitUntil(this.p.promise)}async fetch(t){const{event:e}=this;let n=L(t);if("navigate"===n.mode&&e instanceof FetchEvent&&e.preloadResponse){const t=await e.preloadResponse;if(t)return t}const i=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const t of this.iterateCallbacks("requestWillFetch"))n=await t({request:n.clone(),event:e})}catch(t){if(t instanceof Error)throw new s("plugin-error-request-will-fetch",{thrownErrorMessage:t.message})}const r=n.clone();try{let t;t=await fetch(n,"navigate"===n.mode?void 0:this.l.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))t=await s({event:e,request:r,response:t});return t}catch(t){throw i&&await this.runCallbacks("fetchDidFail",{error:t,event:e,originalRequest:i.clone(),request:r.clone()}),t}}async fetchAndCachePut(t){const e=await this.fetch(t),s=e.clone();return this.waitUntil(this.cachePut(t,s)),e}async cacheMatch(t){const e=L(t);let s;const{cacheName:n,matchOptions:i}=this.l,r=await this.getCacheKey(e,"read"),o=Object.assign(Object.assign({},i),{cacheName:n});s=await caches.match(r,o);for(const t of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await t({cacheName:n,matchOptions:i,cachedResponse:s,request:r,event:this.event})||void 0;return s}async cachePut(t,e){const n=L(t);var i;await(i=0,new Promise((t=>setTimeout(t,i))));const r=await this.getCacheKey(n,"write");if(!e)throw new s("cache-put-with-no-response",{url:(o=r.url,new URL(String(o),location.href).href.replace(new RegExp(`^${location.origin}`),""))});var o;const c=await this.v(e);if(!c)return!1;const{cacheName:a,matchOptions:h}=this.l,u=await self.caches.open(a),l=this.hasCallback("cacheDidUpdate"),f=l?await async function(t,e,s,n){const i=v(e.url,s);if(e.url===i)return t.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),o=await t.keys(e,r);for(const e of o)if(i===v(e.url,s))return t.match(e,n)}(u,r.clone(),["__WB_REVISION__"],h):null;try{await u.put(r,l?c.clone():c)}catch(t){if(t instanceof Error)throw"QuotaExceededError"===t.name&&await async function(){for(const t of U)await t()}(),t}for(const t of this.iterateCallbacks("cacheDidUpdate"))await t({cacheName:a,oldResponse:f,newResponse:c.clone(),request:r,event:this.event});return!0}async getCacheKey(t,e){const s=`${t.url} | ${e}`;if(!this.u[s]){let n=t;for(const t of this.iterateCallbacks("cacheKeyWillBeUsed"))n=L(await t({mode:e,request:n,event:this.event,params:this.params}));this.u[s]=n}return this.u[s]}hasCallback(t){for(const e of this.l.plugins)if(t in e)return!0;return!1}async runCallbacks(t,e){for(const s of this.iterateCallbacks(t))await s(e)}*iterateCallbacks(t){for(const e of this.l.plugins)if("function"==typeof e[t]){const s=this.m.get(e),n=n=>{const i=Object.assign(Object.assign({},n),{state:s});return e[t](i)};yield n}}waitUntil(t){return this.g.push(t),t}async doneWaiting(){let t;for(;t=this.g.shift();)await t}destroy(){this.p.resolve(null)}async v(t){let e=t,s=!1;for(const t of this.iterateCallbacks("cacheWillUpdate"))if(e=await t({request:this.request,response:e,event:this.event})||void 0,s=!0,!e)break;return s||e&&200!==e.status&&(e=void 0),e}}class C extends class{constructor(t={}){this.cacheName=w(t.cacheName),this.plugins=t.plugins||[],this.fetchOptions=t.fetchOptions,this.matchOptions=t.matchOptions}handle(t){const[e]=this.handleAll(t);return e}handleAll(t){t instanceof FetchEvent&&(t={event:t,request:t.request});const e=t.event,s="string"==typeof t.request?new Request(t.request):t.request,n="params"in t?t.params:void 0,i=new b(this,{event:e,request:s,params:n}),r=this.q(i,s,e);return[r,this.U(r,i,s,e)]}async q(t,e,n){let i;await t.runCallbacks("handlerWillStart",{event:n,request:e});try{if(i=await this.L(e,t),!i||"error"===i.type)throw new s("no-response",{url:e.url})}catch(s){if(s instanceof Error)for(const r of t.iterateCallbacks("handlerDidError"))if(i=await r({error:s,event:n,request:e}),i)break;if(!i)throw s}for(const s of t.iterateCallbacks("handlerWillRespond"))i=await s({event:n,request:e,response:i});return i}async U(t,e,s,n){let i,r;try{i=await t}catch(r){}try{await e.runCallbacks("handlerDidRespond",{event:n,request:s,response:i}),await e.doneWaiting()}catch(t){t instanceof Error&&(r=t)}if(await e.runCallbacks("handlerDidComplete",{event:n,request:s,response:i,error:r}),e.destroy(),r)throw r}}{constructor(t={}){t.cacheName=f(t.cacheName),super(t),this._=!1!==t.fallbackToNetwork,this.plugins.push(C.copyRedirectedCacheableResponsesPlugin)}async L(t,e){const s=await e.cacheMatch(t);return s||(e.event&&"install"===e.event.type?await this.C(t,e):await this.O(t,e))}async O(t,e){let n;const i=e.params||{};if(!this._)throw new s("missing-precache-entry",{cacheName:this.cacheName,url:t.url});{const s=i.integrity,r=t.integrity,o=!r||r===s;n=await e.fetch(new Request(t,{integrity:r||s})),s&&o&&(this.N(),await e.cachePut(t,n.clone()))}return n}async C(t,e){this.N();const n=await e.fetch(t);if(!await e.cachePut(t,n.clone()))throw new s("bad-precaching-response",{url:t.url,status:n.status});return n}N(){let t=null,e=0;for(const[s,n]of this.plugins.entries())n!==C.copyRedirectedCacheableResponsesPlugin&&(n===C.defaultPrecacheCacheabilityPlugin&&(t=s),n.cacheWillUpdate&&e++);0===e?this.plugins.push(C.defaultPrecacheCacheabilityPlugin):e>1&&null!==t&&this.plugins.splice(t,1)}}C.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:t})=>!t||t.status>=400?null:t},C.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await m(t):t};class E{constructor({cacheName:t,plugins:e=[],fallbackToNetwork:s=!0}={}){this.k=new Map,this.K=new Map,this.P=new Map,this.l=new C({cacheName:f(t),plugins:[...e,new g({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this.l}precache(t){this.addToCacheList(t),this.T||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this.T=!0)}addToCacheList(t){const e=[];for(const n of t){"string"==typeof n?e.push(n):n&&void 0===n.revision&&e.push(n.url);const{cacheKey:t,url:i}=p(n),r="string"!=typeof n&&n.revision?"reload":"default";if(this.k.has(i)&&this.k.get(i)!==t)throw new s("add-to-cache-list-conflicting-entries",{firstEntry:this.k.get(i),secondEntry:t});if("string"!=typeof n&&n.integrity){if(this.P.has(t)&&this.P.get(t)!==n.integrity)throw new s("add-to-cache-list-conflicting-integrities",{url:i});this.P.set(t,n.integrity)}if(this.k.set(i,t),this.K.set(i,r),e.length>0){const t=`Workbox is precaching URLs without revision info: ${e.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(t)}}}install(t){return d(t,(async()=>{const e=new y;this.strategy.plugins.push(e);for(const[e,s]of this.k){const n=this.P.get(s),i=this.K.get(e),r=new Request(e,{integrity:n,cache:i,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s},request:r,event:t}))}const{updatedURLs:s,notUpdatedURLs:n}=e;return{updatedURLs:s,notUpdatedURLs:n}}))}activate(t){return d(t,(async()=>{const t=await self.caches.open(this.strategy.cacheName),e=await t.keys(),s=new Set(this.k.values()),n=[];for(const i of e)s.has(i.url)||(await t.delete(i),n.push(i.url));return{deletedURLs:n}}))}getURLsToCacheKeys(){return this.k}getCachedURLs(){return[...this.k.keys()]}getCacheKeyForURL(t){const e=new URL(t,location.href);return this.k.get(e.href)}getIntegrityForCacheKey(t){return this.P.get(t)}async matchPrecache(t){const e=t instanceof Request?t.url:t,s=this.getCacheKeyForURL(e);if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(t){const e=this.getCacheKeyForURL(t);if(!e)throw new s("non-precached-url",{url:t});return s=>(s.request=new Request(t),s.params=Object.assign({cacheKey:e},s.params),this.strategy.handle(s))}}let O;const x=()=>(O||(O=new E),O);class N extends i{constructor(t,e){super((({request:s})=>{const n=t.getURLsToCacheKeys();for(const i of function*(t,{ignoreURLParametersMatching:e=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:i}={}){const r=new URL(t,location.href);r.hash="",yield r.href;const o=function(t,e=[]){for(const s of[...t.searchParams.keys()])e.some((t=>t.test(s)))&&t.searchParams.delete(s);return t}(r,e);if(yield o.href,s&&o.pathname.endsWith("/")){const t=new URL(o.href);t.pathname+=s,yield t.href}if(n){const t=new URL(o.href);t.pathname+=".html",yield t.href}if(i){const t=i({url:r});for(const e of t)yield e.href}}(s.url,e)){const e=n.get(i);if(e){return{cacheKey:e,integrity:t.getIntegrityForCacheKey(e)}}}}),t.strategy)}}t.NavigationRoute=class extends i{constructor(t,{allowlist:e=[/./],denylist:s=[]}={}){super((t=>this.W(t)),t),this.j=e,this.M=s}W({url:t,request:e}){if(e&&"navigate"!==e.mode)return!1;const s=t.pathname+t.search;for(const t of this.M)if(t.test(s))return!1;return!!this.j.some((t=>t.test(s)))}},t.cleanupOutdatedCaches=function(){self.addEventListener("activate",(t=>{const e=f();t.waitUntil((async(t,e="-precache-")=>{const s=(await self.caches.keys()).filter((s=>s.includes(e)&&s.includes(self.registration.scope)&&s!==t));return await Promise.all(s.map((t=>self.caches.delete(t)))),s})(e).then((t=>{})))}))},t.createHandlerBoundToURL=function(t){return x().createHandlerBoundToURL(t)},t.precacheAndRoute=function(t,e){!function(t){x().precache(t)}(t),function(t){const e=x();h(new N(e,t))}(e)},t.registerRoute=h})); diff --git a/luci-app-openclash/root/usr/share/openclash/openclash.sh b/luci-app-openclash/root/usr/share/openclash/openclash.sh index e30d3ccf9..bbfe74ec4 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash.sh @@ -462,7 +462,7 @@ sub_info_get() template_path_encode=$(urlencode "$template_path") [ -n "$key_match_param" ] && key_match_param="(?i)$(urlencode "$key_match_param")" [ -n "$key_ex_match_param" ] && key_ex_match_param="(?i)$(urlencode "$key_ex_match_param")" - subscribe_url_param="?target=clash&new_name=true&url=$subscribe_url&config=$template_path_encode&include=$key_match_param&exclude=$key_ex_match_param&emoji=$emoji&list=false&sort=$sort&$udp&scv=$skip_cert_verify&append_type=$node_type&fdn=true" + subscribe_url_param="?target=clash&new_name=true&url=$subscribe_url&config=$template_path_encode&include=$key_match_param&exclude=$key_ex_match_param&emoji=$emoji&list=false&sort=$sort&$udp&scv=$skip_cert_verify&append_type=$node_type&fdn=true&expand=false" c_address="$convert_address" else subscribe_url=$address diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_core.sh b/luci-app-openclash/root/usr/share/openclash/openclash_core.sh index 2507a36ff..08585a480 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_core.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_core.sh @@ -11,6 +11,13 @@ CPU_MODEL=$(uci get openclash.config.core_version 2>/dev/null) RELEASE_BRANCH=$(uci -q get openclash.config.release_branch || echo "master") [ ! -f "/tmp/clash_last_version" ] && /usr/share/openclash/clash_version.sh 2>/dev/null +if [ ! -f "/tmp/clash_last_version" ]; then + LOG_OUT "Error: 【"$CORE_TYPE"】Core Version Check Error, Please Try Again Later..." + sleep 3 + SLOG_CLEAN + exit 0 +fi + if [ "$small_flash_memory" != "1" ]; then dev_core_path="/etc/openclash/core/clash" tun_core_path="/etc/openclash/core/clash_tun" diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_history_get.sh b/luci-app-openclash/root/usr/share/openclash/openclash_history_get.sh index 1ec7923e2..c37a84955 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_history_get.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_history_get.sh @@ -26,10 +26,15 @@ fi CONFIG_FILE=$(unify_ps_cfgname) CONFIG_NAME=$(echo "$CONFIG_FILE" |awk -F '/' '{print $4}' 2>/dev/null) +small_flash_memory=$(uci -q get openclash.config.small_flash_memory) HISTORY_PATH_OLD="/etc/openclash/history/${CONFIG_NAME%.*}" HISTORY_PATH="/etc/openclash/history/${CONFIG_NAME%.*}.db" CACHE_PATH_OLD="/etc/openclash/.cache" -CACHE_PATH="/etc/openclash/cache.db" +if [ "$small_flash_memory" != "1" ]; then + CACHE_PATH="/etc/openclash/cache.db" +else + CACHE_PATH="/tmp/etc/openclash/cache.db" +fi set_lock if [ -z "$CONFIG_FILE" ] || [ ! -f "$CONFIG_FILE" ]; then diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh b/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh index 8a6c072f6..114f10c39 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh @@ -35,10 +35,10 @@ LOG_OUT "Start Downloading Third Party Rules in Use..." if [ "$rule_name" = "lhie1" ]; then if pidof clash >/dev/null; then - curl -sL --connect-timeout 10 --retry 2 https://raw.githubusercontent.com/lhie1/Rules/master/Clash/Rule.yaml -o /tmp/rules.yaml >/dev/null 2>&1 + curl -sL --connect-timeout 10 --retry 2 https://raw.githubusercontent.com/dler-io/Rules/master/Clash/Rule.yaml -o /tmp/rules.yaml >/dev/null 2>&1 fi if [ "$?" -ne "0" ] || ! pidof clash >/dev/null; then - curl -sL --connect-timeout 10 --retry 2 https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Rule.yaml -o /tmp/rules.yaml >/dev/null 2>&1 + curl -sL --connect-timeout 10 --retry 2 https://cdn.jsdelivr.net/gh/dler-io/Rules@master/Clash/Rule.yaml -o /tmp/rules.yaml >/dev/null 2>&1 fi sed -i '1i rules:' /tmp/rules.yaml elif [ "$rule_name" = "ConnersHua" ]; then diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_streaming_unlock.lua b/luci-app-openclash/root/usr/share/openclash/openclash_streaming_unlock.lua index 26a6200b1..d88e30f64 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_streaming_unlock.lua +++ b/luci-app-openclash/root/usr/share/openclash/openclash_streaming_unlock.lua @@ -8,15 +8,14 @@ local uci = require("luci.model.uci").cursor() local fs = require "luci.openclash" local json = require "luci.jsonc" local UA = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36" -local filmId = 81215567 +local filmId = 70143836 local type = arg[1] local enable = tonumber(uci:get("openclash", "config", "stream_auto_select")) or 0 local now_name, group_name, group_type, group_show, status local groups = {} local proxies = {} -if enable == 0 then os.exit(0) end -if not type then os.exit(0) end +if enable == 0 or not type then os.exit(0) end function unlock_auto_select() local key_group, region, now, proxy, group_match, proxy_default, auto_get_group, info, group_now @@ -24,10 +23,11 @@ function unlock_auto_select() local passwd = uci:get("openclash", "config", "dashboard_password") or "" local ip = luci.sys.exec("uci -q get network.lan.ipaddr |awk -F '/' '{print $1}' 2>/dev/null |tr -d '\n'") local original = {} - local key_groups = {} + local other_region_unlock = {} local tested_proxy = {} + local fallback_select = {} local gorup_i18 = "Group:" - local no_group_find = "failed to search based on keywords and automatically obtain the group, please confirm the validity of the keywords!" + local no_group_find = "failed to search based on keywords and automatically obtain the group, please confirm the validity of the regex!" local full_support_no_area = "full support." local full_support = "full support, area:" local only_original = "only support homemade!" @@ -43,6 +43,10 @@ function unlock_auto_select() local no_unlock_test_start = "not support unlock! start auto select unlock proxy..." local faild_test_start = "unlock test faild! start auto select unlock proxy..." local area_i18 = ", area:" + local select_faild_other_region = "unlock node auto selected failed, no node match the regex, rolled back to other full support node" + local other_region_unlock_test = "full support but not match the regex!" + local other_region_unlock_no_select = "but not match the regex! the type of group is not select, auto select could not work!" + local other_region_unlock_test_start = "full support but not match the regex! start auto select unlock proxy..." if not ip or ip == "" then ip = luci.sys.exec("ip addr show 2>/dev/null | grep -w 'inet' | grep 'global' | grep 'brd' | grep -Eo 'inet [0-9\.]+' | awk '{print $2}' | head -n 1 | tr -d '\n'") @@ -82,10 +86,9 @@ function unlock_auto_select() elseif type == "Amazon Prime Video" then key_group = uci:get("openclash", "config", "stream_auto_select_group_key_prime_video") or "prime video|amazon" end - string.gsub(key_group, '[^%|]+', function(w) table.insert(key_groups, w) end) - if #key_groups == 0 then table.insert(key_groups, type) end + if not key_group then key_group = type end else - table.insert(key_groups, auto_get_group) + key_group = "^" .. auto_get_group .. "$" end --save group name @@ -98,189 +101,206 @@ function unlock_auto_select() group_match = false for _, value in pairs(info.proxies) do --match only once - for g = 1, #key_groups do - while true do - --find group - if not string.find(string.lower(value.name), string.lower(key_groups[g])) then - break + while true do + --find group + if not datamatch(value.name, key_group) then + break + else + --get groups info + get_proxy(info, value.name, value.name) + table.insert(tested_proxy, now_name) + group_match = true + --test now proxy + region = proxy_unlock_test() + if table_include(groups, now_name) then + now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.."】" else - --get groups info - get_proxy(info, value.name, value.name) - table.insert(tested_proxy, now_name) - group_match = true - --test now proxy + now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.." ➟ "..now_name.."】" + end + if status ~= 2 then + os.execute("sleep 3") region = proxy_unlock_test() - if table_include(groups, now_name) then - now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.."】" + end + if status == 2 then + if region and region ~= "" then + print(now..full_support.."【"..region.."】") else - now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.." ➟ "..now_name.."】" + print(now..full_support_no_area) end - if status ~= 2 then - os.execute("sleep 3") - region = proxy_unlock_test() - end - if status == 2 then - if region then - print(now..full_support.."【"..region.."】") - else - print(now..full_support_no_area) - end - break - elseif status == 1 then - table.insert(original, {get_group_now(info, value.name), group_name, now_name}) - if type == "Netflix" then - print(now..original_test_start) - else - print(now..no_unlock_test_start) - end + break + elseif status == 3 then + table.insert(other_region_unlock, {get_group_now(info, value.name), group_name, now_name}) + print(now..other_region_unlock_test_start) + elseif status == 1 then + table.insert(original, {get_group_now(info, value.name), group_name, now_name}) + if type == "Netflix" then + print(now..original_test_start) else - print(now..faild_test_start) + print(now..no_unlock_test_start) end - - --find new unlock - if value.type == "Selector" then - --loop proxy test - for i = 1, #(value.all) do - --save group current selected - proxy_default = value.now - while true do - if value.all[i] == "REJECT" or value.all[i] == "DIRECT" then - break - else - get_proxy(info, value.all[i], value.name) - if group_type == "Selector" then - if group_name == value.all[i] then - luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, group_name, ip, port, urlencode(value.name))) + else + print(now..faild_test_start) + end + + --find new unlock + if value.type == "Selector" then + --loop proxy test + for i = 1, #(value.all) do + --save group current selected + proxy_default = value.now + while true do + if value.all[i] == "REJECT" or value.all[i] == "DIRECT" then + break + else + get_proxy(info, value.all[i], value.name) + if group_type == "Selector" then + if group_name == value.all[i] then + luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, group_name, ip, port, urlencode(value.name))) + end + for p = 1, #(proxies) do + proxy = proxies[p] + if table_include(groups, proxy) then + group_now = get_group_now(info, proxy) + now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.." ➟ "..group_now.."】" + else + now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.." ➟ "..proxy.."】" end - for p = 1, #(proxies) do - proxy = proxies[p] - if table_include(groups, proxy) then - group_now = get_group_now(info, proxy) - now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.." ➟ "..group_now.."】" - else - now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.." ➟ "..proxy.."】" - end - --skip tested proxy - while true do - if table_include(tested_proxy, proxy) then - break - else - table.insert(tested_proxy, proxy) - end - while true do - if proxy == "REJECT" or proxy == "DIRECT" then - break - else - luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, proxy, ip, port, urlencode(group_name))) - region = proxy_unlock_test() - if status == 2 then - if region then - print(now..full_support.."【"..region.."】") - print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..proxy.."】"..area_i18.."【"..region.."】") - else - print(now..full_support_no_area) - print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..proxy.."】") - end - elseif status == 1 then - table.insert(original, {value.all[i], group_name, proxy}) - if type == "Netflix" then - print(now..only_original) - else - print(now..no_unlock) - end - else - print(now..test_faild) - end - end - break - end - if status == 2 then - break - elseif p == #(proxies) and #(proxies) ~= 1 then - luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, now_name, ip, port, urlencode(group_name))) - end - break - end - if status == 2 then break end - end - else - --only group expand - luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, value.all[i], ip, port, urlencode(group_name))) + --skip tested proxy while true do - if table_include(tested_proxy, now_name) then + if table_include(tested_proxy, proxy) then break else - table.insert(tested_proxy, now_name) + table.insert(tested_proxy, proxy) end - region = proxy_unlock_test() - if table_include(groups, now_name) then - now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.."】" + while true do + if proxy == "REJECT" or proxy == "DIRECT" then + break else - now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.." ➟ "..now_name.."】" - end - if status == 2 then - if region then - print(now..full_support.."【"..region.."】") - print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..get_group_now(info, now_name).."】"..area_i18.."【"..region.."】") + luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, proxy, ip, port, urlencode(group_name))) + region = proxy_unlock_test() + if status == 2 then + if region and region ~= "" then + print(now..full_support.."【"..region.."】") + print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..proxy.."】"..area_i18.."【"..region.."】") + else + print(now..full_support_no_area) + print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..proxy.."】") + end + elseif status == 3 then + table.insert(other_region_unlock, {value.all[i], group_name, proxy}) + print(now..other_region_unlock_test) + elseif status == 1 then + table.insert(original, {value.all[i], group_name, proxy}) + if type == "Netflix" then + print(now..only_original) + else + print(now..no_unlock) + end else - print(now..full_support_no_area) - print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..get_group_now(info, now_name).."】") + print(now..test_faild) end - elseif status == 1 then - table.insert(original, {value.all[i], group_name, value.all[i]}) - if type == "Netflix" then - print(now..original_no_select) - else - print(now..no_unlock_no_select) - end - else - print(now..faild_no_select) end + break + end + if status == 2 then + break + elseif p == #(proxies) and #(proxies) ~= 1 then + luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, now_name, ip, port, urlencode(group_name))) + end break end + if status == 2 then break end + end + else + --only group expand + luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, value.all[i], ip, port, urlencode(group_name))) + while true do + if table_include(tested_proxy, now_name) then + break + else + table.insert(tested_proxy, now_name) + end + region = proxy_unlock_test() + if table_include(groups, now_name) then + now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.."】" + else + now = os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..group_show.." ➟ "..now_name.."】" + end + if status == 2 then + if region and region ~= "" then + print(now..full_support.."【"..region.."】") + print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..get_group_now(info, now_name).."】"..area_i18.."【"..region.."】") + else + print(now..full_support_no_area) + print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..get_group_now(info, now_name).."】") + end + elseif status == 3 then + table.insert(other_region_unlock, {value.all[i], group_name, value.all[i]}) + print(now..full_support.."【"..region.."】"..other_region_unlock_no_select) + elseif status == 1 then + table.insert(original, {value.all[i], group_name, value.all[i]}) + if type == "Netflix" then + print(now..original_no_select) + else + print(now..no_unlock_no_select) + end + else + print(now..faild_no_select) + end + break end end - break - end - if status == 2 then - break - elseif i == #(value.all) and #original > 0 then - for k, v in pairs(original) do - luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, v[1], ip, port, urlencode(value.name))) - luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, v[3], ip, port, urlencode(v[2]))) - print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_faild.."【"..v[3].."】") - break - end - elseif i == #(value.all) then - luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, proxy_default, ip, port, urlencode(value.name))) - print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_faild.."【"..proxy_default.."】") - end - end - else - region = proxy_unlock_test() - if status == 2 then - if region then - print(now..full_support.."【"..region.."】") - print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..get_group_now(info, value.name).."】"..area_i18.."【"..region.."】") - else - print(now..full_support_no_area) - print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..get_group_now(info, value.name).."】") end break - elseif status == 1 then - if type == "Netflix" then - print(now..original_no_select) + end + if status == 2 then + break + elseif i == #(value.all) and (#original > 0 or #other_region_unlock > 0) then + if #other_region_unlock > 0 then + fallback_select = other_region_unlock else - print(now..no_unlock_no_select) + fallback_select = original end - else - print(now..faild_no_select) + for k, v in pairs(fallback_select) do + luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, v[1], ip, port, urlencode(value.name))) + luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, v[3], ip, port, urlencode(v[2]))) + if #other_region_unlock > 0 then + print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_faild_other_region.."【"..v[3].."】") + else + print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_faild.."【"..v[3].."】") + end + break + end + elseif i == #(value.all) then + luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -w %%{http_code} -o /dev/null -H 'Authorization: Bearer %s' -H 'Content-Type:application/json' -X PUT -d '{\"name\":\"%s\"}' http://%s:%s/proxies/%s", passwd, proxy_default, ip, port, urlencode(value.name))) + print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_faild.."【"..proxy_default.."】") end end + else + region = proxy_unlock_test() + if status == 2 then + if region and region ~= "" then + print(now..full_support.."【"..region.."】") + print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..get_group_now(info, value.name).."】"..area_i18.."【"..region.."】") + else + print(now..full_support_no_area) + print(os.date("%Y-%m-%d %H:%M:%S").." "..type.." "..gorup_i18.."【"..value.name.."】"..select_success.."【"..get_group_now(info, value.name).."】") + end + break + elseif status == 3 then + print(now..full_support.."【"..region.."】"..other_region_unlock_no_select) + elseif status == 1 then + if type == "Netflix" then + print(now..original_no_select) + else + print(now..no_unlock_no_select) + end + else + print(now..faild_no_select) + end end - break end - if group_match then break end + break end if auto_get_group and group_match then break end if status == 2 then break end @@ -511,6 +531,11 @@ function urlencode(data) return luci.sys.exec(string.format("echo %s |sed 's/+/%%20/g'", string.match(data, "/%?(.+)"))) end +function datamatch(data, regex) + local result = luci.sys.exec(string.format('ruby -E UTF-8 -e "x=\'%s\'; if x =~ /%s/i then print \'true\' else print \'false\' end"', data, regex)) + if result == "true" then return true else return false end +end + function netflix_unlock_test() status = 0 local url = "https://www.netflix.com/title/"..filmId @@ -518,6 +543,7 @@ function netflix_unlock_test() local info = luci.sys.exec(string.format('curl -sLI -m 3 --retry 2 -o /dev/null -w %%{json} -H "Content-Type: application/json" -H "%s" -XGET %s', headers, url)) local result = {} local region + local regex = uci:get("openclash", "config", "stream_auto_select_region_key_netflix") or "" if info then info = json.parse(info) end @@ -527,8 +553,11 @@ function netflix_unlock_test() string.gsub(info.url_effective, '[^/]+', function(w) table.insert(result, w) end) region = string.upper(string.match(result[3], "^%a+")) if region == "TITLE" then region = "US" end + if not datamatch(region, regex) then + status = 3 + end return region - elseif info.http_code == 404 then + elseif info.http_code == 404 or info.http_code == 403 then status = 1 end end @@ -543,12 +572,16 @@ function disney_unlock_test() local auth = '"grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Atoken-exchange&latitude=0&longitude=0&platform=browser&subject_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJiNDAzMjU0NS0yYmE2LTRiZGMtOGFlOS04ZWI3YTY2NzBjMTIiLCJhdWQiOiJ1cm46YmFtdGVjaDpzZXJ2aWNlOnRva2VuIiwibmJmIjoxNjIyNjM3OTE2LCJpc3MiOiJ1cm46YmFtdGVjaDpzZXJ2aWNlOmRldmljZSIsImV4cCI6MjQ4NjYzNzkxNiwiaWF0IjoxNjIyNjM3OTE2LCJqdGkiOiI0ZDUzMTIxMS0zMDJmLTQyNDctOWQ0ZC1lNDQ3MTFmMzNlZjkifQ.g-QUcXNzMJ8DwC9JqZbbkYUSKkB1p4JGW77OON5IwNUcTGTNRLyVIiR8mO6HFyShovsR38HRQGVa51b15iAmXg&subject_token_type=urn%3Abamtech%3Aparams%3Aoauth%3Atoken-type%3Adevice"' local httpcode = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{http_code} %s -H 'User-Agent: %s' -d %s -XPOST %s", headers, UA, auth, url)) local region + local regex = uci:get("openclash", "config", "stream_auto_select_region_key_disney") or "" if tonumber(httpcode) == 200 then status = 1 local url_effective = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{url_effective} -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url2)) if url_effective == "https://disneyplus.disney.co.jp/" then status = 2 region = "JP" + if not datamatch(region, regex) then + status = 3 + end return region elseif string.find(url_effective,"hotstar") then return @@ -556,6 +589,9 @@ function disney_unlock_test() local region = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -H 'Content-Type: application/json' -H 'User-Agent: %s' %s |grep 'Region: ' |awk '{print $2}' |tr -d '\n'", UA, url2)) if region and region ~= "" then status = 2 + if not datamatch(region, regex) then + status = 3 + end return region end end @@ -585,7 +621,8 @@ function hbo_max_unlock_test() local url = "https://www.hbomax.com/" local data = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{json} -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url)) local result = {} - local region + local region = "" + local regex = uci:get("openclash", "config", "stream_auto_select_region_key_hbo_max") or "" if data then data = json.parse(data) end @@ -597,10 +634,11 @@ function hbo_max_unlock_test() string.gsub(data.url_effective, '[^/]+', function(w) table.insert(result, w) end) if result[3] then region = string.upper(string.match(result[3], "^%a+")) - if region then - return region - end end + if not datamatch(region, regex) then + status = 3 + end + return region end end end @@ -611,6 +649,8 @@ function hbo_go_asia_unlock_test() status = 0 local url = "https://api2.hbogoasia.com/v1/geog?lang=undefined&version=0&bundleId=www.hbogoasia.com" local httpcode = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{http_code} -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url)) + local regex = uci:get("openclash", "config", "stream_auto_select_region_key_hbo_go_asia") or "" + local region = "" if tonumber(httpcode) == 200 then status = 1 local data = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url)) @@ -621,8 +661,12 @@ function hbo_go_asia_unlock_test() if data.territory then status = 2 if data.country then - return string.upper(data.country) + region = string.upper(data.country) end + if not datamatch(region, regex) then + status = 3 + end + return region end end end @@ -633,7 +677,8 @@ function ytb_unlock_test() status = 0 local url = "https://m.youtube.com/premium" local httpcode = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{http_code} -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url)) - local region + local region = "" + local regex = uci:get("openclash", "config", "stream_auto_select_region_key_ytb") or "" if tonumber(httpcode) == 200 then status = 1 local data = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url)) @@ -643,22 +688,25 @@ function ytb_unlock_test() region = string.sub(string.match(data, "\"GL\":\"%a+\""), 7, -2) if region then status = 2 - return region else if not string.find(data,"www%.google%.cn") then status = 2 - return "US" + region = "US" end end + if not datamatch(region, regex) then + status = 3 + end end - return + return region end function tvb_anywhere_unlock_test() status = 0 local url = "https://uapisfm.tvbanywhere.com.sg/geoip/check/platform/android" local httpcode = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{http_code} -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url)) - local region + local region = "" + local regex = uci:get("openclash", "config", "stream_auto_select_region_key_tvb_anywhere") or "" if tonumber(httpcode) == 200 then status = 1 local data = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url)) @@ -667,13 +715,15 @@ function tvb_anywhere_unlock_test() end if data and data.allow_in_this_country then status = 2 - region = string.upper(data.country) - if region then - return region + if data.country then + region = string.upper(data.country) + end + if not datamatch(region, regex) then + status = 3 end end end - return + return region end function prime_video_unlock_test() @@ -681,6 +731,7 @@ function prime_video_unlock_test() local url = "https://www.primevideo.com" local httpcode = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -o /dev/null -w %%{http_code} -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url)) local region + local regex = uci:get("openclash", "config", "stream_auto_select_region_key_prime_video") or "" if tonumber(httpcode) == 200 then status = 1 local data = luci.sys.exec(string.format("curl -sL -m 3 --retry 2 -H 'Accept-Language: en' -H 'Content-Type: application/json' -H 'User-Agent: %s' %s", UA, url)) @@ -688,6 +739,9 @@ function prime_video_unlock_test() region = string.sub(string.match(data, "\"currentTerritory\":\"%a+\""), 21, -2) if region then status = 2 + if not datamatch(region, regex) then + status = 3 + end return region end end diff --git a/luci-app-openclash/root/usr/share/openclash/openclash_version.sh b/luci-app-openclash/root/usr/share/openclash/openclash_version.sh index 8f2e13507..941c41f65 100644 --- a/luci-app-openclash/root/usr/share/openclash/openclash_version.sh +++ b/luci-app-openclash/root/usr/share/openclash/openclash_version.sh @@ -7,10 +7,10 @@ OP_LV=$(sed -n 1p $LAST_OPVER 2>/dev/null |awk -F '-' '{print $1}' |awk -F 'v' ' if [ "$CKTIME" != "$(grep "CheckTime" $LAST_OPVER 2>/dev/null |awk -F ':' '{print $2}')" ]; then if pidof clash >/dev/null; then - curl -sL --connect-timeout 10 --retry 2 https://raw.githubusercontent.com/vernesong/OpenClash/"$RELEASE_BRANCH"/version -o $LAST_OPVER >/dev/null 2>&1 + curl -sL --connect-timeout 5 --retry 2 https://raw.githubusercontent.com/vernesong/OpenClash/"$RELEASE_BRANCH"/version -o $LAST_OPVER >/dev/null 2>&1 fi if [ "$?" -ne "0" ] || ! pidof clash >/dev/null; then - curl -sL --connect-timeout 10 --retry 2 https://cdn.jsdelivr.net/gh/vernesong/OpenClash@"$RELEASE_BRANCH"/version -o $LAST_OPVER >/dev/null 2>&1 + curl -sL --connect-timeout 5 --retry 2 https://cdn.jsdelivr.net/gh/vernesong/OpenClash@"$RELEASE_BRANCH"/version -o $LAST_OPVER >/dev/null 2>&1 fi if [ "$?" -eq "0" ] && [ -s "$LAST_OPVER" ]; then OP_LV=$(sed -n 1p $LAST_OPVER 2>/dev/null |awk -F '-' '{print $1}' |awk -F 'v' '{print $2}' |awk -F '.' '{print $2$3}' 2>/dev/null) diff --git a/luci-app-openclash/root/usr/share/openclash/res/Netflix_Domains.list b/luci-app-openclash/root/usr/share/openclash/res/Netflix_Domains.list index 9db7c893e..bbcb6b97b 100644 --- a/luci-app-openclash/root/usr/share/openclash/res/Netflix_Domains.list +++ b/luci-app-openclash/root/usr/share/openclash/res/Netflix_Domains.list @@ -552,4 +552,23 @@ ipv4-c001-cgk001-moratel-isp.1.oca.nflxvideo.net ipv4-c221-sjc002-ix.1.oca.nflxvideo.net ipv4-c204-sjc002-dev-ix.1.oca.nflxvideo.net ipv4-c070-lax009-ix.1.oca.nflxvideo.net -ipv4-c024-lax009-ix.1.oca.nflxvideo.net \ No newline at end of file +ipv4-c024-lax009-ix.1.oca.nflxvideo.net +ipv4-c044-lhr005-ix.1.oca.nflxvideo.net +ipv4-c133-lhr004-ix.1.oca.nflxvideo.net +ipv4-c144-sea001-ix.1.oca.nflxvideo.net +ipv4-c046-nyc005-ix.1.oca.nflxvideo.net +ipv4-c007-pdx001-ix.1.oca.nflxvideo.net +ipv4-c111-lhr004-ix.1.oca.nflxvideo.net +ipv4-c059-lhr005-ix.1.oca.nflxvideo.net +ipv4-c162-sea001-ix.1.oca.nflxvideo.net +ipv4-c031-nyc005-ix.1.oca.nflxvideo.net +ipv4-c022-pdx001-ix.1.oca.nflxvideo.net +ipv6-c212-sea001-ix.1.oca.nflxvideo.net +ipv6-c147-sea001-ix.1.oca.nflxvideo.net +ipv6-c181-sea001-ix.1.oca.nflxvideo.net +ipv6-c204-sea001-ix.1.oca.nflxvideo.net +ipv4-c132-lhr004-ix.1.oca.nflxvideo.net +ipv4-c067-lhr005-ix.1.oca.nflxvideo.net +ipv4-c197-sea001-ix.1.oca.nflxvideo.net +ipv4-c044-pdx001-ix.1.oca.nflxvideo.net +ipv4-c060-nyc005-ix.1.oca.nflxvideo.net diff --git a/luci-app-openclash/root/usr/share/openclash/res/lhie1.yaml b/luci-app-openclash/root/usr/share/openclash/res/lhie1.yaml index 7f1d4be33..6c1cae887 100644 --- a/luci-app-openclash/root/usr/share/openclash/res/lhie1.yaml +++ b/luci-app-openclash/root/usr/share/openclash/res/lhie1.yaml @@ -145,318 +145,318 @@ rule-providers: Reject: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Reject.yaml + url: https://raw.dler.io/main/Clash/Provider/Reject.yaml path: "./Rules/Reject" interval: 86400 Special: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Special.yaml + url: https://raw.dler.io/main/Clash/Provider/Special.yaml path: "./Rules/Special" interval: 86400 Netflix: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Netflix.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Netflix.yaml path: "./Rules/Media/Netflix" interval: 86400 Spotify: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Spotify.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Spotify.yaml path: "./Rules/Media/Spotify" interval: 86400 YouTube: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/YouTube.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/YouTube.yaml path: "./Rules/Media/YouTube" interval: 86400 Bilibili: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Bilibili.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Bilibili.yaml path: "./Rules/Media/Bilibili" interval: 86400 IQ: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/IQ.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/IQ.yaml path: "./Rules/Media/IQI" interval: 86400 IQIYI: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/IQIYI.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/IQIYI.yaml path: "./Rules/Media/IQYI" interval: 86400 Letv: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Letv.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Letv.yaml path: "./Rules/Media/Letv" interval: 86400 Netease Music: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Netease%20Music.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Netease%20Music.yaml path: "./Rules/Media/Netease_Music" interval: 86400 Tencent Video: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Tencent%20Video.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Tencent%20Video.yaml path: "./Rules/Media/Tencent_Video" interval: 86400 Youku: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Youku.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Youku.yaml path: "./Rules/Media/Youku" interval: 86400 WeTV: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/WeTV.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/WeTV.yaml path: "./Rules/Media/WeTV" interval: 86400 ABC: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/ABC.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/ABC.yaml path: "./Rules/Media/ABC" interval: 86400 Abema TV: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Abema%20TV.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Abema%20TV.yaml path: "./Rules/Media/Abema_TV" interval: 86400 Amazon: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Amazon.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Amazon.yaml path: "./Rules/Media/Amazon" interval: 86400 Apple News: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Apple%20News.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Apple%20News.yaml path: "./Rules/Media/Apple_News" interval: 86400 Apple TV: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Apple%20TV.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Apple%20TV.yaml path: "./Rules/Media/Apple_TV" interval: 86400 Bahamut: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Bahamut.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Bahamut.yaml path: "./Rules/Media/Bahamut" interval: 86400 BBC iPlayer: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/BBC%20iPlayer.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/BBC%20iPlayer.yaml path: "./Rules/Media/BBC_iPlayer" interval: 86400 DAZN: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/DAZN.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/DAZN.yaml path: "./Rules/Media/DAZN" interval: 86400 Discovery Plus: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Discovery%20Plus.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Discovery%20Plus.yaml path: "./Rules/Media/Discovery_Plus" interval: 86400 Disney Plus: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Disney%20Plus.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Disney%20Plus.yaml path: "./Rules/Media/Disney_Plus" interval: 86400 encoreTVB: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/encoreTVB.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/encoreTVB.yaml path: "./Rules/Media/encoreTVB" interval: 86400 Fox Now: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Fox%20Now.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Fox%20Now.yaml path: "./Rules/Media/Fox_Now" interval: 86400 Fox+: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Fox%2B.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Fox%2B.yaml path: "./Rules/Media/Fox+" interval: 86400 HBO Go: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/HBO%20Go.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/HBO%20Go.yaml path: "./Rules/Media/HBO_Go" interval: 86400 HBO Max: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/HBO%20Max.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/HBO%20Max.yaml path: "./Rules/Media/HBO_Max" interval: 86400 Hulu Japan: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Hulu%20Japan.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Hulu%20Japan.yaml path: "./Rules/Media/Hulu_Japan" interval: 86400 Hulu: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Hulu.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Hulu.yaml path: "./Rules/Media/Hulu" interval: 86400 Japonx: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Japonx.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Japonx.yaml path: "./Rules/Media/Japonx" interval: 86400 JOOX: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/JOOX.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/JOOX.yaml path: "./Rules/Media/JOOX" interval: 86400 KKBOX: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/KKBOX.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/KKBOX.yaml path: "./Rules/Media/KKBOX" interval: 86400 KKTV: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/KKTV.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/KKTV.yaml path: "./Rules/Media/KKTV" interval: 86400 Line TV: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Line%20TV.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Line%20TV.yaml path: "./Rules/Media/Line_TV" interval: 86400 myTV SUPER: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/myTV%20SUPER.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/myTV%20SUPER.yaml path: "./Rules/Media/myTV_SUPER" interval: 86400 Pandora: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Pandora.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Pandora.yaml path: "./Rules/Media/Pandora" interval: 86400 PBS: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/PBS.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/PBS.yaml path: "./Rules/Media/PBS" interval: 86400 Pornhub: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Pornhub.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Pornhub.yaml path: "./Rules/Media/Pornhub" interval: 86400 Soundcloud: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/Soundcloud.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/Soundcloud.yaml path: "./Rules/Media/Soundcloud" interval: 86400 ViuTV: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/ViuTV.yaml + url: https://raw.dler.io/main/Clash/Provider/Media/ViuTV.yaml path: "./Rules/Media/ViuTV" interval: 86400 Telegram: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Telegram.yaml + url: https://raw.dler.io/main/Clash/Provider/Telegram.yaml path: "./Rules/Telegram" interval: 86400 Steam: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Steam.yaml + url: https://raw.dler.io/main/Clash/Provider/Steam.yaml path: "./Rules/Steam" interval: 86400 Speedtest: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Speedtest.yaml + url: https://raw.dler.io/main/Clash/Provider/Speedtest.yaml path: "./Rules/Speedtest" interval: 86400 PayPal: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/PayPal.yaml + url: https://raw.dler.io/main/Clash/Provider/PayPal.yaml path: "./Rules/PayPal" interval: 86400 Microsoft: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Microsoft.yaml + url: https://raw.dler.io/main/Clash/Provider/Microsoft.yaml path: "./Rules/Microsoft" interval: 86400 PROXY: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Proxy.yaml + url: https://raw.dler.io/main/Clash/Provider/Proxy.yaml path: "./Rules/Proxy" interval: 86400 Domestic: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Domestic.yaml + url: https://raw.dler.io/main/Clash/Provider/Domestic.yaml path: "./Rules/Domestic" interval: 86400 Apple: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Apple.yaml + url: https://raw.dler.io/main/Clash/Provider/Apple.yaml path: "./Rules/Apple" interval: 86400 Google FCM: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Google%20FCM.yaml + url: https://raw.dler.io/main/Clash/Provider/Google%20FCM.yaml path: "./Rules/Google FCM" interval: 86400 Scholar: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Scholar.yaml + url: https://raw.dler.io/main/Clash/Provider/Scholar.yaml path: "./Rules/Scholar" interval: 86400 Domestic IPs: type: http behavior: ipcidr - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Domestic%20IPs.yaml + url: https://raw.dler.io/main/Clash/Provider/Domestic%20IPs.yaml path: "./Rules/Domestic_IPs" interval: 86400 LAN: type: http behavior: classical - url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/LAN.yaml + url: https://raw.dler.io/main/Clash/Provider/LAN.yaml path: "./Rules/LAN" interval: 86400 diff --git a/luci-app-openclash/root/usr/share/openclash/res/openclash_version b/luci-app-openclash/root/usr/share/openclash/res/openclash_version index 44f4d1c7f..2b746af06 100644 --- a/luci-app-openclash/root/usr/share/openclash/res/openclash_version +++ b/luci-app-openclash/root/usr/share/openclash/res/openclash_version @@ -1,2 +1,2 @@ -v0.44.09-beta -data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYQAAAAqCAMAAAHzBexdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjIyOUZBNkY1NzE3NzExRUNCMUY3REU3QjY4NDJGNjAxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjIyOUZBNkY2NzE3NzExRUNCMUY3REU3QjY4NDJGNjAxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MjI5RkE2RjM3MTc3MTFFQ0IxRjdERTdCNjg0MkY2MDEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MjI5RkE2RjQ3MTc3MTFFQ0IxRjdERTdCNjg0MkY2MDEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4nPuPyAAADAFBMVEUIaqJVi6sqjcZXpNE1dZoGbakjhLyhoaHC3u46lsrR5vLg7/cJeLgbhcG6urqhwdN1tdkGVYJjlbFISEilpaWKioqStcrv9PcGcKwccaLR0dGxytmGvt89PT2enp6CgoIHXpEkeakxk8wHZp3e3t5knby1tbUVapo/Pz/R4elubm4IXY1Fkb3a2trn5+fOzs4kapKRkZEHVoRFRUVLS0t0qcdycnKCrsZFgKEFWYlXlbiy0eJ3d3eFhYXB1OAEU4AIca2cnJyUxuJiYmKizOUKdbKixdm/v7+srKx4eHjg4ODw9PeDsctDQ0MJYZRBQUGUlJSy1upFmsrCwsI2kcZqamo0fabIyMhmrdUXgLwXYo3FxcVAQEDAwMCkzucFaaLR3+gFZZu2trYEYJQGXY/KysoJZJggdabB2edlZWVHnMxgYGCCqsAYbZ4FcrCNjY0EXI6TxOBKn88Kb6gGa6Wvr68nicFGg6UEYph0dHSJweJzn7miwNGTvtZ0sdUmbpgLcas1h7UBcrNZWVlTU1NRUVFUVFRVVVUFdrdSUlILfL0Ke7wHeLkGd7hWVlYDdbUEdrYDdLUOgMAOf8AEdbYDdLQSg8MSg8QShMQThMUAcrJXV1cOf78Nfr8Nfr4Mfb4Mfb0JersJe7sJeroIebo6OjqqqqrV1dXU1NSrq6upqak7OzuAgIB+fn7w9/v19fWBgYGEvd3B3u7q6uqEvN309PTz8/NMTEyFvt4JWIWDvNx/f3+CqcDB3e3g6u/A1N9Hm8xkq9NJns7o6OhGm8sHdbKFvd6Xl5fB3e6Fvd3W1taDr8jg6vCEtNAFdLSDq8LB2+pHi7EIbaVEmcqDu9xInc1Inc4UXokJaaALdK8IV4REf6Jlp83C3OvB1eAId7Zor9fB1+OEq8JHmsnP5PEmcZwwk8tWncYIWYcFZ5/R4+4Lerkmfq+Audk3k8cCc7QRgsMPgMEQgcJaWlpfX19NTU1eXl5cXFxbW1tPT09QUFBYWFhdXV1OTk7////////Y3ckbAAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AU/cHJQAAEG1JREFUeNpi+P8FF5iJFVQxfMcJPmIHDL9//zP+DQfsy4GEPERgwYIFDQsW3Fvwb8G/fwq8C3Ys4F2w4NCCBQxtbf/a/gHRstVAss1XeHVbW/YyNSCzbQn3kiVLatdl/Fvy758gq+CWf4JLlgARQytOMAE7YPj/FRdowgpmAQQQgxlpQTWTgYyQ8g2FhJI8IsDkfzuDAkp6HTB0/i1YcHOBNjiQdiwABxQErIZQy1avMAGG0m5gOC25t+Xfkk2bNgGDa4kgMIT+AcPqH55wwhVMJIZSE0AAMZj9IRl8IAkwfAYB+fzPWEAmMscTwZwDBpNkwBQnEBeBGEAuJyeUgQwY+oBAH4j/AeFX2X+yzrKyff98//n6QsRA3MOy/4RlV/ZtE/63Bsjr6+vuTuvm6H7c/a+7uzuKo5vLFcS42/3Pobv7JJBlrvDPSduo+7SC4A2QBEMLECz9969Z7d8/IAuIgTQEwrkrWvT+rVrVovZv6VqQYEtvb690b2/CP4XeK729e4G8f0Ao9O9677/9vSDeP8v4f0Chf+JAsreX4SfpYCpJACCAGHCXHbiA4kxSwH8G0pOSIolp6TvJQPEjSQCSWj2wJdbP8mCEkVrTIanwAYRimjOHF0QXARlVWBLrHAZQIeFsIotcYvz+rfX7H5DU+/07CVqWaP02BhYkEMn0BSAgcKkcRP0DliSMIEbaiwX/bgJLGHDRAixidoDLGVAxA0zfK/sg4J9snwYw6f/rA2eJvr6WPpu+f6BMIKxl3LcywF+4T9f3X1+fZDcwJwiBkjqIcXLh+axuSEb4180FYhkZdNfc+HdaoTvtBUgJvCBrAxX9QKC7ejWcDawDgFxgobZav21ZOFBgBUhccskSxiNL7oHKN2A5xx2yiQtY1ukAOayC/3oEFbYAWYyCgluWRIJKP2ANAcpCev+2tfw7DMlknuCcB8xeQMIwG8RdC852q36C8x5QOBecxyRAmQrIAma6y5B81rv3nyVI4J94r/Q/8Zf/WP/VgiTw1EG4QO4EkgAZeVqdxDzt/JVUoN5ECvgPEIDX8gmJIorj+EgJo9bB1qCtdUNY6BQSW0RWTJQVbUhQUgj90VjwJNmpTl0cGmd4VHTpMBC8w+y6lbMuQomH2G4ia2AgVAchggIvQpCY0Nd+789sRkEg7H7g/X7vfX7fN3ubWWN9pQ50PKkdXzbxWtoEHd9qiLFaDwYf1xBjRHMO+5Od2DvyH6DaA9lP4e/A7Ow/bg0+3QAOdWF7dGhCQkloER6dP0+qeWm+EmqVSGy8/ueJMHzFBFzR7vugSgt5wMcklUyxrXiNBDqR8fPI52V+ROZiejqRAQq30HYFfqHg+8VUG475E0W6clOm4x5xfYoKvOYuz/sAT4GPprDh1s/abOmXoQVxXJxSbirEIhZIL82hyWtpMU0PZ+bCk/oZhqPIpfQGasHW+xwEv72OOZfOOpMHoumL3WSOYzJH+ZyTTzqOTXLMifJxLkAfxzuOsthKYTZs42aJl/vf87IyvGSqaQM9tvKVUzV5qcT5aXD5U5AnXpJbhfwyEC5SVHeOi1f/CuzqXzE7BhWI/qnZEUi+rE7Hx6gk7R8X6AvyzF4lOQ4l1TzOBI1AlrHLIWO39zA284YNZLPZT4ezJ6jdEaMZxnaBsT7IeHeFKaan6fCa7RC6l93rZuwibXuhx4Yb0R4EwfM1tycI2gPXDYSS5SB5LWj1BIHOx4Lv1emrq/oBaTedliFKSanSQ6OSrCXqEcsS3RqQbli1Rqlo3aDpW9KWNTyqGSDVKq/LTvVRq2XdtfTYWKsHQw9riLH+sw7sW64hvwTgzdxCo7qiMDyJaWMiCRknaFDPZCg1qNFgLi1olVGCztCQJtZL4gWNGINICW1TKFJRKePIXHJaBRFJKXmYZJJmmMSkTh5E8fogqKAiXsDxwRcfSmkqXpKQNV1r7bPPnKnWC/Scn8lea6+192EOefm/NbbU+5v699dJ0/RRKmX71AqDYaK/OJGyxmD8ZaIs8kh/m+qRXlihMTNljc07ZqrNS+Oy17vo6buqlCdBi0pfC92vKgOos+d9a9iJfCxdmsdgfqyoSK/AL2+U7lRHoN8J8Daj6vWK6PmcbWvlf1rZTGU4zbqbn8X1XVw41O3SqBbA8k+Awvz5up2FDGMKv/7bqWqTBW9CcdQo6uRrtKI0PXzwekXuoBnEJEyluzSIoJSnFaW1XKiVvW6D4Mn9NpCb/JmcNrfISjzn0K1kUTdkdXR8L2vQnZ3HycVs3nGapz9Qmm3oEl47OoTGOyrcc/9ugKFaKCwk8z0yuATDyIhmttFMd+VWdMkuW/M5xTBED1oBxR8PYnHwUoV47KQw1uSqszm0TBM+efvcDtrmQbnuvtcEg8vzg3DI6MhhD2DeDNcXxoPTAb32nRnX18pu0CZnMD4RozFVjUXV2CVFcfRvVZQJ8FdXV5apUKM0rO9Xc3N5YKmqK0/jnUlVdp/x6MahTKhA8xxHQ6IRw4IFiRif5pnNtWmhEDziaebDq1xprvuCtgVQFRJjnRDHxxC6tk7LuVblqoI/MdwrrytwgcsVWlV+ry25V2vbDJhAisaOHIlFBQD0FlODFGV+KO4lGhAaJXYIGLuY796nM4UzymFOjE+zrz+IXn+WQIXppwRAPOAt2CVAiIjssKwOQQEwIyqgWvKU4IXz4mScU40X5JyqUcS+M37/mT76+P29vdQYQDXw7Ar3XGIlGj3rM7r+gYGV4KSUdmVNHOhx9EMH6QpEYGckApjCYq4kh4eHYVgLF7hE3d+TkUiV3Z51LtJh52k/1vIPRAA39lXi/g92e/JyRMimE8xzXE77Cj0+n6dP4ArSi89X0YTLPkYX3Ds98nwtQH1GF1XzWxNjEY3PXnKxjwfWAcEmX62bjStsxr+S8AbkG0SdVkQdXF3Q+l34GyzNRbyBTXR6M2zRmIbYBnaEYUN690c4PONLiTzaNxrfSP8mp68e10bjKygJrKyWr+AA0L7uFCeGro8eUE9pDyZl44ZXoJk7aicsxfUudmd2dt4GUTSEs7i4sNtSQuNBWHqjU+uJG3QRT+zHJQezhbe1tk5toz0MXQFcHdsEcRGABQIDVGH6qhZt7YJI0t2Age56eupFtm2Uz2p85W7H5QZS1w4N0zRS08LXTG5u9zIR2iW1ucWNo27GvV24lNCpDyS1HbZCP5spa8DzJ1PBc9wKHTdTNivQecpMdE694Rfl/1E/mqcPU/8I0L21xzR1xWGQN4ijFFxRuGpAbPCBoVVcBsNQIAKiAqJC5gN8oxJMGJpoYtywKq1Nli3LMmJMyqOPDBAq4BAlONRFt+hcYtw0GE22aFzMHuoSHR8759zb+wBmTIxNyvfHub/H9/vOpaeHhPM7kD//Fz+dGJj1pVfit5ERn4+eTxTM+sJL4aEjGM80kv7wVnjmBMYjeKvdvL+8v1XomX7kn94Kn78nDLZ/5q3wGXPmZqho57uKeVcMn7whZixTtrDbcUW0i7H1dSSu4uprTrb95P8hk/08YSHjpPyAWJkbCowihISx4kzeCw9mXvCkUaxYhYoSF2Mvnnw1fEYdOxry0J0UR6Hnume8fEMswzKFnwQkCeYVdB9/HQldnO41J9t+anxMAvy/IRjChjGpNuQjVnQziQclYwOm09p9wCTmDVGvbNNoqViZymi8Ksdj9CK0g9MeYZZFTw0bTjPvNGzCeIUes750wGFwuMCyDrp12h2MBxiYazMwh4eofoSDS1oOi7JWEn85I4+Wta8nIg7wwmk2dmCYJjCT1lO3Qv7qMaeEw9Vw8okJZ7XIrK8vxINs6qwAQuoVCMbBX+5DuB5Rfwv5/vsABSME2EafPz9AIWVgBfUezwVuKXhncdaPbpkw4ZA4hO2Y4BB2EsyDBPlN1Xa2fhTcB9oCgrBArwiQRRBul9jYiK6gnji1ocEBfBv9YdzRfxoSMV9NNo66m55xN9Aw8QzMi+PA0U0lyennI5EZeWh50aCslcRdfJm6hcxNFoHyXaigoQq4+NeYtph46WiXvWqMcDpserwEYfxpM4biTSZgXj1zh3DZJEMENpVtMwULwfAwRD7MrgTkFNNlDPHGPJp4QlbXNJ4U4bUtL0tJIVuEzkw2WGQKwXUUmkxkvE4dk6n2Dn2m+APhimKT+0hegAPTlAEb+EP1r2FjY3Kc2mgx1hEip+2xWOqM0Zi/0khSxiTGAGjYQr7yDibnUMpZngHR5EE/fYtFWSuJL0BCGg2rX7glElGso+W6YiQyZgFJWXqShbdjiLG6sfQAsshjEvJnkgdQyYeD0SFSrE/a8v3nThaDWTiYctNqJYtglaMDwbzBEtm+5Nu9rrKyg3ylSdWTYIZMxku9TcQmz/0e66zWUPjepEW3h+jUHe5ps5daKzs6Cnfku1/IDXdTQUAusEsRIIvAnmQRxJFdWkKL23C1MERx0ayzIM+LLBF1uejaRXTwbEytJK5NKmYbd6soYUMUn4qiJJHpfjv+plOjCJ/piGhsDMMh6lzAIB/txF2J0gkZGgfl3hmJdRedvDGIC2QMUJX5pv6waNZD4PfGxtI7SyjWkMQZd9EOagBZZxiu7Q60Srm9QM7sH3+ded/9QuLrGhUYJvv9qdt5WmI02hHN7HOwiyP7nwUIDRKybP+qeej5W7+yvMiS0FOBrcYupB8fUyuJG4cLaLulggZ4iSAk8JkEBB2VmHack5RjmiRsJp98FiIvUfsaslhsNVAjMbaoeAxht0rVpBG8JYBKFS+xaoBaZhTiGnveC4iP97kUit1E+p6GoYqEe9HL0rXA4aamIeTEC7gk5chCq/bf1Fxq6sRgkwJiY0dAQTr5zZwY3drqTGD3m1sBZ2trYhdA+yStbKRwwskbz8gnuZYQF3MuJ2uNyPMl6Gqte75KOcMCdCFRP7ZWEodrVQkp66IvwAupnegiMiTkVMuYdrRKwnuazBIOkW/01Bpmxk9H6GpzaQRwh7pFQK+MeF7hkaQ7zBvkF3hEqXl1KD6IZ9fqBoqKesPwrn+8WYFetO31+2ngOzLHUrN5yya0DdSaS/2yqMhhtBWZSwfMmgsIHSgiMaBIWS3dxhMv2TXncsnJyc7c5uYeetsuvTi5OD2ujosmyZ1spEjj0gRL36xLn2K3T1lVR9tAHCfPD5Nq+9og5QwWjuMKxqmVxJtzg6bZpwXVNevFiXTNJS12e0sJbT1JzGhup6S754QMVf59B/YL9syMyJzzN1IXZgRQL7Cvb56MOFvhkaQ7zBuajIWpN87nRGZUM3dRf39/n3+GSnNCiXl9d3zf6e+fKszxXoZ/6o7zN5b7ZjCJyOmd76eS6MKphLImI7IvUFk9XmdKr9NqtTq94KlXaleqjwzr1MTmR56jF/kv1AVabYF6mNo6nTJPq3VK+WGdTjderSQuvMGwYiIaE2yRqeY5wn8JHJNDU/5IcjZurq4uF5p1VeXlATLeRoVHku5wuRiqrt68UXAeVRMhzbExCCgPqCFz7K+SpqfMGkFsS/UWKle1n1A0RLtKWe2Z3ppnbo5+7q3wTHfQI5jzqbfCZ+fwRMFbvYD8NhHoMzJhVmHOx94J1mMeiTI8mwiY85UXIpB8/iP/AeDwntWxm7HPAAAAAElFTkSuQmCC \ No newline at end of file +v0.44.16-beta +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYQAAAAqCAMAAAHzBexdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUzMjhCMEQxODJBRDExRUNBRkM3OEI1MDAzRjNFRDMxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjUzMjhCMEQyODJBRDExRUNBRkM3OEI1MDAzRjNFRDMxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NTMyOEIwQ0Y4MkFEMTFFQ0FGQzc4QjUwMDNGM0VEMzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6NTMyOEIwRDA4MkFEMTFFQ0FGQzc4QjUwMDNGM0VEMzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7aZwxhAAADAFBMVEUJeLihoaGUxeG6uroka5NFgKIqjcbh7/c5lclISEilpaWKioojhLwFbaljlbEbhcEFaaIccaLR0dHR5vI9PT2enp4GcKyCgoLv9Pcwk8uGvt8HXpE1dZre3t6xytmizOW1tbUVappUi6s/Pz9ubm6StckJca3a2tp1tdnn5+fOzs7R4ekHZp2RkZFFRUVLS0sFZZtycnIIXI13d3cEU4CFhYVFkb0keaoKdLGCrsacnJxiYmJjnLy/v7+srKx4eHhFmsrg4OBDQ0MFWYpBQUEKaqDw9feixtoJZJmy0eOUlJTCwsI2kcZqamo0faYFYJUHVoTIyMgGXY+z1upXpdJXlbnFxcVAQEDAwMCiwNK2trZmrdXR3+gXgLzKysoHbKUIYZQgdabB2eeCss6kzuZlZWVgYGCDqsFKn88GVYKEscwYbZ4XYo1HnMyhv9CNjY0FcrCDq8JDfqCSvtYEYphortevr68micJ0dHSJweJynrh0sdUJWIVFia81h7UBcrNZWVlTU1NRUVFUVFRVVVUFdrdSUlILfL0HeLkKe7wGd7hWVlYOgMADdLUEdrYDdbUEdbYDdLQOf8ASg8MSg8QShMQThMUAcrJXV1cOf78Nfr8Nfr4Mfb4Mfb0Je7sJersJeroIebo6OjqqqqrV1dXU1NSrq6upqanC3u47Ozvw9/uAgIB+fn7B3u719fWBgYEGVYGEvN3q6uqEvd3B1eD09PTz8/MEXI5MTEyFvt6DvNyCqcB/f3/B3e1Jns4IV4RHm8zB3e7o6Ohkq9MHVoNGm8sIaJ+EtNCXl5fC3u+Fvd7W1taErMKFvd3g6u/A1N9EmcpVos8IdbPg6vAFdLSCutqDr8jC3+9Inc4EVYMUXomixNfB2+qEq8LD3++RuM+EtM/B1+Nlq9RInc0FZ6Anhr0lfrAIWYjC1eHQ5PDC3Otlp80mcJt0oLl1qMUCc7QRgsMPgMEQgcJaWlpfX19NTU1eXl5cXFxbW1tPT09QUFBYWFhdXV1OTk7///////+2mlSIAAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AU/cHJQAAECVJREFUeNpi+P8FF5iGFVQyfMcJPmIHDL9//9P7DQeMS4CEOERg7ty5anPnbpn7b+7OuWfmAgn+uXP3zZ3L0Nz8r/kfEC1eCSSbnThXNjenLVYAMpsXsi9cuLB4VdI/ILVwbebGf5kLFwIRQxNO0IcdMPz/igvUYwXTAQKIwZC0oJrGQEZIOflCQkkcEWDiv61BASW3Chg6/+YCkSs4kHbOBQcUBKyEUItXLtUHhtIeYDgtfLHx38K1a9cuXPgPHEL/gGH1D0844QomEkOpHiCAGAz/kAw+kAQYPoOAeP5nLCAVmWOPYM4Egx4pMMUBxBkzoQRYCCIOBwzdQKAFxP+A8KvIPxFrEZHuf07/nJwgYiDuIZF/nCLLurdx/lsN5HV3d3Z6dK7odOj819nZmbOiU9gCxADx2GNADEvpf0xGAZ3XpI+4giQYGoFg0b9/DQr//gFZQAykIRDOXdqo+W/58kaFf4vWgAQbu7q65Lq6Yv5Jd+3q6toL5P0DwX8gzAvi/XMWAHMkgGRXF8NP0sFEkgBAADHgLjtwAfNppID/DKQnJXMS09J3koH5R5IAJLXaYUusn8XBCCO1JkJSYSmEYps5kx+WMNk0MBPrTAZQIWGtL4JcYvz+rfL7H5DU/P07ClqWqPzWAxYkEMnEuSCgEc8Kov4BSxIlEOPa3Lnsz6XnQooWYBGzE1zOgIoZYPpe1g0B/0S6lYFJ/183OEt0dzd2G3f/A2UCThW97mVeLpzd6k7/ursFQWmfD5wHgIyz8wtzOyHg3wOQ4NkAls5I13/XpDs9noNE4QVZM6joBwL1lSvhbGAdAOQCC7WVWs2LA4ECS0HiggsXKh1duGUhuCJYy+6zVngtmA0s7x4wZEpvBLKUMjM3LozdkAkSBec4zX/bGv8dgmQye3DOA2YvIKGbBuKuAWe75T/BeQ8onA3OY2KgTAVkATPdhS5wPuu69S8PJPBPokvun8STf7z/ikESeOogXCC7jyRARp5WJDFPW38lFSjWkwL+AwTgtQxCmwiiMLz00iRSJdogBmPRg0LBGHSlioimGi8GxYWiSEUKvfXgRU9ayOJ2d0DBi4cFDwObNK4xJJAUtT2lCO2h4kE8WDyJB/GiIFhqwb++mdmNFQWhkHww7735/39mb7urra90gaGHnWPXJl5Lm2DoWwfRVrvB2P0OohUCTuFAYhA7C/8Bqt2T/QT+Diwt/ePU2KMN4MsItoWbCJJKRKjcUhPOvRoNlGRy4/E/d4TmKuqwRbvrgiotlAAXDSrZWqx2hQQMIuuWUCrJfEHmooFbzwLlG4hdglsuu24tFcMRt16jI1dlOu4Q47NU4OwYcZxjcBS44wu1srsVKrmcnJB7FwkUZ7aCGXwk7fMiIk5vr+87eL9Y6QlszVIUU8EAtWAGcxGC33oQs86ftBoHQ/fpdlKOolGkfNEqJSzLJHHaCvNxLsA1juscLTFKwd+ncb/JW6MLvKUUHnr4tHB4ZpzT5T5vNjl/Ay4fBbnjTTkq5JeBsJGiuqUqXv0rMNu/YmYUKhD+qZkhSDxru9VpKgnzx1n6gjw2V0msQonKjzNBH2AwdqHCWM8exuZfsoxhGB+OG/upTQprXsYgS56xyqTcs7k5xgZes63CyLPbA4ydpjEP5TLNDun3PO/Jmj3sef2ebXtCkuUQ6YFAa9jzgnzU+952X1wOLkjb6bQMUUqKKj0xJTF0Uc/ouuh6RmrPVeuTkli6tN9SvahOTWVoXpbHZRf+sq7f1ANbW+sGEw86iLb+swvs/dpBfgnAm9mFNnWGcTxdt9gUtaInbbfMraB2FLH1c8hKguvaraubtptMRKcyCpob8UZ0bGNksWmToxuDIS3Di7Zplya03do0FnEqwuyNQlFE2ZUoKMgGU/Gjlj7x+TjvyYlzbsLO+dOe53nf530PDb35//5xZZ/f1D+/jtiml7NZ1wonDIaN/uKHrDMG4y8b5ZBHumOrR3rghG7bKWds3iFbbV4OlwOBxXf/q8o4CVpc9lTo/rvygNr9yu7c4vZuazHzo66uQ/s+V1wOXc+U6VRHoN8L8G9GNRCQ6n+bbeuyf7Sy+cpzmu9+9X7SXCXFl7aaRtWdvCx+dcu5k8ra5hlT+PFJp2okC4GM5qnR9OmnaFVZLnwIBKT3UAYxDTO5KQUR1HJaUVbLG7VqdtQiuLm2EdRiwVxu920zdy6lL/OpLxsb1qobR91F3Jx084rbIvOFymxDp3jt+DAa77i45/7tAMO1UFhI5ntk6A0sIyOG2UYz3VlQ1ammbM3nF8MwvWgVFC8cws2hM1Xy2mkx1uSq3Vy2bRKf3PraDloWgU957faGiQQNlpRcUTvtAJ8BzrfCxNJkewLQa1+fNfGeecOlMpiQ1HhK11NxPXVG0zz9n2jaIwhXVy+r0KFGq1/frxcUcGCp62vG8M60rqb3OLrxaI90oDzHU59pwrJoUSbFpzmmubgpGoULnGbeOs87W8t30rIEmqMQVTqfoEgHXr8KrSrfafY1QxGWhpXlJT7w+aKVKxsa0yr+cVkwgRRPHTyYigsA9BbTgBRnfijuJRoQjRM7RKxT7LcfMJnCG+cyP8Wn2df/gV5/ieBAYlTI4BQvIagAgjSaoMlLjWeDgBRBVECz9Kjwwmk5meTW4AWVUzVJ7TsRDp/oo59wuLeXBgOoes6ucM1brEyTf33eNDwwsAa81NKqooULvY6+6CBdgG5Yzgl+N7zJO+nBwUEYNMo1Cby6f6HkK32Ns6/SYDAoNxZ80Q24CFbK/T9/DqZ/My64TIK5j4+xUKE/FPL3Ca4gvYRCVS34OMDogmuvX52vBajLm6JqfmphLKL47CFv9nFgHRE22fVxOcHMp/hb2vEB8g2izkeIOlJ2dLzAyHOcnhuQZ/YrpqEK85iC1OpGR8esdQp5jL9o6kP6N3lDdfhssn4ELYM7b6mP4AEw/twZbizTEL2gjtoebCqmLB+BMnfUcngRn7/jdG4sNgmyaSm/AueCAJOx0j1YVseMmdygi3gCJ7FXsVs6aYxNahvvYeiK4NOzWYiLACwSGaAdpq9qGRsXpMlNIxa66+mpk27zOJ81+Gr13jbhsXkGphmkZpRjitrmtLVtFLSTmdw4LDyHk7ZS7N6Zo6jtGyf0rZ1yBjy/sxU8p5zQ93bK5QQ6z9iJztlnfKP8P+pr+zQ7+1iA7q09pOorjqtlen2V6c/CNK2rViL3WmolN9JctS01S4M1yewdrAfWZMFobXZrXrtsjI0xiRCveq/i1My3WUmzQmskGdSg1xqLDdZgj2xQ89POOb/ze3ldCNGF6+eP8/s+P+f4Ox4f3++55N//hU8mBpZ87ZagBYwPnk4ULPnKTeGiEoxrGkl/uCtcU4FxCV5rN+8v928VuqYf+ae7wuPvCYOtX7orPJxqbqb8JrGruKLf9MkrYsZybQu7Cf2ynInN46G4hmvjnGzryf+DF/t6fHzHcG0AwlVqCOAccwH3FcX3PiO7oA0J17CMSg+/cPLl8BhVdjStQEdMKIVR6Jjx/BWxHMs1egwQw8V+dHw6HgpDqGGck209NTamABGHCX7FDidXPVYjXFa9iIZRIeyV35a0C8D3lOvwUm1UuIplNF7mEzF6E5og6I8yyWqkQg1OM+00avjYT8uszx1wmBwtYF4HPTpNDhYHmJhaY2KKCJn9qIAWZTus2lyF/PmMFTStaSMhcUAkTqphBcMkHhmzkar56qUHn+LF1anAFF6rhVdpaR7uLaXKFkC+CyFiAO/2PkQ3137A6ghvQBtS2tvbew8DXNmAm72rSsdAN7o3+NDTxovEvgN0eQO+rBIsghh9mFDfPTpbKmhzeGKBUWMgm8Bvl9SwEe2eXaE6U7kD+M7/ndBj/5RHY56OHBxdB61xl1Mz0UxMCxUg0EOl0BnnIZoJK1D9rFybq5C3iGm6ajI32QQa34J8aspHi7iM6QuJloIm1VKDpXqyhzd8xGoz2hJoZXlxKVPbcLVMhfnYtPetsjpunOqDoF+W7gPKnHAVdVyqQ2wee4/znULq39u7bt3eTWxmcsCC1hEcQF5ZGRkPUKWs7JE3fa6LAKZqs6WSPIcD07WGGohF9W9Rw8b4UJ3Zai4hgYK+y2otMftj3kozcZljWARAzVbyLe9gdA4tnXUY8CcP+vatVm2uQr4AkUnUrHsmUUQj00DTDZmIZpEZxGXtiuerYwiukBD3O3aQxxTMnEUewD7RXIdWOaQiq35mxCIP2bgD+y8VVlSQTahwQivquAT8uOUSQRDjzLpdR+HFQlKvEDKPRTfxU0VFCOYW0vArbTSsVZp2KK5iX2tr3raZ0oIkSE0FjjRgl8ZANoE9ySbII7u0hGpJaKlm8BP8WWdB7ZejZJSkoX0X4cGwU65Cro/JZAd3s0xRAz/R5UeD5EhpdeJNp0oZq2ZjfmWlDyaXEeU6LovWRvymhDRChcrLau1MpRZn0MglcqjYs3A3NRUc9KZYy0J40jYqAFFnGG7tfqTykb8P7iz76PGsh9KCJKiv8BKMkPP+RFKeZJvNdvgz+Rzs8sg+swDeICHb9q9OhFG89avyy1EKuvKx2dyOlE+dchVy80gGbbfkU4NI4YlI0RMJz2NKpB3nFOZgm4Ic8uajEDRE5VuIYrYsoFCJyG0W0Ybdzc22MK6R3wnNzQk2Lc6C31G2xXIqWx7et9lOhDHEsZCzzH4IOGKzteFOAseQ4iMb3VxcGDZka8Rl7QRyY4cjI4X8ZI72b2iojWT3mxuA2oaG6HaA9kka2EhRi1pRGCZvcj0JXCi01LLWiNqfjfaGkqdrtDMsQDuijc65Cjla1mSTtHa6AJFIV4t2QkNMtTpVpB0NCvEem0XBY/IdHVvIxITZCMmyFMwHvKmaDpxVBZ7XaMQpmbmQnp4ehRAyFhAlcT/q+yyWGyHYn2hR4yzqvW6k910kc8RZLLmbSNghS8GNKEpyBPXploI+S9h1hPSlExuQrklW3caTL9lVpQnx8fG1aVVVXfS2XUpmfGZKaIngT5w72UiRJCRxyVhlSJlkt09aU0LbQIKg9o+QbPt6T+0MVkEQMsbIVcir0jyn26d7llQZ5YkMVdnVdnt1Nm09KZH+wk6Fd88JFYoiej4s5vKs5KA3z99NnZxMP3pyIqCnZ7EqcJlGI07JzIXt27en9hwg4yOq5SQfjL14/sHB5JwTGizu8Z57Z3Awls/xRnJE6rbzd2/Npd21sOSg2Y1vpxLr5NjBwQdrk4N6ArTZY3WmjAa9Xm8wck23Ur9Sd3TEoCOyOIoxRjn+mS5Dr8/QjVDZYND6abZBSz9iMBjGylXI+QpGNBNRG5flSJ0Ywz8lcFyNsMSfFWVaTmdnYpEoFyUmBqripmk04pTMXEiUwNMDizs7iwOPj0JgYmAhmaO4SJm+k0xZ+LlIltuZS+mKaG4Y4S7SZrumt+aam6NfuCtc0x10CeZ85q7w2DkyUfBaLyC/TgR4vJgwuzDnY/cE6zG/8DMNTwTM+cYNEUDe/4v/ALgEVK/AAN4iAAAAAElFTkSuQmCC \ No newline at end of file diff --git a/luci-app-openclash/root/usr/share/openclash/res/rule_providers.list b/luci-app-openclash/root/usr/share/openclash/res/rule_providers.list index 3ad8f6f52..c8e638e62 100644 --- a/luci-app-openclash/root/usr/share/openclash/res/rule_providers.list +++ b/luci-app-openclash/root/usr/share/openclash/res/rule_providers.list @@ -1,49 +1,49 @@ 放行规则-ConnersHua(建议置顶并直连),ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/,Unbreak.yaml -放行规则-lhie1(建议置顶并直连),lhie1,classical,lhie1/Rules/master/Clash/Provider/,Special.yaml +放行规则-lhie1(建议置顶并直连),lhie1,classical,dler-io/Rules/master/Clash/Provider/,Special.yaml 放行规则-ACL4SSR(建议置顶并直连),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/,UnBan.yaml 反劫持规则,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Guard/,Hijacking.yaml -国内IP白名单(By lhie1),lhie1,ipcidr,lhie1/Rules/master/Clash/Provider/,Domestic%20IPs.yaml,Domestic IPs.yaml +国内IP白名单(By lhie1),lhie1,ipcidr,dler-io/Rules/master/Clash/Provider/,Domestic%20IPs.yaml,Domestic IPs.yaml 国内IP白名单,ConnersHua,ipcidr,DivineEngine/Profiles/master/Clash/RuleSet/Extra/,ChinaIP.yaml -国内域名白名单(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/,Domestic.yaml +国内域名白名单(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/,Domestic.yaml 国内域名白名单,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/,China.yaml 国内流媒体合集,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/,StreamingCN.yaml 国内流媒体国际版合集,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/,StreamingSE.yaml -国外常用网站合集(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/,Proxy.yaml +国外常用网站合集(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/,Proxy.yaml 国外常用网站合集,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/,Global.yaml 国外流媒体合集,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/,Streaming.yaml 学术网站,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/,Scholar.yaml -广告规则(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/,Reject.yaml +广告规则(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/,Reject.yaml 广告规则,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Guard/,Advertising.yaml -微软服务,lhie1,classical,lhie1/Rules/master/Clash/Provider/,Microsoft.yaml +微软服务,lhie1,classical,dler-io/Rules/master/Clash/Provider/,Microsoft.yaml 数字货币相关,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/,Cryptocurrency.yaml 隐私规则合集,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Guard/,Privacy.yaml -ABC,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,ABC.yaml -Abema TV,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Abema%20TV.yaml,Abema TV.yaml +ABC,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,ABC.yaml +Abema TV,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Abema%20TV.yaml,Abema TV.yaml AbemaTV(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,AbemaTV.yaml,AbemaTV-ACL4SSR.yaml AbemaTV,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,AbemaTV.yaml Adobe,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Adobe.yaml All-4,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,All-4.yaml Amazon(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Amazon.yaml,Amazon-ACL4SSR.yaml -Amazon,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Amazon.yaml +Amazon,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Amazon.yaml AmazonIp,ACL4SSR,ipcidr,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,AmazonIp.yaml AppStore,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,AppStore.yaml AppStoreConnect,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,AppStoreConnect.yaml Apple FindMy,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,FindMy.yaml Apple Music,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,Music.yaml -Apple News(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Apple%20News.yaml,Apple News.yaml +Apple News(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Apple%20News.yaml,Apple News.yaml Apple News,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,News.yaml Apple SoftwareUpdate,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,SoftwareUpdate.yaml -Apple TV(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Apple%20TV.yaml,Apple TV.yaml +Apple TV(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Apple%20TV.yaml,Apple TV.yaml Apple TV,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,TV.yaml Apple TestFlight,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,TestFlight.yaml Apple iCloud,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,iCloud.yaml Apple(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Apple.yaml,Apple-ACL4SSR.yaml -Apple(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/,Apple.yaml,Apple-lhie1.yaml +Apple(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/,Apple.yaml,Apple-lhie1.yaml Apple,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,Apple.yaml -BBC iPlayer,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,BBC iPlayer.yaml +BBC iPlayer,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,BBC iPlayer.yaml BBC-iPlayer,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,BBC-iPlayer.yaml Bahamut(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Bahamut.yaml,Bahamut-ACL4SSR.yaml -Bahamut(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Bahamut.yaml,Bahamut-lhie1.yaml +Bahamut(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Bahamut.yaml,Bahamut-lhie1.yaml Bahamut,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,Bahamut.yaml BanAD,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/,BanAD.yaml BanEasyList,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/,BanEasyList.yaml @@ -51,7 +51,7 @@ BanEasyListChina,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/,BanEa BanEasyPrivacy,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/,BanEasyPrivacy.yaml BanProgramAD,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/,BanProgramAD.yaml Bilibili(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Bilibili.yaml,Bilibili-ACL4SSR.yaml -Bilibili,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Bilibili.yaml +Bilibili,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Bilibili.yaml Bilibili-Intl,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,bilibili-Intl.yaml BilibiliHMT,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,BilibiliHMT.yaml Blizzard(By ConnersHua),ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Game/,Blizzard.yaml,Blizzard-ConnersHua.yaml @@ -61,21 +61,21 @@ ChinaDomain,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/,ChinaDomai ChinaIp(By ACL4SSR),ACL4SSR,ipcidr,ACL4SSR/ACL4SSR/master/Clash/Providers/,ChinaIp.yaml,ChinaIp-ACL4SSR.yaml ChinaMedia,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/,ChinaMedia.yaml Chromecast,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Google/,Chromecast.yaml -DAZN(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,DAZN.yaml,DAZN-lhie1.yaml +DAZN(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,DAZN.yaml,DAZN-lhie1.yaml DAZN,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,DAZN.yaml Deezer,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Music/,Deezer.yaml Developer,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Developer.yaml Discord,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Game/,Discord.yaml DiscoveryPlus,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,DiscoveryPlus.yaml -Disney Plus,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Disney%20Plus.yaml,Disney Plus.yaml +Disney Plus,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Disney%20Plus.yaml,Disney Plus.yaml DisneyPlus(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,DisneyPlus.yaml,DisneyPlus-ACL4SSR.yaml DisneyPlus,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,DisneyPlus.yaml Download,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/,Download.yaml EHGallery,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,EHGallery.yaml Epic,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Epic.yaml FOX,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,FOX.yaml -Fox Now,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Fox%20Now.yaml,Fox Now.yaml -Fox+,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Fox+.yaml +Fox Now,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Fox%20Now.yaml,Fox Now.yaml +Fox+,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Fox+.yaml GFW地址,ConnersHua,ipcidr,DivineEngine/Profiles/master/Clash/RuleSet/Extra/,IP-Blackhole.yaml Google,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Google.yaml GoogleCN,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,GoogleCN.yaml @@ -84,52 +84,52 @@ GoogleFCM,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Goog GoogleSearch,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Google/,GoogleSearch.yaml GoogleVoice,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Google/,GoogleVoice.yaml HBO(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,HBO.yaml,HBO-ACL4SSR.yaml -HBO(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,HBO.yaml,HBO-lhie1.yaml +HBO(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,HBO.yaml,HBO-lhie1.yaml HBO,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,HBO.yaml HBO-GO-HKG,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,HBO-GO-HKG.yaml HWTV,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,HWTV.yaml Himalaya,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Podcast/,Himalaya.yaml -Hulu Japan,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Hulu Japan.yaml -Hulu(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Hulu.yaml,Hulu-lhie1.yaml +Hulu Japan,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Hulu Japan.yaml +Hulu(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Hulu.yaml,Hulu-lhie1.yaml Hulu,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,Hulu.yaml Hulu-JPN,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,Hulu-JPN.yaml ITV,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,ITV.yaml Instagram,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Music/,Instagram.yaml -JOOX(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,JOOX.yaml,JOOX-lhie1.yaml +JOOX(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,JOOX.yaml,JOOX-lhie1.yaml JOOX,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Music/,JOOX.yaml -Japonx,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Japonx.yaml -KKBOX(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,KKBOX.yaml,KKBOX-lhie1.yaml +Japonx,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Japonx.yaml +KKBOX(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,KKBOX.yaml,KKBOX-lhie1.yaml KKBOX,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Music/,KKBOX.yaml -KKTV(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,KKTV.yaml,KKTV-lhie1.yaml +KKTV(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,KKTV.yaml,KKTV-lhie1.yaml KKTV,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,KKTV.yaml LINE-TV,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,LINE-TV.yaml -Letv,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Letv.yaml +Letv,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Letv.yaml LiTV,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,LiTV.yaml -Line TV,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Line%20TV.yaml,Line TV.yaml +Line TV,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Line%20TV.yaml,Line TV.yaml LocalAreaNetwork,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/,LocalAreaNetwork.yaml -MOO,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,MOO.yaml +MOO,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,MOO.yaml Microsoft(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Microsoft.yaml,Microsoft-ACL4SSR.yaml My5,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,My5.yaml NetEaseMusic,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,NetEaseMusic.yaml -Netease Music,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Netease%20Music.yaml,Netease Music.yaml +Netease Music,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Netease%20Music.yaml,Netease Music.yaml Netflix(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Netflix.yaml,Netflix-ACL4SSR.yaml -Netflix(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Netflix.yaml,Netflix-lhie1.yaml +Netflix(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Netflix.yaml,Netflix-lhie1.yaml Netflix,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,Netflix.yaml Nintendo,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Game/,Nintendo.yaml Now-E,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,Now-E.yaml OneDrive(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,OneDrive.yaml,OneDrive-ACL4SSR.yaml OneDrive,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Microsoft/,OneDrive.yaml Origin,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Game/,Origin.yaml -PBS(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,PBS.yaml,PBS-lhie1.yaml +PBS(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,PBS.yaml,PBS-lhie1.yaml PBS,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,PBS.yaml -Pandora(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Pandora.yaml,Pandora-lhie1.yaml +Pandora(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Pandora.yaml,Pandora-lhie1.yaml Pandora,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Music/,Pandora.yaml ParamountPlus,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,ParamountPlus.yaml -PayPal(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/,PayPal.yaml,PayPal-lhie1.yaml +PayPal(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/,PayPal.yaml,PayPal-lhie1.yaml PayPal,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/,PayPal.yaml Peacock,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,Peacock.yaml Porn,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Porn.yaml -Pornhub(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Pornhub.yaml,Pornhub-lhie1.yaml +Pornhub(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Pornhub.yaml,Pornhub-lhie1.yaml Pornhub,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,Pornhub.yaml Prime-Video,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,Prime-Video.yaml ProxyGFWlist,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/,ProxyGFWlist.yaml @@ -139,40 +139,40 @@ Scholar(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Rul Siri,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,Siri.yaml Sony,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Sony.yaml SoundCloud,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Music/,SoundCloud.yaml -Soundcloud(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Soundcloud.yaml,Soundcloud-lhie1.yaml -Speedtest,lhie1,classical,lhie1/Rules/master/Clash/Provider/,Speedtest.yaml +Soundcloud(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Soundcloud.yaml,Soundcloud-lhie1.yaml +Speedtest,lhie1,classical,dler-io/Rules/master/Clash/Provider/,Speedtest.yaml Spotify(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Spotify.yaml,Spotify-ACL4SSR.yaml -Spotify(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Spotify.yaml,Spotify-lhie1.yaml +Spotify(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Spotify.yaml,Spotify-lhie1.yaml Spotify,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Music/,Spotify.yaml Steam(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Steam.yaml,Steam-ACL4SSR.yaml -Steam,lhie1,classical,lhie1/Rules/master/Clash/Provider/,Steam.yaml +Steam,lhie1,classical,dler-io/Rules/master/Clash/Provider/,Steam.yaml SteamCN,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,SteamCN.yaml TIDAL,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Music/,TIDAL.yaml TaiwanGood,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,TaiwanGood.yaml Telegram(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Telegram.yaml,Telegram-ACL4SSR.yaml -Telegram(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/,Telegram.yaml,Telegram-lhie1.yaml +Telegram(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/,Telegram.yaml,Telegram-lhie1.yaml Telegram,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Telegram/,Telegram.yaml TelegramNL,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Telegram/,TelegramNL.yaml TelegramSG,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Telegram/,TelegramSG.yaml TelegramUS,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Telegram/,TelegramUS.yaml -Tencent Video,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Tencent%20Video.yaml,Tencent Video.yaml +Tencent Video,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Tencent%20Video.yaml,Tencent Video.yaml TikTok,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,TikTok.yaml Twitch,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Live/,Twitch.yaml -ViuTV(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,ViuTV.yaml,ViuTV-lhie1.yaml +ViuTV(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,ViuTV.yaml,ViuTV-lhie1.yaml ViuTV,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,ViuTV.yaml WeTV,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,WeTV.yaml Xbox,ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,Xbox.yaml -YouTube Music,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,YouTube%20Music.yaml,YouTube Music.yaml +YouTube Music,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,YouTube%20Music.yaml,YouTube Music.yaml YouTube(By ACL4SSR),ACL4SSR,classical,ACL4SSR/ACL4SSR/master/Clash/Providers/Ruleset/,YouTube.yaml,YouTube-ACL4SSR.yaml -YouTube(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,YouTube.yaml,YouTube-lhie1.yaml +YouTube(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,YouTube.yaml,YouTube-lhie1.yaml YouTube,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,YouTube.yaml YouTubeMusic,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Music/,YouTubeMusic.yaml -Youku,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Youku.yaml -encoreTVB(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,encoreTVB.yaml,encoreTVB-lhie1.yaml +Youku,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,Youku.yaml +encoreTVB(By lhie1),lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,encoreTVB.yaml,encoreTVB-lhie1.yaml encoreTVB,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,encoreTVB.yaml iCloud-email,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/Extra/Apple/,Mail.yaml iQIYI,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,iQIYI.yaml -iQiyi,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,iQiyi.yaml -myTV SUPER,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,myTV%20SUPER.yaml,myTV SUPER.yaml +iQiyi,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,iQiyi.yaml +myTV SUPER,lhie1,classical,dler-io/Rules/master/Clash/Provider/Media/,myTV%20SUPER.yaml,myTV SUPER.yaml myTV-SUPER,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,myTV-SUPER.yaml niconico,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,niconico.yaml \ No newline at end of file diff --git a/luci-app-openclash/root/usr/share/openclash/res/sub_ini.list b/luci-app-openclash/root/usr/share/openclash/res/sub_ini.list index 857ed451b..f7e05a931 100644 --- a/luci-app-openclash/root/usr/share/openclash/res/sub_ini.list +++ b/luci-app-openclash/root/usr/share/openclash/res/sub_ini.list @@ -1,9 +1,7 @@ 默认(附带用于Clash的AdGuard DNS),default_with_clash_adg.yml,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/default_with_clash_adg.yml 无Urltest,no_urltest.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/no_urltest.ini 带Urltest,urltest.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/urltest.ini -ConnersHua 神机规则 Basic,connershua_basic.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/connershua_basic.ini ConnersHua 神机规则 Pro,connershua_pro.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/connershua_new.ini -ConnersHua 神机规则 BacktoCN 回国专用,connershua_backtocn.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/connershua_backtocn.ini lhie1 洞主规则(使用 Clash 分组规则),lhie1_clash.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/lhie1_clash.ini lhie1 洞主规则完整版,lhie1_dler.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/lhie1_dler.ini ACL4SSR 规则标准版,acl4ssr_standard.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/acl4ssr_standard.ini @@ -23,28 +21,20 @@ ACL4SSR 规则 Online,ACL4SSR_Online.ini,https://raw.githubusercontent.com/tindy ACL4SSR 规则 Online AdblockPlus,ACL4SSR_Online_AdblockPlus.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_AdblockPlus.ini ACL4SSR 规则 Online Full,ACL4SSR_Online_Full.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Full.ini ACL4SSR 规则 Online Full AdblockPlus,ACL4SSR_Online_Full_AdblockPlus.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Full_AdblockPlus.ini +ACL4SSR 规则 Online Full Google,ACL4SSR_Online_Full_Google.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Full_Google.ini +ACL4SSR 规则 Online Full MultiMode,ACL4SSR_Online_Full_MultiMode.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Full_MultiMode.ini ACL4SSR 规则 Online Full Netflix,ACL4SSR_Online_Full_Netflix.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Full_Netflix.ini ACL4SSR 规则 Online Full NoAuto,ACL4SSR_Online_Full_NoAuto.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Full_NoAuto.ini ACL4SSR 规则 Online Mini,ACL4SSR_Online_Mini.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Mini.ini ACL4SSR 规则 Online Mini AdblockPlus,ACL4SSR_Online_Mini_AdblockPlus.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Mini_AdblockPlus.ini ACL4SSR 规则 Online Mini Fallback,ACL4SSR_Online_Mini_Fallback.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Mini_Fallback.ini +ACL4SSR 规则 Online Mini MultiCountry,ACL4SSR_Online_Mini_MultiCountry.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Mini_MultiCountry.ini ACL4SSR 规则 Online Mini MultiMode,ACL4SSR_Online_Mini_MultiMode.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Mini_MultiMode.ini ACL4SSR 规则 Online Mini NoAuto,ACL4SSR_Online_Mini_NoAuto.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_Mini_NoAuto.ini +ACL4SSR 规则 Online MultiCountry,ACL4SSR_Online_MultiCountry.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_MultiCountry.ini ACL4SSR 规则 Online NoAuto,ACL4SSR_Online_NoAuto.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_NoAuto.ini ACL4SSR 规则 Online NoReject,ACL4SSR_Online_NoReject.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_Online_NoReject.ini ACL4SSR 规则 WithChinaIp,ACL4SSR_WithChinaIp.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_WithChinaIp.ini ACL4SSR 规则 WithChinaIp WithGFW,ACL4SSR_WithChinaIp_WithGFW.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_WithChinaIp_WithGFW.ini -eHpo1 规则,ehpo1_main.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/ehpo1_main.ini -nzw9314 规则,nzw9314_custom.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/nzw9314_custom.ini -maicoo-l 规则,maicoo-l_custom.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/maicoo-l_custom.ini -rixCloud 官方规则,rixcloud_custom.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/rixcloud_custom.ini -Maying,maying_optimized.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/maying_optimized.ini -Nexitally,nexitally_optimized.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/nexitally_optimized.ini -贼船,zeichuan_optimized.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/zeichuan_optimized.ini -N3RO,n3ro_optimized.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/n3ro_optimized.ini -Scholar,scholar_optimized.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/scholar_optimized.ini -YToo,ytoo_optimized.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/ytoo_optimized.ini -DlerCloud Platinum 李哥定制规则,dlercloud_lige_platinum.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/dlercloud_lige_platinum.ini -DlerCloud Gold 李哥定制规则,dlercloud_lige_gold.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/dlercloud_lige_gold.ini -DlerCloud Silver 李哥定制规则,dlercloud_lige_silver.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/dlercloud_lige_silver.ini -网易云解锁(仅规则分组),netease.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/netease.ini \ No newline at end of file +ACL4SSR 规则 WithGFW,ACL4SSR_WithGFW.ini,https://raw.githubusercontent.com/tindy2013/subconverter/master/base/config/ACL4SSR_WithGFW.ini +eHpo1 规则,ehpo1_main.ini,https://gist.githubusercontent.com/tindy2013/1fa08640a9088ac8652dbd40c5d2715b/raw/ehpo1_main.ini \ No newline at end of file diff --git a/luci-app-openclash/root/usr/share/openclash/yml_groups_get.sh b/luci-app-openclash/root/usr/share/openclash/yml_groups_get.sh index 21ef761ac..61918575a 100644 --- a/luci-app-openclash/root/usr/share/openclash/yml_groups_get.sh +++ b/luci-app-openclash/root/usr/share/openclash/yml_groups_get.sh @@ -217,9 +217,25 @@ do end }.join; + Thread.new{ + #interface-name + if Value['proxy-groups'][$count].key?('interface-name') then + interface_name = '${uci_set}interface_name=' + Value['proxy-groups'][$count]['interface-name'].to_s + system(interface_name) + end + }.join; + + Thread.new{ + #routing-mark + if Value['proxy-groups'][$count].key?('routing-mark') then + routing_mark = '${uci_set}routing_mark=' + Value['proxy-groups'][$count]['routing-mark'].to_s + system(routing_mark) + end + }.join; + Thread.new{ #other_group - Value_1=YAML.load_file('/tmp/Proxy_Group'); + Value_1 = File.readlines('/tmp/Proxy_Group').map!{|x| x.strip}; if Value['proxy-groups'][$count].key?('proxies') then Value['proxy-groups'][$count]['proxies'].each{ |x| diff --git a/luci-app-openclash/root/usr/share/openclash/yml_groups_set.sh b/luci-app-openclash/root/usr/share/openclash/yml_groups_set.sh index d71a32177..e81b7782d 100644 --- a/luci-app-openclash/root/usr/share/openclash/yml_groups_set.sh +++ b/luci-app-openclash/root/usr/share/openclash/yml_groups_set.sh @@ -178,6 +178,8 @@ yml_groups_set() config_get "test_url" "$section" "test_url" "" config_get "test_interval" "$section" "test_interval" "" config_get "tolerance" "$section" "tolerance" "" + config_get "interface_name" "$section" "interface_name" "" + config_get "routing_mark" "$section" "routing_mark" "" if [ ! -z "$if_game_group" ] && [ "$if_game_group" != "$name" ]; then return @@ -258,15 +260,21 @@ yml_groups_set() sed -i "/use: ${group_name}/d" $GROUP_FILE 2>/dev/null fi - [ ! -z "$test_url" ] && { + [ -n "$test_url" ] && { echo " url: $test_url" >>$GROUP_FILE } - [ ! -z "$test_interval" ] && { + [ -n "$test_interval" ] && { echo " interval: \"$test_interval\"" >>$GROUP_FILE } - [ ! -z "$tolerance" ] && { + [ -n "$tolerance" ] && { echo " tolerance: \"$tolerance\"" >>$GROUP_FILE } + [ -n "$interface_name" ] && { + echo " interface-name: \"$interface_name\"" >>$GROUP_FILE + } + [ -n "$routing_mark" ] && { + echo " routing-mark: \"$routing_mark\"" >>$GROUP_FILE + } } create_config=$(uci get openclash.config.create_config 2>/dev/null) diff --git a/luci-app-openclash/root/usr/share/openclash/yml_proxys_get.sh b/luci-app-openclash/root/usr/share/openclash/yml_proxys_get.sh index be0c2b877..e59c7a3c7 100644 --- a/luci-app-openclash/root/usr/share/openclash/yml_proxys_get.sh +++ b/luci-app-openclash/root/usr/share/openclash/yml_proxys_get.sh @@ -745,6 +745,13 @@ do system(psk) end }.join + + Thread.new{ + if Value['proxies'][$count].key?('version') then + snell_version = '${uci_set}snell_version=' + Value['proxies'][$count]['version'].to_s + system(snell_version) + end + }.join end; if '$server_type' == 'socks5' or '$server_type' == 'http' then Thread.new{ diff --git a/luci-app-openclash/root/usr/share/openclash/yml_proxys_set.sh b/luci-app-openclash/root/usr/share/openclash/yml_proxys_set.sh index ca8903768..15ab4be6d 100644 --- a/luci-app-openclash/root/usr/share/openclash/yml_proxys_set.sh +++ b/luci-app-openclash/root/usr/share/openclash/yml_proxys_set.sh @@ -217,6 +217,7 @@ yml_servers_set() config_get "auth_pass" "$section" "auth_pass" "" config_get "psk" "$section" "psk" "" config_get "obfs_snell" "$section" "obfs_snell" "" + config_get "snell_version" "$section" "snell_version" "" config_get "sni" "$section" "sni" "" config_get "alpn" "$section" "alpn" "" config_get "http_path" "$section" "http_path" "" @@ -661,6 +662,11 @@ cat >> "$SERVER_FILE" <<-EOF port: $port psk: $psk EOF + if [ -n "$snell_version" ]; then +cat >> "$SERVER_FILE" <<-EOF + version: "$snell_version" +EOF + fi if [ "$obfs_snell" != "none" ] && [ ! -z "$host" ]; then cat >> "$SERVER_FILE" <<-EOF obfs-opts: diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 898812546..99744cb45 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.12.5 +PKG_VERSION:=1.13.1 PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) diff --git a/xray-core/Makefile b/xray-core/Makefile index df7c4e70f..2a01ba85b 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.5.2 +PKG_VERSION:=1.5.3 PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 0f0383ac7..c08ecdfdd 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.2 +PKG_VERSION:=1.5.3 PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz