diff --git a/client/android/AndroidManifest.xml b/client/android/AndroidManifest.xml index d0e94d39..84c38fc3 100644 --- a/client/android/AndroidManifest.xml +++ b/client/android/AndroidManifest.xml @@ -15,7 +15,8 @@ - + + @@ -76,17 +77,21 @@ - - - - - + + + + + + + + + + + + - - + + diff --git a/client/android/aidl/com/github/shadowsocks/aidl/IShadowsocksServiceCallback.aidl b/client/android/aidl/com/github/shadowsocks/aidl/IShadowsocksServiceCallback.aidl deleted file mode 100644 index 5d4caa81..00000000 --- a/client/android/aidl/com/github/shadowsocks/aidl/IShadowsocksServiceCallback.aidl +++ /dev/null @@ -1,11 +0,0 @@ -package com.github.shadowsocks.aidl; - -import com.github.shadowsocks.aidl.TrafficStats; - -//"oneway" unexpected. xinlake -interface IShadowsocksServiceCallback { - oneway void stateChanged(int state, String profileName, String msg); - oneway void trafficUpdated(long profileId, in TrafficStats stats); - // Traffic data has persisted to database, listener should refetch their data from database - oneway void trafficPersisted(long profileId); -} diff --git a/client/android/aidl/com/github/shadowsocks/aidl/TrafficStats.aidl b/client/android/aidl/com/github/shadowsocks/aidl/TrafficStats.aidl deleted file mode 100644 index 8668fa84..00000000 --- a/client/android/aidl/com/github/shadowsocks/aidl/TrafficStats.aidl +++ /dev/null @@ -1,3 +0,0 @@ -package com.github.shadowsocks.aidl; - -parcelable TrafficStats; diff --git a/client/android/aidl/com/github/shadowsocks/aidl/IShadowsocksService.aidl b/client/android/aidl/org/amnezia/vpn/shadowsocks/core/aidl/IShadowsocksService.aidl similarity index 75% rename from client/android/aidl/com/github/shadowsocks/aidl/IShadowsocksService.aidl rename to client/android/aidl/org/amnezia/vpn/shadowsocks/core/aidl/IShadowsocksService.aidl index 026455be..62767893 100644 --- a/client/android/aidl/com/github/shadowsocks/aidl/IShadowsocksService.aidl +++ b/client/android/aidl/org/amnezia/vpn/shadowsocks/core/aidl/IShadowsocksService.aidl @@ -1,6 +1,6 @@ -package com.github.shadowsocks.aidl; +package org.amnezia.vpn.shadowsocks.core.aidl; -import com.github.shadowsocks.aidl.IShadowsocksServiceCallback; +import org.amnezia.vpn.shadowsocks.core.aidl.IShadowsocksServiceCallback; interface IShadowsocksService { int getState(); diff --git a/client/android/aidl/org/amnezia/vpn/shadowsocks/core/aidl/IShadowsocksServiceCallback.aidl b/client/android/aidl/org/amnezia/vpn/shadowsocks/core/aidl/IShadowsocksServiceCallback.aidl new file mode 100644 index 00000000..b575256c --- /dev/null +++ b/client/android/aidl/org/amnezia/vpn/shadowsocks/core/aidl/IShadowsocksServiceCallback.aidl @@ -0,0 +1,18 @@ +package org.amnezia.vpn.shadowsocks.core.aidl; + +import org.amnezia.vpn.shadowsocks.core.aidl.TrafficStats; + +//"oneway" unexpected. xinlake +interface IShadowsocksServiceCallback { + oneway void stateChanged(int state, String profileName, String msg); + oneway void trafficUpdated(long profileId, in TrafficStats stats); + // Traffic data has persisted to database, listener should refetch their data from database + oneway void trafficPersisted(long profileId); +} + +//oneway interface IShadowsocksServiceCallback { +// void stateChanged(int state, String profileName, String msg); +// void trafficUpdated(long profileId, in TrafficStats stats); +// // Traffic data has persisted to database, listener should refetch their data from database +// void trafficPersisted(long profileId); +//} diff --git a/client/android/aidl/org/amnezia/vpn/shadowsocks/core/aidl/TrafficStats.aidl b/client/android/aidl/org/amnezia/vpn/shadowsocks/core/aidl/TrafficStats.aidl new file mode 100644 index 00000000..f37e6b47 --- /dev/null +++ b/client/android/aidl/org/amnezia/vpn/shadowsocks/core/aidl/TrafficStats.aidl @@ -0,0 +1,3 @@ +package org.amnezia.vpn.shadowsocks.core.aidl; + +parcelable TrafficStats; diff --git a/client/android/assets/acl/bypass-china.acl b/client/android/assets/acl/bypass-china.acl new file mode 100644 index 00000000..b75a76ed --- /dev/null +++ b/client/android/assets/acl/bypass-china.acl @@ -0,0 +1,10377 @@ +[proxy_all] + +[bypass_list] +1.0.1.0/24 +1.0.2.0/23 +1.0.8.0/21 +1.0.32.0/19 +1.1.0.0/24 +1.1.2.0/23 +1.1.4.0/22 +1.1.8.0/21 +1.1.16.0/20 +1.1.32.0/19 +1.2.0.0/23 +1.2.2.0/24 +1.2.4.0/22 +1.2.8.0/21 +1.2.16.0/20 +1.2.32.0/19 +1.2.64.0/18 +1.3.0.0/16 +1.4.1.0/24 +1.4.2.0/23 +1.4.4.0/22 +1.4.8.0/21 +1.4.16.0/20 +1.4.32.0/19 +1.4.64.0/18 +1.8.0.0/16 +1.10.0.0/21 +1.10.8.0/23 +1.10.11.0/24 +1.10.12.0/22 +1.10.16.0/20 +1.10.32.0/19 +1.10.64.0/18 +1.12.0.0/14 +1.24.0.0/13 +1.45.0.0/16 +1.48.0.0/14 +1.56.0.0/13 +1.68.0.0/14 +1.80.0.0/12 +1.116.0.0/14 +1.180.0.0/14 +1.184.0.0/15 +1.188.0.0/14 +1.192.0.0/13 +1.202.0.0/15 +1.204.0.0/14 +8.128.0.0/10 +8.208.32.0/19 +8.208.64.0/18 +8.208.128.0/17 +8.209.0.0/16 +8.210.0.0/15 +8.212.0.0/14 +8.216.0.0/13 +14.0.0.0/21 +14.0.12.0/22 +14.1.0.0/22 +14.1.24.0/22 +14.1.96.0/22 +14.1.108.0/22 +14.16.0.0/12 +14.102.128.0/22 +14.102.156.0/22 +14.102.180.0/22 +14.103.0.0/16 +14.104.0.0/13 +14.112.0.0/12 +14.130.0.0/15 +14.134.0.0/15 +14.144.0.0/12 +14.192.60.0/22 +14.192.76.0/22 +14.196.0.0/15 +14.204.0.0/15 +14.208.0.0/12 +20.134.160.0/20 +20.139.160.0/20 +27.0.128.0/21 +27.0.160.0/21 +27.0.188.0/22 +27.0.204.0/22 +27.0.208.0/21 +27.8.0.0/13 +27.16.0.0/12 +27.34.232.0/21 +27.36.0.0/14 +27.40.0.0/13 +27.50.40.0/21 +27.50.128.0/17 +27.54.72.0/21 +27.54.152.0/21 +27.54.192.0/18 +27.98.208.0/20 +27.98.224.0/19 +27.99.128.0/17 +27.103.0.0/16 +27.106.128.0/18 +27.106.204.0/22 +27.109.32.0/19 +27.109.124.0/22 +27.112.0.0/18 +27.112.80.0/20 +27.112.112.0/21 +27.113.128.0/18 +27.115.0.0/17 +27.116.44.0/22 +27.121.72.0/21 +27.121.120.0/21 +27.123.232.0/22 +27.128.0.0/15 +27.131.220.0/22 +27.144.0.0/16 +27.148.0.0/14 +27.152.0.0/13 +27.184.0.0/13 +27.192.0.0/11 +27.224.0.0/14 +36.0.0.0/22 +36.0.8.0/21 +36.0.16.0/20 +36.0.32.0/19 +36.0.64.0/18 +36.0.128.0/17 +36.1.0.0/16 +36.4.0.0/14 +36.16.0.0/12 +36.32.0.0/14 +36.36.0.0/16 +36.37.0.0/19 +36.37.36.0/23 +36.37.39.0/24 +36.37.40.0/21 +36.37.48.0/20 +36.40.0.0/13 +36.48.0.0/15 +36.51.0.0/16 +36.56.0.0/13 +36.96.0.0/11 +36.128.0.0/10 +36.192.0.0/11 +36.248.0.0/14 +36.254.0.0/16 +36.255.116.0/22 +36.255.128.0/22 +36.255.164.0/22 +36.255.172.0/22 +36.255.176.0/22 +36.255.220.0/22 +39.0.0.0/24 +39.0.2.0/23 +39.0.4.0/22 +39.0.8.0/21 +39.0.16.0/20 +39.0.32.0/19 +39.0.64.0/18 +39.0.128.0/17 +39.64.0.0/11 +39.96.0.0/13 +39.104.0.0/14 +39.108.0.0/16 +39.109.120.0/23 +39.128.0.0/10 +40.0.176.0/20 +40.0.247.0/24 +40.0.248.0/22 +40.0.252.0/23 +40.0.255.0/24 +40.72.0.0/15 +40.125.128.0/17 +40.126.64.0/18 +40.198.10.0/24 +40.198.16.0/21 +40.198.24.0/23 +40.251.225.0/24 +40.251.227.0/24 +42.0.0.0/22 +42.0.8.0/21 +42.0.16.0/21 +42.0.24.0/22 +42.0.32.0/19 +42.0.128.0/17 +42.1.0.0/19 +42.1.32.0/20 +42.1.48.0/21 +42.1.56.0/22 +42.1.128.0/17 +42.4.0.0/14 +42.48.0.0/13 +42.56.0.0/14 +42.62.0.0/17 +42.62.128.0/19 +42.62.160.0/20 +42.62.180.0/22 +42.62.184.0/21 +42.63.0.0/16 +42.80.0.0/15 +42.83.64.0/20 +42.83.80.0/22 +42.83.88.0/21 +42.83.96.0/19 +42.83.128.0/17 +42.84.0.0/14 +42.88.0.0/13 +42.96.64.0/19 +42.96.96.0/21 +42.96.108.0/22 +42.96.112.0/20 +42.96.128.0/17 +42.97.0.0/16 +42.99.0.0/18 +42.99.64.0/19 +42.99.96.0/20 +42.99.112.0/22 +42.99.120.0/21 +42.100.0.0/14 +42.120.0.0/15 +42.122.0.0/16 +42.123.0.0/19 +42.123.36.0/22 +42.123.40.0/21 +42.123.48.0/20 +42.123.64.0/18 +42.123.128.0/17 +42.128.0.0/12 +42.156.0.0/19 +42.156.36.0/22 +42.156.40.0/21 +42.156.48.0/20 +42.156.64.0/18 +42.156.128.0/17 +42.157.0.0/16 +42.158.0.0/15 +42.160.0.0/12 +42.176.0.0/13 +42.184.0.0/15 +42.186.0.0/16 +42.187.0.0/18 +42.187.64.0/19 +42.187.96.0/20 +42.187.112.0/21 +42.187.120.0/22 +42.187.128.0/17 +42.192.0.0/13 +42.201.0.0/17 +42.202.0.0/15 +42.204.0.0/14 +42.208.0.0/12 +42.224.0.0/12 +42.240.0.0/16 +42.242.0.0/15 +42.244.0.0/14 +42.248.0.0/13 +43.224.12.0/22 +43.224.24.0/22 +43.224.44.0/22 +43.224.52.0/22 +43.224.56.0/22 +43.224.64.0/21 +43.224.72.0/22 +43.224.80.0/22 +43.224.100.0/22 +43.224.144.0/22 +43.224.160.0/22 +43.224.176.0/22 +43.224.184.0/22 +43.224.200.0/21 +43.224.208.0/21 +43.224.216.0/22 +43.224.224.0/22 +43.224.240.0/22 +43.225.76.0/22 +43.225.84.0/22 +43.225.120.0/21 +43.225.140.0/22 +43.225.172.0/22 +43.225.180.0/22 +43.225.208.0/22 +43.225.216.0/21 +43.225.224.0/20 +43.225.240.0/21 +43.225.252.0/22 +43.226.32.0/19 +43.226.64.0/19 +43.226.96.0/20 +43.226.112.0/21 +43.226.120.0/22 +43.226.128.0/18 +43.226.192.0/20 +43.226.208.0/21 +43.226.236.0/22 +43.226.240.0/20 +43.227.0.0/21 +43.227.8.0/22 +43.227.32.0/19 +43.227.64.0/19 +43.227.96.0/21 +43.227.104.0/22 +43.227.136.0/21 +43.227.144.0/22 +43.227.152.0/21 +43.227.160.0/20 +43.227.176.0/21 +43.227.188.0/22 +43.227.192.0/19 +43.227.232.0/22 +43.227.248.0/21 +43.228.0.0/18 +43.228.64.0/21 +43.228.76.0/22 +43.228.100.0/22 +43.228.116.0/22 +43.228.120.0/22 +43.228.132.0/22 +43.228.136.0/22 +43.228.148.0/22 +43.228.152.0/22 +43.228.188.0/22 +43.229.16.0/22 +43.229.40.0/22 +43.229.48.0/22 +43.229.56.0/22 +43.229.96.0/22 +43.229.120.0/22 +43.229.136.0/21 +43.229.144.0/22 +43.229.168.0/21 +43.229.176.0/20 +43.229.192.0/21 +43.229.216.0/21 +43.229.232.0/21 +43.230.20.0/22 +43.230.32.0/22 +43.230.68.0/22 +43.230.72.0/22 +43.230.84.0/22 +43.230.124.0/22 +43.230.136.0/22 +43.230.168.0/22 +43.230.220.0/22 +43.230.224.0/19 +43.231.12.0/22 +43.231.32.0/20 +43.231.80.0/20 +43.231.96.0/20 +43.231.136.0/21 +43.231.144.0/20 +43.231.160.0/20 +43.231.176.0/21 +43.236.0.0/15 +43.238.0.0/16 +43.239.0.0/19 +43.239.32.0/20 +43.239.48.0/22 +43.239.116.0/22 +43.239.120.0/22 +43.239.172.0/22 +43.239.176.0/22 +43.240.0.0/22 +43.240.48.0/22 +43.240.56.0/21 +43.240.68.0/22 +43.240.72.0/21 +43.240.84.0/22 +43.240.124.0/22 +43.240.128.0/21 +43.240.136.0/22 +43.240.156.0/22 +43.240.160.0/19 +43.240.192.0/19 +43.240.236.0/22 +43.240.240.0/20 +43.241.0.0/20 +43.241.16.0/21 +43.241.48.0/22 +43.241.76.0/22 +43.241.80.0/20 +43.241.112.0/22 +43.241.168.0/21 +43.241.176.0/21 +43.241.184.0/22 +43.241.196.0/22 +43.241.208.0/20 +43.241.224.0/20 +43.241.240.0/22 +43.241.248.0/21 +43.242.8.0/21 +43.242.16.0/20 +43.242.44.0/22 +43.242.48.0/20 +43.242.64.0/22 +43.242.72.0/21 +43.242.80.0/20 +43.242.96.0/22 +43.242.144.0/20 +43.242.160.0/21 +43.242.168.0/22 +43.242.180.0/22 +43.242.188.0/22 +43.242.192.0/21 +43.242.204.0/22 +43.242.216.0/21 +43.242.252.0/22 +43.243.4.0/22 +43.243.8.0/21 +43.243.16.0/22 +43.243.24.0/22 +43.243.88.0/22 +43.243.128.0/22 +43.243.136.0/22 +43.243.144.0/21 +43.243.156.0/22 +43.243.168.0/22 +43.243.180.0/22 +43.243.188.0/22 +43.243.228.0/22 +43.243.232.0/22 +43.243.244.0/22 +43.246.0.0/18 +43.246.64.0/19 +43.246.96.0/22 +43.246.112.0/22 +43.246.212.0/22 +43.246.228.0/22 +43.247.4.0/22 +43.247.8.0/22 +43.247.44.0/22 +43.247.48.0/22 +43.247.68.0/22 +43.247.76.0/22 +43.247.84.0/22 +43.247.88.0/21 +43.247.96.0/21 +43.247.108.0/22 +43.247.112.0/22 +43.247.148.0/22 +43.247.152.0/22 +43.247.176.0/20 +43.247.196.0/22 +43.247.200.0/21 +43.247.208.0/20 +43.247.224.0/19 +43.248.0.0/21 +43.248.20.0/22 +43.248.28.0/22 +43.248.48.0/22 +43.248.76.0/22 +43.248.80.0/20 +43.248.96.0/19 +43.248.128.0/20 +43.248.144.0/21 +43.248.176.0/20 +43.248.192.0/20 +43.248.208.0/22 +43.248.228.0/22 +43.248.232.0/22 +43.248.244.0/22 +43.249.0.0/21 +43.249.8.0/22 +43.249.24.0/22 +43.249.120.0/22 +43.249.132.0/22 +43.249.136.0/22 +43.249.144.0/20 +43.249.160.0/21 +43.249.168.0/22 +43.249.192.0/22 +43.249.236.0/22 +43.250.4.0/22 +43.250.12.0/22 +43.250.16.0/21 +43.250.28.0/22 +43.250.32.0/21 +43.250.72.0/22 +43.250.96.0/20 +43.250.112.0/21 +43.250.128.0/22 +43.250.144.0/21 +43.250.160.0/22 +43.250.168.0/21 +43.250.176.0/22 +43.250.200.0/22 +43.250.212.0/22 +43.250.216.0/21 +43.250.236.0/22 +43.250.244.0/22 +43.251.4.0/22 +43.251.8.0/21 +43.251.36.0/22 +43.251.100.0/22 +43.251.116.0/22 +43.251.192.0/22 +43.251.232.0/21 +43.251.244.0/22 +43.252.40.0/22 +43.252.48.0/22 +43.252.56.0/22 +43.252.224.0/22 +43.254.0.0/21 +43.254.8.0/22 +43.254.24.0/22 +43.254.36.0/22 +43.254.44.0/22 +43.254.52.0/22 +43.254.64.0/22 +43.254.72.0/22 +43.254.84.0/22 +43.254.88.0/21 +43.254.100.0/22 +43.254.104.0/22 +43.254.112.0/21 +43.254.128.0/22 +43.254.136.0/21 +43.254.144.0/20 +43.254.168.0/21 +43.254.180.0/22 +43.254.184.0/21 +43.254.192.0/21 +43.254.200.0/22 +43.254.208.0/22 +43.254.220.0/22 +43.254.224.0/20 +43.254.240.0/22 +43.254.248.0/21 +43.255.0.0/21 +43.255.8.0/22 +43.255.16.0/22 +43.255.48.0/22 +43.255.64.0/20 +43.255.84.0/22 +43.255.96.0/22 +43.255.108.0/22 +43.255.144.0/22 +43.255.168.0/22 +43.255.176.0/22 +43.255.184.0/22 +43.255.192.0/22 +43.255.200.0/21 +43.255.208.0/21 +43.255.224.0/21 +43.255.232.0/22 +43.255.244.0/22 +45.40.192.0/18 +45.65.16.0/20 +45.112.132.0/22 +45.112.188.0/22 +45.112.208.0/20 +45.112.228.0/22 +45.112.232.0/21 +45.113.12.0/22 +45.113.16.0/20 +45.113.40.0/22 +45.113.52.0/22 +45.113.56.0/22 +45.113.72.0/22 +45.113.144.0/21 +45.113.168.0/22 +45.113.176.0/22 +45.113.184.0/22 +45.113.200.0/21 +45.113.208.0/20 +45.113.228.0/22 +45.113.240.0/22 +45.113.252.0/22 +45.114.0.0/22 +45.114.12.0/22 +45.114.32.0/22 +45.114.40.0/22 +45.114.52.0/22 +45.114.96.0/22 +45.114.104.0/21 +45.114.124.0/22 +45.114.136.0/22 +45.114.196.0/22 +45.114.200.0/22 +45.114.228.0/22 +45.114.236.0/22 +45.114.252.0/22 +45.115.44.0/22 +45.115.100.0/22 +45.115.120.0/22 +45.115.132.0/22 +45.115.144.0/22 +45.115.156.0/22 +45.115.164.0/22 +45.115.200.0/22 +45.115.212.0/22 +45.115.216.0/22 +45.115.228.0/22 +45.115.236.0/22 +45.115.244.0/22 +45.115.248.0/22 +45.116.12.0/22 +45.116.16.0/21 +45.116.24.0/22 +45.116.32.0/21 +45.116.52.0/22 +45.116.96.0/21 +45.116.140.0/22 +45.116.152.0/22 +45.116.208.0/22 +45.117.8.0/22 +45.117.20.0/22 +45.117.68.0/22 +45.117.124.0/22 +45.117.252.0/22 +45.119.52.0/22 +45.119.60.0/22 +45.119.64.0/21 +45.119.72.0/22 +45.119.104.0/22 +45.119.116.0/22 +45.119.232.0/22 +45.120.100.0/22 +45.120.140.0/22 +45.120.164.0/22 +45.120.220.0/22 +45.120.240.0/22 +45.121.20.0/22 +45.121.52.0/22 +45.121.64.0/21 +45.121.72.0/22 +45.121.92.0/22 +45.121.96.0/22 +45.121.104.0/22 +45.121.172.0/22 +45.121.176.0/22 +45.121.212.0/22 +45.121.240.0/20 +45.122.0.0/19 +45.122.32.0/21 +45.122.40.0/22 +45.122.60.0/22 +45.122.64.0/19 +45.122.96.0/20 +45.122.112.0/21 +45.122.160.0/19 +45.122.192.0/20 +45.122.208.0/21 +45.122.216.0/22 +45.123.28.0/22 +45.123.32.0/21 +45.123.44.0/22 +45.123.48.0/20 +45.123.64.0/20 +45.123.80.0/21 +45.123.88.0/22 +45.123.120.0/22 +45.123.128.0/21 +45.123.136.0/22 +45.123.148.0/22 +45.123.152.0/21 +45.123.164.0/22 +45.123.168.0/21 +45.123.176.0/21 +45.123.184.0/22 +45.123.204.0/22 +45.123.212.0/22 +45.123.224.0/19 +45.124.0.0/22 +45.124.20.0/22 +45.124.28.0/22 +45.124.32.0/21 +45.124.44.0/22 +45.124.68.0/22 +45.124.76.0/22 +45.124.80.0/22 +45.124.100.0/22 +45.124.124.0/22 +45.124.172.0/22 +45.124.176.0/22 +45.124.208.0/22 +45.124.248.0/21 +45.125.12.0/22 +45.125.16.0/22 +45.125.24.0/21 +45.125.32.0/22 +45.125.44.0/22 +45.125.52.0/22 +45.125.56.0/22 +45.125.76.0/22 +45.125.80.0/20 +45.125.96.0/21 +45.125.104.0/22 +45.125.136.0/22 +45.126.48.0/21 +45.126.100.0/22 +45.126.108.0/22 +45.126.112.0/21 +45.126.120.0/22 +45.126.212.0/22 +45.126.220.0/22 +45.127.8.0/21 +45.127.96.0/22 +45.127.116.0/22 +45.127.124.0/22 +45.127.128.0/22 +45.127.144.0/21 +45.127.156.0/22 +45.127.216.0/22 +45.248.8.0/22 +45.248.80.0/21 +45.248.88.0/22 +45.248.96.0/20 +45.248.128.0/21 +45.248.204.0/22 +45.248.208.0/20 +45.248.224.0/19 +45.249.0.0/21 +45.249.12.0/22 +45.249.16.0/20 +45.249.32.0/21 +45.249.92.0/22 +45.249.112.0/22 +45.249.180.0/22 +45.249.188.0/22 +45.249.192.0/20 +45.249.208.0/21 +45.250.12.0/22 +45.250.16.0/22 +45.250.28.0/22 +45.250.32.0/21 +45.250.40.0/22 +45.250.76.0/22 +45.250.80.0/20 +45.250.96.0/22 +45.250.104.0/21 +45.250.112.0/20 +45.250.128.0/20 +45.250.144.0/21 +45.250.152.0/22 +45.250.164.0/22 +45.250.180.0/22 +45.250.184.0/21 +45.250.192.0/22 +45.251.0.0/22 +45.251.8.0/22 +45.251.16.0/21 +45.251.52.0/22 +45.251.84.0/22 +45.251.88.0/21 +45.251.96.0/21 +45.251.120.0/21 +45.251.136.0/21 +45.251.144.0/20 +45.251.160.0/19 +45.251.192.0/19 +45.251.224.0/22 +45.251.240.0/22 +45.252.0.0/19 +45.252.32.0/20 +45.252.48.0/22 +45.252.60.0/22 +45.252.84.0/22 +45.252.88.0/21 +45.252.96.0/19 +45.252.128.0/19 +45.252.160.0/20 +45.252.176.0/22 +45.252.192.0/19 +45.252.224.0/21 +45.252.232.0/22 +45.253.0.0/18 +45.253.64.0/20 +45.253.80.0/21 +45.253.92.0/22 +45.253.96.0/20 +45.253.112.0/21 +45.253.120.0/22 +45.253.130.0/23 +45.253.132.0/22 +45.253.136.0/21 +45.253.144.0/20 +45.253.160.0/19 +45.253.192.0/18 +45.254.0.0/19 +45.254.40.0/22 +45.254.48.0/20 +45.254.64.0/18 +45.254.128.0/18 +45.254.192.0/19 +45.254.224.0/21 +45.254.236.0/22 +45.254.240.0/22 +45.254.248.0/22 +45.255.0.0/17 +45.255.132.0/22 +45.255.136.0/21 +45.255.144.0/20 +45.255.160.0/19 +45.255.192.0/19 +45.255.224.0/20 +45.255.240.0/21 +45.255.248.0/22 +46.61.179.170/31 +46.248.24.0/23 +47.92.0.0/14 +47.96.0.0/11 +49.4.0.0/14 +49.51.0.0/16 +49.52.0.0/14 +49.64.0.0/11 +49.112.0.0/13 +49.120.0.0/14 +49.128.0.0/24 +49.128.2.0/23 +49.128.4.0/22 +49.140.0.0/15 +49.152.0.0/14 +49.208.0.0/14 +49.220.0.0/14 +49.232.0.0/14 +49.239.0.0/18 +49.239.192.0/18 +49.246.224.0/19 +52.80.0.0/14 +52.94.249.0/27 +52.95.216.104/30 +52.130.0.0/15 +54.222.0.0/15 +54.231.208.0/20 +54.240.224.0/24 +57.92.96.0/20 +58.14.0.0/15 +58.16.0.0/13 +58.24.0.0/15 +58.30.0.0/15 +58.32.0.0/11 +58.65.232.0/21 +58.66.0.0/15 +58.68.128.0/17 +58.82.0.0/17 +58.83.0.0/16 +58.87.64.0/18 +58.99.128.0/17 +58.100.0.0/15 +58.116.0.0/14 +58.128.0.0/13 +58.144.0.0/16 +58.154.0.0/15 +58.192.0.0/11 +58.240.0.0/12 +59.32.0.0/11 +59.64.0.0/12 +59.80.0.0/14 +59.107.0.0/16 +59.108.0.0/14 +59.151.0.0/17 +59.152.16.0/20 +59.152.32.0/21 +59.152.64.0/20 +59.152.112.0/21 +59.153.4.0/22 +59.153.32.0/22 +59.153.60.0/22 +59.153.64.0/21 +59.153.72.0/22 +59.153.92.0/22 +59.153.116.0/22 +59.153.136.0/22 +59.153.152.0/21 +59.153.164.0/22 +59.153.168.0/21 +59.153.176.0/20 +59.153.192.0/22 +59.155.0.0/16 +59.172.0.0/14 +59.191.0.0/17 +59.191.240.0/20 +59.192.0.0/10 +60.0.0.0/11 +60.55.0.0/16 +60.63.0.0/16 +60.160.0.0/11 +60.194.0.0/15 +60.200.0.0/13 +60.208.0.0/12 +60.232.0.0/15 +60.235.0.0/16 +60.245.128.0/17 +60.247.0.0/16 +60.252.0.0/16 +60.253.128.0/17 +60.255.0.0/16 +61.4.80.0/20 +61.4.176.0/20 +61.8.160.0/20 +61.14.4.0/22 +61.14.212.0/22 +61.14.216.0/21 +61.14.240.0/21 +61.28.0.0/17 +61.29.128.0/17 +61.45.128.0/18 +61.45.224.0/20 +61.47.128.0/18 +61.48.0.0/13 +61.87.192.0/18 +61.128.0.0/10 +61.213.145.106/32 +61.232.0.0/14 +61.236.0.0/15 +61.240.0.0/14 +62.234.0.0/16 +64.85.27.0/24 +65.55.60.184/30 +68.79.0.0/18 +69.230.192.0/18 +69.231.128.0/18 +69.234.192.0/18 +69.235.128.0/18 +71.131.192.0/18 +71.132.0.0/18 +71.136.64.0/18 +71.137.0.0/18 +72.163.248.0/22 +81.68.0.0/14 +82.156.0.0/15 +87.254.207.0/24 +93.183.14.0/24 +93.183.18.0/24 +94.191.0.0/17 +101.0.0.0/22 +101.1.0.0/22 +101.2.172.0/22 +101.4.0.0/14 +101.16.0.0/12 +101.32.0.0/12 +101.48.0.0/15 +101.50.8.0/21 +101.50.56.0/22 +101.52.0.0/16 +101.53.100.0/22 +101.54.0.0/16 +101.55.224.0/21 +101.64.0.0/13 +101.72.0.0/14 +101.76.0.0/15 +101.78.0.0/22 +101.78.32.0/19 +101.80.0.0/12 +101.96.0.0/21 +101.96.8.0/22 +101.96.16.0/20 +101.96.128.0/17 +101.99.96.0/19 +101.101.64.0/19 +101.101.100.0/24 +101.101.102.0/23 +101.101.104.0/21 +101.101.112.0/20 +101.102.64.0/19 +101.102.100.0/23 +101.102.102.0/24 +101.102.104.0/21 +101.102.112.0/20 +101.104.0.0/14 +101.110.64.0/19 +101.110.96.0/20 +101.110.116.0/22 +101.110.120.0/21 +101.120.0.0/14 +101.124.0.0/15 +101.126.0.0/16 +101.128.0.0/22 +101.128.8.0/21 +101.128.16.0/20 +101.128.32.0/19 +101.129.0.0/16 +101.130.0.0/15 +101.132.0.0/14 +101.144.0.0/12 +101.192.0.0/13 +101.200.0.0/15 +101.203.128.0/19 +101.203.160.0/21 +101.203.172.0/22 +101.203.176.0/20 +101.204.0.0/14 +101.224.0.0/13 +101.232.0.0/15 +101.234.64.0/21 +101.234.76.0/22 +101.234.80.0/20 +101.234.96.0/19 +101.236.0.0/14 +101.240.0.0/13 +101.248.0.0/15 +101.251.0.0/22 +101.251.8.0/21 +101.251.16.0/20 +101.251.32.0/19 +101.251.64.0/18 +101.251.128.0/17 +101.252.0.0/15 +101.254.0.0/16 +103.1.8.0/22 +103.1.20.0/22 +103.1.24.0/22 +103.1.72.0/22 +103.1.88.0/22 +103.1.168.0/22 +103.2.108.0/22 +103.2.156.0/22 +103.2.164.0/22 +103.2.200.0/21 +103.2.208.0/21 +103.3.84.0/22 +103.3.88.0/21 +103.3.96.0/19 +103.3.128.0/20 +103.3.148.0/22 +103.3.152.0/21 +103.4.56.0/22 +103.4.168.0/22 +103.4.184.0/22 +103.4.224.0/22 +103.5.36.0/22 +103.5.52.0/22 +103.5.56.0/22 +103.5.152.0/22 +103.5.168.0/22 +103.5.192.0/22 +103.5.252.0/22 +103.6.76.0/22 +103.6.108.0/22 +103.6.120.0/22 +103.6.220.0/22 +103.6.228.0/22 +103.7.4.0/22 +103.7.28.0/22 +103.7.140.0/22 +103.7.212.0/22 +103.7.216.0/21 +103.8.0.0/21 +103.8.8.0/22 +103.8.32.0/22 +103.8.52.0/22 +103.8.68.0/22 +103.8.108.0/22 +103.8.156.0/22 +103.8.200.0/21 +103.8.220.0/22 +103.9.8.0/22 +103.9.24.0/22 +103.9.108.0/22 +103.9.152.0/22 +103.9.192.0/22 +103.9.248.0/21 +103.10.0.0/22 +103.10.16.0/22 +103.10.84.0/22 +103.10.111.0/24 +103.10.140.0/22 +103.11.16.0/22 +103.11.168.0/22 +103.11.180.0/22 +103.12.32.0/22 +103.12.68.0/22 +103.12.92.0/22 +103.12.136.0/22 +103.12.184.0/22 +103.12.232.0/22 +103.13.12.0/22 +103.13.72.0/23 +103.13.124.0/22 +103.13.144.0/22 +103.13.196.0/22 +103.13.220.0/22 +103.13.244.0/22 +103.14.32.0/22 +103.14.84.0/22 +103.14.100.0/22 +103.14.132.0/22 +103.14.136.0/22 +103.14.156.0/22 +103.14.240.0/22 +103.15.4.0/22 +103.15.8.0/22 +103.15.16.0/22 +103.15.96.0/22 +103.15.200.0/22 +103.16.52.0/22 +103.16.80.0/21 +103.16.88.0/22 +103.16.108.0/22 +103.16.124.0/22 +103.17.40.0/22 +103.17.64.0/22 +103.17.120.0/22 +103.17.136.0/22 +103.17.160.0/22 +103.17.204.0/22 +103.17.228.0/22 +103.18.192.0/22 +103.18.208.0/21 +103.18.224.0/22 +103.19.0.0/22 +103.19.12.0/22 +103.19.40.0/21 +103.19.64.0/21 +103.19.72.0/22 +103.19.232.0/22 +103.20.12.0/22 +103.20.32.0/22 +103.20.44.0/22 +103.20.68.0/22 +103.20.112.0/22 +103.20.128.0/22 +103.20.160.0/22 +103.20.248.0/22 +103.21.112.0/21 +103.21.136.0/21 +103.21.176.0/22 +103.21.208.0/22 +103.21.240.0/22 +103.22.0.0/18 +103.22.64.0/19 +103.22.100.0/22 +103.22.104.0/21 +103.22.112.0/20 +103.22.188.0/22 +103.22.228.0/22 +103.22.252.0/22 +103.23.8.0/22 +103.23.56.0/22 +103.23.160.0/21 +103.23.176.0/22 +103.23.228.0/22 +103.24.24.0/22 +103.24.116.0/22 +103.24.128.0/22 +103.24.144.0/22 +103.24.176.0/22 +103.24.184.0/22 +103.24.220.0/22 +103.24.228.0/22 +103.24.248.0/21 +103.25.8.0/23 +103.25.20.0/22 +103.25.24.0/21 +103.25.32.0/21 +103.25.40.0/22 +103.25.48.0/22 +103.25.64.0/21 +103.25.148.0/22 +103.25.156.0/22 +103.25.216.0/22 +103.26.0.0/22 +103.26.64.0/22 +103.26.76.0/22 +103.26.116.0/22 +103.26.132.0/22 +103.26.156.0/22 +103.26.160.0/22 +103.26.228.0/22 +103.26.240.0/22 +103.27.4.0/22 +103.27.12.0/22 +103.27.24.0/22 +103.27.56.0/22 +103.27.96.0/22 +103.27.184.0/22 +103.27.208.0/21 +103.27.240.0/22 +103.28.4.0/22 +103.28.8.0/22 +103.28.184.0/22 +103.28.204.0/22 +103.28.212.0/22 +103.29.16.0/22 +103.29.128.0/21 +103.29.136.0/22 +103.30.20.0/22 +103.30.96.0/22 +103.30.148.0/22 +103.30.200.0/22 +103.30.228.0/22 +103.30.234.0/24 +103.30.236.0/22 +103.31.0.0/22 +103.31.48.0/20 +103.31.64.0/21 +103.31.72.0/24 +103.31.148.0/22 +103.31.160.0/22 +103.31.168.0/22 +103.31.200.0/22 +103.31.236.0/22 +103.32.0.0/15 +103.34.0.0/16 +103.35.0.0/19 +103.35.32.0/20 +103.35.48.0/22 +103.35.104.0/22 +103.35.116.0/22 +103.35.180.0/22 +103.35.200.0/22 +103.35.220.0/22 +103.36.20.0/22 +103.36.28.0/22 +103.36.36.0/22 +103.36.56.0/21 +103.36.64.0/22 +103.36.72.0/22 +103.36.96.0/22 +103.36.132.0/22 +103.36.136.0/22 +103.36.160.0/19 +103.36.192.0/19 +103.36.224.0/20 +103.36.240.0/21 +103.37.0.0/22 +103.37.12.0/22 +103.37.16.0/22 +103.37.24.0/22 +103.37.44.0/22 +103.37.52.0/22 +103.37.56.0/22 +103.37.72.0/22 +103.37.100.0/22 +103.37.104.0/22 +103.37.124.0/22 +103.37.136.0/21 +103.37.144.0/20 +103.37.160.0/21 +103.37.172.0/22 +103.37.176.0/22 +103.37.188.0/22 +103.37.208.0/20 +103.37.248.0/21 +103.38.0.0/22 +103.38.32.0/22 +103.38.40.0/21 +103.38.56.0/22 +103.38.76.0/22 +103.38.84.0/22 +103.38.92.0/22 +103.38.96.0/22 +103.38.116.0/22 +103.38.132.0/22 +103.38.140.0/22 +103.38.220.0/22 +103.38.224.0/21 +103.38.232.0/22 +103.38.252.0/22 +103.39.16.0/22 +103.39.64.0/22 +103.39.88.0/22 +103.39.100.0/22 +103.39.104.0/21 +103.39.160.0/19 +103.39.200.0/21 +103.39.208.0/20 +103.39.224.0/21 +103.39.232.0/22 +103.40.12.0/22 +103.40.16.0/20 +103.40.32.0/20 +103.40.88.0/22 +103.40.100.0/22 +103.40.112.0/22 +103.40.192.0/22 +103.40.212.0/22 +103.40.220.0/22 +103.40.228.0/22 +103.40.232.0/21 +103.40.240.0/20 +103.41.0.0/22 +103.41.16.0/22 +103.41.52.0/22 +103.41.140.0/22 +103.41.148.0/22 +103.41.152.0/22 +103.41.160.0/21 +103.41.220.0/22 +103.41.224.0/21 +103.41.232.0/22 +103.42.8.0/22 +103.42.24.0/21 +103.42.32.0/22 +103.42.64.0/21 +103.42.76.0/22 +103.42.104.0/22 +103.42.180.0/22 +103.42.232.0/22 +103.43.16.0/22 +103.43.26.0/23 +103.43.84.0/22 +103.43.96.0/21 +103.43.104.0/22 +103.43.124.0/22 +103.43.184.0/22 +103.43.192.0/21 +103.43.208.0/22 +103.43.220.0/22 +103.43.224.0/22 +103.43.232.0/22 +103.43.240.0/22 +103.44.56.0/22 +103.44.80.0/22 +103.44.88.0/22 +103.44.120.0/21 +103.44.132.0/22 +103.44.144.0/22 +103.44.152.0/22 +103.44.168.0/22 +103.44.176.0/20 +103.44.192.0/20 +103.44.224.0/22 +103.44.236.0/22 +103.44.240.0/20 +103.45.0.0/18 +103.45.72.0/21 +103.45.80.0/20 +103.45.96.0/19 +103.45.128.0/18 +103.45.192.0/19 +103.45.224.0/22 +103.45.248.0/22 +103.46.0.0/22 +103.46.12.0/22 +103.46.16.0/20 +103.46.32.0/19 +103.46.64.0/18 +103.46.128.0/21 +103.46.136.0/22 +103.46.152.0/21 +103.46.160.0/20 +103.46.176.0/21 +103.46.244.0/22 +103.46.248.0/22 +103.47.4.0/22 +103.47.20.0/22 +103.47.36.0/22 +103.47.40.0/22 +103.47.48.0/22 +103.47.80.0/22 +103.47.96.0/22 +103.47.108.0/22 +103.47.116.0/22 +103.47.120.0/22 +103.47.136.0/21 +103.47.212.0/22 +103.48.20.0/22 +103.48.52.0/22 +103.48.92.0/22 +103.48.144.0/20 +103.48.202.0/23 +103.48.216.0/21 +103.48.224.0/20 +103.48.240.0/21 +103.49.12.0/22 +103.49.20.0/22 +103.49.72.0/21 +103.49.92.0/22 +103.49.96.0/22 +103.49.108.0/22 +103.49.128.0/22 +103.49.176.0/21 +103.49.196.0/22 +103.49.248.0/22 +103.50.36.0/22 +103.50.44.0/22 +103.50.48.0/20 +103.50.64.0/21 +103.50.72.0/22 +103.50.92.0/22 +103.50.108.0/22 +103.50.112.0/20 +103.50.132.0/22 +103.50.136.0/21 +103.50.172.0/22 +103.50.176.0/20 +103.50.192.0/21 +103.50.200.0/22 +103.50.220.0/22 +103.50.224.0/20 +103.50.240.0/21 +103.50.248.0/22 +103.52.40.0/22 +103.52.72.0/21 +103.52.80.0/21 +103.52.96.0/21 +103.52.104.0/22 +103.52.160.0/21 +103.52.172.0/22 +103.52.176.0/22 +103.52.184.0/22 +103.52.196.0/22 +103.53.4.0/22 +103.53.64.0/21 +103.53.92.0/22 +103.53.100.0/22 +103.53.124.0/22 +103.53.128.0/20 +103.53.144.0/22 +103.53.160.0/22 +103.53.180.0/22 +103.53.204.0/22 +103.53.208.0/21 +103.53.216.0/22 +103.53.236.0/22 +103.53.248.0/22 +103.54.8.0/22 +103.54.48.0/22 +103.54.60.0/22 +103.54.160.0/21 +103.54.212.0/22 +103.54.228.0/22 +103.54.240.0/22 +103.55.24.0/22 +103.55.80.0/22 +103.55.120.0/22 +103.55.152.0/22 +103.55.172.0/22 +103.55.204.0/22 +103.55.208.0/22 +103.55.228.0/22 +103.55.236.0/22 +103.55.240.0/22 +103.56.8.0/22 +103.56.16.0/21 +103.56.32.0/22 +103.56.52.0/22 +103.56.56.0/21 +103.56.72.0/21 +103.56.140.0/22 +103.56.152.0/22 +103.56.184.0/22 +103.56.200.0/22 +103.57.12.0/22 +103.57.52.0/22 +103.57.56.0/22 +103.57.76.0/22 +103.57.136.0/22 +103.57.196.0/22 +103.58.24.0/22 +103.59.76.0/22 +103.59.100.0/22 +103.59.112.0/20 +103.59.128.0/22 +103.59.148.0/22 +103.59.164.0/22 +103.60.32.0/22 +103.60.44.0/22 +103.60.164.0/22 +103.60.228.0/22 +103.60.236.0/22 +103.61.60.0/22 +103.61.104.0/22 +103.61.140.0/22 +103.61.152.0/21 +103.61.160.0/22 +103.61.172.0/22 +103.61.176.0/22 +103.61.184.0/21 +103.62.24.0/22 +103.62.52.0/22 +103.62.72.0/21 +103.62.80.0/21 +103.62.88.0/22 +103.62.96.0/19 +103.62.128.0/21 +103.62.156.0/22 +103.62.160.0/19 +103.62.192.0/22 +103.62.204.0/22 +103.62.208.0/20 +103.62.224.0/22 +103.63.32.0/19 +103.63.64.0/20 +103.63.80.0/21 +103.63.88.0/22 +103.63.140.0/22 +103.63.144.0/22 +103.63.152.0/22 +103.63.160.0/20 +103.63.176.0/21 +103.63.184.0/22 +103.63.192.0/20 +103.63.208.0/22 +103.63.240.0/20 +103.64.0.0/21 +103.64.24.0/21 +103.64.32.0/19 +103.64.64.0/18 +103.64.140.0/22 +103.64.144.0/22 +103.64.152.0/21 +103.64.160.0/19 +103.64.192.0/18 +103.65.0.0/20 +103.65.16.0/22 +103.65.36.0/22 +103.65.40.0/22 +103.65.48.0/20 +103.65.64.0/19 +103.65.100.0/22 +103.65.104.0/21 +103.65.112.0/20 +103.65.128.0/21 +103.65.136.0/22 +103.65.144.0/20 +103.65.160.0/20 +103.66.32.0/22 +103.66.40.0/22 +103.66.92.0/22 +103.66.108.0/22 +103.66.200.0/22 +103.66.216.0/22 +103.66.240.0/20 +103.67.0.0/21 +103.67.8.0/22 +103.67.40.0/21 +103.67.48.0/20 +103.67.64.0/18 +103.67.128.0/20 +103.67.144.0/21 +103.67.172.0/22 +103.67.192.0/22 +103.67.212.0/22 +103.67.252.0/22 +103.68.64.0/22 +103.68.88.0/22 +103.68.100.0/22 +103.68.128.0/22 +103.68.192.0/22 +103.69.16.0/22 +103.69.116.0/22 +103.69.132.0/22 +103.69.152.0/22 +103.69.212.0/22 +103.70.8.0/22 +103.70.148.0/22 +103.70.184.0/22 +103.70.220.0/22 +103.70.224.0/22 +103.70.236.0/22 +103.70.252.0/22 +103.71.0.0/22 +103.71.32.0/22 +103.71.48.0/22 +103.71.68.0/22 +103.71.72.0/22 +103.71.80.0/21 +103.71.88.0/22 +103.71.120.0/21 +103.71.128.0/22 +103.71.144.0/22 +103.71.196.0/22 +103.71.200.0/22 +103.71.232.0/22 +103.72.12.0/22 +103.72.16.0/20 +103.72.32.0/20 +103.72.48.0/21 +103.72.112.0/20 +103.72.128.0/21 +103.72.144.0/21 +103.72.172.0/22 +103.72.180.0/22 +103.72.224.0/19 +103.73.0.0/19 +103.73.48.0/22 +103.73.88.0/22 +103.73.96.0/22 +103.73.116.0/22 +103.73.120.0/22 +103.73.128.0/20 +103.73.144.0/22 +103.73.168.0/22 +103.73.176.0/22 +103.73.204.0/22 +103.73.208.0/22 +103.73.240.0/21 +103.73.248.0/22 +103.74.24.0/21 +103.74.32.0/20 +103.74.48.0/22 +103.74.56.0/21 +103.74.80.0/22 +103.74.124.0/22 +103.74.148.0/22 +103.74.152.0/21 +103.74.204.0/22 +103.74.232.0/22 +103.75.16.0/22 +103.75.87.0/24 +103.75.88.0/21 +103.75.104.0/21 +103.75.112.0/22 +103.75.120.0/22 +103.75.128.0/22 +103.75.144.0/22 +103.75.152.0/22 +103.75.236.0/24 +103.76.60.0/22 +103.76.64.0/21 +103.76.72.0/22 +103.76.84.0/22 +103.76.92.0/22 +103.76.104.0/22 +103.76.216.0/21 +103.76.224.0/22 +103.77.28.0/22 +103.77.52.0/22 +103.77.56.0/22 +103.77.72.0/22 +103.77.88.0/21 +103.77.132.0/22 +103.77.148.0/22 +103.77.220.0/22 +103.78.56.0/21 +103.78.64.0/21 +103.78.124.0/22 +103.78.172.0/22 +103.78.176.0/22 +103.78.196.0/22 +103.78.228.0/22 +103.79.24.0/21 +103.79.36.0/22 +103.79.40.0/21 +103.79.52.0/22 +103.79.56.0/21 +103.79.64.0/21 +103.79.80.0/21 +103.79.120.0/22 +103.79.136.0/22 +103.79.188.0/22 +103.79.192.0/20 +103.79.208.0/21 +103.79.240.0/22 +103.80.24.0/21 +103.80.44.0/22 +103.80.72.0/22 +103.80.176.0/21 +103.80.184.0/22 +103.80.192.0/22 +103.80.200.0/22 +103.80.232.0/22 +103.81.4.0/22 +103.81.8.0/22 +103.81.16.0/21 +103.81.44.0/22 +103.81.48.0/22 +103.81.96.0/22 +103.81.120.0/22 +103.81.148.0/22 +103.81.164.0/22 +103.81.168.0/22 +103.81.183.0/24 +103.81.184.0/22 +103.81.200.0/22 +103.81.232.0/22 +103.82.52.0/22 +103.82.60.0/22 +103.82.68.0/22 +103.82.84.0/22 +103.82.104.0/22 +103.82.224.0/22 +103.82.236.0/22 +103.83.44.0/22 +103.83.52.0/22 +103.83.60.0/22 +103.83.64.0/22 +103.83.72.0/22 +103.83.112.0/22 +103.83.120.0/22 +103.83.132.0/22 +103.83.180.0/22 +103.84.0.0/22 +103.84.12.0/22 +103.84.16.0/20 +103.84.48.0/22 +103.84.56.0/22 +103.84.64.0/22 +103.84.72.0/22 +103.84.92.0/22 +103.84.108.0/22 +103.84.136.0/22 +103.85.20.0/22 +103.85.24.0/22 +103.85.44.0/22 +103.85.48.0/21 +103.85.56.0/22 +103.85.84.0/22 +103.85.136.0/22 +103.85.144.0/22 +103.85.164.0/22 +103.85.168.0/21 +103.85.176.0/22 +103.85.224.0/22 +103.86.28.0/22 +103.86.32.0/22 +103.86.44.0/22 +103.86.60.0/22 +103.86.68.0/22 +103.86.80.0/21 +103.86.88.0/22 +103.86.129.0/24 +103.86.204.0/22 +103.86.208.0/20 +103.86.224.0/19 +103.87.0.0/21 +103.87.20.0/22 +103.87.32.0/22 +103.87.72.0/22 +103.87.96.0/22 +103.87.132.0/22 +103.87.180.0/22 +103.87.224.0/22 +103.88.4.0/22 +103.88.8.0/21 +103.88.16.0/21 +103.88.32.0/21 +103.88.60.0/22 +103.88.64.0/22 +103.88.72.0/22 +103.88.96.0/21 +103.88.152.0/23 +103.88.164.0/22 +103.88.176.0/22 +103.88.184.0/21 +103.88.212.0/22 +103.89.28.0/22 +103.89.96.0/20 +103.89.112.0/21 +103.89.148.0/22 +103.89.172.0/22 +103.89.184.0/21 +103.89.192.0/19 +103.89.224.0/21 +103.90.52.0/22 +103.90.92.0/22 +103.90.100.0/22 +103.90.104.0/21 +103.90.112.0/20 +103.90.128.0/21 +103.90.152.0/22 +103.90.168.0/22 +103.90.173.0/24 +103.90.176.0/22 +103.90.188.0/22 +103.90.192.0/22 +103.91.36.0/22 +103.91.40.0/22 +103.91.108.0/22 +103.91.152.0/22 +103.91.176.0/22 +103.91.200.0/22 +103.91.208.0/21 +103.91.219.0/24 +103.91.236.0/22 +103.91.252.0/22 +103.92.0.0/20 +103.92.48.0/20 +103.92.64.0/20 +103.92.80.0/22 +103.92.86.0/24 +103.92.88.0/22 +103.92.108.0/22 +103.92.124.0/22 +103.92.128.0/24 +103.92.132.0/22 +103.92.156.0/22 +103.92.164.0/22 +103.92.168.0/21 +103.92.176.0/20 +103.92.192.0/22 +103.92.236.0/22 +103.92.240.0/20 +103.93.0.0/21 +103.93.28.0/22 +103.93.76.0/22 +103.93.84.0/22 +103.93.121.0/24 +103.93.152.0/22 +103.93.180.0/22 +103.93.204.0/22 +103.94.12.0/22 +103.94.20.0/22 +103.94.28.0/22 +103.94.32.0/20 +103.94.72.0/22 +103.94.88.0/22 +103.94.116.0/22 +103.94.160.0/22 +103.94.180.0/22 +103.94.200.0/22 +103.95.28.0/22 +103.95.52.0/22 +103.95.64.0/21 +103.95.88.0/21 +103.95.116.0/22 +103.95.128.0/22 +103.95.136.0/21 +103.95.144.0/22 +103.95.152.0/22 +103.95.207.0/24 +103.95.216.0/21 +103.95.224.0/22 +103.95.236.0/22 +103.95.240.0/20 +103.96.0.0/22 +103.96.8.0/22 +103.96.80.0/22 +103.96.124.0/22 +103.96.136.0/22 +103.96.140.0/24 +103.96.148.0/22 +103.96.152.0/21 +103.96.160.0/19 +103.96.192.0/20 +103.96.208.0/21 +103.96.216.0/22 +103.97.8.0/21 +103.97.16.0/20 +103.97.32.0/21 +103.97.40.0/22 +103.97.56.0/21 +103.97.64.0/21 +103.97.72.0/22 +103.97.80.0/22 +103.97.112.0/21 +103.97.128.0/22 +103.97.144.0/21 +103.97.188.0/22 +103.97.192.0/22 +103.97.224.0/22 +103.97.228.0/23 +103.98.28.0/23 +103.98.40.0/21 +103.98.48.0/22 +103.98.56.0/22 +103.98.80.0/22 +103.98.88.0/21 +103.98.96.0/21 +103.98.124.0/22 +103.98.136.0/21 +103.98.144.0/22 +103.98.164.0/22 +103.98.168.0/22 +103.98.180.0/22 +103.98.196.0/22 +103.98.216.0/21 +103.98.224.0/21 +103.98.232.0/22 +103.98.240.0/20 +103.99.40.0/23 +103.99.52.0/22 +103.99.56.0/21 +103.99.76.0/22 +103.99.104.0/22 +103.99.116.0/22 +103.99.120.0/22 +103.99.132.0/22 +103.99.136.0/21 +103.99.144.0/22 +103.99.152.0/22 +103.99.220.0/22 +103.99.232.0/21 +103.100.0.0/22 +103.100.32.0/22 +103.100.40.0/22 +103.100.48.0/20 +103.100.64.0/21 +103.100.88.0/22 +103.100.116.0/22 +103.100.140.0/22 +103.100.144.0/22 +103.100.236.0/22 +103.100.240.0/22 +103.100.248.0/21 +103.101.4.0/22 +103.101.8.0/21 +103.101.28.0/22 +103.101.60.0/22 +103.101.120.0/21 +103.101.144.0/21 +103.101.153.0/24 +103.101.180.0/22 +103.101.184.0/22 +103.102.76.0/22 +103.102.80.0/22 +103.102.163.0/24 +103.102.168.0/21 +103.102.180.0/22 +103.102.184.0/21 +103.102.192.0/21 +103.102.200.0/22 +103.102.208.0/21 +103.103.12.0/22 +103.103.16.0/22 +103.103.36.0/22 +103.103.68.0/22 +103.103.72.0/22 +103.103.176.0/22 +103.103.188.0/22 +103.103.200.0/21 +103.103.220.0/22 +103.103.224.0/21 +103.103.232.0/22 +103.103.248.0/21 +103.104.0.0/21 +103.104.36.0/22 +103.104.40.0/22 +103.104.64.0/22 +103.104.104.0/22 +103.104.152.0/22 +103.104.168.0/21 +103.104.188.0/22 +103.104.198.0/23 +103.104.252.0/22 +103.105.0.0/21 +103.105.12.0/22 +103.105.16.0/22 +103.105.23.0/24 +103.105.56.0/21 +103.105.116.0/22 +103.105.132.0/22 +103.105.180.0/22 +103.105.184.0/22 +103.105.200.0/21 +103.105.220.0/22 +103.106.36.0/22 +103.106.40.0/21 +103.106.60.0/22 +103.106.68.0/22 +103.106.96.0/22 +103.106.120.0/22 +103.106.128.0/21 +103.106.160.0/22 +103.106.188.0/22 +103.106.196.0/22 +103.106.202.0/23 +103.106.212.0/22 +103.106.244.0/22 +103.106.252.0/22 +103.107.0.0/22 +103.107.8.0/24 +103.107.28.0/22 +103.107.32.0/22 +103.107.44.0/22 +103.107.72.0/22 +103.107.108.0/22 +103.107.164.0/22 +103.107.168.0/22 +103.107.188.0/22 +103.107.192.0/22 +103.107.208.0/20 +103.108.52.0/22 +103.108.64.0/22 +103.108.160.0/21 +103.108.184.0/23 +103.108.188.0/23 +103.108.192.0/21 +103.108.208.0/21 +103.108.224.0/22 +103.108.244.0/22 +103.108.251.0/24 +103.109.20.0/22 +103.109.48.0/22 +103.109.88.0/22 +103.109.106.0/23 +103.109.248.0/22 +103.110.32.0/22 +103.110.80.0/23 +103.110.92.0/22 +103.110.100.0/22 +103.110.116.0/22 +103.110.127.0/24 +103.110.128.0/23 +103.110.131.0/24 +103.110.132.0/22 +103.110.136.0/22 +103.110.152.0/21 +103.110.188.0/22 +103.110.204.0/22 +103.111.38.0/23 +103.111.64.0/22 +103.111.172.0/22 +103.111.252.0/22 +103.112.28.0/22 +103.112.68.0/22 +103.112.72.0/22 +103.112.88.0/21 +103.112.96.0/22 +103.112.108.0/22 +103.112.112.0/21 +103.112.140.0/22 +103.112.172.0/22 +103.112.184.0/22 +103.112.208.0/22 +103.113.4.0/22 +103.113.92.0/22 +103.113.144.0/22 +103.113.220.0/22 +103.113.232.0/21 +103.114.4.0/22 +103.114.28.0/22 +103.114.68.0/22 +103.114.72.0/22 +103.114.100.0/22 +103.114.132.0/22 +103.114.148.0/22 +103.114.156.0/22 +103.114.176.0/22 +103.114.212.0/22 +103.114.236.0/22 +103.114.240.0/22 +103.115.16.0/22 +103.115.40.0/21 +103.115.48.0/20 +103.115.64.0/21 +103.115.92.0/22 +103.115.120.0/22 +103.115.148.0/22 +103.115.204.0/23 +103.115.248.0/22 +103.116.20.0/22 +103.116.40.0/22 +103.116.64.0/22 +103.116.72.0/21 +103.116.92.0/22 +103.116.120.0/22 +103.116.128.0/22 +103.116.132.0/23 +103.116.148.0/22 +103.116.184.0/22 +103.116.206.0/23 +103.116.220.0/22 +103.116.224.0/21 +103.117.16.0/22 +103.117.72.0/22 +103.117.88.0/22 +103.117.132.0/22 +103.117.136.0/22 +103.117.188.0/22 +103.117.220.0/22 +103.118.19.0/24 +103.118.36.0/22 +103.118.52.0/22 +103.118.56.0/21 +103.118.64.0/21 +103.118.72.0/22 +103.118.88.0/22 +103.118.173.0/24 +103.118.192.0/19 +103.118.240.0/20 +103.119.0.0/22 +103.119.12.0/22 +103.119.16.0/22 +103.119.28.0/22 +103.119.44.0/22 +103.119.104.0/22 +103.119.115.0/24 +103.119.156.0/22 +103.119.180.0/22 +103.119.200.0/22 +103.119.224.0/22 +103.120.52.0/22 +103.120.72.0/22 +103.120.76.0/24 +103.120.88.0/22 +103.120.96.0/21 +103.120.140.0/22 +103.120.196.0/22 +103.120.224.0/22 +103.121.52.0/22 +103.121.92.0/22 +103.121.160.0/21 +103.121.250.0/24 +103.121.252.0/22 +103.129.52.0/22 +103.129.148.0/22 +103.192.0.0/19 +103.192.48.0/21 +103.192.56.0/22 +103.192.84.0/22 +103.192.88.0/21 +103.192.96.0/20 +103.192.112.0/22 +103.192.128.0/20 +103.192.144.0/22 +103.192.164.0/22 +103.192.188.0/22 +103.192.208.0/21 +103.192.216.0/22 +103.192.252.0/22 +103.193.40.0/21 +103.193.120.0/21 +103.193.140.0/22 +103.193.144.0/21 +103.193.160.0/22 +103.193.188.0/22 +103.193.192.0/22 +103.193.212.0/22 +103.193.216.0/21 +103.193.224.0/20 +103.193.240.0/22 +103.194.16.0/22 +103.194.230.0/23 +103.195.104.0/22 +103.195.112.0/22 +103.195.136.0/22 +103.195.148.0/22 +103.195.152.0/22 +103.195.160.0/22 +103.195.192.0/22 +103.196.60.0/22 +103.196.64.0/22 +103.196.72.0/22 +103.196.88.0/21 +103.196.96.0/22 +103.196.168.0/22 +103.196.185.0/24 +103.196.186.0/23 +103.196.204.0/22 +103.197.180.0/22 +103.197.228.0/22 +103.197.253.0/24 +103.197.254.0/23 +103.198.20.0/22 +103.198.60.0/22 +103.198.64.0/22 +103.198.72.0/22 +103.198.124.0/22 +103.198.156.0/22 +103.198.180.0/22 +103.198.196.0/22 +103.198.200.0/22 +103.198.216.0/21 +103.198.224.0/20 +103.198.240.0/21 +103.199.164.0/22 +103.199.196.0/22 +103.199.228.0/22 +103.199.248.0/21 +103.200.28.0/22 +103.200.32.0/22 +103.200.52.0/22 +103.200.64.0/21 +103.200.136.0/21 +103.200.144.0/20 +103.200.160.0/19 +103.200.192.0/22 +103.200.220.0/22 +103.200.224.0/19 +103.201.0.0/20 +103.201.16.0/21 +103.201.28.0/22 +103.201.32.0/19 +103.201.64.0/22 +103.201.76.0/22 +103.201.80.0/20 +103.201.96.0/20 +103.201.112.0/21 +103.201.120.0/22 +103.201.152.0/21 +103.201.160.0/19 +103.201.192.0/18 +103.202.0.0/19 +103.202.32.0/20 +103.202.56.0/21 +103.202.64.0/18 +103.202.128.0/20 +103.202.144.0/22 +103.202.152.0/21 +103.202.160.0/19 +103.202.192.0/20 +103.202.212.0/22 +103.202.228.0/22 +103.202.236.0/22 +103.202.240.0/20 +103.203.0.0/19 +103.203.32.0/22 +103.203.52.0/22 +103.203.56.0/22 +103.203.96.0/19 +103.203.128.0/22 +103.203.140.0/22 +103.203.164.0/22 +103.203.168.0/22 +103.203.192.0/22 +103.203.200.0/22 +103.203.212.0/22 +103.203.216.0/22 +103.204.24.0/22 +103.204.72.0/22 +103.204.88.0/22 +103.204.112.0/22 +103.204.136.0/21 +103.204.144.0/21 +103.204.152.0/22 +103.204.196.0/22 +103.204.232.0/21 +103.205.4.0/22 +103.205.8.0/22 +103.205.40.0/21 +103.205.52.0/22 +103.205.108.0/22 +103.205.116.0/22 +103.205.120.0/22 +103.205.136.0/22 +103.205.162.0/24 +103.205.188.0/22 +103.205.192.0/21 +103.205.200.0/22 +103.205.236.0/22 +103.205.248.0/21 +103.206.0.0/22 +103.206.44.0/22 +103.206.108.0/22 +103.206.148.0/22 +103.207.48.0/22 +103.207.104.0/22 +103.207.164.0/22 +103.207.184.0/21 +103.207.192.0/20 +103.207.208.0/21 +103.207.220.0/22 +103.207.228.0/22 +103.207.232.0/22 +103.208.12.0/22 +103.208.16.0/22 +103.208.28.0/22 +103.208.40.0/21 +103.208.48.0/22 +103.208.148.0/22 +103.209.112.0/22 +103.209.136.0/22 +103.209.200.0/22 +103.209.208.0/22 +103.209.216.0/22 +103.210.0.0/22 +103.210.20.0/22 +103.210.96.0/22 +103.210.156.0/22 +103.210.160.0/19 +103.210.216.0/22 +103.211.44.0/22 +103.211.96.0/21 +103.211.156.0/22 +103.211.164.0/22 +103.211.168.0/22 +103.211.192.0/22 +103.211.220.0/22 +103.211.224.0/22 +103.211.248.0/22 +103.212.0.0/20 +103.212.32.0/22 +103.212.44.0/22 +103.212.48.0/22 +103.212.84.0/22 +103.212.100.0/22 +103.212.104.0/21 +103.212.148.0/22 +103.212.164.0/22 +103.212.196.0/22 +103.212.200.0/22 +103.212.228.0/22 +103.212.252.0/22 +103.213.40.0/21 +103.213.48.0/20 +103.213.64.0/19 +103.213.96.0/22 +103.213.132.0/22 +103.213.136.0/21 +103.213.144.0/20 +103.213.160.0/19 +103.213.248.0/21 +103.214.32.0/22 +103.214.48.0/22 +103.214.84.0/22 +103.214.168.0/22 +103.214.212.0/22 +103.214.240.0/21 +103.215.28.0/22 +103.215.32.0/21 +103.215.44.0/22 +103.215.48.0/22 +103.215.100.0/22 +103.215.104.0/21 +103.215.116.0/22 +103.215.120.0/22 +103.215.140.0/22 +103.215.184.0/22 +103.215.228.0/22 +103.216.4.0/22 +103.216.8.0/21 +103.216.16.0/20 +103.216.32.0/20 +103.216.64.0/22 +103.216.108.0/22 +103.216.136.0/22 +103.216.152.0/22 +103.216.224.0/21 +103.216.240.0/20 +103.217.0.0/18 +103.217.168.0/22 +103.217.180.0/22 +103.217.184.0/21 +103.217.192.0/20 +103.218.0.0/22 +103.218.8.0/21 +103.218.16.0/21 +103.218.28.0/22 +103.218.32.0/19 +103.218.64.0/19 +103.218.184.0/22 +103.218.192.0/20 +103.218.208.0/21 +103.218.216.0/22 +103.219.24.0/21 +103.219.32.0/21 +103.219.64.0/22 +103.219.84.0/22 +103.219.88.0/21 +103.219.96.0/21 +103.219.176.0/22 +103.219.184.0/22 +103.220.48.0/20 +103.220.64.0/22 +103.220.92.0/22 +103.220.96.0/20 +103.220.116.0/22 +103.220.120.0/21 +103.220.128.0/20 +103.220.144.0/21 +103.220.152.0/22 +103.220.160.0/19 +103.220.192.0/21 +103.220.200.0/22 +103.220.240.0/20 +103.221.0.0/19 +103.221.32.0/20 +103.221.48.0/22 +103.221.88.0/21 +103.221.96.0/19 +103.221.128.0/18 +103.221.192.0/20 +103.222.0.0/20 +103.222.16.0/22 +103.222.24.0/21 +103.222.32.0/19 +103.222.64.0/18 +103.222.128.0/18 +103.222.192.0/19 +103.222.224.0/21 +103.222.232.0/22 +103.222.240.0/21 +103.223.16.0/20 +103.223.32.0/19 +103.223.64.0/18 +103.223.128.0/21 +103.223.140.0/22 +103.223.144.0/20 +103.223.160.0/20 +103.223.176.0/21 +103.223.188.0/22 +103.223.192.0/18 +103.224.0.0/22 +103.224.40.0/21 +103.224.60.0/22 +103.224.80.0/22 +103.224.220.0/22 +103.224.224.0/21 +103.224.232.0/22 +103.225.84.0/22 +103.226.16.0/22 +103.226.40.0/22 +103.226.56.0/21 +103.226.80.0/22 +103.226.116.0/22 +103.226.132.0/22 +103.226.156.0/22 +103.226.180.0/22 +103.226.196.0/22 +103.227.48.0/22 +103.227.72.0/21 +103.227.80.0/22 +103.227.100.0/22 +103.227.120.0/22 +103.227.132.0/22 +103.227.136.0/22 +103.227.196.0/22 +103.227.204.0/22 +103.227.212.0/22 +103.227.228.0/22 +103.228.12.0/22 +103.228.28.0/22 +103.228.68.0/22 +103.228.88.0/22 +103.228.128.0/22 +103.228.136.0/22 +103.228.160.0/22 +103.228.176.0/22 +103.228.204.0/22 +103.228.208.0/22 +103.228.228.0/22 +103.228.232.0/22 +103.229.20.0/22 +103.229.60.0/22 +103.229.136.0/22 +103.229.148.0/22 +103.229.172.0/22 +103.229.212.0/22 +103.229.216.0/21 +103.229.228.0/22 +103.229.236.0/22 +103.229.240.0/22 +103.230.0.0/22 +103.230.28.0/22 +103.230.40.0/21 +103.230.96.0/22 +103.230.196.0/22 +103.230.200.0/21 +103.230.212.0/22 +103.230.236.0/22 +103.231.16.0/21 +103.231.64.0/21 +103.231.144.0/22 +103.231.180.0/22 +103.231.184.0/22 +103.231.244.0/22 +103.232.4.0/22 +103.232.144.0/22 +103.232.188.0/22 +103.232.212.0/22 +103.233.4.0/22 +103.233.44.0/22 +103.233.52.0/22 +103.233.104.0/22 +103.233.128.0/22 +103.233.136.0/22 +103.233.228.0/22 +103.234.0.0/22 +103.234.20.0/22 +103.234.56.0/22 +103.234.124.0/22 +103.234.128.0/22 +103.234.172.0/22 +103.234.180.0/22 +103.234.244.0/22 +103.235.16.0/22 +103.235.48.0/22 +103.235.56.0/21 +103.235.80.0/21 +103.235.128.0/20 +103.235.144.0/21 +103.235.184.0/22 +103.235.192.0/22 +103.235.200.0/22 +103.235.220.0/22 +103.235.224.0/19 +103.236.0.0/18 +103.236.64.0/19 +103.236.96.0/22 +103.236.120.0/22 +103.236.184.0/22 +103.236.220.0/22 +103.236.232.0/22 +103.236.240.0/20 +103.237.0.0/20 +103.237.24.0/21 +103.237.68.0/22 +103.237.88.0/22 +103.237.152.0/22 +103.237.176.0/20 +103.237.192.0/18 +103.238.0.0/21 +103.238.16.0/20 +103.238.32.0/20 +103.238.48.0/21 +103.238.56.0/22 +103.238.88.0/21 +103.238.96.0/22 +103.238.132.0/22 +103.238.140.0/22 +103.238.144.0/22 +103.238.160.0/19 +103.238.196.0/22 +103.238.204.0/22 +103.238.252.0/22 +103.239.0.0/22 +103.239.44.0/22 +103.239.68.0/22 +103.239.96.0/22 +103.239.152.0/21 +103.239.176.0/21 +103.239.184.0/22 +103.239.192.0/21 +103.239.204.0/22 +103.239.208.0/22 +103.239.224.0/22 +103.239.244.0/22 +103.240.16.0/22 +103.240.36.0/22 +103.240.72.0/22 +103.240.84.0/22 +103.240.124.0/22 +103.240.156.0/22 +103.240.172.0/22 +103.240.188.0/22 +103.240.244.0/22 +103.241.12.0/22 +103.241.72.0/22 +103.241.92.0/22 +103.241.96.0/22 +103.241.160.0/22 +103.241.184.0/21 +103.241.220.0/22 +103.242.64.0/22 +103.242.128.0/21 +103.242.160.0/22 +103.242.168.0/21 +103.242.176.0/22 +103.242.200.0/22 +103.242.212.0/22 +103.242.220.0/22 +103.242.240.0/22 +103.243.136.0/22 +103.243.252.0/22 +103.244.16.0/22 +103.244.58.0/23 +103.244.60.0/22 +103.244.64.0/20 +103.244.80.0/21 +103.244.116.0/22 +103.244.164.0/22 +103.244.232.0/22 +103.244.252.0/22 +103.245.23.0/24 +103.245.52.0/22 +103.245.60.0/22 +103.245.80.0/22 +103.245.124.0/22 +103.245.128.0/22 +103.246.8.0/21 +103.246.120.0/21 +103.246.132.0/22 +103.246.152.0/21 +103.247.168.0/21 +103.247.176.0/22 +103.247.200.0/22 +103.247.212.0/22 +103.248.0.0/23 +103.248.64.0/22 +103.248.100.0/22 +103.248.124.0/22 +103.248.152.0/22 +103.248.168.0/22 +103.248.192.0/22 +103.248.212.0/22 +103.248.220.0/22 +103.248.224.0/21 +103.249.8.0/21 +103.249.52.0/22 +103.249.104.0/22 +103.249.128.0/22 +103.249.136.0/22 +103.249.144.0/22 +103.249.164.0/22 +103.249.168.0/21 +103.249.176.0/22 +103.249.188.0/22 +103.249.192.0/22 +103.249.244.0/22 +103.249.252.0/22 +103.250.32.0/22 +103.250.104.0/22 +103.250.124.0/22 +103.250.180.0/22 +103.250.192.0/22 +103.250.216.0/22 +103.250.224.0/22 +103.250.236.0/22 +103.250.248.0/21 +103.251.32.0/21 +103.251.84.0/22 +103.251.96.0/22 +103.251.124.0/22 +103.251.128.0/22 +103.251.160.0/22 +103.251.192.0/22 +103.251.204.0/22 +103.251.236.0/22 +103.251.240.0/22 +103.252.28.0/22 +103.252.36.0/22 +103.252.64.0/22 +103.252.96.0/22 +103.252.104.0/22 +103.252.172.0/22 +103.252.204.0/22 +103.252.208.0/22 +103.252.232.0/22 +103.252.248.0/22 +103.253.4.0/22 +103.253.60.0/22 +103.253.204.0/22 +103.253.220.0/22 +103.253.224.0/22 +103.253.232.0/22 +103.254.8.0/22 +103.254.20.0/22 +103.254.64.0/20 +103.254.112.0/22 +103.254.176.0/22 +103.254.188.0/22 +103.254.196.0/24 +103.254.220.0/22 +103.255.56.0/22 +103.255.68.0/22 +103.255.88.0/21 +103.255.136.0/21 +103.255.184.0/22 +103.255.200.0/22 +103.255.208.0/21 +103.255.228.0/22 +104.166.103.0/24 +104.222.196.0/24 +106.0.0.0/24 +106.0.2.0/23 +106.0.4.0/22 +106.0.8.0/21 +106.0.16.0/20 +106.0.44.0/22 +106.0.64.0/18 +106.2.0.0/15 +106.4.0.0/14 +106.8.0.0/15 +106.11.0.0/16 +106.12.0.0/14 +106.16.0.0/12 +106.32.0.0/12 +106.48.0.0/15 +106.50.0.0/16 +106.52.0.0/14 +106.56.0.0/13 +106.74.0.0/15 +106.80.0.0/12 +106.108.0.0/14 +106.112.0.0/12 +106.224.0.0/12 +109.71.4.0/24 +109.244.0.0/16 +110.6.0.0/15 +110.16.0.0/14 +110.34.40.0/21 +110.40.0.0/14 +110.44.12.0/22 +110.44.144.0/20 +110.48.0.0/16 +110.51.0.0/16 +110.52.0.0/15 +110.56.0.0/13 +110.64.0.0/15 +110.72.0.0/15 +110.75.0.0/16 +110.76.0.0/18 +110.76.132.0/22 +110.76.156.0/22 +110.76.184.0/22 +110.76.192.0/18 +110.77.0.0/17 +110.80.0.0/13 +110.88.0.0/14 +110.92.68.0/22 +110.93.32.0/19 +110.94.0.0/15 +110.96.0.0/11 +110.152.0.0/14 +110.156.0.0/15 +110.165.32.0/19 +110.166.0.0/15 +110.172.192.0/18 +110.173.0.0/19 +110.173.32.0/20 +110.173.64.0/18 +110.173.192.0/19 +110.176.0.0/12 +110.192.0.0/11 +110.228.0.0/14 +110.232.32.0/19 +110.236.0.0/15 +110.240.0.0/12 +111.0.0.0/10 +111.66.0.0/16 +111.67.192.0/20 +111.68.64.0/19 +111.72.0.0/13 +111.85.0.0/16 +111.91.192.0/19 +111.92.248.0/21 +111.112.0.0/14 +111.116.0.0/15 +111.118.200.0/21 +111.119.64.0/18 +111.119.128.0/19 +111.120.0.0/14 +111.124.0.0/16 +111.126.0.0/15 +111.128.0.0/11 +111.160.0.0/13 +111.170.0.0/16 +111.172.0.0/14 +111.176.0.0/13 +111.186.0.0/15 +111.192.0.0/12 +111.208.0.0/13 +111.221.28.0/24 +111.221.128.0/17 +111.222.0.0/16 +111.223.4.0/22 +111.223.8.0/21 +111.223.16.0/22 +111.223.240.0/22 +111.223.248.0/22 +111.224.0.0/13 +111.235.96.0/19 +111.235.156.0/22 +111.235.160.0/19 +112.0.0.0/10 +112.64.0.0/14 +112.73.0.0/16 +112.74.0.0/15 +112.80.0.0/12 +112.96.0.0/13 +112.109.128.0/17 +112.111.0.0/16 +112.112.0.0/14 +112.116.0.0/15 +112.122.0.0/15 +112.124.0.0/14 +112.128.0.0/14 +112.132.0.0/16 +112.137.48.0/21 +112.192.0.0/14 +112.224.0.0/11 +113.0.0.0/13 +113.8.0.0/15 +113.11.192.0/19 +113.12.0.0/14 +113.16.0.0/15 +113.18.0.0/16 +113.21.232.0/21 +113.24.0.0/14 +113.31.0.0/16 +113.44.0.0/14 +113.48.0.0/14 +113.52.160.0/19 +113.52.228.0/22 +113.54.0.0/15 +113.56.0.0/15 +113.58.0.0/16 +113.59.0.0/17 +113.59.224.0/22 +113.62.0.0/15 +113.64.0.0/10 +113.128.0.0/15 +113.130.96.0/20 +113.130.112.0/21 +113.132.0.0/14 +113.136.0.0/13 +113.194.0.0/15 +113.197.100.0/22 +113.197.104.0/22 +113.200.0.0/15 +113.202.0.0/16 +113.204.0.0/14 +113.208.96.0/19 +113.208.128.0/17 +113.209.0.0/16 +113.212.0.0/18 +113.212.100.0/22 +113.212.184.0/21 +113.213.0.0/17 +113.214.0.0/15 +113.218.0.0/15 +113.220.0.0/14 +113.224.0.0/12 +113.240.0.0/13 +113.248.0.0/14 +114.28.0.0/16 +114.31.64.0/21 +114.54.0.0/15 +114.60.0.0/14 +114.64.0.0/14 +114.68.0.0/16 +114.79.64.0/18 +114.80.0.0/12 +114.96.0.0/13 +114.104.0.0/14 +114.110.0.0/20 +114.110.64.0/18 +114.111.0.0/19 +114.111.160.0/19 +114.112.0.0/13 +114.132.0.0/16 +114.135.0.0/16 +114.138.0.0/15 +114.141.64.0/21 +114.141.80.0/21 +114.141.128.0/18 +114.196.0.0/15 +114.198.248.0/21 +114.208.0.0/12 +114.224.0.0/11 +115.24.0.0/14 +115.28.0.0/15 +115.31.64.0/20 +115.32.0.0/14 +115.42.56.0/22 +115.44.0.0/14 +115.48.0.0/12 +115.69.64.0/20 +115.84.0.0/18 +115.84.192.0/19 +115.85.192.0/18 +115.100.0.0/14 +115.104.0.0/14 +115.120.0.0/14 +115.124.16.0/20 +115.148.0.0/14 +115.152.0.0/13 +115.166.64.0/19 +115.168.0.0/13 +115.180.0.0/14 +115.187.0.0/20 +115.190.0.0/15 +115.192.0.0/11 +115.224.0.0/12 +116.0.8.0/21 +116.0.24.0/21 +116.1.0.0/16 +116.2.0.0/15 +116.4.0.0/14 +116.8.0.0/14 +116.13.0.0/16 +116.16.0.0/12 +116.50.0.0/20 +116.52.0.0/14 +116.56.0.0/15 +116.58.128.0/20 +116.58.208.0/20 +116.60.0.0/14 +116.66.0.0/17 +116.66.176.0/22 +116.68.136.0/21 +116.68.176.0/21 +116.69.0.0/16 +116.70.0.0/17 +116.76.0.0/14 +116.85.0.0/16 +116.89.144.0/20 +116.89.240.0/22 +116.90.80.0/20 +116.90.184.0/21 +116.95.0.0/16 +116.112.0.0/14 +116.116.0.0/15 +116.128.0.0/10 +116.192.0.0/16 +116.193.16.0/20 +116.193.32.0/19 +116.193.152.0/22 +116.193.164.0/22 +116.193.176.0/21 +116.194.0.0/15 +116.196.0.0/16 +116.197.160.0/21 +116.197.180.0/23 +116.198.0.0/16 +116.199.0.0/17 +116.199.128.0/19 +116.204.0.0/15 +116.206.92.0/22 +116.206.100.0/22 +116.206.176.0/22 +116.207.0.0/16 +116.208.0.0/14 +116.212.160.0/20 +116.213.44.0/22 +116.213.64.0/18 +116.213.128.0/17 +116.214.32.0/19 +116.214.64.0/20 +116.214.128.0/17 +116.215.0.0/16 +116.216.0.0/14 +116.224.0.0/12 +116.242.0.0/15 +116.244.0.0/14 +116.248.0.0/15 +116.251.64.0/18 +116.252.0.0/15 +116.254.104.0/21 +116.254.128.0/17 +116.255.128.0/17 +117.8.0.0/13 +117.21.0.0/16 +117.22.0.0/15 +117.24.0.0/13 +117.32.0.0/13 +117.40.0.0/14 +117.44.0.0/15 +117.48.0.0/14 +117.53.48.0/20 +117.53.176.0/20 +117.57.0.0/16 +117.58.0.0/17 +117.59.0.0/16 +117.60.0.0/14 +117.64.0.0/13 +117.72.0.0/15 +117.74.64.0/19 +117.74.128.0/17 +117.75.0.0/16 +117.76.0.0/14 +117.80.0.0/12 +117.100.0.0/15 +117.103.16.0/20 +117.103.40.0/21 +117.103.72.0/21 +117.103.128.0/20 +117.104.168.0/21 +117.106.0.0/15 +117.112.0.0/13 +117.120.64.0/18 +117.120.128.0/17 +117.121.0.0/17 +117.121.128.0/18 +117.121.192.0/21 +117.122.128.0/17 +117.124.0.0/14 +117.128.0.0/10 +118.24.0.0/15 +118.26.0.0/16 +118.28.0.0/14 +118.64.0.0/15 +118.66.0.0/16 +118.67.112.0/20 +118.72.0.0/13 +118.80.0.0/15 +118.84.0.0/15 +118.88.32.0/19 +118.88.64.0/18 +118.88.128.0/17 +118.89.0.0/16 +118.91.240.0/20 +118.102.16.0/20 +118.102.32.0/21 +118.103.164.0/22 +118.103.168.0/21 +118.103.176.0/22 +118.103.245.0/24 +118.103.246.0/23 +118.107.180.0/22 +118.112.0.0/13 +118.120.0.0/14 +118.124.0.0/15 +118.126.0.0/16 +118.127.128.0/19 +118.132.0.0/14 +118.144.0.0/14 +118.178.0.0/16 +118.180.0.0/14 +118.184.0.0/16 +118.186.0.0/15 +118.188.0.0/16 +118.190.0.0/15 +118.192.0.0/16 +118.193.0.0/20 +118.193.32.0/19 +118.193.64.0/20 +118.193.96.0/19 +118.193.128.0/17 +118.194.0.0/15 +118.196.0.0/14 +118.202.0.0/15 +118.204.0.0/14 +118.212.0.0/15 +118.215.192.0/18 +118.224.0.0/14 +118.228.0.0/15 +118.230.0.0/16 +118.239.0.0/16 +118.242.0.0/16 +118.244.0.0/14 +118.248.0.0/13 +119.0.0.0/15 +119.2.0.0/19 +119.2.128.0/17 +119.3.0.0/16 +119.4.0.0/14 +119.8.0.0/16 +119.10.0.0/17 +119.15.136.0/21 +119.16.0.0/16 +119.18.192.0/20 +119.18.208.0/21 +119.18.224.0/19 +119.19.0.0/16 +119.20.0.0/14 +119.27.64.0/18 +119.27.128.0/17 +119.28.0.0/15 +119.30.48.0/20 +119.31.192.0/19 +119.32.0.0/13 +119.40.0.0/18 +119.40.64.0/20 +119.40.128.0/17 +119.41.0.0/16 +119.42.0.0/19 +119.42.52.0/22 +119.42.128.0/20 +119.42.224.0/19 +119.44.0.0/15 +119.48.0.0/13 +119.57.0.0/16 +119.58.0.0/16 +119.59.128.0/17 +119.60.0.0/15 +119.62.0.0/16 +119.63.32.0/19 +119.75.208.0/20 +119.78.0.0/15 +119.80.0.0/16 +119.82.208.0/20 +119.84.0.0/14 +119.88.0.0/14 +119.96.0.0/13 +119.108.0.0/15 +119.112.0.0/12 +119.128.0.0/12 +119.144.0.0/14 +119.148.160.0/19 +119.151.192.0/18 +119.160.200.0/21 +119.161.120.0/21 +119.161.128.0/17 +119.162.0.0/15 +119.164.0.0/14 +119.176.0.0/12 +119.232.0.0/15 +119.235.128.0/18 +119.248.0.0/14 +119.252.96.0/21 +119.252.240.0/20 +119.253.0.0/16 +119.254.0.0/15 +120.0.0.0/12 +120.24.0.0/14 +120.30.0.0/15 +120.32.0.0/12 +120.48.0.0/15 +120.52.0.0/14 +120.64.0.0/13 +120.72.32.0/19 +120.72.128.0/17 +120.76.0.0/14 +120.80.0.0/13 +120.88.8.0/21 +120.90.0.0/15 +120.92.0.0/16 +120.94.0.0/15 +120.128.0.0/13 +120.136.16.0/21 +120.136.128.0/18 +120.137.0.0/17 +120.143.128.0/19 +120.192.0.0/10 +121.0.8.0/21 +121.0.16.0/20 +121.4.0.0/15 +121.8.0.0/13 +121.16.0.0/12 +121.32.0.0/13 +121.40.0.0/14 +121.46.0.0/18 +121.46.76.0/22 +121.46.128.0/17 +121.47.0.0/16 +121.48.0.0/15 +121.50.8.0/21 +121.51.0.0/16 +121.52.160.0/19 +121.52.208.0/20 +121.52.224.0/19 +121.54.176.0/21 +121.54.188.0/22 +121.55.0.0/18 +121.56.0.0/15 +121.58.0.0/17 +121.58.136.0/21 +121.58.144.0/20 +121.58.160.0/21 +121.59.0.0/16 +121.60.0.0/14 +121.68.0.0/14 +121.76.0.0/15 +121.79.128.0/18 +121.89.0.0/16 +121.100.128.0/17 +121.101.0.0/18 +121.101.208.0/20 +121.192.0.0/13 +121.200.192.0/21 +121.201.0.0/16 +121.204.0.0/14 +121.224.0.0/12 +121.248.0.0/14 +121.255.0.0/16 +122.0.64.0/18 +122.0.128.0/17 +122.4.0.0/14 +122.8.0.0/15 +122.10.128.0/17 +122.11.0.0/17 +122.12.0.0/15 +122.14.0.0/16 +122.48.0.0/16 +122.49.0.0/18 +122.51.0.0/16 +122.64.0.0/11 +122.96.0.0/15 +122.98.144.0/20 +122.98.160.0/21 +122.98.172.0/22 +122.98.176.0/20 +122.98.192.0/21 +122.98.232.0/21 +122.98.240.0/20 +122.102.0.0/20 +122.102.64.0/19 +122.112.0.0/14 +122.119.0.0/16 +122.128.100.0/22 +122.128.120.0/21 +122.136.0.0/13 +122.144.128.0/17 +122.152.192.0/18 +122.156.0.0/14 +122.188.0.0/14 +122.192.0.0/14 +122.198.0.0/16 +122.200.40.0/21 +122.200.64.0/18 +122.201.48.0/20 +122.204.0.0/14 +122.224.0.0/12 +122.240.0.0/13 +122.248.24.0/21 +122.248.48.0/20 +122.255.64.0/21 +123.0.128.0/18 +123.4.0.0/14 +123.8.0.0/13 +123.49.128.0/17 +123.50.160.0/19 +123.52.0.0/14 +123.56.0.0/14 +123.60.0.0/15 +123.62.0.0/16 +123.64.0.0/11 +123.96.0.0/15 +123.98.0.0/17 +123.99.128.0/17 +123.100.0.0/19 +123.100.232.0/24 +123.101.0.0/16 +123.103.0.0/17 +123.108.128.0/20 +123.108.208.0/20 +123.112.0.0/12 +123.128.0.0/13 +123.136.80.0/20 +123.137.0.0/16 +123.138.0.0/15 +123.144.0.0/12 +123.160.0.0/12 +123.176.60.0/22 +123.176.80.0/20 +123.177.0.0/16 +123.178.0.0/15 +123.180.0.0/14 +123.184.0.0/13 +123.196.0.0/15 +123.199.128.0/17 +123.206.0.0/15 +123.232.0.0/14 +123.242.0.0/17 +123.242.192.0/21 +123.244.0.0/14 +123.249.0.0/16 +123.253.0.0/16 +123.254.96.0/21 +124.6.64.0/18 +124.14.0.0/15 +124.16.0.0/15 +124.20.0.0/14 +124.28.192.0/18 +124.29.0.0/17 +124.31.0.0/16 +124.40.112.0/20 +124.40.128.0/18 +124.40.192.0/19 +124.40.240.0/22 +124.42.0.0/16 +124.47.0.0/18 +124.64.0.0/15 +124.66.0.0/17 +124.67.0.0/16 +124.68.0.0/14 +124.72.0.0/13 +124.88.0.0/13 +124.108.8.0/21 +124.108.40.0/21 +124.109.96.0/21 +124.112.0.0/13 +124.126.0.0/15 +124.128.0.0/13 +124.147.128.0/17 +124.150.137.0/24 +124.151.0.0/16 +124.152.0.0/16 +124.160.0.0/13 +124.172.0.0/14 +124.192.0.0/15 +124.196.0.0/16 +124.200.0.0/13 +124.220.0.0/14 +124.224.0.0/12 +124.240.0.0/17 +124.240.128.0/18 +124.242.0.0/16 +124.243.192.0/18 +124.248.0.0/17 +124.249.0.0/16 +124.250.0.0/15 +124.254.0.0/18 +125.31.192.0/18 +125.32.0.0/12 +125.58.128.0/17 +125.61.128.0/17 +125.62.0.0/18 +125.64.0.0/11 +125.96.0.0/15 +125.98.0.0/16 +125.104.0.0/13 +125.112.0.0/12 +125.169.0.0/16 +125.171.0.0/16 +125.208.0.0/18 +125.210.0.0/15 +125.213.0.0/17 +125.214.96.0/19 +125.215.0.0/18 +125.216.0.0/13 +125.254.128.0/17 +128.108.0.0/16 +129.28.0.0/16 +129.204.0.0/16 +129.211.0.0/16 +129.223.254.0/24 +130.214.218.0/23 +131.228.96.0/24 +131.253.12.0/29 +131.253.12.80/28 +131.253.12.240/29 +132.232.0.0/16 +132.237.134.0/24 +132.237.150.0/24 +134.175.0.0/16 +135.159.208.0/20 +135.244.80.0/20 +137.59.59.0/24 +137.59.88.0/22 +138.32.244.0/22 +139.5.56.0/21 +139.5.80.0/22 +139.5.92.0/22 +139.5.108.0/22 +139.5.128.0/22 +139.5.160.0/22 +139.5.192.0/22 +139.5.204.0/22 +139.5.208.0/21 +139.5.244.0/22 +139.9.0.0/16 +139.129.0.0/16 +139.148.0.0/16 +139.155.0.0/16 +139.159.0.0/16 +139.170.0.0/16 +139.176.0.0/16 +139.183.0.0/16 +139.186.0.0/16 +139.189.0.0/16 +139.196.0.0/14 +139.200.0.0/13 +139.208.0.0/13 +139.217.0.0/16 +139.219.0.0/16 +139.220.0.0/15 +139.224.0.0/16 +139.226.0.0/15 +140.75.0.0/16 +140.101.208.0/24 +140.143.0.0/16 +140.179.0.0/16 +140.205.0.0/16 +140.206.0.0/15 +140.210.0.0/16 +140.224.0.0/16 +140.237.0.0/16 +140.240.0.0/16 +140.242.216.0/24 +140.242.223.0/24 +140.242.224.0/24 +140.243.0.0/16 +140.246.0.0/16 +140.249.0.0/16 +140.250.0.0/16 +140.255.0.0/16 +144.0.0.0/16 +144.7.0.0/16 +144.12.0.0/16 +144.36.146.0/23 +144.48.8.0/21 +144.48.64.0/22 +144.48.88.0/22 +144.48.156.0/22 +144.48.180.0/22 +144.48.184.0/22 +144.48.204.0/22 +144.48.208.0/21 +144.48.220.0/22 +144.48.252.0/22 +144.52.0.0/16 +144.123.0.0/16 +144.211.80.0/24 +144.211.138.0/24 +144.255.0.0/16 +146.56.192.0/18 +146.196.56.0/22 +146.196.68.0/22 +146.196.72.0/22 +146.196.92.0/22 +146.196.112.0/21 +146.196.124.0/22 +146.217.137.0/24 +146.222.79.0/24 +146.222.81.0/24 +146.222.94.0/24 +147.243.13.32/27 +147.243.13.64/27 +148.70.0.0/16 +150.0.0.0/16 +150.115.0.0/16 +150.121.0.0/16 +150.122.0.0/16 +150.129.136.0/22 +150.129.192.0/22 +150.129.216.0/22 +150.129.252.0/22 +150.138.0.0/15 +150.158.0.0/16 +150.223.0.0/16 +150.242.0.0/21 +150.242.8.0/22 +150.242.28.0/22 +150.242.44.0/22 +150.242.48.0/21 +150.242.56.0/22 +150.242.76.0/22 +150.242.80.0/22 +150.242.92.0/22 +150.242.96.0/22 +150.242.112.0/21 +150.242.120.0/22 +150.242.152.0/21 +150.242.160.0/21 +150.242.168.0/22 +150.242.184.0/21 +150.242.192.0/22 +150.242.212.0/22 +150.242.224.0/20 +150.242.240.0/21 +150.242.248.0/22 +150.255.0.0/16 +152.32.136.0/21 +152.32.144.0/20 +152.32.160.0/19 +152.32.192.0/18 +152.104.128.0/17 +152.136.0.0/16 +153.0.0.0/16 +153.3.0.0/16 +153.34.0.0/15 +153.36.0.0/15 +153.99.0.0/16 +153.101.0.0/16 +153.118.0.0/15 +154.8.128.0/17 +156.107.160.0/24 +156.107.170.0/24 +157.0.0.0/16 +157.18.0.0/16 +157.61.0.0/16 +157.119.0.0/22 +157.119.8.0/21 +157.119.16.0/22 +157.119.28.0/22 +157.119.68.0/22 +157.119.112.0/22 +157.119.132.0/22 +157.119.136.0/21 +157.119.144.0/20 +157.119.160.0/21 +157.119.172.0/22 +157.119.192.0/21 +157.119.240.0/22 +157.119.252.0/22 +157.122.0.0/16 +157.133.186.0/23 +157.133.192.0/21 +157.133.212.0/24 +157.133.236.0/24 +157.148.0.0/16 +157.156.0.0/16 +157.255.0.0/16 +159.75.0.0/16 +159.153.120.0/22 +159.226.0.0/16 +160.19.208.0/21 +160.19.216.0/22 +160.20.48.0/22 +160.62.10.0/24 +160.83.109.0/24 +160.83.110.0/23 +160.202.60.0/22 +160.202.148.0/22 +160.202.152.0/22 +160.202.168.0/22 +160.202.212.0/22 +160.202.216.0/21 +160.202.224.0/19 +160.238.64.0/22 +161.163.0.0/21 +161.163.28.0/23 +161.163.176.0/24 +161.163.178.0/23 +161.163.180.0/22 +161.189.0.0/16 +161.207.0.0/16 +162.14.0.0/16 +162.105.0.0/16 +163.0.0.0/16 +163.47.4.0/22 +163.53.0.0/20 +163.53.36.0/22 +163.53.40.0/21 +163.53.48.0/20 +163.53.64.0/22 +163.53.88.0/21 +163.53.96.0/19 +163.53.128.0/21 +163.53.136.0/22 +163.53.160.0/20 +163.53.188.0/22 +163.53.220.0/22 +163.53.236.0/22 +163.53.240.0/22 +163.125.0.0/16 +163.142.0.0/16 +163.177.0.0/16 +163.179.0.0/16 +163.204.0.0/16 +163.244.246.0/24 +164.52.0.0/17 +165.156.30.0/24 +166.111.0.0/16 +167.139.0.0/16 +167.189.0.0/16 +167.220.244.0/22 +168.159.144.0/21 +168.159.152.0/22 +168.159.156.0/23 +168.159.158.0/24 +168.160.0.0/16 +168.230.0.0/24 +170.179.0.0/16 +170.225.224.0/23 +170.252.152.0/21 +171.8.0.0/13 +171.34.0.0/15 +171.36.0.0/14 +171.40.0.0/13 +171.80.0.0/12 +171.104.0.0/13 +171.112.0.0/12 +171.208.0.0/12 +172.81.192.0/18 +175.0.0.0/12 +175.16.0.0/13 +175.24.0.0/14 +175.30.0.0/15 +175.42.0.0/15 +175.44.0.0/16 +175.46.0.0/15 +175.48.0.0/12 +175.64.0.0/11 +175.102.0.0/16 +175.106.128.0/17 +175.111.108.0/22 +175.111.144.0/20 +175.111.160.0/20 +175.111.184.0/22 +175.146.0.0/15 +175.148.0.0/14 +175.152.0.0/14 +175.158.96.0/22 +175.160.0.0/12 +175.176.156.0/22 +175.176.176.0/22 +175.176.188.0/22 +175.176.192.0/22 +175.178.0.0/16 +175.184.128.0/18 +175.185.0.0/16 +175.186.0.0/15 +175.188.0.0/14 +180.76.0.0/14 +180.84.0.0/15 +180.86.0.0/16 +180.88.0.0/14 +180.94.56.0/21 +180.94.96.0/20 +180.94.120.0/21 +180.95.128.0/17 +180.96.0.0/11 +180.129.128.0/17 +180.130.0.0/16 +180.136.0.0/13 +180.148.16.0/21 +180.148.152.0/21 +180.148.216.0/21 +180.148.224.0/19 +180.149.128.0/19 +180.149.236.0/22 +180.150.160.0/19 +180.152.0.0/13 +180.160.0.0/12 +180.178.112.0/21 +180.178.192.0/18 +180.184.0.0/14 +180.188.0.0/17 +180.189.148.0/22 +180.200.252.0/22 +180.201.0.0/16 +180.202.0.0/15 +180.208.0.0/15 +180.210.212.0/22 +180.210.224.0/19 +180.212.0.0/15 +180.222.224.0/19 +180.223.0.0/16 +180.233.0.0/18 +180.233.64.0/19 +180.233.144.0/22 +180.235.64.0/19 +180.235.112.0/22 +180.235.136.0/22 +182.16.144.0/21 +182.16.192.0/19 +182.18.0.0/17 +182.23.184.0/21 +182.23.200.0/21 +182.32.0.0/12 +182.48.96.0/19 +182.49.0.0/16 +182.50.0.0/20 +182.50.112.0/20 +182.51.0.0/16 +182.54.0.0/17 +182.54.244.0/22 +182.61.0.0/16 +182.80.0.0/13 +182.88.0.0/14 +182.92.0.0/16 +182.96.0.0/11 +182.128.0.0/12 +182.144.0.0/13 +182.157.0.0/16 +182.160.64.0/19 +182.174.0.0/15 +182.200.0.0/13 +182.236.128.0/17 +182.237.24.0/21 +182.238.0.0/16 +182.239.0.0/19 +182.240.0.0/13 +182.254.0.0/16 +182.255.36.0/22 +182.255.60.0/22 +183.0.0.0/10 +183.64.0.0/13 +183.78.160.0/21 +183.78.180.0/22 +183.81.172.0/22 +183.81.180.0/22 +183.84.0.0/15 +183.91.128.0/22 +183.91.136.0/21 +183.91.144.0/20 +183.92.0.0/14 +183.128.0.0/11 +183.160.0.0/13 +183.168.0.0/15 +183.170.0.0/16 +183.172.0.0/14 +183.182.0.0/19 +183.184.0.0/13 +183.192.0.0/10 +185.109.236.0/24 +188.65.16.0/22 +188.131.128.0/17 +192.11.23.0/24 +192.11.26.0/24 +192.11.39.0/24 +192.11.236.0/24 +192.23.191.0/24 +192.55.10.0/23 +192.55.40.0/24 +192.55.46.0/24 +192.55.68.0/22 +192.102.204.0/22 +192.124.154.0/24 +192.137.31.0/24 +192.139.135.0/24 +192.139.136.0/24 +192.140.128.0/21 +192.140.136.0/22 +192.140.156.0/22 +192.140.160.0/19 +192.140.192.0/20 +192.140.208.0/21 +192.144.128.0/17 +192.163.11.0/24 +192.232.97.0/24 +193.20.64.0/22 +193.112.0.0/16 +194.138.202.0/23 +198.175.100.0/22 +198.208.17.0/24 +199.7.72.0/24 +199.65.192.0/21 +199.244.144.0/24 +202.0.100.0/23 +202.0.122.0/23 +202.0.176.0/22 +202.1.105.0/24 +202.1.106.0/24 +202.3.128.0/23 +202.4.128.0/19 +202.4.252.0/22 +202.5.208.0/21 +202.5.216.0/22 +202.6.6.0/23 +202.6.66.0/23 +202.6.72.0/23 +202.6.87.0/24 +202.6.88.0/23 +202.6.92.0/23 +202.6.103.0/24 +202.6.108.0/24 +202.6.110.0/23 +202.6.114.0/24 +202.6.176.0/20 +202.8.0.0/24 +202.8.2.0/23 +202.8.4.0/23 +202.8.12.0/24 +202.8.24.0/24 +202.8.77.0/24 +202.8.128.0/19 +202.8.192.0/20 +202.9.32.0/24 +202.9.34.0/23 +202.9.48.0/23 +202.9.51.0/24 +202.9.52.0/23 +202.9.54.0/24 +202.9.57.0/24 +202.9.58.0/23 +202.10.64.0/20 +202.10.112.0/20 +202.12.1.0/24 +202.12.2.0/24 +202.12.17.0/24 +202.12.18.0/23 +202.12.72.0/24 +202.12.84.0/23 +202.12.96.0/24 +202.12.98.0/23 +202.12.106.0/24 +202.12.111.0/24 +202.12.116.0/24 +202.14.64.0/23 +202.14.69.0/24 +202.14.73.0/24 +202.14.74.0/23 +202.14.76.0/24 +202.14.78.0/23 +202.14.88.0/24 +202.14.97.0/24 +202.14.104.0/23 +202.14.108.0/23 +202.14.111.0/24 +202.14.114.0/23 +202.14.118.0/23 +202.14.124.0/23 +202.14.127.0/24 +202.14.129.0/24 +202.14.135.0/24 +202.14.136.0/24 +202.14.149.0/24 +202.14.151.0/24 +202.14.157.0/24 +202.14.158.0/23 +202.14.169.0/24 +202.14.170.0/23 +202.14.172.0/22 +202.14.176.0/24 +202.14.184.0/23 +202.14.208.0/23 +202.14.213.0/24 +202.14.219.0/24 +202.14.220.0/24 +202.14.222.0/23 +202.14.225.0/24 +202.14.226.0/23 +202.14.231.0/24 +202.14.235.0/24 +202.14.236.0/22 +202.14.246.0/24 +202.14.251.0/24 +202.20.66.0/24 +202.20.79.0/24 +202.20.87.0/24 +202.20.88.0/23 +202.20.90.0/24 +202.20.94.0/23 +202.20.114.0/24 +202.20.117.0/24 +202.20.120.0/24 +202.20.125.0/24 +202.20.126.0/23 +202.21.48.0/20 +202.21.131.0/24 +202.21.132.0/24 +202.21.141.0/24 +202.21.142.0/24 +202.21.147.0/24 +202.21.148.0/24 +202.21.150.0/23 +202.21.152.0/23 +202.21.154.0/24 +202.21.156.0/24 +202.21.208.0/24 +202.22.248.0/21 +202.27.12.0/24 +202.27.14.0/24 +202.27.136.0/23 +202.36.226.0/24 +202.38.0.0/22 +202.38.8.0/21 +202.38.48.0/20 +202.38.64.0/18 +202.38.128.0/21 +202.38.136.0/23 +202.38.138.0/24 +202.38.140.0/22 +202.38.146.0/23 +202.38.149.0/24 +202.38.150.0/23 +202.38.152.0/22 +202.38.156.0/24 +202.38.158.0/23 +202.38.160.0/23 +202.38.164.0/22 +202.38.168.0/22 +202.38.176.0/23 +202.38.184.0/21 +202.38.192.0/18 +202.40.4.0/23 +202.40.7.0/24 +202.40.15.0/24 +202.40.135.0/24 +202.40.136.0/24 +202.40.140.0/24 +202.40.143.0/24 +202.40.144.0/23 +202.40.150.0/24 +202.40.155.0/24 +202.40.156.0/24 +202.40.158.0/23 +202.40.162.0/24 +202.41.8.0/23 +202.41.11.0/24 +202.41.12.0/23 +202.41.128.0/24 +202.41.130.0/23 +202.41.142.0/24 +202.41.152.0/21 +202.41.192.0/24 +202.41.196.0/22 +202.41.200.0/22 +202.41.240.0/20 +202.43.76.0/22 +202.43.144.0/20 +202.44.16.0/20 +202.44.48.0/22 +202.44.67.0/24 +202.44.74.0/24 +202.44.97.0/24 +202.44.129.0/24 +202.44.132.0/23 +202.44.146.0/23 +202.45.0.0/23 +202.45.2.0/24 +202.45.15.0/24 +202.45.16.0/20 +202.46.16.0/23 +202.46.18.0/24 +202.46.20.0/23 +202.46.32.0/19 +202.46.128.0/24 +202.46.224.0/20 +202.47.82.0/23 +202.47.96.0/20 +202.47.126.0/24 +202.47.128.0/24 +202.47.130.0/23 +202.52.33.0/24 +202.52.34.0/24 +202.52.47.0/24 +202.52.143.0/24 +202.53.140.0/24 +202.53.143.0/24 +202.57.192.0/20 +202.57.212.0/22 +202.57.216.0/22 +202.57.240.0/20 +202.58.0.0/24 +202.58.104.0/22 +202.58.112.0/22 +202.59.0.0/23 +202.59.212.0/22 +202.59.236.0/24 +202.59.240.0/24 +202.60.48.0/21 +202.60.96.0/21 +202.60.112.0/20 +202.60.132.0/22 +202.60.136.0/21 +202.60.144.0/20 +202.61.68.0/22 +202.61.76.0/22 +202.61.88.0/22 +202.61.123.0/24 +202.61.127.0/24 +202.62.112.0/22 +202.62.248.0/22 +202.62.252.0/24 +202.62.255.0/24 +202.63.80.0/20 +202.63.160.0/19 +202.63.248.0/22 +202.63.253.0/24 +202.65.0.0/21 +202.65.8.0/23 +202.65.96.0/20 +202.66.168.0/22 +202.67.0.0/22 +202.69.4.0/22 +202.69.16.0/20 +202.70.0.0/19 +202.70.96.0/20 +202.70.192.0/20 +202.71.32.0/20 +202.72.40.0/21 +202.72.80.0/20 +202.72.112.0/20 +202.73.128.0/22 +202.73.240.0/20 +202.74.8.0/21 +202.74.36.0/24 +202.74.42.0/24 +202.74.52.0/24 +202.74.80.0/20 +202.74.232.0/22 +202.74.254.0/23 +202.75.208.0/20 +202.75.252.0/22 +202.76.247.0/24 +202.76.252.0/22 +202.77.80.0/21 +202.77.92.0/22 +202.78.8.0/21 +202.79.224.0/21 +202.79.248.0/22 +202.80.192.0/20 +202.81.0.0/22 +202.81.176.0/20 +202.83.252.0/22 +202.84.0.0/20 +202.84.16.0/23 +202.84.22.0/24 +202.84.24.0/21 +202.85.208.0/20 +202.86.249.0/24 +202.86.252.0/22 +202.87.80.0/20 +202.88.32.0/22 +202.89.8.0/21 +202.89.96.0/22 +202.89.108.0/22 +202.89.119.0/24 +202.89.232.0/21 +202.90.0.0/22 +202.90.16.0/20 +202.90.37.0/24 +202.90.96.0/19 +202.90.193.0/24 +202.90.196.0/24 +202.90.205.0/24 +202.90.224.0/20 +202.91.0.0/22 +202.91.36.0/22 +202.91.96.0/20 +202.91.128.0/22 +202.91.176.0/20 +202.91.224.0/19 +202.92.0.0/22 +202.92.8.0/21 +202.92.48.0/20 +202.92.252.0/22 +202.93.0.0/22 +202.93.252.0/22 +202.94.0.0/19 +202.94.74.0/24 +202.94.81.0/24 +202.94.92.0/22 +202.95.1.0/24 +202.95.2.0/23 +202.95.4.0/22 +202.95.8.0/21 +202.95.16.0/20 +202.95.240.0/21 +202.95.252.0/22 +202.96.0.0/12 +202.112.0.0/13 +202.120.0.0/15 +202.122.0.0/21 +202.122.32.0/21 +202.122.64.0/19 +202.122.112.0/20 +202.122.128.0/24 +202.122.132.0/24 +202.123.96.0/20 +202.123.116.0/22 +202.123.120.0/22 +202.124.16.0/21 +202.124.24.0/22 +202.125.107.0/24 +202.125.109.0/24 +202.125.112.0/20 +202.125.176.0/20 +202.127.0.0/21 +202.127.12.0/22 +202.127.16.0/20 +202.127.40.0/21 +202.127.48.0/20 +202.127.112.0/20 +202.127.128.0/19 +202.127.160.0/21 +202.127.192.0/20 +202.127.208.0/23 +202.127.212.0/22 +202.127.216.0/21 +202.127.224.0/19 +202.129.208.0/24 +202.130.0.0/19 +202.130.39.0/24 +202.130.224.0/19 +202.131.16.0/21 +202.131.48.0/20 +202.131.208.0/20 +202.133.32.0/20 +202.134.58.0/24 +202.134.128.0/20 +202.134.208.0/20 +202.136.48.0/20 +202.136.208.0/20 +202.136.224.0/20 +202.136.248.0/22 +202.136.254.0/23 +202.137.231.0/24 +202.140.140.0/22 +202.140.144.0/20 +202.141.160.0/19 +202.142.16.0/20 +202.143.4.0/22 +202.143.16.0/20 +202.143.32.0/20 +202.143.56.0/21 +202.143.100.0/22 +202.143.104.0/22 +202.144.196.0/22 +202.146.160.0/20 +202.146.186.0/24 +202.146.188.0/22 +202.146.196.0/22 +202.146.200.0/21 +202.147.144.0/20 +202.148.32.0/20 +202.148.64.0/18 +202.149.32.0/19 +202.149.160.0/19 +202.149.224.0/19 +202.150.16.0/20 +202.150.32.0/20 +202.150.56.0/22 +202.150.192.0/20 +202.150.224.0/19 +202.151.0.0/22 +202.151.33.0/24 +202.151.128.0/19 +202.152.176.0/20 +202.153.0.0/22 +202.153.7.0/24 +202.153.48.0/20 +202.157.192.0/19 +202.158.160.0/19 +202.158.242.0/24 +202.160.140.0/22 +202.160.156.0/22 +202.160.176.0/20 +202.162.67.0/24 +202.162.75.0/24 +202.164.0.0/20 +202.164.96.0/19 +202.165.96.0/21 +202.165.104.0/22 +202.165.176.0/20 +202.165.208.0/20 +202.165.239.0/24 +202.165.240.0/23 +202.165.243.0/24 +202.165.245.0/24 +202.165.251.0/24 +202.165.252.0/22 +202.166.224.0/19 +202.168.80.0/22 +202.168.128.0/20 +202.168.160.0/19 +202.170.128.0/19 +202.170.216.0/21 +202.170.224.0/19 +202.171.216.0/21 +202.171.232.0/24 +202.171.235.0/24 +202.172.0.0/22 +202.172.7.0/24 +202.173.0.0/22 +202.173.6.0/24 +202.173.8.0/21 +202.173.112.0/22 +202.173.120.0/22 +202.173.224.0/19 +202.174.64.0/20 +202.174.124.0/22 +202.176.224.0/19 +202.179.160.0/20 +202.179.240.0/20 +202.180.128.0/19 +202.180.208.0/21 +202.181.8.0/22 +202.181.28.0/22 +202.181.112.0/20 +202.182.32.0/20 +202.182.192.0/19 +202.189.0.0/18 +202.189.80.0/20 +202.189.184.0/21 +202.191.0.0/24 +202.191.68.0/22 +202.191.72.0/21 +202.191.80.0/20 +202.192.0.0/12 +203.0.4.0/22 +203.0.10.0/23 +203.0.18.0/24 +203.0.24.0/24 +203.0.42.0/23 +203.0.45.0/24 +203.0.46.0/23 +203.0.81.0/24 +203.0.82.0/23 +203.0.90.0/23 +203.0.96.0/23 +203.0.104.0/21 +203.0.114.0/23 +203.0.122.0/24 +203.0.128.0/24 +203.0.130.0/23 +203.0.132.0/22 +203.0.137.0/24 +203.0.142.0/24 +203.0.144.0/24 +203.0.146.0/24 +203.0.148.0/24 +203.0.150.0/23 +203.0.152.0/24 +203.0.177.0/24 +203.0.224.0/24 +203.1.4.0/22 +203.1.18.0/24 +203.1.26.0/23 +203.1.65.0/24 +203.1.66.0/23 +203.1.70.0/23 +203.1.76.0/23 +203.1.90.0/24 +203.1.97.0/24 +203.1.98.0/23 +203.1.100.0/22 +203.1.108.0/24 +203.1.253.0/24 +203.1.254.0/24 +203.2.64.0/21 +203.2.73.0/24 +203.2.112.0/21 +203.2.126.0/23 +203.2.140.0/24 +203.2.150.0/24 +203.2.152.0/22 +203.2.156.0/23 +203.2.160.0/21 +203.2.180.0/23 +203.2.196.0/23 +203.2.209.0/24 +203.2.214.0/23 +203.2.226.0/23 +203.2.229.0/24 +203.2.236.0/23 +203.3.68.0/24 +203.3.72.0/23 +203.3.75.0/24 +203.3.80.0/21 +203.3.96.0/22 +203.3.105.0/24 +203.3.112.0/21 +203.3.120.0/24 +203.3.123.0/24 +203.3.135.0/24 +203.3.139.0/24 +203.3.143.0/24 +203.4.132.0/23 +203.4.134.0/24 +203.4.151.0/24 +203.4.152.0/22 +203.4.174.0/23 +203.4.180.0/24 +203.4.186.0/24 +203.4.205.0/24 +203.4.208.0/22 +203.4.227.0/24 +203.4.230.0/23 +203.5.4.0/23 +203.5.7.0/24 +203.5.8.0/23 +203.5.11.0/24 +203.5.21.0/24 +203.5.22.0/24 +203.5.44.0/24 +203.5.46.0/23 +203.5.52.0/22 +203.5.56.0/23 +203.5.60.0/23 +203.5.114.0/23 +203.5.118.0/24 +203.5.120.0/24 +203.5.172.0/24 +203.5.180.0/23 +203.5.182.0/24 +203.5.185.0/24 +203.5.186.0/24 +203.5.188.0/23 +203.5.190.0/24 +203.5.195.0/24 +203.5.214.0/23 +203.5.218.0/23 +203.6.131.0/24 +203.6.136.0/24 +203.6.138.0/23 +203.6.142.0/24 +203.6.150.0/23 +203.6.157.0/24 +203.6.159.0/24 +203.6.224.0/20 +203.6.248.0/23 +203.7.129.0/24 +203.7.138.0/23 +203.7.147.0/24 +203.7.150.0/23 +203.7.158.0/24 +203.7.192.0/23 +203.7.200.0/24 +203.8.0.0/24 +203.8.8.0/24 +203.8.23.0/24 +203.8.24.0/21 +203.8.70.0/24 +203.8.82.0/24 +203.8.86.0/23 +203.8.91.0/24 +203.8.110.0/23 +203.8.115.0/24 +203.8.166.0/23 +203.8.169.0/24 +203.8.173.0/24 +203.8.184.0/24 +203.8.186.0/23 +203.8.190.0/23 +203.8.192.0/24 +203.8.197.0/24 +203.8.198.0/23 +203.8.203.0/24 +203.8.209.0/24 +203.8.210.0/23 +203.8.212.0/22 +203.8.217.0/24 +203.8.220.0/24 +203.9.32.0/24 +203.9.36.0/23 +203.9.57.0/24 +203.9.63.0/24 +203.9.65.0/24 +203.9.70.0/23 +203.9.72.0/24 +203.9.75.0/24 +203.9.76.0/23 +203.9.96.0/22 +203.9.100.0/23 +203.9.108.0/24 +203.9.158.0/24 +203.10.34.0/24 +203.10.56.0/24 +203.10.74.0/23 +203.10.84.0/22 +203.10.88.0/24 +203.10.95.0/24 +203.10.125.0/24 +203.11.70.0/24 +203.11.76.0/22 +203.11.82.0/24 +203.11.84.0/22 +203.11.100.0/22 +203.11.109.0/24 +203.11.117.0/24 +203.11.122.0/24 +203.11.126.0/24 +203.11.136.0/22 +203.11.141.0/24 +203.11.142.0/23 +203.11.180.0/22 +203.11.208.0/22 +203.12.16.0/24 +203.12.19.0/24 +203.12.24.0/24 +203.12.57.0/24 +203.12.65.0/24 +203.12.66.0/24 +203.12.70.0/23 +203.12.87.0/24 +203.12.88.0/21 +203.12.100.0/23 +203.12.103.0/24 +203.12.114.0/24 +203.12.118.0/24 +203.12.130.0/24 +203.12.137.0/24 +203.12.196.0/22 +203.12.200.0/21 +203.12.211.0/24 +203.12.219.0/24 +203.12.226.0/24 +203.12.240.0/22 +203.13.18.0/24 +203.13.24.0/24 +203.13.44.0/23 +203.13.80.0/21 +203.13.88.0/23 +203.13.92.0/22 +203.13.173.0/24 +203.13.224.0/23 +203.13.227.0/24 +203.13.233.0/24 +203.14.24.0/22 +203.14.33.0/24 +203.14.56.0/24 +203.14.61.0/24 +203.14.62.0/24 +203.14.104.0/24 +203.14.114.0/23 +203.14.118.0/24 +203.14.162.0/24 +203.14.184.0/21 +203.14.192.0/24 +203.14.194.0/23 +203.14.214.0/24 +203.14.231.0/24 +203.14.246.0/24 +203.15.0.0/20 +203.15.20.0/23 +203.15.22.0/24 +203.15.87.0/24 +203.15.88.0/23 +203.15.105.0/24 +203.15.112.0/21 +203.15.130.0/23 +203.15.149.0/24 +203.15.151.0/24 +203.15.156.0/22 +203.15.174.0/24 +203.15.227.0/24 +203.15.232.0/21 +203.15.240.0/23 +203.15.246.0/24 +203.16.10.0/24 +203.16.12.0/23 +203.16.16.0/21 +203.16.27.0/24 +203.16.38.0/24 +203.16.49.0/24 +203.16.50.0/23 +203.16.58.0/24 +203.16.63.0/24 +203.16.133.0/24 +203.16.161.0/24 +203.16.162.0/24 +203.16.186.0/23 +203.16.228.0/24 +203.16.238.0/24 +203.16.240.0/24 +203.16.245.0/24 +203.17.2.0/24 +203.17.18.0/24 +203.17.28.0/24 +203.17.39.0/24 +203.17.56.0/24 +203.17.74.0/23 +203.17.88.0/23 +203.17.136.0/24 +203.17.164.0/24 +203.17.187.0/24 +203.17.190.0/23 +203.17.231.0/24 +203.17.233.0/24 +203.17.248.0/23 +203.17.255.0/24 +203.18.2.0/23 +203.18.4.0/24 +203.18.7.0/24 +203.18.31.0/24 +203.18.37.0/24 +203.18.48.0/23 +203.18.52.0/24 +203.18.72.0/22 +203.18.80.0/23 +203.18.87.0/24 +203.18.100.0/23 +203.18.105.0/24 +203.18.107.0/24 +203.18.110.0/24 +203.18.129.0/24 +203.18.131.0/24 +203.18.132.0/23 +203.18.144.0/24 +203.18.153.0/24 +203.18.199.0/24 +203.18.208.0/24 +203.18.211.0/24 +203.18.215.0/24 +203.19.1.0/24 +203.19.18.0/24 +203.19.24.0/24 +203.19.30.0/24 +203.19.32.0/21 +203.19.41.0/24 +203.19.44.0/23 +203.19.46.0/24 +203.19.58.0/24 +203.19.60.0/23 +203.19.64.0/24 +203.19.68.0/24 +203.19.72.0/24 +203.19.101.0/24 +203.19.111.0/24 +203.19.131.0/24 +203.19.133.0/24 +203.19.144.0/24 +203.19.147.0/24 +203.19.149.0/24 +203.19.156.0/24 +203.19.176.0/24 +203.19.178.0/23 +203.19.208.0/24 +203.19.228.0/22 +203.19.233.0/24 +203.19.242.0/24 +203.19.248.0/23 +203.19.255.0/24 +203.20.17.0/24 +203.20.40.0/23 +203.20.44.0/24 +203.20.48.0/24 +203.20.61.0/24 +203.20.65.0/24 +203.20.84.0/23 +203.20.89.0/24 +203.20.106.0/23 +203.20.115.0/24 +203.20.117.0/24 +203.20.118.0/23 +203.20.122.0/24 +203.20.126.0/23 +203.20.135.0/24 +203.20.136.0/21 +203.20.150.0/24 +203.20.230.0/24 +203.20.232.0/24 +203.20.236.0/24 +203.21.0.0/23 +203.21.2.0/24 +203.21.8.0/24 +203.21.10.0/24 +203.21.18.0/24 +203.21.33.0/24 +203.21.34.0/24 +203.21.41.0/24 +203.21.44.0/24 +203.21.68.0/24 +203.21.82.0/24 +203.21.96.0/22 +203.21.124.0/24 +203.21.136.0/23 +203.21.145.0/24 +203.21.206.0/24 +203.22.24.0/24 +203.22.28.0/23 +203.22.31.0/24 +203.22.68.0/24 +203.22.76.0/24 +203.22.78.0/24 +203.22.84.0/24 +203.22.87.0/24 +203.22.92.0/22 +203.22.99.0/24 +203.22.106.0/24 +203.22.122.0/23 +203.22.131.0/24 +203.22.163.0/24 +203.22.166.0/24 +203.22.170.0/24 +203.22.176.0/21 +203.22.194.0/24 +203.22.242.0/23 +203.22.245.0/24 +203.22.246.0/24 +203.22.252.0/23 +203.23.0.0/24 +203.23.47.0/24 +203.23.61.0/24 +203.23.62.0/23 +203.23.73.0/24 +203.23.85.0/24 +203.23.92.0/22 +203.23.98.0/24 +203.23.107.0/24 +203.23.112.0/24 +203.23.130.0/24 +203.23.140.0/23 +203.23.172.0/24 +203.23.182.0/24 +203.23.186.0/23 +203.23.192.0/24 +203.23.197.0/24 +203.23.198.0/24 +203.23.204.0/22 +203.23.224.0/24 +203.23.226.0/23 +203.23.228.0/22 +203.23.249.0/24 +203.23.251.0/24 +203.24.13.0/24 +203.24.18.0/24 +203.24.27.0/24 +203.24.43.0/24 +203.24.56.0/24 +203.24.58.0/24 +203.24.67.0/24 +203.24.74.0/24 +203.24.79.0/24 +203.24.80.0/23 +203.24.84.0/23 +203.24.86.0/24 +203.24.90.0/24 +203.24.111.0/24 +203.24.112.0/24 +203.24.116.0/24 +203.24.122.0/23 +203.24.145.0/24 +203.24.152.0/23 +203.24.157.0/24 +203.24.161.0/24 +203.24.167.0/24 +203.24.186.0/23 +203.24.199.0/24 +203.24.202.0/24 +203.24.212.0/23 +203.24.217.0/24 +203.24.219.0/24 +203.24.244.0/24 +203.25.19.0/24 +203.25.20.0/23 +203.25.46.0/24 +203.25.48.0/21 +203.25.64.0/23 +203.25.91.0/24 +203.25.99.0/24 +203.25.100.0/24 +203.25.106.0/24 +203.25.131.0/24 +203.25.135.0/24 +203.25.138.0/24 +203.25.147.0/24 +203.25.153.0/24 +203.25.154.0/23 +203.25.164.0/24 +203.25.166.0/24 +203.25.174.0/23 +203.25.180.0/24 +203.25.182.0/24 +203.25.191.0/24 +203.25.199.0/24 +203.25.200.0/24 +203.25.202.0/23 +203.25.208.0/20 +203.25.229.0/24 +203.25.235.0/24 +203.25.236.0/24 +203.25.242.0/24 +203.26.12.0/24 +203.26.34.0/24 +203.26.49.0/24 +203.26.50.0/24 +203.26.55.0/24 +203.26.56.0/23 +203.26.60.0/24 +203.26.65.0/24 +203.26.68.0/24 +203.26.76.0/24 +203.26.80.0/24 +203.26.84.0/24 +203.26.97.0/24 +203.26.102.0/23 +203.26.115.0/24 +203.26.116.0/24 +203.26.129.0/24 +203.26.143.0/24 +203.26.144.0/24 +203.26.148.0/23 +203.26.154.0/24 +203.26.158.0/23 +203.26.161.0/24 +203.26.170.0/24 +203.26.173.0/24 +203.26.176.0/24 +203.26.185.0/24 +203.26.202.0/23 +203.26.210.0/24 +203.26.214.0/24 +203.26.222.0/24 +203.26.224.0/24 +203.26.228.0/24 +203.26.232.0/24 +203.27.0.0/24 +203.27.10.0/24 +203.27.15.0/24 +203.27.16.0/24 +203.27.20.0/24 +203.27.22.0/23 +203.27.40.0/24 +203.27.45.0/24 +203.27.53.0/24 +203.27.65.0/24 +203.27.66.0/24 +203.27.81.0/24 +203.27.88.0/24 +203.27.102.0/24 +203.27.109.0/24 +203.27.117.0/24 +203.27.121.0/24 +203.27.122.0/23 +203.27.125.0/24 +203.27.200.0/24 +203.27.202.0/24 +203.27.233.0/24 +203.27.241.0/24 +203.27.250.0/24 +203.28.10.0/24 +203.28.12.0/24 +203.28.33.0/24 +203.28.34.0/23 +203.28.43.0/24 +203.28.44.0/24 +203.28.54.0/24 +203.28.56.0/24 +203.28.73.0/24 +203.28.74.0/24 +203.28.76.0/24 +203.28.86.0/24 +203.28.88.0/24 +203.28.112.0/24 +203.28.131.0/24 +203.28.136.0/24 +203.28.140.0/24 +203.28.145.0/24 +203.28.165.0/24 +203.28.169.0/24 +203.28.170.0/24 +203.28.178.0/23 +203.28.185.0/24 +203.28.187.0/24 +203.28.196.0/24 +203.28.226.0/23 +203.28.239.0/24 +203.29.2.0/24 +203.29.8.0/23 +203.29.13.0/24 +203.29.14.0/24 +203.29.28.0/24 +203.29.46.0/24 +203.29.57.0/24 +203.29.61.0/24 +203.29.63.0/24 +203.29.69.0/24 +203.29.73.0/24 +203.29.81.0/24 +203.29.90.0/24 +203.29.95.0/24 +203.29.100.0/24 +203.29.103.0/24 +203.29.112.0/24 +203.29.120.0/22 +203.29.182.0/23 +203.29.187.0/24 +203.29.189.0/24 +203.29.190.0/24 +203.29.205.0/24 +203.29.210.0/24 +203.29.217.0/24 +203.29.227.0/24 +203.29.231.0/24 +203.29.233.0/24 +203.29.234.0/24 +203.29.248.0/24 +203.29.254.0/23 +203.30.16.0/23 +203.30.25.0/24 +203.30.27.0/24 +203.30.29.0/24 +203.30.66.0/24 +203.30.81.0/24 +203.30.87.0/24 +203.30.111.0/24 +203.30.121.0/24 +203.30.123.0/24 +203.30.152.0/24 +203.30.156.0/24 +203.30.162.0/24 +203.30.173.0/24 +203.30.175.0/24 +203.30.187.0/24 +203.30.194.0/24 +203.30.217.0/24 +203.30.220.0/24 +203.30.222.0/24 +203.30.232.0/23 +203.30.235.0/24 +203.30.240.0/23 +203.30.246.0/24 +203.30.250.0/23 +203.31.45.0/24 +203.31.46.0/24 +203.31.49.0/24 +203.31.51.0/24 +203.31.54.0/23 +203.31.69.0/24 +203.31.72.0/24 +203.31.80.0/24 +203.31.85.0/24 +203.31.97.0/24 +203.31.105.0/24 +203.31.106.0/24 +203.31.108.0/23 +203.31.124.0/24 +203.31.162.0/24 +203.31.174.0/24 +203.31.177.0/24 +203.31.181.0/24 +203.31.187.0/24 +203.31.189.0/24 +203.31.204.0/24 +203.31.220.0/24 +203.31.222.0/23 +203.31.225.0/24 +203.31.229.0/24 +203.31.248.0/23 +203.31.253.0/24 +203.32.20.0/24 +203.32.48.0/23 +203.32.56.0/24 +203.32.60.0/24 +203.32.62.0/24 +203.32.68.0/23 +203.32.76.0/24 +203.32.81.0/24 +203.32.84.0/23 +203.32.95.0/24 +203.32.102.0/24 +203.32.105.0/24 +203.32.130.0/24 +203.32.133.0/24 +203.32.140.0/24 +203.32.152.0/24 +203.32.186.0/23 +203.32.192.0/24 +203.32.196.0/24 +203.32.203.0/24 +203.32.204.0/23 +203.32.212.0/24 +203.33.4.0/24 +203.33.7.0/24 +203.33.8.0/21 +203.33.21.0/24 +203.33.26.0/24 +203.33.32.0/24 +203.33.63.0/24 +203.33.64.0/24 +203.33.67.0/24 +203.33.68.0/24 +203.33.73.0/24 +203.33.79.0/24 +203.33.100.0/24 +203.33.122.0/24 +203.33.129.0/24 +203.33.131.0/24 +203.33.145.0/24 +203.33.156.0/24 +203.33.158.0/23 +203.33.174.0/24 +203.33.185.0/24 +203.33.200.0/24 +203.33.202.0/23 +203.33.204.0/24 +203.33.206.0/23 +203.33.214.0/23 +203.33.224.0/23 +203.33.226.0/24 +203.33.233.0/24 +203.33.243.0/24 +203.33.250.0/24 +203.34.4.0/24 +203.34.21.0/24 +203.34.27.0/24 +203.34.39.0/24 +203.34.48.0/23 +203.34.54.0/24 +203.34.56.0/23 +203.34.67.0/24 +203.34.69.0/24 +203.34.76.0/24 +203.34.92.0/24 +203.34.106.0/24 +203.34.113.0/24 +203.34.147.0/24 +203.34.150.0/24 +203.34.152.0/23 +203.34.161.0/24 +203.34.162.0/24 +203.34.187.0/24 +203.34.192.0/21 +203.34.204.0/22 +203.34.232.0/24 +203.34.240.0/24 +203.34.242.0/24 +203.34.245.0/24 +203.34.251.0/24 +203.55.2.0/23 +203.55.4.0/24 +203.55.10.0/24 +203.55.13.0/24 +203.55.22.0/24 +203.55.30.0/24 +203.55.93.0/24 +203.55.101.0/24 +203.55.109.0/24 +203.55.110.0/24 +203.55.116.0/23 +203.55.119.0/24 +203.55.128.0/23 +203.55.146.0/23 +203.55.192.0/24 +203.55.196.0/24 +203.55.218.0/23 +203.55.221.0/24 +203.55.224.0/24 +203.56.1.0/24 +203.56.4.0/24 +203.56.12.0/24 +203.56.24.0/24 +203.56.38.0/24 +203.56.40.0/24 +203.56.46.0/24 +203.56.48.0/21 +203.56.68.0/23 +203.56.82.0/23 +203.56.84.0/23 +203.56.95.0/24 +203.56.110.0/24 +203.56.121.0/24 +203.56.161.0/24 +203.56.169.0/24 +203.56.172.0/23 +203.56.175.0/24 +203.56.183.0/24 +203.56.185.0/24 +203.56.187.0/24 +203.56.192.0/24 +203.56.198.0/24 +203.56.201.0/24 +203.56.208.0/23 +203.56.210.0/24 +203.56.214.0/24 +203.56.216.0/24 +203.56.227.0/24 +203.56.228.0/24 +203.56.231.0/24 +203.56.232.0/24 +203.56.240.0/24 +203.56.252.0/24 +203.56.254.0/24 +203.57.5.0/24 +203.57.6.0/24 +203.57.12.0/23 +203.57.28.0/24 +203.57.39.0/24 +203.57.46.0/24 +203.57.58.0/24 +203.57.61.0/24 +203.57.66.0/24 +203.57.69.0/24 +203.57.70.0/23 +203.57.73.0/24 +203.57.90.0/24 +203.57.101.0/24 +203.57.109.0/24 +203.57.123.0/24 +203.57.157.0/24 +203.57.200.0/24 +203.57.202.0/24 +203.57.206.0/24 +203.57.222.0/24 +203.57.224.0/20 +203.57.246.0/23 +203.57.249.0/24 +203.57.253.0/24 +203.57.254.0/23 +203.62.2.0/24 +203.62.131.0/24 +203.62.139.0/24 +203.62.161.0/24 +203.62.197.0/24 +203.62.228.0/22 +203.62.234.0/24 +203.62.246.0/24 +203.65.240.0/22 +203.76.160.0/22 +203.76.168.0/22 +203.76.208.0/21 +203.76.216.0/22 +203.76.240.0/21 +203.77.180.0/22 +203.78.48.0/20 +203.78.156.0/22 +203.79.0.0/20 +203.79.32.0/20 +203.80.4.0/23 +203.80.32.0/20 +203.80.57.0/24 +203.80.129.0/24 +203.80.132.0/22 +203.80.136.0/21 +203.80.144.0/20 +203.81.0.0/21 +203.81.16.0/20 +203.81.244.0/22 +203.82.0.0/23 +203.82.16.0/21 +203.82.112.0/20 +203.82.224.0/20 +203.83.0.0/22 +203.83.8.0/21 +203.83.56.0/21 +203.83.224.0/20 +203.86.0.0/17 +203.86.250.0/24 +203.86.254.0/23 +203.88.32.0/19 +203.88.192.0/19 +203.89.0.0/22 +203.89.8.0/21 +203.89.100.0/22 +203.89.133.0/24 +203.89.136.0/22 +203.89.144.0/24 +203.90.0.0/22 +203.90.8.0/21 +203.90.128.0/18 +203.90.192.0/19 +203.91.1.0/24 +203.91.32.0/19 +203.91.96.0/20 +203.91.120.0/21 +203.92.0.0/22 +203.92.6.0/24 +203.92.160.0/19 +203.93.0.0/16 +203.94.0.0/19 +203.95.0.0/21 +203.95.96.0/19 +203.95.128.0/18 +203.95.200.0/21 +203.95.208.0/22 +203.95.224.0/19 +203.99.8.0/21 +203.99.16.0/20 +203.99.80.0/20 +203.100.32.0/20 +203.100.48.0/21 +203.100.58.0/24 +203.100.60.0/24 +203.100.63.0/24 +203.100.80.0/20 +203.100.96.0/19 +203.100.192.0/20 +203.104.32.0/20 +203.105.96.0/19 +203.105.128.0/19 +203.107.0.0/17 +203.110.160.0/19 +203.110.208.0/20 +203.110.232.0/23 +203.110.234.0/24 +203.114.80.0/20 +203.114.244.0/22 +203.118.192.0/19 +203.118.241.0/24 +203.118.248.0/22 +203.119.24.0/21 +203.119.32.0/22 +203.119.80.0/22 +203.119.85.0/24 +203.119.113.0/24 +203.119.114.0/23 +203.119.116.0/22 +203.119.120.0/21 +203.119.128.0/17 +203.123.58.0/24 +203.128.32.0/19 +203.128.96.0/19 +203.128.128.0/24 +203.128.224.0/21 +203.129.8.0/21 +203.130.32.0/19 +203.132.32.0/19 +203.134.240.0/21 +203.135.96.0/19 +203.135.160.0/20 +203.142.12.0/23 +203.142.219.0/24 +203.142.224.0/19 +203.144.96.0/19 +203.145.0.0/19 +203.148.0.0/18 +203.148.64.0/20 +203.148.80.0/22 +203.148.86.0/23 +203.149.92.0/22 +203.152.64.0/19 +203.152.128.0/19 +203.153.0.0/22 +203.156.192.0/18 +203.158.16.0/21 +203.160.52.0/22 +203.160.104.0/21 +203.160.129.0/24 +203.160.192.0/19 +203.161.0.0/22 +203.161.180.0/24 +203.161.183.0/24 +203.161.192.0/19 +203.166.160.0/19 +203.167.28.0/22 +203.168.0.0/19 +203.170.58.0/23 +203.171.0.0/22 +203.171.208.0/24 +203.171.224.0/20 +203.174.4.0/24 +203.174.6.0/23 +203.174.96.0/19 +203.175.128.0/19 +203.175.192.0/18 +203.176.0.0/18 +203.176.64.0/19 +203.176.168.0/21 +203.184.80.0/20 +203.185.189.0/24 +203.187.160.0/19 +203.189.0.0/23 +203.189.6.0/23 +203.189.112.0/22 +203.189.192.0/19 +203.189.232.0/22 +203.189.240.0/22 +203.190.96.0/20 +203.190.249.0/24 +203.191.0.0/23 +203.191.2.0/24 +203.191.5.0/24 +203.191.7.0/24 +203.191.16.0/20 +203.191.64.0/18 +203.191.133.0/24 +203.191.144.0/20 +203.192.0.0/19 +203.193.224.0/19 +203.194.120.0/21 +203.195.64.0/19 +203.195.112.0/21 +203.195.128.0/17 +203.196.0.0/20 +203.196.28.0/22 +203.201.181.0/24 +203.201.182.0/24 +203.202.236.0/22 +203.205.64.0/19 +203.205.128.0/17 +203.207.64.0/18 +203.207.128.0/17 +203.208.0.0/20 +203.208.16.0/22 +203.208.32.0/19 +203.209.224.0/19 +203.212.0.0/20 +203.212.80.0/20 +203.215.232.0/21 +203.217.164.0/22 +203.222.192.0/20 +203.223.0.0/20 +203.223.16.0/21 +204.55.160.0/24 +204.74.96.0/24 +204.114.176.0/23 +206.219.44.0/23 +206.219.50.0/23 +206.219.52.0/23 +207.89.20.0/24 +210.2.0.0/19 +210.5.0.0/19 +210.5.56.0/21 +210.5.128.0/19 +210.7.56.0/21 +210.12.0.0/15 +210.14.64.0/19 +210.14.112.0/20 +210.14.128.0/17 +210.15.0.0/17 +210.15.128.0/18 +210.16.104.0/22 +210.16.128.0/18 +210.21.0.0/16 +210.22.0.0/16 +210.23.32.0/19 +210.25.0.0/16 +210.26.0.0/15 +210.28.0.0/14 +210.32.0.0/12 +210.51.0.0/16 +210.52.0.0/15 +210.56.192.0/19 +210.72.0.0/14 +210.76.0.0/15 +210.78.0.0/16 +210.79.64.0/18 +210.79.224.0/19 +210.82.0.0/15 +210.87.128.0/18 +210.185.192.0/18 +210.192.96.0/19 +211.64.0.0/13 +211.80.0.0/12 +211.96.0.0/13 +211.136.0.0/13 +211.144.0.0/12 +211.160.0.0/13 +212.64.0.0/17 +212.129.128.0/17 +216.250.108.0/22 +218.0.0.0/11 +218.56.0.0/13 +218.64.0.0/11 +218.96.0.0/14 +218.100.88.0/21 +218.100.96.0/19 +218.100.128.0/17 +218.104.0.0/14 +218.108.0.0/15 +218.185.192.0/19 +218.185.240.0/21 +218.192.0.0/12 +218.240.0.0/13 +218.249.0.0/16 +219.72.0.0/16 +219.82.0.0/16 +219.83.128.0/17 +219.90.68.0/22 +219.90.72.0/21 +219.128.0.0/11 +219.216.0.0/13 +219.224.0.0/12 +219.242.0.0/15 +219.244.0.0/14 +220.101.192.0/18 +220.112.0.0/14 +220.152.128.0/17 +220.154.0.0/15 +220.158.240.0/22 +220.160.0.0/11 +220.192.0.0/12 +220.231.0.0/18 +220.231.128.0/17 +220.232.64.0/18 +220.234.0.0/16 +220.242.0.0/15 +220.247.136.0/21 +220.248.0.0/14 +220.252.0.0/16 +221.0.0.0/13 +221.8.0.0/14 +221.12.0.0/17 +221.12.128.0/18 +221.13.0.0/16 +221.14.0.0/15 +221.122.0.0/15 +221.128.128.0/17 +221.129.0.0/16 +221.130.0.0/15 +221.133.224.0/19 +221.136.0.0/15 +221.172.0.0/14 +221.176.0.0/13 +221.192.0.0/14 +221.196.0.0/15 +221.198.0.0/16 +221.199.0.0/17 +221.199.128.0/18 +221.199.192.0/20 +221.199.224.0/19 +221.200.0.0/13 +221.208.0.0/12 +221.224.0.0/12 +222.16.0.0/12 +222.32.0.0/11 +222.64.0.0/11 +222.125.0.0/16 +222.126.128.0/17 +222.128.0.0/12 +222.160.0.0/14 +222.168.0.0/13 +222.176.0.0/12 +222.192.0.0/11 +222.240.0.0/13 +222.248.0.0/15 +223.0.0.0/12 +223.20.0.0/15 +223.27.184.0/22 +223.29.208.0/22 +223.29.252.0/22 +223.64.0.0/11 +223.96.0.0/12 +223.112.0.0/14 +223.116.0.0/15 +223.120.0.0/13 +223.128.0.0/15 +223.144.0.0/12 +223.160.0.0/14 +223.166.0.0/15 +223.192.0.0/15 +223.198.0.0/15 +223.201.0.0/16 +223.202.0.0/15 +223.208.0.0/13 +223.220.0.0/15 +223.223.176.0/20 +223.223.192.0/20 +223.240.0.0/13 +223.248.0.0/14 +223.252.128.0/17 +223.254.0.0/16 +223.255.0.0/17 +223.255.236.0/22 +223.255.252.0/23 + +[proxy_list] +# Telegram IPs$ +91.108.4.0/22 +91.108.8.0/21 +91.108.16.0/21 +91.108.36.0/22 +91.108.56.0/22 +109.239.140.0/24 +149.154.160.0/20 +14.102.250.18 +14.102.250.19 +174.142.105.153 +50.7.31.230 +67.220.91.15 +67.220.91.18 +67.220.91.23 +69.65.19.160 +72.52.81.22 +85.17.73.31 +(^|\.)030buy\.com$ +(^|\.)0rz\.tw$ +(^|\.)1-apple\.com\.tw$ +(^|\.)10\.tt$ +(^|\.)1000giri\.net$ +(^|\.)100ke\.org$ +(^|\.)10conditionsoflove\.com$ +(^|\.)10musume\.com$ +(^|\.)123rf\.com$ +(^|\.)12bet\.com$ +(^|\.)12vpn\.com$ +(^|\.)12vpn\.net$ +(^|\.)141hongkong\.com$ +(^|\.)141jj\.com$ +(^|\.)141tube\.com$ +(^|\.)1688\.com\.au$ +(^|\.)173ng\.com$ +(^|\.)177pic\.info$ +(^|\.)17t17p\.com$ +(^|\.)18board\.com$ +(^|\.)18board\.info$ +(^|\.)18onlygirls\.com$ +(^|\.)18p2p\.com$ +(^|\.)18virginsex\.com$ +(^|\.)1949er\.org$ +(^|\.)1984bbs\.com$ +(^|\.)1984bbs\.org$ +(^|\.)1989report\.hkja\.org\.hk$ +(^|\.)1991way\.com$ +(^|\.)1998cdp\.org$ +(^|\.)1bao\.org$ +(^|\.)1dumb\.com$ +(^|\.)1e100\.net$ +(^|\.)1eew\.com$ +(^|\.)1mobile\.com$ +(^|\.)1pondo\.tv$ +(^|\.)2-hand\.info$ +(^|\.)2000fun\.com$ +(^|\.)2008xianzhang\.info$ +(^|\.)2017\.hk$ +(^|\.)21andy\.com$ +(^|\.)21pron\.com$ +(^|\.)21sextury\.com$ +(^|\.)228\.net\.tw$ +(^|\.)233abc\.com$ +(^|\.)24hrs\.ca$ +(^|\.)24smile\.org$ +(^|\.)25u\.com$ +(^|\.)2dbook\.com$ +(^|\.)2lipstube\.com$ +(^|\.)2shared\.com$ +(^|\.)2waky\.com$ +(^|\.)3-a\.net$ +(^|\.)30boxes\.com$ +(^|\.)315lz\.com$ +(^|\.)32red\.com$ +(^|\.)36rain\.com$ +(^|\.)3a5a\.com$ +(^|\.)3arabtv\.com$ +(^|\.)3boys2girls\.com$ +(^|\.)3d-game\.com$ +(^|\.)3proxy\.ru$ +(^|\.)3ren\.ca$ +(^|\.)3tui\.net$ +(^|\.)466453\.com$ +(^|\.)4bluestones\.biz$ +(^|\.)4chan\.com$ +(^|\.)4dq\.com$ +(^|\.)4everproxy\.com$ +(^|\.)4irc\.com$ +(^|\.)4mydomain\.com$ +(^|\.)4pu\.com$ +(^|\.)4rbtv\.com$ +(^|\.)4shared\.com$ +(^|\.)4tern\.com$ +(^|\.)51\.ca$ +(^|\.)51jav\.org$ +(^|\.)51luoben\.com$ +(^|\.)5278\.cc$ +(^|\.)56cun04\.jigsy\.com$ +(^|\.)5aimiku\.com$ +(^|\.)5i01\.com$ +(^|\.)5isotoi5\.org$ +(^|\.)5maodang\.com$ +(^|\.)63i\.com$ +(^|\.)64memo$ +(^|\.)64museum\.org$ +(^|\.)64tianwang\.com$ +(^|\.)64wiki\.com$ +(^|\.)66\.ca$ +(^|\.)666kb\.com$ +(^|\.)6park\.com$ +(^|\.)6parker\.com$ +(^|\.)7capture\.com$ +(^|\.)7cow\.com$ +(^|\.)8-d\.com$ +(^|\.)85cc\.net$ +(^|\.)85cc\.us$ +(^|\.)85st\.com$ +(^|\.)881903\.com$ +(^|\.)888\.com$ +(^|\.)888poker\.com$ +(^|\.)89-64\.org$ +(^|\.)89\.64\.charter\.constitutionalism\.solutions$ +(^|\.)8news\.com\.tw$ +(^|\.)8z1\.net$ +(^|\.)9001700\.com$ +(^|\.)908taiwan\.org$ +(^|\.)91porn\.com$ +(^|\.)91vps\.club$ +(^|\.)92ccav\.com$ +(^|\.)991\.com$ +(^|\.)99btgc01\.com$ +(^|\.)99cn\.info$ +(^|\.)9bis\.com$ +(^|\.)9bis\.net$ +(^|\.)a-normal-day\.com$ +(^|\.)a248\.e\.akamai\.net$ +(^|\.)a5\.com\.ru$ +(^|\.)aamacau\.com$ +(^|\.)abc\.com$ +(^|\.)abc\.pp\.ru$ +(^|\.)abc\.xyz$ +(^|\.)abchinese\.com$ +(^|\.)abclite\.net$ +(^|\.)abitno\.linpie\.com$ +(^|\.)ablwang\.com$ +(^|\.)aboluowang\.com$ +(^|\.)aboutgfw\.com$ +(^|\.)abs\.edu$ +(^|\.)ac\.jiruan\.net$ +(^|\.)accim\.org$ +(^|\.)aceros-de-hispania\.com$ +(^|\.)acevpn\.com$ +(^|\.)acg18\.me$ +(^|\.)acgkj\.com$ +(^|\.)acmedia365\.com$ +(^|\.)acmetoy\.com$ +(^|\.)acnw\.com\.au$ +(^|\.)actfortibet\.org$ +(^|\.)actimes\.com\.au$ +(^|\.)activpn\.com$ +(^|\.)aculo\.us$ +(^|\.)addictedtocoffee\.de$ +(^|\.)adelaidebbs\.com$ +(^|\.)admob\.com$ +(^|\.)adorama\.com$ +(^|\.)adpl\.org\.hk$ +(^|\.)ads-twitter\.com$ +(^|\.)adsense\.com$ +(^|\.)adult-sex-games\.com$ +(^|\.)adult\.friendfinder\.com$ +(^|\.)adultfriendfinder\.com$ +(^|\.)adultkeep\.net$ +(^|\.)advanscene\.com$ +(^|\.)advertfan\.com$ +(^|\.)ae\.hao123\.com$ +(^|\.)ae\.org$ +(^|\.)aenhancers\.com$ +(^|\.)af\.mil$ +(^|\.)afantibbs\.com$ +(^|\.)agnesb\.fr$ +(^|\.)agoogleaday\.com$ +(^|\.)agro\.hk$ +(^|\.)ahr0chm6ly95zwnslm5lda$ +(^|\.)ai-kan\.net$ +(^|\.)ai-wen\.net$ +(^|\.)ai\.binwang\.me$ +(^|\.)aiph\.net$ +(^|\.)airasia\.com$ +(^|\.)airconsole\.com$ +(^|\.)airvpn\.org$ +(^|\.)aisex\.com$ +(^|\.)ait\.org\.tw$ +(^|\.)aiweiwei\.com$ +(^|\.)aiweiweiblog\.com$ +(^|\.)akademiye\.org$ +(^|\.)akiba-online\.com$ +(^|\.)akiba-web\.com$ +(^|\.)al-islam\.com$ +(^|\.)al-qimmah\.net$ +(^|\.)alabout\.com$ +(^|\.)alanhou\.com$ +(^|\.)alarab\.qa$ +(^|\.)alasbarricadas\.org$ +(^|\.)alexlur\.org$ +(^|\.)alforattv\.net$ +(^|\.)alhayat\.com$ +(^|\.)alicejapan\.co\.jp$ +(^|\.)alien-ufos\.com$ +(^|\.)aliengu\.com$ +(^|\.)alkasir\.com$ +(^|\.)allconnected\.co$ +(^|\.)alldrawnsex\.com$ +(^|\.)allervpn\.com$ +(^|\.)allfinegirls\.com$ +(^|\.)allgirlmassage\.com$ +(^|\.)allgirlsallowed\.org$ +(^|\.)allgravure\.com$ +(^|\.)alliance\.org\.hk$ +(^|\.)allinfa\.com$ +(^|\.)alljackpotscasino\.com$ +(^|\.)allmovie\.com$ +(^|\.)allowed\.org$ +(^|\.)almasdarnews\.com$ +(^|\.)almostmy\.com$ +(^|\.)alphaporno\.com$ +(^|\.)alternate-tools\.com$ +(^|\.)alternativeto\.net$ +(^|\.)altrec\.com$ +(^|\.)alvinalexander\.com$ +(^|\.)alwaysdata\.com$ +(^|\.)alwaysdata\.net$ +(^|\.)alwaysvpn\.com$ +(^|\.)am730\.com\.hk$ +(^|\.)amazon\.com$ +(^|\.)ameblo\.jp$ +(^|\.)americangreencard\.com$ +(^|\.)americanunfinished\.com$ +(^|\.)amiblockedornot\.com$ +(^|\.)amigobbs\.net$ +(^|\.)amitabhafoundation\.us$ +(^|\.)amnesty\.org$ +(^|\.)amnesty\.org\.hk$ +(^|\.)amnesty\.tw$ +(^|\.)amnestyusa\.org$ +(^|\.)amnyemachen\.org$ +(^|\.)amoiist\.com$ +(^|\.)ampproject\.org$ +(^|\.)amtb-taipei\.org$ +(^|\.)anchorfree\.com$ +(^|\.)ancsconf\.org$ +(^|\.)andfaraway\.net$ +(^|\.)android-x86\.org$ +(^|\.)android\.com$ +(^|\.)androidify\.com$ +(^|\.)androidplus\.co$ +(^|\.)andygod\.com$ +(^|\.)angelfire\.com$ +(^|\.)angularjs\.org$ +(^|\.)animecrazy\.net$ +(^|\.)animeshippuuden\.com$ +(^|\.)aniscartujo\.com$ +(^|\.)annatam\.com$ +(^|\.)anobii\.com$ +(^|\.)anontext\.com$ +(^|\.)anonymise\.us$ +(^|\.)anonymitynetwork\.com$ +(^|\.)anonymizer\.com$ +(^|\.)anpopo\.com$ +(^|\.)answering-islam\.org$ +(^|\.)anthonycalzadilla\.com$ +(^|\.)anti1984\.com$ +(^|\.)antichristendom\.com$ +(^|\.)antiwave\.net$ +(^|\.)anyporn\.com$ +(^|\.)anysex\.com$ +(^|\.)aobo\.com\.au$ +(^|\.)aofriend\.com$ +(^|\.)aofriend\.com\.au$ +(^|\.)aojiao\.org$ +(^|\.)aolchannels\.aol\.com$ +(^|\.)aomiwang\.com$ +(^|\.)apetube\.com$ +(^|\.)api-secure\.recaptcha\.net$ +(^|\.)api-verify\.recaptcha\.net$ +(^|\.)api\.ai$ +(^|\.)api\.dropboxapi\.com$ +(^|\.)api\.linksalpha\.com$ +(^|\.)api\.proxlet\.com$ +(^|\.)api\.recaptcha\.net$ +(^|\.)apiary\.io$ +(^|\.)apidocs\.linksalpha\.com$ +(^|\.)apigee\.com$ +(^|\.)apk-dl\.com$ +(^|\.)apkdler\.com$ +(^|\.)apkmirror\.com$ +(^|\.)apkmonk\.com$ +(^|\.)apkplz\.com$ +(^|\.)apkpure\.com$ +(^|\.)aplusvpn\.com$ +(^|\.)app\.box\.com$ +(^|\.)app\.heywire\.com$ +(^|\.)app\.tutanota\.com$ +(^|\.)appdownloader\.net$ +(^|\.)appledaily\.com$ +(^|\.)appshopper\.com$ +(^|\.)appsocks\.net$ +(^|\.)appspot\.com$ +(^|\.)appsto\.re$ +(^|\.)ar\.hao123\.com$ +(^|\.)archive\.fo$ +(^|\.)archive\.is$ +(^|\.)archive\.org$ +(^|\.)archives\.gov$ +(^|\.)archives\.gov\.tw$ +(^|\.)arctosia\.com$ +(^|\.)areca-backup\.org$ +(^|\.)arena\.taipei$ +(^|\.)arethusa\.su$ +(^|\.)arlingtoncemetery\.mil$ +(^|\.)army\.mil$ +(^|\.)art4tibet1998\.org$ +(^|\.)artofpeacefoundation\.org$ +(^|\.)artsy\.net$ +(^|\.)asacp\.org$ +(^|\.)asahichinese\.com$ +(^|\.)asdfg\.jp$ +(^|\.)asg\.to$ +(^|\.)asia-gaming\.com$ +(^|\.)asiaharvest\.org$ +(^|\.)asianews\.it$ +(^|\.)asiansexdiary\.com$ +(^|\.)asianspiss\.com$ +(^|\.)asianwomensfilm\.de$ +(^|\.)asiatgp\.com$ +(^|\.)asiatoday\.us$ +(^|\.)askstudent\.com$ +(^|\.)askynz\.net$ +(^|\.)assembla\.com$ +(^|\.)assimp\.org$ +(^|\.)astrill\.com$ +(^|\.)atc\.org\.au$ +(^|\.)atchinese\.com$ +(^|\.)atdmt\.com$ +(^|\.)atgfw\.org$ +(^|\.)athenaeizou\.com$ +(^|\.)atlanta168\.com$ +(^|\.)atlaspost\.com$ +(^|\.)atnext\.com$ +(^|\.)authorizeddns\.net$ +(^|\.)authorizeddns\.org$ +(^|\.)authorizeddns\.us$ +(^|\.)autodraw\.com$ +(^|\.)av\.com$ +(^|\.)av\.movie$ +(^|\.)av\.nightlife141\.com$ +(^|\.)avaaz\.org$ +(^|\.)avbody\.tv$ +(^|\.)avcity\.tv$ +(^|\.)avcool\.com$ +(^|\.)avdb\.in$ +(^|\.)avdb\.tv$ +(^|\.)avfantasy\.com$ +(^|\.)avidemux\.org$ +(^|\.)avmo\.pw$ +(^|\.)avmoo\.com$ +(^|\.)avmoo\.net$ +(^|\.)avmoo\.pw$ +(^|\.)avoision\.com$ +(^|\.)avyahoo\.com$ +(^|\.)axureformac\.com$ +(^|\.)azerbaycan\.tv$ +(^|\.)azerimix\.com$ +(^|\.)azubu\.tv$ +(^|\.)b0ne\.com$ +(^|\.)babynet\.com\.hk$ +(^|\.)backchina\.com$ +(^|\.)backpackers\.com\.tw$ +(^|\.)backtotiananmen\.com$ +(^|\.)badjojo\.com$ +(^|\.)badoo\.com$ +(^|\.)baidu\.jp$ +(^|\.)bailandaily\.com$ +(^|\.)baixing\.me$ +(^|\.)bakgeekhome\.tk$ +(^|\.)banana-vpn\.com$ +(^|\.)bandwagonhost\.com$ +(^|\.)bangbrosnetwork\.com$ +(^|\.)bangchen\.net$ +(^|\.)bangyoulater\.com$ +(^|\.)bannedbook\.org$ +(^|\.)bannednews\.org$ +(^|\.)banorte\.com$ +(^|\.)baramangaonline\.com$ +(^|\.)barenakedislam\.com$ +(^|\.)barnabu\.co\.uk$ +(^|\.)bartvpn\.com$ +(^|\.)bash-hackers\.org$ +(^|\.)bastillepost\.com$ +(^|\.)bayvoice\.net$ +(^|\.)bb-chat\.tv$ +(^|\.)bb\.ttv\.com\.tw$ +(^|\.)bbc\.co\.uk$ +(^|\.)bbc\.com$ +(^|\.)bbc\.com%2fzhongwen$ +(^|\.)bbc\.in$ +(^|\.)bbcchinese\.com$ +(^|\.)bbchat\.tv$ +(^|\.)bbg\.gov$ +(^|\.)bbkz\.com$ +(^|\.)bbnradio\.org$ +(^|\.)bbs-tw\.com$ +(^|\.)bbs\.brockbbs\.com$ +(^|\.)bbs\.cantonese\.asia$ +(^|\.)bbs\.ecstart\.com$ +(^|\.)bbs\.hanminzu\.org$ +(^|\.)bbs\.hasi\.wang$ +(^|\.)bbs\.huasing\.org$ +(^|\.)bbs\.junglobal\.net$ +(^|\.)bbs\.kimy\.com\.tw$ +(^|\.)bbs\.morbell\.com$ +(^|\.)bbs\.mychat\.to$ +(^|\.)bbs\.netbig\.com$ +(^|\.)bbs\.ozchinese\.com$ +(^|\.)bbs\.qmzdd\.com$ +(^|\.)bbs\.sina\.com$ +(^|\.)bbs\.sina\.com%2f$ +(^|\.)bbs\.skykiwi\.com$ +(^|\.)bbs\.sou-tong\.org$ +(^|\.)bbs\.tuitui\.info$ +(^|\.)bbsdigest\.com$ +(^|\.)bbsfeed\.com$ +(^|\.)bbsland\.com$ +(^|\.)bbsmo\.com$ +(^|\.)bbsone\.com$ +(^|\.)bbtoystore\.com$ +(^|\.)bcast\.co\.nz$ +(^|\.)bcc\.com\.tw$ +(^|\.)bcchinese\.net$ +(^|\.)bcmorning\.com$ +(^|\.)bdsmvideos\.net$ +(^|\.)beaconevents\.com$ +(^|\.)bebo\.com$ +(^|\.)beeg\.com$ +(^|\.)beevpn\.com$ +(^|\.)behindkink\.com$ +(^|\.)beijing1989\.com$ +(^|\.)beijingspring\.com$ +(^|\.)beijingzx\.org$ +(^|\.)belamionline\.com$ +(^|\.)bell\.wiki$ +(^|\.)bemywife\.cc$ +(^|\.)beric\.me$ +(^|\.)berlintwitterwall\.com$ +(^|\.)berm\.co\.nz$ +(^|\.)bestforchina\.org$ +(^|\.)bestgore\.com$ +(^|\.)bestpornstardb\.com$ +(^|\.)bestvpn\.com$ +(^|\.)bestvpnanalysis\.com$ +(^|\.)bestvpnserver\.com$ +(^|\.)bestvpnservice\.com$ +(^|\.)bestvpnusa\.com$ +(^|\.)bet365\.com$ +(^|\.)beta\.usejump\.com$ +(^|\.)betfair\.com$ +(^|\.)betternet\.co$ +(^|\.)bettervpn\.com$ +(^|\.)bettween\.com$ +(^|\.)betvictor\.com$ +(^|\.)bewww\.net$ +(^|\.)beyondfirewall\.com$ +(^|\.)bfnn\.org$ +(^|\.)bfsh\.hk$ +(^|\.)bgvpn\.com$ +(^|\.)bianlei\.com$ +(^|\.)biantailajiao\.com$ +(^|\.)biantailajiao\.in$ +(^|\.)biblesforamerica\.org$ +(^|\.)bic2011\.org$ +(^|\.)bigfools\.com$ +(^|\.)bigjapanesesex\.com$ +(^|\.)bigmoney\.biz$ +(^|\.)bignews\.org$ +(^|\.)bigsound\.org$ +(^|\.)biliworld\.com$ +(^|\.)billypan\.com$ +(^|\.)binux\.me$ +(^|\.)bipic\.net$ +(^|\.)bit\.do$ +(^|\.)bit\.ly$ +(^|\.)bitc\.bme\.emory\.edu$ +(^|\.)bitcointalk\.org$ +(^|\.)bitmex\.com$ +(^|\.)bitshare\.com$ +(^|\.)bitsnoop\.com$ +(^|\.)bitvise\.com$ +(^|\.)bizhat\.com$ +(^|\.)bjnewlife\.org$ +(^|\.)bjs\.org$ +(^|\.)bjzc\.org$ +(^|\.)bl-doujinsouko\.com$ +(^|\.)blacklogic\.com$ +(^|\.)blackvpn\.com$ +(^|\.)blewpass\.com$ +(^|\.)blinkx\.com$ +(^|\.)blinw\.com$ +(^|\.)blip\.tv$ +(^|\.)blockcn\.com$ +(^|\.)blockless\.com$ +(^|\.)blog\.calibre-ebook\.com$ +(^|\.)blog\.cnyes\.com$ +(^|\.)blog\.daum\.net$ +(^|\.)blog\.de$ +(^|\.)blog\.exblog\.co\.jp$ +(^|\.)blog\.excite\.co\.jp$ +(^|\.)blog\.expofutures\.com$ +(^|\.)blog\.fizzik\.com$ +(^|\.)blog\.foolsmountain\.com$ +(^|\.)blog\.fuckgfw233\.org$ +(^|\.)blog\.goo\.ne\.jp$ +(^|\.)blog\.google$ +(^|\.)blog\.inoreader\.com$ +(^|\.)blog\.istef\.info$ +(^|\.)blog\.jackjia\.com$ +(^|\.)blog\.jp$ +(^|\.)blog\.kangye\.org$ +(^|\.)blog\.lester850\.info$ +(^|\.)blog\.martinoei\.com$ +(^|\.)blog\.pathtosharepoint\.com$ +(^|\.)blog\.pentalogic\.net$ +(^|\.)blog\.qooza\.hk$ +(^|\.)blog\.ranxiang\.com$ +(^|\.)blog\.sina\.com\.tw$ +(^|\.)blog\.sogoo\.org$ +(^|\.)blog\.soylent\.com$ +(^|\.)blog\.syx86\.cn$ +(^|\.)blog\.syx86\.com$ +(^|\.)blog\.taragana\.com$ +(^|\.)blog\.tiney\.com$ +(^|\.)blog\.xuite\.net$ +(^|\.)blog\.youthwant\.com\.tw$ +(^|\.)blog\.youxu\.info$ +(^|\.)blogblog\.com$ +(^|\.)blogcatalog\.com$ +(^|\.)blogcity\.me$ +(^|\.)blogdns\.org$ +(^|\.)blogger\.com$ +(^|\.)blogimg\.jp$ +(^|\.)bloglines\.com$ +(^|\.)bloglovin\.com$ +(^|\.)blogs\.icerocket\.com$ +(^|\.)blogs\.libraryinformationtechnology\.com$ +(^|\.)blogs\.tampabay\.com$ +(^|\.)blogs\.yahoo\.co\.jp$ +(^|\.)blogspot(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?){1,2}$ +(^|\.)blogtd\.net$ +(^|\.)blogtd\.org$ +(^|\.)bloodshed\.net$ +(^|\.)bloomberg\.cn$ +(^|\.)bloomberg\.com$ +(^|\.)bloomberg\.de$ +(^|\.)bloombergview\.com$ +(^|\.)bloomfortune\.com$ +(^|\.)blueangellive\.com$ +(^|\.)bmfinn\.com$ +(^|\.)bnews\.co$ +(^|\.)bnrmetal\.com$ +(^|\.)boardreader\.com$ +(^|\.)bod\.asia$ +(^|\.)bodog88\.com$ +(^|\.)bolehvpn\.net$ +(^|\.)bolin\.netfirms\.com$ +(^|\.)bonbonme\.com$ +(^|\.)bonbonsex\.com$ +(^|\.)bonfoundation\.org$ +(^|\.)bongacams\.com$ +(^|\.)boobstagram\.com$ +(^|\.)book\.com\.tw$ +(^|\.)book\.zi5\.me$ +(^|\.)bookepub\.com$ +(^|\.)books\.com\.tw$ +(^|\.)boomssr\.com$ +(^|\.)bot\.nu$ +(^|\.)botanwang\.com$ +(^|\.)bowenpress\.com$ +(^|\.)boxpn\.com$ +(^|\.)boxun$ +(^|\.)boxun\.com$ +(^|\.)boxun\.tv$ +(^|\.)boxunblog\.com$ +(^|\.)boxunclub\.com$ +(^|\.)boyangu\.com$ +(^|\.)boyfriendtv\.com$ +(^|\.)boysfood\.com$ +(^|\.)boysmaster\.com$ +(^|\.)br\.hao123\.com$ +(^|\.)br\.st$ +(^|\.)brainyquote\.com$ +(^|\.)brandonhutchinson\.com$ +(^|\.)braumeister\.org$ +(^|\.)bravotube\.net$ +(^|\.)brazzers\.com$ +(^|\.)break\.com$ +(^|\.)breakgfw\.com$ +(^|\.)breaking911\.com$ +(^|\.)breakingtweets\.com$ +(^|\.)breakwall\.net$ +(^|\.)briefdream\.com$ +(^|\.)briian\.com$ +(^|\.)brizzly\.com$ +(^|\.)brkmd\.com$ +(^|\.)broadbook\.com$ +(^|\.)broadpressinc\.com$ +(^|\.)brucewang\.net$ +(^|\.)brutaltgp\.com$ +(^|\.)bt2mag\.com$ +(^|\.)bt95\.com$ +(^|\.)btaia\.com$ +(^|\.)btbtav\.com$ +(^|\.)btdigg\.org$ +(^|\.)btku\.me$ +(^|\.)btku\.org$ +(^|\.)btspread\.com$ +(^|\.)budaedu\.org$ +(^|\.)buddhanet\.com\.tw$ +(^|\.)buddhistchannel\.tv$ +(^|\.)buffered\.com$ +(^|\.)bullog\.org$ +(^|\.)bullogger\.com$ +(^|\.)bunbunhk\.com$ +(^|\.)busayari\.com$ +(^|\.)businessinsider\.com$ +(^|\.)businessweek\.com$ +(^|\.)busu\.org$ +(^|\.)busytrade\.com$ +(^|\.)buugaa\.com$ +(^|\.)buy\.yahoo\.com\.tw$ +(^|\.)buzzhand\.com$ +(^|\.)buzzhand\.net$ +(^|\.)buzzorange\.com$ +(^|\.)bvpn\.com$ +(^|\.)bwsj\.hk$ +(^|\.)bx\.tl$ +(^|\.)bynet\.co\.il$ +(^|\.)c-est-simple\.com$ +(^|\.)c-spanvideo\.org$ +(^|\.)c100tibet\.org$ +(^|\.)c1522\.mooo\.com$ +(^|\.)cablegatesearch\.net$ +(^|\.)cachinese\.com$ +(^|\.)cacnw\.com$ +(^|\.)cactusvpn\.com$ +(^|\.)cafepress\.com$ +(^|\.)cahr\.org\.tw$ +(^|\.)calameo\.com$ +(^|\.)calebelston\.com$ +(^|\.)calgarychinese\.ca$ +(^|\.)calgarychinese\.com$ +(^|\.)calgarychinese\.net$ +(^|\.)cam4\.com$ +(^|\.)cam4\.jp$ +(^|\.)cam4\.sg$ +(^|\.)camfrog\.com$ +(^|\.)cams\.com$ +(^|\.)cams\.org\.sg$ +(^|\.)canadameet\.com$ +(^|\.)canalporno\.com$ +(^|\.)canyu\.org$ +(^|\.)cao\.im$ +(^|\.)caobian\.info$ +(^|\.)caochangqing\.com$ +(^|\.)cap\.org\.hk$ +(^|\.)carabinasypistolas\.com$ +(^|\.)cardinalkungfoundation\.org$ +(^|\.)carfax\.com$ +(^|\.)cari\.com\.my$ +(^|\.)caribbeancom\.com$ +(^|\.)carmotorshow\.com$ +(^|\.)cartoonmovement\.com$ +(^|\.)casadeltibetbcn\.org$ +(^|\.)casatibet\.org\.mx$ +(^|\.)casino\.williamhill\.com$ +(^|\.)casinobellini\.com$ +(^|\.)casinoking\.com$ +(^|\.)casinoriva\.com$ +(^|\.)castbox\.fm$ +(^|\.)catch22\.net$ +(^|\.)catfightpayperview\.xxx$ +(^|\.)catholic\.org\.hk$ +(^|\.)catholic\.org\.tw$ +(^|\.)cathvoice\.org\.tw$ +(^|\.)cattt\.com$ +(^|\.)cbc\.ca$ +(^|\.)cbs\.ntu\.edu\.tw$ +(^|\.)cbsnews\.com$ +(^|\.)cbtc\.org\.hk$ +(^|\.)cccat\.cc$ +(^|\.)cccat\.co$ +(^|\.)ccdtr\.org$ +(^|\.)cchere\.com$ +(^|\.)ccim\.org$ +(^|\.)cclife\.ca$ +(^|\.)cclife\.org$ +(^|\.)cclifefl\.org$ +(^|\.)ccthere\.com$ +(^|\.)cctmweb\.net$ +(^|\.)cctongbao\.com$ +(^|\.)ccue\.ca$ +(^|\.)ccue\.com$ +(^|\.)ccvoice\.ca$ +(^|\.)ccw\.org\.tw$ +(^|\.)cdbook\.org$ +(^|\.)cdcparty\.com$ +(^|\.)cdef\.org$ +(^|\.)cdig\.info$ +(^|\.)cdjp\.org$ +(^|\.)cdn$ +(^|\.)cdn-apple\.com$ +(^|\.)cdn-images\.mailchimp\.com$ +(^|\.)cdn\.assets\.lfpcontent\.com$ +(^|\.)cdn\.helixstudios\.net$ +(^|\.)cdn\.printfriendly\.com$ +(^|\.)cdn\.softlayer\.net$ +(^|\.)cdn1\.lp\.saboom\.com$ +(^|\.)cdnews\.com\.tw$ +(^|\.)cdninstagram\.com$ +(^|\.)cdp1989\.org$ +(^|\.)cdp1998\.org$ +(^|\.)cdp2006\.org$ +(^|\.)cdpa\.url\.tw$ +(^|\.)cdpeu\.org$ +(^|\.)cdpusa\.org$ +(^|\.)cdpweb\.org$ +(^|\.)cdpwu\.org$ +(^|\.)cdw\.com$ +(^|\.)cecc\.gov$ +(^|\.)cellulo\.info$ +(^|\.)cenews\.eu$ +(^|\.)centauro\.com\.br$ +(^|\.)centerforhumanreprod\.com$ +(^|\.)centralnation\.com$ +(^|\.)centurys\.net$ +(^|\.)certificate-transparency\.org$ +(^|\.)certificate\.revocationcheck\.com$ +(^|\.)cfhks\.org\.hk$ +(^|\.)cftfc\.com$ +(^|\.)cgdepot\.org$ +(^|\.)cgst\.edu$ +(^|\.)ch\.shvoong\.com$ +(^|\.)change\.org$ +(^|\.)changeip\.name$ +(^|\.)changeip\.net$ +(^|\.)changeip\.org$ +(^|\.)changp\.com$ +(^|\.)changsa\.net$ +(^|\.)channel8news\.sg$ +(^|\.)chapm25\.com$ +(^|\.)chatnook\.com$ +(^|\.)chaturbate\.com$ +(^|\.)chengmingmag\.com$ +(^|\.)chenguangcheng\.com$ +(^|\.)chenpokong\.com$ +(^|\.)chenpokong\.net$ +(^|\.)chenshan20042005\.wordpress\.com$ +(^|\.)cherrysave\.com$ +(^|\.)chhongbi\.org$ +(^|\.)chicagoncmtv\.com$ +(^|\.)china-mmm\.jp\.net$ +(^|\.)china-mmm\.net$ +(^|\.)china-mmm\.sa\.com$ +(^|\.)china-review\.com\.ua$ +(^|\.)china-week\.com$ +(^|\.)china\.hket\.com$ +(^|\.)china\.ucanews\.com$ +(^|\.)china101\.com$ +(^|\.)china18\.org$ +(^|\.)china21\.com$ +(^|\.)china21\.org$ +(^|\.)china5000\.us$ +(^|\.)chinaaffairs\.org$ +(^|\.)chinaaid\.me$ +(^|\.)chinaaid\.net$ +(^|\.)chinaaid\.org$ +(^|\.)chinaaid\.us$ +(^|\.)chinachange\.org$ +(^|\.)chinachannel\.hk$ +(^|\.)chinacitynews\.be$ +(^|\.)chinacomments\.org$ +(^|\.)chinadialogue\.net$ +(^|\.)chinadigitaltimes\.net$ +(^|\.)chinaelections\.org$ +(^|\.)chinaeweekly\.com$ +(^|\.)chinafreepress\.org$ +(^|\.)chinagate\.com$ +(^|\.)chinageeks\.org$ +(^|\.)chinagfw\.org$ +(^|\.)chinagonet\.com$ +(^|\.)chinagreenparty\.org$ +(^|\.)chinahorizon\.org$ +(^|\.)chinahush\.com$ +(^|\.)chinainperspective\.com$ +(^|\.)chinainterimgov\.org$ +(^|\.)chinalaborwatch\.org$ +(^|\.)chinalawandpolicy\.com$ +(^|\.)chinalawtranslate\.com$ +(^|\.)chinamule\.com$ +(^|\.)chinamz\.org$ +(^|\.)chinapost\.com\.tw$ +(^|\.)chinapress\.com\.my$ +(^|\.)chinarightsia\.org$ +(^|\.)chinasmile\.net$ +(^|\.)chinasocialdemocraticparty\.com$ +(^|\.)chinasoul\.org$ +(^|\.)chinasucks\.net$ +(^|\.)chinatimes\.com$ +(^|\.)chinatopsex\.com$ +(^|\.)chinatown\.com\.au$ +(^|\.)chinatweeps\.com$ +(^|\.)chinaway\.org$ +(^|\.)chinaworker\.info$ +(^|\.)chinaxchina\.com$ +(^|\.)chinayouth\.org\.hk$ +(^|\.)chinayuanmin\.org$ +(^|\.)chinese-hermit\.net$ +(^|\.)chinese-leaders\.org$ +(^|\.)chinese-memorial\.org$ +(^|\.)chinese\.donga\.com$ +(^|\.)chinese\.engadget\.com$ +(^|\.)chinese\.irib\.ir$ +(^|\.)chinese\.soifind\.com$ +(^|\.)chinesedaily\.com$ +(^|\.)chinesedailynews\.com$ +(^|\.)chinesedemocracy\.com$ +(^|\.)chinesegay\.org$ +(^|\.)chinesen\.de$ +(^|\.)chinesepen\.org$ +(^|\.)chinesetalks\.net$ +(^|\.)chineseupress\.com$ +(^|\.)chingcheong\.com$ +(^|\.)chinman\.net$ +(^|\.)chithu\.org$ +(^|\.)chn\.chosun\.com$ +(^|\.)chrdnet\.com$ +(^|\.)christianfreedom\.org$ +(^|\.)christianstudy\.com$ +(^|\.)christiantimes\.org\.hk$ +(^|\.)christusrex\.org$ +(^|\.)chrlawyers\.hk$ +(^|\.)chrome\.com$ +(^|\.)chromecast\.com$ +(^|\.)chromeexperiments\.com$ +(^|\.)chromercise\.com$ +(^|\.)chromestatus\.com$ +(^|\.)chromium\.org$ +(^|\.)chuang-yen\.org$ +(^|\.)chubold\.com$ +(^|\.)chubun\.com$ +(^|\.)chuizi\.net$ +(^|\.)churchinhongkong\.org$ +(^|\.)chushigangdrug\.ch$ +(^|\.)cienen\.com$ +(^|\.)cineastentreff\.de$ +(^|\.)cipfg\.org$ +(^|\.)circlethebayfortibet\.org$ +(^|\.)citizencn\.com$ +(^|\.)citizenlab\.org$ +(^|\.)citizenscommission\.hk$ +(^|\.)citizensradio\.org$ +(^|\.)city365\.ca$ +(^|\.)city9x\.com$ +(^|\.)citypopulation\.de$ +(^|\.)citytalk\.tw$ +(^|\.)civicparty\.hk$ +(^|\.)civildisobediencemovement\.org$ +(^|\.)civilhrfront\.org$ +(^|\.)civiliangunner\.com$ +(^|\.)civilmedia\.tw$ +(^|\.)ck101\.com$ +(^|\.)cl\.d0z\.net$ +(^|\.)clarionproject\.org$ +(^|\.)classicalguitarblog\.net$ +(^|\.)clb\.org\.hk$ +(^|\.)cldr\.unicode\.org$ +(^|\.)cleansite\.biz$ +(^|\.)cleansite\.info$ +(^|\.)cleansite\.us$ +(^|\.)clearharmony\.net$ +(^|\.)clearwisdom\.net$ +(^|\.)clementine-player\.org$ +(^|\.)cling\.omy\.sg$ +(^|\.)clinica-tibet\.ru$ +(^|\.)clipfish\.de$ +(^|\.)cloakpoint\.com$ +(^|\.)cloud\.mail\.ru$ +(^|\.)club1069\.com$ +(^|\.)cmi\.org\.tw$ +(^|\.)cmp\.hku\.hk$ +(^|\.)cms\.gov$ +(^|\.)cmule\.com$ +(^|\.)cmule\.org$ +(^|\.)cn-proxy\.com$ +(^|\.)cn\.calameo\.com$ +(^|\.)cn\.dayabook\.com$ +(^|\.)cn\.fmnnow\.com$ +(^|\.)cn\.freeones\.com$ +(^|\.)cn\.giganews\.com$ +(^|\.)cn\.ibtimes\.com$ +(^|\.)cn\.nytstyle\.com$ +(^|\.)cn\.sandscotaicentral\.com$ +(^|\.)cn\.shafaqna\.com$ +(^|\.)cn\.streetvoice\.com$ +(^|\.)cn\.uncyclopedia\.wikia\.com$ +(^|\.)cn\.uptodown\.com$ +(^|\.)cn\.voa\.mobi$ +(^|\.)cn2\.streetvoice\.com$ +(^|\.)cn6\.eu$ +(^|\.)cna\.com\.tw$ +(^|\.)cnabc\.com$ +(^|\.)cnbbnews\.wordpress\.com$ +(^|\.)cnd\.org$ +(^|\.)cnex\.org\.cn$ +(^|\.)cnineu\.com$ +(^|\.)cnn\.com$ +(^|\.)cnnews\.chosun\.com$ +(^|\.)cnpolitics\.org$ +(^|\.)cnproxy\.com$ +(^|\.)co\.ng\.mil$ +(^|\.)coat\.co\.jp$ +(^|\.)cochina\.co$ +(^|\.)cochina\.org$ +(^|\.)code1984\.com$ +(^|\.)codeshare\.io$ +(^|\.)codeskulptor\.org$ +(^|\.)collateralmurder\.com$ +(^|\.)collateralmurder\.org$ +(^|\.)com\.google$ +(^|\.)comefromchina\.com$ +(^|\.)comic-mega\.me$ +(^|\.)commandarms\.com$ +(^|\.)commentshk\.com$ +(^|\.)communistcrimes\.org$ +(^|\.)community\.windy\.com$ +(^|\.)communitychoicecu\.com$ +(^|\.)compileheart\.com$ +(^|\.)compress\.to$ +(^|\.)connect\.facebook\.net$ +(^|\.)conoha\.jp$ +(^|\.)contactmagazine\.net$ +(^|\.)contests\.twilio\.com$ +(^|\.)convio\.net$ +(^|\.)coobay\.com$ +(^|\.)coolaler\.com$ +(^|\.)coolder\.com$ +(^|\.)coolloud\.org\.tw$ +(^|\.)coolncute\.com$ +(^|\.)corumcollege\.com$ +(^|\.)cos-moe\.com$ +(^|\.)cosmic\.monar\.ch$ +(^|\.)cosplayjav\.pl$ +(^|\.)cotweet\.com$ +(^|\.)coursehero\.com$ +(^|\.)cpj\.org$ +(^|\.)cq99\.us$ +(^|\.)crackle\.com$ +(^|\.)crazys\.cc$ +(^|\.)crchina\.org$ +(^|\.)crd-net\.org$ +(^|\.)creaders\.net$ +(^|\.)creadersnet\.com$ +(^|\.)creativelab5\.com$ +(^|\.)cristyli\.com$ +(^|\.)crocotube\.com$ +(^|\.)crossfire\.co\.kr$ +(^|\.)crossthewall\.net$ +(^|\.)crossvpn\.net$ +(^|\.)crrev\.com$ +(^|\.)crucial\.com$ +(^|\.)csdparty\.com$ +(^|\.)css\.pixnet\.in$ +(^|\.)csuchen\.de$ +(^|\.)csw\.org\.uk$ +(^|\.)ct\.org\.tw$ +(^|\.)ctao\.org$ +(^|\.)ctfriend\.net$ +(^|\.)cthlo\.github\.io$ +(^|\.)ctitv\.com\.tw$ +(^|\.)cts\.com\.tw$ +(^|\.)cuhkacs\.org$ +(^|\.)cuihua\.org$ +(^|\.)cuiweiping\.net$ +(^|\.)culture\.tw$ +(^|\.)cumlouder\.com$ +(^|\.)curvefish\.com$ +(^|\.)cusu\.hk$ +(^|\.)cw\.com\.tw$ +(^|\.)cyberghost\.natado\.com$ +(^|\.)cyberghostvpn\.com$ +(^|\.)cynscribe\.com$ +(^|\.)cytode\.us$ +(^|\.)d-fukyu\.com$ +(^|\.)d100\.net$ +(^|\.)d1b183sg0nvnuh\.cloudfront\.net$ +(^|\.)d1c37gjwa26taa\.cloudfront\.net$ +(^|\.)d2bay\.com$ +(^|\.)d2pass\.com$ +(^|\.)d3c33hcgiwev3\.cloudfront\.net$ +(^|\.)d3rhr7kgmtrq1v\.cloudfront\.net$ +(^|\.)dabr\.co\.uk$ +(^|\.)dabr\.eu$ +(^|\.)dabr\.me$ +(^|\.)dabr\.mobi$ +(^|\.)dadazim\.com$ +(^|\.)dadi360\.com$ +(^|\.)dafagood\.com$ +(^|\.)dafahao\.com$ +(^|\.)dafoh\.org$ +(^|\.)dagelijksestandaard\.nl$ +(^|\.)daidostup\.ru$ +(^|\.)dailidaili\.com$ +(^|\.)dailymotion\.com$ +(^|\.)dailynews\.sina\.com$ +(^|\.)dailynews\.sina\.com%2f$ +(^|\.)daiphapinfo\.net$ +(^|\.)dajiyuan\.com$ +(^|\.)dajiyuan\.de$ +(^|\.)dajiyuan\.eu$ +(^|\.)dajusha\.baywords\.com$ +(^|\.)dalailama-archives\.org$ +(^|\.)dalailama\.com$ +(^|\.)dalailama\.mn$ +(^|\.)dalailama\.ru$ +(^|\.)dalailama\.usc\.edu$ +(^|\.)dalailama80\.org$ +(^|\.)dalailamacenter\.org$ +(^|\.)dalailamafellows\.org$ +(^|\.)dalailamafilm\.com$ +(^|\.)dalailamafoundation\.org$ +(^|\.)dalailamahindi\.com$ +(^|\.)dalailamainaustralia\.org$ +(^|\.)dalailamajapanese\.com$ +(^|\.)dalailamaprotesters\.info$ +(^|\.)dalailamaquotes\.org$ +(^|\.)dalailamatrust\.org$ +(^|\.)dalailamavisit\.org\.nz$ +(^|\.)dalailamaworld\.com$ +(^|\.)dalianmeng\.org$ +(^|\.)daliulian\.org$ +(^|\.)danbooru\.donmai\.us$ +(^|\.)danke4china\.net$ +(^|\.)danwei\.org$ +(^|\.)daodu14\.jigsy\.com$ +(^|\.)daolan\.net$ +(^|\.)daozhongxing\.org$ +(^|\.)darktech\.org$ +(^|\.)darktoy\.net$ +(^|\.)darpa\.mil$ +(^|\.)dastrassi\.org$ +(^|\.)data-vocabulary\.org$ +(^|\.)data\.flurry\.com$ +(^|\.)data\.gov\.tw$ +(^|\.)david-kilgour\.com$ +(^|\.)dawangidc\.com$ +(^|\.)daxa\.cn$ +(^|\.)daylife\.com$ +(^|\.)db\.tt$ +(^|\.)dbc\.hk$ +(^|\.)dcard\.tw$ +(^|\.)dcmilitary\.com$ +(^|\.)ddc\.com\.tw$ +(^|\.)ddhw\.info$ +(^|\.)ddns\.info$ +(^|\.)ddns\.me\.uk$ +(^|\.)ddns\.mobi$ +(^|\.)ddns\.ms$ +(^|\.)ddns\.name$ +(^|\.)ddns\.net$ +(^|\.)ddns\.us$ +(^|\.)de-sci\.org$ +(^|\.)deaftone\.com$ +(^|\.)debug\.com$ +(^|\.)deck\.ly$ +(^|\.)decodet\.co$ +(^|\.)deepmind\.com$ +(^|\.)deezer\.com$ +(^|\.)definebabe\.com$ +(^|\.)deja\.com$ +(^|\.)delcamp\.net$ +(^|\.)delicious\.com$ +(^|\.)demo\.opera-mini\.net$ +(^|\.)democrats\.org$ +(^|\.)depositphotos\.com$ +(^|\.)derekhsu\.homeip\.net$ +(^|\.)desc\.se$ +(^|\.)design\.google$ +(^|\.)desipro\.de$ +(^|\.)dessci\.com$ +(^|\.)destiny\.xfiles\.to$ +(^|\.)destroy-china\.jp$ +(^|\.)deutsche-welle\.de$ +(^|\.)developers\.box\.net$ +(^|\.)devio\.us$ +(^|\.)devpn\.com$ +(^|\.)dfas\.mil$ +(^|\.)dfn\.org$ +(^|\.)dharamsalanet\.com$ +(^|\.)dharmakara\.net$ +(^|\.)dhcp\.biz$ +(^|\.)diaoyuislands\.org$ +(^|\.)dictionary\.goo\.ne\.jp$ +(^|\.)digiland\.tw$ +(^|\.)digisfera\.com$ +(^|\.)digitalnomadsproject\.org$ +(^|\.)diigo\.com$ +(^|\.)dilber\.se$ +(^|\.)dingchin\.com\.tw$ +(^|\.)dipity\.com$ +(^|\.)directcreative\.com$ +(^|\.)discuss\.com\.hk$ +(^|\.)discuss4u\.com$ +(^|\.)dish\.com$ +(^|\.)disp\.cc$ +(^|\.)disqus\.com$ +(^|\.)dit-inc\.us$ +(^|\.)dizhidizhi\.com$ +(^|\.)dizhuzhishang\.com$ +(^|\.)djangosnippets\.org$ +(^|\.)djorz\.com$ +(^|\.)dl-laby\.jp$ +(^|\.)dl\.box\.net$ +(^|\.)dlsite\.com$ +(^|\.)dlyoutube\.com$ +(^|\.)dm530\.net$ +(^|\.)dmcdn\.net$ +(^|\.)dmm\.co\.jp$ +(^|\.)dns-dns\.com$ +(^|\.)dns-stuff\.com$ +(^|\.)dns04\.com$ +(^|\.)dns05\.com$ +(^|\.)dns1\.us$ +(^|\.)dns2\.us$ +(^|\.)dns2go\.com$ +(^|\.)dnscrypt\.org$ +(^|\.)dnset\.com$ +(^|\.)dnsrd\.com$ +(^|\.)dnssec\.net$ +(^|\.)dnvod\.tv$ +(^|\.)doctorvoice\.org$ +(^|\.)dogfartnetwork\.com$ +(^|\.)dojin\.com$ +(^|\.)dok-forum\.net$ +(^|\.)dolc\.de$ +(^|\.)dolf\.org\.hk$ +(^|\.)dollf\.com$ +(^|\.)domain\.club\.tw$ +(^|\.)domainhelp\.search\.com$ +(^|\.)domains\.google$ +(^|\.)domaintoday\.com\.au$ +(^|\.)dongtaiwang\.com$ +(^|\.)dongtaiwang\.net$ +(^|\.)dongyangjing\.com$ +(^|\.)dontfilter\.us$ +(^|\.)dontmovetochina\.com$ +(^|\.)dorjeshugden\.com$ +(^|\.)dotplane\.com$ +(^|\.)dotsub\.com$ +(^|\.)dotvpn\.com$ +(^|\.)doub\.io$ +(^|\.)dougscripts\.com$ +(^|\.)douhokanko\.net$ +(^|\.)doujincafe\.com$ +(^|\.)dowei\.org$ +(^|\.)download\.aircrack-ng\.org$ +(^|\.)download\.cnet\.com$ +(^|\.)download\.ithome\.com\.tw$ +(^|\.)dphk\.org$ +(^|\.)dpp\.org\.tw$ +(^|\.)dpr\.info$ +(^|\.)dragonsprings\.org$ +(^|\.)dreamamateurs\.com$ +(^|\.)drepung\.org$ +(^|\.)drgan\.net$ +(^|\.)drmingxia\.org$ +(^|\.)dropbooks\.tv$ +(^|\.)dropbox\.com$ +(^|\.)dropboxusercontent\.com$ +(^|\.)drsunacademy\.com$ +(^|\.)drtuber\.com$ +(^|\.)dscn\.info$ +(^|\.)dsmtp\.com$ +(^|\.)dstk\.dk$ +(^|\.)dtdns\.net$ +(^|\.)dtiblog\.com$ +(^|\.)dtic\.mil$ +(^|\.)dtwang\.org$ +(^|\.)duanzhihu\.com$ +(^|\.)duck\.com$ +(^|\.)duckdns\.org$ +(^|\.)duckduckgo-owned-server\.yahoo\.net$ +(^|\.)duckduckgo\.com$ +(^|\.)duckload\.com$ +(^|\.)duckmylife\.com$ +(^|\.)duga\.jp$ +(^|\.)duihua\.org$ +(^|\.)duihuahrjournal\.org$ +(^|\.)dumb1\.com$ +(^|\.)dunyabulteni\.net$ +(^|\.)duoweitimes\.com$ +(^|\.)duping\.net$ +(^|\.)duplicati\.com$ +(^|\.)dupola\.com$ +(^|\.)dupola\.net$ +(^|\.)dushi\.ca$ +(^|\.)dvorak\.org$ +(^|\.)dw-world\.com$ +(^|\.)dw-world\.de$ +(^|\.)dw\.com$ +(^|\.)dw\.de$ +(^|\.)dwnews\.com$ +(^|\.)dwnews\.net$ +(^|\.)dynamic-dns\.net$ +(^|\.)dynamicdns\.biz$ +(^|\.)dynamicdns\.co\.uk$ +(^|\.)dynamicdns\.me\.uk$ +(^|\.)dynamicdns\.org\.uk$ +(^|\.)dynawebinc\.com$ +(^|\.)dyndns-ip\.com$ +(^|\.)dyndns-pics\.com$ +(^|\.)dyndns\.org$ +(^|\.)dyndns\.pro$ +(^|\.)dynssl\.com$ +(^|\.)dynu\.com$ +(^|\.)dynu\.net$ +(^|\.)dynupdate\.no-ip\.com$ +(^|\.)dzze\.com$ +(^|\.)e-classical\.com\.tw$ +(^|\.)e-gold\.com$ +(^|\.)e-hentai\.org$ +(^|\.)e-hentaidb\.com$ +(^|\.)e-info\.org\.tw$ +(^|\.)e-traderland\.net$ +(^|\.)e-zone\.com\.hk$ +(^|\.)e123\.hk$ +(^|\.)earlytibet\.com$ +(^|\.)earthcam\.com$ +(^|\.)earthvpn\.com$ +(^|\.)eastern-ark\.com$ +(^|\.)easternlightning\.org$ +(^|\.)eastturkestan\.com$ +(^|\.)eastturkistan-gov\.org$ +(^|\.)eastturkistancc\.org$ +(^|\.)eastturkistangovernmentinexile\.us$ +(^|\.)easyca\.ca$ +(^|\.)easypic\.com$ +(^|\.)ebony-beauty\.com$ +(^|\.)ebook\.hyread\.com\.tw$ +(^|\.)ebookbrowse\.com$ +(^|\.)ebookee\.com$ +(^|\.)ecfa\.org\.tw$ +(^|\.)echofon\.com$ +(^|\.)ecimg\.tw$ +(^|\.)ecministry\.net$ +(^|\.)economist\.com$ +(^|\.)ecsm\.vs\.com$ +(^|\.)edgecastcdn\.net$ +(^|\.)edicypages\.com$ +(^|\.)edmontonchina\.cn$ +(^|\.)edmontonservice\.com$ +(^|\.)edns\.biz$ +(^|\.)edoors\.com$ +(^|\.)edubridge\.com$ +(^|\.)edupro\.org$ +(^|\.)eeas\.europa\.eu$ +(^|\.)eesti\.ee$ +(^|\.)eevpn\.com$ +(^|\.)efcc\.org\.hk$ +(^|\.)effers\.com$ +(^|\.)efksoft\.com$ +(^|\.)efukt\.com$ +(^|\.)eic-av\.com$ +(^|\.)eireinikotaerukai\.com$ +(^|\.)eisbb\.com$ +(^|\.)eksisozluk\.com$ +(^|\.)electionsmeter\.com$ +(^|\.)elgoog\.im$ +(^|\.)elpais\.com$ +(^|\.)eltondisney\.com$ +(^|\.)emaga\.com$ +(^|\.)emanna\.com$ +(^|\.)embr\.in$ +(^|\.)emilylau\.org\.hk$ +(^|\.)empfil\.com$ +(^|\.)emule-ed2k\.com$ +(^|\.)emulefans\.com$ +(^|\.)emuparadise\.me$ +(^|\.)en\.favotter\.net$ +(^|\.)en\.hao123\.com$ +(^|\.)enanyang\.my$ +(^|\.)enewstree\.com$ +(^|\.)enfal\.de$ +(^|\.)engagedaily\.org$ +(^|\.)englishforeveryone\.org$ +(^|\.)englishfromengland\.co\.uk$ +(^|\.)englishpen\.org$ +(^|\.)enlighten\.org\.tw$ +(^|\.)entermap\.com$ +(^|\.)entnt\.com$ +(^|\.)environment\.google$ +(^|\.)epa\.gov\.tw$ +(^|\.)epac\.to$ +(^|\.)episcopalchurch\.org$ +(^|\.)epochhk\.com$ +(^|\.)epochtimes-bg\.com$ +(^|\.)epochtimes-romania\.com$ +(^|\.)epochtimes\.co\.il$ +(^|\.)epochtimes\.co\.kr$ +(^|\.)epochtimes\.com$ +(^|\.)epochtimes\.cz$ +(^|\.)epochtimes\.de$ +(^|\.)epochtimes\.fr$ +(^|\.)epochtimes\.ie$ +(^|\.)epochtimes\.it$ +(^|\.)epochtimes\.jp$ +(^|\.)epochtimes\.ru$ +(^|\.)epochtimes\.se$ +(^|\.)epochtimestr\.com$ +(^|\.)epochweek\.com$ +(^|\.)epochweekly\.com$ +(^|\.)eporner\.com$ +(^|\.)equinenow\.com$ +(^|\.)erabaru\.net$ +(^|\.)eracom\.com\.tw$ +(^|\.)eraysoft\.com\.tr$ +(^|\.)erepublik\.com$ +(^|\.)erights\.net$ +(^|\.)eriversoft\.com$ +(^|\.)erktv\.com$ +(^|\.)ernestmandel\.org$ +(^|\.)erodaizensyu\.com$ +(^|\.)erodoujinlog\.com$ +(^|\.)erodoujinworld\.com$ +(^|\.)eromanga-kingdom\.com$ +(^|\.)eromangadouzin\.com$ +(^|\.)eromon\.net$ +(^|\.)eroprofile\.com$ +(^|\.)eroticsaloon\.net$ +(^|\.)eslite\.com$ +(^|\.)esmtp\.biz$ +(^|\.)etaa\.org\.au$ +(^|\.)etadult\.com$ +(^|\.)etaiwannews\.com$ +(^|\.)etizer\.org$ +(^|\.)etokki\.com$ +(^|\.)etools\.ncol\.com$ +(^|\.)etowns\.net$ +(^|\.)etowns\.org$ +(^|\.)ettoday\.net$ +(^|\.)etvonline\.hk$ +(^|\.)eu\.org$ +(^|\.)eucasino\.com$ +(^|\.)eulam\.com$ +(^|\.)eurekavpt\.com$ +(^|\.)evchk\.wikia\.com$ +(^|\.)evschool\.net$ +(^|\.)exblog\.jp$ +(^|\.)exchristian\.hk$ +(^|\.)exmormon\.org$ +(^|\.)expatshield\.com$ +(^|\.)expecthim\.com$ +(^|\.)expekt\.com$ +(^|\.)experts-univers\.com$ +(^|\.)exploader\.net$ +(^|\.)expressvpn\.com$ +(^|\.)extmatrix\.com$ +(^|\.)extremetube\.com$ +(^|\.)eyevio\.jp$ +(^|\.)eyny\.com$ +(^|\.)ezpc\.tk$ +(^|\.)ezpeer\.com$ +(^|\.)ezua\.com$ +(^|\.)fa\.gov\.tw$ +(^|\.)facebook\.br$ +(^|\.)facebook\.com$ +(^|\.)facebook\.design$ +(^|\.)facebook\.hu$ +(^|\.)facebook\.in$ +(^|\.)facebook\.nl$ +(^|\.)facebook\.se$ +(^|\.)facebookquotes4u\.com$ +(^|\.)faceless\.me$ +(^|\.)facesofnyfw\.com$ +(^|\.)facesoftibetanselfimmolators\.info$ +(^|\.)fail\.hk$ +(^|\.)faith100\.org$ +(^|\.)faithfuleye\.com$ +(^|\.)faiththedog\.info$ +(^|\.)fakku\.net$ +(^|\.)falsefire\.com$ +(^|\.)falun-co\.org$ +(^|\.)falun-ny\.net$ +(^|\.)falun\.caltech\.edu$ +(^|\.)falunart\.org$ +(^|\.)falunasia\.info$ +(^|\.)falunau\.org$ +(^|\.)falunaz\.net$ +(^|\.)falundafa-dc\.org$ +(^|\.)falundafa-florida\.org$ +(^|\.)falundafa-nc\.org$ +(^|\.)falundafa-pa\.net$ +(^|\.)falundafa-sacramento\.org$ +(^|\.)falundafa\.org$ +(^|\.)falundafaindia\.org$ +(^|\.)falundafamuseum\.org$ +(^|\.)falungong\.club$ +(^|\.)falungong\.de$ +(^|\.)falungong\.org\.uk$ +(^|\.)falunhr\.org$ +(^|\.)faluninfo\.de$ +(^|\.)faluninfo\.net$ +(^|\.)falunpilipinas\.net$ +(^|\.)falunworld\.net$ +(^|\.)familyfed\.org$ +(^|\.)famunion\.com$ +(^|\.)fan-qiang\.com$ +(^|\.)fangbinxing\.com$ +(^|\.)fangeming\.com$ +(^|\.)fangeqiang\.com$ +(^|\.)fanglizhi\.info$ +(^|\.)fangmincn\.org$ +(^|\.)fangong\.forums-free\.com$ +(^|\.)fangong\.org$ +(^|\.)fangongheike\.com$ +(^|\.)fanhaodang\.com$ +(^|\.)fanqiang\.tk$ +(^|\.)fanqianghou\.com$ +(^|\.)fanqiangyakexi\.net$ +(^|\.)fanqiangzhe\.com$ +(^|\.)fanswong\.com$ +(^|\.)fanyue\.info$ +(^|\.)fapdu\.com$ +(^|\.)faproxy\.com$ +(^|\.)faqserv\.com$ +(^|\.)fartit\.com$ +(^|\.)farwestchina\.com$ +(^|\.)fast\.wistia\.com$ +(^|\.)fastpic\.ru$ +(^|\.)fastssh\.com$ +(^|\.)faststone\.org$ +(^|\.)favstar\.fm$ +(^|\.)fawanghuihui\.org$ +(^|\.)faydao\.com$ +(^|\.)fb\.com$ +(^|\.)fb\.me$ +(^|\.)fbcdn\.net$ +(^|\.)fbsbx\.com$ +(^|\.)fc2\.com$ +(^|\.)fc2blog\.net$ +(^|\.)fc2china\.com$ +(^|\.)fc2cn\.com$ +(^|\.)fda\.gov\.tw$ +(^|\.)fdc64\.de$ +(^|\.)fdc64\.org$ +(^|\.)fdc89\.jp$ +(^|\.)feedburner\.com$ +(^|\.)feeds\.fileforum\.com$ +(^|\.)feelssh\.com$ +(^|\.)feer\.com$ +(^|\.)feifeiss\.com$ +(^|\.)feitian-california\.org$ +(^|\.)feitianacademy\.org$ +(^|\.)feministteacher\.com$ +(^|\.)fengzhenghu\.com$ +(^|\.)fengzhenghu\.net$ +(^|\.)fevernet\.com$ +(^|\.)ff\.im$ +(^|\.)fffff\.at$ +(^|\.)fflick\.com$ +(^|\.)ffvpn\.com$ +(^|\.)fgmtv\.net$ +(^|\.)fgmtv\.org$ +(^|\.)fhreports\.net$ +(^|\.)figprayer\.com$ +(^|\.)fileflyer\.com$ +(^|\.)files2me\.com$ +(^|\.)fileserve\.com$ +(^|\.)filesor\.com$ +(^|\.)fillthesquare\.org$ +(^|\.)filmingfortibet\.org$ +(^|\.)filmy\.olabloga\.pl$ +(^|\.)filthdump\.com$ +(^|\.)financetwitter\.com$ +(^|\.)finchvpn\.com$ +(^|\.)findmespot\.com$ +(^|\.)findyoutube\.com$ +(^|\.)fingerdaily\.com$ +(^|\.)finler\.net$ +(^|\.)firearmsworld\.net$ +(^|\.)firebaseio\.com$ +(^|\.)fireofliberty\.org$ +(^|\.)firetweet\.io$ +(^|\.)firstfivefollowers\.com$ +(^|\.)flagsonline\.it$ +(^|\.)flecheinthepeche\.fr$ +(^|\.)fleshbot\.com$ +(^|\.)fleursdeslettres\.com$ +(^|\.)flgg\.us$ +(^|\.)flgjustice\.org$ +(^|\.)flickr\.com$ +(^|\.)flickrhivemind\.net$ +(^|\.)flickriver\.com$ +(^|\.)fling\.com$ +(^|\.)flipboard\.com$ +(^|\.)flipkart\.com$ +(^|\.)flitto\.com$ +(^|\.)flnet\.org$ +(^|\.)flog\.tw$ +(^|\.)fochk\.org$ +(^|\.)focustaiwan\.tw$ +(^|\.)focusvpn\.com$ +(^|\.)fofg-europe\.net$ +(^|\.)fofg\.org$ +(^|\.)fofldfradio\.org$ +(^|\.)fooooo\.com$ +(^|\.)footwiball\.com$ +(^|\.)forum\.baby-kingdom\.com$ +(^|\.)forum\.cyberctm\.com$ +(^|\.)forum\.idsam\.com$ +(^|\.)forum\.my903\.com$ +(^|\.)forum\.mymaji\.com$ +(^|\.)forum\.omy\.sg$ +(^|\.)forum\.palmislife\.com$ +(^|\.)forum\.setty\.com\.tw$ +(^|\.)forum\.sina\.com\.hk$ +(^|\.)forum\.slime\.com\.tw$ +(^|\.)forum\.tvb\.com$ +(^|\.)forum\.xinbao\.de$ +(^|\.)forum4hk\.com$ +(^|\.)fotile\.me$ +(^|\.)fourface\.nodesnoop\.com$ +(^|\.)fourthinternational\.org$ +(^|\.)foxdie\.us$ +(^|\.)foxgay\.com$ +(^|\.)foxsub\.com$ +(^|\.)foxtang\.com$ +(^|\.)fpmt-osel\.org$ +(^|\.)fpmt\.org$ +(^|\.)fpmt\.tw$ +(^|\.)fpmtmexico\.org$ +(^|\.)fq\.wikia\.com$ +(^|\.)fqok\.org$ +(^|\.)fqrouter\.com$ +(^|\.)franklc\.com$ +(^|\.)freakshare\.com$ +(^|\.)free-gate\.org$ +(^|\.)free-hada-now\.org$ +(^|\.)free-proxy\.cz$ +(^|\.)free-ssh\.com$ +(^|\.)free\.fr$ +(^|\.)free4u\.com\.ar$ +(^|\.)freealim\.com$ +(^|\.)freebrowser\.org$ +(^|\.)freechal\.com$ +(^|\.)freechina\.net$ +(^|\.)freechina\.news$ +(^|\.)freechinaforum\.org$ +(^|\.)freeddns\.com$ +(^|\.)freeddns\.org$ +(^|\.)freedomchina\.info$ +(^|\.)freedomcollection\.org$ +(^|\.)freedomhouse\.org$ +(^|\.)freedominfonetweb\.wordpress\.com$ +(^|\.)freedomsherald\.org$ +(^|\.)freeforums\.org$ +(^|\.)freefq\.com$ +(^|\.)freefuckvids\.com$ +(^|\.)freegao\.com$ +(^|\.)freeilhamtohti\.org$ +(^|\.)freekwonpyong\.org$ +(^|\.)freelotto\.com$ +(^|\.)freeman2\.com$ +(^|\.)freemoren\.com$ +(^|\.)freemorenews\.com$ +(^|\.)freemuse\.org$ +(^|\.)freenet$ +(^|\.)freenet-china\.org$ +(^|\.)freenetproject\.org$ +(^|\.)freenewscn\.com$ +(^|\.)freeopenvpn\.com$ +(^|\.)freeoz\.org$ +(^|\.)freessh\.us$ +(^|\.)freetcp\.com$ +(^|\.)freetibet\.net$ +(^|\.)freetibet\.org$ +(^|\.)freetibetanheroes\.org$ +(^|\.)freeviewmovies\.com$ +(^|\.)freevpn\.me$ +(^|\.)freevpn\.nl$ +(^|\.)freewallpaper4\.me$ +(^|\.)freewebs\.com$ +(^|\.)freewechat\.com$ +(^|\.)freeweibo\.com$ +(^|\.)freewww\.biz$ +(^|\.)freewww\.info$ +(^|\.)freexinwen\.com$ +(^|\.)freeyellow\.com$ +(^|\.)freeyoutubeproxy\.net$ +(^|\.)friendfeed-media\.com$ +(^|\.)friendfeed\.com$ +(^|\.)friends-of-tibet\.org$ +(^|\.)friendsoftibet\.org$ +(^|\.)fring\.com$ +(^|\.)fringenetwork\.com$ +(^|\.)from-pr\.com$ +(^|\.)from-sd\.com$ +(^|\.)fromchinatousa\.net$ +(^|\.)frommel\.net$ +(^|\.)frontlinedefenders\.org$ +(^|\.)frootvpn\.com$ +(^|\.)fscked\.org$ +(^|\.)fsurf\.com$ +(^|\.)ftchinese\.com$ +(^|\.)ftp1\.biz$ +(^|\.)ftpserver\.biz$ +(^|\.)ftv\.com\.tw$ +(^|\.)fucd\.com$ +(^|\.)fuckcnnic\.net$ +(^|\.)fuckgfw\.org$ +(^|\.)fullerconsideration\.com$ +(^|\.)fulue\.com$ +(^|\.)funf\.tw$ +(^|\.)funkyimg\.com$ +(^|\.)funp\.com$ +(^|\.)fuq\.com$ +(^|\.)furbo\.org$ +(^|\.)furhhdl\.org$ +(^|\.)furinkan\.com$ +(^|\.)furl\.net$ +(^|\.)futurechinaforum\.org$ +(^|\.)futuremessage\.org$ +(^|\.)fux\.com$ +(^|\.)fuyin\.net$ +(^|\.)fuyindiantai\.org$ +(^|\.)fuyu\.org\.tw$ +(^|\.)fw\.cm$ +(^|\.)fxcm-chinese\.com$ +(^|\.)fxnetworks\.com$ +(^|\.)fzh999\.com$ +(^|\.)fzh999\.net$ +(^|\.)fzlm\.com$ +(^|\.)g-area\.org$ +(^|\.)g-queen\.com$ +(^|\.)g\.co$ +(^|\.)g6hentai\.com$ +(^|\.)gabocorp\.com$ +(^|\.)gaeproxy\.com$ +(^|\.)gaforum\.org$ +(^|\.)galaxymacau\.com$ +(^|\.)galenwu\.com$ +(^|\.)galstars\.net$ +(^|\.)game735\.com$ +(^|\.)gamebase\.com\.tw$ +(^|\.)gamejolt\.com$ +(^|\.)gamer\.com\.tw$ +(^|\.)gamez\.com\.tw$ +(^|\.)gamousa\.com$ +(^|\.)ganges\.com$ +(^|\.)gaoming\.net$ +(^|\.)gaopi\.net$ +(^|\.)gaozhisheng\.net$ +(^|\.)gaozhisheng\.org$ +(^|\.)gardennetworks\.com$ +(^|\.)gardennetworks\.org$ +(^|\.)gartlive\.com$ +(^|\.)gate-project\.com$ +(^|\.)gather\.com$ +(^|\.)gatherproxy\.com$ +(^|\.)gati\.org\.tw$ +(^|\.)gaybubble\.com$ +(^|\.)gaycn\.net$ +(^|\.)gayhub\.com$ +(^|\.)gaymap\.cc$ +(^|\.)gaytube\.com$ +(^|\.)gaywatch\.com$ +(^|\.)gazotube\.com$ +(^|\.)gcc\.org\.hk$ +(^|\.)gclooney\.com$ +(^|\.)gcpnews\.com$ +(^|\.)gcr\.io$ +(^|\.)gdbt\.net$ +(^|\.)gdzf\.org$ +(^|\.)geek-art\.net$ +(^|\.)geekerhome\.com$ +(^|\.)geekheart\.info$ +(^|\.)gekikame\.com$ +(^|\.)gelbooru\.com$ +(^|\.)geocities\.co\.jp$ +(^|\.)geocities\.com$ +(^|\.)geocities\.jp$ +(^|\.)gerefoundation\.org$ +(^|\.)get\.how$ +(^|\.)getastrill\.com$ +(^|\.)getchu\.com$ +(^|\.)getcloak\.com$ +(^|\.)getfoxyproxy\.org$ +(^|\.)getfreedur\.com$ +(^|\.)getgom\.com$ +(^|\.)geti2p\.net$ +(^|\.)getiton\.com$ +(^|\.)getjetso\.com$ +(^|\.)getlantern\.org$ +(^|\.)getmdl\.io$ +(^|\.)getsocialscope\.com$ +(^|\.)getsync\.com$ +(^|\.)gettrials\.com$ +(^|\.)gettyimages\.com$ +(^|\.)getuploader\.com$ +(^|\.)gfbv\.de$ +(^|\.)gfgold\.com\.hk$ +(^|\.)gfsale\.com$ +(^|\.)gfw\.org\.ua$ +(^|\.)gfw\.press$ +(^|\.)ggpht\.com$ +(^|\.)ggssl\.com$ +(^|\.)ghost\.org$ +(^|\.)ghostpath\.com$ +(^|\.)ghut\.org$ +(^|\.)giantessnight\.com$ +(^|\.)gifree\.com$ +(^|\.)giga-web\.jp$ +(^|\.)gigporno\.ru$ +(^|\.)girlbanker\.com$ +(^|\.)git\.io$ +(^|\.)gizlen\.net$ +(^|\.)gjczz\.com$ +(^|\.)glass8\.eu$ +(^|\.)global\.bing\.com$ +(^|\.)globaljihad\.net$ +(^|\.)globalmediaoutreach\.com$ +(^|\.)globalmuseumoncommunism\.org$ +(^|\.)globalrescue\.net$ +(^|\.)globaltm\.org$ +(^|\.)globalvoices\.org$ +(^|\.)globalvoicesonline\.org$ +(^|\.)globalvpn\.net$ +(^|\.)glock\.com$ +(^|\.)gloryhole\.com$ +(^|\.)glorystar\.me$ +(^|\.)gluckman\.com$ +(^|\.)glype\.com$ +(^|\.)gmail\.com$ +(^|\.)gmbd\.cn$ +(^|\.)gmhz\.org$ +(^|\.)gmll\.org$ +(^|\.)gmodules\.com$ +(^|\.)gmozomg\.izihost\.org$ +(^|\.)gnci\.org\.hk$ +(^|\.)go-pki\.com$ +(^|\.)go\.nesnode\.com$ +(^|\.)go141\.com$ +(^|\.)goagent\.biz$ +(^|\.)goagent\.codeplex\.com$ +(^|\.)goagentplus\.com$ +(^|\.)gobet\.cc$ +(^|\.)godfootsteps\.org$ +(^|\.)godns\.work$ +(^|\.)godoc\.org$ +(^|\.)godsdirectcontact\.co\.uk$ +(^|\.)godsdirectcontact\.org$ +(^|\.)godsdirectcontact\.org\.tw$ +(^|\.)godsimmediatecontact\.com$ +(^|\.)gogotunnel\.com$ +(^|\.)gohappy\.com\.tw$ +(^|\.)gojet\.krtco\.com\.tw$ +(^|\.)gokbayrak\.com$ +(^|\.)golang\.org$ +(^|\.)goldbet\.com$ +(^|\.)goldbetsports\.com$ +(^|\.)goldeneyevault\.com$ +(^|\.)goldenfrog\.com$ +(^|\.)goldjizz\.com$ +(^|\.)goldstep\.net$ +(^|\.)goldwave\.com$ +(^|\.)gongm\.in$ +(^|\.)gongmeng\.info$ +(^|\.)gongminliliang\.com$ +(^|\.)gongwt\.com$ +(^|\.)goo\.gl$ +(^|\.)gooday\.xyz$ +(^|\.)gooddns\.info$ +(^|\.)goodreaders\.com$ +(^|\.)goodreads\.com$ +(^|\.)goodtv\.com\.tw$ +(^|\.)goodtv\.tv$ +(^|\.)goofind\.com$ +(^|\.)google(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?){1,2}$ +(^|\.)googleapis(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?){1,2}$ +(^|\.)googleapps\.com$ +(^|\.)googlearth\.com$ +(^|\.)googleartproject\.com$ +(^|\.)googleblog\.com$ +(^|\.)googlebot\.com$ +(^|\.)googlechinawebmaster\.com$ +(^|\.)googlecode\.com$ +(^|\.)googlecommerce\.com$ +(^|\.)googledomains\.com$ +(^|\.)googledrive\.com$ +(^|\.)googleearth\.com$ +(^|\.)googlegroups\.com$ +(^|\.)googlehosted\.com$ +(^|\.)googleideas\.com$ +(^|\.)googleinsidesearch\.com$ +(^|\.)googlelabs\.com$ +(^|\.)googlemail\.com$ +(^|\.)googlemashups\.com$ +(^|\.)googlepagecreator\.com$ +(^|\.)googleplay\.com$ +(^|\.)googleplus\.com$ +(^|\.)googlescholar\.com$ +(^|\.)googlesile\.com$ +(^|\.)googlesource\.com$ +(^|\.)googleusercontent\.com$ +(^|\.)googlevideo\.com$ +(^|\.)googleweblight\.com$ +(^|\.)googlezip\.net$ +(^|\.)gopetition\.com$ +(^|\.)goproxing\.net$ +(^|\.)gospelherald\.com$ +(^|\.)got-game\.org$ +(^|\.)gotdns\.ch$ +(^|\.)gotgeeks\.com$ +(^|\.)gotrusted\.com$ +(^|\.)gotw\.ca$ +(^|\.)gov\.taipei$ +(^|\.)gov\.tw$ +(^|\.)gr8domain\.biz$ +(^|\.)gr8name\.biz$ +(^|\.)grammaly\.com$ +(^|\.)grandtrial\.org$ +(^|\.)grangorz\.org$ +(^|\.)graphis\.ne\.jp$ +(^|\.)graphql\.org$ +(^|\.)greasespot\.net$ +(^|\.)great-firewall\.com$ +(^|\.)great-roc\.org$ +(^|\.)greatfire\.org$ +(^|\.)greatfire\.us7\.list-manage\.com$ +(^|\.)greatfirewall\.biz$ +(^|\.)greatfirewallofchina\.net$ +(^|\.)greatfirewallofchina\.org$ +(^|\.)greatroc\.org$ +(^|\.)greatroc\.tw$ +(^|\.)greatzhonghua\.org$ +(^|\.)greenfieldbookstore\.com\.hk$ +(^|\.)greenparty\.org\.tw$ +(^|\.)greenpeace\.com\.tw$ +(^|\.)greenpeace\.org$ +(^|\.)greenreadings\.com$ +(^|\.)greenvpn\.net$ +(^|\.)greenvpn\.org$ +(^|\.)groups\.google\.cn$ +(^|\.)gs-discuss\.com$ +(^|\.)gstatic\.com$ +(^|\.)gtricks\.com$ +(^|\.)gts-vpn\.com$ +(^|\.)gu-chu-sum\.org$ +(^|\.)guaguass\.com$ +(^|\.)guaguass\.org$ +(^|\.)guancha\.org$ +(^|\.)guangming\.com\.my$ +(^|\.)guardster\.com$ +(^|\.)guishan\.org$ +(^|\.)gumroad\.com$ +(^|\.)gun-world\.net$ +(^|\.)gunsamerica\.com$ +(^|\.)gunsandammo\.com$ +(^|\.)guo\.media$ +(^|\.)guruonline\.hk$ +(^|\.)gutteruncensored\.com$ +(^|\.)gvlib\.com$ +(^|\.)gvm\.com\.tw$ +(^|\.)gvt0\.com$ +(^|\.)gvt1\.com$ +(^|\.)gvt3\.com$ +(^|\.)gwtproject\.org$ +(^|\.)gyalwarinpoche\.com$ +(^|\.)gyatsostudio\.com$ +(^|\.)gzm\.tv$ +(^|\.)gzone-anime\.info$ +(^|\.)h-china\.org$ +(^|\.)h-moe\.com$ +(^|\.)h1n1china\.org$ +(^|\.)h528\.com$ +(^|\.)h5dm\.com$ +(^|\.)h5galgame\.me$ +(^|\.)hacg\.club$ +(^|\.)hacg\.in$ +(^|\.)hacg\.li$ +(^|\.)hacg\.me$ +(^|\.)hacg\.red$ +(^|\.)hacken\.cc$ +(^|\.)hacker\.org$ +(^|\.)hackthatphone\.net$ +(^|\.)hahlo\.com$ +(^|\.)hakkatv\.org\.tw$ +(^|\.)handcraftedsoftware\.org$ +(^|\.)hanunyi\.com$ +(^|\.)hao\.news$ +(^|\.)haoel\.github\.io$ +(^|\.)happy-vpn\.com$ +(^|\.)haproxy\.org$ +(^|\.)hardsextube\.com$ +(^|\.)harunyahya\.com$ +(^|\.)hautelook\.com$ +(^|\.)hautelookcdn\.com$ +(^|\.)have8\.com$ +(^|\.)hclips\.com$ +(^|\.)hd\.stheadline\.com$ +(^|\.)hdlt\.me$ +(^|\.)hdtvb\.net$ +(^|\.)hdzog\.com$ +(^|\.)heartyit\.com$ +(^|\.)hec\.su$ +(^|\.)hecaitou\.net$ +(^|\.)hechaji\.com$ +(^|\.)heeact\.edu\.tw$ +(^|\.)hegre-art\.com$ +(^|\.)heix\.pp\.ru$ +(^|\.)helloandroid\.com$ +(^|\.)helloqueer\.com$ +(^|\.)helloss\.pw$ +(^|\.)hellotxt\.com$ +(^|\.)hellouk\.org$ +(^|\.)help\.linksalpha\.com$ +(^|\.)helpeachpeople\.com$ +(^|\.)helplinfen\.com$ +(^|\.)helpster\.de$ +(^|\.)helpzhuling\.org$ +(^|\.)hentai\.to$ +(^|\.)hentaitube\.tv$ +(^|\.)hentaivideoworld\.com$ +(^|\.)heqinglian\.net$ +(^|\.)heungkongdiscuss\.com$ +(^|\.)hexieshe\.com$ +(^|\.)hexieshe\.xyz$ +(^|\.)hexxeh\.net$ +(^|\.)heyzo\.com$ +(^|\.)hgseav\.com$ +(^|\.)hhdcb3office\.org$ +(^|\.)hhthesakyatrizin\.org$ +(^|\.)hi-on\.org\.tw$ +(^|\.)hidden-advent\.org$ +(^|\.)hide\.me$ +(^|\.)hidecloud\.com$ +(^|\.)hidein\.net$ +(^|\.)hideipvpn\.com$ +(^|\.)hideman\.net$ +(^|\.)hideme\.nl$ +(^|\.)hidemy\.name$ +(^|\.)hidemyass\.com$ +(^|\.)hidemycomp\.com$ +(^|\.)higfw\.com$ +(^|\.)highpeakspureearth\.com$ +(^|\.)highrockmedia\.com$ +(^|\.)hihiforum\.com$ +(^|\.)hihistory\.net$ +(^|\.)hiitch\.com$ +(^|\.)hikinggfw\.org$ +(^|\.)hilive\.tv$ +(^|\.)himalayan-foundation\.org$ +(^|\.)himalayanglacier\.com$ +(^|\.)himemix\.com$ +(^|\.)himemix\.net$ +(^|\.)hitomi\.la$ +(^|\.)hiwifi\.com$ +(^|\.)hizb-ut-tahrir\.info$ +(^|\.)hizb-ut-tahrir\.org$ +(^|\.)hizbuttahrir\.org$ +(^|\.)hjclub\.info$ +(^|\.)hk-pub\.com$ +(^|\.)hk\.frienddy\.com$ +(^|\.)hk\.geocities\.com$ +(^|\.)hk\.gradconnection\.com$ +(^|\.)hk\.hao123img\.com$ +(^|\.)hk\.jiepang\.com$ +(^|\.)hk\.knowledge\.yahoo\.com$ +(^|\.)hk\.myblog\.yahoo\.com$ +(^|\.)hk\.news\.yahoo\.com$ +(^|\.)hk\.rd\.yahoo\.com$ +(^|\.)hk\.search\.yahoo\.com$ +(^|\.)hk\.video\.news\.yahoo\.com$ +(^|\.)hk\.yahoo\.com$ +(^|\.)hk01\.com$ +(^|\.)hk32168\.com$ +(^|\.)hka8964\.wordpress\.com$ +(^|\.)hkacg\.com$ +(^|\.)hkacg\.net$ +(^|\.)hkanews\.wordpress\.com$ +(^|\.)hkatvnews\.com$ +(^|\.)hkbc\.net$ +(^|\.)hkbf\.org$ +(^|\.)hkbookcity\.com$ +(^|\.)hkchurch\.org$ +(^|\.)hkci\.org\.hk$ +(^|\.)hkcmi\.edu$ +(^|\.)hkcnews\.com$ +(^|\.)hkcoc\.com$ +(^|\.)hkcoc\.weather\.com\.hk$ +(^|\.)hkdailynews\.com\.hk$ +(^|\.)hkday\.net$ +(^|\.)hkdf\.org$ +(^|\.)hkej\.com$ +(^|\.)hkepc\.com$ +(^|\.)hkfaa\.com$ +(^|\.)hkfreezone\.com$ +(^|\.)hkfront\.org$ +(^|\.)hkgolden\.com$ +(^|\.)hkgreenradio\.org$ +(^|\.)hkheadline\.com$ +(^|\.)hkhkhk\.com$ +(^|\.)hkhrc\.org\.hk$ +(^|\.)hkhrm\.org\.hk$ +(^|\.)hkip\.org\.uk$ +(^|\.)hkjc\.com$ +(^|\.)hkjp\.org$ +(^|\.)hklft\.com$ +(^|\.)hklts\.org\.hk$ +(^|\.)hkptu\.org$ +(^|\.)hkreporter\.com$ +(^|\.)hkreporter\.loved\.hk$ +(^|\.)hkupop\.hku\.hk$ +(^|\.)hkusu\.net$ +(^|\.)hkvwet\.com$ +(^|\.)hkwcc\.org\.hk$ +(^|\.)hkzone\.org$ +(^|\.)hmonghot\.com$ +(^|\.)hmvdigital\.ca$ +(^|\.)hmvdigital\.com$ +(^|\.)hnjhj\.com$ +(^|\.)hnntube\.com$ +(^|\.)hola\.com$ +(^|\.)hola\.org$ +(^|\.)holymountaincn\.com$ +(^|\.)holyspiritspeaks\.org$ +(^|\.)home\.sina\.com$ +(^|\.)home\.so-net\.net\.tw$ +(^|\.)homedepot\.com$ +(^|\.)homeperversion\.com$ +(^|\.)homeservershow\.com$ +(^|\.)hongkongfp\.com$ +(^|\.)hongmeimei\.com$ +(^|\.)hongzhi\.li$ +(^|\.)hootsuite\.com$ +(^|\.)hoovers\.com$ +(^|\.)hopedialogue\.org$ +(^|\.)hopto\.org$ +(^|\.)hornygamer\.com$ +(^|\.)hornytrip\.com$ +(^|\.)hotav\.tv$ +(^|\.)hotels\.cn$ +(^|\.)hotfrog\.com\.tw$ +(^|\.)hotgoo\.com$ +(^|\.)hotpornshow\.com$ +(^|\.)hotpot\.hk$ +(^|\.)hotshame\.com$ +(^|\.)hotspotshield\.com$ +(^|\.)hotvpn\.com$ +(^|\.)hougaige\.com$ +(^|\.)howtoforge\.com$ +(^|\.)hpa\.gov\.tw$ +(^|\.)hqcdp\.org$ +(^|\.)hqjapanesesex\.com$ +(^|\.)hqmovies\.com$ +(^|\.)hqsbnet\.wordpress\.com$ +(^|\.)hqsbonline\.wordpress\.com$ +(^|\.)hrcchina\.org$ +(^|\.)hrcir\.com$ +(^|\.)hrea\.org$ +(^|\.)hrichina\.org$ +(^|\.)hrw\.org$ +(^|\.)hrweb\.org$ +(^|\.)hsjp\.net$ +(^|\.)hsselite\.com$ +(^|\.)hst\.net\.tw$ +(^|\.)hstern\.net$ +(^|\.)hstt\.net$ +(^|\.)ht\.ly$ +(^|\.)htkou\.net$ +(^|\.)htl\.li$ +(^|\.)html5rocks\.com$ +(^|\.)https$ +(^|\.)https443\.net$ +(^|\.)https443\.org$ +(^|\.)hua-yue\.net$ +(^|\.)huaglad\.com$ +(^|\.)huanghuagang\.org$ +(^|\.)huangyiyu\.com$ +(^|\.)huaren\.us$ +(^|\.)huaren4us\.com$ +(^|\.)huashangnews\.com$ +(^|\.)huaxia-news\.com$ +(^|\.)huaxiabao\.org$ +(^|\.)huaxin\.ph$ +(^|\.)huayuworld\.org$ +(^|\.)hudatoriq\.web\.id$ +(^|\.)huffingtonpost\.com$ +(^|\.)hugoroy\.eu$ +(^|\.)huhaitai\.com$ +(^|\.)huhamhire\.com$ +(^|\.)huiyi\.in$ +(^|\.)hulkshare\.com$ +(^|\.)hulu\.com$ +(^|\.)huluim\.com$ +(^|\.)hum$ +(^|\.)humanrightsbriefing\.org$ +(^|\.)hung-ya\.com$ +(^|\.)hungerstrikeforaids\.org$ +(^|\.)huobi\.com$ +(^|\.)huobi\.pro$ +(^|\.)huobipro\.com$ +(^|\.)huping\.net$ +(^|\.)hurgokbayrak\.com$ +(^|\.)hurriyet\.com\.tr$ +(^|\.)hustlercash\.com$ +(^|\.)hut2\.ru$ +(^|\.)hutianyi\.net$ +(^|\.)hutong9\.net$ +(^|\.)huyandex\.com$ +(^|\.)hwadzan\.tw$ +(^|\.)hwayue\.org\.tw$ +(^|\.)hwinfo\.com$ +(^|\.)hxwk\.org$ +(^|\.)hxwq\.org$ +(^|\.)hybrid-analysis\.com$ +(^|\.)hyperrate\.com$ +(^|\.)i-cable\.com$ +(^|\.)i-part\.com\.tw$ +(^|\.)i\.lithium\.com$ +(^|\.)i1\.hk$ +(^|\.)i2p2\.de$ +(^|\.)i2runner\.com$ +(^|\.)i818hk\.com$ +(^|\.)iam\.soy$ +(^|\.)iamtopone\.com$ +(^|\.)iask\.bz$ +(^|\.)iask\.ca$ +(^|\.)iav19\.com$ +(^|\.)ibiblio\.org$ +(^|\.)iblist\.com$ +(^|\.)iblogserv-f\.net$ +(^|\.)ibros\.org$ +(^|\.)ibvpn\.com$ +(^|\.)icams\.com$ +(^|\.)ice\.audionow\.com$ +(^|\.)icij\.org$ +(^|\.)icl-fi\.org$ +(^|\.)icoco\.com$ +(^|\.)iconpaper\.org$ +(^|\.)icu-project\.org$ +(^|\.)id\.hao123\.com$ +(^|\.)id\.heroku\.com$ +(^|\.)iddddg\.com$ +(^|\.)idemocracy\.asia$ +(^|\.)identi\.ca$ +(^|\.)idiomconnection\.com$ +(^|\.)idouga\.com$ +(^|\.)idreamx\.com$ +(^|\.)idv\.tw$ +(^|\.)ieasy5\.com$ +(^|\.)ied2k\.net$ +(^|\.)ienergy1\.com$ +(^|\.)if\.ttt$ +(^|\.)ifan\.cz\.cc$ +(^|\.)ifanqiang\.com$ +(^|\.)ifcss\.org$ +(^|\.)ifjc\.org$ +(^|\.)ifreewares\.com$ +(^|\.)ift\.tt$ +(^|\.)igcd\.net$ +(^|\.)igfw\.net$ +(^|\.)igfw\.tech$ +(^|\.)igmg\.de$ +(^|\.)ignitedetroit\.net$ +(^|\.)igoogle\.com$ +(^|\.)igotmail\.com\.tw$ +(^|\.)igvita\.com$ +(^|\.)ihakka\.net$ +(^|\.)ihao\.org$ +(^|\.)iicns\.com$ +(^|\.)ikstar\.com$ +(^|\.)ikwb\.com$ +(^|\.)illusionfactory\.com$ +(^|\.)ilove80\.be$ +(^|\.)ilovelongtoes\.com$ +(^|\.)im\.tv$ +(^|\.)im88\.tw$ +(^|\.)imageab\.com$ +(^|\.)imagefap\.com$ +(^|\.)imageflea\.com$ +(^|\.)images-gaytube\.com$ +(^|\.)images\.comico\.tw$ +(^|\.)imageshack\.us$ +(^|\.)imagevenue\.com$ +(^|\.)imagezilla\.net$ +(^|\.)imb\.org$ +(^|\.)imdb\.com$ +(^|\.)img$ +(^|\.)img\.dlsite\.jp$ +(^|\.)img\.ly$ +(^|\.)imgchili\.net$ +(^|\.)imgmega\.com$ +(^|\.)imgur\.com$ +(^|\.)imkev\.com$ +(^|\.)imlive\.com$ +(^|\.)immigration\.gov\.tw$ +(^|\.)immoral\.jp$ +(^|\.)impact\.org\.au$ +(^|\.)impp\.mn$ +(^|\.)in-disguise\.com$ +(^|\.)in99\.org$ +(^|\.)incapdns\.net$ +(^|\.)incloak\.com$ +(^|\.)incredibox\.fr$ +(^|\.)indiandefensenews\.in$ +(^|\.)indiemerch\.com$ +(^|\.)info-graf\.fr$ +(^|\.)initiativesforchina\.org$ +(^|\.)inkui\.com$ +(^|\.)inmediahk\.net$ +(^|\.)innermongolia\.org$ +(^|\.)inote\.tw$ +(^|\.)insecam\.org$ +(^|\.)insidevoa\.com$ +(^|\.)instagram\.com$ +(^|\.)instanthq\.com$ +(^|\.)institut-tibetain\.org$ +(^|\.)internet\.org$ +(^|\.)internetdefenseleague\.org$ +(^|\.)internetfreedom\.org$ +(^|\.)internetpopculture\.com$ +(^|\.)investigating\.wordpress\.com$ +(^|\.)inxian\.com$ +(^|\.)iownyour\.biz$ +(^|\.)iownyour\.org$ +(^|\.)ipalter\.com$ +(^|\.)ipfire\.org$ +(^|\.)iphone4hongkong\.com$ +(^|\.)iphonehacks\.com$ +(^|\.)iphonetaiwan\.org$ +(^|\.)iphonix\.fr$ +(^|\.)ipicture\.ru$ +(^|\.)ipjetable\.net$ +(^|\.)ipobar\.com$ +(^|\.)ipoock\.com$ +(^|\.)iportal\.me$ +(^|\.)ippotv\.com$ +(^|\.)ipredator\.se$ +(^|\.)iptv\.com\.tw$ +(^|\.)iptvbin\.com$ +(^|\.)ipvanish\.com$ +(^|\.)iredmail\.org$ +(^|\.)ironbigfools\.compython\.net$ +(^|\.)ironpython\.net$ +(^|\.)ironsocket\.com$ +(^|\.)is-a-hunter\.com$ +(^|\.)is\.gd$ +(^|\.)isaacmao\.com$ +(^|\.)isasecret\.com$ +(^|\.)isgreat\.org$ +(^|\.)islahhaber\.net$ +(^|\.)islam\.org\.hk$ +(^|\.)islamawareness\.net$ +(^|\.)islamhouse\.com$ +(^|\.)islamicity\.com$ +(^|\.)islamicpluralism\.org$ +(^|\.)islamtoday\.net$ +(^|\.)ismaelan\.com$ +(^|\.)ismalltits\.com$ +(^|\.)ismprofessional\.net$ +(^|\.)isohunt\.com$ +(^|\.)israbox\.com$ +(^|\.)issuu\.com$ +(^|\.)istars\.co\.nz$ +(^|\.)istiqlalhewer\.com$ +(^|\.)istockphoto\.com$ +(^|\.)isunaffairs\.com$ +(^|\.)isuntv\.com$ +(^|\.)itaboo\.info$ +(^|\.)itaiwan\.gov\.tw$ +(^|\.)italiatibet\.org$ +(^|\.)itasoftware\.com$ +(^|\.)itemdb\.com$ +(^|\.)ithelp\.ithome\.com\.tw$ +(^|\.)its\.caltech\.edu$ +(^|\.)itsaol\.com$ +(^|\.)itshidden\.com$ +(^|\.)itsky\.it$ +(^|\.)itweet\.net$ +(^|\.)iu45\.com$ +(^|\.)iuhrdf\.org$ +(^|\.)iuksky\.com$ +(^|\.)ivacy\.com$ +(^|\.)iverycd\.com$ +(^|\.)ivpn\.net$ +(^|\.)ixquick\.com$ +(^|\.)ixxx\.com$ +(^|\.)iyouport\.com$ +(^|\.)izaobao\.us$ +(^|\.)izles\.net$ +(^|\.)izlesem\.org$ +(^|\.)j\.mp$ +(^|\.)ja\.wikipedia\.org$ +(^|\.)jamaat\.org$ +(^|\.)jamyangnorbu\.com$ +(^|\.)jandyx\.com$ +(^|\.)janwongphoto\.com$ +(^|\.)japan-whores\.com$ +(^|\.)japanfirst\.asianfreeforum\.com$ +(^|\.)jav\.com$ +(^|\.)jav101\.com$ +(^|\.)jav2be\.com$ +(^|\.)jav68\.tv$ +(^|\.)javakiba\.org$ +(^|\.)javbus\.com$ +(^|\.)javfor\.me$ +(^|\.)javhd\.com$ +(^|\.)javhip\.com$ +(^|\.)javhub\.net$ +(^|\.)javhuge\.com$ +(^|\.)javlibrary\.com$ +(^|\.)javmobile\.net$ +(^|\.)javmoo\.com$ +(^|\.)javmoo\.xyz$ +(^|\.)javseen\.com$ +(^|\.)javtag\.com$ +(^|\.)javzoo\.com$ +(^|\.)jbtalks\.cc$ +(^|\.)jbtalks\.com$ +(^|\.)jbtalks\.my$ +(^|\.)jcpenney\.com$ +(^|\.)jdwsy\.com$ +(^|\.)jeanyim\.com$ +(^|\.)jetos\.com$ +(^|\.)jfqu36\.club$ +(^|\.)jfqu37\.xyz$ +(^|\.)jgoodies\.com$ +(^|\.)jiangweiping\.com$ +(^|\.)jiaoyou8\.com$ +(^|\.)jiehua\.cz$ +(^|\.)jieshibaobao\.com$ +(^|\.)jigglegifs\.com$ +(^|\.)jigong1024\.com$ +(^|\.)jihadintel\.meforum\.org$ +(^|\.)jihadology\.net$ +(^|\.)jiji\.com$ +(^|\.)jims\.net$ +(^|\.)jinbushe\.org$ +(^|\.)jingpin\.org$ +(^|\.)jingsim\.org$ +(^|\.)jinpianwang\.com$ +(^|\.)jinroukong\.com$ +(^|\.)jitouch\.com$ +(^|\.)jizzthis\.com$ +(^|\.)jjgirls\.com$ +(^|\.)jkb\.cc$ +(^|\.)jkforum\.net$ +(^|\.)jkub\.com$ +(^|\.)jma\.go\.jp$ +(^|\.)jmscult\.com$ +(^|\.)joachims\.org$ +(^|\.)jobnewera\.wordpress\.com$ +(^|\.)jobso\.tv$ +(^|\.)journalchretien\.net$ +(^|\.)journalofdemocracy\.org$ +(^|\.)joymiihub\.com$ +(^|\.)joyourself\.com$ +(^|\.)jp\.hao123\.com$ +(^|\.)jpl\.nasa\.gov$ +(^|\.)jpopforum\.net$ +(^|\.)jubushoushen\.com$ +(^|\.)juhuaren\.com$ +(^|\.)jukujo-club\.com$ +(^|\.)juliepost\.com$ +(^|\.)juliereyc\.com$ +(^|\.)junauza\.com$ +(^|\.)june4commemoration\.org$ +(^|\.)junefourth-20\.net$ +(^|\.)jungleheart\.com$ +(^|\.)juoaa\.com$ +(^|\.)justdied\.com$ +(^|\.)justfreevpn\.com$ +(^|\.)justicefortenzin\.org$ +(^|\.)justpaste\.it$ +(^|\.)justtristan\.com$ +(^|\.)juyuange\.org$ +(^|\.)juziyue\.com$ +(^|\.)jwmusic\.org$ +(^|\.)jyxf\.net$ +(^|\.)k-doujin\.net$ +(^|\.)ka-wai\.com$ +(^|\.)kagyu\.org$ +(^|\.)kagyu\.org\.za$ +(^|\.)kagyumonlam\.org$ +(^|\.)kagyunews\.com\.hk$ +(^|\.)kagyuoffice\.org$ +(^|\.)kagyuoffice\.org\.tw$ +(^|\.)kaiyuan\.de$ +(^|\.)kakao\.com$ +(^|\.)kalachakralugano\.org$ +(^|\.)kankan\.today$ +(^|\.)kannewyork\.com$ +(^|\.)kanshifang\.com$ +(^|\.)kantie\.org$ +(^|\.)kanzhongguo\.com$ +(^|\.)kanzhongguo\.eu$ +(^|\.)kaotic\.com$ +(^|\.)karayou\.com$ +(^|\.)karkhung\.com$ +(^|\.)karmapa-teachings\.org$ +(^|\.)karmapa\.org$ +(^|\.)kawaiikawaii\.jp$ +(^|\.)kb\.monitorware\.com$ +(^|\.)kba-tx\.org$ +(^|\.)kcoolonline\.com$ +(^|\.)kebrum\.com$ +(^|\.)kechara\.com$ +(^|\.)keepandshare\.com$ +(^|\.)keezmovies\.com$ +(^|\.)kendatire\.com$ +(^|\.)kendincos\.net$ +(^|\.)kenengba\.com$ +(^|\.)keontech\.net$ +(^|\.)kepard\.com$ +(^|\.)keycdn\.com$ +(^|\.)khabdha\.org$ +(^|\.)khatrimaza\.org$ +(^|\.)khmusic\.com\.tw$ +(^|\.)kichiku-doujinko\.com$ +(^|\.)kik\.com$ +(^|\.)killwall\.com$ +(^|\.)kindleren\.com$ +(^|\.)kineox\.free\.fr$ +(^|\.)kingdomsalvation\.org$ +(^|\.)kinghost\.com$ +(^|\.)kingstone\.com\.tw$ +(^|\.)kink\.com$ +(^|\.)kinmen\.org\.tw$ +(^|\.)kinmen\.travel$ +(^|\.)kir\.jp$ +(^|\.)kissbbao\.cn$ +(^|\.)kiwi\.kz$ +(^|\.)kk-whys\.co\.jp$ +(^|\.)kkbox\.com$ +(^|\.)kknews\.cc$ +(^|\.)kmuh\.org\.tw$ +(^|\.)knowledgerush\.com$ +(^|\.)kobo\.com$ +(^|\.)kobobooks\.com$ +(^|\.)kodingen\.com$ +(^|\.)kompozer\.net$ +(^|\.)konachan\.com$ +(^|\.)kone\.com$ +(^|\.)koolsolutions\.com$ +(^|\.)koornk\.com$ +(^|\.)koranmandarin\.com$ +(^|\.)korenan2\.com$ +(^|\.)ksdl\.org$ +(^|\.)ksnews\.com\.tw$ +(^|\.)ktzhk\.com$ +(^|\.)kui\.name$ +(^|\.)kun\.im$ +(^|\.)kurashsultan\.com$ +(^|\.)kurtmunger\.com$ +(^|\.)kusocity\.com$ +(^|\.)kwcg\.ca$ +(^|\.)kwongwah\.com\.my$ +(^|\.)kxsw\.life$ +(^|\.)kyofun\.com$ +(^|\.)kyohk\.net$ +(^|\.)kyoyue\.com$ +(^|\.)kyzyhello\.com$ +(^|\.)kzeng\.info$ +(^|\.)la-forum\.org$ +(^|\.)labiennale\.org$ +(^|\.)ladbrokes\.com$ +(^|\.)lagranepoca\.com$ +(^|\.)lalulalu\.com$ +(^|\.)lama\.com\.tw$ +(^|\.)lamayeshe\.com$ +(^|\.)lamnia\.co\.uk$ +(^|\.)lamrim\.com$ +(^|\.)lanterncn\.cn$ +(^|\.)lantosfoundation\.org$ +(^|\.)laod\.cn$ +(^|\.)laogai\.org$ +(^|\.)laomiu\.com$ +(^|\.)laoyang\.info$ +(^|\.)laptoplockdown\.com$ +(^|\.)laqingdan\.net$ +(^|\.)larsgeorge\.com$ +(^|\.)lastcombat\.com$ +(^|\.)lastfm\.es$ +(^|\.)latelinenews\.com$ +(^|\.)latibet\.org$ +(^|\.)ld\.hao123img\.com$ +(^|\.)le-vpn\.com$ +(^|\.)leafyvpn\.net$ +(^|\.)lecloud\.net$ +(^|\.)leeao\.com\.cn$ +(^|\.)lefora\.com$ +(^|\.)left21\.hk$ +(^|\.)legalporno\.com$ +(^|\.)legaltech\.law\.com$ +(^|\.)legsjapan\.com$ +(^|\.)leirentv\.ca$ +(^|\.)leisurecafe\.ca$ +(^|\.)leisurepro\.com$ +(^|\.)lematin\.ch$ +(^|\.)lemonde\.fr$ +(^|\.)lenwhite\.com$ +(^|\.)lerosua\.org$ +(^|\.)lers\.google$ +(^|\.)lesoir\.be$ +(^|\.)letou\.com$ +(^|\.)letscorp\.net$ +(^|\.)lflink\.com$ +(^|\.)lflinkup\.com$ +(^|\.)lflinkup\.net$ +(^|\.)lflinkup\.org$ +(^|\.)lhakar\.org$ +(^|\.)lhasocialwork\.org$ +(^|\.)liangyou\.net$ +(^|\.)lianyue\.net$ +(^|\.)liaowangxizang\.net$ +(^|\.)liberal\.org\.hk$ +(^|\.)libertytimes\.com\.tw$ +(^|\.)library\.usc\.cuhk\.edu\.hk$ +(^|\.)lidecheng\.com$ +(^|\.)lifemiles\.com$ +(^|\.)lighten\.org\.tw$ +(^|\.)lightnovel\.cn$ +(^|\.)like\.com$ +(^|\.)limiao\.net$ +(^|\.)line-apps\.com$ +(^|\.)line-scdn\.net$ +(^|\.)line\.me$ +(^|\.)line\.naver\.jp$ +(^|\.)linglingfa\.com$ +(^|\.)lingvodics\.com$ +(^|\.)link-o-rama\.com$ +(^|\.)linkideo\.com$ +(^|\.)linkuswell\.com$ +(^|\.)linux\.org\.hk$ +(^|\.)linuxtoy\.org$ +(^|\.)lionsroar\.com$ +(^|\.)lipuman\.com$ +(^|\.)liquidvpn\.com$ +(^|\.)listentoyoutube\.com$ +(^|\.)listorious\.com$ +(^|\.)lists\.w3\.org$ +(^|\.)liudejun\.com$ +(^|\.)liuhanyu\.com$ +(^|\.)liujianshu\.com$ +(^|\.)liuxiaobo\.net$ +(^|\.)liuxiaotong\.com$ +(^|\.)livedoor\.jp$ +(^|\.)liveleak\.com$ +(^|\.)livestation\.com$ +(^|\.)livestream\.com$ +(^|\.)livevideo\.com$ +(^|\.)livingonline\.us$ +(^|\.)livingstream\.com$ +(^|\.)liwangyang\.com$ +(^|\.)lizhizhuangbi\.com$ +(^|\.)lkcn\.net$ +(^|\.)llss\.me$ +(^|\.)load\.to$ +(^|\.)lobsangwangyal\.com$ +(^|\.)localdomain\.ws$ +(^|\.)localpresshk\.com$ +(^|\.)lockestek\.com$ +(^|\.)logbot\.net$ +(^|\.)logiqx\.com$ +(^|\.)londonchinese\.ca$ +(^|\.)longhair\.hk$ +(^|\.)longmusic\.com$ +(^|\.)longtermly\.net$ +(^|\.)longtoes\.com$ +(^|\.)lookpic\.com$ +(^|\.)looktoronto\.com$ +(^|\.)lotsawahouse\.org$ +(^|\.)lotuslight\.org\.hk$ +(^|\.)lotuslight\.org\.tw$ +(^|\.)lovetvshow\.com$ +(^|\.)lpsg\.com$ +(^|\.)lrfz\.com$ +(^|\.)lrip\.org$ +(^|\.)lsd\.org\.hk$ +(^|\.)lsforum\.net$ +(^|\.)lsm\.org$ +(^|\.)lsmchinese\.org$ +(^|\.)lsmkorean\.org$ +(^|\.)lsmradio\.com$ +(^|\.)lsmwebcast\.com$ +(^|\.)lsxszzg\.com$ +(^|\.)ltn\.com\.tw$ +(^|\.)luke54\.com$ +(^|\.)luke54\.org$ +(^|\.)lupm\.org$ +(^|\.)lushstories\.com$ +(^|\.)luxebc\.com$ +(^|\.)lvhai\.org$ +(^|\.)lvv2\.com$ +(^|\.)lyfhk\.net$ +(^|\.)lzmtnews\.org$ +(^|\.)m\.hkgalden\.com$ +(^|\.)m\.me$ +(^|\.)m\.plixi\.com$ +(^|\.)m\.slandr\.net$ +(^|\.)ma\.hao123\.com$ +(^|\.)macgamestore\.com$ +(^|\.)macrovpn\.com$ +(^|\.)macts\.com\.tw$ +(^|\.)mad-ar\.ch$ +(^|\.)madewithcode\.com$ +(^|\.)madonna-av\.com$ +(^|\.)madthumbs\.com$ +(^|\.)magazines\.sina\.com\.tw$ +(^|\.)magic-net\.info$ +(^|\.)mahabodhi\.org$ +(^|\.)maiio\.net$ +(^|\.)mail-archive\.com$ +(^|\.)maildns\.xyz$ +(^|\.)maiplus\.com$ +(^|\.)maizhong\.org$ +(^|\.)makemymood\.com$ +(^|\.)makkahnewspaper\.com$ +(^|\.)makzhou\.warehouse333\.com$ +(^|\.)malaysiakini\.com$ +(^|\.)mamingzhe\.com$ +(^|\.)manchukuo\.net$ +(^|\.)mangafox\.com$ +(^|\.)mangafox\.me$ +(^|\.)maniash\.com$ +(^|\.)manicur4ik\.ru$ +(^|\.)mansion\.com$ +(^|\.)mansionpoker\.com$ +(^|\.)manta\.com$ +(^|\.)maplew\.com$ +(^|\.)marc\.info$ +(^|\.)marguerite\.su$ +(^|\.)martau\.com$ +(^|\.)martincartoons\.com$ +(^|\.)martsangkagyuofficial\.org$ +(^|\.)maruta\.be$ +(^|\.)marxist\.com$ +(^|\.)marxist\.net$ +(^|\.)marxists\.org$ +(^|\.)mash\.to$ +(^|\.)maskedip\.com$ +(^|\.)matainja\.com$ +(^|\.)material\.io$ +(^|\.)mathable\.io$ +(^|\.)mathiew-badimon\.com$ +(^|\.)matome-plus\.com$ +(^|\.)matome-plus\.net$ +(^|\.)matsushimakaede\.com$ +(^|\.)mattwilcox\.net$ +(^|\.)maturejp\.com$ +(^|\.)maxing\.jp$ +(^|\.)mayimayi\.com$ +(^|\.)mcadforums\.com$ +(^|\.)mcaf\.ee$ +(^|\.)mcfog\.com$ +(^|\.)mcreasite\.com$ +(^|\.)md-t\.org$ +(^|\.)me\.youthwant\.com\.tw$ +(^|\.)meansys\.com$ +(^|\.)media\.nu\.nl$ +(^|\.)media\.org\.hk$ +(^|\.)mediachinese\.com$ +(^|\.)mediafire\.com$ +(^|\.)mediafreakcity\.com$ +(^|\.)medium\.com$ +(^|\.)meetav\.com$ +(^|\.)meetup\.com$ +(^|\.)mefeedia\.com$ +(^|\.)mefound\.com$ +(^|\.)mega\.nz$ +(^|\.)megaproxy\.com$ +(^|\.)megarotic\.com$ +(^|\.)megavideo\.com$ +(^|\.)megurineluka\.com$ +(^|\.)meirixiaochao\.com$ +(^|\.)melon-peach\.com$ +(^|\.)meltoday\.com$ +(^|\.)meme\.yahoo\.com$ +(^|\.)memehk\.com$ +(^|\.)memorybbs\.com$ +(^|\.)memri\.org$ +(^|\.)memrijttm\.org$ +(^|\.)mercyprophet\.org$ +(^|\.)meridian-trust\.org$ +(^|\.)meripet\.biz$ +(^|\.)meripet\.com$ +(^|\.)merit-times\.com\.tw$ +(^|\.)meshrep\.com$ +(^|\.)mesotw\.com$ +(^|\.)messenger\.com$ +(^|\.)metacafe\.com$ +(^|\.)metarthunter\.com$ +(^|\.)meteorshowersonline\.com$ +(^|\.)metrohk\.com\.hk$ +(^|\.)metrolife\.ca$ +(^|\.)metroradio\.com\.hk$ +(^|\.)meyou\.jp$ +(^|\.)meyul\.com$ +(^|\.)mfxmedia\.com$ +(^|\.)mgoon\.com$ +(^|\.)mgstage\.com$ +(^|\.)mh4u\.org$ +(^|\.)mhradio\.org$ +(^|\.)michaelanti\.com$ +(^|\.)michaelmarketl\.com$ +(^|\.)microvpn\.com$ +(^|\.)middle-way\.net$ +(^|\.)mihk\.hk$ +(^|\.)mihr\.com$ +(^|\.)mihua\.org$ +(^|\.)mike\.cz\.cc$ +(^|\.)mikesoltys\.com$ +(^|\.)milph\.net$ +(^|\.)milsurps\.com$ +(^|\.)mimiai\.net$ +(^|\.)mimivip\.com$ +(^|\.)mimivv\.com$ +(^|\.)mindrolling\.org$ +(^|\.)minghui-a\.org$ +(^|\.)minghui-b\.org$ +(^|\.)minghui-school\.org$ +(^|\.)minghui\.or\.kr$ +(^|\.)minghui\.org$ +(^|\.)minghuiyw\.wordpress\.com$ +(^|\.)mingjinglishi\.com$ +(^|\.)mingjingnews\.com$ +(^|\.)mingjingtimes\.com$ +(^|\.)mingpao\.com$ +(^|\.)mingpaocanada\.com$ +(^|\.)mingpaomonthly\.com$ +(^|\.)mingpaonews\.com$ +(^|\.)mingpaony\.com$ +(^|\.)mingpaosf\.com$ +(^|\.)mingpaotor\.com$ +(^|\.)mingpaovan\.com$ +(^|\.)mingshengbao\.com$ +(^|\.)minhhue\.net$ +(^|\.)miniforum\.org$ +(^|\.)ministrybooks\.org$ +(^|\.)minzhuhua\.net$ +(^|\.)minzhuzhanxian\.com$ +(^|\.)minzhuzhongguo\.org$ +(^|\.)miroguide\.com$ +(^|\.)mirrorbooks\.com$ +(^|\.)mist\.vip$ +(^|\.)mitao\.com\.tw$ +(^|\.)mitbbs\.com$ +(^|\.)mitbbsau\.com$ +(^|\.)mixero\.com$ +(^|\.)mixpod\.com$ +(^|\.)mixx\.com$ +(^|\.)mizzmona\.com$ +(^|\.)mjib\.gov\.tw$ +(^|\.)mjlsh\.usc\.cuhk\.edu\.hk$ +(^|\.)mk5000\.com$ +(^|\.)mlcool\.com$ +(^|\.)mm-cg\.com$ +(^|\.)mmaaxx\.com$ +(^|\.)mmmca\.com$ +(^|\.)mnewstv\.com$ +(^|\.)mo\.nightlife141\.com$ +(^|\.)mobatek\.net$ +(^|\.)mobile01\.com$ +(^|\.)mobileways\.de$ +(^|\.)moby\.to$ +(^|\.)mobypicture\.com$ +(^|\.)moeaic\.gov\.tw$ +(^|\.)moeerolibrary\.com$ +(^|\.)mofaxiehui\.com$ +(^|\.)mofos\.com$ +(^|\.)mog\.com$ +(^|\.)mol\.gov\.tw$ +(^|\.)molihua\.org$ +(^|\.)mondex\.org$ +(^|\.)money-link\.com\.tw$ +(^|\.)moneyhome\.biz$ +(^|\.)monitorchina\.org$ +(^|\.)monster\.com$ +(^|\.)moodyz\.com$ +(^|\.)moonbbs\.com$ +(^|\.)morningsun\.org$ +(^|\.)moroneta\.com$ +(^|\.)mos\.ru$ +(^|\.)motherless\.com$ +(^|\.)motor4ik\.ru$ +(^|\.)mousebreaker\.com$ +(^|\.)movements\.org$ +(^|\.)moviefap\.com$ +(^|\.)mp3buscador\.com$ +(^|\.)mp3ye\.eu$ +(^|\.)mpettis\.com$ +(^|\.)mpfinance\.com$ +(^|\.)mpinews\.com$ +(^|\.)mponline\.hk$ +(^|\.)mqxd\.org$ +(^|\.)mrbasic\.com$ +(^|\.)mrbonus\.com$ +(^|\.)mrface\.com$ +(^|\.)mrslove\.com$ +(^|\.)mrtweet\.com$ +(^|\.)msguancha\.com$ +(^|\.)msha\.gov$ +(^|\.)mswe1\.org$ +(^|\.)mthruf\.com$ +(^|\.)mtw\.tl$ +(^|\.)muchosucko\.com$ +(^|\.)mullvad\.net$ +(^|\.)multiply\.com$ +(^|\.)multiproxy\.org$ +(^|\.)multiupload\.com$ +(^|\.)mummysgold\.com$ +(^|\.)murmur\.tw$ +(^|\.)musicade\.net$ +(^|\.)muslimvideo\.com$ +(^|\.)muzi\.com$ +(^|\.)muzi\.net$ +(^|\.)muzu\.tv$ +(^|\.)mvdis\.gov\.tw$ +(^|\.)mvg\.jp$ +(^|\.)mx\.hao123\.com$ +(^|\.)mx981\.com$ +(^|\.)my-formosa\.com$ +(^|\.)my-private-network\.co\.uk$ +(^|\.)my-proxy\.com$ +(^|\.)my\.mail\.ru$ +(^|\.)my\.opera\.com$ +(^|\.)my\.pcloud\.com$ +(^|\.)my03\.com$ +(^|\.)myactimes\.com$ +(^|\.)myanniu\.com$ +(^|\.)myaudiocast\.com$ +(^|\.)myav\.com\.tw$ +(^|\.)mybbs\.us$ +(^|\.)mybet\.com$ +(^|\.)myca168\.com$ +(^|\.)mycanadanow\.com$ +(^|\.)mychinamyhome\.com$ +(^|\.)mychinanet\.com$ +(^|\.)mychinanews\.com$ +(^|\.)mychinese\.news$ +(^|\.)mycnnews\.com$ +(^|\.)mycould\.com$ +(^|\.)mydad\.info$ +(^|\.)myddns\.com$ +(^|\.)myeasytv\.com$ +(^|\.)myeclipseide\.com$ +(^|\.)myforum\.com\.hk$ +(^|\.)myforum\.com\.uk$ +(^|\.)myfreecams\.com$ +(^|\.)myfreepaysite\.com$ +(^|\.)myfreshnet\.com$ +(^|\.)myftp\.info$ +(^|\.)myftp\.name$ +(^|\.)myiphide\.com$ +(^|\.)mykomica\.org$ +(^|\.)mylftv\.com$ +(^|\.)mymediarom\.com$ +(^|\.)mymoe\.moe$ +(^|\.)mymom\.info$ +(^|\.)mymusic\.net\.tw$ +(^|\.)mynetav\.net$ +(^|\.)mynetav\.org$ +(^|\.)mynumber\.org$ +(^|\.)myparagliding\.com$ +(^|\.)mypicture\.info$ +(^|\.)mypop3\.net$ +(^|\.)mypop3\.org$ +(^|\.)mypopescu\.com$ +(^|\.)myradio\.hk$ +(^|\.)myreadingmanga\.info$ +(^|\.)mysecondarydns\.com$ +(^|\.)myshare\.url\.com\.tw$ +(^|\.)mysinablog\.com$ +(^|\.)mysite\.verizon\.net$ +(^|\.)myspace\.com$ +(^|\.)myspacecdn\.com$ +(^|\.)mytalkbox\.com$ +(^|\.)mytizi\.com$ +(^|\.)mywww\.biz$ +(^|\.)myz\.info$ +(^|\.)naacoalition\.org$ +(^|\.)naitik\.net$ +(^|\.)nakido\.com$ +(^|\.)nakuz\.com$ +(^|\.)nalandabodhi\.org$ +(^|\.)nalandawest\.org$ +(^|\.)namgyal\.org$ +(^|\.)namgyalmonastery\.org$ +(^|\.)namsisi\.com$ +(^|\.)nanyang\.com$ +(^|\.)nanyangpost\.com$ +(^|\.)nanzao\.com$ +(^|\.)naol\.ca$ +(^|\.)naol\.cc$ +(^|\.)nat\.gov\.tw$ +(^|\.)nat\.moe$ +(^|\.)national-lottery\.co\.uk$ +(^|\.)nationsonline\.org$ +(^|\.)nationwide\.com$ +(^|\.)naughtyamerica\.com$ +(^|\.)navyfamily\.navy\.mil$ +(^|\.)navyreserve\.navy\.mil$ +(^|\.)naweeklytimes\.com$ +(^|\.)nbtvpn\.com$ +(^|\.)nccwatch\.org\.tw$ +(^|\.)nch\.com\.tw$ +(^|\.)ncn\.org$ +(^|\.)nde\.de$ +(^|\.)ndr\.de$ +(^|\.)ned\.org$ +(^|\.)nekoslovakia\.net$ +(^|\.)nemesis2\.qx\.net$ +(^|\.)neo-miracle\.com$ +(^|\.)nepusoku\.com$ +(^|\.)net-fits\.pro$ +(^|\.)netbirds\.com$ +(^|\.)netcolony\.com$ +(^|\.)netflix\.com$ +(^|\.)netme\.cc$ +(^|\.)netsneak\.com$ +(^|\.)network54\.com$ +(^|\.)networkedblogs\.com$ +(^|\.)networktunnel\.net$ +(^|\.)neverforget8964\.org$ +(^|\.)new-3lunch\.net$ +(^|\.)new-akiba\.com$ +(^|\.)new96\.ca$ +(^|\.)newcenturymc\.com$ +(^|\.)newcenturynews\.com$ +(^|\.)newchen\.com$ +(^|\.)newgrounds\.com$ +(^|\.)newipnow\.com$ +(^|\.)newlandmagazine\.com\.au$ +(^|\.)newnews\.ca$ +(^|\.)news\.bbc\.co\.uk$ +(^|\.)news\.cnyes\.com$ +(^|\.)news\.hk\.msn\.com$ +(^|\.)news\.hkpeanut\.com$ +(^|\.)news\.msn\.com\.tw$ +(^|\.)news\.nationalgeographic\.com$ +(^|\.)news\.now\.com$ +(^|\.)news\.now\.com%2fhome$ +(^|\.)news\.omy\.sg$ +(^|\.)news\.seehua\.com$ +(^|\.)news\.sina\.com\.hk$ +(^|\.)news\.sina\.com\.tw$ +(^|\.)news\.sinchew\.com\.my$ +(^|\.)news\.singtao\.ca$ +(^|\.)news\.tvb\.com$ +(^|\.)news\.tvbs\.com\.tw$ +(^|\.)news\.yahoo\.com$ +(^|\.)news100\.com\.tw$ +(^|\.)newsancai\.com$ +(^|\.)newschinacomment\.org$ +(^|\.)newscn\.org$ +(^|\.)newsdetox\.ca$ +(^|\.)newsdh\.com$ +(^|\.)newsforums\.bbc\.co\.uk$ +(^|\.)newspeak\.cc$ +(^|\.)newstamago\.com$ +(^|\.)newstapa\.org$ +(^|\.)newstarnet\.com$ +(^|\.)newtaiwan\.com\.tw$ +(^|\.)newtalk\.tw$ +(^|\.)newyorktimes\.com$ +(^|\.)nexon\.com$ +(^|\.)next11\.co\.jp$ +(^|\.)nextmag\.com\.tw$ +(^|\.)nextmedia\.com$ +(^|\.)nexton-net\.jp$ +(^|\.)nexttv\.com\.tw$ +(^|\.)nf\.id\.au$ +(^|\.)nfjtyd\.com$ +(^|\.)nflxext\.com$ +(^|\.)nflximg\.com$ +(^|\.)nflximg\.net$ +(^|\.)nflxso\.net$ +(^|\.)nflxvideo\.net$ +(^|\.)nga\.mil$ +(^|\.)ngensis\.com$ +(^|\.)nhentai\.net$ +(^|\.)nhi\.gov\.tw$ +(^|\.)nhk-ondemand\.jp$ +(^|\.)nic\.cz\.cc$ +(^|\.)nic\.google$ +(^|\.)nic\.gov$ +(^|\.)nicovideo\.jp$ +(^|\.)nighost\.org$ +(^|\.)nikkei\.com$ +(^|\.)ninecommentaries\.com$ +(^|\.)ninjacloak\.com$ +(^|\.)ninjaproxy\.ninja$ +(^|\.)nintendium\.com$ +(^|\.)ninth\.biz$ +(^|\.)niusnews\.com$ +(^|\.)njactb\.org$ +(^|\.)njuice\.com$ +(^|\.)nko\.navy\.mil$ +(^|\.)nlfreevpn\.com$ +(^|\.)no-ip\.org$ +(^|\.)nobel\.se$ +(^|\.)nobelprize\.org$ +(^|\.)nobodycanstop\.us$ +(^|\.)nokogiri\.org$ +(^|\.)nokola\.com$ +(^|\.)noodlevpn\.com$ +(^|\.)norbulingka\.org$ +(^|\.)nordstrom\.com$ +(^|\.)nordstromimage\.com$ +(^|\.)nordstromrack\.com$ +(^|\.)nordvpn\.com$ +(^|\.)nottinghampost\.com$ +(^|\.)novelasia\.com$ +(^|\.)now\.im$ +(^|\.)nownews\.com$ +(^|\.)nowtorrents\.com$ +(^|\.)noypf\.com$ +(^|\.)npa\.go\.jp$ +(^|\.)npa\.gov\.tw$ +(^|\.)npnt\.me$ +(^|\.)nps\.gov$ +(^|\.)nradio\.me$ +(^|\.)nrk\.no$ +(^|\.)ns01\.biz$ +(^|\.)ns01\.info$ +(^|\.)ns01\.us$ +(^|\.)ns02\.biz$ +(^|\.)ns02\.info$ +(^|\.)ns02\.us$ +(^|\.)ns1\.name$ +(^|\.)ns2\.name$ +(^|\.)ns3\.name$ +(^|\.)nsc\.gov\.tw$ +(^|\.)ntbk\.gov\.tw$ +(^|\.)ntbna\.gov\.tw$ +(^|\.)ntbt\.gov\.tw$ +(^|\.)ntd\.tv$ +(^|\.)ntdtv\.ca$ +(^|\.)ntdtv\.co\.kr$ +(^|\.)ntdtv\.com$ +(^|\.)ntdtv\.cz$ +(^|\.)ntdtv\.org$ +(^|\.)ntdtv\.ru$ +(^|\.)ntdtvla\.com$ +(^|\.)ntrfun\.com$ +(^|\.)ntsna\.gov\.tw$ +(^|\.)nubiles\.net$ +(^|\.)nuexpo\.com$ +(^|\.)nukistream\.com$ +(^|\.)nurgo-software\.com$ +(^|\.)nusatrip\.com$ +(^|\.)nutaku\.net$ +(^|\.)nuuvem\.com$ +(^|\.)nuvid\.com$ +(^|\.)nuzcom\.com$ +(^|\.)nvdst\.com$ +(^|\.)nvquan\.org$ +(^|\.)nvtongzhisheng\.org$ +(^|\.)nwtca\.org$ +(^|\.)ny\.stgloballink\.com$ +(^|\.)ny\.visiontimes\.com$ +(^|\.)nyaa\.eu$ +(^|\.)nyaa\.si$ +(^|\.)nydus\.ca$ +(^|\.)nylon-angel\.com$ +(^|\.)nylonstockingsonline\.com$ +(^|\.)nyt\.com$ +(^|\.)nytchina\.com$ +(^|\.)nytcn\.me$ +(^|\.)nytco\.com$ +(^|\.)nyti\.ms$ +(^|\.)nytimes\.com$ +(^|\.)nytimes\.map\.fastly\.net$ +(^|\.)nytimg\.com$ +(^|\.)nytstyle\.com$ +(^|\.)nzchinese\.com$ +(^|\.)nzchinese\.net\.nz$ +(^|\.)observechina\.net$ +(^|\.)obutu\.com$ +(^|\.)ocaspro\.com$ +(^|\.)occupytiananmen\.com$ +(^|\.)oclp\.hk$ +(^|\.)ocreampies\.com$ +(^|\.)ocry\.com$ +(^|\.)october-review\.org$ +(^|\.)oculus\.com$ +(^|\.)oculuscdn\.com$ +(^|\.)offbeatchina\.com$ +(^|\.)officeoftibet\.com$ +(^|\.)ofile\.org$ +(^|\.)ogaoga\.org$ +(^|\.)ogate\.org$ +(^|\.)oikos\.com\.tw$ +(^|\.)oiktv\.com$ +(^|\.)oizoblog\.com$ +(^|\.)ok\.ru$ +(^|\.)okayfreedom\.com$ +(^|\.)okk\.tw$ +(^|\.)old-cat\.net$ +(^|\.)old\.honeynet\.org$ +(^|\.)old\.nabble\.com$ +(^|\.)olumpo\.com$ +(^|\.)olympicwatch\.org$ +(^|\.)omgili\.com$ +(^|\.)omni7\.jp$ +(^|\.)omnitalk\.com$ +(^|\.)omnitalk\.org$ +(^|\.)on\.cc$ +(^|\.)on2\.com$ +(^|\.)onapp\.com$ +(^|\.)onedrive\.live\.com$ +(^|\.)onedumb\.com$ +(^|\.)onion\.city$ +(^|\.)online\.recoveryversion\.org$ +(^|\.)onlinecha\.com$ +(^|\.)onlineyoutube\.com$ +(^|\.)onlytweets\.com$ +(^|\.)onmoon\.com$ +(^|\.)onmoon\.net$ +(^|\.)onmypc\.biz$ +(^|\.)onmypc\.info$ +(^|\.)onmypc\.net$ +(^|\.)onmypc\.org$ +(^|\.)onmypc\.us$ +(^|\.)onthehunt\.com$ +(^|\.)ontrac\.com$ +(^|\.)oopsforum\.com$ +(^|\.)open\.com\.hk$ +(^|\.)openallweb\.com$ +(^|\.)opendemocracy\.net$ +(^|\.)opendn\.xyz$ +(^|\.)openervpn\.in$ +(^|\.)openid\.net$ +(^|\.)openleaks\.org$ +(^|\.)openvpn\.net$ +(^|\.)openwebster\.com$ +(^|\.)openwrt\.org\.cn$ +(^|\.)opml\.radiotime\.com$ +(^|\.)organcare\.org\.tw$ +(^|\.)organharvestinvestigation\.net$ +(^|\.)organiccrap\.com$ +(^|\.)orgasm\.com$ +(^|\.)orgfree\.com$ +(^|\.)orient-doll\.com$ +(^|\.)orientaldaily\.com\.my$ +(^|\.)orn\.jp$ +(^|\.)orzistic\.org$ +(^|\.)osfoora\.com$ +(^|\.)otnd\.org$ +(^|\.)otto\.de$ +(^|\.)otzo\.com$ +(^|\.)ourdearamy\.com$ +(^|\.)ourhobby\.com$ +(^|\.)oursogo\.com$ +(^|\.)oursteps\.com\.au$ +(^|\.)oursweb\.net$ +(^|\.)ourtv\.hk$ +(^|\.)overplay\.net$ +(^|\.)oversea\.istarshine\.com$ +(^|\.)ow\.ly$ +(^|\.)owl\.li$ +(^|\.)oyax\.com$ +(^|\.)oyghan\.com$ +(^|\.)ozchinese\.com$ +(^|\.)ozvoice\.org$ +(^|\.)ozxw\.com$ +(^|\.)ozyoyo\.com$ +(^|\.)pachosting\.com$ +(^|\.)pacificpoker\.com$ +(^|\.)packages\.debian\.org$ +(^|\.)packetix\.net$ +(^|\.)pacopacomama\.com$ +(^|\.)padmanet\.com$ +(^|\.)page\.bid\.yahoo\.com$ +(^|\.)page2rss\.com$ +(^|\.)pagodabox\.com$ +(^|\.)palacemoon\.com$ +(^|\.)paldengyal\.com$ +(^|\.)paljorpublications\.com$ +(^|\.)paltalk\.com$ +(^|\.)panacom\.co\.jp$ +(^|\.)panamapapers\.sueddeutsche\.de$ +(^|\.)pandapow\.co$ +(^|\.)pandapow\.net$ +(^|\.)pandavpn-jp\.com$ +(^|\.)pandora\.com$ +(^|\.)pandora\.tv$ +(^|\.)pangci\.net$ +(^|\.)panluan\.net$ +(^|\.)panoramio\.com$ +(^|\.)pao-pao\.net$ +(^|\.)paper\.li$ +(^|\.)paperb\.us$ +(^|\.)paradisehill\.cc$ +(^|\.)paradisepoker\.com$ +(^|\.)parkansky\.com$ +(^|\.)partycasino\.com$ +(^|\.)partypoker\.com$ +(^|\.)passion\.com$ +(^|\.)passiontimes\.hk$ +(^|\.)pastebin\.com$ +(^|\.)pastie\.org$ +(^|\.)pbs\.org$ +(^|\.)pbwiki\.com$ +(^|\.)pbworks\.com$ +(^|\.)pbxes\.com$ +(^|\.)pbxes\.org$ +(^|\.)pcanywhere\.net$ +(^|\.)pcc\.gov\.tw$ +(^|\.)pcdvd\.com\.tw$ +(^|\.)pchome\.com\.tw$ +(^|\.)pcij\.org$ +(^|\.)pcstore\.com\.tw$ +(^|\.)pct\.org\.tw$ +(^|\.)pdetails\.com$ +(^|\.)pdproxy\.com$ +(^|\.)pds\.nasa\.gov$ +(^|\.)peace\.ca$ +(^|\.)peacefire\.org$ +(^|\.)peacehall\.com$ +(^|\.)pearlher\.org$ +(^|\.)peeasian\.com$ +(^|\.)pekingduck\.org$ +(^|\.)pemulihan\.or\.id$ +(^|\.)pen\.io$ +(^|\.)penchinese\.com$ +(^|\.)penchinese\.net$ +(^|\.)pengyulong\.com$ +(^|\.)penisbot\.com$ +(^|\.)penthouse\.com$ +(^|\.)pentoy\.hk$ +(^|\.)peoplebookcafe\.com$ +(^|\.)peoplenews\.tw$ +(^|\.)peopo\.org$ +(^|\.)percy\.in$ +(^|\.)perfectgirls\.net$ +(^|\.)perfectvpn\.net$ +(^|\.)periscope\.tv$ +(^|\.)persecutionblog\.com$ +(^|\.)persiankitty\.com$ +(^|\.)pfd\.org\.hk$ +(^|\.)phapluan\.org$ +(^|\.)phayul\.com$ +(^|\.)philborges\.com$ +(^|\.)philly\.com$ +(^|\.)phmsociety\.org$ +(^|\.)phncdn\.com$ +(^|\.)phobos\.apple\.com$ +(^|\.)phosphation13\.rssing\.com$ +(^|\.)photodharma\.net$ +(^|\.)photofocus\.com$ +(^|\.)phuquocservices\.com$ +(^|\.)picacomic\.com$ +(^|\.)picacomiccn\.com$ +(^|\.)picasaweb\.com$ +(^|\.)picidae\.net$ +(^|\.)pictures\.playboy\.com$ +(^|\.)picturesocial\.com$ +(^|\.)pin-cong\.com$ +(^|\.)pin6\.com$ +(^|\.)ping\.fm$ +(^|\.)pinimg\.com$ +(^|\.)pinkrod\.com$ +(^|\.)pinoy-n\.com$ +(^|\.)pinterest\.at$ +(^|\.)pinterest\.co\.kr$ +(^|\.)pinterest\.co\.uk$ +(^|\.)pinterest\.com$ +(^|\.)pinterest\.de$ +(^|\.)pinterest\.dk$ +(^|\.)pinterest\.fr$ +(^|\.)pinterest\.jp$ +(^|\.)pinterest\.nl$ +(^|\.)pinterest\.se$ +(^|\.)pioneer-worker\.forums-free\.com$ +(^|\.)pipii\.tv$ +(^|\.)piposay\.com$ +(^|\.)piraattilahti\.org$ +(^|\.)piring\.com$ +(^|\.)pixelqi\.com$ +(^|\.)pixiv\.net$ +(^|\.)pixnet\.net$ +(^|\.)pk\.com$ +(^|\.)placemix\.com$ +(^|\.)playboy\.com$ +(^|\.)playboyplus\.com$ +(^|\.)player\.fm$ +(^|\.)playno1\.com$ +(^|\.)playpcesor\.com$ +(^|\.)plays\.com\.tw$ +(^|\.)plm\.org\.hk$ +(^|\.)plunder\.com$ +(^|\.)plus28\.com$ +(^|\.)plusbb\.com$ +(^|\.)pmatehunter\.com$ +(^|\.)pmates\.com$ +(^|\.)po2b\.com$ +(^|\.)pobieramy\.top$ +(^|\.)podictionary\.com$ +(^|\.)pokerstars\.net$ +(^|\.)politicalchina\.org$ +(^|\.)politicalconsultation\.org$ +(^|\.)poloniex\.com$ +(^|\.)polymer-project\.org$ +(^|\.)polymerhk\.com$ +(^|\.)popo\.tw$ +(^|\.)popvote\.hk$ +(^|\.)popyard\.com$ +(^|\.)popyard\.org$ +(^|\.)porn\.com$ +(^|\.)porn2\.com$ +(^|\.)porn5\.com$ +(^|\.)pornbase\.org$ +(^|\.)pornerbros\.com$ +(^|\.)pornhd\.com$ +(^|\.)pornhost\.com$ +(^|\.)pornhub\.com$ +(^|\.)pornhubdeutsch\.net$ +(^|\.)pornmm\.net$ +(^|\.)pornoxo\.com$ +(^|\.)pornrapidshare\.com$ +(^|\.)pornsharing\.com$ +(^|\.)pornsocket\.com$ +(^|\.)pornstarclub\.com$ +(^|\.)porntube\.com$ +(^|\.)porntubenews\.com$ +(^|\.)porntvblog\.com$ +(^|\.)pornvisit\.com$ +(^|\.)port25\.biz$ +(^|\.)portablevpn\.nl$ +(^|\.)poskotanews\.com$ +(^|\.)post01\.com$ +(^|\.)post76\.com$ +(^|\.)post852\.com$ +(^|\.)postadult\.com$ +(^|\.)postimg\.org$ +(^|\.)potvpn\.com$ +(^|\.)power\.com$ +(^|\.)powerapple\.com$ +(^|\.)powercx\.com$ +(^|\.)powerphoto\.org$ +(^|\.)prayforchina\.net$ +(^|\.)premeforwindows7\.com$ +(^|\.)presentationzen\.com$ +(^|\.)presidentlee\.tw$ +(^|\.)prestige-av\.com$ +(^|\.)prisoner-state-secret-journal-premier$ +(^|\.)prisoneralert\.com$ +(^|\.)pritunl\.com$ +(^|\.)privacybox\.de$ +(^|\.)private\.com$ +(^|\.)privateinternetaccess\.com$ +(^|\.)privatepaste\.com$ +(^|\.)privatetunnel\.com$ +(^|\.)privatevpn\.com$ +(^|\.)procopytips\.com$ +(^|\.)prosiben\.de$ +(^|\.)provideocoalition\.com$ +(^|\.)provpnaccounts\.com$ +(^|\.)proxfree\.com$ +(^|\.)proxifier\.com$ +(^|\.)proxomitron\.info$ +(^|\.)proxpn\.com$ +(^|\.)proxyanonimo\.es$ +(^|\.)proxydns\.com$ +(^|\.)proxylist\.org\.uk$ +(^|\.)proxynetwork\.org\.uk$ +(^|\.)proxypy\.net$ +(^|\.)proxyroad\.com$ +(^|\.)proxytunnel\.net$ +(^|\.)proyectoclubes\.com$ +(^|\.)prozz\.net$ +(^|\.)psblog\.name$ +(^|\.)pscp\.tv$ +(^|\.)psiphon\.ca$ +(^|\.)psiphon\.civisec\.org$ +(^|\.)psiphon3\.com$ +(^|\.)psiphontoday\.com$ +(^|\.)pts\.org\.tw$ +(^|\.)ptt\.cc$ +(^|\.)pttvan\.org$ +(^|\.)pubu\.com\.tw$ +(^|\.)puffinbrowser\.com$ +(^|\.)puffstore\.com$ +(^|\.)pullfolio\.com$ +(^|\.)pulse\.yahoo\.com$ +(^|\.)punyu\.com$ +(^|\.)pure18\.com$ +(^|\.)pureconcepts\.net$ +(^|\.)pureinsight\.org$ +(^|\.)purepdf\.com$ +(^|\.)purevpn\.com$ +(^|\.)purplelotus\.org$ +(^|\.)pursuestar\.com$ +(^|\.)pushchinawall\.com$ +(^|\.)pussyspace\.com$ +(^|\.)putihome\.org$ +(^|\.)putlocker\.com$ +(^|\.)putty\.org$ +(^|\.)puuko\.com$ +(^|\.)pwned\.com$ +(^|\.)python\.com$ +(^|\.)python\.com\.tw$ +(^|\.)pythonhackers\.com$ +(^|\.)q%3dfreedom$ +(^|\.)q%3dtriangle$ +(^|\.)q=freedom$ +(^|\.)q=triangle$ +(^|\.)qanote\.com$ +(^|\.)qgirl\.com\.tw$ +(^|\.)qhigh\.com$ +(^|\.)qi-gong\.me$ +(^|\.)qiandao\.today$ +(^|\.)qiangyou\.org$ +(^|\.)qidian\.ca$ +(^|\.)qienkuen\.org$ +(^|\.)qiwen\.lu$ +(^|\.)qixianglu\.cn$ +(^|\.)qkshare\.com$ +(^|\.)qoos\.com$ +(^|\.)qpoe\.com$ +(^|\.)qq\.co\.za$ +(^|\.)qstatus\.com$ +(^|\.)qtrac\.eu$ +(^|\.)qtweeter\.com$ +(^|\.)quannengshen\.org$ +(^|\.)quantumbooter\.net$ +(^|\.)questvisual\.com$ +(^|\.)quitccp\.net$ +(^|\.)quitccp\.org$ +(^|\.)quora\.com$ +(^|\.)quran\.com$ +(^|\.)quranexplorer\.com$ +(^|\.)qusi8\.net$ +(^|\.)qvodzy\.org$ +(^|\.)qxbbs\.org$ +(^|\.)r18\.com$ +(^|\.)ra\.gg$ +(^|\.)radicalparty\.org$ +(^|\.)radiko\.jp$ +(^|\.)radioaustralia\.net\.au$ +(^|\.)radiohilight\.net$ +(^|\.)radiovaticana\.org$ +(^|\.)radiovncr\.com$ +(^|\.)rael\.org$ +(^|\.)raggedbanner\.com$ +(^|\.)raidcall\.com\.tw$ +(^|\.)raidtalk\.com\.tw$ +(^|\.)rainbowplan\.org$ +(^|\.)raizoji\.or\.jp$ +(^|\.)ramcity\.com\.au$ +(^|\.)rangwang\.biz$ +(^|\.)rangzen\.com$ +(^|\.)rangzen\.net$ +(^|\.)rangzen\.org$ +(^|\.)ranyunfei\.com$ +(^|\.)rapbull\.net$ +(^|\.)rapidgator\.net$ +(^|\.)rapidmoviez\.com$ +(^|\.)rapidvpn\.com$ +(^|\.)raremovie\.cc$ +(^|\.)raremovie\.net$ +(^|\.)rawgit\.com$ +(^|\.)rawgithub\.com$ +(^|\.)razyboard\.com$ +(^|\.)rcinet\.ca$ +(^|\.)rconversation\.blogs\.com$ +(^|\.)rd\.com$ +(^|\.)rdio\.com$ +(^|\.)read01\.com$ +(^|\.)read100\.com$ +(^|\.)readingtimes\.com\.tw$ +(^|\.)readmoo\.com$ +(^|\.)readydown\.com$ +(^|\.)realcourage\.org$ +(^|\.)realforum\.zkiz\.com$ +(^|\.)realitykings\.com$ +(^|\.)realraptalk\.com$ +(^|\.)realsexpass\.com$ +(^|\.)rebatesrule\.net$ +(^|\.)recordhistory\.org$ +(^|\.)recovery\.org\.tw$ +(^|\.)recoveryversion\.com\.tw$ +(^|\.)red-lang\.org$ +(^|\.)redballoonsolidarity\.org$ +(^|\.)redchinacn\.net$ +(^|\.)redchinacn\.org$ +(^|\.)redhotlabs\.com$ +(^|\.)redtube\.com$ +(^|\.)referer\.us$ +(^|\.)reflectivecode\.com$ +(^|\.)registry\.google$ +(^|\.)relaxbbs\.com$ +(^|\.)relay\.com\.tw$ +(^|\.)releaseinternational\.org$ +(^|\.)religioustolerance\.org$ +(^|\.)remembering_tiananmen_20_years$ +(^|\.)renminbao\.com$ +(^|\.)renyurenquan\.org$ +(^|\.)research\.jmsc\.hku\.hk$ +(^|\.)resilio\.com$ +(^|\.)retweeteffect\.com$ +(^|\.)retweetist\.com$ +(^|\.)retweetrank\.com$ +(^|\.)reuters\.com$ +(^|\.)reutersmedia\.net$ +(^|\.)revleft\.com$ +(^|\.)revver\.com$ +(^|\.)rfa\.org$ +(^|\.)rfachina\.com$ +(^|\.)rfamobile\.org$ +(^|\.)rfaweb\.org$ +(^|\.)rferl\.org$ +(^|\.)rfi\.fr$ +(^|\.)rfi\.my$ +(^|\.)rigpa\.org$ +(^|\.)riku\.me$ +(^|\.)rileyguide\.com$ +(^|\.)ritouki\.jp$ +(^|\.)ritter\.vg$ +(^|\.)rlwlw\.com$ +(^|\.)rmjdw\.com$ +(^|\.)rmjdw132\.info$ +(^|\.)roadshow\.hk$ +(^|\.)roboforex\.com$ +(^|\.)robustnessiskey\.com$ +(^|\.)rocket-inc\.net$ +(^|\.)rocksdb\.org$ +(^|\.)rojo\.com$ +(^|\.)rolia\.net$ +(^|\.)ronjoneswriter\.com$ +(^|\.)roodo\.com$ +(^|\.)rosechina\.net$ +(^|\.)rotten\.com$ +(^|\.)rsf-chinese\.org$ +(^|\.)rsf\.org$ +(^|\.)rsgamen\.org$ +(^|\.)rssmeme\.com$ +(^|\.)rtalabel\.org$ +(^|\.)rthk\.hk$ +(^|\.)rthk\.org\.hk$ +(^|\.)rti\.org\.tw$ +(^|\.)rtycminnesota\.org$ +(^|\.)ruanyifeng\.com$ +(^|\.)rukor\.org$ +(^|\.)rushbee\.com$ +(^|\.)ruten\.com\.tw$ +(^|\.)rutube\.ru$ +(^|\.)ruyiseek\.com$ +(^|\.)rxhj\.net$ +(^|\.)s-cute\.com$ +(^|\.)s-dragon\.org$ +(^|\.)s1\.nudezz\.com$ +(^|\.)s1heng\.com$ +(^|\.)s1s1s1\.com$ +(^|\.)s3-ap-northeast-1\.amazonaws\.com$ +(^|\.)s3-ap-southeast-2\.amazonaws\.com$ +(^|\.)s8forum\.com$ +(^|\.)sa\.hao123\.com$ +(^|\.)sacks\.com$ +(^|\.)sacom\.hk$ +(^|\.)sadistic-v\.com$ +(^|\.)sadpanda\.us$ +(^|\.)safervpn\.com$ +(^|\.)saintyculture\.com$ +(^|\.)saiq\.me$ +(^|\.)sakuralive\.com$ +(^|\.)sakya\.org$ +(^|\.)salvation\.org\.hk$ +(^|\.)samair\.ru$ +(^|\.)sambhota\.org$ +(^|\.)sanmin\.com\.tw$ +(^|\.)sapikachu\.net$ +(^|\.)saveliuxiaobo\.com$ +(^|\.)savemedia\.com$ +(^|\.)savethedate\.foo$ +(^|\.)savetibet\.de$ +(^|\.)savetibet\.fr$ +(^|\.)savetibet\.nl$ +(^|\.)savetibet\.org$ +(^|\.)savetibet\.ru$ +(^|\.)savetibetstore\.org$ +(^|\.)savevid\.com$ +(^|\.)say2\.info$ +(^|\.)sbme\.me$ +(^|\.)sbs\.com\.au$ +(^|\.)scasino\.com$ +(^|\.)schema\.org$ +(^|\.)sciencenets\.com$ +(^|\.)scieron\.com$ +(^|\.)scmp\.com$ +(^|\.)scmpchinese\.com$ +(^|\.)scramble\.io$ +(^|\.)scribd\.com$ +(^|\.)scriptspot\.com$ +(^|\.)seapuff\.com$ +(^|\.)search$ +(^|\.)search\.aol\.com$ +(^|\.)search\.yahoo\.co\.jp$ +(^|\.)searchtruth\.com$ +(^|\.)secretchina\.com$ +(^|\.)secretgarden\.no$ +(^|\.)secretsline\.biz$ +(^|\.)secure\.hustler\.com$ +(^|\.)secure\.logmein\.com$ +(^|\.)secure\.raxcdn\.com$ +(^|\.)securetunnel\.com$ +(^|\.)securitykiss\.com$ +(^|\.)seed4\.me$ +(^|\.)seesmic\.com$ +(^|\.)seevpn\.com$ +(^|\.)seezone\.net$ +(^|\.)sejie\.com$ +(^|\.)sellclassics\.com$ +(^|\.)sendsmtp\.com$ +(^|\.)sendspace\.com$ +(^|\.)servehttp\.com$ +(^|\.)serveuser\.com$ +(^|\.)serveusers\.com$ +(^|\.)sesawe\.net$ +(^|\.)sesawe\.org$ +(^|\.)sethwklein\.net$ +(^|\.)setn\.com$ +(^|\.)settv\.com\.tw$ +(^|\.)sevenload\.com$ +(^|\.)sex-11\.com$ +(^|\.)sex\.com$ +(^|\.)sex3\.com$ +(^|\.)sex8\.cc$ +(^|\.)sexandsubmission\.com$ +(^|\.)sexbot\.com$ +(^|\.)sexhu\.com$ +(^|\.)sexhuang\.com$ +(^|\.)sexidude\.com$ +(^|\.)sexinsex\.net$ +(^|\.)sextvx\.com$ +(^|\.)sexxxy\.biz$ +(^|\.)sfileydy\.com$ +(^|\.)sfshibao\.com$ +(^|\.)sftindia\.org$ +(^|\.)sftuk\.org$ +(^|\.)shadeyouvpn\.com$ +(^|\.)shadow\.ma$ +(^|\.)shadowsky\.xyz$ +(^|\.)shadowsocks-r\.com$ +(^|\.)shadowsocks\.asia$ +(^|\.)shadowsocks\.com$ +(^|\.)shadowsocks\.com\.hk$ +(^|\.)shadowsocks\.org$ +(^|\.)shadowsocks9\.com$ +(^|\.)shambalapost\.com$ +(^|\.)shambhalasun\.com$ +(^|\.)shangfang\.org$ +(^|\.)shapeservices\.com$ +(^|\.)share\.dmhy\.org$ +(^|\.)share\.ovi\.com$ +(^|\.)share\.youthwant\.com\.tw$ +(^|\.)sharebee\.com$ +(^|\.)sharecool\.org$ +(^|\.)sharpdaily\.com\.hk$ +(^|\.)sharpdaily\.hk$ +(^|\.)sharpdaily\.tw$ +(^|\.)shat-tibet\.com$ +(^|\.)shattered\.io$ +(^|\.)sheikyermami\.com$ +(^|\.)shellfire\.de$ +(^|\.)shenshou\.org$ +(^|\.)shenyun\.com$ +(^|\.)shenyunperformingarts\.org$ +(^|\.)shenzhoufilm\.com$ +(^|\.)sherabgyaltsen\.com$ +(^|\.)shiatv\.net$ +(^|\.)shicheng\.org$ +(^|\.)shiksha\.com$ +(^|\.)shinychan\.com$ +(^|\.)shipcamouflage\.com$ +(^|\.)shireyishunjian\.com$ +(^|\.)shitaotv\.org$ +(^|\.)shixiao\.org$ +(^|\.)shizhao\.org$ +(^|\.)shkspr\.mobi$ +(^|\.)shodanhq\.com$ +(^|\.)shooshtime\.com$ +(^|\.)shop2000\.com\.tw$ +(^|\.)shopping\.com$ +(^|\.)showbiz\.omy\.sg$ +(^|\.)showhaotu\.com$ +(^|\.)showtime\.jp$ +(^|\.)shutterstock\.com$ +(^|\.)shwchurch\.org$ +(^|\.)shwchurch3\.com$ +(^|\.)siddharthasintent\.org$ +(^|\.)sidelinesnews\.com$ +(^|\.)sidelinessportseatery\.com$ +(^|\.)sierrafriendsoftibet\.org$ +(^|\.)sijihuisuo\.club$ +(^|\.)sijihuisuo\.com$ +(^|\.)silkbook\.com$ +(^|\.)simbolostwitter\.com$ +(^|\.)simplecd\.org$ +(^|\.)simpleproductivityblog\.com$ +(^|\.)sinchew\.com\.my$ +(^|\.)singaporepools\.com\.sg$ +(^|\.)singfortibet\.com$ +(^|\.)singpao\.com\.hk$ +(^|\.)singtao\.com$ +(^|\.)singtaousa\.com$ +(^|\.)sino-monthly\.com$ +(^|\.)sinoants\.com$ +(^|\.)sinocast\.com$ +(^|\.)sinocism\.com$ +(^|\.)sinomontreal\.ca$ +(^|\.)sinonet\.ca$ +(^|\.)sinopitt\.info$ +(^|\.)sinoquebec\.com$ +(^|\.)sipml5\.org$ +(^|\.)sis\.xxx$ +(^|\.)sis001\.com$ +(^|\.)sis001\.us$ +(^|\.)site90\.net$ +(^|\.)sitebro\.tw$ +(^|\.)sitekreator\.com$ +(^|\.)siteks\.uk\.to$ +(^|\.)sitemaps\.org$ +(^|\.)sixth\.biz$ +(^|\.)sjrt\.org$ +(^|\.)sjum\.cn$ +(^|\.)sketchappsources\.com$ +(^|\.)skimtube\.com$ +(^|\.)skybet\.com$ +(^|\.)skyking\.com\.tw$ +(^|\.)skyvegas\.com$ +(^|\.)skyxvpn\.com$ +(^|\.)slacker\.com$ +(^|\.)slaytizle\.com$ +(^|\.)sleazydream\.com$ +(^|\.)slheng\.com$ +(^|\.)slickvpn\.com$ +(^|\.)slideshare\.net$ +(^|\.)slinkset\.com$ +(^|\.)slutload\.com$ +(^|\.)slutmoonbeam\.com$ +(^|\.)slyip\.com$ +(^|\.)slyip\.net$ +(^|\.)sm-miracle\.com$ +(^|\.)smartdnsproxy\.com$ +(^|\.)smarthide\.com$ +(^|\.)smchbooks\.com$ +(^|\.)smh\.com\.au$ +(^|\.)smhric\.org$ +(^|\.)smith\.edu$ +(^|\.)smyxy\.org$ +(^|\.)snapchat\.com$ +(^|\.)snaptu\.com$ +(^|\.)sndcdn\.com$ +(^|\.)sneakme\.net$ +(^|\.)snowlionpub\.com$ +(^|\.)sobees\.com$ +(^|\.)soc\.mil$ +(^|\.)socialwhale\.com$ +(^|\.)sockscap64\.com$ +(^|\.)sockslist\.net$ +(^|\.)socrec\.org$ +(^|\.)sod\.co\.jp$ +(^|\.)sodatea\.github\.io$ +(^|\.)softether-download\.com$ +(^|\.)softether\.co\.jp$ +(^|\.)softether\.org$ +(^|\.)softwarebychuck\.com$ +(^|\.)softwaredownload\.gitbooks\.io$ +(^|\.)sogclub\.com$ +(^|\.)sogrady\.me$ +(^|\.)soh\.tw$ +(^|\.)sohcradio\.com$ +(^|\.)sohfrance\.org$ +(^|\.)sokamonline\.com$ +(^|\.)sokmil\.com$ +(^|\.)solarsystem\.nasa\.gov$ +(^|\.)solidaritetibet\.org$ +(^|\.)solidfiles\.com$ +(^|\.)somee\.com$ +(^|\.)songjianjun\.com$ +(^|\.)sonicbbs\.cc$ +(^|\.)sonidodelaesperanza\.org$ +(^|\.)sopcast\.com$ +(^|\.)sopcast\.org$ +(^|\.)sorazone\.net$ +(^|\.)sorting-algorithms\.com$ +(^|\.)sos\.org$ +(^|\.)sosreader\.com$ +(^|\.)sostibet\.org$ +(^|\.)soubory\.com$ +(^|\.)soul-plus\.net$ +(^|\.)soulcaliburhentai\.net$ +(^|\.)soumo\.info$ +(^|\.)soundcloud\.com$ +(^|\.)soundofhope\.kr$ +(^|\.)soundofhope\.org$ +(^|\.)soup\.io$ +(^|\.)soupofmedia\.com$ +(^|\.)sourceforge\.net$ +(^|\.)sourcewadio\.com$ +(^|\.)southnews\.com\.tw$ +(^|\.)sowers\.org\.hk$ +(^|\.)spankbang\.com$ +(^|\.)spankingtube\.com$ +(^|\.)spankwire\.com$ +(^|\.)spb\.com$ +(^|\.)speakerdeck\.com$ +(^|\.)specxinzl\.jigsy\.com$ +(^|\.)speedify\.com$ +(^|\.)spem\.at$ +(^|\.)spencertipping\.com$ +(^|\.)spicevpn\.com$ +(^|\.)spideroak\.com$ +(^|\.)spike\.com$ +(^|\.)sports\.williamhill\.com$ +(^|\.)spotflux\.com$ +(^|\.)spotify\.com$ +(^|\.)spreadshirt\.es$ +(^|\.)spring4u\.info$ +(^|\.)springboardplatform\.com$ +(^|\.)sprite\.org$ +(^|\.)sproutcore\.com$ +(^|\.)sproxy\.info$ +(^|\.)squirly\.info$ +(^|\.)srcf\.ucam\.org$ +(^|\.)srocket\.us$ +(^|\.)ss-link\.com$ +(^|\.)ss\.carryzhou\.com$ +(^|\.)ss\.levyhsu\.com$ +(^|\.)ssglobal\.co$ +(^|\.)ssglobal\.me$ +(^|\.)ssh91\.com$ +(^|\.)ssl\.webpack\.de$ +(^|\.)ssl443\.org$ +(^|\.)sspro\.ml$ +(^|\.)sss\.camp$ +(^|\.)sstmlt\.moe$ +(^|\.)sstmlt\.net$ +(^|\.)stackoverflow\.com$ +(^|\.)stage64\.hk$ +(^|\.)standupfortibet\.org$ +(^|\.)stanford\.edu$ +(^|\.)starfishfx\.com$ +(^|\.)starp2p\.com$ +(^|\.)startpage\.com$ +(^|\.)startuplivingchina\.com$ +(^|\.)stat\.gov\.tw$ +(^|\.)static-economist\.com$ +(^|\.)static\.comico\.tw$ +(^|\.)static01\.nyt\.com$ +(^|\.)staticflickr\.com$ +(^|\.)statueofdemocracy\.org$ +(^|\.)stc\.com\.sa$ +(^|\.)steamcommunity\.com$ +(^|\.)steel-storm\.com$ +(^|\.)steganos\.com$ +(^|\.)steganos\.net$ +(^|\.)stepchina\.com$ +(^|\.)stephaniered\.com$ +(^|\.)sthoo\.com$ +(^|\.)stickam\.com$ +(^|\.)stickeraction\.com$ +(^|\.)stileproject\.com$ +(^|\.)sto\.cc$ +(^|\.)stoporganharvesting\.org$ +(^|\.)stoptibetcrisis\.net$ +(^|\.)storagenewsletter\.com$ +(^|\.)store\.steampowered\.com$ +(^|\.)stories\.google$ +(^|\.)storify\.com$ +(^|\.)storm\.mg$ +(^|\.)stormmediagroup\.com$ +(^|\.)stoweboyd\.com$ +(^|\.)stranabg\.com$ +(^|\.)straplessdildo\.com$ +(^|\.)streamingthe\.net$ +(^|\.)streema\.com$ +(^|\.)strikingly\.com$ +(^|\.)strongvpn\.com$ +(^|\.)strongwindpress\.com$ +(^|\.)student\.tw$ +(^|\.)studentsforafreetibet\.org$ +(^|\.)stumbleupon\.com$ +(^|\.)stupidvideos\.com$ +(^|\.)subacme\.rerouted\.org$ +(^|\.)successfn\.com$ +(^|\.)sugarsync\.com$ +(^|\.)sugobbs\.com$ +(^|\.)sugumiru18\.com$ +(^|\.)suissl\.com$ +(^|\.)sujiatun\.wordpress\.com$ +(^|\.)sulian\.me$ +(^|\.)summify\.com$ +(^|\.)sumrando\.com$ +(^|\.)sun1911\.com$ +(^|\.)sunmedia\.ca$ +(^|\.)sunporno\.com$ +(^|\.)sunskyforum\.com$ +(^|\.)sunta\.com\.tw$ +(^|\.)sunvpn\.net$ +(^|\.)sunwinism\.joinbbs\.net$ +(^|\.)suoluo\.org$ +(^|\.)superfreevpn\.com$ +(^|\.)superokayama\.com$ +(^|\.)superpages\.com$ +(^|\.)supervpn\.net$ +(^|\.)suppig\.net$ +(^|\.)suprememastertv\.com$ +(^|\.)surfeasy\.com$ +(^|\.)surfeasy\.com\.au$ +(^|\.)suroot\.com$ +(^|\.)surrenderat20\.net$ +(^|\.)suyangg\.com$ +(^|\.)svsfx\.com$ +(^|\.)swagbucks\.com$ +(^|\.)swissvpn\.net$ +(^|\.)switch1\.jp$ +(^|\.)switchvpn\.net$ +(^|\.)sydneytoday\.com$ +(^|\.)sylfoundation\.org$ +(^|\.)syncback\.com$ +(^|\.)synergyse\.com$ +(^|\.)sysresccd\.org$ +(^|\.)sytes\.net$ +(^|\.)szbbs\.net$ +(^|\.)szetowah\.org\.hk$ +(^|\.)t-g\.com$ +(^|\.)t\.co$ +(^|\.)t\.me$ +(^|\.)t\.orzdream\.com$ +(^|\.)t35\.com$ +(^|\.)t66y\.com$ +(^|\.)taa-usa\.org$ +(^|\.)taaze\.tw$ +(^|\.)tabtter\.jp$ +(^|\.)tacc\.cwb\.gov\.tw$ +(^|\.)tacem\.org$ +(^|\.)taconet\.com\.tw$ +(^|\.)taedp\.org\.tw$ +(^|\.)tafm\.org$ +(^|\.)tagwa\.org\.au$ +(^|\.)tagwalk\.com$ +(^|\.)tahr\.org\.tw$ +(^|\.)taipei\.gov\.tw$ +(^|\.)taipeisociety\.org$ +(^|\.)taiwan-sex\.com$ +(^|\.)taiwanbible\.com$ +(^|\.)taiwancon\.com$ +(^|\.)taiwandaily\.net$ +(^|\.)taiwandc\.org$ +(^|\.)taiwanjobs\.gov\.tw$ +(^|\.)taiwanjustice\.com$ +(^|\.)taiwankiss\.com$ +(^|\.)taiwannation\.50webs\.com$ +(^|\.)taiwannation\.com$ +(^|\.)taiwannation\.com\.tw$ +(^|\.)taiwanncf\.org\.tw$ +(^|\.)taiwannews\.com\.tw$ +(^|\.)taiwantp\.net$ +(^|\.)taiwantt\.org\.tw$ +(^|\.)taiwanus\.net$ +(^|\.)taiwanyes\.com$ +(^|\.)taiwanyes\.ning\.com$ +(^|\.)talk853\.com$ +(^|\.)talkboxapp\.com$ +(^|\.)talkonly\.net$ +(^|\.)tamiaode\.tk$ +(^|\.)tanc\.org$ +(^|\.)tangben\.com$ +(^|\.)tangren\.us$ +(^|\.)taoism\.net$ +(^|\.)taolun\.info$ +(^|\.)tapanwap\.com$ +(^|\.)tapatalk\.com$ +(^|\.)tarr\.uspto\.gov$ +(^|\.)tascn\.com\.au$ +(^|\.)taup\.net$ +(^|\.)taweet\.com$ +(^|\.)tbcollege\.org$ +(^|\.)tbi\.org\.hk$ +(^|\.)tbicn\.org$ +(^|\.)tbjyt\.org$ +(^|\.)tbpic\.info$ +(^|\.)tbrc\.org$ +(^|\.)tbs-rainbow\.org$ +(^|\.)tbsec\.org$ +(^|\.)tbskkinabalu\.page\.tl$ +(^|\.)tbsmalaysia\.org$ +(^|\.)tbsn\.org$ +(^|\.)tbsseattle\.org$ +(^|\.)tbssqh\.org$ +(^|\.)tbswd\.org$ +(^|\.)tbtemple\.org\.uk$ +(^|\.)tbthouston\.org$ +(^|\.)tccwonline\.org$ +(^|\.)tcewf\.org$ +(^|\.)tchrd\.org$ +(^|\.)tcnynj\.org$ +(^|\.)tcpspeed\.co$ +(^|\.)tcpspeed\.com$ +(^|\.)tcsofbc\.org$ +(^|\.)tcsovi\.org$ +(^|\.)teachparentstech\.org$ +(^|\.)teamamericany\.com$ +(^|\.)tech2\.in\.com$ +(^|\.)teck\.in$ +(^|\.)teeniefuck\.net$ +(^|\.)teensinasia\.com$ +(^|\.)telecomspace\.com$ +(^|\.)telegram\.dog$ +(^|\.)telegram\.me$ +(^|\.)telegram\.org$ +(^|\.)telegramdownload\.com$ +(^|\.)telegraph\.co\.uk$ +(^|\.)telesco\.pe$ +(^|\.)tellme\.pw$ +(^|\.)tenacy\.com$ +(^|\.)tensorflow\.org$ +(^|\.)tenzinpalmo\.com$ +(^|\.)tew\.org$ +(^|\.)th\.hao123\.com$ +(^|\.)thaicn\.com$ +(^|\.)thb\.gov\.tw$ +(^|\.)theatrum-belli\.com$ +(^|\.)thebcomplex\.com$ +(^|\.)theblemish\.com$ +(^|\.)thebobs\.com$ +(^|\.)thebodyshop-usa\.com$ +(^|\.)thecenter\.mit\.edu$ +(^|\.)thechinabeat\.org$ +(^|\.)thedalailamamovie\.com$ +(^|\.)thedw\.us$ +(^|\.)thefacebook\.com$ +(^|\.)thefrontier\.hk$ +(^|\.)thegioitinhoc\.vn$ +(^|\.)thegly\.com$ +(^|\.)thehots\.info$ +(^|\.)thehousenews\.com$ +(^|\.)thehun\.net$ +(^|\.)theinitium\.com$ +(^|\.)thenewslens\.com$ +(^|\.)thepiratebay\.org$ +(^|\.)theportalwiki\.com$ +(^|\.)thereallove\.kr$ +(^|\.)therock\.net\.nz$ +(^|\.)thespeeder\.com$ +(^|\.)thestandnews\.com$ +(^|\.)thetibetcenter\.org$ +(^|\.)thetibetconnection\.org$ +(^|\.)thetibetmuseum\.org$ +(^|\.)thetibetpost\.com$ +(^|\.)thetinhat\.com$ +(^|\.)thetrotskymovie\.com$ +(^|\.)thevivekspot\.com$ +(^|\.)thewgo\.org$ +(^|\.)thinkingtaiwan\.com$ +(^|\.)thinkwithgoogle\.com$ +(^|\.)thisav\.com$ +(^|\.)thlib\.org$ +(^|\.)thomasbernhard\.org$ +(^|\.)thongdreams\.com$ +(^|\.)threatchaos\.com$ +(^|\.)throughnightsfire\.com$ +(^|\.)thumbzilla\.com$ +(^|\.)thywords\.com$ +(^|\.)thywords\.com\.tw$ +(^|\.)tiananmenduizhi\.com$ +(^|\.)tiananmenmother\.org$ +(^|\.)tiananmenuniv\.com$ +(^|\.)tiananmenuniv\.net$ +(^|\.)tiandixing\.org$ +(^|\.)tianhuayuan\.com$ +(^|\.)tianlawoffice\.com$ +(^|\.)tianti\.io$ +(^|\.)tiantibooks\.org$ +(^|\.)tianyantong\.org\.cn$ +(^|\.)tianzhu\.org$ +(^|\.)tibet-envoy\.eu$ +(^|\.)tibet-foundation\.org$ +(^|\.)tibet-house-trust\.co\.uk$ +(^|\.)tibet-info\.net$ +(^|\.)tibet-initiative\.de$ +(^|\.)tibet-munich\.de$ +(^|\.)tibet\.a\.se$ +(^|\.)tibet\.at$ +(^|\.)tibet\.ca$ +(^|\.)tibet\.com$ +(^|\.)tibet\.fr$ +(^|\.)tibet\.net$ +(^|\.)tibet\.nu$ +(^|\.)tibet\.org$ +(^|\.)tibet\.org\.tw$ +(^|\.)tibet\.sk$ +(^|\.)tibet\.to$ +(^|\.)tibet3rdpole\.org$ +(^|\.)tibetaction\.net$ +(^|\.)tibetaid\.org$ +(^|\.)tibetalk\.com$ +(^|\.)tibetan-alliance\.org$ +(^|\.)tibetan\.fr$ +(^|\.)tibetanaidproject\.org$ +(^|\.)tibetanarts\.org$ +(^|\.)tibetanbuddhistinstitute\.org$ +(^|\.)tibetancommunity\.org$ +(^|\.)tibetancommunityuk\.net$ +(^|\.)tibetanculture\.org$ +(^|\.)tibetanfeministcollective\.org$ +(^|\.)tibetanjournal\.com$ +(^|\.)tibetanlanguage\.org$ +(^|\.)tibetanliberation\.org$ +(^|\.)tibetanpaintings\.com$ +(^|\.)tibetanphotoproject\.com$ +(^|\.)tibetanpoliticalreview\.org$ +(^|\.)tibetanreview\.net$ +(^|\.)tibetansports\.org$ +(^|\.)tibetanwomen\.org$ +(^|\.)tibetanyouth\.org$ +(^|\.)tibetanyouthcongress\.org$ +(^|\.)tibetcharity\.dk$ +(^|\.)tibetcharity\.in$ +(^|\.)tibetchild\.org$ +(^|\.)tibetcity\.com$ +(^|\.)tibetcollection\.com$ +(^|\.)tibetcorps\.org$ +(^|\.)tibetexpress\.net$ +(^|\.)tibetfocus\.com$ +(^|\.)tibetfund\.org$ +(^|\.)tibetgermany\.com$ +(^|\.)tibetgermany\.de$ +(^|\.)tibethaus\.com$ +(^|\.)tibetheritagefund\.org$ +(^|\.)tibethouse\.jp$ +(^|\.)tibethouse\.org$ +(^|\.)tibethouse\.us$ +(^|\.)tibetinfonet\.net$ +(^|\.)tibetjustice\.org$ +(^|\.)tibetkomite\.dk$ +(^|\.)tibetlibre\.free\.fr$ +(^|\.)tibetmuseum\.org$ +(^|\.)tibetnetwork\.org$ +(^|\.)tibetoffice\.ch$ +(^|\.)tibetoffice\.com\.au$ +(^|\.)tibetoffice\.eu$ +(^|\.)tibetoffice\.org$ +(^|\.)tibetonline\.com$ +(^|\.)tibetonline\.tv$ +(^|\.)tibetoralhistory\.org$ +(^|\.)tibetpolicy\.eu$ +(^|\.)tibetrelieffund\.co\.uk$ +(^|\.)tibetsites\.com$ +(^|\.)tibetsociety\.com$ +(^|\.)tibetsun\.com$ +(^|\.)tibetsupportgroup\.org$ +(^|\.)tibetswiss\.ch$ +(^|\.)tibettelegraph\.com$ +(^|\.)tibettimes\.net$ +(^|\.)tibetwrites\.org$ +(^|\.)ticket\.com\.tw$ +(^|\.)tigervpn\.com$ +(^|\.)tiltbrush\.com$ +(^|\.)timdir\.com$ +(^|\.)time\.com$ +(^|\.)times\.hinet\.net$ +(^|\.)timesofindia\.indiatimes\.com$ +(^|\.)timsah\.com$ +(^|\.)tintuc101\.com$ +(^|\.)tiny\.cc$ +(^|\.)tinychat\.com$ +(^|\.)tinypaste\.com$ +(^|\.)tipo\.gov\.tw$ +(^|\.)tistory\.com$ +(^|\.)tkcs-collins\.com$ +(^|\.)tl\.gd$ +(^|\.)tma\.co\.jp$ +(^|\.)tmagazine\.com$ +(^|\.)tmdfish\.com$ +(^|\.)tmi\.me$ +(^|\.)tmpp\.org$ +(^|\.)tnaflix\.com$ +(^|\.)tngrnow\.com$ +(^|\.)tngrnow\.net$ +(^|\.)tnp\.org$ +(^|\.)to-porno\.com$ +(^|\.)togetter\.com$ +(^|\.)toh\.info$ +(^|\.)tokyo-247\.com$ +(^|\.)tokyo-hot\.com$ +(^|\.)tokyo-porn-tube\.com$ +(^|\.)tokyocn\.com$ +(^|\.)tongil\.or\.kr$ +(^|\.)tono-oka\.jp$ +(^|\.)tonyyan\.net$ +(^|\.)toodoc\.com$ +(^|\.)toonel\.net$ +(^|\.)top\.tv$ +(^|\.)top81\.ws$ +(^|\.)topic\.youthwant\.com\.tw$ +(^|\.)topnews\.in$ +(^|\.)toppornsites\.com$ +(^|\.)topshareware\.com$ +(^|\.)topsy\.com$ +(^|\.)toptip\.ca$ +(^|\.)tor\.blingblingsquad\.net$ +(^|\.)tor\.cn\.uptodown\.com$ +(^|\.)tor\.updatestar\.com$ +(^|\.)tora\.to$ +(^|\.)torcn\.com$ +(^|\.)torguard\.net$ +(^|\.)torproject\.org$ +(^|\.)torrentprivacy\.com$ +(^|\.)torrentproject\.se$ +(^|\.)torrenty\.org$ +(^|\.)torrentz\.eu$ +(^|\.)torvpn\.com$ +(^|\.)tosh\.comedycentral\.com$ +(^|\.)totalvpn\.com$ +(^|\.)toutiaoabc\.com$ +(^|\.)towngain\.com$ +(^|\.)toypark\.in$ +(^|\.)toythieves\.com$ +(^|\.)toytractorshow\.com$ +(^|\.)tparents\.org$ +(^|\.)tpi\.org\.tw$ +(^|\.)tracfone\.com$ +(^|\.)traffichaus\.com$ +(^|\.)trans\.wenweipo\.com$ +(^|\.)transparency\.org$ +(^|\.)treemall\.com\.tw$ +(^|\.)trendsmap\.com$ +(^|\.)trialofccp\.org$ +(^|\.)trickip\.net$ +(^|\.)trickip\.org$ +(^|\.)trimondi\.de$ +(^|\.)trouw\.nl$ +(^|\.)trt\.net\.tr$ +(^|\.)trtc\.com\.tw$ +(^|\.)truebuddha-md\.org$ +(^|\.)trulyergonomic\.com$ +(^|\.)truth101\.co\.tv$ +(^|\.)truthontour\.org$ +(^|\.)truveo\.com$ +(^|\.)tryheart\.jp$ +(^|\.)tsctv\.net$ +(^|\.)tsdr\.uspto\.gov$ +(^|\.)tsemtulku\.com$ +(^|\.)tsquare\.tv$ +(^|\.)tsu\.org\.tw$ +(^|\.)tsunagarumon\.com$ +(^|\.)tt-rss\.org$ +(^|\.)tt1069\.com$ +(^|\.)tttan\.com$ +(^|\.)tu8964\.com$ +(^|\.)tubaholic\.com$ +(^|\.)tube\.com$ +(^|\.)tube8\.com$ +(^|\.)tube911\.com$ +(^|\.)tubecup\.com$ +(^|\.)tubegals\.com$ +(^|\.)tubeislam\.com$ +(^|\.)tubestack\.com$ +(^|\.)tubewolf\.com$ +(^|\.)tui\.orzdream\.com$ +(^|\.)tuibeitu\.net$ +(^|\.)tuidang\.net$ +(^|\.)tuidang\.org$ +(^|\.)tuidang\.se$ +(^|\.)tuitwit\.com$ +(^|\.)tumblr\.com$ +(^|\.)tumutanzi\.com$ +(^|\.)tumview\.com$ +(^|\.)tunein\.com$ +(^|\.)tunnelbear\.com$ +(^|\.)tunnelr\.com$ +(^|\.)tuo8\.blue$ +(^|\.)tuo8\.cc$ +(^|\.)tuo8\.club$ +(^|\.)tuo8\.fit$ +(^|\.)tuo8\.hk$ +(^|\.)tuo8\.in$ +(^|\.)tuo8\.ninja$ +(^|\.)tuo8\.org$ +(^|\.)tuo8\.pw$ +(^|\.)tuo8\.red$ +(^|\.)tuo8\.space$ +(^|\.)turansam\.org$ +(^|\.)turbobit\.net$ +(^|\.)turbohide\.com$ +(^|\.)turbotwitter\.com$ +(^|\.)turntable\.fm$ +(^|\.)tushycash\.com$ +(^|\.)tuvpn\.com$ +(^|\.)tuzaijidi\.com$ +(^|\.)tv\.com$ +(^|\.)tvants\.com$ +(^|\.)tvboxnow\.com$ +(^|\.)tvider\.com$ +(^|\.)tvmost\.com\.hk$ +(^|\.)tvplayvideos\.com$ +(^|\.)tvunetworks\.com$ +(^|\.)tw-blog\.com$ +(^|\.)tw-npo\.org$ +(^|\.)tw\.answers\.yahoo\.com$ +(^|\.)tw\.bid\.yahoo\.com$ +(^|\.)tw\.gigacircle\.com$ +(^|\.)tw\.hao123\.com$ +(^|\.)tw\.jiepang\.com$ +(^|\.)tw\.knowledge\.yahoo\.com$ +(^|\.)tw\.mall\.yahoo\.com$ +(^|\.)tw\.mobi\.yahoo\.com$ +(^|\.)tw\.money\.yahoo\.com$ +(^|\.)tw\.myblog\.yahoo\.com$ +(^|\.)tw\.news\.yahoo\.com$ +(^|\.)tw\.streetvoice\.com$ +(^|\.)tw\.tomonews\.net$ +(^|\.)tw\.voa\.mobi$ +(^|\.)tw\.yahoo\.com$ +(^|\.)tw01\.org$ +(^|\.)twaitter\.com$ +(^|\.)twapperkeeper\.com$ +(^|\.)twaud\.io$ +(^|\.)twavi\.com$ +(^|\.)twbbs\.net\.tw$ +(^|\.)twbbs\.org$ +(^|\.)twbbs\.tw$ +(^|\.)twblogger\.com$ +(^|\.)tweepguide\.com$ +(^|\.)tweeplike\.me$ +(^|\.)tweepmag\.com$ +(^|\.)tweepml\.org$ +(^|\.)tweetbackup\.com$ +(^|\.)tweetboard\.com$ +(^|\.)tweetboner\.biz$ +(^|\.)tweetcs\.com$ +(^|\.)tweetdeck\.com$ +(^|\.)tweetedtimes\.com$ +(^|\.)tweetmylast\.fm$ +(^|\.)tweetphoto\.com$ +(^|\.)tweetrans\.com$ +(^|\.)tweetree\.com$ +(^|\.)tweets\.seraph\.me$ +(^|\.)tweettunnel\.com$ +(^|\.)tweetwally\.com$ +(^|\.)tweetymail\.com$ +(^|\.)tweez\.net$ +(^|\.)twelve\.today$ +(^|\.)twerkingbutt\.com$ +(^|\.)twftp\.org$ +(^|\.)twgreatdaily\.com$ +(^|\.)twibase\.com$ +(^|\.)twibble\.de$ +(^|\.)twibbon\.com$ +(^|\.)twibs\.com$ +(^|\.)twicsy\.com$ +(^|\.)twiends\.com$ +(^|\.)twifan\.com$ +(^|\.)twiffo\.com$ +(^|\.)twiggit\.org$ +(^|\.)twilightsex\.com$ +(^|\.)twilog\.org$ +(^|\.)twimbow\.com$ +(^|\.)twimg\.com$ +(^|\.)twindexx\.com$ +(^|\.)twip\.me$ +(^|\.)twipple\.jp$ +(^|\.)twishort\.com$ +(^|\.)twistar\.cc$ +(^|\.)twister\.net\.co$ +(^|\.)twisterio\.com$ +(^|\.)twisternow\.com$ +(^|\.)twistory\.net$ +(^|\.)twit2d\.com$ +(^|\.)twitbrowser\.net$ +(^|\.)twitcause\.com$ +(^|\.)twitgether\.com$ +(^|\.)twitgoo\.com$ +(^|\.)twitiq\.com$ +(^|\.)twitlonger\.com$ +(^|\.)twitmania\.com$ +(^|\.)twitoaster\.com$ +(^|\.)twitonmsn\.com$ +(^|\.)twitpic\.com$ +(^|\.)twitstat\.com$ +(^|\.)twittbot\.net$ +(^|\.)twitter\.com$ +(^|\.)twitter\.jp$ +(^|\.)twitter4j\.org$ +(^|\.)twittercounter\.com$ +(^|\.)twitterfeed\.com$ +(^|\.)twittergadget\.com$ +(^|\.)twitterkr\.com$ +(^|\.)twittermail\.com$ +(^|\.)twitterrific\.com$ +(^|\.)twittertim\.es$ +(^|\.)twitthat\.com$ +(^|\.)twitturk\.com$ +(^|\.)twitturly\.com$ +(^|\.)twitvid\.com$ +(^|\.)twitzap\.com$ +(^|\.)twiyia\.com$ +(^|\.)twnorth\.org\.tw$ +(^|\.)twskype\.com$ +(^|\.)twstar\.net$ +(^|\.)twt\.tl$ +(^|\.)twtkr\.com$ +(^|\.)twtr2src\.ogaoga\.org$ +(^|\.)twtrland\.com$ +(^|\.)twttr\.com$ +(^|\.)twurl\.nl$ +(^|\.)twyac\.org$ +(^|\.)txxx\.com$ +(^|\.)tycool\.com$ +(^|\.)typepad\.com$ +(^|\.)u9un\.com$ +(^|\.)ub0\.cc$ +(^|\.)ubddns\.org$ +(^|\.)uberproxy\.net$ +(^|\.)uc-japan\.org$ +(^|\.)ucdc1998\.org$ +(^|\.)uderzo\.it$ +(^|\.)udn\.com$ +(^|\.)udn\.com\.tw$ +(^|\.)udnbkk\.com$ +(^|\.)uforadio\.com\.tw$ +(^|\.)ufreevpn\.com$ +(^|\.)ugo\.com$ +(^|\.)uhdwallpapers\.org$ +(^|\.)uhrp\.org$ +(^|\.)uighur\.narod\.ru$ +(^|\.)uighur\.nl$ +(^|\.)uighurbiz\.net$ +(^|\.)ukcdp\.co\.uk$ +(^|\.)ukliferadio\.co\.uk$ +(^|\.)ulike\.net$ +(^|\.)ulop\.net$ +(^|\.)ultrareach$ +(^|\.)ultrasurf$ +(^|\.)ultravpn\.fr$ +(^|\.)ultraxs\.com$ +(^|\.)umich\.edu$ +(^|\.)unblock-us\.com$ +(^|\.)unblock\.cn\.com$ +(^|\.)unblockdmm\.com$ +(^|\.)unblocker\.yt$ +(^|\.)unblocksit\.es$ +(^|\.)uncyclomedia\.org$ +(^|\.)uncyclopedia\.hk$ +(^|\.)uncyclopedia\.tw$ +(^|\.)underwoodammo\.com$ +(^|\.)unholyknight\.com$ +(^|\.)uni\.cc$ +(^|\.)unification\.net$ +(^|\.)unification\.org\.tw$ +(^|\.)unitedsocialpress\.com$ +(^|\.)unix100\.com$ +(^|\.)unknownspace\.org$ +(^|\.)unodedos\.com$ +(^|\.)unpo\.org$ +(^|\.)unseen\.is$ +(^|\.)untraceable\.us$ +(^|\.)uocn\.org$ +(^|\.)upcoming\.yahoo\.com$ +(^|\.)updates\.tdesktop\.com$ +(^|\.)upholdjustice\.org$ +(^|\.)upload4u\.info$ +(^|\.)uploaded\.net$ +(^|\.)uploaded\.to$ +(^|\.)uploadstation\.com$ +(^|\.)upmedia\.mg$ +(^|\.)upornia\.com$ +(^|\.)uproxy\.org$ +(^|\.)upwill\.org$ +(^|\.)ur7s\.com$ +(^|\.)urbansurvival\.com$ +(^|\.)urchin\.com$ +(^|\.)urlborg\.com$ +(^|\.)urlparser\.com$ +(^|\.)us\.to$ +(^|\.)usacn\.com$ +(^|\.)usaip\.eu$ +(^|\.)userapi\.nytlog\.com$ +(^|\.)users\.skynet\.be$ +(^|\.)usfk\.mil$ +(^|\.)ushuarencity\.echainhost\.com$ +(^|\.)usinfo\.state\.gov$ +(^|\.)usma\.edu$ +(^|\.)usmc\.mil$ +(^|\.)usmgtcg\.ning\.com$ +(^|\.)usno\.navy\.mil$ +(^|\.)usocctn\.com$ +(^|\.)ustream\.tv$ +(^|\.)usunitednews\.com$ +(^|\.)usus\.cc$ +(^|\.)utopianpal\.com$ +(^|\.)uu-gg\.com$ +(^|\.)uvwxyz\.xyz$ +(^|\.)uwants\.com$ +(^|\.)uwants\.net$ +(^|\.)uyghur-j\.org$ +(^|\.)uyghur\.co\.uk$ +(^|\.)uyghuramerican\.org$ +(^|\.)uyghurcanadiansociety\.org$ +(^|\.)uyghurcongress\.org$ +(^|\.)uyghurensemble\.co\.uk$ +(^|\.)uyghurpen\.org$ +(^|\.)uyghurpress\.com$ +(^|\.)uyghurstudies\.org$ +(^|\.)uygur\.fc2web\.com$ +(^|\.)uygur\.org$ +(^|\.)uymaarip\.com$ +(^|\.)v2ex\.com$ +(^|\.)v2ray\.com$ +(^|\.)van001\.com$ +(^|\.)van698\.com$ +(^|\.)vanemu\.cn$ +(^|\.)vanilla-jp\.com$ +(^|\.)vanpeople\.com$ +(^|\.)vansky\.com$ +(^|\.)vatn\.org$ +(^|\.)vcf-online\.org$ +(^|\.)vcfbuilder\.org$ +(^|\.)vds\.rightster\.com$ +(^|\.)vegas\.williamhill\.com$ +(^|\.)vegasred\.com$ +(^|\.)velkaepocha\.sk$ +(^|\.)venbbs\.com$ +(^|\.)venchina\.com$ +(^|\.)venetianmacao\.com$ +(^|\.)ventureswell\.com$ +(^|\.)veoh\.com$ +(^|\.)vermonttibet\.org$ +(^|\.)versavpn\.com$ +(^|\.)verybs\.com$ +(^|\.)vevo\.com$ +(^|\.)vft\.com\.tw$ +(^|\.)viber\.com$ +(^|\.)vica\.info$ +(^|\.)victimsofcommunism\.org$ +(^|\.)vid\.me$ +(^|\.)vidble\.com$ +(^|\.)video\.aol\.ca$ +(^|\.)video\.aol\.co\.uk$ +(^|\.)video\.aol\.com$ +(^|\.)video\.ap\.org$ +(^|\.)video\.fdbox\.com$ +(^|\.)video\.foxbusiness\.com$ +(^|\.)video\.pbs\.org$ +(^|\.)video\.yahoo\.com$ +(^|\.)videobam\.com$ +(^|\.)videodetective\.com$ +(^|\.)videomega\.tv$ +(^|\.)videomo\.com$ +(^|\.)videopediaworld\.com$ +(^|\.)videopress\.com$ +(^|\.)vidinfo\.org$ +(^|\.)vietdaikynguyen\.com$ +(^|\.)vijayatemple\.org$ +(^|\.)vimeo\.com$ +(^|\.)vimperator\.org$ +(^|\.)vincnd\.com$ +(^|\.)vine\.co$ +(^|\.)vinniev\.com$ +(^|\.)vip-enterprise\.com$ +(^|\.)visibletweets\.com$ +(^|\.)vital247\.org$ +(^|\.)viu\.com$ +(^|\.)viu\.tv$ +(^|\.)vivahentai4u\.net$ +(^|\.)vivatube\.com$ +(^|\.)vivthomas\.com$ +(^|\.)vizvaz\.com$ +(^|\.)vjmedia\.com\.hk$ +(^|\.)vllcs\.org$ +(^|\.)vlog\.xuite\.net$ +(^|\.)vmixcore\.com$ +(^|\.)vn\.hao123\.com$ +(^|\.)vnet\.link$ +(^|\.)voa-11\.akacast\.akamaistream\.net$ +(^|\.)voacantonese\.com$ +(^|\.)voachinese\.com$ +(^|\.)voachineseblog\.com$ +(^|\.)voagd\.com$ +(^|\.)voanews\.com$ +(^|\.)voatibetan\.com$ +(^|\.)voatibetanenglish\.com$ +(^|\.)vocativ\.com$ +(^|\.)vocn\.tv$ +(^|\.)vod\.wwe\.com$ +(^|\.)vot\.org$ +(^|\.)vovo2000\.com$ +(^|\.)voxer\.com$ +(^|\.)voy\.com$ +(^|\.)vpn\.ac$ +(^|\.)vpn\.cjb\.net$ +(^|\.)vpn\.cmu\.edu$ +(^|\.)vpn\.sv\.cmu\.edu$ +(^|\.)vpn4all\.com$ +(^|\.)vpnaccount\.org$ +(^|\.)vpnaccounts\.com$ +(^|\.)vpnbook\.com$ +(^|\.)vpncomparison\.org$ +(^|\.)vpncoupons\.com$ +(^|\.)vpncup\.com$ +(^|\.)vpndada\.com$ +(^|\.)vpnfan\.com$ +(^|\.)vpnfire\.com$ +(^|\.)vpnforgame\.net$ +(^|\.)vpngate\.jp$ +(^|\.)vpngate\.net$ +(^|\.)vpngratis\.net$ +(^|\.)vpnhq\.com$ +(^|\.)vpninja\.net$ +(^|\.)vpnintouch\.com$ +(^|\.)vpnintouch\.net$ +(^|\.)vpnjack\.com$ +(^|\.)vpnmaster\.com$ +(^|\.)vpnmentor\.com$ +(^|\.)vpnpick\.com$ +(^|\.)vpnpop\.com$ +(^|\.)vpnpronet\.com$ +(^|\.)vpnreactor\.com$ +(^|\.)vpnreviewz\.com$ +(^|\.)vpnsecure\.me$ +(^|\.)vpnshazam\.com$ +(^|\.)vpnshieldapp\.com$ +(^|\.)vpnsp\.com$ +(^|\.)vpntraffic\.com$ +(^|\.)vpntunnel\.com$ +(^|\.)vpnuk\.info$ +(^|\.)vpnunlimitedapp\.com$ +(^|\.)vpnvip\.com$ +(^|\.)vpnworldwide\.com$ +(^|\.)vporn\.com$ +(^|\.)vpser\.net$ +(^|\.)vraiesagesse\.net$ +(^|\.)vrmtr\.com$ +(^|\.)vtunnel\.com$ +(^|\.)vuku\.cc$ +(^|\.)w\.idaiwan\.com$ +(^|\.)w3schools\.com$ +(^|\.)waffle1999\.com$ +(^|\.)wahas\.com$ +(^|\.)waigaobu\.com$ +(^|\.)waikeung\.org$ +(^|\.)wailaike\.net$ +(^|\.)waiwaier\.com$ +(^|\.)wallmama\.com$ +(^|\.)wallornot\.org$ +(^|\.)wallpapercasa\.com$ +(^|\.)wallproxy\.com$ +(^|\.)waltermartin\.com$ +(^|\.)waltermartin\.org$ +(^|\.)wanderinghorse\.net$ +(^|\.)wangafu\.net$ +(^|\.)wangjinbo\.org$ +(^|\.)wanglixiong\.com$ +(^|\.)wango\.org$ +(^|\.)wangruoshui\.net$ +(^|\.)want-daily\.com$ +(^|\.)wanz-factory\.com$ +(^|\.)wapedia\.mobi$ +(^|\.)warbler\.iconfactory\.net$ +(^|\.)waselpro\.com$ +(^|\.)washeng\.net$ +(^|\.)watch8x\.com$ +(^|\.)watchinese\.com$ +(^|\.)watchmygf\.net$ +(^|\.)wattpad\.com$ +(^|\.)wav\.tv$ +(^|\.)waveprotocol\.org$ +(^|\.)waymo\.com$ +(^|\.)wda\.gov\.tw$ +(^|\.)wdf5\.com$ +(^|\.)wearehairy\.com$ +(^|\.)wearn\.com$ +(^|\.)web2project\.net$ +(^|\.)webbang\.net$ +(^|\.)webevader\.org$ +(^|\.)webfreer\.com$ +(^|\.)webjb\.org$ +(^|\.)weblagu\.com$ +(^|\.)webmproject\.org$ +(^|\.)webrtc\.org$ +(^|\.)webrush\.net$ +(^|\.)webs-tv\.net$ +(^|\.)website\.informer\.com$ +(^|\.)websitepulse\.com$ +(^|\.)webwarper\.net$ +(^|\.)webworkerdaily\.com$ +(^|\.)weekmag\.info$ +(^|\.)wefightcensorship\.org$ +(^|\.)wefong\.com$ +(^|\.)weiboleak\.com$ +(^|\.)weiboscope\.jmsc\.hku\.hk$ +(^|\.)weihuo\.org$ +(^|\.)weijingsheng\.org$ +(^|\.)weiming\.info$ +(^|\.)weiquanwang\.org$ +(^|\.)weisuo\.ws$ +(^|\.)welovecock\.com$ +(^|\.)wemigrate\.org$ +(^|\.)wengewang\.com$ +(^|\.)wengewang\.org$ +(^|\.)wenhui\.ch$ +(^|\.)wenxuecity\.com$ +(^|\.)wenyunchao\.com$ +(^|\.)westca\.com$ +(^|\.)westernshugdensociety\.org$ +(^|\.)westernwolves\.com$ +(^|\.)westkit\.net$ +(^|\.)westpoint\.edu$ +(^|\.)wetplace\.com$ +(^|\.)wetpussygames\.com$ +(^|\.)wexiaobo\.org$ +(^|\.)wezhiyong\.org$ +(^|\.)wezone\.net$ +(^|\.)wforum\.com$ +(^|\.)wha\.la$ +(^|\.)whatblocked\.com$ +(^|\.)whatbrowser\.org$ +(^|\.)whatsapp\.net$ +(^|\.)wheatseeds\.org$ +(^|\.)wheelockslatin\.com$ +(^|\.)whereiswerner\.com$ +(^|\.)wheretowatch\.com$ +(^|\.)whippedass\.com$ +(^|\.)whitebear\.freebearblog\.org$ +(^|\.)whodns\.xyz$ +(^|\.)whoer\.net$ +(^|\.)whotalking\.com$ +(^|\.)whylover\.com$ +(^|\.)whyx\.org$ +(^|\.)widevine\.com$ +(^|\.)wikaba\.com$ +(^|\.)wiki\.cnitter\.com$ +(^|\.)wiki\.esu\.im$ +(^|\.)wiki\.gamerp\.jp$ +(^|\.)wiki\.jqueryui\.com$ +(^|\.)wiki\.keso\.cn$ +(^|\.)wiki\.moegirl\.org$ +(^|\.)wiki\.oauth\.net$ +(^|\.)wiki\.phonegap\.com$ +(^|\.)wikileaks-forum\.com$ +(^|\.)wikileaks\.ch$ +(^|\.)wikileaks\.com$ +(^|\.)wikileaks\.de$ +(^|\.)wikileaks\.eu$ +(^|\.)wikileaks\.lu$ +(^|\.)wikileaks\.org$ +(^|\.)wikileaks\.pl$ +(^|\.)wikilivres\.info$ +(^|\.)wikimapia\.org$ +(^|\.)wikiwiki\.jp$ +(^|\.)wildammo\.com$ +(^|\.)willw\.net$ +(^|\.)windowsphoneme\.com$ +(^|\.)windscribe\.com$ +(^|\.)wingamestore\.com$ +(^|\.)wingy\.site$ +(^|\.)winning11\.com$ +(^|\.)winwhispers\.info$ +(^|\.)wire\.com$ +(^|\.)wiredbytes\.com$ +(^|\.)wiredpen\.com$ +(^|\.)wisdompubs\.org$ +(^|\.)wisevid\.com$ +(^|\.)withgoogle\.com$ +(^|\.)withyoutube\.com$ +(^|\.)witnessleeteaching\.com$ +(^|\.)witopia\.net$ +(^|\.)wizcrafts\.net$ +(^|\.)wjbk\.org$ +(^|\.)wlcnew\.jigsy\.com$ +(^|\.)wlx\.sowiki\.net$ +(^|\.)wn\.com$ +(^|\.)wnacg\.com$ +(^|\.)wnacg\.org$ +(^|\.)wo\.tc$ +(^|\.)wo3ttt\.wordpress\.com$ +(^|\.)woeser\.com$ +(^|\.)woesermiddle-way\.net$ +(^|\.)wokar\.org$ +(^|\.)wolfax\.com$ +(^|\.)woolyss\.com$ +(^|\.)woopie\.jp$ +(^|\.)woopie\.tv$ +(^|\.)wordpress\.com$ +(^|\.)workatruna\.com$ +(^|\.)workerdemo\.org\.hk$ +(^|\.)workersthebig\.net$ +(^|\.)worldcat\.org$ +(^|\.)worldjournal\.com$ +(^|\.)worldvpn\.net$ +(^|\.)wow-life\.net$ +(^|\.)wow\.com$ +(^|\.)wowgirls\.com$ +(^|\.)wowlegacy\.ml$ +(^|\.)wowporn\.com$ +(^|\.)wowrk\.com$ +(^|\.)woxinghuiguo\.com$ +(^|\.)woyaolian\.org$ +(^|\.)wozy\.in$ +(^|\.)wp\.com$ +(^|\.)wpoforum\.com$ +(^|\.)wqyd\.org$ +(^|\.)wrchina\.org$ +(^|\.)wretch\.cc$ +(^|\.)writer\.zoho\.com$ +(^|\.)wsgzao\.github\.io$ +(^|\.)wsj\.com$ +(^|\.)wsj\.net$ +(^|\.)wsjhk\.com$ +(^|\.)wtbn\.org$ +(^|\.)wtfpeople\.com$ +(^|\.)wuerkaixi\.com$ +(^|\.)wufafangwen\.com$ +(^|\.)wufi\.org\.tw$ +(^|\.)wuguoguang\.com$ +(^|\.)wujie\.net$ +(^|\.)wujieliulan\.com$ +(^|\.)wukangrui\.net$ +(^|\.)wuu\.wikipedia\.org$ +(^|\.)wuw\.red$ +(^|\.)wuyanblog\.com$ +(^|\.)wwitv\.com$ +(^|\.)www\.ajsands\.com$ +(^|\.)www\.americorps\.gov$ +(^|\.)www\.antd\.org$ +(^|\.)www\.aolnews\.com$ +(^|\.)www\.businessinsider\.com\.au$ +(^|\.)www\.citizenlab\.org$ +(^|\.)www\.cmoinc\.org$ +(^|\.)www\.cool18\.com$ +(^|\.)www\.dmm\.com$ +(^|\.)www\.dwheeler\.com$ +(^|\.)www\.eastturkistan\.net$ +(^|\.)www\.ftchinese\.com$ +(^|\.)www\.gmiddle\.com$ +(^|\.)www\.gmiddle\.net$ +(^|\.)www\.hustlercash\.com$ +(^|\.)www\.idlcoyote\.com$ +(^|\.)www\.imdb\.com$ +(^|\.)www\.kindleren\.com$ +(^|\.)www\.klip\.me$ +(^|\.)www\.lamenhu\.com$ +(^|\.)www\.lib\.virginia\.edu$ +(^|\.)www\.linksalpha\.com$ +(^|\.)www\.m-sport\.co\.uk$ +(^|\.)www\.metro\.taipei$ +(^|\.)www\.monlamit\.org$ +(^|\.)www\.moztw\.org$ +(^|\.)www\.nbc\.com$ +(^|\.)www\.orchidbbs\.com$ +(^|\.)www\.owind\.com$ +(^|\.)www\.oxid\.it$ +(^|\.)www\.powerpointninja\.com$ +(^|\.)www\.s4miniarchive\.com$ +(^|\.)www\.sciencemag\.org$ +(^|\.)www\.shadowsocks\.com$ +(^|\.)www\.shwchurch\.org$ +(^|\.)www\.skype\.com$ +(^|\.)www\.tablesgenerator\.com$ +(^|\.)www\.taiwanonline\.cc$ +(^|\.)www\.taup\.org\.tw$ +(^|\.)www\.thechinastory\.org$ +(^|\.)www\.wan-press\.org$ +(^|\.)www\.wangruowang\.org$ +(^|\.)www\.websnapr\.com$ +(^|\.)www\.zensur\.freerk\.com$ +(^|\.)www1\.american\.edu$ +(^|\.)www1\.biz$ +(^|\.)www2\.ohchr\.org$ +(^|\.)www2\.rocketbbs\.com$ +(^|\.)wwwhost\.biz$ +(^|\.)wzyboy\.im$ +(^|\.)x-art\.com$ +(^|\.)x-berry\.com$ +(^|\.)x-wall\.org$ +(^|\.)x\.company$ +(^|\.)x1949x\.com$ +(^|\.)x24hr\.com$ +(^|\.)x365x\.com$ +(^|\.)xa\.yimg\.com$ +(^|\.)xanga\.com$ +(^|\.)xbabe\.com$ +(^|\.)xbookcn\.com$ +(^|\.)xcafe\.in$ +(^|\.)xcity\.jp$ +(^|\.)xcritic\.com$ +(^|\.)xerotica\.com$ +(^|\.)xfinity\.com$ +(^|\.)xfm\.pp\.ru$ +(^|\.)xgmyd\.com$ +(^|\.)xhamster\.com$ +(^|\.)xianchawang\.net$ +(^|\.)xianjian\.tw$ +(^|\.)xianqiao\.net$ +(^|\.)xiaobaiwu\.com$ +(^|\.)xiaochuncnjp\.com$ +(^|\.)xiaod\.in$ +(^|\.)xiaohexie\.com$ +(^|\.)xiaolan\.me$ +(^|\.)xiaoma\.org$ +(^|\.)xiezhua\.com$ +(^|\.)xihua\.es$ +(^|\.)xing\.com$ +(^|\.)xinhuanet\.org$ +(^|\.)xinmiao\.com\.hk$ +(^|\.)xinqimeng\.over-blog\.com$ +(^|\.)xinsheng\.net$ +(^|\.)xinshijue\.com$ +(^|\.)xinyubbs\.net$ +(^|\.)xiongpian\.com$ +(^|\.)xiuren\.org$ +(^|\.)xizang-zhiye\.org$ +(^|\.)xjp\.cc$ +(^|\.)xjtravelguide\.com$ +(^|\.)xkiwi\.tk$ +(^|\.)xlfmtalk\.com$ +(^|\.)xlfmwz\.info$ +(^|\.)xm\.com$ +(^|\.)xml-training-guide\.com$ +(^|\.)xmovies\.com$ +(^|\.)xn--4gq171p\.com$ +(^|\.)xn--czq75pvv1aj5c\.org$ +(^|\.)xn--i2ru8q2qg\.com$ +(^|\.)xn--ngstr-lra8j\.com$ +(^|\.)xn--p8j9a0d9c9a\.xn--q9jyb4c$ +(^|\.)xnxx\.com$ +(^|\.)xpdo\.net$ +(^|\.)xpud\.org$ +(^|\.)xrentdvd\.com$ +(^|\.)xskywalker\.com$ +(^|\.)xskywalker\.net$ +(^|\.)xtube\.com$ +(^|\.)xuchao\.net$ +(^|\.)xuchao\.org$ +(^|\.)xuehua\.us$ +(^|\.)xuzhiyong\.net$ +(^|\.)xvideo\.cc$ +(^|\.)xvideos\.com$ +(^|\.)xvideos\.es$ +(^|\.)xxbbx\.com$ +(^|\.)xxlmovies\.com$ +(^|\.)xxuz\.com$ +(^|\.)xxx\.com$ +(^|\.)xxx\.xxx$ +(^|\.)xxxfuckmom\.com$ +(^|\.)xxxx\.com\.au$ +(^|\.)xxxy\.biz$ +(^|\.)xxxy\.info$ +(^|\.)xxxymovies\.com$ +(^|\.)xys\.dxiong\.com$ +(^|\.)xys\.org$ +(^|\.)xysblogs\.org$ +(^|\.)xyy69\.com$ +(^|\.)xyy69\.info$ +(^|\.)yahoo\.com\.hk$ +(^|\.)yakbutterblues\.com$ +(^|\.)yam\.com$ +(^|\.)yam\.org\.tw$ +(^|\.)yanghengjun\.com$ +(^|\.)yangjianli\.com$ +(^|\.)yasni\.co\.uk$ +(^|\.)yayabay\.com$ +(^|\.)ydy\.com$ +(^|\.)yeahteentube\.com$ +(^|\.)yecl\.net$ +(^|\.)yeelou\.com$ +(^|\.)yeeyi\.com$ +(^|\.)yegle\.net$ +(^|\.)yes-news\.com$ +(^|\.)yes\.xxx$ +(^|\.)yes123\.com\.tw$ +(^|\.)yesasia\.com$ +(^|\.)yesasia\.com\.hk$ +(^|\.)yespornplease\.com$ +(^|\.)yeyeclub\.com$ +(^|\.)ygto\.com$ +(^|\.)yhcw\.net$ +(^|\.)yibada\.com$ +(^|\.)yibaochina\.com$ +(^|\.)yidio\.com$ +(^|\.)yilubbs\.com$ +(^|\.)yingsuoss\.com$ +(^|\.)yinlei\.org$ +(^|\.)yipub\.com$ +(^|\.)yizhihongxing\.com$ +(^|\.)yobt\.com$ +(^|\.)yobt\.tv$ +(^|\.)yogichen\.org$ +(^|\.)yong\.hu$ +(^|\.)yorkbbs\.ca$ +(^|\.)youdontcare\.com$ +(^|\.)youjizz\.com$ +(^|\.)youmaker\.com$ +(^|\.)youngpornvideos\.com$ +(^|\.)youngspiration\.hk$ +(^|\.)youpai\.org$ +(^|\.)youporn\.com$ +(^|\.)youporngay\.com$ +(^|\.)your-freedom\.net$ +(^|\.)yourepeat\.com$ +(^|\.)yourlisten\.com$ +(^|\.)yourlust\.com$ +(^|\.)yourprivatevpn\.com$ +(^|\.)yourtrap\.com$ +(^|\.)yousendit\.com$ +(^|\.)youshun12\.com$ +(^|\.)youthnetradio\.org$ +(^|\.)youtu\.be$ +(^|\.)youtube-nocookie\.com$ +(^|\.)youtube\.com$ +(^|\.)youtubecn\.com$ +(^|\.)youtubeeducation\.com$ +(^|\.)youtubegaming\.com$ +(^|\.)youversion\.com$ +(^|\.)youxu\.info$ +(^|\.)yt\.be$ +(^|\.)ytht\.net$ +(^|\.)ytimg\.com$ +(^|\.)ytn\.co\.kr$ +(^|\.)yuanming\.net$ +(^|\.)yuanzhengtang\.org$ +(^|\.)yulghun\.com$ +(^|\.)yunchao\.net$ +(^|\.)yuntipub\.com$ +(^|\.)yuvutu\.com$ +(^|\.)yvesgeleyn\.com$ +(^|\.)ywpw\.com$ +(^|\.)yx51\.net$ +(^|\.)yyii\.org$ +(^|\.)yzzk\.com$ +(^|\.)zacebook\.com$ +(^|\.)zalmos\.com$ +(^|\.)zannel\.com$ +(^|\.)zaobao\.com\.sg$ +(^|\.)zaozon\.com$ +(^|\.)zapto\.org$ +(^|\.)zattoo\.com$ +(^|\.)zdnet\.com\.tw$ +(^|\.)zello\.com$ +(^|\.)zengjinyan\.org$ +(^|\.)zenmate\.com$ +(^|\.)zenmate\.com\.ru$ +(^|\.)zeronet\.io$ +(^|\.)zeutch\.com$ +(^|\.)zfreet\.com$ +(^|\.)zgsddh\.com$ +(^|\.)zgzcjj\.net$ +(^|\.)zh-yue\.wikipedia\.org$ +(^|\.)zh\.ecdm\.wikia\.com$ +(^|\.)zh\.m\.wikipedia\.org$ +(^|\.)zh\.pokerstrategy\.com$ +(^|\.)zh\.uncyclopedia\.wikia\.com$ +(^|\.)zh\.wikinews\.org$ +(^|\.)zh\.wikipedia\.org$ +(^|\.)zh\.wikisource\.org$ +(^|\.)zhanbin\.net$ +(^|\.)zhangboli\.net$ +(^|\.)zhangtianliang\.com$ +(^|\.)zhanlve\.org$ +(^|\.)zhao\.1984\.city$ +(^|\.)zhao\.jinhai\.de$ +(^|\.)zhenghui\.org$ +(^|\.)zhengjian\.org$ +(^|\.)zhengwunet\.org$ +(^|\.)zhenlibu\.info$ +(^|\.)zhenlibu1984\.com$ +(^|\.)zhenxiang\.biz$ +(^|\.)zhinengluyou\.com$ +(^|\.)zhongguo\.ca$ +(^|\.)zhongguorenquan\.org$ +(^|\.)zhongguotese\.net$ +(^|\.)zhongmeng\.org$ +(^|\.)zhoushuguang\.com$ +(^|\.)zhreader\.com$ +(^|\.)zhuangbi\.me$ +(^|\.)zhuanxing\.cn$ +(^|\.)zhuatieba\.com$ +(^|\.)zhuichaguoji\.org$ +(^|\.)ziddu\.com$ +(^|\.)zillionk\.com$ +(^|\.)zim\.vn$ +(^|\.)zinio\.com$ +(^|\.)ziporn\.com$ +(^|\.)zippyshare\.com$ +(^|\.)zkaip\.com$ +(^|\.)zmw\.cn$ +(^|\.)zodgame\.us$ +(^|\.)zomobo\.net$ +(^|\.)zonaeuropa\.com$ +(^|\.)zonghexinwen\.com$ +(^|\.)zonghexinwen\.net$ +(^|\.)zoogvpn\.com$ +(^|\.)zootool\.com$ +(^|\.)zoozle\.net$ +(^|\.)zorrovpn\.com$ +(^|\.)zozotown\.com$ +(^|\.)zpn\.im$ +(^|\.)zspeeder\.me$ +(^|\.)zsrhao\.com$ +(^|\.)zuo\.la$ +(^|\.)zuobiao\.me$ +(^|\.)zuola\.com$ +(^|\.)zvereff\.com$ +(^|\.)zynaima\.com$ +(^|\.)zynamics\.com$ +(^|\.)zyns\.com$ +(^|\.)zyzc9\.com$ +(^|\.)zzcartoon\.com$ +(^|\.)zzux\.com$ diff --git a/client/android/assets/acl/bypass-lan-china.acl b/client/android/assets/acl/bypass-lan-china.acl new file mode 100644 index 00000000..64500c09 --- /dev/null +++ b/client/android/assets/acl/bypass-lan-china.acl @@ -0,0 +1,10391 @@ +[proxy_all] + +[bypass_list] +0.0.0.0/8 +10.0.0.0/8 +100.64.0.0/10 +127.0.0.0/8 +169.254.0.0/16 +172.16.0.0/12 +192.0.0.0/29 +192.0.2.0/24 +192.88.99.0/24 +192.168.0.0/16 +198.18.0.0/15 +198.51.100.0/24 +203.0.113.0/24 +224.0.0.0/3 +1.0.1.0/24 +1.0.2.0/23 +1.0.8.0/21 +1.0.32.0/19 +1.1.0.0/24 +1.1.2.0/23 +1.1.4.0/22 +1.1.8.0/21 +1.1.16.0/20 +1.1.32.0/19 +1.2.0.0/23 +1.2.2.0/24 +1.2.4.0/22 +1.2.8.0/21 +1.2.16.0/20 +1.2.32.0/19 +1.2.64.0/18 +1.3.0.0/16 +1.4.1.0/24 +1.4.2.0/23 +1.4.4.0/22 +1.4.8.0/21 +1.4.16.0/20 +1.4.32.0/19 +1.4.64.0/18 +1.8.0.0/16 +1.10.0.0/21 +1.10.8.0/23 +1.10.11.0/24 +1.10.12.0/22 +1.10.16.0/20 +1.10.32.0/19 +1.10.64.0/18 +1.12.0.0/14 +1.24.0.0/13 +1.45.0.0/16 +1.48.0.0/14 +1.56.0.0/13 +1.68.0.0/14 +1.80.0.0/12 +1.116.0.0/14 +1.180.0.0/14 +1.184.0.0/15 +1.188.0.0/14 +1.192.0.0/13 +1.202.0.0/15 +1.204.0.0/14 +8.128.0.0/10 +8.208.32.0/19 +8.208.64.0/18 +8.208.128.0/17 +8.209.0.0/16 +8.210.0.0/15 +8.212.0.0/14 +8.216.0.0/13 +14.0.0.0/21 +14.0.12.0/22 +14.1.0.0/22 +14.1.24.0/22 +14.1.96.0/22 +14.1.108.0/22 +14.16.0.0/12 +14.102.128.0/22 +14.102.156.0/22 +14.102.180.0/22 +14.103.0.0/16 +14.104.0.0/13 +14.112.0.0/12 +14.130.0.0/15 +14.134.0.0/15 +14.144.0.0/12 +14.192.60.0/22 +14.192.76.0/22 +14.196.0.0/15 +14.204.0.0/15 +14.208.0.0/12 +20.134.160.0/20 +20.139.160.0/20 +27.0.128.0/21 +27.0.160.0/21 +27.0.188.0/22 +27.0.204.0/22 +27.0.208.0/21 +27.8.0.0/13 +27.16.0.0/12 +27.34.232.0/21 +27.36.0.0/14 +27.40.0.0/13 +27.50.40.0/21 +27.50.128.0/17 +27.54.72.0/21 +27.54.152.0/21 +27.54.192.0/18 +27.98.208.0/20 +27.98.224.0/19 +27.99.128.0/17 +27.103.0.0/16 +27.106.128.0/18 +27.106.204.0/22 +27.109.32.0/19 +27.109.124.0/22 +27.112.0.0/18 +27.112.80.0/20 +27.112.112.0/21 +27.113.128.0/18 +27.115.0.0/17 +27.116.44.0/22 +27.121.72.0/21 +27.121.120.0/21 +27.123.232.0/22 +27.128.0.0/15 +27.131.220.0/22 +27.144.0.0/16 +27.148.0.0/14 +27.152.0.0/13 +27.184.0.0/13 +27.192.0.0/11 +27.224.0.0/14 +36.0.0.0/22 +36.0.8.0/21 +36.0.16.0/20 +36.0.32.0/19 +36.0.64.0/18 +36.0.128.0/17 +36.1.0.0/16 +36.4.0.0/14 +36.16.0.0/12 +36.32.0.0/14 +36.36.0.0/16 +36.37.0.0/19 +36.37.36.0/23 +36.37.39.0/24 +36.37.40.0/21 +36.37.48.0/20 +36.40.0.0/13 +36.48.0.0/15 +36.51.0.0/16 +36.56.0.0/13 +36.96.0.0/11 +36.128.0.0/10 +36.192.0.0/11 +36.248.0.0/14 +36.254.0.0/16 +36.255.116.0/22 +36.255.128.0/22 +36.255.164.0/22 +36.255.172.0/22 +36.255.176.0/22 +36.255.220.0/22 +39.0.0.0/24 +39.0.2.0/23 +39.0.4.0/22 +39.0.8.0/21 +39.0.16.0/20 +39.0.32.0/19 +39.0.64.0/18 +39.0.128.0/17 +39.64.0.0/11 +39.96.0.0/13 +39.104.0.0/14 +39.108.0.0/16 +39.109.120.0/23 +39.128.0.0/10 +40.0.176.0/20 +40.0.247.0/24 +40.0.248.0/22 +40.0.252.0/23 +40.0.255.0/24 +40.72.0.0/15 +40.125.128.0/17 +40.126.64.0/18 +40.198.10.0/24 +40.198.16.0/21 +40.198.24.0/23 +40.251.225.0/24 +40.251.227.0/24 +42.0.0.0/22 +42.0.8.0/21 +42.0.16.0/21 +42.0.24.0/22 +42.0.32.0/19 +42.0.128.0/17 +42.1.0.0/19 +42.1.32.0/20 +42.1.48.0/21 +42.1.56.0/22 +42.1.128.0/17 +42.4.0.0/14 +42.48.0.0/13 +42.56.0.0/14 +42.62.0.0/17 +42.62.128.0/19 +42.62.160.0/20 +42.62.180.0/22 +42.62.184.0/21 +42.63.0.0/16 +42.80.0.0/15 +42.83.64.0/20 +42.83.80.0/22 +42.83.88.0/21 +42.83.96.0/19 +42.83.128.0/17 +42.84.0.0/14 +42.88.0.0/13 +42.96.64.0/19 +42.96.96.0/21 +42.96.108.0/22 +42.96.112.0/20 +42.96.128.0/17 +42.97.0.0/16 +42.99.0.0/18 +42.99.64.0/19 +42.99.96.0/20 +42.99.112.0/22 +42.99.120.0/21 +42.100.0.0/14 +42.120.0.0/15 +42.122.0.0/16 +42.123.0.0/19 +42.123.36.0/22 +42.123.40.0/21 +42.123.48.0/20 +42.123.64.0/18 +42.123.128.0/17 +42.128.0.0/12 +42.156.0.0/19 +42.156.36.0/22 +42.156.40.0/21 +42.156.48.0/20 +42.156.64.0/18 +42.156.128.0/17 +42.157.0.0/16 +42.158.0.0/15 +42.160.0.0/12 +42.176.0.0/13 +42.184.0.0/15 +42.186.0.0/16 +42.187.0.0/18 +42.187.64.0/19 +42.187.96.0/20 +42.187.112.0/21 +42.187.120.0/22 +42.187.128.0/17 +42.192.0.0/13 +42.201.0.0/17 +42.202.0.0/15 +42.204.0.0/14 +42.208.0.0/12 +42.224.0.0/12 +42.240.0.0/16 +42.242.0.0/15 +42.244.0.0/14 +42.248.0.0/13 +43.224.12.0/22 +43.224.24.0/22 +43.224.44.0/22 +43.224.52.0/22 +43.224.56.0/22 +43.224.64.0/21 +43.224.72.0/22 +43.224.80.0/22 +43.224.100.0/22 +43.224.144.0/22 +43.224.160.0/22 +43.224.176.0/22 +43.224.184.0/22 +43.224.200.0/21 +43.224.208.0/21 +43.224.216.0/22 +43.224.224.0/22 +43.224.240.0/22 +43.225.76.0/22 +43.225.84.0/22 +43.225.120.0/21 +43.225.140.0/22 +43.225.172.0/22 +43.225.180.0/22 +43.225.208.0/22 +43.225.216.0/21 +43.225.224.0/20 +43.225.240.0/21 +43.225.252.0/22 +43.226.32.0/19 +43.226.64.0/19 +43.226.96.0/20 +43.226.112.0/21 +43.226.120.0/22 +43.226.128.0/18 +43.226.192.0/20 +43.226.208.0/21 +43.226.236.0/22 +43.226.240.0/20 +43.227.0.0/21 +43.227.8.0/22 +43.227.32.0/19 +43.227.64.0/19 +43.227.96.0/21 +43.227.104.0/22 +43.227.136.0/21 +43.227.144.0/22 +43.227.152.0/21 +43.227.160.0/20 +43.227.176.0/21 +43.227.188.0/22 +43.227.192.0/19 +43.227.232.0/22 +43.227.248.0/21 +43.228.0.0/18 +43.228.64.0/21 +43.228.76.0/22 +43.228.100.0/22 +43.228.116.0/22 +43.228.120.0/22 +43.228.132.0/22 +43.228.136.0/22 +43.228.148.0/22 +43.228.152.0/22 +43.228.188.0/22 +43.229.16.0/22 +43.229.40.0/22 +43.229.48.0/22 +43.229.56.0/22 +43.229.96.0/22 +43.229.120.0/22 +43.229.136.0/21 +43.229.144.0/22 +43.229.168.0/21 +43.229.176.0/20 +43.229.192.0/21 +43.229.216.0/21 +43.229.232.0/21 +43.230.20.0/22 +43.230.32.0/22 +43.230.68.0/22 +43.230.72.0/22 +43.230.84.0/22 +43.230.124.0/22 +43.230.136.0/22 +43.230.168.0/22 +43.230.220.0/22 +43.230.224.0/19 +43.231.12.0/22 +43.231.32.0/20 +43.231.80.0/20 +43.231.96.0/20 +43.231.136.0/21 +43.231.144.0/20 +43.231.160.0/20 +43.231.176.0/21 +43.236.0.0/15 +43.238.0.0/16 +43.239.0.0/19 +43.239.32.0/20 +43.239.48.0/22 +43.239.116.0/22 +43.239.120.0/22 +43.239.172.0/22 +43.239.176.0/22 +43.240.0.0/22 +43.240.48.0/22 +43.240.56.0/21 +43.240.68.0/22 +43.240.72.0/21 +43.240.84.0/22 +43.240.124.0/22 +43.240.128.0/21 +43.240.136.0/22 +43.240.156.0/22 +43.240.160.0/19 +43.240.192.0/19 +43.240.236.0/22 +43.240.240.0/20 +43.241.0.0/20 +43.241.16.0/21 +43.241.48.0/22 +43.241.76.0/22 +43.241.80.0/20 +43.241.112.0/22 +43.241.168.0/21 +43.241.176.0/21 +43.241.184.0/22 +43.241.196.0/22 +43.241.208.0/20 +43.241.224.0/20 +43.241.240.0/22 +43.241.248.0/21 +43.242.8.0/21 +43.242.16.0/20 +43.242.44.0/22 +43.242.48.0/20 +43.242.64.0/22 +43.242.72.0/21 +43.242.80.0/20 +43.242.96.0/22 +43.242.144.0/20 +43.242.160.0/21 +43.242.168.0/22 +43.242.180.0/22 +43.242.188.0/22 +43.242.192.0/21 +43.242.204.0/22 +43.242.216.0/21 +43.242.252.0/22 +43.243.4.0/22 +43.243.8.0/21 +43.243.16.0/22 +43.243.24.0/22 +43.243.88.0/22 +43.243.128.0/22 +43.243.136.0/22 +43.243.144.0/21 +43.243.156.0/22 +43.243.168.0/22 +43.243.180.0/22 +43.243.188.0/22 +43.243.228.0/22 +43.243.232.0/22 +43.243.244.0/22 +43.246.0.0/18 +43.246.64.0/19 +43.246.96.0/22 +43.246.112.0/22 +43.246.212.0/22 +43.246.228.0/22 +43.247.4.0/22 +43.247.8.0/22 +43.247.44.0/22 +43.247.48.0/22 +43.247.68.0/22 +43.247.76.0/22 +43.247.84.0/22 +43.247.88.0/21 +43.247.96.0/21 +43.247.108.0/22 +43.247.112.0/22 +43.247.148.0/22 +43.247.152.0/22 +43.247.176.0/20 +43.247.196.0/22 +43.247.200.0/21 +43.247.208.0/20 +43.247.224.0/19 +43.248.0.0/21 +43.248.20.0/22 +43.248.28.0/22 +43.248.48.0/22 +43.248.76.0/22 +43.248.80.0/20 +43.248.96.0/19 +43.248.128.0/20 +43.248.144.0/21 +43.248.176.0/20 +43.248.192.0/20 +43.248.208.0/22 +43.248.228.0/22 +43.248.232.0/22 +43.248.244.0/22 +43.249.0.0/21 +43.249.8.0/22 +43.249.24.0/22 +43.249.120.0/22 +43.249.132.0/22 +43.249.136.0/22 +43.249.144.0/20 +43.249.160.0/21 +43.249.168.0/22 +43.249.192.0/22 +43.249.236.0/22 +43.250.4.0/22 +43.250.12.0/22 +43.250.16.0/21 +43.250.28.0/22 +43.250.32.0/21 +43.250.72.0/22 +43.250.96.0/20 +43.250.112.0/21 +43.250.128.0/22 +43.250.144.0/21 +43.250.160.0/22 +43.250.168.0/21 +43.250.176.0/22 +43.250.200.0/22 +43.250.212.0/22 +43.250.216.0/21 +43.250.236.0/22 +43.250.244.0/22 +43.251.4.0/22 +43.251.8.0/21 +43.251.36.0/22 +43.251.100.0/22 +43.251.116.0/22 +43.251.192.0/22 +43.251.232.0/21 +43.251.244.0/22 +43.252.40.0/22 +43.252.48.0/22 +43.252.56.0/22 +43.252.224.0/22 +43.254.0.0/21 +43.254.8.0/22 +43.254.24.0/22 +43.254.36.0/22 +43.254.44.0/22 +43.254.52.0/22 +43.254.64.0/22 +43.254.72.0/22 +43.254.84.0/22 +43.254.88.0/21 +43.254.100.0/22 +43.254.104.0/22 +43.254.112.0/21 +43.254.128.0/22 +43.254.136.0/21 +43.254.144.0/20 +43.254.168.0/21 +43.254.180.0/22 +43.254.184.0/21 +43.254.192.0/21 +43.254.200.0/22 +43.254.208.0/22 +43.254.220.0/22 +43.254.224.0/20 +43.254.240.0/22 +43.254.248.0/21 +43.255.0.0/21 +43.255.8.0/22 +43.255.16.0/22 +43.255.48.0/22 +43.255.64.0/20 +43.255.84.0/22 +43.255.96.0/22 +43.255.108.0/22 +43.255.144.0/22 +43.255.168.0/22 +43.255.176.0/22 +43.255.184.0/22 +43.255.192.0/22 +43.255.200.0/21 +43.255.208.0/21 +43.255.224.0/21 +43.255.232.0/22 +43.255.244.0/22 +45.40.192.0/18 +45.65.16.0/20 +45.112.132.0/22 +45.112.188.0/22 +45.112.208.0/20 +45.112.228.0/22 +45.112.232.0/21 +45.113.12.0/22 +45.113.16.0/20 +45.113.40.0/22 +45.113.52.0/22 +45.113.56.0/22 +45.113.72.0/22 +45.113.144.0/21 +45.113.168.0/22 +45.113.176.0/22 +45.113.184.0/22 +45.113.200.0/21 +45.113.208.0/20 +45.113.228.0/22 +45.113.240.0/22 +45.113.252.0/22 +45.114.0.0/22 +45.114.12.0/22 +45.114.32.0/22 +45.114.40.0/22 +45.114.52.0/22 +45.114.96.0/22 +45.114.104.0/21 +45.114.124.0/22 +45.114.136.0/22 +45.114.196.0/22 +45.114.200.0/22 +45.114.228.0/22 +45.114.236.0/22 +45.114.252.0/22 +45.115.44.0/22 +45.115.100.0/22 +45.115.120.0/22 +45.115.132.0/22 +45.115.144.0/22 +45.115.156.0/22 +45.115.164.0/22 +45.115.200.0/22 +45.115.212.0/22 +45.115.216.0/22 +45.115.228.0/22 +45.115.236.0/22 +45.115.244.0/22 +45.115.248.0/22 +45.116.12.0/22 +45.116.16.0/21 +45.116.24.0/22 +45.116.32.0/21 +45.116.52.0/22 +45.116.96.0/21 +45.116.140.0/22 +45.116.152.0/22 +45.116.208.0/22 +45.117.8.0/22 +45.117.20.0/22 +45.117.68.0/22 +45.117.124.0/22 +45.117.252.0/22 +45.119.52.0/22 +45.119.60.0/22 +45.119.64.0/21 +45.119.72.0/22 +45.119.104.0/22 +45.119.116.0/22 +45.119.232.0/22 +45.120.100.0/22 +45.120.140.0/22 +45.120.164.0/22 +45.120.220.0/22 +45.120.240.0/22 +45.121.20.0/22 +45.121.52.0/22 +45.121.64.0/21 +45.121.72.0/22 +45.121.92.0/22 +45.121.96.0/22 +45.121.104.0/22 +45.121.172.0/22 +45.121.176.0/22 +45.121.212.0/22 +45.121.240.0/20 +45.122.0.0/19 +45.122.32.0/21 +45.122.40.0/22 +45.122.60.0/22 +45.122.64.0/19 +45.122.96.0/20 +45.122.112.0/21 +45.122.160.0/19 +45.122.192.0/20 +45.122.208.0/21 +45.122.216.0/22 +45.123.28.0/22 +45.123.32.0/21 +45.123.44.0/22 +45.123.48.0/20 +45.123.64.0/20 +45.123.80.0/21 +45.123.88.0/22 +45.123.120.0/22 +45.123.128.0/21 +45.123.136.0/22 +45.123.148.0/22 +45.123.152.0/21 +45.123.164.0/22 +45.123.168.0/21 +45.123.176.0/21 +45.123.184.0/22 +45.123.204.0/22 +45.123.212.0/22 +45.123.224.0/19 +45.124.0.0/22 +45.124.20.0/22 +45.124.28.0/22 +45.124.32.0/21 +45.124.44.0/22 +45.124.68.0/22 +45.124.76.0/22 +45.124.80.0/22 +45.124.100.0/22 +45.124.124.0/22 +45.124.172.0/22 +45.124.176.0/22 +45.124.208.0/22 +45.124.248.0/21 +45.125.12.0/22 +45.125.16.0/22 +45.125.24.0/21 +45.125.32.0/22 +45.125.44.0/22 +45.125.52.0/22 +45.125.56.0/22 +45.125.76.0/22 +45.125.80.0/20 +45.125.96.0/21 +45.125.104.0/22 +45.125.136.0/22 +45.126.48.0/21 +45.126.100.0/22 +45.126.108.0/22 +45.126.112.0/21 +45.126.120.0/22 +45.126.212.0/22 +45.126.220.0/22 +45.127.8.0/21 +45.127.96.0/22 +45.127.116.0/22 +45.127.124.0/22 +45.127.128.0/22 +45.127.144.0/21 +45.127.156.0/22 +45.127.216.0/22 +45.248.8.0/22 +45.248.80.0/21 +45.248.88.0/22 +45.248.96.0/20 +45.248.128.0/21 +45.248.204.0/22 +45.248.208.0/20 +45.248.224.0/19 +45.249.0.0/21 +45.249.12.0/22 +45.249.16.0/20 +45.249.32.0/21 +45.249.92.0/22 +45.249.112.0/22 +45.249.180.0/22 +45.249.188.0/22 +45.249.192.0/20 +45.249.208.0/21 +45.250.12.0/22 +45.250.16.0/22 +45.250.28.0/22 +45.250.32.0/21 +45.250.40.0/22 +45.250.76.0/22 +45.250.80.0/20 +45.250.96.0/22 +45.250.104.0/21 +45.250.112.0/20 +45.250.128.0/20 +45.250.144.0/21 +45.250.152.0/22 +45.250.164.0/22 +45.250.180.0/22 +45.250.184.0/21 +45.250.192.0/22 +45.251.0.0/22 +45.251.8.0/22 +45.251.16.0/21 +45.251.52.0/22 +45.251.84.0/22 +45.251.88.0/21 +45.251.96.0/21 +45.251.120.0/21 +45.251.136.0/21 +45.251.144.0/20 +45.251.160.0/19 +45.251.192.0/19 +45.251.224.0/22 +45.251.240.0/22 +45.252.0.0/19 +45.252.32.0/20 +45.252.48.0/22 +45.252.60.0/22 +45.252.84.0/22 +45.252.88.0/21 +45.252.96.0/19 +45.252.128.0/19 +45.252.160.0/20 +45.252.176.0/22 +45.252.192.0/19 +45.252.224.0/21 +45.252.232.0/22 +45.253.0.0/18 +45.253.64.0/20 +45.253.80.0/21 +45.253.92.0/22 +45.253.96.0/20 +45.253.112.0/21 +45.253.120.0/22 +45.253.130.0/23 +45.253.132.0/22 +45.253.136.0/21 +45.253.144.0/20 +45.253.160.0/19 +45.253.192.0/18 +45.254.0.0/19 +45.254.40.0/22 +45.254.48.0/20 +45.254.64.0/18 +45.254.128.0/18 +45.254.192.0/19 +45.254.224.0/21 +45.254.236.0/22 +45.254.240.0/22 +45.254.248.0/22 +45.255.0.0/17 +45.255.132.0/22 +45.255.136.0/21 +45.255.144.0/20 +45.255.160.0/19 +45.255.192.0/19 +45.255.224.0/20 +45.255.240.0/21 +45.255.248.0/22 +46.61.179.170/31 +46.248.24.0/23 +47.92.0.0/14 +47.96.0.0/11 +49.4.0.0/14 +49.51.0.0/16 +49.52.0.0/14 +49.64.0.0/11 +49.112.0.0/13 +49.120.0.0/14 +49.128.0.0/24 +49.128.2.0/23 +49.128.4.0/22 +49.140.0.0/15 +49.152.0.0/14 +49.208.0.0/14 +49.220.0.0/14 +49.232.0.0/14 +49.239.0.0/18 +49.239.192.0/18 +49.246.224.0/19 +52.80.0.0/14 +52.94.249.0/27 +52.95.216.104/30 +52.130.0.0/15 +54.222.0.0/15 +54.231.208.0/20 +54.240.224.0/24 +57.92.96.0/20 +58.14.0.0/15 +58.16.0.0/13 +58.24.0.0/15 +58.30.0.0/15 +58.32.0.0/11 +58.65.232.0/21 +58.66.0.0/15 +58.68.128.0/17 +58.82.0.0/17 +58.83.0.0/16 +58.87.64.0/18 +58.99.128.0/17 +58.100.0.0/15 +58.116.0.0/14 +58.128.0.0/13 +58.144.0.0/16 +58.154.0.0/15 +58.192.0.0/11 +58.240.0.0/12 +59.32.0.0/11 +59.64.0.0/12 +59.80.0.0/14 +59.107.0.0/16 +59.108.0.0/14 +59.151.0.0/17 +59.152.16.0/20 +59.152.32.0/21 +59.152.64.0/20 +59.152.112.0/21 +59.153.4.0/22 +59.153.32.0/22 +59.153.60.0/22 +59.153.64.0/21 +59.153.72.0/22 +59.153.92.0/22 +59.153.116.0/22 +59.153.136.0/22 +59.153.152.0/21 +59.153.164.0/22 +59.153.168.0/21 +59.153.176.0/20 +59.153.192.0/22 +59.155.0.0/16 +59.172.0.0/14 +59.191.0.0/17 +59.191.240.0/20 +59.192.0.0/10 +60.0.0.0/11 +60.55.0.0/16 +60.63.0.0/16 +60.160.0.0/11 +60.194.0.0/15 +60.200.0.0/13 +60.208.0.0/12 +60.232.0.0/15 +60.235.0.0/16 +60.245.128.0/17 +60.247.0.0/16 +60.252.0.0/16 +60.253.128.0/17 +60.255.0.0/16 +61.4.80.0/20 +61.4.176.0/20 +61.8.160.0/20 +61.14.4.0/22 +61.14.212.0/22 +61.14.216.0/21 +61.14.240.0/21 +61.28.0.0/17 +61.29.128.0/17 +61.45.128.0/18 +61.45.224.0/20 +61.47.128.0/18 +61.48.0.0/13 +61.87.192.0/18 +61.128.0.0/10 +61.213.145.106/32 +61.232.0.0/14 +61.236.0.0/15 +61.240.0.0/14 +62.234.0.0/16 +64.85.27.0/24 +65.55.60.184/30 +68.79.0.0/18 +69.230.192.0/18 +69.231.128.0/18 +69.234.192.0/18 +69.235.128.0/18 +71.131.192.0/18 +71.132.0.0/18 +71.136.64.0/18 +71.137.0.0/18 +72.163.248.0/22 +81.68.0.0/14 +82.156.0.0/15 +87.254.207.0/24 +93.183.14.0/24 +93.183.18.0/24 +94.191.0.0/17 +101.0.0.0/22 +101.1.0.0/22 +101.2.172.0/22 +101.4.0.0/14 +101.16.0.0/12 +101.32.0.0/12 +101.48.0.0/15 +101.50.8.0/21 +101.50.56.0/22 +101.52.0.0/16 +101.53.100.0/22 +101.54.0.0/16 +101.55.224.0/21 +101.64.0.0/13 +101.72.0.0/14 +101.76.0.0/15 +101.78.0.0/22 +101.78.32.0/19 +101.80.0.0/12 +101.96.0.0/21 +101.96.8.0/22 +101.96.16.0/20 +101.96.128.0/17 +101.99.96.0/19 +101.101.64.0/19 +101.101.100.0/24 +101.101.102.0/23 +101.101.104.0/21 +101.101.112.0/20 +101.102.64.0/19 +101.102.100.0/23 +101.102.102.0/24 +101.102.104.0/21 +101.102.112.0/20 +101.104.0.0/14 +101.110.64.0/19 +101.110.96.0/20 +101.110.116.0/22 +101.110.120.0/21 +101.120.0.0/14 +101.124.0.0/15 +101.126.0.0/16 +101.128.0.0/22 +101.128.8.0/21 +101.128.16.0/20 +101.128.32.0/19 +101.129.0.0/16 +101.130.0.0/15 +101.132.0.0/14 +101.144.0.0/12 +101.192.0.0/13 +101.200.0.0/15 +101.203.128.0/19 +101.203.160.0/21 +101.203.172.0/22 +101.203.176.0/20 +101.204.0.0/14 +101.224.0.0/13 +101.232.0.0/15 +101.234.64.0/21 +101.234.76.0/22 +101.234.80.0/20 +101.234.96.0/19 +101.236.0.0/14 +101.240.0.0/13 +101.248.0.0/15 +101.251.0.0/22 +101.251.8.0/21 +101.251.16.0/20 +101.251.32.0/19 +101.251.64.0/18 +101.251.128.0/17 +101.252.0.0/15 +101.254.0.0/16 +103.1.8.0/22 +103.1.20.0/22 +103.1.24.0/22 +103.1.72.0/22 +103.1.88.0/22 +103.1.168.0/22 +103.2.108.0/22 +103.2.156.0/22 +103.2.164.0/22 +103.2.200.0/21 +103.2.208.0/21 +103.3.84.0/22 +103.3.88.0/21 +103.3.96.0/19 +103.3.128.0/20 +103.3.148.0/22 +103.3.152.0/21 +103.4.56.0/22 +103.4.168.0/22 +103.4.184.0/22 +103.4.224.0/22 +103.5.36.0/22 +103.5.52.0/22 +103.5.56.0/22 +103.5.152.0/22 +103.5.168.0/22 +103.5.192.0/22 +103.5.252.0/22 +103.6.76.0/22 +103.6.108.0/22 +103.6.120.0/22 +103.6.220.0/22 +103.6.228.0/22 +103.7.4.0/22 +103.7.28.0/22 +103.7.140.0/22 +103.7.212.0/22 +103.7.216.0/21 +103.8.0.0/21 +103.8.8.0/22 +103.8.32.0/22 +103.8.52.0/22 +103.8.68.0/22 +103.8.108.0/22 +103.8.156.0/22 +103.8.200.0/21 +103.8.220.0/22 +103.9.8.0/22 +103.9.24.0/22 +103.9.108.0/22 +103.9.152.0/22 +103.9.192.0/22 +103.9.248.0/21 +103.10.0.0/22 +103.10.16.0/22 +103.10.84.0/22 +103.10.111.0/24 +103.10.140.0/22 +103.11.16.0/22 +103.11.168.0/22 +103.11.180.0/22 +103.12.32.0/22 +103.12.68.0/22 +103.12.92.0/22 +103.12.136.0/22 +103.12.184.0/22 +103.12.232.0/22 +103.13.12.0/22 +103.13.72.0/23 +103.13.124.0/22 +103.13.144.0/22 +103.13.196.0/22 +103.13.220.0/22 +103.13.244.0/22 +103.14.32.0/22 +103.14.84.0/22 +103.14.100.0/22 +103.14.132.0/22 +103.14.136.0/22 +103.14.156.0/22 +103.14.240.0/22 +103.15.4.0/22 +103.15.8.0/22 +103.15.16.0/22 +103.15.96.0/22 +103.15.200.0/22 +103.16.52.0/22 +103.16.80.0/21 +103.16.88.0/22 +103.16.108.0/22 +103.16.124.0/22 +103.17.40.0/22 +103.17.64.0/22 +103.17.120.0/22 +103.17.136.0/22 +103.17.160.0/22 +103.17.204.0/22 +103.17.228.0/22 +103.18.192.0/22 +103.18.208.0/21 +103.18.224.0/22 +103.19.0.0/22 +103.19.12.0/22 +103.19.40.0/21 +103.19.64.0/21 +103.19.72.0/22 +103.19.232.0/22 +103.20.12.0/22 +103.20.32.0/22 +103.20.44.0/22 +103.20.68.0/22 +103.20.112.0/22 +103.20.128.0/22 +103.20.160.0/22 +103.20.248.0/22 +103.21.112.0/21 +103.21.136.0/21 +103.21.176.0/22 +103.21.208.0/22 +103.21.240.0/22 +103.22.0.0/18 +103.22.64.0/19 +103.22.100.0/22 +103.22.104.0/21 +103.22.112.0/20 +103.22.188.0/22 +103.22.228.0/22 +103.22.252.0/22 +103.23.8.0/22 +103.23.56.0/22 +103.23.160.0/21 +103.23.176.0/22 +103.23.228.0/22 +103.24.24.0/22 +103.24.116.0/22 +103.24.128.0/22 +103.24.144.0/22 +103.24.176.0/22 +103.24.184.0/22 +103.24.220.0/22 +103.24.228.0/22 +103.24.248.0/21 +103.25.8.0/23 +103.25.20.0/22 +103.25.24.0/21 +103.25.32.0/21 +103.25.40.0/22 +103.25.48.0/22 +103.25.64.0/21 +103.25.148.0/22 +103.25.156.0/22 +103.25.216.0/22 +103.26.0.0/22 +103.26.64.0/22 +103.26.76.0/22 +103.26.116.0/22 +103.26.132.0/22 +103.26.156.0/22 +103.26.160.0/22 +103.26.228.0/22 +103.26.240.0/22 +103.27.4.0/22 +103.27.12.0/22 +103.27.24.0/22 +103.27.56.0/22 +103.27.96.0/22 +103.27.184.0/22 +103.27.208.0/21 +103.27.240.0/22 +103.28.4.0/22 +103.28.8.0/22 +103.28.184.0/22 +103.28.204.0/22 +103.28.212.0/22 +103.29.16.0/22 +103.29.128.0/21 +103.29.136.0/22 +103.30.20.0/22 +103.30.96.0/22 +103.30.148.0/22 +103.30.200.0/22 +103.30.228.0/22 +103.30.234.0/24 +103.30.236.0/22 +103.31.0.0/22 +103.31.48.0/20 +103.31.64.0/21 +103.31.72.0/24 +103.31.148.0/22 +103.31.160.0/22 +103.31.168.0/22 +103.31.200.0/22 +103.31.236.0/22 +103.32.0.0/15 +103.34.0.0/16 +103.35.0.0/19 +103.35.32.0/20 +103.35.48.0/22 +103.35.104.0/22 +103.35.116.0/22 +103.35.180.0/22 +103.35.200.0/22 +103.35.220.0/22 +103.36.20.0/22 +103.36.28.0/22 +103.36.36.0/22 +103.36.56.0/21 +103.36.64.0/22 +103.36.72.0/22 +103.36.96.0/22 +103.36.132.0/22 +103.36.136.0/22 +103.36.160.0/19 +103.36.192.0/19 +103.36.224.0/20 +103.36.240.0/21 +103.37.0.0/22 +103.37.12.0/22 +103.37.16.0/22 +103.37.24.0/22 +103.37.44.0/22 +103.37.52.0/22 +103.37.56.0/22 +103.37.72.0/22 +103.37.100.0/22 +103.37.104.0/22 +103.37.124.0/22 +103.37.136.0/21 +103.37.144.0/20 +103.37.160.0/21 +103.37.172.0/22 +103.37.176.0/22 +103.37.188.0/22 +103.37.208.0/20 +103.37.248.0/21 +103.38.0.0/22 +103.38.32.0/22 +103.38.40.0/21 +103.38.56.0/22 +103.38.76.0/22 +103.38.84.0/22 +103.38.92.0/22 +103.38.96.0/22 +103.38.116.0/22 +103.38.132.0/22 +103.38.140.0/22 +103.38.220.0/22 +103.38.224.0/21 +103.38.232.0/22 +103.38.252.0/22 +103.39.16.0/22 +103.39.64.0/22 +103.39.88.0/22 +103.39.100.0/22 +103.39.104.0/21 +103.39.160.0/19 +103.39.200.0/21 +103.39.208.0/20 +103.39.224.0/21 +103.39.232.0/22 +103.40.12.0/22 +103.40.16.0/20 +103.40.32.0/20 +103.40.88.0/22 +103.40.100.0/22 +103.40.112.0/22 +103.40.192.0/22 +103.40.212.0/22 +103.40.220.0/22 +103.40.228.0/22 +103.40.232.0/21 +103.40.240.0/20 +103.41.0.0/22 +103.41.16.0/22 +103.41.52.0/22 +103.41.140.0/22 +103.41.148.0/22 +103.41.152.0/22 +103.41.160.0/21 +103.41.220.0/22 +103.41.224.0/21 +103.41.232.0/22 +103.42.8.0/22 +103.42.24.0/21 +103.42.32.0/22 +103.42.64.0/21 +103.42.76.0/22 +103.42.104.0/22 +103.42.180.0/22 +103.42.232.0/22 +103.43.16.0/22 +103.43.26.0/23 +103.43.84.0/22 +103.43.96.0/21 +103.43.104.0/22 +103.43.124.0/22 +103.43.184.0/22 +103.43.192.0/21 +103.43.208.0/22 +103.43.220.0/22 +103.43.224.0/22 +103.43.232.0/22 +103.43.240.0/22 +103.44.56.0/22 +103.44.80.0/22 +103.44.88.0/22 +103.44.120.0/21 +103.44.132.0/22 +103.44.144.0/22 +103.44.152.0/22 +103.44.168.0/22 +103.44.176.0/20 +103.44.192.0/20 +103.44.224.0/22 +103.44.236.0/22 +103.44.240.0/20 +103.45.0.0/18 +103.45.72.0/21 +103.45.80.0/20 +103.45.96.0/19 +103.45.128.0/18 +103.45.192.0/19 +103.45.224.0/22 +103.45.248.0/22 +103.46.0.0/22 +103.46.12.0/22 +103.46.16.0/20 +103.46.32.0/19 +103.46.64.0/18 +103.46.128.0/21 +103.46.136.0/22 +103.46.152.0/21 +103.46.160.0/20 +103.46.176.0/21 +103.46.244.0/22 +103.46.248.0/22 +103.47.4.0/22 +103.47.20.0/22 +103.47.36.0/22 +103.47.40.0/22 +103.47.48.0/22 +103.47.80.0/22 +103.47.96.0/22 +103.47.108.0/22 +103.47.116.0/22 +103.47.120.0/22 +103.47.136.0/21 +103.47.212.0/22 +103.48.20.0/22 +103.48.52.0/22 +103.48.92.0/22 +103.48.144.0/20 +103.48.202.0/23 +103.48.216.0/21 +103.48.224.0/20 +103.48.240.0/21 +103.49.12.0/22 +103.49.20.0/22 +103.49.72.0/21 +103.49.92.0/22 +103.49.96.0/22 +103.49.108.0/22 +103.49.128.0/22 +103.49.176.0/21 +103.49.196.0/22 +103.49.248.0/22 +103.50.36.0/22 +103.50.44.0/22 +103.50.48.0/20 +103.50.64.0/21 +103.50.72.0/22 +103.50.92.0/22 +103.50.108.0/22 +103.50.112.0/20 +103.50.132.0/22 +103.50.136.0/21 +103.50.172.0/22 +103.50.176.0/20 +103.50.192.0/21 +103.50.200.0/22 +103.50.220.0/22 +103.50.224.0/20 +103.50.240.0/21 +103.50.248.0/22 +103.52.40.0/22 +103.52.72.0/21 +103.52.80.0/21 +103.52.96.0/21 +103.52.104.0/22 +103.52.160.0/21 +103.52.172.0/22 +103.52.176.0/22 +103.52.184.0/22 +103.52.196.0/22 +103.53.4.0/22 +103.53.64.0/21 +103.53.92.0/22 +103.53.100.0/22 +103.53.124.0/22 +103.53.128.0/20 +103.53.144.0/22 +103.53.160.0/22 +103.53.180.0/22 +103.53.204.0/22 +103.53.208.0/21 +103.53.216.0/22 +103.53.236.0/22 +103.53.248.0/22 +103.54.8.0/22 +103.54.48.0/22 +103.54.60.0/22 +103.54.160.0/21 +103.54.212.0/22 +103.54.228.0/22 +103.54.240.0/22 +103.55.24.0/22 +103.55.80.0/22 +103.55.120.0/22 +103.55.152.0/22 +103.55.172.0/22 +103.55.204.0/22 +103.55.208.0/22 +103.55.228.0/22 +103.55.236.0/22 +103.55.240.0/22 +103.56.8.0/22 +103.56.16.0/21 +103.56.32.0/22 +103.56.52.0/22 +103.56.56.0/21 +103.56.72.0/21 +103.56.140.0/22 +103.56.152.0/22 +103.56.184.0/22 +103.56.200.0/22 +103.57.12.0/22 +103.57.52.0/22 +103.57.56.0/22 +103.57.76.0/22 +103.57.136.0/22 +103.57.196.0/22 +103.58.24.0/22 +103.59.76.0/22 +103.59.100.0/22 +103.59.112.0/20 +103.59.128.0/22 +103.59.148.0/22 +103.59.164.0/22 +103.60.32.0/22 +103.60.44.0/22 +103.60.164.0/22 +103.60.228.0/22 +103.60.236.0/22 +103.61.60.0/22 +103.61.104.0/22 +103.61.140.0/22 +103.61.152.0/21 +103.61.160.0/22 +103.61.172.0/22 +103.61.176.0/22 +103.61.184.0/21 +103.62.24.0/22 +103.62.52.0/22 +103.62.72.0/21 +103.62.80.0/21 +103.62.88.0/22 +103.62.96.0/19 +103.62.128.0/21 +103.62.156.0/22 +103.62.160.0/19 +103.62.192.0/22 +103.62.204.0/22 +103.62.208.0/20 +103.62.224.0/22 +103.63.32.0/19 +103.63.64.0/20 +103.63.80.0/21 +103.63.88.0/22 +103.63.140.0/22 +103.63.144.0/22 +103.63.152.0/22 +103.63.160.0/20 +103.63.176.0/21 +103.63.184.0/22 +103.63.192.0/20 +103.63.208.0/22 +103.63.240.0/20 +103.64.0.0/21 +103.64.24.0/21 +103.64.32.0/19 +103.64.64.0/18 +103.64.140.0/22 +103.64.144.0/22 +103.64.152.0/21 +103.64.160.0/19 +103.64.192.0/18 +103.65.0.0/20 +103.65.16.0/22 +103.65.36.0/22 +103.65.40.0/22 +103.65.48.0/20 +103.65.64.0/19 +103.65.100.0/22 +103.65.104.0/21 +103.65.112.0/20 +103.65.128.0/21 +103.65.136.0/22 +103.65.144.0/20 +103.65.160.0/20 +103.66.32.0/22 +103.66.40.0/22 +103.66.92.0/22 +103.66.108.0/22 +103.66.200.0/22 +103.66.216.0/22 +103.66.240.0/20 +103.67.0.0/21 +103.67.8.0/22 +103.67.40.0/21 +103.67.48.0/20 +103.67.64.0/18 +103.67.128.0/20 +103.67.144.0/21 +103.67.172.0/22 +103.67.192.0/22 +103.67.212.0/22 +103.67.252.0/22 +103.68.64.0/22 +103.68.88.0/22 +103.68.100.0/22 +103.68.128.0/22 +103.68.192.0/22 +103.69.16.0/22 +103.69.116.0/22 +103.69.132.0/22 +103.69.152.0/22 +103.69.212.0/22 +103.70.8.0/22 +103.70.148.0/22 +103.70.184.0/22 +103.70.220.0/22 +103.70.224.0/22 +103.70.236.0/22 +103.70.252.0/22 +103.71.0.0/22 +103.71.32.0/22 +103.71.48.0/22 +103.71.68.0/22 +103.71.72.0/22 +103.71.80.0/21 +103.71.88.0/22 +103.71.120.0/21 +103.71.128.0/22 +103.71.144.0/22 +103.71.196.0/22 +103.71.200.0/22 +103.71.232.0/22 +103.72.12.0/22 +103.72.16.0/20 +103.72.32.0/20 +103.72.48.0/21 +103.72.112.0/20 +103.72.128.0/21 +103.72.144.0/21 +103.72.172.0/22 +103.72.180.0/22 +103.72.224.0/19 +103.73.0.0/19 +103.73.48.0/22 +103.73.88.0/22 +103.73.96.0/22 +103.73.116.0/22 +103.73.120.0/22 +103.73.128.0/20 +103.73.144.0/22 +103.73.168.0/22 +103.73.176.0/22 +103.73.204.0/22 +103.73.208.0/22 +103.73.240.0/21 +103.73.248.0/22 +103.74.24.0/21 +103.74.32.0/20 +103.74.48.0/22 +103.74.56.0/21 +103.74.80.0/22 +103.74.124.0/22 +103.74.148.0/22 +103.74.152.0/21 +103.74.204.0/22 +103.74.232.0/22 +103.75.16.0/22 +103.75.87.0/24 +103.75.88.0/21 +103.75.104.0/21 +103.75.112.0/22 +103.75.120.0/22 +103.75.128.0/22 +103.75.144.0/22 +103.75.152.0/22 +103.75.236.0/24 +103.76.60.0/22 +103.76.64.0/21 +103.76.72.0/22 +103.76.84.0/22 +103.76.92.0/22 +103.76.104.0/22 +103.76.216.0/21 +103.76.224.0/22 +103.77.28.0/22 +103.77.52.0/22 +103.77.56.0/22 +103.77.72.0/22 +103.77.88.0/21 +103.77.132.0/22 +103.77.148.0/22 +103.77.220.0/22 +103.78.56.0/21 +103.78.64.0/21 +103.78.124.0/22 +103.78.172.0/22 +103.78.176.0/22 +103.78.196.0/22 +103.78.228.0/22 +103.79.24.0/21 +103.79.36.0/22 +103.79.40.0/21 +103.79.52.0/22 +103.79.56.0/21 +103.79.64.0/21 +103.79.80.0/21 +103.79.120.0/22 +103.79.136.0/22 +103.79.188.0/22 +103.79.192.0/20 +103.79.208.0/21 +103.79.240.0/22 +103.80.24.0/21 +103.80.44.0/22 +103.80.72.0/22 +103.80.176.0/21 +103.80.184.0/22 +103.80.192.0/22 +103.80.200.0/22 +103.80.232.0/22 +103.81.4.0/22 +103.81.8.0/22 +103.81.16.0/21 +103.81.44.0/22 +103.81.48.0/22 +103.81.96.0/22 +103.81.120.0/22 +103.81.148.0/22 +103.81.164.0/22 +103.81.168.0/22 +103.81.183.0/24 +103.81.184.0/22 +103.81.200.0/22 +103.81.232.0/22 +103.82.52.0/22 +103.82.60.0/22 +103.82.68.0/22 +103.82.84.0/22 +103.82.104.0/22 +103.82.224.0/22 +103.82.236.0/22 +103.83.44.0/22 +103.83.52.0/22 +103.83.60.0/22 +103.83.64.0/22 +103.83.72.0/22 +103.83.112.0/22 +103.83.120.0/22 +103.83.132.0/22 +103.83.180.0/22 +103.84.0.0/22 +103.84.12.0/22 +103.84.16.0/20 +103.84.48.0/22 +103.84.56.0/22 +103.84.64.0/22 +103.84.72.0/22 +103.84.92.0/22 +103.84.108.0/22 +103.84.136.0/22 +103.85.20.0/22 +103.85.24.0/22 +103.85.44.0/22 +103.85.48.0/21 +103.85.56.0/22 +103.85.84.0/22 +103.85.136.0/22 +103.85.144.0/22 +103.85.164.0/22 +103.85.168.0/21 +103.85.176.0/22 +103.85.224.0/22 +103.86.28.0/22 +103.86.32.0/22 +103.86.44.0/22 +103.86.60.0/22 +103.86.68.0/22 +103.86.80.0/21 +103.86.88.0/22 +103.86.129.0/24 +103.86.204.0/22 +103.86.208.0/20 +103.86.224.0/19 +103.87.0.0/21 +103.87.20.0/22 +103.87.32.0/22 +103.87.72.0/22 +103.87.96.0/22 +103.87.132.0/22 +103.87.180.0/22 +103.87.224.0/22 +103.88.4.0/22 +103.88.8.0/21 +103.88.16.0/21 +103.88.32.0/21 +103.88.60.0/22 +103.88.64.0/22 +103.88.72.0/22 +103.88.96.0/21 +103.88.152.0/23 +103.88.164.0/22 +103.88.176.0/22 +103.88.184.0/21 +103.88.212.0/22 +103.89.28.0/22 +103.89.96.0/20 +103.89.112.0/21 +103.89.148.0/22 +103.89.172.0/22 +103.89.184.0/21 +103.89.192.0/19 +103.89.224.0/21 +103.90.52.0/22 +103.90.92.0/22 +103.90.100.0/22 +103.90.104.0/21 +103.90.112.0/20 +103.90.128.0/21 +103.90.152.0/22 +103.90.168.0/22 +103.90.173.0/24 +103.90.176.0/22 +103.90.188.0/22 +103.90.192.0/22 +103.91.36.0/22 +103.91.40.0/22 +103.91.108.0/22 +103.91.152.0/22 +103.91.176.0/22 +103.91.200.0/22 +103.91.208.0/21 +103.91.219.0/24 +103.91.236.0/22 +103.91.252.0/22 +103.92.0.0/20 +103.92.48.0/20 +103.92.64.0/20 +103.92.80.0/22 +103.92.86.0/24 +103.92.88.0/22 +103.92.108.0/22 +103.92.124.0/22 +103.92.128.0/24 +103.92.132.0/22 +103.92.156.0/22 +103.92.164.0/22 +103.92.168.0/21 +103.92.176.0/20 +103.92.192.0/22 +103.92.236.0/22 +103.92.240.0/20 +103.93.0.0/21 +103.93.28.0/22 +103.93.76.0/22 +103.93.84.0/22 +103.93.121.0/24 +103.93.152.0/22 +103.93.180.0/22 +103.93.204.0/22 +103.94.12.0/22 +103.94.20.0/22 +103.94.28.0/22 +103.94.32.0/20 +103.94.72.0/22 +103.94.88.0/22 +103.94.116.0/22 +103.94.160.0/22 +103.94.180.0/22 +103.94.200.0/22 +103.95.28.0/22 +103.95.52.0/22 +103.95.64.0/21 +103.95.88.0/21 +103.95.116.0/22 +103.95.128.0/22 +103.95.136.0/21 +103.95.144.0/22 +103.95.152.0/22 +103.95.207.0/24 +103.95.216.0/21 +103.95.224.0/22 +103.95.236.0/22 +103.95.240.0/20 +103.96.0.0/22 +103.96.8.0/22 +103.96.80.0/22 +103.96.124.0/22 +103.96.136.0/22 +103.96.140.0/24 +103.96.148.0/22 +103.96.152.0/21 +103.96.160.0/19 +103.96.192.0/20 +103.96.208.0/21 +103.96.216.0/22 +103.97.8.0/21 +103.97.16.0/20 +103.97.32.0/21 +103.97.40.0/22 +103.97.56.0/21 +103.97.64.0/21 +103.97.72.0/22 +103.97.80.0/22 +103.97.112.0/21 +103.97.128.0/22 +103.97.144.0/21 +103.97.188.0/22 +103.97.192.0/22 +103.97.224.0/22 +103.97.228.0/23 +103.98.28.0/23 +103.98.40.0/21 +103.98.48.0/22 +103.98.56.0/22 +103.98.80.0/22 +103.98.88.0/21 +103.98.96.0/21 +103.98.124.0/22 +103.98.136.0/21 +103.98.144.0/22 +103.98.164.0/22 +103.98.168.0/22 +103.98.180.0/22 +103.98.196.0/22 +103.98.216.0/21 +103.98.224.0/21 +103.98.232.0/22 +103.98.240.0/20 +103.99.40.0/23 +103.99.52.0/22 +103.99.56.0/21 +103.99.76.0/22 +103.99.104.0/22 +103.99.116.0/22 +103.99.120.0/22 +103.99.132.0/22 +103.99.136.0/21 +103.99.144.0/22 +103.99.152.0/22 +103.99.220.0/22 +103.99.232.0/21 +103.100.0.0/22 +103.100.32.0/22 +103.100.40.0/22 +103.100.48.0/20 +103.100.64.0/21 +103.100.88.0/22 +103.100.116.0/22 +103.100.140.0/22 +103.100.144.0/22 +103.100.236.0/22 +103.100.240.0/22 +103.100.248.0/21 +103.101.4.0/22 +103.101.8.0/21 +103.101.28.0/22 +103.101.60.0/22 +103.101.120.0/21 +103.101.144.0/21 +103.101.153.0/24 +103.101.180.0/22 +103.101.184.0/22 +103.102.76.0/22 +103.102.80.0/22 +103.102.163.0/24 +103.102.168.0/21 +103.102.180.0/22 +103.102.184.0/21 +103.102.192.0/21 +103.102.200.0/22 +103.102.208.0/21 +103.103.12.0/22 +103.103.16.0/22 +103.103.36.0/22 +103.103.68.0/22 +103.103.72.0/22 +103.103.176.0/22 +103.103.188.0/22 +103.103.200.0/21 +103.103.220.0/22 +103.103.224.0/21 +103.103.232.0/22 +103.103.248.0/21 +103.104.0.0/21 +103.104.36.0/22 +103.104.40.0/22 +103.104.64.0/22 +103.104.104.0/22 +103.104.152.0/22 +103.104.168.0/21 +103.104.188.0/22 +103.104.198.0/23 +103.104.252.0/22 +103.105.0.0/21 +103.105.12.0/22 +103.105.16.0/22 +103.105.23.0/24 +103.105.56.0/21 +103.105.116.0/22 +103.105.132.0/22 +103.105.180.0/22 +103.105.184.0/22 +103.105.200.0/21 +103.105.220.0/22 +103.106.36.0/22 +103.106.40.0/21 +103.106.60.0/22 +103.106.68.0/22 +103.106.96.0/22 +103.106.120.0/22 +103.106.128.0/21 +103.106.160.0/22 +103.106.188.0/22 +103.106.196.0/22 +103.106.202.0/23 +103.106.212.0/22 +103.106.244.0/22 +103.106.252.0/22 +103.107.0.0/22 +103.107.8.0/24 +103.107.28.0/22 +103.107.32.0/22 +103.107.44.0/22 +103.107.72.0/22 +103.107.108.0/22 +103.107.164.0/22 +103.107.168.0/22 +103.107.188.0/22 +103.107.192.0/22 +103.107.208.0/20 +103.108.52.0/22 +103.108.64.0/22 +103.108.160.0/21 +103.108.184.0/23 +103.108.188.0/23 +103.108.192.0/21 +103.108.208.0/21 +103.108.224.0/22 +103.108.244.0/22 +103.108.251.0/24 +103.109.20.0/22 +103.109.48.0/22 +103.109.88.0/22 +103.109.106.0/23 +103.109.248.0/22 +103.110.32.0/22 +103.110.80.0/23 +103.110.92.0/22 +103.110.100.0/22 +103.110.116.0/22 +103.110.127.0/24 +103.110.128.0/23 +103.110.131.0/24 +103.110.132.0/22 +103.110.136.0/22 +103.110.152.0/21 +103.110.188.0/22 +103.110.204.0/22 +103.111.38.0/23 +103.111.64.0/22 +103.111.172.0/22 +103.111.252.0/22 +103.112.28.0/22 +103.112.68.0/22 +103.112.72.0/22 +103.112.88.0/21 +103.112.96.0/22 +103.112.108.0/22 +103.112.112.0/21 +103.112.140.0/22 +103.112.172.0/22 +103.112.184.0/22 +103.112.208.0/22 +103.113.4.0/22 +103.113.92.0/22 +103.113.144.0/22 +103.113.220.0/22 +103.113.232.0/21 +103.114.4.0/22 +103.114.28.0/22 +103.114.68.0/22 +103.114.72.0/22 +103.114.100.0/22 +103.114.132.0/22 +103.114.148.0/22 +103.114.156.0/22 +103.114.176.0/22 +103.114.212.0/22 +103.114.236.0/22 +103.114.240.0/22 +103.115.16.0/22 +103.115.40.0/21 +103.115.48.0/20 +103.115.64.0/21 +103.115.92.0/22 +103.115.120.0/22 +103.115.148.0/22 +103.115.204.0/23 +103.115.248.0/22 +103.116.20.0/22 +103.116.40.0/22 +103.116.64.0/22 +103.116.72.0/21 +103.116.92.0/22 +103.116.120.0/22 +103.116.128.0/22 +103.116.132.0/23 +103.116.148.0/22 +103.116.184.0/22 +103.116.206.0/23 +103.116.220.0/22 +103.116.224.0/21 +103.117.16.0/22 +103.117.72.0/22 +103.117.88.0/22 +103.117.132.0/22 +103.117.136.0/22 +103.117.188.0/22 +103.117.220.0/22 +103.118.19.0/24 +103.118.36.0/22 +103.118.52.0/22 +103.118.56.0/21 +103.118.64.0/21 +103.118.72.0/22 +103.118.88.0/22 +103.118.173.0/24 +103.118.192.0/19 +103.118.240.0/20 +103.119.0.0/22 +103.119.12.0/22 +103.119.16.0/22 +103.119.28.0/22 +103.119.44.0/22 +103.119.104.0/22 +103.119.115.0/24 +103.119.156.0/22 +103.119.180.0/22 +103.119.200.0/22 +103.119.224.0/22 +103.120.52.0/22 +103.120.72.0/22 +103.120.76.0/24 +103.120.88.0/22 +103.120.96.0/21 +103.120.140.0/22 +103.120.196.0/22 +103.120.224.0/22 +103.121.52.0/22 +103.121.92.0/22 +103.121.160.0/21 +103.121.250.0/24 +103.121.252.0/22 +103.129.52.0/22 +103.129.148.0/22 +103.192.0.0/19 +103.192.48.0/21 +103.192.56.0/22 +103.192.84.0/22 +103.192.88.0/21 +103.192.96.0/20 +103.192.112.0/22 +103.192.128.0/20 +103.192.144.0/22 +103.192.164.0/22 +103.192.188.0/22 +103.192.208.0/21 +103.192.216.0/22 +103.192.252.0/22 +103.193.40.0/21 +103.193.120.0/21 +103.193.140.0/22 +103.193.144.0/21 +103.193.160.0/22 +103.193.188.0/22 +103.193.192.0/22 +103.193.212.0/22 +103.193.216.0/21 +103.193.224.0/20 +103.193.240.0/22 +103.194.16.0/22 +103.194.230.0/23 +103.195.104.0/22 +103.195.112.0/22 +103.195.136.0/22 +103.195.148.0/22 +103.195.152.0/22 +103.195.160.0/22 +103.195.192.0/22 +103.196.60.0/22 +103.196.64.0/22 +103.196.72.0/22 +103.196.88.0/21 +103.196.96.0/22 +103.196.168.0/22 +103.196.185.0/24 +103.196.186.0/23 +103.196.204.0/22 +103.197.180.0/22 +103.197.228.0/22 +103.197.253.0/24 +103.197.254.0/23 +103.198.20.0/22 +103.198.60.0/22 +103.198.64.0/22 +103.198.72.0/22 +103.198.124.0/22 +103.198.156.0/22 +103.198.180.0/22 +103.198.196.0/22 +103.198.200.0/22 +103.198.216.0/21 +103.198.224.0/20 +103.198.240.0/21 +103.199.164.0/22 +103.199.196.0/22 +103.199.228.0/22 +103.199.248.0/21 +103.200.28.0/22 +103.200.32.0/22 +103.200.52.0/22 +103.200.64.0/21 +103.200.136.0/21 +103.200.144.0/20 +103.200.160.0/19 +103.200.192.0/22 +103.200.220.0/22 +103.200.224.0/19 +103.201.0.0/20 +103.201.16.0/21 +103.201.28.0/22 +103.201.32.0/19 +103.201.64.0/22 +103.201.76.0/22 +103.201.80.0/20 +103.201.96.0/20 +103.201.112.0/21 +103.201.120.0/22 +103.201.152.0/21 +103.201.160.0/19 +103.201.192.0/18 +103.202.0.0/19 +103.202.32.0/20 +103.202.56.0/21 +103.202.64.0/18 +103.202.128.0/20 +103.202.144.0/22 +103.202.152.0/21 +103.202.160.0/19 +103.202.192.0/20 +103.202.212.0/22 +103.202.228.0/22 +103.202.236.0/22 +103.202.240.0/20 +103.203.0.0/19 +103.203.32.0/22 +103.203.52.0/22 +103.203.56.0/22 +103.203.96.0/19 +103.203.128.0/22 +103.203.140.0/22 +103.203.164.0/22 +103.203.168.0/22 +103.203.192.0/22 +103.203.200.0/22 +103.203.212.0/22 +103.203.216.0/22 +103.204.24.0/22 +103.204.72.0/22 +103.204.88.0/22 +103.204.112.0/22 +103.204.136.0/21 +103.204.144.0/21 +103.204.152.0/22 +103.204.196.0/22 +103.204.232.0/21 +103.205.4.0/22 +103.205.8.0/22 +103.205.40.0/21 +103.205.52.0/22 +103.205.108.0/22 +103.205.116.0/22 +103.205.120.0/22 +103.205.136.0/22 +103.205.162.0/24 +103.205.188.0/22 +103.205.192.0/21 +103.205.200.0/22 +103.205.236.0/22 +103.205.248.0/21 +103.206.0.0/22 +103.206.44.0/22 +103.206.108.0/22 +103.206.148.0/22 +103.207.48.0/22 +103.207.104.0/22 +103.207.164.0/22 +103.207.184.0/21 +103.207.192.0/20 +103.207.208.0/21 +103.207.220.0/22 +103.207.228.0/22 +103.207.232.0/22 +103.208.12.0/22 +103.208.16.0/22 +103.208.28.0/22 +103.208.40.0/21 +103.208.48.0/22 +103.208.148.0/22 +103.209.112.0/22 +103.209.136.0/22 +103.209.200.0/22 +103.209.208.0/22 +103.209.216.0/22 +103.210.0.0/22 +103.210.20.0/22 +103.210.96.0/22 +103.210.156.0/22 +103.210.160.0/19 +103.210.216.0/22 +103.211.44.0/22 +103.211.96.0/21 +103.211.156.0/22 +103.211.164.0/22 +103.211.168.0/22 +103.211.192.0/22 +103.211.220.0/22 +103.211.224.0/22 +103.211.248.0/22 +103.212.0.0/20 +103.212.32.0/22 +103.212.44.0/22 +103.212.48.0/22 +103.212.84.0/22 +103.212.100.0/22 +103.212.104.0/21 +103.212.148.0/22 +103.212.164.0/22 +103.212.196.0/22 +103.212.200.0/22 +103.212.228.0/22 +103.212.252.0/22 +103.213.40.0/21 +103.213.48.0/20 +103.213.64.0/19 +103.213.96.0/22 +103.213.132.0/22 +103.213.136.0/21 +103.213.144.0/20 +103.213.160.0/19 +103.213.248.0/21 +103.214.32.0/22 +103.214.48.0/22 +103.214.84.0/22 +103.214.168.0/22 +103.214.212.0/22 +103.214.240.0/21 +103.215.28.0/22 +103.215.32.0/21 +103.215.44.0/22 +103.215.48.0/22 +103.215.100.0/22 +103.215.104.0/21 +103.215.116.0/22 +103.215.120.0/22 +103.215.140.0/22 +103.215.184.0/22 +103.215.228.0/22 +103.216.4.0/22 +103.216.8.0/21 +103.216.16.0/20 +103.216.32.0/20 +103.216.64.0/22 +103.216.108.0/22 +103.216.136.0/22 +103.216.152.0/22 +103.216.224.0/21 +103.216.240.0/20 +103.217.0.0/18 +103.217.168.0/22 +103.217.180.0/22 +103.217.184.0/21 +103.217.192.0/20 +103.218.0.0/22 +103.218.8.0/21 +103.218.16.0/21 +103.218.28.0/22 +103.218.32.0/19 +103.218.64.0/19 +103.218.184.0/22 +103.218.192.0/20 +103.218.208.0/21 +103.218.216.0/22 +103.219.24.0/21 +103.219.32.0/21 +103.219.64.0/22 +103.219.84.0/22 +103.219.88.0/21 +103.219.96.0/21 +103.219.176.0/22 +103.219.184.0/22 +103.220.48.0/20 +103.220.64.0/22 +103.220.92.0/22 +103.220.96.0/20 +103.220.116.0/22 +103.220.120.0/21 +103.220.128.0/20 +103.220.144.0/21 +103.220.152.0/22 +103.220.160.0/19 +103.220.192.0/21 +103.220.200.0/22 +103.220.240.0/20 +103.221.0.0/19 +103.221.32.0/20 +103.221.48.0/22 +103.221.88.0/21 +103.221.96.0/19 +103.221.128.0/18 +103.221.192.0/20 +103.222.0.0/20 +103.222.16.0/22 +103.222.24.0/21 +103.222.32.0/19 +103.222.64.0/18 +103.222.128.0/18 +103.222.192.0/19 +103.222.224.0/21 +103.222.232.0/22 +103.222.240.0/21 +103.223.16.0/20 +103.223.32.0/19 +103.223.64.0/18 +103.223.128.0/21 +103.223.140.0/22 +103.223.144.0/20 +103.223.160.0/20 +103.223.176.0/21 +103.223.188.0/22 +103.223.192.0/18 +103.224.0.0/22 +103.224.40.0/21 +103.224.60.0/22 +103.224.80.0/22 +103.224.220.0/22 +103.224.224.0/21 +103.224.232.0/22 +103.225.84.0/22 +103.226.16.0/22 +103.226.40.0/22 +103.226.56.0/21 +103.226.80.0/22 +103.226.116.0/22 +103.226.132.0/22 +103.226.156.0/22 +103.226.180.0/22 +103.226.196.0/22 +103.227.48.0/22 +103.227.72.0/21 +103.227.80.0/22 +103.227.100.0/22 +103.227.120.0/22 +103.227.132.0/22 +103.227.136.0/22 +103.227.196.0/22 +103.227.204.0/22 +103.227.212.0/22 +103.227.228.0/22 +103.228.12.0/22 +103.228.28.0/22 +103.228.68.0/22 +103.228.88.0/22 +103.228.128.0/22 +103.228.136.0/22 +103.228.160.0/22 +103.228.176.0/22 +103.228.204.0/22 +103.228.208.0/22 +103.228.228.0/22 +103.228.232.0/22 +103.229.20.0/22 +103.229.60.0/22 +103.229.136.0/22 +103.229.148.0/22 +103.229.172.0/22 +103.229.212.0/22 +103.229.216.0/21 +103.229.228.0/22 +103.229.236.0/22 +103.229.240.0/22 +103.230.0.0/22 +103.230.28.0/22 +103.230.40.0/21 +103.230.96.0/22 +103.230.196.0/22 +103.230.200.0/21 +103.230.212.0/22 +103.230.236.0/22 +103.231.16.0/21 +103.231.64.0/21 +103.231.144.0/22 +103.231.180.0/22 +103.231.184.0/22 +103.231.244.0/22 +103.232.4.0/22 +103.232.144.0/22 +103.232.188.0/22 +103.232.212.0/22 +103.233.4.0/22 +103.233.44.0/22 +103.233.52.0/22 +103.233.104.0/22 +103.233.128.0/22 +103.233.136.0/22 +103.233.228.0/22 +103.234.0.0/22 +103.234.20.0/22 +103.234.56.0/22 +103.234.124.0/22 +103.234.128.0/22 +103.234.172.0/22 +103.234.180.0/22 +103.234.244.0/22 +103.235.16.0/22 +103.235.48.0/22 +103.235.56.0/21 +103.235.80.0/21 +103.235.128.0/20 +103.235.144.0/21 +103.235.184.0/22 +103.235.192.0/22 +103.235.200.0/22 +103.235.220.0/22 +103.235.224.0/19 +103.236.0.0/18 +103.236.64.0/19 +103.236.96.0/22 +103.236.120.0/22 +103.236.184.0/22 +103.236.220.0/22 +103.236.232.0/22 +103.236.240.0/20 +103.237.0.0/20 +103.237.24.0/21 +103.237.68.0/22 +103.237.88.0/22 +103.237.152.0/22 +103.237.176.0/20 +103.237.192.0/18 +103.238.0.0/21 +103.238.16.0/20 +103.238.32.0/20 +103.238.48.0/21 +103.238.56.0/22 +103.238.88.0/21 +103.238.96.0/22 +103.238.132.0/22 +103.238.140.0/22 +103.238.144.0/22 +103.238.160.0/19 +103.238.196.0/22 +103.238.204.0/22 +103.238.252.0/22 +103.239.0.0/22 +103.239.44.0/22 +103.239.68.0/22 +103.239.96.0/22 +103.239.152.0/21 +103.239.176.0/21 +103.239.184.0/22 +103.239.192.0/21 +103.239.204.0/22 +103.239.208.0/22 +103.239.224.0/22 +103.239.244.0/22 +103.240.16.0/22 +103.240.36.0/22 +103.240.72.0/22 +103.240.84.0/22 +103.240.124.0/22 +103.240.156.0/22 +103.240.172.0/22 +103.240.188.0/22 +103.240.244.0/22 +103.241.12.0/22 +103.241.72.0/22 +103.241.92.0/22 +103.241.96.0/22 +103.241.160.0/22 +103.241.184.0/21 +103.241.220.0/22 +103.242.64.0/22 +103.242.128.0/21 +103.242.160.0/22 +103.242.168.0/21 +103.242.176.0/22 +103.242.200.0/22 +103.242.212.0/22 +103.242.220.0/22 +103.242.240.0/22 +103.243.136.0/22 +103.243.252.0/22 +103.244.16.0/22 +103.244.58.0/23 +103.244.60.0/22 +103.244.64.0/20 +103.244.80.0/21 +103.244.116.0/22 +103.244.164.0/22 +103.244.232.0/22 +103.244.252.0/22 +103.245.23.0/24 +103.245.52.0/22 +103.245.60.0/22 +103.245.80.0/22 +103.245.124.0/22 +103.245.128.0/22 +103.246.8.0/21 +103.246.120.0/21 +103.246.132.0/22 +103.246.152.0/21 +103.247.168.0/21 +103.247.176.0/22 +103.247.200.0/22 +103.247.212.0/22 +103.248.0.0/23 +103.248.64.0/22 +103.248.100.0/22 +103.248.124.0/22 +103.248.152.0/22 +103.248.168.0/22 +103.248.192.0/22 +103.248.212.0/22 +103.248.220.0/22 +103.248.224.0/21 +103.249.8.0/21 +103.249.52.0/22 +103.249.104.0/22 +103.249.128.0/22 +103.249.136.0/22 +103.249.144.0/22 +103.249.164.0/22 +103.249.168.0/21 +103.249.176.0/22 +103.249.188.0/22 +103.249.192.0/22 +103.249.244.0/22 +103.249.252.0/22 +103.250.32.0/22 +103.250.104.0/22 +103.250.124.0/22 +103.250.180.0/22 +103.250.192.0/22 +103.250.216.0/22 +103.250.224.0/22 +103.250.236.0/22 +103.250.248.0/21 +103.251.32.0/21 +103.251.84.0/22 +103.251.96.0/22 +103.251.124.0/22 +103.251.128.0/22 +103.251.160.0/22 +103.251.192.0/22 +103.251.204.0/22 +103.251.236.0/22 +103.251.240.0/22 +103.252.28.0/22 +103.252.36.0/22 +103.252.64.0/22 +103.252.96.0/22 +103.252.104.0/22 +103.252.172.0/22 +103.252.204.0/22 +103.252.208.0/22 +103.252.232.0/22 +103.252.248.0/22 +103.253.4.0/22 +103.253.60.0/22 +103.253.204.0/22 +103.253.220.0/22 +103.253.224.0/22 +103.253.232.0/22 +103.254.8.0/22 +103.254.20.0/22 +103.254.64.0/20 +103.254.112.0/22 +103.254.176.0/22 +103.254.188.0/22 +103.254.196.0/24 +103.254.220.0/22 +103.255.56.0/22 +103.255.68.0/22 +103.255.88.0/21 +103.255.136.0/21 +103.255.184.0/22 +103.255.200.0/22 +103.255.208.0/21 +103.255.228.0/22 +104.166.103.0/24 +104.222.196.0/24 +106.0.0.0/24 +106.0.2.0/23 +106.0.4.0/22 +106.0.8.0/21 +106.0.16.0/20 +106.0.44.0/22 +106.0.64.0/18 +106.2.0.0/15 +106.4.0.0/14 +106.8.0.0/15 +106.11.0.0/16 +106.12.0.0/14 +106.16.0.0/12 +106.32.0.0/12 +106.48.0.0/15 +106.50.0.0/16 +106.52.0.0/14 +106.56.0.0/13 +106.74.0.0/15 +106.80.0.0/12 +106.108.0.0/14 +106.112.0.0/12 +106.224.0.0/12 +109.71.4.0/24 +109.244.0.0/16 +110.6.0.0/15 +110.16.0.0/14 +110.34.40.0/21 +110.40.0.0/14 +110.44.12.0/22 +110.44.144.0/20 +110.48.0.0/16 +110.51.0.0/16 +110.52.0.0/15 +110.56.0.0/13 +110.64.0.0/15 +110.72.0.0/15 +110.75.0.0/16 +110.76.0.0/18 +110.76.132.0/22 +110.76.156.0/22 +110.76.184.0/22 +110.76.192.0/18 +110.77.0.0/17 +110.80.0.0/13 +110.88.0.0/14 +110.92.68.0/22 +110.93.32.0/19 +110.94.0.0/15 +110.96.0.0/11 +110.152.0.0/14 +110.156.0.0/15 +110.165.32.0/19 +110.166.0.0/15 +110.172.192.0/18 +110.173.0.0/19 +110.173.32.0/20 +110.173.64.0/18 +110.173.192.0/19 +110.176.0.0/12 +110.192.0.0/11 +110.228.0.0/14 +110.232.32.0/19 +110.236.0.0/15 +110.240.0.0/12 +111.0.0.0/10 +111.66.0.0/16 +111.67.192.0/20 +111.68.64.0/19 +111.72.0.0/13 +111.85.0.0/16 +111.91.192.0/19 +111.92.248.0/21 +111.112.0.0/14 +111.116.0.0/15 +111.118.200.0/21 +111.119.64.0/18 +111.119.128.0/19 +111.120.0.0/14 +111.124.0.0/16 +111.126.0.0/15 +111.128.0.0/11 +111.160.0.0/13 +111.170.0.0/16 +111.172.0.0/14 +111.176.0.0/13 +111.186.0.0/15 +111.192.0.0/12 +111.208.0.0/13 +111.221.28.0/24 +111.221.128.0/17 +111.222.0.0/16 +111.223.4.0/22 +111.223.8.0/21 +111.223.16.0/22 +111.223.240.0/22 +111.223.248.0/22 +111.224.0.0/13 +111.235.96.0/19 +111.235.156.0/22 +111.235.160.0/19 +112.0.0.0/10 +112.64.0.0/14 +112.73.0.0/16 +112.74.0.0/15 +112.80.0.0/12 +112.96.0.0/13 +112.109.128.0/17 +112.111.0.0/16 +112.112.0.0/14 +112.116.0.0/15 +112.122.0.0/15 +112.124.0.0/14 +112.128.0.0/14 +112.132.0.0/16 +112.137.48.0/21 +112.192.0.0/14 +112.224.0.0/11 +113.0.0.0/13 +113.8.0.0/15 +113.11.192.0/19 +113.12.0.0/14 +113.16.0.0/15 +113.18.0.0/16 +113.21.232.0/21 +113.24.0.0/14 +113.31.0.0/16 +113.44.0.0/14 +113.48.0.0/14 +113.52.160.0/19 +113.52.228.0/22 +113.54.0.0/15 +113.56.0.0/15 +113.58.0.0/16 +113.59.0.0/17 +113.59.224.0/22 +113.62.0.0/15 +113.64.0.0/10 +113.128.0.0/15 +113.130.96.0/20 +113.130.112.0/21 +113.132.0.0/14 +113.136.0.0/13 +113.194.0.0/15 +113.197.100.0/22 +113.197.104.0/22 +113.200.0.0/15 +113.202.0.0/16 +113.204.0.0/14 +113.208.96.0/19 +113.208.128.0/17 +113.209.0.0/16 +113.212.0.0/18 +113.212.100.0/22 +113.212.184.0/21 +113.213.0.0/17 +113.214.0.0/15 +113.218.0.0/15 +113.220.0.0/14 +113.224.0.0/12 +113.240.0.0/13 +113.248.0.0/14 +114.28.0.0/16 +114.31.64.0/21 +114.54.0.0/15 +114.60.0.0/14 +114.64.0.0/14 +114.68.0.0/16 +114.79.64.0/18 +114.80.0.0/12 +114.96.0.0/13 +114.104.0.0/14 +114.110.0.0/20 +114.110.64.0/18 +114.111.0.0/19 +114.111.160.0/19 +114.112.0.0/13 +114.132.0.0/16 +114.135.0.0/16 +114.138.0.0/15 +114.141.64.0/21 +114.141.80.0/21 +114.141.128.0/18 +114.196.0.0/15 +114.198.248.0/21 +114.208.0.0/12 +114.224.0.0/11 +115.24.0.0/14 +115.28.0.0/15 +115.31.64.0/20 +115.32.0.0/14 +115.42.56.0/22 +115.44.0.0/14 +115.48.0.0/12 +115.69.64.0/20 +115.84.0.0/18 +115.84.192.0/19 +115.85.192.0/18 +115.100.0.0/14 +115.104.0.0/14 +115.120.0.0/14 +115.124.16.0/20 +115.148.0.0/14 +115.152.0.0/13 +115.166.64.0/19 +115.168.0.0/13 +115.180.0.0/14 +115.187.0.0/20 +115.190.0.0/15 +115.192.0.0/11 +115.224.0.0/12 +116.0.8.0/21 +116.0.24.0/21 +116.1.0.0/16 +116.2.0.0/15 +116.4.0.0/14 +116.8.0.0/14 +116.13.0.0/16 +116.16.0.0/12 +116.50.0.0/20 +116.52.0.0/14 +116.56.0.0/15 +116.58.128.0/20 +116.58.208.0/20 +116.60.0.0/14 +116.66.0.0/17 +116.66.176.0/22 +116.68.136.0/21 +116.68.176.0/21 +116.69.0.0/16 +116.70.0.0/17 +116.76.0.0/14 +116.85.0.0/16 +116.89.144.0/20 +116.89.240.0/22 +116.90.80.0/20 +116.90.184.0/21 +116.95.0.0/16 +116.112.0.0/14 +116.116.0.0/15 +116.128.0.0/10 +116.192.0.0/16 +116.193.16.0/20 +116.193.32.0/19 +116.193.152.0/22 +116.193.164.0/22 +116.193.176.0/21 +116.194.0.0/15 +116.196.0.0/16 +116.197.160.0/21 +116.197.180.0/23 +116.198.0.0/16 +116.199.0.0/17 +116.199.128.0/19 +116.204.0.0/15 +116.206.92.0/22 +116.206.100.0/22 +116.206.176.0/22 +116.207.0.0/16 +116.208.0.0/14 +116.212.160.0/20 +116.213.44.0/22 +116.213.64.0/18 +116.213.128.0/17 +116.214.32.0/19 +116.214.64.0/20 +116.214.128.0/17 +116.215.0.0/16 +116.216.0.0/14 +116.224.0.0/12 +116.242.0.0/15 +116.244.0.0/14 +116.248.0.0/15 +116.251.64.0/18 +116.252.0.0/15 +116.254.104.0/21 +116.254.128.0/17 +116.255.128.0/17 +117.8.0.0/13 +117.21.0.0/16 +117.22.0.0/15 +117.24.0.0/13 +117.32.0.0/13 +117.40.0.0/14 +117.44.0.0/15 +117.48.0.0/14 +117.53.48.0/20 +117.53.176.0/20 +117.57.0.0/16 +117.58.0.0/17 +117.59.0.0/16 +117.60.0.0/14 +117.64.0.0/13 +117.72.0.0/15 +117.74.64.0/19 +117.74.128.0/17 +117.75.0.0/16 +117.76.0.0/14 +117.80.0.0/12 +117.100.0.0/15 +117.103.16.0/20 +117.103.40.0/21 +117.103.72.0/21 +117.103.128.0/20 +117.104.168.0/21 +117.106.0.0/15 +117.112.0.0/13 +117.120.64.0/18 +117.120.128.0/17 +117.121.0.0/17 +117.121.128.0/18 +117.121.192.0/21 +117.122.128.0/17 +117.124.0.0/14 +117.128.0.0/10 +118.24.0.0/15 +118.26.0.0/16 +118.28.0.0/14 +118.64.0.0/15 +118.66.0.0/16 +118.67.112.0/20 +118.72.0.0/13 +118.80.0.0/15 +118.84.0.0/15 +118.88.32.0/19 +118.88.64.0/18 +118.88.128.0/17 +118.89.0.0/16 +118.91.240.0/20 +118.102.16.0/20 +118.102.32.0/21 +118.103.164.0/22 +118.103.168.0/21 +118.103.176.0/22 +118.103.245.0/24 +118.103.246.0/23 +118.107.180.0/22 +118.112.0.0/13 +118.120.0.0/14 +118.124.0.0/15 +118.126.0.0/16 +118.127.128.0/19 +118.132.0.0/14 +118.144.0.0/14 +118.178.0.0/16 +118.180.0.0/14 +118.184.0.0/16 +118.186.0.0/15 +118.188.0.0/16 +118.190.0.0/15 +118.192.0.0/16 +118.193.0.0/20 +118.193.32.0/19 +118.193.64.0/20 +118.193.96.0/19 +118.193.128.0/17 +118.194.0.0/15 +118.196.0.0/14 +118.202.0.0/15 +118.204.0.0/14 +118.212.0.0/15 +118.215.192.0/18 +118.224.0.0/14 +118.228.0.0/15 +118.230.0.0/16 +118.239.0.0/16 +118.242.0.0/16 +118.244.0.0/14 +118.248.0.0/13 +119.0.0.0/15 +119.2.0.0/19 +119.2.128.0/17 +119.3.0.0/16 +119.4.0.0/14 +119.8.0.0/16 +119.10.0.0/17 +119.15.136.0/21 +119.16.0.0/16 +119.18.192.0/20 +119.18.208.0/21 +119.18.224.0/19 +119.19.0.0/16 +119.20.0.0/14 +119.27.64.0/18 +119.27.128.0/17 +119.28.0.0/15 +119.30.48.0/20 +119.31.192.0/19 +119.32.0.0/13 +119.40.0.0/18 +119.40.64.0/20 +119.40.128.0/17 +119.41.0.0/16 +119.42.0.0/19 +119.42.52.0/22 +119.42.128.0/20 +119.42.224.0/19 +119.44.0.0/15 +119.48.0.0/13 +119.57.0.0/16 +119.58.0.0/16 +119.59.128.0/17 +119.60.0.0/15 +119.62.0.0/16 +119.63.32.0/19 +119.75.208.0/20 +119.78.0.0/15 +119.80.0.0/16 +119.82.208.0/20 +119.84.0.0/14 +119.88.0.0/14 +119.96.0.0/13 +119.108.0.0/15 +119.112.0.0/12 +119.128.0.0/12 +119.144.0.0/14 +119.148.160.0/19 +119.151.192.0/18 +119.160.200.0/21 +119.161.120.0/21 +119.161.128.0/17 +119.162.0.0/15 +119.164.0.0/14 +119.176.0.0/12 +119.232.0.0/15 +119.235.128.0/18 +119.248.0.0/14 +119.252.96.0/21 +119.252.240.0/20 +119.253.0.0/16 +119.254.0.0/15 +120.0.0.0/12 +120.24.0.0/14 +120.30.0.0/15 +120.32.0.0/12 +120.48.0.0/15 +120.52.0.0/14 +120.64.0.0/13 +120.72.32.0/19 +120.72.128.0/17 +120.76.0.0/14 +120.80.0.0/13 +120.88.8.0/21 +120.90.0.0/15 +120.92.0.0/16 +120.94.0.0/15 +120.128.0.0/13 +120.136.16.0/21 +120.136.128.0/18 +120.137.0.0/17 +120.143.128.0/19 +120.192.0.0/10 +121.0.8.0/21 +121.0.16.0/20 +121.4.0.0/15 +121.8.0.0/13 +121.16.0.0/12 +121.32.0.0/13 +121.40.0.0/14 +121.46.0.0/18 +121.46.76.0/22 +121.46.128.0/17 +121.47.0.0/16 +121.48.0.0/15 +121.50.8.0/21 +121.51.0.0/16 +121.52.160.0/19 +121.52.208.0/20 +121.52.224.0/19 +121.54.176.0/21 +121.54.188.0/22 +121.55.0.0/18 +121.56.0.0/15 +121.58.0.0/17 +121.58.136.0/21 +121.58.144.0/20 +121.58.160.0/21 +121.59.0.0/16 +121.60.0.0/14 +121.68.0.0/14 +121.76.0.0/15 +121.79.128.0/18 +121.89.0.0/16 +121.100.128.0/17 +121.101.0.0/18 +121.101.208.0/20 +121.192.0.0/13 +121.200.192.0/21 +121.201.0.0/16 +121.204.0.0/14 +121.224.0.0/12 +121.248.0.0/14 +121.255.0.0/16 +122.0.64.0/18 +122.0.128.0/17 +122.4.0.0/14 +122.8.0.0/15 +122.10.128.0/17 +122.11.0.0/17 +122.12.0.0/15 +122.14.0.0/16 +122.48.0.0/16 +122.49.0.0/18 +122.51.0.0/16 +122.64.0.0/11 +122.96.0.0/15 +122.98.144.0/20 +122.98.160.0/21 +122.98.172.0/22 +122.98.176.0/20 +122.98.192.0/21 +122.98.232.0/21 +122.98.240.0/20 +122.102.0.0/20 +122.102.64.0/19 +122.112.0.0/14 +122.119.0.0/16 +122.128.100.0/22 +122.128.120.0/21 +122.136.0.0/13 +122.144.128.0/17 +122.152.192.0/18 +122.156.0.0/14 +122.188.0.0/14 +122.192.0.0/14 +122.198.0.0/16 +122.200.40.0/21 +122.200.64.0/18 +122.201.48.0/20 +122.204.0.0/14 +122.224.0.0/12 +122.240.0.0/13 +122.248.24.0/21 +122.248.48.0/20 +122.255.64.0/21 +123.0.128.0/18 +123.4.0.0/14 +123.8.0.0/13 +123.49.128.0/17 +123.50.160.0/19 +123.52.0.0/14 +123.56.0.0/14 +123.60.0.0/15 +123.62.0.0/16 +123.64.0.0/11 +123.96.0.0/15 +123.98.0.0/17 +123.99.128.0/17 +123.100.0.0/19 +123.100.232.0/24 +123.101.0.0/16 +123.103.0.0/17 +123.108.128.0/20 +123.108.208.0/20 +123.112.0.0/12 +123.128.0.0/13 +123.136.80.0/20 +123.137.0.0/16 +123.138.0.0/15 +123.144.0.0/12 +123.160.0.0/12 +123.176.60.0/22 +123.176.80.0/20 +123.177.0.0/16 +123.178.0.0/15 +123.180.0.0/14 +123.184.0.0/13 +123.196.0.0/15 +123.199.128.0/17 +123.206.0.0/15 +123.232.0.0/14 +123.242.0.0/17 +123.242.192.0/21 +123.244.0.0/14 +123.249.0.0/16 +123.253.0.0/16 +123.254.96.0/21 +124.6.64.0/18 +124.14.0.0/15 +124.16.0.0/15 +124.20.0.0/14 +124.28.192.0/18 +124.29.0.0/17 +124.31.0.0/16 +124.40.112.0/20 +124.40.128.0/18 +124.40.192.0/19 +124.40.240.0/22 +124.42.0.0/16 +124.47.0.0/18 +124.64.0.0/15 +124.66.0.0/17 +124.67.0.0/16 +124.68.0.0/14 +124.72.0.0/13 +124.88.0.0/13 +124.108.8.0/21 +124.108.40.0/21 +124.109.96.0/21 +124.112.0.0/13 +124.126.0.0/15 +124.128.0.0/13 +124.147.128.0/17 +124.150.137.0/24 +124.151.0.0/16 +124.152.0.0/16 +124.160.0.0/13 +124.172.0.0/14 +124.192.0.0/15 +124.196.0.0/16 +124.200.0.0/13 +124.220.0.0/14 +124.224.0.0/12 +124.240.0.0/17 +124.240.128.0/18 +124.242.0.0/16 +124.243.192.0/18 +124.248.0.0/17 +124.249.0.0/16 +124.250.0.0/15 +124.254.0.0/18 +125.31.192.0/18 +125.32.0.0/12 +125.58.128.0/17 +125.61.128.0/17 +125.62.0.0/18 +125.64.0.0/11 +125.96.0.0/15 +125.98.0.0/16 +125.104.0.0/13 +125.112.0.0/12 +125.169.0.0/16 +125.171.0.0/16 +125.208.0.0/18 +125.210.0.0/15 +125.213.0.0/17 +125.214.96.0/19 +125.215.0.0/18 +125.216.0.0/13 +125.254.128.0/17 +128.108.0.0/16 +129.28.0.0/16 +129.204.0.0/16 +129.211.0.0/16 +129.223.254.0/24 +130.214.218.0/23 +131.228.96.0/24 +131.253.12.0/29 +131.253.12.80/28 +131.253.12.240/29 +132.232.0.0/16 +132.237.134.0/24 +132.237.150.0/24 +134.175.0.0/16 +135.159.208.0/20 +135.244.80.0/20 +137.59.59.0/24 +137.59.88.0/22 +138.32.244.0/22 +139.5.56.0/21 +139.5.80.0/22 +139.5.92.0/22 +139.5.108.0/22 +139.5.128.0/22 +139.5.160.0/22 +139.5.192.0/22 +139.5.204.0/22 +139.5.208.0/21 +139.5.244.0/22 +139.9.0.0/16 +139.129.0.0/16 +139.148.0.0/16 +139.155.0.0/16 +139.159.0.0/16 +139.170.0.0/16 +139.176.0.0/16 +139.183.0.0/16 +139.186.0.0/16 +139.189.0.0/16 +139.196.0.0/14 +139.200.0.0/13 +139.208.0.0/13 +139.217.0.0/16 +139.219.0.0/16 +139.220.0.0/15 +139.224.0.0/16 +139.226.0.0/15 +140.75.0.0/16 +140.101.208.0/24 +140.143.0.0/16 +140.179.0.0/16 +140.205.0.0/16 +140.206.0.0/15 +140.210.0.0/16 +140.224.0.0/16 +140.237.0.0/16 +140.240.0.0/16 +140.242.216.0/24 +140.242.223.0/24 +140.242.224.0/24 +140.243.0.0/16 +140.246.0.0/16 +140.249.0.0/16 +140.250.0.0/16 +140.255.0.0/16 +144.0.0.0/16 +144.7.0.0/16 +144.12.0.0/16 +144.36.146.0/23 +144.48.8.0/21 +144.48.64.0/22 +144.48.88.0/22 +144.48.156.0/22 +144.48.180.0/22 +144.48.184.0/22 +144.48.204.0/22 +144.48.208.0/21 +144.48.220.0/22 +144.48.252.0/22 +144.52.0.0/16 +144.123.0.0/16 +144.211.80.0/24 +144.211.138.0/24 +144.255.0.0/16 +146.56.192.0/18 +146.196.56.0/22 +146.196.68.0/22 +146.196.72.0/22 +146.196.92.0/22 +146.196.112.0/21 +146.196.124.0/22 +146.217.137.0/24 +146.222.79.0/24 +146.222.81.0/24 +146.222.94.0/24 +147.243.13.32/27 +147.243.13.64/27 +148.70.0.0/16 +150.0.0.0/16 +150.115.0.0/16 +150.121.0.0/16 +150.122.0.0/16 +150.129.136.0/22 +150.129.192.0/22 +150.129.216.0/22 +150.129.252.0/22 +150.138.0.0/15 +150.158.0.0/16 +150.223.0.0/16 +150.242.0.0/21 +150.242.8.0/22 +150.242.28.0/22 +150.242.44.0/22 +150.242.48.0/21 +150.242.56.0/22 +150.242.76.0/22 +150.242.80.0/22 +150.242.92.0/22 +150.242.96.0/22 +150.242.112.0/21 +150.242.120.0/22 +150.242.152.0/21 +150.242.160.0/21 +150.242.168.0/22 +150.242.184.0/21 +150.242.192.0/22 +150.242.212.0/22 +150.242.224.0/20 +150.242.240.0/21 +150.242.248.0/22 +150.255.0.0/16 +152.32.136.0/21 +152.32.144.0/20 +152.32.160.0/19 +152.32.192.0/18 +152.104.128.0/17 +152.136.0.0/16 +153.0.0.0/16 +153.3.0.0/16 +153.34.0.0/15 +153.36.0.0/15 +153.99.0.0/16 +153.101.0.0/16 +153.118.0.0/15 +154.8.128.0/17 +156.107.160.0/24 +156.107.170.0/24 +157.0.0.0/16 +157.18.0.0/16 +157.61.0.0/16 +157.119.0.0/22 +157.119.8.0/21 +157.119.16.0/22 +157.119.28.0/22 +157.119.68.0/22 +157.119.112.0/22 +157.119.132.0/22 +157.119.136.0/21 +157.119.144.0/20 +157.119.160.0/21 +157.119.172.0/22 +157.119.192.0/21 +157.119.240.0/22 +157.119.252.0/22 +157.122.0.0/16 +157.133.186.0/23 +157.133.192.0/21 +157.133.212.0/24 +157.133.236.0/24 +157.148.0.0/16 +157.156.0.0/16 +157.255.0.0/16 +159.75.0.0/16 +159.153.120.0/22 +159.226.0.0/16 +160.19.208.0/21 +160.19.216.0/22 +160.20.48.0/22 +160.62.10.0/24 +160.83.109.0/24 +160.83.110.0/23 +160.202.60.0/22 +160.202.148.0/22 +160.202.152.0/22 +160.202.168.0/22 +160.202.212.0/22 +160.202.216.0/21 +160.202.224.0/19 +160.238.64.0/22 +161.163.0.0/21 +161.163.28.0/23 +161.163.176.0/24 +161.163.178.0/23 +161.163.180.0/22 +161.189.0.0/16 +161.207.0.0/16 +162.14.0.0/16 +162.105.0.0/16 +163.0.0.0/16 +163.47.4.0/22 +163.53.0.0/20 +163.53.36.0/22 +163.53.40.0/21 +163.53.48.0/20 +163.53.64.0/22 +163.53.88.0/21 +163.53.96.0/19 +163.53.128.0/21 +163.53.136.0/22 +163.53.160.0/20 +163.53.188.0/22 +163.53.220.0/22 +163.53.236.0/22 +163.53.240.0/22 +163.125.0.0/16 +163.142.0.0/16 +163.177.0.0/16 +163.179.0.0/16 +163.204.0.0/16 +163.244.246.0/24 +164.52.0.0/17 +165.156.30.0/24 +166.111.0.0/16 +167.139.0.0/16 +167.189.0.0/16 +167.220.244.0/22 +168.159.144.0/21 +168.159.152.0/22 +168.159.156.0/23 +168.159.158.0/24 +168.160.0.0/16 +168.230.0.0/24 +170.179.0.0/16 +170.225.224.0/23 +170.252.152.0/21 +171.8.0.0/13 +171.34.0.0/15 +171.36.0.0/14 +171.40.0.0/13 +171.80.0.0/12 +171.104.0.0/13 +171.112.0.0/12 +171.208.0.0/12 +172.81.192.0/18 +175.0.0.0/12 +175.16.0.0/13 +175.24.0.0/14 +175.30.0.0/15 +175.42.0.0/15 +175.44.0.0/16 +175.46.0.0/15 +175.48.0.0/12 +175.64.0.0/11 +175.102.0.0/16 +175.106.128.0/17 +175.111.108.0/22 +175.111.144.0/20 +175.111.160.0/20 +175.111.184.0/22 +175.146.0.0/15 +175.148.0.0/14 +175.152.0.0/14 +175.158.96.0/22 +175.160.0.0/12 +175.176.156.0/22 +175.176.176.0/22 +175.176.188.0/22 +175.176.192.0/22 +175.178.0.0/16 +175.184.128.0/18 +175.185.0.0/16 +175.186.0.0/15 +175.188.0.0/14 +180.76.0.0/14 +180.84.0.0/15 +180.86.0.0/16 +180.88.0.0/14 +180.94.56.0/21 +180.94.96.0/20 +180.94.120.0/21 +180.95.128.0/17 +180.96.0.0/11 +180.129.128.0/17 +180.130.0.0/16 +180.136.0.0/13 +180.148.16.0/21 +180.148.152.0/21 +180.148.216.0/21 +180.148.224.0/19 +180.149.128.0/19 +180.149.236.0/22 +180.150.160.0/19 +180.152.0.0/13 +180.160.0.0/12 +180.178.112.0/21 +180.178.192.0/18 +180.184.0.0/14 +180.188.0.0/17 +180.189.148.0/22 +180.200.252.0/22 +180.201.0.0/16 +180.202.0.0/15 +180.208.0.0/15 +180.210.212.0/22 +180.210.224.0/19 +180.212.0.0/15 +180.222.224.0/19 +180.223.0.0/16 +180.233.0.0/18 +180.233.64.0/19 +180.233.144.0/22 +180.235.64.0/19 +180.235.112.0/22 +180.235.136.0/22 +182.16.144.0/21 +182.16.192.0/19 +182.18.0.0/17 +182.23.184.0/21 +182.23.200.0/21 +182.32.0.0/12 +182.48.96.0/19 +182.49.0.0/16 +182.50.0.0/20 +182.50.112.0/20 +182.51.0.0/16 +182.54.0.0/17 +182.54.244.0/22 +182.61.0.0/16 +182.80.0.0/13 +182.88.0.0/14 +182.92.0.0/16 +182.96.0.0/11 +182.128.0.0/12 +182.144.0.0/13 +182.157.0.0/16 +182.160.64.0/19 +182.174.0.0/15 +182.200.0.0/13 +182.236.128.0/17 +182.237.24.0/21 +182.238.0.0/16 +182.239.0.0/19 +182.240.0.0/13 +182.254.0.0/16 +182.255.36.0/22 +182.255.60.0/22 +183.0.0.0/10 +183.64.0.0/13 +183.78.160.0/21 +183.78.180.0/22 +183.81.172.0/22 +183.81.180.0/22 +183.84.0.0/15 +183.91.128.0/22 +183.91.136.0/21 +183.91.144.0/20 +183.92.0.0/14 +183.128.0.0/11 +183.160.0.0/13 +183.168.0.0/15 +183.170.0.0/16 +183.172.0.0/14 +183.182.0.0/19 +183.184.0.0/13 +183.192.0.0/10 +185.109.236.0/24 +188.65.16.0/22 +188.131.128.0/17 +192.11.23.0/24 +192.11.26.0/24 +192.11.39.0/24 +192.11.236.0/24 +192.23.191.0/24 +192.55.10.0/23 +192.55.40.0/24 +192.55.46.0/24 +192.55.68.0/22 +192.102.204.0/22 +192.124.154.0/24 +192.137.31.0/24 +192.139.135.0/24 +192.139.136.0/24 +192.140.128.0/21 +192.140.136.0/22 +192.140.156.0/22 +192.140.160.0/19 +192.140.192.0/20 +192.140.208.0/21 +192.144.128.0/17 +192.163.11.0/24 +192.232.97.0/24 +193.20.64.0/22 +193.112.0.0/16 +194.138.202.0/23 +198.175.100.0/22 +198.208.17.0/24 +199.7.72.0/24 +199.65.192.0/21 +199.244.144.0/24 +202.0.100.0/23 +202.0.122.0/23 +202.0.176.0/22 +202.1.105.0/24 +202.1.106.0/24 +202.3.128.0/23 +202.4.128.0/19 +202.4.252.0/22 +202.5.208.0/21 +202.5.216.0/22 +202.6.6.0/23 +202.6.66.0/23 +202.6.72.0/23 +202.6.87.0/24 +202.6.88.0/23 +202.6.92.0/23 +202.6.103.0/24 +202.6.108.0/24 +202.6.110.0/23 +202.6.114.0/24 +202.6.176.0/20 +202.8.0.0/24 +202.8.2.0/23 +202.8.4.0/23 +202.8.12.0/24 +202.8.24.0/24 +202.8.77.0/24 +202.8.128.0/19 +202.8.192.0/20 +202.9.32.0/24 +202.9.34.0/23 +202.9.48.0/23 +202.9.51.0/24 +202.9.52.0/23 +202.9.54.0/24 +202.9.57.0/24 +202.9.58.0/23 +202.10.64.0/20 +202.10.112.0/20 +202.12.1.0/24 +202.12.2.0/24 +202.12.17.0/24 +202.12.18.0/23 +202.12.72.0/24 +202.12.84.0/23 +202.12.96.0/24 +202.12.98.0/23 +202.12.106.0/24 +202.12.111.0/24 +202.12.116.0/24 +202.14.64.0/23 +202.14.69.0/24 +202.14.73.0/24 +202.14.74.0/23 +202.14.76.0/24 +202.14.78.0/23 +202.14.88.0/24 +202.14.97.0/24 +202.14.104.0/23 +202.14.108.0/23 +202.14.111.0/24 +202.14.114.0/23 +202.14.118.0/23 +202.14.124.0/23 +202.14.127.0/24 +202.14.129.0/24 +202.14.135.0/24 +202.14.136.0/24 +202.14.149.0/24 +202.14.151.0/24 +202.14.157.0/24 +202.14.158.0/23 +202.14.169.0/24 +202.14.170.0/23 +202.14.172.0/22 +202.14.176.0/24 +202.14.184.0/23 +202.14.208.0/23 +202.14.213.0/24 +202.14.219.0/24 +202.14.220.0/24 +202.14.222.0/23 +202.14.225.0/24 +202.14.226.0/23 +202.14.231.0/24 +202.14.235.0/24 +202.14.236.0/22 +202.14.246.0/24 +202.14.251.0/24 +202.20.66.0/24 +202.20.79.0/24 +202.20.87.0/24 +202.20.88.0/23 +202.20.90.0/24 +202.20.94.0/23 +202.20.114.0/24 +202.20.117.0/24 +202.20.120.0/24 +202.20.125.0/24 +202.20.126.0/23 +202.21.48.0/20 +202.21.131.0/24 +202.21.132.0/24 +202.21.141.0/24 +202.21.142.0/24 +202.21.147.0/24 +202.21.148.0/24 +202.21.150.0/23 +202.21.152.0/23 +202.21.154.0/24 +202.21.156.0/24 +202.21.208.0/24 +202.22.248.0/21 +202.27.12.0/24 +202.27.14.0/24 +202.27.136.0/23 +202.36.226.0/24 +202.38.0.0/22 +202.38.8.0/21 +202.38.48.0/20 +202.38.64.0/18 +202.38.128.0/21 +202.38.136.0/23 +202.38.138.0/24 +202.38.140.0/22 +202.38.146.0/23 +202.38.149.0/24 +202.38.150.0/23 +202.38.152.0/22 +202.38.156.0/24 +202.38.158.0/23 +202.38.160.0/23 +202.38.164.0/22 +202.38.168.0/22 +202.38.176.0/23 +202.38.184.0/21 +202.38.192.0/18 +202.40.4.0/23 +202.40.7.0/24 +202.40.15.0/24 +202.40.135.0/24 +202.40.136.0/24 +202.40.140.0/24 +202.40.143.0/24 +202.40.144.0/23 +202.40.150.0/24 +202.40.155.0/24 +202.40.156.0/24 +202.40.158.0/23 +202.40.162.0/24 +202.41.8.0/23 +202.41.11.0/24 +202.41.12.0/23 +202.41.128.0/24 +202.41.130.0/23 +202.41.142.0/24 +202.41.152.0/21 +202.41.192.0/24 +202.41.196.0/22 +202.41.200.0/22 +202.41.240.0/20 +202.43.76.0/22 +202.43.144.0/20 +202.44.16.0/20 +202.44.48.0/22 +202.44.67.0/24 +202.44.74.0/24 +202.44.97.0/24 +202.44.129.0/24 +202.44.132.0/23 +202.44.146.0/23 +202.45.0.0/23 +202.45.2.0/24 +202.45.15.0/24 +202.45.16.0/20 +202.46.16.0/23 +202.46.18.0/24 +202.46.20.0/23 +202.46.32.0/19 +202.46.128.0/24 +202.46.224.0/20 +202.47.82.0/23 +202.47.96.0/20 +202.47.126.0/24 +202.47.128.0/24 +202.47.130.0/23 +202.52.33.0/24 +202.52.34.0/24 +202.52.47.0/24 +202.52.143.0/24 +202.53.140.0/24 +202.53.143.0/24 +202.57.192.0/20 +202.57.212.0/22 +202.57.216.0/22 +202.57.240.0/20 +202.58.0.0/24 +202.58.104.0/22 +202.58.112.0/22 +202.59.0.0/23 +202.59.212.0/22 +202.59.236.0/24 +202.59.240.0/24 +202.60.48.0/21 +202.60.96.0/21 +202.60.112.0/20 +202.60.132.0/22 +202.60.136.0/21 +202.60.144.0/20 +202.61.68.0/22 +202.61.76.0/22 +202.61.88.0/22 +202.61.123.0/24 +202.61.127.0/24 +202.62.112.0/22 +202.62.248.0/22 +202.62.252.0/24 +202.62.255.0/24 +202.63.80.0/20 +202.63.160.0/19 +202.63.248.0/22 +202.63.253.0/24 +202.65.0.0/21 +202.65.8.0/23 +202.65.96.0/20 +202.66.168.0/22 +202.67.0.0/22 +202.69.4.0/22 +202.69.16.0/20 +202.70.0.0/19 +202.70.96.0/20 +202.70.192.0/20 +202.71.32.0/20 +202.72.40.0/21 +202.72.80.0/20 +202.72.112.0/20 +202.73.128.0/22 +202.73.240.0/20 +202.74.8.0/21 +202.74.36.0/24 +202.74.42.0/24 +202.74.52.0/24 +202.74.80.0/20 +202.74.232.0/22 +202.74.254.0/23 +202.75.208.0/20 +202.75.252.0/22 +202.76.247.0/24 +202.76.252.0/22 +202.77.80.0/21 +202.77.92.0/22 +202.78.8.0/21 +202.79.224.0/21 +202.79.248.0/22 +202.80.192.0/20 +202.81.0.0/22 +202.81.176.0/20 +202.83.252.0/22 +202.84.0.0/20 +202.84.16.0/23 +202.84.22.0/24 +202.84.24.0/21 +202.85.208.0/20 +202.86.249.0/24 +202.86.252.0/22 +202.87.80.0/20 +202.88.32.0/22 +202.89.8.0/21 +202.89.96.0/22 +202.89.108.0/22 +202.89.119.0/24 +202.89.232.0/21 +202.90.0.0/22 +202.90.16.0/20 +202.90.37.0/24 +202.90.96.0/19 +202.90.193.0/24 +202.90.196.0/24 +202.90.205.0/24 +202.90.224.0/20 +202.91.0.0/22 +202.91.36.0/22 +202.91.96.0/20 +202.91.128.0/22 +202.91.176.0/20 +202.91.224.0/19 +202.92.0.0/22 +202.92.8.0/21 +202.92.48.0/20 +202.92.252.0/22 +202.93.0.0/22 +202.93.252.0/22 +202.94.0.0/19 +202.94.74.0/24 +202.94.81.0/24 +202.94.92.0/22 +202.95.1.0/24 +202.95.2.0/23 +202.95.4.0/22 +202.95.8.0/21 +202.95.16.0/20 +202.95.240.0/21 +202.95.252.0/22 +202.96.0.0/12 +202.112.0.0/13 +202.120.0.0/15 +202.122.0.0/21 +202.122.32.0/21 +202.122.64.0/19 +202.122.112.0/20 +202.122.128.0/24 +202.122.132.0/24 +202.123.96.0/20 +202.123.116.0/22 +202.123.120.0/22 +202.124.16.0/21 +202.124.24.0/22 +202.125.107.0/24 +202.125.109.0/24 +202.125.112.0/20 +202.125.176.0/20 +202.127.0.0/21 +202.127.12.0/22 +202.127.16.0/20 +202.127.40.0/21 +202.127.48.0/20 +202.127.112.0/20 +202.127.128.0/19 +202.127.160.0/21 +202.127.192.0/20 +202.127.208.0/23 +202.127.212.0/22 +202.127.216.0/21 +202.127.224.0/19 +202.129.208.0/24 +202.130.0.0/19 +202.130.39.0/24 +202.130.224.0/19 +202.131.16.0/21 +202.131.48.0/20 +202.131.208.0/20 +202.133.32.0/20 +202.134.58.0/24 +202.134.128.0/20 +202.134.208.0/20 +202.136.48.0/20 +202.136.208.0/20 +202.136.224.0/20 +202.136.248.0/22 +202.136.254.0/23 +202.137.231.0/24 +202.140.140.0/22 +202.140.144.0/20 +202.141.160.0/19 +202.142.16.0/20 +202.143.4.0/22 +202.143.16.0/20 +202.143.32.0/20 +202.143.56.0/21 +202.143.100.0/22 +202.143.104.0/22 +202.144.196.0/22 +202.146.160.0/20 +202.146.186.0/24 +202.146.188.0/22 +202.146.196.0/22 +202.146.200.0/21 +202.147.144.0/20 +202.148.32.0/20 +202.148.64.0/18 +202.149.32.0/19 +202.149.160.0/19 +202.149.224.0/19 +202.150.16.0/20 +202.150.32.0/20 +202.150.56.0/22 +202.150.192.0/20 +202.150.224.0/19 +202.151.0.0/22 +202.151.33.0/24 +202.151.128.0/19 +202.152.176.0/20 +202.153.0.0/22 +202.153.7.0/24 +202.153.48.0/20 +202.157.192.0/19 +202.158.160.0/19 +202.158.242.0/24 +202.160.140.0/22 +202.160.156.0/22 +202.160.176.0/20 +202.162.67.0/24 +202.162.75.0/24 +202.164.0.0/20 +202.164.96.0/19 +202.165.96.0/21 +202.165.104.0/22 +202.165.176.0/20 +202.165.208.0/20 +202.165.239.0/24 +202.165.240.0/23 +202.165.243.0/24 +202.165.245.0/24 +202.165.251.0/24 +202.165.252.0/22 +202.166.224.0/19 +202.168.80.0/22 +202.168.128.0/20 +202.168.160.0/19 +202.170.128.0/19 +202.170.216.0/21 +202.170.224.0/19 +202.171.216.0/21 +202.171.232.0/24 +202.171.235.0/24 +202.172.0.0/22 +202.172.7.0/24 +202.173.0.0/22 +202.173.6.0/24 +202.173.8.0/21 +202.173.112.0/22 +202.173.120.0/22 +202.173.224.0/19 +202.174.64.0/20 +202.174.124.0/22 +202.176.224.0/19 +202.179.160.0/20 +202.179.240.0/20 +202.180.128.0/19 +202.180.208.0/21 +202.181.8.0/22 +202.181.28.0/22 +202.181.112.0/20 +202.182.32.0/20 +202.182.192.0/19 +202.189.0.0/18 +202.189.80.0/20 +202.189.184.0/21 +202.191.0.0/24 +202.191.68.0/22 +202.191.72.0/21 +202.191.80.0/20 +202.192.0.0/12 +203.0.4.0/22 +203.0.10.0/23 +203.0.18.0/24 +203.0.24.0/24 +203.0.42.0/23 +203.0.45.0/24 +203.0.46.0/23 +203.0.81.0/24 +203.0.82.0/23 +203.0.90.0/23 +203.0.96.0/23 +203.0.104.0/21 +203.0.114.0/23 +203.0.122.0/24 +203.0.128.0/24 +203.0.130.0/23 +203.0.132.0/22 +203.0.137.0/24 +203.0.142.0/24 +203.0.144.0/24 +203.0.146.0/24 +203.0.148.0/24 +203.0.150.0/23 +203.0.152.0/24 +203.0.177.0/24 +203.0.224.0/24 +203.1.4.0/22 +203.1.18.0/24 +203.1.26.0/23 +203.1.65.0/24 +203.1.66.0/23 +203.1.70.0/23 +203.1.76.0/23 +203.1.90.0/24 +203.1.97.0/24 +203.1.98.0/23 +203.1.100.0/22 +203.1.108.0/24 +203.1.253.0/24 +203.1.254.0/24 +203.2.64.0/21 +203.2.73.0/24 +203.2.112.0/21 +203.2.126.0/23 +203.2.140.0/24 +203.2.150.0/24 +203.2.152.0/22 +203.2.156.0/23 +203.2.160.0/21 +203.2.180.0/23 +203.2.196.0/23 +203.2.209.0/24 +203.2.214.0/23 +203.2.226.0/23 +203.2.229.0/24 +203.2.236.0/23 +203.3.68.0/24 +203.3.72.0/23 +203.3.75.0/24 +203.3.80.0/21 +203.3.96.0/22 +203.3.105.0/24 +203.3.112.0/21 +203.3.120.0/24 +203.3.123.0/24 +203.3.135.0/24 +203.3.139.0/24 +203.3.143.0/24 +203.4.132.0/23 +203.4.134.0/24 +203.4.151.0/24 +203.4.152.0/22 +203.4.174.0/23 +203.4.180.0/24 +203.4.186.0/24 +203.4.205.0/24 +203.4.208.0/22 +203.4.227.0/24 +203.4.230.0/23 +203.5.4.0/23 +203.5.7.0/24 +203.5.8.0/23 +203.5.11.0/24 +203.5.21.0/24 +203.5.22.0/24 +203.5.44.0/24 +203.5.46.0/23 +203.5.52.0/22 +203.5.56.0/23 +203.5.60.0/23 +203.5.114.0/23 +203.5.118.0/24 +203.5.120.0/24 +203.5.172.0/24 +203.5.180.0/23 +203.5.182.0/24 +203.5.185.0/24 +203.5.186.0/24 +203.5.188.0/23 +203.5.190.0/24 +203.5.195.0/24 +203.5.214.0/23 +203.5.218.0/23 +203.6.131.0/24 +203.6.136.0/24 +203.6.138.0/23 +203.6.142.0/24 +203.6.150.0/23 +203.6.157.0/24 +203.6.159.0/24 +203.6.224.0/20 +203.6.248.0/23 +203.7.129.0/24 +203.7.138.0/23 +203.7.147.0/24 +203.7.150.0/23 +203.7.158.0/24 +203.7.192.0/23 +203.7.200.0/24 +203.8.0.0/24 +203.8.8.0/24 +203.8.23.0/24 +203.8.24.0/21 +203.8.70.0/24 +203.8.82.0/24 +203.8.86.0/23 +203.8.91.0/24 +203.8.110.0/23 +203.8.115.0/24 +203.8.166.0/23 +203.8.169.0/24 +203.8.173.0/24 +203.8.184.0/24 +203.8.186.0/23 +203.8.190.0/23 +203.8.192.0/24 +203.8.197.0/24 +203.8.198.0/23 +203.8.203.0/24 +203.8.209.0/24 +203.8.210.0/23 +203.8.212.0/22 +203.8.217.0/24 +203.8.220.0/24 +203.9.32.0/24 +203.9.36.0/23 +203.9.57.0/24 +203.9.63.0/24 +203.9.65.0/24 +203.9.70.0/23 +203.9.72.0/24 +203.9.75.0/24 +203.9.76.0/23 +203.9.96.0/22 +203.9.100.0/23 +203.9.108.0/24 +203.9.158.0/24 +203.10.34.0/24 +203.10.56.0/24 +203.10.74.0/23 +203.10.84.0/22 +203.10.88.0/24 +203.10.95.0/24 +203.10.125.0/24 +203.11.70.0/24 +203.11.76.0/22 +203.11.82.0/24 +203.11.84.0/22 +203.11.100.0/22 +203.11.109.0/24 +203.11.117.0/24 +203.11.122.0/24 +203.11.126.0/24 +203.11.136.0/22 +203.11.141.0/24 +203.11.142.0/23 +203.11.180.0/22 +203.11.208.0/22 +203.12.16.0/24 +203.12.19.0/24 +203.12.24.0/24 +203.12.57.0/24 +203.12.65.0/24 +203.12.66.0/24 +203.12.70.0/23 +203.12.87.0/24 +203.12.88.0/21 +203.12.100.0/23 +203.12.103.0/24 +203.12.114.0/24 +203.12.118.0/24 +203.12.130.0/24 +203.12.137.0/24 +203.12.196.0/22 +203.12.200.0/21 +203.12.211.0/24 +203.12.219.0/24 +203.12.226.0/24 +203.12.240.0/22 +203.13.18.0/24 +203.13.24.0/24 +203.13.44.0/23 +203.13.80.0/21 +203.13.88.0/23 +203.13.92.0/22 +203.13.173.0/24 +203.13.224.0/23 +203.13.227.0/24 +203.13.233.0/24 +203.14.24.0/22 +203.14.33.0/24 +203.14.56.0/24 +203.14.61.0/24 +203.14.62.0/24 +203.14.104.0/24 +203.14.114.0/23 +203.14.118.0/24 +203.14.162.0/24 +203.14.184.0/21 +203.14.192.0/24 +203.14.194.0/23 +203.14.214.0/24 +203.14.231.0/24 +203.14.246.0/24 +203.15.0.0/20 +203.15.20.0/23 +203.15.22.0/24 +203.15.87.0/24 +203.15.88.0/23 +203.15.105.0/24 +203.15.112.0/21 +203.15.130.0/23 +203.15.149.0/24 +203.15.151.0/24 +203.15.156.0/22 +203.15.174.0/24 +203.15.227.0/24 +203.15.232.0/21 +203.15.240.0/23 +203.15.246.0/24 +203.16.10.0/24 +203.16.12.0/23 +203.16.16.0/21 +203.16.27.0/24 +203.16.38.0/24 +203.16.49.0/24 +203.16.50.0/23 +203.16.58.0/24 +203.16.63.0/24 +203.16.133.0/24 +203.16.161.0/24 +203.16.162.0/24 +203.16.186.0/23 +203.16.228.0/24 +203.16.238.0/24 +203.16.240.0/24 +203.16.245.0/24 +203.17.2.0/24 +203.17.18.0/24 +203.17.28.0/24 +203.17.39.0/24 +203.17.56.0/24 +203.17.74.0/23 +203.17.88.0/23 +203.17.136.0/24 +203.17.164.0/24 +203.17.187.0/24 +203.17.190.0/23 +203.17.231.0/24 +203.17.233.0/24 +203.17.248.0/23 +203.17.255.0/24 +203.18.2.0/23 +203.18.4.0/24 +203.18.7.0/24 +203.18.31.0/24 +203.18.37.0/24 +203.18.48.0/23 +203.18.52.0/24 +203.18.72.0/22 +203.18.80.0/23 +203.18.87.0/24 +203.18.100.0/23 +203.18.105.0/24 +203.18.107.0/24 +203.18.110.0/24 +203.18.129.0/24 +203.18.131.0/24 +203.18.132.0/23 +203.18.144.0/24 +203.18.153.0/24 +203.18.199.0/24 +203.18.208.0/24 +203.18.211.0/24 +203.18.215.0/24 +203.19.1.0/24 +203.19.18.0/24 +203.19.24.0/24 +203.19.30.0/24 +203.19.32.0/21 +203.19.41.0/24 +203.19.44.0/23 +203.19.46.0/24 +203.19.58.0/24 +203.19.60.0/23 +203.19.64.0/24 +203.19.68.0/24 +203.19.72.0/24 +203.19.101.0/24 +203.19.111.0/24 +203.19.131.0/24 +203.19.133.0/24 +203.19.144.0/24 +203.19.147.0/24 +203.19.149.0/24 +203.19.156.0/24 +203.19.176.0/24 +203.19.178.0/23 +203.19.208.0/24 +203.19.228.0/22 +203.19.233.0/24 +203.19.242.0/24 +203.19.248.0/23 +203.19.255.0/24 +203.20.17.0/24 +203.20.40.0/23 +203.20.44.0/24 +203.20.48.0/24 +203.20.61.0/24 +203.20.65.0/24 +203.20.84.0/23 +203.20.89.0/24 +203.20.106.0/23 +203.20.115.0/24 +203.20.117.0/24 +203.20.118.0/23 +203.20.122.0/24 +203.20.126.0/23 +203.20.135.0/24 +203.20.136.0/21 +203.20.150.0/24 +203.20.230.0/24 +203.20.232.0/24 +203.20.236.0/24 +203.21.0.0/23 +203.21.2.0/24 +203.21.8.0/24 +203.21.10.0/24 +203.21.18.0/24 +203.21.33.0/24 +203.21.34.0/24 +203.21.41.0/24 +203.21.44.0/24 +203.21.68.0/24 +203.21.82.0/24 +203.21.96.0/22 +203.21.124.0/24 +203.21.136.0/23 +203.21.145.0/24 +203.21.206.0/24 +203.22.24.0/24 +203.22.28.0/23 +203.22.31.0/24 +203.22.68.0/24 +203.22.76.0/24 +203.22.78.0/24 +203.22.84.0/24 +203.22.87.0/24 +203.22.92.0/22 +203.22.99.0/24 +203.22.106.0/24 +203.22.122.0/23 +203.22.131.0/24 +203.22.163.0/24 +203.22.166.0/24 +203.22.170.0/24 +203.22.176.0/21 +203.22.194.0/24 +203.22.242.0/23 +203.22.245.0/24 +203.22.246.0/24 +203.22.252.0/23 +203.23.0.0/24 +203.23.47.0/24 +203.23.61.0/24 +203.23.62.0/23 +203.23.73.0/24 +203.23.85.0/24 +203.23.92.0/22 +203.23.98.0/24 +203.23.107.0/24 +203.23.112.0/24 +203.23.130.0/24 +203.23.140.0/23 +203.23.172.0/24 +203.23.182.0/24 +203.23.186.0/23 +203.23.192.0/24 +203.23.197.0/24 +203.23.198.0/24 +203.23.204.0/22 +203.23.224.0/24 +203.23.226.0/23 +203.23.228.0/22 +203.23.249.0/24 +203.23.251.0/24 +203.24.13.0/24 +203.24.18.0/24 +203.24.27.0/24 +203.24.43.0/24 +203.24.56.0/24 +203.24.58.0/24 +203.24.67.0/24 +203.24.74.0/24 +203.24.79.0/24 +203.24.80.0/23 +203.24.84.0/23 +203.24.86.0/24 +203.24.90.0/24 +203.24.111.0/24 +203.24.112.0/24 +203.24.116.0/24 +203.24.122.0/23 +203.24.145.0/24 +203.24.152.0/23 +203.24.157.0/24 +203.24.161.0/24 +203.24.167.0/24 +203.24.186.0/23 +203.24.199.0/24 +203.24.202.0/24 +203.24.212.0/23 +203.24.217.0/24 +203.24.219.0/24 +203.24.244.0/24 +203.25.19.0/24 +203.25.20.0/23 +203.25.46.0/24 +203.25.48.0/21 +203.25.64.0/23 +203.25.91.0/24 +203.25.99.0/24 +203.25.100.0/24 +203.25.106.0/24 +203.25.131.0/24 +203.25.135.0/24 +203.25.138.0/24 +203.25.147.0/24 +203.25.153.0/24 +203.25.154.0/23 +203.25.164.0/24 +203.25.166.0/24 +203.25.174.0/23 +203.25.180.0/24 +203.25.182.0/24 +203.25.191.0/24 +203.25.199.0/24 +203.25.200.0/24 +203.25.202.0/23 +203.25.208.0/20 +203.25.229.0/24 +203.25.235.0/24 +203.25.236.0/24 +203.25.242.0/24 +203.26.12.0/24 +203.26.34.0/24 +203.26.49.0/24 +203.26.50.0/24 +203.26.55.0/24 +203.26.56.0/23 +203.26.60.0/24 +203.26.65.0/24 +203.26.68.0/24 +203.26.76.0/24 +203.26.80.0/24 +203.26.84.0/24 +203.26.97.0/24 +203.26.102.0/23 +203.26.115.0/24 +203.26.116.0/24 +203.26.129.0/24 +203.26.143.0/24 +203.26.144.0/24 +203.26.148.0/23 +203.26.154.0/24 +203.26.158.0/23 +203.26.161.0/24 +203.26.170.0/24 +203.26.173.0/24 +203.26.176.0/24 +203.26.185.0/24 +203.26.202.0/23 +203.26.210.0/24 +203.26.214.0/24 +203.26.222.0/24 +203.26.224.0/24 +203.26.228.0/24 +203.26.232.0/24 +203.27.0.0/24 +203.27.10.0/24 +203.27.15.0/24 +203.27.16.0/24 +203.27.20.0/24 +203.27.22.0/23 +203.27.40.0/24 +203.27.45.0/24 +203.27.53.0/24 +203.27.65.0/24 +203.27.66.0/24 +203.27.81.0/24 +203.27.88.0/24 +203.27.102.0/24 +203.27.109.0/24 +203.27.117.0/24 +203.27.121.0/24 +203.27.122.0/23 +203.27.125.0/24 +203.27.200.0/24 +203.27.202.0/24 +203.27.233.0/24 +203.27.241.0/24 +203.27.250.0/24 +203.28.10.0/24 +203.28.12.0/24 +203.28.33.0/24 +203.28.34.0/23 +203.28.43.0/24 +203.28.44.0/24 +203.28.54.0/24 +203.28.56.0/24 +203.28.73.0/24 +203.28.74.0/24 +203.28.76.0/24 +203.28.86.0/24 +203.28.88.0/24 +203.28.112.0/24 +203.28.131.0/24 +203.28.136.0/24 +203.28.140.0/24 +203.28.145.0/24 +203.28.165.0/24 +203.28.169.0/24 +203.28.170.0/24 +203.28.178.0/23 +203.28.185.0/24 +203.28.187.0/24 +203.28.196.0/24 +203.28.226.0/23 +203.28.239.0/24 +203.29.2.0/24 +203.29.8.0/23 +203.29.13.0/24 +203.29.14.0/24 +203.29.28.0/24 +203.29.46.0/24 +203.29.57.0/24 +203.29.61.0/24 +203.29.63.0/24 +203.29.69.0/24 +203.29.73.0/24 +203.29.81.0/24 +203.29.90.0/24 +203.29.95.0/24 +203.29.100.0/24 +203.29.103.0/24 +203.29.112.0/24 +203.29.120.0/22 +203.29.182.0/23 +203.29.187.0/24 +203.29.189.0/24 +203.29.190.0/24 +203.29.205.0/24 +203.29.210.0/24 +203.29.217.0/24 +203.29.227.0/24 +203.29.231.0/24 +203.29.233.0/24 +203.29.234.0/24 +203.29.248.0/24 +203.29.254.0/23 +203.30.16.0/23 +203.30.25.0/24 +203.30.27.0/24 +203.30.29.0/24 +203.30.66.0/24 +203.30.81.0/24 +203.30.87.0/24 +203.30.111.0/24 +203.30.121.0/24 +203.30.123.0/24 +203.30.152.0/24 +203.30.156.0/24 +203.30.162.0/24 +203.30.173.0/24 +203.30.175.0/24 +203.30.187.0/24 +203.30.194.0/24 +203.30.217.0/24 +203.30.220.0/24 +203.30.222.0/24 +203.30.232.0/23 +203.30.235.0/24 +203.30.240.0/23 +203.30.246.0/24 +203.30.250.0/23 +203.31.45.0/24 +203.31.46.0/24 +203.31.49.0/24 +203.31.51.0/24 +203.31.54.0/23 +203.31.69.0/24 +203.31.72.0/24 +203.31.80.0/24 +203.31.85.0/24 +203.31.97.0/24 +203.31.105.0/24 +203.31.106.0/24 +203.31.108.0/23 +203.31.124.0/24 +203.31.162.0/24 +203.31.174.0/24 +203.31.177.0/24 +203.31.181.0/24 +203.31.187.0/24 +203.31.189.0/24 +203.31.204.0/24 +203.31.220.0/24 +203.31.222.0/23 +203.31.225.0/24 +203.31.229.0/24 +203.31.248.0/23 +203.31.253.0/24 +203.32.20.0/24 +203.32.48.0/23 +203.32.56.0/24 +203.32.60.0/24 +203.32.62.0/24 +203.32.68.0/23 +203.32.76.0/24 +203.32.81.0/24 +203.32.84.0/23 +203.32.95.0/24 +203.32.102.0/24 +203.32.105.0/24 +203.32.130.0/24 +203.32.133.0/24 +203.32.140.0/24 +203.32.152.0/24 +203.32.186.0/23 +203.32.192.0/24 +203.32.196.0/24 +203.32.203.0/24 +203.32.204.0/23 +203.32.212.0/24 +203.33.4.0/24 +203.33.7.0/24 +203.33.8.0/21 +203.33.21.0/24 +203.33.26.0/24 +203.33.32.0/24 +203.33.63.0/24 +203.33.64.0/24 +203.33.67.0/24 +203.33.68.0/24 +203.33.73.0/24 +203.33.79.0/24 +203.33.100.0/24 +203.33.122.0/24 +203.33.129.0/24 +203.33.131.0/24 +203.33.145.0/24 +203.33.156.0/24 +203.33.158.0/23 +203.33.174.0/24 +203.33.185.0/24 +203.33.200.0/24 +203.33.202.0/23 +203.33.204.0/24 +203.33.206.0/23 +203.33.214.0/23 +203.33.224.0/23 +203.33.226.0/24 +203.33.233.0/24 +203.33.243.0/24 +203.33.250.0/24 +203.34.4.0/24 +203.34.21.0/24 +203.34.27.0/24 +203.34.39.0/24 +203.34.48.0/23 +203.34.54.0/24 +203.34.56.0/23 +203.34.67.0/24 +203.34.69.0/24 +203.34.76.0/24 +203.34.92.0/24 +203.34.106.0/24 +203.34.113.0/24 +203.34.147.0/24 +203.34.150.0/24 +203.34.152.0/23 +203.34.161.0/24 +203.34.162.0/24 +203.34.187.0/24 +203.34.192.0/21 +203.34.204.0/22 +203.34.232.0/24 +203.34.240.0/24 +203.34.242.0/24 +203.34.245.0/24 +203.34.251.0/24 +203.55.2.0/23 +203.55.4.0/24 +203.55.10.0/24 +203.55.13.0/24 +203.55.22.0/24 +203.55.30.0/24 +203.55.93.0/24 +203.55.101.0/24 +203.55.109.0/24 +203.55.110.0/24 +203.55.116.0/23 +203.55.119.0/24 +203.55.128.0/23 +203.55.146.0/23 +203.55.192.0/24 +203.55.196.0/24 +203.55.218.0/23 +203.55.221.0/24 +203.55.224.0/24 +203.56.1.0/24 +203.56.4.0/24 +203.56.12.0/24 +203.56.24.0/24 +203.56.38.0/24 +203.56.40.0/24 +203.56.46.0/24 +203.56.48.0/21 +203.56.68.0/23 +203.56.82.0/23 +203.56.84.0/23 +203.56.95.0/24 +203.56.110.0/24 +203.56.121.0/24 +203.56.161.0/24 +203.56.169.0/24 +203.56.172.0/23 +203.56.175.0/24 +203.56.183.0/24 +203.56.185.0/24 +203.56.187.0/24 +203.56.192.0/24 +203.56.198.0/24 +203.56.201.0/24 +203.56.208.0/23 +203.56.210.0/24 +203.56.214.0/24 +203.56.216.0/24 +203.56.227.0/24 +203.56.228.0/24 +203.56.231.0/24 +203.56.232.0/24 +203.56.240.0/24 +203.56.252.0/24 +203.56.254.0/24 +203.57.5.0/24 +203.57.6.0/24 +203.57.12.0/23 +203.57.28.0/24 +203.57.39.0/24 +203.57.46.0/24 +203.57.58.0/24 +203.57.61.0/24 +203.57.66.0/24 +203.57.69.0/24 +203.57.70.0/23 +203.57.73.0/24 +203.57.90.0/24 +203.57.101.0/24 +203.57.109.0/24 +203.57.123.0/24 +203.57.157.0/24 +203.57.200.0/24 +203.57.202.0/24 +203.57.206.0/24 +203.57.222.0/24 +203.57.224.0/20 +203.57.246.0/23 +203.57.249.0/24 +203.57.253.0/24 +203.57.254.0/23 +203.62.2.0/24 +203.62.131.0/24 +203.62.139.0/24 +203.62.161.0/24 +203.62.197.0/24 +203.62.228.0/22 +203.62.234.0/24 +203.62.246.0/24 +203.65.240.0/22 +203.76.160.0/22 +203.76.168.0/22 +203.76.208.0/21 +203.76.216.0/22 +203.76.240.0/21 +203.77.180.0/22 +203.78.48.0/20 +203.78.156.0/22 +203.79.0.0/20 +203.79.32.0/20 +203.80.4.0/23 +203.80.32.0/20 +203.80.57.0/24 +203.80.129.0/24 +203.80.132.0/22 +203.80.136.0/21 +203.80.144.0/20 +203.81.0.0/21 +203.81.16.0/20 +203.81.244.0/22 +203.82.0.0/23 +203.82.16.0/21 +203.82.112.0/20 +203.82.224.0/20 +203.83.0.0/22 +203.83.8.0/21 +203.83.56.0/21 +203.83.224.0/20 +203.86.0.0/17 +203.86.250.0/24 +203.86.254.0/23 +203.88.32.0/19 +203.88.192.0/19 +203.89.0.0/22 +203.89.8.0/21 +203.89.100.0/22 +203.89.133.0/24 +203.89.136.0/22 +203.89.144.0/24 +203.90.0.0/22 +203.90.8.0/21 +203.90.128.0/18 +203.90.192.0/19 +203.91.1.0/24 +203.91.32.0/19 +203.91.96.0/20 +203.91.120.0/21 +203.92.0.0/22 +203.92.6.0/24 +203.92.160.0/19 +203.93.0.0/16 +203.94.0.0/19 +203.95.0.0/21 +203.95.96.0/19 +203.95.128.0/18 +203.95.200.0/21 +203.95.208.0/22 +203.95.224.0/19 +203.99.8.0/21 +203.99.16.0/20 +203.99.80.0/20 +203.100.32.0/20 +203.100.48.0/21 +203.100.58.0/24 +203.100.60.0/24 +203.100.63.0/24 +203.100.80.0/20 +203.100.96.0/19 +203.100.192.0/20 +203.104.32.0/20 +203.105.96.0/19 +203.105.128.0/19 +203.107.0.0/17 +203.110.160.0/19 +203.110.208.0/20 +203.110.232.0/23 +203.110.234.0/24 +203.114.80.0/20 +203.114.244.0/22 +203.118.192.0/19 +203.118.241.0/24 +203.118.248.0/22 +203.119.24.0/21 +203.119.32.0/22 +203.119.80.0/22 +203.119.85.0/24 +203.119.113.0/24 +203.119.114.0/23 +203.119.116.0/22 +203.119.120.0/21 +203.119.128.0/17 +203.123.58.0/24 +203.128.32.0/19 +203.128.96.0/19 +203.128.128.0/24 +203.128.224.0/21 +203.129.8.0/21 +203.130.32.0/19 +203.132.32.0/19 +203.134.240.0/21 +203.135.96.0/19 +203.135.160.0/20 +203.142.12.0/23 +203.142.219.0/24 +203.142.224.0/19 +203.144.96.0/19 +203.145.0.0/19 +203.148.0.0/18 +203.148.64.0/20 +203.148.80.0/22 +203.148.86.0/23 +203.149.92.0/22 +203.152.64.0/19 +203.152.128.0/19 +203.153.0.0/22 +203.156.192.0/18 +203.158.16.0/21 +203.160.52.0/22 +203.160.104.0/21 +203.160.129.0/24 +203.160.192.0/19 +203.161.0.0/22 +203.161.180.0/24 +203.161.183.0/24 +203.161.192.0/19 +203.166.160.0/19 +203.167.28.0/22 +203.168.0.0/19 +203.170.58.0/23 +203.171.0.0/22 +203.171.208.0/24 +203.171.224.0/20 +203.174.4.0/24 +203.174.6.0/23 +203.174.96.0/19 +203.175.128.0/19 +203.175.192.0/18 +203.176.0.0/18 +203.176.64.0/19 +203.176.168.0/21 +203.184.80.0/20 +203.185.189.0/24 +203.187.160.0/19 +203.189.0.0/23 +203.189.6.0/23 +203.189.112.0/22 +203.189.192.0/19 +203.189.232.0/22 +203.189.240.0/22 +203.190.96.0/20 +203.190.249.0/24 +203.191.0.0/23 +203.191.2.0/24 +203.191.5.0/24 +203.191.7.0/24 +203.191.16.0/20 +203.191.64.0/18 +203.191.133.0/24 +203.191.144.0/20 +203.192.0.0/19 +203.193.224.0/19 +203.194.120.0/21 +203.195.64.0/19 +203.195.112.0/21 +203.195.128.0/17 +203.196.0.0/20 +203.196.28.0/22 +203.201.181.0/24 +203.201.182.0/24 +203.202.236.0/22 +203.205.64.0/19 +203.205.128.0/17 +203.207.64.0/18 +203.207.128.0/17 +203.208.0.0/20 +203.208.16.0/22 +203.208.32.0/19 +203.209.224.0/19 +203.212.0.0/20 +203.212.80.0/20 +203.215.232.0/21 +203.217.164.0/22 +203.222.192.0/20 +203.223.0.0/20 +203.223.16.0/21 +204.55.160.0/24 +204.74.96.0/24 +204.114.176.0/23 +206.219.44.0/23 +206.219.50.0/23 +206.219.52.0/23 +207.89.20.0/24 +210.2.0.0/19 +210.5.0.0/19 +210.5.56.0/21 +210.5.128.0/19 +210.7.56.0/21 +210.12.0.0/15 +210.14.64.0/19 +210.14.112.0/20 +210.14.128.0/17 +210.15.0.0/17 +210.15.128.0/18 +210.16.104.0/22 +210.16.128.0/18 +210.21.0.0/16 +210.22.0.0/16 +210.23.32.0/19 +210.25.0.0/16 +210.26.0.0/15 +210.28.0.0/14 +210.32.0.0/12 +210.51.0.0/16 +210.52.0.0/15 +210.56.192.0/19 +210.72.0.0/14 +210.76.0.0/15 +210.78.0.0/16 +210.79.64.0/18 +210.79.224.0/19 +210.82.0.0/15 +210.87.128.0/18 +210.185.192.0/18 +210.192.96.0/19 +211.64.0.0/13 +211.80.0.0/12 +211.96.0.0/13 +211.136.0.0/13 +211.144.0.0/12 +211.160.0.0/13 +212.64.0.0/17 +212.129.128.0/17 +216.250.108.0/22 +218.0.0.0/11 +218.56.0.0/13 +218.64.0.0/11 +218.96.0.0/14 +218.100.88.0/21 +218.100.96.0/19 +218.100.128.0/17 +218.104.0.0/14 +218.108.0.0/15 +218.185.192.0/19 +218.185.240.0/21 +218.192.0.0/12 +218.240.0.0/13 +218.249.0.0/16 +219.72.0.0/16 +219.82.0.0/16 +219.83.128.0/17 +219.90.68.0/22 +219.90.72.0/21 +219.128.0.0/11 +219.216.0.0/13 +219.224.0.0/12 +219.242.0.0/15 +219.244.0.0/14 +220.101.192.0/18 +220.112.0.0/14 +220.152.128.0/17 +220.154.0.0/15 +220.158.240.0/22 +220.160.0.0/11 +220.192.0.0/12 +220.231.0.0/18 +220.231.128.0/17 +220.232.64.0/18 +220.234.0.0/16 +220.242.0.0/15 +220.247.136.0/21 +220.248.0.0/14 +220.252.0.0/16 +221.0.0.0/13 +221.8.0.0/14 +221.12.0.0/17 +221.12.128.0/18 +221.13.0.0/16 +221.14.0.0/15 +221.122.0.0/15 +221.128.128.0/17 +221.129.0.0/16 +221.130.0.0/15 +221.133.224.0/19 +221.136.0.0/15 +221.172.0.0/14 +221.176.0.0/13 +221.192.0.0/14 +221.196.0.0/15 +221.198.0.0/16 +221.199.0.0/17 +221.199.128.0/18 +221.199.192.0/20 +221.199.224.0/19 +221.200.0.0/13 +221.208.0.0/12 +221.224.0.0/12 +222.16.0.0/12 +222.32.0.0/11 +222.64.0.0/11 +222.125.0.0/16 +222.126.128.0/17 +222.128.0.0/12 +222.160.0.0/14 +222.168.0.0/13 +222.176.0.0/12 +222.192.0.0/11 +222.240.0.0/13 +222.248.0.0/15 +223.0.0.0/12 +223.20.0.0/15 +223.27.184.0/22 +223.29.208.0/22 +223.29.252.0/22 +223.64.0.0/11 +223.96.0.0/12 +223.112.0.0/14 +223.116.0.0/15 +223.120.0.0/13 +223.128.0.0/15 +223.144.0.0/12 +223.160.0.0/14 +223.166.0.0/15 +223.192.0.0/15 +223.198.0.0/15 +223.201.0.0/16 +223.202.0.0/15 +223.208.0.0/13 +223.220.0.0/15 +223.223.176.0/20 +223.223.192.0/20 +223.240.0.0/13 +223.248.0.0/14 +223.252.128.0/17 +223.254.0.0/16 +223.255.0.0/17 +223.255.236.0/22 +223.255.252.0/23 + +[proxy_list] +# Telegram IPs$ +91.108.4.0/22 +91.108.8.0/21 +91.108.16.0/21 +91.108.36.0/22 +91.108.56.0/22 +109.239.140.0/24 +149.154.160.0/20 +14.102.250.18 +14.102.250.19 +174.142.105.153 +50.7.31.230 +67.220.91.15 +67.220.91.18 +67.220.91.23 +69.65.19.160 +72.52.81.22 +85.17.73.31 +(^|\.)030buy\.com$ +(^|\.)0rz\.tw$ +(^|\.)1-apple\.com\.tw$ +(^|\.)10\.tt$ +(^|\.)1000giri\.net$ +(^|\.)100ke\.org$ +(^|\.)10conditionsoflove\.com$ +(^|\.)10musume\.com$ +(^|\.)123rf\.com$ +(^|\.)12bet\.com$ +(^|\.)12vpn\.com$ +(^|\.)12vpn\.net$ +(^|\.)141hongkong\.com$ +(^|\.)141jj\.com$ +(^|\.)141tube\.com$ +(^|\.)1688\.com\.au$ +(^|\.)173ng\.com$ +(^|\.)177pic\.info$ +(^|\.)17t17p\.com$ +(^|\.)18board\.com$ +(^|\.)18board\.info$ +(^|\.)18onlygirls\.com$ +(^|\.)18p2p\.com$ +(^|\.)18virginsex\.com$ +(^|\.)1949er\.org$ +(^|\.)1984bbs\.com$ +(^|\.)1984bbs\.org$ +(^|\.)1989report\.hkja\.org\.hk$ +(^|\.)1991way\.com$ +(^|\.)1998cdp\.org$ +(^|\.)1bao\.org$ +(^|\.)1dumb\.com$ +(^|\.)1e100\.net$ +(^|\.)1eew\.com$ +(^|\.)1mobile\.com$ +(^|\.)1pondo\.tv$ +(^|\.)2-hand\.info$ +(^|\.)2000fun\.com$ +(^|\.)2008xianzhang\.info$ +(^|\.)2017\.hk$ +(^|\.)21andy\.com$ +(^|\.)21pron\.com$ +(^|\.)21sextury\.com$ +(^|\.)228\.net\.tw$ +(^|\.)233abc\.com$ +(^|\.)24hrs\.ca$ +(^|\.)24smile\.org$ +(^|\.)25u\.com$ +(^|\.)2dbook\.com$ +(^|\.)2lipstube\.com$ +(^|\.)2shared\.com$ +(^|\.)2waky\.com$ +(^|\.)3-a\.net$ +(^|\.)30boxes\.com$ +(^|\.)315lz\.com$ +(^|\.)32red\.com$ +(^|\.)36rain\.com$ +(^|\.)3a5a\.com$ +(^|\.)3arabtv\.com$ +(^|\.)3boys2girls\.com$ +(^|\.)3d-game\.com$ +(^|\.)3proxy\.ru$ +(^|\.)3ren\.ca$ +(^|\.)3tui\.net$ +(^|\.)466453\.com$ +(^|\.)4bluestones\.biz$ +(^|\.)4chan\.com$ +(^|\.)4dq\.com$ +(^|\.)4everproxy\.com$ +(^|\.)4irc\.com$ +(^|\.)4mydomain\.com$ +(^|\.)4pu\.com$ +(^|\.)4rbtv\.com$ +(^|\.)4shared\.com$ +(^|\.)4tern\.com$ +(^|\.)51\.ca$ +(^|\.)51jav\.org$ +(^|\.)51luoben\.com$ +(^|\.)5278\.cc$ +(^|\.)56cun04\.jigsy\.com$ +(^|\.)5aimiku\.com$ +(^|\.)5i01\.com$ +(^|\.)5isotoi5\.org$ +(^|\.)5maodang\.com$ +(^|\.)63i\.com$ +(^|\.)64memo$ +(^|\.)64museum\.org$ +(^|\.)64tianwang\.com$ +(^|\.)64wiki\.com$ +(^|\.)66\.ca$ +(^|\.)666kb\.com$ +(^|\.)6park\.com$ +(^|\.)6parker\.com$ +(^|\.)7capture\.com$ +(^|\.)7cow\.com$ +(^|\.)8-d\.com$ +(^|\.)85cc\.net$ +(^|\.)85cc\.us$ +(^|\.)85st\.com$ +(^|\.)881903\.com$ +(^|\.)888\.com$ +(^|\.)888poker\.com$ +(^|\.)89-64\.org$ +(^|\.)89\.64\.charter\.constitutionalism\.solutions$ +(^|\.)8news\.com\.tw$ +(^|\.)8z1\.net$ +(^|\.)9001700\.com$ +(^|\.)908taiwan\.org$ +(^|\.)91porn\.com$ +(^|\.)91vps\.club$ +(^|\.)92ccav\.com$ +(^|\.)991\.com$ +(^|\.)99btgc01\.com$ +(^|\.)99cn\.info$ +(^|\.)9bis\.com$ +(^|\.)9bis\.net$ +(^|\.)a-normal-day\.com$ +(^|\.)a248\.e\.akamai\.net$ +(^|\.)a5\.com\.ru$ +(^|\.)aamacau\.com$ +(^|\.)abc\.com$ +(^|\.)abc\.pp\.ru$ +(^|\.)abc\.xyz$ +(^|\.)abchinese\.com$ +(^|\.)abclite\.net$ +(^|\.)abitno\.linpie\.com$ +(^|\.)ablwang\.com$ +(^|\.)aboluowang\.com$ +(^|\.)aboutgfw\.com$ +(^|\.)abs\.edu$ +(^|\.)ac\.jiruan\.net$ +(^|\.)accim\.org$ +(^|\.)aceros-de-hispania\.com$ +(^|\.)acevpn\.com$ +(^|\.)acg18\.me$ +(^|\.)acgkj\.com$ +(^|\.)acmedia365\.com$ +(^|\.)acmetoy\.com$ +(^|\.)acnw\.com\.au$ +(^|\.)actfortibet\.org$ +(^|\.)actimes\.com\.au$ +(^|\.)activpn\.com$ +(^|\.)aculo\.us$ +(^|\.)addictedtocoffee\.de$ +(^|\.)adelaidebbs\.com$ +(^|\.)admob\.com$ +(^|\.)adorama\.com$ +(^|\.)adpl\.org\.hk$ +(^|\.)ads-twitter\.com$ +(^|\.)adsense\.com$ +(^|\.)adult-sex-games\.com$ +(^|\.)adult\.friendfinder\.com$ +(^|\.)adultfriendfinder\.com$ +(^|\.)adultkeep\.net$ +(^|\.)advanscene\.com$ +(^|\.)advertfan\.com$ +(^|\.)ae\.hao123\.com$ +(^|\.)ae\.org$ +(^|\.)aenhancers\.com$ +(^|\.)af\.mil$ +(^|\.)afantibbs\.com$ +(^|\.)agnesb\.fr$ +(^|\.)agoogleaday\.com$ +(^|\.)agro\.hk$ +(^|\.)ahr0chm6ly95zwnslm5lda$ +(^|\.)ai-kan\.net$ +(^|\.)ai-wen\.net$ +(^|\.)ai\.binwang\.me$ +(^|\.)aiph\.net$ +(^|\.)airasia\.com$ +(^|\.)airconsole\.com$ +(^|\.)airvpn\.org$ +(^|\.)aisex\.com$ +(^|\.)ait\.org\.tw$ +(^|\.)aiweiwei\.com$ +(^|\.)aiweiweiblog\.com$ +(^|\.)akademiye\.org$ +(^|\.)akiba-online\.com$ +(^|\.)akiba-web\.com$ +(^|\.)al-islam\.com$ +(^|\.)al-qimmah\.net$ +(^|\.)alabout\.com$ +(^|\.)alanhou\.com$ +(^|\.)alarab\.qa$ +(^|\.)alasbarricadas\.org$ +(^|\.)alexlur\.org$ +(^|\.)alforattv\.net$ +(^|\.)alhayat\.com$ +(^|\.)alicejapan\.co\.jp$ +(^|\.)alien-ufos\.com$ +(^|\.)aliengu\.com$ +(^|\.)alkasir\.com$ +(^|\.)allconnected\.co$ +(^|\.)alldrawnsex\.com$ +(^|\.)allervpn\.com$ +(^|\.)allfinegirls\.com$ +(^|\.)allgirlmassage\.com$ +(^|\.)allgirlsallowed\.org$ +(^|\.)allgravure\.com$ +(^|\.)alliance\.org\.hk$ +(^|\.)allinfa\.com$ +(^|\.)alljackpotscasino\.com$ +(^|\.)allmovie\.com$ +(^|\.)allowed\.org$ +(^|\.)almasdarnews\.com$ +(^|\.)almostmy\.com$ +(^|\.)alphaporno\.com$ +(^|\.)alternate-tools\.com$ +(^|\.)alternativeto\.net$ +(^|\.)altrec\.com$ +(^|\.)alvinalexander\.com$ +(^|\.)alwaysdata\.com$ +(^|\.)alwaysdata\.net$ +(^|\.)alwaysvpn\.com$ +(^|\.)am730\.com\.hk$ +(^|\.)amazon\.com$ +(^|\.)ameblo\.jp$ +(^|\.)americangreencard\.com$ +(^|\.)americanunfinished\.com$ +(^|\.)amiblockedornot\.com$ +(^|\.)amigobbs\.net$ +(^|\.)amitabhafoundation\.us$ +(^|\.)amnesty\.org$ +(^|\.)amnesty\.org\.hk$ +(^|\.)amnesty\.tw$ +(^|\.)amnestyusa\.org$ +(^|\.)amnyemachen\.org$ +(^|\.)amoiist\.com$ +(^|\.)ampproject\.org$ +(^|\.)amtb-taipei\.org$ +(^|\.)anchorfree\.com$ +(^|\.)ancsconf\.org$ +(^|\.)andfaraway\.net$ +(^|\.)android-x86\.org$ +(^|\.)android\.com$ +(^|\.)androidify\.com$ +(^|\.)androidplus\.co$ +(^|\.)andygod\.com$ +(^|\.)angelfire\.com$ +(^|\.)angularjs\.org$ +(^|\.)animecrazy\.net$ +(^|\.)animeshippuuden\.com$ +(^|\.)aniscartujo\.com$ +(^|\.)annatam\.com$ +(^|\.)anobii\.com$ +(^|\.)anontext\.com$ +(^|\.)anonymise\.us$ +(^|\.)anonymitynetwork\.com$ +(^|\.)anonymizer\.com$ +(^|\.)anpopo\.com$ +(^|\.)answering-islam\.org$ +(^|\.)anthonycalzadilla\.com$ +(^|\.)anti1984\.com$ +(^|\.)antichristendom\.com$ +(^|\.)antiwave\.net$ +(^|\.)anyporn\.com$ +(^|\.)anysex\.com$ +(^|\.)aobo\.com\.au$ +(^|\.)aofriend\.com$ +(^|\.)aofriend\.com\.au$ +(^|\.)aojiao\.org$ +(^|\.)aolchannels\.aol\.com$ +(^|\.)aomiwang\.com$ +(^|\.)apetube\.com$ +(^|\.)api-secure\.recaptcha\.net$ +(^|\.)api-verify\.recaptcha\.net$ +(^|\.)api\.ai$ +(^|\.)api\.dropboxapi\.com$ +(^|\.)api\.linksalpha\.com$ +(^|\.)api\.proxlet\.com$ +(^|\.)api\.recaptcha\.net$ +(^|\.)apiary\.io$ +(^|\.)apidocs\.linksalpha\.com$ +(^|\.)apigee\.com$ +(^|\.)apk-dl\.com$ +(^|\.)apkdler\.com$ +(^|\.)apkmirror\.com$ +(^|\.)apkmonk\.com$ +(^|\.)apkplz\.com$ +(^|\.)apkpure\.com$ +(^|\.)aplusvpn\.com$ +(^|\.)app\.box\.com$ +(^|\.)app\.heywire\.com$ +(^|\.)app\.tutanota\.com$ +(^|\.)appdownloader\.net$ +(^|\.)appledaily\.com$ +(^|\.)appshopper\.com$ +(^|\.)appsocks\.net$ +(^|\.)appspot\.com$ +(^|\.)appsto\.re$ +(^|\.)ar\.hao123\.com$ +(^|\.)archive\.fo$ +(^|\.)archive\.is$ +(^|\.)archive\.org$ +(^|\.)archives\.gov$ +(^|\.)archives\.gov\.tw$ +(^|\.)arctosia\.com$ +(^|\.)areca-backup\.org$ +(^|\.)arena\.taipei$ +(^|\.)arethusa\.su$ +(^|\.)arlingtoncemetery\.mil$ +(^|\.)army\.mil$ +(^|\.)art4tibet1998\.org$ +(^|\.)artofpeacefoundation\.org$ +(^|\.)artsy\.net$ +(^|\.)asacp\.org$ +(^|\.)asahichinese\.com$ +(^|\.)asdfg\.jp$ +(^|\.)asg\.to$ +(^|\.)asia-gaming\.com$ +(^|\.)asiaharvest\.org$ +(^|\.)asianews\.it$ +(^|\.)asiansexdiary\.com$ +(^|\.)asianspiss\.com$ +(^|\.)asianwomensfilm\.de$ +(^|\.)asiatgp\.com$ +(^|\.)asiatoday\.us$ +(^|\.)askstudent\.com$ +(^|\.)askynz\.net$ +(^|\.)assembla\.com$ +(^|\.)assimp\.org$ +(^|\.)astrill\.com$ +(^|\.)atc\.org\.au$ +(^|\.)atchinese\.com$ +(^|\.)atdmt\.com$ +(^|\.)atgfw\.org$ +(^|\.)athenaeizou\.com$ +(^|\.)atlanta168\.com$ +(^|\.)atlaspost\.com$ +(^|\.)atnext\.com$ +(^|\.)authorizeddns\.net$ +(^|\.)authorizeddns\.org$ +(^|\.)authorizeddns\.us$ +(^|\.)autodraw\.com$ +(^|\.)av\.com$ +(^|\.)av\.movie$ +(^|\.)av\.nightlife141\.com$ +(^|\.)avaaz\.org$ +(^|\.)avbody\.tv$ +(^|\.)avcity\.tv$ +(^|\.)avcool\.com$ +(^|\.)avdb\.in$ +(^|\.)avdb\.tv$ +(^|\.)avfantasy\.com$ +(^|\.)avidemux\.org$ +(^|\.)avmo\.pw$ +(^|\.)avmoo\.com$ +(^|\.)avmoo\.net$ +(^|\.)avmoo\.pw$ +(^|\.)avoision\.com$ +(^|\.)avyahoo\.com$ +(^|\.)axureformac\.com$ +(^|\.)azerbaycan\.tv$ +(^|\.)azerimix\.com$ +(^|\.)azubu\.tv$ +(^|\.)b0ne\.com$ +(^|\.)babynet\.com\.hk$ +(^|\.)backchina\.com$ +(^|\.)backpackers\.com\.tw$ +(^|\.)backtotiananmen\.com$ +(^|\.)badjojo\.com$ +(^|\.)badoo\.com$ +(^|\.)baidu\.jp$ +(^|\.)bailandaily\.com$ +(^|\.)baixing\.me$ +(^|\.)bakgeekhome\.tk$ +(^|\.)banana-vpn\.com$ +(^|\.)bandwagonhost\.com$ +(^|\.)bangbrosnetwork\.com$ +(^|\.)bangchen\.net$ +(^|\.)bangyoulater\.com$ +(^|\.)bannedbook\.org$ +(^|\.)bannednews\.org$ +(^|\.)banorte\.com$ +(^|\.)baramangaonline\.com$ +(^|\.)barenakedislam\.com$ +(^|\.)barnabu\.co\.uk$ +(^|\.)bartvpn\.com$ +(^|\.)bash-hackers\.org$ +(^|\.)bastillepost\.com$ +(^|\.)bayvoice\.net$ +(^|\.)bb-chat\.tv$ +(^|\.)bb\.ttv\.com\.tw$ +(^|\.)bbc\.co\.uk$ +(^|\.)bbc\.com$ +(^|\.)bbc\.com%2fzhongwen$ +(^|\.)bbc\.in$ +(^|\.)bbcchinese\.com$ +(^|\.)bbchat\.tv$ +(^|\.)bbg\.gov$ +(^|\.)bbkz\.com$ +(^|\.)bbnradio\.org$ +(^|\.)bbs-tw\.com$ +(^|\.)bbs\.brockbbs\.com$ +(^|\.)bbs\.cantonese\.asia$ +(^|\.)bbs\.ecstart\.com$ +(^|\.)bbs\.hanminzu\.org$ +(^|\.)bbs\.hasi\.wang$ +(^|\.)bbs\.huasing\.org$ +(^|\.)bbs\.junglobal\.net$ +(^|\.)bbs\.kimy\.com\.tw$ +(^|\.)bbs\.morbell\.com$ +(^|\.)bbs\.mychat\.to$ +(^|\.)bbs\.netbig\.com$ +(^|\.)bbs\.ozchinese\.com$ +(^|\.)bbs\.qmzdd\.com$ +(^|\.)bbs\.sina\.com$ +(^|\.)bbs\.sina\.com%2f$ +(^|\.)bbs\.skykiwi\.com$ +(^|\.)bbs\.sou-tong\.org$ +(^|\.)bbs\.tuitui\.info$ +(^|\.)bbsdigest\.com$ +(^|\.)bbsfeed\.com$ +(^|\.)bbsland\.com$ +(^|\.)bbsmo\.com$ +(^|\.)bbsone\.com$ +(^|\.)bbtoystore\.com$ +(^|\.)bcast\.co\.nz$ +(^|\.)bcc\.com\.tw$ +(^|\.)bcchinese\.net$ +(^|\.)bcmorning\.com$ +(^|\.)bdsmvideos\.net$ +(^|\.)beaconevents\.com$ +(^|\.)bebo\.com$ +(^|\.)beeg\.com$ +(^|\.)beevpn\.com$ +(^|\.)behindkink\.com$ +(^|\.)beijing1989\.com$ +(^|\.)beijingspring\.com$ +(^|\.)beijingzx\.org$ +(^|\.)belamionline\.com$ +(^|\.)bell\.wiki$ +(^|\.)bemywife\.cc$ +(^|\.)beric\.me$ +(^|\.)berlintwitterwall\.com$ +(^|\.)berm\.co\.nz$ +(^|\.)bestforchina\.org$ +(^|\.)bestgore\.com$ +(^|\.)bestpornstardb\.com$ +(^|\.)bestvpn\.com$ +(^|\.)bestvpnanalysis\.com$ +(^|\.)bestvpnserver\.com$ +(^|\.)bestvpnservice\.com$ +(^|\.)bestvpnusa\.com$ +(^|\.)bet365\.com$ +(^|\.)beta\.usejump\.com$ +(^|\.)betfair\.com$ +(^|\.)betternet\.co$ +(^|\.)bettervpn\.com$ +(^|\.)bettween\.com$ +(^|\.)betvictor\.com$ +(^|\.)bewww\.net$ +(^|\.)beyondfirewall\.com$ +(^|\.)bfnn\.org$ +(^|\.)bfsh\.hk$ +(^|\.)bgvpn\.com$ +(^|\.)bianlei\.com$ +(^|\.)biantailajiao\.com$ +(^|\.)biantailajiao\.in$ +(^|\.)biblesforamerica\.org$ +(^|\.)bic2011\.org$ +(^|\.)bigfools\.com$ +(^|\.)bigjapanesesex\.com$ +(^|\.)bigmoney\.biz$ +(^|\.)bignews\.org$ +(^|\.)bigsound\.org$ +(^|\.)biliworld\.com$ +(^|\.)billypan\.com$ +(^|\.)binux\.me$ +(^|\.)bipic\.net$ +(^|\.)bit\.do$ +(^|\.)bit\.ly$ +(^|\.)bitc\.bme\.emory\.edu$ +(^|\.)bitcointalk\.org$ +(^|\.)bitmex\.com$ +(^|\.)bitshare\.com$ +(^|\.)bitsnoop\.com$ +(^|\.)bitvise\.com$ +(^|\.)bizhat\.com$ +(^|\.)bjnewlife\.org$ +(^|\.)bjs\.org$ +(^|\.)bjzc\.org$ +(^|\.)bl-doujinsouko\.com$ +(^|\.)blacklogic\.com$ +(^|\.)blackvpn\.com$ +(^|\.)blewpass\.com$ +(^|\.)blinkx\.com$ +(^|\.)blinw\.com$ +(^|\.)blip\.tv$ +(^|\.)blockcn\.com$ +(^|\.)blockless\.com$ +(^|\.)blog\.calibre-ebook\.com$ +(^|\.)blog\.cnyes\.com$ +(^|\.)blog\.daum\.net$ +(^|\.)blog\.de$ +(^|\.)blog\.exblog\.co\.jp$ +(^|\.)blog\.excite\.co\.jp$ +(^|\.)blog\.expofutures\.com$ +(^|\.)blog\.fizzik\.com$ +(^|\.)blog\.foolsmountain\.com$ +(^|\.)blog\.fuckgfw233\.org$ +(^|\.)blog\.goo\.ne\.jp$ +(^|\.)blog\.google$ +(^|\.)blog\.inoreader\.com$ +(^|\.)blog\.istef\.info$ +(^|\.)blog\.jackjia\.com$ +(^|\.)blog\.jp$ +(^|\.)blog\.kangye\.org$ +(^|\.)blog\.lester850\.info$ +(^|\.)blog\.martinoei\.com$ +(^|\.)blog\.pathtosharepoint\.com$ +(^|\.)blog\.pentalogic\.net$ +(^|\.)blog\.qooza\.hk$ +(^|\.)blog\.ranxiang\.com$ +(^|\.)blog\.sina\.com\.tw$ +(^|\.)blog\.sogoo\.org$ +(^|\.)blog\.soylent\.com$ +(^|\.)blog\.syx86\.cn$ +(^|\.)blog\.syx86\.com$ +(^|\.)blog\.taragana\.com$ +(^|\.)blog\.tiney\.com$ +(^|\.)blog\.xuite\.net$ +(^|\.)blog\.youthwant\.com\.tw$ +(^|\.)blog\.youxu\.info$ +(^|\.)blogblog\.com$ +(^|\.)blogcatalog\.com$ +(^|\.)blogcity\.me$ +(^|\.)blogdns\.org$ +(^|\.)blogger\.com$ +(^|\.)blogimg\.jp$ +(^|\.)bloglines\.com$ +(^|\.)bloglovin\.com$ +(^|\.)blogs\.icerocket\.com$ +(^|\.)blogs\.libraryinformationtechnology\.com$ +(^|\.)blogs\.tampabay\.com$ +(^|\.)blogs\.yahoo\.co\.jp$ +(^|\.)blogspot(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?){1,2}$ +(^|\.)blogtd\.net$ +(^|\.)blogtd\.org$ +(^|\.)bloodshed\.net$ +(^|\.)bloomberg\.cn$ +(^|\.)bloomberg\.com$ +(^|\.)bloomberg\.de$ +(^|\.)bloombergview\.com$ +(^|\.)bloomfortune\.com$ +(^|\.)blueangellive\.com$ +(^|\.)bmfinn\.com$ +(^|\.)bnews\.co$ +(^|\.)bnrmetal\.com$ +(^|\.)boardreader\.com$ +(^|\.)bod\.asia$ +(^|\.)bodog88\.com$ +(^|\.)bolehvpn\.net$ +(^|\.)bolin\.netfirms\.com$ +(^|\.)bonbonme\.com$ +(^|\.)bonbonsex\.com$ +(^|\.)bonfoundation\.org$ +(^|\.)bongacams\.com$ +(^|\.)boobstagram\.com$ +(^|\.)book\.com\.tw$ +(^|\.)book\.zi5\.me$ +(^|\.)bookepub\.com$ +(^|\.)books\.com\.tw$ +(^|\.)boomssr\.com$ +(^|\.)bot\.nu$ +(^|\.)botanwang\.com$ +(^|\.)bowenpress\.com$ +(^|\.)boxpn\.com$ +(^|\.)boxun$ +(^|\.)boxun\.com$ +(^|\.)boxun\.tv$ +(^|\.)boxunblog\.com$ +(^|\.)boxunclub\.com$ +(^|\.)boyangu\.com$ +(^|\.)boyfriendtv\.com$ +(^|\.)boysfood\.com$ +(^|\.)boysmaster\.com$ +(^|\.)br\.hao123\.com$ +(^|\.)br\.st$ +(^|\.)brainyquote\.com$ +(^|\.)brandonhutchinson\.com$ +(^|\.)braumeister\.org$ +(^|\.)bravotube\.net$ +(^|\.)brazzers\.com$ +(^|\.)break\.com$ +(^|\.)breakgfw\.com$ +(^|\.)breaking911\.com$ +(^|\.)breakingtweets\.com$ +(^|\.)breakwall\.net$ +(^|\.)briefdream\.com$ +(^|\.)briian\.com$ +(^|\.)brizzly\.com$ +(^|\.)brkmd\.com$ +(^|\.)broadbook\.com$ +(^|\.)broadpressinc\.com$ +(^|\.)brucewang\.net$ +(^|\.)brutaltgp\.com$ +(^|\.)bt2mag\.com$ +(^|\.)bt95\.com$ +(^|\.)btaia\.com$ +(^|\.)btbtav\.com$ +(^|\.)btdigg\.org$ +(^|\.)btku\.me$ +(^|\.)btku\.org$ +(^|\.)btspread\.com$ +(^|\.)budaedu\.org$ +(^|\.)buddhanet\.com\.tw$ +(^|\.)buddhistchannel\.tv$ +(^|\.)buffered\.com$ +(^|\.)bullog\.org$ +(^|\.)bullogger\.com$ +(^|\.)bunbunhk\.com$ +(^|\.)busayari\.com$ +(^|\.)businessinsider\.com$ +(^|\.)businessweek\.com$ +(^|\.)busu\.org$ +(^|\.)busytrade\.com$ +(^|\.)buugaa\.com$ +(^|\.)buy\.yahoo\.com\.tw$ +(^|\.)buzzhand\.com$ +(^|\.)buzzhand\.net$ +(^|\.)buzzorange\.com$ +(^|\.)bvpn\.com$ +(^|\.)bwsj\.hk$ +(^|\.)bx\.tl$ +(^|\.)bynet\.co\.il$ +(^|\.)c-est-simple\.com$ +(^|\.)c-spanvideo\.org$ +(^|\.)c100tibet\.org$ +(^|\.)c1522\.mooo\.com$ +(^|\.)cablegatesearch\.net$ +(^|\.)cachinese\.com$ +(^|\.)cacnw\.com$ +(^|\.)cactusvpn\.com$ +(^|\.)cafepress\.com$ +(^|\.)cahr\.org\.tw$ +(^|\.)calameo\.com$ +(^|\.)calebelston\.com$ +(^|\.)calgarychinese\.ca$ +(^|\.)calgarychinese\.com$ +(^|\.)calgarychinese\.net$ +(^|\.)cam4\.com$ +(^|\.)cam4\.jp$ +(^|\.)cam4\.sg$ +(^|\.)camfrog\.com$ +(^|\.)cams\.com$ +(^|\.)cams\.org\.sg$ +(^|\.)canadameet\.com$ +(^|\.)canalporno\.com$ +(^|\.)canyu\.org$ +(^|\.)cao\.im$ +(^|\.)caobian\.info$ +(^|\.)caochangqing\.com$ +(^|\.)cap\.org\.hk$ +(^|\.)carabinasypistolas\.com$ +(^|\.)cardinalkungfoundation\.org$ +(^|\.)carfax\.com$ +(^|\.)cari\.com\.my$ +(^|\.)caribbeancom\.com$ +(^|\.)carmotorshow\.com$ +(^|\.)cartoonmovement\.com$ +(^|\.)casadeltibetbcn\.org$ +(^|\.)casatibet\.org\.mx$ +(^|\.)casino\.williamhill\.com$ +(^|\.)casinobellini\.com$ +(^|\.)casinoking\.com$ +(^|\.)casinoriva\.com$ +(^|\.)castbox\.fm$ +(^|\.)catch22\.net$ +(^|\.)catfightpayperview\.xxx$ +(^|\.)catholic\.org\.hk$ +(^|\.)catholic\.org\.tw$ +(^|\.)cathvoice\.org\.tw$ +(^|\.)cattt\.com$ +(^|\.)cbc\.ca$ +(^|\.)cbs\.ntu\.edu\.tw$ +(^|\.)cbsnews\.com$ +(^|\.)cbtc\.org\.hk$ +(^|\.)cccat\.cc$ +(^|\.)cccat\.co$ +(^|\.)ccdtr\.org$ +(^|\.)cchere\.com$ +(^|\.)ccim\.org$ +(^|\.)cclife\.ca$ +(^|\.)cclife\.org$ +(^|\.)cclifefl\.org$ +(^|\.)ccthere\.com$ +(^|\.)cctmweb\.net$ +(^|\.)cctongbao\.com$ +(^|\.)ccue\.ca$ +(^|\.)ccue\.com$ +(^|\.)ccvoice\.ca$ +(^|\.)ccw\.org\.tw$ +(^|\.)cdbook\.org$ +(^|\.)cdcparty\.com$ +(^|\.)cdef\.org$ +(^|\.)cdig\.info$ +(^|\.)cdjp\.org$ +(^|\.)cdn$ +(^|\.)cdn-apple\.com$ +(^|\.)cdn-images\.mailchimp\.com$ +(^|\.)cdn\.assets\.lfpcontent\.com$ +(^|\.)cdn\.helixstudios\.net$ +(^|\.)cdn\.printfriendly\.com$ +(^|\.)cdn\.softlayer\.net$ +(^|\.)cdn1\.lp\.saboom\.com$ +(^|\.)cdnews\.com\.tw$ +(^|\.)cdninstagram\.com$ +(^|\.)cdp1989\.org$ +(^|\.)cdp1998\.org$ +(^|\.)cdp2006\.org$ +(^|\.)cdpa\.url\.tw$ +(^|\.)cdpeu\.org$ +(^|\.)cdpusa\.org$ +(^|\.)cdpweb\.org$ +(^|\.)cdpwu\.org$ +(^|\.)cdw\.com$ +(^|\.)cecc\.gov$ +(^|\.)cellulo\.info$ +(^|\.)cenews\.eu$ +(^|\.)centauro\.com\.br$ +(^|\.)centerforhumanreprod\.com$ +(^|\.)centralnation\.com$ +(^|\.)centurys\.net$ +(^|\.)certificate-transparency\.org$ +(^|\.)certificate\.revocationcheck\.com$ +(^|\.)cfhks\.org\.hk$ +(^|\.)cftfc\.com$ +(^|\.)cgdepot\.org$ +(^|\.)cgst\.edu$ +(^|\.)ch\.shvoong\.com$ +(^|\.)change\.org$ +(^|\.)changeip\.name$ +(^|\.)changeip\.net$ +(^|\.)changeip\.org$ +(^|\.)changp\.com$ +(^|\.)changsa\.net$ +(^|\.)channel8news\.sg$ +(^|\.)chapm25\.com$ +(^|\.)chatnook\.com$ +(^|\.)chaturbate\.com$ +(^|\.)chengmingmag\.com$ +(^|\.)chenguangcheng\.com$ +(^|\.)chenpokong\.com$ +(^|\.)chenpokong\.net$ +(^|\.)chenshan20042005\.wordpress\.com$ +(^|\.)cherrysave\.com$ +(^|\.)chhongbi\.org$ +(^|\.)chicagoncmtv\.com$ +(^|\.)china-mmm\.jp\.net$ +(^|\.)china-mmm\.net$ +(^|\.)china-mmm\.sa\.com$ +(^|\.)china-review\.com\.ua$ +(^|\.)china-week\.com$ +(^|\.)china\.hket\.com$ +(^|\.)china\.ucanews\.com$ +(^|\.)china101\.com$ +(^|\.)china18\.org$ +(^|\.)china21\.com$ +(^|\.)china21\.org$ +(^|\.)china5000\.us$ +(^|\.)chinaaffairs\.org$ +(^|\.)chinaaid\.me$ +(^|\.)chinaaid\.net$ +(^|\.)chinaaid\.org$ +(^|\.)chinaaid\.us$ +(^|\.)chinachange\.org$ +(^|\.)chinachannel\.hk$ +(^|\.)chinacitynews\.be$ +(^|\.)chinacomments\.org$ +(^|\.)chinadialogue\.net$ +(^|\.)chinadigitaltimes\.net$ +(^|\.)chinaelections\.org$ +(^|\.)chinaeweekly\.com$ +(^|\.)chinafreepress\.org$ +(^|\.)chinagate\.com$ +(^|\.)chinageeks\.org$ +(^|\.)chinagfw\.org$ +(^|\.)chinagonet\.com$ +(^|\.)chinagreenparty\.org$ +(^|\.)chinahorizon\.org$ +(^|\.)chinahush\.com$ +(^|\.)chinainperspective\.com$ +(^|\.)chinainterimgov\.org$ +(^|\.)chinalaborwatch\.org$ +(^|\.)chinalawandpolicy\.com$ +(^|\.)chinalawtranslate\.com$ +(^|\.)chinamule\.com$ +(^|\.)chinamz\.org$ +(^|\.)chinapost\.com\.tw$ +(^|\.)chinapress\.com\.my$ +(^|\.)chinarightsia\.org$ +(^|\.)chinasmile\.net$ +(^|\.)chinasocialdemocraticparty\.com$ +(^|\.)chinasoul\.org$ +(^|\.)chinasucks\.net$ +(^|\.)chinatimes\.com$ +(^|\.)chinatopsex\.com$ +(^|\.)chinatown\.com\.au$ +(^|\.)chinatweeps\.com$ +(^|\.)chinaway\.org$ +(^|\.)chinaworker\.info$ +(^|\.)chinaxchina\.com$ +(^|\.)chinayouth\.org\.hk$ +(^|\.)chinayuanmin\.org$ +(^|\.)chinese-hermit\.net$ +(^|\.)chinese-leaders\.org$ +(^|\.)chinese-memorial\.org$ +(^|\.)chinese\.donga\.com$ +(^|\.)chinese\.engadget\.com$ +(^|\.)chinese\.irib\.ir$ +(^|\.)chinese\.soifind\.com$ +(^|\.)chinesedaily\.com$ +(^|\.)chinesedailynews\.com$ +(^|\.)chinesedemocracy\.com$ +(^|\.)chinesegay\.org$ +(^|\.)chinesen\.de$ +(^|\.)chinesepen\.org$ +(^|\.)chinesetalks\.net$ +(^|\.)chineseupress\.com$ +(^|\.)chingcheong\.com$ +(^|\.)chinman\.net$ +(^|\.)chithu\.org$ +(^|\.)chn\.chosun\.com$ +(^|\.)chrdnet\.com$ +(^|\.)christianfreedom\.org$ +(^|\.)christianstudy\.com$ +(^|\.)christiantimes\.org\.hk$ +(^|\.)christusrex\.org$ +(^|\.)chrlawyers\.hk$ +(^|\.)chrome\.com$ +(^|\.)chromecast\.com$ +(^|\.)chromeexperiments\.com$ +(^|\.)chromercise\.com$ +(^|\.)chromestatus\.com$ +(^|\.)chromium\.org$ +(^|\.)chuang-yen\.org$ +(^|\.)chubold\.com$ +(^|\.)chubun\.com$ +(^|\.)chuizi\.net$ +(^|\.)churchinhongkong\.org$ +(^|\.)chushigangdrug\.ch$ +(^|\.)cienen\.com$ +(^|\.)cineastentreff\.de$ +(^|\.)cipfg\.org$ +(^|\.)circlethebayfortibet\.org$ +(^|\.)citizencn\.com$ +(^|\.)citizenlab\.org$ +(^|\.)citizenscommission\.hk$ +(^|\.)citizensradio\.org$ +(^|\.)city365\.ca$ +(^|\.)city9x\.com$ +(^|\.)citypopulation\.de$ +(^|\.)citytalk\.tw$ +(^|\.)civicparty\.hk$ +(^|\.)civildisobediencemovement\.org$ +(^|\.)civilhrfront\.org$ +(^|\.)civiliangunner\.com$ +(^|\.)civilmedia\.tw$ +(^|\.)ck101\.com$ +(^|\.)cl\.d0z\.net$ +(^|\.)clarionproject\.org$ +(^|\.)classicalguitarblog\.net$ +(^|\.)clb\.org\.hk$ +(^|\.)cldr\.unicode\.org$ +(^|\.)cleansite\.biz$ +(^|\.)cleansite\.info$ +(^|\.)cleansite\.us$ +(^|\.)clearharmony\.net$ +(^|\.)clearwisdom\.net$ +(^|\.)clementine-player\.org$ +(^|\.)cling\.omy\.sg$ +(^|\.)clinica-tibet\.ru$ +(^|\.)clipfish\.de$ +(^|\.)cloakpoint\.com$ +(^|\.)cloud\.mail\.ru$ +(^|\.)club1069\.com$ +(^|\.)cmi\.org\.tw$ +(^|\.)cmp\.hku\.hk$ +(^|\.)cms\.gov$ +(^|\.)cmule\.com$ +(^|\.)cmule\.org$ +(^|\.)cn-proxy\.com$ +(^|\.)cn\.calameo\.com$ +(^|\.)cn\.dayabook\.com$ +(^|\.)cn\.fmnnow\.com$ +(^|\.)cn\.freeones\.com$ +(^|\.)cn\.giganews\.com$ +(^|\.)cn\.ibtimes\.com$ +(^|\.)cn\.nytstyle\.com$ +(^|\.)cn\.sandscotaicentral\.com$ +(^|\.)cn\.shafaqna\.com$ +(^|\.)cn\.streetvoice\.com$ +(^|\.)cn\.uncyclopedia\.wikia\.com$ +(^|\.)cn\.uptodown\.com$ +(^|\.)cn\.voa\.mobi$ +(^|\.)cn2\.streetvoice\.com$ +(^|\.)cn6\.eu$ +(^|\.)cna\.com\.tw$ +(^|\.)cnabc\.com$ +(^|\.)cnbbnews\.wordpress\.com$ +(^|\.)cnd\.org$ +(^|\.)cnex\.org\.cn$ +(^|\.)cnineu\.com$ +(^|\.)cnn\.com$ +(^|\.)cnnews\.chosun\.com$ +(^|\.)cnpolitics\.org$ +(^|\.)cnproxy\.com$ +(^|\.)co\.ng\.mil$ +(^|\.)coat\.co\.jp$ +(^|\.)cochina\.co$ +(^|\.)cochina\.org$ +(^|\.)code1984\.com$ +(^|\.)codeshare\.io$ +(^|\.)codeskulptor\.org$ +(^|\.)collateralmurder\.com$ +(^|\.)collateralmurder\.org$ +(^|\.)com\.google$ +(^|\.)comefromchina\.com$ +(^|\.)comic-mega\.me$ +(^|\.)commandarms\.com$ +(^|\.)commentshk\.com$ +(^|\.)communistcrimes\.org$ +(^|\.)community\.windy\.com$ +(^|\.)communitychoicecu\.com$ +(^|\.)compileheart\.com$ +(^|\.)compress\.to$ +(^|\.)connect\.facebook\.net$ +(^|\.)conoha\.jp$ +(^|\.)contactmagazine\.net$ +(^|\.)contests\.twilio\.com$ +(^|\.)convio\.net$ +(^|\.)coobay\.com$ +(^|\.)coolaler\.com$ +(^|\.)coolder\.com$ +(^|\.)coolloud\.org\.tw$ +(^|\.)coolncute\.com$ +(^|\.)corumcollege\.com$ +(^|\.)cos-moe\.com$ +(^|\.)cosmic\.monar\.ch$ +(^|\.)cosplayjav\.pl$ +(^|\.)cotweet\.com$ +(^|\.)coursehero\.com$ +(^|\.)cpj\.org$ +(^|\.)cq99\.us$ +(^|\.)crackle\.com$ +(^|\.)crazys\.cc$ +(^|\.)crchina\.org$ +(^|\.)crd-net\.org$ +(^|\.)creaders\.net$ +(^|\.)creadersnet\.com$ +(^|\.)creativelab5\.com$ +(^|\.)cristyli\.com$ +(^|\.)crocotube\.com$ +(^|\.)crossfire\.co\.kr$ +(^|\.)crossthewall\.net$ +(^|\.)crossvpn\.net$ +(^|\.)crrev\.com$ +(^|\.)crucial\.com$ +(^|\.)csdparty\.com$ +(^|\.)css\.pixnet\.in$ +(^|\.)csuchen\.de$ +(^|\.)csw\.org\.uk$ +(^|\.)ct\.org\.tw$ +(^|\.)ctao\.org$ +(^|\.)ctfriend\.net$ +(^|\.)cthlo\.github\.io$ +(^|\.)ctitv\.com\.tw$ +(^|\.)cts\.com\.tw$ +(^|\.)cuhkacs\.org$ +(^|\.)cuihua\.org$ +(^|\.)cuiweiping\.net$ +(^|\.)culture\.tw$ +(^|\.)cumlouder\.com$ +(^|\.)curvefish\.com$ +(^|\.)cusu\.hk$ +(^|\.)cw\.com\.tw$ +(^|\.)cyberghost\.natado\.com$ +(^|\.)cyberghostvpn\.com$ +(^|\.)cynscribe\.com$ +(^|\.)cytode\.us$ +(^|\.)d-fukyu\.com$ +(^|\.)d100\.net$ +(^|\.)d1b183sg0nvnuh\.cloudfront\.net$ +(^|\.)d1c37gjwa26taa\.cloudfront\.net$ +(^|\.)d2bay\.com$ +(^|\.)d2pass\.com$ +(^|\.)d3c33hcgiwev3\.cloudfront\.net$ +(^|\.)d3rhr7kgmtrq1v\.cloudfront\.net$ +(^|\.)dabr\.co\.uk$ +(^|\.)dabr\.eu$ +(^|\.)dabr\.me$ +(^|\.)dabr\.mobi$ +(^|\.)dadazim\.com$ +(^|\.)dadi360\.com$ +(^|\.)dafagood\.com$ +(^|\.)dafahao\.com$ +(^|\.)dafoh\.org$ +(^|\.)dagelijksestandaard\.nl$ +(^|\.)daidostup\.ru$ +(^|\.)dailidaili\.com$ +(^|\.)dailymotion\.com$ +(^|\.)dailynews\.sina\.com$ +(^|\.)dailynews\.sina\.com%2f$ +(^|\.)daiphapinfo\.net$ +(^|\.)dajiyuan\.com$ +(^|\.)dajiyuan\.de$ +(^|\.)dajiyuan\.eu$ +(^|\.)dajusha\.baywords\.com$ +(^|\.)dalailama-archives\.org$ +(^|\.)dalailama\.com$ +(^|\.)dalailama\.mn$ +(^|\.)dalailama\.ru$ +(^|\.)dalailama\.usc\.edu$ +(^|\.)dalailama80\.org$ +(^|\.)dalailamacenter\.org$ +(^|\.)dalailamafellows\.org$ +(^|\.)dalailamafilm\.com$ +(^|\.)dalailamafoundation\.org$ +(^|\.)dalailamahindi\.com$ +(^|\.)dalailamainaustralia\.org$ +(^|\.)dalailamajapanese\.com$ +(^|\.)dalailamaprotesters\.info$ +(^|\.)dalailamaquotes\.org$ +(^|\.)dalailamatrust\.org$ +(^|\.)dalailamavisit\.org\.nz$ +(^|\.)dalailamaworld\.com$ +(^|\.)dalianmeng\.org$ +(^|\.)daliulian\.org$ +(^|\.)danbooru\.donmai\.us$ +(^|\.)danke4china\.net$ +(^|\.)danwei\.org$ +(^|\.)daodu14\.jigsy\.com$ +(^|\.)daolan\.net$ +(^|\.)daozhongxing\.org$ +(^|\.)darktech\.org$ +(^|\.)darktoy\.net$ +(^|\.)darpa\.mil$ +(^|\.)dastrassi\.org$ +(^|\.)data-vocabulary\.org$ +(^|\.)data\.flurry\.com$ +(^|\.)data\.gov\.tw$ +(^|\.)david-kilgour\.com$ +(^|\.)dawangidc\.com$ +(^|\.)daxa\.cn$ +(^|\.)daylife\.com$ +(^|\.)db\.tt$ +(^|\.)dbc\.hk$ +(^|\.)dcard\.tw$ +(^|\.)dcmilitary\.com$ +(^|\.)ddc\.com\.tw$ +(^|\.)ddhw\.info$ +(^|\.)ddns\.info$ +(^|\.)ddns\.me\.uk$ +(^|\.)ddns\.mobi$ +(^|\.)ddns\.ms$ +(^|\.)ddns\.name$ +(^|\.)ddns\.net$ +(^|\.)ddns\.us$ +(^|\.)de-sci\.org$ +(^|\.)deaftone\.com$ +(^|\.)debug\.com$ +(^|\.)deck\.ly$ +(^|\.)decodet\.co$ +(^|\.)deepmind\.com$ +(^|\.)deezer\.com$ +(^|\.)definebabe\.com$ +(^|\.)deja\.com$ +(^|\.)delcamp\.net$ +(^|\.)delicious\.com$ +(^|\.)demo\.opera-mini\.net$ +(^|\.)democrats\.org$ +(^|\.)depositphotos\.com$ +(^|\.)derekhsu\.homeip\.net$ +(^|\.)desc\.se$ +(^|\.)design\.google$ +(^|\.)desipro\.de$ +(^|\.)dessci\.com$ +(^|\.)destiny\.xfiles\.to$ +(^|\.)destroy-china\.jp$ +(^|\.)deutsche-welle\.de$ +(^|\.)developers\.box\.net$ +(^|\.)devio\.us$ +(^|\.)devpn\.com$ +(^|\.)dfas\.mil$ +(^|\.)dfn\.org$ +(^|\.)dharamsalanet\.com$ +(^|\.)dharmakara\.net$ +(^|\.)dhcp\.biz$ +(^|\.)diaoyuislands\.org$ +(^|\.)dictionary\.goo\.ne\.jp$ +(^|\.)digiland\.tw$ +(^|\.)digisfera\.com$ +(^|\.)digitalnomadsproject\.org$ +(^|\.)diigo\.com$ +(^|\.)dilber\.se$ +(^|\.)dingchin\.com\.tw$ +(^|\.)dipity\.com$ +(^|\.)directcreative\.com$ +(^|\.)discuss\.com\.hk$ +(^|\.)discuss4u\.com$ +(^|\.)dish\.com$ +(^|\.)disp\.cc$ +(^|\.)disqus\.com$ +(^|\.)dit-inc\.us$ +(^|\.)dizhidizhi\.com$ +(^|\.)dizhuzhishang\.com$ +(^|\.)djangosnippets\.org$ +(^|\.)djorz\.com$ +(^|\.)dl-laby\.jp$ +(^|\.)dl\.box\.net$ +(^|\.)dlsite\.com$ +(^|\.)dlyoutube\.com$ +(^|\.)dm530\.net$ +(^|\.)dmcdn\.net$ +(^|\.)dmm\.co\.jp$ +(^|\.)dns-dns\.com$ +(^|\.)dns-stuff\.com$ +(^|\.)dns04\.com$ +(^|\.)dns05\.com$ +(^|\.)dns1\.us$ +(^|\.)dns2\.us$ +(^|\.)dns2go\.com$ +(^|\.)dnscrypt\.org$ +(^|\.)dnset\.com$ +(^|\.)dnsrd\.com$ +(^|\.)dnssec\.net$ +(^|\.)dnvod\.tv$ +(^|\.)doctorvoice\.org$ +(^|\.)dogfartnetwork\.com$ +(^|\.)dojin\.com$ +(^|\.)dok-forum\.net$ +(^|\.)dolc\.de$ +(^|\.)dolf\.org\.hk$ +(^|\.)dollf\.com$ +(^|\.)domain\.club\.tw$ +(^|\.)domainhelp\.search\.com$ +(^|\.)domains\.google$ +(^|\.)domaintoday\.com\.au$ +(^|\.)dongtaiwang\.com$ +(^|\.)dongtaiwang\.net$ +(^|\.)dongyangjing\.com$ +(^|\.)dontfilter\.us$ +(^|\.)dontmovetochina\.com$ +(^|\.)dorjeshugden\.com$ +(^|\.)dotplane\.com$ +(^|\.)dotsub\.com$ +(^|\.)dotvpn\.com$ +(^|\.)doub\.io$ +(^|\.)dougscripts\.com$ +(^|\.)douhokanko\.net$ +(^|\.)doujincafe\.com$ +(^|\.)dowei\.org$ +(^|\.)download\.aircrack-ng\.org$ +(^|\.)download\.cnet\.com$ +(^|\.)download\.ithome\.com\.tw$ +(^|\.)dphk\.org$ +(^|\.)dpp\.org\.tw$ +(^|\.)dpr\.info$ +(^|\.)dragonsprings\.org$ +(^|\.)dreamamateurs\.com$ +(^|\.)drepung\.org$ +(^|\.)drgan\.net$ +(^|\.)drmingxia\.org$ +(^|\.)dropbooks\.tv$ +(^|\.)dropbox\.com$ +(^|\.)dropboxusercontent\.com$ +(^|\.)drsunacademy\.com$ +(^|\.)drtuber\.com$ +(^|\.)dscn\.info$ +(^|\.)dsmtp\.com$ +(^|\.)dstk\.dk$ +(^|\.)dtdns\.net$ +(^|\.)dtiblog\.com$ +(^|\.)dtic\.mil$ +(^|\.)dtwang\.org$ +(^|\.)duanzhihu\.com$ +(^|\.)duck\.com$ +(^|\.)duckdns\.org$ +(^|\.)duckduckgo-owned-server\.yahoo\.net$ +(^|\.)duckduckgo\.com$ +(^|\.)duckload\.com$ +(^|\.)duckmylife\.com$ +(^|\.)duga\.jp$ +(^|\.)duihua\.org$ +(^|\.)duihuahrjournal\.org$ +(^|\.)dumb1\.com$ +(^|\.)dunyabulteni\.net$ +(^|\.)duoweitimes\.com$ +(^|\.)duping\.net$ +(^|\.)duplicati\.com$ +(^|\.)dupola\.com$ +(^|\.)dupola\.net$ +(^|\.)dushi\.ca$ +(^|\.)dvorak\.org$ +(^|\.)dw-world\.com$ +(^|\.)dw-world\.de$ +(^|\.)dw\.com$ +(^|\.)dw\.de$ +(^|\.)dwnews\.com$ +(^|\.)dwnews\.net$ +(^|\.)dynamic-dns\.net$ +(^|\.)dynamicdns\.biz$ +(^|\.)dynamicdns\.co\.uk$ +(^|\.)dynamicdns\.me\.uk$ +(^|\.)dynamicdns\.org\.uk$ +(^|\.)dynawebinc\.com$ +(^|\.)dyndns-ip\.com$ +(^|\.)dyndns-pics\.com$ +(^|\.)dyndns\.org$ +(^|\.)dyndns\.pro$ +(^|\.)dynssl\.com$ +(^|\.)dynu\.com$ +(^|\.)dynu\.net$ +(^|\.)dynupdate\.no-ip\.com$ +(^|\.)dzze\.com$ +(^|\.)e-classical\.com\.tw$ +(^|\.)e-gold\.com$ +(^|\.)e-hentai\.org$ +(^|\.)e-hentaidb\.com$ +(^|\.)e-info\.org\.tw$ +(^|\.)e-traderland\.net$ +(^|\.)e-zone\.com\.hk$ +(^|\.)e123\.hk$ +(^|\.)earlytibet\.com$ +(^|\.)earthcam\.com$ +(^|\.)earthvpn\.com$ +(^|\.)eastern-ark\.com$ +(^|\.)easternlightning\.org$ +(^|\.)eastturkestan\.com$ +(^|\.)eastturkistan-gov\.org$ +(^|\.)eastturkistancc\.org$ +(^|\.)eastturkistangovernmentinexile\.us$ +(^|\.)easyca\.ca$ +(^|\.)easypic\.com$ +(^|\.)ebony-beauty\.com$ +(^|\.)ebook\.hyread\.com\.tw$ +(^|\.)ebookbrowse\.com$ +(^|\.)ebookee\.com$ +(^|\.)ecfa\.org\.tw$ +(^|\.)echofon\.com$ +(^|\.)ecimg\.tw$ +(^|\.)ecministry\.net$ +(^|\.)economist\.com$ +(^|\.)ecsm\.vs\.com$ +(^|\.)edgecastcdn\.net$ +(^|\.)edicypages\.com$ +(^|\.)edmontonchina\.cn$ +(^|\.)edmontonservice\.com$ +(^|\.)edns\.biz$ +(^|\.)edoors\.com$ +(^|\.)edubridge\.com$ +(^|\.)edupro\.org$ +(^|\.)eeas\.europa\.eu$ +(^|\.)eesti\.ee$ +(^|\.)eevpn\.com$ +(^|\.)efcc\.org\.hk$ +(^|\.)effers\.com$ +(^|\.)efksoft\.com$ +(^|\.)efukt\.com$ +(^|\.)eic-av\.com$ +(^|\.)eireinikotaerukai\.com$ +(^|\.)eisbb\.com$ +(^|\.)eksisozluk\.com$ +(^|\.)electionsmeter\.com$ +(^|\.)elgoog\.im$ +(^|\.)elpais\.com$ +(^|\.)eltondisney\.com$ +(^|\.)emaga\.com$ +(^|\.)emanna\.com$ +(^|\.)embr\.in$ +(^|\.)emilylau\.org\.hk$ +(^|\.)empfil\.com$ +(^|\.)emule-ed2k\.com$ +(^|\.)emulefans\.com$ +(^|\.)emuparadise\.me$ +(^|\.)en\.favotter\.net$ +(^|\.)en\.hao123\.com$ +(^|\.)enanyang\.my$ +(^|\.)enewstree\.com$ +(^|\.)enfal\.de$ +(^|\.)engagedaily\.org$ +(^|\.)englishforeveryone\.org$ +(^|\.)englishfromengland\.co\.uk$ +(^|\.)englishpen\.org$ +(^|\.)enlighten\.org\.tw$ +(^|\.)entermap\.com$ +(^|\.)entnt\.com$ +(^|\.)environment\.google$ +(^|\.)epa\.gov\.tw$ +(^|\.)epac\.to$ +(^|\.)episcopalchurch\.org$ +(^|\.)epochhk\.com$ +(^|\.)epochtimes-bg\.com$ +(^|\.)epochtimes-romania\.com$ +(^|\.)epochtimes\.co\.il$ +(^|\.)epochtimes\.co\.kr$ +(^|\.)epochtimes\.com$ +(^|\.)epochtimes\.cz$ +(^|\.)epochtimes\.de$ +(^|\.)epochtimes\.fr$ +(^|\.)epochtimes\.ie$ +(^|\.)epochtimes\.it$ +(^|\.)epochtimes\.jp$ +(^|\.)epochtimes\.ru$ +(^|\.)epochtimes\.se$ +(^|\.)epochtimestr\.com$ +(^|\.)epochweek\.com$ +(^|\.)epochweekly\.com$ +(^|\.)eporner\.com$ +(^|\.)equinenow\.com$ +(^|\.)erabaru\.net$ +(^|\.)eracom\.com\.tw$ +(^|\.)eraysoft\.com\.tr$ +(^|\.)erepublik\.com$ +(^|\.)erights\.net$ +(^|\.)eriversoft\.com$ +(^|\.)erktv\.com$ +(^|\.)ernestmandel\.org$ +(^|\.)erodaizensyu\.com$ +(^|\.)erodoujinlog\.com$ +(^|\.)erodoujinworld\.com$ +(^|\.)eromanga-kingdom\.com$ +(^|\.)eromangadouzin\.com$ +(^|\.)eromon\.net$ +(^|\.)eroprofile\.com$ +(^|\.)eroticsaloon\.net$ +(^|\.)eslite\.com$ +(^|\.)esmtp\.biz$ +(^|\.)etaa\.org\.au$ +(^|\.)etadult\.com$ +(^|\.)etaiwannews\.com$ +(^|\.)etizer\.org$ +(^|\.)etokki\.com$ +(^|\.)etools\.ncol\.com$ +(^|\.)etowns\.net$ +(^|\.)etowns\.org$ +(^|\.)ettoday\.net$ +(^|\.)etvonline\.hk$ +(^|\.)eu\.org$ +(^|\.)eucasino\.com$ +(^|\.)eulam\.com$ +(^|\.)eurekavpt\.com$ +(^|\.)evchk\.wikia\.com$ +(^|\.)evschool\.net$ +(^|\.)exblog\.jp$ +(^|\.)exchristian\.hk$ +(^|\.)exmormon\.org$ +(^|\.)expatshield\.com$ +(^|\.)expecthim\.com$ +(^|\.)expekt\.com$ +(^|\.)experts-univers\.com$ +(^|\.)exploader\.net$ +(^|\.)expressvpn\.com$ +(^|\.)extmatrix\.com$ +(^|\.)extremetube\.com$ +(^|\.)eyevio\.jp$ +(^|\.)eyny\.com$ +(^|\.)ezpc\.tk$ +(^|\.)ezpeer\.com$ +(^|\.)ezua\.com$ +(^|\.)fa\.gov\.tw$ +(^|\.)facebook\.br$ +(^|\.)facebook\.com$ +(^|\.)facebook\.design$ +(^|\.)facebook\.hu$ +(^|\.)facebook\.in$ +(^|\.)facebook\.nl$ +(^|\.)facebook\.se$ +(^|\.)facebookquotes4u\.com$ +(^|\.)faceless\.me$ +(^|\.)facesofnyfw\.com$ +(^|\.)facesoftibetanselfimmolators\.info$ +(^|\.)fail\.hk$ +(^|\.)faith100\.org$ +(^|\.)faithfuleye\.com$ +(^|\.)faiththedog\.info$ +(^|\.)fakku\.net$ +(^|\.)falsefire\.com$ +(^|\.)falun-co\.org$ +(^|\.)falun-ny\.net$ +(^|\.)falun\.caltech\.edu$ +(^|\.)falunart\.org$ +(^|\.)falunasia\.info$ +(^|\.)falunau\.org$ +(^|\.)falunaz\.net$ +(^|\.)falundafa-dc\.org$ +(^|\.)falundafa-florida\.org$ +(^|\.)falundafa-nc\.org$ +(^|\.)falundafa-pa\.net$ +(^|\.)falundafa-sacramento\.org$ +(^|\.)falundafa\.org$ +(^|\.)falundafaindia\.org$ +(^|\.)falundafamuseum\.org$ +(^|\.)falungong\.club$ +(^|\.)falungong\.de$ +(^|\.)falungong\.org\.uk$ +(^|\.)falunhr\.org$ +(^|\.)faluninfo\.de$ +(^|\.)faluninfo\.net$ +(^|\.)falunpilipinas\.net$ +(^|\.)falunworld\.net$ +(^|\.)familyfed\.org$ +(^|\.)famunion\.com$ +(^|\.)fan-qiang\.com$ +(^|\.)fangbinxing\.com$ +(^|\.)fangeming\.com$ +(^|\.)fangeqiang\.com$ +(^|\.)fanglizhi\.info$ +(^|\.)fangmincn\.org$ +(^|\.)fangong\.forums-free\.com$ +(^|\.)fangong\.org$ +(^|\.)fangongheike\.com$ +(^|\.)fanhaodang\.com$ +(^|\.)fanqiang\.tk$ +(^|\.)fanqianghou\.com$ +(^|\.)fanqiangyakexi\.net$ +(^|\.)fanqiangzhe\.com$ +(^|\.)fanswong\.com$ +(^|\.)fanyue\.info$ +(^|\.)fapdu\.com$ +(^|\.)faproxy\.com$ +(^|\.)faqserv\.com$ +(^|\.)fartit\.com$ +(^|\.)farwestchina\.com$ +(^|\.)fast\.wistia\.com$ +(^|\.)fastpic\.ru$ +(^|\.)fastssh\.com$ +(^|\.)faststone\.org$ +(^|\.)favstar\.fm$ +(^|\.)fawanghuihui\.org$ +(^|\.)faydao\.com$ +(^|\.)fb\.com$ +(^|\.)fb\.me$ +(^|\.)fbcdn\.net$ +(^|\.)fbsbx\.com$ +(^|\.)fc2\.com$ +(^|\.)fc2blog\.net$ +(^|\.)fc2china\.com$ +(^|\.)fc2cn\.com$ +(^|\.)fda\.gov\.tw$ +(^|\.)fdc64\.de$ +(^|\.)fdc64\.org$ +(^|\.)fdc89\.jp$ +(^|\.)feedburner\.com$ +(^|\.)feeds\.fileforum\.com$ +(^|\.)feelssh\.com$ +(^|\.)feer\.com$ +(^|\.)feifeiss\.com$ +(^|\.)feitian-california\.org$ +(^|\.)feitianacademy\.org$ +(^|\.)feministteacher\.com$ +(^|\.)fengzhenghu\.com$ +(^|\.)fengzhenghu\.net$ +(^|\.)fevernet\.com$ +(^|\.)ff\.im$ +(^|\.)fffff\.at$ +(^|\.)fflick\.com$ +(^|\.)ffvpn\.com$ +(^|\.)fgmtv\.net$ +(^|\.)fgmtv\.org$ +(^|\.)fhreports\.net$ +(^|\.)figprayer\.com$ +(^|\.)fileflyer\.com$ +(^|\.)files2me\.com$ +(^|\.)fileserve\.com$ +(^|\.)filesor\.com$ +(^|\.)fillthesquare\.org$ +(^|\.)filmingfortibet\.org$ +(^|\.)filmy\.olabloga\.pl$ +(^|\.)filthdump\.com$ +(^|\.)financetwitter\.com$ +(^|\.)finchvpn\.com$ +(^|\.)findmespot\.com$ +(^|\.)findyoutube\.com$ +(^|\.)fingerdaily\.com$ +(^|\.)finler\.net$ +(^|\.)firearmsworld\.net$ +(^|\.)firebaseio\.com$ +(^|\.)fireofliberty\.org$ +(^|\.)firetweet\.io$ +(^|\.)firstfivefollowers\.com$ +(^|\.)flagsonline\.it$ +(^|\.)flecheinthepeche\.fr$ +(^|\.)fleshbot\.com$ +(^|\.)fleursdeslettres\.com$ +(^|\.)flgg\.us$ +(^|\.)flgjustice\.org$ +(^|\.)flickr\.com$ +(^|\.)flickrhivemind\.net$ +(^|\.)flickriver\.com$ +(^|\.)fling\.com$ +(^|\.)flipboard\.com$ +(^|\.)flipkart\.com$ +(^|\.)flitto\.com$ +(^|\.)flnet\.org$ +(^|\.)flog\.tw$ +(^|\.)fochk\.org$ +(^|\.)focustaiwan\.tw$ +(^|\.)focusvpn\.com$ +(^|\.)fofg-europe\.net$ +(^|\.)fofg\.org$ +(^|\.)fofldfradio\.org$ +(^|\.)fooooo\.com$ +(^|\.)footwiball\.com$ +(^|\.)forum\.baby-kingdom\.com$ +(^|\.)forum\.cyberctm\.com$ +(^|\.)forum\.idsam\.com$ +(^|\.)forum\.my903\.com$ +(^|\.)forum\.mymaji\.com$ +(^|\.)forum\.omy\.sg$ +(^|\.)forum\.palmislife\.com$ +(^|\.)forum\.setty\.com\.tw$ +(^|\.)forum\.sina\.com\.hk$ +(^|\.)forum\.slime\.com\.tw$ +(^|\.)forum\.tvb\.com$ +(^|\.)forum\.xinbao\.de$ +(^|\.)forum4hk\.com$ +(^|\.)fotile\.me$ +(^|\.)fourface\.nodesnoop\.com$ +(^|\.)fourthinternational\.org$ +(^|\.)foxdie\.us$ +(^|\.)foxgay\.com$ +(^|\.)foxsub\.com$ +(^|\.)foxtang\.com$ +(^|\.)fpmt-osel\.org$ +(^|\.)fpmt\.org$ +(^|\.)fpmt\.tw$ +(^|\.)fpmtmexico\.org$ +(^|\.)fq\.wikia\.com$ +(^|\.)fqok\.org$ +(^|\.)fqrouter\.com$ +(^|\.)franklc\.com$ +(^|\.)freakshare\.com$ +(^|\.)free-gate\.org$ +(^|\.)free-hada-now\.org$ +(^|\.)free-proxy\.cz$ +(^|\.)free-ssh\.com$ +(^|\.)free\.fr$ +(^|\.)free4u\.com\.ar$ +(^|\.)freealim\.com$ +(^|\.)freebrowser\.org$ +(^|\.)freechal\.com$ +(^|\.)freechina\.net$ +(^|\.)freechina\.news$ +(^|\.)freechinaforum\.org$ +(^|\.)freeddns\.com$ +(^|\.)freeddns\.org$ +(^|\.)freedomchina\.info$ +(^|\.)freedomcollection\.org$ +(^|\.)freedomhouse\.org$ +(^|\.)freedominfonetweb\.wordpress\.com$ +(^|\.)freedomsherald\.org$ +(^|\.)freeforums\.org$ +(^|\.)freefq\.com$ +(^|\.)freefuckvids\.com$ +(^|\.)freegao\.com$ +(^|\.)freeilhamtohti\.org$ +(^|\.)freekwonpyong\.org$ +(^|\.)freelotto\.com$ +(^|\.)freeman2\.com$ +(^|\.)freemoren\.com$ +(^|\.)freemorenews\.com$ +(^|\.)freemuse\.org$ +(^|\.)freenet$ +(^|\.)freenet-china\.org$ +(^|\.)freenetproject\.org$ +(^|\.)freenewscn\.com$ +(^|\.)freeopenvpn\.com$ +(^|\.)freeoz\.org$ +(^|\.)freessh\.us$ +(^|\.)freetcp\.com$ +(^|\.)freetibet\.net$ +(^|\.)freetibet\.org$ +(^|\.)freetibetanheroes\.org$ +(^|\.)freeviewmovies\.com$ +(^|\.)freevpn\.me$ +(^|\.)freevpn\.nl$ +(^|\.)freewallpaper4\.me$ +(^|\.)freewebs\.com$ +(^|\.)freewechat\.com$ +(^|\.)freeweibo\.com$ +(^|\.)freewww\.biz$ +(^|\.)freewww\.info$ +(^|\.)freexinwen\.com$ +(^|\.)freeyellow\.com$ +(^|\.)freeyoutubeproxy\.net$ +(^|\.)friendfeed-media\.com$ +(^|\.)friendfeed\.com$ +(^|\.)friends-of-tibet\.org$ +(^|\.)friendsoftibet\.org$ +(^|\.)fring\.com$ +(^|\.)fringenetwork\.com$ +(^|\.)from-pr\.com$ +(^|\.)from-sd\.com$ +(^|\.)fromchinatousa\.net$ +(^|\.)frommel\.net$ +(^|\.)frontlinedefenders\.org$ +(^|\.)frootvpn\.com$ +(^|\.)fscked\.org$ +(^|\.)fsurf\.com$ +(^|\.)ftchinese\.com$ +(^|\.)ftp1\.biz$ +(^|\.)ftpserver\.biz$ +(^|\.)ftv\.com\.tw$ +(^|\.)fucd\.com$ +(^|\.)fuckcnnic\.net$ +(^|\.)fuckgfw\.org$ +(^|\.)fullerconsideration\.com$ +(^|\.)fulue\.com$ +(^|\.)funf\.tw$ +(^|\.)funkyimg\.com$ +(^|\.)funp\.com$ +(^|\.)fuq\.com$ +(^|\.)furbo\.org$ +(^|\.)furhhdl\.org$ +(^|\.)furinkan\.com$ +(^|\.)furl\.net$ +(^|\.)futurechinaforum\.org$ +(^|\.)futuremessage\.org$ +(^|\.)fux\.com$ +(^|\.)fuyin\.net$ +(^|\.)fuyindiantai\.org$ +(^|\.)fuyu\.org\.tw$ +(^|\.)fw\.cm$ +(^|\.)fxcm-chinese\.com$ +(^|\.)fxnetworks\.com$ +(^|\.)fzh999\.com$ +(^|\.)fzh999\.net$ +(^|\.)fzlm\.com$ +(^|\.)g-area\.org$ +(^|\.)g-queen\.com$ +(^|\.)g\.co$ +(^|\.)g6hentai\.com$ +(^|\.)gabocorp\.com$ +(^|\.)gaeproxy\.com$ +(^|\.)gaforum\.org$ +(^|\.)galaxymacau\.com$ +(^|\.)galenwu\.com$ +(^|\.)galstars\.net$ +(^|\.)game735\.com$ +(^|\.)gamebase\.com\.tw$ +(^|\.)gamejolt\.com$ +(^|\.)gamer\.com\.tw$ +(^|\.)gamez\.com\.tw$ +(^|\.)gamousa\.com$ +(^|\.)ganges\.com$ +(^|\.)gaoming\.net$ +(^|\.)gaopi\.net$ +(^|\.)gaozhisheng\.net$ +(^|\.)gaozhisheng\.org$ +(^|\.)gardennetworks\.com$ +(^|\.)gardennetworks\.org$ +(^|\.)gartlive\.com$ +(^|\.)gate-project\.com$ +(^|\.)gather\.com$ +(^|\.)gatherproxy\.com$ +(^|\.)gati\.org\.tw$ +(^|\.)gaybubble\.com$ +(^|\.)gaycn\.net$ +(^|\.)gayhub\.com$ +(^|\.)gaymap\.cc$ +(^|\.)gaytube\.com$ +(^|\.)gaywatch\.com$ +(^|\.)gazotube\.com$ +(^|\.)gcc\.org\.hk$ +(^|\.)gclooney\.com$ +(^|\.)gcpnews\.com$ +(^|\.)gcr\.io$ +(^|\.)gdbt\.net$ +(^|\.)gdzf\.org$ +(^|\.)geek-art\.net$ +(^|\.)geekerhome\.com$ +(^|\.)geekheart\.info$ +(^|\.)gekikame\.com$ +(^|\.)gelbooru\.com$ +(^|\.)geocities\.co\.jp$ +(^|\.)geocities\.com$ +(^|\.)geocities\.jp$ +(^|\.)gerefoundation\.org$ +(^|\.)get\.how$ +(^|\.)getastrill\.com$ +(^|\.)getchu\.com$ +(^|\.)getcloak\.com$ +(^|\.)getfoxyproxy\.org$ +(^|\.)getfreedur\.com$ +(^|\.)getgom\.com$ +(^|\.)geti2p\.net$ +(^|\.)getiton\.com$ +(^|\.)getjetso\.com$ +(^|\.)getlantern\.org$ +(^|\.)getmdl\.io$ +(^|\.)getsocialscope\.com$ +(^|\.)getsync\.com$ +(^|\.)gettrials\.com$ +(^|\.)gettyimages\.com$ +(^|\.)getuploader\.com$ +(^|\.)gfbv\.de$ +(^|\.)gfgold\.com\.hk$ +(^|\.)gfsale\.com$ +(^|\.)gfw\.org\.ua$ +(^|\.)gfw\.press$ +(^|\.)ggpht\.com$ +(^|\.)ggssl\.com$ +(^|\.)ghost\.org$ +(^|\.)ghostpath\.com$ +(^|\.)ghut\.org$ +(^|\.)giantessnight\.com$ +(^|\.)gifree\.com$ +(^|\.)giga-web\.jp$ +(^|\.)gigporno\.ru$ +(^|\.)girlbanker\.com$ +(^|\.)git\.io$ +(^|\.)gizlen\.net$ +(^|\.)gjczz\.com$ +(^|\.)glass8\.eu$ +(^|\.)global\.bing\.com$ +(^|\.)globaljihad\.net$ +(^|\.)globalmediaoutreach\.com$ +(^|\.)globalmuseumoncommunism\.org$ +(^|\.)globalrescue\.net$ +(^|\.)globaltm\.org$ +(^|\.)globalvoices\.org$ +(^|\.)globalvoicesonline\.org$ +(^|\.)globalvpn\.net$ +(^|\.)glock\.com$ +(^|\.)gloryhole\.com$ +(^|\.)glorystar\.me$ +(^|\.)gluckman\.com$ +(^|\.)glype\.com$ +(^|\.)gmail\.com$ +(^|\.)gmbd\.cn$ +(^|\.)gmhz\.org$ +(^|\.)gmll\.org$ +(^|\.)gmodules\.com$ +(^|\.)gmozomg\.izihost\.org$ +(^|\.)gnci\.org\.hk$ +(^|\.)go-pki\.com$ +(^|\.)go\.nesnode\.com$ +(^|\.)go141\.com$ +(^|\.)goagent\.biz$ +(^|\.)goagent\.codeplex\.com$ +(^|\.)goagentplus\.com$ +(^|\.)gobet\.cc$ +(^|\.)godfootsteps\.org$ +(^|\.)godns\.work$ +(^|\.)godoc\.org$ +(^|\.)godsdirectcontact\.co\.uk$ +(^|\.)godsdirectcontact\.org$ +(^|\.)godsdirectcontact\.org\.tw$ +(^|\.)godsimmediatecontact\.com$ +(^|\.)gogotunnel\.com$ +(^|\.)gohappy\.com\.tw$ +(^|\.)gojet\.krtco\.com\.tw$ +(^|\.)gokbayrak\.com$ +(^|\.)golang\.org$ +(^|\.)goldbet\.com$ +(^|\.)goldbetsports\.com$ +(^|\.)goldeneyevault\.com$ +(^|\.)goldenfrog\.com$ +(^|\.)goldjizz\.com$ +(^|\.)goldstep\.net$ +(^|\.)goldwave\.com$ +(^|\.)gongm\.in$ +(^|\.)gongmeng\.info$ +(^|\.)gongminliliang\.com$ +(^|\.)gongwt\.com$ +(^|\.)goo\.gl$ +(^|\.)gooday\.xyz$ +(^|\.)gooddns\.info$ +(^|\.)goodreaders\.com$ +(^|\.)goodreads\.com$ +(^|\.)goodtv\.com\.tw$ +(^|\.)goodtv\.tv$ +(^|\.)goofind\.com$ +(^|\.)google(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?){1,2}$ +(^|\.)googleapis(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?){1,2}$ +(^|\.)googleapps\.com$ +(^|\.)googlearth\.com$ +(^|\.)googleartproject\.com$ +(^|\.)googleblog\.com$ +(^|\.)googlebot\.com$ +(^|\.)googlechinawebmaster\.com$ +(^|\.)googlecode\.com$ +(^|\.)googlecommerce\.com$ +(^|\.)googledomains\.com$ +(^|\.)googledrive\.com$ +(^|\.)googleearth\.com$ +(^|\.)googlegroups\.com$ +(^|\.)googlehosted\.com$ +(^|\.)googleideas\.com$ +(^|\.)googleinsidesearch\.com$ +(^|\.)googlelabs\.com$ +(^|\.)googlemail\.com$ +(^|\.)googlemashups\.com$ +(^|\.)googlepagecreator\.com$ +(^|\.)googleplay\.com$ +(^|\.)googleplus\.com$ +(^|\.)googlescholar\.com$ +(^|\.)googlesile\.com$ +(^|\.)googlesource\.com$ +(^|\.)googleusercontent\.com$ +(^|\.)googlevideo\.com$ +(^|\.)googleweblight\.com$ +(^|\.)googlezip\.net$ +(^|\.)gopetition\.com$ +(^|\.)goproxing\.net$ +(^|\.)gospelherald\.com$ +(^|\.)got-game\.org$ +(^|\.)gotdns\.ch$ +(^|\.)gotgeeks\.com$ +(^|\.)gotrusted\.com$ +(^|\.)gotw\.ca$ +(^|\.)gov\.taipei$ +(^|\.)gov\.tw$ +(^|\.)gr8domain\.biz$ +(^|\.)gr8name\.biz$ +(^|\.)grammaly\.com$ +(^|\.)grandtrial\.org$ +(^|\.)grangorz\.org$ +(^|\.)graphis\.ne\.jp$ +(^|\.)graphql\.org$ +(^|\.)greasespot\.net$ +(^|\.)great-firewall\.com$ +(^|\.)great-roc\.org$ +(^|\.)greatfire\.org$ +(^|\.)greatfire\.us7\.list-manage\.com$ +(^|\.)greatfirewall\.biz$ +(^|\.)greatfirewallofchina\.net$ +(^|\.)greatfirewallofchina\.org$ +(^|\.)greatroc\.org$ +(^|\.)greatroc\.tw$ +(^|\.)greatzhonghua\.org$ +(^|\.)greenfieldbookstore\.com\.hk$ +(^|\.)greenparty\.org\.tw$ +(^|\.)greenpeace\.com\.tw$ +(^|\.)greenpeace\.org$ +(^|\.)greenreadings\.com$ +(^|\.)greenvpn\.net$ +(^|\.)greenvpn\.org$ +(^|\.)groups\.google\.cn$ +(^|\.)gs-discuss\.com$ +(^|\.)gstatic\.com$ +(^|\.)gtricks\.com$ +(^|\.)gts-vpn\.com$ +(^|\.)gu-chu-sum\.org$ +(^|\.)guaguass\.com$ +(^|\.)guaguass\.org$ +(^|\.)guancha\.org$ +(^|\.)guangming\.com\.my$ +(^|\.)guardster\.com$ +(^|\.)guishan\.org$ +(^|\.)gumroad\.com$ +(^|\.)gun-world\.net$ +(^|\.)gunsamerica\.com$ +(^|\.)gunsandammo\.com$ +(^|\.)guo\.media$ +(^|\.)guruonline\.hk$ +(^|\.)gutteruncensored\.com$ +(^|\.)gvlib\.com$ +(^|\.)gvm\.com\.tw$ +(^|\.)gvt0\.com$ +(^|\.)gvt1\.com$ +(^|\.)gvt3\.com$ +(^|\.)gwtproject\.org$ +(^|\.)gyalwarinpoche\.com$ +(^|\.)gyatsostudio\.com$ +(^|\.)gzm\.tv$ +(^|\.)gzone-anime\.info$ +(^|\.)h-china\.org$ +(^|\.)h-moe\.com$ +(^|\.)h1n1china\.org$ +(^|\.)h528\.com$ +(^|\.)h5dm\.com$ +(^|\.)h5galgame\.me$ +(^|\.)hacg\.club$ +(^|\.)hacg\.in$ +(^|\.)hacg\.li$ +(^|\.)hacg\.me$ +(^|\.)hacg\.red$ +(^|\.)hacken\.cc$ +(^|\.)hacker\.org$ +(^|\.)hackthatphone\.net$ +(^|\.)hahlo\.com$ +(^|\.)hakkatv\.org\.tw$ +(^|\.)handcraftedsoftware\.org$ +(^|\.)hanunyi\.com$ +(^|\.)hao\.news$ +(^|\.)haoel\.github\.io$ +(^|\.)happy-vpn\.com$ +(^|\.)haproxy\.org$ +(^|\.)hardsextube\.com$ +(^|\.)harunyahya\.com$ +(^|\.)hautelook\.com$ +(^|\.)hautelookcdn\.com$ +(^|\.)have8\.com$ +(^|\.)hclips\.com$ +(^|\.)hd\.stheadline\.com$ +(^|\.)hdlt\.me$ +(^|\.)hdtvb\.net$ +(^|\.)hdzog\.com$ +(^|\.)heartyit\.com$ +(^|\.)hec\.su$ +(^|\.)hecaitou\.net$ +(^|\.)hechaji\.com$ +(^|\.)heeact\.edu\.tw$ +(^|\.)hegre-art\.com$ +(^|\.)heix\.pp\.ru$ +(^|\.)helloandroid\.com$ +(^|\.)helloqueer\.com$ +(^|\.)helloss\.pw$ +(^|\.)hellotxt\.com$ +(^|\.)hellouk\.org$ +(^|\.)help\.linksalpha\.com$ +(^|\.)helpeachpeople\.com$ +(^|\.)helplinfen\.com$ +(^|\.)helpster\.de$ +(^|\.)helpzhuling\.org$ +(^|\.)hentai\.to$ +(^|\.)hentaitube\.tv$ +(^|\.)hentaivideoworld\.com$ +(^|\.)heqinglian\.net$ +(^|\.)heungkongdiscuss\.com$ +(^|\.)hexieshe\.com$ +(^|\.)hexieshe\.xyz$ +(^|\.)hexxeh\.net$ +(^|\.)heyzo\.com$ +(^|\.)hgseav\.com$ +(^|\.)hhdcb3office\.org$ +(^|\.)hhthesakyatrizin\.org$ +(^|\.)hi-on\.org\.tw$ +(^|\.)hidden-advent\.org$ +(^|\.)hide\.me$ +(^|\.)hidecloud\.com$ +(^|\.)hidein\.net$ +(^|\.)hideipvpn\.com$ +(^|\.)hideman\.net$ +(^|\.)hideme\.nl$ +(^|\.)hidemy\.name$ +(^|\.)hidemyass\.com$ +(^|\.)hidemycomp\.com$ +(^|\.)higfw\.com$ +(^|\.)highpeakspureearth\.com$ +(^|\.)highrockmedia\.com$ +(^|\.)hihiforum\.com$ +(^|\.)hihistory\.net$ +(^|\.)hiitch\.com$ +(^|\.)hikinggfw\.org$ +(^|\.)hilive\.tv$ +(^|\.)himalayan-foundation\.org$ +(^|\.)himalayanglacier\.com$ +(^|\.)himemix\.com$ +(^|\.)himemix\.net$ +(^|\.)hitomi\.la$ +(^|\.)hiwifi\.com$ +(^|\.)hizb-ut-tahrir\.info$ +(^|\.)hizb-ut-tahrir\.org$ +(^|\.)hizbuttahrir\.org$ +(^|\.)hjclub\.info$ +(^|\.)hk-pub\.com$ +(^|\.)hk\.frienddy\.com$ +(^|\.)hk\.geocities\.com$ +(^|\.)hk\.gradconnection\.com$ +(^|\.)hk\.hao123img\.com$ +(^|\.)hk\.jiepang\.com$ +(^|\.)hk\.knowledge\.yahoo\.com$ +(^|\.)hk\.myblog\.yahoo\.com$ +(^|\.)hk\.news\.yahoo\.com$ +(^|\.)hk\.rd\.yahoo\.com$ +(^|\.)hk\.search\.yahoo\.com$ +(^|\.)hk\.video\.news\.yahoo\.com$ +(^|\.)hk\.yahoo\.com$ +(^|\.)hk01\.com$ +(^|\.)hk32168\.com$ +(^|\.)hka8964\.wordpress\.com$ +(^|\.)hkacg\.com$ +(^|\.)hkacg\.net$ +(^|\.)hkanews\.wordpress\.com$ +(^|\.)hkatvnews\.com$ +(^|\.)hkbc\.net$ +(^|\.)hkbf\.org$ +(^|\.)hkbookcity\.com$ +(^|\.)hkchurch\.org$ +(^|\.)hkci\.org\.hk$ +(^|\.)hkcmi\.edu$ +(^|\.)hkcnews\.com$ +(^|\.)hkcoc\.com$ +(^|\.)hkcoc\.weather\.com\.hk$ +(^|\.)hkdailynews\.com\.hk$ +(^|\.)hkday\.net$ +(^|\.)hkdf\.org$ +(^|\.)hkej\.com$ +(^|\.)hkepc\.com$ +(^|\.)hkfaa\.com$ +(^|\.)hkfreezone\.com$ +(^|\.)hkfront\.org$ +(^|\.)hkgolden\.com$ +(^|\.)hkgreenradio\.org$ +(^|\.)hkheadline\.com$ +(^|\.)hkhkhk\.com$ +(^|\.)hkhrc\.org\.hk$ +(^|\.)hkhrm\.org\.hk$ +(^|\.)hkip\.org\.uk$ +(^|\.)hkjc\.com$ +(^|\.)hkjp\.org$ +(^|\.)hklft\.com$ +(^|\.)hklts\.org\.hk$ +(^|\.)hkptu\.org$ +(^|\.)hkreporter\.com$ +(^|\.)hkreporter\.loved\.hk$ +(^|\.)hkupop\.hku\.hk$ +(^|\.)hkusu\.net$ +(^|\.)hkvwet\.com$ +(^|\.)hkwcc\.org\.hk$ +(^|\.)hkzone\.org$ +(^|\.)hmonghot\.com$ +(^|\.)hmvdigital\.ca$ +(^|\.)hmvdigital\.com$ +(^|\.)hnjhj\.com$ +(^|\.)hnntube\.com$ +(^|\.)hola\.com$ +(^|\.)hola\.org$ +(^|\.)holymountaincn\.com$ +(^|\.)holyspiritspeaks\.org$ +(^|\.)home\.sina\.com$ +(^|\.)home\.so-net\.net\.tw$ +(^|\.)homedepot\.com$ +(^|\.)homeperversion\.com$ +(^|\.)homeservershow\.com$ +(^|\.)hongkongfp\.com$ +(^|\.)hongmeimei\.com$ +(^|\.)hongzhi\.li$ +(^|\.)hootsuite\.com$ +(^|\.)hoovers\.com$ +(^|\.)hopedialogue\.org$ +(^|\.)hopto\.org$ +(^|\.)hornygamer\.com$ +(^|\.)hornytrip\.com$ +(^|\.)hotav\.tv$ +(^|\.)hotels\.cn$ +(^|\.)hotfrog\.com\.tw$ +(^|\.)hotgoo\.com$ +(^|\.)hotpornshow\.com$ +(^|\.)hotpot\.hk$ +(^|\.)hotshame\.com$ +(^|\.)hotspotshield\.com$ +(^|\.)hotvpn\.com$ +(^|\.)hougaige\.com$ +(^|\.)howtoforge\.com$ +(^|\.)hpa\.gov\.tw$ +(^|\.)hqcdp\.org$ +(^|\.)hqjapanesesex\.com$ +(^|\.)hqmovies\.com$ +(^|\.)hqsbnet\.wordpress\.com$ +(^|\.)hqsbonline\.wordpress\.com$ +(^|\.)hrcchina\.org$ +(^|\.)hrcir\.com$ +(^|\.)hrea\.org$ +(^|\.)hrichina\.org$ +(^|\.)hrw\.org$ +(^|\.)hrweb\.org$ +(^|\.)hsjp\.net$ +(^|\.)hsselite\.com$ +(^|\.)hst\.net\.tw$ +(^|\.)hstern\.net$ +(^|\.)hstt\.net$ +(^|\.)ht\.ly$ +(^|\.)htkou\.net$ +(^|\.)htl\.li$ +(^|\.)html5rocks\.com$ +(^|\.)https$ +(^|\.)https443\.net$ +(^|\.)https443\.org$ +(^|\.)hua-yue\.net$ +(^|\.)huaglad\.com$ +(^|\.)huanghuagang\.org$ +(^|\.)huangyiyu\.com$ +(^|\.)huaren\.us$ +(^|\.)huaren4us\.com$ +(^|\.)huashangnews\.com$ +(^|\.)huaxia-news\.com$ +(^|\.)huaxiabao\.org$ +(^|\.)huaxin\.ph$ +(^|\.)huayuworld\.org$ +(^|\.)hudatoriq\.web\.id$ +(^|\.)huffingtonpost\.com$ +(^|\.)hugoroy\.eu$ +(^|\.)huhaitai\.com$ +(^|\.)huhamhire\.com$ +(^|\.)huiyi\.in$ +(^|\.)hulkshare\.com$ +(^|\.)hulu\.com$ +(^|\.)huluim\.com$ +(^|\.)hum$ +(^|\.)humanrightsbriefing\.org$ +(^|\.)hung-ya\.com$ +(^|\.)hungerstrikeforaids\.org$ +(^|\.)huobi\.com$ +(^|\.)huobi\.pro$ +(^|\.)huobipro\.com$ +(^|\.)huping\.net$ +(^|\.)hurgokbayrak\.com$ +(^|\.)hurriyet\.com\.tr$ +(^|\.)hustlercash\.com$ +(^|\.)hut2\.ru$ +(^|\.)hutianyi\.net$ +(^|\.)hutong9\.net$ +(^|\.)huyandex\.com$ +(^|\.)hwadzan\.tw$ +(^|\.)hwayue\.org\.tw$ +(^|\.)hwinfo\.com$ +(^|\.)hxwk\.org$ +(^|\.)hxwq\.org$ +(^|\.)hybrid-analysis\.com$ +(^|\.)hyperrate\.com$ +(^|\.)i-cable\.com$ +(^|\.)i-part\.com\.tw$ +(^|\.)i\.lithium\.com$ +(^|\.)i1\.hk$ +(^|\.)i2p2\.de$ +(^|\.)i2runner\.com$ +(^|\.)i818hk\.com$ +(^|\.)iam\.soy$ +(^|\.)iamtopone\.com$ +(^|\.)iask\.bz$ +(^|\.)iask\.ca$ +(^|\.)iav19\.com$ +(^|\.)ibiblio\.org$ +(^|\.)iblist\.com$ +(^|\.)iblogserv-f\.net$ +(^|\.)ibros\.org$ +(^|\.)ibvpn\.com$ +(^|\.)icams\.com$ +(^|\.)ice\.audionow\.com$ +(^|\.)icij\.org$ +(^|\.)icl-fi\.org$ +(^|\.)icoco\.com$ +(^|\.)iconpaper\.org$ +(^|\.)icu-project\.org$ +(^|\.)id\.hao123\.com$ +(^|\.)id\.heroku\.com$ +(^|\.)iddddg\.com$ +(^|\.)idemocracy\.asia$ +(^|\.)identi\.ca$ +(^|\.)idiomconnection\.com$ +(^|\.)idouga\.com$ +(^|\.)idreamx\.com$ +(^|\.)idv\.tw$ +(^|\.)ieasy5\.com$ +(^|\.)ied2k\.net$ +(^|\.)ienergy1\.com$ +(^|\.)if\.ttt$ +(^|\.)ifan\.cz\.cc$ +(^|\.)ifanqiang\.com$ +(^|\.)ifcss\.org$ +(^|\.)ifjc\.org$ +(^|\.)ifreewares\.com$ +(^|\.)ift\.tt$ +(^|\.)igcd\.net$ +(^|\.)igfw\.net$ +(^|\.)igfw\.tech$ +(^|\.)igmg\.de$ +(^|\.)ignitedetroit\.net$ +(^|\.)igoogle\.com$ +(^|\.)igotmail\.com\.tw$ +(^|\.)igvita\.com$ +(^|\.)ihakka\.net$ +(^|\.)ihao\.org$ +(^|\.)iicns\.com$ +(^|\.)ikstar\.com$ +(^|\.)ikwb\.com$ +(^|\.)illusionfactory\.com$ +(^|\.)ilove80\.be$ +(^|\.)ilovelongtoes\.com$ +(^|\.)im\.tv$ +(^|\.)im88\.tw$ +(^|\.)imageab\.com$ +(^|\.)imagefap\.com$ +(^|\.)imageflea\.com$ +(^|\.)images-gaytube\.com$ +(^|\.)images\.comico\.tw$ +(^|\.)imageshack\.us$ +(^|\.)imagevenue\.com$ +(^|\.)imagezilla\.net$ +(^|\.)imb\.org$ +(^|\.)imdb\.com$ +(^|\.)img$ +(^|\.)img\.dlsite\.jp$ +(^|\.)img\.ly$ +(^|\.)imgchili\.net$ +(^|\.)imgmega\.com$ +(^|\.)imgur\.com$ +(^|\.)imkev\.com$ +(^|\.)imlive\.com$ +(^|\.)immigration\.gov\.tw$ +(^|\.)immoral\.jp$ +(^|\.)impact\.org\.au$ +(^|\.)impp\.mn$ +(^|\.)in-disguise\.com$ +(^|\.)in99\.org$ +(^|\.)incapdns\.net$ +(^|\.)incloak\.com$ +(^|\.)incredibox\.fr$ +(^|\.)indiandefensenews\.in$ +(^|\.)indiemerch\.com$ +(^|\.)info-graf\.fr$ +(^|\.)initiativesforchina\.org$ +(^|\.)inkui\.com$ +(^|\.)inmediahk\.net$ +(^|\.)innermongolia\.org$ +(^|\.)inote\.tw$ +(^|\.)insecam\.org$ +(^|\.)insidevoa\.com$ +(^|\.)instagram\.com$ +(^|\.)instanthq\.com$ +(^|\.)institut-tibetain\.org$ +(^|\.)internet\.org$ +(^|\.)internetdefenseleague\.org$ +(^|\.)internetfreedom\.org$ +(^|\.)internetpopculture\.com$ +(^|\.)investigating\.wordpress\.com$ +(^|\.)inxian\.com$ +(^|\.)iownyour\.biz$ +(^|\.)iownyour\.org$ +(^|\.)ipalter\.com$ +(^|\.)ipfire\.org$ +(^|\.)iphone4hongkong\.com$ +(^|\.)iphonehacks\.com$ +(^|\.)iphonetaiwan\.org$ +(^|\.)iphonix\.fr$ +(^|\.)ipicture\.ru$ +(^|\.)ipjetable\.net$ +(^|\.)ipobar\.com$ +(^|\.)ipoock\.com$ +(^|\.)iportal\.me$ +(^|\.)ippotv\.com$ +(^|\.)ipredator\.se$ +(^|\.)iptv\.com\.tw$ +(^|\.)iptvbin\.com$ +(^|\.)ipvanish\.com$ +(^|\.)iredmail\.org$ +(^|\.)ironbigfools\.compython\.net$ +(^|\.)ironpython\.net$ +(^|\.)ironsocket\.com$ +(^|\.)is-a-hunter\.com$ +(^|\.)is\.gd$ +(^|\.)isaacmao\.com$ +(^|\.)isasecret\.com$ +(^|\.)isgreat\.org$ +(^|\.)islahhaber\.net$ +(^|\.)islam\.org\.hk$ +(^|\.)islamawareness\.net$ +(^|\.)islamhouse\.com$ +(^|\.)islamicity\.com$ +(^|\.)islamicpluralism\.org$ +(^|\.)islamtoday\.net$ +(^|\.)ismaelan\.com$ +(^|\.)ismalltits\.com$ +(^|\.)ismprofessional\.net$ +(^|\.)isohunt\.com$ +(^|\.)israbox\.com$ +(^|\.)issuu\.com$ +(^|\.)istars\.co\.nz$ +(^|\.)istiqlalhewer\.com$ +(^|\.)istockphoto\.com$ +(^|\.)isunaffairs\.com$ +(^|\.)isuntv\.com$ +(^|\.)itaboo\.info$ +(^|\.)itaiwan\.gov\.tw$ +(^|\.)italiatibet\.org$ +(^|\.)itasoftware\.com$ +(^|\.)itemdb\.com$ +(^|\.)ithelp\.ithome\.com\.tw$ +(^|\.)its\.caltech\.edu$ +(^|\.)itsaol\.com$ +(^|\.)itshidden\.com$ +(^|\.)itsky\.it$ +(^|\.)itweet\.net$ +(^|\.)iu45\.com$ +(^|\.)iuhrdf\.org$ +(^|\.)iuksky\.com$ +(^|\.)ivacy\.com$ +(^|\.)iverycd\.com$ +(^|\.)ivpn\.net$ +(^|\.)ixquick\.com$ +(^|\.)ixxx\.com$ +(^|\.)iyouport\.com$ +(^|\.)izaobao\.us$ +(^|\.)izles\.net$ +(^|\.)izlesem\.org$ +(^|\.)j\.mp$ +(^|\.)ja\.wikipedia\.org$ +(^|\.)jamaat\.org$ +(^|\.)jamyangnorbu\.com$ +(^|\.)jandyx\.com$ +(^|\.)janwongphoto\.com$ +(^|\.)japan-whores\.com$ +(^|\.)japanfirst\.asianfreeforum\.com$ +(^|\.)jav\.com$ +(^|\.)jav101\.com$ +(^|\.)jav2be\.com$ +(^|\.)jav68\.tv$ +(^|\.)javakiba\.org$ +(^|\.)javbus\.com$ +(^|\.)javfor\.me$ +(^|\.)javhd\.com$ +(^|\.)javhip\.com$ +(^|\.)javhub\.net$ +(^|\.)javhuge\.com$ +(^|\.)javlibrary\.com$ +(^|\.)javmobile\.net$ +(^|\.)javmoo\.com$ +(^|\.)javmoo\.xyz$ +(^|\.)javseen\.com$ +(^|\.)javtag\.com$ +(^|\.)javzoo\.com$ +(^|\.)jbtalks\.cc$ +(^|\.)jbtalks\.com$ +(^|\.)jbtalks\.my$ +(^|\.)jcpenney\.com$ +(^|\.)jdwsy\.com$ +(^|\.)jeanyim\.com$ +(^|\.)jetos\.com$ +(^|\.)jfqu36\.club$ +(^|\.)jfqu37\.xyz$ +(^|\.)jgoodies\.com$ +(^|\.)jiangweiping\.com$ +(^|\.)jiaoyou8\.com$ +(^|\.)jiehua\.cz$ +(^|\.)jieshibaobao\.com$ +(^|\.)jigglegifs\.com$ +(^|\.)jigong1024\.com$ +(^|\.)jihadintel\.meforum\.org$ +(^|\.)jihadology\.net$ +(^|\.)jiji\.com$ +(^|\.)jims\.net$ +(^|\.)jinbushe\.org$ +(^|\.)jingpin\.org$ +(^|\.)jingsim\.org$ +(^|\.)jinpianwang\.com$ +(^|\.)jinroukong\.com$ +(^|\.)jitouch\.com$ +(^|\.)jizzthis\.com$ +(^|\.)jjgirls\.com$ +(^|\.)jkb\.cc$ +(^|\.)jkforum\.net$ +(^|\.)jkub\.com$ +(^|\.)jma\.go\.jp$ +(^|\.)jmscult\.com$ +(^|\.)joachims\.org$ +(^|\.)jobnewera\.wordpress\.com$ +(^|\.)jobso\.tv$ +(^|\.)journalchretien\.net$ +(^|\.)journalofdemocracy\.org$ +(^|\.)joymiihub\.com$ +(^|\.)joyourself\.com$ +(^|\.)jp\.hao123\.com$ +(^|\.)jpl\.nasa\.gov$ +(^|\.)jpopforum\.net$ +(^|\.)jubushoushen\.com$ +(^|\.)juhuaren\.com$ +(^|\.)jukujo-club\.com$ +(^|\.)juliepost\.com$ +(^|\.)juliereyc\.com$ +(^|\.)junauza\.com$ +(^|\.)june4commemoration\.org$ +(^|\.)junefourth-20\.net$ +(^|\.)jungleheart\.com$ +(^|\.)juoaa\.com$ +(^|\.)justdied\.com$ +(^|\.)justfreevpn\.com$ +(^|\.)justicefortenzin\.org$ +(^|\.)justpaste\.it$ +(^|\.)justtristan\.com$ +(^|\.)juyuange\.org$ +(^|\.)juziyue\.com$ +(^|\.)jwmusic\.org$ +(^|\.)jyxf\.net$ +(^|\.)k-doujin\.net$ +(^|\.)ka-wai\.com$ +(^|\.)kagyu\.org$ +(^|\.)kagyu\.org\.za$ +(^|\.)kagyumonlam\.org$ +(^|\.)kagyunews\.com\.hk$ +(^|\.)kagyuoffice\.org$ +(^|\.)kagyuoffice\.org\.tw$ +(^|\.)kaiyuan\.de$ +(^|\.)kakao\.com$ +(^|\.)kalachakralugano\.org$ +(^|\.)kankan\.today$ +(^|\.)kannewyork\.com$ +(^|\.)kanshifang\.com$ +(^|\.)kantie\.org$ +(^|\.)kanzhongguo\.com$ +(^|\.)kanzhongguo\.eu$ +(^|\.)kaotic\.com$ +(^|\.)karayou\.com$ +(^|\.)karkhung\.com$ +(^|\.)karmapa-teachings\.org$ +(^|\.)karmapa\.org$ +(^|\.)kawaiikawaii\.jp$ +(^|\.)kb\.monitorware\.com$ +(^|\.)kba-tx\.org$ +(^|\.)kcoolonline\.com$ +(^|\.)kebrum\.com$ +(^|\.)kechara\.com$ +(^|\.)keepandshare\.com$ +(^|\.)keezmovies\.com$ +(^|\.)kendatire\.com$ +(^|\.)kendincos\.net$ +(^|\.)kenengba\.com$ +(^|\.)keontech\.net$ +(^|\.)kepard\.com$ +(^|\.)keycdn\.com$ +(^|\.)khabdha\.org$ +(^|\.)khatrimaza\.org$ +(^|\.)khmusic\.com\.tw$ +(^|\.)kichiku-doujinko\.com$ +(^|\.)kik\.com$ +(^|\.)killwall\.com$ +(^|\.)kindleren\.com$ +(^|\.)kineox\.free\.fr$ +(^|\.)kingdomsalvation\.org$ +(^|\.)kinghost\.com$ +(^|\.)kingstone\.com\.tw$ +(^|\.)kink\.com$ +(^|\.)kinmen\.org\.tw$ +(^|\.)kinmen\.travel$ +(^|\.)kir\.jp$ +(^|\.)kissbbao\.cn$ +(^|\.)kiwi\.kz$ +(^|\.)kk-whys\.co\.jp$ +(^|\.)kkbox\.com$ +(^|\.)kknews\.cc$ +(^|\.)kmuh\.org\.tw$ +(^|\.)knowledgerush\.com$ +(^|\.)kobo\.com$ +(^|\.)kobobooks\.com$ +(^|\.)kodingen\.com$ +(^|\.)kompozer\.net$ +(^|\.)konachan\.com$ +(^|\.)kone\.com$ +(^|\.)koolsolutions\.com$ +(^|\.)koornk\.com$ +(^|\.)koranmandarin\.com$ +(^|\.)korenan2\.com$ +(^|\.)ksdl\.org$ +(^|\.)ksnews\.com\.tw$ +(^|\.)ktzhk\.com$ +(^|\.)kui\.name$ +(^|\.)kun\.im$ +(^|\.)kurashsultan\.com$ +(^|\.)kurtmunger\.com$ +(^|\.)kusocity\.com$ +(^|\.)kwcg\.ca$ +(^|\.)kwongwah\.com\.my$ +(^|\.)kxsw\.life$ +(^|\.)kyofun\.com$ +(^|\.)kyohk\.net$ +(^|\.)kyoyue\.com$ +(^|\.)kyzyhello\.com$ +(^|\.)kzeng\.info$ +(^|\.)la-forum\.org$ +(^|\.)labiennale\.org$ +(^|\.)ladbrokes\.com$ +(^|\.)lagranepoca\.com$ +(^|\.)lalulalu\.com$ +(^|\.)lama\.com\.tw$ +(^|\.)lamayeshe\.com$ +(^|\.)lamnia\.co\.uk$ +(^|\.)lamrim\.com$ +(^|\.)lanterncn\.cn$ +(^|\.)lantosfoundation\.org$ +(^|\.)laod\.cn$ +(^|\.)laogai\.org$ +(^|\.)laomiu\.com$ +(^|\.)laoyang\.info$ +(^|\.)laptoplockdown\.com$ +(^|\.)laqingdan\.net$ +(^|\.)larsgeorge\.com$ +(^|\.)lastcombat\.com$ +(^|\.)lastfm\.es$ +(^|\.)latelinenews\.com$ +(^|\.)latibet\.org$ +(^|\.)ld\.hao123img\.com$ +(^|\.)le-vpn\.com$ +(^|\.)leafyvpn\.net$ +(^|\.)lecloud\.net$ +(^|\.)leeao\.com\.cn$ +(^|\.)lefora\.com$ +(^|\.)left21\.hk$ +(^|\.)legalporno\.com$ +(^|\.)legaltech\.law\.com$ +(^|\.)legsjapan\.com$ +(^|\.)leirentv\.ca$ +(^|\.)leisurecafe\.ca$ +(^|\.)leisurepro\.com$ +(^|\.)lematin\.ch$ +(^|\.)lemonde\.fr$ +(^|\.)lenwhite\.com$ +(^|\.)lerosua\.org$ +(^|\.)lers\.google$ +(^|\.)lesoir\.be$ +(^|\.)letou\.com$ +(^|\.)letscorp\.net$ +(^|\.)lflink\.com$ +(^|\.)lflinkup\.com$ +(^|\.)lflinkup\.net$ +(^|\.)lflinkup\.org$ +(^|\.)lhakar\.org$ +(^|\.)lhasocialwork\.org$ +(^|\.)liangyou\.net$ +(^|\.)lianyue\.net$ +(^|\.)liaowangxizang\.net$ +(^|\.)liberal\.org\.hk$ +(^|\.)libertytimes\.com\.tw$ +(^|\.)library\.usc\.cuhk\.edu\.hk$ +(^|\.)lidecheng\.com$ +(^|\.)lifemiles\.com$ +(^|\.)lighten\.org\.tw$ +(^|\.)lightnovel\.cn$ +(^|\.)like\.com$ +(^|\.)limiao\.net$ +(^|\.)line-apps\.com$ +(^|\.)line-scdn\.net$ +(^|\.)line\.me$ +(^|\.)line\.naver\.jp$ +(^|\.)linglingfa\.com$ +(^|\.)lingvodics\.com$ +(^|\.)link-o-rama\.com$ +(^|\.)linkideo\.com$ +(^|\.)linkuswell\.com$ +(^|\.)linux\.org\.hk$ +(^|\.)linuxtoy\.org$ +(^|\.)lionsroar\.com$ +(^|\.)lipuman\.com$ +(^|\.)liquidvpn\.com$ +(^|\.)listentoyoutube\.com$ +(^|\.)listorious\.com$ +(^|\.)lists\.w3\.org$ +(^|\.)liudejun\.com$ +(^|\.)liuhanyu\.com$ +(^|\.)liujianshu\.com$ +(^|\.)liuxiaobo\.net$ +(^|\.)liuxiaotong\.com$ +(^|\.)livedoor\.jp$ +(^|\.)liveleak\.com$ +(^|\.)livestation\.com$ +(^|\.)livestream\.com$ +(^|\.)livevideo\.com$ +(^|\.)livingonline\.us$ +(^|\.)livingstream\.com$ +(^|\.)liwangyang\.com$ +(^|\.)lizhizhuangbi\.com$ +(^|\.)lkcn\.net$ +(^|\.)llss\.me$ +(^|\.)load\.to$ +(^|\.)lobsangwangyal\.com$ +(^|\.)localdomain\.ws$ +(^|\.)localpresshk\.com$ +(^|\.)lockestek\.com$ +(^|\.)logbot\.net$ +(^|\.)logiqx\.com$ +(^|\.)londonchinese\.ca$ +(^|\.)longhair\.hk$ +(^|\.)longmusic\.com$ +(^|\.)longtermly\.net$ +(^|\.)longtoes\.com$ +(^|\.)lookpic\.com$ +(^|\.)looktoronto\.com$ +(^|\.)lotsawahouse\.org$ +(^|\.)lotuslight\.org\.hk$ +(^|\.)lotuslight\.org\.tw$ +(^|\.)lovetvshow\.com$ +(^|\.)lpsg\.com$ +(^|\.)lrfz\.com$ +(^|\.)lrip\.org$ +(^|\.)lsd\.org\.hk$ +(^|\.)lsforum\.net$ +(^|\.)lsm\.org$ +(^|\.)lsmchinese\.org$ +(^|\.)lsmkorean\.org$ +(^|\.)lsmradio\.com$ +(^|\.)lsmwebcast\.com$ +(^|\.)lsxszzg\.com$ +(^|\.)ltn\.com\.tw$ +(^|\.)luke54\.com$ +(^|\.)luke54\.org$ +(^|\.)lupm\.org$ +(^|\.)lushstories\.com$ +(^|\.)luxebc\.com$ +(^|\.)lvhai\.org$ +(^|\.)lvv2\.com$ +(^|\.)lyfhk\.net$ +(^|\.)lzmtnews\.org$ +(^|\.)m\.hkgalden\.com$ +(^|\.)m\.me$ +(^|\.)m\.plixi\.com$ +(^|\.)m\.slandr\.net$ +(^|\.)ma\.hao123\.com$ +(^|\.)macgamestore\.com$ +(^|\.)macrovpn\.com$ +(^|\.)macts\.com\.tw$ +(^|\.)mad-ar\.ch$ +(^|\.)madewithcode\.com$ +(^|\.)madonna-av\.com$ +(^|\.)madthumbs\.com$ +(^|\.)magazines\.sina\.com\.tw$ +(^|\.)magic-net\.info$ +(^|\.)mahabodhi\.org$ +(^|\.)maiio\.net$ +(^|\.)mail-archive\.com$ +(^|\.)maildns\.xyz$ +(^|\.)maiplus\.com$ +(^|\.)maizhong\.org$ +(^|\.)makemymood\.com$ +(^|\.)makkahnewspaper\.com$ +(^|\.)makzhou\.warehouse333\.com$ +(^|\.)malaysiakini\.com$ +(^|\.)mamingzhe\.com$ +(^|\.)manchukuo\.net$ +(^|\.)mangafox\.com$ +(^|\.)mangafox\.me$ +(^|\.)maniash\.com$ +(^|\.)manicur4ik\.ru$ +(^|\.)mansion\.com$ +(^|\.)mansionpoker\.com$ +(^|\.)manta\.com$ +(^|\.)maplew\.com$ +(^|\.)marc\.info$ +(^|\.)marguerite\.su$ +(^|\.)martau\.com$ +(^|\.)martincartoons\.com$ +(^|\.)martsangkagyuofficial\.org$ +(^|\.)maruta\.be$ +(^|\.)marxist\.com$ +(^|\.)marxist\.net$ +(^|\.)marxists\.org$ +(^|\.)mash\.to$ +(^|\.)maskedip\.com$ +(^|\.)matainja\.com$ +(^|\.)material\.io$ +(^|\.)mathable\.io$ +(^|\.)mathiew-badimon\.com$ +(^|\.)matome-plus\.com$ +(^|\.)matome-plus\.net$ +(^|\.)matsushimakaede\.com$ +(^|\.)mattwilcox\.net$ +(^|\.)maturejp\.com$ +(^|\.)maxing\.jp$ +(^|\.)mayimayi\.com$ +(^|\.)mcadforums\.com$ +(^|\.)mcaf\.ee$ +(^|\.)mcfog\.com$ +(^|\.)mcreasite\.com$ +(^|\.)md-t\.org$ +(^|\.)me\.youthwant\.com\.tw$ +(^|\.)meansys\.com$ +(^|\.)media\.nu\.nl$ +(^|\.)media\.org\.hk$ +(^|\.)mediachinese\.com$ +(^|\.)mediafire\.com$ +(^|\.)mediafreakcity\.com$ +(^|\.)medium\.com$ +(^|\.)meetav\.com$ +(^|\.)meetup\.com$ +(^|\.)mefeedia\.com$ +(^|\.)mefound\.com$ +(^|\.)mega\.nz$ +(^|\.)megaproxy\.com$ +(^|\.)megarotic\.com$ +(^|\.)megavideo\.com$ +(^|\.)megurineluka\.com$ +(^|\.)meirixiaochao\.com$ +(^|\.)melon-peach\.com$ +(^|\.)meltoday\.com$ +(^|\.)meme\.yahoo\.com$ +(^|\.)memehk\.com$ +(^|\.)memorybbs\.com$ +(^|\.)memri\.org$ +(^|\.)memrijttm\.org$ +(^|\.)mercyprophet\.org$ +(^|\.)meridian-trust\.org$ +(^|\.)meripet\.biz$ +(^|\.)meripet\.com$ +(^|\.)merit-times\.com\.tw$ +(^|\.)meshrep\.com$ +(^|\.)mesotw\.com$ +(^|\.)messenger\.com$ +(^|\.)metacafe\.com$ +(^|\.)metarthunter\.com$ +(^|\.)meteorshowersonline\.com$ +(^|\.)metrohk\.com\.hk$ +(^|\.)metrolife\.ca$ +(^|\.)metroradio\.com\.hk$ +(^|\.)meyou\.jp$ +(^|\.)meyul\.com$ +(^|\.)mfxmedia\.com$ +(^|\.)mgoon\.com$ +(^|\.)mgstage\.com$ +(^|\.)mh4u\.org$ +(^|\.)mhradio\.org$ +(^|\.)michaelanti\.com$ +(^|\.)michaelmarketl\.com$ +(^|\.)microvpn\.com$ +(^|\.)middle-way\.net$ +(^|\.)mihk\.hk$ +(^|\.)mihr\.com$ +(^|\.)mihua\.org$ +(^|\.)mike\.cz\.cc$ +(^|\.)mikesoltys\.com$ +(^|\.)milph\.net$ +(^|\.)milsurps\.com$ +(^|\.)mimiai\.net$ +(^|\.)mimivip\.com$ +(^|\.)mimivv\.com$ +(^|\.)mindrolling\.org$ +(^|\.)minghui-a\.org$ +(^|\.)minghui-b\.org$ +(^|\.)minghui-school\.org$ +(^|\.)minghui\.or\.kr$ +(^|\.)minghui\.org$ +(^|\.)minghuiyw\.wordpress\.com$ +(^|\.)mingjinglishi\.com$ +(^|\.)mingjingnews\.com$ +(^|\.)mingjingtimes\.com$ +(^|\.)mingpao\.com$ +(^|\.)mingpaocanada\.com$ +(^|\.)mingpaomonthly\.com$ +(^|\.)mingpaonews\.com$ +(^|\.)mingpaony\.com$ +(^|\.)mingpaosf\.com$ +(^|\.)mingpaotor\.com$ +(^|\.)mingpaovan\.com$ +(^|\.)mingshengbao\.com$ +(^|\.)minhhue\.net$ +(^|\.)miniforum\.org$ +(^|\.)ministrybooks\.org$ +(^|\.)minzhuhua\.net$ +(^|\.)minzhuzhanxian\.com$ +(^|\.)minzhuzhongguo\.org$ +(^|\.)miroguide\.com$ +(^|\.)mirrorbooks\.com$ +(^|\.)mist\.vip$ +(^|\.)mitao\.com\.tw$ +(^|\.)mitbbs\.com$ +(^|\.)mitbbsau\.com$ +(^|\.)mixero\.com$ +(^|\.)mixpod\.com$ +(^|\.)mixx\.com$ +(^|\.)mizzmona\.com$ +(^|\.)mjib\.gov\.tw$ +(^|\.)mjlsh\.usc\.cuhk\.edu\.hk$ +(^|\.)mk5000\.com$ +(^|\.)mlcool\.com$ +(^|\.)mm-cg\.com$ +(^|\.)mmaaxx\.com$ +(^|\.)mmmca\.com$ +(^|\.)mnewstv\.com$ +(^|\.)mo\.nightlife141\.com$ +(^|\.)mobatek\.net$ +(^|\.)mobile01\.com$ +(^|\.)mobileways\.de$ +(^|\.)moby\.to$ +(^|\.)mobypicture\.com$ +(^|\.)moeaic\.gov\.tw$ +(^|\.)moeerolibrary\.com$ +(^|\.)mofaxiehui\.com$ +(^|\.)mofos\.com$ +(^|\.)mog\.com$ +(^|\.)mol\.gov\.tw$ +(^|\.)molihua\.org$ +(^|\.)mondex\.org$ +(^|\.)money-link\.com\.tw$ +(^|\.)moneyhome\.biz$ +(^|\.)monitorchina\.org$ +(^|\.)monster\.com$ +(^|\.)moodyz\.com$ +(^|\.)moonbbs\.com$ +(^|\.)morningsun\.org$ +(^|\.)moroneta\.com$ +(^|\.)mos\.ru$ +(^|\.)motherless\.com$ +(^|\.)motor4ik\.ru$ +(^|\.)mousebreaker\.com$ +(^|\.)movements\.org$ +(^|\.)moviefap\.com$ +(^|\.)mp3buscador\.com$ +(^|\.)mp3ye\.eu$ +(^|\.)mpettis\.com$ +(^|\.)mpfinance\.com$ +(^|\.)mpinews\.com$ +(^|\.)mponline\.hk$ +(^|\.)mqxd\.org$ +(^|\.)mrbasic\.com$ +(^|\.)mrbonus\.com$ +(^|\.)mrface\.com$ +(^|\.)mrslove\.com$ +(^|\.)mrtweet\.com$ +(^|\.)msguancha\.com$ +(^|\.)msha\.gov$ +(^|\.)mswe1\.org$ +(^|\.)mthruf\.com$ +(^|\.)mtw\.tl$ +(^|\.)muchosucko\.com$ +(^|\.)mullvad\.net$ +(^|\.)multiply\.com$ +(^|\.)multiproxy\.org$ +(^|\.)multiupload\.com$ +(^|\.)mummysgold\.com$ +(^|\.)murmur\.tw$ +(^|\.)musicade\.net$ +(^|\.)muslimvideo\.com$ +(^|\.)muzi\.com$ +(^|\.)muzi\.net$ +(^|\.)muzu\.tv$ +(^|\.)mvdis\.gov\.tw$ +(^|\.)mvg\.jp$ +(^|\.)mx\.hao123\.com$ +(^|\.)mx981\.com$ +(^|\.)my-formosa\.com$ +(^|\.)my-private-network\.co\.uk$ +(^|\.)my-proxy\.com$ +(^|\.)my\.mail\.ru$ +(^|\.)my\.opera\.com$ +(^|\.)my\.pcloud\.com$ +(^|\.)my03\.com$ +(^|\.)myactimes\.com$ +(^|\.)myanniu\.com$ +(^|\.)myaudiocast\.com$ +(^|\.)myav\.com\.tw$ +(^|\.)mybbs\.us$ +(^|\.)mybet\.com$ +(^|\.)myca168\.com$ +(^|\.)mycanadanow\.com$ +(^|\.)mychinamyhome\.com$ +(^|\.)mychinanet\.com$ +(^|\.)mychinanews\.com$ +(^|\.)mychinese\.news$ +(^|\.)mycnnews\.com$ +(^|\.)mycould\.com$ +(^|\.)mydad\.info$ +(^|\.)myddns\.com$ +(^|\.)myeasytv\.com$ +(^|\.)myeclipseide\.com$ +(^|\.)myforum\.com\.hk$ +(^|\.)myforum\.com\.uk$ +(^|\.)myfreecams\.com$ +(^|\.)myfreepaysite\.com$ +(^|\.)myfreshnet\.com$ +(^|\.)myftp\.info$ +(^|\.)myftp\.name$ +(^|\.)myiphide\.com$ +(^|\.)mykomica\.org$ +(^|\.)mylftv\.com$ +(^|\.)mymediarom\.com$ +(^|\.)mymoe\.moe$ +(^|\.)mymom\.info$ +(^|\.)mymusic\.net\.tw$ +(^|\.)mynetav\.net$ +(^|\.)mynetav\.org$ +(^|\.)mynumber\.org$ +(^|\.)myparagliding\.com$ +(^|\.)mypicture\.info$ +(^|\.)mypop3\.net$ +(^|\.)mypop3\.org$ +(^|\.)mypopescu\.com$ +(^|\.)myradio\.hk$ +(^|\.)myreadingmanga\.info$ +(^|\.)mysecondarydns\.com$ +(^|\.)myshare\.url\.com\.tw$ +(^|\.)mysinablog\.com$ +(^|\.)mysite\.verizon\.net$ +(^|\.)myspace\.com$ +(^|\.)myspacecdn\.com$ +(^|\.)mytalkbox\.com$ +(^|\.)mytizi\.com$ +(^|\.)mywww\.biz$ +(^|\.)myz\.info$ +(^|\.)naacoalition\.org$ +(^|\.)naitik\.net$ +(^|\.)nakido\.com$ +(^|\.)nakuz\.com$ +(^|\.)nalandabodhi\.org$ +(^|\.)nalandawest\.org$ +(^|\.)namgyal\.org$ +(^|\.)namgyalmonastery\.org$ +(^|\.)namsisi\.com$ +(^|\.)nanyang\.com$ +(^|\.)nanyangpost\.com$ +(^|\.)nanzao\.com$ +(^|\.)naol\.ca$ +(^|\.)naol\.cc$ +(^|\.)nat\.gov\.tw$ +(^|\.)nat\.moe$ +(^|\.)national-lottery\.co\.uk$ +(^|\.)nationsonline\.org$ +(^|\.)nationwide\.com$ +(^|\.)naughtyamerica\.com$ +(^|\.)navyfamily\.navy\.mil$ +(^|\.)navyreserve\.navy\.mil$ +(^|\.)naweeklytimes\.com$ +(^|\.)nbtvpn\.com$ +(^|\.)nccwatch\.org\.tw$ +(^|\.)nch\.com\.tw$ +(^|\.)ncn\.org$ +(^|\.)nde\.de$ +(^|\.)ndr\.de$ +(^|\.)ned\.org$ +(^|\.)nekoslovakia\.net$ +(^|\.)nemesis2\.qx\.net$ +(^|\.)neo-miracle\.com$ +(^|\.)nepusoku\.com$ +(^|\.)net-fits\.pro$ +(^|\.)netbirds\.com$ +(^|\.)netcolony\.com$ +(^|\.)netflix\.com$ +(^|\.)netme\.cc$ +(^|\.)netsneak\.com$ +(^|\.)network54\.com$ +(^|\.)networkedblogs\.com$ +(^|\.)networktunnel\.net$ +(^|\.)neverforget8964\.org$ +(^|\.)new-3lunch\.net$ +(^|\.)new-akiba\.com$ +(^|\.)new96\.ca$ +(^|\.)newcenturymc\.com$ +(^|\.)newcenturynews\.com$ +(^|\.)newchen\.com$ +(^|\.)newgrounds\.com$ +(^|\.)newipnow\.com$ +(^|\.)newlandmagazine\.com\.au$ +(^|\.)newnews\.ca$ +(^|\.)news\.bbc\.co\.uk$ +(^|\.)news\.cnyes\.com$ +(^|\.)news\.hk\.msn\.com$ +(^|\.)news\.hkpeanut\.com$ +(^|\.)news\.msn\.com\.tw$ +(^|\.)news\.nationalgeographic\.com$ +(^|\.)news\.now\.com$ +(^|\.)news\.now\.com%2fhome$ +(^|\.)news\.omy\.sg$ +(^|\.)news\.seehua\.com$ +(^|\.)news\.sina\.com\.hk$ +(^|\.)news\.sina\.com\.tw$ +(^|\.)news\.sinchew\.com\.my$ +(^|\.)news\.singtao\.ca$ +(^|\.)news\.tvb\.com$ +(^|\.)news\.tvbs\.com\.tw$ +(^|\.)news\.yahoo\.com$ +(^|\.)news100\.com\.tw$ +(^|\.)newsancai\.com$ +(^|\.)newschinacomment\.org$ +(^|\.)newscn\.org$ +(^|\.)newsdetox\.ca$ +(^|\.)newsdh\.com$ +(^|\.)newsforums\.bbc\.co\.uk$ +(^|\.)newspeak\.cc$ +(^|\.)newstamago\.com$ +(^|\.)newstapa\.org$ +(^|\.)newstarnet\.com$ +(^|\.)newtaiwan\.com\.tw$ +(^|\.)newtalk\.tw$ +(^|\.)newyorktimes\.com$ +(^|\.)nexon\.com$ +(^|\.)next11\.co\.jp$ +(^|\.)nextmag\.com\.tw$ +(^|\.)nextmedia\.com$ +(^|\.)nexton-net\.jp$ +(^|\.)nexttv\.com\.tw$ +(^|\.)nf\.id\.au$ +(^|\.)nfjtyd\.com$ +(^|\.)nflxext\.com$ +(^|\.)nflximg\.com$ +(^|\.)nflximg\.net$ +(^|\.)nflxso\.net$ +(^|\.)nflxvideo\.net$ +(^|\.)nga\.mil$ +(^|\.)ngensis\.com$ +(^|\.)nhentai\.net$ +(^|\.)nhi\.gov\.tw$ +(^|\.)nhk-ondemand\.jp$ +(^|\.)nic\.cz\.cc$ +(^|\.)nic\.google$ +(^|\.)nic\.gov$ +(^|\.)nicovideo\.jp$ +(^|\.)nighost\.org$ +(^|\.)nikkei\.com$ +(^|\.)ninecommentaries\.com$ +(^|\.)ninjacloak\.com$ +(^|\.)ninjaproxy\.ninja$ +(^|\.)nintendium\.com$ +(^|\.)ninth\.biz$ +(^|\.)niusnews\.com$ +(^|\.)njactb\.org$ +(^|\.)njuice\.com$ +(^|\.)nko\.navy\.mil$ +(^|\.)nlfreevpn\.com$ +(^|\.)no-ip\.org$ +(^|\.)nobel\.se$ +(^|\.)nobelprize\.org$ +(^|\.)nobodycanstop\.us$ +(^|\.)nokogiri\.org$ +(^|\.)nokola\.com$ +(^|\.)noodlevpn\.com$ +(^|\.)norbulingka\.org$ +(^|\.)nordstrom\.com$ +(^|\.)nordstromimage\.com$ +(^|\.)nordstromrack\.com$ +(^|\.)nordvpn\.com$ +(^|\.)nottinghampost\.com$ +(^|\.)novelasia\.com$ +(^|\.)now\.im$ +(^|\.)nownews\.com$ +(^|\.)nowtorrents\.com$ +(^|\.)noypf\.com$ +(^|\.)npa\.go\.jp$ +(^|\.)npa\.gov\.tw$ +(^|\.)npnt\.me$ +(^|\.)nps\.gov$ +(^|\.)nradio\.me$ +(^|\.)nrk\.no$ +(^|\.)ns01\.biz$ +(^|\.)ns01\.info$ +(^|\.)ns01\.us$ +(^|\.)ns02\.biz$ +(^|\.)ns02\.info$ +(^|\.)ns02\.us$ +(^|\.)ns1\.name$ +(^|\.)ns2\.name$ +(^|\.)ns3\.name$ +(^|\.)nsc\.gov\.tw$ +(^|\.)ntbk\.gov\.tw$ +(^|\.)ntbna\.gov\.tw$ +(^|\.)ntbt\.gov\.tw$ +(^|\.)ntd\.tv$ +(^|\.)ntdtv\.ca$ +(^|\.)ntdtv\.co\.kr$ +(^|\.)ntdtv\.com$ +(^|\.)ntdtv\.cz$ +(^|\.)ntdtv\.org$ +(^|\.)ntdtv\.ru$ +(^|\.)ntdtvla\.com$ +(^|\.)ntrfun\.com$ +(^|\.)ntsna\.gov\.tw$ +(^|\.)nubiles\.net$ +(^|\.)nuexpo\.com$ +(^|\.)nukistream\.com$ +(^|\.)nurgo-software\.com$ +(^|\.)nusatrip\.com$ +(^|\.)nutaku\.net$ +(^|\.)nuuvem\.com$ +(^|\.)nuvid\.com$ +(^|\.)nuzcom\.com$ +(^|\.)nvdst\.com$ +(^|\.)nvquan\.org$ +(^|\.)nvtongzhisheng\.org$ +(^|\.)nwtca\.org$ +(^|\.)ny\.stgloballink\.com$ +(^|\.)ny\.visiontimes\.com$ +(^|\.)nyaa\.eu$ +(^|\.)nyaa\.si$ +(^|\.)nydus\.ca$ +(^|\.)nylon-angel\.com$ +(^|\.)nylonstockingsonline\.com$ +(^|\.)nyt\.com$ +(^|\.)nytchina\.com$ +(^|\.)nytcn\.me$ +(^|\.)nytco\.com$ +(^|\.)nyti\.ms$ +(^|\.)nytimes\.com$ +(^|\.)nytimes\.map\.fastly\.net$ +(^|\.)nytimg\.com$ +(^|\.)nytstyle\.com$ +(^|\.)nzchinese\.com$ +(^|\.)nzchinese\.net\.nz$ +(^|\.)observechina\.net$ +(^|\.)obutu\.com$ +(^|\.)ocaspro\.com$ +(^|\.)occupytiananmen\.com$ +(^|\.)oclp\.hk$ +(^|\.)ocreampies\.com$ +(^|\.)ocry\.com$ +(^|\.)october-review\.org$ +(^|\.)oculus\.com$ +(^|\.)oculuscdn\.com$ +(^|\.)offbeatchina\.com$ +(^|\.)officeoftibet\.com$ +(^|\.)ofile\.org$ +(^|\.)ogaoga\.org$ +(^|\.)ogate\.org$ +(^|\.)oikos\.com\.tw$ +(^|\.)oiktv\.com$ +(^|\.)oizoblog\.com$ +(^|\.)ok\.ru$ +(^|\.)okayfreedom\.com$ +(^|\.)okk\.tw$ +(^|\.)old-cat\.net$ +(^|\.)old\.honeynet\.org$ +(^|\.)old\.nabble\.com$ +(^|\.)olumpo\.com$ +(^|\.)olympicwatch\.org$ +(^|\.)omgili\.com$ +(^|\.)omni7\.jp$ +(^|\.)omnitalk\.com$ +(^|\.)omnitalk\.org$ +(^|\.)on\.cc$ +(^|\.)on2\.com$ +(^|\.)onapp\.com$ +(^|\.)onedrive\.live\.com$ +(^|\.)onedumb\.com$ +(^|\.)onion\.city$ +(^|\.)online\.recoveryversion\.org$ +(^|\.)onlinecha\.com$ +(^|\.)onlineyoutube\.com$ +(^|\.)onlytweets\.com$ +(^|\.)onmoon\.com$ +(^|\.)onmoon\.net$ +(^|\.)onmypc\.biz$ +(^|\.)onmypc\.info$ +(^|\.)onmypc\.net$ +(^|\.)onmypc\.org$ +(^|\.)onmypc\.us$ +(^|\.)onthehunt\.com$ +(^|\.)ontrac\.com$ +(^|\.)oopsforum\.com$ +(^|\.)open\.com\.hk$ +(^|\.)openallweb\.com$ +(^|\.)opendemocracy\.net$ +(^|\.)opendn\.xyz$ +(^|\.)openervpn\.in$ +(^|\.)openid\.net$ +(^|\.)openleaks\.org$ +(^|\.)openvpn\.net$ +(^|\.)openwebster\.com$ +(^|\.)openwrt\.org\.cn$ +(^|\.)opml\.radiotime\.com$ +(^|\.)organcare\.org\.tw$ +(^|\.)organharvestinvestigation\.net$ +(^|\.)organiccrap\.com$ +(^|\.)orgasm\.com$ +(^|\.)orgfree\.com$ +(^|\.)orient-doll\.com$ +(^|\.)orientaldaily\.com\.my$ +(^|\.)orn\.jp$ +(^|\.)orzistic\.org$ +(^|\.)osfoora\.com$ +(^|\.)otnd\.org$ +(^|\.)otto\.de$ +(^|\.)otzo\.com$ +(^|\.)ourdearamy\.com$ +(^|\.)ourhobby\.com$ +(^|\.)oursogo\.com$ +(^|\.)oursteps\.com\.au$ +(^|\.)oursweb\.net$ +(^|\.)ourtv\.hk$ +(^|\.)overplay\.net$ +(^|\.)oversea\.istarshine\.com$ +(^|\.)ow\.ly$ +(^|\.)owl\.li$ +(^|\.)oyax\.com$ +(^|\.)oyghan\.com$ +(^|\.)ozchinese\.com$ +(^|\.)ozvoice\.org$ +(^|\.)ozxw\.com$ +(^|\.)ozyoyo\.com$ +(^|\.)pachosting\.com$ +(^|\.)pacificpoker\.com$ +(^|\.)packages\.debian\.org$ +(^|\.)packetix\.net$ +(^|\.)pacopacomama\.com$ +(^|\.)padmanet\.com$ +(^|\.)page\.bid\.yahoo\.com$ +(^|\.)page2rss\.com$ +(^|\.)pagodabox\.com$ +(^|\.)palacemoon\.com$ +(^|\.)paldengyal\.com$ +(^|\.)paljorpublications\.com$ +(^|\.)paltalk\.com$ +(^|\.)panacom\.co\.jp$ +(^|\.)panamapapers\.sueddeutsche\.de$ +(^|\.)pandapow\.co$ +(^|\.)pandapow\.net$ +(^|\.)pandavpn-jp\.com$ +(^|\.)pandora\.com$ +(^|\.)pandora\.tv$ +(^|\.)pangci\.net$ +(^|\.)panluan\.net$ +(^|\.)panoramio\.com$ +(^|\.)pao-pao\.net$ +(^|\.)paper\.li$ +(^|\.)paperb\.us$ +(^|\.)paradisehill\.cc$ +(^|\.)paradisepoker\.com$ +(^|\.)parkansky\.com$ +(^|\.)partycasino\.com$ +(^|\.)partypoker\.com$ +(^|\.)passion\.com$ +(^|\.)passiontimes\.hk$ +(^|\.)pastebin\.com$ +(^|\.)pastie\.org$ +(^|\.)pbs\.org$ +(^|\.)pbwiki\.com$ +(^|\.)pbworks\.com$ +(^|\.)pbxes\.com$ +(^|\.)pbxes\.org$ +(^|\.)pcanywhere\.net$ +(^|\.)pcc\.gov\.tw$ +(^|\.)pcdvd\.com\.tw$ +(^|\.)pchome\.com\.tw$ +(^|\.)pcij\.org$ +(^|\.)pcstore\.com\.tw$ +(^|\.)pct\.org\.tw$ +(^|\.)pdetails\.com$ +(^|\.)pdproxy\.com$ +(^|\.)pds\.nasa\.gov$ +(^|\.)peace\.ca$ +(^|\.)peacefire\.org$ +(^|\.)peacehall\.com$ +(^|\.)pearlher\.org$ +(^|\.)peeasian\.com$ +(^|\.)pekingduck\.org$ +(^|\.)pemulihan\.or\.id$ +(^|\.)pen\.io$ +(^|\.)penchinese\.com$ +(^|\.)penchinese\.net$ +(^|\.)pengyulong\.com$ +(^|\.)penisbot\.com$ +(^|\.)penthouse\.com$ +(^|\.)pentoy\.hk$ +(^|\.)peoplebookcafe\.com$ +(^|\.)peoplenews\.tw$ +(^|\.)peopo\.org$ +(^|\.)percy\.in$ +(^|\.)perfectgirls\.net$ +(^|\.)perfectvpn\.net$ +(^|\.)periscope\.tv$ +(^|\.)persecutionblog\.com$ +(^|\.)persiankitty\.com$ +(^|\.)pfd\.org\.hk$ +(^|\.)phapluan\.org$ +(^|\.)phayul\.com$ +(^|\.)philborges\.com$ +(^|\.)philly\.com$ +(^|\.)phmsociety\.org$ +(^|\.)phncdn\.com$ +(^|\.)phobos\.apple\.com$ +(^|\.)phosphation13\.rssing\.com$ +(^|\.)photodharma\.net$ +(^|\.)photofocus\.com$ +(^|\.)phuquocservices\.com$ +(^|\.)picacomic\.com$ +(^|\.)picacomiccn\.com$ +(^|\.)picasaweb\.com$ +(^|\.)picidae\.net$ +(^|\.)pictures\.playboy\.com$ +(^|\.)picturesocial\.com$ +(^|\.)pin-cong\.com$ +(^|\.)pin6\.com$ +(^|\.)ping\.fm$ +(^|\.)pinimg\.com$ +(^|\.)pinkrod\.com$ +(^|\.)pinoy-n\.com$ +(^|\.)pinterest\.at$ +(^|\.)pinterest\.co\.kr$ +(^|\.)pinterest\.co\.uk$ +(^|\.)pinterest\.com$ +(^|\.)pinterest\.de$ +(^|\.)pinterest\.dk$ +(^|\.)pinterest\.fr$ +(^|\.)pinterest\.jp$ +(^|\.)pinterest\.nl$ +(^|\.)pinterest\.se$ +(^|\.)pioneer-worker\.forums-free\.com$ +(^|\.)pipii\.tv$ +(^|\.)piposay\.com$ +(^|\.)piraattilahti\.org$ +(^|\.)piring\.com$ +(^|\.)pixelqi\.com$ +(^|\.)pixiv\.net$ +(^|\.)pixnet\.net$ +(^|\.)pk\.com$ +(^|\.)placemix\.com$ +(^|\.)playboy\.com$ +(^|\.)playboyplus\.com$ +(^|\.)player\.fm$ +(^|\.)playno1\.com$ +(^|\.)playpcesor\.com$ +(^|\.)plays\.com\.tw$ +(^|\.)plm\.org\.hk$ +(^|\.)plunder\.com$ +(^|\.)plus28\.com$ +(^|\.)plusbb\.com$ +(^|\.)pmatehunter\.com$ +(^|\.)pmates\.com$ +(^|\.)po2b\.com$ +(^|\.)pobieramy\.top$ +(^|\.)podictionary\.com$ +(^|\.)pokerstars\.net$ +(^|\.)politicalchina\.org$ +(^|\.)politicalconsultation\.org$ +(^|\.)poloniex\.com$ +(^|\.)polymer-project\.org$ +(^|\.)polymerhk\.com$ +(^|\.)popo\.tw$ +(^|\.)popvote\.hk$ +(^|\.)popyard\.com$ +(^|\.)popyard\.org$ +(^|\.)porn\.com$ +(^|\.)porn2\.com$ +(^|\.)porn5\.com$ +(^|\.)pornbase\.org$ +(^|\.)pornerbros\.com$ +(^|\.)pornhd\.com$ +(^|\.)pornhost\.com$ +(^|\.)pornhub\.com$ +(^|\.)pornhubdeutsch\.net$ +(^|\.)pornmm\.net$ +(^|\.)pornoxo\.com$ +(^|\.)pornrapidshare\.com$ +(^|\.)pornsharing\.com$ +(^|\.)pornsocket\.com$ +(^|\.)pornstarclub\.com$ +(^|\.)porntube\.com$ +(^|\.)porntubenews\.com$ +(^|\.)porntvblog\.com$ +(^|\.)pornvisit\.com$ +(^|\.)port25\.biz$ +(^|\.)portablevpn\.nl$ +(^|\.)poskotanews\.com$ +(^|\.)post01\.com$ +(^|\.)post76\.com$ +(^|\.)post852\.com$ +(^|\.)postadult\.com$ +(^|\.)postimg\.org$ +(^|\.)potvpn\.com$ +(^|\.)power\.com$ +(^|\.)powerapple\.com$ +(^|\.)powercx\.com$ +(^|\.)powerphoto\.org$ +(^|\.)prayforchina\.net$ +(^|\.)premeforwindows7\.com$ +(^|\.)presentationzen\.com$ +(^|\.)presidentlee\.tw$ +(^|\.)prestige-av\.com$ +(^|\.)prisoner-state-secret-journal-premier$ +(^|\.)prisoneralert\.com$ +(^|\.)pritunl\.com$ +(^|\.)privacybox\.de$ +(^|\.)private\.com$ +(^|\.)privateinternetaccess\.com$ +(^|\.)privatepaste\.com$ +(^|\.)privatetunnel\.com$ +(^|\.)privatevpn\.com$ +(^|\.)procopytips\.com$ +(^|\.)prosiben\.de$ +(^|\.)provideocoalition\.com$ +(^|\.)provpnaccounts\.com$ +(^|\.)proxfree\.com$ +(^|\.)proxifier\.com$ +(^|\.)proxomitron\.info$ +(^|\.)proxpn\.com$ +(^|\.)proxyanonimo\.es$ +(^|\.)proxydns\.com$ +(^|\.)proxylist\.org\.uk$ +(^|\.)proxynetwork\.org\.uk$ +(^|\.)proxypy\.net$ +(^|\.)proxyroad\.com$ +(^|\.)proxytunnel\.net$ +(^|\.)proyectoclubes\.com$ +(^|\.)prozz\.net$ +(^|\.)psblog\.name$ +(^|\.)pscp\.tv$ +(^|\.)psiphon\.ca$ +(^|\.)psiphon\.civisec\.org$ +(^|\.)psiphon3\.com$ +(^|\.)psiphontoday\.com$ +(^|\.)pts\.org\.tw$ +(^|\.)ptt\.cc$ +(^|\.)pttvan\.org$ +(^|\.)pubu\.com\.tw$ +(^|\.)puffinbrowser\.com$ +(^|\.)puffstore\.com$ +(^|\.)pullfolio\.com$ +(^|\.)pulse\.yahoo\.com$ +(^|\.)punyu\.com$ +(^|\.)pure18\.com$ +(^|\.)pureconcepts\.net$ +(^|\.)pureinsight\.org$ +(^|\.)purepdf\.com$ +(^|\.)purevpn\.com$ +(^|\.)purplelotus\.org$ +(^|\.)pursuestar\.com$ +(^|\.)pushchinawall\.com$ +(^|\.)pussyspace\.com$ +(^|\.)putihome\.org$ +(^|\.)putlocker\.com$ +(^|\.)putty\.org$ +(^|\.)puuko\.com$ +(^|\.)pwned\.com$ +(^|\.)python\.com$ +(^|\.)python\.com\.tw$ +(^|\.)pythonhackers\.com$ +(^|\.)q%3dfreedom$ +(^|\.)q%3dtriangle$ +(^|\.)q=freedom$ +(^|\.)q=triangle$ +(^|\.)qanote\.com$ +(^|\.)qgirl\.com\.tw$ +(^|\.)qhigh\.com$ +(^|\.)qi-gong\.me$ +(^|\.)qiandao\.today$ +(^|\.)qiangyou\.org$ +(^|\.)qidian\.ca$ +(^|\.)qienkuen\.org$ +(^|\.)qiwen\.lu$ +(^|\.)qixianglu\.cn$ +(^|\.)qkshare\.com$ +(^|\.)qoos\.com$ +(^|\.)qpoe\.com$ +(^|\.)qq\.co\.za$ +(^|\.)qstatus\.com$ +(^|\.)qtrac\.eu$ +(^|\.)qtweeter\.com$ +(^|\.)quannengshen\.org$ +(^|\.)quantumbooter\.net$ +(^|\.)questvisual\.com$ +(^|\.)quitccp\.net$ +(^|\.)quitccp\.org$ +(^|\.)quora\.com$ +(^|\.)quran\.com$ +(^|\.)quranexplorer\.com$ +(^|\.)qusi8\.net$ +(^|\.)qvodzy\.org$ +(^|\.)qxbbs\.org$ +(^|\.)r18\.com$ +(^|\.)ra\.gg$ +(^|\.)radicalparty\.org$ +(^|\.)radiko\.jp$ +(^|\.)radioaustralia\.net\.au$ +(^|\.)radiohilight\.net$ +(^|\.)radiovaticana\.org$ +(^|\.)radiovncr\.com$ +(^|\.)rael\.org$ +(^|\.)raggedbanner\.com$ +(^|\.)raidcall\.com\.tw$ +(^|\.)raidtalk\.com\.tw$ +(^|\.)rainbowplan\.org$ +(^|\.)raizoji\.or\.jp$ +(^|\.)ramcity\.com\.au$ +(^|\.)rangwang\.biz$ +(^|\.)rangzen\.com$ +(^|\.)rangzen\.net$ +(^|\.)rangzen\.org$ +(^|\.)ranyunfei\.com$ +(^|\.)rapbull\.net$ +(^|\.)rapidgator\.net$ +(^|\.)rapidmoviez\.com$ +(^|\.)rapidvpn\.com$ +(^|\.)raremovie\.cc$ +(^|\.)raremovie\.net$ +(^|\.)rawgit\.com$ +(^|\.)rawgithub\.com$ +(^|\.)razyboard\.com$ +(^|\.)rcinet\.ca$ +(^|\.)rconversation\.blogs\.com$ +(^|\.)rd\.com$ +(^|\.)rdio\.com$ +(^|\.)read01\.com$ +(^|\.)read100\.com$ +(^|\.)readingtimes\.com\.tw$ +(^|\.)readmoo\.com$ +(^|\.)readydown\.com$ +(^|\.)realcourage\.org$ +(^|\.)realforum\.zkiz\.com$ +(^|\.)realitykings\.com$ +(^|\.)realraptalk\.com$ +(^|\.)realsexpass\.com$ +(^|\.)rebatesrule\.net$ +(^|\.)recordhistory\.org$ +(^|\.)recovery\.org\.tw$ +(^|\.)recoveryversion\.com\.tw$ +(^|\.)red-lang\.org$ +(^|\.)redballoonsolidarity\.org$ +(^|\.)redchinacn\.net$ +(^|\.)redchinacn\.org$ +(^|\.)redhotlabs\.com$ +(^|\.)redtube\.com$ +(^|\.)referer\.us$ +(^|\.)reflectivecode\.com$ +(^|\.)registry\.google$ +(^|\.)relaxbbs\.com$ +(^|\.)relay\.com\.tw$ +(^|\.)releaseinternational\.org$ +(^|\.)religioustolerance\.org$ +(^|\.)remembering_tiananmen_20_years$ +(^|\.)renminbao\.com$ +(^|\.)renyurenquan\.org$ +(^|\.)research\.jmsc\.hku\.hk$ +(^|\.)resilio\.com$ +(^|\.)retweeteffect\.com$ +(^|\.)retweetist\.com$ +(^|\.)retweetrank\.com$ +(^|\.)reuters\.com$ +(^|\.)reutersmedia\.net$ +(^|\.)revleft\.com$ +(^|\.)revver\.com$ +(^|\.)rfa\.org$ +(^|\.)rfachina\.com$ +(^|\.)rfamobile\.org$ +(^|\.)rfaweb\.org$ +(^|\.)rferl\.org$ +(^|\.)rfi\.fr$ +(^|\.)rfi\.my$ +(^|\.)rigpa\.org$ +(^|\.)riku\.me$ +(^|\.)rileyguide\.com$ +(^|\.)ritouki\.jp$ +(^|\.)ritter\.vg$ +(^|\.)rlwlw\.com$ +(^|\.)rmjdw\.com$ +(^|\.)rmjdw132\.info$ +(^|\.)roadshow\.hk$ +(^|\.)roboforex\.com$ +(^|\.)robustnessiskey\.com$ +(^|\.)rocket-inc\.net$ +(^|\.)rocksdb\.org$ +(^|\.)rojo\.com$ +(^|\.)rolia\.net$ +(^|\.)ronjoneswriter\.com$ +(^|\.)roodo\.com$ +(^|\.)rosechina\.net$ +(^|\.)rotten\.com$ +(^|\.)rsf-chinese\.org$ +(^|\.)rsf\.org$ +(^|\.)rsgamen\.org$ +(^|\.)rssmeme\.com$ +(^|\.)rtalabel\.org$ +(^|\.)rthk\.hk$ +(^|\.)rthk\.org\.hk$ +(^|\.)rti\.org\.tw$ +(^|\.)rtycminnesota\.org$ +(^|\.)ruanyifeng\.com$ +(^|\.)rukor\.org$ +(^|\.)rushbee\.com$ +(^|\.)ruten\.com\.tw$ +(^|\.)rutube\.ru$ +(^|\.)ruyiseek\.com$ +(^|\.)rxhj\.net$ +(^|\.)s-cute\.com$ +(^|\.)s-dragon\.org$ +(^|\.)s1\.nudezz\.com$ +(^|\.)s1heng\.com$ +(^|\.)s1s1s1\.com$ +(^|\.)s3-ap-northeast-1\.amazonaws\.com$ +(^|\.)s3-ap-southeast-2\.amazonaws\.com$ +(^|\.)s8forum\.com$ +(^|\.)sa\.hao123\.com$ +(^|\.)sacks\.com$ +(^|\.)sacom\.hk$ +(^|\.)sadistic-v\.com$ +(^|\.)sadpanda\.us$ +(^|\.)safervpn\.com$ +(^|\.)saintyculture\.com$ +(^|\.)saiq\.me$ +(^|\.)sakuralive\.com$ +(^|\.)sakya\.org$ +(^|\.)salvation\.org\.hk$ +(^|\.)samair\.ru$ +(^|\.)sambhota\.org$ +(^|\.)sanmin\.com\.tw$ +(^|\.)sapikachu\.net$ +(^|\.)saveliuxiaobo\.com$ +(^|\.)savemedia\.com$ +(^|\.)savethedate\.foo$ +(^|\.)savetibet\.de$ +(^|\.)savetibet\.fr$ +(^|\.)savetibet\.nl$ +(^|\.)savetibet\.org$ +(^|\.)savetibet\.ru$ +(^|\.)savetibetstore\.org$ +(^|\.)savevid\.com$ +(^|\.)say2\.info$ +(^|\.)sbme\.me$ +(^|\.)sbs\.com\.au$ +(^|\.)scasino\.com$ +(^|\.)schema\.org$ +(^|\.)sciencenets\.com$ +(^|\.)scieron\.com$ +(^|\.)scmp\.com$ +(^|\.)scmpchinese\.com$ +(^|\.)scramble\.io$ +(^|\.)scribd\.com$ +(^|\.)scriptspot\.com$ +(^|\.)seapuff\.com$ +(^|\.)search$ +(^|\.)search\.aol\.com$ +(^|\.)search\.yahoo\.co\.jp$ +(^|\.)searchtruth\.com$ +(^|\.)secretchina\.com$ +(^|\.)secretgarden\.no$ +(^|\.)secretsline\.biz$ +(^|\.)secure\.hustler\.com$ +(^|\.)secure\.logmein\.com$ +(^|\.)secure\.raxcdn\.com$ +(^|\.)securetunnel\.com$ +(^|\.)securitykiss\.com$ +(^|\.)seed4\.me$ +(^|\.)seesmic\.com$ +(^|\.)seevpn\.com$ +(^|\.)seezone\.net$ +(^|\.)sejie\.com$ +(^|\.)sellclassics\.com$ +(^|\.)sendsmtp\.com$ +(^|\.)sendspace\.com$ +(^|\.)servehttp\.com$ +(^|\.)serveuser\.com$ +(^|\.)serveusers\.com$ +(^|\.)sesawe\.net$ +(^|\.)sesawe\.org$ +(^|\.)sethwklein\.net$ +(^|\.)setn\.com$ +(^|\.)settv\.com\.tw$ +(^|\.)sevenload\.com$ +(^|\.)sex-11\.com$ +(^|\.)sex\.com$ +(^|\.)sex3\.com$ +(^|\.)sex8\.cc$ +(^|\.)sexandsubmission\.com$ +(^|\.)sexbot\.com$ +(^|\.)sexhu\.com$ +(^|\.)sexhuang\.com$ +(^|\.)sexidude\.com$ +(^|\.)sexinsex\.net$ +(^|\.)sextvx\.com$ +(^|\.)sexxxy\.biz$ +(^|\.)sfileydy\.com$ +(^|\.)sfshibao\.com$ +(^|\.)sftindia\.org$ +(^|\.)sftuk\.org$ +(^|\.)shadeyouvpn\.com$ +(^|\.)shadow\.ma$ +(^|\.)shadowsky\.xyz$ +(^|\.)shadowsocks-r\.com$ +(^|\.)shadowsocks\.asia$ +(^|\.)shadowsocks\.com$ +(^|\.)shadowsocks\.com\.hk$ +(^|\.)shadowsocks\.org$ +(^|\.)shadowsocks9\.com$ +(^|\.)shambalapost\.com$ +(^|\.)shambhalasun\.com$ +(^|\.)shangfang\.org$ +(^|\.)shapeservices\.com$ +(^|\.)share\.dmhy\.org$ +(^|\.)share\.ovi\.com$ +(^|\.)share\.youthwant\.com\.tw$ +(^|\.)sharebee\.com$ +(^|\.)sharecool\.org$ +(^|\.)sharpdaily\.com\.hk$ +(^|\.)sharpdaily\.hk$ +(^|\.)sharpdaily\.tw$ +(^|\.)shat-tibet\.com$ +(^|\.)shattered\.io$ +(^|\.)sheikyermami\.com$ +(^|\.)shellfire\.de$ +(^|\.)shenshou\.org$ +(^|\.)shenyun\.com$ +(^|\.)shenyunperformingarts\.org$ +(^|\.)shenzhoufilm\.com$ +(^|\.)sherabgyaltsen\.com$ +(^|\.)shiatv\.net$ +(^|\.)shicheng\.org$ +(^|\.)shiksha\.com$ +(^|\.)shinychan\.com$ +(^|\.)shipcamouflage\.com$ +(^|\.)shireyishunjian\.com$ +(^|\.)shitaotv\.org$ +(^|\.)shixiao\.org$ +(^|\.)shizhao\.org$ +(^|\.)shkspr\.mobi$ +(^|\.)shodanhq\.com$ +(^|\.)shooshtime\.com$ +(^|\.)shop2000\.com\.tw$ +(^|\.)shopping\.com$ +(^|\.)showbiz\.omy\.sg$ +(^|\.)showhaotu\.com$ +(^|\.)showtime\.jp$ +(^|\.)shutterstock\.com$ +(^|\.)shwchurch\.org$ +(^|\.)shwchurch3\.com$ +(^|\.)siddharthasintent\.org$ +(^|\.)sidelinesnews\.com$ +(^|\.)sidelinessportseatery\.com$ +(^|\.)sierrafriendsoftibet\.org$ +(^|\.)sijihuisuo\.club$ +(^|\.)sijihuisuo\.com$ +(^|\.)silkbook\.com$ +(^|\.)simbolostwitter\.com$ +(^|\.)simplecd\.org$ +(^|\.)simpleproductivityblog\.com$ +(^|\.)sinchew\.com\.my$ +(^|\.)singaporepools\.com\.sg$ +(^|\.)singfortibet\.com$ +(^|\.)singpao\.com\.hk$ +(^|\.)singtao\.com$ +(^|\.)singtaousa\.com$ +(^|\.)sino-monthly\.com$ +(^|\.)sinoants\.com$ +(^|\.)sinocast\.com$ +(^|\.)sinocism\.com$ +(^|\.)sinomontreal\.ca$ +(^|\.)sinonet\.ca$ +(^|\.)sinopitt\.info$ +(^|\.)sinoquebec\.com$ +(^|\.)sipml5\.org$ +(^|\.)sis\.xxx$ +(^|\.)sis001\.com$ +(^|\.)sis001\.us$ +(^|\.)site90\.net$ +(^|\.)sitebro\.tw$ +(^|\.)sitekreator\.com$ +(^|\.)siteks\.uk\.to$ +(^|\.)sitemaps\.org$ +(^|\.)sixth\.biz$ +(^|\.)sjrt\.org$ +(^|\.)sjum\.cn$ +(^|\.)sketchappsources\.com$ +(^|\.)skimtube\.com$ +(^|\.)skybet\.com$ +(^|\.)skyking\.com\.tw$ +(^|\.)skyvegas\.com$ +(^|\.)skyxvpn\.com$ +(^|\.)slacker\.com$ +(^|\.)slaytizle\.com$ +(^|\.)sleazydream\.com$ +(^|\.)slheng\.com$ +(^|\.)slickvpn\.com$ +(^|\.)slideshare\.net$ +(^|\.)slinkset\.com$ +(^|\.)slutload\.com$ +(^|\.)slutmoonbeam\.com$ +(^|\.)slyip\.com$ +(^|\.)slyip\.net$ +(^|\.)sm-miracle\.com$ +(^|\.)smartdnsproxy\.com$ +(^|\.)smarthide\.com$ +(^|\.)smchbooks\.com$ +(^|\.)smh\.com\.au$ +(^|\.)smhric\.org$ +(^|\.)smith\.edu$ +(^|\.)smyxy\.org$ +(^|\.)snapchat\.com$ +(^|\.)snaptu\.com$ +(^|\.)sndcdn\.com$ +(^|\.)sneakme\.net$ +(^|\.)snowlionpub\.com$ +(^|\.)sobees\.com$ +(^|\.)soc\.mil$ +(^|\.)socialwhale\.com$ +(^|\.)sockscap64\.com$ +(^|\.)sockslist\.net$ +(^|\.)socrec\.org$ +(^|\.)sod\.co\.jp$ +(^|\.)sodatea\.github\.io$ +(^|\.)softether-download\.com$ +(^|\.)softether\.co\.jp$ +(^|\.)softether\.org$ +(^|\.)softwarebychuck\.com$ +(^|\.)softwaredownload\.gitbooks\.io$ +(^|\.)sogclub\.com$ +(^|\.)sogrady\.me$ +(^|\.)soh\.tw$ +(^|\.)sohcradio\.com$ +(^|\.)sohfrance\.org$ +(^|\.)sokamonline\.com$ +(^|\.)sokmil\.com$ +(^|\.)solarsystem\.nasa\.gov$ +(^|\.)solidaritetibet\.org$ +(^|\.)solidfiles\.com$ +(^|\.)somee\.com$ +(^|\.)songjianjun\.com$ +(^|\.)sonicbbs\.cc$ +(^|\.)sonidodelaesperanza\.org$ +(^|\.)sopcast\.com$ +(^|\.)sopcast\.org$ +(^|\.)sorazone\.net$ +(^|\.)sorting-algorithms\.com$ +(^|\.)sos\.org$ +(^|\.)sosreader\.com$ +(^|\.)sostibet\.org$ +(^|\.)soubory\.com$ +(^|\.)soul-plus\.net$ +(^|\.)soulcaliburhentai\.net$ +(^|\.)soumo\.info$ +(^|\.)soundcloud\.com$ +(^|\.)soundofhope\.kr$ +(^|\.)soundofhope\.org$ +(^|\.)soup\.io$ +(^|\.)soupofmedia\.com$ +(^|\.)sourceforge\.net$ +(^|\.)sourcewadio\.com$ +(^|\.)southnews\.com\.tw$ +(^|\.)sowers\.org\.hk$ +(^|\.)spankbang\.com$ +(^|\.)spankingtube\.com$ +(^|\.)spankwire\.com$ +(^|\.)spb\.com$ +(^|\.)speakerdeck\.com$ +(^|\.)specxinzl\.jigsy\.com$ +(^|\.)speedify\.com$ +(^|\.)spem\.at$ +(^|\.)spencertipping\.com$ +(^|\.)spicevpn\.com$ +(^|\.)spideroak\.com$ +(^|\.)spike\.com$ +(^|\.)sports\.williamhill\.com$ +(^|\.)spotflux\.com$ +(^|\.)spotify\.com$ +(^|\.)spreadshirt\.es$ +(^|\.)spring4u\.info$ +(^|\.)springboardplatform\.com$ +(^|\.)sprite\.org$ +(^|\.)sproutcore\.com$ +(^|\.)sproxy\.info$ +(^|\.)squirly\.info$ +(^|\.)srcf\.ucam\.org$ +(^|\.)srocket\.us$ +(^|\.)ss-link\.com$ +(^|\.)ss\.carryzhou\.com$ +(^|\.)ss\.levyhsu\.com$ +(^|\.)ssglobal\.co$ +(^|\.)ssglobal\.me$ +(^|\.)ssh91\.com$ +(^|\.)ssl\.webpack\.de$ +(^|\.)ssl443\.org$ +(^|\.)sspro\.ml$ +(^|\.)sss\.camp$ +(^|\.)sstmlt\.moe$ +(^|\.)sstmlt\.net$ +(^|\.)stackoverflow\.com$ +(^|\.)stage64\.hk$ +(^|\.)standupfortibet\.org$ +(^|\.)stanford\.edu$ +(^|\.)starfishfx\.com$ +(^|\.)starp2p\.com$ +(^|\.)startpage\.com$ +(^|\.)startuplivingchina\.com$ +(^|\.)stat\.gov\.tw$ +(^|\.)static-economist\.com$ +(^|\.)static\.comico\.tw$ +(^|\.)static01\.nyt\.com$ +(^|\.)staticflickr\.com$ +(^|\.)statueofdemocracy\.org$ +(^|\.)stc\.com\.sa$ +(^|\.)steamcommunity\.com$ +(^|\.)steel-storm\.com$ +(^|\.)steganos\.com$ +(^|\.)steganos\.net$ +(^|\.)stepchina\.com$ +(^|\.)stephaniered\.com$ +(^|\.)sthoo\.com$ +(^|\.)stickam\.com$ +(^|\.)stickeraction\.com$ +(^|\.)stileproject\.com$ +(^|\.)sto\.cc$ +(^|\.)stoporganharvesting\.org$ +(^|\.)stoptibetcrisis\.net$ +(^|\.)storagenewsletter\.com$ +(^|\.)store\.steampowered\.com$ +(^|\.)stories\.google$ +(^|\.)storify\.com$ +(^|\.)storm\.mg$ +(^|\.)stormmediagroup\.com$ +(^|\.)stoweboyd\.com$ +(^|\.)stranabg\.com$ +(^|\.)straplessdildo\.com$ +(^|\.)streamingthe\.net$ +(^|\.)streema\.com$ +(^|\.)strikingly\.com$ +(^|\.)strongvpn\.com$ +(^|\.)strongwindpress\.com$ +(^|\.)student\.tw$ +(^|\.)studentsforafreetibet\.org$ +(^|\.)stumbleupon\.com$ +(^|\.)stupidvideos\.com$ +(^|\.)subacme\.rerouted\.org$ +(^|\.)successfn\.com$ +(^|\.)sugarsync\.com$ +(^|\.)sugobbs\.com$ +(^|\.)sugumiru18\.com$ +(^|\.)suissl\.com$ +(^|\.)sujiatun\.wordpress\.com$ +(^|\.)sulian\.me$ +(^|\.)summify\.com$ +(^|\.)sumrando\.com$ +(^|\.)sun1911\.com$ +(^|\.)sunmedia\.ca$ +(^|\.)sunporno\.com$ +(^|\.)sunskyforum\.com$ +(^|\.)sunta\.com\.tw$ +(^|\.)sunvpn\.net$ +(^|\.)sunwinism\.joinbbs\.net$ +(^|\.)suoluo\.org$ +(^|\.)superfreevpn\.com$ +(^|\.)superokayama\.com$ +(^|\.)superpages\.com$ +(^|\.)supervpn\.net$ +(^|\.)suppig\.net$ +(^|\.)suprememastertv\.com$ +(^|\.)surfeasy\.com$ +(^|\.)surfeasy\.com\.au$ +(^|\.)suroot\.com$ +(^|\.)surrenderat20\.net$ +(^|\.)suyangg\.com$ +(^|\.)svsfx\.com$ +(^|\.)swagbucks\.com$ +(^|\.)swissvpn\.net$ +(^|\.)switch1\.jp$ +(^|\.)switchvpn\.net$ +(^|\.)sydneytoday\.com$ +(^|\.)sylfoundation\.org$ +(^|\.)syncback\.com$ +(^|\.)synergyse\.com$ +(^|\.)sysresccd\.org$ +(^|\.)sytes\.net$ +(^|\.)szbbs\.net$ +(^|\.)szetowah\.org\.hk$ +(^|\.)t-g\.com$ +(^|\.)t\.co$ +(^|\.)t\.me$ +(^|\.)t\.orzdream\.com$ +(^|\.)t35\.com$ +(^|\.)t66y\.com$ +(^|\.)taa-usa\.org$ +(^|\.)taaze\.tw$ +(^|\.)tabtter\.jp$ +(^|\.)tacc\.cwb\.gov\.tw$ +(^|\.)tacem\.org$ +(^|\.)taconet\.com\.tw$ +(^|\.)taedp\.org\.tw$ +(^|\.)tafm\.org$ +(^|\.)tagwa\.org\.au$ +(^|\.)tagwalk\.com$ +(^|\.)tahr\.org\.tw$ +(^|\.)taipei\.gov\.tw$ +(^|\.)taipeisociety\.org$ +(^|\.)taiwan-sex\.com$ +(^|\.)taiwanbible\.com$ +(^|\.)taiwancon\.com$ +(^|\.)taiwandaily\.net$ +(^|\.)taiwandc\.org$ +(^|\.)taiwanjobs\.gov\.tw$ +(^|\.)taiwanjustice\.com$ +(^|\.)taiwankiss\.com$ +(^|\.)taiwannation\.50webs\.com$ +(^|\.)taiwannation\.com$ +(^|\.)taiwannation\.com\.tw$ +(^|\.)taiwanncf\.org\.tw$ +(^|\.)taiwannews\.com\.tw$ +(^|\.)taiwantp\.net$ +(^|\.)taiwantt\.org\.tw$ +(^|\.)taiwanus\.net$ +(^|\.)taiwanyes\.com$ +(^|\.)taiwanyes\.ning\.com$ +(^|\.)talk853\.com$ +(^|\.)talkboxapp\.com$ +(^|\.)talkonly\.net$ +(^|\.)tamiaode\.tk$ +(^|\.)tanc\.org$ +(^|\.)tangben\.com$ +(^|\.)tangren\.us$ +(^|\.)taoism\.net$ +(^|\.)taolun\.info$ +(^|\.)tapanwap\.com$ +(^|\.)tapatalk\.com$ +(^|\.)tarr\.uspto\.gov$ +(^|\.)tascn\.com\.au$ +(^|\.)taup\.net$ +(^|\.)taweet\.com$ +(^|\.)tbcollege\.org$ +(^|\.)tbi\.org\.hk$ +(^|\.)tbicn\.org$ +(^|\.)tbjyt\.org$ +(^|\.)tbpic\.info$ +(^|\.)tbrc\.org$ +(^|\.)tbs-rainbow\.org$ +(^|\.)tbsec\.org$ +(^|\.)tbskkinabalu\.page\.tl$ +(^|\.)tbsmalaysia\.org$ +(^|\.)tbsn\.org$ +(^|\.)tbsseattle\.org$ +(^|\.)tbssqh\.org$ +(^|\.)tbswd\.org$ +(^|\.)tbtemple\.org\.uk$ +(^|\.)tbthouston\.org$ +(^|\.)tccwonline\.org$ +(^|\.)tcewf\.org$ +(^|\.)tchrd\.org$ +(^|\.)tcnynj\.org$ +(^|\.)tcpspeed\.co$ +(^|\.)tcpspeed\.com$ +(^|\.)tcsofbc\.org$ +(^|\.)tcsovi\.org$ +(^|\.)teachparentstech\.org$ +(^|\.)teamamericany\.com$ +(^|\.)tech2\.in\.com$ +(^|\.)teck\.in$ +(^|\.)teeniefuck\.net$ +(^|\.)teensinasia\.com$ +(^|\.)telecomspace\.com$ +(^|\.)telegram\.dog$ +(^|\.)telegram\.me$ +(^|\.)telegram\.org$ +(^|\.)telegramdownload\.com$ +(^|\.)telegraph\.co\.uk$ +(^|\.)telesco\.pe$ +(^|\.)tellme\.pw$ +(^|\.)tenacy\.com$ +(^|\.)tensorflow\.org$ +(^|\.)tenzinpalmo\.com$ +(^|\.)tew\.org$ +(^|\.)th\.hao123\.com$ +(^|\.)thaicn\.com$ +(^|\.)thb\.gov\.tw$ +(^|\.)theatrum-belli\.com$ +(^|\.)thebcomplex\.com$ +(^|\.)theblemish\.com$ +(^|\.)thebobs\.com$ +(^|\.)thebodyshop-usa\.com$ +(^|\.)thecenter\.mit\.edu$ +(^|\.)thechinabeat\.org$ +(^|\.)thedalailamamovie\.com$ +(^|\.)thedw\.us$ +(^|\.)thefacebook\.com$ +(^|\.)thefrontier\.hk$ +(^|\.)thegioitinhoc\.vn$ +(^|\.)thegly\.com$ +(^|\.)thehots\.info$ +(^|\.)thehousenews\.com$ +(^|\.)thehun\.net$ +(^|\.)theinitium\.com$ +(^|\.)thenewslens\.com$ +(^|\.)thepiratebay\.org$ +(^|\.)theportalwiki\.com$ +(^|\.)thereallove\.kr$ +(^|\.)therock\.net\.nz$ +(^|\.)thespeeder\.com$ +(^|\.)thestandnews\.com$ +(^|\.)thetibetcenter\.org$ +(^|\.)thetibetconnection\.org$ +(^|\.)thetibetmuseum\.org$ +(^|\.)thetibetpost\.com$ +(^|\.)thetinhat\.com$ +(^|\.)thetrotskymovie\.com$ +(^|\.)thevivekspot\.com$ +(^|\.)thewgo\.org$ +(^|\.)thinkingtaiwan\.com$ +(^|\.)thinkwithgoogle\.com$ +(^|\.)thisav\.com$ +(^|\.)thlib\.org$ +(^|\.)thomasbernhard\.org$ +(^|\.)thongdreams\.com$ +(^|\.)threatchaos\.com$ +(^|\.)throughnightsfire\.com$ +(^|\.)thumbzilla\.com$ +(^|\.)thywords\.com$ +(^|\.)thywords\.com\.tw$ +(^|\.)tiananmenduizhi\.com$ +(^|\.)tiananmenmother\.org$ +(^|\.)tiananmenuniv\.com$ +(^|\.)tiananmenuniv\.net$ +(^|\.)tiandixing\.org$ +(^|\.)tianhuayuan\.com$ +(^|\.)tianlawoffice\.com$ +(^|\.)tianti\.io$ +(^|\.)tiantibooks\.org$ +(^|\.)tianyantong\.org\.cn$ +(^|\.)tianzhu\.org$ +(^|\.)tibet-envoy\.eu$ +(^|\.)tibet-foundation\.org$ +(^|\.)tibet-house-trust\.co\.uk$ +(^|\.)tibet-info\.net$ +(^|\.)tibet-initiative\.de$ +(^|\.)tibet-munich\.de$ +(^|\.)tibet\.a\.se$ +(^|\.)tibet\.at$ +(^|\.)tibet\.ca$ +(^|\.)tibet\.com$ +(^|\.)tibet\.fr$ +(^|\.)tibet\.net$ +(^|\.)tibet\.nu$ +(^|\.)tibet\.org$ +(^|\.)tibet\.org\.tw$ +(^|\.)tibet\.sk$ +(^|\.)tibet\.to$ +(^|\.)tibet3rdpole\.org$ +(^|\.)tibetaction\.net$ +(^|\.)tibetaid\.org$ +(^|\.)tibetalk\.com$ +(^|\.)tibetan-alliance\.org$ +(^|\.)tibetan\.fr$ +(^|\.)tibetanaidproject\.org$ +(^|\.)tibetanarts\.org$ +(^|\.)tibetanbuddhistinstitute\.org$ +(^|\.)tibetancommunity\.org$ +(^|\.)tibetancommunityuk\.net$ +(^|\.)tibetanculture\.org$ +(^|\.)tibetanfeministcollective\.org$ +(^|\.)tibetanjournal\.com$ +(^|\.)tibetanlanguage\.org$ +(^|\.)tibetanliberation\.org$ +(^|\.)tibetanpaintings\.com$ +(^|\.)tibetanphotoproject\.com$ +(^|\.)tibetanpoliticalreview\.org$ +(^|\.)tibetanreview\.net$ +(^|\.)tibetansports\.org$ +(^|\.)tibetanwomen\.org$ +(^|\.)tibetanyouth\.org$ +(^|\.)tibetanyouthcongress\.org$ +(^|\.)tibetcharity\.dk$ +(^|\.)tibetcharity\.in$ +(^|\.)tibetchild\.org$ +(^|\.)tibetcity\.com$ +(^|\.)tibetcollection\.com$ +(^|\.)tibetcorps\.org$ +(^|\.)tibetexpress\.net$ +(^|\.)tibetfocus\.com$ +(^|\.)tibetfund\.org$ +(^|\.)tibetgermany\.com$ +(^|\.)tibetgermany\.de$ +(^|\.)tibethaus\.com$ +(^|\.)tibetheritagefund\.org$ +(^|\.)tibethouse\.jp$ +(^|\.)tibethouse\.org$ +(^|\.)tibethouse\.us$ +(^|\.)tibetinfonet\.net$ +(^|\.)tibetjustice\.org$ +(^|\.)tibetkomite\.dk$ +(^|\.)tibetlibre\.free\.fr$ +(^|\.)tibetmuseum\.org$ +(^|\.)tibetnetwork\.org$ +(^|\.)tibetoffice\.ch$ +(^|\.)tibetoffice\.com\.au$ +(^|\.)tibetoffice\.eu$ +(^|\.)tibetoffice\.org$ +(^|\.)tibetonline\.com$ +(^|\.)tibetonline\.tv$ +(^|\.)tibetoralhistory\.org$ +(^|\.)tibetpolicy\.eu$ +(^|\.)tibetrelieffund\.co\.uk$ +(^|\.)tibetsites\.com$ +(^|\.)tibetsociety\.com$ +(^|\.)tibetsun\.com$ +(^|\.)tibetsupportgroup\.org$ +(^|\.)tibetswiss\.ch$ +(^|\.)tibettelegraph\.com$ +(^|\.)tibettimes\.net$ +(^|\.)tibetwrites\.org$ +(^|\.)ticket\.com\.tw$ +(^|\.)tigervpn\.com$ +(^|\.)tiltbrush\.com$ +(^|\.)timdir\.com$ +(^|\.)time\.com$ +(^|\.)times\.hinet\.net$ +(^|\.)timesofindia\.indiatimes\.com$ +(^|\.)timsah\.com$ +(^|\.)tintuc101\.com$ +(^|\.)tiny\.cc$ +(^|\.)tinychat\.com$ +(^|\.)tinypaste\.com$ +(^|\.)tipo\.gov\.tw$ +(^|\.)tistory\.com$ +(^|\.)tkcs-collins\.com$ +(^|\.)tl\.gd$ +(^|\.)tma\.co\.jp$ +(^|\.)tmagazine\.com$ +(^|\.)tmdfish\.com$ +(^|\.)tmi\.me$ +(^|\.)tmpp\.org$ +(^|\.)tnaflix\.com$ +(^|\.)tngrnow\.com$ +(^|\.)tngrnow\.net$ +(^|\.)tnp\.org$ +(^|\.)to-porno\.com$ +(^|\.)togetter\.com$ +(^|\.)toh\.info$ +(^|\.)tokyo-247\.com$ +(^|\.)tokyo-hot\.com$ +(^|\.)tokyo-porn-tube\.com$ +(^|\.)tokyocn\.com$ +(^|\.)tongil\.or\.kr$ +(^|\.)tono-oka\.jp$ +(^|\.)tonyyan\.net$ +(^|\.)toodoc\.com$ +(^|\.)toonel\.net$ +(^|\.)top\.tv$ +(^|\.)top81\.ws$ +(^|\.)topic\.youthwant\.com\.tw$ +(^|\.)topnews\.in$ +(^|\.)toppornsites\.com$ +(^|\.)topshareware\.com$ +(^|\.)topsy\.com$ +(^|\.)toptip\.ca$ +(^|\.)tor\.blingblingsquad\.net$ +(^|\.)tor\.cn\.uptodown\.com$ +(^|\.)tor\.updatestar\.com$ +(^|\.)tora\.to$ +(^|\.)torcn\.com$ +(^|\.)torguard\.net$ +(^|\.)torproject\.org$ +(^|\.)torrentprivacy\.com$ +(^|\.)torrentproject\.se$ +(^|\.)torrenty\.org$ +(^|\.)torrentz\.eu$ +(^|\.)torvpn\.com$ +(^|\.)tosh\.comedycentral\.com$ +(^|\.)totalvpn\.com$ +(^|\.)toutiaoabc\.com$ +(^|\.)towngain\.com$ +(^|\.)toypark\.in$ +(^|\.)toythieves\.com$ +(^|\.)toytractorshow\.com$ +(^|\.)tparents\.org$ +(^|\.)tpi\.org\.tw$ +(^|\.)tracfone\.com$ +(^|\.)traffichaus\.com$ +(^|\.)trans\.wenweipo\.com$ +(^|\.)transparency\.org$ +(^|\.)treemall\.com\.tw$ +(^|\.)trendsmap\.com$ +(^|\.)trialofccp\.org$ +(^|\.)trickip\.net$ +(^|\.)trickip\.org$ +(^|\.)trimondi\.de$ +(^|\.)trouw\.nl$ +(^|\.)trt\.net\.tr$ +(^|\.)trtc\.com\.tw$ +(^|\.)truebuddha-md\.org$ +(^|\.)trulyergonomic\.com$ +(^|\.)truth101\.co\.tv$ +(^|\.)truthontour\.org$ +(^|\.)truveo\.com$ +(^|\.)tryheart\.jp$ +(^|\.)tsctv\.net$ +(^|\.)tsdr\.uspto\.gov$ +(^|\.)tsemtulku\.com$ +(^|\.)tsquare\.tv$ +(^|\.)tsu\.org\.tw$ +(^|\.)tsunagarumon\.com$ +(^|\.)tt-rss\.org$ +(^|\.)tt1069\.com$ +(^|\.)tttan\.com$ +(^|\.)tu8964\.com$ +(^|\.)tubaholic\.com$ +(^|\.)tube\.com$ +(^|\.)tube8\.com$ +(^|\.)tube911\.com$ +(^|\.)tubecup\.com$ +(^|\.)tubegals\.com$ +(^|\.)tubeislam\.com$ +(^|\.)tubestack\.com$ +(^|\.)tubewolf\.com$ +(^|\.)tui\.orzdream\.com$ +(^|\.)tuibeitu\.net$ +(^|\.)tuidang\.net$ +(^|\.)tuidang\.org$ +(^|\.)tuidang\.se$ +(^|\.)tuitwit\.com$ +(^|\.)tumblr\.com$ +(^|\.)tumutanzi\.com$ +(^|\.)tumview\.com$ +(^|\.)tunein\.com$ +(^|\.)tunnelbear\.com$ +(^|\.)tunnelr\.com$ +(^|\.)tuo8\.blue$ +(^|\.)tuo8\.cc$ +(^|\.)tuo8\.club$ +(^|\.)tuo8\.fit$ +(^|\.)tuo8\.hk$ +(^|\.)tuo8\.in$ +(^|\.)tuo8\.ninja$ +(^|\.)tuo8\.org$ +(^|\.)tuo8\.pw$ +(^|\.)tuo8\.red$ +(^|\.)tuo8\.space$ +(^|\.)turansam\.org$ +(^|\.)turbobit\.net$ +(^|\.)turbohide\.com$ +(^|\.)turbotwitter\.com$ +(^|\.)turntable\.fm$ +(^|\.)tushycash\.com$ +(^|\.)tuvpn\.com$ +(^|\.)tuzaijidi\.com$ +(^|\.)tv\.com$ +(^|\.)tvants\.com$ +(^|\.)tvboxnow\.com$ +(^|\.)tvider\.com$ +(^|\.)tvmost\.com\.hk$ +(^|\.)tvplayvideos\.com$ +(^|\.)tvunetworks\.com$ +(^|\.)tw-blog\.com$ +(^|\.)tw-npo\.org$ +(^|\.)tw\.answers\.yahoo\.com$ +(^|\.)tw\.bid\.yahoo\.com$ +(^|\.)tw\.gigacircle\.com$ +(^|\.)tw\.hao123\.com$ +(^|\.)tw\.jiepang\.com$ +(^|\.)tw\.knowledge\.yahoo\.com$ +(^|\.)tw\.mall\.yahoo\.com$ +(^|\.)tw\.mobi\.yahoo\.com$ +(^|\.)tw\.money\.yahoo\.com$ +(^|\.)tw\.myblog\.yahoo\.com$ +(^|\.)tw\.news\.yahoo\.com$ +(^|\.)tw\.streetvoice\.com$ +(^|\.)tw\.tomonews\.net$ +(^|\.)tw\.voa\.mobi$ +(^|\.)tw\.yahoo\.com$ +(^|\.)tw01\.org$ +(^|\.)twaitter\.com$ +(^|\.)twapperkeeper\.com$ +(^|\.)twaud\.io$ +(^|\.)twavi\.com$ +(^|\.)twbbs\.net\.tw$ +(^|\.)twbbs\.org$ +(^|\.)twbbs\.tw$ +(^|\.)twblogger\.com$ +(^|\.)tweepguide\.com$ +(^|\.)tweeplike\.me$ +(^|\.)tweepmag\.com$ +(^|\.)tweepml\.org$ +(^|\.)tweetbackup\.com$ +(^|\.)tweetboard\.com$ +(^|\.)tweetboner\.biz$ +(^|\.)tweetcs\.com$ +(^|\.)tweetdeck\.com$ +(^|\.)tweetedtimes\.com$ +(^|\.)tweetmylast\.fm$ +(^|\.)tweetphoto\.com$ +(^|\.)tweetrans\.com$ +(^|\.)tweetree\.com$ +(^|\.)tweets\.seraph\.me$ +(^|\.)tweettunnel\.com$ +(^|\.)tweetwally\.com$ +(^|\.)tweetymail\.com$ +(^|\.)tweez\.net$ +(^|\.)twelve\.today$ +(^|\.)twerkingbutt\.com$ +(^|\.)twftp\.org$ +(^|\.)twgreatdaily\.com$ +(^|\.)twibase\.com$ +(^|\.)twibble\.de$ +(^|\.)twibbon\.com$ +(^|\.)twibs\.com$ +(^|\.)twicsy\.com$ +(^|\.)twiends\.com$ +(^|\.)twifan\.com$ +(^|\.)twiffo\.com$ +(^|\.)twiggit\.org$ +(^|\.)twilightsex\.com$ +(^|\.)twilog\.org$ +(^|\.)twimbow\.com$ +(^|\.)twimg\.com$ +(^|\.)twindexx\.com$ +(^|\.)twip\.me$ +(^|\.)twipple\.jp$ +(^|\.)twishort\.com$ +(^|\.)twistar\.cc$ +(^|\.)twister\.net\.co$ +(^|\.)twisterio\.com$ +(^|\.)twisternow\.com$ +(^|\.)twistory\.net$ +(^|\.)twit2d\.com$ +(^|\.)twitbrowser\.net$ +(^|\.)twitcause\.com$ +(^|\.)twitgether\.com$ +(^|\.)twitgoo\.com$ +(^|\.)twitiq\.com$ +(^|\.)twitlonger\.com$ +(^|\.)twitmania\.com$ +(^|\.)twitoaster\.com$ +(^|\.)twitonmsn\.com$ +(^|\.)twitpic\.com$ +(^|\.)twitstat\.com$ +(^|\.)twittbot\.net$ +(^|\.)twitter\.com$ +(^|\.)twitter\.jp$ +(^|\.)twitter4j\.org$ +(^|\.)twittercounter\.com$ +(^|\.)twitterfeed\.com$ +(^|\.)twittergadget\.com$ +(^|\.)twitterkr\.com$ +(^|\.)twittermail\.com$ +(^|\.)twitterrific\.com$ +(^|\.)twittertim\.es$ +(^|\.)twitthat\.com$ +(^|\.)twitturk\.com$ +(^|\.)twitturly\.com$ +(^|\.)twitvid\.com$ +(^|\.)twitzap\.com$ +(^|\.)twiyia\.com$ +(^|\.)twnorth\.org\.tw$ +(^|\.)twskype\.com$ +(^|\.)twstar\.net$ +(^|\.)twt\.tl$ +(^|\.)twtkr\.com$ +(^|\.)twtr2src\.ogaoga\.org$ +(^|\.)twtrland\.com$ +(^|\.)twttr\.com$ +(^|\.)twurl\.nl$ +(^|\.)twyac\.org$ +(^|\.)txxx\.com$ +(^|\.)tycool\.com$ +(^|\.)typepad\.com$ +(^|\.)u9un\.com$ +(^|\.)ub0\.cc$ +(^|\.)ubddns\.org$ +(^|\.)uberproxy\.net$ +(^|\.)uc-japan\.org$ +(^|\.)ucdc1998\.org$ +(^|\.)uderzo\.it$ +(^|\.)udn\.com$ +(^|\.)udn\.com\.tw$ +(^|\.)udnbkk\.com$ +(^|\.)uforadio\.com\.tw$ +(^|\.)ufreevpn\.com$ +(^|\.)ugo\.com$ +(^|\.)uhdwallpapers\.org$ +(^|\.)uhrp\.org$ +(^|\.)uighur\.narod\.ru$ +(^|\.)uighur\.nl$ +(^|\.)uighurbiz\.net$ +(^|\.)ukcdp\.co\.uk$ +(^|\.)ukliferadio\.co\.uk$ +(^|\.)ulike\.net$ +(^|\.)ulop\.net$ +(^|\.)ultrareach$ +(^|\.)ultrasurf$ +(^|\.)ultravpn\.fr$ +(^|\.)ultraxs\.com$ +(^|\.)umich\.edu$ +(^|\.)unblock-us\.com$ +(^|\.)unblock\.cn\.com$ +(^|\.)unblockdmm\.com$ +(^|\.)unblocker\.yt$ +(^|\.)unblocksit\.es$ +(^|\.)uncyclomedia\.org$ +(^|\.)uncyclopedia\.hk$ +(^|\.)uncyclopedia\.tw$ +(^|\.)underwoodammo\.com$ +(^|\.)unholyknight\.com$ +(^|\.)uni\.cc$ +(^|\.)unification\.net$ +(^|\.)unification\.org\.tw$ +(^|\.)unitedsocialpress\.com$ +(^|\.)unix100\.com$ +(^|\.)unknownspace\.org$ +(^|\.)unodedos\.com$ +(^|\.)unpo\.org$ +(^|\.)unseen\.is$ +(^|\.)untraceable\.us$ +(^|\.)uocn\.org$ +(^|\.)upcoming\.yahoo\.com$ +(^|\.)updates\.tdesktop\.com$ +(^|\.)upholdjustice\.org$ +(^|\.)upload4u\.info$ +(^|\.)uploaded\.net$ +(^|\.)uploaded\.to$ +(^|\.)uploadstation\.com$ +(^|\.)upmedia\.mg$ +(^|\.)upornia\.com$ +(^|\.)uproxy\.org$ +(^|\.)upwill\.org$ +(^|\.)ur7s\.com$ +(^|\.)urbansurvival\.com$ +(^|\.)urchin\.com$ +(^|\.)urlborg\.com$ +(^|\.)urlparser\.com$ +(^|\.)us\.to$ +(^|\.)usacn\.com$ +(^|\.)usaip\.eu$ +(^|\.)userapi\.nytlog\.com$ +(^|\.)users\.skynet\.be$ +(^|\.)usfk\.mil$ +(^|\.)ushuarencity\.echainhost\.com$ +(^|\.)usinfo\.state\.gov$ +(^|\.)usma\.edu$ +(^|\.)usmc\.mil$ +(^|\.)usmgtcg\.ning\.com$ +(^|\.)usno\.navy\.mil$ +(^|\.)usocctn\.com$ +(^|\.)ustream\.tv$ +(^|\.)usunitednews\.com$ +(^|\.)usus\.cc$ +(^|\.)utopianpal\.com$ +(^|\.)uu-gg\.com$ +(^|\.)uvwxyz\.xyz$ +(^|\.)uwants\.com$ +(^|\.)uwants\.net$ +(^|\.)uyghur-j\.org$ +(^|\.)uyghur\.co\.uk$ +(^|\.)uyghuramerican\.org$ +(^|\.)uyghurcanadiansociety\.org$ +(^|\.)uyghurcongress\.org$ +(^|\.)uyghurensemble\.co\.uk$ +(^|\.)uyghurpen\.org$ +(^|\.)uyghurpress\.com$ +(^|\.)uyghurstudies\.org$ +(^|\.)uygur\.fc2web\.com$ +(^|\.)uygur\.org$ +(^|\.)uymaarip\.com$ +(^|\.)v2ex\.com$ +(^|\.)v2ray\.com$ +(^|\.)van001\.com$ +(^|\.)van698\.com$ +(^|\.)vanemu\.cn$ +(^|\.)vanilla-jp\.com$ +(^|\.)vanpeople\.com$ +(^|\.)vansky\.com$ +(^|\.)vatn\.org$ +(^|\.)vcf-online\.org$ +(^|\.)vcfbuilder\.org$ +(^|\.)vds\.rightster\.com$ +(^|\.)vegas\.williamhill\.com$ +(^|\.)vegasred\.com$ +(^|\.)velkaepocha\.sk$ +(^|\.)venbbs\.com$ +(^|\.)venchina\.com$ +(^|\.)venetianmacao\.com$ +(^|\.)ventureswell\.com$ +(^|\.)veoh\.com$ +(^|\.)vermonttibet\.org$ +(^|\.)versavpn\.com$ +(^|\.)verybs\.com$ +(^|\.)vevo\.com$ +(^|\.)vft\.com\.tw$ +(^|\.)viber\.com$ +(^|\.)vica\.info$ +(^|\.)victimsofcommunism\.org$ +(^|\.)vid\.me$ +(^|\.)vidble\.com$ +(^|\.)video\.aol\.ca$ +(^|\.)video\.aol\.co\.uk$ +(^|\.)video\.aol\.com$ +(^|\.)video\.ap\.org$ +(^|\.)video\.fdbox\.com$ +(^|\.)video\.foxbusiness\.com$ +(^|\.)video\.pbs\.org$ +(^|\.)video\.yahoo\.com$ +(^|\.)videobam\.com$ +(^|\.)videodetective\.com$ +(^|\.)videomega\.tv$ +(^|\.)videomo\.com$ +(^|\.)videopediaworld\.com$ +(^|\.)videopress\.com$ +(^|\.)vidinfo\.org$ +(^|\.)vietdaikynguyen\.com$ +(^|\.)vijayatemple\.org$ +(^|\.)vimeo\.com$ +(^|\.)vimperator\.org$ +(^|\.)vincnd\.com$ +(^|\.)vine\.co$ +(^|\.)vinniev\.com$ +(^|\.)vip-enterprise\.com$ +(^|\.)visibletweets\.com$ +(^|\.)vital247\.org$ +(^|\.)viu\.com$ +(^|\.)viu\.tv$ +(^|\.)vivahentai4u\.net$ +(^|\.)vivatube\.com$ +(^|\.)vivthomas\.com$ +(^|\.)vizvaz\.com$ +(^|\.)vjmedia\.com\.hk$ +(^|\.)vllcs\.org$ +(^|\.)vlog\.xuite\.net$ +(^|\.)vmixcore\.com$ +(^|\.)vn\.hao123\.com$ +(^|\.)vnet\.link$ +(^|\.)voa-11\.akacast\.akamaistream\.net$ +(^|\.)voacantonese\.com$ +(^|\.)voachinese\.com$ +(^|\.)voachineseblog\.com$ +(^|\.)voagd\.com$ +(^|\.)voanews\.com$ +(^|\.)voatibetan\.com$ +(^|\.)voatibetanenglish\.com$ +(^|\.)vocativ\.com$ +(^|\.)vocn\.tv$ +(^|\.)vod\.wwe\.com$ +(^|\.)vot\.org$ +(^|\.)vovo2000\.com$ +(^|\.)voxer\.com$ +(^|\.)voy\.com$ +(^|\.)vpn\.ac$ +(^|\.)vpn\.cjb\.net$ +(^|\.)vpn\.cmu\.edu$ +(^|\.)vpn\.sv\.cmu\.edu$ +(^|\.)vpn4all\.com$ +(^|\.)vpnaccount\.org$ +(^|\.)vpnaccounts\.com$ +(^|\.)vpnbook\.com$ +(^|\.)vpncomparison\.org$ +(^|\.)vpncoupons\.com$ +(^|\.)vpncup\.com$ +(^|\.)vpndada\.com$ +(^|\.)vpnfan\.com$ +(^|\.)vpnfire\.com$ +(^|\.)vpnforgame\.net$ +(^|\.)vpngate\.jp$ +(^|\.)vpngate\.net$ +(^|\.)vpngratis\.net$ +(^|\.)vpnhq\.com$ +(^|\.)vpninja\.net$ +(^|\.)vpnintouch\.com$ +(^|\.)vpnintouch\.net$ +(^|\.)vpnjack\.com$ +(^|\.)vpnmaster\.com$ +(^|\.)vpnmentor\.com$ +(^|\.)vpnpick\.com$ +(^|\.)vpnpop\.com$ +(^|\.)vpnpronet\.com$ +(^|\.)vpnreactor\.com$ +(^|\.)vpnreviewz\.com$ +(^|\.)vpnsecure\.me$ +(^|\.)vpnshazam\.com$ +(^|\.)vpnshieldapp\.com$ +(^|\.)vpnsp\.com$ +(^|\.)vpntraffic\.com$ +(^|\.)vpntunnel\.com$ +(^|\.)vpnuk\.info$ +(^|\.)vpnunlimitedapp\.com$ +(^|\.)vpnvip\.com$ +(^|\.)vpnworldwide\.com$ +(^|\.)vporn\.com$ +(^|\.)vpser\.net$ +(^|\.)vraiesagesse\.net$ +(^|\.)vrmtr\.com$ +(^|\.)vtunnel\.com$ +(^|\.)vuku\.cc$ +(^|\.)w\.idaiwan\.com$ +(^|\.)w3schools\.com$ +(^|\.)waffle1999\.com$ +(^|\.)wahas\.com$ +(^|\.)waigaobu\.com$ +(^|\.)waikeung\.org$ +(^|\.)wailaike\.net$ +(^|\.)waiwaier\.com$ +(^|\.)wallmama\.com$ +(^|\.)wallornot\.org$ +(^|\.)wallpapercasa\.com$ +(^|\.)wallproxy\.com$ +(^|\.)waltermartin\.com$ +(^|\.)waltermartin\.org$ +(^|\.)wanderinghorse\.net$ +(^|\.)wangafu\.net$ +(^|\.)wangjinbo\.org$ +(^|\.)wanglixiong\.com$ +(^|\.)wango\.org$ +(^|\.)wangruoshui\.net$ +(^|\.)want-daily\.com$ +(^|\.)wanz-factory\.com$ +(^|\.)wapedia\.mobi$ +(^|\.)warbler\.iconfactory\.net$ +(^|\.)waselpro\.com$ +(^|\.)washeng\.net$ +(^|\.)watch8x\.com$ +(^|\.)watchinese\.com$ +(^|\.)watchmygf\.net$ +(^|\.)wattpad\.com$ +(^|\.)wav\.tv$ +(^|\.)waveprotocol\.org$ +(^|\.)waymo\.com$ +(^|\.)wda\.gov\.tw$ +(^|\.)wdf5\.com$ +(^|\.)wearehairy\.com$ +(^|\.)wearn\.com$ +(^|\.)web2project\.net$ +(^|\.)webbang\.net$ +(^|\.)webevader\.org$ +(^|\.)webfreer\.com$ +(^|\.)webjb\.org$ +(^|\.)weblagu\.com$ +(^|\.)webmproject\.org$ +(^|\.)webrtc\.org$ +(^|\.)webrush\.net$ +(^|\.)webs-tv\.net$ +(^|\.)website\.informer\.com$ +(^|\.)websitepulse\.com$ +(^|\.)webwarper\.net$ +(^|\.)webworkerdaily\.com$ +(^|\.)weekmag\.info$ +(^|\.)wefightcensorship\.org$ +(^|\.)wefong\.com$ +(^|\.)weiboleak\.com$ +(^|\.)weiboscope\.jmsc\.hku\.hk$ +(^|\.)weihuo\.org$ +(^|\.)weijingsheng\.org$ +(^|\.)weiming\.info$ +(^|\.)weiquanwang\.org$ +(^|\.)weisuo\.ws$ +(^|\.)welovecock\.com$ +(^|\.)wemigrate\.org$ +(^|\.)wengewang\.com$ +(^|\.)wengewang\.org$ +(^|\.)wenhui\.ch$ +(^|\.)wenxuecity\.com$ +(^|\.)wenyunchao\.com$ +(^|\.)westca\.com$ +(^|\.)westernshugdensociety\.org$ +(^|\.)westernwolves\.com$ +(^|\.)westkit\.net$ +(^|\.)westpoint\.edu$ +(^|\.)wetplace\.com$ +(^|\.)wetpussygames\.com$ +(^|\.)wexiaobo\.org$ +(^|\.)wezhiyong\.org$ +(^|\.)wezone\.net$ +(^|\.)wforum\.com$ +(^|\.)wha\.la$ +(^|\.)whatblocked\.com$ +(^|\.)whatbrowser\.org$ +(^|\.)whatsapp\.net$ +(^|\.)wheatseeds\.org$ +(^|\.)wheelockslatin\.com$ +(^|\.)whereiswerner\.com$ +(^|\.)wheretowatch\.com$ +(^|\.)whippedass\.com$ +(^|\.)whitebear\.freebearblog\.org$ +(^|\.)whodns\.xyz$ +(^|\.)whoer\.net$ +(^|\.)whotalking\.com$ +(^|\.)whylover\.com$ +(^|\.)whyx\.org$ +(^|\.)widevine\.com$ +(^|\.)wikaba\.com$ +(^|\.)wiki\.cnitter\.com$ +(^|\.)wiki\.esu\.im$ +(^|\.)wiki\.gamerp\.jp$ +(^|\.)wiki\.jqueryui\.com$ +(^|\.)wiki\.keso\.cn$ +(^|\.)wiki\.moegirl\.org$ +(^|\.)wiki\.oauth\.net$ +(^|\.)wiki\.phonegap\.com$ +(^|\.)wikileaks-forum\.com$ +(^|\.)wikileaks\.ch$ +(^|\.)wikileaks\.com$ +(^|\.)wikileaks\.de$ +(^|\.)wikileaks\.eu$ +(^|\.)wikileaks\.lu$ +(^|\.)wikileaks\.org$ +(^|\.)wikileaks\.pl$ +(^|\.)wikilivres\.info$ +(^|\.)wikimapia\.org$ +(^|\.)wikiwiki\.jp$ +(^|\.)wildammo\.com$ +(^|\.)willw\.net$ +(^|\.)windowsphoneme\.com$ +(^|\.)windscribe\.com$ +(^|\.)wingamestore\.com$ +(^|\.)wingy\.site$ +(^|\.)winning11\.com$ +(^|\.)winwhispers\.info$ +(^|\.)wire\.com$ +(^|\.)wiredbytes\.com$ +(^|\.)wiredpen\.com$ +(^|\.)wisdompubs\.org$ +(^|\.)wisevid\.com$ +(^|\.)withgoogle\.com$ +(^|\.)withyoutube\.com$ +(^|\.)witnessleeteaching\.com$ +(^|\.)witopia\.net$ +(^|\.)wizcrafts\.net$ +(^|\.)wjbk\.org$ +(^|\.)wlcnew\.jigsy\.com$ +(^|\.)wlx\.sowiki\.net$ +(^|\.)wn\.com$ +(^|\.)wnacg\.com$ +(^|\.)wnacg\.org$ +(^|\.)wo\.tc$ +(^|\.)wo3ttt\.wordpress\.com$ +(^|\.)woeser\.com$ +(^|\.)woesermiddle-way\.net$ +(^|\.)wokar\.org$ +(^|\.)wolfax\.com$ +(^|\.)woolyss\.com$ +(^|\.)woopie\.jp$ +(^|\.)woopie\.tv$ +(^|\.)wordpress\.com$ +(^|\.)workatruna\.com$ +(^|\.)workerdemo\.org\.hk$ +(^|\.)workersthebig\.net$ +(^|\.)worldcat\.org$ +(^|\.)worldjournal\.com$ +(^|\.)worldvpn\.net$ +(^|\.)wow-life\.net$ +(^|\.)wow\.com$ +(^|\.)wowgirls\.com$ +(^|\.)wowlegacy\.ml$ +(^|\.)wowporn\.com$ +(^|\.)wowrk\.com$ +(^|\.)woxinghuiguo\.com$ +(^|\.)woyaolian\.org$ +(^|\.)wozy\.in$ +(^|\.)wp\.com$ +(^|\.)wpoforum\.com$ +(^|\.)wqyd\.org$ +(^|\.)wrchina\.org$ +(^|\.)wretch\.cc$ +(^|\.)writer\.zoho\.com$ +(^|\.)wsgzao\.github\.io$ +(^|\.)wsj\.com$ +(^|\.)wsj\.net$ +(^|\.)wsjhk\.com$ +(^|\.)wtbn\.org$ +(^|\.)wtfpeople\.com$ +(^|\.)wuerkaixi\.com$ +(^|\.)wufafangwen\.com$ +(^|\.)wufi\.org\.tw$ +(^|\.)wuguoguang\.com$ +(^|\.)wujie\.net$ +(^|\.)wujieliulan\.com$ +(^|\.)wukangrui\.net$ +(^|\.)wuu\.wikipedia\.org$ +(^|\.)wuw\.red$ +(^|\.)wuyanblog\.com$ +(^|\.)wwitv\.com$ +(^|\.)www\.ajsands\.com$ +(^|\.)www\.americorps\.gov$ +(^|\.)www\.antd\.org$ +(^|\.)www\.aolnews\.com$ +(^|\.)www\.businessinsider\.com\.au$ +(^|\.)www\.citizenlab\.org$ +(^|\.)www\.cmoinc\.org$ +(^|\.)www\.cool18\.com$ +(^|\.)www\.dmm\.com$ +(^|\.)www\.dwheeler\.com$ +(^|\.)www\.eastturkistan\.net$ +(^|\.)www\.ftchinese\.com$ +(^|\.)www\.gmiddle\.com$ +(^|\.)www\.gmiddle\.net$ +(^|\.)www\.hustlercash\.com$ +(^|\.)www\.idlcoyote\.com$ +(^|\.)www\.imdb\.com$ +(^|\.)www\.kindleren\.com$ +(^|\.)www\.klip\.me$ +(^|\.)www\.lamenhu\.com$ +(^|\.)www\.lib\.virginia\.edu$ +(^|\.)www\.linksalpha\.com$ +(^|\.)www\.m-sport\.co\.uk$ +(^|\.)www\.metro\.taipei$ +(^|\.)www\.monlamit\.org$ +(^|\.)www\.moztw\.org$ +(^|\.)www\.nbc\.com$ +(^|\.)www\.orchidbbs\.com$ +(^|\.)www\.owind\.com$ +(^|\.)www\.oxid\.it$ +(^|\.)www\.powerpointninja\.com$ +(^|\.)www\.s4miniarchive\.com$ +(^|\.)www\.sciencemag\.org$ +(^|\.)www\.shadowsocks\.com$ +(^|\.)www\.shwchurch\.org$ +(^|\.)www\.skype\.com$ +(^|\.)www\.tablesgenerator\.com$ +(^|\.)www\.taiwanonline\.cc$ +(^|\.)www\.taup\.org\.tw$ +(^|\.)www\.thechinastory\.org$ +(^|\.)www\.wan-press\.org$ +(^|\.)www\.wangruowang\.org$ +(^|\.)www\.websnapr\.com$ +(^|\.)www\.zensur\.freerk\.com$ +(^|\.)www1\.american\.edu$ +(^|\.)www1\.biz$ +(^|\.)www2\.ohchr\.org$ +(^|\.)www2\.rocketbbs\.com$ +(^|\.)wwwhost\.biz$ +(^|\.)wzyboy\.im$ +(^|\.)x-art\.com$ +(^|\.)x-berry\.com$ +(^|\.)x-wall\.org$ +(^|\.)x\.company$ +(^|\.)x1949x\.com$ +(^|\.)x24hr\.com$ +(^|\.)x365x\.com$ +(^|\.)xa\.yimg\.com$ +(^|\.)xanga\.com$ +(^|\.)xbabe\.com$ +(^|\.)xbookcn\.com$ +(^|\.)xcafe\.in$ +(^|\.)xcity\.jp$ +(^|\.)xcritic\.com$ +(^|\.)xerotica\.com$ +(^|\.)xfinity\.com$ +(^|\.)xfm\.pp\.ru$ +(^|\.)xgmyd\.com$ +(^|\.)xhamster\.com$ +(^|\.)xianchawang\.net$ +(^|\.)xianjian\.tw$ +(^|\.)xianqiao\.net$ +(^|\.)xiaobaiwu\.com$ +(^|\.)xiaochuncnjp\.com$ +(^|\.)xiaod\.in$ +(^|\.)xiaohexie\.com$ +(^|\.)xiaolan\.me$ +(^|\.)xiaoma\.org$ +(^|\.)xiezhua\.com$ +(^|\.)xihua\.es$ +(^|\.)xing\.com$ +(^|\.)xinhuanet\.org$ +(^|\.)xinmiao\.com\.hk$ +(^|\.)xinqimeng\.over-blog\.com$ +(^|\.)xinsheng\.net$ +(^|\.)xinshijue\.com$ +(^|\.)xinyubbs\.net$ +(^|\.)xiongpian\.com$ +(^|\.)xiuren\.org$ +(^|\.)xizang-zhiye\.org$ +(^|\.)xjp\.cc$ +(^|\.)xjtravelguide\.com$ +(^|\.)xkiwi\.tk$ +(^|\.)xlfmtalk\.com$ +(^|\.)xlfmwz\.info$ +(^|\.)xm\.com$ +(^|\.)xml-training-guide\.com$ +(^|\.)xmovies\.com$ +(^|\.)xn--4gq171p\.com$ +(^|\.)xn--czq75pvv1aj5c\.org$ +(^|\.)xn--i2ru8q2qg\.com$ +(^|\.)xn--ngstr-lra8j\.com$ +(^|\.)xn--p8j9a0d9c9a\.xn--q9jyb4c$ +(^|\.)xnxx\.com$ +(^|\.)xpdo\.net$ +(^|\.)xpud\.org$ +(^|\.)xrentdvd\.com$ +(^|\.)xskywalker\.com$ +(^|\.)xskywalker\.net$ +(^|\.)xtube\.com$ +(^|\.)xuchao\.net$ +(^|\.)xuchao\.org$ +(^|\.)xuehua\.us$ +(^|\.)xuzhiyong\.net$ +(^|\.)xvideo\.cc$ +(^|\.)xvideos\.com$ +(^|\.)xvideos\.es$ +(^|\.)xxbbx\.com$ +(^|\.)xxlmovies\.com$ +(^|\.)xxuz\.com$ +(^|\.)xxx\.com$ +(^|\.)xxx\.xxx$ +(^|\.)xxxfuckmom\.com$ +(^|\.)xxxx\.com\.au$ +(^|\.)xxxy\.biz$ +(^|\.)xxxy\.info$ +(^|\.)xxxymovies\.com$ +(^|\.)xys\.dxiong\.com$ +(^|\.)xys\.org$ +(^|\.)xysblogs\.org$ +(^|\.)xyy69\.com$ +(^|\.)xyy69\.info$ +(^|\.)yahoo\.com\.hk$ +(^|\.)yakbutterblues\.com$ +(^|\.)yam\.com$ +(^|\.)yam\.org\.tw$ +(^|\.)yanghengjun\.com$ +(^|\.)yangjianli\.com$ +(^|\.)yasni\.co\.uk$ +(^|\.)yayabay\.com$ +(^|\.)ydy\.com$ +(^|\.)yeahteentube\.com$ +(^|\.)yecl\.net$ +(^|\.)yeelou\.com$ +(^|\.)yeeyi\.com$ +(^|\.)yegle\.net$ +(^|\.)yes-news\.com$ +(^|\.)yes\.xxx$ +(^|\.)yes123\.com\.tw$ +(^|\.)yesasia\.com$ +(^|\.)yesasia\.com\.hk$ +(^|\.)yespornplease\.com$ +(^|\.)yeyeclub\.com$ +(^|\.)ygto\.com$ +(^|\.)yhcw\.net$ +(^|\.)yibada\.com$ +(^|\.)yibaochina\.com$ +(^|\.)yidio\.com$ +(^|\.)yilubbs\.com$ +(^|\.)yingsuoss\.com$ +(^|\.)yinlei\.org$ +(^|\.)yipub\.com$ +(^|\.)yizhihongxing\.com$ +(^|\.)yobt\.com$ +(^|\.)yobt\.tv$ +(^|\.)yogichen\.org$ +(^|\.)yong\.hu$ +(^|\.)yorkbbs\.ca$ +(^|\.)youdontcare\.com$ +(^|\.)youjizz\.com$ +(^|\.)youmaker\.com$ +(^|\.)youngpornvideos\.com$ +(^|\.)youngspiration\.hk$ +(^|\.)youpai\.org$ +(^|\.)youporn\.com$ +(^|\.)youporngay\.com$ +(^|\.)your-freedom\.net$ +(^|\.)yourepeat\.com$ +(^|\.)yourlisten\.com$ +(^|\.)yourlust\.com$ +(^|\.)yourprivatevpn\.com$ +(^|\.)yourtrap\.com$ +(^|\.)yousendit\.com$ +(^|\.)youshun12\.com$ +(^|\.)youthnetradio\.org$ +(^|\.)youtu\.be$ +(^|\.)youtube-nocookie\.com$ +(^|\.)youtube\.com$ +(^|\.)youtubecn\.com$ +(^|\.)youtubeeducation\.com$ +(^|\.)youtubegaming\.com$ +(^|\.)youversion\.com$ +(^|\.)youxu\.info$ +(^|\.)yt\.be$ +(^|\.)ytht\.net$ +(^|\.)ytimg\.com$ +(^|\.)ytn\.co\.kr$ +(^|\.)yuanming\.net$ +(^|\.)yuanzhengtang\.org$ +(^|\.)yulghun\.com$ +(^|\.)yunchao\.net$ +(^|\.)yuntipub\.com$ +(^|\.)yuvutu\.com$ +(^|\.)yvesgeleyn\.com$ +(^|\.)ywpw\.com$ +(^|\.)yx51\.net$ +(^|\.)yyii\.org$ +(^|\.)yzzk\.com$ +(^|\.)zacebook\.com$ +(^|\.)zalmos\.com$ +(^|\.)zannel\.com$ +(^|\.)zaobao\.com\.sg$ +(^|\.)zaozon\.com$ +(^|\.)zapto\.org$ +(^|\.)zattoo\.com$ +(^|\.)zdnet\.com\.tw$ +(^|\.)zello\.com$ +(^|\.)zengjinyan\.org$ +(^|\.)zenmate\.com$ +(^|\.)zenmate\.com\.ru$ +(^|\.)zeronet\.io$ +(^|\.)zeutch\.com$ +(^|\.)zfreet\.com$ +(^|\.)zgsddh\.com$ +(^|\.)zgzcjj\.net$ +(^|\.)zh-yue\.wikipedia\.org$ +(^|\.)zh\.ecdm\.wikia\.com$ +(^|\.)zh\.m\.wikipedia\.org$ +(^|\.)zh\.pokerstrategy\.com$ +(^|\.)zh\.uncyclopedia\.wikia\.com$ +(^|\.)zh\.wikinews\.org$ +(^|\.)zh\.wikipedia\.org$ +(^|\.)zh\.wikisource\.org$ +(^|\.)zhanbin\.net$ +(^|\.)zhangboli\.net$ +(^|\.)zhangtianliang\.com$ +(^|\.)zhanlve\.org$ +(^|\.)zhao\.1984\.city$ +(^|\.)zhao\.jinhai\.de$ +(^|\.)zhenghui\.org$ +(^|\.)zhengjian\.org$ +(^|\.)zhengwunet\.org$ +(^|\.)zhenlibu\.info$ +(^|\.)zhenlibu1984\.com$ +(^|\.)zhenxiang\.biz$ +(^|\.)zhinengluyou\.com$ +(^|\.)zhongguo\.ca$ +(^|\.)zhongguorenquan\.org$ +(^|\.)zhongguotese\.net$ +(^|\.)zhongmeng\.org$ +(^|\.)zhoushuguang\.com$ +(^|\.)zhreader\.com$ +(^|\.)zhuangbi\.me$ +(^|\.)zhuanxing\.cn$ +(^|\.)zhuatieba\.com$ +(^|\.)zhuichaguoji\.org$ +(^|\.)ziddu\.com$ +(^|\.)zillionk\.com$ +(^|\.)zim\.vn$ +(^|\.)zinio\.com$ +(^|\.)ziporn\.com$ +(^|\.)zippyshare\.com$ +(^|\.)zkaip\.com$ +(^|\.)zmw\.cn$ +(^|\.)zodgame\.us$ +(^|\.)zomobo\.net$ +(^|\.)zonaeuropa\.com$ +(^|\.)zonghexinwen\.com$ +(^|\.)zonghexinwen\.net$ +(^|\.)zoogvpn\.com$ +(^|\.)zootool\.com$ +(^|\.)zoozle\.net$ +(^|\.)zorrovpn\.com$ +(^|\.)zozotown\.com$ +(^|\.)zpn\.im$ +(^|\.)zspeeder\.me$ +(^|\.)zsrhao\.com$ +(^|\.)zuo\.la$ +(^|\.)zuobiao\.me$ +(^|\.)zuola\.com$ +(^|\.)zvereff\.com$ +(^|\.)zynaima\.com$ +(^|\.)zynamics\.com$ +(^|\.)zyns\.com$ +(^|\.)zyzc9\.com$ +(^|\.)zzcartoon\.com$ +(^|\.)zzux\.com$ diff --git a/client/android/assets/acl/bypass-lan.acl b/client/android/assets/acl/bypass-lan.acl index 89ca7a72..df9a21da 100644 --- a/client/android/assets/acl/bypass-lan.acl +++ b/client/android/assets/acl/bypass-lan.acl @@ -7,13 +7,10 @@ 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 -192.0.0.0/24 +192.0.0.0/29 192.0.2.0/24 -192.31.196.0/24 -192.52.193.0/24 192.88.99.0/24 192.168.0.0/16 -192.175.48.0/24 198.18.0.0/15 198.51.100.0/24 203.0.113.0/24 diff --git a/client/android/assets/acl/china-list.acl b/client/android/assets/acl/china-list.acl new file mode 100644 index 00000000..4d76a47c --- /dev/null +++ b/client/android/assets/acl/china-list.acl @@ -0,0 +1,5245 @@ +[bypass_all] + +[proxy_list] +1.0.1.0/24 +1.0.2.0/23 +1.0.8.0/21 +1.0.32.0/19 +1.1.0.0/24 +1.1.2.0/23 +1.1.4.0/22 +1.1.8.0/21 +1.1.16.0/20 +1.1.32.0/19 +1.2.0.0/23 +1.2.2.0/24 +1.2.4.0/22 +1.2.8.0/21 +1.2.16.0/20 +1.2.32.0/19 +1.2.64.0/18 +1.3.0.0/16 +1.4.1.0/24 +1.4.2.0/23 +1.4.4.0/22 +1.4.8.0/21 +1.4.16.0/20 +1.4.32.0/19 +1.4.64.0/18 +1.8.0.0/16 +1.10.0.0/21 +1.10.8.0/23 +1.10.11.0/24 +1.10.12.0/22 +1.10.16.0/20 +1.10.32.0/19 +1.10.64.0/18 +1.12.0.0/14 +1.24.0.0/13 +1.45.0.0/16 +1.48.0.0/14 +1.56.0.0/13 +1.68.0.0/14 +1.80.0.0/12 +1.116.0.0/14 +1.180.0.0/14 +1.184.0.0/15 +1.188.0.0/14 +1.192.0.0/13 +1.202.0.0/15 +1.204.0.0/14 +8.128.0.0/10 +8.208.32.0/19 +8.208.64.0/18 +8.208.128.0/17 +8.209.0.0/16 +8.210.0.0/15 +8.212.0.0/14 +8.216.0.0/13 +14.0.0.0/21 +14.0.12.0/22 +14.1.0.0/22 +14.1.24.0/22 +14.1.96.0/22 +14.1.108.0/22 +14.16.0.0/12 +14.102.128.0/22 +14.102.156.0/22 +14.102.180.0/22 +14.103.0.0/16 +14.104.0.0/13 +14.112.0.0/12 +14.130.0.0/15 +14.134.0.0/15 +14.144.0.0/12 +14.192.60.0/22 +14.192.76.0/22 +14.196.0.0/15 +14.204.0.0/15 +14.208.0.0/12 +20.134.160.0/20 +20.139.160.0/20 +27.0.128.0/21 +27.0.160.0/21 +27.0.188.0/22 +27.0.204.0/22 +27.0.208.0/21 +27.8.0.0/13 +27.16.0.0/12 +27.34.232.0/21 +27.36.0.0/14 +27.40.0.0/13 +27.50.40.0/21 +27.50.128.0/17 +27.54.72.0/21 +27.54.152.0/21 +27.54.192.0/18 +27.98.208.0/20 +27.98.224.0/19 +27.99.128.0/17 +27.103.0.0/16 +27.106.128.0/18 +27.106.204.0/22 +27.109.32.0/19 +27.109.124.0/22 +27.112.0.0/18 +27.112.80.0/20 +27.112.112.0/21 +27.113.128.0/18 +27.115.0.0/17 +27.116.44.0/22 +27.121.72.0/21 +27.121.120.0/21 +27.123.232.0/22 +27.128.0.0/15 +27.131.220.0/22 +27.144.0.0/16 +27.148.0.0/14 +27.152.0.0/13 +27.184.0.0/13 +27.192.0.0/11 +27.224.0.0/14 +36.0.0.0/22 +36.0.8.0/21 +36.0.16.0/20 +36.0.32.0/19 +36.0.64.0/18 +36.0.128.0/17 +36.1.0.0/16 +36.4.0.0/14 +36.16.0.0/12 +36.32.0.0/14 +36.36.0.0/16 +36.37.0.0/19 +36.37.36.0/23 +36.37.39.0/24 +36.37.40.0/21 +36.37.48.0/20 +36.40.0.0/13 +36.48.0.0/15 +36.51.0.0/16 +36.56.0.0/13 +36.96.0.0/11 +36.128.0.0/10 +36.192.0.0/11 +36.248.0.0/14 +36.254.0.0/16 +36.255.116.0/22 +36.255.128.0/22 +36.255.164.0/22 +36.255.172.0/22 +36.255.176.0/22 +36.255.220.0/22 +39.0.0.0/24 +39.0.2.0/23 +39.0.4.0/22 +39.0.8.0/21 +39.0.16.0/20 +39.0.32.0/19 +39.0.64.0/18 +39.0.128.0/17 +39.64.0.0/11 +39.96.0.0/13 +39.104.0.0/14 +39.108.0.0/16 +39.109.120.0/23 +39.128.0.0/10 +40.0.176.0/20 +40.0.247.0/24 +40.0.248.0/22 +40.0.252.0/23 +40.0.255.0/24 +40.72.0.0/15 +40.125.128.0/17 +40.126.64.0/18 +40.198.10.0/24 +40.198.16.0/21 +40.198.24.0/23 +40.251.225.0/24 +40.251.227.0/24 +42.0.0.0/22 +42.0.8.0/21 +42.0.16.0/21 +42.0.24.0/22 +42.0.32.0/19 +42.0.128.0/17 +42.1.0.0/19 +42.1.32.0/20 +42.1.48.0/21 +42.1.56.0/22 +42.1.128.0/17 +42.4.0.0/14 +42.48.0.0/13 +42.56.0.0/14 +42.62.0.0/17 +42.62.128.0/19 +42.62.160.0/20 +42.62.180.0/22 +42.62.184.0/21 +42.63.0.0/16 +42.80.0.0/15 +42.83.64.0/20 +42.83.80.0/22 +42.83.88.0/21 +42.83.96.0/19 +42.83.128.0/17 +42.84.0.0/14 +42.88.0.0/13 +42.96.64.0/19 +42.96.96.0/21 +42.96.108.0/22 +42.96.112.0/20 +42.96.128.0/17 +42.97.0.0/16 +42.99.0.0/18 +42.99.64.0/19 +42.99.96.0/20 +42.99.112.0/22 +42.99.120.0/21 +42.100.0.0/14 +42.120.0.0/15 +42.122.0.0/16 +42.123.0.0/19 +42.123.36.0/22 +42.123.40.0/21 +42.123.48.0/20 +42.123.64.0/18 +42.123.128.0/17 +42.128.0.0/12 +42.156.0.0/19 +42.156.36.0/22 +42.156.40.0/21 +42.156.48.0/20 +42.156.64.0/18 +42.156.128.0/17 +42.157.0.0/16 +42.158.0.0/15 +42.160.0.0/12 +42.176.0.0/13 +42.184.0.0/15 +42.186.0.0/16 +42.187.0.0/18 +42.187.64.0/19 +42.187.96.0/20 +42.187.112.0/21 +42.187.120.0/22 +42.187.128.0/17 +42.192.0.0/13 +42.201.0.0/17 +42.202.0.0/15 +42.204.0.0/14 +42.208.0.0/12 +42.224.0.0/12 +42.240.0.0/16 +42.242.0.0/15 +42.244.0.0/14 +42.248.0.0/13 +43.224.12.0/22 +43.224.24.0/22 +43.224.44.0/22 +43.224.52.0/22 +43.224.56.0/22 +43.224.64.0/21 +43.224.72.0/22 +43.224.80.0/22 +43.224.100.0/22 +43.224.144.0/22 +43.224.160.0/22 +43.224.176.0/22 +43.224.184.0/22 +43.224.200.0/21 +43.224.208.0/21 +43.224.216.0/22 +43.224.224.0/22 +43.224.240.0/22 +43.225.76.0/22 +43.225.84.0/22 +43.225.120.0/21 +43.225.140.0/22 +43.225.172.0/22 +43.225.180.0/22 +43.225.208.0/22 +43.225.216.0/21 +43.225.224.0/20 +43.225.240.0/21 +43.225.252.0/22 +43.226.32.0/19 +43.226.64.0/19 +43.226.96.0/20 +43.226.112.0/21 +43.226.120.0/22 +43.226.128.0/18 +43.226.192.0/20 +43.226.208.0/21 +43.226.236.0/22 +43.226.240.0/20 +43.227.0.0/21 +43.227.8.0/22 +43.227.32.0/19 +43.227.64.0/19 +43.227.96.0/21 +43.227.104.0/22 +43.227.136.0/21 +43.227.144.0/22 +43.227.152.0/21 +43.227.160.0/20 +43.227.176.0/21 +43.227.188.0/22 +43.227.192.0/19 +43.227.232.0/22 +43.227.248.0/21 +43.228.0.0/18 +43.228.64.0/21 +43.228.76.0/22 +43.228.100.0/22 +43.228.116.0/22 +43.228.120.0/22 +43.228.132.0/22 +43.228.136.0/22 +43.228.148.0/22 +43.228.152.0/22 +43.228.188.0/22 +43.229.16.0/22 +43.229.40.0/22 +43.229.48.0/22 +43.229.56.0/22 +43.229.96.0/22 +43.229.120.0/22 +43.229.136.0/21 +43.229.144.0/22 +43.229.168.0/21 +43.229.176.0/20 +43.229.192.0/21 +43.229.216.0/21 +43.229.232.0/21 +43.230.20.0/22 +43.230.32.0/22 +43.230.68.0/22 +43.230.72.0/22 +43.230.84.0/22 +43.230.124.0/22 +43.230.136.0/22 +43.230.168.0/22 +43.230.220.0/22 +43.230.224.0/19 +43.231.12.0/22 +43.231.32.0/20 +43.231.80.0/20 +43.231.96.0/20 +43.231.136.0/21 +43.231.144.0/20 +43.231.160.0/20 +43.231.176.0/21 +43.236.0.0/15 +43.238.0.0/16 +43.239.0.0/19 +43.239.32.0/20 +43.239.48.0/22 +43.239.116.0/22 +43.239.120.0/22 +43.239.172.0/22 +43.239.176.0/22 +43.240.0.0/22 +43.240.48.0/22 +43.240.56.0/21 +43.240.68.0/22 +43.240.72.0/21 +43.240.84.0/22 +43.240.124.0/22 +43.240.128.0/21 +43.240.136.0/22 +43.240.156.0/22 +43.240.160.0/19 +43.240.192.0/19 +43.240.236.0/22 +43.240.240.0/20 +43.241.0.0/20 +43.241.16.0/21 +43.241.48.0/22 +43.241.76.0/22 +43.241.80.0/20 +43.241.112.0/22 +43.241.168.0/21 +43.241.176.0/21 +43.241.184.0/22 +43.241.196.0/22 +43.241.208.0/20 +43.241.224.0/20 +43.241.240.0/22 +43.241.248.0/21 +43.242.8.0/21 +43.242.16.0/20 +43.242.44.0/22 +43.242.48.0/20 +43.242.64.0/22 +43.242.72.0/21 +43.242.80.0/20 +43.242.96.0/22 +43.242.144.0/20 +43.242.160.0/21 +43.242.168.0/22 +43.242.180.0/22 +43.242.188.0/22 +43.242.192.0/21 +43.242.204.0/22 +43.242.216.0/21 +43.242.252.0/22 +43.243.4.0/22 +43.243.8.0/21 +43.243.16.0/22 +43.243.24.0/22 +43.243.88.0/22 +43.243.128.0/22 +43.243.136.0/22 +43.243.144.0/21 +43.243.156.0/22 +43.243.168.0/22 +43.243.180.0/22 +43.243.188.0/22 +43.243.228.0/22 +43.243.232.0/22 +43.243.244.0/22 +43.246.0.0/18 +43.246.64.0/19 +43.246.96.0/22 +43.246.112.0/22 +43.246.212.0/22 +43.246.228.0/22 +43.247.4.0/22 +43.247.8.0/22 +43.247.44.0/22 +43.247.48.0/22 +43.247.68.0/22 +43.247.76.0/22 +43.247.84.0/22 +43.247.88.0/21 +43.247.96.0/21 +43.247.108.0/22 +43.247.112.0/22 +43.247.148.0/22 +43.247.152.0/22 +43.247.176.0/20 +43.247.196.0/22 +43.247.200.0/21 +43.247.208.0/20 +43.247.224.0/19 +43.248.0.0/21 +43.248.20.0/22 +43.248.28.0/22 +43.248.48.0/22 +43.248.76.0/22 +43.248.80.0/20 +43.248.96.0/19 +43.248.128.0/20 +43.248.144.0/21 +43.248.176.0/20 +43.248.192.0/20 +43.248.208.0/22 +43.248.228.0/22 +43.248.232.0/22 +43.248.244.0/22 +43.249.0.0/21 +43.249.8.0/22 +43.249.24.0/22 +43.249.120.0/22 +43.249.132.0/22 +43.249.136.0/22 +43.249.144.0/20 +43.249.160.0/21 +43.249.168.0/22 +43.249.192.0/22 +43.249.236.0/22 +43.250.4.0/22 +43.250.12.0/22 +43.250.16.0/21 +43.250.28.0/22 +43.250.32.0/21 +43.250.72.0/22 +43.250.96.0/20 +43.250.112.0/21 +43.250.128.0/22 +43.250.144.0/21 +43.250.160.0/22 +43.250.168.0/21 +43.250.176.0/22 +43.250.200.0/22 +43.250.212.0/22 +43.250.216.0/21 +43.250.236.0/22 +43.250.244.0/22 +43.251.4.0/22 +43.251.8.0/21 +43.251.36.0/22 +43.251.100.0/22 +43.251.116.0/22 +43.251.192.0/22 +43.251.232.0/21 +43.251.244.0/22 +43.252.40.0/22 +43.252.48.0/22 +43.252.56.0/22 +43.252.224.0/22 +43.254.0.0/21 +43.254.8.0/22 +43.254.24.0/22 +43.254.36.0/22 +43.254.44.0/22 +43.254.52.0/22 +43.254.64.0/22 +43.254.72.0/22 +43.254.84.0/22 +43.254.88.0/21 +43.254.100.0/22 +43.254.104.0/22 +43.254.112.0/21 +43.254.128.0/22 +43.254.136.0/21 +43.254.144.0/20 +43.254.168.0/21 +43.254.180.0/22 +43.254.184.0/21 +43.254.192.0/21 +43.254.200.0/22 +43.254.208.0/22 +43.254.220.0/22 +43.254.224.0/20 +43.254.240.0/22 +43.254.248.0/21 +43.255.0.0/21 +43.255.8.0/22 +43.255.16.0/22 +43.255.48.0/22 +43.255.64.0/20 +43.255.84.0/22 +43.255.96.0/22 +43.255.108.0/22 +43.255.144.0/22 +43.255.168.0/22 +43.255.176.0/22 +43.255.184.0/22 +43.255.192.0/22 +43.255.200.0/21 +43.255.208.0/21 +43.255.224.0/21 +43.255.232.0/22 +43.255.244.0/22 +45.40.192.0/18 +45.65.16.0/20 +45.112.132.0/22 +45.112.188.0/22 +45.112.208.0/20 +45.112.228.0/22 +45.112.232.0/21 +45.113.12.0/22 +45.113.16.0/20 +45.113.40.0/22 +45.113.52.0/22 +45.113.56.0/22 +45.113.72.0/22 +45.113.144.0/21 +45.113.168.0/22 +45.113.176.0/22 +45.113.184.0/22 +45.113.200.0/21 +45.113.208.0/20 +45.113.228.0/22 +45.113.240.0/22 +45.113.252.0/22 +45.114.0.0/22 +45.114.12.0/22 +45.114.32.0/22 +45.114.40.0/22 +45.114.52.0/22 +45.114.96.0/22 +45.114.104.0/21 +45.114.124.0/22 +45.114.136.0/22 +45.114.196.0/22 +45.114.200.0/22 +45.114.228.0/22 +45.114.236.0/22 +45.114.252.0/22 +45.115.44.0/22 +45.115.100.0/22 +45.115.120.0/22 +45.115.132.0/22 +45.115.144.0/22 +45.115.156.0/22 +45.115.164.0/22 +45.115.200.0/22 +45.115.212.0/22 +45.115.216.0/22 +45.115.228.0/22 +45.115.236.0/22 +45.115.244.0/22 +45.115.248.0/22 +45.116.12.0/22 +45.116.16.0/21 +45.116.24.0/22 +45.116.32.0/21 +45.116.52.0/22 +45.116.96.0/21 +45.116.140.0/22 +45.116.152.0/22 +45.116.208.0/22 +45.117.8.0/22 +45.117.20.0/22 +45.117.68.0/22 +45.117.124.0/22 +45.117.252.0/22 +45.119.52.0/22 +45.119.60.0/22 +45.119.64.0/21 +45.119.72.0/22 +45.119.104.0/22 +45.119.116.0/22 +45.119.232.0/22 +45.120.100.0/22 +45.120.140.0/22 +45.120.164.0/22 +45.120.220.0/22 +45.120.240.0/22 +45.121.20.0/22 +45.121.52.0/22 +45.121.64.0/21 +45.121.72.0/22 +45.121.92.0/22 +45.121.96.0/22 +45.121.104.0/22 +45.121.172.0/22 +45.121.176.0/22 +45.121.212.0/22 +45.121.240.0/20 +45.122.0.0/19 +45.122.32.0/21 +45.122.40.0/22 +45.122.60.0/22 +45.122.64.0/19 +45.122.96.0/20 +45.122.112.0/21 +45.122.160.0/19 +45.122.192.0/20 +45.122.208.0/21 +45.122.216.0/22 +45.123.28.0/22 +45.123.32.0/21 +45.123.44.0/22 +45.123.48.0/20 +45.123.64.0/20 +45.123.80.0/21 +45.123.88.0/22 +45.123.120.0/22 +45.123.128.0/21 +45.123.136.0/22 +45.123.148.0/22 +45.123.152.0/21 +45.123.164.0/22 +45.123.168.0/21 +45.123.176.0/21 +45.123.184.0/22 +45.123.204.0/22 +45.123.212.0/22 +45.123.224.0/19 +45.124.0.0/22 +45.124.20.0/22 +45.124.28.0/22 +45.124.32.0/21 +45.124.44.0/22 +45.124.68.0/22 +45.124.76.0/22 +45.124.80.0/22 +45.124.100.0/22 +45.124.124.0/22 +45.124.172.0/22 +45.124.176.0/22 +45.124.208.0/22 +45.124.248.0/21 +45.125.12.0/22 +45.125.16.0/22 +45.125.24.0/21 +45.125.32.0/22 +45.125.44.0/22 +45.125.52.0/22 +45.125.56.0/22 +45.125.76.0/22 +45.125.80.0/20 +45.125.96.0/21 +45.125.104.0/22 +45.125.136.0/22 +45.126.48.0/21 +45.126.100.0/22 +45.126.108.0/22 +45.126.112.0/21 +45.126.120.0/22 +45.126.212.0/22 +45.126.220.0/22 +45.127.8.0/21 +45.127.96.0/22 +45.127.116.0/22 +45.127.124.0/22 +45.127.128.0/22 +45.127.144.0/21 +45.127.156.0/22 +45.127.216.0/22 +45.248.8.0/22 +45.248.80.0/21 +45.248.88.0/22 +45.248.96.0/20 +45.248.128.0/21 +45.248.204.0/22 +45.248.208.0/20 +45.248.224.0/19 +45.249.0.0/21 +45.249.12.0/22 +45.249.16.0/20 +45.249.32.0/21 +45.249.92.0/22 +45.249.112.0/22 +45.249.180.0/22 +45.249.188.0/22 +45.249.192.0/20 +45.249.208.0/21 +45.250.12.0/22 +45.250.16.0/22 +45.250.28.0/22 +45.250.32.0/21 +45.250.40.0/22 +45.250.76.0/22 +45.250.80.0/20 +45.250.96.0/22 +45.250.104.0/21 +45.250.112.0/20 +45.250.128.0/20 +45.250.144.0/21 +45.250.152.0/22 +45.250.164.0/22 +45.250.180.0/22 +45.250.184.0/21 +45.250.192.0/22 +45.251.0.0/22 +45.251.8.0/22 +45.251.16.0/21 +45.251.52.0/22 +45.251.84.0/22 +45.251.88.0/21 +45.251.96.0/21 +45.251.120.0/21 +45.251.136.0/21 +45.251.144.0/20 +45.251.160.0/19 +45.251.192.0/19 +45.251.224.0/22 +45.251.240.0/22 +45.252.0.0/19 +45.252.32.0/20 +45.252.48.0/22 +45.252.60.0/22 +45.252.84.0/22 +45.252.88.0/21 +45.252.96.0/19 +45.252.128.0/19 +45.252.160.0/20 +45.252.176.0/22 +45.252.192.0/19 +45.252.224.0/21 +45.252.232.0/22 +45.253.0.0/18 +45.253.64.0/20 +45.253.80.0/21 +45.253.92.0/22 +45.253.96.0/20 +45.253.112.0/21 +45.253.120.0/22 +45.253.130.0/23 +45.253.132.0/22 +45.253.136.0/21 +45.253.144.0/20 +45.253.160.0/19 +45.253.192.0/18 +45.254.0.0/19 +45.254.40.0/22 +45.254.48.0/20 +45.254.64.0/18 +45.254.128.0/18 +45.254.192.0/19 +45.254.224.0/21 +45.254.236.0/22 +45.254.240.0/22 +45.254.248.0/22 +45.255.0.0/17 +45.255.132.0/22 +45.255.136.0/21 +45.255.144.0/20 +45.255.160.0/19 +45.255.192.0/19 +45.255.224.0/20 +45.255.240.0/21 +45.255.248.0/22 +46.61.179.170/31 +46.248.24.0/23 +47.92.0.0/14 +47.96.0.0/11 +49.4.0.0/14 +49.51.0.0/16 +49.52.0.0/14 +49.64.0.0/11 +49.112.0.0/13 +49.120.0.0/14 +49.128.0.0/24 +49.128.2.0/23 +49.128.4.0/22 +49.140.0.0/15 +49.152.0.0/14 +49.208.0.0/14 +49.220.0.0/14 +49.232.0.0/14 +49.239.0.0/18 +49.239.192.0/18 +49.246.224.0/19 +52.80.0.0/14 +52.94.249.0/27 +52.95.216.104/30 +52.130.0.0/15 +54.222.0.0/15 +54.231.208.0/20 +54.240.224.0/24 +57.92.96.0/20 +58.14.0.0/15 +58.16.0.0/13 +58.24.0.0/15 +58.30.0.0/15 +58.32.0.0/11 +58.65.232.0/21 +58.66.0.0/15 +58.68.128.0/17 +58.82.0.0/17 +58.83.0.0/16 +58.87.64.0/18 +58.99.128.0/17 +58.100.0.0/15 +58.116.0.0/14 +58.128.0.0/13 +58.144.0.0/16 +58.154.0.0/15 +58.192.0.0/11 +58.240.0.0/12 +59.32.0.0/11 +59.64.0.0/12 +59.80.0.0/14 +59.107.0.0/16 +59.108.0.0/14 +59.151.0.0/17 +59.152.16.0/20 +59.152.32.0/21 +59.152.64.0/20 +59.152.112.0/21 +59.153.4.0/22 +59.153.32.0/22 +59.153.60.0/22 +59.153.64.0/21 +59.153.72.0/22 +59.153.92.0/22 +59.153.116.0/22 +59.153.136.0/22 +59.153.152.0/21 +59.153.164.0/22 +59.153.168.0/21 +59.153.176.0/20 +59.153.192.0/22 +59.155.0.0/16 +59.172.0.0/14 +59.191.0.0/17 +59.191.240.0/20 +59.192.0.0/10 +60.0.0.0/11 +60.55.0.0/16 +60.63.0.0/16 +60.160.0.0/11 +60.194.0.0/15 +60.200.0.0/13 +60.208.0.0/12 +60.232.0.0/15 +60.235.0.0/16 +60.245.128.0/17 +60.247.0.0/16 +60.252.0.0/16 +60.253.128.0/17 +60.255.0.0/16 +61.4.80.0/20 +61.4.176.0/20 +61.8.160.0/20 +61.14.4.0/22 +61.14.212.0/22 +61.14.216.0/21 +61.14.240.0/21 +61.28.0.0/17 +61.29.128.0/17 +61.45.128.0/18 +61.45.224.0/20 +61.47.128.0/18 +61.48.0.0/13 +61.87.192.0/18 +61.128.0.0/10 +61.213.145.106/32 +61.232.0.0/14 +61.236.0.0/15 +61.240.0.0/14 +62.234.0.0/16 +64.85.27.0/24 +65.55.60.184/30 +68.79.0.0/18 +69.230.192.0/18 +69.231.128.0/18 +69.234.192.0/18 +69.235.128.0/18 +71.131.192.0/18 +71.132.0.0/18 +71.136.64.0/18 +71.137.0.0/18 +72.163.248.0/22 +81.68.0.0/14 +82.156.0.0/15 +87.254.207.0/24 +93.183.14.0/24 +93.183.18.0/24 +94.191.0.0/17 +101.0.0.0/22 +101.1.0.0/22 +101.2.172.0/22 +101.4.0.0/14 +101.16.0.0/12 +101.32.0.0/12 +101.48.0.0/15 +101.50.8.0/21 +101.50.56.0/22 +101.52.0.0/16 +101.53.100.0/22 +101.54.0.0/16 +101.55.224.0/21 +101.64.0.0/13 +101.72.0.0/14 +101.76.0.0/15 +101.78.0.0/22 +101.78.32.0/19 +101.80.0.0/12 +101.96.0.0/21 +101.96.8.0/22 +101.96.16.0/20 +101.96.128.0/17 +101.99.96.0/19 +101.101.64.0/19 +101.101.100.0/24 +101.101.102.0/23 +101.101.104.0/21 +101.101.112.0/20 +101.102.64.0/19 +101.102.100.0/23 +101.102.102.0/24 +101.102.104.0/21 +101.102.112.0/20 +101.104.0.0/14 +101.110.64.0/19 +101.110.96.0/20 +101.110.116.0/22 +101.110.120.0/21 +101.120.0.0/14 +101.124.0.0/15 +101.126.0.0/16 +101.128.0.0/22 +101.128.8.0/21 +101.128.16.0/20 +101.128.32.0/19 +101.129.0.0/16 +101.130.0.0/15 +101.132.0.0/14 +101.144.0.0/12 +101.192.0.0/13 +101.200.0.0/15 +101.203.128.0/19 +101.203.160.0/21 +101.203.172.0/22 +101.203.176.0/20 +101.204.0.0/14 +101.224.0.0/13 +101.232.0.0/15 +101.234.64.0/21 +101.234.76.0/22 +101.234.80.0/20 +101.234.96.0/19 +101.236.0.0/14 +101.240.0.0/13 +101.248.0.0/15 +101.251.0.0/22 +101.251.8.0/21 +101.251.16.0/20 +101.251.32.0/19 +101.251.64.0/18 +101.251.128.0/17 +101.252.0.0/15 +101.254.0.0/16 +103.1.8.0/22 +103.1.20.0/22 +103.1.24.0/22 +103.1.72.0/22 +103.1.88.0/22 +103.1.168.0/22 +103.2.108.0/22 +103.2.156.0/22 +103.2.164.0/22 +103.2.200.0/21 +103.2.208.0/21 +103.3.84.0/22 +103.3.88.0/21 +103.3.96.0/19 +103.3.128.0/20 +103.3.148.0/22 +103.3.152.0/21 +103.4.56.0/22 +103.4.168.0/22 +103.4.184.0/22 +103.4.224.0/22 +103.5.36.0/22 +103.5.52.0/22 +103.5.56.0/22 +103.5.152.0/22 +103.5.168.0/22 +103.5.192.0/22 +103.5.252.0/22 +103.6.76.0/22 +103.6.108.0/22 +103.6.120.0/22 +103.6.220.0/22 +103.6.228.0/22 +103.7.4.0/22 +103.7.28.0/22 +103.7.140.0/22 +103.7.212.0/22 +103.7.216.0/21 +103.8.0.0/21 +103.8.8.0/22 +103.8.32.0/22 +103.8.52.0/22 +103.8.68.0/22 +103.8.108.0/22 +103.8.156.0/22 +103.8.200.0/21 +103.8.220.0/22 +103.9.8.0/22 +103.9.24.0/22 +103.9.108.0/22 +103.9.152.0/22 +103.9.192.0/22 +103.9.248.0/21 +103.10.0.0/22 +103.10.16.0/22 +103.10.84.0/22 +103.10.111.0/24 +103.10.140.0/22 +103.11.16.0/22 +103.11.168.0/22 +103.11.180.0/22 +103.12.32.0/22 +103.12.68.0/22 +103.12.92.0/22 +103.12.136.0/22 +103.12.184.0/22 +103.12.232.0/22 +103.13.12.0/22 +103.13.72.0/23 +103.13.124.0/22 +103.13.144.0/22 +103.13.196.0/22 +103.13.220.0/22 +103.13.244.0/22 +103.14.32.0/22 +103.14.84.0/22 +103.14.100.0/22 +103.14.132.0/22 +103.14.136.0/22 +103.14.156.0/22 +103.14.240.0/22 +103.15.4.0/22 +103.15.8.0/22 +103.15.16.0/22 +103.15.96.0/22 +103.15.200.0/22 +103.16.52.0/22 +103.16.80.0/21 +103.16.88.0/22 +103.16.108.0/22 +103.16.124.0/22 +103.17.40.0/22 +103.17.64.0/22 +103.17.120.0/22 +103.17.136.0/22 +103.17.160.0/22 +103.17.204.0/22 +103.17.228.0/22 +103.18.192.0/22 +103.18.208.0/21 +103.18.224.0/22 +103.19.0.0/22 +103.19.12.0/22 +103.19.40.0/21 +103.19.64.0/21 +103.19.72.0/22 +103.19.232.0/22 +103.20.12.0/22 +103.20.32.0/22 +103.20.44.0/22 +103.20.68.0/22 +103.20.112.0/22 +103.20.128.0/22 +103.20.160.0/22 +103.20.248.0/22 +103.21.112.0/21 +103.21.136.0/21 +103.21.176.0/22 +103.21.208.0/22 +103.21.240.0/22 +103.22.0.0/18 +103.22.64.0/19 +103.22.100.0/22 +103.22.104.0/21 +103.22.112.0/20 +103.22.188.0/22 +103.22.228.0/22 +103.22.252.0/22 +103.23.8.0/22 +103.23.56.0/22 +103.23.160.0/21 +103.23.176.0/22 +103.23.228.0/22 +103.24.24.0/22 +103.24.116.0/22 +103.24.128.0/22 +103.24.144.0/22 +103.24.176.0/22 +103.24.184.0/22 +103.24.220.0/22 +103.24.228.0/22 +103.24.248.0/21 +103.25.8.0/23 +103.25.20.0/22 +103.25.24.0/21 +103.25.32.0/21 +103.25.40.0/22 +103.25.48.0/22 +103.25.64.0/21 +103.25.148.0/22 +103.25.156.0/22 +103.25.216.0/22 +103.26.0.0/22 +103.26.64.0/22 +103.26.76.0/22 +103.26.116.0/22 +103.26.132.0/22 +103.26.156.0/22 +103.26.160.0/22 +103.26.228.0/22 +103.26.240.0/22 +103.27.4.0/22 +103.27.12.0/22 +103.27.24.0/22 +103.27.56.0/22 +103.27.96.0/22 +103.27.184.0/22 +103.27.208.0/21 +103.27.240.0/22 +103.28.4.0/22 +103.28.8.0/22 +103.28.184.0/22 +103.28.204.0/22 +103.28.212.0/22 +103.29.16.0/22 +103.29.128.0/21 +103.29.136.0/22 +103.30.20.0/22 +103.30.96.0/22 +103.30.148.0/22 +103.30.200.0/22 +103.30.228.0/22 +103.30.234.0/24 +103.30.236.0/22 +103.31.0.0/22 +103.31.48.0/20 +103.31.64.0/21 +103.31.72.0/24 +103.31.148.0/22 +103.31.160.0/22 +103.31.168.0/22 +103.31.200.0/22 +103.31.236.0/22 +103.32.0.0/15 +103.34.0.0/16 +103.35.0.0/19 +103.35.32.0/20 +103.35.48.0/22 +103.35.104.0/22 +103.35.116.0/22 +103.35.180.0/22 +103.35.200.0/22 +103.35.220.0/22 +103.36.20.0/22 +103.36.28.0/22 +103.36.36.0/22 +103.36.56.0/21 +103.36.64.0/22 +103.36.72.0/22 +103.36.96.0/22 +103.36.132.0/22 +103.36.136.0/22 +103.36.160.0/19 +103.36.192.0/19 +103.36.224.0/20 +103.36.240.0/21 +103.37.0.0/22 +103.37.12.0/22 +103.37.16.0/22 +103.37.24.0/22 +103.37.44.0/22 +103.37.52.0/22 +103.37.56.0/22 +103.37.72.0/22 +103.37.100.0/22 +103.37.104.0/22 +103.37.124.0/22 +103.37.136.0/21 +103.37.144.0/20 +103.37.160.0/21 +103.37.172.0/22 +103.37.176.0/22 +103.37.188.0/22 +103.37.208.0/20 +103.37.248.0/21 +103.38.0.0/22 +103.38.32.0/22 +103.38.40.0/21 +103.38.56.0/22 +103.38.76.0/22 +103.38.84.0/22 +103.38.92.0/22 +103.38.96.0/22 +103.38.116.0/22 +103.38.132.0/22 +103.38.140.0/22 +103.38.220.0/22 +103.38.224.0/21 +103.38.232.0/22 +103.38.252.0/22 +103.39.16.0/22 +103.39.64.0/22 +103.39.88.0/22 +103.39.100.0/22 +103.39.104.0/21 +103.39.160.0/19 +103.39.200.0/21 +103.39.208.0/20 +103.39.224.0/21 +103.39.232.0/22 +103.40.12.0/22 +103.40.16.0/20 +103.40.32.0/20 +103.40.88.0/22 +103.40.100.0/22 +103.40.112.0/22 +103.40.192.0/22 +103.40.212.0/22 +103.40.220.0/22 +103.40.228.0/22 +103.40.232.0/21 +103.40.240.0/20 +103.41.0.0/22 +103.41.16.0/22 +103.41.52.0/22 +103.41.140.0/22 +103.41.148.0/22 +103.41.152.0/22 +103.41.160.0/21 +103.41.220.0/22 +103.41.224.0/21 +103.41.232.0/22 +103.42.8.0/22 +103.42.24.0/21 +103.42.32.0/22 +103.42.64.0/21 +103.42.76.0/22 +103.42.104.0/22 +103.42.180.0/22 +103.42.232.0/22 +103.43.16.0/22 +103.43.26.0/23 +103.43.84.0/22 +103.43.96.0/21 +103.43.104.0/22 +103.43.124.0/22 +103.43.184.0/22 +103.43.192.0/21 +103.43.208.0/22 +103.43.220.0/22 +103.43.224.0/22 +103.43.232.0/22 +103.43.240.0/22 +103.44.56.0/22 +103.44.80.0/22 +103.44.88.0/22 +103.44.120.0/21 +103.44.132.0/22 +103.44.144.0/22 +103.44.152.0/22 +103.44.168.0/22 +103.44.176.0/20 +103.44.192.0/20 +103.44.224.0/22 +103.44.236.0/22 +103.44.240.0/20 +103.45.0.0/18 +103.45.72.0/21 +103.45.80.0/20 +103.45.96.0/19 +103.45.128.0/18 +103.45.192.0/19 +103.45.224.0/22 +103.45.248.0/22 +103.46.0.0/22 +103.46.12.0/22 +103.46.16.0/20 +103.46.32.0/19 +103.46.64.0/18 +103.46.128.0/21 +103.46.136.0/22 +103.46.152.0/21 +103.46.160.0/20 +103.46.176.0/21 +103.46.244.0/22 +103.46.248.0/22 +103.47.4.0/22 +103.47.20.0/22 +103.47.36.0/22 +103.47.40.0/22 +103.47.48.0/22 +103.47.80.0/22 +103.47.96.0/22 +103.47.108.0/22 +103.47.116.0/22 +103.47.120.0/22 +103.47.136.0/21 +103.47.212.0/22 +103.48.20.0/22 +103.48.52.0/22 +103.48.92.0/22 +103.48.144.0/20 +103.48.202.0/23 +103.48.216.0/21 +103.48.224.0/20 +103.48.240.0/21 +103.49.12.0/22 +103.49.20.0/22 +103.49.72.0/21 +103.49.92.0/22 +103.49.96.0/22 +103.49.108.0/22 +103.49.128.0/22 +103.49.176.0/21 +103.49.196.0/22 +103.49.248.0/22 +103.50.36.0/22 +103.50.44.0/22 +103.50.48.0/20 +103.50.64.0/21 +103.50.72.0/22 +103.50.92.0/22 +103.50.108.0/22 +103.50.112.0/20 +103.50.132.0/22 +103.50.136.0/21 +103.50.172.0/22 +103.50.176.0/20 +103.50.192.0/21 +103.50.200.0/22 +103.50.220.0/22 +103.50.224.0/20 +103.50.240.0/21 +103.50.248.0/22 +103.52.40.0/22 +103.52.72.0/21 +103.52.80.0/21 +103.52.96.0/21 +103.52.104.0/22 +103.52.160.0/21 +103.52.172.0/22 +103.52.176.0/22 +103.52.184.0/22 +103.52.196.0/22 +103.53.4.0/22 +103.53.64.0/21 +103.53.92.0/22 +103.53.100.0/22 +103.53.124.0/22 +103.53.128.0/20 +103.53.144.0/22 +103.53.160.0/22 +103.53.180.0/22 +103.53.204.0/22 +103.53.208.0/21 +103.53.216.0/22 +103.53.236.0/22 +103.53.248.0/22 +103.54.8.0/22 +103.54.48.0/22 +103.54.60.0/22 +103.54.160.0/21 +103.54.212.0/22 +103.54.228.0/22 +103.54.240.0/22 +103.55.24.0/22 +103.55.80.0/22 +103.55.120.0/22 +103.55.152.0/22 +103.55.172.0/22 +103.55.204.0/22 +103.55.208.0/22 +103.55.228.0/22 +103.55.236.0/22 +103.55.240.0/22 +103.56.8.0/22 +103.56.16.0/21 +103.56.32.0/22 +103.56.52.0/22 +103.56.56.0/21 +103.56.72.0/21 +103.56.140.0/22 +103.56.152.0/22 +103.56.184.0/22 +103.56.200.0/22 +103.57.12.0/22 +103.57.52.0/22 +103.57.56.0/22 +103.57.76.0/22 +103.57.136.0/22 +103.57.196.0/22 +103.58.24.0/22 +103.59.76.0/22 +103.59.100.0/22 +103.59.112.0/20 +103.59.128.0/22 +103.59.148.0/22 +103.59.164.0/22 +103.60.32.0/22 +103.60.44.0/22 +103.60.164.0/22 +103.60.228.0/22 +103.60.236.0/22 +103.61.60.0/22 +103.61.104.0/22 +103.61.140.0/22 +103.61.152.0/21 +103.61.160.0/22 +103.61.172.0/22 +103.61.176.0/22 +103.61.184.0/21 +103.62.24.0/22 +103.62.52.0/22 +103.62.72.0/21 +103.62.80.0/21 +103.62.88.0/22 +103.62.96.0/19 +103.62.128.0/21 +103.62.156.0/22 +103.62.160.0/19 +103.62.192.0/22 +103.62.204.0/22 +103.62.208.0/20 +103.62.224.0/22 +103.63.32.0/19 +103.63.64.0/20 +103.63.80.0/21 +103.63.88.0/22 +103.63.140.0/22 +103.63.144.0/22 +103.63.152.0/22 +103.63.160.0/20 +103.63.176.0/21 +103.63.184.0/22 +103.63.192.0/20 +103.63.208.0/22 +103.63.240.0/20 +103.64.0.0/21 +103.64.24.0/21 +103.64.32.0/19 +103.64.64.0/18 +103.64.140.0/22 +103.64.144.0/22 +103.64.152.0/21 +103.64.160.0/19 +103.64.192.0/18 +103.65.0.0/20 +103.65.16.0/22 +103.65.36.0/22 +103.65.40.0/22 +103.65.48.0/20 +103.65.64.0/19 +103.65.100.0/22 +103.65.104.0/21 +103.65.112.0/20 +103.65.128.0/21 +103.65.136.0/22 +103.65.144.0/20 +103.65.160.0/20 +103.66.32.0/22 +103.66.40.0/22 +103.66.92.0/22 +103.66.108.0/22 +103.66.200.0/22 +103.66.216.0/22 +103.66.240.0/20 +103.67.0.0/21 +103.67.8.0/22 +103.67.40.0/21 +103.67.48.0/20 +103.67.64.0/18 +103.67.128.0/20 +103.67.144.0/21 +103.67.172.0/22 +103.67.192.0/22 +103.67.212.0/22 +103.67.252.0/22 +103.68.64.0/22 +103.68.88.0/22 +103.68.100.0/22 +103.68.128.0/22 +103.68.192.0/22 +103.69.16.0/22 +103.69.116.0/22 +103.69.132.0/22 +103.69.152.0/22 +103.69.212.0/22 +103.70.8.0/22 +103.70.148.0/22 +103.70.184.0/22 +103.70.220.0/22 +103.70.224.0/22 +103.70.236.0/22 +103.70.252.0/22 +103.71.0.0/22 +103.71.32.0/22 +103.71.48.0/22 +103.71.68.0/22 +103.71.72.0/22 +103.71.80.0/21 +103.71.88.0/22 +103.71.120.0/21 +103.71.128.0/22 +103.71.144.0/22 +103.71.196.0/22 +103.71.200.0/22 +103.71.232.0/22 +103.72.12.0/22 +103.72.16.0/20 +103.72.32.0/20 +103.72.48.0/21 +103.72.112.0/20 +103.72.128.0/21 +103.72.144.0/21 +103.72.172.0/22 +103.72.180.0/22 +103.72.224.0/19 +103.73.0.0/19 +103.73.48.0/22 +103.73.88.0/22 +103.73.96.0/22 +103.73.116.0/22 +103.73.120.0/22 +103.73.128.0/20 +103.73.144.0/22 +103.73.168.0/22 +103.73.176.0/22 +103.73.204.0/22 +103.73.208.0/22 +103.73.240.0/21 +103.73.248.0/22 +103.74.24.0/21 +103.74.32.0/20 +103.74.48.0/22 +103.74.56.0/21 +103.74.80.0/22 +103.74.124.0/22 +103.74.148.0/22 +103.74.152.0/21 +103.74.204.0/22 +103.74.232.0/22 +103.75.16.0/22 +103.75.87.0/24 +103.75.88.0/21 +103.75.104.0/21 +103.75.112.0/22 +103.75.120.0/22 +103.75.128.0/22 +103.75.144.0/22 +103.75.152.0/22 +103.75.236.0/24 +103.76.60.0/22 +103.76.64.0/21 +103.76.72.0/22 +103.76.84.0/22 +103.76.92.0/22 +103.76.104.0/22 +103.76.216.0/21 +103.76.224.0/22 +103.77.28.0/22 +103.77.52.0/22 +103.77.56.0/22 +103.77.72.0/22 +103.77.88.0/21 +103.77.132.0/22 +103.77.148.0/22 +103.77.220.0/22 +103.78.56.0/21 +103.78.64.0/21 +103.78.124.0/22 +103.78.172.0/22 +103.78.176.0/22 +103.78.196.0/22 +103.78.228.0/22 +103.79.24.0/21 +103.79.36.0/22 +103.79.40.0/21 +103.79.52.0/22 +103.79.56.0/21 +103.79.64.0/21 +103.79.80.0/21 +103.79.120.0/22 +103.79.136.0/22 +103.79.188.0/22 +103.79.192.0/20 +103.79.208.0/21 +103.79.240.0/22 +103.80.24.0/21 +103.80.44.0/22 +103.80.72.0/22 +103.80.176.0/21 +103.80.184.0/22 +103.80.192.0/22 +103.80.200.0/22 +103.80.232.0/22 +103.81.4.0/22 +103.81.8.0/22 +103.81.16.0/21 +103.81.44.0/22 +103.81.48.0/22 +103.81.96.0/22 +103.81.120.0/22 +103.81.148.0/22 +103.81.164.0/22 +103.81.168.0/22 +103.81.183.0/24 +103.81.184.0/22 +103.81.200.0/22 +103.81.232.0/22 +103.82.52.0/22 +103.82.60.0/22 +103.82.68.0/22 +103.82.84.0/22 +103.82.104.0/22 +103.82.224.0/22 +103.82.236.0/22 +103.83.44.0/22 +103.83.52.0/22 +103.83.60.0/22 +103.83.64.0/22 +103.83.72.0/22 +103.83.112.0/22 +103.83.120.0/22 +103.83.132.0/22 +103.83.180.0/22 +103.84.0.0/22 +103.84.12.0/22 +103.84.16.0/20 +103.84.48.0/22 +103.84.56.0/22 +103.84.64.0/22 +103.84.72.0/22 +103.84.92.0/22 +103.84.108.0/22 +103.84.136.0/22 +103.85.20.0/22 +103.85.24.0/22 +103.85.44.0/22 +103.85.48.0/21 +103.85.56.0/22 +103.85.84.0/22 +103.85.136.0/22 +103.85.144.0/22 +103.85.164.0/22 +103.85.168.0/21 +103.85.176.0/22 +103.85.224.0/22 +103.86.28.0/22 +103.86.32.0/22 +103.86.44.0/22 +103.86.60.0/22 +103.86.68.0/22 +103.86.80.0/21 +103.86.88.0/22 +103.86.129.0/24 +103.86.204.0/22 +103.86.208.0/20 +103.86.224.0/19 +103.87.0.0/21 +103.87.20.0/22 +103.87.32.0/22 +103.87.72.0/22 +103.87.96.0/22 +103.87.132.0/22 +103.87.180.0/22 +103.87.224.0/22 +103.88.4.0/22 +103.88.8.0/21 +103.88.16.0/21 +103.88.32.0/21 +103.88.60.0/22 +103.88.64.0/22 +103.88.72.0/22 +103.88.96.0/21 +103.88.152.0/23 +103.88.164.0/22 +103.88.176.0/22 +103.88.184.0/21 +103.88.212.0/22 +103.89.28.0/22 +103.89.96.0/20 +103.89.112.0/21 +103.89.148.0/22 +103.89.172.0/22 +103.89.184.0/21 +103.89.192.0/19 +103.89.224.0/21 +103.90.52.0/22 +103.90.92.0/22 +103.90.100.0/22 +103.90.104.0/21 +103.90.112.0/20 +103.90.128.0/21 +103.90.152.0/22 +103.90.168.0/22 +103.90.173.0/24 +103.90.176.0/22 +103.90.188.0/22 +103.90.192.0/22 +103.91.36.0/22 +103.91.40.0/22 +103.91.108.0/22 +103.91.152.0/22 +103.91.176.0/22 +103.91.200.0/22 +103.91.208.0/21 +103.91.219.0/24 +103.91.236.0/22 +103.91.252.0/22 +103.92.0.0/20 +103.92.48.0/20 +103.92.64.0/20 +103.92.80.0/22 +103.92.86.0/24 +103.92.88.0/22 +103.92.108.0/22 +103.92.124.0/22 +103.92.128.0/24 +103.92.132.0/22 +103.92.156.0/22 +103.92.164.0/22 +103.92.168.0/21 +103.92.176.0/20 +103.92.192.0/22 +103.92.236.0/22 +103.92.240.0/20 +103.93.0.0/21 +103.93.28.0/22 +103.93.76.0/22 +103.93.84.0/22 +103.93.121.0/24 +103.93.152.0/22 +103.93.180.0/22 +103.93.204.0/22 +103.94.12.0/22 +103.94.20.0/22 +103.94.28.0/22 +103.94.32.0/20 +103.94.72.0/22 +103.94.88.0/22 +103.94.116.0/22 +103.94.160.0/22 +103.94.180.0/22 +103.94.200.0/22 +103.95.28.0/22 +103.95.52.0/22 +103.95.64.0/21 +103.95.88.0/21 +103.95.116.0/22 +103.95.128.0/22 +103.95.136.0/21 +103.95.144.0/22 +103.95.152.0/22 +103.95.207.0/24 +103.95.216.0/21 +103.95.224.0/22 +103.95.236.0/22 +103.95.240.0/20 +103.96.0.0/22 +103.96.8.0/22 +103.96.80.0/22 +103.96.124.0/22 +103.96.136.0/22 +103.96.140.0/24 +103.96.148.0/22 +103.96.152.0/21 +103.96.160.0/19 +103.96.192.0/20 +103.96.208.0/21 +103.96.216.0/22 +103.97.8.0/21 +103.97.16.0/20 +103.97.32.0/21 +103.97.40.0/22 +103.97.56.0/21 +103.97.64.0/21 +103.97.72.0/22 +103.97.80.0/22 +103.97.112.0/21 +103.97.128.0/22 +103.97.144.0/21 +103.97.188.0/22 +103.97.192.0/22 +103.97.224.0/22 +103.97.228.0/23 +103.98.28.0/23 +103.98.40.0/21 +103.98.48.0/22 +103.98.56.0/22 +103.98.80.0/22 +103.98.88.0/21 +103.98.96.0/21 +103.98.124.0/22 +103.98.136.0/21 +103.98.144.0/22 +103.98.164.0/22 +103.98.168.0/22 +103.98.180.0/22 +103.98.196.0/22 +103.98.216.0/21 +103.98.224.0/21 +103.98.232.0/22 +103.98.240.0/20 +103.99.40.0/23 +103.99.52.0/22 +103.99.56.0/21 +103.99.76.0/22 +103.99.104.0/22 +103.99.116.0/22 +103.99.120.0/22 +103.99.132.0/22 +103.99.136.0/21 +103.99.144.0/22 +103.99.152.0/22 +103.99.220.0/22 +103.99.232.0/21 +103.100.0.0/22 +103.100.32.0/22 +103.100.40.0/22 +103.100.48.0/20 +103.100.64.0/21 +103.100.88.0/22 +103.100.116.0/22 +103.100.140.0/22 +103.100.144.0/22 +103.100.236.0/22 +103.100.240.0/22 +103.100.248.0/21 +103.101.4.0/22 +103.101.8.0/21 +103.101.28.0/22 +103.101.60.0/22 +103.101.120.0/21 +103.101.144.0/21 +103.101.153.0/24 +103.101.180.0/22 +103.101.184.0/22 +103.102.76.0/22 +103.102.80.0/22 +103.102.163.0/24 +103.102.168.0/21 +103.102.180.0/22 +103.102.184.0/21 +103.102.192.0/21 +103.102.200.0/22 +103.102.208.0/21 +103.103.12.0/22 +103.103.16.0/22 +103.103.36.0/22 +103.103.68.0/22 +103.103.72.0/22 +103.103.176.0/22 +103.103.188.0/22 +103.103.200.0/21 +103.103.220.0/22 +103.103.224.0/21 +103.103.232.0/22 +103.103.248.0/21 +103.104.0.0/21 +103.104.36.0/22 +103.104.40.0/22 +103.104.64.0/22 +103.104.104.0/22 +103.104.152.0/22 +103.104.168.0/21 +103.104.188.0/22 +103.104.198.0/23 +103.104.252.0/22 +103.105.0.0/21 +103.105.12.0/22 +103.105.16.0/22 +103.105.23.0/24 +103.105.56.0/21 +103.105.116.0/22 +103.105.132.0/22 +103.105.180.0/22 +103.105.184.0/22 +103.105.200.0/21 +103.105.220.0/22 +103.106.36.0/22 +103.106.40.0/21 +103.106.60.0/22 +103.106.68.0/22 +103.106.96.0/22 +103.106.120.0/22 +103.106.128.0/21 +103.106.160.0/22 +103.106.188.0/22 +103.106.196.0/22 +103.106.202.0/23 +103.106.212.0/22 +103.106.244.0/22 +103.106.252.0/22 +103.107.0.0/22 +103.107.8.0/24 +103.107.28.0/22 +103.107.32.0/22 +103.107.44.0/22 +103.107.72.0/22 +103.107.108.0/22 +103.107.164.0/22 +103.107.168.0/22 +103.107.188.0/22 +103.107.192.0/22 +103.107.208.0/20 +103.108.52.0/22 +103.108.64.0/22 +103.108.160.0/21 +103.108.184.0/23 +103.108.188.0/23 +103.108.192.0/21 +103.108.208.0/21 +103.108.224.0/22 +103.108.244.0/22 +103.108.251.0/24 +103.109.20.0/22 +103.109.48.0/22 +103.109.88.0/22 +103.109.106.0/23 +103.109.248.0/22 +103.110.32.0/22 +103.110.80.0/23 +103.110.92.0/22 +103.110.100.0/22 +103.110.116.0/22 +103.110.127.0/24 +103.110.128.0/23 +103.110.131.0/24 +103.110.132.0/22 +103.110.136.0/22 +103.110.152.0/21 +103.110.188.0/22 +103.110.204.0/22 +103.111.38.0/23 +103.111.64.0/22 +103.111.172.0/22 +103.111.252.0/22 +103.112.28.0/22 +103.112.68.0/22 +103.112.72.0/22 +103.112.88.0/21 +103.112.96.0/22 +103.112.108.0/22 +103.112.112.0/21 +103.112.140.0/22 +103.112.172.0/22 +103.112.184.0/22 +103.112.208.0/22 +103.113.4.0/22 +103.113.92.0/22 +103.113.144.0/22 +103.113.220.0/22 +103.113.232.0/21 +103.114.4.0/22 +103.114.28.0/22 +103.114.68.0/22 +103.114.72.0/22 +103.114.100.0/22 +103.114.132.0/22 +103.114.148.0/22 +103.114.156.0/22 +103.114.176.0/22 +103.114.212.0/22 +103.114.236.0/22 +103.114.240.0/22 +103.115.16.0/22 +103.115.40.0/21 +103.115.48.0/20 +103.115.64.0/21 +103.115.92.0/22 +103.115.120.0/22 +103.115.148.0/22 +103.115.204.0/23 +103.115.248.0/22 +103.116.20.0/22 +103.116.40.0/22 +103.116.64.0/22 +103.116.72.0/21 +103.116.92.0/22 +103.116.120.0/22 +103.116.128.0/22 +103.116.132.0/23 +103.116.148.0/22 +103.116.184.0/22 +103.116.206.0/23 +103.116.220.0/22 +103.116.224.0/21 +103.117.16.0/22 +103.117.72.0/22 +103.117.88.0/22 +103.117.132.0/22 +103.117.136.0/22 +103.117.188.0/22 +103.117.220.0/22 +103.118.19.0/24 +103.118.36.0/22 +103.118.52.0/22 +103.118.56.0/21 +103.118.64.0/21 +103.118.72.0/22 +103.118.88.0/22 +103.118.173.0/24 +103.118.192.0/19 +103.118.240.0/20 +103.119.0.0/22 +103.119.12.0/22 +103.119.16.0/22 +103.119.28.0/22 +103.119.44.0/22 +103.119.104.0/22 +103.119.115.0/24 +103.119.156.0/22 +103.119.180.0/22 +103.119.200.0/22 +103.119.224.0/22 +103.120.52.0/22 +103.120.72.0/22 +103.120.76.0/24 +103.120.88.0/22 +103.120.96.0/21 +103.120.140.0/22 +103.120.196.0/22 +103.120.224.0/22 +103.121.52.0/22 +103.121.92.0/22 +103.121.160.0/21 +103.121.250.0/24 +103.121.252.0/22 +103.129.52.0/22 +103.129.148.0/22 +103.192.0.0/19 +103.192.48.0/21 +103.192.56.0/22 +103.192.84.0/22 +103.192.88.0/21 +103.192.96.0/20 +103.192.112.0/22 +103.192.128.0/20 +103.192.144.0/22 +103.192.164.0/22 +103.192.188.0/22 +103.192.208.0/21 +103.192.216.0/22 +103.192.252.0/22 +103.193.40.0/21 +103.193.120.0/21 +103.193.140.0/22 +103.193.144.0/21 +103.193.160.0/22 +103.193.188.0/22 +103.193.192.0/22 +103.193.212.0/22 +103.193.216.0/21 +103.193.224.0/20 +103.193.240.0/22 +103.194.16.0/22 +103.194.230.0/23 +103.195.104.0/22 +103.195.112.0/22 +103.195.136.0/22 +103.195.148.0/22 +103.195.152.0/22 +103.195.160.0/22 +103.195.192.0/22 +103.196.60.0/22 +103.196.64.0/22 +103.196.72.0/22 +103.196.88.0/21 +103.196.96.0/22 +103.196.168.0/22 +103.196.185.0/24 +103.196.186.0/23 +103.196.204.0/22 +103.197.180.0/22 +103.197.228.0/22 +103.197.253.0/24 +103.197.254.0/23 +103.198.20.0/22 +103.198.60.0/22 +103.198.64.0/22 +103.198.72.0/22 +103.198.124.0/22 +103.198.156.0/22 +103.198.180.0/22 +103.198.196.0/22 +103.198.200.0/22 +103.198.216.0/21 +103.198.224.0/20 +103.198.240.0/21 +103.199.164.0/22 +103.199.196.0/22 +103.199.228.0/22 +103.199.248.0/21 +103.200.28.0/22 +103.200.32.0/22 +103.200.52.0/22 +103.200.64.0/21 +103.200.136.0/21 +103.200.144.0/20 +103.200.160.0/19 +103.200.192.0/22 +103.200.220.0/22 +103.200.224.0/19 +103.201.0.0/20 +103.201.16.0/21 +103.201.28.0/22 +103.201.32.0/19 +103.201.64.0/22 +103.201.76.0/22 +103.201.80.0/20 +103.201.96.0/20 +103.201.112.0/21 +103.201.120.0/22 +103.201.152.0/21 +103.201.160.0/19 +103.201.192.0/18 +103.202.0.0/19 +103.202.32.0/20 +103.202.56.0/21 +103.202.64.0/18 +103.202.128.0/20 +103.202.144.0/22 +103.202.152.0/21 +103.202.160.0/19 +103.202.192.0/20 +103.202.212.0/22 +103.202.228.0/22 +103.202.236.0/22 +103.202.240.0/20 +103.203.0.0/19 +103.203.32.0/22 +103.203.52.0/22 +103.203.56.0/22 +103.203.96.0/19 +103.203.128.0/22 +103.203.140.0/22 +103.203.164.0/22 +103.203.168.0/22 +103.203.192.0/22 +103.203.200.0/22 +103.203.212.0/22 +103.203.216.0/22 +103.204.24.0/22 +103.204.72.0/22 +103.204.88.0/22 +103.204.112.0/22 +103.204.136.0/21 +103.204.144.0/21 +103.204.152.0/22 +103.204.196.0/22 +103.204.232.0/21 +103.205.4.0/22 +103.205.8.0/22 +103.205.40.0/21 +103.205.52.0/22 +103.205.108.0/22 +103.205.116.0/22 +103.205.120.0/22 +103.205.136.0/22 +103.205.162.0/24 +103.205.188.0/22 +103.205.192.0/21 +103.205.200.0/22 +103.205.236.0/22 +103.205.248.0/21 +103.206.0.0/22 +103.206.44.0/22 +103.206.108.0/22 +103.206.148.0/22 +103.207.48.0/22 +103.207.104.0/22 +103.207.164.0/22 +103.207.184.0/21 +103.207.192.0/20 +103.207.208.0/21 +103.207.220.0/22 +103.207.228.0/22 +103.207.232.0/22 +103.208.12.0/22 +103.208.16.0/22 +103.208.28.0/22 +103.208.40.0/21 +103.208.48.0/22 +103.208.148.0/22 +103.209.112.0/22 +103.209.136.0/22 +103.209.200.0/22 +103.209.208.0/22 +103.209.216.0/22 +103.210.0.0/22 +103.210.20.0/22 +103.210.96.0/22 +103.210.156.0/22 +103.210.160.0/19 +103.210.216.0/22 +103.211.44.0/22 +103.211.96.0/21 +103.211.156.0/22 +103.211.164.0/22 +103.211.168.0/22 +103.211.192.0/22 +103.211.220.0/22 +103.211.224.0/22 +103.211.248.0/22 +103.212.0.0/20 +103.212.32.0/22 +103.212.44.0/22 +103.212.48.0/22 +103.212.84.0/22 +103.212.100.0/22 +103.212.104.0/21 +103.212.148.0/22 +103.212.164.0/22 +103.212.196.0/22 +103.212.200.0/22 +103.212.228.0/22 +103.212.252.0/22 +103.213.40.0/21 +103.213.48.0/20 +103.213.64.0/19 +103.213.96.0/22 +103.213.132.0/22 +103.213.136.0/21 +103.213.144.0/20 +103.213.160.0/19 +103.213.248.0/21 +103.214.32.0/22 +103.214.48.0/22 +103.214.84.0/22 +103.214.168.0/22 +103.214.212.0/22 +103.214.240.0/21 +103.215.28.0/22 +103.215.32.0/21 +103.215.44.0/22 +103.215.48.0/22 +103.215.100.0/22 +103.215.104.0/21 +103.215.116.0/22 +103.215.120.0/22 +103.215.140.0/22 +103.215.184.0/22 +103.215.228.0/22 +103.216.4.0/22 +103.216.8.0/21 +103.216.16.0/20 +103.216.32.0/20 +103.216.64.0/22 +103.216.108.0/22 +103.216.136.0/22 +103.216.152.0/22 +103.216.224.0/21 +103.216.240.0/20 +103.217.0.0/18 +103.217.168.0/22 +103.217.180.0/22 +103.217.184.0/21 +103.217.192.0/20 +103.218.0.0/22 +103.218.8.0/21 +103.218.16.0/21 +103.218.28.0/22 +103.218.32.0/19 +103.218.64.0/19 +103.218.184.0/22 +103.218.192.0/20 +103.218.208.0/21 +103.218.216.0/22 +103.219.24.0/21 +103.219.32.0/21 +103.219.64.0/22 +103.219.84.0/22 +103.219.88.0/21 +103.219.96.0/21 +103.219.176.0/22 +103.219.184.0/22 +103.220.48.0/20 +103.220.64.0/22 +103.220.92.0/22 +103.220.96.0/20 +103.220.116.0/22 +103.220.120.0/21 +103.220.128.0/20 +103.220.144.0/21 +103.220.152.0/22 +103.220.160.0/19 +103.220.192.0/21 +103.220.200.0/22 +103.220.240.0/20 +103.221.0.0/19 +103.221.32.0/20 +103.221.48.0/22 +103.221.88.0/21 +103.221.96.0/19 +103.221.128.0/18 +103.221.192.0/20 +103.222.0.0/20 +103.222.16.0/22 +103.222.24.0/21 +103.222.32.0/19 +103.222.64.0/18 +103.222.128.0/18 +103.222.192.0/19 +103.222.224.0/21 +103.222.232.0/22 +103.222.240.0/21 +103.223.16.0/20 +103.223.32.0/19 +103.223.64.0/18 +103.223.128.0/21 +103.223.140.0/22 +103.223.144.0/20 +103.223.160.0/20 +103.223.176.0/21 +103.223.188.0/22 +103.223.192.0/18 +103.224.0.0/22 +103.224.40.0/21 +103.224.60.0/22 +103.224.80.0/22 +103.224.220.0/22 +103.224.224.0/21 +103.224.232.0/22 +103.225.84.0/22 +103.226.16.0/22 +103.226.40.0/22 +103.226.56.0/21 +103.226.80.0/22 +103.226.116.0/22 +103.226.132.0/22 +103.226.156.0/22 +103.226.180.0/22 +103.226.196.0/22 +103.227.48.0/22 +103.227.72.0/21 +103.227.80.0/22 +103.227.100.0/22 +103.227.120.0/22 +103.227.132.0/22 +103.227.136.0/22 +103.227.196.0/22 +103.227.204.0/22 +103.227.212.0/22 +103.227.228.0/22 +103.228.12.0/22 +103.228.28.0/22 +103.228.68.0/22 +103.228.88.0/22 +103.228.128.0/22 +103.228.136.0/22 +103.228.160.0/22 +103.228.176.0/22 +103.228.204.0/22 +103.228.208.0/22 +103.228.228.0/22 +103.228.232.0/22 +103.229.20.0/22 +103.229.60.0/22 +103.229.136.0/22 +103.229.148.0/22 +103.229.172.0/22 +103.229.212.0/22 +103.229.216.0/21 +103.229.228.0/22 +103.229.236.0/22 +103.229.240.0/22 +103.230.0.0/22 +103.230.28.0/22 +103.230.40.0/21 +103.230.96.0/22 +103.230.196.0/22 +103.230.200.0/21 +103.230.212.0/22 +103.230.236.0/22 +103.231.16.0/21 +103.231.64.0/21 +103.231.144.0/22 +103.231.180.0/22 +103.231.184.0/22 +103.231.244.0/22 +103.232.4.0/22 +103.232.144.0/22 +103.232.188.0/22 +103.232.212.0/22 +103.233.4.0/22 +103.233.44.0/22 +103.233.52.0/22 +103.233.104.0/22 +103.233.128.0/22 +103.233.136.0/22 +103.233.228.0/22 +103.234.0.0/22 +103.234.20.0/22 +103.234.56.0/22 +103.234.124.0/22 +103.234.128.0/22 +103.234.172.0/22 +103.234.180.0/22 +103.234.244.0/22 +103.235.16.0/22 +103.235.48.0/22 +103.235.56.0/21 +103.235.80.0/21 +103.235.128.0/20 +103.235.144.0/21 +103.235.184.0/22 +103.235.192.0/22 +103.235.200.0/22 +103.235.220.0/22 +103.235.224.0/19 +103.236.0.0/18 +103.236.64.0/19 +103.236.96.0/22 +103.236.120.0/22 +103.236.184.0/22 +103.236.220.0/22 +103.236.232.0/22 +103.236.240.0/20 +103.237.0.0/20 +103.237.24.0/21 +103.237.68.0/22 +103.237.88.0/22 +103.237.152.0/22 +103.237.176.0/20 +103.237.192.0/18 +103.238.0.0/21 +103.238.16.0/20 +103.238.32.0/20 +103.238.48.0/21 +103.238.56.0/22 +103.238.88.0/21 +103.238.96.0/22 +103.238.132.0/22 +103.238.140.0/22 +103.238.144.0/22 +103.238.160.0/19 +103.238.196.0/22 +103.238.204.0/22 +103.238.252.0/22 +103.239.0.0/22 +103.239.44.0/22 +103.239.68.0/22 +103.239.96.0/22 +103.239.152.0/21 +103.239.176.0/21 +103.239.184.0/22 +103.239.192.0/21 +103.239.204.0/22 +103.239.208.0/22 +103.239.224.0/22 +103.239.244.0/22 +103.240.16.0/22 +103.240.36.0/22 +103.240.72.0/22 +103.240.84.0/22 +103.240.124.0/22 +103.240.156.0/22 +103.240.172.0/22 +103.240.188.0/22 +103.240.244.0/22 +103.241.12.0/22 +103.241.72.0/22 +103.241.92.0/22 +103.241.96.0/22 +103.241.160.0/22 +103.241.184.0/21 +103.241.220.0/22 +103.242.64.0/22 +103.242.128.0/21 +103.242.160.0/22 +103.242.168.0/21 +103.242.176.0/22 +103.242.200.0/22 +103.242.212.0/22 +103.242.220.0/22 +103.242.240.0/22 +103.243.136.0/22 +103.243.252.0/22 +103.244.16.0/22 +103.244.58.0/23 +103.244.60.0/22 +103.244.64.0/20 +103.244.80.0/21 +103.244.116.0/22 +103.244.164.0/22 +103.244.232.0/22 +103.244.252.0/22 +103.245.23.0/24 +103.245.52.0/22 +103.245.60.0/22 +103.245.80.0/22 +103.245.124.0/22 +103.245.128.0/22 +103.246.8.0/21 +103.246.120.0/21 +103.246.132.0/22 +103.246.152.0/21 +103.247.168.0/21 +103.247.176.0/22 +103.247.200.0/22 +103.247.212.0/22 +103.248.0.0/23 +103.248.64.0/22 +103.248.100.0/22 +103.248.124.0/22 +103.248.152.0/22 +103.248.168.0/22 +103.248.192.0/22 +103.248.212.0/22 +103.248.220.0/22 +103.248.224.0/21 +103.249.8.0/21 +103.249.52.0/22 +103.249.104.0/22 +103.249.128.0/22 +103.249.136.0/22 +103.249.144.0/22 +103.249.164.0/22 +103.249.168.0/21 +103.249.176.0/22 +103.249.188.0/22 +103.249.192.0/22 +103.249.244.0/22 +103.249.252.0/22 +103.250.32.0/22 +103.250.104.0/22 +103.250.124.0/22 +103.250.180.0/22 +103.250.192.0/22 +103.250.216.0/22 +103.250.224.0/22 +103.250.236.0/22 +103.250.248.0/21 +103.251.32.0/21 +103.251.84.0/22 +103.251.96.0/22 +103.251.124.0/22 +103.251.128.0/22 +103.251.160.0/22 +103.251.192.0/22 +103.251.204.0/22 +103.251.236.0/22 +103.251.240.0/22 +103.252.28.0/22 +103.252.36.0/22 +103.252.64.0/22 +103.252.96.0/22 +103.252.104.0/22 +103.252.172.0/22 +103.252.204.0/22 +103.252.208.0/22 +103.252.232.0/22 +103.252.248.0/22 +103.253.4.0/22 +103.253.60.0/22 +103.253.204.0/22 +103.253.220.0/22 +103.253.224.0/22 +103.253.232.0/22 +103.254.8.0/22 +103.254.20.0/22 +103.254.64.0/20 +103.254.112.0/22 +103.254.176.0/22 +103.254.188.0/22 +103.254.196.0/24 +103.254.220.0/22 +103.255.56.0/22 +103.255.68.0/22 +103.255.88.0/21 +103.255.136.0/21 +103.255.184.0/22 +103.255.200.0/22 +103.255.208.0/21 +103.255.228.0/22 +104.166.103.0/24 +104.222.196.0/24 +106.0.0.0/24 +106.0.2.0/23 +106.0.4.0/22 +106.0.8.0/21 +106.0.16.0/20 +106.0.44.0/22 +106.0.64.0/18 +106.2.0.0/15 +106.4.0.0/14 +106.8.0.0/15 +106.11.0.0/16 +106.12.0.0/14 +106.16.0.0/12 +106.32.0.0/12 +106.48.0.0/15 +106.50.0.0/16 +106.52.0.0/14 +106.56.0.0/13 +106.74.0.0/15 +106.80.0.0/12 +106.108.0.0/14 +106.112.0.0/12 +106.224.0.0/12 +109.71.4.0/24 +109.244.0.0/16 +110.6.0.0/15 +110.16.0.0/14 +110.34.40.0/21 +110.40.0.0/14 +110.44.12.0/22 +110.44.144.0/20 +110.48.0.0/16 +110.51.0.0/16 +110.52.0.0/15 +110.56.0.0/13 +110.64.0.0/15 +110.72.0.0/15 +110.75.0.0/16 +110.76.0.0/18 +110.76.132.0/22 +110.76.156.0/22 +110.76.184.0/22 +110.76.192.0/18 +110.77.0.0/17 +110.80.0.0/13 +110.88.0.0/14 +110.92.68.0/22 +110.93.32.0/19 +110.94.0.0/15 +110.96.0.0/11 +110.152.0.0/14 +110.156.0.0/15 +110.165.32.0/19 +110.166.0.0/15 +110.172.192.0/18 +110.173.0.0/19 +110.173.32.0/20 +110.173.64.0/18 +110.173.192.0/19 +110.176.0.0/12 +110.192.0.0/11 +110.228.0.0/14 +110.232.32.0/19 +110.236.0.0/15 +110.240.0.0/12 +111.0.0.0/10 +111.66.0.0/16 +111.67.192.0/20 +111.68.64.0/19 +111.72.0.0/13 +111.85.0.0/16 +111.91.192.0/19 +111.92.248.0/21 +111.112.0.0/14 +111.116.0.0/15 +111.118.200.0/21 +111.119.64.0/18 +111.119.128.0/19 +111.120.0.0/14 +111.124.0.0/16 +111.126.0.0/15 +111.128.0.0/11 +111.160.0.0/13 +111.170.0.0/16 +111.172.0.0/14 +111.176.0.0/13 +111.186.0.0/15 +111.192.0.0/12 +111.208.0.0/13 +111.221.28.0/24 +111.221.128.0/17 +111.222.0.0/16 +111.223.4.0/22 +111.223.8.0/21 +111.223.16.0/22 +111.223.240.0/22 +111.223.248.0/22 +111.224.0.0/13 +111.235.96.0/19 +111.235.156.0/22 +111.235.160.0/19 +112.0.0.0/10 +112.64.0.0/14 +112.73.0.0/16 +112.74.0.0/15 +112.80.0.0/12 +112.96.0.0/13 +112.109.128.0/17 +112.111.0.0/16 +112.112.0.0/14 +112.116.0.0/15 +112.122.0.0/15 +112.124.0.0/14 +112.128.0.0/14 +112.132.0.0/16 +112.137.48.0/21 +112.192.0.0/14 +112.224.0.0/11 +113.0.0.0/13 +113.8.0.0/15 +113.11.192.0/19 +113.12.0.0/14 +113.16.0.0/15 +113.18.0.0/16 +113.21.232.0/21 +113.24.0.0/14 +113.31.0.0/16 +113.44.0.0/14 +113.48.0.0/14 +113.52.160.0/19 +113.52.228.0/22 +113.54.0.0/15 +113.56.0.0/15 +113.58.0.0/16 +113.59.0.0/17 +113.59.224.0/22 +113.62.0.0/15 +113.64.0.0/10 +113.128.0.0/15 +113.130.96.0/20 +113.130.112.0/21 +113.132.0.0/14 +113.136.0.0/13 +113.194.0.0/15 +113.197.100.0/22 +113.197.104.0/22 +113.200.0.0/15 +113.202.0.0/16 +113.204.0.0/14 +113.208.96.0/19 +113.208.128.0/17 +113.209.0.0/16 +113.212.0.0/18 +113.212.100.0/22 +113.212.184.0/21 +113.213.0.0/17 +113.214.0.0/15 +113.218.0.0/15 +113.220.0.0/14 +113.224.0.0/12 +113.240.0.0/13 +113.248.0.0/14 +114.28.0.0/16 +114.31.64.0/21 +114.54.0.0/15 +114.60.0.0/14 +114.64.0.0/14 +114.68.0.0/16 +114.79.64.0/18 +114.80.0.0/12 +114.96.0.0/13 +114.104.0.0/14 +114.110.0.0/20 +114.110.64.0/18 +114.111.0.0/19 +114.111.160.0/19 +114.112.0.0/13 +114.132.0.0/16 +114.135.0.0/16 +114.138.0.0/15 +114.141.64.0/21 +114.141.80.0/21 +114.141.128.0/18 +114.196.0.0/15 +114.198.248.0/21 +114.208.0.0/12 +114.224.0.0/11 +115.24.0.0/14 +115.28.0.0/15 +115.31.64.0/20 +115.32.0.0/14 +115.42.56.0/22 +115.44.0.0/14 +115.48.0.0/12 +115.69.64.0/20 +115.84.0.0/18 +115.84.192.0/19 +115.85.192.0/18 +115.100.0.0/14 +115.104.0.0/14 +115.120.0.0/14 +115.124.16.0/20 +115.148.0.0/14 +115.152.0.0/13 +115.166.64.0/19 +115.168.0.0/13 +115.180.0.0/14 +115.187.0.0/20 +115.190.0.0/15 +115.192.0.0/11 +115.224.0.0/12 +116.0.8.0/21 +116.0.24.0/21 +116.1.0.0/16 +116.2.0.0/15 +116.4.0.0/14 +116.8.0.0/14 +116.13.0.0/16 +116.16.0.0/12 +116.50.0.0/20 +116.52.0.0/14 +116.56.0.0/15 +116.58.128.0/20 +116.58.208.0/20 +116.60.0.0/14 +116.66.0.0/17 +116.66.176.0/22 +116.68.136.0/21 +116.68.176.0/21 +116.69.0.0/16 +116.70.0.0/17 +116.76.0.0/14 +116.85.0.0/16 +116.89.144.0/20 +116.89.240.0/22 +116.90.80.0/20 +116.90.184.0/21 +116.95.0.0/16 +116.112.0.0/14 +116.116.0.0/15 +116.128.0.0/10 +116.192.0.0/16 +116.193.16.0/20 +116.193.32.0/19 +116.193.152.0/22 +116.193.164.0/22 +116.193.176.0/21 +116.194.0.0/15 +116.196.0.0/16 +116.197.160.0/21 +116.197.180.0/23 +116.198.0.0/16 +116.199.0.0/17 +116.199.128.0/19 +116.204.0.0/15 +116.206.92.0/22 +116.206.100.0/22 +116.206.176.0/22 +116.207.0.0/16 +116.208.0.0/14 +116.212.160.0/20 +116.213.44.0/22 +116.213.64.0/18 +116.213.128.0/17 +116.214.32.0/19 +116.214.64.0/20 +116.214.128.0/17 +116.215.0.0/16 +116.216.0.0/14 +116.224.0.0/12 +116.242.0.0/15 +116.244.0.0/14 +116.248.0.0/15 +116.251.64.0/18 +116.252.0.0/15 +116.254.104.0/21 +116.254.128.0/17 +116.255.128.0/17 +117.8.0.0/13 +117.21.0.0/16 +117.22.0.0/15 +117.24.0.0/13 +117.32.0.0/13 +117.40.0.0/14 +117.44.0.0/15 +117.48.0.0/14 +117.53.48.0/20 +117.53.176.0/20 +117.57.0.0/16 +117.58.0.0/17 +117.59.0.0/16 +117.60.0.0/14 +117.64.0.0/13 +117.72.0.0/15 +117.74.64.0/19 +117.74.128.0/17 +117.75.0.0/16 +117.76.0.0/14 +117.80.0.0/12 +117.100.0.0/15 +117.103.16.0/20 +117.103.40.0/21 +117.103.72.0/21 +117.103.128.0/20 +117.104.168.0/21 +117.106.0.0/15 +117.112.0.0/13 +117.120.64.0/18 +117.120.128.0/17 +117.121.0.0/17 +117.121.128.0/18 +117.121.192.0/21 +117.122.128.0/17 +117.124.0.0/14 +117.128.0.0/10 +118.24.0.0/15 +118.26.0.0/16 +118.28.0.0/14 +118.64.0.0/15 +118.66.0.0/16 +118.67.112.0/20 +118.72.0.0/13 +118.80.0.0/15 +118.84.0.0/15 +118.88.32.0/19 +118.88.64.0/18 +118.88.128.0/17 +118.89.0.0/16 +118.91.240.0/20 +118.102.16.0/20 +118.102.32.0/21 +118.103.164.0/22 +118.103.168.0/21 +118.103.176.0/22 +118.103.245.0/24 +118.103.246.0/23 +118.107.180.0/22 +118.112.0.0/13 +118.120.0.0/14 +118.124.0.0/15 +118.126.0.0/16 +118.127.128.0/19 +118.132.0.0/14 +118.144.0.0/14 +118.178.0.0/16 +118.180.0.0/14 +118.184.0.0/16 +118.186.0.0/15 +118.188.0.0/16 +118.190.0.0/15 +118.192.0.0/16 +118.193.0.0/20 +118.193.32.0/19 +118.193.64.0/20 +118.193.96.0/19 +118.193.128.0/17 +118.194.0.0/15 +118.196.0.0/14 +118.202.0.0/15 +118.204.0.0/14 +118.212.0.0/15 +118.215.192.0/18 +118.224.0.0/14 +118.228.0.0/15 +118.230.0.0/16 +118.239.0.0/16 +118.242.0.0/16 +118.244.0.0/14 +118.248.0.0/13 +119.0.0.0/15 +119.2.0.0/19 +119.2.128.0/17 +119.3.0.0/16 +119.4.0.0/14 +119.8.0.0/16 +119.10.0.0/17 +119.15.136.0/21 +119.16.0.0/16 +119.18.192.0/20 +119.18.208.0/21 +119.18.224.0/19 +119.19.0.0/16 +119.20.0.0/14 +119.27.64.0/18 +119.27.128.0/17 +119.28.0.0/15 +119.30.48.0/20 +119.31.192.0/19 +119.32.0.0/13 +119.40.0.0/18 +119.40.64.0/20 +119.40.128.0/17 +119.41.0.0/16 +119.42.0.0/19 +119.42.52.0/22 +119.42.128.0/20 +119.42.224.0/19 +119.44.0.0/15 +119.48.0.0/13 +119.57.0.0/16 +119.58.0.0/16 +119.59.128.0/17 +119.60.0.0/15 +119.62.0.0/16 +119.63.32.0/19 +119.75.208.0/20 +119.78.0.0/15 +119.80.0.0/16 +119.82.208.0/20 +119.84.0.0/14 +119.88.0.0/14 +119.96.0.0/13 +119.108.0.0/15 +119.112.0.0/12 +119.128.0.0/12 +119.144.0.0/14 +119.148.160.0/19 +119.151.192.0/18 +119.160.200.0/21 +119.161.120.0/21 +119.161.128.0/17 +119.162.0.0/15 +119.164.0.0/14 +119.176.0.0/12 +119.232.0.0/15 +119.235.128.0/18 +119.248.0.0/14 +119.252.96.0/21 +119.252.240.0/20 +119.253.0.0/16 +119.254.0.0/15 +120.0.0.0/12 +120.24.0.0/14 +120.30.0.0/15 +120.32.0.0/12 +120.48.0.0/15 +120.52.0.0/14 +120.64.0.0/13 +120.72.32.0/19 +120.72.128.0/17 +120.76.0.0/14 +120.80.0.0/13 +120.88.8.0/21 +120.90.0.0/15 +120.92.0.0/16 +120.94.0.0/15 +120.128.0.0/13 +120.136.16.0/21 +120.136.128.0/18 +120.137.0.0/17 +120.143.128.0/19 +120.192.0.0/10 +121.0.8.0/21 +121.0.16.0/20 +121.4.0.0/15 +121.8.0.0/13 +121.16.0.0/12 +121.32.0.0/13 +121.40.0.0/14 +121.46.0.0/18 +121.46.76.0/22 +121.46.128.0/17 +121.47.0.0/16 +121.48.0.0/15 +121.50.8.0/21 +121.51.0.0/16 +121.52.160.0/19 +121.52.208.0/20 +121.52.224.0/19 +121.54.176.0/21 +121.54.188.0/22 +121.55.0.0/18 +121.56.0.0/15 +121.58.0.0/17 +121.58.136.0/21 +121.58.144.0/20 +121.58.160.0/21 +121.59.0.0/16 +121.60.0.0/14 +121.68.0.0/14 +121.76.0.0/15 +121.79.128.0/18 +121.89.0.0/16 +121.100.128.0/17 +121.101.0.0/18 +121.101.208.0/20 +121.192.0.0/13 +121.200.192.0/21 +121.201.0.0/16 +121.204.0.0/14 +121.224.0.0/12 +121.248.0.0/14 +121.255.0.0/16 +122.0.64.0/18 +122.0.128.0/17 +122.4.0.0/14 +122.8.0.0/15 +122.10.128.0/17 +122.11.0.0/17 +122.12.0.0/15 +122.14.0.0/16 +122.48.0.0/16 +122.49.0.0/18 +122.51.0.0/16 +122.64.0.0/11 +122.96.0.0/15 +122.98.144.0/20 +122.98.160.0/21 +122.98.172.0/22 +122.98.176.0/20 +122.98.192.0/21 +122.98.232.0/21 +122.98.240.0/20 +122.102.0.0/20 +122.102.64.0/19 +122.112.0.0/14 +122.119.0.0/16 +122.128.100.0/22 +122.128.120.0/21 +122.136.0.0/13 +122.144.128.0/17 +122.152.192.0/18 +122.156.0.0/14 +122.188.0.0/14 +122.192.0.0/14 +122.198.0.0/16 +122.200.40.0/21 +122.200.64.0/18 +122.201.48.0/20 +122.204.0.0/14 +122.224.0.0/12 +122.240.0.0/13 +122.248.24.0/21 +122.248.48.0/20 +122.255.64.0/21 +123.0.128.0/18 +123.4.0.0/14 +123.8.0.0/13 +123.49.128.0/17 +123.50.160.0/19 +123.52.0.0/14 +123.56.0.0/14 +123.60.0.0/15 +123.62.0.0/16 +123.64.0.0/11 +123.96.0.0/15 +123.98.0.0/17 +123.99.128.0/17 +123.100.0.0/19 +123.100.232.0/24 +123.101.0.0/16 +123.103.0.0/17 +123.108.128.0/20 +123.108.208.0/20 +123.112.0.0/12 +123.128.0.0/13 +123.136.80.0/20 +123.137.0.0/16 +123.138.0.0/15 +123.144.0.0/12 +123.160.0.0/12 +123.176.60.0/22 +123.176.80.0/20 +123.177.0.0/16 +123.178.0.0/15 +123.180.0.0/14 +123.184.0.0/13 +123.196.0.0/15 +123.199.128.0/17 +123.206.0.0/15 +123.232.0.0/14 +123.242.0.0/17 +123.242.192.0/21 +123.244.0.0/14 +123.249.0.0/16 +123.253.0.0/16 +123.254.96.0/21 +124.6.64.0/18 +124.14.0.0/15 +124.16.0.0/15 +124.20.0.0/14 +124.28.192.0/18 +124.29.0.0/17 +124.31.0.0/16 +124.40.112.0/20 +124.40.128.0/18 +124.40.192.0/19 +124.40.240.0/22 +124.42.0.0/16 +124.47.0.0/18 +124.64.0.0/15 +124.66.0.0/17 +124.67.0.0/16 +124.68.0.0/14 +124.72.0.0/13 +124.88.0.0/13 +124.108.8.0/21 +124.108.40.0/21 +124.109.96.0/21 +124.112.0.0/13 +124.126.0.0/15 +124.128.0.0/13 +124.147.128.0/17 +124.150.137.0/24 +124.151.0.0/16 +124.152.0.0/16 +124.160.0.0/13 +124.172.0.0/14 +124.192.0.0/15 +124.196.0.0/16 +124.200.0.0/13 +124.220.0.0/14 +124.224.0.0/12 +124.240.0.0/17 +124.240.128.0/18 +124.242.0.0/16 +124.243.192.0/18 +124.248.0.0/17 +124.249.0.0/16 +124.250.0.0/15 +124.254.0.0/18 +125.31.192.0/18 +125.32.0.0/12 +125.58.128.0/17 +125.61.128.0/17 +125.62.0.0/18 +125.64.0.0/11 +125.96.0.0/15 +125.98.0.0/16 +125.104.0.0/13 +125.112.0.0/12 +125.169.0.0/16 +125.171.0.0/16 +125.208.0.0/18 +125.210.0.0/15 +125.213.0.0/17 +125.214.96.0/19 +125.215.0.0/18 +125.216.0.0/13 +125.254.128.0/17 +128.108.0.0/16 +129.28.0.0/16 +129.204.0.0/16 +129.211.0.0/16 +129.223.254.0/24 +130.214.218.0/23 +131.228.96.0/24 +131.253.12.0/29 +131.253.12.80/28 +131.253.12.240/29 +132.232.0.0/16 +132.237.134.0/24 +132.237.150.0/24 +134.175.0.0/16 +135.159.208.0/20 +135.244.80.0/20 +137.59.59.0/24 +137.59.88.0/22 +138.32.244.0/22 +139.5.56.0/21 +139.5.80.0/22 +139.5.92.0/22 +139.5.108.0/22 +139.5.128.0/22 +139.5.160.0/22 +139.5.192.0/22 +139.5.204.0/22 +139.5.208.0/21 +139.5.244.0/22 +139.9.0.0/16 +139.129.0.0/16 +139.148.0.0/16 +139.155.0.0/16 +139.159.0.0/16 +139.170.0.0/16 +139.176.0.0/16 +139.183.0.0/16 +139.186.0.0/16 +139.189.0.0/16 +139.196.0.0/14 +139.200.0.0/13 +139.208.0.0/13 +139.217.0.0/16 +139.219.0.0/16 +139.220.0.0/15 +139.224.0.0/16 +139.226.0.0/15 +140.75.0.0/16 +140.101.208.0/24 +140.143.0.0/16 +140.179.0.0/16 +140.205.0.0/16 +140.206.0.0/15 +140.210.0.0/16 +140.224.0.0/16 +140.237.0.0/16 +140.240.0.0/16 +140.242.216.0/24 +140.242.223.0/24 +140.242.224.0/24 +140.243.0.0/16 +140.246.0.0/16 +140.249.0.0/16 +140.250.0.0/16 +140.255.0.0/16 +144.0.0.0/16 +144.7.0.0/16 +144.12.0.0/16 +144.36.146.0/23 +144.48.8.0/21 +144.48.64.0/22 +144.48.88.0/22 +144.48.156.0/22 +144.48.180.0/22 +144.48.184.0/22 +144.48.204.0/22 +144.48.208.0/21 +144.48.220.0/22 +144.48.252.0/22 +144.52.0.0/16 +144.123.0.0/16 +144.211.80.0/24 +144.211.138.0/24 +144.255.0.0/16 +146.56.192.0/18 +146.196.56.0/22 +146.196.68.0/22 +146.196.72.0/22 +146.196.92.0/22 +146.196.112.0/21 +146.196.124.0/22 +146.217.137.0/24 +146.222.79.0/24 +146.222.81.0/24 +146.222.94.0/24 +147.243.13.32/27 +147.243.13.64/27 +148.70.0.0/16 +150.0.0.0/16 +150.115.0.0/16 +150.121.0.0/16 +150.122.0.0/16 +150.129.136.0/22 +150.129.192.0/22 +150.129.216.0/22 +150.129.252.0/22 +150.138.0.0/15 +150.158.0.0/16 +150.223.0.0/16 +150.242.0.0/21 +150.242.8.0/22 +150.242.28.0/22 +150.242.44.0/22 +150.242.48.0/21 +150.242.56.0/22 +150.242.76.0/22 +150.242.80.0/22 +150.242.92.0/22 +150.242.96.0/22 +150.242.112.0/21 +150.242.120.0/22 +150.242.152.0/21 +150.242.160.0/21 +150.242.168.0/22 +150.242.184.0/21 +150.242.192.0/22 +150.242.212.0/22 +150.242.224.0/20 +150.242.240.0/21 +150.242.248.0/22 +150.255.0.0/16 +152.32.136.0/21 +152.32.144.0/20 +152.32.160.0/19 +152.32.192.0/18 +152.104.128.0/17 +152.136.0.0/16 +153.0.0.0/16 +153.3.0.0/16 +153.34.0.0/15 +153.36.0.0/15 +153.99.0.0/16 +153.101.0.0/16 +153.118.0.0/15 +154.8.128.0/17 +156.107.160.0/24 +156.107.170.0/24 +157.0.0.0/16 +157.18.0.0/16 +157.61.0.0/16 +157.119.0.0/22 +157.119.8.0/21 +157.119.16.0/22 +157.119.28.0/22 +157.119.68.0/22 +157.119.112.0/22 +157.119.132.0/22 +157.119.136.0/21 +157.119.144.0/20 +157.119.160.0/21 +157.119.172.0/22 +157.119.192.0/21 +157.119.240.0/22 +157.119.252.0/22 +157.122.0.0/16 +157.133.186.0/23 +157.133.192.0/21 +157.133.212.0/24 +157.133.236.0/24 +157.148.0.0/16 +157.156.0.0/16 +157.255.0.0/16 +159.75.0.0/16 +159.153.120.0/22 +159.226.0.0/16 +160.19.208.0/21 +160.19.216.0/22 +160.20.48.0/22 +160.62.10.0/24 +160.83.109.0/24 +160.83.110.0/23 +160.202.60.0/22 +160.202.148.0/22 +160.202.152.0/22 +160.202.168.0/22 +160.202.212.0/22 +160.202.216.0/21 +160.202.224.0/19 +160.238.64.0/22 +161.163.0.0/21 +161.163.28.0/23 +161.163.176.0/24 +161.163.178.0/23 +161.163.180.0/22 +161.189.0.0/16 +161.207.0.0/16 +162.14.0.0/16 +162.105.0.0/16 +163.0.0.0/16 +163.47.4.0/22 +163.53.0.0/20 +163.53.36.0/22 +163.53.40.0/21 +163.53.48.0/20 +163.53.64.0/22 +163.53.88.0/21 +163.53.96.0/19 +163.53.128.0/21 +163.53.136.0/22 +163.53.160.0/20 +163.53.188.0/22 +163.53.220.0/22 +163.53.236.0/22 +163.53.240.0/22 +163.125.0.0/16 +163.142.0.0/16 +163.177.0.0/16 +163.179.0.0/16 +163.204.0.0/16 +163.244.246.0/24 +164.52.0.0/17 +165.156.30.0/24 +166.111.0.0/16 +167.139.0.0/16 +167.189.0.0/16 +167.220.244.0/22 +168.159.144.0/21 +168.159.152.0/22 +168.159.156.0/23 +168.159.158.0/24 +168.160.0.0/16 +168.230.0.0/24 +170.179.0.0/16 +170.225.224.0/23 +170.252.152.0/21 +171.8.0.0/13 +171.34.0.0/15 +171.36.0.0/14 +171.40.0.0/13 +171.80.0.0/12 +171.104.0.0/13 +171.112.0.0/12 +171.208.0.0/12 +172.81.192.0/18 +175.0.0.0/12 +175.16.0.0/13 +175.24.0.0/14 +175.30.0.0/15 +175.42.0.0/15 +175.44.0.0/16 +175.46.0.0/15 +175.48.0.0/12 +175.64.0.0/11 +175.102.0.0/16 +175.106.128.0/17 +175.111.108.0/22 +175.111.144.0/20 +175.111.160.0/20 +175.111.184.0/22 +175.146.0.0/15 +175.148.0.0/14 +175.152.0.0/14 +175.158.96.0/22 +175.160.0.0/12 +175.176.156.0/22 +175.176.176.0/22 +175.176.188.0/22 +175.176.192.0/22 +175.178.0.0/16 +175.184.128.0/18 +175.185.0.0/16 +175.186.0.0/15 +175.188.0.0/14 +180.76.0.0/14 +180.84.0.0/15 +180.86.0.0/16 +180.88.0.0/14 +180.94.56.0/21 +180.94.96.0/20 +180.94.120.0/21 +180.95.128.0/17 +180.96.0.0/11 +180.129.128.0/17 +180.130.0.0/16 +180.136.0.0/13 +180.148.16.0/21 +180.148.152.0/21 +180.148.216.0/21 +180.148.224.0/19 +180.149.128.0/19 +180.149.236.0/22 +180.150.160.0/19 +180.152.0.0/13 +180.160.0.0/12 +180.178.112.0/21 +180.178.192.0/18 +180.184.0.0/14 +180.188.0.0/17 +180.189.148.0/22 +180.200.252.0/22 +180.201.0.0/16 +180.202.0.0/15 +180.208.0.0/15 +180.210.212.0/22 +180.210.224.0/19 +180.212.0.0/15 +180.222.224.0/19 +180.223.0.0/16 +180.233.0.0/18 +180.233.64.0/19 +180.233.144.0/22 +180.235.64.0/19 +180.235.112.0/22 +180.235.136.0/22 +182.16.144.0/21 +182.16.192.0/19 +182.18.0.0/17 +182.23.184.0/21 +182.23.200.0/21 +182.32.0.0/12 +182.48.96.0/19 +182.49.0.0/16 +182.50.0.0/20 +182.50.112.0/20 +182.51.0.0/16 +182.54.0.0/17 +182.54.244.0/22 +182.61.0.0/16 +182.80.0.0/13 +182.88.0.0/14 +182.92.0.0/16 +182.96.0.0/11 +182.128.0.0/12 +182.144.0.0/13 +182.157.0.0/16 +182.160.64.0/19 +182.174.0.0/15 +182.200.0.0/13 +182.236.128.0/17 +182.237.24.0/21 +182.238.0.0/16 +182.239.0.0/19 +182.240.0.0/13 +182.254.0.0/16 +182.255.36.0/22 +182.255.60.0/22 +183.0.0.0/10 +183.64.0.0/13 +183.78.160.0/21 +183.78.180.0/22 +183.81.172.0/22 +183.81.180.0/22 +183.84.0.0/15 +183.91.128.0/22 +183.91.136.0/21 +183.91.144.0/20 +183.92.0.0/14 +183.128.0.0/11 +183.160.0.0/13 +183.168.0.0/15 +183.170.0.0/16 +183.172.0.0/14 +183.182.0.0/19 +183.184.0.0/13 +183.192.0.0/10 +185.109.236.0/24 +188.65.16.0/22 +188.131.128.0/17 +192.11.23.0/24 +192.11.26.0/24 +192.11.39.0/24 +192.11.236.0/24 +192.23.191.0/24 +192.55.10.0/23 +192.55.40.0/24 +192.55.46.0/24 +192.55.68.0/22 +192.102.204.0/22 +192.124.154.0/24 +192.137.31.0/24 +192.139.135.0/24 +192.139.136.0/24 +192.140.128.0/21 +192.140.136.0/22 +192.140.156.0/22 +192.140.160.0/19 +192.140.192.0/20 +192.140.208.0/21 +192.144.128.0/17 +192.163.11.0/24 +192.232.97.0/24 +193.20.64.0/22 +193.112.0.0/16 +194.138.202.0/23 +198.175.100.0/22 +198.208.17.0/24 +199.7.72.0/24 +199.65.192.0/21 +199.244.144.0/24 +202.0.100.0/23 +202.0.122.0/23 +202.0.176.0/22 +202.1.105.0/24 +202.1.106.0/24 +202.3.128.0/23 +202.4.128.0/19 +202.4.252.0/22 +202.5.208.0/21 +202.5.216.0/22 +202.6.6.0/23 +202.6.66.0/23 +202.6.72.0/23 +202.6.87.0/24 +202.6.88.0/23 +202.6.92.0/23 +202.6.103.0/24 +202.6.108.0/24 +202.6.110.0/23 +202.6.114.0/24 +202.6.176.0/20 +202.8.0.0/24 +202.8.2.0/23 +202.8.4.0/23 +202.8.12.0/24 +202.8.24.0/24 +202.8.77.0/24 +202.8.128.0/19 +202.8.192.0/20 +202.9.32.0/24 +202.9.34.0/23 +202.9.48.0/23 +202.9.51.0/24 +202.9.52.0/23 +202.9.54.0/24 +202.9.57.0/24 +202.9.58.0/23 +202.10.64.0/20 +202.10.112.0/20 +202.12.1.0/24 +202.12.2.0/24 +202.12.17.0/24 +202.12.18.0/23 +202.12.72.0/24 +202.12.84.0/23 +202.12.96.0/24 +202.12.98.0/23 +202.12.106.0/24 +202.12.111.0/24 +202.12.116.0/24 +202.14.64.0/23 +202.14.69.0/24 +202.14.73.0/24 +202.14.74.0/23 +202.14.76.0/24 +202.14.78.0/23 +202.14.88.0/24 +202.14.97.0/24 +202.14.104.0/23 +202.14.108.0/23 +202.14.111.0/24 +202.14.114.0/23 +202.14.118.0/23 +202.14.124.0/23 +202.14.127.0/24 +202.14.129.0/24 +202.14.135.0/24 +202.14.136.0/24 +202.14.149.0/24 +202.14.151.0/24 +202.14.157.0/24 +202.14.158.0/23 +202.14.169.0/24 +202.14.170.0/23 +202.14.172.0/22 +202.14.176.0/24 +202.14.184.0/23 +202.14.208.0/23 +202.14.213.0/24 +202.14.219.0/24 +202.14.220.0/24 +202.14.222.0/23 +202.14.225.0/24 +202.14.226.0/23 +202.14.231.0/24 +202.14.235.0/24 +202.14.236.0/22 +202.14.246.0/24 +202.14.251.0/24 +202.20.66.0/24 +202.20.79.0/24 +202.20.87.0/24 +202.20.88.0/23 +202.20.90.0/24 +202.20.94.0/23 +202.20.114.0/24 +202.20.117.0/24 +202.20.120.0/24 +202.20.125.0/24 +202.20.126.0/23 +202.21.48.0/20 +202.21.131.0/24 +202.21.132.0/24 +202.21.141.0/24 +202.21.142.0/24 +202.21.147.0/24 +202.21.148.0/24 +202.21.150.0/23 +202.21.152.0/23 +202.21.154.0/24 +202.21.156.0/24 +202.21.208.0/24 +202.22.248.0/21 +202.27.12.0/24 +202.27.14.0/24 +202.27.136.0/23 +202.36.226.0/24 +202.38.0.0/22 +202.38.8.0/21 +202.38.48.0/20 +202.38.64.0/18 +202.38.128.0/21 +202.38.136.0/23 +202.38.138.0/24 +202.38.140.0/22 +202.38.146.0/23 +202.38.149.0/24 +202.38.150.0/23 +202.38.152.0/22 +202.38.156.0/24 +202.38.158.0/23 +202.38.160.0/23 +202.38.164.0/22 +202.38.168.0/22 +202.38.176.0/23 +202.38.184.0/21 +202.38.192.0/18 +202.40.4.0/23 +202.40.7.0/24 +202.40.15.0/24 +202.40.135.0/24 +202.40.136.0/24 +202.40.140.0/24 +202.40.143.0/24 +202.40.144.0/23 +202.40.150.0/24 +202.40.155.0/24 +202.40.156.0/24 +202.40.158.0/23 +202.40.162.0/24 +202.41.8.0/23 +202.41.11.0/24 +202.41.12.0/23 +202.41.128.0/24 +202.41.130.0/23 +202.41.142.0/24 +202.41.152.0/21 +202.41.192.0/24 +202.41.196.0/22 +202.41.200.0/22 +202.41.240.0/20 +202.43.76.0/22 +202.43.144.0/20 +202.44.16.0/20 +202.44.48.0/22 +202.44.67.0/24 +202.44.74.0/24 +202.44.97.0/24 +202.44.129.0/24 +202.44.132.0/23 +202.44.146.0/23 +202.45.0.0/23 +202.45.2.0/24 +202.45.15.0/24 +202.45.16.0/20 +202.46.16.0/23 +202.46.18.0/24 +202.46.20.0/23 +202.46.32.0/19 +202.46.128.0/24 +202.46.224.0/20 +202.47.82.0/23 +202.47.96.0/20 +202.47.126.0/24 +202.47.128.0/24 +202.47.130.0/23 +202.52.33.0/24 +202.52.34.0/24 +202.52.47.0/24 +202.52.143.0/24 +202.53.140.0/24 +202.53.143.0/24 +202.57.192.0/20 +202.57.212.0/22 +202.57.216.0/22 +202.57.240.0/20 +202.58.0.0/24 +202.58.104.0/22 +202.58.112.0/22 +202.59.0.0/23 +202.59.212.0/22 +202.59.236.0/24 +202.59.240.0/24 +202.60.48.0/21 +202.60.96.0/21 +202.60.112.0/20 +202.60.132.0/22 +202.60.136.0/21 +202.60.144.0/20 +202.61.68.0/22 +202.61.76.0/22 +202.61.88.0/22 +202.61.123.0/24 +202.61.127.0/24 +202.62.112.0/22 +202.62.248.0/22 +202.62.252.0/24 +202.62.255.0/24 +202.63.80.0/20 +202.63.160.0/19 +202.63.248.0/22 +202.63.253.0/24 +202.65.0.0/21 +202.65.8.0/23 +202.65.96.0/20 +202.66.168.0/22 +202.67.0.0/22 +202.69.4.0/22 +202.69.16.0/20 +202.70.0.0/19 +202.70.96.0/20 +202.70.192.0/20 +202.71.32.0/20 +202.72.40.0/21 +202.72.80.0/20 +202.72.112.0/20 +202.73.128.0/22 +202.73.240.0/20 +202.74.8.0/21 +202.74.36.0/24 +202.74.42.0/24 +202.74.52.0/24 +202.74.80.0/20 +202.74.232.0/22 +202.74.254.0/23 +202.75.208.0/20 +202.75.252.0/22 +202.76.247.0/24 +202.76.252.0/22 +202.77.80.0/21 +202.77.92.0/22 +202.78.8.0/21 +202.79.224.0/21 +202.79.248.0/22 +202.80.192.0/20 +202.81.0.0/22 +202.81.176.0/20 +202.83.252.0/22 +202.84.0.0/20 +202.84.16.0/23 +202.84.22.0/24 +202.84.24.0/21 +202.85.208.0/20 +202.86.249.0/24 +202.86.252.0/22 +202.87.80.0/20 +202.88.32.0/22 +202.89.8.0/21 +202.89.96.0/22 +202.89.108.0/22 +202.89.119.0/24 +202.89.232.0/21 +202.90.0.0/22 +202.90.16.0/20 +202.90.37.0/24 +202.90.96.0/19 +202.90.193.0/24 +202.90.196.0/24 +202.90.205.0/24 +202.90.224.0/20 +202.91.0.0/22 +202.91.36.0/22 +202.91.96.0/20 +202.91.128.0/22 +202.91.176.0/20 +202.91.224.0/19 +202.92.0.0/22 +202.92.8.0/21 +202.92.48.0/20 +202.92.252.0/22 +202.93.0.0/22 +202.93.252.0/22 +202.94.0.0/19 +202.94.74.0/24 +202.94.81.0/24 +202.94.92.0/22 +202.95.1.0/24 +202.95.2.0/23 +202.95.4.0/22 +202.95.8.0/21 +202.95.16.0/20 +202.95.240.0/21 +202.95.252.0/22 +202.96.0.0/12 +202.112.0.0/13 +202.120.0.0/15 +202.122.0.0/21 +202.122.32.0/21 +202.122.64.0/19 +202.122.112.0/20 +202.122.128.0/24 +202.122.132.0/24 +202.123.96.0/20 +202.123.116.0/22 +202.123.120.0/22 +202.124.16.0/21 +202.124.24.0/22 +202.125.107.0/24 +202.125.109.0/24 +202.125.112.0/20 +202.125.176.0/20 +202.127.0.0/21 +202.127.12.0/22 +202.127.16.0/20 +202.127.40.0/21 +202.127.48.0/20 +202.127.112.0/20 +202.127.128.0/19 +202.127.160.0/21 +202.127.192.0/20 +202.127.208.0/23 +202.127.212.0/22 +202.127.216.0/21 +202.127.224.0/19 +202.129.208.0/24 +202.130.0.0/19 +202.130.39.0/24 +202.130.224.0/19 +202.131.16.0/21 +202.131.48.0/20 +202.131.208.0/20 +202.133.32.0/20 +202.134.58.0/24 +202.134.128.0/20 +202.134.208.0/20 +202.136.48.0/20 +202.136.208.0/20 +202.136.224.0/20 +202.136.248.0/22 +202.136.254.0/23 +202.137.231.0/24 +202.140.140.0/22 +202.140.144.0/20 +202.141.160.0/19 +202.142.16.0/20 +202.143.4.0/22 +202.143.16.0/20 +202.143.32.0/20 +202.143.56.0/21 +202.143.100.0/22 +202.143.104.0/22 +202.144.196.0/22 +202.146.160.0/20 +202.146.186.0/24 +202.146.188.0/22 +202.146.196.0/22 +202.146.200.0/21 +202.147.144.0/20 +202.148.32.0/20 +202.148.64.0/18 +202.149.32.0/19 +202.149.160.0/19 +202.149.224.0/19 +202.150.16.0/20 +202.150.32.0/20 +202.150.56.0/22 +202.150.192.0/20 +202.150.224.0/19 +202.151.0.0/22 +202.151.33.0/24 +202.151.128.0/19 +202.152.176.0/20 +202.153.0.0/22 +202.153.7.0/24 +202.153.48.0/20 +202.157.192.0/19 +202.158.160.0/19 +202.158.242.0/24 +202.160.140.0/22 +202.160.156.0/22 +202.160.176.0/20 +202.162.67.0/24 +202.162.75.0/24 +202.164.0.0/20 +202.164.96.0/19 +202.165.96.0/21 +202.165.104.0/22 +202.165.176.0/20 +202.165.208.0/20 +202.165.239.0/24 +202.165.240.0/23 +202.165.243.0/24 +202.165.245.0/24 +202.165.251.0/24 +202.165.252.0/22 +202.166.224.0/19 +202.168.80.0/22 +202.168.128.0/20 +202.168.160.0/19 +202.170.128.0/19 +202.170.216.0/21 +202.170.224.0/19 +202.171.216.0/21 +202.171.232.0/24 +202.171.235.0/24 +202.172.0.0/22 +202.172.7.0/24 +202.173.0.0/22 +202.173.6.0/24 +202.173.8.0/21 +202.173.112.0/22 +202.173.120.0/22 +202.173.224.0/19 +202.174.64.0/20 +202.174.124.0/22 +202.176.224.0/19 +202.179.160.0/20 +202.179.240.0/20 +202.180.128.0/19 +202.180.208.0/21 +202.181.8.0/22 +202.181.28.0/22 +202.181.112.0/20 +202.182.32.0/20 +202.182.192.0/19 +202.189.0.0/18 +202.189.80.0/20 +202.189.184.0/21 +202.191.0.0/24 +202.191.68.0/22 +202.191.72.0/21 +202.191.80.0/20 +202.192.0.0/12 +203.0.4.0/22 +203.0.10.0/23 +203.0.18.0/24 +203.0.24.0/24 +203.0.42.0/23 +203.0.45.0/24 +203.0.46.0/23 +203.0.81.0/24 +203.0.82.0/23 +203.0.90.0/23 +203.0.96.0/23 +203.0.104.0/21 +203.0.114.0/23 +203.0.122.0/24 +203.0.128.0/24 +203.0.130.0/23 +203.0.132.0/22 +203.0.137.0/24 +203.0.142.0/24 +203.0.144.0/24 +203.0.146.0/24 +203.0.148.0/24 +203.0.150.0/23 +203.0.152.0/24 +203.0.177.0/24 +203.0.224.0/24 +203.1.4.0/22 +203.1.18.0/24 +203.1.26.0/23 +203.1.65.0/24 +203.1.66.0/23 +203.1.70.0/23 +203.1.76.0/23 +203.1.90.0/24 +203.1.97.0/24 +203.1.98.0/23 +203.1.100.0/22 +203.1.108.0/24 +203.1.253.0/24 +203.1.254.0/24 +203.2.64.0/21 +203.2.73.0/24 +203.2.112.0/21 +203.2.126.0/23 +203.2.140.0/24 +203.2.150.0/24 +203.2.152.0/22 +203.2.156.0/23 +203.2.160.0/21 +203.2.180.0/23 +203.2.196.0/23 +203.2.209.0/24 +203.2.214.0/23 +203.2.226.0/23 +203.2.229.0/24 +203.2.236.0/23 +203.3.68.0/24 +203.3.72.0/23 +203.3.75.0/24 +203.3.80.0/21 +203.3.96.0/22 +203.3.105.0/24 +203.3.112.0/21 +203.3.120.0/24 +203.3.123.0/24 +203.3.135.0/24 +203.3.139.0/24 +203.3.143.0/24 +203.4.132.0/23 +203.4.134.0/24 +203.4.151.0/24 +203.4.152.0/22 +203.4.174.0/23 +203.4.180.0/24 +203.4.186.0/24 +203.4.205.0/24 +203.4.208.0/22 +203.4.227.0/24 +203.4.230.0/23 +203.5.4.0/23 +203.5.7.0/24 +203.5.8.0/23 +203.5.11.0/24 +203.5.21.0/24 +203.5.22.0/24 +203.5.44.0/24 +203.5.46.0/23 +203.5.52.0/22 +203.5.56.0/23 +203.5.60.0/23 +203.5.114.0/23 +203.5.118.0/24 +203.5.120.0/24 +203.5.172.0/24 +203.5.180.0/23 +203.5.182.0/24 +203.5.185.0/24 +203.5.186.0/24 +203.5.188.0/23 +203.5.190.0/24 +203.5.195.0/24 +203.5.214.0/23 +203.5.218.0/23 +203.6.131.0/24 +203.6.136.0/24 +203.6.138.0/23 +203.6.142.0/24 +203.6.150.0/23 +203.6.157.0/24 +203.6.159.0/24 +203.6.224.0/20 +203.6.248.0/23 +203.7.129.0/24 +203.7.138.0/23 +203.7.147.0/24 +203.7.150.0/23 +203.7.158.0/24 +203.7.192.0/23 +203.7.200.0/24 +203.8.0.0/24 +203.8.8.0/24 +203.8.23.0/24 +203.8.24.0/21 +203.8.70.0/24 +203.8.82.0/24 +203.8.86.0/23 +203.8.91.0/24 +203.8.110.0/23 +203.8.115.0/24 +203.8.166.0/23 +203.8.169.0/24 +203.8.173.0/24 +203.8.184.0/24 +203.8.186.0/23 +203.8.190.0/23 +203.8.192.0/24 +203.8.197.0/24 +203.8.198.0/23 +203.8.203.0/24 +203.8.209.0/24 +203.8.210.0/23 +203.8.212.0/22 +203.8.217.0/24 +203.8.220.0/24 +203.9.32.0/24 +203.9.36.0/23 +203.9.57.0/24 +203.9.63.0/24 +203.9.65.0/24 +203.9.70.0/23 +203.9.72.0/24 +203.9.75.0/24 +203.9.76.0/23 +203.9.96.0/22 +203.9.100.0/23 +203.9.108.0/24 +203.9.158.0/24 +203.10.34.0/24 +203.10.56.0/24 +203.10.74.0/23 +203.10.84.0/22 +203.10.88.0/24 +203.10.95.0/24 +203.10.125.0/24 +203.11.70.0/24 +203.11.76.0/22 +203.11.82.0/24 +203.11.84.0/22 +203.11.100.0/22 +203.11.109.0/24 +203.11.117.0/24 +203.11.122.0/24 +203.11.126.0/24 +203.11.136.0/22 +203.11.141.0/24 +203.11.142.0/23 +203.11.180.0/22 +203.11.208.0/22 +203.12.16.0/24 +203.12.19.0/24 +203.12.24.0/24 +203.12.57.0/24 +203.12.65.0/24 +203.12.66.0/24 +203.12.70.0/23 +203.12.87.0/24 +203.12.88.0/21 +203.12.100.0/23 +203.12.103.0/24 +203.12.114.0/24 +203.12.118.0/24 +203.12.130.0/24 +203.12.137.0/24 +203.12.196.0/22 +203.12.200.0/21 +203.12.211.0/24 +203.12.219.0/24 +203.12.226.0/24 +203.12.240.0/22 +203.13.18.0/24 +203.13.24.0/24 +203.13.44.0/23 +203.13.80.0/21 +203.13.88.0/23 +203.13.92.0/22 +203.13.173.0/24 +203.13.224.0/23 +203.13.227.0/24 +203.13.233.0/24 +203.14.24.0/22 +203.14.33.0/24 +203.14.56.0/24 +203.14.61.0/24 +203.14.62.0/24 +203.14.104.0/24 +203.14.114.0/23 +203.14.118.0/24 +203.14.162.0/24 +203.14.184.0/21 +203.14.192.0/24 +203.14.194.0/23 +203.14.214.0/24 +203.14.231.0/24 +203.14.246.0/24 +203.15.0.0/20 +203.15.20.0/23 +203.15.22.0/24 +203.15.87.0/24 +203.15.88.0/23 +203.15.105.0/24 +203.15.112.0/21 +203.15.130.0/23 +203.15.149.0/24 +203.15.151.0/24 +203.15.156.0/22 +203.15.174.0/24 +203.15.227.0/24 +203.15.232.0/21 +203.15.240.0/23 +203.15.246.0/24 +203.16.10.0/24 +203.16.12.0/23 +203.16.16.0/21 +203.16.27.0/24 +203.16.38.0/24 +203.16.49.0/24 +203.16.50.0/23 +203.16.58.0/24 +203.16.63.0/24 +203.16.133.0/24 +203.16.161.0/24 +203.16.162.0/24 +203.16.186.0/23 +203.16.228.0/24 +203.16.238.0/24 +203.16.240.0/24 +203.16.245.0/24 +203.17.2.0/24 +203.17.18.0/24 +203.17.28.0/24 +203.17.39.0/24 +203.17.56.0/24 +203.17.74.0/23 +203.17.88.0/23 +203.17.136.0/24 +203.17.164.0/24 +203.17.187.0/24 +203.17.190.0/23 +203.17.231.0/24 +203.17.233.0/24 +203.17.248.0/23 +203.17.255.0/24 +203.18.2.0/23 +203.18.4.0/24 +203.18.7.0/24 +203.18.31.0/24 +203.18.37.0/24 +203.18.48.0/23 +203.18.52.0/24 +203.18.72.0/22 +203.18.80.0/23 +203.18.87.0/24 +203.18.100.0/23 +203.18.105.0/24 +203.18.107.0/24 +203.18.110.0/24 +203.18.129.0/24 +203.18.131.0/24 +203.18.132.0/23 +203.18.144.0/24 +203.18.153.0/24 +203.18.199.0/24 +203.18.208.0/24 +203.18.211.0/24 +203.18.215.0/24 +203.19.1.0/24 +203.19.18.0/24 +203.19.24.0/24 +203.19.30.0/24 +203.19.32.0/21 +203.19.41.0/24 +203.19.44.0/23 +203.19.46.0/24 +203.19.58.0/24 +203.19.60.0/23 +203.19.64.0/24 +203.19.68.0/24 +203.19.72.0/24 +203.19.101.0/24 +203.19.111.0/24 +203.19.131.0/24 +203.19.133.0/24 +203.19.144.0/24 +203.19.147.0/24 +203.19.149.0/24 +203.19.156.0/24 +203.19.176.0/24 +203.19.178.0/23 +203.19.208.0/24 +203.19.228.0/22 +203.19.233.0/24 +203.19.242.0/24 +203.19.248.0/23 +203.19.255.0/24 +203.20.17.0/24 +203.20.40.0/23 +203.20.44.0/24 +203.20.48.0/24 +203.20.61.0/24 +203.20.65.0/24 +203.20.84.0/23 +203.20.89.0/24 +203.20.106.0/23 +203.20.115.0/24 +203.20.117.0/24 +203.20.118.0/23 +203.20.122.0/24 +203.20.126.0/23 +203.20.135.0/24 +203.20.136.0/21 +203.20.150.0/24 +203.20.230.0/24 +203.20.232.0/24 +203.20.236.0/24 +203.21.0.0/23 +203.21.2.0/24 +203.21.8.0/24 +203.21.10.0/24 +203.21.18.0/24 +203.21.33.0/24 +203.21.34.0/24 +203.21.41.0/24 +203.21.44.0/24 +203.21.68.0/24 +203.21.82.0/24 +203.21.96.0/22 +203.21.124.0/24 +203.21.136.0/23 +203.21.145.0/24 +203.21.206.0/24 +203.22.24.0/24 +203.22.28.0/23 +203.22.31.0/24 +203.22.68.0/24 +203.22.76.0/24 +203.22.78.0/24 +203.22.84.0/24 +203.22.87.0/24 +203.22.92.0/22 +203.22.99.0/24 +203.22.106.0/24 +203.22.122.0/23 +203.22.131.0/24 +203.22.163.0/24 +203.22.166.0/24 +203.22.170.0/24 +203.22.176.0/21 +203.22.194.0/24 +203.22.242.0/23 +203.22.245.0/24 +203.22.246.0/24 +203.22.252.0/23 +203.23.0.0/24 +203.23.47.0/24 +203.23.61.0/24 +203.23.62.0/23 +203.23.73.0/24 +203.23.85.0/24 +203.23.92.0/22 +203.23.98.0/24 +203.23.107.0/24 +203.23.112.0/24 +203.23.130.0/24 +203.23.140.0/23 +203.23.172.0/24 +203.23.182.0/24 +203.23.186.0/23 +203.23.192.0/24 +203.23.197.0/24 +203.23.198.0/24 +203.23.204.0/22 +203.23.224.0/24 +203.23.226.0/23 +203.23.228.0/22 +203.23.249.0/24 +203.23.251.0/24 +203.24.13.0/24 +203.24.18.0/24 +203.24.27.0/24 +203.24.43.0/24 +203.24.56.0/24 +203.24.58.0/24 +203.24.67.0/24 +203.24.74.0/24 +203.24.79.0/24 +203.24.80.0/23 +203.24.84.0/23 +203.24.86.0/24 +203.24.90.0/24 +203.24.111.0/24 +203.24.112.0/24 +203.24.116.0/24 +203.24.122.0/23 +203.24.145.0/24 +203.24.152.0/23 +203.24.157.0/24 +203.24.161.0/24 +203.24.167.0/24 +203.24.186.0/23 +203.24.199.0/24 +203.24.202.0/24 +203.24.212.0/23 +203.24.217.0/24 +203.24.219.0/24 +203.24.244.0/24 +203.25.19.0/24 +203.25.20.0/23 +203.25.46.0/24 +203.25.48.0/21 +203.25.64.0/23 +203.25.91.0/24 +203.25.99.0/24 +203.25.100.0/24 +203.25.106.0/24 +203.25.131.0/24 +203.25.135.0/24 +203.25.138.0/24 +203.25.147.0/24 +203.25.153.0/24 +203.25.154.0/23 +203.25.164.0/24 +203.25.166.0/24 +203.25.174.0/23 +203.25.180.0/24 +203.25.182.0/24 +203.25.191.0/24 +203.25.199.0/24 +203.25.200.0/24 +203.25.202.0/23 +203.25.208.0/20 +203.25.229.0/24 +203.25.235.0/24 +203.25.236.0/24 +203.25.242.0/24 +203.26.12.0/24 +203.26.34.0/24 +203.26.49.0/24 +203.26.50.0/24 +203.26.55.0/24 +203.26.56.0/23 +203.26.60.0/24 +203.26.65.0/24 +203.26.68.0/24 +203.26.76.0/24 +203.26.80.0/24 +203.26.84.0/24 +203.26.97.0/24 +203.26.102.0/23 +203.26.115.0/24 +203.26.116.0/24 +203.26.129.0/24 +203.26.143.0/24 +203.26.144.0/24 +203.26.148.0/23 +203.26.154.0/24 +203.26.158.0/23 +203.26.161.0/24 +203.26.170.0/24 +203.26.173.0/24 +203.26.176.0/24 +203.26.185.0/24 +203.26.202.0/23 +203.26.210.0/24 +203.26.214.0/24 +203.26.222.0/24 +203.26.224.0/24 +203.26.228.0/24 +203.26.232.0/24 +203.27.0.0/24 +203.27.10.0/24 +203.27.15.0/24 +203.27.16.0/24 +203.27.20.0/24 +203.27.22.0/23 +203.27.40.0/24 +203.27.45.0/24 +203.27.53.0/24 +203.27.65.0/24 +203.27.66.0/24 +203.27.81.0/24 +203.27.88.0/24 +203.27.102.0/24 +203.27.109.0/24 +203.27.117.0/24 +203.27.121.0/24 +203.27.122.0/23 +203.27.125.0/24 +203.27.200.0/24 +203.27.202.0/24 +203.27.233.0/24 +203.27.241.0/24 +203.27.250.0/24 +203.28.10.0/24 +203.28.12.0/24 +203.28.33.0/24 +203.28.34.0/23 +203.28.43.0/24 +203.28.44.0/24 +203.28.54.0/24 +203.28.56.0/24 +203.28.73.0/24 +203.28.74.0/24 +203.28.76.0/24 +203.28.86.0/24 +203.28.88.0/24 +203.28.112.0/24 +203.28.131.0/24 +203.28.136.0/24 +203.28.140.0/24 +203.28.145.0/24 +203.28.165.0/24 +203.28.169.0/24 +203.28.170.0/24 +203.28.178.0/23 +203.28.185.0/24 +203.28.187.0/24 +203.28.196.0/24 +203.28.226.0/23 +203.28.239.0/24 +203.29.2.0/24 +203.29.8.0/23 +203.29.13.0/24 +203.29.14.0/24 +203.29.28.0/24 +203.29.46.0/24 +203.29.57.0/24 +203.29.61.0/24 +203.29.63.0/24 +203.29.69.0/24 +203.29.73.0/24 +203.29.81.0/24 +203.29.90.0/24 +203.29.95.0/24 +203.29.100.0/24 +203.29.103.0/24 +203.29.112.0/24 +203.29.120.0/22 +203.29.182.0/23 +203.29.187.0/24 +203.29.189.0/24 +203.29.190.0/24 +203.29.205.0/24 +203.29.210.0/24 +203.29.217.0/24 +203.29.227.0/24 +203.29.231.0/24 +203.29.233.0/24 +203.29.234.0/24 +203.29.248.0/24 +203.29.254.0/23 +203.30.16.0/23 +203.30.25.0/24 +203.30.27.0/24 +203.30.29.0/24 +203.30.66.0/24 +203.30.81.0/24 +203.30.87.0/24 +203.30.111.0/24 +203.30.121.0/24 +203.30.123.0/24 +203.30.152.0/24 +203.30.156.0/24 +203.30.162.0/24 +203.30.173.0/24 +203.30.175.0/24 +203.30.187.0/24 +203.30.194.0/24 +203.30.217.0/24 +203.30.220.0/24 +203.30.222.0/24 +203.30.232.0/23 +203.30.235.0/24 +203.30.240.0/23 +203.30.246.0/24 +203.30.250.0/23 +203.31.45.0/24 +203.31.46.0/24 +203.31.49.0/24 +203.31.51.0/24 +203.31.54.0/23 +203.31.69.0/24 +203.31.72.0/24 +203.31.80.0/24 +203.31.85.0/24 +203.31.97.0/24 +203.31.105.0/24 +203.31.106.0/24 +203.31.108.0/23 +203.31.124.0/24 +203.31.162.0/24 +203.31.174.0/24 +203.31.177.0/24 +203.31.181.0/24 +203.31.187.0/24 +203.31.189.0/24 +203.31.204.0/24 +203.31.220.0/24 +203.31.222.0/23 +203.31.225.0/24 +203.31.229.0/24 +203.31.248.0/23 +203.31.253.0/24 +203.32.20.0/24 +203.32.48.0/23 +203.32.56.0/24 +203.32.60.0/24 +203.32.62.0/24 +203.32.68.0/23 +203.32.76.0/24 +203.32.81.0/24 +203.32.84.0/23 +203.32.95.0/24 +203.32.102.0/24 +203.32.105.0/24 +203.32.130.0/24 +203.32.133.0/24 +203.32.140.0/24 +203.32.152.0/24 +203.32.186.0/23 +203.32.192.0/24 +203.32.196.0/24 +203.32.203.0/24 +203.32.204.0/23 +203.32.212.0/24 +203.33.4.0/24 +203.33.7.0/24 +203.33.8.0/21 +203.33.21.0/24 +203.33.26.0/24 +203.33.32.0/24 +203.33.63.0/24 +203.33.64.0/24 +203.33.67.0/24 +203.33.68.0/24 +203.33.73.0/24 +203.33.79.0/24 +203.33.100.0/24 +203.33.122.0/24 +203.33.129.0/24 +203.33.131.0/24 +203.33.145.0/24 +203.33.156.0/24 +203.33.158.0/23 +203.33.174.0/24 +203.33.185.0/24 +203.33.200.0/24 +203.33.202.0/23 +203.33.204.0/24 +203.33.206.0/23 +203.33.214.0/23 +203.33.224.0/23 +203.33.226.0/24 +203.33.233.0/24 +203.33.243.0/24 +203.33.250.0/24 +203.34.4.0/24 +203.34.21.0/24 +203.34.27.0/24 +203.34.39.0/24 +203.34.48.0/23 +203.34.54.0/24 +203.34.56.0/23 +203.34.67.0/24 +203.34.69.0/24 +203.34.76.0/24 +203.34.92.0/24 +203.34.106.0/24 +203.34.113.0/24 +203.34.147.0/24 +203.34.150.0/24 +203.34.152.0/23 +203.34.161.0/24 +203.34.162.0/24 +203.34.187.0/24 +203.34.192.0/21 +203.34.204.0/22 +203.34.232.0/24 +203.34.240.0/24 +203.34.242.0/24 +203.34.245.0/24 +203.34.251.0/24 +203.55.2.0/23 +203.55.4.0/24 +203.55.10.0/24 +203.55.13.0/24 +203.55.22.0/24 +203.55.30.0/24 +203.55.93.0/24 +203.55.101.0/24 +203.55.109.0/24 +203.55.110.0/24 +203.55.116.0/23 +203.55.119.0/24 +203.55.128.0/23 +203.55.146.0/23 +203.55.192.0/24 +203.55.196.0/24 +203.55.218.0/23 +203.55.221.0/24 +203.55.224.0/24 +203.56.1.0/24 +203.56.4.0/24 +203.56.12.0/24 +203.56.24.0/24 +203.56.38.0/24 +203.56.40.0/24 +203.56.46.0/24 +203.56.48.0/21 +203.56.68.0/23 +203.56.82.0/23 +203.56.84.0/23 +203.56.95.0/24 +203.56.110.0/24 +203.56.121.0/24 +203.56.161.0/24 +203.56.169.0/24 +203.56.172.0/23 +203.56.175.0/24 +203.56.183.0/24 +203.56.185.0/24 +203.56.187.0/24 +203.56.192.0/24 +203.56.198.0/24 +203.56.201.0/24 +203.56.208.0/23 +203.56.210.0/24 +203.56.214.0/24 +203.56.216.0/24 +203.56.227.0/24 +203.56.228.0/24 +203.56.231.0/24 +203.56.232.0/24 +203.56.240.0/24 +203.56.252.0/24 +203.56.254.0/24 +203.57.5.0/24 +203.57.6.0/24 +203.57.12.0/23 +203.57.28.0/24 +203.57.39.0/24 +203.57.46.0/24 +203.57.58.0/24 +203.57.61.0/24 +203.57.66.0/24 +203.57.69.0/24 +203.57.70.0/23 +203.57.73.0/24 +203.57.90.0/24 +203.57.101.0/24 +203.57.109.0/24 +203.57.123.0/24 +203.57.157.0/24 +203.57.200.0/24 +203.57.202.0/24 +203.57.206.0/24 +203.57.222.0/24 +203.57.224.0/20 +203.57.246.0/23 +203.57.249.0/24 +203.57.253.0/24 +203.57.254.0/23 +203.62.2.0/24 +203.62.131.0/24 +203.62.139.0/24 +203.62.161.0/24 +203.62.197.0/24 +203.62.228.0/22 +203.62.234.0/24 +203.62.246.0/24 +203.65.240.0/22 +203.76.160.0/22 +203.76.168.0/22 +203.76.208.0/21 +203.76.216.0/22 +203.76.240.0/21 +203.77.180.0/22 +203.78.48.0/20 +203.78.156.0/22 +203.79.0.0/20 +203.79.32.0/20 +203.80.4.0/23 +203.80.32.0/20 +203.80.57.0/24 +203.80.129.0/24 +203.80.132.0/22 +203.80.136.0/21 +203.80.144.0/20 +203.81.0.0/21 +203.81.16.0/20 +203.81.244.0/22 +203.82.0.0/23 +203.82.16.0/21 +203.82.112.0/20 +203.82.224.0/20 +203.83.0.0/22 +203.83.8.0/21 +203.83.56.0/21 +203.83.224.0/20 +203.86.0.0/17 +203.86.250.0/24 +203.86.254.0/23 +203.88.32.0/19 +203.88.192.0/19 +203.89.0.0/22 +203.89.8.0/21 +203.89.100.0/22 +203.89.133.0/24 +203.89.136.0/22 +203.89.144.0/24 +203.90.0.0/22 +203.90.8.0/21 +203.90.128.0/18 +203.90.192.0/19 +203.91.1.0/24 +203.91.32.0/19 +203.91.96.0/20 +203.91.120.0/21 +203.92.0.0/22 +203.92.6.0/24 +203.92.160.0/19 +203.93.0.0/16 +203.94.0.0/19 +203.95.0.0/21 +203.95.96.0/19 +203.95.128.0/18 +203.95.200.0/21 +203.95.208.0/22 +203.95.224.0/19 +203.99.8.0/21 +203.99.16.0/20 +203.99.80.0/20 +203.100.32.0/20 +203.100.48.0/21 +203.100.58.0/24 +203.100.60.0/24 +203.100.63.0/24 +203.100.80.0/20 +203.100.96.0/19 +203.100.192.0/20 +203.104.32.0/20 +203.105.96.0/19 +203.105.128.0/19 +203.107.0.0/17 +203.110.160.0/19 +203.110.208.0/20 +203.110.232.0/23 +203.110.234.0/24 +203.114.80.0/20 +203.114.244.0/22 +203.118.192.0/19 +203.118.241.0/24 +203.118.248.0/22 +203.119.24.0/21 +203.119.32.0/22 +203.119.80.0/22 +203.119.85.0/24 +203.119.113.0/24 +203.119.114.0/23 +203.119.116.0/22 +203.119.120.0/21 +203.119.128.0/17 +203.123.58.0/24 +203.128.32.0/19 +203.128.96.0/19 +203.128.128.0/24 +203.128.224.0/21 +203.129.8.0/21 +203.130.32.0/19 +203.132.32.0/19 +203.134.240.0/21 +203.135.96.0/19 +203.135.160.0/20 +203.142.12.0/23 +203.142.219.0/24 +203.142.224.0/19 +203.144.96.0/19 +203.145.0.0/19 +203.148.0.0/18 +203.148.64.0/20 +203.148.80.0/22 +203.148.86.0/23 +203.149.92.0/22 +203.152.64.0/19 +203.152.128.0/19 +203.153.0.0/22 +203.156.192.0/18 +203.158.16.0/21 +203.160.52.0/22 +203.160.104.0/21 +203.160.129.0/24 +203.160.192.0/19 +203.161.0.0/22 +203.161.180.0/24 +203.161.183.0/24 +203.161.192.0/19 +203.166.160.0/19 +203.167.28.0/22 +203.168.0.0/19 +203.170.58.0/23 +203.171.0.0/22 +203.171.208.0/24 +203.171.224.0/20 +203.174.4.0/24 +203.174.6.0/23 +203.174.96.0/19 +203.175.128.0/19 +203.175.192.0/18 +203.176.0.0/18 +203.176.64.0/19 +203.176.168.0/21 +203.184.80.0/20 +203.185.189.0/24 +203.187.160.0/19 +203.189.0.0/23 +203.189.6.0/23 +203.189.112.0/22 +203.189.192.0/19 +203.189.232.0/22 +203.189.240.0/22 +203.190.96.0/20 +203.190.249.0/24 +203.191.0.0/23 +203.191.2.0/24 +203.191.5.0/24 +203.191.7.0/24 +203.191.16.0/20 +203.191.64.0/18 +203.191.133.0/24 +203.191.144.0/20 +203.192.0.0/19 +203.193.224.0/19 +203.194.120.0/21 +203.195.64.0/19 +203.195.112.0/21 +203.195.128.0/17 +203.196.0.0/20 +203.196.28.0/22 +203.201.181.0/24 +203.201.182.0/24 +203.202.236.0/22 +203.205.64.0/19 +203.205.128.0/17 +203.207.64.0/18 +203.207.128.0/17 +203.208.0.0/20 +203.208.16.0/22 +203.208.32.0/19 +203.209.224.0/19 +203.212.0.0/20 +203.212.80.0/20 +203.215.232.0/21 +203.217.164.0/22 +203.222.192.0/20 +203.223.0.0/20 +203.223.16.0/21 +204.55.160.0/24 +204.74.96.0/24 +204.114.176.0/23 +206.219.44.0/23 +206.219.50.0/23 +206.219.52.0/23 +207.89.20.0/24 +210.2.0.0/19 +210.5.0.0/19 +210.5.56.0/21 +210.5.128.0/19 +210.7.56.0/21 +210.12.0.0/15 +210.14.64.0/19 +210.14.112.0/20 +210.14.128.0/17 +210.15.0.0/17 +210.15.128.0/18 +210.16.104.0/22 +210.16.128.0/18 +210.21.0.0/16 +210.22.0.0/16 +210.23.32.0/19 +210.25.0.0/16 +210.26.0.0/15 +210.28.0.0/14 +210.32.0.0/12 +210.51.0.0/16 +210.52.0.0/15 +210.56.192.0/19 +210.72.0.0/14 +210.76.0.0/15 +210.78.0.0/16 +210.79.64.0/18 +210.79.224.0/19 +210.82.0.0/15 +210.87.128.0/18 +210.185.192.0/18 +210.192.96.0/19 +211.64.0.0/13 +211.80.0.0/12 +211.96.0.0/13 +211.136.0.0/13 +211.144.0.0/12 +211.160.0.0/13 +212.64.0.0/17 +212.129.128.0/17 +216.250.108.0/22 +218.0.0.0/11 +218.56.0.0/13 +218.64.0.0/11 +218.96.0.0/14 +218.100.88.0/21 +218.100.96.0/19 +218.100.128.0/17 +218.104.0.0/14 +218.108.0.0/15 +218.185.192.0/19 +218.185.240.0/21 +218.192.0.0/12 +218.240.0.0/13 +218.249.0.0/16 +219.72.0.0/16 +219.82.0.0/16 +219.83.128.0/17 +219.90.68.0/22 +219.90.72.0/21 +219.128.0.0/11 +219.216.0.0/13 +219.224.0.0/12 +219.242.0.0/15 +219.244.0.0/14 +220.101.192.0/18 +220.112.0.0/14 +220.152.128.0/17 +220.154.0.0/15 +220.158.240.0/22 +220.160.0.0/11 +220.192.0.0/12 +220.231.0.0/18 +220.231.128.0/17 +220.232.64.0/18 +220.234.0.0/16 +220.242.0.0/15 +220.247.136.0/21 +220.248.0.0/14 +220.252.0.0/16 +221.0.0.0/13 +221.8.0.0/14 +221.12.0.0/17 +221.12.128.0/18 +221.13.0.0/16 +221.14.0.0/15 +221.122.0.0/15 +221.128.128.0/17 +221.129.0.0/16 +221.130.0.0/15 +221.133.224.0/19 +221.136.0.0/15 +221.172.0.0/14 +221.176.0.0/13 +221.192.0.0/14 +221.196.0.0/15 +221.198.0.0/16 +221.199.0.0/17 +221.199.128.0/18 +221.199.192.0/20 +221.199.224.0/19 +221.200.0.0/13 +221.208.0.0/12 +221.224.0.0/12 +222.16.0.0/12 +222.32.0.0/11 +222.64.0.0/11 +222.125.0.0/16 +222.126.128.0/17 +222.128.0.0/12 +222.160.0.0/14 +222.168.0.0/13 +222.176.0.0/12 +222.192.0.0/11 +222.240.0.0/13 +222.248.0.0/15 +223.0.0.0/12 +223.20.0.0/15 +223.27.184.0/22 +223.29.208.0/22 +223.29.252.0/22 +223.64.0.0/11 +223.96.0.0/12 +223.112.0.0/14 +223.116.0.0/15 +223.120.0.0/13 +223.128.0.0/15 +223.144.0.0/12 +223.160.0.0/14 +223.166.0.0/15 +223.192.0.0/15 +223.198.0.0/15 +223.201.0.0/16 +223.202.0.0/15 +223.208.0.0/13 +223.220.0.0/15 +223.223.176.0/20 +223.223.192.0/20 +223.240.0.0/13 +223.248.0.0/14 +223.252.128.0/17 +223.254.0.0/16 +223.255.0.0/17 +223.255.236.0/22 +223.255.252.0/23 diff --git a/client/android/assets/acl/gfwlist.acl b/client/android/assets/acl/gfwlist.acl new file mode 100644 index 00000000..2567a264 --- /dev/null +++ b/client/android/assets/acl/gfwlist.acl @@ -0,0 +1,5492 @@ +# +# GFW list from https://github.com/gfwlist/gfwlist/blob/master/gfwlist.txt +# updated on 2019-02-21 +# + +[bypass_all] + +[proxy_list] +# Telegram IPs$ +91.108.4.0/22 +91.108.8.0/21 +91.108.16.0/21 +91.108.36.0/22 +91.108.56.0/22 +109.239.140.0/24 +149.154.160.0/20 + +1.1.1.1 +14.102.250.18 +14.102.250.19 +174.142.105.153 +50.7.31.230 +67.220.91.15 +67.220.91.18 +67.220.91.23 +69.65.19.160 +72.52.81.22 +85.17.73.31 +(^|\.)030buy\.com$ +(^|\.)0rz\.tw$ +(^|\.)1-apple\.com\.tw$ +(^|\.)10\.tt$ +(^|\.)1000giri\.net$ +(^|\.)100ke\.org$ +(^|\.)10conditionsoflove\.com$ +(^|\.)10musume\.com$ +(^|\.)123rf\.com$ +(^|\.)12bet\.com$ +(^|\.)12vpn\.com$ +(^|\.)12vpn\.net$ +(^|\.)138\.com$ +(^|\.)141hongkong\.com$ +(^|\.)141jj\.com$ +(^|\.)141tube\.com$ +(^|\.)1688\.com\.au$ +(^|\.)173ng\.com$ +(^|\.)177pic\.info$ +(^|\.)17t17p\.com$ +(^|\.)18board\.com$ +(^|\.)18board\.info$ +(^|\.)18onlygirls\.com$ +(^|\.)18p2p\.com$ +(^|\.)18virginsex\.com$ +(^|\.)1949er\.org$ +(^|\.)1984bbs\.com$ +(^|\.)1984bbs\.org$ +(^|\.)1989report\.hkja\.org\.hk$ +(^|\.)1991way\.com$ +(^|\.)1998cdp\.org$ +(^|\.)1bao\.org$ +(^|\.)1dumb\.com$ +(^|\.)1e100\.net$ +(^|\.)1eew\.com$ +(^|\.)1mobile\.com$ +(^|\.)1pondo\.tv$ +(^|\.)2-hand\.info$ +(^|\.)2000fun\.com$ +(^|\.)2008xianzhang\.info$ +(^|\.)2017\.hk$ +(^|\.)21andy\.com$ +(^|\.)21pron\.com$ +(^|\.)21sextury\.com$ +(^|\.)228\.net\.tw$ +(^|\.)233abc\.com$ +(^|\.)24hrs\.ca$ +(^|\.)24smile\.org$ +(^|\.)25u\.com$ +(^|\.)2lipstube\.com$ +(^|\.)2shared\.com$ +(^|\.)2waky\.com$ +(^|\.)3-a\.net$ +(^|\.)30boxes\.com$ +(^|\.)315lz\.com$ +(^|\.)32red\.com$ +(^|\.)36rain\.com$ +(^|\.)3a5a\.com$ +(^|\.)3arabtv\.com$ +(^|\.)3boys2girls\.com$ +(^|\.)3d-game\.com$ +(^|\.)3proxy\.ru$ +(^|\.)3ren\.ca$ +(^|\.)3tui\.net$ +(^|\.)43110\.cf$ +(^|\.)466453\.com$ +(^|\.)4bluestones\.biz$ +(^|\.)4chan\.com$ +(^|\.)4dq\.com$ +(^|\.)4everproxy\.com$ +(^|\.)4irc\.com$ +(^|\.)4mydomain\.com$ +(^|\.)4pu\.com$ +(^|\.)4rbtv\.com$ +(^|\.)4shared\.com$ +(^|\.)51\.ca$ +(^|\.)51jav\.org$ +(^|\.)51luoben\.com$ +(^|\.)5278\.cc$ +(^|\.)5299\.tv$ +(^|\.)56cun04\.jigsy\.com$ +(^|\.)5aimiku\.com$ +(^|\.)5i01\.com$ +(^|\.)5isotoi5\.org$ +(^|\.)5maodang\.com$ +(^|\.)63i\.com$ +(^|\.)64memo$ +(^|\.)64museum\.org$ +(^|\.)64tianwang\.com$ +(^|\.)64wiki\.com$ +(^|\.)66\.ca$ +(^|\.)666kb\.com$ +(^|\.)6park\.com$ +(^|\.)6parker\.com$ +(^|\.)7capture\.com$ +(^|\.)7cow\.com$ +(^|\.)8-d\.com$ +(^|\.)85cc\.net$ +(^|\.)85cc\.us$ +(^|\.)85st\.com$ +(^|\.)881903\.com$ +(^|\.)888\.com$ +(^|\.)888poker\.com$ +(^|\.)89-64\.org$ +(^|\.)89\.64\.charter\.constitutionalism\.solutions$ +(^|\.)8news\.com\.tw$ +(^|\.)8z1\.net$ +(^|\.)9001700\.com$ +(^|\.)908taiwan\.org$ +(^|\.)91porn\.com$ +(^|\.)91vps\.club$ +(^|\.)92ccav\.com$ +(^|\.)991\.com$ +(^|\.)99btgc01\.com$ +(^|\.)99cn\.info$ +(^|\.)9bis\.com$ +(^|\.)9bis\.net$ +(^|\.)a-normal-day\.com$ +(^|\.)a248\.e\.akamai\.net$ +(^|\.)a5\.com\.ru$ +(^|\.)aamacau\.com$ +(^|\.)abc\.com$ +(^|\.)abc\.net\.au$ +(^|\.)abc\.pp\.ru$ +(^|\.)abc\.xyz$ +(^|\.)abchinese\.com$ +(^|\.)abclite\.net$ +(^|\.)abebooks\.com$ +(^|\.)abematv\.akamaized\.net$ +(^|\.)abitno\.linpie\.com$ +(^|\.)ablwang\.com$ +(^|\.)aboluowang\.com$ +(^|\.)aboutgfw\.com$ +(^|\.)abs\.edu$ +(^|\.)ac\.jiruan\.net$ +(^|\.)accim\.org$ +(^|\.)aceros-de-hispania\.com$ +(^|\.)acevpn\.com$ +(^|\.)acg18\.me$ +(^|\.)acgkj\.com$ +(^|\.)acmedia365\.com$ +(^|\.)acmetoy\.com$ +(^|\.)acnw\.com\.au$ +(^|\.)actfortibet\.org$ +(^|\.)actimes\.com\.au$ +(^|\.)activpn\.com$ +(^|\.)aculo\.us$ +(^|\.)adcex\.com$ +(^|\.)addictedtocoffee\.de$ +(^|\.)adelaidebbs\.com$ +(^|\.)admin\.recaptcha\.net$ +(^|\.)admob\.com$ +(^|\.)adpl\.org\.hk$ +(^|\.)ads-twitter\.com$ +(^|\.)adsense\.com$ +(^|\.)adult-sex-games\.com$ +(^|\.)adult\.friendfinder\.com$ +(^|\.)adultfriendfinder\.com$ +(^|\.)adultkeep\.net$ +(^|\.)advanscene\.com$ +(^|\.)advertfan\.com$ +(^|\.)ae\.hao123\.com$ +(^|\.)ae\.org$ +(^|\.)aenhancers\.com$ +(^|\.)aex\.com$ +(^|\.)af\.mil$ +(^|\.)afantibbs\.com$ +(^|\.)agnesb\.fr$ +(^|\.)agoogleaday\.com$ +(^|\.)agro\.hk$ +(^|\.)ahr0chm6ly95zwnslm5lda$ +(^|\.)ai-kan\.net$ +(^|\.)ai-wen\.net$ +(^|\.)ai\.binwang\.me$ +(^|\.)ai\.google$ +(^|\.)aiph\.net$ +(^|\.)airasia\.com$ +(^|\.)airconsole\.com$ +(^|\.)airvpn\.org$ +(^|\.)aisex\.com$ +(^|\.)ait\.org\.tw$ +(^|\.)aiweiwei\.com$ +(^|\.)aiweiweiblog\.com$ +(^|\.)akademiye\.org$ +(^|\.)akiba-online\.com$ +(^|\.)akiba-web\.com$ +(^|\.)akow\.org$ +(^|\.)al-islam\.com$ +(^|\.)al-qimmah\.net$ +(^|\.)alabout\.com$ +(^|\.)alanhou\.com$ +(^|\.)alarab\.qa$ +(^|\.)alasbarricadas\.org$ +(^|\.)alexlur\.org$ +(^|\.)alforattv\.net$ +(^|\.)alhayat\.com$ +(^|\.)alicejapan\.co\.jp$ +(^|\.)aliengu\.com$ +(^|\.)alkasir\.com$ +(^|\.)allcoin\.com$ +(^|\.)allconnected\.co$ +(^|\.)alldrawnsex\.com$ +(^|\.)allervpn\.com$ +(^|\.)allfinegirls\.com$ +(^|\.)allgirlmassage\.com$ +(^|\.)allgirlsallowed\.org$ +(^|\.)allgravure\.com$ +(^|\.)alliance\.org\.hk$ +(^|\.)allinfa\.com$ +(^|\.)alljackpotscasino\.com$ +(^|\.)allmovie\.com$ +(^|\.)allowed\.org$ +(^|\.)almasdarnews\.com$ +(^|\.)almostmy\.com$ +(^|\.)alphaporno\.com$ +(^|\.)alternate-tools\.com$ +(^|\.)alternativeto\.net$ +(^|\.)altrec\.com$ +(^|\.)alvinalexander\.com$ +(^|\.)alwaysdata\.com$ +(^|\.)alwaysdata\.net$ +(^|\.)alwaysvpn\.com$ +(^|\.)am730\.com\.hk$ +(^|\.)amazon\.co\.jp$ +(^|\.)amazon\.com$ +(^|\.)ameblo\.jp$ +(^|\.)americangreencard\.com$ +(^|\.)americanunfinished\.com$ +(^|\.)amiblockedornot\.com$ +(^|\.)amigobbs\.net$ +(^|\.)amitabhafoundation\.us$ +(^|\.)amnesty\.org$ +(^|\.)amnesty\.org\.hk$ +(^|\.)amnesty\.tw$ +(^|\.)amnestyusa\.org$ +(^|\.)amnyemachen\.org$ +(^|\.)amoiist\.com$ +(^|\.)ampproject\.org$ +(^|\.)amtb-taipei\.org$ +(^|\.)anchorfree\.com$ +(^|\.)ancsconf\.org$ +(^|\.)andfaraway\.net$ +(^|\.)android-x86\.org$ +(^|\.)android\.com$ +(^|\.)androidify\.com$ +(^|\.)androidplus\.co$ +(^|\.)androidtv\.com$ +(^|\.)andygod\.com$ +(^|\.)angela-merkel\.de$ +(^|\.)angelfire\.com$ +(^|\.)angola\.org$ +(^|\.)angularjs\.org$ +(^|\.)animecrazy\.net$ +(^|\.)animeshippuuden\.com$ +(^|\.)aniscartujo\.com$ +(^|\.)annatam\.com$ +(^|\.)anobii\.com$ +(^|\.)anontext\.com$ +(^|\.)anonymise\.us$ +(^|\.)anonymitynetwork\.com$ +(^|\.)anonymizer\.com$ +(^|\.)anpopo\.com$ +(^|\.)answering-islam\.org$ +(^|\.)anthonycalzadilla\.com$ +(^|\.)anti1984\.com$ +(^|\.)antichristendom\.com$ +(^|\.)antiwave\.net$ +(^|\.)anyporn\.com$ +(^|\.)anysex\.com$ +(^|\.)aobo\.com\.au$ +(^|\.)aofriend\.com$ +(^|\.)aofriend\.com\.au$ +(^|\.)aojiao\.org$ +(^|\.)aolchannels\.aol\.com$ +(^|\.)aomiwang\.com$ +(^|\.)apartmentratings\.com$ +(^|\.)apartments\.com$ +(^|\.)apetube\.com$ +(^|\.)api-secure\.recaptcha\.net$ +(^|\.)api-verify\.recaptcha\.net$ +(^|\.)api\.ai$ +(^|\.)api\.dropboxapi\.com$ +(^|\.)api\.linksalpha\.com$ +(^|\.)api\.proxlet\.com$ +(^|\.)api\.pureapk\.com$ +(^|\.)api\.recaptcha\.net$ +(^|\.)apiary\.io$ +(^|\.)apidocs\.linksalpha\.com$ +(^|\.)apigee\.com$ +(^|\.)apk-dl\.com$ +(^|\.)apkdler\.com$ +(^|\.)apkmirror\.com$ +(^|\.)apkmonk\.com$ +(^|\.)apkplz\.com$ +(^|\.)apkpure\.com$ +(^|\.)aplusvpn\.com$ +(^|\.)app\.box\.com$ +(^|\.)app\.heywire\.com$ +(^|\.)app\.smartmailcloud\.com$ +(^|\.)app\.tutanota\.com$ +(^|\.)appdownloader\.net$ +(^|\.)appledaily\.com$ +(^|\.)appledaily\.com\.hk$ +(^|\.)appledaily\.com\.tw$ +(^|\.)appshopper\.com$ +(^|\.)appsocks\.net$ +(^|\.)appspot\.com$ +(^|\.)appsto\.re$ +(^|\.)aptoide\.com$ +(^|\.)ar\.hao123\.com$ +(^|\.)archive\.fo$ +(^|\.)archive\.is$ +(^|\.)archive\.li$ +(^|\.)archive\.org$ +(^|\.)archive\.today$ +(^|\.)archives\.gov$ +(^|\.)archives\.gov\.tw$ +(^|\.)arctosia\.com$ +(^|\.)areca-backup\.org$ +(^|\.)arena\.taipei$ +(^|\.)arethusa\.su$ +(^|\.)arlingtoncemetery\.mil$ +(^|\.)army\.mil$ +(^|\.)art4tibet1998\.org$ +(^|\.)arte\.tv$ +(^|\.)artofpeacefoundation\.org$ +(^|\.)artsy\.net$ +(^|\.)asacp\.org$ +(^|\.)asdfg\.jp$ +(^|\.)asg\.to$ +(^|\.)asia-gaming\.com$ +(^|\.)asiaharvest\.org$ +(^|\.)asianews\.it$ +(^|\.)asiansexdiary\.com$ +(^|\.)asianspiss\.com$ +(^|\.)asianwomensfilm\.de$ +(^|\.)asiatgp\.com$ +(^|\.)asiatoday\.us$ +(^|\.)askstudent\.com$ +(^|\.)askynz\.net$ +(^|\.)assembla\.com$ +(^|\.)assets\.bwbx\.io$ +(^|\.)assimp\.org$ +(^|\.)astrill\.com$ +(^|\.)atc\.org\.au$ +(^|\.)atchinese\.com$ +(^|\.)atdmt\.com$ +(^|\.)atgfw\.org$ +(^|\.)athenaeizou\.com$ +(^|\.)atlanta168\.com$ +(^|\.)atlaspost\.com$ +(^|\.)atnext\.com$ +(^|\.)authorizeddns\.net$ +(^|\.)authorizeddns\.org$ +(^|\.)authorizeddns\.us$ +(^|\.)autodraw\.com$ +(^|\.)av-e-body\.com$ +(^|\.)av\.com$ +(^|\.)av\.movie$ +(^|\.)av\.nightlife141\.com$ +(^|\.)avaaz\.org$ +(^|\.)avbody\.tv$ +(^|\.)avcity\.tv$ +(^|\.)avcool\.com$ +(^|\.)avdb\.in$ +(^|\.)avdb\.tv$ +(^|\.)avfantasy\.com$ +(^|\.)avgle\.com$ +(^|\.)avidemux\.org$ +(^|\.)avmo\.pw$ +(^|\.)avmoo\.com$ +(^|\.)avmoo\.net$ +(^|\.)avmoo\.pw$ +(^|\.)avoision\.com$ +(^|\.)avyahoo\.com$ +(^|\.)axureformac\.com$ +(^|\.)azerbaycan\.tv$ +(^|\.)azerimix\.com$ +(^|\.)azubu\.tv$ +(^|\.)b0ne\.com$ +(^|\.)babynet\.com\.hk$ +(^|\.)backchina\.com$ +(^|\.)backpackers\.com\.tw$ +(^|\.)backtotiananmen\.com$ +(^|\.)badiucao\.com$ +(^|\.)badjojo\.com$ +(^|\.)badoo\.com$ +(^|\.)baidu\.jp$ +(^|\.)baijie\.org$ +(^|\.)bailandaily\.com$ +(^|\.)baixing\.me$ +(^|\.)bakgeekhome\.tk$ +(^|\.)banana-vpn\.com$ +(^|\.)band\.us$ +(^|\.)bandwagonhost\.com$ +(^|\.)bangbrosnetwork\.com$ +(^|\.)bangchen\.net$ +(^|\.)bangdream\.space$ +(^|\.)bangyoulater\.com$ +(^|\.)bankmobilevibe\.com$ +(^|\.)bannedbook\.org$ +(^|\.)bannednews\.org$ +(^|\.)banorte\.com$ +(^|\.)baramangaonline\.com$ +(^|\.)barenakedislam\.com$ +(^|\.)barnabu\.co\.uk$ +(^|\.)bartvpn\.com$ +(^|\.)bash-hackers\.org$ +(^|\.)bastillepost\.com$ +(^|\.)bayvoice\.net$ +(^|\.)bb-chat\.tv$ +(^|\.)bb\.ttv\.com\.tw$ +(^|\.)bbc\.co\.uk$ +(^|\.)bbc\.com$ +(^|\.)bbc\.in$ +(^|\.)bbcchinese\.com$ +(^|\.)bbchat\.tv$ +(^|\.)bbci\.co\.uk$ +(^|\.)bbg\.gov$ +(^|\.)bbkz\.com$ +(^|\.)bbnradio\.org$ +(^|\.)bbs-tw\.com$ +(^|\.)bbs\.brockbbs\.com$ +(^|\.)bbs\.cantonese\.asia$ +(^|\.)bbs\.ecstart\.com$ +(^|\.)bbs\.hanminzu\.org$ +(^|\.)bbs\.hasi\.wang$ +(^|\.)bbs\.huasing\.org$ +(^|\.)bbs\.junglobal\.net$ +(^|\.)bbs\.kimy\.com\.tw$ +(^|\.)bbs\.mikocon\.com$ +(^|\.)bbs\.morbell\.com$ +(^|\.)bbs\.mychat\.to$ +(^|\.)bbs\.netbig\.com$ +(^|\.)bbs\.ozchinese\.com$ +(^|\.)bbs\.qmzdd\.com$ +(^|\.)bbs\.sina\.com$ +(^|\.)bbs\.sina\.com%2f$ +(^|\.)bbs\.skykiwi\.com$ +(^|\.)bbs\.sou-tong\.org$ +(^|\.)bbs\.tuitui\.info$ +(^|\.)bbsdigest\.com$ +(^|\.)bbsfeed\.com$ +(^|\.)bbsland\.com$ +(^|\.)bbsmo\.com$ +(^|\.)bbsone\.com$ +(^|\.)bbtoystore\.com$ +(^|\.)bcast\.co\.nz$ +(^|\.)bcc\.com\.tw$ +(^|\.)bcchinese\.net$ +(^|\.)bcex\.ca$ +(^|\.)bcmorning\.com$ +(^|\.)bdsmvideos\.net$ +(^|\.)beaconevents\.com$ +(^|\.)bebo\.com$ +(^|\.)beeg\.com$ +(^|\.)beevpn\.com$ +(^|\.)behance\.net$ +(^|\.)behindkink\.com$ +(^|\.)beijing1989\.com$ +(^|\.)beijingspring\.com$ +(^|\.)beijingzx\.org$ +(^|\.)belamionline\.com$ +(^|\.)bell\.wiki$ +(^|\.)bemywife\.cc$ +(^|\.)beric\.me$ +(^|\.)berlintwitterwall\.com$ +(^|\.)berm\.co\.nz$ +(^|\.)bestforchina\.org$ +(^|\.)bestgore\.com$ +(^|\.)bestpornstardb\.com$ +(^|\.)bestvpn\.com$ +(^|\.)bestvpnanalysis\.com$ +(^|\.)bestvpnserver\.com$ +(^|\.)bestvpnservice\.com$ +(^|\.)bestvpnusa\.com$ +(^|\.)bet365\.com$ +(^|\.)betfair\.com$ +(^|\.)betternet\.co$ +(^|\.)bettervpn\.com$ +(^|\.)bettween\.com$ +(^|\.)betvictor\.com$ +(^|\.)bewww\.net$ +(^|\.)beyondfirewall\.com$ +(^|\.)bfnn\.org$ +(^|\.)bfsh\.hk$ +(^|\.)bgvpn\.com$ +(^|\.)bianlei\.com$ +(^|\.)biantailajiao\.com$ +(^|\.)biantailajiao\.in$ +(^|\.)biblesforamerica\.org$ +(^|\.)bibox\.com$ +(^|\.)bic2011\.org$ +(^|\.)big\.one$ +(^|\.)bigfools\.com$ +(^|\.)bigjapanesesex\.com$ +(^|\.)bigmoney\.biz$ +(^|\.)bignews\.org$ +(^|\.)bigsound\.org$ +(^|\.)biliworld\.com$ +(^|\.)billypan\.com$ +(^|\.)binance\.com$ +(^|\.)binux\.me$ +(^|\.)bipic\.net$ +(^|\.)bird\.so$ +(^|\.)bit-z\.com$ +(^|\.)bit\.do$ +(^|\.)bit\.ly$ +(^|\.)bitc\.bme\.emory\.edu$ +(^|\.)bitcointalk\.org$ +(^|\.)bitcoinworld\.com$ +(^|\.)bitfinex\.com$ +(^|\.)bithumb\.com$ +(^|\.)bitinka\.com\.ar$ +(^|\.)bitmex\.com$ +(^|\.)bitshare\.com$ +(^|\.)bitsnoop\.com$ +(^|\.)bitvise\.com$ +(^|\.)bizhat\.com$ +(^|\.)bjnewlife\.org$ +(^|\.)bjs\.org$ +(^|\.)bjzc\.org$ +(^|\.)bl-doujinsouko\.com$ +(^|\.)blacklogic\.com$ +(^|\.)blackvpn\.com$ +(^|\.)blewpass\.com$ +(^|\.)blinkx\.com$ +(^|\.)blinw\.com$ +(^|\.)blip\.tv$ +(^|\.)blockcn\.com$ +(^|\.)blockless\.com$ +(^|\.)blog\.calibre-ebook\.com$ +(^|\.)blog\.cnyes\.com$ +(^|\.)blog\.daum\.net$ +(^|\.)blog\.de$ +(^|\.)blog\.exblog\.co\.jp$ +(^|\.)blog\.excite\.co\.jp$ +(^|\.)blog\.expofutures\.com$ +(^|\.)blog\.fizzik\.com$ +(^|\.)blog\.foolsmountain\.com$ +(^|\.)blog\.fuckgfw233\.org$ +(^|\.)blog\.goo\.ne\.jp$ +(^|\.)blog\.google$ +(^|\.)blog\.inoreader\.com$ +(^|\.)blog\.istef\.info$ +(^|\.)blog\.jackjia\.com$ +(^|\.)blog\.jp$ +(^|\.)blog\.kangye\.org$ +(^|\.)blog\.lester850\.info$ +(^|\.)blog\.martinoei\.com$ +(^|\.)blog\.pathtosharepoint\.com$ +(^|\.)blog\.pentalogic\.net$ +(^|\.)blog\.qooza\.hk$ +(^|\.)blog\.ranxiang\.com$ +(^|\.)blog\.sina\.com\.tw$ +(^|\.)blog\.sogoo\.org$ +(^|\.)blog\.soylent\.com$ +(^|\.)blog\.syx86\.cn$ +(^|\.)blog\.syx86\.com$ +(^|\.)blog\.taragana\.com$ +(^|\.)blog\.tiney\.com$ +(^|\.)blog\.xuite\.net$ +(^|\.)blog\.youthwant\.com\.tw$ +(^|\.)blog\.youxu\.info$ +(^|\.)blogblog\.com$ +(^|\.)blogcatalog\.com$ +(^|\.)blogcity\.me$ +(^|\.)blogdns\.org$ +(^|\.)blogger\.com$ +(^|\.)blogimg\.jp$ +(^|\.)bloglines\.com$ +(^|\.)bloglovin\.com$ +(^|\.)blogs\.icerocket\.com$ +(^|\.)blogs\.libraryinformationtechnology\.com$ +(^|\.)blogs\.tampabay\.com$ +(^|\.)blogs\.yahoo\.co\.jp$ +(^|\.)blogspot\.com$ +(^|\.)blogspot\.hk$ +(^|\.)blogspot\.jp$ +(^|\.)blogspot\.tw$ +(^|\.)blogtd\.net$ +(^|\.)blogtd\.org$ +(^|\.)bloodshed\.net$ +(^|\.)bloomberg\.cn$ +(^|\.)bloomberg\.com$ +(^|\.)bloomberg\.de$ +(^|\.)bloombergview\.com$ +(^|\.)bloomfortune\.com$ +(^|\.)blueangellive\.com$ +(^|\.)bmfinn\.com$ +(^|\.)bnews\.co$ +(^|\.)bnn\.co$ +(^|\.)bnrmetal\.com$ +(^|\.)boardreader\.com$ +(^|\.)bod\.asia$ +(^|\.)bodog88\.com$ +(^|\.)bolehvpn\.net$ +(^|\.)bolin\.netfirms\.com$ +(^|\.)bonbonme\.com$ +(^|\.)bonbonsex\.com$ +(^|\.)bonfoundation\.org$ +(^|\.)bongacams\.com$ +(^|\.)boobstagram\.com$ +(^|\.)book\.com\.tw$ +(^|\.)book\.zi5\.me$ +(^|\.)bookepub\.com$ +(^|\.)books\.com\.tw$ +(^|\.)booktopia\.com\.au$ +(^|\.)boomssr\.com$ +(^|\.)bot\.nu$ +(^|\.)botanwang\.com$ +(^|\.)bowenpress\.com$ +(^|\.)boxpn\.com$ +(^|\.)boxun$ +(^|\.)boxun\.com$ +(^|\.)boxun\.tv$ +(^|\.)boxunblog\.com$ +(^|\.)boxunclub\.com$ +(^|\.)boyangu\.com$ +(^|\.)boyfriendtv\.com$ +(^|\.)boysfood\.com$ +(^|\.)boysmaster\.com$ +(^|\.)br\.hao123\.com$ +(^|\.)br\.st$ +(^|\.)brainyquote\.com$ +(^|\.)brandonhutchinson\.com$ +(^|\.)braumeister\.org$ +(^|\.)bravotube\.net$ +(^|\.)brazzers\.com$ +(^|\.)break\.com$ +(^|\.)breakgfw\.com$ +(^|\.)breaking911\.com$ +(^|\.)breakingtweets\.com$ +(^|\.)breakwall\.net$ +(^|\.)briefdream\.com$ +(^|\.)briian\.com$ +(^|\.)brizzly\.com$ +(^|\.)brkmd\.com$ +(^|\.)broadbook\.com$ +(^|\.)broadpressinc\.com$ +(^|\.)brucewang\.net$ +(^|\.)brutaltgp\.com$ +(^|\.)bt2mag\.com$ +(^|\.)bt95\.com$ +(^|\.)btaia\.com$ +(^|\.)btbtav\.com$ +(^|\.)btc98\.com$ +(^|\.)btcbank\.bank$ +(^|\.)btctrade\.im$ +(^|\.)btdigg\.org$ +(^|\.)btku\.me$ +(^|\.)btku\.org$ +(^|\.)btspread\.com$ +(^|\.)btsynckeys\.com$ +(^|\.)budaedu\.org$ +(^|\.)buddhanet\.com\.tw$ +(^|\.)buddhistchannel\.tv$ +(^|\.)buffered\.com$ +(^|\.)bullog\.org$ +(^|\.)bullogger\.com$ +(^|\.)bunbunhk\.com$ +(^|\.)busayari\.com$ +(^|\.)businessinsider\.com$ +(^|\.)businessweek\.com$ +(^|\.)busu\.org$ +(^|\.)busytrade\.com$ +(^|\.)buugaa\.com$ +(^|\.)buy\.yahoo\.com\.tw$ +(^|\.)buzzhand\.com$ +(^|\.)buzzhand\.net$ +(^|\.)buzzorange\.com$ +(^|\.)bvpn\.com$ +(^|\.)bwgyhw\.com$ +(^|\.)bwh1\.net$ +(^|\.)bwsj\.hk$ +(^|\.)bx\.in\.th$ +(^|\.)bx\.tl$ +(^|\.)bynet\.co\.il$ +(^|\.)c-est-simple\.com$ +(^|\.)c-spanvideo\.org$ +(^|\.)c100tibet\.org$ +(^|\.)c1522\.mooo\.com$ +(^|\.)c2cx\.com$ +(^|\.)cablegatesearch\.net$ +(^|\.)cachinese\.com$ +(^|\.)cacnw\.com$ +(^|\.)cactusvpn\.com$ +(^|\.)cafepress\.com$ +(^|\.)cahr\.org\.tw$ +(^|\.)calameo\.com$ +(^|\.)calebelston\.com$ +(^|\.)calgarychinese\.ca$ +(^|\.)calgarychinese\.com$ +(^|\.)calgarychinese\.net$ +(^|\.)cam4\.com$ +(^|\.)cam4\.jp$ +(^|\.)cam4\.sg$ +(^|\.)camfrog\.com$ +(^|\.)cams\.com$ +(^|\.)cams\.org\.sg$ +(^|\.)canadameet\.com$ +(^|\.)canalporno\.com$ +(^|\.)canyu\.org$ +(^|\.)cao\.im$ +(^|\.)caobian\.info$ +(^|\.)caochangqing\.com$ +(^|\.)cap\.org\.hk$ +(^|\.)carabinasypistolas\.com$ +(^|\.)cardinalkungfoundation\.org$ +(^|\.)carfax\.com$ +(^|\.)cari\.com\.my$ +(^|\.)caribbeancom\.com$ +(^|\.)carmotorshow\.com$ +(^|\.)cartoonmovement\.com$ +(^|\.)casadeltibetbcn\.org$ +(^|\.)casatibet\.org\.mx$ +(^|\.)casino\.williamhill\.com$ +(^|\.)casinobellini\.com$ +(^|\.)casinoking\.com$ +(^|\.)casinoriva\.com$ +(^|\.)castbox\.fm$ +(^|\.)catch22\.net$ +(^|\.)catchgod\.com$ +(^|\.)catfightpayperview\.xxx$ +(^|\.)catholic\.org\.hk$ +(^|\.)catholic\.org\.tw$ +(^|\.)cathvoice\.org\.tw$ +(^|\.)cattt\.com$ +(^|\.)cbc\.ca$ +(^|\.)cbs\.ntu\.edu\.tw$ +(^|\.)cbsnews\.com$ +(^|\.)cbtc\.org\.hk$ +(^|\.)cccat\.cc$ +(^|\.)cccat\.co$ +(^|\.)ccdtr\.org$ +(^|\.)cchere\.com$ +(^|\.)ccim\.org$ +(^|\.)cclife\.ca$ +(^|\.)cclife\.org$ +(^|\.)cclifefl\.org$ +(^|\.)ccthere\.com$ +(^|\.)ccthere\.net$ +(^|\.)cctmweb\.net$ +(^|\.)cctongbao\.com$ +(^|\.)ccue\.ca$ +(^|\.)ccue\.com$ +(^|\.)ccvoice\.ca$ +(^|\.)ccw\.org\.tw$ +(^|\.)cdbook\.org$ +(^|\.)cdcparty\.com$ +(^|\.)cdef\.org$ +(^|\.)cdig\.info$ +(^|\.)cdjp\.org$ +(^|\.)cdn$ +(^|\.)cdn-apple\.com$ +(^|\.)cdn-images\.mailchimp\.com$ +(^|\.)cdn\.assets\.lfpcontent\.com$ +(^|\.)cdn\.helixstudios\.net$ +(^|\.)cdn\.printfriendly\.com$ +(^|\.)cdn\.seatguru\.com$ +(^|\.)cdn\.softlayer\.net$ +(^|\.)cdn1\.lp\.saboom\.com$ +(^|\.)cdnews\.com\.tw$ +(^|\.)cdninstagram\.com$ +(^|\.)cdp1989\.org$ +(^|\.)cdp1998\.org$ +(^|\.)cdp2006\.org$ +(^|\.)cdpa\.url\.tw$ +(^|\.)cdpeu\.org$ +(^|\.)cdpusa\.org$ +(^|\.)cdpweb\.org$ +(^|\.)cdpwu\.org$ +(^|\.)cdw\.com$ +(^|\.)cecc\.gov$ +(^|\.)cellulo\.info$ +(^|\.)cenews\.eu$ +(^|\.)centauro\.com\.br$ +(^|\.)centerforhumanreprod\.com$ +(^|\.)centralnation\.com$ +(^|\.)centurys\.net$ +(^|\.)certificate-transparency\.org$ +(^|\.)certificate\.revocationcheck\.com$ +(^|\.)cfhks\.org\.hk$ +(^|\.)cfos\.de$ +(^|\.)cftfc\.com$ +(^|\.)cgdepot\.org$ +(^|\.)cgst\.edu$ +(^|\.)ch\.shvoong\.com$ +(^|\.)change\.org$ +(^|\.)changeip\.name$ +(^|\.)changeip\.net$ +(^|\.)changeip\.org$ +(^|\.)changp\.com$ +(^|\.)changsa\.net$ +(^|\.)channel8news\.sg$ +(^|\.)chaoex\.com$ +(^|\.)chapm25\.com$ +(^|\.)chatnook\.com$ +(^|\.)chaturbate\.com$ +(^|\.)chengmingmag\.com$ +(^|\.)chenguangcheng\.com$ +(^|\.)chenpokong\.com$ +(^|\.)chenpokong\.net$ +(^|\.)chenshan20042005\.wordpress\.com$ +(^|\.)cherrysave\.com$ +(^|\.)chhongbi\.org$ +(^|\.)chicagoncmtv\.com$ +(^|\.)china-mmm\.jp\.net$ +(^|\.)china-mmm\.net$ +(^|\.)china-mmm\.sa\.com$ +(^|\.)china-review\.com\.ua$ +(^|\.)china-week\.com$ +(^|\.)china\.hket\.com$ +(^|\.)china\.ucanews\.com$ +(^|\.)china101\.com$ +(^|\.)china18\.org$ +(^|\.)china21\.com$ +(^|\.)china21\.org$ +(^|\.)china5000\.us$ +(^|\.)chinaaffairs\.org$ +(^|\.)chinaaid\.me$ +(^|\.)chinaaid\.net$ +(^|\.)chinaaid\.org$ +(^|\.)chinaaid\.us$ +(^|\.)chinachange\.org$ +(^|\.)chinachannel\.hk$ +(^|\.)chinacitynews\.be$ +(^|\.)chinacomments\.org$ +(^|\.)chinadialogue\.net$ +(^|\.)chinadigitaltimes\.net$ +(^|\.)chinaelections\.org$ +(^|\.)chinaeweekly\.com$ +(^|\.)chinafreepress\.org$ +(^|\.)chinagate\.com$ +(^|\.)chinageeks\.org$ +(^|\.)chinagfw\.org$ +(^|\.)chinagonet\.com$ +(^|\.)chinagreenparty\.org$ +(^|\.)chinahorizon\.org$ +(^|\.)chinahush\.com$ +(^|\.)chinainperspective\.com$ +(^|\.)chinainterimgov\.org$ +(^|\.)chinalaborwatch\.org$ +(^|\.)chinalawandpolicy\.com$ +(^|\.)chinalawtranslate\.com$ +(^|\.)chinamule\.com$ +(^|\.)chinamz\.org$ +(^|\.)chinapost\.com\.tw$ +(^|\.)chinapress\.com\.my$ +(^|\.)chinarightsia\.org$ +(^|\.)chinasmile\.net$ +(^|\.)chinasocialdemocraticparty\.com$ +(^|\.)chinasoul\.org$ +(^|\.)chinasucks\.net$ +(^|\.)chinatimes\.com$ +(^|\.)chinatopsex\.com$ +(^|\.)chinatown\.com\.au$ +(^|\.)chinatweeps\.com$ +(^|\.)chinaview\.wordpress\.com$ +(^|\.)chinaway\.org$ +(^|\.)chinaworker\.info$ +(^|\.)chinaxchina\.com$ +(^|\.)chinayouth\.org\.hk$ +(^|\.)chinayuanmin\.org$ +(^|\.)chinese-hermit\.net$ +(^|\.)chinese-leaders\.org$ +(^|\.)chinese-memorial\.org$ +(^|\.)chinese\.donga\.com$ +(^|\.)chinese\.engadget\.com$ +(^|\.)chinese\.irib\.ir$ +(^|\.)chinese\.soifind\.com$ +(^|\.)chinesedaily\.com$ +(^|\.)chinesedailynews\.com$ +(^|\.)chinesedemocracy\.com$ +(^|\.)chinesegay\.org$ +(^|\.)chinesen\.de$ +(^|\.)chinesenews\.net\.au$ +(^|\.)chinesepen\.org$ +(^|\.)chinesetalks\.net$ +(^|\.)chineseupress\.com$ +(^|\.)chingcheong\.com$ +(^|\.)chinman\.net$ +(^|\.)chithu\.org$ +(^|\.)chn\.chosun\.com$ +(^|\.)chobit\.cc$ +(^|\.)chrdnet\.com$ +(^|\.)christianfreedom\.org$ +(^|\.)christianstudy\.com$ +(^|\.)christiantimes\.org\.hk$ +(^|\.)christusrex\.org$ +(^|\.)chrlawyers\.hk$ +(^|\.)chrome\.com$ +(^|\.)chromecast\.com$ +(^|\.)chromeexperiments\.com$ +(^|\.)chromercise\.com$ +(^|\.)chromestatus\.com$ +(^|\.)chromium\.org$ +(^|\.)chuang-yen\.org$ +(^|\.)chubold\.com$ +(^|\.)chubun\.com$ +(^|\.)chuizi\.net$ +(^|\.)churchinhongkong\.org$ +(^|\.)chushigangdrug\.ch$ +(^|\.)cienen\.com$ +(^|\.)cineastentreff\.de$ +(^|\.)cipfg\.org$ +(^|\.)circlethebayfortibet\.org$ +(^|\.)cirosantilli\.com$ +(^|\.)citizencn\.com$ +(^|\.)citizenlab\.org$ +(^|\.)citizenscommission\.hk$ +(^|\.)citizensradio\.org$ +(^|\.)city365\.ca$ +(^|\.)city9x\.com$ +(^|\.)citypopulation\.de$ +(^|\.)citytalk\.tw$ +(^|\.)civicparty\.hk$ +(^|\.)civildisobediencemovement\.org$ +(^|\.)civilhrfront\.org$ +(^|\.)civiliangunner\.com$ +(^|\.)civilmedia\.tw$ +(^|\.)ck101\.com$ +(^|\.)cl\.d0z\.net$ +(^|\.)clarionproject\.org$ +(^|\.)classicalguitarblog\.net$ +(^|\.)clb\.org\.hk$ +(^|\.)cldr\.unicode\.org$ +(^|\.)cleansite\.biz$ +(^|\.)cleansite\.info$ +(^|\.)cleansite\.us$ +(^|\.)clearharmony\.net$ +(^|\.)clearsurance\.com$ +(^|\.)clearwisdom\.net$ +(^|\.)clementine-player\.org$ +(^|\.)cling\.omy\.sg$ +(^|\.)clinica-tibet\.ru$ +(^|\.)clipfish\.de$ +(^|\.)cloakpoint\.com$ +(^|\.)cloud\.feedly\.com$ +(^|\.)cloud\.mail\.ru$ +(^|\.)club1069\.com$ +(^|\.)clyp\.it$ +(^|\.)cmcn\.org$ +(^|\.)cmi\.org\.tw$ +(^|\.)cmp\.hku\.hk$ +(^|\.)cms\.gov$ +(^|\.)cmule\.com$ +(^|\.)cmule\.org$ +(^|\.)cmx\.im$ +(^|\.)cn-proxy\.com$ +(^|\.)cn\.calameo\.com$ +(^|\.)cn\.dayabook\.com$ +(^|\.)cn\.fmnnow\.com$ +(^|\.)cn\.freeones\.com$ +(^|\.)cn\.giganews\.com$ +(^|\.)cn\.ibtimes\.com$ +(^|\.)cn\.nytstyle\.com$ +(^|\.)cn\.sandscotaicentral\.com$ +(^|\.)cn\.shafaqna\.com$ +(^|\.)cn\.streetvoice\.com$ +(^|\.)cn\.thegay\.com$ +(^|\.)cn\.uncyclopedia\.wikia\.com$ +(^|\.)cn\.uptodown\.com$ +(^|\.)cn\.voa\.mobi$ +(^|\.)cn2\.streetvoice\.com$ +(^|\.)cn6\.eu$ +(^|\.)cna\.com\.tw$ +(^|\.)cnabc\.com$ +(^|\.)cnbbnews\.wordpress\.com$ +(^|\.)cnd\.org$ +(^|\.)cnex\.org\.cn$ +(^|\.)cnineu\.com$ +(^|\.)cnn\.com$ +(^|\.)cnnews\.chosun\.com$ +(^|\.)cnpolitics\.org$ +(^|\.)cnproxy\.com$ +(^|\.)co\.ng\.mil$ +(^|\.)coat\.co\.jp$ +(^|\.)cobinhood\.com$ +(^|\.)cochina\.co$ +(^|\.)cochina\.org$ +(^|\.)code1984\.com$ +(^|\.)codeshare\.io$ +(^|\.)codeskulptor\.org$ +(^|\.)coin2co\.in$ +(^|\.)coinbene\.com$ +(^|\.)coinegg\.com$ +(^|\.)coinex\.com$ +(^|\.)coingi\.com$ +(^|\.)coinrail\.co\.kr$ +(^|\.)cointiger\.com$ +(^|\.)cointobe\.com$ +(^|\.)coinut\.com$ +(^|\.)collateralmurder\.com$ +(^|\.)collateralmurder\.org$ +(^|\.)com\.google$ +(^|\.)comefromchina\.com$ +(^|\.)comic-mega\.me$ +(^|\.)commandarms\.com$ +(^|\.)commentshk\.com$ +(^|\.)communistcrimes\.org$ +(^|\.)community\.windy\.com$ +(^|\.)communitychoicecu\.com$ +(^|\.)compileheart\.com$ +(^|\.)compress\.to$ +(^|\.)connect\.facebook\.net$ +(^|\.)conoha\.jp$ +(^|\.)contactmagazine\.net$ +(^|\.)contests\.twilio\.com$ +(^|\.)convio\.net$ +(^|\.)coobay\.com$ +(^|\.)coolaler\.com$ +(^|\.)coolder\.com$ +(^|\.)coolloud\.org\.tw$ +(^|\.)coolncute\.com$ +(^|\.)coolstuffinc\.com$ +(^|\.)corumcollege\.com$ +(^|\.)cos-moe\.com$ +(^|\.)cosmic\.monar\.ch$ +(^|\.)cosplayjav\.pl$ +(^|\.)costco\.com$ +(^|\.)cotweet\.com$ +(^|\.)counter\.social$ +(^|\.)coursehero\.com$ +(^|\.)cpj\.org$ +(^|\.)cq99\.us$ +(^|\.)crackle\.com$ +(^|\.)crazys\.cc$ +(^|\.)crazyshit\.com$ +(^|\.)crbug\.com$ +(^|\.)crchina\.org$ +(^|\.)crd-net\.org$ +(^|\.)creaders\.net$ +(^|\.)creadersnet\.com$ +(^|\.)creativelab5\.com$ +(^|\.)crisisresponse\.google$ +(^|\.)cristyli\.com$ +(^|\.)crocotube\.com$ +(^|\.)crossfire\.co\.kr$ +(^|\.)crossthewall\.net$ +(^|\.)crossvpn\.net$ +(^|\.)crrev\.com$ +(^|\.)crucial\.com$ +(^|\.)csdparty\.com$ +(^|\.)css\.pixnet\.in$ +(^|\.)csuchen\.de$ +(^|\.)csw\.org\.uk$ +(^|\.)ct\.org\.tw$ +(^|\.)ctao\.org$ +(^|\.)ctfriend\.net$ +(^|\.)cthlo\.github\.io$ +(^|\.)ctitv\.com\.tw$ +(^|\.)cts\.com\.tw$ +(^|\.)cuhkacs\.org$ +(^|\.)cuihua\.org$ +(^|\.)cuiweiping\.net$ +(^|\.)culture\.tw$ +(^|\.)cumlouder\.com$ +(^|\.)curvefish\.com$ +(^|\.)cusu\.hk$ +(^|\.)cutscenes\.net$ +(^|\.)cw\.com\.tw$ +(^|\.)cyberghost\.natado\.com$ +(^|\.)cyberghostvpn\.com$ +(^|\.)cynscribe\.com$ +(^|\.)cytode\.us$ +(^|\.)d-fukyu\.com$ +(^|\.)d100\.net$ +(^|\.)d1b183sg0nvnuh\.cloudfront\.net$ +(^|\.)d1c37gjwa26taa\.cloudfront\.net$ +(^|\.)d2bay\.com$ +(^|\.)d2pass\.com$ +(^|\.)d3c33hcgiwev3\.cloudfront\.net$ +(^|\.)d3rhr7kgmtrq1v\.cloudfront\.net$ +(^|\.)dabr\.co\.uk$ +(^|\.)dabr\.eu$ +(^|\.)dabr\.me$ +(^|\.)dabr\.mobi$ +(^|\.)dadazim\.com$ +(^|\.)dadi360\.com$ +(^|\.)dafabet\.com$ +(^|\.)dafagood\.com$ +(^|\.)dafahao\.com$ +(^|\.)dafoh\.org$ +(^|\.)daftporn\.com$ +(^|\.)dagelijksestandaard\.nl$ +(^|\.)daidostup\.ru$ +(^|\.)dailidaili\.com$ +(^|\.)dailymotion\.com$ +(^|\.)dailynews\.sina\.com$ +(^|\.)dailynews\.sina\.com%2f$ +(^|\.)dailyview\.tw$ +(^|\.)daiphapinfo\.net$ +(^|\.)dajiyuan\.com$ +(^|\.)dajiyuan\.de$ +(^|\.)dajiyuan\.eu$ +(^|\.)dajusha\.baywords\.com$ +(^|\.)dalailama-archives\.org$ +(^|\.)dalailama\.com$ +(^|\.)dalailama\.mn$ +(^|\.)dalailama\.ru$ +(^|\.)dalailama\.usc\.edu$ +(^|\.)dalailama80\.org$ +(^|\.)dalailamacenter\.org$ +(^|\.)dalailamafellows\.org$ +(^|\.)dalailamafilm\.com$ +(^|\.)dalailamafoundation\.org$ +(^|\.)dalailamahindi\.com$ +(^|\.)dalailamainaustralia\.org$ +(^|\.)dalailamajapanese\.com$ +(^|\.)dalailamaprotesters\.info$ +(^|\.)dalailamaquotes\.org$ +(^|\.)dalailamatrust\.org$ +(^|\.)dalailamavisit\.org\.nz$ +(^|\.)dalailamaworld\.com$ +(^|\.)dalianmeng\.org$ +(^|\.)daliulian\.org$ +(^|\.)danbooru\.donmai\.us$ +(^|\.)danke4china\.net$ +(^|\.)danwei\.org$ +(^|\.)daodu14\.jigsy\.com$ +(^|\.)daolan\.net$ +(^|\.)daozhongxing\.org$ +(^|\.)darktech\.org$ +(^|\.)darktoy\.net$ +(^|\.)darpa\.mil$ +(^|\.)dastrassi\.org$ +(^|\.)data-vocabulary\.org$ +(^|\.)data\.flurry\.com$ +(^|\.)data\.gov\.tw$ +(^|\.)david-kilgour\.com$ +(^|\.)dawangidc\.com$ +(^|\.)daxa\.cn$ +(^|\.)daylife\.com$ +(^|\.)db\.tt$ +(^|\.)dbc\.hk$ +(^|\.)dcard\.tw$ +(^|\.)dcmilitary\.com$ +(^|\.)ddc\.com\.tw$ +(^|\.)ddhw\.info$ +(^|\.)ddns\.info$ +(^|\.)ddns\.me\.uk$ +(^|\.)ddns\.mobi$ +(^|\.)ddns\.ms$ +(^|\.)ddns\.name$ +(^|\.)ddns\.net$ +(^|\.)ddns\.us$ +(^|\.)de-sci\.org$ +(^|\.)deaftone\.com$ +(^|\.)debug\.com$ +(^|\.)deck\.ly$ +(^|\.)decodet\.co$ +(^|\.)deepmind\.com$ +(^|\.)deezer\.com$ +(^|\.)definebabe\.com$ +(^|\.)deja\.com$ +(^|\.)delcamp\.net$ +(^|\.)delicious\.com$ +(^|\.)demo\.opera-mini\.net$ +(^|\.)democrats\.org$ +(^|\.)depositphotos\.com$ +(^|\.)derekhsu\.homeip\.net$ +(^|\.)desc\.se$ +(^|\.)design\.google$ +(^|\.)desipro\.de$ +(^|\.)dessci\.com$ +(^|\.)destiny\.xfiles\.to$ +(^|\.)destroy-china\.jp$ +(^|\.)deutsche-welle\.de$ +(^|\.)developers\.box\.net$ +(^|\.)devio\.us$ +(^|\.)devpn\.com$ +(^|\.)dfas\.mil$ +(^|\.)dfn\.org$ +(^|\.)dharamsalanet\.com$ +(^|\.)dharmakara\.net$ +(^|\.)dhcp\.biz$ +(^|\.)diaoyuislands\.org$ +(^|\.)dictionary\.goo\.ne\.jp$ +(^|\.)difangwenge\.org$ +(^|\.)digiland\.tw$ +(^|\.)digisfera\.com$ +(^|\.)digitalnomadsproject\.org$ +(^|\.)diigo\.com$ +(^|\.)dilber\.se$ +(^|\.)dingchin\.com\.tw$ +(^|\.)dipity\.com$ +(^|\.)directcreative\.com$ +(^|\.)discoins\.com$ +(^|\.)discordapp\.com$ +(^|\.)discordapp\.net$ +(^|\.)discuss\.com\.hk$ +(^|\.)discuss4u\.com$ +(^|\.)dish\.com$ +(^|\.)disp\.cc$ +(^|\.)disqus\.com$ +(^|\.)dit-inc\.us$ +(^|\.)dizhidizhi\.com$ +(^|\.)dizhuzhishang\.com$ +(^|\.)djangosnippets\.org$ +(^|\.)djorz\.com$ +(^|\.)dl-laby\.jp$ +(^|\.)dl\.box\.net$ +(^|\.)dlsite\.com$ +(^|\.)dlyoutube\.com$ +(^|\.)dm530\.net$ +(^|\.)dmcdn\.net$ +(^|\.)dmm\.co\.jp$ +(^|\.)dns-dns\.com$ +(^|\.)dns-stuff\.com$ +(^|\.)dns04\.com$ +(^|\.)dns05\.com$ +(^|\.)dns1\.us$ +(^|\.)dns2\.us$ +(^|\.)dns2go\.com$ +(^|\.)dnscrypt\.org$ +(^|\.)dnset\.com$ +(^|\.)dnsrd\.com$ +(^|\.)dnssec\.net$ +(^|\.)dnvod\.tv$ +(^|\.)doctorvoice\.org$ +(^|\.)dogfartnetwork\.com$ +(^|\.)dojin\.com$ +(^|\.)dok-forum\.net$ +(^|\.)dolc\.de$ +(^|\.)dolf\.org\.hk$ +(^|\.)dollf\.com$ +(^|\.)domain\.club\.tw$ +(^|\.)domainhelp\.search\.com$ +(^|\.)domains\.google$ +(^|\.)domaintoday\.com\.au$ +(^|\.)dongtaiwang\.com$ +(^|\.)dongtaiwang\.net$ +(^|\.)dongyangjing\.com$ +(^|\.)dontfilter\.us$ +(^|\.)dontmovetochina\.com$ +(^|\.)dorjeshugden\.com$ +(^|\.)dotplane\.com$ +(^|\.)dotsub\.com$ +(^|\.)dotvpn\.com$ +(^|\.)doub\.io$ +(^|\.)doubibackup\.com$ +(^|\.)doubmirror\.cf$ +(^|\.)dougscripts\.com$ +(^|\.)douhokanko\.net$ +(^|\.)doujincafe\.com$ +(^|\.)dowei\.org$ +(^|\.)download\.aircrack-ng\.org$ +(^|\.)download\.cnet\.com$ +(^|\.)download\.ithome\.com\.tw$ +(^|\.)dphk\.org$ +(^|\.)dpp\.org\.tw$ +(^|\.)dpr\.info$ +(^|\.)dragonex\.io$ +(^|\.)dragonsprings\.org$ +(^|\.)dreamamateurs\.com$ +(^|\.)drepung\.org$ +(^|\.)drgan\.net$ +(^|\.)drmingxia\.org$ +(^|\.)dropbooks\.tv$ +(^|\.)dropbox\.com$ +(^|\.)dropboxusercontent\.com$ +(^|\.)drsunacademy\.com$ +(^|\.)drtuber\.com$ +(^|\.)dscn\.info$ +(^|\.)dsmtp\.com$ +(^|\.)dstk\.dk$ +(^|\.)dtdns\.net$ +(^|\.)dtiblog\.com$ +(^|\.)dtic\.mil$ +(^|\.)dtwang\.org$ +(^|\.)duanzhihu\.com$ +(^|\.)duck\.com$ +(^|\.)duckdns\.org$ +(^|\.)duckduckgo-owned-server\.yahoo\.net$ +(^|\.)duckduckgo\.com$ +(^|\.)duckload\.com$ +(^|\.)duckmylife\.com$ +(^|\.)duga\.jp$ +(^|\.)duihua\.org$ +(^|\.)duihuahrjournal\.org$ +(^|\.)dumb1\.com$ +(^|\.)dunyabulteni\.net$ +(^|\.)duoweitimes\.com$ +(^|\.)duping\.net$ +(^|\.)duplicati\.com$ +(^|\.)dupola\.com$ +(^|\.)dupola\.net$ +(^|\.)dushi\.ca$ +(^|\.)dvdpac\.com$ +(^|\.)dvorak\.org$ +(^|\.)dw-world\.com$ +(^|\.)dw-world\.de$ +(^|\.)dw\.com$ +(^|\.)dw\.de$ +(^|\.)dwnews\.com$ +(^|\.)dwnews\.net$ +(^|\.)dynamic-dns\.net$ +(^|\.)dynamicdns\.biz$ +(^|\.)dynamicdns\.co\.uk$ +(^|\.)dynamicdns\.me\.uk$ +(^|\.)dynamicdns\.org\.uk$ +(^|\.)dynawebinc\.com$ +(^|\.)dyndns-ip\.com$ +(^|\.)dyndns-pics\.com$ +(^|\.)dyndns\.org$ +(^|\.)dyndns\.pro$ +(^|\.)dynssl\.com$ +(^|\.)dynu\.com$ +(^|\.)dynu\.net$ +(^|\.)dynupdate\.no-ip\.com$ +(^|\.)dysfz\.cc$ +(^|\.)dzze\.com$ +(^|\.)e-classical\.com\.tw$ +(^|\.)e-gold\.com$ +(^|\.)e-hentai\.org$ +(^|\.)e-hentaidb\.com$ +(^|\.)e-info\.org\.tw$ +(^|\.)e-traderland\.net$ +(^|\.)e-zone\.com\.hk$ +(^|\.)e123\.hk$ +(^|\.)earlytibet\.com$ +(^|\.)earthcam\.com$ +(^|\.)earthvpn\.com$ +(^|\.)eastern-ark\.com$ +(^|\.)easternlightning\.org$ +(^|\.)eastturkestan\.com$ +(^|\.)eastturkistan-gov\.org$ +(^|\.)eastturkistancc\.org$ +(^|\.)eastturkistangovernmentinexile\.us$ +(^|\.)easyca\.ca$ +(^|\.)easypic\.com$ +(^|\.)ebony-beauty\.com$ +(^|\.)ebook\.hyread\.com\.tw$ +(^|\.)ebookbrowse\.com$ +(^|\.)ebookee\.com$ +(^|\.)ebtcbank\.com$ +(^|\.)ecfa\.org\.tw$ +(^|\.)echofon\.com$ +(^|\.)ecimg\.tw$ +(^|\.)ecministry\.net$ +(^|\.)economist\.com$ +(^|\.)ecsm\.vs\.com$ +(^|\.)edgecastcdn\.net$ +(^|\.)edicypages\.com$ +(^|\.)edmontonchina\.cn$ +(^|\.)edmontonservice\.com$ +(^|\.)edns\.biz$ +(^|\.)edoors\.com$ +(^|\.)edubridge\.com$ +(^|\.)edupro\.org$ +(^|\.)eeas\.europa\.eu$ +(^|\.)eesti\.ee$ +(^|\.)eevpn\.com$ +(^|\.)efcc\.org\.hk$ +(^|\.)effers\.com$ +(^|\.)efksoft\.com$ +(^|\.)efukt\.com$ +(^|\.)eic-av\.com$ +(^|\.)eireinikotaerukai\.com$ +(^|\.)eisbb\.com$ +(^|\.)eksisozluk\.com$ +(^|\.)electionsmeter\.com$ +(^|\.)elgoog\.im$ +(^|\.)ellawine\.org$ +(^|\.)elpais\.com$ +(^|\.)eltondisney\.com$ +(^|\.)emaga\.com$ +(^|\.)emanna\.com$ +(^|\.)embr\.in$ +(^|\.)emilylau\.org\.hk$ +(^|\.)empfil\.com$ +(^|\.)emule-ed2k\.com$ +(^|\.)emulefans\.com$ +(^|\.)emuparadise\.me$ +(^|\.)en\.favotter\.net$ +(^|\.)en\.hao123\.com$ +(^|\.)enanyang\.my$ +(^|\.)enewstree\.com$ +(^|\.)enfal\.de$ +(^|\.)engagedaily\.org$ +(^|\.)englishforeveryone\.org$ +(^|\.)englishfromengland\.co\.uk$ +(^|\.)englishpen\.org$ +(^|\.)enlighten\.org\.tw$ +(^|\.)entermap\.com$ +(^|\.)entnt\.com$ +(^|\.)environment\.google$ +(^|\.)epa\.gov\.tw$ +(^|\.)epac\.to$ +(^|\.)episcopalchurch\.org$ +(^|\.)epochhk\.com$ +(^|\.)epochtimes-bg\.com$ +(^|\.)epochtimes-romania\.com$ +(^|\.)epochtimes\.co\.il$ +(^|\.)epochtimes\.co\.kr$ +(^|\.)epochtimes\.com$ +(^|\.)epochtimes\.cz$ +(^|\.)epochtimes\.de$ +(^|\.)epochtimes\.fr$ +(^|\.)epochtimes\.ie$ +(^|\.)epochtimes\.it$ +(^|\.)epochtimes\.jp$ +(^|\.)epochtimes\.ru$ +(^|\.)epochtimes\.se$ +(^|\.)epochtimestr\.com$ +(^|\.)epochweek\.com$ +(^|\.)epochweekly\.com$ +(^|\.)eporner\.com$ +(^|\.)equinenow\.com$ +(^|\.)erabaru\.net$ +(^|\.)eracom\.com\.tw$ +(^|\.)eraysoft\.com\.tr$ +(^|\.)erepublik\.com$ +(^|\.)erights\.net$ +(^|\.)eriversoft\.com$ +(^|\.)erktv\.com$ +(^|\.)ernestmandel\.org$ +(^|\.)erodaizensyu\.com$ +(^|\.)erodoujinlog\.com$ +(^|\.)erodoujinworld\.com$ +(^|\.)eromanga-kingdom\.com$ +(^|\.)eromangadouzin\.com$ +(^|\.)eromon\.net$ +(^|\.)eroprofile\.com$ +(^|\.)eroticsaloon\.net$ +(^|\.)eslite\.com$ +(^|\.)esmtp\.biz$ +(^|\.)esurance\.com$ +(^|\.)etaa\.org\.au$ +(^|\.)etadult\.com$ +(^|\.)etaiwannews\.com$ +(^|\.)etherdelta\.com$ +(^|\.)etizer\.org$ +(^|\.)etokki\.com$ +(^|\.)etools\.ncol\.com$ +(^|\.)etowns\.net$ +(^|\.)etowns\.org$ +(^|\.)ettoday\.net$ +(^|\.)etvonline\.hk$ +(^|\.)eu\.org$ +(^|\.)eucasino\.com$ +(^|\.)eulam\.com$ +(^|\.)eurekavpt\.com$ +(^|\.)euronews\.com$ +(^|\.)evchk\.wikia\.com$ +(^|\.)evschool\.net$ +(^|\.)exblog\.jp$ +(^|\.)exchristian\.hk$ +(^|\.)exmo\.com$ +(^|\.)exmormon\.org$ +(^|\.)expatshield\.com$ +(^|\.)expecthim\.com$ +(^|\.)expekt\.com$ +(^|\.)experts-univers\.com$ +(^|\.)exploader\.net$ +(^|\.)expressvpn\.com$ +(^|\.)exrates\.me$ +(^|\.)extmatrix\.com$ +(^|\.)extremetube\.com$ +(^|\.)exx\.com$ +(^|\.)eyevio\.jp$ +(^|\.)eyny\.com$ +(^|\.)ezpc\.tk$ +(^|\.)ezpeer\.com$ +(^|\.)ezua\.com$ +(^|\.)fa\.gov\.tw$ +(^|\.)facebook\.br$ +(^|\.)facebook\.com$ +(^|\.)facebook\.design$ +(^|\.)facebook\.hu$ +(^|\.)facebook\.in$ +(^|\.)facebook\.nl$ +(^|\.)facebook\.se$ +(^|\.)facebookmail\.com$ +(^|\.)facebookquotes4u\.com$ +(^|\.)faceless\.me$ +(^|\.)facesofnyfw\.com$ +(^|\.)facesoftibetanselfimmolators\.info$ +(^|\.)fail\.hk$ +(^|\.)faith100\.org$ +(^|\.)faithfuleye\.com$ +(^|\.)faiththedog\.info$ +(^|\.)fakku\.net$ +(^|\.)falsefire\.com$ +(^|\.)falun-co\.org$ +(^|\.)falun-ny\.net$ +(^|\.)falun\.caltech\.edu$ +(^|\.)falunart\.org$ +(^|\.)falunasia\.info$ +(^|\.)falunau\.org$ +(^|\.)falunaz\.net$ +(^|\.)falundafa-dc\.org$ +(^|\.)falundafa-florida\.org$ +(^|\.)falundafa-nc\.org$ +(^|\.)falundafa-pa\.net$ +(^|\.)falundafa-sacramento\.org$ +(^|\.)falundafa\.org$ +(^|\.)falundafaindia\.org$ +(^|\.)falundafamuseum\.org$ +(^|\.)falungong\.club$ +(^|\.)falungong\.de$ +(^|\.)falungong\.org\.uk$ +(^|\.)falunhr\.org$ +(^|\.)faluninfo\.de$ +(^|\.)faluninfo\.net$ +(^|\.)falunpilipinas\.net$ +(^|\.)falunworld\.net$ +(^|\.)familyfed\.org$ +(^|\.)famunion\.com$ +(^|\.)fan-qiang\.com$ +(^|\.)fangbinxing\.com$ +(^|\.)fangeming\.com$ +(^|\.)fangeqiang\.com$ +(^|\.)fanglizhi\.info$ +(^|\.)fangmincn\.org$ +(^|\.)fangong\.forums-free\.com$ +(^|\.)fangong\.org$ +(^|\.)fangongheike\.com$ +(^|\.)fanhaodang\.com$ +(^|\.)fanqiang\.tk$ +(^|\.)fanqianghou\.com$ +(^|\.)fanqiangyakexi\.net$ +(^|\.)fanqiangzhe\.com$ +(^|\.)fanswong\.com$ +(^|\.)fanyue\.info$ +(^|\.)fapdu\.com$ +(^|\.)faproxy\.com$ +(^|\.)faqserv\.com$ +(^|\.)fartit\.com$ +(^|\.)farwestchina\.com$ +(^|\.)fast\.wistia\.com$ +(^|\.)fastpic\.ru$ +(^|\.)fastssh\.com$ +(^|\.)faststone\.org$ +(^|\.)fatbtc\.com$ +(^|\.)favstar\.fm$ +(^|\.)fawanghuihui\.org$ +(^|\.)faydao\.com$ +(^|\.)fb\.com$ +(^|\.)fb\.me$ +(^|\.)fbaddins\.com$ +(^|\.)fbcdn\.net$ +(^|\.)fbsbx\.com$ +(^|\.)fbworkmail\.com$ +(^|\.)fc2\.com$ +(^|\.)fc2blog\.net$ +(^|\.)fc2china\.com$ +(^|\.)fc2cn\.com$ +(^|\.)fda\.gov\.tw$ +(^|\.)fdc64\.de$ +(^|\.)fdc64\.org$ +(^|\.)fdc89\.jp$ +(^|\.)feedburner\.com$ +(^|\.)feeds\.fileforum\.com$ +(^|\.)feelssh\.com$ +(^|\.)feer\.com$ +(^|\.)feifeiss\.com$ +(^|\.)feitian-california\.org$ +(^|\.)feitianacademy\.org$ +(^|\.)feministteacher\.com$ +(^|\.)fengzhenghu\.com$ +(^|\.)fengzhenghu\.net$ +(^|\.)fevernet\.com$ +(^|\.)ff\.im$ +(^|\.)fffff\.at$ +(^|\.)fflick\.com$ +(^|\.)ffvpn\.com$ +(^|\.)fgmtv\.net$ +(^|\.)fgmtv\.org$ +(^|\.)fhreports\.net$ +(^|\.)figprayer\.com$ +(^|\.)fileflyer\.com$ +(^|\.)files2me\.com$ +(^|\.)fileserve\.com$ +(^|\.)filesor\.com$ +(^|\.)fillthesquare\.org$ +(^|\.)filmingfortibet\.org$ +(^|\.)filmy\.olabloga\.pl$ +(^|\.)filthdump\.com$ +(^|\.)financetwitter\.com$ +(^|\.)finchvpn\.com$ +(^|\.)findmespot\.com$ +(^|\.)findyoutube\.com$ +(^|\.)findyoutube\.net$ +(^|\.)fingerdaily\.com$ +(^|\.)finler\.net$ +(^|\.)firearmsworld\.net$ +(^|\.)firebaseio\.com$ +(^|\.)fireofliberty\.org$ +(^|\.)firetweet\.io$ +(^|\.)firstfivefollowers\.com$ +(^|\.)flagsonline\.it$ +(^|\.)flecheinthepeche\.fr$ +(^|\.)fleshbot\.com$ +(^|\.)fleursdeslettres\.com$ +(^|\.)flgg\.us$ +(^|\.)flgjustice\.org$ +(^|\.)flickr\.com$ +(^|\.)flickrhivemind\.net$ +(^|\.)flickriver\.com$ +(^|\.)fling\.com$ +(^|\.)flipboard\.com$ +(^|\.)flipkart\.com$ +(^|\.)flitto\.com$ +(^|\.)flnet\.org$ +(^|\.)flog\.tw$ +(^|\.)flyvpn\.com$ +(^|\.)flyzy2005\.com$ +(^|\.)fnac\.be$ +(^|\.)fnac\.com$ +(^|\.)fochk\.org$ +(^|\.)focustaiwan\.tw$ +(^|\.)focusvpn\.com$ +(^|\.)fofg-europe\.net$ +(^|\.)fofg\.org$ +(^|\.)fofldfradio\.org$ +(^|\.)fooooo\.com$ +(^|\.)footwiball\.com$ +(^|\.)foreignpolicy\.com$ +(^|\.)forum\.baby-kingdom\.com$ +(^|\.)forum\.cyberctm\.com$ +(^|\.)forum\.idsam\.com$ +(^|\.)forum\.my903\.com$ +(^|\.)forum\.mymaji\.com$ +(^|\.)forum\.omy\.sg$ +(^|\.)forum\.palmislife\.com$ +(^|\.)forum\.setty\.com\.tw$ +(^|\.)forum\.sina\.com\.hk$ +(^|\.)forum\.slime\.com\.tw$ +(^|\.)forum\.tvb\.com$ +(^|\.)forum\.xinbao\.de$ +(^|\.)forum4hk\.com$ +(^|\.)fotile\.me$ +(^|\.)fourface\.nodesnoop\.com$ +(^|\.)fourthinternational\.org$ +(^|\.)foxdie\.us$ +(^|\.)foxgay\.com$ +(^|\.)foxsub\.com$ +(^|\.)foxtang\.com$ +(^|\.)fpmt-osel\.org$ +(^|\.)fpmt\.org$ +(^|\.)fpmt\.tw$ +(^|\.)fpmtmexico\.org$ +(^|\.)fq\.wikia\.com$ +(^|\.)fqok\.org$ +(^|\.)fqrouter\.com$ +(^|\.)franklc\.com$ +(^|\.)freakshare\.com$ +(^|\.)free-gate\.org$ +(^|\.)free-hada-now\.org$ +(^|\.)free-proxy\.cz$ +(^|\.)free-ss\.site$ +(^|\.)free-ssh\.com$ +(^|\.)free\.fr$ +(^|\.)free4u\.com\.ar$ +(^|\.)freealim\.com$ +(^|\.)freebrowser\.org$ +(^|\.)freechal\.com$ +(^|\.)freechina\.net$ +(^|\.)freechina\.news$ +(^|\.)freechinaforum\.org$ +(^|\.)freechinaweibo\.com$ +(^|\.)freeddns\.com$ +(^|\.)freeddns\.org$ +(^|\.)freedomchina\.info$ +(^|\.)freedomcollection\.org$ +(^|\.)freedomhouse\.org$ +(^|\.)freedominfonetweb\.wordpress\.com$ +(^|\.)freedomsherald\.org$ +(^|\.)freeforums\.org$ +(^|\.)freefq\.com$ +(^|\.)freefuckvids\.com$ +(^|\.)freegao\.com$ +(^|\.)freeilhamtohti\.org$ +(^|\.)freekwonpyong\.org$ +(^|\.)freelotto\.com$ +(^|\.)freeman2\.com$ +(^|\.)freemoren\.com$ +(^|\.)freemorenews\.com$ +(^|\.)freemuse\.org$ +(^|\.)freenet$ +(^|\.)freenet-china\.org$ +(^|\.)freenetproject\.org$ +(^|\.)freenewscn\.com$ +(^|\.)freeopenvpn\.com$ +(^|\.)freeoz\.org$ +(^|\.)freessh\.us$ +(^|\.)freetcp\.com$ +(^|\.)freetibet\.net$ +(^|\.)freetibet\.org$ +(^|\.)freetibetanheroes\.org$ +(^|\.)freeviewmovies\.com$ +(^|\.)freevpn\.me$ +(^|\.)freevpn\.nl$ +(^|\.)freewallpaper4\.me$ +(^|\.)freewebs\.com$ +(^|\.)freewechat\.com$ +(^|\.)freeweibo\.com$ +(^|\.)freewww\.biz$ +(^|\.)freewww\.info$ +(^|\.)freexinwen\.com$ +(^|\.)freeyellow\.com$ +(^|\.)freeyoutubeproxy\.net$ +(^|\.)friendfeed-media\.com$ +(^|\.)friendfeed\.com$ +(^|\.)friends-of-tibet\.org$ +(^|\.)friendsoftibet\.org$ +(^|\.)fring\.com$ +(^|\.)fringenetwork\.com$ +(^|\.)from-pr\.com$ +(^|\.)from-sd\.com$ +(^|\.)fromchinatousa\.net$ +(^|\.)frommel\.net$ +(^|\.)frontlinedefenders\.org$ +(^|\.)frootvpn\.com$ +(^|\.)fscked\.org$ +(^|\.)fsurf\.com$ +(^|\.)ftchinese\.com$ +(^|\.)ftp1\.biz$ +(^|\.)ftpserver\.biz$ +(^|\.)ftv\.com\.tw$ +(^|\.)fucd\.com$ +(^|\.)fuckcnnic\.net$ +(^|\.)fuckgfw\.org$ +(^|\.)fullerconsideration\.com$ +(^|\.)fulue\.com$ +(^|\.)funf\.tw$ +(^|\.)funkyimg\.com$ +(^|\.)funp\.com$ +(^|\.)fuq\.com$ +(^|\.)furbo\.org$ +(^|\.)furhhdl\.org$ +(^|\.)furinkan\.com$ +(^|\.)furl\.net$ +(^|\.)futurechinaforum\.org$ +(^|\.)futuremessage\.org$ +(^|\.)fux\.com$ +(^|\.)fuyin\.net$ +(^|\.)fuyindiantai\.org$ +(^|\.)fuyu\.org\.tw$ +(^|\.)fw\.cm$ +(^|\.)fxcm-chinese\.com$ +(^|\.)fxnetworks\.com$ +(^|\.)fzh999\.com$ +(^|\.)fzh999\.net$ +(^|\.)fzlm\.com$ +(^|\.)g-area\.org$ +(^|\.)g-queen\.com$ +(^|\.)g\.co$ +(^|\.)g0v\.social$ +(^|\.)g6hentai\.com$ +(^|\.)gabocorp\.com$ +(^|\.)gaeproxy\.com$ +(^|\.)gaforum\.org$ +(^|\.)galaxymacau\.com$ +(^|\.)galenwu\.com$ +(^|\.)galstars\.net$ +(^|\.)game735\.com$ +(^|\.)gamebase\.com\.tw$ +(^|\.)gamejolt\.com$ +(^|\.)gamer-cds\.cdn\.hinet\.net$ +(^|\.)gamer\.com\.tw$ +(^|\.)gamer2-cds\.cdn\.hinet\.net$ +(^|\.)gamez\.com\.tw$ +(^|\.)gamousa\.com$ +(^|\.)ganges\.com$ +(^|\.)gaoming\.net$ +(^|\.)gaopi\.net$ +(^|\.)gaozhisheng\.net$ +(^|\.)gaozhisheng\.org$ +(^|\.)gardennetworks\.com$ +(^|\.)gardennetworks\.org$ +(^|\.)gartlive\.com$ +(^|\.)gate-project\.com$ +(^|\.)gate\.io$ +(^|\.)gatecoin\.com$ +(^|\.)gather\.com$ +(^|\.)gatherproxy\.com$ +(^|\.)gati\.org\.tw$ +(^|\.)gaybubble\.com$ +(^|\.)gaycn\.net$ +(^|\.)gayhub\.com$ +(^|\.)gaymap\.cc$ +(^|\.)gaymenring\.com$ +(^|\.)gaytube\.com$ +(^|\.)gaywatch\.com$ +(^|\.)gazotube\.com$ +(^|\.)gcc\.org\.hk$ +(^|\.)gclooney\.com$ +(^|\.)gcmasia\.com$ +(^|\.)gcpnews\.com$ +(^|\.)gcr\.io$ +(^|\.)gdbt\.net$ +(^|\.)gdzf\.org$ +(^|\.)geek-art\.net$ +(^|\.)geekerhome\.com$ +(^|\.)geekheart\.info$ +(^|\.)gekikame\.com$ +(^|\.)gelbooru\.com$ +(^|\.)geocities\.co\.jp$ +(^|\.)geocities\.com$ +(^|\.)geocities\.jp$ +(^|\.)gerefoundation\.org$ +(^|\.)get\.app$ +(^|\.)get\.how$ +(^|\.)get\.page$ +(^|\.)getastrill\.com$ +(^|\.)getchu\.com$ +(^|\.)getcloak\.com$ +(^|\.)getfoxyproxy\.org$ +(^|\.)getfreedur\.com$ +(^|\.)getgom\.com$ +(^|\.)geti2p\.net$ +(^|\.)getiton\.com$ +(^|\.)getjetso\.com$ +(^|\.)getlantern\.org$ +(^|\.)getmdl\.io$ +(^|\.)getoutline\.org$ +(^|\.)getsocialscope\.com$ +(^|\.)getsync\.com$ +(^|\.)gettrials\.com$ +(^|\.)gettyimages\.com$ +(^|\.)getuploader\.com$ +(^|\.)gfbv\.de$ +(^|\.)gfgold\.com\.hk$ +(^|\.)gfsale\.com$ +(^|\.)gfw\.org\.ua$ +(^|\.)gfw\.press$ +(^|\.)ggpht\.com$ +(^|\.)ggssl\.com$ +(^|\.)ghostpath\.com$ +(^|\.)ghut\.org$ +(^|\.)giantessnight\.com$ +(^|\.)gifree\.com$ +(^|\.)giga-web\.jp$ +(^|\.)gigporno\.ru$ +(^|\.)girlbanker\.com$ +(^|\.)git\.io$ +(^|\.)github\.com$ +(^|\.)gizlen\.net$ +(^|\.)gjczz\.com$ +(^|\.)glass8\.eu$ +(^|\.)global\.bing\.com$ +(^|\.)globaljihad\.net$ +(^|\.)globalmediaoutreach\.com$ +(^|\.)globalmuseumoncommunism\.org$ +(^|\.)globalrescue\.net$ +(^|\.)globaltm\.org$ +(^|\.)globalvoices\.org$ +(^|\.)globalvoicesonline\.org$ +(^|\.)globalvpn\.net$ +(^|\.)glock\.com$ +(^|\.)gloryhole\.com$ +(^|\.)glorystar\.me$ +(^|\.)gluckman\.com$ +(^|\.)glype\.com$ +(^|\.)gmail\.com$ +(^|\.)gmbd\.cn$ +(^|\.)gmhz\.org$ +(^|\.)gmll\.org$ +(^|\.)gmodules\.com$ +(^|\.)gmozomg\.izihost\.org$ +(^|\.)gnci\.org\.hk$ +(^|\.)go-pki\.com$ +(^|\.)go\.nesnode\.com$ +(^|\.)go141\.com$ +(^|\.)goagent\.biz$ +(^|\.)goagent\.codeplex\.com$ +(^|\.)goagentplus\.com$ +(^|\.)gobet\.cc$ +(^|\.)godfootsteps\.org$ +(^|\.)godns\.work$ +(^|\.)godoc\.org$ +(^|\.)godsdirectcontact\.co\.uk$ +(^|\.)godsdirectcontact\.org$ +(^|\.)godsdirectcontact\.org\.tw$ +(^|\.)godsimmediatecontact\.com$ +(^|\.)gogotunnel\.com$ +(^|\.)gohappy\.com\.tw$ +(^|\.)gojet\.krtco\.com\.tw$ +(^|\.)gokbayrak\.com$ +(^|\.)golang\.org$ +(^|\.)goldbet\.com$ +(^|\.)goldbetsports\.com$ +(^|\.)goldeneyevault\.com$ +(^|\.)goldenfrog\.com$ +(^|\.)goldjizz\.com$ +(^|\.)goldstep\.net$ +(^|\.)goldwave\.com$ +(^|\.)gongm\.in$ +(^|\.)gongmeng\.info$ +(^|\.)gongminliliang\.com$ +(^|\.)gongwt\.com$ +(^|\.)goo\.gl$ +(^|\.)gooday\.xyz$ +(^|\.)gooddns\.info$ +(^|\.)goodreaders\.com$ +(^|\.)goodreads\.com$ +(^|\.)goodtv\.com\.tw$ +(^|\.)goodtv\.tv$ +(^|\.)goofind\.com$ +(^|\.)google\.ae$ +(^|\.)google\.am$ +(^|\.)google\.as$ +(^|\.)google\.at$ +(^|\.)google\.az$ +(^|\.)google\.ba$ +(^|\.)google\.be$ +(^|\.)google\.bg$ +(^|\.)google\.ca$ +(^|\.)google\.calstate\.edu$ +(^|\.)google\.cd$ +(^|\.)google\.ci$ +(^|\.)google\.co\.id$ +(^|\.)google\.co\.jp$ +(^|\.)google\.co\.kr$ +(^|\.)google\.co\.ma$ +(^|\.)google\.co\.uk$ +(^|\.)google\.com$ +(^|\.)google\.de$ +(^|\.)google\.dj$ +(^|\.)google\.dk$ +(^|\.)google\.es$ +(^|\.)google\.fi$ +(^|\.)google\.fm$ +(^|\.)google\.fr$ +(^|\.)google\.gg$ +(^|\.)google\.gl$ +(^|\.)google\.gr$ +(^|\.)google\.ie$ +(^|\.)google\.is$ +(^|\.)google\.it$ +(^|\.)google\.jo$ +(^|\.)google\.kz$ +(^|\.)google\.lv$ +(^|\.)google\.mn$ +(^|\.)google\.ms$ +(^|\.)google\.nl$ +(^|\.)google\.no$ +(^|\.)google\.nu$ +(^|\.)google\.ro$ +(^|\.)google\.ru$ +(^|\.)google\.rw$ +(^|\.)google\.sc$ +(^|\.)google\.sh$ +(^|\.)google\.sk$ +(^|\.)google\.sm$ +(^|\.)google\.sn$ +(^|\.)google\.tk$ +(^|\.)google\.tm$ +(^|\.)google\.to$ +(^|\.)google\.tt$ +(^|\.)google\.vu$ +(^|\.)google\.ws$ +(^|\.)googleapis\.cn$ +(^|\.)googleapis\.com$ +(^|\.)googleapps\.com$ +(^|\.)googlearth\.com$ +(^|\.)googleartproject\.com$ +(^|\.)googleblog\.com$ +(^|\.)googlebot\.com$ +(^|\.)googlechinawebmaster\.com$ +(^|\.)googlecode\.com$ +(^|\.)googlecommerce\.com$ +(^|\.)googledomains\.com$ +(^|\.)googledrive\.com$ +(^|\.)googleearth\.com$ +(^|\.)googlegroups\.com$ +(^|\.)googlehosted\.com$ +(^|\.)googleideas\.com$ +(^|\.)googleinsidesearch\.com$ +(^|\.)googlelabs\.com$ +(^|\.)googlemail\.com$ +(^|\.)googlemashups\.com$ +(^|\.)googlepagecreator\.com$ +(^|\.)googleplay\.com$ +(^|\.)googleplus\.com$ +(^|\.)googlescholar\.com$ +(^|\.)googlesile\.com$ +(^|\.)googlesource\.com$ +(^|\.)googleusercontent\.com$ +(^|\.)googlevideo\.com$ +(^|\.)googleweblight\.com$ +(^|\.)googlezip\.net$ +(^|\.)gopetition\.com$ +(^|\.)goproxing\.net$ +(^|\.)goregrish\.com$ +(^|\.)gospelherald\.com$ +(^|\.)got-game\.org$ +(^|\.)gotdns\.ch$ +(^|\.)gotgeeks\.com$ +(^|\.)gotrusted\.com$ +(^|\.)gotw\.ca$ +(^|\.)gov\.taipei$ +(^|\.)gov\.tw$ +(^|\.)gr8domain\.biz$ +(^|\.)gr8name\.biz$ +(^|\.)grammaly\.com$ +(^|\.)grandtrial\.org$ +(^|\.)grangorz\.org$ +(^|\.)graphis\.ne\.jp$ +(^|\.)graphql\.org$ +(^|\.)greasespot\.net$ +(^|\.)great-firewall\.com$ +(^|\.)great-roc\.org$ +(^|\.)greatfire\.org$ +(^|\.)greatfire\.us7\.list-manage\.com$ +(^|\.)greatfirewall\.biz$ +(^|\.)greatfirewallofchina\.net$ +(^|\.)greatfirewallofchina\.org$ +(^|\.)greatroc\.org$ +(^|\.)greatroc\.tw$ +(^|\.)greatzhonghua\.org$ +(^|\.)greenfieldbookstore\.com\.hk$ +(^|\.)greenparty\.org\.tw$ +(^|\.)greenpeace\.com\.tw$ +(^|\.)greenpeace\.org$ +(^|\.)greenreadings\.com$ +(^|\.)greenvpn\.net$ +(^|\.)greenvpn\.org$ +(^|\.)grotty-monday\.com$ +(^|\.)groups\.google\.cn$ +(^|\.)grow\.google$ +(^|\.)gs-discuss\.com$ +(^|\.)gsp\.target\.com$ +(^|\.)gstatic\.com$ +(^|\.)gtricks\.com$ +(^|\.)gts-vpn\.com$ +(^|\.)gu-chu-sum\.org$ +(^|\.)guaguass\.com$ +(^|\.)guaguass\.org$ +(^|\.)guancha\.org$ +(^|\.)guaneryu\.com$ +(^|\.)guangming\.com\.my$ +(^|\.)guardster\.com$ +(^|\.)guishan\.org$ +(^|\.)gumroad\.com$ +(^|\.)gun-world\.net$ +(^|\.)gunsamerica\.com$ +(^|\.)gunsandammo\.com$ +(^|\.)guo\.media$ +(^|\.)guruonline\.hk$ +(^|\.)gutteruncensored\.com$ +(^|\.)gvlib\.com$ +(^|\.)gvm\.com\.tw$ +(^|\.)gvt0\.com$ +(^|\.)gvt1\.com$ +(^|\.)gvt3\.com$ +(^|\.)gwtproject\.org$ +(^|\.)gyalwarinpoche\.com$ +(^|\.)gyatsostudio\.com$ +(^|\.)gzm\.tv$ +(^|\.)gzone-anime\.info$ +(^|\.)h-china\.org$ +(^|\.)h-moe\.com$ +(^|\.)h1n1china\.org$ +(^|\.)h528\.com$ +(^|\.)h5dm\.com$ +(^|\.)h5galgame\.me$ +(^|\.)hacg\.club$ +(^|\.)hacg\.in$ +(^|\.)hacg\.li$ +(^|\.)hacg\.me$ +(^|\.)hacg\.red$ +(^|\.)hacken\.cc$ +(^|\.)hacker\.org$ +(^|\.)hackthatphone\.net$ +(^|\.)hahaxixi\.github\.io$ +(^|\.)hahlo\.com$ +(^|\.)hakkatv\.org\.tw$ +(^|\.)handcraftedsoftware\.org$ +(^|\.)hanunyi\.com$ +(^|\.)hao\.news$ +(^|\.)haoel\.github\.io$ +(^|\.)happy-vpn\.com$ +(^|\.)haproxy\.org$ +(^|\.)hardsextube\.com$ +(^|\.)harunyahya\.com$ +(^|\.)hautelook\.com$ +(^|\.)hautelookcdn\.com$ +(^|\.)have8\.com$ +(^|\.)hbg\.com$ +(^|\.)hbo\.com$ +(^|\.)hclips\.com$ +(^|\.)hd\.stheadline\.com$ +(^|\.)hdlt\.me$ +(^|\.)hdtvb\.net$ +(^|\.)hdzog\.com$ +(^|\.)heartyit\.com$ +(^|\.)heavy-r\.com$ +(^|\.)hec\.su$ +(^|\.)hecaitou\.net$ +(^|\.)hechaji\.com$ +(^|\.)heeact\.edu\.tw$ +(^|\.)hegre-art\.com$ +(^|\.)heix\.pp\.ru$ +(^|\.)helloandroid\.com$ +(^|\.)helloqueer\.com$ +(^|\.)helloss\.pw$ +(^|\.)hellotxt\.com$ +(^|\.)hellouk\.org$ +(^|\.)help\.linksalpha\.com$ +(^|\.)helpeachpeople\.com$ +(^|\.)helplinfen\.com$ +(^|\.)helpster\.de$ +(^|\.)helpzhuling\.org$ +(^|\.)hentai\.to$ +(^|\.)hentaitube\.tv$ +(^|\.)hentaivideoworld\.com$ +(^|\.)heqinglian\.net$ +(^|\.)heungkongdiscuss\.com$ +(^|\.)hexieshe\.com$ +(^|\.)hexieshe\.xyz$ +(^|\.)hexxeh\.net$ +(^|\.)heyzo\.com$ +(^|\.)hgseav\.com$ +(^|\.)hhdcb3office\.org$ +(^|\.)hhthesakyatrizin\.org$ +(^|\.)hi-on\.org\.tw$ +(^|\.)hidden-advent\.org$ +(^|\.)hide\.me$ +(^|\.)hidecloud\.com$ +(^|\.)hidein\.net$ +(^|\.)hideipvpn\.com$ +(^|\.)hideman\.net$ +(^|\.)hideme\.nl$ +(^|\.)hidemy\.name$ +(^|\.)hidemyass\.com$ +(^|\.)hidemycomp\.com$ +(^|\.)higfw\.com$ +(^|\.)highpeakspureearth\.com$ +(^|\.)highrockmedia\.com$ +(^|\.)hihiforum\.com$ +(^|\.)hihistory\.net$ +(^|\.)hiitch\.com$ +(^|\.)hikinggfw\.org$ +(^|\.)hilive\.tv$ +(^|\.)himalayan-foundation\.org$ +(^|\.)himalayanglacier\.com$ +(^|\.)himemix\.com$ +(^|\.)himemix\.net$ +(^|\.)hitbtc\.com$ +(^|\.)hitomi\.la$ +(^|\.)hiwifi\.com$ +(^|\.)hizb-ut-tahrir\.info$ +(^|\.)hizb-ut-tahrir\.org$ +(^|\.)hizbuttahrir\.org$ +(^|\.)hjclub\.info$ +(^|\.)hk-pub\.com$ +(^|\.)hk\.frienddy\.com$ +(^|\.)hk\.geocities\.com$ +(^|\.)hk\.gradconnection\.com$ +(^|\.)hk\.hao123img\.com$ +(^|\.)hk\.jiepang\.com$ +(^|\.)hk\.knowledge\.yahoo\.com$ +(^|\.)hk\.myblog\.yahoo\.com$ +(^|\.)hk\.news\.yahoo\.com$ +(^|\.)hk\.rd\.yahoo\.com$ +(^|\.)hk\.search\.yahoo\.com$ +(^|\.)hk\.video\.news\.yahoo\.com$ +(^|\.)hk\.yahoo\.com$ +(^|\.)hk01\.com$ +(^|\.)hk32168\.com$ +(^|\.)hka8964\.wordpress\.com$ +(^|\.)hkacg\.com$ +(^|\.)hkacg\.net$ +(^|\.)hkanews\.wordpress\.com$ +(^|\.)hkatvnews\.com$ +(^|\.)hkbc\.net$ +(^|\.)hkbf\.org$ +(^|\.)hkbookcity\.com$ +(^|\.)hkchurch\.org$ +(^|\.)hkci\.org\.hk$ +(^|\.)hkcmi\.edu$ +(^|\.)hkcnews\.com$ +(^|\.)hkcoc\.com$ +(^|\.)hkcoc\.weather\.com\.hk$ +(^|\.)hkdailynews\.com\.hk$ +(^|\.)hkday\.net$ +(^|\.)hkdf\.org$ +(^|\.)hkej\.com$ +(^|\.)hkepc\.com$ +(^|\.)hkfaa\.com$ +(^|\.)hkfreezone\.com$ +(^|\.)hkfront\.org$ +(^|\.)hkgalden\.com$ +(^|\.)hkgolden\.com$ +(^|\.)hkgreenradio\.org$ +(^|\.)hkheadline\.com$ +(^|\.)hkhkhk\.com$ +(^|\.)hkhrc\.org\.hk$ +(^|\.)hkhrm\.org\.hk$ +(^|\.)hkip\.org\.uk$ +(^|\.)hkjc\.com$ +(^|\.)hkjp\.org$ +(^|\.)hklft\.com$ +(^|\.)hklts\.org\.hk$ +(^|\.)hkptu\.org$ +(^|\.)hkreporter\.com$ +(^|\.)hkreporter\.loved\.hk$ +(^|\.)hkupop\.hku\.hk$ +(^|\.)hkusu\.net$ +(^|\.)hkvwet\.com$ +(^|\.)hkwcc\.org\.hk$ +(^|\.)hkzone\.org$ +(^|\.)hmonghot\.com$ +(^|\.)hmv\.co\.jp$ +(^|\.)hmvdigital\.ca$ +(^|\.)hmvdigital\.com$ +(^|\.)hnjhj\.com$ +(^|\.)hnntube\.com$ +(^|\.)hola\.com$ +(^|\.)hola\.org$ +(^|\.)holymountaincn\.com$ +(^|\.)holyspiritspeaks\.org$ +(^|\.)home\.sina\.com$ +(^|\.)home\.so-net\.net\.tw$ +(^|\.)homedepot\.com$ +(^|\.)homeperversion\.com$ +(^|\.)homeservershow\.com$ +(^|\.)hongkongfp\.com$ +(^|\.)hongmeimei\.com$ +(^|\.)hongzhi\.li$ +(^|\.)hootsuite\.com$ +(^|\.)hoovers\.com$ +(^|\.)hopedialogue\.org$ +(^|\.)hopto\.org$ +(^|\.)hornygamer\.com$ +(^|\.)hornytrip\.com$ +(^|\.)hotav\.tv$ +(^|\.)hotels\.cn$ +(^|\.)hotfrog\.com\.tw$ +(^|\.)hotgoo\.com$ +(^|\.)hotpornshow\.com$ +(^|\.)hotpot\.hk$ +(^|\.)hotshame\.com$ +(^|\.)hotspotshield\.com$ +(^|\.)hotvpn\.com$ +(^|\.)hougaige\.com$ +(^|\.)howtoforge\.com$ +(^|\.)hoxx\.com$ +(^|\.)hpa\.gov\.tw$ +(^|\.)hqcdp\.org$ +(^|\.)hqjapanesesex\.com$ +(^|\.)hqmovies\.com$ +(^|\.)hqsbnet\.wordpress\.com$ +(^|\.)hqsbonline\.wordpress\.com$ +(^|\.)hrcchina\.org$ +(^|\.)hrcir\.com$ +(^|\.)hrea\.org$ +(^|\.)hrichina\.org$ +(^|\.)hrtsea\.com$ +(^|\.)hrw\.org$ +(^|\.)hrweb\.org$ +(^|\.)hsjp\.net$ +(^|\.)hsselite\.com$ +(^|\.)hst\.net\.tw$ +(^|\.)hstern\.net$ +(^|\.)hstt\.net$ +(^|\.)ht\.ly$ +(^|\.)htkou\.net$ +(^|\.)htl\.li$ +(^|\.)html5rocks\.com$ +(^|\.)https$ +(^|\.)https443\.net$ +(^|\.)https443\.org$ +(^|\.)hua-yue\.net$ +(^|\.)huaglad\.com$ +(^|\.)huanghuagang\.org$ +(^|\.)huangyiyu\.com$ +(^|\.)huaren\.us$ +(^|\.)huaren4us\.com$ +(^|\.)huashangnews\.com$ +(^|\.)huaxia-news\.com$ +(^|\.)huaxiabao\.org$ +(^|\.)huaxin\.ph$ +(^|\.)huayuworld\.org$ +(^|\.)hudatoriq\.web\.id$ +(^|\.)hudson\.org$ +(^|\.)huffingtonpost\.com$ +(^|\.)hugoroy\.eu$ +(^|\.)huhaitai\.com$ +(^|\.)huhamhire\.com$ +(^|\.)huiyi\.in$ +(^|\.)hulkshare\.com$ +(^|\.)hulu\.com$ +(^|\.)huluim\.com$ +(^|\.)hum$ +(^|\.)humanrightsbriefing\.org$ +(^|\.)hung-ya\.com$ +(^|\.)hungerstrikeforaids\.org$ +(^|\.)huobi\.com$ +(^|\.)huobi\.pro$ +(^|\.)huobipro\.com$ +(^|\.)huping\.net$ +(^|\.)hurgokbayrak\.com$ +(^|\.)hurriyet\.com\.tr$ +(^|\.)hustlercash\.com$ +(^|\.)hut2\.ru$ +(^|\.)hutianyi\.net$ +(^|\.)hutong9\.net$ +(^|\.)huyandex\.com$ +(^|\.)hwadzan\.tw$ +(^|\.)hwayue\.org\.tw$ +(^|\.)hwinfo\.com$ +(^|\.)hxwk\.org$ +(^|\.)hxwq\.org$ +(^|\.)hybrid-analysis\.com$ +(^|\.)hyperrate\.com$ +(^|\.)i-cable\.com$ +(^|\.)i-part\.com\.tw$ +(^|\.)i\.lithium\.com$ +(^|\.)i1\.hk$ +(^|\.)i2p2\.de$ +(^|\.)i2runner\.com$ +(^|\.)i818hk\.com$ +(^|\.)iam\.soy$ +(^|\.)iamtopone\.com$ +(^|\.)iask\.bz$ +(^|\.)iask\.ca$ +(^|\.)iav19\.com$ +(^|\.)ibiblio\.org$ +(^|\.)iblist\.com$ +(^|\.)iblogserv-f\.net$ +(^|\.)ibros\.org$ +(^|\.)ibvpn\.com$ +(^|\.)icams\.com$ +(^|\.)ice\.audionow\.com$ +(^|\.)icij\.org$ +(^|\.)icl-fi\.org$ +(^|\.)icoco\.com$ +(^|\.)iconpaper\.org$ +(^|\.)icu-project\.org$ +(^|\.)id\.hao123\.com$ +(^|\.)id\.heroku\.com$ +(^|\.)iddddg\.com$ +(^|\.)idemocracy\.asia$ +(^|\.)identi\.ca$ +(^|\.)idiomconnection\.com$ +(^|\.)idouga\.com$ +(^|\.)idreamx\.com$ +(^|\.)idv\.tw$ +(^|\.)ieasy5\.com$ +(^|\.)ied2k\.net$ +(^|\.)ienergy1\.com$ +(^|\.)if\.ttt$ +(^|\.)ifan\.cz\.cc$ +(^|\.)ifanqiang\.com$ +(^|\.)ifcss\.org$ +(^|\.)ifjc\.org$ +(^|\.)ifreewares\.com$ +(^|\.)ift\.tt$ +(^|\.)igcd\.net$ +(^|\.)igfw\.net$ +(^|\.)igfw\.tech$ +(^|\.)igmg\.de$ +(^|\.)ignitedetroit\.net$ +(^|\.)igoogle\.com$ +(^|\.)igotmail\.com\.tw$ +(^|\.)igvita\.com$ +(^|\.)ihakka\.net$ +(^|\.)ihao\.org$ +(^|\.)iicns\.com$ +(^|\.)iipdigital\.usembassy\.gov$ +(^|\.)ikstar\.com$ +(^|\.)ikwb\.com$ +(^|\.)illusionfactory\.com$ +(^|\.)ilove80\.be$ +(^|\.)ilovelongtoes\.com$ +(^|\.)im\.tv$ +(^|\.)im88\.tw$ +(^|\.)imageab\.com$ +(^|\.)imagefap\.com$ +(^|\.)imageflea\.com$ +(^|\.)images-gaytube\.com$ +(^|\.)images\.comico\.tw$ +(^|\.)imageshack\.us$ +(^|\.)imagevenue\.com$ +(^|\.)imagezilla\.net$ +(^|\.)imb\.org$ +(^|\.)imdb\.com$ +(^|\.)img$ +(^|\.)img\.dlsite\.jp$ +(^|\.)img\.ly$ +(^|\.)imgchili\.net$ +(^|\.)imgmega\.com$ +(^|\.)imgur\.com$ +(^|\.)imkev\.com$ +(^|\.)imlive\.com$ +(^|\.)immigration\.gov\.tw$ +(^|\.)immoral\.jp$ +(^|\.)impact\.org\.au$ +(^|\.)impp\.mn$ +(^|\.)in-disguise\.com$ +(^|\.)in99\.org$ +(^|\.)incapdns\.net$ +(^|\.)incloak\.com$ +(^|\.)incredibox\.fr$ +(^|\.)indiandefensenews\.in$ +(^|\.)indiemerch\.com$ +(^|\.)info-graf\.fr$ +(^|\.)initiativesforchina\.org$ +(^|\.)inkui\.com$ +(^|\.)inmediahk\.net$ +(^|\.)innermongolia\.org$ +(^|\.)inote\.tw$ +(^|\.)insecam\.org$ +(^|\.)insidevoa\.com$ +(^|\.)instagram\.com$ +(^|\.)instanthq\.com$ +(^|\.)institut-tibetain\.org$ +(^|\.)international-news\.newsmagazine\.asia$ +(^|\.)internet\.org$ +(^|\.)internetdefenseleague\.org$ +(^|\.)internetfreedom\.org$ +(^|\.)internetpopculture\.com$ +(^|\.)inthenameofconfuciusmovie\.com$ +(^|\.)investigating\.wordpress\.com$ +(^|\.)inxian\.com$ +(^|\.)iownyour\.biz$ +(^|\.)iownyour\.org$ +(^|\.)ipalter\.com$ +(^|\.)ipfire\.org$ +(^|\.)ipfs\.io$ +(^|\.)iphone4hongkong\.com$ +(^|\.)iphonehacks\.com$ +(^|\.)iphonetaiwan\.org$ +(^|\.)iphonix\.fr$ +(^|\.)ipicture\.ru$ +(^|\.)ipjetable\.net$ +(^|\.)ipobar\.com$ +(^|\.)ipoock\.com$ +(^|\.)iportal\.me$ +(^|\.)ippotv\.com$ +(^|\.)ipredator\.se$ +(^|\.)iptv\.com\.tw$ +(^|\.)iptvbin\.com$ +(^|\.)ipvanish\.com$ +(^|\.)iredmail\.org$ +(^|\.)ironbigfools\.compython\.net$ +(^|\.)ironpython\.net$ +(^|\.)ironsocket\.com$ +(^|\.)is-a-hunter\.com$ +(^|\.)is\.gd$ +(^|\.)isaacmao\.com$ +(^|\.)isasecret\.com$ +(^|\.)isc\.sans\.edu$ +(^|\.)isgreat\.org$ +(^|\.)islahhaber\.net$ +(^|\.)islam\.org\.hk$ +(^|\.)islamawareness\.net$ +(^|\.)islamhouse\.com$ +(^|\.)islamicity\.com$ +(^|\.)islamicpluralism\.org$ +(^|\.)islamtoday\.net$ +(^|\.)ismaelan\.com$ +(^|\.)ismalltits\.com$ +(^|\.)ismprofessional\.net$ +(^|\.)isohunt\.com$ +(^|\.)israbox\.com$ +(^|\.)issuu\.com$ +(^|\.)istars\.co\.nz$ +(^|\.)istiqlalhewer\.com$ +(^|\.)istockphoto\.com$ +(^|\.)isunaffairs\.com$ +(^|\.)isuntv\.com$ +(^|\.)itaboo\.info$ +(^|\.)itaiwan\.gov\.tw$ +(^|\.)italiatibet\.org$ +(^|\.)itasoftware\.com$ +(^|\.)itemdb\.com$ +(^|\.)ithelp\.ithome\.com\.tw$ +(^|\.)its\.caltech\.edu$ +(^|\.)itsaol\.com$ +(^|\.)itshidden\.com$ +(^|\.)itsky\.it$ +(^|\.)itweet\.net$ +(^|\.)iu45\.com$ +(^|\.)iuhrdf\.org$ +(^|\.)iuksky\.com$ +(^|\.)ivacy\.com$ +(^|\.)iverycd\.com$ +(^|\.)ivpn\.net$ +(^|\.)ixquick\.com$ +(^|\.)ixxx\.com$ +(^|\.)iyouport\.com$ +(^|\.)izaobao\.us$ +(^|\.)izles\.net$ +(^|\.)izlesem\.org$ +(^|\.)j\.mp$ +(^|\.)ja\.wikipedia\.org$ +(^|\.)jamaat\.org$ +(^|\.)jamyangnorbu\.com$ +(^|\.)jandyx\.com$ +(^|\.)janwongphoto\.com$ +(^|\.)japan-whores\.com$ +(^|\.)japanfirst\.asianfreeforum\.com$ +(^|\.)japantimes\.co\.jp$ +(^|\.)jav\.com$ +(^|\.)jav101\.com$ +(^|\.)jav2be\.com$ +(^|\.)jav68\.tv$ +(^|\.)javakiba\.org$ +(^|\.)javbus\.com$ +(^|\.)javfor\.me$ +(^|\.)javhd\.com$ +(^|\.)javhip\.com$ +(^|\.)javhub\.net$ +(^|\.)javhuge\.com$ +(^|\.)javlibrary\.com$ +(^|\.)javmobile\.net$ +(^|\.)javmoo\.com$ +(^|\.)javmoo\.xyz$ +(^|\.)javseen\.com$ +(^|\.)javtag\.com$ +(^|\.)javzoo\.com$ +(^|\.)jbtalks\.cc$ +(^|\.)jbtalks\.com$ +(^|\.)jbtalks\.my$ +(^|\.)jcpenney\.com$ +(^|\.)jdwsy\.com$ +(^|\.)jeanyim\.com$ +(^|\.)jetos\.com$ +(^|\.)jex\.com$ +(^|\.)jfqu36\.club$ +(^|\.)jfqu37\.xyz$ +(^|\.)jgoodies\.com$ +(^|\.)jiangweiping\.com$ +(^|\.)jiaoyou8\.com$ +(^|\.)jiehua\.cz$ +(^|\.)jieshibaobao\.com$ +(^|\.)jigglegifs\.com$ +(^|\.)jigong1024\.com$ +(^|\.)jihadintel\.meforum\.org$ +(^|\.)jihadology\.net$ +(^|\.)jiji\.com$ +(^|\.)jims\.net$ +(^|\.)jinbushe\.org$ +(^|\.)jingpin\.org$ +(^|\.)jingsim\.org$ +(^|\.)jinpianwang\.com$ +(^|\.)jinroukong\.com$ +(^|\.)jintian\.net$ +(^|\.)jinx\.com$ +(^|\.)jitouch\.com$ +(^|\.)jizzthis\.com$ +(^|\.)jjgirls\.com$ +(^|\.)jkb\.cc$ +(^|\.)jkforum\.net$ +(^|\.)jkub\.com$ +(^|\.)jma\.go\.jp$ +(^|\.)jmscult\.com$ +(^|\.)joachims\.org$ +(^|\.)jobnewera\.wordpress\.com$ +(^|\.)jobso\.tv$ +(^|\.)joinmastodon\.org$ +(^|\.)journalchretien\.net$ +(^|\.)journalofdemocracy\.org$ +(^|\.)joymiihub\.com$ +(^|\.)joyourself\.com$ +(^|\.)jp\.hao123\.com$ +(^|\.)jpl\.nasa\.gov$ +(^|\.)jpopforum\.net$ +(^|\.)jtvnw\.net$ +(^|\.)jubushoushen\.com$ +(^|\.)juhuaren\.com$ +(^|\.)jukujo-club\.com$ +(^|\.)juliepost\.com$ +(^|\.)juliereyc\.com$ +(^|\.)junauza\.com$ +(^|\.)june4commemoration\.org$ +(^|\.)junefourth-20\.net$ +(^|\.)jungleheart\.com$ +(^|\.)juoaa\.com$ +(^|\.)justdied\.com$ +(^|\.)justfreevpn\.com$ +(^|\.)justicefortenzin\.org$ +(^|\.)justpaste\.it$ +(^|\.)justtristan\.com$ +(^|\.)juyuange\.org$ +(^|\.)juziyue\.com$ +(^|\.)jwmusic\.org$ +(^|\.)jyxf\.net$ +(^|\.)k-doujin\.net$ +(^|\.)ka-wai\.com$ +(^|\.)kagyu\.org$ +(^|\.)kagyu\.org\.za$ +(^|\.)kagyumonlam\.org$ +(^|\.)kagyunews\.com\.hk$ +(^|\.)kagyuoffice\.org$ +(^|\.)kagyuoffice\.org\.tw$ +(^|\.)kaiyuan\.de$ +(^|\.)kakao\.com$ +(^|\.)kalachakralugano\.org$ +(^|\.)kankan\.today$ +(^|\.)kannewyork\.com$ +(^|\.)kanshifang\.com$ +(^|\.)kantie\.org$ +(^|\.)kanzhongguo\.com$ +(^|\.)kanzhongguo\.eu$ +(^|\.)kaotic\.com$ +(^|\.)karayou\.com$ +(^|\.)karkhung\.com$ +(^|\.)karmapa-teachings\.org$ +(^|\.)karmapa\.org$ +(^|\.)kawaiikawaii\.jp$ +(^|\.)kawase\.com$ +(^|\.)kb\.monitorware\.com$ +(^|\.)kba-tx\.org$ +(^|\.)kcoolonline\.com$ +(^|\.)kebrum\.com$ +(^|\.)kechara\.com$ +(^|\.)keepandshare\.com$ +(^|\.)keezmovies\.com$ +(^|\.)kendatire\.com$ +(^|\.)kendincos\.net$ +(^|\.)kenengba\.com$ +(^|\.)keontech\.net$ +(^|\.)kepard\.com$ +(^|\.)kex\.com$ +(^|\.)keycdn\.com$ +(^|\.)khabdha\.org$ +(^|\.)khatrimaza\.org$ +(^|\.)khmusic\.com\.tw$ +(^|\.)kichiku-doujinko\.com$ +(^|\.)kik\.com$ +(^|\.)killwall\.com$ +(^|\.)kindleren\.com$ +(^|\.)kineox\.free\.fr$ +(^|\.)kingdomsalvation\.org$ +(^|\.)kinghost\.com$ +(^|\.)kingstone\.com\.tw$ +(^|\.)kink\.com$ +(^|\.)kinmen\.org\.tw$ +(^|\.)kinmen\.travel$ +(^|\.)kir\.jp$ +(^|\.)kissbbao\.cn$ +(^|\.)kiwi\.kz$ +(^|\.)kk-whys\.co\.jp$ +(^|\.)kkbox\.com$ +(^|\.)kknews\.cc$ +(^|\.)kmuh\.org\.tw$ +(^|\.)knowledgerush\.com$ +(^|\.)kobo\.com$ +(^|\.)kobobooks\.com$ +(^|\.)kodingen\.com$ +(^|\.)kompozer\.net$ +(^|\.)konachan\.com$ +(^|\.)kone\.com$ +(^|\.)koolsolutions\.com$ +(^|\.)koornk\.com$ +(^|\.)koranmandarin\.com$ +(^|\.)korenan2\.com$ +(^|\.)ksdl\.org$ +(^|\.)ksnews\.com\.tw$ +(^|\.)kspcoin\.com$ +(^|\.)ktzhk\.com$ +(^|\.)kucoin\.com$ +(^|\.)kui\.name$ +(^|\.)kun\.im$ +(^|\.)kurashsultan\.com$ +(^|\.)kurtmunger\.com$ +(^|\.)kusocity\.com$ +(^|\.)kwcg\.ca$ +(^|\.)kwongwah\.com\.my$ +(^|\.)kxsw\.life$ +(^|\.)kyofun\.com$ +(^|\.)kyohk\.net$ +(^|\.)kyoyue\.com$ +(^|\.)kyzyhello\.com$ +(^|\.)kzeng\.info$ +(^|\.)la-forum\.org$ +(^|\.)labiennale\.org$ +(^|\.)ladbrokes\.com$ +(^|\.)lagranepoca\.com$ +(^|\.)lalulalu\.com$ +(^|\.)lama\.com\.tw$ +(^|\.)lamayeshe\.com$ +(^|\.)lamnia\.co\.uk$ +(^|\.)lamrim\.com$ +(^|\.)lanterncn\.cn$ +(^|\.)lantosfoundation\.org$ +(^|\.)laod\.cn$ +(^|\.)laogai\.org$ +(^|\.)laomiu\.com$ +(^|\.)laoyang\.info$ +(^|\.)laptoplockdown\.com$ +(^|\.)laqingdan\.net$ +(^|\.)larsgeorge\.com$ +(^|\.)lastcombat\.com$ +(^|\.)lastfm\.es$ +(^|\.)latelinenews\.com$ +(^|\.)latibet\.org$ +(^|\.)lbank\.info$ +(^|\.)ld\.hao123img\.com$ +(^|\.)le-vpn\.com$ +(^|\.)leafyvpn\.net$ +(^|\.)lecloud\.net$ +(^|\.)leeao\.com\.cn$ +(^|\.)lefora\.com$ +(^|\.)left21\.hk$ +(^|\.)legalporno\.com$ +(^|\.)legaltech\.law\.com$ +(^|\.)legsjapan\.com$ +(^|\.)leirentv\.ca$ +(^|\.)leisurecafe\.ca$ +(^|\.)leisurepro\.com$ +(^|\.)lematin\.ch$ +(^|\.)lemonde\.fr$ +(^|\.)lenwhite\.com$ +(^|\.)lerosua\.org$ +(^|\.)lers\.google$ +(^|\.)lesoir\.be$ +(^|\.)letou\.com$ +(^|\.)letscorp\.net$ +(^|\.)lflink\.com$ +(^|\.)lflinkup\.com$ +(^|\.)lflinkup\.net$ +(^|\.)lflinkup\.org$ +(^|\.)lhakar\.org$ +(^|\.)lhasocialwork\.org$ +(^|\.)liangyou\.net$ +(^|\.)liangzhichuanmei\.com$ +(^|\.)lianyue\.net$ +(^|\.)liaowangxizang\.net$ +(^|\.)liberal\.org\.hk$ +(^|\.)libertytimes\.com\.tw$ +(^|\.)library\.usc\.cuhk\.edu\.hk$ +(^|\.)lidecheng\.com$ +(^|\.)lifemiles\.com$ +(^|\.)lighten\.org\.tw$ +(^|\.)lightnovel\.cn$ +(^|\.)lihkg\.com$ +(^|\.)like\.com$ +(^|\.)limiao\.net$ +(^|\.)line-apps\.com$ +(^|\.)line-scdn\.net$ +(^|\.)line\.me$ +(^|\.)line\.naver\.jp$ +(^|\.)linear-abematv\.akamaized\.net$ +(^|\.)linglingfa\.com$ +(^|\.)lingvodics\.com$ +(^|\.)link-o-rama\.com$ +(^|\.)linkideo\.com$ +(^|\.)linkuswell\.com$ +(^|\.)linux\.org\.hk$ +(^|\.)linuxtoy\.org$ +(^|\.)lionsroar\.com$ +(^|\.)lipuman\.com$ +(^|\.)liquidvpn\.com$ +(^|\.)listentoyoutube\.com$ +(^|\.)listorious\.com$ +(^|\.)lists\.w3\.org$ +(^|\.)liu-xiaobo\.org$ +(^|\.)liudejun\.com$ +(^|\.)liuhanyu\.com$ +(^|\.)liujianshu\.com$ +(^|\.)liuxiaobo\.net$ +(^|\.)liuxiaotong\.com$ +(^|\.)livecoin\.net$ +(^|\.)livedoor\.jp$ +(^|\.)liveleak\.com$ +(^|\.)livestation\.com$ +(^|\.)livestream\.com$ +(^|\.)livevideo\.com$ +(^|\.)livingonline\.us$ +(^|\.)livingstream\.com$ +(^|\.)liwangyang\.com$ +(^|\.)lizhizhuangbi\.com$ +(^|\.)lkcn\.net$ +(^|\.)llss\.me$ +(^|\.)load\.to$ +(^|\.)lobsangwangyal\.com$ +(^|\.)localbitcoins\.com$ +(^|\.)localdomain\.ws$ +(^|\.)localpresshk\.com$ +(^|\.)lockestek\.com$ +(^|\.)logbot\.net$ +(^|\.)login\.target\.com$ +(^|\.)logiqx\.com$ +(^|\.)londonchinese\.ca$ +(^|\.)longhair\.hk$ +(^|\.)longmusic\.com$ +(^|\.)longtermly\.net$ +(^|\.)longtoes\.com$ +(^|\.)lookpic\.com$ +(^|\.)looktoronto\.com$ +(^|\.)lotsawahouse\.org$ +(^|\.)lotuslight\.org\.hk$ +(^|\.)lotuslight\.org\.tw$ +(^|\.)lovetvshow\.com$ +(^|\.)lpsg\.com$ +(^|\.)lrfz\.com$ +(^|\.)lrip\.org$ +(^|\.)lsd\.org\.hk$ +(^|\.)lsforum\.net$ +(^|\.)lsm\.org$ +(^|\.)lsmchinese\.org$ +(^|\.)lsmkorean\.org$ +(^|\.)lsmradio\.com$ +(^|\.)lsmwebcast\.com$ +(^|\.)lsxszzg\.com$ +(^|\.)ltn\.com\.tw$ +(^|\.)luke54\.com$ +(^|\.)luke54\.org$ +(^|\.)lupm\.org$ +(^|\.)lushstories\.com$ +(^|\.)luxebc\.com$ +(^|\.)lvhai\.org$ +(^|\.)lvv2\.com$ +(^|\.)lyfhk\.net$ +(^|\.)lzmtnews\.org$ +(^|\.)m\.hkgalden\.com$ +(^|\.)m\.me$ +(^|\.)m\.plixi\.com$ +(^|\.)m\.slandr\.net$ +(^|\.)ma\.hao123\.com$ +(^|\.)macgamestore\.com$ +(^|\.)macrovpn\.com$ +(^|\.)macts\.com\.tw$ +(^|\.)mad-ar\.ch$ +(^|\.)madewithcode\.com$ +(^|\.)madonna-av\.com$ +(^|\.)madrau\.com$ +(^|\.)madthumbs\.com$ +(^|\.)magazines\.sina\.com\.tw$ +(^|\.)magic-net\.info$ +(^|\.)mahabodhi\.org$ +(^|\.)maiio\.net$ +(^|\.)mail-archive\.com$ +(^|\.)maildns\.xyz$ +(^|\.)maiplus\.com$ +(^|\.)maizhong\.org$ +(^|\.)makemymood\.com$ +(^|\.)makkahnewspaper\.com$ +(^|\.)makzhou\.warehouse333\.com$ +(^|\.)malaysiakini\.com$ +(^|\.)mamingzhe\.com$ +(^|\.)manchukuo\.net$ +(^|\.)mangafox\.com$ +(^|\.)mangafox\.me$ +(^|\.)maniash\.com$ +(^|\.)manicur4ik\.ru$ +(^|\.)mansion\.com$ +(^|\.)mansionpoker\.com$ +(^|\.)manta\.com$ +(^|\.)maplew\.com$ +(^|\.)marc\.info$ +(^|\.)marguerite\.su$ +(^|\.)martau\.com$ +(^|\.)martincartoons\.com$ +(^|\.)martsangkagyuofficial\.org$ +(^|\.)maruta\.be$ +(^|\.)marxist\.com$ +(^|\.)marxist\.net$ +(^|\.)marxists\.org$ +(^|\.)mash\.to$ +(^|\.)maskedip\.com$ +(^|\.)mastodon\.cloud$ +(^|\.)mastodon\.host$ +(^|\.)mastodon\.social$ +(^|\.)matainja\.com$ +(^|\.)material\.io$ +(^|\.)mathable\.io$ +(^|\.)mathiew-badimon\.com$ +(^|\.)matome-plus\.com$ +(^|\.)matome-plus\.net$ +(^|\.)matsushimakaede\.com$ +(^|\.)matters\.news$ +(^|\.)mattwilcox\.net$ +(^|\.)maturejp\.com$ +(^|\.)maxing\.jp$ +(^|\.)mayimayi\.com$ +(^|\.)mcadforums\.com$ +(^|\.)mcaf\.ee$ +(^|\.)mcfog\.com$ +(^|\.)mcreasite\.com$ +(^|\.)md-t\.org$ +(^|\.)me\.me$ +(^|\.)me\.youthwant\.com\.tw$ +(^|\.)meansys\.com$ +(^|\.)media\.nu\.nl$ +(^|\.)media\.org\.hk$ +(^|\.)mediachinese\.com$ +(^|\.)mediafire\.com$ +(^|\.)mediafreakcity\.com$ +(^|\.)medium\.com$ +(^|\.)meetav\.com$ +(^|\.)meetup\.com$ +(^|\.)mefeedia\.com$ +(^|\.)mefound\.com$ +(^|\.)mega\.nz$ +(^|\.)megaproxy\.com$ +(^|\.)megarotic\.com$ +(^|\.)megavideo\.com$ +(^|\.)megurineluka\.com$ +(^|\.)meirixiaochao\.com$ +(^|\.)meltoday\.com$ +(^|\.)meme\.yahoo\.com$ +(^|\.)memehk\.com$ +(^|\.)memorybbs\.com$ +(^|\.)memri\.org$ +(^|\.)memrijttm\.org$ +(^|\.)mercatox\.com$ +(^|\.)mercyprophet\.org$ +(^|\.)mergersandinquisitions\.org$ +(^|\.)meridian-trust\.org$ +(^|\.)meripet\.biz$ +(^|\.)meripet\.com$ +(^|\.)merit-times\.com\.tw$ +(^|\.)meshrep\.com$ +(^|\.)mesotw\.com$ +(^|\.)messenger\.com$ +(^|\.)metacafe\.com$ +(^|\.)metart\.com$ +(^|\.)metarthunter\.com$ +(^|\.)meteorshowersonline\.com$ +(^|\.)metrohk\.com\.hk$ +(^|\.)metrolife\.ca$ +(^|\.)metroradio\.com\.hk$ +(^|\.)meyou\.jp$ +(^|\.)meyul\.com$ +(^|\.)mfxmedia\.com$ +(^|\.)mgoon\.com$ +(^|\.)mgstage\.com$ +(^|\.)mh4u\.org$ +(^|\.)mhradio\.org$ +(^|\.)michaelanti\.com$ +(^|\.)michaelmarketl\.com$ +(^|\.)microvpn\.com$ +(^|\.)middle-way\.net$ +(^|\.)mihk\.hk$ +(^|\.)mihr\.com$ +(^|\.)mihua\.org$ +(^|\.)mike\.cz\.cc$ +(^|\.)mikesoltys\.com$ +(^|\.)milph\.net$ +(^|\.)milsurps\.com$ +(^|\.)mimiai\.net$ +(^|\.)mimivip\.com$ +(^|\.)mimivv\.com$ +(^|\.)mindrolling\.org$ +(^|\.)minghui-a\.org$ +(^|\.)minghui-b\.org$ +(^|\.)minghui-school\.org$ +(^|\.)minghui\.or\.kr$ +(^|\.)minghui\.org$ +(^|\.)minghuiyw\.wordpress\.com$ +(^|\.)mingjinglishi\.com$ +(^|\.)mingjingnews\.com$ +(^|\.)mingjingtimes\.com$ +(^|\.)mingpao\.com$ +(^|\.)mingpaocanada\.com$ +(^|\.)mingpaomonthly\.com$ +(^|\.)mingpaonews\.com$ +(^|\.)mingpaony\.com$ +(^|\.)mingpaosf\.com$ +(^|\.)mingpaotor\.com$ +(^|\.)mingpaovan\.com$ +(^|\.)mingshengbao\.com$ +(^|\.)minhhue\.net$ +(^|\.)miniforum\.org$ +(^|\.)ministrybooks\.org$ +(^|\.)minzhuhua\.net$ +(^|\.)minzhuzhanxian\.com$ +(^|\.)minzhuzhongguo\.org$ +(^|\.)miroguide\.com$ +(^|\.)mirrorbooks\.com$ +(^|\.)mist\.vip$ +(^|\.)mitao\.com\.tw$ +(^|\.)mitbbs\.com$ +(^|\.)mitbbsau\.com$ +(^|\.)mixero\.com$ +(^|\.)mixpod\.com$ +(^|\.)mixx\.com$ +(^|\.)mizzmona\.com$ +(^|\.)mjib\.gov\.tw$ +(^|\.)mjlsh\.usc\.cuhk\.edu\.hk$ +(^|\.)mk5000\.com$ +(^|\.)mlcool\.com$ +(^|\.)mlzs\.work$ +(^|\.)mm-cg\.com$ +(^|\.)mmaaxx\.com$ +(^|\.)mmmca\.com$ +(^|\.)mnewstv\.com$ +(^|\.)mo\.nightlife141\.com$ +(^|\.)mobatek\.net$ +(^|\.)mobile01\.com$ +(^|\.)mobileways\.de$ +(^|\.)moby\.to$ +(^|\.)mobypicture\.com$ +(^|\.)moeaic\.gov\.tw$ +(^|\.)moeerolibrary\.com$ +(^|\.)mofa\.gov\.tw$ +(^|\.)mofaxiehui\.com$ +(^|\.)mofos\.com$ +(^|\.)mog\.com$ +(^|\.)mohu\.club$ +(^|\.)mohu\.ml$ +(^|\.)mojim\.com$ +(^|\.)mol\.gov\.tw$ +(^|\.)molihua\.org$ +(^|\.)mondex\.org$ +(^|\.)money-link\.com\.tw$ +(^|\.)moneyhome\.biz$ +(^|\.)monitorchina\.org$ +(^|\.)monster\.com$ +(^|\.)moodyz\.com$ +(^|\.)moonbbs\.com$ +(^|\.)moonbingo\.com$ +(^|\.)morningsun\.org$ +(^|\.)moroneta\.com$ +(^|\.)mos\.ru$ +(^|\.)motherless\.com$ +(^|\.)motiyun\.com$ +(^|\.)motor4ik\.ru$ +(^|\.)mousebreaker\.com$ +(^|\.)movements\.org$ +(^|\.)moviefap\.com$ +(^|\.)mp3buscador\.com$ +(^|\.)mp3ye\.eu$ +(^|\.)mpettis\.com$ +(^|\.)mpfinance\.com$ +(^|\.)mpinews\.com$ +(^|\.)mponline\.hk$ +(^|\.)mqxd\.org$ +(^|\.)mrbasic\.com$ +(^|\.)mrbonus\.com$ +(^|\.)mrface\.com$ +(^|\.)mrslove\.com$ +(^|\.)mrtweet\.com$ +(^|\.)msa-it\.org$ +(^|\.)msguancha\.com$ +(^|\.)msha\.gov$ +(^|\.)mswe1\.org$ +(^|\.)mthruf\.com$ +(^|\.)mtw\.tl$ +(^|\.)muchosucko\.com$ +(^|\.)mullvad\.net$ +(^|\.)multiply\.com$ +(^|\.)multiproxy\.org$ +(^|\.)multiupload\.com$ +(^|\.)mummysgold\.com$ +(^|\.)murmur\.tw$ +(^|\.)musicade\.net$ +(^|\.)muslimvideo\.com$ +(^|\.)muzi\.com$ +(^|\.)muzi\.net$ +(^|\.)muzu\.tv$ +(^|\.)mvdis\.gov\.tw$ +(^|\.)mvg\.jp$ +(^|\.)mx\.hao123\.com$ +(^|\.)mx981\.com$ +(^|\.)my-formosa\.com$ +(^|\.)my-private-network\.co\.uk$ +(^|\.)my-proxy\.com$ +(^|\.)my\.mail\.ru$ +(^|\.)my\.opera\.com$ +(^|\.)my\.pcloud\.com$ +(^|\.)my03\.com$ +(^|\.)myactimes\.com$ +(^|\.)myanniu\.com$ +(^|\.)myaudiocast\.com$ +(^|\.)myav\.com\.tw$ +(^|\.)mybbs\.us$ +(^|\.)mybet\.com$ +(^|\.)myca168\.com$ +(^|\.)mycanadanow\.com$ +(^|\.)mychinamyhome\.com$ +(^|\.)mychinanet\.com$ +(^|\.)mychinanews\.com$ +(^|\.)mychinese\.news$ +(^|\.)mycnnews\.com$ +(^|\.)mycould\.com$ +(^|\.)mydad\.info$ +(^|\.)myddns\.com$ +(^|\.)myeasytv\.com$ +(^|\.)myeclipseide\.com$ +(^|\.)myforum\.com\.hk$ +(^|\.)myforum\.com\.uk$ +(^|\.)myfreecams\.com$ +(^|\.)myfreepaysite\.com$ +(^|\.)myfreshnet\.com$ +(^|\.)myftp\.info$ +(^|\.)myftp\.name$ +(^|\.)myiphide\.com$ +(^|\.)mykomica\.org$ +(^|\.)mylftv\.com$ +(^|\.)mymediarom\.com$ +(^|\.)mymoe\.moe$ +(^|\.)mymom\.info$ +(^|\.)mymusic\.net\.tw$ +(^|\.)mynetav\.net$ +(^|\.)mynetav\.org$ +(^|\.)mynumber\.org$ +(^|\.)myparagliding\.com$ +(^|\.)mypicture\.info$ +(^|\.)mypop3\.net$ +(^|\.)mypop3\.org$ +(^|\.)mypopescu\.com$ +(^|\.)myradio\.hk$ +(^|\.)myreadingmanga\.info$ +(^|\.)mysecondarydns\.com$ +(^|\.)myshare\.url\.com\.tw$ +(^|\.)mysinablog\.com$ +(^|\.)mysite\.verizon\.net$ +(^|\.)myspace\.com$ +(^|\.)myspacecdn\.com$ +(^|\.)mytalkbox\.com$ +(^|\.)mytizi\.com$ +(^|\.)mywww\.biz$ +(^|\.)myz\.info$ +(^|\.)naacoalition\.org$ +(^|\.)naitik\.net$ +(^|\.)nakido\.com$ +(^|\.)nakuz\.com$ +(^|\.)nalandabodhi\.org$ +(^|\.)nalandawest\.org$ +(^|\.)namgyal\.org$ +(^|\.)namgyalmonastery\.org$ +(^|\.)namsisi\.com$ +(^|\.)nanyang\.com$ +(^|\.)nanyangpost\.com$ +(^|\.)nanzao\.com$ +(^|\.)naol\.ca$ +(^|\.)naol\.cc$ +(^|\.)nat\.gov\.tw$ +(^|\.)nat\.moe$ +(^|\.)national-lottery\.co\.uk$ +(^|\.)nationsonline\.org$ +(^|\.)nationwide\.com$ +(^|\.)naughtyamerica\.com$ +(^|\.)navyfamily\.navy\.mil$ +(^|\.)navyreserve\.navy\.mil$ +(^|\.)naweeklytimes\.com$ +(^|\.)nbtvpn\.com$ +(^|\.)nccwatch\.org\.tw$ +(^|\.)nch\.com\.tw$ +(^|\.)ncn\.org$ +(^|\.)nde\.de$ +(^|\.)ndr\.de$ +(^|\.)ned\.org$ +(^|\.)nekoslovakia\.net$ +(^|\.)nemesis2\.qx\.net$ +(^|\.)neo-miracle\.com$ +(^|\.)nepusoku\.com$ +(^|\.)net-fits\.pro$ +(^|\.)netbirds\.com$ +(^|\.)netcolony\.com$ +(^|\.)netflix\.com$ +(^|\.)netme\.cc$ +(^|\.)netsneak\.com$ +(^|\.)network54\.com$ +(^|\.)networkedblogs\.com$ +(^|\.)networktunnel\.net$ +(^|\.)neverforget8964\.org$ +(^|\.)new-3lunch\.net$ +(^|\.)new-akiba\.com$ +(^|\.)new96\.ca$ +(^|\.)newcenturymc\.com$ +(^|\.)newcenturynews\.com$ +(^|\.)newchen\.com$ +(^|\.)newgrounds\.com$ +(^|\.)newipnow\.com$ +(^|\.)newlandmagazine\.com\.au$ +(^|\.)newnews\.ca$ +(^|\.)news\.cnyes\.com$ +(^|\.)news\.hk\.msn\.com$ +(^|\.)news\.hkpeanut\.com$ +(^|\.)news\.msn\.com\.tw$ +(^|\.)news\.nationalgeographic\.com$ +(^|\.)news\.now\.com$ +(^|\.)news\.now\.com%2fhome$ +(^|\.)news\.omy\.sg$ +(^|\.)news\.seehua\.com$ +(^|\.)news\.sina\.com\.hk$ +(^|\.)news\.sina\.com\.tw$ +(^|\.)news\.sinchew\.com\.my$ +(^|\.)news\.singtao\.ca$ +(^|\.)news\.tvb\.com$ +(^|\.)news\.tvbs\.com\.tw$ +(^|\.)news\.yahoo\.com$ +(^|\.)news100\.com\.tw$ +(^|\.)newsancai\.com$ +(^|\.)newschinacomment\.org$ +(^|\.)newscn\.org$ +(^|\.)newsdetox\.ca$ +(^|\.)newsdh\.com$ +(^|\.)newspeak\.cc$ +(^|\.)newstamago\.com$ +(^|\.)newstapa\.org$ +(^|\.)newstarnet\.com$ +(^|\.)newtaiwan\.com\.tw$ +(^|\.)newtalk\.tw$ +(^|\.)newyorktimes\.com$ +(^|\.)nexon\.com$ +(^|\.)next11\.co\.jp$ +(^|\.)nextmag\.com\.tw$ +(^|\.)nextmedia\.com$ +(^|\.)nexton-net\.jp$ +(^|\.)nexttv\.com\.tw$ +(^|\.)nf\.id\.au$ +(^|\.)nfjtyd\.com$ +(^|\.)nflxext\.com$ +(^|\.)nflximg\.com$ +(^|\.)nflximg\.net$ +(^|\.)nflxso\.net$ +(^|\.)nflxvideo\.net$ +(^|\.)nga\.mil$ +(^|\.)ngensis\.com$ +(^|\.)nhentai\.net$ +(^|\.)nhi\.gov\.tw$ +(^|\.)nhk-ondemand\.jp$ +(^|\.)nic\.cz\.cc$ +(^|\.)nic\.google$ +(^|\.)nic\.gov$ +(^|\.)nicovideo\.jp$ +(^|\.)nighost\.org$ +(^|\.)nikkei\.com$ +(^|\.)ninecommentaries\.com$ +(^|\.)ninjacloak\.com$ +(^|\.)ninjaproxy\.ninja$ +(^|\.)nintendium\.com$ +(^|\.)ninth\.biz$ +(^|\.)niu\.moe$ +(^|\.)niusnews\.com$ +(^|\.)njactb\.org$ +(^|\.)njuice\.com$ +(^|\.)nko\.navy\.mil$ +(^|\.)nlfreevpn\.com$ +(^|\.)no-ip\.org$ +(^|\.)nobel\.se$ +(^|\.)nobelprize\.org$ +(^|\.)nobodycanstop\.us$ +(^|\.)nofile\.io$ +(^|\.)nokogiri\.org$ +(^|\.)nokola\.com$ +(^|\.)noodlevpn\.com$ +(^|\.)norbulingka\.org$ +(^|\.)nordstrom\.com$ +(^|\.)nordstromimage\.com$ +(^|\.)nordstromrack\.com$ +(^|\.)nordvpn\.com$ +(^|\.)notify\.dropboxapi\.com$ +(^|\.)nottinghampost\.com$ +(^|\.)novelasia\.com$ +(^|\.)now\.com$ +(^|\.)now\.im$ +(^|\.)nownews\.com$ +(^|\.)nowtorrents\.com$ +(^|\.)noypf\.com$ +(^|\.)npa\.go\.jp$ +(^|\.)npa\.gov\.tw$ +(^|\.)npnt\.me$ +(^|\.)nps\.gov$ +(^|\.)npsboost\.com$ +(^|\.)nradio\.me$ +(^|\.)nrk\.no$ +(^|\.)ns01\.biz$ +(^|\.)ns01\.info$ +(^|\.)ns01\.us$ +(^|\.)ns02\.biz$ +(^|\.)ns02\.info$ +(^|\.)ns02\.us$ +(^|\.)ns1\.name$ +(^|\.)ns2\.name$ +(^|\.)ns3\.name$ +(^|\.)nsc\.gov\.tw$ +(^|\.)ntbk\.gov\.tw$ +(^|\.)ntbna\.gov\.tw$ +(^|\.)ntbt\.gov\.tw$ +(^|\.)ntd\.tv$ +(^|\.)ntdtv\.ca$ +(^|\.)ntdtv\.co\.kr$ +(^|\.)ntdtv\.com$ +(^|\.)ntdtv\.cz$ +(^|\.)ntdtv\.org$ +(^|\.)ntdtv\.ru$ +(^|\.)ntdtvla\.com$ +(^|\.)ntrfun\.com$ +(^|\.)ntsna\.gov\.tw$ +(^|\.)nubiles\.net$ +(^|\.)nuexpo\.com$ +(^|\.)nukistream\.com$ +(^|\.)nurgo-software\.com$ +(^|\.)nusatrip\.com$ +(^|\.)nutaku\.net$ +(^|\.)nuuvem\.com$ +(^|\.)nuvid\.com$ +(^|\.)nuzcom\.com$ +(^|\.)nvdst\.com$ +(^|\.)nvquan\.org$ +(^|\.)nvtongzhisheng\.org$ +(^|\.)nwtca\.org$ +(^|\.)ny\.stgloballink\.com$ +(^|\.)ny\.visiontimes\.com$ +(^|\.)nyaa\.eu$ +(^|\.)nydus\.ca$ +(^|\.)nylon-angel\.com$ +(^|\.)nylonstockingsonline\.com$ +(^|\.)nyt\.com$ +(^|\.)nytchina\.com$ +(^|\.)nytcn\.me$ +(^|\.)nytco\.com$ +(^|\.)nyti\.ms$ +(^|\.)nytimes\.com$ +(^|\.)nytimes\.map\.fastly\.net$ +(^|\.)nytimg\.com$ +(^|\.)nytstyle\.com$ +(^|\.)nzchinese\.com$ +(^|\.)nzchinese\.net\.nz$ +(^|\.)observechina\.net$ +(^|\.)obutu\.com$ +(^|\.)ocaspro\.com$ +(^|\.)occupytiananmen\.com$ +(^|\.)oclp\.hk$ +(^|\.)ocreampies\.com$ +(^|\.)ocry\.com$ +(^|\.)october-review\.org$ +(^|\.)oculus\.com$ +(^|\.)oculuscdn\.com$ +(^|\.)oex\.com$ +(^|\.)offbeatchina\.com$ +(^|\.)officeoftibet\.com$ +(^|\.)ofile\.org$ +(^|\.)ogaoga\.org$ +(^|\.)ogate\.org$ +(^|\.)oikos\.com\.tw$ +(^|\.)oiktv\.com$ +(^|\.)oizoblog\.com$ +(^|\.)ok\.ru$ +(^|\.)okayfreedom\.com$ +(^|\.)okex\.com$ +(^|\.)okk\.tw$ +(^|\.)old-cat\.net$ +(^|\.)old\.honeynet\.org$ +(^|\.)old\.nabble\.com$ +(^|\.)olumpo\.com$ +(^|\.)olympicwatch\.org$ +(^|\.)omgili\.com$ +(^|\.)omni7\.jp$ +(^|\.)omnitalk\.com$ +(^|\.)omnitalk\.org$ +(^|\.)on\.cc$ +(^|\.)on2\.com$ +(^|\.)onapp\.com$ +(^|\.)onedrive\.live\.com$ +(^|\.)onedumb\.com$ +(^|\.)onejav\.com$ +(^|\.)onion\.city$ +(^|\.)online\.recoveryversion\.org$ +(^|\.)onlinecha\.com$ +(^|\.)onlineyoutube\.com$ +(^|\.)onlytweets\.com$ +(^|\.)onmoon\.com$ +(^|\.)onmoon\.net$ +(^|\.)onmypc\.biz$ +(^|\.)onmypc\.info$ +(^|\.)onmypc\.net$ +(^|\.)onmypc\.org$ +(^|\.)onmypc\.us$ +(^|\.)onthehunt\.com$ +(^|\.)ontrac\.com$ +(^|\.)oopsforum\.com$ +(^|\.)open\.com\.hk$ +(^|\.)openallweb\.com$ +(^|\.)opendemocracy\.net$ +(^|\.)opendn\.xyz$ +(^|\.)openervpn\.in$ +(^|\.)openid\.net$ +(^|\.)openleaks\.org$ +(^|\.)openvpn\.net$ +(^|\.)openvpn\.org$ +(^|\.)openwebster\.com$ +(^|\.)openwrt\.org\.cn$ +(^|\.)opml\.radiotime\.com$ +(^|\.)opus-gaming\.com$ +(^|\.)organcare\.org\.tw$ +(^|\.)organharvestinvestigation\.net$ +(^|\.)organiccrap\.com$ +(^|\.)orgasm\.com$ +(^|\.)orgfree\.com$ +(^|\.)orient-doll\.com$ +(^|\.)orientaldaily\.com\.my$ +(^|\.)orn\.jp$ +(^|\.)orzistic\.org$ +(^|\.)osfoora\.com$ +(^|\.)otcbtc\.com$ +(^|\.)otnd\.org$ +(^|\.)otto\.de$ +(^|\.)otzo\.com$ +(^|\.)ourdearamy\.com$ +(^|\.)ourhobby\.com$ +(^|\.)oursogo\.com$ +(^|\.)oursteps\.com\.au$ +(^|\.)oursweb\.net$ +(^|\.)ourtv\.hk$ +(^|\.)overplay\.net$ +(^|\.)oversea\.istarshine\.com$ +(^|\.)ow\.ly$ +(^|\.)owl\.li$ +(^|\.)oyax\.com$ +(^|\.)oyghan\.com$ +(^|\.)ozchinese\.com$ +(^|\.)ozvoice\.org$ +(^|\.)ozxw\.com$ +(^|\.)ozyoyo\.com$ +(^|\.)pachosting\.com$ +(^|\.)pacificpoker\.com$ +(^|\.)packages\.debian\.org$ +(^|\.)packetix\.net$ +(^|\.)pacopacomama\.com$ +(^|\.)padmanet\.com$ +(^|\.)page\.bid\.yahoo\.com$ +(^|\.)page2rss\.com$ +(^|\.)pagodabox\.com$ +(^|\.)palacemoon\.com$ +(^|\.)paldengyal\.com$ +(^|\.)paljorpublications\.com$ +(^|\.)paltalk\.com$ +(^|\.)panamapapers\.sueddeutsche\.de$ +(^|\.)pandapow\.co$ +(^|\.)pandapow\.net$ +(^|\.)pandavpn-jp\.com$ +(^|\.)pandora\.com$ +(^|\.)pandora\.tv$ +(^|\.)panluan\.net$ +(^|\.)panoramio\.com$ +(^|\.)pao-pao\.net$ +(^|\.)paper\.li$ +(^|\.)paperb\.us$ +(^|\.)paradisehill\.cc$ +(^|\.)paradisepoker\.com$ +(^|\.)parkansky\.com$ +(^|\.)partycasino\.com$ +(^|\.)partypoker\.com$ +(^|\.)passion\.com$ +(^|\.)passiontimes\.hk$ +(^|\.)paste\.ee$ +(^|\.)pastebin\.com$ +(^|\.)pastie\.org$ +(^|\.)pbs\.org$ +(^|\.)pbwiki\.com$ +(^|\.)pbworks\.com$ +(^|\.)pbxes\.com$ +(^|\.)pbxes\.org$ +(^|\.)pcanywhere\.net$ +(^|\.)pcc\.gov\.tw$ +(^|\.)pcdvd\.com\.tw$ +(^|\.)pchome\.com\.tw$ +(^|\.)pcij\.org$ +(^|\.)pcstore\.com\.tw$ +(^|\.)pct\.org\.tw$ +(^|\.)pdetails\.com$ +(^|\.)pdproxy\.com$ +(^|\.)pds\.nasa\.gov$ +(^|\.)peace\.ca$ +(^|\.)peacefire\.org$ +(^|\.)peacehall\.com$ +(^|\.)pearlher\.org$ +(^|\.)peeasian\.com$ +(^|\.)pekingduck\.org$ +(^|\.)pemulihan\.or\.id$ +(^|\.)pen\.io$ +(^|\.)penchinese\.com$ +(^|\.)penchinese\.net$ +(^|\.)pengyulong\.com$ +(^|\.)penisbot\.com$ +(^|\.)penthouse\.com$ +(^|\.)pentoy\.hk$ +(^|\.)peoplebookcafe\.com$ +(^|\.)peoplenews\.tw$ +(^|\.)peopo\.org$ +(^|\.)percy\.in$ +(^|\.)perfectgirls\.net$ +(^|\.)perfectvpn\.net$ +(^|\.)periscope\.tv$ +(^|\.)persecutionblog\.com$ +(^|\.)persiankitty\.com$ +(^|\.)pfd\.org\.hk$ +(^|\.)phapluan\.org$ +(^|\.)phayul\.com$ +(^|\.)philborges\.com$ +(^|\.)philly\.com$ +(^|\.)phmsociety\.org$ +(^|\.)phncdn\.com$ +(^|\.)phobos\.apple\.com$ +(^|\.)phosphation13\.rssing\.com$ +(^|\.)photodharma\.net$ +(^|\.)photofocus\.com$ +(^|\.)phuquocservices\.com$ +(^|\.)picacomic\.com$ +(^|\.)picacomiccn\.com$ +(^|\.)picasaweb\.com$ +(^|\.)picidae\.net$ +(^|\.)pictures\.playboy\.com$ +(^|\.)picturesocial\.com$ +(^|\.)pin-cong\.com$ +(^|\.)pin6\.com$ +(^|\.)pincong\.rocks$ +(^|\.)ping\.fm$ +(^|\.)pinimg\.com$ +(^|\.)pinkrod\.com$ +(^|\.)pinoy-n\.com$ +(^|\.)pinterest\.at$ +(^|\.)pinterest\.co\.kr$ +(^|\.)pinterest\.co\.uk$ +(^|\.)pinterest\.com$ +(^|\.)pinterest\.de$ +(^|\.)pinterest\.dk$ +(^|\.)pinterest\.fr$ +(^|\.)pinterest\.jp$ +(^|\.)pinterest\.nl$ +(^|\.)pinterest\.se$ +(^|\.)pioneer-worker\.forums-free\.com$ +(^|\.)pipii\.tv$ +(^|\.)piposay\.com$ +(^|\.)piraattilahti\.org$ +(^|\.)piring\.com$ +(^|\.)pixelqi\.com$ +(^|\.)pixiv\.net$ +(^|\.)pixnet\.net$ +(^|\.)pk\.com$ +(^|\.)pki\.goog$ +(^|\.)placemix\.com$ +(^|\.)playboy\.com$ +(^|\.)playboyplus\.com$ +(^|\.)player\.fm$ +(^|\.)playno1\.com$ +(^|\.)playpcesor\.com$ +(^|\.)plays\.com\.tw$ +(^|\.)plm\.org\.hk$ +(^|\.)plunder\.com$ +(^|\.)plurk\.com$ +(^|\.)plus28\.com$ +(^|\.)plusbb\.com$ +(^|\.)pmatehunter\.com$ +(^|\.)pmates\.com$ +(^|\.)po2b\.com$ +(^|\.)pobieramy\.top$ +(^|\.)podictionary\.com$ +(^|\.)pokerstars\.com$ +(^|\.)pokerstars\.net$ +(^|\.)politicalchina\.org$ +(^|\.)politicalconsultation\.org$ +(^|\.)politiscales\.net$ +(^|\.)poloniex\.com$ +(^|\.)polymer-project\.org$ +(^|\.)polymerhk\.com$ +(^|\.)popo\.tw$ +(^|\.)popvote\.hk$ +(^|\.)popyard\.com$ +(^|\.)popyard\.org$ +(^|\.)porn\.com$ +(^|\.)porn2\.com$ +(^|\.)porn5\.com$ +(^|\.)pornbase\.org$ +(^|\.)pornerbros\.com$ +(^|\.)pornhd\.com$ +(^|\.)pornhost\.com$ +(^|\.)pornhub\.com$ +(^|\.)pornhubdeutsch\.net$ +(^|\.)pornmm\.net$ +(^|\.)pornoxo\.com$ +(^|\.)pornrapidshare\.com$ +(^|\.)pornsharing\.com$ +(^|\.)pornsocket\.com$ +(^|\.)pornstarclub\.com$ +(^|\.)porntube\.com$ +(^|\.)porntubenews\.com$ +(^|\.)porntvblog\.com$ +(^|\.)pornvisit\.com$ +(^|\.)port25\.biz$ +(^|\.)portablevpn\.nl$ +(^|\.)poskotanews\.com$ +(^|\.)post01\.com$ +(^|\.)post76\.com$ +(^|\.)post852\.com$ +(^|\.)postadult\.com$ +(^|\.)postimg\.org$ +(^|\.)potvpn\.com$ +(^|\.)power\.com$ +(^|\.)powerapple\.com$ +(^|\.)powercx\.com$ +(^|\.)powerphoto\.org$ +(^|\.)prayforchina\.net$ +(^|\.)premeforwindows7\.com$ +(^|\.)premproxy\.com$ +(^|\.)presentationzen\.com$ +(^|\.)presidentlee\.tw$ +(^|\.)prestige-av\.com$ +(^|\.)pride\.google$ +(^|\.)prisoner-state-secret-journal-premier$ +(^|\.)prisoneralert\.com$ +(^|\.)pritunl\.com$ +(^|\.)privacybox\.de$ +(^|\.)private\.com$ +(^|\.)privateinternetaccess\.com$ +(^|\.)privatepaste\.com$ +(^|\.)privatetunnel\.com$ +(^|\.)privatevpn\.com$ +(^|\.)procopytips\.com$ +(^|\.)prosiben\.de$ +(^|\.)protonvpn\.com$ +(^|\.)provideocoalition\.com$ +(^|\.)provpnaccounts\.com$ +(^|\.)proxfree\.com$ +(^|\.)proxifier\.com$ +(^|\.)proxomitron\.info$ +(^|\.)proxpn\.com$ +(^|\.)proxyanonimo\.es$ +(^|\.)proxydns\.com$ +(^|\.)proxylist\.org\.uk$ +(^|\.)proxynetwork\.org\.uk$ +(^|\.)proxypy\.net$ +(^|\.)proxyroad\.com$ +(^|\.)proxytunnel\.net$ +(^|\.)proyectoclubes\.com$ +(^|\.)prozz\.net$ +(^|\.)psblog\.name$ +(^|\.)pscp\.tv$ +(^|\.)psiphon\.ca$ +(^|\.)psiphon\.civisec\.org$ +(^|\.)psiphon3\.com$ +(^|\.)psiphontoday\.com$ +(^|\.)pts\.org\.tw$ +(^|\.)ptt\.cc$ +(^|\.)pttvan\.org$ +(^|\.)pubu\.com\.tw$ +(^|\.)puffinbrowser\.com$ +(^|\.)puffstore\.com$ +(^|\.)pullfolio\.com$ +(^|\.)pulse\.yahoo\.com$ +(^|\.)punyu\.com$ +(^|\.)pure18\.com$ +(^|\.)pureconcepts\.net$ +(^|\.)pureinsight\.org$ +(^|\.)purepdf\.com$ +(^|\.)purevpn\.com$ +(^|\.)purplelotus\.org$ +(^|\.)pursuestar\.com$ +(^|\.)pushchinawall\.com$ +(^|\.)pussyspace\.com$ +(^|\.)putihome\.org$ +(^|\.)putlocker\.com$ +(^|\.)putty\.org$ +(^|\.)puuko\.com$ +(^|\.)pwned\.com$ +(^|\.)python\.com$ +(^|\.)python\.com\.tw$ +(^|\.)pythonhackers\.com$ +(^|\.)pytorch\.org$ +(^|\.)q%3dfreedom$ +(^|\.)q%3dtriangle$ +(^|\.)q=freedom$ +(^|\.)q=triangle$ +(^|\.)qanote\.com$ +(^|\.)qgirl\.com\.tw$ +(^|\.)qhigh\.com$ +(^|\.)qi-gong\.me$ +(^|\.)qiandao\.today$ +(^|\.)qiangyou\.org$ +(^|\.)qidian\.ca$ +(^|\.)qienkuen\.org$ +(^|\.)qiwen\.lu$ +(^|\.)qixianglu\.cn$ +(^|\.)qkshare\.com$ +(^|\.)qoos\.com$ +(^|\.)qpoe\.com$ +(^|\.)qq\.co\.za$ +(^|\.)qstatus\.com$ +(^|\.)qtrac\.eu$ +(^|\.)qtweeter\.com$ +(^|\.)quannengshen\.org$ +(^|\.)quantumbooter\.net$ +(^|\.)questvisual\.com$ +(^|\.)quitccp\.net$ +(^|\.)quitccp\.org$ +(^|\.)quora\.com$ +(^|\.)quoracdn\.net$ +(^|\.)quran\.com$ +(^|\.)quranexplorer\.com$ +(^|\.)qusi8\.net$ +(^|\.)qvodzy\.org$ +(^|\.)qxbbs\.org$ +(^|\.)r18\.com$ +(^|\.)ra\.gg$ +(^|\.)radicalparty\.org$ +(^|\.)radiko\.jp$ +(^|\.)radioaustralia\.net\.au$ +(^|\.)radiohilight\.net$ +(^|\.)radiovaticana\.org$ +(^|\.)radiovncr\.com$ +(^|\.)rael\.org$ +(^|\.)raggedbanner\.com$ +(^|\.)raidcall\.com\.tw$ +(^|\.)raidtalk\.com\.tw$ +(^|\.)rainbowplan\.org$ +(^|\.)raizoji\.or\.jp$ +(^|\.)ramcity\.com\.au$ +(^|\.)rangwang\.biz$ +(^|\.)rangzen\.com$ +(^|\.)rangzen\.net$ +(^|\.)rangzen\.org$ +(^|\.)ranyunfei\.com$ +(^|\.)rapbull\.net$ +(^|\.)rapidgator\.net$ +(^|\.)rapidmoviez\.com$ +(^|\.)rapidvpn\.com$ +(^|\.)raremovie\.cc$ +(^|\.)raremovie\.net$ +(^|\.)rawgit\.com$ +(^|\.)rawgithub\.com$ +(^|\.)razyboard\.com$ +(^|\.)rcam\.target\.com$ +(^|\.)rcinet\.ca$ +(^|\.)rconversation\.blogs\.com$ +(^|\.)rd\.com$ +(^|\.)rdio\.com$ +(^|\.)read01\.com$ +(^|\.)read100\.com$ +(^|\.)readingtimes\.com\.tw$ +(^|\.)readmoo\.com$ +(^|\.)readydown\.com$ +(^|\.)realcourage\.org$ +(^|\.)realforum\.zkiz\.com$ +(^|\.)realitykings\.com$ +(^|\.)realraptalk\.com$ +(^|\.)realsexpass\.com$ +(^|\.)rebatesrule\.net$ +(^|\.)recordhistory\.org$ +(^|\.)recovery\.org\.tw$ +(^|\.)recoveryversion\.com\.tw$ +(^|\.)red-lang\.org$ +(^|\.)redballoonsolidarity\.org$ +(^|\.)redchinacn\.net$ +(^|\.)redchinacn\.org$ +(^|\.)redd\.it$ +(^|\.)reddit\.com$ +(^|\.)redditlist\.com$ +(^|\.)redditmedia\.com$ +(^|\.)redditstatic\.com$ +(^|\.)redhotlabs\.com$ +(^|\.)redtube\.com$ +(^|\.)referer\.us$ +(^|\.)reflectivecode\.com$ +(^|\.)registry\.google$ +(^|\.)relaxbbs\.com$ +(^|\.)relay\.com\.tw$ +(^|\.)releaseinternational\.org$ +(^|\.)religioustolerance\.org$ +(^|\.)remembering_tiananmen_20_years$ +(^|\.)renminbao\.com$ +(^|\.)renyurenquan\.org$ +(^|\.)research\.jmsc\.hku\.hk$ +(^|\.)resilio\.com$ +(^|\.)retweeteffect\.com$ +(^|\.)retweetist\.com$ +(^|\.)retweetrank\.com$ +(^|\.)reuters\.com$ +(^|\.)reutersmedia\.net$ +(^|\.)revleft\.com$ +(^|\.)revver\.com$ +(^|\.)rfa\.org$ +(^|\.)rfachina\.com$ +(^|\.)rfalive1\.akacast\.akamaistream\.net$ +(^|\.)rfamobile\.org$ +(^|\.)rfaweb\.org$ +(^|\.)rferl\.org$ +(^|\.)rfi\.fr$ +(^|\.)rfi\.my$ +(^|\.)rg3\.github\.io$ +(^|\.)rightbtc\.com$ +(^|\.)rigpa\.org$ +(^|\.)riku\.me$ +(^|\.)rileyguide\.com$ +(^|\.)ritouki\.jp$ +(^|\.)ritter\.vg$ +(^|\.)rixcloud\.com$ +(^|\.)rixcloud\.us$ +(^|\.)rlwlw\.com$ +(^|\.)rmjdw\.com$ +(^|\.)rmjdw132\.info$ +(^|\.)roadshow\.hk$ +(^|\.)roboforex\.com$ +(^|\.)robustnessiskey\.com$ +(^|\.)rocket-inc\.net$ +(^|\.)rocksdb\.org$ +(^|\.)rojo\.com$ +(^|\.)rolia\.net$ +(^|\.)ronjoneswriter\.com$ +(^|\.)roodo\.com$ +(^|\.)rosechina\.net$ +(^|\.)rotten\.com$ +(^|\.)rsdlmonitor\.com$ +(^|\.)rsf-chinese\.org$ +(^|\.)rsf\.org$ +(^|\.)rsgamen\.org$ +(^|\.)rssmeme\.com$ +(^|\.)rtalabel\.org$ +(^|\.)rthk\.hk$ +(^|\.)rthk\.org\.hk$ +(^|\.)rthklive2-lh\.akamaihd\.net$ +(^|\.)rti\.org\.tw$ +(^|\.)rtycminnesota\.org$ +(^|\.)ruanyifeng\.com$ +(^|\.)rukor\.org$ +(^|\.)runbtx\.com$ +(^|\.)rushbee\.com$ +(^|\.)ruten\.com\.tw$ +(^|\.)rutube\.ru$ +(^|\.)ruyiseek\.com$ +(^|\.)rxhj\.net$ +(^|\.)s-cute\.com$ +(^|\.)s-dragon\.org$ +(^|\.)s1\.nudezz\.com$ +(^|\.)s1heng\.com$ +(^|\.)s1s1s1\.com$ +(^|\.)s3-ap-northeast-1\.amazonaws\.com$ +(^|\.)s3-ap-southeast-2\.amazonaws\.com$ +(^|\.)s8forum\.com$ +(^|\.)sa\.hao123\.com$ +(^|\.)sacks\.com$ +(^|\.)sacom\.hk$ +(^|\.)sadistic-v\.com$ +(^|\.)sadpanda\.us$ +(^|\.)safervpn\.com$ +(^|\.)safety\.google$ +(^|\.)saintyculture\.com$ +(^|\.)saiq\.me$ +(^|\.)sakuralive\.com$ +(^|\.)sakya\.org$ +(^|\.)salvation\.org\.hk$ +(^|\.)samair\.ru$ +(^|\.)sambhota\.org$ +(^|\.)sanmin\.com\.tw$ +(^|\.)sapikachu\.net$ +(^|\.)saveliuxiaobo\.com$ +(^|\.)savemedia\.com$ +(^|\.)savethedate\.foo$ +(^|\.)savethesounds\.info$ +(^|\.)savetibet\.de$ +(^|\.)savetibet\.fr$ +(^|\.)savetibet\.nl$ +(^|\.)savetibet\.org$ +(^|\.)savetibet\.ru$ +(^|\.)savetibetstore\.org$ +(^|\.)savevid\.com$ +(^|\.)say2\.info$ +(^|\.)sbme\.me$ +(^|\.)sbs\.com\.au$ +(^|\.)scache\.vzw\.com$ +(^|\.)scache1\.vzw\.com$ +(^|\.)scache2\.vzw\.com$ +(^|\.)scasino\.com$ +(^|\.)schema\.org$ +(^|\.)sciencenets\.com$ +(^|\.)scieron\.com$ +(^|\.)scmp\.com$ +(^|\.)scmpchinese\.com$ +(^|\.)scramble\.io$ +(^|\.)scribd\.com$ +(^|\.)scriptspot\.com$ +(^|\.)seapuff\.com$ +(^|\.)search$ +(^|\.)search\.aol\.com$ +(^|\.)search\.yahoo\.co\.jp$ +(^|\.)search\.yahoo\.com$ +(^|\.)searchtruth\.com$ +(^|\.)secretchina\.com$ +(^|\.)secretgarden\.no$ +(^|\.)secretsline\.biz$ +(^|\.)secure\.hustler\.com$ +(^|\.)secure\.logmein\.com$ +(^|\.)secure\.raxcdn\.com$ +(^|\.)securetunnel\.com$ +(^|\.)securityinabox\.org$ +(^|\.)securitykiss\.com$ +(^|\.)seed4\.me$ +(^|\.)seesmic\.com$ +(^|\.)seevpn\.com$ +(^|\.)seezone\.net$ +(^|\.)sejie\.com$ +(^|\.)sellclassics\.com$ +(^|\.)sendsmtp\.com$ +(^|\.)sendspace\.com$ +(^|\.)servehttp\.com$ +(^|\.)serveuser\.com$ +(^|\.)serveusers\.com$ +(^|\.)sesawe\.net$ +(^|\.)sesawe\.org$ +(^|\.)sethwklein\.net$ +(^|\.)setn\.com$ +(^|\.)settv\.com\.tw$ +(^|\.)sevenload\.com$ +(^|\.)sex-11\.com$ +(^|\.)sex\.com$ +(^|\.)sex3\.com$ +(^|\.)sex8\.cc$ +(^|\.)sexandsubmission\.com$ +(^|\.)sexbot\.com$ +(^|\.)sexhu\.com$ +(^|\.)sexhuang\.com$ +(^|\.)sexidude\.com$ +(^|\.)sexinsex\.net$ +(^|\.)sextvx\.com$ +(^|\.)sexxxy\.biz$ +(^|\.)sfileydy\.com$ +(^|\.)sfshibao\.com$ +(^|\.)sftindia\.org$ +(^|\.)sftuk\.org$ +(^|\.)shadeyouvpn\.com$ +(^|\.)shadow\.ma$ +(^|\.)shadowsky\.xyz$ +(^|\.)shadowsocks-r\.com$ +(^|\.)shadowsocks\.asia$ +(^|\.)shadowsocks\.be$ +(^|\.)shadowsocks\.com$ +(^|\.)shadowsocks\.com\.hk$ +(^|\.)shadowsocks\.org$ +(^|\.)shadowsocks9\.com$ +(^|\.)shambalapost\.com$ +(^|\.)shambhalasun\.com$ +(^|\.)shangfang\.org$ +(^|\.)shapeservices\.com$ +(^|\.)share\.dmhy\.org$ +(^|\.)share\.ovi\.com$ +(^|\.)share\.youthwant\.com\.tw$ +(^|\.)sharebee\.com$ +(^|\.)sharecool\.org$ +(^|\.)sharpdaily\.com\.hk$ +(^|\.)sharpdaily\.hk$ +(^|\.)sharpdaily\.tw$ +(^|\.)shat-tibet\.com$ +(^|\.)shattered\.io$ +(^|\.)sheikyermami\.com$ +(^|\.)shellfire\.de$ +(^|\.)shenshou\.org$ +(^|\.)shenyun\.com$ +(^|\.)shenyunperformingarts\.org$ +(^|\.)shenzhoufilm\.com$ +(^|\.)sherabgyaltsen\.com$ +(^|\.)shiatv\.net$ +(^|\.)shicheng\.org$ +(^|\.)shiksha\.com$ +(^|\.)shinychan\.com$ +(^|\.)shipcamouflage\.com$ +(^|\.)shireyishunjian\.com$ +(^|\.)shitaotv\.org$ +(^|\.)shixiao\.org$ +(^|\.)shizhao\.org$ +(^|\.)shkspr\.mobi$ +(^|\.)shodanhq\.com$ +(^|\.)shooshtime\.com$ +(^|\.)shop2000\.com\.tw$ +(^|\.)shopping\.com$ +(^|\.)showbiz\.omy\.sg$ +(^|\.)showhaotu\.com$ +(^|\.)showtime\.jp$ +(^|\.)shutterstock\.com$ +(^|\.)shwchurch\.org$ +(^|\.)shwchurch3\.com$ +(^|\.)siddharthasintent\.org$ +(^|\.)sidelinesnews\.com$ +(^|\.)sidelinessportseatery\.com$ +(^|\.)sierrafriendsoftibet\.org$ +(^|\.)sijihuisuo\.club$ +(^|\.)sijihuisuo\.com$ +(^|\.)sikaozhe1997\.github\.io$ +(^|\.)silkbook\.com$ +(^|\.)simbolostwitter\.com$ +(^|\.)simplecd\.org$ +(^|\.)simpleproductivityblog\.com$ +(^|\.)sinchew\.com\.my$ +(^|\.)singaporepools\.com\.sg$ +(^|\.)singfortibet\.com$ +(^|\.)singpao\.com\.hk$ +(^|\.)singtao\.com$ +(^|\.)singtaousa\.com$ +(^|\.)sino-monthly\.com$ +(^|\.)sinoants\.com$ +(^|\.)sinocast\.com$ +(^|\.)sinocism\.com$ +(^|\.)sinomontreal\.ca$ +(^|\.)sinonet\.ca$ +(^|\.)sinopitt\.info$ +(^|\.)sinoquebec\.com$ +(^|\.)sipml5\.org$ +(^|\.)sis\.xxx$ +(^|\.)sis001\.com$ +(^|\.)sis001\.us$ +(^|\.)site2unblock\.com$ +(^|\.)site90\.net$ +(^|\.)sitebro\.tw$ +(^|\.)sitekreator\.com$ +(^|\.)siteks\.uk\.to$ +(^|\.)sitemaps\.org$ +(^|\.)six-degrees\.io$ +(^|\.)sixth\.biz$ +(^|\.)sjrt\.org$ +(^|\.)sjum\.cn$ +(^|\.)sketchappsources\.com$ +(^|\.)skimtube\.com$ +(^|\.)skybet\.com$ +(^|\.)skyking\.com\.tw$ +(^|\.)skyvegas\.com$ +(^|\.)skyxvpn\.com$ +(^|\.)slacker\.com$ +(^|\.)slaytizle\.com$ +(^|\.)sleazydream\.com$ +(^|\.)slheng\.com$ +(^|\.)slickvpn\.com$ +(^|\.)slideshare\.net$ +(^|\.)slinkset\.com$ +(^|\.)slutload\.com$ +(^|\.)slutmoonbeam\.com$ +(^|\.)slyip\.com$ +(^|\.)slyip\.net$ +(^|\.)sm-miracle\.com$ +(^|\.)smartdnsproxy\.com$ +(^|\.)smarthide\.com$ +(^|\.)smchbooks\.com$ +(^|\.)smh\.com\.au$ +(^|\.)smhric\.org$ +(^|\.)smith\.edu$ +(^|\.)smyxy\.org$ +(^|\.)snapchat\.com$ +(^|\.)snaptu\.com$ +(^|\.)sndcdn\.com$ +(^|\.)sneakme\.net$ +(^|\.)snowlionpub\.com$ +(^|\.)sobees\.com$ +(^|\.)soc\.mil$ +(^|\.)socialwhale\.com$ +(^|\.)socks-proxy\.net$ +(^|\.)sockscap64\.com$ +(^|\.)sockslist\.net$ +(^|\.)socrec\.org$ +(^|\.)sod\.co\.jp$ +(^|\.)sodatea\.github\.io$ +(^|\.)softether-download\.com$ +(^|\.)softether\.co\.jp$ +(^|\.)softether\.org$ +(^|\.)softsmirror\.cf$ +(^|\.)softwarebychuck\.com$ +(^|\.)softwaredownload\.gitbooks\.io$ +(^|\.)sogclub\.com$ +(^|\.)sogrady\.me$ +(^|\.)soh\.tw$ +(^|\.)sohcradio\.com$ +(^|\.)sohfrance\.org$ +(^|\.)sokamonline\.com$ +(^|\.)sokmil\.com$ +(^|\.)solarsystem\.nasa\.gov$ +(^|\.)solidaritetibet\.org$ +(^|\.)solidfiles\.com$ +(^|\.)somee\.com$ +(^|\.)songjianjun\.com$ +(^|\.)sonicbbs\.cc$ +(^|\.)sonidodelaesperanza\.org$ +(^|\.)sopcast\.com$ +(^|\.)sopcast\.org$ +(^|\.)sorazone\.net$ +(^|\.)sorting-algorithms\.com$ +(^|\.)sos\.org$ +(^|\.)sosreader\.com$ +(^|\.)sostibet\.org$ +(^|\.)soubory\.com$ +(^|\.)soul-plus\.net$ +(^|\.)soulcaliburhentai\.net$ +(^|\.)soumo\.info$ +(^|\.)soundcloud\.com$ +(^|\.)soundofhope\.kr$ +(^|\.)soundofhope\.org$ +(^|\.)soup\.io$ +(^|\.)soupofmedia\.com$ +(^|\.)sourceforge\.net$ +(^|\.)sourcewadio\.com$ +(^|\.)southnews\.com\.tw$ +(^|\.)sowers\.org\.hk$ +(^|\.)soylentnews\.org$ +(^|\.)spaces\.hightail\.com$ +(^|\.)spankbang\.com$ +(^|\.)spankingtube\.com$ +(^|\.)spankwire\.com$ +(^|\.)spb\.com$ +(^|\.)speakerdeck\.com$ +(^|\.)specxinzl\.jigsy\.com$ +(^|\.)speedify\.com$ +(^|\.)spem\.at$ +(^|\.)spencertipping\.com$ +(^|\.)spendee\.com$ +(^|\.)spicevpn\.com$ +(^|\.)spideroak\.com$ +(^|\.)spike\.com$ +(^|\.)sports\.williamhill\.com$ +(^|\.)spotflux\.com$ +(^|\.)spotify\.com$ +(^|\.)spreadshirt\.es$ +(^|\.)spring4u\.info$ +(^|\.)springboardplatform\.com$ +(^|\.)sprite\.org$ +(^|\.)sproutcore\.com$ +(^|\.)sproxy\.info$ +(^|\.)squirly\.info$ +(^|\.)srcf\.ucam\.org$ +(^|\.)srocket\.us$ +(^|\.)ss-link\.com$ +(^|\.)ss\.carryzhou\.com$ +(^|\.)ss\.levyhsu\.com$ +(^|\.)ss\.pythonic\.life$ +(^|\.)ss7\.vzw\.com$ +(^|\.)ssglobal\.co$ +(^|\.)ssglobal\.me$ +(^|\.)ssh91\.com$ +(^|\.)ssl\.webpack\.de$ +(^|\.)ssl443\.org$ +(^|\.)sspanel\.net$ +(^|\.)sspro\.ml$ +(^|\.)ssr\.tools$ +(^|\.)ssrshare\.com$ +(^|\.)sss\.camp$ +(^|\.)sstmlt\.moe$ +(^|\.)sstmlt\.net$ +(^|\.)stackoverflow\.com$ +(^|\.)stage64\.hk$ +(^|\.)standupfortibet\.org$ +(^|\.)stanford\.edu$ +(^|\.)starfishfx\.com$ +(^|\.)starp2p\.com$ +(^|\.)startpage\.com$ +(^|\.)startuplivingchina\.com$ +(^|\.)stat\.gov\.tw$ +(^|\.)static-economist\.com$ +(^|\.)static\.comico\.tw$ +(^|\.)static\.shemalez\.com$ +(^|\.)static01\.nyt\.com$ +(^|\.)staticflickr\.com$ +(^|\.)statueofdemocracy\.org$ +(^|\.)stc\.com\.sa$ +(^|\.)steamcommunity\.com$ +(^|\.)steel-storm\.com$ +(^|\.)steganos\.com$ +(^|\.)steganos\.net$ +(^|\.)stepchina\.com$ +(^|\.)stephaniered\.com$ +(^|\.)sthoo\.com$ +(^|\.)stickam\.com$ +(^|\.)stickeraction\.com$ +(^|\.)stileproject\.com$ +(^|\.)sto\.cc$ +(^|\.)stoporganharvesting\.org$ +(^|\.)stoptibetcrisis\.net$ +(^|\.)storagenewsletter\.com$ +(^|\.)store\.steampowered\.com$ +(^|\.)stories\.google$ +(^|\.)storify\.com$ +(^|\.)storm\.mg$ +(^|\.)stormmediagroup\.com$ +(^|\.)stoweboyd\.com$ +(^|\.)stranabg\.com$ +(^|\.)straplessdildo\.com$ +(^|\.)streamingthe\.net$ +(^|\.)streema\.com$ +(^|\.)strikingly\.com$ +(^|\.)strongvpn\.com$ +(^|\.)strongwindpress\.com$ +(^|\.)student\.tw$ +(^|\.)studentsforafreetibet\.org$ +(^|\.)stumbleupon\.com$ +(^|\.)stupidvideos\.com$ +(^|\.)subacme\.rerouted\.org$ +(^|\.)successfn\.com$ +(^|\.)sugarsync\.com$ +(^|\.)sugobbs\.com$ +(^|\.)sugumiru18\.com$ +(^|\.)suissl\.com$ +(^|\.)sujiatun\.wordpress\.com$ +(^|\.)sukebei\.nyaa\.si$ +(^|\.)sulian\.me$ +(^|\.)summify\.com$ +(^|\.)sumrando\.com$ +(^|\.)sun1911\.com$ +(^|\.)sunmedia\.ca$ +(^|\.)sunporno\.com$ +(^|\.)sunskyforum\.com$ +(^|\.)sunta\.com\.tw$ +(^|\.)sunvpn\.net$ +(^|\.)sunwinism\.joinbbs\.net$ +(^|\.)suoluo\.org$ +(^|\.)supchina\.com$ +(^|\.)superfreevpn\.com$ +(^|\.)superokayama\.com$ +(^|\.)superpages\.com$ +(^|\.)supervpn\.net$ +(^|\.)superzooi\.com$ +(^|\.)suppig\.net$ +(^|\.)suprememastertv\.com$ +(^|\.)surfeasy\.com$ +(^|\.)surfeasy\.com\.au$ +(^|\.)suroot\.com$ +(^|\.)surrenderat20\.net$ +(^|\.)sustainability\.google$ +(^|\.)suyangg\.com$ +(^|\.)svsfx\.com$ +(^|\.)swagbucks\.com$ +(^|\.)swissinfo\.ch$ +(^|\.)swissvpn\.net$ +(^|\.)switch1\.jp$ +(^|\.)switchvpn\.net$ +(^|\.)sydneytoday\.com$ +(^|\.)sylfoundation\.org$ +(^|\.)syncback\.com$ +(^|\.)synergyse\.com$ +(^|\.)sysresccd\.org$ +(^|\.)sytes\.net$ +(^|\.)szbbs\.net$ +(^|\.)szetowah\.org\.hk$ +(^|\.)t-g\.com$ +(^|\.)t\.co$ +(^|\.)t\.me$ +(^|\.)t\.orzdream\.com$ +(^|\.)t35\.com$ +(^|\.)t66y\.com$ +(^|\.)taa-usa\.org$ +(^|\.)taaze\.tw$ +(^|\.)tabtter\.jp$ +(^|\.)tacc\.cwb\.gov\.tw$ +(^|\.)tacem\.org$ +(^|\.)taconet\.com\.tw$ +(^|\.)taedp\.org\.tw$ +(^|\.)tafm\.org$ +(^|\.)tagwa\.org\.au$ +(^|\.)tagwalk\.com$ +(^|\.)tahr\.org\.tw$ +(^|\.)taipei\.gov\.tw$ +(^|\.)taipeisociety\.org$ +(^|\.)taiwan-sex\.com$ +(^|\.)taiwanbible\.com$ +(^|\.)taiwancon\.com$ +(^|\.)taiwandaily\.net$ +(^|\.)taiwandc\.org$ +(^|\.)taiwanjobs\.gov\.tw$ +(^|\.)taiwanjustice\.com$ +(^|\.)taiwanjustice\.net$ +(^|\.)taiwankiss\.com$ +(^|\.)taiwannation\.50webs\.com$ +(^|\.)taiwannation\.com$ +(^|\.)taiwannation\.com\.tw$ +(^|\.)taiwanncf\.org\.tw$ +(^|\.)taiwannews\.com\.tw$ +(^|\.)taiwantp\.net$ +(^|\.)taiwantt\.org\.tw$ +(^|\.)taiwanus\.net$ +(^|\.)taiwanyes\.com$ +(^|\.)taiwanyes\.ning\.com$ +(^|\.)talk853\.com$ +(^|\.)talkboxapp\.com$ +(^|\.)talkcc\.com$ +(^|\.)talkonly\.net$ +(^|\.)tamiaode\.tk$ +(^|\.)tanc\.org$ +(^|\.)tangben\.com$ +(^|\.)tangren\.us$ +(^|\.)taoism\.net$ +(^|\.)taolun\.info$ +(^|\.)tapanwap\.com$ +(^|\.)tapatalk\.com$ +(^|\.)tarr\.uspto\.gov$ +(^|\.)tascn\.com\.au$ +(^|\.)taup\.net$ +(^|\.)taweet\.com$ +(^|\.)tbcollege\.org$ +(^|\.)tbi\.org\.hk$ +(^|\.)tbicn\.org$ +(^|\.)tbjyt\.org$ +(^|\.)tbpic\.info$ +(^|\.)tbrc\.org$ +(^|\.)tbs-rainbow\.org$ +(^|\.)tbsec\.org$ +(^|\.)tbskkinabalu\.page\.tl$ +(^|\.)tbsmalaysia\.org$ +(^|\.)tbsn\.org$ +(^|\.)tbsseattle\.org$ +(^|\.)tbssqh\.org$ +(^|\.)tbswd\.org$ +(^|\.)tbtemple\.org\.uk$ +(^|\.)tbthouston\.org$ +(^|\.)tccwonline\.org$ +(^|\.)tcewf\.org$ +(^|\.)tchrd\.org$ +(^|\.)tcnynj\.org$ +(^|\.)tcpspeed\.co$ +(^|\.)tcpspeed\.com$ +(^|\.)tcsofbc\.org$ +(^|\.)tcsovi\.org$ +(^|\.)tdm\.com\.mo$ +(^|\.)teachparentstech\.org$ +(^|\.)teamamericany\.com$ +(^|\.)tech2\.in\.com$ +(^|\.)techviz\.net$ +(^|\.)teck\.in$ +(^|\.)teco-hk\.org$ +(^|\.)teco-mo\.org$ +(^|\.)teddysun\.com$ +(^|\.)teeniefuck\.net$ +(^|\.)teensinasia\.com$ +(^|\.)telecomspace\.com$ +(^|\.)telegram\.dog$ +(^|\.)telegram\.me$ +(^|\.)telegram\.org$ +(^|\.)telegramdownload\.com$ +(^|\.)telegraph\.co\.uk$ +(^|\.)telesco\.pe$ +(^|\.)tellme\.pw$ +(^|\.)tenacy\.com$ +(^|\.)tensorflow\.org$ +(^|\.)tenzinpalmo\.com$ +(^|\.)terminus2049\.github\.io$ +(^|\.)tew\.org$ +(^|\.)textnow\.me$ +(^|\.)th\.hao123\.com$ +(^|\.)thaicn\.com$ +(^|\.)thb\.gov\.tw$ +(^|\.)theatrum-belli\.com$ +(^|\.)thebcomplex\.com$ +(^|\.)theblemish\.com$ +(^|\.)thebobs\.com$ +(^|\.)thebodyshop-usa\.com$ +(^|\.)thecenter\.mit\.edu$ +(^|\.)thechinabeat\.org$ +(^|\.)thedalailamamovie\.com$ +(^|\.)thedw\.us$ +(^|\.)thefacebook\.com$ +(^|\.)thefrontier\.hk$ +(^|\.)thegioitinhoc\.vn$ +(^|\.)thegly\.com$ +(^|\.)thehots\.info$ +(^|\.)thehousenews\.com$ +(^|\.)thehun\.net$ +(^|\.)theinitium\.com$ +(^|\.)thenewslens\.com$ +(^|\.)thepiratebay\.org$ +(^|\.)theporndude\.com$ +(^|\.)theportalwiki\.com$ +(^|\.)thereallove\.kr$ +(^|\.)therock\.net\.nz$ +(^|\.)thespeeder\.com$ +(^|\.)thestandnews\.com$ +(^|\.)thetibetcenter\.org$ +(^|\.)thetibetconnection\.org$ +(^|\.)thetibetmuseum\.org$ +(^|\.)thetibetpost\.com$ +(^|\.)thetinhat\.com$ +(^|\.)thetrotskymovie\.com$ +(^|\.)thevivekspot\.com$ +(^|\.)thewgo\.org$ +(^|\.)theync\.com$ +(^|\.)thinkgeek\.com$ +(^|\.)thinkingtaiwan\.com$ +(^|\.)thinkwithgoogle\.com$ +(^|\.)thisav\.com$ +(^|\.)thlib\.org$ +(^|\.)thomasbernhard\.org$ +(^|\.)thongdreams\.com$ +(^|\.)threatchaos\.com$ +(^|\.)throughnightsfire\.com$ +(^|\.)thumbzilla\.com$ +(^|\.)thywords\.com$ +(^|\.)thywords\.com\.tw$ +(^|\.)tiananmenduizhi\.com$ +(^|\.)tiananmenmother\.org$ +(^|\.)tiananmenuniv\.com$ +(^|\.)tiananmenuniv\.net$ +(^|\.)tiandixing\.org$ +(^|\.)tianhuayuan\.com$ +(^|\.)tianlawoffice\.com$ +(^|\.)tianti\.io$ +(^|\.)tiantibooks\.org$ +(^|\.)tianyantong\.org\.cn$ +(^|\.)tianzhu\.org$ +(^|\.)tibet-envoy\.eu$ +(^|\.)tibet-foundation\.org$ +(^|\.)tibet-house-trust\.co\.uk$ +(^|\.)tibet-info\.net$ +(^|\.)tibet-initiative\.de$ +(^|\.)tibet-munich\.de$ +(^|\.)tibet\.a\.se$ +(^|\.)tibet\.at$ +(^|\.)tibet\.ca$ +(^|\.)tibet\.com$ +(^|\.)tibet\.fr$ +(^|\.)tibet\.net$ +(^|\.)tibet\.nu$ +(^|\.)tibet\.org$ +(^|\.)tibet\.org\.tw$ +(^|\.)tibet\.sk$ +(^|\.)tibet\.to$ +(^|\.)tibet3rdpole\.org$ +(^|\.)tibetaction\.net$ +(^|\.)tibetaid\.org$ +(^|\.)tibetalk\.com$ +(^|\.)tibetan-alliance\.org$ +(^|\.)tibetan\.fr$ +(^|\.)tibetanaidproject\.org$ +(^|\.)tibetanarts\.org$ +(^|\.)tibetanbuddhistinstitute\.org$ +(^|\.)tibetancommunity\.org$ +(^|\.)tibetancommunityuk\.net$ +(^|\.)tibetanculture\.org$ +(^|\.)tibetanfeministcollective\.org$ +(^|\.)tibetanjournal\.com$ +(^|\.)tibetanlanguage\.org$ +(^|\.)tibetanliberation\.org$ +(^|\.)tibetanpaintings\.com$ +(^|\.)tibetanphotoproject\.com$ +(^|\.)tibetanpoliticalreview\.org$ +(^|\.)tibetanreview\.net$ +(^|\.)tibetansports\.org$ +(^|\.)tibetanwomen\.org$ +(^|\.)tibetanyouth\.org$ +(^|\.)tibetanyouthcongress\.org$ +(^|\.)tibetcharity\.dk$ +(^|\.)tibetcharity\.in$ +(^|\.)tibetchild\.org$ +(^|\.)tibetcity\.com$ +(^|\.)tibetcollection\.com$ +(^|\.)tibetcorps\.org$ +(^|\.)tibetexpress\.net$ +(^|\.)tibetfocus\.com$ +(^|\.)tibetfund\.org$ +(^|\.)tibetgermany\.com$ +(^|\.)tibetgermany\.de$ +(^|\.)tibethaus\.com$ +(^|\.)tibetheritagefund\.org$ +(^|\.)tibethouse\.jp$ +(^|\.)tibethouse\.org$ +(^|\.)tibethouse\.us$ +(^|\.)tibetinfonet\.net$ +(^|\.)tibetjustice\.org$ +(^|\.)tibetkomite\.dk$ +(^|\.)tibetlibre\.free\.fr$ +(^|\.)tibetmuseum\.org$ +(^|\.)tibetnetwork\.org$ +(^|\.)tibetoffice\.ch$ +(^|\.)tibetoffice\.com\.au$ +(^|\.)tibetoffice\.eu$ +(^|\.)tibetoffice\.org$ +(^|\.)tibetonline\.com$ +(^|\.)tibetonline\.tv$ +(^|\.)tibetoralhistory\.org$ +(^|\.)tibetpolicy\.eu$ +(^|\.)tibetrelieffund\.co\.uk$ +(^|\.)tibetsites\.com$ +(^|\.)tibetsociety\.com$ +(^|\.)tibetsun\.com$ +(^|\.)tibetsupportgroup\.org$ +(^|\.)tibetswiss\.ch$ +(^|\.)tibettelegraph\.com$ +(^|\.)tibettimes\.net$ +(^|\.)tibetwrites\.org$ +(^|\.)ticket\.com\.tw$ +(^|\.)tigervpn\.com$ +(^|\.)tiltbrush\.com$ +(^|\.)timdir\.com$ +(^|\.)time\.com$ +(^|\.)times\.hinet\.net$ +(^|\.)timesofindia\.indiatimes\.com$ +(^|\.)timsah\.com$ +(^|\.)tinc-vpn\.org$ +(^|\.)tineye\.com$ +(^|\.)tintuc101\.com$ +(^|\.)tiny\.cc$ +(^|\.)tinychat\.com$ +(^|\.)tinypaste\.com$ +(^|\.)tipo\.gov\.tw$ +(^|\.)tistory\.com$ +(^|\.)tkcs-collins\.com$ +(^|\.)tl\.gd$ +(^|\.)tma\.co\.jp$ +(^|\.)tmagazine\.com$ +(^|\.)tmdfish\.com$ +(^|\.)tmi\.me$ +(^|\.)tmpp\.org$ +(^|\.)tn1\.shemalez\.com$ +(^|\.)tn2\.shemalez\.com$ +(^|\.)tn3\.shemalez\.com$ +(^|\.)tnaflix\.com$ +(^|\.)tngrnow\.com$ +(^|\.)tngrnow\.net$ +(^|\.)tnp\.org$ +(^|\.)to-porno\.com$ +(^|\.)togetter\.com$ +(^|\.)toh\.info$ +(^|\.)tokyo-247\.com$ +(^|\.)tokyo-hot\.com$ +(^|\.)tokyo-porn-tube\.com$ +(^|\.)tokyocn\.com$ +(^|\.)tongil\.or\.kr$ +(^|\.)tono-oka\.jp$ +(^|\.)tonyyan\.net$ +(^|\.)toodoc\.com$ +(^|\.)toonel\.net$ +(^|\.)top\.tv$ +(^|\.)top10vpn\.com$ +(^|\.)top81\.ws$ +(^|\.)topbtc\.com$ +(^|\.)topic\.youthwant\.com\.tw$ +(^|\.)topnews\.in$ +(^|\.)toppornsites\.com$ +(^|\.)topshareware\.com$ +(^|\.)topsy\.com$ +(^|\.)toptip\.ca$ +(^|\.)tor\.blingblingsquad\.net$ +(^|\.)tor\.cn\.uptodown\.com$ +(^|\.)tor\.updatestar\.com$ +(^|\.)tora\.to$ +(^|\.)torcn\.com$ +(^|\.)torguard\.net$ +(^|\.)torproject\.org$ +(^|\.)torrentprivacy\.com$ +(^|\.)torrentproject\.se$ +(^|\.)torrenty\.org$ +(^|\.)torrentz\.eu$ +(^|\.)torvpn\.com$ +(^|\.)tosh\.comedycentral\.com$ +(^|\.)totalvpn\.com$ +(^|\.)toutiaoabc\.com$ +(^|\.)toutyrater\.github\.io$ +(^|\.)towngain\.com$ +(^|\.)toypark\.in$ +(^|\.)toythieves\.com$ +(^|\.)toytractorshow\.com$ +(^|\.)tparents\.org$ +(^|\.)tpi\.org\.tw$ +(^|\.)tracfone\.com$ +(^|\.)traffichaus\.com$ +(^|\.)trans\.wenweipo\.com$ +(^|\.)transparency\.org$ +(^|\.)treemall\.com\.tw$ +(^|\.)trendsmap\.com$ +(^|\.)trialofccp\.org$ +(^|\.)trickip\.net$ +(^|\.)trickip\.org$ +(^|\.)trimondi\.de$ +(^|\.)trouw\.nl$ +(^|\.)trt\.net\.tr$ +(^|\.)trtc\.com\.tw$ +(^|\.)truebuddha-md\.org$ +(^|\.)trulyergonomic\.com$ +(^|\.)truth101\.co\.tv$ +(^|\.)truthontour\.org$ +(^|\.)truveo\.com$ +(^|\.)tryheart\.jp$ +(^|\.)tsctv\.net$ +(^|\.)tsdr\.uspto\.gov$ +(^|\.)tsemtulku\.com$ +(^|\.)tsquare\.tv$ +(^|\.)tsu\.org\.tw$ +(^|\.)tsunagarumon\.com$ +(^|\.)tt-rss\.org$ +(^|\.)tt1069\.com$ +(^|\.)tttan\.com$ +(^|\.)ttvnw\.net$ +(^|\.)tu8964\.com$ +(^|\.)tubaholic\.com$ +(^|\.)tube\.com$ +(^|\.)tube8\.com$ +(^|\.)tube911\.com$ +(^|\.)tubecup\.com$ +(^|\.)tubegals\.com$ +(^|\.)tubeislam\.com$ +(^|\.)tubepornclassic\.com$ +(^|\.)tubestack\.com$ +(^|\.)tubewolf\.com$ +(^|\.)tui\.orzdream\.com$ +(^|\.)tuibeitu\.net$ +(^|\.)tuidang\.net$ +(^|\.)tuidang\.org$ +(^|\.)tuidang\.se$ +(^|\.)tuitwit\.com$ +(^|\.)tumblr\.com$ +(^|\.)tumutanzi\.com$ +(^|\.)tumview\.com$ +(^|\.)tunein\.com$ +(^|\.)tunnelbear\.com$ +(^|\.)tunnelr\.com$ +(^|\.)tuo8\.blue$ +(^|\.)tuo8\.cc$ +(^|\.)tuo8\.club$ +(^|\.)tuo8\.fit$ +(^|\.)tuo8\.hk$ +(^|\.)tuo8\.in$ +(^|\.)tuo8\.ninja$ +(^|\.)tuo8\.org$ +(^|\.)tuo8\.pw$ +(^|\.)tuo8\.red$ +(^|\.)tuo8\.space$ +(^|\.)turansam\.org$ +(^|\.)turbobit\.net$ +(^|\.)turbohide\.com$ +(^|\.)turbotwitter\.com$ +(^|\.)turntable\.fm$ +(^|\.)tushycash\.com$ +(^|\.)tuvpn\.com$ +(^|\.)tuzaijidi\.com$ +(^|\.)tv\.com$ +(^|\.)tvants\.com$ +(^|\.)tvboxnow\.com$ +(^|\.)tvider\.com$ +(^|\.)tvmost\.com\.hk$ +(^|\.)tvplayvideos\.com$ +(^|\.)tvunetworks\.com$ +(^|\.)tw-blog\.com$ +(^|\.)tw-npo\.org$ +(^|\.)tw\.answers\.yahoo\.com$ +(^|\.)tw\.bid\.yahoo\.com$ +(^|\.)tw\.gigacircle\.com$ +(^|\.)tw\.hao123\.com$ +(^|\.)tw\.iqiyi\.com$ +(^|\.)tw\.jiepang\.com$ +(^|\.)tw\.knowledge\.yahoo\.com$ +(^|\.)tw\.mall\.yahoo\.com$ +(^|\.)tw\.mobi\.yahoo\.com$ +(^|\.)tw\.money\.yahoo\.com$ +(^|\.)tw\.myblog\.yahoo\.com$ +(^|\.)tw\.news\.yahoo\.com$ +(^|\.)tw\.streetvoice\.com$ +(^|\.)tw\.tomonews\.net$ +(^|\.)tw\.voa\.mobi$ +(^|\.)tw\.yahoo\.com$ +(^|\.)tw01\.org$ +(^|\.)twaitter\.com$ +(^|\.)twapperkeeper\.com$ +(^|\.)twaud\.io$ +(^|\.)twavi\.com$ +(^|\.)twbbs\.net\.tw$ +(^|\.)twbbs\.org$ +(^|\.)twbbs\.tw$ +(^|\.)twblogger\.com$ +(^|\.)tweepguide\.com$ +(^|\.)tweeplike\.me$ +(^|\.)tweepmag\.com$ +(^|\.)tweepml\.org$ +(^|\.)tweetbackup\.com$ +(^|\.)tweetboard\.com$ +(^|\.)tweetboner\.biz$ +(^|\.)tweetcs\.com$ +(^|\.)tweetdeck\.com$ +(^|\.)tweetedtimes\.com$ +(^|\.)tweetmylast\.fm$ +(^|\.)tweetphoto\.com$ +(^|\.)tweetrans\.com$ +(^|\.)tweetree\.com$ +(^|\.)tweets\.seraph\.me$ +(^|\.)tweettunnel\.com$ +(^|\.)tweetwally\.com$ +(^|\.)tweetymail\.com$ +(^|\.)tweez\.net$ +(^|\.)twelve\.today$ +(^|\.)twerkingbutt\.com$ +(^|\.)twftp\.org$ +(^|\.)twgreatdaily\.com$ +(^|\.)twibase\.com$ +(^|\.)twibble\.de$ +(^|\.)twibbon\.com$ +(^|\.)twibs\.com$ +(^|\.)twicountry\.org$ +(^|\.)twicsy\.com$ +(^|\.)twiends\.com$ +(^|\.)twifan\.com$ +(^|\.)twiffo\.com$ +(^|\.)twiggit\.org$ +(^|\.)twilightsex\.com$ +(^|\.)twilog\.org$ +(^|\.)twimbow\.com$ +(^|\.)twimg\.com$ +(^|\.)twindexx\.com$ +(^|\.)twip\.me$ +(^|\.)twipple\.jp$ +(^|\.)twishort\.com$ +(^|\.)twistar\.cc$ +(^|\.)twister\.net\.co$ +(^|\.)twisterio\.com$ +(^|\.)twisternow\.com$ +(^|\.)twistory\.net$ +(^|\.)twit2d\.com$ +(^|\.)twitbrowser\.net$ +(^|\.)twitcause\.com$ +(^|\.)twitch\.tv$ +(^|\.)twitchcdn\.net$ +(^|\.)twitgether\.com$ +(^|\.)twitgoo\.com$ +(^|\.)twitiq\.com$ +(^|\.)twitlonger\.com$ +(^|\.)twitmania\.com$ +(^|\.)twitoaster\.com$ +(^|\.)twitonmsn\.com$ +(^|\.)twitpic\.com$ +(^|\.)twitstat\.com$ +(^|\.)twittbot\.net$ +(^|\.)twitter\.com$ +(^|\.)twitter\.jp$ +(^|\.)twitter4j\.org$ +(^|\.)twittercounter\.com$ +(^|\.)twitterfeed\.com$ +(^|\.)twittergadget\.com$ +(^|\.)twitterkr\.com$ +(^|\.)twittermail\.com$ +(^|\.)twitterrific\.com$ +(^|\.)twittertim\.es$ +(^|\.)twitthat\.com$ +(^|\.)twitturk\.com$ +(^|\.)twitturly\.com$ +(^|\.)twitvid\.com$ +(^|\.)twitzap\.com$ +(^|\.)twiyia\.com$ +(^|\.)twnorth\.org\.tw$ +(^|\.)twskype\.com$ +(^|\.)twstar\.net$ +(^|\.)twt\.tl$ +(^|\.)twtkr\.com$ +(^|\.)twtr2src\.ogaoga\.org$ +(^|\.)twtrland\.com$ +(^|\.)twttr\.com$ +(^|\.)twurl\.nl$ +(^|\.)twyac\.org$ +(^|\.)txxx\.com$ +(^|\.)tycool\.com$ +(^|\.)typepad\.com$ +(^|\.)u9un\.com$ +(^|\.)ub0\.cc$ +(^|\.)ubddns\.org$ +(^|\.)uberproxy\.net$ +(^|\.)uc-japan\.org$ +(^|\.)ucdc1998\.org$ +(^|\.)uderzo\.it$ +(^|\.)udn\.com$ +(^|\.)udn\.com\.tw$ +(^|\.)udnbkk\.com$ +(^|\.)uforadio\.com\.tw$ +(^|\.)ufreevpn\.com$ +(^|\.)ug\.m\.wikipedia\.org$ +(^|\.)ugo\.com$ +(^|\.)uhdwallpapers\.org$ +(^|\.)uhrp\.org$ +(^|\.)uighur\.narod\.ru$ +(^|\.)uighur\.nl$ +(^|\.)uighurbiz\.net$ +(^|\.)ukcdp\.co\.uk$ +(^|\.)ukliferadio\.co\.uk$ +(^|\.)uku\.im$ +(^|\.)ulike\.net$ +(^|\.)ulop\.net$ +(^|\.)ultrareach$ +(^|\.)ultrasurf$ +(^|\.)ultravpn\.fr$ +(^|\.)ultraxs\.com$ +(^|\.)umich\.edu$ +(^|\.)unblock-us\.com$ +(^|\.)unblock\.cn\.com$ +(^|\.)unblockdmm\.com$ +(^|\.)unblocker\.yt$ +(^|\.)unblocksit\.es$ +(^|\.)uncyclomedia\.org$ +(^|\.)uncyclopedia\.hk$ +(^|\.)uncyclopedia\.tw$ +(^|\.)underwoodammo\.com$ +(^|\.)unholyknight\.com$ +(^|\.)uni\.cc$ +(^|\.)unification\.net$ +(^|\.)unification\.org\.tw$ +(^|\.)unirule\.cloud$ +(^|\.)unitedsocialpress\.com$ +(^|\.)unix100\.com$ +(^|\.)unknownspace\.org$ +(^|\.)unodedos\.com$ +(^|\.)unpo\.org$ +(^|\.)unseen\.is$ +(^|\.)untraceable\.us$ +(^|\.)uocn\.org$ +(^|\.)upcoming\.yahoo\.com$ +(^|\.)updates\.tdesktop\.com$ +(^|\.)upholdjustice\.org$ +(^|\.)upload4u\.info$ +(^|\.)uploaded\.net$ +(^|\.)uploaded\.to$ +(^|\.)uploadstation\.com$ +(^|\.)upmedia\.mg$ +(^|\.)upornia\.com$ +(^|\.)uproxy\.org$ +(^|\.)upwill\.org$ +(^|\.)ur7s\.com$ +(^|\.)uraban\.me$ +(^|\.)urbansurvival\.com$ +(^|\.)urchin\.com$ +(^|\.)urlborg\.com$ +(^|\.)urlparser\.com$ +(^|\.)us\.to$ +(^|\.)usacn\.com$ +(^|\.)usaip\.eu$ +(^|\.)userapi\.nytlog\.com$ +(^|\.)users\.skynet\.be$ +(^|\.)usfk\.mil$ +(^|\.)ushuarencity\.echainhost\.com$ +(^|\.)usinfo\.state\.gov$ +(^|\.)usma\.edu$ +(^|\.)usmc\.mil$ +(^|\.)usmgtcg\.ning\.com$ +(^|\.)usno\.navy\.mil$ +(^|\.)usocctn\.com$ +(^|\.)ustream\.tv$ +(^|\.)usunitednews\.com$ +(^|\.)usus\.cc$ +(^|\.)utopianpal\.com$ +(^|\.)uu-gg\.com$ +(^|\.)uukanshu\.com$ +(^|\.)uvwxyz\.xyz$ +(^|\.)uwants\.com$ +(^|\.)uwants\.net$ +(^|\.)uyghur-j\.org$ +(^|\.)uyghur\.co\.uk$ +(^|\.)uyghuramerican\.org$ +(^|\.)uyghurcanadiansociety\.org$ +(^|\.)uyghurcongress\.org$ +(^|\.)uyghurensemble\.co\.uk$ +(^|\.)uyghurpen\.org$ +(^|\.)uyghurpress\.com$ +(^|\.)uyghurstudies\.org$ +(^|\.)uygur\.fc2web\.com$ +(^|\.)uygur\.org$ +(^|\.)uymaarip\.com$ +(^|\.)v2ex\.com$ +(^|\.)v2ray\.com$ +(^|\.)van001\.com$ +(^|\.)van698\.com$ +(^|\.)vanemu\.cn$ +(^|\.)vanilla-jp\.com$ +(^|\.)vanpeople\.com$ +(^|\.)vansky\.com$ +(^|\.)vaticannews\.va$ +(^|\.)vatn\.org$ +(^|\.)vcf-online\.org$ +(^|\.)vcfbuilder\.org$ +(^|\.)vds\.rightster\.com$ +(^|\.)vegas\.williamhill\.com$ +(^|\.)vegasred\.com$ +(^|\.)velkaepocha\.sk$ +(^|\.)venbbs\.com$ +(^|\.)venchina\.com$ +(^|\.)venetianmacao\.com$ +(^|\.)ventureswell\.com$ +(^|\.)veoh\.com$ +(^|\.)vermonttibet\.org$ +(^|\.)versavpn\.com$ +(^|\.)verybs\.com$ +(^|\.)vevo\.com$ +(^|\.)vft\.com\.tw$ +(^|\.)viber\.com$ +(^|\.)vica\.info$ +(^|\.)victimsofcommunism\.org$ +(^|\.)vid\.me$ +(^|\.)vidble\.com$ +(^|\.)video\.aol\.ca$ +(^|\.)video\.aol\.co\.uk$ +(^|\.)video\.aol\.com$ +(^|\.)video\.ap\.org$ +(^|\.)video\.fdbox\.com$ +(^|\.)video\.foxbusiness\.com$ +(^|\.)video\.pbs\.org$ +(^|\.)video\.yahoo\.com$ +(^|\.)videobam\.com$ +(^|\.)videodetective\.com$ +(^|\.)videomega\.tv$ +(^|\.)videomo\.com$ +(^|\.)videopediaworld\.com$ +(^|\.)videopress\.com$ +(^|\.)vidinfo\.org$ +(^|\.)vietdaikynguyen\.com$ +(^|\.)vijayatemple\.org$ +(^|\.)vimeo\.com$ +(^|\.)vimperator\.org$ +(^|\.)vincnd\.com$ +(^|\.)vine\.co$ +(^|\.)vinniev\.com$ +(^|\.)vip-enterprise\.com$ +(^|\.)virtualrealporn\.com$ +(^|\.)visibletweets\.com$ +(^|\.)vital247\.org$ +(^|\.)viu\.com$ +(^|\.)viu\.tv$ +(^|\.)vivahentai4u\.net$ +(^|\.)vivatube\.com$ +(^|\.)vivthomas\.com$ +(^|\.)vizvaz\.com$ +(^|\.)vjav\.com$ +(^|\.)vjmedia\.com\.hk$ +(^|\.)vllcs\.org$ +(^|\.)vlog\.xuite\.net$ +(^|\.)vmixcore\.com$ +(^|\.)vmpsoft\.com$ +(^|\.)vn\.hao123\.com$ +(^|\.)vnet\.link$ +(^|\.)voa-11\.akacast\.akamaistream\.net$ +(^|\.)voacantonese\.com$ +(^|\.)voachinese\.com$ +(^|\.)voachineseblog\.com$ +(^|\.)voagd\.com$ +(^|\.)voanews\.com$ +(^|\.)voatibetan\.com$ +(^|\.)voatibetanenglish\.com$ +(^|\.)vocativ\.com$ +(^|\.)vocn\.tv$ +(^|\.)vod-abematv\.akamaized\.net$ +(^|\.)vod\.wwe\.com$ +(^|\.)vot\.org$ +(^|\.)vovo2000\.com$ +(^|\.)voxer\.com$ +(^|\.)voy\.com$ +(^|\.)vpn\.ac$ +(^|\.)vpn\.cjb\.net$ +(^|\.)vpn\.cmu\.edu$ +(^|\.)vpn\.sv\.cmu\.edu$ +(^|\.)vpn4all\.com$ +(^|\.)vpnaccount\.org$ +(^|\.)vpnaccounts\.com$ +(^|\.)vpnbook\.com$ +(^|\.)vpncomparison\.org$ +(^|\.)vpncoupons\.com$ +(^|\.)vpncup\.com$ +(^|\.)vpndada\.com$ +(^|\.)vpnfan\.com$ +(^|\.)vpnfire\.com$ +(^|\.)vpnfires\.biz$ +(^|\.)vpnforgame\.net$ +(^|\.)vpngate\.jp$ +(^|\.)vpngate\.net$ +(^|\.)vpngratis\.net$ +(^|\.)vpnhq\.com$ +(^|\.)vpninja\.net$ +(^|\.)vpnintouch\.com$ +(^|\.)vpnintouch\.net$ +(^|\.)vpnjack\.com$ +(^|\.)vpnmaster\.com$ +(^|\.)vpnmentor\.com$ +(^|\.)vpnpick\.com$ +(^|\.)vpnpop\.com$ +(^|\.)vpnpronet\.com$ +(^|\.)vpnreactor\.com$ +(^|\.)vpnreviewz\.com$ +(^|\.)vpnsecure\.me$ +(^|\.)vpnshazam\.com$ +(^|\.)vpnshieldapp\.com$ +(^|\.)vpnsp\.com$ +(^|\.)vpntraffic\.com$ +(^|\.)vpntunnel\.com$ +(^|\.)vpnuk\.info$ +(^|\.)vpnunlimitedapp\.com$ +(^|\.)vpnvip\.com$ +(^|\.)vpnworldwide\.com$ +(^|\.)vporn\.com$ +(^|\.)vpser\.net$ +(^|\.)vraiesagesse\.net$ +(^|\.)vrmtr\.com$ +(^|\.)vrsmash\.com$ +(^|\.)vtunnel\.com$ +(^|\.)vuku\.cc$ +(^|\.)vultryhw\.com$ +(^|\.)w\.idaiwan\.com$ +(^|\.)w3schools\.com$ +(^|\.)waffle1999\.com$ +(^|\.)wahas\.com$ +(^|\.)waigaobu\.com$ +(^|\.)waikeung\.org$ +(^|\.)wailaike\.net$ +(^|\.)waiwaier\.com$ +(^|\.)wallmama\.com$ +(^|\.)wallornot\.org$ +(^|\.)wallpapercasa\.com$ +(^|\.)wallproxy\.com$ +(^|\.)waltermartin\.com$ +(^|\.)waltermartin\.org$ +(^|\.)wanderinghorse\.net$ +(^|\.)wangafu\.net$ +(^|\.)wangjinbo\.org$ +(^|\.)wanglixiong\.com$ +(^|\.)wango\.org$ +(^|\.)wangruoshui\.net$ +(^|\.)want-daily\.com$ +(^|\.)wanz-factory\.com$ +(^|\.)wapedia\.mobi$ +(^|\.)warbler\.iconfactory\.net$ +(^|\.)waselpro\.com$ +(^|\.)washeng\.net$ +(^|\.)watch8x\.com$ +(^|\.)watchinese\.com$ +(^|\.)watchmygf\.net$ +(^|\.)wattpad\.com$ +(^|\.)wav\.tv$ +(^|\.)waveprotocol\.org$ +(^|\.)waymo\.com$ +(^|\.)wda\.gov\.tw$ +(^|\.)wdf5\.com$ +(^|\.)wearehairy\.com$ +(^|\.)wearn\.com$ +(^|\.)web\.dev$ +(^|\.)web2project\.net$ +(^|\.)webbang\.net$ +(^|\.)webevader\.org$ +(^|\.)webfreer\.com$ +(^|\.)webjb\.org$ +(^|\.)weblagu\.com$ +(^|\.)webmproject\.org$ +(^|\.)webrtc\.org$ +(^|\.)webrush\.net$ +(^|\.)webs-tv\.net$ +(^|\.)website\.informer\.com$ +(^|\.)websitepulse\.com$ +(^|\.)webwarper\.net$ +(^|\.)webworkerdaily\.com$ +(^|\.)weekmag\.info$ +(^|\.)wefightcensorship\.org$ +(^|\.)wefong\.com$ +(^|\.)wego\.here\.com$ +(^|\.)weiboleak\.com$ +(^|\.)weiboscope\.jmsc\.hku\.hk$ +(^|\.)weihuo\.org$ +(^|\.)weijingsheng\.org$ +(^|\.)weiming\.info$ +(^|\.)weiquanwang\.org$ +(^|\.)weisuo\.ws$ +(^|\.)welovecock\.com$ +(^|\.)wemigrate\.org$ +(^|\.)wengewang\.com$ +(^|\.)wengewang\.org$ +(^|\.)wenhui\.ch$ +(^|\.)wenxuecity\.com$ +(^|\.)wenyunchao\.com$ +(^|\.)wenzhao\.ca$ +(^|\.)westca\.com$ +(^|\.)westernshugdensociety\.org$ +(^|\.)westernwolves\.com$ +(^|\.)westkit\.net$ +(^|\.)westpoint\.edu$ +(^|\.)wetplace\.com$ +(^|\.)wetpussygames\.com$ +(^|\.)wexiaobo\.org$ +(^|\.)wezhiyong\.org$ +(^|\.)wezone\.net$ +(^|\.)wforum\.com$ +(^|\.)wha\.la$ +(^|\.)whatblocked\.com$ +(^|\.)whatbrowser\.org$ +(^|\.)whatsapp\.com$ +(^|\.)whatsapp\.net$ +(^|\.)whatsonweibo\.com$ +(^|\.)wheatseeds\.org$ +(^|\.)wheelockslatin\.com$ +(^|\.)whereiswerner\.com$ +(^|\.)wheretowatch\.com$ +(^|\.)whippedass\.com$ +(^|\.)whitebear\.freebearblog\.org$ +(^|\.)whodns\.xyz$ +(^|\.)whoer\.net$ +(^|\.)whotalking\.com$ +(^|\.)whylover\.com$ +(^|\.)whyx\.org$ +(^|\.)widevine\.com$ +(^|\.)wikaba\.com$ +(^|\.)wiki\.cnitter\.com$ +(^|\.)wiki\.esu\.im$ +(^|\.)wiki\.gamerp\.jp$ +(^|\.)wiki\.jqueryui\.com$ +(^|\.)wiki\.keso\.cn$ +(^|\.)wiki\.moegirl\.org$ +(^|\.)wiki\.oauth\.net$ +(^|\.)wiki\.phonegap\.com$ +(^|\.)wikileaks-forum\.com$ +(^|\.)wikileaks\.ch$ +(^|\.)wikileaks\.com$ +(^|\.)wikileaks\.de$ +(^|\.)wikileaks\.eu$ +(^|\.)wikileaks\.lu$ +(^|\.)wikileaks\.org$ +(^|\.)wikileaks\.pl$ +(^|\.)wikilivres\.info$ +(^|\.)wikimapia\.org$ +(^|\.)wikiwiki\.jp$ +(^|\.)wildammo\.com$ +(^|\.)williamhill\.com$ +(^|\.)willw\.net$ +(^|\.)windowsphoneme\.com$ +(^|\.)windscribe\.com$ +(^|\.)wingamestore\.com$ +(^|\.)wingy\.site$ +(^|\.)winning11\.com$ +(^|\.)winwhispers\.info$ +(^|\.)wire\.com$ +(^|\.)wiredbytes\.com$ +(^|\.)wiredpen\.com$ +(^|\.)wisdompubs\.org$ +(^|\.)wisevid\.com$ +(^|\.)withgoogle\.com$ +(^|\.)withyoutube\.com$ +(^|\.)witnessleeteaching\.com$ +(^|\.)witopia\.net$ +(^|\.)wizcrafts\.net$ +(^|\.)wjbk\.org$ +(^|\.)wlcnew\.jigsy\.com$ +(^|\.)wlx\.sowiki\.net$ +(^|\.)wn\.com$ +(^|\.)wnacg\.com$ +(^|\.)wnacg\.org$ +(^|\.)wo\.tc$ +(^|\.)wo3ttt\.wordpress\.com$ +(^|\.)woeser\.com$ +(^|\.)woesermiddle-way\.net$ +(^|\.)wokar\.org$ +(^|\.)wolfax\.com$ +(^|\.)woolyss\.com$ +(^|\.)woopie\.jp$ +(^|\.)woopie\.tv$ +(^|\.)wordpress\.com$ +(^|\.)workatruna\.com$ +(^|\.)workerdemo\.org\.hk$ +(^|\.)workerempowerment\.org$ +(^|\.)workersthebig\.net$ +(^|\.)worldcat\.org$ +(^|\.)worldjournal\.com$ +(^|\.)worldvpn\.net$ +(^|\.)wow-life\.net$ +(^|\.)wow\.com$ +(^|\.)wowgirls\.com$ +(^|\.)wowlegacy\.ml$ +(^|\.)wowporn\.com$ +(^|\.)wowrk\.com$ +(^|\.)woxinghuiguo\.com$ +(^|\.)woyaolian\.org$ +(^|\.)wozy\.in$ +(^|\.)wp\.com$ +(^|\.)wpoforum\.com$ +(^|\.)wqyd\.org$ +(^|\.)wrchina\.org$ +(^|\.)wretch\.cc$ +(^|\.)writer\.zoho\.com$ +(^|\.)wsgzao\.github\.io$ +(^|\.)wsj\.com$ +(^|\.)wsj\.net$ +(^|\.)wsjhk\.com$ +(^|\.)wtbn\.org$ +(^|\.)wtfpeople\.com$ +(^|\.)wuerkaixi\.com$ +(^|\.)wufafangwen\.com$ +(^|\.)wufi\.org\.tw$ +(^|\.)wuguoguang\.com$ +(^|\.)wujie\.net$ +(^|\.)wujieliulan\.com$ +(^|\.)wukangrui\.net$ +(^|\.)wuu\.wikipedia\.org$ +(^|\.)wuw\.red$ +(^|\.)wuyanblog\.com$ +(^|\.)wwitv\.com$ +(^|\.)www\.ajsands\.com$ +(^|\.)www\.americorps\.gov$ +(^|\.)www\.antd\.org$ +(^|\.)www\.aolnews\.com$ +(^|\.)www\.businessinsider\.com\.au$ +(^|\.)www\.citizenlab\.org$ +(^|\.)www\.cmoinc\.org$ +(^|\.)www\.cool18\.com$ +(^|\.)www\.dmm\.com$ +(^|\.)www\.dwheeler\.com$ +(^|\.)www\.eastturkistan\.net$ +(^|\.)www\.ftchinese\.com$ +(^|\.)www\.gmiddle\.com$ +(^|\.)www\.gmiddle\.net$ +(^|\.)www\.hustlercash\.com$ +(^|\.)www\.idlcoyote\.com$ +(^|\.)www\.imdb\.com$ +(^|\.)www\.kindleren\.com$ +(^|\.)www\.klip\.me$ +(^|\.)www\.lamenhu\.com$ +(^|\.)www\.lib\.virginia\.edu$ +(^|\.)www\.linksalpha\.com$ +(^|\.)www\.m-sport\.co\.uk$ +(^|\.)www\.metro\.taipei$ +(^|\.)www\.monlamit\.org$ +(^|\.)www\.moztw\.org$ +(^|\.)www\.nbc\.com$ +(^|\.)www\.orchidbbs\.com$ +(^|\.)www\.owind\.com$ +(^|\.)www\.oxid\.it$ +(^|\.)www\.powerpointninja\.com$ +(^|\.)www\.s4miniarchive\.com$ +(^|\.)www\.sciencemag\.org$ +(^|\.)www\.shadowsocks\.com$ +(^|\.)www\.shwchurch\.org$ +(^|\.)www\.skype\.com$ +(^|\.)www\.tablesgenerator\.com$ +(^|\.)www\.taiwanonline\.cc$ +(^|\.)www\.taup\.org\.tw$ +(^|\.)www\.thechinastory\.org$ +(^|\.)www\.wan-press\.org$ +(^|\.)www\.wangruowang\.org$ +(^|\.)www\.websnapr\.com$ +(^|\.)www\.zensur\.freerk\.com$ +(^|\.)www1\.american\.edu$ +(^|\.)www1\.biz$ +(^|\.)www2\.ohchr\.org$ +(^|\.)www2\.rocketbbs\.com$ +(^|\.)wwwhost\.biz$ +(^|\.)wzyboy\.im$ +(^|\.)x-art\.com$ +(^|\.)x-berry\.com$ +(^|\.)x-wall\.org$ +(^|\.)x\.company$ +(^|\.)x1949x\.com$ +(^|\.)x24hr\.com$ +(^|\.)x365x\.com$ +(^|\.)xa\.yimg\.com$ +(^|\.)xanga\.com$ +(^|\.)xbabe\.com$ +(^|\.)xbookcn\.com$ +(^|\.)xbtce\.com$ +(^|\.)xcafe\.in$ +(^|\.)xcity\.jp$ +(^|\.)xcritic\.com$ +(^|\.)xerotica\.com$ +(^|\.)xfinity\.com$ +(^|\.)xfm\.pp\.ru$ +(^|\.)xgmyd\.com$ +(^|\.)xhamster\.com$ +(^|\.)xianba\.net$ +(^|\.)xianchawang\.net$ +(^|\.)xianjian\.tw$ +(^|\.)xianqiao\.net$ +(^|\.)xiaobaiwu\.com$ +(^|\.)xiaochuncnjp\.com$ +(^|\.)xiaod\.in$ +(^|\.)xiaohexie\.com$ +(^|\.)xiaolan\.me$ +(^|\.)xiaoma\.org$ +(^|\.)xiezhua\.com$ +(^|\.)xihua\.es$ +(^|\.)xijie\.wordpress\.com$ +(^|\.)xing\.com$ +(^|\.)xinhuanet\.org$ +(^|\.)xinmiao\.com\.hk$ +(^|\.)xinqimeng\.over-blog\.com$ +(^|\.)xinsheng\.net$ +(^|\.)xinshijue\.com$ +(^|\.)xinyubbs\.net$ +(^|\.)xiongpian\.com$ +(^|\.)xiuren\.org$ +(^|\.)xizang-zhiye\.org$ +(^|\.)xjp\.cc$ +(^|\.)xjtravelguide\.com$ +(^|\.)xkiwi\.tk$ +(^|\.)xlfmtalk\.com$ +(^|\.)xlfmwz\.info$ +(^|\.)xm\.com$ +(^|\.)xml-training-guide\.com$ +(^|\.)xmovies\.com$ +(^|\.)xn--4gq171p\.com$ +(^|\.)xn--czq75pvv1aj5c\.org$ +(^|\.)xn--i2ru8q2qg\.com$ +(^|\.)xn--ngstr-lra8j\.com$ +(^|\.)xn--oiq\.cc$ +(^|\.)xn--p8j9a0d9c9a\.xn--q9jyb4c$ +(^|\.)xnxx\.com$ +(^|\.)xpdo\.net$ +(^|\.)xpud\.org$ +(^|\.)xrentdvd\.com$ +(^|\.)xskywalker\.com$ +(^|\.)xskywalker\.net$ +(^|\.)xtube\.com$ +(^|\.)xuchao\.net$ +(^|\.)xuchao\.org$ +(^|\.)xuehua\.us$ +(^|\.)xuzhiyong\.net$ +(^|\.)xvideo\.cc$ +(^|\.)xvideos\.com$ +(^|\.)xvideos\.es$ +(^|\.)xxbbx\.com$ +(^|\.)xxlmovies\.com$ +(^|\.)xxuz\.com$ +(^|\.)xxx\.com$ +(^|\.)xxx\.xxx$ +(^|\.)xxxfuckmom\.com$ +(^|\.)xxxx\.com\.au$ +(^|\.)xxxy\.biz$ +(^|\.)xxxy\.info$ +(^|\.)xxxymovies\.com$ +(^|\.)xys\.dxiong\.com$ +(^|\.)xys\.org$ +(^|\.)xysblogs\.org$ +(^|\.)xyy69\.com$ +(^|\.)xyy69\.info$ +(^|\.)yahoo\.com\.hk$ +(^|\.)yakbutterblues\.com$ +(^|\.)yam\.com$ +(^|\.)yam\.org\.tw$ +(^|\.)yanghengjun\.com$ +(^|\.)yangjianli\.com$ +(^|\.)yasni\.co\.uk$ +(^|\.)yayabay\.com$ +(^|\.)ydy\.com$ +(^|\.)yeahteentube\.com$ +(^|\.)yecl\.net$ +(^|\.)yeelou\.com$ +(^|\.)yeeyi\.com$ +(^|\.)yegle\.net$ +(^|\.)yes-news\.com$ +(^|\.)yes\.xxx$ +(^|\.)yes123\.com\.tw$ +(^|\.)yesasia\.com$ +(^|\.)yesasia\.com\.hk$ +(^|\.)yespornplease\.com$ +(^|\.)yeyeclub\.com$ +(^|\.)ygto\.com$ +(^|\.)yhcw\.net$ +(^|\.)yibada\.com$ +(^|\.)yibaochina\.com$ +(^|\.)yidio\.com$ +(^|\.)yilubbs\.com$ +(^|\.)yingsuoss\.com$ +(^|\.)yinlei\.org$ +(^|\.)yipub\.com$ +(^|\.)yizhihongxing\.com$ +(^|\.)yobit\.net$ +(^|\.)yobt\.com$ +(^|\.)yobt\.tv$ +(^|\.)yogichen\.org$ +(^|\.)yolasite\.com$ +(^|\.)yomiuri\.co\.jp$ +(^|\.)yong\.hu$ +(^|\.)yorkbbs\.ca$ +(^|\.)you-get\.org$ +(^|\.)youdontcare\.com$ +(^|\.)youjizz\.com$ +(^|\.)youmaker\.com$ +(^|\.)youngpornvideos\.com$ +(^|\.)youngspiration\.hk$ +(^|\.)youpai\.org$ +(^|\.)youporn\.com$ +(^|\.)youporngay\.com$ +(^|\.)your-freedom\.net$ +(^|\.)yourepeat\.com$ +(^|\.)yourlisten\.com$ +(^|\.)yourlust\.com$ +(^|\.)yourprivatevpn\.com$ +(^|\.)yourtrap\.com$ +(^|\.)yousendit\.com$ +(^|\.)youshun12\.com$ +(^|\.)youthnetradio\.org$ +(^|\.)youtu\.be$ +(^|\.)youtube-nocookie\.com$ +(^|\.)youtube\.com$ +(^|\.)youtubecn\.com$ +(^|\.)youtubeeducation\.com$ +(^|\.)youtubegaming\.com$ +(^|\.)youversion\.com$ +(^|\.)youwin\.com$ +(^|\.)youxu\.info$ +(^|\.)yt\.be$ +(^|\.)ytht\.net$ +(^|\.)ytimg\.com$ +(^|\.)ytn\.co\.kr$ +(^|\.)yuanming\.net$ +(^|\.)yuanzhengtang\.org$ +(^|\.)yulghun\.com$ +(^|\.)yunchao\.net$ +(^|\.)yuntipub\.com$ +(^|\.)yuvutu\.com$ +(^|\.)yvesgeleyn\.com$ +(^|\.)ywpw\.com$ +(^|\.)yx51\.net$ +(^|\.)yyii\.org$ +(^|\.)yzzk\.com$ +(^|\.)zacebook\.com$ +(^|\.)zalmos\.com$ +(^|\.)zannel\.com$ +(^|\.)zaobao\.com$ +(^|\.)zaobao\.com\.sg$ +(^|\.)zaozon\.com$ +(^|\.)zapto\.org$ +(^|\.)zattoo\.com$ +(^|\.)zb\.com$ +(^|\.)zdnet\.com\.tw$ +(^|\.)zello\.com$ +(^|\.)zengjinyan\.org$ +(^|\.)zenmate\.com$ +(^|\.)zenmate\.com\.ru$ +(^|\.)zeronet\.io$ +(^|\.)zeutch\.com$ +(^|\.)zfreet\.com$ +(^|\.)zgsddh\.com$ +(^|\.)zgzcjj\.net$ +(^|\.)zh-yue\.wikipedia\.org$ +(^|\.)zh\.bitterwinter\.org$ +(^|\.)zh\.ecdm\.wikia\.com$ +(^|\.)zh\.m\.wikipedia\.org$ +(^|\.)zh\.pokerstrategy\.com$ +(^|\.)zh\.pttpedia\.wikia\.com$ +(^|\.)zh\.uncyclopedia\.wikia\.com$ +(^|\.)zh\.wikinews\.org$ +(^|\.)zh\.wikipedia\.org$ +(^|\.)zh\.wikisource\.org$ +(^|\.)zhanbin\.net$ +(^|\.)zhangboli\.net$ +(^|\.)zhangtianliang\.com$ +(^|\.)zhanlve\.org$ +(^|\.)zhao\.1984\.city$ +(^|\.)zhao\.jinhai\.de$ +(^|\.)zhenghui\.org$ +(^|\.)zhengjian\.org$ +(^|\.)zhengwunet\.org$ +(^|\.)zhenlibu\.info$ +(^|\.)zhenlibu1984\.com$ +(^|\.)zhenxiang\.biz$ +(^|\.)zhinengluyou\.com$ +(^|\.)zhongguo\.ca$ +(^|\.)zhongguorenquan\.org$ +(^|\.)zhongguotese\.net$ +(^|\.)zhongmeng\.org$ +(^|\.)zhoushuguang\.com$ +(^|\.)zhreader\.com$ +(^|\.)zhuangbi\.me$ +(^|\.)zhuanxing\.cn$ +(^|\.)zhuatieba\.com$ +(^|\.)zhuichaguoji\.org$ +(^|\.)ziddu\.com$ +(^|\.)zillionk\.com$ +(^|\.)zim\.vn$ +(^|\.)zinio\.com$ +(^|\.)ziporn\.com$ +(^|\.)zippyshare\.com$ +(^|\.)zkaip\.com$ +(^|\.)zmw\.cn$ +(^|\.)zodgame\.us$ +(^|\.)zomobo\.net$ +(^|\.)zonaeuropa\.com$ +(^|\.)zonghexinwen\.com$ +(^|\.)zonghexinwen\.net$ +(^|\.)zoogvpn\.com$ +(^|\.)zootool\.com$ +(^|\.)zoozle\.net$ +(^|\.)zorrovpn\.com$ +(^|\.)zozotown\.com$ +(^|\.)zpn\.im$ +(^|\.)zspeeder\.me$ +(^|\.)zsrhao\.com$ +(^|\.)zuo\.la$ +(^|\.)zuobiao\.me$ +(^|\.)zuola\.com$ +(^|\.)zvereff\.com$ +(^|\.)zynaima\.com$ +(^|\.)zynamics\.com$ +(^|\.)zyns\.com$ +(^|\.)zyzc9\.com$ +(^|\.)zzcartoon\.com$ +(^|\.)zzcloud\.me$ +(^|\.)zzux\.com$ diff --git a/client/android/build.gradle b/client/android/build.gradle index 3796c145..55a71a7c 100644 --- a/client/android/build.gradle +++ b/client/android/build.gradle @@ -1,6 +1,8 @@ +apply plugin: 'com.github.ben-manes.versions' + buildscript { ext{ - kotlin_version = "1.5.0" + kotlin_version = "1.4.30-M1" // for libwg appcompatVersion = '1.1.0' annotationsVersion = '1.0.1' @@ -19,6 +21,8 @@ buildscript { dependencies { classpath 'com.android.tools.build:gradle:4.0.0' + classpath 'com.github.ben-manes:gradle-versions-plugin:0.21.0' + classpath 'com.vanniktech:gradle-maven-publish-plugin:0.8.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version" } @@ -34,24 +38,44 @@ apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlinx-serialization' +apply plugin: 'kotlin-kapt' dependencies { implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) implementation 'androidx.core:core-ktx:1.1.0' - implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.4.0-alpha02" + //implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.4.0-alpha02" implementation "androidx.security:security-crypto:1.1.0-alpha03" implementation "androidx.security:security-identity-credential:1.0.0-alpha02" implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.2" coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:1.0.10" //ss - implementation "androidx.preference:preference:1.1.0" - implementation "androidx.work:work-runtime-ktx:2.3.4" + implementation 'androidx.lifecycle:lifecycle-common-java8:2.4.0' + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.0" + //implementation "androidx.core:core-ktx:1.2.0" + implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" + implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.4.0" + implementation "androidx.lifecycle:lifecycle-livedata-core-ktx:2.4.0" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0" implementation "androidx.room:room-runtime:2.2.5" // runtime - implementation "dnsjava:dnsjava:2.1.9" + implementation "androidx.preference:preference:1.1.0" + implementation "androidx.work:work-runtime-ktx:2.3.4" + implementation "androidx.browser:browser:1.3.0-alpha01" + implementation "androidx.constraintlayout:constraintlayout:1.1.3" + implementation "com.google.android.material:material:1.2.0-alpha05" implementation "com.google.code.gson:gson:2.8.5" + implementation "dnsjava:dnsjava:2.1.9" implementation "org.connectbot.jsocks:jsocks:1.0.0" - annotationProcessor "androidx.room:room-compiler:2.3.0" + implementation "com.afollestad.material-dialogs:core:2.6.0" + implementation 'com.takisoft.preferencex:preferencex:1.1.0' + implementation 'com.android.support:multidex:1.0.0' + api 'org.connectbot.jsocks:jsocks:1.0.0' + annotationProcessor "androidx.room:room-compiler:2.2.5" + annotationProcessor "androidx.lifecycle:lifecycle-compiler:2.4.0" +} + +androidExtensions { + experimental = true } android { @@ -86,6 +110,7 @@ android { renderscript.srcDirs = ['src'] assets.srcDirs = ['assets'] jniLibs.srcDirs = ['libs'] + androidTest.assets.srcDirs += files("${qt5AndroidDir}/schemas".toString()) } } @@ -114,6 +139,10 @@ android { targetSdkVersion = 30 versionCode 8 // Change to a higher number versionName "2.0.8" // Change to a higher number + + javaCompileOptions.annotationProcessorOptions.arguments = [ + "room.schemaLocation": "${qt5AndroidDir}/schemas".toString() + ] } buildTypes { @@ -136,18 +165,6 @@ android { } } } - -// externalNativeBuild { -// cmake { -// path 'wireguard/CMakeLists.txt' -// } -// } - -// externalNativeBuild { -// cmake { -// path 'openvpn/src/main/cpp/CMakeLists.txt' -// } -// } } diff --git a/client/android/gradle.properties b/client/android/gradle.properties index c5a864cb..8ecc3720 100644 --- a/client/android/gradle.properties +++ b/client/android/gradle.properties @@ -3,7 +3,8 @@ # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx2048m +#org.gradle.jvmargs=-Xmx2048m +org.gradle.jvmargs=-Xmx1536m # Gradle caching allows reusing the build artifacts from a previous # build with the same inputs. However, over time, the cache size will @@ -21,3 +22,7 @@ androidBuildToolsVersion=30.0.2 androidCompileSdkVersion=30 org.gradle.caching=true org.gradle.parallel=true +android.enableJetifier=true +android.injected.testOnly=false +kapt.use.worker.api=false +kapt.incremental.apt=false diff --git a/client/android/lib/shadowsocks/arm64-v8a/libredsocks.so b/client/android/lib/shadowsocks/arm64-v8a/libredsocks.so new file mode 100644 index 00000000..0ad92678 Binary files /dev/null and b/client/android/lib/shadowsocks/arm64-v8a/libredsocks.so differ diff --git a/client/android/lib/shadowsocks/arm64-v8a/libss-local.so b/client/android/lib/shadowsocks/arm64-v8a/libss-local.so index f5d3ebf2..73d14c58 100644 Binary files a/client/android/lib/shadowsocks/arm64-v8a/libss-local.so and b/client/android/lib/shadowsocks/arm64-v8a/libss-local.so differ diff --git a/client/android/lib/shadowsocks/arm64-v8a/libtun2socks.so b/client/android/lib/shadowsocks/arm64-v8a/libtun2socks.so index 0572de13..36a37f5c 100644 Binary files a/client/android/lib/shadowsocks/arm64-v8a/libtun2socks.so and b/client/android/lib/shadowsocks/arm64-v8a/libtun2socks.so differ diff --git a/client/android/lib/shadowsocks/armeabi-v7a/libredsocks.so b/client/android/lib/shadowsocks/armeabi-v7a/libredsocks.so new file mode 100644 index 00000000..86a75fb6 Binary files /dev/null and b/client/android/lib/shadowsocks/armeabi-v7a/libredsocks.so differ diff --git a/client/android/lib/shadowsocks/armeabi-v7a/libss-local.so b/client/android/lib/shadowsocks/armeabi-v7a/libss-local.so index f2358370..4dc0a3e3 100644 Binary files a/client/android/lib/shadowsocks/armeabi-v7a/libss-local.so and b/client/android/lib/shadowsocks/armeabi-v7a/libss-local.so differ diff --git a/client/android/lib/shadowsocks/armeabi-v7a/libtun2socks.so b/client/android/lib/shadowsocks/armeabi-v7a/libtun2socks.so index e3408f85..cb8ad3b2 100644 Binary files a/client/android/lib/shadowsocks/armeabi-v7a/libtun2socks.so and b/client/android/lib/shadowsocks/armeabi-v7a/libtun2socks.so differ diff --git a/client/android/lib/shadowsocks/x86/libredsocks.so b/client/android/lib/shadowsocks/x86/libredsocks.so new file mode 100644 index 00000000..20007d0a Binary files /dev/null and b/client/android/lib/shadowsocks/x86/libredsocks.so differ diff --git a/client/android/lib/shadowsocks/x86/libss-local.so b/client/android/lib/shadowsocks/x86/libss-local.so new file mode 100644 index 00000000..cbde0c2c Binary files /dev/null and b/client/android/lib/shadowsocks/x86/libss-local.so differ diff --git a/client/android/lib/shadowsocks/x86/libtun2socks.so b/client/android/lib/shadowsocks/x86/libtun2socks.so new file mode 100644 index 00000000..cc7a7f72 Binary files /dev/null and b/client/android/lib/shadowsocks/x86/libtun2socks.so differ diff --git a/client/android/lib/shadowsocks/x86_64/libredsocks.so b/client/android/lib/shadowsocks/x86_64/libredsocks.so new file mode 100644 index 00000000..eaa55875 Binary files /dev/null and b/client/android/lib/shadowsocks/x86_64/libredsocks.so differ diff --git a/client/android/lib/shadowsocks/x86_64/libss-local.so b/client/android/lib/shadowsocks/x86_64/libss-local.so new file mode 100644 index 00000000..ceca3e7a Binary files /dev/null and b/client/android/lib/shadowsocks/x86_64/libss-local.so differ diff --git a/client/android/lib/shadowsocks/x86_64/libtun2socks.so b/client/android/lib/shadowsocks/x86_64/libtun2socks.so new file mode 100644 index 00000000..bd928f76 Binary files /dev/null and b/client/android/lib/shadowsocks/x86_64/libtun2socks.so differ diff --git a/client/android/res/raw/china_ip_list.txt b/client/android/res/raw/china_ip_list.txt new file mode 100644 index 00000000..3f995146 --- /dev/null +++ b/client/android/res/raw/china_ip_list.txt @@ -0,0 +1,5215 @@ +1.0.1.0/24 +1.0.2.0/23 +1.0.8.0/21 +1.0.32.0/19 +1.1.0.0/24 +1.1.2.0/23 +1.1.4.0/22 +1.1.8.0/21 +1.1.16.0/20 +1.1.32.0/19 +1.2.0.0/23 +1.2.2.0/24 +1.2.4.0/22 +1.2.8.0/21 +1.2.16.0/20 +1.2.32.0/19 +1.2.64.0/18 +1.3.0.0/16 +1.4.1.0/24 +1.4.2.0/23 +1.4.4.0/22 +1.4.8.0/21 +1.4.16.0/20 +1.4.32.0/19 +1.4.64.0/18 +1.8.0.0/16 +1.10.0.0/21 +1.10.8.0/23 +1.10.11.0/24 +1.10.12.0/22 +1.10.16.0/20 +1.10.32.0/19 +1.10.64.0/18 +1.12.0.0/14 +1.24.0.0/13 +1.45.0.0/16 +1.48.0.0/14 +1.56.0.0/13 +1.68.0.0/14 +1.80.0.0/12 +1.116.0.0/14 +1.180.0.0/14 +1.184.0.0/15 +1.188.0.0/14 +1.192.0.0/13 +1.202.0.0/15 +1.204.0.0/14 +8.128.0.0/10 +8.208.0.0/12 +14.0.0.0/21 +14.0.12.0/22 +14.1.0.0/22 +14.1.24.0/22 +14.1.96.0/22 +14.1.108.0/22 +14.16.0.0/12 +14.102.128.0/22 +14.102.156.0/22 +14.102.180.0/22 +14.103.0.0/16 +14.104.0.0/13 +14.112.0.0/12 +14.130.0.0/15 +14.134.0.0/15 +14.144.0.0/12 +14.192.56.0/21 +14.192.76.0/22 +14.196.0.0/15 +14.204.0.0/15 +14.208.0.0/12 +20.134.160.0/20 +20.139.160.0/20 +27.0.128.0/21 +27.0.160.0/21 +27.0.188.0/22 +27.0.204.0/22 +27.0.208.0/21 +27.8.0.0/13 +27.16.0.0/12 +27.34.232.0/21 +27.36.0.0/14 +27.40.0.0/13 +27.50.40.0/21 +27.50.128.0/17 +27.54.72.0/21 +27.54.152.0/21 +27.54.192.0/18 +27.98.208.0/20 +27.98.224.0/19 +27.99.128.0/17 +27.103.0.0/16 +27.106.128.0/18 +27.106.204.0/22 +27.109.32.0/19 +27.109.124.0/22 +27.112.0.0/18 +27.112.80.0/20 +27.112.112.0/21 +27.113.128.0/18 +27.115.0.0/17 +27.116.44.0/22 +27.121.72.0/21 +27.121.120.0/21 +27.123.232.0/22 +27.128.0.0/15 +27.131.220.0/22 +27.144.0.0/16 +27.148.0.0/14 +27.152.0.0/13 +27.184.0.0/13 +27.192.0.0/11 +27.224.0.0/14 +36.0.0.0/22 +36.0.8.0/21 +36.0.16.0/20 +36.0.32.0/19 +36.0.64.0/18 +36.0.128.0/17 +36.1.0.0/16 +36.4.0.0/14 +36.16.0.0/12 +36.32.0.0/14 +36.36.0.0/16 +36.37.0.0/19 +36.37.36.0/23 +36.37.39.0/24 +36.37.40.0/21 +36.37.48.0/20 +36.40.0.0/13 +36.48.0.0/15 +36.51.0.0/16 +36.56.0.0/13 +36.96.0.0/11 +36.128.0.0/10 +36.192.0.0/11 +36.248.0.0/14 +36.254.0.0/16 +36.255.116.0/22 +36.255.128.0/22 +36.255.164.0/22 +36.255.172.0/22 +36.255.176.0/22 +36.255.220.0/22 +39.0.0.0/24 +39.0.2.0/23 +39.0.4.0/22 +39.0.8.0/21 +39.0.16.0/20 +39.0.32.0/19 +39.0.64.0/18 +39.0.128.0/17 +39.64.0.0/11 +39.96.0.0/13 +39.104.0.0/14 +39.108.0.0/16 +39.109.120.0/23 +39.128.0.0/10 +40.0.176.0/20 +40.0.247.0/24 +40.0.248.0/22 +40.0.252.0/23 +40.0.255.0/24 +40.72.0.0/15 +40.125.128.0/17 +40.126.64.0/18 +40.198.10.0/24 +40.198.16.0/21 +40.198.24.0/23 +40.251.225.0/24 +40.251.227.0/24 +42.0.0.0/22 +42.0.8.0/21 +42.0.16.0/21 +42.0.24.0/22 +42.0.32.0/19 +42.0.128.0/17 +42.1.0.0/19 +42.1.32.0/20 +42.1.48.0/21 +42.1.56.0/22 +42.1.128.0/17 +42.4.0.0/14 +42.48.0.0/13 +42.56.0.0/14 +42.62.0.0/17 +42.62.128.0/19 +42.62.160.0/20 +42.62.180.0/22 +42.62.184.0/21 +42.63.0.0/16 +42.80.0.0/15 +42.83.64.0/20 +42.83.80.0/22 +42.83.88.0/21 +42.83.96.0/19 +42.83.128.0/17 +42.84.0.0/14 +42.88.0.0/13 +42.96.64.0/19 +42.96.96.0/21 +42.96.108.0/22 +42.96.112.0/20 +42.96.128.0/17 +42.97.0.0/16 +42.99.0.0/18 +42.99.64.0/19 +42.99.96.0/20 +42.99.112.0/22 +42.99.120.0/21 +42.100.0.0/14 +42.120.0.0/15 +42.122.0.0/16 +42.123.0.0/19 +42.123.36.0/22 +42.123.40.0/21 +42.123.48.0/20 +42.123.64.0/18 +42.123.128.0/17 +42.128.0.0/12 +42.156.0.0/19 +42.156.36.0/22 +42.156.40.0/21 +42.156.48.0/20 +42.156.64.0/18 +42.156.128.0/17 +42.157.0.0/16 +42.158.0.0/15 +42.160.0.0/12 +42.176.0.0/13 +42.184.0.0/15 +42.186.0.0/16 +42.187.0.0/18 +42.187.64.0/19 +42.187.96.0/20 +42.187.112.0/21 +42.187.120.0/22 +42.187.128.0/17 +42.192.0.0/13 +42.201.0.0/17 +42.202.0.0/15 +42.204.0.0/14 +42.208.0.0/12 +42.224.0.0/12 +42.240.0.0/16 +42.242.0.0/15 +42.244.0.0/14 +42.248.0.0/13 +43.224.12.0/22 +43.224.24.0/22 +43.224.44.0/22 +43.224.52.0/22 +43.224.56.0/22 +43.224.64.0/21 +43.224.72.0/22 +43.224.80.0/22 +43.224.100.0/22 +43.224.144.0/22 +43.224.160.0/22 +43.224.176.0/22 +43.224.184.0/22 +43.224.200.0/21 +43.224.208.0/21 +43.224.216.0/22 +43.224.224.0/22 +43.224.240.0/22 +43.225.76.0/22 +43.225.84.0/22 +43.225.120.0/21 +43.225.140.0/22 +43.225.172.0/22 +43.225.180.0/22 +43.225.208.0/22 +43.225.216.0/21 +43.225.224.0/20 +43.225.240.0/21 +43.225.252.0/22 +43.226.32.0/19 +43.226.64.0/19 +43.226.96.0/20 +43.226.112.0/21 +43.226.120.0/22 +43.226.128.0/18 +43.226.192.0/20 +43.226.208.0/21 +43.226.236.0/22 +43.226.240.0/20 +43.227.0.0/21 +43.227.8.0/22 +43.227.32.0/19 +43.227.64.0/19 +43.227.96.0/21 +43.227.104.0/22 +43.227.136.0/21 +43.227.144.0/22 +43.227.152.0/21 +43.227.160.0/20 +43.227.176.0/21 +43.227.188.0/22 +43.227.192.0/19 +43.227.232.0/22 +43.227.248.0/21 +43.228.0.0/18 +43.228.64.0/21 +43.228.76.0/22 +43.228.100.0/22 +43.228.116.0/22 +43.228.120.0/22 +43.228.132.0/22 +43.228.136.0/22 +43.228.148.0/22 +43.228.152.0/22 +43.228.188.0/22 +43.229.16.0/22 +43.229.40.0/22 +43.229.48.0/22 +43.229.56.0/22 +43.229.96.0/22 +43.229.120.0/22 +43.229.136.0/21 +43.229.144.0/22 +43.229.168.0/21 +43.229.176.0/20 +43.229.192.0/21 +43.229.216.0/21 +43.229.232.0/21 +43.230.20.0/22 +43.230.32.0/22 +43.230.68.0/22 +43.230.72.0/22 +43.230.84.0/22 +43.230.124.0/22 +43.230.136.0/22 +43.230.168.0/22 +43.230.220.0/22 +43.230.224.0/19 +43.231.12.0/22 +43.231.32.0/20 +43.231.80.0/20 +43.231.96.0/20 +43.231.136.0/21 +43.231.144.0/20 +43.231.160.0/20 +43.231.176.0/21 +43.236.0.0/15 +43.238.0.0/16 +43.239.0.0/19 +43.239.32.0/20 +43.239.48.0/22 +43.239.116.0/22 +43.239.120.0/22 +43.239.172.0/22 +43.239.176.0/22 +43.240.0.0/22 +43.240.48.0/22 +43.240.56.0/21 +43.240.68.0/22 +43.240.72.0/21 +43.240.84.0/22 +43.240.124.0/22 +43.240.128.0/21 +43.240.136.0/22 +43.240.156.0/22 +43.240.160.0/19 +43.240.192.0/19 +43.240.236.0/22 +43.240.240.0/20 +43.241.0.0/20 +43.241.16.0/21 +43.241.48.0/22 +43.241.76.0/22 +43.241.80.0/20 +43.241.112.0/22 +43.241.168.0/21 +43.241.176.0/21 +43.241.184.0/22 +43.241.196.0/22 +43.241.208.0/20 +43.241.224.0/20 +43.241.240.0/22 +43.241.248.0/21 +43.242.8.0/21 +43.242.16.0/20 +43.242.44.0/22 +43.242.48.0/20 +43.242.64.0/22 +43.242.72.0/21 +43.242.80.0/20 +43.242.96.0/22 +43.242.144.0/20 +43.242.160.0/21 +43.242.168.0/22 +43.242.180.0/22 +43.242.188.0/22 +43.242.192.0/21 +43.242.204.0/22 +43.242.216.0/21 +43.242.252.0/22 +43.243.4.0/22 +43.243.8.0/21 +43.243.16.0/22 +43.243.24.0/22 +43.243.88.0/22 +43.243.128.0/22 +43.243.136.0/22 +43.243.144.0/21 +43.243.156.0/22 +43.243.168.0/22 +43.243.180.0/22 +43.243.188.0/22 +43.243.228.0/22 +43.243.232.0/22 +43.243.244.0/22 +43.246.0.0/18 +43.246.64.0/19 +43.246.96.0/22 +43.246.112.0/22 +43.246.212.0/22 +43.246.228.0/22 +43.247.4.0/22 +43.247.8.0/22 +43.247.44.0/22 +43.247.48.0/22 +43.247.68.0/22 +43.247.76.0/22 +43.247.84.0/22 +43.247.88.0/21 +43.247.96.0/21 +43.247.108.0/22 +43.247.112.0/22 +43.247.148.0/22 +43.247.152.0/22 +43.247.176.0/20 +43.247.196.0/22 +43.247.200.0/21 +43.247.208.0/20 +43.247.224.0/19 +43.248.0.0/21 +43.248.20.0/22 +43.248.28.0/22 +43.248.48.0/22 +43.248.76.0/22 +43.248.80.0/20 +43.248.96.0/19 +43.248.128.0/20 +43.248.144.0/21 +43.248.176.0/20 +43.248.192.0/20 +43.248.208.0/22 +43.248.228.0/22 +43.248.232.0/22 +43.248.244.0/22 +43.249.0.0/21 +43.249.8.0/22 +43.249.24.0/22 +43.249.120.0/22 +43.249.132.0/22 +43.249.136.0/22 +43.249.144.0/20 +43.249.160.0/21 +43.249.168.0/22 +43.249.192.0/22 +43.249.236.0/22 +43.250.4.0/22 +43.250.12.0/22 +43.250.16.0/21 +43.250.28.0/22 +43.250.32.0/21 +43.250.72.0/22 +43.250.96.0/20 +43.250.112.0/21 +43.250.128.0/22 +43.250.144.0/21 +43.250.160.0/22 +43.250.168.0/21 +43.250.176.0/22 +43.250.200.0/22 +43.250.212.0/22 +43.250.216.0/21 +43.250.236.0/22 +43.250.244.0/22 +43.251.4.0/22 +43.251.8.0/21 +43.251.36.0/22 +43.251.100.0/22 +43.251.116.0/22 +43.251.192.0/22 +43.251.232.0/21 +43.251.244.0/22 +43.252.40.0/22 +43.252.48.0/22 +43.252.56.0/22 +43.252.224.0/22 +43.254.0.0/21 +43.254.8.0/22 +43.254.24.0/22 +43.254.36.0/22 +43.254.44.0/22 +43.254.52.0/22 +43.254.64.0/22 +43.254.72.0/22 +43.254.84.0/22 +43.254.88.0/21 +43.254.100.0/22 +43.254.104.0/22 +43.254.112.0/21 +43.254.128.0/22 +43.254.136.0/21 +43.254.144.0/20 +43.254.168.0/21 +43.254.180.0/22 +43.254.184.0/21 +43.254.192.0/21 +43.254.200.0/22 +43.254.208.0/22 +43.254.220.0/22 +43.254.224.0/20 +43.254.240.0/22 +43.254.248.0/21 +43.255.0.0/21 +43.255.8.0/22 +43.255.16.0/22 +43.255.48.0/22 +43.255.64.0/20 +43.255.84.0/22 +43.255.96.0/22 +43.255.108.0/22 +43.255.144.0/22 +43.255.168.0/22 +43.255.176.0/22 +43.255.184.0/22 +43.255.192.0/22 +43.255.200.0/21 +43.255.208.0/21 +43.255.224.0/21 +43.255.232.0/22 +43.255.244.0/22 +45.40.192.0/18 +45.65.16.0/20 +45.112.132.0/22 +45.112.188.0/22 +45.112.208.0/20 +45.112.228.0/22 +45.112.232.0/21 +45.113.12.0/22 +45.113.16.0/20 +45.113.40.0/22 +45.113.52.0/22 +45.113.56.0/22 +45.113.72.0/22 +45.113.144.0/21 +45.113.168.0/22 +45.113.176.0/22 +45.113.184.0/22 +45.113.200.0/21 +45.113.208.0/20 +45.113.228.0/22 +45.113.240.0/22 +45.113.252.0/22 +45.114.0.0/22 +45.114.12.0/22 +45.114.32.0/22 +45.114.40.0/22 +45.114.52.0/22 +45.114.96.0/22 +45.114.104.0/21 +45.114.124.0/22 +45.114.136.0/22 +45.114.196.0/22 +45.114.200.0/22 +45.114.228.0/22 +45.114.236.0/22 +45.114.252.0/22 +45.115.44.0/22 +45.115.100.0/22 +45.115.120.0/22 +45.115.132.0/22 +45.115.144.0/22 +45.115.156.0/22 +45.115.164.0/22 +45.115.200.0/22 +45.115.212.0/22 +45.115.216.0/22 +45.115.228.0/22 +45.115.236.0/22 +45.115.244.0/22 +45.115.248.0/22 +45.116.12.0/22 +45.116.16.0/21 +45.116.24.0/22 +45.116.32.0/21 +45.116.52.0/22 +45.116.96.0/21 +45.116.140.0/22 +45.116.152.0/22 +45.116.208.0/22 +45.117.8.0/22 +45.117.20.0/22 +45.117.68.0/22 +45.117.124.0/22 +45.117.252.0/22 +45.119.52.0/22 +45.119.60.0/22 +45.119.64.0/21 +45.119.72.0/22 +45.119.104.0/22 +45.119.116.0/22 +45.119.232.0/22 +45.120.100.0/22 +45.120.140.0/22 +45.120.164.0/22 +45.120.220.0/22 +45.120.240.0/22 +45.121.20.0/22 +45.121.52.0/22 +45.121.64.0/21 +45.121.72.0/22 +45.121.92.0/22 +45.121.96.0/22 +45.121.104.0/22 +45.121.172.0/22 +45.121.176.0/22 +45.121.212.0/22 +45.121.240.0/20 +45.122.0.0/19 +45.122.32.0/21 +45.122.40.0/22 +45.122.60.0/22 +45.122.64.0/19 +45.122.96.0/20 +45.122.112.0/21 +45.122.160.0/19 +45.122.192.0/20 +45.122.208.0/21 +45.122.216.0/22 +45.123.28.0/22 +45.123.32.0/21 +45.123.44.0/22 +45.123.48.0/20 +45.123.64.0/20 +45.123.80.0/21 +45.123.88.0/22 +45.123.120.0/22 +45.123.128.0/21 +45.123.136.0/22 +45.123.148.0/22 +45.123.152.0/21 +45.123.164.0/22 +45.123.168.0/21 +45.123.176.0/21 +45.123.184.0/22 +45.123.204.0/22 +45.123.212.0/22 +45.123.224.0/19 +45.124.0.0/22 +45.124.20.0/22 +45.124.28.0/22 +45.124.32.0/21 +45.124.44.0/22 +45.124.68.0/22 +45.124.76.0/22 +45.124.80.0/22 +45.124.100.0/22 +45.124.124.0/22 +45.124.172.0/22 +45.124.176.0/22 +45.124.208.0/22 +45.124.248.0/21 +45.125.12.0/22 +45.125.16.0/22 +45.125.24.0/21 +45.125.32.0/22 +45.125.44.0/22 +45.125.52.0/22 +45.125.56.0/22 +45.125.76.0/22 +45.125.80.0/20 +45.125.96.0/21 +45.125.104.0/22 +45.125.136.0/22 +45.126.48.0/21 +45.126.100.0/22 +45.126.108.0/22 +45.126.112.0/21 +45.126.120.0/22 +45.126.212.0/22 +45.126.220.0/22 +45.127.8.0/21 +45.127.96.0/22 +45.127.116.0/22 +45.127.124.0/22 +45.127.128.0/22 +45.127.144.0/21 +45.127.156.0/22 +45.127.216.0/22 +45.248.8.0/22 +45.248.80.0/21 +45.248.88.0/22 +45.248.96.0/20 +45.248.128.0/21 +45.248.204.0/22 +45.248.208.0/20 +45.248.224.0/19 +45.249.0.0/21 +45.249.12.0/22 +45.249.16.0/20 +45.249.32.0/21 +45.249.92.0/22 +45.249.112.0/22 +45.249.180.0/22 +45.249.188.0/22 +45.249.192.0/20 +45.249.208.0/21 +45.250.12.0/22 +45.250.16.0/22 +45.250.28.0/22 +45.250.32.0/21 +45.250.40.0/22 +45.250.76.0/22 +45.250.80.0/20 +45.250.96.0/22 +45.250.104.0/21 +45.250.112.0/20 +45.250.128.0/20 +45.250.144.0/21 +45.250.152.0/22 +45.250.164.0/22 +45.250.180.0/22 +45.250.184.0/21 +45.250.192.0/22 +45.251.0.0/22 +45.251.8.0/22 +45.251.16.0/21 +45.251.52.0/22 +45.251.84.0/22 +45.251.88.0/21 +45.251.96.0/21 +45.251.120.0/21 +45.251.136.0/21 +45.251.144.0/20 +45.251.160.0/19 +45.251.192.0/19 +45.251.224.0/22 +45.252.0.0/19 +45.252.32.0/20 +45.252.48.0/22 +45.252.60.0/22 +45.252.84.0/22 +45.252.88.0/21 +45.252.96.0/19 +45.252.128.0/19 +45.252.160.0/20 +45.252.176.0/22 +45.252.192.0/19 +45.252.224.0/21 +45.252.232.0/22 +45.253.0.0/18 +45.253.64.0/20 +45.253.80.0/21 +45.253.92.0/22 +45.253.96.0/20 +45.253.112.0/21 +45.253.120.0/22 +45.253.130.0/23 +45.253.132.0/22 +45.253.136.0/21 +45.253.144.0/20 +45.253.160.0/19 +45.253.192.0/18 +45.254.0.0/19 +45.254.40.0/22 +45.254.48.0/20 +45.254.64.0/18 +45.254.128.0/18 +45.254.192.0/19 +45.254.224.0/21 +45.254.236.0/22 +45.254.240.0/22 +45.254.248.0/22 +45.255.0.0/17 +45.255.132.0/22 +45.255.136.0/21 +45.255.144.0/20 +45.255.160.0/19 +45.255.192.0/19 +45.255.224.0/20 +45.255.240.0/21 +45.255.248.0/22 +46.61.179.170/31 +46.248.24.0/23 +47.92.0.0/14 +47.96.0.0/11 +49.4.0.0/14 +49.51.0.0/16 +49.52.0.0/14 +49.64.0.0/11 +49.112.0.0/13 +49.120.0.0/14 +49.128.0.0/24 +49.128.2.0/23 +49.128.4.0/22 +49.140.0.0/15 +49.152.0.0/14 +49.208.0.0/14 +49.220.0.0/14 +49.232.0.0/14 +49.239.0.0/18 +49.239.192.0/18 +49.246.224.0/19 +52.80.0.0/14 +52.94.249.0/27 +52.95.216.104/30 +52.130.0.0/15 +54.222.0.0/15 +54.231.208.0/20 +54.240.224.0/24 +57.92.96.0/20 +58.14.0.0/15 +58.16.0.0/13 +58.24.0.0/15 +58.30.0.0/15 +58.32.0.0/11 +58.65.232.0/21 +58.66.0.0/15 +58.68.128.0/17 +58.82.0.0/17 +58.83.0.0/16 +58.87.64.0/18 +58.99.128.0/17 +58.100.0.0/15 +58.116.0.0/14 +58.128.0.0/13 +58.144.0.0/16 +58.154.0.0/15 +58.192.0.0/11 +58.240.0.0/12 +59.32.0.0/11 +59.64.0.0/12 +59.80.0.0/14 +59.107.0.0/16 +59.108.0.0/14 +59.151.0.0/17 +59.152.16.0/20 +59.152.32.0/21 +59.152.64.0/20 +59.152.112.0/21 +59.153.4.0/22 +59.153.32.0/22 +59.153.60.0/22 +59.153.64.0/21 +59.153.72.0/22 +59.153.92.0/22 +59.153.116.0/22 +59.153.136.0/22 +59.153.152.0/21 +59.153.164.0/22 +59.153.168.0/21 +59.153.176.0/20 +59.153.192.0/22 +59.155.0.0/16 +59.172.0.0/14 +59.191.0.0/17 +59.191.240.0/20 +59.192.0.0/10 +60.0.0.0/11 +60.55.0.0/16 +60.63.0.0/16 +60.160.0.0/11 +60.194.0.0/15 +60.200.0.0/13 +60.208.0.0/12 +60.232.0.0/15 +60.235.0.0/16 +60.245.128.0/17 +60.247.0.0/16 +60.252.0.0/16 +60.253.128.0/17 +60.255.0.0/16 +61.4.80.0/20 +61.4.176.0/20 +61.8.160.0/20 +61.14.4.0/22 +61.14.212.0/22 +61.14.216.0/21 +61.14.240.0/21 +61.28.0.0/17 +61.29.128.0/17 +61.45.128.0/18 +61.45.224.0/20 +61.47.128.0/18 +61.48.0.0/13 +61.87.192.0/18 +61.128.0.0/10 +61.213.145.106/32 +61.232.0.0/14 +61.236.0.0/15 +61.240.0.0/14 +62.234.0.0/16 +64.85.27.0/24 +68.79.0.0/18 +69.230.192.0/18 +69.231.128.0/18 +69.234.192.0/18 +69.235.128.0/18 +71.131.192.0/18 +71.132.0.0/18 +71.136.64.0/18 +71.137.0.0/18 +72.163.248.0/22 +81.68.0.0/14 +82.156.0.0/15 +87.254.207.0/24 +93.183.14.0/24 +93.183.18.0/24 +94.191.0.0/17 +101.0.0.0/22 +101.1.0.0/22 +101.2.172.0/22 +101.4.0.0/14 +101.16.0.0/12 +101.32.0.0/12 +101.48.0.0/15 +101.50.8.0/21 +101.50.56.0/22 +101.52.0.0/16 +101.53.100.0/22 +101.54.0.0/16 +101.55.224.0/21 +101.64.0.0/13 +101.72.0.0/14 +101.76.0.0/15 +101.78.0.0/22 +101.78.32.0/19 +101.80.0.0/12 +101.96.0.0/21 +101.96.8.0/22 +101.96.16.0/20 +101.96.128.0/17 +101.99.96.0/19 +101.101.64.0/19 +101.101.100.0/24 +101.101.102.0/23 +101.101.104.0/21 +101.101.112.0/20 +101.102.64.0/19 +101.102.100.0/23 +101.102.102.0/24 +101.102.104.0/21 +101.102.112.0/20 +101.104.0.0/14 +101.110.64.0/19 +101.110.96.0/20 +101.110.116.0/22 +101.110.120.0/21 +101.120.0.0/14 +101.124.0.0/15 +101.126.0.0/16 +101.128.0.0/22 +101.128.8.0/21 +101.128.16.0/20 +101.128.32.0/19 +101.129.0.0/16 +101.130.0.0/15 +101.132.0.0/14 +101.144.0.0/12 +101.192.0.0/13 +101.200.0.0/15 +101.203.128.0/19 +101.203.160.0/21 +101.203.172.0/22 +101.203.176.0/20 +101.204.0.0/14 +101.224.0.0/13 +101.232.0.0/15 +101.234.64.0/21 +101.234.76.0/22 +101.234.80.0/20 +101.234.96.0/19 +101.236.0.0/14 +101.240.0.0/13 +101.248.0.0/15 +101.251.0.0/22 +101.251.8.0/21 +101.251.16.0/20 +101.251.32.0/19 +101.251.64.0/18 +101.251.128.0/17 +101.252.0.0/15 +101.254.0.0/16 +103.1.8.0/22 +103.1.20.0/22 +103.1.24.0/22 +103.1.72.0/22 +103.1.88.0/22 +103.1.168.0/22 +103.2.108.0/22 +103.2.156.0/22 +103.2.164.0/22 +103.2.200.0/21 +103.2.208.0/21 +103.3.84.0/22 +103.3.88.0/21 +103.3.96.0/19 +103.3.128.0/20 +103.3.148.0/22 +103.3.152.0/21 +103.4.56.0/22 +103.4.168.0/22 +103.4.184.0/22 +103.4.224.0/22 +103.5.36.0/22 +103.5.52.0/22 +103.5.56.0/22 +103.5.152.0/22 +103.5.168.0/22 +103.5.192.0/22 +103.5.252.0/22 +103.6.76.0/22 +103.6.108.0/22 +103.6.120.0/22 +103.6.220.0/22 +103.6.228.0/22 +103.7.4.0/22 +103.7.28.0/22 +103.7.140.0/22 +103.7.212.0/22 +103.7.216.0/21 +103.8.0.0/21 +103.8.8.0/22 +103.8.32.0/22 +103.8.52.0/22 +103.8.68.0/22 +103.8.108.0/22 +103.8.156.0/22 +103.8.200.0/21 +103.8.220.0/22 +103.9.8.0/22 +103.9.24.0/22 +103.9.108.0/22 +103.9.152.0/22 +103.9.192.0/22 +103.9.248.0/21 +103.10.0.0/22 +103.10.16.0/22 +103.10.84.0/22 +103.10.111.0/24 +103.10.140.0/22 +103.11.16.0/22 +103.11.168.0/22 +103.11.180.0/22 +103.12.32.0/22 +103.12.68.0/22 +103.12.92.0/22 +103.12.136.0/22 +103.12.184.0/22 +103.12.232.0/22 +103.13.12.0/22 +103.13.72.0/23 +103.13.124.0/22 +103.13.144.0/22 +103.13.196.0/22 +103.13.220.0/22 +103.13.244.0/22 +103.14.32.0/22 +103.14.84.0/22 +103.14.100.0/22 +103.14.132.0/22 +103.14.136.0/22 +103.14.156.0/22 +103.14.240.0/22 +103.15.4.0/22 +103.15.8.0/22 +103.15.16.0/22 +103.15.96.0/22 +103.15.200.0/22 +103.16.52.0/22 +103.16.80.0/21 +103.16.88.0/22 +103.16.108.0/22 +103.16.124.0/22 +103.17.40.0/22 +103.17.64.0/22 +103.17.120.0/22 +103.17.136.0/22 +103.17.160.0/22 +103.17.204.0/22 +103.17.228.0/22 +103.18.192.0/22 +103.18.208.0/21 +103.18.224.0/22 +103.19.0.0/22 +103.19.12.0/22 +103.19.40.0/21 +103.19.64.0/21 +103.19.72.0/22 +103.19.232.0/22 +103.20.12.0/22 +103.20.32.0/22 +103.20.44.0/22 +103.20.68.0/22 +103.20.112.0/22 +103.20.128.0/22 +103.20.160.0/22 +103.20.248.0/22 +103.21.112.0/21 +103.21.136.0/21 +103.21.176.0/22 +103.21.208.0/22 +103.21.240.0/22 +103.22.0.0/18 +103.22.64.0/19 +103.22.100.0/22 +103.22.104.0/21 +103.22.112.0/20 +103.22.188.0/22 +103.22.228.0/22 +103.22.252.0/22 +103.23.8.0/22 +103.23.56.0/22 +103.23.160.0/21 +103.23.176.0/22 +103.23.228.0/22 +103.24.24.0/22 +103.24.116.0/22 +103.24.128.0/22 +103.24.144.0/22 +103.24.176.0/22 +103.24.184.0/22 +103.24.220.0/22 +103.24.228.0/22 +103.24.248.0/21 +103.25.8.0/23 +103.25.20.0/22 +103.25.24.0/21 +103.25.32.0/21 +103.25.40.0/22 +103.25.48.0/22 +103.25.64.0/21 +103.25.148.0/22 +103.25.156.0/22 +103.25.216.0/22 +103.26.0.0/22 +103.26.64.0/22 +103.26.76.0/22 +103.26.116.0/22 +103.26.132.0/22 +103.26.156.0/22 +103.26.160.0/22 +103.26.228.0/22 +103.26.240.0/22 +103.27.4.0/22 +103.27.12.0/22 +103.27.24.0/22 +103.27.56.0/22 +103.27.96.0/22 +103.27.184.0/22 +103.27.208.0/21 +103.27.240.0/22 +103.28.4.0/22 +103.28.8.0/22 +103.28.184.0/22 +103.28.204.0/22 +103.28.212.0/22 +103.29.16.0/22 +103.29.128.0/21 +103.29.136.0/22 +103.30.20.0/22 +103.30.96.0/22 +103.30.148.0/22 +103.30.200.0/22 +103.30.228.0/22 +103.30.234.0/24 +103.30.236.0/22 +103.31.0.0/22 +103.31.48.0/20 +103.31.64.0/21 +103.31.72.0/24 +103.31.148.0/22 +103.31.160.0/22 +103.31.168.0/22 +103.31.200.0/22 +103.31.236.0/22 +103.32.0.0/15 +103.34.0.0/16 +103.35.0.0/19 +103.35.32.0/20 +103.35.48.0/22 +103.35.104.0/22 +103.35.116.0/22 +103.35.180.0/22 +103.35.200.0/22 +103.35.220.0/22 +103.36.20.0/22 +103.36.28.0/22 +103.36.36.0/22 +103.36.56.0/21 +103.36.64.0/22 +103.36.72.0/22 +103.36.96.0/22 +103.36.132.0/22 +103.36.136.0/22 +103.36.160.0/19 +103.36.192.0/19 +103.36.224.0/20 +103.36.240.0/21 +103.37.0.0/22 +103.37.12.0/22 +103.37.16.0/22 +103.37.24.0/22 +103.37.44.0/22 +103.37.52.0/22 +103.37.56.0/22 +103.37.72.0/22 +103.37.100.0/22 +103.37.104.0/22 +103.37.124.0/22 +103.37.136.0/21 +103.37.144.0/20 +103.37.160.0/21 +103.37.172.0/22 +103.37.176.0/22 +103.37.188.0/22 +103.37.208.0/20 +103.37.248.0/21 +103.38.0.0/22 +103.38.32.0/22 +103.38.40.0/21 +103.38.56.0/22 +103.38.76.0/22 +103.38.84.0/22 +103.38.92.0/22 +103.38.96.0/22 +103.38.116.0/22 +103.38.132.0/22 +103.38.140.0/22 +103.38.220.0/22 +103.38.224.0/21 +103.38.232.0/22 +103.38.252.0/22 +103.39.16.0/22 +103.39.64.0/22 +103.39.88.0/22 +103.39.100.0/22 +103.39.104.0/21 +103.39.160.0/19 +103.39.200.0/21 +103.39.208.0/20 +103.39.224.0/21 +103.39.232.0/22 +103.40.12.0/22 +103.40.16.0/20 +103.40.32.0/20 +103.40.88.0/22 +103.40.100.0/22 +103.40.112.0/22 +103.40.192.0/22 +103.40.212.0/22 +103.40.220.0/22 +103.40.228.0/22 +103.40.232.0/21 +103.40.240.0/20 +103.41.0.0/22 +103.41.16.0/22 +103.41.52.0/22 +103.41.140.0/22 +103.41.148.0/22 +103.41.152.0/22 +103.41.160.0/21 +103.41.220.0/22 +103.41.224.0/21 +103.41.232.0/22 +103.42.8.0/22 +103.42.24.0/21 +103.42.32.0/22 +103.42.64.0/21 +103.42.76.0/22 +103.42.104.0/22 +103.42.180.0/22 +103.42.232.0/22 +103.43.16.0/22 +103.43.26.0/23 +103.43.84.0/22 +103.43.96.0/21 +103.43.104.0/22 +103.43.124.0/22 +103.43.184.0/22 +103.43.192.0/21 +103.43.208.0/22 +103.43.220.0/22 +103.43.224.0/22 +103.43.232.0/22 +103.43.240.0/22 +103.44.56.0/22 +103.44.80.0/22 +103.44.88.0/22 +103.44.120.0/21 +103.44.132.0/22 +103.44.144.0/22 +103.44.152.0/22 +103.44.168.0/22 +103.44.176.0/20 +103.44.192.0/20 +103.44.224.0/22 +103.44.236.0/22 +103.44.240.0/20 +103.45.0.0/18 +103.45.72.0/21 +103.45.80.0/20 +103.45.96.0/19 +103.45.128.0/18 +103.45.192.0/19 +103.45.224.0/22 +103.45.248.0/22 +103.46.0.0/22 +103.46.12.0/22 +103.46.16.0/20 +103.46.32.0/19 +103.46.64.0/18 +103.46.128.0/21 +103.46.136.0/22 +103.46.152.0/21 +103.46.160.0/20 +103.46.176.0/21 +103.46.244.0/22 +103.46.248.0/22 +103.47.4.0/22 +103.47.20.0/22 +103.47.36.0/22 +103.47.40.0/22 +103.47.48.0/22 +103.47.80.0/22 +103.47.96.0/22 +103.47.108.0/22 +103.47.116.0/22 +103.47.120.0/22 +103.47.136.0/21 +103.47.212.0/22 +103.48.20.0/22 +103.48.52.0/22 +103.48.92.0/22 +103.48.144.0/20 +103.48.202.0/23 +103.48.216.0/21 +103.48.224.0/20 +103.48.240.0/21 +103.49.12.0/22 +103.49.20.0/22 +103.49.72.0/21 +103.49.92.0/22 +103.49.96.0/22 +103.49.108.0/22 +103.49.128.0/22 +103.49.176.0/21 +103.49.196.0/22 +103.49.248.0/22 +103.50.36.0/22 +103.50.44.0/22 +103.50.48.0/20 +103.50.64.0/21 +103.50.72.0/22 +103.50.92.0/22 +103.50.108.0/22 +103.50.112.0/20 +103.50.132.0/22 +103.50.136.0/21 +103.50.172.0/22 +103.50.176.0/20 +103.50.192.0/21 +103.50.200.0/22 +103.50.220.0/22 +103.50.224.0/20 +103.50.240.0/21 +103.50.248.0/22 +103.52.40.0/22 +103.52.72.0/21 +103.52.80.0/21 +103.52.96.0/21 +103.52.104.0/22 +103.52.160.0/21 +103.52.172.0/22 +103.52.176.0/22 +103.52.184.0/22 +103.52.196.0/22 +103.53.4.0/22 +103.53.64.0/21 +103.53.92.0/22 +103.53.100.0/22 +103.53.124.0/22 +103.53.128.0/20 +103.53.144.0/22 +103.53.160.0/22 +103.53.180.0/22 +103.53.204.0/22 +103.53.208.0/21 +103.53.216.0/22 +103.53.236.0/22 +103.53.248.0/22 +103.54.8.0/22 +103.54.48.0/22 +103.54.60.0/22 +103.54.160.0/21 +103.54.212.0/22 +103.54.228.0/22 +103.54.240.0/22 +103.55.24.0/22 +103.55.80.0/22 +103.55.120.0/22 +103.55.152.0/22 +103.55.172.0/22 +103.55.204.0/22 +103.55.208.0/22 +103.55.228.0/22 +103.55.236.0/22 +103.55.240.0/22 +103.56.8.0/22 +103.56.16.0/21 +103.56.32.0/22 +103.56.52.0/22 +103.56.56.0/21 +103.56.72.0/21 +103.56.140.0/22 +103.56.152.0/22 +103.56.184.0/22 +103.56.200.0/22 +103.57.12.0/22 +103.57.52.0/22 +103.57.56.0/22 +103.57.76.0/22 +103.57.136.0/22 +103.57.196.0/22 +103.58.24.0/22 +103.58.182.0/23 +103.59.76.0/22 +103.59.100.0/22 +103.59.112.0/20 +103.59.128.0/22 +103.59.148.0/22 +103.59.164.0/22 +103.60.32.0/22 +103.60.44.0/22 +103.60.164.0/22 +103.60.228.0/22 +103.60.236.0/22 +103.61.60.0/22 +103.61.104.0/22 +103.61.140.0/22 +103.61.152.0/21 +103.61.160.0/22 +103.61.172.0/22 +103.61.176.0/22 +103.61.184.0/21 +103.62.24.0/22 +103.62.52.0/22 +103.62.72.0/21 +103.62.80.0/21 +103.62.88.0/22 +103.62.96.0/19 +103.62.128.0/21 +103.62.156.0/22 +103.62.160.0/19 +103.62.192.0/22 +103.62.204.0/22 +103.62.208.0/20 +103.62.224.0/22 +103.63.32.0/19 +103.63.64.0/20 +103.63.80.0/21 +103.63.88.0/22 +103.63.140.0/22 +103.63.144.0/22 +103.63.152.0/22 +103.63.160.0/20 +103.63.176.0/21 +103.63.184.0/22 +103.63.192.0/20 +103.63.208.0/22 +103.63.240.0/20 +103.64.0.0/21 +103.64.24.0/21 +103.64.32.0/19 +103.64.64.0/18 +103.64.140.0/22 +103.64.144.0/22 +103.64.152.0/21 +103.64.160.0/19 +103.64.192.0/18 +103.65.0.0/20 +103.65.16.0/22 +103.65.36.0/22 +103.65.40.0/22 +103.65.48.0/20 +103.65.64.0/19 +103.65.100.0/22 +103.65.104.0/21 +103.65.112.0/20 +103.65.128.0/21 +103.65.136.0/22 +103.65.144.0/20 +103.65.160.0/20 +103.66.32.0/22 +103.66.40.0/22 +103.66.92.0/22 +103.66.108.0/22 +103.66.200.0/22 +103.66.216.0/22 +103.66.240.0/20 +103.67.0.0/21 +103.67.8.0/22 +103.67.40.0/21 +103.67.48.0/20 +103.67.64.0/18 +103.67.128.0/20 +103.67.144.0/21 +103.67.172.0/22 +103.67.192.0/22 +103.67.212.0/22 +103.67.252.0/22 +103.68.64.0/22 +103.68.88.0/22 +103.68.100.0/22 +103.68.128.0/22 +103.68.192.0/22 +103.69.16.0/22 +103.69.116.0/22 +103.69.132.0/22 +103.69.152.0/22 +103.69.212.0/22 +103.70.8.0/22 +103.70.148.0/22 +103.70.184.0/22 +103.70.220.0/22 +103.70.224.0/22 +103.70.236.0/22 +103.70.252.0/22 +103.71.0.0/22 +103.71.32.0/22 +103.71.48.0/22 +103.71.68.0/22 +103.71.72.0/22 +103.71.80.0/21 +103.71.88.0/22 +103.71.120.0/21 +103.71.128.0/22 +103.71.144.0/22 +103.71.196.0/22 +103.71.200.0/22 +103.71.232.0/22 +103.72.12.0/22 +103.72.16.0/20 +103.72.32.0/20 +103.72.48.0/21 +103.72.112.0/20 +103.72.128.0/21 +103.72.144.0/21 +103.72.172.0/22 +103.72.180.0/22 +103.72.224.0/19 +103.73.0.0/19 +103.73.48.0/22 +103.73.88.0/22 +103.73.96.0/22 +103.73.116.0/22 +103.73.120.0/22 +103.73.128.0/20 +103.73.144.0/22 +103.73.168.0/22 +103.73.176.0/22 +103.73.204.0/22 +103.73.208.0/22 +103.73.240.0/21 +103.73.248.0/22 +103.74.24.0/21 +103.74.32.0/20 +103.74.48.0/22 +103.74.56.0/21 +103.74.80.0/22 +103.74.124.0/22 +103.74.148.0/22 +103.74.152.0/21 +103.74.204.0/22 +103.74.232.0/22 +103.75.16.0/22 +103.75.87.0/24 +103.75.88.0/21 +103.75.104.0/21 +103.75.112.0/22 +103.75.120.0/22 +103.75.128.0/22 +103.75.144.0/22 +103.75.152.0/22 +103.75.236.0/24 +103.76.60.0/22 +103.76.64.0/21 +103.76.72.0/22 +103.76.84.0/22 +103.76.92.0/22 +103.76.104.0/22 +103.76.216.0/21 +103.76.224.0/22 +103.77.28.0/22 +103.77.52.0/22 +103.77.56.0/22 +103.77.72.0/22 +103.77.88.0/21 +103.77.132.0/22 +103.77.148.0/22 +103.77.220.0/22 +103.78.56.0/21 +103.78.64.0/21 +103.78.124.0/22 +103.78.172.0/22 +103.78.176.0/22 +103.78.196.0/22 +103.78.228.0/22 +103.79.24.0/21 +103.79.36.0/22 +103.79.40.0/21 +103.79.52.0/22 +103.79.56.0/21 +103.79.64.0/21 +103.79.80.0/21 +103.79.120.0/22 +103.79.136.0/22 +103.79.188.0/22 +103.79.192.0/20 +103.79.208.0/21 +103.79.240.0/22 +103.80.24.0/21 +103.80.44.0/22 +103.80.72.0/22 +103.80.176.0/21 +103.80.184.0/22 +103.80.192.0/22 +103.80.200.0/22 +103.80.232.0/22 +103.81.4.0/22 +103.81.8.0/22 +103.81.16.0/21 +103.81.44.0/22 +103.81.48.0/22 +103.81.96.0/22 +103.81.120.0/22 +103.81.148.0/22 +103.81.164.0/22 +103.81.168.0/22 +103.81.183.0/24 +103.81.184.0/22 +103.81.200.0/22 +103.81.232.0/22 +103.82.52.0/22 +103.82.60.0/22 +103.82.68.0/22 +103.82.84.0/22 +103.82.104.0/22 +103.82.224.0/22 +103.82.236.0/22 +103.83.44.0/22 +103.83.52.0/22 +103.83.60.0/22 +103.83.64.0/22 +103.83.72.0/22 +103.83.112.0/22 +103.83.120.0/22 +103.83.132.0/22 +103.83.180.0/22 +103.84.0.0/22 +103.84.12.0/22 +103.84.16.0/20 +103.84.48.0/22 +103.84.56.0/22 +103.84.64.0/22 +103.84.72.0/22 +103.84.92.0/22 +103.84.108.0/22 +103.84.136.0/22 +103.85.20.0/22 +103.85.24.0/22 +103.85.44.0/22 +103.85.48.0/21 +103.85.56.0/22 +103.85.84.0/22 +103.85.136.0/22 +103.85.144.0/22 +103.85.164.0/22 +103.85.168.0/21 +103.85.176.0/22 +103.85.224.0/22 +103.86.28.0/22 +103.86.32.0/22 +103.86.44.0/22 +103.86.60.0/22 +103.86.68.0/22 +103.86.80.0/21 +103.86.88.0/22 +103.86.129.0/24 +103.86.204.0/22 +103.86.208.0/20 +103.86.224.0/19 +103.87.0.0/21 +103.87.20.0/22 +103.87.32.0/22 +103.87.72.0/22 +103.87.96.0/22 +103.87.132.0/22 +103.87.180.0/22 +103.87.224.0/22 +103.88.4.0/22 +103.88.8.0/21 +103.88.16.0/21 +103.88.32.0/21 +103.88.60.0/22 +103.88.64.0/22 +103.88.72.0/22 +103.88.96.0/21 +103.88.152.0/23 +103.88.164.0/22 +103.88.176.0/22 +103.88.184.0/21 +103.88.212.0/22 +103.89.28.0/22 +103.89.96.0/20 +103.89.112.0/21 +103.89.148.0/22 +103.89.172.0/22 +103.89.184.0/21 +103.89.192.0/19 +103.89.224.0/21 +103.90.52.0/22 +103.90.92.0/22 +103.90.100.0/22 +103.90.104.0/21 +103.90.112.0/20 +103.90.128.0/21 +103.90.152.0/22 +103.90.168.0/22 +103.90.173.0/24 +103.90.176.0/22 +103.90.188.0/22 +103.90.192.0/22 +103.91.36.0/22 +103.91.40.0/22 +103.91.108.0/22 +103.91.152.0/22 +103.91.176.0/22 +103.91.200.0/22 +103.91.208.0/21 +103.91.219.0/24 +103.91.236.0/22 +103.91.252.0/22 +103.92.0.0/20 +103.92.48.0/20 +103.92.64.0/20 +103.92.80.0/22 +103.92.86.0/24 +103.92.88.0/22 +103.92.108.0/22 +103.92.124.0/22 +103.92.128.0/24 +103.92.132.0/22 +103.92.156.0/22 +103.92.164.0/22 +103.92.168.0/21 +103.92.176.0/20 +103.92.192.0/22 +103.92.236.0/22 +103.92.240.0/20 +103.93.0.0/21 +103.93.28.0/22 +103.93.76.0/22 +103.93.84.0/22 +103.93.121.0/24 +103.93.152.0/22 +103.93.180.0/22 +103.93.204.0/22 +103.94.12.0/22 +103.94.20.0/22 +103.94.28.0/22 +103.94.32.0/20 +103.94.72.0/22 +103.94.88.0/22 +103.94.116.0/22 +103.94.160.0/22 +103.94.180.0/22 +103.94.200.0/22 +103.95.28.0/22 +103.95.52.0/22 +103.95.64.0/21 +103.95.88.0/21 +103.95.116.0/22 +103.95.128.0/22 +103.95.136.0/21 +103.95.144.0/22 +103.95.152.0/22 +103.95.207.0/24 +103.95.216.0/21 +103.95.224.0/22 +103.95.236.0/22 +103.95.240.0/20 +103.96.0.0/22 +103.96.8.0/22 +103.96.80.0/22 +103.96.124.0/22 +103.96.136.0/22 +103.96.140.0/24 +103.96.148.0/22 +103.96.152.0/21 +103.96.160.0/19 +103.96.192.0/20 +103.96.208.0/21 +103.96.216.0/22 +103.97.8.0/21 +103.97.16.0/20 +103.97.32.0/21 +103.97.40.0/22 +103.97.56.0/21 +103.97.64.0/21 +103.97.72.0/22 +103.97.80.0/22 +103.97.112.0/21 +103.97.128.0/22 +103.97.144.0/21 +103.97.188.0/22 +103.97.192.0/22 +103.97.224.0/22 +103.97.228.0/23 +103.98.28.0/23 +103.98.40.0/21 +103.98.48.0/22 +103.98.56.0/22 +103.98.80.0/22 +103.98.88.0/21 +103.98.96.0/21 +103.98.124.0/22 +103.98.136.0/21 +103.98.144.0/22 +103.98.164.0/22 +103.98.168.0/22 +103.98.180.0/22 +103.98.196.0/22 +103.98.216.0/21 +103.98.224.0/21 +103.98.232.0/22 +103.98.240.0/20 +103.99.40.0/23 +103.99.52.0/22 +103.99.56.0/21 +103.99.76.0/22 +103.99.104.0/22 +103.99.116.0/22 +103.99.120.0/22 +103.99.132.0/22 +103.99.136.0/21 +103.99.144.0/22 +103.99.152.0/22 +103.99.220.0/22 +103.99.232.0/21 +103.100.0.0/22 +103.100.32.0/22 +103.100.40.0/22 +103.100.48.0/20 +103.100.64.0/21 +103.100.88.0/22 +103.100.116.0/22 +103.100.140.0/22 +103.100.144.0/22 +103.100.236.0/22 +103.100.240.0/22 +103.100.248.0/21 +103.101.4.0/22 +103.101.8.0/21 +103.101.28.0/22 +103.101.60.0/22 +103.101.120.0/21 +103.101.144.0/21 +103.101.153.0/24 +103.101.180.0/22 +103.101.184.0/22 +103.102.76.0/22 +103.102.80.0/22 +103.102.163.0/24 +103.102.168.0/21 +103.102.180.0/22 +103.102.184.0/21 +103.102.192.0/21 +103.102.200.0/22 +103.102.208.0/21 +103.103.12.0/22 +103.103.16.0/22 +103.103.36.0/22 +103.103.68.0/22 +103.103.72.0/22 +103.103.176.0/22 +103.103.188.0/22 +103.103.200.0/21 +103.103.220.0/22 +103.103.224.0/21 +103.103.232.0/22 +103.103.248.0/21 +103.104.0.0/21 +103.104.36.0/22 +103.104.40.0/22 +103.104.64.0/22 +103.104.104.0/22 +103.104.152.0/22 +103.104.168.0/21 +103.104.188.0/22 +103.104.198.0/23 +103.104.252.0/22 +103.105.0.0/21 +103.105.12.0/22 +103.105.16.0/22 +103.105.23.0/24 +103.105.56.0/21 +103.105.116.0/22 +103.105.132.0/22 +103.105.180.0/22 +103.105.184.0/22 +103.105.200.0/21 +103.105.220.0/22 +103.106.36.0/22 +103.106.40.0/21 +103.106.60.0/22 +103.106.68.0/22 +103.106.96.0/22 +103.106.120.0/22 +103.106.128.0/21 +103.106.160.0/22 +103.106.188.0/22 +103.106.196.0/22 +103.106.202.0/23 +103.106.212.0/22 +103.106.244.0/22 +103.106.252.0/22 +103.107.0.0/22 +103.107.8.0/24 +103.107.28.0/22 +103.107.32.0/22 +103.107.44.0/22 +103.107.72.0/22 +103.107.108.0/22 +103.107.164.0/22 +103.107.168.0/22 +103.107.188.0/22 +103.107.192.0/22 +103.107.208.0/20 +103.108.52.0/22 +103.108.64.0/22 +103.108.160.0/21 +103.108.184.0/23 +103.108.188.0/23 +103.108.192.0/21 +103.108.208.0/21 +103.108.224.0/22 +103.108.244.0/22 +103.108.251.0/24 +103.109.20.0/22 +103.109.48.0/22 +103.109.88.0/22 +103.109.106.0/23 +103.109.248.0/22 +103.110.32.0/22 +103.110.80.0/23 +103.110.92.0/22 +103.110.100.0/22 +103.110.116.0/22 +103.110.127.0/24 +103.110.128.0/23 +103.110.131.0/24 +103.110.132.0/22 +103.110.136.0/22 +103.110.152.0/21 +103.110.188.0/22 +103.110.204.0/22 +103.111.38.0/23 +103.111.64.0/22 +103.111.172.0/22 +103.111.252.0/22 +103.112.28.0/22 +103.112.68.0/22 +103.112.72.0/22 +103.112.88.0/21 +103.112.96.0/22 +103.112.108.0/22 +103.112.112.0/21 +103.112.140.0/22 +103.112.172.0/22 +103.112.184.0/22 +103.112.208.0/22 +103.113.4.0/22 +103.113.92.0/22 +103.113.144.0/22 +103.113.220.0/22 +103.113.232.0/21 +103.114.4.0/22 +103.114.28.0/22 +103.114.68.0/22 +103.114.72.0/22 +103.114.100.0/22 +103.114.132.0/22 +103.114.148.0/22 +103.114.156.0/22 +103.114.176.0/22 +103.114.212.0/22 +103.114.236.0/22 +103.114.240.0/22 +103.115.16.0/22 +103.115.40.0/21 +103.115.48.0/20 +103.115.64.0/21 +103.115.92.0/22 +103.115.120.0/22 +103.115.148.0/22 +103.115.204.0/23 +103.115.248.0/22 +103.116.20.0/22 +103.116.40.0/22 +103.116.64.0/22 +103.116.72.0/21 +103.116.92.0/22 +103.116.120.0/22 +103.116.128.0/22 +103.116.132.0/23 +103.116.148.0/22 +103.116.184.0/22 +103.116.206.0/23 +103.116.220.0/22 +103.116.224.0/21 +103.117.16.0/22 +103.117.72.0/22 +103.117.88.0/22 +103.117.132.0/22 +103.117.136.0/22 +103.117.188.0/22 +103.117.220.0/22 +103.118.19.0/24 +103.118.36.0/22 +103.118.52.0/22 +103.118.56.0/21 +103.118.64.0/21 +103.118.72.0/22 +103.118.88.0/22 +103.118.173.0/24 +103.118.192.0/19 +103.118.240.0/20 +103.119.0.0/22 +103.119.12.0/22 +103.119.16.0/22 +103.119.28.0/22 +103.119.44.0/22 +103.119.104.0/22 +103.119.115.0/24 +103.119.156.0/22 +103.119.180.0/22 +103.192.0.0/19 +103.192.48.0/21 +103.192.56.0/22 +103.192.84.0/22 +103.192.88.0/21 +103.192.96.0/20 +103.192.112.0/22 +103.192.128.0/20 +103.192.144.0/22 +103.192.164.0/22 +103.192.188.0/22 +103.192.208.0/21 +103.192.216.0/22 +103.192.252.0/22 +103.193.40.0/21 +103.193.120.0/21 +103.193.140.0/22 +103.193.144.0/21 +103.193.160.0/22 +103.193.188.0/22 +103.193.192.0/22 +103.193.212.0/22 +103.193.216.0/21 +103.193.224.0/20 +103.193.240.0/22 +103.194.16.0/22 +103.194.230.0/23 +103.195.104.0/22 +103.195.112.0/22 +103.195.136.0/22 +103.195.148.0/22 +103.195.152.0/22 +103.195.160.0/22 +103.195.192.0/22 +103.196.60.0/22 +103.196.64.0/22 +103.196.72.0/22 +103.196.88.0/21 +103.196.96.0/22 +103.196.168.0/22 +103.196.185.0/24 +103.196.186.0/23 +103.196.204.0/22 +103.197.180.0/22 +103.197.228.0/22 +103.197.253.0/24 +103.197.254.0/23 +103.198.20.0/22 +103.198.60.0/22 +103.198.64.0/22 +103.198.72.0/22 +103.198.124.0/22 +103.198.156.0/22 +103.198.180.0/22 +103.198.196.0/22 +103.198.200.0/22 +103.198.216.0/21 +103.198.224.0/20 +103.198.240.0/21 +103.199.164.0/22 +103.199.196.0/22 +103.199.228.0/22 +103.199.248.0/21 +103.200.28.0/22 +103.200.32.0/22 +103.200.52.0/22 +103.200.64.0/21 +103.200.136.0/21 +103.200.144.0/20 +103.200.160.0/19 +103.200.192.0/22 +103.200.220.0/22 +103.200.224.0/19 +103.201.0.0/20 +103.201.16.0/21 +103.201.28.0/22 +103.201.32.0/19 +103.201.64.0/22 +103.201.76.0/22 +103.201.80.0/20 +103.201.96.0/20 +103.201.112.0/21 +103.201.120.0/22 +103.201.152.0/21 +103.201.160.0/19 +103.201.192.0/18 +103.202.0.0/19 +103.202.32.0/20 +103.202.56.0/21 +103.202.64.0/18 +103.202.128.0/20 +103.202.144.0/22 +103.202.152.0/21 +103.202.160.0/19 +103.202.192.0/20 +103.202.212.0/22 +103.202.228.0/22 +103.202.236.0/22 +103.202.240.0/20 +103.203.0.0/19 +103.203.32.0/22 +103.203.52.0/22 +103.203.56.0/22 +103.203.96.0/19 +103.203.128.0/22 +103.203.140.0/22 +103.203.164.0/22 +103.203.168.0/22 +103.203.192.0/22 +103.203.200.0/22 +103.203.212.0/22 +103.203.216.0/22 +103.204.24.0/22 +103.204.72.0/22 +103.204.88.0/22 +103.204.112.0/22 +103.204.136.0/21 +103.204.144.0/21 +103.204.152.0/22 +103.204.196.0/22 +103.204.232.0/21 +103.205.4.0/22 +103.205.8.0/22 +103.205.40.0/21 +103.205.52.0/22 +103.205.108.0/22 +103.205.116.0/22 +103.205.120.0/22 +103.205.136.0/22 +103.205.162.0/24 +103.205.188.0/22 +103.205.192.0/21 +103.205.200.0/22 +103.205.236.0/22 +103.205.248.0/21 +103.206.0.0/22 +103.206.44.0/22 +103.206.108.0/22 +103.206.148.0/22 +103.207.48.0/22 +103.207.104.0/22 +103.207.164.0/22 +103.207.184.0/21 +103.207.192.0/20 +103.207.208.0/21 +103.207.220.0/22 +103.207.228.0/22 +103.207.232.0/22 +103.208.12.0/22 +103.208.16.0/22 +103.208.28.0/22 +103.208.40.0/21 +103.208.48.0/22 +103.208.148.0/22 +103.209.112.0/22 +103.209.136.0/22 +103.209.200.0/22 +103.209.208.0/22 +103.209.216.0/22 +103.210.0.0/22 +103.210.20.0/22 +103.210.96.0/22 +103.210.156.0/22 +103.210.160.0/19 +103.210.216.0/22 +103.211.44.0/22 +103.211.96.0/21 +103.211.156.0/22 +103.211.164.0/22 +103.211.168.0/22 +103.211.192.0/22 +103.211.220.0/22 +103.211.224.0/22 +103.211.248.0/22 +103.212.0.0/20 +103.212.32.0/22 +103.212.44.0/22 +103.212.48.0/22 +103.212.84.0/22 +103.212.100.0/22 +103.212.104.0/21 +103.212.148.0/22 +103.212.164.0/22 +103.212.196.0/22 +103.212.200.0/22 +103.212.228.0/22 +103.212.252.0/22 +103.213.40.0/21 +103.213.48.0/20 +103.213.64.0/19 +103.213.96.0/22 +103.213.132.0/22 +103.213.136.0/21 +103.213.144.0/20 +103.213.160.0/19 +103.213.248.0/21 +103.214.32.0/22 +103.214.48.0/22 +103.214.84.0/22 +103.214.168.0/22 +103.214.212.0/22 +103.214.240.0/21 +103.215.28.0/22 +103.215.32.0/21 +103.215.44.0/22 +103.215.48.0/22 +103.215.100.0/22 +103.215.104.0/21 +103.215.116.0/22 +103.215.120.0/22 +103.215.140.0/22 +103.215.184.0/22 +103.215.228.0/22 +103.216.4.0/22 +103.216.8.0/21 +103.216.16.0/20 +103.216.32.0/20 +103.216.64.0/22 +103.216.108.0/22 +103.216.136.0/22 +103.216.152.0/22 +103.216.224.0/21 +103.216.240.0/20 +103.217.0.0/18 +103.217.168.0/22 +103.217.180.0/22 +103.217.184.0/21 +103.217.192.0/20 +103.218.0.0/22 +103.218.8.0/21 +103.218.16.0/21 +103.218.28.0/22 +103.218.32.0/19 +103.218.64.0/19 +103.218.184.0/22 +103.218.192.0/20 +103.218.208.0/21 +103.218.216.0/22 +103.219.24.0/21 +103.219.32.0/21 +103.219.64.0/22 +103.219.84.0/22 +103.219.88.0/21 +103.219.96.0/21 +103.219.176.0/22 +103.219.184.0/22 +103.220.48.0/20 +103.220.64.0/22 +103.220.92.0/22 +103.220.96.0/20 +103.220.116.0/22 +103.220.120.0/21 +103.220.128.0/20 +103.220.144.0/21 +103.220.152.0/22 +103.220.160.0/19 +103.220.192.0/21 +103.220.200.0/22 +103.220.240.0/20 +103.221.0.0/19 +103.221.32.0/20 +103.221.48.0/22 +103.221.88.0/21 +103.221.96.0/19 +103.221.128.0/18 +103.221.192.0/20 +103.222.0.0/20 +103.222.16.0/22 +103.222.24.0/21 +103.222.32.0/19 +103.222.64.0/18 +103.222.128.0/18 +103.222.192.0/19 +103.222.224.0/21 +103.222.232.0/22 +103.222.240.0/21 +103.223.16.0/20 +103.223.32.0/19 +103.223.64.0/18 +103.223.128.0/21 +103.223.140.0/22 +103.223.144.0/20 +103.223.160.0/20 +103.223.176.0/21 +103.223.188.0/22 +103.223.192.0/18 +103.224.0.0/22 +103.224.40.0/21 +103.224.60.0/22 +103.224.80.0/22 +103.224.220.0/22 +103.224.224.0/21 +103.224.232.0/22 +103.225.84.0/22 +103.226.16.0/22 +103.226.40.0/22 +103.226.56.0/21 +103.226.80.0/22 +103.226.116.0/22 +103.226.132.0/22 +103.226.156.0/22 +103.226.180.0/22 +103.226.196.0/22 +103.227.48.0/22 +103.227.72.0/21 +103.227.80.0/22 +103.227.100.0/22 +103.227.120.0/22 +103.227.132.0/22 +103.227.136.0/22 +103.227.196.0/22 +103.227.204.0/22 +103.227.212.0/22 +103.227.228.0/22 +103.228.12.0/22 +103.228.28.0/22 +103.228.68.0/22 +103.228.88.0/22 +103.228.128.0/22 +103.228.136.0/22 +103.228.160.0/22 +103.228.176.0/22 +103.228.204.0/22 +103.228.208.0/22 +103.228.228.0/22 +103.228.232.0/22 +103.229.20.0/22 +103.229.60.0/22 +103.229.136.0/22 +103.229.148.0/22 +103.229.172.0/22 +103.229.212.0/22 +103.229.216.0/21 +103.229.228.0/22 +103.229.236.0/22 +103.229.240.0/22 +103.230.0.0/22 +103.230.28.0/22 +103.230.40.0/21 +103.230.96.0/22 +103.230.196.0/22 +103.230.200.0/21 +103.230.212.0/22 +103.230.236.0/22 +103.231.16.0/21 +103.231.64.0/21 +103.231.144.0/22 +103.231.180.0/22 +103.231.184.0/22 +103.231.244.0/22 +103.232.4.0/22 +103.232.144.0/22 +103.232.188.0/22 +103.232.212.0/22 +103.233.4.0/22 +103.233.44.0/22 +103.233.52.0/22 +103.233.104.0/22 +103.233.128.0/22 +103.233.136.0/22 +103.233.228.0/22 +103.234.0.0/22 +103.234.20.0/22 +103.234.56.0/22 +103.234.124.0/22 +103.234.128.0/22 +103.234.172.0/22 +103.234.180.0/22 +103.234.244.0/22 +103.235.16.0/22 +103.235.48.0/22 +103.235.56.0/21 +103.235.80.0/21 +103.235.128.0/20 +103.235.144.0/21 +103.235.184.0/22 +103.235.192.0/22 +103.235.200.0/22 +103.235.220.0/22 +103.235.224.0/19 +103.236.0.0/18 +103.236.64.0/19 +103.236.96.0/22 +103.236.120.0/22 +103.236.184.0/22 +103.236.220.0/22 +103.236.232.0/22 +103.236.240.0/20 +103.237.0.0/20 +103.237.24.0/21 +103.237.68.0/22 +103.237.88.0/22 +103.237.152.0/22 +103.237.176.0/20 +103.237.192.0/18 +103.238.0.0/21 +103.238.16.0/20 +103.238.32.0/20 +103.238.48.0/21 +103.238.56.0/22 +103.238.88.0/21 +103.238.96.0/22 +103.238.132.0/22 +103.238.140.0/22 +103.238.144.0/22 +103.238.160.0/19 +103.238.196.0/22 +103.238.204.0/22 +103.238.252.0/22 +103.239.0.0/22 +103.239.44.0/22 +103.239.68.0/22 +103.239.96.0/22 +103.239.152.0/21 +103.239.176.0/21 +103.239.184.0/22 +103.239.192.0/21 +103.239.204.0/22 +103.239.208.0/22 +103.239.224.0/22 +103.239.244.0/22 +103.240.16.0/22 +103.240.36.0/22 +103.240.72.0/22 +103.240.84.0/22 +103.240.124.0/22 +103.240.156.0/22 +103.240.172.0/22 +103.240.188.0/22 +103.240.244.0/22 +103.241.12.0/22 +103.241.72.0/22 +103.241.92.0/22 +103.241.96.0/22 +103.241.160.0/22 +103.241.184.0/21 +103.241.220.0/22 +103.242.64.0/22 +103.242.128.0/21 +103.242.160.0/22 +103.242.168.0/21 +103.242.176.0/22 +103.242.200.0/22 +103.242.212.0/22 +103.242.220.0/22 +103.242.240.0/22 +103.243.136.0/22 +103.243.252.0/22 +103.244.16.0/22 +103.244.58.0/23 +103.244.60.0/22 +103.244.64.0/20 +103.244.80.0/21 +103.244.116.0/22 +103.244.164.0/22 +103.244.232.0/22 +103.244.252.0/22 +103.245.23.0/24 +103.245.52.0/22 +103.245.60.0/22 +103.245.80.0/22 +103.245.124.0/22 +103.245.128.0/22 +103.246.8.0/21 +103.246.120.0/21 +103.246.132.0/22 +103.246.152.0/21 +103.247.168.0/21 +103.247.176.0/22 +103.247.200.0/22 +103.247.212.0/22 +103.248.0.0/23 +103.248.64.0/22 +103.248.100.0/22 +103.248.124.0/22 +103.248.152.0/22 +103.248.168.0/22 +103.248.192.0/22 +103.248.212.0/22 +103.248.220.0/22 +103.248.224.0/21 +103.249.8.0/21 +103.249.52.0/22 +103.249.104.0/22 +103.249.128.0/22 +103.249.136.0/22 +103.249.144.0/22 +103.249.164.0/22 +103.249.168.0/21 +103.249.176.0/22 +103.249.188.0/22 +103.249.192.0/22 +103.249.244.0/22 +103.249.252.0/22 +103.250.32.0/22 +103.250.104.0/22 +103.250.124.0/22 +103.250.180.0/22 +103.250.192.0/22 +103.250.216.0/22 +103.250.224.0/22 +103.250.236.0/22 +103.250.248.0/21 +103.251.32.0/21 +103.251.84.0/22 +103.251.96.0/22 +103.251.124.0/22 +103.251.128.0/22 +103.251.160.0/22 +103.251.192.0/22 +103.251.204.0/22 +103.251.236.0/22 +103.251.240.0/22 +103.252.28.0/22 +103.252.36.0/22 +103.252.64.0/22 +103.252.96.0/22 +103.252.104.0/22 +103.252.172.0/22 +103.252.204.0/22 +103.252.208.0/22 +103.252.232.0/22 +103.252.248.0/22 +103.253.4.0/22 +103.253.60.0/22 +103.253.204.0/22 +103.253.220.0/22 +103.253.224.0/22 +103.253.232.0/22 +103.254.8.0/22 +103.254.20.0/22 +103.254.64.0/20 +103.254.112.0/22 +103.254.176.0/22 +103.254.188.0/22 +103.254.196.0/24 +103.254.220.0/22 +103.255.56.0/22 +103.255.68.0/22 +103.255.88.0/21 +103.255.136.0/21 +103.255.184.0/22 +103.255.200.0/22 +103.255.208.0/21 +103.255.228.0/22 +104.166.103.0/24 +104.222.196.0/24 +106.0.0.0/24 +106.0.2.0/23 +106.0.4.0/22 +106.0.8.0/21 +106.0.16.0/20 +106.0.44.0/22 +106.0.64.0/18 +106.2.0.0/15 +106.4.0.0/14 +106.8.0.0/15 +106.11.0.0/16 +106.12.0.0/14 +106.16.0.0/12 +106.32.0.0/12 +106.48.0.0/15 +106.50.0.0/16 +106.52.0.0/14 +106.56.0.0/13 +106.74.0.0/15 +106.80.0.0/12 +106.108.0.0/14 +106.112.0.0/12 +106.224.0.0/12 +107.153.91.0/24 +107.153.92.0/23 +109.71.4.0/24 +109.244.0.0/16 +110.6.0.0/15 +110.16.0.0/14 +110.34.40.0/21 +110.40.0.0/14 +110.44.12.0/22 +110.44.144.0/20 +110.48.0.0/16 +110.51.0.0/16 +110.52.0.0/15 +110.56.0.0/13 +110.64.0.0/15 +110.72.0.0/15 +110.75.0.0/16 +110.76.0.0/18 +110.76.132.0/22 +110.76.156.0/22 +110.76.184.0/22 +110.76.192.0/18 +110.77.0.0/17 +110.80.0.0/13 +110.88.0.0/14 +110.92.68.0/22 +110.93.32.0/19 +110.94.0.0/15 +110.96.0.0/11 +110.152.0.0/14 +110.156.0.0/15 +110.165.32.0/19 +110.166.0.0/15 +110.172.192.0/18 +110.173.0.0/19 +110.173.32.0/20 +110.173.64.0/18 +110.173.192.0/19 +110.176.0.0/12 +110.192.0.0/11 +110.228.0.0/14 +110.232.32.0/19 +110.236.0.0/15 +110.240.0.0/12 +111.0.0.0/10 +111.66.0.0/16 +111.67.192.0/20 +111.68.64.0/19 +111.72.0.0/13 +111.85.0.0/16 +111.91.192.0/19 +111.92.248.0/21 +111.112.0.0/14 +111.116.0.0/15 +111.118.200.0/21 +111.119.64.0/18 +111.119.128.0/19 +111.120.0.0/14 +111.124.0.0/16 +111.126.0.0/15 +111.128.0.0/11 +111.160.0.0/13 +111.170.0.0/16 +111.172.0.0/14 +111.176.0.0/13 +111.186.0.0/15 +111.192.0.0/12 +111.208.0.0/13 +111.221.28.0/24 +111.221.128.0/17 +111.222.0.0/16 +111.223.4.0/22 +111.223.8.0/21 +111.223.16.0/22 +111.223.240.0/22 +111.223.248.0/22 +111.224.0.0/13 +111.235.96.0/19 +111.235.156.0/22 +111.235.160.0/19 +112.0.0.0/10 +112.64.0.0/14 +112.73.0.0/16 +112.74.0.0/15 +112.80.0.0/12 +112.96.0.0/13 +112.109.128.0/17 +112.111.0.0/16 +112.112.0.0/14 +112.116.0.0/15 +112.122.0.0/15 +112.124.0.0/14 +112.128.0.0/14 +112.132.0.0/16 +112.137.48.0/21 +112.192.0.0/14 +112.224.0.0/11 +113.0.0.0/13 +113.8.0.0/15 +113.11.192.0/19 +113.12.0.0/14 +113.16.0.0/15 +113.18.0.0/16 +113.21.232.0/21 +113.24.0.0/14 +113.31.0.0/16 +113.44.0.0/14 +113.48.0.0/14 +113.52.160.0/19 +113.52.228.0/22 +113.54.0.0/15 +113.56.0.0/15 +113.58.0.0/16 +113.59.0.0/17 +113.59.224.0/22 +113.62.0.0/15 +113.64.0.0/10 +113.128.0.0/15 +113.130.96.0/20 +113.130.112.0/21 +113.132.0.0/14 +113.136.0.0/13 +113.194.0.0/15 +113.197.100.0/22 +113.200.0.0/15 +113.202.0.0/16 +113.204.0.0/14 +113.208.96.0/19 +113.208.128.0/17 +113.209.0.0/16 +113.212.0.0/18 +113.212.100.0/22 +113.212.184.0/21 +113.213.0.0/17 +113.214.0.0/15 +113.218.0.0/15 +113.220.0.0/14 +113.224.0.0/12 +113.240.0.0/13 +113.248.0.0/14 +114.28.0.0/16 +114.31.64.0/21 +114.54.0.0/15 +114.60.0.0/14 +114.64.0.0/14 +114.68.0.0/16 +114.79.64.0/18 +114.80.0.0/12 +114.96.0.0/13 +114.104.0.0/14 +114.110.0.0/20 +114.110.64.0/18 +114.111.0.0/19 +114.111.160.0/19 +114.112.0.0/13 +114.132.0.0/16 +114.135.0.0/16 +114.138.0.0/15 +114.141.64.0/21 +114.141.80.0/21 +114.141.128.0/18 +114.196.0.0/15 +114.198.248.0/21 +114.208.0.0/12 +114.224.0.0/11 +115.24.0.0/14 +115.28.0.0/15 +115.31.64.0/20 +115.32.0.0/14 +115.42.56.0/22 +115.44.0.0/14 +115.48.0.0/12 +115.69.64.0/20 +115.84.0.0/18 +115.84.192.0/19 +115.85.192.0/18 +115.100.0.0/14 +115.104.0.0/14 +115.120.0.0/14 +115.124.16.0/20 +115.148.0.0/14 +115.152.0.0/13 +115.166.64.0/19 +115.168.0.0/13 +115.180.0.0/14 +115.187.0.0/20 +115.190.0.0/15 +115.192.0.0/11 +115.224.0.0/12 +116.0.8.0/21 +116.0.24.0/21 +116.1.0.0/16 +116.2.0.0/15 +116.4.0.0/14 +116.8.0.0/14 +116.13.0.0/16 +116.16.0.0/12 +116.50.0.0/20 +116.52.0.0/14 +116.56.0.0/15 +116.58.128.0/20 +116.58.208.0/20 +116.60.0.0/14 +116.66.0.0/17 +116.66.176.0/22 +116.68.136.0/21 +116.68.176.0/21 +116.69.0.0/16 +116.70.0.0/17 +116.76.0.0/14 +116.85.0.0/16 +116.89.144.0/20 +116.89.240.0/22 +116.90.80.0/20 +116.90.184.0/21 +116.95.0.0/16 +116.112.0.0/14 +116.116.0.0/15 +116.128.0.0/10 +116.192.0.0/16 +116.193.16.0/20 +116.193.32.0/19 +116.193.152.0/22 +116.193.164.0/22 +116.193.176.0/21 +116.194.0.0/15 +116.196.0.0/16 +116.197.160.0/21 +116.197.180.0/23 +116.198.0.0/16 +116.199.0.0/17 +116.199.128.0/19 +116.204.0.0/15 +116.206.92.0/22 +116.206.100.0/22 +116.206.176.0/22 +116.207.0.0/16 +116.208.0.0/14 +116.212.160.0/20 +116.213.44.0/22 +116.213.64.0/18 +116.213.128.0/17 +116.214.32.0/19 +116.214.64.0/20 +116.214.128.0/17 +116.215.0.0/16 +116.216.0.0/14 +116.224.0.0/12 +116.242.0.0/15 +116.244.0.0/14 +116.248.0.0/15 +116.251.64.0/18 +116.252.0.0/15 +116.254.104.0/21 +116.254.128.0/17 +116.255.128.0/17 +117.8.0.0/13 +117.21.0.0/16 +117.22.0.0/15 +117.24.0.0/13 +117.32.0.0/13 +117.40.0.0/14 +117.44.0.0/15 +117.48.0.0/14 +117.53.48.0/20 +117.53.176.0/20 +117.57.0.0/16 +117.58.0.0/17 +117.59.0.0/16 +117.60.0.0/14 +117.64.0.0/13 +117.72.0.0/15 +117.74.64.0/19 +117.74.128.0/17 +117.75.0.0/16 +117.76.0.0/14 +117.80.0.0/12 +117.100.0.0/15 +117.103.16.0/20 +117.103.40.0/21 +117.103.72.0/21 +117.103.128.0/20 +117.104.168.0/21 +117.106.0.0/15 +117.112.0.0/13 +117.120.64.0/18 +117.120.128.0/17 +117.121.0.0/17 +117.121.128.0/18 +117.121.192.0/21 +117.122.128.0/17 +117.124.0.0/14 +117.128.0.0/10 +118.24.0.0/15 +118.26.0.0/16 +118.28.0.0/14 +118.64.0.0/15 +118.66.0.0/16 +118.67.112.0/20 +118.72.0.0/13 +118.80.0.0/15 +118.84.0.0/15 +118.88.32.0/19 +118.88.64.0/18 +118.88.128.0/17 +118.89.0.0/16 +118.91.240.0/20 +118.102.16.0/20 +118.102.32.0/21 +118.103.164.0/22 +118.103.168.0/21 +118.103.176.0/22 +118.103.245.0/24 +118.103.246.0/23 +118.107.180.0/22 +118.112.0.0/13 +118.120.0.0/14 +118.124.0.0/15 +118.126.0.0/16 +118.127.128.0/19 +118.132.0.0/14 +118.144.0.0/14 +118.178.0.0/16 +118.180.0.0/14 +118.184.0.0/16 +118.186.0.0/15 +118.188.0.0/16 +118.190.0.0/15 +118.192.0.0/16 +118.193.0.0/20 +118.193.32.0/19 +118.193.64.0/20 +118.193.96.0/19 +118.193.128.0/17 +118.194.0.0/15 +118.196.0.0/14 +118.202.0.0/15 +118.204.0.0/14 +118.212.0.0/15 +118.215.192.0/18 +118.224.0.0/14 +118.228.0.0/15 +118.230.0.0/16 +118.239.0.0/16 +118.242.0.0/16 +118.244.0.0/14 +118.248.0.0/13 +119.0.0.0/15 +119.2.0.0/19 +119.2.128.0/17 +119.3.0.0/16 +119.4.0.0/14 +119.8.0.0/16 +119.10.0.0/17 +119.15.136.0/21 +119.16.0.0/16 +119.18.192.0/20 +119.18.208.0/21 +119.18.224.0/19 +119.19.0.0/16 +119.20.0.0/14 +119.27.64.0/18 +119.27.128.0/17 +119.28.0.0/15 +119.30.48.0/20 +119.31.192.0/19 +119.32.0.0/13 +119.40.0.0/18 +119.40.64.0/20 +119.40.128.0/17 +119.41.0.0/16 +119.42.0.0/19 +119.42.52.0/22 +119.42.128.0/20 +119.42.224.0/19 +119.44.0.0/15 +119.48.0.0/13 +119.57.0.0/16 +119.58.0.0/16 +119.59.128.0/17 +119.60.0.0/15 +119.62.0.0/16 +119.63.32.0/19 +119.75.208.0/20 +119.78.0.0/15 +119.80.0.0/16 +119.82.208.0/20 +119.84.0.0/14 +119.88.0.0/14 +119.96.0.0/13 +119.108.0.0/15 +119.112.0.0/12 +119.128.0.0/12 +119.144.0.0/14 +119.148.160.0/19 +119.151.192.0/18 +119.160.200.0/21 +119.161.120.0/21 +119.161.128.0/17 +119.162.0.0/15 +119.164.0.0/14 +119.176.0.0/12 +119.232.0.0/15 +119.235.128.0/18 +119.248.0.0/14 +119.252.96.0/21 +119.252.240.0/20 +119.253.0.0/16 +119.254.0.0/15 +120.0.0.0/12 +120.24.0.0/14 +120.30.0.0/15 +120.32.0.0/12 +120.48.0.0/15 +120.52.0.0/14 +120.64.0.0/13 +120.72.32.0/19 +120.72.128.0/17 +120.76.0.0/14 +120.80.0.0/13 +120.88.8.0/21 +120.90.0.0/15 +120.92.0.0/16 +120.94.0.0/15 +120.128.0.0/13 +120.136.16.0/21 +120.136.128.0/18 +120.137.0.0/17 +120.143.128.0/19 +120.192.0.0/10 +121.0.8.0/21 +121.0.16.0/20 +121.4.0.0/15 +121.8.0.0/13 +121.16.0.0/12 +121.32.0.0/13 +121.40.0.0/14 +121.46.0.0/18 +121.46.76.0/22 +121.46.128.0/17 +121.47.0.0/16 +121.48.0.0/15 +121.50.8.0/21 +121.51.0.0/16 +121.52.160.0/19 +121.52.208.0/20 +121.52.224.0/19 +121.54.176.0/21 +121.54.188.0/22 +121.55.0.0/18 +121.56.0.0/15 +121.58.0.0/17 +121.58.136.0/21 +121.58.144.0/20 +121.58.160.0/21 +121.59.0.0/16 +121.60.0.0/14 +121.68.0.0/14 +121.76.0.0/15 +121.79.128.0/18 +121.89.0.0/16 +121.100.128.0/17 +121.101.0.0/18 +121.101.208.0/20 +121.192.0.0/13 +121.200.192.0/21 +121.201.0.0/16 +121.204.0.0/14 +121.224.0.0/12 +121.248.0.0/14 +121.255.0.0/16 +122.0.64.0/18 +122.0.128.0/17 +122.4.0.0/14 +122.8.0.0/15 +122.10.128.0/17 +122.11.0.0/17 +122.12.0.0/15 +122.14.0.0/16 +122.48.0.0/16 +122.49.0.0/18 +122.51.0.0/16 +122.64.0.0/11 +122.96.0.0/15 +122.98.144.0/20 +122.98.160.0/21 +122.98.172.0/22 +122.98.176.0/20 +122.98.192.0/21 +122.98.232.0/21 +122.98.240.0/20 +122.102.0.0/20 +122.102.64.0/19 +122.112.0.0/14 +122.119.0.0/16 +122.128.100.0/22 +122.128.120.0/21 +122.136.0.0/13 +122.144.128.0/17 +122.152.192.0/18 +122.156.0.0/14 +122.188.0.0/14 +122.192.0.0/14 +122.198.0.0/16 +122.200.40.0/21 +122.200.64.0/18 +122.201.48.0/20 +122.204.0.0/14 +122.224.0.0/12 +122.240.0.0/13 +122.248.24.0/21 +122.248.48.0/20 +122.255.64.0/21 +123.0.128.0/18 +123.4.0.0/14 +123.8.0.0/13 +123.49.128.0/17 +123.50.160.0/19 +123.52.0.0/14 +123.56.0.0/14 +123.60.0.0/15 +123.62.0.0/16 +123.64.0.0/11 +123.96.0.0/15 +123.98.0.0/17 +123.99.128.0/17 +123.100.0.0/19 +123.100.232.0/24 +123.101.0.0/16 +123.103.0.0/17 +123.108.128.0/20 +123.108.208.0/20 +123.112.0.0/12 +123.128.0.0/13 +123.136.80.0/20 +123.137.0.0/16 +123.138.0.0/15 +123.144.0.0/12 +123.160.0.0/12 +123.176.60.0/22 +123.176.80.0/20 +123.177.0.0/16 +123.178.0.0/15 +123.180.0.0/14 +123.184.0.0/13 +123.196.0.0/15 +123.199.128.0/17 +123.206.0.0/15 +123.232.0.0/14 +123.242.0.0/17 +123.242.192.0/21 +123.244.0.0/14 +123.249.0.0/16 +123.253.0.0/16 +123.254.96.0/21 +124.6.64.0/18 +124.14.0.0/15 +124.16.0.0/15 +124.20.0.0/14 +124.28.192.0/18 +124.29.0.0/17 +124.31.0.0/16 +124.40.112.0/20 +124.40.128.0/18 +124.40.192.0/19 +124.40.240.0/22 +124.42.0.0/16 +124.47.0.0/18 +124.64.0.0/15 +124.66.0.0/17 +124.67.0.0/16 +124.68.0.0/14 +124.72.0.0/13 +124.88.0.0/13 +124.108.8.0/21 +124.108.40.0/21 +124.109.96.0/21 +124.112.0.0/13 +124.126.0.0/15 +124.128.0.0/13 +124.147.128.0/17 +124.150.137.0/24 +124.151.0.0/16 +124.152.0.0/16 +124.156.0.0/16 +124.160.0.0/13 +124.172.0.0/14 +124.192.0.0/15 +124.196.0.0/16 +124.200.0.0/13 +124.220.0.0/14 +124.224.0.0/12 +124.240.0.0/17 +124.240.128.0/18 +124.242.0.0/16 +124.243.192.0/18 +124.248.0.0/17 +124.249.0.0/16 +124.250.0.0/15 +124.254.0.0/18 +125.31.192.0/18 +125.32.0.0/12 +125.58.128.0/17 +125.61.128.0/17 +125.62.0.0/18 +125.64.0.0/11 +125.96.0.0/15 +125.98.0.0/16 +125.104.0.0/13 +125.112.0.0/12 +125.169.0.0/16 +125.171.0.0/16 +125.208.0.0/18 +125.210.0.0/15 +125.213.0.0/17 +125.214.96.0/19 +125.215.0.0/18 +125.216.0.0/13 +125.254.128.0/17 +128.108.0.0/16 +129.28.0.0/16 +129.204.0.0/16 +129.211.0.0/16 +129.223.254.0/24 +129.226.0.0/16 +130.214.218.0/23 +131.228.96.0/24 +132.232.0.0/16 +132.237.134.0/24 +132.237.150.0/24 +134.175.0.0/16 +135.159.208.0/20 +135.244.80.0/20 +137.59.59.0/24 +137.59.88.0/22 +138.32.244.0/22 +139.5.56.0/21 +139.5.80.0/22 +139.5.92.0/22 +139.5.108.0/22 +139.5.128.0/22 +139.5.160.0/22 +139.5.192.0/22 +139.5.204.0/22 +139.5.208.0/21 +139.5.244.0/22 +139.9.0.0/16 +139.129.0.0/16 +139.148.0.0/16 +139.155.0.0/16 +139.159.0.0/16 +139.170.0.0/16 +139.176.0.0/16 +139.183.0.0/16 +139.186.0.0/16 +139.189.0.0/16 +139.196.0.0/14 +139.200.0.0/13 +139.208.0.0/13 +139.217.0.0/16 +139.219.0.0/16 +139.220.0.0/15 +139.224.0.0/16 +139.226.0.0/15 +140.75.0.0/16 +140.101.208.0/24 +140.143.0.0/16 +140.179.0.0/16 +140.205.0.0/16 +140.206.0.0/15 +140.210.0.0/16 +140.224.0.0/16 +140.237.0.0/16 +140.240.0.0/16 +140.242.216.0/24 +140.242.223.0/24 +140.242.224.0/24 +140.243.0.0/16 +140.246.0.0/16 +140.249.0.0/16 +140.250.0.0/16 +140.255.0.0/16 +144.0.0.0/16 +144.7.0.0/16 +144.12.0.0/16 +144.36.146.0/23 +144.48.8.0/21 +144.48.64.0/22 +144.48.88.0/22 +144.48.156.0/22 +144.48.180.0/22 +144.48.184.0/22 +144.48.204.0/22 +144.48.208.0/21 +144.48.220.0/22 +144.48.252.0/22 +144.52.0.0/16 +144.123.0.0/16 +144.211.80.0/24 +144.211.138.0/24 +144.255.0.0/16 +146.56.192.0/18 +146.196.56.0/22 +146.196.68.0/22 +146.196.72.0/22 +146.196.92.0/22 +146.196.112.0/21 +146.196.124.0/22 +146.217.137.0/24 +146.222.79.0/24 +146.222.81.0/24 +146.222.94.0/24 +148.70.0.0/16 +150.0.0.0/16 +150.115.0.0/16 +150.121.0.0/16 +150.122.0.0/16 +150.129.136.0/22 +150.129.192.0/22 +150.129.216.0/22 +150.129.252.0/22 +150.138.0.0/15 +150.223.0.0/16 +150.242.0.0/21 +150.242.8.0/22 +150.242.28.0/22 +150.242.44.0/22 +150.242.48.0/21 +150.242.56.0/22 +150.242.76.0/22 +150.242.80.0/22 +150.242.92.0/22 +150.242.96.0/22 +150.242.112.0/21 +150.242.120.0/22 +150.242.152.0/21 +150.242.160.0/21 +150.242.168.0/22 +150.242.184.0/21 +150.242.192.0/22 +150.242.212.0/22 +150.242.224.0/20 +150.242.240.0/21 +150.242.248.0/22 +150.255.0.0/16 +152.104.128.0/17 +152.136.0.0/16 +153.0.0.0/16 +153.3.0.0/16 +153.34.0.0/15 +153.36.0.0/15 +153.99.0.0/16 +153.101.0.0/16 +153.118.0.0/15 +154.8.128.0/17 +156.107.160.0/24 +156.107.170.0/24 +157.0.0.0/16 +157.18.0.0/16 +157.61.0.0/16 +157.119.0.0/22 +157.119.8.0/21 +157.119.16.0/22 +157.119.28.0/22 +157.119.68.0/22 +157.119.112.0/22 +157.119.132.0/22 +157.119.136.0/21 +157.119.144.0/20 +157.119.160.0/21 +157.119.172.0/22 +157.119.192.0/21 +157.119.240.0/22 +157.119.252.0/22 +157.122.0.0/16 +157.133.186.0/23 +157.133.192.0/21 +157.133.212.0/24 +157.133.236.0/24 +157.148.0.0/16 +157.156.0.0/16 +157.255.0.0/16 +159.75.0.0/16 +159.153.120.0/22 +159.226.0.0/16 +160.19.208.0/21 +160.19.216.0/22 +160.20.48.0/22 +160.62.10.0/24 +160.83.109.0/24 +160.83.110.0/23 +160.202.60.0/22 +160.202.148.0/22 +160.202.152.0/22 +160.202.168.0/22 +160.202.212.0/22 +160.202.216.0/21 +160.202.224.0/19 +160.238.64.0/22 +161.163.0.0/21 +161.163.28.0/23 +161.163.176.0/24 +161.163.178.0/23 +161.163.180.0/22 +161.189.0.0/16 +161.207.0.0/16 +162.14.0.0/16 +162.62.32.0/19 +162.62.64.0/18 +162.62.132.0/22 +162.62.136.0/21 +162.62.144.0/20 +162.62.160.0/19 +162.62.192.0/18 +162.105.0.0/16 +163.0.0.0/16 +163.47.4.0/22 +163.53.0.0/20 +163.53.36.0/22 +163.53.40.0/21 +163.53.48.0/20 +163.53.64.0/22 +163.53.88.0/21 +163.53.96.0/19 +163.53.128.0/21 +163.53.136.0/22 +163.53.160.0/20 +163.53.188.0/22 +163.53.220.0/22 +163.53.236.0/22 +163.53.240.0/22 +163.125.0.0/16 +163.142.0.0/16 +163.177.0.0/16 +163.179.0.0/16 +163.204.0.0/16 +163.244.246.0/24 +164.52.0.0/17 +165.156.30.0/24 +166.111.0.0/16 +167.139.0.0/16 +167.189.0.0/16 +167.220.244.0/22 +168.159.144.0/21 +168.159.152.0/22 +168.159.156.0/23 +168.159.158.0/24 +168.160.0.0/16 +168.230.0.0/24 +170.179.0.0/16 +170.225.224.0/23 +170.252.152.0/21 +171.8.0.0/13 +171.34.0.0/15 +171.36.0.0/14 +171.40.0.0/13 +171.80.0.0/12 +171.104.0.0/13 +171.112.0.0/12 +171.208.0.0/12 +172.81.192.0/18 +175.0.0.0/12 +175.16.0.0/13 +175.24.0.0/14 +175.30.0.0/15 +175.42.0.0/15 +175.44.0.0/16 +175.46.0.0/15 +175.48.0.0/12 +175.64.0.0/11 +175.102.0.0/16 +175.106.128.0/17 +175.111.108.0/22 +175.111.144.0/20 +175.111.160.0/20 +175.111.184.0/22 +175.146.0.0/15 +175.148.0.0/14 +175.152.0.0/14 +175.158.96.0/22 +175.160.0.0/12 +175.176.156.0/22 +175.176.176.0/22 +175.176.188.0/22 +175.176.192.0/22 +175.178.0.0/16 +175.184.128.0/18 +175.185.0.0/16 +175.186.0.0/15 +175.188.0.0/14 +180.76.0.0/14 +180.84.0.0/15 +180.86.0.0/16 +180.88.0.0/14 +180.94.56.0/21 +180.94.96.0/20 +180.94.120.0/21 +180.95.128.0/17 +180.96.0.0/11 +180.129.128.0/17 +180.130.0.0/16 +180.136.0.0/13 +180.148.16.0/21 +180.148.152.0/21 +180.148.216.0/21 +180.148.224.0/19 +180.149.128.0/19 +180.149.236.0/22 +180.150.160.0/19 +180.152.0.0/13 +180.160.0.0/12 +180.178.112.0/21 +180.178.192.0/18 +180.184.0.0/14 +180.188.0.0/17 +180.189.148.0/22 +180.200.252.0/22 +180.201.0.0/16 +180.202.0.0/15 +180.208.0.0/15 +180.210.212.0/22 +180.210.224.0/19 +180.212.0.0/15 +180.222.224.0/19 +180.223.0.0/16 +180.233.0.0/18 +180.233.64.0/19 +180.233.144.0/22 +180.235.64.0/19 +180.235.112.0/22 +180.235.136.0/22 +182.16.144.0/21 +182.16.192.0/19 +182.18.0.0/17 +182.23.184.0/21 +182.23.200.0/21 +182.32.0.0/12 +182.48.96.0/19 +182.49.0.0/16 +182.50.0.0/20 +182.50.112.0/20 +182.51.0.0/16 +182.54.0.0/17 +182.54.244.0/22 +182.61.0.0/16 +182.80.0.0/13 +182.88.0.0/14 +182.92.0.0/16 +182.96.0.0/11 +182.128.0.0/12 +182.144.0.0/13 +182.157.0.0/16 +182.160.64.0/19 +182.174.0.0/15 +182.200.0.0/13 +182.236.128.0/17 +182.237.24.0/21 +182.238.0.0/16 +182.239.0.0/19 +182.240.0.0/13 +182.254.0.0/16 +182.255.36.0/22 +182.255.60.0/22 +183.0.0.0/10 +183.64.0.0/13 +183.78.160.0/21 +183.78.180.0/22 +183.81.172.0/22 +183.81.180.0/22 +183.84.0.0/15 +183.91.128.0/22 +183.91.136.0/21 +183.91.144.0/20 +183.92.0.0/14 +183.128.0.0/11 +183.160.0.0/13 +183.168.0.0/15 +183.170.0.0/16 +183.172.0.0/14 +183.182.0.0/19 +183.184.0.0/13 +183.192.0.0/10 +185.109.236.0/24 +185.252.218.0/23 +188.131.128.0/17 +192.11.23.0/24 +192.11.26.0/24 +192.11.39.0/24 +192.11.236.0/24 +192.23.191.0/24 +192.55.10.0/23 +192.55.40.0/24 +192.55.46.0/24 +192.55.68.0/22 +192.102.204.0/22 +192.124.154.0/24 +192.137.31.0/24 +192.139.135.0/24 +192.139.136.0/24 +192.140.128.0/21 +192.140.136.0/22 +192.140.156.0/22 +192.140.160.0/19 +192.140.192.0/20 +192.140.208.0/21 +192.144.128.0/17 +192.163.11.0/24 +192.232.97.0/24 +193.20.64.0/22 +193.22.14.0/23 +193.112.0.0/16 +194.138.202.0/23 +198.175.100.0/22 +198.208.17.0/24 +199.7.72.0/24 +199.65.192.0/21 +199.244.144.0/24 +202.0.100.0/23 +202.0.122.0/23 +202.0.176.0/22 +202.1.105.0/24 +202.1.106.0/24 +202.3.128.0/23 +202.4.128.0/19 +202.4.252.0/22 +202.5.208.0/21 +202.5.216.0/22 +202.6.6.0/23 +202.6.66.0/23 +202.6.72.0/23 +202.6.87.0/24 +202.6.88.0/23 +202.6.92.0/23 +202.6.103.0/24 +202.6.108.0/24 +202.6.110.0/23 +202.6.114.0/24 +202.6.176.0/20 +202.8.0.0/24 +202.8.2.0/23 +202.8.4.0/23 +202.8.12.0/24 +202.8.24.0/24 +202.8.77.0/24 +202.8.128.0/19 +202.8.192.0/20 +202.9.32.0/24 +202.9.34.0/23 +202.9.48.0/23 +202.9.51.0/24 +202.9.52.0/23 +202.9.54.0/24 +202.9.57.0/24 +202.9.58.0/23 +202.10.64.0/20 +202.10.112.0/20 +202.12.1.0/24 +202.12.2.0/24 +202.12.17.0/24 +202.12.18.0/23 +202.12.72.0/24 +202.12.84.0/23 +202.12.96.0/24 +202.12.98.0/23 +202.12.106.0/24 +202.12.111.0/24 +202.12.116.0/24 +202.14.64.0/23 +202.14.69.0/24 +202.14.73.0/24 +202.14.74.0/23 +202.14.76.0/24 +202.14.78.0/23 +202.14.88.0/24 +202.14.97.0/24 +202.14.104.0/23 +202.14.108.0/23 +202.14.111.0/24 +202.14.114.0/23 +202.14.118.0/23 +202.14.124.0/23 +202.14.127.0/24 +202.14.129.0/24 +202.14.135.0/24 +202.14.136.0/24 +202.14.149.0/24 +202.14.151.0/24 +202.14.157.0/24 +202.14.158.0/23 +202.14.169.0/24 +202.14.170.0/23 +202.14.172.0/22 +202.14.176.0/24 +202.14.184.0/23 +202.14.208.0/23 +202.14.213.0/24 +202.14.219.0/24 +202.14.220.0/24 +202.14.222.0/23 +202.14.225.0/24 +202.14.226.0/23 +202.14.231.0/24 +202.14.235.0/24 +202.14.236.0/22 +202.14.246.0/24 +202.14.251.0/24 +202.20.66.0/24 +202.20.79.0/24 +202.20.87.0/24 +202.20.88.0/23 +202.20.90.0/24 +202.20.94.0/23 +202.20.114.0/24 +202.20.117.0/24 +202.20.120.0/24 +202.20.125.0/24 +202.20.126.0/23 +202.21.48.0/20 +202.21.131.0/24 +202.21.132.0/24 +202.21.141.0/24 +202.21.142.0/24 +202.21.147.0/24 +202.21.148.0/24 +202.21.150.0/23 +202.21.152.0/23 +202.21.154.0/24 +202.21.156.0/24 +202.21.208.0/24 +202.22.248.0/21 +202.27.12.0/24 +202.27.14.0/24 +202.27.136.0/23 +202.36.226.0/24 +202.38.0.0/22 +202.38.8.0/21 +202.38.48.0/20 +202.38.64.0/18 +202.38.128.0/21 +202.38.136.0/23 +202.38.138.0/24 +202.38.140.0/22 +202.38.146.0/23 +202.38.149.0/24 +202.38.150.0/23 +202.38.152.0/22 +202.38.156.0/24 +202.38.158.0/23 +202.38.160.0/23 +202.38.164.0/22 +202.38.168.0/22 +202.38.176.0/23 +202.38.184.0/21 +202.38.192.0/18 +202.40.4.0/23 +202.40.7.0/24 +202.40.15.0/24 +202.40.135.0/24 +202.40.136.0/24 +202.40.140.0/24 +202.40.143.0/24 +202.40.144.0/23 +202.40.150.0/24 +202.40.155.0/24 +202.40.156.0/24 +202.40.158.0/23 +202.40.162.0/24 +202.41.8.0/23 +202.41.11.0/24 +202.41.12.0/23 +202.41.128.0/24 +202.41.130.0/23 +202.41.142.0/24 +202.41.152.0/21 +202.41.192.0/24 +202.41.196.0/22 +202.41.200.0/22 +202.41.240.0/20 +202.43.76.0/22 +202.43.144.0/20 +202.44.16.0/20 +202.44.48.0/22 +202.44.67.0/24 +202.44.74.0/24 +202.44.97.0/24 +202.44.129.0/24 +202.44.132.0/23 +202.44.146.0/23 +202.45.0.0/23 +202.45.2.0/24 +202.45.15.0/24 +202.45.16.0/20 +202.46.16.0/23 +202.46.18.0/24 +202.46.20.0/23 +202.46.32.0/19 +202.46.128.0/24 +202.46.224.0/20 +202.47.82.0/23 +202.47.96.0/20 +202.47.126.0/24 +202.47.128.0/24 +202.47.130.0/23 +202.52.33.0/24 +202.52.34.0/24 +202.52.47.0/24 +202.52.143.0/24 +202.53.140.0/24 +202.53.143.0/24 +202.57.192.0/20 +202.57.212.0/22 +202.57.216.0/22 +202.57.240.0/20 +202.58.0.0/24 +202.58.104.0/22 +202.58.112.0/22 +202.59.0.0/23 +202.59.212.0/22 +202.59.236.0/24 +202.59.240.0/24 +202.60.48.0/21 +202.60.96.0/21 +202.60.112.0/20 +202.60.132.0/22 +202.60.136.0/21 +202.60.144.0/20 +202.61.68.0/22 +202.61.76.0/22 +202.61.88.0/22 +202.61.123.0/24 +202.61.127.0/24 +202.62.112.0/22 +202.62.248.0/22 +202.62.252.0/24 +202.62.255.0/24 +202.63.80.0/20 +202.63.160.0/19 +202.63.248.0/22 +202.63.253.0/24 +202.65.0.0/21 +202.65.8.0/23 +202.65.96.0/20 +202.66.168.0/22 +202.67.0.0/22 +202.69.4.0/22 +202.69.16.0/20 +202.70.0.0/19 +202.70.96.0/20 +202.70.192.0/20 +202.71.32.0/20 +202.72.40.0/21 +202.72.80.0/20 +202.72.112.0/20 +202.73.128.0/22 +202.73.240.0/20 +202.74.8.0/21 +202.74.36.0/24 +202.74.42.0/24 +202.74.52.0/24 +202.74.80.0/20 +202.74.232.0/22 +202.74.254.0/23 +202.75.208.0/20 +202.75.252.0/22 +202.76.247.0/24 +202.76.252.0/22 +202.77.80.0/21 +202.77.92.0/22 +202.78.8.0/21 +202.79.224.0/21 +202.79.248.0/22 +202.80.192.0/20 +202.81.0.0/22 +202.81.176.0/20 +202.83.252.0/22 +202.84.0.0/20 +202.84.16.0/23 +202.84.22.0/24 +202.84.24.0/21 +202.85.208.0/20 +202.86.249.0/24 +202.86.252.0/22 +202.87.80.0/20 +202.88.32.0/22 +202.89.8.0/21 +202.89.96.0/22 +202.89.108.0/22 +202.89.119.0/24 +202.89.232.0/21 +202.90.0.0/22 +202.90.16.0/20 +202.90.37.0/24 +202.90.96.0/19 +202.90.193.0/24 +202.90.196.0/24 +202.90.205.0/24 +202.90.224.0/20 +202.91.0.0/22 +202.91.36.0/22 +202.91.96.0/20 +202.91.128.0/22 +202.91.176.0/20 +202.91.224.0/19 +202.92.0.0/22 +202.92.8.0/21 +202.92.48.0/20 +202.92.252.0/22 +202.93.0.0/22 +202.93.252.0/22 +202.94.0.0/19 +202.94.74.0/24 +202.94.81.0/24 +202.94.92.0/22 +202.95.0.0/19 +202.95.240.0/21 +202.95.252.0/22 +202.96.0.0/12 +202.112.0.0/13 +202.120.0.0/15 +202.122.0.0/21 +202.122.32.0/21 +202.122.64.0/19 +202.122.112.0/20 +202.122.128.0/24 +202.122.132.0/24 +202.123.96.0/20 +202.123.116.0/22 +202.123.120.0/22 +202.124.16.0/21 +202.124.24.0/22 +202.125.107.0/24 +202.125.109.0/24 +202.125.112.0/20 +202.125.176.0/20 +202.127.0.0/21 +202.127.12.0/22 +202.127.16.0/20 +202.127.40.0/21 +202.127.48.0/20 +202.127.112.0/20 +202.127.128.0/19 +202.127.160.0/21 +202.127.192.0/20 +202.127.208.0/23 +202.127.212.0/22 +202.127.216.0/21 +202.127.224.0/19 +202.129.208.0/24 +202.130.0.0/19 +202.130.39.0/24 +202.130.224.0/19 +202.131.16.0/21 +202.131.48.0/20 +202.131.208.0/20 +202.133.32.0/20 +202.134.58.0/24 +202.134.128.0/20 +202.134.208.0/20 +202.136.48.0/20 +202.136.208.0/20 +202.136.224.0/20 +202.136.248.0/22 +202.136.254.0/23 +202.137.231.0/24 +202.140.140.0/22 +202.140.144.0/20 +202.141.160.0/19 +202.142.16.0/20 +202.143.4.0/22 +202.143.16.0/20 +202.143.32.0/20 +202.143.56.0/21 +202.143.100.0/22 +202.143.104.0/22 +202.144.196.0/22 +202.146.160.0/20 +202.146.186.0/24 +202.146.188.0/22 +202.146.196.0/22 +202.146.200.0/21 +202.147.144.0/20 +202.148.32.0/20 +202.148.64.0/18 +202.149.32.0/19 +202.149.160.0/19 +202.149.224.0/19 +202.150.16.0/20 +202.150.32.0/20 +202.150.56.0/22 +202.150.192.0/20 +202.150.224.0/19 +202.151.0.0/22 +202.151.33.0/24 +202.151.128.0/19 +202.152.176.0/20 +202.153.0.0/22 +202.153.7.0/24 +202.153.48.0/20 +202.157.192.0/19 +202.158.160.0/19 +202.158.242.0/24 +202.160.140.0/22 +202.160.156.0/22 +202.160.176.0/20 +202.162.67.0/24 +202.162.75.0/24 +202.164.0.0/20 +202.164.96.0/19 +202.165.96.0/21 +202.165.104.0/22 +202.165.176.0/20 +202.165.208.0/20 +202.165.239.0/24 +202.165.240.0/23 +202.165.243.0/24 +202.165.245.0/24 +202.165.251.0/24 +202.165.252.0/22 +202.166.224.0/19 +202.168.80.0/22 +202.168.128.0/20 +202.168.160.0/19 +202.170.128.0/19 +202.170.216.0/21 +202.170.224.0/19 +202.171.216.0/21 +202.171.232.0/24 +202.171.235.0/24 +202.172.0.0/22 +202.172.7.0/24 +202.173.0.0/22 +202.173.6.0/24 +202.173.8.0/21 +202.173.112.0/22 +202.173.120.0/22 +202.173.224.0/19 +202.174.64.0/20 +202.174.124.0/22 +202.176.224.0/19 +202.179.160.0/20 +202.179.240.0/20 +202.180.128.0/19 +202.180.208.0/21 +202.181.8.0/22 +202.181.28.0/22 +202.181.112.0/20 +202.182.32.0/20 +202.182.192.0/19 +202.189.0.0/18 +202.189.80.0/20 +202.189.184.0/21 +202.191.0.0/24 +202.191.68.0/22 +202.191.72.0/21 +202.191.80.0/20 +202.192.0.0/12 +203.0.4.0/22 +203.0.10.0/23 +203.0.18.0/24 +203.0.24.0/24 +203.0.42.0/23 +203.0.45.0/24 +203.0.46.0/23 +203.0.81.0/24 +203.0.82.0/23 +203.0.90.0/23 +203.0.96.0/23 +203.0.104.0/21 +203.0.114.0/23 +203.0.122.0/24 +203.0.128.0/24 +203.0.130.0/23 +203.0.132.0/22 +203.0.137.0/24 +203.0.142.0/24 +203.0.144.0/24 +203.0.146.0/24 +203.0.148.0/24 +203.0.150.0/23 +203.0.152.0/24 +203.0.177.0/24 +203.0.224.0/24 +203.1.4.0/22 +203.1.18.0/24 +203.1.26.0/23 +203.1.65.0/24 +203.1.66.0/23 +203.1.70.0/23 +203.1.76.0/23 +203.1.90.0/24 +203.1.97.0/24 +203.1.98.0/23 +203.1.100.0/22 +203.1.108.0/24 +203.1.253.0/24 +203.1.254.0/24 +203.2.64.0/21 +203.2.73.0/24 +203.2.112.0/21 +203.2.126.0/23 +203.2.140.0/24 +203.2.150.0/24 +203.2.152.0/22 +203.2.156.0/23 +203.2.160.0/21 +203.2.180.0/23 +203.2.196.0/23 +203.2.209.0/24 +203.2.214.0/23 +203.2.226.0/23 +203.2.229.0/24 +203.2.236.0/23 +203.3.68.0/24 +203.3.72.0/23 +203.3.75.0/24 +203.3.80.0/21 +203.3.96.0/22 +203.3.105.0/24 +203.3.112.0/21 +203.3.120.0/24 +203.3.123.0/24 +203.3.135.0/24 +203.3.139.0/24 +203.3.143.0/24 +203.4.132.0/23 +203.4.134.0/24 +203.4.151.0/24 +203.4.152.0/22 +203.4.174.0/23 +203.4.180.0/24 +203.4.186.0/24 +203.4.205.0/24 +203.4.208.0/22 +203.4.227.0/24 +203.4.230.0/23 +203.5.4.0/23 +203.5.7.0/24 +203.5.8.0/23 +203.5.11.0/24 +203.5.21.0/24 +203.5.22.0/24 +203.5.44.0/24 +203.5.46.0/23 +203.5.52.0/22 +203.5.56.0/23 +203.5.60.0/23 +203.5.114.0/23 +203.5.118.0/24 +203.5.120.0/24 +203.5.172.0/24 +203.5.180.0/23 +203.5.182.0/24 +203.5.185.0/24 +203.5.186.0/24 +203.5.188.0/23 +203.5.190.0/24 +203.5.195.0/24 +203.5.214.0/23 +203.5.218.0/23 +203.6.131.0/24 +203.6.136.0/24 +203.6.138.0/23 +203.6.142.0/24 +203.6.150.0/23 +203.6.157.0/24 +203.6.159.0/24 +203.6.224.0/20 +203.6.248.0/23 +203.7.129.0/24 +203.7.138.0/23 +203.7.147.0/24 +203.7.150.0/23 +203.7.158.0/24 +203.7.192.0/23 +203.7.200.0/24 +203.8.0.0/24 +203.8.8.0/24 +203.8.23.0/24 +203.8.24.0/21 +203.8.70.0/24 +203.8.82.0/24 +203.8.86.0/23 +203.8.91.0/24 +203.8.110.0/23 +203.8.115.0/24 +203.8.166.0/23 +203.8.169.0/24 +203.8.173.0/24 +203.8.184.0/24 +203.8.186.0/23 +203.8.190.0/23 +203.8.192.0/24 +203.8.197.0/24 +203.8.198.0/23 +203.8.203.0/24 +203.8.209.0/24 +203.8.210.0/23 +203.8.212.0/22 +203.8.217.0/24 +203.8.220.0/24 +203.9.32.0/24 +203.9.36.0/23 +203.9.57.0/24 +203.9.63.0/24 +203.9.65.0/24 +203.9.70.0/23 +203.9.72.0/24 +203.9.75.0/24 +203.9.76.0/23 +203.9.96.0/22 +203.9.100.0/23 +203.9.108.0/24 +203.9.158.0/24 +203.10.34.0/24 +203.10.56.0/24 +203.10.74.0/23 +203.10.84.0/22 +203.10.88.0/24 +203.10.95.0/24 +203.10.125.0/24 +203.11.70.0/24 +203.11.76.0/22 +203.11.82.0/24 +203.11.84.0/22 +203.11.100.0/22 +203.11.109.0/24 +203.11.117.0/24 +203.11.122.0/24 +203.11.126.0/24 +203.11.136.0/22 +203.11.141.0/24 +203.11.142.0/23 +203.11.180.0/22 +203.11.208.0/22 +203.12.16.0/24 +203.12.19.0/24 +203.12.24.0/24 +203.12.57.0/24 +203.12.65.0/24 +203.12.66.0/24 +203.12.70.0/23 +203.12.87.0/24 +203.12.88.0/21 +203.12.100.0/23 +203.12.103.0/24 +203.12.114.0/24 +203.12.118.0/24 +203.12.130.0/24 +203.12.137.0/24 +203.12.196.0/22 +203.12.200.0/21 +203.12.211.0/24 +203.12.219.0/24 +203.12.226.0/24 +203.12.240.0/22 +203.13.18.0/24 +203.13.24.0/24 +203.13.44.0/23 +203.13.80.0/21 +203.13.88.0/23 +203.13.92.0/22 +203.13.173.0/24 +203.13.224.0/23 +203.13.227.0/24 +203.13.233.0/24 +203.14.24.0/22 +203.14.33.0/24 +203.14.56.0/24 +203.14.61.0/24 +203.14.62.0/24 +203.14.104.0/24 +203.14.114.0/23 +203.14.118.0/24 +203.14.162.0/24 +203.14.184.0/21 +203.14.192.0/24 +203.14.194.0/23 +203.14.214.0/24 +203.14.231.0/24 +203.14.246.0/24 +203.15.0.0/20 +203.15.20.0/23 +203.15.22.0/24 +203.15.87.0/24 +203.15.88.0/23 +203.15.105.0/24 +203.15.112.0/21 +203.15.130.0/23 +203.15.149.0/24 +203.15.151.0/24 +203.15.156.0/22 +203.15.174.0/24 +203.15.227.0/24 +203.15.232.0/21 +203.15.240.0/23 +203.15.246.0/24 +203.16.10.0/24 +203.16.12.0/23 +203.16.16.0/21 +203.16.27.0/24 +203.16.38.0/24 +203.16.49.0/24 +203.16.50.0/23 +203.16.58.0/24 +203.16.63.0/24 +203.16.133.0/24 +203.16.161.0/24 +203.16.162.0/24 +203.16.186.0/23 +203.16.228.0/24 +203.16.238.0/24 +203.16.240.0/24 +203.16.245.0/24 +203.17.2.0/24 +203.17.18.0/24 +203.17.28.0/24 +203.17.39.0/24 +203.17.56.0/24 +203.17.74.0/23 +203.17.88.0/23 +203.17.136.0/24 +203.17.164.0/24 +203.17.187.0/24 +203.17.190.0/23 +203.17.231.0/24 +203.17.233.0/24 +203.17.248.0/23 +203.17.255.0/24 +203.18.2.0/23 +203.18.4.0/24 +203.18.7.0/24 +203.18.31.0/24 +203.18.37.0/24 +203.18.48.0/23 +203.18.52.0/24 +203.18.72.0/22 +203.18.80.0/23 +203.18.87.0/24 +203.18.100.0/23 +203.18.105.0/24 +203.18.107.0/24 +203.18.110.0/24 +203.18.129.0/24 +203.18.131.0/24 +203.18.132.0/23 +203.18.144.0/24 +203.18.153.0/24 +203.18.199.0/24 +203.18.208.0/24 +203.18.211.0/24 +203.18.215.0/24 +203.19.1.0/24 +203.19.18.0/24 +203.19.24.0/24 +203.19.30.0/24 +203.19.32.0/21 +203.19.41.0/24 +203.19.44.0/23 +203.19.46.0/24 +203.19.58.0/24 +203.19.60.0/23 +203.19.64.0/24 +203.19.68.0/24 +203.19.72.0/24 +203.19.101.0/24 +203.19.111.0/24 +203.19.131.0/24 +203.19.133.0/24 +203.19.144.0/24 +203.19.147.0/24 +203.19.149.0/24 +203.19.156.0/24 +203.19.176.0/24 +203.19.178.0/23 +203.19.208.0/24 +203.19.228.0/22 +203.19.233.0/24 +203.19.242.0/24 +203.19.248.0/23 +203.19.255.0/24 +203.20.17.0/24 +203.20.40.0/23 +203.20.44.0/24 +203.20.48.0/24 +203.20.61.0/24 +203.20.65.0/24 +203.20.84.0/23 +203.20.89.0/24 +203.20.106.0/23 +203.20.115.0/24 +203.20.117.0/24 +203.20.118.0/23 +203.20.122.0/24 +203.20.126.0/23 +203.20.135.0/24 +203.20.136.0/21 +203.20.150.0/24 +203.20.230.0/24 +203.20.232.0/24 +203.20.236.0/24 +203.21.0.0/23 +203.21.2.0/24 +203.21.8.0/24 +203.21.10.0/24 +203.21.18.0/24 +203.21.33.0/24 +203.21.34.0/24 +203.21.41.0/24 +203.21.44.0/24 +203.21.68.0/24 +203.21.82.0/24 +203.21.96.0/22 +203.21.124.0/24 +203.21.136.0/23 +203.21.145.0/24 +203.21.206.0/24 +203.22.24.0/24 +203.22.28.0/23 +203.22.31.0/24 +203.22.68.0/24 +203.22.76.0/24 +203.22.78.0/24 +203.22.84.0/24 +203.22.87.0/24 +203.22.92.0/22 +203.22.99.0/24 +203.22.106.0/24 +203.22.122.0/23 +203.22.131.0/24 +203.22.163.0/24 +203.22.166.0/24 +203.22.170.0/24 +203.22.176.0/21 +203.22.194.0/24 +203.22.242.0/23 +203.22.245.0/24 +203.22.246.0/24 +203.22.252.0/23 +203.23.0.0/24 +203.23.47.0/24 +203.23.61.0/24 +203.23.62.0/23 +203.23.73.0/24 +203.23.85.0/24 +203.23.92.0/22 +203.23.98.0/24 +203.23.107.0/24 +203.23.112.0/24 +203.23.130.0/24 +203.23.140.0/23 +203.23.172.0/24 +203.23.182.0/24 +203.23.186.0/23 +203.23.192.0/24 +203.23.197.0/24 +203.23.198.0/24 +203.23.204.0/22 +203.23.224.0/24 +203.23.226.0/23 +203.23.228.0/22 +203.23.249.0/24 +203.23.251.0/24 +203.24.13.0/24 +203.24.18.0/24 +203.24.27.0/24 +203.24.43.0/24 +203.24.56.0/24 +203.24.58.0/24 +203.24.67.0/24 +203.24.74.0/24 +203.24.79.0/24 +203.24.80.0/23 +203.24.84.0/23 +203.24.86.0/24 +203.24.90.0/24 +203.24.111.0/24 +203.24.112.0/24 +203.24.116.0/24 +203.24.122.0/23 +203.24.145.0/24 +203.24.152.0/23 +203.24.157.0/24 +203.24.161.0/24 +203.24.167.0/24 +203.24.186.0/23 +203.24.199.0/24 +203.24.202.0/24 +203.24.212.0/23 +203.24.217.0/24 +203.24.219.0/24 +203.24.244.0/24 +203.25.19.0/24 +203.25.20.0/23 +203.25.46.0/24 +203.25.48.0/21 +203.25.64.0/23 +203.25.91.0/24 +203.25.99.0/24 +203.25.100.0/24 +203.25.106.0/24 +203.25.131.0/24 +203.25.135.0/24 +203.25.138.0/24 +203.25.147.0/24 +203.25.153.0/24 +203.25.154.0/23 +203.25.164.0/24 +203.25.166.0/24 +203.25.174.0/23 +203.25.180.0/24 +203.25.182.0/24 +203.25.191.0/24 +203.25.199.0/24 +203.25.200.0/24 +203.25.202.0/23 +203.25.208.0/20 +203.25.229.0/24 +203.25.235.0/24 +203.25.236.0/24 +203.25.242.0/24 +203.26.12.0/24 +203.26.34.0/24 +203.26.49.0/24 +203.26.50.0/24 +203.26.55.0/24 +203.26.56.0/23 +203.26.60.0/24 +203.26.65.0/24 +203.26.68.0/24 +203.26.76.0/24 +203.26.80.0/24 +203.26.84.0/24 +203.26.97.0/24 +203.26.102.0/23 +203.26.115.0/24 +203.26.116.0/24 +203.26.129.0/24 +203.26.143.0/24 +203.26.144.0/24 +203.26.148.0/23 +203.26.154.0/24 +203.26.158.0/23 +203.26.161.0/24 +203.26.170.0/24 +203.26.173.0/24 +203.26.176.0/24 +203.26.185.0/24 +203.26.202.0/23 +203.26.210.0/24 +203.26.214.0/24 +203.26.222.0/24 +203.26.224.0/24 +203.26.228.0/24 +203.26.232.0/24 +203.27.0.0/24 +203.27.10.0/24 +203.27.15.0/24 +203.27.16.0/24 +203.27.20.0/24 +203.27.22.0/23 +203.27.40.0/24 +203.27.45.0/24 +203.27.53.0/24 +203.27.65.0/24 +203.27.66.0/24 +203.27.81.0/24 +203.27.88.0/24 +203.27.102.0/24 +203.27.109.0/24 +203.27.117.0/24 +203.27.121.0/24 +203.27.122.0/23 +203.27.125.0/24 +203.27.200.0/24 +203.27.202.0/24 +203.27.233.0/24 +203.27.241.0/24 +203.27.250.0/24 +203.28.10.0/24 +203.28.12.0/24 +203.28.33.0/24 +203.28.34.0/23 +203.28.43.0/24 +203.28.44.0/24 +203.28.54.0/24 +203.28.56.0/24 +203.28.73.0/24 +203.28.74.0/24 +203.28.76.0/24 +203.28.86.0/24 +203.28.88.0/24 +203.28.112.0/24 +203.28.131.0/24 +203.28.136.0/24 +203.28.140.0/24 +203.28.145.0/24 +203.28.165.0/24 +203.28.169.0/24 +203.28.170.0/24 +203.28.178.0/23 +203.28.185.0/24 +203.28.187.0/24 +203.28.196.0/24 +203.28.226.0/23 +203.28.239.0/24 +203.29.2.0/24 +203.29.8.0/23 +203.29.13.0/24 +203.29.14.0/24 +203.29.28.0/24 +203.29.46.0/24 +203.29.57.0/24 +203.29.61.0/24 +203.29.63.0/24 +203.29.69.0/24 +203.29.73.0/24 +203.29.81.0/24 +203.29.90.0/24 +203.29.95.0/24 +203.29.100.0/24 +203.29.103.0/24 +203.29.112.0/24 +203.29.120.0/22 +203.29.182.0/23 +203.29.187.0/24 +203.29.189.0/24 +203.29.190.0/24 +203.29.205.0/24 +203.29.210.0/24 +203.29.217.0/24 +203.29.227.0/24 +203.29.231.0/24 +203.29.233.0/24 +203.29.234.0/24 +203.29.248.0/24 +203.29.254.0/23 +203.30.16.0/23 +203.30.25.0/24 +203.30.27.0/24 +203.30.29.0/24 +203.30.66.0/24 +203.30.81.0/24 +203.30.87.0/24 +203.30.111.0/24 +203.30.121.0/24 +203.30.123.0/24 +203.30.152.0/24 +203.30.156.0/24 +203.30.162.0/24 +203.30.173.0/24 +203.30.175.0/24 +203.30.187.0/24 +203.30.194.0/24 +203.30.217.0/24 +203.30.220.0/24 +203.30.222.0/24 +203.30.232.0/23 +203.30.235.0/24 +203.30.240.0/23 +203.30.246.0/24 +203.30.250.0/23 +203.31.45.0/24 +203.31.46.0/24 +203.31.49.0/24 +203.31.51.0/24 +203.31.54.0/23 +203.31.69.0/24 +203.31.72.0/24 +203.31.80.0/24 +203.31.85.0/24 +203.31.97.0/24 +203.31.105.0/24 +203.31.106.0/24 +203.31.108.0/23 +203.31.124.0/24 +203.31.162.0/24 +203.31.174.0/24 +203.31.177.0/24 +203.31.181.0/24 +203.31.187.0/24 +203.31.189.0/24 +203.31.204.0/24 +203.31.220.0/24 +203.31.222.0/23 +203.31.225.0/24 +203.31.229.0/24 +203.31.248.0/23 +203.31.253.0/24 +203.32.20.0/24 +203.32.48.0/23 +203.32.56.0/24 +203.32.60.0/24 +203.32.62.0/24 +203.32.68.0/23 +203.32.76.0/24 +203.32.81.0/24 +203.32.84.0/23 +203.32.95.0/24 +203.32.102.0/24 +203.32.105.0/24 +203.32.130.0/24 +203.32.133.0/24 +203.32.140.0/24 +203.32.152.0/24 +203.32.186.0/23 +203.32.192.0/24 +203.32.196.0/24 +203.32.203.0/24 +203.32.204.0/23 +203.32.212.0/24 +203.33.4.0/24 +203.33.7.0/24 +203.33.8.0/21 +203.33.21.0/24 +203.33.26.0/24 +203.33.32.0/24 +203.33.63.0/24 +203.33.64.0/24 +203.33.67.0/24 +203.33.68.0/24 +203.33.73.0/24 +203.33.79.0/24 +203.33.100.0/24 +203.33.122.0/24 +203.33.129.0/24 +203.33.131.0/24 +203.33.145.0/24 +203.33.156.0/24 +203.33.158.0/23 +203.33.174.0/24 +203.33.185.0/24 +203.33.200.0/24 +203.33.202.0/23 +203.33.204.0/24 +203.33.206.0/23 +203.33.214.0/23 +203.33.224.0/23 +203.33.226.0/24 +203.33.233.0/24 +203.33.243.0/24 +203.33.250.0/24 +203.34.4.0/24 +203.34.21.0/24 +203.34.27.0/24 +203.34.39.0/24 +203.34.48.0/23 +203.34.54.0/24 +203.34.56.0/23 +203.34.67.0/24 +203.34.69.0/24 +203.34.76.0/24 +203.34.92.0/24 +203.34.106.0/24 +203.34.113.0/24 +203.34.147.0/24 +203.34.150.0/24 +203.34.152.0/23 +203.34.161.0/24 +203.34.162.0/24 +203.34.187.0/24 +203.34.192.0/21 +203.34.204.0/22 +203.34.232.0/24 +203.34.240.0/24 +203.34.242.0/24 +203.34.245.0/24 +203.34.251.0/24 +203.55.2.0/23 +203.55.4.0/24 +203.55.10.0/24 +203.55.13.0/24 +203.55.22.0/24 +203.55.30.0/24 +203.55.93.0/24 +203.55.101.0/24 +203.55.109.0/24 +203.55.110.0/24 +203.55.116.0/23 +203.55.119.0/24 +203.55.128.0/23 +203.55.146.0/23 +203.55.192.0/24 +203.55.196.0/24 +203.55.218.0/23 +203.55.221.0/24 +203.55.224.0/24 +203.56.1.0/24 +203.56.4.0/24 +203.56.12.0/24 +203.56.24.0/24 +203.56.38.0/24 +203.56.40.0/24 +203.56.46.0/24 +203.56.48.0/21 +203.56.68.0/23 +203.56.82.0/23 +203.56.84.0/23 +203.56.95.0/24 +203.56.110.0/24 +203.56.121.0/24 +203.56.161.0/24 +203.56.169.0/24 +203.56.172.0/23 +203.56.175.0/24 +203.56.183.0/24 +203.56.185.0/24 +203.56.187.0/24 +203.56.192.0/24 +203.56.198.0/24 +203.56.201.0/24 +203.56.208.0/23 +203.56.210.0/24 +203.56.214.0/24 +203.56.216.0/24 +203.56.227.0/24 +203.56.228.0/24 +203.56.231.0/24 +203.56.232.0/24 +203.56.240.0/24 +203.56.252.0/24 +203.56.254.0/24 +203.57.5.0/24 +203.57.6.0/24 +203.57.12.0/23 +203.57.28.0/24 +203.57.39.0/24 +203.57.46.0/24 +203.57.58.0/24 +203.57.61.0/24 +203.57.66.0/24 +203.57.69.0/24 +203.57.70.0/23 +203.57.73.0/24 +203.57.90.0/24 +203.57.101.0/24 +203.57.109.0/24 +203.57.123.0/24 +203.57.157.0/24 +203.57.200.0/24 +203.57.202.0/24 +203.57.206.0/24 +203.57.222.0/24 +203.57.224.0/20 +203.57.246.0/23 +203.57.249.0/24 +203.57.253.0/24 +203.57.254.0/23 +203.62.2.0/24 +203.62.131.0/24 +203.62.139.0/24 +203.62.161.0/24 +203.62.197.0/24 +203.62.228.0/22 +203.62.234.0/24 +203.62.246.0/24 +203.65.240.0/22 +203.76.160.0/22 +203.76.168.0/22 +203.76.208.0/21 +203.76.216.0/22 +203.76.240.0/21 +203.77.180.0/22 +203.78.48.0/20 +203.78.156.0/22 +203.79.0.0/20 +203.79.32.0/20 +203.80.4.0/23 +203.80.32.0/20 +203.80.57.0/24 +203.80.129.0/24 +203.80.132.0/22 +203.80.136.0/21 +203.80.144.0/20 +203.81.0.0/21 +203.81.16.0/20 +203.81.244.0/22 +203.82.0.0/23 +203.82.16.0/21 +203.82.112.0/20 +203.82.224.0/20 +203.83.0.0/22 +203.83.8.0/21 +203.83.56.0/21 +203.83.224.0/20 +203.86.0.0/17 +203.86.250.0/24 +203.86.254.0/23 +203.88.32.0/19 +203.88.192.0/19 +203.89.0.0/22 +203.89.8.0/21 +203.89.100.0/22 +203.89.133.0/24 +203.89.136.0/22 +203.89.144.0/24 +203.90.0.0/22 +203.90.8.0/21 +203.90.128.0/18 +203.90.192.0/19 +203.91.1.0/24 +203.91.32.0/19 +203.91.96.0/20 +203.91.120.0/21 +203.92.0.0/22 +203.92.6.0/24 +203.92.160.0/19 +203.93.0.0/16 +203.94.0.0/19 +203.95.0.0/21 +203.95.96.0/19 +203.95.128.0/18 +203.95.200.0/21 +203.95.208.0/22 +203.95.224.0/19 +203.99.8.0/21 +203.99.16.0/20 +203.99.80.0/20 +203.100.32.0/20 +203.100.48.0/21 +203.100.58.0/24 +203.100.60.0/24 +203.100.63.0/24 +203.100.80.0/20 +203.100.96.0/19 +203.100.192.0/20 +203.104.32.0/20 +203.105.96.0/19 +203.105.128.0/19 +203.107.0.0/17 +203.110.160.0/19 +203.110.208.0/20 +203.110.232.0/23 +203.110.234.0/24 +203.114.80.0/20 +203.114.244.0/22 +203.118.192.0/19 +203.118.241.0/24 +203.118.248.0/22 +203.119.24.0/21 +203.119.32.0/22 +203.119.80.0/22 +203.119.85.0/24 +203.119.113.0/24 +203.119.114.0/23 +203.119.116.0/22 +203.119.120.0/21 +203.119.128.0/17 +203.123.58.0/24 +203.128.32.0/19 +203.128.96.0/19 +203.128.128.0/24 +203.128.224.0/21 +203.129.8.0/21 +203.130.32.0/19 +203.132.32.0/19 +203.134.240.0/21 +203.135.96.0/19 +203.135.160.0/20 +203.142.12.0/23 +203.142.219.0/24 +203.142.224.0/19 +203.144.96.0/19 +203.145.0.0/19 +203.148.0.0/18 +203.148.64.0/20 +203.148.80.0/22 +203.148.86.0/23 +203.149.92.0/22 +203.152.64.0/19 +203.152.128.0/19 +203.153.0.0/22 +203.156.192.0/18 +203.158.16.0/21 +203.160.52.0/22 +203.160.104.0/21 +203.160.129.0/24 +203.160.192.0/19 +203.161.0.0/22 +203.161.180.0/24 +203.161.183.0/24 +203.161.192.0/19 +203.166.160.0/19 +203.167.28.0/22 +203.168.0.0/19 +203.170.58.0/23 +203.171.0.0/22 +203.171.208.0/24 +203.171.224.0/20 +203.174.4.0/24 +203.174.6.0/23 +203.174.96.0/19 +203.175.128.0/19 +203.175.192.0/18 +203.176.0.0/18 +203.176.64.0/19 +203.176.168.0/21 +203.184.80.0/20 +203.185.189.0/24 +203.187.160.0/19 +203.189.0.0/23 +203.189.6.0/23 +203.189.112.0/22 +203.189.192.0/19 +203.189.232.0/22 +203.189.240.0/22 +203.190.96.0/20 +203.190.249.0/24 +203.191.0.0/23 +203.191.2.0/24 +203.191.5.0/24 +203.191.7.0/24 +203.191.16.0/20 +203.191.64.0/18 +203.191.133.0/24 +203.191.144.0/20 +203.192.0.0/19 +203.193.224.0/19 +203.194.120.0/21 +203.195.64.0/19 +203.195.112.0/21 +203.195.128.0/17 +203.196.0.0/20 +203.196.28.0/22 +203.201.181.0/24 +203.201.182.0/24 +203.202.236.0/22 +203.205.64.0/19 +203.205.128.0/17 +203.207.64.0/18 +203.207.128.0/17 +203.208.0.0/20 +203.208.16.0/22 +203.208.32.0/19 +203.209.224.0/19 +203.212.0.0/20 +203.212.80.0/20 +203.215.232.0/21 +203.217.164.0/22 +203.222.192.0/20 +203.223.0.0/20 +203.223.16.0/21 +204.55.160.0/24 +204.74.96.0/24 +204.114.176.0/23 +206.219.44.0/23 +206.219.50.0/23 +206.219.52.0/23 +207.89.20.0/24 +210.2.0.0/19 +210.5.0.0/19 +210.5.56.0/21 +210.5.128.0/19 +210.7.56.0/21 +210.12.0.0/15 +210.14.64.0/19 +210.14.112.0/20 +210.14.128.0/17 +210.15.0.0/17 +210.15.128.0/18 +210.16.104.0/22 +210.16.128.0/18 +210.21.0.0/16 +210.22.0.0/16 +210.23.32.0/19 +210.25.0.0/16 +210.26.0.0/15 +210.28.0.0/14 +210.32.0.0/12 +210.51.0.0/16 +210.52.0.0/15 +210.56.192.0/19 +210.72.0.0/14 +210.76.0.0/15 +210.78.0.0/16 +210.79.64.0/18 +210.79.224.0/19 +210.82.0.0/15 +210.87.128.0/18 +210.185.192.0/18 +210.192.96.0/19 +211.64.0.0/13 +211.80.0.0/12 +211.96.0.0/13 +211.136.0.0/13 +211.144.0.0/12 +211.160.0.0/13 +212.64.0.0/17 +212.129.128.0/17 +216.250.108.0/22 +218.0.0.0/11 +218.56.0.0/13 +218.64.0.0/11 +218.96.0.0/14 +218.100.88.0/21 +218.100.96.0/19 +218.100.128.0/17 +218.104.0.0/14 +218.108.0.0/15 +218.185.192.0/19 +218.185.240.0/21 +218.192.0.0/12 +218.240.0.0/13 +218.249.0.0/16 +219.72.0.0/16 +219.82.0.0/16 +219.83.128.0/17 +219.90.68.0/22 +219.90.72.0/21 +219.128.0.0/11 +219.216.0.0/13 +219.224.0.0/12 +219.242.0.0/15 +219.244.0.0/14 +220.101.192.0/18 +220.112.0.0/14 +220.152.128.0/17 +220.154.0.0/15 +220.158.240.0/22 +220.160.0.0/11 +220.192.0.0/12 +220.231.0.0/18 +220.231.128.0/17 +220.232.64.0/18 +220.234.0.0/16 +220.242.0.0/15 +220.247.136.0/21 +220.248.0.0/14 +220.252.0.0/16 +221.0.0.0/13 +221.8.0.0/14 +221.12.0.0/17 +221.12.128.0/18 +221.13.0.0/16 +221.14.0.0/15 +221.122.0.0/15 +221.128.128.0/17 +221.129.0.0/16 +221.130.0.0/15 +221.133.224.0/19 +221.136.0.0/15 +221.172.0.0/14 +221.176.0.0/13 +221.192.0.0/14 +221.196.0.0/15 +221.198.0.0/16 +221.199.0.0/17 +221.199.128.0/18 +221.199.192.0/20 +221.199.224.0/19 +221.200.0.0/13 +221.208.0.0/12 +221.224.0.0/12 +222.16.0.0/12 +222.32.0.0/11 +222.64.0.0/11 +222.125.0.0/16 +222.126.128.0/17 +222.128.0.0/12 +222.160.0.0/14 +222.168.0.0/13 +222.176.0.0/12 +222.192.0.0/11 +222.240.0.0/13 +222.248.0.0/15 +223.0.0.0/12 +223.20.0.0/15 +223.27.184.0/22 +223.29.208.0/22 +223.29.252.0/22 +223.64.0.0/11 +223.96.0.0/12 +223.112.0.0/14 +223.116.0.0/15 +223.120.0.0/13 +223.128.0.0/15 +223.144.0.0/12 +223.160.0.0/14 +223.166.0.0/15 +223.192.0.0/15 +223.198.0.0/15 +223.201.0.0/16 +223.202.0.0/15 +223.208.0.0/13 +223.220.0.0/15 +223.223.176.0/20 +223.223.192.0/20 +223.240.0.0/13 +223.248.0.0/14 +223.252.128.0/17 +223.254.0.0/16 +223.255.0.0/17 +223.255.236.0/22 +223.255.252.0/23 diff --git a/client/android/res/values/strings.xml b/client/android/res/values/strings.xml index 19b31134..898de673 100644 --- a/client/android/res/values/strings.xml +++ b/client/android/res/values/strings.xml @@ -1,113 +1,169 @@ - Shadowsocks - Send email + shadowsocks - - Server Settings - Feature Settings - Changes not saved. Do you want to save? - Yes - No - Apply - File Explorer Missing - Browse… + VPN + %s/s + + + "Switch" + "Remote DNS" + "Upload: \t%3$s\t↑\t%1$s +Download: \t%4$s\t↓\t%2$s" + "Testing…" + "Connection successful: HTTPS handshake delay %d milliseconds" + "Failed: %s" + "No Internet Connection" + "Invalid status code (#%d) " - Profile Name - Server - Remote Port - Password - Encrypt Method + "Profile name" + "Server" + "Remote Port" + "Password" + "Encryption" - IPv6 Route - Redirect IPv6 traffic to remote - On - Off - Toggling might require ROOT permission - Unsupported kernel version: %s < 3.7.1 - Toggle failed - Send DNS over UDP - Requires UDP forwarding on server side + "IPv6 routing" + "Forward IPv6 traffic to remote server" + "Routing" + "GFW List" + "Proxied VPN" + "Allow some apps to bypass VPN" + "On" + "Bypass" + "Bypass selected apps" + "Auto connect" + "Allow Shadowsocks to start with the system" + "Switching may require ROOT permissions" + "Unsupported kernel version: %s < 3.7.1" + "Using UDP DNS" + "Requires remote server to support UDP forwarding" - VPN Service - Shadowsocks started. - Invalid server name - Failed to connect the remote server - Stop - Shutting down… - %s - Permission denied to create a VPN service - Failed to start VPN service. You might need to reboot your device. - No valid profile data found. + "Background service has started running. " + "Invalid server name" + "Unable to connect to remote server" + "Stop" + "stopping…" + "Background service failed to start: %s" + "VPN service failed to start. You may need to restart your device." + "No valid configuration file found." - Please select a profile - Proxy/Password should not be empty - Connect + "Please select a profile" + "The proxy server address and password cannot be empty" + "Connect" - Profiles - Settings - About - Shadowsocks %s - Edit - Share - Add Profile - Apply Settings to All Profiles - Export… - Export to file… - Export to Clipboard - Import from Clipboard - Import from file… - Replace from file… - Successfully export! - Failed to export. - Successfully import! - Failed to import. - Fetch location + "Profiles" + "Settings" + "FAQ" + "About" + "Shadowsocks %s" + "Edit" + "Share" + "Add Profile" + "Apply settings to all profiles" + "Export to clipboard" + "Import from clipboard" + "Export to clipboard succeeded" + "Export to clipboard failed" + "Import successful" + "Import failed" - Profile config - Remove - Are you sure you want to remove this profile? - QR code - Add this Shadowsocks Profile? - Scan QR code - Manual Settings - Camera permission is required for scanning QR code. - Undo + "Profile Config" + "Delete" + "Are you sure you want to delete this profile?" + "QR code / NFC" + "Add this profile for Shadowsock?" + "Scan QR code" + + "%d items deleted" + + "Undo" + + + "Start service" + "Connect to the current server" + "Connect to %s" + "Switch to %s" + "Use current profile" - Connecting… - Connected, tap to check connection - Not connected + "Send: " + "Received:" - Sent - Received + + "connecting…" + "Connected, click Test Connection" + "Not connected" + + + "Custom rules" + "Add rule…" + "Edit rules" + "Global" + "Bypass LAN addresses" + "Bypass mainland China addresses" + "Bypass LAN and Mainland China addresses" + "Proxy only for mainland China addresses" + "Subnet/Domain PCRE Regular Expression" + "Domain names and their subdomains" + + + "Plugin" + "Configure…" + "Disabled" + "Unknown plugin %s" + "Warning: This plugin does not appear to be from a known trusted source." + "Plugin: %s" + "Scanning the QR code requires permission to use the camera." + + + "VPN service" + "Manual setting" - There is no profile currently, would you like to add it now? - SOCKS5 proxy port - Local DNS port + "Advanced options" - Toggle - Remote DNS - Sent: \t\t\t\t\t%3$s\t↑\t%1$s\nReceived: \t%4$s\t↓\t%2$s - Check Connectivity - Testing… - Success: HTTPS handshake took %dms - Fail to detect internet connection: %s - Internet Unavailable - Error code: #%d - - %s/s - %1$s↑\t%2$s↓ - - - Removed - %d items removed - - + + "Service mode" + "Proxy only" + "Transparent proxy" + "SOCKS5 proxy port" + "local DNS port" + "Transparent proxy port" + "Proxy mode" + "Transparent proxy mode" + "Insufficient permission to create VPN service" + "Allow Shadowsocks to start with the system, an always-on VPN is recommended" + "Allow toggle on lock screen" + "The selected configuration information will be less secure" + "Online Rules File URL" + "Import from file…" + "Night Mode" + "System" + "Auto" + "On" + "Off" + "Send email" + "Export…" + "Export to file…" + "HTTP clear text traffic is not secure" + "Share via LAN" + "Check connection" + "Please install a file manager such as MiXplorer" + "Failed to switch" + "UDP configuration" + "Replace from file…" + "Off" + "model" + "Server settings" + "Function settings" + "Do you want to save the changes?" + "Yes" + "No" + "Apply" + \ No newline at end of file diff --git a/client/android/schemas/com.github.shadowsocks.database.PrivateDatabase/1000.json b/client/android/schemas/com.github.shadowsocks.database.PrivateDatabase/1000.json new file mode 100644 index 00000000..34c047eb --- /dev/null +++ b/client/android/schemas/com.github.shadowsocks.database.PrivateDatabase/1000.json @@ -0,0 +1,132 @@ +{ + "formatVersion": 1, + "database": { + "version": 1000, + "identityHash": "14b379f7776710b79b9d617090efe40e", + "entities": [ + { + "tableName": "Profile", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT, `host` TEXT NOT NULL, `remotePort` INTEGER NOT NULL, `password` TEXT NOT NULL, `method` TEXT NOT NULL, `remoteDns` TEXT NOT NULL, `udpdns` INTEGER NOT NULL, `ipv6` INTEGER NOT NULL, `tx` INTEGER NOT NULL, `rx` INTEGER NOT NULL, `userOrder` INTEGER NOT NULL)", + "fields": [ + { + "fieldPath": "id", + "columnName": "id", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "name", + "columnName": "name", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "host", + "columnName": "host", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "remotePort", + "columnName": "remotePort", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "password", + "columnName": "password", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "method", + "columnName": "method", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "remoteDns", + "columnName": "remoteDns", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "udpdns", + "columnName": "udpdns", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "ipv6", + "columnName": "ipv6", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "tx", + "columnName": "tx", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "rx", + "columnName": "rx", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "userOrder", + "columnName": "userOrder", + "affinity": "INTEGER", + "notNull": true + } + ], + "primaryKey": { + "columnNames": [ + "id" + ], + "autoGenerate": true + }, + "indices": [], + "foreignKeys": [] + }, + { + "tableName": "KeyValuePair", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `valueType` INTEGER NOT NULL, `value` BLOB NOT NULL, PRIMARY KEY(`key`))", + "fields": [ + { + "fieldPath": "key", + "columnName": "key", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "valueType", + "columnName": "valueType", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "value", + "columnName": "value", + "affinity": "BLOB", + "notNull": true + } + ], + "primaryKey": { + "columnNames": [ + "key" + ], + "autoGenerate": false + }, + "indices": [], + "foreignKeys": [] + } + ], + "views": [], + "setupQueries": [ + "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '14b379f7776710b79b9d617090efe40e')" + ] + } +} \ No newline at end of file diff --git a/client/android/schemas/com.github.shadowsocks.database.PublicDatabase/3.json b/client/android/schemas/com.github.shadowsocks.database.PublicDatabase/3.json new file mode 100644 index 00000000..ee987bb3 --- /dev/null +++ b/client/android/schemas/com.github.shadowsocks.database.PublicDatabase/3.json @@ -0,0 +1,46 @@ +{ + "formatVersion": 1, + "database": { + "version": 3, + "identityHash": "f1aab1fb633378621635c344dbc8ac7b", + "entities": [ + { + "tableName": "KeyValuePair", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`key` TEXT NOT NULL, `valueType` INTEGER NOT NULL, `value` BLOB NOT NULL, PRIMARY KEY(`key`))", + "fields": [ + { + "fieldPath": "key", + "columnName": "key", + "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "valueType", + "columnName": "valueType", + "affinity": "INTEGER", + "notNull": true + }, + { + "fieldPath": "value", + "columnName": "value", + "affinity": "BLOB", + "notNull": true + } + ], + "primaryKey": { + "columnNames": [ + "key" + ], + "autoGenerate": false + }, + "indices": [], + "foreignKeys": [] + } + ], + "views": [], + "setupQueries": [ + "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'f1aab1fb633378621635c344dbc8ac7b')" + ] + } +} \ No newline at end of file diff --git a/client/android/src/com/github/shadowsocks/LocalVpnService.kt b/client/android/src/com/github/shadowsocks/LocalVpnService.kt deleted file mode 100644 index f5bdf7dd..00000000 --- a/client/android/src/com/github/shadowsocks/LocalVpnService.kt +++ /dev/null @@ -1,215 +0,0 @@ -package com.github.shadowsocks - -import android.app.Service -import android.content.Intent -import android.net.LocalSocket -import android.net.LocalSocketAddress -import android.net.Network -import android.net.VpnService -import android.os.Build -import android.os.ParcelFileDescriptor -import android.system.ErrnoException -import android.system.Os -import com.github.shadowsocks.bg.* -import com.github.shadowsocks.net.ConcurrentLocalSocketListener -import com.github.shadowsocks.net.DefaultNetworkListener -import com.github.shadowsocks.net.HostsFile -import com.github.shadowsocks.net.Subnet -import com.github.shadowsocks.preference.DataStore -import com.github.shadowsocks.utils.printLog -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.delay -import kotlinx.coroutines.launch -import java.io.Closeable -import java.io.File -import java.io.FileDescriptor -import java.io.IOException -import java.net.URL -import org.amnezia.vpn.R - -class LocalVpnService : VpnService(), LocalDnsService.Interface { - companion object { - private const val VPN_MTU = 1500 - private const val PRIVATE_VLAN4_CLIENT = "172.19.0.1" - private const val PRIVATE_VLAN4_ROUTER = "172.19.0.2" - private const val PRIVATE_VLAN6_CLIENT = "fdfe:dcba:9876::1" - private const val PRIVATE_VLAN6_ROUTER = "fdfe:dcba:9876::2" - - /** - * https://android.googlesource.com/platform/prebuilts/runtime/+/94fec32/appcompat/hiddenapi-light-greylist.txt#9466 - */ - private val getInt = FileDescriptor::class.java.getDeclaredMethod("getInt$") - } - - class CloseableFd(val fd: FileDescriptor) : Closeable { - override fun close() = Os.close(fd) - } - - private inner class ProtectWorker : ConcurrentLocalSocketListener( - "ShadowsocksVpnThread", - File(Core.deviceStorage.noBackupFilesDir, "protect_path") - ) { - override fun acceptInternal(socket: LocalSocket) { - socket.inputStream.read() - val fd = socket.ancillaryFileDescriptors!!.single()!! - CloseableFd(fd).use { - socket.outputStream.write(if (underlyingNetwork.let { network -> - if (network != null && Build.VERSION.SDK_INT >= 23) try { - network.bindSocket(fd) - true - } catch (e: IOException) { - // suppress ENONET (Machine is not on the network) - if ((e.cause as? ErrnoException)?.errno != 64) printLog(e) - false - } else protect(getInt.invoke(fd) as Int) - }) 0 else 1) - } - } - } - - inner class NullConnectionException : NullPointerException(), BaseService.ExpectedException { - override fun getLocalizedMessage() = getString(R.string.reboot_required) - } - - override val data = BaseService.Data(this) - override val tag: String get() = "ShadowsocksVpnService" - override fun createNotification(profileName: String): ServiceNotification = - ServiceNotification(this, profileName, "service-vpn") - - private var conn: ParcelFileDescriptor? = null - private var worker: ProtectWorker? = null - private var active = false - - // metered = false. xinlake - private var underlyingNetwork: Network? = null - set(value) { - field = value - if (active) setUnderlyingNetworks(underlyingNetworks) - } - private val underlyingNetworks - get() = // clearing underlyingNetworks makes Android 9 consider the network to be metered - underlyingNetwork?.let { arrayOf(it) } - - override fun onBind(intent: Intent) = when (intent.action) { - SERVICE_INTERFACE -> super.onBind(intent) - else -> super.onBind(intent) - } - - override fun onRevoke() = stopRunner() - - override fun killProcesses(scope: CoroutineScope) { - super.killProcesses(scope) - active = false - scope.launch { DefaultNetworkListener.stop(this) } - worker?.shutdown(scope) - worker = null - conn?.close() - conn = null - } - - override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { - if (prepare(this) != null) { -// startActivity(Intent(this, VpnRequestActivity::class.java).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) - } else return super.onStartCommand(intent, flags, startId) - - stopRunner() - return Service.START_NOT_STICKY - } - - override suspend fun preInit() = DefaultNetworkListener.start(this) { underlyingNetwork = it } - override suspend fun resolver(host: String) = - DnsResolverCompat.resolve(DefaultNetworkListener.get(), host) - - override suspend fun openConnection(url: URL) = DefaultNetworkListener.get().openConnection(url) - - override suspend fun startProcesses(hosts: HostsFile) { - worker = ProtectWorker().apply { start() } - super.startProcesses(hosts) - sendFd(startVpn()) - } - - override fun buildAdditionalArguments(cmd: ArrayList): ArrayList { - cmd += "-V" - return cmd - } - - private suspend fun startVpn(): FileDescriptor { - val profile = data.proxy!!.profile - val builder = Builder() - .setConfigureIntent(Core.configureIntent(this)) - .setSession(profile.formattedName) - .setMtu(VPN_MTU) - .addAddress(PRIVATE_VLAN4_CLIENT, 30) - .addDnsServer(PRIVATE_VLAN4_ROUTER) - - if (profile.ipv6) { - builder.addAddress(PRIVATE_VLAN6_CLIENT, 126) - builder.addRoute("::", 0) - } - - // XinLake. bypass lan - resources.getStringArray(R.array.bypass_private_route).forEach { - val subnet = Subnet.fromString(it)!! - builder.addRoute(subnet.address.hostAddress, subnet.prefixSize) - } - builder.addRoute(PRIVATE_VLAN4_ROUTER, 32) - - active = true // possible race condition here? - if (Build.VERSION.SDK_INT >= 22) { - builder.setUnderlyingNetworks(underlyingNetworks) - } - - val conn = builder.establish() ?: throw NullConnectionException() - this.conn = conn - - val cmd = arrayListOf( - File(applicationInfo.nativeLibraryDir, Executable.TUN2SOCKS).absolutePath, - "--netif-ipaddr", PRIVATE_VLAN4_ROUTER, - "--socks-server-addr", "${DataStore.listenAddress}:${DataStore.portProxy}", - "--tunmtu", VPN_MTU.toString(), - "--sock-path", "sock_path", - "--dnsgw", "127.0.0.1:${DataStore.portLocalDns}", - "--loglevel", "warning" - ) - if (profile.ipv6) { - cmd += "--netif-ip6addr" - cmd += PRIVATE_VLAN6_ROUTER - } - cmd += "--enable-udprelay" - data.processes!!.start(cmd, onRestartCallback = { - try { - sendFd(conn.fileDescriptor) - } catch (e: ErrnoException) { - stopRunner(false, e.message) - } - }) - return conn.fileDescriptor - } - - private suspend fun sendFd(fd: FileDescriptor) { - var tries = 0 - val path = File(Core.deviceStorage.noBackupFilesDir, "sock_path").absolutePath - while (true) try { - delay(50L shl tries) - LocalSocket().use { localSocket -> - localSocket.connect( - LocalSocketAddress( - path, - LocalSocketAddress.Namespace.FILESYSTEM - ) - ) - localSocket.setFileDescriptorsForSend(arrayOf(fd)) - localSocket.outputStream.write(42) - } - return - } catch (e: IOException) { - if (tries > 5) throw e - tries += 1 - } - } - - override fun onDestroy() { - super.onDestroy() - data.binder.close() - } -} diff --git a/client/android/src/com/github/shadowsocks/bg/DnsResolverCompat.kt b/client/android/src/com/github/shadowsocks/bg/DnsResolverCompat.kt deleted file mode 100644 index 8c93208e..00000000 --- a/client/android/src/com/github/shadowsocks/bg/DnsResolverCompat.kt +++ /dev/null @@ -1,99 +0,0 @@ -/******************************************************************************* - * * - * Copyright (C) 2019 by Max Lv * - * Copyright (C) 2019 by Mygod Studio * - * * - * This program is free software: you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation, either version 3 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program. If not, see . * - * * - *******************************************************************************/ - -package com.github.shadowsocks.bg - -import android.annotation.TargetApi -import android.app.ActivityManager -import android.net.DnsResolver -import android.net.Network -import android.os.Build -import android.os.CancellationSignal -import androidx.core.content.getSystemService -import com.github.shadowsocks.Core -import com.github.shadowsocks.Core.app -import kotlinx.coroutines.* -import java.io.IOException -import java.net.InetAddress -import java.util.concurrent.Executor -import java.util.concurrent.Executors -import kotlin.coroutines.resume -import kotlin.coroutines.resumeWithException - -sealed class DnsResolverCompat { - companion object : DnsResolverCompat() { - private val instance by lazy { if (Build.VERSION.SDK_INT >= 29) DnsResolverCompat29 else DnsResolverCompat21 } - - override suspend fun resolve(network: Network, host: String) = - instance.resolve(network, host) - - override suspend fun resolveOnActiveNetwork(host: String) = - instance.resolveOnActiveNetwork(host) - } - - abstract suspend fun resolve(network: Network, host: String): Array - abstract suspend fun resolveOnActiveNetwork(host: String): Array - - private object DnsResolverCompat21 : DnsResolverCompat() { - /** - * This dispatcher is used for noncancellable possibly-forever-blocking operations in network IO. - * - * See also: https://issuetracker.google.com/issues/133874590 - */ - private val unboundedIO by lazy { - if (app.getSystemService()!!.isLowRamDevice) Dispatchers.IO - else Executors.newCachedThreadPool().asCoroutineDispatcher() - } - - override suspend fun resolve(network: Network, host: String) = - GlobalScope.async(unboundedIO) { network.getAllByName(host) }.await() - - override suspend fun resolveOnActiveNetwork(host: String) = - GlobalScope.async(unboundedIO) { InetAddress.getAllByName(host) }.await() - } - - @TargetApi(29) - private object DnsResolverCompat29 : DnsResolverCompat(), Executor { - /** - * This executor will run on its caller directly. On Q beta 3 thru 4, this results in calling in main thread. - */ - override fun execute(command: Runnable) = command.run() - - override suspend fun resolve(network: Network, host: String): Array { - return suspendCancellableCoroutine { cont -> - val signal = CancellationSignal() - cont.invokeOnCancellation { signal.cancel() } - // retry should be handled by client instead - DnsResolver.getInstance().query(network, host, DnsResolver.FLAG_NO_RETRY, this, signal, - object : DnsResolver.Callback> { - override fun onAnswer(answer: Collection, rcode: Int) = - cont.resume(answer.toTypedArray()) - - override fun onError(error: DnsResolver.DnsException) = - cont.resumeWithException(IOException(error)) - }) - } - } - - override suspend fun resolveOnActiveNetwork(host: String): Array { - return resolve(Core.connectivity.activeNetwork ?: return emptyArray(), host) - } - } -} diff --git a/client/android/src/com/github/shadowsocks/bg/ProxyInstance.kt b/client/android/src/com/github/shadowsocks/bg/ProxyInstance.kt deleted file mode 100644 index c85d03a1..00000000 --- a/client/android/src/com/github/shadowsocks/bg/ProxyInstance.kt +++ /dev/null @@ -1,95 +0,0 @@ -/******************************************************************************* - * * - * Copyright (C) 2019 by Max Lv * - * Copyright (C) 2019 by Mygod Studio * - * * - * This program is free software: you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation, either version 3 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program. If not, see . * - * * - *******************************************************************************/ - -package com.github.shadowsocks.bg - -import android.content.Context -import com.github.shadowsocks.Core -import com.github.shadowsocks.database.Profile -import com.github.shadowsocks.net.HostsFile -import com.github.shadowsocks.preference.DataStore -import com.github.shadowsocks.utils.parseNumericAddress -import kotlinx.coroutines.CoroutineScope -import java.io.File -import java.io.IOException -import java.net.UnknownHostException - -/** - * This class sets up environment for ss-local. - */ -class ProxyInstance(val profile: Profile) { - private var configFile: File? = null - var trafficMonitor: TrafficMonitor? = null - - fun getFile(context: Context = Core.deviceStorage) = - File(context.noBackupFilesDir, "bypass-lan.acl") - - suspend fun init(service: BaseService.Interface, hosts: HostsFile) { - // it's hard to resolve DNS on a specific interface so we'll do it here - if (profile.host.parseNumericAddress() == null) { - profile.host = (hosts.resolve(profile.host).firstOrNull() ?: try { - service.resolver(profile.host).firstOrNull() - } catch (_: IOException) { - null - })?.hostAddress ?: throw UnknownHostException() - } - } - - /** - * Sensitive shadowsocks configuration file requires extra protection. It may be stored in encrypted storage or - * device storage, depending on which is currently available. - */ - fun start(service: BaseService.Interface, stat: File, configFile: File, extraFlag: String? = null) { - trafficMonitor = TrafficMonitor(stat) - - this.configFile = configFile - val config = profile.toJson() - configFile.writeText(config.toString()) - - val cmd = service.buildAdditionalArguments(arrayListOf( - File((service as Context).applicationInfo.nativeLibraryDir, Executable.SS_LOCAL).absolutePath, - "-b", DataStore.listenAddress, - "-l", DataStore.portProxy.toString(), - "-t", "600", - "-S", stat.absolutePath, - "-c", configFile.absolutePath)) - if (extraFlag != null) cmd.add(extraFlag) - - cmd += "--acl" - cmd += getFile().absolutePath - - // for UDP profile, it's only going to operate in UDP relay mode-only so this flag has no effect - cmd += "-D" - - if (DataStore.tcpFastOpen) cmd += "--fast-open" - - service.data.processes!!.start(cmd) - } - - fun shutdown(scope: CoroutineScope) { - trafficMonitor?.apply { - thread.shutdown(scope) - persistStats(profile.id) // Make sure update total traffic when stopping the runner - } - trafficMonitor = null - configFile?.delete() // remove old config possibly in device storage - configFile = null - } -} diff --git a/client/android/src/com/github/shadowsocks/bg/ServiceNotification.kt b/client/android/src/com/github/shadowsocks/bg/ServiceNotification.kt deleted file mode 100644 index 49d8d106..00000000 --- a/client/android/src/com/github/shadowsocks/bg/ServiceNotification.kt +++ /dev/null @@ -1,123 +0,0 @@ -/******************************************************************************* - * * - * Copyright (C) 2017 by Max Lv * - * Copyright (C) 2017 by Mygod Studio * - * * - * This program is free software: you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation, either version 3 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program. If not, see . * - * * - *******************************************************************************/ - -package com.github.shadowsocks.bg - -import android.app.PendingIntent -import android.app.Service -import android.content.BroadcastReceiver -import android.content.Context -import android.content.Intent -import android.content.IntentFilter -import android.os.Build -import android.os.PowerManager -import android.text.format.Formatter -import androidx.core.app.NotificationCompat -import androidx.core.content.ContextCompat -import androidx.core.content.getSystemService -import com.github.shadowsocks.Core -import org.amnezia.vpn.R -import com.github.shadowsocks.aidl.IShadowsocksServiceCallback -import com.github.shadowsocks.aidl.TrafficStats -import com.github.shadowsocks.utils.Action - -/** - * User can customize visibility of notification since Android 8. - * The default visibility: - * - * Android 8.x: always visible due to system limitations - * VPN: always invisible because of VPN notification/icon - * Other: always visible - * - * See also: https://github.com/aosp-mirror/platform_frameworks_base/commit/070d142993403cc2c42eca808ff3fafcee220ac4 - */ -class ServiceNotification(private val service: BaseService.Interface, profileName: String, channel: String, visible: Boolean = false) - : BroadcastReceiver() { - private val callback: IShadowsocksServiceCallback by lazy { - object : IShadowsocksServiceCallback.Stub() { - override fun stateChanged(state: Int, profileName: String?, msg: String?) {} // ignore - override fun trafficUpdated(profileId: Long, stats: TrafficStats) { - if (profileId != 0L) return - builder.apply { - setContentText((service as Context).getString(R.string.traffic, - service.getString(R.string.speed, Formatter.formatFileSize(service, stats.txRate)), - service.getString(R.string.speed, Formatter.formatFileSize(service, stats.rxRate)))) - setSubText(service.getString(R.string.traffic, - Formatter.formatFileSize(service, stats.txTotal), - Formatter.formatFileSize(service, stats.rxTotal))) - } - show() - } - - override fun trafficPersisted(profileId: Long) {} - } - } - private var callbackRegistered = false - - private val builder = NotificationCompat.Builder(service as Context, channel) - .setWhen(0) - .setColor(ContextCompat.getColor(service, R.color.material_primary_500)) - .setTicker(service.getString(R.string.forward_success)) - .setContentTitle(profileName) - .setContentIntent(Core.configureIntent(service)) - .setSmallIcon(R.drawable.ic_service_active) - .setCategory(NotificationCompat.CATEGORY_SERVICE) - .setPriority(if (visible) NotificationCompat.PRIORITY_LOW else NotificationCompat.PRIORITY_MIN) - - init { - service as Context - val closeAction = NotificationCompat.Action.Builder( - R.drawable.ic_navigation_close, - service.getString(R.string.stop), - PendingIntent.getBroadcast(service, 0, Intent(Action.CLOSE), 0)).apply { - setShowsUserInterface(false) - }.build() - if (Build.VERSION.SDK_INT < 24) builder.addAction(closeAction) else builder.addInvisibleAction(closeAction) - updateCallback(service.getSystemService()?.isInteractive != false) - service.registerReceiver(this, IntentFilter().apply { - addAction(Intent.ACTION_SCREEN_ON) - addAction(Intent.ACTION_SCREEN_OFF) - }) - show() - } - - override fun onReceive(context: Context, intent: Intent) { - if (service.data.state == BaseService.State.Connected) updateCallback(intent.action == Intent.ACTION_SCREEN_ON) - } - - private fun updateCallback(screenOn: Boolean) { - if (screenOn) { - service.data.binder.registerCallback(callback) - service.data.binder.startListeningForBandwidth(callback, 1000) - callbackRegistered = true - } else if (callbackRegistered) { // unregister callback to save battery - service.data.binder.unregisterCallback(callback) - callbackRegistered = false - } - } - - private fun show() = (service as Service).startForeground(1, builder.build()) - - fun destroy() { - (service as Service).unregisterReceiver(this) - updateCallback(false) - service.stopForeground(true) - } -} diff --git a/client/android/src/com/github/shadowsocks/database/Profile.kt b/client/android/src/com/github/shadowsocks/database/Profile.kt deleted file mode 100644 index af457ab8..00000000 --- a/client/android/src/com/github/shadowsocks/database/Profile.kt +++ /dev/null @@ -1,266 +0,0 @@ -/******************************************************************************* - * * - * Copyright (C) 2017 by Max Lv * - * Copyright (C) 2017 by Mygod Studio * - * * - * This program is free software: you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation, either version 3 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program. If not, see . * - * * - *******************************************************************************/ - -package com.github.shadowsocks.database - -import android.net.Uri -import android.os.Parcelable -import android.util.Base64 -import android.util.Log -import android.util.LongSparseArray -import androidx.core.net.toUri -import androidx.room.* -import com.github.shadowsocks.preference.DataStore -import com.github.shadowsocks.utils.Key -import com.github.shadowsocks.utils.parsePort -import com.google.gson.JsonArray -import com.google.gson.JsonElement -import com.google.gson.JsonObject -import com.google.gson.JsonPrimitive -import kotlinx.android.parcel.Parcelize -import org.json.JSONObject -import java.io.Serializable -import java.net.URI -import java.net.URISyntaxException -import java.util.* - -@Entity -@Parcelize -data class Profile( - // XinLake. route mode is bypass-lan - @PrimaryKey(autoGenerate = true) - var id: Long = 0, - var name: String? = "", - var host: String = "0.0.0.0", - var remotePort: Int = 0, - var password: String = "0000", - var method: String = "aes-256-cfb", - var remoteDns: String = "8.8.8.8", - var udpdns: Boolean = false, - var ipv6: Boolean = false, - //@TargetApi(28) - var tx: Long = 0, - var rx: Long = 0, - var userOrder: Long = 0, - - @Ignore // not persisted in db, only used by direct boot - var dirty: Boolean = false) : Parcelable, Serializable { - companion object { - private const val TAG = "ShadowParser" - private const val serialVersionUID = 1L - private val pattern = - """(?i)ss://[-a-zA-Z0-9+&@#/%?=.~*'()|!:,;\[\]]*[-a-zA-Z0-9+&@#/%=.~*'()|\[\]]""".toRegex() - private val userInfoPattern = "^(.+?):(.*)$".toRegex() - private val legacyPattern = "^(.+?):(.*)@(.+?):(\\d+?)$".toRegex() - - fun findAllUrls(data: CharSequence?, feature: Profile? = null) = - pattern.findAll(data ?: "").map { - val uri = it.value.toUri() - try { - if (uri.userInfo == null) { - val match = legacyPattern.matchEntire(String(Base64.decode(uri.host, Base64.NO_PADDING))) - if (match != null) { - val profile = Profile() - feature?.copyFeatureSettingsTo(profile) - profile.method = match.groupValues[1].toLowerCase(Locale.ENGLISH) - profile.password = match.groupValues[2] - profile.host = match.groupValues[3] - profile.remotePort = match.groupValues[4].toInt() - profile.name = uri.fragment - profile - } else { - Log.e(TAG, "Unrecognized URI: ${it.value}") - null - } - } else { - val match = userInfoPattern.matchEntire(String(Base64.decode(uri.userInfo, - Base64.NO_PADDING or Base64.NO_WRAP or Base64.URL_SAFE))) - if (match != null) { - val profile = Profile() - feature?.copyFeatureSettingsTo(profile) - profile.method = match.groupValues[1] - profile.password = match.groupValues[2] - // bug in Android: https://code.google.com/p/android/issues/detail?id=192855 - try { - val javaURI = URI(it.value) - profile.host = javaURI.host ?: "" - if (profile.host.firstOrNull() == '[' && profile.host.lastOrNull() == ']') { - profile.host = profile.host.substring(1, profile.host.length - 1) - } - profile.remotePort = javaURI.port - profile.name = uri.fragment ?: "" - profile - } catch (e: URISyntaxException) { - Log.e(TAG, "Invalid URI: ${it.value}") - null - } - } else { - Log.e(TAG, "Unknown user info: ${it.value}") - null - } - } - } catch (e: IllegalArgumentException) { - Log.e(TAG, "Invalid base64 detected: ${it.value}") - null - } - }.filterNotNull() - - private class JsonParser(private val feature: Profile? = null) : ArrayList() { - private val JsonElement?.optString get() = (this as? JsonPrimitive)?.asString - private val JsonElement?.optBoolean - get() = // asBoolean attempts to cast everything to boolean - (this as? JsonPrimitive)?.run { if (isBoolean) asBoolean else null } - private val JsonElement?.optInt - get() = try { - (this as? JsonPrimitive)?.asInt - } catch (_: NumberFormatException) { - null - } - - private fun tryParse(json: JsonObject, fallback: Boolean = false): Profile? { - val host = json["server"].optString - if (host.isNullOrEmpty()) return null - val remotePort = json["server_port"]?.optInt - if (remotePort == null || remotePort <= 0) return null - val password = json["password"].optString - if (password.isNullOrEmpty()) return null - val method = json["method"].optString - if (method.isNullOrEmpty()) return null - return Profile().also { - it.host = host - it.remotePort = remotePort - it.password = password - it.method = method - }.apply { - feature?.copyFeatureSettingsTo(this) - name = json["remarks"].optString - if (fallback) return@apply - remoteDns = json["remote_dns"].optString ?: remoteDns - ipv6 = json["ipv6"].optBoolean ?: ipv6 - udpdns = json["udpdns"].optBoolean ?: udpdns - } - } - - fun process(json: JsonElement?) { - when (json) { - is JsonObject -> { - val profile = tryParse(json) - if (profile != null) add(profile) else for ((_, value) in json.entrySet()) process(value) - } - is JsonArray -> json.asIterable().forEach(this::process) - // ignore other types - } - } - } - - fun parseJson(json: JsonElement, feature: Profile? = null, create: (Profile) -> Unit) { - JsonParser(feature).run { - process(json) - for (profile in this) create(profile) - } - } - } - - @androidx.room.Dao - interface Dao { - @Query("SELECT * FROM `Profile` WHERE `id` = :id") - operator fun get(id: Long): Profile? - - @Query("SELECT * FROM `Profile` ORDER BY `userOrder`") - fun list(): List - - @Query("SELECT MAX(`userOrder`) + 1 FROM `Profile`") - fun nextOrder(): Long? - - @Query("SELECT 1 FROM `Profile` LIMIT 1") - fun isNotEmpty(): Boolean - - @Insert - fun create(value: Profile): Long - - @Update - fun update(value: Profile): Int - - @Query("DELETE FROM `Profile` WHERE `id` = :id") - fun delete(id: Long): Int - - @Query("DELETE FROM `Profile`") - fun deleteAll(): Int - } - - val formattedAddress get() = (if (host.contains(":")) "[%s]:%d" else "%s:%d").format(host, remotePort) - val formattedName get() = if (name.isNullOrEmpty()) formattedAddress else name!! - - fun copyFeatureSettingsTo(profile: Profile) { - profile.ipv6 = ipv6 - profile.udpdns = udpdns - } - - fun toUri(): Uri { - val auth = Base64.encodeToString("$method:$password".toByteArray(), - Base64.NO_PADDING or Base64.NO_WRAP or Base64.URL_SAFE) - val wrappedHost = if (host.contains(':')) "[$host]" else host - val builder = Uri.Builder().scheme("ss").encodedAuthority("$auth@$wrappedHost:$remotePort") - if (!name.isNullOrEmpty()) builder.fragment(name) - return builder.build() - } - - override fun toString() = toUri().toString() - - fun toJson(profiles: LongSparseArray? = null): JSONObject = JSONObject().apply { - put("server", host) - put("server_port", remotePort) - put("password", password) - put("method", method) - if (profiles == null) return@apply - put("remarks", name) - put("remote_dns", remoteDns) - put("ipv6", ipv6) - put("udpdns", udpdns) - } - - fun serialize() { - DataStore.editingId = id - DataStore.privateStore.putString(Key.name, name) - DataStore.privateStore.putString(Key.host, host) - DataStore.privateStore.putString(Key.remotePort, remotePort.toString()) - DataStore.privateStore.putString(Key.password, password) - DataStore.privateStore.putString(Key.remoteDns, remoteDns) - DataStore.privateStore.putString(Key.method, method) - DataStore.privateStore.putBoolean(Key.udpdns, udpdns) - DataStore.privateStore.putBoolean(Key.ipv6, ipv6) - DataStore.privateStore.remove(Key.dirty) - } - - fun deserialize() { - check(id == 0L || DataStore.editingId == id) - DataStore.editingId = null - // It's assumed that default values are never used, so 0/false/null is always used even if that isn't the case - name = DataStore.privateStore.getString(Key.name) ?: "" - // It's safe to trim the hostname, as we expect no leading or trailing whitespaces here - host = (DataStore.privateStore.getString(Key.host) ?: "").trim() - remotePort = parsePort(DataStore.privateStore.getString(Key.remotePort), 8388, 1) - password = DataStore.privateStore.getString(Key.password) ?: "" - method = DataStore.privateStore.getString(Key.method) ?: "" - remoteDns = DataStore.privateStore.getString(Key.remoteDns) ?: "" - udpdns = DataStore.privateStore.getBoolean(Key.udpdns, false) - ipv6 = DataStore.privateStore.getBoolean(Key.ipv6, false) - } -} diff --git a/client/android/src/org/amnezia/vpn/VPNService.kt b/client/android/src/org/amnezia/vpn/VPNService.kt index f5097ba4..27c604bc 100644 --- a/client/android/src/org/amnezia/vpn/VPNService.kt +++ b/client/android/src/org/amnezia/vpn/VPNService.kt @@ -39,7 +39,6 @@ class VPNService : android.net.VpnService() { Log.e(tag, "Wireguard Version ${wgVersion()}") mOpenVPNThreadv3 = OpenVPNThreadv3(this) mAlreadyInitialised = true - } override fun onUnbind(intent: Intent?): Boolean { @@ -82,10 +81,7 @@ class VPNService : android.net.VpnService() { val lastConfString = prefs.getString("lastConf", "") if (lastConfString.isNullOrEmpty()) { // We have nothing to connect to -> Exit - Log.e( - tag, - "VPN service was triggered without defining a Server or having a tunnel" - ) + Log.e(tag,"VPN service was triggered without defining a Server or having a tunnel") return super.onStartCommand(intent, flags, startId) } this.mConfig = JSONObject(lastConfString) @@ -156,10 +152,13 @@ class VPNService : android.net.VpnService() { } Log.i(tag, "Permission okay") mConfig = json!! + Log.i(tag, "Config: " + mConfig) mProtocol = mConfig!!.getString("protocol") + Log.i(tag, "Protocol: " + mProtocol) when (mProtocol) { "openvpn" -> startOpenVpn() "wireguard" -> startWireGuard() + "shadowsocks" -> startShadowsocks() else -> { Log.e(tag, "No protocol") return 0 @@ -365,6 +364,19 @@ class VPNService : android.net.VpnService() { return mConfig!! } + private fun startShadowsocks() { + Log.e(tag, "startShadowsocks method enters") + if(mConfig != null) { + try { + + } catch(e: Exception) { + Log.e(tag, "Error in startShadowsocks: $e") + } + } else { + Log.e(tag, "Invalid config file!!") + } + } + private fun startOpenVpn() { mOpenVPNThreadv3 = OpenVPNThreadv3(this) Thread({ diff --git a/client/android/src/org/amnezia/vpn/VPNServiceBinder.kt b/client/android/src/org/amnezia/vpn/VPNServiceBinder.kt index 966ac518..d81d5077 100644 --- a/client/android/src/org/amnezia/vpn/VPNServiceBinder.kt +++ b/client/android/src/org/amnezia/vpn/VPNServiceBinder.kt @@ -54,7 +54,7 @@ class VPNServiceBinder(service: VPNService) : Binder() { val json = buffer?.let { String(it) } val config = JSONObject(json) Log.v(tag, "Stored new Tunnel config in Service") - + Log.i(tag, "Config: $config") if (!mService.checkPermissions()) { mResumeConfig = config // The Permission prompt was already diff --git a/client/android/src/org/amnezia/vpn/qt/AmneziaApp.kt b/client/android/src/org/amnezia/vpn/qt/AmneziaApp.kt new file mode 100644 index 00000000..7888f6d6 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/qt/AmneziaApp.kt @@ -0,0 +1,22 @@ +package org.amnezia.vpn.qt + +import android.content.res.Configuration +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.VpnManager +import org.qtproject.qt5.android.bindings.QtActivity +import org.qtproject.qt5.android.bindings.QtApplication +import android.app.Application + +class AmneziaApp: Application() { + + override fun onCreate() { + super.onCreate() + Core.init(this, QtActivity::class) + VpnManager.getInstance().init(this) + } + + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + Core.updateNotificationChannels() + } +} \ No newline at end of file diff --git a/client/android/src/org/amnezia/vpn/qt/VPNApplication.java b/client/android/src/org/amnezia/vpn/qt/VPNApplication.java index 3131349a..29514633 100644 --- a/client/android/src/org/amnezia/vpn/qt/VPNApplication.java +++ b/client/android/src/org/amnezia/vpn/qt/VPNApplication.java @@ -1,18 +1,24 @@ package org.amnezia.vpn.qt; -import android.app.Activity; -import android.os.Bundle; - -import org.amnezia.vpn.BuildConfig; +import android.content.res.Configuration; +import androidx.annotation.NonNull; +import org.amnezia.vpn.shadowsocks.core.Core; +import org.amnezia.vpn.shadowsocks.core.VpnManager; public class VPNApplication extends org.qtproject.qt5.android.bindings.QtApplication { + private static VPNApplication instance; - private static VPNApplication instance; - - @Override - public void onCreate() { - super.onCreate(); - VPNApplication.instance = this; - } + @Override + public void onCreate() { + super.onCreate(); + VPNApplication.instance = this; +// Core.INSTANCE.init(this, VPNActivity.class); +// VpnManager.Companion.getInstance().init(this); + } + @Override + public void onConfigurationChanged(@NonNull Configuration newConfig) { + super.onConfigurationChanged(newConfig); +// Core.INSTANCE.updateNotificationChannels(); + } } diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/BootReceiver.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/BootReceiver.kt new file mode 100644 index 00000000..907f0a62 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/BootReceiver.kt @@ -0,0 +1,51 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core + +import android.content.BroadcastReceiver +import android.content.ComponentName +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import org.amnezia.vpn.shadowsocks.core.Core.app +import org.amnezia.vpn.shadowsocks.core.preference.DataStore + +class BootReceiver : BroadcastReceiver() { + companion object { + private val componentName by lazy { ComponentName(app, org.amnezia.vpn.shadowsocks.core.BootReceiver::class.java) } + var enabled: Boolean + get() = app.packageManager.getComponentEnabledSetting(org.amnezia.vpn.shadowsocks.core.BootReceiver.Companion.componentName) == + PackageManager.COMPONENT_ENABLED_STATE_ENABLED + set(value) = app.packageManager.setComponentEnabledSetting( + org.amnezia.vpn.shadowsocks.core.BootReceiver.Companion.componentName, + if (value) PackageManager.COMPONENT_ENABLED_STATE_ENABLED + else PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP) + } + + override fun onReceive(context: Context, intent: Intent) { + val locked = when (intent.action) { + Intent.ACTION_BOOT_COMPLETED -> false + Intent.ACTION_LOCKED_BOOT_COMPLETED -> true // constant will be folded so no need to do version checks + else -> return + } + if (DataStore.directBootAware == locked) org.amnezia.vpn.shadowsocks.core.Core.startService() + } +} diff --git a/client/android/src/com/github/shadowsocks/Core.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/Core.kt similarity index 66% rename from client/android/src/com/github/shadowsocks/Core.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/Core.kt index d98df7e4..6df7a110 100644 --- a/client/android/src/com/github/shadowsocks/Core.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/Core.kt @@ -18,7 +18,7 @@ * * *******************************************************************************/ -package com.github.shadowsocks +package org.amnezia.vpn.shadowsocks.core import android.app.Application import android.app.NotificationChannel @@ -31,7 +31,6 @@ import android.content.Intent import android.content.IntentFilter import android.content.pm.PackageInfo import android.content.pm.PackageManager -import android.net.ConnectivityManager import android.os.Build import android.os.UserManager import androidx.annotation.RequiresApi @@ -39,17 +38,17 @@ import androidx.core.content.ContextCompat import androidx.core.content.getSystemService import androidx.work.Configuration import androidx.work.WorkManager -import com.github.shadowsocks.aidl.ShadowsocksConnection -import com.github.shadowsocks.database.Profile -import com.github.shadowsocks.database.ProfileManager -import com.github.shadowsocks.net.TcpFastOpen -import com.github.shadowsocks.preference.DataStore -import com.github.shadowsocks.utils.* + +import org.amnezia.vpn.R +import org.amnezia.vpn.shadowsocks.core.acl.Acl +import org.amnezia.vpn.shadowsocks.core.aidl.ShadowsocksConnection +import org.amnezia.vpn.shadowsocks.core.database.Profile +import org.amnezia.vpn.shadowsocks.core.database.ProfileManager +import org.amnezia.vpn.shadowsocks.core.net.TcpFastOpen +import org.amnezia.vpn.shadowsocks.core.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.utils.* import kotlinx.coroutines.DEBUG_PROPERTY_NAME import kotlinx.coroutines.DEBUG_PROPERTY_VALUE_ON -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch -import org.amnezia.vpn.R import java.io.File import java.io.IOException import kotlin.reflect.KClass @@ -59,22 +58,22 @@ object Core { lateinit var app: Application lateinit var configureIntent: (Context) -> PendingIntent - val connectivity by lazy { app.getSystemService()!! } val packageInfo: PackageInfo by lazy { getPackageInfo(app.packageName) } val deviceStorage by lazy { if (Build.VERSION.SDK_INT < 24) app else DeviceStorageApp(app) } val directBootSupported by lazy { - Build.VERSION.SDK_INT >= 24 && app.getSystemService()?.storageEncryptionStatus == DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE_PER_USER + Build.VERSION.SDK_INT >= 24 && app.getSystemService()?.storageEncryptionStatus == + DevicePolicyManager.ENCRYPTION_STATUS_ACTIVE_PER_USER } val activeProfileIds get() = ProfileManager.getProfile(DataStore.profileId).let { - if (it == null) emptyList() else listOfNotNull(it.id) + if (it == null) emptyList() else listOfNotNull(it.id, it.udpFallback) } val currentProfile: Pair? get() { if (DataStore.directBootAware) DirectBoot.getDeviceProfile()?.apply { return this } return ProfileManager.expand(ProfileManager.getProfile(DataStore.profileId) - ?: return null) + ?: return null) } fun switchProfile(id: Long): Profile { @@ -84,37 +83,34 @@ object Core { } fun init(app: Application, configureClass: KClass) { - this.app = app - this.configureIntent = { - PendingIntent.getActivity(it, - 0, - Intent(it, - configureClass.java).setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT), - 0) + Core.app = app + configureIntent = { + PendingIntent.getActivity(it, 0, Intent(it, configureClass.java) + .setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT), 0) } if (Build.VERSION.SDK_INT >= 24) { // migrate old files deviceStorage.moveDatabaseFrom(app, Key.DB_PUBLIC) + val old = Acl.getFile(Acl.CUSTOM_RULES, app) + if (old.canRead()) { + Acl.getFile(Acl.CUSTOM_RULES).writeText(old.readText()) + old.delete() + } } // overhead of debug mode is minimal: https://github.com/Kotlin/kotlinx.coroutines/blob/f528898/docs/debugging.md#debug-mode System.setProperty(DEBUG_PROPERTY_NAME, DEBUG_PROPERTY_VALUE_ON) - // Fabric.with(deviceStorage, Crashlytics()) // multiple processes needs manual set-up - // FirebaseApp.initializeApp(deviceStorage) - WorkManager.initialize(deviceStorage, Configuration.Builder().apply { - setExecutor { GlobalScope.launch { it.run() } } - setTaskExecutor { GlobalScope.launch { it.run() } } - }.build()) + WorkManager.initialize(deviceStorage, Configuration.Builder().build()) // handle data restored/crash - if (Build.VERSION.SDK_INT >= 24 && DataStore.directBootAware && app.getSystemService()?.isUserUnlocked == true) DirectBoot.flushTrafficStats() + if (Build.VERSION.SDK_INT >= 24 && DataStore.directBootAware && + app.getSystemService()?.isUserUnlocked == true) DirectBoot.flushTrafficStats() if (DataStore.tcpFastOpen && !TcpFastOpen.sendEnabled) TcpFastOpen.enableTimeout() if (DataStore.publicStore.getLong(Key.assetUpdateTime, -1) != packageInfo.lastUpdateTime) { val assetManager = app.assets try { for (file in assetManager.list("acl")!!) assetManager.open("acl/$file").use { input -> - File(deviceStorage.noBackupFilesDir, file).outputStream() - .use { output -> input.copyTo(output) } + File(ContextCompat.getNoBackupFilesDir(deviceStorage), file).outputStream().use { output -> input.copyTo(output) } } } catch (e: IOException) { printLog(e) @@ -127,39 +123,38 @@ object Core { fun updateNotificationChannels() { if (Build.VERSION.SDK_INT >= 26) @RequiresApi(26) { val nm = app.getSystemService()!! - nm.createNotificationChannels(listOf(NotificationChannel("service-vpn", - app.getText(R.string.service_vpn), - if (Build.VERSION.SDK_INT >= 28) NotificationManager.IMPORTANCE_MIN - else NotificationManager.IMPORTANCE_LOW) // #1355 - )) + nm.createNotificationChannels(listOf( + NotificationChannel("service-vpn", app.getText(R.string.service_vpn), + NotificationManager.IMPORTANCE_LOW), + NotificationChannel("service-proxy", app.getText(R.string.service_proxy), + NotificationManager.IMPORTANCE_LOW), + NotificationChannel("service-transproxy", app.getText(R.string.service_transproxy), + NotificationManager.IMPORTANCE_LOW))) nm.deleteNotificationChannel("service-nat") // NAT mode is gone for good } } fun getPackageInfo(packageName: String) = app.packageManager.getPackageInfo(packageName, - if (Build.VERSION.SDK_INT >= 28) PackageManager.GET_SIGNING_CERTIFICATES - else @Suppress("DEPRECATION") PackageManager.GET_SIGNATURES)!! - - fun startService() = - ContextCompat.startForegroundService(app, Intent(app, ShadowsocksConnection.serviceClass)) + if (Build.VERSION.SDK_INT >= 28) PackageManager.GET_SIGNING_CERTIFICATES + else @Suppress("DEPRECATION") PackageManager.GET_SIGNATURES)!! + fun startService() = ContextCompat.startForegroundService(app, Intent(app, ShadowsocksConnection.serviceClass)) fun reloadService() = app.sendBroadcast(Intent(Action.RELOAD)) fun stopService() = app.sendBroadcast(Intent(Action.CLOSE)) - fun listenForPackageChanges(onetime: Boolean = true, callback: () -> Unit) = - object : BroadcastReceiver() { - init { - app.registerReceiver(this, IntentFilter().apply { - addAction(Intent.ACTION_PACKAGE_ADDED) - addAction(Intent.ACTION_PACKAGE_REMOVED) - addDataScheme("package") - }) - } - - override fun onReceive(context: Context, intent: Intent) { - if (intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) return - callback() - if (onetime) app.unregisterReceiver(this) - } + fun listenForPackageChanges(onetime: Boolean = true, callback: () -> Unit) = object : BroadcastReceiver() { + init { + app.registerReceiver(this, IntentFilter().apply { + addAction(Intent.ACTION_PACKAGE_ADDED) + addAction(Intent.ACTION_PACKAGE_REMOVED) + addDataScheme("package") + }) } + + override fun onReceive(context: Context, intent: Intent) { + if (intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) return + callback() + if (onetime) app.unregisterReceiver(this) + } + } } diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/VpnManager.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/VpnManager.kt new file mode 100644 index 00000000..044ba002 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/VpnManager.kt @@ -0,0 +1,170 @@ +package org.amnezia.vpn.shadowsocks.core + +import android.annotation.SuppressLint +import android.app.Activity +import android.content.Context +import android.content.Intent +import android.net.VpnService +import android.os.DeadObjectException +import android.os.Handler +import org.amnezia.vpn.shadowsocks.core.aidl.IShadowsocksService +import org.amnezia.vpn.shadowsocks.core.aidl.ShadowsocksConnection +import org.amnezia.vpn.shadowsocks.core.aidl.TrafficStats +import org.amnezia.vpn.shadowsocks.core.bg.BaseService +import org.amnezia.vpn.shadowsocks.core.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.utils.Key + +/** + * @author : kyle + * e-mail : 1239878682@qq.com + * @date : 2019/5/14 16:54 + * 看了我的代码,感动了吗? + */ +class VpnManager private constructor() { + + var state = BaseService.State.Idle + private var context: Context? = null + private val handler = Handler() + private val connection = ShadowsocksConnection(handler, true) + private var listener: OnStatusChangeListener? = null + private val callback: ShadowsocksConnection.Callback = object : ShadowsocksConnection.Callback { + override fun stateChanged(state: BaseService.State, profileName: String?, msg: String?) { + changeState(state) + } + + override fun onServiceDisconnected() = changeState(BaseService.State.Idle) + + override fun onServiceConnected(service: IShadowsocksService) { + changeState(try { + BaseService.State.values()[service.state] + } catch (_: DeadObjectException) { + BaseService.State.Idle + }) + } + + override fun trafficUpdated(profileId: Long, stats: TrafficStats) { + super.trafficUpdated(profileId, stats) + listener?.onTrafficUpdated(profileId, stats) + } + override fun onBinderDied() { + disconnect() + connect() + } + } + + private fun connect() { + context?.let { + connection.connect(it, callback) + } + } + + private fun disconnect() { + context?.let { connection.disconnect(it) } + } + + companion object { + private const val REQUEST_CONNECT = 1 + @SuppressLint("StaticFieldLeak") + private var instance: VpnManager? = null + + fun getInstance(): VpnManager { + if (instance == null) { + instance = VpnManager() + } + return instance as VpnManager + } + } + + fun init(context: Context){ + this.context=context + connect() + } + + /*** + * 开启或者关闭 自动判断 + */ + fun run(activity:Activity) { + when { + state.canStop -> Core.stopService() + DataStore.serviceMode == Key.modeVpn -> { + val intent = VpnService.prepare(activity) + if (intent != null) activity.startActivityForResult(intent, REQUEST_CONNECT) + else onActivityResult(REQUEST_CONNECT, Activity.RESULT_OK, null) + } + else -> Core.startService() + } + } + + /*** + * 设置状态监听 + */ + fun setOnStatusChangeListener(listener: OnStatusChangeListener) { + this.listener = listener + } + + /*** + * application调用stop时调用 + */ + fun onStop() { + connection.bandwidthTimeout = 0 + } + + fun onStart() { + connection.bandwidthTimeout = 1000 + } + /*** + * activity调用onActivityResult时调用 + */ + fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + when { + requestCode != REQUEST_CONNECT -> { + } + resultCode == Activity.RESULT_OK -> Core.startService() + else -> { + //无权限 + } + } + } + + /*** + * 改变当前状态 + */ + private fun changeState(state: BaseService.State) { + this.state = state + this.listener?.onStatusChanged(state) + } + + /*** + * 状态改变监听器 + */ + interface OnStatusChangeListener { + fun onStatusChanged(state: BaseService.State) + + fun onTrafficUpdated(profileId: Long, stats: TrafficStats) + } + + enum class Route(name: String) { + //全部 + ALL("all") + //绕过局域网地址 + , + BY_PASS_LAN("bypass-lan") + //绕过中国大陆地址 + , + BY_PASS_CHINA("bypass-china") + //绕过局域网和中国大陆地址 + , + BY_PASS_LAN_CHINA("bypass-lan-china") + //GFW列表 + , + GFW_LIST("gfwlist") + //仅代理中国大陆地址 + , + CHINA_LIST("china-list") + //自定义规则 + , + CUSTOM_RULES("custom-rules"); + + var route = name + } +} diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/VpnRequestActivity.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/VpnRequestActivity.kt new file mode 100644 index 00000000..8a58252f --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/VpnRequestActivity.kt @@ -0,0 +1,75 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core + +import android.app.KeyguardManager +import android.content.BroadcastReceiver +import android.content.Intent +import android.content.IntentFilter +import android.net.VpnService +import android.os.Bundle +import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity +import androidx.core.content.getSystemService + +import org.amnezia.vpn.R +import org.amnezia.vpn.shadowsocks.core.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.utils.Key +import org.amnezia.vpn.shadowsocks.core.utils.broadcastReceiver + +class VpnRequestActivity : AppCompatActivity() { + companion object { + private const val TAG = "VpnRequestActivity" + private const val REQUEST_CONNECT = 1 + } + + private var receiver: BroadcastReceiver? = null + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + if (DataStore.serviceMode != Key.modeVpn) { + finish() + return + } + if (getSystemService()!!.isKeyguardLocked) { + receiver = broadcastReceiver { _, _ -> request() } + registerReceiver(receiver, IntentFilter(Intent.ACTION_USER_PRESENT)) + } else request() + } + + private fun request() { + val intent = VpnService.prepare(this) + if (intent == null) onActivityResult(REQUEST_CONNECT, RESULT_OK, null) + else startActivityForResult(intent, REQUEST_CONNECT) + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + if (resultCode == RESULT_OK) Core.startService() else { + Toast.makeText(this, R.string.vpn_permission_denied, Toast.LENGTH_LONG).show() + } + finish() + } + + override fun onDestroy() { + super.onDestroy() + if (receiver != null) unregisterReceiver(receiver) + } +} diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/acl/Acl.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/acl/Acl.kt new file mode 100644 index 00000000..2b0623b5 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/acl/Acl.kt @@ -0,0 +1,200 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core.acl + +import android.content.Context +import androidx.recyclerview.widget.SortedList + +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.net.Subnet +import org.amnezia.vpn.shadowsocks.core.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.utils.asIterable +import java.io.File +import java.io.IOException +import java.io.Reader +import java.net.URL +import java.net.URLConnection + +class Acl { + companion object { + const val TAG = "Acl" + const val ALL = "all" + const val BYPASS_LAN = "bypass-lan" + const val BYPASS_CHN = "bypass-china" + const val BYPASS_LAN_CHN = "bypass-lan-china" + const val GFWLIST = "gfwlist" + const val CHINALIST = "china-list" + const val CUSTOM_RULES = "custom-rules" + + val networkAclParser = "^IMPORT_URL\\s*<(.+)>\\s*$".toRegex() + + fun getFile(id: String, context: Context = Core.deviceStorage) = File(context.noBackupFilesDir, "$id.acl") + + var customRules: Acl + get() { + val acl = Acl() + val str = DataStore.publicStore.getString(CUSTOM_RULES) + if (str != null) acl.fromReader(str.reader(), true) + if (!acl.bypass) { + acl.bypass = true + acl.subnets.clear() + } + return acl + } + set(value) = DataStore.publicStore.putString(CUSTOM_RULES, + if ((!value.bypass || value.subnets.size() == 0) && value.bypassHostnames.size() == 0 && + value.proxyHostnames.size() == 0 && value.urls.size() == 0) null else value.toString()) + fun save(id: String, acl: Acl) = getFile(id).writeText(acl.toString()) + } + + private abstract class BaseSorter : SortedList.Callback() { + override fun onInserted(position: Int, count: Int) { } + override fun areContentsTheSame(oldItem: T?, newItem: T?): Boolean = oldItem == newItem + override fun onMoved(fromPosition: Int, toPosition: Int) { } + override fun onChanged(position: Int, count: Int) { } + override fun onRemoved(position: Int, count: Int) { } + override fun areItemsTheSame(item1: T?, item2: T?): Boolean = item1 == item2 + override fun compare(o1: T?, o2: T?): Int = + if (o1 == null) if (o2 == null) 0 else 1 else if (o2 == null) -1 else compareNonNull(o1, o2) + abstract fun compareNonNull(o1: T, o2: T): Int + } + private open class DefaultSorter> : BaseSorter() { + override fun compareNonNull(o1: T, o2: T): Int = o1.compareTo(o2) + } + private object StringSorter : DefaultSorter() + private object SubnetSorter : DefaultSorter() + private object URLSorter : BaseSorter() { + private val ordering = compareBy({ it.host }, { it.port }, { it.file }, { it.protocol }) + override fun compareNonNull(o1: URL, o2: URL): Int = ordering.compare(o1, o2) + } + + val bypassHostnames = SortedList(String::class.java, StringSorter) + val proxyHostnames = SortedList(String::class.java, StringSorter) + val subnets = SortedList(Subnet::class.java, SubnetSorter) + val urls = SortedList(URL::class.java, URLSorter) + var bypass = false + + fun fromAcl(other: Acl): Acl { + bypassHostnames.clear() + for (item in other.bypassHostnames.asIterable()) bypassHostnames.add(item) + proxyHostnames.clear() + for (item in other.proxyHostnames.asIterable()) proxyHostnames.add(item) + subnets.clear() + for (item in other.subnets.asIterable()) subnets.add(item) + urls.clear() + for (item in other.urls.asIterable()) urls.add(item) + bypass = other.bypass + return this + } + fun fromReader(reader: Reader, defaultBypass: Boolean = false): Acl { + bypassHostnames.clear() + proxyHostnames.clear() + subnets.clear() + urls.clear() + bypass = defaultBypass + val bypassSubnets by lazy { SortedList(Subnet::class.java, SubnetSorter) } + val proxySubnets by lazy { SortedList(Subnet::class.java, SubnetSorter) } + var hostnames: SortedList? = if (defaultBypass) proxyHostnames else bypassHostnames + var subnets: SortedList? = if (defaultBypass) proxySubnets else bypassSubnets + reader.useLines { + for (line in it) { + @Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN") + val blocks = (line as java.lang.String).split("#", 2) + val url = networkAclParser.matchEntire(blocks.getOrElse(1) { "" })?.groupValues?.getOrNull(1) + if (url != null) urls.add(URL(url)) + when (val input = blocks[0].trim()) { + "[outbound_block_list]" -> { + hostnames = null + subnets = null + } + "[black_list]", "[bypass_list]" -> { + hostnames = bypassHostnames + subnets = bypassSubnets + } + "[white_list]", "[proxy_list]" -> { + hostnames = proxyHostnames + subnets = proxySubnets + } + "[reject_all]", "[bypass_all]" -> bypass = true + "[accept_all]", "[proxy_all]" -> bypass = false + else -> if (subnets != null && input.isNotEmpty()) { + val subnet = Subnet.fromString(input) + if (subnet == null) hostnames!!.add(input) else subnets!!.add(subnet) + } + } + } + } + for (item in (if (bypass) proxySubnets else bypassSubnets).asIterable()) this.subnets.add(item) + return this + } + + fun fromId(id: String): Acl = try { + fromReader(getFile(id).bufferedReader()) + } catch (_: IOException) { this } + + suspend fun flatten(depth: Int, connect: suspend (URL) -> URLConnection): Acl { + if (depth > 0) for (url in urls.asIterable()) { + val child = Acl() + try { + child.fromReader(connect(url).getInputStream().bufferedReader(), bypass).flatten(depth - 1, connect) + } catch (e: IOException) { + e.printStackTrace() + continue + } + if (bypass != child.bypass) { + child.subnets.clear() // subnets for the different mode are discarded + child.bypass = bypass + } + for (item in child.bypassHostnames.asIterable()) bypassHostnames.add(item) + for (item in child.proxyHostnames.asIterable()) proxyHostnames.add(item) + for (item in child.subnets.asIterable()) subnets.add(item) + } + urls.clear() + return this + } + + override fun toString(): String { + val result = StringBuilder() + result.append(if (bypass) "[bypass_all]\n" else "[proxy_all]\n") + val bypassList = (if (bypass) { + bypassHostnames.asIterable().asSequence() + } else { + subnets.asIterable().asSequence().map(Subnet::toString) + bypassHostnames.asIterable().asSequence() + }).toList() + val proxyList = (if (bypass) { + subnets.asIterable().asSequence().map(Subnet::toString) + proxyHostnames.asIterable().asSequence() + } else { + proxyHostnames.asIterable().asSequence() + }).toList() + if (bypassList.isNotEmpty()) { + result.append("[bypass_list]\n") + result.append(bypassList.joinToString("\n")) + result.append('\n') + } + if (proxyList.isNotEmpty()) { + result.append("[proxy_list]\n") + result.append(proxyList.joinToString("\n")) + result.append('\n') + } + result.append(urls.asIterable().joinToString("") { "#IMPORT_URL <$it>\n" }) + return result.toString() + } +} diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/acl/AclSyncer.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/acl/AclSyncer.kt new file mode 100644 index 00000000..f3214356 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/acl/AclSyncer.kt @@ -0,0 +1,58 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core.acl + +import android.content.Context +import androidx.work.* +import kotlinx.coroutines.Dispatchers +import java.io.IOException +import java.net.URL +import java.util.concurrent.TimeUnit + +class AclSyncer(context: Context, workerParams: WorkerParameters) : CoroutineWorker(context, workerParams) { + companion object { + private const val KEY_ROUTE = "route" + + fun schedule(route: String) = WorkManager.getInstance().enqueueUniqueWork(route, ExistingWorkPolicy.REPLACE, + OneTimeWorkRequestBuilder().run { + setInputData(Data.Builder().putString(KEY_ROUTE, route).build()) + setConstraints(Constraints.Builder() + .setRequiredNetworkType(NetworkType.UNMETERED) + .setRequiresCharging(true) + .build()) + setInitialDelay(10, TimeUnit.SECONDS) + build() + }) + } + + override val coroutineContext get() = Dispatchers.IO + + override suspend fun doWork(): Result = try { + val route = inputData.getString(KEY_ROUTE)!! + val acl = URL("https://shadowsocks.org/acl/android/v1/$route.acl").openStream().bufferedReader() + .use { it.readText() } + Acl.getFile(route).printWriter().use { it.write(acl) } + Result.success() + } catch (e: IOException) { + e.printStackTrace() + Result.retry() + } +} diff --git a/client/android/src/com/github/shadowsocks/aidl/ShadowsocksConnection.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/aidl/ShadowsocksConnection.kt similarity index 71% rename from client/android/src/com/github/shadowsocks/aidl/ShadowsocksConnection.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/aidl/ShadowsocksConnection.kt index 9c67a51e..a411effc 100644 --- a/client/android/src/com/github/shadowsocks/aidl/ShadowsocksConnection.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/aidl/ShadowsocksConnection.kt @@ -18,44 +18,50 @@ * * *******************************************************************************/ -package com.github.shadowsocks.aidl +package org.amnezia.vpn.shadowsocks.core.aidl import android.content.ComponentName import android.content.Context import android.content.Intent import android.content.ServiceConnection +import android.os.DeadObjectException import android.os.Handler import android.os.IBinder import android.os.RemoteException -import com.github.shadowsocks.LocalVpnService -import com.github.shadowsocks.bg.BaseService -import com.github.shadowsocks.utils.Action +import org.amnezia.vpn.shadowsocks.core.bg.BaseService +import org.amnezia.vpn.shadowsocks.core.bg.ProxyService +import org.amnezia.vpn.shadowsocks.core.bg.TransproxyService +import org.amnezia.vpn.shadowsocks.core.bg.VpnService +import org.amnezia.vpn.shadowsocks.core.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.utils.Action +import org.amnezia.vpn.shadowsocks.core.utils.Key /** * This object should be compact as it will not get GC-ed. */ -class ShadowsocksConnection( - private val handler: Handler = Handler(), - private var listenForDeath: Boolean = false -) : ServiceConnection, - IBinder.DeathRecipient { +class ShadowsocksConnection(private val handler: Handler = Handler(), + private var listenForDeath: Boolean = false) : + ServiceConnection, IBinder.DeathRecipient { companion object { - val serviceClass = LocalVpnService::class.java + val serviceClass get() = when (DataStore.serviceMode) { + Key.modeProxy -> ProxyService::class + Key.modeVpn -> VpnService::class + Key.modeTransproxy -> TransproxyService::class + else -> throw UnknownError() + }.java } interface Callback { fun stateChanged(state: BaseService.State, profileName: String?, msg: String?) - fun trafficUpdated(profileId: Long, stats: TrafficStats) {} - fun trafficPersisted(profileId: Long) {} + fun trafficUpdated(profileId: Long, stats: TrafficStats) { } + fun trafficPersisted(profileId: Long) { } fun onServiceConnected(service: IShadowsocksService) - /** * Different from Android framework, this method will be called even when you call `detachService`. */ - fun onServiceDisconnected() {} - - fun onBinderDied() {} + fun onServiceDisconnected() { } + fun onBinderDied() { } } private var connectionActive = false @@ -64,16 +70,14 @@ class ShadowsocksConnection( private val serviceCallback = object : IShadowsocksServiceCallback.Stub() { override fun stateChanged(state: Int, profileName: String?, msg: String?) { val callback = callback ?: return - handler.post { - callback.stateChanged(BaseService.State.values()[state], profileName, msg) - } + handler.post { callback.stateChanged(BaseService.State.values()[state], profileName, msg) } } - override fun trafficUpdated(profileId: Long, stats: TrafficStats) { val callback = callback ?: return - handler.post { callback.trafficUpdated(profileId, stats) } + handler.post { + callback.trafficUpdated(profileId, stats) + } } - override fun trafficPersisted(profileId: Long) { val callback = callback ?: return handler.post { callback.trafficPersisted(profileId) } @@ -83,30 +87,25 @@ class ShadowsocksConnection( var bandwidthTimeout = 0L set(value) { - try { - if (value > 0) service?.startListeningForBandwidth(serviceCallback, value) - else service?.stopListeningForBandwidth(serviceCallback) - } catch (_: RemoteException) { - } + val service = service + if (bandwidthTimeout != value && service != null) + if (value > 0) service.startListeningForBandwidth(serviceCallback, value) else try { + service.stopListeningForBandwidth(serviceCallback) + } catch (_: DeadObjectException) { } field = value } var service: IShadowsocksService? = null override fun onServiceConnected(name: ComponentName?, binder: IBinder) { this.binder = binder + if (listenForDeath) binder.linkToDeath(this, 0) val service = IShadowsocksService.Stub.asInterface(binder)!! this.service = service - try { - if (listenForDeath) binder.linkToDeath(this, 0) - check(!callbackRegistered) + if (!callbackRegistered) try { service.registerCallback(serviceCallback) callbackRegistered = true - if (bandwidthTimeout > 0) service.startListeningForBandwidth( - serviceCallback, - bandwidthTimeout - ) - } catch (_: RemoteException) { - } + if (bandwidthTimeout > 0) service.startListeningForBandwidth(serviceCallback, bandwidthTimeout) + } catch (_: RemoteException) { } callback!!.onServiceConnected(service) } @@ -119,7 +118,6 @@ class ShadowsocksConnection( override fun binderDied() { service = null - callbackRegistered = false callback?.also { handler.post(it::onBinderDied) } } @@ -127,8 +125,7 @@ class ShadowsocksConnection( val service = service if (service != null && callbackRegistered) try { service.unregisterCallback(serviceCallback) - } catch (_: RemoteException) { - } + } catch (_: RemoteException) { } callbackRegistered = false } @@ -145,15 +142,11 @@ class ShadowsocksConnection( unregisterCallback() if (connectionActive) try { context.unbindService(this) - } catch (_: IllegalArgumentException) { - } // ignore + } catch (_: IllegalArgumentException) { } // ignore connectionActive = false if (listenForDeath) binder?.unlinkToDeath(this, 0) binder = null - try { - service?.stopListeningForBandwidth(serviceCallback) - } catch (_: RemoteException) { - } + service?.stopListeningForBandwidth(serviceCallback) service = null callback = null } diff --git a/client/android/src/com/github/shadowsocks/aidl/TrafficStats.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/aidl/TrafficStats.kt similarity index 79% rename from client/android/src/com/github/shadowsocks/aidl/TrafficStats.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/aidl/TrafficStats.kt index 65bcdbf0..7ac06bf0 100644 --- a/client/android/src/com/github/shadowsocks/aidl/TrafficStats.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/aidl/TrafficStats.kt @@ -18,34 +18,31 @@ * * *******************************************************************************/ -package com.github.shadowsocks.aidl +package org.amnezia.vpn.shadowsocks.core.aidl import android.os.Parcel import android.os.Parcelable data class TrafficStats( - // Bytes per second - var txRate: Long = 0L, var rxRate: Long = 0L, + // Bytes per second + var txRate: Long = 0L, + var rxRate: Long = 0L, - // Bytes for the current session - var txTotal: Long = 0L, var rxTotal: Long = 0L) : Parcelable { - operator fun plus(other: TrafficStats) = TrafficStats(txRate + other.txRate, - rxRate + other.rxRate, - txTotal + other.txTotal, - rxTotal + other.rxTotal) - - constructor(parcel: Parcel) : this(parcel.readLong(), - parcel.readLong(), - parcel.readLong(), - parcel.readLong()) + // Bytes for the current session + var txTotal: Long = 0L, + var rxTotal: Long = 0L +) : Parcelable { + operator fun plus(other: TrafficStats) = TrafficStats( + txRate + other.txRate, rxRate + other.rxRate, + txTotal + other.txTotal, rxTotal + other.rxTotal) + constructor(parcel: Parcel) : this(parcel.readLong(), parcel.readLong(), parcel.readLong(), parcel.readLong()) override fun writeToParcel(parcel: Parcel, flags: Int) { parcel.writeLong(txRate) parcel.writeLong(rxRate) parcel.writeLong(txTotal) parcel.writeLong(rxTotal) } - override fun describeContents() = 0 companion object CREATOR : Parcelable.Creator { diff --git a/client/android/src/com/github/shadowsocks/bg/BaseService.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/BaseService.kt similarity index 67% rename from client/android/src/com/github/shadowsocks/bg/BaseService.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/bg/BaseService.kt index 3ec5a291..47e24cfb 100644 --- a/client/android/src/com/github/shadowsocks/bg/BaseService.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/BaseService.kt @@ -18,7 +18,7 @@ * * *******************************************************************************/ -package com.github.shadowsocks.bg +package org.amnezia.vpn.shadowsocks.core.bg import android.app.Service import android.content.Context @@ -26,16 +26,21 @@ import android.content.Intent import android.content.IntentFilter import android.os.* import androidx.core.content.getSystemService -import com.github.shadowsocks.Core -import com.github.shadowsocks.Core.app -import com.github.shadowsocks.aidl.IShadowsocksService -import com.github.shadowsocks.aidl.IShadowsocksServiceCallback -import com.github.shadowsocks.aidl.TrafficStats -import com.github.shadowsocks.net.HostsFile -import com.github.shadowsocks.preference.DataStore -import com.github.shadowsocks.utils.* + +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.Core.app +import org.amnezia.vpn.shadowsocks.core.aidl.IShadowsocksService +import org.amnezia.vpn.shadowsocks.core.aidl.IShadowsocksServiceCallback +import org.amnezia.vpn.shadowsocks.core.aidl.TrafficStats +import org.amnezia.vpn.shadowsocks.core.plugin.PluginManager +import org.amnezia.vpn.shadowsocks.core.utils.Action +import org.amnezia.vpn.shadowsocks.core.utils.broadcastReceiver +import org.amnezia.vpn.shadowsocks.core.utils.printLog +import org.amnezia.vpn.shadowsocks.core.utils.readableMessage import kotlinx.coroutines.* import java.io.File +import java.net.BindException +import java.net.InetAddress import java.net.URL import java.net.UnknownHostException import java.util.* @@ -50,26 +55,24 @@ object BaseService { * Idle state is only used by UI and will never be returned by BaseService. */ Idle, - Connecting(true), Connected(true), Stopping, Stopped, + Connecting(true), + Connected(true), + Stopping, + Stopped, } const val CONFIG_FILE = "shadowsocks.conf" const val CONFIG_FILE_UDP = "shadowsocks-udp.conf" - interface ExpectedException - class ExpectedExceptionWrapper(e: Exception) : Exception(e.localizedMessage, e), - ExpectedException - class Data internal constructor(private val service: Interface) { var state = State.Stopped var processes: GuardedProcessPool? = null var proxy: ProxyInstance? = null - // no udpFallback. xinlake + var udpFallback: ProxyInstance? = null var notification: ServiceNotification? = null val closeReceiver = broadcastReceiver { _, intent -> when (intent.action) { - Intent.ACTION_SHUTDOWN -> service.persistStats() Action.RELOAD -> service.forceLoad() else -> service.stopRunner() } @@ -86,16 +89,15 @@ object BaseService { } } - class Binder(private var data: Data? = null) : IShadowsocksService.Stub(), CoroutineScope, AutoCloseable { - private val callbacks = object : RemoteCallbackList() { + class Binder(private var data: Data? = null) : IShadowsocksService.Stub(), AutoCloseable { + val callbacks = object : RemoteCallbackList() { override fun onCallbackDied(callback: IShadowsocksServiceCallback?, cookie: Any?) { super.onCallbackDied(callback, cookie) stopListeningForBandwidth(callback ?: return) } } private val bandwidthListeners = mutableMapOf() // the binder is the real identifier - override val coroutineContext = Dispatchers.Main.immediate + Job() - private var looper: Job? = null + private val handler = Handler() override fun getState(): Int = (data?.state ?: State.Idle).ordinal override fun getProfileName(): String = data?.proxy?.profile?.name ?: "Idle" @@ -105,68 +107,67 @@ object BaseService { } private fun broadcast(work: (IShadowsocksServiceCallback) -> Unit) { - val count = callbacks.beginBroadcast() - try { - repeat(count) { - try { - work(callbacks.getBroadcastItem(it)) - } catch (_: RemoteException) { - } catch (e: Exception) { - printLog(e) - } + repeat(callbacks.beginBroadcast()) { + try { + work(callbacks.getBroadcastItem(it)) + } catch (_: DeadObjectException) { + } catch (e: Exception) { + printLog(e) } - } finally { - callbacks.finishBroadcast() } + callbacks.finishBroadcast() } - private suspend fun loop() { - while (true) { -// delay(bandwidthListeners.values.min() ?: return) - delay(5000) - val proxies = listOfNotNull(data?.proxy) - val stats = proxies.map { Pair(it.profile.id, it.trafficMonitor?.requestUpdate()) } + private fun registerTimeout() { + handler.postDelayed(this::onTimeout, bandwidthListeners.values.min() ?: return) + } + private fun onTimeout() { + val proxies = listOfNotNull(data?.proxy, data?.udpFallback) + val stats = proxies + .map { Pair(it.profile.id, it.trafficMonitor?.requestUpdate()) } .filter { it.second != null } .map { Triple(it.first, it.second!!.first, it.second!!.second) } - if (stats.any { it.third } && data?.state == State.Connected && bandwidthListeners.isNotEmpty()) { - val sum = stats.fold(TrafficStats()) { a, b -> a + b.second } - broadcast { item -> - if (bandwidthListeners.contains(item.asBinder())) { - stats.forEach { (id, stats) -> item.trafficUpdated(id, stats) } - item.trafficUpdated(0, sum) - } + if (stats.any { it.third } && data?.state == State.Connected && bandwidthListeners.isNotEmpty()) { + val sum = stats.fold(TrafficStats()) { a, b -> a + b.second } + broadcast { item -> + if (bandwidthListeners.contains(item.asBinder())) { + stats.forEach { (id, stats) -> item.trafficUpdated(id, stats) } + item.trafficUpdated(0, sum) } } } + registerTimeout() } override fun startListeningForBandwidth(cb: IShadowsocksServiceCallback, timeout: Long) { - launch { - if (bandwidthListeners.isEmpty() and (bandwidthListeners.put(cb.asBinder(), timeout) == null)) { - check(looper == null) - looper = launch { loop() } - } - if (data?.state != State.Connected) return@launch + val wasEmpty = bandwidthListeners.isEmpty() + if (bandwidthListeners.put(cb.asBinder(), timeout) == null) { + if (wasEmpty) registerTimeout() + if (data?.state != State.Connected) return var sum = TrafficStats() val data = data - val proxy = data?.proxy ?: return@launch + val proxy = data?.proxy ?: return proxy.trafficMonitor?.out.also { stats -> cb.trafficUpdated(proxy.profile.id, if (stats == null) sum else { sum += stats stats }) } - + data.udpFallback?.also { udpFallback -> + udpFallback.trafficMonitor?.out.also { stats -> + cb.trafficUpdated(udpFallback.profile.id, if (stats == null) TrafficStats() else { + sum += stats + stats + }) + } + } cb.trafficUpdated(0, sum) } } override fun stopListeningForBandwidth(cb: IShadowsocksServiceCallback) { - launch { - if (bandwidthListeners.remove(cb.asBinder()) != null && bandwidthListeners.isEmpty()) { - looper!!.cancel() - looper = null - } + if (bandwidthListeners.remove(cb.asBinder()) != null && bandwidthListeners.isEmpty()) { + handler.removeCallbacksAndMessages(null) } } @@ -188,7 +189,7 @@ object BaseService { override fun close() { callbacks.kill() - cancel() + handler.removeCallbacksAndMessages(null) data = null } } @@ -198,13 +199,13 @@ object BaseService { val tag: String fun createNotification(profileName: String): ServiceNotification - fun onBind(intent: Intent): IBinder? = - if (intent.action == Action.SERVICE) data.binder else null + fun onBind(intent: Intent): IBinder? = if (intent.action == Action.SERVICE) data.binder else null fun forceLoad() { val (profile, fallback) = Core.currentProfile - ?: return stopRunner(false, (this as Context).getString(R.string.profile_empty)) - if (profile.host.isEmpty() || profile.password.isEmpty() || fallback != null && (fallback.host.isEmpty() || fallback.password.isEmpty())) { + ?: return stopRunner(false, (this as Context).getString(R.string.profile_empty)) + if (profile.host.isEmpty() || profile.password.isEmpty() || + fallback != null && (fallback.host.isEmpty() || fallback.password.isEmpty())) { stopRunner(false, (this as Context).getString(R.string.proxy_empty)) return } @@ -212,21 +213,25 @@ object BaseService { when { s == State.Stopped -> startRunner() s.canStop -> stopRunner(true) - // else -> Crashlytics.log(Log.WARN, tag, "Illegal state when invoking use: $s") + else -> {} } } fun buildAdditionalArguments(cmd: ArrayList): ArrayList = cmd - suspend fun startProcesses(hosts: HostsFile) { - val configRoot = - (if (Build.VERSION.SDK_INT < 24 || app.getSystemService() - ?.isUserUnlocked != false) app else Core.deviceStorage).noBackupFilesDir - + suspend fun startProcesses() { + val configRoot = (if (Build.VERSION.SDK_INT < 24 || app.getSystemService() + ?.isUserUnlocked != false) app else Core.deviceStorage).noBackupFilesDir + val udpFallback = data.udpFallback data.proxy!!.start(this, - File(Core.deviceStorage.noBackupFilesDir, "stat_main"), - File(configRoot, CONFIG_FILE), - "-u") + File(Core.deviceStorage.noBackupFilesDir, "stat_main"), + File(configRoot, CONFIG_FILE), + if (udpFallback == null) "-u" else null) + check(udpFallback?.pluginPath == null) { "UDP fallback cannot have plugins" } + udpFallback?.start(this, + File(Core.deviceStorage.noBackupFilesDir, "stat_udp"), + File(configRoot, CONFIG_FILE_UDP), + "-U") } fun startRunner() { @@ -247,7 +252,6 @@ object BaseService { // channge the state data.changeState(State.Stopping) GlobalScope.launch(Dispatchers.Main.immediate) { - // Core.analytics.logEvent("stop", bundleOf(Pair(FirebaseAnalytics.Param.METHOD, tag))) data.connectingJob?.cancelAndJoin() // ensure stop connecting first this@Interface as Service // we use a coroutineScope here to allow clean-up in parallel @@ -263,11 +267,12 @@ object BaseService { data.notification?.destroy() data.notification = null - val ids = listOfNotNull(data.proxy).map { + val ids = listOfNotNull(data.proxy, data.udpFallback).map { it.shutdown(this) it.profile.id } data.proxy = null + data.udpFallback = null data.binder.trafficPersisted(ids) } @@ -275,17 +280,12 @@ object BaseService { data.changeState(State.Stopped, msg) // stop the service if nothing has bound to it - if (restart) startRunner() else { - stopSelf() - } + if (restart) startRunner() else stopSelf() } } - fun persistStats() = - listOfNotNull(data.proxy).forEach { it.trafficMonitor?.persistStats(it.profile.id) } - - suspend fun preInit() {} - suspend fun resolver(host: String) = DnsResolverCompat.resolveOnActiveNetwork(host) + suspend fun preInit() { } + suspend fun resolver(host: String) = InetAddress.getAllByName(host) suspend fun openConnection(url: URL) = url.openConnection() fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { @@ -299,10 +299,11 @@ object BaseService { stopRunner(false, getString(R.string.profile_empty)) return Service.START_NOT_STICKY } - val (profile, _) = profilePair + val (profile, fallback) = profilePair profile.name = profile.formattedName // save name for later queries val proxy = ProxyInstance(profile) data.proxy = proxy + data.udpFallback = if (fallback == null) null else ProxyInstance(fallback, profile.route) if (!data.closeReceiverRegistered) { registerReceiver(data.closeReceiver, IntentFilter().apply { @@ -314,29 +315,35 @@ object BaseService { } data.notification = createNotification(profile.formattedName) - // Core.analytics.logEvent("start", bundleOf(Pair(FirebaseAnalytics.Param.METHOD, tag))) data.changeState(State.Connecting) data.connectingJob = GlobalScope.launch(Dispatchers.Main) { try { Executable.killAll() // clean up old processes preInit() - val hosts = HostsFile(DataStore.publicStore.getString(Key.hosts) ?: "") - proxy.init(this@Interface, hosts) + proxy.init(this@Interface) + data.udpFallback?.init(this@Interface) data.processes = GuardedProcessPool { printLog(it) stopRunner(false, it.readableMessage) } - startProcesses(hosts) - // proxy.scheduleUpdate() // XinLake. Bypass-LAN only + startProcesses() + + proxy.scheduleUpdate() + data.udpFallback?.scheduleUpdate() + data.changeState(State.Connected) } catch (_: CancellationException) { // if the job was cancelled, it is canceller's responsibility to call stopRunner } catch (_: UnknownHostException) { stopRunner(false, getString(R.string.invalid_server)) } catch (exc: Throwable) { - if (exc is ExpectedException) exc.printStackTrace() else printLog(exc) + if (exc !is PluginManager.PluginNotFoundException && + exc !is BindException && + exc !is VpnService.NullConnectionException) { + printLog(exc) + } stopRunner(false, "${getString(R.string.service_failed)}: ${exc.readableMessage}") } finally { data.connectingJob = null diff --git a/client/android/src/com/github/shadowsocks/bg/Executable.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/Executable.kt similarity index 87% rename from client/android/src/com/github/shadowsocks/bg/Executable.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/bg/Executable.kt index 830f6ccf..48e544c3 100644 --- a/client/android/src/com/github/shadowsocks/bg/Executable.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/Executable.kt @@ -18,25 +18,25 @@ * * *******************************************************************************/ -package com.github.shadowsocks.bg +package org.amnezia.vpn.shadowsocks.core.bg import android.system.ErrnoException import android.system.Os import android.system.OsConstants import android.text.TextUtils + import java.io.File import java.io.IOException object Executable { - // libredsocks.so is not required. xinlake + const val REDSOCKS = "libredsocks.so" const val SS_LOCAL = "libss-local.so" const val TUN2SOCKS = "libtun2socks.so" - private val EXECUTABLES = setOf(SS_LOCAL, TUN2SOCKS) + private val EXECUTABLES = setOf(SS_LOCAL, REDSOCKS, TUN2SOCKS) fun killAll() { - for (process in File("/proc").listFiles { _, name -> TextUtils.isDigitsOnly(name) } - ?: return) { + for (process in File("/proc").listFiles { _, name -> TextUtils.isDigitsOnly(name) }) { val exe = File(try { File(process, "cmdline").inputStream().bufferedReader().readText() } catch (_: IOException) { @@ -47,8 +47,6 @@ object Executable { } catch (e: ErrnoException) { if (e.errno != OsConstants.ESRCH) { e.printStackTrace() - // Crashlytics.log(Log.WARN, "kill", "SIGKILL ${exe.absolutePath} (${process.name}) failed") - // Crashlytics.logException(e) } } } diff --git a/client/android/src/com/github/shadowsocks/bg/GuardedProcessPool.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/GuardedProcessPool.kt similarity index 80% rename from client/android/src/com/github/shadowsocks/bg/GuardedProcessPool.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/bg/GuardedProcessPool.kt index cd58c9c5..40a25c1b 100644 --- a/client/android/src/com/github/shadowsocks/bg/GuardedProcessPool.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/GuardedProcessPool.kt @@ -18,15 +18,17 @@ * * *******************************************************************************/ -package com.github.shadowsocks.bg +package org.amnezia.vpn.shadowsocks.core.bg import android.os.Build import android.os.SystemClock import android.system.ErrnoException import android.system.Os import android.system.OsConstants +import android.util.Log import androidx.annotation.MainThread -import com.github.shadowsocks.Core + +import org.amnezia.vpn.shadowsocks.core.Core import kotlinx.coroutines.* import kotlinx.coroutines.channels.Channel import java.io.File @@ -60,33 +62,22 @@ class GuardedProcessPool(private val onFatal: suspend (IOException) -> Unit) : C val exitChannel = Channel() try { while (true) { - thread(name = "stderr-$cmdName") { - streamLogger(process.errorStream) { - // Crashlytics.log(Log.ERROR, cmdName, it) - } - } + thread(name = "stderr-$cmdName") { streamLogger(process.errorStream) { Log.e(cmdName, it) } } thread(name = "stdout-$cmdName") { - streamLogger(process.inputStream) { - // Crashlytics.log(Log.VERBOSE, cmdName, it) - } + streamLogger(process.inputStream) { Log.i(cmdName, it) } // this thread also acts as a daemon thread for waitFor runBlocking { exitChannel.send(process.waitFor()) } } val startTime = SystemClock.elapsedRealtime() val exitCode = exitChannel.receive() running = false - when { - SystemClock.elapsedRealtime() - startTime < 1000 -> throw IOException("$cmdName exits too fast (exit code: $exitCode)") - // exitCode == 128 + OsConstants.SIGKILL -> Crashlytics.log(Log.WARN, TAG, "$cmdName was killed") - // else -> Crashlytics.logException(IOException("$cmdName unexpectedly exits with code $exitCode")) + if (SystemClock.elapsedRealtime() - startTime < 1000) { + throw IOException("$cmdName exits too fast (exit code: $exitCode)") } - // Crashlytics.log(Log.DEBUG, TAG, "restart process: ${Commandline.toString(cmd)} (last exit code: $exitCode)") start() - running = true onRestartCallback?.invoke() } } catch (e: IOException) { - // Crashlytics.log(Log.WARN, TAG, "error occurred. stop guard: " + Commandline.toString(cmd)) GlobalScope.launch(Dispatchers.Main) { onFatal(e) } } finally { if (running) withContext(NonCancellable) { @@ -114,7 +105,6 @@ class GuardedProcessPool(private val onFatal: suspend (IOException) -> Unit) : C @MainThread fun start(cmd: List, onRestartCallback: (suspend () -> Unit)? = null) { - // Crashlytics.log(Log.DEBUG, TAG, "start process: " + Commandline.toString(cmd)) Guard(cmd).apply { start() // if start fails, IOException will be thrown directly launch { looper(onRestartCallback) } diff --git a/client/android/src/com/github/shadowsocks/bg/LocalDnsService.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/LocalDnsService.kt similarity index 62% rename from client/android/src/com/github/shadowsocks/bg/LocalDnsService.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/bg/LocalDnsService.kt index a638eba5..a38721e2 100644 --- a/client/android/src/com/github/shadowsocks/bg/LocalDnsService.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/LocalDnsService.kt @@ -18,39 +18,47 @@ * * *******************************************************************************/ -package com.github.shadowsocks.bg +package org.amnezia.vpn.shadowsocks.core.bg -import com.github.shadowsocks.net.HostsFile -import com.github.shadowsocks.net.LocalDnsServer -import com.github.shadowsocks.net.Socks5Endpoint -import com.github.shadowsocks.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.Core.app +import org.amnezia.vpn.shadowsocks.core.acl.Acl +import org.amnezia.vpn.shadowsocks.core.net.LocalDnsServer +import org.amnezia.vpn.shadowsocks.core.net.Socks5Endpoint +import org.amnezia.vpn.shadowsocks.core.net.Subnet +import org.amnezia.vpn.shadowsocks.core.preference.DataStore import kotlinx.coroutines.CoroutineScope import java.net.InetSocketAddress import java.net.URI -import java.net.URISyntaxException import java.util.* +import org.amnezia.vpn.R object LocalDnsService { private val googleApisTester = - "(^|\\.)googleapis(\\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?){1,2}\$".toRegex() + "(^|\\.)googleapis(\\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?){1,2}\$".toRegex() + private val chinaIpList by lazy { + app.resources.openRawResource(R.raw.china_ip_list).bufferedReader() + .lineSequence().map(Subnet.Companion::fromString).filterNotNull().toList() + } private val servers = WeakHashMap() interface Interface : BaseService.Interface { - override suspend fun startProcesses(hosts: HostsFile) { - super.startProcesses(hosts) + override suspend fun startProcesses() { + super.startProcesses() val profile = data.proxy!!.profile - val dns = try { - URI("dns://${profile.remoteDns}") - } catch (e: URISyntaxException) { - throw BaseService.ExpectedExceptionWrapper(e) - } + val dns = URI("dns://${profile.remoteDns}") LocalDnsServer(this::resolver, - Socks5Endpoint(dns.host, if (dns.port < 0) 53 else dns.port), - DataStore.proxyAddress, - hosts).apply { + Socks5Endpoint(dns.host, if (dns.port < 0) 53 else dns.port), + DataStore.proxyAddress).apply { tcp = !profile.udpdns - forwardOnly = true + when (profile.route) { + Acl.BYPASS_CHN, Acl.BYPASS_LAN_CHN, Acl.GFWLIST, Acl.CUSTOM_RULES -> { + remoteDomainMatcher = googleApisTester + localIpMatcher = chinaIpList + } + Acl.CHINALIST -> { } + else -> forwardOnly = true + } }.also { servers[this] = it }.start(InetSocketAddress(DataStore.listenAddress, DataStore.portLocalDns)) } diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/ProxyInstance.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/ProxyInstance.kt new file mode 100644 index 00000000..a4ca6d5b --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/ProxyInstance.kt @@ -0,0 +1,129 @@ +/******************************************************************************* + * * + * Copyright (C) 2019 by Max Lv * + * Copyright (C) 2019 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core.bg + +import android.content.Context + +import org.amnezia.vpn.shadowsocks.core.acl.Acl +import org.amnezia.vpn.shadowsocks.core.acl.AclSyncer +import org.amnezia.vpn.shadowsocks.core.database.Profile +import org.amnezia.vpn.shadowsocks.core.database.ProfileManager +import org.amnezia.vpn.shadowsocks.core.plugin.PluginConfiguration +import org.amnezia.vpn.shadowsocks.core.plugin.PluginManager +import org.amnezia.vpn.shadowsocks.core.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.utils.DirectBoot +import org.amnezia.vpn.shadowsocks.core.utils.parseNumericAddress +import kotlinx.coroutines.* +import java.io.File +import java.io.IOException +import java.net.UnknownHostException + +/** + * This class sets up environment for ss-local. + */ +class ProxyInstance(val profile: Profile, private val route: String = profile.route) { + private var configFile: File? = null + var trafficMonitor: TrafficMonitor? = null + private val plugin = PluginConfiguration(profile.plugin ?: "").selectedOptions + val pluginPath by lazy { PluginManager.init(plugin) } + + suspend fun init(service: BaseService.Interface) { + if (route == Acl.CUSTOM_RULES) withContext(Dispatchers.IO) { + Acl.save(Acl.CUSTOM_RULES, Acl.customRules.flatten(10, service::openConnection)) + } + + // it's hard to resolve DNS on a specific interface so we'll do it here + if (profile.host.parseNumericAddress() == null) { + while (true) try { + val io = GlobalScope.async(Dispatchers.IO) { service.resolver(profile.host) } + profile.host = io.await().firstOrNull()?.hostAddress ?: throw UnknownHostException() + return + } catch (e: UnknownHostException) { + // retries are only needed on Chrome OS where arc0 is brought up/down during VPN changes + if (!DataStore.hasArc0) throw e + Thread.yield() + } + } + } + + /** + * Sensitive shadowsocks configuration file requires extra protection. It may be stored in encrypted storage or + * device storage, depending on which is currently available. + */ + fun start(service: BaseService.Interface, stat: File, configFile: File, extraFlag: String? = null) { + trafficMonitor = TrafficMonitor(stat) + + this.configFile = configFile + val config = profile.toJson() + if (pluginPath != null) config.put("plugin", pluginPath).put("plugin_opts", plugin.toString()) + configFile.writeText(config.toString()) + + val cmd = service.buildAdditionalArguments(arrayListOf( + File((service as Context).applicationInfo.nativeLibraryDir, Executable.SS_LOCAL).absolutePath, + "-b", DataStore.listenAddress, + "-l", DataStore.portProxy.toString(), + "-t", "600", + "-S", stat.absolutePath, + "-c", configFile.absolutePath)) + if (extraFlag != null) cmd.add(extraFlag) + + if (route != Acl.ALL) { + cmd += "--acl" + cmd += Acl.getFile(route).absolutePath + } + + // for UDP profile, it's only going to operate in UDP relay mode-only so this flag has no effect + if (profile.route == Acl.ALL || profile.route == Acl.BYPASS_LAN) cmd += "-D" + + if (DataStore.tcpFastOpen) cmd += "--fast-open" + + service.data.processes!!.start(cmd) + } + + fun scheduleUpdate() { + if (route !in arrayOf(Acl.ALL, Acl.CUSTOM_RULES)) AclSyncer.schedule(route) + } + + fun shutdown(scope: CoroutineScope) { + trafficMonitor?.apply { + thread.shutdown(scope) + // Make sure update total traffic when stopping the runner + try { + // profile may have host, etc. modified and thus a re-fetch is necessary (possible race condition) + val profile = ProfileManager.getProfile(profile.id) ?: return + profile.tx += current.txTotal + profile.rx += current.rxTotal + ProfileManager.updateProfile(profile) + } catch (e: IOException) { + if (!DataStore.directBootAware) throw e // we should only reach here because we're in direct boot + val profile = DirectBoot.getDeviceProfile()!!.toList().filterNotNull().single { it.id == profile.id } + profile.tx += current.txTotal + profile.rx += current.rxTotal + profile.dirty = true + DirectBoot.update(profile) + DirectBoot.listenForUnlock() + } + } + trafficMonitor = null + configFile?.delete() // remove old config possibly in device storage + configFile = null + } +} diff --git a/client/android/src/com/github/shadowsocks/preference/EditTextPreferenceModifiers.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/ProxyService.kt similarity index 58% rename from client/android/src/com/github/shadowsocks/preference/EditTextPreferenceModifiers.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/bg/ProxyService.kt index 1385c77e..ea07f30c 100644 --- a/client/android/src/com/github/shadowsocks/preference/EditTextPreferenceModifiers.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/ProxyService.kt @@ -1,7 +1,7 @@ /******************************************************************************* * * - * Copyright (C) 2019 by Max Lv * - * Copyright (C) 2019 by Mygod Studio * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -18,29 +18,25 @@ * * *******************************************************************************/ -package com.github.shadowsocks.preference +package org.amnezia.vpn.shadowsocks.core.bg -import android.graphics.Typeface -import android.text.InputFilter -import android.view.inputmethod.EditorInfo -import android.widget.EditText -import androidx.preference.EditTextPreference +import android.app.Service +import android.content.Intent -object EditTextPreferenceModifiers { - object Monospace : EditTextPreference.OnBindEditTextListener { - override fun onBindEditText(editText: EditText) { - editText.typeface = Typeface.MONOSPACE - } - } +/** + * Shadowsocks service at its minimum. + */ +class ProxyService : Service(), BaseService.Interface { + override val data = BaseService.Data(this) + override val tag: String get() = "ShadowsocksProxyService" + override fun createNotification(profileName: String): ServiceNotification = + ServiceNotification(this, profileName, "service-proxy", true) - object Port : EditTextPreference.OnBindEditTextListener { - private val portLengthFilter = arrayOf(InputFilter.LengthFilter(5)) - - override fun onBindEditText(editText: EditText) { - editText.inputType = EditorInfo.TYPE_CLASS_NUMBER - editText.filters = portLengthFilter - editText.setSingleLine() - editText.setSelection(editText.text.length) - } + override fun onBind(intent: Intent) = super.onBind(intent) + override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int = + super.onStartCommand(intent, flags, startId) + override fun onDestroy() { + super.onDestroy() + data.binder.close() } } diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/ServiceNotification.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/ServiceNotification.kt new file mode 100644 index 00000000..ac633b84 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/ServiceNotification.kt @@ -0,0 +1,135 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core.bg + +import android.app.KeyguardManager +import android.app.NotificationManager +import android.app.PendingIntent +import android.app.Service +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import android.os.Build +import android.os.PowerManager +import android.text.format.Formatter +import androidx.core.app.NotificationCompat +import androidx.core.content.ContextCompat +import androidx.core.content.getSystemService +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.aidl.IShadowsocksServiceCallback +import org.amnezia.vpn.shadowsocks.core.aidl.TrafficStats +import org.amnezia.vpn.R +import org.amnezia.vpn.shadowsocks.core.utils.Action +import org.amnezia.vpn.shadowsocks.core.utils.broadcastReceiver + +/** + * Android < 8 VPN: always invisible because of VPN notification/icon + * Android < 8 other: only invisible in (possibly unsecure) lockscreen + * Android 8+: always visible due to system limitations + * (user can choose to hide the notification in secure lockscreen or anywhere) + */ +class ServiceNotification(private val service: BaseService.Interface, profileName: String, + channel: String, private val visible: Boolean = false) { + private val keyGuard = (service as Context).getSystemService()!! + private val nm by lazy { (service as Context).getSystemService()!! } + private val callback: IShadowsocksServiceCallback by lazy { + object : IShadowsocksServiceCallback.Stub() { + override fun stateChanged(state: Int, profileName: String?, msg: String?) { } // ignore + override fun trafficUpdated(profileId: Long, stats: TrafficStats) { + if (profileId != 0L) return + service as Context + val txr = service.getString(R.string.speed, Formatter.formatFileSize(service, stats.txRate)) + val rxr = service.getString(R.string.speed, Formatter.formatFileSize(service, stats.rxRate)) + builder.setContentText("$txr↑\t$rxr↓") + style.bigText(service.getString(R.string.stat_summary, txr, rxr, + Formatter.formatFileSize(service, stats.txTotal), + Formatter.formatFileSize(service, stats.rxTotal))) + show() + } + override fun trafficPersisted(profileId: Long) { } + } + } + private val lockReceiver = broadcastReceiver { _, intent -> update(intent.action) } + private var callbackRegistered = false + + private val builder = NotificationCompat.Builder(service as Context, channel) + .setWhen(0) + .setColor(ContextCompat.getColor(service, R.color.material_primary_500)) + .setTicker(service.getString(R.string.forward_success)) + .setContentTitle(profileName) + .setContentIntent(Core.configureIntent(service)) + .setSmallIcon(R.drawable.ic_service_active) + private val style = NotificationCompat.BigTextStyle(builder).bigText("") + private var isVisible = true + + init { + service as Context + if (Build.VERSION.SDK_INT < 24) builder.addAction(R.drawable.ic_navigation_close, + service.getString(R.string.stop), PendingIntent.getBroadcast(service, 0, Intent(Action.CLOSE), 0)) + update(if (service.getSystemService()?.isInteractive != false) + Intent.ACTION_SCREEN_ON else Intent.ACTION_SCREEN_OFF, true) + service.registerReceiver(lockReceiver, IntentFilter().apply { + addAction(Intent.ACTION_SCREEN_ON) + addAction(Intent.ACTION_SCREEN_OFF) + if (visible && Build.VERSION.SDK_INT < 26) addAction(Intent.ACTION_USER_PRESENT) + }) + } + + private fun update(action: String?, forceShow: Boolean = false) { + if (forceShow || service.data.state == BaseService.State.Connected) when (action) { + Intent.ACTION_SCREEN_OFF -> { + setVisible(false, forceShow) + unregisterCallback() // unregister callback to save battery + } + Intent.ACTION_SCREEN_ON -> { + setVisible(visible && !keyGuard.isKeyguardLocked, forceShow) + service.data.binder.registerCallback(callback) + service.data.binder.startListeningForBandwidth(callback, 1000) + callbackRegistered = true + } + Intent.ACTION_USER_PRESENT -> setVisible(true, forceShow) + } + } + + private fun unregisterCallback() { + if (callbackRegistered) { + service.data.binder.unregisterCallback(callback) + callbackRegistered = false + } + } + + private fun setVisible(visible: Boolean, forceShow: Boolean = false) { + if (isVisible != visible) { + isVisible = visible + builder.priority = if (visible) NotificationCompat.PRIORITY_LOW else NotificationCompat.PRIORITY_MIN + show() + } else if (forceShow) show() + } + + private fun show() = (service as Service).startForeground(1, builder.build()) + + fun destroy() { + (service as Service).unregisterReceiver(lockReceiver) + unregisterCallback() + service.stopForeground(true) + nm.cancel(1) + } +} diff --git a/client/android/src/com/github/shadowsocks/bg/TrafficMonitor.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/TrafficMonitor.kt similarity index 72% rename from client/android/src/com/github/shadowsocks/bg/TrafficMonitor.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/bg/TrafficMonitor.kt index 08f96645..1c4f25ae 100644 --- a/client/android/src/com/github/shadowsocks/bg/TrafficMonitor.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/TrafficMonitor.kt @@ -18,15 +18,12 @@ * * *******************************************************************************/ -package com.github.shadowsocks.bg +package org.amnezia.vpn.shadowsocks.core.bg import android.net.LocalSocket import android.os.SystemClock -import com.github.shadowsocks.aidl.TrafficStats -import com.github.shadowsocks.database.ProfileManager -import com.github.shadowsocks.net.LocalSocketListener -import com.github.shadowsocks.preference.DataStore -import com.github.shadowsocks.utils.DirectBoot +import org.amnezia.vpn.shadowsocks.core.aidl.TrafficStats +import org.amnezia.vpn.shadowsocks.core.net.LocalSocketListener import java.io.File import java.io.IOException import java.nio.ByteBuffer @@ -55,7 +52,6 @@ class TrafficMonitor(statFile: File) { var out = TrafficStats() private var timestampLast = 0L private var dirty = false - private var persisted: TrafficStats? = null fun requestUpdate(): Pair { val now = SystemClock.elapsedRealtime() @@ -83,26 +79,4 @@ class TrafficMonitor(statFile: File) { } return Pair(out, updated) } - - fun persistStats(id: Long) { - val current = current - check(persisted == null || persisted == current) { "Data loss occurred" } - persisted = current - - try { - // profile may have host, etc. modified and thus a re-fetch is necessary (possible race condition) - val profile = ProfileManager.getProfile(id) ?: return - profile.tx += current.txTotal - profile.rx += current.rxTotal - ProfileManager.updateProfile(profile) - } catch (e: IOException) { - if (!DataStore.directBootAware) throw e // we should only reach here because we're in direct boot - val profile = DirectBoot.getDeviceProfile()!!.toList().filterNotNull().single { it.id == id } - profile.tx += current.txTotal - profile.rx += current.rxTotal - profile.dirty = true - DirectBoot.update(profile) - DirectBoot.listenForUnlock() - } - } } diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/TransproxyService.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/TransproxyService.kt new file mode 100644 index 00000000..9d5e7bdf --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/TransproxyService.kt @@ -0,0 +1,68 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core.bg + +import android.app.Service +import android.content.Intent +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.preference.DataStore +import java.io.File + +class TransproxyService : Service(), LocalDnsService.Interface { + override val data = BaseService.Data(this) + override val tag: String get() = "ShadowsocksTransproxyService" + override fun createNotification(profileName: String): ServiceNotification = + ServiceNotification(this, profileName, "service-transproxy", true) + + override fun onBind(intent: Intent) = super.onBind(intent) + override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int = + super.onStartCommand(intent, flags, startId) + + private fun startRedsocksDaemon() { + File(Core.deviceStorage.noBackupFilesDir, "redsocks.conf").writeText("""base { + log_debug = off; + log_info = off; + log = stderr; + daemon = off; + redirector = iptables; +} +redsocks { + local_ip = ${DataStore.listenAddress}; + local_port = ${DataStore.portTransproxy}; + ip = 127.0.0.1; + port = ${DataStore.portProxy}; + type = socks5; +} +""") + data.processes!!.start(listOf( + File(applicationInfo.nativeLibraryDir, Executable.REDSOCKS).absolutePath, "-c", "redsocks.conf")) + } + + override suspend fun startProcesses() { + startRedsocksDaemon() + super.startProcesses() + } + + override fun onDestroy() { + super.onDestroy() + data.binder.close() + } +} diff --git a/client/android/src/com/github/shadowsocks/bg/VpnService.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/VpnService.kt similarity index 62% rename from client/android/src/com/github/shadowsocks/bg/VpnService.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/bg/VpnService.kt index c777896d..bc2c263f 100644 --- a/client/android/src/com/github/shadowsocks/bg/VpnService.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/bg/VpnService.kt @@ -18,10 +18,11 @@ * * *******************************************************************************/ -package com.github.shadowsocks.bg +package org.amnezia.vpn.shadowsocks.core.bg import android.app.Service import android.content.Intent +import android.content.pm.PackageManager import android.net.LocalSocket import android.net.LocalSocketAddress import android.net.Network @@ -29,14 +30,16 @@ import android.os.Build import android.os.ParcelFileDescriptor import android.system.ErrnoException import android.system.Os -import com.github.shadowsocks.Core +import org.amnezia.vpn.shadowsocks.core.Core import org.amnezia.vpn.R -import com.github.shadowsocks.net.ConcurrentLocalSocketListener -import com.github.shadowsocks.net.DefaultNetworkListener -import com.github.shadowsocks.net.HostsFile -import com.github.shadowsocks.net.Subnet -import com.github.shadowsocks.preference.DataStore -import com.github.shadowsocks.utils.printLog +import org.amnezia.vpn.shadowsocks.core.VpnRequestActivity +import org.amnezia.vpn.shadowsocks.core.acl.Acl +import org.amnezia.vpn.shadowsocks.core.net.ConcurrentLocalSocketListener +import org.amnezia.vpn.shadowsocks.core.net.DefaultNetworkListener +import org.amnezia.vpn.shadowsocks.core.net.Subnet +import org.amnezia.vpn.shadowsocks.core.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.utils.Key +import org.amnezia.vpn.shadowsocks.core.utils.printLog import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.delay import kotlinx.coroutines.launch @@ -45,7 +48,6 @@ import java.io.File import java.io.FileDescriptor import java.io.IOException import java.net.URL - import java.util.* import android.net.VpnService as BaseVpnService @@ -68,46 +70,47 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface { } private inner class ProtectWorker : ConcurrentLocalSocketListener("ShadowsocksVpnThread", - File(Core.deviceStorage.noBackupFilesDir, "protect_path")) { + File(Core.deviceStorage.noBackupFilesDir, "protect_path")) { override fun acceptInternal(socket: LocalSocket) { socket.inputStream.read() val fd = socket.ancillaryFileDescriptors!!.single()!! CloseableFd(fd).use { socket.outputStream.write(if (underlyingNetwork.let { network -> - if (network != null && Build.VERSION.SDK_INT >= 23) try { - network.bindSocket(fd) - true - } catch (e: IOException) { - // suppress ENONET (Machine is not on the network) - if ((e.cause as? ErrnoException)?.errno != 64) printLog(e) - false - } else protect(getInt.invoke(fd) as Int) - }) 0 else 1) + if (network != null && Build.VERSION.SDK_INT >= 23) try { + network.bindSocket(fd) + true + } catch (e: IOException) { + // suppress ENONET (Machine is not on the network) + if ((e.cause as? ErrnoException)?.errno != 64) printLog(e) + false + } else protect(getInt.invoke(fd) as Int) + }) 0 else 1) } } } - inner class NullConnectionException : NullPointerException(), BaseService.ExpectedException { + inner class NullConnectionException : NullPointerException() { override fun getLocalizedMessage() = getString(R.string.reboot_required) } override val data = BaseService.Data(this) override val tag: String get() = "ShadowsocksVpnService" override fun createNotification(profileName: String): ServiceNotification = - ServiceNotification(this, profileName, "service-vpn") + ServiceNotification(this, profileName, "service-vpn") private var conn: ParcelFileDescriptor? = null private var worker: ProtectWorker? = null private var active = false - // metered = false. xinlake + private var metered = false private var underlyingNetwork: Network? = null set(value) { field = value - if (active) setUnderlyingNetworks(underlyingNetworks) + if (active && Build.VERSION.SDK_INT >= 22) setUnderlyingNetworks(underlyingNetworks) } private val underlyingNetworks - get() = // clearing underlyingNetworks makes Android 9 consider the network to be metered - underlyingNetwork?.let { arrayOf(it) } + get() = + // clearing underlyingNetworks makes Android 9+ consider the network to be metered + if (Build.VERSION.SDK_INT >= 28 && metered) null else underlyingNetwork?.let { arrayOf(it) } override fun onBind(intent: Intent) = when (intent.action) { SERVICE_INTERFACE -> super.onBind(intent) @@ -127,25 +130,22 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface { } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { - if (prepare(this) != null) { -// startActivity(Intent(this, VpnRequestActivity::class.java).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) - } else { - return super.onStartCommand(intent, flags, startId) + if (DataStore.serviceMode == Key.modeVpn) { + if (prepare(this) != null) { + startActivity(Intent(this, VpnRequestActivity::class.java).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) + } else return super.onStartCommand(intent, flags, startId) } - stopRunner() return Service.START_NOT_STICKY } override suspend fun preInit() = DefaultNetworkListener.start(this) { underlyingNetwork = it } - override suspend fun resolver(host: String) = - DnsResolverCompat.resolve(DefaultNetworkListener.get(), host) - + override suspend fun resolver(host: String) = DefaultNetworkListener.get().getAllByName(host) override suspend fun openConnection(url: URL) = DefaultNetworkListener.get().openConnection(url) - override suspend fun startProcesses(hosts: HostsFile) { + override suspend fun startProcesses() { worker = ProtectWorker().apply { start() } - super.startProcesses(hosts) + super.startProcesses() sendFd(startVpn()) } @@ -157,39 +157,60 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface { private suspend fun startVpn(): FileDescriptor { val profile = data.proxy!!.profile val builder = Builder() - .setConfigureIntent(Core.configureIntent(this)) - .setSession(profile.formattedName) - .setMtu(VPN_MTU) - .addAddress(PRIVATE_VLAN4_CLIENT, 30) - .addDnsServer(PRIVATE_VLAN4_ROUTER) + .setConfigureIntent(Core.configureIntent(this)) + .setSession(profile.formattedName) + .setMtu(VPN_MTU) + .addAddress(PRIVATE_VLAN4_CLIENT, 30) + .addDnsServer(PRIVATE_VLAN4_ROUTER) if (profile.ipv6) { builder.addAddress(PRIVATE_VLAN6_CLIENT, 126) builder.addRoute("::", 0) } - - // XinLake. bypass lan - resources.getStringArray(R.array.bypass_private_route).forEach { - val subnet = Subnet.fromString(it)!! - builder.addRoute(subnet.address.hostAddress, subnet.prefixSize) + val me = packageName + if (profile.proxyApps) { + profile.individual.split('\n') + .filter { it != me } + .forEach { + try { + if (profile.bypass) builder.addDisallowedApplication(it) + else builder.addAllowedApplication(it) + } catch (ex: PackageManager.NameNotFoundException) { + printLog(ex) + } + } + if (profile.bypass) { + builder.addDisallowedApplication(me) + } + } else { + builder.addDisallowedApplication(me) } - builder.addRoute(PRIVATE_VLAN4_ROUTER, 32) + when (profile.route) { + Acl.ALL, Acl.BYPASS_CHN, Acl.CUSTOM_RULES -> builder.addRoute("0.0.0.0", 0) + else -> { + resources.getStringArray(R.array.bypass_private_route).forEach { + val subnet = Subnet.fromString(it)!! + builder.addRoute(subnet.address.hostAddress, subnet.prefixSize) + } + builder.addRoute(PRIVATE_VLAN4_ROUTER, 32) + } + } + + metered = profile.metered active = true // possible race condition here? - if (Build.VERSION.SDK_INT >= 22) { - builder.setUnderlyingNetworks(underlyingNetworks) - } + if (Build.VERSION.SDK_INT >= 22) builder.setUnderlyingNetworks(underlyingNetworks) val conn = builder.establish() ?: throw NullConnectionException() this.conn = conn val cmd = arrayListOf(File(applicationInfo.nativeLibraryDir, Executable.TUN2SOCKS).absolutePath, - "--netif-ipaddr", PRIVATE_VLAN4_ROUTER, - "--socks-server-addr", "${DataStore.listenAddress}:${DataStore.portProxy}", - "--tunmtu", VPN_MTU.toString(), - "--sock-path", "sock_path", - "--dnsgw", "127.0.0.1:${DataStore.portLocalDns}", - "--loglevel", "warning") + "--netif-ipaddr", PRIVATE_VLAN4_ROUTER, + "--socks-server-addr", "${DataStore.listenAddress}:${DataStore.portProxy}", + "--tunmtu", VPN_MTU.toString(), + "--sock-path", "sock_path", + "--dnsgw", "127.0.0.1:${DataStore.portLocalDns}", + "--loglevel", "warning") if (profile.ipv6) { cmd += "--netif-ip6addr" cmd += PRIVATE_VLAN6_ROUTER @@ -199,6 +220,7 @@ class VpnService : BaseVpnService(), LocalDnsService.Interface { try { sendFd(conn.fileDescriptor) } catch (e: ErrnoException) { + e.printStackTrace() stopRunner(false, e.message) } }) diff --git a/client/android/src/com/github/shadowsocks/database/KeyValuePair.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/KeyValuePair.kt similarity index 91% rename from client/android/src/com/github/shadowsocks/database/KeyValuePair.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/database/KeyValuePair.kt index 1ee916f8..58159a82 100644 --- a/client/android/src/com/github/shadowsocks/database/KeyValuePair.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/KeyValuePair.kt @@ -18,7 +18,7 @@ * * *******************************************************************************/ -package com.github.shadowsocks.database +package org.amnezia.vpn.shadowsocks.core.database import androidx.room.* import java.io.ByteArrayOutputStream @@ -62,13 +62,12 @@ class KeyValuePair() { @Deprecated("Use long.", ReplaceWith("long")) val int: Int? get() = if (valueType == TYPE_INT) ByteBuffer.wrap(value).int else null - val long: Long? - get() = when (valueType) { - @Suppress("DEPRECATION") - TYPE_INT -> ByteBuffer.wrap(value).int.toLong() - TYPE_LONG -> ByteBuffer.wrap(value).long - else -> null - } + val long: Long? get() = when (valueType) { + @Suppress("DEPRECATION") + TYPE_INT -> ByteBuffer.wrap(value).int.toLong() + TYPE_LONG -> ByteBuffer.wrap(value).long + else -> null + } val string: String? get() = if (valueType == TYPE_STRING) String(value) else null val stringSet: Set? @@ -94,13 +93,11 @@ class KeyValuePair() { this.value = ByteBuffer.allocate(1).put((if (value) 1 else 0).toByte()).array() return this } - fun put(value: Float): KeyValuePair { valueType = TYPE_FLOAT this.value = ByteBuffer.allocate(4).putFloat(value).array() return this } - @Suppress("DEPRECATION") @Deprecated("Use long.") fun put(value: Int): KeyValuePair { @@ -108,26 +105,21 @@ class KeyValuePair() { this.value = ByteBuffer.allocate(4).putInt(value).array() return this } - fun put(value: Long): KeyValuePair { valueType = TYPE_LONG this.value = ByteBuffer.allocate(8).putLong(value).array() return this } - fun put(value: String): KeyValuePair { valueType = TYPE_STRING this.value = value.toByteArray() return this } - fun put(value: Set): KeyValuePair { valueType = TYPE_STRING_SET val stream = ByteArrayOutputStream() - val intBuffer = ByteBuffer.allocate(4) for (v in value) { - intBuffer.rewind() - stream.write(intBuffer.putInt(v.length).array()) + stream.write(ByteBuffer.allocate(4).putInt(v.length).array()) stream.write(v.toByteArray()) } this.value = stream.toByteArray() diff --git a/client/android/src/com/github/shadowsocks/database/PrivateDatabase.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/PrivateDatabase.kt similarity index 56% rename from client/android/src/com/github/shadowsocks/database/PrivateDatabase.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/database/PrivateDatabase.kt index 0556bbb3..19f44d38 100644 --- a/client/android/src/com/github/shadowsocks/database/PrivateDatabase.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/PrivateDatabase.kt @@ -18,46 +18,52 @@ * * *******************************************************************************/ -package com.github.shadowsocks.database +package org.amnezia.vpn.shadowsocks.core.database import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase +import androidx.room.migration.Migration import androidx.sqlite.db.SupportSQLiteDatabase -import com.github.shadowsocks.Core.app -import com.github.shadowsocks.database.migration.RecreateSchemaMigration -import com.github.shadowsocks.utils.Key -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch +import org.amnezia.vpn.shadowsocks.core.Core.app +import org.amnezia.vpn.shadowsocks.core.database.migration.RecreateSchemaMigration +import org.amnezia.vpn.shadowsocks.core.utils.Key -@Database(entities = [Profile::class, KeyValuePair::class], version = 1000) +@Database(entities = [Profile::class, KeyValuePair::class], version = 29) abstract class PrivateDatabase : RoomDatabase() { companion object { private val instance by lazy { - Room.databaseBuilder(app, PrivateDatabase::class.java, Key.DB_PROFILE).apply { - addMigrations(Migration1000) - allowMainThreadQueries() - enableMultiInstanceInvalidation() - fallbackToDestructiveMigration() - setQueryExecutor { GlobalScope.launch { it.run() } } - }.build() + Room.databaseBuilder(app, PrivateDatabase::class.java, Key.DB_PROFILE) + .addMigrations( + Migration26, + Migration27, + Migration28 + ) + .fallbackToDestructiveMigration() + .allowMainThreadQueries() + .build() } val profileDao get() = instance.profileDao() val kvPairDao get() = instance.keyValuePairDao() } - abstract fun profileDao(): Profile.Dao abstract fun keyValuePairDao(): KeyValuePair.Dao - object Migration1000 : RecreateSchemaMigration(999, - 1000, - "Profile", - "(`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT, `host` TEXT NOT NULL, `remotePort` INTEGER NOT NULL, `password` TEXT NOT NULL, `method` TEXT NOT NULL, `remoteDns` TEXT NOT NULL, `udpdns` INTEGER NOT NULL, `ipv6` INTEGER NOT NULL, `tx` INTEGER NOT NULL, `rx` INTEGER NOT NULL, `userOrder` INTEGER NOT NULL)", - "`id`, `name`, `host`, `remotePort`, `password`, `method`, `remoteDns`, `udpdns`, `ipv6`, `tx`, `rx`, `userOrder`") { + object Migration26 : RecreateSchemaMigration(25, 26, "Profile", + "(`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `name` TEXT, `host` TEXT NOT NULL, `remotePort` INTEGER NOT NULL, `password` TEXT NOT NULL, `method` TEXT NOT NULL, `route` TEXT NOT NULL, `remoteDns` TEXT NOT NULL, `proxyApps` INTEGER NOT NULL, `bypass` INTEGER NOT NULL, `udpdns` INTEGER NOT NULL, `ipv6` INTEGER NOT NULL, `individual` TEXT NOT NULL, `tx` INTEGER NOT NULL, `rx` INTEGER NOT NULL, `userOrder` INTEGER NOT NULL, `plugin` TEXT)", + "`id`, `name`, `host`, `remotePort`, `password`, `method`, `route`, `remoteDns`, `proxyApps`, `bypass`, `udpdns`, `ipv6`, `individual`, `tx`, `rx`, `userOrder`, `plugin`") { override fun migrate(database: SupportSQLiteDatabase) { super.migrate(database) PublicDatabase.Migration3.migrate(database) } } + object Migration27 : Migration(26, 27) { + override fun migrate(database: SupportSQLiteDatabase) = + database.execSQL("ALTER TABLE `Profile` ADD COLUMN `udpFallback` INTEGER") + } + object Migration28 : Migration(27, 28) { + override fun migrate(database: SupportSQLiteDatabase) = + database.execSQL("ALTER TABLE `Profile` ADD COLUMN `metered` INTEGER NOT NULL DEFAULT 0") + } } diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/database/Profile.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/Profile.kt new file mode 100644 index 00000000..16a73257 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/Profile.kt @@ -0,0 +1,330 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core.database + +import android.annotation.TargetApi +import android.net.Uri +import android.os.Parcelable +import android.util.Base64 +import android.util.Log +import android.util.LongSparseArray +import androidx.core.net.toUri +import androidx.room.* +import org.amnezia.vpn.shadowsocks.core.plugin.PluginConfiguration +import org.amnezia.vpn.shadowsocks.plugin.PluginOptions +import org.amnezia.vpn.shadowsocks.core.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.utils.Key +import org.amnezia.vpn.shadowsocks.core.utils.asIterable +import org.amnezia.vpn.shadowsocks.core.utils.parsePort +import kotlinx.android.parcel.Parcelize +import org.json.JSONArray +import org.json.JSONObject +import org.json.JSONTokener +import java.io.Serializable +import java.net.URI +import java.net.URISyntaxException +import java.util.* + +@Entity +@Parcelize +data class Profile( + @PrimaryKey(autoGenerate = true) + var id: Long = 0, + var name: String? = "", + var host: String = "155.94.174.51", + var remotePort: Int = 444, + var password: String = "789456123", + var method: String = "aes-256-cfb", + var route: String = "all", + var remoteDns: String = "dns.google", + var proxyApps: Boolean = false, + var bypass: Boolean = false, + var udpdns: Boolean = false, + var ipv6: Boolean = true, + @TargetApi(28) + var metered: Boolean = false, + var individual: String = "", + var tx: Long = 0, + var rx: Long = 0, + var userOrder: Long = 0, + var plugin: String? = null, + var udpFallback: Long? = null, + + @Ignore // not persisted in db, only used by direct boot + var dirty: Boolean = false +) : Parcelable, Serializable { + companion object { + private const val TAG = "ShadowParser" + private const val serialVersionUID = 1L + private val pattern = + """(?i)ss://[-a-zA-Z0-9+&@#/%?=.~*'()|!:,;\[\]]*[-a-zA-Z0-9+&@#/%=.~*'()|\[\]]""".toRegex() + private val userInfoPattern = "^(.+?):(.*)$".toRegex() + private val legacyPattern = "^(.+?):(.*)@(.+?):(\\d+?)$".toRegex() + + fun findAllUrls(data: CharSequence?, feature: Profile? = null) = pattern.findAll(data ?: "").map { + val uri = it.value.toUri() + try { + if (uri.userInfo == null) { + val match = legacyPattern.matchEntire(String(Base64.decode(uri.host, Base64.NO_PADDING))) + if (match != null) { + val profile = Profile() + feature?.copyFeatureSettingsTo(profile) + profile.method = match.groupValues[1].toLowerCase() + profile.password = match.groupValues[2] + profile.host = match.groupValues[3] + profile.remotePort = match.groupValues[4].toInt() + profile.plugin = uri.getQueryParameter(Key.plugin) + profile.name = uri.fragment + profile + } else { + Log.e(TAG, "Unrecognized URI: ${it.value}") + null + } + } else { + val match = userInfoPattern.matchEntire(String(Base64.decode(uri.userInfo, + Base64.NO_PADDING or Base64.NO_WRAP or Base64.URL_SAFE))) + if (match != null) { + val profile = Profile() + feature?.copyFeatureSettingsTo(profile) + profile.method = match.groupValues[1] + profile.password = match.groupValues[2] + // bug in Android: https://code.google.com/p/android/issues/detail?id=192855 + try { + val javaURI = URI(it.value) + profile.host = javaURI.host ?: "" + if (profile.host.firstOrNull() == '[' && profile.host.lastOrNull() == ']') + profile.host = profile.host.substring(1, profile.host.length - 1) + profile.remotePort = javaURI.port + profile.plugin = uri.getQueryParameter(Key.plugin) + profile.name = uri.fragment ?: "" + profile + } catch (e: URISyntaxException) { + Log.e(TAG, "Invalid URI: ${it.value}") + null + } + } else { + Log.e(TAG, "Unknown user info: ${it.value}") + null + } + } + } catch (e: IllegalArgumentException) { + Log.e(TAG, "Invalid base64 detected: ${it.value}") + null + } + }.filterNotNull() + + private class JsonParser(private val feature: Profile? = null) : ArrayList() { + private val fallbackMap = mutableMapOf() + + private fun tryParse(json: JSONObject, fallback: Boolean = false): Profile? { + val host = json.optString("server") + if (host.isNullOrEmpty()) return null + val remotePort = json.optInt("server_port") + if (remotePort <= 0) return null + val password = json.optString("password") + if (password.isNullOrEmpty()) return null + val method = json.optString("method") + if (method.isNullOrEmpty()) return null + return Profile().also { + it.host = host + it.remotePort = remotePort + it.password = password + it.method = method + }.apply { + feature?.copyFeatureSettingsTo(this) + val id = json.optString("plugin") + if (!id.isNullOrEmpty()) { + plugin = PluginOptions(id, json.optString("plugin_opts")).toString(false) + } + name = json.optString("remarks") + route = json.optString("route", route) + if (fallback) return@apply + remoteDns = json.optString("remote_dns", remoteDns) + ipv6 = json.optBoolean("ipv6", ipv6) + metered = json.optBoolean("metered", metered) + json.optJSONObject("proxy_apps")?.also { + proxyApps = it.optBoolean("enabled", proxyApps) + bypass = it.optBoolean("bypass", bypass) + individual = it.optJSONArray("android_list")?.asIterable()?.joinToString("\n") ?: individual + } + udpdns = json.optBoolean("udpdns", udpdns) + json.optJSONObject("udp_fallback")?.let { tryParse(it, true) }?.also { fallbackMap[this] = it } + } + } + + fun process(json: Any) { + when (json) { + is JSONObject -> { + val profile = tryParse(json) + if (profile != null) add(profile) else for (key in json.keys()) process(json.get(key)) + } + is JSONArray -> json.asIterable().forEach(this::process) + // ignore other types + } + } + fun finalize(create: (Profile) -> Unit) { + val profiles = ProfileManager.getAllProfiles() ?: emptyList() + for ((profile, fallback) in fallbackMap) { + val match = profiles.firstOrNull { + fallback.host == it.host && fallback.remotePort == it.remotePort && + fallback.password == it.password && fallback.method == it.method && + it.plugin.isNullOrEmpty() + } + profile.udpFallback = if (match == null) { + create(fallback) + fallback.id + } else match.id + ProfileManager.updateProfile(profile) + } + } + } + fun parseJson(json: String, feature: Profile? = null, create: (Profile) -> Unit) = JsonParser(feature).run { + process(JSONTokener(json).nextValue()) + for (profile in this) create(profile) + finalize(create) + } + } + + @androidx.room.Dao + interface Dao { + @Query("SELECT * FROM `Profile` WHERE `id` = :id") + operator fun get(id: Long): Profile? + + @Query("SELECT * FROM `Profile` ORDER BY `userOrder`") + fun list(): List + + @Query("SELECT MAX(`userOrder`) + 1 FROM `Profile`") + fun nextOrder(): Long? + + @Query("SELECT 1 FROM `Profile` LIMIT 1") + fun isNotEmpty(): Boolean + + @Insert + fun create(value: Profile): Long + + @Update + fun update(value: Profile): Int + + @Query("DELETE FROM `Profile` WHERE `id` = :id") + fun delete(id: Long): Int + + @Query("DELETE FROM `Profile`") + fun deleteAll(): Int + } + + val formattedAddress get() = (if (host.contains(":")) "[%s]:%d" else "%s:%d").format(host, remotePort) + val formattedName get() = if (name.isNullOrEmpty()) formattedAddress else name!! + + fun copyFeatureSettingsTo(profile: Profile) { + profile.route = route + profile.ipv6 = ipv6 + profile.metered = metered + profile.proxyApps = proxyApps + profile.bypass = bypass + profile.individual = individual + profile.udpdns = udpdns + } + + fun toUri(): Uri { + val auth = Base64.encodeToString("$method:$password".toByteArray(), + Base64.NO_PADDING or Base64.NO_WRAP or Base64.URL_SAFE) + val wrappedHost = if (host.contains(':')) "[$host]" else host + val builder = Uri.Builder() + .scheme("ss") + .encodedAuthority("$auth@$wrappedHost:$remotePort") + val configuration = PluginConfiguration(plugin ?: "") + if (configuration.selected.isNotEmpty()) + builder.appendQueryParameter(Key.plugin, configuration.selectedOptions.toString(false)) + if (!name.isNullOrEmpty()) builder.fragment(name) + return builder.build() + } + override fun toString() = toUri().toString() + + fun toJson(profiles: LongSparseArray? = null): JSONObject = JSONObject().apply { + put("server", host) + put("server_port", remotePort) + put("password", password) + put("method", method) + if (profiles == null) return@apply + PluginConfiguration(plugin ?: "").selectedOptions.also { + if (it.id.isNotEmpty()) { + put("plugin", it.id) + put("plugin_opts", it.toString()) + } + } + put("remarks", name) + put("route", route) + put("remote_dns", remoteDns) + put("ipv6", ipv6) + put("metered", metered) + put("proxy_apps", JSONObject().apply { + put("enabled", proxyApps) + if (proxyApps) { + put("bypass", bypass) + // android_ prefix is used because package names are Android specific + put("android_list", JSONArray(individual.split("\n"))) + } + }) + put("udpdns", udpdns) + val fallback = profiles.get(udpFallback ?: return@apply) + if (fallback != null && fallback.plugin.isNullOrEmpty()) fallback.toJson().also { put("udp_fallback", it) } + } + + fun serialize() { + DataStore.editingId = id + DataStore.privateStore.putString(Key.name, name) + DataStore.privateStore.putString(Key.host, host) + DataStore.privateStore.putString(Key.remotePort, remotePort.toString()) + DataStore.privateStore.putString(Key.password, password) + DataStore.privateStore.putString(Key.route, route) + DataStore.privateStore.putString(Key.remoteDns, remoteDns) + DataStore.privateStore.putString(Key.method, method) + DataStore.proxyApps = proxyApps + DataStore.bypass = bypass + DataStore.privateStore.putBoolean(Key.udpdns, udpdns) + DataStore.privateStore.putBoolean(Key.ipv6, ipv6) + DataStore.privateStore.putBoolean(Key.metered, metered) + DataStore.individual = individual + DataStore.plugin = plugin ?: "" + DataStore.udpFallback = udpFallback + DataStore.privateStore.remove(Key.dirty) + } + fun deserialize() { + check(id == 0L || DataStore.editingId == id) + DataStore.editingId = null + // It's assumed that default values are never used, so 0/false/null is always used even if that isn't the case + name = DataStore.privateStore.getString(Key.name) ?: "" + host = DataStore.privateStore.getString(Key.host) ?: "" + remotePort = parsePort(DataStore.privateStore.getString(Key.remotePort), 8388, 1) + password = DataStore.privateStore.getString(Key.password) ?: "" + method = DataStore.privateStore.getString(Key.method) ?: "" + route = DataStore.privateStore.getString(Key.route) ?: "" + remoteDns = DataStore.privateStore.getString(Key.remoteDns) ?: "" + proxyApps = DataStore.proxyApps + bypass = DataStore.bypass + udpdns = DataStore.privateStore.getBoolean(Key.udpdns, false) + ipv6 = DataStore.privateStore.getBoolean(Key.ipv6, false) + metered = DataStore.privateStore.getBoolean(Key.metered, false) + individual = DataStore.individual + plugin = DataStore.plugin + udpFallback = DataStore.udpFallback + } +} diff --git a/client/android/src/com/github/shadowsocks/database/ProfileManager.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/ProfileManager.kt similarity index 89% rename from client/android/src/com/github/shadowsocks/database/ProfileManager.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/database/ProfileManager.kt index 87ee260c..06ccf4c6 100644 --- a/client/android/src/com/github/shadowsocks/database/ProfileManager.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/ProfileManager.kt @@ -18,16 +18,14 @@ * * *******************************************************************************/ -package com.github.shadowsocks.database +package org.amnezia.vpn.shadowsocks.core.database import android.database.sqlite.SQLiteCantOpenDatabaseException import android.util.LongSparseArray -import com.github.shadowsocks.Core -import com.github.shadowsocks.preference.DataStore -import com.github.shadowsocks.utils.DirectBoot -import com.github.shadowsocks.utils.forEachTry -import com.github.shadowsocks.utils.printLog -import com.google.gson.JsonStreamParser +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.utils.DirectBoot +import org.amnezia.vpn.shadowsocks.core.utils.printLog import org.json.JSONArray import java.io.IOException import java.io.InputStream @@ -43,7 +41,6 @@ object ProfileManager { fun onRemove(profileId: Long) fun onCleared() } - var listener: Listener? = null @Throws(SQLException::class) @@ -61,8 +58,9 @@ object ProfileManager { profiles?.values?.singleOrNull { it.id == DataStore.profileId } } else Core.currentProfile?.first val lazyClear = lazy { clear() } - jsons.asIterable().forEachTry { json -> - Profile.parseJson(JsonStreamParser(json.bufferedReader()).asSequence().single(), feature) { + var result: Exception? = null + for (json in jsons) try { + Profile.parseJson(json.bufferedReader().readText(), feature) { if (replace) { lazyClear.value // if two profiles has the same address, treat them as the same profile and copy stats over @@ -73,9 +71,11 @@ object ProfileManager { } createProfile(it) } + } catch (e: Exception) { + if (result == null) result = e else result.addSuppressed(e) } + if (result != null) throw result } - fun serializeToJson(profiles: List? = getAllProfiles()): JSONArray? { if (profiles == null) return null val lookup = LongSparseArray(profiles.size).apply { profiles.forEach { put(it.id, it) } } @@ -99,7 +99,7 @@ object ProfileManager { } @Throws(IOException::class) - fun expand(profile: Profile): Pair = Pair(profile, null) + fun expand(profile: Profile): Pair = Pair(profile, profile.udpFallback?.let { getProfile(it) }) @Throws(SQLException::class) fun delProfile(id: Long) { diff --git a/client/android/src/com/github/shadowsocks/database/PublicDatabase.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/PublicDatabase.kt similarity index 69% rename from client/android/src/com/github/shadowsocks/database/PublicDatabase.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/database/PublicDatabase.kt index 2a92d95f..c2dd4169 100644 --- a/client/android/src/com/github/shadowsocks/database/PublicDatabase.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/PublicDatabase.kt @@ -18,39 +18,33 @@ * * *******************************************************************************/ -package com.github.shadowsocks.database +package org.amnezia.vpn.shadowsocks.core.database import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase -import com.github.shadowsocks.Core -import com.github.shadowsocks.database.migration.RecreateSchemaMigration -import com.github.shadowsocks.utils.Key -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.database.migration.RecreateSchemaMigration +import org.amnezia.vpn.shadowsocks.core.utils.Key -@Database(entities = [KeyValuePair::class], version = 3) +@Database(entities = [KeyValuePair::class], version = 4) abstract class PublicDatabase : RoomDatabase() { companion object { private val instance by lazy { Room.databaseBuilder(Core.deviceStorage, PublicDatabase::class.java, Key.DB_PUBLIC) - .apply { - addMigrations(Migration3) - allowMainThreadQueries() - enableMultiInstanceInvalidation() - fallbackToDestructiveMigration() - setQueryExecutor { GlobalScope.launch { it.run() } } - }.build() + .allowMainThreadQueries() + .addMigrations( + Migration3 + ) + .fallbackToDestructiveMigration() + .build() } val kvPairDao get() = instance.keyValuePairDao() } - abstract fun keyValuePairDao(): KeyValuePair.Dao - internal object Migration3 : RecreateSchemaMigration(2, - 3, - "KeyValuePair", - "(`key` TEXT NOT NULL, `valueType` INTEGER NOT NULL, `value` BLOB NOT NULL, PRIMARY KEY(`key`))", - "`key`, `valueType`, `value`") + internal object Migration3 : RecreateSchemaMigration(2, 3, "KeyValuePair", + "(`key` TEXT NOT NULL, `valueType` INTEGER NOT NULL, `value` BLOB NOT NULL, PRIMARY KEY(`key`))", + "`key`, `valueType`, `value`") } diff --git a/client/android/src/com/github/shadowsocks/database/migration/RecreateSchemaMigration.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/migration/RecreateSchemaMigration.kt similarity index 94% rename from client/android/src/com/github/shadowsocks/database/migration/RecreateSchemaMigration.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/database/migration/RecreateSchemaMigration.kt index 42352156..d13495c2 100644 --- a/client/android/src/com/github/shadowsocks/database/migration/RecreateSchemaMigration.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/database/migration/RecreateSchemaMigration.kt @@ -18,14 +18,14 @@ * * *******************************************************************************/ -package com.github.shadowsocks.database.migration +package org.amnezia.vpn.shadowsocks.core.database.migration import androidx.room.migration.Migration import androidx.sqlite.db.SupportSQLiteDatabase open class RecreateSchemaMigration(oldVersion: Int, newVersion: Int, private val table: String, - private val schema: String, private val keys: String) - : Migration(oldVersion, newVersion) { + private val schema: String, private val keys: String) : + Migration(oldVersion, newVersion) { override fun migrate(database: SupportSQLiteDatabase) { database.execSQL("CREATE TABLE `tmp` $schema") database.execSQL("INSERT INTO `tmp` ($keys) SELECT $keys FROM `$table`") diff --git a/client/android/src/com/github/shadowsocks/net/ChannelMonitor.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/ChannelMonitor.kt similarity index 88% rename from client/android/src/com/github/shadowsocks/net/ChannelMonitor.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/net/ChannelMonitor.kt index e2153f03..9058d59d 100644 --- a/client/android/src/com/github/shadowsocks/net/ChannelMonitor.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/ChannelMonitor.kt @@ -18,10 +18,10 @@ * * *******************************************************************************/ -package com.github.shadowsocks.net +package org.amnezia.vpn.shadowsocks.core.net import android.os.Build -import com.github.shadowsocks.utils.printLog +import org.amnezia.vpn.shadowsocks.core.utils.printLog import kotlinx.coroutines.* import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.sendBlocking @@ -44,7 +44,7 @@ class ChannelMonitor : Thread("ChannelMonitor") { private var running = true private fun registerInternal(channel: SelectableChannel, ops: Int, block: (SelectionKey) -> Unit) = - channel.register(selector, ops, block) + channel.register(selector, ops, block) init { registrationPipe.source().apply { @@ -70,7 +70,7 @@ class ChannelMonitor : Thread("ChannelMonitor") { * Prevent NetworkOnMainThreadException because people enable strict mode for no reasons. */ private suspend fun WritableByteChannel.writeCompat(src: ByteBuffer) = - if (Build.VERSION.SDK_INT <= 23) withContext(Dispatchers.Default) { write(src) } else write(src) + if (Build.VERSION.SDK_INT <= 23) withContext(Dispatchers.Default) { write(src) } else write(src) suspend fun register(channel: SelectableChannel, ops: Int, block: (SelectionKey) -> Unit): SelectionKey { val registration = Registration(channel, ops, block) @@ -86,17 +86,15 @@ class ChannelMonitor : Thread("ChannelMonitor") { return registration.result.await() } - suspend fun wait(channel: SelectableChannel, ops: Int) = - CompletableDeferred().run { - register(channel, ops) { - if (it.isValid) try { - it.interestOps(0) // stop listening - } catch (_: CancelledKeyException) { - } - complete(it) - } - await() + suspend fun wait(channel: SelectableChannel, ops: Int) = CompletableDeferred().run { + register(channel, ops) { + if (it.isValid) try { + it.interestOps(0) // stop listening + } catch (_: CancelledKeyException) { } + complete(it) } + await() + } override fun run() { while (running) { diff --git a/client/android/src/com/github/shadowsocks/net/ConcurrentLocalSocketListener.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/ConcurrentLocalSocketListener.kt similarity index 86% rename from client/android/src/com/github/shadowsocks/net/ConcurrentLocalSocketListener.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/net/ConcurrentLocalSocketListener.kt index b00d9bdc..adccea88 100644 --- a/client/android/src/com/github/shadowsocks/net/ConcurrentLocalSocketListener.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/ConcurrentLocalSocketListener.kt @@ -18,17 +18,16 @@ * * *******************************************************************************/ -package com.github.shadowsocks.net +package org.amnezia.vpn.shadowsocks.core.net import android.net.LocalSocket -import com.github.shadowsocks.utils.printLog +import org.amnezia.vpn.shadowsocks.core.utils.printLog import kotlinx.coroutines.* import java.io.File -abstract class ConcurrentLocalSocketListener(name: String, socketFile: File) : - LocalSocketListener(name, socketFile), CoroutineScope { - override val coroutineContext = - Dispatchers.IO + SupervisorJob() + CoroutineExceptionHandler { _, t -> printLog(t) } +abstract class ConcurrentLocalSocketListener(name: String, socketFile: File) : LocalSocketListener(name, socketFile), + CoroutineScope { + override val coroutineContext = Dispatchers.IO + SupervisorJob() + CoroutineExceptionHandler { _, t -> printLog(t) } override fun accept(socket: LocalSocket) { launch { super.accept(socket) } diff --git a/client/android/src/com/github/shadowsocks/net/DefaultNetworkListener.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/DefaultNetworkListener.kt similarity index 67% rename from client/android/src/com/github/shadowsocks/net/DefaultNetworkListener.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/net/DefaultNetworkListener.kt index 9ce13513..cf606af0 100644 --- a/client/android/src/com/github/shadowsocks/net/DefaultNetworkListener.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/DefaultNetworkListener.kt @@ -18,7 +18,7 @@ * * *******************************************************************************/ -package com.github.shadowsocks.net +package org.amnezia.vpn.shadowsocks.core.net import android.annotation.TargetApi import android.net.ConnectivityManager @@ -26,12 +26,11 @@ import android.net.Network import android.net.NetworkCapabilities import android.net.NetworkRequest import android.os.Build -import com.github.shadowsocks.Core -import kotlinx.coroutines.CompletableDeferred -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope +import androidx.core.content.getSystemService + +import org.amnezia.vpn.shadowsocks.core.Core.app +import kotlinx.coroutines.* import kotlinx.coroutines.channels.actor -import kotlinx.coroutines.runBlocking import java.net.UnknownHostException object DefaultNetworkListener { @@ -40,14 +39,13 @@ object DefaultNetworkListener { class Get : NetworkMessage() { val response = CompletableDeferred() } - class Stop(val key: Any) : NetworkMessage() class Put(val network: Network) : NetworkMessage() class Update(val network: Network) : NetworkMessage() class Lost(val network: Network) : NetworkMessage() } - + @ObsoleteCoroutinesApi private val networkActor = GlobalScope.actor(Dispatchers.Unconfined) { val listeners = mutableMapOf Unit>() var network: Network? = null @@ -63,7 +61,7 @@ object DefaultNetworkListener { if (network == null) pendingRequests += message else message.response.complete(network) } is NetworkMessage.Stop -> if (listeners.isNotEmpty() && // was not empty - listeners.remove(message.key) != null && listeners.isEmpty()) { + listeners.remove(message.key) != null && listeners.isEmpty()) { network = null unregister() } @@ -74,9 +72,7 @@ object DefaultNetworkListener { pendingRequests.clear() listeners.values.forEach { it(network) } } - is NetworkMessage.Update -> if (network == message.network) listeners.values.forEach { - it(network) - } + is NetworkMessage.Update -> if (network == message.network) listeners.values.forEach { it(network) } is NetworkMessage.Lost -> if (network == message.network) { network = null listeners.values.forEach { it(null) } @@ -84,39 +80,55 @@ object DefaultNetworkListener { } } - suspend fun start(key: Any, listener: (Network?) -> Unit) = - networkActor.send(NetworkMessage.Start(key, listener)) - + suspend fun start(key: Any, listener: (Network?) -> Unit) = networkActor.send(DefaultNetworkListener.NetworkMessage.Start(key, listener)) suspend fun get() = if (fallback) @TargetApi(23) { - Core.connectivity.activeNetwork - ?: throw UnknownHostException() // failed to listen, return current if available - } else NetworkMessage.Get().run { + connectivity.activeNetwork ?: throw UnknownHostException() // failed to listen, return current if available + } else DefaultNetworkListener.NetworkMessage.Get().run { networkActor.send(this) response.await() } + suspend fun stop(key: Any) = networkActor.send(DefaultNetworkListener.NetworkMessage.Stop(key)) - suspend fun stop(key: Any) = networkActor.send(NetworkMessage.Stop(key)) + + private object Callback: ConnectivityManager.NetworkCallback() { + override fun onAvailable(network: Network) { + super.onAvailable(network) + runBlocking { networkActor.send(DefaultNetworkListener.NetworkMessage.Put(network)) } + } + + override fun onCapabilitiesChanged( + network: Network, + networkCapabilities: NetworkCapabilities + ) { + super.onCapabilitiesChanged(network, networkCapabilities) + // it's a good idea to refresh capabilities + runBlocking { networkActor.send(DefaultNetworkListener.NetworkMessage.Update(network)) } + } + + override fun onLost(network: Network) { + super.onLost(network) + runBlocking { + networkActor.send(DefaultNetworkListener.NetworkMessage.Lost(network)) + } + } + } // NB: this runs in ConnectivityThread, and this behavior cannot be changed until API 26 // private object Callback : ConnectivityManager.NetworkCallback() { -// override fun onAvailable(network: Network) = -// runBlocking { networkActor.send(NetworkMessage.Put(network)) } -// +// override fun onAvailable(network: Network) = runBlocking { networkActor.send(DefaultNetworkListener.NetworkMessage.Put(network)) } // override fun onCapabilitiesChanged(network: Network, networkCapabilities: NetworkCapabilities?) { // // it's a good idea to refresh capabilities -// runBlocking { networkActor.send(NetworkMessage.Update(network)) } +// runBlocking { networkActor.send(DefaultNetworkListener.NetworkMessage.Update(network)) } // } -// -// override fun onLost(network: Network) = -// runBlocking { networkActor.send(NetworkMessage.Lost(network)) } +// override fun onLost(network: Network) = runBlocking { networkActor.send(DefaultNetworkListener.NetworkMessage.Lost(network)) } // } private var fallback = false + private val connectivity = app.getSystemService()!! private val request = NetworkRequest.Builder().apply { addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) }.build() - /** * Unfortunately registerDefaultNetworkCallback is going to return VPN interface since Android P DP1: * https://android.googlesource.com/platform/frameworks/base/+/dda156ab0c5d66ad82bdcf76cda07cbc0a9c8a2e @@ -128,18 +140,15 @@ object DefaultNetworkListener { * Source: https://android.googlesource.com/platform/frameworks/base/+/2df4c7d/services/core/java/com/android/server/ConnectivityService.java#887 */ private fun register() { -// if (Build.VERSION.SDK_INT in 24..27) @TargetApi(24) { -// Core.connectivity.registerDefaultNetworkCallback(Callback) -// } else try { -// fallback = false -// // we want REQUEST here instead of LISTEN -// Core.connectivity.requestNetwork(request, Callback) -// } catch (e: SecurityException) { -// // known bug: https://stackoverflow.com/a/33509180/2245107 -// // if (Build.VERSION.SDK_INT != 23) Crashlytics.logException(e) -// fallback = true -// } + if (Build.VERSION.SDK_INT in 24..27) @TargetApi(24) { + connectivity.registerDefaultNetworkCallback(Callback) + } else try { + fallback = false + // we want REQUEST here instead of LISTEN + connectivity.requestNetwork(request, Callback) + } catch (e: SecurityException) { + fallback = true + } } - - private fun unregister() {}//= Core.connectivity.unregisterNetworkCallback(Callback) + private fun unregister() = connectivity.unregisterNetworkCallback(Callback) } diff --git a/client/android/src/com/github/shadowsocks/net/HttpsTest.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/HttpsTest.kt similarity index 75% rename from client/android/src/com/github/shadowsocks/net/HttpsTest.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/net/HttpsTest.kt index 9c8e73ae..c1afc3b4 100644 --- a/client/android/src/com/github/shadowsocks/net/HttpsTest.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/HttpsTest.kt @@ -18,21 +18,23 @@ * * *******************************************************************************/ -package com.github.shadowsocks.net +package org.amnezia.vpn.shadowsocks.core.net import android.os.Build import android.os.SystemClock import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel -import com.github.shadowsocks.Core.app +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.Core.app +import org.amnezia.vpn.shadowsocks.core.acl.Acl import org.amnezia.vpn.R -import com.github.shadowsocks.utils.useCancellable -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.Job -import kotlinx.coroutines.launch +import org.amnezia.vpn.shadowsocks.core.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.utils.Key +import org.amnezia.vpn.shadowsocks.core.utils.disconnectFromMain +import kotlinx.coroutines.* import java.io.IOException import java.net.HttpURLConnection +import java.net.Proxy import java.net.URL import java.net.URLConnection @@ -42,21 +44,17 @@ import java.net.URLConnection class HttpsTest : ViewModel() { sealed class Status { protected abstract val status: CharSequence - open fun retrieve(setStatus: (CharSequence) -> Unit, errorCallback: (String) -> Unit) = - setStatus(status) + open fun retrieve(setStatus: (CharSequence) -> Unit, errorCallback: (String) -> Unit) = setStatus(status) object Idle : Status() { override val status get() = app.getText(R.string.vpn_connected) } - object Testing : Status() { override val status get() = app.getText(R.string.connection_test_testing) } - class Success(private val elapsed: Long) : Status() { override val status get() = app.getString(R.string.connection_test_available, elapsed) } - sealed class Error : Status() { override val status get() = app.getText(R.string.connection_test_fail) protected abstract val error: String @@ -71,43 +69,48 @@ class HttpsTest : ViewModel() { class UnexpectedResponseCode(private val code: Int) : Error() { override val error get() = app.getString(R.string.connection_test_error_status_code, code) } - class IOFailure(private val e: IOException) : Error() { override val error get() = app.getString(R.string.connection_test_error, e.message) } } } - private var running: Job? = null + private var running: Pair? = null val status = MutableLiveData().apply { value = Status.Idle } fun testConnection() { cancelTest() status.value = Status.Testing - val url = URL("https", "www.google.com", "/generate_204") - val conn = (url.openConnection()) as HttpURLConnection + val url = URL("https", when ((Core.currentProfile ?: return).first.route) { + Acl.CHINALIST -> "www.qualcomm.cn" + else -> "www.google.com" + }, "/generate_204") + val conn = (if (DataStore.serviceMode != Key.modeVpn) { + url.openConnection(Proxy(Proxy.Type.SOCKS, DataStore.proxyAddress)) + } else url.openConnection()) as HttpURLConnection conn.setRequestProperty("Connection", "close") conn.instanceFollowRedirects = false conn.useCaches = false - running = GlobalScope.launch(Dispatchers.Main.immediate) { - status.value = conn.useCancellable { + running = conn to GlobalScope.launch(Dispatchers.Main.immediate) { + status.value = withContext(Dispatchers.IO) { try { val start = SystemClock.elapsedRealtime() - val code = responseCode + val code = conn.responseCode val elapsed = SystemClock.elapsedRealtime() - start - if (code == 204 || code == 200 && responseLength == 0L) Status.Success(elapsed) + if (code == 204 || code == 200 && conn.responseLength == 0L) Status.Success(elapsed) else Status.Error.UnexpectedResponseCode(code) } catch (e: IOException) { Status.Error.IOFailure(e) } finally { - disconnect() + conn.disconnect() } } } } - private fun cancelTest() { - running?.cancel() + private fun cancelTest() = running?.let { (conn, job) -> + job.cancel() // ensure job is cancelled before interrupting + conn.disconnectFromMain() running = null } diff --git a/client/android/src/com/github/shadowsocks/net/LocalDnsServer.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/LocalDnsServer.kt similarity index 74% rename from client/android/src/com/github/shadowsocks/net/LocalDnsServer.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/net/LocalDnsServer.kt index 99b5a849..8e06c64a 100644 --- a/client/android/src/com/github/shadowsocks/net/LocalDnsServer.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/LocalDnsServer.kt @@ -18,10 +18,9 @@ * * *******************************************************************************/ -package com.github.shadowsocks.net +package org.amnezia.vpn.shadowsocks.core.net -import com.github.shadowsocks.bg.BaseService -import com.github.shadowsocks.utils.printLog +import org.amnezia.vpn.shadowsocks.core.utils.printLog import kotlinx.coroutines.* import org.xbill.DNS.* import java.io.IOException @@ -30,6 +29,7 @@ import java.nio.ByteBuffer import java.nio.channels.DatagramChannel import java.nio.channels.SelectionKey import java.nio.channels.SocketChannel +import org.amnezia.vpn.R /** * A simple DNS conditional forwarder. @@ -41,9 +41,7 @@ import java.nio.channels.SocketChannel * https://github.com/shadowsocks/overture/tree/874f22613c334a3b78e40155a55479b7b69fee04 */ class LocalDnsServer(private val localResolver: suspend (String) -> Array, - private val remoteDns: Socks5Endpoint, - private val proxy: SocketAddress, - private val hosts: HostsFile) : CoroutineScope { + private val remoteDns: Socks5Endpoint, private val proxy: SocketAddress) : CoroutineScope { /** * Forward all requests to remote and ignore localResolver. */ @@ -70,30 +68,14 @@ class LocalDnsServer(private val localResolver: suspend (String) -> Array) = - ByteBuffer.wrap(prepareDnsResponse(request).apply { - header.setFlag(Flags.RA.toInt()) // recursion available - for (address in results) addRecord(when (address) { - is Inet4Address -> ARecord(question.name, DClass.IN, TTL, address) - is Inet6Address -> AAAARecord(question.name, DClass.IN, TTL, address) - else -> error("Unsupported address $address") - }, Section.ANSWER) - }.toWire()) } - private val monitor = ChannelMonitor() - override val coroutineContext = - SupervisorJob() + CoroutineExceptionHandler { _, t -> printLog(t) } + override val coroutineContext = SupervisorJob() + CoroutineExceptionHandler { _, t -> printLog(t) } suspend fun start(listen: SocketAddress) = DatagramChannel.open().run { configureBlocking(false) - try { - socket().bind(listen) - } catch (e: BindException) { - throw BaseService.ExpectedExceptionWrapper(e) - } + socket().bind(listen) monitor.register(this, SelectionKey.OP_READ) { handlePacket(this) } } @@ -111,27 +93,20 @@ class LocalDnsServer(private val localResolver: suspend (String) -> Array Array localResults.any(subnet::matches) }) { remote.cancel() - cookDnsResponse(request, localResults.asIterable()) + ByteBuffer.wrap(prepareDnsResponse(request).apply { + header.setFlag(Flags.RA.toInt()) // recursion available + for (address in localResults) addRecord(when (address) { + is Inet4Address -> ARecord(question.name, DClass.IN, TTL, address) + is Inet6Address -> AAAARecord(question.name, DClass.IN, TTL, address) + else -> throw IllegalStateException("Unsupported address $address") + }, Section.ANSWER) + }.toWire()) } else remote.await() } catch (e: Exception) { remote.cancel() when (e) { - // is TimeoutCancellationException -> Crashlytics.log(Log.WARN, TAG, "Remote resolving timed out") - is CancellationException -> { - } // ignore - // is IOException -> Crashlytics.log(Log.WARN, TAG, e.message) + is CancellationException -> { } // ignore else -> printLog(e) } ByteBuffer.wrap(prepareDnsResponse(request).apply { @@ -157,6 +136,7 @@ class LocalDnsServer(private val localResolver: suspend (String) -> Array @@ -166,9 +146,7 @@ class LocalDnsServer(private val localResolver: suspend (String) -> Array= 0 && wrapped.hasRemaining()) monitor.wait(channel, SelectionKey.OP_WRITE) val result = remoteDns.tcpReceiveBuffer(UDP_PACKET_SIZE) - remoteDns.tcpUnwrap(result, channel::read) { - monitor.wait(channel, SelectionKey.OP_READ) - } + remoteDns.tcpUnwrap(result, channel::read) { monitor.wait(channel, SelectionKey.OP_READ) } result } else DatagramChannel.open().use { channel -> channel.configureBlocking(false) diff --git a/client/android/src/com/github/shadowsocks/net/LocalSocketListener.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/LocalSocketListener.kt similarity index 97% rename from client/android/src/com/github/shadowsocks/net/LocalSocketListener.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/net/LocalSocketListener.kt index 8ac45f26..e6b06297 100644 --- a/client/android/src/com/github/shadowsocks/net/LocalSocketListener.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/LocalSocketListener.kt @@ -18,7 +18,7 @@ * * *******************************************************************************/ -package com.github.shadowsocks.net +package org.amnezia.vpn.shadowsocks.core.net import android.net.LocalServerSocket import android.net.LocalSocket @@ -26,7 +26,7 @@ import android.net.LocalSocketAddress import android.system.ErrnoException import android.system.Os import android.system.OsConstants -import com.github.shadowsocks.utils.printLog +import org.amnezia.vpn.shadowsocks.core.utils.printLog import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.sendBlocking @@ -48,7 +48,6 @@ abstract class LocalSocketListener(name: String, socketFile: File) : Thread(name * Inherited class do not need to close input/output streams as they will be closed automatically. */ protected open fun accept(socket: LocalSocket) = socket.use { acceptInternal(socket) } - protected abstract fun acceptInternal(socket: LocalSocket) final override fun run() { localSocket.use { diff --git a/client/android/src/com/github/shadowsocks/net/Socks5Endpoint.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/Socks5Endpoint.kt similarity index 77% rename from client/android/src/com/github/shadowsocks/net/Socks5Endpoint.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/net/Socks5Endpoint.kt index f3ac5683..b815ccf0 100644 --- a/client/android/src/com/github/shadowsocks/net/Socks5Endpoint.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/Socks5Endpoint.kt @@ -18,9 +18,9 @@ * * *******************************************************************************/ -package com.github.shadowsocks.net +package org.amnezia.vpn.shadowsocks.core.net -import com.github.shadowsocks.utils.parseNumericAddress +import org.amnezia.vpn.shadowsocks.core.utils.parseNumericAddress import net.sourceforge.jsocks.Socks4Message import net.sourceforge.jsocks.Socks5Message import java.io.EOFException @@ -32,13 +32,12 @@ import kotlin.math.max class Socks5Endpoint(host: String, port: Int) { private val dest = host.parseNumericAddress().let { numeric -> - val bytes = numeric?.address - ?: host.toByteArray().apply { check(size < 256) { "Hostname too long" } } + val bytes = numeric?.address ?: host.toByteArray().apply { check(size < 256) { "Hostname too long" } } val type = when (numeric) { null -> Socks5Message.SOCKS_ATYP_DOMAINNAME is Inet4Address -> Socks5Message.SOCKS_ATYP_IPV4 is Inet6Address -> Socks5Message.SOCKS_ATYP_IPV6 - else -> error("Unsupported address type $numeric") + else -> throw IllegalStateException("Unsupported address type") } ByteBuffer.allocate(bytes.size + (if (numeric == null) 1 else 0) + 3).apply { put(type.toByte()) @@ -66,35 +65,34 @@ class Socks5Endpoint(host: String, port: Int) { flip() } } - fun tcpReceiveBuffer(size: Int) = ByteBuffer.allocateDirect(headerReserved + 4 + size) + @ExperimentalUnsignedTypes suspend fun tcpUnwrap(buffer: ByteBuffer, reader: (ByteBuffer) -> Int, wait: suspend () -> Unit) { suspend fun readBytes(till: Int) { if (buffer.position() >= till) return while (reader(buffer) >= 0 && buffer.position() < till) wait() if (buffer.position() < till) throw EOFException("${buffer.position()} < $till") } - suspend fun read(index: Int): Byte { readBytes(index + 1) return buffer[index] } - if (read(0) != Socks5Message.SOCKS_VERSION.toByte()) throw IOException("Unsupported SOCKS version ${buffer[0]}") + check(read(0) == Socks5Message.SOCKS_VERSION.toByte()) { "Unsupported SOCKS version" } if (read(1) != 0.toByte()) throw IOException("Unsupported authentication ${buffer[1]}") - if (read(2) != Socks5Message.SOCKS_VERSION.toByte()) throw IOException("Unsupported SOCKS version ${buffer[2]}") + check(read(2) == Socks5Message.SOCKS_VERSION.toByte()) { "Unsupported SOCKS version" } if (read(3) != 0.toByte()) throw IOException("SOCKS5 server returned error ${buffer[3]}") - val dataOffset = when (val type = read(5)) { + val dataOffset = when (read(5)) { Socks5Message.SOCKS_ATYP_IPV4.toByte() -> 4 Socks5Message.SOCKS_ATYP_DOMAINNAME.toByte() -> 1 + read(6) Socks5Message.SOCKS_ATYP_IPV6.toByte() -> 16 - else -> throw IOException("Unsupported address type $type") + else -> throw IllegalStateException("Unsupported address type ${buffer[5]}") } + 8 readBytes(dataOffset + 2) buffer.limit(buffer.position()) // store old position to update mark buffer.position(dataOffset) val dataLength = buffer.short.toUShort().toInt() val end = buffer.position() + dataLength - if (end > buffer.capacity()) throw IOException("Buffer too small to contain the message: $dataLength > ${buffer.capacity() - buffer.position()}") + check(end <= buffer.capacity()) { "Buffer too small to contain the message" } buffer.mark() buffer.position(buffer.limit()) // restore old position buffer.limit(end) @@ -102,30 +100,23 @@ class Socks5Endpoint(host: String, port: Int) { buffer.reset() } - private fun ByteBuffer.tryPosition(newPosition: Int) { - if (limit() < newPosition) throw EOFException("${limit()} < $newPosition") - position(newPosition) + fun udpWrap(packet: ByteBuffer) = ByteBuffer.allocateDirect(3 + dest.size + packet.remaining()).apply { + // header + putShort(0) // reserved + put(0) // fragment number + put(dest) + // data + put(packet) + flip() } - - fun udpWrap(packet: ByteBuffer) = - ByteBuffer.allocateDirect(3 + dest.size + packet.remaining()).apply { - // header - putShort(0) // reserved - put(0) // fragment number - put(dest) - // data - put(packet) - flip() - } - fun udpReceiveBuffer(size: Int) = ByteBuffer.allocateDirect(headerReserved + size) fun udpUnwrap(packet: ByteBuffer) { - packet.tryPosition(3) - packet.tryPosition(6 + when (val type = packet.get()) { + packet.position(3) + packet.position(6 + when (packet.get()) { Socks5Message.SOCKS_ATYP_IPV4.toByte() -> 4 Socks5Message.SOCKS_ATYP_DOMAINNAME.toByte() -> 1 + packet.get() Socks5Message.SOCKS_ATYP_IPV6.toByte() -> 16 - else -> throw IOException("Unsupported address type $type") + else -> throw IllegalStateException("Unsupported address type") }) packet.mark() } diff --git a/client/android/src/com/github/shadowsocks/net/Subnet.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/Subnet.kt similarity index 91% rename from client/android/src/com/github/shadowsocks/net/Subnet.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/net/Subnet.kt index 9cff92c6..a907e5b8 100644 --- a/client/android/src/com/github/shadowsocks/net/Subnet.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/Subnet.kt @@ -18,9 +18,9 @@ * * *******************************************************************************/ -package com.github.shadowsocks.net +package org.amnezia.vpn.shadowsocks.core.net -import com.github.shadowsocks.utils.parseNumericAddress +import org.amnezia.vpn.shadowsocks.core.utils.parseNumericAddress import java.net.InetAddress import java.util.* @@ -42,7 +42,7 @@ class Subnet(val address: InetAddress, val prefixSize: Int) : Comparable private val addressLength get() = address.address.size shl 3 init { - require(prefixSize in 0..addressLength) { "prefixSize $prefixSize not in 0..$addressLength" } + if (prefixSize < 0 || prefixSize > addressLength) throw IllegalArgumentException("prefixSize: $prefixSize") } fun matches(other: InetAddress): Boolean { @@ -61,7 +61,7 @@ class Subnet(val address: InetAddress, val prefixSize: Int) : Comparable } override fun toString(): String = - if (prefixSize == addressLength) address.hostAddress else address.hostAddress + '/' + prefixSize + if (prefixSize == addressLength) address.hostAddress else address.hostAddress + '/' + prefixSize private fun Byte.unsigned() = toInt() and 0xFF override fun compareTo(other: Subnet): Int { @@ -80,6 +80,5 @@ class Subnet(val address: InetAddress, val prefixSize: Int) : Comparable val that = other as? Subnet return address == that?.address && prefixSize == that.prefixSize } - override fun hashCode(): Int = Objects.hash(address, prefixSize) } diff --git a/client/android/src/com/github/shadowsocks/net/TcpFastOpen.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/TcpFastOpen.kt similarity index 79% rename from client/android/src/com/github/shadowsocks/net/TcpFastOpen.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/net/TcpFastOpen.kt index 94aa753a..5f694b9f 100644 --- a/client/android/src/com/github/shadowsocks/net/TcpFastOpen.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/net/TcpFastOpen.kt @@ -18,9 +18,9 @@ * * *******************************************************************************/ -package com.github.shadowsocks.net +package org.amnezia.vpn.shadowsocks.core.net -import com.github.shadowsocks.utils.readableMessage +import org.amnezia.vpn.shadowsocks.core.utils.readableMessage import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withTimeoutOrNull import java.io.File @@ -34,8 +34,7 @@ object TcpFastOpen { */ val supported by lazy { if (File(PATH).canRead()) return@lazy true - val match = - """^(\d+)\.(\d+)\.(\d+)""".toRegex().find(System.getProperty("os.version") ?: "") + val match = """^(\d+)\.(\d+)\.(\d+)""".toRegex().find(System.getProperty("os.version") ?: "") if (match == null) false else when (match.groupValues[1].toInt()) { in Int.MIN_VALUE..2 -> false 3 -> when (match.groupValues[2].toInt()) { @@ -47,22 +46,20 @@ object TcpFastOpen { } } - val sendEnabled: Boolean - get() { - val file = File(PATH) - // File.readText doesn't work since this special file will return length 0 - // on Android containers like Chrome OS, this file does not exist so we simply judge by the kernel version - return if (file.canRead()) file.bufferedReader().use { it.readText() }.trim().toInt() and 1 > 0 else supported - } + val sendEnabled: Boolean get() { + val file = File(PATH) + // File.readText doesn't work since this special file will return length 0 + // on Android containers like Chrome OS, this file does not exist so we simply judge by the kernel version + return if (file.canRead()) file.bufferedReader().use { it.readText() }.trim().toInt() and 1 > 0 else supported + } fun enable(): String? { return try { ProcessBuilder("su", "-c", "echo 3 > $PATH").redirectErrorStream(true).start() - .inputStream.bufferedReader().readText() + .inputStream.bufferedReader().readText() } catch (e: IOException) { e.readableMessage } } - fun enableTimeout() = runBlocking { withTimeoutOrNull(1000) { enable() } } } diff --git a/client/android/src/com/github/shadowsocks/net/HostsFile.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/NativePlugin.kt similarity index 61% rename from client/android/src/com/github/shadowsocks/net/HostsFile.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/NativePlugin.kt index 9bffd775..6c4d1ae6 100644 --- a/client/android/src/com/github/shadowsocks/net/HostsFile.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/NativePlugin.kt @@ -1,7 +1,7 @@ /******************************************************************************* * * - * Copyright (C) 2019 by Max Lv * - * Copyright (C) 2019 by Mygod Studio * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * * * * This program is free software: you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * @@ -18,23 +18,16 @@ * * *******************************************************************************/ -package com.github.shadowsocks.net +package org.amnezia.vpn.shadowsocks.core.plugin -import com.github.shadowsocks.utils.computeIfAbsentCompat -import com.github.shadowsocks.utils.parseNumericAddress -import java.net.InetAddress - -class HostsFile(input: String = "") { - private val map = mutableMapOf>() +import android.content.pm.ResolveInfo +import android.os.Bundle +class NativePlugin(resolveInfo: ResolveInfo) : ResolvedPlugin(resolveInfo) { init { - for (line in input.lineSequence()) { - val entries = line.substringBefore('#').splitToSequence(' ', '\t').filter { it.isNotEmpty() } - val address = entries.firstOrNull()?.parseNumericAddress() ?: continue - for (hostname in entries.drop(1)) map.computeIfAbsentCompat(hostname) { LinkedHashSet(1) }.add(address) - } + check(resolveInfo.providerInfo != null) } - val configuredHostnames get() = map.size - fun resolve(hostname: String) = map[hostname]?.shuffled() ?: emptyList() + override val metaData: Bundle get() = resolveInfo.providerInfo.metaData + override val packageName: String get() = resolveInfo.providerInfo.packageName } diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/NoPlugin.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/NoPlugin.kt new file mode 100644 index 00000000..6dad56ef --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/NoPlugin.kt @@ -0,0 +1,9 @@ +package org.amnezia.vpn.shadowsocks.core.plugin + +import org.amnezia.vpn.shadowsocks.core.Core.app +import org.amnezia.vpn.R + +object NoPlugin : Plugin() { + override val id: String get() = "" + override val label: CharSequence get() = app.getText(R.string.plugin_disabled) +} diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/Plugin.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/Plugin.kt new file mode 100644 index 00000000..ee01c65d --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/Plugin.kt @@ -0,0 +1,32 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core.plugin + +import android.graphics.drawable.Drawable + +abstract class Plugin { + abstract val id: String + abstract val label: CharSequence + open val icon: Drawable? get() = null + open val defaultConfig: String? get() = null + open val packageName: String get() = "" + open val trusted: Boolean get() = true +} diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/PluginConfiguration.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/PluginConfiguration.kt new file mode 100644 index 00000000..2c367a44 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/PluginConfiguration.kt @@ -0,0 +1,61 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core.plugin + +import org.amnezia.vpn.shadowsocks.core.utils.Commandline +import org.amnezia.vpn.shadowsocks.plugin.PluginOptions +import java.util.* + +class PluginConfiguration(val pluginsOptions: Map, val selected: String) { + private constructor(plugins: List) : this( + plugins.filter { it.id.isNotEmpty() }.associate { it.id to it }, + if (plugins.isEmpty()) "" else plugins[0].id) + constructor(plugin: String) : this(plugin.split('\n').map { line -> + if (line.startsWith("kcptun ")) { + val opt = PluginOptions() + opt.id = "kcptun" + try { + val iterator = Commandline.translateCommandline(line).drop(1).iterator() + while (iterator.hasNext()) { + val option = iterator.next() + when { + option == "--nocomp" -> opt["nocomp"] = null + option.startsWith("--") -> opt[option.substring(2)] = iterator.next() + else -> throw IllegalArgumentException("Unknown kcptun parameter: $option") + } + } + } catch (exc: Exception) { + } + opt + } else PluginOptions(line) + }) + + fun getOptions(id: String): PluginOptions = if (id.isEmpty()) PluginOptions() else + pluginsOptions[id] ?: PluginOptions(id, PluginManager.fetchPlugins()[id]?.defaultConfig) + val selectedOptions: PluginOptions get() = getOptions(selected) + + override fun toString(): String { + val result = LinkedList() + for ((id, opt) in pluginsOptions) if (id == this.selected) result.addFirst(opt) else result.addLast(opt) + if (!pluginsOptions.contains(selected)) result.addFirst(selectedOptions) + return result.joinToString("\n") { it.toString(false) } + } +} diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/PluginManager.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/PluginManager.kt new file mode 100644 index 00000000..9c7e0f9e --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/PluginManager.kt @@ -0,0 +1,193 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core.plugin + +import android.annotation.SuppressLint +import android.content.BroadcastReceiver +import android.content.ContentResolver +import android.content.Intent +import android.content.pm.PackageManager +import android.content.pm.Signature +import android.database.Cursor +import android.net.Uri +import android.system.Os +import android.util.Base64 +import androidx.core.os.bundleOf + +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.Core.app +import org.amnezia.vpn.R +import org.amnezia.vpn.shadowsocks.core.utils.printLog +import org.amnezia.vpn.shadowsocks.core.utils.signaturesCompat +import org.amnezia.vpn.shadowsocks.plugin.PluginContract +import org.amnezia.vpn.shadowsocks.plugin.PluginOptions +import java.io.File +import java.io.FileNotFoundException + +object PluginManager { + class PluginNotFoundException(private val plugin: String) : FileNotFoundException(plugin) { + override fun getLocalizedMessage() = app.getString(R.string.plugin_unknown, plugin) + } + + /** + * Trusted signatures by the app. Third-party fork should add their public key to their fork if the developer wishes + * to publish or has published plugins for this app. You can obtain your public key by executing: + * + * $ keytool -export -alias key-alias -keystore /path/to/keystore.jks -rfc + * + * If you don't plan to publish any plugin but is developing/has developed some, it's not necessary to add your + * public key yet since it will also automatically trust packages signed by the same signatures, e.g. debug keys. + */ + val trustedSignatures by lazy { + Core.packageInfo.signaturesCompat.toSet() + + Signature(Base64.decode( // @Mygod + """ + |MIIDWzCCAkOgAwIBAgIEUzfv8DANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJD + |TjEOMAwGA1UECBMFTXlnb2QxDjAMBgNVBAcTBU15Z29kMQ4wDAYDVQQKEwVNeWdv + |ZDEOMAwGA1UECxMFTXlnb2QxDjAMBgNVBAMTBU15Z29kMCAXDTE0MDUwMjA5MjQx + |OVoYDzMwMTMwOTAyMDkyNDE5WjBdMQswCQYDVQQGEwJDTjEOMAwGA1UECBMFTXln + |b2QxDjAMBgNVBAcTBU15Z29kMQ4wDAYDVQQKEwVNeWdvZDEOMAwGA1UECxMFTXln + |b2QxDjAMBgNVBAMTBU15Z29kMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC + |AQEAjm5ikHoP3w6zavvZU5bRo6Birz41JL/nZidpdww21q/G9APA+IiJMUeeocy0 + |L7/QY8MQZABVwNq79LXYWJBcmmFXM9xBPgDqQP4uh9JsvazCI9bvDiMn92mz9HiS + |Sg9V4KGg0AcY0r230KIFo7hz+2QBp1gwAAE97myBfA3pi3IzJM2kWsh4LWkKQMfL + |M6KDhpb4mdDQnHlgi4JWe3SYbLtpB6whnTqjHaOzvyiLspx1tmrb0KVxssry9KoX + |YQzl56scfE/QJX0jJ5qYmNAYRCb4PibMuNSGB2NObDabSOMAdT4JLueOcHZ/x9tw + |agGQ9UdymVZYzf8uqc+29ppKdQIDAQABoyEwHzAdBgNVHQ4EFgQUBK4uJ0cqmnho + |6I72VmOVQMvVCXowDQYJKoZIhvcNAQELBQADggEBABZQ3yNESQdgNJg+NRIcpF9l + |YSKZvrBZ51gyrC7/2ZKMpRIyXruUOIrjuTR5eaONs1E4HI/uA3xG1eeW2pjPxDnO + |zgM4t7EPH6QbzibihoHw1MAB/mzECzY8r11PBhDQlst0a2hp+zUNR8CLbpmPPqTY + |RSo6EooQ7+NBejOXysqIF1q0BJs8Y5s/CaTOmgbL7uPCkzArB6SS/hzXgDk5gw6v + |wkGeOtzcj1DlbUTvt1s5GlnwBTGUmkbLx+YUje+n+IBgMbohLUDYBtUHylRVgMsc + |1WS67kDqeJiiQZvrxvyW6CZZ/MIGI+uAkkj3DqJpaZirkwPgvpcOIrjZy0uFvQM= + """, Base64.DEFAULT)) + + Signature(Base64.decode( // @madeye + """ + |MIICQzCCAaygAwIBAgIETV9OhjANBgkqhkiG9w0BAQUFADBmMQswCQYDVQQGEwJjbjERMA8GA1UE + |CBMIU2hhbmdoYWkxDzANBgNVBAcTBlB1ZG9uZzEUMBIGA1UEChMLRnVkYW4gVW5pdi4xDDAKBgNV + |BAsTA1BQSTEPMA0GA1UEAxMGTWF4IEx2MB4XDTExMDIxOTA1MDA1NFoXDTM2MDIxMzA1MDA1NFow + |ZjELMAkGA1UEBhMCY24xETAPBgNVBAgTCFNoYW5naGFpMQ8wDQYDVQQHEwZQdWRvbmcxFDASBgNV + |BAoTC0Z1ZGFuIFVuaXYuMQwwCgYDVQQLEwNQUEkxDzANBgNVBAMTBk1heCBMdjCBnzANBgkqhkiG + |9w0BAQEFAAOBjQAwgYkCgYEAq6lA8LqdeEI+es9SDX85aIcx8LoL3cc//iRRi+2mFIWvzvZ+bLKr + |4Wd0rhu/iU7OeMm2GvySFyw/GdMh1bqh5nNPLiRxAlZxpaZxLOdRcxuvh5Nc5yzjM+QBv8ECmuvu + |AOvvT3UDmA0AMQjZqSCmxWIxc/cClZ/0DubreBo2st0CAwEAATANBgkqhkiG9w0BAQUFAAOBgQAQ + |Iqonxpwk2ay+Dm5RhFfZyG9SatM/JNFx2OdErU16WzuK1ItotXGVJaxCZv3u/tTwM5aaMACGED5n + |AvHaDGCWynY74oDAopM4liF/yLe1wmZDu6Zo/7fXrH+T03LBgj2fcIkUfN1AA4dvnBo8XWAm9VrI + |1iNuLIssdhDz3IL9Yg== + """, Base64.DEFAULT)) + } + + private var receiver: BroadcastReceiver? = null + private var cachedPlugins: Map? = null + fun fetchPlugins(): Map = synchronized(this) { + if (receiver == null) receiver = Core.listenForPackageChanges { + synchronized(this) { + receiver = null + cachedPlugins = null + } + } + if (cachedPlugins == null) { + val pm = app.packageManager + cachedPlugins = (pm.queryIntentContentProviders(Intent(PluginContract.ACTION_NATIVE_PLUGIN), + PackageManager.GET_META_DATA).map { NativePlugin(it) } + NoPlugin).associate { it.id to it } + } + cachedPlugins!! + } + + private fun buildUri(id: String) = Uri.Builder() + .scheme(PluginContract.SCHEME) + .authority(PluginContract.AUTHORITY) + .path("/$id") + .build() + fun buildIntent(id: String, action: String): Intent = Intent(action, buildUri(id)) + + // the following parts are meant to be used by :bg + @Throws(Throwable::class) + fun init(options: PluginOptions): String? { + if (options.id.isEmpty()) return null + var throwable: Throwable? = null + + try { + val path = initNative(options) + if (path != null) return path + } catch (t: Throwable) { + if (throwable == null) throwable = t else printLog(t) + } + + // add other plugin types here + + throw throwable ?: PluginNotFoundException(options.id) + } + + private fun initNative(options: PluginOptions): String? { + val providers = app.packageManager.queryIntentContentProviders( + Intent(PluginContract.ACTION_NATIVE_PLUGIN, buildUri(options.id)), 0) + if (providers.isEmpty()) return null + val uri = Uri.Builder() + .scheme(ContentResolver.SCHEME_CONTENT) + .authority(providers.single().providerInfo.authority) + .build() + val cr = app.contentResolver + return try { + initNativeFast(cr, options, uri) + } catch (t: Throwable) { + printLog(t) + initNativeSlow(cr, options, uri) + } + } + + private fun initNativeFast(cr: ContentResolver, options: PluginOptions, uri: Uri): String { + val result = cr.call(uri, PluginContract.METHOD_GET_EXECUTABLE, null, + bundleOf(Pair(PluginContract.EXTRA_OPTIONS, options.id)))!!.getString(PluginContract.EXTRA_ENTRY)!! + check(File(result).canExecute()) + return result + } + + @SuppressLint("Recycle") + private fun initNativeSlow(cr: ContentResolver, options: PluginOptions, uri: Uri): String? { + var initialized = false + fun entryNotFound(): Nothing = throw IndexOutOfBoundsException("Plugin entry binary not found") + val pluginDir = File(Core.deviceStorage.noBackupFilesDir, "plugin") + (cr.query(uri, arrayOf(PluginContract.COLUMN_PATH, PluginContract.COLUMN_MODE), null, null, null) + ?: return null).use { cursor -> + if (!cursor.moveToFirst()) entryNotFound() + pluginDir.deleteRecursively() + if (!pluginDir.mkdirs()) throw FileNotFoundException("Unable to create plugin directory") + val pluginDirPath = pluginDir.absolutePath + '/' + do { + val path = cursor.getString(0) + val file = File(pluginDir, path) + check(file.absolutePath.startsWith(pluginDirPath)) + cr.openInputStream(uri.buildUpon().path(path).build())!!.use { inStream -> + file.outputStream().use { outStream -> inStream.copyTo(outStream) } + } + Os.chmod(file.absolutePath, when (cursor.getType(1)) { + Cursor.FIELD_TYPE_INTEGER -> cursor.getInt(1) + Cursor.FIELD_TYPE_STRING -> cursor.getString(1).toInt(8) + else -> throw IllegalArgumentException("File mode should be of type int") + }) + if (path == options.id) initialized = true + } while (cursor.moveToNext()) + } + if (!initialized) entryNotFound() + return File(pluginDir, options.id).absolutePath + } +} diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/ResolvedPlugin.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/ResolvedPlugin.kt new file mode 100644 index 00000000..7ac646bb --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/plugin/ResolvedPlugin.kt @@ -0,0 +1,42 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core.plugin + +import android.content.pm.ResolveInfo +import android.graphics.drawable.Drawable +import android.os.Bundle +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.Core.app +import org.amnezia.vpn.shadowsocks.core.utils.signaturesCompat +import org.amnezia.vpn.shadowsocks.plugin.PluginContract + +abstract class ResolvedPlugin(protected val resolveInfo: ResolveInfo) : Plugin() { + protected abstract val metaData: Bundle + + override val id: String by lazy { metaData.getString(PluginContract.METADATA_KEY_ID)!! } + override val label: CharSequence by lazy { resolveInfo.loadLabel(app.packageManager) } + override val icon: Drawable by lazy { resolveInfo.loadIcon(app.packageManager) } + override val defaultConfig: String by lazy { metaData.getString(PluginContract.METADATA_KEY_DEFAULT_CONFIG)!! } + override val packageName: String get() = resolveInfo.resolvePackageName + override val trusted by lazy { + Core.getPackageInfo(packageName).signaturesCompat.any(PluginManager.trustedSignatures::contains) + } +} diff --git a/client/android/src/com/github/shadowsocks/preference/DataStore.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/preference/DataStore.kt similarity index 61% rename from client/android/src/com/github/shadowsocks/preference/DataStore.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/preference/DataStore.kt index 3e777476..214f17b2 100644 --- a/client/android/src/com/github/shadowsocks/preference/DataStore.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/preference/DataStore.kt @@ -18,18 +18,20 @@ * * *******************************************************************************/ -package com.github.shadowsocks.preference +package org.amnezia.vpn.shadowsocks.core.preference import android.os.Binder import androidx.preference.PreferenceDataStore -import com.github.shadowsocks.Core -import com.github.shadowsocks.database.PrivateDatabase -import com.github.shadowsocks.database.PublicDatabase -import com.github.shadowsocks.net.TcpFastOpen -import com.github.shadowsocks.utils.DirectBoot -import com.github.shadowsocks.utils.Key -import com.github.shadowsocks.utils.parsePort +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.database.PrivateDatabase +import org.amnezia.vpn.shadowsocks.core.database.PublicDatabase +import org.amnezia.vpn.shadowsocks.core.net.TcpFastOpen +import org.amnezia.vpn.shadowsocks.core.utils.DirectBoot +import org.amnezia.vpn.shadowsocks.core.utils.Key +import org.amnezia.vpn.shadowsocks.core.utils.parsePort import java.net.InetSocketAddress +import java.net.NetworkInterface +import java.net.SocketException object DataStore : OnPreferenceDataStoreChangeListener { val publicStore = RoomPreferenceDataStore(PublicDatabase.kvPairDao) @@ -40,7 +42,7 @@ object DataStore : OnPreferenceDataStoreChangeListener { publicStore.registerChangeListener(this) } - override fun onPreferenceDataStoreChanged(store: PreferenceDataStore, key: String) { + override fun onPreferenceDataStoreChanged(store: PreferenceDataStore, key: String?) { when (key) { Key.id -> if (directBootAware) DirectBoot.update() } @@ -48,7 +50,6 @@ object DataStore : OnPreferenceDataStoreChangeListener { // hopefully hashCode = mHandle doesn't change, currently this is true from KitKat to Nougat private val userIndex by lazy { Binder.getCallingUserHandle().hashCode() } - private fun getLocalPort(key: String, default: Int): Int { val value = publicStore.getInt(key) return if (value != null) { @@ -62,8 +63,29 @@ object DataStore : OnPreferenceDataStoreChangeListener { set(value) = publicStore.putLong(Key.id, value) val canToggleLocked: Boolean get() = publicStore.getBoolean(Key.directBootAware) == true val directBootAware: Boolean get() = Core.directBootSupported && canToggleLocked - val tcpFastOpen: Boolean get() = TcpFastOpen.sendEnabled && publicStore.getBoolean(Key.tfo, false) - val listenAddress get() = "127.0.0.1" + val tcpFastOpen: Boolean get() = TcpFastOpen.sendEnabled && publicStore.getBoolean(Key.tfo, true) + val serviceMode get() = publicStore.getString(Key.serviceMode) ?: Key.modeVpn + + /** + * An alternative way to detect this interface could be checking MAC address = 00:ff:aa:00:00:55, but there is no + * reliable way of getting MAC address for now. + */ + val hasArc0 by lazy { + var retry = 0 + while (retry < 5) { + try { + return@lazy NetworkInterface.getByName("arc0") != null + } catch (_: SocketException) { } + retry++ + Thread.sleep(100L shl retry) + } + false + } + /** + * Binding bogus IP address 100.115.92.2 in Chrome OS directly does not seem to work reliably. It might be due to + * the IP may not be available when the device is not connected to any network. + */ + val listenAddress get() = if (publicStore.getBoolean(Key.shareOverLan, hasArc0)) "0.0.0.0" else "127.0.0.1" var portProxy: Int get() = getLocalPort(Key.portProxy, 1080) set(value) = publicStore.putString(Key.portProxy, value.toString()) @@ -71,6 +93,9 @@ object DataStore : OnPreferenceDataStoreChangeListener { var portLocalDns: Int get() = getLocalPort(Key.portLocalDns, 5450) set(value) = publicStore.putString(Key.portLocalDns, value.toString()) + var portTransproxy: Int + get() = getLocalPort(Key.portTransproxy, 8200) + set(value) = publicStore.putString(Key.portTransproxy, value.toString()) /** * Initialize settings that have complicated default values. @@ -79,11 +104,27 @@ object DataStore : OnPreferenceDataStoreChangeListener { if (publicStore.getBoolean(Key.tfo) == null) publicStore.putBoolean(Key.tfo, tcpFastOpen) if (publicStore.getString(Key.portProxy) == null) portProxy = portProxy if (publicStore.getString(Key.portLocalDns) == null) portLocalDns = portLocalDns + if (publicStore.getString(Key.portTransproxy) == null) portTransproxy = portTransproxy } var editingId: Long? get() = privateStore.getLong(Key.id) set(value) = privateStore.putLong(Key.id, value) + var proxyApps: Boolean + get() = privateStore.getBoolean(Key.proxyApps) ?: false + set(value) = privateStore.putBoolean(Key.proxyApps, value) + var bypass: Boolean + get() = privateStore.getBoolean(Key.bypass) ?: false + set(value) = privateStore.putBoolean(Key.bypass, value) + var individual: String + get() = privateStore.getString(Key.individual) ?: "" + set(value) = privateStore.putString(Key.individual, value) + var plugin: String + get() = privateStore.getString(Key.plugin) ?: "" + set(value) = privateStore.putString(Key.plugin, value) + var udpFallback: Long? + get() = privateStore.getLong(Key.udpFallback) + set(value) = privateStore.putLong(Key.udpFallback, value) var dirty: Boolean get() = privateStore.getBoolean(Key.dirty) ?: false set(value) = privateStore.putBoolean(Key.dirty, value) diff --git a/client/android/src/com/github/shadowsocks/preference/OnPreferenceDataStoreChangeListener.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/preference/OnPreferenceDataStoreChangeListener.kt similarity index 96% rename from client/android/src/com/github/shadowsocks/preference/OnPreferenceDataStoreChangeListener.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/preference/OnPreferenceDataStoreChangeListener.kt index e18484b3..a8942315 100644 --- a/client/android/src/com/github/shadowsocks/preference/OnPreferenceDataStoreChangeListener.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/preference/OnPreferenceDataStoreChangeListener.kt @@ -18,10 +18,10 @@ * * *******************************************************************************/ -package com.github.shadowsocks.preference +package org.amnezia.vpn.shadowsocks.core.preference import androidx.preference.PreferenceDataStore interface OnPreferenceDataStoreChangeListener { - fun onPreferenceDataStoreChanged(store: PreferenceDataStore, key: String) + fun onPreferenceDataStoreChanged(store: PreferenceDataStore, key: String?) } diff --git a/client/android/src/com/github/shadowsocks/preference/RoomPreferenceDataStore.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/preference/RoomPreferenceDataStore.kt similarity index 79% rename from client/android/src/com/github/shadowsocks/preference/RoomPreferenceDataStore.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/preference/RoomPreferenceDataStore.kt index 4afbafbb..b7dc4467 100644 --- a/client/android/src/com/github/shadowsocks/preference/RoomPreferenceDataStore.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/preference/RoomPreferenceDataStore.kt @@ -18,15 +18,14 @@ * * *******************************************************************************/ -package com.github.shadowsocks.preference +package org.amnezia.vpn.shadowsocks.core.preference import androidx.preference.PreferenceDataStore -import com.github.shadowsocks.database.KeyValuePair -import java.util.* +import org.amnezia.vpn.shadowsocks.core.database.KeyValuePair +import java.util.HashSet @Suppress("MemberVisibilityCanBePrivate", "unused") -open class RoomPreferenceDataStore(private val kvPairDao: KeyValuePair.Dao) : - PreferenceDataStore() { +open class RoomPreferenceDataStore(private val kvPairDao: KeyValuePair.Dao) : PreferenceDataStore() { fun getBoolean(key: String) = kvPairDao[key]?.boolean fun getFloat(key: String) = kvPairDao[key]?.float fun getInt(key: String) = kvPairDao[key]?.long?.toInt() @@ -39,49 +38,36 @@ open class RoomPreferenceDataStore(private val kvPairDao: KeyValuePair.Dao) : override fun getInt(key: String, defValue: Int) = getInt(key) ?: defValue override fun getLong(key: String, defValue: Long) = getLong(key) ?: defValue override fun getString(key: String, defValue: String?) = getString(key) ?: defValue - override fun getStringSet(key: String, defValue: MutableSet?) = - getStringSet(key) ?: defValue - - fun putBoolean(key: String, value: Boolean?) = - if (value == null) remove(key) else putBoolean(key, value) - - fun putFloat(key: String, value: Float?) = - if (value == null) remove(key) else putFloat(key, value) - - fun putInt(key: String, value: Int?) = - if (value == null) remove(key) else putLong(key, value.toLong()) + override fun getStringSet(key: String, defValue: MutableSet?) = getStringSet(key) ?: defValue + fun putBoolean(key: String, value: Boolean?) = if (value == null) remove(key) else putBoolean(key, value) + fun putFloat(key: String, value: Float?) = if (value == null) remove(key) else putFloat(key, value) + fun putInt(key: String, value: Int?) = if (value == null) remove(key) else putLong(key, value.toLong()) fun putLong(key: String, value: Long?) = if (value == null) remove(key) else putLong(key, value) override fun putBoolean(key: String, value: Boolean) { kvPairDao.put(KeyValuePair(key).put(value)) fireChangeListener(key) } - override fun putFloat(key: String, value: Float) { kvPairDao.put(KeyValuePair(key).put(value)) fireChangeListener(key) } - override fun putInt(key: String, value: Int) { kvPairDao.put(KeyValuePair(key).put(value.toLong())) fireChangeListener(key) } - override fun putLong(key: String, value: Long) { kvPairDao.put(KeyValuePair(key).put(value)) fireChangeListener(key) } - override fun putString(key: String, value: String?) = if (value == null) remove(key) else { kvPairDao.put(KeyValuePair(key).put(value)) fireChangeListener(key) } - - override fun putStringSet(key: String, values: MutableSet?) = - if (values == null) remove(key) else { - kvPairDao.put(KeyValuePair(key).put(values)) - fireChangeListener(key) - } + override fun putStringSet(key: String, values: MutableSet?) = if (values == null) remove(key) else { + kvPairDao.put(KeyValuePair(key).put(values)) + fireChangeListener(key) + } fun remove(key: String) { kvPairDao.delete(key) @@ -89,12 +75,7 @@ open class RoomPreferenceDataStore(private val kvPairDao: KeyValuePair.Dao) : } private val listeners = HashSet() - private fun fireChangeListener(key: String) = - listeners.forEach { it.onPreferenceDataStoreChanged(this, key) } - - fun registerChangeListener(listener: OnPreferenceDataStoreChangeListener) = - listeners.add(listener) - - fun unregisterChangeListener(listener: OnPreferenceDataStoreChangeListener) = - listeners.remove(listener) + private fun fireChangeListener(key: String) = listeners.forEach { it.onPreferenceDataStoreChanged(this, key) } + fun registerChangeListener(listener: OnPreferenceDataStoreChangeListener) = listeners.add(listener) + fun unregisterChangeListener(listener: OnPreferenceDataStoreChangeListener) = listeners.remove(listener) } diff --git a/client/android/src/com/github/shadowsocks/utils/ArrayIterator.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/ArrayIterator.kt similarity index 88% rename from client/android/src/com/github/shadowsocks/utils/ArrayIterator.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/utils/ArrayIterator.kt index 6b789bf5..b63c3cb9 100644 --- a/client/android/src/com/github/shadowsocks/utils/ArrayIterator.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/ArrayIterator.kt @@ -18,10 +18,11 @@ * * *******************************************************************************/ -package com.github.shadowsocks.utils +package org.amnezia.vpn.shadowsocks.core.utils import android.content.ClipData import androidx.recyclerview.widget.SortedList +import org.json.JSONArray private sealed class ArrayIterator : Iterator { abstract val size: Int @@ -35,12 +36,16 @@ private class ClipDataIterator(private val data: ClipData) : ArrayIterator() { + override val size get() = arr.length() + override fun get(index: Int) = arr.get(index) +} +fun JSONArray.asIterable() = Iterable { JSONArrayIterator(this) } + private class SortedListIterator(private val list: SortedList) : ArrayIterator() { override val size get() = list.size() override fun get(index: Int) = list[index] } - fun SortedList.asIterable() = Iterable { SortedListIterator(this) } diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/Commandline.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/Commandline.kt new file mode 100644 index 00000000..d70ff691 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/Commandline.kt @@ -0,0 +1,173 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.core.utils + +import java.util.* + +/** + * Commandline objects help handling command lines specifying processes to + * execute. + * + * The class can be used to define a command line as nested elements or as a + * helper to define a command line by an application. + * + * + * ` + *

+ *   

+ *     

+ *     

+ *     

+ *   


+ *


+` * + * + * Based on: https://github.com/apache/ant/blob/588ce1f/src/main/org/apache/tools/ant/types/Commandline.java + * + * Adds support for escape character '\'. + */ +object Commandline { + + /** + * Quote the parts of the given array in way that makes them + * usable as command line arguments. + * @param args the list of arguments to quote. + * @return empty string for null or no command, else every argument split + * by spaces and quoted by quoting rules. + */ + fun toString(args: Iterable?): String { + // empty path return empty string + if (args == null) { + return "" + } + // path containing one or more elements + val result = StringBuilder() + for (arg in args) { + if (result.isNotEmpty()) result.append(' ') + (0 until arg.length) + .map { arg[it] } + .forEach { + when (it) { + ' ', '\\', '"', '\'' -> { + result.append('\\') // intentionally no break + result.append(it) + } + else -> result.append(it) + } + } + } + return result.toString() + } + + /** + * Quote the parts of the given array in way that makes them + * usable as command line arguments. + * @param args the list of arguments to quote. + * @return empty string for null or no command, else every argument split + * by spaces and quoted by quoting rules. + */ + fun toString(args: Array) = toString(args.asIterable()) // thanks to Java, arrays aren't iterable + + /** + * Crack a command line. + * @param toProcess the command line to process. + * @return the command line broken into strings. + * An empty or null toProcess parameter results in a zero sized array. + */ + fun translateCommandline(toProcess: String?): Array { + if (toProcess == null || toProcess.isEmpty()) { + //no command? no string + return arrayOf() + } + // parse with a simple finite state machine + + val normal = 0 + val inQuote = 1 + val inDoubleQuote = 2 + var state = normal + val tok = StringTokenizer(toProcess, "\\\"\' ", true) + val result = ArrayList() + val current = StringBuilder() + var lastTokenHasBeenQuoted = false + var lastTokenIsSlash = false + + while (tok.hasMoreTokens()) { + val nextTok = tok.nextToken() + when (state) { + inQuote -> if ("\'" == nextTok) { + lastTokenHasBeenQuoted = true + state = normal + } else { + current.append(nextTok) + } + inDoubleQuote -> if ("\"" == nextTok) { + if (lastTokenIsSlash) { + current.append(nextTok) + lastTokenIsSlash = false + } else { + lastTokenHasBeenQuoted = true + state = normal + } + } else if ("\\" == nextTok) { + lastTokenIsSlash = if (lastTokenIsSlash) { + current.append(nextTok) + false + } else + true + } else { + if (lastTokenIsSlash) { + current.append("\\") // unescaped + lastTokenIsSlash = false + } + current.append(nextTok) + } + else -> { + if (lastTokenIsSlash) { + current.append(nextTok) + lastTokenIsSlash = false + } else if ("\\" == nextTok) + lastTokenIsSlash = true + else if ("\'" == nextTok) { + state = inQuote + } else if ("\"" == nextTok) { + state = inDoubleQuote + } else if (" " == nextTok) { + if (lastTokenHasBeenQuoted || current.isNotEmpty()) { + result.add(current.toString()) + current.setLength(0) + } + } else { + current.append(nextTok) + } + lastTokenHasBeenQuoted = false + } + } + } + if (lastTokenHasBeenQuoted || current.isNotEmpty()) { + result.add(current.toString()) + } + if (state == inQuote || state == inDoubleQuote) { + throw IllegalArgumentException("unbalanced quotes in $toProcess") + } + if (lastTokenIsSlash) throw IllegalArgumentException("escape character following nothing in $toProcess") + return result.toTypedArray() + } +} diff --git a/client/android/src/com/github/shadowsocks/utils/Constants.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/Constants.kt similarity index 68% rename from client/android/src/com/github/shadowsocks/utils/Constants.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/utils/Constants.kt index 87328ff8..1c3b700d 100644 --- a/client/android/src/com/github/shadowsocks/utils/Constants.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/Constants.kt @@ -18,7 +18,7 @@ * * *******************************************************************************/ -package com.github.shadowsocks.utils +package org.amnezia.vpn.shadowsocks.core.utils object Key { /** @@ -30,13 +30,27 @@ object Key { const val id = "profileId" const val name = "profileName" + const val individual = "Proxyed" + + const val serviceMode = "serviceMode" + const val modeProxy = "proxy" + const val modeVpn = "vpn" + const val modeTransproxy = "transproxy" + const val shareOverLan = "shareOverLan" const val portProxy = "portProxy" const val portLocalDns = "portLocalDns" + const val portTransproxy = "portTransproxy" + const val route = "route" + + const val isAutoConnect = "isAutoConnect" const val directBootAware = "directBootAware" + const val proxyApps = "isProxyApps" + const val bypass = "isBypassApps" const val udpdns = "isUdpDns" const val ipv6 = "isIpv6" + const val metered = "metered" const val host = "proxy" const val password = "sitekey" @@ -44,17 +58,26 @@ object Key { const val remotePort = "remotePortNum" const val remoteDns = "remoteDns" + const val plugin = "plugin" + const val pluginConfigure = "plugin.configure" + const val udpFallback = "udpFallback" + const val dirty = "profileDirty" const val tfo = "tcp_fastopen" - const val hosts = "hosts" const val assetUpdateTime = "assetUpdateTime" + + // TV specific values + const val controlStats = "control.stats" + const val controlImport = "control.import" + const val controlExport = "control.export" + const val about = "about" } object Action { - const val SERVICE = "com.github.shadowsocks.SERVICE" - const val CLOSE = "com.github.shadowsocks.CLOSE" - const val RELOAD = "com.github.shadowsocks.RELOAD" + const val SERVICE = "com.kyle.shadowsocks.SERVICE" + const val CLOSE = "com.kyle.shadowsocks.CLOSE" + const val RELOAD = "com.kyle.shadowsocks.RELOAD" - const val EXTRA_PROFILE_ID = "com.github.shadowsocks.EXTRA_PROFILE_ID" + const val EXTRA_PROFILE_ID = "com.kyle.shadowsocks.EXTRA_PROFILE_ID" } diff --git a/client/android/src/com/github/shadowsocks/utils/DeviceStorageApp.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/DeviceStorageApp.kt similarity index 97% rename from client/android/src/com/github/shadowsocks/utils/DeviceStorageApp.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/utils/DeviceStorageApp.kt index 9dd73e48..b941ccee 100644 --- a/client/android/src/com/github/shadowsocks/utils/DeviceStorageApp.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/DeviceStorageApp.kt @@ -18,7 +18,7 @@ * * *******************************************************************************/ -package com.github.shadowsocks.utils +package org.amnezia.vpn.shadowsocks.core.utils import android.annotation.SuppressLint import android.annotation.TargetApi diff --git a/client/android/src/com/github/shadowsocks/utils/DirectBoot.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/DirectBoot.kt similarity index 73% rename from client/android/src/com/github/shadowsocks/utils/DirectBoot.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/utils/DirectBoot.kt index fda29f45..0e7e82c3 100644 --- a/client/android/src/com/github/shadowsocks/utils/DirectBoot.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/DirectBoot.kt @@ -1,16 +1,16 @@ -package com.github.shadowsocks.utils +package org.amnezia.vpn.shadowsocks.core.utils import android.annotation.TargetApi import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter -import com.github.shadowsocks.Core -import com.github.shadowsocks.Core.app -import com.github.shadowsocks.bg.BaseService -import com.github.shadowsocks.database.Profile -import com.github.shadowsocks.database.ProfileManager -import com.github.shadowsocks.preference.DataStore +import org.amnezia.vpn.shadowsocks.core.Core +import org.amnezia.vpn.shadowsocks.core.Core.app +import org.amnezia.vpn.shadowsocks.core.bg.BaseService +import org.amnezia.vpn.shadowsocks.core.database.Profile +import org.amnezia.vpn.shadowsocks.core.database.ProfileManager +import org.amnezia.vpn.shadowsocks.core.preference.DataStore import java.io.File import java.io.IOException import java.io.ObjectInputStream @@ -23,9 +23,7 @@ object DirectBoot : BroadcastReceiver() { fun getDeviceProfile(): Pair? = try { ObjectInputStream(file.inputStream()).use { it.readObject() as? Pair } - } catch (_: IOException) { - null - } + } catch (_: IOException) { null } fun clean() { file.delete() @@ -37,10 +35,8 @@ object DirectBoot : BroadcastReceiver() { * app.currentProfile will call this. */ fun update(profile: Profile? = ProfileManager.getProfile(DataStore.profileId)) = - if (profile == null) clean() - else ObjectOutputStream(file.outputStream()).use { - it.writeObject(ProfileManager.expand(profile)) - } + if (profile == null) clean() + else ObjectOutputStream(file.outputStream()).use { it.writeObject(ProfileManager.expand(profile)) } fun flushTrafficStats() { getDeviceProfile()?.also { (profile, fallback) -> @@ -55,7 +51,6 @@ object DirectBoot : BroadcastReceiver() { app.registerReceiver(this, IntentFilter(Intent.ACTION_BOOT_COMPLETED)) registered = true } - override fun onReceive(context: Context, intent: Intent) { flushTrafficStats() app.unregisterReceiver(this) diff --git a/client/android/src/com/github/shadowsocks/utils/Utils.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/Utils.kt similarity index 57% rename from client/android/src/com/github/shadowsocks/utils/Utils.kt rename to client/android/src/org/amnezia/vpn/shadowsocks/core/utils/Utils.kt index a465f6d4..15e2dc03 100644 --- a/client/android/src/com/github/shadowsocks/utils/Utils.kt +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/utils/Utils.kt @@ -18,9 +18,8 @@ * * *******************************************************************************/ -package com.github.shadowsocks.utils +package org.amnezia.vpn.shadowsocks.core.utils -import android.annotation.SuppressLint import android.content.BroadcastReceiver import android.content.ContentResolver import android.content.Context @@ -36,64 +35,30 @@ import android.system.OsConstants import android.util.TypedValue import androidx.annotation.AttrRes import androidx.preference.Preference + import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch -import kotlinx.coroutines.suspendCancellableCoroutine import java.net.HttpURLConnection import java.net.InetAddress -import kotlin.coroutines.resume -import kotlin.coroutines.resumeWithException - -fun Iterable.forEachTry(action: (T) -> Unit) { - var result: Exception? = null - for (element in this) try { - action(element) - } catch (e: Exception) { - if (result == null) result = e else result.addSuppressed(e) - } - if (result != null) { - result.printStackTrace() - throw result - } -} val Throwable.readableMessage get() = localizedMessage ?: javaClass.name -private val parseNumericAddress by lazy @SuppressLint("DiscouragedPrivateApi") { +private val parseNumericAddress by lazy { InetAddress::class.java.getDeclaredMethod("parseNumericAddress", String::class.java).apply { isAccessible = true } } - /** - * A slightly more performant variant of parseNumericAddress. + * A slightly more performant variant of InetAddress.parseNumericAddress. * - * Bug in Android 9.0 and lower: https://issuetracker.google.com/issues/123456213 + * Bug: https://issuetracker.google.com/issues/123456213 */ -fun String?.parseNumericAddress(): InetAddress? = - Os.inet_pton(OsConstants.AF_INET, this) ?: Os.inet_pton(OsConstants.AF_INET6, this)?.let { - if (Build.VERSION.SDK_INT >= 29) it else parseNumericAddress.invoke(null, - this) as InetAddress - } +fun String?.parseNumericAddress(): InetAddress? = Os.inet_pton(OsConstants.AF_INET, this) + ?: Os.inet_pton(OsConstants.AF_INET6, this)?.let { parseNumericAddress.invoke(null, this) as InetAddress } -fun MutableMap.computeIfAbsentCompat(key: K, value: () -> V) = - if (Build.VERSION.SDK_INT >= 24) computeIfAbsent(key) { value() } else this[key] - ?: value().also { put(key, it) } - -suspend fun HttpURLConnection.useCancellable(block: suspend HttpURLConnection.() -> T): T { - return suspendCancellableCoroutine { cont -> - cont.invokeOnCancellation { - if (Build.VERSION.SDK_INT >= 26) disconnect() else GlobalScope.launch(Dispatchers.IO) { disconnect() } - } - GlobalScope.launch(Dispatchers.IO) { - try { - cont.resume(block()) - } catch (e: Throwable) { - cont.resumeWithException(e) - } - } - } +fun HttpURLConnection.disconnectFromMain() { + if (Build.VERSION.SDK_INT >= 26) disconnect() else GlobalScope.launch(Dispatchers.IO) { disconnect() } } fun parsePort(str: String?, default: Int, min: Int = 1025): Int { @@ -101,17 +66,16 @@ fun parsePort(str: String?, default: Int, min: Int = 1025): Int { return if (value < min || value > 65535) default else value } -fun broadcastReceiver(callback: (Context, Intent) -> Unit): BroadcastReceiver = - object : BroadcastReceiver() { - override fun onReceive(context: Context, intent: Intent) = callback(context, intent) - } +fun broadcastReceiver(callback: (Context, Intent) -> Unit): BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) = callback(context, intent) +} fun ContentResolver.openBitmap(uri: Uri) = - if (Build.VERSION.SDK_INT >= 28) ImageDecoder.decodeBitmap(ImageDecoder.createSource(this, uri)) - else BitmapFactory.decodeStream(openInputStream(uri)) + if (Build.VERSION.SDK_INT >= 28) ImageDecoder.decodeBitmap(ImageDecoder.createSource(this, uri)) + else BitmapFactory.decodeStream(openInputStream(uri)) -val PackageInfo.signaturesCompat - get() = if (Build.VERSION.SDK_INT >= 28) signingInfo.apkContentsSigners else @Suppress("DEPRECATION") signatures +val PackageInfo.signaturesCompat get() = + if (Build.VERSION.SDK_INT >= 28) signingInfo.apkContentsSigners else @Suppress("DEPRECATION") signatures /** * Based on: https://stackoverflow.com/a/26348729/2245107 @@ -122,11 +86,9 @@ fun Resources.Theme.resolveResourceId(@AttrRes resId: Int): Int { return typedValue.resourceId } -val Intent.datas - get() = listOfNotNull(data) + (clipData?.asIterable()?.mapNotNull { it.uri } ?: emptyList()) +val Intent.datas get() = listOfNotNull(data) + (clipData?.asIterable()?.mapNotNull { it.uri } ?: emptyList()) fun printLog(t: Throwable) { - // Crashlytics.logException(t) t.printStackTrace() } diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/NativePluginProvider.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/NativePluginProvider.kt new file mode 100644 index 00000000..4d7a4423 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/NativePluginProvider.kt @@ -0,0 +1,97 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.plugin + +import android.content.ContentProvider +import android.content.ContentValues +import android.database.Cursor +import android.database.MatrixCursor +import android.net.Uri +import android.os.Bundle +import android.os.ParcelFileDescriptor +import androidx.core.os.bundleOf + +/** + * Base class for a native plugin provider. A native plugin provider offers read-only access to files that are required + * to run a plugin, such as binary files and other configuration files. To create a native plugin provider, extend this + * class, implement the abstract methods, and add it to your manifest like this: + * + *
<manifest>
+ *    ...
+ *    <application>
+ *        ...
+ *        <provider android:name="com.kyle.shadowsocks.$PLUGIN_ID.BinaryProvider"
+ *                     android:authorities="com.kyle.shadowsocks.plugin.$PLUGIN_ID.BinaryProvider">
+ *            <intent-filter>
+ *                <category android:name="com.kyle.shadowsocks.plugin.ACTION_NATIVE_PLUGIN" />
+ *            </intent-filter>
+ *        </provider>
+ *        ...
+ *    </application>
+ *</manifest>
+ */ +abstract class NativePluginProvider : ContentProvider() { + override fun getType(p0: Uri): String = "application/x-elf" + + override fun onCreate(): Boolean = true + + /** + * Provide all files needed for native plugin. + * + * @param provider A helper object to use to add files. + */ + protected abstract fun populateFiles(provider: PathProvider) + + override fun query(uri: Uri, projection: Array?, selection: String?, selectionArgs: Array?, + sortOrder: String?): Cursor { + check(selection == null && selectionArgs == null && sortOrder == null) + val result = MatrixCursor(projection) + populateFiles(PathProvider(uri, result)) + return result + } + + /** + * Returns executable entry absolute path. This is used if plugin is sharing UID with the host. + * + * Default behavior is throwing UnsupportedOperationException. If you don't wish to use this feature, use the + * default behavior. + * + * @return Absolute path for executable entry. + */ + open fun getExecutable(): String = throw UnsupportedOperationException() + + abstract fun openFile(uri: Uri?): ParcelFileDescriptor + override fun openFile(uri: Uri, mode: String): ParcelFileDescriptor { + check(mode == "r") + return openFile(uri) + } + + override fun call(method: String, arg: String?, extras: Bundle?): Bundle? = when (method) { + PluginContract.METHOD_GET_EXECUTABLE -> bundleOf(Pair(PluginContract.EXTRA_ENTRY, getExecutable())) + else -> super.call(method, arg, extras) + } + + // Methods that should not be used + override fun insert(p0: Uri, p1: ContentValues?): Uri = throw UnsupportedOperationException() + override fun update(p0: Uri, values: ContentValues?, selection: String?, selectionArgs: Array?): Int = + throw UnsupportedOperationException() + override fun delete(uri: Uri, p1: String?, p2: Array?): Int = throw UnsupportedOperationException() +} diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/PathProvider.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/PathProvider.kt new file mode 100644 index 00000000..f7ebe1e4 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/PathProvider.kt @@ -0,0 +1,53 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.plugin + +import android.database.MatrixCursor +import android.net.Uri +import java.io.File + +/** + * Helper class to provide relative paths of files to copy. + */ +class PathProvider internal constructor(baseUri: Uri, private val cursor: MatrixCursor) { + private val basePath = baseUri.path?.trim('/') ?: "" + + fun addPath(path: String, mode: Int = 0b110100100): PathProvider { + val trimmed = path.trim('/') + if (trimmed.startsWith(basePath)) cursor.newRow() + .add(PluginContract.COLUMN_PATH, trimmed) + .add(PluginContract.COLUMN_MODE, mode) + return this + } + fun addTo(file: File, to: String = "", mode: Int = 0b110100100): PathProvider { + var sub = to + file.name + if (basePath.startsWith(sub)) if (file.isDirectory) { + sub += '/' + file.listFiles().forEach { addTo(it, sub, mode) } + } else addPath(sub, mode) + return this + } + fun addAt(file: File, at: String = "", mode: Int = 0b110100100): PathProvider { + if (basePath.startsWith(at)) + if (file.isDirectory) file.listFiles().forEach { addTo(it, at, mode) } else addPath(at, mode) + return this + } +} diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/PluginContract.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/PluginContract.kt new file mode 100644 index 00000000..fd980810 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/PluginContract.kt @@ -0,0 +1,118 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.plugin + +/** + * The contract between the plugin provider and host. Contains definitions for the supported actions, extras, etc. + * + * This class is written in Java to keep Java interoperability. + */ +object PluginContract { + /** + * ContentProvider Action: Used for NativePluginProvider. + * + * Constant Value: "com.kyle.shadowsocks.plugin.ACTION_NATIVE_PLUGIN" + */ + const val ACTION_NATIVE_PLUGIN = "com.kyle.shadowsocks.plugin.ACTION_NATIVE_PLUGIN" + + /** + * Activity Action: Used for ConfigurationActivity. + * + * Constant Value: "com.kyle.shadowsocks.plugin.ACTION_CONFIGURE" + */ + const val ACTION_CONFIGURE = "com.kyle.shadowsocks.plugin.ACTION_CONFIGURE" + /** + * Activity Action: Used for HelpActivity or HelpCallback. + * + * Constant Value: "com.kyle.shadowsocks.plugin.ACTION_HELP" + */ + const val ACTION_HELP = "com.kyle.shadowsocks.plugin.ACTION_HELP" + + /** + * The lookup key for a string that provides the plugin entry binary. + * + * Example: "/data/data/com.kyle.shadowsocks.plugin.obfs_local/lib/libobfs-local.so" + * + * Constant Value: "com.kyle.shadowsocks.plugin.EXTRA_ENTRY" + */ + const val EXTRA_ENTRY = "com.kyle.shadowsocks.plugin.EXTRA_ENTRY" + /** + * The lookup key for a string that provides the options as a string. + * + * Example: "obfs=http;obfs-host=www.baidu.com" + * + * Constant Value: "com.kyle.shadowsocks.plugin.EXTRA_OPTIONS" + */ + const val EXTRA_OPTIONS = "com.kyle.shadowsocks.plugin.EXTRA_OPTIONS" + /** + * The lookup key for a CharSequence that provides user relevant help message. + * + * Example: "obfs=|tls> Enable obfuscating: HTTP or TLS (Experimental). + * obfs-host= Hostname for obfuscating (Experimental)." + * + * Constant Value: "com.kyle.shadowsocks.plugin.EXTRA_HELP_MESSAGE" + */ + const val EXTRA_HELP_MESSAGE = "com.kyle.shadowsocks.plugin.EXTRA_HELP_MESSAGE" + + /** + * The metadata key to retrieve plugin id. Required for plugins. + * + * Constant Value: "com.kyle.shadowsocks.plugin.id" + */ + const val METADATA_KEY_ID = "com.kyle.shadowsocks.plugin.id" + /** + * The metadata key to retrieve default configuration. Default value is empty. + * + * Constant Value: "com.kyle.shadowsocks.plugin.default_config" + */ + const val METADATA_KEY_DEFAULT_CONFIG = "com.kyle.shadowsocks.plugin.default_config" + + const val METHOD_GET_EXECUTABLE = "shadowsocks:getExecutable" + + /** ConfigurationActivity result: fallback to manual edit mode. */ + const val RESULT_FALLBACK = 1 + + /** + * Relative to the file to be copied. This column is required. + * + * Example: "kcptun", "doc/help.txt" + * + * Type: String + */ + const val COLUMN_PATH = "path" + /** + * File mode bits. Default value is "644". + * + * Example: "755" + * + * Type: String + */ + const val COLUMN_MODE = "mode" + + /** + * The scheme for general plugin actions. + */ + const val SCHEME = "plugin" + /** + * The authority for general plugin actions. + */ + const val AUTHORITY = "com.kyle.shadowsocks" +} diff --git a/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/PluginOptions.kt b/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/PluginOptions.kt new file mode 100644 index 00000000..a11ffdd0 --- /dev/null +++ b/client/android/src/org/amnezia/vpn/shadowsocks/core/widget/PluginOptions.kt @@ -0,0 +1,110 @@ +/******************************************************************************* + * * + * Copyright (C) 2017 by Max Lv * + * Copyright (C) 2017 by Mygod Studio * + * * + * This program is free software: you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation, either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see . * + * * + *******************************************************************************/ + +package org.amnezia.vpn.shadowsocks.plugin + +import java.util.* + +/** + * Helper class for processing plugin options. + * + * Based on: https://github.com/apache/ant/blob/588ce1f/src/main/org/apache/tools/ant/types/Commandline.java + */ +class PluginOptions : HashMap { + var id = "" + + constructor() : super() + constructor(initialCapacity: Int) : super(initialCapacity) + constructor(initialCapacity: Int, loadFactor: Float) : super(initialCapacity, loadFactor) + + private constructor(options: String?, parseId: Boolean) : this() { + @Suppress("NAME_SHADOWING") + var parseId = parseId + if (options.isNullOrEmpty()) return + check(options.all { !it.isISOControl() }) { "No control characters allowed." } + val tokenizer = StringTokenizer("$options;", "\\=;", true) + val current = StringBuilder() + var key: String? = null + while (tokenizer.hasMoreTokens()) when (val nextToken = tokenizer.nextToken()) { + "\\" -> current.append(tokenizer.nextToken()) + "=" -> if (key == null) { + key = current.toString() + current.setLength(0) + } else current.append(nextToken) + ";" -> { + if (key != null) { + put(key, current.toString()) + key = null + } else if (current.isNotEmpty()) + if (parseId) id = current.toString() else put(current.toString(), null) + current.setLength(0) + parseId = false + } + else -> current.append(nextToken) + } + } + + constructor(options: String?) : this(options, true) + constructor(id: String, options: String?) : this(options, false) { + this.id = id + } + + /** + * Put but if value is null or default, the entry is deleted. + * + * @return Old value before put. + */ + fun putWithDefault(key: String, value: String?, default: String? = null) = + if (value == null || value == default) remove(key) else put(key, value) + + private fun append(result: StringBuilder, str: String) = (0 until str.length) + .map { str[it] } + .forEach { + when (it) { + '\\', '=', ';' -> { + result.append('\\') // intentionally no break + result.append(it) + } + else -> result.append(it) + } + } + + fun toString(trimId: Boolean): String { + val result = StringBuilder() + if (!trimId) if (id.isEmpty()) return "" else append(result, id) + for ((key, value) in entries) { + if (result.isNotEmpty()) result.append(';') + append(result, key) + if (value != null) { + result.append('=') + append(result, value) + } + } + return result.toString() + } + + override fun toString(): String = toString(true) + + override fun equals(other: Any?): Boolean { + if (this === other) return true + return javaClass == other?.javaClass && super.equals(other) && id == (other as PluginOptions).id + } + override fun hashCode(): Int = Objects.hash(super.hashCode(), id) +} diff --git a/client/client.pro b/client/client.pro index 6a8dd84f..644adba8 100644 --- a/client/client.pro +++ b/client/client.pro @@ -273,6 +273,7 @@ android { ANDROID_EXTRA_LIBS += $$PWD/android/lib/shadowsocks/$${abi}/libss-local.so ANDROID_EXTRA_LIBS += $$PWD/android/lib/shadowsocks/$${abi}/libtun2socks.so + ANDROID_EXTRA_LIBS += $$PWD/android/lib/shadowsocks/$${abi}/libredsocks.so } } @@ -370,5 +371,7 @@ ios { # %{sourceDir}/client/ios/xcode_patcher.rb %{buildDir}/client/AmneziaVPN.xcodeproj 2.0 2.0.0 ios 1 } +DISTFILES += + diff --git a/client/containers/containers_defs.cpp b/client/containers/containers_defs.cpp index 48d71d3f..63dd83fe 100644 --- a/client/containers/containers_defs.cpp +++ b/client/containers/containers_defs.cpp @@ -158,6 +158,7 @@ bool ContainerProps::isSupportedByCurrentPlatform(DockerContainer c) switch (c) { case DockerContainer::WireGuard: return true; case DockerContainer::OpenVpn: return true; + case DockerContainer::ShadowSocks: return true; default: return false; }