diff --git a/package/ctcgfw/luci-app-openclash/Makefile b/package/ctcgfw/luci-app-openclash/Makefile index 6bf879eff8..4f61615af6 100644 --- a/package/ctcgfw/luci-app-openclash/Makefile +++ b/package/ctcgfw/luci-app-openclash/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-openclash -PKG_VERSION:=0.41.06 +PKG_VERSION:=0.41.12 PKG_RELEASE:=beta PKG_MAINTAINER:=vernesong diff --git a/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua b/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua index 8f8506eefe..2b7c304fd6 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua @@ -39,7 +39,8 @@ function index() entry({"admin", "services", "openclash", "switch_mode"}, call("action_switch_mode")) entry({"admin", "services", "openclash", "op_mode"}, call("action_op_mode")) entry({"admin", "services", "openclash", "settings"},cbi("openclash/settings"),_("Global Settings"), 30).leaf = true - entry({"admin", "services", "openclash", "servers"},cbi("openclash/servers"),_("Severs and Groups"), 40).leaf = true + entry({"admin", "services", "openclash", "servers"},cbi("openclash/servers"),_("Servers and Groups"), 40).leaf = true + entry({"admin", "services", "openclash", "other-rules-edit"},cbi("openclash/other-rules-edit"), nil).leaf = true entry({"admin", "services", "openclash", "rule-providers-settings"},cbi("openclash/rule-providers-settings"),_("Rule Providers and Groups"), 50).leaf = true entry({"admin", "services", "openclash", "game-rules-manage"},form("openclash/game-rules-manage"), nil).leaf = true entry({"admin", "services", "openclash", "rule-providers-manage"},form("openclash/rule-providers-manage"), nil).leaf = true diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua index 23dd026c03..921d64f655 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe-edit.lua @@ -47,10 +47,8 @@ o.datatype = "or(host, string)" o.rmempty = false ---- subconverter -o = s:option(ListValue, "sub_convert", translate("Subscribe Convert Online")) +o = s:option(Flag, "sub_convert", translate("Subscribe Convert Online")) o.description = translate("Convert Subscribe Online With Template, Mix Proxies and Keep Settings options Will Not Effect") -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default=0 ---- Template diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe.lua index 1e12dc9889..0d446d4e08 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/config-subscribe.lua @@ -21,10 +21,8 @@ s = m:section(TypedSection, "openclash") s.anonymous = true ---- update Settings -o = s:option(ListValue, "auto_update", translate("Auto Update")) +o = s:option(Flag, "auto_update", translate("Auto Update")) o.description = translate("Auto Update Server subscription") -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default=0 o = s:option(ListValue, "config_auto_update_mode", translate("Update Mode")) @@ -131,7 +129,7 @@ o.write = function() function(s) if s.name ~= "" and s.name ~= nil and s.enabled == "1" then local back_cfg_path_yaml="/etc/openclash/backup/" .. s.name .. ".yaml" - local back_cfg_path_yml="/etc/openclash/backup/" .. s.name .. ".yaml" + local back_cfg_path_yml="/etc/openclash/backup/" .. s.name .. ".yml" fs.unlink(back_cfg_path_yaml) fs.unlink(back_cfg_path_yml) end diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua index 9b8df13415..062524445b 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/groups-config.lua @@ -104,17 +104,6 @@ uci:foreach("openclash", "groups", end) o:value("DIRECT") o:value("REJECT") -o:depends("type", "select") -o:depends("type", "relay") -o.rmempty = true - -o = s:option(DynamicList, "other_group_dr", translate("Other Group")) -o.description = font_red..bold_on..translate("The Added Proxy Groups Must Exist Except 'DIRECT' & 'REJECT'")..bold_off..font_off -o:value("DIRECT") -o:value("REJECT") -o:depends("type", "url-test") -o:depends("type", "fallback") -o:depends("type", "load-balance") o.rmempty = true local t = { diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/other-rules-edit.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/other-rules-edit.lua new file mode 100644 index 0000000000..cf64d3c9b6 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/other-rules-edit.lua @@ -0,0 +1,270 @@ + +local m, s, o +local openclash = "openclash" +local uci = luci.model.uci.cursor() +local fs = require "luci.openclash" +local sys = require "luci.sys" +local sid = arg[1] + +font_red = [[]] +font_green = [[]] +font_off = [[]] +bold_on = [[]] +bold_off = [[]] + +function IsYamlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-5,-1)) + return e == ".yaml" +end +function IsYmlFile(e) + e=e or"" + local e=string.lower(string.sub(e,-4,-1)) + return e == ".yml" +end + +m = Map(openclash, translate("Other Rules Edit")) +m.pageaction = false +m.redirect = luci.dispatcher.build_url("admin/services/openclash/settings") +if m.uci:get(openclash, sid) ~= "other_rules" then + luci.http.redirect(m.redirect) + return +end + +-- [[ Other Rules Setting ]]-- +s = m:section(NamedSection, sid, "other_rules") +s.anonymous = true +s.addremove = false + +o = s:option(ListValue, "config", translate("Config File")) +local e,a={} +local groupnames,filename +for t,f in ipairs(fs.glob("/etc/openclash/config/*"))do + a=fs.stat(f) + if a then + e[t]={} + e[t].name=fs.basename(f) + if IsYamlFile(e[t].name) or IsYmlFile(e[t].name) then + o:value(e[t].name) + end + if e[t].name == m.uci:get(openclash, sid, "config") then + filename = e[t].name + groupnames = sys.exec(string.format('ruby -ryaml -E UTF-8 -e "YAML.load_file(\'%s\')[\'proxy-groups\'].each do |i| puts i[\'name\']+\'##\' end" 2>/dev/null',f)) + end + end +end + +o = s:option(Button, translate("Get Group Names")) +o.title = translate("Get Group Names") +o.inputtitle = translate("Get Group Names") +o.description = translate("Get Group Names After Select Config File") +o.inputstyle = "reload" +o.write = function() + m.uci:commit("openclash") + luci.http.redirect(luci.dispatcher.build_url("admin/services/openclash/other-rules-edit/%s") % sid) +end + +if groupnames ~= nil and filename ~= nil then +o = s:option(ListValue, "rule_name", translate("Other Rules Name")) +o.rmempty = true +o:value("lhie1", translate("lhie1 Rules")) +o:value("ConnersHua", translate("ConnersHua(Provider-type) Rules")) +o:value("ConnersHua_return", translate("ConnersHua Return Rules")) + +o = s:option(ListValue, "GlobalTV", translate("GlobalTV")) +o:depends("rule_name", "lhie1") +o:depends("rule_name", "ConnersHua") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "AsianTV", translate("AsianTV")) +o:depends("rule_name", "lhie1") +o:depends("rule_name", "ConnersHua") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "Proxy", translate("Proxy")) +o:depends("rule_name", "lhie1") +o:depends("rule_name", "ConnersHua") +o:depends("rule_name", "ConnersHua_return") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "Youtube", translate("Youtube")) +o:depends("rule_name", "lhie1") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "Apple", translate("Apple")) +o:depends("rule_name", "lhie1") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "Microsoft", translate("Microsoft")) +o:depends("rule_name", "lhie1") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "Netflix", translate("Netflix")) +o:depends("rule_name", "lhie1") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "Spotify", translate("Spotify")) +o:depends("rule_name", "lhie1") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "Steam", translate("Steam")) +o:depends("rule_name", "lhie1") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "Speedtest", translate("Speedtest")) +o:depends("rule_name", "lhie1") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "Telegram", translate("Telegram")) +o:depends("rule_name", "lhie1") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "PayPal", translate("PayPal")) +o:depends("rule_name", "lhie1") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "AdBlock", translate("AdBlock")) +o:depends("rule_name", "lhie1") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "Domestic", translate("Domestic")) +o:depends("rule_name", "lhie1") +o:depends("rule_name", "ConnersHua") +o.rmempty = true +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +o = s:option(ListValue, "Others", translate("Others")) +o:depends("rule_name", "lhie1") +o:depends("rule_name", "ConnersHua") +o:depends("rule_name", "ConnersHua_return") +o.rmempty = true +o.description = translate("Choose Proxy Groups, Base On Your Config File").." ( "..font_green..bold_on..filename..bold_off..font_off.." )" +for groupname in string.gmatch(groupnames, "([^'##\n']+)##") do + if groupname ~= nil and groupname ~= "" then + o:value(groupname) + end +end +o:value("DIRECT") +o:value("REJECT") + +end + +local t = { + {Commit, Back} +} +a = m:section(Table, t) + +o = a:option(Button,"Commit") +o.inputtitle = translate("Commit Configurations") +o.inputstyle = "apply" +o.write = function() + m.uci:commit(openclash) + --luci.http.redirect(m.redirect) +end + +o = a:option(Button,"Back") +o.inputtitle = translate("Back Configurations") +o.inputstyle = "reset" +o.write = function() + m.uci:revert(openclash) + luci.http.redirect(m.redirect) +end + +return m \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua index 1d00d0448f..8949ec6136 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/servers-config.lua @@ -219,6 +219,7 @@ o.default = "none" o:value("none") o:value("websocket", translate("websocket (ws)")) o:value("http", translate("http")) +o:value("h2", translate("h2")) o:depends("type", "vmess") o = s:option(Value, "host", translate("obfs-hosts")) @@ -236,6 +237,16 @@ o.rmempty = true o:depends("obfs", "websocket") o:depends("obfs_vmess", "websocket") +o = s:option(DynamicList, "h2_host", translate("host")) +o.rmempty = true +o.datatype = "host" +o:depends("obfs_vmess", "h2") + +o = s:option(Value, "h2_path", translate("path")) +o.rmempty = true +o.default = "/" +o:depends("obfs_vmess", "h2") + o = s:option(DynamicList, "http_path", translate("path")) o.rmempty = true o:value("/") diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/servers.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/servers.lua index 03c577c5c1..fd99dbc83e 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/servers.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/servers.lua @@ -15,10 +15,8 @@ m.pageaction = false s = m:section(TypedSection, "openclash") s.anonymous = true -o = s:option(ListValue, "create_config", translate("Create Config")) +o = s:option(Flag, "create_config", translate("Create Config")) o.description = font_red .. bold_on .. translate("Create Config By One-Click Only Need Proxys") .. bold_off .. font_off -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default=0 o = s:option(ListValue, "rule_sources", translate("Choose Template For Create Config")) @@ -28,17 +26,13 @@ o:value("lhie1", translate("lhie1 Rules")) o:value("ConnersHua", translate("ConnersHua(Provider-type) Rules")) o:value("ConnersHua_return", translate("ConnersHua Return Rules")) -o = s:option(ListValue, "mix_proxies", translate("Mix Proxies")) +o = s:option(Flag, "mix_proxies", translate("Mix Proxies")) o.description = font_red .. bold_on .. translate("Mix This Page's Proxies") .. bold_off .. font_off o:depends("create_config", 1) -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default=0 -o = s:option(ListValue, "servers_update", translate("Keep Settings")) +o = s:option(Flag, "servers_update", translate("Keep Settings")) o.description = font_red .. bold_on .. translate("Only Update Servers Below When Subscription") .. bold_off .. font_off -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default=0 o = s:option(DynamicList, "new_servers_group", translate("New Servers Group")) @@ -181,7 +175,7 @@ o.template="openclash/ping" o.width="10%" local tt = { - {Delete_Unused_Servers, Delete_Severs, Delete_Proxy_Provider, Delete_Groups} + {Delete_Unused_Servers, Delete_Servers, Delete_Proxy_Provider, Delete_Groups} } b = m:section(Table, tt) @@ -196,8 +190,8 @@ o.write = function() luci.http.redirect(luci.dispatcher.build_url("admin", "services", "openclash", "servers")) end -o = b:option(Button,"Delete_Severs") -o.inputtitle = translate("Delete Severs") +o = b:option(Button,"Delete_Servers") +o.inputtitle = translate("Delete Servers") o.inputstyle = "reset" o.write = function() m.uci:set("openclash", "config", "enable", 0) diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua index bb7bd00781..826b27d97a 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua @@ -53,21 +53,19 @@ o:value("fake-ip-mix", translate("fake-ip-mix(tun mix mode)")) o.default = "fake-ip" end -o = s:taboption("op_mode", ListValue, "enable_udp_proxy", font_red..bold_on..translate("Proxy UDP Traffics")..bold_off..font_off) +o = s:taboption("op_mode", Flag, "enable_udp_proxy", font_red..bold_on..translate("Proxy UDP Traffics")..bold_off..font_off) o.description = translate("Select Mode For UDP Traffics, The Servers Must Support UDP while Choose Proxy") o:depends("en_mode", "redir-host") o:depends("en_mode", "fake-ip") -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default = "1" -o = s:taboption("op_mode", ListValue, "stack_type", font_red..bold_on..translate("Select Stack Type")..bold_off..font_off) +o = s:taboption("op_mode", ListValue, "stack_type", translate("Select Stack Type")) o.description = translate("Select Stack Type For Tun Mode, According To The Running Speed on Your Machine") o:depends("en_mode", "redir-host-tun") o:depends("en_mode", "fake-ip-tun") o:depends("en_mode", "redir-host-mix") o:depends("en_mode", "fake-ip-mix") -o:value("system", translate("System")) +o:value("system", translate("System ")) o:value("gvisor", translate("Gvisor")) o.default = "system" @@ -79,20 +77,28 @@ o:value("direct", translate("Direct Proxy Mode")) o:value("script", translate("Script Proxy Mode (Tun Core Only)")) o.default = "rule" -o = s:taboption("op_mode", ListValue, "china_ip_route", font_red..bold_on..translate("China IP Route")..bold_off..font_off) -o.description = translate("Bypass The China Network Flows, Improve Performance") -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) +o = s:taboption("op_mode", Flag, "enable_rule_proxy", font_red..bold_on..translate("Rule Match Proxy Mode")..bold_off..font_off) +o.description = translate("Only Proxy Rules Match, Prevent BT/P2P Passing") +o.default=0 + +o = s:taboption("op_mode", Flag, "common_ports", font_red..bold_on..translate("Common Ports Proxy Mode")..bold_off..font_off) +o.description = translate("Only Common Ports, Prevent BT/P2P Passing") o.default = "0" o:depends("en_mode", "redir-host") o:depends("en_mode", "redir-host-tun") o:depends("en_mode", "redir-host-vpn") o:depends("en_mode", "redir-host-mix") -o = s:taboption("op_mode", ListValue, "small_flash_memory", font_red..bold_on..translate("Small Flash Memory")..bold_off..font_off) +o = s:taboption("op_mode", Flag, "china_ip_route", translate("China IP Route")) +o.description = translate("Bypass The China Network Flows, Improve Performance") +o.default = "0" +o:depends("en_mode", "redir-host") +o:depends("en_mode", "redir-host-tun") +o:depends("en_mode", "redir-host-vpn") +o:depends("en_mode", "redir-host-mix") + +o = s:taboption("op_mode", Flag, "small_flash_memory", translate("Small Flash Memory")) o.description = translate("Move Core And GEOIP Data File To /tmp/etc/openclash For Small Flash Memory Device") -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default = "0" ---- Operation Mode @@ -118,12 +124,6 @@ o:value("linux-mipsle-hardfloat") o:value("0", translate("Not Set")) o.default=0 -o = s:taboption("settings", ListValue, "enable_rule_proxy", font_red..bold_on..translate("Rule Match Proxy Mode")..bold_off..font_off) -o.description = translate("Only Proxy Rules Match, Prevent BT Passing") -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) -o.default=0 - o = s:taboption("settings", ListValue, "interface_name", font_red..bold_on..translate("Bind Network Interface")..bold_off..font_off) local de_int = SYS.exec("ip route |grep 'default' |awk '{print $5}' 2>/dev/null") o.description = translate("Default Interface Name:").." "..font_green..bold_on..de_int..bold_off..font_off..translate(",Try Enable If Network Loopback") @@ -143,14 +143,8 @@ o:value("debug", translate("Debug Mode")) o:value("silent", translate("Silent Mode")) o.default = "silent" -o = s:taboption("settings", ListValue, "intranet_allowed", translate("Only intranet allowed")) -o.description = translate("When Enabled, The Control Panel And The Connection Broker Port Will Not Be Accessible From The Public Network, TUN Not Support Yet") -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) -o:depends("en_mode", "redir-host") -o:depends("en_mode", "fake-ip") -o:depends("en_mode", "redir-host-vpn") -o:depends("en_mode", "fake-ip-vpn") +o = s:taboption("settings", Flag, "intranet_allowed", translate("Only intranet allowed")) +o.description = translate("When Enabled, The Control Panel And The Connection Broker Port Will Not Be Accessible From The Public Network") o.default = 0 o = s:taboption("settings", Value, "proxy_port") @@ -182,34 +176,24 @@ o.rmempty = false o.description = translate("Please Make Sure Ports Available") ---- DNS Settings -o = s:taboption("dns", ListValue, "enable_redirect_dns", font_red..bold_on..translate("Redirect Local DNS Setting")..bold_off..font_off) +o = s:taboption("dns", Flag, "enable_redirect_dns", font_red..bold_on..translate("Redirect Local DNS Setting")..bold_off..font_off) o.description = translate("Set Local DNS Redirect") -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default = 1 -o = s:taboption("dns", ListValue, "enable_custom_dns", font_red..bold_on..translate("Custom DNS Setting")..bold_off..font_off) +o = s:taboption("dns", Flag, "enable_custom_dns", font_red..bold_on..translate("Custom DNS Setting")..bold_off..font_off) o.description = font_red..bold_on..translate("Set OpenClash Upstream DNS Resolve Server")..bold_off..font_off -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default = 0 -o = s:taboption("dns", ListValue, "ipv6_enable", translate("Enable ipv6 Resolve")) +o = s:taboption("dns", Flag, "ipv6_enable", translate("Enable ipv6 Resolve")) o.description = font_red..bold_on..translate("Enable Clash to Resolve ipv6 DNS Requests")..bold_off..font_off -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default=0 -o = s:taboption("dns", ListValue, "disable_masq_cache", translate("Disable Dnsmasq's DNS Cache")) +o = s:taboption("dns", Flag, "disable_masq_cache", translate("Disable Dnsmasq's DNS Cache")) o.description = translate("Recommended Enabled For Avoiding Some Connection Errors")..font_red..bold_on..translate("(Maybe Incompatible For Your Firmware)")..bold_off..font_off -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default=0 -o = s:taboption("dns", ListValue, "dns_advanced_setting", translate("Advanced Setting")) +o = s:taboption("dns", Flag, "dns_advanced_setting", translate("Advanced Setting")) o.description = translate("DNS Advanced Settings")..font_red..bold_on..translate("(Please Don't Modify it at Will)")..bold_off..font_off -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default=0 if op_mode == "fake-ip" then @@ -314,132 +298,61 @@ o.datatype = "ipaddr" o.description = translate("In The Fake-IP Mode, Only Pure IP Requests Are Supported") ---- Rules Settings -if op_mode == "fake-ip" then -o = s:taboption("rules", ListValue, "enable_custom_clash_rules", font_red..bold_on..translate("Custom Clash Rules(Access Control)")..bold_off..font_off) -else -o = s:taboption("rules", ListValue, "enable_custom_clash_rules", font_red..bold_on..translate("Custom Clash Rules")..bold_off..font_off) -end -o.description = translate("Use Custom Rules") -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) +o = s:taboption("rules", Flag, "rule_source", translate("Enable Other Rules")) +o.description = translate("Use Other Rules") o.default = 0 -o = s:taboption("rules", ListValue, "rule_source", translate("Enable Other Rules")) -o.description = translate("Use Other Rules") -o:value("0", translate("Disable Other Rules")) -o:value("lhie1", translate("lhie1 Rules")) -o:value("ConnersHua", translate("ConnersHua(Provider-type) Rules")) -o:value("ConnersHua_return", translate("ConnersHua Return Rules")) - -if not fs.isfile("/tmp/Proxy_Group") then -SYS.call("/usr/share/openclash/yml_groups_name_get.sh 2>/dev/null") +if op_mode == "fake-ip" then +o = s:taboption("rules", Flag, "enable_custom_clash_rules", font_red..bold_on..translate("Custom Clash Rules(Access Control)")..bold_off..font_off) +else +o = s:taboption("rules", Flag, "enable_custom_clash_rules", font_red..bold_on..translate("Custom Clash Rules")..bold_off..font_off) end -file = io.open("/tmp/Proxy_Group", "r"); +o.description = translate("Use Custom Rules") +o.default = 0 -o = s:taboption("rules", ListValue, "GlobalTV", translate("GlobalTV")) -o:depends("rule_source", "lhie1") -o:depends("rule_source", "ConnersHua") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "AsianTV", translate("AsianTV")) -o:depends("rule_source", "lhie1") -o:depends("rule_source", "ConnersHua") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "Proxy", translate("Proxy")) -o:depends("rule_source", "lhie1") -o:depends("rule_source", "ConnersHua") -o:depends("rule_source", "ConnersHua_return") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "Youtube", translate("Youtube")) -o:depends("rule_source", "lhie1") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "Apple", translate("Apple")) -o:depends("rule_source", "lhie1") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "Microsoft", translate("Microsoft")) -o:depends("rule_source", "lhie1") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "Netflix", translate("Netflix")) -o:depends("rule_source", "lhie1") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "Spotify", translate("Spotify")) -o:depends("rule_source", "lhie1") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "Steam", translate("Steam")) -o:depends("rule_source", "lhie1") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "Speedtest", translate("Speedtest")) -o:depends("rule_source", "lhie1") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "Telegram", translate("Telegram")) -o:depends("rule_source", "lhie1") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "PayPal", translate("PayPal")) -o:depends("rule_source", "lhie1") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "AdBlock", translate("AdBlock")) -o:depends("rule_source", "lhie1") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "Domestic", translate("Domestic")) -o:depends("rule_source", "lhie1") -o:depends("rule_source", "ConnersHua") - for l in file:lines() do - o:value(l) - end - file:seek("set") -o = s:taboption("rules", ListValue, "Others", translate("Others")) -o:depends("rule_source", "lhie1") -o:depends("rule_source", "ConnersHua") -o:depends("rule_source", "ConnersHua_return") -o.description = translate("Choose Proxy Group, Base On Your Servers Group in config.yaml") - for l in file:lines() do - o:value(l) - end - file:close() +custom_rules = s:taboption("rules", Value, "custom_rules") +custom_rules:depends("enable_custom_clash_rules", 1) +custom_rules.template = "cbi/tvalue" +custom_rules.description = translate("Custom Rules Here, For More Go Github:https://github.com/Dreamacro/clash/blob/master/README.md, IP To CIDR: http://ip2cidr.com") +custom_rules.rows = 20 +custom_rules.wrap = "off" + +function custom_rules.cfgvalue(self, section) + return NXFS.readfile("/etc/openclash/custom/openclash_custom_rules.list") or "" +end +function custom_rules.write(self, section, value) + if value then + value = value:gsub("\r\n?", "\n") + local old_value = NXFS.readfile("/etc/openclash/custom/openclash_custom_rules.list") + if value ~= old_value then + NXFS.writefile("/etc/openclash/custom/openclash_custom_rules.list", value) + end + end +end + +custom_rules_2 = s:taboption("rules", Value, "custom_rules_2") +custom_rules_2:depends("enable_custom_clash_rules", 1) +custom_rules_2.template = "cbi/tvalue" +custom_rules_2.description = translate("Custom Rules 2 Here, For More Go Github:https://github.com/Dreamacro/clash/blob/master/README.md, IP To CIDR: http://ip2cidr.com") +custom_rules_2.rows = 20 +custom_rules_2.wrap = "off" + +function custom_rules_2.cfgvalue(self, section) + return NXFS.readfile("/etc/openclash/custom/openclash_custom_rules_2.list") or "" +end +function custom_rules_2.write(self, section, value) + if value then + value = value:gsub("\r\n?", "\n") + local old_value = NXFS.readfile("/etc/openclash/custom/openclash_custom_rules_2.list") + if value ~= old_value then + NXFS.writefile("/etc/openclash/custom/openclash_custom_rules_2.list", value) + end + end +end ---- update Settings -o = s:taboption("rules_update", ListValue, "other_rule_auto_update", translate("Auto Update")) +o = s:taboption("rules_update", Flag, "other_rule_auto_update", translate("Auto Update")) o.description = font_red..bold_on..translate("Auto Update Other Rules")..bold_off..font_off -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default=0 o = s:taboption("rules_update", ListValue, "other_rule_update_week_time", translate("Update Time (Every Week)")) @@ -471,10 +384,8 @@ o.write = function() HTTP.redirect(DISP.build_url("admin", "services", "openclash")) end -o = s:taboption("geo_update", ListValue, "geo_auto_update", translate("Auto Update")) +o = s:taboption("geo_update", Flag, "geo_auto_update", translate("Auto Update")) o.description = translate("Auto Update GEOIP Database") -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default=0 o = s:taboption("geo_update", ListValue, "geo_update_week_time", translate("Update Time (Every Week)")) @@ -494,6 +405,16 @@ o:value(t, t..":00") end o.default=0 +o = s:taboption("geo_update", Value, "geo_custom_url") +o.title = translate("Custom GEOIP URL") +o.rmempty = false +o.description = translate("Custom GEOIP Data URL, Click Button Below To Refresh After Edit") +o:value("http://www.ideame.top/mmdb/Country.mmdb", translate("Alecthw-Version")..translate("(Default)")) +o:value("https://cdn.jsdelivr.net/gh/Hackl0us/GeoIP2-CN@release/Country.mmdb", translate("Hackl0us-Version")..translate("(Only CN)")) +o:value("https://static.clash.to/GeoIP2/GeoIP2-Country.mmdb", translate("Static.clash.to")) +o:value("https://geolite.clash.dev/Country.mmdb", translate("Geolite.clash.dev")) +o.default = "http://www.ideame.top/mmdb/Country.mmdb" + o = s:taboption("geo_update", Button, translate("GEOIP Update")) o.title = translate("Update GEOIP Database") o.inputtitle = translate("Check And Update") @@ -506,10 +427,8 @@ o.write = function() end if op_mode == "redir-host" then -o = s:taboption("chnr_update", ListValue, "chnr_auto_update", translate("Auto Update")) +o = s:taboption("chnr_update", Flag, "chnr_auto_update", translate("Auto Update")) o.description = translate("Auto Update Chnroute Lists") -o:value("0", translate("Disable")) -o:value("1", translate("Enable")) o.default=0 o = s:taboption("chnr_update", ListValue, "chnr_update_week_time", translate("Update Time (Every Week)")) @@ -529,6 +448,15 @@ o:value(t, t..":00") end o.default=0 +o = s:taboption("chnr_update", Value, "chnr_custom_url") +o.title = translate("Custom Chnroute Lists URL") +o.rmempty = false +o.description = translate("Custom Chnroute Lists URL, Click Button Below To Refresh After Edit") +o:value("https://ispip.clang.cn/all_cn.txt", translate("Clang-CN")..translate("(Default)")) +o:value("https://ispip.clang.cn/all_cn_cidr.txt", translate("Clang-CN-CIDR")) +o:value("https://cdn.jsdelivr.net/gh/Hackl0us/GeoIP2-CN@release/CN-ip-cidr.txt", translate("Hackl0us-CN-CIDR")..translate("(Large Size)")) +o.default = "https://ispip.clang.cn/all_cn.txt" + o = s:taboption("chnr_update", Button, translate("Chnroute Lists Update")) o.title = translate("Update Chnroute Lists") o.inputtitle = translate("Check And Update") @@ -625,6 +553,46 @@ o:value("https", translate("HTTPS")) o.default = "udp" o.rempty = false +-- [[ Other Rules Manage ]]-- +ss = m:section(TypedSection, "other_rules", translate("Other Rules Edit")..translate("(Take Effect After Choose Above)")) +ss.anonymous = true +ss.addremove = true +ss.sortable = true +ss.template = "cbi/tblsection" +ss.extedit = luci.dispatcher.build_url("admin/services/openclash/other-rules-edit/%s") +function ss.create(...) + local sid = TypedSection.create(...) + if sid then + luci.http.redirect(ss.extedit % sid) + return + end +end + +o = ss:option(Flag, "enabled", translate("Enable")) +o.rmempty = false +o.default = o.enabled +o.cfgvalue = function(...) + return Flag.cfgvalue(...) or "1" +end + +o = ss:option(DummyValue, "config", translate("Config File")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +o = ss:option(DummyValue, "rule_name", translate("Other Rules Name")) +function o.cfgvalue(...) + if Value.cfgvalue(...) == "lhie1" then + return translate("lhie1 Rules") + elseif Value.cfgvalue(...) == "ConnersHua" then + return translate("ConnersHua(Provider-type) Rules") + elseif Value.cfgvalue(...) == "ConnersHua_return" then + return translate("ConnersHua Return Rules") + else + return translate("None") + end +end + -- [[ Edit Authentication ]] -- s = m:section(TypedSection, "authentication", translate("Set Authentication of SOCKS5/HTTP(S)")) s.anonymous = true @@ -651,47 +619,6 @@ o = s:option(Value, "password", translate("Password")) o.placeholder = translate("Not Null") o.rmempty = true -s = m:section(TypedSection, "openclash", translate("Set Custom Rules")) -s.anonymous = true - -custom_rules = s:option(Value, "custom_rules") -custom_rules.template = "cbi/tvalue" -custom_rules.description = translate("Custom Rules Here, For More Go Github:https://github.com/Dreamacro/clash/blob/master/README.md, IP To CIDR: http://ip2cidr.com") -custom_rules.rows = 20 -custom_rules.wrap = "off" - -function custom_rules.cfgvalue(self, section) - return NXFS.readfile("/etc/openclash/custom/openclash_custom_rules.list") or "" -end -function custom_rules.write(self, section, value) - if value then - value = value:gsub("\r\n?", "\n") - local old_value = NXFS.readfile("/etc/openclash/custom/openclash_custom_rules.list") - if value ~= old_value then - NXFS.writefile("/etc/openclash/custom/openclash_custom_rules.list", value) - end - end -end - -custom_rules_2 = s:option(Value, "custom_rules_2") -custom_rules_2.template = "cbi/tvalue" -custom_rules_2.description = translate("Custom Rules 2 Here, For More Go Github:https://github.com/Dreamacro/clash/blob/master/README.md, IP To CIDR: http://ip2cidr.com") -custom_rules_2.rows = 20 -custom_rules_2.wrap = "off" - -function custom_rules_2.cfgvalue(self, section) - return NXFS.readfile("/etc/openclash/custom/openclash_custom_rules_2.list") or "" -end -function custom_rules_2.write(self, section, value) - if value then - value = value:gsub("\r\n?", "\n") - local old_value = NXFS.readfile("/etc/openclash/custom/openclash_custom_rules_2.list") - if value ~= old_value then - NXFS.writefile("/etc/openclash/custom/openclash_custom_rules_2.list", value) - end - end -end - if op_mode == "redir-host" then s = m:section(TypedSection, "openclash", translate("Set Custom Hosts, Only Work with Redir-Host Mode")) s.anonymous = true diff --git a/package/ctcgfw/luci-app-openclash/po/zh-cn/openclash.zh-cn.po b/package/ctcgfw/luci-app-openclash/po/zh-cn/openclash.zh-cn.po index b700072aa8..a0ee35c7c5 100644 --- a/package/ctcgfw/luci-app-openclash/po/zh-cn/openclash.zh-cn.po +++ b/package/ctcgfw/luci-app-openclash/po/zh-cn/openclash.zh-cn.po @@ -191,8 +191,8 @@ msgstr "选择内核日志的默认输出模式" msgid "Only intranet allowed" msgstr "仅允许内网" -msgid "When Enabled, The Control Panel And The Connection Broker Port Will Not Be Accessible From The Public Network, TUN Not Support Yet" -msgstr "启用后将禁止从公网访问控制面板和连接代理端口,TUN模式下启用此项不会生效" +msgid "When Enabled, The Control Panel And The Connection Broker Port Will Not Be Accessible From The Public Network" +msgstr "启用后将禁止从公网访问控制面板和连接代理端口" msgid "Redirect Local DNS Setting" msgstr "*本地DNS劫持" @@ -213,13 +213,13 @@ msgid "Custom DNS Setting" msgstr "自定义上游DNS服务器" msgid "Use Custom Rules" -msgstr "启用后将把自定义规则增加到配置文件并优先匹配,规则请到下方文本框编辑" +msgstr "启用后将把自定义规则增加到配置文件,规则请到下方文本框编辑" msgid "Add Custom DNS Servers" msgstr "设置自定义上游DNS服务器" msgid "(Take Effect After Choose Above)" -msgstr "(在上方DNS设置中启用本功能后生效)" +msgstr "(在上方设置中启用本功能后生效)" msgid "Advanced Setting" msgstr "高级设置" @@ -422,10 +422,7 @@ msgid "Enable Other Rules" msgstr "第三方规则" msgid "Use Other Rules" -msgstr "选择并启用第三方规则后将覆盖配置文件内的所有规则 (不包括自定义规则)" - -msgid "Disable Other Rules" -msgstr "不使用第三方规则" +msgstr "将覆盖配置文件内的所有规则 (不包括自定义规则),启用前请先在此页面下方创建配置" msgid "lhie1 Rules" msgstr "lhie1 规则" @@ -520,8 +517,8 @@ msgstr "国内流量" msgid "Others" msgstr "未匹配到规则的流量" -msgid "Choose Proxy Group, Base On Your Servers Group in config.yaml" -msgstr "指定流量(策略)的代理方式,只支持选择(服务器组),信息来源于您的配置文件" +msgid "Choose Proxy Groups, Base On Your Config File" +msgstr "指定流量(策略)的代理方式,只支持选择(策略组),信息来源于您的配置文件" msgid "Custom Clash Rules" msgstr "自定义规则" @@ -594,7 +591,7 @@ msgid "Only For IPK Install Type Or Not Release Memory" msgstr "" "只支持通过IPK安装的版本进行更新,因为随系统编译的版本更新后不会释放旧版本的闪存空间" -msgid "Severs and Groups" +msgid "Servers and Groups" msgstr "服务器与策略组管理" msgid "Load Config" @@ -603,7 +600,7 @@ msgstr "读取配置" msgid "Delete Unused Servers" msgstr "删除未启用节点" -msgid "Delete Severs" +msgid "Delete Servers" msgstr "清空服务器配置" msgid "Delete Proxy Provider" @@ -1020,8 +1017,14 @@ msgstr "在Fake-IP模式下,只支持过滤纯IP类型的请求" msgid "Rule Match Proxy Mode" msgstr "*仅代理命中规则流量" -msgid "Only Proxy Rules Match, Prevent BT Passing" -msgstr "仅允许代理命中规则的流量,防止BT下载流量经过代理" +msgid "Only Proxy Rules Match, Prevent BT/P2P Passing" +msgstr "仅允许代理命中规则的流量,防止BT、P2P下载流量经过代理" + +msgid "Common Ports Proxy Mode" +msgstr "*仅允许常用端口流量" + +msgid "Only Common Ports, Prevent BT/P2P Passing" +msgstr "仅允许常用端口的流量经过Clash,防止BT、P2P下载流量经过代理" msgid "Provider File Manage" msgstr "代理(规则)集文件管理" @@ -1384,4 +1387,37 @@ msgid "Default Interface Name:" msgstr "当前系统默认接口:" msgid ",Try Enable If Network Loopback" -msgstr ", 如发生回环死机请尝试启用" \ No newline at end of file +msgstr ", 如发生回环死机请尝试启用" + +msgid "Custom GEOIP URL" +msgstr "GEOIP数据库更新URL" + +msgid "Custom Chnroute Lists URL" +msgstr "大陆IP段更新URL" + +msgid "Custom GEOIP Data URL, Click Button Below To Refresh After Edit" +msgstr "自定义GEOIP数据库的更新来源,编辑后点击下方按钮生效" + +msgid "Custom Chnroute Lists URL, Click Button Below To Refresh After Edit" +msgstr "自定义大陆IP段的更新来源,编辑后点击下方按钮生效" + +msgid "(Default)" +msgstr "(默认)" + +msgid "(Only CN)" +msgstr "(仅中国数据)" + +msgid "(Large Size)" +msgstr "(18MB大文件,请确保足够的剩余空间)" + +msgid "Other Rules Edit" +msgstr "设置第三方规则" + +msgid "Get Group Names" +msgstr "获取策略组" + +msgid "Get Group Names After Select Config File" +msgstr "选择配置文件后请点击以获取对应的策略组" + +msgid "Other Rules Name" +msgstr "第三方规则" diff --git a/package/ctcgfw/luci-app-openclash/root/etc/config/openclash b/package/ctcgfw/luci-app-openclash/root/etc/config/openclash index abf4331b90..51a8233e35 100644 --- a/package/ctcgfw/luci-app-openclash/root/etc/config/openclash +++ b/package/ctcgfw/luci-app-openclash/root/etc/config/openclash @@ -33,6 +33,9 @@ config openclash 'config' option redirect_dns '0' option small_flash_memory '0' option interface_name '0' + option common_ports '0' + option geo_custom_url 'http://www.ideame.top/mmdb/Country.mmdb' + option chnr_custom_url 'https://ispip.clang.cn/all_cn.txt' config dns_servers option group 'nameserver' @@ -58,12 +61,6 @@ config dns_servers option ip '223.5.5.5' option enabled '1' -config dns_servers - option enabled '1' - option group 'nameserver' - option ip 'doh.rixcloud.dev/dns-query' - option type 'https' - config dns_servers option type 'https' option group 'fallback' diff --git a/package/ctcgfw/luci-app-openclash/root/etc/init.d/openclash b/package/ctcgfw/luci-app-openclash/root/etc/init.d/openclash index 7ff66e3970..2986b5e9e3 100755 --- a/package/ctcgfw/luci-app-openclash/root/etc/init.d/openclash +++ b/package/ctcgfw/luci-app-openclash/root/etc/init.d/openclash @@ -96,9 +96,18 @@ revert_dns() { } [ "$1" -eq 1 ] && { - if [ -s "/tmp/resolv.conf.d/resolv.conf.auto" ]; then + if [ -s "/tmp/resolv.conf.d/resolv.conf.auto" ] && [ -n "$(grep "nameserver" /tmp/resolv.conf.d/resolv.conf.auto)" ]; then uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.d/resolv.conf.auto >/dev/null 2>&1 - elif [ -s "/tmp/resolv.conf.auto" ]; then + elif [ -s "/tmp/resolv.conf.auto" ] && [ -n "$(grep "nameserver" /tmp/resolv.conf.auto)" ]; then + uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto >/dev/null 2>&1 + else + rm -rf /tmp/resolv.conf.auto 2>/dev/null + touch /tmp/resolv.conf.auto 2>/dev/null + cat >> "/tmp/resolv.conf.auto" <<-EOF +# Interface lan +nameserver 114.114.114.114 +nameserver 119.29.29.29 +EOF uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto >/dev/null 2>&1 fi uci set dhcp.@dnsmasq[0].noresolv=0 >/dev/null 2>&1 @@ -171,7 +180,7 @@ EOF if [ -n "$(ruby_read "$CONFIG_FILE" "['dns']['fallback']")" ] && [ -z "$(ruby_read "$CONFIG_FILE" "['dns']['fallback-filter']")" ]; then cat >> "$2" <<-EOF fallback-filter: - geoip: true + geoip: false ipcidr: - 0.0.0.0/8 - 10.0.0.0/8 @@ -189,9 +198,14 @@ cat >> "$2" <<-EOF - 224.0.0.0/4 - 240.0.0.0/4 - 255.255.255.255/32 + domain: + - '+.google.com' + - '+.facebook.com' + - '+.youtube.com' + - '+.githubusercontent.com' EOF - fi ruby_merge "$CONFIG_FILE" "['dns']" "$2" + fi } #修改集路径 @@ -215,12 +229,18 @@ yml_provider_path() begin Value = YAML.load_file('$1'); if Value.key?('$2') then - Value['$2'].values.each{|x,v| - unless x['path'].include? '$3' then - v=File.basename(x['path']); - x['path']='./$3/'+v; end}; + Value_1 = Marshal.load(Marshal.dump(Value['$2'])); + Value['$2'].values.each{ + |x,v| + unless x['path'].include? '$3' then + v=File.basename(x['path']) + x['path']='./$3/'+v + end + }; + if not Value_1.eql?(Value['$2']) then File.open('$1','w') {|f| YAML.dump(Value, f)} - end + end + end; rescue Exception => e puts '${LOGTIME} Edit Provider Path Error: ' + e.message end @@ -409,7 +429,6 @@ get_rule_file() GAME_RULE_PATH="/etc/openclash/game_rules/$GAME_RULE_FILE_NAME" sed '/^#/d' "$GAME_RULE_PATH" 2>/dev/null |sed '/^ *$/d' |awk '{print "- IP-CIDR,"$0}' |awk -v tag="$2" '{print $0","'tag'""}' >> $GAME_RULE_FILE 2>/dev/null - set_rule_file=1 } yml_game_rule_get() @@ -463,7 +482,7 @@ yml_game_custom() #处理游戏规则 config_load "openclash" config_foreach yml_game_rule_get "game_config" -[ "$set_rule_file" = 1 ] && { +[ -f "$GAME_RULE_FILE" ] && { ruby -ryaml -E UTF-8 -e " begin Value = YAML.load_file('$CONFIG_FILE'); @@ -488,6 +507,7 @@ end config_load "openclash" config_foreach yml_rule_group_get "rule_provider_config" config_foreach yml_rule_group_get "game_config" +if [ -f "/tmp/yaml_groups.yaml" ] || [ -f "/tmp/yaml_servers.yaml" ] || [ -f "/tmp/yaml_provider.yaml" ]; then ruby -ryaml -E UTF-8 -e " begin Value = YAML.load_file('$CONFIG_FILE'); @@ -522,6 +542,7 @@ File.open('$CONFIG_FILE','w') {|f| YAML.dump(Value, f)} rescue Exception => e puts '${LOGTIME} Game Proxy Merge Error: ' + e.message end" 2>/dev/null >> $LOG_FILE +fi } yml_rule_set_add() @@ -719,7 +740,6 @@ if [ ! -f "$RAW_CONFIG_FILE" ]; then if [ -n "$subscribe_info" ]; then echo "配置文件不存在,您已设置订阅信息,准备开始下载..." >$START_LOG sleep 3 - kill_clash nohup /usr/share/openclash/openclash.sh & del_lock exit 0 @@ -735,19 +755,44 @@ fi #创建启动配置 #rm -rf "/etc/openclash/*.y*" 2>/dev/null cp "$RAW_CONFIG_FILE" "$CONFIG_FILE" -CONFIG_HASH=$(ruby -ryaml -E UTF-8 -e "puts YAML.load_file('$CONFIG_FILE')" 2>/dev/null) -if [ -z "$CONFIG_HASH" ] || [ "$CONFIG_HASH" = "false" ]; then - if [ -z "$CONFIG_HASH" ]; then - ruby -ryaml -E UTF-8 -e "puts YAML.load_file('$CONFIG_FILE')" >> $LOG_FILE - fi - echo "配置文件校验失败,请检查配置文件后重试!" >$START_LOG - echo "${LOGTIME} Error: Unable To Parse Config File, Please Check And Try Again!" >> $LOG_FILE - rm -rf $CONFIG_FILE 2>/dev/null +ruby -ryaml -E UTF-8 -e " +begin +YAML.load_file('$RAW_CONFIG_FILE'); +rescue Exception => e +puts '${LOGTIME} Error: Unable To Parse Config File ' + e.message +system 'rm -rf ${CONFIG_FILE} 2>/dev/null' +end +" 2>/dev/null >> $LOG_FILE +if [ $? -ne 0 ]; then + echo "${LOGTIME} Error: Ruby Works Abnormally, Please Check The Ruby Library Depends And Try Again!" >> $LOG_FILE + echo "Ruby依赖异常,请确认ruby依赖工作正常后重试!" > $START_LOG + sleep 3 + start_fail +elif [ ! -f "$CONFIG_FILE" ] || [ ! -s "$CONFIG_FILE" ]; then + echo "配置文件校验失败,请检查配置文件后重试!" > $START_LOG sleep 3 start_fail fi } +yml_other_rules_get() +{ + local section="$1" + local enabled config + config_get_bool "enabled" "$section" "enabled" "1" + config_get "config" "$section" "config" "" + + if [ "$enabled" = "0" ] || [ "$config" != "$2" ]; then + return + fi + + if [ -n "$rule_name" ]; then + return + fi + + config_get "rule_name" "$section" "rule_name" "" +} + #运行模式处理 do_run_mode() { @@ -792,11 +837,17 @@ do_run_file() tun_core_path="/etc/openclash/core/clash_tun" game_core_path="/etc/openclash/core/clash_game" geoip_path="/etc/openclash/Country.mmdb" + chnr_path="/etc/openclash/china_ip_route.ipset" + rm -rf "/tmp/etc/openclash" 2>/dev/null else dev_core_path="/tmp/etc/openclash/core/clash" tun_core_path="/tmp/etc/openclash/core/clash_tun" game_core_path="/tmp/etc/openclash/core/clash_game" geoip_path="/tmp/etc/openclash/Country.mmdb" + chnr_path="/tmp/etc/openclash/china_ip_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/core" 2>/dev/null fi rm -rf "/etc/openclash/clash" 2>/dev/null @@ -812,12 +863,19 @@ do_run_file() core_type="Game" core_start_log="检测到配置了【Game】内核专属功能,调用【Game】内核启动..." fi + + if [ "$rule_source" != "0" ]; then + config_load "openclash" + config_foreach yml_other_rules_get "other_rules" "$CONFIG_NAME" + fi - if [ "$proxy_mode" = "script" ] || [ "$rule_source" = "ConnersHua" ] || [ "$rule_source" = "lhie1" ] || [ -n "$(ruby_read "$CONFIG_FILE" "['rules'].grep(/^RULE-SET,/)")" ]; then - rm -rf "/etc/openclash/clash" 2>/dev/null - ln -s "$tun_core_path" /etc/openclash/clash 2>/dev/null - core_type="Tun" - core_start_log="检测到配置了【Tun】内核专属功能,调用【Tun】内核启动..." + if [ "$proxy_mode" = "script" ] || [ "$rule_name" = "ConnersHua" ] || [ "$rule_name" = "lhie1" ] || [ -n "$(ruby_read "$CONFIG_FILE" "['rules'].grep(/^RULE-SET,/)")" ]; then + if [ "$en_mode_tun" != "2" ]; then + rm -rf "/etc/openclash/clash" 2>/dev/null + ln -s "$tun_core_path" /etc/openclash/clash 2>/dev/null + core_type="Tun" + core_start_log="检测到配置了【Tun】内核专属功能,调用【Tun】内核启动..." + fi fi if [ ! -f "/etc/openclash/clash" ] && [ -f "$dev_core_path" ] && [ -z "$core_type" ]; then @@ -841,31 +899,45 @@ do_run_file() [ ! -x "$tun_core_path" ] && chmod 4755 "$tun_core_path" 2>/dev/null [ ! -x "$game_core_path" ] && chmod 4755 "$game_core_path" 2>/dev/null [ ! -x "$dev_core_path" ] && chmod 4755 "$dev_core_path" 2>/dev/null - + +#文件检查 [ -f "$geoip_path" ] && [ "$small_flash_memory" = "1" ] && { - rm -rf "/etc/openclash/Country.mmdb" 2>/dev/null ln -s "$geoip_path" /etc/openclash/Country.mmdb 2>/dev/null } + + [ -f "$chnr_path" ] && [ "$small_flash_memory" = "1" ] && { + ln -s "$chnr_path" /etc/openclash/china_ip_route.ipset 2>/dev/null + } [ ! -f "$geoip_path" ] && { echo "检测到GEOIP数据库文件不存在,准备开始下载..." >$START_LOG - sleep 3 - kill_clash + nofile=1 nohup /usr/share/openclash/openclash_ipdb.sh & - del_lock - exit 0 } [ ! -f "$CLASH" ] && { echo "检测到内核文件不存在,准备开始下载..." >$START_LOG - sleep 3 + nofile=1 rm -rf "/tmp/clash_last_version" 2>/dev/null - kill_clash nohup /usr/share/openclash/openclash_core.sh "$core_type" & - del_lock - exit 0 } + if [ "$china_ip_route" = "1" ]; then + if [ ! -f "$chnr_path" ]; then + echo "检测到大陆白名单列表不存在,准备开始下载..." >$START_LOG + nofile=1 + nohup /usr/share/openclash/openclash_chnroute.sh & + else + ipset -! flush china_ip_route 2>/dev/null + ipset -! restore /dev/null + fi + fi + + if [ "$nofile" = "1" ]; then + del_lock + exit 0 + fi + if ! capsh --is-uid=0 >/dev/null || ! capsh --has-ambient >/dev/null; then echo "错误:Capsh异常,请尝试重新安装依赖【libcap】和相应的Capsh库,终止启动..." >$START_LOG echo "${LOGTIME} Error: Could Not Load The Capsh Library, Please Verify The Capsh Shell Library Work Well" >> $LOG_FILE @@ -1130,7 +1202,7 @@ firewall_redirect_exclude() set_firewall() { -if [ "$(iptables -t nat -nL PREROUTING --line-number |grep "udp dpt:53" |grep "0.0.0.0/0 \{0,\}0.0.0.0/0" |wc -l)" -gt 1 ] && [ "$enable_redirect_dns" -eq "1" ]; then +if [ "$(iptables -t nat -nL PREROUTING --line-number |grep "udp dpt:53" |grep "0.0.0.0/0 \{0,\}0.0.0.0/0" |wc -l)" -gt 1 ] && [ "$enable_redirect_dns" -eq 1 ]; then echo "发现53端口被劫持,清理防火墙规则..." >$START_LOG pre_lines=$(iptables -nvL PREROUTING -t nat |sed 1,2d |sed -n '/0.0.0.0\/0 \{0,\}0.0.0.0\/0 \{0,\}udp dpt:53/=' 2>/dev/null |sort -rn) for pre_line in $pre_lines; do @@ -1138,6 +1210,9 @@ if [ "$(iptables -t nat -nL PREROUTING --line-number |grep "udp dpt:53" |grep "0 done iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53 >/dev/null 2>&1 sleep 2 +elif [ "$enable_redirect_dns" -eq 1 ] && [ -z "$(iptables -t nat -nL PREROUTING --line-number |grep "redir ports 53$")"]; then + iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53 + iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53 fi if [ -z "$(uci get firewall.openclash 2>/dev/null)" ] || [ -z "$(uci get ucitrack.@openclash[-1].init 2>/dev/null)" ]; then @@ -1163,21 +1238,6 @@ cat > "/var/etc/openclash.include" <<-EOF /etc/init.d/openclash reload >/dev/null 2>&1 EOF -if [ "$china_ip_route" = "1" ]; then - if [ ! -f "/usr/share/openclash/res/china_ip_route.ipset" ]; then - cp /etc/openclash/rule_provider/ChinaIP.yaml /tmp/china_ip_route.list 2>/dev/null - sed -i "s/'//g" /tmp/china_ip_route.list 2>/dev/null - sed -i "s/^ \{0,\}- //g" /tmp/china_ip_route.list 2>/dev/null - sed -i '/payload:/d' /tmp/china_ip_route.list 2>/dev/null - sed -i '/^ \{0,\}#/d' /tmp/china_ip_route.list 2>/dev/null - echo "create china_ip_route hash:net family inet hashsize 1024 maxelem 65536" >/usr/share/openclash/res/china_ip_route.ipset - awk '!/^$/&&!/^#/{printf("add china_ip_route %s'" "'\n",$0)}' /tmp/china_ip_route.list >>/usr/share/openclash/res/china_ip_route.ipset - rm -rf /tmp/china_ip_route.list 2>/dev/null - fi - ipset -! flush china_ip_route 2>/dev/null - ipset -! restore /dev/null -fi - #lan_ac if [ "$operation_mode" = "redir-host" ] && [ "$en_mode" = "redir-host" ]; then if [ "$lan_ac_mode" = "0" ]; then @@ -1229,6 +1289,13 @@ fi done fi +#common ports +common_port="21 22 23 53 80 123 143 194 443 465 587 853 993 995 998 2052 2053 2082 2083 2086 2095 2096 5222 5228 5229 5230 8080 8443 8880 8888 8889" +ipset create common_ports bitmap:port range 0-65535 +for i in $common_port; do + ipset add common_ports $i +done + if [ -z "$en_mode_tun" ] || [ "$en_mode_tun" -eq 3 ]; then #tcp iptables -t nat -N openclash @@ -1240,12 +1307,15 @@ if [ -z "$en_mode_tun" ] || [ "$en_mode_tun" -eq 3 ]; then iptables -t nat -A openclash -m set ! --match-set lan_ac_white_macs src -j RETURN >/dev/null 2>&1 iptables -t nat -A openclash -m set ! --match-set lan_ac_white_ips src -j RETURN >/dev/null 2>&1 if [ "$en_mode" = "redir-host" ]; then + if [ "$common_ports" = "1" ]; then + iptables -t nat -A openclash -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + fi iptables -t nat -A openclash -m set --match-set china_ip_route dst -j RETURN >/dev/null 2>&1 fi iptables -t nat -A openclash -p tcp -j REDIRECT --to-ports "$proxy_port" if [ -z "$en_mode_tun" ]; then - iptables -t nat -I PREROUTING -p tcp -d 8.8.8.8 -j REDIRECT --to-ports "$proxy_port" - iptables -t nat -I PREROUTING -p tcp -d 8.8.4.4 -j REDIRECT --to-ports "$proxy_port" + iptables -t nat -I PREROUTING -p tcp -d 8.8.8.8 --dport 53 -j REDIRECT --to-ports "$proxy_port" + iptables -t nat -I PREROUTING -p tcp -d 8.8.4.4 --dport 53 -j REDIRECT --to-ports "$proxy_port" fi iptables -t nat -A PREROUTING -p tcp -j openclash if [ -z "$en_mode_tun" ]; then @@ -1263,6 +1333,9 @@ if [ -z "$en_mode_tun" ] || [ "$en_mode_tun" -eq 3 ]; then iptables -t mangle -A openclash -m set ! --match-set lan_ac_white_ips src -j RETURN >/dev/null 2>&1 iptables -t mangle -A openclash -m set ! --match-set lan_ac_white_macs src -j RETURN >/dev/null 2>&1 if [ "$en_mode" = "redir-host" ]; then + if [ "$common_ports" = "1" ]; then + iptables -t mangle -A openclash -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + fi iptables -t mangle -A openclash -m set --match-set china_ip_route dst -j RETURN >/dev/null 2>&1 fi iptables -t mangle -A openclash -p udp --dport 53 -j RETURN >/dev/null 2>&1 @@ -1271,17 +1344,26 @@ if [ -z "$en_mode_tun" ] || [ "$en_mode_tun" -eq 3 ]; then fi fi - #if [ "$en_mode" = "fake-ip" ]; then - iptables -t nat -N openclash_output - iptables -t nat -F openclash_output - iptables -t nat -A openclash_output -m set --match-set localnetwork dst -j RETURN - #iptables -t nat -A openclash_output -p tcp -d 198.18.0.0/16 -j REDIRECT --to-ports "$proxy_port" - iptables -t nat -A openclash_output -m owner ! --uid-owner 65534 -p tcp -m multiport --dport 80,443 -j REDIRECT --to-ports "$proxy_port" - if [ "$en_mode" = "fake-ip" ]; then + iptables -t nat -N openclash_output + iptables -t nat -F openclash_output + iptables -t nat -A openclash_output -m set --match-set localnetwork dst -j RETURN + if [ "$en_mode" = "fake-ip" ]; then + if [ "$intranet_allowed" -eq 1 ]; then + iptables -t nat -A openclash_output -m owner ! --uid-owner 65534 -p tcp -d 198.18.0.0/16 -j DNAT --to-destination "$lan_ip:$proxy_port" + else iptables -t nat -A openclash_output -m owner ! --uid-owner 65534 -p tcp -d 198.18.0.0/16 -j REDIRECT --to-ports "$proxy_port" fi - iptables -t nat -I OUTPUT -j openclash_output - #fi + fi + iptables -t nat -A openclash_output -m owner ! --uid-owner 65534 -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + if [ "$en_mode" = "redir-host" ]; then + iptables -t mangle -A openclash -m set --match-set china_ip_route dst -j RETURN >/dev/null 2>&1 + fi + if [ "$intranet_allowed" -eq 1 ]; then + iptables -t nat -A openclash_output -m owner ! --uid-owner 65534 -p tcp -j DNAT --to-destination "$lan_ip:$proxy_port" + else + iptables -t nat -A openclash_output -m owner ! --uid-owner 65534 -p tcp -j REDIRECT --to-ports "$proxy_port" + fi + iptables -t nat -I OUTPUT -j openclash_output #if [ "$ipv6_enable" -eq 1 ]; then # #tcp @@ -1333,17 +1415,20 @@ if [ -n "$en_mode_tun" ]; then iptables -t mangle -F openclash_output iptables -t mangle -A openclash_output -m set --match-set localnetwork dst -j RETURN if [ "$en_mode_tun" -ne 3 ]; then - iptables -t mangle -A openclash_output -m owner ! --uid-owner 65534 -p tcp -m multiport --dport 80,443 -j MARK --set-mark "$PROXY_FWMARK" iptables -t mangle -A openclash_output -m owner ! --uid-owner 65534 -d 198.18.0.0/16 -j MARK --set-mark "$PROXY_FWMARK" + iptables -t mangle -A openclash_output -m owner ! --uid-owner 65534 -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + iptables -t mangle -A openclash_output -m owner ! --uid-owner 65534 -p tcp -j MARK --set-mark "$PROXY_FWMARK" else 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 + fi iptables -t mangle -I OUTPUT -j openclash_output elif [ "$en_mode" = "redir-host" ] && [ "$en_mode_tun" -ne 3 ]; then iptables -t mangle -N openclash_output iptables -t mangle -F openclash_output iptables -t mangle -A openclash_output -m set --match-set localnetwork dst -j RETURN - iptables -t mangle -A openclash_output -m owner ! --uid-owner 65534 -p tcp -m multiport --dport 80,443 -j MARK --set-mark "$PROXY_FWMARK" + iptables -t mangle -A openclash_output -m owner ! --uid-owner 65534 -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + iptables -t mangle -A openclash -m set --match-set china_ip_route dst -j RETURN >/dev/null 2>&1 + 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 fi @@ -1359,6 +1444,9 @@ if [ -n "$en_mode_tun" ]; then iptables -t mangle -A openclash -m set ! --match-set lan_ac_white_ips src -j RETURN >/dev/null 2>&1 iptables -t mangle -A openclash -m set ! --match-set lan_ac_white_macs src -j RETURN >/dev/null 2>&1 if [ "$en_mode" = "redir-host" ]; then + if [ "$common_ports" = "1" ]; then + iptables -t mangle -A openclash -m set ! --match-set common_ports dst -j RETURN >/dev/null 2>&1 + fi iptables -t mangle -A openclash -m set --match-set china_ip_route dst -j RETURN >/dev/null 2>&1 fi iptables -t mangle -A openclash -j MARK --set-mark "$PROXY_FWMARK" @@ -1371,14 +1459,22 @@ if [ -n "$en_mode_tun" ]; then iptables -t mangle -A openclash_dns_hijack -d 8.8.8.8 -j MARK --set-mark "$PROXY_FWMARK" iptables -t mangle -A openclash_dns_hijack -d 8.8.4.4 -j MARK --set-mark "$PROXY_FWMARK" iptables -t mangle -I PREROUTING -p udp -j openclash - iptables -t nat -I PREROUTING -p tcp -d 8.8.8.8 -j ACCEPT - iptables -t nat -I PREROUTING -p tcp -d 8.8.4.4 -j ACCEPT + iptables -t nat -I PREROUTING -p tcp --dport 53 -d 8.8.8.8 -j ACCEPT + iptables -t nat -I PREROUTING -p tcp --dport 53 -d 8.8.4.4 -j ACCEPT fi #ipv6 # if [ "$ipv6_enable" -eq 1 ]; then # ip6tables -t mangle -I PREROUTING -j MARK --set-mark "$PROXY_FWMARK" # fi + + #snat routerself for tun while bindaddress enable + if [ "$en_mode_tun" -ne 3 ] && [ "$intranet_allowed" -eq 1 ]; then + iptables -t nat -N openclash_post + iptables -t nat -F openclash_post + iptables -t nat -A openclash_post -m owner ! --uid-owner 65534 -i lo -d 127.0.0.1 -j SNAT --to-source "$lan_ip" + iptables -t nat -A POSTROUTING -j openclash_post + fi fi #端口转发 @@ -1436,6 +1532,10 @@ revert_firewall() iptables -t nat -F openclash_output >/dev/null 2>&1 iptables -t nat -X openclash_output >/dev/null 2>&1 + + iptables -t nat -F openclash_post >/dev/null 2>&1 + iptables -t nat -X openclash_post >/dev/null 2>&1 + iptables -t nat -D POSTROUTING -j openclash_post >/dev/null 2>&1 ip6tables -t nat -F openclash >/dev/null 2>&1 ip6tables -t nat -D PREROUTING -p tcp -j openclash >/dev/null 2>&1 @@ -1468,6 +1568,7 @@ revert_firewall() ipset destroy lan_ac_white_macs >/dev/null 2>&1 ipset destroy lan_ac_black_macs >/dev/null 2>&1 ipset destroy wan_ac_black_ips >/dev/null 2>&1 + ipset destroy common_ports >/dev/null 2>&1 } get_config() @@ -1498,6 +1599,7 @@ get_config() small_flash_memory=$(uci get openclash.config.small_flash_memory 2>/dev/null) mixed_port=$(uci get openclash.config.mixed_port 2>/dev/null) interface_name=$(uci get openclash.config.interface_name 2>/dev/null) + common_ports=$(uci get openclash.config.common_ports 2>/dev/null) uci set openclash.config.restricted_mode=0 && uci commit openclash } @@ -1527,7 +1629,7 @@ start() yml_auth_custom "$CONFIG_FILE" yml_dns_custom "$enable_custom_dns" "$CONFIG_FILE" /usr/share/openclash/yml_change.sh 2>/dev/null "$LOGTIME" "$en_mode" "$enable_custom_dns" "$da_password" "$cn_port" "$proxy_port" "$CONFIG_FILE" "$ipv6_enable" "$http_port" "$socks_port" "$lan_ip" "$log_level" "$proxy_mode" "$intranet_allowed" "$en_mode_tun" "$stack_type" "$dns_port" "$core_type" "$mixed_port" - /usr/share/openclash/yml_rules_change.sh 2>/dev/null "$LOGTIME" "$rule_source" "$enable_custom_clash_rules" "$CONFIG_FILE" "$set_rule_file" "$en_mode" "$enable_rule_proxy" "$RAW_CONFIG_FILE" "$RULE_PROVIDER_FILE" + /usr/share/openclash/yml_rules_change.sh 2>/dev/null "$LOGTIME" "$rule_source" "$enable_custom_clash_rules" "$CONFIG_FILE" "$enable_rule_proxy" "$CONFIG_NAME" yml_custom_rule_provider yml_game_custom yml_provider_path "$CONFIG_FILE" "proxy-providers" "proxy_provider" diff --git a/package/ctcgfw/luci-app-openclash/root/etc/openclash/china_ip_route.ipset b/package/ctcgfw/luci-app-openclash/root/etc/openclash/china_ip_route.ipset new file mode 100644 index 0000000000..3f713bad66 --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/root/etc/openclash/china_ip_route.ipset @@ -0,0 +1,8579 @@ +create china_ip_route hash:net family inet hashsize 1024 maxelem 65536 +add china_ip_route 1.0.1.0/24 +add china_ip_route 1.0.2.0/23 +add china_ip_route 1.0.8.0/21 +add china_ip_route 1.0.32.0/19 +add china_ip_route 1.1.0.0/24 +add china_ip_route 1.1.2.0/23 +add china_ip_route 1.1.4.0/22 +add china_ip_route 1.1.8.0/24 +add china_ip_route 1.1.9.0/24 +add china_ip_route 1.1.10.0/23 +add china_ip_route 1.1.12.0/22 +add china_ip_route 1.1.16.0/20 +add china_ip_route 1.1.32.0/19 +add china_ip_route 1.2.0.0/23 +add china_ip_route 1.2.2.0/24 +add china_ip_route 1.2.4.0/24 +add china_ip_route 1.2.5.0/24 +add china_ip_route 1.2.6.0/23 +add china_ip_route 1.2.8.0/24 +add china_ip_route 1.2.9.0/24 +add china_ip_route 1.2.10.0/23 +add china_ip_route 1.2.12.0/22 +add china_ip_route 1.2.16.0/20 +add china_ip_route 1.2.32.0/19 +add china_ip_route 1.2.64.0/18 +add china_ip_route 1.3.0.0/16 +add china_ip_route 1.4.1.0/24 +add china_ip_route 1.4.2.0/23 +add china_ip_route 1.4.4.0/24 +add china_ip_route 1.4.5.0/24 +add china_ip_route 1.4.6.0/23 +add china_ip_route 1.4.8.0/21 +add china_ip_route 1.4.16.0/20 +add china_ip_route 1.4.32.0/19 +add china_ip_route 1.4.64.0/18 +add china_ip_route 1.8.0.0/16 +add china_ip_route 1.10.0.0/21 +add china_ip_route 1.10.8.0/23 +add china_ip_route 1.10.11.0/24 +add china_ip_route 1.10.12.0/22 +add china_ip_route 1.10.16.0/20 +add china_ip_route 1.10.32.0/19 +add china_ip_route 1.10.64.0/18 +add china_ip_route 1.12.0.0/14 +add china_ip_route 1.24.0.0/13 +add china_ip_route 1.45.0.0/16 +add china_ip_route 1.48.0.0/15 +add china_ip_route 1.50.0.0/16 +add china_ip_route 1.51.0.0/16 +add china_ip_route 1.56.0.0/13 +add china_ip_route 1.68.0.0/14 +add china_ip_route 1.80.0.0/13 +add china_ip_route 1.88.0.0/14 +add china_ip_route 1.92.0.0/15 +add china_ip_route 1.94.0.0/15 +add china_ip_route 1.116.0.0/15 +add china_ip_route 1.118.0.0/16 +add china_ip_route 1.119.0.0/17 +add china_ip_route 1.119.128.0/17 +add china_ip_route 1.180.0.0/14 +add china_ip_route 1.184.0.0/15 +add china_ip_route 1.188.0.0/14 +add china_ip_route 1.192.0.0/13 +add china_ip_route 1.202.0.0/15 +add china_ip_route 1.204.0.0/14 +add china_ip_route 14.0.0.0/21 +add china_ip_route 14.0.12.0/22 +add china_ip_route 14.1.0.0/22 +add china_ip_route 14.1.24.0/22 +add china_ip_route 14.1.96.0/22 +add china_ip_route 14.1.108.0/22 +add china_ip_route 14.16.0.0/12 +add china_ip_route 14.102.128.0/22 +add china_ip_route 14.102.156.0/22 +add china_ip_route 14.102.180.0/22 +add china_ip_route 14.103.0.0/16 +add china_ip_route 14.104.0.0/13 +add china_ip_route 14.112.0.0/12 +add china_ip_route 14.130.0.0/15 +add china_ip_route 14.134.0.0/15 +add china_ip_route 14.144.0.0/12 +add china_ip_route 14.192.60.0/22 +add china_ip_route 14.192.76.0/22 +add china_ip_route 14.196.0.0/15 +add china_ip_route 14.204.0.0/15 +add china_ip_route 14.208.0.0/12 +add china_ip_route 27.0.128.0/22 +add china_ip_route 27.0.132.0/22 +add china_ip_route 27.0.160.0/22 +add china_ip_route 27.0.164.0/22 +add china_ip_route 27.0.188.0/22 +add china_ip_route 27.0.204.0/22 +add china_ip_route 27.0.208.0/22 +add china_ip_route 27.0.212.0/22 +add china_ip_route 27.8.0.0/13 +add china_ip_route 27.16.0.0/12 +add china_ip_route 27.34.232.0/21 +add china_ip_route 27.36.0.0/14 +add china_ip_route 27.40.0.0/13 +add china_ip_route 27.50.40.0/21 +add china_ip_route 27.50.128.0/17 +add china_ip_route 27.54.72.0/21 +add china_ip_route 27.54.152.0/21 +add china_ip_route 27.54.192.0/18 +add china_ip_route 27.98.208.0/20 +add china_ip_route 27.98.224.0/19 +add china_ip_route 27.99.128.0/17 +add china_ip_route 27.103.0.0/16 +add china_ip_route 27.106.128.0/18 +add china_ip_route 27.106.204.0/22 +add china_ip_route 27.109.32.0/19 +add china_ip_route 27.109.124.0/22 +add china_ip_route 27.112.0.0/18 +add china_ip_route 27.112.80.0/20 +add china_ip_route 27.112.112.0/22 +add china_ip_route 27.112.116.0/22 +add china_ip_route 27.113.128.0/18 +add china_ip_route 27.115.0.0/17 +add china_ip_route 27.116.44.0/22 +add china_ip_route 27.121.72.0/21 +add china_ip_route 27.121.120.0/21 +add china_ip_route 27.128.0.0/15 +add china_ip_route 27.131.220.0/22 +add china_ip_route 27.144.0.0/16 +add china_ip_route 27.148.0.0/14 +add china_ip_route 27.152.0.0/13 +add china_ip_route 27.184.0.0/13 +add china_ip_route 27.192.0.0/11 +add china_ip_route 27.224.0.0/14 +add china_ip_route 36.0.0.0/22 +add china_ip_route 36.0.8.0/21 +add china_ip_route 36.0.16.0/20 +add china_ip_route 36.0.32.0/19 +add china_ip_route 36.0.64.0/18 +add china_ip_route 36.0.128.0/17 +add china_ip_route 36.1.0.0/16 +add china_ip_route 36.4.0.0/14 +add china_ip_route 36.16.0.0/12 +add china_ip_route 36.32.0.0/14 +add china_ip_route 36.36.0.0/16 +add china_ip_route 36.37.0.0/19 +add china_ip_route 36.37.36.0/23 +add china_ip_route 36.37.39.0/24 +add china_ip_route 36.37.40.0/21 +add china_ip_route 36.37.48.0/20 +add china_ip_route 36.40.0.0/13 +add china_ip_route 36.48.0.0/15 +add china_ip_route 36.51.0.0/16 +add china_ip_route 36.56.0.0/13 +add china_ip_route 36.96.0.0/11 +add china_ip_route 36.128.0.0/10 +add china_ip_route 36.192.0.0/11 +add china_ip_route 36.248.0.0/14 +add china_ip_route 36.254.0.0/16 +add china_ip_route 36.255.116.0/22 +add china_ip_route 36.255.128.0/22 +add china_ip_route 36.255.164.0/22 +add china_ip_route 36.255.172.0/22 +add china_ip_route 36.255.176.0/22 +add china_ip_route 39.0.0.0/24 +add china_ip_route 39.0.2.0/23 +add china_ip_route 39.0.4.0/22 +add china_ip_route 39.0.8.0/21 +add china_ip_route 39.0.16.0/20 +add china_ip_route 39.0.32.0/19 +add china_ip_route 39.0.64.0/18 +add china_ip_route 39.0.128.0/17 +add china_ip_route 39.64.0.0/11 +add china_ip_route 39.96.0.0/13 +add china_ip_route 39.104.0.0/14 +add china_ip_route 39.108.0.0/16 +add china_ip_route 39.128.0.0/10 +add china_ip_route 40.72.0.0/15 +add china_ip_route 40.125.128.0/17 +add china_ip_route 40.126.64.0/18 +add china_ip_route 42.0.0.0/22 +add china_ip_route 42.0.8.0/21 +add china_ip_route 42.0.16.0/21 +add china_ip_route 42.0.24.0/22 +add china_ip_route 42.0.32.0/19 +add china_ip_route 42.0.128.0/17 +add china_ip_route 42.1.0.0/19 +add china_ip_route 42.1.32.0/20 +add china_ip_route 42.1.48.0/21 +add china_ip_route 42.1.56.0/22 +add china_ip_route 42.1.128.0/17 +add china_ip_route 42.4.0.0/14 +add china_ip_route 42.48.0.0/15 +add china_ip_route 42.50.0.0/16 +add china_ip_route 42.51.0.0/16 +add china_ip_route 42.52.0.0/14 +add china_ip_route 42.56.0.0/14 +add china_ip_route 42.62.0.0/17 +add china_ip_route 42.62.128.0/19 +add china_ip_route 42.62.160.0/20 +add china_ip_route 42.62.180.0/22 +add china_ip_route 42.62.184.0/21 +add china_ip_route 42.63.0.0/16 +add china_ip_route 42.80.0.0/15 +add china_ip_route 42.83.64.0/20 +add china_ip_route 42.83.80.0/22 +add china_ip_route 42.83.88.0/21 +add china_ip_route 42.83.96.0/19 +add china_ip_route 42.83.128.0/17 +add china_ip_route 42.84.0.0/14 +add china_ip_route 42.88.0.0/13 +add china_ip_route 42.96.64.0/19 +add china_ip_route 42.96.96.0/21 +add china_ip_route 42.96.108.0/22 +add china_ip_route 42.96.112.0/20 +add china_ip_route 42.96.128.0/17 +add china_ip_route 42.97.0.0/16 +add china_ip_route 42.99.0.0/18 +add china_ip_route 42.99.64.0/19 +add china_ip_route 42.99.96.0/20 +add china_ip_route 42.99.112.0/22 +add china_ip_route 42.99.120.0/21 +add china_ip_route 42.100.0.0/14 +add china_ip_route 42.120.0.0/15 +add china_ip_route 42.122.0.0/16 +add china_ip_route 42.123.0.0/19 +add china_ip_route 42.123.36.0/22 +add china_ip_route 42.123.40.0/21 +add china_ip_route 42.123.48.0/20 +add china_ip_route 42.123.64.0/18 +add china_ip_route 42.123.128.0/17 +add china_ip_route 42.128.0.0/12 +add china_ip_route 42.156.0.0/19 +add china_ip_route 42.156.36.0/22 +add china_ip_route 42.156.40.0/21 +add china_ip_route 42.156.48.0/20 +add china_ip_route 42.156.64.0/18 +add china_ip_route 42.156.128.0/17 +add china_ip_route 42.157.0.0/16 +add china_ip_route 42.158.0.0/16 +add china_ip_route 42.159.0.0/16 +add china_ip_route 42.160.0.0/12 +add china_ip_route 42.176.0.0/13 +add china_ip_route 42.184.0.0/15 +add china_ip_route 42.186.0.0/16 +add china_ip_route 42.187.0.0/18 +add china_ip_route 42.187.64.0/19 +add china_ip_route 42.187.96.0/20 +add china_ip_route 42.187.112.0/21 +add china_ip_route 42.187.120.0/22 +add china_ip_route 42.187.128.0/17 +add china_ip_route 42.192.0.0/15 +add china_ip_route 42.194.0.0/21 +add china_ip_route 42.194.8.0/22 +add china_ip_route 42.194.12.0/22 +add china_ip_route 42.194.16.0/20 +add china_ip_route 42.194.32.0/19 +add china_ip_route 42.194.64.0/18 +add china_ip_route 42.194.128.0/17 +add china_ip_route 42.195.0.0/16 +add china_ip_route 42.196.0.0/14 +add china_ip_route 42.201.0.0/17 +add china_ip_route 42.202.0.0/15 +add china_ip_route 42.204.0.0/14 +add china_ip_route 42.208.0.0/12 +add china_ip_route 42.224.0.0/12 +add china_ip_route 42.240.0.0/17 +add china_ip_route 42.240.128.0/17 +add china_ip_route 42.242.0.0/15 +add china_ip_route 42.244.0.0/14 +add china_ip_route 42.248.0.0/13 +add china_ip_route 43.136.0.0/13 +add china_ip_route 43.144.0.0/12 +add china_ip_route 43.160.0.0/11 +add china_ip_route 43.224.12.0/22 +add china_ip_route 43.224.24.0/22 +add china_ip_route 43.224.44.0/22 +add china_ip_route 43.224.52.0/22 +add china_ip_route 43.224.56.0/22 +add china_ip_route 43.224.64.0/22 +add china_ip_route 43.224.68.0/22 +add china_ip_route 43.224.72.0/22 +add china_ip_route 43.224.80.0/22 +add china_ip_route 43.224.100.0/22 +add china_ip_route 43.224.144.0/22 +add china_ip_route 43.224.160.0/22 +add china_ip_route 43.224.176.0/22 +add china_ip_route 43.224.184.0/22 +add china_ip_route 43.224.200.0/22 +add china_ip_route 43.224.204.0/22 +add china_ip_route 43.224.208.0/22 +add china_ip_route 43.224.212.0/22 +add china_ip_route 43.224.216.0/22 +add china_ip_route 43.224.240.0/22 +add china_ip_route 43.225.76.0/22 +add china_ip_route 43.225.84.0/22 +add china_ip_route 43.225.120.0/22 +add china_ip_route 43.225.124.0/22 +add china_ip_route 43.225.140.0/22 +add china_ip_route 43.225.172.0/22 +add china_ip_route 43.225.180.0/22 +add china_ip_route 43.225.208.0/22 +add china_ip_route 43.225.216.0/22 +add china_ip_route 43.225.220.0/22 +add china_ip_route 43.225.224.0/22 +add china_ip_route 43.225.228.0/22 +add china_ip_route 43.225.232.0/22 +add china_ip_route 43.225.236.0/22 +add china_ip_route 43.225.240.0/22 +add china_ip_route 43.225.244.0/22 +add china_ip_route 43.225.252.0/22 +add china_ip_route 43.226.32.0/22 +add china_ip_route 43.226.36.0/22 +add china_ip_route 43.226.40.0/22 +add china_ip_route 43.226.44.0/22 +add china_ip_route 43.226.48.0/22 +add china_ip_route 43.226.52.0/22 +add china_ip_route 43.226.56.0/22 +add china_ip_route 43.226.60.0/22 +add china_ip_route 43.226.64.0/22 +add china_ip_route 43.226.68.0/22 +add china_ip_route 43.226.72.0/22 +add china_ip_route 43.226.76.0/22 +add china_ip_route 43.226.80.0/22 +add china_ip_route 43.226.84.0/22 +add china_ip_route 43.226.88.0/22 +add china_ip_route 43.226.92.0/22 +add china_ip_route 43.226.96.0/22 +add china_ip_route 43.226.100.0/22 +add china_ip_route 43.226.104.0/22 +add china_ip_route 43.226.108.0/22 +add china_ip_route 43.226.112.0/22 +add china_ip_route 43.226.116.0/22 +add china_ip_route 43.226.120.0/22 +add china_ip_route 43.226.128.0/22 +add china_ip_route 43.226.132.0/22 +add china_ip_route 43.226.136.0/22 +add china_ip_route 43.226.140.0/22 +add china_ip_route 43.226.144.0/22 +add china_ip_route 43.226.148.0/22 +add china_ip_route 43.226.152.0/22 +add china_ip_route 43.226.156.0/22 +add china_ip_route 43.226.160.0/22 +add china_ip_route 43.226.164.0/22 +add china_ip_route 43.226.168.0/22 +add china_ip_route 43.226.172.0/22 +add china_ip_route 43.226.176.0/22 +add china_ip_route 43.226.180.0/22 +add china_ip_route 43.226.184.0/22 +add china_ip_route 43.226.188.0/22 +add china_ip_route 43.226.192.0/22 +add china_ip_route 43.226.196.0/22 +add china_ip_route 43.226.200.0/22 +add china_ip_route 43.226.204.0/22 +add china_ip_route 43.226.208.0/22 +add china_ip_route 43.226.212.0/22 +add china_ip_route 43.226.236.0/22 +add china_ip_route 43.226.240.0/22 +add china_ip_route 43.226.244.0/22 +add china_ip_route 43.226.248.0/22 +add china_ip_route 43.226.252.0/22 +add china_ip_route 43.227.0.0/22 +add china_ip_route 43.227.4.0/22 +add china_ip_route 43.227.8.0/22 +add china_ip_route 43.227.32.0/22 +add china_ip_route 43.227.36.0/22 +add china_ip_route 43.227.40.0/22 +add china_ip_route 43.227.44.0/22 +add china_ip_route 43.227.48.0/22 +add china_ip_route 43.227.52.0/22 +add china_ip_route 43.227.56.0/22 +add china_ip_route 43.227.60.0/22 +add china_ip_route 43.227.64.0/22 +add china_ip_route 43.227.68.0/22 +add china_ip_route 43.227.72.0/22 +add china_ip_route 43.227.76.0/22 +add china_ip_route 43.227.80.0/22 +add china_ip_route 43.227.84.0/22 +add china_ip_route 43.227.88.0/22 +add china_ip_route 43.227.92.0/22 +add china_ip_route 43.227.96.0/22 +add china_ip_route 43.227.100.0/22 +add china_ip_route 43.227.104.0/22 +add china_ip_route 43.227.136.0/22 +add china_ip_route 43.227.140.0/22 +add china_ip_route 43.227.144.0/22 +add china_ip_route 43.227.152.0/22 +add china_ip_route 43.227.156.0/22 +add china_ip_route 43.227.160.0/22 +add china_ip_route 43.227.164.0/22 +add china_ip_route 43.227.168.0/22 +add china_ip_route 43.227.172.0/22 +add china_ip_route 43.227.176.0/22 +add china_ip_route 43.227.180.0/22 +add china_ip_route 43.227.188.0/22 +add china_ip_route 43.227.192.0/22 +add china_ip_route 43.227.196.0/22 +add china_ip_route 43.227.200.0/22 +add china_ip_route 43.227.204.0/22 +add china_ip_route 43.227.208.0/22 +add china_ip_route 43.227.212.0/22 +add china_ip_route 43.227.216.0/22 +add china_ip_route 43.227.220.0/22 +add china_ip_route 43.227.232.0/22 +add china_ip_route 43.227.248.0/22 +add china_ip_route 43.227.252.0/22 +add china_ip_route 43.228.0.0/22 +add china_ip_route 43.228.4.0/22 +add china_ip_route 43.228.8.0/22 +add china_ip_route 43.228.12.0/22 +add china_ip_route 43.228.16.0/22 +add china_ip_route 43.228.20.0/22 +add china_ip_route 43.228.24.0/22 +add china_ip_route 43.228.28.0/22 +add china_ip_route 43.228.32.0/22 +add china_ip_route 43.228.36.0/22 +add china_ip_route 43.228.40.0/22 +add china_ip_route 43.228.44.0/22 +add china_ip_route 43.228.48.0/22 +add china_ip_route 43.228.52.0/22 +add china_ip_route 43.228.56.0/22 +add china_ip_route 43.228.60.0/22 +add china_ip_route 43.228.64.0/22 +add china_ip_route 43.228.68.0/22 +add china_ip_route 43.228.76.0/22 +add china_ip_route 43.228.100.0/22 +add china_ip_route 43.228.116.0/22 +add china_ip_route 43.228.120.0/22 +add china_ip_route 43.228.132.0/22 +add china_ip_route 43.228.136.0/22 +add china_ip_route 43.228.148.0/22 +add china_ip_route 43.228.152.0/22 +add china_ip_route 43.228.188.0/22 +add china_ip_route 43.229.40.0/22 +add china_ip_route 43.229.48.0/22 +add china_ip_route 43.229.56.0/22 +add china_ip_route 43.229.96.0/22 +add china_ip_route 43.229.120.0/22 +add china_ip_route 43.229.136.0/22 +add china_ip_route 43.229.140.0/22 +add china_ip_route 43.229.144.0/22 +add china_ip_route 43.229.168.0/22 +add china_ip_route 43.229.172.0/22 +add china_ip_route 43.229.176.0/22 +add china_ip_route 43.229.180.0/22 +add china_ip_route 43.229.184.0/22 +add china_ip_route 43.229.188.0/22 +add china_ip_route 43.229.192.0/22 +add china_ip_route 43.229.196.0/22 +add china_ip_route 43.229.216.0/22 +add china_ip_route 43.229.220.0/22 +add china_ip_route 43.229.232.0/22 +add china_ip_route 43.229.236.0/22 +add china_ip_route 43.230.20.0/22 +add china_ip_route 43.230.32.0/22 +add china_ip_route 43.230.68.0/22 +add china_ip_route 43.230.72.0/22 +add china_ip_route 43.230.84.0/22 +add china_ip_route 43.230.124.0/22 +add china_ip_route 43.230.136.0/22 +add china_ip_route 43.230.220.0/22 +add china_ip_route 43.230.224.0/22 +add china_ip_route 43.230.228.0/22 +add china_ip_route 43.230.232.0/22 +add china_ip_route 43.230.236.0/22 +add china_ip_route 43.230.240.0/22 +add china_ip_route 43.230.244.0/22 +add china_ip_route 43.230.248.0/22 +add china_ip_route 43.230.252.0/22 +add china_ip_route 43.231.32.0/22 +add china_ip_route 43.231.36.0/22 +add china_ip_route 43.231.40.0/22 +add china_ip_route 43.231.44.0/22 +add china_ip_route 43.231.80.0/22 +add china_ip_route 43.231.84.0/22 +add china_ip_route 43.231.88.0/22 +add china_ip_route 43.231.92.0/22 +add china_ip_route 43.231.96.0/22 +add china_ip_route 43.231.100.0/22 +add china_ip_route 43.231.104.0/22 +add china_ip_route 43.231.108.0/22 +add china_ip_route 43.231.136.0/22 +add china_ip_route 43.231.140.0/22 +add china_ip_route 43.231.144.0/22 +add china_ip_route 43.231.148.0/22 +add china_ip_route 43.231.152.0/22 +add china_ip_route 43.231.156.0/22 +add china_ip_route 43.231.160.0/22 +add china_ip_route 43.231.164.0/22 +add china_ip_route 43.231.168.0/22 +add china_ip_route 43.231.172.0/22 +add china_ip_route 43.231.176.0/22 +add china_ip_route 43.231.180.0/22 +add china_ip_route 43.236.0.0/22 +add china_ip_route 43.236.4.0/22 +add china_ip_route 43.236.8.0/22 +add china_ip_route 43.236.12.0/22 +add china_ip_route 43.236.16.0/22 +add china_ip_route 43.236.20.0/22 +add china_ip_route 43.236.24.0/22 +add china_ip_route 43.236.28.0/22 +add china_ip_route 43.236.32.0/22 +add china_ip_route 43.236.36.0/22 +add china_ip_route 43.236.40.0/22 +add china_ip_route 43.236.44.0/22 +add china_ip_route 43.236.48.0/22 +add china_ip_route 43.236.52.0/22 +add china_ip_route 43.236.56.0/22 +add china_ip_route 43.236.60.0/22 +add china_ip_route 43.236.64.0/22 +add china_ip_route 43.236.68.0/22 +add china_ip_route 43.236.72.0/22 +add china_ip_route 43.236.76.0/22 +add china_ip_route 43.236.80.0/22 +add china_ip_route 43.236.84.0/22 +add china_ip_route 43.236.88.0/22 +add china_ip_route 43.236.92.0/22 +add china_ip_route 43.236.96.0/22 +add china_ip_route 43.236.100.0/22 +add china_ip_route 43.236.104.0/22 +add china_ip_route 43.236.108.0/22 +add china_ip_route 43.236.112.0/22 +add china_ip_route 43.236.116.0/22 +add china_ip_route 43.236.120.0/22 +add china_ip_route 43.236.124.0/22 +add china_ip_route 43.236.128.0/22 +add china_ip_route 43.236.132.0/22 +add china_ip_route 43.236.136.0/22 +add china_ip_route 43.236.140.0/22 +add china_ip_route 43.236.144.0/22 +add china_ip_route 43.236.148.0/22 +add china_ip_route 43.236.152.0/22 +add china_ip_route 43.236.156.0/22 +add china_ip_route 43.236.160.0/22 +add china_ip_route 43.236.164.0/22 +add china_ip_route 43.236.168.0/22 +add china_ip_route 43.236.172.0/22 +add china_ip_route 43.236.176.0/22 +add china_ip_route 43.236.180.0/22 +add china_ip_route 43.236.184.0/22 +add china_ip_route 43.236.188.0/22 +add china_ip_route 43.236.192.0/22 +add china_ip_route 43.236.196.0/22 +add china_ip_route 43.236.200.0/22 +add china_ip_route 43.236.204.0/22 +add china_ip_route 43.236.208.0/22 +add china_ip_route 43.236.212.0/22 +add china_ip_route 43.236.216.0/22 +add china_ip_route 43.236.220.0/22 +add china_ip_route 43.236.224.0/22 +add china_ip_route 43.236.228.0/22 +add china_ip_route 43.236.232.0/22 +add china_ip_route 43.236.236.0/22 +add china_ip_route 43.236.240.0/22 +add china_ip_route 43.236.244.0/22 +add china_ip_route 43.236.248.0/22 +add china_ip_route 43.236.252.0/22 +add china_ip_route 43.237.0.0/22 +add china_ip_route 43.237.4.0/22 +add china_ip_route 43.237.8.0/22 +add china_ip_route 43.237.12.0/22 +add china_ip_route 43.237.16.0/22 +add china_ip_route 43.237.20.0/22 +add china_ip_route 43.237.24.0/22 +add china_ip_route 43.237.28.0/22 +add china_ip_route 43.237.32.0/22 +add china_ip_route 43.237.36.0/22 +add china_ip_route 43.237.40.0/22 +add china_ip_route 43.237.44.0/22 +add china_ip_route 43.237.48.0/22 +add china_ip_route 43.237.52.0/22 +add china_ip_route 43.237.56.0/22 +add china_ip_route 43.237.60.0/22 +add china_ip_route 43.237.64.0/22 +add china_ip_route 43.237.68.0/22 +add china_ip_route 43.237.72.0/22 +add china_ip_route 43.237.76.0/22 +add china_ip_route 43.237.80.0/22 +add china_ip_route 43.237.84.0/22 +add china_ip_route 43.237.88.0/22 +add china_ip_route 43.237.92.0/22 +add china_ip_route 43.237.96.0/22 +add china_ip_route 43.237.100.0/22 +add china_ip_route 43.237.104.0/22 +add china_ip_route 43.237.108.0/22 +add china_ip_route 43.237.112.0/22 +add china_ip_route 43.237.116.0/22 +add china_ip_route 43.237.120.0/22 +add china_ip_route 43.237.124.0/22 +add china_ip_route 43.237.128.0/22 +add china_ip_route 43.237.132.0/22 +add china_ip_route 43.237.136.0/22 +add china_ip_route 43.237.140.0/22 +add china_ip_route 43.237.144.0/22 +add china_ip_route 43.237.148.0/22 +add china_ip_route 43.237.152.0/22 +add china_ip_route 43.237.156.0/22 +add china_ip_route 43.237.160.0/22 +add china_ip_route 43.237.164.0/22 +add china_ip_route 43.237.168.0/22 +add china_ip_route 43.237.172.0/22 +add china_ip_route 43.237.176.0/22 +add china_ip_route 43.237.180.0/22 +add china_ip_route 43.237.184.0/22 +add china_ip_route 43.237.188.0/22 +add china_ip_route 43.237.192.0/22 +add china_ip_route 43.237.196.0/22 +add china_ip_route 43.237.200.0/22 +add china_ip_route 43.237.204.0/22 +add china_ip_route 43.237.208.0/22 +add china_ip_route 43.237.212.0/22 +add china_ip_route 43.237.216.0/22 +add china_ip_route 43.237.220.0/22 +add china_ip_route 43.237.224.0/22 +add china_ip_route 43.237.228.0/22 +add china_ip_route 43.237.232.0/22 +add china_ip_route 43.237.236.0/22 +add china_ip_route 43.237.240.0/22 +add china_ip_route 43.237.244.0/22 +add china_ip_route 43.237.248.0/22 +add china_ip_route 43.237.252.0/22 +add china_ip_route 43.238.0.0/22 +add china_ip_route 43.238.4.0/22 +add china_ip_route 43.238.8.0/22 +add china_ip_route 43.238.12.0/22 +add china_ip_route 43.238.16.0/22 +add china_ip_route 43.238.20.0/22 +add china_ip_route 43.238.24.0/22 +add china_ip_route 43.238.28.0/22 +add china_ip_route 43.238.32.0/22 +add china_ip_route 43.238.36.0/22 +add china_ip_route 43.238.40.0/22 +add china_ip_route 43.238.44.0/22 +add china_ip_route 43.238.48.0/22 +add china_ip_route 43.238.52.0/22 +add china_ip_route 43.238.56.0/22 +add china_ip_route 43.238.60.0/22 +add china_ip_route 43.238.64.0/22 +add china_ip_route 43.238.68.0/22 +add china_ip_route 43.238.72.0/22 +add china_ip_route 43.238.76.0/22 +add china_ip_route 43.238.80.0/22 +add china_ip_route 43.238.84.0/22 +add china_ip_route 43.238.88.0/22 +add china_ip_route 43.238.92.0/22 +add china_ip_route 43.238.96.0/22 +add china_ip_route 43.238.100.0/22 +add china_ip_route 43.238.104.0/22 +add china_ip_route 43.238.108.0/22 +add china_ip_route 43.238.112.0/22 +add china_ip_route 43.238.116.0/22 +add china_ip_route 43.238.120.0/22 +add china_ip_route 43.238.124.0/22 +add china_ip_route 43.238.128.0/22 +add china_ip_route 43.238.132.0/22 +add china_ip_route 43.238.136.0/22 +add china_ip_route 43.238.140.0/22 +add china_ip_route 43.238.144.0/22 +add china_ip_route 43.238.148.0/22 +add china_ip_route 43.238.152.0/22 +add china_ip_route 43.238.156.0/22 +add china_ip_route 43.238.160.0/22 +add china_ip_route 43.238.164.0/22 +add china_ip_route 43.238.168.0/22 +add china_ip_route 43.238.172.0/22 +add china_ip_route 43.238.176.0/22 +add china_ip_route 43.238.180.0/22 +add china_ip_route 43.238.184.0/22 +add china_ip_route 43.238.188.0/22 +add china_ip_route 43.238.192.0/22 +add china_ip_route 43.238.196.0/22 +add china_ip_route 43.238.200.0/22 +add china_ip_route 43.238.204.0/22 +add china_ip_route 43.238.208.0/22 +add china_ip_route 43.238.212.0/22 +add china_ip_route 43.238.216.0/22 +add china_ip_route 43.238.220.0/22 +add china_ip_route 43.238.224.0/22 +add china_ip_route 43.238.228.0/22 +add china_ip_route 43.238.232.0/22 +add china_ip_route 43.238.236.0/22 +add china_ip_route 43.238.240.0/22 +add china_ip_route 43.238.244.0/22 +add china_ip_route 43.238.248.0/22 +add china_ip_route 43.238.252.0/22 +add china_ip_route 43.239.0.0/22 +add china_ip_route 43.239.4.0/22 +add china_ip_route 43.239.8.0/21 +add china_ip_route 43.239.16.0/22 +add china_ip_route 43.239.20.0/22 +add china_ip_route 43.239.24.0/22 +add china_ip_route 43.239.28.0/22 +add china_ip_route 43.239.32.0/22 +add china_ip_route 43.239.36.0/22 +add china_ip_route 43.239.40.0/22 +add china_ip_route 43.239.44.0/22 +add china_ip_route 43.239.48.0/22 +add china_ip_route 43.239.116.0/22 +add china_ip_route 43.239.120.0/22 +add china_ip_route 43.239.172.0/22 +add china_ip_route 43.239.176.0/22 +add china_ip_route 43.240.0.0/22 +add china_ip_route 43.240.56.0/22 +add china_ip_route 43.240.60.0/22 +add china_ip_route 43.240.68.0/22 +add china_ip_route 43.240.72.0/22 +add china_ip_route 43.240.76.0/22 +add china_ip_route 43.240.84.0/22 +add china_ip_route 43.240.124.0/22 +add china_ip_route 43.240.128.0/22 +add china_ip_route 43.240.132.0/22 +add china_ip_route 43.240.136.0/22 +add china_ip_route 43.240.144.0/22 +add china_ip_route 43.240.156.0/22 +add china_ip_route 43.240.160.0/22 +add china_ip_route 43.240.164.0/22 +add china_ip_route 43.240.168.0/22 +add china_ip_route 43.240.172.0/22 +add china_ip_route 43.240.176.0/22 +add china_ip_route 43.240.180.0/22 +add china_ip_route 43.240.184.0/22 +add china_ip_route 43.240.188.0/22 +add china_ip_route 43.240.192.0/22 +add china_ip_route 43.240.196.0/22 +add china_ip_route 43.240.200.0/22 +add china_ip_route 43.240.204.0/22 +add china_ip_route 43.240.208.0/22 +add china_ip_route 43.240.212.0/22 +add china_ip_route 43.240.216.0/22 +add china_ip_route 43.240.220.0/22 +add china_ip_route 43.240.236.0/22 +add china_ip_route 43.240.240.0/22 +add china_ip_route 43.240.244.0/22 +add china_ip_route 43.240.248.0/22 +add china_ip_route 43.240.252.0/22 +add china_ip_route 43.241.0.0/22 +add china_ip_route 43.241.4.0/22 +add china_ip_route 43.241.8.0/22 +add china_ip_route 43.241.12.0/22 +add china_ip_route 43.241.16.0/22 +add china_ip_route 43.241.20.0/22 +add china_ip_route 43.241.48.0/22 +add china_ip_route 43.241.76.0/22 +add china_ip_route 43.241.80.0/22 +add china_ip_route 43.241.84.0/22 +add china_ip_route 43.241.88.0/22 +add china_ip_route 43.241.92.0/22 +add china_ip_route 43.241.112.0/22 +add china_ip_route 43.241.168.0/22 +add china_ip_route 43.241.172.0/22 +add china_ip_route 43.241.176.0/22 +add china_ip_route 43.241.180.0/22 +add china_ip_route 43.241.184.0/22 +add china_ip_route 43.241.196.0/22 +add china_ip_route 43.241.208.0/22 +add china_ip_route 43.241.212.0/22 +add china_ip_route 43.241.216.0/22 +add china_ip_route 43.241.220.0/22 +add china_ip_route 43.241.224.0/22 +add china_ip_route 43.241.228.0/22 +add china_ip_route 43.241.232.0/22 +add china_ip_route 43.241.236.0/22 +add china_ip_route 43.241.240.0/22 +add china_ip_route 43.241.248.0/22 +add china_ip_route 43.241.252.0/22 +add china_ip_route 43.242.8.0/22 +add china_ip_route 43.242.12.0/22 +add china_ip_route 43.242.16.0/22 +add china_ip_route 43.242.20.0/22 +add china_ip_route 43.242.24.0/22 +add china_ip_route 43.242.28.0/22 +add china_ip_route 43.242.44.0/22 +add china_ip_route 43.242.48.0/22 +add china_ip_route 43.242.52.0/22 +add china_ip_route 43.242.56.0/22 +add china_ip_route 43.242.60.0/22 +add china_ip_route 43.242.64.0/22 +add china_ip_route 43.242.72.0/22 +add china_ip_route 43.242.76.0/22 +add china_ip_route 43.242.80.0/22 +add china_ip_route 43.242.84.0/22 +add china_ip_route 43.242.88.0/22 +add china_ip_route 43.242.92.0/22 +add china_ip_route 43.242.96.0/22 +add china_ip_route 43.242.144.0/22 +add china_ip_route 43.242.148.0/22 +add china_ip_route 43.242.152.0/22 +add china_ip_route 43.242.156.0/22 +add china_ip_route 43.242.160.0/22 +add china_ip_route 43.242.164.0/22 +add china_ip_route 43.242.168.0/22 +add china_ip_route 43.242.180.0/22 +add china_ip_route 43.242.188.0/22 +add china_ip_route 43.242.192.0/22 +add china_ip_route 43.242.196.0/22 +add china_ip_route 43.242.204.0/22 +add china_ip_route 43.242.216.0/22 +add china_ip_route 43.242.220.0/22 +add china_ip_route 43.242.252.0/22 +add china_ip_route 43.243.4.0/22 +add china_ip_route 43.243.8.0/22 +add china_ip_route 43.243.12.0/22 +add china_ip_route 43.243.16.0/22 +add china_ip_route 43.243.24.0/22 +add china_ip_route 43.243.88.0/22 +add china_ip_route 43.243.128.0/22 +add china_ip_route 43.243.136.0/22 +add china_ip_route 43.243.144.0/22 +add china_ip_route 43.243.148.0/22 +add china_ip_route 43.243.156.0/22 +add china_ip_route 43.243.180.0/22 +add china_ip_route 43.243.188.0/22 +add china_ip_route 43.243.228.0/22 +add china_ip_route 43.243.232.0/22 +add china_ip_route 43.243.244.0/22 +add china_ip_route 43.246.0.0/22 +add china_ip_route 43.246.4.0/22 +add china_ip_route 43.246.8.0/22 +add china_ip_route 43.246.12.0/22 +add china_ip_route 43.246.16.0/22 +add china_ip_route 43.246.20.0/22 +add china_ip_route 43.246.24.0/22 +add china_ip_route 43.246.28.0/22 +add china_ip_route 43.246.32.0/22 +add china_ip_route 43.246.36.0/22 +add china_ip_route 43.246.40.0/22 +add china_ip_route 43.246.44.0/22 +add china_ip_route 43.246.48.0/22 +add china_ip_route 43.246.52.0/22 +add china_ip_route 43.246.56.0/22 +add china_ip_route 43.246.60.0/22 +add china_ip_route 43.246.64.0/22 +add china_ip_route 43.246.68.0/22 +add china_ip_route 43.246.72.0/22 +add china_ip_route 43.246.76.0/22 +add china_ip_route 43.246.80.0/22 +add china_ip_route 43.246.84.0/22 +add china_ip_route 43.246.88.0/22 +add china_ip_route 43.246.92.0/22 +add china_ip_route 43.246.96.0/22 +add china_ip_route 43.246.112.0/22 +add china_ip_route 43.246.212.0/22 +add china_ip_route 43.246.228.0/22 +add china_ip_route 43.247.4.0/22 +add china_ip_route 43.247.8.0/22 +add china_ip_route 43.247.44.0/22 +add china_ip_route 43.247.48.0/22 +add china_ip_route 43.247.68.0/22 +add china_ip_route 43.247.76.0/22 +add china_ip_route 43.247.84.0/22 +add china_ip_route 43.247.88.0/22 +add china_ip_route 43.247.92.0/22 +add china_ip_route 43.247.96.0/22 +add china_ip_route 43.247.100.0/22 +add china_ip_route 43.247.108.0/22 +add china_ip_route 43.247.112.0/22 +add china_ip_route 43.247.148.0/22 +add china_ip_route 43.247.152.0/22 +add china_ip_route 43.247.176.0/22 +add china_ip_route 43.247.180.0/22 +add china_ip_route 43.247.184.0/22 +add china_ip_route 43.247.188.0/22 +add china_ip_route 43.247.196.0/22 +add china_ip_route 43.247.200.0/22 +add china_ip_route 43.247.204.0/22 +add china_ip_route 43.247.208.0/22 +add china_ip_route 43.247.212.0/22 +add china_ip_route 43.247.216.0/22 +add china_ip_route 43.247.220.0/22 +add china_ip_route 43.247.224.0/22 +add china_ip_route 43.247.228.0/22 +add china_ip_route 43.247.232.0/22 +add china_ip_route 43.247.236.0/22 +add china_ip_route 43.247.240.0/22 +add china_ip_route 43.247.244.0/22 +add china_ip_route 43.247.248.0/22 +add china_ip_route 43.247.252.0/22 +add china_ip_route 43.248.0.0/22 +add china_ip_route 43.248.4.0/22 +add china_ip_route 43.248.20.0/22 +add china_ip_route 43.248.28.0/22 +add china_ip_route 43.248.48.0/22 +add china_ip_route 43.248.76.0/22 +add china_ip_route 43.248.80.0/22 +add china_ip_route 43.248.84.0/22 +add china_ip_route 43.248.88.0/22 +add china_ip_route 43.248.92.0/22 +add china_ip_route 43.248.96.0/22 +add china_ip_route 43.248.100.0/22 +add china_ip_route 43.248.104.0/22 +add china_ip_route 43.248.108.0/22 +add china_ip_route 43.248.112.0/22 +add china_ip_route 43.248.116.0/22 +add china_ip_route 43.248.120.0/22 +add china_ip_route 43.248.124.0/22 +add china_ip_route 43.248.128.0/22 +add china_ip_route 43.248.132.0/22 +add china_ip_route 43.248.136.0/22 +add china_ip_route 43.248.140.0/22 +add china_ip_route 43.248.144.0/22 +add china_ip_route 43.248.148.0/22 +add china_ip_route 43.248.176.0/22 +add china_ip_route 43.248.180.0/22 +add china_ip_route 43.248.184.0/22 +add china_ip_route 43.248.188.0/22 +add china_ip_route 43.248.192.0/22 +add china_ip_route 43.248.196.0/22 +add china_ip_route 43.248.200.0/22 +add china_ip_route 43.248.204.0/22 +add china_ip_route 43.248.208.0/22 +add china_ip_route 43.248.228.0/22 +add china_ip_route 43.248.232.0/22 +add china_ip_route 43.248.244.0/22 +add china_ip_route 43.249.4.0/22 +add china_ip_route 43.249.8.0/22 +add china_ip_route 43.249.120.0/22 +add china_ip_route 43.249.132.0/22 +add china_ip_route 43.249.136.0/22 +add china_ip_route 43.249.144.0/22 +add china_ip_route 43.249.148.0/22 +add china_ip_route 43.249.152.0/22 +add china_ip_route 43.249.156.0/22 +add china_ip_route 43.249.160.0/22 +add china_ip_route 43.249.164.0/22 +add china_ip_route 43.249.168.0/22 +add china_ip_route 43.249.192.0/22 +add china_ip_route 43.249.236.0/22 +add china_ip_route 43.250.4.0/22 +add china_ip_route 43.250.12.0/22 +add china_ip_route 43.250.16.0/22 +add china_ip_route 43.250.20.0/22 +add china_ip_route 43.250.28.0/22 +add china_ip_route 43.250.32.0/22 +add china_ip_route 43.250.36.0/22 +add china_ip_route 43.250.72.0/22 +add china_ip_route 43.250.96.0/22 +add china_ip_route 43.250.100.0/22 +add china_ip_route 43.250.104.0/22 +add china_ip_route 43.250.108.0/22 +add china_ip_route 43.250.112.0/22 +add china_ip_route 43.250.116.0/22 +add china_ip_route 43.250.128.0/22 +add china_ip_route 43.250.144.0/22 +add china_ip_route 43.250.148.0/22 +add china_ip_route 43.250.160.0/22 +add china_ip_route 43.250.168.0/22 +add china_ip_route 43.250.172.0/22 +add china_ip_route 43.250.176.0/22 +add china_ip_route 43.250.200.0/22 +add china_ip_route 43.250.212.0/22 +add china_ip_route 43.250.216.0/22 +add china_ip_route 43.250.220.0/22 +add china_ip_route 43.250.236.0/22 +add china_ip_route 43.250.244.0/22 +add china_ip_route 43.251.4.0/22 +add china_ip_route 43.251.8.0/22 +add china_ip_route 43.251.36.0/22 +add china_ip_route 43.251.100.0/22 +add china_ip_route 43.251.116.0/22 +add china_ip_route 43.251.192.0/22 +add china_ip_route 43.251.232.0/22 +add china_ip_route 43.251.236.0/22 +add china_ip_route 43.251.244.0/22 +add china_ip_route 43.252.48.0/22 +add china_ip_route 43.252.56.0/22 +add china_ip_route 43.252.224.0/22 +add china_ip_route 43.254.0.0/22 +add china_ip_route 43.254.4.0/22 +add china_ip_route 43.254.8.0/22 +add china_ip_route 43.254.24.0/22 +add china_ip_route 43.254.36.0/22 +add china_ip_route 43.254.44.0/22 +add china_ip_route 43.254.52.0/22 +add china_ip_route 43.254.64.0/22 +add china_ip_route 43.254.72.0/22 +add china_ip_route 43.254.84.0/22 +add china_ip_route 43.254.88.0/22 +add china_ip_route 43.254.92.0/22 +add china_ip_route 43.254.100.0/22 +add china_ip_route 43.254.104.0/22 +add china_ip_route 43.254.112.0/22 +add china_ip_route 43.254.116.0/22 +add china_ip_route 43.254.128.0/22 +add china_ip_route 43.254.136.0/22 +add china_ip_route 43.254.140.0/22 +add china_ip_route 43.254.144.0/22 +add china_ip_route 43.254.148.0/22 +add china_ip_route 43.254.152.0/22 +add china_ip_route 43.254.156.0/22 +add china_ip_route 43.254.168.0/22 +add china_ip_route 43.254.172.0/22 +add china_ip_route 43.254.180.0/22 +add china_ip_route 43.254.184.0/22 +add china_ip_route 43.254.188.0/22 +add china_ip_route 43.254.192.0/22 +add china_ip_route 43.254.196.0/22 +add china_ip_route 43.254.200.0/22 +add china_ip_route 43.254.208.0/22 +add china_ip_route 43.254.220.0/22 +add china_ip_route 43.254.224.0/22 +add china_ip_route 43.254.228.0/22 +add china_ip_route 43.254.232.0/22 +add china_ip_route 43.254.236.0/22 +add china_ip_route 43.254.240.0/22 +add china_ip_route 43.254.248.0/22 +add china_ip_route 43.254.252.0/22 +add china_ip_route 43.255.0.0/22 +add china_ip_route 43.255.4.0/22 +add china_ip_route 43.255.8.0/22 +add china_ip_route 43.255.16.0/22 +add china_ip_route 43.255.48.0/22 +add china_ip_route 43.255.64.0/22 +add china_ip_route 43.255.68.0/22 +add china_ip_route 43.255.72.0/22 +add china_ip_route 43.255.76.0/22 +add china_ip_route 43.255.84.0/22 +add china_ip_route 43.255.96.0/22 +add china_ip_route 43.255.108.0/22 +add china_ip_route 43.255.144.0/22 +add china_ip_route 43.255.168.0/22 +add china_ip_route 43.255.176.0/22 +add china_ip_route 43.255.184.0/22 +add china_ip_route 43.255.192.0/22 +add china_ip_route 43.255.200.0/22 +add china_ip_route 43.255.204.0/22 +add china_ip_route 43.255.208.0/22 +add china_ip_route 43.255.212.0/22 +add china_ip_route 43.255.224.0/22 +add china_ip_route 43.255.228.0/22 +add china_ip_route 43.255.232.0/22 +add china_ip_route 43.255.244.0/22 +add china_ip_route 45.40.192.0/18 +add china_ip_route 45.65.16.0/22 +add china_ip_route 45.65.20.0/22 +add china_ip_route 45.65.24.0/22 +add china_ip_route 45.65.28.0/22 +add china_ip_route 45.112.132.0/22 +add china_ip_route 45.112.188.0/22 +add china_ip_route 45.112.208.0/22 +add china_ip_route 45.112.212.0/22 +add china_ip_route 45.112.216.0/22 +add china_ip_route 45.112.220.0/22 +add china_ip_route 45.112.228.0/22 +add china_ip_route 45.112.232.0/22 +add china_ip_route 45.112.236.0/22 +add china_ip_route 45.113.12.0/22 +add china_ip_route 45.113.16.0/22 +add china_ip_route 45.113.20.0/22 +add china_ip_route 45.113.24.0/22 +add china_ip_route 45.113.28.0/22 +add china_ip_route 45.113.40.0/22 +add china_ip_route 45.113.52.0/22 +add china_ip_route 45.113.56.0/22 +add china_ip_route 45.113.72.0/22 +add china_ip_route 45.113.144.0/22 +add china_ip_route 45.113.148.0/22 +add china_ip_route 45.113.168.0/22 +add china_ip_route 45.113.176.0/22 +add china_ip_route 45.113.184.0/22 +add china_ip_route 45.113.200.0/22 +add china_ip_route 45.113.204.0/22 +add china_ip_route 45.113.208.0/22 +add china_ip_route 45.113.212.0/22 +add china_ip_route 45.113.216.0/22 +add china_ip_route 45.113.220.0/22 +add china_ip_route 45.113.240.0/22 +add china_ip_route 45.113.252.0/22 +add china_ip_route 45.114.0.0/22 +add china_ip_route 45.114.12.0/22 +add china_ip_route 45.114.32.0/22 +add china_ip_route 45.114.40.0/22 +add china_ip_route 45.114.52.0/22 +add china_ip_route 45.114.96.0/22 +add china_ip_route 45.114.104.0/22 +add china_ip_route 45.114.124.0/22 +add china_ip_route 45.114.136.0/22 +add china_ip_route 45.114.196.0/22 +add china_ip_route 45.114.200.0/22 +add china_ip_route 45.114.228.0/22 +add china_ip_route 45.114.252.0/22 +add china_ip_route 45.115.44.0/22 +add china_ip_route 45.115.100.0/22 +add china_ip_route 45.115.120.0/22 +add china_ip_route 45.115.132.0/22 +add china_ip_route 45.115.144.0/22 +add china_ip_route 45.115.156.0/22 +add china_ip_route 45.115.164.0/22 +add china_ip_route 45.115.200.0/22 +add china_ip_route 45.115.212.0/22 +add china_ip_route 45.115.228.0/22 +add china_ip_route 45.115.236.0/22 +add china_ip_route 45.115.244.0/22 +add china_ip_route 45.115.248.0/22 +add china_ip_route 45.116.16.0/22 +add china_ip_route 45.116.24.0/22 +add china_ip_route 45.116.32.0/22 +add china_ip_route 45.116.36.0/22 +add china_ip_route 45.116.52.0/22 +add china_ip_route 45.116.96.0/22 +add china_ip_route 45.116.100.0/22 +add china_ip_route 45.116.140.0/22 +add china_ip_route 45.116.152.0/22 +add china_ip_route 45.116.208.0/22 +add china_ip_route 45.117.8.0/22 +add china_ip_route 45.117.20.0/22 +add china_ip_route 45.117.68.0/22 +add china_ip_route 45.117.124.0/22 +add china_ip_route 45.117.252.0/22 +add china_ip_route 45.119.52.0/22 +add china_ip_route 45.119.60.0/22 +add china_ip_route 45.119.64.0/22 +add china_ip_route 45.119.68.0/22 +add china_ip_route 45.119.72.0/22 +add china_ip_route 45.119.104.0/22 +add china_ip_route 45.119.116.0/22 +add china_ip_route 45.119.232.0/22 +add china_ip_route 45.120.100.0/22 +add china_ip_route 45.120.140.0/22 +add china_ip_route 45.120.164.0/22 +add china_ip_route 45.120.220.0/22 +add china_ip_route 45.120.240.0/22 +add china_ip_route 45.121.52.0/22 +add china_ip_route 45.121.64.0/22 +add china_ip_route 45.121.68.0/22 +add china_ip_route 45.121.72.0/22 +add china_ip_route 45.121.92.0/22 +add china_ip_route 45.121.96.0/22 +add china_ip_route 45.121.172.0/22 +add china_ip_route 45.121.176.0/22 +add china_ip_route 45.121.212.0/22 +add china_ip_route 45.121.240.0/22 +add china_ip_route 45.121.244.0/22 +add china_ip_route 45.121.248.0/22 +add china_ip_route 45.121.252.0/22 +add china_ip_route 45.122.0.0/22 +add china_ip_route 45.122.4.0/22 +add china_ip_route 45.122.8.0/22 +add china_ip_route 45.122.12.0/22 +add china_ip_route 45.122.16.0/22 +add china_ip_route 45.122.20.0/22 +add china_ip_route 45.122.24.0/22 +add china_ip_route 45.122.28.0/22 +add china_ip_route 45.122.32.0/22 +add china_ip_route 45.122.36.0/22 +add china_ip_route 45.122.40.0/22 +add china_ip_route 45.122.60.0/22 +add china_ip_route 45.122.64.0/22 +add china_ip_route 45.122.68.0/22 +add china_ip_route 45.122.72.0/22 +add china_ip_route 45.122.76.0/22 +add china_ip_route 45.122.80.0/22 +add china_ip_route 45.122.84.0/22 +add china_ip_route 45.122.88.0/22 +add china_ip_route 45.122.92.0/22 +add china_ip_route 45.122.96.0/21 +add china_ip_route 45.122.104.0/22 +add china_ip_route 45.122.108.0/22 +add china_ip_route 45.122.112.0/22 +add china_ip_route 45.122.116.0/22 +add china_ip_route 45.122.160.0/22 +add china_ip_route 45.122.164.0/22 +add china_ip_route 45.122.168.0/22 +add china_ip_route 45.122.172.0/22 +add china_ip_route 45.122.176.0/22 +add china_ip_route 45.122.180.0/22 +add china_ip_route 45.122.184.0/22 +add china_ip_route 45.122.188.0/22 +add china_ip_route 45.122.192.0/22 +add china_ip_route 45.122.196.0/22 +add china_ip_route 45.122.200.0/22 +add china_ip_route 45.122.204.0/22 +add china_ip_route 45.122.208.0/22 +add china_ip_route 45.122.212.0/22 +add china_ip_route 45.122.216.0/22 +add china_ip_route 45.123.28.0/22 +add china_ip_route 45.123.32.0/22 +add china_ip_route 45.123.36.0/22 +add china_ip_route 45.123.44.0/22 +add china_ip_route 45.123.48.0/22 +add china_ip_route 45.123.52.0/22 +add china_ip_route 45.123.56.0/22 +add china_ip_route 45.123.60.0/22 +add china_ip_route 45.123.64.0/22 +add china_ip_route 45.123.68.0/22 +add china_ip_route 45.123.72.0/22 +add china_ip_route 45.123.76.0/22 +add china_ip_route 45.123.80.0/22 +add china_ip_route 45.123.84.0/22 +add china_ip_route 45.123.88.0/22 +add china_ip_route 45.123.120.0/22 +add china_ip_route 45.123.128.0/22 +add china_ip_route 45.123.132.0/22 +add china_ip_route 45.123.136.0/22 +add china_ip_route 45.123.148.0/22 +add china_ip_route 45.123.152.0/22 +add china_ip_route 45.123.156.0/22 +add china_ip_route 45.123.164.0/22 +add china_ip_route 45.123.168.0/22 +add china_ip_route 45.123.172.0/22 +add china_ip_route 45.123.176.0/22 +add china_ip_route 45.123.180.0/22 +add china_ip_route 45.123.184.0/22 +add china_ip_route 45.123.204.0/22 +add china_ip_route 45.123.212.0/22 +add china_ip_route 45.123.224.0/22 +add china_ip_route 45.123.228.0/22 +add china_ip_route 45.123.232.0/22 +add china_ip_route 45.123.236.0/22 +add china_ip_route 45.123.240.0/22 +add china_ip_route 45.123.244.0/22 +add china_ip_route 45.123.248.0/22 +add china_ip_route 45.123.252.0/22 +add china_ip_route 45.124.0.0/22 +add china_ip_route 45.124.20.0/22 +add china_ip_route 45.124.28.0/22 +add china_ip_route 45.124.32.0/22 +add china_ip_route 45.124.36.0/22 +add china_ip_route 45.124.44.0/22 +add china_ip_route 45.124.68.0/22 +add china_ip_route 45.124.76.0/22 +add china_ip_route 45.124.80.0/22 +add china_ip_route 45.124.100.0/22 +add china_ip_route 45.124.124.0/22 +add china_ip_route 45.124.172.0/22 +add china_ip_route 45.124.176.0/22 +add china_ip_route 45.124.208.0/22 +add china_ip_route 45.124.248.0/22 +add china_ip_route 45.125.12.0/22 +add china_ip_route 45.125.16.0/22 +add china_ip_route 45.125.24.0/22 +add china_ip_route 45.125.28.0/22 +add china_ip_route 45.125.44.0/22 +add china_ip_route 45.125.52.0/22 +add china_ip_route 45.125.56.0/22 +add china_ip_route 45.125.76.0/22 +add china_ip_route 45.125.80.0/22 +add china_ip_route 45.125.84.0/22 +add china_ip_route 45.125.88.0/22 +add china_ip_route 45.125.92.0/22 +add china_ip_route 45.125.96.0/22 +add china_ip_route 45.125.100.0/22 +add china_ip_route 45.125.104.0/22 +add china_ip_route 45.125.136.0/22 +add china_ip_route 45.126.48.0/22 +add china_ip_route 45.126.52.0/22 +add china_ip_route 45.126.100.0/22 +add china_ip_route 45.126.108.0/22 +add china_ip_route 45.126.112.0/22 +add china_ip_route 45.126.116.0/22 +add china_ip_route 45.126.120.0/22 +add china_ip_route 45.126.212.0/22 +add china_ip_route 45.126.220.0/22 +add china_ip_route 45.127.8.0/22 +add china_ip_route 45.127.12.0/22 +add china_ip_route 45.127.96.0/22 +add china_ip_route 45.127.116.0/22 +add china_ip_route 45.127.128.0/22 +add china_ip_route 45.127.144.0/22 +add china_ip_route 45.127.148.0/22 +add china_ip_route 45.127.156.0/22 +add china_ip_route 45.127.216.0/22 +add china_ip_route 45.248.8.0/22 +add china_ip_route 45.248.80.0/22 +add china_ip_route 45.248.84.0/22 +add china_ip_route 45.248.88.0/22 +add china_ip_route 45.248.96.0/22 +add china_ip_route 45.248.100.0/22 +add china_ip_route 45.248.104.0/22 +add china_ip_route 45.248.108.0/22 +add china_ip_route 45.248.128.0/22 +add china_ip_route 45.248.132.0/22 +add china_ip_route 45.248.204.0/22 +add china_ip_route 45.248.208.0/22 +add china_ip_route 45.248.212.0/22 +add china_ip_route 45.248.216.0/22 +add china_ip_route 45.248.220.0/22 +add china_ip_route 45.248.224.0/22 +add china_ip_route 45.248.228.0/22 +add china_ip_route 45.248.232.0/22 +add china_ip_route 45.248.236.0/22 +add china_ip_route 45.248.240.0/22 +add china_ip_route 45.248.244.0/22 +add china_ip_route 45.248.248.0/22 +add china_ip_route 45.248.252.0/22 +add china_ip_route 45.249.0.0/22 +add china_ip_route 45.249.4.0/22 +add china_ip_route 45.249.12.0/22 +add china_ip_route 45.249.16.0/22 +add china_ip_route 45.249.20.0/22 +add china_ip_route 45.249.24.0/22 +add china_ip_route 45.249.28.0/22 +add china_ip_route 45.249.32.0/22 +add china_ip_route 45.249.36.0/22 +add china_ip_route 45.249.92.0/22 +add china_ip_route 45.249.112.0/22 +add china_ip_route 45.249.188.0/22 +add china_ip_route 45.249.192.0/22 +add china_ip_route 45.249.196.0/22 +add china_ip_route 45.249.200.0/22 +add china_ip_route 45.249.204.0/22 +add china_ip_route 45.249.208.0/22 +add china_ip_route 45.249.212.0/22 +add china_ip_route 45.250.12.0/22 +add china_ip_route 45.250.16.0/22 +add china_ip_route 45.250.28.0/22 +add china_ip_route 45.250.32.0/22 +add china_ip_route 45.250.36.0/22 +add china_ip_route 45.250.40.0/22 +add china_ip_route 45.250.76.0/22 +add china_ip_route 45.250.80.0/22 +add china_ip_route 45.250.84.0/22 +add china_ip_route 45.250.88.0/22 +add china_ip_route 45.250.92.0/22 +add china_ip_route 45.250.96.0/22 +add china_ip_route 45.250.104.0/22 +add china_ip_route 45.250.108.0/22 +add china_ip_route 45.250.112.0/22 +add china_ip_route 45.250.116.0/22 +add china_ip_route 45.250.120.0/22 +add china_ip_route 45.250.124.0/22 +add china_ip_route 45.250.128.0/22 +add china_ip_route 45.250.132.0/22 +add china_ip_route 45.250.136.0/22 +add china_ip_route 45.250.140.0/22 +add china_ip_route 45.250.144.0/22 +add china_ip_route 45.250.148.0/22 +add china_ip_route 45.250.152.0/22 +add china_ip_route 45.250.164.0/22 +add china_ip_route 45.250.180.0/22 +add china_ip_route 45.250.184.0/22 +add china_ip_route 45.250.188.0/22 +add china_ip_route 45.250.192.0/22 +add china_ip_route 45.251.0.0/22 +add china_ip_route 45.251.8.0/22 +add china_ip_route 45.251.16.0/22 +add china_ip_route 45.251.20.0/22 +add china_ip_route 45.251.52.0/22 +add china_ip_route 45.251.84.0/22 +add china_ip_route 45.251.88.0/22 +add china_ip_route 45.251.92.0/22 +add china_ip_route 45.251.96.0/22 +add china_ip_route 45.251.100.0/22 +add china_ip_route 45.251.120.0/22 +add china_ip_route 45.251.124.0/22 +add china_ip_route 45.251.136.0/22 +add china_ip_route 45.251.140.0/22 +add china_ip_route 45.251.144.0/22 +add china_ip_route 45.251.148.0/22 +add china_ip_route 45.251.152.0/22 +add china_ip_route 45.251.156.0/22 +add china_ip_route 45.251.160.0/22 +add china_ip_route 45.251.164.0/22 +add china_ip_route 45.251.168.0/22 +add china_ip_route 45.251.172.0/22 +add china_ip_route 45.251.176.0/22 +add china_ip_route 45.251.180.0/22 +add china_ip_route 45.251.184.0/22 +add china_ip_route 45.251.188.0/22 +add china_ip_route 45.251.192.0/22 +add china_ip_route 45.251.196.0/22 +add china_ip_route 45.251.200.0/22 +add china_ip_route 45.251.204.0/22 +add china_ip_route 45.251.208.0/22 +add china_ip_route 45.251.212.0/22 +add china_ip_route 45.251.216.0/22 +add china_ip_route 45.251.220.0/22 +add china_ip_route 45.251.224.0/22 +add china_ip_route 45.251.240.0/22 +add china_ip_route 45.252.0.0/22 +add china_ip_route 45.252.4.0/22 +add china_ip_route 45.252.8.0/22 +add china_ip_route 45.252.12.0/22 +add china_ip_route 45.252.16.0/22 +add china_ip_route 45.252.20.0/22 +add china_ip_route 45.252.24.0/22 +add china_ip_route 45.252.28.0/22 +add china_ip_route 45.252.32.0/22 +add china_ip_route 45.252.36.0/22 +add china_ip_route 45.252.40.0/22 +add china_ip_route 45.252.44.0/22 +add china_ip_route 45.252.48.0/22 +add china_ip_route 45.252.60.0/22 +add china_ip_route 45.252.84.0/22 +add china_ip_route 45.252.88.0/22 +add china_ip_route 45.252.92.0/22 +add china_ip_route 45.252.96.0/22 +add china_ip_route 45.252.100.0/22 +add china_ip_route 45.252.104.0/22 +add china_ip_route 45.252.108.0/22 +add china_ip_route 45.252.112.0/22 +add china_ip_route 45.252.116.0/22 +add china_ip_route 45.252.120.0/22 +add china_ip_route 45.252.124.0/22 +add china_ip_route 45.252.128.0/22 +add china_ip_route 45.252.132.0/22 +add china_ip_route 45.252.136.0/22 +add china_ip_route 45.252.140.0/22 +add china_ip_route 45.252.144.0/22 +add china_ip_route 45.252.148.0/22 +add china_ip_route 45.252.152.0/22 +add china_ip_route 45.252.156.0/22 +add china_ip_route 45.252.160.0/22 +add china_ip_route 45.252.164.0/22 +add china_ip_route 45.252.168.0/22 +add china_ip_route 45.252.172.0/22 +add china_ip_route 45.252.176.0/22 +add china_ip_route 45.252.192.0/22 +add china_ip_route 45.252.196.0/22 +add china_ip_route 45.252.200.0/22 +add china_ip_route 45.252.204.0/22 +add china_ip_route 45.252.208.0/22 +add china_ip_route 45.252.212.0/22 +add china_ip_route 45.252.216.0/22 +add china_ip_route 45.252.220.0/22 +add china_ip_route 45.252.224.0/22 +add china_ip_route 45.252.228.0/22 +add china_ip_route 45.252.232.0/22 +add china_ip_route 45.253.0.0/22 +add china_ip_route 45.253.4.0/22 +add china_ip_route 45.253.8.0/22 +add china_ip_route 45.253.12.0/22 +add china_ip_route 45.253.16.0/22 +add china_ip_route 45.253.20.0/22 +add china_ip_route 45.253.24.0/22 +add china_ip_route 45.253.28.0/22 +add china_ip_route 45.253.32.0/22 +add china_ip_route 45.253.36.0/22 +add china_ip_route 45.253.40.0/22 +add china_ip_route 45.253.44.0/22 +add china_ip_route 45.253.48.0/22 +add china_ip_route 45.253.52.0/22 +add china_ip_route 45.253.56.0/22 +add china_ip_route 45.253.60.0/22 +add china_ip_route 45.253.64.0/22 +add china_ip_route 45.253.68.0/22 +add china_ip_route 45.253.72.0/22 +add china_ip_route 45.253.76.0/22 +add china_ip_route 45.253.80.0/22 +add china_ip_route 45.253.84.0/22 +add china_ip_route 45.253.92.0/22 +add china_ip_route 45.253.96.0/22 +add china_ip_route 45.253.100.0/22 +add china_ip_route 45.253.104.0/22 +add china_ip_route 45.253.108.0/22 +add china_ip_route 45.253.112.0/22 +add china_ip_route 45.253.116.0/22 +add china_ip_route 45.253.120.0/22 +add china_ip_route 45.253.132.0/22 +add china_ip_route 45.253.136.0/22 +add china_ip_route 45.253.140.0/22 +add china_ip_route 45.253.144.0/22 +add china_ip_route 45.253.148.0/22 +add china_ip_route 45.253.152.0/22 +add china_ip_route 45.253.156.0/22 +add china_ip_route 45.253.160.0/22 +add china_ip_route 45.253.164.0/22 +add china_ip_route 45.253.168.0/22 +add china_ip_route 45.253.172.0/22 +add china_ip_route 45.253.176.0/22 +add china_ip_route 45.253.180.0/22 +add china_ip_route 45.253.184.0/22 +add china_ip_route 45.253.188.0/22 +add china_ip_route 45.253.192.0/22 +add china_ip_route 45.253.196.0/22 +add china_ip_route 45.253.200.0/22 +add china_ip_route 45.253.204.0/22 +add china_ip_route 45.253.208.0/22 +add china_ip_route 45.253.212.0/22 +add china_ip_route 45.253.216.0/22 +add china_ip_route 45.253.220.0/22 +add china_ip_route 45.253.224.0/22 +add china_ip_route 45.253.228.0/22 +add china_ip_route 45.253.232.0/22 +add china_ip_route 45.253.236.0/22 +add china_ip_route 45.253.240.0/22 +add china_ip_route 45.253.244.0/22 +add china_ip_route 45.254.0.0/22 +add china_ip_route 45.254.4.0/22 +add china_ip_route 45.254.8.0/22 +add china_ip_route 45.254.12.0/22 +add china_ip_route 45.254.16.0/22 +add china_ip_route 45.254.20.0/22 +add china_ip_route 45.254.24.0/22 +add china_ip_route 45.254.28.0/22 +add china_ip_route 45.254.40.0/22 +add china_ip_route 45.254.48.0/22 +add china_ip_route 45.254.52.0/22 +add china_ip_route 45.254.56.0/22 +add china_ip_route 45.254.60.0/22 +add china_ip_route 45.254.64.0/22 +add china_ip_route 45.254.68.0/22 +add china_ip_route 45.254.72.0/22 +add china_ip_route 45.254.76.0/22 +add china_ip_route 45.254.80.0/22 +add china_ip_route 45.254.84.0/22 +add china_ip_route 45.254.88.0/22 +add china_ip_route 45.254.92.0/22 +add china_ip_route 45.254.96.0/22 +add china_ip_route 45.254.100.0/22 +add china_ip_route 45.254.104.0/22 +add china_ip_route 45.254.108.0/22 +add china_ip_route 45.254.112.0/22 +add china_ip_route 45.254.116.0/22 +add china_ip_route 45.254.120.0/22 +add china_ip_route 45.254.124.0/22 +add china_ip_route 45.254.128.0/22 +add china_ip_route 45.254.132.0/22 +add china_ip_route 45.254.136.0/22 +add china_ip_route 45.254.140.0/22 +add china_ip_route 45.254.144.0/22 +add china_ip_route 45.254.148.0/22 +add china_ip_route 45.254.152.0/22 +add china_ip_route 45.254.156.0/22 +add china_ip_route 45.254.160.0/22 +add china_ip_route 45.254.164.0/22 +add china_ip_route 45.254.168.0/22 +add china_ip_route 45.254.172.0/22 +add china_ip_route 45.254.176.0/22 +add china_ip_route 45.254.180.0/22 +add china_ip_route 45.254.184.0/22 +add china_ip_route 45.254.188.0/22 +add china_ip_route 45.254.192.0/22 +add china_ip_route 45.254.196.0/22 +add china_ip_route 45.254.200.0/22 +add china_ip_route 45.254.204.0/22 +add china_ip_route 45.254.208.0/22 +add china_ip_route 45.254.212.0/22 +add china_ip_route 45.254.216.0/22 +add china_ip_route 45.254.220.0/22 +add china_ip_route 45.254.224.0/22 +add china_ip_route 45.254.228.0/22 +add china_ip_route 45.254.236.0/22 +add china_ip_route 45.254.240.0/22 +add china_ip_route 45.254.248.0/22 +add china_ip_route 45.255.0.0/22 +add china_ip_route 45.255.4.0/22 +add china_ip_route 45.255.8.0/22 +add china_ip_route 45.255.12.0/22 +add china_ip_route 45.255.16.0/22 +add china_ip_route 45.255.20.0/22 +add china_ip_route 45.255.24.0/22 +add china_ip_route 45.255.28.0/22 +add china_ip_route 45.255.32.0/22 +add china_ip_route 45.255.36.0/22 +add china_ip_route 45.255.40.0/22 +add china_ip_route 45.255.44.0/22 +add china_ip_route 45.255.48.0/22 +add china_ip_route 45.255.52.0/22 +add china_ip_route 45.255.56.0/22 +add china_ip_route 45.255.60.0/22 +add china_ip_route 45.255.64.0/22 +add china_ip_route 45.255.68.0/22 +add china_ip_route 45.255.72.0/22 +add china_ip_route 45.255.76.0/22 +add china_ip_route 45.255.80.0/22 +add china_ip_route 45.255.84.0/22 +add china_ip_route 45.255.88.0/22 +add china_ip_route 45.255.92.0/22 +add china_ip_route 45.255.96.0/22 +add china_ip_route 45.255.100.0/22 +add china_ip_route 45.255.104.0/22 +add china_ip_route 45.255.108.0/22 +add china_ip_route 45.255.112.0/22 +add china_ip_route 45.255.116.0/22 +add china_ip_route 45.255.120.0/22 +add china_ip_route 45.255.124.0/22 +add china_ip_route 45.255.132.0/22 +add china_ip_route 45.255.136.0/22 +add china_ip_route 45.255.140.0/22 +add china_ip_route 45.255.144.0/22 +add china_ip_route 45.255.148.0/22 +add china_ip_route 45.255.152.0/22 +add china_ip_route 45.255.156.0/22 +add china_ip_route 45.255.160.0/22 +add china_ip_route 45.255.164.0/22 +add china_ip_route 45.255.168.0/22 +add china_ip_route 45.255.172.0/22 +add china_ip_route 45.255.176.0/22 +add china_ip_route 45.255.180.0/22 +add china_ip_route 45.255.184.0/22 +add china_ip_route 45.255.188.0/22 +add china_ip_route 45.255.192.0/22 +add china_ip_route 45.255.196.0/22 +add china_ip_route 45.255.200.0/22 +add china_ip_route 45.255.204.0/22 +add china_ip_route 45.255.208.0/22 +add china_ip_route 45.255.212.0/22 +add china_ip_route 45.255.216.0/22 +add china_ip_route 45.255.220.0/22 +add china_ip_route 45.255.224.0/22 +add china_ip_route 45.255.228.0/22 +add china_ip_route 45.255.232.0/22 +add china_ip_route 45.255.236.0/22 +add china_ip_route 45.255.240.0/22 +add china_ip_route 45.255.244.0/22 +add china_ip_route 45.255.248.0/22 +add china_ip_route 47.92.0.0/14 +add china_ip_route 47.96.0.0/11 +add china_ip_route 49.4.0.0/14 +add china_ip_route 49.51.0.0/16 +add china_ip_route 49.52.0.0/14 +add china_ip_route 49.64.0.0/11 +add china_ip_route 49.112.0.0/13 +add china_ip_route 49.120.0.0/14 +add china_ip_route 49.128.0.0/24 +add china_ip_route 49.128.2.0/23 +add china_ip_route 49.128.4.0/22 +add china_ip_route 49.140.0.0/15 +add china_ip_route 49.152.0.0/14 +add china_ip_route 49.208.0.0/15 +add china_ip_route 49.210.0.0/15 +add china_ip_route 49.220.0.0/14 +add china_ip_route 49.232.0.0/14 +add china_ip_route 49.239.0.0/18 +add china_ip_route 49.239.192.0/18 +add china_ip_route 49.246.224.0/19 +add china_ip_route 52.80.0.0/15 +add china_ip_route 52.82.0.0/15 +add china_ip_route 52.130.0.0/15 +add china_ip_route 54.222.0.0/15 +add china_ip_route 58.14.0.0/15 +add china_ip_route 58.16.0.0/16 +add china_ip_route 58.17.0.0/17 +add china_ip_route 58.17.128.0/17 +add china_ip_route 58.18.0.0/16 +add china_ip_route 58.19.0.0/16 +add china_ip_route 58.20.0.0/16 +add china_ip_route 58.21.0.0/16 +add china_ip_route 58.22.0.0/15 +add china_ip_route 58.24.0.0/15 +add china_ip_route 58.30.0.0/15 +add china_ip_route 58.32.0.0/13 +add china_ip_route 58.40.0.0/15 +add china_ip_route 58.42.0.0/16 +add china_ip_route 58.43.0.0/16 +add china_ip_route 58.44.0.0/14 +add china_ip_route 58.48.0.0/13 +add china_ip_route 58.56.0.0/15 +add china_ip_route 58.58.0.0/16 +add china_ip_route 58.59.0.0/17 +add china_ip_route 58.59.128.0/17 +add china_ip_route 58.60.0.0/14 +add china_ip_route 58.65.232.0/21 +add china_ip_route 58.66.0.0/15 +add china_ip_route 58.68.128.0/17 +add china_ip_route 58.82.0.0/17 +add china_ip_route 58.83.0.0/17 +add china_ip_route 58.83.128.0/17 +add china_ip_route 58.87.64.0/18 +add china_ip_route 58.99.128.0/17 +add china_ip_route 58.100.0.0/15 +add china_ip_route 58.116.0.0/14 +add china_ip_route 58.128.0.0/13 +add china_ip_route 58.144.0.0/16 +add china_ip_route 58.154.0.0/15 +add china_ip_route 58.192.0.0/15 +add china_ip_route 58.194.0.0/15 +add china_ip_route 58.196.0.0/15 +add china_ip_route 58.198.0.0/15 +add china_ip_route 58.200.0.0/13 +add china_ip_route 58.208.0.0/12 +add china_ip_route 58.240.0.0/15 +add china_ip_route 58.242.0.0/15 +add china_ip_route 58.244.0.0/15 +add china_ip_route 58.246.0.0/15 +add china_ip_route 58.248.0.0/13 +add china_ip_route 59.32.0.0/13 +add china_ip_route 59.40.0.0/15 +add china_ip_route 59.42.0.0/16 +add china_ip_route 59.43.0.0/16 +add china_ip_route 59.44.0.0/14 +add china_ip_route 59.48.0.0/16 +add china_ip_route 59.49.0.0/17 +add china_ip_route 59.49.128.0/17 +add china_ip_route 59.50.0.0/16 +add china_ip_route 59.51.0.0/17 +add china_ip_route 59.51.128.0/17 +add china_ip_route 59.52.0.0/14 +add china_ip_route 59.56.0.0/14 +add china_ip_route 59.60.0.0/15 +add china_ip_route 59.62.0.0/15 +add china_ip_route 59.64.0.0/14 +add china_ip_route 59.68.0.0/14 +add china_ip_route 59.72.0.0/15 +add china_ip_route 59.74.0.0/15 +add china_ip_route 59.76.0.0/16 +add china_ip_route 59.77.0.0/16 +add china_ip_route 59.78.0.0/15 +add china_ip_route 59.80.0.0/15 +add china_ip_route 59.82.0.0/15 +add china_ip_route 59.107.0.0/17 +add china_ip_route 59.107.128.0/17 +add china_ip_route 59.108.0.0/15 +add china_ip_route 59.110.0.0/15 +add china_ip_route 59.151.0.0/17 +add china_ip_route 59.152.16.0/22 +add china_ip_route 59.152.20.0/22 +add china_ip_route 59.152.24.0/22 +add china_ip_route 59.152.28.0/22 +add china_ip_route 59.152.32.0/22 +add china_ip_route 59.152.36.0/22 +add china_ip_route 59.152.64.0/22 +add china_ip_route 59.152.68.0/22 +add china_ip_route 59.152.72.0/22 +add china_ip_route 59.152.76.0/22 +add china_ip_route 59.152.112.0/22 +add china_ip_route 59.152.116.0/22 +add china_ip_route 59.153.4.0/22 +add china_ip_route 59.153.32.0/22 +add china_ip_route 59.153.60.0/22 +add china_ip_route 59.153.64.0/22 +add china_ip_route 59.153.68.0/22 +add china_ip_route 59.153.72.0/22 +add china_ip_route 59.153.92.0/22 +add china_ip_route 59.153.116.0/22 +add china_ip_route 59.153.136.0/22 +add china_ip_route 59.153.152.0/22 +add china_ip_route 59.153.156.0/22 +add china_ip_route 59.153.164.0/22 +add china_ip_route 59.153.168.0/22 +add china_ip_route 59.153.172.0/22 +add china_ip_route 59.153.176.0/22 +add china_ip_route 59.153.180.0/22 +add china_ip_route 59.153.184.0/22 +add china_ip_route 59.153.188.0/22 +add china_ip_route 59.153.192.0/22 +add china_ip_route 59.155.0.0/16 +add china_ip_route 59.172.0.0/15 +add china_ip_route 59.174.0.0/15 +add china_ip_route 59.191.0.0/17 +add china_ip_route 59.191.240.0/20 +add china_ip_route 59.192.0.0/10 +add china_ip_route 60.0.0.0/13 +add china_ip_route 60.8.0.0/15 +add china_ip_route 60.10.0.0/16 +add china_ip_route 60.11.0.0/16 +add china_ip_route 60.12.0.0/16 +add china_ip_route 60.13.0.0/18 +add china_ip_route 60.13.64.0/18 +add china_ip_route 60.13.128.0/17 +add china_ip_route 60.14.0.0/15 +add china_ip_route 60.16.0.0/13 +add china_ip_route 60.24.0.0/14 +add china_ip_route 60.28.0.0/15 +add china_ip_route 60.30.0.0/16 +add china_ip_route 60.31.0.0/16 +add china_ip_route 60.55.0.0/16 +add china_ip_route 60.63.0.0/16 +add china_ip_route 60.160.0.0/15 +add china_ip_route 60.162.0.0/15 +add china_ip_route 60.164.0.0/15 +add china_ip_route 60.166.0.0/15 +add china_ip_route 60.168.0.0/13 +add china_ip_route 60.176.0.0/12 +add china_ip_route 60.194.0.0/15 +add china_ip_route 60.200.0.0/14 +add china_ip_route 60.204.0.0/16 +add china_ip_route 60.205.0.0/16 +add china_ip_route 60.206.0.0/15 +add china_ip_route 60.208.0.0/13 +add china_ip_route 60.216.0.0/15 +add china_ip_route 60.218.0.0/15 +add china_ip_route 60.220.0.0/14 +add china_ip_route 60.232.0.0/15 +add china_ip_route 60.235.0.0/16 +add china_ip_route 60.245.128.0/17 +add china_ip_route 60.247.0.0/16 +add china_ip_route 60.252.0.0/16 +add china_ip_route 60.253.128.0/17 +add china_ip_route 60.255.0.0/16 +add china_ip_route 61.4.80.0/22 +add china_ip_route 61.4.84.0/22 +add china_ip_route 61.4.88.0/21 +add china_ip_route 61.4.176.0/20 +add china_ip_route 61.8.160.0/20 +add china_ip_route 61.14.212.0/22 +add china_ip_route 61.14.216.0/22 +add china_ip_route 61.14.220.0/22 +add china_ip_route 61.14.240.0/22 +add china_ip_route 61.14.244.0/22 +add china_ip_route 61.28.0.0/20 +add china_ip_route 61.28.16.0/20 +add china_ip_route 61.28.32.0/19 +add china_ip_route 61.28.64.0/18 +add china_ip_route 61.29.128.0/18 +add china_ip_route 61.29.192.0/19 +add china_ip_route 61.29.224.0/20 +add china_ip_route 61.29.240.0/21 +add china_ip_route 61.29.248.0/22 +add china_ip_route 61.29.254.0/23 +add china_ip_route 61.45.128.0/18 +add china_ip_route 61.45.224.0/20 +add china_ip_route 61.47.128.0/18 +add china_ip_route 61.48.0.0/14 +add china_ip_route 61.52.0.0/15 +add china_ip_route 61.54.0.0/16 +add china_ip_route 61.55.0.0/16 +add china_ip_route 61.87.192.0/18 +add china_ip_route 61.128.0.0/15 +add china_ip_route 61.130.0.0/15 +add china_ip_route 61.132.0.0/16 +add china_ip_route 61.133.0.0/17 +add china_ip_route 61.133.128.0/17 +add china_ip_route 61.134.0.0/18 +add china_ip_route 61.134.64.0/19 +add china_ip_route 61.134.96.0/19 +add china_ip_route 61.134.128.0/18 +add china_ip_route 61.134.192.0/18 +add china_ip_route 61.135.0.0/16 +add china_ip_route 61.136.0.0/18 +add china_ip_route 61.136.64.0/18 +add china_ip_route 61.136.128.0/17 +add china_ip_route 61.137.0.0/17 +add china_ip_route 61.137.128.0/17 +add china_ip_route 61.138.0.0/18 +add china_ip_route 61.138.64.0/18 +add china_ip_route 61.138.128.0/18 +add china_ip_route 61.138.192.0/18 +add china_ip_route 61.139.0.0/17 +add china_ip_route 61.139.128.0/18 +add china_ip_route 61.139.192.0/18 +add china_ip_route 61.140.0.0/14 +add china_ip_route 61.144.0.0/14 +add china_ip_route 61.148.0.0/15 +add china_ip_route 61.150.0.0/15 +add china_ip_route 61.152.0.0/16 +add china_ip_route 61.153.0.0/16 +add china_ip_route 61.154.0.0/15 +add china_ip_route 61.156.0.0/16 +add china_ip_route 61.157.0.0/16 +add china_ip_route 61.158.0.0/17 +add china_ip_route 61.158.128.0/17 +add china_ip_route 61.159.0.0/18 +add china_ip_route 61.159.64.0/18 +add china_ip_route 61.159.128.0/17 +add china_ip_route 61.160.0.0/16 +add china_ip_route 61.161.0.0/18 +add china_ip_route 61.161.64.0/18 +add china_ip_route 61.161.128.0/17 +add china_ip_route 61.162.0.0/16 +add china_ip_route 61.163.0.0/16 +add china_ip_route 61.164.0.0/16 +add china_ip_route 61.165.0.0/16 +add china_ip_route 61.166.0.0/16 +add china_ip_route 61.167.0.0/16 +add china_ip_route 61.168.0.0/16 +add china_ip_route 61.169.0.0/16 +add china_ip_route 61.170.0.0/15 +add china_ip_route 61.172.0.0/14 +add china_ip_route 61.176.0.0/16 +add china_ip_route 61.177.0.0/16 +add china_ip_route 61.178.0.0/16 +add china_ip_route 61.179.0.0/16 +add china_ip_route 61.180.0.0/17 +add china_ip_route 61.180.128.0/17 +add china_ip_route 61.181.0.0/16 +add china_ip_route 61.182.0.0/16 +add china_ip_route 61.183.0.0/16 +add china_ip_route 61.184.0.0/14 +add china_ip_route 61.188.0.0/16 +add china_ip_route 61.189.0.0/17 +add china_ip_route 61.189.128.0/17 +add china_ip_route 61.190.0.0/15 +add china_ip_route 61.232.0.0/14 +add china_ip_route 61.236.0.0/15 +add china_ip_route 61.240.0.0/14 +add china_ip_route 62.234.0.0/16 +add china_ip_route 68.79.0.0/18 +add china_ip_route 69.230.192.0/18 +add china_ip_route 69.231.128.0/18 +add china_ip_route 69.234.192.0/18 +add china_ip_route 69.235.128.0/18 +add china_ip_route 71.131.192.0/18 +add china_ip_route 71.132.0.0/18 +add china_ip_route 71.136.64.0/18 +add china_ip_route 71.137.0.0/18 +add china_ip_route 81.68.0.0/14 +add china_ip_route 82.156.0.0/15 +add china_ip_route 94.191.0.0/17 +add china_ip_route 101.0.0.0/22 +add china_ip_route 101.1.0.0/22 +add china_ip_route 101.2.172.0/22 +add china_ip_route 101.4.0.0/14 +add china_ip_route 101.16.0.0/12 +add china_ip_route 101.33.128.0/17 +add china_ip_route 101.34.0.0/15 +add china_ip_route 101.36.0.0/18 +add china_ip_route 101.36.64.0/19 +add china_ip_route 101.36.128.0/17 +add china_ip_route 101.37.0.0/16 +add china_ip_route 101.38.0.0/15 +add china_ip_route 101.40.0.0/15 +add china_ip_route 101.42.0.0/15 +add china_ip_route 101.44.0.0/14 +add china_ip_route 101.48.0.0/15 +add china_ip_route 101.50.8.0/22 +add china_ip_route 101.50.12.0/22 +add china_ip_route 101.50.56.0/22 +add china_ip_route 101.52.0.0/16 +add china_ip_route 101.53.100.0/22 +add china_ip_route 101.54.0.0/16 +add china_ip_route 101.55.224.0/21 +add china_ip_route 101.64.0.0/13 +add china_ip_route 101.72.0.0/14 +add china_ip_route 101.76.0.0/15 +add china_ip_route 101.78.0.0/22 +add china_ip_route 101.78.32.0/19 +add china_ip_route 101.80.0.0/12 +add china_ip_route 101.96.0.0/21 +add china_ip_route 101.96.8.0/22 +add china_ip_route 101.96.16.0/20 +add china_ip_route 101.96.128.0/17 +add china_ip_route 101.99.96.0/19 +add china_ip_route 101.101.64.0/19 +add china_ip_route 101.101.100.0/24 +add china_ip_route 101.101.102.0/23 +add china_ip_route 101.101.104.0/21 +add china_ip_route 101.101.112.0/20 +add china_ip_route 101.102.64.0/19 +add china_ip_route 101.102.100.0/23 +add china_ip_route 101.102.102.0/24 +add china_ip_route 101.102.104.0/21 +add china_ip_route 101.102.112.0/20 +add china_ip_route 101.104.0.0/14 +add china_ip_route 101.110.64.0/19 +add china_ip_route 101.110.96.0/20 +add china_ip_route 101.110.116.0/22 +add china_ip_route 101.110.120.0/21 +add china_ip_route 101.120.0.0/14 +add china_ip_route 101.124.0.0/15 +add china_ip_route 101.126.0.0/16 +add china_ip_route 101.128.0.0/22 +add china_ip_route 101.128.8.0/21 +add china_ip_route 101.128.16.0/20 +add china_ip_route 101.128.32.0/19 +add china_ip_route 101.129.0.0/16 +add china_ip_route 101.130.0.0/15 +add china_ip_route 101.132.0.0/14 +add china_ip_route 101.144.0.0/12 +add china_ip_route 101.192.0.0/14 +add china_ip_route 101.196.0.0/16 +add china_ip_route 101.197.0.0/16 +add china_ip_route 101.198.0.0/15 +add china_ip_route 101.200.0.0/15 +add china_ip_route 101.203.128.0/19 +add china_ip_route 101.203.160.0/21 +add china_ip_route 101.203.172.0/22 +add china_ip_route 101.203.176.0/20 +add china_ip_route 101.204.0.0/14 +add china_ip_route 101.224.0.0/13 +add china_ip_route 101.232.0.0/15 +add china_ip_route 101.234.64.0/21 +add china_ip_route 101.234.76.0/22 +add china_ip_route 101.234.80.0/20 +add china_ip_route 101.234.96.0/19 +add china_ip_route 101.236.0.0/14 +add china_ip_route 101.240.0.0/14 +add china_ip_route 101.244.0.0/14 +add china_ip_route 101.248.0.0/15 +add china_ip_route 101.251.0.0/22 +add china_ip_route 101.251.8.0/21 +add china_ip_route 101.251.16.0/20 +add china_ip_route 101.251.32.0/19 +add china_ip_route 101.251.64.0/18 +add china_ip_route 101.251.128.0/17 +add china_ip_route 101.252.0.0/15 +add china_ip_route 101.254.0.0/16 +add china_ip_route 103.1.8.0/22 +add china_ip_route 103.1.20.0/22 +add china_ip_route 103.1.24.0/22 +add china_ip_route 103.1.72.0/22 +add china_ip_route 103.1.88.0/22 +add china_ip_route 103.1.168.0/22 +add china_ip_route 103.2.108.0/22 +add china_ip_route 103.2.156.0/22 +add china_ip_route 103.2.164.0/22 +add china_ip_route 103.2.200.0/22 +add china_ip_route 103.2.204.0/22 +add china_ip_route 103.2.208.0/22 +add china_ip_route 103.2.212.0/22 +add china_ip_route 103.3.84.0/22 +add china_ip_route 103.3.88.0/22 +add china_ip_route 103.3.92.0/22 +add china_ip_route 103.3.96.0/22 +add china_ip_route 103.3.100.0/22 +add china_ip_route 103.3.104.0/22 +add china_ip_route 103.3.108.0/22 +add china_ip_route 103.3.112.0/22 +add china_ip_route 103.3.116.0/22 +add china_ip_route 103.3.120.0/22 +add china_ip_route 103.3.124.0/22 +add china_ip_route 103.3.128.0/22 +add china_ip_route 103.3.132.0/22 +add china_ip_route 103.3.136.0/22 +add china_ip_route 103.3.140.0/22 +add china_ip_route 103.3.148.0/22 +add china_ip_route 103.3.152.0/22 +add china_ip_route 103.3.156.0/22 +add china_ip_route 103.4.56.0/22 +add china_ip_route 103.4.168.0/22 +add china_ip_route 103.4.184.0/22 +add china_ip_route 103.4.224.0/22 +add china_ip_route 103.5.36.0/22 +add china_ip_route 103.5.52.0/22 +add china_ip_route 103.5.56.0/22 +add china_ip_route 103.5.152.0/22 +add china_ip_route 103.5.168.0/22 +add china_ip_route 103.5.192.0/22 +add china_ip_route 103.5.252.0/22 +add china_ip_route 103.6.76.0/22 +add china_ip_route 103.6.108.0/22 +add china_ip_route 103.6.220.0/22 +add china_ip_route 103.6.228.0/22 +add china_ip_route 103.7.4.0/22 +add china_ip_route 103.7.28.0/22 +add china_ip_route 103.7.140.0/22 +add china_ip_route 103.7.212.0/22 +add china_ip_route 103.7.216.0/22 +add china_ip_route 103.7.220.0/22 +add china_ip_route 103.8.0.0/22 +add china_ip_route 103.8.4.0/22 +add china_ip_route 103.8.8.0/22 +add china_ip_route 103.8.32.0/22 +add china_ip_route 103.8.52.0/22 +add china_ip_route 103.8.68.0/22 +add china_ip_route 103.8.108.0/22 +add china_ip_route 103.8.156.0/22 +add china_ip_route 103.8.200.0/22 +add china_ip_route 103.8.204.0/22 +add china_ip_route 103.8.220.0/22 +add china_ip_route 103.9.8.0/22 +add china_ip_route 103.9.24.0/22 +add china_ip_route 103.9.108.0/22 +add china_ip_route 103.9.152.0/22 +add china_ip_route 103.9.192.0/22 +add china_ip_route 103.9.248.0/22 +add china_ip_route 103.9.252.0/22 +add china_ip_route 103.10.0.0/22 +add china_ip_route 103.10.16.0/22 +add china_ip_route 103.10.84.0/22 +add china_ip_route 103.10.140.0/22 +add china_ip_route 103.11.16.0/22 +add china_ip_route 103.11.168.0/22 +add china_ip_route 103.11.180.0/22 +add china_ip_route 103.12.32.0/22 +add china_ip_route 103.12.68.0/22 +add china_ip_route 103.12.92.0/22 +add china_ip_route 103.12.136.0/22 +add china_ip_route 103.12.184.0/22 +add china_ip_route 103.12.232.0/22 +add china_ip_route 103.13.12.0/22 +add china_ip_route 103.13.124.0/22 +add china_ip_route 103.13.144.0/22 +add china_ip_route 103.13.196.0/22 +add china_ip_route 103.13.220.0/22 +add china_ip_route 103.13.244.0/22 +add china_ip_route 103.14.32.0/22 +add china_ip_route 103.14.84.0/22 +add china_ip_route 103.14.100.0/22 +add china_ip_route 103.14.132.0/22 +add china_ip_route 103.14.136.0/22 +add china_ip_route 103.14.156.0/22 +add china_ip_route 103.14.240.0/22 +add china_ip_route 103.15.4.0/22 +add china_ip_route 103.15.8.0/22 +add china_ip_route 103.15.16.0/22 +add china_ip_route 103.15.96.0/22 +add china_ip_route 103.15.200.0/22 +add china_ip_route 103.16.52.0/22 +add china_ip_route 103.16.80.0/22 +add china_ip_route 103.16.84.0/22 +add china_ip_route 103.16.88.0/22 +add china_ip_route 103.16.108.0/22 +add china_ip_route 103.16.124.0/22 +add china_ip_route 103.17.40.0/22 +add china_ip_route 103.17.64.0/22 +add china_ip_route 103.17.120.0/22 +add china_ip_route 103.17.136.0/22 +add china_ip_route 103.17.160.0/22 +add china_ip_route 103.17.204.0/22 +add china_ip_route 103.17.228.0/22 +add china_ip_route 103.18.192.0/22 +add china_ip_route 103.18.208.0/22 +add china_ip_route 103.18.212.0/22 +add china_ip_route 103.18.224.0/22 +add china_ip_route 103.19.12.0/22 +add china_ip_route 103.19.40.0/22 +add china_ip_route 103.19.44.0/22 +add china_ip_route 103.19.64.0/22 +add china_ip_route 103.19.68.0/22 +add china_ip_route 103.19.72.0/22 +add china_ip_route 103.19.232.0/22 +add china_ip_route 103.20.12.0/22 +add china_ip_route 103.20.32.0/22 +add china_ip_route 103.20.44.0/22 +add china_ip_route 103.20.68.0/22 +add china_ip_route 103.20.112.0/22 +add china_ip_route 103.20.128.0/22 +add china_ip_route 103.20.160.0/22 +add china_ip_route 103.20.248.0/22 +add china_ip_route 103.21.112.0/22 +add china_ip_route 103.21.116.0/22 +add china_ip_route 103.21.136.0/22 +add china_ip_route 103.21.140.0/22 +add china_ip_route 103.21.176.0/22 +add china_ip_route 103.21.208.0/22 +add china_ip_route 103.21.240.0/22 +add china_ip_route 103.22.0.0/22 +add china_ip_route 103.22.4.0/22 +add china_ip_route 103.22.8.0/22 +add china_ip_route 103.22.12.0/22 +add china_ip_route 103.22.16.0/22 +add china_ip_route 103.22.20.0/22 +add china_ip_route 103.22.24.0/22 +add china_ip_route 103.22.28.0/22 +add china_ip_route 103.22.32.0/22 +add china_ip_route 103.22.36.0/22 +add china_ip_route 103.22.40.0/22 +add china_ip_route 103.22.44.0/22 +add china_ip_route 103.22.48.0/22 +add china_ip_route 103.22.52.0/22 +add china_ip_route 103.22.56.0/22 +add china_ip_route 103.22.60.0/22 +add china_ip_route 103.22.64.0/22 +add china_ip_route 103.22.68.0/22 +add china_ip_route 103.22.72.0/22 +add china_ip_route 103.22.76.0/22 +add china_ip_route 103.22.80.0/22 +add china_ip_route 103.22.84.0/22 +add china_ip_route 103.22.88.0/22 +add china_ip_route 103.22.92.0/22 +add china_ip_route 103.22.100.0/22 +add china_ip_route 103.22.104.0/22 +add china_ip_route 103.22.108.0/22 +add china_ip_route 103.22.112.0/22 +add china_ip_route 103.22.116.0/22 +add china_ip_route 103.22.120.0/22 +add china_ip_route 103.22.124.0/22 +add china_ip_route 103.22.188.0/22 +add china_ip_route 103.22.228.0/22 +add china_ip_route 103.22.252.0/22 +add china_ip_route 103.23.8.0/22 +add china_ip_route 103.23.56.0/22 +add china_ip_route 103.23.160.0/22 +add china_ip_route 103.23.164.0/22 +add china_ip_route 103.23.176.0/22 +add china_ip_route 103.23.228.0/22 +add china_ip_route 103.24.24.0/22 +add china_ip_route 103.24.116.0/22 +add china_ip_route 103.24.128.0/22 +add china_ip_route 103.24.144.0/22 +add china_ip_route 103.24.176.0/22 +add china_ip_route 103.24.184.0/22 +add china_ip_route 103.24.220.0/22 +add china_ip_route 103.24.228.0/22 +add china_ip_route 103.24.248.0/22 +add china_ip_route 103.24.252.0/22 +add china_ip_route 103.25.8.0/23 +add china_ip_route 103.25.20.0/22 +add china_ip_route 103.25.24.0/22 +add china_ip_route 103.25.28.0/22 +add china_ip_route 103.25.32.0/22 +add china_ip_route 103.25.36.0/22 +add china_ip_route 103.25.40.0/22 +add china_ip_route 103.25.48.0/22 +add china_ip_route 103.25.64.0/22 +add china_ip_route 103.25.68.0/22 +add china_ip_route 103.25.148.0/22 +add china_ip_route 103.25.156.0/22 +add china_ip_route 103.25.216.0/22 +add china_ip_route 103.26.0.0/22 +add china_ip_route 103.26.64.0/22 +add china_ip_route 103.26.76.0/22 +add china_ip_route 103.26.132.0/22 +add china_ip_route 103.26.156.0/22 +add china_ip_route 103.26.160.0/22 +add china_ip_route 103.26.228.0/22 +add china_ip_route 103.26.240.0/22 +add china_ip_route 103.27.4.0/22 +add china_ip_route 103.27.12.0/22 +add china_ip_route 103.27.24.0/22 +add china_ip_route 103.27.56.0/22 +add china_ip_route 103.27.96.0/22 +add china_ip_route 103.27.184.0/22 +add china_ip_route 103.27.208.0/22 +add china_ip_route 103.27.212.0/22 +add china_ip_route 103.27.240.0/22 +add china_ip_route 103.28.4.0/22 +add china_ip_route 103.28.8.0/22 +add china_ip_route 103.28.184.0/22 +add china_ip_route 103.28.204.0/22 +add china_ip_route 103.28.212.0/22 +add china_ip_route 103.29.16.0/22 +add china_ip_route 103.29.128.0/22 +add china_ip_route 103.29.132.0/22 +add china_ip_route 103.29.136.0/22 +add china_ip_route 103.30.20.0/22 +add china_ip_route 103.30.96.0/22 +add china_ip_route 103.30.148.0/22 +add china_ip_route 103.30.200.0/22 +add china_ip_route 103.30.228.0/22 +add china_ip_route 103.30.236.0/22 +add china_ip_route 103.31.0.0/22 +add china_ip_route 103.31.48.0/22 +add china_ip_route 103.31.52.0/22 +add china_ip_route 103.31.56.0/22 +add china_ip_route 103.31.60.0/22 +add china_ip_route 103.31.64.0/22 +add china_ip_route 103.31.68.0/22 +add china_ip_route 103.31.148.0/22 +add china_ip_route 103.31.160.0/22 +add china_ip_route 103.31.168.0/22 +add china_ip_route 103.31.200.0/22 +add china_ip_route 103.31.236.0/22 +add china_ip_route 103.32.0.0/22 +add china_ip_route 103.32.4.0/22 +add china_ip_route 103.32.8.0/22 +add china_ip_route 103.32.12.0/22 +add china_ip_route 103.32.16.0/22 +add china_ip_route 103.32.20.0/22 +add china_ip_route 103.32.24.0/22 +add china_ip_route 103.32.28.0/22 +add china_ip_route 103.32.32.0/22 +add china_ip_route 103.32.36.0/22 +add china_ip_route 103.32.40.0/22 +add china_ip_route 103.32.44.0/22 +add china_ip_route 103.32.48.0/22 +add china_ip_route 103.32.52.0/22 +add china_ip_route 103.32.56.0/22 +add china_ip_route 103.32.60.0/22 +add china_ip_route 103.32.64.0/22 +add china_ip_route 103.32.68.0/22 +add china_ip_route 103.32.72.0/22 +add china_ip_route 103.32.76.0/22 +add china_ip_route 103.32.80.0/22 +add china_ip_route 103.32.84.0/22 +add china_ip_route 103.32.88.0/22 +add china_ip_route 103.32.92.0/22 +add china_ip_route 103.32.96.0/22 +add china_ip_route 103.32.100.0/22 +add china_ip_route 103.32.104.0/22 +add china_ip_route 103.32.108.0/22 +add china_ip_route 103.32.112.0/22 +add china_ip_route 103.32.116.0/22 +add china_ip_route 103.32.120.0/22 +add china_ip_route 103.32.124.0/22 +add china_ip_route 103.32.128.0/22 +add china_ip_route 103.32.132.0/22 +add china_ip_route 103.32.136.0/22 +add china_ip_route 103.32.140.0/22 +add china_ip_route 103.32.144.0/22 +add china_ip_route 103.32.148.0/22 +add china_ip_route 103.32.152.0/22 +add china_ip_route 103.32.156.0/22 +add china_ip_route 103.32.160.0/22 +add china_ip_route 103.32.164.0/22 +add china_ip_route 103.32.168.0/22 +add china_ip_route 103.32.172.0/22 +add china_ip_route 103.32.176.0/22 +add china_ip_route 103.32.180.0/22 +add china_ip_route 103.32.184.0/22 +add china_ip_route 103.32.188.0/22 +add china_ip_route 103.32.192.0/22 +add china_ip_route 103.32.196.0/22 +add china_ip_route 103.32.200.0/22 +add china_ip_route 103.32.204.0/22 +add china_ip_route 103.32.208.0/22 +add china_ip_route 103.32.212.0/22 +add china_ip_route 103.32.216.0/22 +add china_ip_route 103.32.220.0/22 +add china_ip_route 103.32.224.0/22 +add china_ip_route 103.32.228.0/22 +add china_ip_route 103.32.232.0/22 +add china_ip_route 103.32.236.0/22 +add china_ip_route 103.32.240.0/22 +add china_ip_route 103.32.244.0/22 +add china_ip_route 103.32.248.0/22 +add china_ip_route 103.32.252.0/22 +add china_ip_route 103.33.0.0/22 +add china_ip_route 103.33.4.0/22 +add china_ip_route 103.33.8.0/22 +add china_ip_route 103.33.12.0/22 +add china_ip_route 103.33.16.0/22 +add china_ip_route 103.33.20.0/22 +add china_ip_route 103.33.24.0/22 +add china_ip_route 103.33.28.0/22 +add china_ip_route 103.33.32.0/22 +add china_ip_route 103.33.36.0/22 +add china_ip_route 103.33.40.0/22 +add china_ip_route 103.33.44.0/22 +add china_ip_route 103.33.48.0/22 +add china_ip_route 103.33.52.0/22 +add china_ip_route 103.33.56.0/22 +add china_ip_route 103.33.60.0/22 +add china_ip_route 103.33.64.0/22 +add china_ip_route 103.33.68.0/22 +add china_ip_route 103.33.72.0/22 +add china_ip_route 103.33.76.0/22 +add china_ip_route 103.33.80.0/22 +add china_ip_route 103.33.84.0/22 +add china_ip_route 103.33.88.0/22 +add china_ip_route 103.33.92.0/22 +add china_ip_route 103.33.96.0/22 +add china_ip_route 103.33.100.0/22 +add china_ip_route 103.33.104.0/22 +add china_ip_route 103.33.108.0/22 +add china_ip_route 103.33.112.0/22 +add china_ip_route 103.33.116.0/22 +add china_ip_route 103.33.120.0/22 +add china_ip_route 103.33.124.0/22 +add china_ip_route 103.33.128.0/22 +add china_ip_route 103.33.132.0/22 +add china_ip_route 103.33.136.0/22 +add china_ip_route 103.33.140.0/22 +add china_ip_route 103.33.144.0/22 +add china_ip_route 103.33.148.0/22 +add china_ip_route 103.33.152.0/22 +add china_ip_route 103.33.156.0/22 +add china_ip_route 103.33.160.0/22 +add china_ip_route 103.33.164.0/22 +add china_ip_route 103.33.168.0/22 +add china_ip_route 103.33.172.0/22 +add china_ip_route 103.33.176.0/22 +add china_ip_route 103.33.180.0/22 +add china_ip_route 103.33.184.0/22 +add china_ip_route 103.33.188.0/22 +add china_ip_route 103.33.192.0/22 +add china_ip_route 103.33.196.0/22 +add china_ip_route 103.33.200.0/22 +add china_ip_route 103.33.204.0/22 +add china_ip_route 103.33.208.0/22 +add china_ip_route 103.33.212.0/22 +add china_ip_route 103.33.216.0/22 +add china_ip_route 103.33.220.0/22 +add china_ip_route 103.33.224.0/22 +add china_ip_route 103.33.228.0/22 +add china_ip_route 103.33.232.0/22 +add china_ip_route 103.33.236.0/22 +add china_ip_route 103.33.240.0/22 +add china_ip_route 103.33.244.0/22 +add china_ip_route 103.33.248.0/22 +add china_ip_route 103.33.252.0/22 +add china_ip_route 103.34.0.0/22 +add china_ip_route 103.34.4.0/22 +add china_ip_route 103.34.8.0/22 +add china_ip_route 103.34.12.0/22 +add china_ip_route 103.34.16.0/22 +add china_ip_route 103.34.20.0/22 +add china_ip_route 103.34.24.0/22 +add china_ip_route 103.34.28.0/22 +add china_ip_route 103.34.32.0/22 +add china_ip_route 103.34.36.0/22 +add china_ip_route 103.34.40.0/22 +add china_ip_route 103.34.44.0/22 +add china_ip_route 103.34.48.0/22 +add china_ip_route 103.34.52.0/22 +add china_ip_route 103.34.56.0/22 +add china_ip_route 103.34.60.0/22 +add china_ip_route 103.34.64.0/22 +add china_ip_route 103.34.68.0/22 +add china_ip_route 103.34.72.0/22 +add china_ip_route 103.34.76.0/22 +add china_ip_route 103.34.80.0/22 +add china_ip_route 103.34.84.0/22 +add china_ip_route 103.34.88.0/22 +add china_ip_route 103.34.92.0/22 +add china_ip_route 103.34.96.0/22 +add china_ip_route 103.34.100.0/22 +add china_ip_route 103.34.104.0/22 +add china_ip_route 103.34.108.0/22 +add china_ip_route 103.34.112.0/22 +add china_ip_route 103.34.116.0/22 +add china_ip_route 103.34.120.0/22 +add china_ip_route 103.34.124.0/22 +add china_ip_route 103.34.128.0/22 +add china_ip_route 103.34.132.0/22 +add china_ip_route 103.34.136.0/22 +add china_ip_route 103.34.140.0/22 +add china_ip_route 103.34.144.0/22 +add china_ip_route 103.34.148.0/22 +add china_ip_route 103.34.152.0/22 +add china_ip_route 103.34.156.0/22 +add china_ip_route 103.34.160.0/22 +add china_ip_route 103.34.164.0/22 +add china_ip_route 103.34.168.0/22 +add china_ip_route 103.34.172.0/22 +add china_ip_route 103.34.176.0/22 +add china_ip_route 103.34.180.0/22 +add china_ip_route 103.34.184.0/22 +add china_ip_route 103.34.188.0/22 +add china_ip_route 103.34.192.0/22 +add china_ip_route 103.34.196.0/22 +add china_ip_route 103.34.200.0/22 +add china_ip_route 103.34.204.0/22 +add china_ip_route 103.34.208.0/22 +add china_ip_route 103.34.212.0/22 +add china_ip_route 103.34.216.0/22 +add china_ip_route 103.34.220.0/22 +add china_ip_route 103.34.224.0/22 +add china_ip_route 103.34.228.0/22 +add china_ip_route 103.34.232.0/22 +add china_ip_route 103.34.236.0/22 +add china_ip_route 103.34.240.0/22 +add china_ip_route 103.34.244.0/22 +add china_ip_route 103.34.248.0/22 +add china_ip_route 103.34.252.0/22 +add china_ip_route 103.35.0.0/22 +add china_ip_route 103.35.4.0/22 +add china_ip_route 103.35.8.0/22 +add china_ip_route 103.35.12.0/22 +add china_ip_route 103.35.16.0/22 +add china_ip_route 103.35.20.0/22 +add china_ip_route 103.35.24.0/22 +add china_ip_route 103.35.28.0/22 +add china_ip_route 103.35.32.0/22 +add china_ip_route 103.35.36.0/22 +add china_ip_route 103.35.40.0/22 +add china_ip_route 103.35.44.0/22 +add china_ip_route 103.35.48.0/22 +add china_ip_route 103.35.104.0/22 +add china_ip_route 103.35.116.0/22 +add china_ip_route 103.35.180.0/22 +add china_ip_route 103.35.200.0/22 +add china_ip_route 103.35.220.0/22 +add china_ip_route 103.36.28.0/22 +add china_ip_route 103.36.36.0/22 +add china_ip_route 103.36.56.0/22 +add china_ip_route 103.36.60.0/22 +add china_ip_route 103.36.64.0/22 +add china_ip_route 103.36.72.0/22 +add china_ip_route 103.36.96.0/22 +add china_ip_route 103.36.132.0/22 +add china_ip_route 103.36.136.0/22 +add china_ip_route 103.36.160.0/22 +add china_ip_route 103.36.164.0/22 +add china_ip_route 103.36.168.0/22 +add china_ip_route 103.36.172.0/22 +add china_ip_route 103.36.176.0/22 +add china_ip_route 103.36.180.0/22 +add china_ip_route 103.36.184.0/22 +add china_ip_route 103.36.188.0/22 +add china_ip_route 103.36.192.0/22 +add china_ip_route 103.36.196.0/22 +add china_ip_route 103.36.200.0/22 +add china_ip_route 103.36.204.0/22 +add china_ip_route 103.36.208.0/22 +add china_ip_route 103.36.212.0/22 +add china_ip_route 103.36.216.0/22 +add china_ip_route 103.36.220.0/22 +add china_ip_route 103.36.224.0/22 +add china_ip_route 103.36.228.0/22 +add china_ip_route 103.36.232.0/22 +add china_ip_route 103.36.236.0/22 +add china_ip_route 103.36.240.0/22 +add china_ip_route 103.36.244.0/22 +add china_ip_route 103.37.0.0/22 +add china_ip_route 103.37.12.0/22 +add china_ip_route 103.37.16.0/22 +add china_ip_route 103.37.24.0/22 +add china_ip_route 103.37.44.0/22 +add china_ip_route 103.37.52.0/22 +add china_ip_route 103.37.56.0/22 +add china_ip_route 103.37.72.0/22 +add china_ip_route 103.37.100.0/22 +add china_ip_route 103.37.104.0/22 +add china_ip_route 103.37.124.0/22 +add china_ip_route 103.37.136.0/22 +add china_ip_route 103.37.140.0/22 +add china_ip_route 103.37.144.0/22 +add china_ip_route 103.37.148.0/22 +add china_ip_route 103.37.152.0/22 +add china_ip_route 103.37.156.0/22 +add china_ip_route 103.37.160.0/22 +add china_ip_route 103.37.164.0/22 +add china_ip_route 103.37.172.0/22 +add china_ip_route 103.37.176.0/22 +add china_ip_route 103.37.188.0/22 +add china_ip_route 103.37.208.0/22 +add china_ip_route 103.37.212.0/22 +add china_ip_route 103.37.216.0/22 +add china_ip_route 103.37.220.0/22 +add china_ip_route 103.37.248.0/22 +add china_ip_route 103.37.252.0/22 +add china_ip_route 103.38.0.0/22 +add china_ip_route 103.38.32.0/22 +add china_ip_route 103.38.40.0/22 +add china_ip_route 103.38.44.0/22 +add china_ip_route 103.38.56.0/22 +add china_ip_route 103.38.76.0/22 +add china_ip_route 103.38.84.0/22 +add china_ip_route 103.38.92.0/22 +add china_ip_route 103.38.96.0/22 +add china_ip_route 103.38.116.0/22 +add china_ip_route 103.38.132.0/22 +add china_ip_route 103.38.140.0/22 +add china_ip_route 103.38.224.0/22 +add china_ip_route 103.38.228.0/22 +add china_ip_route 103.38.232.0/22 +add china_ip_route 103.39.16.0/22 +add china_ip_route 103.39.64.0/22 +add china_ip_route 103.39.88.0/22 +add china_ip_route 103.39.100.0/22 +add china_ip_route 103.39.104.0/22 +add china_ip_route 103.39.108.0/22 +add china_ip_route 103.39.160.0/22 +add china_ip_route 103.39.164.0/22 +add china_ip_route 103.39.168.0/22 +add china_ip_route 103.39.172.0/22 +add china_ip_route 103.39.176.0/22 +add china_ip_route 103.39.180.0/22 +add china_ip_route 103.39.184.0/22 +add china_ip_route 103.39.188.0/22 +add china_ip_route 103.39.200.0/22 +add china_ip_route 103.39.204.0/22 +add china_ip_route 103.39.208.0/22 +add china_ip_route 103.39.212.0/22 +add china_ip_route 103.39.216.0/22 +add china_ip_route 103.39.220.0/22 +add china_ip_route 103.39.224.0/22 +add china_ip_route 103.39.228.0/22 +add china_ip_route 103.39.232.0/22 +add china_ip_route 103.40.12.0/22 +add china_ip_route 103.40.16.0/22 +add china_ip_route 103.40.20.0/22 +add china_ip_route 103.40.24.0/22 +add china_ip_route 103.40.28.0/22 +add china_ip_route 103.40.32.0/22 +add china_ip_route 103.40.36.0/22 +add china_ip_route 103.40.40.0/22 +add china_ip_route 103.40.44.0/22 +add china_ip_route 103.40.88.0/22 +add china_ip_route 103.40.100.0/22 +add china_ip_route 103.40.192.0/22 +add china_ip_route 103.40.212.0/22 +add china_ip_route 103.40.220.0/22 +add china_ip_route 103.40.228.0/22 +add china_ip_route 103.40.232.0/22 +add china_ip_route 103.40.236.0/22 +add china_ip_route 103.40.240.0/22 +add china_ip_route 103.40.244.0/22 +add china_ip_route 103.40.248.0/22 +add china_ip_route 103.40.252.0/22 +add china_ip_route 103.41.0.0/22 +add china_ip_route 103.41.16.0/22 +add china_ip_route 103.41.52.0/22 +add china_ip_route 103.41.140.0/22 +add china_ip_route 103.41.148.0/22 +add china_ip_route 103.41.152.0/22 +add china_ip_route 103.41.160.0/22 +add china_ip_route 103.41.164.0/22 +add china_ip_route 103.41.220.0/22 +add china_ip_route 103.41.224.0/22 +add china_ip_route 103.41.228.0/22 +add china_ip_route 103.41.232.0/22 +add china_ip_route 103.42.8.0/22 +add china_ip_route 103.42.24.0/22 +add china_ip_route 103.42.28.0/22 +add china_ip_route 103.42.32.0/22 +add china_ip_route 103.42.64.0/22 +add china_ip_route 103.42.68.0/22 +add china_ip_route 103.42.76.0/22 +add china_ip_route 103.42.104.0/22 +add china_ip_route 103.42.180.0/22 +add china_ip_route 103.42.232.0/22 +add china_ip_route 103.43.16.0/22 +add china_ip_route 103.43.84.0/22 +add china_ip_route 103.43.96.0/22 +add china_ip_route 103.43.100.0/22 +add china_ip_route 103.43.104.0/22 +add china_ip_route 103.43.124.0/22 +add china_ip_route 103.43.184.0/22 +add china_ip_route 103.43.192.0/22 +add china_ip_route 103.43.196.0/22 +add china_ip_route 103.43.208.0/22 +add china_ip_route 103.43.220.0/22 +add china_ip_route 103.43.224.0/22 +add china_ip_route 103.43.240.0/22 +add china_ip_route 103.44.56.0/22 +add china_ip_route 103.44.80.0/22 +add china_ip_route 103.44.88.0/22 +add china_ip_route 103.44.120.0/22 +add china_ip_route 103.44.124.0/22 +add china_ip_route 103.44.132.0/22 +add china_ip_route 103.44.144.0/22 +add china_ip_route 103.44.168.0/22 +add china_ip_route 103.44.176.0/22 +add china_ip_route 103.44.180.0/22 +add china_ip_route 103.44.184.0/22 +add china_ip_route 103.44.188.0/22 +add china_ip_route 103.44.192.0/22 +add china_ip_route 103.44.196.0/22 +add china_ip_route 103.44.200.0/22 +add china_ip_route 103.44.204.0/22 +add china_ip_route 103.44.224.0/22 +add china_ip_route 103.44.236.0/22 +add china_ip_route 103.44.240.0/22 +add china_ip_route 103.44.244.0/22 +add china_ip_route 103.44.248.0/22 +add china_ip_route 103.44.252.0/22 +add china_ip_route 103.45.0.0/22 +add china_ip_route 103.45.4.0/22 +add china_ip_route 103.45.8.0/22 +add china_ip_route 103.45.12.0/22 +add china_ip_route 103.45.16.0/22 +add china_ip_route 103.45.20.0/22 +add china_ip_route 103.45.24.0/22 +add china_ip_route 103.45.28.0/22 +add china_ip_route 103.45.32.0/22 +add china_ip_route 103.45.36.0/22 +add china_ip_route 103.45.40.0/22 +add china_ip_route 103.45.44.0/22 +add china_ip_route 103.45.48.0/22 +add china_ip_route 103.45.52.0/22 +add china_ip_route 103.45.56.0/22 +add china_ip_route 103.45.60.0/22 +add china_ip_route 103.45.72.0/22 +add china_ip_route 103.45.76.0/22 +add china_ip_route 103.45.80.0/22 +add china_ip_route 103.45.84.0/22 +add china_ip_route 103.45.88.0/22 +add china_ip_route 103.45.92.0/22 +add china_ip_route 103.45.96.0/22 +add china_ip_route 103.45.100.0/22 +add china_ip_route 103.45.104.0/22 +add china_ip_route 103.45.108.0/22 +add china_ip_route 103.45.112.0/22 +add china_ip_route 103.45.116.0/22 +add china_ip_route 103.45.120.0/22 +add china_ip_route 103.45.124.0/22 +add china_ip_route 103.45.128.0/22 +add china_ip_route 103.45.132.0/22 +add china_ip_route 103.45.136.0/22 +add china_ip_route 103.45.140.0/22 +add china_ip_route 103.45.144.0/22 +add china_ip_route 103.45.148.0/22 +add china_ip_route 103.45.152.0/22 +add china_ip_route 103.45.156.0/22 +add china_ip_route 103.45.160.0/22 +add china_ip_route 103.45.164.0/22 +add china_ip_route 103.45.168.0/22 +add china_ip_route 103.45.172.0/22 +add china_ip_route 103.45.176.0/22 +add china_ip_route 103.45.180.0/22 +add china_ip_route 103.45.184.0/22 +add china_ip_route 103.45.188.0/22 +add china_ip_route 103.45.192.0/22 +add china_ip_route 103.45.196.0/22 +add china_ip_route 103.45.200.0/22 +add china_ip_route 103.45.204.0/22 +add china_ip_route 103.45.208.0/22 +add china_ip_route 103.45.212.0/22 +add china_ip_route 103.45.216.0/22 +add china_ip_route 103.45.220.0/22 +add china_ip_route 103.45.224.0/22 +add china_ip_route 103.45.248.0/22 +add china_ip_route 103.46.0.0/22 +add china_ip_route 103.46.12.0/22 +add china_ip_route 103.46.16.0/22 +add china_ip_route 103.46.20.0/22 +add china_ip_route 103.46.24.0/22 +add china_ip_route 103.46.28.0/22 +add china_ip_route 103.46.32.0/22 +add china_ip_route 103.46.36.0/22 +add china_ip_route 103.46.40.0/22 +add china_ip_route 103.46.44.0/22 +add china_ip_route 103.46.48.0/22 +add china_ip_route 103.46.52.0/22 +add china_ip_route 103.46.56.0/22 +add china_ip_route 103.46.60.0/22 +add china_ip_route 103.46.64.0/22 +add china_ip_route 103.46.68.0/22 +add china_ip_route 103.46.72.0/22 +add china_ip_route 103.46.76.0/22 +add china_ip_route 103.46.80.0/22 +add china_ip_route 103.46.84.0/22 +add china_ip_route 103.46.88.0/22 +add china_ip_route 103.46.92.0/22 +add china_ip_route 103.46.96.0/22 +add china_ip_route 103.46.100.0/22 +add china_ip_route 103.46.104.0/22 +add china_ip_route 103.46.108.0/22 +add china_ip_route 103.46.112.0/22 +add china_ip_route 103.46.116.0/22 +add china_ip_route 103.46.120.0/22 +add china_ip_route 103.46.124.0/22 +add china_ip_route 103.46.128.0/22 +add china_ip_route 103.46.132.0/22 +add china_ip_route 103.46.136.0/22 +add china_ip_route 103.46.152.0/22 +add china_ip_route 103.46.156.0/22 +add china_ip_route 103.46.160.0/22 +add china_ip_route 103.46.164.0/22 +add china_ip_route 103.46.168.0/22 +add china_ip_route 103.46.172.0/22 +add china_ip_route 103.46.176.0/22 +add china_ip_route 103.46.180.0/22 +add china_ip_route 103.46.244.0/22 +add china_ip_route 103.46.248.0/22 +add china_ip_route 103.47.4.0/22 +add china_ip_route 103.47.20.0/22 +add china_ip_route 103.47.36.0/22 +add china_ip_route 103.47.40.0/22 +add china_ip_route 103.47.48.0/22 +add china_ip_route 103.47.80.0/22 +add china_ip_route 103.47.96.0/22 +add china_ip_route 103.47.108.0/22 +add china_ip_route 103.47.116.0/22 +add china_ip_route 103.47.120.0/22 +add china_ip_route 103.47.136.0/22 +add china_ip_route 103.47.140.0/22 +add china_ip_route 103.47.212.0/22 +add china_ip_route 103.48.52.0/22 +add china_ip_route 103.48.92.0/22 +add china_ip_route 103.48.144.0/22 +add china_ip_route 103.48.148.0/22 +add china_ip_route 103.48.152.0/22 +add china_ip_route 103.48.156.0/22 +add china_ip_route 103.48.202.0/23 +add china_ip_route 103.48.216.0/22 +add china_ip_route 103.48.220.0/22 +add china_ip_route 103.48.224.0/22 +add china_ip_route 103.48.228.0/22 +add china_ip_route 103.48.232.0/22 +add china_ip_route 103.48.236.0/22 +add china_ip_route 103.48.240.0/22 +add china_ip_route 103.48.244.0/22 +add china_ip_route 103.49.12.0/22 +add china_ip_route 103.49.20.0/22 +add china_ip_route 103.49.72.0/22 +add china_ip_route 103.49.76.0/22 +add china_ip_route 103.49.92.0/22 +add china_ip_route 103.49.96.0/22 +add china_ip_route 103.49.108.0/22 +add china_ip_route 103.49.128.0/22 +add china_ip_route 103.49.176.0/22 +add china_ip_route 103.49.180.0/22 +add china_ip_route 103.49.196.0/22 +add china_ip_route 103.50.36.0/22 +add china_ip_route 103.50.44.0/22 +add china_ip_route 103.50.48.0/22 +add china_ip_route 103.50.52.0/22 +add china_ip_route 103.50.56.0/22 +add china_ip_route 103.50.60.0/22 +add china_ip_route 103.50.64.0/22 +add china_ip_route 103.50.68.0/22 +add china_ip_route 103.50.72.0/22 +add china_ip_route 103.50.108.0/22 +add china_ip_route 103.50.112.0/22 +add china_ip_route 103.50.116.0/22 +add china_ip_route 103.50.120.0/22 +add china_ip_route 103.50.124.0/22 +add china_ip_route 103.50.132.0/22 +add china_ip_route 103.50.136.0/22 +add china_ip_route 103.50.140.0/22 +add china_ip_route 103.50.172.0/22 +add china_ip_route 103.50.176.0/22 +add china_ip_route 103.50.180.0/22 +add china_ip_route 103.50.184.0/22 +add china_ip_route 103.50.188.0/22 +add china_ip_route 103.50.192.0/22 +add china_ip_route 103.50.196.0/22 +add china_ip_route 103.50.200.0/22 +add china_ip_route 103.50.220.0/22 +add china_ip_route 103.50.224.0/22 +add china_ip_route 103.50.228.0/22 +add china_ip_route 103.50.232.0/22 +add china_ip_route 103.50.236.0/22 +add china_ip_route 103.50.240.0/22 +add china_ip_route 103.50.244.0/22 +add china_ip_route 103.50.248.0/22 +add china_ip_route 103.52.40.0/22 +add china_ip_route 103.52.72.0/22 +add china_ip_route 103.52.76.0/22 +add china_ip_route 103.52.80.0/22 +add china_ip_route 103.52.84.0/22 +add china_ip_route 103.52.96.0/22 +add china_ip_route 103.52.100.0/22 +add china_ip_route 103.52.104.0/22 +add china_ip_route 103.52.160.0/22 +add china_ip_route 103.52.164.0/22 +add china_ip_route 103.52.172.0/22 +add china_ip_route 103.52.176.0/22 +add china_ip_route 103.52.184.0/22 +add china_ip_route 103.52.196.0/22 +add china_ip_route 103.53.64.0/22 +add china_ip_route 103.53.68.0/22 +add china_ip_route 103.53.92.0/22 +add china_ip_route 103.53.100.0/22 +add china_ip_route 103.53.124.0/22 +add china_ip_route 103.53.128.0/22 +add china_ip_route 103.53.132.0/22 +add china_ip_route 103.53.136.0/22 +add china_ip_route 103.53.140.0/22 +add china_ip_route 103.53.144.0/22 +add china_ip_route 103.53.180.0/22 +add china_ip_route 103.53.204.0/22 +add china_ip_route 103.53.208.0/22 +add china_ip_route 103.53.212.0/22 +add china_ip_route 103.53.216.0/22 +add china_ip_route 103.53.236.0/22 +add china_ip_route 103.53.248.0/22 +add china_ip_route 103.54.8.0/22 +add china_ip_route 103.54.48.0/22 +add china_ip_route 103.54.60.0/22 +add china_ip_route 103.54.160.0/22 +add china_ip_route 103.54.164.0/22 +add china_ip_route 103.54.212.0/22 +add china_ip_route 103.54.240.0/22 +add china_ip_route 103.55.24.0/22 +add china_ip_route 103.55.80.0/22 +add china_ip_route 103.55.120.0/22 +add china_ip_route 103.55.152.0/22 +add china_ip_route 103.55.172.0/22 +add china_ip_route 103.55.204.0/22 +add china_ip_route 103.55.208.0/22 +add china_ip_route 103.55.228.0/22 +add china_ip_route 103.55.236.0/22 +add china_ip_route 103.56.8.0/22 +add china_ip_route 103.56.16.0/22 +add china_ip_route 103.56.20.0/22 +add china_ip_route 103.56.32.0/22 +add china_ip_route 103.56.56.0/22 +add china_ip_route 103.56.60.0/22 +add china_ip_route 103.56.72.0/22 +add china_ip_route 103.56.76.0/22 +add china_ip_route 103.56.140.0/22 +add china_ip_route 103.56.152.0/22 +add china_ip_route 103.56.184.0/22 +add china_ip_route 103.56.200.0/22 +add china_ip_route 103.57.12.0/22 +add china_ip_route 103.57.52.0/22 +add china_ip_route 103.57.56.0/22 +add china_ip_route 103.57.76.0/22 +add china_ip_route 103.57.136.0/22 +add china_ip_route 103.57.196.0/22 +add china_ip_route 103.58.24.0/22 +add china_ip_route 103.59.76.0/22 +add china_ip_route 103.59.100.0/22 +add china_ip_route 103.59.112.0/22 +add china_ip_route 103.59.116.0/22 +add china_ip_route 103.59.120.0/22 +add china_ip_route 103.59.124.0/22 +add china_ip_route 103.59.128.0/22 +add china_ip_route 103.59.148.0/22 +add china_ip_route 103.59.164.0/22 +add china_ip_route 103.60.32.0/22 +add china_ip_route 103.60.44.0/22 +add china_ip_route 103.60.164.0/22 +add china_ip_route 103.60.228.0/22 +add china_ip_route 103.60.236.0/22 +add china_ip_route 103.61.60.0/22 +add china_ip_route 103.61.104.0/22 +add china_ip_route 103.61.140.0/22 +add china_ip_route 103.61.152.0/22 +add china_ip_route 103.61.156.0/22 +add china_ip_route 103.61.160.0/22 +add china_ip_route 103.61.172.0/22 +add china_ip_route 103.61.176.0/22 +add china_ip_route 103.61.188.0/22 +add china_ip_route 103.62.24.0/22 +add china_ip_route 103.62.52.0/22 +add china_ip_route 103.62.72.0/22 +add china_ip_route 103.62.76.0/22 +add china_ip_route 103.62.80.0/22 +add china_ip_route 103.62.84.0/22 +add china_ip_route 103.62.88.0/22 +add china_ip_route 103.62.96.0/22 +add china_ip_route 103.62.100.0/22 +add china_ip_route 103.62.104.0/22 +add china_ip_route 103.62.108.0/22 +add china_ip_route 103.62.112.0/22 +add china_ip_route 103.62.116.0/22 +add china_ip_route 103.62.120.0/22 +add china_ip_route 103.62.124.0/22 +add china_ip_route 103.62.128.0/22 +add china_ip_route 103.62.132.0/22 +add china_ip_route 103.62.156.0/22 +add china_ip_route 103.62.160.0/22 +add china_ip_route 103.62.164.0/22 +add china_ip_route 103.62.168.0/22 +add china_ip_route 103.62.172.0/22 +add china_ip_route 103.62.176.0/22 +add china_ip_route 103.62.180.0/22 +add china_ip_route 103.62.184.0/22 +add china_ip_route 103.62.188.0/22 +add china_ip_route 103.62.192.0/22 +add china_ip_route 103.62.204.0/22 +add china_ip_route 103.62.208.0/22 +add china_ip_route 103.62.212.0/22 +add china_ip_route 103.62.216.0/22 +add china_ip_route 103.62.220.0/22 +add china_ip_route 103.62.224.0/22 +add china_ip_route 103.63.32.0/22 +add china_ip_route 103.63.36.0/22 +add china_ip_route 103.63.40.0/22 +add china_ip_route 103.63.44.0/22 +add china_ip_route 103.63.48.0/22 +add china_ip_route 103.63.52.0/22 +add china_ip_route 103.63.56.0/22 +add china_ip_route 103.63.60.0/22 +add china_ip_route 103.63.64.0/22 +add china_ip_route 103.63.68.0/22 +add china_ip_route 103.63.72.0/22 +add china_ip_route 103.63.76.0/22 +add china_ip_route 103.63.80.0/22 +add china_ip_route 103.63.84.0/22 +add china_ip_route 103.63.88.0/22 +add china_ip_route 103.63.140.0/22 +add china_ip_route 103.63.144.0/22 +add china_ip_route 103.63.152.0/22 +add china_ip_route 103.63.160.0/22 +add china_ip_route 103.63.164.0/22 +add china_ip_route 103.63.168.0/22 +add china_ip_route 103.63.172.0/22 +add china_ip_route 103.63.176.0/22 +add china_ip_route 103.63.180.0/22 +add china_ip_route 103.63.184.0/22 +add china_ip_route 103.63.192.0/22 +add china_ip_route 103.63.196.0/22 +add china_ip_route 103.63.200.0/22 +add china_ip_route 103.63.204.0/22 +add china_ip_route 103.63.208.0/22 +add china_ip_route 103.63.240.0/22 +add china_ip_route 103.63.244.0/22 +add china_ip_route 103.63.248.0/22 +add china_ip_route 103.63.252.0/22 +add china_ip_route 103.64.0.0/22 +add china_ip_route 103.64.4.0/22 +add china_ip_route 103.64.24.0/22 +add china_ip_route 103.64.28.0/22 +add china_ip_route 103.64.32.0/22 +add china_ip_route 103.64.36.0/22 +add china_ip_route 103.64.40.0/22 +add china_ip_route 103.64.44.0/22 +add china_ip_route 103.64.48.0/22 +add china_ip_route 103.64.52.0/22 +add china_ip_route 103.64.56.0/22 +add china_ip_route 103.64.60.0/22 +add china_ip_route 103.64.64.0/22 +add china_ip_route 103.64.68.0/22 +add china_ip_route 103.64.72.0/22 +add china_ip_route 103.64.76.0/22 +add china_ip_route 103.64.80.0/22 +add china_ip_route 103.64.84.0/22 +add china_ip_route 103.64.88.0/22 +add china_ip_route 103.64.92.0/22 +add china_ip_route 103.64.96.0/22 +add china_ip_route 103.64.100.0/22 +add china_ip_route 103.64.104.0/22 +add china_ip_route 103.64.108.0/22 +add china_ip_route 103.64.112.0/22 +add china_ip_route 103.64.116.0/22 +add china_ip_route 103.64.120.0/22 +add china_ip_route 103.64.124.0/22 +add china_ip_route 103.64.140.0/22 +add china_ip_route 103.64.144.0/22 +add china_ip_route 103.64.152.0/22 +add china_ip_route 103.64.156.0/22 +add china_ip_route 103.64.160.0/22 +add china_ip_route 103.64.164.0/22 +add china_ip_route 103.64.168.0/22 +add china_ip_route 103.64.172.0/22 +add china_ip_route 103.64.176.0/22 +add china_ip_route 103.64.180.0/22 +add china_ip_route 103.64.184.0/22 +add china_ip_route 103.64.188.0/22 +add china_ip_route 103.64.192.0/22 +add china_ip_route 103.64.196.0/22 +add china_ip_route 103.64.200.0/22 +add china_ip_route 103.64.204.0/22 +add china_ip_route 103.64.208.0/22 +add china_ip_route 103.64.212.0/22 +add china_ip_route 103.64.216.0/22 +add china_ip_route 103.64.220.0/22 +add china_ip_route 103.64.224.0/22 +add china_ip_route 103.64.228.0/22 +add china_ip_route 103.64.232.0/22 +add china_ip_route 103.64.236.0/22 +add china_ip_route 103.64.240.0/22 +add china_ip_route 103.64.244.0/22 +add china_ip_route 103.64.248.0/22 +add china_ip_route 103.64.252.0/22 +add china_ip_route 103.65.0.0/22 +add china_ip_route 103.65.4.0/22 +add china_ip_route 103.65.8.0/22 +add china_ip_route 103.65.12.0/22 +add china_ip_route 103.65.16.0/22 +add china_ip_route 103.65.36.0/22 +add china_ip_route 103.65.40.0/22 +add china_ip_route 103.65.48.0/22 +add china_ip_route 103.65.52.0/22 +add china_ip_route 103.65.56.0/22 +add china_ip_route 103.65.60.0/22 +add china_ip_route 103.65.64.0/22 +add china_ip_route 103.65.68.0/22 +add china_ip_route 103.65.72.0/22 +add china_ip_route 103.65.76.0/22 +add china_ip_route 103.65.80.0/22 +add china_ip_route 103.65.84.0/22 +add china_ip_route 103.65.88.0/22 +add china_ip_route 103.65.92.0/22 +add china_ip_route 103.65.100.0/22 +add china_ip_route 103.65.104.0/22 +add china_ip_route 103.65.108.0/22 +add china_ip_route 103.65.112.0/22 +add china_ip_route 103.65.144.0/22 +add china_ip_route 103.65.148.0/22 +add china_ip_route 103.65.152.0/22 +add china_ip_route 103.65.156.0/22 +add china_ip_route 103.65.160.0/22 +add china_ip_route 103.65.164.0/22 +add china_ip_route 103.65.168.0/22 +add china_ip_route 103.65.172.0/22 +add china_ip_route 103.66.32.0/22 +add china_ip_route 103.66.40.0/22 +add china_ip_route 103.66.92.0/22 +add china_ip_route 103.66.108.0/22 +add china_ip_route 103.66.200.0/22 +add china_ip_route 103.66.216.0/22 +add china_ip_route 103.66.240.0/22 +add china_ip_route 103.66.244.0/22 +add china_ip_route 103.66.248.0/22 +add china_ip_route 103.66.252.0/22 +add china_ip_route 103.67.0.0/22 +add china_ip_route 103.67.4.0/22 +add china_ip_route 103.67.8.0/22 +add china_ip_route 103.67.100.0/22 +add china_ip_route 103.67.104.0/22 +add china_ip_route 103.67.108.0/22 +add china_ip_route 103.67.112.0/22 +add china_ip_route 103.67.116.0/22 +add china_ip_route 103.67.120.0/22 +add china_ip_route 103.67.124.0/22 +add china_ip_route 103.67.128.0/22 +add china_ip_route 103.67.132.0/22 +add china_ip_route 103.67.136.0/22 +add china_ip_route 103.67.140.0/22 +add china_ip_route 103.67.144.0/22 +add china_ip_route 103.67.148.0/22 +add china_ip_route 103.67.172.0/22 +add china_ip_route 103.67.192.0/22 +add china_ip_route 103.67.212.0/22 +add china_ip_route 103.67.252.0/22 +add china_ip_route 103.68.64.0/22 +add china_ip_route 103.68.88.0/22 +add china_ip_route 103.68.100.0/22 +add china_ip_route 103.68.128.0/22 +add china_ip_route 103.68.192.0/22 +add china_ip_route 103.69.16.0/22 +add china_ip_route 103.69.116.0/22 +add china_ip_route 103.69.132.0/22 +add china_ip_route 103.69.152.0/22 +add china_ip_route 103.69.212.0/22 +add china_ip_route 103.70.8.0/22 +add china_ip_route 103.70.148.0/22 +add china_ip_route 103.70.184.0/22 +add china_ip_route 103.70.220.0/22 +add china_ip_route 103.70.224.0/22 +add china_ip_route 103.70.236.0/22 +add china_ip_route 103.70.252.0/22 +add china_ip_route 103.71.0.0/22 +add china_ip_route 103.71.32.0/22 +add china_ip_route 103.71.48.0/22 +add china_ip_route 103.71.68.0/22 +add china_ip_route 103.71.72.0/22 +add china_ip_route 103.71.80.0/22 +add china_ip_route 103.71.84.0/22 +add china_ip_route 103.71.88.0/22 +add china_ip_route 103.71.120.0/22 +add china_ip_route 103.71.124.0/22 +add china_ip_route 103.71.128.0/22 +add china_ip_route 103.71.144.0/22 +add china_ip_route 103.71.196.0/22 +add china_ip_route 103.71.200.0/22 +add china_ip_route 103.71.232.0/22 +add china_ip_route 103.72.12.0/22 +add china_ip_route 103.72.16.0/22 +add china_ip_route 103.72.20.0/22 +add china_ip_route 103.72.24.0/22 +add china_ip_route 103.72.28.0/22 +add china_ip_route 103.72.32.0/22 +add china_ip_route 103.72.36.0/22 +add china_ip_route 103.72.40.0/22 +add china_ip_route 103.72.44.0/22 +add china_ip_route 103.72.48.0/22 +add china_ip_route 103.72.52.0/22 +add china_ip_route 103.72.112.0/22 +add china_ip_route 103.72.116.0/22 +add china_ip_route 103.72.120.0/22 +add china_ip_route 103.72.124.0/22 +add china_ip_route 103.72.128.0/22 +add china_ip_route 103.72.132.0/22 +add china_ip_route 103.72.144.0/22 +add china_ip_route 103.72.148.0/22 +add china_ip_route 103.72.172.0/22 +add china_ip_route 103.72.180.0/22 +add china_ip_route 103.72.224.0/22 +add china_ip_route 103.72.228.0/22 +add china_ip_route 103.72.232.0/22 +add china_ip_route 103.72.236.0/22 +add china_ip_route 103.72.240.0/22 +add china_ip_route 103.72.244.0/22 +add china_ip_route 103.72.248.0/22 +add china_ip_route 103.72.252.0/22 +add china_ip_route 103.73.0.0/22 +add china_ip_route 103.73.4.0/22 +add china_ip_route 103.73.8.0/22 +add china_ip_route 103.73.12.0/22 +add china_ip_route 103.73.16.0/22 +add china_ip_route 103.73.20.0/22 +add china_ip_route 103.73.24.0/22 +add china_ip_route 103.73.28.0/22 +add china_ip_route 103.73.48.0/22 +add china_ip_route 103.73.88.0/22 +add china_ip_route 103.73.96.0/22 +add china_ip_route 103.73.116.0/22 +add china_ip_route 103.73.120.0/22 +add china_ip_route 103.73.128.0/22 +add china_ip_route 103.73.132.0/22 +add china_ip_route 103.73.136.0/22 +add china_ip_route 103.73.140.0/22 +add china_ip_route 103.73.144.0/22 +add china_ip_route 103.73.168.0/22 +add china_ip_route 103.73.176.0/22 +add china_ip_route 103.73.204.0/22 +add china_ip_route 103.73.208.0/22 +add china_ip_route 103.73.240.0/22 +add china_ip_route 103.73.244.0/22 +add china_ip_route 103.73.248.0/22 +add china_ip_route 103.74.24.0/22 +add china_ip_route 103.74.28.0/22 +add china_ip_route 103.74.32.0/22 +add china_ip_route 103.74.36.0/22 +add china_ip_route 103.74.40.0/22 +add china_ip_route 103.74.44.0/22 +add china_ip_route 103.74.48.0/22 +add china_ip_route 103.74.56.0/22 +add china_ip_route 103.74.60.0/22 +add china_ip_route 103.74.80.0/22 +add china_ip_route 103.74.124.0/22 +add china_ip_route 103.74.148.0/22 +add china_ip_route 103.74.152.0/22 +add china_ip_route 103.74.156.0/22 +add china_ip_route 103.74.204.0/22 +add china_ip_route 103.74.232.0/22 +add china_ip_route 103.75.16.0/22 +add china_ip_route 103.75.88.0/22 +add china_ip_route 103.75.92.0/22 +add china_ip_route 103.75.104.0/22 +add china_ip_route 103.75.108.0/22 +add china_ip_route 103.75.112.0/22 +add china_ip_route 103.75.120.0/22 +add china_ip_route 103.75.128.0/22 +add china_ip_route 103.75.144.0/22 +add china_ip_route 103.75.152.0/22 +add china_ip_route 103.75.236.0/24 +add china_ip_route 103.76.60.0/22 +add china_ip_route 103.76.64.0/22 +add china_ip_route 103.76.68.0/22 +add china_ip_route 103.76.72.0/22 +add china_ip_route 103.76.84.0/22 +add china_ip_route 103.76.92.0/22 +add china_ip_route 103.76.216.0/22 +add china_ip_route 103.76.220.0/22 +add china_ip_route 103.76.224.0/22 +add china_ip_route 103.77.28.0/22 +add china_ip_route 103.77.52.0/22 +add china_ip_route 103.77.56.0/22 +add china_ip_route 103.77.72.0/22 +add china_ip_route 103.77.88.0/22 +add china_ip_route 103.77.92.0/22 +add china_ip_route 103.77.132.0/22 +add china_ip_route 103.77.148.0/22 +add china_ip_route 103.77.220.0/22 +add china_ip_route 103.78.56.0/22 +add china_ip_route 103.78.60.0/22 +add china_ip_route 103.78.64.0/22 +add china_ip_route 103.78.68.0/22 +add china_ip_route 103.78.124.0/22 +add china_ip_route 103.78.172.0/22 +add china_ip_route 103.78.176.0/22 +add china_ip_route 103.78.196.0/22 +add china_ip_route 103.78.228.0/22 +add china_ip_route 103.79.24.0/22 +add china_ip_route 103.79.28.0/22 +add china_ip_route 103.79.36.0/22 +add china_ip_route 103.79.40.0/22 +add china_ip_route 103.79.44.0/22 +add china_ip_route 103.79.52.0/22 +add china_ip_route 103.79.56.0/22 +add china_ip_route 103.79.60.0/22 +add china_ip_route 103.79.64.0/22 +add china_ip_route 103.79.68.0/22 +add china_ip_route 103.79.80.0/22 +add china_ip_route 103.79.84.0/22 +add china_ip_route 103.79.120.0/22 +add china_ip_route 103.79.136.0/22 +add china_ip_route 103.79.188.0/22 +add china_ip_route 103.79.192.0/22 +add china_ip_route 103.79.196.0/22 +add china_ip_route 103.79.200.0/22 +add china_ip_route 103.79.204.0/22 +add china_ip_route 103.79.208.0/22 +add china_ip_route 103.79.212.0/22 +add china_ip_route 103.79.240.0/22 +add china_ip_route 103.80.24.0/22 +add china_ip_route 103.80.28.0/22 +add china_ip_route 103.80.44.0/22 +add china_ip_route 103.80.72.0/22 +add china_ip_route 103.80.176.0/22 +add china_ip_route 103.80.180.0/22 +add china_ip_route 103.80.184.0/22 +add china_ip_route 103.80.192.0/22 +add china_ip_route 103.80.200.0/22 +add china_ip_route 103.80.232.0/22 +add china_ip_route 103.81.4.0/22 +add china_ip_route 103.81.8.0/22 +add china_ip_route 103.81.16.0/22 +add china_ip_route 103.81.20.0/22 +add china_ip_route 103.81.44.0/22 +add china_ip_route 103.81.48.0/22 +add china_ip_route 103.81.96.0/22 +add china_ip_route 103.81.120.0/22 +add china_ip_route 103.81.148.0/22 +add china_ip_route 103.81.164.0/22 +add china_ip_route 103.81.168.0/22 +add china_ip_route 103.81.183.0/24 +add china_ip_route 103.81.184.0/22 +add china_ip_route 103.81.200.0/22 +add china_ip_route 103.81.232.0/22 +add china_ip_route 103.82.52.0/22 +add china_ip_route 103.82.60.0/22 +add china_ip_route 103.82.68.0/22 +add china_ip_route 103.82.84.0/22 +add china_ip_route 103.82.104.0/22 +add china_ip_route 103.82.224.0/22 +add china_ip_route 103.82.236.0/22 +add china_ip_route 103.83.44.0/22 +add china_ip_route 103.83.52.0/22 +add china_ip_route 103.83.60.0/22 +add china_ip_route 103.83.64.0/22 +add china_ip_route 103.83.72.0/22 +add china_ip_route 103.83.112.0/22 +add china_ip_route 103.83.120.0/22 +add china_ip_route 103.83.180.0/22 +add china_ip_route 103.84.0.0/22 +add china_ip_route 103.84.12.0/22 +add china_ip_route 103.84.16.0/22 +add china_ip_route 103.84.20.0/22 +add china_ip_route 103.84.24.0/22 +add china_ip_route 103.84.28.0/22 +add china_ip_route 103.84.48.0/22 +add china_ip_route 103.84.64.0/22 +add china_ip_route 103.84.72.0/22 +add china_ip_route 103.84.92.0/22 +add china_ip_route 103.84.108.0/22 +add china_ip_route 103.84.136.0/22 +add china_ip_route 103.85.20.0/22 +add china_ip_route 103.85.24.0/22 +add china_ip_route 103.85.44.0/22 +add china_ip_route 103.85.48.0/22 +add china_ip_route 103.85.84.0/22 +add china_ip_route 103.85.136.0/22 +add china_ip_route 103.85.144.0/22 +add china_ip_route 103.85.164.0/22 +add china_ip_route 103.85.168.0/22 +add china_ip_route 103.85.172.0/22 +add china_ip_route 103.85.176.0/22 +add china_ip_route 103.85.224.0/22 +add china_ip_route 103.86.28.0/22 +add china_ip_route 103.86.32.0/22 +add china_ip_route 103.86.44.0/22 +add china_ip_route 103.86.60.0/22 +add china_ip_route 103.86.80.0/22 +add china_ip_route 103.86.84.0/22 +add china_ip_route 103.86.88.0/22 +add china_ip_route 103.86.204.0/22 +add china_ip_route 103.86.208.0/22 +add china_ip_route 103.86.212.0/22 +add china_ip_route 103.86.216.0/22 +add china_ip_route 103.86.220.0/22 +add china_ip_route 103.86.224.0/22 +add china_ip_route 103.86.228.0/22 +add china_ip_route 103.86.232.0/22 +add china_ip_route 103.86.236.0/22 +add china_ip_route 103.86.240.0/22 +add china_ip_route 103.86.244.0/22 +add china_ip_route 103.86.248.0/22 +add china_ip_route 103.86.252.0/22 +add china_ip_route 103.87.0.0/22 +add china_ip_route 103.87.4.0/22 +add china_ip_route 103.87.20.0/22 +add china_ip_route 103.87.32.0/22 +add china_ip_route 103.87.72.0/22 +add china_ip_route 103.87.96.0/22 +add china_ip_route 103.87.132.0/22 +add china_ip_route 103.87.180.0/22 +add china_ip_route 103.87.224.0/22 +add china_ip_route 103.88.4.0/22 +add china_ip_route 103.88.8.0/22 +add china_ip_route 103.88.12.0/22 +add china_ip_route 103.88.16.0/22 +add china_ip_route 103.88.20.0/22 +add china_ip_route 103.88.32.0/22 +add china_ip_route 103.88.36.0/22 +add china_ip_route 103.88.60.0/22 +add china_ip_route 103.88.64.0/22 +add china_ip_route 103.88.72.0/22 +add china_ip_route 103.88.96.0/22 +add china_ip_route 103.88.100.0/22 +add china_ip_route 103.88.164.0/22 +add china_ip_route 103.88.176.0/22 +add china_ip_route 103.88.184.0/22 +add china_ip_route 103.88.188.0/22 +add china_ip_route 103.88.212.0/22 +add china_ip_route 103.89.28.0/22 +add china_ip_route 103.89.96.0/22 +add china_ip_route 103.89.100.0/22 +add china_ip_route 103.89.104.0/22 +add china_ip_route 103.89.108.0/22 +add china_ip_route 103.89.112.0/22 +add china_ip_route 103.89.116.0/22 +add china_ip_route 103.89.148.0/22 +add china_ip_route 103.89.172.0/22 +add china_ip_route 103.89.184.0/22 +add china_ip_route 103.89.188.0/22 +add china_ip_route 103.89.192.0/22 +add china_ip_route 103.89.196.0/22 +add china_ip_route 103.89.200.0/22 +add china_ip_route 103.89.204.0/22 +add china_ip_route 103.89.208.0/22 +add china_ip_route 103.89.212.0/22 +add china_ip_route 103.89.216.0/22 +add china_ip_route 103.89.220.0/22 +add china_ip_route 103.89.224.0/22 +add china_ip_route 103.89.228.0/22 +add china_ip_route 103.90.52.0/22 +add china_ip_route 103.90.92.0/22 +add china_ip_route 103.90.100.0/22 +add china_ip_route 103.90.104.0/22 +add china_ip_route 103.90.108.0/22 +add china_ip_route 103.90.112.0/22 +add china_ip_route 103.90.116.0/22 +add china_ip_route 103.90.120.0/22 +add china_ip_route 103.90.124.0/22 +add china_ip_route 103.90.128.0/22 +add china_ip_route 103.90.132.0/22 +add china_ip_route 103.90.152.0/22 +add china_ip_route 103.90.168.0/22 +add china_ip_route 103.90.173.0/24 +add china_ip_route 103.90.176.0/22 +add china_ip_route 103.90.188.0/22 +add china_ip_route 103.90.192.0/22 +add china_ip_route 103.91.36.0/22 +add china_ip_route 103.91.40.0/22 +add china_ip_route 103.91.108.0/22 +add china_ip_route 103.91.152.0/22 +add china_ip_route 103.91.176.0/22 +add china_ip_route 103.91.200.0/22 +add china_ip_route 103.91.208.0/22 +add china_ip_route 103.91.212.0/22 +add china_ip_route 103.91.219.0/24 +add china_ip_route 103.91.236.0/22 +add china_ip_route 103.91.252.0/22 +add china_ip_route 103.92.0.0/22 +add china_ip_route 103.92.4.0/22 +add china_ip_route 103.92.8.0/22 +add china_ip_route 103.92.12.0/22 +add china_ip_route 103.92.48.0/22 +add china_ip_route 103.92.52.0/22 +add china_ip_route 103.92.56.0/22 +add china_ip_route 103.92.60.0/22 +add china_ip_route 103.92.64.0/22 +add china_ip_route 103.92.68.0/22 +add china_ip_route 103.92.72.0/22 +add china_ip_route 103.92.76.0/22 +add china_ip_route 103.92.80.0/22 +add china_ip_route 103.92.86.0/24 +add china_ip_route 103.92.88.0/22 +add china_ip_route 103.92.108.0/22 +add china_ip_route 103.92.124.0/22 +add china_ip_route 103.92.128.0/24 +add china_ip_route 103.92.132.0/22 +add china_ip_route 103.92.156.0/22 +add china_ip_route 103.92.164.0/22 +add china_ip_route 103.92.168.0/22 +add china_ip_route 103.92.172.0/22 +add china_ip_route 103.92.176.0/22 +add china_ip_route 103.92.180.0/22 +add china_ip_route 103.92.184.0/22 +add china_ip_route 103.92.188.0/22 +add china_ip_route 103.92.192.0/22 +add china_ip_route 103.92.236.0/22 +add china_ip_route 103.92.240.0/22 +add china_ip_route 103.92.244.0/22 +add china_ip_route 103.92.248.0/22 +add china_ip_route 103.92.252.0/22 +add china_ip_route 103.93.0.0/22 +add china_ip_route 103.93.4.0/22 +add china_ip_route 103.93.28.0/22 +add china_ip_route 103.93.76.0/22 +add china_ip_route 103.93.84.0/22 +add china_ip_route 103.93.152.0/22 +add china_ip_route 103.93.180.0/22 +add china_ip_route 103.93.204.0/22 +add china_ip_route 103.94.12.0/22 +add china_ip_route 103.94.20.0/22 +add china_ip_route 103.94.28.0/22 +add china_ip_route 103.94.32.0/22 +add china_ip_route 103.94.36.0/22 +add china_ip_route 103.94.40.0/22 +add china_ip_route 103.94.44.0/22 +add china_ip_route 103.94.72.0/22 +add china_ip_route 103.94.88.0/22 +add china_ip_route 103.94.116.0/22 +add china_ip_route 103.94.160.0/22 +add china_ip_route 103.94.180.0/22 +add china_ip_route 103.94.200.0/22 +add china_ip_route 103.95.28.0/22 +add china_ip_route 103.95.52.0/22 +add china_ip_route 103.95.64.0/22 +add china_ip_route 103.95.68.0/22 +add china_ip_route 103.95.88.0/22 +add china_ip_route 103.95.92.0/22 +add china_ip_route 103.95.116.0/22 +add china_ip_route 103.95.128.0/22 +add china_ip_route 103.95.136.0/22 +add china_ip_route 103.95.140.0/22 +add china_ip_route 103.95.144.0/22 +add china_ip_route 103.95.152.0/22 +add china_ip_route 103.95.207.0/24 +add china_ip_route 103.95.216.0/22 +add china_ip_route 103.95.220.0/22 +add china_ip_route 103.95.224.0/22 +add china_ip_route 103.95.236.0/22 +add china_ip_route 103.95.240.0/22 +add china_ip_route 103.95.244.0/22 +add china_ip_route 103.95.248.0/22 +add china_ip_route 103.95.252.0/22 +add china_ip_route 103.96.0.0/22 +add china_ip_route 103.96.8.0/22 +add china_ip_route 103.96.80.0/22 +add china_ip_route 103.96.124.0/22 +add china_ip_route 103.96.136.0/22 +add china_ip_route 103.96.140.0/24 +add china_ip_route 103.96.148.0/22 +add china_ip_route 103.96.152.0/22 +add china_ip_route 103.96.156.0/22 +add china_ip_route 103.96.160.0/22 +add china_ip_route 103.96.164.0/22 +add china_ip_route 103.96.168.0/22 +add china_ip_route 103.96.172.0/22 +add china_ip_route 103.96.176.0/22 +add china_ip_route 103.96.180.0/22 +add china_ip_route 103.96.184.0/22 +add china_ip_route 103.96.188.0/22 +add china_ip_route 103.96.192.0/22 +add china_ip_route 103.96.196.0/22 +add china_ip_route 103.96.200.0/22 +add china_ip_route 103.96.204.0/22 +add china_ip_route 103.96.208.0/22 +add china_ip_route 103.96.212.0/22 +add china_ip_route 103.96.216.0/22 +add china_ip_route 103.97.8.0/22 +add china_ip_route 103.97.12.0/22 +add china_ip_route 103.97.16.0/22 +add china_ip_route 103.97.20.0/22 +add china_ip_route 103.97.24.0/22 +add china_ip_route 103.97.28.0/22 +add china_ip_route 103.97.32.0/22 +add china_ip_route 103.97.36.0/22 +add china_ip_route 103.97.40.0/22 +add china_ip_route 103.97.56.0/22 +add china_ip_route 103.97.60.0/22 +add china_ip_route 103.97.64.0/22 +add china_ip_route 103.97.68.0/22 +add china_ip_route 103.97.72.0/22 +add china_ip_route 103.97.80.0/22 +add china_ip_route 103.97.112.0/22 +add china_ip_route 103.97.116.0/22 +add china_ip_route 103.97.128.0/22 +add china_ip_route 103.97.144.0/22 +add china_ip_route 103.97.148.0/22 +add china_ip_route 103.97.188.0/22 +add china_ip_route 103.97.192.0/22 +add china_ip_route 103.97.224.0/22 +add china_ip_route 103.97.228.0/23 +add china_ip_route 103.98.28.0/23 +add china_ip_route 103.98.40.0/22 +add china_ip_route 103.98.44.0/22 +add china_ip_route 103.98.48.0/22 +add china_ip_route 103.98.56.0/22 +add china_ip_route 103.98.80.0/22 +add china_ip_route 103.98.88.0/22 +add china_ip_route 103.98.92.0/22 +add china_ip_route 103.98.96.0/22 +add china_ip_route 103.98.100.0/22 +add china_ip_route 103.98.124.0/22 +add china_ip_route 103.98.136.0/22 +add china_ip_route 103.98.140.0/22 +add china_ip_route 103.98.144.0/22 +add china_ip_route 103.98.164.0/22 +add china_ip_route 103.98.168.0/22 +add china_ip_route 103.98.180.0/22 +add china_ip_route 103.98.196.0/22 +add china_ip_route 103.98.216.0/22 +add china_ip_route 103.98.220.0/22 +add china_ip_route 103.98.224.0/22 +add china_ip_route 103.98.228.0/22 +add china_ip_route 103.98.232.0/22 +add china_ip_route 103.98.240.0/22 +add china_ip_route 103.98.244.0/22 +add china_ip_route 103.98.248.0/22 +add china_ip_route 103.98.252.0/22 +add china_ip_route 103.99.40.0/23 +add china_ip_route 103.99.52.0/22 +add china_ip_route 103.99.56.0/22 +add china_ip_route 103.99.60.0/22 +add china_ip_route 103.99.76.0/22 +add china_ip_route 103.99.104.0/22 +add china_ip_route 103.99.116.0/22 +add china_ip_route 103.99.120.0/22 +add china_ip_route 103.99.152.0/22 +add china_ip_route 103.99.220.0/22 +add china_ip_route 103.99.232.0/22 +add china_ip_route 103.99.236.0/22 +add china_ip_route 103.100.0.0/22 +add china_ip_route 103.100.32.0/22 +add china_ip_route 103.100.40.0/22 +add china_ip_route 103.100.48.0/22 +add china_ip_route 103.100.52.0/22 +add china_ip_route 103.100.56.0/22 +add china_ip_route 103.100.60.0/22 +add china_ip_route 103.100.64.0/22 +add china_ip_route 103.100.68.0/22 +add china_ip_route 103.100.88.0/22 +add china_ip_route 103.100.116.0/22 +add china_ip_route 103.100.140.0/22 +add china_ip_route 103.100.144.0/22 +add china_ip_route 103.100.236.0/22 +add china_ip_route 103.100.240.0/22 +add china_ip_route 103.100.248.0/22 +add china_ip_route 103.100.252.0/22 +add china_ip_route 103.101.4.0/22 +add china_ip_route 103.101.8.0/22 +add china_ip_route 103.101.12.0/22 +add china_ip_route 103.101.28.0/22 +add china_ip_route 103.101.60.0/22 +add china_ip_route 103.101.120.0/22 +add china_ip_route 103.101.124.0/22 +add china_ip_route 103.101.144.0/22 +add china_ip_route 103.101.148.0/22 +add china_ip_route 103.101.153.0/24 +add china_ip_route 103.101.180.0/22 +add china_ip_route 103.101.184.0/22 +add china_ip_route 103.102.76.0/22 +add china_ip_route 103.102.80.0/22 +add china_ip_route 103.102.168.0/22 +add china_ip_route 103.102.172.0/22 +add china_ip_route 103.102.180.0/22 +add china_ip_route 103.102.184.0/22 +add china_ip_route 103.102.188.0/22 +add china_ip_route 103.102.192.0/22 +add china_ip_route 103.102.196.0/22 +add china_ip_route 103.102.200.0/22 +add china_ip_route 103.102.208.0/22 +add china_ip_route 103.102.212.0/22 +add china_ip_route 103.103.12.0/22 +add china_ip_route 103.103.16.0/22 +add china_ip_route 103.103.36.0/22 +add china_ip_route 103.103.68.0/22 +add china_ip_route 103.103.72.0/22 +add china_ip_route 103.103.176.0/22 +add china_ip_route 103.103.188.0/22 +add china_ip_route 103.103.200.0/22 +add china_ip_route 103.103.204.0/22 +add china_ip_route 103.103.220.0/22 +add china_ip_route 103.103.224.0/22 +add china_ip_route 103.103.228.0/22 +add china_ip_route 103.103.232.0/22 +add china_ip_route 103.103.248.0/22 +add china_ip_route 103.103.252.0/22 +add china_ip_route 103.104.0.0/22 +add china_ip_route 103.104.4.0/22 +add china_ip_route 103.104.36.0/22 +add china_ip_route 103.104.40.0/22 +add china_ip_route 103.104.64.0/22 +add china_ip_route 103.104.104.0/22 +add china_ip_route 103.104.152.0/22 +add china_ip_route 103.104.168.0/22 +add china_ip_route 103.104.172.0/22 +add china_ip_route 103.104.188.0/22 +add china_ip_route 103.104.198.0/23 +add china_ip_route 103.104.252.0/22 +add china_ip_route 103.105.0.0/22 +add china_ip_route 103.105.4.0/22 +add china_ip_route 103.105.12.0/22 +add china_ip_route 103.105.16.0/22 +add china_ip_route 103.105.23.0/24 +add china_ip_route 103.105.56.0/22 +add china_ip_route 103.105.60.0/22 +add china_ip_route 103.105.116.0/22 +add china_ip_route 103.105.132.0/22 +add china_ip_route 103.105.180.0/22 +add china_ip_route 103.105.184.0/22 +add china_ip_route 103.105.200.0/22 +add china_ip_route 103.105.204.0/22 +add china_ip_route 103.105.220.0/22 +add china_ip_route 103.106.36.0/22 +add china_ip_route 103.106.40.0/22 +add china_ip_route 103.106.44.0/22 +add china_ip_route 103.106.60.0/22 +add china_ip_route 103.106.68.0/22 +add china_ip_route 103.106.96.0/22 +add china_ip_route 103.106.120.0/22 +add china_ip_route 103.106.128.0/22 +add china_ip_route 103.106.132.0/22 +add china_ip_route 103.106.160.0/22 +add china_ip_route 103.106.188.0/22 +add china_ip_route 103.106.196.0/22 +add china_ip_route 103.106.202.0/23 +add china_ip_route 103.106.212.0/22 +add china_ip_route 103.106.244.0/22 +add china_ip_route 103.106.252.0/22 +add china_ip_route 103.107.0.0/22 +add china_ip_route 103.107.8.0/24 +add china_ip_route 103.107.28.0/22 +add china_ip_route 103.107.32.0/22 +add china_ip_route 103.107.44.0/22 +add china_ip_route 103.107.72.0/22 +add china_ip_route 103.107.108.0/22 +add china_ip_route 103.107.164.0/22 +add china_ip_route 103.107.168.0/22 +add china_ip_route 103.107.188.0/22 +add china_ip_route 103.107.192.0/22 +add china_ip_route 103.107.208.0/22 +add china_ip_route 103.107.212.0/22 +add china_ip_route 103.107.216.0/22 +add china_ip_route 103.107.220.0/22 +add china_ip_route 103.108.52.0/22 +add china_ip_route 103.108.64.0/22 +add china_ip_route 103.108.160.0/22 +add china_ip_route 103.108.164.0/22 +add china_ip_route 103.108.184.0/23 +add china_ip_route 103.108.188.0/23 +add china_ip_route 103.108.192.0/22 +add china_ip_route 103.108.196.0/22 +add china_ip_route 103.108.208.0/22 +add china_ip_route 103.108.212.0/22 +add china_ip_route 103.108.224.0/22 +add china_ip_route 103.108.244.0/22 +add china_ip_route 103.108.251.0/24 +add china_ip_route 103.109.20.0/22 +add china_ip_route 103.109.48.0/22 +add china_ip_route 103.109.88.0/22 +add china_ip_route 103.109.106.0/23 +add china_ip_route 103.109.248.0/22 +add china_ip_route 103.110.32.0/22 +add china_ip_route 103.110.80.0/23 +add china_ip_route 103.110.92.0/22 +add china_ip_route 103.110.100.0/22 +add china_ip_route 103.110.116.0/22 +add china_ip_route 103.110.127.0/24 +add china_ip_route 103.110.128.0/23 +add china_ip_route 103.110.131.0/24 +add china_ip_route 103.110.132.0/22 +add china_ip_route 103.110.136.0/22 +add china_ip_route 103.110.152.0/22 +add china_ip_route 103.110.156.0/22 +add china_ip_route 103.110.188.0/22 +add china_ip_route 103.110.204.0/22 +add china_ip_route 103.111.64.0/22 +add china_ip_route 103.111.172.0/22 +add china_ip_route 103.111.252.0/22 +add china_ip_route 103.112.28.0/22 +add china_ip_route 103.112.68.0/22 +add china_ip_route 103.112.72.0/22 +add china_ip_route 103.112.88.0/22 +add china_ip_route 103.112.92.0/22 +add china_ip_route 103.112.96.0/22 +add china_ip_route 103.112.108.0/22 +add china_ip_route 103.112.112.0/22 +add china_ip_route 103.112.116.0/22 +add china_ip_route 103.112.140.0/22 +add china_ip_route 103.112.172.0/22 +add china_ip_route 103.112.184.0/22 +add china_ip_route 103.112.208.0/22 +add china_ip_route 103.113.4.0/22 +add china_ip_route 103.113.92.0/22 +add china_ip_route 103.113.144.0/22 +add china_ip_route 103.113.220.0/22 +add china_ip_route 103.113.232.0/22 +add china_ip_route 103.113.236.0/22 +add china_ip_route 103.114.4.0/22 +add china_ip_route 103.114.28.0/22 +add china_ip_route 103.114.68.0/22 +add china_ip_route 103.114.72.0/22 +add china_ip_route 103.114.100.0/22 +add china_ip_route 103.114.132.0/22 +add china_ip_route 103.114.148.0/22 +add china_ip_route 103.114.156.0/22 +add china_ip_route 103.114.176.0/22 +add china_ip_route 103.114.212.0/22 +add china_ip_route 103.114.236.0/22 +add china_ip_route 103.114.240.0/22 +add china_ip_route 103.115.16.0/22 +add china_ip_route 103.115.40.0/22 +add china_ip_route 103.115.44.0/22 +add china_ip_route 103.115.48.0/22 +add china_ip_route 103.115.52.0/22 +add china_ip_route 103.115.56.0/22 +add china_ip_route 103.115.60.0/22 +add china_ip_route 103.115.64.0/22 +add china_ip_route 103.115.68.0/22 +add china_ip_route 103.115.92.0/22 +add china_ip_route 103.115.120.0/22 +add china_ip_route 103.115.148.0/22 +add china_ip_route 103.115.204.0/23 +add china_ip_route 103.115.248.0/22 +add china_ip_route 103.116.20.0/22 +add china_ip_route 103.116.40.0/22 +add china_ip_route 103.116.64.0/22 +add china_ip_route 103.116.72.0/22 +add china_ip_route 103.116.76.0/22 +add china_ip_route 103.116.92.0/22 +add china_ip_route 103.116.120.0/22 +add china_ip_route 103.116.128.0/22 +add china_ip_route 103.116.132.0/23 +add china_ip_route 103.116.148.0/22 +add china_ip_route 103.116.184.0/22 +add china_ip_route 103.116.206.0/23 +add china_ip_route 103.116.220.0/22 +add china_ip_route 103.116.224.0/22 +add china_ip_route 103.116.228.0/22 +add china_ip_route 103.117.16.0/22 +add china_ip_route 103.117.72.0/22 +add china_ip_route 103.117.88.0/22 +add china_ip_route 103.117.132.0/22 +add china_ip_route 103.117.136.0/22 +add china_ip_route 103.117.188.0/22 +add china_ip_route 103.117.220.0/22 +add china_ip_route 103.118.19.0/24 +add china_ip_route 103.118.36.0/22 +add china_ip_route 103.118.52.0/22 +add china_ip_route 103.118.56.0/22 +add china_ip_route 103.118.60.0/22 +add china_ip_route 103.118.64.0/22 +add china_ip_route 103.118.68.0/22 +add china_ip_route 103.118.72.0/22 +add china_ip_route 103.118.88.0/22 +add china_ip_route 103.118.173.0/24 +add china_ip_route 103.118.192.0/22 +add china_ip_route 103.118.196.0/22 +add china_ip_route 103.118.200.0/22 +add china_ip_route 103.118.204.0/22 +add china_ip_route 103.118.208.0/22 +add china_ip_route 103.118.212.0/22 +add china_ip_route 103.118.216.0/22 +add china_ip_route 103.118.220.0/22 +add china_ip_route 103.118.240.0/22 +add china_ip_route 103.118.244.0/22 +add china_ip_route 103.118.248.0/22 +add china_ip_route 103.118.252.0/22 +add china_ip_route 103.119.0.0/22 +add china_ip_route 103.119.12.0/22 +add china_ip_route 103.119.16.0/22 +add china_ip_route 103.119.28.0/22 +add china_ip_route 103.119.44.0/22 +add china_ip_route 103.119.104.0/22 +add china_ip_route 103.119.115.0/24 +add china_ip_route 103.119.156.0/22 +add china_ip_route 103.119.180.0/22 +add china_ip_route 103.119.200.0/22 +add china_ip_route 103.119.224.0/22 +add china_ip_route 103.120.52.0/22 +add china_ip_route 103.120.72.0/22 +add china_ip_route 103.120.88.0/22 +add china_ip_route 103.120.96.0/22 +add china_ip_route 103.120.100.0/22 +add china_ip_route 103.120.140.0/22 +add china_ip_route 103.120.196.0/22 +add china_ip_route 103.120.224.0/22 +add china_ip_route 103.121.52.0/22 +add china_ip_route 103.121.92.0/22 +add china_ip_route 103.121.160.0/22 +add china_ip_route 103.121.164.0/22 +add china_ip_route 103.121.250.0/24 +add china_ip_route 103.121.252.0/22 +add china_ip_route 103.122.48.0/22 +add china_ip_route 103.122.176.0/22 +add china_ip_route 103.122.192.0/22 +add china_ip_route 103.122.240.0/22 +add china_ip_route 103.123.4.0/22 +add china_ip_route 103.123.56.0/22 +add china_ip_route 103.123.88.0/22 +add china_ip_route 103.123.92.0/22 +add china_ip_route 103.123.116.0/22 +add china_ip_route 103.123.160.0/22 +add china_ip_route 103.123.176.0/22 +add china_ip_route 103.123.200.0/22 +add china_ip_route 103.123.204.0/22 +add china_ip_route 103.123.208.0/22 +add china_ip_route 103.123.212.0/22 +add china_ip_route 103.124.24.0/22 +add china_ip_route 103.124.48.0/22 +add china_ip_route 103.124.64.0/22 +add china_ip_route 103.124.212.0/22 +add china_ip_route 103.124.216.0/22 +add china_ip_route 103.125.20.0/22 +add china_ip_route 103.125.44.0/22 +add china_ip_route 103.125.132.0/22 +add china_ip_route 103.125.164.0/22 +add china_ip_route 103.125.196.0/22 +add china_ip_route 103.125.236.0/22 +add china_ip_route 103.125.248.0/22 +add china_ip_route 103.126.0.0/22 +add china_ip_route 103.126.16.0/22 +add china_ip_route 103.126.44.0/22 +add china_ip_route 103.126.100.0/22 +add china_ip_route 103.126.124.0/22 +add china_ip_route 103.126.128.0/22 +add china_ip_route 103.126.132.0/22 +add china_ip_route 103.126.208.0/22 +add china_ip_route 103.126.241.0/24 +add china_ip_route 103.129.52.0/22 +add china_ip_route 103.130.132.0/22 +add china_ip_route 103.130.152.0/24 +add china_ip_route 103.130.160.0/22 +add china_ip_route 103.130.228.0/22 +add china_ip_route 103.131.20.0/22 +add china_ip_route 103.131.36.0/22 +add china_ip_route 103.131.152.0/22 +add china_ip_route 103.131.168.0/22 +add china_ip_route 103.131.176.0/22 +add china_ip_route 103.131.224.0/22 +add china_ip_route 103.131.228.0/22 +add china_ip_route 103.131.240.0/22 +add china_ip_route 103.132.60.0/22 +add china_ip_route 103.132.64.0/22 +add china_ip_route 103.132.68.0/22 +add china_ip_route 103.132.72.0/22 +add china_ip_route 103.132.76.0/22 +add china_ip_route 103.132.80.0/22 +add china_ip_route 103.132.104.0/22 +add china_ip_route 103.132.108.0/22 +add china_ip_route 103.132.112.0/22 +add china_ip_route 103.132.116.0/22 +add china_ip_route 103.132.120.0/22 +add china_ip_route 103.132.160.0/22 +add china_ip_route 103.132.164.0/22 +add china_ip_route 103.132.188.0/22 +add china_ip_route 103.132.208.0/22 +add china_ip_route 103.132.212.0/22 +add china_ip_route 103.132.234.0/23 +add china_ip_route 103.133.12.0/22 +add china_ip_route 103.133.40.0/22 +add china_ip_route 103.133.128.0/22 +add china_ip_route 103.133.136.0/22 +add china_ip_route 103.133.176.0/22 +add china_ip_route 103.133.232.0/22 +add china_ip_route 103.134.12.0/24 +add china_ip_route 103.134.196.0/22 +add china_ip_route 103.135.80.0/22 +add china_ip_route 103.135.124.0/22 +add china_ip_route 103.135.148.0/22 +add china_ip_route 103.135.156.0/22 +add china_ip_route 103.135.160.0/22 +add china_ip_route 103.135.164.0/22 +add china_ip_route 103.135.176.0/22 +add china_ip_route 103.135.184.0/22 +add china_ip_route 103.135.192.0/22 +add china_ip_route 103.135.196.0/22 +add china_ip_route 103.135.236.0/22 +add china_ip_route 103.136.128.0/22 +add china_ip_route 103.136.232.0/22 +add china_ip_route 103.137.58.0/23 +add china_ip_route 103.137.60.0/24 +add china_ip_route 103.137.76.0/22 +add china_ip_route 103.137.136.0/23 +add china_ip_route 103.137.149.0/24 +add china_ip_route 103.137.180.0/22 +add china_ip_route 103.137.236.0/22 +add china_ip_route 103.138.2.0/23 +add china_ip_route 103.138.12.0/23 +add china_ip_route 103.138.80.0/22 +add china_ip_route 103.138.134.0/23 +add china_ip_route 103.138.156.0/23 +add china_ip_route 103.138.208.0/23 +add china_ip_route 103.138.220.0/23 +add china_ip_route 103.138.246.0/23 +add china_ip_route 103.138.248.0/23 +add china_ip_route 103.139.0.0/23 +add china_ip_route 103.139.2.0/23 +add china_ip_route 103.139.22.0/23 +add china_ip_route 103.139.113.0/24 +add china_ip_route 103.139.134.0/23 +add china_ip_route 103.139.136.0/23 +add china_ip_route 103.139.172.0/23 +add china_ip_route 103.139.200.0/23 +add china_ip_route 103.139.204.0/23 +add china_ip_route 103.139.212.0/23 +add china_ip_route 103.140.8.0/23 +add china_ip_route 103.140.14.0/23 +add china_ip_route 103.140.70.0/23 +add china_ip_route 103.140.126.0/23 +add china_ip_route 103.140.140.0/23 +add china_ip_route 103.140.144.0/23 +add china_ip_route 103.140.152.0/23 +add china_ip_route 103.140.192.0/23 +add china_ip_route 103.140.194.0/23 +add china_ip_route 103.140.228.0/23 +add china_ip_route 103.141.10.0/23 +add china_ip_route 103.141.36.0/23 +add china_ip_route 103.141.58.0/23 +add china_ip_route 103.141.128.0/23 +add china_ip_route 103.141.186.0/23 +add china_ip_route 103.141.242.0/23 +add china_ip_route 103.142.28.0/23 +add china_ip_route 103.142.58.0/23 +add china_ip_route 103.142.82.0/23 +add china_ip_route 103.142.96.0/23 +add china_ip_route 103.142.102.0/23 +add china_ip_route 103.142.122.0/23 +add china_ip_route 103.142.126.0/24 +add china_ip_route 103.142.128.0/23 +add china_ip_route 103.142.140.0/23 +add china_ip_route 103.142.154.0/23 +add china_ip_route 103.142.156.0/23 +add china_ip_route 103.142.172.0/23 +add china_ip_route 103.142.180.0/23 +add china_ip_route 103.142.186.0/23 +add china_ip_route 103.142.190.0/23 +add china_ip_route 103.142.220.0/23 +add china_ip_route 103.142.230.0/24 +add china_ip_route 103.142.234.0/23 +add china_ip_route 103.142.238.0/23 +add china_ip_route 103.142.248.0/23 +add china_ip_route 103.143.16.0/23 +add china_ip_route 103.143.18.0/23 +add china_ip_route 103.143.31.0/24 +add china_ip_route 103.143.74.0/23 +add china_ip_route 103.143.120.0/23 +add china_ip_route 103.143.124.0/23 +add china_ip_route 103.143.132.0/23 +add china_ip_route 103.143.134.0/23 +add china_ip_route 103.143.174.0/23 +add china_ip_route 103.143.228.0/23 +add china_ip_route 103.144.40.0/23 +add china_ip_route 103.144.52.0/23 +add china_ip_route 103.144.66.0/23 +add china_ip_route 103.144.70.0/23 +add china_ip_route 103.144.72.0/23 +add china_ip_route 103.144.88.0/24 +add china_ip_route 103.144.108.0/23 +add china_ip_route 103.144.136.0/23 +add china_ip_route 103.144.148.0/23 +add china_ip_route 103.144.158.0/23 +add china_ip_route 103.144.240.0/23 +add china_ip_route 103.145.38.0/23 +add china_ip_route 103.145.40.0/23 +add china_ip_route 103.145.42.0/23 +add china_ip_route 103.145.60.0/23 +add china_ip_route 103.145.72.0/23 +add china_ip_route 103.145.80.0/23 +add china_ip_route 103.145.86.0/23 +add china_ip_route 103.145.92.0/23 +add china_ip_route 103.145.94.0/23 +add china_ip_route 103.145.98.0/23 +add china_ip_route 103.145.106.0/23 +add china_ip_route 103.145.122.0/23 +add china_ip_route 103.145.188.0/23 +add china_ip_route 103.145.190.0/23 +add china_ip_route 103.146.6.0/23 +add china_ip_route 103.146.72.0/23 +add china_ip_route 103.146.88.0/23 +add china_ip_route 103.146.90.0/23 +add china_ip_route 103.146.124.0/23 +add china_ip_route 103.146.126.0/23 +add china_ip_route 103.146.138.0/23 +add china_ip_route 103.146.147.0/24 +add china_ip_route 103.146.230.0/23 +add china_ip_route 103.146.236.0/23 +add china_ip_route 103.146.252.0/23 +add china_ip_route 103.147.12.0/23 +add china_ip_route 103.147.124.0/23 +add china_ip_route 103.147.198.0/23 +add china_ip_route 103.147.206.0/23 +add china_ip_route 103.147.211.0/24 +add china_ip_route 103.148.174.0/23 +add china_ip_route 103.149.6.0/23 +add china_ip_route 103.149.17.0/24 +add china_ip_route 103.149.44.0/23 +add china_ip_route 103.149.110.0/23 +add china_ip_route 103.149.132.0/23 +add china_ip_route 103.149.144.0/23 +add china_ip_route 103.149.156.0/23 +add china_ip_route 103.149.181.0/24 +add china_ip_route 103.149.190.0/23 +add china_ip_route 103.149.210.0/23 +add china_ip_route 103.149.214.0/23 +add china_ip_route 103.149.220.0/23 +add china_ip_route 103.149.242.0/23 +add china_ip_route 103.149.244.0/23 +add china_ip_route 103.149.246.0/23 +add china_ip_route 103.149.248.0/23 +add china_ip_route 103.150.24.0/23 +add china_ip_route 103.150.66.0/23 +add china_ip_route 103.150.72.0/23 +add china_ip_route 103.150.122.0/23 +add china_ip_route 103.150.126.0/23 +add china_ip_route 103.150.128.0/23 +add china_ip_route 103.150.130.0/23 +add china_ip_route 103.150.146.0/23 +add china_ip_route 103.150.164.0/23 +add china_ip_route 103.150.172.0/23 +add china_ip_route 103.150.180.0/23 +add china_ip_route 103.150.200.0/23 +add china_ip_route 103.150.210.0/23 +add china_ip_route 103.150.214.0/23 +add china_ip_route 103.150.216.0/23 +add china_ip_route 103.150.244.0/23 +add china_ip_route 103.151.4.0/23 +add china_ip_route 103.151.44.0/23 +add china_ip_route 103.151.138.0/23 +add china_ip_route 103.151.142.0/23 +add china_ip_route 103.151.148.0/23 +add china_ip_route 103.151.150.0/23 +add china_ip_route 103.151.158.0/23 +add china_ip_route 103.151.178.0/23 +add china_ip_route 103.151.206.0/23 +add china_ip_route 103.151.216.0/23 +add china_ip_route 103.151.228.0/23 +add china_ip_route 103.152.14.0/23 +add china_ip_route 103.152.24.0/23 +add china_ip_route 103.152.28.0/23 +add china_ip_route 103.152.30.0/23 +add china_ip_route 103.152.56.0/23 +add china_ip_route 103.152.76.0/23 +add china_ip_route 103.152.80.0/23 +add china_ip_route 103.152.98.0/23 +add china_ip_route 103.152.112.0/23 +add china_ip_route 103.152.120.0/23 +add china_ip_route 103.152.122.0/23 +add china_ip_route 103.152.132.0/23 +add china_ip_route 103.152.152.0/23 +add china_ip_route 103.152.168.0/23 +add china_ip_route 103.152.170.0/23 +add china_ip_route 103.152.186.0/23 +add china_ip_route 103.152.190.0/23 +add china_ip_route 103.152.192.0/23 +add china_ip_route 103.152.200.0/23 +add china_ip_route 103.152.208.0/23 +add china_ip_route 103.152.224.0/23 +add china_ip_route 103.152.226.0/23 +add china_ip_route 103.152.246.0/23 +add china_ip_route 103.152.250.0/23 +add china_ip_route 103.153.4.0/23 +add china_ip_route 103.153.36.0/23 +add china_ip_route 103.153.98.0/23 +add china_ip_route 103.153.100.0/23 +add china_ip_route 103.153.114.0/23 +add china_ip_route 103.153.122.0/23 +add china_ip_route 103.153.128.0/23 +add china_ip_route 103.153.132.0/23 +add china_ip_route 103.153.138.0/23 +add china_ip_route 103.153.146.0/23 +add china_ip_route 103.153.160.0/23 +add china_ip_route 103.154.18.0/23 +add china_ip_route 103.154.30.0/23 +add china_ip_route 103.154.32.0/23 +add china_ip_route 103.154.40.0/23 +add china_ip_route 103.154.66.0/23 +add china_ip_route 103.154.162.0/23 +add china_ip_route 103.154.164.0/23 +add china_ip_route 103.154.168.0/23 +add china_ip_route 103.154.242.0/23 +add china_ip_route 103.155.14.0/23 +add china_ip_route 103.155.16.0/23 +add china_ip_route 103.155.34.0/23 +add china_ip_route 103.155.48.0/23 +add china_ip_route 103.155.76.0/23 +add china_ip_route 103.155.100.0/23 +add china_ip_route 103.155.110.0/23 +add china_ip_route 103.155.120.0/23 +add china_ip_route 103.155.214.0/23 +add china_ip_route 103.155.248.0/23 +add china_ip_route 103.156.24.0/23 +add china_ip_route 103.156.28.0/23 +add china_ip_route 103.156.68.0/23 +add china_ip_route 103.156.78.0/23 +add china_ip_route 103.156.104.0/23 +add china_ip_route 103.156.158.0/23 +add china_ip_route 103.156.166.0/23 +add china_ip_route 103.156.174.0/23 +add china_ip_route 103.156.186.0/23 +add china_ip_route 103.156.228.0/23 +add china_ip_route 103.157.30.0/23 +add china_ip_route 103.157.138.0/23 +add china_ip_route 103.157.174.0/23 +add china_ip_route 103.157.212.0/23 +add china_ip_route 103.157.234.0/23 +add china_ip_route 103.157.254.0/23 +add china_ip_route 103.158.0.0/23 +add china_ip_route 103.158.8.0/23 +add china_ip_route 103.158.13.0/24 +add china_ip_route 103.158.16.0/23 +add china_ip_route 103.158.190.0/23 +add china_ip_route 103.158.200.0/23 +add china_ip_route 103.158.224.0/23 +add china_ip_route 103.159.80.0/23 +add china_ip_route 103.159.122.0/23 +add china_ip_route 103.159.124.0/23 +add china_ip_route 103.159.134.0/23 +add china_ip_route 103.159.142.0/23 +add china_ip_route 103.192.0.0/22 +add china_ip_route 103.192.4.0/22 +add china_ip_route 103.192.8.0/22 +add china_ip_route 103.192.12.0/22 +add china_ip_route 103.192.16.0/22 +add china_ip_route 103.192.20.0/22 +add china_ip_route 103.192.24.0/22 +add china_ip_route 103.192.28.0/22 +add china_ip_route 103.192.48.0/22 +add china_ip_route 103.192.52.0/22 +add china_ip_route 103.192.56.0/22 +add china_ip_route 103.192.84.0/22 +add china_ip_route 103.192.88.0/22 +add china_ip_route 103.192.92.0/22 +add china_ip_route 103.192.96.0/22 +add china_ip_route 103.192.100.0/22 +add china_ip_route 103.192.104.0/22 +add china_ip_route 103.192.108.0/22 +add china_ip_route 103.192.112.0/22 +add china_ip_route 103.192.128.0/22 +add china_ip_route 103.192.132.0/22 +add china_ip_route 103.192.136.0/22 +add china_ip_route 103.192.140.0/22 +add china_ip_route 103.192.144.0/22 +add china_ip_route 103.192.164.0/22 +add china_ip_route 103.192.188.0/22 +add china_ip_route 103.192.208.0/22 +add china_ip_route 103.192.212.0/22 +add china_ip_route 103.192.216.0/22 +add china_ip_route 103.192.252.0/22 +add china_ip_route 103.193.40.0/22 +add china_ip_route 103.193.44.0/22 +add china_ip_route 103.193.120.0/22 +add china_ip_route 103.193.124.0/22 +add china_ip_route 103.193.140.0/22 +add china_ip_route 103.193.144.0/22 +add china_ip_route 103.193.160.0/22 +add china_ip_route 103.193.188.0/22 +add china_ip_route 103.193.192.0/22 +add china_ip_route 103.193.212.0/22 +add china_ip_route 103.193.216.0/22 +add china_ip_route 103.193.220.0/22 +add china_ip_route 103.193.224.0/22 +add china_ip_route 103.193.228.0/22 +add china_ip_route 103.193.232.0/22 +add china_ip_route 103.193.236.0/22 +add china_ip_route 103.193.240.0/22 +add china_ip_route 103.194.16.0/22 +add china_ip_route 103.195.104.0/22 +add china_ip_route 103.195.112.0/22 +add china_ip_route 103.195.136.0/22 +add china_ip_route 103.195.148.0/22 +add china_ip_route 103.195.152.0/22 +add china_ip_route 103.195.160.0/22 +add china_ip_route 103.196.64.0/22 +add china_ip_route 103.196.72.0/22 +add china_ip_route 103.196.88.0/22 +add china_ip_route 103.196.92.0/22 +add china_ip_route 103.196.96.0/22 +add china_ip_route 103.196.168.0/22 +add china_ip_route 103.196.204.0/22 +add china_ip_route 103.197.180.0/22 +add china_ip_route 103.197.228.0/22 +add china_ip_route 103.198.20.0/22 +add china_ip_route 103.198.60.0/22 +add china_ip_route 103.198.64.0/22 +add china_ip_route 103.198.72.0/22 +add china_ip_route 103.198.124.0/22 +add china_ip_route 103.198.156.0/22 +add china_ip_route 103.198.180.0/22 +add china_ip_route 103.198.196.0/22 +add china_ip_route 103.198.200.0/22 +add china_ip_route 103.198.216.0/22 +add china_ip_route 103.198.220.0/22 +add china_ip_route 103.198.224.0/22 +add china_ip_route 103.198.228.0/22 +add china_ip_route 103.198.232.0/22 +add china_ip_route 103.198.236.0/22 +add china_ip_route 103.198.240.0/22 +add china_ip_route 103.198.244.0/22 +add china_ip_route 103.199.164.0/22 +add china_ip_route 103.199.196.0/22 +add china_ip_route 103.199.228.0/22 +add china_ip_route 103.199.248.0/22 +add china_ip_route 103.199.252.0/22 +add china_ip_route 103.200.28.0/22 +add china_ip_route 103.200.52.0/22 +add china_ip_route 103.200.64.0/22 +add china_ip_route 103.200.68.0/22 +add china_ip_route 103.200.136.0/22 +add china_ip_route 103.200.140.0/22 +add china_ip_route 103.200.144.0/22 +add china_ip_route 103.200.148.0/22 +add china_ip_route 103.200.152.0/22 +add china_ip_route 103.200.156.0/22 +add china_ip_route 103.200.160.0/22 +add china_ip_route 103.200.164.0/22 +add china_ip_route 103.200.168.0/22 +add china_ip_route 103.200.172.0/22 +add china_ip_route 103.200.176.0/22 +add china_ip_route 103.200.180.0/22 +add china_ip_route 103.200.184.0/22 +add china_ip_route 103.200.188.0/22 +add china_ip_route 103.200.192.0/22 +add china_ip_route 103.200.220.0/22 +add china_ip_route 103.200.224.0/22 +add china_ip_route 103.200.228.0/22 +add china_ip_route 103.200.232.0/22 +add china_ip_route 103.200.236.0/22 +add china_ip_route 103.200.240.0/22 +add china_ip_route 103.200.244.0/22 +add china_ip_route 103.200.248.0/22 +add china_ip_route 103.200.252.0/22 +add china_ip_route 103.201.0.0/22 +add china_ip_route 103.201.4.0/22 +add china_ip_route 103.201.8.0/22 +add china_ip_route 103.201.12.0/22 +add china_ip_route 103.201.16.0/22 +add china_ip_route 103.201.20.0/22 +add china_ip_route 103.201.28.0/22 +add china_ip_route 103.201.32.0/22 +add china_ip_route 103.201.36.0/22 +add china_ip_route 103.201.40.0/22 +add china_ip_route 103.201.44.0/22 +add china_ip_route 103.201.48.0/22 +add china_ip_route 103.201.52.0/22 +add china_ip_route 103.201.56.0/22 +add china_ip_route 103.201.60.0/22 +add china_ip_route 103.201.64.0/22 +add china_ip_route 103.201.76.0/22 +add china_ip_route 103.201.80.0/22 +add china_ip_route 103.201.84.0/22 +add china_ip_route 103.201.88.0/22 +add china_ip_route 103.201.92.0/22 +add china_ip_route 103.201.96.0/22 +add china_ip_route 103.201.100.0/22 +add china_ip_route 103.201.104.0/22 +add china_ip_route 103.201.108.0/22 +add china_ip_route 103.201.112.0/22 +add china_ip_route 103.201.116.0/22 +add china_ip_route 103.201.120.0/22 +add china_ip_route 103.201.152.0/22 +add china_ip_route 103.201.156.0/22 +add china_ip_route 103.201.160.0/22 +add china_ip_route 103.201.164.0/22 +add china_ip_route 103.201.168.0/22 +add china_ip_route 103.201.172.0/22 +add china_ip_route 103.201.176.0/22 +add china_ip_route 103.201.180.0/22 +add china_ip_route 103.201.184.0/22 +add china_ip_route 103.201.188.0/22 +add china_ip_route 103.201.192.0/22 +add china_ip_route 103.201.196.0/22 +add china_ip_route 103.201.200.0/22 +add china_ip_route 103.201.204.0/22 +add china_ip_route 103.201.208.0/22 +add china_ip_route 103.201.212.0/22 +add china_ip_route 103.201.216.0/22 +add china_ip_route 103.201.220.0/22 +add china_ip_route 103.201.224.0/22 +add china_ip_route 103.201.228.0/22 +add china_ip_route 103.201.232.0/22 +add china_ip_route 103.201.236.0/22 +add china_ip_route 103.201.240.0/22 +add china_ip_route 103.201.244.0/22 +add china_ip_route 103.201.248.0/22 +add china_ip_route 103.201.252.0/22 +add china_ip_route 103.202.0.0/22 +add china_ip_route 103.202.4.0/22 +add china_ip_route 103.202.8.0/22 +add china_ip_route 103.202.12.0/22 +add china_ip_route 103.202.16.0/22 +add china_ip_route 103.202.20.0/22 +add china_ip_route 103.202.24.0/22 +add china_ip_route 103.202.28.0/22 +add china_ip_route 103.202.32.0/22 +add china_ip_route 103.202.36.0/22 +add china_ip_route 103.202.40.0/22 +add china_ip_route 103.202.44.0/22 +add china_ip_route 103.202.56.0/22 +add china_ip_route 103.202.60.0/22 +add china_ip_route 103.202.64.0/22 +add china_ip_route 103.202.68.0/22 +add china_ip_route 103.202.72.0/22 +add china_ip_route 103.202.76.0/22 +add china_ip_route 103.202.80.0/22 +add china_ip_route 103.202.84.0/22 +add china_ip_route 103.202.88.0/22 +add china_ip_route 103.202.92.0/22 +add china_ip_route 103.202.96.0/22 +add china_ip_route 103.202.100.0/22 +add china_ip_route 103.202.104.0/22 +add china_ip_route 103.202.108.0/22 +add china_ip_route 103.202.112.0/22 +add china_ip_route 103.202.116.0/22 +add china_ip_route 103.202.120.0/22 +add china_ip_route 103.202.124.0/22 +add china_ip_route 103.202.128.0/22 +add china_ip_route 103.202.132.0/22 +add china_ip_route 103.202.136.0/22 +add china_ip_route 103.202.140.0/22 +add china_ip_route 103.202.144.0/22 +add china_ip_route 103.202.152.0/22 +add china_ip_route 103.202.156.0/22 +add china_ip_route 103.202.160.0/22 +add china_ip_route 103.202.164.0/22 +add china_ip_route 103.202.168.0/22 +add china_ip_route 103.202.172.0/22 +add china_ip_route 103.202.176.0/22 +add china_ip_route 103.202.180.0/22 +add china_ip_route 103.202.184.0/22 +add china_ip_route 103.202.188.0/22 +add china_ip_route 103.202.192.0/22 +add china_ip_route 103.202.196.0/22 +add china_ip_route 103.202.200.0/21 +add china_ip_route 103.202.212.0/22 +add china_ip_route 103.202.228.0/22 +add china_ip_route 103.202.236.0/22 +add china_ip_route 103.202.240.0/22 +add china_ip_route 103.202.244.0/22 +add china_ip_route 103.202.248.0/22 +add china_ip_route 103.202.252.0/22 +add china_ip_route 103.203.0.0/22 +add china_ip_route 103.203.4.0/22 +add china_ip_route 103.203.8.0/22 +add china_ip_route 103.203.12.0/22 +add china_ip_route 103.203.16.0/22 +add china_ip_route 103.203.20.0/22 +add china_ip_route 103.203.24.0/22 +add china_ip_route 103.203.28.0/22 +add china_ip_route 103.203.32.0/22 +add china_ip_route 103.203.56.0/22 +add china_ip_route 103.203.96.0/22 +add china_ip_route 103.203.100.0/22 +add china_ip_route 103.203.104.0/22 +add china_ip_route 103.203.108.0/22 +add china_ip_route 103.203.112.0/22 +add china_ip_route 103.203.116.0/22 +add china_ip_route 103.203.120.0/22 +add china_ip_route 103.203.124.0/22 +add china_ip_route 103.203.128.0/22 +add china_ip_route 103.203.140.0/22 +add china_ip_route 103.203.164.0/22 +add china_ip_route 103.203.168.0/22 +add china_ip_route 103.203.192.0/22 +add china_ip_route 103.203.200.0/22 +add china_ip_route 103.203.212.0/22 +add china_ip_route 103.203.216.0/22 +add china_ip_route 103.204.24.0/22 +add china_ip_route 103.204.72.0/22 +add china_ip_route 103.204.88.0/22 +add china_ip_route 103.204.112.0/22 +add china_ip_route 103.204.136.0/22 +add china_ip_route 103.204.140.0/22 +add china_ip_route 103.204.144.0/22 +add china_ip_route 103.204.148.0/22 +add china_ip_route 103.204.152.0/22 +add china_ip_route 103.204.196.0/22 +add china_ip_route 103.204.232.0/22 +add china_ip_route 103.204.236.0/22 +add china_ip_route 103.205.4.0/22 +add china_ip_route 103.205.8.0/22 +add china_ip_route 103.205.40.0/22 +add china_ip_route 103.205.44.0/22 +add china_ip_route 103.205.52.0/22 +add china_ip_route 103.205.108.0/22 +add china_ip_route 103.205.116.0/22 +add china_ip_route 103.205.120.0/22 +add china_ip_route 103.205.136.0/22 +add china_ip_route 103.205.162.0/24 +add china_ip_route 103.205.188.0/22 +add china_ip_route 103.205.192.0/22 +add china_ip_route 103.205.196.0/22 +add china_ip_route 103.205.200.0/22 +add china_ip_route 103.205.236.0/22 +add china_ip_route 103.205.248.0/22 +add china_ip_route 103.205.252.0/22 +add china_ip_route 103.206.0.0/22 +add china_ip_route 103.206.44.0/22 +add china_ip_route 103.206.108.0/22 +add china_ip_route 103.206.148.0/22 +add china_ip_route 103.207.48.0/22 +add china_ip_route 103.207.104.0/22 +add china_ip_route 103.207.164.0/22 +add china_ip_route 103.207.184.0/22 +add china_ip_route 103.207.188.0/22 +add china_ip_route 103.207.192.0/22 +add china_ip_route 103.207.196.0/22 +add china_ip_route 103.207.200.0/22 +add china_ip_route 103.207.204.0/22 +add china_ip_route 103.207.208.0/22 +add china_ip_route 103.207.212.0/22 +add china_ip_route 103.207.220.0/22 +add china_ip_route 103.207.228.0/22 +add china_ip_route 103.207.232.0/22 +add china_ip_route 103.208.12.0/22 +add china_ip_route 103.208.16.0/22 +add china_ip_route 103.208.28.0/22 +add china_ip_route 103.208.40.0/22 +add china_ip_route 103.208.44.0/22 +add china_ip_route 103.208.48.0/22 +add china_ip_route 103.208.148.0/22 +add china_ip_route 103.209.112.0/22 +add china_ip_route 103.209.136.0/22 +add china_ip_route 103.209.200.0/22 +add china_ip_route 103.209.208.0/22 +add china_ip_route 103.209.216.0/22 +add china_ip_route 103.210.0.0/22 +add china_ip_route 103.210.20.0/22 +add china_ip_route 103.210.96.0/22 +add china_ip_route 103.210.156.0/22 +add china_ip_route 103.210.160.0/22 +add china_ip_route 103.210.164.0/22 +add china_ip_route 103.210.168.0/22 +add china_ip_route 103.210.172.0/22 +add china_ip_route 103.210.176.0/22 +add china_ip_route 103.210.180.0/22 +add china_ip_route 103.210.184.0/22 +add china_ip_route 103.210.188.0/22 +add china_ip_route 103.210.216.0/22 +add china_ip_route 103.211.44.0/22 +add china_ip_route 103.211.96.0/22 +add china_ip_route 103.211.100.0/22 +add china_ip_route 103.211.156.0/22 +add china_ip_route 103.211.164.0/22 +add china_ip_route 103.211.192.0/22 +add china_ip_route 103.211.220.0/22 +add china_ip_route 103.211.224.0/22 +add china_ip_route 103.211.248.0/22 +add china_ip_route 103.212.0.0/22 +add china_ip_route 103.212.4.0/22 +add china_ip_route 103.212.8.0/22 +add china_ip_route 103.212.12.0/22 +add china_ip_route 103.212.32.0/22 +add china_ip_route 103.212.44.0/22 +add china_ip_route 103.212.48.0/22 +add china_ip_route 103.212.84.0/22 +add china_ip_route 103.212.100.0/22 +add china_ip_route 103.212.104.0/22 +add china_ip_route 103.212.108.0/22 +add china_ip_route 103.212.148.0/22 +add china_ip_route 103.212.164.0/22 +add china_ip_route 103.212.196.0/22 +add china_ip_route 103.212.200.0/22 +add china_ip_route 103.212.228.0/22 +add china_ip_route 103.212.252.0/22 +add china_ip_route 103.213.40.0/22 +add china_ip_route 103.213.44.0/22 +add china_ip_route 103.213.48.0/22 +add china_ip_route 103.213.52.0/22 +add china_ip_route 103.213.56.0/22 +add china_ip_route 103.213.60.0/22 +add china_ip_route 103.213.64.0/22 +add china_ip_route 103.213.68.0/22 +add china_ip_route 103.213.72.0/22 +add china_ip_route 103.213.76.0/22 +add china_ip_route 103.213.80.0/22 +add china_ip_route 103.213.84.0/22 +add china_ip_route 103.213.88.0/22 +add china_ip_route 103.213.92.0/22 +add china_ip_route 103.213.96.0/22 +add china_ip_route 103.213.132.0/22 +add china_ip_route 103.213.136.0/22 +add china_ip_route 103.213.140.0/22 +add china_ip_route 103.213.144.0/22 +add china_ip_route 103.213.148.0/22 +add china_ip_route 103.213.152.0/22 +add china_ip_route 103.213.156.0/22 +add china_ip_route 103.213.160.0/22 +add china_ip_route 103.213.164.0/22 +add china_ip_route 103.213.168.0/22 +add china_ip_route 103.213.172.0/22 +add china_ip_route 103.213.176.0/22 +add china_ip_route 103.213.180.0/22 +add china_ip_route 103.213.184.0/22 +add china_ip_route 103.213.188.0/22 +add china_ip_route 103.213.248.0/22 +add china_ip_route 103.214.32.0/22 +add china_ip_route 103.214.48.0/22 +add china_ip_route 103.214.84.0/22 +add china_ip_route 103.214.168.0/22 +add china_ip_route 103.214.212.0/22 +add china_ip_route 103.214.240.0/22 +add china_ip_route 103.214.244.0/22 +add china_ip_route 103.215.28.0/22 +add china_ip_route 103.215.32.0/22 +add china_ip_route 103.215.36.0/22 +add china_ip_route 103.215.44.0/22 +add china_ip_route 103.215.48.0/22 +add china_ip_route 103.215.100.0/22 +add china_ip_route 103.215.104.0/22 +add china_ip_route 103.215.108.0/22 +add china_ip_route 103.215.116.0/22 +add china_ip_route 103.215.120.0/22 +add china_ip_route 103.215.140.0/22 +add china_ip_route 103.215.228.0/22 +add china_ip_route 103.216.4.0/22 +add china_ip_route 103.216.8.0/22 +add china_ip_route 103.216.12.0/22 +add china_ip_route 103.216.16.0/22 +add china_ip_route 103.216.20.0/22 +add china_ip_route 103.216.24.0/22 +add china_ip_route 103.216.28.0/22 +add china_ip_route 103.216.32.0/22 +add china_ip_route 103.216.36.0/22 +add china_ip_route 103.216.40.0/22 +add china_ip_route 103.216.44.0/22 +add china_ip_route 103.216.64.0/22 +add china_ip_route 103.216.108.0/22 +add china_ip_route 103.216.136.0/22 +add china_ip_route 103.216.152.0/22 +add china_ip_route 103.216.224.0/22 +add china_ip_route 103.216.228.0/22 +add china_ip_route 103.216.240.0/22 +add china_ip_route 103.216.244.0/22 +add china_ip_route 103.216.248.0/22 +add china_ip_route 103.216.252.0/22 +add china_ip_route 103.217.0.0/22 +add china_ip_route 103.217.4.0/22 +add china_ip_route 103.217.8.0/22 +add china_ip_route 103.217.12.0/22 +add china_ip_route 103.217.16.0/22 +add china_ip_route 103.217.20.0/22 +add china_ip_route 103.217.24.0/22 +add china_ip_route 103.217.28.0/22 +add china_ip_route 103.217.32.0/22 +add china_ip_route 103.217.36.0/22 +add china_ip_route 103.217.40.0/22 +add china_ip_route 103.217.44.0/22 +add china_ip_route 103.217.48.0/22 +add china_ip_route 103.217.52.0/22 +add china_ip_route 103.217.56.0/22 +add china_ip_route 103.217.60.0/22 +add china_ip_route 103.217.168.0/22 +add china_ip_route 103.217.180.0/22 +add china_ip_route 103.217.184.0/22 +add china_ip_route 103.217.188.0/22 +add china_ip_route 103.217.192.0/22 +add china_ip_route 103.217.196.0/22 +add china_ip_route 103.217.200.0/22 +add china_ip_route 103.217.204.0/22 +add china_ip_route 103.218.0.0/22 +add china_ip_route 103.218.8.0/22 +add china_ip_route 103.218.12.0/22 +add china_ip_route 103.218.16.0/22 +add china_ip_route 103.218.20.0/22 +add china_ip_route 103.218.28.0/22 +add china_ip_route 103.218.32.0/22 +add china_ip_route 103.218.36.0/22 +add china_ip_route 103.218.40.0/22 +add china_ip_route 103.218.44.0/22 +add china_ip_route 103.218.48.0/22 +add china_ip_route 103.218.52.0/22 +add china_ip_route 103.218.56.0/22 +add china_ip_route 103.218.60.0/22 +add china_ip_route 103.218.64.0/22 +add china_ip_route 103.218.68.0/22 +add china_ip_route 103.218.72.0/22 +add china_ip_route 103.218.76.0/22 +add china_ip_route 103.218.80.0/22 +add china_ip_route 103.218.84.0/22 +add china_ip_route 103.218.88.0/22 +add china_ip_route 103.218.92.0/22 +add china_ip_route 103.218.192.0/22 +add china_ip_route 103.218.196.0/22 +add china_ip_route 103.218.200.0/22 +add china_ip_route 103.218.204.0/22 +add china_ip_route 103.218.208.0/22 +add china_ip_route 103.218.212.0/22 +add china_ip_route 103.218.216.0/22 +add china_ip_route 103.219.24.0/22 +add china_ip_route 103.219.28.0/22 +add china_ip_route 103.219.32.0/22 +add china_ip_route 103.219.36.0/22 +add china_ip_route 103.219.64.0/22 +add china_ip_route 103.219.84.0/22 +add china_ip_route 103.219.88.0/22 +add china_ip_route 103.219.92.0/22 +add china_ip_route 103.219.96.0/22 +add china_ip_route 103.219.100.0/22 +add china_ip_route 103.219.176.0/22 +add china_ip_route 103.219.184.0/22 +add china_ip_route 103.220.48.0/22 +add china_ip_route 103.220.52.0/22 +add china_ip_route 103.220.56.0/22 +add china_ip_route 103.220.60.0/22 +add china_ip_route 103.220.64.0/22 +add china_ip_route 103.220.92.0/22 +add china_ip_route 103.220.96.0/22 +add china_ip_route 103.220.100.0/22 +add china_ip_route 103.220.104.0/22 +add china_ip_route 103.220.108.0/22 +add china_ip_route 103.220.116.0/22 +add china_ip_route 103.220.120.0/22 +add china_ip_route 103.220.124.0/22 +add china_ip_route 103.220.128.0/22 +add china_ip_route 103.220.132.0/22 +add china_ip_route 103.220.136.0/22 +add china_ip_route 103.220.140.0/22 +add china_ip_route 103.220.144.0/22 +add china_ip_route 103.220.148.0/22 +add china_ip_route 103.220.152.0/22 +add china_ip_route 103.220.160.0/22 +add china_ip_route 103.220.164.0/22 +add china_ip_route 103.220.168.0/22 +add china_ip_route 103.220.172.0/22 +add china_ip_route 103.220.176.0/22 +add china_ip_route 103.220.180.0/22 +add china_ip_route 103.220.184.0/22 +add china_ip_route 103.220.188.0/22 +add china_ip_route 103.220.192.0/22 +add china_ip_route 103.220.196.0/22 +add china_ip_route 103.220.200.0/22 +add china_ip_route 103.220.240.0/22 +add china_ip_route 103.220.244.0/22 +add china_ip_route 103.220.248.0/22 +add china_ip_route 103.220.252.0/22 +add china_ip_route 103.221.0.0/22 +add china_ip_route 103.221.4.0/22 +add china_ip_route 103.221.8.0/22 +add china_ip_route 103.221.12.0/22 +add china_ip_route 103.221.16.0/22 +add china_ip_route 103.221.20.0/22 +add china_ip_route 103.221.24.0/22 +add china_ip_route 103.221.28.0/22 +add china_ip_route 103.221.32.0/22 +add china_ip_route 103.221.36.0/22 +add china_ip_route 103.221.40.0/22 +add china_ip_route 103.221.44.0/22 +add china_ip_route 103.221.48.0/22 +add china_ip_route 103.221.88.0/22 +add china_ip_route 103.221.92.0/22 +add china_ip_route 103.221.96.0/22 +add china_ip_route 103.221.100.0/22 +add china_ip_route 103.221.104.0/22 +add china_ip_route 103.221.108.0/22 +add china_ip_route 103.221.112.0/22 +add china_ip_route 103.221.116.0/22 +add china_ip_route 103.221.120.0/22 +add china_ip_route 103.221.124.0/22 +add china_ip_route 103.221.128.0/22 +add china_ip_route 103.221.132.0/22 +add china_ip_route 103.221.136.0/22 +add china_ip_route 103.221.140.0/22 +add china_ip_route 103.221.144.0/22 +add china_ip_route 103.221.148.0/22 +add china_ip_route 103.221.152.0/22 +add china_ip_route 103.221.156.0/22 +add china_ip_route 103.221.160.0/22 +add china_ip_route 103.221.164.0/22 +add china_ip_route 103.221.168.0/22 +add china_ip_route 103.221.172.0/22 +add china_ip_route 103.221.176.0/22 +add china_ip_route 103.221.180.0/22 +add china_ip_route 103.221.184.0/22 +add china_ip_route 103.221.188.0/22 +add china_ip_route 103.221.192.0/22 +add china_ip_route 103.221.196.0/22 +add china_ip_route 103.221.200.0/22 +add china_ip_route 103.221.204.0/22 +add china_ip_route 103.222.0.0/22 +add china_ip_route 103.222.4.0/22 +add china_ip_route 103.222.8.0/22 +add china_ip_route 103.222.12.0/22 +add china_ip_route 103.222.16.0/22 +add china_ip_route 103.222.24.0/22 +add china_ip_route 103.222.28.0/22 +add china_ip_route 103.222.32.0/22 +add china_ip_route 103.222.36.0/22 +add china_ip_route 103.222.40.0/22 +add china_ip_route 103.222.44.0/22 +add china_ip_route 103.222.48.0/22 +add china_ip_route 103.222.52.0/22 +add china_ip_route 103.222.56.0/22 +add china_ip_route 103.222.60.0/22 +add china_ip_route 103.222.64.0/22 +add china_ip_route 103.222.68.0/22 +add china_ip_route 103.222.72.0/22 +add china_ip_route 103.222.76.0/22 +add china_ip_route 103.222.80.0/22 +add china_ip_route 103.222.84.0/22 +add china_ip_route 103.222.88.0/22 +add china_ip_route 103.222.92.0/22 +add china_ip_route 103.222.96.0/22 +add china_ip_route 103.222.100.0/22 +add china_ip_route 103.222.104.0/22 +add china_ip_route 103.222.108.0/22 +add china_ip_route 103.222.112.0/22 +add china_ip_route 103.222.116.0/22 +add china_ip_route 103.222.120.0/22 +add china_ip_route 103.222.124.0/22 +add china_ip_route 103.222.128.0/22 +add china_ip_route 103.222.132.0/22 +add china_ip_route 103.222.136.0/22 +add china_ip_route 103.222.140.0/22 +add china_ip_route 103.222.144.0/22 +add china_ip_route 103.222.148.0/22 +add china_ip_route 103.222.152.0/22 +add china_ip_route 103.222.156.0/22 +add china_ip_route 103.222.160.0/22 +add china_ip_route 103.222.164.0/22 +add china_ip_route 103.222.168.0/22 +add china_ip_route 103.222.172.0/22 +add china_ip_route 103.222.176.0/22 +add china_ip_route 103.222.180.0/22 +add china_ip_route 103.222.184.0/22 +add china_ip_route 103.222.188.0/22 +add china_ip_route 103.222.192.0/22 +add china_ip_route 103.222.196.0/22 +add china_ip_route 103.222.200.0/22 +add china_ip_route 103.222.204.0/22 +add china_ip_route 103.222.208.0/22 +add china_ip_route 103.222.212.0/22 +add china_ip_route 103.222.216.0/22 +add china_ip_route 103.222.220.0/22 +add china_ip_route 103.222.224.0/22 +add china_ip_route 103.222.228.0/22 +add china_ip_route 103.222.232.0/22 +add china_ip_route 103.222.240.0/22 +add china_ip_route 103.222.244.0/22 +add china_ip_route 103.223.16.0/22 +add china_ip_route 103.223.20.0/22 +add china_ip_route 103.223.24.0/22 +add china_ip_route 103.223.28.0/22 +add china_ip_route 103.223.32.0/22 +add china_ip_route 103.223.36.0/22 +add china_ip_route 103.223.40.0/22 +add china_ip_route 103.223.44.0/22 +add china_ip_route 103.223.48.0/22 +add china_ip_route 103.223.52.0/22 +add china_ip_route 103.223.56.0/22 +add china_ip_route 103.223.60.0/22 +add china_ip_route 103.223.64.0/22 +add china_ip_route 103.223.68.0/22 +add china_ip_route 103.223.72.0/22 +add china_ip_route 103.223.76.0/22 +add china_ip_route 103.223.80.0/22 +add china_ip_route 103.223.84.0/22 +add china_ip_route 103.223.88.0/22 +add china_ip_route 103.223.92.0/22 +add china_ip_route 103.223.96.0/22 +add china_ip_route 103.223.100.0/22 +add china_ip_route 103.223.104.0/22 +add china_ip_route 103.223.108.0/22 +add china_ip_route 103.223.112.0/22 +add china_ip_route 103.223.116.0/22 +add china_ip_route 103.223.120.0/22 +add china_ip_route 103.223.124.0/22 +add china_ip_route 103.223.128.0/22 +add china_ip_route 103.223.132.0/22 +add china_ip_route 103.223.140.0/22 +add china_ip_route 103.223.144.0/22 +add china_ip_route 103.223.148.0/22 +add china_ip_route 103.223.152.0/22 +add china_ip_route 103.223.156.0/22 +add china_ip_route 103.223.160.0/22 +add china_ip_route 103.223.164.0/22 +add china_ip_route 103.223.168.0/22 +add china_ip_route 103.223.172.0/22 +add china_ip_route 103.223.176.0/22 +add china_ip_route 103.223.180.0/22 +add china_ip_route 103.223.188.0/22 +add china_ip_route 103.223.192.0/22 +add china_ip_route 103.223.196.0/22 +add china_ip_route 103.223.200.0/22 +add china_ip_route 103.223.204.0/22 +add china_ip_route 103.223.208.0/22 +add china_ip_route 103.223.212.0/22 +add china_ip_route 103.223.216.0/22 +add china_ip_route 103.223.220.0/22 +add china_ip_route 103.223.224.0/22 +add china_ip_route 103.223.228.0/22 +add china_ip_route 103.223.232.0/22 +add china_ip_route 103.223.236.0/22 +add china_ip_route 103.223.240.0/22 +add china_ip_route 103.223.244.0/22 +add china_ip_route 103.223.248.0/22 +add china_ip_route 103.223.252.0/22 +add china_ip_route 103.224.0.0/22 +add china_ip_route 103.224.40.0/22 +add china_ip_route 103.224.44.0/22 +add china_ip_route 103.224.60.0/22 +add china_ip_route 103.224.80.0/22 +add china_ip_route 103.224.220.0/22 +add china_ip_route 103.224.224.0/22 +add china_ip_route 103.224.228.0/22 +add china_ip_route 103.224.232.0/22 +add china_ip_route 103.225.84.0/22 +add china_ip_route 103.226.16.0/22 +add china_ip_route 103.226.40.0/22 +add china_ip_route 103.226.56.0/22 +add china_ip_route 103.226.60.0/22 +add china_ip_route 103.226.80.0/22 +add china_ip_route 103.226.132.0/22 +add china_ip_route 103.226.156.0/22 +add china_ip_route 103.226.180.0/22 +add china_ip_route 103.226.196.0/22 +add china_ip_route 103.227.48.0/22 +add china_ip_route 103.227.72.0/22 +add china_ip_route 103.227.76.0/22 +add china_ip_route 103.227.80.0/22 +add china_ip_route 103.227.100.0/22 +add china_ip_route 103.227.120.0/22 +add china_ip_route 103.227.132.0/22 +add china_ip_route 103.227.136.0/22 +add china_ip_route 103.227.196.0/22 +add china_ip_route 103.227.204.0/22 +add china_ip_route 103.227.212.0/22 +add china_ip_route 103.227.228.0/22 +add china_ip_route 103.228.12.0/22 +add china_ip_route 103.228.88.0/22 +add china_ip_route 103.228.128.0/22 +add china_ip_route 103.228.136.0/22 +add china_ip_route 103.228.160.0/22 +add china_ip_route 103.228.176.0/22 +add china_ip_route 103.228.204.0/22 +add china_ip_route 103.228.208.0/22 +add china_ip_route 103.228.228.0/22 +add china_ip_route 103.228.232.0/22 +add china_ip_route 103.229.20.0/22 +add china_ip_route 103.229.60.0/22 +add china_ip_route 103.229.136.0/22 +add china_ip_route 103.229.148.0/22 +add china_ip_route 103.229.172.0/22 +add china_ip_route 103.229.212.0/22 +add china_ip_route 103.229.216.0/22 +add china_ip_route 103.229.220.0/22 +add china_ip_route 103.229.228.0/22 +add china_ip_route 103.229.236.0/22 +add china_ip_route 103.229.240.0/22 +add china_ip_route 103.230.0.0/22 +add china_ip_route 103.230.28.0/22 +add china_ip_route 103.230.44.0/22 +add china_ip_route 103.230.96.0/22 +add china_ip_route 103.230.196.0/22 +add china_ip_route 103.230.200.0/22 +add china_ip_route 103.230.204.0/22 +add china_ip_route 103.230.212.0/22 +add china_ip_route 103.230.236.0/22 +add china_ip_route 103.231.16.0/22 +add china_ip_route 103.231.20.0/22 +add china_ip_route 103.231.64.0/22 +add china_ip_route 103.231.68.0/22 +add china_ip_route 103.231.144.0/22 +add china_ip_route 103.231.180.0/22 +add china_ip_route 103.231.184.0/22 +add china_ip_route 103.231.244.0/22 +add china_ip_route 103.232.4.0/22 +add china_ip_route 103.232.144.0/22 +add china_ip_route 103.232.188.0/22 +add china_ip_route 103.232.212.0/22 +add china_ip_route 103.233.4.0/22 +add china_ip_route 103.233.44.0/22 +add china_ip_route 103.233.52.0/22 +add china_ip_route 103.233.104.0/22 +add china_ip_route 103.233.128.0/22 +add china_ip_route 103.233.136.0/22 +add china_ip_route 103.233.228.0/22 +add china_ip_route 103.234.0.0/22 +add china_ip_route 103.234.20.0/22 +add china_ip_route 103.234.56.0/22 +add china_ip_route 103.234.128.0/22 +add china_ip_route 103.234.172.0/22 +add china_ip_route 103.234.180.0/22 +add china_ip_route 103.234.244.0/22 +add china_ip_route 103.235.16.0/22 +add china_ip_route 103.235.48.0/22 +add china_ip_route 103.235.56.0/22 +add china_ip_route 103.235.60.0/22 +add china_ip_route 103.235.80.0/22 +add china_ip_route 103.235.84.0/22 +add china_ip_route 103.235.128.0/22 +add china_ip_route 103.235.132.0/22 +add china_ip_route 103.235.136.0/22 +add china_ip_route 103.235.140.0/22 +add china_ip_route 103.235.144.0/22 +add china_ip_route 103.235.148.0/22 +add china_ip_route 103.235.184.0/22 +add china_ip_route 103.235.192.0/22 +add china_ip_route 103.235.200.0/22 +add china_ip_route 103.235.220.0/22 +add china_ip_route 103.235.224.0/22 +add china_ip_route 103.235.228.0/22 +add china_ip_route 103.235.232.0/22 +add china_ip_route 103.235.236.0/22 +add china_ip_route 103.235.240.0/22 +add china_ip_route 103.235.244.0/22 +add china_ip_route 103.235.248.0/22 +add china_ip_route 103.235.252.0/22 +add china_ip_route 103.236.0.0/22 +add china_ip_route 103.236.4.0/22 +add china_ip_route 103.236.8.0/22 +add china_ip_route 103.236.12.0/22 +add china_ip_route 103.236.16.0/22 +add china_ip_route 103.236.20.0/22 +add china_ip_route 103.236.24.0/22 +add china_ip_route 103.236.28.0/22 +add china_ip_route 103.236.32.0/22 +add china_ip_route 103.236.36.0/22 +add china_ip_route 103.236.40.0/22 +add china_ip_route 103.236.44.0/22 +add china_ip_route 103.236.48.0/22 +add china_ip_route 103.236.52.0/22 +add china_ip_route 103.236.56.0/22 +add china_ip_route 103.236.60.0/22 +add china_ip_route 103.236.64.0/22 +add china_ip_route 103.236.68.0/22 +add china_ip_route 103.236.72.0/22 +add china_ip_route 103.236.76.0/22 +add china_ip_route 103.236.80.0/22 +add china_ip_route 103.236.84.0/22 +add china_ip_route 103.236.88.0/22 +add china_ip_route 103.236.92.0/22 +add china_ip_route 103.236.96.0/22 +add china_ip_route 103.236.120.0/22 +add china_ip_route 103.236.184.0/22 +add china_ip_route 103.236.220.0/22 +add china_ip_route 103.236.232.0/22 +add china_ip_route 103.236.240.0/22 +add china_ip_route 103.236.244.0/22 +add china_ip_route 103.236.248.0/22 +add china_ip_route 103.236.252.0/22 +add china_ip_route 103.237.0.0/22 +add china_ip_route 103.237.4.0/22 +add china_ip_route 103.237.8.0/22 +add china_ip_route 103.237.12.0/22 +add china_ip_route 103.237.24.0/22 +add china_ip_route 103.237.28.0/22 +add china_ip_route 103.237.68.0/22 +add china_ip_route 103.237.88.0/22 +add china_ip_route 103.237.152.0/22 +add china_ip_route 103.237.176.0/22 +add china_ip_route 103.237.180.0/22 +add china_ip_route 103.237.184.0/22 +add china_ip_route 103.237.188.0/22 +add china_ip_route 103.237.192.0/22 +add china_ip_route 103.237.196.0/22 +add china_ip_route 103.237.200.0/22 +add china_ip_route 103.237.204.0/22 +add china_ip_route 103.237.208.0/22 +add china_ip_route 103.237.212.0/22 +add china_ip_route 103.237.216.0/22 +add china_ip_route 103.237.220.0/22 +add china_ip_route 103.237.224.0/22 +add china_ip_route 103.237.228.0/22 +add china_ip_route 103.237.232.0/22 +add china_ip_route 103.237.236.0/22 +add china_ip_route 103.237.240.0/22 +add china_ip_route 103.237.244.0/22 +add china_ip_route 103.237.248.0/22 +add china_ip_route 103.237.252.0/22 +add china_ip_route 103.238.0.0/22 +add china_ip_route 103.238.4.0/22 +add china_ip_route 103.238.16.0/22 +add china_ip_route 103.238.20.0/22 +add china_ip_route 103.238.24.0/22 +add china_ip_route 103.238.28.0/22 +add china_ip_route 103.238.32.0/22 +add china_ip_route 103.238.36.0/22 +add china_ip_route 103.238.40.0/22 +add china_ip_route 103.238.44.0/22 +add china_ip_route 103.238.48.0/22 +add china_ip_route 103.238.52.0/22 +add china_ip_route 103.238.56.0/22 +add china_ip_route 103.238.88.0/22 +add china_ip_route 103.238.92.0/22 +add china_ip_route 103.238.96.0/22 +add china_ip_route 103.238.132.0/22 +add china_ip_route 103.238.140.0/22 +add china_ip_route 103.238.144.0/22 +add china_ip_route 103.238.160.0/22 +add china_ip_route 103.238.164.0/22 +add china_ip_route 103.238.168.0/22 +add china_ip_route 103.238.172.0/22 +add china_ip_route 103.238.176.0/22 +add china_ip_route 103.238.180.0/22 +add china_ip_route 103.238.184.0/22 +add china_ip_route 103.238.188.0/22 +add china_ip_route 103.238.196.0/22 +add china_ip_route 103.238.204.0/22 +add china_ip_route 103.238.252.0/22 +add china_ip_route 103.239.0.0/22 +add china_ip_route 103.239.44.0/22 +add china_ip_route 103.239.68.0/22 +add china_ip_route 103.239.96.0/22 +add china_ip_route 103.239.152.0/22 +add china_ip_route 103.239.156.0/22 +add china_ip_route 103.239.176.0/22 +add china_ip_route 103.239.180.0/22 +add china_ip_route 103.239.184.0/22 +add china_ip_route 103.239.192.0/22 +add china_ip_route 103.239.196.0/22 +add china_ip_route 103.239.204.0/22 +add china_ip_route 103.239.208.0/22 +add china_ip_route 103.239.224.0/22 +add china_ip_route 103.239.244.0/22 +add china_ip_route 103.240.16.0/22 +add china_ip_route 103.240.36.0/22 +add china_ip_route 103.240.72.0/22 +add china_ip_route 103.240.84.0/22 +add china_ip_route 103.240.124.0/22 +add china_ip_route 103.240.156.0/22 +add china_ip_route 103.240.172.0/22 +add china_ip_route 103.240.188.0/22 +add china_ip_route 103.240.244.0/22 +add china_ip_route 103.241.12.0/22 +add china_ip_route 103.241.72.0/22 +add china_ip_route 103.241.92.0/22 +add china_ip_route 103.241.96.0/22 +add china_ip_route 103.241.160.0/22 +add china_ip_route 103.241.184.0/22 +add china_ip_route 103.241.188.0/22 +add china_ip_route 103.241.220.0/22 +add china_ip_route 103.242.64.0/22 +add china_ip_route 103.242.128.0/22 +add china_ip_route 103.242.132.0/22 +add china_ip_route 103.242.160.0/22 +add china_ip_route 103.242.168.0/22 +add china_ip_route 103.242.172.0/22 +add china_ip_route 103.242.176.0/22 +add china_ip_route 103.242.200.0/22 +add china_ip_route 103.242.212.0/22 +add china_ip_route 103.242.220.0/22 +add china_ip_route 103.242.240.0/22 +add china_ip_route 103.243.136.0/22 +add china_ip_route 103.243.252.0/22 +add china_ip_route 103.244.16.0/22 +add china_ip_route 103.244.58.0/23 +add china_ip_route 103.244.60.0/22 +add china_ip_route 103.244.64.0/22 +add china_ip_route 103.244.68.0/22 +add china_ip_route 103.244.72.0/22 +add china_ip_route 103.244.76.0/22 +add china_ip_route 103.244.80.0/22 +add china_ip_route 103.244.84.0/22 +add china_ip_route 103.244.116.0/22 +add china_ip_route 103.244.164.0/22 +add china_ip_route 103.244.232.0/22 +add china_ip_route 103.244.252.0/22 +add china_ip_route 103.245.23.0/24 +add china_ip_route 103.245.52.0/22 +add china_ip_route 103.245.60.0/22 +add china_ip_route 103.245.80.0/22 +add china_ip_route 103.245.124.0/22 +add china_ip_route 103.245.128.0/22 +add china_ip_route 103.246.8.0/22 +add china_ip_route 103.246.12.0/22 +add china_ip_route 103.246.120.0/22 +add china_ip_route 103.246.124.0/22 +add china_ip_route 103.246.132.0/22 +add china_ip_route 103.246.152.0/22 +add china_ip_route 103.246.156.0/22 +add china_ip_route 103.247.168.0/22 +add china_ip_route 103.247.172.0/22 +add china_ip_route 103.247.176.0/22 +add china_ip_route 103.247.200.0/22 +add china_ip_route 103.247.212.0/22 +add china_ip_route 103.248.0.0/23 +add china_ip_route 103.248.64.0/22 +add china_ip_route 103.248.100.0/22 +add china_ip_route 103.248.124.0/22 +add china_ip_route 103.248.152.0/22 +add china_ip_route 103.248.168.0/22 +add china_ip_route 103.248.192.0/22 +add china_ip_route 103.248.212.0/22 +add china_ip_route 103.248.220.0/22 +add china_ip_route 103.248.224.0/22 +add china_ip_route 103.249.8.0/22 +add china_ip_route 103.249.12.0/22 +add china_ip_route 103.249.52.0/22 +add china_ip_route 103.249.104.0/22 +add china_ip_route 103.249.128.0/22 +add china_ip_route 103.249.136.0/22 +add china_ip_route 103.249.144.0/22 +add china_ip_route 103.249.164.0/22 +add china_ip_route 103.249.168.0/22 +add china_ip_route 103.249.172.0/22 +add china_ip_route 103.249.176.0/22 +add china_ip_route 103.249.188.0/22 +add china_ip_route 103.249.192.0/22 +add china_ip_route 103.249.244.0/22 +add china_ip_route 103.249.252.0/22 +add china_ip_route 103.250.32.0/22 +add china_ip_route 103.250.104.0/22 +add china_ip_route 103.250.124.0/22 +add china_ip_route 103.250.180.0/22 +add china_ip_route 103.250.192.0/22 +add china_ip_route 103.250.216.0/22 +add china_ip_route 103.250.224.0/22 +add china_ip_route 103.250.236.0/22 +add china_ip_route 103.250.248.0/22 +add china_ip_route 103.250.252.0/22 +add china_ip_route 103.251.32.0/22 +add china_ip_route 103.251.84.0/22 +add china_ip_route 103.251.96.0/22 +add china_ip_route 103.251.124.0/22 +add china_ip_route 103.251.128.0/22 +add china_ip_route 103.251.160.0/22 +add china_ip_route 103.251.192.0/22 +add china_ip_route 103.251.204.0/22 +add china_ip_route 103.251.240.0/22 +add china_ip_route 103.252.28.0/22 +add china_ip_route 103.252.36.0/22 +add china_ip_route 103.252.64.0/22 +add china_ip_route 103.252.96.0/22 +add china_ip_route 103.252.104.0/22 +add china_ip_route 103.252.172.0/22 +add china_ip_route 103.252.204.0/22 +add china_ip_route 103.252.208.0/22 +add china_ip_route 103.252.232.0/22 +add china_ip_route 103.252.248.0/22 +add china_ip_route 103.253.4.0/22 +add china_ip_route 103.253.60.0/22 +add china_ip_route 103.253.204.0/22 +add china_ip_route 103.253.220.0/22 +add china_ip_route 103.253.224.0/22 +add china_ip_route 103.253.232.0/22 +add china_ip_route 103.254.8.0/22 +add china_ip_route 103.254.20.0/22 +add china_ip_route 103.254.64.0/22 +add china_ip_route 103.254.68.0/22 +add china_ip_route 103.254.72.0/22 +add china_ip_route 103.254.76.0/22 +add china_ip_route 103.254.112.0/22 +add china_ip_route 103.254.176.0/22 +add china_ip_route 103.254.188.0/22 +add china_ip_route 103.254.196.0/24 +add china_ip_route 103.254.220.0/22 +add china_ip_route 103.255.56.0/22 +add china_ip_route 103.255.68.0/22 +add china_ip_route 103.255.88.0/22 +add china_ip_route 103.255.92.0/22 +add china_ip_route 103.255.136.0/22 +add china_ip_route 103.255.140.0/22 +add china_ip_route 103.255.184.0/22 +add china_ip_route 103.255.200.0/22 +add china_ip_route 103.255.212.0/22 +add china_ip_route 103.255.228.0/22 +add china_ip_route 106.0.0.0/24 +add china_ip_route 106.0.2.0/23 +add china_ip_route 106.0.4.0/22 +add china_ip_route 106.0.8.0/21 +add china_ip_route 106.0.16.0/20 +add china_ip_route 106.0.44.0/22 +add china_ip_route 106.0.64.0/18 +add china_ip_route 106.2.0.0/15 +add china_ip_route 106.4.0.0/14 +add china_ip_route 106.8.0.0/15 +add china_ip_route 106.11.0.0/16 +add china_ip_route 106.12.0.0/14 +add china_ip_route 106.16.0.0/12 +add china_ip_route 106.32.0.0/12 +add china_ip_route 106.48.0.0/15 +add china_ip_route 106.50.0.0/16 +add china_ip_route 106.52.0.0/14 +add china_ip_route 106.56.0.0/13 +add china_ip_route 106.74.0.0/16 +add china_ip_route 106.75.0.0/16 +add china_ip_route 106.80.0.0/12 +add china_ip_route 106.108.0.0/14 +add china_ip_route 106.112.0.0/13 +add china_ip_route 106.120.0.0/13 +add china_ip_route 106.224.0.0/12 +add china_ip_route 109.244.0.0/16 +add china_ip_route 110.6.0.0/15 +add china_ip_route 110.16.0.0/14 +add china_ip_route 110.34.40.0/22 +add china_ip_route 110.34.44.0/22 +add china_ip_route 110.40.0.0/14 +add china_ip_route 110.44.12.0/22 +add china_ip_route 110.44.144.0/20 +add china_ip_route 110.48.0.0/16 +add china_ip_route 110.51.0.0/16 +add china_ip_route 110.52.0.0/15 +add china_ip_route 110.56.0.0/13 +add china_ip_route 110.64.0.0/15 +add china_ip_route 110.72.0.0/15 +add china_ip_route 110.75.0.0/17 +add china_ip_route 110.75.128.0/19 +add china_ip_route 110.75.160.0/19 +add china_ip_route 110.75.192.0/18 +add china_ip_route 110.76.0.0/19 +add china_ip_route 110.76.32.0/19 +add china_ip_route 110.76.132.0/22 +add china_ip_route 110.76.156.0/22 +add china_ip_route 110.76.184.0/22 +add china_ip_route 110.76.192.0/18 +add china_ip_route 110.77.0.0/17 +add china_ip_route 110.80.0.0/13 +add china_ip_route 110.88.0.0/14 +add china_ip_route 110.92.68.0/22 +add china_ip_route 110.93.32.0/19 +add china_ip_route 110.94.0.0/15 +add china_ip_route 110.96.0.0/11 +add china_ip_route 110.152.0.0/14 +add china_ip_route 110.156.0.0/15 +add china_ip_route 110.165.32.0/19 +add china_ip_route 110.166.0.0/15 +add china_ip_route 110.172.192.0/18 +add china_ip_route 110.173.0.0/19 +add china_ip_route 110.173.32.0/20 +add china_ip_route 110.173.64.0/19 +add china_ip_route 110.173.96.0/19 +add china_ip_route 110.173.192.0/19 +add china_ip_route 110.176.0.0/13 +add china_ip_route 110.184.0.0/13 +add china_ip_route 110.192.0.0/11 +add china_ip_route 110.228.0.0/14 +add china_ip_route 110.232.32.0/19 +add china_ip_route 110.236.0.0/15 +add china_ip_route 110.240.0.0/12 +add china_ip_route 111.0.0.0/10 +add china_ip_route 111.66.0.0/16 +add china_ip_route 111.67.192.0/20 +add china_ip_route 111.68.64.0/19 +add china_ip_route 111.72.0.0/13 +add china_ip_route 111.85.0.0/16 +add china_ip_route 111.91.192.0/19 +add china_ip_route 111.92.248.0/22 +add china_ip_route 111.92.252.0/22 +add china_ip_route 111.112.0.0/15 +add china_ip_route 111.114.0.0/15 +add china_ip_route 111.116.0.0/15 +add china_ip_route 111.118.200.0/21 +add china_ip_route 111.119.64.0/18 +add china_ip_route 111.119.128.0/19 +add china_ip_route 111.120.0.0/14 +add china_ip_route 111.124.0.0/16 +add china_ip_route 111.126.0.0/15 +add china_ip_route 111.128.0.0/11 +add china_ip_route 111.160.0.0/13 +add china_ip_route 111.170.0.0/16 +add china_ip_route 111.172.0.0/14 +add china_ip_route 111.176.0.0/13 +add china_ip_route 111.186.0.0/15 +add china_ip_route 111.192.0.0/12 +add china_ip_route 111.208.0.0/14 +add china_ip_route 111.212.0.0/14 +add china_ip_route 111.221.28.0/24 +add china_ip_route 111.221.128.0/17 +add china_ip_route 111.222.0.0/16 +add china_ip_route 111.223.4.0/22 +add china_ip_route 111.223.8.0/22 +add china_ip_route 111.223.12.0/22 +add china_ip_route 111.223.16.0/22 +add china_ip_route 111.223.240.0/22 +add china_ip_route 111.223.248.0/22 +add china_ip_route 111.224.0.0/14 +add china_ip_route 111.228.0.0/14 +add china_ip_route 111.235.96.0/19 +add china_ip_route 111.235.156.0/22 +add china_ip_route 111.235.160.0/19 +add china_ip_route 112.0.0.0/10 +add china_ip_route 112.64.0.0/15 +add china_ip_route 112.66.0.0/15 +add china_ip_route 112.73.0.0/16 +add china_ip_route 112.74.0.0/15 +add china_ip_route 112.80.0.0/13 +add china_ip_route 112.88.0.0/13 +add china_ip_route 112.96.0.0/15 +add china_ip_route 112.98.0.0/15 +add china_ip_route 112.100.0.0/14 +add china_ip_route 112.109.128.0/17 +add china_ip_route 112.111.0.0/16 +add china_ip_route 112.112.0.0/14 +add china_ip_route 112.116.0.0/15 +add china_ip_route 112.122.0.0/15 +add china_ip_route 112.124.0.0/14 +add china_ip_route 112.128.0.0/14 +add china_ip_route 112.132.0.0/16 +add china_ip_route 112.137.48.0/21 +add china_ip_route 112.192.0.0/14 +add china_ip_route 112.224.0.0/11 +add china_ip_route 113.0.0.0/13 +add china_ip_route 113.8.0.0/15 +add china_ip_route 113.11.192.0/19 +add china_ip_route 113.12.0.0/14 +add china_ip_route 113.16.0.0/15 +add china_ip_route 113.18.0.0/16 +add china_ip_route 113.21.232.0/22 +add china_ip_route 113.21.236.0/22 +add china_ip_route 113.24.0.0/14 +add china_ip_route 113.31.0.0/16 +add china_ip_route 113.44.0.0/14 +add china_ip_route 113.48.0.0/14 +add china_ip_route 113.52.160.0/19 +add china_ip_route 113.52.228.0/22 +add china_ip_route 113.54.0.0/15 +add china_ip_route 113.56.0.0/15 +add china_ip_route 113.58.0.0/16 +add china_ip_route 113.59.0.0/17 +add china_ip_route 113.59.224.0/22 +add china_ip_route 113.62.0.0/15 +add china_ip_route 113.64.0.0/11 +add china_ip_route 113.96.0.0/12 +add china_ip_route 113.112.0.0/13 +add china_ip_route 113.120.0.0/13 +add china_ip_route 113.128.0.0/15 +add china_ip_route 113.130.96.0/20 +add china_ip_route 113.130.112.0/21 +add china_ip_route 113.132.0.0/14 +add china_ip_route 113.136.0.0/13 +add china_ip_route 113.194.0.0/15 +add china_ip_route 113.197.100.0/22 +add china_ip_route 113.200.0.0/15 +add china_ip_route 113.202.0.0/16 +add china_ip_route 113.204.0.0/14 +add china_ip_route 113.208.96.0/19 +add china_ip_route 113.208.128.0/17 +add china_ip_route 113.209.0.0/16 +add china_ip_route 113.212.0.0/18 +add china_ip_route 113.212.88.0/22 +add china_ip_route 113.212.100.0/22 +add china_ip_route 113.212.184.0/21 +add china_ip_route 113.213.0.0/17 +add china_ip_route 113.214.0.0/15 +add china_ip_route 113.218.0.0/15 +add china_ip_route 113.220.0.0/14 +add china_ip_route 113.224.0.0/12 +add china_ip_route 113.240.0.0/13 +add china_ip_route 113.248.0.0/14 +add china_ip_route 114.28.0.0/16 +add china_ip_route 114.31.64.0/22 +add china_ip_route 114.31.68.0/22 +add china_ip_route 114.54.0.0/15 +add china_ip_route 114.60.0.0/14 +add china_ip_route 114.64.0.0/14 +add china_ip_route 114.68.0.0/16 +add china_ip_route 114.79.64.0/18 +add china_ip_route 114.80.0.0/12 +add china_ip_route 114.96.0.0/13 +add china_ip_route 114.104.0.0/14 +add china_ip_route 114.110.0.0/20 +add china_ip_route 114.110.64.0/18 +add china_ip_route 114.111.0.0/19 +add china_ip_route 114.111.160.0/19 +add china_ip_route 114.112.0.0/14 +add china_ip_route 114.116.0.0/16 +add china_ip_route 114.117.0.0/17 +add china_ip_route 114.117.128.0/17 +add china_ip_route 114.118.0.0/16 +add china_ip_route 114.119.0.0/17 +add china_ip_route 114.119.192.0/21 +add china_ip_route 114.119.200.0/22 +add china_ip_route 114.119.204.0/22 +add china_ip_route 114.119.208.0/20 +add china_ip_route 114.119.224.0/19 +add china_ip_route 114.132.0.0/16 +add china_ip_route 114.135.0.0/16 +add china_ip_route 114.138.0.0/15 +add china_ip_route 114.141.64.0/21 +add china_ip_route 114.141.80.0/22 +add china_ip_route 114.141.84.0/22 +add china_ip_route 114.141.128.0/18 +add china_ip_route 114.196.0.0/15 +add china_ip_route 114.198.248.0/21 +add china_ip_route 114.208.0.0/14 +add china_ip_route 114.212.0.0/15 +add china_ip_route 114.214.0.0/16 +add china_ip_route 114.215.0.0/16 +add china_ip_route 114.216.0.0/13 +add china_ip_route 114.224.0.0/12 +add china_ip_route 114.240.0.0/12 +add china_ip_route 115.24.0.0/14 +add china_ip_route 115.28.0.0/15 +add china_ip_route 115.31.64.0/22 +add china_ip_route 115.31.68.0/22 +add china_ip_route 115.31.72.0/22 +add china_ip_route 115.31.76.0/22 +add china_ip_route 115.32.0.0/14 +add china_ip_route 115.42.56.0/22 +add china_ip_route 115.44.0.0/15 +add china_ip_route 115.46.0.0/16 +add china_ip_route 115.47.0.0/16 +add china_ip_route 115.48.0.0/12 +add china_ip_route 115.69.64.0/20 +add china_ip_route 115.84.0.0/18 +add china_ip_route 115.84.192.0/19 +add china_ip_route 115.85.192.0/18 +add china_ip_route 115.100.0.0/14 +add china_ip_route 115.104.0.0/14 +add china_ip_route 115.120.0.0/14 +add china_ip_route 115.124.16.0/20 +add china_ip_route 115.148.0.0/14 +add china_ip_route 115.152.0.0/15 +add china_ip_route 115.154.0.0/15 +add china_ip_route 115.156.0.0/15 +add china_ip_route 115.158.0.0/16 +add china_ip_route 115.159.0.0/16 +add china_ip_route 115.166.64.0/19 +add china_ip_route 115.168.0.0/14 +add china_ip_route 115.172.0.0/14 +add china_ip_route 115.180.0.0/15 +add china_ip_route 115.182.0.0/16 +add china_ip_route 115.183.0.0/16 +add china_ip_route 115.187.0.0/22 +add china_ip_route 115.187.4.0/22 +add china_ip_route 115.187.8.0/22 +add china_ip_route 115.187.12.0/22 +add china_ip_route 115.190.0.0/15 +add china_ip_route 115.192.0.0/11 +add china_ip_route 115.224.0.0/12 +add china_ip_route 116.0.8.0/21 +add china_ip_route 116.0.24.0/21 +add china_ip_route 116.1.0.0/16 +add china_ip_route 116.2.0.0/15 +add china_ip_route 116.4.0.0/14 +add china_ip_route 116.8.0.0/14 +add china_ip_route 116.13.0.0/16 +add china_ip_route 116.16.0.0/12 +add china_ip_route 116.50.0.0/20 +add china_ip_route 116.52.0.0/14 +add china_ip_route 116.56.0.0/15 +add china_ip_route 116.58.128.0/20 +add china_ip_route 116.58.208.0/20 +add china_ip_route 116.60.0.0/14 +add china_ip_route 116.66.0.0/17 +add china_ip_route 116.66.176.0/22 +add china_ip_route 116.68.136.0/22 +add china_ip_route 116.68.140.0/22 +add china_ip_route 116.68.176.0/22 +add china_ip_route 116.68.180.0/22 +add china_ip_route 116.69.0.0/16 +add china_ip_route 116.70.0.0/17 +add china_ip_route 116.76.0.0/15 +add china_ip_route 116.78.0.0/15 +add china_ip_route 116.85.0.0/16 +add china_ip_route 116.89.144.0/20 +add china_ip_route 116.89.240.0/22 +add china_ip_route 116.90.80.0/20 +add china_ip_route 116.90.184.0/21 +add china_ip_route 116.95.0.0/16 +add china_ip_route 116.112.0.0/14 +add china_ip_route 116.116.0.0/15 +add china_ip_route 116.128.0.0/10 +add china_ip_route 116.192.0.0/16 +add china_ip_route 116.193.16.0/20 +add china_ip_route 116.193.32.0/19 +add china_ip_route 116.193.152.0/22 +add china_ip_route 116.193.164.0/22 +add china_ip_route 116.193.176.0/21 +add china_ip_route 116.194.0.0/15 +add china_ip_route 116.196.0.0/16 +add china_ip_route 116.197.160.0/22 +add china_ip_route 116.197.164.0/22 +add china_ip_route 116.198.0.0/16 +add china_ip_route 116.199.0.0/17 +add china_ip_route 116.199.128.0/19 +add china_ip_route 116.204.0.0/17 +add china_ip_route 116.204.132.0/22 +add china_ip_route 116.204.168.0/22 +add china_ip_route 116.204.216.0/22 +add china_ip_route 116.204.232.0/22 +add china_ip_route 116.205.0.0/16 +add china_ip_route 116.206.92.0/22 +add china_ip_route 116.206.176.0/22 +add china_ip_route 116.207.0.0/16 +add china_ip_route 116.208.0.0/14 +add china_ip_route 116.212.160.0/20 +add china_ip_route 116.213.44.0/22 +add china_ip_route 116.213.64.0/18 +add china_ip_route 116.213.128.0/17 +add china_ip_route 116.214.32.0/19 +add china_ip_route 116.214.64.0/20 +add china_ip_route 116.214.128.0/17 +add china_ip_route 116.215.0.0/16 +add china_ip_route 116.216.0.0/14 +add china_ip_route 116.224.0.0/12 +add china_ip_route 116.242.0.0/15 +add china_ip_route 116.244.0.0/15 +add china_ip_route 116.246.0.0/15 +add china_ip_route 116.248.0.0/15 +add china_ip_route 116.251.64.0/18 +add china_ip_route 116.252.0.0/15 +add china_ip_route 116.254.104.0/22 +add china_ip_route 116.254.108.0/22 +add china_ip_route 116.254.128.0/17 +add china_ip_route 116.255.128.0/17 +add china_ip_route 117.8.0.0/13 +add china_ip_route 117.21.0.0/16 +add china_ip_route 117.22.0.0/15 +add china_ip_route 117.24.0.0/13 +add china_ip_route 117.32.0.0/13 +add china_ip_route 117.40.0.0/14 +add china_ip_route 117.44.0.0/15 +add china_ip_route 117.48.0.0/14 +add china_ip_route 117.53.48.0/20 +add china_ip_route 117.53.176.0/20 +add china_ip_route 117.57.0.0/16 +add china_ip_route 117.58.0.0/17 +add china_ip_route 117.59.0.0/16 +add china_ip_route 117.60.0.0/14 +add china_ip_route 117.64.0.0/13 +add china_ip_route 117.72.0.0/15 +add china_ip_route 117.74.64.0/20 +add china_ip_route 117.74.80.0/20 +add china_ip_route 117.74.128.0/17 +add china_ip_route 117.75.0.0/16 +add china_ip_route 117.76.0.0/14 +add china_ip_route 117.80.0.0/12 +add china_ip_route 117.100.0.0/15 +add china_ip_route 117.103.16.0/20 +add china_ip_route 117.103.40.0/21 +add china_ip_route 117.103.72.0/21 +add china_ip_route 117.103.128.0/20 +add china_ip_route 117.104.168.0/21 +add china_ip_route 117.106.0.0/15 +add china_ip_route 117.112.0.0/13 +add china_ip_route 117.120.64.0/18 +add china_ip_route 117.120.128.0/17 +add china_ip_route 117.121.0.0/17 +add china_ip_route 117.121.128.0/18 +add china_ip_route 117.121.192.0/21 +add china_ip_route 117.122.128.0/17 +add china_ip_route 117.124.0.0/14 +add china_ip_route 117.128.0.0/10 +add china_ip_route 118.24.0.0/15 +add china_ip_route 118.26.0.0/19 +add china_ip_route 118.26.32.0/22 +add china_ip_route 118.26.40.0/21 +add china_ip_route 118.26.48.0/21 +add china_ip_route 118.26.56.0/21 +add china_ip_route 118.26.64.0/19 +add china_ip_route 118.26.96.0/21 +add china_ip_route 118.26.112.0/21 +add china_ip_route 118.26.120.0/21 +add china_ip_route 118.26.128.0/17 +add china_ip_route 118.28.0.0/15 +add china_ip_route 118.30.0.0/16 +add china_ip_route 118.31.0.0/16 +add china_ip_route 118.64.0.0/15 +add china_ip_route 118.66.0.0/16 +add china_ip_route 118.67.112.0/20 +add china_ip_route 118.72.0.0/13 +add china_ip_route 118.80.0.0/15 +add china_ip_route 118.84.0.0/15 +add china_ip_route 118.88.32.0/19 +add china_ip_route 118.88.64.0/18 +add china_ip_route 118.88.128.0/17 +add china_ip_route 118.89.0.0/16 +add china_ip_route 118.91.240.0/20 +add china_ip_route 118.102.16.0/20 +add china_ip_route 118.102.32.0/21 +add china_ip_route 118.103.164.0/22 +add china_ip_route 118.103.168.0/22 +add china_ip_route 118.103.172.0/22 +add china_ip_route 118.103.176.0/22 +add china_ip_route 118.107.180.0/22 +add china_ip_route 118.112.0.0/13 +add china_ip_route 118.120.0.0/14 +add china_ip_route 118.124.0.0/15 +add china_ip_route 118.126.0.0/16 +add china_ip_route 118.127.128.0/19 +add china_ip_route 118.132.0.0/14 +add china_ip_route 118.144.0.0/14 +add china_ip_route 118.178.0.0/16 +add china_ip_route 118.180.0.0/14 +add china_ip_route 118.184.0.0/17 +add china_ip_route 118.184.128.0/17 +add china_ip_route 118.186.0.0/15 +add china_ip_route 118.188.0.0/16 +add china_ip_route 118.190.0.0/16 +add china_ip_route 118.191.0.0/21 +add china_ip_route 118.191.8.0/22 +add china_ip_route 118.191.12.0/24 +add china_ip_route 118.191.16.0/21 +add china_ip_route 118.191.64.0/20 +add china_ip_route 118.191.80.0/22 +add china_ip_route 118.191.128.0/19 +add china_ip_route 118.191.176.0/20 +add china_ip_route 118.191.192.0/20 +add china_ip_route 118.191.208.0/24 +add china_ip_route 118.191.216.0/22 +add china_ip_route 118.191.223.0/24 +add china_ip_route 118.191.224.0/24 +add china_ip_route 118.191.240.0/20 +add china_ip_route 118.192.0.0/16 +add china_ip_route 118.193.0.0/21 +add china_ip_route 118.193.8.0/21 +add china_ip_route 118.193.48.0/21 +add china_ip_route 118.193.96.0/19 +add china_ip_route 118.193.128.0/17 +add china_ip_route 118.194.0.0/17 +add china_ip_route 118.194.128.0/18 +add china_ip_route 118.194.192.0/19 +add china_ip_route 118.194.224.0/22 +add china_ip_route 118.194.240.0/21 +add china_ip_route 118.195.0.0/17 +add china_ip_route 118.195.128.0/17 +add china_ip_route 118.196.0.0/14 +add china_ip_route 118.202.0.0/15 +add china_ip_route 118.204.0.0/14 +add china_ip_route 118.212.0.0/16 +add china_ip_route 118.213.0.0/16 +add china_ip_route 118.215.192.0/18 +add china_ip_route 118.224.0.0/14 +add china_ip_route 118.228.0.0/15 +add china_ip_route 118.230.0.0/16 +add china_ip_route 118.239.0.0/16 +add china_ip_route 118.242.0.0/16 +add china_ip_route 118.244.0.0/14 +add china_ip_route 118.248.0.0/13 +add china_ip_route 119.0.0.0/15 +add china_ip_route 119.2.0.0/19 +add china_ip_route 119.2.128.0/17 +add china_ip_route 119.3.0.0/16 +add china_ip_route 119.4.0.0/14 +add china_ip_route 119.10.0.0/17 +add china_ip_route 119.15.136.0/21 +add china_ip_route 119.16.0.0/16 +add china_ip_route 119.18.192.0/20 +add china_ip_route 119.18.208.0/21 +add china_ip_route 119.18.224.0/20 +add china_ip_route 119.18.240.0/20 +add china_ip_route 119.19.0.0/16 +add china_ip_route 119.20.0.0/14 +add china_ip_route 119.27.64.0/18 +add china_ip_route 119.27.128.0/19 +add china_ip_route 119.27.160.0/19 +add china_ip_route 119.27.192.0/18 +add china_ip_route 119.28.0.0/15 +add china_ip_route 119.30.48.0/20 +add china_ip_route 119.31.192.0/19 +add china_ip_route 119.32.0.0/14 +add china_ip_route 119.36.0.0/16 +add china_ip_route 119.37.0.0/17 +add china_ip_route 119.37.128.0/18 +add china_ip_route 119.37.192.0/18 +add china_ip_route 119.38.0.0/17 +add china_ip_route 119.38.128.0/18 +add china_ip_route 119.38.192.0/20 +add china_ip_route 119.38.208.0/20 +add china_ip_route 119.38.224.0/19 +add china_ip_route 119.39.0.0/16 +add china_ip_route 119.40.0.0/18 +add china_ip_route 119.40.64.0/20 +add china_ip_route 119.40.128.0/17 +add china_ip_route 119.41.0.0/16 +add china_ip_route 119.42.0.0/19 +add china_ip_route 119.42.52.0/22 +add china_ip_route 119.42.128.0/21 +add china_ip_route 119.42.136.0/21 +add china_ip_route 119.42.224.0/19 +add china_ip_route 119.44.0.0/15 +add china_ip_route 119.48.0.0/13 +add china_ip_route 119.57.0.0/16 +add china_ip_route 119.58.0.0/16 +add china_ip_route 119.59.128.0/17 +add china_ip_route 119.60.0.0/16 +add china_ip_route 119.61.0.0/16 +add china_ip_route 119.62.0.0/16 +add china_ip_route 119.63.32.0/19 +add china_ip_route 119.75.208.0/20 +add china_ip_route 119.78.0.0/15 +add china_ip_route 119.80.0.0/16 +add china_ip_route 119.82.208.0/20 +add china_ip_route 119.84.0.0/14 +add china_ip_route 119.88.0.0/14 +add china_ip_route 119.96.0.0/13 +add china_ip_route 119.108.0.0/15 +add china_ip_route 119.112.0.0/13 +add china_ip_route 119.120.0.0/13 +add china_ip_route 119.128.0.0/12 +add china_ip_route 119.144.0.0/14 +add china_ip_route 119.148.160.0/20 +add china_ip_route 119.148.176.0/20 +add china_ip_route 119.151.192.0/18 +add china_ip_route 119.160.200.0/21 +add china_ip_route 119.161.120.0/22 +add china_ip_route 119.161.124.0/22 +add china_ip_route 119.161.128.0/17 +add china_ip_route 119.162.0.0/15 +add china_ip_route 119.164.0.0/14 +add china_ip_route 119.176.0.0/12 +add china_ip_route 119.232.0.0/15 +add china_ip_route 119.235.128.0/18 +add china_ip_route 119.248.0.0/14 +add china_ip_route 119.252.96.0/21 +add china_ip_route 119.252.240.0/20 +add china_ip_route 119.253.0.0/16 +add china_ip_route 119.254.0.0/15 +add china_ip_route 120.0.0.0/12 +add china_ip_route 120.24.0.0/14 +add china_ip_route 120.30.0.0/16 +add china_ip_route 120.31.0.0/16 +add china_ip_route 120.32.0.0/13 +add china_ip_route 120.40.0.0/14 +add china_ip_route 120.44.0.0/15 +add china_ip_route 120.46.0.0/16 +add china_ip_route 120.47.0.0/16 +add china_ip_route 120.48.0.0/15 +add china_ip_route 120.52.0.0/16 +add china_ip_route 120.53.0.0/16 +add china_ip_route 120.54.0.0/15 +add china_ip_route 120.64.0.0/14 +add china_ip_route 120.68.0.0/14 +add china_ip_route 120.72.32.0/19 +add china_ip_route 120.72.128.0/17 +add china_ip_route 120.76.0.0/14 +add china_ip_route 120.80.0.0/13 +add china_ip_route 120.88.8.0/21 +add china_ip_route 120.90.0.0/15 +add china_ip_route 120.92.0.0/16 +add china_ip_route 120.94.0.0/16 +add china_ip_route 120.95.0.0/16 +add china_ip_route 120.128.0.0/14 +add china_ip_route 120.132.0.0/17 +add china_ip_route 120.132.128.0/17 +add china_ip_route 120.133.0.0/16 +add china_ip_route 120.134.0.0/15 +add china_ip_route 120.136.16.0/22 +add china_ip_route 120.136.20.0/22 +add china_ip_route 120.136.128.0/18 +add china_ip_route 120.137.0.0/17 +add china_ip_route 120.143.128.0/19 +add china_ip_route 120.192.0.0/10 +add china_ip_route 121.0.8.0/21 +add china_ip_route 121.0.16.0/20 +add china_ip_route 121.4.0.0/15 +add china_ip_route 121.8.0.0/13 +add china_ip_route 121.16.0.0/13 +add china_ip_route 121.24.0.0/14 +add china_ip_route 121.28.0.0/15 +add china_ip_route 121.30.0.0/16 +add china_ip_route 121.31.0.0/16 +add china_ip_route 121.32.0.0/14 +add china_ip_route 121.36.0.0/16 +add china_ip_route 121.37.0.0/16 +add china_ip_route 121.38.0.0/15 +add china_ip_route 121.40.0.0/14 +add china_ip_route 121.46.0.0/18 +add china_ip_route 121.46.76.0/22 +add china_ip_route 121.46.128.0/17 +add china_ip_route 121.47.0.0/16 +add china_ip_route 121.48.0.0/15 +add china_ip_route 121.50.8.0/21 +add china_ip_route 121.51.0.0/16 +add china_ip_route 121.52.160.0/19 +add china_ip_route 121.52.208.0/20 +add china_ip_route 121.52.224.0/19 +add china_ip_route 121.54.176.0/21 +add china_ip_route 121.54.188.0/22 +add china_ip_route 121.55.0.0/18 +add china_ip_route 121.56.0.0/15 +add china_ip_route 121.58.0.0/17 +add china_ip_route 121.58.136.0/21 +add china_ip_route 121.58.144.0/20 +add china_ip_route 121.58.160.0/21 +add china_ip_route 121.59.0.0/16 +add china_ip_route 121.60.0.0/14 +add china_ip_route 121.68.0.0/14 +add china_ip_route 121.76.0.0/15 +add china_ip_route 121.79.128.0/18 +add china_ip_route 121.89.0.0/16 +add china_ip_route 121.100.128.0/17 +add china_ip_route 121.101.0.0/18 +add china_ip_route 121.101.208.0/20 +add china_ip_route 121.192.0.0/16 +add china_ip_route 121.193.0.0/16 +add china_ip_route 121.194.0.0/15 +add china_ip_route 121.196.0.0/14 +add china_ip_route 121.200.192.0/21 +add china_ip_route 121.201.0.0/16 +add china_ip_route 121.204.0.0/14 +add china_ip_route 121.224.0.0/12 +add china_ip_route 121.248.0.0/14 +add china_ip_route 121.255.0.0/16 +add china_ip_route 122.0.64.0/18 +add china_ip_route 122.0.128.0/17 +add china_ip_route 122.4.0.0/14 +add china_ip_route 122.8.0.0/16 +add china_ip_route 122.9.0.0/16 +add china_ip_route 122.10.128.0/22 +add china_ip_route 122.10.132.0/23 +add china_ip_route 122.10.136.0/23 +add china_ip_route 122.10.164.0/22 +add china_ip_route 122.10.168.0/21 +add china_ip_route 122.10.176.0/20 +add china_ip_route 122.10.192.0/22 +add china_ip_route 122.10.200.0/21 +add china_ip_route 122.10.208.0/21 +add china_ip_route 122.10.216.0/22 +add china_ip_route 122.10.228.0/22 +add china_ip_route 122.10.232.0/21 +add china_ip_route 122.10.240.0/22 +add china_ip_route 122.11.0.0/17 +add china_ip_route 122.12.0.0/16 +add china_ip_route 122.13.0.0/16 +add china_ip_route 122.14.0.0/17 +add china_ip_route 122.14.128.0/18 +add china_ip_route 122.14.192.0/18 +add china_ip_route 122.48.0.0/16 +add china_ip_route 122.49.0.0/18 +add china_ip_route 122.51.0.0/16 +add china_ip_route 122.64.0.0/11 +add china_ip_route 122.96.0.0/15 +add china_ip_route 122.102.0.0/20 +add china_ip_route 122.102.64.0/20 +add china_ip_route 122.102.80.0/20 +add china_ip_route 122.112.0.0/18 +add china_ip_route 122.112.64.0/18 +add china_ip_route 122.112.128.0/17 +add china_ip_route 122.113.0.0/16 +add china_ip_route 122.114.0.0/16 +add china_ip_route 122.115.0.0/17 +add china_ip_route 122.115.128.0/19 +add china_ip_route 122.115.160.0/19 +add china_ip_route 122.115.192.0/19 +add china_ip_route 122.115.224.0/19 +add china_ip_route 122.119.0.0/16 +add china_ip_route 122.128.100.0/22 +add china_ip_route 122.128.120.0/21 +add china_ip_route 122.136.0.0/13 +add china_ip_route 122.144.128.0/17 +add china_ip_route 122.152.192.0/18 +add china_ip_route 122.156.0.0/14 +add china_ip_route 122.188.0.0/14 +add china_ip_route 122.192.0.0/14 +add china_ip_route 122.198.0.0/16 +add china_ip_route 122.200.40.0/22 +add china_ip_route 122.200.44.0/22 +add china_ip_route 122.200.64.0/18 +add china_ip_route 122.201.48.0/20 +add china_ip_route 122.204.0.0/14 +add china_ip_route 122.224.0.0/12 +add china_ip_route 122.240.0.0/13 +add china_ip_route 122.248.24.0/21 +add china_ip_route 122.248.48.0/20 +add china_ip_route 122.255.64.0/21 +add china_ip_route 123.0.128.0/18 +add china_ip_route 123.4.0.0/14 +add china_ip_route 123.8.0.0/13 +add china_ip_route 123.49.128.0/17 +add china_ip_route 123.50.160.0/19 +add china_ip_route 123.52.0.0/14 +add china_ip_route 123.56.0.0/15 +add china_ip_route 123.58.0.0/20 +add china_ip_route 123.58.16.0/20 +add china_ip_route 123.58.32.0/19 +add china_ip_route 123.58.64.0/19 +add china_ip_route 123.58.96.0/19 +add china_ip_route 123.58.128.0/18 +add china_ip_route 123.58.224.0/20 +add china_ip_route 123.58.240.0/20 +add china_ip_route 123.59.0.0/16 +add china_ip_route 123.60.0.0/16 +add china_ip_route 123.61.0.0/16 +add china_ip_route 123.62.0.0/16 +add china_ip_route 123.64.0.0/11 +add china_ip_route 123.96.0.0/15 +add china_ip_route 123.98.0.0/17 +add china_ip_route 123.99.128.0/17 +add china_ip_route 123.100.0.0/19 +add china_ip_route 123.101.0.0/16 +add china_ip_route 123.103.0.0/17 +add china_ip_route 123.108.128.0/20 +add china_ip_route 123.108.208.0/20 +add china_ip_route 123.112.0.0/12 +add china_ip_route 123.128.0.0/13 +add china_ip_route 123.136.80.0/20 +add china_ip_route 123.137.0.0/16 +add china_ip_route 123.138.0.0/15 +add china_ip_route 123.144.0.0/14 +add china_ip_route 123.148.0.0/16 +add china_ip_route 123.149.0.0/16 +add china_ip_route 123.150.0.0/15 +add china_ip_route 123.152.0.0/13 +add china_ip_route 123.160.0.0/14 +add china_ip_route 123.164.0.0/14 +add china_ip_route 123.168.0.0/14 +add china_ip_route 123.172.0.0/15 +add china_ip_route 123.174.0.0/15 +add china_ip_route 123.176.60.0/22 +add china_ip_route 123.176.80.0/20 +add china_ip_route 123.177.0.0/16 +add china_ip_route 123.178.0.0/15 +add china_ip_route 123.180.0.0/14 +add china_ip_route 123.184.0.0/14 +add china_ip_route 123.188.0.0/14 +add china_ip_route 123.196.0.0/15 +add china_ip_route 123.199.128.0/17 +add china_ip_route 123.206.0.0/15 +add china_ip_route 123.232.0.0/14 +add china_ip_route 123.242.0.0/17 +add china_ip_route 123.242.192.0/22 +add china_ip_route 123.242.196.0/22 +add china_ip_route 123.244.0.0/14 +add china_ip_route 123.249.0.0/16 +add china_ip_route 123.253.108.0/22 +add china_ip_route 123.253.240.0/22 +add china_ip_route 123.254.96.0/22 +add china_ip_route 123.254.100.0/22 +add china_ip_route 124.6.64.0/18 +add china_ip_route 124.14.0.0/15 +add china_ip_route 124.16.0.0/15 +add china_ip_route 124.20.0.0/16 +add china_ip_route 124.21.0.0/20 +add china_ip_route 124.21.16.0/20 +add china_ip_route 124.21.32.0/19 +add china_ip_route 124.21.64.0/18 +add china_ip_route 124.21.128.0/17 +add china_ip_route 124.22.0.0/15 +add china_ip_route 124.28.192.0/18 +add china_ip_route 124.29.0.0/17 +add china_ip_route 124.31.0.0/16 +add china_ip_route 124.40.112.0/20 +add china_ip_route 124.40.128.0/18 +add china_ip_route 124.40.192.0/19 +add china_ip_route 124.40.240.0/22 +add china_ip_route 124.42.0.0/17 +add china_ip_route 124.42.128.0/17 +add china_ip_route 124.47.0.0/18 +add china_ip_route 124.64.0.0/15 +add china_ip_route 124.66.0.0/17 +add china_ip_route 124.67.0.0/16 +add china_ip_route 124.68.0.0/14 +add china_ip_route 124.72.0.0/16 +add china_ip_route 124.73.0.0/16 +add china_ip_route 124.74.0.0/15 +add china_ip_route 124.76.0.0/14 +add china_ip_route 124.88.0.0/16 +add china_ip_route 124.89.0.0/17 +add china_ip_route 124.89.128.0/17 +add china_ip_route 124.90.0.0/15 +add china_ip_route 124.92.0.0/14 +add china_ip_route 124.108.8.0/21 +add china_ip_route 124.108.40.0/21 +add china_ip_route 124.109.96.0/21 +add china_ip_route 124.112.0.0/15 +add china_ip_route 124.114.0.0/15 +add china_ip_route 124.116.0.0/16 +add china_ip_route 124.117.0.0/16 +add china_ip_route 124.118.0.0/15 +add china_ip_route 124.126.0.0/15 +add china_ip_route 124.128.0.0/13 +add china_ip_route 124.147.128.0/17 +add china_ip_route 124.150.137.0/24 +add china_ip_route 124.151.0.0/16 +add china_ip_route 124.152.0.0/16 +add china_ip_route 124.160.0.0/16 +add china_ip_route 124.161.0.0/16 +add china_ip_route 124.162.0.0/16 +add china_ip_route 124.163.0.0/16 +add china_ip_route 124.164.0.0/14 +add china_ip_route 124.172.0.0/15 +add china_ip_route 124.174.0.0/15 +add china_ip_route 124.192.0.0/15 +add china_ip_route 124.196.0.0/16 +add china_ip_route 124.200.0.0/13 +add china_ip_route 124.220.0.0/14 +add china_ip_route 124.224.0.0/16 +add china_ip_route 124.225.0.0/16 +add china_ip_route 124.226.0.0/15 +add china_ip_route 124.228.0.0/14 +add china_ip_route 124.232.0.0/15 +add china_ip_route 124.234.0.0/15 +add china_ip_route 124.236.0.0/14 +add china_ip_route 124.240.0.0/17 +add china_ip_route 124.240.128.0/18 +add china_ip_route 124.242.0.0/16 +add china_ip_route 124.243.192.0/18 +add china_ip_route 124.248.0.0/17 +add china_ip_route 124.249.0.0/16 +add china_ip_route 124.250.0.0/15 +add china_ip_route 124.254.0.0/18 +add china_ip_route 125.31.192.0/18 +add china_ip_route 125.32.0.0/16 +add china_ip_route 125.33.0.0/16 +add china_ip_route 125.34.0.0/16 +add china_ip_route 125.35.0.0/17 +add china_ip_route 125.35.128.0/17 +add china_ip_route 125.36.0.0/14 +add china_ip_route 125.40.0.0/13 +add china_ip_route 125.58.128.0/17 +add china_ip_route 125.61.128.0/17 +add china_ip_route 125.62.0.0/18 +add china_ip_route 125.64.0.0/13 +add china_ip_route 125.72.0.0/16 +add china_ip_route 125.73.0.0/16 +add china_ip_route 125.74.0.0/15 +add china_ip_route 125.76.0.0/17 +add china_ip_route 125.76.128.0/17 +add china_ip_route 125.77.0.0/16 +add china_ip_route 125.78.0.0/15 +add china_ip_route 125.80.0.0/13 +add china_ip_route 125.88.0.0/13 +add china_ip_route 125.96.0.0/15 +add china_ip_route 125.98.0.0/16 +add china_ip_route 125.104.0.0/13 +add china_ip_route 125.112.0.0/12 +add china_ip_route 125.169.0.0/16 +add china_ip_route 125.171.0.0/16 +add china_ip_route 125.208.0.0/18 +add china_ip_route 125.210.0.0/16 +add china_ip_route 125.211.0.0/16 +add china_ip_route 125.213.0.0/17 +add china_ip_route 125.214.96.0/19 +add china_ip_route 125.215.0.0/18 +add china_ip_route 125.216.0.0/15 +add china_ip_route 125.218.0.0/16 +add china_ip_route 125.219.0.0/16 +add china_ip_route 125.220.0.0/15 +add china_ip_route 125.222.0.0/15 +add china_ip_route 125.254.128.0/18 +add china_ip_route 125.254.192.0/18 +add china_ip_route 128.108.0.0/16 +add china_ip_route 129.28.0.0/16 +add china_ip_route 129.204.0.0/16 +add china_ip_route 129.211.0.0/16 +add china_ip_route 132.232.0.0/16 +add china_ip_route 134.175.0.0/16 +add china_ip_route 137.59.59.0/24 +add china_ip_route 137.59.88.0/22 +add china_ip_route 139.5.56.0/22 +add china_ip_route 139.5.60.0/22 +add china_ip_route 139.5.80.0/22 +add china_ip_route 139.5.92.0/22 +add china_ip_route 139.5.108.0/22 +add china_ip_route 139.5.128.0/22 +add china_ip_route 139.5.160.0/22 +add china_ip_route 139.5.192.0/22 +add china_ip_route 139.5.204.0/22 +add china_ip_route 139.5.208.0/22 +add china_ip_route 139.5.212.0/22 +add china_ip_route 139.5.244.0/22 +add china_ip_route 139.9.0.0/16 +add china_ip_route 139.129.0.0/16 +add china_ip_route 139.148.0.0/16 +add china_ip_route 139.155.0.0/16 +add china_ip_route 139.159.0.0/16 +add china_ip_route 139.170.0.0/16 +add china_ip_route 139.176.0.0/16 +add china_ip_route 139.183.0.0/16 +add china_ip_route 139.186.0.0/16 +add china_ip_route 139.189.0.0/16 +add china_ip_route 139.196.0.0/14 +add china_ip_route 139.200.0.0/13 +add china_ip_route 139.208.0.0/13 +add china_ip_route 139.217.0.0/16 +add china_ip_route 139.219.0.0/16 +add china_ip_route 139.220.0.0/15 +add china_ip_route 139.224.0.0/16 +add china_ip_route 139.226.0.0/15 +add china_ip_route 140.75.0.0/16 +add china_ip_route 140.143.0.0/16 +add china_ip_route 140.179.0.0/16 +add china_ip_route 140.205.0.0/16 +add china_ip_route 140.206.0.0/15 +add china_ip_route 140.210.0.0/16 +add china_ip_route 140.224.0.0/16 +add china_ip_route 140.237.0.0/16 +add china_ip_route 140.240.0.0/16 +add china_ip_route 140.243.0.0/16 +add china_ip_route 140.246.0.0/16 +add china_ip_route 140.249.0.0/16 +add china_ip_route 140.250.0.0/16 +add china_ip_route 140.255.0.0/16 +add china_ip_route 142.70.0.0/16 +add china_ip_route 142.86.0.0/16 +add china_ip_route 144.0.0.0/16 +add china_ip_route 144.7.0.0/16 +add china_ip_route 144.12.0.0/16 +add china_ip_route 144.48.8.0/22 +add china_ip_route 144.48.64.0/22 +add china_ip_route 144.48.88.0/22 +add china_ip_route 144.48.156.0/22 +add china_ip_route 144.48.180.0/22 +add china_ip_route 144.48.184.0/22 +add china_ip_route 144.48.204.0/22 +add china_ip_route 144.48.208.0/22 +add china_ip_route 144.48.212.0/22 +add china_ip_route 144.48.220.0/22 +add china_ip_route 144.48.252.0/22 +add china_ip_route 144.52.0.0/16 +add china_ip_route 144.123.0.0/16 +add china_ip_route 144.255.0.0/16 +add china_ip_route 146.56.192.0/18 +add china_ip_route 146.196.56.0/22 +add china_ip_route 146.196.68.0/22 +add china_ip_route 146.196.72.0/22 +add china_ip_route 146.196.92.0/22 +add china_ip_route 146.196.112.0/22 +add china_ip_route 146.196.116.0/22 +add china_ip_route 146.196.124.0/22 +add china_ip_route 148.70.0.0/16 +add china_ip_route 149.41.0.0/16 +add china_ip_route 150.0.0.0/16 +add china_ip_route 150.115.0.0/16 +add china_ip_route 150.121.0.0/16 +add china_ip_route 150.122.0.0/16 +add china_ip_route 150.129.136.0/22 +add china_ip_route 150.129.192.0/22 +add china_ip_route 150.129.216.0/22 +add china_ip_route 150.129.252.0/22 +add china_ip_route 150.138.0.0/15 +add china_ip_route 150.158.0.0/16 +add china_ip_route 150.223.0.0/16 +add china_ip_route 150.242.0.0/22 +add china_ip_route 150.242.4.0/22 +add china_ip_route 150.242.8.0/22 +add china_ip_route 150.242.28.0/22 +add china_ip_route 150.242.44.0/22 +add china_ip_route 150.242.48.0/22 +add china_ip_route 150.242.52.0/22 +add china_ip_route 150.242.56.0/22 +add china_ip_route 150.242.76.0/22 +add china_ip_route 150.242.80.0/22 +add china_ip_route 150.242.92.0/22 +add china_ip_route 150.242.96.0/22 +add china_ip_route 150.242.112.0/22 +add china_ip_route 150.242.116.0/22 +add china_ip_route 150.242.120.0/22 +add china_ip_route 150.242.152.0/22 +add china_ip_route 150.242.156.0/22 +add china_ip_route 150.242.160.0/22 +add china_ip_route 150.242.164.0/22 +add china_ip_route 150.242.168.0/22 +add china_ip_route 150.242.184.0/22 +add china_ip_route 150.242.188.0/22 +add china_ip_route 150.242.192.0/22 +add china_ip_route 150.242.212.0/22 +add china_ip_route 150.242.224.0/22 +add china_ip_route 150.242.232.0/22 +add china_ip_route 150.242.236.0/22 +add china_ip_route 150.242.240.0/22 +add china_ip_route 150.242.244.0/22 +add china_ip_route 150.242.248.0/22 +add china_ip_route 150.248.0.0/16 +add china_ip_route 150.255.0.0/16 +add china_ip_route 152.104.128.0/17 +add china_ip_route 152.136.0.0/16 +add china_ip_route 153.0.0.0/16 +add china_ip_route 153.3.0.0/16 +add china_ip_route 153.34.0.0/15 +add china_ip_route 153.36.0.0/15 +add china_ip_route 153.99.0.0/16 +add china_ip_route 153.101.0.0/16 +add china_ip_route 153.118.0.0/15 +add china_ip_route 154.8.128.0/17 +add china_ip_route 156.59.0.0/16 +add china_ip_route 157.0.0.0/16 +add china_ip_route 157.18.0.0/16 +add china_ip_route 157.61.0.0/16 +add china_ip_route 157.119.0.0/22 +add china_ip_route 157.119.8.0/22 +add china_ip_route 157.119.12.0/22 +add china_ip_route 157.119.16.0/22 +add china_ip_route 157.119.28.0/22 +add china_ip_route 157.119.132.0/22 +add china_ip_route 157.119.136.0/22 +add china_ip_route 157.119.140.0/22 +add china_ip_route 157.119.144.0/22 +add china_ip_route 157.119.148.0/22 +add china_ip_route 157.119.152.0/22 +add china_ip_route 157.119.156.0/22 +add china_ip_route 157.119.160.0/22 +add china_ip_route 157.119.164.0/22 +add china_ip_route 157.119.172.0/22 +add china_ip_route 157.119.192.0/22 +add china_ip_route 157.119.196.0/22 +add china_ip_route 157.119.240.0/22 +add china_ip_route 157.119.252.0/22 +add china_ip_route 157.122.0.0/16 +add china_ip_route 157.148.0.0/16 +add china_ip_route 157.156.0.0/16 +add china_ip_route 157.255.0.0/16 +add china_ip_route 158.79.0.0/16 +add china_ip_route 159.75.0.0/16 +add china_ip_route 159.226.0.0/16 +add china_ip_route 160.19.208.0/22 +add china_ip_route 160.19.212.0/22 +add china_ip_route 160.19.216.0/22 +add china_ip_route 160.20.48.0/22 +add china_ip_route 160.202.60.0/22 +add china_ip_route 160.202.148.0/22 +add china_ip_route 160.202.152.0/22 +add china_ip_route 160.202.168.0/22 +add china_ip_route 160.202.212.0/22 +add china_ip_route 160.202.216.0/22 +add china_ip_route 160.202.220.0/22 +add china_ip_route 160.202.224.0/22 +add china_ip_route 160.202.228.0/22 +add china_ip_route 160.202.232.0/22 +add china_ip_route 160.202.236.0/22 +add china_ip_route 160.202.240.0/22 +add china_ip_route 160.202.244.0/22 +add china_ip_route 160.202.248.0/22 +add china_ip_route 160.202.252.0/22 +add china_ip_route 160.238.64.0/22 +add china_ip_route 161.120.0.0/16 +add china_ip_route 161.189.0.0/16 +add china_ip_route 161.207.0.0/16 +add china_ip_route 162.14.0.0/16 +add china_ip_route 162.105.0.0/16 +add china_ip_route 163.0.0.0/16 +add china_ip_route 163.47.4.0/22 +add china_ip_route 163.53.0.0/22 +add china_ip_route 163.53.4.0/22 +add china_ip_route 163.53.8.0/22 +add china_ip_route 163.53.12.0/22 +add china_ip_route 163.53.36.0/22 +add china_ip_route 163.53.40.0/22 +add china_ip_route 163.53.44.0/22 +add china_ip_route 163.53.48.0/22 +add china_ip_route 163.53.52.0/22 +add china_ip_route 163.53.56.0/22 +add china_ip_route 163.53.60.0/22 +add china_ip_route 163.53.64.0/22 +add china_ip_route 163.53.88.0/22 +add china_ip_route 163.53.92.0/22 +add china_ip_route 163.53.96.0/22 +add china_ip_route 163.53.100.0/22 +add china_ip_route 163.53.104.0/22 +add china_ip_route 163.53.108.0/22 +add china_ip_route 163.53.112.0/22 +add china_ip_route 163.53.116.0/22 +add china_ip_route 163.53.120.0/22 +add china_ip_route 163.53.124.0/22 +add china_ip_route 163.53.128.0/22 +add china_ip_route 163.53.132.0/22 +add china_ip_route 163.53.136.0/22 +add china_ip_route 163.53.160.0/22 +add china_ip_route 163.53.164.0/22 +add china_ip_route 163.53.168.0/22 +add china_ip_route 163.53.172.0/22 +add china_ip_route 163.53.188.0/22 +add china_ip_route 163.53.220.0/22 +add china_ip_route 163.53.240.0/22 +add china_ip_route 163.125.0.0/16 +add china_ip_route 163.142.0.0/16 +add china_ip_route 163.177.0.0/16 +add china_ip_route 163.179.0.0/16 +add china_ip_route 163.204.0.0/16 +add china_ip_route 164.52.0.0/17 +add china_ip_route 166.111.0.0/16 +add china_ip_route 167.139.0.0/16 +add china_ip_route 167.189.0.0/16 +add china_ip_route 167.220.244.0/22 +add china_ip_route 168.160.0.0/16 +add china_ip_route 170.179.0.0/16 +add china_ip_route 171.8.0.0/13 +add china_ip_route 171.34.0.0/15 +add china_ip_route 171.36.0.0/14 +add china_ip_route 171.40.0.0/13 +add china_ip_route 171.80.0.0/14 +add china_ip_route 171.84.0.0/14 +add china_ip_route 171.88.0.0/13 +add china_ip_route 171.104.0.0/13 +add china_ip_route 171.112.0.0/14 +add china_ip_route 171.116.0.0/14 +add china_ip_route 171.120.0.0/13 +add china_ip_route 171.208.0.0/12 +add china_ip_route 172.81.192.0/18 +add china_ip_route 175.0.0.0/12 +add china_ip_route 175.16.0.0/13 +add china_ip_route 175.24.0.0/16 +add china_ip_route 175.25.0.0/16 +add china_ip_route 175.26.0.0/16 +add china_ip_route 175.27.0.0/16 +add china_ip_route 175.30.0.0/15 +add china_ip_route 175.42.0.0/15 +add china_ip_route 175.44.0.0/16 +add china_ip_route 175.46.0.0/15 +add china_ip_route 175.48.0.0/12 +add china_ip_route 175.64.0.0/11 +add china_ip_route 175.102.0.0/16 +add china_ip_route 175.106.128.0/17 +add china_ip_route 175.111.144.0/22 +add china_ip_route 175.111.148.0/22 +add china_ip_route 175.111.152.0/22 +add china_ip_route 175.111.156.0/22 +add china_ip_route 175.111.160.0/22 +add china_ip_route 175.111.164.0/22 +add china_ip_route 175.111.168.0/22 +add china_ip_route 175.111.172.0/22 +add china_ip_route 175.111.184.0/22 +add china_ip_route 175.146.0.0/15 +add china_ip_route 175.148.0.0/14 +add china_ip_route 175.152.0.0/14 +add china_ip_route 175.158.96.0/22 +add china_ip_route 175.160.0.0/12 +add china_ip_route 175.176.156.0/22 +add china_ip_route 175.176.176.0/22 +add china_ip_route 175.176.188.0/22 +add china_ip_route 175.176.192.0/22 +add china_ip_route 175.178.0.0/16 +add china_ip_route 175.184.128.0/18 +add china_ip_route 175.185.0.0/16 +add china_ip_route 175.186.0.0/15 +add china_ip_route 175.188.0.0/14 +add china_ip_route 180.76.0.0/16 +add china_ip_route 180.77.0.0/16 +add china_ip_route 180.78.0.0/15 +add china_ip_route 180.84.0.0/15 +add china_ip_route 180.86.0.0/16 +add china_ip_route 180.88.0.0/14 +add china_ip_route 180.94.56.0/21 +add china_ip_route 180.94.96.0/20 +add china_ip_route 180.94.120.0/22 +add china_ip_route 180.94.124.0/22 +add china_ip_route 180.95.128.0/17 +add china_ip_route 180.96.0.0/11 +add china_ip_route 180.129.128.0/17 +add china_ip_route 180.130.0.0/16 +add china_ip_route 180.136.0.0/13 +add china_ip_route 180.148.16.0/21 +add china_ip_route 180.148.152.0/21 +add china_ip_route 180.148.216.0/21 +add china_ip_route 180.148.224.0/19 +add china_ip_route 180.149.128.0/19 +add china_ip_route 180.149.236.0/22 +add china_ip_route 180.150.160.0/19 +add china_ip_route 180.152.0.0/13 +add china_ip_route 180.160.0.0/12 +add china_ip_route 180.178.112.0/22 +add china_ip_route 180.178.116.0/22 +add china_ip_route 180.178.192.0/18 +add china_ip_route 180.184.0.0/15 +add china_ip_route 180.186.0.0/16 +add china_ip_route 180.187.0.0/16 +add china_ip_route 180.188.0.0/17 +add china_ip_route 180.189.148.0/22 +add china_ip_route 180.200.252.0/22 +add china_ip_route 180.201.0.0/16 +add china_ip_route 180.202.0.0/15 +add china_ip_route 180.208.0.0/15 +add china_ip_route 180.210.212.0/22 +add china_ip_route 180.210.224.0/19 +add china_ip_route 180.212.0.0/15 +add china_ip_route 180.222.224.0/19 +add china_ip_route 180.223.0.0/16 +add china_ip_route 180.233.0.0/18 +add china_ip_route 180.233.64.0/19 +add china_ip_route 180.233.144.0/22 +add china_ip_route 180.235.64.0/19 +add china_ip_route 180.235.112.0/22 +add china_ip_route 182.16.144.0/22 +add china_ip_route 182.16.148.0/22 +add china_ip_route 182.16.192.0/19 +add china_ip_route 182.18.0.0/17 +add china_ip_route 182.23.184.0/21 +add china_ip_route 182.23.200.0/21 +add china_ip_route 182.32.0.0/12 +add china_ip_route 182.48.96.0/19 +add china_ip_route 182.49.0.0/16 +add china_ip_route 182.50.0.0/20 +add china_ip_route 182.50.112.0/20 +add china_ip_route 182.51.0.0/16 +add china_ip_route 182.54.0.0/17 +add china_ip_route 182.54.244.0/22 +add china_ip_route 182.61.0.0/16 +add china_ip_route 182.80.0.0/14 +add china_ip_route 182.84.0.0/14 +add china_ip_route 182.88.0.0/14 +add china_ip_route 182.92.0.0/16 +add china_ip_route 182.96.0.0/12 +add china_ip_route 182.112.0.0/12 +add china_ip_route 182.128.0.0/12 +add china_ip_route 182.144.0.0/13 +add china_ip_route 182.157.0.0/16 +add china_ip_route 182.160.64.0/19 +add china_ip_route 182.174.0.0/15 +add china_ip_route 182.200.0.0/13 +add china_ip_route 182.236.128.0/17 +add china_ip_route 182.237.24.0/22 +add china_ip_route 182.237.28.0/22 +add china_ip_route 182.238.0.0/16 +add china_ip_route 182.239.0.0/19 +add china_ip_route 182.240.0.0/13 +add china_ip_route 182.254.0.0/16 +add china_ip_route 182.255.32.0/22 +add china_ip_route 182.255.36.0/22 +add china_ip_route 182.255.60.0/22 +add china_ip_route 183.0.0.0/10 +add china_ip_route 183.64.0.0/13 +add china_ip_route 183.78.160.0/22 +add china_ip_route 183.78.164.0/22 +add china_ip_route 183.78.180.0/22 +add china_ip_route 183.81.172.0/22 +add china_ip_route 183.81.180.0/22 +add china_ip_route 183.84.0.0/15 +add china_ip_route 183.91.128.0/22 +add china_ip_route 183.91.136.0/21 +add china_ip_route 183.91.144.0/20 +add china_ip_route 183.92.0.0/14 +add china_ip_route 183.128.0.0/11 +add china_ip_route 183.160.0.0/13 +add china_ip_route 183.168.0.0/15 +add china_ip_route 183.170.0.0/16 +add china_ip_route 183.172.0.0/14 +add china_ip_route 183.182.0.0/19 +add china_ip_route 183.184.0.0/13 +add china_ip_route 183.192.0.0/10 +add china_ip_route 185.203.36.0/22 +add china_ip_route 188.131.128.0/17 +add china_ip_route 192.51.188.0/24 +add china_ip_route 192.55.46.0/24 +add china_ip_route 192.55.68.0/22 +add china_ip_route 192.102.204.0/23 +add china_ip_route 192.124.154.0/24 +add china_ip_route 192.140.128.0/22 +add china_ip_route 192.140.132.0/22 +add china_ip_route 192.140.136.0/22 +add china_ip_route 192.140.156.0/22 +add china_ip_route 192.140.160.0/22 +add china_ip_route 192.140.164.0/22 +add china_ip_route 192.140.168.0/22 +add china_ip_route 192.140.172.0/22 +add china_ip_route 192.140.176.0/22 +add china_ip_route 192.140.180.0/22 +add china_ip_route 192.140.184.0/22 +add china_ip_route 192.140.188.0/22 +add china_ip_route 192.140.192.0/22 +add china_ip_route 192.140.196.0/22 +add china_ip_route 192.140.200.0/22 +add china_ip_route 192.140.204.0/22 +add china_ip_route 192.140.208.0/22 +add china_ip_route 192.140.212.0/22 +add china_ip_route 192.144.128.0/17 +add china_ip_route 192.197.113.0/24 +add china_ip_route 193.112.0.0/16 +add china_ip_route 198.175.100.0/22 +add china_ip_route 199.212.57.0/24 +add china_ip_route 202.0.100.0/23 +add china_ip_route 202.0.122.0/23 +add china_ip_route 202.0.176.0/22 +add china_ip_route 202.3.128.0/23 +add china_ip_route 202.3.134.0/24 +add china_ip_route 202.4.128.0/19 +add china_ip_route 202.4.252.0/22 +add china_ip_route 202.5.208.0/22 +add china_ip_route 202.5.212.0/22 +add china_ip_route 202.5.216.0/22 +add china_ip_route 202.6.6.0/23 +add china_ip_route 202.6.66.0/23 +add china_ip_route 202.6.72.0/23 +add china_ip_route 202.6.87.0/24 +add china_ip_route 202.6.88.0/23 +add china_ip_route 202.6.92.0/23 +add china_ip_route 202.6.103.0/24 +add china_ip_route 202.6.108.0/24 +add china_ip_route 202.6.110.0/23 +add china_ip_route 202.6.114.0/24 +add china_ip_route 202.6.176.0/20 +add china_ip_route 202.8.0.0/24 +add china_ip_route 202.8.2.0/23 +add china_ip_route 202.8.4.0/23 +add china_ip_route 202.8.12.0/24 +add china_ip_route 202.8.24.0/24 +add china_ip_route 202.8.77.0/24 +add china_ip_route 202.8.120.0/22 +add china_ip_route 202.8.128.0/19 +add china_ip_route 202.8.192.0/20 +add china_ip_route 202.9.32.0/24 +add china_ip_route 202.9.34.0/23 +add china_ip_route 202.9.48.0/23 +add china_ip_route 202.9.51.0/24 +add china_ip_route 202.9.52.0/23 +add china_ip_route 202.9.54.0/24 +add china_ip_route 202.9.57.0/24 +add china_ip_route 202.9.58.0/23 +add china_ip_route 202.10.64.0/20 +add china_ip_route 202.10.112.0/22 +add china_ip_route 202.10.116.0/22 +add china_ip_route 202.10.120.0/22 +add china_ip_route 202.10.124.0/22 +add china_ip_route 202.12.1.0/24 +add china_ip_route 202.12.2.0/24 +add china_ip_route 202.12.17.0/24 +add china_ip_route 202.12.18.0/24 +add china_ip_route 202.12.19.0/24 +add china_ip_route 202.12.72.0/24 +add china_ip_route 202.12.84.0/23 +add china_ip_route 202.12.96.0/24 +add china_ip_route 202.12.98.0/23 +add china_ip_route 202.12.106.0/24 +add china_ip_route 202.12.111.0/24 +add china_ip_route 202.12.116.0/24 +add china_ip_route 202.14.64.0/23 +add china_ip_route 202.14.69.0/24 +add china_ip_route 202.14.73.0/24 +add china_ip_route 202.14.74.0/23 +add china_ip_route 202.14.76.0/24 +add china_ip_route 202.14.78.0/23 +add china_ip_route 202.14.88.0/24 +add china_ip_route 202.14.97.0/24 +add china_ip_route 202.14.104.0/23 +add china_ip_route 202.14.108.0/23 +add china_ip_route 202.14.111.0/24 +add china_ip_route 202.14.114.0/23 +add china_ip_route 202.14.118.0/23 +add china_ip_route 202.14.124.0/23 +add china_ip_route 202.14.127.0/24 +add china_ip_route 202.14.129.0/24 +add china_ip_route 202.14.135.0/24 +add china_ip_route 202.14.136.0/24 +add china_ip_route 202.14.149.0/24 +add china_ip_route 202.14.151.0/24 +add china_ip_route 202.14.157.0/24 +add china_ip_route 202.14.158.0/23 +add china_ip_route 202.14.169.0/24 +add china_ip_route 202.14.170.0/23 +add china_ip_route 202.14.172.0/22 +add china_ip_route 202.14.176.0/24 +add china_ip_route 202.14.184.0/23 +add china_ip_route 202.14.208.0/23 +add china_ip_route 202.14.213.0/24 +add china_ip_route 202.14.219.0/24 +add china_ip_route 202.14.220.0/24 +add china_ip_route 202.14.222.0/23 +add china_ip_route 202.14.225.0/24 +add china_ip_route 202.14.226.0/23 +add china_ip_route 202.14.231.0/24 +add china_ip_route 202.14.235.0/24 +add china_ip_route 202.14.236.0/23 +add china_ip_route 202.14.238.0/24 +add china_ip_route 202.14.239.0/24 +add china_ip_route 202.14.246.0/24 +add china_ip_route 202.14.251.0/24 +add china_ip_route 202.20.66.0/24 +add china_ip_route 202.20.79.0/24 +add china_ip_route 202.20.87.0/24 +add china_ip_route 202.20.88.0/23 +add china_ip_route 202.20.90.0/24 +add china_ip_route 202.20.94.0/23 +add china_ip_route 202.20.114.0/24 +add china_ip_route 202.20.117.0/24 +add china_ip_route 202.20.120.0/24 +add china_ip_route 202.20.125.0/24 +add china_ip_route 202.20.126.0/24 +add china_ip_route 202.20.127.0/24 +add china_ip_route 202.21.48.0/22 +add china_ip_route 202.21.52.0/22 +add china_ip_route 202.21.56.0/22 +add china_ip_route 202.21.60.0/22 +add china_ip_route 202.21.131.0/24 +add china_ip_route 202.21.132.0/24 +add china_ip_route 202.21.141.0/24 +add china_ip_route 202.21.142.0/24 +add china_ip_route 202.21.147.0/24 +add china_ip_route 202.21.148.0/24 +add china_ip_route 202.21.150.0/23 +add china_ip_route 202.21.152.0/23 +add china_ip_route 202.21.154.0/24 +add china_ip_route 202.21.156.0/24 +add china_ip_route 202.22.248.0/22 +add china_ip_route 202.22.252.0/22 +add china_ip_route 202.27.12.0/24 +add china_ip_route 202.27.14.0/24 +add china_ip_route 202.27.136.0/23 +add china_ip_route 202.36.226.0/24 +add china_ip_route 202.38.0.0/23 +add china_ip_route 202.38.2.0/23 +add china_ip_route 202.38.8.0/21 +add china_ip_route 202.38.48.0/20 +add china_ip_route 202.38.64.0/19 +add china_ip_route 202.38.96.0/19 +add china_ip_route 202.38.128.0/23 +add china_ip_route 202.38.130.0/23 +add china_ip_route 202.38.132.0/23 +add china_ip_route 202.38.134.0/24 +add china_ip_route 202.38.135.0/24 +add china_ip_route 202.38.136.0/23 +add china_ip_route 202.38.138.0/24 +add china_ip_route 202.38.140.0/23 +add china_ip_route 202.38.142.0/23 +add china_ip_route 202.38.146.0/23 +add china_ip_route 202.38.149.0/24 +add china_ip_route 202.38.150.0/23 +add china_ip_route 202.38.152.0/23 +add china_ip_route 202.38.154.0/23 +add china_ip_route 202.38.156.0/24 +add china_ip_route 202.38.158.0/23 +add china_ip_route 202.38.160.0/23 +add china_ip_route 202.38.164.0/22 +add china_ip_route 202.38.168.0/23 +add china_ip_route 202.38.170.0/24 +add china_ip_route 202.38.171.0/24 +add china_ip_route 202.38.176.0/23 +add china_ip_route 202.38.184.0/21 +add china_ip_route 202.38.192.0/18 +add china_ip_route 202.40.4.0/23 +add china_ip_route 202.40.7.0/24 +add china_ip_route 202.40.15.0/24 +add china_ip_route 202.40.135.0/24 +add china_ip_route 202.40.136.0/24 +add china_ip_route 202.40.140.0/24 +add china_ip_route 202.40.143.0/24 +add china_ip_route 202.40.144.0/23 +add china_ip_route 202.40.150.0/24 +add china_ip_route 202.40.155.0/24 +add china_ip_route 202.40.156.0/24 +add china_ip_route 202.40.158.0/23 +add china_ip_route 202.40.162.0/24 +add china_ip_route 202.41.8.0/23 +add china_ip_route 202.41.11.0/24 +add china_ip_route 202.41.12.0/23 +add china_ip_route 202.41.128.0/24 +add china_ip_route 202.41.130.0/23 +add china_ip_route 202.41.152.0/21 +add china_ip_route 202.41.192.0/24 +add china_ip_route 202.41.196.0/22 +add china_ip_route 202.41.200.0/22 +add china_ip_route 202.41.240.0/20 +add china_ip_route 202.43.76.0/22 +add china_ip_route 202.43.144.0/20 +add china_ip_route 202.44.16.0/20 +add china_ip_route 202.44.48.0/22 +add china_ip_route 202.44.67.0/24 +add china_ip_route 202.44.74.0/24 +add china_ip_route 202.44.97.0/24 +add china_ip_route 202.44.129.0/24 +add china_ip_route 202.44.132.0/23 +add china_ip_route 202.44.146.0/23 +add china_ip_route 202.45.0.0/23 +add china_ip_route 202.45.2.0/24 +add china_ip_route 202.45.15.0/24 +add china_ip_route 202.45.16.0/20 +add china_ip_route 202.46.16.0/23 +add china_ip_route 202.46.18.0/24 +add china_ip_route 202.46.20.0/23 +add china_ip_route 202.46.32.0/19 +add china_ip_route 202.46.128.0/24 +add china_ip_route 202.46.224.0/20 +add china_ip_route 202.47.82.0/23 +add china_ip_route 202.47.96.0/22 +add china_ip_route 202.47.100.0/22 +add china_ip_route 202.47.104.0/22 +add china_ip_route 202.47.108.0/22 +add china_ip_route 202.47.126.0/24 +add china_ip_route 202.47.128.0/24 +add china_ip_route 202.47.130.0/23 +add china_ip_route 202.52.33.0/24 +add china_ip_route 202.52.34.0/24 +add china_ip_route 202.52.47.0/24 +add china_ip_route 202.52.143.0/24 +add china_ip_route 202.52.144.0/24 +add china_ip_route 202.53.140.0/24 +add china_ip_route 202.53.143.0/24 +add china_ip_route 202.57.192.0/22 +add china_ip_route 202.57.196.0/22 +add china_ip_route 202.57.200.0/22 +add china_ip_route 202.57.204.0/22 +add china_ip_route 202.57.212.0/22 +add china_ip_route 202.57.216.0/22 +add china_ip_route 202.57.240.0/20 +add china_ip_route 202.58.0.0/24 +add china_ip_route 202.58.101.0/24 +add china_ip_route 202.58.104.0/22 +add china_ip_route 202.58.112.0/22 +add china_ip_route 202.59.0.0/24 +add china_ip_route 202.59.1.0/24 +add china_ip_route 202.59.212.0/22 +add china_ip_route 202.59.236.0/24 +add china_ip_route 202.59.240.0/24 +add china_ip_route 202.60.48.0/21 +add china_ip_route 202.60.96.0/21 +add china_ip_route 202.60.112.0/20 +add china_ip_route 202.60.132.0/22 +add china_ip_route 202.60.136.0/21 +add china_ip_route 202.60.144.0/20 +add china_ip_route 202.61.68.0/22 +add china_ip_route 202.61.76.0/22 +add china_ip_route 202.61.88.0/22 +add china_ip_route 202.61.123.0/24 +add china_ip_route 202.61.127.0/24 +add china_ip_route 202.62.112.0/22 +add china_ip_route 202.62.248.0/22 +add china_ip_route 202.62.252.0/24 +add china_ip_route 202.62.255.0/24 +add china_ip_route 202.63.80.0/24 +add china_ip_route 202.63.81.0/24 +add china_ip_route 202.63.82.0/23 +add china_ip_route 202.63.84.0/22 +add china_ip_route 202.63.88.0/21 +add china_ip_route 202.63.160.0/19 +add china_ip_route 202.63.248.0/22 +add china_ip_route 202.63.253.0/24 +add china_ip_route 202.65.0.0/21 +add china_ip_route 202.65.8.0/23 +add china_ip_route 202.65.96.0/22 +add china_ip_route 202.65.100.0/22 +add china_ip_route 202.65.104.0/22 +add china_ip_route 202.65.108.0/22 +add china_ip_route 202.66.168.0/22 +add china_ip_route 202.67.0.0/22 +add china_ip_route 202.69.4.0/22 +add china_ip_route 202.69.16.0/20 +add china_ip_route 202.70.0.0/19 +add china_ip_route 202.70.96.0/20 +add china_ip_route 202.70.192.0/20 +add china_ip_route 202.71.32.0/22 +add china_ip_route 202.71.36.0/22 +add china_ip_route 202.71.40.0/22 +add china_ip_route 202.71.44.0/22 +add china_ip_route 202.72.40.0/21 +add china_ip_route 202.72.80.0/20 +add china_ip_route 202.72.112.0/22 +add china_ip_route 202.72.116.0/22 +add china_ip_route 202.72.120.0/22 +add china_ip_route 202.72.124.0/22 +add china_ip_route 202.73.128.0/22 +add china_ip_route 202.73.240.0/22 +add china_ip_route 202.73.244.0/22 +add china_ip_route 202.73.248.0/22 +add china_ip_route 202.73.252.0/22 +add china_ip_route 202.74.8.0/21 +add china_ip_route 202.74.36.0/24 +add china_ip_route 202.74.42.0/24 +add china_ip_route 202.74.52.0/24 +add china_ip_route 202.74.80.0/20 +add china_ip_route 202.74.232.0/22 +add china_ip_route 202.74.254.0/23 +add china_ip_route 202.75.208.0/20 +add china_ip_route 202.75.252.0/22 +add china_ip_route 202.76.252.0/22 +add china_ip_route 202.77.80.0/21 +add china_ip_route 202.77.92.0/22 +add china_ip_route 202.78.8.0/21 +add china_ip_route 202.79.224.0/21 +add china_ip_route 202.79.248.0/22 +add china_ip_route 202.80.192.0/21 +add china_ip_route 202.80.200.0/21 +add china_ip_route 202.81.0.0/22 +add china_ip_route 202.81.176.0/22 +add china_ip_route 202.81.180.0/22 +add china_ip_route 202.81.184.0/22 +add china_ip_route 202.81.188.0/22 +add china_ip_route 202.83.252.0/22 +add china_ip_route 202.84.0.0/22 +add china_ip_route 202.84.4.0/22 +add china_ip_route 202.84.8.0/21 +add china_ip_route 202.84.16.0/23 +add china_ip_route 202.84.22.0/24 +add china_ip_route 202.84.24.0/21 +add china_ip_route 202.85.208.0/20 +add china_ip_route 202.86.249.0/24 +add china_ip_route 202.86.252.0/22 +add china_ip_route 202.87.80.0/20 +add china_ip_route 202.88.32.0/22 +add china_ip_route 202.89.8.0/21 +add china_ip_route 202.89.96.0/22 +add china_ip_route 202.89.108.0/22 +add china_ip_route 202.89.119.0/24 +add china_ip_route 202.89.232.0/21 +add china_ip_route 202.90.0.0/22 +add china_ip_route 202.90.16.0/22 +add china_ip_route 202.90.20.0/22 +add china_ip_route 202.90.24.0/22 +add china_ip_route 202.90.28.0/22 +add china_ip_route 202.90.37.0/24 +add china_ip_route 202.90.96.0/22 +add china_ip_route 202.90.100.0/22 +add china_ip_route 202.90.104.0/22 +add china_ip_route 202.90.108.0/22 +add china_ip_route 202.90.112.0/20 +add china_ip_route 202.90.193.0/24 +add china_ip_route 202.90.196.0/24 +add china_ip_route 202.90.205.0/24 +add china_ip_route 202.90.224.0/20 +add china_ip_route 202.91.0.0/22 +add china_ip_route 202.91.36.0/22 +add china_ip_route 202.91.96.0/20 +add china_ip_route 202.91.128.0/22 +add china_ip_route 202.91.176.0/20 +add china_ip_route 202.91.224.0/19 +add china_ip_route 202.92.0.0/22 +add china_ip_route 202.92.8.0/21 +add china_ip_route 202.92.48.0/20 +add china_ip_route 202.92.252.0/22 +add china_ip_route 202.93.0.0/22 +add china_ip_route 202.93.252.0/22 +add china_ip_route 202.94.68.0/24 +add china_ip_route 202.94.74.0/24 +add china_ip_route 202.94.81.0/24 +add china_ip_route 202.94.92.0/22 +add china_ip_route 202.95.240.0/21 +add china_ip_route 202.95.252.0/22 +add china_ip_route 202.96.0.0/18 +add china_ip_route 202.96.64.0/21 +add china_ip_route 202.96.72.0/21 +add china_ip_route 202.96.80.0/20 +add china_ip_route 202.96.96.0/21 +add china_ip_route 202.96.104.0/21 +add china_ip_route 202.96.112.0/20 +add china_ip_route 202.96.128.0/21 +add china_ip_route 202.96.136.0/21 +add china_ip_route 202.96.144.0/20 +add china_ip_route 202.96.160.0/21 +add china_ip_route 202.96.168.0/21 +add china_ip_route 202.96.176.0/20 +add china_ip_route 202.96.192.0/21 +add china_ip_route 202.96.200.0/21 +add china_ip_route 202.96.208.0/20 +add china_ip_route 202.96.224.0/21 +add china_ip_route 202.96.232.0/21 +add china_ip_route 202.96.240.0/20 +add china_ip_route 202.97.0.0/21 +add china_ip_route 202.97.8.0/21 +add china_ip_route 202.97.16.0/20 +add china_ip_route 202.97.32.0/19 +add china_ip_route 202.97.64.0/19 +add china_ip_route 202.97.96.0/20 +add china_ip_route 202.97.112.0/20 +add china_ip_route 202.97.128.0/18 +add china_ip_route 202.97.192.0/19 +add china_ip_route 202.97.224.0/21 +add china_ip_route 202.97.232.0/21 +add china_ip_route 202.97.240.0/20 +add china_ip_route 202.98.0.0/21 +add china_ip_route 202.98.8.0/21 +add china_ip_route 202.98.16.0/20 +add china_ip_route 202.98.32.0/21 +add china_ip_route 202.98.40.0/21 +add china_ip_route 202.98.48.0/20 +add china_ip_route 202.98.64.0/19 +add china_ip_route 202.98.96.0/21 +add china_ip_route 202.98.104.0/21 +add china_ip_route 202.98.112.0/20 +add china_ip_route 202.98.128.0/19 +add china_ip_route 202.98.160.0/21 +add china_ip_route 202.98.168.0/21 +add china_ip_route 202.98.176.0/20 +add china_ip_route 202.98.192.0/21 +add china_ip_route 202.98.200.0/21 +add china_ip_route 202.98.208.0/20 +add china_ip_route 202.98.224.0/21 +add china_ip_route 202.98.232.0/21 +add china_ip_route 202.98.240.0/20 +add china_ip_route 202.99.0.0/18 +add china_ip_route 202.99.64.0/19 +add china_ip_route 202.99.96.0/21 +add china_ip_route 202.99.104.0/21 +add china_ip_route 202.99.112.0/20 +add china_ip_route 202.99.128.0/19 +add china_ip_route 202.99.160.0/21 +add china_ip_route 202.99.168.0/21 +add china_ip_route 202.99.176.0/20 +add china_ip_route 202.99.192.0/21 +add china_ip_route 202.99.200.0/21 +add china_ip_route 202.99.208.0/20 +add china_ip_route 202.99.224.0/21 +add china_ip_route 202.99.232.0/21 +add china_ip_route 202.99.240.0/20 +add china_ip_route 202.100.0.0/21 +add china_ip_route 202.100.8.0/21 +add china_ip_route 202.100.16.0/20 +add china_ip_route 202.100.32.0/19 +add china_ip_route 202.100.64.0/21 +add china_ip_route 202.100.72.0/21 +add china_ip_route 202.100.80.0/20 +add china_ip_route 202.100.96.0/21 +add china_ip_route 202.100.104.0/21 +add china_ip_route 202.100.112.0/20 +add china_ip_route 202.100.128.0/21 +add china_ip_route 202.100.136.0/21 +add china_ip_route 202.100.144.0/20 +add china_ip_route 202.100.160.0/21 +add china_ip_route 202.100.168.0/21 +add china_ip_route 202.100.176.0/20 +add china_ip_route 202.100.192.0/21 +add china_ip_route 202.100.200.0/21 +add china_ip_route 202.100.208.0/20 +add china_ip_route 202.100.224.0/19 +add china_ip_route 202.101.0.0/18 +add china_ip_route 202.101.64.0/19 +add china_ip_route 202.101.96.0/19 +add china_ip_route 202.101.128.0/18 +add china_ip_route 202.101.192.0/19 +add china_ip_route 202.101.224.0/21 +add china_ip_route 202.101.232.0/21 +add china_ip_route 202.101.240.0/20 +add china_ip_route 202.102.0.0/19 +add china_ip_route 202.102.32.0/19 +add china_ip_route 202.102.64.0/18 +add china_ip_route 202.102.128.0/21 +add china_ip_route 202.102.136.0/21 +add china_ip_route 202.102.144.0/20 +add china_ip_route 202.102.160.0/19 +add china_ip_route 202.102.192.0/21 +add china_ip_route 202.102.200.0/21 +add china_ip_route 202.102.208.0/20 +add china_ip_route 202.102.224.0/21 +add china_ip_route 202.102.232.0/21 +add china_ip_route 202.102.240.0/20 +add china_ip_route 202.103.0.0/21 +add china_ip_route 202.103.8.0/21 +add china_ip_route 202.103.16.0/20 +add china_ip_route 202.103.32.0/19 +add china_ip_route 202.103.64.0/19 +add china_ip_route 202.103.96.0/21 +add china_ip_route 202.103.104.0/21 +add china_ip_route 202.103.112.0/20 +add china_ip_route 202.103.128.0/18 +add china_ip_route 202.103.192.0/19 +add china_ip_route 202.103.224.0/21 +add china_ip_route 202.103.232.0/21 +add china_ip_route 202.103.240.0/20 +add china_ip_route 202.104.0.0/15 +add china_ip_route 202.106.0.0/16 +add china_ip_route 202.107.0.0/17 +add china_ip_route 202.107.128.0/17 +add china_ip_route 202.108.0.0/16 +add china_ip_route 202.109.0.0/16 +add china_ip_route 202.110.0.0/18 +add china_ip_route 202.110.64.0/18 +add china_ip_route 202.110.128.0/18 +add china_ip_route 202.110.192.0/18 +add china_ip_route 202.111.0.0/17 +add china_ip_route 202.111.128.0/19 +add china_ip_route 202.111.160.0/19 +add china_ip_route 202.111.192.0/18 +add china_ip_route 202.112.0.0/16 +add china_ip_route 202.113.0.0/20 +add china_ip_route 202.113.16.0/20 +add china_ip_route 202.113.32.0/19 +add china_ip_route 202.113.64.0/18 +add china_ip_route 202.113.128.0/18 +add china_ip_route 202.113.192.0/19 +add china_ip_route 202.113.224.0/20 +add china_ip_route 202.113.240.0/20 +add china_ip_route 202.114.0.0/19 +add china_ip_route 202.114.32.0/19 +add china_ip_route 202.114.64.0/18 +add china_ip_route 202.114.128.0/17 +add china_ip_route 202.115.0.0/19 +add china_ip_route 202.115.32.0/19 +add china_ip_route 202.115.64.0/18 +add china_ip_route 202.115.128.0/17 +add china_ip_route 202.116.0.0/19 +add china_ip_route 202.116.32.0/20 +add china_ip_route 202.116.48.0/20 +add china_ip_route 202.116.64.0/19 +add china_ip_route 202.116.96.0/19 +add china_ip_route 202.116.128.0/17 +add china_ip_route 202.117.0.0/18 +add china_ip_route 202.117.64.0/18 +add china_ip_route 202.117.128.0/17 +add china_ip_route 202.118.0.0/19 +add china_ip_route 202.118.32.0/19 +add china_ip_route 202.118.64.0/18 +add china_ip_route 202.118.128.0/17 +add china_ip_route 202.119.0.0/19 +add china_ip_route 202.119.32.0/19 +add china_ip_route 202.119.64.0/20 +add china_ip_route 202.119.80.0/20 +add china_ip_route 202.119.96.0/19 +add china_ip_route 202.119.128.0/17 +add china_ip_route 202.120.0.0/18 +add china_ip_route 202.120.64.0/18 +add china_ip_route 202.120.128.0/17 +add china_ip_route 202.121.0.0/16 +add china_ip_route 202.122.0.0/21 +add china_ip_route 202.122.32.0/21 +add china_ip_route 202.122.64.0/19 +add china_ip_route 202.122.112.0/21 +add china_ip_route 202.122.120.0/21 +add china_ip_route 202.122.128.0/24 +add china_ip_route 202.122.132.0/24 +add china_ip_route 202.123.96.0/20 +add china_ip_route 202.123.116.0/22 +add china_ip_route 202.123.120.0/22 +add china_ip_route 202.124.16.0/21 +add china_ip_route 202.124.24.0/22 +add china_ip_route 202.125.107.0/24 +add china_ip_route 202.125.109.0/24 +add china_ip_route 202.125.112.0/20 +add china_ip_route 202.125.176.0/20 +add china_ip_route 202.127.0.0/23 +add china_ip_route 202.127.2.0/24 +add china_ip_route 202.127.3.0/24 +add china_ip_route 202.127.4.0/24 +add china_ip_route 202.127.5.0/24 +add china_ip_route 202.127.6.0/23 +add china_ip_route 202.127.12.0/22 +add china_ip_route 202.127.16.0/20 +add china_ip_route 202.127.40.0/21 +add china_ip_route 202.127.48.0/20 +add china_ip_route 202.127.112.0/20 +add china_ip_route 202.127.128.0/20 +add china_ip_route 202.127.144.0/20 +add china_ip_route 202.127.160.0/21 +add china_ip_route 202.127.192.0/23 +add china_ip_route 202.127.194.0/23 +add china_ip_route 202.127.196.0/22 +add china_ip_route 202.127.200.0/21 +add china_ip_route 202.127.208.0/24 +add china_ip_route 202.127.209.0/24 +add china_ip_route 202.127.212.0/22 +add china_ip_route 202.127.216.0/21 +add china_ip_route 202.127.224.0/19 +add china_ip_route 202.129.208.0/24 +add china_ip_route 202.130.0.0/19 +add china_ip_route 202.130.39.0/24 +add china_ip_route 202.130.224.0/19 +add china_ip_route 202.131.16.0/21 +add china_ip_route 202.131.48.0/20 +add china_ip_route 202.131.208.0/20 +add china_ip_route 202.133.32.0/20 +add china_ip_route 202.134.58.0/24 +add china_ip_route 202.134.128.0/20 +add china_ip_route 202.134.208.0/22 +add china_ip_route 202.134.212.0/22 +add china_ip_route 202.134.216.0/22 +add china_ip_route 202.134.220.0/22 +add china_ip_route 202.136.48.0/20 +add china_ip_route 202.136.208.0/20 +add china_ip_route 202.136.224.0/20 +add china_ip_route 202.136.248.0/22 +add china_ip_route 202.137.231.0/24 +add china_ip_route 202.140.140.0/22 +add china_ip_route 202.140.144.0/22 +add china_ip_route 202.140.148.0/22 +add china_ip_route 202.140.152.0/22 +add china_ip_route 202.140.156.0/22 +add china_ip_route 202.141.160.0/19 +add china_ip_route 202.142.16.0/20 +add china_ip_route 202.143.4.0/22 +add china_ip_route 202.143.16.0/20 +add china_ip_route 202.143.32.0/20 +add china_ip_route 202.143.56.0/21 +add china_ip_route 202.143.100.0/22 +add china_ip_route 202.143.104.0/22 +add china_ip_route 202.144.196.0/22 +add china_ip_route 202.146.160.0/20 +add china_ip_route 202.146.186.0/24 +add china_ip_route 202.146.188.0/22 +add china_ip_route 202.146.196.0/22 +add china_ip_route 202.146.200.0/21 +add china_ip_route 202.147.144.0/20 +add china_ip_route 202.148.32.0/20 +add china_ip_route 202.148.64.0/19 +add china_ip_route 202.148.96.0/19 +add china_ip_route 202.149.32.0/19 +add china_ip_route 202.149.160.0/19 +add china_ip_route 202.149.224.0/19 +add china_ip_route 202.150.16.0/20 +add china_ip_route 202.150.32.0/20 +add china_ip_route 202.150.56.0/22 +add china_ip_route 202.150.192.0/20 +add china_ip_route 202.150.224.0/19 +add china_ip_route 202.151.0.0/22 +add china_ip_route 202.151.33.0/24 +add china_ip_route 202.151.128.0/19 +add china_ip_route 202.152.176.0/20 +add china_ip_route 202.153.0.0/22 +add china_ip_route 202.153.7.0/24 +add china_ip_route 202.153.48.0/20 +add china_ip_route 202.157.192.0/19 +add china_ip_route 202.158.160.0/19 +add china_ip_route 202.158.242.0/24 +add china_ip_route 202.160.140.0/22 +add china_ip_route 202.160.156.0/22 +add china_ip_route 202.160.176.0/20 +add china_ip_route 202.162.67.0/24 +add china_ip_route 202.162.75.0/24 +add china_ip_route 202.164.0.0/20 +add china_ip_route 202.164.96.0/19 +add china_ip_route 202.165.176.0/20 +add china_ip_route 202.165.208.0/20 +add china_ip_route 202.165.239.0/24 +add china_ip_route 202.165.240.0/23 +add china_ip_route 202.165.243.0/24 +add china_ip_route 202.165.245.0/24 +add china_ip_route 202.165.251.0/24 +add china_ip_route 202.165.252.0/22 +add china_ip_route 202.166.224.0/19 +add china_ip_route 202.168.80.0/22 +add china_ip_route 202.168.128.0/22 +add china_ip_route 202.168.132.0/22 +add china_ip_route 202.168.136.0/22 +add china_ip_route 202.168.140.0/22 +add china_ip_route 202.168.160.0/20 +add china_ip_route 202.168.176.0/20 +add china_ip_route 202.170.128.0/19 +add china_ip_route 202.170.216.0/21 +add china_ip_route 202.170.224.0/19 +add china_ip_route 202.171.216.0/21 +add china_ip_route 202.171.232.0/24 +add china_ip_route 202.171.235.0/24 +add china_ip_route 202.172.0.0/22 +add china_ip_route 202.172.7.0/24 +add china_ip_route 202.173.0.0/22 +add china_ip_route 202.173.6.0/24 +add china_ip_route 202.173.8.0/21 +add china_ip_route 202.173.112.0/22 +add china_ip_route 202.173.224.0/19 +add china_ip_route 202.174.64.0/20 +add china_ip_route 202.174.124.0/22 +add china_ip_route 202.176.224.0/19 +add china_ip_route 202.179.160.0/22 +add china_ip_route 202.179.164.0/22 +add china_ip_route 202.179.168.0/22 +add china_ip_route 202.179.172.0/22 +add china_ip_route 202.179.240.0/20 +add china_ip_route 202.180.128.0/19 +add china_ip_route 202.180.208.0/21 +add china_ip_route 202.181.8.0/22 +add china_ip_route 202.181.28.0/22 +add china_ip_route 202.181.112.0/20 +add china_ip_route 202.182.32.0/20 +add china_ip_route 202.182.192.0/19 +add china_ip_route 202.189.0.0/18 +add china_ip_route 202.189.80.0/20 +add china_ip_route 202.189.184.0/21 +add china_ip_route 202.191.0.0/24 +add china_ip_route 202.191.68.0/22 +add china_ip_route 202.191.72.0/21 +add china_ip_route 202.191.80.0/20 +add china_ip_route 202.192.0.0/13 +add china_ip_route 202.200.0.0/14 +add china_ip_route 202.204.0.0/14 +add china_ip_route 203.0.4.0/22 +add china_ip_route 203.0.10.0/23 +add china_ip_route 203.0.18.0/24 +add china_ip_route 203.0.24.0/24 +add china_ip_route 203.0.42.0/23 +add china_ip_route 203.0.45.0/24 +add china_ip_route 203.0.46.0/23 +add china_ip_route 203.0.81.0/24 +add china_ip_route 203.0.82.0/23 +add china_ip_route 203.0.90.0/23 +add china_ip_route 203.0.96.0/23 +add china_ip_route 203.0.104.0/21 +add china_ip_route 203.0.114.0/23 +add china_ip_route 203.0.122.0/24 +add china_ip_route 203.0.128.0/24 +add china_ip_route 203.0.130.0/23 +add china_ip_route 203.0.132.0/22 +add china_ip_route 203.0.137.0/24 +add china_ip_route 203.0.142.0/24 +add china_ip_route 203.0.144.0/24 +add china_ip_route 203.0.146.0/24 +add china_ip_route 203.0.148.0/24 +add china_ip_route 203.0.150.0/23 +add china_ip_route 203.0.152.0/24 +add china_ip_route 203.0.177.0/24 +add china_ip_route 203.0.224.0/24 +add china_ip_route 203.1.4.0/22 +add china_ip_route 203.1.18.0/24 +add china_ip_route 203.1.26.0/23 +add china_ip_route 203.1.65.0/24 +add china_ip_route 203.1.66.0/23 +add china_ip_route 203.1.70.0/23 +add china_ip_route 203.1.76.0/23 +add china_ip_route 203.1.90.0/24 +add china_ip_route 203.1.97.0/24 +add china_ip_route 203.1.98.0/23 +add china_ip_route 203.1.100.0/22 +add china_ip_route 203.1.108.0/24 +add china_ip_route 203.1.253.0/24 +add china_ip_route 203.1.254.0/24 +add china_ip_route 203.2.64.0/21 +add china_ip_route 203.2.73.0/24 +add china_ip_route 203.2.112.0/21 +add china_ip_route 203.2.126.0/23 +add china_ip_route 203.2.140.0/24 +add china_ip_route 203.2.150.0/24 +add china_ip_route 203.2.152.0/22 +add china_ip_route 203.2.156.0/23 +add china_ip_route 203.2.160.0/21 +add china_ip_route 203.2.180.0/23 +add china_ip_route 203.2.196.0/23 +add china_ip_route 203.2.209.0/24 +add china_ip_route 203.2.214.0/23 +add china_ip_route 203.2.226.0/23 +add china_ip_route 203.2.229.0/24 +add china_ip_route 203.2.236.0/23 +add china_ip_route 203.3.68.0/24 +add china_ip_route 203.3.72.0/23 +add china_ip_route 203.3.75.0/24 +add china_ip_route 203.3.80.0/21 +add china_ip_route 203.3.96.0/22 +add china_ip_route 203.3.105.0/24 +add china_ip_route 203.3.112.0/21 +add china_ip_route 203.3.120.0/24 +add china_ip_route 203.3.123.0/24 +add china_ip_route 203.3.135.0/24 +add china_ip_route 203.3.139.0/24 +add china_ip_route 203.3.143.0/24 +add china_ip_route 203.4.132.0/23 +add china_ip_route 203.4.134.0/24 +add china_ip_route 203.4.151.0/24 +add china_ip_route 203.4.152.0/22 +add china_ip_route 203.4.174.0/23 +add china_ip_route 203.4.180.0/24 +add china_ip_route 203.4.186.0/24 +add china_ip_route 203.4.205.0/24 +add china_ip_route 203.4.208.0/22 +add china_ip_route 203.4.227.0/24 +add china_ip_route 203.4.230.0/23 +add china_ip_route 203.5.4.0/23 +add china_ip_route 203.5.7.0/24 +add china_ip_route 203.5.8.0/23 +add china_ip_route 203.5.11.0/24 +add china_ip_route 203.5.21.0/24 +add china_ip_route 203.5.22.0/24 +add china_ip_route 203.5.44.0/24 +add china_ip_route 203.5.46.0/23 +add china_ip_route 203.5.52.0/22 +add china_ip_route 203.5.56.0/23 +add china_ip_route 203.5.60.0/23 +add china_ip_route 203.5.114.0/23 +add china_ip_route 203.5.118.0/24 +add china_ip_route 203.5.120.0/24 +add china_ip_route 203.5.172.0/24 +add china_ip_route 203.5.180.0/23 +add china_ip_route 203.5.182.0/24 +add china_ip_route 203.5.185.0/24 +add china_ip_route 203.5.186.0/24 +add china_ip_route 203.5.188.0/23 +add china_ip_route 203.5.190.0/24 +add china_ip_route 203.5.195.0/24 +add china_ip_route 203.5.214.0/23 +add china_ip_route 203.5.218.0/23 +add china_ip_route 203.6.131.0/24 +add china_ip_route 203.6.136.0/24 +add china_ip_route 203.6.138.0/23 +add china_ip_route 203.6.142.0/24 +add china_ip_route 203.6.150.0/23 +add china_ip_route 203.6.157.0/24 +add china_ip_route 203.6.159.0/24 +add china_ip_route 203.6.224.0/20 +add china_ip_route 203.6.248.0/23 +add china_ip_route 203.7.129.0/24 +add china_ip_route 203.7.138.0/23 +add china_ip_route 203.7.147.0/24 +add china_ip_route 203.7.150.0/23 +add china_ip_route 203.7.158.0/24 +add china_ip_route 203.7.192.0/23 +add china_ip_route 203.7.200.0/24 +add china_ip_route 203.8.0.0/24 +add china_ip_route 203.8.8.0/24 +add china_ip_route 203.8.23.0/24 +add china_ip_route 203.8.70.0/24 +add china_ip_route 203.8.82.0/24 +add china_ip_route 203.8.86.0/23 +add china_ip_route 203.8.91.0/24 +add china_ip_route 203.8.110.0/23 +add china_ip_route 203.8.115.0/24 +add china_ip_route 203.8.166.0/23 +add china_ip_route 203.8.169.0/24 +add china_ip_route 203.8.173.0/24 +add china_ip_route 203.8.184.0/24 +add china_ip_route 203.8.186.0/23 +add china_ip_route 203.8.190.0/23 +add china_ip_route 203.8.192.0/24 +add china_ip_route 203.8.197.0/24 +add china_ip_route 203.8.198.0/23 +add china_ip_route 203.8.203.0/24 +add china_ip_route 203.8.209.0/24 +add china_ip_route 203.8.210.0/23 +add china_ip_route 203.8.212.0/22 +add china_ip_route 203.8.217.0/24 +add china_ip_route 203.8.220.0/24 +add china_ip_route 203.9.32.0/24 +add china_ip_route 203.9.36.0/23 +add china_ip_route 203.9.57.0/24 +add china_ip_route 203.9.63.0/24 +add china_ip_route 203.9.65.0/24 +add china_ip_route 203.9.70.0/23 +add china_ip_route 203.9.72.0/24 +add china_ip_route 203.9.75.0/24 +add china_ip_route 203.9.76.0/23 +add china_ip_route 203.9.96.0/22 +add china_ip_route 203.9.100.0/23 +add china_ip_route 203.9.108.0/24 +add china_ip_route 203.9.158.0/24 +add china_ip_route 203.10.34.0/24 +add china_ip_route 203.10.56.0/24 +add china_ip_route 203.10.74.0/23 +add china_ip_route 203.10.84.0/22 +add china_ip_route 203.10.88.0/24 +add china_ip_route 203.10.95.0/24 +add china_ip_route 203.10.125.0/24 +add china_ip_route 203.11.70.0/24 +add china_ip_route 203.11.76.0/22 +add china_ip_route 203.11.82.0/24 +add china_ip_route 203.11.84.0/22 +add china_ip_route 203.11.100.0/22 +add china_ip_route 203.11.109.0/24 +add china_ip_route 203.11.117.0/24 +add china_ip_route 203.11.122.0/24 +add china_ip_route 203.11.126.0/24 +add china_ip_route 203.11.136.0/22 +add china_ip_route 203.11.141.0/24 +add china_ip_route 203.11.142.0/23 +add china_ip_route 203.11.180.0/22 +add china_ip_route 203.11.208.0/22 +add china_ip_route 203.12.16.0/24 +add china_ip_route 203.12.19.0/24 +add china_ip_route 203.12.24.0/24 +add china_ip_route 203.12.57.0/24 +add china_ip_route 203.12.65.0/24 +add china_ip_route 203.12.66.0/24 +add china_ip_route 203.12.70.0/23 +add china_ip_route 203.12.87.0/24 +add china_ip_route 203.12.100.0/23 +add china_ip_route 203.12.103.0/24 +add china_ip_route 203.12.114.0/24 +add china_ip_route 203.12.118.0/24 +add china_ip_route 203.12.130.0/24 +add china_ip_route 203.12.137.0/24 +add china_ip_route 203.12.196.0/22 +add china_ip_route 203.12.211.0/24 +add china_ip_route 203.12.219.0/24 +add china_ip_route 203.12.226.0/24 +add china_ip_route 203.12.240.0/22 +add china_ip_route 203.13.18.0/24 +add china_ip_route 203.13.24.0/24 +add china_ip_route 203.13.44.0/23 +add china_ip_route 203.13.88.0/23 +add china_ip_route 203.13.92.0/22 +add china_ip_route 203.13.173.0/24 +add china_ip_route 203.13.224.0/23 +add china_ip_route 203.13.227.0/24 +add china_ip_route 203.13.233.0/24 +add china_ip_route 203.14.24.0/22 +add china_ip_route 203.14.33.0/24 +add china_ip_route 203.14.56.0/24 +add china_ip_route 203.14.61.0/24 +add china_ip_route 203.14.62.0/24 +add china_ip_route 203.14.104.0/24 +add china_ip_route 203.14.114.0/23 +add china_ip_route 203.14.118.0/24 +add china_ip_route 203.14.162.0/24 +add china_ip_route 203.14.192.0/24 +add china_ip_route 203.14.194.0/23 +add china_ip_route 203.14.214.0/24 +add china_ip_route 203.14.231.0/24 +add china_ip_route 203.14.246.0/24 +add china_ip_route 203.15.0.0/20 +add china_ip_route 203.15.20.0/23 +add china_ip_route 203.15.22.0/24 +add china_ip_route 203.15.87.0/24 +add china_ip_route 203.15.88.0/23 +add china_ip_route 203.15.105.0/24 +add china_ip_route 203.15.112.0/21 +add china_ip_route 203.15.130.0/23 +add china_ip_route 203.15.149.0/24 +add china_ip_route 203.15.151.0/24 +add china_ip_route 203.15.156.0/22 +add china_ip_route 203.15.174.0/24 +add china_ip_route 203.15.227.0/24 +add china_ip_route 203.15.232.0/21 +add china_ip_route 203.15.240.0/23 +add china_ip_route 203.15.246.0/24 +add china_ip_route 203.16.10.0/24 +add china_ip_route 203.16.12.0/23 +add china_ip_route 203.16.16.0/21 +add china_ip_route 203.16.27.0/24 +add china_ip_route 203.16.38.0/24 +add china_ip_route 203.16.49.0/24 +add china_ip_route 203.16.50.0/23 +add china_ip_route 203.16.58.0/24 +add china_ip_route 203.16.63.0/24 +add china_ip_route 203.16.133.0/24 +add china_ip_route 203.16.161.0/24 +add china_ip_route 203.16.162.0/24 +add china_ip_route 203.16.186.0/23 +add china_ip_route 203.16.228.0/24 +add china_ip_route 203.16.238.0/24 +add china_ip_route 203.16.240.0/24 +add china_ip_route 203.16.245.0/24 +add china_ip_route 203.17.2.0/24 +add china_ip_route 203.17.18.0/24 +add china_ip_route 203.17.28.0/24 +add china_ip_route 203.17.39.0/24 +add china_ip_route 203.17.56.0/24 +add china_ip_route 203.17.74.0/23 +add china_ip_route 203.17.88.0/23 +add china_ip_route 203.17.136.0/24 +add china_ip_route 203.17.164.0/24 +add china_ip_route 203.17.187.0/24 +add china_ip_route 203.17.190.0/23 +add china_ip_route 203.17.231.0/24 +add china_ip_route 203.17.233.0/24 +add china_ip_route 203.17.248.0/24 +add china_ip_route 203.17.249.0/24 +add china_ip_route 203.17.255.0/24 +add china_ip_route 203.18.2.0/23 +add china_ip_route 203.18.4.0/24 +add china_ip_route 203.18.7.0/24 +add china_ip_route 203.18.31.0/24 +add china_ip_route 203.18.37.0/24 +add china_ip_route 203.18.48.0/23 +add china_ip_route 203.18.52.0/24 +add china_ip_route 203.18.72.0/22 +add china_ip_route 203.18.80.0/23 +add china_ip_route 203.18.87.0/24 +add china_ip_route 203.18.100.0/23 +add china_ip_route 203.18.105.0/24 +add china_ip_route 203.18.107.0/24 +add china_ip_route 203.18.110.0/24 +add china_ip_route 203.18.129.0/24 +add china_ip_route 203.18.131.0/24 +add china_ip_route 203.18.132.0/23 +add china_ip_route 203.18.144.0/24 +add china_ip_route 203.18.153.0/24 +add china_ip_route 203.18.199.0/24 +add china_ip_route 203.18.208.0/24 +add china_ip_route 203.18.211.0/24 +add china_ip_route 203.18.215.0/24 +add china_ip_route 203.19.1.0/24 +add china_ip_route 203.19.18.0/24 +add china_ip_route 203.19.24.0/24 +add china_ip_route 203.19.30.0/24 +add china_ip_route 203.19.32.0/21 +add china_ip_route 203.19.41.0/24 +add china_ip_route 203.19.44.0/23 +add china_ip_route 203.19.46.0/24 +add china_ip_route 203.19.58.0/24 +add china_ip_route 203.19.60.0/23 +add china_ip_route 203.19.64.0/24 +add china_ip_route 203.19.68.0/24 +add china_ip_route 203.19.72.0/24 +add china_ip_route 203.19.101.0/24 +add china_ip_route 203.19.111.0/24 +add china_ip_route 203.19.131.0/24 +add china_ip_route 203.19.133.0/24 +add china_ip_route 203.19.144.0/24 +add china_ip_route 203.19.147.0/24 +add china_ip_route 203.19.149.0/24 +add china_ip_route 203.19.156.0/24 +add china_ip_route 203.19.176.0/24 +add china_ip_route 203.19.178.0/23 +add china_ip_route 203.19.208.0/24 +add china_ip_route 203.19.228.0/22 +add china_ip_route 203.19.233.0/24 +add china_ip_route 203.19.242.0/24 +add china_ip_route 203.19.248.0/23 +add china_ip_route 203.19.255.0/24 +add china_ip_route 203.20.17.0/24 +add china_ip_route 203.20.40.0/23 +add china_ip_route 203.20.44.0/24 +add china_ip_route 203.20.48.0/24 +add china_ip_route 203.20.61.0/24 +add china_ip_route 203.20.65.0/24 +add china_ip_route 203.20.84.0/23 +add china_ip_route 203.20.89.0/24 +add china_ip_route 203.20.106.0/23 +add china_ip_route 203.20.115.0/24 +add china_ip_route 203.20.117.0/24 +add china_ip_route 203.20.118.0/23 +add china_ip_route 203.20.122.0/24 +add china_ip_route 203.20.126.0/23 +add china_ip_route 203.20.135.0/24 +add china_ip_route 203.20.136.0/21 +add china_ip_route 203.20.150.0/24 +add china_ip_route 203.20.230.0/24 +add china_ip_route 203.20.232.0/24 +add china_ip_route 203.20.236.0/24 +add china_ip_route 203.21.0.0/23 +add china_ip_route 203.21.2.0/24 +add china_ip_route 203.21.8.0/24 +add china_ip_route 203.21.10.0/24 +add china_ip_route 203.21.18.0/24 +add china_ip_route 203.21.33.0/24 +add china_ip_route 203.21.34.0/24 +add china_ip_route 203.21.41.0/24 +add china_ip_route 203.21.44.0/24 +add china_ip_route 203.21.68.0/24 +add china_ip_route 203.21.82.0/24 +add china_ip_route 203.21.96.0/22 +add china_ip_route 203.21.124.0/24 +add china_ip_route 203.21.136.0/23 +add china_ip_route 203.21.145.0/24 +add china_ip_route 203.21.206.0/24 +add china_ip_route 203.22.24.0/24 +add china_ip_route 203.22.28.0/23 +add china_ip_route 203.22.31.0/24 +add china_ip_route 203.22.68.0/24 +add china_ip_route 203.22.76.0/24 +add china_ip_route 203.22.78.0/24 +add china_ip_route 203.22.84.0/24 +add china_ip_route 203.22.87.0/24 +add china_ip_route 203.22.92.0/22 +add china_ip_route 203.22.99.0/24 +add china_ip_route 203.22.106.0/24 +add china_ip_route 203.22.122.0/23 +add china_ip_route 203.22.131.0/24 +add china_ip_route 203.22.163.0/24 +add china_ip_route 203.22.166.0/24 +add china_ip_route 203.22.170.0/24 +add china_ip_route 203.22.176.0/21 +add china_ip_route 203.22.194.0/24 +add china_ip_route 203.22.242.0/23 +add china_ip_route 203.22.245.0/24 +add china_ip_route 203.22.246.0/24 +add china_ip_route 203.22.252.0/23 +add china_ip_route 203.23.0.0/24 +add china_ip_route 203.23.47.0/24 +add china_ip_route 203.23.61.0/24 +add china_ip_route 203.23.62.0/23 +add china_ip_route 203.23.73.0/24 +add china_ip_route 203.23.85.0/24 +add china_ip_route 203.23.92.0/22 +add china_ip_route 203.23.98.0/24 +add china_ip_route 203.23.107.0/24 +add china_ip_route 203.23.112.0/24 +add china_ip_route 203.23.130.0/24 +add china_ip_route 203.23.140.0/23 +add china_ip_route 203.23.172.0/24 +add china_ip_route 203.23.182.0/24 +add china_ip_route 203.23.186.0/23 +add china_ip_route 203.23.192.0/24 +add china_ip_route 203.23.197.0/24 +add china_ip_route 203.23.198.0/24 +add china_ip_route 203.23.204.0/22 +add china_ip_route 203.23.224.0/24 +add china_ip_route 203.23.226.0/23 +add china_ip_route 203.23.228.0/22 +add china_ip_route 203.23.249.0/24 +add china_ip_route 203.23.251.0/24 +add china_ip_route 203.24.13.0/24 +add china_ip_route 203.24.18.0/24 +add china_ip_route 203.24.27.0/24 +add china_ip_route 203.24.43.0/24 +add china_ip_route 203.24.56.0/24 +add china_ip_route 203.24.58.0/24 +add china_ip_route 203.24.67.0/24 +add china_ip_route 203.24.74.0/24 +add china_ip_route 203.24.79.0/24 +add china_ip_route 203.24.80.0/23 +add china_ip_route 203.24.84.0/23 +add china_ip_route 203.24.86.0/24 +add china_ip_route 203.24.90.0/24 +add china_ip_route 203.24.111.0/24 +add china_ip_route 203.24.112.0/24 +add china_ip_route 203.24.116.0/24 +add china_ip_route 203.24.122.0/23 +add china_ip_route 203.24.145.0/24 +add china_ip_route 203.24.152.0/23 +add china_ip_route 203.24.157.0/24 +add china_ip_route 203.24.161.0/24 +add china_ip_route 203.24.167.0/24 +add china_ip_route 203.24.186.0/23 +add china_ip_route 203.24.199.0/24 +add china_ip_route 203.24.202.0/24 +add china_ip_route 203.24.212.0/23 +add china_ip_route 203.24.217.0/24 +add china_ip_route 203.24.219.0/24 +add china_ip_route 203.24.244.0/24 +add china_ip_route 203.25.19.0/24 +add china_ip_route 203.25.20.0/23 +add china_ip_route 203.25.46.0/24 +add china_ip_route 203.25.48.0/21 +add china_ip_route 203.25.64.0/23 +add china_ip_route 203.25.91.0/24 +add china_ip_route 203.25.99.0/24 +add china_ip_route 203.25.100.0/24 +add china_ip_route 203.25.106.0/24 +add china_ip_route 203.25.131.0/24 +add china_ip_route 203.25.135.0/24 +add china_ip_route 203.25.138.0/24 +add china_ip_route 203.25.147.0/24 +add china_ip_route 203.25.153.0/24 +add china_ip_route 203.25.154.0/23 +add china_ip_route 203.25.164.0/24 +add china_ip_route 203.25.166.0/24 +add china_ip_route 203.25.174.0/23 +add china_ip_route 203.25.180.0/24 +add china_ip_route 203.25.182.0/24 +add china_ip_route 203.25.191.0/24 +add china_ip_route 203.25.199.0/24 +add china_ip_route 203.25.200.0/24 +add china_ip_route 203.25.202.0/23 +add china_ip_route 203.25.208.0/20 +add china_ip_route 203.25.229.0/24 +add china_ip_route 203.25.235.0/24 +add china_ip_route 203.25.236.0/24 +add china_ip_route 203.25.242.0/24 +add china_ip_route 203.26.12.0/24 +add china_ip_route 203.26.34.0/24 +add china_ip_route 203.26.49.0/24 +add china_ip_route 203.26.50.0/24 +add china_ip_route 203.26.55.0/24 +add china_ip_route 203.26.56.0/23 +add china_ip_route 203.26.60.0/24 +add china_ip_route 203.26.65.0/24 +add china_ip_route 203.26.68.0/24 +add china_ip_route 203.26.76.0/24 +add china_ip_route 203.26.80.0/24 +add china_ip_route 203.26.84.0/24 +add china_ip_route 203.26.97.0/24 +add china_ip_route 203.26.102.0/23 +add china_ip_route 203.26.115.0/24 +add china_ip_route 203.26.116.0/24 +add china_ip_route 203.26.129.0/24 +add china_ip_route 203.26.143.0/24 +add china_ip_route 203.26.144.0/24 +add china_ip_route 203.26.148.0/23 +add china_ip_route 203.26.154.0/24 +add china_ip_route 203.26.158.0/23 +add china_ip_route 203.26.170.0/24 +add china_ip_route 203.26.173.0/24 +add china_ip_route 203.26.176.0/24 +add china_ip_route 203.26.185.0/24 +add china_ip_route 203.26.202.0/23 +add china_ip_route 203.26.210.0/24 +add china_ip_route 203.26.214.0/24 +add china_ip_route 203.26.222.0/24 +add china_ip_route 203.26.224.0/24 +add china_ip_route 203.26.228.0/24 +add china_ip_route 203.26.232.0/24 +add china_ip_route 203.27.0.0/24 +add china_ip_route 203.27.10.0/24 +add china_ip_route 203.27.15.0/24 +add china_ip_route 203.27.16.0/24 +add china_ip_route 203.27.20.0/24 +add china_ip_route 203.27.22.0/23 +add china_ip_route 203.27.40.0/24 +add china_ip_route 203.27.45.0/24 +add china_ip_route 203.27.53.0/24 +add china_ip_route 203.27.65.0/24 +add china_ip_route 203.27.66.0/24 +add china_ip_route 203.27.81.0/24 +add china_ip_route 203.27.88.0/24 +add china_ip_route 203.27.102.0/24 +add china_ip_route 203.27.109.0/24 +add china_ip_route 203.27.117.0/24 +add china_ip_route 203.27.121.0/24 +add china_ip_route 203.27.122.0/23 +add china_ip_route 203.27.125.0/24 +add china_ip_route 203.27.200.0/24 +add china_ip_route 203.27.202.0/24 +add china_ip_route 203.27.233.0/24 +add china_ip_route 203.27.241.0/24 +add china_ip_route 203.27.250.0/24 +add china_ip_route 203.28.10.0/24 +add china_ip_route 203.28.12.0/24 +add china_ip_route 203.28.33.0/24 +add china_ip_route 203.28.34.0/23 +add china_ip_route 203.28.43.0/24 +add china_ip_route 203.28.44.0/24 +add china_ip_route 203.28.54.0/24 +add china_ip_route 203.28.56.0/24 +add china_ip_route 203.28.73.0/24 +add china_ip_route 203.28.74.0/24 +add china_ip_route 203.28.76.0/24 +add china_ip_route 203.28.86.0/24 +add china_ip_route 203.28.88.0/24 +add china_ip_route 203.28.112.0/24 +add china_ip_route 203.28.131.0/24 +add china_ip_route 203.28.136.0/24 +add china_ip_route 203.28.140.0/24 +add china_ip_route 203.28.145.0/24 +add china_ip_route 203.28.165.0/24 +add china_ip_route 203.28.169.0/24 +add china_ip_route 203.28.170.0/24 +add china_ip_route 203.28.178.0/23 +add china_ip_route 203.28.185.0/24 +add china_ip_route 203.28.187.0/24 +add china_ip_route 203.28.196.0/24 +add china_ip_route 203.28.226.0/23 +add china_ip_route 203.28.239.0/24 +add china_ip_route 203.29.2.0/24 +add china_ip_route 203.29.8.0/23 +add china_ip_route 203.29.13.0/24 +add china_ip_route 203.29.14.0/24 +add china_ip_route 203.29.28.0/24 +add china_ip_route 203.29.46.0/24 +add china_ip_route 203.29.57.0/24 +add china_ip_route 203.29.61.0/24 +add china_ip_route 203.29.63.0/24 +add china_ip_route 203.29.69.0/24 +add china_ip_route 203.29.73.0/24 +add china_ip_route 203.29.81.0/24 +add china_ip_route 203.29.90.0/24 +add china_ip_route 203.29.95.0/24 +add china_ip_route 203.29.100.0/24 +add china_ip_route 203.29.103.0/24 +add china_ip_route 203.29.112.0/24 +add china_ip_route 203.29.120.0/22 +add china_ip_route 203.29.182.0/23 +add china_ip_route 203.29.187.0/24 +add china_ip_route 203.29.189.0/24 +add china_ip_route 203.29.190.0/24 +add china_ip_route 203.29.205.0/24 +add china_ip_route 203.29.210.0/24 +add china_ip_route 203.29.217.0/24 +add china_ip_route 203.29.227.0/24 +add china_ip_route 203.29.231.0/24 +add china_ip_route 203.29.233.0/24 +add china_ip_route 203.29.234.0/24 +add china_ip_route 203.29.248.0/24 +add china_ip_route 203.29.254.0/23 +add china_ip_route 203.30.16.0/23 +add china_ip_route 203.30.25.0/24 +add china_ip_route 203.30.27.0/24 +add china_ip_route 203.30.29.0/24 +add china_ip_route 203.30.66.0/24 +add china_ip_route 203.30.81.0/24 +add china_ip_route 203.30.87.0/24 +add china_ip_route 203.30.111.0/24 +add china_ip_route 203.30.121.0/24 +add china_ip_route 203.30.123.0/24 +add china_ip_route 203.30.152.0/24 +add china_ip_route 203.30.156.0/24 +add china_ip_route 203.30.162.0/24 +add china_ip_route 203.30.173.0/24 +add china_ip_route 203.30.175.0/24 +add china_ip_route 203.30.187.0/24 +add china_ip_route 203.30.194.0/24 +add china_ip_route 203.30.217.0/24 +add china_ip_route 203.30.220.0/24 +add china_ip_route 203.30.222.0/24 +add china_ip_route 203.30.232.0/23 +add china_ip_route 203.30.235.0/24 +add china_ip_route 203.30.240.0/23 +add china_ip_route 203.30.246.0/24 +add china_ip_route 203.30.250.0/23 +add china_ip_route 203.31.45.0/24 +add china_ip_route 203.31.46.0/24 +add china_ip_route 203.31.49.0/24 +add china_ip_route 203.31.51.0/24 +add china_ip_route 203.31.54.0/23 +add china_ip_route 203.31.69.0/24 +add china_ip_route 203.31.72.0/24 +add china_ip_route 203.31.80.0/24 +add china_ip_route 203.31.85.0/24 +add china_ip_route 203.31.97.0/24 +add china_ip_route 203.31.105.0/24 +add china_ip_route 203.31.106.0/24 +add china_ip_route 203.31.108.0/23 +add china_ip_route 203.31.124.0/24 +add china_ip_route 203.31.162.0/24 +add china_ip_route 203.31.174.0/24 +add china_ip_route 203.31.177.0/24 +add china_ip_route 203.31.181.0/24 +add china_ip_route 203.31.187.0/24 +add china_ip_route 203.31.189.0/24 +add china_ip_route 203.31.204.0/24 +add china_ip_route 203.31.220.0/24 +add china_ip_route 203.31.222.0/23 +add china_ip_route 203.31.225.0/24 +add china_ip_route 203.31.229.0/24 +add china_ip_route 203.31.248.0/23 +add china_ip_route 203.31.253.0/24 +add china_ip_route 203.32.20.0/24 +add china_ip_route 203.32.48.0/23 +add china_ip_route 203.32.56.0/24 +add china_ip_route 203.32.60.0/24 +add china_ip_route 203.32.62.0/24 +add china_ip_route 203.32.68.0/23 +add china_ip_route 203.32.76.0/24 +add china_ip_route 203.32.81.0/24 +add china_ip_route 203.32.84.0/23 +add china_ip_route 203.32.95.0/24 +add china_ip_route 203.32.102.0/24 +add china_ip_route 203.32.105.0/24 +add china_ip_route 203.32.130.0/24 +add china_ip_route 203.32.133.0/24 +add china_ip_route 203.32.140.0/24 +add china_ip_route 203.32.152.0/24 +add china_ip_route 203.32.186.0/23 +add china_ip_route 203.32.192.0/24 +add china_ip_route 203.32.196.0/24 +add china_ip_route 203.32.203.0/24 +add china_ip_route 203.32.204.0/23 +add china_ip_route 203.32.212.0/24 +add china_ip_route 203.33.4.0/24 +add china_ip_route 203.33.7.0/24 +add china_ip_route 203.33.8.0/21 +add china_ip_route 203.33.21.0/24 +add china_ip_route 203.33.26.0/24 +add china_ip_route 203.33.32.0/24 +add china_ip_route 203.33.63.0/24 +add china_ip_route 203.33.64.0/24 +add china_ip_route 203.33.67.0/24 +add china_ip_route 203.33.68.0/24 +add china_ip_route 203.33.73.0/24 +add china_ip_route 203.33.79.0/24 +add china_ip_route 203.33.100.0/24 +add china_ip_route 203.33.122.0/24 +add china_ip_route 203.33.129.0/24 +add china_ip_route 203.33.131.0/24 +add china_ip_route 203.33.145.0/24 +add china_ip_route 203.33.156.0/24 +add china_ip_route 203.33.158.0/23 +add china_ip_route 203.33.174.0/24 +add china_ip_route 203.33.185.0/24 +add china_ip_route 203.33.200.0/24 +add china_ip_route 203.33.202.0/23 +add china_ip_route 203.33.204.0/24 +add china_ip_route 203.33.206.0/23 +add china_ip_route 203.33.214.0/23 +add china_ip_route 203.33.224.0/23 +add china_ip_route 203.33.226.0/24 +add china_ip_route 203.33.233.0/24 +add china_ip_route 203.33.243.0/24 +add china_ip_route 203.33.250.0/24 +add china_ip_route 203.34.4.0/24 +add china_ip_route 203.34.21.0/24 +add china_ip_route 203.34.27.0/24 +add china_ip_route 203.34.39.0/24 +add china_ip_route 203.34.48.0/23 +add china_ip_route 203.34.54.0/24 +add china_ip_route 203.34.56.0/23 +add china_ip_route 203.34.67.0/24 +add china_ip_route 203.34.69.0/24 +add china_ip_route 203.34.76.0/24 +add china_ip_route 203.34.92.0/24 +add china_ip_route 203.34.106.0/24 +add china_ip_route 203.34.113.0/24 +add china_ip_route 203.34.147.0/24 +add china_ip_route 203.34.150.0/24 +add china_ip_route 203.34.152.0/23 +add china_ip_route 203.34.161.0/24 +add china_ip_route 203.34.162.0/24 +add china_ip_route 203.34.187.0/24 +add china_ip_route 203.34.192.0/21 +add china_ip_route 203.34.204.0/22 +add china_ip_route 203.34.232.0/24 +add china_ip_route 203.34.240.0/24 +add china_ip_route 203.34.242.0/24 +add china_ip_route 203.34.245.0/24 +add china_ip_route 203.34.251.0/24 +add china_ip_route 203.55.2.0/23 +add china_ip_route 203.55.4.0/24 +add china_ip_route 203.55.10.0/24 +add china_ip_route 203.55.13.0/24 +add china_ip_route 203.55.22.0/24 +add china_ip_route 203.55.30.0/24 +add china_ip_route 203.55.93.0/24 +add china_ip_route 203.55.101.0/24 +add china_ip_route 203.55.109.0/24 +add china_ip_route 203.55.110.0/24 +add china_ip_route 203.55.116.0/23 +add china_ip_route 203.55.119.0/24 +add china_ip_route 203.55.128.0/23 +add china_ip_route 203.55.146.0/23 +add china_ip_route 203.55.192.0/24 +add china_ip_route 203.55.196.0/24 +add china_ip_route 203.55.218.0/23 +add china_ip_route 203.55.221.0/24 +add china_ip_route 203.55.224.0/24 +add china_ip_route 203.56.1.0/24 +add china_ip_route 203.56.4.0/24 +add china_ip_route 203.56.12.0/24 +add china_ip_route 203.56.24.0/24 +add china_ip_route 203.56.38.0/24 +add china_ip_route 203.56.40.0/24 +add china_ip_route 203.56.46.0/24 +add china_ip_route 203.56.48.0/21 +add china_ip_route 203.56.68.0/23 +add china_ip_route 203.56.82.0/23 +add china_ip_route 203.56.84.0/23 +add china_ip_route 203.56.95.0/24 +add china_ip_route 203.56.110.0/24 +add china_ip_route 203.56.121.0/24 +add china_ip_route 203.56.161.0/24 +add china_ip_route 203.56.169.0/24 +add china_ip_route 203.56.172.0/23 +add china_ip_route 203.56.175.0/24 +add china_ip_route 203.56.183.0/24 +add china_ip_route 203.56.185.0/24 +add china_ip_route 203.56.187.0/24 +add china_ip_route 203.56.192.0/24 +add china_ip_route 203.56.198.0/24 +add china_ip_route 203.56.201.0/24 +add china_ip_route 203.56.208.0/23 +add china_ip_route 203.56.210.0/24 +add china_ip_route 203.56.214.0/24 +add china_ip_route 203.56.216.0/24 +add china_ip_route 203.56.227.0/24 +add china_ip_route 203.56.228.0/24 +add china_ip_route 203.56.231.0/24 +add china_ip_route 203.56.232.0/24 +add china_ip_route 203.56.240.0/24 +add china_ip_route 203.56.252.0/24 +add china_ip_route 203.56.254.0/24 +add china_ip_route 203.57.5.0/24 +add china_ip_route 203.57.6.0/24 +add china_ip_route 203.57.12.0/23 +add china_ip_route 203.57.28.0/24 +add china_ip_route 203.57.39.0/24 +add china_ip_route 203.57.46.0/24 +add china_ip_route 203.57.58.0/24 +add china_ip_route 203.57.61.0/24 +add china_ip_route 203.57.66.0/24 +add china_ip_route 203.57.69.0/24 +add china_ip_route 203.57.70.0/23 +add china_ip_route 203.57.73.0/24 +add china_ip_route 203.57.90.0/24 +add china_ip_route 203.57.101.0/24 +add china_ip_route 203.57.109.0/24 +add china_ip_route 203.57.123.0/24 +add china_ip_route 203.57.157.0/24 +add china_ip_route 203.57.200.0/24 +add china_ip_route 203.57.202.0/24 +add china_ip_route 203.57.206.0/24 +add china_ip_route 203.57.222.0/24 +add china_ip_route 203.57.224.0/20 +add china_ip_route 203.57.246.0/23 +add china_ip_route 203.57.249.0/24 +add china_ip_route 203.57.253.0/24 +add china_ip_route 203.57.254.0/23 +add china_ip_route 203.62.2.0/24 +add china_ip_route 203.62.131.0/24 +add china_ip_route 203.62.139.0/24 +add china_ip_route 203.62.161.0/24 +add china_ip_route 203.62.197.0/24 +add china_ip_route 203.62.228.0/22 +add china_ip_route 203.62.234.0/24 +add china_ip_route 203.62.246.0/24 +add china_ip_route 203.76.160.0/22 +add china_ip_route 203.76.168.0/22 +add china_ip_route 203.76.208.0/22 +add china_ip_route 203.76.212.0/22 +add china_ip_route 203.76.216.0/22 +add china_ip_route 203.76.240.0/22 +add china_ip_route 203.76.244.0/22 +add china_ip_route 203.77.180.0/22 +add china_ip_route 203.78.48.0/20 +add china_ip_route 203.78.156.0/22 +add china_ip_route 203.79.0.0/20 +add china_ip_route 203.79.32.0/20 +add china_ip_route 203.80.4.0/23 +add china_ip_route 203.80.32.0/20 +add china_ip_route 203.80.57.0/24 +add china_ip_route 203.80.129.0/24 +add china_ip_route 203.80.132.0/22 +add china_ip_route 203.80.136.0/21 +add china_ip_route 203.80.144.0/20 +add china_ip_route 203.81.0.0/21 +add china_ip_route 203.81.16.0/20 +add china_ip_route 203.81.244.0/22 +add china_ip_route 203.82.0.0/23 +add china_ip_route 203.82.16.0/21 +add china_ip_route 203.82.112.0/22 +add china_ip_route 203.82.116.0/22 +add china_ip_route 203.82.120.0/22 +add china_ip_route 203.82.124.0/22 +add china_ip_route 203.82.224.0/22 +add china_ip_route 203.82.228.0/22 +add china_ip_route 203.82.232.0/22 +add china_ip_route 203.82.236.0/22 +add china_ip_route 203.83.0.0/22 +add china_ip_route 203.83.8.0/22 +add china_ip_route 203.83.12.0/22 +add china_ip_route 203.83.56.0/21 +add china_ip_route 203.83.224.0/20 +add china_ip_route 203.86.0.0/19 +add china_ip_route 203.86.32.0/19 +add china_ip_route 203.86.64.0/20 +add china_ip_route 203.86.80.0/20 +add china_ip_route 203.86.96.0/19 +add china_ip_route 203.86.250.0/24 +add china_ip_route 203.86.254.0/23 +add china_ip_route 203.88.32.0/19 +add china_ip_route 203.88.100.0/22 +add china_ip_route 203.88.192.0/19 +add china_ip_route 203.89.0.0/22 +add china_ip_route 203.89.8.0/21 +add china_ip_route 203.89.100.0/22 +add china_ip_route 203.89.133.0/24 +add china_ip_route 203.89.136.0/22 +add china_ip_route 203.89.144.0/24 +add china_ip_route 203.90.0.0/22 +add china_ip_route 203.90.8.0/22 +add china_ip_route 203.90.12.0/22 +add china_ip_route 203.90.128.0/19 +add china_ip_route 203.90.160.0/19 +add china_ip_route 203.90.192.0/19 +add china_ip_route 203.91.32.0/19 +add china_ip_route 203.91.96.0/20 +add china_ip_route 203.91.120.0/21 +add china_ip_route 203.92.0.0/22 +add china_ip_route 203.92.6.0/24 +add china_ip_route 203.92.160.0/19 +add china_ip_route 203.93.0.0/22 +add china_ip_route 203.93.4.0/22 +add china_ip_route 203.93.8.0/24 +add china_ip_route 203.93.9.0/24 +add china_ip_route 203.93.10.0/23 +add china_ip_route 203.93.12.0/22 +add china_ip_route 203.93.16.0/20 +add china_ip_route 203.93.32.0/19 +add china_ip_route 203.93.64.0/18 +add china_ip_route 203.93.128.0/21 +add china_ip_route 203.93.136.0/22 +add china_ip_route 203.93.140.0/24 +add china_ip_route 203.93.141.0/24 +add china_ip_route 203.93.142.0/23 +add china_ip_route 203.93.144.0/20 +add china_ip_route 203.93.160.0/19 +add china_ip_route 203.93.192.0/18 +add china_ip_route 203.94.0.0/22 +add china_ip_route 203.94.4.0/22 +add china_ip_route 203.94.8.0/21 +add china_ip_route 203.94.16.0/20 +add china_ip_route 203.95.0.0/21 +add china_ip_route 203.95.96.0/20 +add china_ip_route 203.95.112.0/20 +add china_ip_route 203.95.128.0/18 +add china_ip_route 203.95.200.0/22 +add china_ip_route 203.95.204.0/22 +add china_ip_route 203.95.208.0/22 +add china_ip_route 203.95.224.0/19 +add china_ip_route 203.99.8.0/21 +add china_ip_route 203.99.16.0/20 +add china_ip_route 203.99.80.0/20 +add china_ip_route 203.100.32.0/20 +add china_ip_route 203.100.48.0/21 +add china_ip_route 203.100.58.0/24 +add china_ip_route 203.100.60.0/24 +add china_ip_route 203.100.63.0/24 +add china_ip_route 203.100.80.0/20 +add china_ip_route 203.100.96.0/19 +add china_ip_route 203.100.192.0/20 +add china_ip_route 203.104.32.0/20 +add china_ip_route 203.105.96.0/19 +add china_ip_route 203.105.128.0/19 +add china_ip_route 203.107.0.0/17 +add china_ip_route 203.110.160.0/19 +add china_ip_route 203.110.208.0/20 +add china_ip_route 203.110.232.0/23 +add china_ip_route 203.110.234.0/24 +add china_ip_route 203.114.80.0/22 +add china_ip_route 203.114.84.0/22 +add china_ip_route 203.114.88.0/22 +add china_ip_route 203.114.92.0/22 +add china_ip_route 203.114.244.0/22 +add china_ip_route 203.118.192.0/19 +add china_ip_route 203.118.241.0/24 +add china_ip_route 203.118.248.0/22 +add china_ip_route 203.119.24.0/21 +add china_ip_route 203.119.32.0/22 +add china_ip_route 203.119.80.0/22 +add china_ip_route 203.119.85.0/24 +add china_ip_route 203.119.113.0/24 +add china_ip_route 203.119.114.0/23 +add china_ip_route 203.119.116.0/22 +add china_ip_route 203.119.120.0/21 +add china_ip_route 203.119.128.0/17 +add china_ip_route 203.123.58.0/24 +add china_ip_route 203.128.32.0/19 +add china_ip_route 203.128.96.0/19 +add china_ip_route 203.128.224.0/21 +add china_ip_route 203.129.8.0/21 +add china_ip_route 203.130.32.0/19 +add china_ip_route 203.132.32.0/19 +add china_ip_route 203.134.240.0/21 +add china_ip_route 203.135.96.0/20 +add china_ip_route 203.135.112.0/20 +add china_ip_route 203.135.160.0/20 +add china_ip_route 203.142.219.0/24 +add china_ip_route 203.142.224.0/19 +add china_ip_route 203.144.96.0/19 +add china_ip_route 203.145.0.0/19 +add china_ip_route 203.148.0.0/18 +add china_ip_route 203.148.64.0/20 +add china_ip_route 203.148.80.0/22 +add china_ip_route 203.148.86.0/23 +add china_ip_route 203.149.92.0/22 +add china_ip_route 203.152.64.0/19 +add china_ip_route 203.152.128.0/19 +add china_ip_route 203.153.0.0/22 +add china_ip_route 203.156.192.0/18 +add china_ip_route 203.158.16.0/21 +add china_ip_route 203.160.52.0/22 +add china_ip_route 203.160.104.0/21 +add china_ip_route 203.160.129.0/24 +add china_ip_route 203.160.192.0/19 +add china_ip_route 203.161.0.0/22 +add china_ip_route 203.161.180.0/24 +add china_ip_route 203.161.183.0/24 +add china_ip_route 203.161.192.0/19 +add china_ip_route 203.166.160.0/19 +add china_ip_route 203.167.28.0/22 +add china_ip_route 203.168.0.0/19 +add china_ip_route 203.170.58.0/23 +add china_ip_route 203.171.0.0/22 +add china_ip_route 203.171.208.0/24 +add china_ip_route 203.171.224.0/20 +add china_ip_route 203.174.4.0/24 +add china_ip_route 203.174.6.0/24 +add china_ip_route 203.174.7.0/24 +add china_ip_route 203.174.96.0/19 +add china_ip_route 203.175.128.0/19 +add china_ip_route 203.175.192.0/18 +add china_ip_route 203.176.0.0/18 +add china_ip_route 203.176.64.0/19 +add china_ip_route 203.176.168.0/21 +add china_ip_route 203.184.80.0/20 +add china_ip_route 203.185.189.0/24 +add china_ip_route 203.187.160.0/19 +add china_ip_route 203.189.0.0/23 +add china_ip_route 203.189.6.0/23 +add china_ip_route 203.189.112.0/22 +add china_ip_route 203.189.192.0/19 +add china_ip_route 203.189.232.0/22 +add china_ip_route 203.189.240.0/22 +add china_ip_route 203.190.96.0/20 +add china_ip_route 203.190.249.0/24 +add china_ip_route 203.191.0.0/23 +add china_ip_route 203.191.2.0/24 +add china_ip_route 203.191.5.0/24 +add china_ip_route 203.191.7.0/24 +add china_ip_route 203.191.16.0/20 +add china_ip_route 203.191.64.0/18 +add china_ip_route 203.191.133.0/24 +add china_ip_route 203.191.144.0/21 +add china_ip_route 203.191.152.0/21 +add china_ip_route 203.192.0.0/19 +add china_ip_route 203.193.224.0/19 +add china_ip_route 203.194.120.0/21 +add china_ip_route 203.195.64.0/19 +add china_ip_route 203.195.112.0/21 +add china_ip_route 203.195.128.0/17 +add china_ip_route 203.196.0.0/21 +add china_ip_route 203.196.8.0/21 +add china_ip_route 203.196.28.0/22 +add china_ip_route 203.201.181.0/24 +add china_ip_route 203.201.182.0/24 +add china_ip_route 203.202.236.0/22 +add china_ip_route 203.205.64.0/19 +add china_ip_route 203.205.128.0/17 +add china_ip_route 203.207.64.0/20 +add china_ip_route 203.207.80.0/21 +add china_ip_route 203.207.88.0/22 +add china_ip_route 203.207.92.0/22 +add china_ip_route 203.207.96.0/20 +add china_ip_route 203.207.112.0/20 +add china_ip_route 203.207.128.0/18 +add china_ip_route 203.207.192.0/21 +add china_ip_route 203.207.200.0/21 +add china_ip_route 203.207.208.0/20 +add china_ip_route 203.207.224.0/19 +add china_ip_route 203.208.0.0/20 +add china_ip_route 203.208.16.0/22 +add china_ip_route 203.208.32.0/19 +add china_ip_route 203.209.224.0/19 +add china_ip_route 203.212.0.0/20 +add china_ip_route 203.212.80.0/20 +add china_ip_route 203.215.232.0/21 +add china_ip_route 203.217.164.0/22 +add china_ip_route 203.223.0.0/20 +add china_ip_route 203.223.16.0/21 +add china_ip_route 204.52.191.0/24 +add china_ip_route 210.2.0.0/20 +add china_ip_route 210.2.16.0/20 +add china_ip_route 210.5.0.0/19 +add china_ip_route 210.5.56.0/21 +add china_ip_route 210.5.128.0/20 +add china_ip_route 210.5.144.0/20 +add china_ip_route 210.7.56.0/22 +add china_ip_route 210.7.60.0/22 +add china_ip_route 210.12.0.0/18 +add china_ip_route 210.12.64.0/18 +add china_ip_route 210.12.128.0/18 +add china_ip_route 210.12.192.0/18 +add china_ip_route 210.13.0.0/18 +add china_ip_route 210.13.64.0/18 +add china_ip_route 210.13.128.0/17 +add china_ip_route 210.14.64.0/19 +add china_ip_route 210.14.112.0/20 +add china_ip_route 210.14.128.0/19 +add china_ip_route 210.14.160.0/19 +add china_ip_route 210.14.192.0/19 +add china_ip_route 210.14.224.0/19 +add china_ip_route 210.15.0.0/19 +add china_ip_route 210.15.32.0/19 +add china_ip_route 210.15.64.0/19 +add china_ip_route 210.15.96.0/19 +add china_ip_route 210.15.128.0/18 +add china_ip_route 210.16.104.0/22 +add china_ip_route 210.16.128.0/18 +add china_ip_route 210.21.0.0/17 +add china_ip_route 210.21.128.0/17 +add china_ip_route 210.22.0.0/16 +add china_ip_route 210.23.32.0/19 +add china_ip_route 210.25.0.0/16 +add china_ip_route 210.26.0.0/15 +add china_ip_route 210.28.0.0/14 +add china_ip_route 210.32.0.0/14 +add china_ip_route 210.36.0.0/14 +add china_ip_route 210.40.0.0/13 +add china_ip_route 210.51.0.0/16 +add china_ip_route 210.52.0.0/18 +add china_ip_route 210.52.64.0/18 +add china_ip_route 210.52.128.0/17 +add china_ip_route 210.53.0.0/17 +add china_ip_route 210.53.128.0/17 +add china_ip_route 210.56.192.0/19 +add china_ip_route 210.72.0.0/17 +add china_ip_route 210.72.128.0/19 +add china_ip_route 210.72.160.0/19 +add china_ip_route 210.72.192.0/18 +add china_ip_route 210.73.0.0/19 +add china_ip_route 210.73.32.0/19 +add china_ip_route 210.73.64.0/18 +add china_ip_route 210.73.128.0/17 +add china_ip_route 210.74.0.0/19 +add china_ip_route 210.74.32.0/19 +add china_ip_route 210.74.64.0/19 +add china_ip_route 210.74.96.0/19 +add china_ip_route 210.74.128.0/19 +add china_ip_route 210.74.160.0/19 +add china_ip_route 210.74.192.0/18 +add china_ip_route 210.75.0.0/16 +add china_ip_route 210.76.0.0/19 +add china_ip_route 210.76.32.0/19 +add china_ip_route 210.76.64.0/18 +add china_ip_route 210.76.128.0/17 +add china_ip_route 210.77.0.0/16 +add china_ip_route 210.78.0.0/19 +add china_ip_route 210.78.32.0/19 +add china_ip_route 210.78.64.0/18 +add china_ip_route 210.78.128.0/19 +add china_ip_route 210.78.160.0/19 +add china_ip_route 210.78.192.0/18 +add china_ip_route 210.79.64.0/18 +add china_ip_route 210.79.224.0/19 +add china_ip_route 210.82.0.0/15 +add china_ip_route 210.87.128.0/20 +add china_ip_route 210.87.144.0/20 +add china_ip_route 210.87.160.0/19 +add china_ip_route 210.185.192.0/18 +add china_ip_route 210.192.96.0/19 +add china_ip_route 211.64.0.0/14 +add china_ip_route 211.68.0.0/15 +add china_ip_route 211.70.0.0/15 +add china_ip_route 211.80.0.0/16 +add china_ip_route 211.81.0.0/16 +add china_ip_route 211.82.0.0/16 +add china_ip_route 211.83.0.0/16 +add china_ip_route 211.84.0.0/15 +add china_ip_route 211.86.0.0/15 +add china_ip_route 211.88.0.0/16 +add china_ip_route 211.89.0.0/16 +add china_ip_route 211.90.0.0/15 +add china_ip_route 211.92.0.0/15 +add china_ip_route 211.94.0.0/15 +add china_ip_route 211.96.0.0/15 +add china_ip_route 211.98.0.0/16 +add china_ip_route 211.99.0.0/18 +add china_ip_route 211.99.64.0/19 +add china_ip_route 211.99.96.0/19 +add china_ip_route 211.99.128.0/17 +add china_ip_route 211.100.0.0/16 +add china_ip_route 211.101.0.0/18 +add china_ip_route 211.101.64.0/18 +add china_ip_route 211.101.128.0/17 +add china_ip_route 211.102.0.0/16 +add china_ip_route 211.103.0.0/17 +add china_ip_route 211.103.128.0/17 +add china_ip_route 211.136.0.0/14 +add china_ip_route 211.140.0.0/15 +add china_ip_route 211.142.0.0/17 +add china_ip_route 211.142.128.0/17 +add china_ip_route 211.143.0.0/16 +add china_ip_route 211.144.0.0/15 +add china_ip_route 211.146.0.0/16 +add china_ip_route 211.147.0.0/16 +add china_ip_route 211.148.0.0/14 +add china_ip_route 211.152.0.0/15 +add china_ip_route 211.154.0.0/16 +add china_ip_route 211.155.0.0/18 +add china_ip_route 211.155.64.0/19 +add china_ip_route 211.155.96.0/19 +add china_ip_route 211.155.128.0/17 +add china_ip_route 211.156.0.0/14 +add china_ip_route 211.160.0.0/14 +add china_ip_route 211.164.0.0/14 +add china_ip_route 212.64.0.0/17 +add china_ip_route 212.129.128.0/17 +add china_ip_route 218.0.0.0/16 +add china_ip_route 218.1.0.0/16 +add china_ip_route 218.2.0.0/15 +add china_ip_route 218.4.0.0/15 +add china_ip_route 218.6.0.0/16 +add china_ip_route 218.7.0.0/16 +add china_ip_route 218.8.0.0/15 +add china_ip_route 218.10.0.0/16 +add china_ip_route 218.11.0.0/16 +add china_ip_route 218.12.0.0/16 +add china_ip_route 218.13.0.0/16 +add china_ip_route 218.14.0.0/15 +add china_ip_route 218.16.0.0/14 +add china_ip_route 218.20.0.0/16 +add china_ip_route 218.21.0.0/17 +add china_ip_route 218.21.128.0/17 +add china_ip_route 218.22.0.0/15 +add china_ip_route 218.24.0.0/15 +add china_ip_route 218.26.0.0/16 +add china_ip_route 218.27.0.0/16 +add china_ip_route 218.28.0.0/15 +add china_ip_route 218.30.0.0/15 +add china_ip_route 218.56.0.0/14 +add china_ip_route 218.60.0.0/15 +add china_ip_route 218.62.0.0/17 +add china_ip_route 218.62.128.0/17 +add china_ip_route 218.63.0.0/16 +add china_ip_route 218.64.0.0/15 +add china_ip_route 218.66.0.0/16 +add china_ip_route 218.67.0.0/17 +add china_ip_route 218.67.128.0/17 +add china_ip_route 218.68.0.0/15 +add china_ip_route 218.70.0.0/15 +add china_ip_route 218.72.0.0/14 +add china_ip_route 218.76.0.0/15 +add china_ip_route 218.78.0.0/15 +add china_ip_route 218.80.0.0/14 +add china_ip_route 218.84.0.0/14 +add china_ip_route 218.88.0.0/13 +add china_ip_route 218.96.0.0/15 +add china_ip_route 218.98.0.0/17 +add china_ip_route 218.98.128.0/18 +add china_ip_route 218.98.192.0/19 +add china_ip_route 218.98.224.0/19 +add china_ip_route 218.99.0.0/16 +add china_ip_route 218.100.88.0/21 +add china_ip_route 218.100.96.0/19 +add china_ip_route 218.100.128.0/17 +add china_ip_route 218.104.0.0/17 +add china_ip_route 218.104.128.0/19 +add china_ip_route 218.104.160.0/19 +add china_ip_route 218.104.192.0/21 +add china_ip_route 218.104.200.0/21 +add china_ip_route 218.104.208.0/20 +add china_ip_route 218.104.224.0/19 +add china_ip_route 218.105.0.0/16 +add china_ip_route 218.106.0.0/15 +add china_ip_route 218.108.0.0/16 +add china_ip_route 218.109.0.0/16 +add china_ip_route 218.185.192.0/19 +add china_ip_route 218.185.240.0/21 +add china_ip_route 218.192.0.0/16 +add china_ip_route 218.193.0.0/16 +add china_ip_route 218.194.0.0/16 +add china_ip_route 218.195.0.0/16 +add china_ip_route 218.196.0.0/14 +add china_ip_route 218.200.0.0/14 +add china_ip_route 218.204.0.0/15 +add china_ip_route 218.206.0.0/15 +add china_ip_route 218.240.0.0/14 +add china_ip_route 218.244.0.0/15 +add china_ip_route 218.246.0.0/15 +add china_ip_route 218.249.0.0/16 +add china_ip_route 219.72.0.0/16 +add china_ip_route 219.82.0.0/16 +add china_ip_route 219.83.128.0/17 +add china_ip_route 219.90.68.0/22 +add china_ip_route 219.90.72.0/22 +add china_ip_route 219.90.76.0/22 +add china_ip_route 219.128.0.0/12 +add china_ip_route 219.144.0.0/14 +add china_ip_route 219.148.0.0/16 +add china_ip_route 219.149.0.0/17 +add china_ip_route 219.149.128.0/18 +add china_ip_route 219.149.192.0/18 +add china_ip_route 219.150.0.0/19 +add china_ip_route 219.150.32.0/19 +add china_ip_route 219.150.64.0/19 +add china_ip_route 219.150.96.0/20 +add china_ip_route 219.150.112.0/20 +add china_ip_route 219.150.128.0/17 +add china_ip_route 219.151.0.0/19 +add china_ip_route 219.151.32.0/19 +add china_ip_route 219.151.64.0/18 +add china_ip_route 219.151.128.0/17 +add china_ip_route 219.152.0.0/15 +add china_ip_route 219.154.0.0/15 +add china_ip_route 219.156.0.0/15 +add china_ip_route 219.158.0.0/17 +add china_ip_route 219.158.128.0/17 +add china_ip_route 219.159.0.0/18 +add china_ip_route 219.159.64.0/18 +add china_ip_route 219.159.128.0/17 +add china_ip_route 219.216.0.0/15 +add china_ip_route 219.218.0.0/15 +add china_ip_route 219.220.0.0/16 +add china_ip_route 219.221.0.0/16 +add china_ip_route 219.222.0.0/15 +add china_ip_route 219.224.0.0/15 +add china_ip_route 219.226.0.0/16 +add china_ip_route 219.227.0.0/16 +add china_ip_route 219.228.0.0/15 +add china_ip_route 219.230.0.0/15 +add china_ip_route 219.232.0.0/14 +add china_ip_route 219.236.0.0/15 +add china_ip_route 219.238.0.0/15 +add china_ip_route 219.242.0.0/15 +add china_ip_route 219.244.0.0/14 +add china_ip_route 220.101.192.0/18 +add china_ip_route 220.112.0.0/14 +add china_ip_route 220.152.128.0/17 +add china_ip_route 220.154.0.0/15 +add china_ip_route 220.158.240.0/22 +add china_ip_route 220.160.0.0/11 +add china_ip_route 220.192.0.0/15 +add china_ip_route 220.194.0.0/15 +add china_ip_route 220.196.0.0/14 +add china_ip_route 220.200.0.0/13 +add china_ip_route 220.231.0.0/18 +add china_ip_route 220.231.128.0/17 +add china_ip_route 220.232.64.0/18 +add china_ip_route 220.234.0.0/16 +add china_ip_route 220.242.0.0/15 +add china_ip_route 220.247.136.0/21 +add china_ip_route 220.248.0.0/14 +add china_ip_route 220.252.0.0/16 +add china_ip_route 221.0.0.0/15 +add china_ip_route 221.2.0.0/16 +add china_ip_route 221.3.0.0/17 +add china_ip_route 221.3.128.0/17 +add china_ip_route 221.4.0.0/16 +add china_ip_route 221.5.0.0/17 +add china_ip_route 221.5.128.0/17 +add china_ip_route 221.6.0.0/16 +add china_ip_route 221.7.0.0/19 +add china_ip_route 221.7.32.0/19 +add china_ip_route 221.7.64.0/19 +add china_ip_route 221.7.96.0/19 +add china_ip_route 221.7.128.0/17 +add china_ip_route 221.8.0.0/15 +add china_ip_route 221.10.0.0/16 +add china_ip_route 221.11.0.0/17 +add china_ip_route 221.11.128.0/18 +add china_ip_route 221.11.192.0/19 +add china_ip_route 221.11.224.0/19 +add china_ip_route 221.12.0.0/17 +add china_ip_route 221.12.128.0/18 +add china_ip_route 221.13.0.0/18 +add china_ip_route 221.13.64.0/19 +add china_ip_route 221.13.96.0/19 +add china_ip_route 221.13.128.0/17 +add china_ip_route 221.14.0.0/15 +add china_ip_route 221.122.0.0/15 +add china_ip_route 221.128.128.0/17 +add china_ip_route 221.129.0.0/16 +add china_ip_route 221.130.0.0/15 +add china_ip_route 221.133.224.0/19 +add china_ip_route 221.136.0.0/16 +add china_ip_route 221.137.0.0/16 +add china_ip_route 221.172.0.0/14 +add china_ip_route 221.176.0.0/13 +add china_ip_route 221.192.0.0/15 +add china_ip_route 221.194.0.0/16 +add china_ip_route 221.195.0.0/16 +add china_ip_route 221.196.0.0/15 +add china_ip_route 221.198.0.0/16 +add china_ip_route 221.199.0.0/19 +add china_ip_route 221.199.32.0/20 +add china_ip_route 221.199.48.0/20 +add china_ip_route 221.199.64.0/18 +add china_ip_route 221.199.128.0/18 +add china_ip_route 221.199.192.0/20 +add china_ip_route 221.199.224.0/19 +add china_ip_route 221.200.0.0/14 +add china_ip_route 221.204.0.0/15 +add china_ip_route 221.206.0.0/16 +add china_ip_route 221.207.0.0/18 +add china_ip_route 221.207.64.0/18 +add china_ip_route 221.207.128.0/17 +add china_ip_route 221.208.0.0/14 +add china_ip_route 221.212.0.0/16 +add china_ip_route 221.213.0.0/16 +add china_ip_route 221.214.0.0/15 +add china_ip_route 221.216.0.0/13 +add china_ip_route 221.224.0.0/13 +add china_ip_route 221.232.0.0/14 +add china_ip_route 221.236.0.0/15 +add china_ip_route 221.238.0.0/16 +add china_ip_route 221.239.0.0/17 +add china_ip_route 221.239.128.0/17 +add china_ip_route 222.16.0.0/15 +add china_ip_route 222.18.0.0/15 +add china_ip_route 222.20.0.0/15 +add china_ip_route 222.22.0.0/16 +add china_ip_route 222.23.0.0/16 +add china_ip_route 222.24.0.0/15 +add china_ip_route 222.26.0.0/15 +add china_ip_route 222.28.0.0/14 +add china_ip_route 222.32.0.0/11 +add china_ip_route 222.64.0.0/13 +add china_ip_route 222.72.0.0/15 +add china_ip_route 222.74.0.0/16 +add china_ip_route 222.75.0.0/16 +add china_ip_route 222.76.0.0/14 +add china_ip_route 222.80.0.0/15 +add china_ip_route 222.82.0.0/16 +add china_ip_route 222.83.0.0/17 +add china_ip_route 222.83.128.0/17 +add china_ip_route 222.84.0.0/16 +add china_ip_route 222.85.0.0/17 +add china_ip_route 222.85.128.0/17 +add china_ip_route 222.86.0.0/15 +add china_ip_route 222.88.0.0/15 +add china_ip_route 222.90.0.0/15 +add china_ip_route 222.92.0.0/14 +add china_ip_route 222.125.0.0/16 +add china_ip_route 222.126.128.0/17 +add china_ip_route 222.128.0.0/14 +add china_ip_route 222.132.0.0/14 +add china_ip_route 222.136.0.0/13 +add china_ip_route 222.160.0.0/15 +add china_ip_route 222.162.0.0/16 +add china_ip_route 222.163.0.0/19 +add china_ip_route 222.163.32.0/19 +add china_ip_route 222.163.64.0/18 +add china_ip_route 222.163.128.0/17 +add china_ip_route 222.168.0.0/15 +add china_ip_route 222.170.0.0/15 +add china_ip_route 222.172.0.0/17 +add china_ip_route 222.172.128.0/17 +add china_ip_route 222.173.0.0/16 +add china_ip_route 222.174.0.0/15 +add china_ip_route 222.176.0.0/13 +add china_ip_route 222.184.0.0/13 +add china_ip_route 222.192.0.0/14 +add china_ip_route 222.196.0.0/15 +add china_ip_route 222.198.0.0/16 +add china_ip_route 222.199.0.0/16 +add china_ip_route 222.200.0.0/14 +add china_ip_route 222.204.0.0/15 +add china_ip_route 222.206.0.0/15 +add china_ip_route 222.208.0.0/13 +add china_ip_route 222.216.0.0/15 +add china_ip_route 222.218.0.0/16 +add china_ip_route 222.219.0.0/16 +add china_ip_route 222.220.0.0/15 +add china_ip_route 222.222.0.0/15 +add china_ip_route 222.240.0.0/13 +add china_ip_route 222.248.0.0/16 +add china_ip_route 222.249.0.0/17 +add china_ip_route 222.249.128.0/19 +add china_ip_route 222.249.160.0/20 +add china_ip_route 222.249.176.0/20 +add china_ip_route 222.249.192.0/18 +add china_ip_route 223.0.0.0/15 +add china_ip_route 223.2.0.0/15 +add china_ip_route 223.4.0.0/14 +add china_ip_route 223.8.0.0/13 +add china_ip_route 223.20.0.0/15 +add china_ip_route 223.27.184.0/22 +add china_ip_route 223.29.208.0/22 +add china_ip_route 223.29.252.0/22 +add china_ip_route 223.64.0.0/11 +add china_ip_route 223.96.0.0/12 +add china_ip_route 223.112.0.0/14 +add china_ip_route 223.116.0.0/15 +add china_ip_route 223.120.128.0/17 +add china_ip_route 223.121.128.0/17 +add china_ip_route 223.122.0.0/15 +add china_ip_route 223.124.0.0/14 +add china_ip_route 223.128.0.0/15 +add china_ip_route 223.144.0.0/12 +add china_ip_route 223.160.0.0/14 +add china_ip_route 223.166.0.0/15 +add china_ip_route 223.192.0.0/15 +add china_ip_route 223.198.0.0/15 +add china_ip_route 223.201.0.0/16 +add china_ip_route 223.202.0.0/15 +add china_ip_route 223.208.0.0/14 +add china_ip_route 223.212.0.0/15 +add china_ip_route 223.214.0.0/15 +add china_ip_route 223.220.0.0/15 +add china_ip_route 223.223.176.0/20 +add china_ip_route 223.223.192.0/20 +add china_ip_route 223.240.0.0/13 +add china_ip_route 223.248.0.0/14 +add china_ip_route 223.252.128.0/17 +add china_ip_route 223.254.0.0/16 +add china_ip_route 223.255.0.0/17 +add china_ip_route 223.255.236.0/22 +add china_ip_route 223.255.252.0/23 diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/asset-manifest.json b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/asset-manifest.json index 9350cd3eec..6288003fd6 100644 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/asset-manifest.json +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/asset-manifest.json @@ -1,7 +1,7 @@ { "files": { - "main.css": "./static/css/main.e4724b81.chunk.css", - "main.js": "./static/js/main.b9320252.chunk.js", + "main.css": "./static/css/main.a3812757.chunk.css", + "main.js": "./static/js/main.8e23a89d.chunk.js", "runtime-main.js": "./static/js/runtime-main.b905e4f3.js", "static/js/2.d14c2fca.chunk.js": "./static/js/2.d14c2fca.chunk.js", "index.html": "./index.html", @@ -11,7 +11,7 @@ "entrypoints": [ "static/js/runtime-main.b905e4f3.js", "static/js/2.d14c2fca.chunk.js", - "static/css/main.e4724b81.chunk.css", - "static/js/main.b9320252.chunk.js" + "static/css/main.a3812757.chunk.css", + "static/js/main.8e23a89d.chunk.js" ] } \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/index.html b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/index.html index 1b1fc609b4..80d3bb2bcc 100644 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/index.html +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/index.html @@ -1 +1 @@ -Clash
\ No newline at end of file +Clash
\ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.e4724b81.chunk.css b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.a3812757.chunk.css similarity index 78% rename from package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.e4724b81.chunk.css rename to package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.a3812757.chunk.css index 46fca3db25..4e8d46b1a2 100644 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.e4724b81.chunk.css +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/css/main.a3812757.chunk.css @@ -1 +1 @@ -@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:""}.icon-healthcheck:before{content:""}.icon-speed:before{content:""}.icon-close:before{content:""}.icon-drag:before{content:""}.icon-down-arrow-o:before{content:""}.icon-check:before{content:""}.icon-plus:before{content:""}.icon-triangle-up:before{content:""}.icon-triangle-down:before{content:""}.icon-up-arrow-o:before{content:""}.icon-info:before{content:""}.icon-info-o:before{content:""}.icon-setting:before{content:""}.icon-show:before{content:""}.icon-hide:before{content:""}.icon-sort:before{content:""}.icon-sort-descending:before{content:""}.icon-sort-ascending:before{content:""}.icon-close-all:before{content:""}html{box-sizing:border-box;background:hsla(0,0%,100%,.8);overflow:hidden}*,:after,:before{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%}}.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}.operations{display:flex;flex:1;align-items:center;justify-content:flex-end}@media(max-width:768px){.header>h1{font-size:20px}}.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:translateX(16px)}.switch.disabled{cursor:not-allowed;background-color:#b7c5d6}.switch.disabled:after{box-shadow:0 0 8px rgba(144,147,153,.5)}.switch.checked.disabled,.switch.disabled:after{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 rgba(44,138,248,.4);transition:transform .3s ease;transform:translateX(-2px)}.switch-icon{position:absolute;transform:translateX(-1px) scale(.4);color:#fff;line-height:16px}.card{padding:15px;box-shadow:2px 5px 20px -3px rgba(44,138,248,.18);background-color:#fff;border-radius:4px}.row{width:100%;display:flex;flex-direction:row}.row-gutter-1{padding:12px 6px}.row-gutter-1 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-1 .column-span-1{width:100%}.row-gutter-1 .column-offset-1{margin-left:100%}.row-gutter-1 .column-span-2{width:200%}.row-gutter-1 .column-offset-2{margin-left:200%}.row-gutter-1 .column-span-3{width:300%}.row-gutter-1 .column-offset-3{margin-left:300%}.row-gutter-1 .column-span-4{width:400%}.row-gutter-1 .column-offset-4{margin-left:400%}.row-gutter-1 .column-span-5{width:500%}.row-gutter-1 .column-offset-5{margin-left:500%}.row-gutter-1 .column-span-6{width:600%}.row-gutter-1 .column-offset-6{margin-left:600%}.row-gutter-1 .column-span-7{width:700%}.row-gutter-1 .column-offset-7{margin-left:700%}.row-gutter-1 .column-span-8{width:800%}.row-gutter-1 .column-offset-8{margin-left:800%}.row-gutter-1 .column-span-9{width:900%}.row-gutter-1 .column-offset-9{margin-left:900%}.row-gutter-1 .column-span-10{width:1000%}.row-gutter-1 .column-offset-10{margin-left:1000%}.row-gutter-1 .column-span-11{width:1100%}.row-gutter-1 .column-offset-11{margin-left:1100%}.row-gutter-1 .column-span-12{width:1200%}.row-gutter-1 .column-offset-12{margin-left:1200%}.row-gutter-1 .column-span-13{width:1300%}.row-gutter-1 .column-offset-13{margin-left:1300%}.row-gutter-1 .column-span-14{width:1400%}.row-gutter-1 .column-offset-14{margin-left:1400%}.row-gutter-1 .column-span-15{width:1500%}.row-gutter-1 .column-offset-15{margin-left:1500%}.row-gutter-1 .column-span-16{width:1600%}.row-gutter-1 .column-offset-16{margin-left:1600%}.row-gutter-1 .column-span-17{width:1700%}.row-gutter-1 .column-offset-17{margin-left:1700%}.row-gutter-1 .column-span-18{width:1800%}.row-gutter-1 .column-offset-18{margin-left:1800%}.row-gutter-1 .column-span-19{width:1900%}.row-gutter-1 .column-offset-19{margin-left:1900%}.row-gutter-1 .column-span-20{width:2000%}.row-gutter-1 .column-offset-20{margin-left:2000%}.row-gutter-1 .column-span-21{width:2100%}.row-gutter-1 .column-offset-21{margin-left:2100%}.row-gutter-1 .column-span-22{width:2200%}.row-gutter-1 .column-offset-22{margin-left:2200%}.row-gutter-1 .column-span-23{width:2300%}.row-gutter-1 .column-offset-23{margin-left:2300%}.row-gutter-1 .column-span-24{width:2400%}.row-gutter-1 .column-offset-24{margin-left:2400%}.row-gutter-2{padding:12px 6px}.row-gutter-2 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-2 .column-span-1{width:50%}.row-gutter-2 .column-offset-1{margin-left:50%}.row-gutter-2 .column-span-2{width:100%}.row-gutter-2 .column-offset-2{margin-left:100%}.row-gutter-2 .column-span-3{width:150%}.row-gutter-2 .column-offset-3{margin-left:150%}.row-gutter-2 .column-span-4{width:200%}.row-gutter-2 .column-offset-4{margin-left:200%}.row-gutter-2 .column-span-5{width:250%}.row-gutter-2 .column-offset-5{margin-left:250%}.row-gutter-2 .column-span-6{width:300%}.row-gutter-2 .column-offset-6{margin-left:300%}.row-gutter-2 .column-span-7{width:350%}.row-gutter-2 .column-offset-7{margin-left:350%}.row-gutter-2 .column-span-8{width:400%}.row-gutter-2 .column-offset-8{margin-left:400%}.row-gutter-2 .column-span-9{width:450%}.row-gutter-2 .column-offset-9{margin-left:450%}.row-gutter-2 .column-span-10{width:500%}.row-gutter-2 .column-offset-10{margin-left:500%}.row-gutter-2 .column-span-11{width:550%}.row-gutter-2 .column-offset-11{margin-left:550%}.row-gutter-2 .column-span-12{width:600%}.row-gutter-2 .column-offset-12{margin-left:600%}.row-gutter-2 .column-span-13{width:650%}.row-gutter-2 .column-offset-13{margin-left:650%}.row-gutter-2 .column-span-14{width:700%}.row-gutter-2 .column-offset-14{margin-left:700%}.row-gutter-2 .column-span-15{width:750%}.row-gutter-2 .column-offset-15{margin-left:750%}.row-gutter-2 .column-span-16{width:800%}.row-gutter-2 .column-offset-16{margin-left:800%}.row-gutter-2 .column-span-17{width:850%}.row-gutter-2 .column-offset-17{margin-left:850%}.row-gutter-2 .column-span-18{width:900%}.row-gutter-2 .column-offset-18{margin-left:900%}.row-gutter-2 .column-span-19{width:950%}.row-gutter-2 .column-offset-19{margin-left:950%}.row-gutter-2 .column-span-20{width:1000%}.row-gutter-2 .column-offset-20{margin-left:1000%}.row-gutter-2 .column-span-21{width:1050%}.row-gutter-2 .column-offset-21{margin-left:1050%}.row-gutter-2 .column-span-22{width:1100%}.row-gutter-2 .column-offset-22{margin-left:1100%}.row-gutter-2 .column-span-23{width:1150%}.row-gutter-2 .column-offset-23{margin-left:1150%}.row-gutter-2 .column-span-24{width:1200%}.row-gutter-2 .column-offset-24{margin-left:1200%}.row-gutter-3{padding:12px 6px}.row-gutter-3 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-3 .column-span-1{width:33.3333333333%}.row-gutter-3 .column-offset-1{margin-left:33.3333333333%}.row-gutter-3 .column-span-2{width:66.6666666667%}.row-gutter-3 .column-offset-2{margin-left:66.6666666667%}.row-gutter-3 .column-span-3{width:100%}.row-gutter-3 .column-offset-3{margin-left:100%}.row-gutter-3 .column-span-4{width:133.3333333333%}.row-gutter-3 .column-offset-4{margin-left:133.3333333333%}.row-gutter-3 .column-span-5{width:166.6666666667%}.row-gutter-3 .column-offset-5{margin-left:166.6666666667%}.row-gutter-3 .column-span-6{width:200%}.row-gutter-3 .column-offset-6{margin-left:200%}.row-gutter-3 .column-span-7{width:233.3333333333%}.row-gutter-3 .column-offset-7{margin-left:233.3333333333%}.row-gutter-3 .column-span-8{width:266.6666666667%}.row-gutter-3 .column-offset-8{margin-left:266.6666666667%}.row-gutter-3 .column-span-9{width:300%}.row-gutter-3 .column-offset-9{margin-left:300%}.row-gutter-3 .column-span-10{width:333.3333333333%}.row-gutter-3 .column-offset-10{margin-left:333.3333333333%}.row-gutter-3 .column-span-11{width:366.6666666667%}.row-gutter-3 .column-offset-11{margin-left:366.6666666667%}.row-gutter-3 .column-span-12{width:400%}.row-gutter-3 .column-offset-12{margin-left:400%}.row-gutter-3 .column-span-13{width:433.3333333333%}.row-gutter-3 .column-offset-13{margin-left:433.3333333333%}.row-gutter-3 .column-span-14{width:466.6666666667%}.row-gutter-3 .column-offset-14{margin-left:466.6666666667%}.row-gutter-3 .column-span-15{width:500%}.row-gutter-3 .column-offset-15{margin-left:500%}.row-gutter-3 .column-span-16{width:533.3333333333%}.row-gutter-3 .column-offset-16{margin-left:533.3333333333%}.row-gutter-3 .column-span-17{width:566.6666666667%}.row-gutter-3 .column-offset-17{margin-left:566.6666666667%}.row-gutter-3 .column-span-18{width:600%}.row-gutter-3 .column-offset-18{margin-left:600%}.row-gutter-3 .column-span-19{width:633.3333333333%}.row-gutter-3 .column-offset-19{margin-left:633.3333333333%}.row-gutter-3 .column-span-20{width:666.6666666667%}.row-gutter-3 .column-offset-20{margin-left:666.6666666667%}.row-gutter-3 .column-span-21{width:700%}.row-gutter-3 .column-offset-21{margin-left:700%}.row-gutter-3 .column-span-22{width:733.3333333333%}.row-gutter-3 .column-offset-22{margin-left:733.3333333333%}.row-gutter-3 .column-span-23{width:766.6666666667%}.row-gutter-3 .column-offset-23{margin-left:766.6666666667%}.row-gutter-3 .column-span-24{width:800%}.row-gutter-3 .column-offset-24{margin-left:800%}.row-gutter-4{padding:12px 6px}.row-gutter-4 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-4 .column-span-1{width:25%}.row-gutter-4 .column-offset-1{margin-left:25%}.row-gutter-4 .column-span-2{width:50%}.row-gutter-4 .column-offset-2{margin-left:50%}.row-gutter-4 .column-span-3{width:75%}.row-gutter-4 .column-offset-3{margin-left:75%}.row-gutter-4 .column-span-4{width:100%}.row-gutter-4 .column-offset-4{margin-left:100%}.row-gutter-4 .column-span-5{width:125%}.row-gutter-4 .column-offset-5{margin-left:125%}.row-gutter-4 .column-span-6{width:150%}.row-gutter-4 .column-offset-6{margin-left:150%}.row-gutter-4 .column-span-7{width:175%}.row-gutter-4 .column-offset-7{margin-left:175%}.row-gutter-4 .column-span-8{width:200%}.row-gutter-4 .column-offset-8{margin-left:200%}.row-gutter-4 .column-span-9{width:225%}.row-gutter-4 .column-offset-9{margin-left:225%}.row-gutter-4 .column-span-10{width:250%}.row-gutter-4 .column-offset-10{margin-left:250%}.row-gutter-4 .column-span-11{width:275%}.row-gutter-4 .column-offset-11{margin-left:275%}.row-gutter-4 .column-span-12{width:300%}.row-gutter-4 .column-offset-12{margin-left:300%}.row-gutter-4 .column-span-13{width:325%}.row-gutter-4 .column-offset-13{margin-left:325%}.row-gutter-4 .column-span-14{width:350%}.row-gutter-4 .column-offset-14{margin-left:350%}.row-gutter-4 .column-span-15{width:375%}.row-gutter-4 .column-offset-15{margin-left:375%}.row-gutter-4 .column-span-16{width:400%}.row-gutter-4 .column-offset-16{margin-left:400%}.row-gutter-4 .column-span-17{width:425%}.row-gutter-4 .column-offset-17{margin-left:425%}.row-gutter-4 .column-span-18{width:450%}.row-gutter-4 .column-offset-18{margin-left:450%}.row-gutter-4 .column-span-19{width:475%}.row-gutter-4 .column-offset-19{margin-left:475%}.row-gutter-4 .column-span-20{width:500%}.row-gutter-4 .column-offset-20{margin-left:500%}.row-gutter-4 .column-span-21{width:525%}.row-gutter-4 .column-offset-21{margin-left:525%}.row-gutter-4 .column-span-22{width:550%}.row-gutter-4 .column-offset-22{margin-left:550%}.row-gutter-4 .column-span-23{width:575%}.row-gutter-4 .column-offset-23{margin-left:575%}.row-gutter-4 .column-span-24{width:600%}.row-gutter-4 .column-offset-24{margin-left:600%}.row-gutter-5{padding:12px 6px}.row-gutter-5 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-5 .column-span-1{width:20%}.row-gutter-5 .column-offset-1{margin-left:20%}.row-gutter-5 .column-span-2{width:40%}.row-gutter-5 .column-offset-2{margin-left:40%}.row-gutter-5 .column-span-3{width:60%}.row-gutter-5 .column-offset-3{margin-left:60%}.row-gutter-5 .column-span-4{width:80%}.row-gutter-5 .column-offset-4{margin-left:80%}.row-gutter-5 .column-span-5{width:100%}.row-gutter-5 .column-offset-5{margin-left:100%}.row-gutter-5 .column-span-6{width:120%}.row-gutter-5 .column-offset-6{margin-left:120%}.row-gutter-5 .column-span-7{width:140%}.row-gutter-5 .column-offset-7{margin-left:140%}.row-gutter-5 .column-span-8{width:160%}.row-gutter-5 .column-offset-8{margin-left:160%}.row-gutter-5 .column-span-9{width:180%}.row-gutter-5 .column-offset-9{margin-left:180%}.row-gutter-5 .column-span-10{width:200%}.row-gutter-5 .column-offset-10{margin-left:200%}.row-gutter-5 .column-span-11{width:220%}.row-gutter-5 .column-offset-11{margin-left:220%}.row-gutter-5 .column-span-12{width:240%}.row-gutter-5 .column-offset-12{margin-left:240%}.row-gutter-5 .column-span-13{width:260%}.row-gutter-5 .column-offset-13{margin-left:260%}.row-gutter-5 .column-span-14{width:280%}.row-gutter-5 .column-offset-14{margin-left:280%}.row-gutter-5 .column-span-15{width:300%}.row-gutter-5 .column-offset-15{margin-left:300%}.row-gutter-5 .column-span-16{width:320%}.row-gutter-5 .column-offset-16{margin-left:320%}.row-gutter-5 .column-span-17{width:340%}.row-gutter-5 .column-offset-17{margin-left:340%}.row-gutter-5 .column-span-18{width:360%}.row-gutter-5 .column-offset-18{margin-left:360%}.row-gutter-5 .column-span-19{width:380%}.row-gutter-5 .column-offset-19{margin-left:380%}.row-gutter-5 .column-span-20{width:400%}.row-gutter-5 .column-offset-20{margin-left:400%}.row-gutter-5 .column-span-21{width:420%}.row-gutter-5 .column-offset-21{margin-left:420%}.row-gutter-5 .column-span-22{width:440%}.row-gutter-5 .column-offset-22{margin-left:440%}.row-gutter-5 .column-span-23{width:460%}.row-gutter-5 .column-offset-23{margin-left:460%}.row-gutter-5 .column-span-24{width:480%}.row-gutter-5 .column-offset-24{margin-left:480%}.row-gutter-6{padding:12px 6px}.row-gutter-6 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-6 .column-span-1{width:16.6666666667%}.row-gutter-6 .column-offset-1{margin-left:16.6666666667%}.row-gutter-6 .column-span-2{width:33.3333333333%}.row-gutter-6 .column-offset-2{margin-left:33.3333333333%}.row-gutter-6 .column-span-3{width:50%}.row-gutter-6 .column-offset-3{margin-left:50%}.row-gutter-6 .column-span-4{width:66.6666666667%}.row-gutter-6 .column-offset-4{margin-left:66.6666666667%}.row-gutter-6 .column-span-5{width:83.3333333333%}.row-gutter-6 .column-offset-5{margin-left:83.3333333333%}.row-gutter-6 .column-span-6{width:100%}.row-gutter-6 .column-offset-6{margin-left:100%}.row-gutter-6 .column-span-7{width:116.6666666667%}.row-gutter-6 .column-offset-7{margin-left:116.6666666667%}.row-gutter-6 .column-span-8{width:133.3333333333%}.row-gutter-6 .column-offset-8{margin-left:133.3333333333%}.row-gutter-6 .column-span-9{width:150%}.row-gutter-6 .column-offset-9{margin-left:150%}.row-gutter-6 .column-span-10{width:166.6666666667%}.row-gutter-6 .column-offset-10{margin-left:166.6666666667%}.row-gutter-6 .column-span-11{width:183.3333333333%}.row-gutter-6 .column-offset-11{margin-left:183.3333333333%}.row-gutter-6 .column-span-12{width:200%}.row-gutter-6 .column-offset-12{margin-left:200%}.row-gutter-6 .column-span-13{width:216.6666666667%}.row-gutter-6 .column-offset-13{margin-left:216.6666666667%}.row-gutter-6 .column-span-14{width:233.3333333333%}.row-gutter-6 .column-offset-14{margin-left:233.3333333333%}.row-gutter-6 .column-span-15{width:250%}.row-gutter-6 .column-offset-15{margin-left:250%}.row-gutter-6 .column-span-16{width:266.6666666667%}.row-gutter-6 .column-offset-16{margin-left:266.6666666667%}.row-gutter-6 .column-span-17{width:283.3333333333%}.row-gutter-6 .column-offset-17{margin-left:283.3333333333%}.row-gutter-6 .column-span-18{width:300%}.row-gutter-6 .column-offset-18{margin-left:300%}.row-gutter-6 .column-span-19{width:316.6666666667%}.row-gutter-6 .column-offset-19{margin-left:316.6666666667%}.row-gutter-6 .column-span-20{width:333.3333333333%}.row-gutter-6 .column-offset-20{margin-left:333.3333333333%}.row-gutter-6 .column-span-21{width:350%}.row-gutter-6 .column-offset-21{margin-left:350%}.row-gutter-6 .column-span-22{width:366.6666666667%}.row-gutter-6 .column-offset-22{margin-left:366.6666666667%}.row-gutter-6 .column-span-23{width:383.3333333333%}.row-gutter-6 .column-offset-23{margin-left:383.3333333333%}.row-gutter-6 .column-span-24{width:400%}.row-gutter-6 .column-offset-24{margin-left:400%}.row-gutter-7{padding:12px 6px}.row-gutter-7 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-7 .column-span-1{width:14.2857142857%}.row-gutter-7 .column-offset-1{margin-left:14.2857142857%}.row-gutter-7 .column-span-2{width:28.5714285714%}.row-gutter-7 .column-offset-2{margin-left:28.5714285714%}.row-gutter-7 .column-span-3{width:42.8571428571%}.row-gutter-7 .column-offset-3{margin-left:42.8571428571%}.row-gutter-7 .column-span-4{width:57.1428571429%}.row-gutter-7 .column-offset-4{margin-left:57.1428571429%}.row-gutter-7 .column-span-5{width:71.4285714286%}.row-gutter-7 .column-offset-5{margin-left:71.4285714286%}.row-gutter-7 .column-span-6{width:85.7142857143%}.row-gutter-7 .column-offset-6{margin-left:85.7142857143%}.row-gutter-7 .column-span-7{width:100%}.row-gutter-7 .column-offset-7{margin-left:100%}.row-gutter-7 .column-span-8{width:114.2857142857%}.row-gutter-7 .column-offset-8{margin-left:114.2857142857%}.row-gutter-7 .column-span-9{width:128.5714285714%}.row-gutter-7 .column-offset-9{margin-left:128.5714285714%}.row-gutter-7 .column-span-10{width:142.8571428571%}.row-gutter-7 .column-offset-10{margin-left:142.8571428571%}.row-gutter-7 .column-span-11{width:157.1428571429%}.row-gutter-7 .column-offset-11{margin-left:157.1428571429%}.row-gutter-7 .column-span-12{width:171.4285714286%}.row-gutter-7 .column-offset-12{margin-left:171.4285714286%}.row-gutter-7 .column-span-13{width:185.7142857143%}.row-gutter-7 .column-offset-13{margin-left:185.7142857143%}.row-gutter-7 .column-span-14{width:200%}.row-gutter-7 .column-offset-14{margin-left:200%}.row-gutter-7 .column-span-15{width:214.2857142857%}.row-gutter-7 .column-offset-15{margin-left:214.2857142857%}.row-gutter-7 .column-span-16{width:228.5714285714%}.row-gutter-7 .column-offset-16{margin-left:228.5714285714%}.row-gutter-7 .column-span-17{width:242.8571428571%}.row-gutter-7 .column-offset-17{margin-left:242.8571428571%}.row-gutter-7 .column-span-18{width:257.1428571429%}.row-gutter-7 .column-offset-18{margin-left:257.1428571429%}.row-gutter-7 .column-span-19{width:271.4285714286%}.row-gutter-7 .column-offset-19{margin-left:271.4285714286%}.row-gutter-7 .column-span-20{width:285.7142857143%}.row-gutter-7 .column-offset-20{margin-left:285.7142857143%}.row-gutter-7 .column-span-21{width:300%}.row-gutter-7 .column-offset-21{margin-left:300%}.row-gutter-7 .column-span-22{width:314.2857142857%}.row-gutter-7 .column-offset-22{margin-left:314.2857142857%}.row-gutter-7 .column-span-23{width:328.5714285714%}.row-gutter-7 .column-offset-23{margin-left:328.5714285714%}.row-gutter-7 .column-span-24{width:342.8571428571%}.row-gutter-7 .column-offset-24{margin-left:342.8571428571%}.row-gutter-8{padding:12px 6px}.row-gutter-8 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-8 .column-span-1{width:12.5%}.row-gutter-8 .column-offset-1{margin-left:12.5%}.row-gutter-8 .column-span-2{width:25%}.row-gutter-8 .column-offset-2{margin-left:25%}.row-gutter-8 .column-span-3{width:37.5%}.row-gutter-8 .column-offset-3{margin-left:37.5%}.row-gutter-8 .column-span-4{width:50%}.row-gutter-8 .column-offset-4{margin-left:50%}.row-gutter-8 .column-span-5{width:62.5%}.row-gutter-8 .column-offset-5{margin-left:62.5%}.row-gutter-8 .column-span-6{width:75%}.row-gutter-8 .column-offset-6{margin-left:75%}.row-gutter-8 .column-span-7{width:87.5%}.row-gutter-8 .column-offset-7{margin-left:87.5%}.row-gutter-8 .column-span-8{width:100%}.row-gutter-8 .column-offset-8{margin-left:100%}.row-gutter-8 .column-span-9{width:112.5%}.row-gutter-8 .column-offset-9{margin-left:112.5%}.row-gutter-8 .column-span-10{width:125%}.row-gutter-8 .column-offset-10{margin-left:125%}.row-gutter-8 .column-span-11{width:137.5%}.row-gutter-8 .column-offset-11{margin-left:137.5%}.row-gutter-8 .column-span-12{width:150%}.row-gutter-8 .column-offset-12{margin-left:150%}.row-gutter-8 .column-span-13{width:162.5%}.row-gutter-8 .column-offset-13{margin-left:162.5%}.row-gutter-8 .column-span-14{width:175%}.row-gutter-8 .column-offset-14{margin-left:175%}.row-gutter-8 .column-span-15{width:187.5%}.row-gutter-8 .column-offset-15{margin-left:187.5%}.row-gutter-8 .column-span-16{width:200%}.row-gutter-8 .column-offset-16{margin-left:200%}.row-gutter-8 .column-span-17{width:212.5%}.row-gutter-8 .column-offset-17{margin-left:212.5%}.row-gutter-8 .column-span-18{width:225%}.row-gutter-8 .column-offset-18{margin-left:225%}.row-gutter-8 .column-span-19{width:237.5%}.row-gutter-8 .column-offset-19{margin-left:237.5%}.row-gutter-8 .column-span-20{width:250%}.row-gutter-8 .column-offset-20{margin-left:250%}.row-gutter-8 .column-span-21{width:262.5%}.row-gutter-8 .column-offset-21{margin-left:262.5%}.row-gutter-8 .column-span-22{width:275%}.row-gutter-8 .column-offset-22{margin-left:275%}.row-gutter-8 .column-span-23{width:287.5%}.row-gutter-8 .column-offset-23{margin-left:287.5%}.row-gutter-8 .column-span-24{width:300%}.row-gutter-8 .column-offset-24{margin-left:300%}.row-gutter-9{padding:12px 6px}.row-gutter-9 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-9 .column-span-1{width:11.1111111111%}.row-gutter-9 .column-offset-1{margin-left:11.1111111111%}.row-gutter-9 .column-span-2{width:22.2222222222%}.row-gutter-9 .column-offset-2{margin-left:22.2222222222%}.row-gutter-9 .column-span-3{width:33.3333333333%}.row-gutter-9 .column-offset-3{margin-left:33.3333333333%}.row-gutter-9 .column-span-4{width:44.4444444444%}.row-gutter-9 .column-offset-4{margin-left:44.4444444444%}.row-gutter-9 .column-span-5{width:55.5555555556%}.row-gutter-9 .column-offset-5{margin-left:55.5555555556%}.row-gutter-9 .column-span-6{width:66.6666666667%}.row-gutter-9 .column-offset-6{margin-left:66.6666666667%}.row-gutter-9 .column-span-7{width:77.7777777778%}.row-gutter-9 .column-offset-7{margin-left:77.7777777778%}.row-gutter-9 .column-span-8{width:88.8888888889%}.row-gutter-9 .column-offset-8{margin-left:88.8888888889%}.row-gutter-9 .column-span-9{width:100%}.row-gutter-9 .column-offset-9{margin-left:100%}.row-gutter-9 .column-span-10{width:111.1111111111%}.row-gutter-9 .column-offset-10{margin-left:111.1111111111%}.row-gutter-9 .column-span-11{width:122.2222222222%}.row-gutter-9 .column-offset-11{margin-left:122.2222222222%}.row-gutter-9 .column-span-12{width:133.3333333333%}.row-gutter-9 .column-offset-12{margin-left:133.3333333333%}.row-gutter-9 .column-span-13{width:144.4444444444%}.row-gutter-9 .column-offset-13{margin-left:144.4444444444%}.row-gutter-9 .column-span-14{width:155.5555555556%}.row-gutter-9 .column-offset-14{margin-left:155.5555555556%}.row-gutter-9 .column-span-15{width:166.6666666667%}.row-gutter-9 .column-offset-15{margin-left:166.6666666667%}.row-gutter-9 .column-span-16{width:177.7777777778%}.row-gutter-9 .column-offset-16{margin-left:177.7777777778%}.row-gutter-9 .column-span-17{width:188.8888888889%}.row-gutter-9 .column-offset-17{margin-left:188.8888888889%}.row-gutter-9 .column-span-18{width:200%}.row-gutter-9 .column-offset-18{margin-left:200%}.row-gutter-9 .column-span-19{width:211.1111111111%}.row-gutter-9 .column-offset-19{margin-left:211.1111111111%}.row-gutter-9 .column-span-20{width:222.2222222222%}.row-gutter-9 .column-offset-20{margin-left:222.2222222222%}.row-gutter-9 .column-span-21{width:233.3333333333%}.row-gutter-9 .column-offset-21{margin-left:233.3333333333%}.row-gutter-9 .column-span-22{width:244.4444444444%}.row-gutter-9 .column-offset-22{margin-left:244.4444444444%}.row-gutter-9 .column-span-23{width:255.5555555556%}.row-gutter-9 .column-offset-23{margin-left:255.5555555556%}.row-gutter-9 .column-span-24{width:266.6666666667%}.row-gutter-9 .column-offset-24{margin-left:266.6666666667%}.row-gutter-10{padding:12px 6px}.row-gutter-10 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-10 .column-span-1{width:10%}.row-gutter-10 .column-offset-1{margin-left:10%}.row-gutter-10 .column-span-2{width:20%}.row-gutter-10 .column-offset-2{margin-left:20%}.row-gutter-10 .column-span-3{width:30%}.row-gutter-10 .column-offset-3{margin-left:30%}.row-gutter-10 .column-span-4{width:40%}.row-gutter-10 .column-offset-4{margin-left:40%}.row-gutter-10 .column-span-5{width:50%}.row-gutter-10 .column-offset-5{margin-left:50%}.row-gutter-10 .column-span-6{width:60%}.row-gutter-10 .column-offset-6{margin-left:60%}.row-gutter-10 .column-span-7{width:70%}.row-gutter-10 .column-offset-7{margin-left:70%}.row-gutter-10 .column-span-8{width:80%}.row-gutter-10 .column-offset-8{margin-left:80%}.row-gutter-10 .column-span-9{width:90%}.row-gutter-10 .column-offset-9{margin-left:90%}.row-gutter-10 .column-span-10{width:100%}.row-gutter-10 .column-offset-10{margin-left:100%}.row-gutter-10 .column-span-11{width:110%}.row-gutter-10 .column-offset-11{margin-left:110%}.row-gutter-10 .column-span-12{width:120%}.row-gutter-10 .column-offset-12{margin-left:120%}.row-gutter-10 .column-span-13{width:130%}.row-gutter-10 .column-offset-13{margin-left:130%}.row-gutter-10 .column-span-14{width:140%}.row-gutter-10 .column-offset-14{margin-left:140%}.row-gutter-10 .column-span-15{width:150%}.row-gutter-10 .column-offset-15{margin-left:150%}.row-gutter-10 .column-span-16{width:160%}.row-gutter-10 .column-offset-16{margin-left:160%}.row-gutter-10 .column-span-17{width:170%}.row-gutter-10 .column-offset-17{margin-left:170%}.row-gutter-10 .column-span-18{width:180%}.row-gutter-10 .column-offset-18{margin-left:180%}.row-gutter-10 .column-span-19{width:190%}.row-gutter-10 .column-offset-19{margin-left:190%}.row-gutter-10 .column-span-20{width:200%}.row-gutter-10 .column-offset-20{margin-left:200%}.row-gutter-10 .column-span-21{width:210%}.row-gutter-10 .column-offset-21{margin-left:210%}.row-gutter-10 .column-span-22{width:220%}.row-gutter-10 .column-offset-22{margin-left:220%}.row-gutter-10 .column-span-23{width:230%}.row-gutter-10 .column-offset-23{margin-left:230%}.row-gutter-10 .column-span-24{width:240%}.row-gutter-10 .column-offset-24{margin-left:240%}.row-gutter-11{padding:12px 6px}.row-gutter-11 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-11 .column-span-1{width:9.0909090909%}.row-gutter-11 .column-offset-1{margin-left:9.0909090909%}.row-gutter-11 .column-span-2{width:18.1818181818%}.row-gutter-11 .column-offset-2{margin-left:18.1818181818%}.row-gutter-11 .column-span-3{width:27.2727272727%}.row-gutter-11 .column-offset-3{margin-left:27.2727272727%}.row-gutter-11 .column-span-4{width:36.3636363636%}.row-gutter-11 .column-offset-4{margin-left:36.3636363636%}.row-gutter-11 .column-span-5{width:45.4545454545%}.row-gutter-11 .column-offset-5{margin-left:45.4545454545%}.row-gutter-11 .column-span-6{width:54.5454545455%}.row-gutter-11 .column-offset-6{margin-left:54.5454545455%}.row-gutter-11 .column-span-7{width:63.6363636364%}.row-gutter-11 .column-offset-7{margin-left:63.6363636364%}.row-gutter-11 .column-span-8{width:72.7272727273%}.row-gutter-11 .column-offset-8{margin-left:72.7272727273%}.row-gutter-11 .column-span-9{width:81.8181818182%}.row-gutter-11 .column-offset-9{margin-left:81.8181818182%}.row-gutter-11 .column-span-10{width:90.9090909091%}.row-gutter-11 .column-offset-10{margin-left:90.9090909091%}.row-gutter-11 .column-span-11{width:100%}.row-gutter-11 .column-offset-11{margin-left:100%}.row-gutter-11 .column-span-12{width:109.0909090909%}.row-gutter-11 .column-offset-12{margin-left:109.0909090909%}.row-gutter-11 .column-span-13{width:118.1818181818%}.row-gutter-11 .column-offset-13{margin-left:118.1818181818%}.row-gutter-11 .column-span-14{width:127.2727272727%}.row-gutter-11 .column-offset-14{margin-left:127.2727272727%}.row-gutter-11 .column-span-15{width:136.3636363636%}.row-gutter-11 .column-offset-15{margin-left:136.3636363636%}.row-gutter-11 .column-span-16{width:145.4545454545%}.row-gutter-11 .column-offset-16{margin-left:145.4545454545%}.row-gutter-11 .column-span-17{width:154.5454545455%}.row-gutter-11 .column-offset-17{margin-left:154.5454545455%}.row-gutter-11 .column-span-18{width:163.6363636364%}.row-gutter-11 .column-offset-18{margin-left:163.6363636364%}.row-gutter-11 .column-span-19{width:172.7272727273%}.row-gutter-11 .column-offset-19{margin-left:172.7272727273%}.row-gutter-11 .column-span-20{width:181.8181818182%}.row-gutter-11 .column-offset-20{margin-left:181.8181818182%}.row-gutter-11 .column-span-21{width:190.9090909091%}.row-gutter-11 .column-offset-21{margin-left:190.9090909091%}.row-gutter-11 .column-span-22{width:200%}.row-gutter-11 .column-offset-22{margin-left:200%}.row-gutter-11 .column-span-23{width:209.0909090909%}.row-gutter-11 .column-offset-23{margin-left:209.0909090909%}.row-gutter-11 .column-span-24{width:218.1818181818%}.row-gutter-11 .column-offset-24{margin-left:218.1818181818%}.row-gutter-12{padding:12px 6px}.row-gutter-12 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-12 .column-span-1{width:8.3333333333%}.row-gutter-12 .column-offset-1{margin-left:8.3333333333%}.row-gutter-12 .column-span-2{width:16.6666666667%}.row-gutter-12 .column-offset-2{margin-left:16.6666666667%}.row-gutter-12 .column-span-3{width:25%}.row-gutter-12 .column-offset-3{margin-left:25%}.row-gutter-12 .column-span-4{width:33.3333333333%}.row-gutter-12 .column-offset-4{margin-left:33.3333333333%}.row-gutter-12 .column-span-5{width:41.6666666667%}.row-gutter-12 .column-offset-5{margin-left:41.6666666667%}.row-gutter-12 .column-span-6{width:50%}.row-gutter-12 .column-offset-6{margin-left:50%}.row-gutter-12 .column-span-7{width:58.3333333333%}.row-gutter-12 .column-offset-7{margin-left:58.3333333333%}.row-gutter-12 .column-span-8{width:66.6666666667%}.row-gutter-12 .column-offset-8{margin-left:66.6666666667%}.row-gutter-12 .column-span-9{width:75%}.row-gutter-12 .column-offset-9{margin-left:75%}.row-gutter-12 .column-span-10{width:83.3333333333%}.row-gutter-12 .column-offset-10{margin-left:83.3333333333%}.row-gutter-12 .column-span-11{width:91.6666666667%}.row-gutter-12 .column-offset-11{margin-left:91.6666666667%}.row-gutter-12 .column-span-12{width:100%}.row-gutter-12 .column-offset-12{margin-left:100%}.row-gutter-12 .column-span-13{width:108.3333333333%}.row-gutter-12 .column-offset-13{margin-left:108.3333333333%}.row-gutter-12 .column-span-14{width:116.6666666667%}.row-gutter-12 .column-offset-14{margin-left:116.6666666667%}.row-gutter-12 .column-span-15{width:125%}.row-gutter-12 .column-offset-15{margin-left:125%}.row-gutter-12 .column-span-16{width:133.3333333333%}.row-gutter-12 .column-offset-16{margin-left:133.3333333333%}.row-gutter-12 .column-span-17{width:141.6666666667%}.row-gutter-12 .column-offset-17{margin-left:141.6666666667%}.row-gutter-12 .column-span-18{width:150%}.row-gutter-12 .column-offset-18{margin-left:150%}.row-gutter-12 .column-span-19{width:158.3333333333%}.row-gutter-12 .column-offset-19{margin-left:158.3333333333%}.row-gutter-12 .column-span-20{width:166.6666666667%}.row-gutter-12 .column-offset-20{margin-left:166.6666666667%}.row-gutter-12 .column-span-21{width:175%}.row-gutter-12 .column-offset-21{margin-left:175%}.row-gutter-12 .column-span-22{width:183.3333333333%}.row-gutter-12 .column-offset-22{margin-left:183.3333333333%}.row-gutter-12 .column-span-23{width:191.6666666667%}.row-gutter-12 .column-offset-23{margin-left:191.6666666667%}.row-gutter-12 .column-span-24{width:200%}.row-gutter-12 .column-offset-24{margin-left:200%}.row-gutter-13{padding:12px 6px}.row-gutter-13 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-13 .column-span-1{width:7.6923076923%}.row-gutter-13 .column-offset-1{margin-left:7.6923076923%}.row-gutter-13 .column-span-2{width:15.3846153846%}.row-gutter-13 .column-offset-2{margin-left:15.3846153846%}.row-gutter-13 .column-span-3{width:23.0769230769%}.row-gutter-13 .column-offset-3{margin-left:23.0769230769%}.row-gutter-13 .column-span-4{width:30.7692307692%}.row-gutter-13 .column-offset-4{margin-left:30.7692307692%}.row-gutter-13 .column-span-5{width:38.4615384615%}.row-gutter-13 .column-offset-5{margin-left:38.4615384615%}.row-gutter-13 .column-span-6{width:46.1538461538%}.row-gutter-13 .column-offset-6{margin-left:46.1538461538%}.row-gutter-13 .column-span-7{width:53.8461538462%}.row-gutter-13 .column-offset-7{margin-left:53.8461538462%}.row-gutter-13 .column-span-8{width:61.5384615385%}.row-gutter-13 .column-offset-8{margin-left:61.5384615385%}.row-gutter-13 .column-span-9{width:69.2307692308%}.row-gutter-13 .column-offset-9{margin-left:69.2307692308%}.row-gutter-13 .column-span-10{width:76.9230769231%}.row-gutter-13 .column-offset-10{margin-left:76.9230769231%}.row-gutter-13 .column-span-11{width:84.6153846154%}.row-gutter-13 .column-offset-11{margin-left:84.6153846154%}.row-gutter-13 .column-span-12{width:92.3076923077%}.row-gutter-13 .column-offset-12{margin-left:92.3076923077%}.row-gutter-13 .column-span-13{width:100%}.row-gutter-13 .column-offset-13{margin-left:100%}.row-gutter-13 .column-span-14{width:107.6923076923%}.row-gutter-13 .column-offset-14{margin-left:107.6923076923%}.row-gutter-13 .column-span-15{width:115.3846153846%}.row-gutter-13 .column-offset-15{margin-left:115.3846153846%}.row-gutter-13 .column-span-16{width:123.0769230769%}.row-gutter-13 .column-offset-16{margin-left:123.0769230769%}.row-gutter-13 .column-span-17{width:130.7692307692%}.row-gutter-13 .column-offset-17{margin-left:130.7692307692%}.row-gutter-13 .column-span-18{width:138.4615384615%}.row-gutter-13 .column-offset-18{margin-left:138.4615384615%}.row-gutter-13 .column-span-19{width:146.1538461538%}.row-gutter-13 .column-offset-19{margin-left:146.1538461538%}.row-gutter-13 .column-span-20{width:153.8461538462%}.row-gutter-13 .column-offset-20{margin-left:153.8461538462%}.row-gutter-13 .column-span-21{width:161.5384615385%}.row-gutter-13 .column-offset-21{margin-left:161.5384615385%}.row-gutter-13 .column-span-22{width:169.2307692308%}.row-gutter-13 .column-offset-22{margin-left:169.2307692308%}.row-gutter-13 .column-span-23{width:176.9230769231%}.row-gutter-13 .column-offset-23{margin-left:176.9230769231%}.row-gutter-13 .column-span-24{width:184.6153846154%}.row-gutter-13 .column-offset-24{margin-left:184.6153846154%}.row-gutter-14{padding:12px 6px}.row-gutter-14 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-14 .column-span-1{width:7.1428571429%}.row-gutter-14 .column-offset-1{margin-left:7.1428571429%}.row-gutter-14 .column-span-2{width:14.2857142857%}.row-gutter-14 .column-offset-2{margin-left:14.2857142857%}.row-gutter-14 .column-span-3{width:21.4285714286%}.row-gutter-14 .column-offset-3{margin-left:21.4285714286%}.row-gutter-14 .column-span-4{width:28.5714285714%}.row-gutter-14 .column-offset-4{margin-left:28.5714285714%}.row-gutter-14 .column-span-5{width:35.7142857143%}.row-gutter-14 .column-offset-5{margin-left:35.7142857143%}.row-gutter-14 .column-span-6{width:42.8571428571%}.row-gutter-14 .column-offset-6{margin-left:42.8571428571%}.row-gutter-14 .column-span-7{width:50%}.row-gutter-14 .column-offset-7{margin-left:50%}.row-gutter-14 .column-span-8{width:57.1428571429%}.row-gutter-14 .column-offset-8{margin-left:57.1428571429%}.row-gutter-14 .column-span-9{width:64.2857142857%}.row-gutter-14 .column-offset-9{margin-left:64.2857142857%}.row-gutter-14 .column-span-10{width:71.4285714286%}.row-gutter-14 .column-offset-10{margin-left:71.4285714286%}.row-gutter-14 .column-span-11{width:78.5714285714%}.row-gutter-14 .column-offset-11{margin-left:78.5714285714%}.row-gutter-14 .column-span-12{width:85.7142857143%}.row-gutter-14 .column-offset-12{margin-left:85.7142857143%}.row-gutter-14 .column-span-13{width:92.8571428571%}.row-gutter-14 .column-offset-13{margin-left:92.8571428571%}.row-gutter-14 .column-span-14{width:100%}.row-gutter-14 .column-offset-14{margin-left:100%}.row-gutter-14 .column-span-15{width:107.1428571429%}.row-gutter-14 .column-offset-15{margin-left:107.1428571429%}.row-gutter-14 .column-span-16{width:114.2857142857%}.row-gutter-14 .column-offset-16{margin-left:114.2857142857%}.row-gutter-14 .column-span-17{width:121.4285714286%}.row-gutter-14 .column-offset-17{margin-left:121.4285714286%}.row-gutter-14 .column-span-18{width:128.5714285714%}.row-gutter-14 .column-offset-18{margin-left:128.5714285714%}.row-gutter-14 .column-span-19{width:135.7142857143%}.row-gutter-14 .column-offset-19{margin-left:135.7142857143%}.row-gutter-14 .column-span-20{width:142.8571428571%}.row-gutter-14 .column-offset-20{margin-left:142.8571428571%}.row-gutter-14 .column-span-21{width:150%}.row-gutter-14 .column-offset-21{margin-left:150%}.row-gutter-14 .column-span-22{width:157.1428571429%}.row-gutter-14 .column-offset-22{margin-left:157.1428571429%}.row-gutter-14 .column-span-23{width:164.2857142857%}.row-gutter-14 .column-offset-23{margin-left:164.2857142857%}.row-gutter-14 .column-span-24{width:171.4285714286%}.row-gutter-14 .column-offset-24{margin-left:171.4285714286%}.row-gutter-15{padding:12px 6px}.row-gutter-15 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-15 .column-span-1{width:6.6666666667%}.row-gutter-15 .column-offset-1{margin-left:6.6666666667%}.row-gutter-15 .column-span-2{width:13.3333333333%}.row-gutter-15 .column-offset-2{margin-left:13.3333333333%}.row-gutter-15 .column-span-3{width:20%}.row-gutter-15 .column-offset-3{margin-left:20%}.row-gutter-15 .column-span-4{width:26.6666666667%}.row-gutter-15 .column-offset-4{margin-left:26.6666666667%}.row-gutter-15 .column-span-5{width:33.3333333333%}.row-gutter-15 .column-offset-5{margin-left:33.3333333333%}.row-gutter-15 .column-span-6{width:40%}.row-gutter-15 .column-offset-6{margin-left:40%}.row-gutter-15 .column-span-7{width:46.6666666667%}.row-gutter-15 .column-offset-7{margin-left:46.6666666667%}.row-gutter-15 .column-span-8{width:53.3333333333%}.row-gutter-15 .column-offset-8{margin-left:53.3333333333%}.row-gutter-15 .column-span-9{width:60%}.row-gutter-15 .column-offset-9{margin-left:60%}.row-gutter-15 .column-span-10{width:66.6666666667%}.row-gutter-15 .column-offset-10{margin-left:66.6666666667%}.row-gutter-15 .column-span-11{width:73.3333333333%}.row-gutter-15 .column-offset-11{margin-left:73.3333333333%}.row-gutter-15 .column-span-12{width:80%}.row-gutter-15 .column-offset-12{margin-left:80%}.row-gutter-15 .column-span-13{width:86.6666666667%}.row-gutter-15 .column-offset-13{margin-left:86.6666666667%}.row-gutter-15 .column-span-14{width:93.3333333333%}.row-gutter-15 .column-offset-14{margin-left:93.3333333333%}.row-gutter-15 .column-span-15{width:100%}.row-gutter-15 .column-offset-15{margin-left:100%}.row-gutter-15 .column-span-16{width:106.6666666667%}.row-gutter-15 .column-offset-16{margin-left:106.6666666667%}.row-gutter-15 .column-span-17{width:113.3333333333%}.row-gutter-15 .column-offset-17{margin-left:113.3333333333%}.row-gutter-15 .column-span-18{width:120%}.row-gutter-15 .column-offset-18{margin-left:120%}.row-gutter-15 .column-span-19{width:126.6666666667%}.row-gutter-15 .column-offset-19{margin-left:126.6666666667%}.row-gutter-15 .column-span-20{width:133.3333333333%}.row-gutter-15 .column-offset-20{margin-left:133.3333333333%}.row-gutter-15 .column-span-21{width:140%}.row-gutter-15 .column-offset-21{margin-left:140%}.row-gutter-15 .column-span-22{width:146.6666666667%}.row-gutter-15 .column-offset-22{margin-left:146.6666666667%}.row-gutter-15 .column-span-23{width:153.3333333333%}.row-gutter-15 .column-offset-23{margin-left:153.3333333333%}.row-gutter-15 .column-span-24{width:160%}.row-gutter-15 .column-offset-24{margin-left:160%}.row-gutter-16{padding:12px 6px}.row-gutter-16 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-16 .column-span-1{width:6.25%}.row-gutter-16 .column-offset-1{margin-left:6.25%}.row-gutter-16 .column-span-2{width:12.5%}.row-gutter-16 .column-offset-2{margin-left:12.5%}.row-gutter-16 .column-span-3{width:18.75%}.row-gutter-16 .column-offset-3{margin-left:18.75%}.row-gutter-16 .column-span-4{width:25%}.row-gutter-16 .column-offset-4{margin-left:25%}.row-gutter-16 .column-span-5{width:31.25%}.row-gutter-16 .column-offset-5{margin-left:31.25%}.row-gutter-16 .column-span-6{width:37.5%}.row-gutter-16 .column-offset-6{margin-left:37.5%}.row-gutter-16 .column-span-7{width:43.75%}.row-gutter-16 .column-offset-7{margin-left:43.75%}.row-gutter-16 .column-span-8{width:50%}.row-gutter-16 .column-offset-8{margin-left:50%}.row-gutter-16 .column-span-9{width:56.25%}.row-gutter-16 .column-offset-9{margin-left:56.25%}.row-gutter-16 .column-span-10{width:62.5%}.row-gutter-16 .column-offset-10{margin-left:62.5%}.row-gutter-16 .column-span-11{width:68.75%}.row-gutter-16 .column-offset-11{margin-left:68.75%}.row-gutter-16 .column-span-12{width:75%}.row-gutter-16 .column-offset-12{margin-left:75%}.row-gutter-16 .column-span-13{width:81.25%}.row-gutter-16 .column-offset-13{margin-left:81.25%}.row-gutter-16 .column-span-14{width:87.5%}.row-gutter-16 .column-offset-14{margin-left:87.5%}.row-gutter-16 .column-span-15{width:93.75%}.row-gutter-16 .column-offset-15{margin-left:93.75%}.row-gutter-16 .column-span-16{width:100%}.row-gutter-16 .column-offset-16{margin-left:100%}.row-gutter-16 .column-span-17{width:106.25%}.row-gutter-16 .column-offset-17{margin-left:106.25%}.row-gutter-16 .column-span-18{width:112.5%}.row-gutter-16 .column-offset-18{margin-left:112.5%}.row-gutter-16 .column-span-19{width:118.75%}.row-gutter-16 .column-offset-19{margin-left:118.75%}.row-gutter-16 .column-span-20{width:125%}.row-gutter-16 .column-offset-20{margin-left:125%}.row-gutter-16 .column-span-21{width:131.25%}.row-gutter-16 .column-offset-21{margin-left:131.25%}.row-gutter-16 .column-span-22{width:137.5%}.row-gutter-16 .column-offset-22{margin-left:137.5%}.row-gutter-16 .column-span-23{width:143.75%}.row-gutter-16 .column-offset-23{margin-left:143.75%}.row-gutter-16 .column-span-24{width:150%}.row-gutter-16 .column-offset-24{margin-left:150%}.row-gutter-17{padding:12px 6px}.row-gutter-17 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-17 .column-span-1{width:5.8823529412%}.row-gutter-17 .column-offset-1{margin-left:5.8823529412%}.row-gutter-17 .column-span-2{width:11.7647058824%}.row-gutter-17 .column-offset-2{margin-left:11.7647058824%}.row-gutter-17 .column-span-3{width:17.6470588235%}.row-gutter-17 .column-offset-3{margin-left:17.6470588235%}.row-gutter-17 .column-span-4{width:23.5294117647%}.row-gutter-17 .column-offset-4{margin-left:23.5294117647%}.row-gutter-17 .column-span-5{width:29.4117647059%}.row-gutter-17 .column-offset-5{margin-left:29.4117647059%}.row-gutter-17 .column-span-6{width:35.2941176471%}.row-gutter-17 .column-offset-6{margin-left:35.2941176471%}.row-gutter-17 .column-span-7{width:41.1764705882%}.row-gutter-17 .column-offset-7{margin-left:41.1764705882%}.row-gutter-17 .column-span-8{width:47.0588235294%}.row-gutter-17 .column-offset-8{margin-left:47.0588235294%}.row-gutter-17 .column-span-9{width:52.9411764706%}.row-gutter-17 .column-offset-9{margin-left:52.9411764706%}.row-gutter-17 .column-span-10{width:58.8235294118%}.row-gutter-17 .column-offset-10{margin-left:58.8235294118%}.row-gutter-17 .column-span-11{width:64.7058823529%}.row-gutter-17 .column-offset-11{margin-left:64.7058823529%}.row-gutter-17 .column-span-12{width:70.5882352941%}.row-gutter-17 .column-offset-12{margin-left:70.5882352941%}.row-gutter-17 .column-span-13{width:76.4705882353%}.row-gutter-17 .column-offset-13{margin-left:76.4705882353%}.row-gutter-17 .column-span-14{width:82.3529411765%}.row-gutter-17 .column-offset-14{margin-left:82.3529411765%}.row-gutter-17 .column-span-15{width:88.2352941176%}.row-gutter-17 .column-offset-15{margin-left:88.2352941176%}.row-gutter-17 .column-span-16{width:94.1176470588%}.row-gutter-17 .column-offset-16{margin-left:94.1176470588%}.row-gutter-17 .column-span-17{width:100%}.row-gutter-17 .column-offset-17{margin-left:100%}.row-gutter-17 .column-span-18{width:105.8823529412%}.row-gutter-17 .column-offset-18{margin-left:105.8823529412%}.row-gutter-17 .column-span-19{width:111.7647058824%}.row-gutter-17 .column-offset-19{margin-left:111.7647058824%}.row-gutter-17 .column-span-20{width:117.6470588235%}.row-gutter-17 .column-offset-20{margin-left:117.6470588235%}.row-gutter-17 .column-span-21{width:123.5294117647%}.row-gutter-17 .column-offset-21{margin-left:123.5294117647%}.row-gutter-17 .column-span-22{width:129.4117647059%}.row-gutter-17 .column-offset-22{margin-left:129.4117647059%}.row-gutter-17 .column-span-23{width:135.2941176471%}.row-gutter-17 .column-offset-23{margin-left:135.2941176471%}.row-gutter-17 .column-span-24{width:141.1764705882%}.row-gutter-17 .column-offset-24{margin-left:141.1764705882%}.row-gutter-18{padding:12px 6px}.row-gutter-18 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-18 .column-span-1{width:5.5555555556%}.row-gutter-18 .column-offset-1{margin-left:5.5555555556%}.row-gutter-18 .column-span-2{width:11.1111111111%}.row-gutter-18 .column-offset-2{margin-left:11.1111111111%}.row-gutter-18 .column-span-3{width:16.6666666667%}.row-gutter-18 .column-offset-3{margin-left:16.6666666667%}.row-gutter-18 .column-span-4{width:22.2222222222%}.row-gutter-18 .column-offset-4{margin-left:22.2222222222%}.row-gutter-18 .column-span-5{width:27.7777777778%}.row-gutter-18 .column-offset-5{margin-left:27.7777777778%}.row-gutter-18 .column-span-6{width:33.3333333333%}.row-gutter-18 .column-offset-6{margin-left:33.3333333333%}.row-gutter-18 .column-span-7{width:38.8888888889%}.row-gutter-18 .column-offset-7{margin-left:38.8888888889%}.row-gutter-18 .column-span-8{width:44.4444444444%}.row-gutter-18 .column-offset-8{margin-left:44.4444444444%}.row-gutter-18 .column-span-9{width:50%}.row-gutter-18 .column-offset-9{margin-left:50%}.row-gutter-18 .column-span-10{width:55.5555555556%}.row-gutter-18 .column-offset-10{margin-left:55.5555555556%}.row-gutter-18 .column-span-11{width:61.1111111111%}.row-gutter-18 .column-offset-11{margin-left:61.1111111111%}.row-gutter-18 .column-span-12{width:66.6666666667%}.row-gutter-18 .column-offset-12{margin-left:66.6666666667%}.row-gutter-18 .column-span-13{width:72.2222222222%}.row-gutter-18 .column-offset-13{margin-left:72.2222222222%}.row-gutter-18 .column-span-14{width:77.7777777778%}.row-gutter-18 .column-offset-14{margin-left:77.7777777778%}.row-gutter-18 .column-span-15{width:83.3333333333%}.row-gutter-18 .column-offset-15{margin-left:83.3333333333%}.row-gutter-18 .column-span-16{width:88.8888888889%}.row-gutter-18 .column-offset-16{margin-left:88.8888888889%}.row-gutter-18 .column-span-17{width:94.4444444444%}.row-gutter-18 .column-offset-17{margin-left:94.4444444444%}.row-gutter-18 .column-span-18{width:100%}.row-gutter-18 .column-offset-18{margin-left:100%}.row-gutter-18 .column-span-19{width:105.5555555556%}.row-gutter-18 .column-offset-19{margin-left:105.5555555556%}.row-gutter-18 .column-span-20{width:111.1111111111%}.row-gutter-18 .column-offset-20{margin-left:111.1111111111%}.row-gutter-18 .column-span-21{width:116.6666666667%}.row-gutter-18 .column-offset-21{margin-left:116.6666666667%}.row-gutter-18 .column-span-22{width:122.2222222222%}.row-gutter-18 .column-offset-22{margin-left:122.2222222222%}.row-gutter-18 .column-span-23{width:127.7777777778%}.row-gutter-18 .column-offset-23{margin-left:127.7777777778%}.row-gutter-18 .column-span-24{width:133.3333333333%}.row-gutter-18 .column-offset-24{margin-left:133.3333333333%}.row-gutter-19{padding:12px 6px}.row-gutter-19 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-19 .column-span-1{width:5.2631578947%}.row-gutter-19 .column-offset-1{margin-left:5.2631578947%}.row-gutter-19 .column-span-2{width:10.5263157895%}.row-gutter-19 .column-offset-2{margin-left:10.5263157895%}.row-gutter-19 .column-span-3{width:15.7894736842%}.row-gutter-19 .column-offset-3{margin-left:15.7894736842%}.row-gutter-19 .column-span-4{width:21.0526315789%}.row-gutter-19 .column-offset-4{margin-left:21.0526315789%}.row-gutter-19 .column-span-5{width:26.3157894737%}.row-gutter-19 .column-offset-5{margin-left:26.3157894737%}.row-gutter-19 .column-span-6{width:31.5789473684%}.row-gutter-19 .column-offset-6{margin-left:31.5789473684%}.row-gutter-19 .column-span-7{width:36.8421052632%}.row-gutter-19 .column-offset-7{margin-left:36.8421052632%}.row-gutter-19 .column-span-8{width:42.1052631579%}.row-gutter-19 .column-offset-8{margin-left:42.1052631579%}.row-gutter-19 .column-span-9{width:47.3684210526%}.row-gutter-19 .column-offset-9{margin-left:47.3684210526%}.row-gutter-19 .column-span-10{width:52.6315789474%}.row-gutter-19 .column-offset-10{margin-left:52.6315789474%}.row-gutter-19 .column-span-11{width:57.8947368421%}.row-gutter-19 .column-offset-11{margin-left:57.8947368421%}.row-gutter-19 .column-span-12{width:63.1578947368%}.row-gutter-19 .column-offset-12{margin-left:63.1578947368%}.row-gutter-19 .column-span-13{width:68.4210526316%}.row-gutter-19 .column-offset-13{margin-left:68.4210526316%}.row-gutter-19 .column-span-14{width:73.6842105263%}.row-gutter-19 .column-offset-14{margin-left:73.6842105263%}.row-gutter-19 .column-span-15{width:78.9473684211%}.row-gutter-19 .column-offset-15{margin-left:78.9473684211%}.row-gutter-19 .column-span-16{width:84.2105263158%}.row-gutter-19 .column-offset-16{margin-left:84.2105263158%}.row-gutter-19 .column-span-17{width:89.4736842105%}.row-gutter-19 .column-offset-17{margin-left:89.4736842105%}.row-gutter-19 .column-span-18{width:94.7368421053%}.row-gutter-19 .column-offset-18{margin-left:94.7368421053%}.row-gutter-19 .column-span-19{width:100%}.row-gutter-19 .column-offset-19{margin-left:100%}.row-gutter-19 .column-span-20{width:105.2631578947%}.row-gutter-19 .column-offset-20{margin-left:105.2631578947%}.row-gutter-19 .column-span-21{width:110.5263157895%}.row-gutter-19 .column-offset-21{margin-left:110.5263157895%}.row-gutter-19 .column-span-22{width:115.7894736842%}.row-gutter-19 .column-offset-22{margin-left:115.7894736842%}.row-gutter-19 .column-span-23{width:121.0526315789%}.row-gutter-19 .column-offset-23{margin-left:121.0526315789%}.row-gutter-19 .column-span-24{width:126.3157894737%}.row-gutter-19 .column-offset-24{margin-left:126.3157894737%}.row-gutter-20{padding:12px 6px}.row-gutter-20 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-20 .column-span-1{width:5%}.row-gutter-20 .column-offset-1{margin-left:5%}.row-gutter-20 .column-span-2{width:10%}.row-gutter-20 .column-offset-2{margin-left:10%}.row-gutter-20 .column-span-3{width:15%}.row-gutter-20 .column-offset-3{margin-left:15%}.row-gutter-20 .column-span-4{width:20%}.row-gutter-20 .column-offset-4{margin-left:20%}.row-gutter-20 .column-span-5{width:25%}.row-gutter-20 .column-offset-5{margin-left:25%}.row-gutter-20 .column-span-6{width:30%}.row-gutter-20 .column-offset-6{margin-left:30%}.row-gutter-20 .column-span-7{width:35%}.row-gutter-20 .column-offset-7{margin-left:35%}.row-gutter-20 .column-span-8{width:40%}.row-gutter-20 .column-offset-8{margin-left:40%}.row-gutter-20 .column-span-9{width:45%}.row-gutter-20 .column-offset-9{margin-left:45%}.row-gutter-20 .column-span-10{width:50%}.row-gutter-20 .column-offset-10{margin-left:50%}.row-gutter-20 .column-span-11{width:55%}.row-gutter-20 .column-offset-11{margin-left:55%}.row-gutter-20 .column-span-12{width:60%}.row-gutter-20 .column-offset-12{margin-left:60%}.row-gutter-20 .column-span-13{width:65%}.row-gutter-20 .column-offset-13{margin-left:65%}.row-gutter-20 .column-span-14{width:70%}.row-gutter-20 .column-offset-14{margin-left:70%}.row-gutter-20 .column-span-15{width:75%}.row-gutter-20 .column-offset-15{margin-left:75%}.row-gutter-20 .column-span-16{width:80%}.row-gutter-20 .column-offset-16{margin-left:80%}.row-gutter-20 .column-span-17{width:85%}.row-gutter-20 .column-offset-17{margin-left:85%}.row-gutter-20 .column-span-18{width:90%}.row-gutter-20 .column-offset-18{margin-left:90%}.row-gutter-20 .column-span-19{width:95%}.row-gutter-20 .column-offset-19{margin-left:95%}.row-gutter-20 .column-span-20{width:100%}.row-gutter-20 .column-offset-20{margin-left:100%}.row-gutter-20 .column-span-21{width:105%}.row-gutter-20 .column-offset-21{margin-left:105%}.row-gutter-20 .column-span-22{width:110%}.row-gutter-20 .column-offset-22{margin-left:110%}.row-gutter-20 .column-span-23{width:115%}.row-gutter-20 .column-offset-23{margin-left:115%}.row-gutter-20 .column-span-24{width:120%}.row-gutter-20 .column-offset-24{margin-left:120%}.row-gutter-21{padding:12px 6px}.row-gutter-21 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-21 .column-span-1{width:4.7619047619%}.row-gutter-21 .column-offset-1{margin-left:4.7619047619%}.row-gutter-21 .column-span-2{width:9.5238095238%}.row-gutter-21 .column-offset-2{margin-left:9.5238095238%}.row-gutter-21 .column-span-3{width:14.2857142857%}.row-gutter-21 .column-offset-3{margin-left:14.2857142857%}.row-gutter-21 .column-span-4{width:19.0476190476%}.row-gutter-21 .column-offset-4{margin-left:19.0476190476%}.row-gutter-21 .column-span-5{width:23.8095238095%}.row-gutter-21 .column-offset-5{margin-left:23.8095238095%}.row-gutter-21 .column-span-6{width:28.5714285714%}.row-gutter-21 .column-offset-6{margin-left:28.5714285714%}.row-gutter-21 .column-span-7{width:33.3333333333%}.row-gutter-21 .column-offset-7{margin-left:33.3333333333%}.row-gutter-21 .column-span-8{width:38.0952380952%}.row-gutter-21 .column-offset-8{margin-left:38.0952380952%}.row-gutter-21 .column-span-9{width:42.8571428571%}.row-gutter-21 .column-offset-9{margin-left:42.8571428571%}.row-gutter-21 .column-span-10{width:47.619047619%}.row-gutter-21 .column-offset-10{margin-left:47.619047619%}.row-gutter-21 .column-span-11{width:52.380952381%}.row-gutter-21 .column-offset-11{margin-left:52.380952381%}.row-gutter-21 .column-span-12{width:57.1428571429%}.row-gutter-21 .column-offset-12{margin-left:57.1428571429%}.row-gutter-21 .column-span-13{width:61.9047619048%}.row-gutter-21 .column-offset-13{margin-left:61.9047619048%}.row-gutter-21 .column-span-14{width:66.6666666667%}.row-gutter-21 .column-offset-14{margin-left:66.6666666667%}.row-gutter-21 .column-span-15{width:71.4285714286%}.row-gutter-21 .column-offset-15{margin-left:71.4285714286%}.row-gutter-21 .column-span-16{width:76.1904761905%}.row-gutter-21 .column-offset-16{margin-left:76.1904761905%}.row-gutter-21 .column-span-17{width:80.9523809524%}.row-gutter-21 .column-offset-17{margin-left:80.9523809524%}.row-gutter-21 .column-span-18{width:85.7142857143%}.row-gutter-21 .column-offset-18{margin-left:85.7142857143%}.row-gutter-21 .column-span-19{width:90.4761904762%}.row-gutter-21 .column-offset-19{margin-left:90.4761904762%}.row-gutter-21 .column-span-20{width:95.2380952381%}.row-gutter-21 .column-offset-20{margin-left:95.2380952381%}.row-gutter-21 .column-span-21{width:100%}.row-gutter-21 .column-offset-21{margin-left:100%}.row-gutter-21 .column-span-22{width:104.7619047619%}.row-gutter-21 .column-offset-22{margin-left:104.7619047619%}.row-gutter-21 .column-span-23{width:109.5238095238%}.row-gutter-21 .column-offset-23{margin-left:109.5238095238%}.row-gutter-21 .column-span-24{width:114.2857142857%}.row-gutter-21 .column-offset-24{margin-left:114.2857142857%}.row-gutter-22{padding:12px 6px}.row-gutter-22 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-22 .column-span-1{width:4.5454545455%}.row-gutter-22 .column-offset-1{margin-left:4.5454545455%}.row-gutter-22 .column-span-2{width:9.0909090909%}.row-gutter-22 .column-offset-2{margin-left:9.0909090909%}.row-gutter-22 .column-span-3{width:13.6363636364%}.row-gutter-22 .column-offset-3{margin-left:13.6363636364%}.row-gutter-22 .column-span-4{width:18.1818181818%}.row-gutter-22 .column-offset-4{margin-left:18.1818181818%}.row-gutter-22 .column-span-5{width:22.7272727273%}.row-gutter-22 .column-offset-5{margin-left:22.7272727273%}.row-gutter-22 .column-span-6{width:27.2727272727%}.row-gutter-22 .column-offset-6{margin-left:27.2727272727%}.row-gutter-22 .column-span-7{width:31.8181818182%}.row-gutter-22 .column-offset-7{margin-left:31.8181818182%}.row-gutter-22 .column-span-8{width:36.3636363636%}.row-gutter-22 .column-offset-8{margin-left:36.3636363636%}.row-gutter-22 .column-span-9{width:40.9090909091%}.row-gutter-22 .column-offset-9{margin-left:40.9090909091%}.row-gutter-22 .column-span-10{width:45.4545454545%}.row-gutter-22 .column-offset-10{margin-left:45.4545454545%}.row-gutter-22 .column-span-11{width:50%}.row-gutter-22 .column-offset-11{margin-left:50%}.row-gutter-22 .column-span-12{width:54.5454545455%}.row-gutter-22 .column-offset-12{margin-left:54.5454545455%}.row-gutter-22 .column-span-13{width:59.0909090909%}.row-gutter-22 .column-offset-13{margin-left:59.0909090909%}.row-gutter-22 .column-span-14{width:63.6363636364%}.row-gutter-22 .column-offset-14{margin-left:63.6363636364%}.row-gutter-22 .column-span-15{width:68.1818181818%}.row-gutter-22 .column-offset-15{margin-left:68.1818181818%}.row-gutter-22 .column-span-16{width:72.7272727273%}.row-gutter-22 .column-offset-16{margin-left:72.7272727273%}.row-gutter-22 .column-span-17{width:77.2727272727%}.row-gutter-22 .column-offset-17{margin-left:77.2727272727%}.row-gutter-22 .column-span-18{width:81.8181818182%}.row-gutter-22 .column-offset-18{margin-left:81.8181818182%}.row-gutter-22 .column-span-19{width:86.3636363636%}.row-gutter-22 .column-offset-19{margin-left:86.3636363636%}.row-gutter-22 .column-span-20{width:90.9090909091%}.row-gutter-22 .column-offset-20{margin-left:90.9090909091%}.row-gutter-22 .column-span-21{width:95.4545454545%}.row-gutter-22 .column-offset-21{margin-left:95.4545454545%}.row-gutter-22 .column-span-22{width:100%}.row-gutter-22 .column-offset-22{margin-left:100%}.row-gutter-22 .column-span-23{width:104.5454545455%}.row-gutter-22 .column-offset-23{margin-left:104.5454545455%}.row-gutter-22 .column-span-24{width:109.0909090909%}.row-gutter-22 .column-offset-24{margin-left:109.0909090909%}.row-gutter-23{padding:12px 6px}.row-gutter-23 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-23 .column-span-1{width:4.347826087%}.row-gutter-23 .column-offset-1{margin-left:4.347826087%}.row-gutter-23 .column-span-2{width:8.6956521739%}.row-gutter-23 .column-offset-2{margin-left:8.6956521739%}.row-gutter-23 .column-span-3{width:13.0434782609%}.row-gutter-23 .column-offset-3{margin-left:13.0434782609%}.row-gutter-23 .column-span-4{width:17.3913043478%}.row-gutter-23 .column-offset-4{margin-left:17.3913043478%}.row-gutter-23 .column-span-5{width:21.7391304348%}.row-gutter-23 .column-offset-5{margin-left:21.7391304348%}.row-gutter-23 .column-span-6{width:26.0869565217%}.row-gutter-23 .column-offset-6{margin-left:26.0869565217%}.row-gutter-23 .column-span-7{width:30.4347826087%}.row-gutter-23 .column-offset-7{margin-left:30.4347826087%}.row-gutter-23 .column-span-8{width:34.7826086957%}.row-gutter-23 .column-offset-8{margin-left:34.7826086957%}.row-gutter-23 .column-span-9{width:39.1304347826%}.row-gutter-23 .column-offset-9{margin-left:39.1304347826%}.row-gutter-23 .column-span-10{width:43.4782608696%}.row-gutter-23 .column-offset-10{margin-left:43.4782608696%}.row-gutter-23 .column-span-11{width:47.8260869565%}.row-gutter-23 .column-offset-11{margin-left:47.8260869565%}.row-gutter-23 .column-span-12{width:52.1739130435%}.row-gutter-23 .column-offset-12{margin-left:52.1739130435%}.row-gutter-23 .column-span-13{width:56.5217391304%}.row-gutter-23 .column-offset-13{margin-left:56.5217391304%}.row-gutter-23 .column-span-14{width:60.8695652174%}.row-gutter-23 .column-offset-14{margin-left:60.8695652174%}.row-gutter-23 .column-span-15{width:65.2173913043%}.row-gutter-23 .column-offset-15{margin-left:65.2173913043%}.row-gutter-23 .column-span-16{width:69.5652173913%}.row-gutter-23 .column-offset-16{margin-left:69.5652173913%}.row-gutter-23 .column-span-17{width:73.9130434783%}.row-gutter-23 .column-offset-17{margin-left:73.9130434783%}.row-gutter-23 .column-span-18{width:78.2608695652%}.row-gutter-23 .column-offset-18{margin-left:78.2608695652%}.row-gutter-23 .column-span-19{width:82.6086956522%}.row-gutter-23 .column-offset-19{margin-left:82.6086956522%}.row-gutter-23 .column-span-20{width:86.9565217391%}.row-gutter-23 .column-offset-20{margin-left:86.9565217391%}.row-gutter-23 .column-span-21{width:91.3043478261%}.row-gutter-23 .column-offset-21{margin-left:91.3043478261%}.row-gutter-23 .column-span-22{width:95.652173913%}.row-gutter-23 .column-offset-22{margin-left:95.652173913%}.row-gutter-23 .column-span-23{width:100%}.row-gutter-23 .column-offset-23{margin-left:100%}.row-gutter-23 .column-span-24{width:104.347826087%}.row-gutter-23 .column-offset-24{margin-left:104.347826087%}.row-gutter-24{padding:12px 6px}.row-gutter-24 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-24 .column-span-1{width:4.1666666667%}.row-gutter-24 .column-offset-1{margin-left:4.1666666667%}.row-gutter-24 .column-span-2{width:8.3333333333%}.row-gutter-24 .column-offset-2{margin-left:8.3333333333%}.row-gutter-24 .column-span-3{width:12.5%}.row-gutter-24 .column-offset-3{margin-left:12.5%}.row-gutter-24 .column-span-4{width:16.6666666667%}.row-gutter-24 .column-offset-4{margin-left:16.6666666667%}.row-gutter-24 .column-span-5{width:20.8333333333%}.row-gutter-24 .column-offset-5{margin-left:20.8333333333%}.row-gutter-24 .column-span-6{width:25%}.row-gutter-24 .column-offset-6{margin-left:25%}.row-gutter-24 .column-span-7{width:29.1666666667%}.row-gutter-24 .column-offset-7{margin-left:29.1666666667%}.row-gutter-24 .column-span-8{width:33.3333333333%}.row-gutter-24 .column-offset-8{margin-left:33.3333333333%}.row-gutter-24 .column-span-9{width:37.5%}.row-gutter-24 .column-offset-9{margin-left:37.5%}.row-gutter-24 .column-span-10{width:41.6666666667%}.row-gutter-24 .column-offset-10{margin-left:41.6666666667%}.row-gutter-24 .column-span-11{width:45.8333333333%}.row-gutter-24 .column-offset-11{margin-left:45.8333333333%}.row-gutter-24 .column-span-12{width:50%}.row-gutter-24 .column-offset-12{margin-left:50%}.row-gutter-24 .column-span-13{width:54.1666666667%}.row-gutter-24 .column-offset-13{margin-left:54.1666666667%}.row-gutter-24 .column-span-14{width:58.3333333333%}.row-gutter-24 .column-offset-14{margin-left:58.3333333333%}.row-gutter-24 .column-span-15{width:62.5%}.row-gutter-24 .column-offset-15{margin-left:62.5%}.row-gutter-24 .column-span-16{width:66.6666666667%}.row-gutter-24 .column-offset-16{margin-left:66.6666666667%}.row-gutter-24 .column-span-17{width:70.8333333333%}.row-gutter-24 .column-offset-17{margin-left:70.8333333333%}.row-gutter-24 .column-span-18{width:75%}.row-gutter-24 .column-offset-18{margin-left:75%}.row-gutter-24 .column-span-19{width:79.1666666667%}.row-gutter-24 .column-offset-19{margin-left:79.1666666667%}.row-gutter-24 .column-span-20{width:83.3333333333%}.row-gutter-24 .column-offset-20{margin-left:83.3333333333%}.row-gutter-24 .column-span-21{width:87.5%}.row-gutter-24 .column-offset-21{margin-left:87.5%}.row-gutter-24 .column-span-22{width:91.6666666667%}.row-gutter-24 .column-offset-22{margin-left:91.6666666667%}.row-gutter-24 .column-span-23{width:95.8333333333%}.row-gutter-24 .column-offset-23{margin-left:95.8333333333%}.row-gutter-24 .column-span-24{width:100%}.row-gutter-24 .column-offset-24{margin-left:100%}.row-align-top{align-items:flex-start}.row-align-middle{align-items:center}.row-align-bottom{align-items:flex-end}.row-justify-start{justify-content:flex-start}.row-justify-end{justify-content:flex-end}.row-justify-center{justify-content:center}.row-justify-space-around{justify-content:space-around}.row-justify-space-between{justify-content:space-between}.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 rgba(87,190,252,.5)}.button-select .button-select-options.actived:active{box-shadow:none}.tags-container{display:flex;align-items:flex-start;overflow-y:hidden}.tags{flex:1;list-style:none;flex-wrap:wrap;box-sizing:content-box}.tags,.tags li{display:flex;align-items:center}.tags li{position:relative;justify-content:center;border:1px solid #2c8af8;color:#54759a;height:22px;border-radius:11px;padding:0 6px;margin:3px 4px;font-size:10px;cursor:default}.tags li.can-click{cursor:pointer}.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}.tags-expand{height:30px;line-height:30px;padding:0 20px;user-select:none;cursor:pointer}.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 rgba(87,190,252,.5)}.input-align-left{text-align:left}.input-align-center{text-align:center}.input-align-right{text-align:right}.input-inside:focus{box-shadow:none}.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 rgba(183,197,214,.5);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,.select-list .list>.selected{background:rgba(228,234,239,.5)}.select-list-show{opacity:1;pointer-events:visible}.select-list-show,.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:11}.modal-mask .modal{margin-top:-50px;padding:20px 30px;background:#fff;box-shadow:0 2px 16px rgba(84,117,154,.2);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;border-radius:4px;box-shadow:0 2px 8px rgba(44,138,248,.3);font-size:13px;line-height:1.6;text-align:justify}.alert,.alert .alert-icon{background:#fff;display:flex}.alert .alert-icon{margin-right:10px;width:20px;height:20px;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center}.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 rgba(93,174,52,.3)}.alert-box-success .alert-icon>i{color:#67c23a}.alert-box-info{background:linear-gradient(135deg,#3eb4fc,#57befc);box-shadow:0 2px 8px rgba(62,180,252,.3)}.alert-box-info .alert-icon>i{color:#57befc}.alert-box-warning{background:linear-gradient(135deg,#e39725,#e6a23c);box-shadow:0 2px 8px rgba(227,151,37,.3)}.alert-box-warning .alert-icon>i{color:#e6a23c}.alert-box-error{background:linear-gradient(135deg,#f35454,#f56c6c);box-shadow:0 2px 8px rgba(243,84,84,.3)}.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 rgba(93,174,52,.3)}.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 rgba(62,180,252,.3)}.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 rgba(227,151,37,.3)}.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 rgba(243,84,84,.3)}.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-primary{color:#fff;border:none;background:linear-gradient(135deg,#57befc,#2c8af8);box-shadow:0 2px 8px rgba(44,138,248,.5)}.button-primary:hover{border:none}.button-primary:active{box-shadow:0 0 2px rgba(44,138,248,.5)}.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 rgba(242,60,60,.5)}.button-danger:hover{border:none}.button-danger:active{box-shadow:0 0 2px rgba(242,60,60,.5)}.button-success{color:#fff;border:none;background:linear-gradient(135deg,#67c23a,#5dae34);box-shadow:0 2px 8px rgba(93,174,52,.5)}.button-success:hover{border:none}.button-success:active{box-shadow:0 0 2px rgba(93,174,52,.5)}.button-warning{color:#fff;border:none;background:linear-gradient(135deg,#e6a23c,#e39725);box-shadow:0 2px 8px rgba(227,151,37,.5)}.button-warning:hover{border:none}.button-warning:active{box-shadow:0 0 2px rgba(227,151,37,.5)}.message{position:fixed;top:20px;right:20px;border-radius:4px;opacity:0;background:#fff;display:flex;box-shadow:0 0 20px rgba(44,138,248,.2);transition:all .2s ease;transform:translateX(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:translateX(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%;color:#fff;line-height:18px;transform:translateY(-9px) scale(.6);text-shadow:none;font-weight:700}.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 linear infinite}.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-top:none;border-right:none;background-clip:padding-box;box-shadow:inset 0 0 10px rgba(44,138,248,.15)}@keyframes spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinner-circle:nth-of-type(0){transform:rotate(0deg)}.spinner-circle:nth-of-type(0) .spinner-inner{animation:spinner 2s linear infinite}.spinner-circle:first-of-type{transform:rotate(70deg)}.spinner-circle:first-of-type .spinner-inner{animation:spinner 2s linear infinite}.spinner-circle:nth-of-type(2){transform:rotate(140deg)}.spinner-circle:nth-of-type(2) .spinner-inner{animation:spinner 2s linear infinite}.loading{position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:0;bottom:0;right:0;background-color:hsla(0,0%,100%,.9);box-shadow:inset 0 0 80px rgba(0,0,0,.1);z-index:1000}.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 rgba(44,138,248,.2);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:rgba(84,117,154,.8)}.proxy-item .proxy-editor{position:absolute;right:10px;bottom:10px;cursor:pointer;color:rgba(84,117,154,.8);opacity:0;pointer-events:none;transition:all .3s ease}.proxy-item:hover{box-shadow:0 14px 20px -4px rgba(84,117,154,.4)}.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}.proxy-group-part{display:flex;align-items:center;height:60px}.proxy-group-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 20px;width:120px;height:18px}.proxies-group-card{padding:0}.proxies-group-item{border-bottom:1px solid #d8dee2}.proxies-group-item:last-child{border-bottom:none}.proxy-group-tags-container{padding:15px 0}.proxy-group-tags{flex:1;margin-left:30px}@media(max-width:768px){.proxy-group{flex-direction:column}.proxy-group-name{width:140px}.proxy-group-part{width:100%;height:42px;margin-top:6px;justify-content:space-between}.proxy-group-type{margin-right:20px}.proxy-group-tags-container{padding:5px 0 10px}.proxy-group-tags{margin-left:20px}}.proxy-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.proxy-provider-header{justify-content:space-between}.proxy-provider-header,.proxy-provider-header-part{display:flex;align-items:center}.proxy-provider-name{margin-right:24px}.proxy-provider-proxies{list-style:none}.proxy-provider-item{box-shadow:0 0 24px 0 rgba(44,138,248,.2)}.proxy-provider-item:hover{box-shadow:0 0 24px 0 rgba(84,117,154,.4)}.proxy-provider-update{line-height:14px;font-size:14px}.proxy-provider-icon{margin-left:20px;cursor:pointer}.proxy-provider-icon.healthcheck{color:#f56c6c}@media(max-width:768px){.proxy-provider-header{flex-direction:column;align-items:flex-start}.proxy-provider-header-part{margin:6px 0}}.proxies-list{--item-width:calc(100%/(var(--columns) + 1));--gap:calc(var(--item-width)/var(--columns));display:flex;margin-right:calc(var(--gap)*-1);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-group-list{list-style:none}.proxies-group-card{margin:20px 0}.proxies-container .proxies-action-icon{margin-left: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}.proxies-providers-item{margin:20px 0}.proxies-providers-list{list-style:none}@media(max-width:768px){.proxies-group-card{margin:12px 0}.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}}.logs-card{display:flex;flex-direction:column;flex:1;margin-top:10px}.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}.logs-panel li{line-height:20px;display:inline-block}.logs-panel-time{margin-right:10px;color:#adb7c3}.rule-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.rule-provider-header{justify-content:space-between}.rule-provider-header,.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 0 rgba(44,138,248,.2)}.rule-provider-item:hover{box-shadow:0 0 24px 0 rgba(84,117,154,.4)}.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 linear infinite}@media(max-width:768px){.rule-provider-header{flex-direction:column;align-items:flex-start}.rule-provider-header-part{margin:6px 0}}.rules-card{display:flex;flex-direction:column;flex:1;min-height:700px;margin-top:10px;padding:0}.rules-card:focus{outline:none}.rules-card .rules{flex:1 0 auto}.rule-item{line-height:30px;height:50px;overflow:hidden;list-style:none;user-select:none;border-bottom:1px solid rgba(228,234,239,.5)}.rule-item,.rule-item .rule-item-row{padding:5px 0}.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{cursor:pointer}.rule-item .payload,.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}.rule-proxy-option{display:flex;align-items:center;overflow:hidden}.rule-proxy-option .label{margin-right:5px;height:20px;line-height:20px;padding:0 8px;font-size:10px;border-radius:10px;color:#fff;background:#b7c5d6}.rule-proxy-option .value{line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-card{margin-top:10px;padding:20px 0}.settings-card .column{font-weight:700;align-items:center}.settings-card .value-column{justify-content:flex-end}.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:#2c8af8;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}@media(max-width:768px){.settings-card .row{flex-direction:column;padding-top:0;padding-bottom:0}.settings-card .row>.column{width:100%;margin:10px 0}}.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 rgba(44,138,248,.5)}.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}}.connections-devices{display:flex;padding:8px 2px}.connections-devices-item{padding:4px 0;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{display:flex;flex-direction:column;width:100%;flex-grow:1;flex-basis:0;overflow:auto}.connections-card .connections-body{flex:1 0 auto}.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:translateX(-2px);width:2px;height:100%;background-color:rgba(144,147,153,.6)}.connections-card .connections-header{position:sticky;top:0;z-index:9999;white-space:nowrap}.connections-card .connections-header:hover .connections-resizer{opacity:1}.connections-card .connetions-item{height:36px}.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.center{text-align:center}.connections-card .connections-block.completed{background-color:#e9eef4;color:rgba(84,117,154,.5)}.connections-card .connections-block.fixed{position:sticky;left:0;z-index:999;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)}.connections-filter.total{flex:1;cursor:unset}.external-controller .row{padding:0}.external-controller .alert{margin:10px 0}.external-controller .form,.external-controller .title{margin:15px 0}.external-controller .title{margin-top:15px;font-size:14px;font-weight:700}@media(max-width:768px){.external-controller .row{flex-direction:column;align-items:flex-start}.external-controller .form,.external-controller .title{margin:5px 0}.external-controller .column{width:100%}.external-controller .alert{display:none}} \ No newline at end of file +@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:""}.icon-healthcheck:before{content:""}.icon-speed:before{content:""}.icon-close:before{content:""}.icon-drag:before{content:""}.icon-down-arrow-o:before{content:""}.icon-check:before{content:""}.icon-plus:before{content:""}.icon-triangle-up:before{content:""}.icon-triangle-down:before{content:""}.icon-up-arrow-o:before{content:""}.icon-info:before{content:""}.icon-info-o:before{content:""}.icon-setting:before{content:""}.icon-show:before{content:""}.icon-hide:before{content:""}.icon-sort:before{content:""}.icon-sort-descending:before{content:""}.icon-sort-ascending:before{content:""}.icon-close-all:before{content:""}html{box-sizing:border-box;background:hsla(0,0%,100%,.8);overflow:hidden}*,:after,:before{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%}}.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}.operations{display:flex;flex:1;align-items:center;justify-content:flex-end}@media(max-width:768px){.header>h1{font-size:20px}}.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:translateX(16px)}.switch.disabled{cursor:not-allowed;background-color:#b7c5d6}.switch.disabled:after{box-shadow:0 0 8px rgba(144,147,153,.5)}.switch.checked.disabled,.switch.disabled:after{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 rgba(44,138,248,.4);transition:transform .3s ease;transform:translateX(-2px)}.switch-icon{position:absolute;transform:translateX(-1px) scale(.4);color:#fff;line-height:16px}.card{padding:15px;box-shadow:2px 5px 20px -3px rgba(44,138,248,.18);background-color:#fff;border-radius:4px}.row{width:100%;display:flex;flex-direction:row}.row-gutter-1{padding:12px 6px}.row-gutter-1 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-1 .column-span-1{width:100%}.row-gutter-1 .column-offset-1{margin-left:100%}.row-gutter-1 .column-span-2{width:200%}.row-gutter-1 .column-offset-2{margin-left:200%}.row-gutter-1 .column-span-3{width:300%}.row-gutter-1 .column-offset-3{margin-left:300%}.row-gutter-1 .column-span-4{width:400%}.row-gutter-1 .column-offset-4{margin-left:400%}.row-gutter-1 .column-span-5{width:500%}.row-gutter-1 .column-offset-5{margin-left:500%}.row-gutter-1 .column-span-6{width:600%}.row-gutter-1 .column-offset-6{margin-left:600%}.row-gutter-1 .column-span-7{width:700%}.row-gutter-1 .column-offset-7{margin-left:700%}.row-gutter-1 .column-span-8{width:800%}.row-gutter-1 .column-offset-8{margin-left:800%}.row-gutter-1 .column-span-9{width:900%}.row-gutter-1 .column-offset-9{margin-left:900%}.row-gutter-1 .column-span-10{width:1000%}.row-gutter-1 .column-offset-10{margin-left:1000%}.row-gutter-1 .column-span-11{width:1100%}.row-gutter-1 .column-offset-11{margin-left:1100%}.row-gutter-1 .column-span-12{width:1200%}.row-gutter-1 .column-offset-12{margin-left:1200%}.row-gutter-1 .column-span-13{width:1300%}.row-gutter-1 .column-offset-13{margin-left:1300%}.row-gutter-1 .column-span-14{width:1400%}.row-gutter-1 .column-offset-14{margin-left:1400%}.row-gutter-1 .column-span-15{width:1500%}.row-gutter-1 .column-offset-15{margin-left:1500%}.row-gutter-1 .column-span-16{width:1600%}.row-gutter-1 .column-offset-16{margin-left:1600%}.row-gutter-1 .column-span-17{width:1700%}.row-gutter-1 .column-offset-17{margin-left:1700%}.row-gutter-1 .column-span-18{width:1800%}.row-gutter-1 .column-offset-18{margin-left:1800%}.row-gutter-1 .column-span-19{width:1900%}.row-gutter-1 .column-offset-19{margin-left:1900%}.row-gutter-1 .column-span-20{width:2000%}.row-gutter-1 .column-offset-20{margin-left:2000%}.row-gutter-1 .column-span-21{width:2100%}.row-gutter-1 .column-offset-21{margin-left:2100%}.row-gutter-1 .column-span-22{width:2200%}.row-gutter-1 .column-offset-22{margin-left:2200%}.row-gutter-1 .column-span-23{width:2300%}.row-gutter-1 .column-offset-23{margin-left:2300%}.row-gutter-1 .column-span-24{width:2400%}.row-gutter-1 .column-offset-24{margin-left:2400%}.row-gutter-2{padding:12px 6px}.row-gutter-2 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-2 .column-span-1{width:50%}.row-gutter-2 .column-offset-1{margin-left:50%}.row-gutter-2 .column-span-2{width:100%}.row-gutter-2 .column-offset-2{margin-left:100%}.row-gutter-2 .column-span-3{width:150%}.row-gutter-2 .column-offset-3{margin-left:150%}.row-gutter-2 .column-span-4{width:200%}.row-gutter-2 .column-offset-4{margin-left:200%}.row-gutter-2 .column-span-5{width:250%}.row-gutter-2 .column-offset-5{margin-left:250%}.row-gutter-2 .column-span-6{width:300%}.row-gutter-2 .column-offset-6{margin-left:300%}.row-gutter-2 .column-span-7{width:350%}.row-gutter-2 .column-offset-7{margin-left:350%}.row-gutter-2 .column-span-8{width:400%}.row-gutter-2 .column-offset-8{margin-left:400%}.row-gutter-2 .column-span-9{width:450%}.row-gutter-2 .column-offset-9{margin-left:450%}.row-gutter-2 .column-span-10{width:500%}.row-gutter-2 .column-offset-10{margin-left:500%}.row-gutter-2 .column-span-11{width:550%}.row-gutter-2 .column-offset-11{margin-left:550%}.row-gutter-2 .column-span-12{width:600%}.row-gutter-2 .column-offset-12{margin-left:600%}.row-gutter-2 .column-span-13{width:650%}.row-gutter-2 .column-offset-13{margin-left:650%}.row-gutter-2 .column-span-14{width:700%}.row-gutter-2 .column-offset-14{margin-left:700%}.row-gutter-2 .column-span-15{width:750%}.row-gutter-2 .column-offset-15{margin-left:750%}.row-gutter-2 .column-span-16{width:800%}.row-gutter-2 .column-offset-16{margin-left:800%}.row-gutter-2 .column-span-17{width:850%}.row-gutter-2 .column-offset-17{margin-left:850%}.row-gutter-2 .column-span-18{width:900%}.row-gutter-2 .column-offset-18{margin-left:900%}.row-gutter-2 .column-span-19{width:950%}.row-gutter-2 .column-offset-19{margin-left:950%}.row-gutter-2 .column-span-20{width:1000%}.row-gutter-2 .column-offset-20{margin-left:1000%}.row-gutter-2 .column-span-21{width:1050%}.row-gutter-2 .column-offset-21{margin-left:1050%}.row-gutter-2 .column-span-22{width:1100%}.row-gutter-2 .column-offset-22{margin-left:1100%}.row-gutter-2 .column-span-23{width:1150%}.row-gutter-2 .column-offset-23{margin-left:1150%}.row-gutter-2 .column-span-24{width:1200%}.row-gutter-2 .column-offset-24{margin-left:1200%}.row-gutter-3{padding:12px 6px}.row-gutter-3 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-3 .column-span-1{width:33.3333333333%}.row-gutter-3 .column-offset-1{margin-left:33.3333333333%}.row-gutter-3 .column-span-2{width:66.6666666667%}.row-gutter-3 .column-offset-2{margin-left:66.6666666667%}.row-gutter-3 .column-span-3{width:100%}.row-gutter-3 .column-offset-3{margin-left:100%}.row-gutter-3 .column-span-4{width:133.3333333333%}.row-gutter-3 .column-offset-4{margin-left:133.3333333333%}.row-gutter-3 .column-span-5{width:166.6666666667%}.row-gutter-3 .column-offset-5{margin-left:166.6666666667%}.row-gutter-3 .column-span-6{width:200%}.row-gutter-3 .column-offset-6{margin-left:200%}.row-gutter-3 .column-span-7{width:233.3333333333%}.row-gutter-3 .column-offset-7{margin-left:233.3333333333%}.row-gutter-3 .column-span-8{width:266.6666666667%}.row-gutter-3 .column-offset-8{margin-left:266.6666666667%}.row-gutter-3 .column-span-9{width:300%}.row-gutter-3 .column-offset-9{margin-left:300%}.row-gutter-3 .column-span-10{width:333.3333333333%}.row-gutter-3 .column-offset-10{margin-left:333.3333333333%}.row-gutter-3 .column-span-11{width:366.6666666667%}.row-gutter-3 .column-offset-11{margin-left:366.6666666667%}.row-gutter-3 .column-span-12{width:400%}.row-gutter-3 .column-offset-12{margin-left:400%}.row-gutter-3 .column-span-13{width:433.3333333333%}.row-gutter-3 .column-offset-13{margin-left:433.3333333333%}.row-gutter-3 .column-span-14{width:466.6666666667%}.row-gutter-3 .column-offset-14{margin-left:466.6666666667%}.row-gutter-3 .column-span-15{width:500%}.row-gutter-3 .column-offset-15{margin-left:500%}.row-gutter-3 .column-span-16{width:533.3333333333%}.row-gutter-3 .column-offset-16{margin-left:533.3333333333%}.row-gutter-3 .column-span-17{width:566.6666666667%}.row-gutter-3 .column-offset-17{margin-left:566.6666666667%}.row-gutter-3 .column-span-18{width:600%}.row-gutter-3 .column-offset-18{margin-left:600%}.row-gutter-3 .column-span-19{width:633.3333333333%}.row-gutter-3 .column-offset-19{margin-left:633.3333333333%}.row-gutter-3 .column-span-20{width:666.6666666667%}.row-gutter-3 .column-offset-20{margin-left:666.6666666667%}.row-gutter-3 .column-span-21{width:700%}.row-gutter-3 .column-offset-21{margin-left:700%}.row-gutter-3 .column-span-22{width:733.3333333333%}.row-gutter-3 .column-offset-22{margin-left:733.3333333333%}.row-gutter-3 .column-span-23{width:766.6666666667%}.row-gutter-3 .column-offset-23{margin-left:766.6666666667%}.row-gutter-3 .column-span-24{width:800%}.row-gutter-3 .column-offset-24{margin-left:800%}.row-gutter-4{padding:12px 6px}.row-gutter-4 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-4 .column-span-1{width:25%}.row-gutter-4 .column-offset-1{margin-left:25%}.row-gutter-4 .column-span-2{width:50%}.row-gutter-4 .column-offset-2{margin-left:50%}.row-gutter-4 .column-span-3{width:75%}.row-gutter-4 .column-offset-3{margin-left:75%}.row-gutter-4 .column-span-4{width:100%}.row-gutter-4 .column-offset-4{margin-left:100%}.row-gutter-4 .column-span-5{width:125%}.row-gutter-4 .column-offset-5{margin-left:125%}.row-gutter-4 .column-span-6{width:150%}.row-gutter-4 .column-offset-6{margin-left:150%}.row-gutter-4 .column-span-7{width:175%}.row-gutter-4 .column-offset-7{margin-left:175%}.row-gutter-4 .column-span-8{width:200%}.row-gutter-4 .column-offset-8{margin-left:200%}.row-gutter-4 .column-span-9{width:225%}.row-gutter-4 .column-offset-9{margin-left:225%}.row-gutter-4 .column-span-10{width:250%}.row-gutter-4 .column-offset-10{margin-left:250%}.row-gutter-4 .column-span-11{width:275%}.row-gutter-4 .column-offset-11{margin-left:275%}.row-gutter-4 .column-span-12{width:300%}.row-gutter-4 .column-offset-12{margin-left:300%}.row-gutter-4 .column-span-13{width:325%}.row-gutter-4 .column-offset-13{margin-left:325%}.row-gutter-4 .column-span-14{width:350%}.row-gutter-4 .column-offset-14{margin-left:350%}.row-gutter-4 .column-span-15{width:375%}.row-gutter-4 .column-offset-15{margin-left:375%}.row-gutter-4 .column-span-16{width:400%}.row-gutter-4 .column-offset-16{margin-left:400%}.row-gutter-4 .column-span-17{width:425%}.row-gutter-4 .column-offset-17{margin-left:425%}.row-gutter-4 .column-span-18{width:450%}.row-gutter-4 .column-offset-18{margin-left:450%}.row-gutter-4 .column-span-19{width:475%}.row-gutter-4 .column-offset-19{margin-left:475%}.row-gutter-4 .column-span-20{width:500%}.row-gutter-4 .column-offset-20{margin-left:500%}.row-gutter-4 .column-span-21{width:525%}.row-gutter-4 .column-offset-21{margin-left:525%}.row-gutter-4 .column-span-22{width:550%}.row-gutter-4 .column-offset-22{margin-left:550%}.row-gutter-4 .column-span-23{width:575%}.row-gutter-4 .column-offset-23{margin-left:575%}.row-gutter-4 .column-span-24{width:600%}.row-gutter-4 .column-offset-24{margin-left:600%}.row-gutter-5{padding:12px 6px}.row-gutter-5 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-5 .column-span-1{width:20%}.row-gutter-5 .column-offset-1{margin-left:20%}.row-gutter-5 .column-span-2{width:40%}.row-gutter-5 .column-offset-2{margin-left:40%}.row-gutter-5 .column-span-3{width:60%}.row-gutter-5 .column-offset-3{margin-left:60%}.row-gutter-5 .column-span-4{width:80%}.row-gutter-5 .column-offset-4{margin-left:80%}.row-gutter-5 .column-span-5{width:100%}.row-gutter-5 .column-offset-5{margin-left:100%}.row-gutter-5 .column-span-6{width:120%}.row-gutter-5 .column-offset-6{margin-left:120%}.row-gutter-5 .column-span-7{width:140%}.row-gutter-5 .column-offset-7{margin-left:140%}.row-gutter-5 .column-span-8{width:160%}.row-gutter-5 .column-offset-8{margin-left:160%}.row-gutter-5 .column-span-9{width:180%}.row-gutter-5 .column-offset-9{margin-left:180%}.row-gutter-5 .column-span-10{width:200%}.row-gutter-5 .column-offset-10{margin-left:200%}.row-gutter-5 .column-span-11{width:220%}.row-gutter-5 .column-offset-11{margin-left:220%}.row-gutter-5 .column-span-12{width:240%}.row-gutter-5 .column-offset-12{margin-left:240%}.row-gutter-5 .column-span-13{width:260%}.row-gutter-5 .column-offset-13{margin-left:260%}.row-gutter-5 .column-span-14{width:280%}.row-gutter-5 .column-offset-14{margin-left:280%}.row-gutter-5 .column-span-15{width:300%}.row-gutter-5 .column-offset-15{margin-left:300%}.row-gutter-5 .column-span-16{width:320%}.row-gutter-5 .column-offset-16{margin-left:320%}.row-gutter-5 .column-span-17{width:340%}.row-gutter-5 .column-offset-17{margin-left:340%}.row-gutter-5 .column-span-18{width:360%}.row-gutter-5 .column-offset-18{margin-left:360%}.row-gutter-5 .column-span-19{width:380%}.row-gutter-5 .column-offset-19{margin-left:380%}.row-gutter-5 .column-span-20{width:400%}.row-gutter-5 .column-offset-20{margin-left:400%}.row-gutter-5 .column-span-21{width:420%}.row-gutter-5 .column-offset-21{margin-left:420%}.row-gutter-5 .column-span-22{width:440%}.row-gutter-5 .column-offset-22{margin-left:440%}.row-gutter-5 .column-span-23{width:460%}.row-gutter-5 .column-offset-23{margin-left:460%}.row-gutter-5 .column-span-24{width:480%}.row-gutter-5 .column-offset-24{margin-left:480%}.row-gutter-6{padding:12px 6px}.row-gutter-6 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-6 .column-span-1{width:16.6666666667%}.row-gutter-6 .column-offset-1{margin-left:16.6666666667%}.row-gutter-6 .column-span-2{width:33.3333333333%}.row-gutter-6 .column-offset-2{margin-left:33.3333333333%}.row-gutter-6 .column-span-3{width:50%}.row-gutter-6 .column-offset-3{margin-left:50%}.row-gutter-6 .column-span-4{width:66.6666666667%}.row-gutter-6 .column-offset-4{margin-left:66.6666666667%}.row-gutter-6 .column-span-5{width:83.3333333333%}.row-gutter-6 .column-offset-5{margin-left:83.3333333333%}.row-gutter-6 .column-span-6{width:100%}.row-gutter-6 .column-offset-6{margin-left:100%}.row-gutter-6 .column-span-7{width:116.6666666667%}.row-gutter-6 .column-offset-7{margin-left:116.6666666667%}.row-gutter-6 .column-span-8{width:133.3333333333%}.row-gutter-6 .column-offset-8{margin-left:133.3333333333%}.row-gutter-6 .column-span-9{width:150%}.row-gutter-6 .column-offset-9{margin-left:150%}.row-gutter-6 .column-span-10{width:166.6666666667%}.row-gutter-6 .column-offset-10{margin-left:166.6666666667%}.row-gutter-6 .column-span-11{width:183.3333333333%}.row-gutter-6 .column-offset-11{margin-left:183.3333333333%}.row-gutter-6 .column-span-12{width:200%}.row-gutter-6 .column-offset-12{margin-left:200%}.row-gutter-6 .column-span-13{width:216.6666666667%}.row-gutter-6 .column-offset-13{margin-left:216.6666666667%}.row-gutter-6 .column-span-14{width:233.3333333333%}.row-gutter-6 .column-offset-14{margin-left:233.3333333333%}.row-gutter-6 .column-span-15{width:250%}.row-gutter-6 .column-offset-15{margin-left:250%}.row-gutter-6 .column-span-16{width:266.6666666667%}.row-gutter-6 .column-offset-16{margin-left:266.6666666667%}.row-gutter-6 .column-span-17{width:283.3333333333%}.row-gutter-6 .column-offset-17{margin-left:283.3333333333%}.row-gutter-6 .column-span-18{width:300%}.row-gutter-6 .column-offset-18{margin-left:300%}.row-gutter-6 .column-span-19{width:316.6666666667%}.row-gutter-6 .column-offset-19{margin-left:316.6666666667%}.row-gutter-6 .column-span-20{width:333.3333333333%}.row-gutter-6 .column-offset-20{margin-left:333.3333333333%}.row-gutter-6 .column-span-21{width:350%}.row-gutter-6 .column-offset-21{margin-left:350%}.row-gutter-6 .column-span-22{width:366.6666666667%}.row-gutter-6 .column-offset-22{margin-left:366.6666666667%}.row-gutter-6 .column-span-23{width:383.3333333333%}.row-gutter-6 .column-offset-23{margin-left:383.3333333333%}.row-gutter-6 .column-span-24{width:400%}.row-gutter-6 .column-offset-24{margin-left:400%}.row-gutter-7{padding:12px 6px}.row-gutter-7 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-7 .column-span-1{width:14.2857142857%}.row-gutter-7 .column-offset-1{margin-left:14.2857142857%}.row-gutter-7 .column-span-2{width:28.5714285714%}.row-gutter-7 .column-offset-2{margin-left:28.5714285714%}.row-gutter-7 .column-span-3{width:42.8571428571%}.row-gutter-7 .column-offset-3{margin-left:42.8571428571%}.row-gutter-7 .column-span-4{width:57.1428571429%}.row-gutter-7 .column-offset-4{margin-left:57.1428571429%}.row-gutter-7 .column-span-5{width:71.4285714286%}.row-gutter-7 .column-offset-5{margin-left:71.4285714286%}.row-gutter-7 .column-span-6{width:85.7142857143%}.row-gutter-7 .column-offset-6{margin-left:85.7142857143%}.row-gutter-7 .column-span-7{width:100%}.row-gutter-7 .column-offset-7{margin-left:100%}.row-gutter-7 .column-span-8{width:114.2857142857%}.row-gutter-7 .column-offset-8{margin-left:114.2857142857%}.row-gutter-7 .column-span-9{width:128.5714285714%}.row-gutter-7 .column-offset-9{margin-left:128.5714285714%}.row-gutter-7 .column-span-10{width:142.8571428571%}.row-gutter-7 .column-offset-10{margin-left:142.8571428571%}.row-gutter-7 .column-span-11{width:157.1428571429%}.row-gutter-7 .column-offset-11{margin-left:157.1428571429%}.row-gutter-7 .column-span-12{width:171.4285714286%}.row-gutter-7 .column-offset-12{margin-left:171.4285714286%}.row-gutter-7 .column-span-13{width:185.7142857143%}.row-gutter-7 .column-offset-13{margin-left:185.7142857143%}.row-gutter-7 .column-span-14{width:200%}.row-gutter-7 .column-offset-14{margin-left:200%}.row-gutter-7 .column-span-15{width:214.2857142857%}.row-gutter-7 .column-offset-15{margin-left:214.2857142857%}.row-gutter-7 .column-span-16{width:228.5714285714%}.row-gutter-7 .column-offset-16{margin-left:228.5714285714%}.row-gutter-7 .column-span-17{width:242.8571428571%}.row-gutter-7 .column-offset-17{margin-left:242.8571428571%}.row-gutter-7 .column-span-18{width:257.1428571429%}.row-gutter-7 .column-offset-18{margin-left:257.1428571429%}.row-gutter-7 .column-span-19{width:271.4285714286%}.row-gutter-7 .column-offset-19{margin-left:271.4285714286%}.row-gutter-7 .column-span-20{width:285.7142857143%}.row-gutter-7 .column-offset-20{margin-left:285.7142857143%}.row-gutter-7 .column-span-21{width:300%}.row-gutter-7 .column-offset-21{margin-left:300%}.row-gutter-7 .column-span-22{width:314.2857142857%}.row-gutter-7 .column-offset-22{margin-left:314.2857142857%}.row-gutter-7 .column-span-23{width:328.5714285714%}.row-gutter-7 .column-offset-23{margin-left:328.5714285714%}.row-gutter-7 .column-span-24{width:342.8571428571%}.row-gutter-7 .column-offset-24{margin-left:342.8571428571%}.row-gutter-8{padding:12px 6px}.row-gutter-8 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-8 .column-span-1{width:12.5%}.row-gutter-8 .column-offset-1{margin-left:12.5%}.row-gutter-8 .column-span-2{width:25%}.row-gutter-8 .column-offset-2{margin-left:25%}.row-gutter-8 .column-span-3{width:37.5%}.row-gutter-8 .column-offset-3{margin-left:37.5%}.row-gutter-8 .column-span-4{width:50%}.row-gutter-8 .column-offset-4{margin-left:50%}.row-gutter-8 .column-span-5{width:62.5%}.row-gutter-8 .column-offset-5{margin-left:62.5%}.row-gutter-8 .column-span-6{width:75%}.row-gutter-8 .column-offset-6{margin-left:75%}.row-gutter-8 .column-span-7{width:87.5%}.row-gutter-8 .column-offset-7{margin-left:87.5%}.row-gutter-8 .column-span-8{width:100%}.row-gutter-8 .column-offset-8{margin-left:100%}.row-gutter-8 .column-span-9{width:112.5%}.row-gutter-8 .column-offset-9{margin-left:112.5%}.row-gutter-8 .column-span-10{width:125%}.row-gutter-8 .column-offset-10{margin-left:125%}.row-gutter-8 .column-span-11{width:137.5%}.row-gutter-8 .column-offset-11{margin-left:137.5%}.row-gutter-8 .column-span-12{width:150%}.row-gutter-8 .column-offset-12{margin-left:150%}.row-gutter-8 .column-span-13{width:162.5%}.row-gutter-8 .column-offset-13{margin-left:162.5%}.row-gutter-8 .column-span-14{width:175%}.row-gutter-8 .column-offset-14{margin-left:175%}.row-gutter-8 .column-span-15{width:187.5%}.row-gutter-8 .column-offset-15{margin-left:187.5%}.row-gutter-8 .column-span-16{width:200%}.row-gutter-8 .column-offset-16{margin-left:200%}.row-gutter-8 .column-span-17{width:212.5%}.row-gutter-8 .column-offset-17{margin-left:212.5%}.row-gutter-8 .column-span-18{width:225%}.row-gutter-8 .column-offset-18{margin-left:225%}.row-gutter-8 .column-span-19{width:237.5%}.row-gutter-8 .column-offset-19{margin-left:237.5%}.row-gutter-8 .column-span-20{width:250%}.row-gutter-8 .column-offset-20{margin-left:250%}.row-gutter-8 .column-span-21{width:262.5%}.row-gutter-8 .column-offset-21{margin-left:262.5%}.row-gutter-8 .column-span-22{width:275%}.row-gutter-8 .column-offset-22{margin-left:275%}.row-gutter-8 .column-span-23{width:287.5%}.row-gutter-8 .column-offset-23{margin-left:287.5%}.row-gutter-8 .column-span-24{width:300%}.row-gutter-8 .column-offset-24{margin-left:300%}.row-gutter-9{padding:12px 6px}.row-gutter-9 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-9 .column-span-1{width:11.1111111111%}.row-gutter-9 .column-offset-1{margin-left:11.1111111111%}.row-gutter-9 .column-span-2{width:22.2222222222%}.row-gutter-9 .column-offset-2{margin-left:22.2222222222%}.row-gutter-9 .column-span-3{width:33.3333333333%}.row-gutter-9 .column-offset-3{margin-left:33.3333333333%}.row-gutter-9 .column-span-4{width:44.4444444444%}.row-gutter-9 .column-offset-4{margin-left:44.4444444444%}.row-gutter-9 .column-span-5{width:55.5555555556%}.row-gutter-9 .column-offset-5{margin-left:55.5555555556%}.row-gutter-9 .column-span-6{width:66.6666666667%}.row-gutter-9 .column-offset-6{margin-left:66.6666666667%}.row-gutter-9 .column-span-7{width:77.7777777778%}.row-gutter-9 .column-offset-7{margin-left:77.7777777778%}.row-gutter-9 .column-span-8{width:88.8888888889%}.row-gutter-9 .column-offset-8{margin-left:88.8888888889%}.row-gutter-9 .column-span-9{width:100%}.row-gutter-9 .column-offset-9{margin-left:100%}.row-gutter-9 .column-span-10{width:111.1111111111%}.row-gutter-9 .column-offset-10{margin-left:111.1111111111%}.row-gutter-9 .column-span-11{width:122.2222222222%}.row-gutter-9 .column-offset-11{margin-left:122.2222222222%}.row-gutter-9 .column-span-12{width:133.3333333333%}.row-gutter-9 .column-offset-12{margin-left:133.3333333333%}.row-gutter-9 .column-span-13{width:144.4444444444%}.row-gutter-9 .column-offset-13{margin-left:144.4444444444%}.row-gutter-9 .column-span-14{width:155.5555555556%}.row-gutter-9 .column-offset-14{margin-left:155.5555555556%}.row-gutter-9 .column-span-15{width:166.6666666667%}.row-gutter-9 .column-offset-15{margin-left:166.6666666667%}.row-gutter-9 .column-span-16{width:177.7777777778%}.row-gutter-9 .column-offset-16{margin-left:177.7777777778%}.row-gutter-9 .column-span-17{width:188.8888888889%}.row-gutter-9 .column-offset-17{margin-left:188.8888888889%}.row-gutter-9 .column-span-18{width:200%}.row-gutter-9 .column-offset-18{margin-left:200%}.row-gutter-9 .column-span-19{width:211.1111111111%}.row-gutter-9 .column-offset-19{margin-left:211.1111111111%}.row-gutter-9 .column-span-20{width:222.2222222222%}.row-gutter-9 .column-offset-20{margin-left:222.2222222222%}.row-gutter-9 .column-span-21{width:233.3333333333%}.row-gutter-9 .column-offset-21{margin-left:233.3333333333%}.row-gutter-9 .column-span-22{width:244.4444444444%}.row-gutter-9 .column-offset-22{margin-left:244.4444444444%}.row-gutter-9 .column-span-23{width:255.5555555556%}.row-gutter-9 .column-offset-23{margin-left:255.5555555556%}.row-gutter-9 .column-span-24{width:266.6666666667%}.row-gutter-9 .column-offset-24{margin-left:266.6666666667%}.row-gutter-10{padding:12px 6px}.row-gutter-10 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-10 .column-span-1{width:10%}.row-gutter-10 .column-offset-1{margin-left:10%}.row-gutter-10 .column-span-2{width:20%}.row-gutter-10 .column-offset-2{margin-left:20%}.row-gutter-10 .column-span-3{width:30%}.row-gutter-10 .column-offset-3{margin-left:30%}.row-gutter-10 .column-span-4{width:40%}.row-gutter-10 .column-offset-4{margin-left:40%}.row-gutter-10 .column-span-5{width:50%}.row-gutter-10 .column-offset-5{margin-left:50%}.row-gutter-10 .column-span-6{width:60%}.row-gutter-10 .column-offset-6{margin-left:60%}.row-gutter-10 .column-span-7{width:70%}.row-gutter-10 .column-offset-7{margin-left:70%}.row-gutter-10 .column-span-8{width:80%}.row-gutter-10 .column-offset-8{margin-left:80%}.row-gutter-10 .column-span-9{width:90%}.row-gutter-10 .column-offset-9{margin-left:90%}.row-gutter-10 .column-span-10{width:100%}.row-gutter-10 .column-offset-10{margin-left:100%}.row-gutter-10 .column-span-11{width:110%}.row-gutter-10 .column-offset-11{margin-left:110%}.row-gutter-10 .column-span-12{width:120%}.row-gutter-10 .column-offset-12{margin-left:120%}.row-gutter-10 .column-span-13{width:130%}.row-gutter-10 .column-offset-13{margin-left:130%}.row-gutter-10 .column-span-14{width:140%}.row-gutter-10 .column-offset-14{margin-left:140%}.row-gutter-10 .column-span-15{width:150%}.row-gutter-10 .column-offset-15{margin-left:150%}.row-gutter-10 .column-span-16{width:160%}.row-gutter-10 .column-offset-16{margin-left:160%}.row-gutter-10 .column-span-17{width:170%}.row-gutter-10 .column-offset-17{margin-left:170%}.row-gutter-10 .column-span-18{width:180%}.row-gutter-10 .column-offset-18{margin-left:180%}.row-gutter-10 .column-span-19{width:190%}.row-gutter-10 .column-offset-19{margin-left:190%}.row-gutter-10 .column-span-20{width:200%}.row-gutter-10 .column-offset-20{margin-left:200%}.row-gutter-10 .column-span-21{width:210%}.row-gutter-10 .column-offset-21{margin-left:210%}.row-gutter-10 .column-span-22{width:220%}.row-gutter-10 .column-offset-22{margin-left:220%}.row-gutter-10 .column-span-23{width:230%}.row-gutter-10 .column-offset-23{margin-left:230%}.row-gutter-10 .column-span-24{width:240%}.row-gutter-10 .column-offset-24{margin-left:240%}.row-gutter-11{padding:12px 6px}.row-gutter-11 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-11 .column-span-1{width:9.0909090909%}.row-gutter-11 .column-offset-1{margin-left:9.0909090909%}.row-gutter-11 .column-span-2{width:18.1818181818%}.row-gutter-11 .column-offset-2{margin-left:18.1818181818%}.row-gutter-11 .column-span-3{width:27.2727272727%}.row-gutter-11 .column-offset-3{margin-left:27.2727272727%}.row-gutter-11 .column-span-4{width:36.3636363636%}.row-gutter-11 .column-offset-4{margin-left:36.3636363636%}.row-gutter-11 .column-span-5{width:45.4545454545%}.row-gutter-11 .column-offset-5{margin-left:45.4545454545%}.row-gutter-11 .column-span-6{width:54.5454545455%}.row-gutter-11 .column-offset-6{margin-left:54.5454545455%}.row-gutter-11 .column-span-7{width:63.6363636364%}.row-gutter-11 .column-offset-7{margin-left:63.6363636364%}.row-gutter-11 .column-span-8{width:72.7272727273%}.row-gutter-11 .column-offset-8{margin-left:72.7272727273%}.row-gutter-11 .column-span-9{width:81.8181818182%}.row-gutter-11 .column-offset-9{margin-left:81.8181818182%}.row-gutter-11 .column-span-10{width:90.9090909091%}.row-gutter-11 .column-offset-10{margin-left:90.9090909091%}.row-gutter-11 .column-span-11{width:100%}.row-gutter-11 .column-offset-11{margin-left:100%}.row-gutter-11 .column-span-12{width:109.0909090909%}.row-gutter-11 .column-offset-12{margin-left:109.0909090909%}.row-gutter-11 .column-span-13{width:118.1818181818%}.row-gutter-11 .column-offset-13{margin-left:118.1818181818%}.row-gutter-11 .column-span-14{width:127.2727272727%}.row-gutter-11 .column-offset-14{margin-left:127.2727272727%}.row-gutter-11 .column-span-15{width:136.3636363636%}.row-gutter-11 .column-offset-15{margin-left:136.3636363636%}.row-gutter-11 .column-span-16{width:145.4545454545%}.row-gutter-11 .column-offset-16{margin-left:145.4545454545%}.row-gutter-11 .column-span-17{width:154.5454545455%}.row-gutter-11 .column-offset-17{margin-left:154.5454545455%}.row-gutter-11 .column-span-18{width:163.6363636364%}.row-gutter-11 .column-offset-18{margin-left:163.6363636364%}.row-gutter-11 .column-span-19{width:172.7272727273%}.row-gutter-11 .column-offset-19{margin-left:172.7272727273%}.row-gutter-11 .column-span-20{width:181.8181818182%}.row-gutter-11 .column-offset-20{margin-left:181.8181818182%}.row-gutter-11 .column-span-21{width:190.9090909091%}.row-gutter-11 .column-offset-21{margin-left:190.9090909091%}.row-gutter-11 .column-span-22{width:200%}.row-gutter-11 .column-offset-22{margin-left:200%}.row-gutter-11 .column-span-23{width:209.0909090909%}.row-gutter-11 .column-offset-23{margin-left:209.0909090909%}.row-gutter-11 .column-span-24{width:218.1818181818%}.row-gutter-11 .column-offset-24{margin-left:218.1818181818%}.row-gutter-12{padding:12px 6px}.row-gutter-12 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-12 .column-span-1{width:8.3333333333%}.row-gutter-12 .column-offset-1{margin-left:8.3333333333%}.row-gutter-12 .column-span-2{width:16.6666666667%}.row-gutter-12 .column-offset-2{margin-left:16.6666666667%}.row-gutter-12 .column-span-3{width:25%}.row-gutter-12 .column-offset-3{margin-left:25%}.row-gutter-12 .column-span-4{width:33.3333333333%}.row-gutter-12 .column-offset-4{margin-left:33.3333333333%}.row-gutter-12 .column-span-5{width:41.6666666667%}.row-gutter-12 .column-offset-5{margin-left:41.6666666667%}.row-gutter-12 .column-span-6{width:50%}.row-gutter-12 .column-offset-6{margin-left:50%}.row-gutter-12 .column-span-7{width:58.3333333333%}.row-gutter-12 .column-offset-7{margin-left:58.3333333333%}.row-gutter-12 .column-span-8{width:66.6666666667%}.row-gutter-12 .column-offset-8{margin-left:66.6666666667%}.row-gutter-12 .column-span-9{width:75%}.row-gutter-12 .column-offset-9{margin-left:75%}.row-gutter-12 .column-span-10{width:83.3333333333%}.row-gutter-12 .column-offset-10{margin-left:83.3333333333%}.row-gutter-12 .column-span-11{width:91.6666666667%}.row-gutter-12 .column-offset-11{margin-left:91.6666666667%}.row-gutter-12 .column-span-12{width:100%}.row-gutter-12 .column-offset-12{margin-left:100%}.row-gutter-12 .column-span-13{width:108.3333333333%}.row-gutter-12 .column-offset-13{margin-left:108.3333333333%}.row-gutter-12 .column-span-14{width:116.6666666667%}.row-gutter-12 .column-offset-14{margin-left:116.6666666667%}.row-gutter-12 .column-span-15{width:125%}.row-gutter-12 .column-offset-15{margin-left:125%}.row-gutter-12 .column-span-16{width:133.3333333333%}.row-gutter-12 .column-offset-16{margin-left:133.3333333333%}.row-gutter-12 .column-span-17{width:141.6666666667%}.row-gutter-12 .column-offset-17{margin-left:141.6666666667%}.row-gutter-12 .column-span-18{width:150%}.row-gutter-12 .column-offset-18{margin-left:150%}.row-gutter-12 .column-span-19{width:158.3333333333%}.row-gutter-12 .column-offset-19{margin-left:158.3333333333%}.row-gutter-12 .column-span-20{width:166.6666666667%}.row-gutter-12 .column-offset-20{margin-left:166.6666666667%}.row-gutter-12 .column-span-21{width:175%}.row-gutter-12 .column-offset-21{margin-left:175%}.row-gutter-12 .column-span-22{width:183.3333333333%}.row-gutter-12 .column-offset-22{margin-left:183.3333333333%}.row-gutter-12 .column-span-23{width:191.6666666667%}.row-gutter-12 .column-offset-23{margin-left:191.6666666667%}.row-gutter-12 .column-span-24{width:200%}.row-gutter-12 .column-offset-24{margin-left:200%}.row-gutter-13{padding:12px 6px}.row-gutter-13 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-13 .column-span-1{width:7.6923076923%}.row-gutter-13 .column-offset-1{margin-left:7.6923076923%}.row-gutter-13 .column-span-2{width:15.3846153846%}.row-gutter-13 .column-offset-2{margin-left:15.3846153846%}.row-gutter-13 .column-span-3{width:23.0769230769%}.row-gutter-13 .column-offset-3{margin-left:23.0769230769%}.row-gutter-13 .column-span-4{width:30.7692307692%}.row-gutter-13 .column-offset-4{margin-left:30.7692307692%}.row-gutter-13 .column-span-5{width:38.4615384615%}.row-gutter-13 .column-offset-5{margin-left:38.4615384615%}.row-gutter-13 .column-span-6{width:46.1538461538%}.row-gutter-13 .column-offset-6{margin-left:46.1538461538%}.row-gutter-13 .column-span-7{width:53.8461538462%}.row-gutter-13 .column-offset-7{margin-left:53.8461538462%}.row-gutter-13 .column-span-8{width:61.5384615385%}.row-gutter-13 .column-offset-8{margin-left:61.5384615385%}.row-gutter-13 .column-span-9{width:69.2307692308%}.row-gutter-13 .column-offset-9{margin-left:69.2307692308%}.row-gutter-13 .column-span-10{width:76.9230769231%}.row-gutter-13 .column-offset-10{margin-left:76.9230769231%}.row-gutter-13 .column-span-11{width:84.6153846154%}.row-gutter-13 .column-offset-11{margin-left:84.6153846154%}.row-gutter-13 .column-span-12{width:92.3076923077%}.row-gutter-13 .column-offset-12{margin-left:92.3076923077%}.row-gutter-13 .column-span-13{width:100%}.row-gutter-13 .column-offset-13{margin-left:100%}.row-gutter-13 .column-span-14{width:107.6923076923%}.row-gutter-13 .column-offset-14{margin-left:107.6923076923%}.row-gutter-13 .column-span-15{width:115.3846153846%}.row-gutter-13 .column-offset-15{margin-left:115.3846153846%}.row-gutter-13 .column-span-16{width:123.0769230769%}.row-gutter-13 .column-offset-16{margin-left:123.0769230769%}.row-gutter-13 .column-span-17{width:130.7692307692%}.row-gutter-13 .column-offset-17{margin-left:130.7692307692%}.row-gutter-13 .column-span-18{width:138.4615384615%}.row-gutter-13 .column-offset-18{margin-left:138.4615384615%}.row-gutter-13 .column-span-19{width:146.1538461538%}.row-gutter-13 .column-offset-19{margin-left:146.1538461538%}.row-gutter-13 .column-span-20{width:153.8461538462%}.row-gutter-13 .column-offset-20{margin-left:153.8461538462%}.row-gutter-13 .column-span-21{width:161.5384615385%}.row-gutter-13 .column-offset-21{margin-left:161.5384615385%}.row-gutter-13 .column-span-22{width:169.2307692308%}.row-gutter-13 .column-offset-22{margin-left:169.2307692308%}.row-gutter-13 .column-span-23{width:176.9230769231%}.row-gutter-13 .column-offset-23{margin-left:176.9230769231%}.row-gutter-13 .column-span-24{width:184.6153846154%}.row-gutter-13 .column-offset-24{margin-left:184.6153846154%}.row-gutter-14{padding:12px 6px}.row-gutter-14 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-14 .column-span-1{width:7.1428571429%}.row-gutter-14 .column-offset-1{margin-left:7.1428571429%}.row-gutter-14 .column-span-2{width:14.2857142857%}.row-gutter-14 .column-offset-2{margin-left:14.2857142857%}.row-gutter-14 .column-span-3{width:21.4285714286%}.row-gutter-14 .column-offset-3{margin-left:21.4285714286%}.row-gutter-14 .column-span-4{width:28.5714285714%}.row-gutter-14 .column-offset-4{margin-left:28.5714285714%}.row-gutter-14 .column-span-5{width:35.7142857143%}.row-gutter-14 .column-offset-5{margin-left:35.7142857143%}.row-gutter-14 .column-span-6{width:42.8571428571%}.row-gutter-14 .column-offset-6{margin-left:42.8571428571%}.row-gutter-14 .column-span-7{width:50%}.row-gutter-14 .column-offset-7{margin-left:50%}.row-gutter-14 .column-span-8{width:57.1428571429%}.row-gutter-14 .column-offset-8{margin-left:57.1428571429%}.row-gutter-14 .column-span-9{width:64.2857142857%}.row-gutter-14 .column-offset-9{margin-left:64.2857142857%}.row-gutter-14 .column-span-10{width:71.4285714286%}.row-gutter-14 .column-offset-10{margin-left:71.4285714286%}.row-gutter-14 .column-span-11{width:78.5714285714%}.row-gutter-14 .column-offset-11{margin-left:78.5714285714%}.row-gutter-14 .column-span-12{width:85.7142857143%}.row-gutter-14 .column-offset-12{margin-left:85.7142857143%}.row-gutter-14 .column-span-13{width:92.8571428571%}.row-gutter-14 .column-offset-13{margin-left:92.8571428571%}.row-gutter-14 .column-span-14{width:100%}.row-gutter-14 .column-offset-14{margin-left:100%}.row-gutter-14 .column-span-15{width:107.1428571429%}.row-gutter-14 .column-offset-15{margin-left:107.1428571429%}.row-gutter-14 .column-span-16{width:114.2857142857%}.row-gutter-14 .column-offset-16{margin-left:114.2857142857%}.row-gutter-14 .column-span-17{width:121.4285714286%}.row-gutter-14 .column-offset-17{margin-left:121.4285714286%}.row-gutter-14 .column-span-18{width:128.5714285714%}.row-gutter-14 .column-offset-18{margin-left:128.5714285714%}.row-gutter-14 .column-span-19{width:135.7142857143%}.row-gutter-14 .column-offset-19{margin-left:135.7142857143%}.row-gutter-14 .column-span-20{width:142.8571428571%}.row-gutter-14 .column-offset-20{margin-left:142.8571428571%}.row-gutter-14 .column-span-21{width:150%}.row-gutter-14 .column-offset-21{margin-left:150%}.row-gutter-14 .column-span-22{width:157.1428571429%}.row-gutter-14 .column-offset-22{margin-left:157.1428571429%}.row-gutter-14 .column-span-23{width:164.2857142857%}.row-gutter-14 .column-offset-23{margin-left:164.2857142857%}.row-gutter-14 .column-span-24{width:171.4285714286%}.row-gutter-14 .column-offset-24{margin-left:171.4285714286%}.row-gutter-15{padding:12px 6px}.row-gutter-15 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-15 .column-span-1{width:6.6666666667%}.row-gutter-15 .column-offset-1{margin-left:6.6666666667%}.row-gutter-15 .column-span-2{width:13.3333333333%}.row-gutter-15 .column-offset-2{margin-left:13.3333333333%}.row-gutter-15 .column-span-3{width:20%}.row-gutter-15 .column-offset-3{margin-left:20%}.row-gutter-15 .column-span-4{width:26.6666666667%}.row-gutter-15 .column-offset-4{margin-left:26.6666666667%}.row-gutter-15 .column-span-5{width:33.3333333333%}.row-gutter-15 .column-offset-5{margin-left:33.3333333333%}.row-gutter-15 .column-span-6{width:40%}.row-gutter-15 .column-offset-6{margin-left:40%}.row-gutter-15 .column-span-7{width:46.6666666667%}.row-gutter-15 .column-offset-7{margin-left:46.6666666667%}.row-gutter-15 .column-span-8{width:53.3333333333%}.row-gutter-15 .column-offset-8{margin-left:53.3333333333%}.row-gutter-15 .column-span-9{width:60%}.row-gutter-15 .column-offset-9{margin-left:60%}.row-gutter-15 .column-span-10{width:66.6666666667%}.row-gutter-15 .column-offset-10{margin-left:66.6666666667%}.row-gutter-15 .column-span-11{width:73.3333333333%}.row-gutter-15 .column-offset-11{margin-left:73.3333333333%}.row-gutter-15 .column-span-12{width:80%}.row-gutter-15 .column-offset-12{margin-left:80%}.row-gutter-15 .column-span-13{width:86.6666666667%}.row-gutter-15 .column-offset-13{margin-left:86.6666666667%}.row-gutter-15 .column-span-14{width:93.3333333333%}.row-gutter-15 .column-offset-14{margin-left:93.3333333333%}.row-gutter-15 .column-span-15{width:100%}.row-gutter-15 .column-offset-15{margin-left:100%}.row-gutter-15 .column-span-16{width:106.6666666667%}.row-gutter-15 .column-offset-16{margin-left:106.6666666667%}.row-gutter-15 .column-span-17{width:113.3333333333%}.row-gutter-15 .column-offset-17{margin-left:113.3333333333%}.row-gutter-15 .column-span-18{width:120%}.row-gutter-15 .column-offset-18{margin-left:120%}.row-gutter-15 .column-span-19{width:126.6666666667%}.row-gutter-15 .column-offset-19{margin-left:126.6666666667%}.row-gutter-15 .column-span-20{width:133.3333333333%}.row-gutter-15 .column-offset-20{margin-left:133.3333333333%}.row-gutter-15 .column-span-21{width:140%}.row-gutter-15 .column-offset-21{margin-left:140%}.row-gutter-15 .column-span-22{width:146.6666666667%}.row-gutter-15 .column-offset-22{margin-left:146.6666666667%}.row-gutter-15 .column-span-23{width:153.3333333333%}.row-gutter-15 .column-offset-23{margin-left:153.3333333333%}.row-gutter-15 .column-span-24{width:160%}.row-gutter-15 .column-offset-24{margin-left:160%}.row-gutter-16{padding:12px 6px}.row-gutter-16 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-16 .column-span-1{width:6.25%}.row-gutter-16 .column-offset-1{margin-left:6.25%}.row-gutter-16 .column-span-2{width:12.5%}.row-gutter-16 .column-offset-2{margin-left:12.5%}.row-gutter-16 .column-span-3{width:18.75%}.row-gutter-16 .column-offset-3{margin-left:18.75%}.row-gutter-16 .column-span-4{width:25%}.row-gutter-16 .column-offset-4{margin-left:25%}.row-gutter-16 .column-span-5{width:31.25%}.row-gutter-16 .column-offset-5{margin-left:31.25%}.row-gutter-16 .column-span-6{width:37.5%}.row-gutter-16 .column-offset-6{margin-left:37.5%}.row-gutter-16 .column-span-7{width:43.75%}.row-gutter-16 .column-offset-7{margin-left:43.75%}.row-gutter-16 .column-span-8{width:50%}.row-gutter-16 .column-offset-8{margin-left:50%}.row-gutter-16 .column-span-9{width:56.25%}.row-gutter-16 .column-offset-9{margin-left:56.25%}.row-gutter-16 .column-span-10{width:62.5%}.row-gutter-16 .column-offset-10{margin-left:62.5%}.row-gutter-16 .column-span-11{width:68.75%}.row-gutter-16 .column-offset-11{margin-left:68.75%}.row-gutter-16 .column-span-12{width:75%}.row-gutter-16 .column-offset-12{margin-left:75%}.row-gutter-16 .column-span-13{width:81.25%}.row-gutter-16 .column-offset-13{margin-left:81.25%}.row-gutter-16 .column-span-14{width:87.5%}.row-gutter-16 .column-offset-14{margin-left:87.5%}.row-gutter-16 .column-span-15{width:93.75%}.row-gutter-16 .column-offset-15{margin-left:93.75%}.row-gutter-16 .column-span-16{width:100%}.row-gutter-16 .column-offset-16{margin-left:100%}.row-gutter-16 .column-span-17{width:106.25%}.row-gutter-16 .column-offset-17{margin-left:106.25%}.row-gutter-16 .column-span-18{width:112.5%}.row-gutter-16 .column-offset-18{margin-left:112.5%}.row-gutter-16 .column-span-19{width:118.75%}.row-gutter-16 .column-offset-19{margin-left:118.75%}.row-gutter-16 .column-span-20{width:125%}.row-gutter-16 .column-offset-20{margin-left:125%}.row-gutter-16 .column-span-21{width:131.25%}.row-gutter-16 .column-offset-21{margin-left:131.25%}.row-gutter-16 .column-span-22{width:137.5%}.row-gutter-16 .column-offset-22{margin-left:137.5%}.row-gutter-16 .column-span-23{width:143.75%}.row-gutter-16 .column-offset-23{margin-left:143.75%}.row-gutter-16 .column-span-24{width:150%}.row-gutter-16 .column-offset-24{margin-left:150%}.row-gutter-17{padding:12px 6px}.row-gutter-17 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-17 .column-span-1{width:5.8823529412%}.row-gutter-17 .column-offset-1{margin-left:5.8823529412%}.row-gutter-17 .column-span-2{width:11.7647058824%}.row-gutter-17 .column-offset-2{margin-left:11.7647058824%}.row-gutter-17 .column-span-3{width:17.6470588235%}.row-gutter-17 .column-offset-3{margin-left:17.6470588235%}.row-gutter-17 .column-span-4{width:23.5294117647%}.row-gutter-17 .column-offset-4{margin-left:23.5294117647%}.row-gutter-17 .column-span-5{width:29.4117647059%}.row-gutter-17 .column-offset-5{margin-left:29.4117647059%}.row-gutter-17 .column-span-6{width:35.2941176471%}.row-gutter-17 .column-offset-6{margin-left:35.2941176471%}.row-gutter-17 .column-span-7{width:41.1764705882%}.row-gutter-17 .column-offset-7{margin-left:41.1764705882%}.row-gutter-17 .column-span-8{width:47.0588235294%}.row-gutter-17 .column-offset-8{margin-left:47.0588235294%}.row-gutter-17 .column-span-9{width:52.9411764706%}.row-gutter-17 .column-offset-9{margin-left:52.9411764706%}.row-gutter-17 .column-span-10{width:58.8235294118%}.row-gutter-17 .column-offset-10{margin-left:58.8235294118%}.row-gutter-17 .column-span-11{width:64.7058823529%}.row-gutter-17 .column-offset-11{margin-left:64.7058823529%}.row-gutter-17 .column-span-12{width:70.5882352941%}.row-gutter-17 .column-offset-12{margin-left:70.5882352941%}.row-gutter-17 .column-span-13{width:76.4705882353%}.row-gutter-17 .column-offset-13{margin-left:76.4705882353%}.row-gutter-17 .column-span-14{width:82.3529411765%}.row-gutter-17 .column-offset-14{margin-left:82.3529411765%}.row-gutter-17 .column-span-15{width:88.2352941176%}.row-gutter-17 .column-offset-15{margin-left:88.2352941176%}.row-gutter-17 .column-span-16{width:94.1176470588%}.row-gutter-17 .column-offset-16{margin-left:94.1176470588%}.row-gutter-17 .column-span-17{width:100%}.row-gutter-17 .column-offset-17{margin-left:100%}.row-gutter-17 .column-span-18{width:105.8823529412%}.row-gutter-17 .column-offset-18{margin-left:105.8823529412%}.row-gutter-17 .column-span-19{width:111.7647058824%}.row-gutter-17 .column-offset-19{margin-left:111.7647058824%}.row-gutter-17 .column-span-20{width:117.6470588235%}.row-gutter-17 .column-offset-20{margin-left:117.6470588235%}.row-gutter-17 .column-span-21{width:123.5294117647%}.row-gutter-17 .column-offset-21{margin-left:123.5294117647%}.row-gutter-17 .column-span-22{width:129.4117647059%}.row-gutter-17 .column-offset-22{margin-left:129.4117647059%}.row-gutter-17 .column-span-23{width:135.2941176471%}.row-gutter-17 .column-offset-23{margin-left:135.2941176471%}.row-gutter-17 .column-span-24{width:141.1764705882%}.row-gutter-17 .column-offset-24{margin-left:141.1764705882%}.row-gutter-18{padding:12px 6px}.row-gutter-18 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-18 .column-span-1{width:5.5555555556%}.row-gutter-18 .column-offset-1{margin-left:5.5555555556%}.row-gutter-18 .column-span-2{width:11.1111111111%}.row-gutter-18 .column-offset-2{margin-left:11.1111111111%}.row-gutter-18 .column-span-3{width:16.6666666667%}.row-gutter-18 .column-offset-3{margin-left:16.6666666667%}.row-gutter-18 .column-span-4{width:22.2222222222%}.row-gutter-18 .column-offset-4{margin-left:22.2222222222%}.row-gutter-18 .column-span-5{width:27.7777777778%}.row-gutter-18 .column-offset-5{margin-left:27.7777777778%}.row-gutter-18 .column-span-6{width:33.3333333333%}.row-gutter-18 .column-offset-6{margin-left:33.3333333333%}.row-gutter-18 .column-span-7{width:38.8888888889%}.row-gutter-18 .column-offset-7{margin-left:38.8888888889%}.row-gutter-18 .column-span-8{width:44.4444444444%}.row-gutter-18 .column-offset-8{margin-left:44.4444444444%}.row-gutter-18 .column-span-9{width:50%}.row-gutter-18 .column-offset-9{margin-left:50%}.row-gutter-18 .column-span-10{width:55.5555555556%}.row-gutter-18 .column-offset-10{margin-left:55.5555555556%}.row-gutter-18 .column-span-11{width:61.1111111111%}.row-gutter-18 .column-offset-11{margin-left:61.1111111111%}.row-gutter-18 .column-span-12{width:66.6666666667%}.row-gutter-18 .column-offset-12{margin-left:66.6666666667%}.row-gutter-18 .column-span-13{width:72.2222222222%}.row-gutter-18 .column-offset-13{margin-left:72.2222222222%}.row-gutter-18 .column-span-14{width:77.7777777778%}.row-gutter-18 .column-offset-14{margin-left:77.7777777778%}.row-gutter-18 .column-span-15{width:83.3333333333%}.row-gutter-18 .column-offset-15{margin-left:83.3333333333%}.row-gutter-18 .column-span-16{width:88.8888888889%}.row-gutter-18 .column-offset-16{margin-left:88.8888888889%}.row-gutter-18 .column-span-17{width:94.4444444444%}.row-gutter-18 .column-offset-17{margin-left:94.4444444444%}.row-gutter-18 .column-span-18{width:100%}.row-gutter-18 .column-offset-18{margin-left:100%}.row-gutter-18 .column-span-19{width:105.5555555556%}.row-gutter-18 .column-offset-19{margin-left:105.5555555556%}.row-gutter-18 .column-span-20{width:111.1111111111%}.row-gutter-18 .column-offset-20{margin-left:111.1111111111%}.row-gutter-18 .column-span-21{width:116.6666666667%}.row-gutter-18 .column-offset-21{margin-left:116.6666666667%}.row-gutter-18 .column-span-22{width:122.2222222222%}.row-gutter-18 .column-offset-22{margin-left:122.2222222222%}.row-gutter-18 .column-span-23{width:127.7777777778%}.row-gutter-18 .column-offset-23{margin-left:127.7777777778%}.row-gutter-18 .column-span-24{width:133.3333333333%}.row-gutter-18 .column-offset-24{margin-left:133.3333333333%}.row-gutter-19{padding:12px 6px}.row-gutter-19 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-19 .column-span-1{width:5.2631578947%}.row-gutter-19 .column-offset-1{margin-left:5.2631578947%}.row-gutter-19 .column-span-2{width:10.5263157895%}.row-gutter-19 .column-offset-2{margin-left:10.5263157895%}.row-gutter-19 .column-span-3{width:15.7894736842%}.row-gutter-19 .column-offset-3{margin-left:15.7894736842%}.row-gutter-19 .column-span-4{width:21.0526315789%}.row-gutter-19 .column-offset-4{margin-left:21.0526315789%}.row-gutter-19 .column-span-5{width:26.3157894737%}.row-gutter-19 .column-offset-5{margin-left:26.3157894737%}.row-gutter-19 .column-span-6{width:31.5789473684%}.row-gutter-19 .column-offset-6{margin-left:31.5789473684%}.row-gutter-19 .column-span-7{width:36.8421052632%}.row-gutter-19 .column-offset-7{margin-left:36.8421052632%}.row-gutter-19 .column-span-8{width:42.1052631579%}.row-gutter-19 .column-offset-8{margin-left:42.1052631579%}.row-gutter-19 .column-span-9{width:47.3684210526%}.row-gutter-19 .column-offset-9{margin-left:47.3684210526%}.row-gutter-19 .column-span-10{width:52.6315789474%}.row-gutter-19 .column-offset-10{margin-left:52.6315789474%}.row-gutter-19 .column-span-11{width:57.8947368421%}.row-gutter-19 .column-offset-11{margin-left:57.8947368421%}.row-gutter-19 .column-span-12{width:63.1578947368%}.row-gutter-19 .column-offset-12{margin-left:63.1578947368%}.row-gutter-19 .column-span-13{width:68.4210526316%}.row-gutter-19 .column-offset-13{margin-left:68.4210526316%}.row-gutter-19 .column-span-14{width:73.6842105263%}.row-gutter-19 .column-offset-14{margin-left:73.6842105263%}.row-gutter-19 .column-span-15{width:78.9473684211%}.row-gutter-19 .column-offset-15{margin-left:78.9473684211%}.row-gutter-19 .column-span-16{width:84.2105263158%}.row-gutter-19 .column-offset-16{margin-left:84.2105263158%}.row-gutter-19 .column-span-17{width:89.4736842105%}.row-gutter-19 .column-offset-17{margin-left:89.4736842105%}.row-gutter-19 .column-span-18{width:94.7368421053%}.row-gutter-19 .column-offset-18{margin-left:94.7368421053%}.row-gutter-19 .column-span-19{width:100%}.row-gutter-19 .column-offset-19{margin-left:100%}.row-gutter-19 .column-span-20{width:105.2631578947%}.row-gutter-19 .column-offset-20{margin-left:105.2631578947%}.row-gutter-19 .column-span-21{width:110.5263157895%}.row-gutter-19 .column-offset-21{margin-left:110.5263157895%}.row-gutter-19 .column-span-22{width:115.7894736842%}.row-gutter-19 .column-offset-22{margin-left:115.7894736842%}.row-gutter-19 .column-span-23{width:121.0526315789%}.row-gutter-19 .column-offset-23{margin-left:121.0526315789%}.row-gutter-19 .column-span-24{width:126.3157894737%}.row-gutter-19 .column-offset-24{margin-left:126.3157894737%}.row-gutter-20{padding:12px 6px}.row-gutter-20 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-20 .column-span-1{width:5%}.row-gutter-20 .column-offset-1{margin-left:5%}.row-gutter-20 .column-span-2{width:10%}.row-gutter-20 .column-offset-2{margin-left:10%}.row-gutter-20 .column-span-3{width:15%}.row-gutter-20 .column-offset-3{margin-left:15%}.row-gutter-20 .column-span-4{width:20%}.row-gutter-20 .column-offset-4{margin-left:20%}.row-gutter-20 .column-span-5{width:25%}.row-gutter-20 .column-offset-5{margin-left:25%}.row-gutter-20 .column-span-6{width:30%}.row-gutter-20 .column-offset-6{margin-left:30%}.row-gutter-20 .column-span-7{width:35%}.row-gutter-20 .column-offset-7{margin-left:35%}.row-gutter-20 .column-span-8{width:40%}.row-gutter-20 .column-offset-8{margin-left:40%}.row-gutter-20 .column-span-9{width:45%}.row-gutter-20 .column-offset-9{margin-left:45%}.row-gutter-20 .column-span-10{width:50%}.row-gutter-20 .column-offset-10{margin-left:50%}.row-gutter-20 .column-span-11{width:55%}.row-gutter-20 .column-offset-11{margin-left:55%}.row-gutter-20 .column-span-12{width:60%}.row-gutter-20 .column-offset-12{margin-left:60%}.row-gutter-20 .column-span-13{width:65%}.row-gutter-20 .column-offset-13{margin-left:65%}.row-gutter-20 .column-span-14{width:70%}.row-gutter-20 .column-offset-14{margin-left:70%}.row-gutter-20 .column-span-15{width:75%}.row-gutter-20 .column-offset-15{margin-left:75%}.row-gutter-20 .column-span-16{width:80%}.row-gutter-20 .column-offset-16{margin-left:80%}.row-gutter-20 .column-span-17{width:85%}.row-gutter-20 .column-offset-17{margin-left:85%}.row-gutter-20 .column-span-18{width:90%}.row-gutter-20 .column-offset-18{margin-left:90%}.row-gutter-20 .column-span-19{width:95%}.row-gutter-20 .column-offset-19{margin-left:95%}.row-gutter-20 .column-span-20{width:100%}.row-gutter-20 .column-offset-20{margin-left:100%}.row-gutter-20 .column-span-21{width:105%}.row-gutter-20 .column-offset-21{margin-left:105%}.row-gutter-20 .column-span-22{width:110%}.row-gutter-20 .column-offset-22{margin-left:110%}.row-gutter-20 .column-span-23{width:115%}.row-gutter-20 .column-offset-23{margin-left:115%}.row-gutter-20 .column-span-24{width:120%}.row-gutter-20 .column-offset-24{margin-left:120%}.row-gutter-21{padding:12px 6px}.row-gutter-21 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-21 .column-span-1{width:4.7619047619%}.row-gutter-21 .column-offset-1{margin-left:4.7619047619%}.row-gutter-21 .column-span-2{width:9.5238095238%}.row-gutter-21 .column-offset-2{margin-left:9.5238095238%}.row-gutter-21 .column-span-3{width:14.2857142857%}.row-gutter-21 .column-offset-3{margin-left:14.2857142857%}.row-gutter-21 .column-span-4{width:19.0476190476%}.row-gutter-21 .column-offset-4{margin-left:19.0476190476%}.row-gutter-21 .column-span-5{width:23.8095238095%}.row-gutter-21 .column-offset-5{margin-left:23.8095238095%}.row-gutter-21 .column-span-6{width:28.5714285714%}.row-gutter-21 .column-offset-6{margin-left:28.5714285714%}.row-gutter-21 .column-span-7{width:33.3333333333%}.row-gutter-21 .column-offset-7{margin-left:33.3333333333%}.row-gutter-21 .column-span-8{width:38.0952380952%}.row-gutter-21 .column-offset-8{margin-left:38.0952380952%}.row-gutter-21 .column-span-9{width:42.8571428571%}.row-gutter-21 .column-offset-9{margin-left:42.8571428571%}.row-gutter-21 .column-span-10{width:47.619047619%}.row-gutter-21 .column-offset-10{margin-left:47.619047619%}.row-gutter-21 .column-span-11{width:52.380952381%}.row-gutter-21 .column-offset-11{margin-left:52.380952381%}.row-gutter-21 .column-span-12{width:57.1428571429%}.row-gutter-21 .column-offset-12{margin-left:57.1428571429%}.row-gutter-21 .column-span-13{width:61.9047619048%}.row-gutter-21 .column-offset-13{margin-left:61.9047619048%}.row-gutter-21 .column-span-14{width:66.6666666667%}.row-gutter-21 .column-offset-14{margin-left:66.6666666667%}.row-gutter-21 .column-span-15{width:71.4285714286%}.row-gutter-21 .column-offset-15{margin-left:71.4285714286%}.row-gutter-21 .column-span-16{width:76.1904761905%}.row-gutter-21 .column-offset-16{margin-left:76.1904761905%}.row-gutter-21 .column-span-17{width:80.9523809524%}.row-gutter-21 .column-offset-17{margin-left:80.9523809524%}.row-gutter-21 .column-span-18{width:85.7142857143%}.row-gutter-21 .column-offset-18{margin-left:85.7142857143%}.row-gutter-21 .column-span-19{width:90.4761904762%}.row-gutter-21 .column-offset-19{margin-left:90.4761904762%}.row-gutter-21 .column-span-20{width:95.2380952381%}.row-gutter-21 .column-offset-20{margin-left:95.2380952381%}.row-gutter-21 .column-span-21{width:100%}.row-gutter-21 .column-offset-21{margin-left:100%}.row-gutter-21 .column-span-22{width:104.7619047619%}.row-gutter-21 .column-offset-22{margin-left:104.7619047619%}.row-gutter-21 .column-span-23{width:109.5238095238%}.row-gutter-21 .column-offset-23{margin-left:109.5238095238%}.row-gutter-21 .column-span-24{width:114.2857142857%}.row-gutter-21 .column-offset-24{margin-left:114.2857142857%}.row-gutter-22{padding:12px 6px}.row-gutter-22 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-22 .column-span-1{width:4.5454545455%}.row-gutter-22 .column-offset-1{margin-left:4.5454545455%}.row-gutter-22 .column-span-2{width:9.0909090909%}.row-gutter-22 .column-offset-2{margin-left:9.0909090909%}.row-gutter-22 .column-span-3{width:13.6363636364%}.row-gutter-22 .column-offset-3{margin-left:13.6363636364%}.row-gutter-22 .column-span-4{width:18.1818181818%}.row-gutter-22 .column-offset-4{margin-left:18.1818181818%}.row-gutter-22 .column-span-5{width:22.7272727273%}.row-gutter-22 .column-offset-5{margin-left:22.7272727273%}.row-gutter-22 .column-span-6{width:27.2727272727%}.row-gutter-22 .column-offset-6{margin-left:27.2727272727%}.row-gutter-22 .column-span-7{width:31.8181818182%}.row-gutter-22 .column-offset-7{margin-left:31.8181818182%}.row-gutter-22 .column-span-8{width:36.3636363636%}.row-gutter-22 .column-offset-8{margin-left:36.3636363636%}.row-gutter-22 .column-span-9{width:40.9090909091%}.row-gutter-22 .column-offset-9{margin-left:40.9090909091%}.row-gutter-22 .column-span-10{width:45.4545454545%}.row-gutter-22 .column-offset-10{margin-left:45.4545454545%}.row-gutter-22 .column-span-11{width:50%}.row-gutter-22 .column-offset-11{margin-left:50%}.row-gutter-22 .column-span-12{width:54.5454545455%}.row-gutter-22 .column-offset-12{margin-left:54.5454545455%}.row-gutter-22 .column-span-13{width:59.0909090909%}.row-gutter-22 .column-offset-13{margin-left:59.0909090909%}.row-gutter-22 .column-span-14{width:63.6363636364%}.row-gutter-22 .column-offset-14{margin-left:63.6363636364%}.row-gutter-22 .column-span-15{width:68.1818181818%}.row-gutter-22 .column-offset-15{margin-left:68.1818181818%}.row-gutter-22 .column-span-16{width:72.7272727273%}.row-gutter-22 .column-offset-16{margin-left:72.7272727273%}.row-gutter-22 .column-span-17{width:77.2727272727%}.row-gutter-22 .column-offset-17{margin-left:77.2727272727%}.row-gutter-22 .column-span-18{width:81.8181818182%}.row-gutter-22 .column-offset-18{margin-left:81.8181818182%}.row-gutter-22 .column-span-19{width:86.3636363636%}.row-gutter-22 .column-offset-19{margin-left:86.3636363636%}.row-gutter-22 .column-span-20{width:90.9090909091%}.row-gutter-22 .column-offset-20{margin-left:90.9090909091%}.row-gutter-22 .column-span-21{width:95.4545454545%}.row-gutter-22 .column-offset-21{margin-left:95.4545454545%}.row-gutter-22 .column-span-22{width:100%}.row-gutter-22 .column-offset-22{margin-left:100%}.row-gutter-22 .column-span-23{width:104.5454545455%}.row-gutter-22 .column-offset-23{margin-left:104.5454545455%}.row-gutter-22 .column-span-24{width:109.0909090909%}.row-gutter-22 .column-offset-24{margin-left:109.0909090909%}.row-gutter-23{padding:12px 6px}.row-gutter-23 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-23 .column-span-1{width:4.347826087%}.row-gutter-23 .column-offset-1{margin-left:4.347826087%}.row-gutter-23 .column-span-2{width:8.6956521739%}.row-gutter-23 .column-offset-2{margin-left:8.6956521739%}.row-gutter-23 .column-span-3{width:13.0434782609%}.row-gutter-23 .column-offset-3{margin-left:13.0434782609%}.row-gutter-23 .column-span-4{width:17.3913043478%}.row-gutter-23 .column-offset-4{margin-left:17.3913043478%}.row-gutter-23 .column-span-5{width:21.7391304348%}.row-gutter-23 .column-offset-5{margin-left:21.7391304348%}.row-gutter-23 .column-span-6{width:26.0869565217%}.row-gutter-23 .column-offset-6{margin-left:26.0869565217%}.row-gutter-23 .column-span-7{width:30.4347826087%}.row-gutter-23 .column-offset-7{margin-left:30.4347826087%}.row-gutter-23 .column-span-8{width:34.7826086957%}.row-gutter-23 .column-offset-8{margin-left:34.7826086957%}.row-gutter-23 .column-span-9{width:39.1304347826%}.row-gutter-23 .column-offset-9{margin-left:39.1304347826%}.row-gutter-23 .column-span-10{width:43.4782608696%}.row-gutter-23 .column-offset-10{margin-left:43.4782608696%}.row-gutter-23 .column-span-11{width:47.8260869565%}.row-gutter-23 .column-offset-11{margin-left:47.8260869565%}.row-gutter-23 .column-span-12{width:52.1739130435%}.row-gutter-23 .column-offset-12{margin-left:52.1739130435%}.row-gutter-23 .column-span-13{width:56.5217391304%}.row-gutter-23 .column-offset-13{margin-left:56.5217391304%}.row-gutter-23 .column-span-14{width:60.8695652174%}.row-gutter-23 .column-offset-14{margin-left:60.8695652174%}.row-gutter-23 .column-span-15{width:65.2173913043%}.row-gutter-23 .column-offset-15{margin-left:65.2173913043%}.row-gutter-23 .column-span-16{width:69.5652173913%}.row-gutter-23 .column-offset-16{margin-left:69.5652173913%}.row-gutter-23 .column-span-17{width:73.9130434783%}.row-gutter-23 .column-offset-17{margin-left:73.9130434783%}.row-gutter-23 .column-span-18{width:78.2608695652%}.row-gutter-23 .column-offset-18{margin-left:78.2608695652%}.row-gutter-23 .column-span-19{width:82.6086956522%}.row-gutter-23 .column-offset-19{margin-left:82.6086956522%}.row-gutter-23 .column-span-20{width:86.9565217391%}.row-gutter-23 .column-offset-20{margin-left:86.9565217391%}.row-gutter-23 .column-span-21{width:91.3043478261%}.row-gutter-23 .column-offset-21{margin-left:91.3043478261%}.row-gutter-23 .column-span-22{width:95.652173913%}.row-gutter-23 .column-offset-22{margin-left:95.652173913%}.row-gutter-23 .column-span-23{width:100%}.row-gutter-23 .column-offset-23{margin-left:100%}.row-gutter-23 .column-span-24{width:104.347826087%}.row-gutter-23 .column-offset-24{margin-left:104.347826087%}.row-gutter-24{padding:12px 6px}.row-gutter-24 .column{padding:0 6px;display:flex;flex-shrink:0}.row-gutter-24 .column-span-1{width:4.1666666667%}.row-gutter-24 .column-offset-1{margin-left:4.1666666667%}.row-gutter-24 .column-span-2{width:8.3333333333%}.row-gutter-24 .column-offset-2{margin-left:8.3333333333%}.row-gutter-24 .column-span-3{width:12.5%}.row-gutter-24 .column-offset-3{margin-left:12.5%}.row-gutter-24 .column-span-4{width:16.6666666667%}.row-gutter-24 .column-offset-4{margin-left:16.6666666667%}.row-gutter-24 .column-span-5{width:20.8333333333%}.row-gutter-24 .column-offset-5{margin-left:20.8333333333%}.row-gutter-24 .column-span-6{width:25%}.row-gutter-24 .column-offset-6{margin-left:25%}.row-gutter-24 .column-span-7{width:29.1666666667%}.row-gutter-24 .column-offset-7{margin-left:29.1666666667%}.row-gutter-24 .column-span-8{width:33.3333333333%}.row-gutter-24 .column-offset-8{margin-left:33.3333333333%}.row-gutter-24 .column-span-9{width:37.5%}.row-gutter-24 .column-offset-9{margin-left:37.5%}.row-gutter-24 .column-span-10{width:41.6666666667%}.row-gutter-24 .column-offset-10{margin-left:41.6666666667%}.row-gutter-24 .column-span-11{width:45.8333333333%}.row-gutter-24 .column-offset-11{margin-left:45.8333333333%}.row-gutter-24 .column-span-12{width:50%}.row-gutter-24 .column-offset-12{margin-left:50%}.row-gutter-24 .column-span-13{width:54.1666666667%}.row-gutter-24 .column-offset-13{margin-left:54.1666666667%}.row-gutter-24 .column-span-14{width:58.3333333333%}.row-gutter-24 .column-offset-14{margin-left:58.3333333333%}.row-gutter-24 .column-span-15{width:62.5%}.row-gutter-24 .column-offset-15{margin-left:62.5%}.row-gutter-24 .column-span-16{width:66.6666666667%}.row-gutter-24 .column-offset-16{margin-left:66.6666666667%}.row-gutter-24 .column-span-17{width:70.8333333333%}.row-gutter-24 .column-offset-17{margin-left:70.8333333333%}.row-gutter-24 .column-span-18{width:75%}.row-gutter-24 .column-offset-18{margin-left:75%}.row-gutter-24 .column-span-19{width:79.1666666667%}.row-gutter-24 .column-offset-19{margin-left:79.1666666667%}.row-gutter-24 .column-span-20{width:83.3333333333%}.row-gutter-24 .column-offset-20{margin-left:83.3333333333%}.row-gutter-24 .column-span-21{width:87.5%}.row-gutter-24 .column-offset-21{margin-left:87.5%}.row-gutter-24 .column-span-22{width:91.6666666667%}.row-gutter-24 .column-offset-22{margin-left:91.6666666667%}.row-gutter-24 .column-span-23{width:95.8333333333%}.row-gutter-24 .column-offset-23{margin-left:95.8333333333%}.row-gutter-24 .column-span-24{width:100%}.row-gutter-24 .column-offset-24{margin-left:100%}.row-align-top{align-items:flex-start}.row-align-middle{align-items:center}.row-align-bottom{align-items:flex-end}.row-justify-start{justify-content:flex-start}.row-justify-end{justify-content:flex-end}.row-justify-center{justify-content:center}.row-justify-space-around{justify-content:space-around}.row-justify-space-between{justify-content:space-between}.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 rgba(87,190,252,.5)}.button-select .button-select-options.actived:active{box-shadow:none}.tags-container{display:flex;align-items:flex-start;overflow-y:hidden}.tags{flex:1;list-style:none;flex-wrap:wrap;box-sizing:content-box}.tags,.tags li{display:flex;align-items:center}.tags li{position:relative;justify-content:center;border:1px solid #2c8af8;color:#54759a;height:22px;border-radius:11px;padding:0 6px;margin:3px 4px;font-size:10px;cursor:default}.tags li.can-click{cursor:pointer}.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}.tags-expand{height:30px;line-height:30px;padding:0 20px;user-select:none;cursor:pointer}.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 rgba(87,190,252,.5)}.input-align-left{text-align:left}.input-align-center{text-align:center}.input-align-right{text-align:right}.input-inside:focus{box-shadow:none}.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 rgba(183,197,214,.5);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,.select-list .list>.selected{background:rgba(228,234,239,.5)}.select-list-show{opacity:1;pointer-events:visible}.select-list-show,.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 rgba(84,117,154,.2);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;border-radius:4px;box-shadow:0 2px 8px rgba(44,138,248,.3);font-size:13px;line-height:1.6;text-align:justify}.alert,.alert .alert-icon{background:#fff;display:flex}.alert .alert-icon{margin-right:10px;width:20px;height:20px;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center}.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 rgba(93,174,52,.3)}.alert-box-success .alert-icon>i{color:#67c23a}.alert-box-info{background:linear-gradient(135deg,#3eb4fc,#57befc);box-shadow:0 2px 8px rgba(62,180,252,.3)}.alert-box-info .alert-icon>i{color:#57befc}.alert-box-warning{background:linear-gradient(135deg,#e39725,#e6a23c);box-shadow:0 2px 8px rgba(227,151,37,.3)}.alert-box-warning .alert-icon>i{color:#e6a23c}.alert-box-error{background:linear-gradient(135deg,#f35454,#f56c6c);box-shadow:0 2px 8px rgba(243,84,84,.3)}.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 rgba(93,174,52,.3)}.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 rgba(62,180,252,.3)}.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 rgba(227,151,37,.3)}.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 rgba(243,84,84,.3)}.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-primary{color:#fff;border:none;background:linear-gradient(135deg,#57befc,#2c8af8);box-shadow:0 2px 8px rgba(44,138,248,.5)}.button-primary:hover{border:none}.button-primary:active{box-shadow:0 0 2px rgba(44,138,248,.5)}.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 rgba(242,60,60,.5)}.button-danger:hover{border:none}.button-danger:active{box-shadow:0 0 2px rgba(242,60,60,.5)}.button-success{color:#fff;border:none;background:linear-gradient(135deg,#67c23a,#5dae34);box-shadow:0 2px 8px rgba(93,174,52,.5)}.button-success:hover{border:none}.button-success:active{box-shadow:0 0 2px rgba(93,174,52,.5)}.button-warning{color:#fff;border:none;background:linear-gradient(135deg,#e6a23c,#e39725);box-shadow:0 2px 8px rgba(227,151,37,.5)}.button-warning:hover{border:none}.button-warning:active{box-shadow:0 0 2px rgba(227,151,37,.5)}.message{position:fixed;top:20px;right:20px;border-radius:4px;opacity:0;background:#fff;display:flex;box-shadow:0 0 20px rgba(44,138,248,.2);transition:all .2s ease;transform:translateX(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:translateX(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%;color:#fff;line-height:18px;transform:translateY(-9px) scale(.6);text-shadow:none;font-weight:700}.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 linear infinite}.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-top:none;border-right:none;background-clip:padding-box;box-shadow:inset 0 0 10px rgba(44,138,248,.15)}@keyframes spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinner-circle:nth-of-type(0){transform:rotate(0deg)}.spinner-circle:nth-of-type(0) .spinner-inner{animation:spinner 2s linear infinite}.spinner-circle:first-of-type{transform:rotate(70deg)}.spinner-circle:first-of-type .spinner-inner{animation:spinner 2s linear infinite}.spinner-circle:nth-of-type(2){transform:rotate(140deg)}.spinner-circle:nth-of-type(2) .spinner-inner{animation:spinner 2s linear infinite}.loading{position:absolute;display:flex;align-items:center;justify-content:center;top:0;left:0;bottom:0;right:0;background-color:hsla(0,0%,100%,.9);box-shadow:inset 0 0 80px rgba(0,0,0,.1);z-index:1000}.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 rgba(44,138,248,.2);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:rgba(84,117,154,.8)}.proxy-item .proxy-editor{position:absolute;right:10px;bottom:10px;cursor:pointer;color:rgba(84,117,154,.8);opacity:0;pointer-events:none;transition:all .3s ease}.proxy-item:hover{box-shadow:0 14px 20px -4px rgba(84,117,154,.4)}.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}.proxy-group-part{display:flex;align-items:center;height:60px}.proxy-group-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 20px;width:120px;height:18px}.proxies-group-card{padding:0}.proxies-group-item{border-bottom:1px solid #d8dee2}.proxies-group-item:last-child{border-bottom:none}.proxy-group-tags-container{padding:15px 0}.proxy-group-tags{flex:1;margin-left:30px}@media(max-width:768px){.proxy-group{flex-direction:column}.proxy-group-name{width:140px}.proxy-group-part{width:100%;height:42px;margin-top:6px;justify-content:space-between}.proxy-group-type{margin-right:20px}.proxy-group-tags-container{padding:5px 0 10px}.proxy-group-tags{margin-left:20px}}.proxy-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.proxy-provider-header{justify-content:space-between}.proxy-provider-header,.proxy-provider-header-part{display:flex;align-items:center}.proxy-provider-name{margin-right:24px}.proxy-provider-proxies{list-style:none}.proxy-provider-item{box-shadow:0 0 24px 0 rgba(44,138,248,.2)}.proxy-provider-item:hover{box-shadow:0 0 24px 0 rgba(84,117,154,.4)}.proxy-provider-update{line-height:14px;font-size:14px}.proxy-provider-icon{margin-left:20px;cursor:pointer}.proxy-provider-icon.healthcheck{color:#f56c6c}@media(max-width:768px){.proxy-provider-header{flex-direction:column;align-items:flex-start}.proxy-provider-header-part{margin:6px 0}}.proxies-list{--item-width:calc(100%/(var(--columns) + 1));--gap:calc(var(--item-width)/var(--columns));display:flex;margin-right:calc(var(--gap)*-1);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-group-list{list-style:none}.proxies-group-card{margin:20px 0}.proxies-container .proxies-action-icon{margin-left: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}.proxies-providers-item{margin:20px 0}.proxies-providers-list{list-style:none}@media(max-width:768px){.proxies-group-card{margin:12px 0}.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}}.logs-card{display:flex;flex-direction:column;flex:1;margin-top:10px}.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}.logs-panel li{line-height:20px;display:inline-block}.logs-panel-time{margin-right:10px;color:#adb7c3}.rule-provider{position:relative;display:flex;flex-direction:column;font-size:16px;padding:20px;color:#546b87}.rule-provider-header{justify-content:space-between}.rule-provider-header,.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 0 rgba(44,138,248,.2)}.rule-provider-item:hover{box-shadow:0 0 24px 0 rgba(84,117,154,.4)}.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 linear infinite}@media(max-width:768px){.rule-provider-header{flex-direction:column;align-items:flex-start}.rule-provider-header-part{margin:6px 0}}.rules-card{display:flex;flex-direction:column;flex:1;min-height:700px;margin-top:10px;padding:0}.rules-card:focus{outline:none}.rules-card .rules{flex:1 0 auto}.rule-item{line-height:30px;height:50px;overflow:hidden;list-style:none;user-select:none;border-bottom:1px solid rgba(228,234,239,.5)}.rule-item,.rule-item .rule-item-row{padding:5px 0}.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{cursor:pointer}.rule-item .payload,.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}.rule-proxy-option{display:flex;align-items:center;overflow:hidden}.rule-proxy-option .label{margin-right:5px;height:20px;line-height:20px;padding:0 8px;font-size:10px;border-radius:10px;color:#fff;background:#b7c5d6}.rule-proxy-option .value{line-height:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-card{margin-top:10px;padding:20px 0}.settings-card .column{font-weight:700;align-items:center}.settings-card .value-column{justify-content:flex-end}.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:#2c8af8;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}@media(max-width:768px){.settings-card .row{flex-direction:column;padding-top:0;padding-bottom:0}.settings-card .row>.column{width:100%;margin:10px 0}}.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 rgba(44,138,248,.5)}.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}}.connections-devices{display:flex;padding:8px 2px}.connections-devices-item{padding:4px 0;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{display:flex;flex-direction:column;width:100%;flex-grow:1;flex-basis:0;overflow:auto}.connections-card .connections-body{flex:1 0 auto}.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:translateX(-2px);width:2px;height:100%;background-color:rgba(144,147,153,.6)}.connections-card .connections-header{position:sticky;top:0;z-index:9999;white-space:nowrap}.connections-card .connections-header:hover .connections-resizer{opacity:1}.connections-card .connetions-item{height:36px}.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.center{text-align:center}.connections-card .connections-block.completed{background-color:#e9eef4;color:rgba(84,117,154,.5)}.connections-card .connections-block.fixed{position:sticky;left:0;z-index:999;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)}.connections-filter.total{flex:1;cursor:unset}.external-controller .row{padding:0}.external-controller .alert{margin:10px 0}.external-controller .form,.external-controller .title{margin:15px 0}.external-controller .title{margin-top:15px;font-size:14px;font-weight:700}@media(max-width:768px){.external-controller .row{flex-direction:column;align-items:flex-start}.external-controller .form,.external-controller .title{margin:5px 0}.external-controller .column{width:100%}.external-controller .alert{display:none}} \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/js/main.b9320252.chunk.js b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/js/main.8e23a89d.chunk.js similarity index 93% rename from package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/js/main.b9320252.chunk.js rename to package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/js/main.8e23a89d.chunk.js index 75f2d87e27..22e4e64f92 100644 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/js/main.b9320252.chunk.js +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/static/js/main.8e23a89d.chunk.js @@ -1 +1 @@ -(this["webpackJsonpclash-dashboard"]=this["webpackJsonpclash-dashboard"]||[]).push([[0],{150:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n.n(a),c=n(17),o=n(26),s=n(8),i=n(9),l=n(3),u=n.n(l),p=n(10),d=n(18);function m(){return"ClashX Runtime"===navigator.userAgent}var f=null,v=function(){function e(t){var n=this;Object(p.a)(this,e),this.instance=null,window.WebViewJavascriptBridge&&(this.instance=window.WebViewJavascriptBridge),this.initBridge((function(e){n.instance=e,t()}))}return Object(d.a)(e,[{key:"initBridge",value:function(e){if(!m())return null===e||void 0===e?void 0:e(null);if(window.WebViewJavascriptBridge)return e(window.WebViewJavascriptBridge);if(window.WVJBCallbacks)return window.WVJBCallbacks.push(e);window.WVJBCallbacks=[e];var t=document.createElement("iframe");t.style.display="none",t.src="https://__bridge_loaded__",document.documentElement.appendChild(t),setTimeout((function(){return document.documentElement.removeChild(t)}),0)}},{key:"callHandler",value:function(e,t){var n=this;return new Promise((function(a){var r;null===(r=n.instance)||void 0===r||r.callHandler(e,t,a)}))}},{key:"ping",value:function(){return this.callHandler("ping")}},{key:"readConfigString",value:function(){return this.callHandler("readConfigString")}},{key:"getPasteboard",value:function(){return this.callHandler("getPasteboard")}},{key:"getAPIInfo",value:function(){return this.callHandler("apiInfo")}},{key:"setPasteboard",value:function(e){return this.callHandler("setPasteboard",e)}},{key:"writeConfigWithString",value:function(e){return this.callHandler("writeConfigWithString",e)}},{key:"setSystemProxy",value:function(e){return this.callHandler("setSystemProxy",e)}},{key:"getStartAtLogin",value:function(){return this.callHandler("getStartAtLogin")}},{key:"getProxyDelay",value:function(e){return this.callHandler("speedTest",e)}},{key:"setStartAtLogin",value:function(e){return this.callHandler("setStartAtLogin",e)}},{key:"isSystemProxySet",value:function(){return this.callHandler("isSystemProxySet")}}]),e}();var h,b=n(21),y=n(36),g=n.n(y);!function(e){e.SPEED_NOTIFY="speed-notify"}(h||(h={}));var x=new(function(){function e(){Object(p.a)(this,e),this.EE=new g.a}return Object(d.a)(e,[{key:"notifySpeedTest",value:function(){this.EE.emit(h.SPEED_NOTIFY)}},{key:"subscribe",value:function(e,t){this.EE.addListener(e,t)}},{key:"unsubscribe",value:function(e,t){this.EE.removeListener(e,t)}}]),e}()),E=n(2),w=n(64),k=n(1),O=n.n(k),j=n(5),N=n(4);function C(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return window.localStorage.getItem(e)||t}function P(e,t){return window.localStorage.setItem(e,t)}function S(){}function T(e){return L.apply(this,arguments)}function L(){return(L=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,t;case 3:return n=e.sent,e.abrupt("return",[n,null]);case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",[null,e.t0]);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})))).apply(this,arguments)}function R(e,t){var n,a=[],r=[],c=Object(j.a)(e);try{for(c.s();!(n=c.n()).done;){var o=n.value;t(o)?a.push(o):r.push(o)}}catch(s){c.e(s)}finally{c.f()}return[a,r]}function D(e){var t=Object(w.a)(e),n=Object(E.a)(t,2),r=n[0],c=n[1];return[r,Object(a.useMemo)((function(){return function(e,t){"string"===typeof e?c((function(n){var a=t;n[e]=a})):"function"===typeof e?c(e):"object"===typeof e&&c((function(t){for(var n=e,a=0,r=Object.keys(n);a0&&void 0!==arguments[0]&&arguments[0],t=Object(a.useState)(e),n=Object(E.a)(t,2),r=n[0],c=n[1];function o(){c(!1)}function s(){c(!0)}return{visible:r,hide:o,show:s}}function A(e){var t=e.title,n=e.children,r=e.className,c=e.style;return a.createElement("header",{className:u()("header",r),style:c},a.createElement("h1",null,t),a.createElement("div",{className:"operations"},n))}var B=n(6);function H(e){var t=e.type,n=e.size,r=void 0===n?14:n,c=e.className,o=e.style,s=u()("clash-iconfont","icon-".concat(t),c),i=Object(B.a)({fontSize:r},o),l=Object(B.a)(Object(B.a)({},e),{},{className:s,style:i});return a.createElement("i",l)}function M(e){var t=e.className,n=e.checked,r=void 0!==n&&n,c=e.disabled,o=void 0!==c&&c,s=e.onChange,i=void 0===s?S:s,l=u()("switch",{checked:r,disabled:o},t);return a.createElement("div",{className:l,onClick:function(){o||i(!r)}},a.createElement(H,{className:"switch-icon",type:"check",size:20,style:{fontWeight:"bold"}}))}function U(e){var t=e.className,n=e.style,r=e.children;return a.createElement("div",{className:u()("card",t),style:n},r)}function z(e){var t=e.gutter,n=void 0===t?24:t,r=e.align,c=void 0===r?"top":r,o=e.justify,s=void 0===o?"start":o,i=e.className,l=e.style,p=e.children;return a.createElement("div",{className:u()("row","row-gutter-".concat(n),"row-align-".concat(c),"row-justify-".concat(s),i),style:l},p)}function W(e){var t=e.offset,n=void 0===t?0:t,r=e.order,c=void 0===r?0:r,o=e.span,s=void 0===o?1:o,i=e.className,l=e.style,p=e.children,d=Object.assign({},{order:c},l);return a.createElement("div",{className:u()("column","column-offset-".concat(n),"column-span-".concat(s),i),style:d},p)}function F(e){var t=e.options,n=e.value,r=e.onSelect;return a.createElement("div",{className:"button-select"},t.map((function(e){return a.createElement("button",{value:e.value,key:e.value,className:u()("button-select-options",{actived:n===e.value}),onClick:function(){return null===r||void 0===r?void 0:r(e.value)}},e.label)})))}var _=n(65),G=n.n(_),J=n(19),V={en_US:{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"}},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"}},zh_CN:{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"}},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"}}},X="language",Y=Object.keys(V);var K=n(22);function q(e){var t=Object(s.d)(e),n=Object(E.a)(t,2),r=n[0],c=n[1];return[r,Object(a.useMemo)((function(){return function(e,t){if("string"===typeof e)c((function(n){return Object(K.a)(n,(function(n){var a=t;n[e]=a}))}));else if("function"===typeof e){var n=e;c((function(e){return Object(K.a)(e,n)}))}else"object"===typeof e&&c((function(t){return Object(K.a)(t,(function(t){for(var n=e,a=0,r=Object.keys(n);a0&&(t.innerBuffer.push(n),t.innerBuffer.length>t.config.bufferLength&&t.innerBuffer.splice(0,t.innerBuffer.length-t.config.bufferLength))})),a.addEventListener("close",(function(){return setTimeout(t.websocketLoop,t.config.retryInterval)})),a.addEventListener("error",(function(e){t.EE.emit("error",e),setTimeout(t.websocketLoop,t.config.retryInterval)}))}},{key:"loop",value:function(){var e=Object(N.a)(O.a.mark((function e(){var t,n,a,r,c,o,s,i,l,u,p,d,m;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,T(fetch(this.config.url,{mode:"cors",headers:this.config.token?{Authorization:"Bearer ".concat(this.config.token)}:{}}));case 2:if(t=e.sent,n=Object(E.a)(t,2),a=n[0],!(r=n[1])&&a.body){e.next=9;break}return this.retry(r),e.abrupt("return");case 9:c=a.body.getReader(),o=new TextDecoder;case 11:if(!this.isClose){e.next=14;break}return e.abrupt("break",29);case 14:return e.next=16,T(null===c||void 0===c?void 0:c.read());case 16:if(s=e.sent,i=Object(E.a)(s,2),l=i[0].value,!(u=i[1])){e.next=23;break}return this.retry(u),e.abrupt("break",29);case 23:p=o.decode(l).trim().split("\n"),d=p.map((function(e){return JSON.parse(e)})),this.EE.emit("data",d),this.config.bufferLength>0&&((m=this.innerBuffer).push.apply(m,Object(ee.a)(d)),this.innerBuffer.length>this.config.bufferLength&&this.innerBuffer.splice(0,this.innerBuffer.length-this.config.bufferLength)),e.next=11;break;case 29:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"retry",value:function(e){this.isClose||(this.EE.emit("error",e),window.setTimeout(this.loop,this.config.retryInterval))}},{key:"subscribe",value:function(e,t){this.EE.addListener(e,t)}},{key:"unsubscribe",value:function(e,t){this.EE.removeListener(e,t)}},{key:"buffer",value:function(){return this.innerBuffer.slice()}},{key:"destory",value:function(){this.EE.removeAllListeners(),this.isClose=!0}}]),e}();function ne(){return ae.apply(this,arguments)}function ae(){return(ae=Object(N.a)(O.a.mark((function e(){var t,n,a,r;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!m()){e.next=5;break}return e.next=3,f.getAPIInfo();case 3:return t=e.sent,e.abrupt("return",{hostname:t.host,port:t.port,secret:t.secret});case 5:if(n=C("externalControllerAddr","127.0.0.1"),a=C("externalControllerPort","9090"),r=C("secret",""),n&&a){e.next=10;break}throw new Error("can't get hostname or port");case 10:return e.abrupt("return",{hostname:n,port:a,secret:r});case 11:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var re=$(Object(N.a)(O.a.mark((function e(){var t,n,a,r;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ne();case 2:return t=e.sent,n=t.hostname,a=t.port,r=t.secret,e.abrupt("return",Z.a.create({baseURL:"//".concat(n,":").concat(a),headers:r?{Authorization:"Bearer ".concat(r)}:{}}));case 7:case"end":return e.stop()}}),e)}))));function ce(){return oe.apply(this,arguments)}function oe(){return(oe=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("configs"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function se(e){return ie.apply(this,arguments)}function ie(){return(ie=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.patch("configs",t));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function le(){return ue.apply(this,arguments)}function ue(){return(ue=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("rules"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function pe(){return de.apply(this,arguments)}function de(){return(de=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("providers/proxies",{validateStatus:function(e){return e>=200&&e<300||404===e}}).then((function(e){return 404===e.status&&(e.data={providers:{}}),e})));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function me(){return fe.apply(this,arguments)}function fe(){return(fe=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("providers/rules"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ve(){return(ve=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.put("providers/proxies/".concat(encodeURIComponent(t))));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function he(){return(he=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.put("providers/rules/".concat(encodeURIComponent(t))));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function be(){return(be=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.get("providers/proxies/".concat(encodeURIComponent(t),"/healthcheck")));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ye(){return ge.apply(this,arguments)}function ge(){return(ge=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("proxies"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function xe(){return Ee.apply(this,arguments)}function Ee(){return(Ee=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("version"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function we(e){return ke.apply(this,arguments)}function ke(){return(ke=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.get("proxies/".concat(encodeURIComponent(t),"/delay"),{params:{timeout:5e3,url:"http://www.gstatic.com/generate_204"}}));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Oe(){return(Oe=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.delete("connections"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function je(e){return Ne.apply(this,arguments)}function Ne(){return(Ne=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.delete("connections/".concat(t)));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ce(){return Pe.apply(this,arguments)}function Pe(){return(Pe=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("connections"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Se(e,t){return Te.apply(this,arguments)}function Te(){return(Te=Object(N.a)(O.a.mark((function e(t,n){var a;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return a=e.sent,e.abrupt("return",a.put("proxies/".concat(encodeURIComponent(t)),{name:n}));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Le=$(Object(N.a)(O.a.mark((function e(){var t,n,a,r,c,o,s,i,l,u;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ne();case 2:return t=e.sent,e.next=5,ce();case 5:return n=e.sent,a=n.data,e.next=9,T(xe());case 9:return r=e.sent,c=Object(E.a)(r,2),o=c[0],s=c[1],i=s?"unkonwn version":o.data.version,l=!!i||!0,u="".concat(window.location.protocol,"//").concat(t.hostname,":").concat(t.port,"/logs?level=").concat(a["log-level"]),e.abrupt("return",new te({url:u,bufferLength:200,token:t.secret,useWebsocket:l}));case 17:case"end":return e.stop()}}),e)})))),Re=$(Object(N.a)(O.a.mark((function e(){var t,n,a,r,c,o,s,i;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ne();case 2:return t=e.sent,e.next=5,T(xe());case 5:return n=e.sent,a=Object(E.a)(n,2),r=a[0],c=a[1],o=c?"unkonwn version":r.data.version,s=!!o||!0,i="".concat(window.location.protocol,"//").concat(t.hostname,":").concat(t.port,"/connections"),e.abrupt("return",new te({url:i,bufferLength:200,token:t.secret,useWebsocket:s}));case 13:case"end":return e.stop()}}),e)})))),De=Object(s.b)({key:"identity",default:!0});function Ie(){var e=Object(s.d)(De),t=Object(E.a)(e,2),n=t[0],a=t[1];return{identity:n,wrapFetcher:function(e){return Object(N.a)(O.a.mark((function t(){var n,r,c,o,s,i=arguments;return O.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,T(e.apply(void 0,i));case 2:if(n=t.sent,r=Object(E.a)(n,2),c=r[0],o=r[1],!(s=o)||s.response&&401!==s.response.status){t.next=10;break}throw a(!1),o;case 10:return a(!0),t.abrupt("return",c);case 12:case"end":return t.stop()}}),t)})))},set:a}}var Ae=Object(s.b)({key:"i18n",default:function(){var e=C(X);if(e&&Y.includes(e))return e;var t,n=function(){var e=[];if(window.navigator)if(window.navigator.languages){var t,n=Object(j.a)(window.navigator.languages);try{for(n.s();!(t=n.n()).done;){var a=t.value;e.push(a)}}catch(r){n.e(r)}finally{n.f()}}else window.navigator.language&&e.push(navigator.language);return e}(),a=Object(j.a)(n);try{for(a.s();!(t=a.n()).done;){var r=t.value;if(r.includes("zh"))return"zh_CN";if(r.includes("us"))return"en_US"}}catch(c){a.e(c)}finally{a.f()}return"en_US"}()});function Be(){var e=Object(s.d)(Ae),t=Object(E.a)(e,2),n=t[0],r=t[1];var c=Object(a.useCallback)((function(e){return{t:function(t){return G()(V[n][e],t)}}}),[n]);return{lang:n,locales:Y,setLang:function(e){r(e),function(e){P(X,e)}(e)},translation:c}}var He=Object(s.b)({key:"version",default:{version:"",premium:!1}});function Me(){var e=Object(s.d)(He),t=Object(E.a)(e,2),n=t[0],a=t[1],r=Ie().set;function c(){return(c=Object(N.a)(O.a.mark((function e(){var t,n,c,o;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,T(xe());case 2:t=e.sent,n=Object(E.a)(t,2),c=n[0],o=n[1],r(!o),a(o?{version:"",premium:!1}:{version:c.data.version,premium:!!c.data.premium});case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}return{version:n.version,premium:n.premium,update:function(){return c.apply(this,arguments)}}}var Ue=Object(s.b)({key:"config",default:{breakConnections:!1}});function ze(){var e=q(Ue),t=Object(E.a)(e,2);return{data:t[0],set:t[1]}}var We=Object(s.b)({key:"proxyProvider",default:[]});function Fe(){var e=Object(s.d)(We),t=Object(E.a)(e,2),n=t[0],r=t[1],c=Object(J.a)("/providers/proxy",Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,pe();case 2:return t=e.sent,e.abrupt("return",Object.keys(t.data.providers).map((function(e){return t.data.providers[e]})).filter((function(e){return"default"!==e.name})).filter((function(e){return"Compatible"!==e.vehicleType})));case 4:case"end":return e.stop()}}),e)})))),o=c.data,i=c.mutate;return Object(a.useEffect)((function(){return r(null!==o&&void 0!==o?o:[])}),[o,r]),{providers:n,update:i}}function _e(){var e=Object(s.d)(He),t=Object(E.a)(e,1)[0].premium,n=Object(J.a)("/providers/rule",Object(N.a)(O.a.mark((function e(){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return",[]);case 2:return e.next=4,me();case 4:return n=e.sent,e.abrupt("return",Object.keys(n.data.providers).map((function(e){return n.data.providers[e]})));case 6:case"end":return e.stop()}}),e)})))),a=n.data;return{providers:null!==a&&void 0!==a?a:[],update:n.mutate}}function Ge(){var e=Object(J.a)("/config",Object(N.a)(O.a.mark((function e(){var t,n,a;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ce();case 2:return n=e.sent,a=n.data,e.abrupt("return",{port:a.port,socksPort:a["socks-port"],mixedPort:null!==(t=a["mixed-port"])&&void 0!==t?t:0,redirPort:a["redir-port"],mode:a.mode.toLowerCase(),logLevel:a["log-level"],allowLan:a["allow-lan"]});case 5:case"end":return e.stop()}}),e)})))),t=e.data;return{general:null!==t&&void 0!==t?t:{},update:e.mutate}}var Je=Object(s.b)({key:"proxies",default:{proxies:[],groups:[],global:{name:"GLOBAL",type:"Selector",now:"",history:[],all:[]}}});function Ve(){var e=q(Je),t=Object(E.a)(e,2),n=t[0],r=t[1],c=Object(J.a)("/proxies",Object(N.a)(O.a.mark((function e(){var t,n,a,c,o,s,i,l,u;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ye();case 2:t=e.sent,(n=t.data.proxies.GLOBAL).name="GLOBAL",a=new Set(["Selector","URLTest","Fallback","LoadBalance"]),c=new Set(["DIRECT","REJECT","GLOBAL"]),o=n.all.filter((function(e){return!c.has(e)})).map((function(e){return Object(B.a)(Object(B.a)({},t.data.proxies[e]),{},{name:e})})),s=R(o,(function(e){return!a.has(e.type)})),i=Object(E.a)(s,2),l=i[0],u=i[1],r({proxies:l,groups:u,global:n});case 10:case"end":return e.stop()}}),e)})))).mutate,o=Object(a.useCallback)((function(e,t){r((function(n){var a,r=Object(j.a)(n.groups);try{for(r.s();!(a=r.n()).done;){var c=a.value;c.name===e&&(c.now=t)}}catch(o){r.e(o)}finally{r.f()}}))}),[r]);return{proxies:n.proxies,groups:n.groups,global:n.global,update:c,markProxySelected:o,set:r}}var Xe=Object(s.c)({key:"proxyMapping",get:function(e){var t,n=e.get,a=n(Je),r=n(We),c=new Map,o=Object(j.a)(a.proxies);try{for(o.s();!(t=o.n()).done;){var s=t.value;c.set(s.name,s)}}catch(f){o.e(f)}finally{o.f()}var i,l=Object(j.a)(r);try{for(l.s();!(i=l.n()).done;){var u,p=i.value,d=Object(j.a)(p.proxies);try{for(d.s();!(u=d.n()).done;){var m=u.value;c.set(m.name,m)}}catch(f){d.e(f)}finally{d.f()}}}catch(f){l.e(f)}finally{l.f()}return c}});function Ye(){var e=Object(J.a)("/clashx",Object(N.a)(O.a.mark((function e(){var t,n,a,r;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(m()){e.next=2;break}return e.abrupt("return",{isClashX:!1,startAtLogin:!1,systemProxy:!1});case 2:return e.next=4,null===f||void 0===f?void 0:f.getStartAtLogin();case 4:if(e.t1=t=e.sent,e.t0=null!==e.t1,!e.t0){e.next=8;break}e.t0=void 0!==t;case 8:if(!e.t0){e.next=12;break}e.t2=t,e.next=13;break;case 12:e.t2=!1;case 13:return a=e.t2,e.next=16,null===f||void 0===f?void 0:f.isSystemProxySet();case 16:if(e.t4=n=e.sent,e.t3=null!==e.t4,!e.t3){e.next=20;break}e.t3=void 0!==n;case 20:if(!e.t3){e.next=24;break}e.t5=n,e.next=25;break;case 24:e.t5=!1;case 25:return r=e.t5,e.abrupt("return",{startAtLogin:a,systemProxy:r,isClashX:!0});case 27:case"end":return e.stop()}}),e)}))));return{data:e.data,update:e.mutate}}var Ke=Object(s.b)({key:"apiData",default:{hostname:"127.0.0.1",port:"9090",secret:""}});function qe(){var e=Object(s.d)(Ke),t=Object(E.a)(e,2),n=t[0],r=t[1];function c(){return(c=Object(N.a)(O.a.mark((function e(t){var n,a,r;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.hostname,a=t.port,r=t.secret,P("externalControllerAddr",n),P("externalControllerPort",a),P("secret",r),window.location.reload();case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}return{data:n,fetch:Object(a.useCallback)(function(){var e=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ne();case 2:t=e.sent,r(Object(B.a)({},t));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),[r]),update:function(e){return c.apply(this,arguments)}}}var Qe=Object(s.b)({key:"rules",default:[]});function Ze(e){var t=e.className,n=e.data,c=e.onClick,o=e.select,s=e.canClick,i=e.errSet,l=e.rowHeight,p=(0,Be().translation)("Proxies").t,d=Object(a.useState)(!1),m=Object(E.a)(d,2),f=m[0],v=m[1],h=Object(a.useState)(!1),b=Object(E.a)(h,2),y=b[0],g=b[1],x=Object(a.useRef)(null);Object(a.useLayoutEffect)((function(){var e,t;g((null!==(e=null===x||void 0===x||null===(t=x.current)||void 0===t?void 0:t.offsetHeight)&&void 0!==e?e:0)>30)}),[]);var w=f?"auto":l,k=s?c:S;var O=n.map((function(e){var t=u()({"tags-selected":o===e,"can-click":s,error:null===i||void 0===i?void 0:i.has(e)});return r.a.createElement("li",{className:t,key:e,onClick:function(){return k(e)}},e)}));return r.a.createElement("div",{className:u()("tags-container",t),style:{height:w}},r.a.createElement("ul",{ref:x,className:u()("tags",{expand:f})},O),y&&r.a.createElement("span",{className:"tags-expand",onClick:function(){v(!f)}},p(f?"collapseText":"expandText")))}function $e(e){var t=e.className,n=e.style,r=e.value,c=void 0===r?"":r,o=e.align,s=void 0===o?"center":o,i=e.inside,l=void 0!==i&&i,p=e.autoFocus,d=void 0!==p&&p,m=e.type,f=void 0===m?"text":m,v=e.disabled,h=void 0!==v&&v,b=e.onChange,y=void 0===b?S:b,g=e.onBlur,x=void 0===g?S:g,E=u()("input","input-align-".concat(s),{"input-inside":l},t);return a.createElement("input",{disabled:h,className:E,style:n,value:c,autoFocus:d,type:f,onChange:function(e){return y(e.target.value,e)},onBlur:x})}function et(e){var t=e.show,n=void 0===t||t,o=e.title,s=void 0===o?"Modal":o,i=e.size,l=void 0===i?"small":i,p=e.footer,d=void 0===p||p,m=e.onOk,f=void 0===m?S:m,v=e.onClose,h=void 0===v?S:v,b=e.bodyClassName,y=e.bodyStyle,g=e.className,x=e.style,E=e.children,w=(0,Be().translation)("Modal").t,k=Object(a.useRef)(document.createElement("div")),O=Object(a.useRef)(null);Object(a.useLayoutEffect)((function(){var e=k.current;return document.body.appendChild(e),function(){document.body.removeChild(e)}}),[]);var j=r.a.createElement("div",{className:u()("modal-mask",{"modal-show":n}),ref:O,onMouseDown:function(e){e.target===O.current&&h()}},r.a.createElement("div",{className:u()("modal","modal-".concat(l),g),style:x},r.a.createElement("div",{className:"modal-title"},s),r.a.createElement("div",{className:u()("modal-body",b),style:y},E),d&&r.a.createElement("div",{className:"footer"},r.a.createElement(at,{onClick:function(){return h()}},w("cancel")),r.a.createElement(at,{type:"primary",onClick:function(){return f()}},w("ok")))));return Object(c.createPortal)(j,k.current)}var tt={success:"check",info:"info",warning:"info",error:"close"};function nt(e){var t=e.message,n=void 0===t?"":t,a=e.type,c=void 0===a?"info":a,o=e.inside,s=void 0!==o&&o,i=e.children,l=e.className,p=e.style,d=u()("alert","alert-".concat(s?"note":"box","-").concat(c),l);return r.a.createElement("div",{className:d,style:p},r.a.createElement("span",{className:"alert-icon"},r.a.createElement(H,{type:tt[c],size:26})),n?r.a.createElement("p",{className:"alert-message"},n):r.a.createElement("div",{className:"alert-message"},i))}function at(e){var t=e.type,n=void 0===t?"normal":t,r=e.onClick,c=void 0===r?S:r,o=e.children,s=e.className,i=e.style,l=u()("button","button-".concat(n),s);return a.createElement("button",{className:l,style:i,onClick:c},o)}function rt(e){var t=e.className,n=e.checked,r=void 0!==n&&n,c=e.onChange,o=void 0===c?S:c,s=u()("checkbox",{checked:r},t);return a.createElement("div",{className:s,onClick:function(){o(!r)}},a.createElement(H,{className:"checkbox-icon",type:"check",size:18}),a.createElement("div",null,e.children))}function ct(e){var t=e.color,n=e.className,r=e.style,c=u()("tag",n),o=Object(B.a)({color:t},r),s=Object(B.a)(Object(B.a)({},e),{},{className:c,style:o});return a.createElement("span",s,e.children)}function ot(e){var t=u()("spinner",e.className);return a.createElement("div",{className:t},a.createElement("div",{className:"spinner-circle"},a.createElement("div",{className:"spinner-inner"})),a.createElement("div",{className:"spinner-circle"},a.createElement("div",{className:"spinner-inner"})),a.createElement("div",{className:"spinner-circle"},a.createElement("div",{className:"spinner-inner"})),a.createElement("div",{className:"spinner-circle"},a.createElement("div",{className:"spinner-inner"})),a.createElement("div",{className:"spinner-circle"},a.createElement("div",{className:"spinner-inner"})))}function st(e){var t=u()("loading","visible",e.className);return e.visible?r.a.createElement("div",{className:t},r.a.createElement(ot,{className:e.spinnerClassName})):null}var it={"#909399":0,"#00c520":260,"#ff9a28":600,"#ff3e5e":1/0};function lt(e){return ut.apply(this,arguments)}function ut(){return(ut=Object(N.a)(O.a.mark((function e(t){var n,a,r,c;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!m()){e.next=14;break}return e.next=3,null===f||void 0===f?void 0:f.getProxyDelay(t);case 3:if(e.t1=n=e.sent,e.t0=null!==e.t1,!e.t0){e.next=7;break}e.t0=void 0!==n;case 7:if(!e.t0){e.next=11;break}e.t2=n,e.next=12;break;case 11:e.t2=0;case 12:return a=e.t2,e.abrupt("return",a);case 14:return e.next=16,we(t);case 16:return r=e.sent,c=r.data.delay,e.abrupt("return",c);case 19:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function pt(e){var t=e.config,n=e.className,c=Ve().set,o=Object(a.useCallback)(Object(N.a)(O.a.mark((function e(){var n,a,r,o,s;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,T(lt(t.name));case 2:n=e.sent,a=Object(E.a)(n,2),r=a[0],o=a[1],s=o?0:r,c((function(e){var n=e.proxies.find((function(e){return e.name===t.name}));n&&n.history.push({time:Date.now().toString(),delay:s})}));case 8:case"end":return e.stop()}}),e)}))),[t.name,c]),s=Object(a.useMemo)((function(){var e;return(null===(e=t.history)||void 0===e?void 0:e.length)?t.history.slice(-1)[0].delay:0}),[t]);Object(a.useLayoutEffect)((function(){return x.subscribe(h.SPEED_NOTIFY,o),function(){return x.unsubscribe(h.SPEED_NOTIFY,o)}}),[o]);var i=Object(a.useMemo)((function(){return 0===s}),[s]),l=Object(a.useMemo)((function(){return Object.keys(it).find((function(e){return s<=it[e]}))}),[s]),p=i?void 0:l;return r.a.createElement("div",{className:u()("proxy-item",{"proxy-error":i},n)},r.a.createElement("span",{className:"proxy-type",style:{backgroundColor:p}},t.type),r.a.createElement("p",{className:"proxy-name"},t.name),r.a.createElement("p",{className:"proxy-delay"},0===s?"-":"".concat(s,"ms")))}function dt(e){var t=Ve().markProxySelected,n=Object(s.e)(Xe),c=ze().data,o=e.config;function i(){return(i=Object(N.a)(O.a.mark((function n(a){var r,o,s,i,l,u,p;return O.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Se(e.config.name,a);case 2:if(t(e.config.name,a),!c.breakConnections){n.next=11;break}return r=[],n.next=7,Ce();case 7:o=n.sent,s=Object(j.a)(o.data.connections);try{for(s.s();!(i=s.n()).done;)(l=i.value).chains.includes(e.config.name)&&r.push(l.id)}catch(d){s.e(d)}finally{s.f()}for(u=0,p=r;u1&&void 0!==arguments[1]?arguments[1]:0;if(e.length<2)throw new Error("List requires at least two elements");var n=Object(a.useState)(t),r=Object(E.a)(n,2),c=r[0],o=r[1];function s(){o((c+1)%e.length)}return{current:Object(a.useMemo)((function(){return e[c]}),[e,c]),next:s}}([ft.Asc,ft.Desc,ft.None]),c=n.current,o=n.next,s=Object(a.useMemo)((function(){switch(c){case ft.Desc:return e.slice().sort((function(e,t){return wt(e,t)}));case ft.Asc:return e.slice().sort((function(e,t){return-1*wt(e,t)}));default:return e.slice()}}),[c,e]),i=o;return r.a.createElement(r.a.Fragment,null,0!==s.length&&r.a.createElement("div",{className:"proxies-container"},r.a.createElement(A,{title:t("title")},r.a.createElement(H,{className:"proxies-action-icon",type:Et[c],onClick:i,size:20}),r.a.createElement(H,{className:"proxies-action-icon",type:"speed",size:20}),r.a.createElement("span",{className:"proxies-speed-test",onClick:function(){x.notifySpeedTest()}},t("speedTestText"))),r.a.createElement("ul",{className:"proxies-list"},s.map((function(e){return r.a.createElement("li",{key:e.name},r.a.createElement(pt,{config:e}))})))))}function Nt(){return r.a.createElement("div",{className:"page"},r.a.createElement(kt,null),r.a.createElement(Ot,null),r.a.createElement(jt,null))}function Ct(){var e=Object(a.useRef)(null),t=Object(a.useRef)([]),n=Object(a.useState)([]),c=Object(E.a)(n,2),o=c[0],s=c[1],i=(0,Be().translation)("Logs").t;return Object(a.useLayoutEffect)((function(){var t=e.current;t&&(t.scrollTop=t.scrollHeight)})),Object(a.useEffect)((function(){var e=null;function n(e){t.current=t.current.slice().concat(e.map((function(e){return Object(B.a)(Object(B.a)({},e),{},{time:new Date})}))),s(t.current)}return Object(N.a)(O.a.mark((function a(){return O.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,Le();case 2:e=a.sent,t.current=e.buffer(),s(t.current),e.subscribe("data",n);case 6:case"end":return a.stop()}}),a)})))(),function(){var t;return null===(t=e)||void 0===t?void 0:t.unsubscribe("data",n)}}),[]),r.a.createElement("div",{className:"page"},r.a.createElement(A,{title:i("title")}),r.a.createElement(U,{className:"logs-card"},r.a.createElement("ul",{className:"logs-panel",ref:e},o.map((function(e,t){return r.a.createElement("li",{key:t},r.a.createElement("span",{className:"logs-panel-time"},ht()(e.time).format("YYYY-MM-DD HH:mm:ss")),r.a.createElement("span",null,"[",e.type,"] ",e.payload))})))))}var Pt=n(73),St=n(68);function Tt(e){var t=_e().update,n=Be(),r=n.translation,c=n.lang,o=e.provider,s=r("Rules").t,i=I(),l=i.visible,p=i.hide,d=i.show;var m=u()("rule-provider-icon",{"rule-provider-loading":l});return a.createElement(U,{className:"rule-provider"},a.createElement("div",{className:"rule-provider-header"},a.createElement("div",{className:"rule-provider-header-part"},a.createElement("span",{className:"rule-provider-name"},o.name),a.createElement(ct,null,o.vehicleType),a.createElement(ct,{className:"rule-provider-behavior"},o.behavior),a.createElement("span",{className:"rule-provider-update"},"".concat(s("ruleCount"),": ").concat(o.ruleCount))),a.createElement("div",{className:"rule-provider-header-part"},o.updatedAt&&a.createElement("span",{className:"rule-provider-update"},"".concat(s("providerUpdateTime"),": ").concat(gt(new Date(o.updatedAt),c))),a.createElement(H,{className:m,type:"update",size:18,onClick:function(){d(),function(e){return he.apply(this,arguments)}(o.name).then((function(){return t()})).finally((function(){return p()}))}}))))}function Lt(){var e=_e().providers,t=(0,Be().translation)("Rules").t;return r.a.createElement(r.a.Fragment,null,0!==e.length&&r.a.createElement("div",{className:"proxies-container"},r.a.createElement(A,{title:t("providerTitle")}),r.a.createElement("ul",{className:"proxies-providers-list"},e.map((function(e){return r.a.createElement("li",{className:"proxies-providers-item",key:e.name},r.a.createElement(Tt,{provider:e}))})))))}function Rt(){var e=function(){var e=q(Qe),t=Object(E.a)(e,2),n=t[0],a=t[1];function r(){return(r=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,le();case 2:t=e.sent,a(t.data.rules);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}return{rules:n,update:function(){return r.apply(this,arguments)}}}(),t=e.rules,n=e.update,a=(0,Be().translation)("Rules").t;function c(e){var n=e.index,a=e.style,c=t[n];return r.a.createElement("li",{className:"rule-item",style:a},r.a.createElement(z,{className:"rule-item-row",gutter:24,align:"middle"},r.a.createElement(W,{className:"rule-type",span:6,offset:1},c.type),r.a.createElement(W,{className:"payload",span:11},c.payload),r.a.createElement(W,{className:"rule-proxy",span:6},c.proxy)))}return Object(J.a)("rules",n),r.a.createElement("div",{className:"page"},r.a.createElement(Lt,null),r.a.createElement(A,{title:a("title")}),r.a.createElement(U,{className:"rules-card"},r.a.createElement(St.a,{className:"rules"},(function(e){var n=e.height,a=e.width;return r.a.createElement(Pt.a,{height:n,width:a,itemCount:t.length,itemSize:50},c)}))))}var Dt=n(69),It=n.n(Dt),At=[{label:"\u4e2d\u6587",value:"zh_CN"},{label:"English",value:"en_US"}];function Bt(){var e,t,n,c=Me().premium,o=Ye(),s=o.data,i=o.update,l=Ge(),p=l.general,d=l.update,m=Ie().set,v=qe().data,h=Be(),b=h.translation,y=h.setLang,g=h.lang,x=b("Settings").t,w=D({socks5ProxyPort:7891,httpProxyPort:7890,mixedProxyPort:0}),k=Object(E.a)(w,2),j=k[0],C=k[1];function P(){return(P=Object(N.a)(O.a.mark((function e(t){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,se({mode:t});case 2:return e.next=4,d();case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function S(){return(S=Object(N.a)(O.a.mark((function e(t){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,null===f||void 0===f?void 0:f.setStartAtLogin(t);case 2:i();case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function T(){return(T=Object(N.a)(O.a.mark((function e(t){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,null===f||void 0===f?void 0:f.setSystemProxy(t);case 2:i();case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function L(){return(L=Object(N.a)(O.a.mark((function e(){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,se({port:j.httpProxyPort});case 2:return e.next=4,d();case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function R(){return(R=Object(N.a)(O.a.mark((function e(){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,se({"socks-port":j.socks5ProxyPort});case 2:return e.next=4,d();case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function I(){return(I=Object(N.a)(O.a.mark((function e(){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,se({"mixed-port":j.mixedProxyPort});case 2:return e.next=4,d();case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function B(){return(B=Object(N.a)(O.a.mark((function e(t){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,se({"allow-lan":t});case 2:return e.next=4,d();case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}Object(a.useEffect)((function(){var e,t,n;C("socks5ProxyPort",null!==(e=null===p||void 0===p?void 0:p.socksPort)&&void 0!==e?e:0),C("httpProxyPort",null!==(t=null===p||void 0===p?void 0:p.port)&&void 0!==t?t:0),C("mixedProxyPort",null!==(n=null===p||void 0===p?void 0:p.mixedPort)&&void 0!==n?n:0)}),[p,C]);var _=v.hostname,G=v.port,J=p.allowLan,V=p.mode,X=null!==(e=null===s||void 0===s?void 0:s.startAtLogin)&&void 0!==e&&e,Y=null!==(t=null===s||void 0===s?void 0:s.systemProxy)&&void 0!==t&&t,K=null!==(n=null===s||void 0===s?void 0:s.isClashX)&&void 0!==n&&n,q=Object(a.useMemo)((function(){var e=[{label:x("values.global"),value:"Global"},{label:x("values.rules"),value:"Rule"},{label:x("values.direct"),value:"Direct"}];return c&&e.push({label:x("values.script"),value:"Script"}),e}),[x,c]);return r.a.createElement("div",{className:"page"},r.a.createElement(A,{title:x("title")}),r.a.createElement(U,{className:"settings-card"},r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.startAtLogin"))),r.a.createElement(W,{span:8,className:"value-column"},r.a.createElement(M,{disabled:!(null===s||void 0===s?void 0:s.isClashX),checked:X,onChange:function(e){return S.apply(this,arguments)}}))),r.a.createElement(W,{span:12},r.a.createElement(W,{span:8,offset:1},r.a.createElement("span",{className:"label"},x("labels.language"))),r.a.createElement(W,{span:14,className:"value-column"},r.a.createElement(F,{options:At,value:g,onSelect:function(e){y(e)}})))),r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.setAsSystemProxy"))),r.a.createElement(W,{span:8,className:"value-column"},r.a.createElement(M,{disabled:!K,checked:Y,onChange:function(e){return T.apply(this,arguments)}}))),r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.allowConnectFromLan"))),r.a.createElement(W,{span:8,className:"value-column"},r.a.createElement(M,{checked:J,onChange:function(e){return B.apply(this,arguments)}}))))),r.a.createElement(U,{className:"settings-card"},r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:12},r.a.createElement(W,{span:8,offset:1},r.a.createElement("span",{className:"label"},x("labels.proxyMode"))),r.a.createElement(W,{span:14,className:"value-column"},r.a.createElement(F,{options:q,value:It()(V),onSelect:function(e){return P.apply(this,arguments)}}))),r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.socks5ProxyPort"))),r.a.createElement(W,{span:8},r.a.createElement($e,{disabled:K,value:j.socks5ProxyPort,onChange:function(e){return C("socks5ProxyPort",+e)},onBlur:function(){return R.apply(this,arguments)}})))),r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.httpProxyPort"))),r.a.createElement(W,{span:8},r.a.createElement($e,{disabled:K,value:j.httpProxyPort,onChange:function(e){return C("httpProxyPort",+e)},onBlur:function(){return L.apply(this,arguments)}}))),r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.mixedProxyPort"))),r.a.createElement(W,{span:8},r.a.createElement($e,{disabled:K,value:j.mixedProxyPort,onChange:function(e){return C("mixedProxyPort",+e)},onBlur:function(){return I.apply(this,arguments)}})))),r.a.createElement(z,null,r.a.createElement(W,{span:12},r.a.createElement(W,{span:12,offset:1},r.a.createElement("span",{className:"label"},x("labels.externalController"))),r.a.createElement(W,{className:"external-controller",span:10},r.a.createElement("span",{className:u()({"modify-btn":!K}),onClick:function(){return!K&&m(!1)}},"".concat(_,":").concat(G)))))),r.a.createElement(U,{className:"clash-version",style:{display:"none"}},r.a.createElement("span",{className:"check-icon"},r.a.createElement(H,{type:"check",size:20})),r.a.createElement("p",{className:"version-info"},x("versionString")),r.a.createElement("span",{className:"check-update-btn"},x("checkUpdate"))))}var Ht=n.p+"static/media/logo.45983944.png";function Mt(e){var t=e.routes,n=Be().translation,r=Me(),c=r.version,s=r.premium,i=r.update,l=Ye().data,p=n("SideBar").t;Object(J.a)("version",i);var d=t.map((function(e){var t=e.path,n=e.name,r=e.exact,c=e.noMobile;return a.createElement("li",{className:u()("item",{"no-mobile":c}),key:n},a.createElement(o.b,{to:t,activeClassName:"active",exact:!!r},p(n)))}));return a.createElement("div",{className:"sidebar"},a.createElement("img",{src:Ht,alt:"logo",className:"sidebar-logo"}),a.createElement("ul",{className:"sidebar-menu"},d),a.createElement("div",{className:"sidebar-version"},a.createElement("span",{className:"sidebar-version-label"},"Clash",(null===l||void 0===l?void 0:l.isClashX)&&"X"," ",p("Version")),a.createElement("span",{className:"sidebar-version-text"},c),s&&a.createElement("span",{className:"sidebar-version-label"},"Premium")))}var Ut=n(25),zt=n(152),Wt=n(71),Ft=n(72);function _t(e){var t=Be().translation,n=Object(a.useMemo)((function(){return t("Connections").t}),[t]),c=e.className,o=e.style,s=u()("connections-devices",c);function i(t){var n;null===(n=e.onChange)||void 0===n||n.call(e,t)}return r.a.createElement("div",{className:s,style:o},r.a.createElement("div",{className:u()("connections-devices-item",{selected:""===e.selected}),onClick:function(){return i("")}},n("filter.all")),e.devices.map((function(t){return r.a.createElement("div",{className:u()("connections-devices-item",{selected:e.selected===t.label}),onClick:function(){return i(t.label)}},t.label," (",t.number,")")})))}var Gt,Jt=function(){function e(){Object(p.a)(this,e),this.connections=new Map,this.saveDisconnection=!1}return Object(d.a)(e,[{key:"appendToSet",value:function(e){var t,n=e.reduce((function(e,t){return e.set(t.id,t)}),new Map),a=Object(j.a)(this.connections.keys());try{for(a.s();!(t=a.n()).done;){var r=t.value;if(!n.has(r))if(this.saveDisconnection){var c=this.connections.get(r);c&&(c.completed=!0,c.uploadSpeed=0,c.downloadSpeed=0)}else this.connections.delete(r)}}catch(d){a.e(d)}finally{a.f()}var o,s=Object(j.a)(n.keys());try{for(s.s();!(o=s.n()).done;){var i,l=o.value;if(this.connections.has(l)){var u=this.connections.get(l),p=n.get(l);null===(i=this.connections)||void 0===i||i.set(l,Object(B.a)(Object(B.a)({},p),{},{uploadSpeed:p.upload-u.upload,downloadSpeed:p.download-u.download}))}else this.connections.set(l,Object(B.a)(Object(B.a)({},n.get(l)),{},{uploadSpeed:0,downloadSpeed:0}))}}catch(d){s.e(d)}finally{s.f()}}},{key:"toggleSave",value:function(){if(this.saveDisconnection){this.saveDisconnection=!1;var e,t=Object(j.a)(this.connections.keys());try{for(t.s();!(e=t.n()).done;){var n,a,r=e.value;(null===(n=this.connections)||void 0===n||null===(a=n.get(r))||void 0===a?void 0:a.completed)&&this.connections.delete(r)}}catch(c){t.e(c)}finally{t.f()}}else this.saveDisconnection=!0;return this.saveDisconnection}},{key:"getConnections",value:function(){return Object(ee.a)(this.connections.values())}}]),e}();!function(e){e.Host="host",e.Network="network",e.Type="type",e.Chains="chains",e.Rule="rule",e.Speed="speed",e.Upload="upload",e.Download="download",e.SourceIP="sourceIP",e.Time="time"}(Gt||(Gt={}));var Vt,Xt=new Set([Gt.Network,Gt.Type,Gt.Rule,Gt.Speed,Gt.Upload,Gt.Download,Gt.SourceIP,Gt.Time]);function Yt(e){for(var t=["B","KB","MB","GB","TB"],n=0;~~(e/1024)&&n1&&r.a.createElement(_t,{devices:w,selected:J,onChange:function(e){V(e),null===z||void 0===z||z(Gt.SourceIP,e)}}),r.a.createElement(U,{className:"connections-card"},r.a.createElement("div",Object.assign({},T(),{className:"connections",ref:k}),r.a.createElement("div",Object.assign({},W.getHeaderGroupProps(),{className:"connections-header"}),W.headers.map((function(e,t){var n=e,a=n.id;return r.a.createElement("div",Object.assign({},n.getHeaderProps(),{className:u()("connections-th",{resizing:n.isResizing,fixed:0!==C&&n.id===Gt.Host}),key:a}),r.a.createElement("div",n.getSortByToggleProps(),e.render("Header"),n.isSorted?n.isSortedDesc?" \u2193":" \u2191":null),t!==W.headers.length-1&&r.a.createElement("div",Object.assign({},n.getResizerProps(),{className:"connections-resizer"})))}))),r.a.createElement("div",Object.assign({},L(),{className:"connections-body"}),B.map((function(e){return M(e),r.a.createElement("div",Object.assign({},e.getRowProps(),{className:"connections-item",key:e.original.id}),e.cells.map((function(t){var n=u()("connections-block",{center:Xt.has(t.column.id),completed:e.original.completed},{fixed:0!==C&&t.column.id===Gt.Host});return r.a.createElement("div",Object.assign({},t.getCellProps(),{className:n,key:t.column.id}),F(t))})))}))))),r.a.createElement(et,{title:c("closeAll.title"),show:d,onClose:f,onOk:function(){(function(){return Oe.apply(this,arguments)})().finally((function(){return f()}))}},c("closeAll.content")))}function qt(){var e=(0,Be().translation)("Settings").t,t=qe(),n=t.data,c=t.update,o=t.fetch,s=Ie(),i=s.identity,l=s.set,u=D({hostname:"",port:"",secret:""}),p=Object(E.a)(u,2),d=p[0],m=p[1];return Object(a.useEffect)((function(){o()}),[o]),Object(a.useEffect)((function(){m({hostname:n.hostname,port:n.port,secret:n.secret})}),[n,m]),r.a.createElement(et,{show:!i,title:e("externalControllerSetting.title"),bodyClassName:"external-controller",onClose:function(){return l(!0)},onOk:function(){var e=d.hostname,t=d.port,n=d.secret;c({hostname:e,port:t,secret:n})}},r.a.createElement(nt,{type:"info",inside:!0},r.a.createElement("p",null,e("externalControllerSetting.note"))),r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:4,className:"title"},e("externalControllerSetting.host")),r.a.createElement(W,{span:20,className:"form"},r.a.createElement($e,{align:"left",inside:!0,value:d.hostname,onChange:function(e){return m("hostname",e)}}))),r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:4,className:"title"},e("externalControllerSetting.port")),r.a.createElement(W,{span:20,className:"form"},r.a.createElement($e,{align:"left",inside:!0,value:d.port,onChange:function(e){return m("port",e)}}))),r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:4,className:"title"},e("externalControllerSetting.secret")),r.a.createElement(W,{span:20,className:"form"},r.a.createElement($e,{align:"left",inside:!0,value:d.secret,onChange:function(e){return m("secret",e)}}))))}function Qt(){Object(a.useEffect)((function(){Le()}),[]);var e=[{path:"/proxies",name:"Proxies",component:Nt},{path:"/logs",name:"Logs",component:Ct},{path:"/rules",name:"Rules",component:Rt,noMobile:!0},{path:"/connections",name:"Connections",component:Kt,noMobile:!0},{path:"/settings",name:"Settings",component:Bt}];return r.a.createElement("div",{className:u()("app",{"not-clashx":!m()})},r.a.createElement(Mt,{routes:e}),r.a.createElement("div",{className:"page-container"},r.a.createElement(i.b,{exact:!0,path:"/",component:function(){return r.a.createElement(i.a,{to:"/proxies"})}}),e.map((function(e){return r.a.createElement(i.b,{exact:!1,path:e.path,key:e.path,component:e.component})}))),r.a.createElement(qt,null))}function Zt(){var e=document.getElementById("root"),t=r.a.createElement(s.a,null,r.a.createElement(o.a,null,r.a.createElement(Qt,null)));Object(c.render)(t,e)}m()?(Vt=function(){return Zt()},f?Vt():f=new v(Vt)):Zt()},59:function(e,t){},60:function(e,t){},61:function(e,t,n){"use strict"},62:function(e,t,n){"use strict";var a;n.d(t,"a",(function(){return a})),function(e){e.Domain="Domain",e.DomainSuffix="DomainSuffix",e.DomainKeyword="DomainKeyword",e.GeoIP="GeoIP",e.IPCIDR="IPCIDR",e.SrcIPCIDR="SrcIPCIDR",e.SrcPort="SrcPort",e.DstPort="DstPort",e.MATCH="MATCH",e.RuleSet="RuleSet"}(a||(a={}))},63:function(e,t,n){"use strict"},72:function(e,t,n){"use strict";var a=n(59);n.o(a,"RuleType")&&n.d(t,"RuleType",(function(){return a.RuleType}));var r=n(60);n.o(r,"RuleType")&&n.d(t,"RuleType",(function(){return r.RuleType}));n(61);var c=n(62);n.d(t,"RuleType",(function(){return c.a}));n(63)}},[[150,1,2]]]); \ No newline at end of file +(this["webpackJsonpclash-dashboard"]=this["webpackJsonpclash-dashboard"]||[]).push([[0],{150:function(e,t,n){"use strict";n.r(t);var a=n(0),r=n.n(a),c=n(17),o=n(26),s=n(8),i=n(9),l=n(3),u=n.n(l),p=n(10),d=n(18);function m(){return"ClashX Runtime"===navigator.userAgent}var f=null,v=function(){function e(t){var n=this;Object(p.a)(this,e),this.instance=null,window.WebViewJavascriptBridge&&(this.instance=window.WebViewJavascriptBridge),this.initBridge((function(e){n.instance=e,t()}))}return Object(d.a)(e,[{key:"initBridge",value:function(e){if(!m())return null===e||void 0===e?void 0:e(null);if(window.WebViewJavascriptBridge)return e(window.WebViewJavascriptBridge);if(window.WVJBCallbacks)return window.WVJBCallbacks.push(e);window.WVJBCallbacks=[e];var t=document.createElement("iframe");t.style.display="none",t.src="https://__bridge_loaded__",document.documentElement.appendChild(t),setTimeout((function(){return document.documentElement.removeChild(t)}),0)}},{key:"callHandler",value:function(e,t){var n=this;return new Promise((function(a){var r;null===(r=n.instance)||void 0===r||r.callHandler(e,t,a)}))}},{key:"ping",value:function(){return this.callHandler("ping")}},{key:"readConfigString",value:function(){return this.callHandler("readConfigString")}},{key:"getPasteboard",value:function(){return this.callHandler("getPasteboard")}},{key:"getAPIInfo",value:function(){return this.callHandler("apiInfo")}},{key:"setPasteboard",value:function(e){return this.callHandler("setPasteboard",e)}},{key:"writeConfigWithString",value:function(e){return this.callHandler("writeConfigWithString",e)}},{key:"setSystemProxy",value:function(e){return this.callHandler("setSystemProxy",e)}},{key:"getStartAtLogin",value:function(){return this.callHandler("getStartAtLogin")}},{key:"getProxyDelay",value:function(e){return this.callHandler("speedTest",e)}},{key:"setStartAtLogin",value:function(e){return this.callHandler("setStartAtLogin",e)}},{key:"isSystemProxySet",value:function(){return this.callHandler("isSystemProxySet")}}]),e}();var h,b=n(21),y=n(36),g=n.n(y);!function(e){e.SPEED_NOTIFY="speed-notify"}(h||(h={}));var x=new(function(){function e(){Object(p.a)(this,e),this.EE=new g.a}return Object(d.a)(e,[{key:"notifySpeedTest",value:function(){this.EE.emit(h.SPEED_NOTIFY)}},{key:"subscribe",value:function(e,t){this.EE.addListener(e,t)}},{key:"unsubscribe",value:function(e,t){this.EE.removeListener(e,t)}}]),e}()),E=n(2),w=n(64),k=n(1),O=n.n(k),j=n(5),N=n(4);function C(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return window.localStorage.getItem(e)||t}function P(e,t){return window.localStorage.setItem(e,t)}function S(){}function T(e){return L.apply(this,arguments)}function L(){return(L=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,t;case 3:return n=e.sent,e.abrupt("return",[n,null]);case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",[null,e.t0]);case 10:case"end":return e.stop()}}),e,null,[[0,7]])})))).apply(this,arguments)}function R(e,t){var n,a=[],r=[],c=Object(j.a)(e);try{for(c.s();!(n=c.n()).done;){var o=n.value;t(o)?a.push(o):r.push(o)}}catch(s){c.e(s)}finally{c.f()}return[a,r]}function D(e){var t=Object(w.a)(e),n=Object(E.a)(t,2),r=n[0],c=n[1];return[r,Object(a.useMemo)((function(){return function(e,t){"string"===typeof e?c((function(n){var a=t;n[e]=a})):"function"===typeof e?c(e):"object"===typeof e&&c((function(t){for(var n=e,a=0,r=Object.keys(n);a0&&void 0!==arguments[0]&&arguments[0],t=Object(a.useState)(e),n=Object(E.a)(t,2),r=n[0],c=n[1];function o(){c(!1)}function s(){c(!0)}return{visible:r,hide:o,show:s}}function A(e){var t=e.title,n=e.children,r=e.className,c=e.style;return a.createElement("header",{className:u()("header",r),style:c},a.createElement("h1",null,t),a.createElement("div",{className:"operations"},n))}var B=n(6);function H(e){var t=e.type,n=e.size,r=void 0===n?14:n,c=e.className,o=e.style,s=u()("clash-iconfont","icon-".concat(t),c),i=Object(B.a)({fontSize:r},o),l=Object(B.a)(Object(B.a)({},e),{},{className:s,style:i});return a.createElement("i",l)}function M(e){var t=e.className,n=e.checked,r=void 0!==n&&n,c=e.disabled,o=void 0!==c&&c,s=e.onChange,i=void 0===s?S:s,l=u()("switch",{checked:r,disabled:o},t);return a.createElement("div",{className:l,onClick:function(){o||i(!r)}},a.createElement(H,{className:"switch-icon",type:"check",size:20,style:{fontWeight:"bold"}}))}function U(e){var t=e.className,n=e.style,r=e.children;return a.createElement("div",{className:u()("card",t),style:n},r)}function z(e){var t=e.gutter,n=void 0===t?24:t,r=e.align,c=void 0===r?"top":r,o=e.justify,s=void 0===o?"start":o,i=e.className,l=e.style,p=e.children;return a.createElement("div",{className:u()("row","row-gutter-".concat(n),"row-align-".concat(c),"row-justify-".concat(s),i),style:l},p)}function W(e){var t=e.offset,n=void 0===t?0:t,r=e.order,c=void 0===r?0:r,o=e.span,s=void 0===o?1:o,i=e.className,l=e.style,p=e.children,d=Object.assign({},{order:c},l);return a.createElement("div",{className:u()("column","column-offset-".concat(n),"column-span-".concat(s),i),style:d},p)}function F(e){var t=e.options,n=e.value,r=e.onSelect;return a.createElement("div",{className:"button-select"},t.map((function(e){return a.createElement("button",{value:e.value,key:e.value,className:u()("button-select-options",{actived:n===e.value}),onClick:function(){return null===r||void 0===r?void 0:r(e.value)}},e.label)})))}var _=n(65),G=n.n(_),J=n(19),V={en_US:{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"}},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"}},zh_CN:{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"}},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"}}},X="language",Y=Object.keys(V);var K=n(22);function q(e){var t=Object(s.d)(e),n=Object(E.a)(t,2),r=n[0],c=n[1];return[r,Object(a.useMemo)((function(){return function(e,t){if("string"===typeof e)c((function(n){return Object(K.a)(n,(function(n){var a=t;n[e]=a}))}));else if("function"===typeof e){var n=e;c((function(e){return Object(K.a)(e,n)}))}else"object"===typeof e&&c((function(t){return Object(K.a)(t,(function(t){for(var n=e,a=0,r=Object.keys(n);a0&&(t.innerBuffer.push(n),t.innerBuffer.length>t.config.bufferLength&&t.innerBuffer.splice(0,t.innerBuffer.length-t.config.bufferLength))})),a.addEventListener("close",(function(){return setTimeout(t.websocketLoop,t.config.retryInterval)})),a.addEventListener("error",(function(e){t.EE.emit("error",e),setTimeout(t.websocketLoop,t.config.retryInterval)}))}},{key:"loop",value:function(){var e=Object(N.a)(O.a.mark((function e(){var t,n,a,r,c,o,s,i,l,u,p,d,m;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,T(fetch(this.config.url,{mode:"cors",headers:this.config.token?{Authorization:"Bearer ".concat(this.config.token)}:{}}));case 2:if(t=e.sent,n=Object(E.a)(t,2),a=n[0],!(r=n[1])&&a.body){e.next=9;break}return this.retry(r),e.abrupt("return");case 9:c=a.body.getReader(),o=new TextDecoder;case 11:if(!this.isClose){e.next=14;break}return e.abrupt("break",29);case 14:return e.next=16,T(null===c||void 0===c?void 0:c.read());case 16:if(s=e.sent,i=Object(E.a)(s,2),l=i[0].value,!(u=i[1])){e.next=23;break}return this.retry(u),e.abrupt("break",29);case 23:p=o.decode(l).trim().split("\n"),d=p.map((function(e){return JSON.parse(e)})),this.EE.emit("data",d),this.config.bufferLength>0&&((m=this.innerBuffer).push.apply(m,Object(ee.a)(d)),this.innerBuffer.length>this.config.bufferLength&&this.innerBuffer.splice(0,this.innerBuffer.length-this.config.bufferLength)),e.next=11;break;case 29:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"retry",value:function(e){this.isClose||(this.EE.emit("error",e),window.setTimeout(this.loop,this.config.retryInterval))}},{key:"subscribe",value:function(e,t){this.EE.addListener(e,t)}},{key:"unsubscribe",value:function(e,t){this.EE.removeListener(e,t)}},{key:"buffer",value:function(){return this.innerBuffer.slice()}},{key:"destory",value:function(){this.EE.removeAllListeners(),this.isClose=!0}}]),e}();function ne(){return ae.apply(this,arguments)}function ae(){return(ae=Object(N.a)(O.a.mark((function e(){var t,n,a,r;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!m()){e.next=5;break}return e.next=3,f.getAPIInfo();case 3:return t=e.sent,e.abrupt("return",{hostname:t.host,port:t.port,secret:t.secret});case 5:if(n=C("externalControllerAddr","127.0.0.1"),a=C("externalControllerPort","9090"),r=C("secret",""),n&&a){e.next=10;break}throw new Error("can't get hostname or port");case 10:return e.abrupt("return",{hostname:n,port:a,secret:r});case 11:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var re=$(Object(N.a)(O.a.mark((function e(){var t,n,a,r;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ne();case 2:return t=e.sent,n=t.hostname,a=t.port,r=t.secret,e.abrupt("return",Z.a.create({baseURL:"//".concat(n,":").concat(a),headers:r?{Authorization:"Bearer ".concat(r)}:{}}));case 7:case"end":return e.stop()}}),e)}))));function ce(){return oe.apply(this,arguments)}function oe(){return(oe=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("configs"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function se(e){return ie.apply(this,arguments)}function ie(){return(ie=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.patch("configs",t));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function le(){return ue.apply(this,arguments)}function ue(){return(ue=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("rules"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function pe(){return de.apply(this,arguments)}function de(){return(de=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("providers/proxies",{validateStatus:function(e){return e>=200&&e<300||404===e}}).then((function(e){return 404===e.status&&(e.data={providers:{}}),e})));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function me(){return fe.apply(this,arguments)}function fe(){return(fe=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("providers/rules"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ve(){return(ve=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.put("providers/proxies/".concat(encodeURIComponent(t))));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function he(){return(he=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.put("providers/rules/".concat(encodeURIComponent(t))));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function be(){return(be=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.get("providers/proxies/".concat(encodeURIComponent(t),"/healthcheck")));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ye(){return ge.apply(this,arguments)}function ge(){return(ge=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("proxies"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function xe(){return Ee.apply(this,arguments)}function Ee(){return(Ee=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("version"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function we(e){return ke.apply(this,arguments)}function ke(){return(ke=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.get("proxies/".concat(encodeURIComponent(t),"/delay"),{params:{timeout:5e3,url:"http://www.gstatic.com/generate_204"}}));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Oe(){return(Oe=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.delete("connections"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function je(e){return Ne.apply(this,arguments)}function Ne(){return(Ne=Object(N.a)(O.a.mark((function e(t){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return n=e.sent,e.abrupt("return",n.delete("connections/".concat(t)));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ce(){return Pe.apply(this,arguments)}function Pe(){return(Pe=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return t=e.sent,e.abrupt("return",t.get("connections"));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Se(e,t){return Te.apply(this,arguments)}function Te(){return(Te=Object(N.a)(O.a.mark((function e(t,n){var a;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,re();case 2:return a=e.sent,e.abrupt("return",a.put("proxies/".concat(encodeURIComponent(t)),{name:n}));case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Le=$(Object(N.a)(O.a.mark((function e(){var t,n,a,r,c,o,s,i,l,u;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ne();case 2:return t=e.sent,e.next=5,ce();case 5:return n=e.sent,a=n.data,e.next=9,T(xe());case 9:return r=e.sent,c=Object(E.a)(r,2),o=c[0],s=c[1],i=s?"unkonwn version":o.data.version,l=!!i||!0,u="".concat(window.location.protocol,"//").concat(t.hostname,":").concat(t.port,"/logs?level=").concat(a["log-level"]),e.abrupt("return",new te({url:u,bufferLength:200,token:t.secret,useWebsocket:l}));case 17:case"end":return e.stop()}}),e)})))),Re=$(Object(N.a)(O.a.mark((function e(){var t,n,a,r,c,o,s,i;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ne();case 2:return t=e.sent,e.next=5,T(xe());case 5:return n=e.sent,a=Object(E.a)(n,2),r=a[0],c=a[1],o=c?"unkonwn version":r.data.version,s=!!o||!0,i="".concat(window.location.protocol,"//").concat(t.hostname,":").concat(t.port,"/connections"),e.abrupt("return",new te({url:i,bufferLength:200,token:t.secret,useWebsocket:s}));case 13:case"end":return e.stop()}}),e)})))),De=Object(s.b)({key:"identity",default:!0});function Ie(){var e=Object(s.d)(De),t=Object(E.a)(e,2),n=t[0],a=t[1];return{identity:n,wrapFetcher:function(e){return Object(N.a)(O.a.mark((function t(){var n,r,c,o,s,i=arguments;return O.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,T(e.apply(void 0,i));case 2:if(n=t.sent,r=Object(E.a)(n,2),c=r[0],o=r[1],!(s=o)||s.response&&401!==s.response.status){t.next=10;break}throw a(!1),o;case 10:return a(!0),t.abrupt("return",c);case 12:case"end":return t.stop()}}),t)})))},set:a}}var Ae=Object(s.b)({key:"i18n",default:function(){var e=C(X);if(e&&Y.includes(e))return e;var t,n=function(){var e=[];if(window.navigator)if(window.navigator.languages){var t,n=Object(j.a)(window.navigator.languages);try{for(n.s();!(t=n.n()).done;){var a=t.value;e.push(a)}}catch(r){n.e(r)}finally{n.f()}}else window.navigator.language&&e.push(navigator.language);return e}(),a=Object(j.a)(n);try{for(a.s();!(t=a.n()).done;){var r=t.value;if(r.includes("zh"))return"zh_CN";if(r.includes("us"))return"en_US"}}catch(c){a.e(c)}finally{a.f()}return"en_US"}()});function Be(){var e=Object(s.d)(Ae),t=Object(E.a)(e,2),n=t[0],r=t[1];var c=Object(a.useCallback)((function(e){return{t:function(t){return G()(V[n][e],t)}}}),[n]);return{lang:n,locales:Y,setLang:function(e){r(e),function(e){P(X,e)}(e)},translation:c}}var He=Object(s.b)({key:"version",default:{version:"",premium:!1}});function Me(){var e=Object(s.d)(He),t=Object(E.a)(e,2),n=t[0],a=t[1],r=Ie().set;function c(){return(c=Object(N.a)(O.a.mark((function e(){var t,n,c,o;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,T(xe());case 2:t=e.sent,n=Object(E.a)(t,2),c=n[0],o=n[1],r(!o),a(o?{version:"",premium:!1}:{version:c.data.version,premium:!!c.data.premium});case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}return{version:n.version,premium:n.premium,update:function(){return c.apply(this,arguments)}}}var Ue=Object(s.b)({key:"config",default:{breakConnections:!1}});function ze(){var e=q(Ue),t=Object(E.a)(e,2);return{data:t[0],set:t[1]}}var We=Object(s.b)({key:"proxyProvider",default:[]});function Fe(){var e=Object(s.d)(We),t=Object(E.a)(e,2),n=t[0],r=t[1],c=Object(J.a)("/providers/proxy",Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,pe();case 2:return t=e.sent,e.abrupt("return",Object.keys(t.data.providers).map((function(e){return t.data.providers[e]})).filter((function(e){return"default"!==e.name})).filter((function(e){return"Compatible"!==e.vehicleType})));case 4:case"end":return e.stop()}}),e)})))),o=c.data,i=c.mutate;return Object(a.useEffect)((function(){return r(null!==o&&void 0!==o?o:[])}),[o,r]),{providers:n,update:i}}function _e(){var e=Object(s.d)(He),t=Object(E.a)(e,1)[0].premium,n=Object(J.a)("/providers/rule",Object(N.a)(O.a.mark((function e(){var n;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return",[]);case 2:return e.next=4,me();case 4:return n=e.sent,e.abrupt("return",Object.keys(n.data.providers).map((function(e){return n.data.providers[e]})));case 6:case"end":return e.stop()}}),e)})))),a=n.data;return{providers:null!==a&&void 0!==a?a:[],update:n.mutate}}function Ge(){var e=Object(J.a)("/config",Object(N.a)(O.a.mark((function e(){var t,n,a;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ce();case 2:return n=e.sent,a=n.data,e.abrupt("return",{port:a.port,socksPort:a["socks-port"],mixedPort:null!==(t=a["mixed-port"])&&void 0!==t?t:0,redirPort:a["redir-port"],mode:a.mode.toLowerCase(),logLevel:a["log-level"],allowLan:a["allow-lan"]});case 5:case"end":return e.stop()}}),e)})))),t=e.data;return{general:null!==t&&void 0!==t?t:{},update:e.mutate}}var Je=Object(s.b)({key:"proxies",default:{proxies:[],groups:[],global:{name:"GLOBAL",type:"Selector",now:"",history:[],all:[]}}});function Ve(){var e=q(Je),t=Object(E.a)(e,2),n=t[0],r=t[1],c=Object(J.a)("/proxies",Object(N.a)(O.a.mark((function e(){var t,n,a,c,o,s,i,l,u;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ye();case 2:t=e.sent,(n=t.data.proxies.GLOBAL).name="GLOBAL",a=new Set(["Selector","URLTest","Fallback","LoadBalance"]),c=new Set(["DIRECT","REJECT","GLOBAL"]),o=n.all.filter((function(e){return!c.has(e)})).map((function(e){return Object(B.a)(Object(B.a)({},t.data.proxies[e]),{},{name:e})})),s=R(o,(function(e){return!a.has(e.type)})),i=Object(E.a)(s,2),l=i[0],u=i[1],r({proxies:l,groups:u,global:n});case 10:case"end":return e.stop()}}),e)})))).mutate,o=Object(a.useCallback)((function(e,t){r((function(n){var a,r=Object(j.a)(n.groups);try{for(r.s();!(a=r.n()).done;){var c=a.value;c.name===e&&(c.now=t)}}catch(o){r.e(o)}finally{r.f()}}))}),[r]);return{proxies:n.proxies,groups:n.groups,global:n.global,update:c,markProxySelected:o,set:r}}var Xe=Object(s.c)({key:"proxyMapping",get:function(e){var t,n=e.get,a=n(Je),r=n(We),c=new Map,o=Object(j.a)(a.proxies);try{for(o.s();!(t=o.n()).done;){var s=t.value;c.set(s.name,s)}}catch(f){o.e(f)}finally{o.f()}var i,l=Object(j.a)(r);try{for(l.s();!(i=l.n()).done;){var u,p=i.value,d=Object(j.a)(p.proxies);try{for(d.s();!(u=d.n()).done;){var m=u.value;c.set(m.name,m)}}catch(f){d.e(f)}finally{d.f()}}}catch(f){l.e(f)}finally{l.f()}return c}});function Ye(){var e=Object(J.a)("/clashx",Object(N.a)(O.a.mark((function e(){var t,n,a,r;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(m()){e.next=2;break}return e.abrupt("return",{isClashX:!1,startAtLogin:!1,systemProxy:!1});case 2:return e.next=4,null===f||void 0===f?void 0:f.getStartAtLogin();case 4:if(e.t1=t=e.sent,e.t0=null!==e.t1,!e.t0){e.next=8;break}e.t0=void 0!==t;case 8:if(!e.t0){e.next=12;break}e.t2=t,e.next=13;break;case 12:e.t2=!1;case 13:return a=e.t2,e.next=16,null===f||void 0===f?void 0:f.isSystemProxySet();case 16:if(e.t4=n=e.sent,e.t3=null!==e.t4,!e.t3){e.next=20;break}e.t3=void 0!==n;case 20:if(!e.t3){e.next=24;break}e.t5=n,e.next=25;break;case 24:e.t5=!1;case 25:return r=e.t5,e.abrupt("return",{startAtLogin:a,systemProxy:r,isClashX:!0});case 27:case"end":return e.stop()}}),e)}))));return{data:e.data,update:e.mutate}}var Ke=Object(s.b)({key:"apiData",default:{hostname:"127.0.0.1",port:"9090",secret:""}});function qe(){var e=Object(s.d)(Ke),t=Object(E.a)(e,2),n=t[0],r=t[1];function c(){return(c=Object(N.a)(O.a.mark((function e(t){var n,a,r;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=t.hostname,a=t.port,r=t.secret,P("externalControllerAddr",n),P("externalControllerPort",a),P("secret",r),window.location.reload();case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}return{data:n,fetch:Object(a.useCallback)(function(){var e=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ne();case 2:t=e.sent,r(Object(B.a)({},t));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),[r]),update:function(e){return c.apply(this,arguments)}}}var Qe=Object(s.b)({key:"rules",default:[]});function Ze(e){var t=e.className,n=e.data,c=e.onClick,o=e.select,s=e.canClick,i=e.errSet,l=e.rowHeight,p=(0,Be().translation)("Proxies").t,d=Object(a.useState)(!1),m=Object(E.a)(d,2),f=m[0],v=m[1],h=Object(a.useState)(!1),b=Object(E.a)(h,2),y=b[0],g=b[1],x=Object(a.useRef)(null);Object(a.useLayoutEffect)((function(){var e,t;g((null!==(e=null===x||void 0===x||null===(t=x.current)||void 0===t?void 0:t.offsetHeight)&&void 0!==e?e:0)>30)}),[]);var w=f?"auto":l,k=s?c:S;var O=n.map((function(e){var t=u()({"tags-selected":o===e,"can-click":s,error:null===i||void 0===i?void 0:i.has(e)});return r.a.createElement("li",{className:t,key:e,onClick:function(){return k(e)}},e)}));return r.a.createElement("div",{className:u()("tags-container",t),style:{height:w}},r.a.createElement("ul",{ref:x,className:u()("tags",{expand:f})},O),y&&r.a.createElement("span",{className:"tags-expand",onClick:function(){v(!f)}},p(f?"collapseText":"expandText")))}function $e(e){var t=e.className,n=e.style,r=e.value,c=void 0===r?"":r,o=e.align,s=void 0===o?"center":o,i=e.inside,l=void 0!==i&&i,p=e.autoFocus,d=void 0!==p&&p,m=e.type,f=void 0===m?"text":m,v=e.disabled,h=void 0!==v&&v,b=e.onChange,y=void 0===b?S:b,g=e.onBlur,x=void 0===g?S:g,E=u()("input","input-align-".concat(s),{"input-inside":l},t);return a.createElement("input",{disabled:h,className:E,style:n,value:c,autoFocus:d,type:f,onChange:function(e){return y(e.target.value,e)},onBlur:x})}function et(e){var t=e.show,n=void 0===t||t,o=e.title,s=void 0===o?"Modal":o,i=e.size,l=void 0===i?"small":i,p=e.footer,d=void 0===p||p,m=e.onOk,f=void 0===m?S:m,v=e.onClose,h=void 0===v?S:v,b=e.bodyClassName,y=e.bodyStyle,g=e.className,x=e.style,E=e.children,w=(0,Be().translation)("Modal").t,k=Object(a.useRef)(document.createElement("div")),O=Object(a.useRef)(null);Object(a.useLayoutEffect)((function(){var e=k.current;return document.body.appendChild(e),function(){document.body.removeChild(e)}}),[]);var j=r.a.createElement("div",{className:u()("modal-mask",{"modal-show":n}),ref:O,onMouseDown:function(e){e.target===O.current&&h()}},r.a.createElement("div",{className:u()("modal","modal-".concat(l),g),style:x},r.a.createElement("div",{className:"modal-title"},s),r.a.createElement("div",{className:u()("modal-body",b),style:y},E),d&&r.a.createElement("div",{className:"footer"},r.a.createElement(at,{onClick:function(){return h()}},w("cancel")),r.a.createElement(at,{type:"primary",onClick:function(){return f()}},w("ok")))));return Object(c.createPortal)(j,k.current)}var tt={success:"check",info:"info",warning:"info",error:"close"};function nt(e){var t=e.message,n=void 0===t?"":t,a=e.type,c=void 0===a?"info":a,o=e.inside,s=void 0!==o&&o,i=e.children,l=e.className,p=e.style,d=u()("alert","alert-".concat(s?"note":"box","-").concat(c),l);return r.a.createElement("div",{className:d,style:p},r.a.createElement("span",{className:"alert-icon"},r.a.createElement(H,{type:tt[c],size:26})),n?r.a.createElement("p",{className:"alert-message"},n):r.a.createElement("div",{className:"alert-message"},i))}function at(e){var t=e.type,n=void 0===t?"normal":t,r=e.onClick,c=void 0===r?S:r,o=e.children,s=e.className,i=e.style,l=u()("button","button-".concat(n),s);return a.createElement("button",{className:l,style:i,onClick:c},o)}function rt(e){var t=e.className,n=e.checked,r=void 0!==n&&n,c=e.onChange,o=void 0===c?S:c,s=u()("checkbox",{checked:r},t);return a.createElement("div",{className:s,onClick:function(){o(!r)}},a.createElement(H,{className:"checkbox-icon",type:"check",size:18}),a.createElement("div",null,e.children))}function ct(e){var t=e.color,n=e.className,r=e.style,c=u()("tag",n),o=Object(B.a)({color:t},r),s=Object(B.a)(Object(B.a)({},e),{},{className:c,style:o});return a.createElement("span",s,e.children)}function ot(e){var t=u()("spinner",e.className);return a.createElement("div",{className:t},a.createElement("div",{className:"spinner-circle"},a.createElement("div",{className:"spinner-inner"})),a.createElement("div",{className:"spinner-circle"},a.createElement("div",{className:"spinner-inner"})),a.createElement("div",{className:"spinner-circle"},a.createElement("div",{className:"spinner-inner"})),a.createElement("div",{className:"spinner-circle"},a.createElement("div",{className:"spinner-inner"})),a.createElement("div",{className:"spinner-circle"},a.createElement("div",{className:"spinner-inner"})))}function st(e){var t=u()("loading","visible",e.className);return e.visible?r.a.createElement("div",{className:t},r.a.createElement(ot,{className:e.spinnerClassName})):null}var it={"#909399":0,"#00c520":260,"#ff9a28":600,"#ff3e5e":1/0};function lt(e){return ut.apply(this,arguments)}function ut(){return(ut=Object(N.a)(O.a.mark((function e(t){var n,a,r,c;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!m()){e.next=14;break}return e.next=3,null===f||void 0===f?void 0:f.getProxyDelay(t);case 3:if(e.t1=n=e.sent,e.t0=null!==e.t1,!e.t0){e.next=7;break}e.t0=void 0!==n;case 7:if(!e.t0){e.next=11;break}e.t2=n,e.next=12;break;case 11:e.t2=0;case 12:return a=e.t2,e.abrupt("return",a);case 14:return e.next=16,we(t);case 16:return r=e.sent,c=r.data.delay,e.abrupt("return",c);case 19:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function pt(e){var t=e.config,n=e.className,c=Ve().set,o=Object(a.useCallback)(Object(N.a)(O.a.mark((function e(){var n,a,r,o,s;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,T(lt(t.name));case 2:n=e.sent,a=Object(E.a)(n,2),r=a[0],o=a[1],s=o?0:r,c((function(e){var n=e.proxies.find((function(e){return e.name===t.name}));n&&n.history.push({time:Date.now().toString(),delay:s})}));case 8:case"end":return e.stop()}}),e)}))),[t.name,c]),s=Object(a.useMemo)((function(){var e;return(null===(e=t.history)||void 0===e?void 0:e.length)?t.history.slice(-1)[0].delay:0}),[t]);Object(a.useLayoutEffect)((function(){return x.subscribe(h.SPEED_NOTIFY,o),function(){return x.unsubscribe(h.SPEED_NOTIFY,o)}}),[o]);var i=Object(a.useMemo)((function(){return 0===s}),[s]),l=Object(a.useMemo)((function(){return Object.keys(it).find((function(e){return s<=it[e]}))}),[s]),p=i?void 0:l;return r.a.createElement("div",{className:u()("proxy-item",{"proxy-error":i},n)},r.a.createElement("span",{className:"proxy-type",style:{backgroundColor:p}},t.type),r.a.createElement("p",{className:"proxy-name"},t.name),r.a.createElement("p",{className:"proxy-delay"},0===s?"-":"".concat(s,"ms")))}function dt(e){var t=Ve().markProxySelected,n=Object(s.e)(Xe),c=ze().data,o=e.config;function i(){return(i=Object(N.a)(O.a.mark((function n(a){var r,o,s,i,l,u,p;return O.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return n.next=2,Se(e.config.name,a);case 2:if(t(e.config.name,a),!c.breakConnections){n.next=11;break}return r=[],n.next=7,Ce();case 7:o=n.sent,s=Object(j.a)(o.data.connections);try{for(s.s();!(i=s.n()).done;)(l=i.value).chains.includes(e.config.name)&&r.push(l.id)}catch(d){s.e(d)}finally{s.f()}for(u=0,p=r;u1&&void 0!==arguments[1]?arguments[1]:0;if(e.length<2)throw new Error("List requires at least two elements");var n=Object(a.useState)(t),r=Object(E.a)(n,2),c=r[0],o=r[1];function s(){o((c+1)%e.length)}return{current:Object(a.useMemo)((function(){return e[c]}),[e,c]),next:s}}([ft.Asc,ft.Desc,ft.None]),c=n.current,o=n.next,s=Object(a.useMemo)((function(){switch(c){case ft.Desc:return e.slice().sort((function(e,t){return wt(e,t)}));case ft.Asc:return e.slice().sort((function(e,t){return-1*wt(e,t)}));default:return e.slice()}}),[c,e]),i=o;return r.a.createElement(r.a.Fragment,null,0!==s.length&&r.a.createElement("div",{className:"proxies-container"},r.a.createElement(A,{title:t("title")},r.a.createElement(H,{className:"proxies-action-icon",type:Et[c],onClick:i,size:20}),r.a.createElement(H,{className:"proxies-action-icon",type:"speed",size:20}),r.a.createElement("span",{className:"proxies-speed-test",onClick:function(){x.notifySpeedTest()}},t("speedTestText"))),r.a.createElement("ul",{className:"proxies-list"},s.map((function(e){return r.a.createElement("li",{key:e.name},r.a.createElement(pt,{config:e}))})))))}function Nt(){return r.a.createElement("div",{className:"page"},r.a.createElement(kt,null),r.a.createElement(Ot,null),r.a.createElement(jt,null))}function Ct(){var e=Object(a.useRef)(null),t=Object(a.useRef)([]),n=Object(a.useState)([]),c=Object(E.a)(n,2),o=c[0],s=c[1],i=(0,Be().translation)("Logs").t;return Object(a.useLayoutEffect)((function(){var t=e.current;t&&(t.scrollTop=t.scrollHeight)})),Object(a.useEffect)((function(){var e=null;function n(e){t.current=t.current.slice().concat(e.map((function(e){return Object(B.a)(Object(B.a)({},e),{},{time:new Date})}))),s(t.current)}return Object(N.a)(O.a.mark((function a(){return O.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.next=2,Le();case 2:e=a.sent,t.current=e.buffer(),s(t.current),e.subscribe("data",n);case 6:case"end":return a.stop()}}),a)})))(),function(){var t;return null===(t=e)||void 0===t?void 0:t.unsubscribe("data",n)}}),[]),r.a.createElement("div",{className:"page"},r.a.createElement(A,{title:i("title")}),r.a.createElement(U,{className:"logs-card"},r.a.createElement("ul",{className:"logs-panel",ref:e},o.map((function(e,t){return r.a.createElement("li",{key:t},r.a.createElement("span",{className:"logs-panel-time"},ht()(e.time).format("YYYY-MM-DD HH:mm:ss")),r.a.createElement("span",null,"[",e.type,"] ",e.payload))})))))}var Pt=n(73),St=n(68);function Tt(e){var t=_e().update,n=Be(),r=n.translation,c=n.lang,o=e.provider,s=r("Rules").t,i=I(),l=i.visible,p=i.hide,d=i.show;var m=u()("rule-provider-icon",{"rule-provider-loading":l});return a.createElement(U,{className:"rule-provider"},a.createElement("div",{className:"rule-provider-header"},a.createElement("div",{className:"rule-provider-header-part"},a.createElement("span",{className:"rule-provider-name"},o.name),a.createElement(ct,null,o.vehicleType),a.createElement(ct,{className:"rule-provider-behavior"},o.behavior),a.createElement("span",{className:"rule-provider-update"},"".concat(s("ruleCount"),": ").concat(o.ruleCount))),a.createElement("div",{className:"rule-provider-header-part"},o.updatedAt&&a.createElement("span",{className:"rule-provider-update"},"".concat(s("providerUpdateTime"),": ").concat(gt(new Date(o.updatedAt),c))),a.createElement(H,{className:m,type:"update",size:18,onClick:function(){d(),function(e){return he.apply(this,arguments)}(o.name).then((function(){return t()})).finally((function(){return p()}))}}))))}function Lt(){var e=_e().providers,t=(0,Be().translation)("Rules").t;return r.a.createElement(r.a.Fragment,null,0!==e.length&&r.a.createElement("div",{className:"proxies-container"},r.a.createElement(A,{title:t("providerTitle")}),r.a.createElement("ul",{className:"proxies-providers-list"},e.map((function(e){return r.a.createElement("li",{className:"proxies-providers-item",key:e.name},r.a.createElement(Tt,{provider:e}))})))))}function Rt(){var e=function(){var e=q(Qe),t=Object(E.a)(e,2),n=t[0],a=t[1];function r(){return(r=Object(N.a)(O.a.mark((function e(){var t;return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,le();case 2:t=e.sent,a(t.data.rules);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}return{rules:n,update:function(){return r.apply(this,arguments)}}}(),t=e.rules,n=e.update,a=(0,Be().translation)("Rules").t;function c(e){var n=e.index,a=e.style,c=t[n];return r.a.createElement("li",{className:"rule-item",style:a},r.a.createElement(z,{className:"rule-item-row",gutter:24,align:"middle"},r.a.createElement(W,{className:"rule-type",span:6,offset:1},c.type),r.a.createElement(W,{className:"payload",span:11},c.payload),r.a.createElement(W,{className:"rule-proxy",span:6},c.proxy)))}return Object(J.a)("rules",n),r.a.createElement("div",{className:"page"},r.a.createElement(Lt,null),r.a.createElement(A,{title:a("title")}),r.a.createElement(U,{className:"rules-card"},r.a.createElement(St.a,{className:"rules"},(function(e){var n=e.height,a=e.width;return r.a.createElement(Pt.a,{height:n,width:a,itemCount:t.length,itemSize:50},c)}))))}var Dt=n(69),It=n.n(Dt),At=[{label:"\u4e2d\u6587",value:"zh_CN"},{label:"English",value:"en_US"}];function Bt(){var e,t,n,c=Me().premium,o=Ye(),s=o.data,i=o.update,l=Ge(),p=l.general,d=l.update,m=Ie().set,v=qe().data,h=Be(),b=h.translation,y=h.setLang,g=h.lang,x=b("Settings").t,w=D({socks5ProxyPort:7891,httpProxyPort:7890,mixedProxyPort:0}),k=Object(E.a)(w,2),j=k[0],C=k[1];function P(){return(P=Object(N.a)(O.a.mark((function e(t){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,se({mode:t});case 2:return e.next=4,d();case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function S(){return(S=Object(N.a)(O.a.mark((function e(t){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,null===f||void 0===f?void 0:f.setStartAtLogin(t);case 2:i();case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function T(){return(T=Object(N.a)(O.a.mark((function e(t){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,null===f||void 0===f?void 0:f.setSystemProxy(t);case 2:i();case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function L(){return(L=Object(N.a)(O.a.mark((function e(){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,se({port:j.httpProxyPort});case 2:return e.next=4,d();case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function R(){return(R=Object(N.a)(O.a.mark((function e(){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,se({"socks-port":j.socks5ProxyPort});case 2:return e.next=4,d();case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function I(){return(I=Object(N.a)(O.a.mark((function e(){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,se({"mixed-port":j.mixedProxyPort});case 2:return e.next=4,d();case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function B(){return(B=Object(N.a)(O.a.mark((function e(t){return O.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,se({"allow-lan":t});case 2:return e.next=4,d();case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}Object(a.useEffect)((function(){var e,t,n;C("socks5ProxyPort",null!==(e=null===p||void 0===p?void 0:p.socksPort)&&void 0!==e?e:0),C("httpProxyPort",null!==(t=null===p||void 0===p?void 0:p.port)&&void 0!==t?t:0),C("mixedProxyPort",null!==(n=null===p||void 0===p?void 0:p.mixedPort)&&void 0!==n?n:0)}),[p,C]);var _=v.hostname,G=v.port,J=p.allowLan,V=p.mode,X=null!==(e=null===s||void 0===s?void 0:s.startAtLogin)&&void 0!==e&&e,Y=null!==(t=null===s||void 0===s?void 0:s.systemProxy)&&void 0!==t&&t,K=null!==(n=null===s||void 0===s?void 0:s.isClashX)&&void 0!==n&&n,q=Object(a.useMemo)((function(){var e=[{label:x("values.global"),value:"Global"},{label:x("values.rules"),value:"Rule"},{label:x("values.direct"),value:"Direct"}];return c&&e.push({label:x("values.script"),value:"Script"}),e}),[x,c]);return r.a.createElement("div",{className:"page"},r.a.createElement(A,{title:x("title")}),r.a.createElement(U,{className:"settings-card"},r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.startAtLogin"))),r.a.createElement(W,{span:8,className:"value-column"},r.a.createElement(M,{disabled:!(null===s||void 0===s?void 0:s.isClashX),checked:X,onChange:function(e){return S.apply(this,arguments)}}))),r.a.createElement(W,{span:12},r.a.createElement(W,{span:8,offset:1},r.a.createElement("span",{className:"label"},x("labels.language"))),r.a.createElement(W,{span:14,className:"value-column"},r.a.createElement(F,{options:At,value:g,onSelect:function(e){y(e)}})))),r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.setAsSystemProxy"))),r.a.createElement(W,{span:8,className:"value-column"},r.a.createElement(M,{disabled:!K,checked:Y,onChange:function(e){return T.apply(this,arguments)}}))),r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.allowConnectFromLan"))),r.a.createElement(W,{span:8,className:"value-column"},r.a.createElement(M,{checked:J,onChange:function(e){return B.apply(this,arguments)}}))))),r.a.createElement(U,{className:"settings-card"},r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:12},r.a.createElement(W,{span:8,offset:1},r.a.createElement("span",{className:"label"},x("labels.proxyMode"))),r.a.createElement(W,{span:14,className:"value-column"},r.a.createElement(F,{options:q,value:It()(V),onSelect:function(e){return P.apply(this,arguments)}}))),r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.socks5ProxyPort"))),r.a.createElement(W,{span:8},r.a.createElement($e,{disabled:K,value:j.socks5ProxyPort,onChange:function(e){return C("socks5ProxyPort",+e)},onBlur:function(){return R.apply(this,arguments)}})))),r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.httpProxyPort"))),r.a.createElement(W,{span:8},r.a.createElement($e,{disabled:K,value:j.httpProxyPort,onChange:function(e){return C("httpProxyPort",+e)},onBlur:function(){return L.apply(this,arguments)}}))),r.a.createElement(W,{span:12},r.a.createElement(W,{span:14,offset:1},r.a.createElement("span",{className:"label"},x("labels.mixedProxyPort"))),r.a.createElement(W,{span:8},r.a.createElement($e,{disabled:K,value:j.mixedProxyPort,onChange:function(e){return C("mixedProxyPort",+e)},onBlur:function(){return I.apply(this,arguments)}})))),r.a.createElement(z,null,r.a.createElement(W,{span:12},r.a.createElement(W,{span:12,offset:1},r.a.createElement("span",{className:"label"},x("labels.externalController"))),r.a.createElement(W,{className:"external-controller",span:10},r.a.createElement("span",{className:u()({"modify-btn":!K}),onClick:function(){return!K&&m(!1)}},"".concat(_,":").concat(G)))))),r.a.createElement(U,{className:"clash-version",style:{display:"none"}},r.a.createElement("span",{className:"check-icon"},r.a.createElement(H,{type:"check",size:20})),r.a.createElement("p",{className:"version-info"},x("versionString")),r.a.createElement("span",{className:"check-update-btn"},x("checkUpdate"))))}var Ht=n.p+"static/media/logo.45983944.png";function Mt(e){var t=e.routes,n=Be().translation,r=Me(),c=r.version,s=r.premium,i=r.update,l=Ye().data,p=n("SideBar").t;Object(J.a)("version",i);var d=t.map((function(e){var t=e.path,n=e.name,r=e.exact,c=e.noMobile;return a.createElement("li",{className:u()("item",{"no-mobile":c}),key:n},a.createElement(o.b,{to:t,activeClassName:"active",exact:!!r},p(n)))}));return a.createElement("div",{className:"sidebar"},a.createElement("img",{src:Ht,alt:"logo",className:"sidebar-logo"}),a.createElement("ul",{className:"sidebar-menu"},d),a.createElement("div",{className:"sidebar-version"},a.createElement("span",{className:"sidebar-version-label"},"Clash",(null===l||void 0===l?void 0:l.isClashX)&&"X"," ",p("Version")),a.createElement("span",{className:"sidebar-version-text"},c),s&&a.createElement("span",{className:"sidebar-version-label"},"Premium")))}var Ut=n(25),zt=n(152),Wt=n(71),Ft=n(72);function _t(e){var t=Be().translation,n=Object(a.useMemo)((function(){return t("Connections").t}),[t]),c=e.className,o=e.style,s=u()("connections-devices",c);function i(t){var n;null===(n=e.onChange)||void 0===n||n.call(e,t)}return r.a.createElement("div",{className:s,style:o},r.a.createElement("div",{className:u()("connections-devices-item",{selected:""===e.selected}),onClick:function(){return i("")}},n("filter.all")),e.devices.map((function(t){return r.a.createElement("div",{className:u()("connections-devices-item",{selected:e.selected===t.label}),onClick:function(){return i(t.label)}},t.label," (",t.number,")")})))}var Gt,Jt=function(){function e(){Object(p.a)(this,e),this.connections=new Map,this.saveDisconnection=!1}return Object(d.a)(e,[{key:"appendToSet",value:function(e){var t,n=e.reduce((function(e,t){return e.set(t.id,t)}),new Map),a=Object(j.a)(this.connections.keys());try{for(a.s();!(t=a.n()).done;){var r=t.value;if(!n.has(r))if(this.saveDisconnection){var c=this.connections.get(r);c&&(c.completed=!0,c.uploadSpeed=0,c.downloadSpeed=0)}else this.connections.delete(r)}}catch(d){a.e(d)}finally{a.f()}var o,s=Object(j.a)(n.keys());try{for(s.s();!(o=s.n()).done;){var i,l=o.value;if(this.connections.has(l)){var u=this.connections.get(l),p=n.get(l);null===(i=this.connections)||void 0===i||i.set(l,Object(B.a)(Object(B.a)({},p),{},{uploadSpeed:p.upload-u.upload,downloadSpeed:p.download-u.download}))}else this.connections.set(l,Object(B.a)(Object(B.a)({},n.get(l)),{},{uploadSpeed:0,downloadSpeed:0}))}}catch(d){s.e(d)}finally{s.f()}}},{key:"toggleSave",value:function(){if(this.saveDisconnection){this.saveDisconnection=!1;var e,t=Object(j.a)(this.connections.keys());try{for(t.s();!(e=t.n()).done;){var n,a,r=e.value;(null===(n=this.connections)||void 0===n||null===(a=n.get(r))||void 0===a?void 0:a.completed)&&this.connections.delete(r)}}catch(c){t.e(c)}finally{t.f()}}else this.saveDisconnection=!0;return this.saveDisconnection}},{key:"getConnections",value:function(){return Object(ee.a)(this.connections.values())}}]),e}();!function(e){e.Host="host",e.Network="network",e.Type="type",e.Chains="chains",e.Rule="rule",e.Speed="speed",e.Upload="upload",e.Download="download",e.SourceIP="sourceIP",e.Time="time"}(Gt||(Gt={}));var Vt,Xt=new Set([Gt.Network,Gt.Type,Gt.Rule,Gt.Speed,Gt.Upload,Gt.Download,Gt.SourceIP,Gt.Time]);function Yt(e){for(var t=["B","KB","MB","GB","TB"],n=0;~~(e/1024)&&n1&&r.a.createElement(_t,{devices:w,selected:J,onChange:function(e){V(e),null===z||void 0===z||z(Gt.SourceIP,e)}}),r.a.createElement(U,{className:"connections-card"},r.a.createElement("div",Object.assign({},T(),{className:"connections",ref:k}),r.a.createElement("div",Object.assign({},W.getHeaderGroupProps(),{className:"connections-header"}),W.headers.map((function(e,t){var n=e,a=n.id;return r.a.createElement("div",Object.assign({},n.getHeaderProps(),{className:u()("connections-th",{resizing:n.isResizing,fixed:C>0&&n.id===Gt.Host}),key:a}),r.a.createElement("div",n.getSortByToggleProps(),e.render("Header"),n.isSorted?n.isSortedDesc?" \u2193":" \u2191":null),t!==W.headers.length-1&&r.a.createElement("div",Object.assign({},n.getResizerProps(),{className:"connections-resizer"})))}))),r.a.createElement("div",Object.assign({},L(),{className:"connections-body"}),B.map((function(e){return M(e),r.a.createElement("div",Object.assign({},e.getRowProps(),{className:"connections-item",key:e.original.id}),e.cells.map((function(t){var n=u()("connections-block",{center:Xt.has(t.column.id),completed:e.original.completed},{fixed:C>0&&t.column.id===Gt.Host});return r.a.createElement("div",Object.assign({},t.getCellProps(),{className:n,key:t.column.id}),F(t))})))}))))),r.a.createElement(et,{title:c("closeAll.title"),show:d,onClose:f,onOk:function(){(function(){return Oe.apply(this,arguments)})().finally((function(){return f()}))}},c("closeAll.content")))}function qt(){var e=(0,Be().translation)("Settings").t,t=qe(),n=t.data,c=t.update,o=t.fetch,s=Ie(),i=s.identity,l=s.set,u=D({hostname:"",port:"",secret:""}),p=Object(E.a)(u,2),d=p[0],m=p[1];return Object(a.useEffect)((function(){o()}),[o]),Object(a.useEffect)((function(){m({hostname:n.hostname,port:n.port,secret:n.secret})}),[n,m]),r.a.createElement(et,{show:!i,title:e("externalControllerSetting.title"),bodyClassName:"external-controller",onClose:function(){return l(!0)},onOk:function(){var e=d.hostname,t=d.port,n=d.secret;c({hostname:e,port:t,secret:n})}},r.a.createElement(nt,{type:"info",inside:!0},r.a.createElement("p",null,e("externalControllerSetting.note"))),r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:4,className:"title"},e("externalControllerSetting.host")),r.a.createElement(W,{span:20,className:"form"},r.a.createElement($e,{align:"left",inside:!0,value:d.hostname,onChange:function(e){return m("hostname",e)}}))),r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:4,className:"title"},e("externalControllerSetting.port")),r.a.createElement(W,{span:20,className:"form"},r.a.createElement($e,{align:"left",inside:!0,value:d.port,onChange:function(e){return m("port",e)}}))),r.a.createElement(z,{gutter:24,align:"middle"},r.a.createElement(W,{span:4,className:"title"},e("externalControllerSetting.secret")),r.a.createElement(W,{span:20,className:"form"},r.a.createElement($e,{align:"left",inside:!0,value:d.secret,onChange:function(e){return m("secret",e)}}))))}function Qt(){Object(a.useEffect)((function(){Le()}),[]);var e=[{path:"/proxies",name:"Proxies",component:Nt},{path:"/logs",name:"Logs",component:Ct},{path:"/rules",name:"Rules",component:Rt,noMobile:!0},{path:"/connections",name:"Connections",component:Kt,noMobile:!0},{path:"/settings",name:"Settings",component:Bt}];return r.a.createElement("div",{className:u()("app",{"not-clashx":!m()})},r.a.createElement(Mt,{routes:e}),r.a.createElement("div",{className:"page-container"},r.a.createElement(i.b,{exact:!0,path:"/",component:function(){return r.a.createElement(i.a,{to:"/proxies"})}}),e.map((function(e){return r.a.createElement(i.b,{exact:!1,path:e.path,key:e.path,component:e.component})}))),r.a.createElement(qt,null))}function Zt(){var e=document.getElementById("root"),t=r.a.createElement(s.a,null,r.a.createElement(o.a,null,r.a.createElement(Qt,null)));Object(c.render)(t,e)}m()?(Vt=function(){return Zt()},f?Vt():f=new v(Vt)):Zt()},59:function(e,t){},60:function(e,t){},61:function(e,t,n){"use strict"},62:function(e,t,n){"use strict";var a;n.d(t,"a",(function(){return a})),function(e){e.Domain="Domain",e.DomainSuffix="DomainSuffix",e.DomainKeyword="DomainKeyword",e.GeoIP="GeoIP",e.IPCIDR="IPCIDR",e.SrcIPCIDR="SrcIPCIDR",e.SrcPort="SrcPort",e.DstPort="DstPort",e.MATCH="MATCH",e.RuleSet="RuleSet"}(a||(a={}))},63:function(e,t,n){"use strict"},72:function(e,t,n){"use strict";var a=n(59);n.o(a,"RuleType")&&n.d(t,"RuleType",(function(){return a.RuleType}));var r=n(60);n.o(r,"RuleType")&&n.d(t,"RuleType",(function(){return r.RuleType}));n(61);var c=n(62);n.d(t,"RuleType",(function(){return c.a}));n(63)}},[[150,1,2]]]); \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash.sh index 5bef54a7b4..201fcd4a68 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash.sh @@ -17,6 +17,7 @@ dns_port=$(uci get openclash.config.dns_port 2>/dev/null) enable_redirect_dns=$(uci get openclash.config.enable_redirect_dns 2>/dev/null) disable_masq_cache=$(uci get openclash.config.disable_masq_cache 2>/dev/null) if_restart=0 +only_download=0 urlencode() { local data @@ -29,7 +30,6 @@ urlencode() { } kill_watchdog() { - watchdog_pids=$(unify_ps_pids "openclash_watchdog.sh") for watchdog_pid in $watchdog_pids; do kill -9 "$watchdog_pid" >/dev/null 2>&1 @@ -57,7 +57,7 @@ config_cus_up() fi if [ -z "$subscribe_url_param" ]; then if [ "$servers_update" -eq 1 ] || [ ! -z "$keyword" ] || [ ! -z "$ex_keyword" ]; then - echo "配置文件【$name】替换成功,开始挑选节点..." >$START_LOG + echo "配置文件【$name】替换成功,开始挑选节点..." > $START_LOG uci set openclash.config.config_update_path="/etc/openclash/config/$name.yaml" uci set openclash.config.servers_if_update=1 uci commit openclash @@ -68,30 +68,30 @@ config_cus_up() if [ "$CONFIG_FILE" == "$CONFIG_PATH" ]; then if_restart=1 fi - echo "${LOGTIME} Config 【$name】 Update Successful" >>$LOG_FILE - echo "配置文件【$name】更新成功!" >$START_LOG + echo "${LOGTIME} Config 【$name】 Update Successful" >> $LOG_FILE + echo "配置文件【$name】更新成功!" > $START_LOG sleep 3 - echo "" >$START_LOG + echo "" > $START_LOG elif [ "$CONFIG_FILE" == "$CONFIG_PATH" ]; then - echo "${LOGTIME} Config 【$name】 Update Successful" >>$LOG_FILE - echo "配置文件【$name】更新成功!" >$START_LOG + echo "${LOGTIME} Config 【$name】 Update Successful" >> $LOG_FILE + echo "配置文件【$name】更新成功!" > $START_LOG sleep 3 if_restart=1 else - echo "配置文件【$name】更新成功!" >$START_LOG - echo "${LOGTIME} Config 【$name】 Update Successful" >>$LOG_FILE + echo "配置文件【$name】更新成功!" > $START_LOG + echo "${LOGTIME} Config 【$name】 Update Successful" >> $LOG_FILE sleep 3 - echo "" >$START_LOG + echo "" > $START_LOG fi else if [ "$CONFIG_FILE" == "$CONFIG_PATH" ]; then - echo "${LOGTIME} Config 【$name】 Update Successful" >>$LOG_FILE - echo "配置文件【$name】更新成功!" >$START_LOG + echo "${LOGTIME} Config 【$name】 Update Successful" >> $LOG_FILE + echo "配置文件【$name】更新成功!" > $START_LOG sleep 3 if_restart=1 else - echo "配置文件【$name】更新成功!" >$START_LOG - echo "${LOGTIME} Config 【$name】 Update Successful" >>$LOG_FILE + echo "配置文件【$name】更新成功!" > $START_LOG + echo "${LOGTIME} Config 【$name】 Update Successful" >> $LOG_FILE sleep 3 echo "" >$START_LOG fi @@ -102,37 +102,51 @@ config_cus_up() config_su_check() { - echo "配置文件下载成功,检查是否有更新..." >$START_LOG + echo "配置文件下载成功,检查是否有更新..." > $START_LOG sed -i 's/! //g' "$CFG_FILE" >/dev/null 2>&1 if [ -f "$CONFIG_FILE" ]; then cmp -s "$BACKPACK_FILE" "$CFG_FILE" if [ "$?" -ne 0 ]; then - echo "配置文件【$name】有更新,开始替换..." >$START_LOG + echo "配置文件【$name】有更新,开始替换..." > $START_LOG mv "$CFG_FILE" "$CONFIG_FILE" 2>/dev/null cp "$CONFIG_FILE" "$BACKPACK_FILE" - config_cus_up + if [ "$only_download" -eq 0 ]; then + config_cus_up + else + echo "配置文件【$name】更新成功!" > $START_LOG + echo "${LOGTIME} Config 【$name】 Update Successful" >> $LOG_FILE + sleep 3 + echo "" > $START_LOG + fi else - echo "配置文件【$name】没有任何更新,停止继续操作..." >$START_LOG + echo "配置文件【$name】没有任何更新,停止继续操作..." > $START_LOG rm -rf "$CFG_FILE" - echo "${LOGTIME} Updated Config【$name】 No Change, Do Nothing" >>$LOG_FILE + echo "${LOGTIME} Updated Config【$name】 No Change, Do Nothing" >> $LOG_FILE sleep 5 - echo "" >$START_LOG + echo "" > $START_LOG fi else - echo "配置文件下载成功,本地没有配置文件,开始创建 ..." >$START_LOG + echo "配置文件下载成功,本地没有配置文件,开始创建 ..." > $START_LOG mv "$CFG_FILE" "$CONFIG_FILE" 2>/dev/null cp "$CONFIG_FILE" "$BACKPACK_FILE" - config_cus_up + if [ "$only_download" -eq 0 ]; then + config_cus_up + else + echo "配置文件【$name】更新成功!" >$START_LOG + echo "${LOGTIME} Config 【$name】 Update Successful" >> $LOG_FILE + sleep 3 + echo "" > $START_LOG + fi fi } config_error() { - echo "配置文件【$name】下载失败,请检查网络或稍后再试!" >$START_LOG - echo "${LOGTIME} Config 【$name】Update Error" >>$LOG_FILE + echo "配置文件【$name】下载失败,请检查网络或稍后再试!" > $START_LOG + echo "${LOGTIME} Error: Config 【$name】Update Error" >> $LOG_FILE rm -rf "$CFG_FILE" 2>/dev/null sleep 5 - echo "" >$START_LOG + echo "" > $START_LOG } change_dns() @@ -158,12 +172,24 @@ change_dns() config_download_direct() { if pidof clash >/dev/null; then - echo "配置文件【$name】订阅失败,尝试不使用代理下载配置文件..." >$START_LOG kill_watchdog uci del_list dhcp.@dnsmasq[0].server=127.0.0.1#"$dns_port" >/dev/null 2>&1 - uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto >/dev/null 2>&1 + if [ -s "/tmp/resolv.conf.d/resolv.conf.auto" ] && [ -n "$(grep "nameserver" /tmp/resolv.conf.d/resolv.conf.auto)" ]; then + uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.d/resolv.conf.auto >/dev/null 2>&1 + elif [ -s "/tmp/resolv.conf.auto" ] && [ -n "$(grep "nameserver" /tmp/resolv.conf.auto)" ]; then + uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto >/dev/null 2>&1 + else + rm -rf /tmp/resolv.conf.auto 2>/dev/null + touch /tmp/resolv.conf.auto 2>/dev/null + cat >> "/tmp/resolv.conf.auto" <<-EOF +# Interface lan +nameserver 114.114.114.114 +nameserver 119.29.29.29 +EOF + uci set dhcp.@dnsmasq[0].resolvfile=/tmp/resolv.conf.auto >/dev/null 2>&1 + fi uci set dhcp.@dnsmasq[0].noresolv=0 >/dev/null 2>&1 uci delete dhcp.@dnsmasq[0].cachesize >/dev/null 2>&1 uci commit dhcp @@ -176,8 +202,34 @@ config_download_direct() config_download if [ "$?" -eq 0 ] && [ -s "$CFG_FILE" ]; then - change_dns - config_su_check + ruby -ryaml -E UTF-8 -e " + begin + YAML.load_file('$CFG_FILE'); + rescue Exception => e + puts '${LOGTIME} Error: Unable To Parse Config File ' + e.message + system 'rm -rf ${CFG_FILE} 2>/dev/null' + end + " 2>/dev/null >> $LOG_FILE + if [ $? -ne 0 ]; then + echo "${LOGTIME} Error: Ruby Works Abnormally, Please Check The Ruby Library Depends!" >> $LOG_FILE + echo "Ruby依赖异常,无法校验配置文件,请确认ruby依赖工作正常后重试!" > $START_LOG + sleep 3 + only_download=1 + change_dns + config_su_check + elif [ ! -f "$CFG_FILE" ]; then + echo "配置文件格式校验失败..." > $START_LOG + sleep 3 + config_error + elif ! "$(ruby_read "$CFG_FILE" ".key?('proxies')")" && ! "$(ruby_read "$CFG_FILE" ".key?('proxy-providers')")" ; then + echo "${LOGTIME} Error: Updated Config 【$name】 Has No Proxy Field, Update Exit..." >> $LOG_FILE + echo "配置文件节点部分校验失败..." > $START_LOG + sleep 3 + config_error + else + change_dns + config_su_check + fi else change_dns config_error @@ -286,19 +338,40 @@ sub_info_get() subscribe_url=$address fi - echo "开始更新配置文件【$name】..." >$START_LOG + echo "开始更新配置文件【$name】..." > $START_LOG config_download if [ "$?" -eq 0 ] && [ -s "$CFG_FILE" ]; then - if [ -n "$(ruby_read "$CFG_FILE" "['proxy-groups']")" ]; then - config_su_check - else - echo "${LOGTIME} Config 【$name】 Grammar Check Faild" >>$LOG_FILE + ruby -ryaml -E UTF-8 -e " + begin + YAML.load_file('$CFG_FILE'); + rescue Exception => e + puts '${LOGTIME} Error: Unable To Parse Config File ' + e.message + system 'rm -rf ${CFG_FILE} 2>/dev/null' + end + " 2>/dev/null >> $LOG_FILE + if [ $? -ne 0 ]; then + echo "${LOGTIME} Error: Ruby Works Abnormally, Please Check The Ruby Library Depends!" >> $LOG_FILE + echo "Ruby依赖异常,无法校验配置文件,请确认ruby依赖工作正常后重试!" > $START_LOG + sleep 3 + only_download=1 + config_su_check + elif [ ! -f "$CFG_FILE" ]; then + echo "配置文件格式校验失败,尝试不使用代理下载配置文件..." > $START_LOG + sleep 3 config_download_direct - fi + elif ! "$(ruby_read "$CFG_FILE" ".key?('proxies')")" && ! "$(ruby_read "$CFG_FILE" ".key?('proxy-providers')")" ; then + echo "${LOGTIME} Error: Updated Config 【$name】 Has No Proxy Field" >> $LOG_FILE + echo "配置文件节点部分校验失败,尝试不使用代理下载配置文件..." > $START_LOG + sleep 3 + config_download_direct + else + config_su_check + fi else - echo "${LOGTIME} Config 【$name】 Download Faild" >>$LOG_FILE + echo "配置文件【$name】订阅失败,尝试不使用代理下载配置文件..." > $START_LOG + echo "${LOGTIME} Error: Config 【$name】 Download Faild" >> $LOG_FILE config_download_direct fi } diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_chnroute.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_chnroute.sh index a3b25b9ab6..f2d6f0994c 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_chnroute.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_chnroute.sh @@ -8,37 +8,50 @@ LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") LOG_FILE="/tmp/openclash.log" china_ip_route=$(uci get openclash.config.china_ip_route 2>/dev/null) + CHNR_CUSTOM_URL=$(uci get openclash.config.chnr_custom_url 2>/dev/null) + small_flash_memory=$(uci get openclash.config.small_flash_memory 2>/dev/null) + + if [ "$small_flash_memory" != "1" ]; then + chnr_path="/etc/openclash/china_ip_route.ipset" + mkdir -p /etc/openclash + else + chnr_path="/tmp/etc/openclash/china_ip_route.ipset" + mkdir -p /tmp/etc/openclash + fi echo "开始下载大陆IP白名单..." >$START_LOG - if pidof clash >/dev/null; then - curl -sL --connect-timeout 10 --retry 2 https://raw.githubusercontent.com/DivineEngine/Profiles/master/Clash/RuleSet/Extra/ChinaIP.yaml -o /tmp/ChinaIP.yaml >/dev/null 2>&1 + if [ -z "$CHNR_CUSTOM_URL" ]; then + if pidof clash >/dev/null; then + curl -sL --connect-timeout 10 --retry 2 https://ispip.clang.cn/all_cn.txt -o /tmp/china_ip_route.txt >/dev/null 2>&1 + fi + if [ "$?" -ne "0" ] || ! pidof clash >/dev/null; then + curl -sL --connect-timeout 10 --retry 2 https://ispip.clang.cn/all_cn_cidr.txt -o /tmp/china_ip_route.txt >/dev/null 2>&1 + fi + else + curl -sL --connect-timeout 10 --retry 2 "$CHNR_CUSTOM_URL" -o /tmp/china_ip_route.txt >/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/DivineEngine/Profiles@master/Clash/RuleSet/Extra/ChinaIP.yaml -o /tmp/ChinaIP.yaml >/dev/null 2>&1 - fi - if [ "$?" -eq "0" ] && [ -s "/tmp/ChinaIP.yaml" ]; then + if [ "$?" -eq "0" ] && [ -s "/tmp/china_ip_route.txt" ]; then echo "大陆IP白名单下载成功,检查版本是否更新..." >$START_LOG - cmp -s /tmp/ChinaIP.yaml /etc/openclash/rule_provider/ChinaIP.yaml - if [ "$?" -ne "0" ]; then - echo "大陆IP白名单有更新,开始替换旧版本..." >$START_LOG - mv /tmp/ChinaIP.yaml /etc/openclash/rule_provider/ChinaIP.yaml >/dev/null 2>&1 - echo "删除下载缓存..." >$START_LOG - rm -rf /tmp/ChinaIP.yaml >/dev/null 2>&1 - rm -rf /usr/share/openclash/res/china_ip_route.ipset >/dev/null 2>&1 - [ "$china_ip_route" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ] && /etc/init.d/openclash restart >/dev/null 2>&1 & - echo "大陆IP白名单更新成功!" >$START_LOG - echo "${LOGTIME} Chnroute Lists Update Successful" >>$LOG_FILE - sleep 5 - else - echo "大陆IP白名单没有更新,停止继续操作..." >$START_LOG - echo "${LOGTIME} Updated Chnroute Lists No Change, Do Nothing" >>$LOG_FILE - rm -rf /tmp/ChinaIP.yaml >/dev/null 2>&1 - sleep 5 - fi + #预处理 + echo "create china_ip_route hash:net family inet hashsize 1024 maxelem 65536" >/tmp/china_ip_route.list + awk '!/^$/&&!/^#/{printf("add china_ip_route %s'" "'\n",$0)}' /tmp/china_ip_route.txt >>/tmp/china_ip_route.list + cmp -s /tmp/china_ip_route.list "$chnr_path" + if [ "$?" -ne "0" ]; then + echo "大陆IP白名单有更新,开始替换旧版本..." >$START_LOG + mv /tmp/china_ip_route.list "$chnr_path" >/dev/null 2>&1 + [ "$china_ip_route" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ] && /etc/init.d/openclash restart >/dev/null 2>&1 & + echo "大陆IP白名单更新成功!" >$START_LOG + echo "${LOGTIME} Chnroute Lists Update Successful" >>$LOG_FILE + sleep 5 + else + echo "大陆IP白名单没有更新,停止继续操作..." >$START_LOG + echo "${LOGTIME} Updated Chnroute Lists No Change, Do Nothing" >>$LOG_FILE + sleep 5 + fi else echo "大陆IP白名单下载失败,请检查网络或稍后再试!" >$START_LOG - rm -rf /tmp/ChinaIP.yaml >/dev/null 2>&1 echo "${LOGTIME} Chnroute Lists Update Error" >>$LOG_FILE - sleep 10 + sleep 5 fi + rm -rf /tmp/china_ip_route* >/dev/null 2>&1 echo "" >$START_LOG \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_debug.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_debug.sh index 996ec3de6b..d35acb57b4 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_debug.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_debug.sh @@ -29,8 +29,10 @@ core_version=$(/etc/openclash/core/clash -v 2>/dev/null |awk -F ' ' '{print $2}' core_tun_version=$(/etc/openclash/core/clash_tun -v 2>/dev/null |awk -F ' ' '{print $2}' 2>/dev/null) core_game_version=$(/etc/openclash/core/clash_game -v 2>/dev/null |awk -F ' ' '{print $2}' 2>/dev/null) servers_update=$(uci get openclash.config.servers_update 2>/dev/null) +mix_proxies=$(uci get openclash.config.mix_proxies 2>/dev/null) op_version=$(sed -n 1p /usr/share/openclash/res/openclash_version 2>/dev/null) china_ip_route=$(uci get openclash.config.china_ip_route 2>/dev/null) +common_ports=$(uci get openclash.config.common_ports 2>/dev/null) if [ -z "$RAW_CONFIG_FILE" ] || [ ! -f "$RAW_CONFIG_FILE" ]; then CONFIG_NAME=$(ls -lt /etc/openclash/config/ | grep -E '.yaml|.yml' | head -n 1 |awk '{print $9}') @@ -211,7 +213,7 @@ cat >> "$DEBUG_LOG" <<-EOF 启动配置文件: $CONFIG_FILE 运行模式: $en_mode 默认代理模式: $proxy_mode -UDP流量转发: $(ts_cf "$enable_udp_proxy") +UDP流量转发(tproxy): $(ts_cf "$enable_udp_proxy") DNS劫持: $(ts_cf "$enable_redirect_dns") 自定义DNS: $(ts_cf "$enable_custom_dns") IPV6-DNS解析: $(ts_cf "$ipv6_enable") @@ -219,43 +221,20 @@ IPV6-DNS解析: $(ts_cf "$ipv6_enable") 自定义规则: $(ts_cf "$enable_custom_clash_rules") 仅允许内网: $(ts_cf "$intranet_allowed") 仅代理命中规则流量: $(ts_cf "$enable_rule_proxy") +仅允许常用端口流量: $(ts_cf "$common_ports") 绕过中国大陆IP: $(ts_cf "$china_ip_route") #启动异常时建议关闭此项后重试 +混合节点: $(ts_cf "$mix_proxies") 保留配置: $(ts_cf "$servers_update") EOF -if [ "$rule_source" != "0" ]; then + cat >> "$DEBUG_LOG" <<-EOF #启动异常时建议关闭此项后重试 -第三方规则: $rule_source +第三方规则: $(ts_cf "$rule_source") EOF -cat >> "$DEBUG_LOG" <<-EOF -第三方规则策略组设置: -GlobalTV: $(uci get openclash.config.GlobalTV 2>/dev/null) -AsianTV: $(uci get openclash.config.AsianTV 2>/dev/null) -Proxy: $(uci get openclash.config.Proxy 2>/dev/null) -Apple: $(uci get openclash.config.Apple 2>/dev/null) -Netflix: $(uci get openclash.config.Netflix 2>/dev/null) -Spotify: $(uci get openclash.config.Spotify 2>/dev/null) -Steam: $(uci get openclash.config.Steam 2>/dev/null) -AdBlock: $(uci get openclash.config.AdBlock 2>/dev/null) -Netease Music: $(uci get openclash.config.Netease_Music 2>/dev/null) -Speedtest: $(uci get openclash.config.Speedtest 2>/dev/null) -Telegram: $(uci get openclash.config.Telegram 2>/dev/null) -Microsoft: $(uci get openclash.config.Microsoft 2>/dev/null) -PayPal: $(uci get openclash.config.PayPal 2>/dev/null) -Domestic: $(uci get openclash.config.Domestic 2>/dev/null) -Others: $(uci get openclash.config.Others 2>/dev/null) -读取的配置文件策略组: -EOF -cat /tmp/Proxy_Group >> "$DEBUG_LOG" -else -cat >> "$DEBUG_LOG" <<-EOF -第三方规则: 停用 -EOF -fi if [ "$enable_custom_clash_rules" -eq 1 ]; then cat >> "$DEBUG_LOG" <<-EOF diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_history_set.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_history_set.sh index 5a670bdf84..785c602151 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_history_set.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_history_set.sh @@ -30,7 +30,7 @@ restore_history() { NOW_NAME=$(echo $line |awk -F '#*#' '{print $3}') GROUP_STATE=$(GROUP_STATE "$GROUP_NAME") GROUP_STATE_NUM=0 - while ( [ "$GROUP_STATE" != "200" ] && [ "$GROUP_STATE_NUM" -le 3 ] ) + while ( [ "$GROUP_STATE" != "200" ] && [ "$GROUP_STATE_NUM" -le 2 ] ) do sleep 1 GROUP_STATE_NUM=$(expr "$GROUP_STATE_NUM" + 1) diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_ipdb.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_ipdb.sh index a05860f8a2..59ca9bc916 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_ipdb.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_ipdb.sh @@ -8,6 +8,7 @@ LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") LOG_FILE="/tmp/openclash.log" small_flash_memory=$(uci get openclash.config.small_flash_memory 2>/dev/null) + GEOIP_CUSTOM_URL=$(uci get openclash.config.geo_custom_url 2>/dev/null) if [ "$small_flash_memory" != "1" ]; then geoip_path="/etc/openclash/Country.mmdb" @@ -17,34 +18,35 @@ mkdir -p /tmp/etc/openclash fi echo "开始下载 GEOIP 数据库..." >$START_LOG - if pidof clash >/dev/null; then - curl -sL --connect-timeout 10 --retry 2 https://raw.githubusercontent.com/alecthw/mmdb_china_ip_list/release/Country.mmdb -o /tmp/Country.mmdb >/dev/null 2>&1 - fi - if [ "$?" -ne "0" ] || ! pidof clash >/dev/null; then - curl -sL --connect-timeout 10 --retry 2 http://www.ideame.top/mmdb/Country.mmdb -o /tmp/Country.mmdb >/dev/null 2>&1 + if [ -z "$GEOIP_CUSTOM_URL" ]; then + if pidof clash >/dev/null; then + curl -sL --connect-timeout 10 --retry 2 https://raw.githubusercontent.com/alecthw/mmdb_china_ip_list/release/Country.mmdb -o /tmp/Country.mmdb >/dev/null 2>&1 + fi + if [ "$?" -ne "0" ] || ! pidof clash >/dev/null; then + curl -sL --connect-timeout 10 --retry 2 http://www.ideame.top/mmdb/Country.mmdb -o /tmp/Country.mmdb >/dev/null 2>&1 + fi + else + curl -sL --connect-timeout 10 --retry 2 "$GEOIP_CUSTOM_URL" -o /tmp/Country.mmdb >/dev/null 2>&1 fi if [ "$?" -eq "0" ] && [ -s "/tmp/Country.mmdb" ]; then echo "GEOIP 数据库下载成功,检查数据库版本是否更新..." >$START_LOG cmp -s /tmp/Country.mmdb "$geoip_path" - if [ "$?" -ne "0" ]; then - echo "数据库版本有更新,开始替换数据库版本..." >$START_LOG - mv /tmp/Country.mmdb "$geoip_path" >/dev/null 2>&1 - echo "删除下载缓存..." >$START_LOG - rm -rf /tmp/Country.mmdb >/dev/null 2>&1 - echo "GEOIP 数据库更新成功!" >$START_LOG - echo "${LOGTIME} GEOIP Database Update Successful" >>$LOG_FILE - sleep 5 - [ "$(unify_ps_prevent)" -eq 0 ] && /etc/init.d/openclash restart >/dev/null 2>&1 & - else - echo "数据库版本没有更新,停止继续操作..." >$START_LOG - echo "${LOGTIME} Updated GEOIP Database No Change, Do Nothing" >>$LOG_FILE - rm -rf /tmp/Country.mmdb >/dev/null 2>&1 - sleep 5 - fi + if [ "$?" -ne "0" ]; then + echo "数据库版本有更新,开始替换数据库版本..." >$START_LOG + mv /tmp/Country.mmdb "$geoip_path" >/dev/null 2>&1 + echo "GEOIP 数据库更新成功!" >$START_LOGS + echo "${LOGTIME} GEOIP Database Update Successful" >>$LOG_FILE + sleep 5 + [ "$(unify_ps_prevent)" -eq 0 ] && /etc/init.d/openclash restart >/dev/null 2>&1 & + else + echo "数据库版本没有更新,停止继续操作..." >$START_LOG + echo "${LOGTIME} Updated GEOIP Database No Change, Do Nothing" >>$LOG_FILE + sleep 5 + fi else echo "GEOIP 数据库下载失败,请检查网络或稍后再试!" >$START_LOG - rm -rf /tmp/Country.mmdb >/dev/null 2>&1 echo "${LOGTIME} GEOIP Database Update Error" >>$LOG_FILE - sleep 10 + sleep 5 fi + rm -rf /tmp/Country.mmdb >/dev/null 2>&1 echo "" >$START_LOG \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh index 0152d3d209..bc914a7e7b 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/openclash_rule.sh @@ -5,43 +5,79 @@ status=$(unify_ps_status "openclash_rule.sh") [ "$status" -gt 3 ] && exit 0 - - START_LOG="/tmp/openclash_start.log" - LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") - LOG_FILE="/tmp/openclash.log" - echo "开始获取使用中的第三方规则名称..." >$START_LOG - RUlE_SOURCE=$(uci get openclash.config.rule_source 2>/dev/null) - OTHER_RULE_FILE="/tmp/other_rule.yaml" + yml_other_rules_dl() + { + local section="$1" + local enabled config + config_get_bool "enabled" "$section" "enabled" "1" + config_get "config" "$section" "config" "" + + if [ "$enabled" = "0" ] || [ "$config" != "$2" ]; then + return + fi + + if [ -n "$rule_name" ]; then + echo "${LOGTIME} Warrning: Multiple Other-Rules-Configurations Enabled, Ignore..." >> $LOG_FILE + return + fi + + config_get "rule_name" "$section" "rule_name" "" + echo "开始下载使用中的第三方规则..." >$START_LOG - if [ "$RUlE_SOURCE" = "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 - 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 - fi - sed -i '1i rules:' /tmp/rules.yaml - elif [ "$RUlE_SOURCE" = "ConnersHua" ]; then - if pidof clash >/dev/null; then - curl -sL --connect-timeout 10 --retry 2 https://raw.githubusercontent.com/DivineEngine/Profiles/master/Clash/Global.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/DivineEngine/Profiles@master/Clash/Global.yaml -o /tmp/rules.yaml >/dev/null 2>&1 - fi - sed -i "s/# - RULE-SET,ChinaIP,DIRECT/- RULE-SET,ChinaIP,DIRECT/g" /tmp/rules.yaml 2>/dev/null - sed -i "s/- GEOIP,/#- GEOIP,/g" /tmp/rules.yaml 2>/dev/null - elif [ "$RUlE_SOURCE" = "ConnersHua_return" ]; then - if pidof clash >/dev/null; then - curl -sL --connect-timeout 10 --retry 2 https://raw.githubusercontent.com/ConnersHua/Profiles/master/Clash/China.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/DivineEngine/Profiles@master/Clash/China.yaml -o /tmp/rules.yaml >/dev/null 2>&1 - fi + 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 + 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 fi - if [ "$?" -eq "0" ] && [ "$RUlE_SOURCE" != 0 ] && [ -s "/tmp/rules.yaml" ]; then + sed -i '1i rules:' /tmp/rules.yaml + elif [ "$rule_name" = "ConnersHua" ]; then + if pidof clash >/dev/null; then + curl -sL --connect-timeout 10 --retry 2 https://raw.githubusercontent.com/DivineEngine/Profiles/master/Clash/Outbound.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/DivineEngine/Profiles@master/Clash/Outbound.yaml -o /tmp/rules.yaml >/dev/null 2>&1 + fi + sed -i "s/# - RULE-SET,ChinaIP,DIRECT/- RULE-SET,ChinaIP,DIRECT/g" /tmp/rules.yaml 2>/dev/null + sed -i "s/- GEOIP,/#- GEOIP,/g" /tmp/rules.yaml 2>/dev/null + elif [ "$rule_name" = "ConnersHua_return" ]; then + if pidof clash >/dev/null; then + curl -sL --connect-timeout 10 --retry 2 https://raw.githubusercontent.com/DivineEngine/Profiles/master/Clash/Inbound.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/DivineEngine/Profiles@master/Clash/Inbound.yaml -o /tmp/rules.yaml >/dev/null 2>&1 + fi + fi + if [ "$?" -eq "0" ] && [ -s "/tmp/rules.yaml" ]; then echo "下载成功,开始预处理规则文件..." >$START_LOG - + ruby -ryaml -E UTF-8 -e " + begin + YAML.load_file('/tmp/rules.yaml'); + rescue Exception => e + puts '${LOGTIME} Error: Unable To Parse Updated ${rule_name} Rules File ' + e.message + system 'rm -rf /tmp/rules.yaml 2>/dev/null' + end + " 2>/dev/null >> $LOG_FILE + if [ $? -ne 0 ]; then + echo "${LOGTIME} Error: Ruby Works Abnormally, Please Check The Ruby Library Depends!" >> $LOG_FILE + echo "Ruby依赖异常,无法校验配置文件,请确认ruby依赖工作正常后重试!" > $START_LOG + rm -rf /tmp/rules.yaml >/dev/null 2>&1 + sleep 3 + exit 0 + elif [ ! -f "/tmp/rules.yaml" ]; then + echo "$rule_name 规则文件格式校验失败,请稍后再试..." > $START_LOG + rm -rf /tmp/rules.yaml >/dev/null 2>&1 + sleep 3 + exit 0 + elif ! "$(ruby_read "/tmp/rules.yaml" ".key?('rules')")" ; then + echo "${LOGTIME} Error: Updated Others Rules 【$rule_name】 Has No Rules Field, Update Exit..." >> $LOG_FILE + echo "$rule_name 规则文件规则部分校验失败,请稍后再试..." > $START_LOG + rm -rf /tmp/rules.yaml >/dev/null 2>&1 + sleep 3 + exit 0 + fi #取出规则部分 ruby_read "/tmp/rules.yaml" ".select {|x| 'rule-providers' == x or 'script' == x or 'rules' == x }.to_yaml" > "$OTHER_RULE_FILE" #合并 @@ -49,28 +85,59 @@ rm -rf /tmp/other_rule* 2>/dev/null echo "检查下载的规则文件是否有更新..." >$START_LOG - cmp -s /usr/share/openclash/res/"$RUlE_SOURCE".yaml /tmp/rules.yaml + cmp -s /usr/share/openclash/res/"$rule_name".yaml /tmp/rules.yaml if [ "$?" -ne "0" ]; then echo "检测到下载的规则文件有更新,开始替换..." >$START_LOG - mv /tmp/rules.yaml /usr/share/openclash/res/"$RUlE_SOURCE".yaml >/dev/null 2>&1 - echo "替换成功,重新加载 OpenClash 应用新规则..." >$START_LOG - echo "${LOGTIME} Other Rules 【$RUlE_SOURCE】 Update Successful" >>$LOG_FILE - [ "$(unify_ps_prevent)" -eq 0 ] && /etc/init.d/openclash restart >/dev/null 2>&1 & + mv /tmp/rules.yaml /usr/share/openclash/res/"$rule_name".yaml >/dev/null 2>&1 + echo "${LOGTIME} Other Rules 【$rule_name】 Update Successful" >>$LOG_FILE + ifrestart=1 else echo "检测到下载的规则文件没有更新,停止继续操作..." >$START_LOG - rm -rf /tmp/rules.yaml >/dev/null 2>&1 - echo "${LOGTIME} Updated Other Rules 【$RUlE_SOURCE】 No Change, Do Nothing" >>$LOG_FILE + echo "${LOGTIME} Updated Other Rules 【$rule_name】 No Change, Do Nothing" >>$LOG_FILE sleep 5 fi - elif [ "$RUlE_SOURCE" = 0 ]; then + else + echo "第三方规则下载失败,请检查网络或稍后再试!" >$START_LOG + echo "${LOGTIME} Other Rules 【$rule_name】 Update Error" >>$LOG_FILE + sleep 5 + fi + } + + START_LOG="/tmp/openclash_start.log" + LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") + LOG_FILE="/tmp/openclash.log" + RUlE_SOURCE=$(uci get openclash.config.rule_source 2>/dev/null) + + if [ "$RUlE_SOURCE" = "0" ]; then echo "未启用第三方规则,更新程序终止!" >$START_LOG - rm -rf /tmp/rules.yaml >/dev/null 2>&1 echo "${LOGTIME} Other Rules Not Enable, Update Stop" >>$LOG_FILE sleep 5 else - echo "第三方规则下载失败,请检查网络或稍后再试!" >$START_LOG - rm -rf /tmp/rules.yaml >/dev/null 2>&1 - echo "${LOGTIME} Other Rules 【$RUlE_SOURCE】 Update Error" >>$LOG_FILE - sleep 5 + OTHER_RULE_FILE="/tmp/other_rule.yaml" + CONFIG_FILE=$(uci get openclash.config.config_path 2>/dev/null) + CONFIG_NAME=$(echo "$CONFIG_FILE" |awk -F '/' '{print $5}' 2>/dev/null) + ifrestart=0 + + if [ -z "$CONFIG_FILE" ]; then + CONFIG_FILE="/etc/openclash/config/$(ls -lt /etc/openclash/config/ | grep -E '.yaml|.yml' | head -n 1 |awk '{print $9}')" + CONFIG_NAME=$(echo "$CONFIG_FILE" |awk -F '/' '{print $5}' 2>/dev/null) + fi + + if [ -z "$CONFIG_NAME" ]; then + CONFIG_FILE="/etc/openclash/config/config.yaml" + CONFIG_NAME="config.yaml" + fi + + config_load "openclash" + config_foreach yml_other_rules_dl "other_rules" "$CONFIG_NAME" + if [ -z "$rule_name" ]; then + echo "未找到第三方规则配置,更新程序终止!" >$START_LOG + echo "${LOGTIME} Get Other Rules Settings Faild, Update Stop" >>$LOG_FILE + sleep 5 + fi + if [ "$ifrestart" -eq 1 ] && [ "$(unify_ps_prevent)" -eq 0 ]; then + /etc/init.d/openclash restart >/dev/null 2>&1 & + fi fi - echo "" >$START_LOG + rm -rf /tmp/rules.yaml >/dev/null 2>&1 + echo "" >$START_LOG \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/ConnersHua.yaml b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/ConnersHua.yaml index 8ad79ad148..b1110a63d3 100644 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/ConnersHua.yaml +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/ConnersHua.yaml @@ -1,87 +1,54 @@ rule-providers: -# name: # Provider 名称 -# type: http # http 或 file -# behavior: classical # 或 ipcidr、domain -# path: # 文件路径 -# url: # 只有当类型为 HTTP 时才可用,您不需要在本地空间中创建新文件。 -# interval: # 自动更新间隔,仅在类型为 HTTP 时可用 - Unbreak: type: http behavior: classical - path: ./RuleSet/Unbreak.yaml + path: "./RuleSet/Unbreak.yaml" url: https://raw.githubusercontent.com/DivineEngine/Profiles/master/Clash/RuleSet/Unbreak.yaml interval: 86400 - Streaming: type: http behavior: classical - path: ./RuleSet/StreamingMedia/Streaming.yaml + path: "./RuleSet/StreamingMedia/Streaming.yaml" url: https://raw.githubusercontent.com/DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Streaming.yaml interval: 86400 - StreamingSE: type: http behavior: classical - path: ./RuleSet/StreamingMedia/StreamingSE.yaml + path: "./RuleSet/StreamingMedia/StreamingSE.yaml" url: https://raw.githubusercontent.com/DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/StreamingSE.yaml interval: 86400 - Global: type: http behavior: classical - path: ./RuleSet/Global.yaml + path: "./RuleSet/Global.yaml" url: https://raw.githubusercontent.com/DivineEngine/Profiles/master/Clash/RuleSet/Global.yaml interval: 86400 - China: type: http behavior: classical - path: ./RuleSet/China.yaml + path: "./RuleSet/China.yaml" url: https://raw.githubusercontent.com/DivineEngine/Profiles/master/Clash/RuleSet/China.yaml interval: 86400 - ChinaIP: type: http behavior: ipcidr - path: ./RuleSet/Extra/ChinaIP.yaml + path: "./RuleSet/Extra/ChinaIP.yaml" url: https://raw.githubusercontent.com/DivineEngine/Profiles/master/Clash/RuleSet/Extra/ChinaIP.yaml interval: 86400 - -# 规则 rules: -##source:ConnersHua - # Unbreak - - RULE-SET,Unbreak,DIRECT - - # Global Area Network - - # (Streaming Media) - - RULE-SET,Streaming,Streaming - - # (StreamingSE) - - RULE-SET,StreamingSE,StreamingSE - - # (DNS Cache Pollution) / (IP Blackhole) / (Region-Restricted Access Denied) / (Network Jitter) - - RULE-SET,Global,PROXY - - # China Area Network - - RULE-SET,China,DIRECT - - # Local Area Network - - IP-CIDR,192.168.0.0/16,DIRECT - - IP-CIDR,10.0.0.0/8,DIRECT - - IP-CIDR,172.16.0.0/12,DIRECT - - IP-CIDR,127.0.0.0/8,DIRECT - - IP-CIDR,100.64.0.0/10,DIRECT - - IP-CIDR,224.0.0.0/4,DIRECT - - # (可选)使用来自 ipipdotnet 的 ChinaIP 以解决数据不准确的问题,使用 ChinaIP.yaml 时可禁用下列直至(包括)「GEOIP,CN」规则 - - RULE-SET,ChinaIP,DIRECT - # Tencent - - IP-CIDR,119.28.28.28/32,DIRECT - - IP-CIDR,182.254.116.0/24,DIRECT - # GeoIP China - #- GEOIP,CN,DIRECT - - - MATCH,MATCH +- RULE-SET,Unbreak,DIRECT +- RULE-SET,Streaming,Streaming +- RULE-SET,StreamingSE,StreamingSE +- RULE-SET,Global,PROXY +- RULE-SET,China,DIRECT +- IP-CIDR,192.168.0.0/16,DIRECT +- IP-CIDR,10.0.0.0/8,DIRECT +- IP-CIDR,172.16.0.0/12,DIRECT +- IP-CIDR,127.0.0.0/8,DIRECT +- IP-CIDR,100.64.0.0/10,DIRECT +- IP-CIDR,224.0.0.0/4,DIRECT +- IP-CIDR,fe80::/10,DIRECT +- RULE-SET,ChinaIP,DIRECT +- IP-CIDR,119.28.28.28/32,DIRECT +- IP-CIDR,182.254.116.0/24,DIRECT +- MATCH,MATCH diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/china_ip_route.ipset b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/china_ip_route.ipset deleted file mode 100644 index 956c029ee5..0000000000 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/china_ip_route.ipset +++ /dev/null @@ -1,5971 +0,0 @@ -create china_ip_route hash:net family inet hashsize 1024 maxelem 65536 -add china_ip_route 1.0.1.0/24 -add china_ip_route 1.0.2.0/23 -add china_ip_route 1.0.8.0/21 -add china_ip_route 1.0.32.0/19 -add china_ip_route 1.1.0.0/24 -add china_ip_route 1.1.2.0/23 -add china_ip_route 1.1.4.0/22 -add china_ip_route 1.1.8.0/21 -add china_ip_route 1.1.16.0/20 -add china_ip_route 1.1.32.0/19 -add china_ip_route 1.2.0.0/23 -add china_ip_route 1.2.2.0/24 -add china_ip_route 1.2.4.0/22 -add china_ip_route 1.2.8.0/21 -add china_ip_route 1.2.16.0/20 -add china_ip_route 1.2.32.0/19 -add china_ip_route 1.2.64.0/18 -add china_ip_route 1.3.0.0/16 -add china_ip_route 1.4.1.0/24 -add china_ip_route 1.4.2.0/23 -add china_ip_route 1.4.4.0/22 -add china_ip_route 1.4.8.0/21 -add china_ip_route 1.4.16.0/20 -add china_ip_route 1.4.32.0/19 -add china_ip_route 1.4.64.0/18 -add china_ip_route 1.8.0.0/16 -add china_ip_route 1.10.0.0/21 -add china_ip_route 1.10.8.0/23 -add china_ip_route 1.10.11.0/24 -add china_ip_route 1.10.12.0/22 -add china_ip_route 1.10.16.0/20 -add china_ip_route 1.10.32.0/19 -add china_ip_route 1.10.64.0/18 -add china_ip_route 1.12.0.0/14 -add china_ip_route 1.18.128.0/24 -add china_ip_route 1.24.0.0/13 -add china_ip_route 1.45.0.0/16 -add china_ip_route 1.48.0.0/14 -add china_ip_route 1.56.0.0/13 -add china_ip_route 1.68.0.0/14 -add china_ip_route 1.80.0.0/12 -add china_ip_route 1.116.0.0/15 -add china_ip_route 1.118.1.0/24 -add china_ip_route 1.118.2.0/23 -add china_ip_route 1.118.4.0/22 -add china_ip_route 1.118.8.0/21 -add china_ip_route 1.118.16.0/20 -add china_ip_route 1.118.32.0/19 -add china_ip_route 1.118.64.0/18 -add china_ip_route 1.118.128.0/17 -add china_ip_route 1.119.0.0/16 -add china_ip_route 1.180.0.0/14 -add china_ip_route 1.184.0.0/15 -add china_ip_route 1.188.0.0/14 -add china_ip_route 1.192.0.0/13 -add china_ip_route 1.202.0.0/15 -add china_ip_route 1.204.0.0/14 -add china_ip_route 3.5.214.0/23 -add china_ip_route 3.5.216.0/24 -add china_ip_route 8.128.0.0/10 -add china_ip_route 8.209.40.0/21 -add china_ip_route 14.0.0.0/21 -add china_ip_route 14.0.12.0/22 -add china_ip_route 14.1.0.0/22 -add china_ip_route 14.1.24.0/22 -add china_ip_route 14.1.108.0/22 -add china_ip_route 14.16.0.0/12 -add china_ip_route 14.102.128.0/22 -add china_ip_route 14.102.180.0/22 -add china_ip_route 14.103.0.0/16 -add china_ip_route 14.104.0.0/13 -add china_ip_route 14.112.0.0/12 -add china_ip_route 14.130.0.0/15 -add china_ip_route 14.134.0.0/15 -add china_ip_route 14.144.0.0/12 -add china_ip_route 14.192.60.0/22 -add china_ip_route 14.192.76.0/22 -add china_ip_route 14.196.0.0/15 -add china_ip_route 14.204.0.0/15 -add china_ip_route 14.208.0.0/12 -add china_ip_route 15.230.41.0/24 -add china_ip_route 15.230.49.0/24 -add china_ip_route 20.81.0.0/24 -add china_ip_route 20.139.160.0/20 -add china_ip_route 20.249.255.0/24 -add china_ip_route 20.251.0.0/22 -add china_ip_route 27.0.128.0/22 -add china_ip_route 27.0.132.0/24 -add china_ip_route 27.0.134.0/23 -add china_ip_route 27.0.160.0/21 -add china_ip_route 27.0.188.0/22 -add china_ip_route 27.0.204.0/22 -add china_ip_route 27.0.208.0/21 -add china_ip_route 27.8.0.0/13 -add china_ip_route 27.16.0.0/12 -add china_ip_route 27.34.232.0/21 -add china_ip_route 27.36.0.0/14 -add china_ip_route 27.40.0.0/13 -add china_ip_route 27.50.40.0/21 -add china_ip_route 27.50.128.0/17 -add china_ip_route 27.54.72.0/21 -add china_ip_route 27.54.152.0/21 -add china_ip_route 27.54.192.0/18 -add china_ip_route 27.98.208.0/20 -add china_ip_route 27.98.224.0/19 -add china_ip_route 27.99.128.0/17 -add china_ip_route 27.103.0.0/16 -add china_ip_route 27.106.128.0/18 -add china_ip_route 27.106.204.0/22 -add china_ip_route 27.109.32.0/19 -add china_ip_route 27.109.124.0/22 -add china_ip_route 27.112.0.0/18 -add china_ip_route 27.112.80.0/20 -add china_ip_route 27.112.112.0/21 -add china_ip_route 27.113.128.0/18 -add china_ip_route 27.115.0.0/17 -add china_ip_route 27.116.44.0/22 -add china_ip_route 27.121.72.0/21 -add china_ip_route 27.121.120.0/21 -add china_ip_route 27.128.0.0/15 -add china_ip_route 27.131.220.0/22 -add china_ip_route 27.144.0.0/16 -add china_ip_route 27.148.0.0/14 -add china_ip_route 27.152.0.0/13 -add china_ip_route 27.184.0.0/13 -add china_ip_route 27.192.0.0/11 -add china_ip_route 27.224.0.0/14 -add china_ip_route 36.0.0.0/22 -add china_ip_route 36.0.16.0/20 -add china_ip_route 36.0.32.0/19 -add china_ip_route 36.0.64.0/18 -add china_ip_route 36.0.128.0/17 -add china_ip_route 36.1.0.0/16 -add china_ip_route 36.4.0.0/14 -add china_ip_route 36.16.0.0/12 -add china_ip_route 36.32.0.0/14 -add china_ip_route 36.36.0.0/16 -add china_ip_route 36.37.0.0/19 -add china_ip_route 36.37.36.0/23 -add china_ip_route 36.37.39.0/24 -add china_ip_route 36.37.40.0/21 -add china_ip_route 36.37.48.0/20 -add china_ip_route 36.40.0.0/13 -add china_ip_route 36.48.0.0/15 -add china_ip_route 36.51.0.0/17 -add china_ip_route 36.51.128.0/18 -add china_ip_route 36.51.192.0/19 -add china_ip_route 36.51.224.0/20 -add china_ip_route 36.51.240.0/21 -add china_ip_route 36.51.248.0/22 -add china_ip_route 36.51.252.0/23 -add china_ip_route 36.56.0.0/13 -add china_ip_route 36.96.0.0/11 -add china_ip_route 36.128.0.0/10 -add china_ip_route 36.192.0.0/11 -add china_ip_route 36.248.0.0/14 -add china_ip_route 36.254.0.0/16 -add china_ip_route 36.255.116.0/22 -add china_ip_route 36.255.128.0/22 -add china_ip_route 36.255.164.0/22 -add china_ip_route 36.255.172.0/22 -add china_ip_route 36.255.176.0/22 -add china_ip_route 38.142.239.114/32 -add china_ip_route 39.0.0.0/24 -add china_ip_route 39.0.2.0/23 -add china_ip_route 39.0.4.0/22 -add china_ip_route 39.0.8.0/21 -add china_ip_route 39.0.16.0/20 -add china_ip_route 39.0.32.0/19 -add china_ip_route 39.0.64.0/18 -add china_ip_route 39.0.128.0/17 -add china_ip_route 39.64.0.0/11 -add china_ip_route 39.96.0.0/16 -add china_ip_route 39.97.0.0/17 -add china_ip_route 39.97.128.0/18 -add china_ip_route 39.97.192.0/21 -add china_ip_route 39.97.200.0/22 -add china_ip_route 39.97.208.0/20 -add china_ip_route 39.97.224.0/19 -add china_ip_route 39.98.0.0/15 -add china_ip_route 39.100.0.0/14 -add china_ip_route 39.104.0.0/14 -add china_ip_route 39.108.0.0/16 -add china_ip_route 39.109.120.0/23 -add china_ip_route 39.128.0.0/10 -add china_ip_route 40.0.176.0/20 -add china_ip_route 40.0.247.0/24 -add china_ip_route 40.0.248.0/22 -add china_ip_route 40.0.252.0/23 -add china_ip_route 40.0.255.0/24 -add china_ip_route 40.72.0.0/15 -add china_ip_route 40.77.136.112/28 -add china_ip_route 40.77.236.224/27 -add china_ip_route 40.77.254.64/27 -add china_ip_route 40.125.128.0/17 -add china_ip_route 40.126.64.0/18 -add china_ip_route 40.198.10.0/24 -add china_ip_route 40.198.16.0/21 -add china_ip_route 40.198.24.0/23 -add china_ip_route 40.251.225.0/24 -add china_ip_route 40.251.227.0/24 -add china_ip_route 42.0.0.0/22 -add china_ip_route 42.0.8.0/21 -add china_ip_route 42.0.16.0/21 -add china_ip_route 42.0.24.0/22 -add china_ip_route 42.0.32.0/19 -add china_ip_route 42.0.128.0/17 -add china_ip_route 42.1.0.0/19 -add china_ip_route 42.1.32.0/20 -add china_ip_route 42.1.48.0/21 -add china_ip_route 42.1.56.0/22 -add china_ip_route 42.4.0.0/14 -add china_ip_route 42.48.0.0/13 -add china_ip_route 42.56.0.0/14 -add china_ip_route 42.62.0.0/17 -add china_ip_route 42.62.128.0/19 -add china_ip_route 42.62.160.0/20 -add china_ip_route 42.62.180.0/22 -add china_ip_route 42.62.184.0/21 -add china_ip_route 42.63.0.0/16 -add china_ip_route 42.80.0.0/15 -add china_ip_route 42.83.64.0/20 -add china_ip_route 42.83.80.0/22 -add china_ip_route 42.83.88.0/21 -add china_ip_route 42.83.96.0/19 -add china_ip_route 42.83.128.0/23 -add china_ip_route 42.83.134.0/24 -add china_ip_route 42.83.139.0/24 -add china_ip_route 42.83.140.0/22 -add china_ip_route 42.83.144.0/20 -add china_ip_route 42.83.160.0/19 -add china_ip_route 42.83.192.0/18 -add china_ip_route 42.84.0.0/14 -add china_ip_route 42.88.0.0/13 -add china_ip_route 42.96.64.0/19 -add china_ip_route 42.96.96.0/21 -add china_ip_route 42.96.108.0/22 -add china_ip_route 42.96.112.0/20 -add china_ip_route 42.96.128.0/17 -add china_ip_route 42.97.0.0/16 -add china_ip_route 42.99.0.0/18 -add china_ip_route 42.99.64.0/19 -add china_ip_route 42.99.96.0/20 -add china_ip_route 42.99.112.0/22 -add china_ip_route 42.99.120.0/21 -add china_ip_route 42.100.0.0/14 -add china_ip_route 42.120.0.0/15 -add china_ip_route 42.122.0.0/16 -add china_ip_route 42.123.0.0/19 -add china_ip_route 42.123.36.0/22 -add china_ip_route 42.123.40.0/21 -add china_ip_route 42.123.48.0/20 -add china_ip_route 42.123.64.0/18 -add china_ip_route 42.123.128.0/17 -add china_ip_route 42.128.0.0/12 -add china_ip_route 42.156.0.0/19 -add china_ip_route 42.156.36.0/22 -add china_ip_route 42.156.40.0/21 -add china_ip_route 42.156.48.0/20 -add china_ip_route 42.156.64.0/18 -add china_ip_route 42.156.128.0/17 -add china_ip_route 42.157.0.0/21 -add china_ip_route 42.157.8.0/22 -add china_ip_route 42.157.14.0/23 -add china_ip_route 42.157.16.0/20 -add china_ip_route 42.157.32.0/19 -add china_ip_route 42.157.64.0/18 -add china_ip_route 42.157.128.0/17 -add china_ip_route 42.158.0.0/15 -add china_ip_route 42.160.0.0/12 -add china_ip_route 42.176.0.0/13 -add china_ip_route 42.184.0.0/15 -add china_ip_route 42.186.0.0/16 -add china_ip_route 42.187.0.0/18 -add china_ip_route 42.187.64.0/19 -add china_ip_route 42.187.96.0/20 -add china_ip_route 42.187.112.0/21 -add china_ip_route 42.187.120.0/22 -add china_ip_route 42.187.128.0/17 -add china_ip_route 42.192.0.0/13 -add china_ip_route 42.201.0.0/17 -add china_ip_route 42.202.0.0/15 -add china_ip_route 42.204.0.0/14 -add china_ip_route 42.208.0.0/12 -add china_ip_route 42.224.0.0/12 -add china_ip_route 42.240.0.0/16 -add china_ip_route 42.242.0.0/15 -add china_ip_route 42.244.0.0/15 -add china_ip_route 42.246.0.0/16 -add china_ip_route 42.247.0.0/22 -add china_ip_route 42.247.4.0/24 -add china_ip_route 42.247.5.0/25 -add china_ip_route 42.247.5.128/26 -add china_ip_route 42.247.5.204/30 -add china_ip_route 42.247.5.208/28 -add china_ip_route 42.247.5.224/27 -add china_ip_route 42.247.6.0/23 -add china_ip_route 42.247.8.0/21 -add china_ip_route 42.247.16.0/20 -add china_ip_route 42.247.32.0/19 -add china_ip_route 42.247.64.0/18 -add china_ip_route 42.247.128.0/17 -add china_ip_route 42.248.0.0/13 -add china_ip_route 43.0.0.0/9 -add china_ip_route 43.224.12.0/22 -add china_ip_route 43.224.24.0/22 -add china_ip_route 43.224.44.0/22 -add china_ip_route 43.224.52.0/22 -add china_ip_route 43.224.56.0/22 -add china_ip_route 43.224.68.0/22 -add china_ip_route 43.224.72.0/22 -add china_ip_route 43.224.80.0/22 -add china_ip_route 43.224.100.0/22 -add china_ip_route 43.224.144.0/22 -add china_ip_route 43.224.161.0/24 -add china_ip_route 43.224.176.0/22 -add china_ip_route 43.224.184.0/22 -add china_ip_route 43.224.200.0/21 -add china_ip_route 43.224.208.0/21 -add china_ip_route 43.224.216.0/22 -add china_ip_route 43.224.240.0/22 -add china_ip_route 43.225.76.0/22 -add china_ip_route 43.225.86.0/24 -add china_ip_route 43.225.120.0/22 -add china_ip_route 43.225.180.0/22 -add china_ip_route 43.225.208.0/22 -add china_ip_route 43.225.216.0/21 -add china_ip_route 43.225.224.0/20 -add china_ip_route 43.225.240.0/21 -add china_ip_route 43.225.252.0/22 -add china_ip_route 43.226.32.0/19 -add china_ip_route 43.226.64.0/19 -add china_ip_route 43.226.96.0/20 -add china_ip_route 43.226.112.0/21 -add china_ip_route 43.226.120.0/22 -add china_ip_route 43.226.128.0/19 -add china_ip_route 43.226.160.0/21 -add china_ip_route 43.226.236.0/22 -add china_ip_route 43.226.240.0/20 -add china_ip_route 43.227.0.0/21 -add china_ip_route 43.227.8.0/22 -add china_ip_route 43.227.32.0/19 -add china_ip_route 43.227.64.0/19 -add china_ip_route 43.227.104.0/22 -add china_ip_route 43.227.136.0/21 -add china_ip_route 43.227.144.0/22 -add china_ip_route 43.227.152.0/21 -add china_ip_route 43.227.160.0/20 -add china_ip_route 43.227.176.0/21 -add china_ip_route 43.227.188.0/22 -add china_ip_route 43.227.192.0/19 -add china_ip_route 43.227.232.0/22 -add china_ip_route 43.227.248.0/21 -add china_ip_route 43.228.0.0/18 -add china_ip_route 43.228.64.0/21 -add china_ip_route 43.228.76.0/22 -add china_ip_route 43.228.100.0/22 -add china_ip_route 43.228.116.0/24 -add china_ip_route 43.228.118.0/23 -add china_ip_route 43.228.132.0/22 -add china_ip_route 43.228.136.0/22 -add china_ip_route 43.228.148.0/22 -add china_ip_route 43.228.152.0/22 -add china_ip_route 43.228.188.0/22 -add china_ip_route 43.229.40.0/22 -add china_ip_route 43.229.48.0/22 -add china_ip_route 43.229.56.0/22 -add china_ip_route 43.229.96.0/22 -add china_ip_route 43.229.136.0/21 -add china_ip_route 43.229.168.0/21 -add china_ip_route 43.229.176.0/20 -add china_ip_route 43.229.192.0/21 -add china_ip_route 43.229.216.0/21 -add china_ip_route 43.229.232.0/21 -add china_ip_route 43.230.20.0/22 -add china_ip_route 43.230.32.0/22 -add china_ip_route 43.230.68.0/22 -add china_ip_route 43.230.72.0/22 -add china_ip_route 43.230.84.0/22 -add china_ip_route 43.230.124.0/22 -add china_ip_route 43.230.220.0/22 -add china_ip_route 43.230.224.0/19 -add china_ip_route 43.231.32.0/20 -add china_ip_route 43.231.80.0/20 -add china_ip_route 43.231.96.0/20 -add china_ip_route 43.231.136.0/21 -add china_ip_route 43.231.144.0/20 -add china_ip_route 43.231.160.0/20 -add china_ip_route 43.231.176.0/21 -add china_ip_route 43.236.0.0/15 -add china_ip_route 43.238.0.0/16 -add china_ip_route 43.239.0.0/19 -add china_ip_route 43.239.32.0/20 -add china_ip_route 43.239.48.0/22 -add china_ip_route 43.239.116.0/22 -add china_ip_route 43.239.120.0/22 -add china_ip_route 43.239.172.0/22 -add china_ip_route 43.240.0.0/22 -add china_ip_route 43.240.56.0/21 -add china_ip_route 43.240.68.0/22 -add china_ip_route 43.240.72.0/21 -add china_ip_route 43.240.84.0/22 -add china_ip_route 43.240.124.0/22 -add china_ip_route 43.240.128.0/21 -add china_ip_route 43.240.136.0/22 -add china_ip_route 43.240.156.0/22 -add china_ip_route 43.240.160.0/19 -add china_ip_route 43.240.192.0/19 -add china_ip_route 43.240.240.0/20 -add china_ip_route 43.241.0.0/20 -add china_ip_route 43.241.16.0/21 -add china_ip_route 43.241.48.0/22 -add china_ip_route 43.241.76.0/22 -add china_ip_route 43.241.80.0/20 -add china_ip_route 43.241.112.0/22 -add china_ip_route 43.241.168.0/21 -add china_ip_route 43.241.176.0/21 -add china_ip_route 43.241.184.0/22 -add china_ip_route 43.241.208.0/20 -add china_ip_route 43.241.224.0/20 -add china_ip_route 43.241.240.0/22 -add china_ip_route 43.241.248.0/22 -add china_ip_route 43.242.8.0/21 -add china_ip_route 43.242.16.0/20 -add china_ip_route 43.242.48.0/22 -add china_ip_route 43.242.53.0/24 -add china_ip_route 43.242.54.0/24 -add china_ip_route 43.242.56.0/21 -add china_ip_route 43.242.64.0/22 -add china_ip_route 43.242.72.0/21 -add china_ip_route 43.242.80.0/20 -add china_ip_route 43.242.96.0/22 -add china_ip_route 43.242.144.0/20 -add china_ip_route 43.242.160.0/21 -add china_ip_route 43.242.180.0/22 -add china_ip_route 43.242.188.0/22 -add china_ip_route 43.242.192.0/21 -add china_ip_route 43.242.204.0/22 -add china_ip_route 43.242.216.0/21 -add china_ip_route 43.242.252.0/22 -add china_ip_route 43.243.4.0/22 -add china_ip_route 43.243.8.0/21 -add china_ip_route 43.243.16.0/22 -add china_ip_route 43.243.88.0/22 -add china_ip_route 43.243.128.0/22 -add china_ip_route 43.243.136.0/22 -add china_ip_route 43.243.144.0/21 -add china_ip_route 43.243.156.0/22 -add china_ip_route 43.243.180.0/22 -add china_ip_route 43.243.228.0/22 -add china_ip_route 43.243.232.0/22 -add china_ip_route 43.243.244.0/22 -add china_ip_route 43.246.0.0/18 -add china_ip_route 43.246.64.0/19 -add china_ip_route 43.246.96.0/22 -add china_ip_route 43.246.147.0/24 -add china_ip_route 43.246.148.0/24 -add china_ip_route 43.246.150.0/24 -add china_ip_route 43.246.151.0/30 -add china_ip_route 43.246.151.4/32 -add china_ip_route 43.246.151.6/31 -add china_ip_route 43.246.151.8/29 -add china_ip_route 43.246.151.16/28 -add china_ip_route 43.246.151.32/27 -add china_ip_route 43.246.151.64/26 -add china_ip_route 43.246.151.128/25 -add china_ip_route 43.246.228.0/22 -add china_ip_route 43.247.4.0/22 -add china_ip_route 43.247.8.0/22 -add china_ip_route 43.247.44.0/22 -add china_ip_route 43.247.48.0/22 -add china_ip_route 43.247.68.0/22 -add china_ip_route 43.247.76.0/22 -add china_ip_route 43.247.84.0/22 -add china_ip_route 43.247.88.0/21 -add china_ip_route 43.247.96.0/21 -add china_ip_route 43.247.108.0/22 -add china_ip_route 43.247.112.0/22 -add china_ip_route 43.247.148.0/22 -add china_ip_route 43.247.152.0/22 -add china_ip_route 43.247.176.0/20 -add china_ip_route 43.247.196.0/22 -add china_ip_route 43.247.200.0/21 -add china_ip_route 43.247.208.0/20 -add china_ip_route 43.247.224.0/19 -add china_ip_route 43.248.0.0/21 -add china_ip_route 43.248.20.0/22 -add china_ip_route 43.248.28.0/22 -add china_ip_route 43.248.48.0/22 -add china_ip_route 43.248.76.0/22 -add china_ip_route 43.248.80.0/20 -add china_ip_route 43.248.96.0/19 -add china_ip_route 43.248.128.0/20 -add china_ip_route 43.248.144.0/21 -add china_ip_route 43.248.176.0/20 -add china_ip_route 43.248.192.0/20 -add china_ip_route 43.248.208.0/22 -add china_ip_route 43.248.228.0/22 -add china_ip_route 43.248.232.0/22 -add china_ip_route 43.248.244.0/22 -add china_ip_route 43.249.4.0/22 -add china_ip_route 43.249.120.0/22 -add china_ip_route 43.249.132.0/22 -add china_ip_route 43.249.136.0/22 -add china_ip_route 43.249.144.0/20 -add china_ip_route 43.249.160.0/21 -add china_ip_route 43.249.168.0/22 -add china_ip_route 43.249.192.0/22 -add china_ip_route 43.249.236.0/22 -add china_ip_route 43.250.4.0/22 -add china_ip_route 43.250.12.0/22 -add china_ip_route 43.250.16.0/21 -add china_ip_route 43.250.28.0/22 -add china_ip_route 43.250.32.0/22 -add china_ip_route 43.250.96.0/21 -add china_ip_route 43.250.108.0/22 -add china_ip_route 43.250.112.0/21 -add china_ip_route 43.250.128.0/22 -add china_ip_route 43.250.144.0/21 -add china_ip_route 43.250.160.0/22 -add china_ip_route 43.250.168.0/22 -add china_ip_route 43.250.176.0/22 -add china_ip_route 43.250.200.0/22 -add china_ip_route 43.250.212.0/22 -add china_ip_route 43.250.216.0/21 -add china_ip_route 43.250.236.0/22 -add china_ip_route 43.250.244.0/22 -add china_ip_route 43.251.4.0/22 -add china_ip_route 43.251.36.0/22 -add china_ip_route 43.251.192.0/22 -add china_ip_route 43.251.232.0/22 -add china_ip_route 43.251.244.0/22 -add china_ip_route 43.252.48.0/22 -add china_ip_route 43.252.56.0/22 -add china_ip_route 43.252.224.0/22 -add china_ip_route 43.254.0.0/21 -add china_ip_route 43.254.8.0/22 -add china_ip_route 43.254.24.0/22 -add china_ip_route 43.254.36.0/22 -add china_ip_route 43.254.44.0/22 -add china_ip_route 43.254.52.0/22 -add china_ip_route 43.254.64.0/22 -add china_ip_route 43.254.72.0/22 -add china_ip_route 43.254.84.0/22 -add china_ip_route 43.254.88.0/21 -add china_ip_route 43.254.100.0/22 -add china_ip_route 43.254.104.0/22 -add china_ip_route 43.254.112.0/21 -add china_ip_route 43.254.128.0/22 -add china_ip_route 43.254.136.0/21 -add china_ip_route 43.254.144.0/20 -add china_ip_route 43.254.168.0/21 -add china_ip_route 43.254.180.0/22 -add china_ip_route 43.254.184.0/21 -add china_ip_route 43.254.192.0/22 -add china_ip_route 43.254.200.0/22 -add china_ip_route 43.254.208.0/22 -add china_ip_route 43.254.220.0/22 -add china_ip_route 43.254.224.0/20 -add china_ip_route 43.254.240.0/22 -add china_ip_route 43.254.248.0/21 -add china_ip_route 43.255.0.0/21 -add china_ip_route 43.255.8.0/22 -add china_ip_route 43.255.16.0/22 -add china_ip_route 43.255.48.0/22 -add china_ip_route 43.255.64.0/20 -add china_ip_route 43.255.84.0/22 -add china_ip_route 43.255.96.0/22 -add china_ip_route 43.255.144.0/22 -add china_ip_route 43.255.176.0/22 -add china_ip_route 43.255.184.0/22 -add china_ip_route 43.255.192.0/22 -add china_ip_route 43.255.200.0/21 -add china_ip_route 43.255.208.0/21 -add china_ip_route 43.255.224.0/21 -add china_ip_route 43.255.232.0/22 -add china_ip_route 43.255.244.0/22 -add china_ip_route 45.40.192.0/20 -add china_ip_route 45.40.208.0/21 -add china_ip_route 45.40.224.0/19 -add china_ip_route 45.65.16.0/20 -add china_ip_route 45.87.53.0/24 -add china_ip_route 45.87.54.0/23 -add china_ip_route 45.112.132.0/22 -add china_ip_route 45.112.188.0/22 -add china_ip_route 45.112.208.0/20 -add china_ip_route 45.112.228.0/22 -add china_ip_route 45.112.232.0/21 -add china_ip_route 45.113.12.0/22 -add china_ip_route 45.113.16.0/20 -add china_ip_route 45.113.40.0/22 -add china_ip_route 45.113.52.0/22 -add china_ip_route 45.113.72.0/22 -add china_ip_route 45.113.144.0/21 -add china_ip_route 45.113.168.0/22 -add china_ip_route 45.113.184.0/22 -add china_ip_route 45.113.200.0/21 -add china_ip_route 45.113.208.0/20 -add china_ip_route 45.113.240.0/22 -add china_ip_route 45.113.252.0/22 -add china_ip_route 45.114.0.0/22 -add china_ip_route 45.114.32.0/22 -add china_ip_route 45.114.52.0/22 -add china_ip_route 45.114.96.0/22 -add china_ip_route 45.114.136.0/22 -add china_ip_route 45.114.196.0/22 -add china_ip_route 45.114.200.0/22 -add china_ip_route 45.114.228.0/22 -add china_ip_route 45.114.237.0/24 -add china_ip_route 45.114.238.0/23 -add china_ip_route 45.114.252.0/22 -add china_ip_route 45.115.44.0/22 -add china_ip_route 45.115.100.0/22 -add china_ip_route 45.115.120.0/22 -add china_ip_route 45.115.132.0/22 -add china_ip_route 45.115.144.0/22 -add china_ip_route 45.115.156.0/22 -add china_ip_route 45.115.164.0/22 -add china_ip_route 45.115.200.0/22 -add china_ip_route 45.115.212.0/22 -add china_ip_route 45.115.244.0/22 -add china_ip_route 45.115.248.0/22 -add china_ip_route 45.116.16.0/22 -add china_ip_route 45.116.24.0/22 -add china_ip_route 45.116.32.0/21 -add china_ip_route 45.116.52.0/22 -add china_ip_route 45.116.96.0/21 -add china_ip_route 45.116.140.0/22 -add china_ip_route 45.116.152.0/22 -add china_ip_route 45.116.208.0/22 -add china_ip_route 45.117.8.0/22 -add china_ip_route 45.117.20.0/22 -add china_ip_route 45.117.68.0/22 -add china_ip_route 45.117.124.0/22 -add china_ip_route 45.117.252.0/22 -add china_ip_route 45.119.60.0/22 -add china_ip_route 45.119.64.0/21 -add china_ip_route 45.119.72.0/22 -add china_ip_route 45.119.104.0/22 -add china_ip_route 45.119.232.0/22 -add china_ip_route 45.120.100.0/22 -add china_ip_route 45.120.140.0/22 -add china_ip_route 45.120.164.0/22 -add china_ip_route 45.120.180.128/27 -add china_ip_route 45.120.240.0/22 -add china_ip_route 45.121.52.0/22 -add china_ip_route 45.121.64.0/21 -add china_ip_route 45.121.72.0/22 -add china_ip_route 45.121.92.0/22 -add china_ip_route 45.121.96.0/22 -add china_ip_route 45.121.172.0/22 -add china_ip_route 45.121.176.0/22 -add china_ip_route 45.121.240.0/20 -add china_ip_route 45.122.0.0/19 -add china_ip_route 45.122.32.0/21 -add china_ip_route 45.122.40.0/22 -add china_ip_route 45.122.60.0/22 -add china_ip_route 45.122.64.0/19 -add china_ip_route 45.122.96.0/20 -add china_ip_route 45.122.112.0/21 -add china_ip_route 45.122.160.0/19 -add china_ip_route 45.122.192.0/20 -add china_ip_route 45.122.208.0/21 -add china_ip_route 45.122.216.0/22 -add china_ip_route 45.123.28.0/22 -add china_ip_route 45.123.32.0/21 -add china_ip_route 45.123.44.0/22 -add china_ip_route 45.123.48.0/20 -add china_ip_route 45.123.64.0/20 -add china_ip_route 45.123.80.0/21 -add china_ip_route 45.123.120.0/22 -add china_ip_route 45.123.128.0/21 -add china_ip_route 45.123.136.0/22 -add china_ip_route 45.123.148.0/22 -add china_ip_route 45.123.152.0/21 -add china_ip_route 45.123.164.0/22 -add china_ip_route 45.123.168.0/21 -add china_ip_route 45.123.176.0/21 -add china_ip_route 45.123.184.0/22 -add china_ip_route 45.123.204.0/22 -add china_ip_route 45.123.212.0/22 -add china_ip_route 45.123.224.0/19 -add china_ip_route 45.124.0.0/22 -add china_ip_route 45.124.20.0/22 -add china_ip_route 45.124.28.0/22 -add china_ip_route 45.124.32.0/21 -add china_ip_route 45.124.44.0/22 -add china_ip_route 45.124.68.0/22 -add china_ip_route 45.124.76.0/22 -add china_ip_route 45.124.80.0/22 -add china_ip_route 45.124.100.0/22 -add china_ip_route 45.124.124.0/22 -add china_ip_route 45.124.172.0/22 -add china_ip_route 45.124.176.0/22 -add china_ip_route 45.124.208.0/22 -add china_ip_route 45.124.248.0/22 -add china_ip_route 45.125.24.0/22 -add china_ip_route 45.125.44.0/22 -add china_ip_route 45.125.52.0/22 -add china_ip_route 45.125.56.0/22 -add china_ip_route 45.125.76.0/22 -add china_ip_route 45.125.80.0/20 -add china_ip_route 45.125.96.0/21 -add china_ip_route 45.125.136.0/22 -add china_ip_route 45.126.48.0/21 -add china_ip_route 45.126.108.0/22 -add china_ip_route 45.126.112.0/21 -add china_ip_route 45.126.120.0/22 -add china_ip_route 45.126.220.0/22 -add china_ip_route 45.127.8.0/21 -add china_ip_route 45.127.128.0/22 -add china_ip_route 45.127.144.0/21 -add china_ip_route 45.127.156.0/22 -add china_ip_route 45.248.8.0/22 -add china_ip_route 45.248.80.0/22 -add china_ip_route 45.248.88.0/22 -add china_ip_route 45.248.96.0/20 -add china_ip_route 45.248.128.0/21 -add china_ip_route 45.248.204.0/22 -add china_ip_route 45.248.208.0/20 -add china_ip_route 45.248.224.0/19 -add china_ip_route 45.249.0.0/21 -add china_ip_route 45.249.12.0/22 -add china_ip_route 45.249.16.0/20 -add china_ip_route 45.249.32.0/21 -add china_ip_route 45.249.112.0/22 -add china_ip_route 45.249.188.0/22 -add china_ip_route 45.249.192.0/20 -add china_ip_route 45.249.208.0/21 -add china_ip_route 45.250.12.0/22 -add china_ip_route 45.250.16.0/22 -add china_ip_route 45.250.28.0/22 -add china_ip_route 45.250.32.0/21 -add china_ip_route 45.250.40.0/22 -add china_ip_route 45.250.76.0/22 -add china_ip_route 45.250.80.0/20 -add china_ip_route 45.250.96.0/22 -add china_ip_route 45.250.104.0/21 -add china_ip_route 45.250.112.0/20 -add china_ip_route 45.250.128.0/20 -add china_ip_route 45.250.144.0/21 -add china_ip_route 45.250.152.0/22 -add china_ip_route 45.250.164.0/22 -add china_ip_route 45.250.180.0/22 -add china_ip_route 45.250.184.0/21 -add china_ip_route 45.250.192.0/22 -add china_ip_route 45.251.0.0/22 -add china_ip_route 45.251.8.0/22 -add china_ip_route 45.251.16.0/21 -add china_ip_route 45.251.52.0/22 -add china_ip_route 45.251.84.0/22 -add china_ip_route 45.251.88.0/21 -add china_ip_route 45.251.96.0/21 -add china_ip_route 45.251.120.0/21 -add china_ip_route 45.251.137.0/24 -add china_ip_route 45.251.138.0/23 -add china_ip_route 45.251.140.0/22 -add china_ip_route 45.251.144.0/20 -add china_ip_route 45.251.160.0/19 -add china_ip_route 45.251.192.0/19 -add china_ip_route 45.251.224.0/22 -add china_ip_route 45.252.0.0/19 -add china_ip_route 45.252.32.0/20 -add china_ip_route 45.252.48.0/22 -add china_ip_route 45.252.84.0/22 -add china_ip_route 45.252.88.0/21 -add china_ip_route 45.252.96.0/19 -add china_ip_route 45.252.128.0/19 -add china_ip_route 45.252.160.0/20 -add china_ip_route 45.252.176.0/22 -add china_ip_route 45.252.192.0/19 -add china_ip_route 45.252.224.0/21 -add china_ip_route 45.252.232.0/22 -add china_ip_route 45.253.0.0/18 -add china_ip_route 45.253.64.0/20 -add china_ip_route 45.253.80.0/21 -add china_ip_route 45.253.92.0/22 -add china_ip_route 45.253.96.0/20 -add china_ip_route 45.253.112.0/21 -add china_ip_route 45.253.120.0/22 -add china_ip_route 45.253.132.0/22 -add china_ip_route 45.253.136.0/21 -add china_ip_route 45.253.144.0/20 -add china_ip_route 45.253.160.0/19 -add china_ip_route 45.253.192.0/19 -add china_ip_route 45.253.224.0/20 -add china_ip_route 45.253.240.0/22 -add china_ip_route 45.254.0.0/20 -add china_ip_route 45.254.16.0/21 -add china_ip_route 45.254.28.0/22 -add china_ip_route 45.254.40.0/22 -add china_ip_route 45.254.48.0/20 -add china_ip_route 45.254.64.0/18 -add china_ip_route 45.254.128.0/18 -add china_ip_route 45.254.192.0/19 -add china_ip_route 45.254.224.0/21 -add china_ip_route 45.254.236.0/22 -add china_ip_route 45.254.248.0/22 -add china_ip_route 45.255.0.0/18 -add china_ip_route 45.255.64.0/19 -add china_ip_route 45.255.96.0/20 -add china_ip_route 45.255.112.0/21 -add china_ip_route 45.255.120.0/22 -add china_ip_route 45.255.136.0/21 -add china_ip_route 45.255.144.0/20 -add china_ip_route 45.255.160.0/19 -add china_ip_route 45.255.192.0/19 -add china_ip_route 45.255.224.0/20 -add china_ip_route 45.255.240.0/21 -add china_ip_route 45.255.248.0/22 -add china_ip_route 46.248.24.0/23 -add china_ip_route 47.92.0.0/14 -add china_ip_route 47.96.0.0/11 -add china_ip_route 49.4.0.0/14 -add china_ip_route 49.51.56.0/22 -add china_ip_route 49.51.60.0/23 -add china_ip_route 49.51.110.0/23 -add china_ip_route 49.51.112.0/20 -add china_ip_route 49.52.0.0/14 -add china_ip_route 49.64.0.0/11 -add china_ip_route 49.112.0.0/13 -add china_ip_route 49.120.0.0/14 -add china_ip_route 49.128.0.0/24 -add china_ip_route 49.128.2.0/23 -add china_ip_route 49.128.4.0/22 -add china_ip_route 49.140.0.0/15 -add china_ip_route 49.152.0.0/14 -add china_ip_route 49.208.0.0/14 -add china_ip_route 49.220.0.0/14 -add china_ip_route 49.232.0.0/14 -add china_ip_route 49.239.0.0/18 -add china_ip_route 49.239.192.0/18 -add china_ip_route 52.80.0.0/14 -add china_ip_route 52.94.249.0/27 -add china_ip_route 52.130.0.0/15 -add china_ip_route 54.222.0.0/15 -add china_ip_route 54.231.208.0/20 -add china_ip_route 54.240.224.0/24 -add china_ip_route 57.92.96.0/20 -add china_ip_route 58.14.0.0/15 -add china_ip_route 58.16.0.0/13 -add china_ip_route 58.24.0.0/15 -add china_ip_route 58.30.0.0/15 -add china_ip_route 58.32.0.0/11 -add china_ip_route 58.65.232.0/21 -add china_ip_route 58.66.0.0/15 -add china_ip_route 58.68.128.0/19 -add china_ip_route 58.68.160.0/23 -add china_ip_route 58.68.163.0/24 -add china_ip_route 58.68.164.0/22 -add china_ip_route 58.68.179.0/24 -add china_ip_route 58.68.180.0/24 -add china_ip_route 58.68.200.0/21 -add china_ip_route 58.68.208.0/20 -add china_ip_route 58.68.224.0/19 -add china_ip_route 58.82.0.0/17 -add china_ip_route 58.83.0.0/16 -add china_ip_route 58.87.64.0/18 -add china_ip_route 58.99.128.0/17 -add china_ip_route 58.100.0.0/15 -add china_ip_route 58.116.0.0/14 -add china_ip_route 58.128.0.0/13 -add china_ip_route 58.144.0.0/16 -add china_ip_route 58.154.0.0/15 -add china_ip_route 58.192.0.0/11 -add china_ip_route 58.240.0.0/12 -add china_ip_route 59.32.0.0/11 -add china_ip_route 59.64.0.0/12 -add china_ip_route 59.80.0.0/15 -add china_ip_route 59.82.0.0/16 -add china_ip_route 59.83.0.0/18 -add china_ip_route 59.83.132.0/22 -add china_ip_route 59.83.136.0/21 -add china_ip_route 59.83.144.0/20 -add china_ip_route 59.83.160.0/19 -add china_ip_route 59.83.192.0/19 -add china_ip_route 59.83.224.0/20 -add china_ip_route 59.83.240.0/21 -add china_ip_route 59.83.248.0/22 -add china_ip_route 59.83.252.0/23 -add china_ip_route 59.83.254.0/24 -add china_ip_route 59.107.0.0/16 -add china_ip_route 59.108.0.0/14 -add china_ip_route 59.151.0.0/17 -add china_ip_route 59.152.16.0/20 -add china_ip_route 59.152.36.0/22 -add china_ip_route 59.152.64.0/20 -add china_ip_route 59.152.112.0/21 -add china_ip_route 59.153.4.0/22 -add china_ip_route 59.153.32.0/22 -add china_ip_route 59.153.64.0/21 -add china_ip_route 59.153.72.0/22 -add china_ip_route 59.153.92.0/22 -add china_ip_route 59.153.136.0/22 -add china_ip_route 59.153.152.0/21 -add china_ip_route 59.153.164.0/22 -add china_ip_route 59.153.168.0/21 -add china_ip_route 59.153.176.0/20 -add china_ip_route 59.153.192.0/22 -add china_ip_route 59.155.0.0/16 -add china_ip_route 59.172.0.0/14 -add china_ip_route 59.191.0.0/17 -add china_ip_route 59.192.0.0/10 -add china_ip_route 60.0.0.0/11 -add china_ip_route 60.55.0.0/16 -add china_ip_route 60.63.0.0/16 -add china_ip_route 60.160.0.0/11 -add china_ip_route 60.194.0.0/15 -add china_ip_route 60.200.0.0/13 -add china_ip_route 60.208.0.0/12 -add china_ip_route 60.232.0.0/15 -add china_ip_route 60.235.0.0/16 -add china_ip_route 60.245.128.0/17 -add china_ip_route 60.247.0.0/16 -add china_ip_route 60.252.0.0/16 -add china_ip_route 60.253.128.0/17 -add china_ip_route 60.255.0.0/16 -add china_ip_route 61.4.81.0/24 -add china_ip_route 61.4.82.0/23 -add china_ip_route 61.4.84.0/22 -add china_ip_route 61.4.88.0/21 -add china_ip_route 61.4.176.0/20 -add china_ip_route 61.8.160.0/20 -add china_ip_route 61.14.212.0/22 -add china_ip_route 61.14.216.0/21 -add china_ip_route 61.14.240.0/21 -add china_ip_route 61.28.0.0/17 -add china_ip_route 61.29.128.0/18 -add china_ip_route 61.29.192.0/19 -add china_ip_route 61.29.224.0/20 -add china_ip_route 61.45.128.0/18 -add china_ip_route 61.45.224.0/20 -add china_ip_route 61.47.128.0/18 -add china_ip_route 61.48.0.0/13 -add china_ip_route 61.87.192.0/18 -add china_ip_route 61.128.0.0/10 -add china_ip_route 61.232.0.0/14 -add china_ip_route 61.236.0.0/15 -add china_ip_route 61.240.0.0/14 -add china_ip_route 62.234.0.0/16 -add china_ip_route 64.188.38.0/23 -add china_ip_route 64.188.40.0/22 -add china_ip_route 64.188.44.0/23 -add china_ip_route 68.79.0.0/18 -add china_ip_route 69.230.192.0/18 -add china_ip_route 69.231.128.0/18 -add china_ip_route 69.234.192.0/18 -add china_ip_route 69.235.128.0/18 -add china_ip_route 71.131.192.0/18 -add china_ip_route 71.132.0.0/18 -add china_ip_route 71.136.64.0/18 -add china_ip_route 71.137.0.0/18 -add china_ip_route 72.163.240.0/23 -add china_ip_route 72.163.248.0/22 -add china_ip_route 81.68.0.0/14 -add china_ip_route 82.156.0.0/15 -add china_ip_route 87.254.207.0/24 -add china_ip_route 89.19.34.0/23 -add china_ip_route 93.183.14.0/24 -add china_ip_route 93.183.18.0/24 -add china_ip_route 94.191.0.0/17 -add china_ip_route 101.0.0.0/22 -add china_ip_route 101.1.0.0/22 -add china_ip_route 101.2.172.0/22 -add china_ip_route 101.4.0.0/14 -add china_ip_route 101.16.0.0/12 -add china_ip_route 101.32.176.0/20 -add china_ip_route 101.32.192.0/18 -add china_ip_route 101.33.0.0/16 -add china_ip_route 101.34.0.0/15 -add china_ip_route 101.36.0.0/18 -add china_ip_route 101.36.64.0/20 -add china_ip_route 101.36.88.0/21 -add china_ip_route 101.36.128.0/17 -add china_ip_route 101.37.0.0/16 -add china_ip_route 101.38.0.0/15 -add china_ip_route 101.40.0.0/13 -add china_ip_route 101.48.0.0/15 -add china_ip_route 101.50.8.0/21 -add china_ip_route 101.50.56.0/22 -add china_ip_route 101.52.0.0/16 -add china_ip_route 101.53.100.0/22 -add china_ip_route 101.54.0.0/16 -add china_ip_route 101.55.224.0/21 -add china_ip_route 101.64.0.0/13 -add china_ip_route 101.72.0.0/14 -add china_ip_route 101.76.0.0/15 -add china_ip_route 101.78.0.0/22 -add china_ip_route 101.78.32.0/19 -add china_ip_route 101.80.0.0/12 -add china_ip_route 101.96.0.0/21 -add china_ip_route 101.96.8.0/22 -add china_ip_route 101.96.16.0/20 -add china_ip_route 101.96.128.0/17 -add china_ip_route 101.99.96.0/19 -add china_ip_route 101.101.64.0/19 -add china_ip_route 101.101.100.0/24 -add china_ip_route 101.101.102.0/23 -add china_ip_route 101.101.104.0/21 -add china_ip_route 101.101.112.0/20 -add china_ip_route 101.102.64.0/19 -add china_ip_route 101.102.100.0/23 -add china_ip_route 101.102.102.0/24 -add china_ip_route 101.102.104.0/21 -add china_ip_route 101.102.112.0/20 -add china_ip_route 101.104.0.0/14 -add china_ip_route 101.110.64.0/19 -add china_ip_route 101.110.96.0/20 -add china_ip_route 101.110.116.0/22 -add china_ip_route 101.110.120.0/21 -add china_ip_route 101.120.0.0/14 -add china_ip_route 101.124.0.0/15 -add china_ip_route 101.126.0.0/16 -add china_ip_route 101.128.0.0/22 -add china_ip_route 101.128.8.0/21 -add china_ip_route 101.128.16.0/20 -add china_ip_route 101.128.32.0/19 -add china_ip_route 101.129.0.0/16 -add china_ip_route 101.130.0.0/15 -add china_ip_route 101.132.0.0/15 -add china_ip_route 101.134.0.0/17 -add china_ip_route 101.134.128.0/19 -add china_ip_route 101.134.160.0/20 -add china_ip_route 101.134.176.0/21 -add china_ip_route 101.134.184.0/22 -add china_ip_route 101.134.189.0/24 -add china_ip_route 101.134.190.0/23 -add china_ip_route 101.134.192.0/18 -add china_ip_route 101.135.0.0/16 -add china_ip_route 101.144.0.0/12 -add china_ip_route 101.192.0.0/14 -add china_ip_route 101.196.0.0/16 -add china_ip_route 101.198.128.0/18 -add china_ip_route 101.198.194.0/24 -add china_ip_route 101.198.196.0/23 -add china_ip_route 101.198.200.0/22 -add china_ip_route 101.198.224.0/19 -add china_ip_route 101.199.0.0/19 -add china_ip_route 101.199.48.0/20 -add china_ip_route 101.199.64.0/18 -add china_ip_route 101.199.128.0/17 -add china_ip_route 101.200.0.0/15 -add china_ip_route 101.203.128.0/19 -add china_ip_route 101.203.160.0/21 -add china_ip_route 101.203.172.0/22 -add china_ip_route 101.203.176.0/20 -add china_ip_route 101.204.0.0/14 -add china_ip_route 101.224.0.0/13 -add china_ip_route 101.232.0.0/15 -add china_ip_route 101.234.64.0/21 -add china_ip_route 101.234.76.0/22 -add china_ip_route 101.234.80.0/20 -add china_ip_route 101.234.96.0/19 -add china_ip_route 101.236.0.0/14 -add china_ip_route 101.240.0.0/13 -add china_ip_route 101.248.0.0/15 -add china_ip_route 101.251.0.0/22 -add china_ip_route 101.251.8.0/21 -add china_ip_route 101.251.16.0/20 -add china_ip_route 101.251.32.0/19 -add china_ip_route 101.251.64.0/18 -add china_ip_route 101.251.128.0/17 -add china_ip_route 101.252.0.0/15 -add china_ip_route 101.254.0.0/16 -add china_ip_route 102.176.130.0/24 -add china_ip_route 103.1.8.0/22 -add china_ip_route 103.1.20.0/22 -add china_ip_route 103.1.24.0/22 -add china_ip_route 103.1.88.0/22 -add china_ip_route 103.1.168.0/22 -add china_ip_route 103.2.108.0/22 -add china_ip_route 103.2.156.0/22 -add china_ip_route 103.2.164.0/22 -add china_ip_route 103.2.200.0/21 -add china_ip_route 103.2.208.0/21 -add china_ip_route 103.3.84.0/22 -add china_ip_route 103.3.88.0/21 -add china_ip_route 103.3.96.0/19 -add china_ip_route 103.3.128.0/20 -add china_ip_route 103.3.148.0/22 -add china_ip_route 103.3.152.0/21 -add china_ip_route 103.4.56.0/22 -add china_ip_route 103.4.168.0/22 -add china_ip_route 103.4.184.0/22 -add china_ip_route 103.5.36.0/22 -add china_ip_route 103.5.52.0/24 -add china_ip_route 103.5.56.0/22 -add china_ip_route 103.5.152.0/22 -add china_ip_route 103.5.168.0/22 -add china_ip_route 103.5.192.0/22 -add china_ip_route 103.5.252.0/22 -add china_ip_route 103.6.76.0/22 -add china_ip_route 103.6.120.0/22 -add china_ip_route 103.6.220.0/22 -add china_ip_route 103.7.140.0/22 -add china_ip_route 103.7.212.0/22 -add china_ip_route 103.7.216.0/21 -add china_ip_route 103.8.0.0/21 -add china_ip_route 103.8.8.0/22 -add china_ip_route 103.8.32.0/22 -add china_ip_route 103.8.52.0/22 -add china_ip_route 103.8.68.0/22 -add china_ip_route 103.8.108.0/22 -add china_ip_route 103.8.156.0/22 -add china_ip_route 103.8.200.0/21 -add china_ip_route 103.8.220.0/22 -add china_ip_route 103.9.8.0/22 -add china_ip_route 103.9.24.0/22 -add china_ip_route 103.9.108.0/22 -add china_ip_route 103.9.152.0/22 -add china_ip_route 103.9.248.0/21 -add china_ip_route 103.10.0.0/22 -add china_ip_route 103.10.16.0/22 -add china_ip_route 103.10.84.0/22 -add china_ip_route 103.10.111.0/24 -add china_ip_route 103.10.140.0/22 -add china_ip_route 103.11.16.0/22 -add china_ip_route 103.11.168.0/22 -add china_ip_route 103.11.180.0/22 -add china_ip_route 103.12.32.0/22 -add china_ip_route 103.12.136.0/22 -add china_ip_route 103.12.184.0/22 -add china_ip_route 103.12.232.0/22 -add china_ip_route 103.13.12.0/22 -add china_ip_route 103.13.124.0/22 -add china_ip_route 103.13.144.0/22 -add china_ip_route 103.13.196.0/22 -add china_ip_route 103.13.244.0/22 -add china_ip_route 103.14.84.0/22 -add china_ip_route 103.14.132.0/22 -add china_ip_route 103.14.136.0/22 -add china_ip_route 103.14.156.0/22 -add china_ip_route 103.14.240.0/22 -add china_ip_route 103.15.4.0/22 -add china_ip_route 103.15.8.0/22 -add china_ip_route 103.15.16.0/22 -add china_ip_route 103.15.96.0/22 -add china_ip_route 103.15.200.0/22 -add china_ip_route 103.16.52.0/22 -add china_ip_route 103.16.80.0/21 -add china_ip_route 103.16.88.0/22 -add china_ip_route 103.16.108.0/22 -add china_ip_route 103.16.124.0/22 -add china_ip_route 103.17.40.0/22 -add china_ip_route 103.17.64.0/22 -add china_ip_route 103.17.120.0/23 -add china_ip_route 103.17.136.0/22 -add china_ip_route 103.17.160.0/22 -add china_ip_route 103.17.204.0/22 -add china_ip_route 103.17.228.0/22 -add china_ip_route 103.18.192.0/22 -add china_ip_route 103.18.208.0/21 -add china_ip_route 103.18.224.0/22 -add china_ip_route 103.19.12.0/22 -add china_ip_route 103.19.40.0/21 -add china_ip_route 103.19.64.0/21 -add china_ip_route 103.19.72.0/22 -add china_ip_route 103.19.232.0/22 -add china_ip_route 103.20.12.0/22 -add china_ip_route 103.20.32.0/23 -add china_ip_route 103.20.34.0/24 -add china_ip_route 103.20.68.0/22 -add china_ip_route 103.20.112.0/22 -add china_ip_route 103.20.128.0/22 -add china_ip_route 103.20.160.0/22 -add china_ip_route 103.20.248.0/22 -add china_ip_route 103.21.112.0/21 -add china_ip_route 103.21.140.0/22 -add china_ip_route 103.21.176.0/22 -add china_ip_route 103.21.240.0/22 -add china_ip_route 103.22.0.0/18 -add china_ip_route 103.22.64.0/19 -add china_ip_route 103.22.100.0/22 -add china_ip_route 103.22.104.0/21 -add china_ip_route 103.22.112.0/20 -add china_ip_route 103.22.188.0/22 -add china_ip_route 103.22.228.0/22 -add china_ip_route 103.22.252.0/22 -add china_ip_route 103.23.8.0/22 -add china_ip_route 103.23.56.0/22 -add china_ip_route 103.23.160.0/21 -add china_ip_route 103.23.176.0/22 -add china_ip_route 103.23.228.0/22 -add china_ip_route 103.24.24.0/22 -add china_ip_route 103.24.116.0/22 -add china_ip_route 103.24.128.0/22 -add china_ip_route 103.24.144.0/22 -add china_ip_route 103.24.176.0/22 -add china_ip_route 103.24.184.0/22 -add china_ip_route 103.24.228.0/22 -add china_ip_route 103.24.252.0/22 -add china_ip_route 103.25.20.0/22 -add china_ip_route 103.25.24.0/21 -add china_ip_route 103.25.32.0/21 -add china_ip_route 103.25.40.0/22 -add china_ip_route 103.25.48.0/22 -add china_ip_route 103.25.64.0/21 -add china_ip_route 103.25.148.0/22 -add china_ip_route 103.25.156.0/22 -add china_ip_route 103.25.216.0/22 -add china_ip_route 103.26.0.0/22 -add china_ip_route 103.26.64.0/22 -add china_ip_route 103.26.76.0/22 -add china_ip_route 103.26.116.0/22 -add china_ip_route 103.26.156.0/22 -add china_ip_route 103.26.160.0/22 -add china_ip_route 103.26.228.0/22 -add china_ip_route 103.26.240.0/22 -add china_ip_route 103.27.4.0/22 -add china_ip_route 103.27.12.0/22 -add china_ip_route 103.27.24.0/22 -add china_ip_route 103.27.56.0/22 -add china_ip_route 103.27.96.0/22 -add china_ip_route 103.27.240.0/22 -add china_ip_route 103.28.4.0/22 -add china_ip_route 103.28.8.0/22 -add china_ip_route 103.28.184.0/22 -add china_ip_route 103.28.204.0/22 -add china_ip_route 103.28.212.0/22 -add china_ip_route 103.29.16.0/22 -add china_ip_route 103.29.128.0/21 -add china_ip_route 103.29.136.0/22 -add china_ip_route 103.30.20.0/22 -add china_ip_route 103.30.96.0/22 -add china_ip_route 103.30.148.0/22 -add china_ip_route 103.30.202.0/23 -add china_ip_route 103.30.228.0/22 -add china_ip_route 103.30.236.0/22 -add china_ip_route 103.31.0.0/22 -add china_ip_route 103.31.48.0/21 -add china_ip_route 103.31.60.0/22 -add china_ip_route 103.31.64.0/21 -add china_ip_route 103.31.72.0/24 -add china_ip_route 103.31.148.0/22 -add china_ip_route 103.31.160.0/22 -add china_ip_route 103.31.168.0/22 -add china_ip_route 103.31.200.0/22 -add china_ip_route 103.31.236.0/22 -add china_ip_route 103.32.0.0/15 -add china_ip_route 103.34.0.0/16 -add china_ip_route 103.35.0.0/19 -add china_ip_route 103.35.32.0/20 -add china_ip_route 103.35.48.0/22 -add china_ip_route 103.35.104.0/22 -add china_ip_route 103.35.220.0/22 -add china_ip_route 103.36.28.0/22 -add china_ip_route 103.36.36.0/22 -add china_ip_route 103.36.56.0/21 -add china_ip_route 103.36.64.0/22 -add china_ip_route 103.36.72.0/22 -add china_ip_route 103.36.96.0/22 -add china_ip_route 103.36.132.0/22 -add china_ip_route 103.36.136.0/22 -add china_ip_route 103.36.160.0/19 -add china_ip_route 103.36.192.0/19 -add china_ip_route 103.36.224.0/20 -add china_ip_route 103.36.240.0/21 -add china_ip_route 103.37.12.0/22 -add china_ip_route 103.37.16.0/22 -add china_ip_route 103.37.24.0/22 -add china_ip_route 103.37.44.0/22 -add china_ip_route 103.37.52.0/22 -add china_ip_route 103.37.56.0/22 -add china_ip_route 103.37.72.0/22 -add china_ip_route 103.37.100.0/22 -add china_ip_route 103.37.104.0/22 -add china_ip_route 103.37.136.0/21 -add china_ip_route 103.37.144.0/20 -add china_ip_route 103.37.160.0/21 -add china_ip_route 103.37.172.0/22 -add china_ip_route 103.37.176.0/22 -add china_ip_route 103.37.188.0/22 -add china_ip_route 103.37.208.0/20 -add china_ip_route 103.37.252.0/22 -add china_ip_route 103.38.0.0/22 -add china_ip_route 103.38.32.0/22 -add china_ip_route 103.38.40.0/21 -add china_ip_route 103.38.76.0/22 -add china_ip_route 103.38.84.0/22 -add china_ip_route 103.38.92.0/22 -add china_ip_route 103.38.96.0/22 -add china_ip_route 103.38.116.0/22 -add china_ip_route 103.38.132.0/22 -add china_ip_route 103.38.140.0/22 -add china_ip_route 103.38.220.0/22 -add china_ip_route 103.38.224.0/21 -add china_ip_route 103.38.232.0/22 -add china_ip_route 103.38.252.0/23 -add china_ip_route 103.39.64.0/22 -add china_ip_route 103.39.88.0/22 -add china_ip_route 103.39.100.0/22 -add china_ip_route 103.39.104.0/22 -add china_ip_route 103.39.160.0/19 -add china_ip_route 103.39.200.0/21 -add china_ip_route 103.39.208.0/20 -add china_ip_route 103.39.224.0/21 -add china_ip_route 103.39.232.0/22 -add china_ip_route 103.40.12.0/22 -add china_ip_route 103.40.16.0/20 -add china_ip_route 103.40.32.0/20 -add china_ip_route 103.40.88.0/22 -add china_ip_route 103.40.192.0/22 -add china_ip_route 103.40.212.0/22 -add china_ip_route 103.40.220.0/22 -add china_ip_route 103.40.228.0/22 -add china_ip_route 103.40.232.0/21 -add china_ip_route 103.40.240.0/20 -add china_ip_route 103.41.0.0/22 -add china_ip_route 103.41.52.0/22 -add china_ip_route 103.41.140.0/22 -add china_ip_route 103.41.148.0/22 -add china_ip_route 103.41.152.0/22 -add china_ip_route 103.41.160.0/21 -add china_ip_route 103.41.220.0/22 -add china_ip_route 103.41.224.0/21 -add china_ip_route 103.41.232.0/22 -add china_ip_route 103.42.8.0/22 -add china_ip_route 103.42.24.0/22 -add china_ip_route 103.42.32.0/22 -add china_ip_route 103.42.64.0/21 -add china_ip_route 103.42.76.0/22 -add china_ip_route 103.42.232.0/22 -add china_ip_route 103.43.26.0/23 -add china_ip_route 103.43.96.0/21 -add china_ip_route 103.43.104.0/22 -add china_ip_route 103.43.124.0/22 -add china_ip_route 103.43.184.0/22 -add china_ip_route 103.43.196.0/22 -add china_ip_route 103.43.208.0/22 -add china_ip_route 103.43.220.0/22 -add china_ip_route 103.43.224.0/22 -add china_ip_route 103.43.240.0/22 -add china_ip_route 103.44.58.0/23 -add china_ip_route 103.44.80.0/22 -add china_ip_route 103.44.120.0/21 -add china_ip_route 103.44.144.0/22 -add china_ip_route 103.44.152.0/22 -add china_ip_route 103.44.168.0/22 -add china_ip_route 103.44.176.0/20 -add china_ip_route 103.44.192.0/20 -add china_ip_route 103.44.224.0/22 -add china_ip_route 103.44.236.0/22 -add china_ip_route 103.44.240.0/20 -add china_ip_route 103.45.0.0/18 -add china_ip_route 103.45.72.0/21 -add china_ip_route 103.45.80.0/20 -add china_ip_route 103.45.96.0/19 -add china_ip_route 103.45.128.0/18 -add china_ip_route 103.45.192.0/19 -add china_ip_route 103.45.224.0/22 -add china_ip_route 103.45.248.0/22 -add china_ip_route 103.46.0.0/22 -add china_ip_route 103.46.12.0/22 -add china_ip_route 103.46.16.0/20 -add china_ip_route 103.46.32.0/19 -add china_ip_route 103.46.64.0/18 -add china_ip_route 103.46.128.0/21 -add china_ip_route 103.46.136.0/22 -add china_ip_route 103.46.152.0/21 -add china_ip_route 103.46.160.0/20 -add china_ip_route 103.46.176.0/21 -add china_ip_route 103.46.244.0/22 -add china_ip_route 103.46.248.0/22 -add china_ip_route 103.47.4.0/22 -add china_ip_route 103.47.20.0/22 -add china_ip_route 103.47.36.0/22 -add china_ip_route 103.47.40.0/22 -add china_ip_route 103.47.48.0/22 -add china_ip_route 103.47.80.0/22 -add china_ip_route 103.47.96.0/22 -add china_ip_route 103.47.116.0/22 -add china_ip_route 103.47.120.0/22 -add china_ip_route 103.47.136.0/21 -add china_ip_route 103.47.212.0/22 -add china_ip_route 103.48.52.0/22 -add china_ip_route 103.48.92.0/22 -add china_ip_route 103.48.148.0/22 -add china_ip_route 103.48.152.0/22 -add china_ip_route 103.48.202.0/23 -add china_ip_route 103.48.216.0/21 -add china_ip_route 103.48.224.0/20 -add china_ip_route 103.48.240.0/21 -add china_ip_route 103.49.12.0/22 -add china_ip_route 103.49.20.0/22 -add china_ip_route 103.49.72.0/21 -add china_ip_route 103.49.96.0/22 -add china_ip_route 103.49.108.0/22 -add china_ip_route 103.49.128.0/22 -add china_ip_route 103.49.176.0/21 -add china_ip_route 103.50.36.0/22 -add china_ip_route 103.50.44.0/22 -add china_ip_route 103.50.48.0/20 -add china_ip_route 103.50.64.0/21 -add china_ip_route 103.50.72.0/22 -add china_ip_route 103.50.108.0/22 -add china_ip_route 103.50.112.0/20 -add china_ip_route 103.50.132.0/22 -add china_ip_route 103.50.136.0/21 -add china_ip_route 103.50.172.0/22 -add china_ip_route 103.50.176.0/20 -add china_ip_route 103.50.192.0/21 -add china_ip_route 103.50.200.0/22 -add china_ip_route 103.50.220.0/22 -add china_ip_route 103.50.224.0/20 -add china_ip_route 103.50.240.0/21 -add china_ip_route 103.50.248.0/22 -add china_ip_route 103.52.40.0/22 -add china_ip_route 103.52.72.0/21 -add china_ip_route 103.52.80.0/21 -add china_ip_route 103.52.96.0/21 -add china_ip_route 103.52.104.0/22 -add china_ip_route 103.52.160.0/21 -add china_ip_route 103.52.172.0/22 -add china_ip_route 103.52.176.0/22 -add china_ip_route 103.52.184.0/22 -add china_ip_route 103.52.196.0/22 -add china_ip_route 103.53.64.0/21 -add china_ip_route 103.53.92.0/22 -add china_ip_route 103.53.124.0/22 -add china_ip_route 103.53.128.0/20 -add china_ip_route 103.53.144.0/22 -add china_ip_route 103.53.160.0/22 -add china_ip_route 103.53.180.0/22 -add china_ip_route 103.53.204.0/22 -add china_ip_route 103.53.208.0/21 -add china_ip_route 103.53.236.0/22 -add china_ip_route 103.53.248.0/22 -add china_ip_route 103.54.8.0/22 -add china_ip_route 103.54.48.0/22 -add china_ip_route 103.54.160.0/21 -add china_ip_route 103.54.212.0/22 -add china_ip_route 103.54.228.0/22 -add china_ip_route 103.54.240.0/22 -add china_ip_route 103.55.80.0/22 -add china_ip_route 103.55.120.0/22 -add china_ip_route 103.55.152.0/22 -add china_ip_route 103.55.172.0/22 -add china_ip_route 103.55.204.0/22 -add china_ip_route 103.55.208.0/22 -add china_ip_route 103.55.228.0/22 -add china_ip_route 103.55.236.0/22 -add china_ip_route 103.55.240.0/22 -add china_ip_route 103.56.20.0/22 -add china_ip_route 103.56.32.0/22 -add china_ip_route 103.56.56.0/21 -add china_ip_route 103.56.72.0/21 -add china_ip_route 103.56.140.0/22 -add china_ip_route 103.56.152.0/22 -add china_ip_route 103.56.184.0/22 -add china_ip_route 103.56.200.0/22 -add china_ip_route 103.57.12.0/22 -add china_ip_route 103.57.52.0/22 -add china_ip_route 103.57.56.0/22 -add china_ip_route 103.57.76.0/22 -add china_ip_route 103.57.136.0/22 -add china_ip_route 103.57.196.0/22 -add china_ip_route 103.58.24.0/22 -add china_ip_route 103.59.76.0/22 -add china_ip_route 103.59.112.0/21 -add china_ip_route 103.59.120.0/24 -add china_ip_route 103.59.123.0/24 -add china_ip_route 103.59.124.0/22 -add china_ip_route 103.59.128.0/22 -add china_ip_route 103.59.148.0/22 -add china_ip_route 103.60.32.0/22 -add china_ip_route 103.60.44.0/22 -add china_ip_route 103.60.164.0/22 -add china_ip_route 103.60.228.0/22 -add china_ip_route 103.60.236.0/22 -add china_ip_route 103.61.60.0/24 -add china_ip_route 103.61.104.0/22 -add china_ip_route 103.61.140.0/22 -add china_ip_route 103.61.152.0/21 -add china_ip_route 103.61.160.0/22 -add china_ip_route 103.61.172.0/22 -add china_ip_route 103.61.176.0/22 -add china_ip_route 103.62.24.0/22 -add china_ip_route 103.62.72.0/21 -add china_ip_route 103.62.80.0/21 -add china_ip_route 103.62.88.0/22 -add china_ip_route 103.62.96.0/19 -add china_ip_route 103.62.128.0/21 -add china_ip_route 103.62.156.0/22 -add china_ip_route 103.62.160.0/19 -add china_ip_route 103.62.192.0/22 -add china_ip_route 103.62.204.0/22 -add china_ip_route 103.62.208.0/20 -add china_ip_route 103.62.224.0/22 -add china_ip_route 103.63.32.0/19 -add china_ip_route 103.63.64.0/20 -add china_ip_route 103.63.80.0/21 -add china_ip_route 103.63.88.0/22 -add china_ip_route 103.63.140.0/22 -add china_ip_route 103.63.144.0/22 -add china_ip_route 103.63.152.0/22 -add china_ip_route 103.63.160.0/20 -add china_ip_route 103.63.176.0/21 -add china_ip_route 103.63.184.0/22 -add china_ip_route 103.63.192.0/20 -add china_ip_route 103.63.208.0/22 -add china_ip_route 103.63.240.0/20 -add china_ip_route 103.64.0.0/21 -add china_ip_route 103.64.24.0/21 -add china_ip_route 103.64.32.0/19 -add china_ip_route 103.64.64.0/18 -add china_ip_route 103.64.140.0/22 -add china_ip_route 103.64.144.0/22 -add china_ip_route 103.64.152.0/21 -add china_ip_route 103.64.160.0/19 -add china_ip_route 103.64.192.0/18 -add china_ip_route 103.65.0.0/21 -add china_ip_route 103.65.12.0/22 -add china_ip_route 103.65.16.0/22 -add china_ip_route 103.65.48.0/20 -add china_ip_route 103.65.64.0/19 -add china_ip_route 103.65.100.0/22 -add china_ip_route 103.65.104.0/21 -add china_ip_route 103.65.112.0/20 -add china_ip_route 103.65.128.0/21 -add china_ip_route 103.65.136.0/22 -add china_ip_route 103.65.144.0/20 -add china_ip_route 103.65.160.0/20 -add china_ip_route 103.66.32.0/22 -add china_ip_route 103.66.40.0/22 -add china_ip_route 103.66.108.0/22 -add china_ip_route 103.66.200.0/22 -add china_ip_route 103.66.240.0/20 -add china_ip_route 103.67.0.0/21 -add china_ip_route 103.67.8.0/22 -add china_ip_route 103.67.40.0/21 -add china_ip_route 103.67.48.0/20 -add china_ip_route 103.67.64.0/18 -add china_ip_route 103.67.128.0/20 -add china_ip_route 103.67.144.0/21 -add china_ip_route 103.67.172.0/24 -add china_ip_route 103.67.175.0/24 -add china_ip_route 103.67.192.0/22 -add china_ip_route 103.67.212.0/22 -add china_ip_route 103.68.88.0/22 -add china_ip_route 103.68.100.0/22 -add china_ip_route 103.68.128.0/22 -add china_ip_route 103.69.16.0/22 -add china_ip_route 103.70.8.0/22 -add china_ip_route 103.70.148.0/22 -add china_ip_route 103.70.236.0/22 -add china_ip_route 103.70.252.0/22 -add china_ip_route 103.71.0.0/22 -add china_ip_route 103.71.68.0/22 -add china_ip_route 103.71.72.0/22 -add china_ip_route 103.71.80.0/21 -add china_ip_route 103.71.88.0/22 -add china_ip_route 103.71.120.0/21 -add china_ip_route 103.71.128.0/22 -add china_ip_route 103.71.196.0/22 -add china_ip_route 103.71.200.0/22 -add china_ip_route 103.71.232.0/22 -add china_ip_route 103.72.12.0/22 -add china_ip_route 103.72.16.0/20 -add china_ip_route 103.72.32.0/20 -add china_ip_route 103.72.48.0/21 -add china_ip_route 103.72.112.0/21 -add china_ip_route 103.72.124.0/22 -add china_ip_route 103.72.128.0/21 -add china_ip_route 103.72.149.0/24 -add china_ip_route 103.72.150.0/23 -add china_ip_route 103.72.172.0/22 -add china_ip_route 103.72.180.0/22 -add china_ip_route 103.72.224.0/19 -add china_ip_route 103.73.0.0/19 -add china_ip_route 103.73.48.0/22 -add china_ip_route 103.73.116.0/22 -add china_ip_route 103.73.120.0/22 -add china_ip_route 103.73.128.0/20 -add china_ip_route 103.73.168.0/22 -add china_ip_route 103.73.176.0/22 -add china_ip_route 103.73.204.0/22 -add china_ip_route 103.73.208.0/22 -add china_ip_route 103.73.240.0/23 -add china_ip_route 103.73.244.0/22 -add china_ip_route 103.73.248.0/22 -add china_ip_route 103.74.24.0/21 -add china_ip_route 103.74.32.0/20 -add china_ip_route 103.74.48.0/22 -add china_ip_route 103.74.56.0/21 -add china_ip_route 103.74.80.0/22 -add china_ip_route 103.74.124.0/22 -add china_ip_route 103.74.148.0/22 -add china_ip_route 103.74.152.0/21 -add china_ip_route 103.74.204.0/22 -add china_ip_route 103.74.232.0/22 -add china_ip_route 103.75.87.0/24 -add china_ip_route 103.75.88.0/21 -add china_ip_route 103.75.104.0/21 -add china_ip_route 103.75.112.0/22 -add china_ip_route 103.75.120.0/22 -add china_ip_route 103.75.128.0/22 -add china_ip_route 103.75.144.0/22 -add china_ip_route 103.75.152.0/22 -add china_ip_route 103.76.60.0/22 -add china_ip_route 103.76.64.0/21 -add china_ip_route 103.76.72.0/22 -add china_ip_route 103.76.92.0/22 -add china_ip_route 103.76.216.0/21 -add china_ip_route 103.76.224.0/22 -add china_ip_route 103.77.28.0/22 -add china_ip_route 103.77.52.0/22 -add china_ip_route 103.77.56.0/22 -add china_ip_route 103.77.88.0/22 -add china_ip_route 103.77.132.0/22 -add china_ip_route 103.77.148.0/22 -add china_ip_route 103.77.220.0/22 -add china_ip_route 103.78.56.0/21 -add china_ip_route 103.78.64.0/22 -add china_ip_route 103.78.124.0/22 -add china_ip_route 103.78.172.0/22 -add china_ip_route 103.78.176.0/22 -add china_ip_route 103.78.196.0/22 -add china_ip_route 103.78.228.0/22 -add china_ip_route 103.79.24.0/21 -add china_ip_route 103.79.36.0/22 -add china_ip_route 103.79.40.0/21 -add china_ip_route 103.79.56.0/21 -add china_ip_route 103.79.64.0/21 -add china_ip_route 103.79.80.0/21 -add china_ip_route 103.79.136.0/22 -add china_ip_route 103.79.188.0/22 -add china_ip_route 103.79.192.0/20 -add china_ip_route 103.79.208.0/21 -add china_ip_route 103.80.44.0/22 -add china_ip_route 103.80.72.0/22 -add china_ip_route 103.80.176.0/21 -add china_ip_route 103.80.184.0/22 -add china_ip_route 103.80.192.0/22 -add china_ip_route 103.80.200.0/22 -add china_ip_route 103.80.232.0/22 -add china_ip_route 103.81.4.0/22 -add china_ip_route 103.81.44.0/22 -add china_ip_route 103.81.48.0/22 -add china_ip_route 103.81.96.0/22 -add china_ip_route 103.81.120.0/22 -add china_ip_route 103.81.148.0/22 -add china_ip_route 103.81.164.0/22 -add china_ip_route 103.81.200.0/22 -add china_ip_route 103.81.232.0/22 -add china_ip_route 103.82.60.0/22 -add china_ip_route 103.82.68.0/22 -add china_ip_route 103.82.84.0/22 -add china_ip_route 103.82.104.0/22 -add china_ip_route 103.82.224.0/22 -add china_ip_route 103.82.236.0/22 -add china_ip_route 103.83.44.0/22 -add china_ip_route 103.83.52.0/22 -add china_ip_route 103.83.60.0/22 -add china_ip_route 103.83.72.0/22 -add china_ip_route 103.83.112.0/22 -add china_ip_route 103.83.132.0/22 -add china_ip_route 103.83.180.0/22 -add china_ip_route 103.84.0.0/22 -add china_ip_route 103.84.12.0/22 -add china_ip_route 103.84.20.0/22 -add china_ip_route 103.84.24.0/21 -add china_ip_route 103.84.48.0/22 -add china_ip_route 103.84.56.0/22 -add china_ip_route 103.84.64.0/22 -add china_ip_route 103.84.72.0/22 -add china_ip_route 103.85.44.0/22 -add china_ip_route 103.85.48.0/21 -add china_ip_route 103.85.56.0/22 -add china_ip_route 103.85.84.0/22 -add china_ip_route 103.85.136.0/22 -add china_ip_route 103.85.144.0/22 -add china_ip_route 103.85.164.0/22 -add china_ip_route 103.85.168.0/21 -add china_ip_route 103.85.176.0/22 -add china_ip_route 103.86.28.0/22 -add china_ip_route 103.86.32.0/22 -add china_ip_route 103.86.60.0/22 -add china_ip_route 103.86.129.0/24 -add china_ip_route 103.86.204.0/22 -add china_ip_route 103.86.208.0/20 -add china_ip_route 103.86.224.0/19 -add china_ip_route 103.87.0.0/21 -add china_ip_route 103.87.20.0/22 -add china_ip_route 103.87.32.0/22 -add china_ip_route 103.87.96.0/22 -add china_ip_route 103.87.132.0/22 -add china_ip_route 103.87.180.0/22 -add china_ip_route 103.87.224.0/22 -add china_ip_route 103.88.4.0/22 -add china_ip_route 103.88.8.0/21 -add china_ip_route 103.88.16.0/21 -add china_ip_route 103.88.32.0/21 -add china_ip_route 103.88.60.0/22 -add china_ip_route 103.88.64.0/22 -add china_ip_route 103.88.72.0/22 -add china_ip_route 103.88.96.0/21 -add china_ip_route 103.88.152.0/23 -add china_ip_route 103.88.164.0/22 -add china_ip_route 103.88.212.0/22 -add china_ip_route 103.89.28.0/22 -add china_ip_route 103.89.96.0/20 -add china_ip_route 103.89.112.0/22 -add china_ip_route 103.89.148.0/22 -add china_ip_route 103.89.172.0/22 -add china_ip_route 103.89.184.0/21 -add china_ip_route 103.89.192.0/19 -add china_ip_route 103.89.224.0/21 -add china_ip_route 103.90.52.0/22 -add china_ip_route 103.90.92.0/22 -add china_ip_route 103.90.100.0/22 -add china_ip_route 103.90.104.0/21 -add china_ip_route 103.90.112.0/20 -add china_ip_route 103.90.128.0/21 -add china_ip_route 103.90.152.0/22 -add china_ip_route 103.90.168.0/22 -add china_ip_route 103.90.173.0/24 -add china_ip_route 103.90.176.0/22 -add china_ip_route 103.90.188.0/22 -add china_ip_route 103.90.192.0/22 -add china_ip_route 103.91.36.0/22 -add china_ip_route 103.91.40.0/22 -add china_ip_route 103.91.108.0/22 -add china_ip_route 103.91.152.0/22 -add china_ip_route 103.91.176.0/22 -add china_ip_route 103.91.200.0/22 -add china_ip_route 103.91.208.0/21 -add china_ip_route 103.91.236.0/22 -add china_ip_route 103.92.48.0/20 -add china_ip_route 103.92.64.0/20 -add china_ip_route 103.92.80.0/22 -add china_ip_route 103.92.88.0/22 -add china_ip_route 103.92.108.0/22 -add china_ip_route 103.92.124.0/22 -add china_ip_route 103.92.132.0/22 -add china_ip_route 103.92.156.0/22 -add china_ip_route 103.92.164.0/22 -add china_ip_route 103.92.168.0/21 -add china_ip_route 103.92.176.0/20 -add china_ip_route 103.92.192.0/22 -add china_ip_route 103.92.236.0/22 -add china_ip_route 103.92.240.0/20 -add china_ip_route 103.93.0.0/21 -add china_ip_route 103.93.28.0/22 -add china_ip_route 103.93.84.0/22 -add china_ip_route 103.93.152.0/22 -add china_ip_route 103.93.180.0/22 -add china_ip_route 103.93.204.0/22 -add china_ip_route 103.94.12.0/22 -add china_ip_route 103.94.20.0/22 -add china_ip_route 103.94.29.0/24 -add china_ip_route 103.94.30.0/23 -add china_ip_route 103.94.32.0/20 -add china_ip_route 103.94.72.0/22 -add china_ip_route 103.94.88.0/22 -add china_ip_route 103.94.116.0/22 -add china_ip_route 103.94.160.0/22 -add china_ip_route 103.94.200.0/22 -add china_ip_route 103.95.28.0/24 -add china_ip_route 103.95.30.0/23 -add china_ip_route 103.95.52.0/22 -add china_ip_route 103.95.69.0/24 -add china_ip_route 103.95.70.0/23 -add china_ip_route 103.95.88.0/21 -add china_ip_route 103.95.136.0/21 -add china_ip_route 103.95.144.0/22 -add china_ip_route 103.95.152.0/22 -add china_ip_route 103.95.216.0/21 -add china_ip_route 103.95.224.0/22 -add china_ip_route 103.95.236.0/22 -add china_ip_route 103.95.240.0/20 -add china_ip_route 103.96.8.0/22 -add china_ip_route 103.96.124.0/22 -add china_ip_route 103.96.136.0/22 -add china_ip_route 103.96.152.0/21 -add china_ip_route 103.96.160.0/19 -add china_ip_route 103.96.192.0/20 -add china_ip_route 103.96.208.0/21 -add china_ip_route 103.96.216.0/22 -add china_ip_route 103.97.40.0/22 -add china_ip_route 103.97.60.0/23 -add china_ip_route 103.97.112.0/21 -add china_ip_route 103.97.148.0/22 -add china_ip_route 103.97.188.0/22 -add china_ip_route 103.97.192.0/22 -add china_ip_route 103.98.40.0/21 -add china_ip_route 103.98.48.0/22 -add china_ip_route 103.98.56.0/22 -add china_ip_route 103.98.80.0/22 -add china_ip_route 103.98.88.0/22 -add china_ip_route 103.98.100.0/22 -add china_ip_route 103.98.124.0/24 -add china_ip_route 103.98.126.0/23 -add china_ip_route 103.98.136.0/21 -add china_ip_route 103.98.144.0/22 -add china_ip_route 103.98.164.0/22 -add china_ip_route 103.98.168.0/22 -add china_ip_route 103.98.180.0/22 -add china_ip_route 103.98.196.0/22 -add china_ip_route 103.98.216.0/21 -add china_ip_route 103.98.224.0/21 -add china_ip_route 103.98.232.0/22 -add china_ip_route 103.98.240.0/21 -add china_ip_route 103.98.248.0/23 -add china_ip_route 103.98.250.0/24 -add china_ip_route 103.98.252.0/22 -add china_ip_route 103.99.56.0/22 -add china_ip_route 103.99.104.0/22 -add china_ip_route 103.99.116.0/22 -add china_ip_route 103.99.120.0/22 -add china_ip_route 103.99.132.0/22 -add china_ip_route 103.99.136.0/21 -add china_ip_route 103.99.144.0/22 -add china_ip_route 103.99.152.0/22 -add china_ip_route 103.99.220.0/22 -add china_ip_route 103.99.232.0/21 -add china_ip_route 103.100.0.0/22 -add china_ip_route 103.100.32.0/22 -add china_ip_route 103.100.40.0/22 -add china_ip_route 103.100.48.0/22 -add china_ip_route 103.100.56.0/22 -add china_ip_route 103.100.64.0/22 -add china_ip_route 103.100.88.0/22 -add china_ip_route 103.100.116.0/22 -add china_ip_route 103.100.144.0/22 -add china_ip_route 103.100.240.0/22 -add china_ip_route 103.100.248.0/21 -add china_ip_route 103.101.4.0/22 -add china_ip_route 103.101.8.0/21 -add china_ip_route 103.101.60.0/22 -add china_ip_route 103.101.121.0/24 -add china_ip_route 103.101.122.0/23 -add china_ip_route 103.101.124.0/24 -add china_ip_route 103.101.126.0/23 -add china_ip_route 103.101.144.0/21 -add china_ip_route 103.101.180.0/22 -add china_ip_route 103.101.184.0/22 -add china_ip_route 103.102.76.0/22 -add china_ip_route 103.102.80.0/22 -add china_ip_route 103.102.168.0/21 -add china_ip_route 103.102.180.0/22 -add china_ip_route 103.102.184.0/21 -add china_ip_route 103.102.192.0/22 -add china_ip_route 103.102.196.0/24 -add china_ip_route 103.102.200.0/22 -add china_ip_route 103.102.208.0/21 -add china_ip_route 103.103.12.0/22 -add china_ip_route 103.103.16.0/22 -add china_ip_route 103.103.36.0/22 -add china_ip_route 103.103.72.0/22 -add china_ip_route 103.103.188.0/22 -add china_ip_route 103.103.204.0/22 -add china_ip_route 103.103.225.0/24 -add china_ip_route 103.104.36.0/22 -add china_ip_route 103.104.40.0/22 -add china_ip_route 103.104.64.0/22 -add china_ip_route 103.104.152.0/22 -add china_ip_route 103.104.252.0/22 -add china_ip_route 103.105.0.0/21 -add china_ip_route 103.105.12.0/22 -add china_ip_route 103.105.16.0/22 -add china_ip_route 103.105.60.0/22 -add china_ip_route 103.105.116.0/22 -add china_ip_route 103.105.180.0/22 -add china_ip_route 103.105.184.0/22 -add china_ip_route 103.105.200.0/21 -add china_ip_route 103.105.220.0/22 -add china_ip_route 103.106.36.0/22 -add china_ip_route 103.106.40.0/21 -add china_ip_route 103.106.60.0/22 -add china_ip_route 103.106.68.0/22 -add china_ip_route 103.106.96.0/22 -add china_ip_route 103.106.120.0/22 -add china_ip_route 103.106.128.0/21 -add china_ip_route 103.106.190.0/23 -add china_ip_route 103.106.196.0/22 -add china_ip_route 103.106.212.0/22 -add china_ip_route 103.106.252.0/22 -add china_ip_route 103.107.0.0/22 -add china_ip_route 103.107.28.0/22 -add china_ip_route 103.107.32.0/22 -add china_ip_route 103.107.44.0/22 -add china_ip_route 103.107.72.0/22 -add china_ip_route 103.107.164.0/22 -add china_ip_route 103.107.168.0/22 -add china_ip_route 103.107.188.0/22 -add china_ip_route 103.107.192.0/22 -add china_ip_route 103.107.208.0/20 -add china_ip_route 103.108.52.0/22 -add china_ip_route 103.108.160.0/21 -add china_ip_route 103.108.196.0/22 -add china_ip_route 103.108.208.0/21 -add china_ip_route 103.108.224.0/22 -add china_ip_route 103.108.244.0/22 -add china_ip_route 103.108.251.0/24 -add china_ip_route 103.109.20.0/22 -add china_ip_route 103.109.48.0/22 -add china_ip_route 103.109.88.0/22 -add china_ip_route 103.109.107.0/24 -add china_ip_route 103.109.248.0/22 -add china_ip_route 103.110.32.0/22 -add china_ip_route 103.110.92.0/22 -add china_ip_route 103.110.119.0/24 -add china_ip_route 103.110.127.0/24 -add china_ip_route 103.110.128.0/23 -add china_ip_route 103.110.131.0/24 -add china_ip_route 103.110.132.0/22 -add china_ip_route 103.110.136.0/22 -add china_ip_route 103.110.156.0/22 -add china_ip_route 103.110.188.0/22 -add china_ip_route 103.110.204.0/22 -add china_ip_route 103.111.64.0/22 -add china_ip_route 103.111.172.0/22 -add china_ip_route 103.111.252.0/22 -add china_ip_route 103.112.72.0/22 -add china_ip_route 103.112.88.0/21 -add china_ip_route 103.112.108.0/22 -add china_ip_route 103.112.112.0/22 -add china_ip_route 103.112.140.0/22 -add china_ip_route 103.113.4.0/22 -add china_ip_route 103.113.144.0/22 -add china_ip_route 103.113.220.0/22 -add china_ip_route 103.113.232.0/21 -add china_ip_route 103.114.4.0/22 -add china_ip_route 103.114.68.0/22 -add china_ip_route 103.114.100.0/22 -add china_ip_route 103.114.148.0/22 -add china_ip_route 103.114.156.0/23 -add china_ip_route 103.114.212.0/22 -add china_ip_route 103.114.236.0/22 -add china_ip_route 103.114.240.0/22 -add china_ip_route 103.115.52.0/22 -add china_ip_route 103.115.68.0/22 -add china_ip_route 103.115.92.0/22 -add china_ip_route 103.115.120.0/22 -add china_ip_route 103.115.148.0/22 -add china_ip_route 103.115.248.0/22 -add china_ip_route 103.116.76.0/22 -add china_ip_route 103.116.92.0/22 -add china_ip_route 103.116.120.0/22 -add china_ip_route 103.116.128.0/22 -add china_ip_route 103.116.184.0/22 -add china_ip_route 103.116.220.0/22 -add china_ip_route 103.116.224.0/21 -add china_ip_route 103.117.16.0/22 -add china_ip_route 103.117.88.0/22 -add china_ip_route 103.117.188.0/22 -add china_ip_route 103.117.220.0/22 -add china_ip_route 103.118.19.0/24 -add china_ip_route 103.118.52.0/22 -add china_ip_route 103.118.56.0/21 -add china_ip_route 103.118.64.0/21 -add china_ip_route 103.118.72.0/22 -add china_ip_route 103.118.88.0/22 -add china_ip_route 103.118.173.0/24 -add china_ip_route 103.119.115.0/24 -add china_ip_route 103.119.156.0/22 -add china_ip_route 103.119.180.0/22 -add china_ip_route 103.119.200.0/22 -add china_ip_route 103.119.224.0/22 -add china_ip_route 103.120.52.0/22 -add china_ip_route 103.120.72.0/22 -add china_ip_route 103.120.76.0/24 -add china_ip_route 103.120.88.0/22 -add china_ip_route 103.120.96.0/22 -add china_ip_route 103.120.140.0/22 -add china_ip_route 103.120.196.0/22 -add china_ip_route 103.120.224.0/22 -add china_ip_route 103.121.52.0/22 -add china_ip_route 103.121.160.0/21 -add china_ip_route 103.121.250.0/24 -add china_ip_route 103.121.252.0/22 -add china_ip_route 103.122.48.0/22 -add china_ip_route 103.122.178.0/23 -add china_ip_route 103.122.192.0/22 -add china_ip_route 103.122.240.0/23 -add china_ip_route 103.122.242.0/24 -add china_ip_route 103.123.4.0/22 -add china_ip_route 103.123.56.0/22 -add china_ip_route 103.123.88.0/21 -add china_ip_route 103.123.116.0/22 -add china_ip_route 103.123.176.0/22 -add china_ip_route 103.123.200.0/21 -add china_ip_route 103.123.208.0/21 -add china_ip_route 103.124.24.0/22 -add china_ip_route 103.124.48.0/22 -add china_ip_route 103.124.64.0/22 -add china_ip_route 103.124.212.0/22 -add china_ip_route 103.124.216.0/22 -add china_ip_route 103.125.20.0/22 -add china_ip_route 103.125.44.0/22 -add china_ip_route 103.125.132.0/22 -add china_ip_route 103.125.164.0/22 -add china_ip_route 103.125.196.0/22 -add china_ip_route 103.125.236.0/22 -add china_ip_route 103.126.0.0/22 -add china_ip_route 103.126.16.0/23 -add china_ip_route 103.126.44.0/22 -add china_ip_route 103.126.124.0/22 -add china_ip_route 103.126.128.0/22 -add china_ip_route 103.129.53.0/24 -add china_ip_route 103.129.54.0/23 -add china_ip_route 103.129.148.0/22 -add china_ip_route 103.130.132.0/22 -add china_ip_route 103.130.160.0/22 -add china_ip_route 103.130.228.0/22 -add china_ip_route 103.131.20.0/22 -add china_ip_route 103.131.36.0/22 -add china_ip_route 103.131.152.0/22 -add china_ip_route 103.131.168.0/22 -add china_ip_route 103.131.224.0/21 -add china_ip_route 103.131.240.0/22 -add china_ip_route 103.132.60.0/22 -add china_ip_route 103.132.64.0/20 -add china_ip_route 103.132.80.0/22 -add china_ip_route 103.132.104.0/21 -add china_ip_route 103.132.112.0/21 -add china_ip_route 103.132.120.0/22 -add china_ip_route 103.132.188.0/22 -add china_ip_route 103.132.208.0/21 -add china_ip_route 103.133.12.0/22 -add china_ip_route 103.133.40.0/22 -add china_ip_route 103.133.128.0/22 -add china_ip_route 103.133.232.0/22 -add china_ip_route 103.134.196.0/22 -add china_ip_route 103.135.80.0/22 -add china_ip_route 103.135.124.0/22 -add china_ip_route 103.135.148.0/22 -add china_ip_route 103.135.156.0/22 -add china_ip_route 103.135.160.0/21 -add china_ip_route 103.135.176.0/22 -add china_ip_route 103.135.184.0/22 -add china_ip_route 103.135.192.0/21 -add china_ip_route 103.135.236.0/22 -add china_ip_route 103.136.128.0/22 -add china_ip_route 103.136.232.0/22 -add china_ip_route 103.137.58.0/23 -add china_ip_route 103.137.60.0/24 -add china_ip_route 103.137.136.0/23 -add china_ip_route 103.137.149.0/24 -add china_ip_route 103.137.180.0/22 -add china_ip_route 103.137.236.0/22 -add china_ip_route 103.138.2.0/23 -add china_ip_route 103.138.135.0/24 -add china_ip_route 103.138.208.0/23 -add china_ip_route 103.138.220.0/23 -add china_ip_route 103.138.248.0/23 -add china_ip_route 103.139.22.0/23 -add china_ip_route 103.139.134.0/23 -add china_ip_route 103.139.172.0/23 -add china_ip_route 103.139.204.0/23 -add china_ip_route 103.139.212.0/23 -add china_ip_route 103.140.14.0/23 -add china_ip_route 103.140.46.0/23 -add china_ip_route 103.140.140.0/23 -add china_ip_route 103.140.144.0/23 -add china_ip_route 103.140.192.0/23 -add china_ip_route 103.141.10.0/23 -add china_ip_route 103.141.58.0/23 -add china_ip_route 103.141.128.0/23 -add china_ip_route 103.141.186.0/23 -add china_ip_route 103.141.242.0/23 -add china_ip_route 103.142.0.0/23 -add china_ip_route 103.142.28.0/23 -add china_ip_route 103.142.58.0/23 -add china_ip_route 103.142.82.0/23 -add china_ip_route 103.142.96.0/23 -add china_ip_route 103.142.122.0/23 -add china_ip_route 103.142.128.0/23 -add china_ip_route 103.142.154.0/23 -add china_ip_route 103.142.156.0/23 -add china_ip_route 103.142.180.0/23 -add china_ip_route 103.142.186.0/23 -add china_ip_route 103.142.230.0/24 -add china_ip_route 103.142.234.0/23 -add china_ip_route 103.142.238.0/23 -add china_ip_route 103.143.16.0/22 -add china_ip_route 103.143.31.0/24 -add china_ip_route 103.143.74.0/23 -add china_ip_route 103.143.120.0/24 -add china_ip_route 103.143.124.0/23 -add china_ip_route 103.143.132.0/22 -add china_ip_route 103.143.174.0/23 -add china_ip_route 103.143.228.0/23 -add china_ip_route 103.144.66.0/23 -add china_ip_route 103.144.70.0/23 -add china_ip_route 103.144.72.0/23 -add china_ip_route 103.144.136.0/23 -add china_ip_route 103.144.158.0/23 -add china_ip_route 103.145.42.0/23 -add china_ip_route 103.145.94.0/23 -add china_ip_route 103.145.98.0/23 -add china_ip_route 103.145.188.0/23 -add china_ip_route 103.146.6.0/23 -add china_ip_route 103.146.72.0/23 -add china_ip_route 103.146.126.0/23 -add china_ip_route 103.146.138.0/23 -add china_ip_route 103.146.236.0/23 -add china_ip_route 103.146.252.0/23 -add china_ip_route 103.147.124.0/23 -add china_ip_route 103.147.198.0/23 -add china_ip_route 103.147.206.0/23 -add china_ip_route 103.147.211.0/24 -add china_ip_route 103.148.174.0/23 -add china_ip_route 103.149.6.0/23 -add china_ip_route 103.149.17.0/24 -add china_ip_route 103.149.44.0/23 -add china_ip_route 103.149.190.0/23 -add china_ip_route 103.149.210.0/23 -add china_ip_route 103.149.214.0/23 -add china_ip_route 103.149.220.0/23 -add china_ip_route 103.149.242.0/23 -add china_ip_route 103.149.244.0/22 -add china_ip_route 103.150.24.0/23 -add china_ip_route 103.150.66.0/23 -add china_ip_route 103.150.72.0/23 -add china_ip_route 103.150.122.0/23 -add china_ip_route 103.150.126.0/23 -add china_ip_route 103.150.128.0/23 -add china_ip_route 103.150.131.0/24 -add china_ip_route 103.150.146.0/23 -add china_ip_route 103.150.164.0/23 -add china_ip_route 103.150.200.0/23 -add china_ip_route 103.150.216.0/23 -add china_ip_route 103.150.244.0/23 -add china_ip_route 103.151.142.0/23 -add china_ip_route 103.151.148.0/22 -add china_ip_route 103.151.158.0/23 -add china_ip_route 103.152.28.0/22 -add china_ip_route 103.152.76.0/23 -add china_ip_route 103.152.80.0/23 -add china_ip_route 103.152.113.0/24 -add china_ip_route 103.152.120.0/22 -add china_ip_route 103.152.152.0/23 -add china_ip_route 103.152.168.0/23 -add china_ip_route 103.152.186.0/23 -add china_ip_route 103.152.190.0/23 -add china_ip_route 103.152.192.0/23 -add china_ip_route 103.152.200.0/23 -add china_ip_route 103.152.208.0/23 -add china_ip_route 103.152.224.0/23 -add china_ip_route 103.152.247.0/24 -add china_ip_route 103.152.250.0/23 -add china_ip_route 103.153.4.0/23 -add china_ip_route 103.153.36.0/23 -add china_ip_route 103.153.99.0/24 -add china_ip_route 103.153.100.0/23 -add china_ip_route 103.153.114.0/23 -add china_ip_route 103.153.122.0/23 -add china_ip_route 103.153.128.0/23 -add china_ip_route 103.153.132.0/23 -add china_ip_route 103.153.138.0/23 -add china_ip_route 103.153.146.0/23 -add china_ip_route 103.153.160.0/23 -add china_ip_route 103.154.18.0/23 -add china_ip_route 103.154.30.0/23 -add china_ip_route 103.154.32.0/23 -add china_ip_route 103.154.40.0/23 -add china_ip_route 103.154.66.0/23 -add china_ip_route 103.154.162.0/23 -add china_ip_route 103.154.164.0/23 -add china_ip_route 103.154.168.0/23 -add china_ip_route 103.154.243.0/24 -add china_ip_route 103.155.14.0/23 -add china_ip_route 103.155.16.0/23 -add china_ip_route 103.155.34.0/23 -add china_ip_route 103.192.0.0/19 -add china_ip_route 103.192.48.0/21 -add china_ip_route 103.192.56.0/22 -add china_ip_route 103.192.84.0/22 -add china_ip_route 103.192.88.0/21 -add china_ip_route 103.192.96.0/20 -add china_ip_route 103.192.112.0/22 -add china_ip_route 103.192.128.0/20 -add china_ip_route 103.192.144.0/22 -add china_ip_route 103.192.164.0/22 -add china_ip_route 103.192.188.0/22 -add china_ip_route 103.192.208.0/21 -add china_ip_route 103.192.216.0/22 -add china_ip_route 103.192.252.0/22 -add china_ip_route 103.193.40.0/21 -add china_ip_route 103.193.120.0/22 -add china_ip_route 103.193.140.0/22 -add china_ip_route 103.193.160.0/22 -add china_ip_route 103.193.188.0/22 -add china_ip_route 103.193.192.0/22 -add china_ip_route 103.193.212.0/22 -add china_ip_route 103.193.216.0/21 -add china_ip_route 103.193.224.0/20 -add china_ip_route 103.194.16.0/22 -add china_ip_route 103.195.112.0/22 -add china_ip_route 103.195.152.0/22 -add china_ip_route 103.195.160.0/22 -add china_ip_route 103.196.64.0/22 -add china_ip_route 103.196.72.0/22 -add china_ip_route 103.196.88.0/21 -add china_ip_route 103.196.96.0/22 -add china_ip_route 103.196.168.0/22 -add china_ip_route 103.196.185.0/24 -add china_ip_route 103.196.186.0/23 -add china_ip_route 103.197.181.0/24 -add china_ip_route 103.197.183.0/24 -add china_ip_route 103.197.228.0/22 -add china_ip_route 103.197.253.0/24 -add china_ip_route 103.197.254.0/23 -add china_ip_route 103.198.20.0/22 -add china_ip_route 103.198.60.0/22 -add china_ip_route 103.198.64.0/22 -add china_ip_route 103.198.72.0/22 -add china_ip_route 103.198.124.0/22 -add china_ip_route 103.198.156.0/22 -add china_ip_route 103.198.180.0/22 -add china_ip_route 103.198.196.0/22 -add china_ip_route 103.198.200.0/22 -add china_ip_route 103.199.164.0/22 -add china_ip_route 103.199.196.0/22 -add china_ip_route 103.199.228.0/22 -add china_ip_route 103.199.252.0/22 -add china_ip_route 103.200.52.0/22 -add china_ip_route 103.200.64.0/21 -add china_ip_route 103.200.136.0/21 -add china_ip_route 103.200.144.0/20 -add china_ip_route 103.200.160.0/19 -add china_ip_route 103.200.192.0/22 -add china_ip_route 103.200.220.0/22 -add china_ip_route 103.200.224.0/19 -add china_ip_route 103.201.0.0/20 -add china_ip_route 103.201.16.0/21 -add china_ip_route 103.201.28.0/22 -add china_ip_route 103.201.32.0/19 -add china_ip_route 103.201.64.0/22 -add china_ip_route 103.201.76.0/22 -add china_ip_route 103.201.80.0/20 -add china_ip_route 103.201.96.0/20 -add china_ip_route 103.201.112.0/21 -add china_ip_route 103.201.120.0/22 -add china_ip_route 103.201.152.0/21 -add china_ip_route 103.201.160.0/19 -add china_ip_route 103.201.192.0/18 -add china_ip_route 103.202.0.0/19 -add china_ip_route 103.202.32.0/20 -add china_ip_route 103.202.56.0/21 -add china_ip_route 103.202.64.0/18 -add china_ip_route 103.202.128.0/20 -add china_ip_route 103.202.144.0/22 -add china_ip_route 103.202.152.0/21 -add china_ip_route 103.202.160.0/19 -add china_ip_route 103.202.192.0/20 -add china_ip_route 103.202.212.0/22 -add china_ip_route 103.202.228.0/22 -add china_ip_route 103.202.236.0/22 -add china_ip_route 103.202.240.0/20 -add china_ip_route 103.203.0.0/19 -add china_ip_route 103.203.32.0/22 -add china_ip_route 103.203.96.0/19 -add china_ip_route 103.203.128.0/22 -add china_ip_route 103.203.140.0/22 -add china_ip_route 103.203.164.0/22 -add china_ip_route 103.203.168.0/22 -add china_ip_route 103.203.192.0/22 -add china_ip_route 103.203.200.0/22 -add china_ip_route 103.203.212.0/22 -add china_ip_route 103.203.216.0/22 -add china_ip_route 103.204.24.0/22 -add china_ip_route 103.204.88.0/22 -add china_ip_route 103.204.112.0/22 -add china_ip_route 103.204.136.0/21 -add china_ip_route 103.204.144.0/21 -add china_ip_route 103.204.152.0/22 -add china_ip_route 103.204.196.0/22 -add china_ip_route 103.204.232.0/21 -add china_ip_route 103.205.4.0/22 -add china_ip_route 103.205.40.0/21 -add china_ip_route 103.205.52.0/22 -add china_ip_route 103.205.108.0/22 -add china_ip_route 103.205.116.0/22 -add china_ip_route 103.205.120.0/24 -add china_ip_route 103.205.136.0/22 -add china_ip_route 103.205.162.0/24 -add china_ip_route 103.205.188.0/22 -add china_ip_route 103.205.192.0/21 -add china_ip_route 103.205.200.0/22 -add china_ip_route 103.205.236.0/22 -add china_ip_route 103.205.248.0/21 -add china_ip_route 103.206.0.0/22 -add china_ip_route 103.206.44.0/22 -add china_ip_route 103.206.148.0/22 -add china_ip_route 103.207.104.0/22 -add china_ip_route 103.207.184.0/21 -add china_ip_route 103.207.192.0/20 -add china_ip_route 103.207.208.0/21 -add china_ip_route 103.207.220.0/22 -add china_ip_route 103.207.228.0/22 -add china_ip_route 103.207.232.0/22 -add china_ip_route 103.208.12.0/22 -add china_ip_route 103.208.16.0/22 -add china_ip_route 103.208.28.0/22 -add china_ip_route 103.208.48.0/22 -add china_ip_route 103.208.148.0/22 -add china_ip_route 103.209.112.0/22 -add china_ip_route 103.209.136.0/22 -add china_ip_route 103.209.200.0/22 -add china_ip_route 103.209.208.0/22 -add china_ip_route 103.209.216.0/22 -add china_ip_route 103.210.0.0/22 -add china_ip_route 103.210.96.0/22 -add china_ip_route 103.210.156.0/22 -add china_ip_route 103.210.160.0/19 -add china_ip_route 103.210.217.0/24 -add china_ip_route 103.210.218.0/23 -add china_ip_route 103.211.44.0/22 -add china_ip_route 103.211.96.0/23 -add china_ip_route 103.211.98.0/24 -add china_ip_route 103.211.100.0/22 -add china_ip_route 103.211.156.0/22 -add china_ip_route 103.211.165.0/24 -add china_ip_route 103.211.168.0/22 -add china_ip_route 103.211.220.0/22 -add china_ip_route 103.211.248.0/22 -add china_ip_route 103.212.0.0/20 -add china_ip_route 103.212.44.0/22 -add china_ip_route 103.212.48.0/22 -add china_ip_route 103.212.84.0/22 -add china_ip_route 103.212.100.0/22 -add china_ip_route 103.212.148.0/22 -add china_ip_route 103.212.164.0/22 -add china_ip_route 103.212.196.0/22 -add china_ip_route 103.212.200.0/22 -add china_ip_route 103.212.252.0/22 -add china_ip_route 103.213.40.0/21 -add china_ip_route 103.213.48.0/20 -add china_ip_route 103.213.64.0/19 -add china_ip_route 103.213.96.0/22 -add china_ip_route 103.213.132.0/22 -add china_ip_route 103.213.136.0/21 -add china_ip_route 103.213.144.0/20 -add china_ip_route 103.213.160.0/19 -add china_ip_route 103.213.252.0/22 -add china_ip_route 103.214.48.0/22 -add china_ip_route 103.214.84.0/22 -add china_ip_route 103.214.212.0/22 -add china_ip_route 103.214.240.0/21 -add china_ip_route 103.215.28.0/22 -add china_ip_route 103.215.32.0/21 -add china_ip_route 103.215.44.0/22 -add china_ip_route 103.215.100.0/23 -add china_ip_route 103.215.108.0/22 -add china_ip_route 103.215.116.0/22 -add china_ip_route 103.215.120.0/22 -add china_ip_route 103.215.140.0/22 -add china_ip_route 103.216.4.0/22 -add china_ip_route 103.216.8.0/21 -add china_ip_route 103.216.16.0/20 -add china_ip_route 103.216.32.0/20 -add china_ip_route 103.216.64.0/22 -add china_ip_route 103.216.108.0/22 -add china_ip_route 103.216.136.0/22 -add china_ip_route 103.216.152.0/22 -add china_ip_route 103.216.224.0/21 -add china_ip_route 103.216.240.0/20 -add china_ip_route 103.217.0.0/18 -add china_ip_route 103.217.168.0/22 -add china_ip_route 103.217.180.0/22 -add china_ip_route 103.217.184.0/21 -add china_ip_route 103.217.192.0/20 -add china_ip_route 103.218.8.0/21 -add china_ip_route 103.218.16.0/21 -add china_ip_route 103.218.28.0/22 -add china_ip_route 103.218.32.0/19 -add china_ip_route 103.218.64.0/19 -add china_ip_route 103.218.192.0/20 -add china_ip_route 103.218.208.0/21 -add china_ip_route 103.218.216.0/22 -add china_ip_route 103.219.24.0/21 -add china_ip_route 103.219.32.0/21 -add china_ip_route 103.219.64.0/22 -add china_ip_route 103.219.84.0/22 -add china_ip_route 103.219.88.0/21 -add china_ip_route 103.219.96.0/21 -add china_ip_route 103.219.176.0/22 -add china_ip_route 103.219.184.0/22 -add china_ip_route 103.220.48.0/20 -add china_ip_route 103.220.64.0/22 -add china_ip_route 103.220.92.0/22 -add china_ip_route 103.220.96.0/22 -add china_ip_route 103.220.104.0/21 -add china_ip_route 103.220.116.0/22 -add china_ip_route 103.220.120.0/21 -add china_ip_route 103.220.128.0/20 -add china_ip_route 103.220.144.0/21 -add china_ip_route 103.220.152.0/22 -add china_ip_route 103.220.160.0/19 -add china_ip_route 103.220.192.0/21 -add china_ip_route 103.220.200.0/22 -add china_ip_route 103.220.240.0/21 -add china_ip_route 103.220.252.0/22 -add china_ip_route 103.221.0.0/19 -add china_ip_route 103.221.32.0/22 -add china_ip_route 103.221.40.0/24 -add china_ip_route 103.221.44.0/22 -add china_ip_route 103.221.88.0/22 -add china_ip_route 103.221.92.0/23 -add china_ip_route 103.221.95.0/24 -add china_ip_route 103.221.96.0/19 -add china_ip_route 103.221.128.0/18 -add china_ip_route 103.221.192.0/20 -add china_ip_route 103.222.0.0/20 -add china_ip_route 103.222.16.0/22 -add china_ip_route 103.222.24.0/21 -add china_ip_route 103.222.33.0/24 -add china_ip_route 103.222.34.0/23 -add china_ip_route 103.222.36.0/22 -add china_ip_route 103.222.40.0/21 -add china_ip_route 103.222.48.0/20 -add china_ip_route 103.222.64.0/18 -add china_ip_route 103.222.128.0/18 -add china_ip_route 103.222.192.0/19 -add china_ip_route 103.222.224.0/21 -add china_ip_route 103.222.232.0/22 -add china_ip_route 103.222.240.0/21 -add china_ip_route 103.223.16.0/20 -add china_ip_route 103.223.32.0/19 -add china_ip_route 103.223.64.0/19 -add china_ip_route 103.223.96.0/20 -add china_ip_route 103.223.112.0/21 -add china_ip_route 103.223.124.0/22 -add china_ip_route 103.223.128.0/21 -add china_ip_route 103.223.140.0/22 -add china_ip_route 103.223.144.0/20 -add china_ip_route 103.223.160.0/20 -add china_ip_route 103.223.176.0/21 -add china_ip_route 103.223.188.0/22 -add china_ip_route 103.223.192.0/18 -add china_ip_route 103.224.0.0/22 -add china_ip_route 103.224.40.0/21 -add china_ip_route 103.224.60.0/22 -add china_ip_route 103.224.220.0/22 -add china_ip_route 103.224.224.0/21 -add china_ip_route 103.224.232.0/22 -add china_ip_route 103.225.32.0/22 -add china_ip_route 103.226.40.0/22 -add china_ip_route 103.226.56.0/21 -add china_ip_route 103.226.80.0/22 -add china_ip_route 103.226.116.0/22 -add china_ip_route 103.226.132.0/22 -add china_ip_route 103.226.156.0/22 -add china_ip_route 103.226.180.0/22 -add china_ip_route 103.226.196.0/22 -add china_ip_route 103.227.48.0/22 -add china_ip_route 103.227.72.0/21 -add china_ip_route 103.227.80.0/22 -add china_ip_route 103.227.100.0/22 -add china_ip_route 103.227.120.0/22 -add china_ip_route 103.227.132.0/22 -add china_ip_route 103.227.136.0/22 -add china_ip_route 103.227.196.0/22 -add china_ip_route 103.227.204.0/23 -add china_ip_route 103.227.206.0/24 -add china_ip_route 103.227.212.0/22 -add china_ip_route 103.227.228.0/22 -add china_ip_route 103.228.12.0/22 -add china_ip_route 103.228.88.0/22 -add china_ip_route 103.228.136.0/22 -add china_ip_route 103.228.160.0/22 -add china_ip_route 103.228.176.0/22 -add china_ip_route 103.228.204.0/22 -add china_ip_route 103.228.208.0/22 -add china_ip_route 103.228.228.0/22 -add china_ip_route 103.228.232.0/22 -add china_ip_route 103.229.20.0/22 -add china_ip_route 103.229.136.0/22 -add china_ip_route 103.229.148.0/22 -add china_ip_route 103.229.172.0/22 -add china_ip_route 103.229.212.0/22 -add china_ip_route 103.229.216.0/21 -add china_ip_route 103.229.228.0/22 -add china_ip_route 103.229.236.0/22 -add china_ip_route 103.229.240.0/22 -add china_ip_route 103.230.0.0/22 -add china_ip_route 103.230.28.0/22 -add china_ip_route 103.230.40.0/21 -add china_ip_route 103.230.96.0/22 -add china_ip_route 103.230.196.0/22 -add china_ip_route 103.230.200.0/21 -add china_ip_route 103.230.212.0/22 -add china_ip_route 103.230.236.0/22 -add china_ip_route 103.231.16.0/21 -add china_ip_route 103.231.64.0/21 -add china_ip_route 103.231.144.0/22 -add china_ip_route 103.231.180.0/22 -add china_ip_route 103.231.244.0/22 -add china_ip_route 103.232.4.0/22 -add china_ip_route 103.232.17.168/29 -add china_ip_route 103.232.144.0/22 -add china_ip_route 103.233.4.0/22 -add china_ip_route 103.233.44.0/22 -add china_ip_route 103.233.52.0/22 -add china_ip_route 103.233.104.0/22 -add china_ip_route 103.233.128.0/22 -add china_ip_route 103.233.136.0/22 -add china_ip_route 103.233.228.0/22 -add china_ip_route 103.234.0.0/22 -add china_ip_route 103.234.20.0/22 -add china_ip_route 103.234.56.0/22 -add china_ip_route 103.234.124.0/22 -add china_ip_route 103.234.128.0/22 -add china_ip_route 103.234.172.0/22 -add china_ip_route 103.234.180.0/22 -add china_ip_route 103.235.56.0/21 -add china_ip_route 103.235.80.0/22 -add china_ip_route 103.235.85.0/24 -add china_ip_route 103.235.87.0/24 -add china_ip_route 103.235.128.0/20 -add china_ip_route 103.235.144.0/21 -add china_ip_route 103.235.184.0/22 -add china_ip_route 103.235.192.0/22 -add china_ip_route 103.235.200.0/22 -add china_ip_route 103.235.220.0/22 -add china_ip_route 103.235.224.0/19 -add china_ip_route 103.236.0.0/18 -add china_ip_route 103.236.64.0/19 -add china_ip_route 103.236.96.0/22 -add china_ip_route 103.236.120.0/22 -add china_ip_route 103.236.184.0/22 -add china_ip_route 103.236.240.0/20 -add china_ip_route 103.237.0.0/20 -add china_ip_route 103.237.24.0/21 -add china_ip_route 103.237.68.0/22 -add china_ip_route 103.237.88.0/22 -add china_ip_route 103.237.152.0/22 -add china_ip_route 103.237.176.0/20 -add china_ip_route 103.237.192.0/18 -add china_ip_route 103.238.0.0/21 -add china_ip_route 103.238.18.0/23 -add china_ip_route 103.238.20.0/22 -add china_ip_route 103.238.24.0/21 -add china_ip_route 103.238.32.0/20 -add china_ip_route 103.238.48.0/21 -add china_ip_route 103.238.56.0/22 -add china_ip_route 103.238.88.0/21 -add china_ip_route 103.238.96.0/22 -add china_ip_route 103.238.132.0/22 -add china_ip_route 103.238.140.0/22 -add china_ip_route 103.238.144.0/22 -add china_ip_route 103.238.160.0/22 -add china_ip_route 103.238.165.0/24 -add china_ip_route 103.238.166.0/23 -add china_ip_route 103.238.168.0/21 -add china_ip_route 103.238.176.0/20 -add china_ip_route 103.238.196.0/22 -add china_ip_route 103.238.204.0/22 -add china_ip_route 103.238.252.0/22 -add china_ip_route 103.239.0.0/22 -add china_ip_route 103.239.44.0/22 -add china_ip_route 103.239.68.0/22 -add china_ip_route 103.239.152.0/21 -add china_ip_route 103.239.180.0/22 -add china_ip_route 103.239.184.0/22 -add china_ip_route 103.239.192.0/21 -add china_ip_route 103.239.204.0/22 -add china_ip_route 103.239.208.0/22 -add china_ip_route 103.239.224.0/22 -add china_ip_route 103.239.244.0/22 -add china_ip_route 103.240.16.0/22 -add china_ip_route 103.240.36.0/22 -add china_ip_route 103.240.72.0/22 -add china_ip_route 103.240.84.0/22 -add china_ip_route 103.240.124.0/22 -add china_ip_route 103.240.172.0/22 -add china_ip_route 103.240.188.0/22 -add china_ip_route 103.240.244.0/22 -add china_ip_route 103.241.12.0/22 -add china_ip_route 103.241.92.0/22 -add china_ip_route 103.241.96.0/22 -add china_ip_route 103.241.160.0/22 -add china_ip_route 103.241.184.0/21 -add china_ip_route 103.241.220.0/22 -add china_ip_route 103.242.64.0/23 -add china_ip_route 103.242.128.0/23 -add china_ip_route 103.242.160.0/22 -add china_ip_route 103.242.168.0/21 -add china_ip_route 103.242.176.0/22 -add china_ip_route 103.242.200.0/22 -add china_ip_route 103.242.212.0/22 -add china_ip_route 103.242.220.0/22 -add china_ip_route 103.242.240.0/22 -add china_ip_route 103.243.136.0/22 -add china_ip_route 103.243.252.0/22 -add china_ip_route 103.244.16.0/22 -add china_ip_route 103.244.58.0/23 -add china_ip_route 103.244.60.0/22 -add china_ip_route 103.244.64.0/20 -add china_ip_route 103.244.80.0/21 -add china_ip_route 103.244.116.0/22 -add china_ip_route 103.244.164.0/22 -add china_ip_route 103.244.232.0/22 -add china_ip_route 103.244.252.0/22 -add china_ip_route 103.245.23.0/24 -add china_ip_route 103.245.52.0/22 -add china_ip_route 103.245.60.0/22 -add china_ip_route 103.245.80.0/22 -add china_ip_route 103.245.124.0/22 -add china_ip_route 103.245.128.0/22 -add china_ip_route 103.246.8.0/21 -add china_ip_route 103.246.120.0/21 -add china_ip_route 103.246.132.0/22 -add china_ip_route 103.246.152.0/22 -add china_ip_route 103.247.168.0/21 -add china_ip_route 103.247.176.0/22 -add china_ip_route 103.247.200.0/22 -add china_ip_route 103.247.212.0/22 -add china_ip_route 103.248.64.0/23 -add china_ip_route 103.248.100.0/22 -add china_ip_route 103.248.124.0/22 -add china_ip_route 103.248.152.0/22 -add china_ip_route 103.248.168.0/22 -add china_ip_route 103.248.192.0/22 -add china_ip_route 103.248.212.0/22 -add china_ip_route 103.248.224.0/21 -add china_ip_route 103.249.8.0/21 -add china_ip_route 103.249.52.0/22 -add china_ip_route 103.249.128.0/22 -add china_ip_route 103.249.136.0/22 -add china_ip_route 103.249.144.0/22 -add china_ip_route 103.249.164.0/22 -add china_ip_route 103.249.168.0/21 -add china_ip_route 103.249.176.0/22 -add china_ip_route 103.249.188.0/22 -add china_ip_route 103.249.192.0/22 -add china_ip_route 103.249.244.0/22 -add china_ip_route 103.249.252.0/22 -add china_ip_route 103.250.32.0/22 -add china_ip_route 103.250.104.0/22 -add china_ip_route 103.250.124.0/22 -add china_ip_route 103.250.180.0/22 -add china_ip_route 103.250.192.0/22 -add china_ip_route 103.250.216.0/22 -add china_ip_route 103.250.224.0/22 -add china_ip_route 103.250.236.0/22 -add china_ip_route 103.250.248.0/21 -add china_ip_route 103.251.32.0/22 -add china_ip_route 103.251.84.0/22 -add china_ip_route 103.251.96.0/22 -add china_ip_route 103.251.124.0/22 -add china_ip_route 103.251.160.0/22 -add china_ip_route 103.251.192.0/22 -add china_ip_route 103.251.204.0/22 -add china_ip_route 103.251.240.0/22 -add china_ip_route 103.252.28.0/22 -add china_ip_route 103.252.36.0/22 -add china_ip_route 103.252.64.0/22 -add china_ip_route 103.252.96.0/22 -add china_ip_route 103.252.104.0/22 -add china_ip_route 103.252.172.0/22 -add china_ip_route 103.252.204.0/22 -add china_ip_route 103.252.208.0/22 -add china_ip_route 103.252.232.0/22 -add china_ip_route 103.252.248.0/22 -add china_ip_route 103.253.4.0/22 -add china_ip_route 103.253.60.0/22 -add china_ip_route 103.253.204.0/22 -add china_ip_route 103.253.220.0/22 -add china_ip_route 103.253.224.0/22 -add china_ip_route 103.253.232.0/22 -add china_ip_route 103.254.8.0/22 -add china_ip_route 103.254.20.0/22 -add china_ip_route 103.254.64.0/21 -add china_ip_route 103.254.76.0/22 -add china_ip_route 103.254.112.0/22 -add china_ip_route 103.254.176.0/22 -add china_ip_route 103.254.188.0/22 -add china_ip_route 103.255.68.0/22 -add china_ip_route 103.255.88.0/21 -add china_ip_route 103.255.136.0/21 -add china_ip_route 103.255.184.0/22 -add china_ip_route 103.255.200.0/22 -add china_ip_route 103.255.208.0/22 -add china_ip_route 103.255.228.0/22 -add china_ip_route 106.0.0.0/24 -add china_ip_route 106.0.2.0/23 -add china_ip_route 106.0.4.0/22 -add china_ip_route 106.0.8.0/21 -add china_ip_route 106.0.16.0/20 -add china_ip_route 106.0.44.0/22 -add china_ip_route 106.0.64.0/18 -add china_ip_route 106.2.0.0/23 -add china_ip_route 106.2.3.0/24 -add china_ip_route 106.2.4.0/22 -add china_ip_route 106.2.8.0/21 -add china_ip_route 106.2.16.0/20 -add china_ip_route 106.2.32.0/19 -add china_ip_route 106.2.64.0/18 -add china_ip_route 106.2.128.0/20 -add china_ip_route 106.2.144.0/21 -add china_ip_route 106.2.152.0/22 -add china_ip_route 106.2.156.0/23 -add china_ip_route 106.2.160.0/19 -add china_ip_route 106.2.192.0/18 -add china_ip_route 106.3.16.0/20 -add china_ip_route 106.3.32.0/19 -add china_ip_route 106.3.64.0/20 -add china_ip_route 106.3.80.0/22 -add china_ip_route 106.3.88.0/21 -add china_ip_route 106.3.96.0/19 -add china_ip_route 106.3.128.0/19 -add china_ip_route 106.3.164.0/22 -add china_ip_route 106.3.168.0/21 -add china_ip_route 106.3.176.0/20 -add china_ip_route 106.3.192.0/18 -add china_ip_route 106.4.0.0/14 -add china_ip_route 106.8.0.0/15 -add china_ip_route 106.11.0.0/16 -add china_ip_route 106.12.0.0/14 -add china_ip_route 106.16.0.0/12 -add china_ip_route 106.32.0.0/12 -add china_ip_route 106.48.0.0/21 -add china_ip_route 106.48.8.0/22 -add china_ip_route 106.48.16.0/20 -add china_ip_route 106.48.32.0/20 -add china_ip_route 106.48.57.0/24 -add china_ip_route 106.48.60.0/24 -add china_ip_route 106.48.63.0/24 -add china_ip_route 106.48.64.0/18 -add china_ip_route 106.48.128.0/17 -add china_ip_route 106.49.1.0/24 -add china_ip_route 106.49.2.0/23 -add china_ip_route 106.49.4.0/22 -add china_ip_route 106.49.8.0/21 -add china_ip_route 106.49.16.0/20 -add china_ip_route 106.49.32.0/19 -add china_ip_route 106.49.64.0/19 -add china_ip_route 106.49.96.0/24 -add china_ip_route 106.49.98.0/23 -add china_ip_route 106.49.100.0/22 -add china_ip_route 106.49.104.0/21 -add china_ip_route 106.49.112.0/20 -add china_ip_route 106.49.128.0/17 -add china_ip_route 106.50.0.0/16 -add china_ip_route 106.52.0.0/14 -add china_ip_route 106.56.0.0/13 -add china_ip_route 106.74.0.0/16 -add china_ip_route 106.75.0.0/17 -add china_ip_route 106.75.128.0/18 -add china_ip_route 106.75.201.0/24 -add china_ip_route 106.75.204.0/22 -add china_ip_route 106.75.208.0/20 -add china_ip_route 106.75.224.0/19 -add china_ip_route 106.80.0.0/12 -add china_ip_route 106.108.0.0/14 -add china_ip_route 106.112.0.0/12 -add china_ip_route 106.224.0.0/12 -add china_ip_route 109.71.4.0/24 -add china_ip_route 109.244.0.0/16 -add china_ip_route 110.6.0.0/15 -add china_ip_route 110.16.0.0/14 -add china_ip_route 110.34.40.0/21 -add china_ip_route 110.40.0.0/15 -add china_ip_route 110.42.0.0/16 -add china_ip_route 110.43.0.0/18 -add china_ip_route 110.43.64.0/21 -add china_ip_route 110.43.72.0/22 -add china_ip_route 110.43.76.0/23 -add china_ip_route 110.43.80.0/20 -add china_ip_route 110.43.96.0/19 -add china_ip_route 110.43.128.0/17 -add china_ip_route 110.44.12.0/22 -add china_ip_route 110.44.144.0/20 -add china_ip_route 110.48.0.0/16 -add china_ip_route 110.51.0.0/16 -add china_ip_route 110.52.0.0/15 -add china_ip_route 110.56.0.0/13 -add china_ip_route 110.64.0.0/15 -add china_ip_route 110.72.0.0/15 -add china_ip_route 110.75.0.0/16 -add china_ip_route 110.76.0.0/20 -add china_ip_route 110.76.16.0/22 -add china_ip_route 110.76.20.0/24 -add china_ip_route 110.76.22.0/24 -add china_ip_route 110.76.24.0/21 -add china_ip_route 110.76.32.0/19 -add china_ip_route 110.76.132.0/22 -add china_ip_route 110.76.156.0/22 -add china_ip_route 110.76.184.0/22 -add china_ip_route 110.76.192.0/18 -add china_ip_route 110.77.0.0/17 -add china_ip_route 110.80.0.0/13 -add china_ip_route 110.88.0.0/14 -add china_ip_route 110.92.68.0/22 -add china_ip_route 110.93.32.0/19 -add china_ip_route 110.94.0.0/15 -add china_ip_route 110.96.0.0/11 -add china_ip_route 110.152.0.0/14 -add china_ip_route 110.156.0.0/15 -add china_ip_route 110.166.0.0/15 -add china_ip_route 110.172.192.0/18 -add china_ip_route 110.173.0.0/19 -add china_ip_route 110.173.32.0/20 -add china_ip_route 110.173.64.0/19 -add china_ip_route 110.173.192.0/19 -add china_ip_route 110.176.0.0/12 -add china_ip_route 110.192.0.0/11 -add china_ip_route 110.228.0.0/14 -add china_ip_route 110.232.32.0/19 -add china_ip_route 110.236.0.0/15 -add china_ip_route 110.240.0.0/12 -add china_ip_route 111.0.0.0/10 -add china_ip_route 111.66.0.0/16 -add china_ip_route 111.67.192.0/20 -add china_ip_route 111.68.64.0/19 -add china_ip_route 111.72.0.0/13 -add china_ip_route 111.85.0.0/16 -add china_ip_route 111.91.192.0/19 -add china_ip_route 111.92.248.0/21 -add china_ip_route 111.112.0.0/14 -add china_ip_route 111.116.0.0/15 -add china_ip_route 111.118.200.0/21 -add china_ip_route 111.119.64.0/18 -add china_ip_route 111.119.128.0/19 -add china_ip_route 111.120.0.0/14 -add china_ip_route 111.124.0.0/16 -add china_ip_route 111.126.0.0/15 -add china_ip_route 111.128.0.0/11 -add china_ip_route 111.160.0.0/13 -add china_ip_route 111.170.0.0/16 -add china_ip_route 111.172.0.0/14 -add china_ip_route 111.176.0.0/13 -add china_ip_route 111.186.0.0/15 -add china_ip_route 111.192.0.0/12 -add china_ip_route 111.208.0.0/13 -add china_ip_route 111.221.28.0/24 -add china_ip_route 111.221.128.0/17 -add china_ip_route 111.222.0.0/16 -add china_ip_route 111.223.4.0/22 -add china_ip_route 111.223.8.0/21 -add china_ip_route 111.223.16.0/22 -add china_ip_route 111.223.240.0/22 -add china_ip_route 111.223.249.0/24 -add china_ip_route 111.223.250.0/23 -add china_ip_route 111.224.0.0/13 -add china_ip_route 111.235.96.0/19 -add china_ip_route 111.235.156.0/22 -add china_ip_route 111.235.160.0/21 -add china_ip_route 111.235.170.0/23 -add china_ip_route 111.235.172.0/22 -add china_ip_route 111.235.176.0/20 -add china_ip_route 112.0.0.0/10 -add china_ip_route 112.64.0.0/14 -add china_ip_route 112.73.64.0/18 -add china_ip_route 112.74.0.0/16 -add china_ip_route 112.80.0.0/12 -add china_ip_route 112.96.0.0/13 -add china_ip_route 112.109.128.0/17 -add china_ip_route 112.111.0.0/16 -add china_ip_route 112.112.0.0/14 -add china_ip_route 112.116.0.0/15 -add china_ip_route 112.122.0.0/15 -add china_ip_route 112.124.0.0/14 -add china_ip_route 112.128.0.0/14 -add china_ip_route 112.132.0.0/16 -add china_ip_route 112.137.48.0/21 -add china_ip_route 112.192.0.0/14 -add china_ip_route 112.224.0.0/11 -add china_ip_route 113.0.0.0/13 -add china_ip_route 113.8.0.0/15 -add china_ip_route 113.11.192.0/19 -add china_ip_route 113.12.0.0/14 -add china_ip_route 113.16.0.0/15 -add china_ip_route 113.18.0.0/16 -add china_ip_route 113.21.232.0/21 -add china_ip_route 113.24.0.0/14 -add china_ip_route 113.31.0.0/16 -add china_ip_route 113.44.0.0/14 -add china_ip_route 113.48.0.0/14 -add china_ip_route 113.52.160.0/19 -add china_ip_route 113.52.228.0/22 -add china_ip_route 113.54.0.0/15 -add china_ip_route 113.56.0.0/15 -add china_ip_route 113.58.0.0/16 -add china_ip_route 113.59.0.0/17 -add china_ip_route 113.59.224.0/22 -add china_ip_route 113.62.0.0/15 -add china_ip_route 113.64.0.0/10 -add china_ip_route 113.128.0.0/15 -add china_ip_route 113.130.96.0/20 -add china_ip_route 113.130.112.0/21 -add china_ip_route 113.132.0.0/14 -add china_ip_route 113.136.0.0/13 -add china_ip_route 113.194.0.0/15 -add china_ip_route 113.197.100.0/23 -add china_ip_route 113.197.102.0/24 -add china_ip_route 113.197.104.0/22 -add china_ip_route 113.200.0.0/15 -add china_ip_route 113.202.0.0/16 -add china_ip_route 113.204.0.0/14 -add china_ip_route 113.208.96.0/19 -add china_ip_route 113.208.128.0/17 -add china_ip_route 113.209.0.0/16 -add china_ip_route 113.212.0.0/18 -add china_ip_route 113.212.100.0/22 -add china_ip_route 113.212.184.0/21 -add china_ip_route 113.213.0.0/17 -add china_ip_route 113.214.0.0/15 -add china_ip_route 113.218.0.0/15 -add china_ip_route 113.220.0.0/14 -add china_ip_route 113.224.0.0/12 -add china_ip_route 113.240.0.0/13 -add china_ip_route 113.248.0.0/14 -add china_ip_route 114.28.0.0/17 -add china_ip_route 114.28.128.0/18 -add china_ip_route 114.28.192.0/19 -add china_ip_route 114.28.232.0/22 -add china_ip_route 114.28.240.0/20 -add china_ip_route 114.31.64.0/21 -add china_ip_route 114.54.0.0/15 -add china_ip_route 114.60.0.0/14 -add china_ip_route 114.64.0.0/14 -add china_ip_route 114.68.0.0/16 -add china_ip_route 114.79.64.0/18 -add china_ip_route 114.80.0.0/12 -add china_ip_route 114.96.0.0/13 -add china_ip_route 114.104.0.0/14 -add china_ip_route 114.110.0.0/20 -add china_ip_route 114.110.64.0/18 -add china_ip_route 114.111.0.0/19 -add china_ip_route 114.111.160.0/19 -add china_ip_route 114.112.4.0/22 -add china_ip_route 114.112.8.0/22 -add china_ip_route 114.112.24.0/21 -add china_ip_route 114.112.32.0/19 -add china_ip_route 114.112.64.0/19 -add china_ip_route 114.112.96.0/20 -add china_ip_route 114.112.116.0/22 -add china_ip_route 114.112.120.0/21 -add china_ip_route 114.112.136.0/21 -add china_ip_route 114.112.144.0/20 -add china_ip_route 114.112.160.0/19 -add china_ip_route 114.112.192.0/19 -add china_ip_route 114.113.0.0/17 -add china_ip_route 114.113.128.0/21 -add china_ip_route 114.113.140.0/22 -add china_ip_route 114.113.144.0/20 -add china_ip_route 114.113.160.0/19 -add china_ip_route 114.113.196.0/22 -add china_ip_route 114.113.200.0/21 -add china_ip_route 114.113.208.0/20 -add china_ip_route 114.113.224.0/20 -add china_ip_route 114.114.0.0/15 -add china_ip_route 114.116.0.0/15 -add china_ip_route 114.118.0.0/16 -add china_ip_route 114.119.0.0/17 -add china_ip_route 114.119.192.0/18 -add china_ip_route 114.132.0.0/16 -add china_ip_route 114.135.0.0/16 -add china_ip_route 114.138.0.0/15 -add china_ip_route 114.141.64.0/21 -add china_ip_route 114.141.80.0/21 -add china_ip_route 114.141.128.0/18 -add china_ip_route 114.196.0.0/15 -add china_ip_route 114.198.248.0/21 -add china_ip_route 114.208.0.0/12 -add china_ip_route 114.224.0.0/11 -add china_ip_route 115.24.0.0/14 -add china_ip_route 115.28.0.0/15 -add china_ip_route 115.31.64.0/20 -add china_ip_route 115.32.0.0/14 -add china_ip_route 115.42.56.0/22 -add china_ip_route 115.44.0.0/14 -add china_ip_route 115.48.0.0/12 -add china_ip_route 115.69.64.0/20 -add china_ip_route 115.84.0.0/18 -add china_ip_route 115.84.192.0/19 -add china_ip_route 115.85.192.0/18 -add china_ip_route 115.100.0.0/14 -add china_ip_route 115.104.0.0/14 -add china_ip_route 115.120.0.0/14 -add china_ip_route 115.124.16.0/20 -add china_ip_route 115.148.0.0/14 -add china_ip_route 115.152.0.0/13 -add china_ip_route 115.166.64.0/19 -add china_ip_route 115.168.0.0/16 -add china_ip_route 115.169.0.0/23 -add china_ip_route 115.169.3.0/24 -add china_ip_route 115.169.6.0/24 -add china_ip_route 115.169.9.0/24 -add china_ip_route 115.169.14.0/23 -add china_ip_route 115.169.16.0/20 -add china_ip_route 115.169.39.0/24 -add china_ip_route 115.169.42.0/23 -add china_ip_route 115.169.44.0/22 -add china_ip_route 115.169.48.0/20 -add china_ip_route 115.169.64.0/18 -add china_ip_route 115.169.128.0/17 -add china_ip_route 115.170.0.0/15 -add china_ip_route 115.172.0.0/14 -add china_ip_route 115.180.0.0/14 -add china_ip_route 115.187.0.0/20 -add china_ip_route 115.190.0.0/15 -add china_ip_route 115.192.0.0/11 -add china_ip_route 115.224.0.0/12 -add china_ip_route 116.0.8.0/21 -add china_ip_route 116.0.24.0/21 -add china_ip_route 116.1.0.0/16 -add china_ip_route 116.2.0.0/15 -add china_ip_route 116.4.0.0/14 -add china_ip_route 116.8.0.0/14 -add china_ip_route 116.13.0.0/16 -add china_ip_route 116.16.0.0/12 -add china_ip_route 116.50.0.0/20 -add china_ip_route 116.52.0.0/14 -add china_ip_route 116.56.0.0/15 -add china_ip_route 116.58.128.0/20 -add china_ip_route 116.58.208.0/20 -add china_ip_route 116.60.0.0/14 -add china_ip_route 116.66.0.0/18 -add china_ip_route 116.66.64.0/19 -add china_ip_route 116.66.96.0/20 -add china_ip_route 116.66.120.0/22 -add china_ip_route 116.68.136.0/21 -add china_ip_route 116.68.176.0/21 -add china_ip_route 116.69.0.0/16 -add china_ip_route 116.70.0.0/17 -add china_ip_route 116.76.0.0/14 -add china_ip_route 116.85.0.0/17 -add china_ip_route 116.85.128.0/18 -add china_ip_route 116.85.192.0/19 -add china_ip_route 116.85.224.0/20 -add china_ip_route 116.85.240.0/21 -add china_ip_route 116.85.248.0/23 -add china_ip_route 116.85.250.0/24 -add china_ip_route 116.85.252.0/22 -add china_ip_route 116.89.144.0/20 -add china_ip_route 116.90.80.0/20 -add china_ip_route 116.90.184.0/21 -add china_ip_route 116.95.0.0/16 -add china_ip_route 116.112.0.0/14 -add china_ip_route 116.116.0.0/15 -add china_ip_route 116.128.0.0/10 -add china_ip_route 116.192.0.0/16 -add china_ip_route 116.193.16.0/20 -add china_ip_route 116.193.32.0/19 -add china_ip_route 116.193.176.0/21 -add china_ip_route 116.194.0.0/15 -add china_ip_route 116.196.0.0/21 -add china_ip_route 116.196.8.0/22 -add china_ip_route 116.196.12.0/23 -add china_ip_route 116.196.16.0/20 -add china_ip_route 116.196.32.0/19 -add china_ip_route 116.196.64.0/18 -add china_ip_route 116.196.128.0/18 -add china_ip_route 116.196.192.0/21 -add china_ip_route 116.196.200.0/23 -add china_ip_route 116.196.203.0/24 -add china_ip_route 116.196.204.0/22 -add china_ip_route 116.196.208.0/20 -add china_ip_route 116.196.224.0/19 -add china_ip_route 116.197.160.0/21 -add china_ip_route 116.197.180.0/23 -add china_ip_route 116.198.0.0/16 -add china_ip_route 116.199.0.0/17 -add china_ip_route 116.199.128.0/19 -add china_ip_route 116.204.0.0/17 -add china_ip_route 116.204.232.0/22 -add china_ip_route 116.205.0.0/16 -add china_ip_route 116.207.0.0/16 -add china_ip_route 116.208.0.0/14 -add china_ip_route 116.212.160.0/20 -add china_ip_route 116.213.64.0/18 -add china_ip_route 116.213.128.0/17 -add china_ip_route 116.214.32.0/19 -add china_ip_route 116.214.64.0/20 -add china_ip_route 116.214.128.0/17 -add china_ip_route 116.215.0.0/16 -add china_ip_route 116.216.0.0/14 -add china_ip_route 116.224.0.0/12 -add china_ip_route 116.242.0.0/15 -add china_ip_route 116.244.0.0/14 -add china_ip_route 116.248.0.0/15 -add china_ip_route 116.252.0.0/15 -add china_ip_route 116.254.104.0/21 -add china_ip_route 116.254.129.0/24 -add china_ip_route 116.254.130.0/23 -add china_ip_route 116.254.132.0/22 -add china_ip_route 116.254.136.0/21 -add china_ip_route 116.254.144.0/20 -add china_ip_route 116.254.160.0/19 -add china_ip_route 116.254.192.0/18 -add china_ip_route 116.255.128.0/17 -add china_ip_route 117.8.0.0/13 -add china_ip_route 117.21.0.0/16 -add china_ip_route 117.22.0.0/15 -add china_ip_route 117.24.0.0/13 -add china_ip_route 117.32.0.0/13 -add china_ip_route 117.40.0.0/14 -add china_ip_route 117.44.0.0/15 -add china_ip_route 117.48.0.0/15 -add china_ip_route 117.50.0.0/16 -add china_ip_route 117.51.128.0/23 -add china_ip_route 117.51.131.0/24 -add china_ip_route 117.51.132.0/22 -add china_ip_route 117.51.136.0/21 -add china_ip_route 117.51.144.0/20 -add china_ip_route 117.51.160.0/19 -add china_ip_route 117.51.192.0/18 -add china_ip_route 117.53.48.0/20 -add china_ip_route 117.53.176.0/20 -add china_ip_route 117.57.0.0/16 -add china_ip_route 117.58.0.0/18 -add china_ip_route 117.59.0.0/16 -add china_ip_route 117.60.0.0/14 -add china_ip_route 117.64.0.0/13 -add china_ip_route 117.72.0.0/15 -add china_ip_route 117.74.64.0/19 -add china_ip_route 117.74.128.0/17 -add china_ip_route 117.75.0.0/16 -add china_ip_route 117.76.0.0/14 -add china_ip_route 117.80.0.0/12 -add china_ip_route 117.100.0.0/15 -add china_ip_route 117.103.16.0/20 -add china_ip_route 117.103.40.0/21 -add china_ip_route 117.103.72.0/21 -add china_ip_route 117.103.128.0/20 -add china_ip_route 117.104.168.0/21 -add china_ip_route 117.106.0.0/15 -add china_ip_route 117.112.0.0/13 -add china_ip_route 117.120.64.0/18 -add china_ip_route 117.120.128.0/17 -add china_ip_route 117.121.0.0/19 -add china_ip_route 117.121.32.0/21 -add china_ip_route 117.121.40.0/22 -add china_ip_route 117.121.44.0/23 -add china_ip_route 117.121.46.0/24 -add china_ip_route 117.121.48.0/20 -add china_ip_route 117.121.64.0/18 -add china_ip_route 117.121.128.0/20 -add china_ip_route 117.121.148.0/22 -add china_ip_route 117.121.152.0/21 -add china_ip_route 117.121.160.0/19 -add china_ip_route 117.121.192.0/21 -add china_ip_route 117.122.128.0/17 -add china_ip_route 117.124.0.0/14 -add china_ip_route 117.128.0.0/10 -add china_ip_route 118.24.0.0/15 -add china_ip_route 118.26.0.0/19 -add china_ip_route 118.26.40.0/21 -add china_ip_route 118.26.48.0/20 -add china_ip_route 118.26.64.0/19 -add china_ip_route 118.26.112.0/21 -add china_ip_route 118.26.121.0/24 -add china_ip_route 118.26.122.0/23 -add china_ip_route 118.26.124.0/23 -add china_ip_route 118.26.128.0/17 -add china_ip_route 118.28.0.0/15 -add china_ip_route 118.30.0.0/20 -add china_ip_route 118.30.16.0/21 -add china_ip_route 118.30.24.0/22 -add china_ip_route 118.30.32.0/19 -add china_ip_route 118.30.64.0/18 -add china_ip_route 118.30.128.0/17 -add china_ip_route 118.31.0.0/16 -add china_ip_route 118.64.0.0/15 -add china_ip_route 118.66.0.0/16 -add china_ip_route 118.67.112.0/20 -add china_ip_route 118.72.0.0/13 -add china_ip_route 118.80.0.0/15 -add china_ip_route 118.84.0.0/15 -add china_ip_route 118.88.32.0/19 -add china_ip_route 118.88.64.0/18 -add china_ip_route 118.88.128.0/17 -add china_ip_route 118.89.0.0/16 -add china_ip_route 118.102.16.0/20 -add china_ip_route 118.102.32.0/21 -add china_ip_route 118.103.164.0/22 -add china_ip_route 118.103.168.0/21 -add china_ip_route 118.103.176.0/22 -add china_ip_route 118.103.245.0/24 -add china_ip_route 118.103.246.0/23 -add china_ip_route 118.112.0.0/13 -add china_ip_route 118.120.0.0/14 -add china_ip_route 118.124.0.0/15 -add china_ip_route 118.126.1.0/24 -add china_ip_route 118.126.2.0/23 -add china_ip_route 118.126.4.0/22 -add china_ip_route 118.126.8.0/21 -add china_ip_route 118.126.16.0/23 -add china_ip_route 118.126.18.0/24 -add china_ip_route 118.126.32.0/19 -add china_ip_route 118.126.64.0/18 -add china_ip_route 118.126.128.0/17 -add china_ip_route 118.127.128.0/19 -add china_ip_route 118.132.0.0/14 -add china_ip_route 118.144.0.0/14 -add china_ip_route 118.178.0.0/16 -add china_ip_route 118.180.0.0/14 -add china_ip_route 118.184.5.0/24 -add china_ip_route 118.184.109.0/24 -add china_ip_route 118.184.110.0/23 -add china_ip_route 118.184.116.0/22 -add china_ip_route 118.184.120.0/23 -add china_ip_route 118.184.122.0/24 -add china_ip_route 118.184.128.0/18 -add china_ip_route 118.184.192.0/19 -add china_ip_route 118.184.240.0/20 -add china_ip_route 118.186.0.0/15 -add china_ip_route 118.188.0.0/16 -add china_ip_route 118.190.0.0/16 -add china_ip_route 118.191.0.0/20 -add china_ip_route 118.191.32.0/19 -add china_ip_route 118.191.64.0/18 -add china_ip_route 118.191.144.0/21 -add china_ip_route 118.191.153.0/24 -add china_ip_route 118.191.154.0/23 -add china_ip_route 118.191.156.0/22 -add china_ip_route 118.191.160.0/19 -add china_ip_route 118.191.192.0/20 -add china_ip_route 118.191.209.0/24 -add china_ip_route 118.191.210.0/23 -add china_ip_route 118.191.212.0/22 -add china_ip_route 118.191.248.0/21 -add china_ip_route 118.192.0.0/16 -add china_ip_route 118.193.0.0/22 -add china_ip_route 118.193.96.0/19 -add china_ip_route 118.194.0.0/17 -add china_ip_route 118.194.128.0/18 -add china_ip_route 118.194.192.0/19 -add china_ip_route 118.194.232.0/21 -add china_ip_route 118.194.240.0/20 -add china_ip_route 118.195.0.0/16 -add china_ip_route 118.196.0.0/14 -add china_ip_route 118.202.0.0/15 -add china_ip_route 118.204.0.0/14 -add china_ip_route 118.212.0.0/15 -add china_ip_route 118.215.192.0/18 -add china_ip_route 118.224.0.0/14 -add china_ip_route 118.228.0.0/17 -add china_ip_route 118.228.128.0/20 -add china_ip_route 118.228.144.0/21 -add china_ip_route 118.228.156.0/22 -add china_ip_route 118.228.160.0/19 -add china_ip_route 118.228.192.0/18 -add china_ip_route 118.229.0.0/16 -add china_ip_route 118.230.0.0/16 -add china_ip_route 118.239.0.0/16 -add china_ip_route 118.242.0.0/16 -add china_ip_route 118.244.0.0/14 -add china_ip_route 118.248.0.0/13 -add china_ip_route 119.0.0.0/15 -add china_ip_route 119.2.0.0/19 -add china_ip_route 119.2.128.0/17 -add china_ip_route 119.3.0.0/16 -add china_ip_route 119.4.0.0/14 -add china_ip_route 119.10.0.0/17 -add china_ip_route 119.15.136.0/21 -add china_ip_route 119.16.0.0/16 -add china_ip_route 119.18.192.0/20 -add china_ip_route 119.18.208.0/21 -add china_ip_route 119.18.224.0/19 -add china_ip_route 119.19.0.0/16 -add china_ip_route 119.20.0.0/14 -add china_ip_route 119.27.64.0/18 -add china_ip_route 119.27.128.0/17 -add china_ip_route 119.28.28.0/24 -add china_ip_route 119.29.0.0/16 -add china_ip_route 119.30.48.0/20 -add china_ip_route 119.31.192.0/19 -add china_ip_route 119.32.0.0/14 -add china_ip_route 119.36.0.0/15 -add china_ip_route 119.38.0.0/17 -add china_ip_route 119.38.128.0/18 -add china_ip_route 119.38.192.0/20 -add china_ip_route 119.38.208.0/22 -add china_ip_route 119.38.212.0/23 -add china_ip_route 119.38.214.0/27 -add china_ip_route 119.38.214.56/29 -add china_ip_route 119.38.214.64/26 -add china_ip_route 119.38.214.128/25 -add china_ip_route 119.38.215.0/24 -add china_ip_route 119.38.216.0/21 -add china_ip_route 119.39.0.0/16 -add china_ip_route 119.40.0.0/18 -add china_ip_route 119.40.64.0/20 -add china_ip_route 119.40.128.0/17 -add china_ip_route 119.41.0.0/16 -add china_ip_route 119.42.0.0/19 -add china_ip_route 119.42.52.0/22 -add china_ip_route 119.42.128.0/20 -add china_ip_route 119.42.224.0/19 -add china_ip_route 119.44.0.0/15 -add china_ip_route 119.48.0.0/13 -add china_ip_route 119.57.0.0/16 -add china_ip_route 119.58.0.0/16 -add china_ip_route 119.59.128.0/17 -add china_ip_route 119.60.0.0/15 -add china_ip_route 119.62.0.0/16 -add china_ip_route 119.63.32.0/19 -add china_ip_route 119.75.208.0/20 -add china_ip_route 119.78.0.0/15 -add china_ip_route 119.80.0.0/16 -add china_ip_route 119.82.208.0/20 -add china_ip_route 119.84.0.0/14 -add china_ip_route 119.88.0.0/16 -add china_ip_route 119.89.0.0/17 -add china_ip_route 119.89.128.0/21 -add china_ip_route 119.89.136.0/23 -add china_ip_route 119.89.139.0/24 -add china_ip_route 119.89.140.0/22 -add china_ip_route 119.89.144.0/20 -add china_ip_route 119.89.160.0/20 -add china_ip_route 119.89.176.0/22 -add china_ip_route 119.89.180.0/23 -add china_ip_route 119.89.183.0/24 -add china_ip_route 119.89.184.0/21 -add china_ip_route 119.89.192.0/23 -add china_ip_route 119.89.194.0/24 -add china_ip_route 119.89.196.0/22 -add china_ip_route 119.89.200.0/21 -add china_ip_route 119.89.208.0/21 -add china_ip_route 119.89.217.0/24 -add china_ip_route 119.89.218.0/23 -add china_ip_route 119.89.220.0/22 -add china_ip_route 119.89.224.0/19 -add china_ip_route 119.90.0.0/15 -add china_ip_route 119.96.0.0/13 -add china_ip_route 119.108.0.0/15 -add china_ip_route 119.112.0.0/12 -add china_ip_route 119.128.0.0/12 -add china_ip_route 119.144.0.0/14 -add china_ip_route 119.148.160.0/19 -add china_ip_route 119.151.192.0/18 -add china_ip_route 119.160.200.0/21 -add china_ip_route 119.161.120.0/21 -add china_ip_route 119.161.128.0/21 -add china_ip_route 119.161.160.0/19 -add china_ip_route 119.161.192.0/18 -add china_ip_route 119.162.0.0/15 -add china_ip_route 119.164.0.0/14 -add china_ip_route 119.176.0.0/12 -add china_ip_route 119.232.0.0/15 -add china_ip_route 119.235.128.0/19 -add china_ip_route 119.235.160.0/20 -add china_ip_route 119.235.184.0/22 -add china_ip_route 119.248.0.0/14 -add china_ip_route 119.252.96.0/21 -add china_ip_route 119.252.240.0/21 -add china_ip_route 119.252.249.0/24 -add china_ip_route 119.252.252.0/23 -add china_ip_route 119.253.0.0/16 -add china_ip_route 119.254.0.0/15 -add china_ip_route 120.0.0.0/12 -add china_ip_route 120.24.0.0/14 -add china_ip_route 120.30.0.0/15 -add china_ip_route 120.32.0.0/13 -add china_ip_route 120.40.0.0/14 -add china_ip_route 120.44.0.0/15 -add china_ip_route 120.46.0.0/16 -add china_ip_route 120.48.0.0/15 -add china_ip_route 120.52.0.0/14 -add china_ip_route 120.64.0.0/13 -add china_ip_route 120.72.32.0/19 -add china_ip_route 120.72.128.0/17 -add china_ip_route 120.76.0.0/14 -add china_ip_route 120.80.0.0/13 -add china_ip_route 120.88.8.0/21 -add china_ip_route 120.90.0.0/15 -add china_ip_route 120.92.0.0/17 -add china_ip_route 120.92.128.0/18 -add china_ip_route 120.92.192.0/22 -add china_ip_route 120.92.198.0/23 -add china_ip_route 120.92.200.0/21 -add china_ip_route 120.92.208.0/20 -add china_ip_route 120.92.224.0/19 -add china_ip_route 120.94.0.0/15 -add china_ip_route 120.128.0.0/13 -add china_ip_route 120.136.16.0/21 -add china_ip_route 120.136.128.0/18 -add china_ip_route 120.137.0.0/17 -add china_ip_route 120.143.128.0/19 -add china_ip_route 120.192.0.0/10 -add china_ip_route 121.0.8.0/21 -add china_ip_route 121.0.16.0/20 -add china_ip_route 121.4.0.0/15 -add china_ip_route 121.8.0.0/13 -add china_ip_route 121.16.0.0/12 -add china_ip_route 121.32.0.0/13 -add china_ip_route 121.40.0.0/14 -add china_ip_route 121.46.0.0/18 -add china_ip_route 121.46.76.0/22 -add china_ip_route 121.46.128.0/17 -add china_ip_route 121.47.0.0/16 -add china_ip_route 121.48.0.0/15 -add china_ip_route 121.50.8.0/21 -add china_ip_route 121.51.0.0/16 -add china_ip_route 121.52.160.0/19 -add china_ip_route 121.52.208.0/20 -add china_ip_route 121.52.224.0/19 -add china_ip_route 121.54.176.0/21 -add china_ip_route 121.55.0.0/18 -add china_ip_route 121.56.0.0/15 -add china_ip_route 121.58.0.0/17 -add china_ip_route 121.58.136.0/21 -add china_ip_route 121.58.144.0/20 -add china_ip_route 121.58.160.0/21 -add china_ip_route 121.59.0.0/20 -add china_ip_route 121.59.16.0/21 -add china_ip_route 121.59.24.0/22 -add china_ip_route 121.59.28.0/24 -add china_ip_route 121.59.31.0/24 -add china_ip_route 121.59.33.0/24 -add china_ip_route 121.59.35.0/24 -add china_ip_route 121.59.36.0/22 -add china_ip_route 121.59.40.0/21 -add china_ip_route 121.59.48.0/20 -add china_ip_route 121.59.64.0/18 -add china_ip_route 121.59.128.0/17 -add china_ip_route 121.60.0.0/14 -add china_ip_route 121.68.0.0/14 -add china_ip_route 121.76.0.0/15 -add china_ip_route 121.79.128.0/18 -add china_ip_route 121.89.0.0/16 -add china_ip_route 121.100.128.0/17 -add china_ip_route 121.101.0.0/18 -add china_ip_route 121.101.208.0/20 -add china_ip_route 121.192.0.0/13 -add china_ip_route 121.200.192.0/23 -add china_ip_route 121.200.194.0/24 -add china_ip_route 121.200.196.0/22 -add china_ip_route 121.201.0.0/16 -add china_ip_route 121.204.0.0/14 -add china_ip_route 121.224.0.0/12 -add china_ip_route 121.248.0.0/14 -add china_ip_route 121.255.0.0/16 -add china_ip_route 122.0.64.0/18 -add china_ip_route 122.0.128.0/17 -add china_ip_route 122.4.0.0/14 -add china_ip_route 122.9.0.0/16 -add china_ip_route 122.10.132.0/23 -add china_ip_route 122.10.136.0/23 -add china_ip_route 122.10.216.0/22 -add china_ip_route 122.10.228.0/22 -add china_ip_route 122.10.232.0/21 -add china_ip_route 122.10.240.0/22 -add china_ip_route 122.11.0.0/17 -add china_ip_route 122.12.0.0/15 -add china_ip_route 122.14.0.0/17 -add china_ip_route 122.14.192.0/18 -add china_ip_route 122.48.0.0/16 -add china_ip_route 122.49.0.0/18 -add china_ip_route 122.51.0.0/16 -add china_ip_route 122.64.0.0/14 -add china_ip_route 122.68.0.0/15 -add china_ip_route 122.70.0.0/18 -add china_ip_route 122.70.64.0/19 -add china_ip_route 122.70.96.0/20 -add china_ip_route 122.70.112.0/21 -add china_ip_route 122.70.120.0/22 -add china_ip_route 122.70.124.0/23 -add china_ip_route 122.70.126.0/24 -add china_ip_route 122.70.128.0/17 -add china_ip_route 122.71.0.0/16 -add china_ip_route 122.72.0.0/13 -add china_ip_route 122.80.0.0/12 -add china_ip_route 122.96.0.0/15 -add china_ip_route 122.98.144.0/20 -add china_ip_route 122.98.160.0/21 -add china_ip_route 122.98.172.0/22 -add china_ip_route 122.98.176.0/20 -add china_ip_route 122.98.192.0/21 -add china_ip_route 122.98.232.0/21 -add china_ip_route 122.98.240.0/20 -add china_ip_route 122.102.0.0/20 -add china_ip_route 122.102.64.0/19 -add china_ip_route 122.112.0.0/18 -add china_ip_route 122.112.64.0/19 -add china_ip_route 122.112.96.0/22 -add china_ip_route 122.112.118.0/24 -add china_ip_route 122.112.122.0/24 -add china_ip_route 122.112.125.0/24 -add china_ip_route 122.112.128.0/17 -add china_ip_route 122.113.0.0/16 -add china_ip_route 122.114.0.0/16 -add china_ip_route 122.115.0.0/18 -add china_ip_route 122.115.80.0/20 -add china_ip_route 122.115.96.0/19 -add china_ip_route 122.115.128.0/17 -add china_ip_route 122.119.0.0/16 -add china_ip_route 122.128.100.0/22 -add china_ip_route 122.128.120.0/21 -add china_ip_route 122.136.0.0/13 -add china_ip_route 122.144.128.0/17 -add china_ip_route 122.152.192.0/18 -add china_ip_route 122.156.0.0/14 -add china_ip_route 122.188.0.0/14 -add china_ip_route 122.192.0.0/14 -add china_ip_route 122.198.0.0/16 -add china_ip_route 122.200.40.0/21 -add china_ip_route 122.200.64.0/18 -add china_ip_route 122.201.48.0/20 -add china_ip_route 122.204.0.0/14 -add china_ip_route 122.224.0.0/12 -add china_ip_route 122.240.0.0/13 -add china_ip_route 122.248.24.0/21 -add china_ip_route 122.248.48.0/20 -add china_ip_route 122.255.64.0/21 -add china_ip_route 123.0.128.0/21 -add china_ip_route 123.0.136.0/23 -add china_ip_route 123.0.139.0/24 -add china_ip_route 123.0.140.0/22 -add china_ip_route 123.0.144.0/20 -add china_ip_route 123.0.160.0/19 -add china_ip_route 123.4.0.0/14 -add china_ip_route 123.8.0.0/13 -add china_ip_route 123.49.130.0/23 -add china_ip_route 123.49.132.0/22 -add china_ip_route 123.49.136.0/22 -add china_ip_route 123.49.152.0/21 -add china_ip_route 123.49.160.0/19 -add china_ip_route 123.49.192.0/18 -add china_ip_route 123.50.160.0/19 -add china_ip_route 123.52.0.0/14 -add china_ip_route 123.56.0.0/15 -add china_ip_route 123.58.0.0/18 -add china_ip_route 123.58.64.0/20 -add china_ip_route 123.58.80.0/21 -add china_ip_route 123.58.88.0/22 -add china_ip_route 123.58.96.0/19 -add china_ip_route 123.58.128.0/18 -add china_ip_route 123.58.224.0/19 -add china_ip_route 123.59.0.0/16 -add china_ip_route 123.61.0.0/16 -add china_ip_route 123.62.0.0/16 -add china_ip_route 123.64.0.0/11 -add china_ip_route 123.96.0.0/15 -add china_ip_route 123.98.0.0/17 -add china_ip_route 123.99.128.0/17 -add china_ip_route 123.100.0.0/19 -add china_ip_route 123.100.232.0/24 -add china_ip_route 123.101.0.0/16 -add china_ip_route 123.103.0.0/20 -add china_ip_route 123.103.16.0/21 -add china_ip_route 123.103.24.0/22 -add china_ip_route 123.103.28.0/23 -add china_ip_route 123.103.30.0/24 -add china_ip_route 123.103.32.0/19 -add china_ip_route 123.103.64.0/18 -add china_ip_route 123.108.134.0/24 -add china_ip_route 123.108.138.0/23 -add china_ip_route 123.108.140.0/24 -add china_ip_route 123.108.142.0/24 -add china_ip_route 123.108.208.0/20 -add china_ip_route 123.112.0.0/12 -add china_ip_route 123.128.0.0/13 -add china_ip_route 123.137.0.0/16 -add china_ip_route 123.138.0.0/15 -add china_ip_route 123.144.0.0/12 -add china_ip_route 123.160.0.0/12 -add china_ip_route 123.176.60.0/22 -add china_ip_route 123.176.80.0/20 -add china_ip_route 123.177.0.0/16 -add china_ip_route 123.178.0.0/15 -add china_ip_route 123.180.0.0/14 -add china_ip_route 123.184.0.0/13 -add china_ip_route 123.196.0.0/15 -add china_ip_route 123.199.128.0/17 -add china_ip_route 123.206.0.0/15 -add china_ip_route 123.232.0.0/14 -add china_ip_route 123.242.0.0/17 -add china_ip_route 123.242.192.0/21 -add china_ip_route 123.244.0.0/14 -add china_ip_route 123.249.0.0/16 -add china_ip_route 123.253.240.0/22 -add china_ip_route 123.254.96.0/21 -add china_ip_route 124.6.64.0/18 -add china_ip_route 124.14.0.0/15 -add china_ip_route 124.16.0.0/15 -add china_ip_route 124.20.0.0/14 -add china_ip_route 124.28.192.0/18 -add china_ip_route 124.29.0.0/17 -add china_ip_route 124.31.0.0/16 -add china_ip_route 124.40.112.0/20 -add china_ip_route 124.40.128.0/18 -add china_ip_route 124.40.192.0/19 -add china_ip_route 124.40.240.0/22 -add china_ip_route 124.42.0.0/16 -add china_ip_route 124.47.0.0/18 -add china_ip_route 124.64.0.0/15 -add china_ip_route 124.66.0.0/17 -add china_ip_route 124.67.0.0/16 -add china_ip_route 124.68.0.0/19 -add china_ip_route 124.68.32.0/20 -add china_ip_route 124.68.48.0/21 -add china_ip_route 124.68.56.0/22 -add china_ip_route 124.68.60.0/23 -add china_ip_route 124.68.63.0/24 -add china_ip_route 124.68.64.0/18 -add china_ip_route 124.68.128.0/18 -add china_ip_route 124.68.192.0/19 -add china_ip_route 124.68.224.0/23 -add china_ip_route 124.68.226.0/24 -add china_ip_route 124.68.228.0/22 -add china_ip_route 124.68.232.0/21 -add china_ip_route 124.68.240.0/23 -add china_ip_route 124.68.242.0/24 -add china_ip_route 124.68.244.0/23 -add china_ip_route 124.68.254.0/23 -add china_ip_route 124.69.0.0/16 -add china_ip_route 124.70.0.0/15 -add china_ip_route 124.72.0.0/13 -add china_ip_route 124.88.0.0/13 -add china_ip_route 124.108.8.0/21 -add china_ip_route 124.108.40.0/21 -add china_ip_route 124.109.96.0/21 -add china_ip_route 124.112.0.0/14 -add china_ip_route 124.116.0.0/15 -add china_ip_route 124.118.0.0/16 -add china_ip_route 124.119.0.0/17 -add china_ip_route 124.119.128.0/18 -add china_ip_route 124.119.192.0/19 -add china_ip_route 124.119.224.0/20 -add china_ip_route 124.119.240.0/22 -add china_ip_route 124.119.244.0/23 -add china_ip_route 124.119.246.0/25 -add china_ip_route 124.119.246.128/26 -add china_ip_route 124.119.246.192/27 -add china_ip_route 124.119.246.224/28 -add china_ip_route 124.119.246.240/29 -add china_ip_route 124.119.246.248/30 -add china_ip_route 124.119.246.254/31 -add china_ip_route 124.119.247.0/24 -add china_ip_route 124.119.248.0/21 -add china_ip_route 124.126.0.0/15 -add china_ip_route 124.128.0.0/13 -add china_ip_route 124.147.128.0/17 -add china_ip_route 124.150.137.0/24 -add china_ip_route 124.151.0.0/16 -add china_ip_route 124.152.0.0/16 -add china_ip_route 124.160.0.0/13 -add china_ip_route 124.172.0.0/16 -add china_ip_route 124.173.32.0/19 -add china_ip_route 124.173.64.0/18 -add china_ip_route 124.173.128.0/17 -add china_ip_route 124.174.0.0/15 -add china_ip_route 124.192.0.0/15 -add china_ip_route 124.196.0.0/16 -add china_ip_route 124.200.0.0/13 -add china_ip_route 124.220.0.0/14 -add china_ip_route 124.224.0.0/12 -add china_ip_route 124.240.0.0/17 -add china_ip_route 124.240.128.0/18 -add china_ip_route 124.242.0.0/16 -add china_ip_route 124.243.192.0/18 -add china_ip_route 124.248.0.0/17 -add china_ip_route 124.249.0.0/16 -add china_ip_route 124.250.0.0/15 -add china_ip_route 124.254.0.0/18 -add china_ip_route 125.31.192.0/18 -add china_ip_route 125.32.0.0/12 -add china_ip_route 125.58.128.0/17 -add china_ip_route 125.61.128.0/17 -add china_ip_route 125.62.0.0/18 -add china_ip_route 125.64.0.0/11 -add china_ip_route 125.96.0.0/15 -add china_ip_route 125.98.0.0/16 -add china_ip_route 125.104.0.0/13 -add china_ip_route 125.112.0.0/12 -add china_ip_route 125.169.0.0/16 -add china_ip_route 125.171.0.0/16 -add china_ip_route 125.208.0.0/19 -add china_ip_route 125.208.37.0/24 -add china_ip_route 125.208.40.0/24 -add china_ip_route 125.208.45.0/24 -add china_ip_route 125.208.46.0/23 -add china_ip_route 125.208.48.0/20 -add china_ip_route 125.210.0.0/15 -add china_ip_route 125.213.0.0/17 -add china_ip_route 125.214.96.0/19 -add china_ip_route 125.215.0.0/18 -add china_ip_route 125.216.0.0/13 -add china_ip_route 125.254.128.0/17 -add china_ip_route 128.108.0.0/16 -add china_ip_route 129.28.0.0/16 -add china_ip_route 129.204.0.0/16 -add china_ip_route 129.211.0.0/16 -add china_ip_route 129.223.254.0/24 -add china_ip_route 130.36.146.0/23 -add china_ip_route 130.214.218.0/23 -add china_ip_route 131.228.96.0/24 -add china_ip_route 131.253.12.0/29 -add china_ip_route 131.253.12.80/28 -add china_ip_route 131.253.12.240/29 -add china_ip_route 132.232.0.0/16 -add china_ip_route 132.237.134.0/24 -add china_ip_route 134.175.0.0/16 -add china_ip_route 135.84.247.0/24 -add china_ip_route 135.84.254.0/23 -add china_ip_route 135.159.208.0/20 -add china_ip_route 135.244.80.0/20 -add china_ip_route 137.59.59.0/24 -add china_ip_route 137.59.88.0/22 -add china_ip_route 138.32.244.0/24 -add china_ip_route 139.5.56.0/21 -add china_ip_route 139.5.80.0/22 -add china_ip_route 139.5.92.0/22 -add china_ip_route 139.5.128.0/22 -add china_ip_route 139.5.160.0/22 -add china_ip_route 139.5.192.0/22 -add china_ip_route 139.5.204.0/22 -add china_ip_route 139.5.244.0/22 -add china_ip_route 139.9.0.0/16 -add china_ip_route 139.129.0.0/16 -add china_ip_route 139.138.238.0/28 -add china_ip_route 139.148.0.0/16 -add china_ip_route 139.155.0.0/16 -add china_ip_route 139.159.0.0/19 -add china_ip_route 139.159.32.0/21 -add china_ip_route 139.159.40.0/22 -add china_ip_route 139.159.52.0/22 -add china_ip_route 139.159.56.0/21 -add china_ip_route 139.159.64.0/19 -add china_ip_route 139.159.96.0/20 -add china_ip_route 139.159.112.0/22 -add china_ip_route 139.159.116.0/23 -add china_ip_route 139.159.120.0/21 -add china_ip_route 139.159.128.0/17 -add china_ip_route 139.170.0.0/16 -add china_ip_route 139.176.0.0/16 -add china_ip_route 139.183.0.0/16 -add china_ip_route 139.186.0.0/16 -add china_ip_route 139.189.0.0/16 -add china_ip_route 139.196.0.0/15 -add china_ip_route 139.198.0.0/21 -add china_ip_route 139.198.8.0/23 -add china_ip_route 139.198.11.0/24 -add china_ip_route 139.198.12.0/22 -add china_ip_route 139.198.16.0/20 -add china_ip_route 139.198.32.0/19 -add china_ip_route 139.198.66.0/23 -add china_ip_route 139.198.68.0/22 -add china_ip_route 139.198.72.0/21 -add china_ip_route 139.198.80.0/20 -add china_ip_route 139.198.96.0/20 -add china_ip_route 139.198.116.0/22 -add china_ip_route 139.198.122.0/23 -add china_ip_route 139.198.124.0/22 -add china_ip_route 139.198.128.0/17 -add china_ip_route 139.199.0.0/16 -add china_ip_route 139.200.0.0/13 -add china_ip_route 139.208.0.0/13 -add china_ip_route 139.217.0.0/16 -add china_ip_route 139.219.0.0/16 -add china_ip_route 139.220.0.0/17 -add china_ip_route 139.220.128.0/18 -add china_ip_route 139.220.192.0/22 -add china_ip_route 139.220.196.0/23 -add china_ip_route 139.220.200.0/21 -add china_ip_route 139.220.208.0/23 -add china_ip_route 139.220.212.0/22 -add china_ip_route 139.220.216.0/21 -add china_ip_route 139.220.224.0/19 -add china_ip_route 139.221.0.0/16 -add china_ip_route 139.224.0.0/16 -add china_ip_route 139.226.0.0/15 -add china_ip_route 140.75.0.0/16 -add china_ip_route 140.101.208.0/24 -add china_ip_route 140.143.0.0/16 -add china_ip_route 140.179.0.0/16 -add china_ip_route 140.205.0.0/16 -add china_ip_route 140.206.0.0/15 -add china_ip_route 140.210.0.0/16 -add china_ip_route 140.224.0.0/16 -add china_ip_route 140.237.0.0/16 -add china_ip_route 140.240.0.0/16 -add china_ip_route 140.242.223.0/24 -add china_ip_route 140.242.224.0/24 -add china_ip_route 140.243.0.0/16 -add china_ip_route 140.246.0.0/16 -add china_ip_route 140.249.0.0/16 -add china_ip_route 140.250.0.0/16 -add china_ip_route 140.255.0.0/16 -add china_ip_route 142.70.0.0/16 -add china_ip_route 142.86.0.0/16 -add china_ip_route 144.0.0.0/16 -add china_ip_route 144.7.0.0/16 -add china_ip_route 144.12.0.0/16 -add china_ip_route 144.36.146.0/23 -add china_ip_route 144.48.64.0/22 -add china_ip_route 144.48.88.0/22 -add china_ip_route 144.48.156.0/22 -add china_ip_route 144.48.180.0/22 -add china_ip_route 144.48.184.0/22 -add china_ip_route 144.48.204.0/22 -add china_ip_route 144.48.208.0/21 -add china_ip_route 144.52.0.0/16 -add china_ip_route 144.123.0.0/16 -add china_ip_route 144.211.80.0/24 -add china_ip_route 144.211.138.0/24 -add china_ip_route 144.255.0.0/16 -add china_ip_route 146.56.192.0/18 -add china_ip_route 146.88.175.0/24 -add china_ip_route 146.196.56.0/22 -add china_ip_route 146.196.68.0/22 -add china_ip_route 146.196.92.0/22 -add china_ip_route 146.196.112.0/21 -add china_ip_route 146.196.124.0/22 -add china_ip_route 146.217.137.0/24 -add china_ip_route 146.222.79.0/24 -add china_ip_route 146.222.81.0/24 -add china_ip_route 146.222.94.0/24 -add china_ip_route 147.243.13.32/27 -add china_ip_route 147.243.13.64/27 -add china_ip_route 147.243.14.32/27 -add china_ip_route 148.70.0.0/16 -add china_ip_route 150.0.0.0/16 -add china_ip_route 150.115.0.0/16 -add china_ip_route 150.121.0.0/16 -add china_ip_route 150.122.0.0/16 -add china_ip_route 150.129.136.0/22 -add china_ip_route 150.129.192.0/22 -add china_ip_route 150.129.252.0/22 -add china_ip_route 150.138.0.0/15 -add china_ip_route 150.158.0.0/16 -add china_ip_route 150.222.88.0/23 -add china_ip_route 150.223.0.0/16 -add china_ip_route 150.242.0.0/21 -add china_ip_route 150.242.8.0/22 -add china_ip_route 150.242.28.0/22 -add china_ip_route 150.242.44.0/22 -add china_ip_route 150.242.48.0/21 -add china_ip_route 150.242.56.0/22 -add china_ip_route 150.242.76.0/22 -add china_ip_route 150.242.80.0/22 -add china_ip_route 150.242.92.0/22 -add china_ip_route 150.242.96.0/22 -add china_ip_route 150.242.112.0/21 -add china_ip_route 150.242.120.0/22 -add china_ip_route 150.242.152.0/22 -add china_ip_route 150.242.158.0/24 -add china_ip_route 150.242.160.0/21 -add china_ip_route 150.242.168.0/22 -add china_ip_route 150.242.184.0/21 -add china_ip_route 150.242.192.0/22 -add china_ip_route 150.242.224.0/22 -add china_ip_route 150.242.232.0/21 -add china_ip_route 150.242.240.0/21 -add china_ip_route 150.242.248.0/22 -add china_ip_route 150.248.0.0/16 -add china_ip_route 150.255.0.0/16 -add china_ip_route 152.32.178.0/23 -add china_ip_route 152.104.128.0/17 -add china_ip_route 152.136.0.0/16 -add china_ip_route 153.0.0.0/16 -add china_ip_route 153.3.0.0/16 -add china_ip_route 153.34.0.0/15 -add china_ip_route 153.36.0.0/15 -add china_ip_route 153.99.0.0/16 -add china_ip_route 153.101.0.0/16 -add china_ip_route 153.118.0.0/15 -add china_ip_route 154.8.128.0/17 -add china_ip_route 155.126.176.0/23 -add china_ip_route 156.107.160.0/24 -add china_ip_route 156.107.170.0/24 -add china_ip_route 156.107.179.0/24 -add china_ip_route 156.107.181.0/24 -add china_ip_route 156.154.62.0/23 -add china_ip_route 157.0.0.0/16 -add china_ip_route 157.18.0.0/16 -add china_ip_route 157.61.0.0/16 -add china_ip_route 157.119.8.0/21 -add china_ip_route 157.119.16.0/22 -add china_ip_route 157.119.28.0/22 -add china_ip_route 157.119.132.0/22 -add china_ip_route 157.119.136.0/21 -add china_ip_route 157.119.144.0/20 -add china_ip_route 157.119.160.0/21 -add china_ip_route 157.119.172.0/22 -add china_ip_route 157.119.192.0/21 -add china_ip_route 157.119.240.0/22 -add china_ip_route 157.119.252.0/22 -add china_ip_route 157.122.0.0/16 -add china_ip_route 157.133.186.0/23 -add china_ip_route 157.133.192.0/21 -add china_ip_route 157.133.212.0/24 -add china_ip_route 157.133.236.0/24 -add china_ip_route 157.148.0.0/16 -add china_ip_route 157.156.0.0/16 -add china_ip_route 157.255.0.0/16 -add china_ip_route 158.79.0.0/24 -add china_ip_route 158.79.2.0/23 -add china_ip_route 158.79.4.0/22 -add china_ip_route 158.79.8.0/21 -add china_ip_route 158.79.16.0/20 -add china_ip_route 158.79.32.0/19 -add china_ip_route 158.79.64.0/18 -add china_ip_route 158.79.128.0/17 -add china_ip_route 159.75.0.0/16 -add china_ip_route 159.221.232.0/22 -add china_ip_route 159.226.0.0/16 -add china_ip_route 160.19.212.0/22 -add china_ip_route 160.19.216.0/22 -add china_ip_route 160.20.48.0/22 -add china_ip_route 160.62.10.0/24 -add china_ip_route 160.83.109.0/24 -add china_ip_route 160.83.110.0/23 -add china_ip_route 160.202.60.0/23 -add china_ip_route 160.202.62.0/24 -add china_ip_route 160.202.148.0/22 -add china_ip_route 160.202.152.0/22 -add china_ip_route 160.202.212.0/22 -add china_ip_route 160.202.216.0/21 -add china_ip_route 160.202.224.0/19 -add china_ip_route 160.238.64.0/22 -add china_ip_route 161.120.0.0/16 -add china_ip_route 161.163.0.0/21 -add china_ip_route 161.163.28.0/23 -add china_ip_route 161.163.176.0/24 -add china_ip_route 161.163.178.0/23 -add china_ip_route 161.163.180.0/22 -add china_ip_route 161.189.0.0/16 -add china_ip_route 161.207.0.0/16 -add china_ip_route 162.14.0.0/21 -add china_ip_route 162.14.12.0/22 -add china_ip_route 162.14.16.0/21 -add china_ip_route 162.14.26.0/23 -add china_ip_route 162.14.28.0/22 -add china_ip_route 162.14.32.0/19 -add china_ip_route 162.14.64.0/18 -add china_ip_route 162.14.128.0/17 -add china_ip_route 162.105.0.0/16 -add china_ip_route 163.0.0.0/16 -add china_ip_route 163.47.4.0/22 -add china_ip_route 163.53.0.0/20 -add china_ip_route 163.53.36.0/22 -add china_ip_route 163.53.40.0/22 -add china_ip_route 163.53.48.0/20 -add china_ip_route 163.53.64.0/22 -add china_ip_route 163.53.88.0/21 -add china_ip_route 163.53.96.0/19 -add china_ip_route 163.53.128.0/21 -add china_ip_route 163.53.136.0/22 -add china_ip_route 163.53.160.0/20 -add china_ip_route 163.53.188.0/22 -add china_ip_route 163.53.220.0/22 -add china_ip_route 163.53.240.0/22 -add china_ip_route 163.116.202.0/23 -add china_ip_route 163.125.0.0/16 -add china_ip_route 163.142.0.0/16 -add china_ip_route 163.177.0.0/16 -add china_ip_route 163.179.0.0/16 -add china_ip_route 163.204.0.0/16 -add china_ip_route 163.244.246.0/24 -add china_ip_route 164.52.80.0/24 -add china_ip_route 165.84.197.0/24 -add china_ip_route 165.84.251.0/25 -add china_ip_route 165.84.251.128/26 -add china_ip_route 165.84.251.192/27 -add china_ip_route 165.84.251.224/28 -add china_ip_route 165.84.251.240/29 -add china_ip_route 165.84.251.248/30 -add china_ip_route 165.84.251.253/32 -add china_ip_route 165.84.251.254/31 -add china_ip_route 165.156.30.0/24 -add china_ip_route 165.254.82.27/32 -add china_ip_route 166.111.0.0/16 -add china_ip_route 167.139.0.0/16 -add china_ip_route 167.189.0.0/16 -add china_ip_route 167.220.244.0/22 -add china_ip_route 168.159.144.0/21 -add china_ip_route 168.159.152.0/22 -add china_ip_route 168.159.156.0/23 -add china_ip_route 168.159.158.0/24 -add china_ip_route 168.160.0.0/16 -add china_ip_route 168.230.0.0/24 -add china_ip_route 170.179.0.0/16 -add china_ip_route 170.225.224.0/23 -add china_ip_route 170.252.152.0/21 -add china_ip_route 171.8.0.0/13 -add china_ip_route 171.34.0.0/15 -add china_ip_route 171.36.0.0/14 -add china_ip_route 171.40.0.0/13 -add china_ip_route 171.80.0.0/12 -add china_ip_route 171.104.0.0/13 -add china_ip_route 171.112.0.0/12 -add china_ip_route 171.208.0.0/12 -add china_ip_route 172.81.192.0/18 -add china_ip_route 173.39.200.0/23 -add china_ip_route 175.0.0.0/12 -add china_ip_route 175.16.0.0/13 -add china_ip_route 175.24.0.0/14 -add china_ip_route 175.30.0.0/15 -add china_ip_route 175.42.0.0/15 -add china_ip_route 175.44.0.0/16 -add china_ip_route 175.46.0.0/15 -add china_ip_route 175.48.0.0/12 -add china_ip_route 175.64.0.0/11 -add china_ip_route 175.102.0.0/16 -add china_ip_route 175.106.128.0/17 -add china_ip_route 175.111.144.0/20 -add china_ip_route 175.111.160.0/20 -add china_ip_route 175.111.184.0/22 -add china_ip_route 175.146.0.0/15 -add china_ip_route 175.148.0.0/14 -add china_ip_route 175.152.0.0/14 -add china_ip_route 175.158.96.0/22 -add china_ip_route 175.160.0.0/12 -add china_ip_route 175.176.156.0/22 -add china_ip_route 175.176.188.0/22 -add china_ip_route 175.178.0.0/16 -add china_ip_route 175.184.128.0/18 -add china_ip_route 175.185.0.0/16 -add china_ip_route 175.186.0.0/15 -add china_ip_route 175.188.0.0/14 -add china_ip_route 180.76.16.0/20 -add china_ip_route 180.76.32.0/19 -add china_ip_route 180.76.64.0/18 -add china_ip_route 180.76.128.0/18 -add china_ip_route 180.76.192.0/19 -add china_ip_route 180.76.224.0/20 -add china_ip_route 180.76.240.0/24 -add china_ip_route 180.76.242.0/23 -add china_ip_route 180.76.244.0/22 -add china_ip_route 180.76.248.0/22 -add china_ip_route 180.76.252.0/23 -add china_ip_route 180.76.255.0/24 -add china_ip_route 180.77.0.0/16 -add china_ip_route 180.78.0.0/15 -add china_ip_route 180.84.0.0/15 -add china_ip_route 180.86.0.0/16 -add china_ip_route 180.87.93.98/32 -add china_ip_route 180.88.0.0/14 -add china_ip_route 180.94.56.0/21 -add china_ip_route 180.94.96.0/20 -add china_ip_route 180.94.120.0/21 -add china_ip_route 180.95.128.0/17 -add china_ip_route 180.96.0.0/11 -add china_ip_route 180.129.128.0/17 -add china_ip_route 180.130.0.0/16 -add china_ip_route 180.136.0.0/13 -add china_ip_route 180.148.16.0/21 -add china_ip_route 180.148.152.0/21 -add china_ip_route 180.148.216.0/21 -add china_ip_route 180.148.224.0/19 -add china_ip_route 180.149.128.0/19 -add china_ip_route 180.150.160.0/21 -add china_ip_route 180.150.176.0/20 -add china_ip_route 180.152.0.0/13 -add china_ip_route 180.160.0.0/12 -add china_ip_route 180.178.112.0/21 -add china_ip_route 180.178.192.0/18 -add china_ip_route 180.184.0.0/14 -add china_ip_route 180.188.0.0/17 -add china_ip_route 180.189.148.0/22 -add china_ip_route 180.200.252.0/22 -add china_ip_route 180.201.0.0/16 -add china_ip_route 180.202.0.0/15 -add china_ip_route 180.208.0.0/15 -add china_ip_route 180.210.212.0/22 -add china_ip_route 180.210.233.0/24 -add china_ip_route 180.210.236.0/22 -add china_ip_route 180.212.0.0/15 -add china_ip_route 180.222.224.0/19 -add china_ip_route 180.223.0.0/18 -add china_ip_route 180.223.80.0/20 -add china_ip_route 180.223.96.0/19 -add china_ip_route 180.223.129.0/24 -add china_ip_route 180.223.130.0/23 -add china_ip_route 180.223.132.0/22 -add china_ip_route 180.223.136.0/21 -add china_ip_route 180.223.144.0/20 -add china_ip_route 180.223.160.0/19 -add china_ip_route 180.223.192.0/18 -add china_ip_route 180.233.0.0/18 -add china_ip_route 180.233.64.0/19 -add china_ip_route 180.233.144.0/22 -add china_ip_route 180.235.64.0/19 -add china_ip_route 180.235.112.0/22 -add china_ip_route 182.16.144.0/21 -add china_ip_route 182.16.192.0/19 -add china_ip_route 182.18.0.0/17 -add china_ip_route 182.23.184.0/21 -add china_ip_route 182.23.200.0/21 -add china_ip_route 182.32.0.0/12 -add china_ip_route 182.48.96.0/19 -add china_ip_route 182.49.0.0/16 -add china_ip_route 182.50.0.0/22 -add china_ip_route 182.50.8.0/21 -add china_ip_route 182.50.112.0/20 -add china_ip_route 182.51.0.0/16 -add china_ip_route 182.54.0.0/17 -add china_ip_route 182.61.0.0/18 -add china_ip_route 182.61.128.0/19 -add china_ip_route 182.61.192.0/18 -add china_ip_route 182.80.0.0/13 -add china_ip_route 182.88.0.0/14 -add china_ip_route 182.92.0.0/16 -add china_ip_route 182.96.0.0/11 -add china_ip_route 182.128.0.0/12 -add china_ip_route 182.144.0.0/13 -add china_ip_route 182.157.0.0/16 -add china_ip_route 182.160.64.0/19 -add china_ip_route 182.174.0.0/15 -add china_ip_route 182.200.0.0/13 -add china_ip_route 182.236.128.0/17 -add china_ip_route 182.237.24.0/21 -add china_ip_route 182.238.0.0/16 -add china_ip_route 182.239.0.0/19 -add china_ip_route 182.240.0.0/13 -add china_ip_route 182.254.0.0/18 -add china_ip_route 182.254.64.0/19 -add china_ip_route 182.254.96.0/20 -add china_ip_route 182.254.112.0/22 -add china_ip_route 182.254.117.0/24 -add china_ip_route 182.254.119.0/24 -add china_ip_route 182.254.120.0/21 -add china_ip_route 182.254.128.0/17 -add china_ip_route 183.0.0.0/10 -add china_ip_route 183.64.0.0/13 -add china_ip_route 183.78.160.0/21 -add china_ip_route 183.78.180.0/22 -add china_ip_route 183.81.180.0/22 -add china_ip_route 183.84.0.0/15 -add china_ip_route 183.91.128.0/22 -add china_ip_route 183.91.136.0/21 -add china_ip_route 183.91.144.0/20 -add china_ip_route 183.92.0.0/14 -add china_ip_route 183.128.0.0/11 -add china_ip_route 183.160.0.0/13 -add china_ip_route 183.168.0.0/15 -add china_ip_route 183.170.0.0/16 -add china_ip_route 183.172.0.0/14 -add china_ip_route 183.184.0.0/13 -add china_ip_route 183.192.0.0/10 -add china_ip_route 185.109.236.0/24 -add china_ip_route 185.216.118.0/26 -add china_ip_route 185.216.118.64/27 -add china_ip_route 185.216.118.112/28 -add china_ip_route 185.216.118.128/25 -add china_ip_route 188.131.128.0/17 -add china_ip_route 192.11.23.0/24 -add china_ip_route 192.11.26.0/24 -add china_ip_route 192.11.39.0/24 -add china_ip_route 192.11.236.0/24 -add china_ip_route 192.23.191.0/24 -add china_ip_route 192.55.10.0/23 -add china_ip_route 192.55.40.0/24 -add china_ip_route 192.55.46.0/24 -add china_ip_route 192.55.68.0/22 -add china_ip_route 192.102.204.0/22 -add china_ip_route 192.124.154.0/24 -add china_ip_route 192.137.31.0/24 -add china_ip_route 192.140.128.0/21 -add china_ip_route 192.140.136.0/22 -add china_ip_route 192.140.156.0/22 -add china_ip_route 192.140.160.0/19 -add china_ip_route 192.140.192.0/20 -add china_ip_route 192.140.208.0/21 -add china_ip_route 192.144.128.0/17 -add china_ip_route 192.163.11.0/24 -add china_ip_route 192.232.97.0/24 -add china_ip_route 193.17.120.0/22 -add china_ip_route 193.20.64.0/22 -add china_ip_route 193.112.0.0/16 -add china_ip_route 193.200.196.0/24 -add china_ip_route 193.200.222.160/28 -add china_ip_route 194.138.136.0/24 -add china_ip_route 194.138.202.0/23 -add china_ip_route 194.138.245.0/24 -add china_ip_route 195.142.215.0/24 -add china_ip_route 198.175.100.0/22 -add china_ip_route 198.208.17.0/24 -add china_ip_route 198.208.19.0/24 -add china_ip_route 199.7.72.0/24 -add china_ip_route 199.65.192.0/21 -add china_ip_route 199.244.144.0/24 -add china_ip_route 202.0.100.0/23 -add china_ip_route 202.0.122.0/23 -add china_ip_route 202.1.105.0/24 -add china_ip_route 202.1.106.0/24 -add china_ip_route 202.3.128.0/23 -add china_ip_route 202.4.128.0/19 -add china_ip_route 202.4.252.0/22 -add china_ip_route 202.5.208.0/21 -add china_ip_route 202.5.216.0/22 -add china_ip_route 202.6.6.0/23 -add china_ip_route 202.6.66.0/23 -add china_ip_route 202.6.72.0/23 -add china_ip_route 202.6.87.0/24 -add china_ip_route 202.6.88.0/23 -add china_ip_route 202.6.92.0/23 -add china_ip_route 202.6.103.0/24 -add china_ip_route 202.6.108.0/24 -add china_ip_route 202.6.110.0/23 -add china_ip_route 202.6.114.0/24 -add china_ip_route 202.6.176.0/20 -add china_ip_route 202.8.0.0/24 -add china_ip_route 202.8.2.0/23 -add china_ip_route 202.8.4.0/23 -add china_ip_route 202.8.12.0/24 -add china_ip_route 202.8.24.0/24 -add china_ip_route 202.8.77.0/24 -add china_ip_route 202.8.128.0/19 -add china_ip_route 202.8.192.0/20 -add china_ip_route 202.9.32.0/24 -add china_ip_route 202.9.34.0/23 -add china_ip_route 202.9.48.0/23 -add china_ip_route 202.9.51.0/24 -add china_ip_route 202.9.52.0/23 -add china_ip_route 202.9.54.0/24 -add china_ip_route 202.9.57.0/24 -add china_ip_route 202.9.58.0/23 -add china_ip_route 202.10.64.0/21 -add china_ip_route 202.10.74.0/23 -add china_ip_route 202.10.76.0/22 -add china_ip_route 202.10.112.0/20 -add china_ip_route 202.12.1.0/24 -add china_ip_route 202.12.2.0/24 -add china_ip_route 202.12.17.0/24 -add china_ip_route 202.12.18.0/23 -add china_ip_route 202.12.72.0/24 -add china_ip_route 202.12.84.0/23 -add china_ip_route 202.12.96.0/24 -add china_ip_route 202.12.98.0/23 -add china_ip_route 202.12.106.0/24 -add china_ip_route 202.12.111.0/24 -add china_ip_route 202.12.116.0/24 -add china_ip_route 202.14.64.0/23 -add china_ip_route 202.14.69.0/24 -add china_ip_route 202.14.73.0/24 -add china_ip_route 202.14.74.0/23 -add china_ip_route 202.14.76.0/24 -add china_ip_route 202.14.78.0/23 -add china_ip_route 202.14.88.0/24 -add china_ip_route 202.14.97.0/24 -add china_ip_route 202.14.104.0/23 -add china_ip_route 202.14.108.0/23 -add china_ip_route 202.14.111.0/24 -add china_ip_route 202.14.114.0/23 -add china_ip_route 202.14.118.0/23 -add china_ip_route 202.14.124.0/23 -add china_ip_route 202.14.127.0/24 -add china_ip_route 202.14.129.0/24 -add china_ip_route 202.14.135.0/24 -add china_ip_route 202.14.136.0/24 -add china_ip_route 202.14.149.0/24 -add china_ip_route 202.14.151.0/24 -add china_ip_route 202.14.157.0/24 -add china_ip_route 202.14.158.0/23 -add china_ip_route 202.14.169.0/24 -add china_ip_route 202.14.170.0/23 -add china_ip_route 202.14.172.0/22 -add china_ip_route 202.14.176.0/24 -add china_ip_route 202.14.184.0/23 -add china_ip_route 202.14.208.0/23 -add china_ip_route 202.14.213.0/24 -add china_ip_route 202.14.219.0/24 -add china_ip_route 202.14.220.0/24 -add china_ip_route 202.14.222.0/23 -add china_ip_route 202.14.225.0/24 -add china_ip_route 202.14.226.0/23 -add china_ip_route 202.14.231.0/24 -add china_ip_route 202.14.235.0/24 -add china_ip_route 202.14.236.0/22 -add china_ip_route 202.14.246.0/24 -add china_ip_route 202.14.251.0/24 -add china_ip_route 202.20.66.0/24 -add china_ip_route 202.20.79.0/24 -add china_ip_route 202.20.87.0/24 -add china_ip_route 202.20.88.0/23 -add china_ip_route 202.20.90.0/24 -add china_ip_route 202.20.94.0/23 -add china_ip_route 202.20.114.0/24 -add china_ip_route 202.20.117.0/24 -add china_ip_route 202.20.120.0/24 -add china_ip_route 202.20.125.0/24 -add china_ip_route 202.20.126.0/23 -add china_ip_route 202.21.48.0/20 -add china_ip_route 202.21.131.0/24 -add china_ip_route 202.21.132.0/24 -add china_ip_route 202.21.141.0/24 -add china_ip_route 202.21.142.0/24 -add china_ip_route 202.21.147.0/24 -add china_ip_route 202.21.148.0/24 -add china_ip_route 202.21.150.0/23 -add china_ip_route 202.21.152.0/23 -add china_ip_route 202.21.154.0/24 -add china_ip_route 202.21.156.0/24 -add china_ip_route 202.21.208.0/24 -add china_ip_route 202.22.248.0/21 -add china_ip_route 202.27.12.0/24 -add china_ip_route 202.27.14.0/24 -add china_ip_route 202.27.136.0/23 -add china_ip_route 202.36.226.0/24 -add china_ip_route 202.38.0.0/22 -add china_ip_route 202.38.8.0/21 -add china_ip_route 202.38.48.0/20 -add china_ip_route 202.38.64.0/18 -add china_ip_route 202.38.128.0/21 -add china_ip_route 202.38.136.0/23 -add china_ip_route 202.38.138.0/24 -add china_ip_route 202.38.140.0/22 -add china_ip_route 202.38.146.0/23 -add china_ip_route 202.38.149.0/24 -add china_ip_route 202.38.150.0/23 -add china_ip_route 202.38.152.0/22 -add china_ip_route 202.38.156.0/24 -add china_ip_route 202.38.158.0/23 -add china_ip_route 202.38.160.0/23 -add china_ip_route 202.38.164.0/22 -add china_ip_route 202.38.168.0/22 -add china_ip_route 202.38.176.0/23 -add china_ip_route 202.38.184.0/21 -add china_ip_route 202.38.192.0/18 -add china_ip_route 202.40.4.0/23 -add china_ip_route 202.40.7.0/24 -add china_ip_route 202.40.15.0/24 -add china_ip_route 202.40.135.0/24 -add china_ip_route 202.40.136.0/24 -add china_ip_route 202.40.140.0/24 -add china_ip_route 202.40.143.0/24 -add china_ip_route 202.40.144.0/23 -add china_ip_route 202.40.150.0/24 -add china_ip_route 202.40.155.0/24 -add china_ip_route 202.40.156.0/24 -add china_ip_route 202.40.158.0/23 -add china_ip_route 202.40.162.0/24 -add china_ip_route 202.41.8.0/23 -add china_ip_route 202.41.11.0/24 -add china_ip_route 202.41.12.0/23 -add china_ip_route 202.41.128.0/24 -add china_ip_route 202.41.130.0/23 -add china_ip_route 202.41.142.0/24 -add china_ip_route 202.41.152.0/21 -add china_ip_route 202.41.192.0/24 -add china_ip_route 202.41.196.0/22 -add china_ip_route 202.41.200.0/22 -add china_ip_route 202.41.240.0/20 -add china_ip_route 202.43.76.0/22 -add china_ip_route 202.43.144.0/20 -add china_ip_route 202.44.16.0/20 -add china_ip_route 202.44.48.0/22 -add china_ip_route 202.44.67.0/24 -add china_ip_route 202.44.74.0/24 -add china_ip_route 202.44.97.0/24 -add china_ip_route 202.44.129.0/24 -add china_ip_route 202.44.132.0/23 -add china_ip_route 202.44.146.0/23 -add china_ip_route 202.45.0.0/23 -add china_ip_route 202.45.2.0/24 -add china_ip_route 202.45.15.0/24 -add china_ip_route 202.45.16.0/20 -add china_ip_route 202.46.16.0/23 -add china_ip_route 202.46.18.0/24 -add china_ip_route 202.46.20.0/23 -add china_ip_route 202.46.128.0/24 -add china_ip_route 202.46.224.0/20 -add china_ip_route 202.47.82.0/23 -add china_ip_route 202.47.96.0/20 -add china_ip_route 202.47.126.0/24 -add china_ip_route 202.47.128.0/24 -add china_ip_route 202.47.130.0/23 -add china_ip_route 202.52.34.0/24 -add china_ip_route 202.52.143.0/24 -add china_ip_route 202.53.140.0/24 -add china_ip_route 202.53.143.0/24 -add china_ip_route 202.53.202.0/24 -add china_ip_route 202.57.212.0/22 -add china_ip_route 202.57.216.0/22 -add china_ip_route 202.57.240.0/20 -add china_ip_route 202.58.0.0/24 -add china_ip_route 202.58.112.0/22 -add china_ip_route 202.59.0.0/23 -add china_ip_route 202.59.212.0/22 -add china_ip_route 202.59.236.0/24 -add china_ip_route 202.59.240.0/24 -add china_ip_route 202.60.48.0/21 -add china_ip_route 202.60.96.0/21 -add china_ip_route 202.60.112.0/20 -add china_ip_route 202.60.132.0/22 -add china_ip_route 202.60.136.0/21 -add china_ip_route 202.60.144.0/20 -add china_ip_route 202.61.68.0/22 -add china_ip_route 202.61.76.0/22 -add china_ip_route 202.61.88.0/22 -add china_ip_route 202.61.123.0/24 -add china_ip_route 202.61.127.0/24 -add china_ip_route 202.62.112.0/22 -add china_ip_route 202.62.248.0/22 -add china_ip_route 202.62.252.0/24 -add china_ip_route 202.62.255.0/24 -add china_ip_route 202.63.80.0/20 -add china_ip_route 202.63.160.0/19 -add china_ip_route 202.63.248.0/22 -add china_ip_route 202.63.253.0/24 -add china_ip_route 202.65.0.0/21 -add china_ip_route 202.65.8.0/23 -add china_ip_route 202.67.0.0/22 -add china_ip_route 202.69.4.0/23 -add china_ip_route 202.69.16.0/20 -add china_ip_route 202.70.0.0/19 -add china_ip_route 202.70.96.0/20 -add china_ip_route 202.70.192.0/20 -add china_ip_route 202.71.32.0/20 -add china_ip_route 202.72.40.0/21 -add china_ip_route 202.72.80.0/20 -add china_ip_route 202.72.112.0/20 -add china_ip_route 202.73.128.0/22 -add china_ip_route 202.73.240.0/20 -add china_ip_route 202.74.8.0/21 -add china_ip_route 202.74.36.0/24 -add china_ip_route 202.74.42.0/24 -add china_ip_route 202.74.52.0/24 -add china_ip_route 202.74.80.0/20 -add china_ip_route 202.74.254.0/23 -add china_ip_route 202.75.208.0/20 -add china_ip_route 202.75.252.0/22 -add china_ip_route 202.76.247.0/24 -add china_ip_route 202.76.252.0/22 -add china_ip_route 202.77.80.0/21 -add china_ip_route 202.77.92.0/22 -add china_ip_route 202.78.8.0/21 -add china_ip_route 202.79.224.0/21 -add china_ip_route 202.79.248.0/22 -add china_ip_route 202.80.192.0/20 -add china_ip_route 202.81.0.0/22 -add china_ip_route 202.81.176.0/20 -add china_ip_route 202.83.252.0/22 -add china_ip_route 202.84.0.0/20 -add china_ip_route 202.84.16.0/23 -add china_ip_route 202.84.22.0/24 -add china_ip_route 202.84.24.0/21 -add china_ip_route 202.85.208.0/20 -add china_ip_route 202.86.249.0/24 -add china_ip_route 202.87.80.0/20 -add china_ip_route 202.88.32.0/22 -add china_ip_route 202.89.8.0/21 -add china_ip_route 202.89.96.0/22 -add china_ip_route 202.89.108.0/22 -add china_ip_route 202.89.119.0/24 -add china_ip_route 202.89.232.0/21 -add china_ip_route 202.90.0.0/22 -add china_ip_route 202.90.16.0/20 -add china_ip_route 202.90.37.0/24 -add china_ip_route 202.90.96.0/19 -add china_ip_route 202.90.193.0/24 -add china_ip_route 202.90.196.0/24 -add china_ip_route 202.90.205.0/24 -add china_ip_route 202.90.224.0/20 -add china_ip_route 202.91.0.0/22 -add china_ip_route 202.91.96.0/20 -add china_ip_route 202.91.128.0/22 -add china_ip_route 202.91.176.0/20 -add china_ip_route 202.91.224.0/19 -add china_ip_route 202.92.0.0/22 -add china_ip_route 202.92.8.0/21 -add china_ip_route 202.92.48.0/20 -add china_ip_route 202.92.252.0/22 -add china_ip_route 202.93.0.0/22 -add china_ip_route 202.93.252.0/22 -add china_ip_route 202.94.0.0/19 -add china_ip_route 202.94.74.0/24 -add china_ip_route 202.94.81.0/24 -add china_ip_route 202.94.92.0/22 -add china_ip_route 202.95.240.0/21 -add china_ip_route 202.95.252.0/22 -add china_ip_route 202.96.0.0/12 -add china_ip_route 202.112.0.0/13 -add china_ip_route 202.120.0.0/15 -add china_ip_route 202.122.0.0/21 -add china_ip_route 202.122.32.0/21 -add china_ip_route 202.122.64.0/19 -add china_ip_route 202.122.112.0/20 -add china_ip_route 202.122.128.0/24 -add china_ip_route 202.122.132.0/24 -add china_ip_route 202.123.96.0/20 -add china_ip_route 202.123.116.0/22 -add china_ip_route 202.123.120.0/22 -add china_ip_route 202.124.16.0/21 -add china_ip_route 202.124.24.0/22 -add china_ip_route 202.125.107.0/24 -add china_ip_route 202.125.109.0/24 -add china_ip_route 202.125.112.0/20 -add china_ip_route 202.125.176.0/20 -add china_ip_route 202.127.0.0/21 -add china_ip_route 202.127.12.0/22 -add china_ip_route 202.127.16.0/20 -add china_ip_route 202.127.40.0/21 -add china_ip_route 202.127.48.0/20 -add china_ip_route 202.127.112.0/20 -add china_ip_route 202.127.128.0/19 -add china_ip_route 202.127.160.0/21 -add china_ip_route 202.127.192.0/20 -add china_ip_route 202.127.208.0/23 -add china_ip_route 202.127.212.0/22 -add china_ip_route 202.127.216.0/21 -add china_ip_route 202.127.224.0/19 -add china_ip_route 202.129.208.0/24 -add china_ip_route 202.130.0.0/19 -add china_ip_route 202.130.39.0/24 -add china_ip_route 202.130.224.0/19 -add china_ip_route 202.131.16.0/21 -add china_ip_route 202.131.59.0/24 -add china_ip_route 202.131.208.0/20 -add china_ip_route 202.133.32.0/20 -add china_ip_route 202.134.58.0/24 -add china_ip_route 202.134.128.0/20 -add china_ip_route 202.134.208.0/20 -add china_ip_route 202.136.48.0/20 -add china_ip_route 202.136.208.0/20 -add china_ip_route 202.136.224.0/20 -add china_ip_route 202.136.248.0/22 -add china_ip_route 202.136.254.0/23 -add china_ip_route 202.137.231.0/24 -add china_ip_route 202.140.140.0/22 -add china_ip_route 202.140.144.0/20 -add china_ip_route 202.141.160.0/19 -add china_ip_route 202.142.16.0/20 -add china_ip_route 202.143.4.0/22 -add china_ip_route 202.143.16.0/20 -add china_ip_route 202.143.32.0/20 -add china_ip_route 202.143.56.0/21 -add china_ip_route 202.143.100.0/22 -add china_ip_route 202.143.104.0/22 -add china_ip_route 202.146.160.0/20 -add china_ip_route 202.146.186.0/24 -add china_ip_route 202.146.188.0/22 -add china_ip_route 202.146.196.0/22 -add china_ip_route 202.146.200.0/21 -add china_ip_route 202.147.12.0/26 -add china_ip_route 202.147.12.64/27 -add china_ip_route 202.147.12.96/28 -add china_ip_route 202.147.12.128/29 -add china_ip_route 202.147.12.136/30 -add china_ip_route 202.147.12.140/31 -add china_ip_route 202.147.12.142/32 -add china_ip_route 202.147.12.144/28 -add china_ip_route 202.147.12.160/27 -add china_ip_route 202.147.12.192/26 -add china_ip_route 202.147.144.0/20 -add china_ip_route 202.148.32.0/20 -add china_ip_route 202.148.64.0/18 -add china_ip_route 202.149.32.0/19 -add china_ip_route 202.149.160.0/19 -add china_ip_route 202.149.224.0/19 -add china_ip_route 202.150.16.0/20 -add china_ip_route 202.150.32.0/20 -add china_ip_route 202.150.56.0/22 -add china_ip_route 202.150.192.0/20 -add china_ip_route 202.150.224.0/19 -add china_ip_route 202.151.0.0/22 -add china_ip_route 202.151.128.0/19 -add china_ip_route 202.152.176.0/20 -add china_ip_route 202.153.0.0/22 -add china_ip_route 202.153.7.0/24 -add china_ip_route 202.153.48.0/20 -add china_ip_route 202.157.192.0/19 -add china_ip_route 202.158.160.0/19 -add china_ip_route 202.158.242.0/24 -add china_ip_route 202.160.156.0/22 -add china_ip_route 202.160.176.0/20 -add china_ip_route 202.162.67.0/24 -add china_ip_route 202.162.75.0/24 -add china_ip_route 202.164.0.0/20 -add china_ip_route 202.164.96.0/19 -add china_ip_route 202.165.176.0/20 -add china_ip_route 202.165.208.0/20 -add china_ip_route 202.165.239.0/24 -add china_ip_route 202.165.240.0/23 -add china_ip_route 202.165.243.0/24 -add china_ip_route 202.165.245.0/24 -add china_ip_route 202.165.251.0/24 -add china_ip_route 202.165.252.0/22 -add china_ip_route 202.166.224.0/19 -add china_ip_route 202.168.80.0/22 -add china_ip_route 202.168.128.0/20 -add china_ip_route 202.168.160.0/19 -add china_ip_route 202.170.128.0/19 -add china_ip_route 202.170.216.0/21 -add china_ip_route 202.170.224.0/19 -add china_ip_route 202.171.216.0/21 -add china_ip_route 202.171.232.0/24 -add china_ip_route 202.171.235.0/24 -add china_ip_route 202.172.0.0/22 -add china_ip_route 202.172.7.0/24 -add china_ip_route 202.173.0.0/22 -add china_ip_route 202.173.6.0/24 -add china_ip_route 202.173.8.0/21 -add china_ip_route 202.173.112.0/22 -add china_ip_route 202.173.224.0/19 -add china_ip_route 202.174.64.0/20 -add china_ip_route 202.174.124.0/22 -add china_ip_route 202.176.224.0/19 -add china_ip_route 202.179.160.0/20 -add china_ip_route 202.179.240.0/20 -add china_ip_route 202.180.128.0/19 -add china_ip_route 202.180.208.0/21 -add china_ip_route 202.181.8.0/22 -add china_ip_route 202.181.28.0/22 -add china_ip_route 202.181.112.0/20 -add china_ip_route 202.182.32.0/20 -add china_ip_route 202.182.192.0/19 -add china_ip_route 202.189.0.0/18 -add china_ip_route 202.189.80.0/20 -add china_ip_route 202.189.184.0/21 -add china_ip_route 202.191.0.0/24 -add china_ip_route 202.191.68.0/22 -add china_ip_route 202.191.72.0/21 -add china_ip_route 202.191.80.0/20 -add china_ip_route 202.192.0.0/12 -add china_ip_route 203.0.4.0/22 -add china_ip_route 203.0.10.0/23 -add china_ip_route 203.0.18.0/24 -add china_ip_route 203.0.24.0/24 -add china_ip_route 203.0.42.0/23 -add china_ip_route 203.0.45.0/24 -add china_ip_route 203.0.46.0/23 -add china_ip_route 203.0.81.0/24 -add china_ip_route 203.0.82.0/23 -add china_ip_route 203.0.90.0/23 -add china_ip_route 203.0.96.0/23 -add china_ip_route 203.0.104.0/21 -add china_ip_route 203.0.114.0/23 -add china_ip_route 203.0.122.0/24 -add china_ip_route 203.0.128.0/24 -add china_ip_route 203.0.130.0/23 -add china_ip_route 203.0.132.0/22 -add china_ip_route 203.0.137.0/24 -add china_ip_route 203.0.142.0/24 -add china_ip_route 203.0.144.0/24 -add china_ip_route 203.0.146.0/24 -add china_ip_route 203.0.148.0/24 -add china_ip_route 203.0.150.0/23 -add china_ip_route 203.0.152.0/24 -add china_ip_route 203.0.177.0/24 -add china_ip_route 203.0.224.0/24 -add china_ip_route 203.1.4.0/22 -add china_ip_route 203.1.18.0/24 -add china_ip_route 203.1.26.0/23 -add china_ip_route 203.1.65.0/24 -add china_ip_route 203.1.66.0/23 -add china_ip_route 203.1.70.0/23 -add china_ip_route 203.1.76.0/23 -add china_ip_route 203.1.90.0/24 -add china_ip_route 203.1.97.0/24 -add china_ip_route 203.1.98.0/23 -add china_ip_route 203.1.100.0/22 -add china_ip_route 203.1.108.0/24 -add china_ip_route 203.1.253.0/24 -add china_ip_route 203.1.254.0/24 -add china_ip_route 203.2.64.0/21 -add china_ip_route 203.2.73.0/24 -add china_ip_route 203.2.112.0/21 -add china_ip_route 203.2.126.0/23 -add china_ip_route 203.2.140.0/24 -add china_ip_route 203.2.150.0/24 -add china_ip_route 203.2.152.0/22 -add china_ip_route 203.2.156.0/23 -add china_ip_route 203.2.160.0/21 -add china_ip_route 203.2.180.0/23 -add china_ip_route 203.2.196.0/23 -add china_ip_route 203.2.209.0/24 -add china_ip_route 203.2.214.0/23 -add china_ip_route 203.2.226.0/23 -add china_ip_route 203.2.229.0/24 -add china_ip_route 203.2.236.0/23 -add china_ip_route 203.3.68.0/24 -add china_ip_route 203.3.72.0/23 -add china_ip_route 203.3.75.0/24 -add china_ip_route 203.3.80.0/21 -add china_ip_route 203.3.96.0/22 -add china_ip_route 203.3.105.0/24 -add china_ip_route 203.3.112.0/21 -add china_ip_route 203.3.120.0/24 -add china_ip_route 203.3.123.0/24 -add china_ip_route 203.3.135.0/24 -add china_ip_route 203.3.139.0/24 -add china_ip_route 203.3.143.0/24 -add china_ip_route 203.4.132.0/23 -add china_ip_route 203.4.134.0/24 -add china_ip_route 203.4.151.0/24 -add china_ip_route 203.4.152.0/22 -add china_ip_route 203.4.174.0/23 -add china_ip_route 203.4.180.0/24 -add china_ip_route 203.4.186.0/24 -add china_ip_route 203.4.205.0/24 -add china_ip_route 203.4.208.0/22 -add china_ip_route 203.4.227.0/24 -add china_ip_route 203.4.230.0/23 -add china_ip_route 203.5.4.0/23 -add china_ip_route 203.5.7.0/24 -add china_ip_route 203.5.8.0/23 -add china_ip_route 203.5.11.0/24 -add china_ip_route 203.5.21.0/24 -add china_ip_route 203.5.22.0/24 -add china_ip_route 203.5.44.0/24 -add china_ip_route 203.5.46.0/23 -add china_ip_route 203.5.52.0/22 -add china_ip_route 203.5.56.0/23 -add china_ip_route 203.5.60.0/23 -add china_ip_route 203.5.114.0/23 -add china_ip_route 203.5.118.0/24 -add china_ip_route 203.5.120.0/24 -add china_ip_route 203.5.172.0/24 -add china_ip_route 203.5.180.0/23 -add china_ip_route 203.5.182.0/24 -add china_ip_route 203.5.185.0/24 -add china_ip_route 203.5.186.0/24 -add china_ip_route 203.5.188.0/23 -add china_ip_route 203.5.190.0/24 -add china_ip_route 203.5.195.0/24 -add china_ip_route 203.5.214.0/23 -add china_ip_route 203.5.218.0/23 -add china_ip_route 203.6.131.0/24 -add china_ip_route 203.6.136.0/24 -add china_ip_route 203.6.138.0/23 -add china_ip_route 203.6.142.0/24 -add china_ip_route 203.6.150.0/23 -add china_ip_route 203.6.157.0/24 -add china_ip_route 203.6.159.0/24 -add china_ip_route 203.6.224.0/20 -add china_ip_route 203.6.248.0/23 -add china_ip_route 203.7.129.0/24 -add china_ip_route 203.7.138.0/23 -add china_ip_route 203.7.147.0/24 -add china_ip_route 203.7.150.0/23 -add china_ip_route 203.7.158.0/24 -add china_ip_route 203.7.192.0/23 -add china_ip_route 203.7.200.0/24 -add china_ip_route 203.8.0.0/24 -add china_ip_route 203.8.8.0/24 -add china_ip_route 203.8.23.0/24 -add china_ip_route 203.8.70.0/24 -add china_ip_route 203.8.82.0/24 -add china_ip_route 203.8.86.0/23 -add china_ip_route 203.8.91.0/24 -add china_ip_route 203.8.110.0/23 -add china_ip_route 203.8.115.0/24 -add china_ip_route 203.8.166.0/23 -add china_ip_route 203.8.169.0/24 -add china_ip_route 203.8.173.0/24 -add china_ip_route 203.8.184.0/24 -add china_ip_route 203.8.186.0/23 -add china_ip_route 203.8.190.0/23 -add china_ip_route 203.8.192.0/24 -add china_ip_route 203.8.197.0/24 -add china_ip_route 203.8.198.0/23 -add china_ip_route 203.8.203.0/24 -add china_ip_route 203.8.209.0/24 -add china_ip_route 203.8.210.0/23 -add china_ip_route 203.8.212.0/22 -add china_ip_route 203.8.217.0/24 -add china_ip_route 203.8.220.0/24 -add china_ip_route 203.9.32.0/24 -add china_ip_route 203.9.36.0/23 -add china_ip_route 203.9.57.0/24 -add china_ip_route 203.9.63.0/24 -add china_ip_route 203.9.65.0/24 -add china_ip_route 203.9.70.0/23 -add china_ip_route 203.9.72.0/24 -add china_ip_route 203.9.75.0/24 -add china_ip_route 203.9.76.0/23 -add china_ip_route 203.9.96.0/22 -add china_ip_route 203.9.100.0/23 -add china_ip_route 203.9.108.0/24 -add china_ip_route 203.9.158.0/24 -add china_ip_route 203.10.34.0/24 -add china_ip_route 203.10.56.0/24 -add china_ip_route 203.10.74.0/23 -add china_ip_route 203.10.84.0/22 -add china_ip_route 203.10.88.0/24 -add china_ip_route 203.10.95.0/24 -add china_ip_route 203.10.125.0/24 -add china_ip_route 203.11.70.0/24 -add china_ip_route 203.11.76.0/22 -add china_ip_route 203.11.82.0/24 -add china_ip_route 203.11.84.0/22 -add china_ip_route 203.11.100.0/22 -add china_ip_route 203.11.109.0/24 -add china_ip_route 203.11.117.0/24 -add china_ip_route 203.11.122.0/24 -add china_ip_route 203.11.126.0/24 -add china_ip_route 203.11.136.0/22 -add china_ip_route 203.11.141.0/24 -add china_ip_route 203.11.142.0/23 -add china_ip_route 203.11.180.0/22 -add china_ip_route 203.11.208.0/22 -add china_ip_route 203.12.16.0/24 -add china_ip_route 203.12.19.0/24 -add china_ip_route 203.12.24.0/24 -add china_ip_route 203.12.57.0/24 -add china_ip_route 203.12.65.0/24 -add china_ip_route 203.12.66.0/24 -add china_ip_route 203.12.70.0/23 -add china_ip_route 203.12.87.0/24 -add china_ip_route 203.12.100.0/23 -add china_ip_route 203.12.103.0/24 -add china_ip_route 203.12.114.0/24 -add china_ip_route 203.12.118.0/24 -add china_ip_route 203.12.130.0/24 -add china_ip_route 203.12.137.0/24 -add china_ip_route 203.12.196.0/22 -add china_ip_route 203.12.211.0/24 -add china_ip_route 203.12.219.0/24 -add china_ip_route 203.12.226.0/24 -add china_ip_route 203.12.240.0/22 -add china_ip_route 203.13.18.0/24 -add china_ip_route 203.13.24.0/24 -add china_ip_route 203.13.44.0/23 -add china_ip_route 203.13.88.0/23 -add china_ip_route 203.13.92.0/22 -add china_ip_route 203.13.173.0/24 -add china_ip_route 203.13.224.0/23 -add china_ip_route 203.13.227.0/24 -add china_ip_route 203.13.233.0/24 -add china_ip_route 203.14.24.0/22 -add china_ip_route 203.14.33.0/24 -add china_ip_route 203.14.56.0/24 -add china_ip_route 203.14.61.0/24 -add china_ip_route 203.14.62.0/24 -add china_ip_route 203.14.104.0/24 -add china_ip_route 203.14.114.0/23 -add china_ip_route 203.14.118.0/24 -add china_ip_route 203.14.162.0/24 -add china_ip_route 203.14.184.0/21 -add china_ip_route 203.14.192.0/24 -add china_ip_route 203.14.194.0/23 -add china_ip_route 203.14.214.0/24 -add china_ip_route 203.14.231.0/24 -add china_ip_route 203.14.246.0/24 -add china_ip_route 203.15.0.0/20 -add china_ip_route 203.15.20.0/23 -add china_ip_route 203.15.22.0/24 -add china_ip_route 203.15.87.0/24 -add china_ip_route 203.15.88.0/23 -add china_ip_route 203.15.105.0/24 -add china_ip_route 203.15.112.0/21 -add china_ip_route 203.15.130.0/23 -add china_ip_route 203.15.149.0/24 -add china_ip_route 203.15.151.0/24 -add china_ip_route 203.15.156.0/22 -add china_ip_route 203.15.174.0/24 -add china_ip_route 203.15.227.0/24 -add china_ip_route 203.15.232.0/22 -add china_ip_route 203.15.238.0/23 -add china_ip_route 203.15.240.0/23 -add china_ip_route 203.15.246.0/24 -add china_ip_route 203.16.10.0/24 -add china_ip_route 203.16.12.0/23 -add china_ip_route 203.16.16.0/21 -add china_ip_route 203.16.27.0/24 -add china_ip_route 203.16.38.0/24 -add china_ip_route 203.16.49.0/24 -add china_ip_route 203.16.50.0/23 -add china_ip_route 203.16.58.0/24 -add china_ip_route 203.16.63.0/24 -add china_ip_route 203.16.133.0/24 -add china_ip_route 203.16.161.0/24 -add china_ip_route 203.16.162.0/24 -add china_ip_route 203.16.186.0/23 -add china_ip_route 203.16.228.0/24 -add china_ip_route 203.16.238.0/24 -add china_ip_route 203.16.240.0/24 -add china_ip_route 203.16.245.0/24 -add china_ip_route 203.17.2.0/24 -add china_ip_route 203.17.18.0/24 -add china_ip_route 203.17.28.0/24 -add china_ip_route 203.17.39.0/24 -add china_ip_route 203.17.56.0/24 -add china_ip_route 203.17.74.0/23 -add china_ip_route 203.17.88.0/23 -add china_ip_route 203.17.136.0/24 -add china_ip_route 203.17.164.0/24 -add china_ip_route 203.17.187.0/24 -add china_ip_route 203.17.190.0/23 -add china_ip_route 203.17.231.0/24 -add china_ip_route 203.17.233.0/24 -add china_ip_route 203.17.248.0/23 -add china_ip_route 203.17.255.0/24 -add china_ip_route 203.18.2.0/23 -add china_ip_route 203.18.4.0/24 -add china_ip_route 203.18.7.0/24 -add china_ip_route 203.18.31.0/24 -add china_ip_route 203.18.37.0/24 -add china_ip_route 203.18.48.0/23 -add china_ip_route 203.18.52.0/24 -add china_ip_route 203.18.72.0/22 -add china_ip_route 203.18.80.0/23 -add china_ip_route 203.18.87.0/24 -add china_ip_route 203.18.100.0/23 -add china_ip_route 203.18.105.0/24 -add china_ip_route 203.18.107.0/24 -add china_ip_route 203.18.110.0/24 -add china_ip_route 203.18.129.0/24 -add china_ip_route 203.18.131.0/24 -add china_ip_route 203.18.132.0/23 -add china_ip_route 203.18.144.0/24 -add china_ip_route 203.18.153.0/24 -add china_ip_route 203.18.199.0/24 -add china_ip_route 203.18.208.0/24 -add china_ip_route 203.18.211.0/24 -add china_ip_route 203.18.215.0/24 -add china_ip_route 203.19.1.0/24 -add china_ip_route 203.19.18.0/24 -add china_ip_route 203.19.24.0/24 -add china_ip_route 203.19.30.0/24 -add china_ip_route 203.19.41.0/24 -add china_ip_route 203.19.44.0/23 -add china_ip_route 203.19.46.0/24 -add china_ip_route 203.19.58.0/24 -add china_ip_route 203.19.60.0/23 -add china_ip_route 203.19.64.0/24 -add china_ip_route 203.19.68.0/24 -add china_ip_route 203.19.72.0/24 -add china_ip_route 203.19.101.0/24 -add china_ip_route 203.19.111.0/24 -add china_ip_route 203.19.131.0/24 -add china_ip_route 203.19.133.0/24 -add china_ip_route 203.19.144.0/24 -add china_ip_route 203.19.147.0/24 -add china_ip_route 203.19.149.0/24 -add china_ip_route 203.19.156.0/24 -add china_ip_route 203.19.176.0/24 -add china_ip_route 203.19.178.0/23 -add china_ip_route 203.19.208.0/24 -add china_ip_route 203.19.228.0/22 -add china_ip_route 203.19.233.0/24 -add china_ip_route 203.19.242.0/24 -add china_ip_route 203.19.248.0/23 -add china_ip_route 203.19.255.0/24 -add china_ip_route 203.20.17.0/24 -add china_ip_route 203.20.40.0/23 -add china_ip_route 203.20.44.0/24 -add china_ip_route 203.20.48.0/24 -add china_ip_route 203.20.61.0/24 -add china_ip_route 203.20.65.0/24 -add china_ip_route 203.20.84.0/23 -add china_ip_route 203.20.89.0/24 -add china_ip_route 203.20.106.0/23 -add china_ip_route 203.20.115.0/24 -add china_ip_route 203.20.117.0/24 -add china_ip_route 203.20.118.0/23 -add china_ip_route 203.20.122.0/24 -add china_ip_route 203.20.126.0/23 -add china_ip_route 203.20.135.0/24 -add china_ip_route 203.20.140.0/22 -add china_ip_route 203.20.150.0/24 -add china_ip_route 203.20.230.0/24 -add china_ip_route 203.20.232.0/24 -add china_ip_route 203.20.236.0/24 -add china_ip_route 203.21.0.0/23 -add china_ip_route 203.21.2.0/24 -add china_ip_route 203.21.8.0/24 -add china_ip_route 203.21.10.0/24 -add china_ip_route 203.21.18.0/24 -add china_ip_route 203.21.33.0/24 -add china_ip_route 203.21.34.0/24 -add china_ip_route 203.21.41.0/24 -add china_ip_route 203.21.44.0/24 -add china_ip_route 203.21.68.0/24 -add china_ip_route 203.21.82.0/24 -add china_ip_route 203.21.96.0/22 -add china_ip_route 203.21.124.0/24 -add china_ip_route 203.21.136.0/23 -add china_ip_route 203.21.145.0/24 -add china_ip_route 203.21.206.0/24 -add china_ip_route 203.22.24.0/24 -add china_ip_route 203.22.28.0/23 -add china_ip_route 203.22.31.0/24 -add china_ip_route 203.22.68.0/24 -add china_ip_route 203.22.76.0/24 -add china_ip_route 203.22.84.0/24 -add china_ip_route 203.22.87.0/24 -add china_ip_route 203.22.92.0/22 -add china_ip_route 203.22.99.0/24 -add china_ip_route 203.22.106.0/24 -add china_ip_route 203.22.122.0/23 -add china_ip_route 203.22.131.0/24 -add china_ip_route 203.22.163.0/24 -add china_ip_route 203.22.166.0/24 -add china_ip_route 203.22.170.0/24 -add china_ip_route 203.22.176.0/22 -add china_ip_route 203.22.180.0/23 -add china_ip_route 203.22.182.0/30 -add china_ip_route 203.22.182.6/31 -add china_ip_route 203.22.182.8/29 -add china_ip_route 203.22.182.18/31 -add china_ip_route 203.22.182.20/30 -add china_ip_route 203.22.182.24/29 -add china_ip_route 203.22.182.32/27 -add china_ip_route 203.22.182.64/26 -add china_ip_route 203.22.182.128/25 -add china_ip_route 203.22.183.0/24 -add china_ip_route 203.22.194.0/24 -add china_ip_route 203.22.242.0/23 -add china_ip_route 203.22.245.0/24 -add china_ip_route 203.22.246.0/24 -add china_ip_route 203.22.252.0/23 -add china_ip_route 203.23.0.0/24 -add china_ip_route 203.23.47.0/24 -add china_ip_route 203.23.61.0/24 -add china_ip_route 203.23.62.0/23 -add china_ip_route 203.23.73.0/24 -add china_ip_route 203.23.85.0/24 -add china_ip_route 203.23.92.0/22 -add china_ip_route 203.23.98.0/24 -add china_ip_route 203.23.107.0/24 -add china_ip_route 203.23.112.0/24 -add china_ip_route 203.23.130.0/24 -add china_ip_route 203.23.140.0/23 -add china_ip_route 203.23.172.0/24 -add china_ip_route 203.23.182.0/24 -add china_ip_route 203.23.186.0/23 -add china_ip_route 203.23.192.0/24 -add china_ip_route 203.23.197.0/24 -add china_ip_route 203.23.198.0/24 -add china_ip_route 203.23.204.0/22 -add china_ip_route 203.23.224.0/24 -add china_ip_route 203.23.226.0/23 -add china_ip_route 203.23.228.0/22 -add china_ip_route 203.23.249.0/24 -add china_ip_route 203.23.251.0/24 -add china_ip_route 203.24.13.0/24 -add china_ip_route 203.24.18.0/24 -add china_ip_route 203.24.27.0/24 -add china_ip_route 203.24.43.0/24 -add china_ip_route 203.24.56.0/24 -add china_ip_route 203.24.58.0/24 -add china_ip_route 203.24.67.0/24 -add china_ip_route 203.24.74.0/24 -add china_ip_route 203.24.79.0/24 -add china_ip_route 203.24.80.0/23 -add china_ip_route 203.24.84.0/23 -add china_ip_route 203.24.86.0/24 -add china_ip_route 203.24.90.0/24 -add china_ip_route 203.24.111.0/24 -add china_ip_route 203.24.112.0/24 -add china_ip_route 203.24.116.0/24 -add china_ip_route 203.24.122.0/23 -add china_ip_route 203.24.145.0/24 -add china_ip_route 203.24.152.0/23 -add china_ip_route 203.24.157.0/24 -add china_ip_route 203.24.161.0/24 -add china_ip_route 203.24.167.0/24 -add china_ip_route 203.24.186.0/23 -add china_ip_route 203.24.199.0/24 -add china_ip_route 203.24.202.0/24 -add china_ip_route 203.24.212.0/23 -add china_ip_route 203.24.217.0/24 -add china_ip_route 203.24.219.0/24 -add china_ip_route 203.24.244.0/24 -add china_ip_route 203.25.19.0/24 -add china_ip_route 203.25.20.0/23 -add china_ip_route 203.25.46.0/24 -add china_ip_route 203.25.64.0/23 -add china_ip_route 203.25.91.0/24 -add china_ip_route 203.25.99.0/24 -add china_ip_route 203.25.100.0/24 -add china_ip_route 203.25.106.0/24 -add china_ip_route 203.25.131.0/24 -add china_ip_route 203.25.135.0/24 -add china_ip_route 203.25.138.0/24 -add china_ip_route 203.25.147.0/24 -add china_ip_route 203.25.153.0/24 -add china_ip_route 203.25.154.0/23 -add china_ip_route 203.25.164.0/24 -add china_ip_route 203.25.166.0/24 -add china_ip_route 203.25.174.0/23 -add china_ip_route 203.25.180.0/24 -add china_ip_route 203.25.182.0/24 -add china_ip_route 203.25.191.0/24 -add china_ip_route 203.25.199.0/24 -add china_ip_route 203.25.200.0/24 -add china_ip_route 203.25.202.0/23 -add china_ip_route 203.25.208.0/20 -add china_ip_route 203.25.229.0/24 -add china_ip_route 203.25.235.0/24 -add china_ip_route 203.25.236.0/24 -add china_ip_route 203.25.242.0/24 -add china_ip_route 203.26.12.0/24 -add china_ip_route 203.26.34.0/24 -add china_ip_route 203.26.49.0/24 -add china_ip_route 203.26.50.0/24 -add china_ip_route 203.26.55.0/24 -add china_ip_route 203.26.56.0/23 -add china_ip_route 203.26.60.0/24 -add china_ip_route 203.26.65.0/24 -add china_ip_route 203.26.68.0/24 -add china_ip_route 203.26.76.0/24 -add china_ip_route 203.26.80.0/24 -add china_ip_route 203.26.84.0/24 -add china_ip_route 203.26.97.0/24 -add china_ip_route 203.26.102.0/23 -add china_ip_route 203.26.115.0/24 -add china_ip_route 203.26.116.0/24 -add china_ip_route 203.26.129.0/24 -add china_ip_route 203.26.143.0/24 -add china_ip_route 203.26.144.0/24 -add china_ip_route 203.26.148.0/23 -add china_ip_route 203.26.154.0/24 -add china_ip_route 203.26.158.0/23 -add china_ip_route 203.26.170.0/24 -add china_ip_route 203.26.173.0/24 -add china_ip_route 203.26.176.0/24 -add china_ip_route 203.26.185.0/24 -add china_ip_route 203.26.202.0/23 -add china_ip_route 203.26.210.0/24 -add china_ip_route 203.26.214.0/24 -add china_ip_route 203.26.222.0/24 -add china_ip_route 203.26.224.0/24 -add china_ip_route 203.26.228.0/24 -add china_ip_route 203.26.232.0/24 -add china_ip_route 203.27.0.0/24 -add china_ip_route 203.27.10.0/24 -add china_ip_route 203.27.15.0/24 -add china_ip_route 203.27.16.0/24 -add china_ip_route 203.27.20.0/24 -add china_ip_route 203.27.22.0/23 -add china_ip_route 203.27.40.0/24 -add china_ip_route 203.27.45.0/24 -add china_ip_route 203.27.53.0/24 -add china_ip_route 203.27.65.0/24 -add china_ip_route 203.27.66.0/24 -add china_ip_route 203.27.81.0/24 -add china_ip_route 203.27.88.0/24 -add china_ip_route 203.27.102.0/24 -add china_ip_route 203.27.109.0/24 -add china_ip_route 203.27.117.0/24 -add china_ip_route 203.27.121.0/24 -add china_ip_route 203.27.122.0/23 -add china_ip_route 203.27.125.0/24 -add china_ip_route 203.27.200.0/24 -add china_ip_route 203.27.202.0/24 -add china_ip_route 203.27.233.0/24 -add china_ip_route 203.27.241.0/24 -add china_ip_route 203.27.250.0/24 -add china_ip_route 203.28.10.0/24 -add china_ip_route 203.28.12.0/24 -add china_ip_route 203.28.33.0/24 -add china_ip_route 203.28.34.0/23 -add china_ip_route 203.28.43.0/24 -add china_ip_route 203.28.44.0/24 -add china_ip_route 203.28.54.0/24 -add china_ip_route 203.28.56.0/24 -add china_ip_route 203.28.73.0/24 -add china_ip_route 203.28.74.0/24 -add china_ip_route 203.28.76.0/24 -add china_ip_route 203.28.86.0/24 -add china_ip_route 203.28.88.0/24 -add china_ip_route 203.28.112.0/24 -add china_ip_route 203.28.131.0/24 -add china_ip_route 203.28.136.0/24 -add china_ip_route 203.28.140.0/24 -add china_ip_route 203.28.145.0/24 -add china_ip_route 203.28.165.0/24 -add china_ip_route 203.28.169.0/24 -add china_ip_route 203.28.170.0/24 -add china_ip_route 203.28.178.0/23 -add china_ip_route 203.28.185.0/24 -add china_ip_route 203.28.187.0/24 -add china_ip_route 203.28.196.0/24 -add china_ip_route 203.28.226.0/23 -add china_ip_route 203.28.239.0/24 -add china_ip_route 203.29.2.0/24 -add china_ip_route 203.29.8.0/23 -add china_ip_route 203.29.13.0/24 -add china_ip_route 203.29.14.0/24 -add china_ip_route 203.29.28.0/24 -add china_ip_route 203.29.46.0/24 -add china_ip_route 203.29.57.0/24 -add china_ip_route 203.29.61.0/24 -add china_ip_route 203.29.63.0/24 -add china_ip_route 203.29.69.0/24 -add china_ip_route 203.29.73.0/24 -add china_ip_route 203.29.81.0/24 -add china_ip_route 203.29.90.0/24 -add china_ip_route 203.29.95.0/24 -add china_ip_route 203.29.100.0/24 -add china_ip_route 203.29.103.0/24 -add china_ip_route 203.29.112.0/24 -add china_ip_route 203.29.120.0/22 -add china_ip_route 203.29.182.0/23 -add china_ip_route 203.29.187.0/24 -add china_ip_route 203.29.189.0/24 -add china_ip_route 203.29.190.0/24 -add china_ip_route 203.29.205.0/24 -add china_ip_route 203.29.210.0/24 -add china_ip_route 203.29.217.0/24 -add china_ip_route 203.29.227.0/24 -add china_ip_route 203.29.231.0/24 -add china_ip_route 203.29.233.0/24 -add china_ip_route 203.29.234.0/24 -add china_ip_route 203.29.248.0/24 -add china_ip_route 203.29.254.0/23 -add china_ip_route 203.30.16.0/23 -add china_ip_route 203.30.25.0/24 -add china_ip_route 203.30.29.0/24 -add china_ip_route 203.30.66.0/24 -add china_ip_route 203.30.81.0/24 -add china_ip_route 203.30.87.0/24 -add china_ip_route 203.30.111.0/24 -add china_ip_route 203.30.121.0/24 -add china_ip_route 203.30.123.0/24 -add china_ip_route 203.30.152.0/24 -add china_ip_route 203.30.156.0/24 -add china_ip_route 203.30.162.0/24 -add china_ip_route 203.30.173.0/24 -add china_ip_route 203.30.175.0/24 -add china_ip_route 203.30.187.0/24 -add china_ip_route 203.30.194.0/24 -add china_ip_route 203.30.217.0/24 -add china_ip_route 203.30.220.0/24 -add china_ip_route 203.30.222.0/24 -add china_ip_route 203.30.232.0/23 -add china_ip_route 203.30.235.0/24 -add china_ip_route 203.30.240.0/23 -add china_ip_route 203.30.246.0/24 -add china_ip_route 203.30.250.0/23 -add china_ip_route 203.31.45.0/24 -add china_ip_route 203.31.46.0/24 -add china_ip_route 203.31.49.0/24 -add china_ip_route 203.31.51.0/24 -add china_ip_route 203.31.54.0/23 -add china_ip_route 203.31.69.0/24 -add china_ip_route 203.31.72.0/24 -add china_ip_route 203.31.80.0/24 -add china_ip_route 203.31.85.0/24 -add china_ip_route 203.31.97.0/24 -add china_ip_route 203.31.105.0/24 -add china_ip_route 203.31.106.0/24 -add china_ip_route 203.31.108.0/23 -add china_ip_route 203.31.124.0/24 -add china_ip_route 203.31.162.0/24 -add china_ip_route 203.31.174.0/24 -add china_ip_route 203.31.177.0/24 -add china_ip_route 203.31.181.0/24 -add china_ip_route 203.31.187.0/24 -add china_ip_route 203.31.189.0/24 -add china_ip_route 203.31.204.0/24 -add china_ip_route 203.31.220.0/24 -add china_ip_route 203.31.222.0/23 -add china_ip_route 203.31.225.0/24 -add china_ip_route 203.31.229.0/24 -add china_ip_route 203.31.248.0/23 -add china_ip_route 203.31.253.0/24 -add china_ip_route 203.32.20.0/24 -add china_ip_route 203.32.48.0/23 -add china_ip_route 203.32.56.0/24 -add china_ip_route 203.32.60.0/24 -add china_ip_route 203.32.62.0/24 -add china_ip_route 203.32.68.0/23 -add china_ip_route 203.32.76.0/24 -add china_ip_route 203.32.81.0/24 -add china_ip_route 203.32.84.0/23 -add china_ip_route 203.32.95.0/24 -add china_ip_route 203.32.102.0/24 -add china_ip_route 203.32.105.0/24 -add china_ip_route 203.32.130.0/24 -add china_ip_route 203.32.133.0/24 -add china_ip_route 203.32.140.0/24 -add china_ip_route 203.32.152.0/24 -add china_ip_route 203.32.186.0/23 -add china_ip_route 203.32.192.0/24 -add china_ip_route 203.32.196.0/24 -add china_ip_route 203.32.203.0/24 -add china_ip_route 203.32.204.0/23 -add china_ip_route 203.32.212.0/24 -add china_ip_route 203.33.4.0/24 -add china_ip_route 203.33.7.0/24 -add china_ip_route 203.33.12.0/23 -add china_ip_route 203.33.21.0/24 -add china_ip_route 203.33.26.0/24 -add china_ip_route 203.33.32.0/24 -add china_ip_route 203.33.63.0/24 -add china_ip_route 203.33.64.0/24 -add china_ip_route 203.33.67.0/24 -add china_ip_route 203.33.68.0/24 -add china_ip_route 203.33.73.0/24 -add china_ip_route 203.33.79.0/24 -add china_ip_route 203.33.100.0/24 -add china_ip_route 203.33.122.0/24 -add china_ip_route 203.33.129.0/24 -add china_ip_route 203.33.131.0/24 -add china_ip_route 203.33.145.0/24 -add china_ip_route 203.33.156.0/24 -add china_ip_route 203.33.158.0/23 -add china_ip_route 203.33.174.0/24 -add china_ip_route 203.33.185.0/24 -add china_ip_route 203.33.200.0/24 -add china_ip_route 203.33.202.0/23 -add china_ip_route 203.33.204.0/24 -add china_ip_route 203.33.206.0/23 -add china_ip_route 203.33.214.0/23 -add china_ip_route 203.33.224.0/23 -add china_ip_route 203.33.226.0/24 -add china_ip_route 203.33.233.0/24 -add china_ip_route 203.33.243.0/24 -add china_ip_route 203.33.250.0/24 -add china_ip_route 203.34.4.0/24 -add china_ip_route 203.34.21.0/24 -add china_ip_route 203.34.27.0/24 -add china_ip_route 203.34.39.0/24 -add china_ip_route 203.34.48.0/23 -add china_ip_route 203.34.54.0/24 -add china_ip_route 203.34.56.0/23 -add china_ip_route 203.34.67.0/24 -add china_ip_route 203.34.69.0/24 -add china_ip_route 203.34.76.0/24 -add china_ip_route 203.34.92.0/24 -add china_ip_route 203.34.106.0/24 -add china_ip_route 203.34.113.0/24 -add china_ip_route 203.34.147.0/24 -add china_ip_route 203.34.150.0/24 -add china_ip_route 203.34.152.0/23 -add china_ip_route 203.34.161.0/24 -add china_ip_route 203.34.162.0/24 -add china_ip_route 203.34.187.0/24 -add china_ip_route 203.34.192.0/22 -add china_ip_route 203.34.197.0/24 -add china_ip_route 203.34.198.0/23 -add china_ip_route 203.34.204.0/22 -add china_ip_route 203.34.232.0/24 -add china_ip_route 203.34.240.0/24 -add china_ip_route 203.34.242.0/24 -add china_ip_route 203.34.245.0/24 -add china_ip_route 203.34.251.0/24 -add china_ip_route 203.55.2.0/23 -add china_ip_route 203.55.4.0/24 -add china_ip_route 203.55.10.0/24 -add china_ip_route 203.55.13.0/24 -add china_ip_route 203.55.22.0/24 -add china_ip_route 203.55.30.0/24 -add china_ip_route 203.55.93.0/24 -add china_ip_route 203.55.101.0/24 -add china_ip_route 203.55.109.0/24 -add china_ip_route 203.55.110.0/24 -add china_ip_route 203.55.116.0/23 -add china_ip_route 203.55.119.0/24 -add china_ip_route 203.55.128.0/23 -add china_ip_route 203.55.146.0/23 -add china_ip_route 203.55.192.0/24 -add china_ip_route 203.55.196.0/24 -add china_ip_route 203.55.218.0/23 -add china_ip_route 203.55.221.0/24 -add china_ip_route 203.55.224.0/24 -add china_ip_route 203.56.1.0/24 -add china_ip_route 203.56.4.0/24 -add china_ip_route 203.56.12.0/24 -add china_ip_route 203.56.24.0/24 -add china_ip_route 203.56.38.0/24 -add china_ip_route 203.56.40.0/24 -add china_ip_route 203.56.46.0/24 -add china_ip_route 203.56.50.0/23 -add china_ip_route 203.56.52.0/22 -add china_ip_route 203.56.68.0/23 -add china_ip_route 203.56.82.0/23 -add china_ip_route 203.56.84.0/23 -add china_ip_route 203.56.95.0/24 -add china_ip_route 203.56.110.0/24 -add china_ip_route 203.56.121.0/24 -add china_ip_route 203.56.161.0/24 -add china_ip_route 203.56.169.0/24 -add china_ip_route 203.56.172.0/23 -add china_ip_route 203.56.175.0/24 -add china_ip_route 203.56.183.0/24 -add china_ip_route 203.56.185.0/24 -add china_ip_route 203.56.187.0/24 -add china_ip_route 203.56.192.0/24 -add china_ip_route 203.56.198.0/24 -add china_ip_route 203.56.201.0/24 -add china_ip_route 203.56.208.0/23 -add china_ip_route 203.56.210.0/24 -add china_ip_route 203.56.214.0/24 -add china_ip_route 203.56.216.0/24 -add china_ip_route 203.56.227.0/24 -add china_ip_route 203.56.228.0/24 -add china_ip_route 203.56.232.0/24 -add china_ip_route 203.56.240.0/24 -add china_ip_route 203.56.252.0/24 -add china_ip_route 203.56.254.0/24 -add china_ip_route 203.57.5.0/24 -add china_ip_route 203.57.6.0/24 -add china_ip_route 203.57.12.0/23 -add china_ip_route 203.57.28.0/24 -add china_ip_route 203.57.39.0/24 -add china_ip_route 203.57.46.0/24 -add china_ip_route 203.57.58.0/24 -add china_ip_route 203.57.61.0/24 -add china_ip_route 203.57.66.0/24 -add china_ip_route 203.57.69.0/24 -add china_ip_route 203.57.70.0/23 -add china_ip_route 203.57.73.0/24 -add china_ip_route 203.57.90.0/24 -add china_ip_route 203.57.101.0/24 -add china_ip_route 203.57.109.0/24 -add china_ip_route 203.57.123.0/24 -add china_ip_route 203.57.157.0/24 -add china_ip_route 203.57.200.0/24 -add china_ip_route 203.57.202.0/24 -add china_ip_route 203.57.206.0/24 -add china_ip_route 203.57.222.0/24 -add china_ip_route 203.57.224.0/20 -add china_ip_route 203.57.246.0/23 -add china_ip_route 203.57.249.0/24 -add china_ip_route 203.57.253.0/24 -add china_ip_route 203.57.254.0/23 -add china_ip_route 203.62.2.0/24 -add china_ip_route 203.62.131.0/24 -add china_ip_route 203.62.139.0/24 -add china_ip_route 203.62.161.0/24 -add china_ip_route 203.62.197.0/24 -add china_ip_route 203.62.228.0/22 -add china_ip_route 203.62.234.0/24 -add china_ip_route 203.62.246.0/24 -add china_ip_route 203.65.240.0/22 -add china_ip_route 203.76.160.0/22 -add china_ip_route 203.76.168.0/22 -add china_ip_route 203.76.208.0/21 -add china_ip_route 203.76.216.0/22 -add china_ip_route 203.76.240.0/22 -add china_ip_route 203.77.180.0/22 -add china_ip_route 203.78.48.0/20 -add china_ip_route 203.78.156.0/22 -add china_ip_route 203.79.0.0/20 -add china_ip_route 203.80.4.0/23 -add china_ip_route 203.80.32.0/20 -add china_ip_route 203.80.57.0/24 -add china_ip_route 203.80.129.0/24 -add china_ip_route 203.80.132.0/22 -add china_ip_route 203.80.140.0/22 -add china_ip_route 203.80.144.0/20 -add china_ip_route 203.81.0.0/21 -add china_ip_route 203.81.16.0/20 -add china_ip_route 203.81.244.0/22 -add china_ip_route 203.82.0.0/23 -add china_ip_route 203.82.16.0/21 -add china_ip_route 203.82.112.0/20 -add china_ip_route 203.82.224.0/20 -add china_ip_route 203.83.0.0/22 -add china_ip_route 203.83.12.0/22 -add china_ip_route 203.83.56.0/21 -add china_ip_route 203.83.224.0/20 -add china_ip_route 203.86.0.0/17 -add china_ip_route 203.86.250.0/24 -add china_ip_route 203.86.254.0/23 -add china_ip_route 203.88.32.0/19 -add china_ip_route 203.88.100.0/22 -add china_ip_route 203.88.192.0/19 -add china_ip_route 203.89.0.0/22 -add china_ip_route 203.89.100.0/22 -add china_ip_route 203.89.136.0/22 -add china_ip_route 203.89.144.0/24 -add china_ip_route 203.90.0.0/22 -add china_ip_route 203.90.8.0/21 -add china_ip_route 203.90.128.0/18 -add china_ip_route 203.90.192.0/19 -add china_ip_route 203.91.32.0/19 -add china_ip_route 203.91.96.0/20 -add china_ip_route 203.91.120.0/21 -add china_ip_route 203.92.0.0/22 -add china_ip_route 203.92.6.0/24 -add china_ip_route 203.92.160.0/19 -add china_ip_route 203.93.0.0/16 -add china_ip_route 203.94.0.0/19 -add china_ip_route 203.95.0.0/21 -add china_ip_route 203.95.96.0/19 -add china_ip_route 203.95.128.0/18 -add china_ip_route 203.95.200.0/21 -add china_ip_route 203.95.208.0/22 -add china_ip_route 203.95.224.0/19 -add china_ip_route 203.99.8.0/21 -add china_ip_route 203.99.16.0/22 -add china_ip_route 203.99.30.0/23 -add china_ip_route 203.99.80.0/20 -add china_ip_route 203.100.32.0/20 -add china_ip_route 203.100.58.0/24 -add china_ip_route 203.100.60.0/24 -add china_ip_route 203.100.63.0/24 -add china_ip_route 203.100.80.0/20 -add china_ip_route 203.100.96.0/19 -add china_ip_route 203.100.192.0/20 -add china_ip_route 203.104.32.0/20 -add china_ip_route 203.105.96.0/19 -add china_ip_route 203.105.128.0/19 -add china_ip_route 203.107.0.0/19 -add china_ip_route 203.107.32.0/20 -add china_ip_route 203.107.52.0/22 -add china_ip_route 203.107.56.0/21 -add china_ip_route 203.107.69.0/24 -add china_ip_route 203.107.70.0/23 -add china_ip_route 203.107.72.0/21 -add china_ip_route 203.107.80.0/20 -add china_ip_route 203.107.96.0/19 -add china_ip_route 203.110.160.0/19 -add china_ip_route 203.110.208.0/20 -add china_ip_route 203.110.232.0/23 -add china_ip_route 203.110.234.0/24 -add china_ip_route 203.114.80.0/20 -add china_ip_route 203.114.244.0/22 -add china_ip_route 203.118.192.0/19 -add china_ip_route 203.118.241.0/24 -add china_ip_route 203.118.248.0/22 -add china_ip_route 203.119.24.0/22 -add china_ip_route 203.119.28.0/23 -add china_ip_route 203.119.30.0/24 -add china_ip_route 203.119.32.0/24 -add china_ip_route 203.119.34.0/23 -add china_ip_route 203.119.80.0/22 -add china_ip_route 203.119.85.0/24 -add china_ip_route 203.119.113.0/24 -add china_ip_route 203.119.114.0/23 -add china_ip_route 203.119.116.0/22 -add china_ip_route 203.119.128.0/17 -add china_ip_route 203.123.58.0/24 -add china_ip_route 203.128.32.0/19 -add china_ip_route 203.128.96.0/19 -add china_ip_route 203.128.128.0/24 -add china_ip_route 203.128.225.0/24 -add china_ip_route 203.128.226.0/23 -add china_ip_route 203.128.228.0/22 -add china_ip_route 203.130.32.0/20 -add china_ip_route 203.130.49.0/24 -add china_ip_route 203.130.51.0/24 -add china_ip_route 203.130.53.0/24 -add china_ip_route 203.130.54.0/23 -add china_ip_route 203.130.56.0/22 -add china_ip_route 203.130.60.0/23 -add china_ip_route 203.132.32.0/19 -add china_ip_route 203.134.240.0/22 -add china_ip_route 203.134.246.0/23 -add china_ip_route 203.135.96.0/19 -add china_ip_route 203.135.160.0/20 -add china_ip_route 203.142.12.0/23 -add china_ip_route 203.142.219.0/24 -add china_ip_route 203.142.224.0/19 -add china_ip_route 203.144.96.0/19 -add china_ip_route 203.145.0.0/19 -add china_ip_route 203.148.0.0/18 -add china_ip_route 203.148.64.0/20 -add china_ip_route 203.148.80.0/22 -add china_ip_route 203.148.86.0/23 -add china_ip_route 203.149.92.0/22 -add china_ip_route 203.152.64.0/19 -add china_ip_route 203.152.128.0/19 -add china_ip_route 203.153.0.0/22 -add china_ip_route 203.156.192.0/18 -add china_ip_route 203.158.16.0/21 -add china_ip_route 203.160.129.0/24 -add china_ip_route 203.160.192.0/19 -add china_ip_route 203.161.0.0/22 -add china_ip_route 203.161.180.0/24 -add china_ip_route 203.161.183.0/24 -add china_ip_route 203.161.192.0/19 -add china_ip_route 203.166.160.0/19 -add china_ip_route 203.167.28.0/22 -add china_ip_route 203.168.0.0/19 -add china_ip_route 203.170.58.0/23 -add china_ip_route 203.171.0.0/22 -add china_ip_route 203.171.208.0/24 -add china_ip_route 203.171.224.0/20 -add china_ip_route 203.174.4.0/24 -add china_ip_route 203.174.6.0/24 -add china_ip_route 203.174.96.0/20 -add china_ip_route 203.175.128.0/19 -add china_ip_route 203.175.192.0/18 -add china_ip_route 203.176.0.0/18 -add china_ip_route 203.176.64.0/19 -add china_ip_route 203.176.168.0/21 -add china_ip_route 203.184.80.0/20 -add china_ip_route 203.187.160.0/19 -add china_ip_route 203.189.0.0/23 -add china_ip_route 203.189.6.0/23 -add china_ip_route 203.189.112.0/22 -add china_ip_route 203.189.192.0/19 -add china_ip_route 203.189.240.0/22 -add china_ip_route 203.190.96.0/20 -add china_ip_route 203.190.249.0/24 -add china_ip_route 203.191.0.0/23 -add china_ip_route 203.191.2.0/24 -add china_ip_route 203.191.5.0/24 -add china_ip_route 203.191.7.0/24 -add china_ip_route 203.191.29.0/24 -add china_ip_route 203.191.31.0/24 -add china_ip_route 203.191.64.0/18 -add china_ip_route 203.191.133.0/24 -add china_ip_route 203.191.144.0/20 -add china_ip_route 203.192.0.0/19 -add china_ip_route 203.193.224.0/19 -add china_ip_route 203.195.64.0/19 -add china_ip_route 203.195.128.0/17 -add china_ip_route 203.196.0.0/21 -add china_ip_route 203.196.12.0/22 -add china_ip_route 203.196.28.0/22 -add china_ip_route 203.201.181.0/24 -add china_ip_route 203.201.182.0/24 -add china_ip_route 203.202.236.0/22 -add china_ip_route 203.205.64.0/19 -add china_ip_route 203.207.64.0/18 -add china_ip_route 203.207.128.0/17 -add china_ip_route 203.208.0.0/20 -add china_ip_route 203.208.16.0/22 -add china_ip_route 203.208.32.0/19 -add china_ip_route 203.209.224.0/19 -add china_ip_route 203.212.0.0/20 -add china_ip_route 203.212.80.0/20 -add china_ip_route 203.217.164.0/22 -add china_ip_route 203.223.0.0/20 -add china_ip_route 204.55.160.0/24 -add china_ip_route 204.74.96.0/24 -add china_ip_route 204.114.176.0/23 -add china_ip_route 207.89.20.0/24 -add china_ip_route 210.2.0.0/23 -add china_ip_route 210.2.2.0/24 -add china_ip_route 210.2.5.0/24 -add china_ip_route 210.2.6.0/23 -add china_ip_route 210.2.8.0/21 -add china_ip_route 210.2.24.0/21 -add china_ip_route 210.5.0.0/19 -add china_ip_route 210.5.60.0/24 -add china_ip_route 210.5.128.0/19 -add china_ip_route 210.7.56.0/21 -add china_ip_route 210.12.0.0/15 -add china_ip_route 210.14.64.0/19 -add china_ip_route 210.14.112.0/20 -add china_ip_route 210.14.128.0/17 -add china_ip_route 210.15.0.0/17 -add china_ip_route 210.15.128.0/18 -add china_ip_route 210.16.128.0/21 -add china_ip_route 210.16.136.0/22 -add china_ip_route 210.16.156.0/22 -add china_ip_route 210.16.160.0/19 -add china_ip_route 210.21.0.0/16 -add china_ip_route 210.22.0.0/16 -add china_ip_route 210.23.32.0/19 -add china_ip_route 210.25.0.0/16 -add china_ip_route 210.26.0.0/15 -add china_ip_route 210.28.0.0/14 -add china_ip_route 210.32.0.0/12 -add china_ip_route 210.51.0.0/16 -add china_ip_route 210.52.0.0/18 -add china_ip_route 210.52.64.0/23 -add china_ip_route 210.52.66.0/24 -add china_ip_route 210.52.68.0/22 -add china_ip_route 210.52.72.0/21 -add china_ip_route 210.52.80.0/20 -add china_ip_route 210.52.96.0/21 -add china_ip_route 210.52.104.0/22 -add china_ip_route 210.52.108.0/24 -add china_ip_route 210.52.110.0/23 -add china_ip_route 210.52.112.0/20 -add china_ip_route 210.52.128.0/17 -add china_ip_route 210.53.0.0/16 -add china_ip_route 210.56.192.0/19 -add china_ip_route 210.72.0.0/14 -add china_ip_route 210.76.0.0/15 -add china_ip_route 210.78.0.0/16 -add china_ip_route 210.79.64.0/18 -add china_ip_route 210.79.224.0/19 -add china_ip_route 210.82.0.0/15 -add china_ip_route 210.87.128.0/18 -add china_ip_route 210.185.192.0/18 -add china_ip_route 210.192.96.0/19 -add china_ip_route 211.64.0.0/13 -add china_ip_route 211.80.0.0/12 -add china_ip_route 211.96.0.0/14 -add china_ip_route 211.100.0.0/17 -add china_ip_route 211.100.128.0/19 -add china_ip_route 211.100.160.0/20 -add china_ip_route 211.100.184.0/21 -add china_ip_route 211.100.192.0/18 -add china_ip_route 211.101.0.0/16 -add china_ip_route 211.102.0.0/15 -add china_ip_route 211.136.0.0/13 -add china_ip_route 211.144.0.0/13 -add china_ip_route 211.152.0.0/17 -add china_ip_route 211.152.134.0/23 -add china_ip_route 211.152.140.0/22 -add china_ip_route 211.152.150.0/23 -add china_ip_route 211.152.157.0/24 -add china_ip_route 211.152.160.0/19 -add china_ip_route 211.152.192.0/18 -add china_ip_route 211.153.0.0/16 -add china_ip_route 211.154.0.0/19 -add china_ip_route 211.154.32.0/20 -add china_ip_route 211.154.48.0/21 -add china_ip_route 211.154.64.0/18 -add china_ip_route 211.154.128.0/17 -add china_ip_route 211.155.0.0/18 -add china_ip_route 211.155.67.0/24 -add china_ip_route 211.155.68.0/24 -add china_ip_route 211.155.72.0/21 -add china_ip_route 211.155.80.0/20 -add china_ip_route 211.155.97.0/24 -add china_ip_route 211.155.98.0/23 -add china_ip_route 211.155.100.0/22 -add china_ip_route 211.155.104.0/21 -add china_ip_route 211.155.113.0/24 -add china_ip_route 211.155.116.0/22 -add china_ip_route 211.155.120.0/21 -add china_ip_route 211.155.128.0/17 -add china_ip_route 211.156.0.0/18 -add china_ip_route 211.156.64.0/19 -add china_ip_route 211.156.96.0/21 -add china_ip_route 211.156.104.0/22 -add china_ip_route 211.156.108.0/23 -add china_ip_route 211.156.112.0/20 -add china_ip_route 211.156.128.0/17 -add china_ip_route 211.157.0.0/16 -add china_ip_route 211.158.0.0/15 -add china_ip_route 211.160.0.0/13 -add china_ip_route 212.64.0.0/17 -add china_ip_route 212.129.128.0/17 -add china_ip_route 213.199.169.0/24 -add china_ip_route 218.0.0.0/12 -add china_ip_route 218.16.0.0/13 -add china_ip_route 218.24.0.0/14 -add china_ip_route 218.28.0.0/15 -add china_ip_route 218.30.0.0/19 -add china_ip_route 218.30.64.0/18 -add china_ip_route 218.30.128.0/18 -add china_ip_route 218.30.192.0/19 -add china_ip_route 218.30.224.0/20 -add china_ip_route 218.30.240.0/21 -add china_ip_route 218.30.248.0/22 -add china_ip_route 218.30.252.0/25 -add china_ip_route 218.30.252.128/26 -add china_ip_route 218.30.252.194/31 -add china_ip_route 218.30.252.196/30 -add china_ip_route 218.30.252.200/29 -add china_ip_route 218.30.252.208/28 -add china_ip_route 218.30.252.224/27 -add china_ip_route 218.30.253.0/24 -add china_ip_route 218.30.254.0/23 -add china_ip_route 218.31.0.0/16 -add china_ip_route 218.56.0.0/13 -add china_ip_route 218.64.0.0/11 -add china_ip_route 218.96.0.0/15 -add china_ip_route 218.98.0.0/18 -add china_ip_route 218.98.96.0/19 -add china_ip_route 218.98.128.0/19 -add china_ip_route 218.98.192.0/18 -add china_ip_route 218.99.0.0/16 -add china_ip_route 218.100.96.0/19 -add china_ip_route 218.100.128.0/17 -add china_ip_route 218.104.0.0/14 -add china_ip_route 218.108.0.0/15 -add china_ip_route 218.185.192.0/19 -add china_ip_route 218.192.0.0/12 -add china_ip_route 218.240.0.0/14 -add china_ip_route 218.244.0.0/15 -add china_ip_route 218.246.0.0/19 -add china_ip_route 218.246.32.0/20 -add china_ip_route 218.246.48.0/21 -add china_ip_route 218.246.56.0/23 -add china_ip_route 218.246.58.0/24 -add china_ip_route 218.246.60.0/22 -add china_ip_route 218.246.64.0/18 -add china_ip_route 218.246.129.0/24 -add china_ip_route 218.246.131.0/24 -add china_ip_route 218.246.132.0/23 -add china_ip_route 218.246.134.0/24 -add china_ip_route 218.246.139.0/24 -add china_ip_route 218.246.144.0/20 -add china_ip_route 218.246.160.0/19 -add china_ip_route 218.246.192.0/18 -add china_ip_route 218.247.0.0/18 -add china_ip_route 218.247.96.0/19 -add china_ip_route 218.247.128.0/17 -add china_ip_route 218.249.0.0/16 -add china_ip_route 219.72.0.0/16 -add china_ip_route 219.82.0.0/16 -add china_ip_route 219.83.128.0/17 -add china_ip_route 219.90.68.0/22 -add china_ip_route 219.90.72.0/21 -add china_ip_route 219.128.0.0/11 -add china_ip_route 219.216.0.0/13 -add china_ip_route 219.224.0.0/13 -add china_ip_route 219.232.0.0/15 -add china_ip_route 219.234.0.0/21 -add china_ip_route 219.234.9.0/24 -add china_ip_route 219.234.10.0/23 -add china_ip_route 219.234.12.0/22 -add china_ip_route 219.234.32.0/19 -add china_ip_route 219.234.64.0/18 -add china_ip_route 219.234.128.0/17 -add china_ip_route 219.235.0.0/16 -add china_ip_route 219.236.0.0/14 -add china_ip_route 219.242.0.0/15 -add china_ip_route 219.244.0.0/14 -add china_ip_route 220.101.192.0/18 -add china_ip_route 220.112.0.0/14 -add china_ip_route 220.152.128.0/17 -add china_ip_route 220.154.0.0/16 -add china_ip_route 220.155.0.0/21 -add china_ip_route 220.155.9.0/24 -add china_ip_route 220.155.10.0/23 -add china_ip_route 220.155.12.0/22 -add china_ip_route 220.155.16.0/21 -add china_ip_route 220.155.24.0/22 -add china_ip_route 220.155.28.0/23 -add china_ip_route 220.155.31.0/24 -add china_ip_route 220.155.32.0/19 -add china_ip_route 220.155.64.0/18 -add china_ip_route 220.155.128.0/17 -add china_ip_route 220.158.241.0/24 -add china_ip_route 220.158.243.0/24 -add china_ip_route 220.160.0.0/11 -add china_ip_route 220.192.0.0/12 -add china_ip_route 220.231.0.0/18 -add china_ip_route 220.231.128.0/17 -add china_ip_route 220.232.64.0/18 -add china_ip_route 220.234.0.0/16 -add china_ip_route 220.242.0.0/23 -add china_ip_route 220.242.6.0/24 -add china_ip_route 220.242.8.0/24 -add china_ip_route 220.242.12.0/23 -add china_ip_route 220.242.14.0/24 -add china_ip_route 220.242.17.0/24 -add china_ip_route 220.242.18.0/23 -add china_ip_route 220.242.20.0/24 -add china_ip_route 220.242.32.0/20 -add china_ip_route 220.242.48.0/23 -add china_ip_route 220.242.53.0/24 -add china_ip_route 220.242.55.0/24 -add china_ip_route 220.242.56.0/22 -add china_ip_route 220.242.60.0/23 -add china_ip_route 220.242.62.0/24 -add china_ip_route 220.242.64.0/19 -add china_ip_route 220.242.96.0/20 -add china_ip_route 220.242.112.0/21 -add china_ip_route 220.242.120.0/22 -add china_ip_route 220.242.124.0/23 -add china_ip_route 220.242.126.0/24 -add china_ip_route 220.242.134.0/23 -add china_ip_route 220.242.173.0/24 -add china_ip_route 220.242.183.0/24 -add china_ip_route 220.242.197.0/24 -add china_ip_route 220.242.205.0/24 -add china_ip_route 220.242.207.0/24 -add china_ip_route 220.242.217.0/24 -add china_ip_route 220.242.218.0/23 -add china_ip_route 220.242.220.0/22 -add china_ip_route 220.242.224.0/19 -add china_ip_route 220.243.0.0/17 -add china_ip_route 220.243.128.0/18 -add china_ip_route 220.243.192.0/23 -add china_ip_route 220.243.196.0/24 -add china_ip_route 220.243.198.0/23 -add china_ip_route 220.243.201.0/24 -add china_ip_route 220.243.204.0/24 -add china_ip_route 220.243.214.0/24 -add china_ip_route 220.243.216.0/23 -add china_ip_route 220.243.218.0/24 -add china_ip_route 220.243.220.0/23 -add china_ip_route 220.243.223.0/24 -add china_ip_route 220.243.225.0/24 -add china_ip_route 220.243.226.0/23 -add china_ip_route 220.243.229.0/24 -add china_ip_route 220.243.230.0/24 -add china_ip_route 220.243.233.0/24 -add china_ip_route 220.243.234.0/23 -add china_ip_route 220.243.237.0/24 -add china_ip_route 220.243.238.0/23 -add china_ip_route 220.243.243.0/24 -add china_ip_route 220.243.244.0/24 -add china_ip_route 220.243.246.0/23 -add china_ip_route 220.243.249.0/24 -add china_ip_route 220.243.250.0/24 -add china_ip_route 220.243.252.0/24 -add china_ip_route 220.243.254.0/23 -add china_ip_route 220.247.136.0/21 -add china_ip_route 220.248.0.0/14 -add china_ip_route 220.252.0.0/16 -add china_ip_route 221.0.0.0/13 -add china_ip_route 221.8.0.0/14 -add china_ip_route 221.12.0.0/17 -add china_ip_route 221.12.128.0/18 -add china_ip_route 221.13.0.0/16 -add china_ip_route 221.14.0.0/15 -add china_ip_route 221.122.0.0/15 -add china_ip_route 221.128.128.0/17 -add china_ip_route 221.129.0.0/16 -add china_ip_route 221.130.0.0/15 -add china_ip_route 221.133.224.0/19 -add china_ip_route 221.136.0.0/15 -add china_ip_route 221.172.0.0/14 -add china_ip_route 221.176.0.0/19 -add china_ip_route 221.176.32.0/20 -add china_ip_route 221.176.48.0/21 -add china_ip_route 221.176.56.0/24 -add china_ip_route 221.176.58.0/23 -add china_ip_route 221.176.60.0/22 -add china_ip_route 221.176.64.0/18 -add china_ip_route 221.176.128.0/17 -add china_ip_route 221.177.0.0/16 -add china_ip_route 221.178.0.0/15 -add china_ip_route 221.180.0.0/14 -add china_ip_route 221.192.0.0/14 -add china_ip_route 221.196.0.0/15 -add china_ip_route 221.198.0.0/16 -add china_ip_route 221.199.0.0/17 -add china_ip_route 221.199.128.0/18 -add china_ip_route 221.199.192.0/20 -add china_ip_route 221.199.224.0/19 -add china_ip_route 221.200.0.0/13 -add china_ip_route 221.208.0.0/12 -add china_ip_route 221.224.0.0/12 -add china_ip_route 222.16.0.0/12 -add china_ip_route 222.32.0.0/11 -add china_ip_route 222.64.0.0/11 -add china_ip_route 222.125.0.0/16 -add china_ip_route 222.126.128.0/19 -add china_ip_route 222.126.160.0/21 -add china_ip_route 222.126.168.0/22 -add china_ip_route 222.126.172.0/23 -add china_ip_route 222.126.174.40/29 -add china_ip_route 222.126.174.76/30 -add china_ip_route 222.126.174.88/29 -add china_ip_route 222.126.174.144/28 -add china_ip_route 222.126.178.0/23 -add china_ip_route 222.126.180.0/22 -add china_ip_route 222.126.184.0/21 -add china_ip_route 222.126.192.0/21 -add china_ip_route 222.126.200.104/29 -add china_ip_route 222.126.206.0/23 -add china_ip_route 222.126.208.0/22 -add china_ip_route 222.126.212.0/26 -add china_ip_route 222.126.212.64/27 -add china_ip_route 222.126.212.96/28 -add china_ip_route 222.126.212.112/29 -add china_ip_route 222.126.212.128/25 -add china_ip_route 222.126.213.0/24 -add china_ip_route 222.126.214.0/23 -add china_ip_route 222.126.216.0/21 -add china_ip_route 222.126.224.0/19 -add china_ip_route 222.128.0.0/12 -add china_ip_route 222.160.0.0/14 -add china_ip_route 222.168.0.0/13 -add china_ip_route 222.176.0.0/12 -add china_ip_route 222.192.0.0/11 -add china_ip_route 222.240.0.0/13 -add china_ip_route 222.248.0.0/15 -add china_ip_route 223.0.0.0/12 -add china_ip_route 223.20.0.0/15 -add china_ip_route 223.27.184.0/22 -add china_ip_route 223.29.208.0/22 -add china_ip_route 223.29.252.0/22 -add china_ip_route 223.64.0.0/11 -add china_ip_route 223.96.0.0/12 -add china_ip_route 223.112.0.0/14 -add china_ip_route 223.116.0.0/15 -add china_ip_route 223.120.0.0/13 -add china_ip_route 223.128.0.0/15 -add china_ip_route 223.144.0.0/12 -add china_ip_route 223.160.0.0/14 -add china_ip_route 223.166.0.0/15 -add china_ip_route 223.192.0.0/15 -add china_ip_route 223.198.0.0/15 -add china_ip_route 223.201.8.0/21 -add china_ip_route 223.201.16.0/20 -add china_ip_route 223.201.32.0/19 -add china_ip_route 223.201.64.0/18 -add china_ip_route 223.201.128.0/17 -add china_ip_route 223.202.0.0/15 -add china_ip_route 223.208.0.0/13 -add china_ip_route 223.220.0.0/15 -add china_ip_route 223.223.176.0/20 -add china_ip_route 223.223.192.0/20 -add china_ip_route 223.240.0.0/13 -add china_ip_route 223.248.0.0/14 -add china_ip_route 223.252.128.0/19 -add china_ip_route 223.252.192.0/18 -add china_ip_route 223.254.0.0/16 -add china_ip_route 223.255.0.0/17 -add china_ip_route 223.255.236.0/22 -add china_ip_route 223.255.252.0/23 diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/lhie1.yaml b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/lhie1.yaml index e310322dad..b63075d868 100644 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/lhie1.yaml +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/lhie1.yaml @@ -1,292 +1,53 @@ -rule-providers: - Reject: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Reject.yaml' - path: ./Rules/Reject - interval: 86400 - Special: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Special.yaml' - path: ./Rules/Special - interval: 86400 - Netflix: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Netflix.yaml' - path: ./Rules/Media/Netflix - interval: 86400 - Spotify: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Spotify.yaml' - path: ./Rules/Media/Spotify - interval: 86400 - # YouTube Music: - # type: http - # behavior: classical - # url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/YouTube%20Music.yaml' - # path: ./Rules/Media/YouTube_Music - # interval: 86400 - YouTube: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/YouTube.yaml' - path: ./Rules/Media/YouTube - interval: 86400 - Bilibili: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Bilibili.yaml' - path: ./Rules/Media/Bilibili - interval: 86400 - iQiyi: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/iQiyi.yaml' - path: ./Rules/Media/iQiyi - interval: 86400 - Letv: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Letv.yaml' - path: ./Rules/Media/Letv - interval: 86400 - # MOO: - # type: http - # behavior: classical - # url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/MOO.yaml' - # path: ./Rules/Media/MOO - # interval: 86400 - Netease Music: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Netease%20Music.yaml' - path: ./Rules/Media/Netease_Music - interval: 86400 - Tencent Video: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Tencent%20Video.yaml' - path: ./Rules/Media/Tencent_Video - interval: 86400 - Youku: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Youku.yaml' - path: ./Rules/Media/Youku - interval: 86400 - ABC: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/ABC.yaml' - path: ./Rules/Media/ABC - interval: 86400 - Abema TV: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Abema%20TV.yaml' - path: ./Rules/Media/Abema_TV - interval: 86400 - Amazon: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Amazon.yaml' - path: ./Rules/Media/Amazon - interval: 86400 - Apple News: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Apple%20News.yaml' - path: ./Rules/Media/Apple_News - interval: 86400 - Apple TV: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Apple%20TV.yaml' - path: ./Rules/Media/Apple_TV - interval: 86400 - Bahamut: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Bahamut.yaml' - path: ./Rules/Media/Bahamut - interval: 86400 - BBC iPlayer: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/BBC%20iPlayer.yaml' - path: ./Rules/Media/BBC_iPlayer - interval: 86400 - DAZN: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/DAZN.yaml' - path: ./Rules/Media/DAZN - interval: 86400 - Disney Plus: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Disney%20Plus.yaml' - path: ./Rules/Media/Disney_Plus - interval: 86400 - encoreTVB: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/encoreTVB.yaml' - path: ./Rules/Media/encoreTVB - interval: 86400 - Fox Now: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Fox%20Now.yaml' - path: ./Rules/Media/Fox_Now - interval: 86400 - Fox+: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Fox%2B.yaml' - path: ./Rules/Media/Fox+ - interval: 86400 - HBO: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/HBO.yaml' - path: ./Rules/Media/HBO - interval: 86400 - Hulu Japan: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Hulu%20Japan.yaml' - path: ./Rules/Media/Hulu_Japan - interval: 86400 - Hulu: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Hulu.yaml' - path: ./Rules/Media/Hulu - interval: 86400 - Japonx: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Japonx.yaml' - path: ./Rules/Media/Japonx - interval: 86400 - JOOX: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/JOOX.yaml' - path: ./Rules/Media/JOOX - interval: 86400 - KKBOX: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/KKBOX.yaml' - path: ./Rules/Media/KKBOX - interval: 86400 - KKTV: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/KKTV.yaml' - path: ./Rules/Media/KKTV - interval: 86400 - Line TV: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Line%20TV.yaml' - path: ./Rules/Media/Line_TV - interval: 86400 - myTV SUPER: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/myTV%20SUPER.yaml' - path: ./Rules/Media/myTV_SUPER - interval: 86400 - Pandora: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Pandora.yaml' - path: ./Rules/Media/Pandora - interval: 86400 - PBS: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/PBS.yaml' - path: ./Rules/Media/PBS - interval: 86400 - Pornhub: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Pornhub.yaml' - path: ./Rules/Media/Pornhub - interval: 86400 - Soundcloud: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/Soundcloud.yaml' - path: ./Rules/Media/Soundcloud - interval: 86400 - ViuTV: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Media/ViuTV.yaml' - path: ./Rules/Media/ViuTV - interval: 86400 - Telegram: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Telegram.yaml' - path: ./Rules/Telegram - interval: 86400 - Steam: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Steam.yaml' - path: ./Rules/Steam - interval: 86400 - Speedtest: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Speedtest.yaml' - path: ./Rules/Speedtest - interval: 86400 - PayPal: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/PayPal.yaml' - path: ./Rules/PayPal - interval: 86400 - Microsoft: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Microsoft.yaml' - path: ./Rules/Microsoft - interval: 86400 - PROXY: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Proxy.yaml' - path: ./Rules/Proxy - interval: 86400 - Domestic: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Domestic.yaml' - path: ./Rules/Domestic - interval: 86400 - Apple: - type: http - behavior: classical - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Apple.yaml' - path: ./Rules/Apple - interval: 86400 - Domestic IPs: - type: http - behavior: ipcidr - url: 'https://gitee.com/lhie1/Rules/raw/master/Clash/Provider/Domestic%20IPs.yaml' - path: ./Rules/Domestic_IPs - interval: 86400 +rules: +- RULE-SET,Reject,AdBlock +- RULE-SET,Special,DIRECT +- RULE-SET,Netflix,Netflix +- RULE-SET,Spotify,Spotify +- RULE-SET,YouTube,YouTube +- RULE-SET,Bilibili,AsianTV +- RULE-SET,iQiyi,AsianTV +- RULE-SET,Letv,AsianTV +- RULE-SET,Netease Music,AsianTV +- RULE-SET,Tencent Video,AsianTV +- RULE-SET,Youku,AsianTV +- RULE-SET,ABC,GlobalTV +- RULE-SET,Abema TV,GlobalTV +- RULE-SET,Amazon,GlobalTV +- RULE-SET,Apple News,GlobalTV +- RULE-SET,Apple TV,GlobalTV +- RULE-SET,Bahamut,GlobalTV +- RULE-SET,BBC iPlayer,GlobalTV +- RULE-SET,DAZN,GlobalTV +- RULE-SET,Disney Plus,GlobalTV +- RULE-SET,encoreTVB,GlobalTV +- RULE-SET,Fox Now,GlobalTV +- RULE-SET,Fox+,GlobalTV +- RULE-SET,HBO,GlobalTV +- RULE-SET,Hulu Japan,GlobalTV +- RULE-SET,Hulu,GlobalTV +- RULE-SET,Japonx,GlobalTV +- RULE-SET,JOOX,GlobalTV +- RULE-SET,KKBOX,GlobalTV +- RULE-SET,KKTV,GlobalTV +- RULE-SET,Line TV,GlobalTV +- RULE-SET,myTV SUPER,GlobalTV +- RULE-SET,Pandora,GlobalTV +- RULE-SET,PBS,GlobalTV +- RULE-SET,Pornhub,GlobalTV +- RULE-SET,Soundcloud,GlobalTV +- RULE-SET,ViuTV,GlobalTV +- RULE-SET,Telegram,Telegram +- RULE-SET,Steam,Steam +- RULE-SET,Speedtest,Speedtest +- RULE-SET,PayPal,PayPal +- RULE-SET,Microsoft,Microsoft +- RULE-SET,PROXY,Proxy +- RULE-SET,Apple,Apple +- RULE-SET,Domestic,Domestic +- RULE-SET,Domestic IPs,Domestic +- RULE-SET,LAN,DIRECT +- GEOIP,CN,Domestic +- MATCH,Others script: code: | def main(ctx, metadata): @@ -336,7 +97,8 @@ script: "PROXY": "Proxy", "Apple": "Apple", "Domestic": "Domestic", - "Domestic IPs": "Domestic" + "Domestic IPs": "Domestic", + "LAN": "DIRECT" } port = int(metadata["dst_port"]) @@ -353,73 +115,291 @@ script: return "DIRECT" code = ctx.geoip(ip) - if code == "LAN": - return "DIRECT" if code == "CN": return "Domestic" return "Others" - -rules: -##source:lhie1 -- RULE-SET,Reject,AdBlock -- RULE-SET,Special,DIRECT - -- RULE-SET,Netflix,Netflix -- RULE-SET,Spotify,Spotify - -# - RULE-SET,YouTube Music,YouTube -- RULE-SET,YouTube,YouTube - -- RULE-SET,Bilibili,AsianTV -- RULE-SET,iQiyi,AsianTV -- RULE-SET,Letv,AsianTV -# - RULE-SET,MOO,AsianTV -- RULE-SET,Netease Music,AsianTV -- RULE-SET,Tencent Video,AsianTV -- RULE-SET,Youku,AsianTV - -- RULE-SET,ABC,GlobalTV -- RULE-SET,Abema TV,GlobalTV -- RULE-SET,Amazon,GlobalTV -- RULE-SET,Apple News,GlobalTV -- RULE-SET,Apple TV,GlobalTV -- RULE-SET,Bahamut,GlobalTV -- RULE-SET,BBC iPlayer,GlobalTV -- RULE-SET,DAZN,GlobalTV -- RULE-SET,Disney Plus,GlobalTV -- RULE-SET,encoreTVB,GlobalTV -- RULE-SET,Fox Now,GlobalTV -- RULE-SET,Fox+,GlobalTV -- RULE-SET,HBO,GlobalTV -- RULE-SET,Hulu Japan,GlobalTV -- RULE-SET,Hulu,GlobalTV -- RULE-SET,Japonx,GlobalTV -- RULE-SET,JOOX,GlobalTV -- RULE-SET,KKBOX,GlobalTV -- RULE-SET,KKTV,GlobalTV -- RULE-SET,Line TV,GlobalTV -- RULE-SET,myTV SUPER,GlobalTV -- RULE-SET,Pandora,GlobalTV -- RULE-SET,PBS,GlobalTV -- RULE-SET,Pornhub,GlobalTV -- RULE-SET,Soundcloud,GlobalTV -- RULE-SET,ViuTV,GlobalTV - -- RULE-SET,Telegram,Telegram -- RULE-SET,Steam,Steam -- RULE-SET,Speedtest,Speedtest -- RULE-SET,PayPal,PayPal -- RULE-SET,Microsoft,Microsoft - -- RULE-SET,PROXY,Proxy - -- RULE-SET,Apple,Apple - -- RULE-SET,Domestic,Domestic -- RULE-SET,Domestic IPs,Domestic - -- GEOIP,CN,Domestic -- MATCH,Others - +rule-providers: + Reject: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/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 + path: "./Rules/Special" + interval: 86400 + Netflix: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/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 + 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 + 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 + path: "./Rules/Media/Bilibili" + interval: 86400 + iQiyi: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/iQiyi.yaml + path: "./Rules/Media/iQiyi" + interval: 86400 + Letv: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/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 + 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 + 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 + path: "./Rules/Media/Youku" + interval: 86400 + ABC: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/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 + 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 + 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 + 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 + 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 + 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 + 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 + path: "./Rules/Media/DAZN" + interval: 86400 + Disney Plus: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/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 + 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 + 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 + path: "./Rules/Media/Fox+" + interval: 86400 + HBO: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/Clash/Provider/Media/HBO.yaml + path: "./Rules/Media/HBO" + interval: 86400 + Hulu Japan: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + path: "./Rules/Media/ViuTV" + interval: 86400 + Telegram: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/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 + path: "./Rules/Steam" + interval: 86400 + Speedtest: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/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 + path: "./Rules/PayPal" + interval: 86400 + Microsoft: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/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 + path: "./Rules/Proxy" + interval: 86400 + Domestic: + type: http + behavior: classical + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/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 + path: "./Rules/Apple" + interval: 86400 + Domestic IPs: + type: http + behavior: ipcidr + url: https://cdn.jsdelivr.net/gh/lhie1/Rules@master/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 + path: "./Rules/LAN" + interval: 86400 diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/openclash_version b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/openclash_version index 9762aadfe3..c5ff8af338 100644 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/openclash_version +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/openclash_version @@ -1,2 +1,2 @@ -v0.41.06-beta -data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYQAAAAqCAMAAACEAtzLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdBQzk5OTJGMzMyMTExRUI4QzcwQjRGQ0M2MjJDMzA0IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdBQzk5OTMwMzMyMTExRUI4QzcwQjRGQ0M2MjJDMzA0Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6N0FDOTk5MkQzMzIxMTFFQjhDNzBCNEZDQzYyMkMzMDQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6N0FDOTk5MkUzMzIxMTFFQjhDNzBCNEZDQzYyMkMzMDQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5HbDnDAAADAFBMVEW6uro6lcoFaaJkq9MFbanh7/djlbFISEilpaWKioqGv98Kcq11tdkdcqLR0dEGVYKxytk9PT0jhbyenp6CgoIGXpHv9Pcwk8sHcKzR5vJFgKI1dZre3t61tbVFkr0Vapo/Pz9ubm6StcmizOXa2tobhcHn5+fOzs5Ui6vR4emCrscEU4CRkZEHZp1FRUVLS0sIWokFZZtycnJXlbgkapKy0eJ3d3eFhYUkeqqcnJxiYmJjnLyixtq/v7+srKx4eHiz1uqhoaFFmsrg4OCUxuIKdbJDQ0M0faZBQUEKaqAEYJQEWYoIZJmUlJQqjMXCwsJqamoJYpVXpdLIyMjw9PcHVoQXgLzFxcVAQEDAwMDR3+gIbaXB1eCiwNK2trbKysoHXI4gdaaCss5lZWVgYGDB2eeEscwYbZ0XYo1Kn8+kzuaNjY0FcrCDqsGTxOAEXI4nicGDq8JnrtZDfqCSvtYEYphHnMw2ksavr690dHQJWIWJweJzn7l0sdUmb5lFia81h7UBcrNZWVlTU1NRUVFUVFRVVVVSUlILfL0FdrcKe7wHeLlWVlYOgMAOf8ADdLQEdrYDdLUDdbUEdbYSg8MSg8QShMQThMUAcrIGd7hXV1cOf78Nfr8Nfr4Mfb4Mfb0JeroJe7sJersIeboIebk6OjqqqqrV1dXU1NSrq6vC3u6pqanw9/s7OzuAgIB+fn719fWBgYGEvd2EvN3q6urB3u709PTz8/OFvt5MTEyDvNx/f3/B3e2CqcBJns4IV4TB3e7o6OiEtNDg6u+hv9CFvd6Fvd1Hm8yXl5dGm8sIaJ8UXonW1taErMIsj8fA1N8JeLgFdLTC3u9Vos/B2+qDr8iEu9uEq8IHdbLg6vDC3+9EmcrC3OtHmsmixNejo6NIi7KEtM91qMVlp82RuM/B1+PD3+9Inc1Inc4ab6CAudkFZ6AGXY/Q5PAHWIcCc7QRgsMPgMEQgcJaWlpfX19NTU1eXl5cXFxbW1tPT09QUFBYWFhdXV1OTk7///////8p4/DxAAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AU/cHJQAADGFJREFUeNrsVwlYVOUaHhAYtoRhIEEhWVQMdEbUwEspAoqgKC7ALZhcUm9qKGapbbe6jggO0817u0tS3UQZ1ikR2TTFNVMrNcuyzbJ9se6Wlhov91/OmXPODCjPreepmcf3efj/b//++d4z5x9UXV2N9438zhUw5u9OiH4PWru6VF3prkEBIeFvTol+YV2qxpEXXARj/uqc6GdV3XfBZUj4i5PiQdXIH10FY/7lpOin+vEaCb84XImE/zgrVN+7DK6R8CvAvH87K1Q/uAyukfBrIOExZ4Xqvy6DeX90VnRLQvC4cePuivr5xzQ/OHi+TYkKDu5NTkpwSm9JeKpHHFvh67u4W89jbouPSdpit25CFvv6rjimLPag/2BljC98n/r/oVpjj+TZjWBIP5y85icieFywQm/EYZucgzm9KfEKXulls3lP94QJ7PN4unXjmgn42pQOfOYQ4ObJkifY9M+Y3qGM8pVVsUeHb8fTV4YDCSnNwKA6rTaWdAr+qSSMwzi5ah6LdBvXwLCfmYRnekA7cj/6cNRNsA52cLlZgXZBPrbCinfsAwZbcdOoDz/KFaNWALm3v/pqQYd9i/Znem7fs49DdVmJ5HS0RWko9Nq24Ms/EYQEhR4FRAniYbSV9qaETqPrZbN5/+ge04ABDxAYsMTBZQUZL5fZA/6OfcQSBNLc/sA0qnYAr1L9gYnPKsLaxSrd4Eo+DpXD2NqSNRlqvV6n0Zin93bYicEKvoKDo7onQT0EqYJYg9md3eWKdIk1JBKSg4OT5Y+LUiUkPNs9/BE4otDPL7s/rHaewWHwMqCdK4fePGXAO/bJVgyY4TexcIQB/lT1JByMyM7KCpmoDGunVaZ1uMlqd3RMk/kEdHTIY0TYk9AIbeRaJpn1VKjBNqZtQ42wHk4H6i7XoS65jry5qLeOXiKNdSwOSGZqTTJTOGzV12rRLH0nzMpcqfjl4HSa1ngbKVIHXjixhppqEoXIqNuoOlt+9OvKBAwmjy2XlmBCWdl4vDWRKjMAtzIFTuL2PZ+inSt79ux5CyeVAWVuwAy6+72F8WSbibf3ZJV1AzLomfTy8Jwp5J2kxztJ+4lDIEZ+vVjb7bNVFQpsAypKRaWkpKKCkCA4atiazmZRV1GHOc1U2lZBXmCNKm9VI26jcUAzGmMHkWudKDXNaK4hkOqvARKZkIoh6gplrlT8LqCvt/csWp00qqPxiY0I9/YOR2Mii2xsxL7YIYQF2dltJJDZC5/TStkIwyim+BVgpuKzk1fNnsJ6MTYrK2s/6u3GMxMFjMCyUQhjGdFZg7/4wq0bEsjlstBATv85VcnN8c3+/TfCSiLrPeFZT1BW9jk8z+zff4uVPhlXIoHMRq8w2JOA1tQdGnUymQ32+dyqWfd9RQQGqckVom5j46VmoiUzTaOFll4vUjn9IEQwIR3VlyqUuVLxZp6mrpZIaMZsapqNZn6MviOJloRGOQkmAZv6w5MJK2AYbjIBN5Qx1YAXTTL4o2BRtqleZnwR9SYlXoSBCzcAZK1H9Hj2MPs7xFl/tygvb1EB60yuGq88grsx3mQi691UMZmW96d73gBgsDJbZVagDrFGhaEGz7P9edSwdd95Nh4S+NtIKl0iv3JKNDq1TjMMESQC0Gs0GZmaHNSZzRmpSM0gkMoZk9BK90TyjjKblblScfKqylATs+YSPREpZJ6KNk2mWp1J6JpKIwdpNJEZkZo24XQMNhJM2W9jponNzGsiJeF9bn4Ph2SffAVyF82gMZLxkAMJh/AeF95nJNAXTszZswXAEvu4uLy8kJC80eSVZzJNwO15c7Oy5ublknGHnMKpEAKTyS+PXifZ3xqw6iok9DVfkYRYjbrEXGIkgdrIHWSoJT4YlFlCXCVRLAKgZjN5+deZxQnKcR7wIRv9CpjNylyp+BCEJ1Kz2kZCBHJ0NF2Xw+mKzSAu845YBQmVIvwewhKyTUNuiKmyEljFzfVosoVUrrbmDph7QmlsQn2lEjbLKqCSljo7gz7MXqzm6pP0NVM/gcXFHSXFTsx9G30qK8MwtJAmHTXQsCaxw0S/ylVNTeMX5ooHEqFap0A1wpUGQgLbCQls7WsUA71FwQYaAfAAb1QzZ7Wy3LodORhLtmYMK7XPlYonEUPznOr719lK1EDLPEYtj6zlgX2F0zFct9mGh4H8zZubEF1IFOAlbiXzlkLqMfTbE3ZGMvLNStgsLwGsVP8R2UePzg0gP3eZjaKexfEqEw1UkD4Wbd1k69Bklaxy2JGQAiy4Igk1NraqRaG5msFb68NIkPsdSTCmoHUBqYPzDrlS8cioHHbWOTISBM69OQk1ytNxEjbZkBUI/02bPPFwFVEO4Ai3tuBjKaRFNikItu1o2aTEx6LlCA6QlVwvTCtcSu359/SnmMQyt/O4hVQAYrYznFoaJPMtA87c/MjDIZ+KBxKhKlECmKrQa/EC219ArW2lILMRhUHPCchk+XK/LUpCBnmrl4xFjtohVyquJ4YFSeR/dq1YYhYiuCsCs2SR4ukYvtxiw+mh8NxyBIZsqhiwnVvJCKWQew0tDFZ4trQINkLCFiXIfSy6DKxUH66eJZEnQgMYQphb6BGG39NGQwMEhEq+fOAhZjPgiLKLHQmd5OfHd6Ly3XT6MX2uTAL57vyo5tD3hoQdszGnpBVJpQ65UvGSzgxKzGxq4CU+QDj3hOODHkmokjCZPP4x8DpN5VOIYbbVQKEUcU6YkgFLAwIE2060VClRCCxnwnicImu0UIqo91ZVbQxlKGKZO5l9OfBoVZUBZ4YLOC35jgABKwtDT1e14Iiyi8qoQKkRCL/AZZ/WrUajCmOpfGEsasm2la0UDWjgAvkneJZgu5/8kTtB5tfybAXITyIt2jIcc6XiWvJ3UZ/ZQL280A/AViM7AH6QRdZyK8eX5RI8lmI8rj/H5Emw5tN9GQJDybZ6794+ZEs4x/Ep4s6dE7J2Yq9YYNleJoYGYifdyVM8iZXCaqout+KRcjl28rDyGBxwLy/3EsJIM/L3e8QwOQ0Yw2yeSFMkl9uRYMwgl2JrhM/WrQ3h7HOTT92wdWtEK3oi4Tx5nGeRwJHa5gYHEqaDEHlhqrLDELQiQu+YKxVH89TpJK2VHoAXUjeglZQhpgZ1b0goJ1czot23UHF4IMJWl+f7k1tVmMVOWeAuUUtLS4tBGFnzuRnMSn7U++eXrw7D8eFEyz4IK2Hw9TAczLYjwbrs9bQ+e0kPQvS5AhK2vDz/9Rha5FFY08rz+5SHHkBYnzRiw9VIuGiZPkS4rdq0a8jIIpi8b2pPJBg1KW1Cwm8cSFDzbEWHzmHEsqCbXKm4eIKGDLHQRQuvhAjLxR5J2ChDQiAwmouhLxfwXK8Qqr4LvCkL3CVqtlv6XW4Gs4Z4cWPBy6Gs1EGuHoz3kHfb+KaQe73XFKK5vxwo6kT7muds9BhwPRPuvZG3kKAqtYPaYknRxsbGNqRYLDtKS/WWpJzYnCSNUetDnPPZSpGoTRQkvUWXpKqtVU016oim1cr9nSS7dlaqsoNZq9VmdJMrFbekpPat7ZtqtOhtjXSW6dW1tdXTLTr5MXy086W6d8o/V9GA3Q+tFOSQeK9bdr0RN5oPLmj37hvWS4E3i9odd9wRt/tusgZx827OYPzouDd23eIVX8zUyfH3RO/d9ck98ZOVY7xhd/+hZ44fjxZ6TIkfELdw1xunhsazEl6BLTfFEevo6OPHP5kU77U76CoklO7QWDie010iagaTNWrLrdTHVj4UnZigf05IUNP5WRR+nu1As+V8N7lScfEEOlkjXsnC2LNF3kqfExsJ62XYEBIfXyTIr02JZ3Bnmkd8fIIssFjU4kV4cHM8N7tz45TXeKnJXJ28XokEITeA93g8RNSpxnPWbwgNYMLKKbyFBNVaR+h1kZGROr2gqTMjM9VrO3VqIvOVx+ht8ZfUGZGRGepOKut0Sj/N1inLd+p0uu5ypeLCCToVjahNkG2Rah7DoSBhfWjC15LiPrm4OEHgpCghQT4Dd1FLEFHEzSJTRQnFxZPdbfEeK4uLV9oNkVgTPDxIj5VFUvti0tLjCd4jpDiEliuiuaEb3BOKrk6Ck+LODc4K1SWXwZ1POCtciYQ/OytUF10GA//krHAlEh53Vqjmd7oKBv7TSRGk8r5Gwi+Nr1StLvNVGPgH50SQVdUVnnzeNeCcJDwZ9E2Xqqur1ds1aBj4pBMi6CtrV9f/BBgA70F3ssn+sLsAAAAASUVORK5CYII= \ No newline at end of file +v0.41.12-beta +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAYQAAAAqCAMAAACEAtzLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ4IDc5LjE2NDAzNiwgMjAxOS8wOC8xMy0wMTowNjo1NyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkYxRTAxMzM3M0ZDNzExRUJBQUM0RDg0MkJENzFBRjgwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkYxRTAxMzM4M0ZDNzExRUJBQUM0RDg0MkJENzFBRjgwIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjFFMDEzMzUzRkM3MTFFQkFBQzREODQyQkQ3MUFGODAiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjFFMDEzMzYzRkM3MTFFQkFBQzREODQyQkQ3MUFGODAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5Pf4DMAAADAFBMVEWKiooihLwFXI5Jns4FaaKUxeEdcqI1dZrR0dEFbak9PT3R4utkq9Kenp4GcKyCgoIHXpHR5vLh7/cxk8yGvt8KdbIJca7e3t5jlbGxytm1tbUVapo/Pz+izOVubm6y0eN1tdna2trn5+fOzs4HZp1Ui6sGVYIqjMWRkZFjnL0bhcFGRkZLS0tycnJFgKJFmsoHVoSCrsZ3d3eFhYVFkb0keqqcnJxiYmIEU4AkapK/v7+srKx4eHgFZZtYpdKhoaHg4OAJZJlDQ0Pw9PcKaqBBQUGixtqUlJTCwsIXYYwXgL2Stchqamq6urrIyMiiwNEIWolXlbnFxcVAQEDAwMA0fKYEWYnQ3+i2trbKysoJYZMFYJQgdaY7l8tlZWWTvtZgYGCz1enB2ecYbZ0IbaWnp6eDq8KCudk3k8iNjY0FcrCCqsCkzuY2kcZGirEJWIWvr68EYph0dHRHnMyJweJzn7l0sdUmbpdnrtYnisI1h7UUXokBcrNZWVlTU1NRUVFUVFRVVVUKe7wLfL1SUlIHeLkFdrdWVlYOgMAEdbYDdbUOf8AEdrYDdLUDdLQSg8MSg8QShMQThMUAcrIGd7hXV1cOf78Nfr8Nfr4Mfb4Mfb0Je7sJersJeroIeboIebk6OjqqqqrV1dXU1NSrq6vC3u6pqalISEg7OzuAgIB+fn7w9/v19fWEvN2BqcCBgYGEvd1JSUmDvNzq6urB3u7B1eD09PTz8/OFvt5MTEyCss5/f3+lpaXB3e0IV4XB3e7C3++EtNDo6OjC3u/v9PeXl5eFvd6Fvd3W1tbg6u9Hm8wJeLjA1N+Du9xEmcpGm8vD3++Eq8IHdbJVos+Dr8iFudeErMIrjsfB2+rv9vqixNdEf6HB1+Ohv9Dg6vAFdLSEsMqjo6PC1eEIaJ85lcm4uLgwk8t/uNjC3OsFZ6Aab6AId7cmcZwmhr2RuM8Cc7QRgsMPgMEQgcJaWlpfX19NTU1eXl5cXFxbW1tPT09QUFBYWFhdXV1OTk7///////+98cn1AAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AU/cHJQAAC8ZJREFUeNrsVwl0VNUZfiRgkpHJTNKQjSQCkUXeQDZoAiQkDERCWK3KooCAaDWAiCtKGcIkYWpr7SLR1rBMdmUGSMgGGoJsbqAoUhFc6latWtvaChUwX3qXt85MMKd6js4cvnPy7v9//3bf/SZzE6Gry33niK8CAaP/4If4yT2uri6hKy8wJCAi/N4v8XFEl+AecTZAMPp3/omPXcKdZwNGhN/6Ke4RRnwTKBj9Lz/Fx8I3l0T4wRFIIvzbXyH8N2BwSYQfAeZ/6a8Qvg4YXBLhxyDCL/0Vwn8CBvN/7a/wKYJp3Lhxtyd9/8e00GRaqDhJJlNParJN2T0V4bFucXJ1VFSw79CC4JOqE7zAZ45Kfzl8fNQ9A7yzohD12P8PYa0nMue6wZB3OHPtd4RpnEnnu3FYsQswryctXsALPRw2//Hu0Ie9T+QCH6HxQJTiBONVX+UqffJVfjQRnq2iNF28yqOCH784vETIbgIG1hiNyWSW6buKMA7jtK5jLPIUrYFh37MIf+wGUTi1445rroBruFdogYuIINknV7vwrHe1lg4GPnjjjZkTvVpFKV18je8+xiFc0CMzD21JBgqLsc104TuCiKDzk4AkyTyMttKetBANYg+Hzf+TbwwFQmZ1rFz5AZZ7hVyYiChus4/4s17VOjp45v0rCUJOYYA+K0ru4gMXi3EIXsfWlmmwNlososHgmNbTw0436fQymZJ8i1A/CLmSWYW5nb5qZbnkHqoImSZTpvbjoneJCE/4xgDEzVraL3rCSLg8IsMjENuC3dzZ/ef3WvCsV7WO7rdy5Q2TJk2YNdUzcTftMjT4I03v4OChmpiE4GBtjgxPEdwwJqxjlsNCjSrsZN5OVEnPw3lAzYUa1GTWkG8uGq2hl4i7huUBmcytymQOh9J9nRFN6u+EQ1+rNr9gyqNl7utIkxrwxulVlKpKlzKTrqPuXO3WLyuRMBwYyq3l6FNSshiv9aPODcBHJTocxMyOt7GbOx0dHa/hYIkndHT0hCN06ZfmmUgOenwkvXfGc/+jg3R7B+k8+RAIGckM127PGUK5DjuB8lLZKS4uLyciSIEq9sxjZ1FTXoN5TdTaWU6+wNzT26e7cR3NA5rgTh5IrnXiVDWhqYpA7b8WSGdGLgaJ5fpatfntQGh7+wzanQyqofnpbsS0t8fAnc4y3W4cSB5EVNDsXRGBnL30ni6qRgSuofYT0XMwXvfuyxHXsbRWzp00adJ+1HqJ4JNejJs8RSCXy5IWsvtg6q4md/f+/ZfDRVSojURkLUFJSTAiT+/ff7WLfjIuJgI5G4uO8BQBrbl7DI2Z5GxwQLjWsP6/5fEY2EiukMY2dryUJl4m8wxGGOn1orazDEQ8M/JQeb5cX6s2b+JljZWqCE2YS6m5aOLbCB1BvAy4tSLYJWweiUhmrEbLlXY7MKqEuS14zq7BAMyZMsFeqyGfQ63dB7xocsvc4Zniem9KR+qUOWwyuWpiUwluxWK7nTxvpY7d/sVIuqaGAMP11YJDhxok23REFZ5i61OoYs8DZ9jxkMSfJVDrPPkrp9ggNoqGYYgnGYDFYLDmGwpQ43BYc5FrJVDb2TLQStd08h3lcOhr1ebkq8ra2Ggl3emOSCPHZLQZ8hsb8+vbMJlmDjQYEqwJhjZpdwyKCPYJ72I8XWsR24+KkMLpv+F5zZuvxsQpN9AclXzetwhedC0TV5+SlppqNqeOAW6z2/tgZqp50ofm1InkuM0ncMJMYLdHp86aQG6Ujhbc/S0ihDouKkKyobHYUWwjicaEPeRQiwUMzC8moeIklgFQ2kG+/Gsc8glqcQagI8mvgOhw6GvV5oMQk05pUREhHgUiLRcLuFzJVhJy7EnWiVAhI/peLCfLA5hoJgtwN6dr0aCkVNzmmhgSdERPNqC2wgc86eVEvmjaopahD0tJ+5A0OxL0LvpWVERg8FKa+GELHd0gT+gXXXF3Q8PiJRPlDckQ1utQiRg9QURgKxGBPUNtcmK7bCigGQBPaEclC1bq263fU4CxZGnCsFLPWrV5BiGa5lXetV5pUQUji9iMPLOaJ4ZKu2O4bJOC+4HCTZsaMHUpcYCXOEvOW02pxeCOIx4kOe1NPuBBEw1CzNR4iW+9lqXwLv1aqKG+Fh3doExocKmsFh4iZAOLLipClaJWpWw0VTLcYhSYCNq4twi2bLQuIn1wxqtWbZ6QVMD2Ok8jgqR5OxehSr87LsJmBZPiMGDz5kjcT50XcYyzzei7VUlp1pwUJG47mjf7gJ5OxKGQjs+pVfjWSIrrK2jKdh5dQg0gcTvDiWVfaGLkH/fTV93xd/Pb8oZkCMV6AJN1fjWeYeszqFaeFORsZGPgkxLyWb02rmSpsJJv9eKxKGj0qlWbWwixKIP8z26UW8xAPA/FY4YmU94dw2dbFBwfjMgtx/BBDnVasJ2z5IZWU25qaWZwIbK5WeLIaW/xAS1dmIg5IR3R1DwSPoTBzFKkGRG4jw4aPERCuBorBO5lXAuO6Qd4iNBJ/vz4Sna+mkZfU7i4COR355t6DktPRNgzF/OKW5FR6lWrNi/utFJh5lKCt3gfMTwSg/e7FWGrihvJxz8RscepfQKJjFsBLFUzzNIptWDZkCEStwvNW31AQxdGYM6ajiLufB7OUMRSdjHqAeDBrVtbcPpKCcfV2DFgyKql4ce3NuOYfoBg06HUBsSc5bbQus1mm46x1D47FtVk2caeFHWo44Y4CDMk7i7yQ+4ETdzIq3UgfxIZ0Wb1rlWbG8nPOUt+HY3yRl8D22xsA/hak1nNWY7PylSELcNiHApi9vVwFdK1D+LCybJi376+ZMkJ4ngbaUFBUtUu7JMb9NmnmBp6hQvvrAmKLvMCOWi2JuLF3mVlscAKqYD83IdEZqcAoxkXiRR9tYcINiu5FFvjhW3b6mLYe5O3rtu2Lb4V3YlwhnycZ5DEEcamOi8RpoEIeXayfsIgtCLe4l2rNkfT5GmkrJVugDcS69BK2hCqTuyJCGXkasbU3luoeWUcIlaUFQ4A3pLOYpcmca/spaSkJCKCPAs5DR/0XhxatuznuyhSPERw9Xk9pe8+MoNIFDQHrr4PlBW+nkibPAhXSllh37LwFxHRN4Vw+DYRzjmnDZJuqzbjWnJk8cw+MLk7EWyG7Dap4KdeItTzat2EzmGEWeSjVm0u76DOKjc65+SdEO88160IGzXIiQPGcDN8zRxeG2um7ivAy5rEvbKn3NKvcBo+6L3qXa7tsXHjyxJ7KHY28XqviZN94n36DjM3hoUcYsZNl/MRKoRSDzQ6ndnG5OTkumync09pqcWZUZBckGGwGWnmQqOcn25MlyyLU8z4a3X19Mk2kXhGozbeSaqrZ+TqJziMRqPVR63a3JmdG1odmmtzWpRBonNaZXV15TSnqN2GYFyo9r1Z+15FITvuXSXZ5qzYq/e+mTYmK4x6vZbtGKVJvEr2nn766bQdt5LnF5ze4YMmrIxRumMctWPk4NNHj06VZszOCklbsvfN9wZn0Q9BVmxc8xVphB0z9ejRf1yfFbuj1+cXF6F0j8HJ8aR4nrhWZhtE57U0xp78UES5wPKkVEAZp1MX59X6ASJhzvioVZvLO7BqBllVSs28ln5OFBE2aPCwOSurSLL/MjuLoTfzwrKycjSJQbKXJSOM01k+6CDF0/XYsCFHYofwGY+YZZ96NzJzw8PhQ5ixajYfoUJY5w2LmJCQYLVIXn1+Qn79uk6xntj8yXMsSv75eivJFzupLYr6OK0W9e07RVH0Vas25zvgDZVBFquyKSWznudw6ETYEJ7zqer0vjEoKEfSpCgnR3sGvWUvR0YRp3N80L0VL0d/jmE5YWFkxqoidTy59HPCHuIzzEFm2q5oFUkJJ12Kvl0EP8XND/srhPMBg5sf8lcEkgi/8lcI5wIG/X/jrwgkER7xVwgLOwMF/f/pp+gl3HJJhB8anwitAfOr0P8X/olep4SumMwzgQH/FOHRXhFdQldX6y2BIUP/R/0QvT451dX1PwEGANhK/H/+Sne9AAAAAElFTkSuQmCC \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/rule_providers.list b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/rule_providers.list index 118f4124bd..d4173692b2 100644 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/rule_providers.list +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/rule_providers.list @@ -107,6 +107,7 @@ ViuTV,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingM ViuTV(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,ViuTV.yaml,ViuTV-lhie1.yaml YouTube Music,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,YouTube%20Music.yaml,YouTube Music.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 YouTube(By lhie1),lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,YouTube.yaml,YouTube-lhie1.yaml Youku,lhie1,classical,lhie1/Rules/master/Clash/Provider/Media/,Youku.yaml encoreTVB,ConnersHua,classical,DivineEngine/Profiles/master/Clash/RuleSet/StreamingMedia/Video/,encoreTVB.yaml diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/sub_ini.list b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/sub_ini.list index 3b492fa329..857ed451b8 100644 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/sub_ini.list +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/res/sub_ini.list @@ -1,7 +1,8 @@ +默认(附带用于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_pro.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 diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_change.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_change.sh index 83c6095672..1c2200f2a8 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_change.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_change.sh @@ -8,14 +8,9 @@ LOGTIME=$(date "+%Y-%m-%d %H:%M:%S") if [ "$14" != "1" ]; then controller_address="0.0.0.0" bind_address="*" -elif [ "$18" != "Tun" ] && [ "$14" = "1" ]; then +else controller_address=$11 bind_address=$11 -elif [ "$18" = "Tun" ] && [ "$14" = "1" ]; then - echo "Warning: Stop Set The Bind Address Option In TUN Mode, Because The Router Will Not Be Able To Connect To The Internet" >> $LOG_FILE - echo "警告: 在TUN内核下启用仅允许内网会导致路由器无法联网,已忽略此项修改!" >$START_LOG - controller_address="0.0.0.0" - bind_address="*" fi if [ -n "$(ruby_read "$7" "['tun']")" ]; then diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_get.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_get.sh index e20c49daac..36ceebe57a 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_get.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_get.sh @@ -175,7 +175,7 @@ do Thread.new{ #test_url if Value['proxy-groups'][$count].key?('url') then - group_test_url = '${uci_set}test_url=' + Value['proxy-groups'][$count]['url'].to_s + group_test_url = '${uci_set}test_url=\"' + Value['proxy-groups'][$count]['url'].to_s + '\"' system(group_test_url) end }.join; @@ -203,13 +203,8 @@ do Value['proxy-groups'][$count]['proxies'].each{ |x| if Value_1.include?(x) then - if '$group_type' == 'select' or '$group_type' == 'relay' then - uci = '${uci_add}other_group=\"' + x.to_s + '\"' - system(uci) - elsif x == 'DIRECT' or x == 'REJECT' then - uci = '${uci_add}other_group_dr=' + x.to_s - system(uci) - end + uci = '${uci_add}other_group=\"' + x.to_s + '\"' + system(uci) end } end diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_name_ch.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_name_ch.sh index 79ce105341..16a1557d33 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_name_ch.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_name_ch.sh @@ -33,7 +33,6 @@ cfg_groups_set() sed -i "s/old_name_cfg \'${old_name_cfg}\'/old_name_cfg \'${name}\'/g" $CFG_FILE 2>/dev/null sed -i "s/groups \'${old_name_cfg}/groups \'${name}/g" $CFG_FILE 2>/dev/null sed -i "s/other_group \'${old_name_cfg}/other_group \'${name}/g" $CFG_FILE 2>/dev/null - sed -i "s/other_group_dr \'${old_name_cfg}/other_group_dr \'${name}/g" $CFG_FILE 2>/dev/null sed -i "s/new_servers_group \'${old_name_cfg}/new_servers_group \'${name}/g" $CFG_FILE 2>/dev/null sed -i "s/relay_groups \'${old_name_cfg}/relay_groups \'${name}/g" $CFG_FILE 2>/dev/null #第三方规则处理 diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_set.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_set.sh index 4ab812491d..82e87f18ef 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_set.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_groups_set.sh @@ -205,12 +205,7 @@ yml_groups_set() set_group=0 set_proxy_provider=0 - if [ "$type" = "select" ] || [ "$type" = "relay" ]; then - config_list_foreach "$section" "other_group" set_other_groups #加入其他策略组 - else - config_list_foreach "$section" "other_group_dr" set_other_groups #仅加入direct/reject其他策略组 - fi - + config_list_foreach "$section" "other_group" set_other_groups #加入其他策略组 config_foreach yml_servers_add "servers" "$name" "$type" #加入服务器节点 if [ "$type" = "relay" ] && [ -s "/tmp/relay_server" ]; then diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_proxys_get.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_proxys_get.sh index 6d0891d2f0..8efbfc6bf9 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_proxys_get.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_proxys_get.sh @@ -190,7 +190,7 @@ do if '$provider_type' == 'http' then provider_path = '${uci_set}path=./proxy_provider/${provider_name}.yaml' else - provider_path = '${uci_set}path=' + Value['proxy-providers'].values[$provider_count]['path'].to_s + provider_path = '${uci_set}path=\"' + Value['proxy-providers'].values[$provider_count]['path'].to_s + '\"' end system(provider_path) end @@ -199,7 +199,7 @@ do Thread.new{ #gen_url if Value['proxy-providers'].values[$provider_count].key?('url') then - provider_gen_url = '${uci_set}provider_url=' + Value['proxy-providers'].values[$provider_count]['url'].to_s + provider_gen_url = '${uci_set}provider_url=\"' + Value['proxy-providers'].values[$provider_count]['url'].to_s + '\"' system(provider_gen_url) end }.join; @@ -226,7 +226,7 @@ do #che_url if Value['proxy-providers'].values[$provider_count].key?('health-check') then if Value['proxy-providers'].values[$provider_count]['health-check'].key?('url') then - provider_che_url = '${uci_set}health_check_url=' + Value['proxy-providers'].values[$provider_count]['health-check']['url'].to_s + provider_che_url = '${uci_set}health_check_url=\"' + Value['proxy-providers'].values[$provider_count]['health-check']['url'].to_s + '\"' system(provider_che_url) end end @@ -504,7 +504,7 @@ do Thread.new{ #server if Value['proxies'][$count].key?('server') then - server = '${uci_set}server=' + Value['proxies'][$count]['server'].to_s + server = '${uci_set}server=\"' + Value['proxies'][$count]['server'].to_s + '\"' system(server) end }.join; @@ -547,13 +547,13 @@ do end #host: if Value['proxies'][$count]['plugin-opts'].key?('host') then - host = '${uci_set}host=' + Value['proxies'][$count]['plugin-opts']['host'].to_s + host = '${uci_set}host=\"' + Value['proxies'][$count]['plugin-opts']['host'].to_s + '\"' system(host) end if Value['proxies'][$count]['plugin'].to_s == 'v2ray-plugin' then #path if Value['proxies'][$count]['plugin-opts'].key?('path') then - path = '${uci_set}path=' + Value['proxies'][$count]['plugin-opts']['path'].to_s + path = '${uci_set}path=\"' + Value['proxies'][$count]['plugin-opts']['path'].to_s + '\"' system(path) end #mux @@ -564,7 +564,7 @@ do #headers if Value['proxies'][$count]['plugin-opts'].key?('headers') then if Value['proxies'][$count]['plugin-opts']['headers'].key?('custom') then - custom = '${uci_set}custom=' + Value['proxies'][$count]['plugin-opts']['headers']['custom'].to_s + custom = '${uci_set}custom=\"' + Value['proxies'][$count]['plugin-opts']['headers']['custom'].to_s + '\"' system(custom) end end @@ -610,7 +610,7 @@ do Thread.new{ #obfs-param if Value['proxies'][$count].key?('obfs-param') then - obfs_param = '${uci_set}obfs_param=' + Value['proxies'][$count]['obfs-param'].to_s + obfs_param = '${uci_set}obfs_param=\"' + Value['proxies'][$count]['obfs-param'].to_s + '\"' system(obfs_param) end }.join @@ -618,7 +618,7 @@ do Thread.new{ #protocol-param if Value['proxies'][$count].key?('protocol-param') then - protocol_param = '${uci_set}protocol_param=' + Value['proxies'][$count]['protocol-param'].to_s + protocol_param = '${uci_set}protocol_param=\"' + Value['proxies'][$count]['protocol-param'].to_s + '\"' system(protocol_param) end }.join @@ -667,7 +667,7 @@ do Thread.new{ #servername if Value['proxies'][$count].key?('servername') then - servername = '${uci_set}servername=' + Value['proxies'][$count]['servername'].to_s + servername = '${uci_set}servername=\"' + Value['proxies'][$count]['servername'].to_s + '\"' system(servername) end }.join @@ -679,26 +679,26 @@ do system '${uci_set}obfs_vmess=websocket' #ws-path: if Value['proxies'][$count].key?('ws-path') then - path = '${uci_set}path=' + Value['proxies'][$count]['ws-path'].to_s + path = '${uci_set}path=\"' + Value['proxies'][$count]['ws-path'].to_s + '\"' system(path) end #Host: if Value['proxies'][$count].key?('ws-headers') then if Value['proxies'][$count]['ws-headers'].key?('Host') then - custom = '${uci_set}custom=' + Value['proxies'][$count]['ws-headers']['Host'].to_s + custom = '${uci_set}custom=\"' + Value['proxies'][$count]['ws-headers']['Host'].to_s + '\"' system(custom) end end - elsif Value['proxies'][$count]['network'].to_s == 'http' - system '${uci_set}obfs_vmess=http' - if Value['proxies'][$count].key?('http-opts') then - if Value['proxies'][$count]['http-opts'].key?('path') then - system '${uci_del}http_path >/dev/null 2>&1' - Value['proxies'][$count]['http-opts']['path'].each{ - |x| - http_path = '${uci_add}http_path=' + x.to_s - system(http_path) - } + elsif Value['proxies'][$count]['network'].to_s == 'http' + system '${uci_set}obfs_vmess=http' + if Value['proxies'][$count].key?('http-opts') then + if Value['proxies'][$count]['http-opts'].key?('path') then + system '${uci_del}http_path >/dev/null 2>&1' + Value['proxies'][$count]['http-opts']['path'].each{ + |x| + http_path = '${uci_add}http_path=\"' + x.to_s + '\"' + system(http_path) + } end if Value['proxies'][$count]['http-opts'].key?('headers') then if Value['proxies'][$count]['http-opts']['headers'].key?('Connection') then @@ -711,9 +711,25 @@ do end end end - else - system '${uci_set}obfs_vmess=none' - end + elsif Value['proxies'][$count]['network'].to_s == 'h2' + system '${uci_set}obfs_vmess=h2' + if Value['proxies'][$count].key?('h2-opts') then + if Value['proxies'][$count]['h2-opts'].key?('host') then + system '${uci_del}h2_host >/dev/null 2>&1' + Value['proxies'][$count]['h2-opts']['host'].each{ + |x| + h2_host = '${uci_add}h2_host=\"' + x.to_s + '\"' + system(h2_host) + } + end + if Value['proxies'][$count]['h2-opts'].key?('path') then + h2_path = '${uci_set}h2_path=\"' + Value['proxies'][$count]['h2-opts']['host'].to_s + '\"' + system(h2_path) + end + end + else + system '${uci_set}obfs_vmess=none' + end end }.join end; @@ -727,7 +743,7 @@ do system '${uci_set}obfs_snell=none' end if Value['proxies'][$count]['obfs-opts'].key?('host') then - host = '${uci_set}host=' + Value['proxies'][$count]['obfs-opts']['host'].to_s + host = '${uci_set}host=\"' + Value['proxies'][$count]['obfs-opts']['host'].to_s + '\"' system(host) end end @@ -781,7 +797,7 @@ do if '$server_type' == 'http' or '$server_type' == 'trojan' then Thread.new{ if Value['proxies'][$count].key?('sni') then - sni = '${uci_set}sni=' + Value['proxies'][$count]['sni'].to_s + sni = '${uci_set}sni=\"' + Value['proxies'][$count]['sni'].to_s + '\"' system(sni) end }.join @@ -793,7 +809,7 @@ do system '${uci_del}alpn >/dev/null 2>&1' Value['proxies'][$count]['alpn'].each{ |x| - alpn = '${uci_add}alpn=' + x.to_s + alpn = '${uci_add}alpn=\"' + x.to_s + '\"' system(alpn) } end diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_proxys_set.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_proxys_set.sh index 4a27cdd75d..bcf9149b44 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_proxys_set.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_proxys_set.sh @@ -37,6 +37,20 @@ if [ -z "$CONFIG_NAME" ]; then CONFIG_NAME="config.yaml" fi +yml_other_rules_del() +{ + local section="$1" + local enabled config + config_get_bool "enabled" "$section" "enabled" "1" + config_get "config" "$section" "config" "" + config_get "rule_name" "$section" "rule_name" "" + + if [ "$enabled" = "0" ] || [ "$config" != "$2" ] || [ "$rule_name" != "$3" ]; then + return + else + uci delete openclash."$section" 2>/dev/null + fi +} #写入代理集到配置文件 yml_proxy_provider_set() { @@ -135,6 +149,15 @@ cat >> "$SERVER_FILE" <<-EOF EOF } +set_h2_host() +{ + if [ -z "$1" ]; then + return + fi +cat >> "$SERVER_FILE" <<-EOF + - '$1' +EOF +} #写入服务器节点到配置文件 yml_servers_set() @@ -175,6 +198,8 @@ yml_servers_set() config_get "http_path" "$section" "http_path" "" config_get "keep_alive" "$section" "keep_alive" "" config_get "servername" "$section" "servername" "" + config_get "h2_path" "$section" "h2_path" "" + config_get "h2_host" "$section" "h2_host" "" if [ "$enabled" = "0" ]; then return @@ -245,6 +270,10 @@ yml_servers_set() obfs_vmess="network: http" fi + if [ "$obfs_vmess" = "h2" ]; then + obfs_vmess="network: h2" + fi + if [ ! -z "$custom" ] && [ "$type" = "vmess" ]; then custom="Host: $custom" fi @@ -402,6 +431,20 @@ cat >> "$SERVER_FILE" <<-EOF headers: Connection: - keep-alive +EOF + fi + + #h2 + if [ ! -z "$h2_host" ] && [ "$obfs_vmess" = "network: h2" ]; then +cat >> "$SERVER_FILE" <<-EOF + h2-opts: + host: +EOF + config_list_foreach "$section" "h2_host" set_h2_host + fi + if [ ! -z "$h2_path" ] && [ "$obfs_vmess" = "network: h2" ]; then +cat >> "$SERVER_FILE" <<-EOF + path: $h2_path EOF fi fi @@ -677,13 +720,21 @@ cat >> "$SERVER_FILE" <<-EOF EOF fi cat /tmp/Proxy_Provider >> $SERVER_FILE 2>/dev/null -${UCI_SET}rule_source="ConnersHua" -${UCI_SET}GlobalTV="GlobalTV" -${UCI_SET}AsianTV="AsianTV" -${UCI_SET}Proxy="Proxy" -${UCI_SET}AdBlock="AdBlock" -${UCI_SET}Domestic="Domestic" -${UCI_SET}Others="Others" +config_load "openclash" +config_foreach yml_other_rules_del "other_rules" "$CONFIG_NAME" "ConnersHua" +uci_name_tmp=$(uci add openclash other_rules) +uci_set="uci -q set openclash.$uci_name_tmp." +${UCI_SET}rule_source="1" +${uci_set}enable="1" +${uci_set}rule_name="ConnersHua" +${uci_set}config="$CONFIG_NAME" +${uci_set}GlobalTV="GlobalTV" +${uci_set}AsianTV="AsianTV" +${uci_set}Proxy="Proxy" +${uci_set}AdBlock="AdBlock" +${uci_set}Domestic="Domestic" +${uci_set}Others="Others" + [ "$config_auto_update" -eq 1 ] && [ "$new_servers_group_set" -eq 1 ] && { ${UCI_SET}servers_update="1" ${UCI_DEL_LIST}="Auto - UrlTest" >/dev/null 2>&1 && ${UCI_ADD_LIST}="Auto - UrlTest" >/dev/null 2>&1 @@ -881,22 +932,30 @@ cat >> "$SERVER_FILE" <<-EOF EOF fi cat /tmp/Proxy_Provider >> $SERVER_FILE 2>/dev/null -${UCI_SET}rule_source="lhie1" -${UCI_SET}GlobalTV="GlobalTV" -${UCI_SET}AsianTV="AsianTV" -${UCI_SET}Proxy="Proxy" -${UCI_SET}Youtube="Youtube" -${UCI_SET}Apple="Apple" -${UCI_SET}Microsoft="Microsoft" -${UCI_SET}Netflix="Netflix" -${UCI_SET}Spotify="Spotify" -${UCI_SET}Steam="Steam" -${UCI_SET}AdBlock="AdBlock" -${UCI_SET}Speedtest="Speedtest" -${UCI_SET}Telegram="Telegram" -${UCI_SET}PayPal="PayPal" -${UCI_SET}Domestic="Domestic" -${UCI_SET}Others="Others" +config_load "openclash" +config_foreach yml_other_rules_del "other_rules" "$CONFIG_NAME" "lhie1" +uci_name_tmp=$(uci add openclash other_rules) +uci_set="uci -q set openclash.$uci_name_tmp." +${UCI_SET}rule_source="1" +${uci_set}enable="1" +${uci_set}rule_name="lhie1" +${uci_set}config="$CONFIG_NAME" +${uci_set}GlobalTV="GlobalTV" +${uci_set}AsianTV="AsianTV" +${uci_set}Proxy="Proxy" +${uci_set}Youtube="Youtube" +${uci_set}Apple="Apple" +${uci_set}Microsoft="Microsoft" +${uci_set}Netflix="Netflix" +${uci_set}Spotify="Spotify" +${uci_set}Steam="Steam" +${uci_set}AdBlock="AdBlock" +${uci_set}Speedtest="Speedtest" +${uci_set}Telegram="Telegram" +${uci_set}PayPal="PayPal" +${uci_set}Domestic="Domestic" +${uci_set}Others="Others" + [ "$config_auto_update" -eq 1 ] && [ "$new_servers_group_set" -eq 1 ] && { ${UCI_SET}servers_update="1" ${UCI_DEL_LIST}="Auto - UrlTest" >/dev/null 2>&1 && ${UCI_ADD_LIST}="Auto - UrlTest" >/dev/null 2>&1 @@ -954,9 +1013,16 @@ cat >> "$SERVER_FILE" <<-EOF - Proxy - DIRECT EOF -${UCI_SET}rule_source="ConnersHua_return" -${UCI_SET}Proxy="Proxy" -${UCI_SET}Others="Others" +config_load "openclash" +config_foreach yml_other_rules_del "other_rules" "$CONFIG_NAME" "ConnersHua_return" +uci_name_tmp=$(uci add openclash other_rules) +uci_set="uci -q set openclash.$uci_name_tmp." +${UCI_SET}rule_source="1" +${uci_set}enable="1" +${uci_set}rule_name="ConnersHua_return" +${uci_set}config="$CONFIG_NAME" +${uci_set}Proxy="Proxy" +${uci_set}Others="Others" [ "$config_auto_update" -eq 1 ] && [ "$new_servers_group_set" -eq 1 ] && { ${UCI_SET}servers_update="1" ${UCI_DEL_LIST}="Auto - UrlTest" >/dev/null 2>&1 && ${UCI_ADD_LIST}="Auto - UrlTest" >/dev/null 2>&1 diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_rules_change.sh b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_rules_change.sh index 66f3e71ea7..63d6715c0a 100755 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_rules_change.sh +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/yml_rules_change.sh @@ -63,10 +63,8 @@ yml_other_set() puts '${LOGTIME} Set Custom Rules Error: ' + e.message end begin - if $7 == 1 and Value.has_key?('rules') then - ruby_add_index = Value['rules'].index(Value['rules'].grep(/(GEOIP|MATCH|FINAL)/).first) - ruby_add_index ||= -1 - Value['rules']=Value['rules'].to_a.insert(ruby_add_index, + if $5 == 1 then + Value['rules']=Value['rules'].to_a.insert(0, 'DOMAIN-KEYWORD,tracker,DIRECT', 'DOMAIN-KEYWORD,announce.php?passkey=,DIRECT', 'DOMAIN-KEYWORD,torrent,DIRECT', @@ -77,16 +75,37 @@ yml_other_set() 'DOMAIN-KEYWORD,BitTorrent,DIRECT', 'DOMAIN-KEYWORD,announce_peer,DIRECT' ) + begin + match_group=Value['rules'].grep(/(MATCH|FINAL)/)[0] + if not match_group.empty? and not match_group.nil? then + common_port_group=match_group.split(',')[2] or common_port_group=match_group.split(',')[1] + if not common_port_group.empty? and not common_port_group.nil? then + ruby_add_index = Value['rules'].index(Value['rules'].grep(/(MATCH|FINAL)/).first) + ruby_add_index ||= -1 + Value['rules']=Value['rules'].to_a.insert(ruby_add_index, + 'DST-PORT,80,' + common_port_group, + 'DST-PORT,443,' + common_port_group, + 'DST-PORT,22,' + common_port_group + ) + end + end + rescue Exception => e + puts '${LOGTIME} Set BT/P2P Common Port Rules Error: ' + e.message + end Value['rules'].to_a.collect!{|x|x.to_s.gsub(/(^MATCH.*|^FINAL.*)/, 'MATCH,DIRECT')} end; rescue Exception => e - puts '${LOGTIME} Set Bt DIRECT Rules Error: ' + e.message + puts '${LOGTIME} Set BT/P2P DIRECT Rules Error: ' + e.message end begin - if Value.has_key?('rules') and Value['rules'].to_a.grep(/(?=.*198.18)(?=.*REJECT)/).empty? then - ruby_add_index = Value['rules'].index(Value['rules'].grep(/(GEOIP|MATCH|FINAL)/).first) - ruby_add_index ||= -1 - Value['rules']=Value['rules'].to_a.insert(ruby_add_index,'IP-CIDR,198.18.0.1/16,REJECT,no-resolve') + if Value.has_key?('rules') and not Value['rules'].to_a.empty? then + if Value['rules'].to_a.grep(/(?=.*198.18)(?=.*REJECT)/).empty? then + ruby_add_index = Value['rules'].index(Value['rules'].grep(/(GEOIP|MATCH|FINAL)/).first) + ruby_add_index ||= -1 + Value['rules']=Value['rules'].to_a.insert(ruby_add_index,'IP-CIDR,198.18.0.1/16,REJECT,no-resolve') + end + else + Value['rules']=%w(IP-CIDR,198.18.0.1/16,REJECT,no-resolve) end; rescue Exception => e puts '${LOGTIME} Set 198.18.0.1/16 REJECT Rule Error: ' + e.message @@ -95,42 +114,66 @@ yml_other_set() end" 2>/dev/null >> $LOG_FILE } -if [ "$2" != 0 ]; then +yml_other_rules_get() +{ + local section="$1" + local enabled config + config_get_bool "enabled" "$section" "enabled" "1" + config_get "config" "$section" "config" "" + + if [ "$enabled" = "0" ] || [ "$config" != "$2" ]; then + return + fi + + if [ -n "$rule_name" ]; then + echo "${LOGTIME} Warrning: Multiple Other-Rules-Configurations Enabled, Ignore..." >> $LOG_FILE + return + fi + + config_get "rule_name" "$section" "rule_name" "" + config_get "GlobalTV" "$section" "GlobalTV" "" + config_get "AsianTV" "$section" "AsianTV" "" + config_get "Proxy" "$section" "Proxy" "" + config_get "Youtube" "$section" "Youtube" "" + config_get "Apple" "$section" "Apple" "" + config_get "Netflix" "$section" "Netflix" "" + config_get "Spotify" "$section" "Spotify" "" + config_get "Steam" "$section" "Steam" "" + config_get "AdBlock" "$section" "AdBlock" "" + config_get "Netease_Music" "$section" "Netease_Music" "" + config_get "Speedtest" "$section" "Speedtest" "" + config_get "Telegram" "$section" "Telegram" "" + config_get "Microsoft" "$section" "Microsoft" "" + config_get "PayPal" "$section" "PayPal" "" + config_get "Domestic" "$section" "Domestic" "" + config_get "Others" "$section" "Others" "" +} + +if [ "$2" != "0" ]; then + config_load "openclash" + config_foreach yml_other_rules_get "other_rules" "$6" + if [ -z "$rule_name" ]; then + yml_other_set "$1" "$2" "$3" "$4" "$5" + exit 0 #判断策略组是否存在 - GlobalTV=$(uci get openclash.config.GlobalTV 2>/dev/null) - AsianTV=$(uci get openclash.config.AsianTV 2>/dev/null) - Proxy=$(uci get openclash.config.Proxy 2>/dev/null) - Youtube=$(uci get openclash.config.Youtube 2>/dev/null) - Apple=$(uci get openclash.config.Apple 2>/dev/null) - Netflix=$(uci get openclash.config.Netflix 2>/dev/null) - Spotify=$(uci get openclash.config.Spotify 2>/dev/null) - Steam=$(uci get openclash.config.Steam 2>/dev/null) - AdBlock=$(uci get openclash.config.AdBlock 2>/dev/null) - Netease_Music=$(uci get openclash.config.Netease_Music 2>/dev/null) - Speedtest=$(uci get openclash.config.Speedtest 2>/dev/null) - Telegram=$(uci get openclash.config.Telegram 2>/dev/null) - Microsoft=$(uci get openclash.config.Microsoft 2>/dev/null) - PayPal=$(uci get openclash.config.PayPal 2>/dev/null) - Domestic=$(uci get openclash.config.Domestic 2>/dev/null) - Others=$(uci get openclash.config.Others 2>/dev/null) - if [ "$2" = "ConnersHua_return" ]; then + elif [ "$rule_name" = "ConnersHua_return" ]; then if [ -z "$(grep -F "$Proxy" /tmp/Proxy_Group)" ]\ || [ -z "$(grep -F "$Others" /tmp/Proxy_Group)" ];then - echo "${1} Warning: Because of The Different Porxy-Group's Name, Stop Setting The Other Rules!" >>/tmp/openclash.log - yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" + echo "${1} Warning: Because of The Different Porxy-Group's Name, Stop Setting The Other Rules!" >> $LOG_FILE + yml_other_set "$1" "$2" "$3" "$4" "$5" exit 0 fi - elif [ "$2" = "ConnersHua" ]; then + elif [ "$rule_name" = "ConnersHua" ]; then if [ -z "$(grep "$GlobalTV" /tmp/Proxy_Group)" ]\ || [ -z "$(grep -F "$AsianTV" /tmp/Proxy_Group)" ]\ || [ -z "$(grep -F "$Proxy" /tmp/Proxy_Group)" ]\ || [ -z "$(grep -F "$Others" /tmp/Proxy_Group)" ]\ || [ -z "$(grep -F "$Domestic" /tmp/Proxy_Group)" ]; then - echo "${1} Warning: Because of The Different Porxy-Group's Name, Stop Setting The Other Rules!" >>/tmp/openclash.log - yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" + echo "${1} Warning: Because of The Different Porxy-Group's Name, Stop Setting The Other Rules!" >> $LOG_FILE + yml_other_set "$1" "$2" "$3" "$4" "$5" exit 0 fi - elif [ "$2" = "lhie1" ]; then + elif [ "$rule_name" = "lhie1" ]; then if [ -z "$(grep -F "$GlobalTV" /tmp/Proxy_Group)" ]\ || [ -z "$(grep -F "$AsianTV" /tmp/Proxy_Group)" ]\ || [ -z "$(grep -F "$Proxy" /tmp/Proxy_Group)" ]\ @@ -146,14 +189,14 @@ if [ "$2" != 0 ]; then || [ -z "$(grep -F "$PayPal" /tmp/Proxy_Group)" ]\ || [ -z "$(grep -F "$Others" /tmp/Proxy_Group)" ]\ || [ -z "$(grep -F "$Domestic" /tmp/Proxy_Group)" ]; then - echo "${1} Warning: Because of The Different Porxy-Group's Name, Stop Setting The Other Rules!" >>/tmp/openclash.log - yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" + echo "${1} Warning: Because of The Different Porxy-Group's Name, Stop Setting The Other Rules!" >> $LOG_FILE + yml_other_set "$1" "$2" "$3" "$4" "$5" exit 0 fi fi - if [ "$Proxy" = "读取错误,配置文件异常!" ]; then - echo "${1} Warning: Can not Get The Porxy-Group's Name, Stop Setting The Other Rules!" >>/tmp/openclash.log - yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" + if [ -z "$Proxy" ]; then + echo "${1} Error: Missing Porxy-Group's Name, Stop Setting The Other Rules!" >> $LOG_FILE + yml_other_set "$1" "$2" "$3" "$4" "$5" exit 0 else #删除原有的部分,防止冲突 @@ -163,7 +206,7 @@ if [ "$2" != 0 ]; then if [ -n "$(ruby_read "$4" "['rules']")" ]; then ruby_edit "$4" "['rules'].clear" fi - if [ "$2" = "lhie1" ]; then + if [ "$rule_name" = "lhie1" ]; then ruby -ryaml -E UTF-8 -e " begin Value = YAML.load_file('$4'); @@ -216,7 +259,7 @@ if [ "$2" != 0 ]; then rescue Exception => e puts '${LOGTIME} Set lhie1 Rules Error: ' + e.message end" 2>/dev/null >> $LOG_FILE - elif [ "$2" = "ConnersHua" ]; then + elif [ "$rule_name" = "ConnersHua" ]; then ruby -ryaml -E UTF-8 -e " begin Value = YAML.load_file('$4'); @@ -241,7 +284,7 @@ if [ "$2" != 0 ]; then }; File.open('$4','w') {|f| YAML.dump(Value, f)}; rescue Exception => e - puts '${LOGTIME} Set lhie1 Rules Error: ' + e.message + puts '${LOGTIME} Set ConnersHua Rules Error: ' + e.message end" 2>/dev/null >> $LOG_FILE else ruby -ryaml -E UTF-8 -e " @@ -256,10 +299,10 @@ if [ "$2" != 0 ]; then }; File.open('$4','w') {|f| YAML.dump(Value, f)}; rescue Exception => e - puts '${LOGTIME} Set lhie1 Rules Error: ' + e.message + puts '${LOGTIME} Set ConnersHua Return Rules Error: ' + e.message end" 2>/dev/null >> $LOG_FILE fi fi fi -yml_other_set "$1" "$2" "$3" "$4" "$5" "$6" "$7" +yml_other_set "$1" "$2" "$3" "$4" "$5"