diff --git a/gately/Makefile b/gately/Makefile index e99cf176e..0f2f0751a 100644 --- a/gately/Makefile +++ b/gately/Makefile @@ -5,8 +5,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gately -PKG_VERSION:=0.5.7 -PKG_RELEASE:=10 +PKG_VERSION:=0.5.8 +PKG_RELEASE:=11 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/wangwanjie/gately/tar.gz/v$(PKG_VERSION)? diff --git a/luci-app-adguardhome/.upstream_meta b/luci-app-adguardhome/.upstream_meta index 77f70e460..5e3130940 100644 --- a/luci-app-adguardhome/.upstream_meta +++ b/luci-app-adguardhome/.upstream_meta @@ -1,2 +1,2 @@ -327d358bd28096a6702da8dd71b422792331f659 +4bfd1102236f7f737da4257ca7f6e56146fc80f6 e192c5983e50169ed984d48b094798869a0a780b diff --git a/luci-app-adguardhome/po/zh_Hans/adguardhome.po b/luci-app-adguardhome/po/zh_Hans/adguardhome.po index a00b550da..cd6c5c445 100644 --- a/luci-app-adguardhome/po/zh_Hans/adguardhome.po +++ b/luci-app-adguardhome/po/zh_Hans/adguardhome.po @@ -3,13 +3,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Language: zh_Hans\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: Hosted Weblate user 54392 " -"\n" +"Last-Translator: Aethersailor " +"\n" "Language-Team: Chinese (Simplified Han script) \n" "Plural-Forms: nplurals=1; plural=0;\n" -"PO-Revision-Date: 2026-08-31 06:44+0000\n" -"X-Generator: Weblate 2026.9.dev0\n" +"PO-Revision-Date: 2026-10-23 08:23+0000\n" +"X-Generator: Weblate 2026.11.dev0\n" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:244 msgid "" @@ -17,8 +17,8 @@ msgid "" "more frequently as usage approaches the limit to prevent Out-of-Memory (OOM) " "kills." msgstr "" -"Go 运行时的软性内存限制,允许垃圾收集器在内存占用接近限制时更频繁地运行防止内" -"存耗尽终止程序。" +"Go 运行时的软内存上限。内存占用接近上限时,垃圾回收器可更频繁地运行,以避免进" +"程因内存不足(OOM)被终止。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:113 #: applications/luci-app-adguardhome/root/usr/share/luci/menu.d/luci-app-adguardhome.json:3 @@ -38,7 +38,7 @@ msgstr "配置文件" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:147 msgid "" "Configuration file must be stored in its own directory, and not in '/etc'." -msgstr "配置文件必须存储在自己的目录中,不能在 '/etc' 中。" +msgstr "配置文件必须存放在专用目录中,不能直接放在 /etc 下。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:159 msgid "Directory where filters, logs, and statistics are stored." @@ -52,7 +52,7 @@ msgstr "文件系统访问" msgid "" "Files and directories that AdGuard Home should have read-only or read-write " "access to." -msgstr "AdGuard Home 应该有只读或读写权限的文件和目录。" +msgstr "允许 AdGuard Home 以只读或读写方式访问的文件和目录。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:129 msgid "General Settings" @@ -61,7 +61,7 @@ msgstr "通用设置" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:138 msgid "" "Go environment variables that tune garbage collector and memory management." -msgstr "调节垃圾收集器和内存管理的 Go 环境变量。" +msgstr "用于调节垃圾回收和内存管理的 Go 环境变量。" #: applications/luci-app-adguardhome/root/usr/share/rpcd/acl.d/luci-app-adguardhome.json:3 msgid "Grant permissions for the AdGuard Home LuCI app" @@ -69,7 +69,7 @@ msgstr "授予 AdGuard Home LuCI 应用的权限" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:181 msgid "Group the service runs under." -msgstr "服务运行在什么组下面。" +msgstr "运行此服务所使用的用户组。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:149 #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:161 @@ -79,7 +79,7 @@ msgstr "服务运行在什么组下面。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:232 #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:247 msgid "If empty, defaults to" -msgstr "如为空,默认为" +msgstr "留空时,默认为" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:139 msgid "Modify at your own risk." @@ -87,11 +87,11 @@ msgstr "修改风险自负。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:24 msgid "Not running" -msgstr "未在运行" +msgstr "未运行" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:148 msgid "Parent directory will be owned by the service user." -msgstr "主目录将被服务用户所拥有。" +msgstr "配置文件所在目录的所有者将设为服务用户。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:83 #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:99 @@ -100,7 +100,7 @@ msgstr "必须是绝对路径。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:86 msgid "Path must not end with a slash." -msgstr "路径不能用 / 结束。" +msgstr "路径不能以斜杠(/)结尾。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:207 msgid "Read-only access" @@ -120,7 +120,7 @@ msgstr "服务状态" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:180 msgid "Service group" -msgstr "服务组" +msgstr "服务用户组" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:170 msgid "Service user" @@ -137,12 +137,11 @@ msgid "" "Tunes the garbage collector's aggressiveness by setting the percentage of " "heap growth allowed before the next collection cycle triggers." msgstr "" -"通过设置下个垃圾收集周期触发前允许的堆的百分比增速来调节垃圾收集器的激进程" -"度。" +"通过设置触发下一轮垃圾回收前允许的堆增长百分比,调节垃圾回收的积极程度。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:171 msgid "User the service runs under." -msgstr "服务运行在什么用户下面。" +msgstr "运行此服务所使用的用户。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:191 msgid "Verbose logging" @@ -154,7 +153,7 @@ msgstr "版本" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:160 msgid "Will be owned by the service user." -msgstr "将被服务用户所拥有。" +msgstr "工作目录的所有者将设为服务用户。" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:158 msgid "Working directory" @@ -162,12 +161,12 @@ msgstr "工作目录" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:247 msgid "unset" -msgstr "取消设置" +msgstr "未设置" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:217 msgid "unset and 100" -msgstr "取消设置和 100" +msgstr "未设置(Go 默认值为 100)" #: applications/luci-app-adguardhome/htdocs/luci-static/resources/view/adguardhome/config.js:232 msgid "unset and matching the number of CPUs" -msgstr "取消设置并匹配 CPU 数目" +msgstr "未设置(默认值与 CPU 数量一致)" diff --git a/luci-app-thermal-guard/Makefile b/luci-app-thermal-guard/Makefile index 1d304247a..9534cb723 100644 --- a/luci-app-thermal-guard/Makefile +++ b/luci-app-thermal-guard/Makefile @@ -7,8 +7,8 @@ include $(TOPDIR)/rules.mk -PKG_VERSION:=2.0.0 -PKG_RELEASE:=1 +PKG_VERSION:=2.1.1.0 +PKG_RELEASE:=2 PKG_LICENSE:=GPL-2.0-only PKG_MAINTAINER:=SyntaxError NullPointer <287466119+SyntaxError-NullPointer@users.noreply.github.com> diff --git a/luci-app-thermal-guard/htdocs/luci-static/resources/view/status/include/11_thermal-guard.js b/luci-app-thermal-guard/htdocs/luci-static/resources/view/status/include/11_thermal-guard.js index a5818f86b..87ce1d71d 100644 --- a/luci-app-thermal-guard/htdocs/luci-static/resources/view/status/include/11_thermal-guard.js +++ b/luci-app-thermal-guard/htdocs/luci-static/resources/view/status/include/11_thermal-guard.js @@ -77,6 +77,11 @@ return baseclass.extend({ if (st.modem_src || st.modem_c) rows.push([ _('Modem'), temp(num(st.modem_c), num(st.modem_warn), num(st.modem_crit)) ]); + if (st.modem_model) + rows.push([ _('Modem model'), st.modem_profile + ? _('%s, profile %s').format(st.modem_model, st.modem_profile) + : _('%s, no profile').format(st.modem_model) ]); + extraSensors(st).forEach(function(s) { rows.push([ s[0], temp(s[1], null, null) ]); }); diff --git a/luci-app-thermal-guard/htdocs/luci-static/resources/view/thermal-guard/config.js b/luci-app-thermal-guard/htdocs/luci-static/resources/view/thermal-guard/config.js index 3fcf4b600..1a3d10f5c 100644 --- a/luci-app-thermal-guard/htdocs/luci-static/resources/view/thermal-guard/config.js +++ b/luci-app-thermal-guard/htdocs/luci-static/resources/view/thermal-guard/config.js @@ -34,8 +34,14 @@ function tripList(v) { return (v || '').split('/').filter(function(x) { return x !== ''; }); } +function num(v) { + var n = parseInt(v, 10); + return isNaN(n) ? null : n; +} + // The daemon's defaults, from tg_cfg_default_thresholds. An empty field means -// the daemon uses these, so the order is checked against them as well. +// the daemon uses these, so the order is checked against them as well. The +// modem pair is replaced by the detected modem's profile in render(). var THRESHOLD_DEFAULTS = { cpu_warn: 70, cpu_crit: 80, cpu_emergency: 90, modem_warn: 80, modem_crit: 88 }; @@ -94,8 +100,23 @@ return view.extend({ tripDt = tripList(st.trip_dt), tripLimit = parseInt(st.trip_limit, 10); + // Empty modem fields take the profile of the detected modem, so the + // order checks and the placeholders use its values, as the daemon does. + var profileWarn = num(st.modem_profile_warn), profileCrit = num(st.modem_profile_crit); + if (profileWarn !== null && profileCrit !== null) { + THRESHOLD_DEFAULTS.modem_warn = profileWarn; + THRESHOLD_DEFAULTS.modem_crit = profileCrit; + } + var modemHint = function(option) { + return st.modem_profile + ? _('Empty uses the profile of the detected modem %s (%s): %d °C.').format( + st.modem_model, st.modem_profile, THRESHOLD_DEFAULTS[option]) + : _('Empty uses %d °C. No profile applies: the modem model is unknown or not in the modem table.').format( + THRESHOLD_DEFAULTS[option]); + }; + m = new form.Map('thermal-guard', _('Thermal Guard'), - _('Monitors the temperature of the main processor and the modem. If the device gets too hot, it intervenes in up to three protection stages. Stages stay active until you clear them on the status page.')); + _('Monitors the temperature of the main processor and the modem. If the device gets too hot, it intervenes in up to three protection stages. Stages stay active until you clear them on the status page, unless automatic undo is switched on (Actions tab).')); s = m.section(form.NamedSection, 'main', 'thermal-guard'); s.addremove = false; @@ -114,8 +135,8 @@ return view.extend({ o.rmempty = false; o = s.taboption('general', form.Value, 'interval', _('Interval'), - _('Seconds between two temperature readings. Values below five seconds are treated as five.')); - o.datatype = 'and(uinteger,min(5))'; + _('Seconds between two temperature readings. From 5 to 300; values outside that range are set to the nearest limit.')); + o.datatype = 'and(uinteger,range(5,300))'; o.placeholder = '20'; o = s.taboption('general', form.Value, 'cpu_temp_path', _('Processor temperature source'), @@ -145,26 +166,28 @@ return view.extend({ return checkOrder(this.section, id, 'cpu_emergency', v, 'cpu_crit', null, _('Processor critical'), null); }; - o = s.taboption('thresholds', form.Value, 'modem_warn', _('Modem warning (stage 1 of 3)')); - o.placeholder = '80'; + o = s.taboption('thresholds', form.Value, 'modem_warn', _('Modem warning (stage 1 of 3)'), + modemHint('modem_warn')); + o.placeholder = String(THRESHOLD_DEFAULTS.modem_warn); o.validate = function(id, v) { return checkOrder(this.section, id, 'modem_warn', v, null, 'modem_crit', null, _('Modem critical')); }; - o = s.taboption('thresholds', form.Value, 'modem_crit', _('Modem critical (stage 2 of 3)')); - o.placeholder = '88'; + o = s.taboption('thresholds', form.Value, 'modem_crit', _('Modem critical (stage 2 of 3)'), + modemHint('modem_crit')); + o.placeholder = String(THRESHOLD_DEFAULTS.modem_crit); o.validate = function(id, v) { return checkOrder(this.section, id, 'modem_crit', v, 'modem_warn', null, _('Modem warning'), null); }; o = s.taboption('thresholds', form.Value, 'hold_minutes', _('Hold time'), _('Minutes a stage has to last before the next one starts on time alone: stage 2 of 3 if the temperature has not dropped, stage 3 of 3 if it is still rising.')); - o.datatype = 'uinteger'; + o.datatype = 'and(uinteger,range(1,60))'; o.placeholder = '3'; o = s.taboption('thresholds', form.Value, 'hysteresis', _('Hysteresis'), _('How many degrees the temperature has to fall below the warning level before the device counts as cooled down.')); - o.datatype = 'uinteger'; + o.datatype = 'and(uinteger,range(0,40))'; o.placeholder = '10'; // ---- fan ---- @@ -238,7 +261,7 @@ return view.extend({ o = s.taboption('fan', form.Value, 'trip_boost_offset', _('Modem allowance'), _('Degrees the modem may run above the processor before the switching temperatures are lowered.')); - o.datatype = 'range(0,40)'; + o.datatype = 'and(uinteger,range(0,40))'; o.placeholder = '15'; o.depends('trip_boost', 'modem'); @@ -370,6 +393,30 @@ return view.extend({ _('Runs /etc/thermal-guard/hooks/stage1. Place the file over SSH and make it executable.')); o.depends('stage1_action', 'command'); + o = s.taboption('actions', form.Flag, 'auto_recover', _('Undo stage 2 of 3 automatically'), + _('Clears stage 2 of 3 on its own once the modem, which alone caused it, has read cool for the set time: at least the hysteresis below its warning level. Stage 3 of 3, stages in which the processor was warm and a custom script always wait for you to clear them.')); + o.default = '0'; + // Hidden while stage 2 of 3 runs a script; switching the action there + // and back must not delete the recovery settings. + o.retain = true; + [ 'modem_radio_off', 'wifi_off', 'interface_down', 'none' ].forEach(function(a) { + o.depends('stage1_action', a); + }); + + o = s.taboption('actions', form.Value, 'recover_minutes', _('Cool time before undoing'), + _('Minutes the modem has to read cool without a gap. A missing reading starts the count again.')); + o.datatype = 'and(uinteger,range(5,120))'; + o.placeholder = '10'; + o.retain = true; + o.depends('auto_recover', '1'); + + o = s.taboption('actions', form.Value, 'recover_max', _('Automatic undos per day'), + _('At most this many automatic undos in 24 hours. After that the stage stays until you clear it.')); + o.datatype = 'and(uinteger,range(1,10))'; + o.placeholder = '3'; + o.retain = true; + o.depends('auto_recover', '1'); + o = s.taboption('actions', form.ListValue, 'stage2_action', _('Action at stage 3 of 3')); o.value('wifi_off', _('Switch Wi-Fi off')); o.value('modem_radio_off', _('Switch the modem radio off')); diff --git a/luci-app-thermal-guard/htdocs/luci-static/resources/view/thermal-guard/monitor.js b/luci-app-thermal-guard/htdocs/luci-static/resources/view/thermal-guard/monitor.js index be98eb476..bae344519 100644 --- a/luci-app-thermal-guard/htdocs/luci-static/resources/view/thermal-guard/monitor.js +++ b/luci-app-thermal-guard/htdocs/luci-static/resources/view/thermal-guard/monitor.js @@ -7,6 +7,10 @@ 'require ui'; var STATUS_FILE = '/var/run/thermal-guard.status'; +// Seconds the page waits for the result of a clear: the daemon's RESET_WAIT +// for a running cycle, its RESET_BUDGET for the undo, and 60 s for the flush, +// the fence and admission, the same margin a joining "thermal-guard reset" waits. +var CLEAR_GIVE_UP = 240 + 200 + 60; function parseStatus(text) { var st = {}; @@ -88,12 +92,16 @@ function actionLabel(action) { } } +// fan_control is the fan the daemon drives now, a recorded one after the +// settings changed included. Older status files only carry fan_mode. function stageText(stage, st) { switch (stage) { - case 0: return st.fan_mode === 'none' + case 0: return (st.fan_control || st.fan_mode) === 'none' ? _('Stage 1 of 3 active: warning, fan left to its own controller') : _('Stage 1 of 3 active: fan at full speed'); - case 1: return _('Stage 2 of 3 active: %s').format(actionLabel(st.stage1_action)); + case 1: return num(st.t1) + ? _('Stage 2 of 3 active since %s: %s').format(fmtClock(st.t1), actionLabel(st.stage1_action)) + : _('Stage 2 of 3 active: %s').format(actionLabel(st.stage1_action)); case 2: return _('Stage 3 of 3 active: %s').format(actionLabel(st.stage2_action)); default: return _('No intervention, temperatures within range'); } @@ -126,6 +134,90 @@ function fmtAge(ts) { return _('%d min ago').format(Math.round(age / 60)); } +// Router timestamp as a local wall clock time, for "since" in the banner. +function fmtClock(ts) { + var n = parseInt(ts, 10); + return n ? new Date(n * 1000).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }) : '-'; +} + +// What happens next with stage 2 of 3. The daemon decides it (recover_state) +// from its own state and clock, so the page only words it, and a browser with +// a wrong clock cannot skew the time (recover_at against now). +function recoveryText(st) { + var at = num(st.recover_at), now = num(st.now); + switch (st.recover_state) { + case 'cpu': + return _('The processor was warm during this incident, so it is not undone automatically. Clear it once the cause is fixed.'); + case 'nomodem': + return _('The modem had no reading when this stage began, so it is not undone automatically.'); + case 'nocause': + return _('No recorded cause, so it is not undone automatically. Clear it once the cause is fixed.'); + case 'fan': + return _('The fan taken over has no usable record, so it is not undone automatically. Check the fan, clear the stage, then run thermal-guard fan-forget on the router.'); + case 'action': + return st.stage1_action === 'command' + ? _('A custom script ran, so it is not undone automatically.') + : _('The action of stage 2 of 3 changed or cannot be undone, so it is not undone automatically.'); + case 'capped': + return _('Automatic undo limit reached (%d in 24 hours), so it stays until you clear it. Clear it once the cause is fixed.').format(num(st.recover_n) || 0); + case 'planned': + if (at !== null && now !== null) + return _('Undone automatically in about %d min if the modem stays cool.').format(Math.max(1, Math.ceil((at - now) / 60))); + return _('Undone automatically once the modem has read cool for %d min.').format(num(st.recover_minutes) || 10); + case 'cooling': + return _('Undone automatically once the modem has read cool for %d min.').format(num(st.recover_minutes) || 10); + default: + return null; + } +} + +// Whether stage 2 of 3 is going to clear itself, which the generic "stays +// until you clear it" line must not contradict. +function clearsItself(st) { + return st.recover_state === 'planned' || st.recover_state === 'cooling'; +} + +// A reset holds the lock, so the daemon writes no status file while it runs. A +// reset killed from outside leaves "running" for good, so the mark counts only +// for as long as the page would wait for a clear. +function clearRunning(st) { + var ts = num(st.reset_ts); + return st.reset_state === 'running' && ts !== null && + Math.floor(Date.now() / 1000) - ts <= CLEAR_GIVE_UP; +} + +// What the status says about the request the page waits for: null while it +// says nothing, else its state and its own failure list. Only the boot and the +// request id identify it, never a time, so a clock step cannot fake a result. +function clearOutcome(wait, st) { + if (!wait.boot || !wait.id || !st) + return null; + // A new boot has no request record until its first clear, so the daemon's + // own boot id tells. Older daemons do not write it. + if (st.boot_id && st.boot_id !== wait.boot) + return { state: 'restarted' }; + // No record yet: a snapshot from before the request. + if (!st.reset_boot) + return null; + // Generations and pids start again with every boot, so a record of another + // boot tells nothing about this request. + if (st.reset_boot !== wait.boot) + return { state: 'restarted' }; + // reset_failed is the warning a later stage empties; the request keeps its + // own list. Older daemons publish only the warning. + if (st.reset_id === wait.id) + return { state: st.reset_state, failed: ('reset_req_failed' in st + ? st.reset_req_failed : st.reset_failed) || '' }; + if (st.reset_prev_id === wait.id) + return { state: st.reset_prev_state, failed: st.reset_prev_failed || '' }; + // The record keeps two requests. Both later than this one means its result + // was pushed out and will not come back. + var gen = num(st.reset_gen), prev = num(st.reset_prev_gen); + if (wait.gen !== null && gen !== null && prev !== null && gen > wait.gen && prev > wait.gen) + return { state: 'evicted' }; + return null; +} + return view.extend({ load: function() { return fs.read(STATUS_FILE).catch(function() { return null; }); @@ -168,13 +260,14 @@ return view.extend({ }, update: function(body, text) { - if (text === null) { + var st = (text === null) ? null : parseStatus(text); + this.checkClear(st); + if (st === null) { dom.content(body, E('div', { 'class': 'alert-message warning' }, _('No data yet. Check whether the Thermal Guard service is running.'))); return; } - var st = parseStatus(text); var cpu = num(st.cpu_c), modem = num(st.modem_c), stage = num(st.stage); var cpuWarn = num(st.cpu_warn), cpuCrit = num(st.cpu_crit); var modemWarn = num(st.modem_warn), modemCrit = num(st.modem_crit); @@ -191,6 +284,11 @@ return view.extend({ modem === null ? _('no reading') : '%d °C'.format(modem), gauge(modem, modemWarn, modemCrit, (num(st.modem_crit) || 90) + 10))); + if (st.modem_model) + rows.push(row(_('Modem model'), st.modem_profile + ? _('%s, profile %s').format(st.modem_model, st.modem_profile) + : _('%s, no profile').format(st.modem_model), null)); + extraSensors(st).forEach(function(s) { rows.push(row(s[0], '%d °C'.format(s[1]), gauge(s[1], null, null, 100))); }); @@ -212,7 +310,9 @@ return view.extend({ (fanPercent !== null) ? gauge(fanPercent, null, null, 100) : ((fanState !== null && fanMax) ? gauge(fanState, null, null, fanMax) : null))); - if (st.fan_foreign === '1') + // A release that did not read back leaves the daemon's own values in + // place until the next clear; that is no other service. + if (st.fan_foreign === '1' && st.fan_restore_pending !== '1') rows.push(row(_('Fan control'), _('Another service is controlling this fan'), null)); } @@ -242,7 +342,9 @@ return view.extend({ // A stage that is still applied while nothing is watching is the one // thing an operator has to be told about, so it comes before the rest. - if (state !== 'running' && !noSensor) + if (state === 'stopped' && (this.clearWait || clearRunning(st))) + banner.push(E('div', {}, _('Clearing is running, readings resume afterwards.'))); + else if (state !== 'running' && !noSensor) banner.push(E('div', {}, state === 'stopped' ? (active ? _('The service is not running. Protection stages stay applied and the fan is not handed back.') @@ -255,20 +357,40 @@ return view.extend({ banner.push(E('div', {}, _('The firmware brings new fan switching temperatures (%s °C). Your own values still apply; review them under System, Thermal Guard, Fan.').format((st.trip_dt || '').replace(/\//g, ', ')))); - if (active) - banner.push(E('div', {}, [ - E('div', {}, _('Protection stages stay active until you clear them. Clear them once the cause is fixed, for example a replaced fan.')), - E('button', { - 'class': 'btn cbi-button cbi-button-reset', - 'style': 'margin-top:.5em', - 'click': ui.createHandlerFn(this, 'handleClear') - }, _('Clear protection stages')) - ])); + var recovery = recoveryText(st); + if (recovery) + banner.push(E('div', {}, recovery)); + + // The stage is gone but something it did is still in force. + var resetFailed = st.reset_failed || ''; + // A clear without a stage tries the fan release again and nothing else, + // so only a failed fan brings the button back. + var failedItems = resetFailed.split(','); + var fanRetry = failedItems.indexOf('fan') >= 0; + var notFan = failedItems.filter(function(t) { return t !== '' && t !== 'fan'; }).length > 0; + if (resetFailed) + banner.push(E('div', {}, + _('Still in force after a clear: %s. Check the device.').format(resetFailed))); + if (notFan) + banner.push(E('div', {}, + _('Only the fan release can be tried again with Clear. Anything else stays listed here until the next protection stage or a reboot.'))); + + if (active || fanRetry) { + var clear = []; + if (active && !clearsItself(st)) + clear.push(E('div', {}, _('Protection stages stay active until you clear them. Clear them once the cause is fixed, for example a replaced fan.'))); + clear.push(E('button', { + 'class': 'btn cbi-button cbi-button-reset', + 'style': 'margin-top:.5em', + 'click': ui.createHandlerFn(this, 'handleClear') + }, _('Clear protection stages'))); + banner.push(E('div', {}, clear)); + } dom.content(body, [ E('div', { 'class': 'tg-banner ' + ((state !== 'running' || noSensor) ? 'tg-warn-banner' - : (active ? 'tg-active' : 'tg-idle')) + : (active ? 'tg-active' : (resetFailed ? 'tg-warn-banner' : 'tg-idle'))) }, banner), E('div', {}, rows), E('div', { 'class': 'tg-meta' }, [ @@ -280,18 +402,72 @@ return view.extend({ ]); }, - // Runs "thermal-guard reset": hands the fan back, radio on, stage cleared. + // Starts the reset detached: rpcd would kill one that waits for a cycle or + // undoes slowly. The result arrives with the status file, see checkClear. handleClear: function() { - return fs.exec('/usr/sbin/thermal-guard', [ 'reset' ]).then(function(res) { - if (res.code !== 0) + return fs.exec('/usr/sbin/thermal-guard', [ 'reset-start' ]).then(L.bind(function(res) { + if (res.code !== 0) { ui.addNotification(null, E('p', {}, _('Clearing failed: %s').format(res.stderr || res.stdout || res.code)), 'error'); - else - ui.addNotification(null, E('p', {}, _('Protection stages cleared.')), 'info'); - }).catch(function(err) { + return; + } + // A start that joined a running clear prints that request, so the + // wait is the same either way. + var req = parseStatus(res.stdout); + this.clearWait = { + boot: req.reset_boot || '', + id: req.reset_id || '', + gen: num(req.reset_gen), + until: Date.now() + CLEAR_GIVE_UP * 1000 + }; + ui.addNotification(null, E('p', {}, _('Clearing started, the result follows in a moment.')), 'info'); + }, this)).catch(function(err) { ui.addNotification(null, E('p', {}, _('Clearing failed: %s').format(err)), 'error'); }); }, + // Called on every poll while a clear runs. Only the request reset-start + // named ends the wait, as the current or the previous one in the record; + // whatever else the status shows, nothing reads as success. + checkClear: function(st) { + var wait = this.clearWait; + if (!wait) + return; + var res = clearOutcome(wait, st) || {}, failed = res.failed; + var msg, type = 'warning'; + switch (res.state) { + case 'done': + type = 'info'; + // The list also names what an earlier clear left and this one did + // not try again: a clear with only those is done, not failed. + msg = failed + ? _('Protection stages cleared. Still in force from an earlier clear: %s').format(failed) + : _('Protection stages cleared.'); + break; + case 'failed': + msg = _('Clearing could not undo everything. Still in force: %s').format(failed || '-'); + break; + case 'busy': + msg = _('The daemon is busy with a stage action, try again in a minute.'); + break; + case 'aborted': + msg = _('Clearing was aborted.'); + break; + case 'restarted': + msg = _('The router restarted while clearing, the result is unknown.'); + break; + case 'evicted': + msg = _('The result of this clear is no longer available. See the status and the log.'); + break; + default: + // Starting, running or not in the status yet. + if (Date.now() <= wait.until) + return; + msg = _('No result for this clear arrived in time, the outcome is unknown.'); + } + this.clearWait = null; + ui.addNotification(null, E('p', {}, msg), type); + }, + handleSave: null, handleSaveApply: null, handleReset: null diff --git a/luci-app-thermal-guard/po/de/thermal-guard.po b/luci-app-thermal-guard/po/de/thermal-guard.po index 6f7da04dc..69c7d79b5 100644 --- a/luci-app-thermal-guard/po/de/thermal-guard.po +++ b/luci-app-thermal-guard/po/de/thermal-guard.po @@ -28,8 +28,8 @@ msgstr "Pfad muss mit %s beginnen" msgid "Thermal Guard" msgstr "Thermal Guard" -msgid "Monitors the temperature of the main processor and the modem. If the device gets too hot, it intervenes in up to three protection stages. Stages stay active until you clear them on the status page." -msgstr "Überwacht die Temperatur des Hauptprozessors und des Modems. Wird das Gerät zu heiß, greift der Dienst in bis zu drei Schutzstufen ein. Die Stufen bleiben aktiv, bis Sie sie auf der Statusseite zurücksetzen." +msgid "Monitors the temperature of the main processor and the modem. If the device gets too hot, it intervenes in up to three protection stages. Stages stay active until you clear them on the status page, unless automatic undo is switched on (Actions tab)." +msgstr "Überwacht die Temperatur des Hauptprozessors und des Modems. Wird das Gerät zu heiß, greift der Dienst in bis zu drei Schutzstufen ein. Die Stufen bleiben aktiv, bis Sie sie auf der Statusseite zurücksetzen, außer die automatische Rücknahme ist eingeschaltet (Reiter Aktionen)." msgid "General" msgstr "Allgemein" @@ -61,8 +61,8 @@ msgstr "Durch Deaktivieren werden die Temperaturmessungen angehalten. Bereits ak msgid "Interval" msgstr "Intervall" -msgid "Seconds between two temperature readings. Values below five seconds are treated as five." -msgstr "Sekunden zwischen zwei Temperaturmessungen. Werte unter fünf Sekunden werden als fünf behandelt." +msgid "Seconds between two temperature readings. From 5 to 300; values outside that range are set to the nearest limit." +msgstr "Sekunden zwischen zwei Temperaturmessungen. Von 5 bis 300; Werte außerhalb dieses Bereichs werden auf die nächste Grenze gesetzt." msgid "Processor temperature source" msgstr "Quelle der Prozessortemperatur" @@ -397,9 +397,36 @@ msgstr "Version %s" msgid "Clearing failed: %s" msgstr "Zurücksetzen fehlgeschlagen: %s" +msgid "Clearing started, the result follows in a moment." +msgstr "Zurücksetzen gestartet, das Ergebnis folgt gleich." + msgid "Protection stages cleared." msgstr "Schutzstufen zurückgesetzt." +msgid "Protection stages cleared. Still in force from an earlier clear: %s" +msgstr "Schutzstufen zurückgesetzt. Von einem früheren Zurücksetzen noch wirksam: %s" + +msgid "Clearing could not undo everything. Still in force: %s" +msgstr "Zurücksetzen konnte nicht alles rückgängig machen. Noch wirksam: %s" + +msgid "The daemon is busy with a stage action, try again in a minute." +msgstr "Der Dienst ist mit einer Schutzmaßnahme beschäftigt, bitte in einer Minute erneut versuchen." + +msgid "Clearing was aborted." +msgstr "Das Zurücksetzen wurde abgebrochen." + +msgid "The router restarted while clearing, the result is unknown." +msgstr "Der Router hat während des Zurücksetzens neu gestartet, das Ergebnis ist unbekannt." + +msgid "The result of this clear is no longer available. See the status and the log." +msgstr "Das Ergebnis dieses Zurücksetzens ist nicht mehr verfügbar. Siehe Status und Log." + +msgid "No result for this clear arrived in time, the outcome is unknown." +msgstr "Für dieses Zurücksetzen kam rechtzeitig kein Ergebnis, der Ausgang ist unbekannt." + +msgid "Clearing is running, readings resume afterwards." +msgstr "Das Zurücksetzen läuft, die Messwerte folgen danach." + msgid "Temperatures" msgstr "Temperaturen" @@ -507,3 +534,72 @@ msgstr "Rohwert je Lüfterstufe aus dem Device Tree, mit dem Tastverhältnis des msgid "step %d: %d (%d %%)" msgstr "Stufe %d: %d (%d %%)" + +msgid "Empty uses the profile of the detected modem %s (%s): %d °C." +msgstr "Leer übernimmt das Profil des erkannten Modems %s (%s): %d °C." + +msgid "Empty uses %d °C. No profile applies: the modem model is unknown or not in the modem table." +msgstr "Leer bedeutet %d °C. Es gilt kein Profil: Das Modemmodell ist unbekannt oder steht nicht in der Modemtabelle." + +msgid "Undo stage 2 of 3 automatically" +msgstr "Stufe 2 von 3 automatisch zurücknehmen" + +msgid "Clears stage 2 of 3 on its own once the modem, which alone caused it, has read cool for the set time: at least the hysteresis below its warning level. Stage 3 of 3, stages in which the processor was warm and a custom script always wait for you to clear them." +msgstr "Nimmt Stufe 2 von 3 selbst zurück, sobald das Modem, das sie allein ausgelöst hat, die eingestellte Zeit lang kühl gemessen hat: mindestens um die Hysterese unter seiner Warnschwelle. Stufe 3 von 3, Stufen, in denen der Prozessor warm war, und ein eigenes Skript warten immer darauf, dass Sie sie zurücksetzen." + +msgid "Cool time before undoing" +msgstr "Abkühlzeit vor der Rücknahme" + +msgid "Minutes the modem has to read cool without a gap. A missing reading starts the count again." +msgstr "Minuten, die das Modem ohne Unterbrechung kühl messen muss. Ein fehlender Messwert beginnt die Zählung neu." + +msgid "Automatic undos per day" +msgstr "Automatische Rücknahmen pro Tag" + +msgid "At most this many automatic undos in 24 hours. After that the stage stays until you clear it." +msgstr "Höchstens so viele automatische Rücknahmen in 24 Stunden. Danach bleibt die Stufe, bis Sie sie zurücksetzen." + +msgid "Stage 2 of 3 active since %s: %s" +msgstr "Stufe 2 von 3 aktiv seit %s: %s" + +msgid "The processor was warm during this incident, so it is not undone automatically. Clear it once the cause is fixed." +msgstr "Der Prozessor war während dieses Vorfalls warm, daher keine automatische Rücknahme. Setzen Sie sie zurück, sobald die Ursache behoben ist." + +msgid "The modem had no reading when this stage began, so it is not undone automatically." +msgstr "Das Modem hatte beim Beginn dieser Stufe keinen Messwert, daher keine automatische Rücknahme." + +msgid "A custom script ran, so it is not undone automatically." +msgstr "Ein eigenes Skript wurde ausgeführt, daher keine automatische Rücknahme." + +msgid "No recorded cause, so it is not undone automatically. Clear it once the cause is fixed." +msgstr "Keine gespeicherte Ursache, daher keine automatische Rücknahme. Setzen Sie sie zurück, sobald die Ursache behoben ist." + +msgid "The fan taken over has no usable record, so it is not undone automatically. Check the fan, clear the stage, then run thermal-guard fan-forget on the router." +msgstr "Für den übernommenen Lüfter gibt es keinen verwertbaren Eintrag, daher keine automatische Rücknahme. Prüfen Sie den Lüfter, setzen Sie die Stufe zurück und führen Sie dann auf dem Router thermal-guard fan-forget aus." + +msgid "The action of stage 2 of 3 changed or cannot be undone, so it is not undone automatically." +msgstr "Die Aktion von Stufe 2 von 3 wurde geändert oder lässt sich nicht zurücknehmen, daher keine automatische Rücknahme." + +msgid "Automatic undo limit reached (%d in 24 hours), so it stays until you clear it. Clear it once the cause is fixed." +msgstr "Grenze für automatische Rücknahmen erreicht (%d in 24 Stunden), daher bleibt sie aktiv, bis Sie sie zurücksetzen. Setzen Sie sie zurück, sobald die Ursache behoben ist." + +msgid "Undone automatically in about %d min if the modem stays cool." +msgstr "Automatische Rücknahme in etwa %d min, wenn das Modem kühl bleibt." + +msgid "Undone automatically once the modem has read cool for %d min." +msgstr "Automatische Rücknahme, sobald das Modem %d min lang kühl gemessen hat." + +msgid "Still in force after a clear: %s. Check the device." +msgstr "Nach dem Zurücksetzen weiterhin in Kraft: %s. Bitte das Gerät prüfen." + +msgid "Only the fan release can be tried again with Clear. Anything else stays listed here until the next protection stage or a reboot." +msgstr "Erneut versuchen lässt sich beim Zurücksetzen nur die Rückgabe des Lüfters. Alles andere bleibt hier aufgeführt, bis die nächste Schutzstufe beginnt oder das Gerät neu startet." + +msgid "Modem model" +msgstr "Modemmodell" + +msgid "%s, profile %s" +msgstr "%s, Profil %s" + +msgid "%s, no profile" +msgstr "%s, kein Profil" diff --git a/luci-app-thermal-guard/po/templates/thermal-guard.pot b/luci-app-thermal-guard/po/templates/thermal-guard.pot index 3edd45ede..9621822c9 100644 --- a/luci-app-thermal-guard/po/templates/thermal-guard.pot +++ b/luci-app-thermal-guard/po/templates/thermal-guard.pot @@ -23,7 +23,7 @@ msgstr "" msgid "Thermal Guard" msgstr "" -msgid "Monitors the temperature of the main processor and the modem. If the device gets too hot, it intervenes in up to three protection stages. Stages stay active until you clear them on the status page." +msgid "Monitors the temperature of the main processor and the modem. If the device gets too hot, it intervenes in up to three protection stages. Stages stay active until you clear them on the status page, unless automatic undo is switched on (Actions tab)." msgstr "" msgid "General" @@ -56,7 +56,7 @@ msgstr "" msgid "Interval" msgstr "" -msgid "Seconds between two temperature readings. Values below five seconds are treated as five." +msgid "Seconds between two temperature readings. From 5 to 300; values outside that range are set to the nearest limit." msgstr "" msgid "Processor temperature source" @@ -392,9 +392,36 @@ msgstr "" msgid "Clearing failed: %s" msgstr "" +msgid "Clearing started, the result follows in a moment." +msgstr "" + msgid "Protection stages cleared." msgstr "" +msgid "Protection stages cleared. Still in force from an earlier clear: %s" +msgstr "" + +msgid "Clearing could not undo everything. Still in force: %s" +msgstr "" + +msgid "The daemon is busy with a stage action, try again in a minute." +msgstr "" + +msgid "Clearing was aborted." +msgstr "" + +msgid "The router restarted while clearing, the result is unknown." +msgstr "" + +msgid "The result of this clear is no longer available. See the status and the log." +msgstr "" + +msgid "No result for this clear arrived in time, the outcome is unknown." +msgstr "" + +msgid "Clearing is running, readings resume afterwards." +msgstr "" + msgid "Temperatures" msgstr "" @@ -502,3 +529,72 @@ msgstr "" msgid "step %d: %d (%d %%)" msgstr "" + +msgid "Empty uses the profile of the detected modem %s (%s): %d °C." +msgstr "" + +msgid "Empty uses %d °C. No profile applies: the modem model is unknown or not in the modem table." +msgstr "" + +msgid "Undo stage 2 of 3 automatically" +msgstr "" + +msgid "Clears stage 2 of 3 on its own once the modem, which alone caused it, has read cool for the set time: at least the hysteresis below its warning level. Stage 3 of 3, stages in which the processor was warm and a custom script always wait for you to clear them." +msgstr "" + +msgid "Cool time before undoing" +msgstr "" + +msgid "Minutes the modem has to read cool without a gap. A missing reading starts the count again." +msgstr "" + +msgid "Automatic undos per day" +msgstr "" + +msgid "At most this many automatic undos in 24 hours. After that the stage stays until you clear it." +msgstr "" + +msgid "Stage 2 of 3 active since %s: %s" +msgstr "" + +msgid "The processor was warm during this incident, so it is not undone automatically. Clear it once the cause is fixed." +msgstr "" + +msgid "The modem had no reading when this stage began, so it is not undone automatically." +msgstr "" + +msgid "A custom script ran, so it is not undone automatically." +msgstr "" + +msgid "No recorded cause, so it is not undone automatically. Clear it once the cause is fixed." +msgstr "" + +msgid "The fan taken over has no usable record, so it is not undone automatically. Check the fan, clear the stage, then run thermal-guard fan-forget on the router." +msgstr "" + +msgid "The action of stage 2 of 3 changed or cannot be undone, so it is not undone automatically." +msgstr "" + +msgid "Automatic undo limit reached (%d in 24 hours), so it stays until you clear it. Clear it once the cause is fixed." +msgstr "" + +msgid "Undone automatically in about %d min if the modem stays cool." +msgstr "" + +msgid "Undone automatically once the modem has read cool for %d min." +msgstr "" + +msgid "Still in force after a clear: %s. Check the device." +msgstr "" + +msgid "Only the fan release can be tried again with Clear. Anything else stays listed here until the next protection stage or a reboot." +msgstr "" + +msgid "Modem model" +msgstr "" + +msgid "%s, profile %s" +msgstr "" + +msgid "%s, no profile" +msgstr "" diff --git a/luci-app-thermal-guard/root/usr/share/rpcd/acl.d/luci-app-thermal-guard.json b/luci-app-thermal-guard/root/usr/share/rpcd/acl.d/luci-app-thermal-guard.json index 6e3af4b7e..4cf04265f 100644 --- a/luci-app-thermal-guard/root/usr/share/rpcd/acl.d/luci-app-thermal-guard.json +++ b/luci-app-thermal-guard/root/usr/share/rpcd/acl.d/luci-app-thermal-guard.json @@ -14,6 +14,7 @@ "write": { "file": { "/usr/sbin/thermal-guard reset": [ "exec" ], + "/usr/sbin/thermal-guard reset-start": [ "exec" ], "/usr/sbin/thermal-guard trips-keep": [ "exec" ] }, "ubus": { diff --git a/minigate/Makefile b/minigate/Makefile index 060e3c08e..9b5ab4cb9 100644 --- a/minigate/Makefile +++ b/minigate/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=minigate PKG_VERSION:=2026.10.17 -PKG_RELEASE:=4 +PKG_RELEASE:=5 PKG_LICENSE:=MIT PKG_MAINTAINER:=MiniGate @@ -51,6 +51,7 @@ define Package/$(PKG_NAME)/install $(INSTALL_BIN) ./root/usr/lib/minigate/update.sh $(1)/usr/lib/minigate/ $(INSTALL_BIN) ./root/usr/lib/minigate/uninstall.sh $(1)/usr/lib/minigate/ $(INSTALL_BIN) ./root/usr/lib/minigate/after_commit.sh $(1)/usr/lib/minigate/ + $(CP) ./root/usr/lib/minigate/geo $(1)/usr/lib/minigate/ # Config $(INSTALL_DIR) $(1)/etc/config diff --git a/minigate/README.md b/minigate/README.md index 9305d349e..ae095abe6 100644 --- a/minigate/README.md +++ b/minigate/README.md @@ -59,6 +59,7 @@ minigate 面向需要自托管轻量网关能力的 OpenWrt / ImmortalWrt 用户 - **直接 IP 访问拒绝**:只允许域名访问,扫描器直接断开 - **未知 Host 拒绝**:同一监听端口下,未配置的域名/前缀不会落到第一个反代站点 - **局域网直连解析**(可选):内网设备把代理域名直接解析到本机 LAN 地址,公网 IP 变化、上游 DNS 缓存过期或主路由不支持回流时,内网访问不受影响,流量也不进入代理 +- **公网访问范围**(可选):选择允许访问的省级地区,IPv4/IPv6 在首次转发前检查,未命中白名单直接断开;局域网私有地址继续可用 ### 🛡 登录防护 (Login Guard) - 监控 **SSH(dropbear)** 和 **LuCI 网页** 登录失败 @@ -324,6 +325,24 @@ opkg remove minigate 2>/dev/null || apk del minigate 2>/dev/null - 内网访问使用与公网相同的端口,因此要求公网端口映射没有改端口号(例如外网 443 映射到内网 2000 时不适用) - 关闭开关或停止 minigate 时会移除该文件;也可以手动执行 `/usr/lib/minigate/proxy.sh lan-dns` 重新同步 +### 设置公网访问范围 +在 **反向代理 → 公网访问范围** 中启用「限制公网访问地区」,再添加允许的省级地区(支持多个)。例如仅保留「四川省」,保存应用后,只允许地址库判定为四川的公网 IP 访问。默认关闭,升级不会自动收紧现有访问范围。 + +- 所有普通域名、子域名、HTTP 跳转及 WebSocket 均在转发前检查;其他地区、境外及归属地未知来源返回 Nginx `444`(直接断开,无响应正文) +- IPv4、IPv6 使用同一策略;RFC1918 私有 IPv4、回环、IPv6 ULA 和链路本地地址继续放行;LAN 接口已分配的全球 IPv6 子网也自动豁免。使用「局域网直连解析」可通过 LAN IPv4 访问 +- 不修改防火墙,不限制 SSH、RustDesk 等其他服务;启用此功能时不再运行旧版地区日志扫描封禁逻辑,已有登录防护独立生效 +- 使用实际连接来源(同端口分流时为本机 stream 提供的 PROXY protocol),不信任访客提交的 `X-Forwarded-For` / `X-Real-IP`;若前面还有 CDN 或隐藏来源的代理,看到的是该代理的出口 IP +- 数据来自 [ip2region](https://github.com/lionsoul2014/ip2region),随安装包附带 34 个省级地区的离线 CIDR,不需要在线归属地接口或额外 Nginx 模块。版本、源文件 SHA-256 和网段数见 `root/usr/lib/minigate/geo/metadata.json`,原许可证随包保留 +- 地址归属可能误判或随运营商调整变化;外出、漫游或使用外省代理出口时可能被拦截。数据缺失或配置为空时仍拒绝公网,不自动退回全部放行。可从局域网关闭开关恢复访问 + +维护数据时,从 `scripts/build-geo-data.py` 中的固定 `REVISION` 下载对应 `data/ipv4_source.txt`、`data/ipv6_source.txt`,然后运行: + +```bash +python3 scripts/build-geo-data.py /path/to/ip2region/data +``` + +脚本核验源文件 SHA-256 后生成省级 CIDR。更新快照时需同时审查来源提交、更新固定摘要和许可证,并随项目新版本发布;运行时不自动下载或替换白名单。 + ### Cloudflare API Token 创建方法 1. 登录 [Cloudflare Dashboard](https://dash.cloudflare.com/) 2. 头像 → **My Profile** → **API Tokens** → **Create Token** diff --git a/minigate/install.sh b/minigate/install.sh index a4a408914..892982ee1 100644 --- a/minigate/install.sh +++ b/minigate/install.sh @@ -72,6 +72,7 @@ fi mkdir -p /usr/lib/minigate mkdir -p /etc/minigate/acme /etc/minigate/certs /etc/minigate/nginx/sites /etc/minigate/nginx/streams /etc/minigate/login-guard cp "$D"/root/usr/lib/minigate/*.sh /usr/lib/minigate/; chmod +x /usr/lib/minigate/*.sh +cp -R "$D"/root/usr/lib/minigate/geo /usr/lib/minigate/ cp "$D"/root/etc/init.d/minigate /etc/init.d/; chmod +x /etc/init.d/minigate # 配置:保留旧的,但确保有 login_guard 区段 diff --git a/minigate/luasrc/model/cbi/minigate/proxy.lua b/minigate/luasrc/model/cbi/minigate/proxy.lua index 4f5dc1a3e..fc47baa9b 100644 --- a/minigate/luasrc/model/cbi/minigate/proxy.lua +++ b/minigate/luasrc/model/cbi/minigate/proxy.lua @@ -52,6 +52,44 @@ o.datatype = "ip4addr" o.placeholder = lan_ip_auto and ("自动(" .. lan_ip_auto .. ")") or "自动" o:depends("lan_dns", "1") +s = m:section(NamedSection, "global", "global", "公网访问范围", + "启用后,仅允许所选地区的公网 IP 访问本插件的所有反代站点(含 HTTP 跳转和 WebSocket);其他地区及归属地未知的 IP 直接断开。" .. + "局域网私有地址和回环地址继续可用,不影响 SSH、RustDesk 等其他服务。IPv4/IPv6 均检查,按实际连接来源判断。" .. + "使用随版本附带的离线地址库,归属地可能存在误差;外出或使用外省代理出口也会被拒绝。") +s.anonymous = true + +o = s:option(Flag, "access_enabled", "限制公网访问地区") +o.default = "0" +o.rmempty = false + +local access_regions = {} +local regions_file = io.open("/usr/lib/minigate/geo/regions.txt", "r") +if regions_file then + for line in regions_file:lines() do + local code, name = line:match("^(%d+) (.+)$") + if code then access_regions[#access_regions + 1] = {code, name} end + end + regions_file:close() +end + +o = s:option(DynamicList, "access_regions", "允许的省级地区", "可选择多个地区;只允许四川时,仅保留“四川省”。关闭地区限制即恢复所有地区访问。") +o.default = "510000" +o.rmempty = false +o:depends("access_enabled", "1") +local valid_regions = {} +for _, region in ipairs(access_regions) do + o:value(region[1], region[2]) + valid_regions[region[1]] = true +end +o.validate = function(self, value, section) + local values = type(value) == "table" and value or {value} + if #values == 0 then return nil, "请选择至少一个允许的地区" end + for _, code in ipairs(values) do + if not valid_regions[code] then return nil, "请从列表中选择有效的省级地区" end + end + return value +end + -- ================================ -- 通配符域名 -- ================================ diff --git a/minigate/root/etc/config/minigate b/minigate/root/etc/config/minigate index a89a562ad..d00619e80 100644 --- a/minigate/root/etc/config/minigate +++ b/minigate/root/etc/config/minigate @@ -3,6 +3,8 @@ config global 'global' option ipv6_listen '0' option http_redirect '0' option lan_dns '0' + option access_enabled '0' + list access_regions '510000' config acme 'acme' option enabled '0' diff --git a/minigate/root/usr/lib/minigate/geo/110000.conf b/minigate/root/usr/lib/minigate/geo/110000.conf new file mode 100644 index 000000000..3c15f457c --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/110000.conf @@ -0,0 +1,10843 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 北京市 +1.2.2.0/24 1; +1.2.4.0/23 1; +1.2.8.0/24 1; +1.4.4.0/24 1; +1.8.0.0/16 1; +1.12.0.0/16 1; +1.13.96.0/19 1; +1.14.128.0/18 1; +1.14.224.0/19 1; +1.15.0.0/16 1; +1.45.0.0/16 1; +1.88.0.0/13 1; +1.116.0.0/15 1; +1.119.0.0/16 1; +1.202.0.0/15 1; +8.130.0.0/15 1; +13.34.222.0/25 1; +13.34.224.128/26 1; +13.34.231.0/25 1; +13.34.232.128/25 1; +13.34.235.64/26 1; +13.34.237.128/26 1; +13.34.238.0/26 1; +13.34.238.128/26 1; +14.1.24.0/22 1; +14.102.180.0/22 1; +14.130.0.0/15 1; +14.192.60.0/22 1; +14.197.148.0/27 1; +14.197.148.32/31 1; +14.197.148.35/32 1; +14.197.148.52/30 1; +14.197.148.56/29 1; +14.197.148.64/26 1; +14.197.148.128/25 1; +14.197.149.0/26 1; +14.197.149.64/29 1; +14.197.149.72/30 1; +14.197.149.156/32 1; +14.197.149.158/31 1; +14.197.149.160/27 1; +14.197.149.192/26 1; +14.197.176.244/30 1; +14.197.176.248/29 1; +14.197.177.0/28 1; +14.197.177.16/29 1; +14.197.178.0/25 1; +14.197.178.128/26 1; +14.197.178.192/28 1; +14.197.178.209/32 1; +14.197.180.0/22 1; +14.197.184.0/22 1; +14.197.196.0/22 1; +14.197.200.0/23 1; +14.197.202.0/24 1; +14.197.203.0/27 1; +14.197.203.32/28 1; +14.197.203.48/30 1; +14.197.203.60/30 1; +14.197.203.64/26 1; +14.197.203.128/25 1; +14.197.204.0/22 1; +14.197.208.0/24 1; +14.197.209.0/25 1; +14.197.209.128/29 1; +14.197.209.136/30 1; +14.197.209.140/31 1; +14.197.209.143/32 1; +14.197.209.144/28 1; +14.197.209.160/27 1; +14.197.209.192/26 1; +14.197.210.0/23 1; +14.197.212.0/22 1; +14.197.216.0/21 1; +14.197.224.0/20 1; +14.197.240.133/32 1; +14.197.240.197/32 1; +14.197.240.217/32 1; +14.197.240.233/32 1; +14.197.241.24/30 1; +14.197.241.29/32 1; +14.197.241.161/32 1; +14.197.241.165/32 1; +14.197.241.177/32 1; +14.197.241.245/32 1; +14.197.241.249/32 1; +14.197.242.16/28 1; +14.197.242.164/30 1; +14.197.242.168/30 1; +14.197.243.94/32 1; +14.197.244.93/32 1; +14.197.244.117/32 1; +14.197.244.161/32 1; +14.197.244.181/32 1; +14.197.244.185/32 1; +14.197.245.0/26 1; +14.197.245.64/27 1; +14.197.245.96/28 1; +14.197.245.112/29 1; +14.197.245.120/30 1; +14.197.245.124/32 1; +14.197.245.126/31 1; +14.197.245.128/29 1; +14.197.245.140/30 1; +14.197.245.144/28 1; +14.197.245.160/27 1; +14.197.245.192/27 1; +14.197.245.224/29 1; +14.197.245.240/32 1; +14.197.245.242/31 1; +14.197.245.244/30 1; +14.197.245.248/29 1; +14.197.246.213/32 1; +14.197.247.0/24 1; +14.197.248.0/26 1; +14.197.248.64/28 1; +14.197.248.80/29 1; +14.197.248.92/30 1; +14.197.248.96/27 1; +14.197.248.128/25 1; +14.197.249.0/24 1; +14.197.250.0/23 1; +14.197.252.0/24 1; +14.197.253.0/27 1; +14.197.253.32/28 1; +14.197.253.48/32 1; +14.197.253.50/31 1; +14.197.253.52/30 1; +14.197.253.56/29 1; +14.197.253.64/26 1; +14.197.253.128/25 1; +14.197.254.0/23 1; +15.230.41.0/24 1; +15.230.49.0/24 1; +15.230.141.0/24 1; +27.0.160.0/21 1; +27.98.208.0/20 1; +27.99.128.0/17 1; +27.106.204.0/22 1; +27.109.32.0/19 1; +27.112.80.0/20 1; +27.112.112.0/21 1; +27.116.44.0/22 1; +27.131.220.0/22 1; +36.0.64.0/18 1; +36.0.128.0/17 1; +36.51.0.0/17 1; +36.51.128.0/18 1; +36.51.192.0/19 1; +36.51.224.0/20 1; +36.51.240.0/21 1; +36.51.248.0/22 1; +36.51.252.0/23 1; +36.110.0.0/16 1; +36.111.80.0/21 1; +36.111.88.0/24 1; +36.112.0.0/16 1; +36.133.48.0/21 1; +36.133.56.0/22 1; +36.133.192.0/21 1; +36.133.240.0/21 1; +36.143.128.0/17 1; +36.192.0.0/21 1; +36.192.8.0/24 1; +36.193.137.0/24 1; +36.193.138.0/23 1; +36.193.140.0/22 1; +36.193.144.0/20 1; +36.193.160.0/19 1; +36.193.192.0/18 1; +36.194.0.0/15 1; +36.196.0.0/14 1; +36.200.0.0/13 1; +36.208.0.0/12 1; +36.254.0.0/16 1; +39.96.0.0/15 1; +39.99.96.0/19 1; +39.99.128.0/17 1; +39.100.180.0/22 1; +39.100.184.0/21 1; +39.100.192.0/18 1; +39.101.0.0/16 1; +39.102.0.0/15 1; +39.105.0.0/16 1; +39.106.0.0/15 1; +39.144.10.0/23 1; +39.144.12.0/24 1; +39.144.19.0/24 1; +39.144.48.0/24 1; +39.144.51.0/24 1; +39.144.52.0/24 1; +39.144.67.0/24 1; +39.144.68.0/24 1; +39.155.128.0/17 1; +39.156.0.0/15 1; +40.72.0.0/17 1; +40.72.255.0/24 1; +40.73.0.0/16 1; +40.77.136.112/28 1; +40.77.254.64/27 1; +40.125.128.0/17 1; +42.0.128.0/17 1; +42.50.0.0/16 1; +42.62.0.0/17 1; +42.83.128.0/22 1; +42.83.132.0/23 1; +42.83.134.0/24 1; +42.83.136.0/23 1; +42.83.140.0/24 1; +42.83.142.0/23 1; +42.83.144.0/20 1; +42.83.160.0/19 1; +42.83.192.0/18 1; +42.99.0.0/20 1; +42.99.22.0/23 1; +42.99.24.0/21 1; +42.99.32.0/19 1; +42.123.128.0/17 1; +42.128.0.0/12 1; +42.157.136.0/21 1; +42.158.0.0/16 1; +42.159.0.0/17 1; +42.160.0.0/12 1; +42.194.12.0/22 1; +42.201.0.0/18 1; +42.201.69.0/24 1; +42.201.70.0/23 1; +42.201.72.0/21 1; +42.201.80.0/20 1; +42.201.96.0/19 1; +42.204.0.0/14 1; +42.208.0.0/12 1; +42.240.0.0/17 1; +42.245.192.0/23 1; +42.245.194.32/27 1; +42.245.194.64/26 1; +42.245.194.128/25 1; +42.245.196.0/23 1; +42.245.199.0/24 1; +42.245.200.0/21 1; +42.245.216.64/27 1; +42.245.216.192/26 1; +42.245.220.0/24 1; +42.247.1.84/30 1; +42.247.1.88/29 1; +42.247.1.96/27 1; +42.247.2.64/26 1; +42.247.2.240/29 1; +42.247.3.64/27 1; +42.247.4.0/24 1; +42.247.5.0/25 1; +42.247.5.128/27 1; +42.247.5.232/29 1; +42.247.5.240/28 1; +42.247.6.0/25 1; +42.247.6.128/26 1; +42.247.9.88/29 1; +42.247.12.96/27 1; +42.247.12.128/25 1; +42.247.13.0/25 1; +42.247.13.128/28 1; +42.247.13.144/29 1; +42.247.14.128/25 1; +42.247.16.128/27 1; +42.247.17.0/26 1; +42.247.18.96/27 1; +42.247.18.128/28 1; +42.247.20.80/28 1; +42.247.20.192/28 1; +42.247.22.248/29 1; +42.247.23.192/27 1; +42.247.25.48/28 1; +42.247.26.128/27 1; +42.247.27.232/29 1; +42.247.29.0/30 1; +42.247.29.224/28 1; +42.247.31.16/28 1; +42.247.31.56/29 1; +42.247.32.32/27 1; +42.247.32.216/29 1; +42.247.33.64/28 1; +42.247.33.128/28 1; +42.247.33.208/28 1; +42.247.36.112/28 1; +42.247.38.0/27 1; +42.247.38.32/28 1; +42.247.43.128/27 1; +42.247.47.160/27 1; +42.247.47.192/28 1; +42.247.53.48/29 1; +43.195.0.0/20 1; +43.195.16.0/22 1; +43.195.20.0/23 1; +43.196.0.0/16 1; +43.224.44.0/22 1; +43.224.54.72/29 1; +43.224.54.112/29 1; +43.224.68.0/22 1; +43.224.72.0/22 1; +43.224.144.0/22 1; +43.224.200.0/21 1; +43.224.212.0/22 1; +43.224.216.0/22 1; +43.225.86.0/24 1; +43.225.216.0/21 1; +43.225.228.0/22 1; +43.225.232.0/21 1; +43.225.240.0/21 1; +43.226.236.0/22 1; +43.227.8.0/22 1; +43.227.32.0/22 1; +43.227.52.0/22 1; +43.227.140.0/22 1; +43.227.232.0/22 1; +43.227.248.0/21 1; +43.228.32.0/21 1; +43.228.100.0/22 1; +43.228.116.0/22 1; +43.229.40.0/22 1; +43.229.56.0/22 1; +43.229.96.0/22 1; +43.229.136.0/22 1; +43.229.143.0/24 1; +43.229.184.0/22 1; +43.229.220.0/22 1; +43.230.32.0/23 1; +43.230.34.0/24 1; +43.230.68.0/22 1; +43.230.124.0/22 1; +43.231.160.0/20 1; +43.231.176.0/21 1; +43.236.0.0/22 1; +43.236.16.0/21 1; +43.237.96.0/20 1; +43.237.112.0/21 1; +43.237.120.0/22 1; +43.237.240.0/21 1; +43.237.248.0/22 1; +43.238.36.0/22 1; +43.238.72.0/21 1; +43.238.80.0/20 1; +43.238.96.0/21 1; +43.238.164.0/22 1; +43.238.168.0/22 1; +43.239.4.0/22 1; +43.239.8.0/21 1; +43.239.16.0/20 1; +43.239.32.0/21 1; +43.239.44.0/22 1; +43.239.48.0/22 1; +43.240.68.0/22 1; +43.240.136.0/22 1; +43.240.164.0/22 1; +43.240.200.0/22 1; +43.240.216.0/21 1; +43.240.240.0/20 1; +43.241.0.0/20 1; +43.241.20.0/22 1; +43.241.76.0/22 1; +43.241.88.0/21 1; +43.241.112.0/22 1; +43.241.168.0/22 1; +43.241.176.0/22 1; +43.241.208.0/20 1; +43.241.224.0/20 1; +43.241.240.0/22 1; +43.242.24.0/21 1; +43.242.48.0/22 1; +43.242.53.0/24 1; +43.242.54.0/24 1; +43.242.60.0/22 1; +43.242.76.0/22 1; +43.242.80.0/21 1; +43.242.88.0/22 1; +43.242.96.0/22 1; +43.242.168.0/22 1; +43.242.192.0/21 1; +43.242.216.0/21 1; +43.243.12.0/22 1; +43.243.136.0/22 1; +43.243.232.0/22 1; +43.246.0.0/18 1; +43.246.64.0/19 1; +43.246.96.0/22 1; +43.246.230.0/23 1; +43.247.8.0/22 1; +43.247.108.0/22 1; +43.247.112.0/22 1; +43.247.176.0/20 1; +43.247.212.0/22 1; +43.247.216.0/22 1; +43.247.220.0/23 1; +43.247.236.0/22 1; +43.247.240.0/22 1; +43.247.248.0/21 1; +43.248.0.0/22 1; +43.248.28.0/22 1; +43.248.48.0/22 1; +43.248.112.0/22 1; +43.248.232.0/22 1; +43.249.148.0/22 1; +43.249.168.0/22 1; +43.250.12.0/22 1; +43.250.176.0/22 1; +43.250.220.0/22 1; +43.250.236.0/22 1; +43.252.48.0/24 1; +43.252.224.0/22 1; +43.254.0.0/21 1; +43.254.24.0/22 1; +43.254.36.0/22 1; +43.254.64.0/22 1; +43.254.72.0/22 1; +43.254.84.0/22 1; +43.254.88.0/21 1; +43.254.112.0/21 1; +43.254.172.0/22 1; +43.254.180.0/22 1; +43.254.184.0/21 1; +43.254.192.0/22 1; +43.254.200.0/22 1; +43.254.208.0/22 1; +43.254.228.0/22 1; +43.254.232.0/21 1; +43.254.240.0/22 1; +43.254.248.0/22 1; +43.255.3.0/24 1; +43.255.4.0/22 1; +43.255.8.0/22 1; +43.255.96.0/22 1; +43.255.144.0/22 1; +43.255.176.0/22 1; +43.255.200.0/22 1; +43.255.224.0/22 1; +45.65.16.0/22 1; +45.112.132.0/22 1; +45.112.188.0/22 1; +45.113.16.0/22 1; +45.113.168.0/22 1; +45.114.32.0/22 1; +45.114.52.0/22 1; +45.114.96.0/22 1; +45.114.196.0/22 1; +45.114.200.0/22 1; +45.114.228.0/22 1; +45.114.237.0/24 1; +45.114.238.0/23 1; +45.115.120.0/22 1; +45.115.132.0/22 1; +45.115.212.0/22 1; +45.115.244.0/22 1; +45.117.8.0/22 1; +45.119.72.0/22 1; +45.119.104.0/22 1; +45.120.164.0/22 1; +45.120.240.0/22 1; +45.121.52.0/22 1; +45.121.64.0/22 1; +45.121.244.0/22 1; +45.121.248.0/22 1; +45.122.4.0/22 1; +45.122.8.0/21 1; +45.122.16.0/20 1; +45.122.36.0/22 1; +45.122.40.0/22 1; +45.122.60.0/22 1; +45.122.64.0/19 1; +45.122.104.0/21 1; +45.122.112.0/21 1; +45.122.160.0/19 1; +45.122.192.0/20 1; +45.122.208.0/21 1; +45.122.216.0/22 1; +45.123.28.0/22 1; +45.123.44.0/22 1; +45.123.48.0/20 1; +45.123.64.0/20 1; +45.123.80.0/21 1; +45.123.120.0/22 1; +45.123.132.0/22 1; +45.123.136.0/22 1; +45.123.148.0/22 1; +45.123.152.0/21 1; +45.123.160.0/20 1; +45.123.176.0/21 1; +45.123.204.0/22 1; +45.123.224.0/19 1; +45.124.0.0/22 1; +45.124.20.0/23 1; +45.124.28.0/22 1; +45.124.44.0/22 1; +45.124.76.0/22 1; +45.124.100.0/22 1; +45.124.176.0/22 1; +45.126.48.0/22 1; +45.126.112.0/22 1; +45.127.8.0/22 1; +45.127.144.0/21 1; +45.127.156.0/22 1; +45.248.100.0/22 1; +45.248.104.0/21 1; +45.248.204.0/22 1; +45.250.16.0/22 1; +45.250.152.0/22 1; +45.250.164.0/22 1; +45.250.192.0/22 1; +45.251.20.0/22 1; +45.252.120.0/21 1; +45.252.128.0/22 1; +45.252.140.0/22 1; +45.252.144.0/20 1; +45.252.160.0/20 1; +45.252.176.0/22 1; +45.252.192.0/19 1; +45.252.224.0/22 1; +45.252.232.0/22 1; +45.253.0.0/20 1; +45.253.28.0/22 1; +45.253.42.0/23 1; +45.253.56.0/22 1; +45.253.68.0/22 1; +45.253.77.0/24 1; +45.253.82.0/23 1; +45.253.84.0/22 1; +45.253.120.0/22 1; +45.253.130.0/23 1; +45.254.16.0/22 1; +45.254.29.0/24 1; +45.254.30.0/23 1; +45.254.40.0/22 1; +45.254.56.0/22 1; +45.254.96.0/22 1; +45.254.120.0/21 1; +45.254.128.0/18 1; +45.254.192.0/19 1; +45.254.224.0/21 1; +45.254.236.0/22 1; +45.254.248.0/22 1; +45.255.64.0/19 1; +45.255.96.0/20 1; +45.255.112.0/21 1; +45.255.120.0/22 1; +45.255.136.0/21 1; +45.255.144.0/20 1; +45.255.160.0/19 1; +45.255.192.0/19 1; +45.255.224.0/20 1; +45.255.240.0/21 1; +45.255.248.0/22 1; +47.93.0.0/16 1; +47.94.0.0/15 1; +49.4.0.0/18 1; +49.4.64.0/19 1; +49.4.111.0/24 1; +49.4.112.0/20 1; +49.4.128.0/17 1; +49.5.0.0/16 1; +49.6.0.0/15 1; +49.51.56.0/22 1; +49.51.60.0/23 1; +49.51.110.0/23 1; +49.51.112.0/20 1; +49.232.0.0/15 1; +52.80.0.0/15 1; +54.222.0.0/15 1; +54.239.0.144/28 1; +54.240.224.0/24 1; +58.30.0.0/15 1; +58.68.128.0/19 1; +58.68.160.0/21 1; +58.68.200.0/21 1; +58.68.208.0/20 1; +58.68.224.0/19 1; +58.82.0.0/17 1; +58.83.0.0/16 1; +58.87.64.0/19 1; +58.87.96.0/21 1; +58.87.104.0/23 1; +58.99.128.0/18 1; +58.99.192.0/19 1; +58.99.224.0/20 1; +58.99.240.0/21 1; +58.99.248.0/22 1; +58.99.252.0/23 1; +58.116.0.0/14 1; +58.128.0.0/13 1; +58.194.144.0/20 1; +58.194.216.0/21 1; +58.194.224.0/19 1; +58.195.8.0/21 1; +58.195.96.0/19 1; +58.195.176.0/20 1; +58.195.192.0/19 1; +58.195.224.0/20 1; +58.195.240.0/21 1; +58.197.34.0/23 1; +58.197.36.0/22 1; +58.197.40.0/21 1; +58.197.48.0/20 1; +58.197.64.0/18 1; +58.197.128.0/17 1; +58.200.2.0/24 1; +58.200.8.0/24 1; +58.200.13.0/24 1; +58.200.16.0/21 1; +58.200.25.0/24 1; +58.200.26.0/23 1; +58.200.28.0/24 1; +58.200.32.0/19 1; +58.200.67.0/24 1; +58.200.69.0/24 1; +58.200.70.0/23 1; +58.200.77.0/24 1; +58.200.78.128/25 1; +58.200.80.128/25 1; +58.200.82.0/23 1; +58.200.84.0/22 1; +58.200.88.0/21 1; +58.200.96.128/25 1; +58.200.97.0/24 1; +58.200.99.0/24 1; +58.200.100.0/22 1; +58.200.107.0/24 1; +58.200.108.0/23 1; +58.200.110.0/24 1; +58.200.114.0/23 1; +58.200.117.0/24 1; +58.200.120.16/28 1; +58.200.120.32/27 1; +58.200.120.64/27 1; +58.200.120.96/29 1; +58.200.120.120/29 1; +58.200.120.128/29 1; +58.200.120.144/28 1; +58.200.120.160/29 1; +58.200.120.208/28 1; +58.200.120.224/27 1; +58.200.121.0/24 1; +58.200.122.0/23 1; +58.200.124.0/23 1; +58.200.126.0/24 1; +58.200.127.0/25 1; +58.200.127.128/27 1; +58.200.127.192/28 1; +58.200.127.216/29 1; +58.200.127.224/29 1; +58.200.128.0/17 1; +58.201.0.0/16 1; +58.202.0.0/15 1; +58.204.0.0/16 1; +58.205.0.0/17 1; +58.205.128.0/18 1; +58.205.196.0/22 1; +58.205.200.0/21 1; +58.205.208.0/21 1; +58.205.216.0/22 1; +58.206.224.0/19 1; +58.207.0.0/20 1; +59.43.0.0/18 1; +59.43.73.0/31 1; +59.43.73.4/30 1; +59.43.73.8/29 1; +59.43.73.16/28 1; +59.43.73.32/27 1; +59.43.73.64/26 1; +59.43.73.128/25 1; +59.43.74.0/29 1; +59.43.74.8/30 1; +59.43.74.12/31 1; +59.43.75.0/24 1; +59.43.76.0/22 1; +59.43.80.0/29 1; +59.43.80.24/30 1; +59.43.80.32/31 1; +59.43.80.42/31 1; +59.43.80.44/30 1; +59.43.80.48/31 1; +59.43.80.58/31 1; +59.43.80.128/25 1; +59.43.81.0/26 1; +59.43.81.72/29 1; +59.43.81.80/28 1; +59.43.81.96/27 1; +59.43.81.128/25 1; +59.43.82.0/28 1; +59.43.82.18/31 1; +59.43.82.22/31 1; +59.43.82.24/29 1; +59.43.82.32/27 1; +59.43.82.64/26 1; +59.43.82.128/25 1; +59.43.83.0/24 1; +59.43.84.0/22 1; +59.43.88.0/21 1; +59.43.96.0/19 1; +59.43.128.0/19 1; +59.43.160.0/20 1; +59.43.176.0/22 1; +59.43.180.0/24 1; +59.43.181.0/26 1; +59.43.181.64/28 1; +59.43.181.80/29 1; +59.43.181.88/30 1; +59.43.181.92/31 1; +59.43.181.138/31 1; +59.43.181.140/30 1; +59.43.181.144/28 1; +59.43.181.160/29 1; +59.43.181.176/29 1; +59.43.181.192/26 1; +59.43.182.0/26 1; +59.43.182.64/29 1; +59.43.182.72/31 1; +59.43.182.76/30 1; +59.43.182.80/28 1; +59.43.182.96/27 1; +59.43.182.128/27 1; +59.43.182.160/28 1; +59.43.182.176/29 1; +59.43.182.184/31 1; +59.43.249.32/27 1; +59.43.249.64/27 1; +59.43.249.96/29 1; +59.43.249.104/30 1; +59.43.249.116/30 1; +59.43.249.120/29 1; +59.43.249.128/29 1; +59.43.249.142/31 1; +59.43.249.144/28 1; +59.43.249.160/30 1; +59.43.249.180/30 1; +59.43.249.184/29 1; +59.43.249.192/31 1; +59.43.249.200/31 1; +59.43.249.204/30 1; +59.43.249.208/28 1; +59.43.249.224/27 1; +59.43.250.0/28 1; +59.43.250.20/31 1; +59.43.250.40/30 1; +59.43.250.48/30 1; +59.43.250.52/31 1; +59.43.250.56/31 1; +59.43.250.72/30 1; +59.43.250.88/29 1; +59.43.250.96/27 1; +59.43.250.128/25 1; +59.43.251.0/24 1; +59.43.252.0/30 1; +59.43.252.8/29 1; +59.43.252.16/28 1; +59.43.252.32/27 1; +59.43.252.64/26 1; +59.43.252.128/25 1; +59.43.253.0/24 1; +59.43.254.0/24 1; +59.43.255.0/29 1; +59.43.255.20/30 1; +59.43.255.24/29 1; +59.43.255.32/28 1; +59.43.255.48/29 1; +59.43.255.56/31 1; +59.43.255.60/31 1; +59.43.255.64/31 1; +59.43.255.68/30 1; +59.43.255.72/29 1; +59.43.255.80/28 1; +59.43.255.96/27 1; +59.43.255.128/25 1; +59.64.0.0/15 1; +59.66.0.0/16 1; +59.67.188.0/22 1; +59.81.0.0/19 1; +59.81.32.0/22 1; +59.81.38.0/23 1; +59.81.42.0/23 1; +59.81.45.0/24 1; +59.81.47.0/24 1; +59.81.48.0/21 1; +59.81.56.0/22 1; +59.81.60.0/23 1; +59.81.66.0/23 1; +59.81.70.0/23 1; +59.81.74.0/23 1; +59.81.84.0/23 1; +59.81.90.0/23 1; +59.81.96.0/23 1; +59.81.108.0/22 1; +59.81.112.0/20 1; +59.81.128.0/17 1; +59.82.0.0/16 1; +59.108.0.0/19 1; +59.108.32.16/28 1; +59.108.32.32/27 1; +59.108.32.64/26 1; +59.108.32.128/25 1; +59.108.33.0/24 1; +59.108.34.0/23 1; +59.108.36.0/22 1; +59.108.40.0/21 1; +59.108.48.0/20 1; +59.108.64.0/18 1; +59.108.133.0/24 1; +59.108.134.0/23 1; +59.108.136.0/21 1; +59.108.144.0/20 1; +59.108.160.0/19 1; +59.108.192.0/18 1; +59.109.0.0/17 1; +59.109.128.0/19 1; +59.109.216.0/21 1; +59.109.224.0/19 1; +59.110.0.0/16 1; +59.151.0.0/17 1; +59.152.20.0/22 1; +59.152.24.0/21 1; +59.152.35.0/24 1; +59.152.37.0/24 1; +59.152.64.0/20 1; +59.152.112.0/21 1; +59.153.64.0/22 1; +59.153.152.0/22 1; +59.192.0.0/10 1; +60.194.0.0/15 1; +60.205.0.0/16 1; +60.206.0.0/15 1; +60.245.128.0/17 1; +60.247.0.0/17 1; +60.253.128.0/17 1; +61.4.81.0/24 1; +61.4.82.0/23 1; +61.4.84.0/23 1; +61.4.176.0/20 1; +61.14.212.0/22 1; +61.14.216.0/21 1; +61.14.244.0/22 1; +61.48.0.0/14 1; +61.135.0.0/16 1; +61.148.0.0/15 1; +61.232.0.0/20 1; +61.232.244.0/24 1; +61.232.247.0/24 1; +61.232.248.0/22 1; +61.233.0.0/19 1; +61.237.0.0/30 1; +61.237.0.4/31 1; +61.237.0.8/31 1; +61.237.0.56/31 1; +61.237.0.60/30 1; +61.237.0.64/30 1; +61.237.0.72/31 1; +61.237.0.76/30 1; +61.237.0.80/31 1; +61.237.0.84/30 1; +61.237.0.96/28 1; +61.237.0.124/31 1; +61.237.0.128/27 1; +61.237.1.60/30 1; +61.237.1.80/28 1; +61.237.1.96/31 1; +61.237.1.104/31 1; +61.237.1.108/31 1; +61.237.1.114/31 1; +61.237.1.184/30 1; +61.237.1.212/30 1; +61.237.1.220/30 1; +61.237.1.252/30 1; +61.237.2.16/30 1; +61.237.2.32/29 1; +61.237.2.68/30 1; +61.237.2.72/29 1; +61.237.2.80/28 1; +61.237.2.96/28 1; +61.237.2.132/30 1; +61.237.2.136/29 1; +61.237.2.144/28 1; +61.237.2.160/30 1; +61.237.2.168/29 1; +61.237.2.176/29 1; +61.237.2.184/30 1; +61.237.2.196/30 1; +61.237.2.200/29 1; +61.237.2.208/28 1; +61.237.2.240/28 1; +61.237.3.0/29 1; +61.237.3.16/30 1; +61.237.3.32/29 1; +61.237.3.48/29 1; +61.237.3.60/30 1; +61.237.3.64/27 1; +61.237.3.96/30 1; +61.237.3.104/29 1; +61.237.3.112/29 1; +61.237.3.136/29 1; +61.237.3.144/29 1; +61.237.3.156/30 1; +61.237.3.164/30 1; +61.237.3.168/29 1; +61.237.3.180/30 1; +61.237.3.184/30 1; +61.237.3.192/28 1; +61.237.3.208/30 1; +61.237.3.216/29 1; +61.237.3.224/27 1; +61.237.4.0/22 1; +61.237.8.0/23 1; +61.237.10.0/26 1; +61.237.12.160/27 1; +61.237.13.32/27 1; +61.237.13.128/27 1; +61.237.14.96/27 1; +61.237.14.160/27 1; +61.237.14.192/26 1; +61.237.16.0/24 1; +61.237.17.128/27 1; +61.237.18.0/26 1; +61.237.18.96/27 1; +61.237.18.128/25 1; +61.237.19.0/24 1; +61.237.20.0/23 1; +61.237.22.32/27 1; +61.237.22.64/26 1; +61.237.22.128/26 1; +61.237.22.192/27 1; +61.237.23.0/24 1; +61.237.24.0/27 1; +61.237.24.64/26 1; +61.237.24.192/27 1; +61.237.25.0/24 1; +61.237.26.0/24 1; +61.237.27.32/27 1; +61.237.27.64/26 1; +61.237.27.128/25 1; +61.237.28.0/25 1; +61.237.28.128/26 1; +61.237.28.192/29 1; +61.237.28.208/28 1; +61.237.28.224/27 1; +61.237.29.0/26 1; +61.237.29.68/30 1; +61.237.29.72/29 1; +61.237.29.80/28 1; +61.237.29.96/27 1; +61.237.29.128/26 1; +61.237.29.192/27 1; +61.237.29.224/28 1; +61.237.29.240/29 1; +61.237.29.252/30 1; +61.237.30.0/26 1; +61.237.30.64/28 1; +61.237.30.80/29 1; +61.237.30.96/27 1; +61.237.30.128/25 1; +61.237.31.0/24 1; +61.237.32.0/19 1; +61.237.64.0/31 1; +61.237.64.2/32 1; +61.237.64.5/32 1; +61.237.64.6/32 1; +61.237.64.9/32 1; +61.237.64.10/31 1; +61.237.64.12/30 1; +61.237.64.16/28 1; +61.237.64.32/27 1; +61.237.64.64/29 1; +61.237.64.73/32 1; +61.237.64.74/31 1; +61.237.64.76/30 1; +61.237.64.80/28 1; +61.237.64.96/27 1; +61.237.64.128/26 1; +61.237.64.192/27 1; +61.237.64.224/30 1; +61.237.64.228/32 1; +61.237.64.232/29 1; +61.237.64.240/28 1; +61.237.65.0/26 1; +61.237.65.64/27 1; +61.237.65.96/30 1; +61.237.65.104/29 1; +61.237.65.112/28 1; +61.237.65.128/25 1; +61.237.66.0/26 1; +61.237.66.64/27 1; +61.237.66.96/28 1; +61.237.66.112/30 1; +61.237.66.116/31 1; +61.237.66.120/29 1; +61.237.66.128/25 1; +61.237.67.0/24 1; +61.237.68.0/26 1; +61.237.68.64/27 1; +61.237.68.96/28 1; +61.237.68.112/30 1; +61.237.68.120/29 1; +61.237.68.128/25 1; +61.237.69.0/24 1; +61.237.70.0/23 1; +61.237.72.0/21 1; +61.237.80.0/22 1; +61.237.84.0/23 1; +61.237.87.0/24 1; +61.237.88.0/23 1; +61.237.90.0/24 1; +61.237.92.0/22 1; +61.237.96.0/24 1; +61.237.97.4/31 1; +61.237.97.8/30 1; +61.237.97.16/28 1; +61.237.97.32/27 1; +61.237.97.64/28 1; +61.237.97.80/29 1; +61.237.97.88/30 1; +61.237.97.92/31 1; +61.237.97.104/29 1; +61.237.97.112/28 1; +61.237.97.128/28 1; +61.237.97.144/29 1; +61.237.97.152/30 1; +61.237.97.164/31 1; +61.237.97.168/30 1; +61.237.97.176/28 1; +61.237.97.192/26 1; +61.237.98.0/23 1; +61.237.100.0/22 1; +61.237.104.0/21 1; +61.237.112.0/29 1; +61.237.112.16/28 1; +61.237.112.32/27 1; +61.237.112.64/29 1; +61.237.112.80/30 1; +61.237.112.88/29 1; +61.237.112.96/27 1; +61.237.112.128/26 1; +61.237.112.192/27 1; +61.237.112.224/29 1; +61.237.112.236/30 1; +61.237.112.240/28 1; +61.237.113.0/25 1; +61.237.113.128/27 1; +61.237.113.160/28 1; +61.237.113.180/30 1; +61.237.113.184/29 1; +61.237.113.192/30 1; +61.237.113.196/31 1; +61.237.113.200/31 1; +61.237.113.204/30 1; +61.237.113.212/30 1; +61.237.113.216/29 1; +61.237.113.224/27 1; +61.237.114.0/23 1; +61.237.116.0/23 1; +61.237.118.0/24 1; +61.237.119.0/26 1; +61.237.119.64/28 1; +61.237.119.80/29 1; +61.237.119.116/30 1; +61.237.119.120/29 1; +61.237.119.128/28 1; +61.237.119.144/30 1; +61.237.119.152/31 1; +61.237.119.156/31 1; +61.237.119.160/27 1; +61.237.119.192/26 1; +61.237.120.0/25 1; +61.237.120.128/26 1; +61.237.120.192/28 1; +61.237.120.208/29 1; +61.237.121.0/26 1; +61.237.121.64/31 1; +61.237.121.68/31 1; +61.237.121.72/31 1; +61.237.121.76/30 1; +61.237.121.80/30 1; +61.237.121.84/31 1; +61.237.121.112/29 1; +61.237.121.128/25 1; +61.237.122.0/26 1; +61.237.122.64/27 1; +61.237.122.96/28 1; +61.237.122.116/30 1; +61.237.122.120/29 1; +61.237.122.128/29 1; +61.237.122.136/30 1; +61.237.122.144/28 1; +61.237.122.160/29 1; +61.237.122.168/30 1; +61.237.122.172/31 1; +61.237.122.220/30 1; +61.237.122.224/28 1; +61.237.122.240/29 1; +61.237.122.248/30 1; +61.237.123.0/28 1; +61.237.123.18/31 1; +61.237.123.22/31 1; +61.237.123.80/30 1; +61.237.123.104/31 1; +61.237.123.128/31 1; +61.237.123.132/31 1; +61.237.123.164/31 1; +61.237.123.168/31 1; +61.237.123.176/28 1; +61.237.123.192/29 1; +61.237.123.200/30 1; +61.237.123.232/29 1; +61.237.123.240/28 1; +61.237.124.8/30 1; +61.237.124.12/31 1; +61.237.124.40/29 1; +61.237.124.48/28 1; +61.237.124.64/30 1; +61.237.124.96/30 1; +61.237.124.136/29 1; +61.237.124.144/31 1; +61.237.124.152/29 1; +61.237.124.160/27 1; +61.237.124.192/26 1; +61.237.125.0/25 1; +61.237.125.128/28 1; +61.237.125.144/29 1; +61.237.126.132/30 1; +61.237.126.136/30 1; +61.237.126.240/30 1; +61.237.126.244/31 1; +61.237.126.248/31 1; +61.237.126.252/31 1; +61.237.127.16/31 1; +61.237.127.20/31 1; +61.237.127.24/29 1; +61.237.127.32/31 1; +61.237.127.36/30 1; +61.237.127.40/30 1; +61.237.127.44/31 1; +61.237.127.48/31 1; +61.237.127.52/31 1; +61.237.127.60/31 1; +61.237.127.64/31 1; +61.237.127.96/28 1; +61.237.127.112/29 1; +61.237.127.168/29 1; +61.237.127.208/31 1; +61.237.127.212/31 1; +61.237.127.216/31 1; +61.237.127.220/30 1; +61.237.127.224/29 1; +61.237.224.0/20 1; +61.237.240.0/23 1; +61.237.242.0/26 1; +61.237.242.64/27 1; +61.237.242.116/30 1; +61.237.242.120/29 1; +61.237.243.0/24 1; +61.237.244.0/22 1; +61.237.248.0/21 1; +62.234.0.0/16 1; +63.249.134.0/23 1; +63.249.136.0/23 1; +66.102.240.0/23 1; +66.102.242.0/24 1; +66.102.246.0/23 1; +66.102.248.0/22 1; +66.102.252.0/24 1; +71.131.192.0/18 1; +71.132.0.0/18 1; +71.136.64.0/18 1; +71.137.0.0/18 1; +81.70.0.0/16 1; +81.71.128.0/17 1; +82.26.72.0/24 1; +82.156.0.0/15 1; +87.254.207.0/24 1; +93.183.14.0/24 1; +93.183.18.0/24 1; +101.4.0.0/17 1; +101.4.128.0/18 1; +101.5.0.0/16 1; +101.6.0.0/16 1; +101.7.4.0/22 1; +101.7.8.9/32 1; +101.7.8.96/27 1; +101.7.8.128/25 1; +101.7.9.0/24 1; +101.7.10.0/23 1; +101.7.12.0/22 1; +101.7.16.0/20 1; +101.7.32.0/19 1; +101.7.212.0/22 1; +101.7.216.0/21 1; +101.32.208.0/20 1; +101.32.224.0/19 1; +101.33.0.0/16 1; +101.34.0.0/15 1; +101.36.0.0/18 1; +101.36.64.0/20 1; +101.36.88.0/21 1; +101.36.128.0/17 1; +101.38.0.0/15 1; +101.40.0.0/14 1; +101.49.0.0/16 1; +101.50.8.0/21 1; +101.54.0.0/16 1; +101.78.32.0/19 1; +101.96.8.0/23 1; +101.96.128.0/17 1; +101.120.0.0/14 1; +101.124.0.0/18 1; +101.124.161.0/24 1; +101.124.162.0/23 1; +101.124.164.0/22 1; +101.124.168.0/21 1; +101.124.176.0/20 1; +101.124.192.0/18 1; +101.129.0.0/16 1; +101.134.0.0/15 1; +101.144.0.0/12 1; +101.192.0.0/14 1; +101.197.0.0/16 1; +101.198.0.0/17 1; +101.198.224.0/19 1; +101.199.0.0/19 1; +101.199.32.0/20 1; +101.199.64.0/18 1; +101.199.128.0/17 1; +101.200.0.0/15 1; +101.236.0.0/16 1; +101.239.0.0/16 1; +101.240.0.0/14 1; +101.251.128.0/20 1; +101.251.192.0/18 1; +101.252.0.0/15 1; +101.254.0.0/16 1; +103.1.8.0/22 1; +103.1.88.0/22 1; +103.2.108.0/22 1; +103.2.156.0/22 1; +103.2.164.0/22 1; +103.2.188.0/22 1; +103.2.200.0/22 1; +103.2.208.0/22 1; +103.3.84.0/22 1; +103.3.92.0/22 1; +103.3.120.0/22 1; +103.3.128.0/22 1; +103.4.56.0/22 1; +103.4.168.0/22 1; +103.6.76.0/22 1; +103.7.220.0/22 1; +103.8.8.0/22 1; +103.8.52.0/22 1; +103.8.156.0/22 1; +103.8.204.0/23 1; +103.8.206.0/24 1; +103.8.220.0/22 1; +103.9.8.0/22 1; +103.9.152.0/22 1; +103.10.84.0/22 1; +103.10.140.0/22 1; +103.12.232.0/22 1; +103.14.136.0/22 1; +103.15.8.0/22 1; +103.15.16.0/22 1; +103.15.97.0/24 1; +103.15.98.0/23 1; +103.16.52.0/22 1; +103.16.80.0/21 1; +103.16.88.0/22 1; +103.16.124.0/22 1; +103.17.40.0/22 1; +103.18.208.0/22 1; +103.19.12.0/22 1; +103.19.44.0/22 1; +103.19.64.0/22 1; +103.19.72.0/22 1; +103.19.232.0/22 1; +103.20.12.0/22 1; +103.20.112.0/22 1; +103.20.128.0/22 1; +103.21.112.0/22 1; +103.21.176.0/24 1; +103.21.240.0/22 1; +103.22.4.0/22 1; +103.22.92.0/22 1; +103.22.252.0/22 1; +103.23.160.0/22 1; +103.23.228.0/22 1; +103.24.128.0/22 1; +103.25.20.0/22 1; +103.25.24.0/21 1; +103.25.36.0/22 1; +103.25.68.0/22 1; +103.25.156.0/22 1; +103.26.0.0/22 1; +103.26.64.0/23 1; +103.26.116.0/22 1; +103.26.160.0/22 1; +103.27.12.0/22 1; +103.27.96.0/22 1; +103.28.8.0/22 1; +103.28.144.0/22 1; +103.29.16.0/22 1; +103.29.132.0/22 1; +103.29.136.0/22 1; +103.30.20.0/22 1; +103.30.48.0/22 1; +103.30.148.0/22 1; +103.30.236.0/22 1; +103.31.52.0/22 1; +103.31.148.0/22 1; +103.31.168.0/22 1; +103.31.200.0/23 1; +103.31.202.0/24 1; +103.32.0.0/20 1; +103.32.16.0/21 1; +103.33.96.0/20 1; +103.33.112.0/21 1; +103.33.120.0/22 1; +103.33.240.0/21 1; +103.33.248.0/22 1; +103.34.36.0/22 1; +103.34.72.0/21 1; +103.34.80.0/20 1; +103.34.96.0/21 1; +103.34.164.0/22 1; +103.34.168.0/22 1; +103.35.4.0/22 1; +103.35.32.0/20 1; +103.35.48.0/22 1; +103.35.222.0/23 1; +103.36.56.0/22 1; +103.36.96.0/22 1; +103.36.160.0/22 1; +103.36.176.0/22 1; +103.36.220.0/22 1; +103.36.224.0/20 1; +103.36.240.0/21 1; +103.37.24.0/22 1; +103.37.72.0/22 1; +103.37.136.0/21 1; +103.37.144.0/20 1; +103.37.160.0/21 1; +103.37.172.0/22 1; +103.37.252.0/22 1; +103.38.56.0/22 1; +103.38.76.0/22 1; +103.38.92.0/22 1; +103.38.96.0/22 1; +103.38.140.0/22 1; +103.38.220.0/22 1; +103.38.224.0/22 1; +103.39.64.0/22 1; +103.39.100.0/22 1; +103.39.200.0/21 1; +103.40.228.0/22 1; +103.40.236.0/22 1; +103.41.0.0/22 1; +103.41.52.0/22 1; +103.41.140.0/22 1; +103.42.32.0/22 1; +103.42.68.0/22 1; +103.42.76.0/22 1; +103.43.96.0/21 1; +103.43.184.0/22 1; +103.43.220.0/22 1; +103.44.58.0/23 1; +103.44.120.0/21 1; +103.44.176.0/21 1; +103.44.188.0/22 1; +103.44.192.0/20 1; +103.45.168.0/22 1; +103.46.168.0/22 1; +103.47.20.0/22 1; +103.47.24.0/21 1; +103.47.32.0/21 1; +103.47.40.0/22 1; +103.47.48.0/22 1; +103.47.96.0/22 1; +103.48.52.0/22 1; +103.48.92.0/22 1; +103.48.148.0/22 1; +103.48.153.0/24 1; +103.48.232.0/22 1; +103.49.72.0/21 1; +103.49.96.0/22 1; +103.49.176.0/22 1; +103.52.40.0/22 1; +103.52.72.0/21 1; +103.52.80.0/21 1; +103.52.164.0/22 1; +103.53.92.0/22 1; +103.53.136.0/22 1; +103.53.160.0/22 1; +103.53.208.0/22 1; +103.53.236.0/22 1; +103.54.8.0/22 1; +103.54.48.0/22 1; +103.54.160.0/21 1; +103.54.212.0/22 1; +103.54.228.0/22 1; +103.55.80.0/22 1; +103.55.120.0/22 1; +103.55.152.0/22 1; +103.55.204.0/22 1; +103.55.236.0/22 1; +103.55.240.0/22 1; +103.56.20.0/22 1; +103.56.56.0/22 1; +103.57.56.0/22 1; +103.59.128.0/22 1; +103.59.148.0/22 1; +103.60.44.0/22 1; +103.60.236.0/22 1; +103.61.60.0/22 1; +103.61.140.0/22 1; +103.61.152.0/22 1; +103.62.156.0/22 1; +103.62.160.0/19 1; +103.62.192.0/22 1; +103.62.212.0/22 1; +103.62.216.0/21 1; +103.62.224.0/22 1; +103.63.32.0/19 1; +103.63.64.0/20 1; +103.63.80.0/21 1; +103.63.88.0/22 1; +103.63.160.0/20 1; +103.63.176.0/21 1; +103.63.184.0/22 1; +103.63.192.0/20 1; +103.63.208.0/22 1; +103.63.240.0/22 1; +103.63.248.0/21 1; +103.64.0.0/16 1; +103.65.0.0/21 1; +103.65.76.0/22 1; +103.65.80.0/20 1; +103.65.100.0/22 1; +103.65.104.0/21 1; +103.65.112.0/22 1; +103.65.132.0/22 1; +103.65.136.0/22 1; +103.66.32.0/22 1; +103.67.40.0/22 1; +103.67.56.0/22 1; +103.67.88.0/21 1; +103.67.128.0/22 1; +103.67.192.0/22 1; +103.67.212.0/22 1; +103.70.8.0/22 1; +103.70.148.0/22 1; +103.70.252.0/22 1; +103.71.72.0/22 1; +103.71.120.0/21 1; +103.71.128.0/22 1; +103.71.196.0/22 1; +103.71.200.0/23 1; +103.71.202.0/24 1; +103.71.232.0/22 1; +103.72.12.0/22 1; +103.72.16.0/20 1; +103.72.32.0/20 1; +103.72.48.0/21 1; +103.72.128.0/21 1; +103.72.172.0/22 1; +103.74.24.0/21 1; +103.74.32.0/20 1; +103.74.48.0/22 1; +103.74.56.0/21 1; +103.74.64.0/20 1; +103.74.80.0/22 1; +103.74.148.0/22 1; +103.74.232.0/22 1; +103.75.88.0/22 1; +103.75.104.0/22 1; +103.75.112.0/22 1; +103.75.120.0/22 1; +103.75.128.0/22 1; +103.75.152.0/22 1; +103.76.60.0/22 1; +103.76.216.0/21 1; +103.76.224.0/22 1; +103.77.28.0/22 1; +103.77.132.0/22 1; +103.77.220.0/22 1; +103.78.196.0/22 1; +103.79.24.0/22 1; +103.79.36.0/22 1; +103.79.40.0/21 1; +103.79.80.0/22 1; +103.79.192.0/20 1; +103.79.208.0/21 1; +103.79.228.0/24 1; +103.80.176.0/21 1; +103.80.184.0/22 1; +103.81.96.0/22 1; +103.81.232.0/22 1; +103.82.68.0/22 1; +103.82.84.0/22 1; +103.82.224.0/22 1; +103.82.236.0/22 1; +103.83.44.0/22 1; +103.83.52.0/22 1; +103.83.120.0/22 1; +103.83.132.0/22 1; +103.83.180.0/22 1; +103.84.0.0/22 1; +103.84.48.0/22 1; +103.86.204.0/22 1; +103.86.208.0/21 1; +103.86.228.0/22 1; +103.86.252.0/22 1; +103.87.0.0/21 1; +103.87.96.0/22 1; +103.88.12.0/22 1; +103.88.20.0/22 1; +103.88.64.0/22 1; +103.88.96.0/21 1; +103.89.148.0/22 1; +103.89.172.0/22 1; +103.90.100.0/22 1; +103.90.173.0/24 1; +103.90.176.0/22 1; +103.90.188.0/22 1; +103.91.36.0/22 1; +103.91.40.0/22 1; +103.91.112.0/23 1; +103.91.176.0/22 1; +103.91.212.0/22 1; +103.92.52.0/22 1; +103.92.56.0/22 1; +103.92.124.0/22 1; +103.92.156.0/22 1; +103.93.180.0/22 1; +103.93.204.0/22 1; +103.94.12.0/22 1; +103.94.32.0/21 1; +103.94.40.0/22 1; +103.95.68.0/22 1; +103.95.92.0/22 1; +103.95.136.0/21 1; +103.95.224.0/22 1; +103.95.236.0/22 1; +103.95.240.0/22 1; +103.96.124.0/22 1; +103.97.116.0/22 1; +103.97.192.0/22 1; +103.98.40.0/22 1; +103.98.100.0/22 1; +103.98.127.0/24 1; +103.98.164.0/22 1; +103.98.248.0/23 1; +103.98.252.0/22 1; +103.99.132.0/22 1; +103.99.152.0/22 1; +103.100.0.0/22 1; +103.100.64.0/22 1; +103.101.8.0/22 1; +103.101.60.0/22 1; +103.101.126.0/23 1; +103.102.192.0/22 1; +103.102.200.0/22 1; +103.103.12.0/22 1; +103.103.16.0/22 1; +103.103.36.0/24 1; +103.104.64.0/22 1; +103.104.152.0/22 1; +103.106.44.0/22 1; +103.106.96.0/23 1; +103.106.120.0/22 1; +103.106.196.0/22 1; +103.106.200.0/21 1; +103.106.208.0/21 1; +103.107.44.0/22 1; +103.107.72.0/22 1; +103.107.164.0/22 1; +103.107.168.0/22 1; +103.107.216.0/21 1; +103.108.212.0/22 1; +103.110.92.0/22 1; +103.110.136.0/22 1; +103.110.204.0/22 1; +103.111.172.0/22 1; +103.112.108.0/22 1; +103.113.4.0/24 1; +103.113.144.0/22 1; +103.114.4.0/22 1; +103.114.148.0/22 1; +103.114.212.0/22 1; +103.115.120.0/22 1; +103.115.148.0/22 1; +103.116.120.0/22 1; +103.116.128.0/22 1; +103.116.224.0/22 1; +103.117.16.0/22 1; +103.118.52.0/22 1; +103.118.56.0/22 1; +103.119.28.0/22 1; +103.123.176.0/22 1; +103.125.164.0/22 1; +103.125.196.0/22 1; +103.125.236.0/22 1; +103.125.240.0/20 1; +103.126.0.0/22 1; +103.126.18.0/23 1; +103.131.152.0/22 1; +103.131.168.0/22 1; +103.132.60.0/22 1; +103.132.188.0/22 1; +103.135.160.0/24 1; +103.135.162.0/24 1; +103.135.193.0/24 1; +103.139.212.0/23 1; +103.142.154.0/23 1; +103.142.180.0/23 1; +103.143.228.0/23 1; +103.144.70.0/24 1; +103.145.42.0/23 1; +103.149.6.0/24 1; +103.149.242.0/24 1; +103.150.164.0/24 1; +103.150.216.0/23 1; +103.151.148.0/23 1; +103.152.152.0/23 1; +103.152.224.0/23 1; +103.155.76.0/23 1; +103.192.8.0/21 1; +103.192.16.0/21 1; +103.192.24.0/22 1; +103.192.48.0/22 1; +103.192.56.0/22 1; +103.192.84.0/22 1; +103.192.88.0/21 1; +103.192.96.0/20 1; +103.192.112.0/22 1; +103.192.136.0/22 1; +103.192.164.0/22 1; +103.192.208.0/22 1; +103.193.44.0/22 1; +103.193.160.0/22 1; +103.193.212.0/22 1; +103.193.216.0/21 1; +103.193.224.0/20 1; +103.195.152.0/22 1; +103.196.72.0/22 1; +103.196.88.0/21 1; +103.196.96.0/22 1; +103.196.168.0/22 1; +103.198.60.0/22 1; +103.198.196.0/22 1; +103.199.164.0/22 1; +103.199.196.0/22 1; +103.199.228.0/22 1; +103.200.68.0/22 1; +103.200.152.0/21 1; +103.200.160.0/20 1; +103.200.176.0/22 1; +103.200.184.0/21 1; +103.200.192.0/22 1; +103.200.220.0/22 1; +103.200.224.0/19 1; +103.201.0.0/18 1; +103.201.64.0/19 1; +103.201.96.0/20 1; +103.201.112.0/21 1; +103.201.120.0/22 1; +103.201.152.0/21 1; +103.201.160.0/19 1; +103.201.192.0/18 1; +103.202.116.0/22 1; +103.202.172.0/22 1; +103.202.252.0/22 1; +103.203.192.0/22 1; +103.204.88.0/22 1; +103.204.140.0/22 1; +103.204.144.0/22 1; +103.204.232.0/22 1; +103.205.40.0/22 1; +103.205.116.0/22 1; +103.205.162.0/24 1; +103.205.196.0/22 1; +103.205.200.0/22 1; +103.205.236.0/22 1; +103.205.248.0/22 1; +103.207.184.0/21 1; +103.207.204.0/22 1; +103.208.12.0/22 1; +103.208.16.0/22 1; +103.210.164.0/22 1; +103.210.184.0/22 1; +103.210.217.0/24 1; +103.210.218.0/23 1; +103.211.164.0/23 1; +103.211.166.0/24 1; +103.211.168.0/22 1; +103.212.0.0/21 1; +103.212.12.0/22 1; +103.212.100.0/22 1; +103.213.40.0/21 1; +103.213.48.0/20 1; +103.213.64.0/19 1; +103.213.136.0/21 1; +103.213.144.0/20 1; +103.213.160.0/19 1; +103.214.212.0/22 1; +103.215.32.0/22 1; +103.215.100.0/23 1; +103.216.40.0/22 1; +103.216.136.0/22 1; +103.216.244.0/22 1; +103.216.248.0/21 1; +103.217.168.0/22 1; +103.218.8.0/22 1; +103.218.28.0/22 1; +103.219.64.0/22 1; +103.219.184.0/22 1; +103.221.96.0/22 1; +103.221.144.0/20 1; +103.221.160.0/19 1; +103.221.192.0/20 1; +103.222.0.0/20 1; +103.222.16.0/22 1; +103.222.24.0/21 1; +103.222.36.0/22 1; +103.222.44.0/22 1; +103.222.48.0/20 1; +103.222.64.0/19 1; +103.222.96.0/20 1; +103.222.152.0/21 1; +103.222.160.0/22 1; +103.222.192.0/22 1; +103.222.200.0/21 1; +103.222.208.0/21 1; +103.222.244.0/22 1; +103.223.84.0/22 1; +103.223.128.0/22 1; +103.223.144.0/20 1; +103.223.160.0/19 1; +103.223.192.0/18 1; +103.224.40.0/21 1; +103.224.60.0/22 1; +103.224.220.0/22 1; +103.224.224.0/22 1; +103.226.56.0/22 1; +103.226.80.0/22 1; +103.226.180.0/22 1; +103.226.196.0/22 1; +103.227.48.0/22 1; +103.227.72.0/21 1; +103.227.80.0/22 1; +103.227.122.0/23 1; +103.227.132.0/22 1; +103.227.196.0/22 1; +103.227.204.0/23 1; +103.227.206.0/24 1; +103.228.12.0/22 1; +103.228.136.0/22 1; +103.228.204.0/22 1; +103.228.232.0/22 1; +103.229.136.0/22 1; +103.229.228.0/22 1; +103.229.236.0/24 1; +103.229.240.0/22 1; +103.230.0.0/22 1; +103.230.40.0/22 1; +103.230.96.0/22 1; +103.230.212.0/22 1; +103.231.64.0/21 1; +103.231.180.0/22 1; +103.233.52.0/22 1; +103.233.128.0/22 1; +103.233.136.0/22 1; +103.233.162.0/23 1; +103.234.20.0/22 1; +103.234.124.0/22 1; +103.234.180.0/22 1; +103.235.60.0/22 1; +103.235.80.0/21 1; +103.235.128.0/21 1; +103.235.140.0/22 1; +103.235.144.0/21 1; +103.235.200.0/22 1; +103.235.220.0/22 1; +103.235.224.0/19 1; +103.236.0.0/18 1; +103.236.64.0/19 1; +103.236.96.0/22 1; +103.236.117.0/24 1; +103.236.184.0/22 1; +103.236.244.0/22 1; +103.237.0.0/20 1; +103.237.88.0/22 1; +103.237.152.0/22 1; +103.237.248.0/21 1; +103.238.0.0/21 1; +103.238.20.0/22 1; +103.238.48.0/22 1; +103.238.56.0/22 1; +103.238.92.0/22 1; +103.238.96.0/22 1; +103.238.132.0/22 1; +103.238.141.0/24 1; +103.238.142.0/23 1; +103.238.144.0/22 1; +103.238.152.0/22 1; +103.238.162.0/23 1; +103.238.172.0/22 1; +103.238.176.0/22 1; +103.238.196.0/22 1; +103.238.204.0/22 1; +103.238.252.0/22 1; +103.239.68.0/22 1; +103.239.156.0/22 1; +103.239.180.0/22 1; +103.239.192.0/22 1; +103.240.16.0/22 1; +103.240.172.0/22 1; +103.240.244.0/22 1; +103.241.12.0/22 1; +103.241.96.0/22 1; +103.241.172.0/22 1; +103.242.64.0/23 1; +103.242.66.0/24 1; +103.242.160.0/22 1; +103.242.172.0/22 1; +103.242.200.0/22 1; +103.242.220.0/22 1; +103.242.240.0/22 1; +103.244.58.0/23 1; +103.244.60.0/22 1; +103.244.64.0/20 1; +103.244.80.0/21 1; +103.244.232.0/22 1; +103.244.252.0/22 1; +103.245.23.0/24 1; +103.245.60.0/22 1; +103.245.128.0/22 1; +103.246.12.0/22 1; +103.247.168.0/22 1; +103.247.176.0/22 1; +103.247.212.0/22 1; +103.248.224.0/21 1; +103.249.52.0/22 1; +103.249.128.0/22 1; +103.249.164.0/22 1; +103.249.168.0/22 1; +103.249.188.0/22 1; +103.249.244.0/22 1; +103.249.252.0/22 1; +103.250.224.0/22 1; +103.251.204.0/23 1; +103.252.36.0/22 1; +103.252.64.0/22 1; +103.253.4.0/22 1; +103.253.232.0/22 1; +103.254.64.0/21 1; +103.254.112.0/22 1; +103.254.176.0/22 1; +103.254.188.0/22 1; +103.255.68.0/22 1; +103.255.140.0/22 1; +103.255.184.0/22 1; +103.255.228.0/22 1; +104.28.66.56/31 1; +104.28.69.56/31 1; +104.28.83.28/31 1; +104.28.99.26/31 1; +104.28.101.26/31 1; +104.28.117.58/31 1; +104.28.120.58/31 1; +104.28.176.114/31 1; +104.28.176.116/30 1; +104.28.176.120/32 1; +104.28.208.147/32 1; +104.28.208.148/30 1; +104.28.208.152/31 1; +104.28.240.147/32 1; +104.28.240.148/30 1; +104.28.240.152/31 1; +104.237.80.0/21 1; +104.237.88.0/23 1; +104.237.90.0/24 1; +106.0.4.0/22 1; +106.2.0.0/19 1; +106.2.128.0/17 1; +106.3.16.0/20 1; +106.3.32.0/19 1; +106.3.64.0/20 1; +106.3.80.0/22 1; +106.3.96.0/19 1; +106.3.128.0/19 1; +106.3.164.0/22 1; +106.3.168.0/21 1; +106.3.176.0/20 1; +106.3.192.0/20 1; +106.3.216.0/21 1; +106.3.232.0/21 1; +106.3.240.0/20 1; +106.11.32.0/21 1; +106.11.40.0/23 1; +106.11.184.0/23 1; +106.11.192.0/23 1; +106.12.144.0/20 1; +106.12.160.0/19 1; +106.12.192.0/18 1; +106.13.0.0/17 1; +106.13.128.0/19 1; +106.37.0.0/16 1; +106.38.0.0/15 1; +106.48.0.0/21 1; +106.48.8.0/22 1; +106.48.24.0/21 1; +106.48.32.0/22 1; +106.48.40.0/21 1; +106.48.57.0/24 1; +106.48.60.0/22 1; +106.48.64.0/18 1; +106.48.128.0/17 1; +106.49.1.0/24 1; +106.49.2.0/23 1; +106.49.4.0/22 1; +106.49.8.0/21 1; +106.49.16.0/20 1; +106.49.32.0/19 1; +106.49.64.0/19 1; +106.49.96.0/24 1; +106.49.98.0/23 1; +106.49.100.0/22 1; +106.49.104.0/21 1; +106.49.112.0/20 1; +106.49.128.0/17 1; +106.50.0.0/16 1; +106.75.0.0/17 1; +106.120.0.0/15 1; +107.176.0.0/15 1; +109.71.4.0/24 1; +109.244.0.0/19 1; +110.34.40.0/21 1; +110.40.0.0/15 1; +110.42.128.0/17 1; +110.43.9.0/24 1; +110.43.10.0/23 1; +110.43.12.0/22 1; +110.43.16.0/20 1; +110.43.64.0/21 1; +110.43.72.0/22 1; +110.43.76.0/23 1; +110.43.80.0/20 1; +110.43.96.0/19 1; +110.43.160.0/19 1; +110.43.192.0/19 1; +110.43.224.0/20 1; +110.44.144.0/20 1; +110.48.0.0/16 1; +110.56.0.0/13 1; +110.76.132.0/22 1; +110.76.192.0/18 1; +110.77.0.0/17 1; +110.92.68.0/22 1; +110.94.0.0/15 1; +110.96.0.0/16 1; +110.113.0.0/16 1; +110.114.0.0/16 1; +110.172.192.0/18 1; +110.173.0.0/21 1; +110.173.32.0/20 1; +110.199.128.0/18 1; +110.221.0.0/16 1; +110.232.32.0/19 1; +111.13.0.0/16 1; +111.24.0.0/31 1; +111.67.192.0/20 1; +111.68.64.0/19 1; +111.92.252.0/22 1; +111.118.200.0/21 1; +111.132.0.0/16 1; +111.134.0.0/15 1; +111.138.0.0/15 1; +111.152.0.0/15 1; +111.154.0.0/16 1; +111.156.0.0/14 1; +111.186.128.0/20 1; +111.192.0.0/12 1; +111.221.28.0/24 1; +111.223.4.0/22 1; +111.223.240.0/22 1; +111.223.249.0/24 1; +111.223.250.0/23 1; +111.235.160.0/23 1; +111.235.162.0/24 1; +111.235.164.0/24 1; +111.235.166.0/23 1; +111.235.168.0/21 1; +111.235.176.0/20 1; +112.35.11.0/24 1; +112.35.12.0/22 1; +112.35.16.0/20 1; +112.35.32.0/19 1; +112.35.64.0/18 1; +112.35.128.0/17 1; +112.54.128.0/21 1; +112.54.216.0/22 1; +112.57.0.0/18 1; +112.125.0.0/16 1; +112.126.0.0/16 1; +112.128.0.0/14 1; +113.11.192.0/19 1; +113.21.233.0/24 1; +113.21.234.0/23 1; +113.21.236.0/22 1; +113.31.0.0/19 1; +113.31.48.0/20 1; +113.31.64.0/18 1; +113.31.128.0/17 1; +113.44.0.0/14 1; +113.48.0.0/14 1; +113.52.228.0/22 1; +113.59.224.0/22 1; +113.130.96.0/20 1; +113.130.112.0/21 1; +113.197.104.0/22 1; +113.208.96.0/19 1; +113.208.128.0/17 1; +113.209.0.0/16 1; +113.212.0.0/18 1; +113.212.100.0/22 1; +114.31.64.0/21 1; +114.54.0.0/16 1; +114.64.0.0/15 1; +114.66.66.0/23 1; +114.66.68.0/22 1; +114.66.80.0/20 1; +114.66.128.0/17 1; +114.67.128.0/17 1; +114.68.0.0/16 1; +114.110.0.0/20 1; +114.111.160.0/19 1; +114.112.4.0/22 1; +114.112.8.0/22 1; +114.112.32.0/19 1; +114.112.64.0/19 1; +114.112.96.0/20 1; +114.112.116.0/22 1; +114.112.120.0/21 1; +114.112.136.0/21 1; +114.112.144.0/20 1; +114.112.160.0/19 1; +114.112.192.0/19 1; +114.113.0.0/17 1; +114.113.128.0/21 1; +114.113.140.0/22 1; +114.113.144.0/20 1; +114.113.204.0/22 1; +114.113.220.0/22 1; +114.113.224.0/20 1; +114.115.0.0/16 1; +114.118.0.0/17 1; +114.119.204.0/22 1; +114.119.208.0/20 1; +114.119.224.0/19 1; +114.132.0.0/17 1; +114.141.80.0/21 1; +114.208.0.0/14 1; +114.240.0.0/12 1; +115.24.40.0/21 1; +115.24.48.0/20 1; +115.24.128.0/21 1; +115.25.0.0/17 1; +115.25.128.0/18 1; +115.25.192.0/20 1; +115.25.212.0/22 1; +115.25.216.0/21 1; +115.25.224.0/19 1; +115.26.16.0/20 1; +115.26.112.0/20 1; +115.26.208.0/20 1; +115.26.224.0/19 1; +115.27.0.0/16 1; +115.29.0.0/24 1; +115.32.0.0/14 1; +115.42.56.0/22 1; +115.47.0.0/16 1; +115.84.0.0/18 1; +115.84.192.0/19 1; +115.100.0.0/15 1; +115.102.0.0/19 1; +115.102.48.0/20 1; +115.102.64.0/18 1; +115.102.128.0/17 1; +115.103.0.0/17 1; +115.103.128.0/18 1; +115.103.192.0/19 1; +115.103.224.0/20 1; +115.103.240.0/21 1; +115.103.248.0/22 1; +115.104.0.0/16 1; +115.121.0.0/16 1; +115.122.0.0/15 1; +115.168.0.0/19 1; +115.168.32.0/24 1; +115.168.63.0/24 1; +115.168.64.0/24 1; +115.168.96.0/19 1; +115.168.128.0/18 1; +115.168.192.0/19 1; +115.168.224.0/20 1; +115.168.240.0/21 1; +115.168.248.0/22 1; +115.168.252.0/23 1; +115.169.14.0/23 1; +115.169.19.0/24 1; +115.169.23.0/24 1; +115.169.24.0/21 1; +115.169.32.0/19 1; +115.169.64.0/18 1; +115.169.128.0/17 1; +115.170.0.0/15 1; +115.180.0.0/16 1; +115.181.56.0/21 1; +115.181.112.0/20 1; +115.181.152.0/22 1; +115.181.156.0/23 1; +115.182.0.0/15 1; +115.187.0.0/20 1; +116.58.208.0/20 1; +116.60.0.0/15 1; +116.63.0.0/16 1; +116.68.136.0/21 1; +116.68.176.0/21 1; +116.69.0.0/16 1; +116.70.0.0/18 1; +116.79.0.0/16 1; +116.89.144.0/20 1; +116.90.80.0/20 1; +116.90.184.0/21 1; +116.128.0.0/17 1; +116.193.16.0/20 1; +116.196.8.0/22 1; +116.196.12.0/23 1; +116.196.64.0/18 1; +116.197.164.0/22 1; +116.197.180.0/23 1; +116.198.0.0/18 1; +116.199.152.0/21 1; +116.213.44.0/22 1; +116.213.64.0/18 1; +116.213.128.0/17 1; +116.215.0.0/16 1; +116.216.0.0/16 1; +116.218.0.0/21 1; +116.218.9.0/24 1; +116.218.10.0/23 1; +116.218.12.0/22 1; +116.218.16.0/20 1; +116.218.32.0/19 1; +116.218.64.0/18 1; +116.218.128.0/17 1; +116.242.0.0/15 1; +116.244.0.0/15 1; +116.251.76.0/24 1; +116.254.104.0/21 1; +117.48.0.0/17 1; +117.48.176.0/20 1; +117.50.0.0/16 1; +117.51.128.0/17 1; +117.53.48.0/20 1; +117.53.176.0/20 1; +117.58.64.0/18 1; +117.72.96.0/19 1; +117.72.128.0/18 1; +117.72.192.0/19 1; +117.72.224.0/20 1; +117.72.240.0/21 1; +117.72.248.0/22 1; +117.72.252.0/23 1; +117.72.254.0/24 1; +117.73.0.0/17 1; +117.73.128.0/18 1; +117.73.192.0/19 1; +117.73.224.0/20 1; +117.73.240.0/22 1; +117.73.248.0/23 1; +117.76.0.0/15 1; +117.78.0.0/18 1; +117.79.0.0/17 1; +117.79.128.0/18 1; +117.79.224.0/19 1; +117.100.0.0/15 1; +117.103.16.0/20 1; +117.103.128.0/20 1; +117.106.0.0/15 1; +117.112.0.0/13 1; +117.120.64.0/18 1; +117.121.0.0/17 1; +117.121.148.0/22 1; +117.121.152.0/21 1; +117.121.160.0/19 1; +117.122.128.0/17 1; +117.124.0.0/15 1; +117.127.0.0/16 1; +117.128.1.0/24 1; +117.128.2.0/23 1; +117.128.4.0/22 1; +117.128.8.0/21 1; +117.128.16.0/20 1; +117.128.32.0/19 1; +117.128.64.0/18 1; +117.128.128.0/17 1; +117.129.0.0/16 1; +117.130.0.0/16 1; +117.132.190.0/23 1; +117.132.192.0/22 1; +117.132.196.0/23 1; +117.132.198.0/24 1; +117.132.199.0/28 1; +117.133.0.0/16 1; +117.134.0.0/19 1; +117.134.32.0/20 1; +117.136.0.0/24 1; +117.136.38.0/24 1; +117.136.42.0/24 1; +117.136.128.0/23 1; +117.136.178.0/27 1; +117.136.178.48/28 1; +117.136.178.129/32 1; +117.136.178.248/29 1; +117.136.181.0/24 1; +117.136.182.0/23 1; +117.136.185.0/24 1; +117.136.187.0/24 1; +117.136.188.0/22 1; +117.136.192.0/23 1; +117.136.194.0/24 1; +117.136.235.0/29 1; +117.136.235.8/30 1; +117.142.48.0/22 1; +117.142.52.0/23 1; +118.26.0.0/19 1; +118.26.40.0/21 1; +118.26.48.0/20 1; +118.26.64.0/19 1; +118.26.121.0/24 1; +118.26.122.0/23 1; +118.26.124.0/22 1; +118.26.128.0/17 1; +118.30.28.0/22 1; +118.64.0.0/15 1; +118.66.0.0/16 1; +118.67.112.0/20 1; +118.84.0.0/24 1; +118.84.3.0/24 1; +118.84.4.0/22 1; +118.84.8.0/21 1; +118.84.16.0/20 1; +118.84.32.0/19 1; +118.84.64.0/18 1; +118.84.128.0/17 1; +118.85.0.0/18 1; +118.85.64.0/19 1; +118.85.96.0/20 1; +118.85.112.0/22 1; +118.85.116.0/27 1; +118.85.116.32/30 1; +118.85.117.252/30 1; +118.85.118.0/23 1; +118.85.120.0/21 1; +118.85.128.0/18 1; +118.85.192.0/19 1; +118.85.224.0/20 1; +118.85.240.0/21 1; +118.85.248.0/22 1; +118.85.252.0/23 1; +118.85.254.0/24 1; +118.85.255.0/31 1; +118.102.16.0/20 1; +118.103.172.0/22 1; +118.103.176.0/22 1; +118.126.128.0/17 1; +118.144.0.0/17 1; +118.144.128.0/19 1; +118.144.160.0/22 1; +118.144.164.0/24 1; +118.144.165.0/25 1; +118.144.166.0/23 1; +118.144.168.0/21 1; +118.144.176.0/20 1; +118.144.192.0/18 1; +118.145.0.0/16 1; +118.146.0.0/15 1; +118.184.120.0/23 1; +118.184.122.0/24 1; +118.186.0.0/15 1; +118.188.0.0/16 1; +118.191.192.0/23 1; +118.191.248.0/21 1; +118.192.0.0/16 1; +118.193.96.0/19 1; +118.194.32.0/19 1; +118.194.64.0/18 1; +118.194.128.0/18 1; +118.194.192.0/19 1; +118.194.232.0/21 1; +118.194.240.0/20 1; +118.195.0.0/17 1; +118.198.0.0/15 1; +118.204.0.0/16 1; +118.207.0.0/16 1; +118.224.2.0/23 1; +118.224.4.0/22 1; +118.224.8.0/21 1; +118.224.16.0/20 1; +118.224.32.0/19 1; +118.224.64.0/18 1; +118.224.128.0/17 1; +118.225.0.0/16 1; +118.226.0.0/15 1; +118.228.0.0/15 1; +118.244.0.0/14 1; +119.2.0.0/19 1; +119.3.160.0/19 1; +119.3.192.0/18 1; +119.10.0.0/17 1; +119.18.192.0/20 1; +119.18.208.0/21 1; +119.29.29.0/24 1; +119.31.192.0/19 1; +119.38.192.0/20 1; +119.38.219.106/31 1; +119.38.219.108/31 1; +119.40.0.0/18 1; +119.42.137.0/24 1; +119.42.138.0/23 1; +119.42.140.0/22 1; +119.57.0.0/16 1; +119.61.0.0/16 1; +119.75.208.0/20 1; +119.78.3.0/24 1; +119.78.6.0/23 1; +119.78.8.0/21 1; +119.78.16.0/20 1; +119.78.32.0/19 1; +119.78.64.0/18 1; +119.78.128.0/18 1; +119.78.192.0/20 1; +119.80.0.0/16 1; +119.88.0.0/17 1; +119.90.0.0/17 1; +119.90.128.0/19 1; +119.148.164.0/22 1; +119.148.168.0/21 1; +119.161.120.0/21 1; +119.161.128.0/21 1; +119.161.168.0/21 1; +119.161.176.0/20 1; +119.161.192.0/18 1; +119.232.64.0/18 1; +119.232.128.0/17 1; +119.253.0.0/16 1; +119.254.0.0/15 1; +120.44.0.0/18 1; +120.44.64.0/19 1; +120.44.96.0/24 1; +120.44.98.0/23 1; +120.44.100.0/22 1; +120.44.104.0/21 1; +120.44.112.0/21 1; +120.44.120.0/22 1; +120.44.126.0/23 1; +120.44.128.0/17 1; +120.45.0.0/16 1; +120.46.0.0/15 1; +120.48.0.0/15 1; +120.53.0.0/16 1; +120.64.0.0/16 1; +120.65.0.0/19 1; +120.65.64.0/20 1; +120.65.80.0/21 1; +120.65.96.0/19 1; +120.65.128.0/18 1; +120.65.192.0/19 1; +120.65.224.0/20 1; +120.65.240.0/21 1; +120.65.248.0/22 1; +120.65.252.0/23 1; +120.66.0.0/16 1; +120.67.0.0/17 1; +120.72.32.0/19 1; +120.72.128.0/17 1; +120.92.0.0/17 1; +120.92.192.0/19 1; +120.131.0.0/20 1; +120.131.64.0/18 1; +120.131.128.0/18 1; +120.131.192.0/21 1; +120.131.208.0/20 1; +120.131.224.0/19 1; +120.132.32.0/19 1; +120.132.64.0/19 1; +120.133.0.0/17 1; +120.133.128.0/18 1; +120.133.192.0/19 1; +120.133.224.0/21 1; +120.133.232.0/22 1; +120.134.0.0/16 1; +120.135.0.0/20 1; +120.135.64.0/18 1; +120.135.128.0/17 1; +120.136.16.0/21 1; +120.244.0.0/15 1; +120.246.0.0/17 1; +121.4.64.0/20 1; +121.4.112.0/20 1; +121.4.128.0/18 1; +121.4.224.0/20 1; +121.5.24.0/21 1; +121.5.32.0/20 1; +121.36.0.0/17 1; +121.37.64.0/18 1; +121.38.0.0/15 1; +121.46.204.0/22 1; +121.47.0.0/16 1; +121.52.160.0/19 1; +121.52.208.0/20 1; +121.58.144.0/20 1; +121.59.0.0/16 1; +121.69.0.0/16 1; +121.70.0.0/17 1; +121.70.128.0/18 1; +121.70.192.0/20 1; +121.70.208.0/21 1; +121.70.216.0/24 1; +121.70.218.0/23 1; +121.70.220.0/22 1; +121.70.224.0/19 1; +121.71.0.0/16 1; +121.79.128.0/19 1; +121.79.160.0/22 1; +121.89.0.0/16 1; +121.100.128.0/17 1; +121.101.208.0/20 1; +121.193.100.0/22 1; +121.193.104.0/21 1; +121.193.112.0/20 1; +121.194.0.0/16 1; +121.195.0.0/17 1; +121.195.128.0/19 1; +121.195.160.0/20 1; +121.195.176.0/21 1; +121.195.184.0/22 1; +121.195.188.0/23 1; +121.195.190.0/24 1; +122.9.0.0/19 1; +122.9.32.0/20 1; +122.10.132.0/23 1; +122.10.136.0/23 1; +122.10.216.0/22 1; +122.10.228.0/22 1; +122.10.232.0/21 1; +122.10.240.0/22 1; +122.11.32.0/19 1; +122.12.0.0/16 1; +122.14.0.0/17 1; +122.14.192.0/18 1; +122.48.0.0/20 1; +122.48.32.0/19 1; +122.48.64.0/20 1; +122.48.96.0/19 1; +122.48.160.0/20 1; +122.49.0.0/18 1; +122.70.0.0/15 1; +122.72.0.0/22 1; +122.72.16.0/24 1; +122.72.38.0/23 1; +122.72.112.0/22 1; +122.72.117.0/24 1; +122.72.118.0/23 1; +122.102.0.0/20 1; +122.102.80.0/20 1; +122.112.0.0/18 1; +122.112.64.0/19 1; +122.113.0.0/16 1; +122.115.0.0/18 1; +122.115.80.0/20 1; +122.115.96.0/19 1; +122.115.128.0/17 1; +122.119.0.0/16 1; +122.128.100.0/22 1; +122.200.40.0/21 1; +122.200.64.0/18 1; +122.201.48.0/20 1; +123.49.130.0/24 1; +123.49.136.0/22 1; +123.49.152.0/21 1; +123.56.0.0/15 1; +123.58.0.0/19 1; +123.58.224.0/19 1; +123.59.0.0/16 1; +123.62.0.0/16 1; +123.66.128.0/17 1; +123.94.0.0/23 1; +123.94.2.0/24 1; +123.94.4.0/24 1; +123.94.27.0/24 1; +123.94.28.0/22 1; +123.94.32.0/19 1; +123.94.64.0/18 1; +123.94.128.0/17 1; +123.99.128.0/18 1; +123.103.2.0/23 1; +123.103.4.0/22 1; +123.103.8.0/21 1; +123.103.16.0/21 1; +123.103.24.0/22 1; +123.103.28.0/23 1; +123.103.30.0/24 1; +123.103.32.0/19 1; +123.103.64.0/18 1; +123.108.133.0/24 1; +123.108.208.0/20 1; +123.112.0.0/12 1; +123.176.60.0/22 1; +123.176.80.0/20 1; +123.196.112.0/20 1; +123.197.8.0/21 1; +123.197.16.0/20 1; +123.197.32.0/19 1; +123.197.64.0/18 1; +123.199.128.0/17 1; +123.242.192.0/21 1; +123.253.52.0/22 1; +123.254.96.0/21 1; +124.14.64.0/18 1; +124.14.224.0/19 1; +124.16.12.0/22 1; +124.16.16.0/20 1; +124.16.32.0/19 1; +124.16.64.0/18 1; +124.16.128.0/20 1; +124.16.144.0/22 1; +124.16.148.0/23 1; +124.16.151.0/24 1; +124.16.152.0/21 1; +124.16.160.0/22 1; +124.16.164.0/24 1; +124.16.168.0/23 1; +124.16.172.0/24 1; +124.16.174.0/23 1; +124.16.181.0/24 1; +124.16.182.0/23 1; +124.16.184.0/21 1; +124.16.192.0/18 1; +124.17.0.0/16 1; +124.20.0.0/15 1; +124.40.112.0/20 1; +124.42.0.0/17 1; +124.64.0.0/15 1; +124.68.128.0/17 1; +124.69.0.0/16 1; +124.70.0.0/17 1; +124.108.8.0/21 1; +124.108.40.0/21 1; +124.126.0.0/15 1; +124.192.0.0/15 1; +124.196.0.0/22 1; +124.196.22.0/23 1; +124.196.24.0/24 1; +124.200.0.0/15 1; +124.202.0.0/16 1; +124.203.0.0/17 1; +124.203.228.0/22 1; +124.203.232.0/21 1; +124.203.240.0/20 1; +124.204.0.0/14 1; +124.220.0.0/14 1; +124.243.192.0/18 1; +124.248.0.0/18 1; +124.250.0.0/15 1; +124.254.0.0/18 1; +125.33.0.0/16 1; +125.34.0.0/16 1; +125.35.0.0/17 1; +125.61.128.0/19 1; +125.96.0.0/15 1; +125.98.0.0/17 1; +125.208.0.0/19 1; +125.208.32.0/20 1; +125.208.49.0/24 1; +125.208.50.0/23 1; +125.208.52.0/22 1; +125.208.56.0/21 1; +125.254.128.0/18 1; +128.108.8.0/21 1; +128.108.16.0/20 1; +128.108.32.0/19 1; +128.108.64.0/18 1; +128.108.128.0/17 1; +131.253.12.0/29 1; +131.253.12.80/28 1; +138.32.244.0/24 1; +139.5.92.0/22 1; +139.5.128.0/22 1; +139.9.112.0/21 1; +139.9.128.0/20 1; +139.159.0.0/19 1; +139.159.36.0/22 1; +139.159.40.0/22 1; +139.159.47.254/31 1; +139.159.48.0/28 1; +139.159.48.16/30 1; +139.159.48.56/30 1; +139.159.48.60/31 1; +139.159.48.64/29 1; +139.159.48.72/30 1; +139.159.48.76/31 1; +139.159.48.80/29 1; +139.159.48.88/30 1; +139.159.48.92/32 1; +139.159.48.96/27 1; +139.159.48.152/30 1; +139.159.51.172/30 1; +139.159.51.176/28 1; +139.159.51.192/28 1; +139.159.51.208/29 1; +139.159.51.220/30 1; +139.159.51.224/28 1; +139.159.52.0/22 1; +139.159.56.0/21 1; +139.159.64.0/19 1; +139.159.116.0/22 1; +139.159.120.0/21 1; +139.176.0.0/16 1; +139.197.0.0/20 1; +139.198.0.0/18 1; +139.198.66.0/23 1; +139.198.68.0/22 1; +139.198.72.0/21 1; +139.198.80.0/20 1; +139.198.96.0/21 1; +139.198.104.0/22 1; +139.198.252.0/24 1; +139.198.255.0/24 1; +139.217.0.0/17 1; +139.219.0.0/17 1; +139.220.204.0/22 1; +139.220.208.0/20 1; +139.220.224.0/19 1; +140.143.110.0/23 1; +140.143.112.0/20 1; +140.143.128.0/17 1; +140.179.0.0/16 1; +140.210.0.0/17 1; +140.242.223.0/24 1; +140.242.224.0/24 1; +144.48.156.0/22 1; +144.48.208.0/22 1; +146.196.116.0/22 1; +147.243.13.32/27 1; +147.243.13.64/27 1; +147.243.14.32/27 1; +149.41.0.0/16 1; +150.222.64.0/24 1; +150.222.88.0/23 1; +150.242.0.0/21 1; +150.242.44.0/22 1; +150.242.48.0/21 1; +150.242.76.0/22 1; +150.242.92.0/22 1; +150.242.120.0/22 1; +150.242.156.0/22 1; +150.242.160.0/21 1; +150.242.168.0/22 1; +150.242.184.0/21 1; +150.242.192.0/22 1; +150.242.248.0/22 1; +152.136.0.0/16 1; +154.8.136.0/21 1; +154.8.144.0/20 1; +154.8.160.0/19 1; +154.8.192.0/19 1; +154.8.224.0/20 1; +156.107.160.0/24 1; +156.107.178.0/23 1; +156.107.180.0/23 1; +156.154.62.0/24 1; +157.119.132.0/22 1; +157.119.136.0/21 1; +157.119.144.0/20 1; +157.119.160.0/21 1; +157.119.172.0/22 1; +157.119.192.0/22 1; +157.119.252.0/22 1; +159.75.0.0/16 1; +159.226.0.0/18 1; +159.226.64.0/22 1; +159.226.68.0/24 1; +159.226.70.0/24 1; +159.226.76.0/22 1; +159.226.80.0/20 1; +159.226.96.0/22 1; +159.226.100.0/24 1; +159.226.101.0/25 1; +159.226.102.0/24 1; +159.226.107.0/24 1; +159.226.110.0/23 1; +159.226.112.0/21 1; +159.226.131.0/24 1; +159.226.136.0/23 1; +159.226.138.0/24 1; +159.226.144.0/24 1; +159.226.160.0/23 1; +159.226.164.0/24 1; +159.226.168.0/21 1; +159.226.176.0/20 1; +159.226.192.0/20 1; +159.226.208.0/25 1; +159.226.209.0/24 1; +159.226.210.0/23 1; +159.226.212.0/22 1; +159.226.216.0/22 1; +159.226.220.0/23 1; +159.226.223.0/24 1; +159.226.224.0/21 1; +159.226.232.0/22 1; +159.226.236.0/23 1; +159.226.239.0/24 1; +159.226.240.0/21 1; +159.226.248.0/24 1; +159.226.250.0/23 1; +159.226.252.0/23 1; +159.226.254.0/24 1; +159.226.255.0/27 1; +159.226.255.88/29 1; +159.226.255.120/29 1; +159.226.255.128/25 1; +160.19.212.0/22 1; +160.20.16.0/22 1; +160.20.48.0/22 1; +160.83.111.0/24 1; +160.202.216.0/21 1; +161.207.0.0/16 1; +162.14.0.0/16 1; +162.105.0.0/16 1; +163.53.8.0/22 1; +163.53.36.0/22 1; +163.53.40.0/22 1; +163.53.60.0/22 1; +163.53.96.0/19 1; +163.53.132.0/22 1; +163.53.136.0/22 1; +163.53.172.0/22 1; +163.53.240.0/22 1; +166.111.0.0/16 1; +167.189.0.0/16 1; +167.220.244.0/23 1; +168.160.0.0/16 1; +168.230.0.0/24 1; +170.179.0.0/16 1; +171.84.0.0/14 1; +173.44.26.0/23 1; +173.44.28.0/23 1; +175.25.0.0/16 1; +175.52.0.0/14 1; +175.56.0.0/14 1; +175.66.0.0/15 1; +175.68.0.0/14 1; +175.72.0.0/13 1; +175.80.0.0/13 1; +175.88.48.0/20 1; +175.88.64.0/18 1; +175.88.128.0/17 1; +175.89.0.0/16 1; +175.90.0.0/15 1; +175.92.0.0/14 1; +175.158.96.0/22 1; +175.176.156.0/22 1; +180.76.16.0/20 1; +180.76.32.0/19 1; +180.76.64.0/18 1; +180.76.128.0/17 1; +180.77.0.0/16 1; +180.78.0.0/15 1; +180.86.0.0/16 1; +180.88.96.0/19 1; +180.88.128.0/18 1; +180.89.64.0/19 1; +180.94.56.0/21 1; +180.94.96.0/20 1; +180.94.120.0/21 1; +180.148.224.0/19 1; +180.149.128.0/19 1; +180.150.176.0/20 1; +180.178.112.0/21 1; +180.184.0.0/14 1; +180.188.0.0/17 1; +180.202.0.0/15 1; +180.210.233.0/24 1; +180.210.236.0/22 1; +180.223.129.0/24 1; +180.223.130.0/23 1; +180.223.132.0/22 1; +180.223.136.0/21 1; +180.223.144.0/20 1; +180.223.160.0/19 1; +180.223.192.0/18 1; +180.233.144.0/22 1; +182.16.144.0/21 1; +182.18.0.0/17 1; +182.48.96.0/19 1; +182.50.0.0/22 1; +182.50.8.0/21 1; +182.50.112.0/20 1; +182.61.152.0/21 1; +182.61.196.0/22 1; +182.61.200.0/21 1; +182.61.208.0/20 1; +182.61.224.0/19 1; +182.92.0.0/17 1; +182.92.128.0/21 1; +182.92.137.0/24 1; +182.92.138.0/23 1; +182.92.140.0/22 1; +182.92.144.0/20 1; +182.92.160.0/19 1; +182.92.192.0/18 1; +182.160.64.0/19 1; +182.174.0.0/15 1; +182.237.24.0/21 1; +182.254.249.0/24 1; +182.254.250.0/24 1; +183.78.160.0/21 1; +183.78.180.0/22 1; +183.81.180.0/22 1; +183.84.0.0/15 1; +183.91.144.0/20 1; +183.172.0.0/15 1; +183.174.0.0/16 1; +183.175.112.0/20 1; +183.175.160.0/19 1; +183.175.192.0/18 1; +183.182.11.0/24 1; +183.182.18.0/23 1; +183.182.20.0/23 1; +183.182.22.0/24 1; +183.241.0.0/16 1; +183.242.0.0/15 1; +183.244.0.0/16 1; +185.10.106.0/23 1; +185.95.100.0/22 1; +185.242.244.0/22 1; +192.11.236.0/24 1; +192.23.191.0/24 1; +192.137.31.0/24 1; +192.140.128.0/21 1; +192.140.192.0/20 1; +192.144.128.0/17 1; +192.171.224.0/21 1; +199.7.72.0/24 1; +199.244.144.0/24 1; +202.4.128.0/19 1; +202.4.252.0/22 1; +202.5.208.0/21 1; +202.10.64.0/21 1; +202.10.112.0/20 1; +202.12.19.0/24 1; +202.14.235.0/24 1; +202.14.236.0/23 1; +202.14.238.0/24 1; +202.20.126.0/24 1; +202.21.48.0/20 1; +202.27.12.0/24 1; +202.27.14.0/24 1; +202.36.226.0/24 1; +202.38.8.0/21 1; +202.38.96.0/19 1; +202.38.128.0/24 1; +202.38.129.0/25 1; +202.38.129.128/26 1; +202.38.129.192/27 1; +202.38.129.224/28 1; +202.38.138.0/24 1; +202.38.140.0/26 1; +202.38.140.64/27 1; +202.38.140.96/28 1; +202.38.140.120/29 1; +202.38.140.128/25 1; +202.38.141.0/24 1; +202.38.146.0/23 1; +202.38.152.0/23 1; +202.38.160.0/23 1; +202.38.176.0/23 1; +202.38.184.0/21 1; +202.41.142.0/24 1; +202.41.196.0/22 1; +202.41.240.0/20 1; +202.43.76.0/22 1; +202.43.144.0/20 1; +202.44.97.0/24 1; +202.46.224.0/20 1; +202.47.96.0/20 1; +202.52.34.0/24 1; +202.52.143.0/24 1; +202.53.140.0/24 1; +202.53.143.0/24 1; +202.59.1.0/24 1; +202.59.213.0/24 1; +202.59.240.0/24 1; +202.60.112.0/20 1; +202.61.68.0/22 1; +202.61.123.0/24 1; +202.61.127.0/24 1; +202.63.80.0/24 1; +202.63.253.0/24 1; +202.69.4.0/23 1; +202.71.32.0/20 1; +202.74.36.0/24 1; +202.74.42.0/24 1; +202.74.52.0/24 1; +202.80.192.0/22 1; +202.84.0.0/22 1; +202.84.10.0/23 1; +202.84.16.0/23 1; +202.84.22.0/24 1; +202.85.208.0/20 1; +202.89.119.0/24 1; +202.89.232.0/21 1; +202.90.37.0/24 1; +202.90.193.0/24 1; +202.90.205.0/24 1; +202.90.224.0/21 1; +202.91.128.0/22 1; +202.91.176.0/20 1; +202.93.252.0/22 1; +202.94.0.0/21 1; +202.94.8.0/24 1; +202.94.10.0/23 1; +202.94.12.0/22 1; +202.94.16.0/20 1; +202.94.74.0/24 1; +202.94.81.0/24 1; +202.95.0.0/22 1; +202.95.4.0/23 1; +202.96.0.0/18 1; +202.97.0.0/22 1; +202.97.4.0/26 1; +202.97.4.76/30 1; +202.97.4.80/28 1; +202.97.4.96/27 1; +202.97.4.128/25 1; +202.97.5.0/24 1; +202.97.6.0/23 1; +202.97.8.0/22 1; +202.97.12.0/24 1; +202.97.13.0/26 1; +202.97.13.64/27 1; +202.97.13.96/28 1; +202.97.13.112/29 1; +202.97.13.120/31 1; +202.97.13.132/30 1; +202.97.13.136/31 1; +202.97.13.143/32 1; +202.97.13.144/30 1; +202.97.13.148/31 1; +202.97.13.160/31 1; +202.97.13.172/30 1; +202.97.13.176/28 1; +202.97.13.192/26 1; +202.97.14.0/26 1; +202.97.14.64/28 1; +202.97.14.80/30 1; +202.97.14.84/31 1; +202.97.14.130/31 1; +202.97.14.132/30 1; +202.97.14.136/29 1; +202.97.14.144/30 1; +202.97.14.172/30 1; +202.97.14.176/28 1; +202.97.14.192/26 1; +202.97.15.40/29 1; +202.97.15.48/30 1; +202.97.15.52/31 1; +202.97.15.60/30 1; +202.97.15.64/27 1; +202.97.15.96/29 1; +202.97.15.104/30 1; +202.97.15.108/31 1; +202.97.15.150/31 1; +202.97.16.60/30 1; +202.97.16.80/28 1; +202.97.16.96/29 1; +202.97.16.144/31 1; +202.97.16.160/31 1; +202.97.16.168/29 1; +202.97.16.176/28 1; +202.97.16.192/27 1; +202.97.16.224/29 1; +202.97.16.232/31 1; +202.97.17.64/26 1; +202.97.18.4/30 1; +202.97.18.8/29 1; +202.97.18.16/29 1; +202.97.18.24/30 1; +202.97.19.94/31 1; +202.97.19.168/31 1; +202.97.19.190/31 1; +202.97.19.192/31 1; +202.97.20.128/25 1; +202.97.21.20/31 1; +202.97.22.144/28 1; +202.97.22.160/28 1; +202.97.22.176/30 1; +202.97.22.194/31 1; +202.97.22.196/30 1; +202.97.22.200/29 1; +202.97.22.208/28 1; +202.97.22.224/27 1; +202.97.23.96/31 1; +202.97.25.0/29 1; +202.97.25.8/31 1; +202.97.25.12/31 1; +202.97.25.80/31 1; +202.97.25.232/31 1; +202.97.26.80/29 1; +202.97.26.88/31 1; +202.97.26.92/31 1; +202.97.26.248/29 1; +202.97.27.128/27 1; +202.97.27.160/28 1; +202.97.27.192/31 1; +202.97.28.112/30 1; +202.97.28.116/31 1; +202.97.28.120/29 1; +202.97.28.138/31 1; +202.97.28.140/30 1; +202.97.28.184/30 1; +202.97.28.188/31 1; +202.97.28.192/31 1; +202.97.28.200/31 1; +202.97.28.208/30 1; +202.97.28.212/31 1; +202.97.28.216/29 1; +202.97.28.224/28 1; +202.97.29.186/31 1; +202.97.29.188/30 1; +202.97.29.192/27 1; +202.97.29.224/28 1; +202.97.30.20/30 1; +202.97.30.24/29 1; +202.97.30.32/27 1; +202.97.30.64/26 1; +202.97.30.128/29 1; +202.97.30.136/31 1; +202.97.30.176/28 1; +202.97.30.192/28 1; +202.97.30.208/29 1; +202.97.30.216/31 1; +202.97.30.224/31 1; +202.97.31.4/31 1; +202.97.31.8/29 1; +202.97.31.16/28 1; +202.97.31.32/30 1; +202.97.31.44/30 1; +202.97.31.48/28 1; +202.97.31.70/31 1; +202.97.31.72/29 1; +202.97.31.80/28 1; +202.97.31.96/27 1; +202.97.31.128/25 1; +202.97.32.8/30 1; +202.97.32.60/30 1; +202.97.32.88/30 1; +202.97.32.98/32 1; +202.97.32.104/29 1; +202.97.32.112/30 1; +202.97.32.122/31 1; +202.97.32.124/31 1; +202.97.32.132/30 1; +202.97.33.24/29 1; +202.97.33.32/31 1; +202.97.33.92/31 1; +202.97.33.96/31 1; +202.97.34.0/30 1; +202.97.34.30/31 1; +202.97.34.32/31 1; +202.97.34.36/31 1; +202.97.34.39/32 1; +202.97.34.60/31 1; +202.97.34.72/29 1; +202.97.34.80/28 1; +202.97.34.104/31 1; +202.97.34.116/30 1; +202.97.34.120/31 1; +202.97.34.132/31 1; +202.97.34.140/31 1; +202.97.34.144/31 1; +202.97.34.148/31 1; +202.97.34.156/30 1; +202.97.34.160/31 1; +202.97.34.164/31 1; +202.97.34.176/31 1; +202.97.34.184/31 1; +202.97.34.188/31 1; +202.97.34.210/31 1; +202.97.34.218/31 1; +202.97.35.2/31 1; +202.97.35.152/31 1; +202.97.35.166/31 1; +202.97.35.168/30 1; +202.97.35.172/31 1; +202.97.36.24/32 1; +202.97.36.28/31 1; +202.97.36.42/31 1; +202.97.36.44/30 1; +202.97.36.48/30 1; +202.97.36.52/31 1; +202.97.36.112/31 1; +202.97.36.136/31 1; +202.97.36.158/31 1; +202.97.36.160/30 1; +202.97.36.164/31 1; +202.97.36.168/31 1; +202.97.36.198/31 1; +202.97.36.214/31 1; +202.97.36.218/31 1; +202.97.37.0/27 1; +202.97.37.92/31 1; +202.97.37.160/31 1; +202.97.37.164/31 1; +202.97.37.192/31 1; +202.97.37.196/31 1; +202.97.37.228/31 1; +202.97.37.236/31 1; +202.97.37.240/31 1; +202.97.38.4/31 1; +202.97.38.28/31 1; +202.97.38.32/31 1; +202.97.38.60/31 1; +202.97.38.68/31 1; +202.97.38.72/31 1; +202.97.38.76/31 1; +202.97.38.84/31 1; +202.97.38.88/31 1; +202.97.38.96/31 1; +202.97.38.105/32 1; +202.97.38.108/31 1; +202.97.38.112/31 1; +202.97.38.120/31 1; +202.97.38.124/31 1; +202.97.38.128/31 1; +202.97.38.132/31 1; +202.97.38.140/30 1; +202.97.38.144/30 1; +202.97.38.148/31 1; +202.97.38.152/31 1; +202.97.38.156/31 1; +202.97.38.162/31 1; +202.97.38.168/31 1; +202.97.38.184/31 1; +202.97.38.188/31 1; +202.97.38.200/30 1; +202.97.38.204/31 1; +202.97.38.208/31 1; +202.97.38.212/31 1; +202.97.39.224/29 1; +202.97.39.232/31 1; +202.97.39.252/31 1; +202.97.40.0/31 1; +202.97.40.8/31 1; +202.97.40.24/31 1; +202.97.40.28/31 1; +202.97.40.44/31 1; +202.97.40.48/31 1; +202.97.40.112/31 1; +202.97.40.232/31 1; +202.97.40.236/31 1; +202.97.41.14/31 1; +202.97.41.28/31 1; +202.97.41.48/31 1; +202.97.41.76/31 1; +202.97.41.88/31 1; +202.97.41.106/31 1; +202.97.41.150/31 1; +202.97.41.168/31 1; +202.97.41.176/31 1; +202.97.41.180/31 1; +202.97.41.184/31 1; +202.97.42.28/31 1; +202.97.42.32/31 1; +202.97.42.36/31 1; +202.97.42.44/31 1; +202.97.42.92/31 1; +202.97.42.96/31 1; +202.97.42.108/30 1; +202.97.42.124/31 1; +202.97.42.128/31 1; +202.97.42.144/31 1; +202.97.42.148/31 1; +202.97.42.190/31 1; +202.97.43.92/31 1; +202.97.43.104/31 1; +202.97.43.112/31 1; +202.97.44.160/31 1; +202.97.44.164/31 1; +202.97.46.192/31 1; +202.97.46.200/31 1; +202.97.46.224/31 1; +202.97.47.32/28 1; +202.97.47.48/31 1; +202.97.47.68/31 1; +202.97.47.72/31 1; +202.97.47.76/31 1; +202.97.47.80/31 1; +202.97.47.132/31 1; +202.97.47.136/31 1; +202.97.47.252/31 1; +202.97.48.4/31 1; +202.97.48.28/31 1; +202.97.48.36/30 1; +202.97.48.40/31 1; +202.97.48.68/31 1; +202.97.48.80/31 1; +202.97.48.84/30 1; +202.97.48.88/29 1; +202.97.48.96/29 1; +202.97.48.104/31 1; +202.97.48.164/31 1; +202.97.48.168/31 1; +202.97.48.172/31 1; +202.97.48.204/30 1; +202.97.48.208/28 1; +202.97.48.240/29 1; +202.97.48.248/30 1; +202.97.49.180/31 1; +202.97.49.184/31 1; +202.97.49.188/31 1; +202.97.51.30/31 1; +202.97.51.34/31 1; +202.97.51.42/31 1; +202.97.51.58/31 1; +202.97.51.62/31 1; +202.97.51.64/28 1; +202.97.51.80/29 1; +202.97.51.94/31 1; +202.97.51.122/31 1; +202.97.51.124/30 1; +202.97.51.128/28 1; +202.97.51.144/29 1; +202.97.51.182/31 1; +202.97.51.194/31 1; +202.97.52.0/23 1; +202.97.54.8/29 1; +202.97.54.16/31 1; +202.97.54.20/31 1; +202.97.54.24/31 1; +202.97.54.28/30 1; +202.97.54.32/31 1; +202.97.54.44/31 1; +202.97.54.64/31 1; +202.97.54.68/31 1; +202.97.54.104/31 1; +202.97.54.108/31 1; +202.97.54.112/31 1; +202.97.54.116/31 1; +202.97.54.120/30 1; +202.97.54.124/31 1; +202.97.54.184/31 1; +202.97.54.204/31 1; +202.97.54.240/28 1; +202.97.55.0/28 1; +202.97.55.16/30 1; +202.97.55.20/31 1; +202.97.55.28/31 1; +202.97.55.36/31 1; +202.97.55.88/31 1; +202.97.55.148/31 1; +202.97.55.226/31 1; +202.97.55.240/31 1; +202.97.55.244/30 1; +202.97.56.32/31 1; +202.97.56.48/31 1; +202.97.56.76/31 1; +202.97.56.80/31 1; +202.97.56.84/31 1; +202.97.56.88/31 1; +202.97.56.92/31 1; +202.97.56.128/31 1; +202.97.56.152/31 1; +202.97.56.160/30 1; +202.97.56.164/31 1; +202.97.56.208/31 1; +202.97.56.232/31 1; +202.97.56.236/31 1; +202.97.57.0/24 1; +202.97.58.11/32 1; +202.97.58.18/31 1; +202.97.58.20/31 1; +202.97.58.26/31 1; +202.97.58.28/31 1; +202.97.58.140/31 1; +202.97.58.152/31 1; +202.97.59.44/31 1; +202.97.59.84/31 1; +202.97.59.87/32 1; +202.97.59.95/32 1; +202.97.60.64/31 1; +202.97.60.68/31 1; +202.97.60.76/31 1; +202.97.60.80/31 1; +202.97.60.128/31 1; +202.97.60.180/30 1; +202.97.61.32/30 1; +202.97.61.36/31 1; +202.97.61.48/30 1; +202.97.61.52/31 1; +202.97.63.84/31 1; +202.97.63.120/30 1; +202.97.63.124/31 1; +202.97.63.148/31 1; +202.97.63.168/29 1; +202.97.63.176/29 1; +202.97.65.0/27 1; +202.97.65.32/28 1; +202.97.65.48/31 1; +202.97.65.56/31 1; +202.97.65.60/31 1; +202.97.65.68/31 1; +202.97.65.71/32 1; +202.97.65.96/30 1; +202.97.65.100/31 1; +202.97.65.104/31 1; +202.97.65.108/31 1; +202.97.66.36/31 1; +202.97.66.64/31 1; +202.97.66.68/31 1; +202.97.66.76/31 1; +202.97.67.16/31 1; +202.97.67.20/30 1; +202.97.67.24/31 1; +202.97.68.124/31 1; +202.97.68.160/31 1; +202.97.69.160/31 1; +202.97.69.164/31 1; +202.97.69.168/31 1; +202.97.69.172/31 1; +202.97.70.210/31 1; +202.97.71.104/31 1; +202.97.71.112/31 1; +202.97.71.138/31 1; +202.97.71.140/31 1; +202.97.71.150/31 1; +202.97.71.152/29 1; +202.97.71.164/31 1; +202.97.71.200/31 1; +202.97.71.216/31 1; +202.97.72.102/31 1; +202.97.72.118/31 1; +202.97.72.192/27 1; +202.97.72.224/28 1; +202.97.72.240/30 1; +202.97.72.244/31 1; +202.97.72.248/31 1; +202.97.72.252/31 1; +202.97.73.16/30 1; +202.97.73.20/31 1; +202.97.73.24/29 1; +202.97.73.32/31 1; +202.97.73.52/31 1; +202.97.73.127/32 1; +202.97.73.210/31 1; +202.97.73.218/31 1; +202.97.73.228/30 1; +202.97.73.232/30 1; +202.97.73.236/31 1; +202.97.74.172/31 1; +202.97.75.112/31 1; +202.97.75.184/29 1; +202.97.75.192/29 1; +202.97.75.200/31 1; +202.97.76.32/31 1; +202.97.76.164/31 1; +202.97.77.60/31 1; +202.97.78.166/31 1; +202.97.78.168/30 1; +202.97.78.172/32 1; +202.97.78.204/31 1; +202.97.78.222/31 1; +202.97.78.244/30 1; +202.97.78.254/31 1; +202.97.79.8/30 1; +202.97.79.12/31 1; +202.97.79.32/31 1; +202.97.79.36/31 1; +202.97.79.40/31 1; +202.97.79.44/31 1; +202.97.79.56/31 1; +202.97.79.60/31 1; +202.97.79.70/31 1; +202.97.79.74/31 1; +202.97.79.90/31 1; +202.97.79.94/31 1; +202.97.79.98/31 1; +202.97.79.102/31 1; +202.97.79.126/31 1; +202.97.79.134/31 1; +202.97.79.142/31 1; +202.97.79.152/31 1; +202.97.79.192/31 1; +202.97.79.196/31 1; +202.97.79.204/31 1; +202.97.79.208/31 1; +202.97.79.216/31 1; +202.97.79.220/31 1; +202.97.79.228/31 1; +202.97.79.232/31 1; +202.97.79.244/31 1; +202.97.79.252/31 1; +202.97.80.0/31 1; +202.97.80.12/31 1; +202.97.80.20/31 1; +202.97.80.24/31 1; +202.97.80.52/31 1; +202.97.80.56/29 1; +202.97.80.64/26 1; +202.97.80.128/29 1; +202.97.80.136/30 1; +202.97.80.140/31 1; +202.97.80.144/29 1; +202.97.80.152/31 1; +202.97.80.156/30 1; +202.97.80.160/31 1; +202.97.80.168/30 1; +202.97.80.172/31 1; +202.97.80.192/31 1; +202.97.80.208/31 1; +202.97.80.212/31 1; +202.97.80.216/31 1; +202.97.80.220/31 1; +202.97.80.224/31 1; +202.97.80.228/30 1; +202.97.80.232/29 1; +202.97.80.240/28 1; +202.97.81.0/29 1; +202.97.81.8/31 1; +202.97.81.12/31 1; +202.97.81.40/31 1; +202.97.81.48/31 1; +202.97.81.88/31 1; +202.97.81.96/31 1; +202.97.81.112/31 1; +202.97.81.136/29 1; +202.97.81.144/28 1; +202.97.81.160/28 1; +202.97.81.184/31 1; +202.97.81.188/31 1; +202.97.81.236/30 1; +202.97.82.44/30 1; +202.97.82.178/31 1; +202.97.82.208/30 1; +202.97.82.212/31 1; +202.97.82.216/31 1; +202.97.83.90/31 1; +202.97.83.94/31 1; +202.97.83.106/31 1; +202.97.84.8/29 1; +202.97.84.202/31 1; +202.97.84.204/30 1; +202.97.84.208/28 1; +202.97.84.224/27 1; +202.97.85.0/24 1; +202.97.88.224/27 1; +202.97.89.192/30 1; +202.97.90.0/28 1; +202.97.90.16/29 1; +202.97.90.24/31 1; +202.97.90.36/30 1; +202.97.90.48/30 1; +202.97.90.60/31 1; +202.97.90.64/29 1; +202.97.90.72/30 1; +202.97.90.76/31 1; +202.97.90.112/29 1; +202.97.90.122/31 1; +202.97.90.124/30 1; +202.97.90.128/28 1; +202.97.90.144/29 1; +202.97.90.152/30 1; +202.97.90.172/30 1; +202.97.90.176/30 1; +202.97.90.182/31 1; +202.97.90.184/30 1; +202.97.90.190/31 1; +202.97.90.192/29 1; +202.97.90.200/30 1; +202.97.90.208/28 1; +202.97.90.224/27 1; +202.97.91.112/31 1; +202.97.91.120/30 1; +202.97.91.126/31 1; +202.97.92.44/30 1; +202.97.92.104/31 1; +202.97.93.0/31 1; +202.97.93.18/31 1; +202.97.93.20/30 1; +202.97.93.24/29 1; +202.97.93.32/27 1; +202.97.93.64/26 1; +202.97.93.128/25 1; +202.97.94.0/26 1; +202.97.94.64/30 1; +202.97.94.152/29 1; +202.97.94.160/27 1; +202.97.94.192/26 1; +202.97.95.0/30 1; +202.97.95.4/31 1; +202.97.95.26/31 1; +202.97.95.28/31 1; +202.97.95.54/31 1; +202.97.95.226/31 1; +202.97.95.228/30 1; +202.97.95.232/29 1; +202.97.95.240/28 1; +202.99.0.0/18 1; +202.106.0.0/16 1; +202.108.0.0/16 1; +202.112.0.0/21 1; +202.112.8.0/23 1; +202.112.10.0/24 1; +202.112.32.0/22 1; +202.112.36.0/23 1; +202.112.38.0/25 1; +202.112.38.128/26 1; +202.112.38.192/29 1; +202.112.38.200/30 1; +202.112.38.224/31 1; +202.112.38.244/30 1; +202.112.39.0/24 1; +202.112.40.0/21 1; +202.112.48.0/22 1; +202.112.52.0/24 1; +202.112.53.0/28 1; +202.112.53.16/30 1; +202.112.53.48/30 1; +202.112.53.72/30 1; +202.112.53.192/30 1; +202.112.53.224/30 1; +202.112.54.0/23 1; +202.112.56.0/21 1; +202.112.64.0/18 1; +202.112.128.0/17 1; +202.113.240.0/23 1; +202.116.248.0/21 1; +202.121.200.0/21 1; +202.122.32.0/21 1; +202.122.128.0/24 1; +202.123.96.0/20 1; +202.123.116.0/22 1; +202.123.120.0/22 1; +202.125.109.0/24 1; +202.127.40.0/21 1; +202.127.48.0/20 1; +202.127.112.0/20 1; +202.127.147.0/24 1; +202.127.154.0/24 1; +202.127.159.0/24 1; +202.127.160.0/21 1; +202.127.192.0/23 1; +202.127.208.0/23 1; +202.127.216.0/21 1; +202.127.224.0/21 1; +202.127.232.0/23 1; +202.127.234.0/24 1; +202.127.243.0/24 1; +202.127.244.0/24 1; +202.127.251.64/26 1; +202.127.253.192/26 1; +202.127.254.0/23 1; +202.129.208.0/24 1; +202.130.0.0/19 1; +202.130.39.0/24 1; +202.130.224.0/20 1; +202.130.240.0/21 1; +202.131.55.0/24 1; +202.131.56.0/24 1; +202.136.254.0/23 1; +202.142.16.0/20 1; +202.146.184.0/23 1; +202.146.186.0/24 1; +202.148.96.0/19 1; +202.149.224.0/19 1; +202.152.176.0/20 1; +202.160.176.0/20 1; +202.165.96.0/22 1; +202.165.176.0/20 1; +202.165.208.0/20 1; +202.168.80.0/22 1; +202.168.128.0/21 1; +202.173.8.0/21 1; +202.173.112.0/22 1; +202.179.240.0/20 1; +202.181.28.0/22 1; +202.189.0.0/18 1; +202.189.80.0/20 1; +202.198.230.0/23 1; +202.199.20.0/22 1; +202.199.120.0/21 1; +202.199.188.0/22 1; +202.199.194.0/23 1; +202.199.198.0/23 1; +202.200.143.0/24 1; +202.204.0.0/16 1; +202.205.0.0/19 1; +202.205.32.0/20 1; +202.205.64.0/18 1; +202.205.128.0/17 1; +202.206.234.0/23 1; +202.207.116.0/22 1; +203.15.232.0/23 1; +203.16.16.0/21 1; +203.26.161.0/24 1; +203.34.4.0/24 1; +203.34.21.0/24 1; +203.34.27.0/24 1; +203.34.39.0/24 1; +203.34.54.0/24 1; +203.34.67.0/24 1; +203.34.69.0/24 1; +203.34.76.0/24 1; +203.34.106.0/24 1; +203.34.113.0/24 1; +203.34.147.0/24 1; +203.34.150.0/24 1; +203.34.161.0/24 1; +203.34.162.0/24 1; +203.34.187.0/24 1; +203.34.232.0/24 1; +203.34.240.0/24 1; +203.34.242.0/24 1; +203.34.245.0/24 1; +203.34.251.0/24 1; +203.65.240.0/22 1; +203.78.156.0/22 1; +203.81.16.0/20 1; +203.81.244.0/22 1; +203.82.116.0/22 1; +203.82.120.0/21 1; +203.82.224.0/20 1; +203.83.56.0/21 1; +203.86.32.0/19 1; +203.86.64.0/19 1; +203.89.100.0/22 1; +203.90.0.0/22 1; +203.91.120.0/21 1; +203.92.160.0/19 1; +203.93.0.0/19 1; +203.93.113.0/25 1; +203.93.114.0/24 1; +203.93.115.128/25 1; +203.93.117.0/24 1; +203.93.118.0/23 1; +203.93.120.0/21 1; +203.93.176.0/23 1; +203.93.178.64/26 1; +203.93.178.128/25 1; +203.93.179.0/25 1; +203.93.179.160/27 1; +203.93.179.192/26 1; +203.93.180.0/23 1; +203.93.182.0/25 1; +203.93.188.128/25 1; +203.93.190.0/24 1; +203.93.194.0/24 1; +203.93.201.0/24 1; +203.93.202.0/24 1; +203.93.205.0/24 1; +203.95.96.0/19 1; +203.95.200.0/22 1; +203.99.16.0/22 1; +203.99.22.0/23 1; +203.99.24.0/22 1; +203.99.28.0/24 1; +203.99.30.0/23 1; +203.100.80.0/20 1; +203.100.192.0/20 1; +203.107.2.0/23 1; +203.114.80.0/20 1; +203.114.244.0/24 1; +203.114.246.0/23 1; +203.118.248.0/24 1; +203.118.250.0/23 1; +203.119.24.0/22 1; +203.119.28.0/23 1; +203.119.30.0/24 1; +203.119.32.0/24 1; +203.119.35.0/24 1; +203.119.80.0/22 1; +203.119.85.0/24 1; +203.119.113.0/24 1; +203.128.32.0/19 1; +203.128.128.0/24 1; +203.130.32.0/20 1; +203.130.49.0/24 1; +203.130.50.0/23 1; +203.130.52.0/22 1; +203.130.56.0/21 1; +203.134.240.0/21 1; +203.135.160.0/20 1; +203.142.219.0/24 1; +203.148.0.0/20 1; +203.148.16.0/22 1; +203.148.20.0/23 1; +203.148.22.0/24 1; +203.148.24.0/21 1; +203.148.32.0/19 1; +203.148.64.0/20 1; +203.158.16.0/21 1; +203.161.180.0/24 1; +203.163.105.0/24 1; +203.163.107.0/26 1; +203.163.107.128/25 1; +203.163.108.0/23 1; +203.163.110.0/24 1; +203.174.96.0/20 1; +203.187.160.0/19 1; +203.191.5.0/24 1; +203.191.133.0/24 1; +203.192.0.0/19 1; +203.196.0.0/22 1; +203.196.4.0/23 1; +203.196.6.0/24 1; +203.201.182.0/24 1; +203.207.64.0/19 1; +203.207.108.0/22 1; +203.207.112.0/20 1; +203.207.128.0/17 1; +203.208.0.0/20 1; +203.212.0.0/20 1; +203.212.82.0/23 1; +203.212.84.0/22 1; +203.212.88.0/21 1; +203.215.146.0/24 1; +203.223.0.0/20 1; +204.74.96.0/24 1; +206.219.50.0/23 1; +206.219.52.0/23 1; +210.2.0.0/23 1; +210.2.2.0/24 1; +210.2.4.0/22 1; +210.2.8.0/21 1; +210.2.24.0/21 1; +210.5.17.0/24 1; +210.5.25.0/24 1; +210.5.56.0/30 1; +210.12.0.0/19 1; +210.12.32.0/20 1; +210.12.48.0/23 1; +210.12.51.0/24 1; +210.12.52.0/22 1; +210.12.56.0/21 1; +210.12.64.0/18 1; +210.12.128.0/17 1; +210.13.0.0/18 1; +210.13.128.0/19 1; +210.13.160.0/22 1; +210.13.165.0/24 1; +210.13.166.0/23 1; +210.13.168.0/21 1; +210.13.176.0/20 1; +210.13.240.0/20 1; +210.14.112.0/20 1; +210.14.128.0/19 1; +210.14.160.0/24 1; +210.14.163.0/24 1; +210.14.164.0/22 1; +210.14.168.0/23 1; +210.14.182.0/23 1; +210.15.128.0/18 1; +210.25.0.0/17 1; +210.25.128.0/18 1; +210.25.192.0/19 1; +210.25.224.0/20 1; +210.25.240.0/21 1; +210.25.248.0/22 1; +210.26.40.0/21 1; +210.26.65.0/24 1; +210.26.66.0/23 1; +210.27.120.0/21 1; +210.27.157.0/24 1; +210.27.217.0/24 1; +210.27.218.0/23 1; +210.28.94.0/24 1; +210.30.22.0/23 1; +210.30.24.0/21 1; +210.31.0.0/18 1; +210.31.64.0/19 1; +210.31.160.0/20 1; +210.32.93.0/24 1; +210.32.94.0/23 1; +210.32.110.0/23 1; +210.32.224.0/19 1; +210.33.143.0/24 1; +210.33.192.0/19 1; +210.33.224.0/20 1; +210.33.240.0/21 1; +210.34.220.0/22 1; +210.34.228.0/22 1; +210.35.84.0/22 1; +210.35.120.0/22 1; +210.35.156.0/22 1; +210.37.136.0/23 1; +210.37.140.0/22 1; +210.37.160.0/22 1; +210.37.166.0/23 1; +210.37.170.0/23 1; +210.37.182.0/23 1; +210.37.190.0/23 1; +210.37.192.0/22 1; +210.37.202.0/23 1; +210.37.208.0/23 1; +210.37.218.0/23 1; +210.37.224.0/22 1; +210.38.8.0/21 1; +210.38.16.0/21 1; +210.39.64.0/21 1; +210.39.108.0/22 1; +210.40.249.0/24 1; +210.40.250.0/23 1; +210.41.24.0/21 1; +210.44.96.0/20 1; +210.46.60.0/22 1; +210.46.160.0/21 1; +210.46.200.0/21 1; +210.46.212.0/22 1; +210.47.102.0/23 1; +210.47.156.0/22 1; +210.51.0.0/20 1; +210.51.16.0/22 1; +210.51.65.0/24 1; +210.51.66.0/23 1; +210.51.68.0/22 1; +210.51.72.0/21 1; +210.51.80.0/21 1; +210.51.95.0/24 1; +210.51.96.0/20 1; +210.51.112.0/21 1; +210.51.120.0/24 1; +210.51.141.0/24 1; +210.51.142.0/23 1; +210.51.144.0/21 1; +210.51.152.0/22 1; +210.51.156.0/24 1; +210.51.160.0/19 1; +210.51.250.128/27 1; +210.52.0.80/28 1; +210.52.3.0/24 1; +210.52.4.0/24 1; +210.52.5.16/28 1; +210.52.5.32/27 1; +210.52.5.64/26 1; +210.52.5.128/25 1; +210.52.6.0/24 1; +210.52.10.0/25 1; +210.52.11.160/28 1; +210.52.11.176/29 1; +210.52.14.0/25 1; +210.52.14.128/27 1; +210.52.14.160/28 1; +210.52.17.0/24 1; +210.52.18.128/26 1; +210.52.21.0/24 1; +210.52.22.0/24 1; +210.52.23.0/26 1; +210.52.24.0/25 1; +210.52.25.0/24 1; +210.52.40.0/26 1; +210.52.40.192/27 1; +210.52.42.0/25 1; +210.52.47.0/24 1; +210.52.48.0/23 1; +210.52.50.0/24 1; +210.52.56.128/25 1; +210.52.60.0/24 1; +210.52.109.0/24 1; +210.52.128.0/28 1; +210.52.128.16/31 1; +210.52.128.28/30 1; +210.52.128.32/27 1; +210.52.128.64/30 1; +210.52.128.80/30 1; +210.52.128.84/31 1; +210.52.128.92/30 1; +210.52.128.96/27 1; +210.52.128.128/25 1; +210.52.130.0/23 1; +210.52.132.0/22 1; +210.52.136.0/22 1; +210.52.140.0/23 1; +210.52.142.0/24 1; +210.52.143.0/25 1; +210.52.146.0/23 1; +210.52.148.0/22 1; +210.52.152.0/22 1; +210.52.156.0/23 1; +210.52.166.0/24 1; +210.52.180.0/23 1; +210.52.188.0/23 1; +210.53.11.0/24 1; +210.53.12.0/22 1; +210.53.65.0/24 1; +210.53.67.0/24 1; +210.53.68.0/22 1; +210.53.114.0/24 1; +210.53.116.0/22 1; +210.53.120.0/22 1; +210.53.124.0/24 1; +210.53.126.0/23 1; +210.53.129.0/24 1; +210.53.130.0/24 1; +210.53.131.254/31 1; +210.53.132.0/22 1; +210.53.136.0/21 1; +210.53.144.0/20 1; +210.53.160.0/19 1; +210.53.196.0/22 1; +210.53.208.0/20 1; +210.53.224.0/19 1; +210.56.192.0/19 1; +210.72.10.0/23 1; +210.72.12.0/23 1; +210.72.14.128/25 1; +210.72.15.0/24 1; +210.72.17.0/24 1; +210.72.18.0/24 1; +210.72.20.0/23 1; +210.72.23.0/24 1; +210.72.24.0/21 1; +210.72.32.0/19 1; +210.72.84.0/23 1; +210.72.86.0/24 1; +210.72.87.0/25 1; +210.72.87.128/26 1; +210.72.96.0/19 1; +210.72.152.0/22 1; +210.72.160.0/19 1; +210.72.192.0/18 1; +210.73.0.0/20 1; +210.73.40.0/22 1; +210.73.46.0/23 1; +210.73.52.0/22 1; +210.73.56.0/21 1; +210.73.64.0/18 1; +210.73.160.0/19 1; +210.73.208.0/20 1; +210.73.224.0/19 1; +210.74.0.0/19 1; +210.74.34.0/23 1; +210.74.36.0/23 1; +210.74.38.0/24 1; +210.74.40.0/21 1; +210.74.64.0/23 1; +210.74.96.0/19 1; +210.74.160.0/19 1; +210.74.192.0/19 1; +210.75.96.0/19 1; +210.75.160.0/19 1; +210.75.192.0/19 1; +210.75.224.0/21 1; +210.75.240.0/21 1; +210.75.250.0/23 1; +210.76.0.0/19 1; +210.76.96.0/19 1; +210.76.192.0/18 1; +210.77.0.0/18 1; +210.77.128.0/19 1; +210.77.176.0/20 1; +210.77.192.0/18 1; +210.78.10.0/24 1; +210.78.28.0/23 1; +210.78.32.0/19 1; +210.78.96.0/19 1; +210.78.128.0/17 1; +210.79.224.0/19 1; +210.82.0.0/17 1; +210.82.179.0/24 1; +210.82.180.0/23 1; +210.82.191.0/24 1; +210.82.194.32/27 1; +210.82.194.64/26 1; +210.82.194.128/25 1; +210.82.206.0/24 1; +210.82.214.0/24 1; +210.82.216.0/21 1; +210.82.251.0/24 1; +210.192.96.0/21 1; +210.192.112.0/22 1; +210.192.120.0/21 1; +211.64.118.0/23 1; +211.64.228.0/22 1; +211.64.238.0/23 1; +211.65.238.0/23 1; +211.66.40.0/21 1; +211.66.205.0/24 1; +211.66.212.0/22 1; +211.68.0.0/18 1; +211.68.64.0/19 1; +211.68.96.0/20 1; +211.68.120.0/21 1; +211.70.82.0/23 1; +211.70.84.0/22 1; +211.70.88.0/21 1; +211.70.244.0/22 1; +211.71.0.0/17 1; +211.71.128.0/18 1; +211.71.192.0/19 1; +211.71.224.0/21 1; +211.71.240.0/20 1; +211.80.11.0/24 1; +211.80.12.0/22 1; +211.80.28.0/22 1; +211.82.30.0/23 1; +211.82.64.0/18 1; +211.82.189.0/24 1; +211.82.190.0/23 1; +211.88.0.0/15 1; +211.93.168.0/22 1; +211.93.182.0/23 1; +211.93.184.0/21 1; +211.93.192.0/18 1; +211.94.0.0/17 1; +211.94.128.0/18 1; +211.98.0.0/21 1; +211.98.8.0/22 1; +211.98.24.0/24 1; +211.98.26.0/23 1; +211.98.28.0/24 1; +211.98.30.0/24 1; +211.98.32.0/24 1; +211.98.48.64/26 1; +211.98.48.128/25 1; +211.98.55.0/24 1; +211.98.56.0/22 1; +211.98.60.0/23 1; +211.98.64.0/24 1; +211.98.70.64/27 1; +211.98.70.96/28 1; +211.98.70.216/30 1; +211.98.70.222/32 1; +211.98.71.112/28 1; +211.98.71.128/26 1; +211.98.71.192/27 1; +211.98.76.0/26 1; +211.98.76.64/27 1; +211.98.76.128/26 1; +211.98.76.192/27 1; +211.98.77.0/24 1; +211.98.78.0/23 1; +211.98.80.0/25 1; +211.98.80.160/27 1; +211.98.80.192/26 1; +211.98.96.0/24 1; +211.98.98.0/23 1; +211.98.119.0/24 1; +211.98.120.0/24 1; +211.98.128.32/28 1; +211.98.128.64/29 1; +211.98.128.84/30 1; +211.98.128.96/27 1; +211.98.132.0/24 1; +211.98.134.0/24 1; +211.98.140.0/25 1; +211.98.143.0/24 1; +211.98.160.0/24 1; +211.98.165.0/24 1; +211.98.168.0/25 1; +211.98.169.32/27 1; +211.98.169.64/26 1; +211.98.169.160/27 1; +211.98.170.16/28 1; +211.98.170.32/27 1; +211.98.170.80/28 1; +211.98.170.112/28 1; +211.98.170.144/28 1; +211.98.170.160/27 1; +211.98.170.208/28 1; +211.98.170.224/28 1; +211.98.170.240/29 1; +211.98.171.8/29 1; +211.98.171.56/29 1; +211.98.171.72/29 1; +211.98.171.88/29 1; +211.98.171.96/27 1; +211.98.171.128/27 1; +211.98.171.168/29 1; +211.98.171.184/29 1; +211.98.171.192/28 1; +211.98.171.216/29 1; +211.98.171.232/29 1; +211.98.216.0/24 1; +211.98.219.0/24 1; +211.98.220.0/23 1; +211.98.222.0/24 1; +211.98.224.88/29 1; +211.98.224.96/27 1; +211.98.224.128/26 1; +211.98.224.192/28 1; +211.98.224.208/29 1; +211.98.225.16/28 1; +211.98.225.32/28 1; +211.98.225.104/29 1; +211.98.225.112/28 1; +211.98.225.128/25 1; +211.98.228.0/24 1; +211.98.236.0/24 1; +211.98.239.24/29 1; +211.98.239.32/27 1; +211.98.239.64/27 1; +211.98.239.96/29 1; +211.98.239.120/29 1; +211.98.239.148/30 1; +211.98.239.152/29 1; +211.98.239.160/27 1; +211.98.239.192/26 1; +211.98.243.64/26 1; +211.98.243.128/25 1; +211.98.245.64/26 1; +211.98.245.128/25 1; +211.98.246.0/24 1; +211.99.0.0/18 1; +211.99.64.0/19 1; +211.99.128.0/17 1; +211.100.0.0/17 1; +211.100.192.0/18 1; +211.101.0.0/16 1; +211.102.32.0/24 1; +211.102.192.0/19 1; +211.102.225.236/30 1; +211.102.225.240/28 1; +211.102.226.0/23 1; +211.102.228.0/22 1; +211.102.232.0/21 1; +211.102.240.0/20 1; +211.103.128.0/18 1; +211.103.192.0/19 1; +211.103.224.0/20 1; +211.103.240.0/21 1; +211.103.248.0/22 1; +211.103.252.0/23 1; +211.103.254.0/24 1; +211.136.0.0/29 1; +211.136.0.72/29 1; +211.136.0.80/28 1; +211.136.0.96/27 1; +211.136.0.128/26 1; +211.136.0.192/28 1; +211.136.0.208/29 1; +211.136.3.0/24 1; +211.136.4.0/22 1; +211.136.8.0/23 1; +211.136.10.0/25 1; +211.136.10.128/26 1; +211.136.12.0/23 1; +211.136.14.0/24 1; +211.136.16.0/23 1; +211.136.24.0/21 1; +211.136.32.0/19 1; +211.136.64.0/19 1; +211.144.0.0/18 1; +211.144.128.0/19 1; +211.144.176.0/20 1; +211.144.224.0/19 1; +211.145.0.0/16 1; +211.146.0.0/16 1; +211.147.0.0/18 1; +211.147.96.0/19 1; +211.147.128.0/19 1; +211.147.192.0/19 1; +211.149.0.0/19 1; +211.149.96.0/19 1; +211.150.0.0/15 1; +211.152.0.0/19 1; +211.152.96.0/19 1; +211.152.192.0/18 1; +211.153.0.0/16 1; +211.154.0.0/19 1; +211.154.32.0/20 1; +211.154.50.128/25 1; +211.154.51.0/24 1; +211.154.96.0/19 1; +211.154.160.0/20 1; +211.154.192.0/18 1; +211.155.32.0/19 1; +211.155.67.0/24 1; +211.155.68.0/24 1; +211.155.72.0/21 1; +211.155.80.0/20 1; +211.155.97.0/24 1; +211.155.98.0/23 1; +211.155.100.0/22 1; +211.155.104.0/21 1; +211.155.112.0/23 1; +211.155.128.0/18 1; +211.155.240.0/20 1; +211.156.64.0/20 1; +211.156.96.0/24 1; +211.156.99.0/24 1; +211.156.100.0/22 1; +211.156.104.0/23 1; +211.156.107.0/24 1; +211.156.128.0/19 1; +211.156.160.0/20 1; +211.156.192.0/19 1; +211.157.0.0/20 1; +211.157.20.0/22 1; +211.157.24.0/21 1; +211.157.32.0/19 1; +211.157.64.0/18 1; +211.157.128.0/17 1; +211.159.80.0/20 1; +211.159.142.0/23 1; +211.159.144.0/20 1; +211.159.160.0/20 1; +211.159.176.0/22 1; +211.159.180.0/23 1; +211.159.190.0/23 1; +211.159.198.0/23 1; +211.160.0.0/17 1; +211.160.128.0/19 1; +211.160.192.0/18 1; +211.161.0.0/20 1; +211.161.32.0/20 1; +211.162.232.0/24 1; +211.163.0.0/16 1; +211.164.0.0/20 1; +211.164.16.0/22 1; +211.164.20.0/23 1; +211.164.24.0/22 1; +211.164.28.0/23 1; +211.164.32.0/23 1; +211.164.36.0/23 1; +211.164.42.0/23 1; +211.164.44.0/22 1; +211.164.48.0/22 1; +211.164.52.0/23 1; +211.164.58.0/23 1; +211.164.60.0/22 1; +211.164.64.0/21 1; +211.164.72.0/22 1; +211.164.78.0/23 1; +211.164.80.0/20 1; +211.164.100.0/22 1; +211.164.104.0/21 1; +211.164.112.0/20 1; +211.164.128.0/20 1; +211.164.144.0/21 1; +211.164.156.0/22 1; +211.164.160.0/19 1; +211.164.192.0/22 1; +211.164.200.0/21 1; +211.164.208.0/20 1; +211.164.224.0/19 1; +211.165.0.0/24 1; +211.165.3.0/24 1; +211.165.4.0/22 1; +211.165.8.0/21 1; +211.165.16.0/22 1; +211.165.24.0/21 1; +211.165.32.0/19 1; +211.165.66.0/23 1; +211.165.68.0/22 1; +211.165.72.0/21 1; +211.165.80.0/20 1; +211.165.96.0/19 1; +211.165.130.0/23 1; +211.165.136.0/21 1; +211.165.144.0/21 1; +211.165.152.0/22 1; +211.165.156.0/23 1; +211.165.162.0/23 1; +211.165.164.0/22 1; +211.165.168.0/21 1; +211.165.176.0/20 1; +211.165.192.0/24 1; +211.165.194.0/23 1; +211.165.196.0/22 1; +211.165.200.0/23 1; +211.165.204.0/22 1; +211.165.208.0/20 1; +211.165.224.0/19 1; +211.166.0.0/17 1; +211.166.128.0/19 1; +211.166.160.0/21 1; +211.166.168.0/22 1; +211.166.172.0/23 1; +211.166.178.0/23 1; +211.166.180.0/22 1; +211.166.184.0/21 1; +211.166.192.0/18 1; +211.167.32.0/19 1; +211.167.64.0/19 1; +211.167.160.0/19 1; +211.167.224.0/19 1; +218.30.1.0/24 1; +218.30.2.0/23 1; +218.30.25.0/24 1; +218.30.26.0/23 1; +218.30.28.0/23 1; +218.30.64.0/23 1; +218.30.86.0/23 1; +218.30.92.0/22 1; +218.30.96.0/19 1; +218.30.133.0/24 1; +218.30.134.0/24 1; +218.30.136.0/24 1; +218.30.140.24/29 1; +218.30.140.32/27 1; +218.30.140.64/26 1; +218.30.140.128/25 1; +218.30.141.0/24 1; +218.30.142.0/23 1; +218.30.144.0/23 1; +218.30.147.0/24 1; +218.30.148.0/22 1; +218.30.152.0/22 1; +218.30.156.0/23 1; +218.30.159.0/24 1; +218.30.161.0/24 1; +218.30.162.0/23 1; +218.30.164.0/24 1; +218.30.166.0/24 1; +218.30.169.0/24 1; +218.30.171.0/24 1; +218.30.174.0/24 1; +218.30.176.0/23 1; +218.30.179.0/24 1; +218.30.180.0/22 1; +218.30.184.0/22 1; +218.30.188.0/24 1; +218.30.190.0/23 1; +218.30.192.0/20 1; +218.30.208.0/21 1; +218.30.216.0/22 1; +218.30.220.0/23 1; +218.30.223.0/24 1; +218.30.224.0/20 1; +218.30.240.0/21 1; +218.30.248.0/23 1; +218.30.251.0/24 1; +218.30.252.0/24 1; +218.30.254.0/24 1; +218.96.255.0/24 1; +218.97.128.0/19 1; +218.97.160.0/21 1; +218.97.172.0/22 1; +218.97.176.0/22 1; +218.97.188.0/22 1; +218.97.240.0/20 1; +218.98.224.0/19 1; +218.99.0.0/16 1; +218.105.0.0/20 1; +218.106.160.0/19 1; +218.106.240.0/20 1; +218.107.64.0/18 1; +218.107.128.0/18 1; +218.200.243.0/24 1; +218.200.244.0/23 1; +218.200.248.0/22 1; +218.205.128.0/18 1; +218.205.192.0/19 1; +218.206.64.0/19 1; +218.206.176.0/22 1; +218.206.190.0/23 1; +218.207.224.0/24 1; +218.207.235.0/24 1; +218.207.236.0/22 1; +218.207.240.0/20 1; +218.240.0.0/15 1; +218.243.0.0/20 1; +218.243.32.0/19 1; +218.243.64.0/18 1; +218.243.128.0/17 1; +218.244.32.0/19 1; +218.244.64.0/18 1; +218.244.160.0/19 1; +218.244.208.0/20 1; +218.244.224.0/19 1; +218.245.0.0/18 1; +218.245.76.0/22 1; +218.245.80.0/20 1; +218.245.96.0/19 1; +218.245.128.0/17 1; +218.246.0.0/17 1; +218.246.129.0/24 1; +218.246.130.0/23 1; +218.246.132.0/23 1; +218.246.134.0/24 1; +218.246.139.0/24 1; +218.246.140.0/22 1; +218.246.144.0/20 1; +218.246.224.0/19 1; +218.247.0.0/19 1; +218.247.96.0/19 1; +218.247.128.0/17 1; +218.249.0.0/16 1; +219.72.0.0/18 1; +219.72.64.0/24 1; +219.72.66.0/23 1; +219.72.68.0/22 1; +219.72.72.0/21 1; +219.72.80.0/20 1; +219.72.96.0/21 1; +219.72.112.0/20 1; +219.72.128.0/20 1; +219.72.146.0/23 1; +219.72.148.0/22 1; +219.72.152.0/21 1; +219.72.160.0/19 1; +219.72.192.0/21 1; +219.72.202.16/28 1; +219.72.202.32/27 1; +219.72.202.64/27 1; +219.72.202.176/28 1; +219.72.203.0/27 1; +219.72.203.64/26 1; +219.72.204.0/22 1; +219.72.208.0/20 1; +219.72.240.0/20 1; +219.83.192.0/18 1; +219.90.68.0/22 1; +219.90.72.0/21 1; +219.141.128.0/17 1; +219.142.0.0/15 1; +219.158.0.0/22 1; +219.158.4.0/24 1; +219.158.5.0/26 1; +219.158.5.64/29 1; +219.158.5.76/30 1; +219.158.5.80/28 1; +219.158.5.96/29 1; +219.158.5.104/30 1; +219.158.5.108/31 1; +219.158.5.116/30 1; +219.158.5.120/29 1; +219.158.5.128/25 1; +219.158.6.0/24 1; +219.158.7.0/25 1; +219.158.7.128/27 1; +219.158.7.160/28 1; +219.158.7.176/29 1; +219.158.7.184/31 1; +219.158.7.188/31 1; +219.158.7.208/31 1; +219.158.7.212/31 1; +219.158.7.216/30 1; +219.158.7.220/31 1; +219.158.7.224/31 1; +219.158.7.228/31 1; +219.158.7.236/30 1; +219.158.7.240/30 1; +219.158.7.244/31 1; +219.158.7.248/31 1; +219.158.7.252/30 1; +219.158.8.0/26 1; +219.158.8.64/28 1; +219.158.8.80/31 1; +219.158.8.84/31 1; +219.158.8.92/30 1; +219.158.8.108/31 1; +219.158.8.124/30 1; +219.158.8.128/27 1; +219.158.8.160/28 1; +219.158.8.176/29 1; +219.158.8.184/31 1; +219.158.8.204/31 1; +219.158.8.208/31 1; +219.158.8.212/31 1; +219.158.8.220/31 1; +219.158.8.232/30 1; +219.158.8.236/31 1; +219.158.8.240/31 1; +219.158.9.0/31 1; +219.158.9.4/31 1; +219.158.9.8/31 1; +219.158.9.12/31 1; +219.158.9.16/30 1; +219.158.9.24/31 1; +219.158.9.88/30 1; +219.158.9.100/30 1; +219.158.9.104/31 1; +219.158.9.108/31 1; +219.158.9.160/29 1; +219.158.9.168/30 1; +219.158.9.172/31 1; +219.158.9.176/31 1; +219.158.9.184/29 1; +219.158.9.196/30 1; +219.158.9.200/31 1; +219.158.9.204/31 1; +219.158.10.4/31 1; +219.158.10.8/30 1; +219.158.10.16/30 1; +219.158.10.24/30 1; +219.158.10.156/30 1; +219.158.10.184/31 1; +219.158.10.188/30 1; +219.158.10.192/30 1; +219.158.10.200/30 1; +219.158.10.220/30 1; +219.158.10.224/29 1; +219.158.10.232/30 1; +219.158.10.252/31 1; +219.158.11.4/31 1; +219.158.11.52/30 1; +219.158.11.56/29 1; +219.158.11.64/26 1; +219.158.11.128/29 1; +219.158.11.136/30 1; +219.158.11.140/31 1; +219.158.11.216/31 1; +219.158.11.220/31 1; +219.158.11.224/31 1; +219.158.11.236/30 1; +219.158.11.240/28 1; +219.158.12.16/30 1; +219.158.12.22/31 1; +219.158.12.24/31 1; +219.158.12.60/30 1; +219.158.12.68/31 1; +219.158.12.72/31 1; +219.158.12.112/28 1; +219.158.12.136/30 1; +219.158.12.140/31 1; +219.158.12.152/31 1; +219.158.12.164/31 1; +219.158.12.176/28 1; +219.158.12.200/31 1; +219.158.12.204/30 1; +219.158.12.212/30 1; +219.158.12.216/30 1; +219.158.12.220/31 1; +219.158.12.248/29 1; +219.158.13.0/27 1; +219.158.13.32/28 1; +219.158.13.62/31 1; +219.158.13.64/28 1; +219.158.13.80/29 1; +219.158.13.88/30 1; +219.158.13.92/31 1; +219.158.13.112/28 1; +219.158.13.136/29 1; +219.158.13.144/28 1; +219.158.13.160/30 1; +219.158.13.172/30 1; +219.158.13.184/31 1; +219.158.13.188/30 1; +219.158.13.204/30 1; +219.158.13.208/28 1; +219.158.13.224/27 1; +219.158.14.0/26 1; +219.158.14.64/28 1; +219.158.14.80/29 1; +219.158.14.88/30 1; +219.158.14.98/31 1; +219.158.14.100/30 1; +219.158.14.108/30 1; +219.158.14.120/30 1; +219.158.14.128/30 1; +219.158.14.136/29 1; +219.158.14.162/31 1; +219.158.14.186/31 1; +219.158.14.188/30 1; +219.158.14.192/30 1; +219.158.14.196/31 1; +219.158.14.208/31 1; +219.158.14.224/31 1; +219.158.15.0/26 1; +219.158.15.64/31 1; +219.158.15.76/31 1; +219.158.15.84/31 1; +219.158.15.88/31 1; +219.158.15.100/31 1; +219.158.15.116/31 1; +219.158.15.132/30 1; +219.158.15.136/30 1; +219.158.15.152/30 1; +219.158.15.156/31 1; +219.158.15.160/31 1; +219.158.15.172/30 1; +219.158.15.178/31 1; +219.158.15.180/30 1; +219.158.15.184/31 1; +219.158.15.188/31 1; +219.158.15.192/31 1; +219.158.15.220/30 1; +219.158.16.0/30 1; +219.158.16.8/29 1; +219.158.16.16/29 1; +219.158.16.28/30 1; +219.158.16.36/31 1; +219.158.16.42/31 1; +219.158.16.52/31 1; +219.158.16.64/27 1; +219.158.16.96/28 1; +219.158.16.112/30 1; +219.158.16.136/31 1; +219.158.16.160/31 1; +219.158.16.164/31 1; +219.158.16.168/30 1; +219.158.16.182/31 1; +219.158.16.184/29 1; +219.158.16.192/28 1; +219.158.16.208/30 1; +219.158.16.220/30 1; +219.158.16.224/27 1; +219.158.17.0/29 1; +219.158.17.8/30 1; +219.158.17.12/31 1; +219.158.17.32/31 1; +219.158.17.52/31 1; +219.158.17.60/31 1; +219.158.17.96/30 1; +219.158.17.116/31 1; +219.158.17.120/31 1; +219.158.17.128/31 1; +219.158.17.178/31 1; +219.158.17.180/31 1; +219.158.17.184/31 1; +219.158.17.192/30 1; +219.158.17.204/31 1; +219.158.17.226/31 1; +219.158.17.228/31 1; +219.158.17.232/29 1; +219.158.18.12/31 1; +219.158.18.120/29 1; +219.158.18.144/30 1; +219.158.18.156/31 1; +219.158.18.160/29 1; +219.158.18.176/30 1; +219.158.18.180/31 1; +219.158.18.196/30 1; +219.158.18.200/31 1; +219.158.18.216/29 1; +219.158.18.224/30 1; +219.158.18.228/31 1; +219.158.18.232/31 1; +219.158.18.236/31 1; +219.158.18.244/31 1; +219.158.19.32/31 1; +219.158.19.40/31 1; +219.158.19.44/31 1; +219.158.19.48/31 1; +219.158.19.52/31 1; +219.158.19.56/29 1; +219.158.19.92/30 1; +219.158.19.96/31 1; +219.158.19.100/31 1; +219.158.19.104/31 1; +219.158.19.108/31 1; +219.158.19.112/31 1; +219.158.19.116/31 1; +219.158.19.120/29 1; +219.158.19.130/31 1; +219.158.19.132/30 1; +219.158.19.136/31 1; +219.158.19.144/31 1; +219.158.19.150/31 1; +219.158.19.152/31 1; +219.158.19.208/31 1; +219.158.19.212/31 1; +219.158.20.0/30 1; +219.158.20.28/31 1; +219.158.20.44/31 1; +219.158.20.48/31 1; +219.158.20.64/28 1; +219.158.20.80/29 1; +219.158.20.88/31 1; +219.158.20.92/31 1; +219.158.20.96/31 1; +219.158.20.100/30 1; +219.158.20.104/31 1; +219.158.20.108/30 1; +219.158.20.112/31 1; +219.158.20.136/31 1; +219.158.20.140/31 1; +219.158.20.192/31 1; +219.158.20.196/31 1; +219.158.20.200/31 1; +219.158.20.252/31 1; +219.158.21.0/31 1; +219.158.21.36/30 1; +219.158.21.40/29 1; +219.158.21.48/31 1; +219.158.21.60/31 1; +219.158.21.64/31 1; +219.158.21.68/31 1; +219.158.21.84/31 1; +219.158.21.88/29 1; +219.158.21.96/28 1; +219.158.21.112/29 1; +219.158.21.120/31 1; +219.158.21.128/30 1; +219.158.21.146/31 1; +219.158.21.164/30 1; +219.158.21.168/29 1; +219.158.21.176/28 1; +219.158.21.192/28 1; +219.158.21.208/29 1; +219.158.21.216/31 1; +219.158.21.220/31 1; +219.158.21.236/30 1; +219.158.22.36/31 1; +219.158.22.40/31 1; +219.158.22.56/31 1; +219.158.22.68/30 1; +219.158.22.76/31 1; +219.158.22.108/30 1; +219.158.22.112/30 1; +219.158.22.122/31 1; +219.158.22.130/31 1; +219.158.22.132/30 1; +219.158.22.140/31 1; +219.158.22.148/31 1; +219.158.22.160/31 1; +219.158.22.166/31 1; +219.158.22.194/31 1; +219.158.22.204/30 1; +219.158.22.208/28 1; +219.158.22.224/28 1; +219.158.22.240/30 1; +219.158.22.250/31 1; +219.158.23.24/30 1; +219.158.23.28/31 1; +219.158.23.54/31 1; +219.158.23.76/31 1; +219.158.23.132/31 1; +219.158.23.138/31 1; +219.158.23.148/31 1; +219.158.23.152/31 1; +219.158.23.159/32 1; +219.158.23.180/31 1; +219.158.23.196/31 1; +219.158.23.208/30 1; +219.158.23.216/29 1; +219.158.23.224/29 1; +219.158.23.232/30 1; +219.158.23.252/30 1; +219.158.24.0/30 1; +219.158.24.26/31 1; +219.158.24.30/31 1; +219.158.24.44/30 1; +219.158.24.48/29 1; +219.158.24.56/30 1; +219.158.24.60/31 1; +219.158.24.64/29 1; +219.158.24.74/31 1; +219.158.24.104/29 1; +219.158.24.112/28 1; +219.158.24.128/25 1; +219.158.25.0/26 1; +219.158.25.64/29 1; +219.158.25.148/30 1; +219.158.25.152/29 1; +219.158.25.160/29 1; +219.158.25.184/29 1; +219.158.25.192/26 1; +219.158.26.0/23 1; +219.158.28.0/22 1; +219.158.32.0/23 1; +219.158.34.0/25 1; +219.158.34.128/26 1; +219.158.34.192/27 1; +219.158.34.224/29 1; +219.158.34.232/30 1; +219.158.34.244/30 1; +219.158.34.248/29 1; +219.158.35.0/31 1; +219.158.35.8/29 1; +219.158.35.16/28 1; +219.158.35.32/27 1; +219.158.35.64/26 1; +219.158.35.128/25 1; +219.158.36.0/23 1; +219.158.38.0/24 1; +219.158.39.0/26 1; +219.158.39.64/29 1; +219.158.39.100/30 1; +219.158.39.104/29 1; +219.158.39.112/31 1; +219.158.39.124/30 1; +219.158.39.128/30 1; +219.158.39.144/30 1; +219.158.39.148/31 1; +219.158.39.152/30 1; +219.158.39.156/31 1; +219.158.39.180/30 1; +219.158.39.184/30 1; +219.158.39.188/31 1; +219.158.39.194/31 1; +219.158.39.196/30 1; +219.158.39.200/30 1; +219.158.39.204/31 1; +219.158.39.226/31 1; +219.158.39.252/30 1; +219.158.40.0/30 1; +219.158.40.14/31 1; +219.158.40.16/30 1; +219.158.40.28/31 1; +219.158.40.56/29 1; +219.158.40.64/28 1; +219.158.40.80/29 1; +219.158.40.88/30 1; +219.158.40.108/31 1; +219.158.40.112/30 1; +219.158.40.148/30 1; +219.158.40.152/31 1; +219.158.40.160/31 1; +219.158.40.164/30 1; +219.158.40.176/31 1; +219.158.40.184/31 1; +219.158.40.192/30 1; +219.158.40.196/31 1; +219.158.40.206/31 1; +219.158.40.224/31 1; +219.158.40.248/30 1; +219.158.41.24/29 1; +219.158.41.32/27 1; +219.158.41.64/27 1; +219.158.41.96/28 1; +219.158.41.112/30 1; +219.158.41.176/28 1; +219.158.41.192/26 1; +219.158.42.0/26 1; +219.158.42.64/27 1; +219.158.42.96/28 1; +219.158.42.112/29 1; +219.158.42.120/31 1; +219.158.42.208/28 1; +219.158.42.224/27 1; +219.158.43.0/26 1; +219.158.43.64/27 1; +219.158.43.104/30 1; +219.158.43.108/31 1; +219.158.43.142/31 1; +219.158.43.146/31 1; +219.158.43.148/30 1; +219.158.43.152/29 1; +219.158.43.166/31 1; +219.158.43.168/29 1; +219.158.43.176/29 1; +219.158.43.206/31 1; +219.158.43.208/30 1; +219.158.43.212/31 1; +219.158.43.224/27 1; +219.158.44.0/29 1; +219.158.44.220/30 1; +219.158.44.224/29 1; +219.158.44.232/30 1; +219.158.45.24/29 1; +219.158.45.32/29 1; +219.158.45.40/30 1; +219.158.45.44/31 1; +219.158.45.56/31 1; +219.158.45.60/31 1; +219.158.45.64/31 1; +219.158.45.68/30 1; +219.158.45.72/29 1; +219.158.45.80/28 1; +219.158.45.96/28 1; +219.158.45.112/29 1; +219.158.45.120/30 1; +219.158.45.134/31 1; +219.158.45.138/31 1; +219.158.45.146/31 1; +219.158.45.162/31 1; +219.158.45.166/31 1; +219.158.45.176/29 1; +219.158.45.184/30 1; +219.158.45.188/31 1; +219.158.45.192/30 1; +219.158.45.196/31 1; +219.158.45.244/31 1; +219.158.46.0/31 1; +219.158.46.12/31 1; +219.158.46.16/31 1; +219.158.46.28/30 1; +219.158.46.32/27 1; +219.158.46.64/26 1; +219.158.46.128/25 1; +219.158.47.0/24 1; +219.158.48.0/20 1; +219.158.64.0/19 1; +219.158.96.88/31 1; +219.158.96.128/31 1; +219.158.96.140/30 1; +219.158.96.144/31 1; +219.158.96.160/30 1; +219.158.96.164/31 1; +219.158.96.168/31 1; +219.158.97.36/31 1; +219.158.97.126/31 1; +219.158.97.128/31 1; +219.158.97.136/30 1; +219.158.97.164/30 1; +219.158.97.168/31 1; +219.158.97.188/30 1; +219.158.97.196/30 1; +219.158.97.200/30 1; +219.158.98.4/30 1; +219.158.98.8/30 1; +219.158.98.12/31 1; +219.158.98.16/31 1; +219.158.98.20/30 1; +219.158.98.24/29 1; +219.158.98.52/30 1; +219.158.98.56/31 1; +219.158.98.64/30 1; +219.158.98.68/31 1; +219.158.98.76/31 1; +219.158.98.80/28 1; +219.158.98.96/29 1; +219.158.98.108/31 1; +219.158.98.126/31 1; +219.158.98.132/31 1; +219.158.98.136/29 1; +219.158.98.144/30 1; +219.158.98.159/32 1; +219.158.98.166/31 1; +219.158.98.168/31 1; +219.158.98.176/29 1; +219.158.98.184/30 1; +219.158.98.188/31 1; +219.158.98.192/31 1; +219.158.98.200/29 1; +219.158.98.208/31 1; +219.158.98.224/30 1; +219.158.98.252/31 1; +219.158.99.128/31 1; +219.158.99.132/31 1; +219.158.99.144/31 1; +219.158.99.156/31 1; +219.158.99.172/30 1; +219.158.99.176/31 1; +219.158.99.180/31 1; +219.158.99.196/31 1; +219.158.100.8/30 1; +219.158.100.12/31 1; +219.158.100.16/29 1; +219.158.100.24/30 1; +219.158.100.40/31 1; +219.158.100.230/31 1; +219.158.100.232/31 1; +219.158.100.244/31 1; +219.158.101.40/29 1; +219.158.101.48/29 1; +219.158.101.56/30 1; +219.158.101.60/31 1; +219.158.101.74/31 1; +219.158.101.76/30 1; +219.158.101.80/30 1; +219.158.101.84/31 1; +219.158.101.102/31 1; +219.158.101.108/30 1; +219.158.101.112/28 1; +219.158.101.128/28 1; +219.158.101.144/30 1; +219.158.101.198/31 1; +219.158.101.206/31 1; +219.158.101.208/31 1; +219.158.101.224/31 1; +219.158.101.236/31 1; +219.158.101.244/31 1; +219.158.101.254/31 1; +219.158.102.0/31 1; +219.158.102.16/31 1; +219.158.102.40/31 1; +219.158.102.56/31 1; +219.158.102.60/30 1; +219.158.102.64/28 1; +219.158.102.80/29 1; +219.158.102.88/30 1; +219.158.102.95/32 1; +219.158.102.107/32 1; +219.158.102.110/31 1; +219.158.102.112/28 1; +219.158.102.128/30 1; +219.158.102.134/31 1; +219.158.102.138/31 1; +219.158.102.140/30 1; +219.158.102.144/29 1; +219.158.102.152/30 1; +219.158.102.158/31 1; +219.158.102.162/31 1; +219.158.102.164/30 1; +219.158.102.168/29 1; +219.158.102.176/31 1; +219.158.102.216/31 1; +219.158.102.220/30 1; +219.158.102.224/30 1; +219.158.102.228/31 1; +219.158.102.232/29 1; +219.158.102.240/28 1; +219.158.103.0/25 1; +219.158.103.128/26 1; +219.158.103.192/28 1; +219.158.103.208/30 1; +219.158.103.212/31 1; +219.158.104.28/31 1; +219.158.104.44/31 1; +219.158.104.54/31 1; +219.158.104.62/31 1; +219.158.104.78/31 1; +219.158.104.112/31 1; +219.158.104.120/31 1; +219.158.104.132/30 1; +219.158.104.136/30 1; +219.158.104.140/31 1; +219.158.104.144/31 1; +219.158.104.160/31 1; +219.158.104.164/31 1; +219.158.104.168/31 1; +219.158.104.176/29 1; +219.158.104.184/30 1; +219.158.104.188/31 1; +219.158.104.194/31 1; +219.158.104.198/31 1; +219.158.104.252/31 1; +219.158.105.64/30 1; +219.158.105.68/31 1; +219.158.105.72/31 1; +219.158.105.90/31 1; +219.158.105.94/31 1; +219.158.105.96/27 1; +219.158.105.128/26 1; +219.158.105.192/27 1; +219.158.105.224/28 1; +219.158.105.240/29 1; +219.158.105.248/31 1; +219.158.105.251/32 1; +219.158.105.252/31 1; +219.158.106.12/31 1; +219.158.106.88/29 1; +219.158.106.96/27 1; +219.158.106.128/28 1; +219.158.106.144/31 1; +219.158.106.156/31 1; +219.158.106.178/31 1; +219.158.106.196/31 1; +219.158.107.14/31 1; +219.158.107.16/31 1; +219.158.107.32/28 1; +219.158.107.48/29 1; +219.158.107.56/31 1; +219.158.107.66/31 1; +219.158.107.68/30 1; +219.158.107.72/30 1; +219.158.107.80/31 1; +219.158.107.92/30 1; +219.158.107.96/30 1; +219.158.107.108/30 1; +219.158.107.112/30 1; +219.158.107.116/31 1; +219.158.107.148/30 1; +219.158.107.152/31 1; +219.158.107.170/31 1; +219.158.107.174/31 1; +219.158.107.176/30 1; +219.158.107.184/31 1; +219.158.107.192/30 1; +219.158.107.196/31 1; +219.158.107.216/31 1; +219.158.107.228/31 1; +219.158.108.36/31 1; +219.158.108.48/31 1; +219.158.108.62/31 1; +219.158.108.76/30 1; +219.158.108.80/29 1; +219.158.108.88/31 1; +219.158.108.128/30 1; +219.158.108.132/31 1; +219.158.109.36/31 1; +219.158.109.42/31 1; +219.158.109.44/30 1; +219.158.109.48/29 1; +219.158.109.56/31 1; +219.158.109.80/31 1; +219.158.109.120/31 1; +219.158.109.140/30 1; +219.158.109.144/31 1; +219.158.109.152/31 1; +219.158.109.184/31 1; +219.158.109.192/31 1; +219.158.109.204/30 1; +219.158.109.208/31 1; +219.158.109.212/30 1; +219.158.109.222/31 1; +219.158.109.224/30 1; +219.158.109.236/30 1; +219.158.110.4/31 1; +219.158.110.20/30 1; +219.158.110.24/31 1; +219.158.110.40/31 1; +219.158.110.52/31 1; +219.158.110.56/29 1; +219.158.110.64/29 1; +219.158.110.72/31 1; +219.158.110.76/31 1; +219.158.110.128/30 1; +219.158.110.148/30 1; +219.158.110.180/31 1; +219.158.110.188/30 1; +219.158.110.192/31 1; +219.158.110.196/31 1; +219.158.110.200/31 1; +219.158.110.226/31 1; +219.158.110.244/30 1; +219.158.110.248/31 1; +219.158.110.254/31 1; +219.158.111.8/31 1; +219.158.111.12/30 1; +219.158.111.16/31 1; +219.158.111.28/30 1; +219.158.111.32/31 1; +219.158.111.40/29 1; +219.158.111.48/30 1; +219.158.111.54/31 1; +219.158.111.64/26 1; +219.158.111.128/25 1; +219.158.112.0/30 1; +219.158.112.6/31 1; +219.158.112.12/31 1; +219.158.112.36/30 1; +219.158.112.40/30 1; +219.158.112.44/31 1; +219.158.112.96/28 1; +219.158.112.112/31 1; +219.158.112.124/30 1; +219.158.112.128/28 1; +219.158.112.148/31 1; +219.158.112.152/29 1; +219.158.112.160/27 1; +219.158.112.192/29 1; +219.158.112.200/30 1; +219.158.112.204/31 1; +219.158.112.208/30 1; +219.158.112.236/30 1; +219.158.112.240/28 1; +219.158.113.0/31 1; +219.158.113.20/30 1; +219.158.113.24/31 1; +219.158.113.34/31 1; +219.158.113.60/31 1; +219.158.113.208/28 1; +219.158.113.224/30 1; +219.158.113.238/31 1; +219.158.113.240/31 1; +219.158.113.248/31 1; +219.158.113.252/30 1; +219.158.114.2/31 1; +219.158.114.4/31 1; +219.158.114.14/31 1; +219.158.114.22/31 1; +219.158.114.30/31 1; +219.158.114.32/27 1; +219.158.114.64/26 1; +219.158.114.128/25 1; +219.158.115.0/24 1; +219.158.116.0/27 1; +219.158.116.32/28 1; +219.158.116.48/30 1; +219.158.116.52/31 1; +219.158.116.60/31 1; +219.158.116.72/29 1; +219.158.116.86/31 1; +219.158.116.88/29 1; +219.158.116.96/28 1; +219.158.116.112/31 1; +219.158.116.128/31 1; +219.158.116.136/30 1; +219.158.116.140/31 1; +219.158.116.160/28 1; +219.158.116.176/29 1; +219.158.116.184/30 1; +219.158.116.192/30 1; +219.158.116.200/29 1; +219.158.116.208/30 1; +219.158.116.254/31 1; +219.158.117.0/27 1; +219.158.117.32/28 1; +219.158.117.48/31 1; +219.158.117.80/28 1; +219.158.117.96/28 1; +219.158.117.112/29 1; +219.158.117.120/30 1; +219.158.117.124/31 1; +219.158.117.144/29 1; +219.158.117.152/31 1; +219.158.117.168/29 1; +219.158.117.176/28 1; +219.158.117.192/31 1; +219.158.117.204/30 1; +219.158.117.208/28 1; +219.158.117.224/27 1; +219.158.118.0/23 1; +219.158.120.0/21 1; +219.158.128.0/17 1; +219.224.0.0/18 1; +219.224.64.0/19 1; +219.224.96.0/22 1; +219.224.100.0/25 1; +219.224.100.128/30 1; +219.224.100.140/30 1; +219.224.100.144/30 1; +219.224.100.156/30 1; +219.224.100.160/29 1; +219.224.100.172/30 1; +219.224.100.176/28 1; +219.224.100.192/26 1; +219.224.101.0/24 1; +219.224.102.0/25 1; +219.224.102.128/26 1; +219.224.102.192/28 1; +219.224.102.208/30 1; +219.224.102.212/31 1; +219.224.102.220/30 1; +219.224.102.228/30 1; +219.224.102.232/29 1; +219.224.102.240/28 1; +219.224.103.0/24 1; +219.224.104.0/21 1; +219.224.112.0/20 1; +219.224.128.0/17 1; +219.225.0.0/17 1; +219.226.16.0/20 1; +219.226.32.0/19 1; +219.226.64.0/21 1; +219.226.184.0/21 1; +219.226.208.0/21 1; +219.232.0.0/19 1; +219.232.32.0/26 1; +219.232.32.64/29 1; +219.232.32.80/28 1; +219.232.32.104/29 1; +219.232.32.128/28 1; +219.232.32.160/27 1; +219.232.32.192/26 1; +219.232.33.0/24 1; +219.232.34.0/23 1; +219.232.36.0/22 1; +219.232.40.0/21 1; +219.232.48.0/20 1; +219.232.96.0/19 1; +219.232.192.0/18 1; +219.234.0.0/21 1; +219.234.48.0/20 1; +219.234.80.0/20 1; +219.234.128.0/17 1; +219.235.12.0/22 1; +219.235.32.0/19 1; +219.235.128.0/20 1; +219.235.144.0/21 1; +219.235.160.0/19 1; +219.235.192.0/20 1; +219.235.224.0/19 1; +219.236.0.0/14 1; +219.242.0.0/17 1; +219.242.128.0/19 1; +219.242.160.0/20 1; +219.242.176.0/21 1; +219.242.192.0/18 1; +219.243.28.0/22 1; +219.243.118.0/23 1; +219.243.120.0/21 1; +219.243.184.0/21 1; +219.243.192.0/19 1; +219.243.224.0/24 1; +219.247.117.0/24 1; +219.247.118.0/23 1; +219.247.120.0/21 1; +220.101.192.0/18 1; +220.113.0.0/19 1; +220.113.32.0/20 1; +220.154.0.0/16 1; +220.155.64.0/18 1; +220.155.128.0/17 1; +220.181.0.0/16 1; +220.193.236.0/22 1; +220.193.240.0/20 1; +220.194.0.0/18 1; +220.203.64.0/18 1; +220.203.128.0/17 1; +220.204.0.0/18 1; +220.204.64.0/19 1; +220.204.96.0/21 1; +220.204.104.0/22 1; +220.204.109.0/24 1; +220.204.110.0/23 1; +220.204.112.0/20 1; +220.204.128.0/17 1; +220.205.40.0/21 1; +220.205.48.0/20 1; +220.206.0.0/17 1; +220.206.128.0/18 1; +220.206.192.0/22 1; +220.206.199.0/24 1; +220.206.200.0/21 1; +220.206.208.0/22 1; +220.206.213.0/24 1; +220.206.214.0/23 1; +220.206.216.0/21 1; +220.206.224.0/21 1; +220.206.232.0/23 1; +220.206.234.0/24 1; +220.206.240.0/23 1; +220.206.242.0/24 1; +220.206.245.0/24 1; +220.206.246.0/23 1; +220.206.248.0/21 1; +220.207.0.0/22 1; +220.207.68.0/22 1; +220.207.72.0/22 1; +220.207.80.0/20 1; +220.207.176.0/22 1; +220.207.254.0/23 1; +220.231.0.0/18 1; +220.242.1.0/24 1; +220.242.3.0/24 1; +220.242.4.0/23 1; +220.242.9.0/24 1; +220.242.10.0/23 1; +220.242.15.0/24 1; +220.242.16.0/24 1; +220.242.51.0/24 1; +220.242.52.0/23 1; +220.242.54.0/24 1; +220.242.63.0/24 1; +220.242.128.0/22 1; +220.242.132.0/24 1; +220.242.134.0/23 1; +220.242.136.0/22 1; +220.242.140.0/23 1; +220.242.142.0/24 1; +220.242.145.0/24 1; +220.242.146.0/24 1; +220.242.150.0/23 1; +220.242.152.0/24 1; +220.242.155.0/24 1; +220.242.156.0/23 1; +220.242.165.0/24 1; +220.242.168.0/24 1; +220.242.172.0/24 1; +220.242.175.0/24 1; +220.242.176.0/23 1; +220.242.178.0/24 1; +220.242.181.0/24 1; +220.242.186.0/24 1; +220.242.188.0/24 1; +220.242.191.0/24 1; +220.242.196.0/24 1; +220.243.128.0/18 1; +220.243.195.0/24 1; +220.243.197.0/24 1; +220.243.200.0/24 1; +220.243.202.0/23 1; +220.243.205.0/24 1; +220.243.207.0/24 1; +220.243.208.0/22 1; +220.243.212.0/24 1; +220.243.215.0/24 1; +220.243.216.0/24 1; +220.243.219.0/24 1; +220.243.220.0/23 1; +220.243.224.0/24 1; +220.243.228.0/22 1; +220.243.232.0/22 1; +220.243.236.0/24 1; +220.243.238.0/23 1; +220.243.242.0/23 1; +220.243.244.0/22 1; +220.243.248.0/22 1; +220.243.252.0/24 1; +220.243.254.0/23 1; +220.247.136.0/22 1; +220.249.0.0/18 1; +220.250.64.0/18 1; +220.250.128.0/17 1; +220.251.0.0/16 1; +220.252.0.0/16 1; +221.122.0.0/15 1; +221.128.128.0/17 1; +221.130.32.0/20 1; +221.130.224.0/20 1; +221.130.240.0/21 1; +221.130.248.0/22 1; +221.130.253.0/24 1; +221.130.254.0/23 1; +221.174.0.0/18 1; +221.174.64.0/19 1; +221.174.96.0/20 1; +221.174.116.0/23 1; +221.174.119.0/24 1; +221.174.124.0/24 1; +221.176.0.0/22 1; +221.176.5.0/24 1; +221.176.6.0/23 1; +221.176.8.0/23 1; +221.176.10.0/24 1; +221.176.13.0/24 1; +221.176.14.0/24 1; +221.176.15.0/31 1; +221.176.15.4/31 1; +221.176.15.8/31 1; +221.176.15.28/30 1; +221.176.15.32/31 1; +221.176.15.36/31 1; +221.176.15.46/31 1; +221.176.15.48/31 1; +221.176.15.56/31 1; +221.176.15.64/31 1; +221.176.15.70/31 1; +221.176.15.74/31 1; +221.176.15.76/30 1; +221.176.15.80/29 1; +221.176.15.90/31 1; +221.176.15.92/31 1; +221.176.15.98/31 1; +221.176.15.104/29 1; +221.176.15.112/28 1; +221.176.15.128/27 1; +221.176.15.176/30 1; +221.176.15.182/31 1; +221.176.15.192/29 1; +221.176.15.200/30 1; +221.176.15.204/31 1; +221.176.15.208/31 1; +221.176.15.212/31 1; +221.176.15.224/31 1; +221.176.15.228/31 1; +221.176.15.236/31 1; +221.176.15.240/31 1; +221.176.15.244/31 1; +221.176.15.248/31 1; +221.176.15.252/31 1; +221.176.16.4/30 1; +221.176.16.8/30 1; +221.176.16.16/31 1; +221.176.16.20/31 1; +221.176.16.26/31 1; +221.176.16.28/30 1; +221.176.16.32/30 1; +221.176.16.52/30 1; +221.176.16.56/29 1; +221.176.16.64/26 1; +221.176.16.128/26 1; +221.176.16.192/28 1; +221.176.16.208/29 1; +221.176.16.216/30 1; +221.176.16.238/31 1; +221.176.16.240/30 1; +221.176.16.246/31 1; +221.176.16.250/31 1; +221.176.17.0/30 1; +221.176.18.54/31 1; +221.176.18.118/31 1; +221.176.18.122/31 1; +221.176.18.126/31 1; +221.176.18.130/31 1; +221.176.18.134/31 1; +221.176.18.138/31 1; +221.176.18.150/31 1; +221.176.18.154/31 1; +221.176.18.158/31 1; +221.176.18.162/31 1; +221.176.18.170/31 1; +221.176.18.174/31 1; +221.176.18.178/31 1; +221.176.19.130/31 1; +221.176.19.134/31 1; +221.176.19.146/31 1; +221.176.19.150/31 1; +221.176.19.162/31 1; +221.176.19.166/31 1; +221.176.19.236/31 1; +221.176.20.42/31 1; +221.176.20.78/31 1; +221.176.20.116/31 1; +221.176.20.128/31 1; +221.176.21.2/31 1; +221.176.21.60/30 1; +221.176.21.64/31 1; +221.176.21.76/30 1; +221.176.21.80/28 1; +221.176.21.96/27 1; +221.176.21.128/26 1; +221.176.21.192/28 1; +221.176.21.208/30 1; +221.176.21.228/30 1; +221.176.21.246/31 1; +221.176.22.48/30 1; +221.176.22.80/31 1; +221.176.23.20/30 1; +221.176.23.24/29 1; +221.176.23.32/29 1; +221.176.23.40/30 1; +221.176.23.52/30 1; +221.176.24.242/31 1; +221.176.26.40/31 1; +221.176.26.132/31 1; +221.176.26.244/30 1; +221.176.27.76/31 1; +221.176.27.108/31 1; +221.176.27.162/31 1; +221.176.27.252/30 1; +221.176.28.0/22 1; +221.176.48.0/23 1; +221.176.52.0/29 1; +221.176.55.0/24 1; +221.176.58.0/28 1; +221.177.0.0/21 1; +221.177.247.0/24 1; +221.177.252.0/24 1; +221.179.128.0/18 1; +221.179.192.0/19 1; +221.183.0.0/30 1; +221.183.9.112/31 1; +221.183.9.116/30 1; +221.183.9.120/31 1; +221.183.9.124/31 1; +221.183.9.140/31 1; +221.183.9.144/31 1; +221.183.10.126/31 1; +221.183.10.152/31 1; +221.183.10.166/31 1; +221.183.10.248/29 1; +221.183.11.0/28 1; +221.183.11.16/29 1; +221.183.11.36/30 1; +221.183.11.48/30 1; +221.183.11.56/30 1; +221.183.11.100/30 1; +221.183.11.104/31 1; +221.183.11.108/31 1; +221.183.11.130/31 1; +221.183.11.134/31 1; +221.183.11.154/31 1; +221.183.11.178/31 1; +221.183.11.220/31 1; +221.183.12.32/29 1; +221.183.14.176/30 1; +221.183.14.236/30 1; +221.183.14.240/28 1; +221.183.15.0/29 1; +221.183.15.8/30 1; +221.183.15.16/30 1; +221.183.15.36/30 1; +221.183.15.40/29 1; +221.183.15.48/30 1; +221.183.15.100/30 1; +221.183.15.104/30 1; +221.183.15.128/29 1; +221.183.15.212/30 1; +221.183.15.216/30 1; +221.183.16.0/23 1; +221.183.18.0/27 1; +221.183.18.32/28 1; +221.183.18.48/29 1; +221.183.18.56/30 1; +221.183.19.48/29 1; +221.183.19.108/31 1; +221.183.19.228/30 1; +221.183.20.104/29 1; +221.183.20.112/30 1; +221.183.20.132/30 1; +221.183.20.136/30 1; +221.183.20.156/30 1; +221.183.20.162/31 1; +221.183.21.36/30 1; +221.183.21.40/30 1; +221.183.21.92/30 1; +221.183.21.96/31 1; +221.183.21.100/31 1; +221.183.21.104/30 1; +221.183.21.110/31 1; +221.183.21.112/29 1; +221.183.21.120/30 1; +221.183.21.180/30 1; +221.183.21.184/30 1; +221.183.21.228/30 1; +221.183.21.234/31 1; +221.183.21.236/30 1; +221.183.21.240/28 1; +221.183.22.102/31 1; +221.183.22.122/31 1; +221.183.22.124/30 1; +221.183.22.134/31 1; +221.183.22.138/31 1; +221.183.22.186/31 1; +221.183.22.200/31 1; +221.183.22.210/31 1; +221.183.22.216/31 1; +221.183.24.132/30 1; +221.183.24.136/30 1; +221.183.25.24/31 1; +221.183.25.52/30 1; +221.183.25.56/29 1; +221.183.25.64/30 1; +221.183.25.196/30 1; +221.183.25.200/30 1; +221.183.26.24/29 1; +221.183.26.32/29 1; +221.183.27.148/30 1; +221.183.28.40/30 1; +221.183.36.0/31 1; +221.183.36.8/31 1; +221.183.36.12/31 1; +221.183.36.16/31 1; +221.183.36.20/31 1; +221.183.36.28/31 1; +221.183.36.32/28 1; +221.183.36.48/30 1; +221.183.36.52/31 1; +221.183.36.56/31 1; +221.183.36.60/31 1; +221.183.36.64/31 1; +221.183.36.68/31 1; +221.183.36.80/31 1; +221.183.36.88/31 1; +221.183.36.96/31 1; +221.183.36.204/31 1; +221.183.37.140/30 1; +221.183.37.144/28 1; +221.183.37.160/27 1; +221.183.37.192/26 1; +221.183.38.0/26 1; +221.183.38.64/28 1; +221.183.38.80/29 1; +221.183.38.88/30 1; +221.183.39.76/30 1; +221.183.39.80/28 1; +221.183.39.96/27 1; +221.183.40.0/31 1; +221.183.40.4/30 1; +221.183.40.8/29 1; +221.183.40.16/29 1; +221.183.40.24/30 1; +221.183.40.28/31 1; +221.183.40.32/31 1; +221.183.40.36/31 1; +221.183.40.40/31 1; +221.183.46.160/28 1; +221.183.46.176/29 1; +221.183.46.248/29 1; +221.183.49.8/31 1; +221.183.49.32/31 1; +221.183.49.120/29 1; +221.183.49.128/28 1; +221.183.49.144/30 1; +221.183.49.244/31 1; +221.216.0.0/13 1; +222.28.0.0/15 1; +222.30.128.0/21 1; +222.31.64.0/18 1; +222.31.128.0/18 1; +222.35.0.0/16 1; +222.62.96.0/19 1; +222.126.240.0/23 1; +222.126.244.0/23 1; +222.128.0.0/14 1; +222.199.51.0/24 1; +222.199.102.0/23 1; +222.199.128.0/17 1; +222.249.0.0/16 1; +223.0.0.0/15 1; +223.20.0.0/15 1; +223.69.0.0/16 1; +223.70.0.0/15 1; +223.72.0.0/16 1; +223.103.3.0/24 1; +223.104.3.0/24 1; +223.104.38.0/23 1; +223.104.40.0/22 1; +223.104.44.0/24 1; +223.104.252.0/24 1; +223.104.254.0/24 1; +223.160.0.0/14 1; +223.193.0.0/16 1; +223.201.0.0/16 1; +223.202.0.0/15 1; +223.223.176.0/20 1; +223.223.192.0/20 1; +223.255.0.0/17 1; +2001:250::/38 1; +2001:250:400::/48 1; +2001:250:409::/48 1; +2001:250:40a::/47 1; +2001:250:40c::/48 1; +2001:250:800::/37 1; +2001:250:1000::/48 1; +2001:250:1002::/47 1; +2001:250:1004::/46 1; +2001:250:1008::/45 1; +2001:250:1010::/44 1; +2001:250:1020::/43 1; +2001:250:1040::/42 1; +2001:250:1080::/41 1; +2001:250:1100::/40 1; +2001:250:1200::/39 1; +2001:250:1400::/38 1; +2001:250:1800::/37 1; +2001:250:2007::/48 1; +2001:250:2008::/45 1; +2001:250:2010::/44 1; +2001:250:2020::/43 1; +2001:250:2040::/42 1; +2001:250:2080::/41 1; +2001:250:2100::/40 1; +2001:250:2200::/39 1; +2001:250:2400::/48 1; +2001:250:2402::/47 1; +2001:250:2404::/46 1; +2001:250:2408::/45 1; +2001:250:2410::/44 1; +2001:250:2420::/43 1; +2001:250:2440::/42 1; +2001:250:2480::/41 1; +2001:250:2500::/40 1; +2001:250:2600::/39 1; +2001:250:2800::/38 1; +2001:250:2c01::/48 1; +2001:250:2c02::/47 1; +2001:250:2c04::/46 1; +2001:250:2c08::/45 1; +2001:250:2c10::/44 1; +2001:250:2c20::/43 1; +2001:250:2c40::/42 1; +2001:250:2c80::/41 1; +2001:250:2d00::/40 1; +2001:250:2e00::/39 1; +2001:250:3000::/48 1; +2001:250:3004::/46 1; +2001:250:3008::/45 1; +2001:250:3010::/44 1; +2001:250:3020::/43 1; +2001:250:3040::/42 1; +2001:250:3080::/41 1; +2001:250:3100::/40 1; +2001:250:3200::/39 1; +2001:250:3402::/47 1; +2001:250:3404::/46 1; +2001:250:3408::/45 1; +2001:250:3410::/44 1; +2001:250:3420::/43 1; +2001:250:3440::/42 1; +2001:250:3480::/41 1; +2001:250:3500::/40 1; +2001:250:3600::/39 1; +2001:250:3800::/38 1; +2001:250:3c04::/46 1; +2001:250:3c09::/48 1; +2001:250:3c0a::/47 1; +2001:250:3c0c::/46 1; +2001:250:3c10::/44 1; +2001:250:3c20::/43 1; +2001:250:3c40::/42 1; +2001:250:3c80::/41 1; +2001:250:3d00::/40 1; +2001:250:3e00::/39 1; +2001:250:4001::/48 1; +2001:250:4002::/47 1; +2001:250:4004::/46 1; +2001:250:4008::/45 1; +2001:250:4010::/44 1; +2001:250:4020::/43 1; +2001:250:4040::/42 1; +2001:250:4080::/41 1; +2001:250:4100::/40 1; +2001:250:4200::/39 1; +2001:250:4400::/38 1; +2001:250:4800::/37 1; +2001:250:5000::/37 1; +2001:250:5801::/48 1; +2001:250:5802::/47 1; +2001:250:5804::/46 1; +2001:250:5808::/45 1; +2001:250:5810::/44 1; +2001:250:5820::/43 1; +2001:250:5840::/42 1; +2001:250:5880::/41 1; +2001:250:5900::/40 1; +2001:250:5a00::/39 1; +2001:250:5c00::/38 1; +2001:250:6000::/45 1; +2001:250:6008::/46 1; +2001:250:600c::/47 1; +2001:250:600e::/48 1; +2001:250:6010::/44 1; +2001:250:6020::/43 1; +2001:250:6040::/42 1; +2001:250:6080::/41 1; +2001:250:6100::/40 1; +2001:250:6200::/39 1; +2001:250:6400::/38 1; +2001:250:6800::/37 1; +2001:250:7000::/36 1; +2001:250:8000::/33 1; +2001:251::/32 1; +2001:252::/31 1; +2001:254::/31 1; +2001:256::/32 1; +2001:470:d:667::/64 1; +2001:470:d:668::/61 1; +2001:470:d:670::/60 1; +2001:470:d:680::/57 1; +2001:470:d:700::/56 1; +2001:470:d:800::/53 1; +2001:470:d:1000::/52 1; +2001:470:d:2000::/51 1; +2001:470:d:4000::/50 1; +2001:470:d:8000::/49 1; +2001:470:e::/47 1; +2001:470:2823::/48 1; +2001:470:2824::/46 1; +2001:470:2828::/45 1; +2001:470:2830::/44 1; +2001:470:2840::/44 1; +2001:470:2850::/48 1; +2001:470:2852::/47 1; +2001:470:2854::/46 1; +2001:470:2858::/45 1; +2001:470:2860::/43 1; +2001:470:2880::/44 1; +2001:470:2890::/46 1; +2001:470:2894::/47 1; +2001:470:30be::/47 1; +2001:470:30c0::/48 1; +2001:470:401e::/47 1; +2001:470:4020::/45 1; +2001:470:4028::/46 1; +2001:470:402f::/48 1; +2001:470:4030::/44 1; +2001:470:4040::/43 1; +2001:470:4060::/45 1; +2001:470:4068::/46 1; +2001:470:59fa::/47 1; +2001:470:59fc::/46 1; +2001:470:5a00::/49 1; +2001:470:5a00:8000::/51 1; +2001:470:5a00:a000::/53 1; +2001:470:5a00:a800::/55 1; +2001:470:5a00:aa00::/56 1; +2001:470:8027::/48 1; +2001:470:8028::/45 1; +2001:470:8030::/44 1; +2001:470:8040::/42 1; +2001:470:80a6::/48 1; +2001:470:8109::/48 1; +2001:470:810a::/47 1; +2001:470:810c::/46 1; +2001:470:8110::/44 1; +2001:470:8120::/46 1; +2001:470:82d2::/48 1; +2001:470:b182::/48 1; +2001:470:b834::/46 1; +2001:470:b838::/45 1; +2001:470:b965::/48 1; +2001:470:b966::/47 1; +2001:470:b968::/45 1; +2001:470:b970::/44 1; +2001:470:b980::/44 1; +2001:470:b990::/46 1; +2001:470:c02d::/48 1; +2001:470:c02e::/47 1; +2001:470:c030::/45 1; +2001:470:c038::/46 1; +2001:470:c03c::/47 1; +2001:470:c03e::/48 1; +2001:470:c03f::/51 1; +2001:470:c03f:2000::/55 1; +2001:470:c03f:2200::/56 1; +2001:470:d8a0::/48 1; +2001:470:e16f:900::/56 1; +2001:470:e16f:a00::/55 1; +2001:470:e16f:c00::/54 1; +2001:470:e16f:1000::/52 1; +2001:470:e16f:2000::/51 1; +2001:470:e16f:4000::/50 1; +2001:470:e16f:8000::/49 1; +2001:470:e170::/44 1; +2001:470:e180::/44 1; +2001:470:e190::/45 1; +2001:470:e198::/47 1; +2001:470:e19a::/48 1; +2001:470:e1a5::/48 1; +2001:470:e1a6::/48 1; +2001:470:e1d7::/48 1; +2001:470:e1d8::/45 1; +2001:470:e823::/48 1; +2001:470:e824::/48 1; +2001:470:e835:1300::/56 1; +2001:470:e835:1400::/54 1; +2001:470:e835:1800::/53 1; +2001:470:e835:2000::/51 1; +2001:470:e835:4000::/50 1; +2001:470:e835:8000::/49 1; +2001:470:e836::/47 1; +2001:470:e838::/45 1; +2001:470:e840::/44 1; +2001:470:e850::/45 1; +2001:470:e858::/46 1; +2001:470:e85c::/47 1; +2001:470:e85e::/48 1; +2001:470:e8d9::/48 1; +2001:470:e8da::/47 1; +2001:470:e8dc::/47 1; +2001:470:e8de::/48 1; +2001:470:ec13::/48 1; +2001:470:ec34::/48 1; +2001:470:ec73::/48 1; +2001:470:ecb1::/48 1; +2001:470:ed3e::/47 1; +2001:470:ed40::/44 1; +2001:470:ed50::/46 1; +2001:470:ed54::/47 1; +2001:470:ed89::/48 1; +2001:470:ede6::/48 1; +2001:470:ee0f::/48 1; +2001:470:f001::/48 1; +2001:470:f002::/47 1; +2001:470:f004::/46 1; +2001:470:f008::/45 1; +2001:470:f010::/44 1; +2001:470:f020::/47 1; +2001:470:f022::/48 1; +2001:470:f05b::/48 1; +2001:470:f05c::/47 1; +2001:470:f0de::/48 1; +2001:470:f122::/47 1; +2001:470:f124::/46 1; +2001:470:f128::/45 1; +2001:470:f130::/45 1; +2001:470:f138::/46 1; +2001:470:f13c::/47 1; +2001:470:f13f::/48 1; +2001:470:f140::/46 1; +2001:470:f144::/47 1; +2001:470:f146::/48 1; +2001:470:f15f::/48 1; +2001:470:f160::/48 1; +2001:470:f162::/47 1; +2001:470:f164::/46 1; +2001:470:f168::/47 1; +2001:470:f182::/48 1; +2001:470:f18e::/47 1; +2001:470:f192::/48 1; +2001:470:f1d2::/47 1; +2001:470:f1d4::/46 1; +2001:470:f1d8::/45 1; +2001:470:f1e0::/46 1; +2001:470:f21a:100::/56 1; +2001:470:f21a:200::/55 1; +2001:470:f21a:400::/54 1; +2001:470:f21a:800::/53 1; +2001:470:f21a:1000::/52 1; +2001:470:f21a:2000::/51 1; +2001:470:f21a:4000::/50 1; +2001:470:f21a:8000::/49 1; +2001:470:f21b::/48 1; +2001:470:f21c::/46 1; +2001:470:f220::/43 1; +2001:470:f240::/43 1; +2001:470:f260::/45 1; +2001:470:f268::/47 1; +2001:470:f26a::/48 1; +2001:470:f26b::/49 1; +2001:470:f26b:8000::/51 1; +2001:470:f26b:a000::/52 1; +2001:470:f26b:b000::/55 1; +2001:470:f26b:b200::/56 1; +2001:470:f806::/47 1; +2001:470:f808::/45 1; +2001:470:f810::/44 1; +2001:470:f820::/47 1; +2001:470:f822::/48 1; +2001:470:f840::/42 1; +2001:470:f880::/41 1; +2001:470:f900::/43 1; +2001:470:f920::/44 1; +2001:470:f930::/46 1; +2001:470:f934::/47 1; +2001:470:f937::/48 1; +2001:470:f938::/45 1; +2001:470:f940::/42 1; +2001:470:f980::/43 1; +2001:470:f9a0::/46 1; +2001:470:f9b0::/44 1; +2001:470:f9c0::/42 1; +2001:470:fa00::/40 1; +2001:470:fb00::/41 1; +2001:470:fb80::/42 1; +2001:470:fbc0::/44 1; +2001:470:fbd0::/45 1; +2001:470:fbd8::/46 1; +2001:470:fbdd::/48 1; +2001:470:fbde::/47 1; +2001:470:fbe0::/43 1; +2001:470:fc00::/44 1; +2001:470:fca2::/48 1; +2001:470:fd72::/48 1; +2001:470:fd78::/47 1; +2001:470:fd7d::/48 1; +2001:470:fd7e::/48 1; +2001:470:fd8c::/46 1; +2001:470:fd90::/48 1; +2001:470:fd9d::/48 1; +2001:7fa:5::/48 1; +2001:7fa:10::/48 1; +2001:c68::/32 1; +2001:cc0::/32 1; +2001:da8::/41 1; +2001:da8:80::/43 1; +2001:da8:a0::/46 1; +2001:da8:a4::/47 1; +2001:da8:a7::/48 1; +2001:da8:a8::/45 1; +2001:da8:b0::/44 1; +2001:da8:c0::/42 1; +2001:da8:100::/40 1; +2001:da8:200::/39 1; +2001:da8:400::/38 1; +2001:da8:800::/37 1; +2001:da8:1000::/43 1; +2001:da8:1020::/44 1; +2001:da8:1030::/48 1; +2001:da8:1033::/48 1; +2001:da8:1034::/46 1; +2001:da8:1038::/45 1; +2001:da8:1040::/42 1; +2001:da8:1080::/41 1; +2001:da8:1100::/40 1; +2001:da8:1200::/39 1; +2001:da8:1400::/38 1; +2001:da8:1800::/37 1; +2001:da8:2000::/44 1; +2001:da8:2010::/45 1; +2001:da8:201a::/47 1; +2001:da8:201c::/46 1; +2001:da8:2020::/43 1; +2001:da8:2040::/42 1; +2001:da8:2080::/41 1; +2001:da8:2100::/40 1; +2001:da8:2200::/39 1; +2001:da8:2400::/38 1; +2001:da8:2800::/37 1; +2001:da8:3000::/36 1; +2001:da8:4000::/44 1; +2001:da8:4010::/45 1; +2001:da8:4018::/48 1; +2001:da8:401a::/47 1; +2001:da8:401c::/46 1; +2001:da8:4020::/43 1; +2001:da8:4040::/42 1; +2001:da8:4080::/41 1; +2001:da8:4100::/40 1; +2001:da8:4200::/39 1; +2001:da8:4400::/38 1; +2001:da8:4800::/37 1; +2001:da8:5000::/36 1; +2001:da8:6000::/36 1; +2001:da8:7000::/47 1; +2001:da8:7002::/48 1; +2001:da8:7004::/46 1; +2001:da8:7008::/45 1; +2001:da8:7010::/44 1; +2001:da8:7020::/43 1; +2001:da8:7040::/42 1; +2001:da8:7080::/41 1; +2001:da8:7100::/40 1; +2001:da8:7200::/39 1; +2001:da8:7400::/38 1; +2001:da8:7800::/37 1; +2001:da8:8000::/35 1; +2001:da8:a000::/48 1; +2001:da8:a003::/48 1; +2001:da8:a004::/48 1; +2001:da8:a01d::/48 1; +2001:da8:a022::/48 1; +2001:da8:a026::/48 1; +2001:da8:a02b::/48 1; +2001:da8:a02c::/46 1; +2001:da8:a030::/44 1; +2001:da8:a040::/42 1; +2001:da8:a080::/41 1; +2001:da8:a100::/40 1; +2001:da8:a200::/39 1; +2001:da8:a400::/38 1; +2001:da8:a800::/37 1; +2001:da8:b000::/36 1; +2001:da8:c000::/35 1; +2001:da8:e000::/45 1; +2001:da8:e008::/46 1; +2001:da8:e00c::/47 1; +2001:da8:e00f::/48 1; +2001:da8:e010::/44 1; +2001:da8:e020::/43 1; +2001:da8:e040::/42 1; +2001:da8:e080::/41 1; +2001:da8:e100::/40 1; +2001:da8:e200::/39 1; +2001:da8:e400::/38 1; +2001:da8:e800::/37 1; +2001:da8:f000::/36 1; +2001:da9::/32 1; +2001:daa::/32 1; +2001:dc7::/32 1; +2001:dd8:1::/48 1; +2001:dd8:5::/48 1; +2001:dd9::/40 1; +2001:df0:44::/48 1; +2001:df1:da00::/48 1; +2001:df1:fd80::/48 1; +2001:df3:b380::/48 1; +2001:df3:c680::/48 1; +2001:df3:ed80::/48 1; +2001:df3:ef80::/48 1; +2001:df4:2780::/48 1; +2001:df6:100::/48 1; +2001:df7:1480::/48 1; +2001:e08::/32 1; +2001:e18::/32 1; +2001:e80::/32 1; +2001:e88::/32 1; +2001:f38::/32 1; +2001:4438::/32 1; +2001:4510::/29 1; +2400:1160::/32 1; +2400:12c0::/32 1; +2400:1340::/32 1; +2400:1380::/32 1; +2400:1740::/32 1; +2400:17c0::/32 1; +2400:1840::/32 1; +2400:18c0::/32 1; +2400:1940::/32 1; +2400:19c0::/32 1; +2400:1ac0::/32 1; +2400:1cc0::/32 1; +2400:1d40::/32 1; +2400:1dc0::/32 1; +2400:1e40::/32 1; +2400:1ec0::/32 1; +2400:1f40::/32 1; +2400:1fc0::/32 1; +2400:3040::/32 1; +2400:3140::/32 1; +2400:31c0::/32 1; +2400:3280::/32 1; +2400:3340::/32 1; +2400:33c0::/32 1; +2400:3440::/32 1; +2400:34c0::/32 1; +2400:3540::/32 1; +2400:35c0::/32 1; +2400:3600::/32 1; +2400:3640::/32 1; +2400:36c0::/32 1; +2400:38c0::/32 1; +2400:39c0::/32 1; +2400:3a40::/32 1; +2400:3b40::/32 1; +2400:3c40::/32 1; +2400:3cc0::/32 1; +2400:3f40::/32 1; +2400:3fc0::/32 1; +2400:4440::/32 1; +2400:44c0::/32 1; +2400:4540::/32 1; +2400:4600::/32 1; +2400:4640::/32 1; +2400:46c0::/32 1; +2400:4bc0::/32 1; +2400:4e40::/32 1; +2400:5280:400::/38 1; +2400:5280:800::/37 1; +2400:5280:1000::/36 1; +2400:5280:2000::/37 1; +2400:5280:2800:100::/56 1; +2400:5280:2800:200::/55 1; +2400:5280:2800:400::/54 1; +2400:5280:2800:800::/53 1; +2400:5280:2800:1000::/52 1; +2400:5280:2800:2000::/51 1; +2400:5280:2800:4000::/50 1; +2400:5280:2800:8000::/49 1; +2400:5280:2801::/48 1; +2400:5280:2802::/47 1; +2400:5280:2804::/46 1; +2400:5280:2808::/45 1; +2400:5280:2810::/44 1; +2400:5280:2820::/43 1; +2400:5280:2840::/42 1; +2400:5280:2880::/41 1; +2400:5280:2900::/40 1; +2400:5280:2a00::/39 1; +2400:5280:2c00::/38 1; +2400:5280:3000::/36 1; +2400:5280:4000::/34 1; +2400:5280:8000::/33 1; +2400:5400::/32 1; +2400:5580::/32 1; +2400:55c0::/32 1; +2400:55e0::/32 1; +2400:5640::/32 1; +2400:56c0::/32 1; +2400:5a00::/32 1; +2400:5a40::/32 1; +2400:5ac0::/32 1; +2400:5b40::/32 1; +2400:5bc0::/32 1; +2400:5c40::/32 1; +2400:5cc0::/32 1; +2400:5e20::/32 1; +2400:6640::/32 1; +2400:66c0::/32 1; +2400:66e0::/32 1; +2400:6740::/32 1; +2400:67a0::/32 1; +2400:67c0::/32 1; +2400:6840::/32 1; +2400:68c0::/32 1; +2400:6940::/32 1; +2400:69c0::/32 1; +2400:6a40::/32 1; +2400:6ac0::/32 1; +2400:6b40::/32 1; +2400:6bc0::/32 1; +2400:6c40::/32 1; +2400:6cc0::/32 1; +2400:6d40::/32 1; +2400:6dc0::/32 1; +2400:6e00::/32 1; +2400:6e40::/32 1; +2400:6e60::/32 1; +2400:6ec0::/32 1; +2400:6f40::/32 1; +2400:6f80::/32 1; +2400:6fc0::/32 1; +2400:7040::/32 1; +2400:70a0::/33 1; +2400:70a0:8100::/40 1; +2400:70a0:8200::/39 1; +2400:70a0:8400::/38 1; +2400:70a0:8800::/37 1; +2400:70a0:9000::/36 1; +2400:70a0:a000::/35 1; +2400:70a0:c000::/34 1; +2400:7100::/32 1; +2400:7140::/32 1; +2400:71c0::/32 1; +2400:7240::/32 1; +2400:72c0::/32 1; +2400:7340::/32 1; +2400:7440::/32 1; +2400:7540::/32 1; +2400:75c0::/32 1; +2400:7640::/32 1; +2400:7680::/32 1; +2400:76c0::/32 1; +2400:7740::/32 1; +2400:77c0::/32 1; +2400:7f80::/32 1; +2400:7fc0::/32 1; +2400:8080::/32 1; +2400:8580::/32 1; +2400:8600::/32 1; +2400:86a0::/32 1; +2400:8780::/32 1; +2400:87c0::/32 1; +2400:8980::/32 1; +2400:89c0::/32 1; +2400:8be0::/32 1; +2400:8f00::/32 1; +2400:8f60::/32 1; +2400:9020::/32 1; +2400:9340::/32 1; +2400:9520::/32 1; +2400:9580::/32 1; +2400:95c0::/32 1; +2400:9620::/32 1; +2400:9960::/32 1; +2400:99e0::/32 1; +2400:9a00::/32 1; +2400:9ca0::/32 1; +2400:9e00::/32 1; +2400:a320::/32 1; +2400:a380::/32 1; +2400:a420::/32 1; +2400:a5a0::/32 1; +2400:a780::/32 1; +2400:a860::/32 1; +2400:a8a0::/32 1; +2400:a8c0::/32 1; +2400:a900::/32 1; +2400:a980::/29 1; +2400:a9a0::/32 1; +2400:ae00::/32 1; +2400:b500::/32 1; +2400:b700::/32 1; +2400:b9a0::/32 1; +2400:b9c0::/32 1; +2400:be00::/32 1; +2400:c200::/32 1; +2400:c380::/32 1; +2400:c840::/32 1; +2400:c8c0::/32 1; +2400:c940::/32 1; +2400:c9c0::/32 1; +2400:ca40::/32 1; +2400:cac0::/32 1; +2400:cb40::/32 1; +2400:cb80::/32 1; +2400:cbc0::/32 1; +2400:cc40::/32 1; +2400:cc80::/32 1; +2400:ccc0::/32 1; +2400:cd40::/32 1; +2400:cda0::/32 1; +2400:cdc0::/32 1; +2400:ce40::/32 1; +2400:cf40::/32 1; +2400:cfc0::/32 1; +2400:d0a0::/32 1; +2400:d0c0::/32 1; +2400:d100::/32 1; +2400:d1c0::/32 1; +2400:d600::/32 1; +2400:d6c0::/32 1; +2400:d720::/32 1; +2400:d780::/32 1; +2400:da00::/32 1; +2400:dd00::/28 1; +2400:dd40::/32 1; +2400:dda0::/32 1; +2400:de80::/32 1; +2400:dee0::/32 1; +2400:e0c0::/32 1; +2400:e7e0::/32 1; +2400:eda0::/32 1; +2400:eec0::/32 1; +2400:f5c0::/32 1; +2400:f6e0::/32 1; +2400:f840::/32 1; +2400:f860::/32 1; +2400:f980::/32 1; +2400:fac0::/32 1; +2400:fb60::/32 1; +2400:fbc0::/32 1; +2400:fc40::/32 1; +2400:fcc0::/32 1; +2401:60::/32 1; +2401:80::/32 1; +2401:140::/32 1; +2401:1c0::/32 1; +2401:540::/32 1; +2401:620::/32 1; +2401:7c0::/32 1; +2401:9c0::/32 1; +2401:a40::/32 1; +2401:ac0::/32 1; +2401:b40::/32 1; +2401:bc0::/32 1; +2401:c40::/32 1; +2401:cc0::/32 1; +2401:d40::/32 1; +2401:1000::/32 1; +2401:1160::/32 1; +2401:11a0::/36 1; +2401:11a0:1000::/38 1; +2401:11a0:1400::/40 1; +2401:11a0:1600::/39 1; +2401:11a0:1800::/37 1; +2401:11a0:2000::/35 1; +2401:11a0:4000::/34 1; +2401:11a0:8000::/33 1; +2401:12c0::/32 1; +2401:15c0::/32 1; +2401:18e0::/28 1; +2401:1ce0::/32 1; +2401:1d40::/32 1; +2401:1de0::/32 1; +2401:1ec0::/32 1; +2401:1f40::/32 1; +2401:2040::/32 1; +2401:23c0::/32 1; +2401:2980::/32 1; +2401:2b40::/32 1; +2401:2e20::/32 1; +2401:3380::/32 1; +2401:33c0::/32 1; +2401:3440::/32 1; +2401:3480::/32 1; +2401:34a0::/31 1; +2401:34c0::/32 1; +2401:3640::/32 1; +2401:3780::/32 1; +2401:3800::/32 1; +2401:4f80::/32 1; +2401:5180::/32 1; +2401:5680::/32 1; +2401:58a0::/32 1; +2401:59c0::/32 1; +2401:5c60::/32 1; +2401:5c80::/32 1; +2401:5fa0::/32 1; +2401:7180::/32 1; +2401:71c0::/32 1; +2401:7240::/32 1; +2401:7320::/32 1; +2401:7360::/32 1; +2401:73a0::/32 1; +2401:7580::/32 1; +2401:7660::/32 1; +2401:7680::/32 1; +2401:7780::/32 1; +2401:77e0::/32 1; +2401:7820::/32 1; +2401:7880::/32 1; +2401:7980::/32 1; +2401:7a80::/32 1; +2401:7b80::/32 1; +2401:7bc0::/32 1; +2401:7c80::/32 1; +2401:7d80::/32 1; +2401:7e00::/32 1; +2401:8200::/32 1; +2401:8380::/32 1; +2401:8540::/32 1; +2401:8600::/32 1; +2401:8680::/32 1; +2401:8720::/32 1; +2401:8820::/31 1; +2401:8840::/32 1; +2401:8d00::/32 1; +2401:8f40::/32 1; +2401:9340::/32 1; +2401:95e0::/32 1; +2401:9720::/32 1; +2401:98c0::/32 1; +2401:9a00::/32 1; +2401:9ac0::/32 1; +2401:9b20::/31 1; +2401:9b40::/32 1; +2401:9bc0::/32 1; +2401:9ca0::/32 1; +2401:9d20::/32 1; +2401:9dc0::/32 1; +2401:9e40::/32 1; +2401:9fa0::/32 1; +2401:a140::/32 1; +2401:a2e0::/32 1; +2401:a340::/32 1; +2401:a3a0::/32 1; +2401:a4c0::/32 1; +2401:a4e0::/32 1; +2401:a540::/32 1; +2401:a5c0::/32 1; +2401:a620::/32 1; +2401:a640::/32 1; +2401:a6e0::/32 1; +2401:a720::/32 1; +2401:a940::/32 1; +2401:a980::/32 1; +2401:aa00::/32 1; +2401:ab60::/32 1; +2401:acc0::/32 1; +2401:ad40::/32 1; +2401:adc0::/32 1; +2401:afa0::/32 1; +2401:b040::/32 1; +2401:b220::/32 1; +2401:b340::/32 1; +2401:b400::/32 1; +2401:b4c0::/32 1; +2401:b540::/32 1; +2401:b680::/32 1; +2401:b6c0::/32 1; +2401:b6e0::/32 1; +2401:ba00::/32 1; +2401:ba40::/32 1; +2401:bc60::/31 1; +2401:bda0::/32 1; +2401:be00::/32 1; +2401:c020::/32 1; +2401:c200::/32 1; +2401:c540::/32 1; +2401:c600::/32 1; +2401:c640::/32 1; +2401:c6c0::/32 1; +2401:c840::/32 1; +2401:c8c0::/32 1; +2401:cc60::/32 1; +2401:cf40::/32 1; +2401:cfc0::/32 1; +2401:cfe0::/32 1; +2401:d060::/32 1; +2401:d0c0::/32 1; +2401:d0e0::/32 1; +2401:d140::/32 1; +2401:d180::/32 1; +2401:d2c0::/32 1; +2401:d340::/32 1; +2401:d420::/32 1; +2401:d8e0::/32 1; +2401:da00::/32 1; +2401:dbe0::/32 1; +2401:dd20::/32 1; +2401:dd60::/32 1; +2401:de00::/32 1; +2401:dfe0::/32 1; +2401:e020::/32 1; +2401:e080::/32 1; +2401:e0c0::/32 1; +2401:e140::/32 1; +2401:e240::/32 1; +2401:e620::/32 1; +2401:e840::/32 1; +2401:e8c0::/32 1; +2401:e940::/32 1; +2401:e9c0::/32 1; +2401:ec00::/32 1; +2401:ec40::/32 1; +2401:f0a0::/32 1; +2401:f220::/32 1; +2401:f300::/32 1; +2401:f320::/32 1; +2401:f3e0::/32 1; +2401:f9c0:a010::/47 1; +2401:f9c0:a012::/48 1; +2401:fa00:40::/43 1; +2401:fa00:480:7600::/55 1; +2401:fc60::/32 1; +2402:5c0::/32 1; +2402:840::/32 1; +2402:e80:71::/48 1; +2402:1000::/32 1; +2402:14c0::/32 1; +2402:1600::/32 1; +2402:1f80::/32 1; +2402:2000::/32 1; +2402:2280::/32 1; +2402:2540::/32 1; +2402:2640::/32 1; +2402:2d80::/32 1; +2402:2e80::/32 1; +2402:2f40::/32 1; +2402:3040::/32 1; +2402:39c0::/32 1; +2402:3a40::/32 1; +2402:3ac0::/32 1; +2402:3c00::/32 1; +2402:3ec0::/32 1; +2402:3f80::/32 1; +2402:4140::/32 1; +2402:42c0::/32 1; +2402:4340::/32 1; +2402:43c0::/32 1; +2402:4500::/32 1; +2402:4540::/32 1; +2402:4a40::/32 1; +2402:4ac0::/32 1; +2402:4bc0::/32 1; +2402:4c40::/32 1; +2402:4ec0::/32 1; +2402:4f80::/32 1; +2402:5940::/32 1; +2402:59c0::/32 1; +2402:5a40::/32 1; +2402:5d00::/32 1; +2402:5e00::/32 1; +2402:5ec0::/32 1; +2402:5f40::/32 1; +2402:6280::/32 1; +2402:64c0::/32 1; +2402:6740::/32 1; +2402:67c0::/32 1; +2402:6a00::/32 1; +2402:6b40::/32 1; +2402:6bc0::/32 1; +2402:6e00::/32 1; +2402:7140::/32 1; +2402:71c0::/32 1; +2402:72c0::/32 1; +2402:7540::/32 1; +2402:75c0::/32 1; +2402:7d80::/32 1; +2402:8180::/32 1; +2402:8380::/32 1; +2402:85c0::/32 1; +2402:8800::/32 1; +2402:8840::/32 1; +2402:8940::/32 1; +2402:89c0::/32 1; +2402:8b40::/32 1; +2402:8bc0::/32 1; +2402:8d40::/32 1; +2402:8f40::/32 1; +2402:8f80::/32 1; +2402:92c0::/32 1; +2402:93c0::/32 1; +2402:9440::/32 1; +2402:94c0::/32 1; +2402:9580::/32 1; +2402:95c0::/32 1; +2402:9680::/32 1; +2402:96c0::/32 1; +2402:9840::/32 1; +2402:98c0::/32 1; +2402:9940::/32 1; +2402:9a80::/32 1; +2402:9e80:100::/40 1; +2402:9e80:e000::/40 1; +2402:9f80::/32 1; +2402:9fc0::/32 1; +2402:a080::/32 1; +2402:a180::/32 1; +2402:a200::/32 1; +2402:a240::/32 1; +2402:a280::/32 1; +2402:a380::/32 1; +2402:a640::/32 1; +2402:a680::/32 1; +2402:a6c0::/32 1; +2402:a840::/32 1; +2402:a880::/32 1; +2402:aa80::/32 1; +2402:ab80::/32 1; +2402:ae00::/32 1; +2402:ae40::/32 1; +2402:aec0::/32 1; +2402:af80::/32 1; +2402:afc0::/32 1; +2402:b080::/32 1; +2402:b200::/32 1; +2402:b440::/32 1; +2402:b6c0::/32 1; +2402:b880::/32 1; +2402:b8c0::/32 1; +2402:b980::/32 1; +2402:ba80::/32 1; +2402:bac0::/32 1; +2402:bbc0::/32 1; +2402:bf80::/32 1; +2402:c3c0::/32 1; +2402:c5c0::/32 1; +2402:c9c0::/32 1; +2402:cc40::/32 1; +2402:cf00::/32 1; +2402:cf40::/32 1; +2402:d040::/32 1; +2402:d140::/40 1; +2402:d140:300::/40 1; +2402:d140:400::/38 1; +2402:d140:800::/37 1; +2402:d140:1000::/36 1; +2402:d140:2000::/35 1; +2402:d140:4000::/34 1; +2402:d140:8000::/33 1; +2402:d340::/32 1; +2402:d380::/32 1; +2402:d5c0::/32 1; +2402:d6c0::/32 1; +2402:d740::/32 1; +2402:d880::/32 1; +2402:da40::/32 1; +2402:db40::/32 1; +2402:de40::/32 1; +2402:dec0::/32 1; +2402:df40::/32 1; +2402:dfc0::/32 1; +2402:e040::/32 1; +2402:e0c0::/32 1; +2402:e140::/32 1; +2402:e2c0::/32 1; +2402:e380:16::/47 1; +2402:e380:100::/40 1; +2402:e3c0::/32 1; +2402:e480::/32 1; +2402:e680::/32 1; +2402:e740::/32 1; +2402:e780::/32 1; +2402:e7c0::/32 1; +2402:e880::/32 1; +2402:e980::/32 1; +2402:eb80::/32 1; +2402:ec80::/32 1; +2402:ef40::/32 1; +2402:ef80::/32 1; +2402:f000::/32 1; +2402:f480::/32 1; +2402:f540::/32 1; +2402:f580::/32 1; +2402:f780::/32 1; +2402:f8c0::/40 1; +2402:f980::/32 1; +2402:f9c0::/32 1; +2402:fac0::/32 1; +2402:fcc0::/32 1; +2402:ff40::/32 1; +2403:600::/32 1; +2403:700::/32 1; +2403:a80::/32 1; +2403:b80::/32 1; +2403:c80::/32 1; +2403:d40::/32 1; +2403:d80::/32 1; +2403:e80::/32 1; +2403:f40::/32 1; +2403:f80::/32 1; +2403:1180::/32 1; +2403:1340::/32 1; +2403:1440::/32 1; +2403:1580::/32 1; +2403:17c0::/32 1; +2403:1980::/32 1; +2403:1d80::/32 1; +2403:1dc0::/32 1; +2403:1e80::/32 1; +2403:1ec0::/32 1; +2403:1f80::/32 1; +2403:2080::/32 1; +2403:2180::/32 1; +2403:2240::/32 1; +2403:2380::/32 1; +2403:24c0::/32 1; +2403:2580::/32 1; +2403:25c0::/32 1; +2403:2680::/32 1; +2403:2780::/32 1; +2403:28c0::/32 1; +2403:2a00::/32 1; +2403:2a40::/32 1; +2403:2ac0::/32 1; +2403:2cc0::/32 1; +2403:2f40::/32 1; +2403:2fc0::/32 1; +2403:30c0::/32 1; +2403:3140::/32 1; +2403:3280::/32 1; +2403:32c0::/32 1; +2403:3640::/32 1; +2403:3680::/32 1; +2403:36c0::/32 1; +2403:3740::/32 1; +2403:3780::/32 1; +2403:37c0::/32 1; +2403:3840::/32 1; +2403:3880::/32 1; +2403:38c0::/32 1; +2403:3940::/32 1; +2403:3980::/32 1; +2403:39c0::/32 1; +2403:3a40::/32 1; +2403:3b40::/32 1; +2403:3b80::/32 1; +2403:3bc0::/32 1; +2403:3c40::/32 1; +2403:3c80::/32 1; +2403:3cc0::/32 1; +2403:3d40::/32 1; +2403:3dc0::/32 1; +2403:3e80::/32 1; +2403:3ec0::/32 1; +2403:4080::/32 1; +2403:4180::/32 1; +2403:4240::/33 1; +2403:4240:8000::/35 1; +2403:4240:c000::/34 1; +2403:4280::/32 1; +2403:4300::/32 1; +2403:4380::/32 1; +2403:4580::/32 1; +2403:4680::/32 1; +2403:4840::/32 1; +2403:4880::/32 1; +2403:4980::/32 1; +2403:4a80::/32 1; +2403:4b40::/32 1; +2403:4b80::/32 1; +2403:4c80::/32 1; +2403:4cc0::/32 1; +2403:4d80::/32 1; +2403:5080::/32 1; +2403:5280::/32 1; +2403:5380::/32 1; +2403:54c0::/32 1; +2403:5540::/32 1; +2403:5580::/32 1; +2403:5640::/32 1; +2403:5780::/32 1; +2403:5a80::/32 1; +2403:5c80::/32 1; +2403:5e40::/32 1; +2403:5e80::/32 1; +2403:5ec0::/32 1; +2403:5f80::/32 1; +2403:5fc0::/32 1; +2403:6080::/32 1; +2403:6180::/32 1; +2403:6580::/32 1; +2403:6680::/32 1; +2403:6740::/32 1; +2403:6980::/32 1; +2403:6a00::/32 1; +2403:6c80::/32 1; +2403:6e80::/32 1; +2403:6f40::/32 1; +2403:6fc0::/32 1; +2403:7040::/32 1; +2403:7080::/32 1; +2403:7180::/32 1; +2403:7280::/32 1; +2403:7380::/32 1; +2403:7480::/32 1; +2403:7580::/32 1; +2403:78c0::/32 1; +2403:7a80::/32 1; +2403:7b00::/32 1; +2403:7d80::/32 1; +2403:7e80::/32 1; +2403:7f80::/32 1; +2403:8080::/32 1; +2403:8180::/32 1; +2403:8280::/32 1; +2403:8380::/32 1; +2403:83c0::/32 1; +2403:8480::/32 1; +2403:8580::/32 1; +2403:8880::/32 1; +2403:8900::/32 1; +2403:8980::/32 1; +2403:8a80::/32 1; +2403:8b80::/32 1; +2403:8c80::/32 1; +2403:8d00::/32 1; +2403:8d80::/32 1; +2403:9080::/32 1; +2403:9180::/32 1; +2403:9280::/32 1; +2403:9380::/32 1; +2403:9480::/32 1; +2403:9580::/32 1; +2403:9680::/32 1; +2403:9780::/32 1; +2403:9880::/32 1; +2403:9a80::/32 1; +2403:9b00::/32 1; +2403:9b80::/32 1; +2403:9c80::/32 1; +2403:9d00::/32 1; +2403:9d80::/32 1; +2403:9e40::/32 1; +2403:9e80::/32 1; +2403:9ec0::/32 1; +2403:9f80::/32 1; +2403:a100::/32 1; +2403:a140::/32 1; +2403:a200::/32 1; +2403:a280:3000::/40 1; +2403:a480::/32 1; +2403:a580::/32 1; +2403:a680::/32 1; +2403:a6c0::/32 1; +2403:a780::/32 1; +2403:a880::/32 1; +2403:a940::/32 1; +2403:a980::/32 1; +2403:a9c0::/32 1; +2403:aa40::/32 1; +2403:aa80::/32 1; +2403:ab80::/32 1; +2403:af80::/32 1; +2403:b080::/32 1; +2403:b180::/32 1; +2403:b380::/32 1; +2403:b400::/32 1; +2403:b480::/32 1; +2403:b580::/32 1; +2403:b680::/32 1; +2403:b780::/32 1; +2403:b880::/32 1; +2403:b980::/32 1; +2403:ba40::/32 1; +2403:c040::/32 1; +2403:c100::/32 1; +2403:c140::/32 1; +2403:c180::/32 1; +2403:c3c0::/32 1; +2403:c480::/32 1; +2403:c4c0::/32 1; +2403:c980::/32 1; +2403:cdc0::/32 1; +2403:cf80::/32 1; +2403:d080::/32 1; +2403:d180::/32 1; +2403:d280::/32 1; +2403:d380::/32 1; +2403:d440::/32 1; +2403:d480::/32 1; +2403:d580::/32 1; +2403:d680::/32 1; +2403:d780::/32 1; +2403:d7c0::/32 1; +2403:d880::/32 1; +2403:d980::/32 1; +2403:d9c0::/32 1; +2403:da80::/32 1; +2403:db00::/32 1; +2403:db80::/32 1; +2403:dc80::/32 1; +2403:dd80::/32 1; +2403:de80::/32 1; +2403:df80::/32 1; +2403:e080::/32 1; +2403:e180::/32 1; +2403:e280::/32 1; +2403:e300::/32 1; +2403:e480::/32 1; +2403:e580::/32 1; +2403:e680::/32 1; +2403:e700::/32 1; +2403:e780::/32 1; +2403:e7c0::/32 1; +2403:e880::/32 1; +2403:e980::/32 1; +2403:ea80::/32 1; +2403:eb80::/32 1; +2403:ec80::/32 1; +2403:ed40::/32 1; +2403:ed80::/32 1; +2403:ee80::/32 1; +2403:ef80::/32 1; +2403:f080::/32 1; +2403:f180::/32 1; +2403:f240::/32 1; +2403:f280::/32 1; +2403:f300::/32 1; +2403:f380::/32 1; +2403:f4c0::/32 1; +2403:f580::/32 1; +2403:f740::/32 1; +2403:f8c0::/32 1; +2403:f980::/32 1; +2403:fb00::/32 1; +2403:fb80::/32 1; +2403:fe40::/32 1; +2403:fe80::/32 1; +2403:fec0::/32 1; +2403:ff80::/32 1; +2403:ffc0::/31 1; +2404:100::/32 1; +2404:240::/32 1; +2404:440::/32 1; +2404:a80::/32 1; +2404:b80::/32 1; +2404:bc0::/32 1; +2404:f80::/32 1; +2404:1180::/32 1; +2404:14c0::/32 1; +2404:1c80::/32 1; +2404:1d80::/32 1; +2404:21c0::/32 1; +2404:2280:115::/48 1; +2404:2280:116::/47 1; +2404:2280:118::/45 1; +2404:2280:120::/46 1; +2404:2280:19d::/48 1; +2404:2280:19e::/47 1; +2404:2280:1a0::/44 1; +2404:2280:1b0::/46 1; +2404:30c0::/32 1; +2404:31c0::/32 1; +2404:3240::/32 1; +2404:32c0::/32 1; +2404:3340::/32 1; +2404:3700::/32 1; +2404:3840::/32 1; +2404:3940::/32 1; +2404:3bc0::/32 1; +2404:3c40::/32 1; +2404:3f40::/32 1; +2404:4540::/32 1; +2404:4740::/32 1; +2404:4d00::/32 1; +2404:4dc0::/32 1; +2404:5640::/32 1; +2404:5a80::/32 1; +2404:6380::/32 1; +2404:6a40::/32 1; +2404:71c0::/32 1; +2404:7240::/32 1; +2404:74c0::/32 1; +2404:7940::/39 1; +2404:7940:7100::/40 1; +2404:7940:7200::/39 1; +2404:7940:7400::/38 1; +2404:7940:7800::/37 1; +2404:7940:8000::/33 1; +2404:8040::/32 1; +2404:80c0::/32 1; +2404:8140::/32 1; +2404:81c0::/32 1; +2404:8480::/32 1; +2404:8580::/32 1; +2404:8700::/32 1; +2404:8880::/32 1; +2404:8a80::/32 1; +2404:8b00::/32 1; +2404:8dc0::/32 1; +2404:9340::/32 1; +2404:9b80::/32 1; +2404:9c80::/32 1; +2404:b100::/32 1; +2404:b340::/32 1; +2404:b3c0::/32 1; +2404:b4c0::/32 1; +2404:bbc0::/32 1; +2404:bc40::/32 1; +2404:c240::/32 1; +2404:c3c0::/32 1; +2404:c440::/32 1; +2404:c4c0::/32 1; +2404:c540::/32 1; +2404:c5c0::/32 1; +2404:c640::/32 1; +2404:c9c0::/32 1; +2404:d140::/32 1; +2404:d280::/32 1; +2404:d6c0::/32 1; +2404:d7c0::/32 1; +2404:d840::/32 1; +2404:dd80::/32 1; +2404:df00::/32 1; +2404:e280::/32 1; +2404:e540::/32 1; +2404:e5c0::/32 1; +2404:e780::/32 1; +2404:e880::/32 1; +2404:ec40::/32 1; +2404:ecc0::/32 1; +2404:edc0::/32 1; +2404:f040::/32 1; +2405:480::/32 1; +2405:580::/32 1; +2405:680::/32 1; +2405:780::/32 1; +2405:880::/32 1; +2405:940::/32 1; +2405:980::/32 1; +2405:9c0::/32 1; +2405:a80::/32 1; +2405:b80::/32 1; +2405:c80::/32 1; +2405:d80::/32 1; +2405:e80::/32 1; +2405:f80::/32 1; +2405:1080::/32 1; +2405:1180::/32 1; +2405:1280::/32 1; +2405:1380::/32 1; +2405:1480::/32 1; +2405:1580::/32 1; +2405:1680::/32 1; +2405:18c0::/32 1; +2405:1c80::/32 1; +2405:1d80::/32 1; +2405:1e80::/32 1; +2405:1f80::/32 1; +2405:1fc0::/32 1; +2405:2080::/32 1; +2405:2180::/32 1; +2405:2280::/32 1; +2405:2340::/32 1; +2405:2380::/32 1; +2405:2480::/32 1; +2405:24c0::/32 1; +2405:2580::/32 1; +2405:2680::/32 1; +2405:2780::/32 1; +2405:2880::/32 1; +2405:2980::/32 1; +2405:2a80::/32 1; +2405:2c80::/32 1; +2405:2d80::/32 1; +2405:2e80::/32 1; +2405:2f40::/32 1; +2405:2f80::/32 1; +2405:3880::/32 1; +2405:3980::/32 1; +2405:39c0::/32 1; +2405:3a80::/32 1; +2405:3ac0::/32 1; +2405:3b00::/32 1; +2405:3b80::/32 1; +2405:3bc0::/32 1; +2405:3c80::/32 1; +2405:3d80::/32 1; +2405:3e80::/32 1; +2405:3f40::/32 1; +2405:3f80::/32 1; +2405:4080::/32 1; +2405:4140::/32 1; +2405:4180::/32 1; +2405:4280::/32 1; +2405:4380::/32 1; +2405:4480::/32 1; +2405:4580::/32 1; +2405:4680::/32 1; +2405:4780::/32 1; +2405:4880::/32 1; +2405:4980::/32 1; +2405:4a80::/32 1; +2405:4b80::/32 1; +2405:4d40::/32 1; +2405:4e80::/32 1; +2405:4f80::/32 1; +2405:5080::/32 1; +2405:5180::/32 1; +2405:5280::/32 1; +2405:52c0::/32 1; +2405:5380::/32 1; +2405:5480::/32 1; +2405:5580::/32 1; +2405:5680::/32 1; +2405:5780::/32 1; +2405:57c0::/32 1; +2405:5880::/32 1; +2405:5980::/32 1; +2405:5a80::/32 1; +2405:5b80::/32 1; +2405:5c80::/32 1; +2405:5cc0::/32 1; +2405:5d40::/32 1; +2405:5d80::/32 1; +2405:5dc0::/32 1; +2405:5e80::/32 1; +2405:5f80::/32 1; +2405:6080::/32 1; +2405:6180::/32 1; +2405:66c0::/32 1; +2405:68c0::/32 1; +2405:6940::/32 1; +2405:6a80::/32 1; +2405:6b80::/32 1; +2405:6c80::/32 1; +2405:6d80::/32 1; +2405:6e80::/32 1; +2405:6f00::/32 1; +2405:6f80::/32 1; +2405:7040::/32 1; +2405:7080::/32 1; +2405:7180::/32 1; +2405:7280::/32 1; +2405:7380::/32 1; +2405:7480::/32 1; +2405:7580::/32 1; +2405:7680::/32 1; +2405:7780::/32 1; +2405:7880::/32 1; +2405:7980::/32 1; +2405:79c0::/32 1; +2405:7a80::/32 1; +2405:7b80::/32 1; +2405:7c80::/32 1; +2405:7f40::/32 1; +2405:8480::/32 1; +2405:8580::/32 1; +2405:8680::/32 1; +2405:8780::/32 1; +2405:8880::/32 1; +2405:8980::/32 1; +2405:9300::/32 1; +2405:9340::/32 1; +2405:94c0::/32 1; +2405:97c0::/32 1; +2405:9900::/32 1; +2405:99c0::/32 1; +2405:9a80::/32 1; +2405:9b00::/32 1; +2405:9bc0::/32 1; +2405:a900::/32 1; +2405:ab00::/32 1; +2405:ad00::/32 1; +2405:af00::/32 1; +2405:b100::/32 1; +2405:b880::/32 1; +2405:b980::/32 1; +2405:bdc0::/32 1; +2405:c040::/32 1; +2405:ce80::/32 1; +2405:d280::/32 1; +2405:d4c0::/32 1; +2405:d700::/32 1; +2405:df40::/32 1; +2405:e1c0::/32 1; +2405:ef40::/30 1; +2405:f340::/32 1; +2405:f6c0::/32 1; +2406:c0::/32 1; +2406:4c0::/32 1; +2406:7c0::/32 1; +2406:840::/44 1; +2406:840:10::/45 1; +2406:840:18::/46 1; +2406:840:1c::/47 1; +2406:840:1e::/48 1; +2406:840:1f::/52 1; +2406:840:1f:1001::/64 1; +2406:840:1f:1002::/63 1; +2406:840:1f:1004::/62 1; +2406:840:1f:1008::/61 1; +2406:840:1f:1010::/60 1; +2406:840:1f:1020::/59 1; +2406:840:1f:1040::/58 1; +2406:840:1f:1080::/57 1; +2406:840:1f:1100::/56 1; +2406:840:1f:1200::/55 1; +2406:840:1f:1400::/54 1; +2406:840:1f:1800::/53 1; +2406:840:1f:2000::/51 1; +2406:840:1f:4000::/50 1; +2406:840:1f:8000::/49 1; +2406:840:50::/44 1; +2406:840:60::/44 1; +2406:840:70::/45 1; +2406:840:82::/47 1; +2406:840:84::/46 1; +2406:840:88::/45 1; +2406:840:91::/48 1; +2406:840:92::/47 1; +2406:840:94::/46 1; +2406:840:98::/45 1; +2406:840:a0::/43 1; +2406:840:c0::/42 1; +2406:840:190::/44 1; +2406:840:1a0::/43 1; +2406:840:421::/48 1; +2406:840:422::/47 1; +2406:840:424::/46 1; +2406:840:428::/45 1; +2406:840:430::/44 1; +2406:840:440::/42 1; +2406:840:b00::/40 1; +2406:840:d00::/40 1; +2406:840:e00::/39 1; +2406:840:1861::/48 1; +2406:840:1862::/47 1; +2406:840:1864::/46 1; +2406:840:1868::/45 1; +2406:840:1870::/44 1; +2406:840:1880::/41 1; +2406:840:1900::/40 1; +2406:840:1a00::/39 1; +2406:840:1c00::/38 1; +2406:840:2000::/37 1; +2406:840:4000::/40 1; +2406:840:4382::/47 1; +2406:840:4384::/46 1; +2406:840:4388::/45 1; +2406:840:4390::/44 1; +2406:840:43a0::/43 1; +2406:840:5000::/40 1; +2406:840:5862::/47 1; +2406:840:5864::/46 1; +2406:840:5868::/45 1; +2406:840:5870::/44 1; +2406:840:5882::/47 1; +2406:840:5884::/46 1; +2406:840:5888::/45 1; +2406:840:5890::/44 1; +2406:840:58a0::/43 1; +2406:840:58c0::/42 1; +2406:840:5900::/40 1; +2406:840:5a00::/39 1; +2406:840:5c00::/38 1; +2406:840:6000::/35 1; +2406:840:8000::/40 1; +2406:840:9103::/48 1; +2406:840:9104::/46 1; +2406:840:9108::/45 1; +2406:840:9110::/44 1; +2406:840:9120::/43 1; +2406:840:9140::/43 1; +2406:840:95a0::/43 1; +2406:840:95c0::/42 1; +2406:840:9600::/41 1; +2406:840:9820::/43 1; +2406:840:9840::/42 1; +2406:840:9880::/41 1; +2406:840:9900::/42 1; +2406:840:9940::/43 1; +2406:840:9f00::/40 1; +2406:840:a000::/35 1; +2406:840:c000::/41 1; +2406:840:c080::/43 1; +2406:840:c0a0::/45 1; +2406:840:c0a9::/48 1; +2406:840:c0aa::/47 1; +2406:840:c0ac::/46 1; +2406:840:c0b0::/44 1; +2406:840:c0c0::/42 1; +2406:840:c100::/40 1; +2406:840:c200::/39 1; +2406:840:c400::/38 1; +2406:840:c800::/37 1; +2406:840:e020::/44 1; +2406:840:e040::/42 1; +2406:840:e090::/44 1; +2406:840:e0a0::/43 1; +2406:840:e0c0::/42 1; +2406:840:e100::/45 1; +2406:840:e108::/46 1; +2406:840:e10c::/47 1; +2406:840:e10e::/48 1; +2406:840:e120::/43 1; +2406:840:e140::/45 1; +2406:840:e148::/46 1; +2406:840:e14c::/47 1; +2406:840:e14e::/48 1; +2406:840:e150::/44 1; +2406:840:e160::/43 1; +2406:840:e190::/44 1; +2406:840:e1a0::/43 1; +2406:840:e1c0::/43 1; +2406:840:e1f0::/44 1; +2406:840:e200::/45 1; +2406:840:e208::/46 1; +2406:840:e20c::/47 1; +2406:840:e20e::/48 1; +2406:840:e210::/44 1; +2406:840:e220::/43 1; +2406:840:e240::/42 1; +2406:840:e280::/41 1; +2406:840:e310::/44 1; +2406:840:e320::/43 1; +2406:840:e360::/43 1; +2406:840:e380::/41 1; +2406:840:e510::/44 1; +2406:840:e520::/43 1; +2406:840:e540::/43 1; +2406:840:e560::/44 1; +2406:840:e570::/45 1; +2406:840:e578::/47 1; +2406:840:e57a::/48 1; +2406:840:e580::/41 1; +2406:840:e600::/42 1; +2406:840:e640::/43 1; +2406:840:e660::/46 1; +2406:840:e664::/47 1; +2406:840:e668::/45 1; +2406:840:e670::/44 1; +2406:840:e680::/41 1; +2406:840:e700::/42 1; +2406:840:e740::/43 1; +2406:840:e760::/44 1; +2406:840:e780::/41 1; +2406:840:e800::/45 1; +2406:840:e808::/46 1; +2406:840:e80c::/47 1; +2406:840:e80e::/48 1; +2406:840:e810::/44 1; +2406:840:e820::/43 1; +2406:840:e850::/44 1; +2406:840:e860::/43 1; +2406:840:e880::/41 1; +2406:840:e900::/44 1; +2406:840:e910::/48 1; +2406:840:eac0::/42 1; +2406:840:ecc0::/43 1; +2406:840:ecf0::/44 1; +2406:840:ed00::/41 1; +2406:840:ed80::/42 1; +2406:840:edc0::/44 1; +2406:840:f0a2::/47 1; +2406:840:f0a4::/46 1; +2406:840:f0a8::/47 1; +2406:840:f0ab::/48 1; +2406:840:f0ac::/46 1; +2406:840:f0b0::/44 1; +2406:840:f0c0::/42 1; +2406:840:f110::/44 1; +2406:840:f120::/43 1; +2406:840:f140::/42 1; +2406:840:f180::/41 1; +2406:840:f200::/40 1; +2406:840:f300::/41 1; +2406:840:f390::/44 1; +2406:840:f3a0::/43 1; +2406:840:f3c0::/42 1; +2406:840:f400::/45 1; +2406:840:f408::/46 1; +2406:840:f40c::/47 1; +2406:840:f40e::/48 1; +2406:840:f410::/44 1; +2406:840:f420::/43 1; +2406:840:f450::/44 1; +2406:840:f460::/43 1; +2406:840:f480::/41 1; +2406:840:f500::/40 1; +2406:840:f600::/42 1; +2406:840:f640::/43 1; +2406:840:f670::/44 1; +2406:840:f680::/41 1; +2406:840:f800::/42 1; +2406:840:f850::/44 1; +2406:840:f860::/43 1; +2406:840:f880::/41 1; +2406:840:f900::/41 1; +2406:840:f980::/44 1; +2406:840:f9a0::/43 1; +2406:840:f9c0::/42 1; +2406:840:fd03::/48 1; +2406:840:fd0d::/48 1; +2406:840:fd0e::/47 1; +2406:840:fd10::/44 1; +2406:840:fd20::/43 1; +2406:840:fd40::/42 1; +2406:840:fd80::/41 1; +2406:840:fe28::/45 1; +2406:840:fe30::/44 1; +2406:840:fe40::/43 1; +2406:840:fe60::/44 1; +2406:840:fe70::/47 1; +2406:840:fed5::/48 1; +2406:880::/32 1; +2406:d80::/32 1; +2406:e80::/32 1; +2406:f80::/32 1; +2406:1080::/32 1; +2406:1100::/32 1; +2406:1180::/32 1; +2406:1280::/32 1; +2406:1380::/32 1; +2406:15c0::/32 1; +2406:2640::/32 1; +2406:2700::/32 1; +2406:2c40::/32 1; +2406:3300::/32 1; +2406:3640::/32 1; +2406:3880::/32 1; +2406:3980::/32 1; +2406:3ac0::/32 1; +2406:3f80::/32 1; +2406:4080::/32 1; +2406:40c0::/32 1; +2406:4180::/32 1; +2406:4280::/32 1; +2406:42c0::/32 1; +2406:4380::/32 1; +2406:4480::/32 1; +2406:4680::/32 1; +2406:4b80::/32 1; +2406:4c80::/32 1; +2406:4d00::/32 1; +2406:4d80::/32 1; +2406:4e80::/32 1; +2406:4f00::/32 1; +2406:4f80::/32 1; +2406:5080::/32 1; +2406:5180::/32 1; +2406:52c0::/32 1; +2406:5680::/32 1; +2406:5840::/26 1; +2406:5940::/32 1; +2406:5a40::/32 1; +2406:61c0::/29 1; +2406:6380::/32 1; +2406:6500::/32 1; +2406:65c0::/32 1; +2406:6640::/32 1; +2406:6bc0::/32 1; +2406:6e80::/32 1; +2406:7980::/32 1; +2406:7d00::/32 1; +2406:8280::/32 1; +2406:8380::/32 1; +2406:8780::/32 1; +2406:9d80::/32 1; +2406:a480::/32 1; +2406:a580::/32 1; +2406:a680::/32 1; +2406:a780::/32 1; +2406:a880::/32 1; +2406:a8c0::/32 1; +2406:a980::/32 1; +2406:aa80::/32 1; +2406:ab80::/32 1; +2406:ac80::/32 1; +2406:acc0::/32 1; +2406:ad40::/32 1; +2406:ad80::/32 1; +2406:ae80::/32 1; +2406:af80::/32 1; +2406:b080::/32 1; +2406:b640::/32 1; +2406:b880::/32 1; +2406:b980::/32 1; +2406:ba80::/32 1; +2406:bf80::/32 1; +2406:c080::/32 1; +2406:c180::/32 1; +2406:c280::/32 1; +2406:c340::/32 1; +2406:c480::/32 1; +2406:c580::/32 1; +2406:c680::/32 1; +2406:c780::/32 1; +2406:c880::/32 1; +2406:c980::/32 1; +2406:ca80::/32 1; +2406:cac0:100::/40 1; +2406:cac0:200::/39 1; +2406:cac0:400::/38 1; +2406:cac0:800::/37 1; +2406:cac0:1000::/36 1; +2406:cac0:2000::/35 1; +2406:cac0:4000::/34 1; +2406:cac0:8000::/33 1; +2406:cb80::/32 1; +2406:cc80::/32 1; +2406:cd80::/32 1; +2406:ce80::/32 1; +2406:cf00::/30 1; +2406:cf80::/32 1; +2406:d080::/32 1; +2406:d180::/32 1; +2406:d280::/32 1; +2406:d2c0::/32 1; +2406:d380::/32 1; +2406:d440::/32 1; +2406:d480::/32 1; +2406:d580::/32 1; +2406:d680::/32 1; +2406:d780::/32 1; +2406:d880::/32 1; +2406:d980::/32 1; +2406:db80::/32 1; +2406:dc80::/32 1; +2406:de80::/32 1; +2406:df80::/32 1; +2406:e080::/32 1; +2406:e180::/32 1; +2406:e380::/32 1; +2406:e500:700::/40 1; +2406:e500:800::/37 1; +2406:e500:1000::/36 1; +2406:e500:2000::/40 1; +2406:e500:2200::/40 1; +2406:e500:4000::/40 1; +2406:e500:4800::/40 1; +2406:e500:5000::/40 1; +2406:e500:5200::/40 1; +2406:e580::/32 1; +2406:e680::/32 1; +2406:e780::/32 1; +2406:ea40::/28 1; +2406:f4c0::/32 1; +2406:f7c0::/32 1; +2406:f980::/32 1; +2406:fc80::/32 1; +2406:fd80::/32 1; +2406:ff00::/32 1; +2407:cc0::/32 1; +2407:17c0::/32 1; +2407:1d00::/32 1; +2407:2280::/32 1; +2407:2380::/32 1; +2407:2440:2::/48 1; +2407:2780::/32 1; +2407:2ac0::/32 1; +2407:31c0::/32 1; +2407:3700::/32 1; +2407:3900::/32 1; +2407:3f40::/32 1; +2407:43c0::/32 1; +2407:4580::/32 1; +2407:4680::/32 1; +2407:4740::/32 1; +2407:4980::/32 1; +2407:4a80::/32 1; +2407:4c80::/32 1; +2407:4d80::/32 1; +2407:4e80::/32 1; +2407:4f00::/32 1; +2407:5380::/32 1; +2407:5840::/32 1; +2407:6580::/32 1; +2407:6c40::/32 1; +2407:7680::/32 1; +2407:7780::/32 1; +2407:7880::/32 1; +2407:7d80::/32 1; +2407:7e80::/32 1; +2407:8880::/32 1; +2407:8b80::/32 1; +2407:9080::/32 1; +2407:9180::/32 1; +2407:94c0::/32 1; +2407:9680::/32 1; +2407:9f80::/32 1; +2407:a640::/32 1; +2407:a940::/32 1; +2407:ad80::/32 1; +2407:ae80::/32 1; +2407:af80::/32 1; +2407:b180::/32 1; +2407:b280::/32 1; +2407:b580::/32 1; +2407:b680::/32 1; +2407:b780::/32 1; +2407:b880::/32 1; +2407:b980::/32 1; +2407:ba00::/32 1; +2407:ba80::/32 1; +2407:bb80::/32 1; +2407:bc80::/32 1; +2407:bd80::/32 1; +2407:bdc0::/32 1; +2407:be80::/32 1; +2407:bf80::/32 1; +2407:c080:1000::/36 1; +2407:c080:2000::/35 1; +2407:c080:4800::/37 1; +2407:c080:5800::/37 1; +2407:c080:6000::/36 1; +2407:c080:7100::/40 1; +2407:c080:7200::/39 1; +2407:c080:7400::/38 1; +2407:c080:7800::/37 1; +2407:c080:8000::/33 1; +2407:c380::/32 1; +2407:c480::/32 1; +2407:c580::/32 1; +2407:c680::/32 1; +2407:c780::/32 1; +2407:c880::/32 1; +2407:c980::/32 1; +2407:cb80::/32 1; +2407:cc80::/32 1; +2407:cd80::/32 1; +2407:ce80::/32 1; +2407:cf80::/32 1; +2407:d480::/32 1; +2407:d580::/32 1; +2407:d680::/32 1; +2407:d780::/32 1; +2407:d7c0::/32 1; +2407:d880::/32 1; +2407:d8c0::/32 1; +2407:d980::/32 1; +2407:d9c0::/32 1; +2407:da80::/32 1; +2407:db80::/32 1; +2407:dc80::/32 1; +2407:dd80::/32 1; +2407:de80::/32 1; +2407:df80::/32 1; +2407:e080::/32 1; +2407:e180::/32 1; +2407:e280::/32 1; +2407:e380::/32 1; +2407:e480::/32 1; +2407:e580::/32 1; +2407:e680::/32 1; +2407:e780::/32 1; +2407:e800::/32 1; +2407:ea80::/32 1; +2407:eb80::/32 1; +2407:ec40::/32 1; +2407:ec80::/32 1; +2407:ecc0::/32 1; +2407:ed80::/32 1; +2407:ee80::/32 1; +2407:ef80::/32 1; +2407:f080::/32 1; +2407:f180::/32 1; +2407:f280::/32 1; +2407:f380::/32 1; +2407:f480::/32 1; +2407:f580::/32 1; +2407:f680::/32 1; +2407:f780::/32 1; +2407:f880::/32 1; +2407:f980::/32 1; +2407:fa80::/32 1; +2407:fb80::/32 1; +2407:fc80::/32 1; +2407:fd80::/32 1; +2408:4000::/31 1; +2408:4004::/32 1; +2408:400a::/31 1; +2408:400c::/32 1; +2408:4014::/32 1; +2408:6000::/24 1; +2408:8000::/25 1; +2408:8080::/26 1; +2408:80c0::/27 1; +2408:80e0::/28 1; +2408:80f0::/29 1; +2408:80f8::/31 1; +2408:80fa::/34 1; +2408:80fa:4000::/35 1; +2408:80fa:6000::/36 1; +2408:80fa:7000::/38 1; +2408:80fa:7400::/40 1; +2408:80fa:7500::/41 1; +2408:80fa:75c0::/42 1; +2408:80fa:7600::/39 1; +2408:80fa:7800::/37 1; +2408:80fa:8000::/33 1; +2408:80fb::/32 1; +2408:80fc::/30 1; +2408:8100::/24 1; +2408:8200::/28 1; +2408:8211::/32 1; +2408:8212::/31 1; +2408:8214::/30 1; +2408:8218::/29 1; +2408:8220::/30 1; +2408:8224::/31 1; +2408:8227::/32 1; +2408:8228::/29 1; +2408:8230::/29 1; +2408:8238::/30 1; +2408:823c::/33 1; +2408:823c:8000::/35 1; +2408:823c:a000::/37 1; +2408:823c:a800::/38 1; +2408:823c:ac00::/39 1; +2408:823c:af00::/40 1; +2408:823c:b000::/36 1; +2408:823c:c000::/34 1; +2408:823d::/32 1; +2408:823e::/31 1; +2408:8240::/30 1; +2408:8244::/38 1; +2408:8244:400::/39 1; +2408:8244:700::/40 1; +2408:8244:800::/37 1; +2408:8244:1000::/36 1; +2408:8244:2000::/36 1; +2408:8244:3000::/39 1; +2408:8244:3300::/40 1; +2408:8244:3400::/38 1; +2408:8244:3800::/37 1; +2408:8244:4000::/35 1; +2408:8244:6000::/37 1; +2408:8244:6900::/40 1; +2408:8244:6a00::/39 1; +2408:8244:6c00::/38 1; +2408:8244:7000::/36 1; +2408:8244:8000::/37 1; +2408:8244:8900::/40 1; +2408:8244:8a00::/39 1; +2408:8244:8c00::/38 1; +2408:8244:9000::/37 1; +2408:8244:9800::/40 1; +2408:8244:9a00::/39 1; +2408:8244:9c00::/38 1; +2408:8244:a000::/38 1; +2408:8244:a400::/39 1; +2408:8244:a600::/40 1; +2408:8244:a800::/37 1; +2408:8244:b000::/36 1; +2408:8244:c000::/34 1; +2408:8245::/32 1; +2408:8246::/31 1; +2408:8248::/30 1; +2408:824c::/39 1; +2408:824c:300::/40 1; +2408:824c:400::/38 1; +2408:824c:800::/37 1; +2408:824c:1000::/36 1; +2408:824c:2000::/35 1; +2408:824c:4000::/34 1; +2408:824c:8000::/33 1; +2408:824d::/32 1; +2408:824e::/33 1; +2408:824e:8000::/34 1; +2408:824e:c000::/38 1; +2408:824e:c400::/39 1; +2408:824e:c600::/40 1; +2408:824e:c800::/37 1; +2408:824e:d000::/36 1; +2408:824e:e000::/35 1; +2408:824f::/32 1; +2408:8250::/28 1; +2408:8260::/27 1; +2408:8280::/25 1; +2408:8300::/26 1; +2408:8340::/28 1; +2408:8350::/31 1; +2408:8352::/33 1; +2408:8352:8000::/34 1; +2408:8352:c000::/37 1; +2408:8352:c800::/38 1; +2408:8352:cd00::/40 1; +2408:8352:ce00::/39 1; +2408:8352:d000::/36 1; +2408:8352:e000::/39 1; +2408:8352:e300::/40 1; +2408:8352:e400::/38 1; +2408:8352:e800::/37 1; +2408:8352:f000::/39 1; +2408:8352:f300::/40 1; +2408:8352:f400::/38 1; +2408:8352:f800::/37 1; +2408:8353::/32 1; +2408:8354::/30 1; +2408:8358::/29 1; +2408:8360::/27 1; +2408:8380::/25 1; +2408:8400::/29 1; +2408:8408::/30 1; +2408:840c::/32 1; +2408:840d::/37 1; +2408:840d:800::/38 1; +2408:840d:c00::/40 1; +2408:840d:e00::/39 1; +2408:840d:1000::/37 1; +2408:840d:1800::/38 1; +2408:840d:1c00::/39 1; +2408:840d:1f00::/40 1; +2408:840d:2000::/35 1; +2408:840d:4000::/35 1; +2408:840d:6000::/37 1; +2408:840d:6800::/39 1; +2408:840d:6b00::/40 1; +2408:840d:6c00::/39 1; +2408:840d:6f00::/40 1; +2408:840d:7000::/36 1; +2408:840d:8000::/38 1; +2408:840d:8500::/40 1; +2408:840d:8600::/39 1; +2408:840d:8800::/37 1; +2408:840d:9000::/38 1; +2408:840d:9400::/40 1; +2408:840d:9600::/39 1; +2408:840d:9800::/37 1; +2408:840d:a000::/37 1; +2408:840d:a800::/38 1; +2408:840d:ac00::/40 1; +2408:840d:ae00::/39 1; +2408:840d:b000::/36 1; +2408:840d:c000::/38 1; +2408:840d:c400::/39 1; +2408:840d:c600::/40 1; +2408:840d:c800::/37 1; +2408:840d:d000::/36 1; +2408:840d:e000::/35 1; +2408:840e::/31 1; +2408:8410::/30 1; +2408:8414::/31 1; +2408:8416::/32 1; +2408:8417::/38 1; +2408:8417:500::/40 1; +2408:8417:600::/39 1; +2408:8417:800::/37 1; +2408:8417:1000::/36 1; +2408:8417:2000::/35 1; +2408:8417:4000::/34 1; +2408:8417:8000::/33 1; +2408:8418:100::/40 1; +2408:8418:300::/40 1; +2408:8418:500::/40 1; +2408:8418:600::/40 1; +2408:8418:800::/38 1; +2408:8418:c00::/39 1; +2408:8418:f00::/40 1; +2408:8418:1000::/36 1; +2408:8418:2000::/39 1; +2408:8418:2300::/40 1; +2408:8418:2400::/38 1; +2408:8418:2800::/37 1; +2408:8418:3000::/36 1; +2408:8418:4000::/34 1; +2408:8418:8000::/33 1; +2408:8419::/32 1; +2408:841a::/31 1; +2408:841c::/32 1; +2408:841d::/33 1; +2408:841d:8000::/36 1; +2408:841d:9000::/37 1; +2408:841d:9800::/40 1; +2408:841d:9a00::/39 1; +2408:841d:9c00::/38 1; +2408:841d:a000::/35 1; +2408:841d:c000::/35 1; +2408:841d:e100::/40 1; +2408:841d:e200::/39 1; +2408:841d:e400::/38 1; +2408:841d:e800::/37 1; +2408:841d:f000::/36 1; +2408:841e::/39 1; +2408:841e:300::/40 1; +2408:841e:400::/38 1; +2408:841e:800::/37 1; +2408:841e:1000::/36 1; +2408:841e:2000::/35 1; +2408:841e:4000::/34 1; +2408:841e:8000::/33 1; +2408:841f::/32 1; +2408:8420::/32 1; +2408:8421::/36 1; +2408:8421:1000::/39 1; +2408:8421:1300::/40 1; +2408:8421:1400::/38 1; +2408:8421:1800::/37 1; +2408:8421:2000::/35 1; +2408:8421:4000::/35 1; +2408:8421:6200::/39 1; +2408:8421:6400::/38 1; +2408:8421:6800::/37 1; +2408:8421:7000::/36 1; +2408:8421:8000::/33 1; +2408:8422::/34 1; +2408:8422:4000::/35 1; +2408:8422:6000::/36 1; +2408:8422:7000::/40 1; +2408:8422:7200::/39 1; +2408:8422:7400::/38 1; +2408:8422:7800::/37 1; +2408:8422:8000::/36 1; +2408:8422:9000::/39 1; +2408:8422:9200::/40 1; +2408:8422:9400::/38 1; +2408:8422:9800::/37 1; +2408:8422:a000::/35 1; +2408:8422:c000::/34 1; +2408:8423::/32 1; +2408:8424::/31 1; +2408:8426::/32 1; +2408:8428::/30 1; +2408:842c::/34 1; +2408:842c:4000::/35 1; +2408:842c:6000::/36 1; +2408:842c:7000::/37 1; +2408:842c:7800::/38 1; +2408:842c:7d00::/40 1; +2408:842c:7e00::/39 1; +2408:842c:8000::/33 1; +2408:842d::/32 1; +2408:842e::/31 1; +2408:8430::/32 1; +2408:8431::/36 1; +2408:8431:1100::/40 1; +2408:8431:1200::/39 1; +2408:8431:1400::/38 1; +2408:8431:1800::/38 1; +2408:8431:1e00::/39 1; +2408:8431:2000::/35 1; +2408:8431:4000::/35 1; +2408:8431:6000::/36 1; +2408:8431:7000::/39 1; +2408:8431:7200::/40 1; +2408:8431:7400::/38 1; +2408:8431:7800::/37 1; +2408:8431:8000::/33 1; +2408:8432::/31 1; +2408:8434::/32 1; +2408:8435::/37 1; +2408:8435:800::/40 1; +2408:8435:a00::/39 1; +2408:8435:c00::/39 1; +2408:8435:e00::/40 1; +2408:8435:1000::/36 1; +2408:8435:2000::/35 1; +2408:8435:4000::/34 1; +2408:8435:8000::/33 1; +2408:8436::/31 1; +2408:8438::/40 1; +2408:8438:300::/40 1; +2408:8438:400::/38 1; +2408:8438:800::/37 1; +2408:8438:1000::/36 1; +2408:8438:2000::/36 1; +2408:8438:3000::/37 1; +2408:8438:3800::/38 1; +2408:8438:3c00::/39 1; +2408:8438:3f00::/40 1; +2408:8438:4000::/34 1; +2408:8438:8000::/33 1; +2408:8439::/36 1; +2408:8439:1000::/38 1; +2408:8439:1400::/39 1; +2408:8439:1700::/40 1; +2408:8439:1800::/37 1; +2408:8439:2000::/35 1; +2408:8439:4000::/34 1; +2408:8439:8000::/33 1; +2408:843a::/31 1; +2408:843c::/36 1; +2408:843c:1000::/37 1; +2408:843c:1900::/40 1; +2408:843c:1a00::/39 1; +2408:843c:1c00::/38 1; +2408:843c:2100::/40 1; +2408:843c:2200::/39 1; +2408:843c:2400::/39 1; +2408:843c:2700::/40 1; +2408:843c:2800::/37 1; +2408:843c:3000::/36 1; +2408:843c:4000::/38 1; +2408:843c:4400::/39 1; +2408:843c:4700::/40 1; +2408:843c:4800::/40 1; +2408:843c:4a00::/39 1; +2408:843c:4c00::/38 1; +2408:843c:5000::/38 1; +2408:843c:5400::/39 1; +2408:843c:5700::/40 1; +2408:843c:5800::/37 1; +2408:843c:6000::/35 1; +2408:843c:8000::/33 1; +2408:843d::/32 1; +2408:843e:300::/40 1; +2408:843e:400::/38 1; +2408:843e:800::/37 1; +2408:843e:1000::/36 1; +2408:843e:2000::/35 1; +2408:843e:4000::/34 1; +2408:843e:8000::/36 1; +2408:843e:9000::/38 1; +2408:843e:9500::/40 1; +2408:843e:9600::/39 1; +2408:843e:9800::/37 1; +2408:843e:a000::/36 1; +2408:843e:b000::/37 1; +2408:843e:b800::/38 1; +2408:843e:bc00::/39 1; +2408:843e:bf00::/40 1; +2408:843e:c000::/38 1; +2408:843e:c400::/39 1; +2408:843e:c700::/40 1; +2408:843e:c800::/37 1; +2408:843e:d000::/36 1; +2408:843e:e000::/35 1; +2408:843f::/35 1; +2408:843f:2100::/40 1; +2408:843f:2200::/39 1; +2408:843f:2400::/38 1; +2408:843f:2800::/37 1; +2408:843f:3000::/36 1; +2408:843f:4000::/39 1; +2408:843f:4300::/40 1; +2408:843f:4400::/39 1; +2408:843f:4700::/40 1; +2408:843f:4800::/37 1; +2408:843f:5000::/36 1; +2408:843f:6000::/35 1; +2408:843f:8000::/33 1; +2408:8440::/36 1; +2408:8440:1000::/37 1; +2408:8440:1800::/39 1; +2408:8440:1b00::/40 1; +2408:8440:1c00::/38 1; +2408:8440:2000::/39 1; +2408:8440:2300::/40 1; +2408:8440:2400::/38 1; +2408:8440:2900::/40 1; +2408:8440:2a00::/39 1; +2408:8440:2c00::/38 1; +2408:8440:3100::/40 1; +2408:8440:3300::/40 1; +2408:8440:3400::/38 1; +2408:8440:3800::/37 1; +2408:8440:4000::/37 1; +2408:8440:4800::/38 1; +2408:8440:4c00::/39 1; +2408:8440:4f00::/40 1; +2408:8440:5100::/40 1; +2408:8440:5200::/39 1; +2408:8440:5500::/40 1; +2408:8440:5600::/39 1; +2408:8440:5800::/39 1; +2408:8440:5b00::/40 1; +2408:8440:5c00::/38 1; +2408:8440:6000::/38 1; +2408:8440:6400::/39 1; +2408:8440:6700::/40 1; +2408:8440:6800::/37 1; +2408:8440:7000::/36 1; +2408:8440:8000::/37 1; +2408:8440:8900::/40 1; +2408:8440:8a00::/39 1; +2408:8440:8c00::/38 1; +2408:8440:9000::/36 1; +2408:8440:a000::/35 1; +2408:8440:c000::/34 1; +2408:8441::/32 1; +2408:8442::/31 1; +2408:8444::/38 1; +2408:8444:400::/39 1; +2408:8444:600::/40 1; +2408:8444:800::/37 1; +2408:8444:1000::/36 1; +2408:8444:2000::/35 1; +2408:8444:4000::/34 1; +2408:8444:8000::/33 1; +2408:8445::/32 1; +2408:8446::/31 1; +2408:8448::/31 1; +2408:844a::/32 1; +2408:844b::/39 1; +2408:844b:300::/40 1; +2408:844b:400::/38 1; +2408:844b:800::/37 1; +2408:844b:1000::/36 1; +2408:844b:2000::/35 1; +2408:844b:4000::/34 1; +2408:844b:8000::/33 1; +2408:844c::/40 1; +2408:844c:200::/39 1; +2408:844c:400::/38 1; +2408:844c:800::/37 1; +2408:844c:1000::/36 1; +2408:844c:2000::/39 1; +2408:844c:2200::/40 1; +2408:844c:2400::/38 1; +2408:844c:2800::/37 1; +2408:844c:3000::/37 1; +2408:844c:3800::/40 1; +2408:844c:3a00::/39 1; +2408:844c:3c00::/38 1; +2408:844c:4000::/37 1; +2408:844c:4800::/40 1; +2408:844c:4a00::/39 1; +2408:844c:4c00::/38 1; +2408:844c:5000::/37 1; +2408:844c:5800::/38 1; +2408:844c:5c00::/40 1; +2408:844c:5e00::/39 1; +2408:844c:6000::/35 1; +2408:844c:8000::/35 1; +2408:844c:a000::/37 1; +2408:844c:a800::/38 1; +2408:844c:ac00::/39 1; +2408:844c:ae00::/40 1; +2408:844c:b000::/36 1; +2408:844c:c000::/40 1; +2408:844c:c200::/39 1; +2408:844c:c400::/38 1; +2408:844c:c800::/37 1; +2408:844c:d000::/36 1; +2408:844c:e000::/35 1; +2408:844d::/39 1; +2408:844d:200::/40 1; +2408:844d:400::/38 1; +2408:844d:800::/40 1; +2408:844d:a00::/39 1; +2408:844d:c00::/38 1; +2408:844d:1000::/36 1; +2408:844d:2000::/36 1; +2408:844d:3000::/37 1; +2408:844d:3800::/40 1; +2408:844d:3a00::/39 1; +2408:844d:3c00::/38 1; +2408:844d:4000::/37 1; +2408:844d:4800::/40 1; +2408:844d:4a00::/39 1; +2408:844d:4c00::/38 1; +2408:844d:5000::/36 1; +2408:844d:6000::/35 1; +2408:844d:8000::/36 1; +2408:844d:9000::/37 1; +2408:844d:9800::/38 1; +2408:844d:9c00::/39 1; +2408:844d:9e00::/40 1; +2408:844d:a000::/40 1; +2408:844d:a200::/39 1; +2408:844d:a400::/38 1; +2408:844d:a800::/37 1; +2408:844d:b000::/37 1; +2408:844d:b800::/38 1; +2408:844d:bc00::/40 1; +2408:844d:be00::/39 1; +2408:844d:c000::/40 1; +2408:844d:c200::/39 1; +2408:844d:c400::/38 1; +2408:844d:c800::/37 1; +2408:844d:d000::/36 1; +2408:844d:e000::/35 1; +2408:844e::/32 1; +2408:844f::/38 1; +2408:844f:400::/40 1; +2408:844f:600::/39 1; +2408:844f:800::/37 1; +2408:844f:1000::/38 1; +2408:844f:1400::/40 1; +2408:844f:1600::/39 1; +2408:844f:1800::/37 1; +2408:844f:2000::/35 1; +2408:844f:4000::/34 1; +2408:844f:8000::/36 1; +2408:844f:9000::/37 1; +2408:844f:9800::/38 1; +2408:844f:9c00::/39 1; +2408:844f:9e00::/40 1; +2408:844f:a000::/35 1; +2408:844f:c000::/34 1; +2408:8450::/30 1; +2408:8454::/31 1; +2408:8456::/37 1; +2408:8456:800::/39 1; +2408:8456:a00::/44 1; +2408:8456:a40::/42 1; +2408:8456:a80::/41 1; +2408:8456:b00::/40 1; +2408:8456:c00::/38 1; +2408:8456:1000::/36 1; +2408:8456:2000::/36 1; +2408:8456:3010::/44 1; +2408:8456:3020::/43 1; +2408:8456:3040::/42 1; +2408:8456:3080::/41 1; +2408:8456:3100::/40 1; +2408:8456:3200::/39 1; +2408:8456:3400::/38 1; +2408:8456:3800::/39 1; +2408:8456:3a10::/44 1; +2408:8456:3a20::/43 1; +2408:8456:3a40::/42 1; +2408:8456:3a80::/41 1; +2408:8456:3b00::/40 1; +2408:8456:3c00::/38 1; +2408:8456:4000::/34 1; +2408:8456:8000::/35 1; +2408:8456:a000::/42 1; +2408:8456:a200::/39 1; +2408:8456:a400::/38 1; +2408:8456:a800::/37 1; +2408:8456:b000::/36 1; +2408:8456:c000::/34 1; +2408:8457::/32 1; +2408:8458::/32 1; +2408:8459::/43 1; +2408:8459:20::/44 1; +2408:8459:40::/42 1; +2408:8459:80::/41 1; +2408:8459:100::/40 1; +2408:8459:200::/39 1; +2408:8459:400::/39 1; +2408:8459:600::/43 1; +2408:8459:630::/44 1; +2408:8459:650::/44 1; +2408:8459:660::/43 1; +2408:8459:680::/41 1; +2408:8459:700::/40 1; +2408:8459:800::/43 1; +2408:8459:820::/44 1; +2408:8459:840::/42 1; +2408:8459:880::/41 1; +2408:8459:900::/40 1; +2408:8459:a00::/42 1; +2408:8459:a40::/43 1; +2408:8459:a90::/44 1; +2408:8459:aa0::/43 1; +2408:8459:ac0::/42 1; +2408:8459:b00::/40 1; +2408:8459:c00::/44 1; +2408:8459:c30::/44 1; +2408:8459:c50::/44 1; +2408:8459:c60::/43 1; +2408:8459:c80::/41 1; +2408:8459:d00::/40 1; +2408:8459:e00::/39 1; +2408:8459:1000::/38 1; +2408:8459:1400::/44 1; +2408:8459:1420::/44 1; +2408:8459:1450::/44 1; +2408:8459:1490::/44 1; +2408:8459:14a0::/43 1; +2408:8459:14c0::/42 1; +2408:8459:1500::/40 1; +2408:8459:1600::/39 1; +2408:8459:1800::/44 1; +2408:8459:1830::/44 1; +2408:8459:1840::/43 1; +2408:8459:1860::/44 1; +2408:8459:1900::/42 1; +2408:8459:1940::/43 1; +2408:8459:1960::/44 1; +2408:8459:1a00::/42 1; +2408:8459:1a40::/43 1; +2408:8459:1a60::/44 1; +2408:8459:1b00::/42 1; +2408:8459:1b40::/43 1; +2408:8459:1b60::/44 1; +2408:8459:1c00::/42 1; +2408:8459:1c40::/43 1; +2408:8459:1c60::/44 1; +2408:8459:1d00::/42 1; +2408:8459:1d40::/43 1; +2408:8459:1d60::/44 1; +2408:8459:1e00::/42 1; +2408:8459:1e40::/43 1; +2408:8459:1e60::/44 1; +2408:8459:1f00::/42 1; +2408:8459:1f40::/43 1; +2408:8459:1f60::/44 1; +2408:8459:2000::/42 1; +2408:8459:2040::/43 1; +2408:8459:2060::/44 1; +2408:8459:2100::/42 1; +2408:8459:2140::/43 1; +2408:8459:2160::/44 1; +2408:8459:2200::/39 1; +2408:8459:2400::/38 1; +2408:8459:2800::/38 1; +2408:8459:2c00::/42 1; +2408:8459:2c40::/44 1; +2408:8459:2c70::/44 1; +2408:8459:2c80::/41 1; +2408:8459:2d00::/40 1; +2408:8459:2e00::/44 1; +2408:8459:2e70::/44 1; +2408:8459:2e80::/41 1; +2408:8459:2f00::/40 1; +2408:8459:3000::/44 1; +2408:8459:3070::/44 1; +2408:8459:3080::/41 1; +2408:8459:3100::/40 1; +2408:8459:3200::/43 1; +2408:8459:3220::/44 1; +2408:8459:3240::/44 1; +2408:8459:3270::/44 1; +2408:8459:3280::/41 1; +2408:8459:3300::/40 1; +2408:8459:3400::/44 1; +2408:8459:3470::/44 1; +2408:8459:3480::/41 1; +2408:8459:3500::/40 1; +2408:8459:3600::/42 1; +2408:8459:3640::/44 1; +2408:8459:3670::/44 1; +2408:8459:3680::/41 1; +2408:8459:3700::/40 1; +2408:8459:3800::/42 1; +2408:8459:3840::/44 1; +2408:8459:3870::/44 1; +2408:8459:3880::/41 1; +2408:8459:3900::/40 1; +2408:8459:3a00::/42 1; +2408:8459:3a40::/44 1; +2408:8459:3a70::/44 1; +2408:8459:3a80::/41 1; +2408:8459:3b00::/40 1; +2408:8459:3c00::/42 1; +2408:8459:3c40::/44 1; +2408:8459:3c70::/44 1; +2408:8459:3c80::/41 1; +2408:8459:3d00::/40 1; +2408:8459:3e00::/39 1; +2408:8459:4000::/44 1; +2408:8459:4050::/44 1; +2408:8459:4060::/43 1; +2408:8459:4080::/41 1; +2408:8459:4100::/40 1; +2408:8459:4200::/39 1; +2408:8459:4400::/38 1; +2408:8459:4800::/38 1; +2408:8459:4c00::/41 1; +2408:8459:4cc0::/42 1; +2408:8459:4d00::/40 1; +2408:8459:4e00::/39 1; +2408:8459:5000::/38 1; +2408:8459:5400::/41 1; +2408:8459:5480::/42 1; +2408:8459:5600::/39 1; +2408:8459:5800::/37 1; +2408:8459:6000::/39 1; +2408:8459:6200::/44 1; +2408:8459:6230::/44 1; +2408:8459:6240::/42 1; +2408:8459:6280::/41 1; +2408:8459:6300::/40 1; +2408:8459:6400::/42 1; +2408:8459:6440::/43 1; +2408:8459:6460::/44 1; +2408:8459:6600::/42 1; +2408:8459:6640::/43 1; +2408:8459:6660::/44 1; +2408:8459:6800::/42 1; +2408:8459:6840::/43 1; +2408:8459:6860::/44 1; +2408:8459:6a00::/42 1; +2408:8459:6a40::/43 1; +2408:8459:6a60::/44 1; +2408:8459:6c00::/42 1; +2408:8459:6c40::/43 1; +2408:8459:6c60::/44 1; +2408:8459:6e00::/44 1; +2408:8459:6e30::/44 1; +2408:8459:6e40::/43 1; +2408:8459:6e60::/44 1; +2408:8459:7000::/44 1; +2408:8459:7200::/42 1; +2408:8459:7240::/43 1; +2408:8459:7260::/44 1; +2408:8459:7400::/42 1; +2408:8459:7440::/43 1; +2408:8459:7460::/44 1; +2408:8459:7600::/42 1; +2408:8459:7640::/43 1; +2408:8459:7660::/44 1; +2408:8459:7800::/39 1; +2408:8459:7a00::/42 1; +2408:8459:7a40::/43 1; +2408:8459:7a60::/44 1; +2408:8459:7c00::/42 1; +2408:8459:7c40::/43 1; +2408:8459:7c60::/44 1; +2408:8459:7e00::/42 1; +2408:8459:7e40::/43 1; +2408:8459:7e60::/44 1; +2408:8459:8000::/42 1; +2408:8459:8040::/43 1; +2408:8459:8060::/44 1; +2408:8459:8200::/43 1; +2408:8459:8220::/44 1; +2408:8459:8400::/42 1; +2408:8459:8440::/43 1; +2408:8459:8460::/44 1; +2408:8459:8600::/42 1; +2408:8459:8640::/43 1; +2408:8459:8660::/44 1; +2408:8459:8800::/42 1; +2408:8459:8840::/43 1; +2408:8459:8860::/44 1; +2408:8459:8a00::/42 1; +2408:8459:8a40::/43 1; +2408:8459:8a60::/44 1; +2408:8459:8c00::/42 1; +2408:8459:8c40::/43 1; +2408:8459:8c60::/44 1; +2408:8459:8e00::/42 1; +2408:8459:8e40::/43 1; +2408:8459:8e60::/44 1; +2408:8459:9000::/42 1; +2408:8459:9040::/43 1; +2408:8459:9060::/44 1; +2408:8459:9200::/39 1; +2408:8459:9400::/38 1; +2408:8459:9800::/38 1; +2408:8459:9c00::/42 1; +2408:8459:9c40::/43 1; +2408:8459:9c60::/44 1; +2408:8459:9e00::/42 1; +2408:8459:9e40::/43 1; +2408:8459:9e60::/44 1; +2408:8459:a000::/44 1; +2408:8459:a030::/44 1; +2408:8459:a040::/43 1; +2408:8459:a060::/44 1; +2408:8459:a200::/42 1; +2408:8459:a240::/43 1; +2408:8459:a260::/44 1; +2408:8459:a400::/42 1; +2408:8459:a440::/43 1; +2408:8459:a460::/44 1; +2408:8459:a600::/39 1; +2408:8459:a800::/37 1; +2408:8459:b000::/36 1; +2408:8459:c000::/35 1; +2408:8459:e000::/39 1; +2408:8459:e200::/43 1; +2408:8459:e220::/44 1; +2408:8459:e400::/44 1; +2408:8459:e430::/44 1; +2408:8459:e440::/42 1; +2408:8459:e480::/41 1; +2408:8459:e500::/40 1; +2408:8459:e600::/39 1; +2408:8459:e800::/37 1; +2408:8459:f000::/40 1; +2408:8459:f100::/42 1; +2408:8459:f140::/43 1; +2408:8459:f160::/44 1; +2408:8459:f300::/40 1; +2408:8459:f400::/38 1; +2408:8459:f800::/37 1; +2408:845a::/31 1; +2408:845c::/32 1; +2408:845d::/33 1; +2408:845d:8000::/36 1; +2408:845d:9000::/37 1; +2408:845d:9800::/40 1; +2408:845d:9a00::/39 1; +2408:845d:9c00::/38 1; +2408:845d:a000::/35 1; +2408:845d:c000::/34 1; +2408:845e::/31 1; +2408:8460::/33 1; +2408:8460:8000::/34 1; +2408:8460:c000::/35 1; +2408:8460:e000::/38 1; +2408:8460:e500::/40 1; +2408:8460:e600::/39 1; +2408:8460:e800::/37 1; +2408:8460:f000::/36 1; +2408:8461::/32 1; +2408:8462::/40 1; +2408:8462:200::/39 1; +2408:8462:400::/38 1; +2408:8462:800::/38 1; +2408:8462:c00::/40 1; +2408:8462:e00::/39 1; +2408:8462:1000::/39 1; +2408:8462:1300::/40 1; +2408:8462:1400::/38 1; +2408:8462:1800::/38 1; +2408:8462:1c00::/39 1; +2408:8462:1f00::/40 1; +2408:8462:2000::/37 1; +2408:8462:2800::/39 1; +2408:8462:2c00::/38 1; +2408:8462:3000::/36 1; +2408:8462:4000::/35 1; +2408:8462:6000::/37 1; +2408:8462:6800::/38 1; +2408:8462:6d00::/40 1; +2408:8462:6e00::/39 1; +2408:8462:7000::/36 1; +2408:8462:8000::/34 1; +2408:8462:c000::/35 1; +2408:8462:e000::/37 1; +2408:8462:e800::/38 1; +2408:8462:ed00::/40 1; +2408:8462:ee00::/39 1; +2408:8462:f000::/36 1; +2408:8463::/36 1; +2408:8463:1000::/39 1; +2408:8463:1200::/40 1; +2408:8463:1400::/38 1; +2408:8463:1800::/37 1; +2408:8463:2000::/35 1; +2408:8463:4000::/34 1; +2408:8463:8000::/33 1; +2408:8464::/30 1; +2408:8468::/32 1; +2408:8469::/40 1; +2408:8469:300::/40 1; +2408:8469:500::/40 1; +2408:8469:600::/39 1; +2408:8469:800::/38 1; +2408:8469:c00::/39 1; +2408:8469:e00::/40 1; +2408:8469:1000::/36 1; +2408:8469:2000::/37 1; +2408:8469:2900::/40 1; +2408:8469:2a00::/39 1; +2408:8469:2c00::/38 1; +2408:8469:3000::/36 1; +2408:8469:4100::/40 1; +2408:8469:4200::/39 1; +2408:8469:4500::/40 1; +2408:8469:4600::/39 1; +2408:8469:4800::/37 1; +2408:8469:5000::/39 1; +2408:8469:5200::/40 1; +2408:8469:5400::/38 1; +2408:8469:5800::/40 1; +2408:8469:5a00::/39 1; +2408:8469:5c00::/38 1; +2408:8469:6000::/37 1; +2408:8469:6800::/39 1; +2408:8469:6a00::/40 1; +2408:8469:6c00::/38 1; +2408:8469:7000::/36 1; +2408:8469:8000::/33 1; +2408:846a::/36 1; +2408:846a:1000::/37 1; +2408:846a:1800::/38 1; +2408:846a:1c00::/40 1; +2408:846a:1e00::/39 1; +2408:846a:2000::/35 1; +2408:846a:4000::/34 1; +2408:846a:8000::/33 1; +2408:846b::/32 1; +2408:846c::/30 1; +2408:8470::/32 1; +2408:8471::/36 1; +2408:8471:1100::/40 1; +2408:8471:1200::/39 1; +2408:8471:1400::/38 1; +2408:8471:1800::/37 1; +2408:8471:2000::/35 1; +2408:8471:4000::/34 1; +2408:8471:8000::/33 1; +2408:8472::/31 1; +2408:8474::/31 1; +2408:8476::/38 1; +2408:8476:500::/40 1; +2408:8476:600::/39 1; +2408:8476:800::/40 1; +2408:8476:a00::/39 1; +2408:8476:c00::/38 1; +2408:8476:1000::/36 1; +2408:8476:2000::/35 1; +2408:8476:4000::/34 1; +2408:8476:8000::/33 1; +2408:8477::/32 1; +2408:8478::/29 1; +2408:8480::/25 1; +2408:8500::/24 1; +2408:8600::/26 1; +2408:8640::/30 1; +2408:8644::/36 1; +2408:8644:1200::/39 1; +2408:8644:1400::/38 1; +2408:8644:1800::/37 1; +2408:8644:2000::/35 1; +2408:8644:4000::/34 1; +2408:8644:8000::/33 1; +2408:8645::/32 1; +2408:8646::/31 1; +2408:8648::/29 1; +2408:8650::/28 1; +2408:8660::/27 1; +2408:8680::/25 1; +2408:8700::/29 1; +2408:8708::/30 1; +2408:870c::/34 1; +2408:870c:4100::/40 1; +2408:870c:4200::/39 1; +2408:870c:4400::/38 1; +2408:870c:4800::/37 1; +2408:870c:5000::/36 1; +2408:870c:6000::/35 1; +2408:870c:8000::/33 1; +2408:870d::/32 1; +2408:870e::/31 1; +2408:8710::/28 1; +2408:8720::/30 1; +2408:8724::/31 1; +2408:8727::/32 1; +2408:8728::/29 1; +2408:8730::/28 1; +2408:8740::/26 1; +2408:8780::/25 1; +2408:8800::/26 1; +2408:8840::/30 1; +2408:8844:100::/40 1; +2408:8844:200::/39 1; +2408:8844:400::/38 1; +2408:8844:800::/37 1; +2408:8844:1000::/36 1; +2408:8844:2000::/35 1; +2408:8844:4000::/34 1; +2408:8844:8000::/33 1; +2408:8845::/32 1; +2408:8846::/31 1; +2408:8848::/29 1; +2408:8850::/28 1; +2408:8860::/27 1; +2408:8880::/25 1; +2408:8900::/28 1; +2408:8910::/31 1; +2408:8912::/40 1; +2408:8912:200::/39 1; +2408:8912:400::/38 1; +2408:8912:800::/37 1; +2408:8912:1000::/36 1; +2408:8912:2000::/35 1; +2408:8912:4000::/34 1; +2408:8912:8000::/33 1; +2408:8913::/32 1; +2408:8914::/30 1; +2408:8918::/29 1; +2408:8920::/27 1; +2408:8940::/29 1; +2408:8948::/30 1; +2408:894c::/31 1; +2408:894e::/38 1; +2408:894e:400::/39 1; +2408:894e:600::/40 1; +2408:894e:800::/38 1; +2408:894e:d00::/40 1; +2408:894e:e00::/39 1; +2408:894e:1000::/36 1; +2408:894e:2000::/35 1; +2408:894e:4000::/34 1; +2408:894e:8000::/33 1; +2408:894f::/32 1; +2408:8950::/30 1; +2408:8954::/31 1; +2408:8956:10::/44 1; +2408:8956:20::/43 1; +2408:8956:40::/42 1; +2408:8956:80::/41 1; +2408:8956:100::/40 1; +2408:8956:210::/44 1; +2408:8956:220::/43 1; +2408:8956:240::/44 1; +2408:8956:280::/42 1; +2408:8956:2d0::/44 1; +2408:8956:2e0::/43 1; +2408:8956:300::/40 1; +2408:8956:410::/44 1; +2408:8956:420::/43 1; +2408:8956:440::/42 1; +2408:8956:480::/41 1; +2408:8956:500::/40 1; +2408:8956:610::/44 1; +2408:8956:620::/43 1; +2408:8956:640::/42 1; +2408:8956:680::/41 1; +2408:8956:700::/40 1; +2408:8956:800::/37 1; +2408:8956:1000::/37 1; +2408:8956:1800::/40 1; +2408:8956:1900::/42 1; +2408:8956:1940::/44 1; +2408:8956:1970::/44 1; +2408:8956:1980::/41 1; +2408:8956:1a00::/39 1; +2408:8956:1c00::/38 1; +2408:8956:2000::/35 1; +2408:8956:4000::/35 1; +2408:8956:6000::/36 1; +2408:8956:7000::/37 1; +2408:8956:7800::/39 1; +2408:8956:7a00::/42 1; +2408:8956:7a50::/44 1; +2408:8956:7a60::/43 1; +2408:8956:7a80::/41 1; +2408:8956:7b00::/40 1; +2408:8956:7c00::/38 1; +2408:8956:8000::/41 1; +2408:8956:8090::/44 1; +2408:8956:80a0::/43 1; +2408:8956:80c0::/42 1; +2408:8956:8100::/40 1; +2408:8956:8200::/42 1; +2408:8956:8250::/44 1; +2408:8956:8260::/43 1; +2408:8956:8280::/41 1; +2408:8956:8300::/40 1; +2408:8956:8400::/42 1; +2408:8956:8450::/44 1; +2408:8956:8460::/43 1; +2408:8956:8490::/44 1; +2408:8956:84a0::/43 1; +2408:8956:84c0::/42 1; +2408:8956:8500::/40 1; +2408:8956:8600::/39 1; +2408:8956:8800::/37 1; +2408:8956:9000::/36 1; +2408:8956:a000::/35 1; +2408:8956:c000::/34 1; +2408:8957::/32 1; +2408:8958::/29 1; +2408:8960::/27 1; +2408:8980::/25 1; +2408:8a00::/23 1; +2408:8c00::/22 1; +2409:1000::/20 1; +2409:8000::/40 1; +2409:8000:800::/40 1; +2409:8000:1000::/40 1; +2409:8000:1800::/40 1; +2409:8000:2000::/40 1; +2409:8000:2800::/38 1; +2409:8000:3800::/40 1; +2409:8000:5100::/40 1; +2409:8000:5800::/40 1; +2409:8000:5a00::/40 1; +2409:8000:5c00::/40 1; +2409:8055:306c::/48 1; +2409:8057:306c::/48 1; +2409:806a:3000::/40 1; +2409:8087::/39 1; +2409:8700::/31 1; +2409:8800::/40 1; +2409:8900::/31 1; +2409:8a00::/31 1; +2409:8b00::/31 1; +2409:8c0c:200::/39 1; +2409:8c6a:4c00::/40 1; +2409:8c85:6200::/40 1; +2409:8d00::/32 1; +2409:8e00::/32 1; +240a:2000::/24 1; +240a:4000::/23 1; +240a:4200::/25 1; +240a:4280::/30 1; +240a:4284::/31 1; +240a:4286:100::/40 1; +240a:4286:200::/39 1; +240a:4286:400::/38 1; +240a:4286:800::/37 1; +240a:4286:1000::/36 1; +240a:4286:2000::/35 1; +240a:4286:4000::/34 1; +240a:4286:8000::/33 1; +240a:4287::/32 1; +240a:4288::/34 1; +240a:4288:4000::/36 1; +240a:4288:5000::/37 1; +240a:4288:5800::/39 1; +240a:4288:5b00::/40 1; +240a:4288:5d00::/40 1; +240a:4288:5e00::/39 1; +240a:4288:6000::/35 1; +240a:4288:8000::/34 1; +240a:4288:c000::/37 1; +240a:4288:c800::/38 1; +240a:4288:cc00::/39 1; +240a:4288:cf00::/40 1; +240a:4288:d000::/36 1; +240a:4288:e000::/35 1; +240a:4289::/32 1; +240a:428a::/33 1; +240a:428a:8000::/36 1; +240a:428a:9000::/39 1; +240a:428a:9300::/40 1; +240a:428a:9400::/38 1; +240a:428a:9800::/37 1; +240a:428a:a000::/38 1; +240a:428a:a400::/39 1; +240a:428a:a700::/40 1; +240a:428a:a800::/37 1; +240a:428a:b000::/36 1; +240a:428a:c000::/34 1; +240a:428b::/32 1; +240a:428c::/31 1; +240a:428e::/35 1; +240a:428e:2000::/37 1; +240a:428e:2900::/40 1; +240a:428e:2a00::/39 1; +240a:428e:2c00::/38 1; +240a:428e:3000::/36 1; +240a:428e:4000::/34 1; +240a:428e:8000::/33 1; +240a:428f::/32 1; +240a:4290::/32 1; +240a:4291::/34 1; +240a:4291:4000::/36 1; +240a:4291:5000::/38 1; +240a:4291:5500::/40 1; +240a:4291:5600::/39 1; +240a:4291:5800::/37 1; +240a:4291:6000::/35 1; +240a:4291:8000::/33 1; +240a:4292::/38 1; +240a:4292:500::/40 1; +240a:4292:600::/39 1; +240a:4292:800::/38 1; +240a:4292:d00::/40 1; +240a:4292:e00::/39 1; +240a:4292:1000::/36 1; +240a:4292:2000::/35 1; +240a:4292:4000::/34 1; +240a:4292:8000::/33 1; +240a:4293::/32 1; +240a:4294::/36 1; +240a:4294:1000::/37 1; +240a:4294:1800::/38 1; +240a:4294:1c00::/39 1; +240a:4294:1f00::/40 1; +240a:4294:2000::/35 1; +240a:4294:4000::/34 1; +240a:4294:8000::/33 1; +240a:4295::/32 1; +240a:4296::/32 1; +240a:4297::/34 1; +240a:4297:4100::/40 1; +240a:4297:4200::/39 1; +240a:4297:4400::/38 1; +240a:4297:4800::/37 1; +240a:4297:5000::/36 1; +240a:4297:6000::/35 1; +240a:4297:8000::/33 1; +240a:4298::/37 1; +240a:4298:800::/38 1; +240a:4298:d00::/40 1; +240a:4298:e00::/39 1; +240a:4298:1000::/36 1; +240a:4298:2000::/35 1; +240a:4298:4000::/34 1; +240a:4298:8000::/33 1; +240a:4299::/32 1; +240a:429a::/31 1; +240a:429c::/30 1; +240a:42a0::/31 1; +240a:42a2::/33 1; +240a:42a2:8000::/35 1; +240a:42a2:a000::/36 1; +240a:42a2:b000::/38 1; +240a:42a2:b400::/39 1; +240a:42a2:b700::/40 1; +240a:42a2:b800::/37 1; +240a:42a2:c000::/36 1; +240a:42a2:d100::/40 1; +240a:42a2:d200::/39 1; +240a:42a2:d400::/38 1; +240a:42a2:d800::/37 1; +240a:42a2:e000::/35 1; +240a:42a3::/34 1; +240a:42a3:4000::/35 1; +240a:42a3:6000::/37 1; +240a:42a3:6800::/38 1; +240a:42a3:6d00::/40 1; +240a:42a3:6e00::/39 1; +240a:42a3:7000::/36 1; +240a:42a3:8000::/33 1; +240a:42a4::/35 1; +240a:42a4:2100::/40 1; +240a:42a4:2200::/39 1; +240a:42a4:2400::/38 1; +240a:42a4:2800::/37 1; +240a:42a4:3000::/36 1; +240a:42a4:4000::/34 1; +240a:42a4:8000::/35 1; +240a:42a4:a000::/37 1; +240a:42a4:a900::/40 1; +240a:42a4:aa00::/39 1; +240a:42a4:ac00::/38 1; +240a:42a4:b000::/36 1; +240a:42a4:c000::/34 1; +240a:42a5::/35 1; +240a:42a5:2000::/36 1; +240a:42a5:3000::/37 1; +240a:42a5:3900::/40 1; +240a:42a5:3a00::/39 1; +240a:42a5:3c00::/38 1; +240a:42a5:4000::/34 1; +240a:42a5:8000::/33 1; +240a:42a6::/35 1; +240a:42a6:2000::/36 1; +240a:42a6:3000::/37 1; +240a:42a6:3800::/38 1; +240a:42a6:3d00::/40 1; +240a:42a6:3e00::/39 1; +240a:42a6:4000::/34 1; +240a:42a6:8000::/35 1; +240a:42a6:a000::/38 1; +240a:42a6:a400::/39 1; +240a:42a6:a700::/40 1; +240a:42a6:a900::/40 1; +240a:42a6:aa00::/39 1; +240a:42a6:ad00::/40 1; +240a:42a6:ae00::/39 1; +240a:42a6:b000::/36 1; +240a:42a6:c000::/39 1; +240a:42a6:c300::/40 1; +240a:42a6:c400::/38 1; +240a:42a6:c800::/37 1; +240a:42a6:d000::/36 1; +240a:42a6:e000::/36 1; +240a:42a6:f000::/37 1; +240a:42a6:f800::/39 1; +240a:42a6:fb00::/40 1; +240a:42a6:fc00::/38 1; +240a:42a7::/36 1; +240a:42a7:1000::/39 1; +240a:42a7:1300::/40 1; +240a:42a7:1400::/38 1; +240a:42a7:1800::/37 1; +240a:42a7:2000::/36 1; +240a:42a7:3000::/38 1; +240a:42a7:3400::/39 1; +240a:42a7:3700::/40 1; +240a:42a7:3900::/40 1; +240a:42a7:3a00::/39 1; +240a:42a7:3c00::/38 1; +240a:42a7:4000::/37 1; +240a:42a7:4800::/39 1; +240a:42a7:4b00::/40 1; +240a:42a7:4c00::/38 1; +240a:42a7:5000::/36 1; +240a:42a7:6000::/35 1; +240a:42a7:8000::/33 1; +240a:42a8::/38 1; +240a:42a8:500::/40 1; +240a:42a8:600::/39 1; +240a:42a8:800::/37 1; +240a:42a8:1000::/36 1; +240a:42a8:2000::/36 1; +240a:42a8:3000::/38 1; +240a:42a8:3500::/40 1; +240a:42a8:3600::/39 1; +240a:42a8:3800::/37 1; +240a:42a8:4000::/35 1; +240a:42a8:6000::/37 1; +240a:42a8:6800::/38 1; +240a:42a8:6d00::/40 1; +240a:42a8:6e00::/39 1; +240a:42a8:7000::/37 1; +240a:42a8:7800::/38 1; +240a:42a8:7d00::/40 1; +240a:42a8:7e00::/39 1; +240a:42a8:8000::/33 1; +240a:42a9::/32 1; +240a:42aa:100::/40 1; +240a:42aa:200::/39 1; +240a:42aa:400::/38 1; +240a:42aa:800::/37 1; +240a:42aa:1000::/36 1; +240a:42aa:2000::/35 1; +240a:42aa:4000::/36 1; +240a:42aa:5100::/40 1; +240a:42aa:5200::/39 1; +240a:42aa:5400::/38 1; +240a:42aa:5800::/37 1; +240a:42aa:6000::/35 1; +240a:42aa:8000::/37 1; +240a:42aa:8800::/38 1; +240a:42aa:8d00::/40 1; +240a:42aa:8e00::/39 1; +240a:42aa:9000::/36 1; +240a:42aa:a000::/35 1; +240a:42aa:c000::/34 1; +240a:42ab::/32 1; +240a:42ac:100::/40 1; +240a:42ac:200::/39 1; +240a:42ac:500::/40 1; +240a:42ac:600::/39 1; +240a:42ac:800::/37 1; +240a:42ac:1000::/36 1; +240a:42ac:2000::/35 1; +240a:42ac:4000::/34 1; +240a:42ac:8000::/35 1; +240a:42ac:a100::/40 1; +240a:42ac:a200::/39 1; +240a:42ac:a400::/38 1; +240a:42ac:a800::/37 1; +240a:42ac:b000::/38 1; +240a:42ac:b500::/40 1; +240a:42ac:b600::/39 1; +240a:42ac:b800::/37 1; +240a:42ac:c000::/35 1; +240a:42ac:e100::/40 1; +240a:42ac:e200::/39 1; +240a:42ac:e400::/38 1; +240a:42ac:e800::/37 1; +240a:42ac:f000::/36 1; +240a:42ad::/35 1; +240a:42ad:2000::/36 1; +240a:42ad:3000::/38 1; +240a:42ad:3500::/40 1; +240a:42ad:3600::/39 1; +240a:42ad:3800::/37 1; +240a:42ad:4000::/34 1; +240a:42ad:8000::/33 1; +240a:42ae:100::/40 1; +240a:42ae:200::/39 1; +240a:42ae:400::/38 1; +240a:42ae:800::/37 1; +240a:42ae:1000::/37 1; +240a:42ae:1900::/40 1; +240a:42ae:1a00::/39 1; +240a:42ae:1c00::/38 1; +240a:42ae:2000::/35 1; +240a:42ae:4000::/34 1; +240a:42ae:8000::/33 1; +240a:42af::/36 1; +240a:42af:1000::/37 1; +240a:42af:1800::/38 1; +240a:42af:1d00::/40 1; +240a:42af:1e00::/39 1; +240a:42af:2000::/36 1; +240a:42af:3000::/38 1; +240a:42af:3500::/40 1; +240a:42af:3600::/39 1; +240a:42af:3800::/37 1; +240a:42af:4000::/34 1; +240a:42af:8000::/33 1; +240a:42b0::/30 1; +240a:42b4::/34 1; +240a:42b4:4000::/38 1; +240a:42b4:4400::/39 1; +240a:42b4:4700::/40 1; +240a:42b4:4800::/37 1; +240a:42b4:5000::/36 1; +240a:42b4:6000::/35 1; +240a:42b4:8000::/33 1; +240a:42b5::/32 1; +240a:42b6::/34 1; +240a:42b6:4000::/38 1; +240a:42b6:4400::/39 1; +240a:42b6:4700::/40 1; +240a:42b6:4800::/37 1; +240a:42b6:5000::/36 1; +240a:42b6:6000::/35 1; +240a:42b6:8000::/33 1; +240a:42b7::/32 1; +240a:42b8:100::/40 1; +240a:42b8:200::/39 1; +240a:42b8:400::/38 1; +240a:42b8:800::/37 1; +240a:42b8:1000::/36 1; +240a:42b8:2000::/35 1; +240a:42b8:4000::/35 1; +240a:42b8:6000::/37 1; +240a:42b8:6800::/39 1; +240a:42b8:6b00::/40 1; +240a:42b8:6c00::/38 1; +240a:42b8:7000::/36 1; +240a:42b8:8000::/37 1; +240a:42b8:8800::/39 1; +240a:42b8:8b00::/40 1; +240a:42b8:8c00::/38 1; +240a:42b8:9000::/36 1; +240a:42b8:a000::/38 1; +240a:42b8:a400::/39 1; +240a:42b8:a700::/40 1; +240a:42b8:a800::/37 1; +240a:42b8:b000::/38 1; +240a:42b8:b400::/39 1; +240a:42b8:b700::/40 1; +240a:42b8:b800::/37 1; +240a:42b8:c000::/35 1; +240a:42b8:e000::/38 1; +240a:42b8:e500::/40 1; +240a:42b8:e600::/39 1; +240a:42b8:e800::/37 1; +240a:42b8:f000::/36 1; +240a:42b9::/32 1; +240a:42ba::/31 1; +240a:42bc:100::/40 1; +240a:42bc:200::/39 1; +240a:42bc:400::/38 1; +240a:42bc:800::/37 1; +240a:42bc:1000::/38 1; +240a:42bc:1400::/39 1; +240a:42bc:1700::/40 1; +240a:42bc:1800::/37 1; +240a:42bc:2000::/35 1; +240a:42bc:4000::/34 1; +240a:42bc:8000::/33 1; +240a:42bd::/35 1; +240a:42bd:2000::/37 1; +240a:42bd:2800::/38 1; +240a:42bd:2c00::/39 1; +240a:42bd:2f00::/40 1; +240a:42bd:3000::/36 1; +240a:42bd:4000::/34 1; +240a:42bd:8000::/33 1; +240a:42be:100::/40 1; +240a:42be:200::/39 1; +240a:42be:400::/39 1; +240a:42be:700::/40 1; +240a:42be:800::/37 1; +240a:42be:1000::/38 1; +240a:42be:1400::/39 1; +240a:42be:1700::/40 1; +240a:42be:1800::/37 1; +240a:42be:2000::/35 1; +240a:42be:4000::/34 1; +240a:42be:8000::/35 1; +240a:42be:a000::/36 1; +240a:42be:b000::/37 1; +240a:42be:b800::/38 1; +240a:42be:bc00::/39 1; +240a:42be:bf00::/40 1; +240a:42be:c000::/35 1; +240a:42be:e000::/38 1; +240a:42be:e400::/39 1; +240a:42be:e700::/40 1; +240a:42be:e900::/40 1; +240a:42be:ea00::/39 1; +240a:42be:ec00::/38 1; +240a:42be:f000::/36 1; +240a:42bf::/32 1; +240a:42c0::/32 1; +240a:42c1::/33 1; +240a:42c1:8000::/38 1; +240a:42c1:8500::/40 1; +240a:42c1:8600::/39 1; +240a:42c1:8800::/37 1; +240a:42c1:9000::/36 1; +240a:42c1:a000::/35 1; +240a:42c1:c000::/34 1; +240a:42c2::/36 1; +240a:42c2:1000::/37 1; +240a:42c2:1800::/38 1; +240a:42c2:1d00::/40 1; +240a:42c2:1e00::/39 1; +240a:42c2:2000::/35 1; +240a:42c2:4000::/34 1; +240a:42c2:8000::/33 1; +240a:42c3::/36 1; +240a:42c3:1000::/37 1; +240a:42c3:1800::/38 1; +240a:42c3:1d00::/40 1; +240a:42c3:1e00::/39 1; +240a:42c3:2000::/35 1; +240a:42c3:4000::/34 1; +240a:42c3:8000::/35 1; +240a:42c3:a000::/36 1; +240a:42c3:b000::/37 1; +240a:42c3:b900::/40 1; +240a:42c3:ba00::/39 1; +240a:42c3:bc00::/38 1; +240a:42c3:c000::/34 1; +240a:42c4::/34 1; +240a:42c4:4000::/38 1; +240a:42c4:4500::/40 1; +240a:42c4:4600::/39 1; +240a:42c4:4800::/37 1; +240a:42c4:5000::/36 1; +240a:42c4:6000::/37 1; +240a:42c4:6900::/40 1; +240a:42c4:6a00::/39 1; +240a:42c4:6c00::/38 1; +240a:42c4:7000::/36 1; +240a:42c4:8000::/33 1; +240a:42c5::/33 1; +240a:42c5:8000::/38 1; +240a:42c5:8500::/40 1; +240a:42c5:8600::/39 1; +240a:42c5:8800::/37 1; +240a:42c5:9000::/36 1; +240a:42c5:a000::/35 1; +240a:42c5:c000::/34 1; +240a:42c6::/36 1; +240a:42c6:1000::/38 1; +240a:42c6:1500::/40 1; +240a:42c6:1600::/39 1; +240a:42c6:1900::/40 1; +240a:42c6:1a00::/39 1; +240a:42c6:1d00::/40 1; +240a:42c6:1e00::/39 1; +240a:42c6:2000::/35 1; +240a:42c6:4000::/35 1; +240a:42c6:6000::/38 1; +240a:42c6:6500::/40 1; +240a:42c6:6600::/39 1; +240a:42c6:6900::/40 1; +240a:42c6:6a00::/39 1; +240a:42c6:6c00::/38 1; +240a:42c6:7000::/36 1; +240a:42c6:8000::/36 1; +240a:42c6:9000::/37 1; +240a:42c6:9900::/40 1; +240a:42c6:9a00::/39 1; +240a:42c6:9c00::/38 1; +240a:42c6:a000::/36 1; +240a:42c6:b000::/38 1; +240a:42c6:b500::/40 1; +240a:42c6:b600::/39 1; +240a:42c6:b800::/37 1; +240a:42c6:c000::/34 1; +240a:42c7::/35 1; +240a:42c7:2000::/38 1; +240a:42c7:2500::/40 1; +240a:42c7:2600::/39 1; +240a:42c7:2900::/40 1; +240a:42c7:2a00::/39 1; +240a:42c7:2d00::/40 1; +240a:42c7:2e00::/39 1; +240a:42c7:3000::/36 1; +240a:42c7:4000::/35 1; +240a:42c7:6000::/37 1; +240a:42c7:6900::/40 1; +240a:42c7:6a00::/39 1; +240a:42c7:6c00::/38 1; +240a:42c7:7000::/36 1; +240a:42c7:8000::/35 1; +240a:42c7:a100::/40 1; +240a:42c7:a300::/40 1; +240a:42c7:a400::/38 1; +240a:42c7:a800::/37 1; +240a:42c7:b000::/36 1; +240a:42c7:c000::/35 1; +240a:42c7:e000::/37 1; +240a:42c7:e800::/38 1; +240a:42c7:ed00::/40 1; +240a:42c7:ee00::/39 1; +240a:42c7:f000::/36 1; +240a:42c8::/31 1; +240a:42ca:100::/40 1; +240a:42ca:200::/39 1; +240a:42ca:400::/38 1; +240a:42ca:800::/38 1; +240a:42ca:d00::/40 1; +240a:42ca:e00::/39 1; +240a:42ca:1000::/36 1; +240a:42ca:2000::/35 1; +240a:42ca:4000::/34 1; +240a:42ca:8000::/33 1; +240a:42cb::/34 1; +240a:42cb:4000::/35 1; +240a:42cb:6100::/40 1; +240a:42cb:6200::/39 1; +240a:42cb:6400::/38 1; +240a:42cb:6800::/37 1; +240a:42cb:7000::/36 1; +240a:42cb:8000::/33 1; +240a:42cc::/36 1; +240a:42cc:1000::/39 1; +240a:42cc:1300::/40 1; +240a:42cc:1400::/38 1; +240a:42cc:1900::/40 1; +240a:42cc:1a00::/39 1; +240a:42cc:1c00::/38 1; +240a:42cc:2000::/37 1; +240a:42cc:2900::/40 1; +240a:42cc:2a00::/39 1; +240a:42cc:2c00::/38 1; +240a:42cc:3000::/36 1; +240a:42cc:4000::/35 1; +240a:42cc:6000::/38 1; +240a:42cc:6500::/40 1; +240a:42cc:6600::/39 1; +240a:42cc:6800::/37 1; +240a:42cc:7000::/36 1; +240a:42cc:8000::/37 1; +240a:42cc:8900::/40 1; +240a:42cc:8a00::/39 1; +240a:42cc:8c00::/38 1; +240a:42cc:9000::/37 1; +240a:42cc:9900::/40 1; +240a:42cc:9a00::/39 1; +240a:42cc:9d00::/40 1; +240a:42cc:9e00::/39 1; +240a:42cc:a000::/35 1; +240a:42cc:c000::/34 1; +240a:42cd:100::/40 1; +240a:42cd:200::/39 1; +240a:42cd:400::/38 1; +240a:42cd:800::/37 1; +240a:42cd:1000::/36 1; +240a:42cd:2000::/38 1; +240a:42cd:2400::/39 1; +240a:42cd:2700::/40 1; +240a:42cd:2900::/40 1; +240a:42cd:2a00::/39 1; +240a:42cd:2d00::/40 1; +240a:42cd:2e00::/39 1; +240a:42cd:3100::/40 1; +240a:42cd:3200::/39 1; +240a:42cd:3400::/38 1; +240a:42cd:3800::/37 1; +240a:42cd:4000::/34 1; +240a:42cd:8000::/35 1; +240a:42cd:a100::/40 1; +240a:42cd:a200::/39 1; +240a:42cd:a400::/38 1; +240a:42cd:a800::/37 1; +240a:42cd:b000::/36 1; +240a:42cd:c000::/35 1; +240a:42cd:e000::/37 1; +240a:42cd:e800::/38 1; +240a:42cd:ed00::/40 1; +240a:42cd:ee00::/39 1; +240a:42cd:f000::/36 1; +240a:42ce::/31 1; +240a:42d0::/31 1; +240a:42d2::/36 1; +240a:42d2:1000::/37 1; +240a:42d2:1900::/40 1; +240a:42d2:1a00::/39 1; +240a:42d2:1c00::/38 1; +240a:42d2:2000::/35 1; +240a:42d2:4000::/34 1; +240a:42d2:8000::/33 1; +240a:42d3::/32 1; +240a:42d4::/30 1; +240a:42d8::/30 1; +240a:42dc::/31 1; +240a:42de::/38 1; +240a:42de:500::/40 1; +240a:42de:600::/39 1; +240a:42de:800::/39 1; +240a:42de:b00::/40 1; +240a:42de:c00::/38 1; +240a:42de:1000::/36 1; +240a:42de:2000::/35 1; +240a:42de:4000::/34 1; +240a:42de:8000::/33 1; +240a:42df::/32 1; +240a:42e0::/30 1; +240a:42e4:100::/40 1; +240a:42e4:200::/39 1; +240a:42e4:400::/38 1; +240a:42e4:800::/37 1; +240a:42e4:1000::/36 1; +240a:42e4:2000::/35 1; +240a:42e4:4000::/36 1; +240a:42e4:5000::/39 1; +240a:42e4:5300::/40 1; +240a:42e4:5400::/38 1; +240a:42e4:5800::/37 1; +240a:42e4:6000::/35 1; +240a:42e4:8000::/34 1; +240a:42e4:c000::/35 1; +240a:42e4:e000::/36 1; +240a:42e4:f000::/37 1; +240a:42e4:f800::/38 1; +240a:42e4:fc00::/39 1; +240a:42e4:ff00::/40 1; +240a:42e5::/32 1; +240a:42e6::/40 1; +240a:42e6:200::/39 1; +240a:42e6:400::/40 1; +240a:42e6:600::/39 1; +240a:42e6:900::/40 1; +240a:42e6:a00::/39 1; +240a:42e6:d00::/40 1; +240a:42e6:e00::/39 1; +240a:42e6:1000::/36 1; +240a:42e6:2000::/35 1; +240a:42e6:4000::/34 1; +240a:42e6:8000::/33 1; +240a:42e7::/32 1; +240a:42e8::/31 1; +240a:42ea::/40 1; +240a:42ea:200::/39 1; +240a:42ea:400::/40 1; +240a:42ea:600::/40 1; +240a:42ea:900::/40 1; +240a:42ea:a00::/39 1; +240a:42ea:c00::/38 1; +240a:42ea:1000::/36 1; +240a:42ea:2000::/39 1; +240a:42ea:2200::/40 1; +240a:42ea:2400::/38 1; +240a:42ea:2800::/37 1; +240a:42ea:3100::/40 1; +240a:42ea:3200::/39 1; +240a:42ea:3400::/38 1; +240a:42ea:3800::/37 1; +240a:42ea:4000::/34 1; +240a:42ea:8000::/33 1; +240a:42eb::/32 1; +240a:42ec::/30 1; +240a:42f0::/30 1; +240a:42f4::/34 1; +240a:42f4:4000::/37 1; +240a:42f4:4900::/40 1; +240a:42f4:4a00::/39 1; +240a:42f4:4c00::/38 1; +240a:42f4:5000::/36 1; +240a:42f4:6000::/35 1; +240a:42f4:8000::/33 1; +240a:42f5::/32 1; +240a:42f6::/31 1; +240a:42f8::/29 1; +240a:4300::/24 1; +240a:4400::/22 1; +240a:6000::/24 1; +240a:8000::/21 1; +240a:a000::/20 1; +240a:c000::/20 1; +240b:2000::/22 1; +240b:6000::/20 1; +240b:8000::/21 1; +240b:a000::/25 1; +240b:e000::/26 1; +240c::/28 1; +240c:4000::/22 1; +240c:8000::/21 1; +240c:c000::/20 1; +240d:4000::/21 1; +240d:8000::/24 1; +240e::/28 1; +240e:10::/30 1; +240e:14::/31 1; +240e:18::/30 1; +240e:1c::/36 1; +240e:1c:2000::/35 1; +240e:1c:4000::/36 1; +240e:1c:6000::/35 1; +240e:1c:8000::/33 1; +240e:1d::/36 1; +240e:1d:4000::/34 1; +240e:1d:8000::/33 1; +240e:1e::/31 1; +240e:20::/27 1; +240e:40::/29 1; +240e:48::/30 1; +240e:4c:800::/37 1; +240e:4c:1000::/36 1; +240e:4c:2000::/35 1; +240e:4c:4000::/34 1; +240e:4c:8000::/33 1; +240e:4d::/32 1; +240e:4e::/31 1; +240e:50::/28 1; +240e:60::/27 1; +240e:80::/26 1; +240e:c0::/27 1; +240e:e0::/30 1; +240e:e4::/32 1; +240e:e5::/33 1; +240e:e5:8100::/40 1; +240e:e5:8200::/39 1; +240e:e5:8400::/38 1; +240e:e5:8800::/37 1; +240e:e5:9000::/36 1; +240e:e5:a000::/35 1; +240e:e5:c000::/34 1; +240e:e6::/31 1; +240e:e8::/30 1; +240e:ec::/32 1; +240e:ee::/31 1; +240e:f0::/30 1; +240e:f4::/31 1; +240e:f6::/32 1; +240e:f7:1000::/36 1; +240e:f7:3000::/36 1; +240e:f7:5000::/36 1; +240e:f7:7000::/36 1; +240e:f7:a000::/35 1; +240e:f7:e000::/35 1; +240e:f8::/32 1; +240e:f9::/33 1; +240e:f9:8000::/34 1; +240e:fb::/32 1; +240e:fc::/31 1; +240e:fe::/35 1; +240e:fe:6000::/35 1; +240e:fe:8000::/33 1; +240e:ff::/32 1; +240e:100::/29 1; +240e:108::/42 1; +240e:108:40::/46 1; +240e:108:44::/48 1; +240e:108:46::/47 1; +240e:108:48::/45 1; +240e:108:50::/44 1; +240e:108:60::/43 1; +240e:108:80::/47 1; +240e:108:83::/48 1; +240e:108:84::/46 1; +240e:108:88::/45 1; +240e:108:90::/44 1; +240e:108:a0::/43 1; +240e:108:c0::/42 1; +240e:108:100::/40 1; +240e:108:200::/39 1; +240e:108:400::/38 1; +240e:108:800::/37 1; +240e:108:1000::/40 1; +240e:108:1100::/41 1; +240e:108:1180::/43 1; +240e:108:11a0::/44 1; +240e:108:11b1::/48 1; +240e:108:11b4::/46 1; +240e:108:11b8::/45 1; +240e:108:11c0::/42 1; +240e:108:1200::/39 1; +240e:108:1400::/38 1; +240e:108:1800::/37 1; +240e:108:2000::/35 1; +240e:108:4000::/42 1; +240e:108:4040::/47 1; +240e:108:4043::/48 1; +240e:108:4044::/46 1; +240e:108:4048::/45 1; +240e:108:4050::/44 1; +240e:108:4060::/43 1; +240e:108:4080::/41 1; +240e:108:4100::/40 1; +240e:108:4200::/39 1; +240e:108:4400::/38 1; +240e:108:4800::/42 1; +240e:108:4840::/47 1; +240e:108:4843::/48 1; +240e:108:4844::/46 1; +240e:108:4848::/45 1; +240e:108:4850::/44 1; +240e:108:4860::/43 1; +240e:108:4880::/41 1; +240e:108:4900::/40 1; +240e:108:4a00::/39 1; +240e:108:4c00::/38 1; +240e:108:5000::/36 1; +240e:108:6000::/35 1; +240e:108:8000::/33 1; +240e:109::/33 1; +240e:109:8000::/42 1; +240e:109:8040::/46 1; +240e:109:8044::/48 1; +240e:109:8046::/47 1; +240e:109:8049::/48 1; +240e:109:804a::/47 1; +240e:109:804c::/46 1; +240e:109:8050::/44 1; +240e:109:8060::/43 1; +240e:109:8080::/41 1; +240e:109:8100::/40 1; +240e:109:8200::/39 1; +240e:109:8400::/38 1; +240e:109:8800::/37 1; +240e:109:9000::/36 1; +240e:109:a000::/35 1; +240e:109:c000::/34 1; +240e:10a::/31 1; +240e:10c::/30 1; +240e:110::/28 1; +240e:120::/27 1; +240e:140::/26 1; +240e:180::/25 1; +240e:200::/24 1; +240e:300::/29 1; +240e:308::/30 1; +240e:30c::/31 1; +240e:30e::/36 1; +240e:30e:1100::/40 1; +240e:30e:1200::/39 1; +240e:30e:1400::/38 1; +240e:30e:1800::/37 1; +240e:30e:2000::/35 1; +240e:30e:4000::/34 1; +240e:30e:8000::/33 1; +240e:30f::/32 1; +240e:310::/28 1; +240e:320::/28 1; +240e:331::/32 1; +240e:332::/31 1; +240e:334::/30 1; +240e:338::/29 1; +240e:340::/32 1; +240e:341::/36 1; +240e:341:1000::/38 1; +240e:341:1400::/39 1; +240e:341:1600::/40 1; +240e:341:1800::/37 1; +240e:341:2000::/35 1; +240e:341:4000::/34 1; +240e:341:8000::/33 1; +240e:342::/31 1; +240e:344::/30 1; +240e:348::/29 1; +240e:350::/31 1; +240e:352::/33 1; +240e:352:8000::/35 1; +240e:352:a000::/37 1; +240e:352:a800::/38 1; +240e:352:ac00::/39 1; +240e:352:af00::/40 1; +240e:352:b000::/36 1; +240e:352:c000::/34 1; +240e:353::/32 1; +240e:354::/30 1; +240e:358::/35 1; +240e:358:2000::/36 1; +240e:358:3000::/40 1; +240e:358:3200::/39 1; +240e:358:3400::/38 1; +240e:358:3800::/37 1; +240e:358:4000::/34 1; +240e:358:8000::/33 1; +240e:359::/32 1; +240e:35a::/31 1; +240e:35c::/30 1; +240e:360::/28 1; +240e:370::/34 1; +240e:370:4000::/37 1; +240e:370:4800::/40 1; +240e:370:4a00::/39 1; +240e:370:4c00::/38 1; +240e:370:5000::/37 1; +240e:370:5800::/38 1; +240e:370:5c00::/40 1; +240e:370:5e00::/39 1; +240e:370:6000::/36 1; +240e:370:7000::/38 1; +240e:370:7400::/40 1; +240e:370:7600::/39 1; +240e:370:7800::/37 1; +240e:370:8000::/33 1; +240e:371::/32 1; +240e:372::/31 1; +240e:374::/30 1; +240e:378::/31 1; +240e:37a::/32 1; +240e:37b::/37 1; +240e:37b:800::/40 1; +240e:37b:a00::/39 1; +240e:37b:c00::/38 1; +240e:37b:1000::/36 1; +240e:37b:2000::/35 1; +240e:37b:4000::/34 1; +240e:37b:8000::/33 1; +240e:37c::/30 1; +240e:380::/29 1; +240e:388::/34 1; +240e:388:4000::/35 1; +240e:388:6000::/36 1; +240e:388:7000::/37 1; +240e:388:7900::/40 1; +240e:388:7a00::/39 1; +240e:388:7c00::/38 1; +240e:388:8000::/33 1; +240e:389::/32 1; +240e:38a::/31 1; +240e:38c::/30 1; +240e:390::/30 1; +240e:394::/31 1; +240e:396::/32 1; +240e:397::/37 1; +240e:397:800::/40 1; +240e:397:c00::/38 1; +240e:397:1000::/36 1; +240e:397:2000::/35 1; +240e:397:4000::/34 1; +240e:397:8000::/33 1; +240e:398::/29 1; +240e:3a0::/31 1; +240e:3a2::/32 1; +240e:3a3::/34 1; +240e:3a3:4000::/37 1; +240e:3a3:4800::/40 1; +240e:3a3:4a00::/39 1; +240e:3a3:4d00::/40 1; +240e:3a3:4e00::/39 1; +240e:3a3:5000::/36 1; +240e:3a3:6000::/35 1; +240e:3a3:8000::/33 1; +240e:3a4::/30 1; +240e:3a8::/29 1; +240e:3b0::/35 1; +240e:3b0:2000::/37 1; +240e:3b0:2800::/38 1; +240e:3b0:3e00::/39 1; +240e:3b0:4000::/34 1; +240e:3b0:8000::/33 1; +240e:3b1::/35 1; +240e:3b1:2000::/37 1; +240e:3b1:2800::/38 1; +240e:3b1:3e00::/39 1; +240e:3b1:4000::/35 1; +240e:3b1:6000::/38 1; +240e:3b1:6500::/40 1; +240e:3b1:6600::/39 1; +240e:3b1:6800::/37 1; +240e:3b1:7000::/36 1; +240e:3b1:8000::/33 1; +240e:3b2::/35 1; +240e:3b2:2000::/37 1; +240e:3b2:2800::/38 1; +240e:3b2:3e00::/39 1; +240e:3b2:4000::/34 1; +240e:3b2:8000::/33 1; +240e:3b3::/35 1; +240e:3b3:2000::/37 1; +240e:3b3:2800::/38 1; +240e:3b3:3e00::/39 1; +240e:3b3:4000::/34 1; +240e:3b3:8000::/33 1; +240e:3b4::/35 1; +240e:3b4:2000::/37 1; +240e:3b4:2800::/38 1; +240e:3b4:3e00::/39 1; +240e:3b4:4000::/34 1; +240e:3b4:8000::/33 1; +240e:3b5::/35 1; +240e:3b5:2000::/37 1; +240e:3b5:2800::/38 1; +240e:3b5:3e00::/39 1; +240e:3b5:4000::/34 1; +240e:3b5:8000::/33 1; +240e:3b6::/35 1; +240e:3b6:2000::/37 1; +240e:3b6:2800::/38 1; +240e:3b6:3e00::/39 1; +240e:3b6:4000::/34 1; +240e:3b6:8000::/33 1; +240e:3b7::/38 1; +240e:3b7:500::/40 1; +240e:3b7:600::/39 1; +240e:3b7:800::/37 1; +240e:3b7:1000::/36 1; +240e:3b7:2000::/37 1; +240e:3b7:2800::/38 1; +240e:3b7:3e00::/39 1; +240e:3b7:4000::/34 1; +240e:3b7:8000::/33 1; +240e:3b8::/35 1; +240e:3b8:2000::/37 1; +240e:3b8:2800::/38 1; +240e:3b8:3e00::/39 1; +240e:3b8:4000::/34 1; +240e:3b8:8000::/33 1; +240e:3b9::/35 1; +240e:3b9:2000::/37 1; +240e:3b9:2800::/38 1; +240e:3b9:3e00::/39 1; +240e:3b9:4000::/34 1; +240e:3b9:8000::/33 1; +240e:3ba::/35 1; +240e:3ba:2000::/37 1; +240e:3ba:2800::/38 1; +240e:3ba:3f00::/40 1; +240e:3ba:4000::/34 1; +240e:3ba:8000::/33 1; +240e:3bb::/35 1; +240e:3bb:2000::/37 1; +240e:3bb:2800::/38 1; +240e:3bb:3e00::/39 1; +240e:3bb:4000::/34 1; +240e:3bb:8000::/33 1; +240e:3bc::/35 1; +240e:3bc:2000::/37 1; +240e:3bc:2800::/38 1; +240e:3bc:3e00::/39 1; +240e:3bc:4000::/34 1; +240e:3bc:8000::/33 1; +240e:3bd::/35 1; +240e:3bd:2000::/37 1; +240e:3bd:2800::/38 1; +240e:3bd:3e00::/39 1; +240e:3bd:4000::/34 1; +240e:3bd:8000::/33 1; +240e:3be::/35 1; +240e:3be:2000::/37 1; +240e:3be:2800::/38 1; +240e:3be:3e00::/39 1; +240e:3be:4000::/34 1; +240e:3be:8000::/33 1; +240e:3bf::/36 1; +240e:3bf:1000::/37 1; +240e:3bf:3e00::/39 1; +240e:3bf:4000::/34 1; +240e:3bf:8000::/33 1; +240e:3c0::/26 1; +240e:400::/36 1; +240e:400:1000::/37 1; +240e:400:1800::/38 1; +240e:400:1c00::/39 1; +240e:400:1f00::/40 1; +240e:400:2000::/35 1; +240e:400:4000::/34 1; +240e:400:8000::/33 1; +240e:401::/32 1; +240e:402::/31 1; +240e:404::/30 1; +240e:408::/32 1; +240e:409::/36 1; +240e:409:1000::/39 1; +240e:409:1200::/40 1; +240e:409:1400::/38 1; +240e:409:1800::/37 1; +240e:409:2000::/35 1; +240e:409:4000::/34 1; +240e:409:8000::/33 1; +240e:40a::/31 1; +240e:40c::/40 1; +240e:40c:200::/39 1; +240e:40c:400::/38 1; +240e:40c:800::/37 1; +240e:40c:1000::/36 1; +240e:40c:2000::/35 1; +240e:40c:4000::/34 1; +240e:40c:8000::/33 1; +240e:40d::/37 1; +240e:40d:800::/38 1; +240e:40d:c00::/40 1; +240e:40d:e00::/39 1; +240e:40d:1000::/36 1; +240e:40d:2000::/40 1; +240e:40d:2200::/39 1; +240e:40d:2400::/38 1; +240e:40d:2800::/37 1; +240e:40d:3000::/36 1; +240e:40d:4000::/34 1; +240e:40d:8000::/33 1; +240e:40e::/36 1; +240e:40e:1000::/40 1; +240e:40e:1200::/39 1; +240e:40e:1400::/38 1; +240e:40e:1800::/37 1; +240e:40e:2000::/35 1; +240e:40e:4000::/34 1; +240e:40e:8000::/34 1; +240e:40e:c000::/38 1; +240e:40e:c400::/39 1; +240e:40e:c600::/40 1; +240e:40e:c800::/37 1; +240e:40e:d000::/36 1; +240e:40e:e000::/35 1; +240e:40f::/37 1; +240e:40f:800::/38 1; +240e:40f:c00::/40 1; +240e:40f:e00::/39 1; +240e:40f:1000::/36 1; +240e:40f:2000::/35 1; +240e:40f:4000::/34 1; +240e:40f:8000::/33 1; +240e:410::/28 1; +240e:420::/31 1; +240e:422::/32 1; +240e:423:100::/40 1; +240e:423:200::/39 1; +240e:423:400::/38 1; +240e:423:800::/37 1; +240e:423:1000::/36 1; +240e:423:2000::/35 1; +240e:423:4000::/34 1; +240e:423:8000::/33 1; +240e:424::/30 1; +240e:428::/30 1; +240e:42c:100::/40 1; +240e:42c:200::/39 1; +240e:42c:400::/38 1; +240e:42c:800::/37 1; +240e:42c:1000::/36 1; +240e:42c:2000::/35 1; +240e:42c:4000::/34 1; +240e:42c:8000::/33 1; +240e:42d::/32 1; +240e:42e::/31 1; +240e:430::/35 1; +240e:430:2000::/38 1; +240e:430:2500::/40 1; +240e:430:2600::/39 1; +240e:430:2800::/39 1; +240e:430:2b00::/40 1; +240e:430:2c00::/38 1; +240e:430:3000::/36 1; +240e:430:4000::/34 1; +240e:430:8000::/33 1; +240e:431::/32 1; +240e:432::/31 1; +240e:434::/30 1; +240e:438::/43 1; +240e:438:200::/39 1; +240e:438:400::/38 1; +240e:438:800::/37 1; +240e:438:1000::/36 1; +240e:438:2000::/35 1; +240e:438:4000::/34 1; +240e:438:8000::/37 1; +240e:438:8800::/39 1; +240e:438:8a00::/43 1; +240e:438:8c00::/38 1; +240e:438:9000::/36 1; +240e:438:a000::/35 1; +240e:438:c000::/34 1; +240e:439::/32 1; +240e:43a::/31 1; +240e:43c::/34 1; +240e:43c:4000::/35 1; +240e:43c:6000::/36 1; +240e:43c:7000::/37 1; +240e:43c:7800::/39 1; +240e:43c:7a00::/40 1; +240e:43c:7c00::/38 1; +240e:43c:8000::/33 1; +240e:43d::/35 1; +240e:43d:2000::/37 1; +240e:43d:2800::/39 1; +240e:43d:2b00::/40 1; +240e:43d:2c00::/38 1; +240e:43d:3000::/36 1; +240e:43d:4000::/34 1; +240e:43d:8000::/33 1; +240e:43e::/31 1; +240e:440::/30 1; +240e:444::/32 1; +240e:445::/38 1; +240e:445:400::/39 1; +240e:445:700::/40 1; +240e:445:800::/37 1; +240e:445:1000::/36 1; +240e:445:2000::/35 1; +240e:445:4000::/39 1; +240e:445:4300::/40 1; +240e:445:4400::/38 1; +240e:445:4800::/37 1; +240e:445:5000::/36 1; +240e:445:6000::/35 1; +240e:445:8000::/33 1; +240e:446::/34 1; +240e:446:4000::/37 1; +240e:446:4800::/38 1; +240e:446:4c00::/39 1; +240e:446:4e00::/40 1; +240e:446:5000::/36 1; +240e:446:6000::/35 1; +240e:446:8000::/33 1; +240e:447::/32 1; +240e:448::/34 1; +240e:448:4000::/37 1; +240e:448:4800::/38 1; +240e:448:4d00::/40 1; +240e:448:4e00::/39 1; +240e:448:5000::/36 1; +240e:448:6000::/35 1; +240e:448:8000::/34 1; +240e:448:c100::/40 1; +240e:448:c200::/39 1; +240e:448:c400::/38 1; +240e:448:c800::/37 1; +240e:448:d000::/36 1; +240e:448:e000::/35 1; +240e:449::/32 1; +240e:44a::/31 1; +240e:44c::/32 1; +240e:44d:40::/42 1; +240e:44d:80::/41 1; +240e:44d:100::/40 1; +240e:44d:200::/39 1; +240e:44d:400::/38 1; +240e:44d:800::/37 1; +240e:44d:1000::/36 1; +240e:44d:2000::/37 1; +240e:44d:2800::/39 1; +240e:44d:2a00::/40 1; +240e:44d:2b40::/42 1; +240e:44d:2b80::/41 1; +240e:44d:2c00::/40 1; +240e:44d:2d40::/42 1; +240e:44d:2d80::/41 1; +240e:44d:2e00::/39 1; +240e:44d:3000::/37 1; +240e:44d:3800::/40 1; +240e:44d:3940::/42 1; +240e:44d:3980::/41 1; +240e:44d:3a00::/39 1; +240e:44d:3c00::/38 1; +240e:44d:4000::/35 1; +240e:44d:6000::/37 1; +240e:44d:6800::/42 1; +240e:44d:6900::/40 1; +240e:44d:6a00::/39 1; +240e:44d:6c00::/38 1; +240e:44d:7000::/36 1; +240e:44d:8040::/42 1; +240e:44d:8080::/41 1; +240e:44d:8100::/40 1; +240e:44d:8200::/39 1; +240e:44d:8400::/38 1; +240e:44d:8800::/37 1; +240e:44d:9000::/36 1; +240e:44d:a000::/35 1; +240e:44d:c000::/34 1; +240e:44e::/31 1; +240e:450::/30 1; +240e:454::/31 1; +240e:456::/38 1; +240e:456:400::/39 1; +240e:456:600::/40 1; +240e:456:800::/37 1; +240e:456:1000::/36 1; +240e:456:2000::/36 1; +240e:456:3000::/37 1; +240e:456:3800::/39 1; +240e:456:3b00::/40 1; +240e:456:3c00::/38 1; +240e:456:4000::/37 1; +240e:456:4800::/38 1; +240e:456:4d00::/40 1; +240e:456:4e00::/39 1; +240e:456:5000::/36 1; +240e:456:6000::/35 1; +240e:456:8000::/33 1; +240e:457::/38 1; +240e:457:400::/39 1; +240e:457:700::/40 1; +240e:457:800::/37 1; +240e:457:1000::/36 1; +240e:457:2000::/39 1; +240e:457:2300::/40 1; +240e:457:2400::/38 1; +240e:457:2800::/37 1; +240e:457:3000::/37 1; +240e:457:3800::/38 1; +240e:457:3c00::/39 1; +240e:457:3f00::/40 1; +240e:457:4000::/36 1; +240e:457:5000::/38 1; +240e:457:5400::/39 1; +240e:457:5700::/40 1; +240e:457:5800::/37 1; +240e:457:6000::/35 1; +240e:457:8000::/33 1; +240e:458::/30 1; +240e:45c::/37 1; +240e:45c:800::/38 1; +240e:45c:d00::/40 1; +240e:45c:e00::/39 1; +240e:45c:1000::/36 1; +240e:45c:2000::/35 1; +240e:45c:4000::/36 1; +240e:45c:5000::/39 1; +240e:45c:5200::/40 1; +240e:45c:5400::/38 1; +240e:45c:5800::/37 1; +240e:45c:6000::/38 1; +240e:45c:6400::/39 1; +240e:45c:6700::/40 1; +240e:45c:6800::/37 1; +240e:45c:7000::/36 1; +240e:45c:8000::/36 1; +240e:45c:9000::/37 1; +240e:45c:9900::/40 1; +240e:45c:9a00::/39 1; +240e:45c:9c00::/38 1; +240e:45c:a000::/35 1; +240e:45c:c000::/38 1; +240e:45c:c400::/39 1; +240e:45c:c700::/40 1; +240e:45c:c900::/40 1; +240e:45c:ca00::/39 1; +240e:45c:cc00::/38 1; +240e:45c:d000::/36 1; +240e:45c:e000::/35 1; +240e:45d:8000::/34 1; +240e:45d:c000::/38 1; +240e:45d:c400::/39 1; +240e:45d:c700::/40 1; +240e:45d:c800::/37 1; +240e:45d:d000::/36 1; +240e:45d:e000::/35 1; +240e:45e::/36 1; +240e:45e:1000::/38 1; +240e:45e:1500::/40 1; +240e:45e:1600::/39 1; +240e:45e:1800::/37 1; +240e:45e:2000::/35 1; +240e:45e:4000::/34 1; +240e:45e:8000::/33 1; +240e:45f::/36 1; +240e:45f:1000::/38 1; +240e:45f:1500::/40 1; +240e:45f:1600::/39 1; +240e:45f:1800::/38 1; +240e:45f:1c00::/39 1; +240e:45f:1f00::/40 1; +240e:45f:2000::/35 1; +240e:45f:4000::/34 1; +240e:45f:8000::/33 1; +240e:460::/35 1; +240e:460:2000::/36 1; +240e:460:3000::/37 1; +240e:460:3800::/38 1; +240e:460:3c00::/40 1; +240e:460:3e00::/39 1; +240e:460:4000::/37 1; +240e:460:4800::/40 1; +240e:460:4a00::/39 1; +240e:460:4c00::/38 1; +240e:460:5000::/36 1; +240e:460:6000::/35 1; +240e:460:8000::/33 1; +240e:461::/32 1; +240e:462::/37 1; +240e:462:800::/39 1; +240e:462:b00::/40 1; +240e:462:c00::/38 1; +240e:462:1000::/36 1; +240e:462:2000::/35 1; +240e:462:4000::/37 1; +240e:462:4800::/38 1; +240e:462:4c00::/39 1; +240e:462:4e00::/40 1; +240e:462:5000::/37 1; +240e:462:5800::/38 1; +240e:462:5d00::/40 1; +240e:462:5e00::/39 1; +240e:462:6000::/35 1; +240e:462:8000::/33 1; +240e:463::/32 1; +240e:464::/30 1; +240e:468::/32 1; +240e:469::/35 1; +240e:469:2000::/37 1; +240e:469:2900::/40 1; +240e:469:2a00::/39 1; +240e:469:2c00::/38 1; +240e:469:3000::/38 1; +240e:469:3500::/40 1; +240e:469:3600::/39 1; +240e:469:3800::/37 1; +240e:469:4000::/34 1; +240e:469:8000::/33 1; +240e:46a::/31 1; +240e:46c::/36 1; +240e:46c:1000::/39 1; +240e:46c:1300::/40 1; +240e:46c:1400::/38 1; +240e:46c:1800::/38 1; +240e:46c:1c00::/40 1; +240e:46c:1e00::/39 1; +240e:46c:2000::/36 1; +240e:46c:3000::/37 1; +240e:46c:3800::/40 1; +240e:46c:3a00::/39 1; +240e:46c:3c00::/40 1; +240e:46c:3e00::/39 1; +240e:46c:4000::/38 1; +240e:46c:4400::/40 1; +240e:46c:4700::/40 1; +240e:46c:4900::/40 1; +240e:46c:4a00::/39 1; +240e:46c:4c00::/38 1; +240e:46c:5000::/36 1; +240e:46c:6000::/38 1; +240e:46c:6600::/39 1; +240e:46c:6800::/39 1; +240e:46c:6b00::/40 1; +240e:46c:6e00::/39 1; +240e:46c:7100::/40 1; +240e:46c:7200::/39 1; +240e:46c:7400::/38 1; +240e:46c:7900::/40 1; +240e:46c:7a00::/39 1; +240e:46c:7c00::/38 1; +240e:46c:8000::/38 1; +240e:46c:8400::/39 1; +240e:46c:8700::/40 1; +240e:46c:8800::/40 1; +240e:46c:8a00::/40 1; +240e:46c:8c00::/38 1; +240e:46c:9000::/36 1; +240e:46c:a000::/37 1; +240e:46c:a800::/38 1; +240e:46c:ac00::/40 1; +240e:46c:ae00::/40 1; +240e:46c:b100::/40 1; +240e:46c:b200::/39 1; +240e:46c:b400::/38 1; +240e:46c:b800::/39 1; +240e:46c:ba00::/40 1; +240e:46c:bc00::/38 1; +240e:46c:c000::/34 1; +240e:46d::/35 1; +240e:46d:2000::/36 1; +240e:46d:3000::/38 1; +240e:46d:3400::/39 1; +240e:46d:3600::/40 1; +240e:46d:3800::/38 1; +240e:46d:3d00::/40 1; +240e:46d:3e00::/39 1; +240e:46d:4000::/38 1; +240e:46d:4500::/40 1; +240e:46d:4600::/39 1; +240e:46d:4800::/37 1; +240e:46d:5000::/37 1; +240e:46d:5800::/38 1; +240e:46d:5c00::/39 1; +240e:46d:5e00::/40 1; +240e:46d:6000::/38 1; +240e:46d:6400::/40 1; +240e:46d:6600::/40 1; +240e:46d:6800::/38 1; +240e:46d:6c00::/39 1; +240e:46d:6e00::/40 1; +240e:46d:7000::/40 1; +240e:46d:7200::/39 1; +240e:46d:7400::/38 1; +240e:46d:7800::/38 1; +240e:46d:7d00::/40 1; +240e:46d:7e00::/39 1; +240e:46d:8000::/39 1; +240e:46d:8300::/40 1; +240e:46d:8400::/38 1; +240e:46d:8800::/37 1; +240e:46d:9000::/36 1; +240e:46d:a000::/36 1; +240e:46d:b100::/40 1; +240e:46d:b300::/40 1; +240e:46d:b400::/38 1; +240e:46d:b800::/37 1; +240e:46d:c000::/34 1; +240e:46e::/34 1; +240e:46e:4000::/35 1; +240e:46e:6000::/37 1; +240e:46e:6800::/39 1; +240e:46e:6a00::/40 1; +240e:46e:6c00::/38 1; +240e:46e:7000::/36 1; +240e:46e:8000::/35 1; +240e:46e:a000::/36 1; +240e:46e:b000::/37 1; +240e:46e:b800::/39 1; +240e:46e:ba00::/40 1; +240e:46e:bc00::/38 1; +240e:46e:c000::/34 1; +240e:46f::/32 1; +240e:470::/32 1; +240e:471::/38 1; +240e:471:500::/40 1; +240e:471:600::/39 1; +240e:471:800::/37 1; +240e:471:1000::/38 1; +240e:471:1500::/40 1; +240e:471:1600::/39 1; +240e:471:1800::/37 1; +240e:471:2000::/36 1; +240e:471:3000::/39 1; +240e:471:3300::/40 1; +240e:471:3400::/38 1; +240e:471:3800::/37 1; +240e:471:4000::/34 1; +240e:471:8000::/33 1; +240e:472::/35 1; +240e:472:2000::/36 1; +240e:472:3000::/39 1; +240e:472:3400::/38 1; +240e:472:3800::/37 1; +240e:472:4000::/34 1; +240e:472:8000::/33 1; +240e:473::/35 1; +240e:473:2000::/36 1; +240e:473:3000::/39 1; +240e:473:3300::/40 1; +240e:473:3400::/38 1; +240e:473:3800::/37 1; +240e:473:4100::/40 1; +240e:473:4200::/39 1; +240e:473:4400::/38 1; +240e:473:4800::/38 1; +240e:473:4d00::/40 1; +240e:473:4e00::/39 1; +240e:473:5000::/36 1; +240e:473:6000::/35 1; +240e:473:8000::/33 1; +240e:474::/31 1; +240e:476::/34 1; +240e:476:4000::/39 1; +240e:476:4300::/40 1; +240e:476:4400::/38 1; +240e:476:4800::/37 1; +240e:476:5000::/36 1; +240e:476:6000::/35 1; +240e:476:8000::/35 1; +240e:476:a000::/37 1; +240e:476:a800::/38 1; +240e:476:ac00::/39 1; +240e:476:af00::/40 1; +240e:476:b000::/36 1; +240e:476:c000::/34 1; +240e:477::/32 1; +240e:478::/34 1; +240e:478:4000::/36 1; +240e:478:5000::/38 1; +240e:478:5400::/39 1; +240e:478:5700::/40 1; +240e:478:5800::/38 1; +240e:478:5c00::/39 1; +240e:478:5f00::/40 1; +240e:478:6000::/35 1; +240e:478:8000::/33 1; +240e:479::/34 1; +240e:479:4100::/40 1; +240e:479:4200::/39 1; +240e:479:4400::/38 1; +240e:479:4800::/38 1; +240e:479:4d00::/40 1; +240e:479:4e00::/39 1; +240e:479:5000::/39 1; +240e:479:5300::/40 1; +240e:479:5400::/38 1; +240e:479:5800::/37 1; +240e:479:6000::/35 1; +240e:479:8000::/33 1; +240e:47a::/31 1; +240e:47c::/38 1; +240e:47c:500::/40 1; +240e:47c:600::/39 1; +240e:47c:800::/37 1; +240e:47c:1000::/36 1; +240e:47c:2000::/35 1; +240e:47c:4000::/34 1; +240e:47c:8000::/33 1; +240e:47d::/32 1; +240e:47e::/37 1; +240e:47e:900::/40 1; +240e:47e:a00::/39 1; +240e:47e:c00::/38 1; +240e:47e:1000::/36 1; +240e:47e:2000::/37 1; +240e:47e:2800::/38 1; +240e:47e:2d00::/40 1; +240e:47e:2f00::/40 1; +240e:47e:3100::/40 1; +240e:47e:3300::/40 1; +240e:47e:3700::/40 1; +240e:47e:3900::/40 1; +240e:47e:3b00::/40 1; +240e:47e:3d00::/40 1; +240e:47e:3e00::/39 1; +240e:47e:4000::/37 1; +240e:47e:4800::/38 1; +240e:47e:4c00::/39 1; +240e:47e:4f00::/40 1; +240e:47e:5000::/36 1; +240e:47e:6000::/35 1; +240e:47e:8000::/36 1; +240e:47e:9000::/38 1; +240e:47e:9500::/40 1; +240e:47e:9600::/39 1; +240e:47e:9800::/37 1; +240e:47e:a000::/35 1; +240e:47e:c000::/36 1; +240e:47e:d000::/37 1; +240e:47e:d900::/40 1; +240e:47e:da00::/39 1; +240e:47e:dc00::/38 1; +240e:47e:e000::/35 1; +240e:47f::/32 1; +240e:480::/25 1; +240e:500::/24 1; +240e:600::/25 1; +240e:680::/28 1; +240e:690::/29 1; +240e:698::/34 1; +240e:698:4000::/38 1; +240e:698:4400::/40 1; +240e:698:4600::/39 1; +240e:698:4800::/37 1; +240e:698:5000::/36 1; +240e:698:6000::/35 1; +240e:698:8000::/33 1; +240e:699::/32 1; +240e:69a::/31 1; +240e:69c::/30 1; +240e:6a0::/28 1; +240e:6b0::/32 1; +240e:6b2::/31 1; +240e:6b4::/30 1; +240e:6b8::/29 1; +240e:6c0::/26 1; +240e:700::/24 1; +240e:800::/26 1; +240e:840:100::/40 1; +240e:840:200::/39 1; +240e:840:400::/38 1; +240e:840:800::/37 1; +240e:840:1000::/36 1; +240e:840:2000::/35 1; +240e:840:4000::/34 1; +240e:840:8000::/33 1; +240e:841::/32 1; +240e:842::/31 1; +240e:844::/30 1; +240e:848::/29 1; +240e:850::/28 1; +240e:860:100::/40 1; +240e:860:200::/39 1; +240e:860:400::/38 1; +240e:860:800::/37 1; +240e:860:1000::/36 1; +240e:860:2000::/35 1; +240e:860:4000::/34 1; +240e:860:8000::/33 1; +240e:861::/32 1; +240e:862::/31 1; +240e:864::/30 1; +240e:868::/29 1; +240e:870::/29 1; +240e:878::/43 1; +240e:878:20::/48 1; +240e:878:21::/50 1; +240e:878:23:8000::/49 1; +240e:878:24::/46 1; +240e:878:28::/45 1; +240e:878:30::/44 1; +240e:878:40::/44 1; +240e:878:50::/46 1; +240e:878:54::/48 1; +240e:878:55::/49 1; +240e:878:55:8000::/50 1; +240e:878:56::/47 1; +240e:878:58::/45 1; +240e:878:60::/43 1; +240e:878:80::/41 1; +240e:878:100::/40 1; +240e:878:200::/39 1; +240e:878:400::/38 1; +240e:878:800::/37 1; +240e:878:1000::/36 1; +240e:878:2000::/35 1; +240e:878:4000::/34 1; +240e:878:8000::/33 1; +240e:879::/32 1; +240e:87a::/31 1; +240e:87c::/38 1; +240e:87c:500::/40 1; +240e:87c:600::/39 1; +240e:87c:800::/37 1; +240e:87c:1000::/40 1; +240e:87c:1200::/39 1; +240e:87c:1400::/38 1; +240e:87c:1800::/37 1; +240e:87c:2000::/35 1; +240e:87c:4000::/34 1; +240e:87c:8000::/33 1; +240e:87d::/32 1; +240e:87e::/31 1; +240e:880::/25 1; +240e:900::/25 1; +240e:980::/34 1; +240e:980:4000::/38 1; +240e:980:4400::/40 1; +240e:980:4600::/39 1; +240e:980:4800::/37 1; +240e:980:5000::/36 1; +240e:980:6000::/35 1; +240e:980:8000::/39 1; +240e:980:8300::/40 1; +240e:980:8400::/38 1; +240e:980:8800::/37 1; +240e:980:9000::/36 1; +240e:980:a000::/35 1; +240e:980:c000::/34 1; +240e:981::/32 1; +240e:982::/33 1; +240e:982:8000::/35 1; +240e:982:a000::/36 1; +240e:982:b100::/40 1; +240e:982:b400::/38 1; +240e:982:b900::/40 1; +240e:982:ba00::/39 1; +240e:982:bc00::/38 1; +240e:982:c000::/34 1; +240e:983::/32 1; +240e:984::/30 1; +240e:988::/29 1; +240e:990::/28 1; +240e:9a0::/27 1; +240e:9c0::/26 1; +240e:a00::/23 1; +240e:c00::/22 1; +240e:1000::/20 1; +240e:2000::/19 1; +240f:8000::/34 1; +240f:8000:4100::/40 1; +240f:8000:4200::/39 1; +240f:8000:4400::/38 1; +240f:8000:4800::/37 1; +240f:8000:5000::/36 1; +240f:8000:6000::/35 1; +240f:8000:8000::/33 1; +240f:8001::/32 1; +240f:8002::/31 1; +240f:8004::/30 1; +240f:8008::/29 1; +240f:8010::/30 1; +240f:8014:1000::/36 1; +240f:8014:2000::/35 1; +240f:8014:4000::/34 1; +240f:8014:8000::/33 1; +240f:8015::/32 1; +240f:8016::/31 1; +240f:8018::/29 1; +240f:8020::/27 1; +240f:8040::/26 1; +240f:8080::/27 1; +240f:80a0::/34 1; +240f:80a0:4100::/40 1; +240f:80a0:4200::/39 1; +240f:80a0:4400::/38 1; +240f:80a0:4800::/37 1; +240f:80a0:5000::/36 1; +240f:80a0:6000::/35 1; +240f:80a0:8000::/33 1; +240f:80a1::/32 1; +240f:80a2::/31 1; +240f:80a4::/30 1; +240f:80a8::/29 1; +240f:80b0::/28 1; +240f:80c0::/27 1; +240f:80e0::/28 1; +240f:80f0::/29 1; +240f:80f8::/34 1; +240f:80f8:4100::/40 1; +240f:80f8:4200::/39 1; +240f:80f8:4400::/38 1; +240f:80f8:4800::/37 1; +240f:80f8:5000::/36 1; +240f:80f8:6000::/35 1; +240f:80f8:8000::/33 1; +240f:80f9::/34 1; +240f:80f9:4100::/40 1; +240f:80f9:4200::/39 1; +240f:80f9:4400::/38 1; +240f:80f9:4800::/37 1; +240f:80f9:5000::/36 1; +240f:80f9:6000::/35 1; +240f:80f9:8000::/33 1; +240f:80fa::/34 1; +240f:80fa:4100::/40 1; +240f:80fa:4200::/39 1; +240f:80fa:4400::/38 1; +240f:80fa:4800::/37 1; +240f:80fa:5000::/36 1; +240f:80fa:6000::/35 1; +240f:80fa:8000::/33 1; +240f:80fb::/32 1; +240f:80fc::/34 1; +240f:80fc:4100::/40 1; +240f:80fc:4200::/39 1; +240f:80fc:4400::/38 1; +240f:80fc:4800::/37 1; +240f:80fc:5000::/36 1; +240f:80fc:6000::/35 1; +240f:80fc:8000::/33 1; +240f:80fd::/32 1; +240f:80fe::/34 1; +240f:80fe:4100::/40 1; +240f:80fe:4200::/39 1; +240f:80fe:4400::/38 1; +240f:80fe:4800::/37 1; +240f:80fe:5000::/36 1; +240f:80fe:6000::/35 1; +240f:80fe:8000::/33 1; +240f:80ff::/34 1; +240f:80ff:4100::/40 1; +240f:80ff:4200::/39 1; +240f:80ff:4400::/38 1; +240f:80ff:4800::/37 1; +240f:80ff:5000::/36 1; +240f:80ff:6000::/35 1; +240f:80ff:8000::/33 1; +240f:c000::/24 1; +2600:70ff:b831::/48 1; +2600:70ff:b832::/47 1; +2600:70ff:b834::/46 1; +2600:70ff:b838::/47 1; +2600:70ff:b83b::/48 1; +2600:70ff:c028::/47 1; +2600:70ff:c0fe::/48 1; +2600:70ff:f80c::/46 1; +2600:70ff:f810::/48 1; +2602:f70d::/34 1; +2602:fd92:c40::/44 1; +2602:fd92:cc0::/44 1; +2602:feda:d0::/44 1; +2602:feda:ae0::/47 1; +2602:feda:af6::/48 1; +2602:feda:afd::/48 1; +2602:feda:e60::/44 1; +2602:feda:e80::/44 1; +2605:9d80:9003::/48 1; +2605:9d80:9013::/48 1; +2605:9d80:9023::/48 1; +2605:9d80:9033::/48 1; +2605:9d80:9042::/48 1; +2605:9d80:9071::/48 1; +2605:9d80:9092::/48 1; +2606:54c0:1f18::/45 1; +2606:54c0:1f68::/45 1; +2606:54c3:0:2a3::/64 1; +2606:54c3:0:ca8::/64 1; +2a00:79e0:200:500::/56 1; +2a00:cb20:3800::/40 1; +2a01:ce9e:8000::/33 1; +2a02:26f7:c400:f4cc::/64 1; +2a02:26f7:c404:f4cc::/64 1; +2a02:26f7:c408:f4cc::/64 1; +2a02:26f7:c40c:f4cc::/64 1; +2a02:26f7:c410:f4cc::/64 1; +2a02:26f7:c414:f4cc::/64 1; +2a02:26f7:c418:f4cc::/64 1; +2a02:26f7:c41c:f4cc::/64 1; +2a02:26f7:c420:f4cc::/64 1; +2a02:5740:67::/48 1; +2a02:5741:67::/48 1; +2a02:5742:67::/48 1; +2a02:5743:67::/48 1; +2a02:5744:67::/48 1; +2a02:5745:67::/48 1; +2a02:5746:67::/48 1; +2a02:5747:67::/48 1; +2a03:5f40::/32 1; +2a04:3e00:1002::/48 1; +2a04:c444:6400::/40 1; +2a04:f580:9010::/48 1; +2a04:f580:9013::/48 1; +2a04:f580:9040::/48 1; +2a04:f580:9050::/48 1; +2a04:f580:9060::/48 1; +2a04:f580:9070::/48 1; +2a04:f580:9080::/48 1; +2a04:f580:9210::/48 1; +2a04:f580:9212::/47 1; +2a04:f580:9220::/48 1; +2a04:f580:9230::/48 1; +2a04:f580:9240::/48 1; +2a04:f580:9250::/48 1; +2a04:f580:9260::/48 1; +2a04:f580:9270::/48 1; +2a04:f580:9280::/48 1; +2a04:f580:9290::/48 1; +2a05:a884:4010::/48 1; +2a06:a005:740::/44 1; +2a06:a005:2910::/46 1; +2a06:a005:2914::/47 1; +2a06:a005:2980::/44 1; +2a06:e881:6600::/44 1; +2a09:2702:48::/48 1; +2a09:bac1:1980:58::/64 1; +2a09:bac1:1980:170::/64 1; +2a09:bac1:19a0:58::/64 1; +2a09:bac1:19a0:170::/64 1; +2a09:bac1:19c0:58::/64 1; +2a09:bac1:19c0:170::/64 1; +2a09:bac1:19e0:58::/64 1; +2a09:bac1:19e0:170::/64 1; +2a09:bac2:1f18::/45 1; +2a09:bac2:1f68::/45 1; +2a09:bac3:1f18::/45 1; +2a09:bac3:1f68::/45 1; +2a09:bac4:178::/45 1; +2a09:bac4:1178::/45 1; +2a09:bac5:1f48::/45 1; +2a09:bac5:1f98::/45 1; +2a09:bac6:1f48::/45 1; +2a09:bac6:1f98::/45 1; +2a0a:2844:ffa1::/48 1; +2a0a:6040:3442::/47 1; +2a0a:6040:3444::/46 1; +2a0a:6040:3448::/45 1; +2a0a:6040:5800::/40 1; +2a0a:6040:a400::/43 1; +2a0a:6040:a420::/44 1; +2a0a:6040:a436::/47 1; +2a0a:6040:a438::/45 1; +2a0a:6040:a440::/44 1; +2a0a:6040:a452::/47 1; +2a0a:6040:a454::/46 1; +2a0a:6040:a458::/45 1; +2a0a:6040:a462::/47 1; +2a0a:6040:a464::/46 1; +2a0a:6040:a468::/45 1; +2a0a:6040:a470::/44 1; +2a0a:6040:a480::/41 1; +2a0a:6040:a710::/48 1; +2a0a:6040:d300::/43 1; +2a0a:6040:d740::/48 1; +2a0a:6040:e543::/48 1; +2a0a:6040:e54d::/48 1; +2a0a:6040:e54e::/47 1; +2a0b:1302::/40 1; +2a0b:1302:4000::/40 1; +2a0b:1306:9::/48 1; +2a0b:4340:21::/48 1; +2a0b:4340:40::/44 1; +2a0b:4340:1d00::/40 1; +2a0b:4340:2000::/35 1; +2a0b:4340:4000::/34 1; +2a0b:4340:8000::/33 1; +2a0b:4341::/39 1; +2a0b:4341:200::/40 1; +2a0b:4341:e00::/40 1; +2a0c:b641:130::/44 1; +2a0c:b641:7a1::/48 1; +2a0d:2581:200::/40 1; +2a0d:2581:400::/38 1; +2a0d:2581:800::/37 1; +2a0d:2581:1000::/36 1; +2a0d:2581:2000::/35 1; +2a0d:2581:4000::/34 1; +2a0d:2581:8000::/33 1; +2a0d:2582::/32 1; +2a0d:2906::/31 1; +2a0d:2908::/29 1; +2a0d:2910::/28 1; +2a0d:2920::/27 1; +2a0e:800:ff80::/42 1; +2a0e:800:ffc0::/43 1; +2a0e:800:ffe0::/44 1; +2a0e:46c6:200::/40 1; +2a0e:8f02:f055::/48 1; +2a0e:aa01:1fff::/48 1; +2a0e:aa01:2000::/35 1; +2a0e:aa01:4000::/34 1; +2a0e:aa01:8000::/35 1; +2a0e:aa01:a000::/37 1; +2a0e:aa01:a800::/39 1; +2a0e:aa01:aa00::/40 1; +2a0e:aa01:ab00::/47 1; +2a0e:aa01:fe00::/44 1; +2a0e:aa07:e01a::/48 1; +2a0e:aa07:e035::/48 1; +2a0e:aa07:e400::/44 1; +2a0e:acc0:ac14::/48 1; +2a0e:b107:13f::/48 1; +2a0e:b107:170::/44 1; +2a0e:b107:1d0::/44 1; +2a0e:b107:3e2::/47 1; +2a0e:b107:3e4::/46 1; +2a0e:b107:3e8::/45 1; +2a0e:b107:500::/44 1; +2a0e:b107:510::/46 1; +2a0e:b107:514::/47 1; +2a0e:b107:516::/48 1; +2a0e:b107:518::/45 1; +2a0e:b107:590::/44 1; +2a0e:b107:5c4::/48 1; +2a0e:b107:6e5::/48 1; +2a0e:b107:710::/44 1; +2a0e:b107:c30::/44 1; +2a0e:b107:c50::/44 1; +2a0e:b107:d30::/44 1; +2a0e:b107:dce::/48 1; +2a0e:b107:e70::/44 1; +2a0e:b107:178c::/46 1; +2a0e:b107:17e0::/44 1; +2a0e:b107:1c60::/44 1; +2a0f:5707:ac00::/44 1; +2a0f:9400:6c00::/40 1; +2a0f:9400:6f00::/40 1; +2a0f:9400:7340::/44 1; +2a0f:9400:8006::/48 1; +2a0f:9400:b00b::/48 1; +2a0f:9400:b00c::/46 1; +2a0f:9400:b010::/44 1; +2a0f:9400:b020::/43 1; +2a0f:9400:b040::/42 1; +2a0f:9400:b080::/41 1; +2a0f:9400:b100::/40 1; +2a0f:9400:b200::/39 1; +2a0f:9400:b400::/38 1; +2a0f:9400:b800::/37 1; +2a10:2f00:15c::/48 1; +2a12:3fc2:aa40::/44 1; +2a12:3fc2:ab50::/48 1; +2a13:1800:11::/48 1; +2a13:1800:12::/47 1; +2a13:1800:14::/46 1; +2a13:1800:18::/45 1; +2a13:1800:20::/43 1; +2a13:1800:40::/42 1; +2a13:1800:80::/41 1; +2a13:1800:100::/40 1; +2a13:1800:200::/40 1; +2a13:1800:310::/44 1; +2a13:1800:320::/43 1; +2a13:1800:340::/42 1; +2a13:1800:380::/41 1; +2a13:1800:400::/38 1; +2a13:1800:800::/37 1; +2a13:1800:1000::/36 1; +2a13:1800:2000::/35 1; +2a13:1800:4000::/34 1; +2a13:1800:8000::/33 1; +2a13:1801::/32 1; +2a13:1802::/31 1; +2a13:1804::/30 1; +2a13:6845::/32 1; +2a13:a5c0::/32 1; +2a13:a5c6:9100::/40 1; diff --git a/minigate/root/usr/lib/minigate/geo/120000.conf b/minigate/root/usr/lib/minigate/geo/120000.conf new file mode 100644 index 000000000..fb4461e5e --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/120000.conf @@ -0,0 +1,659 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 天津市 +20.139.160.0/20 1; +27.0.128.0/21 1; +27.112.0.0/18 1; +36.106.0.0/16 1; +36.134.64.0/23 1; +36.192.9.0/24 1; +36.192.10.0/23 1; +42.80.0.0/15 1; +42.122.0.0/16 1; +42.187.128.0/17 1; +42.245.219.224/27 1; +42.247.13.192/27 1; +42.247.15.16/28 1; +42.247.15.128/27 1; +42.247.19.0/27 1; +42.247.19.160/27 1; +42.247.21.80/30 1; +42.247.32.0/27 1; +42.247.33.96/27 1; +42.247.49.32/27 1; +43.224.208.0/22 1; +43.225.252.0/22 1; +43.226.120.0/22 1; +43.226.160.0/22 1; +43.229.232.0/22 1; +43.236.224.0/22 1; +43.240.56.0/22 1; +43.241.180.0/22 1; +43.242.56.0/22 1; +43.242.252.0/22 1; +43.246.112.0/23 1; +43.247.4.0/22 1; +43.247.148.0/22 1; +43.247.196.0/22 1; +43.249.136.0/22 1; +43.254.136.0/22 1; +45.112.228.0/22 1; +45.112.232.0/21 1; +45.115.201.0/24 1; +45.115.202.0/23 1; +45.124.32.0/22 1; +45.249.112.0/22 1; +45.251.84.0/22 1; +45.251.96.0/22 1; +45.253.48.0/22 1; +49.220.128.0/17 1; +58.87.106.0/23 1; +58.87.108.0/22 1; +58.87.112.0/20 1; +58.194.96.0/20 1; +58.194.112.0/21 1; +58.200.4.0/24 1; +58.200.12.0/24 1; +58.200.76.0/25 1; +58.200.112.0/24 1; +58.206.128.0/19 1; +59.43.249.108/30 1; +59.43.249.112/30 1; +59.67.0.0/17 1; +59.67.128.0/19 1; +59.67.160.0/20 1; +59.67.176.0/21 1; +59.67.184.0/22 1; +59.81.46.0/24 1; +60.24.0.0/14 1; +60.28.0.0/15 1; +60.30.0.0/16 1; +61.136.0.0/18 1; +61.181.0.0/16 1; +61.232.16.0/21 1; +61.232.24.0/22 1; +61.234.64.0/19 1; +61.237.12.64/27 1; +61.237.126.250/31 1; +61.237.126.254/31 1; +61.240.0.0/19 1; +101.46.128.0/18 1; +101.47.0.0/20 1; +101.106.0.0/18 1; +103.1.20.0/22 1; +103.3.96.0/22 1; +103.4.184.0/22 1; +103.10.16.0/22 1; +103.12.32.0/22 1; +103.22.120.0/22 1; +103.24.228.0/22 1; +103.25.40.0/22 1; +103.32.224.0/22 1; +103.33.72.0/22 1; +103.36.28.0/22 1; +103.38.0.0/22 1; +103.38.116.0/22 1; +103.44.224.0/22 1; +103.45.224.0/22 1; +103.52.96.0/21 1; +103.52.104.0/22 1; +103.55.228.0/22 1; +103.56.32.0/22 1; +103.57.52.0/22 1; +103.86.232.0/21 1; +103.86.240.0/21 1; +103.86.248.0/22 1; +103.98.48.0/22 1; +103.100.32.0/24 1; +103.110.132.0/22 1; +103.116.138.0/23 1; +103.155.34.0/23 1; +103.192.140.0/22 1; +103.197.183.0/24 1; +103.202.60.0/22 1; +103.202.76.0/22 1; +103.205.192.0/22 1; +103.207.228.0/22 1; +103.207.232.0/22 1; +103.211.96.0/23 1; +103.211.98.0/24 1; +103.211.156.0/22 1; +103.212.196.0/22 1; +103.212.200.0/22 1; +103.218.72.0/22 1; +103.218.92.0/22 1; +103.220.48.0/22 1; +103.220.60.0/22 1; +103.222.148.0/22 1; +103.226.132.0/22 1; +103.227.136.0/22 1; +103.230.28.0/22 1; +103.231.144.0/22 1; +103.233.4.0/22 1; +103.237.24.0/22 1; +103.238.160.0/23 1; +103.241.220.0/22 1; +103.244.164.0/22 1; +103.248.100.0/22 1; +103.252.204.0/22 1; +103.252.208.0/22 1; +103.252.232.0/22 1; +103.252.248.0/22 1; +104.28.66.44/31 1; +104.28.69.44/31 1; +104.28.83.16/31 1; +104.28.99.14/31 1; +104.28.101.14/31 1; +104.28.117.46/31 1; +104.28.120.46/31 1; +104.28.184.3/32 1; +104.28.184.4/30 1; +104.28.184.8/31 1; +104.28.216.52/30 1; +104.28.216.56/31 1; +104.28.216.58/32 1; +104.28.248.52/30 1; +104.28.248.56/31 1; +104.28.248.58/32 1; +106.47.0.0/16 1; +106.74.246.0/24 1; +111.30.0.0/15 1; +111.32.0.0/15 1; +111.160.0.0/13 1; +112.54.240.0/22 1; +112.57.64.0/20 1; +113.31.32.0/20 1; +115.24.136.0/21 1; +115.24.144.0/20 1; +115.24.160.0/19 1; +115.24.192.0/18 1; +115.26.0.0/20 1; +115.26.32.0/19 1; +115.26.64.0/19 1; +115.26.96.0/20 1; +115.159.238.0/23 1; +115.159.240.0/22 1; +115.159.244.0/23 1; +115.168.33.0/24 1; +115.168.65.0/24 1; +116.78.0.0/16 1; +116.130.0.0/16 1; +117.8.0.0/13 1; +117.73.250.0/23 1; +117.131.128.0/17 1; +117.136.1.0/24 1; +117.136.54.0/23 1; +118.28.0.0/15 1; +118.89.0.0/21 1; +118.89.210.0/23 1; +118.89.212.0/22 1; +118.89.216.0/21 1; +118.89.224.0/20 1; +118.89.240.0/21 1; +118.89.248.0/23 1; +118.103.168.0/22 1; +118.126.120.0/22 1; +118.215.192.0/22 1; +118.215.196.0/24 1; +121.51.48.0/23 1; +121.51.51.0/24 1; +121.51.224.0/22 1; +121.51.228.0/23 1; +121.51.230.0/25 1; +121.51.232.0/22 1; +121.193.128.0/18 1; +121.195.191.0/24 1; +122.72.31.0/25 1; +122.72.37.0/24 1; +123.94.5.0/25 1; +123.150.0.0/15 1; +123.206.0.0/18 1; +123.206.64.0/19 1; +123.206.96.0/24 1; +123.207.134.0/23 1; +123.207.136.0/21 1; +123.207.144.0/20 1; +123.207.160.0/20 1; +124.16.173.0/24 1; +124.68.0.0/17 1; +124.196.21.0/24 1; +124.196.34.0/23 1; +124.196.36.0/22 1; +124.196.40.0/21 1; +124.196.48.0/20 1; +124.196.64.0/18 1; +124.196.128.0/17 1; +124.249.128.0/18 1; +124.249.192.0/19 1; +125.35.128.0/17 1; +125.36.0.0/14 1; +125.213.32.0/20 1; +139.5.80.0/22 1; +139.199.20.0/22 1; +139.199.24.0/21 1; +139.199.32.0/21 1; +139.199.94.0/23 1; +139.199.96.0/19 1; +139.199.128.0/21 1; +139.220.128.0/24 1; +139.220.192.0/21 1; +139.220.200.0/23 1; +139.220.202.0/24 1; +140.143.0.0/18 1; +140.143.64.0/20 1; +140.143.80.0/23 1; +150.129.136.0/22 1; +150.242.232.0/22 1; +154.8.128.0/21 1; +154.8.240.0/20 1; +160.202.60.0/23 1; +160.202.62.0/24 1; +160.202.148.0/22 1; +160.202.152.0/22 1; +163.53.48.0/22 1; +163.53.64.0/22 1; +163.53.160.0/22 1; +180.89.0.0/18 1; +180.90.128.0/17 1; +180.212.0.0/15 1; +182.238.0.0/16 1; +182.254.16.0/22 1; +182.254.20.0/23 1; +182.254.22.0/24 1; +182.254.48.0/20 1; +188.131.128.0/17 1; +202.88.32.0/22 1; +202.90.16.0/22 1; +202.90.28.0/22 1; +202.97.25.192/30 1; +202.97.25.196/31 1; +202.97.25.236/31 1; +202.97.25.240/29 1; +202.97.25.248/31 1; +202.97.25.252/31 1; +202.97.32.118/31 1; +202.97.34.6/31 1; +202.97.34.26/31 1; +202.97.34.58/31 1; +202.97.34.214/31 1; +202.97.34.222/31 1; +202.97.34.226/31 1; +202.97.34.230/31 1; +202.97.36.16/31 1; +202.97.36.22/31 1; +202.97.36.74/31 1; +202.97.37.140/30 1; +202.97.37.144/30 1; +202.97.37.184/31 1; +202.97.37.204/31 1; +202.97.38.8/31 1; +202.97.39.218/31 1; +202.97.39.250/31 1; +202.97.41.0/31 1; +202.97.41.22/31 1; +202.97.41.24/30 1; +202.97.41.52/30 1; +202.97.41.57/32 1; +202.97.41.92/31 1; +202.97.41.112/30 1; +202.97.41.144/31 1; +202.97.41.154/31 1; +202.97.41.188/31 1; +202.97.42.72/31 1; +202.97.42.76/31 1; +202.97.42.132/31 1; +202.97.42.228/30 1; +202.97.42.232/29 1; +202.97.42.240/29 1; +202.97.42.248/31 1; +202.97.43.12/31 1; +202.97.46.188/30 1; +202.97.47.152/30 1; +202.97.47.156/31 1; +202.97.54.50/31 1; +202.97.54.224/31 1; +202.97.54.228/31 1; +202.97.56.240/31 1; +202.97.70.218/31 1; +202.97.71.76/31 1; +202.97.71.109/32 1; +202.97.71.116/31 1; +202.97.71.160/31 1; +202.97.71.168/31 1; +202.97.74.160/31 1; +202.97.74.164/31 1; +202.97.74.236/31 1; +202.97.75.160/31 1; +202.97.75.164/31 1; +202.97.75.176/30 1; +202.97.75.180/31 1; +202.97.75.204/31 1; +202.97.75.212/31 1; +202.97.76.160/31 1; +202.97.76.228/31 1; +202.97.77.48/31 1; +202.97.78.198/31 1; +202.97.78.210/31 1; +202.97.78.212/30 1; +202.97.79.2/31 1; +202.97.79.6/31 1; +202.97.79.14/31 1; +202.97.79.18/31 1; +202.97.79.20/30 1; +202.97.79.24/30 1; +202.97.79.28/31 1; +202.97.79.48/31 1; +202.97.79.52/31 1; +202.97.79.66/31 1; +202.97.79.78/31 1; +202.97.79.86/31 1; +202.97.79.106/31 1; +202.97.79.110/31 1; +202.97.79.114/31 1; +202.97.79.118/31 1; +202.97.79.122/31 1; +202.97.79.130/31 1; +202.97.79.138/31 1; +202.97.79.150/31 1; +202.97.79.162/31 1; +202.97.79.164/30 1; +202.97.79.168/29 1; +202.97.79.176/30 1; +202.97.79.180/31 1; +202.97.79.184/31 1; +202.97.79.194/31 1; +202.97.79.198/31 1; +202.97.79.200/30 1; +202.97.79.242/31 1; +202.97.79.246/31 1; +202.97.79.248/30 1; +202.97.79.254/31 1; +202.97.80.166/31 1; +202.97.81.16/31 1; +202.97.81.20/31 1; +202.97.81.24/31 1; +202.97.81.28/31 1; +202.97.81.36/31 1; +202.97.81.44/31 1; +202.97.81.52/31 1; +202.97.81.100/30 1; +202.97.81.104/31 1; +202.97.81.176/31 1; +202.97.81.196/30 1; +202.97.81.200/29 1; +202.97.81.208/29 1; +202.97.81.216/30 1; +202.97.81.220/31 1; +202.97.81.224/31 1; +202.97.81.228/31 1; +202.97.81.240/31 1; +202.97.81.244/31 1; +202.97.81.248/31 1; +202.97.81.252/31 1; +202.97.84.56/30 1; +202.97.84.60/31 1; +202.99.64.0/18 1; +202.113.0.0/17 1; +202.113.128.0/18 1; +202.113.192.0/19 1; +202.113.224.0/20 1; +202.113.242.0/23 1; +202.113.244.0/22 1; +202.113.248.0/21 1; +202.122.64.0/19 1; +202.127.240.128/25 1; +202.127.246.128/25 1; +202.134.208.0/20 1; +202.140.144.0/20 1; +202.143.16.0/20 1; +202.143.104.0/22 1; +202.164.0.0/20 1; +210.31.128.0/19 1; +210.52.0.96/27 1; +210.52.0.128/25 1; +210.52.1.0/24 1; +210.52.5.0/28 1; +210.52.8.0/24 1; +210.52.18.0/25 1; +210.52.158.0/23 1; +210.52.160.0/22 1; +210.52.164.0/23 1; +210.82.128.0/23 1; +210.82.130.0/24 1; +210.82.137.0/24 1; +210.82.138.0/24 1; +210.82.160.0/24 1; +210.82.173.0/24 1; +210.82.178.0/24 1; +210.82.183.0/24 1; +210.82.204.0/23 1; +210.82.215.0/24 1; +210.82.230.0/23 1; +210.82.232.0/23 1; +210.82.234.0/24 1; +210.83.160.0/20 1; +211.68.112.0/21 1; +211.68.192.0/18 1; +211.81.0.0/18 1; +211.94.192.0/18 1; +211.98.12.0/23 1; +211.98.29.0/24 1; +211.98.128.88/29 1; +211.98.141.0/24 1; +211.98.169.0/27 1; +211.102.96.0/19 1; +211.103.80.0/20 1; +211.137.144.0/20 1; +211.137.160.0/20 1; +211.148.160.0/19 1; +211.156.48.0/20 1; +211.159.136.0/23 1; +211.159.252.0/22 1; +211.161.20.0/22 1; +211.161.52.0/22 1; +211.161.56.0/22 1; +211.161.80.0/20 1; +211.161.128.0/20 1; +211.162.204.0/22 1; +211.162.240.0/20 1; +218.30.175.0/24 1; +218.30.189.0/24 1; +218.67.128.0/17 1; +218.68.0.0/15 1; +218.104.16.0/20 1; +219.72.202.144/28 1; +219.150.32.0/19 1; +219.150.64.0/19 1; +219.150.96.0/20 1; +219.158.7.222/31 1; +219.158.8.186/31 1; +219.158.9.22/31 1; +219.158.9.206/31 1; +219.158.10.164/31 1; +219.158.10.170/31 1; +219.158.10.174/31 1; +219.158.12.12/31 1; +219.158.12.84/31 1; +219.158.14.184/31 1; +219.158.15.214/31 1; +219.158.15.216/30 1; +219.158.18.170/31 1; +219.158.18.202/31 1; +219.158.19.142/31 1; +219.158.20.14/31 1; +219.158.20.22/31 1; +219.158.20.98/31 1; +219.158.20.180/30 1; +219.158.20.184/31 1; +219.158.23.34/31 1; +219.158.23.194/31 1; +219.158.97.170/31 1; +219.158.98.116/31 1; +219.158.100.74/31 1; +219.158.101.252/31 1; +219.158.102.46/31 1; +219.158.102.58/31 1; +219.158.104.84/31 1; +219.158.104.88/31 1; +219.158.104.92/31 1; +219.158.107.180/31 1; +219.158.109.100/31 1; +219.158.109.164/31 1; +219.158.110.108/31 1; +219.158.110.140/31 1; +219.158.110.144/31 1; +219.158.113.50/31 1; +219.158.113.58/31 1; +219.158.113.62/31 1; +219.158.113.246/31 1; +219.158.114.0/31 1; +219.158.116.132/31 1; +219.226.0.0/20 1; +219.243.0.0/20 1; +219.243.16.0/21 1; +219.243.24.0/22 1; +219.243.32.0/19 1; +219.243.80.0/20 1; +219.243.225.0/24 1; +220.113.48.0/20 1; +220.113.128.0/21 1; +220.113.136.0/22 1; +220.113.144.0/22 1; +220.113.148.0/23 1; +220.113.168.0/21 1; +220.113.180.0/22 1; +220.113.184.0/22 1; +220.114.64.0/21 1; +220.114.248.0/23 1; +220.115.8.0/21 1; +220.115.16.0/20 1; +220.115.228.0/22 1; +220.115.232.0/21 1; +220.115.240.0/21 1; +220.158.243.0/24 1; +220.194.64.0/18 1; +220.205.78.0/23 1; +220.205.80.0/23 1; +220.206.212.0/24 1; +221.129.0.0/16 1; +221.174.112.0/24 1; +221.176.16.236/31 1; +221.177.16.0/23 1; +221.183.13.40/29 1; +221.183.19.100/30 1; +221.183.19.104/30 1; +221.183.24.188/30 1; +221.183.24.192/30 1; +221.183.27.100/30 1; +221.183.27.104/30 1; +221.183.36.2/31 1; +221.183.36.70/31 1; +221.183.36.82/31 1; +221.183.36.84/30 1; +221.183.36.98/31 1; +221.183.40.98/31 1; +221.183.40.178/31 1; +221.183.42.162/31 1; +221.183.47.192/29 1; +221.196.0.0/15 1; +221.198.0.0/16 1; +221.238.0.0/16 1; +221.239.0.0/17 1; +222.30.0.0/17 1; +222.36.0.0/16 1; +222.126.246.0/23 1; +222.126.248.0/21 1; +223.103.7.0/24 1; +223.104.7.0/24 1; +223.210.128.0/19 1; +223.210.192.0/19 1; +223.211.128.0/18 1; +2001:250:401::/48 1; +2001:250:402::/47 1; +2001:250:404::/46 1; +2001:250:408::/48 1; +2001:250:40d::/48 1; +2001:250:40e::/47 1; +2001:250:410::/44 1; +2001:250:420::/43 1; +2001:250:440::/42 1; +2001:250:480::/41 1; +2001:250:500::/40 1; +2001:250:600::/39 1; +2001:da8:a6::/48 1; +2001:da8:a001::/48 1; +2001:da8:a002::/48 1; +2001:da8:a005::/48 1; +2001:da8:a006::/47 1; +2001:da8:a008::/45 1; +2001:da8:a010::/45 1; +2001:da8:a018::/46 1; +2001:da8:a01c::/48 1; +2001:da8:a01e::/47 1; +2001:da8:a020::/47 1; +2001:da8:a023::/48 1; +2001:da8:a024::/47 1; +2001:da8:a027::/48 1; +2001:da8:a028::/47 1; +2001:da8:a02a::/48 1; +2400:f480::/32 1; +2401:bb80::/32 1; +2401:ca00::/32 1; +2401:e2c0::/32 1; +2401:e340::/32 1; +2402:2d00::/32 1; +2402:5bc0::/32 1; +2403:5b80::/32 1; +2403:ac00::/32 1; +2404:3480::/32 1; +2404:7100::/32 1; +2405:2b80::/32 1; +2405:8a80::/32 1; +2405:8b80::/32 1; +2405:8d80::/32 1; +2405:8e80::/32 1; +2405:8f80::/32 1; +2405:9080::/32 1; +2405:9180::/32 1; +2405:9280::/32 1; +2405:9580::/32 1; +2405:9680::/32 1; +2405:bd80::/32 1; +2405:c280::/32 1; +2405:c380::/32 1; +2405:c480::/32 1; +2405:c580::/32 1; +2405:c680::/32 1; +2405:c780::/32 1; +2406:6340::/32 1; +2407:5780::/32 1; +2407:7c80::/32 1; +2408:8210::/32 1; +2408:8912:100::/40 1; +2409:8002::/40 1; +2409:8002:800::/40 1; +2409:8002:1000::/40 1; +2409:8002:1800::/40 1; +2409:8002:2000::/40 1; +2409:8002:2800::/39 1; +2409:8002:2b00::/40 1; +2409:8003:2900::/40 1; +2409:8003:2b00::/40 1; +2409:8087:200::/40 1; +2409:8702::/32 1; +2409:8802::/40 1; +2409:8902::/31 1; +2409:8a02::/32 1; +2409:8b02::/32 1; +2409:8d02::/32 1; +2409:8e02::/36 1; +2409:8e02:f000::/36 1; +240a:4286::/40 1; +2606:54c0:25a0::/45 1; +2606:54c3:0:69b::/64 1; +2a09:bac1:1980:158::/64 1; +2a09:bac1:19a0:158::/64 1; +2a09:bac1:19c0:158::/64 1; +2a09:bac1:19e0:158::/64 1; +2a09:bac2:25a0::/45 1; +2a09:bac3:25a0::/45 1; +2a09:bac5:25d0::/45 1; +2a09:bac6:25d0::/45 1; diff --git a/minigate/root/usr/lib/minigate/geo/130000.conf b/minigate/root/usr/lib/minigate/geo/130000.conf new file mode 100644 index 000000000..d58381c4e --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/130000.conf @@ -0,0 +1,709 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 河北省 +14.197.150.0/23 1; +14.197.152.0/21 1; +27.128.0.0/15 1; +27.184.0.0/13 1; +36.98.0.0/16 1; +36.143.0.0/17 1; +36.192.12.0/22 1; +36.192.16.0/21 1; +36.192.24.0/22 1; +39.98.0.0/16 1; +39.100.0.0/17 1; +39.100.128.0/19 1; +39.100.160.0/20 1; +39.100.176.0/22 1; +39.144.49.0/24 1; +39.144.50.0/24 1; +42.247.2.208/29 1; +42.247.13.152/29 1; +42.247.16.240/28 1; +42.247.21.92/30 1; +42.247.21.160/28 1; +42.247.25.64/28 1; +42.247.29.12/30 1; +42.247.30.64/28 1; +42.247.32.80/28 1; +42.247.46.224/28 1; +42.247.52.224/28 1; +43.224.54.16/30 1; +43.230.20.0/22 1; +43.236.12.0/22 1; +43.236.220.0/22 1; +43.237.132.0/22 1; +43.237.224.0/22 1; +43.239.120.0/22 1; +43.242.204.0/22 1; +43.243.88.0/22 1; +43.243.144.0/22 1; +43.249.4.0/22 1; +43.250.32.0/22 1; +45.113.20.0/22 1; +45.115.219.0/24 1; +45.119.68.0/22 1; +45.121.172.0/22 1; +45.126.52.0/22 1; +45.127.12.0/22 1; +47.92.0.0/16 1; +58.200.6.0/24 1; +58.200.120.136/29 1; +58.207.224.0/20 1; +58.207.240.0/21 1; +59.67.192.0/18 1; +59.153.136.0/22 1; +60.0.0.0/13 1; +60.8.0.0/15 1; +60.10.0.0/16 1; +61.55.0.0/16 1; +61.134.128.0/18 1; +61.159.0.0/18 1; +61.182.0.0/16 1; +61.232.28.0/22 1; +61.232.32.0/22 1; +61.233.32.0/20 1; +61.234.16.0/20 1; +61.235.132.0/22 1; +61.235.136.0/21 1; +61.235.144.0/20 1; +61.237.1.106/31 1; +61.237.1.110/31 1; +61.237.12.32/27 1; +61.237.27.0/27 1; +61.237.64.72/32 1; +61.237.97.172/30 1; +61.240.128.0/19 1; +101.7.192.0/20 1; +101.7.208.0/22 1; +101.7.224.0/19 1; +101.16.0.0/12 1; +101.47.96.0/20 1; +101.47.112.0/21 1; +101.72.0.0/14 1; +101.106.248.0/21 1; +101.126.64.0/18 1; +101.198.197.0/24 1; +103.1.168.0/22 1; +103.3.156.0/22 1; +103.22.84.0/22 1; +103.32.220.0/22 1; +103.33.132.0/22 1; +103.33.224.0/22 1; +103.38.84.0/22 1; +103.38.228.0/22 1; +103.41.164.0/22 1; +103.52.172.0/22 1; +103.59.124.0/22 1; +103.62.24.0/22 1; +103.63.140.0/22 1; +103.63.144.0/22 1; +103.71.0.0/22 1; +103.77.56.0/22 1; +103.83.60.0/22 1; +103.89.184.0/21 1; +103.89.192.0/19 1; +103.89.224.0/21 1; +103.98.180.0/22 1; +103.98.224.0/22 1; +103.100.116.0/22 1; +103.100.144.0/22 1; +103.106.98.0/23 1; +103.143.16.0/22 1; +103.195.160.0/22 1; +103.198.180.0/22 1; +103.203.4.0/22 1; +103.210.0.0/22 1; +103.227.212.0/22 1; +103.234.172.0/22 1; +103.236.120.0/22 1; +103.253.60.0/22 1; +104.28.20.196/30 1; +104.28.20.200/31 1; +104.28.20.202/32 1; +104.28.66.52/31 1; +104.28.66.66/31 1; +104.28.66.100/31 1; +104.28.69.52/31 1; +104.28.69.66/31 1; +104.28.69.100/31 1; +104.28.83.24/31 1; +104.28.83.38/31 1; +104.28.83.72/31 1; +104.28.99.22/31 1; +104.28.99.36/31 1; +104.28.99.66/31 1; +104.28.101.22/31 1; +104.28.101.36/31 1; +104.28.101.66/31 1; +104.28.117.54/31 1; +104.28.117.68/31 1; +104.28.117.102/31 1; +104.28.120.54/31 1; +104.28.120.68/31 1; +104.28.120.102/31 1; +104.28.191.99/32 1; +104.28.191.100/30 1; +104.28.191.104/31 1; +104.28.191.137/32 1; +104.28.191.138/31 1; +104.28.191.140/30 1; +104.28.192.197/32 1; +104.28.192.198/31 1; +104.28.192.200/30 1; +104.28.223.162/31 1; +104.28.223.164/30 1; +104.28.223.168/32 1; +104.28.223.200/30 1; +104.28.223.204/31 1; +104.28.223.206/32 1; +104.28.224.197/32 1; +104.28.224.198/31 1; +104.28.224.200/30 1; +104.28.255.162/31 1; +104.28.255.164/30 1; +104.28.255.168/32 1; +104.28.255.200/30 1; +104.28.255.204/31 1; +104.28.255.206/32 1; +104.30.167.116/32 1; +106.8.0.0/15 1; +106.11.42.0/23 1; +106.11.44.0/22 1; +106.11.186.0/23 1; +106.11.188.0/22 1; +106.11.208.0/20 1; +106.74.248.0/24 1; +106.112.0.0/13 1; +110.97.0.0/16 1; +110.98.0.0/16 1; +110.228.0.0/14 1; +110.240.0.0/12 1; +111.11.0.0/17 1; +111.61.0.0/16 1; +111.62.0.0/15 1; +111.224.0.0/14 1; +112.53.192.0/20 1; +112.54.104.0/21 1; +112.57.80.0/20 1; +112.57.96.0/20 1; +112.224.149.0/24 1; +112.224.150.0/23 1; +112.224.152.0/24 1; +114.132.128.0/17 1; +115.168.34.0/24 1; +115.168.66.0/24 1; +115.181.0.0/19 1; +115.181.158.0/23 1; +115.181.160.0/19 1; +116.131.0.0/19 1; +116.131.128.0/17 1; +116.132.0.0/15 1; +116.181.0.0/16 1; +116.214.132.0/22 1; +116.214.136.0/21 1; +116.214.144.0/20 1; +116.214.160.0/19 1; +116.214.192.0/18 1; +117.49.8.0/24 1; +117.73.244.0/22 1; +117.74.64.0/20 1; +117.132.144.0/20 1; +117.132.160.0/20 1; +117.136.2.0/24 1; +117.136.47.0/24 1; +117.142.111.0/24 1; +117.142.112.0/22 1; +117.142.116.0/24 1; +118.230.128.0/17 1; +119.20.0.0/15 1; +119.22.0.0/16 1; +119.88.128.0/17 1; +119.89.0.0/16 1; +119.90.160.0/19 1; +119.90.192.0/18 1; +119.91.0.0/16 1; +119.248.0.0/14 1; +120.0.0.0/12 1; +120.52.0.0/16 1; +120.211.0.0/16 1; +121.16.0.0/13 1; +121.24.0.0/14 1; +121.28.0.0/15 1; +121.193.192.0/18 1; +121.195.192.0/18 1; +122.0.64.0/18 1; +122.72.17.0/24 1; +122.72.40.0/23 1; +122.72.42.0/24 1; +122.74.0.0/15 1; +122.198.68.0/22 1; +122.198.72.0/21 1; +122.198.80.0/20 1; +122.198.96.0/19 1; +122.198.128.0/17 1; +123.58.96.0/19 1; +123.94.6.0/24 1; +123.180.0.0/14 1; +123.196.128.0/17 1; +124.236.0.0/14 1; +125.213.51.0/24 1; +125.254.192.0/18 1; +143.64.0.0/16 1; +144.7.0.0/17 1; +150.242.8.0/22 1; +159.27.0.0/16 1; +159.226.108.128/25 1; +159.226.157.0/24 1; +175.26.0.0/15 1; +175.49.0.0/16 1; +175.188.160.0/19 1; +180.91.194.0/23 1; +180.91.196.0/22 1; +180.91.200.0/21 1; +180.91.208.0/20 1; +180.91.224.0/19 1; +182.51.0.0/16 1; +182.239.0.0/19 1; +183.175.64.0/19 1; +183.175.96.0/20 1; +183.196.0.0/14 1; +202.8.128.0/19 1; +202.63.160.0/19 1; +202.97.13.126/31 1; +202.97.13.130/31 1; +202.97.25.82/31 1; +202.97.25.84/30 1; +202.97.25.88/29 1; +202.97.33.8/30 1; +202.97.33.18/31 1; +202.97.33.22/31 1; +202.97.40.204/30 1; +202.97.40.208/30 1; +202.97.40.212/31 1; +202.97.41.36/30 1; +202.97.41.58/31 1; +202.97.41.60/30 1; +202.97.41.240/30 1; +202.97.43.250/31 1; +202.97.44.158/31 1; +202.97.44.234/31 1; +202.97.47.26/31 1; +202.97.47.28/30 1; +202.97.47.82/31 1; +202.97.47.84/30 1; +202.97.48.10/31 1; +202.97.49.190/31 1; +202.97.54.2/31 1; +202.97.54.74/31 1; +202.97.54.78/31 1; +202.97.54.82/31 1; +202.97.54.86/31 1; +202.97.54.182/31 1; +202.97.54.186/31 1; +202.97.54.194/31 1; +202.97.54.198/31 1; +202.97.54.232/31 1; +202.97.56.158/31 1; +202.97.58.154/31 1; +202.97.67.70/31 1; +202.97.67.86/31 1; +202.97.67.114/31 1; +202.97.67.116/30 1; +202.97.67.120/29 1; +202.97.67.128/28 1; +202.97.67.144/29 1; +202.97.67.152/30 1; +202.97.67.158/31 1; +202.97.68.134/31 1; +202.97.69.6/31 1; +202.97.69.8/29 1; +202.97.69.16/28 1; +202.97.70.154/31 1; +202.97.72.250/31 1; +202.97.76.150/31 1; +202.97.76.152/30 1; +202.97.77.84/30 1; +202.97.77.202/31 1; +202.97.78.208/31 1; +202.97.80.14/31 1; +202.97.80.142/31 1; +202.97.80.226/31 1; +202.97.81.50/31 1; +202.97.81.54/31 1; +202.97.81.56/29 1; +202.97.81.64/28 1; +202.97.81.80/30 1; +202.97.81.90/31 1; +202.97.81.94/31 1; +202.97.81.106/31 1; +202.97.81.108/30 1; +202.97.82.14/31 1; +202.97.82.30/31 1; +202.97.82.226/31 1; +202.97.82.228/30 1; +202.97.84.198/31 1; +202.99.128.0/18 1; +202.112.53.196/30 1; +202.127.246.0/25 1; +202.143.100.0/22 1; +202.144.196.0/23 1; +202.144.198.0/24 1; +202.180.128.0/19 1; +202.206.0.0/17 1; +202.206.128.0/18 1; +202.206.192.0/19 1; +202.206.224.0/21 1; +202.206.232.0/23 1; +202.206.236.0/22 1; +202.206.240.0/20 1; +202.207.120.0/21 1; +203.110.208.0/20 1; +203.119.128.0/17 1; +203.176.0.0/18 1; +210.31.192.0/18 1; +210.52.0.0/26 1; +210.52.0.64/29 1; +210.52.11.0/25 1; +210.52.11.128/27 1; +210.52.11.184/29 1; +210.52.11.192/26 1; +210.52.14.176/28 1; +210.52.14.192/26 1; +210.52.15.0/24 1; +210.52.16.0/26 1; +210.52.23.160/27 1; +210.52.23.192/26 1; +210.52.24.128/25 1; +210.52.40.240/28 1; +210.52.42.160/27 1; +210.52.43.0/24 1; +210.52.44.0/24 1; +210.52.56.0/25 1; +210.52.129.0/24 1; +210.52.167.0/24 1; +210.52.174.0/23 1; +210.52.176.0/23 1; +210.82.132.0/22 1; +210.82.136.0/24 1; +210.82.140.0/22 1; +210.82.144.0/20 1; +210.82.161.0/24 1; +210.82.162.0/23 1; +210.82.174.0/23 1; +210.82.176.0/24 1; +210.82.212.0/23 1; +210.82.242.0/23 1; +210.82.252.0/22 1; +211.68.128.0/18 1; +211.71.232.0/21 1; +211.81.64.0/18 1; +211.81.128.0/17 1; +211.82.192.0/18 1; +211.90.0.0/18 1; +211.90.64.0/21 1; +211.98.14.0/23 1; +211.98.129.0/24 1; +211.98.140.128/25 1; +211.98.142.0/24 1; +211.98.171.0/29 1; +211.102.128.0/18 1; +211.138.0.0/20 1; +211.143.48.0/20 1; +211.143.64.0/18 1; +211.143.128.0/20 1; +211.159.0.0/20 1; +211.159.24.0/21 1; +211.161.24.0/22 1; +218.11.0.0/16 1; +218.12.0.0/16 1; +218.30.168.0/24 1; +218.207.64.0/19 1; +219.72.201.0/24 1; +219.72.202.160/28 1; +219.148.0.0/17 1; +219.148.128.0/19 1; +219.158.5.110/31 1; +219.158.5.112/30 1; +219.158.9.174/31 1; +219.158.10.178/31 1; +219.158.10.182/31 1; +219.158.10.186/31 1; +219.158.11.228/31 1; +219.158.12.38/31 1; +219.158.12.238/31 1; +219.158.14.248/31 1; +219.158.15.162/31 1; +219.158.15.194/31 1; +219.158.17.170/31 1; +219.158.17.198/31 1; +219.158.17.202/31 1; +219.158.17.210/31 1; +219.158.18.174/31 1; +219.158.18.182/31 1; +219.158.19.36/31 1; +219.158.21.30/31 1; +219.158.101.238/31 1; +219.158.101.248/31 1; +219.158.102.42/31 1; +219.158.104.30/31 1; +219.158.104.38/31 1; +219.158.104.42/31 1; +219.158.104.46/31 1; +219.158.104.48/30 1; +219.158.105.18/31 1; +219.158.105.26/31 1; +219.158.107.230/31 1; +219.158.109.94/31 1; +219.158.109.96/31 1; +219.158.109.122/31 1; +219.158.109.124/30 1; +219.158.109.146/31 1; +219.158.110.104/31 1; +219.158.110.224/31 1; +219.158.111.20/31 1; +219.158.112.4/31 1; +219.158.112.54/31 1; +219.158.113.26/31 1; +219.226.128.0/19 1; +219.226.160.0/20 1; +219.226.176.0/21 1; +219.226.192.0/20 1; +219.226.216.0/21 1; +219.226.224.0/19 1; +219.243.64.0/20 1; +219.243.96.0/20 1; +219.243.112.0/22 1; +219.243.116.0/23 1; +219.243.226.0/24 1; +220.192.72.0/21 1; +220.194.192.0/18 1; +220.195.0.0/19 1; +220.205.64.0/21 1; +220.205.72.0/23 1; +221.173.0.0/17 1; +221.174.113.0/24 1; +221.176.16.244/31 1; +221.176.16.248/31 1; +221.176.21.234/31 1; +221.176.27.110/31 1; +221.176.27.160/31 1; +221.177.8.0/21 1; +221.177.196.0/23 1; +221.177.209.0/24 1; +221.177.210.0/24 1; +221.183.11.228/31 1; +221.183.13.16/29 1; +221.183.19.96/30 1; +221.183.22.100/31 1; +221.183.22.120/31 1; +221.183.22.208/31 1; +221.183.47.202/31 1; +221.183.47.204/30 1; +221.183.47.208/30 1; +221.183.47.214/31 1; +221.192.0.0/14 1; +222.30.136.0/21 1; +222.30.144.0/20 1; +222.30.160.0/19 1; +222.30.192.0/18 1; +222.38.0.0/16 1; +222.222.0.0/15 1; +223.103.13.0/24 1; +223.103.84.0/23 1; +223.103.128.0/22 1; +223.103.132.0/23 1; +223.103.200.0/23 1; +223.104.13.0/24 1; +223.104.101.0/24 1; +223.104.102.0/23 1; +223.104.104.0/24 1; +2400:75a0::/28 1; +2400:d300::/32 1; +2400:fb40::/32 1; +2401:3a00::/32 1; +2401:e360::/32 1; +2401:fc80::/32 1; +2403:f100::/32 1; +2403:fc40::/32 1; +2405:3c40::/32 1; +2405:41c0::/32 1; +2405:8c80::/32 1; +2405:9380::/32 1; +2406:840:6a0::/43 1; +2406:840:6c0::/42 1; +2406:840:700::/40 1; +2406:840:fe90::/48 1; +2406:31c0::/32 1; +2406:6680::/32 1; +2406:6780::/32 1; +2406:e500:600::/40 1; +2406:e500:2600::/39 1; +2406:e500:2800::/37 1; +2406:e500:3000::/36 1; +2406:e500:5400::/40 1; +2408:841d:9900::/40 1; +2408:841d:e000::/40 1; +2408:841e:200::/40 1; +2409:8004::/31 1; +2409:8008::/32 1; +2409:800b:2c00::/40 1; +2409:8087:400::/38 1; +2409:8087:800::/38 1; +2409:8704::/31 1; +2409:870b::/32 1; +2409:8808::/40 1; +2409:8904::/30 1; +2409:8908::/30 1; +2409:8980:800::/40 1; +2409:8a04::/31 1; +2409:8b04::/31 1; +2409:8c04::/31 1; +2409:8d05::/32 1; +2409:8e05::/32 1; +2409:8f04::/32 1; +240a:4288:5a00::/40 1; +240a:4288:5c00::/40 1; +240a:4288:ce00::/40 1; +240a:428a:9200::/40 1; +240a:428a:a600::/40 1; +240e:4c::/37 1; +240e:341:1700::/40 1; +240e:840::/40 1; +2602:fcd3:140::/48 1; +2602:feda:390::/44 1; +2602:feda:f000::/43 1; +2606:54c0:21e0::/43 1; +2606:54c0:2200::/42 1; +2606:54c3:0:13::/64 1; +2606:54c3:0:1f::/64 1; +2606:54c3:0:4a::/64 1; +2606:54c3:0:ed::/64 1; +2606:54c3:0:4ff::/64 1; +2606:54c3:0:50a::/64 1; +2606:54c3:0:6c3::/64 1; +2606:54c3:0:85b::/64 1; +2606:54c3:0:13f0::/64 1; +2606:54c3:0:14a5::/64 1; +2606:54c3:0:1a1a::/64 1; +2606:54c3:0:1a1c::/64 1; +2a02:26f7:c400:f4b7::/64 1; +2a02:26f7:c400:f4b8::/61 1; +2a02:26f7:c400:f4c0::/61 1; +2a02:26f7:c400:f4c8::/62 1; +2a02:26f7:c404:f4b7::/64 1; +2a02:26f7:c404:f4b8::/61 1; +2a02:26f7:c404:f4c0::/61 1; +2a02:26f7:c404:f4c8::/62 1; +2a02:26f7:c408:f4b7::/64 1; +2a02:26f7:c408:f4b8::/61 1; +2a02:26f7:c408:f4c0::/61 1; +2a02:26f7:c408:f4c8::/62 1; +2a02:26f7:c40c:f4b7::/64 1; +2a02:26f7:c40c:f4b8::/61 1; +2a02:26f7:c40c:f4c0::/61 1; +2a02:26f7:c40c:f4c8::/62 1; +2a02:26f7:c410:f4b7::/64 1; +2a02:26f7:c410:f4b8::/61 1; +2a02:26f7:c410:f4c0::/61 1; +2a02:26f7:c410:f4c8::/62 1; +2a02:26f7:c414:f4b7::/64 1; +2a02:26f7:c414:f4b8::/61 1; +2a02:26f7:c414:f4c0::/61 1; +2a02:26f7:c414:f4c8::/62 1; +2a02:26f7:c418:f4b7::/64 1; +2a02:26f7:c418:f4b8::/61 1; +2a02:26f7:c418:f4c0::/61 1; +2a02:26f7:c418:f4c8::/62 1; +2a02:26f7:c41c:f4b7::/64 1; +2a02:26f7:c41c:f4b8::/61 1; +2a02:26f7:c41c:f4c0::/61 1; +2a02:26f7:c41c:f4c8::/62 1; +2a02:26f7:c420:f4b7::/64 1; +2a02:26f7:c420:f4b8::/61 1; +2a02:26f7:c420:f4c0::/61 1; +2a02:26f7:c420:f4c8::/62 1; +2a09:bac0:1000:c81::/64 1; +2a09:bac1:1980:140::/64 1; +2a09:bac1:1980:148::/64 1; +2a09:bac1:1980:150::/64 1; +2a09:bac1:1981:dd8::/64 1; +2a09:bac1:1981:1018::/64 1; +2a09:bac1:1981:1150::/64 1; +2a09:bac1:1981:1358::/64 1; +2a09:bac1:1981:1388::/64 1; +2a09:bac1:1981:13a0::/64 1; +2a09:bac1:1981:1dd8::/64 1; +2a09:bac1:1981:1ec8::/64 1; +2a09:bac1:1981:2620::/64 1; +2a09:bac1:19a0:140::/64 1; +2a09:bac1:19a0:148::/64 1; +2a09:bac1:19a0:150::/64 1; +2a09:bac1:19a1:dd8::/64 1; +2a09:bac1:19a1:1018::/64 1; +2a09:bac1:19a1:1150::/64 1; +2a09:bac1:19a1:1358::/64 1; +2a09:bac1:19a1:1388::/64 1; +2a09:bac1:19a1:13a0::/64 1; +2a09:bac1:19a1:1dd8::/64 1; +2a09:bac1:19a1:1ec8::/64 1; +2a09:bac1:19a1:2620::/64 1; +2a09:bac1:19c0:140::/64 1; +2a09:bac1:19c0:148::/64 1; +2a09:bac1:19c0:150::/64 1; +2a09:bac1:19c1:dd8::/64 1; +2a09:bac1:19c1:1018::/64 1; +2a09:bac1:19c1:1150::/64 1; +2a09:bac1:19c1:1358::/64 1; +2a09:bac1:19c1:1388::/64 1; +2a09:bac1:19c1:13a0::/64 1; +2a09:bac1:19c1:1dd8::/64 1; +2a09:bac1:19c1:1ec8::/64 1; +2a09:bac1:19c1:2620::/64 1; +2a09:bac1:19e0:140::/64 1; +2a09:bac1:19e0:148::/64 1; +2a09:bac1:19e0:150::/64 1; +2a09:bac1:19e1:dd8::/64 1; +2a09:bac1:19e1:1018::/64 1; +2a09:bac1:19e1:1150::/64 1; +2a09:bac1:19e1:1358::/64 1; +2a09:bac1:19e1:1388::/64 1; +2a09:bac1:19e1:13a0::/64 1; +2a09:bac1:19e1:1dd8::/64 1; +2a09:bac1:19e1:1ec8::/64 1; +2a09:bac1:19e1:2620::/64 1; +2a09:bac2:21e0::/43 1; +2a09:bac2:2200::/42 1; +2a09:bac3:21e0::/43 1; +2a09:bac3:2200::/42 1; +2a09:bac5:2210::/44 1; +2a09:bac5:2220::/43 1; +2a09:bac5:2240::/43 1; +2a09:bac5:2260::/44 1; +2a09:bac5:d540::/45 1; +2a09:bac5:d578::/45 1; +2a09:bac5:d590::/44 1; +2a09:bac5:d5c0::/44 1; +2a09:bac5:d5d8::/45 1; +2a09:bac5:d5e8::/45 1; +2a09:bac5:d5f0::/45 1; +2a09:bac5:d608::/45 1; +2a09:bac5:d618::/45 1; +2a09:bac5:d620::/44 1; +2a09:bac5:d640::/45 1; +2a09:bac5:d650::/45 1; +2a09:bac5:d668::/45 1; +2a09:bac5:d688::/45 1; +2a09:bac5:d690::/44 1; +2a09:bac5:d6a0::/43 1; +2a09:bac5:d6c0::/42 1; +2a09:bac5:d700::/40 1; +2a09:bac5:d800::/37 1; +2a09:bac5:e000::/35 1; +2a09:bac6:2210::/44 1; +2a09:bac6:2220::/43 1; +2a09:bac6:2240::/43 1; +2a09:bac6:2260::/44 1; +2a0e:97c0:550::/44 1; +2a0e:97c0:b90::/44 1; +2a0e:aa07:e200::/44 1; +2a0e:b107:16b0::/44 1; +2a10:2f00:186::/48 1; diff --git a/minigate/root/usr/lib/minigate/geo/140000.conf b/minigate/root/usr/lib/minigate/geo/140000.conf new file mode 100644 index 000000000..4ade6c0ec --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/140000.conf @@ -0,0 +1,397 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 山西省 +1.68.0.0/14 1; +36.134.76.0/23 1; +36.192.28.0/22 1; +36.192.32.0/22 1; +39.144.99.0/24 1; +42.247.0.0/26 1; +42.247.21.96/30 1; +42.247.39.96/28 1; +43.224.54.120/29 1; +43.236.196.0/22 1; +43.236.212.0/22 1; +43.237.72.0/22 1; +43.247.84.0/22 1; +43.247.200.0/22 1; +43.247.223.0/24 1; +43.249.236.0/22 1; +57.92.96.0/20 1; +58.200.120.0/29 1; +58.200.127.176/29 1; +59.48.0.0/16 1; +59.49.0.0/17 1; +60.220.0.0/14 1; +61.134.192.0/18 1; +61.232.36.0/22 1; +61.232.40.0/23 1; +61.233.128.0/20 1; +61.237.11.224/27 1; +61.237.12.0/27 1; +61.237.113.202/31 1; +61.237.144.0/20 1; +61.240.32.0/19 1; +101.7.128.0/18 1; +101.247.128.0/18 1; +103.15.4.0/22 1; +103.22.72.0/22 1; +103.27.240.0/22 1; +103.32.196.0/22 1; +103.32.212.0/22 1; +103.79.64.0/21 1; +103.90.120.0/22 1; +103.97.144.0/22 1; +103.205.188.0/22 1; +103.206.148.0/22 1; +103.218.68.0/22 1; +103.223.24.0/21 1; +103.229.172.0/22 1; +103.246.120.0/22 1; +106.0.44.0/22 1; +110.51.0.0/16 1; +110.176.0.0/13 1; +111.52.0.0/15 1; +111.133.0.0/16 1; +112.54.144.0/20 1; +112.54.228.0/22 1; +112.57.112.0/20 1; +112.57.128.0/20 1; +113.24.0.0/14 1; +115.24.0.0/19 1; +115.24.32.0/21 1; +115.168.35.0/24 1; +115.168.67.0/24 1; +115.181.32.0/20 1; +115.181.128.0/20 1; +116.135.0.0/18 1; +116.179.0.0/16 1; +117.136.4.0/24 1; +117.136.90.0/23 1; +117.142.43.0/24 1; +117.142.44.0/24 1; +117.142.202.0/23 1; +117.142.204.0/23 1; +118.72.0.0/13 1; +118.80.0.0/15 1; +118.103.164.0/22 1; +120.207.0.0/16 1; +120.208.0.0/16 1; +121.30.0.0/16 1; +122.72.18.0/24 1; +122.72.43.0/24 1; +123.73.0.0/16 1; +123.94.5.128/25 1; +123.174.0.0/15 1; +124.163.0.0/17 1; +124.163.128.0/18 1; +124.163.192.0/20 1; +124.163.208.0/24 1; +124.163.209.128/25 1; +124.163.210.0/23 1; +124.163.212.0/22 1; +124.163.216.0/21 1; +124.163.224.0/19 1; +124.164.0.0/14 1; +159.226.156.0/24 1; +171.116.0.0/14 1; +171.120.0.0/13 1; +183.175.128.0/19 1; +183.184.0.0/13 1; +183.200.0.0/14 1; +202.97.13.142/32 1; +202.97.21.74/31 1; +202.97.21.76/30 1; +202.97.21.80/28 1; +202.97.21.96/27 1; +202.97.32.140/30 1; +202.97.33.238/31 1; +202.97.33.240/28 1; +202.97.34.42/31 1; +202.97.34.44/30 1; +202.97.34.48/29 1; +202.97.34.70/31 1; +202.97.34.98/31 1; +202.97.34.100/30 1; +202.97.34.166/31 1; +202.97.38.22/31 1; +202.97.38.62/31 1; +202.97.38.70/31 1; +202.97.38.178/31 1; +202.97.43.46/31 1; +202.97.43.134/31 1; +202.97.43.158/31 1; +202.97.43.218/31 1; +202.97.45.2/31 1; +202.97.51.118/31 1; +202.97.54.26/31 1; +202.97.54.114/31 1; +202.97.54.118/31 1; +202.97.54.202/31 1; +202.97.68.82/31 1; +202.97.72.88/31 1; +202.97.72.182/31 1; +202.97.72.190/31 1; +202.97.72.246/31 1; +202.97.72.254/31 1; +202.97.73.2/31 1; +202.97.73.6/31 1; +202.97.73.8/30 1; +202.97.73.22/31 1; +202.97.73.34/31 1; +202.97.73.186/31 1; +202.97.73.190/31 1; +202.97.73.194/31 1; +202.97.73.198/31 1; +202.97.73.214/31 1; +202.97.73.222/31 1; +202.97.73.224/30 1; +202.97.73.238/31 1; +202.97.73.246/31 1; +202.97.73.250/31 1; +202.97.73.254/31 1; +202.97.79.144/30 1; +202.97.79.156/30 1; +202.97.128.0/19 1; +202.99.192.0/19 1; +202.127.240.0/25 1; +202.207.128.0/20 1; +202.207.160.0/19 1; +202.207.192.0/18 1; +203.93.113.192/26 1; +203.93.182.128/25 1; +203.207.96.0/21 1; +203.207.104.0/22 1; +210.31.96.0/19 1; +210.51.64.0/24 1; +210.52.40.224/29 1; +210.52.57.0/24 1; +210.52.58.0/24 1; +210.75.90.64/26 1; +210.75.90.128/26 1; +210.82.139.0/24 1; +210.82.192.0/24 1; +210.82.241.0/24 1; +210.82.250.0/24 1; +211.82.0.0/20 1; +211.82.16.0/21 1; +211.82.24.0/22 1; +211.82.28.0/23 1; +211.82.32.0/19 1; +211.90.80.0/20 1; +211.90.96.0/19 1; +211.93.164.0/22 1; +211.98.16.0/23 1; +211.98.128.72/29 1; +211.98.128.80/30 1; +211.98.136.0/24 1; +211.98.150.0/24 1; +211.98.159.0/24 1; +211.98.244.0/24 1; +211.98.245.0/26 1; +211.103.255.0/24 1; +211.138.96.0/20 1; +211.142.0.0/18 1; +211.142.64.0/19 1; +218.26.0.0/16 1; +219.147.32.0/20 1; +219.149.128.0/18 1; +219.158.9.14/31 1; +219.158.9.118/31 1; +219.158.11.8/31 1; +219.158.11.214/31 1; +219.158.11.226/31 1; +219.158.11.230/31 1; +219.158.12.10/31 1; +219.158.12.40/31 1; +219.158.12.194/31 1; +219.158.12.196/30 1; +219.158.12.242/31 1; +219.158.14.146/31 1; +219.158.14.148/30 1; +219.158.14.158/31 1; +219.158.14.198/31 1; +219.158.14.250/31 1; +219.158.15.158/31 1; +219.158.15.186/31 1; +219.158.15.212/31 1; +219.158.16.32/31 1; +219.158.16.162/31 1; +219.158.17.124/31 1; +219.158.17.174/31 1; +219.158.17.190/31 1; +219.158.17.224/31 1; +219.158.18.158/31 1; +219.158.20.94/31 1; +219.158.21.34/31 1; +219.158.21.86/31 1; +219.158.22.136/31 1; +219.158.23.136/31 1; +219.158.96.90/31 1; +219.158.98.164/31 1; +219.158.99.178/31 1; +219.158.100.72/31 1; +219.158.101.66/31 1; +219.158.101.68/30 1; +219.158.101.192/31 1; +219.158.104.114/31 1; +219.158.104.116/30 1; +219.158.104.122/31 1; +219.158.104.154/31 1; +219.158.104.166/31 1; +219.158.104.170/31 1; +219.158.104.190/31 1; +219.158.104.192/31 1; +219.158.106.14/31 1; +219.158.106.68/31 1; +219.158.109.78/31 1; +219.158.109.98/31 1; +219.158.109.110/31 1; +219.158.109.132/31 1; +219.158.110.78/31 1; +219.158.110.98/31 1; +219.158.110.112/31 1; +219.158.110.132/31 1; +219.158.110.136/31 1; +219.158.110.176/31 1; +219.158.110.228/31 1; +219.158.110.238/31 1; +219.158.113.206/31 1; +219.226.72.0/21 1; +219.226.80.0/20 1; +219.226.96.0/19 1; +219.243.128.0/19 1; +219.243.160.0/20 1; +219.243.176.0/21 1; +219.243.227.0/24 1; +220.194.128.0/18 1; +220.207.132.0/22 1; +220.207.182.0/23 1; +220.207.240.0/23 1; +221.131.0.0/18 1; +221.176.15.34/31 1; +221.176.15.62/31 1; +221.176.15.238/31 1; +221.176.19.238/31 1; +221.176.20.184/29 1; +221.176.26.130/31 1; +221.176.26.248/30 1; +221.176.27.14/31 1; +221.176.27.102/31 1; +221.177.20.0/22 1; +221.180.0.0/18 1; +221.183.10.84/31 1; +221.183.14.0/29 1; +221.183.22.118/31 1; +221.183.25.22/31 1; +221.183.26.16/29 1; +221.183.36.114/31 1; +221.183.36.116/30 1; +221.183.36.120/29 1; +221.183.36.128/29 1; +221.183.36.136/30 1; +221.183.40.230/31 1; +221.183.42.242/31 1; +221.183.43.26/31 1; +221.183.47.216/29 1; +221.183.47.224/29 1; +221.204.0.0/15 1; +222.31.0.0/18 1; +222.37.0.0/16 1; +222.199.0.0/19 1; +222.199.32.0/20 1; +222.199.48.0/23 1; +222.199.50.0/24 1; +222.199.52.0/22 1; +222.199.56.0/21 1; +223.8.0.0/13 1; +223.103.14.0/24 1; +223.104.14.0/24 1; +223.104.197.0/24 1; +223.104.198.0/23 1; +223.104.200.0/23 1; +2400:1640::/32 1; +2400:16c0::/32 1; +2400:1a40::/32 1; +2400:1b40::/32 1; +2400:e680::/32 1; +2402:8300::/32 1; +2404:3140::/32 1; +2404:c300::/32 1; +2405:37c0::/32 1; +2406:840:e350::/44 1; +2408:8226::/32 1; +2408:8427::/32 1; +2408:8726::/32 1; +2409:800c::/30 1; +2409:8087:c00::/38 1; +2409:870c::/30 1; +2409:880c::/40 1; +2409:880d::/40 1; +2409:880e::/40 1; +2409:880f::/40 1; +2409:890c::/30 1; +2409:8a0c::/30 1; +2409:8b0c::/30 1; +2409:8c0c::/39 1; +2409:8c0c:400::/38 1; +2409:8c0c:800::/37 1; +2409:8c0c:1000::/36 1; +2409:8c0c:2000::/35 1; +2409:8c0c:4000::/34 1; +2409:8c0c:8000::/33 1; +2409:8c0d::/32 1; +2409:8c0e::/31 1; +2409:8d0c::/30 1; +2409:8e0c::/30 1; +240a:4291:5400::/40 1; +2606:54c0:2560::/43 1; +2606:54c0:2580::/43 1; +2606:54c3:0:193::/64 1; +2606:54c3:0:2f7::/64 1; +2606:54c3:0:6e0::/64 1; +2606:54c3:0:866::/64 1; +2606:54c3:0:972::/64 1; +2606:54c3:0:11b2::/64 1; +2606:54c3:0:12ec::/64 1; +2606:54c3:0:1435::/64 1; +2a09:bac1:1980:c770::/64 1; +2a09:bac1:1980:ca10::/64 1; +2a09:bac1:1980:d138::/64 1; +2a09:bac1:1981:6d0::/64 1; +2a09:bac1:1981:760::/64 1; +2a09:bac1:1981:d58::/64 1; +2a09:bac1:1981:da8::/64 1; +2a09:bac1:1981:ec8::/64 1; +2a09:bac1:19a0:c770::/64 1; +2a09:bac1:19a0:ca10::/64 1; +2a09:bac1:19a0:d138::/64 1; +2a09:bac1:19a1:6d0::/64 1; +2a09:bac1:19a1:760::/64 1; +2a09:bac1:19a1:d58::/64 1; +2a09:bac1:19a1:da8::/64 1; +2a09:bac1:19a1:ec8::/64 1; +2a09:bac1:19c0:c770::/64 1; +2a09:bac1:19c0:ca10::/64 1; +2a09:bac1:19c0:d138::/64 1; +2a09:bac1:19c1:6d0::/64 1; +2a09:bac1:19c1:760::/64 1; +2a09:bac1:19c1:d58::/64 1; +2a09:bac1:19c1:da8::/64 1; +2a09:bac1:19c1:ec8::/64 1; +2a09:bac1:19e0:c770::/64 1; +2a09:bac1:19e0:ca10::/64 1; +2a09:bac1:19e0:d138::/64 1; +2a09:bac1:19e1:6d0::/64 1; +2a09:bac1:19e1:760::/64 1; +2a09:bac1:19e1:d58::/64 1; +2a09:bac1:19e1:da8::/64 1; +2a09:bac1:19e1:ec8::/64 1; +2a09:bac2:2560::/43 1; +2a09:bac2:2580::/43 1; +2a09:bac3:2560::/43 1; +2a09:bac3:2580::/43 1; +2a09:bac5:2590::/44 1; +2a09:bac5:25a0::/43 1; +2a09:bac5:25c0::/44 1; +2a09:bac6:2590::/44 1; +2a09:bac6:25a0::/43 1; +2a09:bac6:25c0::/44 1; diff --git a/minigate/root/usr/lib/minigate/geo/150000.conf b/minigate/root/usr/lib/minigate/geo/150000.conf new file mode 100644 index 000000000..6f9b3f021 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/150000.conf @@ -0,0 +1,362 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 内蒙古 +1.24.0.0/13 1; +1.180.0.0/14 1; +36.102.0.0/16 1; +36.111.128.0/19 1; +36.134.88.0/23 1; +36.192.36.0/22 1; +36.192.40.0/22 1; +39.99.0.0/18 1; +39.104.0.0/16 1; +39.153.128.0/17 1; +39.154.0.0/16 1; +39.155.0.0/17 1; +42.123.64.0/19 1; +42.187.120.0/22 1; +42.247.5.176/29 1; +42.247.16.0/27 1; +42.247.16.32/28 1; +42.247.21.100/30 1; +42.247.24.80/28 1; +42.247.27.160/27 1; +42.247.27.192/28 1; +42.247.44.160/27 1; +42.247.45.192/27 1; +42.247.47.0/26 1; +42.247.47.64/27 1; +43.224.54.40/29 1; +43.226.116.0/22 1; +43.236.168.0/22 1; +43.243.228.0/22 1; +43.251.244.0/24 1; +43.254.8.0/22 1; +43.254.168.0/22 1; +45.115.200.0/24 1; +45.116.152.0/22 1; +45.125.52.0/22 1; +45.125.56.0/22 1; +45.127.116.0/22 1; +58.18.0.0/16 1; +59.81.40.0/23 1; +60.31.0.0/16 1; +61.134.96.0/19 1; +61.138.64.0/18 1; +61.232.58.0/23 1; +61.232.60.0/23 1; +61.233.48.0/20 1; +61.237.0.74/31 1; +61.237.3.56/30 1; +61.237.11.192/27 1; +61.237.15.224/27 1; +61.237.122.252/30 1; +61.237.124.0/29 1; +61.237.124.14/31 1; +61.237.124.22/31 1; +61.237.124.24/30 1; +61.237.124.34/31 1; +61.237.124.36/30 1; +61.237.127.214/31 1; +61.237.127.218/31 1; +61.240.160.0/19 1; +101.1.0.0/22 1; +101.2.172.0/22 1; +101.4.192.0/18 1; +101.7.0.0/22 1; +101.7.64.0/18 1; +101.50.56.0/22 1; +101.53.100.0/22 1; +101.78.0.0/22 1; +101.128.0.0/22 1; +101.203.172.0/22 1; +101.234.76.0/22 1; +101.251.0.0/22 1; +103.3.140.0/22 1; +103.22.8.0/22 1; +103.32.168.0/22 1; +103.45.96.0/19 1; +103.45.128.0/19 1; +103.45.164.0/22 1; +103.66.240.0/22 1; +103.99.136.0/21 1; +103.99.144.0/22 1; +103.123.212.0/22 1; +103.193.188.0/22 1; +103.193.192.0/22 1; +103.213.252.0/22 1; +103.215.28.0/22 1; +103.224.232.0/22 1; +103.230.200.0/22 1; +103.238.88.0/22 1; +103.241.92.0/22 1; +103.243.136.0/22 1; +106.35.0.0/16 1; +106.40.0.0/16 1; +106.74.0.0/17 1; +106.74.128.0/18 1; +106.74.192.0/19 1; +106.74.224.0/20 1; +106.74.240.0/23 1; +106.74.242.0/24 1; +106.74.244.0/24 1; +106.74.249.0/24 1; +106.74.250.0/23 1; +106.74.252.0/22 1; +106.125.0.0/16 1; +110.6.0.0/15 1; +110.16.0.0/14 1; +110.76.156.0/22 1; +110.76.184.0/22 1; +110.102.0.0/16 1; +111.56.0.0/15 1; +111.126.0.0/15 1; +111.235.156.0/22 1; +112.54.168.0/21 1; +112.54.236.0/22 1; +112.57.144.0/20 1; +112.57.160.0/20 1; +115.24.64.0/18 1; +115.26.128.0/18 1; +115.26.192.0/20 1; +115.31.72.0/21 1; +115.168.36.0/24 1; +115.168.68.0/24 1; +116.95.0.0/16 1; +116.112.0.0/14 1; +116.116.0.0/15 1; +116.135.64.0/19 1; +116.135.224.0/19 1; +116.136.0.0/16 1; +117.132.183.0/24 1; +117.132.184.0/22 1; +117.132.188.0/23 1; +117.132.199.128/25 1; +117.132.200.0/24 1; +117.136.3.0/24 1; +117.137.0.0/16 1; +117.138.0.0/16 1; +117.142.183.0/24 1; +117.142.184.0/24 1; +117.161.0.0/16 1; +118.230.0.0/17 1; +120.193.128.0/17 1; +121.56.0.0/15 1; +121.193.0.0/18 1; +121.193.64.0/19 1; +121.193.96.0/22 1; +122.72.19.0/24 1; +122.72.44.0/22 1; +122.76.0.0/16 1; +123.94.7.0/25 1; +123.178.0.0/15 1; +124.67.0.0/16 1; +150.223.0.0/16 1; +182.42.0.0/16 1; +183.175.0.0/18 1; +202.97.28.190/31 1; +202.97.28.194/31 1; +202.97.32.146/31 1; +202.97.38.74/31 1; +202.97.38.150/31 1; +202.97.38.170/31 1; +202.97.38.186/31 1; +202.97.41.10/31 1; +202.97.41.30/31 1; +202.97.41.34/31 1; +202.97.41.74/31 1; +202.97.41.116/31 1; +202.97.41.178/31 1; +202.97.41.186/31 1; +202.97.42.30/31 1; +202.97.42.34/31 1; +202.97.42.38/31 1; +202.97.42.46/31 1; +202.97.42.64/30 1; +202.97.42.74/31 1; +202.97.42.78/31 1; +202.97.42.126/31 1; +202.97.42.130/31 1; +202.97.42.134/31 1; +202.97.42.142/31 1; +202.97.42.146/31 1; +202.97.42.188/31 1; +202.97.42.192/29 1; +202.97.42.216/29 1; +202.97.42.224/31 1; +202.97.42.254/31 1; +202.97.48.170/31 1; +202.97.54.110/31 1; +202.97.56.50/31 1; +202.97.56.78/31 1; +202.97.56.82/31 1; +202.97.56.86/31 1; +202.97.56.90/31 1; +202.97.56.130/31 1; +202.97.68.50/31 1; +202.97.69.106/31 1; +202.97.69.110/31 1; +202.99.224.0/19 1; +202.207.0.0/18 1; +202.207.64.0/19 1; +202.207.96.0/20 1; +202.207.112.0/22 1; +202.207.144.0/20 1; +203.33.202.0/23 1; +203.56.4.0/24 1; +203.56.24.0/24 1; +203.56.38.0/24 1; +203.56.40.0/24 1; +203.56.46.0/24 1; +203.56.95.0/24 1; +203.56.210.0/24 1; +203.56.214.0/24 1; +203.56.216.0/24 1; +203.56.227.0/24 1; +203.56.228.0/24 1; +203.56.232.0/24 1; +203.56.240.0/24 1; +203.56.252.0/24 1; +203.56.254.0/24 1; +203.57.5.0/24 1; +203.57.6.0/24 1; +203.57.28.0/24 1; +203.57.39.0/24 1; +203.57.46.0/24 1; +203.57.58.0/24 1; +203.57.101.0/24 1; +203.57.109.0/24 1; +203.57.123.0/24 1; +203.57.157.0/24 1; +203.57.200.0/24 1; +203.57.202.0/24 1; +203.57.206.0/24 1; +203.57.222.0/24 1; +203.57.249.0/24 1; +203.78.48.0/20 1; +203.80.4.0/23 1; +203.80.32.0/20 1; +203.82.0.0/23 1; +203.83.224.0/20 1; +203.176.64.0/19 1; +203.205.64.0/19 1; +210.31.176.0/20 1; +211.82.128.0/19 1; +211.82.160.0/20 1; +211.82.176.0/21 1; +211.82.184.0/22 1; +211.82.188.0/24 1; +211.90.72.0/21 1; +211.93.152.0/21 1; +211.93.160.0/22 1; +211.98.25.0/24 1; +211.98.31.0/24 1; +211.98.128.0/29 1; +211.98.151.0/24 1; +211.98.152.0/24 1; +211.98.171.16/29 1; +211.98.238.0/26 1; +211.98.239.136/29 1; +211.98.239.144/30 1; +211.98.241.0/24 1; +211.138.80.0/20 1; +218.21.128.0/17 1; +218.30.135.0/24 1; +218.30.178.0/24 1; +218.202.64.0/18 1; +218.202.128.0/20 1; +219.147.96.0/19 1; +219.148.160.0/19 1; +219.158.9.130/31 1; +219.158.12.130/31 1; +219.158.12.132/30 1; +219.158.12.202/31 1; +219.158.14.226/31 1; +219.158.14.228/30 1; +219.158.15.86/31 1; +219.158.15.196/30 1; +219.158.15.200/31 1; +219.158.15.210/31 1; +219.158.17.14/31 1; +219.158.17.26/31 1; +219.158.17.30/31 1; +219.158.17.34/31 1; +219.158.19.146/31 1; +219.158.19.166/31 1; +219.158.19.168/30 1; +219.158.20.16/30 1; +219.158.20.20/31 1; +219.158.20.50/31 1; +219.158.20.58/31 1; +219.158.20.60/30 1; +219.158.21.228/30 1; +219.158.21.232/31 1; +219.158.22.118/31 1; +219.158.23.22/31 1; +219.158.23.30/31 1; +219.158.23.182/31 1; +219.158.101.194/31 1; +219.158.101.250/31 1; +219.158.104.142/31 1; +219.158.104.146/31 1; +219.158.107.182/31 1; +219.158.107.186/31 1; +219.158.108.134/31 1; +219.158.109.134/31 1; +219.158.109.166/31 1; +219.158.110.126/31 1; +219.158.110.146/31 1; +219.158.110.182/31 1; +219.158.113.2/31 1; +219.158.113.4/30 1; +219.158.113.8/29 1; +219.158.113.16/30 1; +219.159.0.0/18 1; +219.225.128.0/17 1; +219.243.228.0/24 1; +220.195.32.0/19 1; +220.195.64.0/18 1; +220.205.82.0/23 1; +220.205.84.0/24 1; +221.174.114.0/25 1; +221.176.15.68/31 1; +221.176.15.72/31 1; +221.176.15.88/31 1; +221.176.15.96/31 1; +221.176.15.100/31 1; +221.176.15.180/31 1; +221.176.15.184/31 1; +221.177.18.0/23 1; +221.183.9.114/31 1; +221.183.9.122/31 1; +221.183.9.126/31 1; +221.183.9.128/30 1; +221.183.9.134/31 1; +221.183.9.138/31 1; +221.183.12.26/31 1; +221.183.12.28/30 1; +221.183.13.104/29 1; +221.183.28.58/31 1; +221.183.39.38/31 1; +221.183.39.40/29 1; +221.183.39.48/30 1; +221.183.40.102/31 1; +221.183.47.234/31 1; +221.183.47.238/31 1; +221.199.128.0/18 1; +221.199.192.0/20 1; +222.31.192.0/18 1; +222.39.0.0/16 1; +222.74.0.0/16 1; +222.199.64.0/19 1; +222.199.96.0/22 1; +222.199.100.0/23 1; +222.199.104.0/21 1; +222.199.112.0/20 1; +223.103.15.0/24 1; +223.103.86.0/24 1; +223.104.15.0/24 1; +223.104.178.0/24 1; +223.255.252.0/24 1; +2408:842c:7c00::/40 1; +240a:428e:2800::/40 1; +240a:4292:400::/40 1; +240a:4292:c00::/40 1; diff --git a/minigate/root/usr/lib/minigate/geo/210000.conf b/minigate/root/usr/lib/minigate/geo/210000.conf new file mode 100644 index 000000000..979bce4a9 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/210000.conf @@ -0,0 +1,860 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 辽宁省 +1.13.192.0/18 1; +1.14.0.0/17 1; +14.197.148.34/32 1; +14.197.148.36/30 1; +14.197.148.40/29 1; +14.197.148.48/30 1; +14.197.149.76/30 1; +14.197.149.80/28 1; +14.197.149.96/27 1; +14.197.149.128/28 1; +14.197.149.144/29 1; +14.197.149.152/30 1; +14.197.203.52/30 1; +14.197.203.56/30 1; +14.197.209.142/32 1; +14.197.240.134/31 1; +14.197.240.136/29 1; +14.197.240.144/31 1; +14.197.241.30/32 1; +14.197.241.246/32 1; +14.197.241.250/32 1; +14.197.242.36/30 1; +14.197.242.40/30 1; +14.197.243.88/30 1; +14.197.244.38/32 1; +14.197.244.49/32 1; +14.197.244.182/32 1; +14.197.244.186/32 1; +14.197.244.253/32 1; +14.197.245.136/30 1; +14.197.245.232/29 1; +14.197.248.88/30 1; +36.128.0.0/14 1; +36.132.0.0/17 1; +36.134.68.0/23 1; +36.192.44.0/22 1; +36.192.48.0/20 1; +36.192.64.0/21 1; +36.192.72.0/22 1; +39.144.53.0/24 1; +39.144.54.0/23 1; +39.144.56.0/23 1; +39.144.58.0/24 1; +39.152.0.0/16 1; +39.153.0.0/17 1; +42.4.0.0/14 1; +42.52.0.0/14 1; +42.56.0.0/14 1; +42.84.0.0/14 1; +42.176.0.0/13 1; +42.199.64.0/18 1; +42.202.0.0/15 1; +42.247.2.224/29 1; +42.247.3.40/29 1; +42.247.13.176/28 1; +42.247.15.96/27 1; +42.247.17.224/28 1; +42.247.21.104/29 1; +42.247.24.176/28 1; +42.247.24.192/28 1; +42.247.32.208/29 1; +42.247.38.112/28 1; +42.247.41.208/28 1; +42.247.42.0/27 1; +42.247.46.128/26 1; +42.247.47.224/27 1; +42.248.0.0/13 1; +43.224.54.136/29 1; +43.226.32.0/19 1; +43.226.64.0/19 1; +43.226.128.0/19 1; +43.227.64.0/19 1; +43.228.132.0/22 1; +43.228.136.0/22 1; +43.230.226.0/23 1; +43.230.228.0/22 1; +43.230.232.0/21 1; +43.230.240.0/20 1; +43.231.136.0/21 1; +43.236.40.0/22 1; +43.236.108.0/22 1; +43.236.192.0/22 1; +43.237.16.0/22 1; +43.237.128.0/22 1; +43.238.184.0/22 1; +43.239.0.0/22 1; +43.243.151.224/27 1; +43.250.96.0/22 1; +43.250.160.0/22 1; +43.251.192.0/22 1; +45.113.72.0/22 1; +45.113.144.0/21 1; +45.114.0.0/22 1; +45.117.20.0/22 1; +45.117.68.0/22 1; +45.121.252.0/22 1; +45.123.32.0/21 1; +45.253.32.0/22 1; +45.253.80.0/23 1; +45.255.0.0/18 1; +49.4.96.0/21 1; +49.4.104.0/22 1; +49.4.108.0/23 1; +49.4.110.0/24 1; +49.141.48.0/20 1; +49.141.152.0/21 1; +49.141.160.0/19 1; +49.141.192.0/18 1; +49.221.64.0/18 1; +49.223.192.0/18 1; +58.154.0.0/16 1; +58.155.192.0/18 1; +58.194.32.0/19 1; +58.200.3.0/24 1; +58.200.31.0/24 1; +58.200.72.0/24 1; +58.200.75.0/24 1; +58.206.64.0/19 1; +58.207.160.0/20 1; +59.44.0.0/14 1; +59.73.0.0/17 1; +59.73.128.0/18 1; +59.73.224.0/19 1; +59.79.112.0/23 1; +59.108.32.8/29 1; +59.109.160.0/19 1; +59.109.208.0/21 1; +59.152.36.128/25 1; +59.152.38.224/27 1; +59.152.39.0/24 1; +60.16.0.0/13 1; +61.137.128.0/17 1; +61.161.128.0/17 1; +61.176.0.0/16 1; +61.189.0.0/17 1; +61.232.156.0/22 1; +61.232.160.0/21 1; +61.235.240.0/20 1; +61.236.0.0/18 1; +61.237.0.36/30 1; +61.237.1.76/30 1; +61.237.11.0/26 1; +61.237.13.0/27 1; +61.237.18.64/27 1; +61.237.124.20/31 1; +61.237.124.28/30 1; +61.237.124.32/31 1; +61.237.124.146/31 1; +61.237.124.148/30 1; +61.237.127.202/31 1; +61.237.127.204/30 1; +61.237.242.96/28 1; +61.243.128.0/18 1; +101.46.192.0/18 1; +101.47.128.0/18 1; +101.104.128.0/18 1; +101.104.224.0/19 1; +101.106.128.0/18 1; +101.131.0.0/16 1; +101.246.64.0/18 1; +101.246.128.0/18 1; +103.2.212.0/22 1; +103.19.68.0/22 1; +103.22.104.0/22 1; +103.31.1.0/24 1; +103.31.2.0/23 1; +103.32.40.0/22 1; +103.32.108.0/22 1; +103.32.192.0/22 1; +103.33.16.0/22 1; +103.33.128.0/22 1; +103.34.184.0/22 1; +103.35.0.0/22 1; +103.39.104.0/22 1; +103.42.24.0/22 1; +103.42.232.0/22 1; +103.45.172.0/22 1; +103.45.176.0/20 1; +103.45.248.0/22 1; +103.47.116.0/22 1; +103.47.120.0/23 1; +103.47.122.0/24 1; +103.49.180.0/22 1; +103.53.64.0/21 1; +103.56.200.0/22 1; +103.57.76.0/22 1; +103.57.136.0/22 1; +103.62.96.0/19 1; +103.62.128.0/21 1; +103.63.152.0/22 1; +103.65.116.0/22 1; +103.67.96.0/22 1; +103.70.236.0/22 1; +103.72.116.0/22 1; +103.73.132.0/22 1; +103.73.208.0/22 1; +103.74.204.0/22 1; +103.75.92.0/22 1; +103.76.68.0/22 1; +103.85.48.0/22 1; +103.88.16.0/22 1; +103.92.240.0/22 1; +103.152.186.0/23 1; +103.152.188.0/22 1; +103.152.192.0/23 1; +103.155.14.0/23 1; +103.155.16.0/23 1; +103.202.80.0/22 1; +103.202.152.0/21 1; +103.202.160.0/21 1; +103.202.168.0/22 1; +103.202.180.0/22 1; +103.203.200.0/22 1; +103.212.8.0/22 1; +103.222.33.0/24 1; +103.222.34.0/23 1; +103.222.164.0/22 1; +103.222.172.0/22 1; +103.223.140.0/22 1; +103.224.230.0/23 1; +103.249.137.0/24 1; +103.249.138.0/23 1; +103.249.144.0/22 1; +103.249.172.0/22 1; +103.249.176.0/22 1; +103.250.104.0/22 1; +103.255.208.0/22 1; +104.28.66.70/31 1; +104.28.69.70/31 1; +104.28.83.42/31 1; +104.28.99.40/31 1; +104.28.101.40/31 1; +104.28.117.72/31 1; +104.28.120.72/31 1; +104.28.184.140/30 1; +104.28.184.144/31 1; +104.28.184.146/32 1; +104.28.216.189/32 1; +104.28.216.190/31 1; +104.28.216.192/30 1; +104.28.248.189/32 1; +104.28.248.190/31 1; +104.28.248.192/30 1; +106.3.88.0/21 1; +110.103.0.0/16 1; +110.104.0.0/16 1; +110.173.8.0/21 1; +110.173.16.0/20 1; +111.45.128.0/17 1; +111.91.192.0/19 1; +111.117.64.0/18 1; +111.117.128.0/18 1; +112.39.0.0/16 1; +112.40.0.0/15 1; +112.42.0.0/16 1; +112.54.0.0/20 1; +112.58.0.0/18 1; +113.224.0.0/12 1; +114.66.96.0/19 1; +114.112.24.0/21 1; +114.113.208.0/21 1; +115.102.32.0/20 1; +115.105.0.0/16 1; +115.168.37.0/24 1; +115.168.69.0/24 1; +116.2.0.0/15 1; +116.128.192.0/21 1; +116.129.225.0/24 1; +116.129.226.0/23 1; +116.129.228.0/22 1; +116.129.232.0/21 1; +116.129.240.0/23 1; +116.129.255.0/24 1; +116.134.0.0/16 1; +116.135.96.0/19 1; +116.135.128.0/18 1; +116.135.192.0/19 1; +116.137.0.0/16 1; +116.138.0.0/15 1; +116.140.0.0/14 1; +116.144.0.0/15 1; +116.146.0.0/16 1; +116.150.0.0/15 1; +116.152.0.0/16 1; +116.160.0.0/16 1; +116.163.64.0/18 1; +116.163.128.0/17 1; +116.164.0.0/16 1; +116.169.10.0/23 1; +116.169.12.0/22 1; +116.169.16.0/20 1; +116.169.32.0/19 1; +116.169.64.0/18 1; +116.169.128.0/17 1; +116.170.0.0/15 1; +116.172.0.0/17 1; +116.176.17.0/24 1; +116.176.18.0/23 1; +116.176.20.0/22 1; +116.176.24.0/21 1; +116.176.32.0/19 1; +116.176.64.0/18 1; +116.176.128.0/17 1; +116.180.0.0/16 1; +116.183.0.0/16 1; +116.184.0.0/13 1; +116.196.0.0/21 1; +116.214.64.0/20 1; +116.217.0.0/16 1; +116.219.0.0/16 1; +117.58.0.0/18 1; +117.72.0.0/18 1; +117.72.64.0/19 1; +117.132.96.0/19 1; +117.132.128.0/20 1; +117.136.5.0/24 1; +117.142.177.0/24 1; +117.142.178.0/24 1; +118.193.0.0/22 1; +118.202.0.0/16 1; +118.206.20.0/22 1; +118.206.24.0/21 1; +118.206.32.0/19 1; +118.206.64.0/18 1; +118.206.128.0/20 1; +118.206.144.0/22 1; +119.27.64.0/18 1; +119.108.0.0/15 1; +119.112.0.0/13 1; +120.131.200.0/21 1; +120.200.0.0/15 1; +121.4.0.0/18 1; +121.4.80.0/20 1; +121.5.0.0/20 1; +121.5.16.0/21 1; +121.5.96.0/19 1; +121.70.217.0/24 1; +121.79.164.0/22 1; +121.79.168.0/21 1; +121.79.176.0/20 1; +122.66.0.0/15 1; +122.68.0.0/16 1; +122.72.4.0/23 1; +122.72.48.0/22 1; +123.90.0.0/15 1; +123.92.0.0/16 1; +123.94.8.0/24 1; +123.177.0.0/16 1; +123.184.0.0/13 1; +123.244.0.0/14 1; +124.6.64.0/18 1; +124.92.0.0/14 1; +125.61.160.0/19 1; +125.61.192.0/18 1; +125.222.0.0/17 1; +125.222.128.0/18 1; +125.222.252.0/23 1; +125.223.99.0/24 1; +144.48.204.0/22 1; +146.196.112.0/22 1; +146.196.124.0/22 1; +159.226.159.0/24 1; +159.226.238.0/24 1; +159.226.255.80/29 1; +160.202.224.0/19 1; +168.168.0.0/21 1; +168.168.8.0/22 1; +168.168.12.0/23 1; +168.168.14.0/24 1; +170.252.152.0/21 1; +175.146.0.0/15 1; +175.148.0.0/14 1; +175.160.0.0/12 1; +175.188.0.0/18 1; +175.190.0.0/17 1; +180.223.0.0/17 1; +180.235.112.0/22 1; +182.200.0.0/13 1; +192.140.160.0/19 1; +202.61.76.0/22 1; +202.96.64.0/19 1; +202.97.15.0/30 1; +202.97.24.64/31 1; +202.97.24.68/31 1; +202.97.24.72/29 1; +202.97.24.80/28 1; +202.97.25.250/31 1; +202.97.25.254/31 1; +202.97.30.218/31 1; +202.97.30.220/30 1; +202.97.37.186/31 1; +202.97.37.206/31 1; +202.97.38.222/31 1; +202.97.47.70/31 1; +202.97.48.82/31 1; +202.97.48.106/31 1; +202.97.48.108/30 1; +202.97.48.166/31 1; +202.97.48.174/31 1; +202.97.54.46/31 1; +202.97.54.90/31 1; +202.97.54.94/31 1; +202.97.54.106/31 1; +202.97.55.144/30 1; +202.97.56.210/31 1; +202.97.56.212/30 1; +202.97.56.230/31 1; +202.97.56.234/31 1; +202.97.56.238/31 1; +202.97.58.142/31 1; +202.97.58.144/30 1; +202.97.60.66/31 1; +202.97.60.70/31 1; +202.97.60.78/31 1; +202.97.60.82/31 1; +202.97.63.166/31 1; +202.97.64.192/30 1; +202.97.71.166/31 1; +202.97.73.72/29 1; +202.97.73.80/28 1; +202.97.75.114/31 1; +202.97.75.122/31 1; +202.97.80.2/31 1; +202.97.80.194/31 1; +202.97.80.202/31 1; +202.97.80.206/31 1; +202.97.80.210/31 1; +202.97.80.214/31 1; +202.97.80.218/31 1; +202.97.80.222/31 1; +202.97.81.18/31 1; +202.97.81.222/31 1; +202.97.81.226/31 1; +202.97.81.230/31 1; +202.97.81.232/30 1; +202.97.81.242/31 1; +202.97.81.246/31 1; +202.97.81.250/31 1; +202.97.81.254/31 1; +202.97.82.218/31 1; +202.97.88.112/29 1; +202.97.88.124/30 1; +202.97.160.0/19 1; +202.107.0.0/17 1; +202.110.0.0/18 1; +202.112.29.0/24 1; +202.112.30.0/23 1; +202.112.38.252/30 1; +202.112.53.240/30 1; +202.112.53.252/30 1; +202.118.0.0/17 1; +202.127.235.0/25 1; +202.199.0.0/20 1; +202.199.16.0/22 1; +202.199.24.0/21 1; +202.199.32.0/19 1; +202.199.64.0/19 1; +202.199.96.0/20 1; +202.199.112.0/21 1; +202.199.128.0/19 1; +202.199.160.0/20 1; +202.199.176.0/21 1; +202.199.184.0/22 1; +202.199.192.0/23 1; +202.199.196.0/23 1; +202.199.200.0/21 1; +202.199.208.0/20 1; +202.199.224.0/19 1; +203.79.0.0/20 1; +203.82.112.0/22 1; +203.88.100.0/22 1; +203.93.187.64/26 1; +203.93.191.0/24 1; +203.93.192.0/23 1; +203.93.195.0/24 1; +203.93.204.0/24 1; +203.100.96.0/19 1; +203.110.232.0/23 1; +203.119.114.0/23 1; +203.148.86.0/23 1; +203.170.58.0/23 1; +210.30.0.0/20 1; +210.30.16.0/22 1; +210.30.20.0/23 1; +210.30.32.0/19 1; +210.30.64.0/18 1; +210.30.128.0/17 1; +210.47.128.0/20 1; +210.47.144.0/21 1; +210.47.152.0/22 1; +210.47.160.0/19 1; +210.47.192.0/18 1; +210.52.10.128/25 1; +210.52.12.0/23 1; +210.52.23.64/26 1; +210.52.40.64/26 1; +210.52.40.128/26 1; +210.52.42.128/27 1; +210.52.42.192/26 1; +210.52.182.0/23 1; +210.52.184.0/22 1; +210.72.128.0/20 1; +210.72.151.0/24 1; +210.75.94.128/25 1; +210.76.160.0/19 1; +210.82.168.0/22 1; +210.82.189.0/24 1; +210.82.194.0/27 1; +210.82.244.0/22 1; +210.83.16.0/20 1; +210.83.192.0/19 1; +211.93.64.0/18 1; +211.93.128.0/20 1; +211.93.144.0/21 1; +211.98.70.40/29 1; +211.98.70.48/28 1; +211.98.70.240/29 1; +211.98.71.80/28 1; +211.98.71.96/28 1; +211.98.81.0/24 1; +211.98.82.0/23 1; +211.98.88.0/23 1; +211.98.94.0/24 1; +211.98.182.0/23 1; +211.98.184.0/24 1; +211.98.191.0/24 1; +211.136.23.32/27 1; +211.136.23.160/28 1; +211.137.0.0/19 1; +211.137.32.0/20 1; +211.140.192.0/18 1; +211.166.174.0/23 1; +211.166.176.0/23 1; +218.24.0.0/15 1; +218.30.170.0/24 1; +218.60.0.0/15 1; +218.106.192.0/20 1; +218.200.241.0/24 1; +219.148.192.0/18 1; +219.149.0.0/17 1; +219.158.9.6/31 1; +219.158.10.160/31 1; +219.158.12.34/31 1; +219.158.12.128/31 1; +219.158.13.164/30 1; +219.158.13.168/31 1; +219.158.13.176/31 1; +219.158.14.164/31 1; +219.158.15.164/30 1; +219.158.16.46/31 1; +219.158.17.144/30 1; +219.158.17.162/31 1; +219.158.17.176/31 1; +219.158.17.230/31 1; +219.158.20.4/31 1; +219.158.20.8/31 1; +219.158.20.12/31 1; +219.158.20.46/31 1; +219.158.20.54/31 1; +219.158.20.154/31 1; +219.158.21.26/31 1; +219.158.21.62/31 1; +219.158.21.66/31 1; +219.158.21.70/31 1; +219.158.21.72/29 1; +219.158.21.80/30 1; +219.158.39.120/30 1; +219.158.39.236/30 1; +219.158.39.240/29 1; +219.158.40.204/31 1; +219.158.40.208/30 1; +219.158.41.116/30 1; +219.158.41.120/31 1; +219.158.42.168/31 1; +219.158.42.172/30 1; +219.158.42.176/29 1; +219.158.42.184/30 1; +219.158.42.188/31 1; +219.158.42.192/31 1; +219.158.43.132/30 1; +219.158.45.8/29 1; +219.158.45.16/30 1; +219.158.45.252/30 1; +219.158.46.2/31 1; +219.158.46.4/30 1; +219.158.46.8/30 1; +219.158.46.14/31 1; +219.158.97.172/31 1; +219.158.99.126/31 1; +219.158.100.30/31 1; +219.158.100.34/31 1; +219.158.100.42/31 1; +219.158.100.44/30 1; +219.158.100.48/28 1; +219.158.100.216/31 1; +219.158.101.228/30 1; +219.158.101.232/31 1; +219.158.102.44/31 1; +219.158.102.48/30 1; +219.158.104.72/31 1; +219.158.105.70/31 1; +219.158.105.74/31 1; +219.158.105.76/30 1; +219.158.105.80/29 1; +219.158.105.88/31 1; +219.158.105.92/31 1; +219.158.106.146/31 1; +219.158.106.148/30 1; +219.158.106.152/30 1; +219.158.106.160/31 1; +219.158.106.164/30 1; +219.158.106.168/29 1; +219.158.106.176/31 1; +219.158.106.186/31 1; +219.158.106.190/31 1; +219.158.106.194/31 1; +219.158.107.158/31 1; +219.158.107.160/31 1; +219.158.107.164/31 1; +219.158.107.168/31 1; +219.158.107.172/31 1; +219.158.107.190/31 1; +219.158.107.222/31 1; +219.158.107.224/30 1; +219.158.108.50/31 1; +219.158.108.52/30 1; +219.158.109.40/31 1; +219.158.109.130/31 1; +219.158.109.216/31 1; +219.158.109.220/31 1; +219.158.109.230/31 1; +219.158.110.116/30 1; +219.158.110.120/31 1; +219.158.110.164/30 1; +219.158.110.252/31 1; +219.158.111.4/31 1; +219.158.112.8/31 1; +219.158.114.8/31 1; +219.158.116.188/31 1; +219.216.0.0/16 1; +219.217.68.0/22 1; +219.217.96.0/19 1; +219.217.128.0/18 1; +219.232.32.96/29 1; +219.232.32.144/28 1; +219.234.64.0/20 1; +219.243.253.0/24 1; +220.113.176.0/22 1; +220.192.224.0/19 1; +220.201.0.0/17 1; +220.201.128.0/18 1; +220.207.208.0/22 1; +221.174.114.128/25 1; +221.176.15.58/31 1; +221.176.16.22/31 1; +221.176.19.128/31 1; +221.176.19.132/31 1; +221.176.19.136/31 1; +221.176.19.140/30 1; +221.176.19.144/31 1; +221.176.19.148/31 1; +221.176.19.152/31 1; +221.176.19.156/31 1; +221.176.19.160/31 1; +221.176.19.164/31 1; +221.176.20.50/31 1; +221.176.20.52/30 1; +221.176.21.212/30 1; +221.176.21.216/29 1; +221.176.21.224/30 1; +221.176.26.240/30 1; +221.177.24.0/21 1; +221.180.128.0/17 1; +221.183.11.128/31 1; +221.183.11.244/30 1; +221.183.11.248/29 1; +221.183.13.58/31 1; +221.183.13.60/30 1; +221.183.19.180/30 1; +221.183.20.84/30 1; +221.183.20.88/30 1; +221.183.25.28/30 1; +221.183.25.32/31 1; +221.183.25.36/31 1; +221.183.25.40/30 1; +221.183.25.44/31 1; +221.183.25.48/31 1; +221.183.25.68/31 1; +221.183.28.60/30 1; +221.183.28.64/30 1; +221.183.36.66/31 1; +221.183.36.170/31 1; +221.183.39.224/29 1; +221.183.41.38/31 1; +221.183.42.44/31 1; +221.183.49.242/31 1; +221.183.49.246/31 1; +221.200.0.0/14 1; +222.26.0.0/16 1; +222.27.112.0/20 1; +222.27.131.0/24 1; +222.27.132.0/22 1; +222.33.0.0/16 1; +222.62.128.0/17 1; +222.63.0.0/16 1; +223.100.0.0/15 1; +223.102.0.0/16 1; +223.103.8.0/24 1; +223.104.8.0/24 1; +223.104.175.0/24 1; +223.104.176.0/23 1; +223.104.235.0/24 1; +223.104.236.0/23 1; +223.254.0.0/16 1; +2400:5280::/38 1; +2400:8e00::/32 1; +2401:3100::/32 1; +2402:3180::/45 1; +2402:6e80::/32 1; +2402:e380:200::/40 1; +2403:62c0::/32 1; +2403:dac0::/32 1; +2404:c40::/32 1; +2405:9480::/32 1; +2405:bf00::/32 1; +2406:840:9100::/47 1; +2406:840:9102::/48 1; +2406:840:f380::/44 1; +2406:840:fd00::/47 1; +2406:840:fd02::/48 1; +2406:840:fd0a::/48 1; +2406:840:fd0c::/48 1; +2406:3340::/32 1; +2408:8431:1000::/40 1; +2408:8431:1c00::/39 1; +2408:8431:7300::/40 1; +2409:8014::/31 1; +2409:8016::/32 1; +2409:8017::/35 1; +2409:8017:2000::/37 1; +2409:8017:2800::/40 1; +2409:8017:2a00::/39 1; +2409:8017:2c00::/38 1; +2409:8017:3000::/36 1; +2409:8017:4000::/34 1; +2409:8017:8000::/33 1; +2409:8087:1400::/38 1; +2409:8714::/30 1; +2409:8814::/40 1; +2409:8914::/30 1; +2409:8a14::/30 1; +2409:8b14::/30 1; +2409:8c14::/41 1; +2409:8c14:80::/42 1; +2409:8c14:c0::/43 1; +2409:8c14:e0::/44 1; +2409:8c14:100::/40 1; +2409:8c14:200::/39 1; +2409:8c14:400::/38 1; +2409:8c14:800::/38 1; +2409:8c14:c00::/39 1; +2409:8c14:2000::/37 1; +2409:8c14:2800::/38 1; +2409:8c14:2c00::/39 1; +2409:8c14:3c00::/38 1; +2409:8c14:4000::/34 1; +2409:8c14:8000::/35 1; +2409:8c14:ae00::/39 1; +2409:8c14:b000::/36 1; +2409:8c14:c000::/34 1; +2409:8c15::/35 1; +2409:8c15:2100::/40 1; +2409:8c15:2200::/39 1; +2409:8c15:2400::/38 1; +2409:8c15:2900::/40 1; +2409:8c15:2a00::/39 1; +2409:8c15:2c00::/39 1; +2409:8c15:3c00::/38 1; +2409:8c15:4000::/34 1; +2409:8c15:8000::/33 1; +2409:8c16::/31 1; +2409:8d14::/30 1; +2409:8e14::/30 1; +240a:4294:1e00::/40 1; +240a:4297:4000::/40 1; +240e:30e:1000::/40 1; +240e:40c:100::/40 1; +240e:40d:d00::/40 1; +240e:40d:2100::/40 1; +240e:40e:1100::/40 1; +240e:40e:c700::/40 1; +240e:40f:d00::/40 1; +2602:feda:d10::/44 1; +2602:feda:d20::/44 1; +2606:54c0:1ef8::/45 1; +2606:54c0:23c8::/45 1; +2606:54c0:23d0::/44 1; +2606:54c0:23e0::/43 1; +2606:54c3:0:21c::/64 1; +2606:54c3:0:3fb::/64 1; +2606:54c3:0:507::/64 1; +2606:54c3:0:63a::/64 1; +2606:54c3:0:7aa::/64 1; +2606:54c3:0:ede::/64 1; +2606:54c3:0:11e4::/64 1; +2606:54c3:0:1a4b::/64 1; +2a09:bac1:1980:38::/64 1; +2a09:bac1:1980:40::/64 1; +2a09:bac1:1980:180::/64 1; +2a09:bac1:1981:1a60::/64 1; +2a09:bac1:1981:2858::/64 1; +2a09:bac1:1981:2a28::/64 1; +2a09:bac1:1981:2a50::/64 1; +2a09:bac1:1981:2b80::/64 1; +2a09:bac1:1981:3198::/64 1; +2a09:bac1:19a0:38::/64 1; +2a09:bac1:19a0:40::/64 1; +2a09:bac1:19a0:180::/64 1; +2a09:bac1:19a1:1a60::/64 1; +2a09:bac1:19a1:2858::/64 1; +2a09:bac1:19a1:2a28::/64 1; +2a09:bac1:19a1:2a50::/64 1; +2a09:bac1:19a1:2b80::/64 1; +2a09:bac1:19a1:3198::/64 1; +2a09:bac1:19c0:38::/64 1; +2a09:bac1:19c0:40::/64 1; +2a09:bac1:19c0:180::/64 1; +2a09:bac1:19c1:1a60::/64 1; +2a09:bac1:19c1:2858::/64 1; +2a09:bac1:19c1:2a28::/64 1; +2a09:bac1:19c1:2a50::/64 1; +2a09:bac1:19c1:2b80::/64 1; +2a09:bac1:19c1:3198::/64 1; +2a09:bac1:19e0:38::/64 1; +2a09:bac1:19e0:40::/64 1; +2a09:bac1:19e0:180::/64 1; +2a09:bac1:19e1:1a60::/64 1; +2a09:bac1:19e1:2858::/64 1; +2a09:bac1:19e1:2a28::/64 1; +2a09:bac1:19e1:2a50::/64 1; +2a09:bac1:19e1:2b80::/64 1; +2a09:bac1:19e1:3198::/64 1; +2a09:bac2:1ef8::/45 1; +2a09:bac2:23c8::/45 1; +2a09:bac2:23d0::/44 1; +2a09:bac2:23e0::/43 1; +2a09:bac3:1ef8::/45 1; +2a09:bac3:23c8::/45 1; +2a09:bac3:23d0::/44 1; +2a09:bac3:23e0::/43 1; +2a09:bac5:1f28::/45 1; +2a09:bac5:23f8::/45 1; +2a09:bac5:2400::/43 1; +2a09:bac5:2420::/44 1; +2a09:bac6:1f28::/45 1; +2a09:bac6:23f8::/45 1; +2a09:bac6:2400::/43 1; +2a09:bac6:2420::/44 1; +2a0e:aa07:e052::/48 1; diff --git a/minigate/root/usr/lib/minigate/geo/220000.conf b/minigate/root/usr/lib/minigate/geo/220000.conf new file mode 100644 index 000000000..9e12cfa60 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/220000.conf @@ -0,0 +1,377 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 吉林省 +1.13.0.0/18 1; +1.13.64.0/19 1; +1.13.128.0/18 1; +1.14.192.0/19 1; +36.48.0.0/15 1; +36.97.0.0/16 1; +36.104.0.0/16 1; +36.134.66.0/23 1; +36.192.76.0/22 1; +36.192.80.0/21 1; +36.192.88.0/22 1; +39.144.100.0/24 1; +42.97.0.0/16 1; +42.247.9.96/28 1; +42.247.9.136/29 1; +42.247.10.64/28 1; +42.247.15.32/27 1; +42.247.16.48/28 1; +42.247.18.16/28 1; +42.247.21.112/30 1; +42.247.27.64/28 1; +42.247.28.96/28 1; +42.247.29.64/28 1; +42.247.38.128/27 1; +42.247.40.144/28 1; +42.247.45.16/28 1; +43.224.54.128/29 1; +43.237.20.0/22 1; +43.237.152.0/22 1; +43.238.148.0/22 1; +43.242.188.0/22 1; +43.250.4.0/22 1; +45.116.208.0/22 1; +45.123.184.0/22 1; +45.253.78.0/23 1; +49.140.0.0/16 1; +49.141.0.0/19 1; +49.141.32.0/20 1; +49.141.64.0/18 1; +49.141.128.0/20 1; +49.141.144.0/21 1; +49.221.0.0/19 1; +58.21.0.0/16 1; +58.155.128.0/18 1; +58.200.5.0/25 1; +58.200.116.128/25 1; +58.200.127.232/29 1; +58.244.0.0/15 1; +59.72.0.0/16 1; +59.73.192.0/19 1; +59.108.32.0/29 1; +59.108.128.0/22 1; +59.108.132.0/24 1; +59.109.192.0/20 1; +61.138.128.0/18 1; +61.139.128.0/18 1; +61.161.0.0/18 1; +61.232.168.0/21 1; +61.235.48.0/20 1; +61.237.0.58/31 1; +61.237.1.196/30 1; +61.237.1.202/31 1; +61.237.12.224/27 1; +61.237.127.14/31 1; +61.237.127.62/31 1; +61.237.127.182/31 1; +61.237.127.210/31 1; +61.243.224.0/19 1; +103.22.112.0/22 1; +103.24.144.0/22 1; +103.25.48.0/22 1; +103.33.20.0/22 1; +103.33.152.0/22 1; +103.34.148.0/22 1; +103.57.12.0/22 1; +103.65.56.0/22 1; +103.73.176.0/22 1; +103.110.156.0/22 1; +103.152.208.0/23 1; +103.192.28.0/22 1; +103.202.84.0/22 1; +103.202.88.0/22 1; +103.202.248.0/22 1; +103.250.32.0/22 1; +103.254.8.0/22 1; +103.254.20.0/22 1; +104.28.66.34/31 1; +104.28.69.34/31 1; +104.28.83.6/31 1; +104.28.99.4/31 1; +104.28.101.4/31 1; +104.28.117.36/31 1; +104.28.120.36/31 1; +104.28.187.54/31 1; +104.28.187.56/30 1; +104.28.187.60/32 1; +104.28.219.109/32 1; +104.28.219.110/31 1; +104.28.219.112/30 1; +104.28.251.109/32 1; +104.28.251.110/31 1; +104.28.251.112/30 1; +106.41.0.0/16 1; +106.74.243.0/24 1; +110.108.0.0/15 1; +110.127.0.0/16 1; +111.25.0.0/16 1; +111.26.0.0/15 1; +111.92.248.0/22 1; +111.116.0.0/16 1; +111.117.192.0/18 1; +111.136.0.0/16 1; +112.57.176.0/20 1; +112.57.192.0/19 1; +112.57.224.0/20 1; +113.213.0.0/17 1; +114.110.64.0/18 1; +114.111.0.0/19 1; +115.168.38.0/24 1; +115.168.70.0/24 1; +117.136.6.0/24 1; +117.136.58.0/23 1; +117.142.179.0/24 1; +118.88.32.0/19 1; +118.88.64.0/18 1; +118.88.128.0/17 1; +118.206.0.0/20 1; +118.206.16.0/22 1; +119.48.0.0/13 1; +121.4.96.0/20 1; +121.4.192.0/19 1; +121.4.240.0/20 1; +121.5.48.0/20 1; +121.5.64.0/19 1; +121.5.128.0/17 1; +122.69.0.0/16 1; +122.72.20.0/24 1; +122.72.52.0/22 1; +122.136.0.0/13 1; +122.248.48.0/20 1; +123.76.0.0/16 1; +123.78.0.0/16 1; +123.94.9.0/24 1; +123.172.0.0/15 1; +124.234.0.0/15 1; +125.32.0.0/16 1; +125.222.192.0/19 1; +125.222.224.0/20 1; +125.222.240.0/21 1; +125.222.248.0/22 1; +125.222.254.0/23 1; +125.223.128.0/17 1; +139.208.0.0/13 1; +159.226.122.0/23 1; +159.226.165.0/24 1; +159.226.166.0/24 1; +159.226.255.64/28 1; +175.16.0.0/13 1; +175.30.0.0/15 1; +175.48.0.0/16 1; +175.60.0.0/14 1; +202.38.164.0/22 1; +202.97.19.166/31 1; +202.97.19.170/31 1; +202.97.25.198/31 1; +202.97.25.202/31 1; +202.97.38.2/31 1; +202.97.38.6/31 1; +202.97.38.10/31 1; +202.97.38.12/30 1; +202.97.38.16/30 1; +202.97.38.78/31 1; +202.97.38.104/32 1; +202.97.40.26/31 1; +202.97.40.30/31 1; +202.97.47.158/31 1; +202.97.48.70/31 1; +202.97.48.72/29 1; +202.97.54.126/31 1; +202.97.56.206/31 1; +202.97.56.222/31 1; +202.97.71.218/31 1; +202.97.79.62/31 1; +202.97.79.154/31 1; +202.97.80.162/31 1; +202.97.80.174/31 1; +202.97.80.176/28 1; +202.97.81.178/31 1; +202.97.81.180/30 1; +202.97.88.120/31 1; +202.97.92.214/31 1; +202.98.0.0/19 1; +202.111.160.0/19 1; +202.112.38.240/30 1; +202.127.245.0/24 1; +202.181.112.0/20 1; +202.198.0.0/17 1; +202.198.128.0/18 1; +202.198.192.0/19 1; +202.198.224.0/22 1; +202.198.228.0/23 1; +202.198.232.0/21 1; +202.198.240.0/20 1; +203.93.179.128/27 1; +203.93.187.32/27 1; +210.12.50.0/24 1; +210.47.0.0/18 1; +210.52.51.0/24 1; +210.52.52.0/23 1; +210.52.190.0/23 1; +210.72.87.192/26 1; +210.75.94.64/26 1; +210.82.166.0/24 1; +210.82.190.0/24 1; +210.82.199.0/24 1; +210.82.200.0/22 1; +210.82.224.0/22 1; +210.82.228.0/23 1; +210.82.235.0/24 1; +210.82.236.0/22 1; +210.83.48.0/22 1; +211.98.84.0/22 1; +211.98.128.8/29 1; +211.98.128.16/29 1; +211.98.171.24/29 1; +211.98.171.32/28 1; +211.98.177.0/24 1; +211.98.178.0/23 1; +211.98.180.0/24 1; +211.98.185.0/24 1; +211.98.186.0/24 1; +211.137.208.0/20 1; +211.141.0.0/18 1; +211.141.64.0/20 1; +218.27.0.0/16 1; +218.30.172.0/24 1; +218.62.0.0/17 1; +219.149.192.0/18 1; +219.150.0.0/19 1; +219.158.8.254/31 1; +219.158.9.2/31 1; +219.158.9.92/30 1; +219.158.10.166/31 1; +219.158.12.26/31 1; +219.158.13.94/31 1; +219.158.15.146/31 1; +219.158.16.58/31 1; +219.158.17.54/31 1; +219.158.18.138/31 1; +219.158.19.50/31 1; +219.158.19.54/31 1; +219.158.19.138/31 1; +219.158.19.178/31 1; +219.158.19.182/31 1; +219.158.19.184/30 1; +219.158.19.210/31 1; +219.158.19.214/31 1; +219.158.20.30/31 1; +219.158.20.42/31 1; +219.158.20.142/31 1; +219.158.20.144/29 1; +219.158.20.242/31 1; +219.158.23.18/31 1; +219.158.23.20/31 1; +219.158.23.52/31 1; +219.158.24.28/31 1; +219.158.24.34/31 1; +219.158.96.110/31 1; +219.158.96.112/29 1; +219.158.101.226/31 1; +219.158.104.66/31 1; +219.158.106.162/31 1; +219.158.107.166/31 1; +219.158.109.210/31 1; +219.158.110.18/31 1; +219.158.110.30/31 1; +219.158.110.42/31 1; +219.158.110.114/31 1; +219.158.110.194/31 1; +219.158.110.250/31 1; +219.158.116.196/30 1; +219.217.0.0/18 1; +219.217.64.0/22 1; +219.217.72.0/21 1; +219.217.80.0/20 1; +219.232.32.72/29 1; +219.232.32.112/28 1; +219.243.254.0/24 1; +221.8.0.0/15 1; +221.176.18.148/31 1; +221.176.18.152/31 1; +221.176.18.156/31 1; +221.176.18.160/31 1; +221.176.18.168/31 1; +221.176.18.172/31 1; +221.176.19.184/30 1; +221.177.32.0/23 1; +221.177.204.0/23 1; +221.183.13.72/29 1; +221.183.25.38/31 1; +221.183.25.70/31 1; +221.183.40.106/31 1; +221.183.42.46/31 1; +221.183.42.218/31 1; +221.183.47.240/29 1; +222.27.0.0/18 1; +222.27.64.0/19 1; +222.27.96.0/20 1; +222.34.0.0/16 1; +222.160.0.0/14 1; +222.168.0.0/15 1; +223.103.16.0/24 1; +223.104.16.0/24 1; +223.104.141.0/24 1; +223.104.142.0/23 1; +223.104.144.0/24 1; +2001:df3:3a80::/48 1; +2400:5600::/32 1; +2402:1740::/32 1; +2402:52c0::/32 1; +2403:8c00::/32 1; +2403:b280::/32 1; +2404:d3c0::/32 1; +2407:37c0::/32 1; +2408:8435:900::/40 1; +2408:8435:f00::/40 1; +2409:8018::/34 1; +2409:8019::/34 1; +2409:8087:1800::/39 1; +2409:8718::/31 1; +2409:8918::/31 1; +2409:8a18::/31 1; +2409:8b18::/31 1; +2409:8c18::/31 1; +2409:8d18::/31 1; +2409:8e18::/31 1; +2409:8f18::/31 1; +240a:4298:c00::/40 1; +2606:54c0:22f0::/44 1; +2606:54c0:2300::/44 1; +2606:54c0:2310::/45 1; +2606:54c3:0:356::/64 1; +2606:54c3:0:3ab::/64 1; +2606:54c3:0:54b::/64 1; +2606:54c3:0:1047::/64 1; +2606:54c3:0:127d::/64 1; +2a09:bac1:1980:188::/64 1; +2a09:bac1:1981:3388::/64 1; +2a09:bac1:1981:33b0::/64 1; +2a09:bac1:1981:34e0::/64 1; +2a09:bac1:1981:4170::/64 1; +2a09:bac1:19a0:188::/64 1; +2a09:bac1:19a1:3388::/64 1; +2a09:bac1:19a1:33b0::/64 1; +2a09:bac1:19a1:34e0::/64 1; +2a09:bac1:19a1:4170::/64 1; +2a09:bac1:19c0:188::/64 1; +2a09:bac1:19c1:3388::/64 1; +2a09:bac1:19c1:33b0::/64 1; +2a09:bac1:19c1:34e0::/64 1; +2a09:bac1:19c1:4170::/64 1; +2a09:bac1:19e0:188::/64 1; +2a09:bac1:19e1:3388::/64 1; +2a09:bac1:19e1:33b0::/64 1; +2a09:bac1:19e1:34e0::/64 1; +2a09:bac1:19e1:4170::/64 1; +2a09:bac2:22f0::/44 1; +2a09:bac2:2300::/44 1; +2a09:bac2:2310::/45 1; +2a09:bac3:22f0::/44 1; +2a09:bac3:2300::/44 1; +2a09:bac3:2310::/45 1; +2a09:bac5:2320::/43 1; +2a09:bac5:2340::/45 1; +2a09:bac6:2320::/43 1; +2a09:bac6:2340::/45 1; diff --git a/minigate/root/usr/lib/minigate/geo/230000.conf b/minigate/root/usr/lib/minigate/geo/230000.conf new file mode 100644 index 000000000..5505c97ad --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/230000.conf @@ -0,0 +1,410 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 黑龙江省 +1.56.0.0/13 1; +1.188.0.0/14 1; +36.132.128.0/17 1; +36.160.0.0/17 1; +36.192.92.0/22 1; +36.192.96.0/21 1; +36.192.104.0/22 1; +42.100.0.0/14 1; +42.184.0.0/15 1; +42.247.2.136/29 1; +42.247.9.224/27 1; +42.247.16.64/28 1; +42.247.16.160/27 1; +42.247.21.116/30 1; +42.247.24.160/28 1; +43.224.54.104/29 1; +43.225.208.0/22 1; +43.236.72.0/22 1; +43.236.136.0/22 1; +43.238.0.0/22 1; +43.238.56.0/21 1; +43.238.140.0/22 1; +43.251.245.0/24 1; +45.248.96.0/22 1; +45.253.76.0/24 1; +49.128.4.0/22 1; +58.155.0.0/17 1; +58.194.0.0/21 1; +58.194.120.0/21 1; +60.11.0.0/16 1; +60.14.0.0/15 1; +60.218.0.0/15 1; +60.252.0.0/16 1; +61.47.128.0/18 1; +61.138.0.0/18 1; +61.158.0.0/17 1; +61.167.0.0/16 1; +61.180.128.0/17 1; +61.232.176.0/21 1; +61.233.160.0/19 1; +61.236.80.0/20 1; +61.236.96.0/20 1; +61.236.112.0/21 1; +61.237.0.82/31 1; +61.237.1.98/31 1; +61.237.1.188/30 1; +61.237.12.192/27 1; +61.237.66.118/31 1; +61.237.97.6/31 1; +61.237.97.166/31 1; +61.237.119.158/31 1; +61.237.127.198/31 1; +61.237.192.0/19 1; +61.243.192.0/19 1; +101.106.192.0/19 1; +101.106.224.0/20 1; +101.246.192.0/18 1; +103.3.100.0/22 1; +103.29.128.0/22 1; +103.31.236.0/22 1; +103.32.72.0/22 1; +103.32.136.0/22 1; +103.34.0.0/22 1; +103.34.56.0/21 1; +103.34.140.0/22 1; +103.40.212.0/22 1; +103.44.168.0/22 1; +103.94.160.0/22 1; +103.202.56.0/22 1; +103.216.240.0/22 1; +103.227.100.0/22 1; +103.244.116.0/22 1; +106.74.247.0/24 1; +110.110.0.0/15 1; +110.112.0.0/16 1; +111.40.0.0/14 1; +111.117.0.0/18 1; +111.137.0.0/16 1; +112.54.112.0/21 1; +112.54.208.0/22 1; +112.98.0.0/15 1; +112.100.0.0/14 1; +113.0.0.0/13 1; +113.8.0.0/15 1; +114.196.0.0/15 1; +115.168.39.0/24 1; +115.168.71.0/24 1; +116.182.0.0/16 1; +116.212.160.0/20 1; +117.132.176.0/22 1; +117.132.180.0/23 1; +117.132.182.0/24 1; +117.134.60.0/22 1; +117.134.64.0/22 1; +117.134.68.0/24 1; +117.136.7.0/24 1; +117.136.56.0/23 1; +117.179.0.0/16 1; +118.203.0.0/16 1; +122.64.0.0/15 1; +122.72.21.0/24 1; +122.72.56.0/22 1; +122.156.0.0/14 1; +123.83.0.0/16 1; +123.94.10.0/24 1; +123.164.0.0/14 1; +125.58.128.0/17 1; +125.211.0.0/16 1; +125.223.0.0/18 1; +125.223.64.0/19 1; +125.223.96.0/23 1; +125.223.98.0/24 1; +125.223.100.0/22 1; +125.223.104.0/21 1; +125.223.112.0/20 1; +159.226.208.128/25 1; +163.53.188.0/22 1; +175.46.0.0/15 1; +175.64.0.0/15 1; +175.88.32.0/20 1; +202.63.248.0/22 1; +202.90.24.0/22 1; +202.97.25.10/31 1; +202.97.25.14/31 1; +202.97.28.214/31 1; +202.97.35.154/31 1; +202.97.35.156/30 1; +202.97.35.160/30 1; +202.97.38.82/31 1; +202.97.38.228/30 1; +202.97.38.236/30 1; +202.97.38.244/30 1; +202.97.38.252/30 1; +202.97.39.234/31 1; +202.97.39.254/31 1; +202.97.40.2/31 1; +202.97.40.4/30 1; +202.97.40.10/31 1; +202.97.46.250/31 1; +202.97.47.134/31 1; +202.97.56.46/31 1; +202.97.56.72/31 1; +202.97.56.168/30 1; +202.97.56.194/31 1; +202.97.58.2/31 1; +202.97.78.202/31 1; +202.97.78.206/31 1; +202.97.79.30/31 1; +202.97.79.50/31 1; +202.97.79.54/31 1; +202.97.80.154/31 1; +202.97.88.122/31 1; +202.97.92.218/31 1; +202.97.92.220/30 1; +202.97.192.0/18 1; +202.118.128.0/17 1; +202.127.235.128/25 1; +203.90.128.0/18 1; +203.90.192.0/19 1; +210.46.0.0/19 1; +210.46.32.0/20 1; +210.46.48.0/21 1; +210.46.56.0/22 1; +210.46.64.0/18 1; +210.46.128.0/19 1; +210.46.168.0/21 1; +210.46.176.0/20 1; +210.46.192.0/21 1; +210.46.208.0/22 1; +210.46.216.0/21 1; +210.46.224.0/19 1; +210.47.64.0/19 1; +210.47.96.0/22 1; +210.47.100.0/23 1; +210.47.104.0/21 1; +210.47.112.0/20 1; +210.52.27.0/24 1; +210.52.28.0/22 1; +210.52.32.0/21 1; +210.75.94.0/26 1; +210.76.32.0/19 1; +210.82.167.0/24 1; +210.82.188.0/24 1; +210.82.207.0/24 1; +210.82.208.0/22 1; +210.82.249.0/24 1; +211.93.24.0/21 1; +211.93.32.0/19 1; +211.98.90.0/23 1; +211.98.92.0/23 1; +211.98.95.0/24 1; +211.98.171.48/29 1; +211.98.176.0/24 1; +211.98.181.0/24 1; +211.98.187.0/24 1; +211.98.188.0/23 1; +211.98.190.0/24 1; +211.98.240.0/24 1; +211.137.224.0/19 1; +218.7.0.0/16 1; +218.8.0.0/15 1; +218.10.0.0/16 1; +218.30.250.0/24 1; +218.97.192.0/19 1; +218.203.0.0/18 1; +218.203.64.0/19 1; +218.244.192.0/20 1; +218.246.160.0/19 1; +219.147.64.0/19 1; +219.147.128.0/17 1; +219.158.15.230/31 1; +219.158.17.86/31 1; +219.158.17.214/31 1; +219.158.19.42/31 1; +219.158.19.46/31 1; +219.158.19.162/31 1; +219.158.19.164/31 1; +219.158.20.6/31 1; +219.158.20.10/31 1; +219.158.20.90/31 1; +219.158.20.230/31 1; +219.158.22.162/31 1; +219.158.22.178/31 1; +219.158.24.32/31 1; +219.158.96.106/31 1; +219.158.100.14/31 1; +219.158.100.218/31 1; +219.158.100.220/30 1; +219.158.100.224/30 1; +219.158.100.228/31 1; +219.158.100.254/31 1; +219.158.102.18/31 1; +219.158.102.30/31 1; +219.158.102.32/29 1; +219.158.107.162/31 1; +219.158.108.38/31 1; +219.158.108.58/31 1; +219.158.109.154/31 1; +219.158.109.194/31 1; +219.158.109.202/31 1; +219.158.110.46/31 1; +219.158.110.48/30 1; +219.158.110.198/31 1; +219.158.111.10/31 1; +219.158.113.70/31 1; +219.158.116.122/31 1; +219.158.116.124/30 1; +219.158.116.130/31 1; +219.158.116.134/31 1; +219.217.192.0/18 1; +219.235.64.0/18 1; +219.243.255.0/24 1; +220.192.216.0/21 1; +220.201.192.0/18 1; +220.207.184.0/22 1; +221.174.115.0/24 1; +221.176.18.52/31 1; +221.176.18.116/31 1; +221.176.18.120/31 1; +221.176.18.124/31 1; +221.176.18.128/31 1; +221.176.18.132/31 1; +221.176.18.136/31 1; +221.177.34.0/23 1; +221.177.36.0/22 1; +221.183.13.80/29 1; +221.183.14.152/29 1; +221.183.25.46/31 1; +221.183.27.160/28 1; +221.183.40.30/31 1; +221.183.40.110/31 1; +221.183.40.190/31 1; +221.183.42.30/31 1; +221.183.42.50/31 1; +221.183.42.102/31 1; +221.183.47.248/29 1; +221.183.48.0/29 1; +221.206.0.0/16 1; +221.207.64.0/18 1; +221.207.128.0/17 1; +221.208.0.0/14 1; +221.212.0.0/16 1; +222.27.128.0/23 1; +222.27.130.0/24 1; +222.27.136.0/21 1; +222.27.144.0/20 1; +222.27.160.0/19 1; +222.27.192.0/18 1; +222.32.0.0/16 1; +222.56.128.0/17 1; +222.57.128.0/17 1; +222.170.0.0/15 1; +222.172.0.0/17 1; +223.29.252.0/22 1; +223.103.17.0/24 1; +223.103.134.0/23 1; +223.103.136.0/22 1; +223.103.202.0/24 1; +223.104.17.0/24 1; +223.104.113.0/24 1; +223.104.114.0/23 1; +223.104.116.0/23 1; +223.104.118.0/24 1; +2400:3f60::/32 1; +2400:fe00::/32 1; +2401:2080::/32 1; +2401:d780::/32 1; +2403:6380::/32 1; +2406:280::/32 1; +2406:840:fe27::/48 1; +2406:840:fe93::/48 1; +2406:840:feff::/48 1; +2408:8438:100::/40 1; +2408:8438:200::/40 1; +2408:8438:3e00::/40 1; +2408:8439:1600::/40 1; +2409:801a::/31 1; +2409:801c::/31 1; +2409:8087:1a00::/40 1; +2409:871a::/31 1; +2409:871c::/31 1; +2409:881a::/40 1; +2409:891a::/31 1; +2409:891c::/31 1; +2409:8a1a::/31 1; +2409:8a1c::/31 1; +2409:8b1a::/31 1; +2409:8b1c::/31 1; +2409:8c1a::/31 1; +2409:8c1c::/31 1; +2409:8c85:1a00::/40 1; +2409:8d1a::/32 1; +2409:8e1a::/32 1; +240e:409:1300::/40 1; +2606:54c0:2250::/44 1; +2606:54c0:2260::/43 1; +2606:54c0:2280::/43 1; +2606:54c0:22a0::/45 1; +2606:54c3:0:39f::/64 1; +2606:54c3:0:4db::/64 1; +2606:54c3:0:89d::/64 1; +2606:54c3:0:d99::/64 1; +2606:54c3:0:e71::/64 1; +2606:54c3:0:10a9::/64 1; +2606:54c3:0:119c::/64 1; +2606:54c3:0:14cd::/64 1; +2606:54c3:0:1620::/64 1; +2606:54c3:0:1678::/64 1; +2606:54c3:0:1792::/64 1; +2a09:bac1:1981:3d88::/64 1; +2a09:bac1:1981:4a70::/64 1; +2a09:bac1:1981:4ad0::/64 1; +2a09:bac1:1981:4cf8::/64 1; +2a09:bac1:1981:4e90::/64 1; +2a09:bac1:1981:5060::/64 1; +2a09:bac1:1981:51b0::/64 1; +2a09:bac1:1981:5688::/64 1; +2a09:bac1:1981:57e0::/64 1; +2a09:bac1:1981:5930::/64 1; +2a09:bac1:1981:5998::/64 1; +2a09:bac1:19a1:3d88::/64 1; +2a09:bac1:19a1:4a70::/64 1; +2a09:bac1:19a1:4ad0::/64 1; +2a09:bac1:19a1:4cf8::/64 1; +2a09:bac1:19a1:4e90::/64 1; +2a09:bac1:19a1:5060::/64 1; +2a09:bac1:19a1:51b0::/64 1; +2a09:bac1:19a1:5688::/64 1; +2a09:bac1:19a1:57e0::/64 1; +2a09:bac1:19a1:5930::/64 1; +2a09:bac1:19a1:5998::/64 1; +2a09:bac1:19c1:3d88::/64 1; +2a09:bac1:19c1:4a70::/64 1; +2a09:bac1:19c1:4ad0::/64 1; +2a09:bac1:19c1:4cf8::/64 1; +2a09:bac1:19c1:4e90::/64 1; +2a09:bac1:19c1:5060::/64 1; +2a09:bac1:19c1:51b0::/64 1; +2a09:bac1:19c1:5688::/64 1; +2a09:bac1:19c1:57e0::/64 1; +2a09:bac1:19c1:5930::/64 1; +2a09:bac1:19c1:5998::/64 1; +2a09:bac1:19e1:3d88::/64 1; +2a09:bac1:19e1:4a70::/64 1; +2a09:bac1:19e1:4ad0::/64 1; +2a09:bac1:19e1:4cf8::/64 1; +2a09:bac1:19e1:4e90::/64 1; +2a09:bac1:19e1:5060::/64 1; +2a09:bac1:19e1:51b0::/64 1; +2a09:bac1:19e1:5688::/64 1; +2a09:bac1:19e1:57e0::/64 1; +2a09:bac1:19e1:5930::/64 1; +2a09:bac1:19e1:5998::/64 1; +2a09:bac2:2250::/44 1; +2a09:bac2:2260::/43 1; +2a09:bac2:2280::/43 1; +2a09:bac2:22a0::/45 1; +2a09:bac3:2250::/44 1; +2a09:bac3:2260::/43 1; +2a09:bac3:2280::/43 1; +2a09:bac3:22a0::/45 1; +2a09:bac5:2280::/42 1; +2a09:bac5:22c0::/44 1; +2a09:bac5:22d0::/45 1; +2a09:bac6:2280::/42 1; +2a09:bac6:22c0::/44 1; +2a09:bac6:22d0::/45 1; +2a0e:b107:12c0::/44 1; +2a10:2f00:15a::/48 1; diff --git a/minigate/root/usr/lib/minigate/geo/310000.conf b/minigate/root/usr/lib/minigate/geo/310000.conf new file mode 100644 index 000000000..83be8c0e5 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/310000.conf @@ -0,0 +1,2622 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 上海市 +1.118.1.0/24 1; +1.118.2.0/23 1; +1.118.4.0/22 1; +1.118.8.0/21 1; +1.118.16.0/20 1; +1.118.32.0/19 1; +1.118.64.0/18 1; +1.118.128.0/17 1; +8.128.0.0/16 1; +8.132.0.0/15 1; +14.1.108.0/22 1; +14.102.157.0/24 1; +14.102.158.0/23 1; +14.197.244.146/32 1; +27.0.188.0/22 1; +27.109.124.0/22 1; +27.113.128.0/18 1; +27.115.0.0/17 1; +36.111.0.0/19 1; +36.133.72.0/21 1; +36.133.80.0/22 1; +36.134.32.0/21 1; +36.192.108.0/22 1; +36.192.112.0/23 1; +36.192.114.0/24 1; +36.255.128.0/22 1; +36.255.172.0/22 1; +36.255.176.0/22 1; +39.144.39.0/24 1; +39.144.40.0/24 1; +39.144.43.0/24 1; +39.144.44.0/22 1; +40.72.128.0/18 1; +40.72.192.0/19 1; +40.72.224.0/20 1; +40.72.240.0/21 1; +40.72.248.0/22 1; +40.72.252.0/23 1; +40.72.254.0/24 1; +40.126.64.0/18 1; +42.99.16.0/22 1; +42.99.20.0/23 1; +42.120.240.200/29 1; +42.120.240.208/28 1; +42.120.240.224/27 1; +42.120.241.0/24 1; +42.120.242.0/28 1; +42.159.128.0/17 1; +42.192.0.0/15 1; +42.196.0.0/17 1; +42.196.128.0/18 1; +42.196.192.0/19 1; +42.196.224.0/20 1; +42.196.240.0/21 1; +42.196.248.0/22 1; +42.196.252.0/23 1; +42.196.255.0/24 1; +42.245.248.0/22 1; +42.245.252.0/23 1; +42.247.1.0/26 1; +42.247.1.64/28 1; +42.247.1.80/30 1; +42.247.1.216/29 1; +42.247.2.176/29 1; +42.247.6.224/27 1; +42.247.10.96/27 1; +42.247.10.128/27 1; +42.247.12.32/27 1; +42.247.16.192/27 1; +42.247.16.224/28 1; +42.247.18.32/27 1; +42.247.18.144/28 1; +42.247.18.160/27 1; +42.247.19.32/27 1; +42.247.19.64/28 1; +42.247.21.84/30 1; +42.247.22.0/27 1; +42.247.23.96/27 1; +42.247.28.64/27 1; +42.247.29.4/30 1; +42.247.32.240/28 1; +42.247.40.192/26 1; +42.247.44.0/27 1; +42.247.44.32/28 1; +42.247.44.48/30 1; +42.247.48.224/27 1; +42.247.53.0/27 1; +42.247.53.32/28 1; +43.224.100.0/22 1; +43.224.176.0/22 1; +43.225.224.0/22 1; +43.228.148.0/22 1; +43.228.152.0/22 1; +43.229.48.0/22 1; +43.229.140.0/23 1; +43.229.142.0/24 1; +43.229.188.0/22 1; +43.229.192.0/21 1; +43.229.236.0/22 1; +43.236.172.0/22 1; +43.236.176.0/22 1; +43.237.160.0/19 1; +43.238.20.0/22 1; +43.238.24.0/22 1; +43.238.64.0/22 1; +43.238.204.0/22 1; +43.238.208.0/20 1; +43.238.224.0/21 1; +43.240.76.0/22 1; +43.240.84.0/22 1; +43.240.124.0/22 1; +43.240.128.0/22 1; +43.240.192.0/21 1; +43.241.172.0/22 1; +43.242.92.0/22 1; +43.243.148.0/23 1; +43.243.150.0/24 1; +43.243.151.0/25 1; +43.243.151.128/26 1; +43.243.151.192/27 1; +43.247.100.0/22 1; +43.248.228.0/22 1; +43.249.135.0/24 1; +43.250.144.0/22 1; +43.252.49.0/24 1; +43.254.44.0/22 1; +43.254.104.0/22 1; +43.254.140.0/22 1; +43.254.144.0/21 1; +43.254.152.0/22 1; +43.254.220.0/22 1; +43.254.224.0/22 1; +43.255.16.0/22 1; +43.255.48.0/22 1; +43.255.64.0/22 1; +43.255.76.0/22 1; +43.255.208.0/22 1; +45.113.40.0/22 1; +45.115.44.0/22 1; +45.115.144.0/22 1; +45.115.217.0/24 1; +45.116.52.0/22 1; +45.124.124.0/22 1; +45.124.248.0/22 1; +45.125.80.0/22 1; +45.249.12.0/22 1; +45.249.16.0/20 1; +45.249.32.0/21 1; +45.249.188.0/22 1; +45.249.192.0/20 1; +45.249.208.0/22 1; +45.250.104.0/21 1; +45.250.144.0/22 1; +45.250.180.0/22 1; +45.250.184.0/21 1; +45.251.0.0/22 1; +45.251.152.0/21 1; +45.251.160.0/19 1; +45.251.192.0/19 1; +45.251.224.0/22 1; +45.252.8.0/21 1; +45.252.16.0/20 1; +45.252.32.0/20 1; +45.252.48.0/22 1; +45.252.84.0/22 1; +45.252.88.0/21 1; +45.252.96.0/21 1; +45.252.108.0/22 1; +45.252.112.0/21 1; +45.252.132.0/22 1; +45.252.136.0/22 1; +45.252.228.0/22 1; +45.253.24.0/22 1; +45.254.60.0/22 1; +45.254.64.0/20 1; +45.254.80.0/22 1; +45.254.92.0/22 1; +47.100.0.0/14 1; +47.116.0.0/14 1; +49.52.0.0/14 1; +49.221.130.0/23 1; +49.221.133.0/24 1; +49.221.142.0/23 1; +49.221.144.0/20 1; +49.221.160.0/19 1; +49.221.192.0/18 1; +49.234.0.0/15 1; +49.239.0.0/18 1; +49.246.226.0/23 1; +49.246.234.0/23 1; +52.130.0.0/15 1; +58.24.0.0/15 1; +58.32.0.0/13 1; +58.40.0.0/15 1; +58.194.64.0/19 1; +58.196.0.0/16 1; +58.198.0.0/16 1; +58.199.128.0/18 1; +58.200.11.0/24 1; +58.200.106.0/24 1; +58.207.16.0/20 1; +58.207.32.0/21 1; +58.246.0.0/15 1; +59.43.80.8/29 1; +59.43.80.28/30 1; +59.43.80.50/31 1; +59.43.80.76/30 1; +59.43.80.80/28 1; +59.43.80.96/28 1; +59.43.80.112/30 1; +59.43.82.16/31 1; +59.43.181.104/29 1; +59.43.181.112/28 1; +59.43.181.128/29 1; +59.43.181.136/31 1; +59.43.182.186/31 1; +59.43.182.188/30 1; +59.43.182.192/26 1; +59.43.183.0/24 1; +59.43.184.0/21 1; +59.43.192.0/19 1; +59.43.224.0/20 1; +59.43.240.0/21 1; +59.43.248.0/25 1; +59.43.248.128/26 1; +59.43.248.192/27 1; +59.43.248.224/29 1; +59.43.248.232/30 1; +59.43.248.236/31 1; +59.43.248.242/31 1; +59.43.249.24/29 1; +59.43.249.136/30 1; +59.43.249.140/31 1; +59.43.249.194/31 1; +59.43.250.32/30 1; +59.43.250.36/31 1; +59.43.255.8/30 1; +59.43.255.58/31 1; +59.43.255.62/31 1; +59.77.116.0/22 1; +59.77.120.0/21 1; +59.77.174.0/23 1; +59.78.0.0/16 1; +59.79.0.0/18 1; +59.79.64.0/19 1; +59.79.96.0/20 1; +59.79.114.0/23 1; +59.79.116.0/22 1; +59.79.120.0/21 1; +59.81.64.0/23 1; +59.81.106.0/23 1; +59.153.32.0/22 1; +59.153.92.0/22 1; +59.153.164.0/22 1; +59.153.168.0/21 1; +59.153.176.0/20 1; +59.153.192.0/22 1; +59.155.64.0/18 1; +59.155.128.0/18 1; +60.63.0.0/16 1; +61.8.160.0/20 1; +61.87.192.0/18 1; +61.129.0.0/16 1; +61.151.0.0/16 1; +61.152.0.0/16 1; +61.165.0.0/16 1; +61.169.0.0/16 1; +61.170.0.0/15 1; +61.172.0.0/15 1; +61.232.63.0/24 1; +61.232.64.0/23 1; +61.232.66.0/24 1; +61.232.69.0/24 1; +61.232.70.0/23 1; +61.232.72.0/22 1; +61.232.76.0/23 1; +61.237.0.6/31 1; +61.237.0.12/30 1; +61.237.0.16/31 1; +61.237.0.20/31 1; +61.237.0.112/30 1; +61.237.0.160/29 1; +61.237.0.176/28 1; +61.237.0.192/27 1; +61.237.0.224/28 1; +61.237.0.240/29 1; +61.237.0.248/30 1; +61.237.1.68/31 1; +61.237.1.72/31 1; +61.237.2.44/31 1; +61.237.2.60/31 1; +61.237.2.64/31 1; +61.237.2.164/31 1; +61.237.3.8/29 1; +61.237.10.64/26 1; +61.237.28.200/29 1; +61.237.65.100/30 1; +61.237.68.116/30 1; +61.237.97.96/31 1; +61.237.112.72/29 1; +61.237.113.208/30 1; +61.237.119.148/31 1; +61.237.121.70/31 1; +61.237.122.112/30 1; +61.237.122.174/31 1; +61.237.122.188/31 1; +61.237.122.192/30 1; +61.237.122.196/31 1; +61.237.123.26/31 1; +61.237.123.28/30 1; +61.237.123.32/28 1; +61.237.123.48/29 1; +61.237.123.56/30 1; +61.237.123.60/31 1; +61.237.123.100/31 1; +61.237.123.116/31 1; +61.237.123.120/31 1; +61.237.123.124/31 1; +61.237.123.160/31 1; +61.237.126.84/30 1; +61.237.126.88/31 1; +61.237.126.100/30 1; +61.237.126.104/29 1; +61.237.126.112/31 1; +61.237.126.116/31 1; +61.237.126.120/31 1; +61.237.126.124/31 1; +61.237.126.128/31 1; +61.237.126.140/30 1; +61.237.126.144/30 1; +61.237.127.0/31 1; +61.237.127.8/30 1; +61.237.127.12/31 1; +61.237.127.18/31 1; +61.237.127.22/31 1; +61.237.127.176/30 1; +61.237.127.180/31 1; +61.237.127.184/31 1; +61.237.127.188/30 1; +61.237.127.192/30 1; +61.237.127.196/31 1; +61.237.127.200/31 1; +61.237.127.240/28 1; +72.163.248.0/22 1; +81.68.0.0/15 1; +89.19.34.0/23 1; +91.238.148.0/23 1; +101.7.8.0/29 1; +101.7.8.8/32 1; +101.7.8.10/31 1; +101.7.8.12/30 1; +101.7.8.16/28 1; +101.7.8.32/27 1; +101.44.0.0/15 1; +101.52.0.0/16 1; +101.80.0.0/12 1; +101.96.10.0/23 1; +101.110.116.0/24 1; +101.124.64.0/18 1; +101.132.0.0/15 1; +101.196.0.0/16 1; +101.198.128.0/18 1; +101.198.194.0/24 1; +101.198.196.0/24 1; +101.198.198.0/23 1; +101.198.200.0/22 1; +101.224.0.0/13 1; +101.244.0.0/15 1; +101.251.64.0/20 1; +101.251.96.0/19 1; +103.1.24.0/22 1; +103.2.204.0/22 1; +103.3.88.0/22 1; +103.5.192.0/22 1; +103.6.220.0/22 1; +103.8.200.0/22 1; +103.10.0.0/22 1; +103.12.136.0/22 1; +103.13.196.0/22 1; +103.13.244.0/22 1; +103.14.156.0/22 1; +103.17.120.0/23 1; +103.17.160.0/22 1; +103.20.32.0/23 1; +103.20.248.0/22 1; +103.21.140.0/22 1; +103.21.177.0/24 1; +103.22.76.0/22 1; +103.22.228.0/22 1; +103.24.116.0/22 1; +103.24.252.0/22 1; +103.25.64.0/22 1; +103.25.216.0/22 1; +103.26.66.0/23 1; +103.26.228.0/22 1; +103.28.212.0/22 1; +103.29.29.0/24 1; +103.31.48.0/22 1; +103.31.64.0/21 1; +103.31.72.0/24 1; +103.31.203.0/24 1; +103.32.172.0/22 1; +103.32.176.0/22 1; +103.33.160.0/19 1; +103.34.20.0/22 1; +103.34.24.0/22 1; +103.34.64.0/22 1; +103.34.204.0/22 1; +103.34.208.0/20 1; +103.34.224.0/21 1; +103.36.64.0/22 1; +103.36.72.0/22 1; +103.36.132.0/22 1; +103.36.136.0/22 1; +103.36.168.0/21 1; +103.38.232.0/22 1; +103.38.252.0/23 1; +103.40.220.0/22 1; +103.43.124.0/22 1; +103.43.196.0/22 1; +103.44.184.0/22 1; +103.47.123.0/24 1; +103.47.136.0/21 1; +103.48.152.0/24 1; +103.48.154.0/23 1; +103.48.236.0/22 1; +103.48.240.0/21 1; +103.49.20.0/22 1; +103.50.36.0/23 1; +103.50.38.0/24 1; +103.52.196.0/22 1; +103.55.172.0/22 1; +103.59.76.0/22 1; +103.59.120.0/24 1; +103.59.122.0/23 1; +103.59.168.0/22 1; +103.60.32.0/22 1; +103.60.228.0/22 1; +103.61.104.0/22 1; +103.65.204.0/22 1; +103.66.200.0/22 1; +103.67.4.0/22 1; +103.67.8.0/22 1; +103.67.44.0/22 1; +103.67.48.0/21 1; +103.67.100.0/22 1; +103.67.120.0/21 1; +103.67.136.0/21 1; +103.67.144.0/21 1; +103.68.128.0/22 1; +103.71.80.0/22 1; +103.72.112.0/22 1; +103.73.240.0/23 1; +103.74.124.0/22 1; +103.74.152.0/21 1; +103.75.144.0/22 1; +103.76.92.0/22 1; +103.77.52.0/22 1; +103.79.229.0/24 1; +103.80.44.0/22 1; +103.81.44.0/22 1; +103.81.164.0/22 1; +103.84.20.0/22 1; +103.84.24.0/22 1; +103.87.132.0/22 1; +103.88.4.0/22 1; +103.89.28.0/22 1; +103.90.128.0/22 1; +103.92.88.0/22 1; +103.94.29.0/24 1; +103.94.30.0/23 1; +103.94.44.0/22 1; +103.95.144.0/22 1; +103.95.223.0/24 1; +103.95.244.0/22 1; +103.96.156.0/22 1; +103.96.224.0/22 1; +103.97.112.0/22 1; +103.98.0.0/23 1; +103.98.28.0/23 1; +103.98.88.0/22 1; +103.98.124.0/24 1; +103.98.126.0/24 1; +103.98.220.0/22 1; +103.98.228.0/22 1; +103.101.124.0/24 1; +103.102.172.0/22 1; +103.102.184.0/21 1; +103.102.196.0/24 1; +103.103.188.0/22 1; +103.108.160.0/22 1; +103.108.244.0/24 1; +103.110.117.0/24 1; +103.111.64.0/22 1; +103.114.156.0/23 1; +103.114.236.0/22 1; +103.114.240.0/22 1; +103.116.76.0/22 1; +103.116.150.0/24 1; +103.116.228.0/22 1; +103.118.60.0/22 1; +103.118.173.0/24 1; +103.119.224.0/22 1; +103.132.116.0/22 1; +103.132.208.0/21 1; +103.135.192.0/24 1; +103.140.14.0/23 1; +103.142.97.0/24 1; +103.144.66.0/23 1; +103.144.158.0/24 1; +103.147.124.0/23 1; +103.152.250.0/23 1; +103.155.48.0/23 1; +103.156.68.0/23 1; +103.192.212.0/22 1; +103.193.120.0/22 1; +103.198.20.0/22 1; +103.198.124.0/22 1; +103.199.252.0/22 1; +103.200.136.0/21 1; +103.200.144.0/21 1; +103.202.0.0/19 1; +103.202.32.0/20 1; +103.202.92.0/22 1; +103.202.96.0/20 1; +103.202.112.0/22 1; +103.202.120.0/21 1; +103.202.128.0/20 1; +103.202.144.0/22 1; +103.202.212.0/22 1; +103.203.212.0/22 1; +103.204.196.0/22 1; +103.205.120.0/24 1; +103.206.0.0/22 1; +103.206.44.0/22 1; +103.208.28.0/22 1; +103.208.148.0/22 1; +103.209.136.0/22 1; +103.209.208.0/22 1; +103.209.216.0/22 1; +103.210.168.0/22 1; +103.211.44.0/22 1; +103.212.252.0/22 1; +103.214.84.0/22 1; +103.214.240.0/21 1; +103.217.180.0/22 1; +103.217.184.0/21 1; +103.217.192.0/20 1; +103.218.44.0/22 1; +103.218.48.0/22 1; +103.218.80.0/22 1; +103.218.192.0/20 1; +103.218.208.0/21 1; +103.219.84.0/22 1; +103.219.88.0/21 1; +103.219.96.0/21 1; +103.220.120.0/22 1; +103.220.164.0/22 1; +103.220.168.0/21 1; +103.220.176.0/20 1; +103.220.192.0/21 1; +103.220.200.0/22 1; +103.221.24.0/21 1; +103.221.32.0/22 1; +103.221.100.0/22 1; +103.221.104.0/21 1; +103.221.112.0/20 1; +103.221.128.0/21 1; +103.221.136.0/22 1; +103.222.40.0/22 1; +103.228.228.0/22 1; +103.230.44.0/22 1; +103.230.204.0/22 1; +103.231.16.0/21 1; +103.232.4.0/22 1; +103.234.128.0/22 1; +103.237.28.0/22 1; +103.237.68.0/22 1; +103.238.140.0/24 1; +103.238.164.0/22 1; +103.238.168.0/22 1; +103.238.180.0/22 1; +103.238.184.0/22 1; +103.239.0.0/22 1; +103.239.196.0/22 1; +103.241.184.0/22 1; +103.242.128.0/23 1; +103.242.130.0/24 1; +103.242.168.0/22 1; +103.243.252.0/22 1; +103.245.52.0/22 1; +103.245.80.0/22 1; +103.246.132.0/22 1; +103.247.172.0/22 1; +103.247.200.0/22 1; +103.248.192.0/22 1; +103.249.8.0/22 1; +103.249.136.0/24 1; +103.250.192.0/22 1; +103.250.236.0/22 1; +103.251.84.0/22 1; +103.251.192.0/22 1; +103.251.206.0/23 1; +103.252.96.0/22 1; +103.253.204.0/22 1; +104.28.43.38/31 1; +104.28.66.32/31 1; +104.28.69.32/31 1; +104.28.83.4/31 1; +104.28.99.2/31 1; +104.28.101.2/31 1; +104.28.117.34/31 1; +104.28.120.34/31 1; +104.28.176.100/30 1; +104.28.176.104/30 1; +104.28.208.133/32 1; +104.28.208.134/31 1; +104.28.208.136/30 1; +104.28.208.140/32 1; +104.28.240.133/32 1; +104.28.240.134/31 1; +104.28.240.136/30 1; +104.28.240.140/32 1; +106.11.48.0/20 1; +106.11.64.0/18 1; +106.11.160.0/20 1; +106.11.194.0/23 1; +106.11.202.0/23 1; +106.11.224.0/19 1; +106.14.0.0/15 1; +106.48.38.0/23 1; +106.75.204.0/22 1; +106.75.208.0/20 1; +106.75.224.0/19 1; +109.244.32.0/20 1; +109.244.208.0/20 1; +110.43.128.0/19 1; +110.75.129.0/24 1; +110.75.130.0/26 1; +110.75.130.64/27 1; +110.75.138.0/23 1; +110.75.227.0/24 1; +110.75.228.0/24 1; +110.76.30.0/23 1; +110.76.60.0/22 1; +110.173.192.0/19 1; +111.119.64.0/18 1; +111.119.128.0/19 1; +111.186.0.0/17 1; +111.186.144.0/20 1; +111.186.160.0/19 1; +111.187.0.0/17 1; +111.187.204.0/22 1; +111.187.208.0/20 1; +111.187.224.0/19 1; +111.212.0.0/14 1; +111.223.8.0/22 1; +111.223.16.0/22 1; +111.229.0.0/16 1; +111.231.0.0/17 1; +111.231.128.0/19 1; +111.231.160.0/20 1; +111.231.176.0/21 1; +111.231.184.0/22 1; +111.235.96.0/19 1; +111.235.163.0/24 1; +112.54.160.0/21 1; +112.54.232.0/22 1; +112.64.0.0/15 1; +113.52.160.0/19 1; +113.197.100.0/23 1; +113.197.102.0/24 1; +113.202.0.0/16 1; +114.28.0.0/17 1; +114.28.128.0/18 1; +114.60.0.0/14 1; +114.66.64.0/23 1; +114.66.72.0/21 1; +114.67.64.0/18 1; +114.80.0.0/12 1; +114.141.128.0/18 1; +115.25.209.0/24 1; +115.25.210.0/24 1; +115.159.0.0/17 1; +115.159.128.0/18 1; +115.159.192.0/19 1; +115.159.224.0/21 1; +115.159.232.0/22 1; +115.159.236.0/23 1; +115.159.246.0/23 1; +115.159.248.0/22 1; +115.159.252.0/23 1; +115.168.41.0/24 1; +115.168.73.0/24 1; +115.172.32.0/19 1; +115.172.64.0/19 1; +115.172.192.0/18 1; +115.173.128.0/17 1; +115.174.0.0/18 1; +115.174.96.0/19 1; +115.174.128.0/17 1; +116.58.128.0/20 1; +116.66.0.0/18 1; +116.66.64.0/19 1; +116.66.96.0/20 1; +116.66.120.0/22 1; +116.128.128.0/18 1; +116.128.200.0/21 1; +116.128.208.0/20 1; +116.192.0.0/16 1; +116.193.32.0/19 1; +116.194.0.0/15 1; +116.196.128.0/17 1; +116.198.144.0/20 1; +116.198.160.0/19 1; +116.214.32.0/19 1; +116.214.128.0/24 1; +116.224.0.0/12 1; +116.246.0.0/15 1; +116.251.64.0/24 1; +116.251.65.0/27 1; +116.251.65.32/28 1; +116.251.65.165/32 1; +116.251.65.166/31 1; +116.251.65.168/29 1; +116.251.65.176/31 1; +116.251.65.178/32 1; +116.251.65.196/30 1; +116.251.65.200/31 1; +116.251.65.204/30 1; +116.251.65.208/29 1; +116.251.65.254/31 1; +116.251.66.0/23 1; +116.251.68.0/22 1; +116.251.72.0/22 1; +116.251.80.0/22 1; +116.251.108.0/22 1; +117.74.128.0/17 1; +117.121.192.0/21 1; +117.131.0.0/17 1; +117.132.199.16/28 1; +117.135.0.0/17 1; +117.135.128.0/18 1; +117.136.8.0/24 1; +117.136.119.0/24 1; +117.136.120.0/24 1; +117.136.195.0/24 1; +117.143.0.0/16 1; +117.144.0.0/16 1; +117.184.0.0/15 1; +117.186.0.0/16 1; +118.25.0.0/17 1; +118.25.128.0/18 1; +118.25.192.0/21 1; +118.25.240.0/20 1; +118.85.255.2/31 1; +118.85.255.4/30 1; +118.85.255.8/29 1; +118.85.255.16/28 1; +118.85.255.32/27 1; +118.85.255.64/26 1; +118.85.255.128/25 1; +118.89.8.0/21 1; +118.89.66.0/23 1; +118.89.68.0/22 1; +118.89.72.0/21 1; +118.89.80.0/20 1; +118.89.96.0/19 1; +118.89.128.0/18 1; +118.89.192.0/20 1; +118.89.208.0/23 1; +118.118.118.0/26 1; +118.118.118.64/27 1; +118.118.118.96/28 1; +118.118.118.112/30 1; +118.118.118.116/31 1; +118.118.118.118/32 1; +118.126.1.0/24 1; +118.126.2.0/23 1; +118.126.4.0/22 1; +118.126.8.0/21 1; +118.126.16.0/23 1; +118.126.18.0/24 1; +118.126.32.0/19 1; +118.126.64.0/20 1; +118.126.80.0/21 1; +118.132.0.0/14 1; +118.184.109.0/24 1; +118.184.110.0/23 1; +118.184.123.0/24 1; +118.184.124.0/23 1; +118.184.126.0/24 1; +118.205.0.0/17 1; +118.242.0.0/16 1; +119.3.0.0/17 1; +119.3.128.0/19 1; +119.15.136.0/21 1; +119.18.224.0/20 1; +119.30.48.0/20 1; +119.37.0.0/17 1; +119.37.128.0/18 1; +119.38.219.98/32 1; +119.38.219.100/31 1; +119.42.136.0/24 1; +119.58.0.0/16 1; +119.78.224.0/19 1; +119.148.160.0/22 1; +119.161.158.0/23 1; +119.235.128.0/19 1; +119.235.160.0/20 1; +119.235.181.0/24 1; +119.235.182.0/23 1; +119.235.184.0/22 1; +120.55.160.0/21 1; +120.55.168.0/22 1; +120.90.0.0/15 1; +120.92.128.0/18 1; +120.92.224.0/20 1; +120.132.136.0/22 1; +120.133.236.0/22 1; +120.133.240.0/20 1; +120.135.16.0/20 1; +120.135.32.0/19 1; +120.136.128.0/18 1; +120.137.0.0/17 1; +120.204.0.0/16 1; +120.253.128.0/17 1; +121.36.128.0/17 1; +121.37.128.0/18 1; +121.46.224.0/19 1; +121.51.32.0/20 1; +121.51.50.0/24 1; +121.51.52.0/22 1; +121.51.56.0/23 1; +121.51.58.0/24 1; +121.51.60.0/22 1; +121.51.64.0/19 1; +121.51.112.0/20 1; +121.51.208.0/20 1; +121.51.240.0/21 1; +121.51.248.0/23 1; +121.55.0.0/18 1; +121.76.0.0/15 1; +121.192.29.0/24 1; +121.192.80.0/20 1; +121.192.96.0/19 1; +121.192.139.0/24 1; +121.192.140.0/22 1; +121.192.144.0/20 1; +121.197.192.0/19 1; +122.0.128.0/17 1; +122.9.64.0/19 1; +122.51.0.0/16 1; +122.72.6.0/23 1; +122.72.60.0/23 1; +122.72.120.0/23 1; +122.72.122.0/24 1; +122.84.0.0/16 1; +122.112.128.0/17 1; +122.144.128.0/17 1; +122.152.192.0/20 1; +122.152.208.0/21 1; +122.152.216.0/22 1; +122.152.220.0/23 1; +123.0.128.0/18 1; +123.49.131.0/24 1; +123.49.132.0/22 1; +123.49.160.0/19 1; +123.49.192.0/18 1; +123.94.11.0/24 1; +123.108.128.0/23 1; +123.108.135.0/24 1; +123.108.136.0/24 1; +123.206.97.0/24 1; +123.206.98.0/23 1; +123.206.100.0/22 1; +123.206.104.0/21 1; +123.206.112.0/20 1; +123.206.128.0/18 1; +123.206.192.0/19 1; +123.206.224.0/20 1; +123.206.240.0/22 1; +123.207.132.0/23 1; +123.207.176.0/20 1; +123.207.192.0/20 1; +123.253.240.0/22 1; +124.14.0.0/18 1; +124.15.192.0/18 1; +124.28.192.0/18 1; +124.70.128.0/17 1; +124.71.128.0/17 1; +124.74.0.0/15 1; +124.76.0.0/14 1; +124.151.0.0/16 1; +124.196.4.0/22 1; +124.196.8.0/21 1; +124.196.16.0/24 1; +125.98.128.0/17 1; +125.215.0.0/18 1; +129.211.0.0/17 1; +129.211.128.0/19 1; +139.9.120.0/21 1; +139.9.160.0/20 1; +139.159.32.0/22 1; +139.183.0.0/16 1; +139.196.0.0/16 1; +139.197.16.0/20 1; +139.197.32.0/19 1; +139.197.64.0/18 1; +139.197.128.0/17 1; +139.198.128.0/18 1; +139.198.192.0/19 1; +139.198.224.0/20 1; +139.198.240.0/21 1; +139.198.248.0/22 1; +139.198.253.0/24 1; +139.198.254.0/24 1; +139.199.48.0/22 1; +139.199.52.0/23 1; +139.199.148.0/22 1; +139.199.238.0/24 1; +139.199.248.0/23 1; +139.217.128.0/17 1; +139.219.128.0/17 1; +139.224.0.0/16 1; +139.226.0.0/15 1; +140.101.208.0/24 1; +140.205.32.0/19 1; +140.205.128.0/17 1; +140.206.0.0/15 1; +140.210.128.0/17 1; +144.36.146.0/23 1; +144.48.88.0/22 1; +144.48.180.0/22 1; +144.48.184.0/22 1; +146.196.56.0/22 1; +150.129.192.0/22 1; +150.158.0.0/16 1; +150.242.112.0/22 1; +150.242.236.0/22 1; +156.107.170.0/24 1; +156.154.63.0/24 1; +157.119.0.0/22 1; +157.133.186.0/23 1; +157.133.192.0/21 1; +157.133.212.0/24 1; +157.133.236.0/24 1; +159.226.128.0/23 1; +159.226.130.0/24 1; +159.226.222.0/24 1; +159.226.255.32/27 1; +160.83.109.0/24 1; +160.83.110.0/24 1; +163.47.4.0/22 1; +163.53.88.0/21 1; +163.53.128.0/22 1; +163.53.164.0/22 1; +167.139.0.0/16 1; +167.220.246.0/23 1; +168.159.144.0/21 1; +168.159.152.0/22 1; +168.159.156.0/23 1; +168.159.158.0/24 1; +172.81.192.0/18 1; +175.24.0.0/16 1; +175.102.0.0/16 1; +175.185.0.0/16 1; +175.186.0.0/15 1; +180.150.160.0/21 1; +180.152.0.0/13 1; +180.160.0.0/12 1; +180.235.64.0/19 1; +182.16.192.0/19 1; +182.254.8.0/21 1; +182.254.40.0/21 1; +182.254.72.0/21 1; +182.254.80.0/20 1; +182.254.96.0/23 1; +182.254.112.0/22 1; +182.254.128.0/19 1; +182.254.208.0/20 1; +182.254.240.0/21 1; +182.254.248.0/24 1; +183.91.128.0/22 1; +183.182.10.0/24 1; +183.192.0.0/14 1; +188.214.89.0/24 1; +188.241.59.0/24 1; +192.55.40.0/24 1; +192.55.68.0/22 1; +192.102.204.0/22 1; +192.124.154.0/24 1; +193.17.120.0/22 1; +193.192.52.0/23 1; +193.239.172.0/23 1; +193.239.246.0/23 1; +194.24.234.0/23 1; +194.61.237.0/24 1; +194.88.134.0/23 1; +194.153.132.0/24 1; +195.85.221.0/24 1; +195.254.140.0/23 1; +198.175.100.0/22 1; +199.65.192.0/21 1; +202.1.112.0/23 1; +202.5.216.0/22 1; +202.14.172.0/22 1; +202.22.248.0/21 1; +202.38.132.0/22 1; +202.46.40.0/24 1; +202.57.212.0/22 1; +202.57.216.0/22 1; +202.58.112.0/22 1; +202.59.212.0/24 1; +202.59.214.0/24 1; +202.67.3.0/31 1; +202.67.3.4/30 1; +202.67.3.8/29 1; +202.67.3.16/28 1; +202.67.3.32/27 1; +202.67.3.64/26 1; +202.67.3.128/25 1; +202.72.112.0/20 1; +202.73.240.0/20 1; +202.76.247.0/24 1; +202.81.176.0/20 1; +202.89.96.0/22 1; +202.89.108.0/22 1; +202.90.96.0/20 1; +202.95.252.0/22 1; +202.96.192.0/18 1; +202.97.4.64/30 1; +202.97.4.68/31 1; +202.97.13.140/31 1; +202.97.13.156/31 1; +202.97.13.164/31 1; +202.97.15.4/30 1; +202.97.15.16/29 1; +202.97.15.36/30 1; +202.97.15.110/31 1; +202.97.15.148/31 1; +202.97.15.152/30 1; +202.97.16.64/28 1; +202.97.18.84/30 1; +202.97.18.144/31 1; +202.97.18.152/31 1; +202.97.19.48/31 1; +202.97.19.52/31 1; +202.97.19.56/31 1; +202.97.19.92/31 1; +202.97.19.96/31 1; +202.97.19.140/31 1; +202.97.19.144/31 1; +202.97.19.160/31 1; +202.97.19.176/31 1; +202.97.19.188/31 1; +202.97.19.240/31 1; +202.97.22.76/31 1; +202.97.22.80/31 1; +202.97.23.84/31 1; +202.97.23.120/30 1; +202.97.23.140/31 1; +202.97.23.144/31 1; +202.97.23.216/31 1; +202.97.23.224/31 1; +202.97.24.128/25 1; +202.97.25.220/31 1; +202.97.25.224/31 1; +202.97.25.228/31 1; +202.97.26.0/31 1; +202.97.26.8/29 1; +202.97.26.16/31 1; +202.97.26.116/30 1; +202.97.26.120/29 1; +202.97.27.0/31 1; +202.97.27.82/31 1; +202.97.27.84/30 1; +202.97.27.88/29 1; +202.97.27.96/28 1; +202.97.28.0/29 1; +202.97.28.8/30 1; +202.97.28.12/31 1; +202.97.29.104/29 1; +202.97.29.112/28 1; +202.97.29.128/27 1; +202.97.29.160/31 1; +202.97.29.168/31 1; +202.97.29.176/31 1; +202.97.30.244/31 1; +202.97.31.0/31 1; +202.97.32.0/31 1; +202.97.32.16/30 1; +202.97.32.22/31 1; +202.97.32.24/30 1; +202.97.32.28/31 1; +202.97.32.49/32 1; +202.97.32.58/31 1; +202.97.32.99/32 1; +202.97.32.100/30 1; +202.97.32.116/31 1; +202.97.32.144/31 1; +202.97.32.148/31 1; +202.97.32.160/27 1; +202.97.32.192/26 1; +202.97.33.0/31 1; +202.97.33.4/30 1; +202.97.33.12/30 1; +202.97.33.16/31 1; +202.97.33.20/31 1; +202.97.33.34/31 1; +202.97.33.36/30 1; +202.97.33.40/29 1; +202.97.33.48/28 1; +202.97.33.64/28 1; +202.97.33.80/29 1; +202.97.33.88/31 1; +202.97.33.94/31 1; +202.97.33.98/31 1; +202.97.33.100/30 1; +202.97.33.104/29 1; +202.97.33.112/28 1; +202.97.33.182/31 1; +202.97.33.188/30 1; +202.97.33.192/27 1; +202.97.33.224/31 1; +202.97.33.232/31 1; +202.97.34.8/30 1; +202.97.34.12/31 1; +202.97.34.28/31 1; +202.97.34.40/31 1; +202.97.34.56/31 1; +202.97.34.96/31 1; +202.97.34.124/30 1; +202.97.34.134/31 1; +202.97.34.136/30 1; +202.97.34.150/31 1; +202.97.34.152/30 1; +202.97.34.178/31 1; +202.97.34.186/31 1; +202.97.34.190/31 1; +202.97.34.196/31 1; +202.97.34.204/31 1; +202.97.34.208/31 1; +202.97.34.220/31 1; +202.97.34.224/31 1; +202.97.34.228/31 1; +202.97.34.232/31 1; +202.97.34.236/31 1; +202.97.34.240/31 1; +202.97.34.244/31 1; +202.97.34.248/31 1; +202.97.34.252/31 1; +202.97.35.0/31 1; +202.97.35.4/30 1; +202.97.35.8/29 1; +202.97.35.16/28 1; +202.97.35.32/27 1; +202.97.35.64/26 1; +202.97.35.128/28 1; +202.97.35.144/30 1; +202.97.36.0/31 1; +202.97.36.56/29 1; +202.97.36.208/31 1; +202.97.37.40/29 1; +202.97.37.56/29 1; +202.97.37.198/31 1; +202.97.38.160/31 1; +202.97.39.0/31 1; +202.97.39.4/31 1; +202.97.39.12/31 1; +202.97.39.20/30 1; +202.97.39.24/30 1; +202.97.39.28/31 1; +202.97.39.36/31 1; +202.97.39.40/30 1; +202.97.39.48/31 1; +202.97.39.52/30 1; +202.97.39.56/29 1; +202.97.39.64/26 1; +202.97.39.128/27 1; +202.97.39.160/29 1; +202.97.39.168/31 1; +202.97.39.172/31 1; +202.97.39.192/31 1; +202.97.39.208/31 1; +202.97.39.220/31 1; +202.97.39.236/31 1; +202.97.39.240/31 1; +202.97.40.32/30 1; +202.97.40.40/31 1; +202.97.40.46/31 1; +202.97.40.56/31 1; +202.97.40.68/31 1; +202.97.40.76/30 1; +202.97.40.80/31 1; +202.97.40.84/31 1; +202.97.40.88/31 1; +202.97.40.100/31 1; +202.97.40.116/31 1; +202.97.40.124/31 1; +202.97.40.128/31 1; +202.97.40.132/31 1; +202.97.40.148/31 1; +202.97.40.172/31 1; +202.97.40.176/31 1; +202.97.40.184/31 1; +202.97.40.192/31 1; +202.97.40.196/30 1; +202.97.40.200/31 1; +202.97.40.216/31 1; +202.97.40.240/31 1; +202.97.40.244/30 1; +202.97.40.248/30 1; +202.97.40.252/31 1; +202.97.41.12/31 1; +202.97.41.16/31 1; +202.97.41.156/31 1; +202.97.43.16/30 1; +202.97.43.20/31 1; +202.97.44.64/30 1; +202.97.44.96/29 1; +202.97.44.128/30 1; +202.97.44.166/31 1; +202.97.44.168/29 1; +202.97.44.176/29 1; +202.97.44.184/30 1; +202.97.44.212/31 1; +202.97.46.252/30 1; +202.97.47.0/31 1; +202.97.47.8/31 1; +202.97.47.138/31 1; +202.97.47.140/30 1; +202.97.47.144/29 1; +202.97.47.174/31 1; +202.97.47.180/31 1; +202.97.47.248/30 1; +202.97.48.12/30 1; +202.97.48.16/29 1; +202.97.48.24/30 1; +202.97.48.44/31 1; +202.97.48.60/30 1; +202.97.48.64/30 1; +202.97.48.134/31 1; +202.97.48.140/30 1; +202.97.48.154/31 1; +202.97.48.158/31 1; +202.97.48.176/29 1; +202.97.48.184/30 1; +202.97.48.188/31 1; +202.97.48.200/30 1; +202.97.48.252/30 1; +202.97.49.32/29 1; +202.97.49.40/30 1; +202.97.49.94/31 1; +202.97.49.96/27 1; +202.97.49.128/29 1; +202.97.49.136/30 1; +202.97.49.140/31 1; +202.97.49.176/31 1; +202.97.49.204/30 1; +202.97.50.0/31 1; +202.97.50.4/31 1; +202.97.50.8/31 1; +202.97.50.32/29 1; +202.97.50.40/30 1; +202.97.50.44/31 1; +202.97.50.52/30 1; +202.97.50.56/29 1; +202.97.50.64/28 1; +202.97.50.80/29 1; +202.97.50.88/31 1; +202.97.50.108/31 1; +202.97.50.112/29 1; +202.97.50.120/30 1; +202.97.50.124/31 1; +202.97.50.130/31 1; +202.97.50.132/30 1; +202.97.50.136/29 1; +202.97.50.144/28 1; +202.97.50.160/27 1; +202.97.50.192/26 1; +202.97.51.0/28 1; +202.97.51.16/29 1; +202.97.51.24/30 1; +202.97.51.28/31 1; +202.97.51.32/31 1; +202.97.51.36/30 1; +202.97.51.40/31 1; +202.97.51.48/29 1; +202.97.51.56/31 1; +202.97.51.60/31 1; +202.97.51.90/31 1; +202.97.51.106/31 1; +202.97.51.110/31 1; +202.97.51.114/31 1; +202.97.51.160/30 1; +202.97.51.176/30 1; +202.97.51.180/31 1; +202.97.51.184/29 1; +202.97.51.192/31 1; +202.97.51.196/30 1; +202.97.51.200/29 1; +202.97.51.208/28 1; +202.97.51.224/28 1; +202.97.51.240/29 1; +202.97.51.248/30 1; +202.97.51.252/31 1; +202.97.54.188/31 1; +202.97.54.200/31 1; +202.97.55.32/31 1; +202.97.55.38/31 1; +202.97.55.40/31 1; +202.97.55.140/31 1; +202.97.55.200/30 1; +202.97.56.34/31 1; +202.97.56.166/31 1; +202.97.58.4/30 1; +202.97.58.8/31 1; +202.97.58.30/31 1; +202.97.58.148/30 1; +202.97.58.156/31 1; +202.97.58.164/30 1; +202.97.58.168/30 1; +202.97.58.172/31 1; +202.97.58.176/31 1; +202.97.58.180/31 1; +202.97.58.184/31 1; +202.97.58.188/30 1; +202.97.58.192/31 1; +202.97.58.196/31 1; +202.97.58.200/31 1; +202.97.58.204/31 1; +202.97.59.4/31 1; +202.97.59.28/31 1; +202.97.59.80/31 1; +202.97.59.88/31 1; +202.97.59.92/31 1; +202.97.60.8/29 1; +202.97.60.58/31 1; +202.97.60.92/30 1; +202.97.60.96/30 1; +202.97.60.120/31 1; +202.97.60.124/31 1; +202.97.60.130/31 1; +202.97.60.176/30 1; +202.97.60.188/30 1; +202.97.60.214/31 1; +202.97.60.216/29 1; +202.97.60.242/31 1; +202.97.60.246/31 1; +202.97.60.250/31 1; +202.97.60.252/30 1; +202.97.61.0/28 1; +202.97.61.16/29 1; +202.97.61.24/30 1; +202.97.61.56/31 1; +202.97.61.60/31 1; +202.97.61.64/26 1; +202.97.61.128/31 1; +202.97.61.164/31 1; +202.97.61.168/30 1; +202.97.61.184/31 1; +202.97.61.192/30 1; +202.97.61.204/31 1; +202.97.62.60/30 1; +202.97.62.68/31 1; +202.97.62.72/29 1; +202.97.63.0/29 1; +202.97.63.16/31 1; +202.97.63.20/30 1; +202.97.63.24/29 1; +202.97.63.36/31 1; +202.97.63.40/30 1; +202.97.63.52/31 1; +202.97.63.64/30 1; +202.97.63.76/31 1; +202.97.63.92/31 1; +202.97.63.112/30 1; +202.97.63.116/31 1; +202.97.63.128/28 1; +202.97.63.144/30 1; +202.97.63.150/31 1; +202.97.63.152/30 1; +202.97.63.162/31 1; +202.97.63.164/31 1; +202.97.65.184/31 1; +202.97.66.48/30 1; +202.97.66.52/31 1; +202.97.66.60/31 1; +202.97.66.144/31 1; +202.97.66.148/31 1; +202.97.66.172/31 1; +202.97.66.176/31 1; +202.97.66.180/31 1; +202.97.66.196/31 1; +202.97.66.200/31 1; +202.97.66.204/31 1; +202.97.67.66/31 1; +202.97.67.96/29 1; +202.97.67.104/31 1; +202.97.67.108/31 1; +202.97.68.40/31 1; +202.97.68.48/31 1; +202.97.68.128/31 1; +202.97.68.132/31 1; +202.97.68.136/30 1; +202.97.68.140/31 1; +202.97.70.144/31 1; +202.97.70.160/31 1; +202.97.70.164/31 1; +202.97.70.168/31 1; +202.97.70.208/31 1; +202.97.70.220/31 1; +202.97.71.192/31 1; +202.97.71.196/31 1; +202.97.72.104/30 1; +202.97.73.0/31 1; +202.97.73.4/31 1; +202.97.73.12/31 1; +202.97.73.104/31 1; +202.97.73.108/31 1; +202.97.73.122/31 1; +202.97.73.184/31 1; +202.97.73.188/31 1; +202.97.73.192/31 1; +202.97.73.216/31 1; +202.97.74.0/29 1; +202.97.74.32/29 1; +202.97.74.120/31 1; +202.97.74.128/30 1; +202.97.74.132/31 1; +202.97.74.140/30 1; +202.97.74.144/29 1; +202.97.74.152/30 1; +202.97.74.156/31 1; +202.97.75.128/31 1; +202.97.75.132/31 1; +202.97.75.136/31 1; +202.97.75.140/31 1; +202.97.79.92/31 1; +202.97.79.132/31 1; +202.97.80.4/30 1; +202.97.80.8/31 1; +202.97.80.16/31 1; +202.97.81.116/31 1; +202.97.82.0/31 1; +202.97.82.4/30 1; +202.97.82.8/30 1; +202.97.82.12/31 1; +202.97.82.16/31 1; +202.97.82.20/31 1; +202.97.82.28/31 1; +202.97.82.48/31 1; +202.97.82.56/29 1; +202.97.82.64/31 1; +202.97.82.68/31 1; +202.97.82.72/31 1; +202.97.82.76/31 1; +202.97.82.80/30 1; +202.97.82.84/31 1; +202.97.82.92/30 1; +202.97.82.96/31 1; +202.97.82.108/31 1; +202.97.82.128/31 1; +202.97.82.132/30 1; +202.97.82.136/29 1; +202.97.82.144/28 1; +202.97.82.160/30 1; +202.97.82.164/31 1; +202.97.82.220/31 1; +202.97.83.62/31 1; +202.97.83.64/30 1; +202.97.84.0/31 1; +202.97.84.4/31 1; +202.97.84.16/31 1; +202.97.84.80/29 1; +202.97.84.88/30 1; +202.97.84.92/31 1; +202.97.87.96/27 1; +202.97.87.128/27 1; +202.97.88.96/28 1; +202.97.89.134/31 1; +202.97.89.140/31 1; +202.97.89.144/31 1; +202.97.89.152/31 1; +202.97.89.196/31 1; +202.97.90.28/30 1; +202.97.90.32/30 1; +202.97.90.40/31 1; +202.97.90.52/30 1; +202.97.90.56/30 1; +202.97.90.62/31 1; +202.97.90.180/31 1; +202.97.90.188/31 1; +202.97.91.0/26 1; +202.97.91.64/28 1; +202.97.91.100/31 1; +202.97.91.104/30 1; +202.97.91.108/31 1; +202.97.91.124/31 1; +202.97.92.0/31 1; +202.97.92.4/31 1; +202.97.92.20/30 1; +202.97.92.24/29 1; +202.97.92.32/31 1; +202.97.92.40/31 1; +202.97.92.48/31 1; +202.97.92.96/29 1; +202.97.92.106/31 1; +202.97.92.108/30 1; +202.101.0.0/18 1; +202.109.0.0/17 1; +202.112.26.0/23 1; +202.112.28.0/24 1; +202.112.53.88/30 1; +202.112.53.136/30 1; +202.112.53.200/30 1; +202.120.0.0/16 1; +202.121.0.0/17 1; +202.121.128.0/18 1; +202.121.192.0/21 1; +202.121.208.0/20 1; +202.121.224.0/19 1; +202.122.0.0/21 1; +202.122.112.0/21 1; +202.127.0.0/21 1; +202.127.16.0/20 1; +202.127.144.0/23 1; +202.127.236.0/24 1; +202.127.242.0/24 1; +202.127.248.0/24 1; +202.127.250.0/24 1; +202.130.248.0/21 1; +202.131.16.0/21 1; +202.136.208.0/20 1; +202.136.248.0/22 1; +202.140.140.0/22 1; +202.158.160.0/19 1; +202.170.216.0/21 1; +202.174.124.0/24 1; +202.174.126.0/23 1; +202.181.8.0/22 1; +203.13.145.0/24 1; +203.19.147.0/24 1; +203.20.44.0/24 1; +203.62.139.0/24 1; +203.76.208.0/21 1; +203.76.216.0/22 1; +203.80.129.0/24 1; +203.83.12.0/22 1; +203.86.250.0/24 1; +203.89.144.0/24 1; +203.90.12.0/22 1; +203.92.6.0/24 1; +203.94.0.0/19 1; +203.95.0.0/21 1; +203.95.128.0/18 1; +203.98.216.0/22 1; +203.100.58.0/24 1; +203.107.1.0/24 1; +203.110.160.0/19 1; +203.123.58.0/24 1; +203.142.12.0/23 1; +203.148.23.0/24 1; +203.156.192.0/18 1; +203.161.183.0/24 1; +203.166.160.0/19 1; +203.167.28.0/22 1; +203.171.208.0/24 1; +203.176.168.0/21 1; +203.184.80.0/20 1; +203.208.16.0/24 1; +203.208.32.0/19 1; +203.209.232.0/21 1; +203.212.80.0/23 1; +207.89.20.0/24 1; +210.5.1.0/24 1; +210.5.2.0/29 1; +210.5.2.8/31 1; +210.5.2.10/32 1; +210.5.8.0/22 1; +210.5.12.0/24 1; +210.5.15.0/24 1; +210.5.16.0/24 1; +210.5.18.0/23 1; +210.5.20.0/23 1; +210.5.22.0/24 1; +210.5.24.0/24 1; +210.5.26.0/23 1; +210.5.28.0/22 1; +210.5.56.4/30 1; +210.5.144.0/20 1; +210.13.64.0/18 1; +210.14.64.0/19 1; +210.15.12.0/24 1; +210.15.14.0/24 1; +210.15.32.0/24 1; +210.15.38.0/24 1; +210.15.51.0/24 1; +210.16.128.0/21 1; +210.16.136.0/22 1; +210.16.156.0/22 1; +210.16.160.0/19 1; +210.22.45.0/24 1; +210.22.64.0/18 1; +210.22.128.0/18 1; +210.22.196.0/25 1; +210.22.196.128/26 1; +210.22.197.192/26 1; +210.22.198.0/24 1; +210.22.202.0/23 1; +210.22.204.0/23 1; +210.22.212.0/23 1; +210.22.214.0/24 1; +210.22.220.0/22 1; +210.22.224.0/19 1; +210.35.64.0/20 1; +210.35.80.0/22 1; +210.35.88.0/21 1; +210.35.96.0/20 1; +210.35.112.0/21 1; +210.35.124.0/22 1; +210.51.20.0/22 1; +210.51.24.0/21 1; +210.51.32.0/19 1; +210.51.238.0/24 1; +210.51.250.0/25 1; +210.51.251.0/25 1; +210.51.251.128/26 1; +210.51.251.192/27 1; +210.51.251.224/28 1; +210.52.128.18/31 1; +210.52.128.20/30 1; +210.52.128.24/32 1; +210.52.192.0/19 1; +210.52.224.0/21 1; +210.52.232.0/23 1; +210.52.234.192/26 1; +210.52.235.0/24 1; +210.52.247.0/24 1; +210.52.251.0/24 1; +210.52.255.0/24 1; +210.53.36.0/25 1; +210.53.36.128/26 1; +210.53.36.192/28 1; +210.53.36.208/29 1; +210.53.36.216/30 1; +210.53.66.0/24 1; +210.53.128.0/24 1; +210.53.131.0/25 1; +210.53.131.128/26 1; +210.53.131.192/27 1; +210.53.131.224/28 1; +210.53.131.240/29 1; +210.53.131.248/30 1; +210.53.131.252/31 1; +210.72.8.0/23 1; +210.72.70.0/23 1; +210.73.48.0/22 1; +210.73.192.0/20 1; +210.74.224.0/19 1; +210.75.64.0/20 1; +210.75.80.0/23 1; +210.75.86.0/24 1; +210.75.88.0/23 1; +210.78.0.0/21 1; +210.78.8.0/23 1; +210.78.11.0/24 1; +210.78.12.0/22 1; +210.78.16.0/22 1; +210.78.20.0/23 1; +210.78.22.0/24 1; +210.78.26.0/24 1; +210.192.104.0/21 1; +211.80.0.0/21 1; +211.80.8.0/23 1; +211.80.10.0/24 1; +211.80.16.0/21 1; +211.80.24.0/22 1; +211.80.32.0/19 1; +211.80.64.0/18 1; +211.95.0.0/17 1; +211.98.33.0/24 1; +211.98.34.0/23 1; +211.98.48.0/26 1; +211.98.54.0/24 1; +211.98.70.223/32 1; +211.98.70.224/29 1; +211.98.71.0/26 1; +211.98.71.64/28 1; +211.98.71.240/28 1; +211.98.170.0/28 1; +211.98.207.16/28 1; +211.100.128.0/18 1; +211.102.0.0/19 1; +211.136.1.116/31 1; +211.136.1.160/29 1; +211.136.1.168/30 1; +211.136.18.0/24 1; +211.136.23.192/26 1; +211.136.96.0/19 1; +211.136.128.0/18 1; +211.144.64.0/18 1; +211.144.192.0/19 1; +211.147.64.0/19 1; +211.148.0.0/18 1; +211.152.32.0/19 1; +211.152.134.0/23 1; +211.152.136.0/21 1; +211.152.150.0/23 1; +211.152.157.0/24 1; +211.152.158.0/23 1; +211.154.48.0/24 1; +211.154.52.0/22 1; +211.154.64.0/19 1; +211.155.64.0/23 1; +211.156.0.0/19 1; +211.157.16.0/22 1; +211.159.96.0/19 1; +211.159.134.0/23 1; +211.159.200.0/21 1; +211.159.208.0/20 1; +211.159.224.0/20 1; +211.159.240.0/21 1; +211.159.248.0/22 1; +211.160.160.0/19 1; +211.161.96.0/20 1; +211.161.192.0/19 1; +211.161.224.0/21 1; +211.161.232.0/23 1; +211.161.234.0/24 1; +211.161.236.0/22 1; +211.161.240.0/20 1; +211.165.1.0/24 1; +211.165.2.0/24 1; +211.167.96.0/19 1; +211.167.128.0/19 1; +211.167.192.0/19 1; +212.64.0.0/17 1; +212.129.128.0/17 1; +218.1.0.0/16 1; +218.30.4.0/22 1; +218.30.17.0/24 1; +218.30.32.0/20 1; +218.30.48.0/21 1; +218.30.132.0/24 1; +218.30.222.0/24 1; +218.30.253.0/24 1; +218.30.255.0/24 1; +218.78.0.0/15 1; +218.80.0.0/14 1; +218.96.0.0/17 1; +218.96.128.0/18 1; +218.96.192.0/19 1; +218.96.224.0/20 1; +218.96.240.0/21 1; +218.96.248.0/22 1; +218.96.252.0/23 1; +218.96.254.0/24 1; +218.97.2.0/23 1; +218.97.4.0/22 1; +218.97.8.0/21 1; +218.97.16.0/20 1; +218.97.32.0/19 1; +218.97.64.0/18 1; +218.193.40.0/21 1; +218.193.128.0/18 1; +218.202.224.0/19 1; +218.242.0.0/16 1; +218.245.64.0/21 1; +218.245.72.0/22 1; +219.83.128.0/19 1; +219.158.5.72/30 1; +219.158.7.230/31 1; +219.158.7.232/30 1; +219.158.8.224/29 1; +219.158.8.242/31 1; +219.158.8.248/30 1; +219.158.9.10/31 1; +219.158.9.96/30 1; +219.158.9.128/31 1; +219.158.9.132/31 1; +219.158.9.180/31 1; +219.158.9.192/30 1; +219.158.9.208/30 1; +219.158.10.12/31 1; +219.158.10.20/31 1; +219.158.10.32/31 1; +219.158.10.236/31 1; +219.158.10.240/31 1; +219.158.11.0/31 1; +219.158.11.210/31 1; +219.158.12.28/31 1; +219.158.12.32/31 1; +219.158.12.36/31 1; +219.158.12.64/31 1; +219.158.12.76/31 1; +219.158.12.88/31 1; +219.158.12.96/31 1; +219.158.12.160/31 1; +219.158.12.232/31 1; +219.158.12.236/31 1; +219.158.12.240/31 1; +219.158.12.244/31 1; +219.158.13.180/30 1; +219.158.14.112/29 1; +219.158.14.132/31 1; +219.158.14.144/31 1; +219.158.14.152/31 1; +219.158.14.168/31 1; +219.158.14.172/31 1; +219.158.14.240/31 1; +219.158.14.244/31 1; +219.158.15.68/31 1; +219.158.15.72/31 1; +219.158.15.104/31 1; +219.158.15.108/31 1; +219.158.15.112/31 1; +219.158.15.120/31 1; +219.158.15.148/30 1; +219.158.15.168/31 1; +219.158.15.204/31 1; +219.158.16.140/30 1; +219.158.16.144/28 1; +219.158.17.16/31 1; +219.158.17.24/31 1; +219.158.17.28/31 1; +219.158.17.56/30 1; +219.158.17.92/31 1; +219.158.17.108/31 1; +219.158.17.132/31 1; +219.158.17.136/31 1; +219.158.17.140/31 1; +219.158.17.160/31 1; +219.158.17.164/31 1; +219.158.17.168/31 1; +219.158.17.172/31 1; +219.158.17.216/31 1; +219.158.17.220/31 1; +219.158.18.0/31 1; +219.158.18.4/31 1; +219.158.18.20/30 1; +219.158.18.24/29 1; +219.158.18.32/27 1; +219.158.18.64/27 1; +219.158.18.96/28 1; +219.158.18.112/31 1; +219.158.18.128/31 1; +219.158.18.132/31 1; +219.158.18.140/31 1; +219.158.18.148/31 1; +219.158.18.240/31 1; +219.158.18.252/30 1; +219.158.19.0/30 1; +219.158.19.4/31 1; +219.158.19.8/31 1; +219.158.19.20/30 1; +219.158.19.68/30 1; +219.158.19.72/29 1; +219.158.19.80/29 1; +219.158.19.88/30 1; +219.158.19.248/31 1; +219.158.19.252/31 1; +219.158.20.194/31 1; +219.158.20.224/31 1; +219.158.21.12/30 1; +219.158.21.24/31 1; +219.158.21.28/31 1; +219.158.21.32/31 1; +219.158.21.124/31 1; +219.158.21.136/31 1; +219.158.21.234/31 1; +219.158.21.252/30 1; +219.158.22.0/27 1; +219.158.22.44/31 1; +219.158.22.96/31 1; +219.158.22.104/31 1; +219.158.22.124/31 1; +219.158.22.128/31 1; +219.158.22.142/31 1; +219.158.23.32/31 1; +219.158.23.36/31 1; +219.158.23.40/31 1; +219.158.23.44/31 1; +219.158.23.48/31 1; +219.158.23.68/31 1; +219.158.23.80/31 1; +219.158.23.84/31 1; +219.158.23.108/30 1; +219.158.23.112/29 1; +219.158.23.120/31 1; +219.158.23.172/31 1; +219.158.23.176/31 1; +219.158.23.184/31 1; +219.158.23.188/31 1; +219.158.24.20/30 1; +219.158.24.24/31 1; +219.158.24.76/31 1; +219.158.24.80/31 1; +219.158.24.84/31 1; +219.158.34.236/30 1; +219.158.34.240/30 1; +219.158.39.72/29 1; +219.158.39.80/28 1; +219.158.39.96/30 1; +219.158.39.160/28 1; +219.158.39.176/31 1; +219.158.39.192/31 1; +219.158.40.46/31 1; +219.158.40.48/30 1; +219.158.40.110/31 1; +219.158.40.116/30 1; +219.158.40.120/30 1; +219.158.40.146/31 1; +219.158.40.154/31 1; +219.158.40.162/31 1; +219.158.40.172/30 1; +219.158.40.178/31 1; +219.158.40.180/30 1; +219.158.40.188/30 1; +219.158.40.198/31 1; +219.158.40.200/30 1; +219.158.40.230/31 1; +219.158.40.252/30 1; +219.158.42.130/31 1; +219.158.42.134/31 1; +219.158.43.144/31 1; +219.158.43.214/31 1; +219.158.43.216/29 1; +219.158.45.46/31 1; +219.158.45.168/30 1; +219.158.96.92/30 1; +219.158.96.96/29 1; +219.158.96.104/31 1; +219.158.96.108/31 1; +219.158.96.124/31 1; +219.158.96.148/31 1; +219.158.96.180/30 1; +219.158.96.184/30 1; +219.158.96.188/31 1; +219.158.97.16/31 1; +219.158.97.44/30 1; +219.158.97.48/28 1; +219.158.97.64/27 1; +219.158.97.96/28 1; +219.158.97.112/29 1; +219.158.97.120/31 1; +219.158.97.132/31 1; +219.158.97.140/31 1; +219.158.97.176/31 1; +219.158.97.180/30 1; +219.158.97.184/31 1; +219.158.98.40/31 1; +219.158.98.58/31 1; +219.158.98.62/31 1; +219.158.98.120/31 1; +219.158.98.124/31 1; +219.158.98.128/31 1; +219.158.98.172/31 1; +219.158.98.220/30 1; +219.158.98.228/30 1; +219.158.98.254/31 1; +219.158.99.4/31 1; +219.158.99.84/31 1; +219.158.99.92/30 1; +219.158.99.96/29 1; +219.158.99.104/31 1; +219.158.99.108/31 1; +219.158.99.136/31 1; +219.158.99.140/31 1; +219.158.99.152/31 1; +219.158.99.160/31 1; +219.158.99.164/30 1; +219.158.99.168/31 1; +219.158.99.184/31 1; +219.158.99.188/31 1; +219.158.99.192/31 1; +219.158.99.200/31 1; +219.158.100.76/31 1; +219.158.100.80/28 1; +219.158.100.96/27 1; +219.158.100.128/26 1; +219.158.100.192/28 1; +219.158.100.208/30 1; +219.158.100.212/31 1; +219.158.101.0/27 1; +219.158.101.36/31 1; +219.158.101.152/31 1; +219.158.101.156/30 1; +219.158.101.160/31 1; +219.158.102.4/31 1; +219.158.102.108/31 1; +219.158.102.132/31 1; +219.158.104.96/31 1; +219.158.104.100/31 1; +219.158.104.104/31 1; +219.158.104.108/31 1; +219.158.104.124/31 1; +219.158.104.128/31 1; +219.158.106.4/31 1; +219.158.106.24/31 1; +219.158.106.28/31 1; +219.158.106.32/30 1; +219.158.106.36/31 1; +219.158.106.52/31 1; +219.158.107.28/31 1; +219.158.108.40/31 1; +219.158.108.44/31 1; +219.158.108.68/31 1; +219.158.108.112/31 1; +219.158.108.116/31 1; +219.158.108.120/31 1; +219.158.108.136/31 1; +219.158.109.168/29 1; +219.158.109.232/31 1; +219.158.110.0/31 1; +219.158.110.168/31 1; +219.158.110.220/31 1; +219.158.110.236/31 1; +219.158.112.52/31 1; +219.158.112.60/30 1; +219.158.112.64/29 1; +219.158.112.72/30 1; +219.158.112.76/31 1; +219.158.112.84/31 1; +219.158.112.116/31 1; +219.158.112.120/31 1; +219.158.112.144/31 1; +219.158.112.212/31 1; +219.158.112.220/30 1; +219.158.112.224/30 1; +219.158.113.48/31 1; +219.158.113.100/30 1; +219.158.113.104/29 1; +219.158.113.112/28 1; +219.158.113.128/26 1; +219.158.113.192/29 1; +219.158.116.212/31 1; +219.158.116.232/31 1; +219.158.116.248/30 1; +219.158.116.252/31 1; +219.220.64.0/20 1; +219.220.128.0/17 1; +219.224.100.168/30 1; +219.228.0.0/17 1; +219.228.128.0/18 1; +219.233.0.0/16 1; +219.235.0.0/21 1; +219.235.8.0/22 1; +219.243.249.0/24 1; +220.112.64.0/18 1; +220.115.248.0/21 1; +220.155.0.0/18 1; +220.182.64.0/18 1; +220.182.128.0/18 1; +220.182.192.0/19 1; +220.182.224.0/20 1; +220.182.241.0/24 1; +220.182.242.0/23 1; +220.182.244.0/22 1; +220.182.248.0/21 1; +220.183.0.0/16 1; +220.196.0.0/16 1; +220.205.8.0/21 1; +220.205.16.0/20 1; +220.206.196.0/23 1; +220.206.198.0/24 1; +220.207.8.0/21 1; +220.207.16.0/21 1; +220.207.148.0/22 1; +220.207.234.0/23 1; +220.207.236.0/22 1; +220.207.246.0/23 1; +220.207.248.0/22 1; +220.232.64.0/18 1; +220.234.0.0/16 1; +220.242.50.0/24 1; +220.242.133.0/24 1; +220.242.143.0/24 1; +220.242.144.0/24 1; +220.242.147.0/24 1; +220.242.148.0/24 1; +220.242.153.0/24 1; +220.242.171.0/24 1; +220.242.194.0/24 1; +220.248.0.0/17 1; +221.130.176.0/20 1; +221.130.192.0/20 1; +221.133.224.0/19 1; +221.137.0.0/16 1; +221.176.11.0/27 1; +221.176.11.32/28 1; +221.176.11.48/30 1; +221.176.11.52/31 1; +221.176.15.2/31 1; +221.176.15.160/28 1; +221.176.15.206/31 1; +221.176.16.0/31 1; +221.176.16.38/31 1; +221.176.16.40/29 1; +221.176.16.48/30 1; +221.176.16.228/31 1; +221.176.16.232/31 1; +221.176.16.254/31 1; +221.176.17.12/31 1; +221.176.17.16/28 1; +221.176.17.32/27 1; +221.176.17.64/26 1; +221.176.17.128/27 1; +221.176.17.160/29 1; +221.176.17.176/30 1; +221.176.17.186/31 1; +221.176.17.188/30 1; +221.176.17.192/27 1; +221.176.17.224/28 1; +221.176.17.240/29 1; +221.176.18.42/31 1; +221.176.18.194/31 1; +221.176.18.204/30 1; +221.176.18.208/30 1; +221.176.18.212/31 1; +221.176.19.48/30 1; +221.176.19.154/31 1; +221.176.19.158/31 1; +221.176.19.182/31 1; +221.176.19.222/31 1; +221.176.20.70/31 1; +221.176.20.90/31 1; +221.176.20.120/31 1; +221.176.20.132/31 1; +221.176.20.182/31 1; +221.176.20.250/31 1; +221.176.21.6/31 1; +221.176.22.0/30 1; +221.176.22.4/31 1; +221.176.22.8/29 1; +221.176.22.16/28 1; +221.176.22.32/29 1; +221.176.22.66/31 1; +221.176.22.88/30 1; +221.176.22.140/30 1; +221.176.22.144/30 1; +221.176.22.168/31 1; +221.176.22.172/31 1; +221.176.22.178/31 1; +221.176.22.204/30 1; +221.176.23.16/30 1; +221.176.23.46/31 1; +221.176.23.48/30 1; +221.176.23.56/30 1; +221.176.23.96/30 1; +221.176.24.246/31 1; +221.176.24.248/29 1; +221.176.27.140/31 1; +221.176.27.170/31 1; +221.176.27.240/30 1; +221.176.27.244/31 1; +221.176.50.0/24 1; +221.177.40.0/21 1; +221.181.64.0/18 1; +221.183.11.118/31 1; +221.183.11.120/30 1; +221.183.11.166/31 1; +221.183.11.218/31 1; +221.183.12.160/28 1; +221.183.13.124/31 1; +221.183.13.132/31 1; +221.183.13.144/28 1; +221.183.13.160/29 1; +221.183.14.188/31 1; +221.183.14.192/31 1; +221.183.15.20/30 1; +221.183.15.24/29 1; +221.183.15.32/30 1; +221.183.15.60/30 1; +221.183.15.64/30 1; +221.183.19.212/30 1; +221.183.19.216/30 1; +221.183.21.76/30 1; +221.183.21.80/31 1; +221.183.21.84/31 1; +221.183.21.108/31 1; +221.183.21.140/30 1; +221.183.21.188/31 1; +221.183.21.192/29 1; +221.183.21.200/31 1; +221.183.21.204/30 1; +221.183.21.208/28 1; +221.183.22.8/31 1; +221.183.22.50/31 1; +221.183.22.52/30 1; +221.183.22.56/31 1; +221.183.22.76/31 1; +221.183.22.112/31 1; +221.183.22.240/29 1; +221.183.22.248/30 1; +221.183.23.8/31 1; +221.183.25.8/31 1; +221.183.25.26/31 1; +221.183.25.188/30 1; +221.183.25.192/30 1; +221.183.26.40/29 1; +221.183.26.76/30 1; +221.183.26.80/30 1; +221.183.27.152/29 1; +221.183.28.32/30 1; +221.183.28.36/31 1; +221.183.39.128/28 1; +221.183.39.240/31 1; +221.183.40.44/31 1; +221.183.40.48/31 1; +221.183.40.52/30 1; +221.183.40.56/29 1; +221.183.40.64/28 1; +221.183.40.80/29 1; +221.183.40.88/31 1; +221.183.40.92/30 1; +221.183.40.96/31 1; +221.183.40.100/31 1; +221.183.40.104/31 1; +221.183.40.108/31 1; +221.183.40.112/31 1; +221.183.40.116/30 1; +221.183.40.120/29 1; +221.183.40.128/28 1; +221.183.40.144/29 1; +221.183.40.152/30 1; +221.183.40.156/31 1; +221.183.40.160/31 1; +221.183.40.164/31 1; +221.183.40.168/31 1; +221.183.40.172/31 1; +221.183.40.176/31 1; +221.183.40.180/30 1; +221.183.40.184/30 1; +221.183.40.188/31 1; +221.183.40.192/31 1; +221.183.40.196/31 1; +221.183.40.200/31 1; +221.183.49.176/28 1; +221.239.128.0/17 1; +222.44.0.0/16 1; +222.64.0.0/13 1; +222.72.0.0/15 1; +222.126.159.248/29 1; +222.126.160.0/21 1; +222.126.168.0/22 1; +222.126.238.0/23 1; +222.126.242.0/23 1; +222.204.128.0/17 1; +222.205.128.0/19 1; +223.103.5.0/24 1; +223.104.5.0/24 1; +223.104.210.0/23 1; +223.104.212.0/23 1; +223.166.0.0/15 1; +223.248.0.0/14 1; +223.255.236.0/22 1; +2001:250:600f::/48 1; +2001:420:94::/46 1; +2001:420:98::/45 1; +2001:420:a0::/43 1; +2001:420:c0::/42 1; +2001:420:100::/40 1; +2001:420:200::/39 1; +2001:420:400::/38 1; +2001:420:800::/37 1; +2001:420:1000::/40 1; +2001:470:2815::/48 1; +2001:470:2816::/47 1; +2001:470:2818::/48 1; +2001:470:385e::/47 1; +2001:470:48ce:8000::/49 1; +2001:470:48cf::/48 1; +2001:470:48d0::/44 1; +2001:470:48e0::/43 1; +2001:470:4900::/40 1; +2001:470:4a00::/41 1; +2001:470:4a80::/45 1; +2001:470:4a88::/46 1; +2001:470:4a8c::/48 1; +2001:470:5856::/47 1; +2001:470:5858::/48 1; +2001:470:7154::/46 1; +2001:470:ecf2::/48 1; +2001:470:ed91::/48 1; +2001:470:ed92::/47 1; +2001:470:ee4f::/48 1; +2001:470:ee50::/44 1; +2001:470:ee60::/45 1; +2001:470:ee68::/46 1; +2001:470:ee6c::/48 1; +2001:470:ef8d::/48 1; +2001:470:ef8e::/47 1; +2001:470:f190::/47 1; +2001:df1:c80::/48 1; +2001:df1:2b40::/48 1; +2001:df2:5780::/48 1; +2001:df4:4d80::/48 1; +2001:df6:5d00::/48 1; +2400:32c0::/32 1; +2400:3a00::/32 1; +2400:5080::/32 1; +2400:5c80::/32 1; +2400:5f60::/32 1; +2400:61c0::/32 1; +2400:6600::/32 1; +2400:6a00::/32 1; +2400:79c0::/32 1; +2400:8200::/31 1; +2400:8e60::/32 1; +2400:93e0::/32 1; +2400:95e0::/32 1; +2400:9600::/32 1; +2400:98c0::/32 1; +2400:a040::/32 1; +2400:ba00::/32 1; +2400:d440::/32 1; +2400:ed60::/32 1; +2401:800::/32 1; +2401:1c60::/32 1; +2401:4b00::/32 1; +2401:70e0::/32 1; +2401:78e0::/32 1; +2401:82c0::/32 1; +2401:8da0::/32 1; +2401:9e20::/32 1; +2401:b600::/32 1; +2401:f7c0::/32 1; +2401:fa80::/32 1; +2401:fb80::/32 1; +2402:e00::/32 1; +2402:fc0::/32 1; +2402:1440::/32 1; +2402:4a00::/32 1; +2402:5180::/32 1; +2402:6f40::/32 1; +2402:7080::/32 1; +2402:9240::/32 1; +2402:e540::/32 1; +2402:f740:2000::/35 1; +2402:f740:4000::/34 1; +2402:f740:8000::/33 1; +2402:f741::/32 1; +2402:f742::/31 1; +2402:f744::/30 1; +2402:f748::/29 1; +2402:f750::/28 1; +2402:f760::/27 1; +2403:7c0::/32 1; +2403:980::/32 1; +2403:fc0:400::/38 1; +2403:fc0:c00::/38 1; +2403:fc0:1000::/36 1; +2403:fc0:2000::/35 1; +2403:fc0:4000::/34 1; +2403:fc0:8000::/33 1; +2403:1b80::/32 1; +2403:2040::/32 1; +2403:2280::/32 1; +2403:2b40::/32 1; +2403:3040::/32 1; +2403:3f80::/32 1; +2403:5980::/32 1; +2403:6280::/32 1; +2403:6780::/32 1; +2403:6d40::/32 1; +2403:7700::/32 1; +2403:c440::/32 1; +2403:d400::/32 1; +2404:280::/32 1; +2404:480::/32 1; +2404:3740::/32 1; +2404:41c0::/32 1; +2404:5d00::/32 1; +2404:7600::/32 1; +2404:7940:200::/39 1; +2404:7940:400::/38 1; +2404:7940:800::/37 1; +2404:7940:1000::/36 1; +2404:7940:2000::/35 1; +2404:7940:4000::/35 1; +2404:7940:6000::/36 1; +2404:7940:7000::/40 1; +2404:a240::/32 1; +2404:c940::/32 1; +2404:d040::/32 1; +2404:f7c0::/32 1; +2405:6c0::/32 1; +2405:2bc0::/32 1; +2405:3140::/32 1; +2405:31c0::/32 1; +2405:6200::/32 1; +2405:7240::/32 1; +2405:78c0::/32 1; +2405:7d40::/32 1; +2405:b7c0::/32 1; +2405:c500::/32 1; +2405:d900::/32 1; +2405:e040::/32 1; +2405:ed40::/32 1; +2405:f580::/32 1; +2406:140:400::/38 1; +2406:140:c00::/38 1; +2406:140:1000::/36 1; +2406:140:2000::/35 1; +2406:140:4000::/34 1; +2406:140:8000::/33 1; +2406:840:44::/47 1; +2406:840:180::/44 1; +2406:840:9801::/48 1; +2406:840:9802::/47 1; +2406:840:9804::/46 1; +2406:840:9808::/45 1; +2406:840:9810::/44 1; +2406:840:e57b::/48 1; +2406:840:e57c::/46 1; +2406:1580::/32 1; +2406:1680::/32 1; +2406:1780::/32 1; +2406:1980::/32 1; +2406:1a80::/32 1; +2406:1b80::/32 1; +2406:1c80::/32 1; +2406:1d80::/32 1; +2406:1e80::/32 1; +2406:1f80::/32 1; +2406:2080::/32 1; +2406:2780::/32 1; +2406:2880::/32 1; +2406:39c0::/32 1; +2406:50c0::/32 1; +2406:5980::/32 1; +2406:5d80::/32 1; +2406:5e80::/32 1; +2406:5f80::/32 1; +2406:6080::/32 1; +2406:6180::/32 1; +2406:7380::/32 1; +2406:7f80::/32 1; +2406:7fc0::/32 1; +2406:8480::/32 1; +2406:8580::/32 1; +2406:8c80::/32 1; +2406:8d80::/32 1; +2406:8e80::/32 1; +2406:8f80::/32 1; +2406:9180:100::/40 1; +2406:9180:200::/39 1; +2406:9180:400::/38 1; +2406:9180:800::/37 1; +2406:9180:1000::/36 1; +2406:9180:2000::/35 1; +2406:9180:4000::/34 1; +2406:9180:8000::/33 1; +2406:9181::/32 1; +2406:9182::/31 1; +2406:9184::/30 1; +2406:9188::/29 1; +2406:9190::/28 1; +2406:91a0::/27 1; +2406:9200::/32 1; +2406:94c0::/32 1; +2406:bd40::/32 1; +2406:d140::/32 1; +2406:dd00::/32 1; +2406:e500::/38 1; +2406:e500:400::/40 1; +2406:e500:2100::/40 1; +2406:e500:2300::/40 1; +2406:e500:2400::/40 1; +2406:e500:4100::/40 1; +2406:e500:4200::/39 1; +2406:e500:4400::/38 1; +2406:e500:4a00::/39 1; +2406:e500:4c00::/38 1; +2406:e500:5100::/40 1; +2406:e500:5300::/40 1; +2406:e500:5500::/40 1; +2406:e500:5600::/39 1; +2406:e500:5800::/37 1; +2406:e500:6000::/35 1; +2406:e500:8000::/33 1; +2406:f280::/32 1; +2406:f300::/32 1; +2407:1900::/32 1; +2407:3340::/32 1; +2407:4440::/32 1; +2407:4880::/32 1; +2407:9b40::/32 1; +2407:a040::/32 1; +2407:c080:800::/37 1; +2407:dfc0::/32 1; +2408:4002::/32 1; +2408:4007::/32 1; +2408:400d:8100::/40 1; +2408:400d:8200::/39 1; +2408:400d:8400::/38 1; +2408:400d:8800::/37 1; +2408:400d:9000::/36 1; +2408:400d:a000::/35 1; +2408:400d:c000::/34 1; +2408:400e::/31 1; +2408:4016::/31 1; +2408:4018::/29 1; +2408:4020::/27 1; +2408:4040::/26 1; +2408:4080::/25 1; +2408:4100::/24 1; +2408:4200::/23 1; +2408:840d:d00::/40 1; +2408:840d:1e00::/40 1; +2408:840d:6a00::/40 1; +2408:840d:6e00::/40 1; +2408:840d:8400::/40 1; +2408:840d:9500::/40 1; +2408:840d:ad00::/40 1; +2408:840d:c700::/40 1; +2408:843c:5600::/40 1; +2408:870c:4000::/40 1; +2409:801e::/31 1; +2409:8087:1e00::/39 1; +2409:811e::/31 1; +2409:821e::/31 1; +2409:831e::/31 1; +2409:841e::/31 1; +2409:851e::/31 1; +2409:861e::/31 1; +2409:871e::/31 1; +2409:881e::/31 1; +2409:891e::/31 1; +2409:8a1e::/31 1; +2409:8b1e::/31 1; +2409:8d1e::/31 1; +2409:8e1e::/31 1; +2409:8f1e::/31 1; +240a:42a2:b600::/40 1; +240a:42a2:d000::/40 1; +240a:42a3:6c00::/40 1; +240e:e5:8000::/40 1; +240e:388:7800::/40 1; +240e:46c:1200::/40 1; +240e:46c:1d00::/40 1; +240e:46c:3900::/40 1; +240e:46c:3d00::/40 1; +240e:46c:4500::/40 1; +240e:46c:4600::/40 1; +240e:46c:4800::/40 1; +240e:46c:6400::/39 1; +240e:46c:6a00::/40 1; +240e:46c:6c00::/39 1; +240e:46c:7000::/40 1; +240e:46c:8600::/40 1; +240e:46c:8900::/40 1; +240e:46c:8b00::/40 1; +240e:46c:af00::/40 1; +240e:46c:b000::/40 1; +240e:46c:bb00::/40 1; +240e:46d:3700::/40 1; +240e:46d:3c00::/40 1; +240e:46d:4400::/40 1; +240e:46d:5f00::/40 1; +240e:46d:6500::/40 1; +240e:46d:6700::/40 1; +240e:46d:6f00::/40 1; +240e:46d:7100::/40 1; +240e:46d:7c00::/40 1; +240e:46d:8200::/40 1; +240e:46d:b000::/40 1; +240e:46d:b200::/40 1; +240e:46e:6b00::/40 1; +240e:46e:bb00::/40 1; +2602:fed2:710f::/48 1; +2602:feda:2b0::/44 1; +2602:feda:3c5::/48 1; +2602:feda:ae8::/45 1; +2602:feda:af0::/48 1; +2602:feda:af3::/48 1; +2602:feda:afc::/48 1; +2602:feda:e20::/44 1; +2602:feda:e30::/48 1; +2602:feda:f050::/44 1; +2606:54c0:1ed8::/45 1; +2606:54c0:2520::/45 1; +2606:54c3:0:cb3::/64 1; +2606:54c3:0:10c3::/64 1; +2607:6b80:69::/48 1; +2a04:f580:9020::/48 1; +2a04:f580:9030::/48 1; +2a06:a005:13e0::/43 1; +2a06:a005:1400::/44 1; +2a06:a005:1ce0::/44 1; +2a09:bac1:1980:20::/64 1; +2a09:bac1:1980:118::/64 1; +2a09:bac1:19a0:20::/64 1; +2a09:bac1:19a0:118::/64 1; +2a09:bac1:19c0:20::/64 1; +2a09:bac1:19c0:118::/64 1; +2a09:bac1:19e0:20::/64 1; +2a09:bac1:19e0:118::/64 1; +2a09:bac2:1ed8::/45 1; +2a09:bac2:2520::/45 1; +2a09:bac3:1ed8::/45 1; +2a09:bac3:2520::/45 1; +2a09:bac5:1f08::/45 1; +2a09:bac5:2550::/45 1; +2a09:bac6:1f08::/45 1; +2a09:bac6:2550::/45 1; +2a0a:8f40:9::/48 1; +2a0e:800:ff10::/44 1; +2a0e:800:ff20::/47 1; +2a0e:b107:1cf::/48 1; +2a0e:b107:b7f::/48 1; +2a0e:b107:1a34::/48 1; +2a0e:b107:1b60::/44 1; +2a0f:5707:fe80::/41 1; +2a0f:5707:ff00::/41 1; +2a0f:5707:ff80::/43 1; +2a0f:5707:fff4::/47 1; +2a0f:a300::/29 1; +2a10:2f00:122::/48 1; diff --git a/minigate/root/usr/lib/minigate/geo/320000.conf b/minigate/root/usr/lib/minigate/geo/320000.conf new file mode 100644 index 000000000..d4d19ab88 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/320000.conf @@ -0,0 +1,1550 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 江苏省 +1.51.0.0/18 1; +1.51.64.0/19 1; +1.51.96.0/20 1; +1.51.128.0/20 1; +27.0.204.0/22 1; +27.0.208.0/21 1; +36.111.192.0/21 1; +36.113.0.0/16 1; +36.133.24.0/21 1; +36.133.32.0/22 1; +36.133.132.0/22 1; +36.133.136.0/21 1; +36.133.160.0/20 1; +36.134.16.0/21 1; +36.149.0.0/16 1; +36.150.0.0/15 1; +36.152.0.0/14 1; +36.156.0.0/16 1; +36.192.115.0/24 1; +36.192.116.0/22 1; +36.192.120.0/21 1; +36.192.128.0/21 1; +36.192.136.0/23 1; +36.192.138.0/24 1; +39.144.151.0/24 1; +39.144.152.0/23 1; +39.144.154.0/24 1; +42.157.160.0/19 1; +42.195.0.0/16 1; +42.244.0.0/16 1; +42.245.0.0/17 1; +42.245.128.0/18 1; +42.246.0.0/16 1; +42.247.0.96/27 1; +42.247.0.192/26 1; +42.247.1.200/29 1; +42.247.5.204/30 1; +42.247.6.200/29 1; +42.247.9.208/29 1; +42.247.13.160/28 1; +42.247.13.224/28 1; +42.247.15.160/27 1; +42.247.18.0/28 1; +42.247.18.64/27 1; +42.247.19.96/27 1; +42.247.20.0/28 1; +42.247.21.120/30 1; +42.247.21.128/27 1; +42.247.22.32/27 1; +42.247.22.160/27 1; +42.247.23.0/27 1; +42.247.23.160/27 1; +42.247.24.48/28 1; +42.247.25.16/28 1; +42.247.27.96/27 1; +42.247.31.224/28 1; +42.247.37.0/25 1; +42.247.38.160/27 1; +42.247.40.184/29 1; +42.247.42.32/27 1; +42.247.43.0/28 1; +42.247.44.52/30 1; +42.247.44.56/29 1; +42.247.44.96/28 1; +42.247.49.112/28 1; +42.247.53.56/29 1; +42.247.53.64/26 1; +42.247.53.128/25 1; +42.247.54.0/23 1; +42.247.56.0/21 1; +42.247.64.0/18 1; +42.247.128.0/17 1; +43.224.54.160/29 1; +43.224.56.0/22 1; +43.226.96.0/20 1; +43.226.112.0/22 1; +43.226.164.0/22 1; +43.227.56.0/21 1; +43.227.104.0/22 1; +43.229.168.0/21 1; +43.229.176.0/21 1; +43.231.32.0/20 1; +43.231.144.0/20 1; +43.236.28.0/22 1; +43.236.100.0/22 1; +43.236.152.0/22 1; +43.236.204.0/22 1; +43.236.208.0/22 1; +43.236.216.0/22 1; +43.236.240.0/22 1; +43.237.4.0/22 1; +43.237.252.0/22 1; +43.238.132.0/22 1; +43.238.152.0/21 1; +43.238.172.0/22 1; +43.238.176.0/22 1; +43.238.232.0/22 1; +43.240.0.0/22 1; +43.241.48.0/22 1; +43.241.184.0/22 1; +43.242.64.0/22 1; +43.246.228.0/23 1; +43.247.88.0/21 1; +43.247.224.0/22 1; +43.248.76.0/22 1; +43.248.80.0/20 1; +43.248.96.0/21 1; +43.248.104.0/22 1; +43.248.116.0/22 1; +43.248.120.0/21 1; +43.248.128.0/20 1; +43.248.144.0/21 1; +43.248.176.0/20 1; +43.248.192.0/20 1; +43.248.208.0/22 1; +43.249.120.0/22 1; +43.249.144.0/22 1; +43.250.148.0/22 1; +43.250.168.0/22 1; +43.254.52.0/22 1; +43.255.72.0/22 1; +43.255.84.0/22 1; +45.113.24.0/21 1; +45.113.200.0/22 1; +45.113.240.0/22 1; +45.114.252.0/22 1; +45.115.164.0/22 1; +45.116.24.0/22 1; +45.116.100.0/22 1; +45.119.64.0/22 1; +45.121.240.0/22 1; +45.124.68.0/22 1; +45.124.80.0/22 1; +45.126.108.0/22 1; +45.248.8.0/22 1; +45.250.28.0/22 1; +45.250.92.0/22 1; +45.252.104.0/22 1; +45.253.44.0/22 1; +45.253.64.0/22 1; +45.254.84.0/22 1; +49.64.0.0/11 1; +49.152.0.0/14 1; +49.221.132.0/24 1; +58.192.0.0/15 1; +58.194.10.0/23 1; +58.194.16.0/21 1; +58.197.0.0/19 1; +58.197.32.0/23 1; +58.200.0.0/24 1; +58.200.5.128/25 1; +58.200.7.0/25 1; +58.200.64.128/25 1; +58.200.65.0/24 1; +58.200.73.0/24 1; +58.200.74.0/24 1; +58.200.78.0/25 1; +58.200.80.0/25 1; +58.200.96.0/25 1; +58.200.105.0/24 1; +58.200.111.0/24 1; +58.200.113.0/24 1; +58.200.116.0/25 1; +58.200.118.0/24 1; +58.200.120.184/29 1; +58.200.120.192/29 1; +58.207.96.0/20 1; +58.207.112.0/21 1; +58.208.0.0/12 1; +58.240.0.0/15 1; +59.43.64.0/24 1; +59.43.80.52/30 1; +59.43.80.56/31 1; +59.81.68.0/23 1; +59.83.192.0/19 1; +59.83.224.0/20 1; +59.83.240.0/21 1; +59.83.248.0/22 1; +59.83.252.0/23 1; +59.83.254.0/24 1; +61.132.0.0/17 1; +61.147.0.0/16 1; +61.155.0.0/16 1; +61.160.0.0/16 1; +61.177.0.0/16 1; +61.232.62.0/24 1; +61.232.67.0/24 1; +61.232.68.0/24 1; +61.232.106.0/23 1; +61.232.108.0/22 1; +61.232.112.0/22 1; +61.232.116.0/23 1; +61.237.1.208/30 1; +61.237.2.62/31 1; +61.237.2.66/31 1; +61.237.3.100/30 1; +61.237.12.128/27 1; +61.237.13.64/27 1; +61.237.97.94/31 1; +61.237.97.98/31 1; +61.237.119.150/31 1; +61.237.121.74/31 1; +61.237.123.150/31 1; +61.237.123.154/31 1; +61.237.123.166/31 1; +61.237.123.170/31 1; +61.237.126.126/31 1; +61.237.126.130/31 1; +61.237.160.0/20 1; +101.76.0.0/17 1; +101.77.0.0/16 1; +101.105.192.0/19 1; +101.106.240.0/21 1; +101.124.160.0/24 1; +101.125.0.0/16 1; +101.247.64.0/18 1; +101.251.80.0/20 1; +101.251.160.0/21 1; +103.5.168.0/22 1; +103.7.212.0/22 1; +103.8.4.0/22 1; +103.9.248.0/21 1; +103.18.224.0/22 1; +103.20.160.0/22 1; +103.21.116.0/22 1; +103.22.20.0/22 1; +103.23.56.0/22 1; +103.23.176.0/22 1; +103.26.76.0/22 1; +103.27.56.0/22 1; +103.29.24.0/22 1; +103.32.28.0/22 1; +103.32.100.0/22 1; +103.32.152.0/22 1; +103.32.204.0/22 1; +103.32.208.0/22 1; +103.32.216.0/22 1; +103.32.240.0/22 1; +103.33.4.0/22 1; +103.33.252.0/22 1; +103.34.132.0/22 1; +103.34.152.0/21 1; +103.34.172.0/22 1; +103.34.176.0/22 1; +103.34.232.0/22 1; +103.35.220.0/23 1; +103.36.180.0/22 1; +103.36.192.0/20 1; +103.37.44.0/22 1; +103.40.12.0/22 1; +103.40.16.0/20 1; +103.40.32.0/20 1; +103.40.192.0/22 1; +103.40.232.0/22 1; +103.42.8.0/22 1; +103.45.72.0/21 1; +103.45.160.0/22 1; +103.48.216.0/21 1; +103.48.224.0/21 1; +103.52.176.0/22 1; +103.52.184.0/22 1; +103.53.124.0/22 1; +103.53.180.0/23 1; +103.54.240.0/22 1; +103.55.208.0/22 1; +103.56.60.0/22 1; +103.56.152.0/22 1; +103.59.116.0/22 1; +103.60.164.0/22 1; +103.67.104.0/22 1; +103.67.132.0/22 1; +103.69.16.0/22 1; +103.71.68.0/22 1; +103.72.180.0/22 1; +103.73.116.0/22 1; +103.78.228.0/22 1; +103.80.72.0/22 1; +103.81.123.0/24 1; +103.83.72.0/22 1; +103.84.64.0/22 1; +103.85.84.0/22 1; +103.86.60.0/22 1; +103.87.180.0/22 1; +103.88.60.0/22 1; +103.88.72.0/22 1; +103.90.52.0/22 1; +103.90.92.0/22 1; +103.96.214.0/23 1; +103.98.140.0/22 1; +103.98.144.0/22 1; +103.101.180.0/22 1; +103.102.168.0/22 1; +103.107.188.0/22 1; +103.108.224.0/22 1; +103.109.88.0/22 1; +103.110.131.0/24 1; +103.115.92.0/22 1; +103.119.115.0/24 1; +103.119.156.0/22 1; +103.119.180.0/22 1; +103.132.104.0/21 1; +103.135.148.0/23 1; +103.139.172.0/23 1; +103.150.10.0/23 1; +103.156.104.0/23 1; +103.192.0.0/21 1; +103.192.188.0/22 1; +103.203.16.0/22 1; +103.203.32.0/22 1; +103.203.116.0/22 1; +103.205.4.0/22 1; +103.205.252.0/22 1; +103.208.48.0/22 1; +103.211.220.0/22 1; +103.212.148.0/22 1; +103.213.96.0/22 1; +103.213.132.0/22 1; +103.215.36.0/22 1; +103.216.152.0/22 1; +103.218.36.0/22 1; +103.219.24.0/22 1; +103.220.124.0/22 1; +103.220.128.0/20 1; +103.220.144.0/21 1; +103.220.152.0/22 1; +103.220.160.0/22 1; +103.221.140.0/22 1; +103.222.144.0/22 1; +103.222.188.0/22 1; +103.223.32.0/22 1; +103.223.56.0/21 1; +103.223.64.0/21 1; +103.224.228.0/23 1; +103.227.120.0/23 1; +103.229.148.0/22 1; +103.229.212.0/22 1; +103.229.216.0/21 1; +103.234.56.0/22 1; +103.236.240.0/22 1; +103.238.40.0/22 1; +103.239.44.0/22 1; +103.239.244.0/22 1; +103.250.216.0/22 1; +103.252.172.0/22 1; +103.255.88.0/21 1; +103.255.136.0/22 1; +104.28.43.36/31 1; +104.28.66.30/31 1; +104.28.66.60/31 1; +104.28.66.86/31 1; +104.28.66.104/31 1; +104.28.69.30/31 1; +104.28.69.60/31 1; +104.28.69.86/31 1; +104.28.69.104/31 1; +104.28.83.2/31 1; +104.28.83.32/31 1; +104.28.83.58/31 1; +104.28.83.76/31 1; +104.28.99.0/31 1; +104.28.99.30/31 1; +104.28.99.52/31 1; +104.28.99.70/31 1; +104.28.101.0/31 1; +104.28.101.30/31 1; +104.28.101.52/31 1; +104.28.101.70/31 1; +104.28.117.32/31 1; +104.28.117.62/31 1; +104.28.117.88/31 1; +104.28.117.106/31 1; +104.28.120.32/31 1; +104.28.120.62/31 1; +104.28.120.88/31 1; +104.28.120.106/31 1; +104.28.172.157/32 1; +104.28.172.158/31 1; +104.28.172.160/30 1; +104.28.184.83/32 1; +104.28.184.84/30 1; +104.28.184.88/31 1; +104.28.184.90/32 1; +104.28.188.150/31 1; +104.28.188.152/30 1; +104.28.188.156/32 1; +104.28.188.199/32 1; +104.28.188.200/30 1; +104.28.188.204/31 1; +104.28.204.182/31 1; +104.28.204.184/30 1; +104.28.204.188/32 1; +104.28.216.132/30 1; +104.28.216.136/30 1; +104.28.220.207/32 1; +104.28.220.208/30 1; +104.28.220.212/31 1; +104.28.221.2/31 1; +104.28.221.4/30 1; +104.28.221.8/32 1; +104.28.236.182/31 1; +104.28.236.184/30 1; +104.28.236.188/32 1; +104.28.248.132/30 1; +104.28.248.136/30 1; +104.28.252.207/32 1; +104.28.252.208/30 1; +104.28.252.212/31 1; +104.28.253.2/31 1; +104.28.253.4/30 1; +104.28.253.8/32 1; +106.12.0.0/18 1; +106.12.64.0/19 1; +106.13.160.0/19 1; +106.48.16.0/21 1; +106.110.0.0/15 1; +109.244.204.0/22 1; +109.244.224.0/19 1; +110.44.12.0/22 1; +110.64.153.0/24 1; +110.99.0.0/16 1; +110.100.0.0/15 1; +110.105.0.0/16 1; +110.106.0.0/15 1; +110.115.0.0/16 1; +110.116.0.0/15 1; +110.121.0.0/21 1; +110.121.40.0/21 1; +110.121.64.0/19 1; +110.121.104.0/21 1; +110.121.128.0/19 1; +110.121.160.0/20 1; +110.121.184.0/21 1; +110.121.224.0/19 1; +110.126.0.0/16 1; +110.193.0.0/16 1; +110.199.0.0/17 1; +110.199.192.0/18 1; +110.213.0.0/16 1; +110.218.0.0/15 1; +111.208.0.0/14 1; +111.223.12.0/22 1; +112.0.0.0/14 1; +112.4.0.0/16 1; +112.20.0.0/14 1; +112.24.0.0/15 1; +112.53.128.0/19 1; +112.58.96.0/19 1; +112.58.128.0/19 1; +112.58.160.0/20 1; +112.73.64.0/23 1; +112.80.0.0/13 1; +114.114.0.0/16 1; +114.212.0.0/16 1; +114.213.0.0/17 1; +114.214.80.0/21 1; +114.216.0.0/13 1; +114.224.0.0/12 1; +115.168.42.0/24 1; +115.168.74.0/24 1; +115.169.21.0/24 1; +115.169.22.0/24 1; +115.173.0.0/19 1; +115.181.48.0/21 1; +115.181.192.0/20 1; +115.181.236.0/22 1; +116.147.0.0/16 1; +116.198.192.0/18 1; +117.48.128.0/19 1; +117.48.160.0/20 1; +117.49.1.0/24 1; +117.49.7.0/24 1; +117.49.9.0/24 1; +117.60.0.0/16 1; +117.61.68.0/22 1; +117.61.72.0/21 1; +117.61.80.0/20 1; +117.61.96.0/19 1; +117.61.128.0/17 1; +117.62.0.0/15 1; +117.80.0.0/12 1; +117.121.128.0/20 1; +117.136.19.0/24 1; +117.136.35.0/24 1; +117.136.45.0/24 1; +117.136.46.0/24 1; +117.136.66.0/23 1; +117.136.68.0/24 1; +117.136.235.40/29 1; +117.142.10.0/23 1; +117.142.12.0/22 1; +117.142.39.0/24 1; +117.142.40.0/23 1; +117.142.42.0/24 1; +117.142.154.0/23 1; +117.142.156.0/22 1; +117.142.160.0/23 1; +117.142.162.0/24 1; +117.142.164.0/23 1; +117.142.166.0/24 1; +118.184.128.0/17 1; +118.191.0.0/21 1; +118.191.8.0/22 1; +118.191.12.0/24 1; +119.40.64.0/20 1; +119.45.64.0/18 1; +119.45.128.0/17 1; +119.78.208.0/20 1; +120.44.97.0/24 1; +120.44.124.0/23 1; +120.132.0.0/19 1; +120.132.96.0/20 1; +120.195.0.0/16 1; +121.46.192.0/21 1; +121.46.200.0/22 1; +121.224.0.0/12 1; +121.248.0.0/16 1; +121.249.0.0/17 1; +121.249.176.0/20 1; +121.249.240.0/20 1; +121.250.51.0/24 1; +121.250.94.0/23 1; +122.9.240.0/22 1; +122.72.8.0/23 1; +122.72.64.0/22 1; +122.88.0.0/15 1; +122.94.0.0/15 1; +122.96.0.0/15 1; +122.102.64.0/20 1; +122.192.0.0/14 1; +123.72.0.0/16 1; +123.77.0.0/16 1; +123.94.12.0/24 1; +124.249.0.0/17 1; +129.211.160.0/19 1; +129.211.192.0/18 1; +137.59.88.0/22 1; +139.5.244.0/22 1; +139.159.96.0/20 1; +139.159.112.0/22 1; +140.205.23.0/25 1; +140.205.23.128/26 1; +144.48.212.0/22 1; +146.56.192.0/18 1; +146.196.68.0/22 1; +150.129.252.0/22 1; +150.242.244.0/22 1; +153.3.0.0/16 1; +153.34.0.0/15 1; +153.36.0.0/15 1; +153.99.0.0/16 1; +153.101.0.0/16 1; +157.0.0.0/16 1; +159.226.71.0/24 1; +159.226.72.0/22 1; +159.226.101.128/25 1; +159.226.103.0/24 1; +159.226.104.0/23 1; +159.226.106.0/24 1; +159.226.108.0/25 1; +159.226.120.0/23 1; +160.202.212.0/22 1; +163.53.168.0/22 1; +163.53.220.0/22 1; +163.228.0.0/16 1; +175.88.0.0/19 1; +175.188.224.0/19 1; +180.96.0.0/11 1; +180.201.112.0/20 1; +180.201.240.0/20 1; +180.208.0.0/15 1; +180.210.212.0/22 1; +182.61.130.0/23 1; +183.206.0.0/15 1; +183.208.0.0/14 1; +183.212.0.0/15 1; +192.55.10.0/23 1; +192.140.208.0/21 1; +202.38.2.0/23 1; +202.41.200.0/22 1; +202.60.132.0/22 1; +202.62.112.0/22 1; +202.63.84.0/22 1; +202.90.20.0/22 1; +202.97.16.120/29 1; +202.97.16.128/28 1; +202.97.16.146/31 1; +202.97.16.148/30 1; +202.97.16.152/29 1; +202.97.16.234/31 1; +202.97.16.236/30 1; +202.97.16.240/28 1; +202.97.17.8/29 1; +202.97.17.16/31 1; +202.97.18.44/31 1; +202.97.18.68/31 1; +202.97.18.78/31 1; +202.97.19.40/31 1; +202.97.19.112/31 1; +202.97.19.156/31 1; +202.97.19.172/31 1; +202.97.19.242/31 1; +202.97.19.244/30 1; +202.97.19.248/29 1; +202.97.22.0/31 1; +202.97.22.6/31 1; +202.97.22.114/31 1; +202.97.22.132/31 1; +202.97.23.72/31 1; +202.97.23.80/31 1; +202.97.23.212/31 1; +202.97.24.20/31 1; +202.97.24.48/30 1; +202.97.24.58/31 1; +202.97.26.128/27 1; +202.97.26.160/28 1; +202.97.27.2/31 1; +202.97.27.4/30 1; +202.97.27.8/29 1; +202.97.27.16/28 1; +202.97.27.32/27 1; +202.97.27.64/28 1; +202.97.27.80/31 1; +202.97.27.112/28 1; +202.97.27.176/28 1; +202.97.27.194/31 1; +202.97.27.196/30 1; +202.97.27.200/29 1; +202.97.27.208/28 1; +202.97.27.224/27 1; +202.97.28.96/29 1; +202.97.28.104/30 1; +202.97.28.108/31 1; +202.97.29.74/31 1; +202.97.29.76/30 1; +202.97.29.80/28 1; +202.97.29.96/30 1; +202.97.29.102/31 1; +202.97.29.240/28 1; +202.97.30.0/28 1; +202.97.30.226/31 1; +202.97.30.228/30 1; +202.97.30.232/30 1; +202.97.30.236/32 1; +202.97.30.238/31 1; +202.97.30.240/31 1; +202.97.32.56/31 1; +202.97.33.128/27 1; +202.97.33.160/28 1; +202.97.33.176/30 1; +202.97.33.180/31 1; +202.97.35.148/31 1; +202.97.36.30/31 1; +202.97.36.40/31 1; +202.97.36.148/31 1; +202.97.37.72/29 1; +202.97.37.100/31 1; +202.97.37.244/31 1; +202.97.38.80/31 1; +202.97.38.220/31 1; +202.97.39.170/31 1; +202.97.40.72/31 1; +202.97.40.92/31 1; +202.97.40.96/31 1; +202.97.40.110/31 1; +202.97.41.64/31 1; +202.97.41.72/31 1; +202.97.41.80/31 1; +202.97.41.100/31 1; +202.97.41.108/31 1; +202.97.41.120/31 1; +202.97.41.132/31 1; +202.97.41.192/31 1; +202.97.41.196/31 1; +202.97.41.200/31 1; +202.97.41.204/30 1; +202.97.41.208/28 1; +202.97.41.224/29 1; +202.97.41.232/30 1; +202.97.41.236/31 1; +202.97.41.244/31 1; +202.97.41.248/31 1; +202.97.42.0/31 1; +202.97.42.4/31 1; +202.97.42.12/31 1; +202.97.42.16/31 1; +202.97.42.56/31 1; +202.97.42.82/31 1; +202.97.42.202/31 1; +202.97.42.252/31 1; +202.97.43.34/31 1; +202.97.43.52/30 1; +202.97.43.56/31 1; +202.97.43.84/31 1; +202.97.43.138/31 1; +202.97.43.144/31 1; +202.97.43.160/31 1; +202.97.43.168/30 1; +202.97.43.188/31 1; +202.97.43.192/31 1; +202.97.43.196/31 1; +202.97.44.196/31 1; +202.97.44.232/31 1; +202.97.44.240/31 1; +202.97.44.244/31 1; +202.97.44.248/31 1; +202.97.46.164/31 1; +202.97.47.224/31 1; +202.97.47.244/31 1; +202.97.48.2/31 1; +202.97.49.4/30 1; +202.97.49.44/30 1; +202.97.49.48/28 1; +202.97.49.64/28 1; +202.97.49.80/29 1; +202.97.49.88/30 1; +202.97.49.92/31 1; +202.97.49.208/31 1; +202.97.49.212/31 1; +202.97.49.244/31 1; +202.97.49.252/30 1; +202.97.54.80/31 1; +202.97.54.88/31 1; +202.97.54.92/31 1; +202.97.54.190/31 1; +202.97.54.192/31 1; +202.97.54.196/31 1; +202.97.54.234/31 1; +202.97.54.238/31 1; +202.97.55.34/31 1; +202.97.55.76/30 1; +202.97.55.80/31 1; +202.97.56.172/31 1; +202.97.59.32/31 1; +202.97.59.48/31 1; +202.97.59.68/30 1; +202.97.59.72/31 1; +202.97.59.76/31 1; +202.97.60.48/31 1; +202.97.60.100/30 1; +202.97.60.104/29 1; +202.97.60.112/30 1; +202.97.63.160/31 1; +202.97.65.128/31 1; +202.97.65.136/31 1; +202.97.65.140/30 1; +202.97.65.144/31 1; +202.97.66.54/31 1; +202.97.66.56/30 1; +202.97.66.62/31 1; +202.97.66.194/31 1; +202.97.66.198/31 1; +202.97.66.202/31 1; +202.97.66.206/31 1; +202.97.67.72/31 1; +202.97.68.108/31 1; +202.97.68.176/31 1; +202.97.68.184/30 1; +202.97.68.188/31 1; +202.97.68.192/28 1; +202.97.68.208/30 1; +202.97.68.212/31 1; +202.97.68.224/30 1; +202.97.68.228/31 1; +202.97.68.232/31 1; +202.97.68.236/31 1; +202.97.68.240/30 1; +202.97.68.244/31 1; +202.97.68.248/31 1; +202.97.70.158/31 1; +202.97.70.224/31 1; +202.97.70.228/31 1; +202.97.70.232/31 1; +202.97.70.236/31 1; +202.97.70.240/31 1; +202.97.70.248/31 1; +202.97.71.18/31 1; +202.97.71.28/31 1; +202.97.71.190/31 1; +202.97.71.208/31 1; +202.97.71.220/31 1; +202.97.72.108/31 1; +202.97.72.140/31 1; +202.97.72.176/31 1; +202.97.73.64/31 1; +202.97.74.40/31 1; +202.97.74.52/31 1; +202.97.74.56/31 1; +202.97.74.60/31 1; +202.97.74.64/31 1; +202.97.74.68/31 1; +202.97.74.76/31 1; +202.97.74.122/31 1; +202.97.74.124/30 1; +202.97.74.134/31 1; +202.97.74.158/31 1; +202.97.75.166/31 1; +202.97.75.168/29 1; +202.97.75.224/31 1; +202.97.76.64/31 1; +202.97.76.68/30 1; +202.97.76.72/31 1; +202.97.76.76/31 1; +202.97.78.64/31 1; +202.97.78.72/29 1; +202.97.78.80/29 1; +202.97.78.88/30 1; +202.97.78.92/31 1; +202.97.79.0/31 1; +202.97.79.4/31 1; +202.97.79.16/31 1; +202.97.79.76/31 1; +202.97.81.118/31 1; +202.97.82.42/31 1; +202.97.82.168/31 1; +202.97.82.172/31 1; +202.97.82.180/31 1; +202.97.82.184/31 1; +202.97.82.192/31 1; +202.97.82.196/30 1; +202.97.82.200/30 1; +202.97.82.204/31 1; +202.97.82.224/31 1; +202.97.82.232/29 1; +202.97.82.240/31 1; +202.97.82.244/31 1; +202.97.82.248/31 1; +202.97.83.58/31 1; +202.97.84.2/31 1; +202.97.84.6/31 1; +202.97.84.18/31 1; +202.97.84.20/30 1; +202.97.84.24/29 1; +202.97.84.32/28 1; +202.97.84.48/29 1; +202.97.84.62/31 1; +202.97.84.66/31 1; +202.97.84.68/30 1; +202.97.84.72/29 1; +202.97.84.94/31 1; +202.97.84.96/28 1; +202.97.84.112/29 1; +202.97.84.120/31 1; +202.97.84.128/31 1; +202.97.84.132/30 1; +202.97.84.136/29 1; +202.97.84.144/28 1; +202.97.84.160/27 1; +202.97.84.192/30 1; +202.97.84.196/31 1; +202.97.84.200/31 1; +202.97.89.0/26 1; +202.97.89.64/27 1; +202.97.89.96/29 1; +202.97.89.104/31 1; +202.97.89.110/31 1; +202.97.89.112/29 1; +202.97.89.120/30 1; +202.97.89.124/31 1; +202.97.89.132/31 1; +202.97.89.138/31 1; +202.97.89.154/31 1; +202.97.89.160/27 1; +202.97.90.120/31 1; +202.97.92.2/31 1; +202.97.92.6/31 1; +202.97.92.8/29 1; +202.97.92.16/30 1; +202.97.92.50/31 1; +202.97.92.52/30 1; +202.97.92.56/29 1; +202.102.0.0/17 1; +202.111.0.0/17 1; +202.112.23.0/24 1; +202.112.24.0/23 1; +202.112.53.26/32 1; +202.112.53.132/30 1; +202.119.0.0/16 1; +202.127.12.0/22 1; +202.127.247.0/24 1; +202.179.172.0/22 1; +202.195.0.0/16 1; +203.33.243.0/24 1; +203.76.240.0/22 1; +203.80.144.0/20 1; +203.93.184.0/24 1; +203.93.196.0/24 1; +203.93.240.0/22 1; +203.93.244.0/23 1; +203.93.246.0/24 1; +203.114.245.0/24 1; +203.118.241.0/24 1; +203.191.144.0/21 1; +203.191.158.0/23 1; +210.7.60.0/22 1; +210.14.161.0/24 1; +210.14.192.0/19 1; +210.14.224.0/20 1; +210.14.240.0/21 1; +210.15.10.0/23 1; +210.15.15.0/24 1; +210.15.16.0/24 1; +210.15.18.0/24 1; +210.15.21.0/24 1; +210.15.22.0/23 1; +210.15.31.0/24 1; +210.15.33.0/24 1; +210.15.34.0/24 1; +210.15.40.0/23 1; +210.15.43.0/24 1; +210.15.45.0/24 1; +210.15.49.0/24 1; +210.15.50.0/24 1; +210.15.52.0/24 1; +210.15.54.0/23 1; +210.15.60.0/24 1; +210.22.36.0/22 1; +210.22.40.0/22 1; +210.22.44.0/24 1; +210.22.46.0/23 1; +210.22.192.0/23 1; +210.22.195.0/24 1; +210.22.197.0/25 1; +210.22.197.128/26 1; +210.22.199.0/24 1; +210.22.200.0/23 1; +210.22.207.0/24 1; +210.22.208.0/22 1; +210.22.215.0/24 1; +210.22.216.0/22 1; +210.28.0.0/18 1; +210.28.64.0/20 1; +210.28.80.0/21 1; +210.28.88.0/22 1; +210.28.92.0/23 1; +210.28.95.0/24 1; +210.28.96.0/19 1; +210.28.128.0/17 1; +210.29.0.0/16 1; +210.51.192.0/20 1; +210.51.208.0/22 1; +210.51.216.0/21 1; +210.51.234.0/24 1; +210.51.236.128/25 1; +210.51.237.0/24 1; +210.51.243.0/24 1; +210.51.245.0/24 1; +210.51.246.0/23 1; +210.51.249.0/24 1; +210.52.236.0/22 1; +210.52.240.0/23 1; +210.53.89.0/24 1; +210.53.90.0/23 1; +210.53.92.0/22 1; +210.53.96.0/24 1; +210.53.100.0/22 1; +210.53.104.0/21 1; +210.53.112.0/23 1; +210.53.115.0/24 1; +210.53.201.0/24 1; +210.72.64.0/22 1; +210.72.68.0/23 1; +210.72.72.0/21 1; +210.73.128.0/19 1; +210.78.27.0/24 1; +210.78.30.0/23 1; +210.83.52.0/22 1; +210.83.56.0/21 1; +211.65.0.0/17 1; +211.65.128.0/18 1; +211.65.192.0/19 1; +211.65.224.0/21 1; +211.65.232.0/22 1; +211.65.236.0/23 1; +211.65.240.0/20 1; +211.70.0.0/19 1; +211.70.32.0/21 1; +211.70.64.0/20 1; +211.70.80.0/23 1; +211.70.96.0/19 1; +211.70.192.0/19 1; +211.70.224.0/20 1; +211.70.240.0/22 1; +211.70.248.0/21 1; +211.87.0.0/17 1; +211.90.128.0/18 1; +211.90.192.0/20 1; +211.90.208.0/21 1; +211.98.42.0/23 1; +211.98.44.0/23 1; +211.98.53.0/24 1; +211.98.135.0/24 1; +211.98.137.0/24 1; +211.98.138.0/24 1; +211.98.148.0/23 1; +211.98.168.128/25 1; +211.103.0.0/18 1; +211.103.64.0/20 1; +211.103.96.0/19 1; +211.138.192.0/20 1; +211.139.96.0/19 1; +211.143.224.0/19 1; +211.161.235.0/24 1; +211.162.16.0/20 1; +211.162.80.0/23 1; +211.162.104.0/23 1; +211.162.200.0/22 1; +211.165.20.0/22 1; +211.165.65.0/24 1; +218.2.0.0/15 1; +218.4.0.0/16 1; +218.30.129.0/24 1; +218.30.137.0/24 1; +218.30.138.0/24 1; +218.90.0.0/15 1; +218.92.0.0/15 1; +218.94.0.0/16 1; +218.98.0.0/18 1; +218.104.32.0/19 1; +218.104.80.0/20 1; +218.104.112.0/20 1; +218.106.96.0/20 1; +218.107.224.0/19 1; +218.200.247.0/24 1; +218.205.0.0/19 1; +218.205.32.0/20 1; +218.206.96.0/19 1; +218.206.128.0/19 1; +219.72.200.0/25 1; +219.72.202.96/27 1; +219.72.203.160/27 1; +219.72.203.192/28 1; +219.83.160.0/19 1; +219.158.10.254/31 1; +219.158.11.2/31 1; +219.158.12.30/31 1; +219.158.12.42/31 1; +219.158.14.124/30 1; +219.158.14.154/31 1; +219.158.17.18/31 1; +219.158.17.68/30 1; +219.158.17.72/30 1; +219.158.17.78/31 1; +219.158.17.88/30 1; +219.158.17.150/31 1; +219.158.17.200/31 1; +219.158.18.2/31 1; +219.158.18.6/31 1; +219.158.18.14/31 1; +219.158.18.16/30 1; +219.158.20.156/30 1; +219.158.20.198/31 1; +219.158.20.202/31 1; +219.158.20.238/31 1; +219.158.22.138/31 1; +219.158.22.146/31 1; +219.158.23.134/31 1; +219.158.23.140/31 1; +219.158.24.38/31 1; +219.158.24.40/30 1; +219.158.39.228/30 1; +219.158.41.0/29 1; +219.158.41.140/30 1; +219.158.41.144/28 1; +219.158.41.160/28 1; +219.158.42.170/31 1; +219.158.42.190/31 1; +219.158.42.194/31 1; +219.158.96.86/31 1; +219.158.96.154/31 1; +219.158.96.166/31 1; +219.158.96.170/31 1; +219.158.98.104/30 1; +219.158.98.110/31 1; +219.158.98.196/31 1; +219.158.99.148/30 1; +219.158.99.158/31 1; +219.158.99.170/31 1; +219.158.99.186/31 1; +219.158.99.202/31 1; +219.158.101.86/31 1; +219.158.101.90/31 1; +219.158.101.154/31 1; +219.158.104.98/31 1; +219.158.106.86/31 1; +219.158.108.114/31 1; +219.158.110.26/31 1; +219.158.110.122/31 1; +219.158.110.138/31 1; +219.158.112.48/30 1; +219.158.112.78/31 1; +219.158.112.80/30 1; +219.158.116.114/31 1; +219.158.116.190/31 1; +219.218.224.0/19 1; +219.219.0.0/16 1; +219.230.0.0/16 1; +219.243.246.0/24 1; +220.114.80.0/20 1; +220.114.96.0/20 1; +220.114.250.0/23 1; +220.115.112.0/20 1; +220.192.96.0/20 1; +220.207.96.0/20 1; +220.242.180.0/24 1; +221.6.0.0/16 1; +221.130.0.0/19 1; +221.130.48.0/20 1; +221.130.64.0/19 1; +221.130.96.0/20 1; +221.131.64.0/18 1; +221.131.128.0/18 1; +221.174.128.0/17 1; +221.176.15.234/31 1; +221.176.16.14/31 1; +221.176.16.226/31 1; +221.176.18.34/31 1; +221.176.19.178/31 1; +221.176.19.220/31 1; +221.176.19.228/30 1; +221.176.19.234/31 1; +221.176.19.246/31 1; +221.176.19.248/30 1; +221.176.19.254/31 1; +221.176.20.8/30 1; +221.176.20.12/31 1; +221.176.20.40/31 1; +221.176.20.44/31 1; +221.176.20.68/31 1; +221.176.20.76/31 1; +221.176.20.84/31 1; +221.176.20.88/31 1; +221.176.20.92/31 1; +221.176.20.112/30 1; +221.176.22.40/29 1; +221.176.22.62/31 1; +221.176.22.64/31 1; +221.176.22.86/31 1; +221.176.22.150/31 1; +221.176.26.28/30 1; +221.176.27.6/31 1; +221.176.27.20/31 1; +221.176.27.80/31 1; +221.176.27.114/31 1; +221.177.136.0/21 1; +221.177.211.0/24 1; +221.177.212.0/22 1; +221.177.216.0/24 1; +221.177.237.0/24 1; +221.177.238.0/23 1; +221.177.240.0/24 1; +221.178.128.0/17 1; +221.181.128.0/17 1; +221.183.9.150/31 1; +221.183.9.160/31 1; +221.183.9.180/31 1; +221.183.10.66/31 1; +221.183.10.74/31 1; +221.183.10.76/30 1; +221.183.10.80/31 1; +221.183.10.88/31 1; +221.183.10.96/28 1; +221.183.10.112/30 1; +221.183.10.120/31 1; +221.183.10.136/29 1; +221.183.10.144/29 1; +221.183.10.156/30 1; +221.183.10.242/31 1; +221.183.10.246/31 1; +221.183.11.132/31 1; +221.183.11.156/31 1; +221.183.11.182/31 1; +221.183.11.198/31 1; +221.183.11.200/29 1; +221.183.11.208/29 1; +221.183.11.216/31 1; +221.183.11.236/30 1; +221.183.11.240/30 1; +221.183.12.8/29 1; +221.183.13.112/30 1; +221.183.13.126/31 1; +221.183.13.128/30 1; +221.183.13.134/31 1; +221.183.14.8/29 1; +221.183.14.16/29 1; +221.183.14.24/30 1; +221.183.14.32/29 1; +221.183.14.64/29 1; +221.183.14.72/30 1; +221.183.14.180/30 1; +221.183.14.184/30 1; +221.183.14.190/31 1; +221.183.14.194/31 1; +221.183.15.150/31 1; +221.183.15.154/31 1; +221.183.15.156/30 1; +221.183.15.160/30 1; +221.183.15.172/30 1; +221.183.15.188/30 1; +221.183.15.192/28 1; +221.183.15.208/30 1; +221.183.19.16/28 1; +221.183.19.116/31 1; +221.183.19.120/30 1; +221.183.19.148/30 1; +221.183.19.152/30 1; +221.183.19.160/30 1; +221.183.21.46/31 1; +221.183.21.48/30 1; +221.183.21.160/28 1; +221.183.22.12/31 1; +221.183.22.16/31 1; +221.183.22.20/31 1; +221.183.22.36/30 1; +221.183.22.40/30 1; +221.183.22.44/31 1; +221.183.22.48/31 1; +221.183.22.88/31 1; +221.183.22.140/31 1; +221.183.22.148/31 1; +221.183.22.152/31 1; +221.183.22.178/31 1; +221.183.22.184/31 1; +221.183.24.180/30 1; +221.183.24.184/31 1; +221.183.25.34/31 1; +221.183.25.50/31 1; +221.183.26.92/31 1; +221.183.26.102/31 1; +221.183.26.104/30 1; +221.183.27.64/30 1; +221.183.27.68/31 1; +221.183.39.242/31 1; +221.183.39.244/30 1; +221.183.39.248/29 1; +221.183.41.42/31 1; +221.183.42.34/31 1; +221.183.42.52/30 1; +221.183.42.56/29 1; +221.183.42.64/28 1; +221.183.42.80/29 1; +221.183.42.88/31 1; +221.183.42.92/30 1; +221.183.42.96/31 1; +221.183.42.100/31 1; +221.183.42.104/31 1; +221.183.42.108/31 1; +221.183.42.116/31 1; +221.183.42.120/31 1; +221.183.42.124/31 1; +221.183.42.152/31 1; +221.183.42.160/31 1; +221.183.42.164/31 1; +221.183.42.168/29 1; +221.183.42.176/30 1; +221.183.42.180/31 1; +221.183.42.184/31 1; +221.183.47.0/28 1; +221.183.47.18/31 1; +221.183.47.20/30 1; +221.183.47.24/29 1; +221.183.47.34/31 1; +221.183.47.36/30 1; +221.183.47.40/29 1; +221.183.47.48/28 1; +221.183.47.64/27 1; +221.183.47.96/29 1; +221.224.0.0/13 1; +222.45.0.0/16 1; +222.49.128.0/17 1; +222.59.128.0/17 1; +222.92.0.0/14 1; +222.184.0.0/13 1; +222.192.0.0/17 1; +222.192.128.0/19 1; +222.192.160.0/20 1; +222.192.176.0/21 1; +222.192.184.0/23 1; +222.192.186.0/26 1; +222.192.186.128/26 1; +222.192.188.0/22 1; +222.192.192.0/18 1; +222.193.0.0/16 1; +222.194.192.0/18 1; +222.195.168.0/21 1; +222.206.33.0/24 1; +222.206.34.0/23 1; +222.206.40.0/21 1; +222.206.211.0/24 1; +222.206.232.0/21 1; +222.206.240.0/20 1; +223.2.0.0/15 1; +223.64.0.0/14 1; +223.68.0.0/16 1; +223.103.4.0/24 1; +223.103.174.0/23 1; +223.103.176.0/22 1; +223.103.180.0/23 1; +223.104.4.0/24 1; +223.104.145.0/24 1; +223.104.146.0/23 1; +223.104.148.0/22 1; +223.104.152.0/22 1; +223.104.156.0/23 1; +223.104.158.0/24 1; +223.105.0.0/16 1; +223.106.0.0/15 1; +223.108.0.0/14 1; +223.112.0.0/15 1; +223.210.52.0/22 1; +223.210.56.0/21 1; +2001:da8:1031::/48 1; +2001:da8:1032::/48 1; +2001:df0:2e80::/48 1; +2001:df5:7800::/48 1; +2001:2030:0:4d::/64 1; +2001:2035:0:c80::/64 1; +2400:1040::/32 1; +2400:9040::/32 1; +2401:b360::/32 1; +2401:b5a0::/32 1; +2402:4a80::/32 1; +2402:7240::/32 1; +2402:7740::/32 1; +2402:d300::/32 1; +2403:2740::/32 1; +2403:3380::/32 1; +2403:4ec0::/32 1; +2403:5040::/32 1; +2403:58c0::/32 1; +2403:7540::/32 1; +2403:76c0::/32 1; +2403:a300::/32 1; +2404:1e80::/32 1; +2404:35c0::/32 1; +2404:3640::/32 1; +2404:6100::/32 1; +2404:b440::/32 1; +2404:cd00::/32 1; +2404:e8c0::/32 1; +2404:eb80::/32 1; +2405:4540::/32 1; +2405:be80::/32 1; +2406:840:1c0::/42 1; +2406:840:200::/40 1; +2406:840:300::/48 1; +2406:840:e14f::/48 1; +2406:840:e666::/47 1; +2406:840:f0aa::/48 1; +2406:4500::/32 1; +2406:5880::/32 1; +2406:6880::/32 1; +2406:6980::/32 1; +2406:6a80::/32 1; +2406:6b80::/32 1; +2406:6c80::/32 1; +2406:8080::/32 1; +2406:8880::/32 1; +2406:8980::/32 1; +2406:8b80::/32 1; +2406:9780::/32 1; +2406:bdc0::/32 1; +2406:e2c0::/32 1; +2406:e500:500::/40 1; +2406:e500:2500::/40 1; +2406:e500:4900::/40 1; +2408:4015::/32 1; +2408:823c:ae00::/40 1; +2408:843c:1800::/40 1; +2408:843c:2000::/40 1; +2408:843c:2600::/40 1; +2408:843c:4600::/40 1; +2408:843c:4900::/40 1; +2408:843e::/39 1; +2408:843e:200::/40 1; +2408:843e:9400::/40 1; +2408:843e:be00::/40 1; +2408:843e:c600::/40 1; +2408:843f:2000::/40 1; +2408:843f:4200::/40 1; +2408:843f:4600::/40 1; +2409:8020::/32 1; +2409:8087:2000::/37 1; +2409:8720::/32 1; +2409:8820::/40 1; +2409:8920::/29 1; +2409:8a20::/32 1; +2409:8a21::/33 1; +2409:8a21:8000::/34 1; +2409:8a21:c000::/37 1; +2409:8a22::/32 1; +2409:8c20::/36 1; +2409:8c20:1000::/37 1; +2409:8c20:1800::/43 1; +2409:8c20:1820::/44 1; +2409:8c20:1830::/47 1; +2409:8c20:1832::/48 1; +2409:8c20:1834::/46 1; +2409:8c20:1838::/45 1; +2409:8c20:1840::/42 1; +2409:8c20:1880::/41 1; +2409:8c20:1900::/40 1; +2409:8c20:1a00::/39 1; +2409:8c20:1c00::/38 1; +2409:8c20:2000::/35 1; +2409:8c20:4000::/34 1; +2409:8c20:8000::/33 1; +2409:8c21::/32 1; +2409:8c22::/31 1; +2409:8c24::/30 1; +2409:8c85:2000::/40 1; +2409:8d20::/29 1; +2409:8e20:f000::/36 1; +240a:42a4:2000::/40 1; +240a:42a4:a800::/40 1; +240a:42a5:3800::/40 1; +240a:42a6:3c00::/40 1; +240a:42a6:a600::/40 1; +240a:42a6:a800::/40 1; +240a:42a6:ac00::/40 1; +240a:42a6:c200::/40 1; +240a:42a6:fa00::/40 1; +240a:42a7:1200::/40 1; +240a:42a7:3600::/40 1; +240a:42a7:3800::/40 1; +240a:42a7:4a00::/40 1; +240e:ed::/32 1; +240e:109:8048::/48 1; +240e:3a3:4900::/40 1; +240e:3a3:4c00::/40 1; +240e:400:1e00::/40 1; +240e:46c:7800::/40 1; +240e:46c:ad00::/40 1; +240e:478:5600::/40 1; +240e:478:5e00::/40 1; +240e:479:4000::/40 1; +240e:479:4c00::/40 1; +240e:479:5200::/40 1; +2602:fe69:f26::/47 1; +2602:fe69:f28::/45 1; +2602:fe69:f30::/44 1; +2602:fe69:f40::/42 1; +2602:fe69:f80::/41 1; +2602:feda:1c0::/44 1; +2606:54c0:1ec0::/45 1; +2606:54c0:1ed0::/45 1; +2606:54c0:2318::/45 1; +2606:54c0:2320::/43 1; +2606:54c0:2340::/43 1; +2606:54c0:2360::/44 1; +2606:54c0:2370::/45 1; +2606:54c3:0:260::/64 1; +2606:54c3:0:29e::/64 1; +2606:54c3:0:4e5::/64 1; +2606:54c3:0:62c::/64 1; +2606:54c3:0:65e::/64 1; +2606:54c3:0:a82::/64 1; +2606:54c3:0:cb4::/64 1; +2606:54c3:0:f9c::/64 1; +2606:54c3:0:ff1::/64 1; +2606:54c3:0:1194::/64 1; +2606:54c3:0:16a6::/64 1; +2606:54c3:0:170d::/64 1; +2606:54c3:0:17ca::/64 1; +2a06:e881:2205::/48 1; +2a06:e881:2206::/48 1; +2a06:e881:2500::/44 1; +2a07:c6c0:a::/48 1; +2a09:bac1:1980:8::/64 1; +2a09:bac1:1980:100::/64 1; +2a09:bac1:1980:108::/64 1; +2a09:bac1:1980:110::/64 1; +2a09:bac1:1980:128::/64 1; +2a09:bac1:1981:110::/64 1; +2a09:bac1:1981:180::/64 1; +2a09:bac1:1981:188::/64 1; +2a09:bac1:1981:1a8::/64 1; +2a09:bac1:1981:260::/64 1; +2a09:bac1:1981:2f0::/64 1; +2a09:bac1:1981:320::/64 1; +2a09:bac1:1981:1478::/64 1; +2a09:bac1:19a0:8::/64 1; +2a09:bac1:19a0:100::/64 1; +2a09:bac1:19a0:108::/64 1; +2a09:bac1:19a0:110::/64 1; +2a09:bac1:19a0:128::/64 1; +2a09:bac1:19a1:110::/64 1; +2a09:bac1:19a1:180::/64 1; +2a09:bac1:19a1:188::/64 1; +2a09:bac1:19a1:1a8::/64 1; +2a09:bac1:19a1:260::/64 1; +2a09:bac1:19a1:2f0::/64 1; +2a09:bac1:19a1:320::/64 1; +2a09:bac1:19a1:1478::/64 1; +2a09:bac1:19c0:8::/64 1; +2a09:bac1:19c0:100::/64 1; +2a09:bac1:19c0:108::/64 1; +2a09:bac1:19c0:110::/64 1; +2a09:bac1:19c0:128::/64 1; +2a09:bac1:19c1:110::/64 1; +2a09:bac1:19c1:180::/64 1; +2a09:bac1:19c1:188::/64 1; +2a09:bac1:19c1:1a8::/64 1; +2a09:bac1:19c1:260::/64 1; +2a09:bac1:19c1:2f0::/64 1; +2a09:bac1:19c1:320::/64 1; +2a09:bac1:19c1:1478::/64 1; +2a09:bac1:19e0:8::/64 1; +2a09:bac1:19e0:100::/64 1; +2a09:bac1:19e0:108::/64 1; +2a09:bac1:19e0:110::/64 1; +2a09:bac1:19e0:128::/64 1; +2a09:bac1:19e1:110::/64 1; +2a09:bac1:19e1:180::/64 1; +2a09:bac1:19e1:188::/64 1; +2a09:bac1:19e1:1a8::/64 1; +2a09:bac1:19e1:260::/64 1; +2a09:bac1:19e1:2f0::/64 1; +2a09:bac1:19e1:320::/64 1; +2a09:bac1:19e1:1478::/64 1; +2a09:bac2:1ec0::/45 1; +2a09:bac2:2318::/45 1; +2a09:bac2:2320::/43 1; +2a09:bac2:2340::/43 1; +2a09:bac2:2360::/44 1; +2a09:bac2:2370::/45 1; +2a09:bac3:1ec0::/45 1; +2a09:bac3:2318::/45 1; +2a09:bac3:2320::/43 1; +2a09:bac3:2340::/43 1; +2a09:bac3:2360::/44 1; +2a09:bac3:2370::/45 1; +2a09:bac5:1ef0::/45 1; +2a09:bac5:2348::/45 1; +2a09:bac5:2350::/44 1; +2a09:bac5:2360::/43 1; +2a09:bac5:2380::/43 1; +2a09:bac5:23a0::/45 1; +2a09:bac6:1ef0::/45 1; +2a09:bac6:2348::/45 1; +2a09:bac6:2350::/44 1; +2a09:bac6:2360::/43 1; +2a09:bac6:2380::/43 1; +2a09:bac6:23a0::/45 1; +2a0a:6040:6607::/48 1; +2a0b:b87:ffbb::/48 1; +2a0c:b641:720::/43 1; +2a0e:aa07:e046::/48 1; +2a0e:aa07:f030::/44 1; +2a0e:b107:2f0::/44 1; diff --git a/minigate/root/usr/lib/minigate/geo/330000.conf b/minigate/root/usr/lib/minigate/geo/330000.conf new file mode 100644 index 000000000..2af103084 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/330000.conf @@ -0,0 +1,1510 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 浙江省 +14.197.188.0/22 1; +14.197.192.0/22 1; +14.197.245.125/32 1; +36.16.0.0/12 1; +36.115.0.0/16 1; +36.116.0.0/14 1; +36.120.0.0/13 1; +36.133.84.0/22 1; +36.133.88.0/21 1; +36.134.0.0/20 1; +36.134.48.0/20 1; +36.192.139.0/24 1; +36.192.140.0/22 1; +36.192.144.0/21 1; +36.192.152.0/22 1; +36.192.156.0/24 1; +36.255.116.0/22 1; +39.99.64.0/19 1; +39.170.0.0/15 1; +39.172.0.0/14 1; +39.180.0.0/14 1; +39.184.0.0/13 1; +42.120.0.0/18 1; +42.120.64.0/20 1; +42.120.80.0/21 1; +42.120.89.0/24 1; +42.120.90.0/23 1; +42.120.92.0/22 1; +42.120.96.0/19 1; +42.120.128.0/18 1; +42.120.192.0/20 1; +42.120.208.0/21 1; +42.120.216.0/22 1; +42.120.234.0/23 1; +42.120.236.0/22 1; +42.120.240.32/27 1; +42.120.240.64/26 1; +42.120.240.128/26 1; +42.120.240.192/29 1; +42.120.242.16/28 1; +42.120.242.32/27 1; +42.120.242.64/26 1; +42.120.242.128/25 1; +42.120.243.0/24 1; +42.120.244.0/26 1; +42.120.244.100/30 1; +42.120.244.104/29 1; +42.120.244.112/28 1; +42.120.244.128/25 1; +42.120.245.0/24 1; +42.120.246.0/23 1; +42.120.248.0/21 1; +42.121.0.0/16 1; +42.156.128.0/17 1; +42.186.0.0/16 1; +42.196.254.0/24 1; +42.245.194.0/27 1; +42.245.240.0/21 1; +42.247.2.216/29 1; +42.247.3.56/29 1; +42.247.5.160/29 1; +42.247.5.208/29 1; +42.247.9.152/29 1; +42.247.10.160/27 1; +42.247.10.208/28 1; +42.247.10.224/27 1; +42.247.11.0/27 1; +42.247.13.240/28 1; +42.247.17.112/28 1; +42.247.19.80/28 1; +42.247.19.208/28 1; +42.247.21.124/30 1; +42.247.23.144/28 1; +42.247.24.96/28 1; +42.247.24.224/27 1; +42.247.25.32/28 1; +42.247.27.128/28 1; +42.247.29.88/29 1; +42.247.30.0/27 1; +42.247.30.128/25 1; +42.247.33.16/28 1; +42.247.33.32/27 1; +42.247.33.176/28 1; +42.247.37.240/28 1; +42.247.39.0/27 1; +42.247.39.128/27 1; +42.247.41.192/28 1; +42.247.42.160/28 1; +42.247.42.224/28 1; +42.247.47.144/28 1; +43.224.54.88/29 1; +43.225.76.0/22 1; +43.225.120.0/22 1; +43.225.180.0/22 1; +43.227.152.0/21 1; +43.227.160.0/19 1; +43.227.192.0/19 1; +43.228.0.0/19 1; +43.228.40.0/21 1; +43.228.48.0/20 1; +43.228.64.0/21 1; +43.230.72.0/22 1; +43.236.76.0/22 1; +43.236.92.0/22 1; +43.236.104.0/22 1; +43.236.180.0/22 1; +43.236.236.0/22 1; +43.237.60.0/22 1; +43.237.80.0/21 1; +43.237.228.0/22 1; +43.238.12.0/22 1; +43.238.44.0/22 1; +43.238.124.0/22 1; +43.238.180.0/22 1; +43.239.116.0/22 1; +43.240.72.0/22 1; +43.240.156.0/22 1; +43.240.204.0/22 1; +43.240.208.0/21 1; +43.241.16.0/22 1; +43.241.80.0/21 1; +43.247.76.0/22 1; +43.247.96.0/22 1; +43.247.152.0/22 1; +43.247.232.0/22 1; +43.247.244.0/22 1; +43.248.244.0/22 1; +43.255.184.0/22 1; +45.112.208.0/22 1; +45.112.216.0/21 1; +45.120.140.0/22 1; +45.122.96.0/22 1; +45.127.128.0/22 1; +45.250.32.0/21 1; +45.250.40.0/22 1; +45.250.80.0/22 1; +45.251.140.0/22 1; +45.251.144.0/21 1; +45.252.0.0/22 1; +45.253.96.0/20 1; +45.253.112.0/21 1; +45.253.132.0/22 1; +45.253.136.0/21 1; +45.253.144.0/20 1; +45.253.160.0/19 1; +45.253.192.0/19 1; +45.253.224.0/20 1; +45.253.240.0/22 1; +45.254.48.0/23 1; +45.254.88.0/22 1; +45.254.116.0/22 1; +47.96.0.0/14 1; +47.109.0.0/16 1; +47.110.0.0/15 1; +47.120.0.0/13 1; +49.221.134.0/23 1; +58.100.0.0/15 1; +58.195.248.0/21 1; +58.200.14.0/23 1; +58.200.98.0/24 1; +58.200.120.8/29 1; +58.200.120.112/29 1; +58.206.192.0/19 1; +59.43.65.0/24 1; +59.79.128.0/18 1; +59.111.0.0/16 1; +60.12.0.0/16 1; +60.55.0.0/16 1; +60.162.0.0/15 1; +60.176.0.0/12 1; +61.14.240.0/22 1; +61.130.0.0/16 1; +61.153.0.0/16 1; +61.164.0.0/16 1; +61.174.0.0/15 1; +61.232.78.0/23 1; +61.232.80.0/21 1; +61.232.88.0/23 1; +61.234.176.0/20 1; +61.237.0.88/29 1; +61.237.1.232/30 1; +61.237.3.120/30 1; +61.237.13.192/27 1; +61.237.22.0/27 1; +61.237.29.248/30 1; +61.237.30.92/30 1; +61.237.64.4/32 1; +61.237.112.8/29 1; +61.237.112.232/30 1; +61.237.122.198/31 1; +61.237.123.146/31 1; +61.241.64.0/18 1; +101.37.0.0/16 1; +101.47.16.0/20 1; +101.64.0.0/13 1; +101.251.144.0/20 1; +101.251.168.0/21 1; +101.251.176.0/20 1; +103.3.112.0/22 1; +103.5.36.0/22 1; +103.15.96.0/24 1; +103.16.108.0/22 1; +103.17.136.0/22 1; +103.17.228.0/22 1; +103.19.40.0/22 1; +103.22.52.0/22 1; +103.30.96.0/22 1; +103.30.104.0/22 1; +103.32.76.0/22 1; +103.32.92.0/22 1; +103.32.104.0/22 1; +103.32.180.0/22 1; +103.32.236.0/22 1; +103.33.60.0/22 1; +103.33.80.0/21 1; +103.33.228.0/22 1; +103.34.12.0/22 1; +103.34.44.0/22 1; +103.34.124.0/22 1; +103.34.180.0/22 1; +103.36.60.0/22 1; +103.36.164.0/22 1; +103.36.208.0/21 1; +103.36.216.0/22 1; +103.37.16.0/22 1; +103.37.52.0/22 1; +103.37.56.0/22 1; +103.44.80.0/22 1; +103.44.144.0/22 1; +103.46.12.0/22 1; +103.46.16.0/20 1; +103.46.32.0/19 1; +103.46.64.0/18 1; +103.46.128.0/21 1; +103.46.136.0/22 1; +103.47.4.0/22 1; +103.49.108.0/22 1; +103.50.44.0/22 1; +103.50.48.0/20 1; +103.50.64.0/21 1; +103.50.72.0/22 1; +103.50.108.0/22 1; +103.50.112.0/20 1; +103.50.128.0/20 1; +103.50.172.0/22 1; +103.50.176.0/20 1; +103.50.192.0/21 1; +103.50.200.0/22 1; +103.50.220.0/22 1; +103.50.224.0/20 1; +103.50.240.0/21 1; +103.50.248.0/22 1; +103.62.204.0/22 1; +103.67.108.0/22 1; +103.67.112.0/21 1; +103.71.203.0/24 1; +103.76.64.0/22 1; +103.79.188.0/22 1; +103.80.200.0/22 1; +103.83.112.0/22 1; +103.84.72.0/22 1; +103.85.136.0/22 1; +103.87.32.0/22 1; +103.87.224.0/22 1; +103.88.32.0/22 1; +103.88.164.0/22 1; +103.88.212.0/22 1; +103.89.96.0/20 1; +103.89.116.0/22 1; +103.90.104.0/21 1; +103.90.112.0/21 1; +103.90.124.0/22 1; +103.90.132.0/22 1; +103.90.192.0/22 1; +103.91.236.0/22 1; +103.92.60.0/22 1; +103.92.64.0/20 1; +103.92.80.0/22 1; +103.92.164.0/22 1; +103.92.168.0/21 1; +103.92.176.0/21 1; +103.92.188.0/22 1; +103.92.192.0/22 1; +103.92.236.0/22 1; +103.92.244.0/22 1; +103.92.248.0/21 1; +103.93.0.0/21 1; +103.93.28.0/22 1; +103.94.72.0/22 1; +103.94.116.0/22 1; +103.95.220.0/23 1; +103.95.222.0/24 1; +103.95.248.0/22 1; +103.96.152.0/22 1; +103.96.160.0/19 1; +103.96.192.0/20 1; +103.96.208.0/22 1; +103.98.44.0/23 1; +103.98.216.0/22 1; +103.107.192.0/22 1; +103.107.212.0/22 1; +103.108.208.0/22 1; +103.109.48.0/22 1; +103.113.236.0/22 1; +103.116.184.0/22 1; +103.124.212.0/22 1; +103.131.224.0/21 1; +103.133.12.0/22 1; +103.192.52.0/22 1; +103.196.64.0/22 1; +103.204.216.0/23 1; +103.205.52.0/22 1; +103.205.108.0/22 1; +103.209.112.0/22 1; +103.212.44.0/22 1; +103.212.164.0/22 1; +103.216.108.0/22 1; +103.218.16.0/22 1; +103.219.28.0/22 1; +103.219.32.0/21 1; +103.220.104.0/21 1; +103.220.116.0/22 1; +103.220.240.0/22 1; +103.223.40.0/21 1; +103.233.104.0/22 1; +103.235.192.0/22 1; +103.238.52.0/22 1; +103.239.184.0/22 1; +103.244.16.0/22 1; +103.246.124.0/22 1; +103.246.152.0/22 1; +103.248.124.0/22 1; +103.252.104.0/22 1; +104.28.21.98/31 1; +104.28.21.100/30 1; +104.28.21.104/31 1; +104.28.43.42/31 1; +104.28.66.42/31 1; +104.28.69.42/31 1; +104.28.83.14/31 1; +104.28.99.12/31 1; +104.28.101.12/31 1; +104.28.117.44/31 1; +104.28.120.44/31 1; +104.28.193.101/32 1; +104.28.193.102/31 1; +104.28.193.104/30 1; +104.28.193.108/32 1; +104.28.225.101/32 1; +104.28.225.102/31 1; +104.28.225.104/30 1; +104.28.225.108/32 1; +106.2.32.0/19 1; +106.2.64.0/18 1; +106.3.208.0/21 1; +106.11.144.0/20 1; +106.11.176.0/21 1; +106.11.196.0/23 1; +106.11.200.0/23 1; +110.42.0.0/17 1; +110.75.0.0/17 1; +110.75.128.0/24 1; +110.75.130.96/27 1; +110.75.130.128/25 1; +110.75.131.0/24 1; +110.75.132.0/22 1; +110.75.136.0/23 1; +110.75.140.0/22 1; +110.75.144.0/20 1; +110.75.160.0/19 1; +110.75.192.0/19 1; +110.75.225.0/24 1; +110.75.226.0/24 1; +110.75.229.0/24 1; +110.75.230.0/23 1; +110.75.232.0/22 1; +110.76.0.0/20 1; +110.76.16.0/21 1; +110.76.24.0/22 1; +110.76.28.0/23 1; +110.76.32.0/20 1; +110.76.48.0/21 1; +110.76.56.0/22 1; +110.118.0.0/16 1; +111.0.0.0/14 1; +111.140.0.0/16 1; +111.228.0.0/16 1; +112.10.0.0/15 1; +112.12.0.0/14 1; +112.16.0.0/15 1; +112.53.176.0/20 1; +112.54.96.0/21 1; +112.54.204.0/22 1; +112.58.176.0/20 1; +112.58.192.0/19 1; +112.58.224.0/20 1; +112.73.66.0/23 1; +112.73.68.0/22 1; +112.73.72.0/21 1; +112.73.80.0/20 1; +112.73.96.0/19 1; +112.124.0.0/16 1; +112.127.0.0/16 1; +113.214.0.0/15 1; +114.28.193.0/24 1; +114.28.194.0/23 1; +114.28.196.0/22 1; +114.28.200.0/21 1; +114.28.208.0/20 1; +114.28.224.0/19 1; +114.55.0.0/16 1; +114.66.0.0/18 1; +114.113.196.0/22 1; +114.113.200.0/22 1; +114.113.216.0/22 1; +114.215.168.0/21 1; +114.215.176.0/20 1; +114.215.192.0/20 1; +114.215.208.0/21 1; +114.215.224.0/19 1; +115.25.208.0/24 1; +115.29.1.0/24 1; +115.29.2.0/23 1; +115.29.4.0/22 1; +115.29.8.0/21 1; +115.29.16.0/20 1; +115.29.160.0/19 1; +115.29.192.0/18 1; +115.103.252.0/22 1; +115.124.16.0/20 1; +115.168.43.0/24 1; +115.168.75.0/24 1; +115.181.80.0/20 1; +115.181.96.0/20 1; +115.181.212.0/22 1; +115.181.216.0/21 1; +115.181.224.0/21 1; +115.192.0.0/11 1; +115.224.0.0/12 1; +116.62.0.0/16 1; +116.70.64.0/18 1; +116.148.0.0/16 1; +116.251.78.0/23 1; +116.251.88.0/21 1; +116.251.102.0/23 1; +116.251.104.0/22 1; +116.251.112.0/20 1; +117.49.0.0/24 1; +117.49.4.0/24 1; +117.49.6.0/24 1; +117.49.12.0/22 1; +117.49.16.0/20 1; +117.49.32.0/19 1; +117.49.64.0/18 1; +117.49.128.0/17 1; +117.128.0.0/25 1; +117.136.10.0/24 1; +117.136.111.0/24 1; +117.136.112.0/22 1; +117.142.16.0/23 1; +117.142.167.0/24 1; +117.142.168.0/22 1; +117.142.172.0/24 1; +117.142.238.0/23 1; +117.142.240.0/20 1; +117.147.0.0/16 1; +117.148.0.0/15 1; +118.31.0.0/16 1; +118.178.0.0/16 1; +118.215.197.0/24 1; +118.215.198.0/23 1; +118.215.200.0/23 1; +119.37.192.0/18 1; +119.38.0.0/17 1; +119.38.208.0/21 1; +119.38.216.0/23 1; +119.38.218.0/24 1; +119.38.219.0/26 1; +119.38.219.64/27 1; +119.38.219.96/31 1; +119.38.219.99/32 1; +119.38.219.114/31 1; +119.38.219.116/30 1; +119.38.219.120/29 1; +119.38.219.128/25 1; +119.38.220.0/22 1; +119.42.224.0/19 1; +120.26.0.0/16 1; +120.27.128.0/17 1; +120.55.0.0/17 1; +120.55.128.0/19 1; +120.55.172.0/22 1; +120.55.176.0/20 1; +120.55.192.0/18 1; +120.92.240.0/20 1; +120.193.0.0/18 1; +120.199.0.0/16 1; +121.0.16.0/20 1; +121.40.0.0/15 1; +121.43.0.0/16 1; +121.52.224.0/19 1; +121.192.0.0/20 1; +121.192.16.0/21 1; +121.192.24.0/22 1; +121.192.28.0/24 1; +121.192.30.0/23 1; +121.192.32.0/19 1; +121.192.64.0/20 1; +121.196.0.0/16 1; +121.197.0.0/17 1; +121.197.128.0/18 1; +121.197.224.0/19 1; +121.198.0.0/15 1; +122.9.250.0/23 1; +122.72.22.0/24 1; +122.72.35.0/24 1; +122.72.68.0/22 1; +122.85.0.0/16 1; +122.86.0.0/15 1; +122.198.64.0/22 1; +122.224.0.0/12 1; +122.240.0.0/13 1; +123.58.128.0/18 1; +123.74.128.0/17 1; +123.94.13.0/24 1; +123.96.0.0/15 1; +123.99.192.0/18 1; +123.137.0.0/16 1; +123.148.0.0/16 1; +123.152.0.0/13 1; +124.89.128.0/17 1; +124.90.0.0/15 1; +124.160.0.0/16 1; +124.203.140.0/22 1; +124.203.144.0/21 1; +124.203.152.0/22 1; +124.203.192.0/20 1; +124.242.0.0/16 1; +124.248.64.0/18 1; +124.249.224.0/20 1; +125.104.0.0/13 1; +125.112.0.0/12 1; +125.208.48.0/24 1; +125.210.0.0/16 1; +125.213.0.0/21 1; +139.5.160.0/22 1; +140.205.0.0/20 1; +140.205.16.0/22 1; +140.205.20.0/23 1; +140.205.22.0/24 1; +140.205.23.192/26 1; +140.205.24.0/21 1; +140.205.64.0/19 1; +140.205.96.0/20 1; +140.205.112.0/21 1; +140.205.120.0/22 1; +140.205.124.0/23 1; +140.205.126.0/24 1; +140.205.127.0/25 1; +150.242.28.0/22 1; +150.242.240.0/22 1; +157.119.240.0/22 1; +163.53.4.0/22 1; +163.53.12.0/22 1; +180.178.252.0/22 1; +182.49.0.0/16 1; +182.92.136.0/24 1; +183.128.0.0/11 1; +183.245.0.0/16 1; +183.246.0.0/15 1; +183.248.0.0/15 1; +185.103.4.0/22 1; +202.75.208.0/20 1; +202.91.224.0/19 1; +202.96.96.0/19 1; +202.97.19.162/31 1; +202.97.22.2/31 1; +202.97.22.4/31 1; +202.97.22.22/31 1; +202.97.22.180/30 1; +202.97.22.184/29 1; +202.97.22.192/31 1; +202.97.23.64/31 1; +202.97.23.82/31 1; +202.97.23.86/31 1; +202.97.23.88/29 1; +202.97.23.112/31 1; +202.97.23.134/31 1; +202.97.23.138/31 1; +202.97.23.166/31 1; +202.97.23.170/31 1; +202.97.23.176/31 1; +202.97.23.186/31 1; +202.97.23.188/30 1; +202.97.23.194/31 1; +202.97.23.218/31 1; +202.97.23.220/30 1; +202.97.23.226/31 1; +202.97.23.228/30 1; +202.97.23.232/30 1; +202.97.23.236/31 1; +202.97.23.240/28 1; +202.97.26.2/31 1; +202.97.26.4/30 1; +202.97.26.18/31 1; +202.97.32.136/30 1; +202.97.34.14/31 1; +202.97.34.108/30 1; +202.97.34.162/31 1; +202.97.34.168/29 1; +202.97.34.182/31 1; +202.97.34.194/31 1; +202.97.34.198/31 1; +202.97.34.234/31 1; +202.97.34.238/31 1; +202.97.34.242/31 1; +202.97.34.246/31 1; +202.97.36.64/31 1; +202.97.36.76/31 1; +202.97.36.134/31 1; +202.97.36.146/31 1; +202.97.36.238/31 1; +202.97.36.240/28 1; +202.97.37.86/31 1; +202.97.37.96/30 1; +202.97.37.148/30 1; +202.97.37.152/30 1; +202.97.37.250/31 1; +202.97.37.252/30 1; +202.97.39.16/31 1; +202.97.39.196/30 1; +202.97.39.200/30 1; +202.97.39.204/31 1; +202.97.40.136/31 1; +202.97.41.6/31 1; +202.97.41.78/31 1; +202.97.41.82/31 1; +202.97.41.84/30 1; +202.97.41.98/31 1; +202.97.41.110/31 1; +202.97.41.246/31 1; +202.97.41.250/31 1; +202.97.41.252/30 1; +202.97.42.26/31 1; +202.97.42.42/31 1; +202.97.42.136/31 1; +202.97.42.140/31 1; +202.97.43.36/31 1; +202.97.43.76/31 1; +202.97.43.80/31 1; +202.97.43.142/31 1; +202.97.43.176/31 1; +202.97.46.172/30 1; +202.97.46.244/30 1; +202.97.46.248/31 1; +202.97.47.24/31 1; +202.97.47.50/31 1; +202.97.47.74/31 1; +202.97.47.160/30 1; +202.97.47.164/31 1; +202.97.47.168/31 1; +202.97.47.172/31 1; +202.97.47.176/31 1; +202.97.48.8/31 1; +202.97.48.48/30 1; +202.97.48.52/31 1; +202.97.48.148/31 1; +202.97.48.194/31 1; +202.97.48.196/30 1; +202.97.49.236/31 1; +202.97.49.240/31 1; +202.97.55.22/31 1; +202.97.56.26/31 1; +202.97.56.36/31 1; +202.97.56.40/31 1; +202.97.56.44/31 1; +202.97.56.186/31 1; +202.97.56.226/31 1; +202.97.60.50/31 1; +202.97.60.56/31 1; +202.97.60.72/31 1; +202.97.60.88/31 1; +202.97.60.226/31 1; +202.97.60.230/31 1; +202.97.63.10/31 1; +202.97.65.148/31 1; +202.97.67.38/31 1; +202.97.67.40/30 1; +202.97.67.74/31 1; +202.97.68.0/28 1; +202.97.68.22/31 1; +202.97.68.26/31 1; +202.97.68.28/30 1; +202.97.68.38/31 1; +202.97.68.42/31 1; +202.97.68.44/30 1; +202.97.68.52/30 1; +202.97.68.56/29 1; +202.97.68.64/30 1; +202.97.68.70/31 1; +202.97.68.72/30 1; +202.97.68.86/31 1; +202.97.68.88/30 1; +202.97.68.110/31 1; +202.97.68.112/29 1; +202.97.68.120/30 1; +202.97.68.126/31 1; +202.97.68.130/31 1; +202.97.68.142/31 1; +202.97.68.144/31 1; +202.97.68.152/29 1; +202.97.68.162/31 1; +202.97.68.164/30 1; +202.97.68.168/30 1; +202.97.68.178/31 1; +202.97.68.180/30 1; +202.97.68.190/31 1; +202.97.68.214/31 1; +202.97.68.216/29 1; +202.97.68.230/31 1; +202.97.68.234/31 1; +202.97.68.238/31 1; +202.97.68.246/31 1; +202.97.68.250/31 1; +202.97.68.252/30 1; +202.97.69.176/31 1; +202.97.69.180/31 1; +202.97.69.184/31 1; +202.97.69.188/31 1; +202.97.69.224/29 1; +202.97.69.232/30 1; +202.97.69.236/31 1; +202.97.69.248/31 1; +202.97.71.88/31 1; +202.97.71.92/30 1; +202.97.71.96/31 1; +202.97.71.100/31 1; +202.97.71.248/29 1; +202.97.72.122/31 1; +202.97.73.14/31 1; +202.97.73.36/30 1; +202.97.73.40/29 1; +202.97.73.48/30 1; +202.97.73.54/31 1; +202.97.73.56/29 1; +202.97.73.128/27 1; +202.97.73.182/31 1; +202.97.74.20/30 1; +202.97.74.24/31 1; +202.97.74.28/31 1; +202.97.74.180/31 1; +202.97.74.184/31 1; +202.97.74.188/31 1; +202.97.74.192/31 1; +202.97.74.196/31 1; +202.97.74.200/31 1; +202.97.74.204/30 1; +202.97.74.208/31 1; +202.97.74.212/30 1; +202.97.74.216/31 1; +202.97.74.220/31 1; +202.97.75.32/31 1; +202.97.75.36/31 1; +202.97.75.40/31 1; +202.97.75.44/31 1; +202.97.75.48/31 1; +202.97.75.52/31 1; +202.97.75.56/31 1; +202.97.75.60/31 1; +202.97.75.64/31 1; +202.97.75.68/30 1; +202.97.75.72/31 1; +202.97.75.76/31 1; +202.97.75.80/31 1; +202.97.75.84/31 1; +202.97.75.88/31 1; +202.97.75.92/31 1; +202.97.75.96/30 1; +202.97.75.100/31 1; +202.97.75.104/31 1; +202.97.75.108/31 1; +202.97.75.144/31 1; +202.97.75.148/31 1; +202.97.75.152/31 1; +202.97.75.156/31 1; +202.97.76.116/30 1; +202.97.76.120/29 1; +202.97.76.128/30 1; +202.97.76.132/31 1; +202.97.76.136/31 1; +202.97.76.140/31 1; +202.97.76.144/30 1; +202.97.76.148/31 1; +202.97.76.156/31 1; +202.97.76.208/31 1; +202.97.77.56/31 1; +202.97.77.176/31 1; +202.97.78.0/29 1; +202.97.78.14/31 1; +202.97.78.16/29 1; +202.97.78.26/31 1; +202.97.78.62/31 1; +202.97.78.178/31 1; +202.97.78.180/30 1; +202.97.78.184/30 1; +202.97.78.192/30 1; +202.97.79.34/31 1; +202.97.79.38/31 1; +202.97.82.2/31 1; +202.97.82.18/31 1; +202.97.82.22/31 1; +202.97.82.24/30 1; +202.97.82.98/31 1; +202.97.82.100/30 1; +202.97.82.106/31 1; +202.97.83.156/30 1; +202.97.83.244/30 1; +202.97.84.64/31 1; +202.97.92.34/31 1; +202.97.92.36/30 1; +202.97.92.42/31 1; +202.97.92.160/29 1; +202.97.92.168/30 1; +202.97.92.172/31 1; +202.97.92.175/32 1; +202.97.92.208/31 1; +202.97.92.212/31 1; +202.97.92.216/31 1; +202.97.92.224/27 1; +202.101.160.0/19 1; +202.107.192.0/18 1; +202.136.80.0/23 1; +203.95.208.0/22 1; +203.107.0.0/24 1; +203.107.25.0/27 1; +203.107.32.0/21 1; +203.107.52.0/22 1; +203.135.96.0/19 1; +203.175.192.0/18 1; +203.209.224.0/22 1; +203.209.240.0/20 1; +210.15.0.0/21 1; +210.15.8.0/23 1; +210.15.17.0/24 1; +210.15.19.0/24 1; +210.15.20.0/24 1; +210.15.25.0/24 1; +210.15.27.0/24 1; +210.15.44.0/24 1; +210.15.47.0/24 1; +210.15.56.0/23 1; +210.15.58.0/24 1; +210.15.61.0/24 1; +210.22.194.0/24 1; +210.32.0.0/18 1; +210.32.64.0/20 1; +210.32.80.0/21 1; +210.32.88.0/22 1; +210.32.92.0/24 1; +210.32.96.0/21 1; +210.32.104.0/22 1; +210.32.108.0/23 1; +210.32.112.0/20 1; +210.32.128.0/18 1; +210.32.192.0/19 1; +210.33.0.0/17 1; +210.33.128.0/21 1; +210.33.136.0/22 1; +210.33.140.0/23 1; +210.33.142.0/24 1; +210.33.144.0/20 1; +210.33.160.0/19 1; +210.33.248.0/21 1; +210.51.224.64/26 1; +210.51.224.128/25 1; +210.51.225.0/24 1; +210.51.226.0/23 1; +210.51.230.0/23 1; +210.51.235.0/24 1; +210.51.239.0/24 1; +210.51.244.0/24 1; +210.51.250.160/27 1; +210.51.250.192/26 1; +210.51.253.0/24 1; +210.51.254.0/23 1; +210.52.234.0/25 1; +210.52.242.0/23 1; +210.52.244.0/23 1; +210.52.246.0/24 1; +210.52.252.0/24 1; +210.53.97.0/24 1; +210.53.98.0/23 1; +210.72.19.0/24 1; +210.83.64.0/18 1; +210.83.128.0/19 1; +210.83.176.0/20 1; +211.80.128.0/19 1; +211.90.216.0/21 1; +211.90.224.0/19 1; +211.91.0.0/18 1; +211.98.36.0/23 1; +211.98.144.0/24 1; +211.98.171.64/29 1; +211.138.112.0/20 1; +211.138.128.0/22 1; +211.140.0.0/17 1; +211.140.128.0/18 1; +211.155.224.0/20 1; +218.0.0.0/16 1; +218.30.139.0/24 1; +218.30.140.0/28 1; +218.30.140.16/29 1; +218.71.0.0/16 1; +218.72.0.0/15 1; +218.74.0.0/16 1; +218.75.0.0/17 1; +218.106.0.0/18 1; +218.106.64.0/20 1; +218.108.0.0/15 1; +218.205.48.0/20 1; +218.205.64.0/18 1; +218.244.128.0/19 1; +219.82.0.0/16 1; +219.158.7.192/28 1; +219.158.7.250/31 1; +219.158.12.234/31 1; +219.158.14.92/31 1; +219.158.14.180/31 1; +219.158.15.206/31 1; +219.158.17.152/31 1; +219.158.17.212/31 1; +219.158.20.106/31 1; +219.158.20.190/31 1; +219.158.21.18/31 1; +219.158.21.20/30 1; +219.158.23.72/31 1; +219.158.39.136/29 1; +219.158.44.8/29 1; +219.158.44.16/28 1; +219.158.44.32/27 1; +219.158.44.64/26 1; +219.158.44.128/26 1; +219.158.44.192/28 1; +219.158.44.208/29 1; +219.158.44.216/30 1; +219.158.45.20/30 1; +219.158.45.160/31 1; +219.158.45.164/31 1; +219.158.46.18/31 1; +219.158.46.20/30 1; +219.158.46.24/30 1; +219.158.96.0/26 1; +219.158.96.64/28 1; +219.158.96.84/31 1; +219.158.96.130/31 1; +219.158.96.132/30 1; +219.158.96.136/30 1; +219.158.96.146/31 1; +219.158.96.152/31 1; +219.158.96.190/31 1; +219.158.98.122/31 1; +219.158.98.190/31 1; +219.158.99.82/31 1; +219.158.99.142/31 1; +219.158.99.210/31 1; +219.158.104.102/31 1; +219.158.106.198/31 1; +219.158.107.12/31 1; +219.158.107.64/31 1; +219.158.107.154/31 1; +219.158.107.198/31 1; +219.158.107.200/29 1; +219.158.107.208/29 1; +219.158.107.218/31 1; +219.158.108.118/31 1; +219.158.108.124/30 1; +219.158.110.134/31 1; +219.158.110.142/31 1; +219.224.100.132/30 1; +219.224.100.136/30 1; +219.224.102.216/30 1; +219.243.250.0/24 1; +220.184.0.0/13 1; +220.192.112.0/20 1; +220.206.235.0/24 1; +220.206.236.0/23 1; +220.206.238.0/24 1; +220.207.112.0/20 1; +221.12.0.0/17 1; +221.12.128.0/18 1; +221.131.192.0/18 1; +221.136.0.0/16 1; +221.176.15.50/31 1; +221.176.15.254/31 1; +221.176.17.6/31 1; +221.176.18.50/31 1; +221.176.18.190/31 1; +221.176.18.218/31 1; +221.176.19.0/28 1; +221.176.19.16/29 1; +221.176.19.24/30 1; +221.176.19.28/31 1; +221.176.19.232/31 1; +221.176.21.242/31 1; +221.176.21.250/31 1; +221.176.21.254/31 1; +221.176.22.78/31 1; +221.176.26.252/30 1; +221.176.27.4/31 1; +221.176.27.168/31 1; +221.177.56.0/21 1; +221.177.228.0/22 1; +221.183.9.182/31 1; +221.183.9.184/29 1; +221.183.9.192/26 1; +221.183.10.0/26 1; +221.183.10.64/31 1; +221.183.10.68/31 1; +221.183.10.72/31 1; +221.183.10.116/31 1; +221.183.10.128/31 1; +221.183.10.244/31 1; +221.183.11.106/31 1; +221.183.11.158/31 1; +221.183.11.160/31 1; +221.183.11.164/31 1; +221.183.11.222/31 1; +221.183.12.40/29 1; +221.183.12.48/29 1; +221.183.12.102/31 1; +221.183.12.104/29 1; +221.183.12.112/30 1; +221.183.12.132/30 1; +221.183.12.136/29 1; +221.183.13.136/29 1; +221.183.13.232/29 1; +221.183.13.248/29 1; +221.183.14.80/28 1; +221.183.14.96/29 1; +221.183.19.164/30 1; +221.183.19.168/29 1; +221.183.19.176/30 1; +221.183.22.66/31 1; +221.183.22.74/31 1; +221.183.22.78/31 1; +221.183.22.106/31 1; +221.183.22.108/30 1; +221.183.22.114/31 1; +221.183.22.172/31 1; +221.183.22.188/30 1; +221.183.22.192/31 1; +221.183.22.198/31 1; +221.183.22.202/31 1; +221.183.22.230/31 1; +221.183.22.232/31 1; +221.183.22.236/31 1; +221.183.23.0/30 1; +221.183.23.4/31 1; +221.183.23.12/30 1; +221.183.23.16/28 1; +221.183.23.32/27 1; +221.183.23.64/26 1; +221.183.23.128/25 1; +221.183.24.0/26 1; +221.183.24.64/27 1; +221.183.24.96/28 1; +221.183.24.112/30 1; +221.183.24.118/31 1; +221.183.24.120/29 1; +221.183.24.128/30 1; +221.183.24.148/30 1; +221.183.24.152/30 1; +221.183.25.20/31 1; +221.183.25.124/30 1; +221.183.25.128/28 1; +221.183.25.144/29 1; +221.183.25.152/30 1; +221.183.27.72/29 1; +221.183.27.80/29 1; +221.183.36.178/31 1; +221.183.36.186/31 1; +221.183.37.28/31 1; +221.183.37.32/30 1; +221.183.37.36/31 1; +221.183.37.40/30 1; +221.183.37.44/31 1; +221.183.37.48/31 1; +221.183.40.226/31 1; +221.183.42.38/31 1; +221.183.47.160/28 1; +221.183.47.176/29 1; +221.183.47.186/31 1; +221.183.47.188/30 1; +222.46.0.0/16 1; +222.61.128.0/17 1; +222.192.187.0/24 1; +222.205.0.0/17 1; +223.4.0.0/14 1; +223.92.0.0/14 1; +223.103.0.0/24 1; +223.103.46.0/23 1; +223.103.48.0/23 1; +223.103.76.0/23 1; +223.103.163.0/24 1; +223.103.164.0/22 1; +223.103.168.0/22 1; +223.103.172.0/23 1; +223.104.0.0/24 1; +223.104.159.0/24 1; +223.104.160.0/21 1; +223.104.168.0/24 1; +223.104.242.0/23 1; +223.104.244.0/22 1; +223.252.192.0/18 1; +2001:da8:e00e::/48 1; +2001:df0:d880::/48 1; +2001:df1:f480::/48 1; +2001:df4:d80::/48 1; +2400:3200::/32 1; +2400:3e00::/32 1; +2400:57c0::/32 1; +2400:5840::/32 1; +2400:7bc0::/32 1; +2400:8fc0::/32 1; +2400:a6a0::/39 1; +2400:a6a0:300::/40 1; +2400:a6a0:400::/38 1; +2400:a6a0:800::/37 1; +2400:a6a0:1000::/36 1; +2400:a6a0:2000::/35 1; +2400:a6a0:4000::/34 1; +2400:a6a0:8000::/33 1; +2400:abc0::/32 1; +2400:b200::/32 1; +2400:de00::/32 1; +2401:1da0:100::/40 1; +2401:1da0:200::/39 1; +2401:1da0:400::/38 1; +2401:1da0:800::/37 1; +2401:1da0:1000::/36 1; +2401:1da0:2000::/35 1; +2401:1da0:4000::/34 1; +2401:1da0:8000::/33 1; +2401:2e00::/32 1; +2401:5b40::/32 1; +2401:7ce0::/32 1; +2401:96c0::/32 1; +2401:9740::/32 1; +2401:97a0::/32 1; +2401:aa20::/32 1; +2401:aba0::/32 1; +2401:b180::/32 1; +2401:ce00::/32 1; +2401:d920::/28 1; +2401:f860:4000::/34 1; +2401:f860:8000::/33 1; +2402:3180:4000::/34 1; +2402:3e00::/32 1; +2402:4b80::/32 1; +2402:9b80::/32 1; +2402:b940:200::/39 1; +2402:b940:400::/38 1; +2402:b940:800::/37 1; +2402:b940:1000::/36 1; +2402:b940:2000::/35 1; +2402:b940:4000::/34 1; +2402:b940:8000::/33 1; +2402:dcc0::/32 1; +2402:ffc0::/32 1; +2403:3480::/32 1; +2403:5d80::/32 1; +2403:d2c0::/32 1; +2403:e640::/32 1; +2404:2280:138::/47 1; +2404:2280:13a::/48 1; +2404:2280:1db::/48 1; +2404:2280:1dd::/48 1; +2404:2280:1de::/47 1; +2404:2280:1e0::/43 1; +2404:2280:200::/39 1; +2404:2280:400::/38 1; +2404:2280:800::/37 1; +2404:2280:1000::/36 1; +2404:2280:2000::/35 1; +2404:3300::/32 1; +2404:51c0::/32 1; +2404:6000::/32 1; +2404:a0c0::/32 1; +2404:a740::/32 1; +2404:c1c0::/32 1; +2404:d640::/32 1; +2405:9700::/32 1; +2405:9780::/32 1; +2405:9880::/32 1; +2405:9980::/32 1; +2405:a240::/32 1; +2405:e000::/32 1; +2405:fdc0::/32 1; +2406:840:20::/43 1; +2406:840:40::/46 1; +2406:840:80::/47 1; +2406:840:90::/48 1; +2406:840:100::/41 1; +2406:840:4100::/40 1; +2406:840:4200::/40 1; +2406:840:4300::/41 1; +2406:840:5100::/47 1; +2406:840:9980::/48 1; +2406:840:c0a8::/48 1; +2406:840:e010::/44 1; +2406:840:e10f::/48 1; +2406:840:fe73::/48 1; +2406:840:fe74::/46 1; +2406:840:fe78::/45 1; +2406:840:fe81::/48 1; +2406:840:fe82::/47 1; +2406:840:fe84::/46 1; +2406:840:fe88::/45 1; +2406:840:fed0::/48 1; +2406:840:fed3::/48 1; +2406:840:fed4::/48 1; +2406:840:fed6::/48 1; +2406:840:fed8::/47 1; +2406:840:fee0::/44 1; +2406:840:fef0::/48 1; +2406:840:fef3::/48 1; +2406:840:fef5::/48 1; +2406:840:fef7::/48 1; +2406:840:fef8::/47 1; +2406:840:fefb::/48 1; +2406:840:fefc::/47 1; +2406:840:fefe::/48 1; +2406:1880::/32 1; +2406:5340::/32 1; +2406:5780::/32 1; +2406:6100::/32 1; +2406:7080::/32 1; +2406:8180::/32 1; +2406:8a80::/32 1; +2406:c900::/32 1; +2406:dd80:400::/38 1; +2406:dd80:c00::/38 1; +2406:dd80:1000::/36 1; +2406:dd80:2000::/35 1; +2406:dd80:4000::/34 1; +2406:dd80:8000::/33 1; +2407:23c0::/32 1; +2407:a7c0::/32 1; +2407:a880::/32 1; +2407:bc00::/32 1; +2407:c400::/32 1; +2408:4005::/32 1; +2408:4009::/32 1; +2408:4010::/32 1; +2408:4013::/32 1; +2408:8440:1a00::/40 1; +2408:8440:2200::/40 1; +2408:8440:2800::/40 1; +2408:8440:3000::/40 1; +2408:8440:3200::/40 1; +2408:8440:4e00::/40 1; +2408:8440:5000::/40 1; +2408:8440:5400::/40 1; +2408:8440:5a00::/40 1; +2408:8440:6600::/40 1; +2408:8440:8800::/40 1; +2409:6000::/20 1; +2409:8028::/40 1; +2409:8028:800::/40 1; +2409:8028:1000::/39 1; +2409:8028:1800::/40 1; +2409:8028:2000::/40 1; +2409:8028:2800::/39 1; +2409:8028:2b00::/40 1; +2409:8028:3000::/40 1; +2409:8028:3800::/40 1; +2409:802e::/37 1; +2409:802e:900::/40 1; +2409:802e:a00::/39 1; +2409:802e:c00::/38 1; +2409:802e:1000::/36 1; +2409:802e:2000::/35 1; +2409:802e:4000::/34 1; +2409:802e:8000::/33 1; +2409:802f::/37 1; +2409:802f:900::/40 1; +2409:802f:a00::/39 1; +2409:802f:c00::/38 1; +2409:802f:1000::/36 1; +2409:802f:2000::/37 1; +2409:802f:2800::/40 1; +2409:802f:2a00::/39 1; +2409:802f:2c00::/38 1; +2409:802f:3000::/36 1; +2409:802f:4000::/34 1; +2409:802f:8000::/33 1; +2409:8087:2800::/40 1; +2409:8728::/31 1; +2409:8828::/40 1; +2409:8928::/30 1; +2409:892c::/32 1; +2409:8a28::/32 1; +2409:8b28::/32 1; +2409:8c28::/32 1; +2409:8c2a::/31 1; +2409:8c2f::/35 1; +2409:8c2f:2000::/36 1; +2409:8c2f:3000::/37 1; +2409:8c2f:3900::/40 1; +2409:8c2f:3a00::/39 1; +2409:8c2f:3c00::/38 1; +2409:8c2f:4000::/34 1; +2409:8c2f:8000::/33 1; +2409:8d28::/29 1; +2409:8e28::/29 1; +240a:42a8:400::/40 1; +240a:42a8:3400::/40 1; +240a:42a8:6c00::/40 1; +240a:42a8:7c00::/40 1; +240a:42aa::/40 1; +240a:42aa:5000::/40 1; +240a:42aa:8c00::/40 1; +240e:1c:1000::/36 1; +240e:1c:5000::/36 1; +240e:1d:1000::/36 1; +240e:1d:2000::/35 1; +240e:f7::/36 1; +240e:f7:2000::/36 1; +240e:f7:4000::/36 1; +240e:f7:6000::/36 1; +240e:f7:8000::/35 1; +240e:f7:c000::/35 1; +240e:108:45::/48 1; +240e:108:82::/48 1; +240e:108:11b0::/48 1; +240e:108:11b2::/47 1; +240e:109:8045::/48 1; +240e:397:900::/40 1; +240e:397:a00::/39 1; +240e:471:400::/40 1; +240e:471:1400::/40 1; +240e:471:3200::/40 1; +240e:472:3200::/39 1; +240e:473:3200::/40 1; +240e:473:4000::/40 1; +240e:473:4c00::/40 1; +240e:698:4500::/40 1; +240e:980:4500::/40 1; +240e:980:8200::/40 1; +240e:982:b000::/40 1; +240e:982:b200::/39 1; +240e:982:b800::/40 1; +2602:fed2:7302::/48 1; +2602:feda:1f0::/44 1; +2602:feda:2e0::/44 1; +2602:feda:ab0::/47 1; +2602:feda:ab2::/48 1; +2602:feda:ba0::/44 1; +2606:54c0:1eb8::/45 1; +2606:54c0:25e8::/45 1; +2606:54c0:25f0::/44 1; +2606:54c0:2600::/41 1; +2606:54c0:2680::/61 1; +2606:54c3:0:1fa::/64 1; +2606:54c3:0:25d::/64 1; +2606:54c3:0:335::/64 1; +2606:54c3:0:443::/64 1; +2606:54c3:0:44d::/64 1; +2606:54c3:0:558::/64 1; +2606:54c3:0:759::/64 1; +2606:54c3:0:854::/64 1; +2606:54c3:0:bd6::/64 1; +2606:54c3:0:c31::/64 1; +2606:54c3:0:cf9::/64 1; +2606:54c3:0:1062::/64 1; +2606:54c3:0:1389::/64 1; +2606:54c3:0:13f2::/64 1; +2606:54c3:0:1499::/64 1; +2606:54c3:0:1579::/64 1; +2606:54c3:0:1647::/64 1; +2606:54c3:0:17a4::/64 1; +2606:54c3:0:18b1::/64 1; +2606:54c3:0:1982::/64 1; +2a09:bac1:1980::/64 1; +2a09:bac1:1980:f8::/64 1; +2a09:bac1:1980:ea28::/64 1; +2a09:bac1:1980:ea30::/64 1; +2a09:bac1:1980:ea48::/64 1; +2a09:bac1:1980:fae0::/64 1; +2a09:bac1:1980:fb10::/64 1; +2a09:bac1:1980:fb38::/64 1; +2a09:bac1:1980:fba8::/64 1; +2a09:bac1:1980:fd38::/64 1; +2a09:bac1:1980:fd50::/64 1; +2a09:bac1:1980:fd80::/64 1; +2a09:bac1:1980:fdb0::/64 1; +2a09:bac1:1980:fdd8::/64 1; +2a09:bac1:1980:fe10::/64 1; +2a09:bac1:1980:fe38::/64 1; +2a09:bac1:1980:fe58::/64 1; +2a09:bac1:1980:ff10::/64 1; +2a09:bac1:1980:ff60::/64 1; +2a09:bac1:1980:ff88::/64 1; +2a09:bac1:19a0::/64 1; +2a09:bac1:19a0:f8::/64 1; +2a09:bac1:19a0:ea28::/64 1; +2a09:bac1:19a0:ea30::/64 1; +2a09:bac1:19a0:ea48::/64 1; +2a09:bac1:19a0:fae0::/64 1; +2a09:bac1:19a0:fb10::/64 1; +2a09:bac1:19a0:fb38::/64 1; +2a09:bac1:19a0:fba8::/64 1; +2a09:bac1:19a0:fd38::/64 1; +2a09:bac1:19a0:fd50::/64 1; +2a09:bac1:19a0:fd80::/64 1; +2a09:bac1:19a0:fdb0::/64 1; +2a09:bac1:19a0:fdd8::/64 1; +2a09:bac1:19a0:fe10::/64 1; +2a09:bac1:19a0:fe38::/64 1; +2a09:bac1:19a0:fe58::/64 1; +2a09:bac1:19a0:ff10::/64 1; +2a09:bac1:19a0:ff60::/64 1; +2a09:bac1:19a0:ff88::/64 1; +2a09:bac1:19c0::/64 1; +2a09:bac1:19c0:f8::/64 1; +2a09:bac1:19c0:ea28::/64 1; +2a09:bac1:19c0:ea30::/64 1; +2a09:bac1:19c0:ea48::/64 1; +2a09:bac1:19c0:fae0::/64 1; +2a09:bac1:19c0:fb10::/64 1; +2a09:bac1:19c0:fb38::/64 1; +2a09:bac1:19c0:fba8::/64 1; +2a09:bac1:19c0:fd38::/64 1; +2a09:bac1:19c0:fd50::/64 1; +2a09:bac1:19c0:fd80::/64 1; +2a09:bac1:19c0:fdb0::/64 1; +2a09:bac1:19c0:fdd8::/64 1; +2a09:bac1:19c0:fe10::/64 1; +2a09:bac1:19c0:fe38::/64 1; +2a09:bac1:19c0:fe58::/64 1; +2a09:bac1:19c0:ff10::/64 1; +2a09:bac1:19c0:ff60::/64 1; +2a09:bac1:19c0:ff88::/64 1; +2a09:bac1:19e0::/64 1; +2a09:bac1:19e0:f8::/64 1; +2a09:bac1:19e0:ea28::/64 1; +2a09:bac1:19e0:ea30::/64 1; +2a09:bac1:19e0:ea48::/64 1; +2a09:bac1:19e0:fae0::/64 1; +2a09:bac1:19e0:fb10::/64 1; +2a09:bac1:19e0:fb38::/64 1; +2a09:bac1:19e0:fba8::/64 1; +2a09:bac1:19e0:fd38::/64 1; +2a09:bac1:19e0:fd50::/64 1; +2a09:bac1:19e0:fd80::/64 1; +2a09:bac1:19e0:fdb0::/64 1; +2a09:bac1:19e0:fdd8::/64 1; +2a09:bac1:19e0:fe10::/64 1; +2a09:bac1:19e0:fe38::/64 1; +2a09:bac1:19e0:fe58::/64 1; +2a09:bac1:19e0:ff10::/64 1; +2a09:bac1:19e0:ff60::/64 1; +2a09:bac1:19e0:ff88::/64 1; +2a09:bac2:1eb8::/45 1; +2a09:bac2:1ed0::/45 1; +2a09:bac2:1ef0::/45 1; +2a09:bac2:25e8::/45 1; +2a09:bac2:25f0::/44 1; +2a09:bac2:2600::/41 1; +2a09:bac3:1eb8::/45 1; +2a09:bac3:1ed0::/45 1; +2a09:bac3:1ef0::/45 1; +2a09:bac3:25e8::/45 1; +2a09:bac3:25f0::/44 1; +2a09:bac3:2600::/41 1; +2a09:bac5:1ee8::/45 1; +2a09:bac5:1f00::/45 1; +2a09:bac5:1f20::/45 1; +2a09:bac5:2618::/45 1; +2a09:bac5:2620::/43 1; +2a09:bac5:2640::/42 1; +2a09:bac5:2680::/43 1; +2a09:bac5:26a0::/44 1; +2a09:bac6:1ee8::/45 1; +2a09:bac6:1f00::/45 1; +2a09:bac6:1f20::/45 1; +2a09:bac6:2618::/45 1; +2a09:bac6:2620::/43 1; +2a09:bac6:2640::/42 1; +2a09:bac6:2680::/43 1; +2a09:bac6:26a0::/44 1; +2a0b:4340:90::/45 1; +2a0b:4340:98::/48 1; +2a0b:4340:9a::/47 1; +2a0b:4340:9c::/46 1; +2a0d:2687::/32 1; +2a0d:c7c7::/32 1; +2a0e:97c0:5ef::/48 1; +2a0e:aa06::/40 1; +2a0e:aa06:200::/40 1; +2a0e:aa06:400::/40 1; +2a0e:aa07:e051::/48 1; +2a0e:aa07:e0e0::/44 1; +2a0e:b107:30::/48 1; +2a0e:b107:32::/47 1; +2a0f:9400:800b::/48 1; +2a0f:9400:8016::/48 1; +2a10:2f00:147::/48 1; +2a13:1800:10::/48 1; diff --git a/minigate/root/usr/lib/minigate/geo/340000.conf b/minigate/root/usr/lib/minigate/geo/340000.conf new file mode 100644 index 000000000..891c22f7f --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/340000.conf @@ -0,0 +1,560 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 安徽省 +1.51.112.0/20 1; +27.54.192.0/18 1; +36.4.0.0/14 1; +36.32.0.0/14 1; +36.56.0.0/13 1; +36.134.84.0/23 1; +36.159.128.0/17 1; +36.161.0.0/16 1; +36.192.157.0/24 1; +36.192.158.0/23 1; +36.192.160.0/21 1; +36.192.168.0/23 1; +36.192.170.0/24 1; +39.144.34.0/24 1; +39.144.37.0/24 1; +39.144.38.0/24 1; +42.157.0.0/21 1; +42.157.8.0/22 1; +42.247.3.104/29 1; +42.247.3.112/29 1; +42.247.5.184/29 1; +42.247.14.32/28 1; +42.247.15.240/28 1; +42.247.17.208/28 1; +42.247.20.144/28 1; +42.247.22.192/27 1; +42.247.24.64/28 1; +42.247.24.128/28 1; +42.247.24.208/28 1; +42.247.26.0/28 1; +42.247.26.192/28 1; +42.247.27.144/28 1; +42.247.28.224/27 1; +42.247.29.96/28 1; +42.247.29.160/27 1; +42.247.30.48/28 1; +42.247.30.80/28 1; +42.247.31.32/28 1; +42.247.32.112/28 1; +42.247.32.192/28 1; +42.247.32.224/28 1; +42.247.35.32/27 1; +42.247.35.64/27 1; +42.247.39.32/27 1; +42.247.41.80/28 1; +42.247.42.64/28 1; +42.247.42.208/28 1; +42.247.43.80/28 1; +42.247.43.160/27 1; +42.247.46.192/28 1; +43.224.54.4/30 1; +43.224.80.0/22 1; +43.236.80.0/22 1; +43.237.88.0/21 1; +43.237.212.0/22 1; +43.237.232.0/22 1; +43.238.104.0/22 1; +43.238.252.0/22 1; +43.248.20.0/22 1; +43.251.232.0/22 1; +43.255.244.0/22 1; +45.251.120.0/22 1; +45.254.28.0/24 1; +58.200.29.0/24 1; +58.207.48.0/20 1; +58.242.0.0/15 1; +59.43.66.0/24 1; +59.81.80.0/23 1; +60.166.0.0/15 1; +60.168.0.0/13 1; +61.45.128.0/18 1; +61.132.128.0/17 1; +61.133.128.0/18 1; +61.190.0.0/15 1; +61.235.36.0/22 1; +61.235.40.0/21 1; +61.237.0.168/29 1; +61.237.1.216/30 1; +61.237.2.46/31 1; +61.237.2.166/31 1; +61.237.13.96/27 1; +61.237.123.158/31 1; +61.237.123.162/31 1; +61.237.176.0/20 1; +61.241.128.0/18 1; +101.46.0.0/19 1; +101.47.32.0/20 1; +101.76.128.0/18 1; +101.105.64.0/18 1; +103.7.140.0/22 1; +103.7.216.0/22 1; +103.8.32.0/22 1; +103.8.68.0/22 1; +103.9.24.0/22 1; +103.9.108.0/22 1; +103.11.168.0/22 1; +103.14.132.0/22 1; +103.14.240.0/22 1; +103.22.16.0/22 1; +103.28.204.0/22 1; +103.32.80.0/22 1; +103.33.88.0/21 1; +103.33.212.0/22 1; +103.33.232.0/22 1; +103.34.104.0/22 1; +103.34.252.0/22 1; +103.35.12.0/22 1; +103.39.88.0/22 1; +103.43.104.0/22 1; +103.75.108.0/22 1; +103.135.161.0/24 1; +103.142.96.0/24 1; +103.202.240.0/22 1; +103.214.48.0/22 1; +103.220.92.0/22 1; +103.240.72.0/22 1; +103.242.176.0/22 1; +103.253.224.0/22 1; +104.28.23.11/32 1; +104.28.23.12/30 1; +104.28.23.16/31 1; +104.28.66.64/31 1; +104.28.66.74/31 1; +104.28.69.64/31 1; +104.28.69.74/31 1; +104.28.83.36/31 1; +104.28.83.46/31 1; +104.28.99.34/31 1; +104.28.99.44/31 1; +104.28.101.34/31 1; +104.28.101.44/31 1; +104.28.117.66/31 1; +104.28.117.76/31 1; +104.28.120.66/31 1; +104.28.120.76/31 1; +104.28.176.33/32 1; +104.28.176.34/31 1; +104.28.176.36/30 1; +104.28.195.18/31 1; +104.28.195.20/30 1; +104.28.195.24/32 1; +104.28.208.66/31 1; +104.28.208.68/30 1; +104.28.208.72/32 1; +104.28.227.18/31 1; +104.28.227.20/30 1; +104.28.227.24/32 1; +104.28.240.66/31 1; +104.28.240.68/30 1; +104.28.240.72/32 1; +110.122.0.0/15 1; +111.38.0.0/15 1; +111.129.0.0/16 1; +111.130.0.0/15 1; +111.141.0.0/16 1; +112.26.0.0/20 1; +112.26.16.0/21 1; +112.26.24.0/22 1; +112.26.28.0/23 1; +112.26.30.0/24 1; +112.26.31.0/25 1; +112.26.31.128/26 1; +112.26.31.192/27 1; +112.26.32.0/19 1; +112.26.64.0/18 1; +112.26.128.0/17 1; +112.27.0.0/16 1; +112.28.0.0/14 1; +112.32.0.0/16 1; +112.53.224.0/20 1; +112.59.0.0/18 1; +112.122.0.0/15 1; +112.132.0.0/16 1; +114.96.0.0/13 1; +114.104.0.0/14 1; +114.213.128.0/17 1; +114.214.128.0/17 1; +115.168.40.0/24 1; +115.168.72.0/24 1; +116.149.0.0/16 1; +117.57.0.0/16 1; +117.64.0.0/13 1; +117.136.20.0/24 1; +117.136.100.0/22 1; +117.136.116.0/23 1; +117.136.118.0/24 1; +117.142.4.0/24 1; +117.142.45.0/24 1; +117.142.46.0/23 1; +118.84.1.0/24 1; +118.84.2.0/24 1; +118.215.207.0/24 1; +118.215.208.0/22 1; +120.193.64.0/18 1; +120.209.0.0/16 1; +120.210.0.0/16 1; +120.242.0.0/15 1; +121.251.0.0/17 1; +121.255.0.0/16 1; +122.72.23.0/24 1; +122.72.62.0/23 1; +122.83.0.0/16 1; +122.92.0.0/16 1; +123.94.14.0/24 1; +124.14.160.0/19 1; +124.73.0.0/16 1; +124.112.0.0/15 1; +144.48.64.0/22 1; +163.53.52.0/22 1; +180.89.160.0/19 1; +180.89.192.0/19 1; +183.160.0.0/13 1; +202.38.64.0/19 1; +202.38.140.112/29 1; +202.97.13.138/31 1; +202.97.13.162/31 1; +202.97.18.0/30 1; +202.97.18.28/31 1; +202.97.18.32/31 1; +202.97.18.46/31 1; +202.97.18.48/30 1; +202.97.18.52/31 1; +202.97.18.64/30 1; +202.97.18.70/31 1; +202.97.18.72/31 1; +202.97.18.76/31 1; +202.97.18.80/31 1; +202.97.18.88/31 1; +202.97.18.92/30 1; +202.97.18.96/27 1; +202.97.18.128/28 1; +202.97.18.146/31 1; +202.97.18.148/31 1; +202.97.18.224/30 1; +202.97.22.66/31 1; +202.97.23.238/31 1; +202.97.32.126/31 1; +202.97.33.234/31 1; +202.97.36.192/31 1; +202.97.38.30/31 1; +202.97.38.34/31 1; +202.97.38.210/31 1; +202.97.38.214/31 1; +202.97.39.174/31 1; +202.97.39.176/28 1; +202.97.40.20/31 1; +202.97.40.54/31 1; +202.97.40.62/31 1; +202.97.41.44/30 1; +202.97.41.56/32 1; +202.97.41.90/31 1; +202.97.41.96/31 1; +202.97.41.122/31 1; +202.97.41.134/31 1; +202.97.41.136/30 1; +202.97.42.48/31 1; +202.97.42.52/31 1; +202.97.42.60/31 1; +202.97.42.120/31 1; +202.97.43.22/31 1; +202.97.43.24/31 1; +202.97.43.32/31 1; +202.97.43.136/31 1; +202.97.44.154/31 1; +202.97.50.46/31 1; +202.97.54.84/31 1; +202.97.55.30/31 1; +202.97.55.42/31 1; +202.97.55.44/30 1; +202.97.55.87/32 1; +202.97.55.94/31 1; +202.97.55.96/30 1; +202.97.55.166/31 1; +202.97.55.178/31 1; +202.97.55.186/31 1; +202.97.55.190/31 1; +202.97.55.198/31 1; +202.97.55.214/31 1; +202.97.59.2/31 1; +202.97.59.96/27 1; +202.97.59.128/25 1; +202.97.66.66/31 1; +202.97.66.70/31 1; +202.97.66.72/30 1; +202.97.66.78/31 1; +202.97.66.80/31 1; +202.97.66.84/31 1; +202.97.71.178/31 1; +202.97.71.180/30 1; +202.97.71.186/31 1; +202.97.71.188/31 1; +202.97.73.68/31 1; +202.97.73.202/31 1; +202.97.74.48/31 1; +202.97.74.74/31 1; +202.97.78.226/31 1; +202.97.78.250/31 1; +202.97.79.182/31 1; +202.97.79.186/31 1; +202.97.79.188/30 1; +202.97.82.130/31 1; +202.97.82.166/31 1; +202.97.82.170/31 1; +202.97.82.174/31 1; +202.97.82.176/31 1; +202.97.84.130/31 1; +202.102.192.0/19 1; +202.111.192.0/18 1; +202.112.53.46/31 1; +202.127.200.0/21 1; +202.141.160.0/19 1; +202.174.125.0/24 1; +202.179.164.0/22 1; +203.93.113.128/26 1; +203.93.247.0/24 1; +203.93.248.0/21 1; +210.15.28.0/24 1; +210.15.62.0/24 1; +210.45.0.0/16 1; +210.51.251.240/28 1; +210.52.248.0/23 1; +210.52.250.0/24 1; +210.52.253.0/24 1; +210.52.254.0/24 1; +210.53.45.0/24 1; +210.72.22.0/24 1; +210.73.16.0/20 1; +211.70.40.0/21 1; +211.70.48.0/20 1; +211.70.128.0/18 1; +211.86.128.0/17 1; +211.91.64.0/19 1; +211.91.96.0/20 1; +211.91.112.0/21 1; +211.138.176.0/20 1; +211.141.160.0/19 1; +211.141.192.0/18 1; +211.162.0.0/20 1; +218.22.0.0/15 1; +218.104.64.0/20 1; +218.106.80.0/20 1; +218.185.192.0/19 1; +219.158.10.162/31 1; +219.158.10.238/31 1; +219.158.10.242/31 1; +219.158.12.162/31 1; +219.158.15.70/31 1; +219.158.15.74/31 1; +219.158.15.118/31 1; +219.158.19.176/31 1; +219.158.19.180/31 1; +219.158.19.204/31 1; +219.158.20.186/31 1; +219.158.20.210/31 1; +219.158.20.218/31 1; +219.158.22.46/31 1; +219.158.22.102/31 1; +219.158.23.82/31 1; +219.158.23.86/31 1; +219.158.98.198/31 1; +219.158.100.78/31 1; +219.158.101.32/31 1; +219.158.101.94/31 1; +219.158.101.150/31 1; +219.158.104.82/31 1; +219.158.106.30/31 1; +219.158.109.182/31 1; +219.158.110.2/31 1; +219.231.0.0/17 1; +219.243.247.0/24 1; +220.114.128.0/18 1; +220.115.128.0/20 1; +220.178.0.0/15 1; +220.180.0.0/16 1; +220.195.128.0/17 1; +220.205.0.0/21 1; +220.205.32.0/23 1; +220.205.120.0/22 1; +220.205.128.0/17 1; +220.248.224.0/19 1; +221.130.112.0/20 1; +221.130.128.0/19 1; +221.130.160.0/20 1; +221.176.18.32/31 1; +221.176.18.40/31 1; +221.176.18.44/31 1; +221.176.18.48/31 1; +221.176.22.170/31 1; +221.176.27.64/30 1; +221.176.27.112/31 1; +221.176.27.176/29 1; +221.176.27.184/31 1; +221.177.144.0/23 1; +221.177.248.0/24 1; +221.183.12.176/29 1; +221.183.13.208/29 1; +221.183.19.124/30 1; +221.183.19.128/28 1; +221.183.19.144/30 1; +221.183.22.154/31 1; +221.183.37.38/31 1; +221.183.37.46/31 1; +221.183.40.34/31 1; +221.183.40.114/31 1; +221.183.40.194/31 1; +221.183.42.106/31 1; +221.183.48.34/31 1; +221.183.48.36/30 1; +221.183.48.40/29 1; +221.183.48.48/29 1; +222.48.0.0/16 1; +222.195.0.0/17 1; +222.207.0.0/17 1; +223.103.18.0/24 1; +223.103.37.0/24 1; +223.103.38.0/23 1; +223.103.40.0/24 1; +223.103.50.0/23 1; +223.103.52.0/24 1; +223.103.55.0/24 1; +223.103.56.0/24 1; +223.103.57.128/25 1; +223.103.78.0/23 1; +223.103.87.0/24 1; +223.103.90.0/23 1; +223.103.92.0/22 1; +223.103.96.0/19 1; +223.103.203.0/24 1; +223.103.205.0/24 1; +223.103.207.0/24 1; +223.103.208.0/20 1; +223.103.224.0/19 1; +223.104.18.0/24 1; +223.104.33.0/24 1; +223.104.34.0/23 1; +223.104.36.0/23 1; +223.210.4.0/22 1; +223.210.8.0/21 1; +223.210.18.0/23 1; +223.210.20.0/22 1; +223.214.0.0/15 1; +223.240.0.0/13 1; +2400:b600::/32 1; +2401:1e00::/32 1; +2402:4d80::/32 1; +2403:f00::/32 1; +2403:4a40::/32 1; +2403:8b00::/32 1; +2403:ed00::/32 1; +2404:6500::/32 1; +2404:65c0::/32 1; +2405:8280::/32 1; +2405:a500::/32 1; +2405:bd00::/32 1; +2406:840:fcd0::/44 1; +2406:840:fce0::/43 1; +2408:8244:600::/40 1; +2408:8244:3200::/40 1; +2408:8244:6800::/40 1; +2408:8244:8800::/40 1; +2408:8244:9900::/40 1; +2408:8244:a700::/40 1; +2408:8444:700::/40 1; +2408:8644:1000::/39 1; +2408:8844::/40 1; +240a:42ac::/40 1; +240a:42ac:400::/40 1; +240a:42ac:a000::/40 1; +240a:42ac:b400::/40 1; +240a:42ac:e000::/40 1; +240a:42ad:3400::/40 1; +240a:42ae::/40 1; +240a:42ae:1800::/40 1; +240a:42af:1c00::/40 1; +240a:42af:3400::/40 1; +2602:feda:b50::/44 1; +2602:feda:b60::/44 1; +2606:54c0:1f20::/43 1; +2606:54c0:1f40::/43 1; +2606:54c0:1f60::/45 1; +2606:54c3:0:79::/64 1; +2606:54c3:0:2c4::/64 1; +2606:54c3:0:cd5::/64 1; +2606:54c3:0:f46::/64 1; +2606:54c3:0:1227::/64 1; +2606:54c3:0:13ea::/64 1; +2606:54c3:0:1400::/64 1; +2606:54c3:0:170e::/64 1; +2606:54c3:0:1806::/64 1; +2a02:26f7:c400:f400::/57 1; +2a02:26f7:c400:f480::/63 1; +2a02:26f7:c404:f400::/57 1; +2a02:26f7:c404:f480::/63 1; +2a02:26f7:c408:f400::/57 1; +2a02:26f7:c408:f480::/63 1; +2a02:26f7:c40c:f400::/57 1; +2a02:26f7:c40c:f480::/63 1; +2a02:26f7:c410:f400::/57 1; +2a02:26f7:c410:f480::/63 1; +2a02:26f7:c414:f400::/57 1; +2a02:26f7:c414:f480::/63 1; +2a02:26f7:c418:f400::/57 1; +2a02:26f7:c418:f480::/63 1; +2a02:26f7:c41c:f400::/57 1; +2a02:26f7:c41c:f480::/63 1; +2a02:26f7:c420:f400::/57 1; +2a02:26f7:c420:f480::/63 1; +2a09:bac1:1980:e8::/64 1; +2a09:bac1:1980:f0::/64 1; +2a09:bac1:1980:f920::/64 1; +2a09:bac1:1980:f9c8::/64 1; +2a09:bac1:1980:fc28::/64 1; +2a09:bac1:1981:40::/64 1; +2a09:bac1:1981:a0::/64 1; +2a09:bac1:1981:c8::/64 1; +2a09:bac1:1981:9d0::/64 1; +2a09:bac1:19a0:e8::/64 1; +2a09:bac1:19a0:f0::/64 1; +2a09:bac1:19a0:f920::/64 1; +2a09:bac1:19a0:f9c8::/64 1; +2a09:bac1:19a0:fc28::/64 1; +2a09:bac1:19a1:40::/64 1; +2a09:bac1:19a1:a0::/64 1; +2a09:bac1:19a1:c8::/64 1; +2a09:bac1:19a1:9d0::/64 1; +2a09:bac1:19c0:e8::/64 1; +2a09:bac1:19c0:f0::/64 1; +2a09:bac1:19c0:f920::/64 1; +2a09:bac1:19c0:f9c8::/64 1; +2a09:bac1:19c0:fc28::/64 1; +2a09:bac1:19c1:40::/64 1; +2a09:bac1:19c1:a0::/64 1; +2a09:bac1:19c1:c8::/64 1; +2a09:bac1:19c1:9d0::/64 1; +2a09:bac1:19e0:e8::/64 1; +2a09:bac1:19e0:f0::/64 1; +2a09:bac1:19e0:f920::/64 1; +2a09:bac1:19e0:f9c8::/64 1; +2a09:bac1:19e0:fc28::/64 1; +2a09:bac1:19e1:40::/64 1; +2a09:bac1:19e1:a0::/64 1; +2a09:bac1:19e1:c8::/64 1; +2a09:bac1:19e1:9d0::/64 1; +2a09:bac2:1f20::/43 1; +2a09:bac2:1f40::/43 1; +2a09:bac2:1f60::/45 1; +2a09:bac3:1f20::/43 1; +2a09:bac3:1f40::/43 1; +2a09:bac3:1f60::/45 1; +2a09:bac5:1f50::/44 1; +2a09:bac5:1f60::/43 1; +2a09:bac5:1f80::/44 1; +2a09:bac5:1f90::/45 1; +2a09:bac6:1f50::/44 1; +2a09:bac6:1f60::/43 1; +2a09:bac6:1f80::/44 1; +2a09:bac6:1f90::/45 1; +2a0e:aa07:f040::/44 1; +2a10:2f00:12f::/48 1; diff --git a/minigate/root/usr/lib/minigate/geo/350000.conf b/minigate/root/usr/lib/minigate/geo/350000.conf new file mode 100644 index 000000000..8bf17cc30 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/350000.conf @@ -0,0 +1,1712 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 福建省 +1.0.1.0/24 1; +1.0.2.0/23 1; +1.1.0.0/24 1; +1.1.2.0/23 1; +1.1.4.0/22 1; +1.2.0.0/23 1; +1.2.6.0/23 1; +1.4.1.0/24 1; +1.4.2.0/23 1; +1.4.5.0/24 1; +1.4.6.0/23 1; +1.10.8.0/23 1; +1.10.11.0/24 1; +1.10.12.0/22 1; +14.0.12.0/22 1; +14.1.0.0/22 1; +14.102.128.0/22 1; +14.192.76.0/22 1; +27.148.0.0/14 1; +27.152.0.0/13 1; +36.0.0.0/22 1; +36.37.36.0/23 1; +36.37.39.0/24 1; +36.111.96.0/20 1; +36.134.70.0/23 1; +36.192.171.0/24 1; +36.192.172.0/22 1; +36.192.176.0/20 1; +36.192.192.0/23 1; +36.192.194.0/24 1; +36.248.0.0/14 1; +39.0.0.0/24 1; +39.0.2.0/23 1; +39.0.4.0/22 1; +42.0.0.0/22 1; +42.0.24.0/22 1; +42.1.56.0/22 1; +42.62.180.0/22 1; +42.83.80.0/22 1; +42.96.108.0/22 1; +42.99.112.0/22 1; +42.123.36.0/22 1; +42.156.36.0/22 1; +42.157.14.0/23 1; +42.157.16.0/20 1; +42.157.32.0/19 1; +42.157.64.0/18 1; +42.245.236.0/22 1; +42.247.2.152/29 1; +42.247.10.80/28 1; +42.247.11.64/26 1; +42.247.11.128/27 1; +42.247.11.176/28 1; +42.247.12.64/28 1; +42.247.24.32/28 1; +42.247.24.112/28 1; +42.247.25.0/28 1; +42.247.28.112/28 1; +42.247.29.80/29 1; +42.247.32.128/28 1; +42.247.35.128/28 1; +42.247.37.192/28 1; +42.247.38.48/28 1; +42.247.52.240/28 1; +43.224.12.0/22 1; +43.230.35.0/24 1; +43.236.60.0/22 1; +43.236.96.0/22 1; +43.236.116.0/22 1; +43.236.160.0/21 1; +43.237.68.0/22 1; +43.237.156.0/22 1; +43.237.192.0/22 1; +43.238.16.0/22 1; +43.238.48.0/22 1; +43.238.188.0/22 1; +43.238.192.0/22 1; +43.240.176.0/21 1; +43.242.72.0/22 1; +43.243.128.0/22 1; +45.113.204.0/22 1; +45.113.208.0/21 1; +45.113.216.0/22 1; +45.116.16.0/22 1; +45.119.60.0/22 1; +45.126.120.0/22 1; +45.126.220.0/22 1; +45.248.80.0/22 1; +45.250.96.0/22 1; +45.251.8.0/22 1; +45.253.72.0/22 1; +45.254.20.0/22 1; +49.128.0.0/24 1; +49.128.2.0/23 1; +58.22.0.0/15 1; +58.195.32.0/19 1; +58.199.0.0/17 1; +58.199.192.0/18 1; +58.200.104.0/24 1; +59.43.74.14/31 1; +59.43.74.16/28 1; +59.43.74.32/27 1; +59.43.74.64/26 1; +59.43.74.128/25 1; +59.43.81.64/29 1; +59.56.0.0/14 1; +59.60.0.0/15 1; +59.77.0.0/18 1; +59.77.64.0/19 1; +59.77.96.0/20 1; +59.77.112.0/22 1; +59.77.128.0/19 1; +59.77.160.0/21 1; +59.77.168.0/22 1; +59.77.172.0/23 1; +59.77.176.0/20 1; +59.77.192.0/18 1; +59.79.192.0/18 1; +59.81.72.0/23 1; +61.131.0.0/17 1; +61.154.0.0/16 1; +61.232.90.0/23 1; +61.232.92.0/22 1; +61.232.96.0/21 1; +61.232.104.0/23 1; +61.234.192.0/19 1; +61.234.224.0/22 1; +61.237.1.56/30 1; +61.237.1.240/29 1; +61.237.3.124/30 1; +61.237.3.128/30 1; +61.237.13.224/27 1; +61.237.14.0/27 1; +61.237.123.122/31 1; +61.237.123.126/31 1; +61.237.123.142/31 1; +61.237.126.94/31 1; +61.237.126.98/31 1; +61.237.127.186/31 1; +61.241.192.0/19 1; +101.0.0.0/22 1; +101.101.100.0/24 1; +101.101.102.0/23 1; +101.102.100.0/23 1; +101.102.102.0/24 1; +101.130.192.0/19 1; +103.8.108.0/22 1; +103.13.12.0/22 1; +103.22.32.0/22 1; +103.27.4.0/22 1; +103.32.60.0/22 1; +103.32.96.0/22 1; +103.32.116.0/22 1; +103.32.160.0/21 1; +103.33.68.0/22 1; +103.33.156.0/22 1; +103.33.192.0/22 1; +103.34.16.0/22 1; +103.34.48.0/22 1; +103.34.188.0/22 1; +103.34.192.0/22 1; +103.35.16.0/22 1; +103.36.188.0/22 1; +103.37.104.0/22 1; +103.53.128.0/21 1; +103.53.140.0/22 1; +103.59.112.0/22 1; +103.66.40.0/22 1; +103.67.64.0/21 1; +103.73.136.0/21 1; +103.92.48.0/22 1; +103.98.136.0/22 1; +103.99.104.0/22 1; +103.101.4.0/22 1; +103.101.12.0/22 1; +103.101.31.0/24 1; +103.103.204.0/22 1; +103.107.208.0/22 1; +103.108.52.0/22 1; +103.108.196.0/22 1; +103.109.107.0/24 1; +103.158.0.0/16 1; +103.195.112.0/22 1; +103.196.185.0/24 1; +103.196.186.0/23 1; +103.202.200.0/21 1; +103.203.20.0/22 1; +103.203.108.0/22 1; +103.215.108.0/22 1; +103.215.112.0/21 1; +103.215.120.0/22 1; +103.216.224.0/22 1; +103.218.40.0/22 1; +103.219.176.0/22 1; +103.222.196.0/22 1; +103.223.80.0/22 1; +103.223.132.0/22 1; +103.230.196.0/22 1; +103.230.236.0/22 1; +103.235.56.0/22 1; +103.236.248.0/21 1; +103.240.84.0/22 1; +106.0.0.0/24 1; +106.0.2.0/23 1; +106.122.0.0/16 1; +110.80.0.0/13 1; +110.88.0.0/14 1; +110.124.0.0/15 1; +110.236.0.0/15 1; +111.128.0.0/16 1; +111.142.0.0/15 1; +111.144.0.0/14 1; +111.186.192.0/18 1; +111.187.128.0/18 1; +111.187.192.0/21 1; +111.187.200.0/22 1; +112.5.0.0/16 1; +112.47.0.0/16 1; +112.48.0.0/14 1; +112.54.32.0/20 1; +112.59.64.0/18 1; +112.109.128.0/17 1; +112.111.0.0/16 1; +113.18.0.0/16 1; +115.168.44.0/24 1; +115.168.76.0/24 1; +115.169.20.0/24 1; +115.172.128.0/19 1; +115.172.160.0/20 1; +115.172.176.0/21 1; +117.24.0.0/13 1; +117.49.10.0/24 1; +117.120.128.0/17 1; +117.128.0.192/26 1; +117.136.11.0/24 1; +117.136.75.0/24 1; +119.27.192.0/18 1; +119.233.128.0/17 1; +120.32.0.0/13 1; +120.40.0.0/14 1; +120.67.128.0/17 1; +121.192.160.0/19 1; +121.192.192.0/18 1; +121.204.0.0/14 1; +122.48.144.0/20 1; +122.48.176.0/20 1; +122.72.24.0/24 1; +122.72.36.0/24 1; +122.72.72.0/22 1; +122.90.0.0/15 1; +122.112.96.0/22 1; +122.112.122.0/23 1; +122.112.124.0/23 1; +123.82.0.0/16 1; +123.94.15.0/24 1; +123.196.64.0/22 1; +123.196.68.0/24 1; +124.15.128.0/19 1; +124.15.160.0/20 1; +124.15.176.0/21 1; +124.16.165.0/24 1; +124.16.166.0/23 1; +124.16.176.0/22 1; +124.16.180.0/24 1; +124.40.240.0/22 1; +124.72.0.0/16 1; +125.77.0.0/16 1; +125.78.0.0/15 1; +125.213.8.0/21 1; +125.213.48.0/23 1; +125.213.50.0/24 1; +125.213.52.0/22 1; +125.213.56.0/21 1; +125.213.64.0/20 1; +125.213.80.0/21 1; +140.224.0.0/16 1; +140.237.0.0/16 1; +140.243.0.0/16 1; +150.242.80.0/22 1; +150.242.96.0/22 1; +157.119.8.0/21 1; +157.119.16.0/22 1; +157.119.196.0/22 1; +159.226.150.0/24 1; +163.244.246.0/24 1; +175.42.0.0/15 1; +175.44.0.0/16 1; +175.178.0.0/16 1; +180.88.64.0/19 1; +180.89.96.0/19 1; +180.178.192.0/19 1; +180.178.224.0/20 1; +180.178.240.0/21 1; +180.178.248.0/22 1; +180.233.0.0/18 1; +180.233.64.0/19 1; +182.157.0.0/16 1; +183.250.0.0/15 1; +183.252.0.0/15 1; +202.0.100.0/23 1; +202.0.122.0/23 1; +202.3.128.0/23 1; +202.6.6.0/23 1; +202.6.66.0/23 1; +202.6.72.0/23 1; +202.6.87.0/24 1; +202.6.88.0/23 1; +202.6.92.0/23 1; +202.6.103.0/24 1; +202.6.108.0/24 1; +202.6.110.0/23 1; +202.6.114.0/24 1; +202.8.0.0/24 1; +202.8.2.0/23 1; +202.8.4.0/23 1; +202.8.12.0/24 1; +202.8.24.0/24 1; +202.8.77.0/24 1; +202.9.32.0/24 1; +202.9.34.0/23 1; +202.9.48.0/23 1; +202.9.51.0/24 1; +202.9.52.0/23 1; +202.9.54.0/24 1; +202.9.57.0/24 1; +202.9.58.0/23 1; +202.12.1.0/24 1; +202.12.2.0/24 1; +202.12.17.0/24 1; +202.12.18.0/24 1; +202.12.72.0/24 1; +202.12.84.0/23 1; +202.12.96.0/24 1; +202.12.98.0/23 1; +202.12.106.0/24 1; +202.12.111.0/24 1; +202.12.116.0/24 1; +202.14.64.0/23 1; +202.14.69.0/24 1; +202.14.73.0/24 1; +202.14.74.0/23 1; +202.14.76.0/24 1; +202.14.78.0/23 1; +202.14.88.0/24 1; +202.14.97.0/24 1; +202.14.104.0/23 1; +202.14.108.0/23 1; +202.14.111.0/24 1; +202.14.114.0/23 1; +202.14.118.0/23 1; +202.14.124.0/23 1; +202.14.127.0/24 1; +202.14.129.0/24 1; +202.14.135.0/24 1; +202.14.136.0/24 1; +202.14.149.0/24 1; +202.14.151.0/24 1; +202.14.157.0/24 1; +202.14.158.0/23 1; +202.14.169.0/24 1; +202.14.170.0/23 1; +202.14.176.0/24 1; +202.14.184.0/23 1; +202.14.208.0/23 1; +202.14.213.0/24 1; +202.14.219.0/24 1; +202.14.220.0/24 1; +202.14.222.0/23 1; +202.14.225.0/24 1; +202.14.226.0/23 1; +202.14.231.0/24 1; +202.14.239.0/24 1; +202.14.246.0/24 1; +202.14.251.0/24 1; +202.20.66.0/24 1; +202.20.79.0/24 1; +202.20.87.0/24 1; +202.20.88.0/23 1; +202.20.90.0/24 1; +202.20.94.0/23 1; +202.20.114.0/24 1; +202.20.117.0/24 1; +202.20.120.0/24 1; +202.20.125.0/24 1; +202.20.127.0/24 1; +202.21.131.0/24 1; +202.21.132.0/24 1; +202.21.141.0/24 1; +202.21.142.0/24 1; +202.21.147.0/24 1; +202.21.148.0/24 1; +202.21.150.0/23 1; +202.21.152.0/23 1; +202.21.154.0/24 1; +202.21.156.0/24 1; +202.27.136.0/23 1; +202.38.0.0/23 1; +202.38.130.0/23 1; +202.38.136.0/23 1; +202.38.142.0/23 1; +202.38.149.0/24 1; +202.38.150.0/23 1; +202.38.154.0/23 1; +202.38.156.0/24 1; +202.38.158.0/23 1; +202.38.168.0/23 1; +202.38.170.0/24 1; +202.40.4.0/23 1; +202.40.7.0/24 1; +202.40.15.0/24 1; +202.40.135.0/24 1; +202.40.136.0/24 1; +202.40.140.0/24 1; +202.40.143.0/24 1; +202.40.144.0/23 1; +202.40.150.0/24 1; +202.40.155.0/24 1; +202.40.156.0/24 1; +202.40.158.0/23 1; +202.40.162.0/24 1; +202.41.8.0/23 1; +202.41.11.0/24 1; +202.41.12.0/23 1; +202.41.128.0/24 1; +202.41.130.0/23 1; +202.41.192.0/24 1; +202.44.67.0/24 1; +202.44.74.0/24 1; +202.44.129.0/24 1; +202.44.132.0/23 1; +202.44.146.0/23 1; +202.45.0.0/23 1; +202.45.2.0/24 1; +202.45.15.0/24 1; +202.46.16.0/23 1; +202.46.18.0/24 1; +202.46.20.0/23 1; +202.46.128.0/24 1; +202.47.82.0/23 1; +202.47.126.0/24 1; +202.47.128.0/24 1; +202.47.130.0/23 1; +202.58.0.0/24 1; +202.59.0.0/24 1; +202.59.236.0/24 1; +202.62.248.0/22 1; +202.62.252.0/24 1; +202.62.255.0/24 1; +202.63.81.0/24 1; +202.63.82.0/23 1; +202.65.8.0/23 1; +202.67.0.0/23 1; +202.67.2.0/24 1; +202.73.128.0/22 1; +202.74.254.0/23 1; +202.75.252.0/22 1; +202.76.252.0/22 1; +202.77.92.0/22 1; +202.79.248.0/22 1; +202.80.196.0/22 1; +202.81.0.0/22 1; +202.83.252.0/22 1; +202.84.4.0/22 1; +202.86.249.0/24 1; +202.90.196.0/24 1; +202.91.0.0/22 1; +202.92.252.0/22 1; +202.94.92.0/22 1; +202.97.13.166/31 1; +202.97.13.168/30 1; +202.97.17.128/25 1; +202.97.19.110/31 1; +202.97.19.122/31 1; +202.97.19.126/31 1; +202.97.19.158/31 1; +202.97.21.70/31 1; +202.97.22.74/31 1; +202.97.22.78/31 1; +202.97.22.82/31 1; +202.97.22.86/31 1; +202.97.22.88/29 1; +202.97.22.96/29 1; +202.97.23.150/31 1; +202.97.23.152/29 1; +202.97.23.162/31 1; +202.97.25.238/31 1; +202.97.28.130/31 1; +202.97.28.132/30 1; +202.97.32.150/31 1; +202.97.32.152/30 1; +202.97.36.118/31 1; +202.97.36.126/31 1; +202.97.36.128/30 1; +202.97.37.94/31 1; +202.97.37.246/31 1; +202.97.40.154/31 1; +202.97.40.162/31 1; +202.97.40.166/31 1; +202.97.40.170/31 1; +202.97.41.68/30 1; +202.97.41.94/31 1; +202.97.41.146/31 1; +202.97.41.158/31 1; +202.97.42.22/31 1; +202.97.42.84/30 1; +202.97.42.94/31 1; +202.97.42.98/31 1; +202.97.42.138/31 1; +202.97.42.154/31 1; +202.97.42.170/31 1; +202.97.43.82/31 1; +202.97.43.88/30 1; +202.97.43.94/31 1; +202.97.43.96/30 1; +202.97.43.146/31 1; +202.97.43.252/30 1; +202.97.44.198/31 1; +202.97.45.6/31 1; +202.97.47.166/31 1; +202.97.47.170/31 1; +202.97.47.182/31 1; +202.97.47.254/31 1; +202.97.48.160/31 1; +202.97.50.48/30 1; +202.97.54.36/31 1; +202.97.54.40/30 1; +202.97.54.48/31 1; +202.97.54.52/30 1; +202.97.54.72/31 1; +202.97.54.76/31 1; +202.97.54.128/27 1; +202.97.54.160/28 1; +202.97.54.176/30 1; +202.97.54.180/31 1; +202.97.54.226/31 1; +202.97.54.230/31 1; +202.97.55.26/31 1; +202.97.55.100/31 1; +202.97.55.230/31 1; +202.97.55.234/31 1; +202.97.55.238/31 1; +202.97.55.250/31 1; +202.97.55.252/30 1; +202.97.56.198/31 1; +202.97.56.218/31 1; +202.97.59.6/31 1; +202.97.59.16/30 1; +202.97.59.20/31 1; +202.97.59.24/31 1; +202.97.59.30/31 1; +202.97.61.140/30 1; +202.97.63.46/31 1; +202.97.63.50/31 1; +202.97.63.70/31 1; +202.97.63.72/30 1; +202.97.63.158/31 1; +202.97.64.128/31 1; +202.97.64.224/30 1; +202.97.64.228/31 1; +202.97.65.82/31 1; +202.97.65.84/30 1; +202.97.65.88/29 1; +202.97.65.166/31 1; +202.97.65.186/31 1; +202.97.66.24/31 1; +202.97.66.28/30 1; +202.97.66.32/31 1; +202.97.66.38/31 1; +202.97.66.82/31 1; +202.97.66.86/31 1; +202.97.66.88/29 1; +202.97.66.96/27 1; +202.97.66.138/31 1; +202.97.66.140/30 1; +202.97.66.146/31 1; +202.97.66.150/31 1; +202.97.66.174/31 1; +202.97.66.178/31 1; +202.97.66.184/31 1; +202.97.66.188/31 1; +202.97.66.208/29 1; +202.97.66.216/31 1; +202.97.66.250/31 1; +202.97.66.254/31 1; +202.97.67.162/31 1; +202.97.67.164/30 1; +202.97.71.14/31 1; +202.97.71.16/31 1; +202.97.71.20/30 1; +202.97.71.24/30 1; +202.97.71.30/31 1; +202.97.71.34/31 1; +202.97.71.38/31 1; +202.97.71.40/31 1; +202.97.71.44/30 1; +202.97.71.68/30 1; +202.97.71.74/31 1; +202.97.71.86/31 1; +202.97.71.90/31 1; +202.97.71.98/31 1; +202.97.71.106/31 1; +202.97.71.108/32 1; +202.97.71.110/31 1; +202.97.71.114/31 1; +202.97.71.118/31 1; +202.97.71.122/31 1; +202.97.71.126/31 1; +202.97.71.130/31 1; +202.97.71.132/30 1; +202.97.71.142/31 1; +202.97.71.242/31 1; +202.97.72.154/31 1; +202.97.78.46/31 1; +202.97.80.10/31 1; +202.97.82.50/31 1; +202.97.82.52/30 1; +202.97.82.66/31 1; +202.97.82.70/31 1; +202.97.82.78/31 1; +202.97.82.182/31 1; +202.97.82.190/31 1; +202.97.82.222/31 1; +202.97.83.98/31 1; +202.97.83.102/31 1; +202.97.84.122/31 1; +202.97.84.124/30 1; +202.97.90.42/31 1; +202.97.92.178/31 1; +202.97.92.180/30 1; +202.97.92.184/29 1; +202.97.92.194/31 1; +202.97.92.206/31 1; +202.101.96.0/19 1; +202.101.128.0/19 1; +202.109.192.0/18 1; +202.122.132.0/24 1; +202.124.24.0/22 1; +202.127.194.0/23 1; +202.127.196.0/22 1; +202.127.212.0/22 1; +202.127.237.0/24 1; +202.134.58.0/24 1; +202.137.231.0/24 1; +202.143.4.0/22 1; +202.146.188.0/22 1; +202.146.196.0/22 1; +202.150.56.0/22 1; +202.151.0.0/22 1; +202.153.0.0/22 1; +202.153.48.0/20 1; +202.162.67.0/24 1; +202.162.75.0/24 1; +202.165.239.0/24 1; +202.165.240.0/23 1; +202.165.243.0/24 1; +202.165.245.0/24 1; +202.165.251.0/24 1; +202.165.252.0/22 1; +202.171.235.0/24 1; +202.172.0.0/22 1; +202.173.0.0/22 1; +202.191.0.0/24 1; +202.191.68.0/22 1; +203.0.4.0/22 1; +203.0.10.0/23 1; +203.0.18.0/24 1; +203.0.24.0/24 1; +203.0.42.0/23 1; +203.0.45.0/24 1; +203.0.46.0/23 1; +203.0.81.0/24 1; +203.0.82.0/23 1; +203.0.90.0/23 1; +203.0.96.0/23 1; +203.0.114.0/23 1; +203.0.122.0/24 1; +203.0.128.0/24 1; +203.0.130.0/23 1; +203.0.132.0/22 1; +203.0.137.0/24 1; +203.0.142.0/24 1; +203.0.144.0/24 1; +203.0.146.0/24 1; +203.0.148.0/24 1; +203.0.150.0/23 1; +203.0.152.0/24 1; +203.0.177.0/24 1; +203.0.224.0/24 1; +203.1.4.0/22 1; +203.1.18.0/24 1; +203.1.26.0/23 1; +203.1.65.0/24 1; +203.1.66.0/23 1; +203.1.70.0/23 1; +203.1.76.0/23 1; +203.1.90.0/24 1; +203.1.97.0/24 1; +203.1.98.0/23 1; +203.1.100.0/22 1; +203.1.108.0/24 1; +203.1.253.0/24 1; +203.1.254.0/24 1; +203.2.73.0/24 1; +203.2.126.0/23 1; +203.2.140.0/24 1; +203.2.150.0/24 1; +203.2.152.0/22 1; +203.2.156.0/23 1; +203.2.180.0/23 1; +203.2.196.0/23 1; +203.2.209.0/24 1; +203.2.214.0/23 1; +203.2.226.0/23 1; +203.2.229.0/24 1; +203.2.236.0/23 1; +203.3.68.0/24 1; +203.3.72.0/23 1; +203.3.75.0/24 1; +203.3.96.0/22 1; +203.3.105.0/24 1; +203.3.120.0/24 1; +203.3.123.0/24 1; +203.3.135.0/24 1; +203.3.139.0/24 1; +203.3.143.0/24 1; +203.4.132.0/23 1; +203.4.134.0/24 1; +203.4.151.0/24 1; +203.4.152.0/22 1; +203.4.174.0/23 1; +203.4.180.0/24 1; +203.4.186.0/24 1; +203.4.205.0/24 1; +203.4.208.0/22 1; +203.4.227.0/24 1; +203.4.230.0/23 1; +203.5.4.0/23 1; +203.5.7.0/24 1; +203.5.8.0/23 1; +203.5.11.0/24 1; +203.5.21.0/24 1; +203.5.22.0/24 1; +203.5.44.0/24 1; +203.5.46.0/23 1; +203.5.52.0/22 1; +203.5.56.0/23 1; +203.5.60.0/23 1; +203.5.114.0/23 1; +203.5.118.0/24 1; +203.5.120.0/24 1; +203.5.172.0/24 1; +203.5.180.0/23 1; +203.5.182.0/24 1; +203.5.185.0/24 1; +203.5.186.0/24 1; +203.5.188.0/23 1; +203.5.190.0/24 1; +203.5.195.0/24 1; +203.5.214.0/23 1; +203.5.218.0/23 1; +203.6.131.0/24 1; +203.6.136.0/24 1; +203.6.138.0/23 1; +203.6.142.0/24 1; +203.6.150.0/23 1; +203.6.157.0/24 1; +203.6.159.0/24 1; +203.6.248.0/23 1; +203.7.129.0/24 1; +203.7.138.0/23 1; +203.7.147.0/24 1; +203.7.150.0/23 1; +203.7.158.0/24 1; +203.7.192.0/23 1; +203.7.200.0/24 1; +203.8.0.0/24 1; +203.8.8.0/24 1; +203.8.23.0/24 1; +203.8.70.0/24 1; +203.8.82.0/24 1; +203.8.86.0/23 1; +203.8.91.0/24 1; +203.8.110.0/23 1; +203.8.115.0/24 1; +203.8.166.0/23 1; +203.8.169.0/24 1; +203.8.173.0/24 1; +203.8.184.0/24 1; +203.8.186.0/23 1; +203.8.190.0/23 1; +203.8.192.0/24 1; +203.8.197.0/24 1; +203.8.198.0/23 1; +203.8.203.0/24 1; +203.8.209.0/24 1; +203.8.210.0/23 1; +203.8.212.0/22 1; +203.8.217.0/24 1; +203.8.220.0/24 1; +203.9.32.0/24 1; +203.9.36.0/23 1; +203.9.57.0/24 1; +203.9.63.0/24 1; +203.9.65.0/24 1; +203.9.70.0/23 1; +203.9.72.0/24 1; +203.9.75.0/24 1; +203.9.76.0/23 1; +203.9.96.0/22 1; +203.9.100.0/23 1; +203.9.108.0/24 1; +203.9.158.0/24 1; +203.10.34.0/24 1; +203.10.56.0/24 1; +203.10.74.0/23 1; +203.10.84.0/22 1; +203.10.88.0/24 1; +203.10.95.0/24 1; +203.10.125.0/24 1; +203.11.70.0/24 1; +203.11.76.0/22 1; +203.11.82.0/24 1; +203.11.84.0/22 1; +203.11.100.0/22 1; +203.11.109.0/24 1; +203.11.117.0/24 1; +203.11.122.0/24 1; +203.11.126.0/24 1; +203.11.136.0/22 1; +203.11.141.0/24 1; +203.11.142.0/23 1; +203.11.180.0/22 1; +203.11.208.0/22 1; +203.12.16.0/24 1; +203.12.19.0/24 1; +203.12.24.0/24 1; +203.12.57.0/24 1; +203.12.65.0/24 1; +203.12.66.0/24 1; +203.12.70.0/23 1; +203.12.87.0/24 1; +203.12.100.0/23 1; +203.12.103.0/24 1; +203.12.114.0/24 1; +203.12.118.0/24 1; +203.12.130.0/24 1; +203.12.137.0/24 1; +203.12.196.0/22 1; +203.12.211.0/24 1; +203.12.219.0/24 1; +203.12.226.0/24 1; +203.12.240.0/22 1; +203.13.18.0/24 1; +203.13.24.0/24 1; +203.13.44.0/23 1; +203.13.88.0/23 1; +203.13.92.0/22 1; +203.13.173.0/24 1; +203.13.224.0/23 1; +203.13.227.0/24 1; +203.13.233.0/24 1; +203.14.24.0/22 1; +203.14.33.0/24 1; +203.14.56.0/24 1; +203.14.61.0/24 1; +203.14.62.0/24 1; +203.14.104.0/24 1; +203.14.114.0/23 1; +203.14.118.0/24 1; +203.14.162.0/24 1; +203.14.192.0/24 1; +203.14.194.0/23 1; +203.14.214.0/24 1; +203.14.231.0/24 1; +203.14.246.0/24 1; +203.15.0.0/20 1; +203.15.20.0/23 1; +203.15.22.0/24 1; +203.15.87.0/24 1; +203.15.88.0/23 1; +203.15.105.0/24 1; +203.15.112.0/21 1; +203.15.130.0/23 1; +203.15.149.0/24 1; +203.15.151.0/24 1; +203.15.156.0/22 1; +203.15.174.0/24 1; +203.15.227.0/24 1; +203.15.238.0/23 1; +203.15.240.0/23 1; +203.15.246.0/24 1; +203.16.10.0/24 1; +203.16.12.0/23 1; +203.16.27.0/24 1; +203.16.38.0/24 1; +203.16.49.0/24 1; +203.16.50.0/23 1; +203.16.58.0/24 1; +203.16.133.0/24 1; +203.16.161.0/24 1; +203.16.162.0/24 1; +203.16.186.0/23 1; +203.16.228.0/24 1; +203.16.238.0/24 1; +203.16.240.0/24 1; +203.16.245.0/24 1; +203.17.2.0/24 1; +203.17.18.0/24 1; +203.17.28.0/24 1; +203.17.39.0/24 1; +203.17.56.0/24 1; +203.17.74.0/23 1; +203.17.88.0/23 1; +203.17.136.0/24 1; +203.17.164.0/24 1; +203.17.187.0/24 1; +203.17.190.0/23 1; +203.17.231.0/24 1; +203.17.233.0/24 1; +203.17.248.0/24 1; +203.17.255.0/24 1; +203.18.2.0/23 1; +203.18.4.0/24 1; +203.18.7.0/24 1; +203.18.31.0/24 1; +203.18.37.0/24 1; +203.18.48.0/23 1; +203.18.52.0/24 1; +203.18.72.0/22 1; +203.18.80.0/23 1; +203.18.87.0/24 1; +203.18.100.0/23 1; +203.18.105.0/24 1; +203.18.107.0/24 1; +203.18.110.0/24 1; +203.18.129.0/24 1; +203.18.131.0/24 1; +203.18.132.0/23 1; +203.18.144.0/24 1; +203.18.153.0/24 1; +203.18.199.0/24 1; +203.18.208.0/24 1; +203.18.211.0/24 1; +203.18.215.0/24 1; +203.19.18.0/24 1; +203.19.24.0/24 1; +203.19.30.0/24 1; +203.19.41.0/24 1; +203.19.44.0/23 1; +203.19.46.0/24 1; +203.19.58.0/24 1; +203.19.60.0/23 1; +203.19.64.0/24 1; +203.19.68.0/24 1; +203.19.72.0/24 1; +203.19.101.0/24 1; +203.19.111.0/24 1; +203.19.131.0/24 1; +203.19.133.0/24 1; +203.19.144.0/24 1; +203.19.149.0/24 1; +203.19.156.0/24 1; +203.19.176.0/24 1; +203.19.178.0/23 1; +203.19.208.0/24 1; +203.19.228.0/22 1; +203.19.233.0/24 1; +203.19.242.0/24 1; +203.19.248.0/23 1; +203.19.255.0/24 1; +203.20.17.0/24 1; +203.20.40.0/23 1; +203.20.48.0/24 1; +203.20.61.0/24 1; +203.20.65.0/24 1; +203.20.84.0/23 1; +203.20.89.0/24 1; +203.20.106.0/23 1; +203.20.115.0/24 1; +203.20.117.0/24 1; +203.20.118.0/23 1; +203.20.122.0/24 1; +203.20.126.0/23 1; +203.20.135.0/24 1; +203.20.140.0/22 1; +203.20.150.0/24 1; +203.20.230.0/24 1; +203.20.232.0/24 1; +203.20.236.0/24 1; +203.21.0.0/23 1; +203.21.2.0/24 1; +203.21.8.0/24 1; +203.21.10.0/24 1; +203.21.18.0/24 1; +203.21.33.0/24 1; +203.21.34.0/24 1; +203.21.41.0/24 1; +203.21.44.0/24 1; +203.21.68.0/24 1; +203.21.82.0/24 1; +203.21.96.0/22 1; +203.21.124.0/24 1; +203.21.136.0/23 1; +203.21.145.0/24 1; +203.21.206.0/24 1; +203.22.24.0/24 1; +203.22.28.0/23 1; +203.22.31.0/24 1; +203.22.68.0/24 1; +203.22.76.0/24 1; +203.22.84.0/24 1; +203.22.87.0/24 1; +203.22.92.0/22 1; +203.22.99.0/24 1; +203.22.106.0/24 1; +203.22.122.0/23 1; +203.22.131.0/24 1; +203.22.163.0/24 1; +203.22.166.0/24 1; +203.22.170.0/24 1; +203.22.176.0/21 1; +203.22.194.0/24 1; +203.22.242.0/23 1; +203.22.245.0/24 1; +203.22.246.0/24 1; +203.22.252.0/23 1; +203.23.0.0/24 1; +203.23.47.0/24 1; +203.23.61.0/24 1; +203.23.62.0/23 1; +203.23.73.0/24 1; +203.23.85.0/24 1; +203.23.92.0/22 1; +203.23.98.0/24 1; +203.23.107.0/24 1; +203.23.112.0/24 1; +203.23.130.0/24 1; +203.23.140.0/23 1; +203.23.172.0/24 1; +203.23.182.0/24 1; +203.23.186.0/23 1; +203.23.192.0/24 1; +203.23.197.0/24 1; +203.23.198.0/24 1; +203.23.204.0/22 1; +203.23.224.0/24 1; +203.23.226.0/23 1; +203.23.228.0/22 1; +203.23.249.0/24 1; +203.23.251.0/24 1; +203.24.13.0/24 1; +203.24.18.0/24 1; +203.24.27.0/24 1; +203.24.43.0/24 1; +203.24.56.0/24 1; +203.24.58.0/24 1; +203.24.67.0/24 1; +203.24.74.0/24 1; +203.24.79.0/24 1; +203.24.80.0/23 1; +203.24.84.0/23 1; +203.24.86.0/24 1; +203.24.90.0/24 1; +203.24.111.0/24 1; +203.24.112.0/24 1; +203.24.116.0/24 1; +203.24.122.0/23 1; +203.24.145.0/24 1; +203.24.152.0/23 1; +203.24.157.0/24 1; +203.24.161.0/24 1; +203.24.167.0/24 1; +203.24.186.0/23 1; +203.24.199.0/24 1; +203.24.202.0/24 1; +203.24.212.0/23 1; +203.24.217.0/24 1; +203.24.219.0/24 1; +203.24.244.0/24 1; +203.25.19.0/24 1; +203.25.20.0/23 1; +203.25.46.0/24 1; +203.25.64.0/23 1; +203.25.91.0/24 1; +203.25.99.0/24 1; +203.25.100.0/24 1; +203.25.106.0/24 1; +203.25.131.0/24 1; +203.25.135.0/24 1; +203.25.138.0/24 1; +203.25.147.0/24 1; +203.25.153.0/24 1; +203.25.154.0/23 1; +203.25.164.0/24 1; +203.25.166.0/24 1; +203.25.174.0/23 1; +203.25.180.0/24 1; +203.25.182.0/24 1; +203.25.191.0/24 1; +203.25.199.0/24 1; +203.25.200.0/24 1; +203.25.202.0/23 1; +203.25.229.0/24 1; +203.25.235.0/24 1; +203.25.236.0/24 1; +203.25.242.0/24 1; +203.26.12.0/24 1; +203.26.34.0/24 1; +203.26.49.0/24 1; +203.26.50.0/24 1; +203.26.55.0/24 1; +203.26.56.0/23 1; +203.26.60.0/24 1; +203.26.65.0/24 1; +203.26.68.0/24 1; +203.26.76.0/24 1; +203.26.80.0/24 1; +203.26.84.0/24 1; +203.26.97.0/24 1; +203.26.102.0/23 1; +203.26.115.0/24 1; +203.26.116.0/24 1; +203.26.129.0/24 1; +203.26.143.0/24 1; +203.26.144.0/24 1; +203.26.148.0/23 1; +203.26.154.0/24 1; +203.26.158.0/23 1; +203.26.170.0/24 1; +203.26.173.0/24 1; +203.26.176.0/24 1; +203.26.185.0/24 1; +203.26.202.0/23 1; +203.26.210.0/24 1; +203.26.214.0/24 1; +203.26.222.0/24 1; +203.26.224.0/24 1; +203.26.228.0/24 1; +203.26.232.0/24 1; +203.27.0.0/24 1; +203.27.10.0/24 1; +203.27.15.0/24 1; +203.27.16.0/24 1; +203.27.20.0/24 1; +203.27.22.0/23 1; +203.27.40.0/24 1; +203.27.45.0/24 1; +203.27.53.0/24 1; +203.27.65.0/24 1; +203.27.66.0/24 1; +203.27.81.0/24 1; +203.27.88.0/24 1; +203.27.102.0/24 1; +203.27.109.0/24 1; +203.27.117.0/24 1; +203.27.121.0/24 1; +203.27.122.0/23 1; +203.27.125.0/24 1; +203.27.200.0/24 1; +203.27.202.0/24 1; +203.27.233.0/24 1; +203.27.241.0/24 1; +203.27.250.0/24 1; +203.28.10.0/24 1; +203.28.12.0/24 1; +203.28.33.0/24 1; +203.28.34.0/23 1; +203.28.43.0/24 1; +203.28.44.0/24 1; +203.28.54.0/24 1; +203.28.56.0/24 1; +203.28.73.0/24 1; +203.28.74.0/24 1; +203.28.76.0/24 1; +203.28.86.0/24 1; +203.28.88.0/24 1; +203.28.112.0/24 1; +203.28.131.0/24 1; +203.28.136.0/24 1; +203.28.140.0/24 1; +203.28.145.0/24 1; +203.28.165.0/24 1; +203.28.169.0/24 1; +203.28.170.0/24 1; +203.28.178.0/23 1; +203.28.185.0/24 1; +203.28.187.0/24 1; +203.28.196.0/24 1; +203.28.226.0/23 1; +203.28.239.0/24 1; +203.29.2.0/24 1; +203.29.8.0/23 1; +203.29.13.0/24 1; +203.29.14.0/24 1; +203.29.28.0/24 1; +203.29.46.0/24 1; +203.29.57.0/24 1; +203.29.61.0/24 1; +203.29.63.0/24 1; +203.29.69.0/24 1; +203.29.73.0/24 1; +203.29.81.0/24 1; +203.29.90.0/24 1; +203.29.95.0/24 1; +203.29.100.0/24 1; +203.29.103.0/24 1; +203.29.112.0/24 1; +203.29.120.0/22 1; +203.29.182.0/23 1; +203.29.187.0/24 1; +203.29.189.0/24 1; +203.29.190.0/24 1; +203.29.205.0/24 1; +203.29.210.0/24 1; +203.29.217.0/24 1; +203.29.227.0/24 1; +203.29.231.0/24 1; +203.29.233.0/24 1; +203.29.234.0/24 1; +203.29.248.0/24 1; +203.29.254.0/23 1; +203.30.16.0/23 1; +203.30.25.0/24 1; +203.30.26.0/23 1; +203.30.29.0/24 1; +203.30.66.0/24 1; +203.30.81.0/24 1; +203.30.87.0/24 1; +203.30.111.0/24 1; +203.30.121.0/24 1; +203.30.123.0/24 1; +203.30.152.0/24 1; +203.30.156.0/24 1; +203.30.162.0/24 1; +203.30.173.0/24 1; +203.30.175.0/24 1; +203.30.187.0/24 1; +203.30.194.0/24 1; +203.30.217.0/24 1; +203.30.220.0/24 1; +203.30.222.0/24 1; +203.30.232.0/23 1; +203.30.235.0/24 1; +203.30.240.0/23 1; +203.30.246.0/24 1; +203.30.250.0/23 1; +203.31.45.0/24 1; +203.31.46.0/24 1; +203.31.49.0/24 1; +203.31.51.0/24 1; +203.31.54.0/23 1; +203.31.69.0/24 1; +203.31.72.0/24 1; +203.31.80.0/24 1; +203.31.85.0/24 1; +203.31.97.0/24 1; +203.31.105.0/24 1; +203.31.106.0/24 1; +203.31.108.0/23 1; +203.31.124.0/24 1; +203.31.162.0/24 1; +203.31.174.0/24 1; +203.31.177.0/24 1; +203.31.181.0/24 1; +203.31.187.0/24 1; +203.31.189.0/24 1; +203.31.204.0/24 1; +203.31.220.0/24 1; +203.31.222.0/23 1; +203.31.225.0/24 1; +203.31.229.0/24 1; +203.31.248.0/23 1; +203.31.253.0/24 1; +203.32.20.0/24 1; +203.32.56.0/24 1; +203.32.60.0/24 1; +203.32.62.0/24 1; +203.32.76.0/24 1; +203.32.81.0/24 1; +203.32.95.0/24 1; +203.32.102.0/24 1; +203.32.105.0/24 1; +203.32.130.0/24 1; +203.32.133.0/24 1; +203.32.140.0/24 1; +203.32.152.0/24 1; +203.32.192.0/24 1; +203.32.196.0/24 1; +203.32.212.0/24 1; +203.33.4.0/24 1; +203.33.7.0/24 1; +203.33.12.0/23 1; +203.33.21.0/24 1; +203.33.26.0/24 1; +203.33.32.0/24 1; +203.33.63.0/24 1; +203.33.64.0/24 1; +203.33.67.0/24 1; +203.33.68.0/24 1; +203.33.73.0/24 1; +203.33.79.0/24 1; +203.33.100.0/24 1; +203.33.122.0/24 1; +203.33.129.0/24 1; +203.33.131.0/24 1; +203.33.145.0/24 1; +203.33.156.0/24 1; +203.33.174.0/24 1; +203.33.185.0/24 1; +203.33.200.0/24 1; +203.33.204.0/24 1; +203.33.226.0/24 1; +203.33.233.0/24 1; +203.33.250.0/24 1; +203.34.192.0/21 1; +203.34.204.0/22 1; +203.55.30.0/24 1; +203.55.93.0/24 1; +203.55.101.0/24 1; +203.55.109.0/24 1; +203.55.110.0/24 1; +203.55.119.0/24 1; +203.55.128.0/23 1; +203.55.146.0/23 1; +203.55.192.0/24 1; +203.55.196.0/24 1; +203.55.218.0/23 1; +203.55.221.0/24 1; +203.55.224.0/24 1; +203.56.1.0/24 1; +203.56.12.0/24 1; +203.56.50.0/23 1; +203.56.52.0/22 1; +203.56.110.0/24 1; +203.56.121.0/24 1; +203.56.161.0/24 1; +203.56.169.0/24 1; +203.56.172.0/23 1; +203.56.175.0/24 1; +203.56.183.0/24 1; +203.56.185.0/24 1; +203.56.187.0/24 1; +203.56.192.0/24 1; +203.56.198.0/24 1; +203.56.201.0/24 1; +203.56.208.0/23 1; +203.57.61.0/24 1; +203.62.131.0/24 1; +203.62.161.0/24 1; +203.62.197.0/24 1; +203.62.228.0/22 1; +203.62.234.0/24 1; +203.62.246.0/24 1; +203.76.160.0/22 1; +203.76.168.0/22 1; +203.77.180.0/22 1; +203.80.132.0/22 1; +203.80.140.0/22 1; +203.81.0.0/21 1; +203.82.16.0/21 1; +203.83.0.0/22 1; +203.89.8.0/23 1; +203.89.136.0/22 1; +203.90.8.0/22 1; +203.92.0.0/22 1; +203.93.115.0/25 1; +203.93.187.128/25 1; +203.99.8.0/21 1; +203.100.63.0/24 1; +203.104.32.0/20 1; +203.110.234.0/24 1; +203.119.116.0/22 1; +203.128.225.0/24 1; +203.128.226.0/23 1; +203.128.228.0/22 1; +203.129.12.0/22 1; +203.148.80.0/22 1; +203.149.92.0/22 1; +203.153.0.0/22 1; +203.160.129.0/24 1; +203.161.0.0/22 1; +203.171.0.0/22 1; +203.189.0.0/23 1; +203.189.6.0/23 1; +203.189.112.0/22 1; +203.190.96.0/20 1; +203.190.249.0/24 1; +203.191.0.0/23 1; +203.195.114.0/23 1; +203.202.236.0/23 1; +203.215.235.0/24 1; +203.223.23.0/24 1; +210.13.192.0/19 1; +210.14.162.0/24 1; +210.14.176.0/22 1; +210.15.24.0/24 1; +210.15.26.0/24 1; +210.15.35.0/24 1; +210.15.36.0/23 1; +210.15.39.0/24 1; +210.15.46.0/24 1; +210.15.63.0/24 1; +210.34.0.0/17 1; +210.34.128.0/18 1; +210.34.192.0/20 1; +210.34.208.0/21 1; +210.34.216.0/22 1; +210.34.224.0/22 1; +210.34.232.0/21 1; +210.34.240.0/20 1; +210.52.80.128/29 1; +210.52.128.68/30 1; +210.52.128.72/29 1; +210.52.144.128/25 1; +210.52.145.128/25 1; +210.52.234.128/26 1; +210.53.46.0/23 1; +210.53.48.0/22 1; +210.53.52.0/24 1; +210.53.58.0/23 1; +210.53.60.0/22 1; +210.53.64.0/24 1; +211.80.160.0/19 1; +211.80.192.0/18 1; +211.97.104.0/21 1; +211.97.112.0/20 1; +211.97.128.0/19 1; +211.97.160.0/21 1; +211.98.38.0/23 1; +211.98.40.0/23 1; +211.98.52.0/24 1; +211.98.145.0/24 1; +211.98.146.0/24 1; +211.98.170.64/28 1; +211.138.132.0/22 1; +211.138.136.0/21 1; +211.138.144.0/20 1; +211.143.144.0/20 1; +211.143.160.0/19 1; +211.143.192.0/19 1; +211.148.224.0/19 1; +211.156.80.0/20 1; +211.161.48.0/22 1; +211.162.32.0/20 1; +211.162.196.0/22 1; +211.162.233.0/24 1; +211.162.236.0/22 1; +211.165.129.0/24 1; +211.165.133.0/24 1; +211.165.134.0/24 1; +218.5.0.0/16 1; +218.6.0.0/17 1; +218.30.146.0/24 1; +218.66.0.0/16 1; +218.67.0.0/17 1; +218.85.0.0/16 1; +218.86.0.0/17 1; +218.98.96.0/19 1; +218.100.89.0/24 1; +218.100.95.0/24 1; +218.104.128.0/20 1; +218.104.224.0/19 1; +218.105.16.0/20 1; +218.105.32.0/19 1; +218.105.64.0/18 1; +218.105.128.0/17 1; +218.106.140.0/22 1; +218.106.144.0/20 1; +218.107.192.0/19 1; +218.185.240.0/22 1; +218.185.244.0/23 1; +218.185.246.0/24 1; +218.193.0.0/19 1; +218.193.32.0/21 1; +218.193.48.0/20 1; +218.193.64.0/18 1; +218.207.96.0/19 1; +218.207.128.0/18 1; +218.207.192.0/19 1; +219.158.9.112/30 1; +219.158.10.246/31 1; +219.158.12.44/30 1; +219.158.12.48/29 1; +219.158.12.56/30 1; +219.158.12.156/30 1; +219.158.14.174/31 1; +219.158.14.176/30 1; +219.158.14.252/30 1; +219.158.15.92/31 1; +219.158.15.106/31 1; +219.158.17.154/31 1; +219.158.17.218/31 1; +219.158.18.8/30 1; +219.158.18.150/31 1; +219.158.18.234/31 1; +219.158.18.238/31 1; +219.158.19.250/31 1; +219.158.19.254/31 1; +219.158.22.54/31 1; +219.158.22.66/31 1; +219.158.22.92/31 1; +219.158.22.106/31 1; +219.158.22.182/31 1; +219.158.22.198/31 1; +219.158.23.66/31 1; +219.158.96.174/31 1; +219.158.96.178/31 1; +219.158.98.78/31 1; +219.158.99.86/31 1; +219.158.99.110/31 1; +219.158.99.112/30 1; +219.158.101.246/31 1; +219.158.104.26/31 1; +219.158.105.30/31 1; +219.158.105.62/31 1; +219.158.106.38/31 1; +219.158.106.62/31 1; +219.158.108.66/31 1; +219.158.109.234/31 1; +219.158.112.86/31 1; +219.158.116.230/31 1; +219.158.117.126/31 1; +219.220.80.0/20 1; +219.220.96.0/19 1; +219.228.224.0/19 1; +219.229.0.0/17 1; +219.229.128.0/18 1; +219.232.128.0/19 1; +219.243.252.0/24 1; +220.113.188.0/22 1; +220.113.192.0/20 1; +220.113.208.0/22 1; +220.160.0.0/15 1; +220.162.0.0/16 1; +220.192.64.0/21 1; +220.200.0.0/18 1; +220.205.104.0/22 1; +220.205.108.0/23 1; +220.206.239.0/24 1; +220.207.56.0/21 1; +220.207.64.0/22 1; +220.249.128.0/18 1; +220.250.0.0/18 1; +221.175.0.0/16 1; +221.176.16.36/31 1; +221.176.18.26/31 1; +221.176.22.164/31 1; +221.176.22.176/31 1; +221.177.96.0/20 1; +221.183.11.116/31 1; +221.183.11.234/31 1; +221.183.13.218/31 1; +221.183.13.222/31 1; +221.183.22.130/31 1; +221.183.22.174/31 1; +221.183.22.176/31 1; +221.183.22.180/31 1; +221.183.22.206/31 1; +221.183.25.172/30 1; +221.183.25.176/29 1; +221.183.25.184/30 1; +221.183.27.188/30 1; +221.183.27.192/27 1; +221.183.27.224/28 1; +221.183.27.240/30 1; +221.183.40.158/31 1; +221.183.40.234/31 1; +221.183.42.42/31 1; +221.183.48.8/29 1; +221.183.48.18/31 1; +221.183.48.22/31 1; +221.183.48.24/29 1; +222.47.0.0/16 1; +222.76.0.0/14 1; +222.205.160.0/19 1; +222.205.192.0/18 1; +223.103.6.0/24 1; +223.104.6.0/24 1; +223.104.45.0/24 1; +223.104.46.0/23 1; +223.104.48.0/21 1; +223.210.32.0/20 1; +223.210.48.0/22 1; +223.210.160.0/19 1; +2001:df2:80::/48 1; +2001:df3:c380::/48 1; +2001:df3:d880::/48 1; +2001:df4:1880::/48 1; +2001:df4:2e80::/48 1; +2001:df4:3d80::/48 1; +2001:df4:4b80::/48 1; +2001:df4:c580::/48 1; +2001:df4:c780::/48 1; +2001:df5:2080::/48 1; +2400:5fc0::/32 1; +2400:6040::/32 1; +2400:60c0::/32 1; +2400:66a0::/32 1; +2400:73c0::/32 1; +2400:74c0::/32 1; +2400:8840::/32 1; +2401:ba0::/32 1; +2401:1dc0::/32 1; +2401:7f80::/32 1; +2402:2bc0::/32 1; +2402:4440::/32 1; +2402:5880::/32 1; +2402:d980::/32 1; +2404:36c0::/32 1; +2404:b900::/32 1; +2405:6880::/32 1; +2405:c880::/32 1; +2405:c980::/32 1; +2405:ca80::/32 1; +2405:cb80::/32 1; +2405:cc80::/32 1; +2405:cd80::/32 1; +2406:840:e80f::/48 1; +2406:840:eb08::/48 1; +2406:840:feda::/47 1; +2406:840:fedc::/46 1; +2406:1e40::/32 1; +2406:6f80::/32 1; +2407:7d00::/32 1; +2408:4011::/32 1; +2408:4012::/32 1; +2408:844b:200::/40 1; +240e:37b:900::/40 1; +2602:feda:e31::/48 1; +2602:feda:e32::/47 1; +2602:feda:e34::/46 1; +2602:feda:e38::/45 1; +2606:54c0:1f88::/45 1; +2606:54c0:1f90::/44 1; +2606:54c0:1fa0::/43 1; +2606:54c0:1fc0::/44 1; +2606:54c0:1fd0::/45 1; +2606:54c3:0:298::/64 1; +2606:54c3:0:47c::/64 1; +2606:54c3:0:765::/64 1; +2606:54c3:0:799::/64 1; +2606:54c3:0:94b::/64 1; +2606:54c3:0:a55::/64 1; +2606:54c3:0:c47::/64 1; +2606:54c3:0:c77::/64 1; +2606:54c3:0:17d9::/64 1; +2606:54c3:0:1823::/64 1; +2a06:1281:8000::/35 1; +2a06:1281:a000::/36 1; +2a06:1281:b000::/45 1; +2a06:1281:b008::/47 1; +2a06:1281:b00a::/48 1; +2a09:bac1:1980:dde8::/64 1; +2a09:bac1:1980:ddf8::/64 1; +2a09:bac1:1980:de20::/64 1; +2a09:bac1:1980:e438::/64 1; +2a09:bac1:1980:e690::/64 1; +2a09:bac1:1980:e698::/64 1; +2a09:bac1:1980:e728::/64 1; +2a09:bac1:1980:e790::/64 1; +2a09:bac1:1980:e7b8::/64 1; +2a09:bac1:1980:e7e0::/64 1; +2a09:bac1:19a0:dde8::/64 1; +2a09:bac1:19a0:ddf8::/64 1; +2a09:bac1:19a0:de20::/64 1; +2a09:bac1:19a0:e438::/64 1; +2a09:bac1:19a0:e690::/64 1; +2a09:bac1:19a0:e698::/64 1; +2a09:bac1:19a0:e728::/64 1; +2a09:bac1:19a0:e790::/64 1; +2a09:bac1:19a0:e7b8::/64 1; +2a09:bac1:19a0:e7e0::/64 1; +2a09:bac1:19c0:dde8::/64 1; +2a09:bac1:19c0:ddf8::/64 1; +2a09:bac1:19c0:de20::/64 1; +2a09:bac1:19c0:e438::/64 1; +2a09:bac1:19c0:e690::/64 1; +2a09:bac1:19c0:e698::/64 1; +2a09:bac1:19c0:e728::/64 1; +2a09:bac1:19c0:e790::/64 1; +2a09:bac1:19c0:e7b8::/64 1; +2a09:bac1:19c0:e7e0::/64 1; +2a09:bac1:19e0:dde8::/64 1; +2a09:bac1:19e0:ddf8::/64 1; +2a09:bac1:19e0:de20::/64 1; +2a09:bac1:19e0:e438::/64 1; +2a09:bac1:19e0:e690::/64 1; +2a09:bac1:19e0:e698::/64 1; +2a09:bac1:19e0:e728::/64 1; +2a09:bac1:19e0:e790::/64 1; +2a09:bac1:19e0:e7b8::/64 1; +2a09:bac1:19e0:e7e0::/64 1; +2a09:bac2:1f88::/45 1; +2a09:bac2:1f90::/44 1; +2a09:bac2:1fa0::/43 1; +2a09:bac2:1fc0::/44 1; +2a09:bac2:1fd0::/45 1; +2a09:bac3:1f88::/45 1; +2a09:bac3:1f90::/44 1; +2a09:bac3:1fa0::/43 1; +2a09:bac3:1fc0::/44 1; +2a09:bac3:1fd0::/45 1; +2a09:bac5:1fb8::/45 1; +2a09:bac5:1fc0::/42 1; +2a09:bac5:2000::/45 1; +2a09:bac6:1fb8::/45 1; +2a09:bac6:1fc0::/42 1; +2a09:bac6:2000::/45 1; +2a0e:8f02:2180::/47 1; +2a0e:8f02:2184::/46 1; +2a0e:8f02:2188::/45 1; diff --git a/minigate/root/usr/lib/minigate/geo/360000.conf b/minigate/root/usr/lib/minigate/geo/360000.conf new file mode 100644 index 000000000..d9cf3ad45 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/360000.conf @@ -0,0 +1,538 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 江西省 +36.134.80.0/23 1; +36.192.195.0/24 1; +36.192.196.0/22 1; +36.192.200.0/22 1; +39.144.169.0/24 1; +39.144.170.0/23 1; +39.144.172.0/22 1; +39.144.176.0/24 1; +39.158.0.0/15 1; +39.160.0.0/15 1; +39.166.0.0/15 1; +39.168.0.0/15 1; +39.176.0.0/14 1; +42.247.11.224/28 1; +42.247.26.176/28 1; +42.247.29.16/28 1; +42.247.29.32/27 1; +42.247.31.64/27 1; +42.247.31.96/28 1; +42.247.31.208/28 1; +42.247.31.240/28 1; +42.247.33.80/28 1; +42.247.39.192/28 1; +42.247.42.176/28 1; +42.247.43.16/28 1; +42.247.45.128/27 1; +42.247.45.224/28 1; +42.247.46.0/27 1; +42.247.46.64/27 1; +43.224.24.0/22 1; +43.236.24.0/22 1; +43.237.200.0/22 1; +43.238.4.0/22 1; +43.238.112.0/22 1; +43.238.160.0/22 1; +43.240.172.0/22 1; +43.242.8.0/21 1; +43.242.16.0/21 1; +45.117.252.0/22 1; +45.121.96.0/22 1; +45.122.32.0/22 1; +49.211.128.0/17 1; +49.221.128.0/23 1; +58.17.0.0/17 1; +58.200.68.0/24 1; +59.43.67.0/24 1; +59.52.0.0/14 1; +59.62.0.0/15 1; +59.81.88.0/23 1; +60.200.0.0/14 1; +60.204.0.0/16 1; +61.131.128.0/17 1; +61.180.0.0/17 1; +61.232.118.0/23 1; +61.232.120.0/22 1; +61.232.124.0/23 1; +61.233.208.0/20 1; +61.233.224.0/19 1; +61.235.0.0/19 1; +61.235.32.0/22 1; +61.237.1.228/30 1; +61.237.13.160/27 1; +61.237.122.186/31 1; +61.237.122.190/31 1; +61.242.144.0/20 1; +103.22.0.0/22 1; +103.32.24.0/22 1; +103.33.200.0/22 1; +103.34.4.0/22 1; +103.34.112.0/22 1; +103.34.160.0/22 1; +103.37.208.0/20 1; +103.53.182.0/23 1; +103.58.24.0/22 1; +103.61.176.0/22 1; +103.95.88.0/22 1; +103.110.32.0/22 1; +103.135.236.0/24 1; +103.197.253.0/24 1; +103.197.254.0/23 1; +103.204.24.0/22 1; +103.240.124.0/22 1; +103.250.252.0/22 1; +104.28.43.54/31 1; +104.28.66.92/31 1; +104.28.69.92/31 1; +104.28.83.64/31 1; +104.28.99.58/31 1; +104.28.101.58/31 1; +104.28.117.94/31 1; +104.28.120.94/31 1; +104.28.177.189/32 1; +104.28.177.190/31 1; +104.28.177.192/30 1; +104.28.177.196/32 1; +104.28.209.224/29 1; +104.28.241.224/29 1; +106.4.0.0/14 1; +106.224.0.0/12 1; +110.192.0.0/16 1; +111.72.0.0/13 1; +112.54.120.0/21 1; +112.54.212.0/22 1; +112.59.128.0/19 1; +112.59.160.0/20 1; +113.194.0.0/15 1; +115.148.0.0/14 1; +115.152.0.0/15 1; +115.168.45.0/24 1; +115.168.77.0/24 1; +116.153.0.0/16 1; +117.21.0.0/16 1; +117.40.0.0/14 1; +117.44.0.0/15 1; +117.136.21.0/24 1; +117.136.48.0/23 1; +117.136.60.0/24 1; +117.136.108.0/23 1; +117.136.110.0/24 1; +117.136.121.0/24 1; +117.136.122.0/23 1; +117.136.124.0/22 1; +117.142.173.0/24 1; +117.142.174.0/23 1; +117.142.176.0/24 1; +117.162.0.0/15 1; +117.164.0.0/14 1; +117.168.0.0/14 1; +117.178.0.0/16 1; +118.212.0.0/16 1; +120.203.0.0/16 1; +120.206.0.0/16 1; +121.192.128.0/21 1; +121.192.136.0/23 1; +121.192.138.0/24 1; +122.72.25.0/24 1; +122.72.80.0/23 1; +122.93.0.0/16 1; +123.75.0.0/16 1; +123.94.7.128/25 1; +125.213.16.0/20 1; +171.34.0.0/15 1; +182.84.0.0/14 1; +182.96.0.0/12 1; +183.216.0.0/14 1; +202.97.18.30/31 1; +202.97.18.34/31 1; +202.97.18.36/30 1; +202.97.18.40/30 1; +202.97.19.146/31 1; +202.97.19.148/30 1; +202.97.19.174/31 1; +202.97.22.8/29 1; +202.97.22.16/30 1; +202.97.22.20/31 1; +202.97.22.70/31 1; +202.97.22.72/31 1; +202.97.22.84/31 1; +202.97.22.104/29 1; +202.97.22.116/30 1; +202.97.23.2/31 1; +202.97.23.74/31 1; +202.97.23.76/30 1; +202.97.23.126/31 1; +202.97.23.130/31 1; +202.97.23.214/31 1; +202.97.28.146/31 1; +202.97.28.148/30 1; +202.97.28.152/29 1; +202.97.28.160/28 1; +202.97.28.176/29 1; +202.97.28.198/31 1; +202.97.32.156/30 1; +202.97.33.90/31 1; +202.97.33.226/31 1; +202.97.33.228/30 1; +202.97.36.114/31 1; +202.97.37.158/31 1; +202.97.39.50/31 1; +202.97.39.210/31 1; +202.97.41.32/31 1; +202.97.41.126/31 1; +202.97.41.140/31 1; +202.97.41.194/31 1; +202.97.41.198/31 1; +202.97.41.202/31 1; +202.97.41.238/31 1; +202.97.42.68/30 1; +202.97.43.198/31 1; +202.97.44.120/30 1; +202.97.44.188/30 1; +202.97.44.192/30 1; +202.97.44.204/30 1; +202.97.44.220/30 1; +202.97.44.224/29 1; +202.97.44.246/31 1; +202.97.44.250/31 1; +202.97.46.240/30 1; +202.97.55.74/32 1; +202.97.55.82/31 1; +202.97.55.86/32 1; +202.97.55.102/31 1; +202.97.55.104/29 1; +202.97.55.112/28 1; +202.97.55.128/29 1; +202.97.55.136/30 1; +202.97.55.142/31 1; +202.97.61.178/31 1; +202.97.61.180/30 1; +202.97.65.226/31 1; +202.97.65.228/30 1; +202.97.65.232/29 1; +202.97.65.240/28 1; +202.97.75.2/31 1; +202.97.75.6/31 1; +202.97.75.10/31 1; +202.97.75.14/31 1; +202.97.75.18/31 1; +202.97.75.22/31 1; +202.97.75.30/31 1; +202.97.75.34/31 1; +202.97.75.38/31 1; +202.97.75.42/31 1; +202.97.75.46/31 1; +202.97.75.50/31 1; +202.97.75.54/31 1; +202.97.75.58/31 1; +202.97.75.62/31 1; +202.97.75.66/31 1; +202.97.75.74/31 1; +202.97.75.78/31 1; +202.97.75.82/31 1; +202.97.75.86/31 1; +202.97.75.90/31 1; +202.97.75.94/31 1; +202.97.75.102/31 1; +202.97.75.106/31 1; +202.97.75.110/31 1; +202.97.75.118/31 1; +202.97.75.130/31 1; +202.97.75.134/31 1; +202.97.75.138/31 1; +202.97.75.142/31 1; +202.97.75.154/31 1; +202.97.75.158/31 1; +202.97.75.162/31 1; +202.97.75.182/31 1; +202.97.75.202/31 1; +202.97.75.206/31 1; +202.97.75.210/31 1; +202.97.75.214/31 1; +202.97.75.216/29 1; +202.97.75.226/31 1; +202.97.75.228/30 1; +202.97.75.232/29 1; +202.97.75.240/28 1; +202.97.78.30/31 1; +202.97.78.242/31 1; +202.97.79.42/31 1; +202.97.79.46/31 1; +202.97.82.74/31 1; +202.97.82.110/31 1; +202.97.82.112/28 1; +202.101.192.0/18 1; +202.109.128.0/18 1; +202.112.38.226/31 1; +202.160.156.0/22 1; +202.179.168.0/22 1; +210.15.13.0/24 1; +210.15.29.0/24 1; +210.15.42.0/24 1; +210.15.48.0/24 1; +210.15.53.0/24 1; +210.15.59.0/24 1; +210.22.206.0/24 1; +210.35.0.0/18 1; +210.35.128.0/20 1; +210.35.144.0/21 1; +210.35.152.0/22 1; +210.35.160.0/19 1; +210.35.192.0/18 1; +210.51.228.0/24 1; +210.53.8.0/23 1; +210.53.10.0/24 1; +210.75.93.0/26 1; +211.98.46.0/23 1; +211.98.49.0/24 1; +211.98.50.0/23 1; +211.98.170.192/28 1; +211.98.251.0/24 1; +211.102.224.0/24 1; +211.102.225.0/25 1; +211.102.225.128/26 1; +211.102.225.192/27 1; +211.102.225.224/29 1; +211.102.225.232/30 1; +211.138.208.0/20 1; +211.141.80.0/20 1; +211.141.96.0/19 1; +211.141.128.0/19 1; +211.161.112.0/22 1; +218.64.0.0/16 1; +218.65.0.0/17 1; +218.87.0.0/16 1; +218.95.0.0/17 1; +218.193.192.0/18 1; +218.204.64.0/18 1; +218.204.128.0/19 1; +219.158.9.134/31 1; +219.158.10.38/31 1; +219.158.10.42/31 1; +219.158.12.142/31 1; +219.158.15.90/31 1; +219.158.15.94/31 1; +219.158.16.174/31 1; +219.158.16.176/30 1; +219.158.17.130/31 1; +219.158.18.134/31 1; +219.158.19.174/31 1; +219.158.19.242/31 1; +219.158.20.206/31 1; +219.158.20.214/31 1; +219.158.20.234/31 1; +219.158.20.246/31 1; +219.158.20.250/31 1; +219.158.23.46/31 1; +219.158.23.50/31 1; +219.158.23.90/31 1; +219.158.23.142/31 1; +219.158.23.150/31 1; +219.158.23.154/31 1; +219.158.23.156/31 1; +219.158.23.158/32 1; +219.158.23.162/31 1; +219.158.23.166/31 1; +219.158.23.170/31 1; +219.158.24.86/31 1; +219.158.24.88/29 1; +219.158.25.72/29 1; +219.158.25.80/28 1; +219.158.25.96/27 1; +219.158.25.128/29 1; +219.158.25.144/30 1; +219.158.25.168/29 1; +219.158.25.176/29 1; +219.158.97.42/31 1; +219.158.98.170/31 1; +219.158.98.194/31 1; +219.158.98.210/31 1; +219.158.98.214/31 1; +219.158.100.250/31 1; +219.158.108.42/31 1; +219.158.109.66/31 1; +219.158.109.68/30 1; +219.158.109.72/30 1; +219.158.116.214/31 1; +219.158.117.128/30 1; +219.158.117.200/30 1; +219.220.0.0/18 1; +219.228.192.0/19 1; +219.229.192.0/18 1; +219.243.251.0/24 1; +220.114.232.0/22 1; +220.175.0.0/16 1; +220.176.0.0/15 1; +220.203.0.0/19 1; +220.204.108.0/24 1; +220.248.192.0/19 1; +221.174.118.0/24 1; +221.176.16.12/31 1; +221.176.16.252/31 1; +221.176.19.244/31 1; +221.176.19.252/31 1; +221.176.20.80/31 1; +221.176.21.248/31 1; +221.176.22.60/31 1; +221.176.22.84/31 1; +221.176.22.174/31 1; +221.177.146.0/23 1; +221.177.148.0/22 1; +221.183.10.82/31 1; +221.183.10.160/31 1; +221.183.10.176/31 1; +221.183.11.180/31 1; +221.183.11.184/29 1; +221.183.11.192/30 1; +221.183.11.196/31 1; +221.183.11.224/30 1; +221.183.12.0/29 1; +221.183.13.0/29 1; +221.183.14.104/29 1; +221.183.14.112/29 1; +221.183.19.0/31 1; +221.183.22.68/30 1; +221.183.22.72/31 1; +221.183.26.84/30 1; +221.183.26.88/30 1; +221.183.40.166/31 1; +221.183.40.242/31 1; +221.183.48.104/29 1; +221.183.48.112/28 1; +221.183.48.128/27 1; +221.183.48.160/29 1; +221.183.51.0/29 1; +222.49.0.0/17 1; +222.204.0.0/17 1; +223.82.0.0/15 1; +223.84.0.0/16 1; +223.103.10.0/24 1; +223.103.45.0/24 1; +223.103.53.0/24 1; +223.103.54.0/24 1; +223.104.10.0/24 1; +223.104.31.0/24 1; +223.104.169.0/24 1; +223.104.170.0/23 1; +223.104.172.0/23 1; +223.104.174.0/24 1; +2001:df4:a680::/48 1; +2401:90a0::/32 1; +2401:9260::/32 1; +2403:6880::/32 1; +2405:5240:400::/38 1; +2405:5240:c00::/38 1; +2405:5240:1000::/36 1; +2405:5240:2000::/35 1; +2405:5240:4000::/34 1; +2405:5240:8000::/33 1; +2407:cf00:100::/40 1; +2407:cf00:200::/39 1; +2407:cf00:400::/38 1; +2407:cf00:800::/37 1; +2407:cf00:1000::/36 1; +2407:cf00:2000::/35 1; +2407:cf00:4000::/34 1; +2407:cf00:8000::/33 1; +2408:824c:200::/40 1; +2408:844c:100::/40 1; +2408:844c:2300::/40 1; +2408:844c:3900::/40 1; +2408:844c:4900::/40 1; +2408:844c:5d00::/40 1; +2408:844c:af00::/40 1; +2408:844c:c100::/40 1; +2408:844d:300::/40 1; +2408:844d:900::/40 1; +2408:844d:3900::/40 1; +2408:844d:4900::/40 1; +2408:844d:9f00::/40 1; +2408:844d:a100::/40 1; +2408:844d:bd00::/40 1; +2408:844d:c100::/40 1; +240a:42b4:4600::/40 1; +240a:42b6:4600::/40 1; +240e:370:4900::/40 1; +240e:370:5d00::/40 1; +240e:370:7500::/40 1; +240e:460:3d00::/40 1; +240e:460:4900::/40 1; +240e:462:a00::/40 1; +240e:462:4f00::/40 1; +240e:462:5c00::/40 1; +240e:860::/40 1; +2606:54c0:2378::/45 1; +2606:54c0:2380::/42 1; +2606:54c0:23c0::/45 1; +2606:54c3:0:5f3::/64 1; +2606:54c3:0:73c::/64 1; +2606:54c3:0:75f::/64 1; +2606:54c3:0:b83::/64 1; +2606:54c3:0:c22::/64 1; +2606:54c3:0:1015::/64 1; +2606:54c3:0:1162::/64 1; +2606:54c3:0:13ed::/64 1; +2606:54c3:0:19a0::/64 1; +2606:54c3:0:1a66::/64 1; +2a09:bac1:1980:b0::/64 1; +2a09:bac1:1980:e1e0::/64 1; +2a09:bac1:1980:e220::/64 1; +2a09:bac1:1980:e250::/64 1; +2a09:bac1:1980:e558::/64 1; +2a09:bac1:1980:ee80::/64 1; +2a09:bac1:1980:ef48::/64 1; +2a09:bac1:1980:efa0::/64 1; +2a09:bac1:1980:eff8::/64 1; +2a09:bac1:1980:f058::/64 1; +2a09:bac1:19a0:b0::/64 1; +2a09:bac1:19a0:e1e0::/64 1; +2a09:bac1:19a0:e220::/64 1; +2a09:bac1:19a0:e250::/64 1; +2a09:bac1:19a0:e558::/64 1; +2a09:bac1:19a0:ee80::/64 1; +2a09:bac1:19a0:ef48::/64 1; +2a09:bac1:19a0:efa0::/64 1; +2a09:bac1:19a0:eff8::/64 1; +2a09:bac1:19a0:f058::/64 1; +2a09:bac1:19c0:b0::/64 1; +2a09:bac1:19c0:e1e0::/64 1; +2a09:bac1:19c0:e220::/64 1; +2a09:bac1:19c0:e250::/64 1; +2a09:bac1:19c0:e558::/64 1; +2a09:bac1:19c0:ee80::/64 1; +2a09:bac1:19c0:ef48::/64 1; +2a09:bac1:19c0:efa0::/64 1; +2a09:bac1:19c0:eff8::/64 1; +2a09:bac1:19c0:f058::/64 1; +2a09:bac1:19e0:b0::/64 1; +2a09:bac1:19e0:e1e0::/64 1; +2a09:bac1:19e0:e220::/64 1; +2a09:bac1:19e0:e250::/64 1; +2a09:bac1:19e0:e558::/64 1; +2a09:bac1:19e0:ee80::/64 1; +2a09:bac1:19e0:ef48::/64 1; +2a09:bac1:19e0:efa0::/64 1; +2a09:bac1:19e0:eff8::/64 1; +2a09:bac1:19e0:f058::/64 1; +2a09:bac2:2378::/45 1; +2a09:bac2:2380::/42 1; +2a09:bac2:23c0::/45 1; +2a09:bac3:2378::/45 1; +2a09:bac3:2380::/42 1; +2a09:bac3:23c0::/45 1; +2a09:bac5:23a8::/45 1; +2a09:bac5:23b0::/44 1; +2a09:bac5:23c0::/43 1; +2a09:bac5:23e0::/44 1; +2a09:bac5:23f0::/45 1; +2a09:bac6:23a8::/45 1; +2a09:bac6:23b0::/44 1; +2a09:bac6:23c0::/43 1; +2a09:bac6:23e0::/44 1; +2a09:bac6:23f0::/45 1; +2a0d:2406:514::/46 1; +2a0d:2406:518::/45 1; +2a10:2f01:100::/40 1; +2a12:3fc7::/48 1; +2a12:3fc7:8000::/33 1; diff --git a/minigate/root/usr/lib/minigate/geo/370000.conf b/minigate/root/usr/lib/minigate/geo/370000.conf new file mode 100644 index 000000000..22fe59aa8 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/370000.conf @@ -0,0 +1,1074 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 山东省 +1.51.144.0/20 1; +1.51.160.0/19 1; +1.51.192.0/18 1; +27.192.0.0/11 1; +36.133.120.0/21 1; +36.133.128.0/22 1; +36.134.40.0/21 1; +36.192.204.0/22 1; +36.192.208.0/21 1; +36.192.216.0/22 1; +36.192.220.0/23 1; +36.192.222.0/24 1; +39.64.0.0/11 1; +39.144.0.0/24 1; +42.96.128.0/17 1; +42.120.88.0/24 1; +42.120.220.0/22 1; +42.120.224.0/21 1; +42.120.232.0/23 1; +42.120.244.64/27 1; +42.120.244.96/30 1; +42.194.8.0/22 1; +42.199.128.0/17 1; +42.245.195.0/24 1; +42.245.198.0/24 1; +42.245.231.0/24 1; +42.247.2.32/27 1; +42.247.2.144/29 1; +42.247.3.48/29 1; +42.247.10.0/28 1; +42.247.10.192/28 1; +42.247.14.0/27 1; +42.247.19.192/28 1; +42.247.19.224/27 1; +42.247.21.0/27 1; +42.247.21.176/28 1; +42.247.23.64/27 1; +42.247.25.96/27 1; +42.247.26.208/28 1; +42.247.26.248/29 1; +42.247.27.32/27 1; +42.247.28.128/27 1; +42.247.31.112/28 1; +42.247.31.128/26 1; +42.247.32.64/28 1; +42.247.33.0/28 1; +42.247.40.96/27 1; +42.247.43.192/27 1; +42.247.44.64/27 1; +42.247.44.112/28 1; +42.247.47.96/28 1; +42.247.47.128/28 1; +42.247.49.64/27 1; +43.224.54.8/30 1; +43.224.54.20/30 1; +43.227.144.0/22 1; +43.228.188.0/22 1; +43.236.52.0/22 1; +43.236.88.0/22 1; +43.236.120.0/22 1; +43.236.156.0/22 1; +43.236.228.0/22 1; +43.236.232.0/22 1; +43.237.0.0/22 1; +43.237.44.0/22 1; +43.237.48.0/22 1; +43.237.140.0/22 1; +43.237.144.0/22 1; +43.237.208.0/22 1; +43.238.40.0/22 1; +43.238.196.0/22 1; +43.238.200.0/22 1; +43.240.60.0/22 1; +43.249.192.0/22 1; +43.250.112.0/22 1; +45.113.220.0/22 1; +45.115.156.0/22 1; +45.115.218.0/24 1; +45.125.44.0/22 1; +45.248.132.0/22 1; +45.253.36.0/22 1; +47.104.0.0/15 1; +49.223.0.0/17 1; +49.223.128.0/18 1; +58.14.0.0/15 1; +58.56.0.0/15 1; +58.58.0.0/16 1; +58.59.0.0/17 1; +58.194.160.0/19 1; +58.194.192.0/20 1; +58.194.208.0/21 1; +58.195.16.0/20 1; +58.195.136.0/21 1; +58.195.144.0/20 1; +58.200.24.0/24 1; +58.200.30.0/24 1; +58.200.64.0/25 1; +58.200.81.0/24 1; +58.200.120.168/29 1; +58.207.68.0/22 1; +59.83.0.0/18 1; +59.83.132.0/22 1; +59.83.136.0/21 1; +59.83.144.0/20 1; +59.83.160.0/19 1; +59.153.68.0/22 1; +59.153.72.0/22 1; +60.208.0.0/13 1; +60.216.0.0/15 1; +60.232.0.0/15 1; +60.235.0.0/16 1; +61.133.0.0/17 1; +61.156.0.0/16 1; +61.162.0.0/16 1; +61.179.0.0/16 1; +61.232.42.0/23 1; +61.232.44.0/22 1; +61.232.48.0/21 1; +61.232.56.0/23 1; +61.233.144.0/20 1; +61.237.12.96/27 1; +61.237.17.0/25 1; +61.237.17.160/27 1; +61.237.17.192/26 1; +61.237.123.16/31 1; +61.237.123.20/31 1; +61.237.123.24/31 1; +61.237.127.2/31 1; +61.237.127.4/30 1; +61.237.127.50/31 1; +61.237.127.54/31 1; +61.237.127.68/30 1; +61.237.242.112/30 1; +61.240.64.0/18 1; +101.76.192.0/18 1; +103.15.200.0/22 1; +103.22.108.0/22 1; +103.25.32.0/22 1; +103.26.156.0/22 1; +103.30.228.0/22 1; +103.32.52.0/22 1; +103.32.88.0/22 1; +103.32.120.0/22 1; +103.32.156.0/22 1; +103.32.228.0/22 1; +103.32.232.0/22 1; +103.33.0.0/22 1; +103.33.44.0/22 1; +103.33.48.0/22 1; +103.33.140.0/22 1; +103.33.144.0/22 1; +103.33.208.0/22 1; +103.34.40.0/22 1; +103.34.196.0/22 1; +103.34.200.0/22 1; +103.35.8.0/22 1; +103.35.28.0/22 1; +103.36.184.0/22 1; +103.37.12.0/22 1; +103.37.100.0/22 1; +103.43.192.0/22 1; +103.46.248.0/22 1; +103.47.212.0/22 1; +103.53.144.0/22 1; +103.66.244.0/22 1; +103.66.248.0/21 1; +103.67.0.0/22 1; +103.79.28.0/22 1; +103.81.48.0/22 1; +103.88.36.0/22 1; +103.91.208.0/22 1; +103.98.56.0/22 1; +103.98.168.0/22 1; +103.109.20.0/22 1; +103.115.68.0/22 1; +103.116.220.0/22 1; +103.134.196.0/22 1; +103.145.188.0/23 1; +103.198.64.0/22 1; +103.198.72.0/22 1; +103.202.64.0/21 1; +103.202.72.0/22 1; +103.202.176.0/22 1; +103.203.24.0/21 1; +103.203.96.0/22 1; +103.203.124.0/22 1; +103.203.128.0/22 1; +103.203.168.0/22 1; +103.220.96.0/22 1; +103.222.216.0/22 1; +103.233.228.0/22 1; +103.235.136.0/22 1; +103.239.152.0/22 1; +103.239.224.0/22 1; +103.248.64.0/23 1; +103.248.152.0/22 1; +103.250.124.0/22 1; +103.253.220.0/22 1; +103.254.76.0/22 1; +104.28.66.36/31 1; +104.28.66.54/31 1; +104.28.66.80/31 1; +104.28.66.96/31 1; +104.28.69.36/31 1; +104.28.69.54/31 1; +104.28.69.80/31 1; +104.28.69.96/31 1; +104.28.83.8/31 1; +104.28.83.26/31 1; +104.28.83.52/31 1; +104.28.83.68/31 1; +104.28.99.6/31 1; +104.28.99.24/31 1; +104.28.99.48/31 1; +104.28.99.62/31 1; +104.28.101.6/31 1; +104.28.101.24/31 1; +104.28.101.48/31 1; +104.28.101.62/31 1; +104.28.117.38/31 1; +104.28.117.56/31 1; +104.28.117.82/31 1; +104.28.117.98/31 1; +104.28.120.38/31 1; +104.28.120.56/31 1; +104.28.120.82/31 1; +104.28.120.98/31 1; +104.28.175.217/32 1; +104.28.175.218/31 1; +104.28.175.220/30 1; +104.28.176.93/32 1; +104.28.176.94/31 1; +104.28.176.96/30 1; +104.28.177.211/32 1; +104.28.177.212/30 1; +104.28.177.216/31 1; +104.28.191.114/31 1; +104.28.191.116/30 1; +104.28.191.120/32 1; +104.28.207.248/30 1; +104.28.207.252/31 1; +104.28.207.254/32 1; +104.28.208.126/31 1; +104.28.208.128/30 1; +104.28.208.132/32 1; +104.28.209.246/31 1; +104.28.209.248/30 1; +104.28.209.252/32 1; +104.28.223.177/32 1; +104.28.223.178/31 1; +104.28.223.180/30 1; +104.28.239.248/30 1; +104.28.239.252/31 1; +104.28.239.254/32 1; +104.28.240.126/31 1; +104.28.240.128/30 1; +104.28.240.132/32 1; +104.28.241.246/31 1; +104.28.241.248/30 1; +104.28.241.252/32 1; +104.28.255.177/32 1; +104.28.255.178/31 1; +104.28.255.180/30 1; +106.74.245.0/24 1; +110.194.0.0/15 1; +110.196.0.0/16 1; +110.223.0.0/16 1; +111.14.0.0/15 1; +111.16.0.0/15 1; +111.34.0.0/15 1; +111.36.0.0/15 1; +112.6.0.0/15 1; +112.8.0.0/15 1; +112.36.0.0/15 1; +112.38.0.0/16 1; +112.53.64.0/19 1; +112.54.80.0/21 1; +112.224.0.0/17 1; +112.224.128.0/20 1; +112.224.144.0/22 1; +112.224.148.0/24 1; +112.224.153.0/24 1; +112.224.154.0/23 1; +112.224.156.0/22 1; +112.224.160.0/19 1; +112.224.192.0/18 1; +112.225.0.0/16 1; +112.226.0.0/15 1; +112.228.0.0/14 1; +112.232.0.0/13 1; +112.240.0.0/12 1; +113.120.0.0/14 1; +113.124.0.0/16 1; +113.126.0.0/15 1; +113.128.0.0/15 1; +114.214.0.0/18 1; +114.214.64.0/20 1; +114.214.88.0/21 1; +114.214.96.0/19 1; +114.215.0.0/17 1; +114.215.128.0/19 1; +114.215.160.0/21 1; +114.215.216.0/21 1; +115.28.0.0/16 1; +115.29.32.0/19 1; +115.29.64.0/18 1; +115.29.128.0/19 1; +115.31.64.0/22 1; +115.168.46.0/24 1; +115.168.78.0/24 1; +115.181.144.0/21 1; +116.154.0.0/15 1; +116.156.0.0/16 1; +117.73.252.0/22 1; +117.132.0.0/18 1; +117.132.64.0/19 1; +117.136.9.0/24 1; +117.136.37.0/24 1; +117.136.77.0/24 1; +117.136.78.0/24 1; +117.136.92.0/22 1; +117.142.37.0/24 1; +117.142.38.0/24 1; +117.142.190.0/23 1; +117.142.192.0/21 1; +117.142.200.0/23 1; +118.26.116.0/22 1; +118.190.0.0/16 1; +118.206.148.0/22 1; +118.206.152.0/21 1; +118.206.160.0/19 1; +119.38.219.110/31 1; +119.38.219.112/31 1; +119.162.0.0/15 1; +119.164.0.0/14 1; +119.176.0.0/12 1; +120.27.0.0/17 1; +120.54.0.0/16 1; +120.192.0.0/17 1; +120.192.128.0/18 1; +120.220.0.0/14 1; +120.224.0.0/15 1; +121.42.0.0/16 1; +121.249.128.0/19 1; +121.249.160.0/20 1; +121.249.192.0/19 1; +121.249.224.0/20 1; +121.250.0.0/19 1; +121.250.32.0/20 1; +121.250.48.0/23 1; +121.250.50.0/24 1; +121.250.52.0/22 1; +121.250.56.0/21 1; +121.250.64.0/20 1; +121.250.80.0/21 1; +121.250.88.0/22 1; +121.250.92.0/23 1; +121.250.96.0/19 1; +121.250.128.0/17 1; +121.251.128.0/17 1; +122.4.0.0/14 1; +122.72.26.0/24 1; +122.72.76.0/22 1; +122.80.0.0/15 1; +123.93.0.0/16 1; +123.94.16.0/24 1; +123.128.0.0/13 1; +123.168.0.0/14 1; +123.196.0.0/18 1; +123.232.0.0/14 1; +124.16.150.0/24 1; +124.16.170.0/23 1; +124.128.0.0/13 1; +124.203.136.0/22 1; +128.108.0.0/21 1; +139.129.0.0/16 1; +140.75.0.0/16 1; +140.205.127.128/25 1; +140.249.0.0/16 1; +140.250.0.0/16 1; +140.255.0.0/16 1; +144.0.0.0/16 1; +144.7.128.0/17 1; +144.12.0.0/16 1; +144.52.0.0/16 1; +144.123.0.0/16 1; +144.255.0.0/16 1; +150.0.0.0/16 1; +150.115.0.0/16 1; +150.121.0.0/16 1; +150.122.0.0/16 1; +150.138.0.0/15 1; +150.242.116.0/22 1; +150.242.152.0/22 1; +153.118.0.0/15 1; +159.226.158.0/24 1; +175.190.128.0/17 1; +180.201.0.0/18 1; +180.201.64.0/19 1; +180.201.96.0/20 1; +180.201.128.0/18 1; +180.201.192.0/19 1; +180.201.224.0/20 1; +182.32.0.0/13 1; +182.40.0.0/15 1; +182.44.0.0/14 1; +182.61.128.0/23 1; +182.61.192.0/22 1; +202.97.13.124/31 1; +202.97.13.128/31 1; +202.97.18.54/31 1; +202.97.18.150/31 1; +202.97.18.154/31 1; +202.97.18.156/30 1; +202.97.18.160/29 1; +202.97.21.62/31 1; +202.97.24.66/31 1; +202.97.24.70/31 1; +202.97.26.30/31 1; +202.97.26.78/31 1; +202.97.26.90/31 1; +202.97.26.94/31 1; +202.97.36.182/31 1; +202.97.36.190/31 1; +202.97.36.194/31 1; +202.97.39.2/31 1; +202.97.39.6/31 1; +202.97.39.8/30 1; +202.97.39.14/31 1; +202.97.39.30/31 1; +202.97.39.34/31 1; +202.97.39.38/31 1; +202.97.39.222/31 1; +202.97.39.242/31 1; +202.97.40.14/31 1; +202.97.40.42/31 1; +202.97.40.58/31 1; +202.97.40.74/31 1; +202.97.40.82/31 1; +202.97.40.86/31 1; +202.97.40.90/31 1; +202.97.40.94/31 1; +202.97.40.98/31 1; +202.97.40.118/31 1; +202.97.40.120/30 1; +202.97.40.126/31 1; +202.97.40.130/31 1; +202.97.40.134/31 1; +202.97.40.138/31 1; +202.97.40.142/31 1; +202.97.40.144/30 1; +202.97.40.150/31 1; +202.97.40.174/31 1; +202.97.40.178/31 1; +202.97.40.186/31 1; +202.97.40.188/30 1; +202.97.40.194/31 1; +202.97.40.202/31 1; +202.97.40.218/31 1; +202.97.40.220/30 1; +202.97.40.224/29 1; +202.97.40.234/31 1; +202.97.40.238/31 1; +202.97.40.242/31 1; +202.97.40.254/31 1; +202.97.41.182/31 1; +202.97.41.190/31 1; +202.97.42.102/31 1; +202.97.42.106/31 1; +202.97.42.152/31 1; +202.97.42.156/30 1; +202.97.42.172/30 1; +202.97.43.10/31 1; +202.97.43.14/31 1; +202.97.46.194/31 1; +202.97.46.202/31 1; +202.97.46.226/31 1; +202.97.48.6/31 1; +202.97.48.30/31 1; +202.97.48.32/30 1; +202.97.48.42/31 1; +202.97.48.46/31 1; +202.97.48.54/31 1; +202.97.48.56/30 1; +202.97.49.182/31 1; +202.97.51.44/31 1; +202.97.54.18/31 1; +202.97.54.22/31 1; +202.97.56.64/31 1; +202.97.74.50/31 1; +202.97.74.54/31 1; +202.97.77.186/31 1; +202.97.77.194/31 1; +202.97.81.10/31 1; +202.97.81.14/31 1; +202.97.81.22/31 1; +202.97.81.26/31 1; +202.97.81.30/31 1; +202.97.81.32/30 1; +202.97.81.38/31 1; +202.97.81.42/31 1; +202.97.81.46/31 1; +202.97.81.98/31 1; +202.102.128.0/18 1; +202.110.192.0/18 1; +202.112.38.216/30 1; +202.112.38.232/30 1; +202.112.53.20/30 1; +202.112.53.220/30 1; +202.136.48.0/20 1; +202.194.0.0/16 1; +203.93.187.0/27 1; +203.93.188.0/26 1; +203.107.16.0/21 1; +203.107.24.0/24 1; +203.107.40.0/21 1; +203.107.48.0/22 1; +203.202.238.0/23 1; +210.27.56.0/21 1; +210.44.0.0/18 1; +210.44.64.0/19 1; +210.44.112.0/20 1; +210.44.128.0/17 1; +210.52.2.0/24 1; +210.52.7.0/24 1; +210.52.19.0/24 1; +210.52.23.128/27 1; +210.52.26.0/24 1; +210.52.41.0/24 1; +210.52.45.0/24 1; +210.52.46.0/24 1; +210.52.54.0/23 1; +210.52.61.0/24 1; +210.52.62.0/23 1; +210.52.168.0/22 1; +210.52.172.0/23 1; +210.53.72.0/21 1; +210.53.80.0/21 1; +210.53.88.0/24 1; +210.72.156.0/22 1; +210.75.90.0/26 1; +210.76.128.0/19 1; +210.78.24.0/23 1; +210.82.131.0/24 1; +210.82.164.0/23 1; +210.82.177.0/24 1; +210.82.182.0/24 1; +210.82.193.0/24 1; +210.82.195.0/24 1; +210.82.196.0/23 1; +210.82.240.0/24 1; +211.64.0.0/18 1; +211.64.64.0/19 1; +211.64.96.0/20 1; +211.64.112.0/22 1; +211.64.116.0/23 1; +211.64.120.0/21 1; +211.64.128.0/18 1; +211.64.192.0/19 1; +211.64.224.0/22 1; +211.64.232.0/22 1; +211.64.236.0/23 1; +211.64.240.0/20 1; +211.86.0.0/17 1; +211.87.128.0/17 1; +211.97.168.0/21 1; +211.97.176.0/20 1; +211.97.192.0/18 1; +211.98.18.0/23 1; +211.98.20.0/22 1; +211.98.128.128/25 1; +211.98.130.0/23 1; +211.98.133.0/24 1; +211.98.153.0/24 1; +211.98.154.0/23 1; +211.98.156.0/23 1; +211.98.171.80/29 1; +211.98.242.0/24 1; +211.98.243.0/26 1; +211.99.112.0/20 1; +211.137.176.0/20 1; +211.137.192.0/20 1; +211.155.0.0/20 1; +211.155.116.0/22 1; +211.155.120.0/21 1; +211.165.64.0/24 1; +211.165.158.0/23 1; +211.165.160.0/23 1; +211.165.193.0/24 1; +211.165.202.0/23 1; +218.30.165.0/24 1; +218.56.0.0/14 1; +218.98.128.0/19 1; +218.98.193.0/24 1; +218.98.194.0/23 1; +218.98.196.0/22 1; +218.98.200.0/21 1; +218.98.208.0/20 1; +218.104.0.0/20 1; +218.106.224.0/20 1; +218.201.96.0/19 1; +218.201.128.0/18 1; +219.72.200.128/25 1; +219.72.203.224/27 1; +219.146.0.0/16 1; +219.147.0.0/19 1; +219.158.8.206/31 1; +219.158.8.222/31 1; +219.158.8.238/31 1; +219.158.9.20/31 1; +219.158.9.106/31 1; +219.158.9.110/31 1; +219.158.9.116/31 1; +219.158.9.120/30 1; +219.158.9.124/31 1; +219.158.10.14/31 1; +219.158.10.22/31 1; +219.158.10.168/31 1; +219.158.10.172/31 1; +219.158.10.176/31 1; +219.158.10.180/31 1; +219.158.10.196/31 1; +219.158.10.212/31 1; +219.158.10.244/31 1; +219.158.11.6/31 1; +219.158.11.44/31 1; +219.158.11.212/31 1; +219.158.12.90/31 1; +219.158.12.92/30 1; +219.158.14.156/31 1; +219.158.14.160/31 1; +219.158.14.242/31 1; +219.158.14.246/31 1; +219.158.15.176/31 1; +219.158.16.62/31 1; +219.158.16.118/31 1; +219.158.17.64/30 1; +219.158.17.80/31 1; +219.158.17.84/31 1; +219.158.17.100/31 1; +219.158.17.112/31 1; +219.158.17.138/31 1; +219.158.17.148/31 1; +219.158.17.158/31 1; +219.158.17.166/31 1; +219.158.17.206/31 1; +219.158.17.208/31 1; +219.158.18.130/31 1; +219.158.18.142/31 1; +219.158.18.168/31 1; +219.158.18.172/31 1; +219.158.19.6/31 1; +219.158.19.10/31 1; +219.158.19.148/31 1; +219.158.20.52/31 1; +219.158.21.222/31 1; +219.158.21.224/30 1; +219.158.22.120/31 1; +219.158.23.42/31 1; +219.158.23.96/31 1; +219.158.23.160/31 1; +219.158.23.164/31 1; +219.158.23.168/31 1; +219.158.98.154/31 1; +219.158.98.156/31 1; +219.158.98.160/31 1; +219.158.99.162/31 1; +219.158.101.100/31 1; +219.158.101.104/31 1; +219.158.101.240/30 1; +219.158.102.20/31 1; +219.158.102.54/31 1; +219.158.102.160/31 1; +219.158.103.214/31 1; +219.158.104.64/31 1; +219.158.104.80/31 1; +219.158.106.6/31 1; +219.158.106.8/30 1; +219.158.106.188/31 1; +219.158.106.192/31 1; +219.158.107.58/31 1; +219.158.107.156/31 1; +219.158.108.64/31 1; +219.158.108.70/31 1; +219.158.109.76/31 1; +219.158.109.90/31 1; +219.158.109.176/31 1; +219.158.110.8/31 1; +219.158.110.14/31 1; +219.158.110.84/31 1; +219.158.110.88/31 1; +219.158.110.184/31 1; +219.158.110.216/31 1; +219.158.113.32/31 1; +219.158.113.36/31 1; +219.158.113.52/30 1; +219.158.113.56/31 1; +219.158.113.228/31 1; +219.158.113.232/30 1; +219.158.113.236/31 1; +219.158.113.244/31 1; +219.158.114.12/31 1; +219.158.114.16/31 1; +219.158.114.20/31 1; +219.158.114.24/31 1; +219.218.0.0/17 1; +219.218.128.0/18 1; +219.218.192.0/19 1; +219.224.100.148/30 1; +219.224.100.152/30 1; +219.231.128.0/17 1; +219.243.248.0/24 1; +220.192.80.0/20 1; +220.193.0.0/17 1; +220.193.128.0/18 1; +220.193.192.0/19 1; +220.193.224.0/21 1; +220.193.232.0/22 1; +220.205.124.0/22 1; +220.207.192.0/20 1; +221.0.0.0/15 1; +221.2.0.0/16 1; +221.3.0.0/17 1; +221.173.128.0/17 1; +221.176.15.38/31 1; +221.176.15.232/31 1; +221.176.15.242/31 1; +221.176.18.176/31 1; +221.176.18.192/31 1; +221.176.18.214/31 1; +221.176.18.216/31 1; +221.176.19.30/31 1; +221.176.21.252/31 1; +221.176.22.148/31 1; +221.176.27.22/31 1; +221.176.27.24/29 1; +221.176.27.32/27 1; +221.177.48.0/21 1; +221.177.190.0/23 1; +221.177.192.0/22 1; +221.177.242.0/23 1; +221.177.244.0/24 1; +221.183.9.148/31 1; +221.183.10.118/31 1; +221.183.10.124/31 1; +221.183.10.130/31 1; +221.183.10.240/31 1; +221.183.11.40/31 1; +221.183.11.124/31 1; +221.183.11.146/31 1; +221.183.11.150/31 1; +221.183.12.60/30 1; +221.183.12.64/29 1; +221.183.12.72/30 1; +221.183.12.184/29 1; +221.183.12.192/27 1; +221.183.12.224/28 1; +221.183.12.240/29 1; +221.183.22.30/31 1; +221.183.22.94/31 1; +221.183.22.98/31 1; +221.183.24.232/29 1; +221.183.24.240/30 1; +221.183.27.40/29 1; +221.183.27.88/29 1; +221.183.27.96/30 1; +221.183.27.176/29 1; +221.183.27.184/30 1; +221.183.36.10/31 1; +221.183.37.52/31 1; +221.183.37.56/31 1; +221.183.37.64/31 1; +221.183.40.2/31 1; +221.183.40.162/31 1; +221.183.40.238/31 1; +221.183.42.142/31 1; +221.183.43.34/31 1; +221.183.48.56/29 1; +221.183.48.64/27 1; +221.183.48.96/29 1; +221.214.0.0/15 1; +222.43.0.0/16 1; +222.132.0.0/14 1; +222.173.0.0/16 1; +222.174.0.0/15 1; +222.194.0.0/17 1; +222.194.128.0/18 1; +222.195.128.0/19 1; +222.195.160.0/21 1; +222.195.176.0/20 1; +222.195.192.0/18 1; +222.206.0.0/19 1; +222.206.32.0/24 1; +222.206.36.0/22 1; +222.206.48.0/20 1; +222.206.64.0/18 1; +222.206.128.0/18 1; +222.206.192.0/20 1; +222.206.208.0/23 1; +222.206.210.0/24 1; +222.206.212.0/22 1; +222.206.216.0/21 1; +222.206.224.0/21 1; +222.207.128.0/17 1; +223.29.208.0/22 1; +223.78.0.0/15 1; +223.80.0.0/15 1; +223.96.0.0/14 1; +223.103.2.0/24 1; +223.104.2.0/24 1; +223.104.185.0/24 1; +223.104.186.0/23 1; +223.104.188.0/22 1; +223.104.192.0/22 1; +223.104.196.0/24 1; +2001:250:5800::/48 1; +2001:da8:7003::/48 1; +2001:df7:6600::/48 1; +2400:15c0::/32 1; +2400:bf00::/32 1; +2401:96e0::/32 1; +2401:a180::/32 1; +2401:b480::/32 1; +2401:cc00::/32 1; +2402:19c0::/32 1; +2402:2a00::/32 1; +2402:8900::/32 1; +2402:8cc0::/32 1; +2405:8ac0::/32 1; +2405:f940::/32 1; +2406:840:fc10::/44 1; +2406:840:fc20::/43 1; +2406:840:fc40::/42 1; +2406:840:fc80::/42 1; +2406:840:fe91::/48 1; +2406:840:fe92::/48 1; +2406:840:fe94::/46 1; +2406:840:fe98::/45 1; +2406:840:fef4::/48 1; +2406:840:fef6::/48 1; +2406:840:fefa::/48 1; +2406:8f40::/32 1; +2406:e8c0::/32 1; +2408:8417:400::/40 1; +2408:8418::/40 1; +2408:8418:200::/40 1; +2408:8418:400::/40 1; +2408:8418:700::/40 1; +2408:8418:e00::/40 1; +2408:8418:2200::/40 1; +2409:803c::/40 1; +2409:803c:800::/40 1; +2409:803c:1000::/40 1; +2409:803c:1800::/40 1; +2409:803c:2000::/40 1; +2409:803c:2800::/38 1; +2409:803c:3000::/40 1; +2409:803c:3800::/40 1; +2409:803d:2900::/40 1; +2409:803d:2a00::/39 1; +2409:8087:3c00::/40 1; +2409:873c::/33 1; +2409:873c:8000::/37 1; +2409:873c:8800::/39 1; +2409:883c::/40 1; +2409:893c::/31 1; +2409:8a3c::/33 1; +2409:8a3c:8000::/37 1; +2409:8a3c:8800::/39 1; +2409:8b3c::/32 1; +2409:8c3c::/37 1; +2409:8c3c:900::/40 1; +2409:8c3c:a00::/40 1; +2409:8c3c:c00::/38 1; +2409:8c3c:1000::/39 1; +2409:8c3c:1200::/40 1; +2409:8c3c:1400::/38 1; +2409:8c3c:1800::/37 1; +2409:8c3c:2000::/38 1; +2409:8c3c:2400::/39 1; +2409:8c3c:2600::/40 1; +2409:8c3c:2900::/40 1; +2409:8c3c:2a00::/39 1; +2409:8c3c:2c00::/38 1; +2409:8c3c:3000::/39 1; +2409:8c3c:3200::/40 1; +2409:8c3c:3400::/39 1; +2409:8c3c:3800::/37 1; +2409:8c3c:4000::/36 1; +2409:8c3c:5000::/40 1; +2409:8c3c:5200::/39 1; +2409:8c3c:5400::/40 1; +2409:8c3c:5900::/40 1; +2409:8c3c:5a00::/39 1; +2409:8c3c:5c00::/38 1; +2409:8c3c:6000::/35 1; +2409:8c3c:8000::/34 1; +2409:8c3c:c000::/35 1; +2409:8c3c:e000::/36 1; +2409:8c3c:f000::/37 1; +2409:8c3c:f800::/38 1; +2409:8c3c:fc00::/39 1; +2409:8c3c:fe00::/40 1; +2409:8d3c::/32 1; +2409:8e3c::/32 1; +240a:42b8::/40 1; +240a:42b8:6a00::/40 1; +240a:42b8:8a00::/40 1; +240a:42b8:a600::/40 1; +240a:42b8:b600::/40 1; +240a:42b8:e400::/40 1; +240e:445:600::/40 1; +240e:445:4200::/40 1; +240e:446:4f00::/40 1; +2602:feda:ad0::/44 1; +2606:54c0:2460::/43 1; +2606:54c0:2480::/41 1; +2606:54c0:2500::/43 1; +2606:54c3:0:2f::/64 1; +2606:54c3:0:1a6::/64 1; +2606:54c3:0:1d1::/64 1; +2606:54c3:0:20e::/64 1; +2606:54c3:0:3b1::/64 1; +2606:54c3:0:4df::/64 1; +2606:54c3:0:808::/64 1; +2606:54c3:0:900::/63 1; +2606:54c3:0:9aa::/64 1; +2606:54c3:0:b79::/64 1; +2606:54c3:0:bfb::/64 1; +2606:54c3:0:c53::/64 1; +2606:54c3:0:c57::/64 1; +2606:54c3:0:cbc::/64 1; +2606:54c3:0:cfc::/64 1; +2606:54c3:0:e46::/64 1; +2606:54c3:0:1147::/64 1; +2606:54c3:0:12b8::/64 1; +2606:54c3:0:12f1::/64 1; +2606:54c3:0:1317::/64 1; +2606:54c3:0:1474::/64 1; +2606:54c3:0:1510::/64 1; +2606:54c3:0:1572::/64 1; +2a02:26f7:c400:f482::/64 1; +2a02:26f7:c404:f482::/64 1; +2a02:26f7:c408:f482::/64 1; +2a02:26f7:c40c:f482::/64 1; +2a02:26f7:c410:f482::/64 1; +2a02:26f7:c414:f482::/64 1; +2a02:26f7:c418:f482::/64 1; +2a02:26f7:c41c:f482::/64 1; +2a02:26f7:c420:f482::/64 1; +2a03:5840:f3::/48 1; +2a05:dfc1:6605::/48 1; +2a05:dfc1:6606::/47 1; +2a05:dfc1:6608::/45 1; +2a05:dfc1:6610::/44 1; +2a05:dfc1:6620::/43 1; +2a05:dfc1:6640::/42 1; +2a05:dfc1:6680::/41 1; +2a05:dfc1:6700::/40 1; +2a05:dfc1:6800::/37 1; +2a05:dfc1:7000::/40 1; +2a09:bac1:1980:130::/64 1; +2a09:bac1:1980:138::/64 1; +2a09:bac1:1980:160::/64 1; +2a09:bac1:1980:168::/64 1; +2a09:bac1:1981:aa0::/64 1; +2a09:bac1:1981:b18::/64 1; +2a09:bac1:1981:b68::/64 1; +2a09:bac1:1981:bd0::/64 1; +2a09:bac1:1981:bd8::/64 1; +2a09:bac1:1981:c38::/64 1; +2a09:bac1:1981:c48::/64 1; +2a09:bac1:1981:c78::/64 1; +2a09:bac1:1981:1168::/64 1; +2a09:bac1:1981:11a0::/64 1; +2a09:bac1:1981:11f8::/64 1; +2a09:bac1:1981:1270::/64 1; +2a09:bac1:1981:1628::/64 1; +2a09:bac1:1981:16b0::/64 1; +2a09:bac1:1981:1718::/64 1; +2a09:bac1:1981:1740::/64 1; +2a09:bac1:1981:1788::/64 1; +2a09:bac1:1981:1790::/64 1; +2a09:bac1:1981:19d0::/64 1; +2a09:bac1:1981:1a18::/64 1; +2a09:bac1:19a0:130::/64 1; +2a09:bac1:19a0:138::/64 1; +2a09:bac1:19a0:160::/64 1; +2a09:bac1:19a0:168::/64 1; +2a09:bac1:19a1:aa0::/64 1; +2a09:bac1:19a1:b18::/64 1; +2a09:bac1:19a1:b68::/64 1; +2a09:bac1:19a1:bd0::/64 1; +2a09:bac1:19a1:bd8::/64 1; +2a09:bac1:19a1:c38::/64 1; +2a09:bac1:19a1:c48::/64 1; +2a09:bac1:19a1:c78::/64 1; +2a09:bac1:19a1:1168::/64 1; +2a09:bac1:19a1:11a0::/64 1; +2a09:bac1:19a1:11f8::/64 1; +2a09:bac1:19a1:1270::/64 1; +2a09:bac1:19a1:1628::/64 1; +2a09:bac1:19a1:16b0::/64 1; +2a09:bac1:19a1:1718::/64 1; +2a09:bac1:19a1:1740::/64 1; +2a09:bac1:19a1:1788::/64 1; +2a09:bac1:19a1:1790::/64 1; +2a09:bac1:19a1:19d0::/64 1; +2a09:bac1:19a1:1a18::/64 1; +2a09:bac1:19c0:130::/64 1; +2a09:bac1:19c0:138::/64 1; +2a09:bac1:19c0:160::/64 1; +2a09:bac1:19c0:168::/64 1; +2a09:bac1:19c1:aa0::/64 1; +2a09:bac1:19c1:b18::/64 1; +2a09:bac1:19c1:b68::/64 1; +2a09:bac1:19c1:bd0::/64 1; +2a09:bac1:19c1:bd8::/64 1; +2a09:bac1:19c1:c38::/64 1; +2a09:bac1:19c1:c48::/64 1; +2a09:bac1:19c1:c78::/64 1; +2a09:bac1:19c1:1168::/64 1; +2a09:bac1:19c1:11a0::/64 1; +2a09:bac1:19c1:11f8::/64 1; +2a09:bac1:19c1:1270::/64 1; +2a09:bac1:19c1:1628::/64 1; +2a09:bac1:19c1:16b0::/64 1; +2a09:bac1:19c1:1718::/64 1; +2a09:bac1:19c1:1740::/64 1; +2a09:bac1:19c1:1788::/64 1; +2a09:bac1:19c1:1790::/64 1; +2a09:bac1:19c1:19d0::/64 1; +2a09:bac1:19c1:1a18::/64 1; +2a09:bac1:19e0:130::/64 1; +2a09:bac1:19e0:138::/64 1; +2a09:bac1:19e0:160::/64 1; +2a09:bac1:19e0:168::/64 1; +2a09:bac1:19e1:aa0::/64 1; +2a09:bac1:19e1:b18::/64 1; +2a09:bac1:19e1:b68::/64 1; +2a09:bac1:19e1:bd0::/64 1; +2a09:bac1:19e1:bd8::/64 1; +2a09:bac1:19e1:c38::/64 1; +2a09:bac1:19e1:c48::/64 1; +2a09:bac1:19e1:c78::/64 1; +2a09:bac1:19e1:1168::/64 1; +2a09:bac1:19e1:11a0::/64 1; +2a09:bac1:19e1:11f8::/64 1; +2a09:bac1:19e1:1270::/64 1; +2a09:bac1:19e1:1628::/64 1; +2a09:bac1:19e1:16b0::/64 1; +2a09:bac1:19e1:1718::/64 1; +2a09:bac1:19e1:1740::/64 1; +2a09:bac1:19e1:1788::/64 1; +2a09:bac1:19e1:1790::/64 1; +2a09:bac1:19e1:19d0::/64 1; +2a09:bac1:19e1:1a18::/64 1; +2a09:bac2:2460::/43 1; +2a09:bac2:2480::/41 1; +2a09:bac2:2500::/43 1; +2a09:bac3:2460::/43 1; +2a09:bac3:2480::/41 1; +2a09:bac3:2500::/43 1; +2a09:bac5:2490::/44 1; +2a09:bac5:24a0::/43 1; +2a09:bac5:24c0::/42 1; +2a09:bac5:2500::/42 1; +2a09:bac5:2540::/44 1; +2a09:bac6:2490::/44 1; +2a09:bac6:24a0::/43 1; +2a09:bac6:24c0::/42 1; +2a09:bac6:2500::/42 1; +2a09:bac6:2540::/44 1; diff --git a/minigate/root/usr/lib/minigate/geo/410000.conf b/minigate/root/usr/lib/minigate/geo/410000.conf new file mode 100644 index 000000000..2dfb0508b --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/410000.conf @@ -0,0 +1,922 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 河南省 +1.192.0.0/13 1; +27.50.128.0/17 1; +36.99.0.0/16 1; +36.133.36.0/22 1; +36.133.40.0/21 1; +36.133.208.0/20 1; +36.192.223.0/24 1; +36.192.224.0/20 1; +36.192.240.0/23 1; +36.192.242.0/24 1; +39.144.21.0/24 1; +39.144.22.0/23 1; +39.144.24.0/22 1; +39.144.28.0/23 1; +39.144.177.0/24 1; +39.144.179.0/24 1; +39.144.180.0/23 1; +39.144.182.0/24 1; +39.148.0.0/14 1; +39.162.0.0/15 1; +39.164.0.0/15 1; +42.51.0.0/16 1; +42.224.0.0/12 1; +42.247.1.224/27 1; +42.247.2.0/27 1; +42.247.15.192/27 1; +42.247.18.240/28 1; +42.247.20.128/28 1; +42.247.23.32/27 1; +42.247.25.208/28 1; +42.247.25.224/27 1; +42.247.28.192/27 1; +42.247.29.192/27 1; +42.247.34.192/26 1; +42.247.35.96/27 1; +42.247.36.64/27 1; +42.247.38.224/27 1; +42.247.39.160/27 1; +42.247.41.128/27 1; +42.247.42.96/27 1; +42.247.42.128/27 1; +42.247.43.224/27 1; +42.247.46.96/27 1; +42.247.48.32/27 1; +42.247.48.96/27 1; +42.247.48.128/27 1; +42.247.49.128/26 1; +43.224.54.144/29 1; +43.236.128.0/22 1; +43.237.28.0/22 1; +43.237.64.0/22 1; +43.238.32.0/22 1; +43.238.136.0/22 1; +43.239.40.0/22 1; +43.239.172.0/22 1; +43.243.8.0/22 1; +43.250.128.0/22 1; +45.121.92.0/22 1; +45.251.137.0/24 1; +45.251.138.0/23 1; +49.122.0.0/18 1; +49.122.64.0/21 1; +49.122.128.0/18 1; +58.195.64.0/19 1; +58.200.9.0/24 1; +58.200.127.208/29 1; +58.200.127.240/29 1; +58.207.200.0/21 1; +58.207.208.0/20 1; +59.69.128.0/18 1; +59.69.192.0/19 1; +59.70.0.0/21 1; +59.70.8.0/22 1; +59.70.12.0/23 1; +59.70.14.0/24 1; +59.70.16.0/20 1; +59.70.32.0/19 1; +59.70.64.0/18 1; +59.70.128.0/18 1; +59.70.192.0/20 1; +59.70.224.0/19 1; +59.81.62.0/23 1; +59.81.78.0/23 1; +59.152.36.0/25 1; +59.152.38.0/25 1; +59.152.38.128/26 1; +59.152.38.192/27 1; +61.52.0.0/15 1; +61.54.0.0/16 1; +61.136.64.0/18 1; +61.158.128.0/17 1; +61.163.0.0/16 1; +61.168.0.0/16 1; +61.232.184.0/21 1; +61.232.192.0/22 1; +61.233.64.0/18 1; +61.237.1.248/30 1; +61.237.3.132/30 1; +61.237.14.32/27 1; +61.237.97.0/30 1; +61.237.123.84/30 1; +61.237.123.88/29 1; +61.237.123.96/31 1; +61.237.242.128/25 1; +101.104.192.0/19 1; +101.107.0.0/18 1; +103.22.88.0/22 1; +103.22.188.0/22 1; +103.31.160.0/22 1; +103.32.128.0/22 1; +103.33.28.0/22 1; +103.33.64.0/22 1; +103.34.32.0/22 1; +103.34.136.0/22 1; +103.35.104.0/22 1; +103.38.132.0/22 1; +103.43.26.0/23 1; +103.49.197.0/24 1; +103.49.198.0/24 1; +103.61.172.0/22 1; +103.97.188.0/22 1; +103.103.200.0/22 1; +103.110.188.0/22 1; +103.144.108.0/23 1; +103.203.12.0/22 1; +103.205.136.0/22 1; +103.207.104.0/22 1; +103.223.48.0/21 1; +103.237.176.0/20 1; +103.237.192.0/19 1; +103.237.224.0/20 1; +103.237.240.0/21 1; +103.250.180.0/22 1; +104.28.21.30/31 1; +104.28.21.32/30 1; +104.28.21.36/32 1; +104.28.23.187/32 1; +104.28.23.188/30 1; +104.28.23.192/31 1; +104.28.66.46/31 1; +104.28.66.48/30 1; +104.28.66.68/31 1; +104.28.69.46/31 1; +104.28.69.48/30 1; +104.28.69.68/31 1; +104.28.83.18/31 1; +104.28.83.20/30 1; +104.28.83.40/31 1; +104.28.99.16/30 1; +104.28.99.20/31 1; +104.28.99.38/31 1; +104.28.101.16/30 1; +104.28.101.20/31 1; +104.28.101.38/31 1; +104.28.117.48/30 1; +104.28.117.52/31 1; +104.28.117.70/31 1; +104.28.120.48/30 1; +104.28.120.52/31 1; +104.28.120.70/31 1; +104.28.178.223/32 1; +104.28.178.224/30 1; +104.28.178.228/31 1; +104.28.181.156/30 1; +104.28.181.160/31 1; +104.28.181.162/32 1; +104.28.193.33/32 1; +104.28.193.34/31 1; +104.28.193.36/30 1; +104.28.195.194/31 1; +104.28.195.196/30 1; +104.28.195.200/32 1; +104.28.211.6/31 1; +104.28.211.8/30 1; +104.28.211.12/32 1; +104.28.213.199/32 1; +104.28.213.200/30 1; +104.28.213.204/31 1; +104.28.225.33/32 1; +104.28.225.34/31 1; +104.28.225.36/30 1; +104.28.227.194/31 1; +104.28.227.196/30 1; +104.28.227.200/32 1; +104.28.243.6/31 1; +104.28.243.8/30 1; +104.28.243.12/32 1; +104.28.245.199/32 1; +104.28.245.200/30 1; +104.28.245.204/31 1; +106.33.0.0/16 1; +106.34.0.0/16 1; +106.42.0.0/16 1; +106.46.0.0/16 1; +110.197.0.0/16 1; +110.198.0.0/16 1; +111.5.0.0/16 1; +111.6.0.0/15 1; +112.53.96.0/19 1; +112.59.176.0/20 1; +112.59.192.0/18 1; +114.113.160.0/19 1; +115.48.0.0/12 1; +115.157.128.0/18 1; +115.158.0.0/16 1; +115.168.47.0/24 1; +115.168.79.0/24 1; +116.157.0.0/16 1; +116.158.0.0/15 1; +116.196.16.0/20 1; +116.196.32.0/19 1; +116.255.128.0/17 1; +117.49.3.0/24 1; +117.136.22.0/24 1; +117.136.36.0/24 1; +117.136.44.0/24 1; +117.136.61.0/25 1; +117.136.61.128/26 1; +117.136.61.192/27 1; +117.136.104.0/22 1; +117.136.234.0/24 1; +117.136.235.32/29 1; +117.142.5.0/24 1; +117.142.6.0/24 1; +117.142.119.0/24 1; +117.142.120.0/21 1; +117.142.128.0/23 1; +117.142.130.0/24 1; +117.158.0.0/15 1; +117.160.0.0/16 1; +120.194.0.0/16 1; +120.212.0.0/14 1; +120.216.0.0/14 1; +121.46.76.0/22 1; +122.72.27.0/24 1; +122.72.82.0/23 1; +122.78.0.0/15 1; +122.114.0.0/16 1; +122.206.0.0/16 1; +122.207.128.0/18 1; +122.207.192.0/19 1; +123.4.0.0/14 1; +123.8.0.0/13 1; +123.52.0.0/14 1; +123.94.17.0/24 1; +123.101.0.0/16 1; +123.149.0.0/16 1; +123.160.0.0/14 1; +124.163.209.0/25 1; +124.203.156.0/22 1; +124.203.160.0/20 1; +124.240.128.0/18 1; +125.40.0.0/13 1; +125.219.0.0/17 1; +125.219.128.0/18 1; +125.219.192.0/20 1; +163.53.56.0/22 1; +171.8.0.0/13 1; +175.106.128.0/17 1; +175.188.64.0/18 1; +175.188.128.0/19 1; +175.191.248.0/21 1; +182.112.0.0/12 1; +182.236.128.0/17 1; +183.169.128.0/19 1; +183.169.176.0/20 1; +183.169.192.0/18 1; +183.170.0.0/16 1; +183.204.0.0/15 1; +202.97.13.150/31 1; +202.97.13.152/30 1; +202.97.19.194/31 1; +202.97.19.196/30 1; +202.97.19.200/29 1; +202.97.19.208/28 1; +202.97.19.226/31 1; +202.97.19.228/30 1; +202.97.19.232/29 1; +202.97.21.22/31 1; +202.97.21.24/29 1; +202.97.21.32/28 1; +202.97.21.48/29 1; +202.97.21.56/30 1; +202.97.24.96/28 1; +202.97.24.112/29 1; +202.97.24.120/31 1; +202.97.39.46/31 1; +202.97.41.170/31 1; +202.97.44.252/30 1; +202.97.48.146/31 1; +202.97.48.150/31 1; +202.97.48.224/28 1; +202.97.51.46/31 1; +202.97.54.38/31 1; +202.97.54.206/31 1; +202.97.56.66/31 1; +202.97.56.68/30 1; +202.97.56.174/31 1; +202.97.56.176/29 1; +202.97.58.186/31 1; +202.97.58.194/31 1; +202.97.61.144/28 1; +202.97.61.160/30 1; +202.97.61.166/31 1; +202.97.61.196/30 1; +202.97.61.200/31 1; +202.97.61.208/30 1; +202.97.61.214/31 1; +202.97.63.18/31 1; +202.97.63.58/31 1; +202.97.63.60/30 1; +202.97.63.86/31 1; +202.97.63.90/31 1; +202.97.67.0/29 1; +202.97.67.8/30 1; +202.97.67.12/31 1; +202.97.67.178/31 1; +202.97.67.190/31 1; +202.97.67.194/31 1; +202.97.67.196/30 1; +202.97.67.200/29 1; +202.97.67.208/28 1; +202.97.67.224/27 1; +202.97.69.112/31 1; +202.97.69.152/30 1; +202.97.73.162/31 1; +202.97.73.164/30 1; +202.97.74.112/29 1; +202.97.75.126/31 1; +202.97.75.146/31 1; +202.97.75.150/31 1; +202.97.76.226/31 1; +202.97.77.34/31 1; +202.97.77.38/31 1; +202.97.77.46/31 1; +202.97.77.210/31 1; +202.97.77.214/31 1; +202.97.77.216/29 1; +202.97.77.224/27 1; +202.97.80.26/31 1; +202.97.80.28/30 1; +202.97.80.32/28 1; +202.97.80.48/30 1; +202.97.81.84/30 1; +202.97.81.114/31 1; +202.97.87.160/27 1; +202.97.87.192/26 1; +202.97.89.224/31 1; +202.102.224.0/19 1; +202.110.64.0/18 1; +202.111.128.0/19 1; +202.125.176.0/20 1; +202.196.0.0/15 1; +203.93.116.0/24 1; +203.93.183.0/24 1; +203.171.224.0/20 1; +210.23.32.0/19 1; +210.42.142.0/23 1; +210.42.208.0/20 1; +210.42.224.0/19 1; +210.43.0.0/19 1; +210.43.32.0/21 1; +210.43.128.0/20 1; +210.43.144.0/22 1; +210.51.248.0/24 1; +210.52.9.0/24 1; +210.52.16.64/26 1; +210.52.16.128/25 1; +210.52.18.192/26 1; +210.52.59.0/24 1; +210.52.178.0/23 1; +210.75.90.192/26 1; +210.75.93.128/26 1; +210.78.23.0/24 1; +210.82.248.0/24 1; +211.67.80.0/20 1; +211.67.96.0/19 1; +211.67.128.0/18 1; +211.69.0.0/19 1; +211.69.32.0/20 1; +211.69.216.0/21 1; +211.84.0.0/18 1; +211.84.64.0/19 1; +211.84.112.0/20 1; +211.84.128.0/17 1; +211.91.184.0/21 1; +211.91.192.0/20 1; +211.91.208.0/21 1; +211.98.97.0/24 1; +211.98.170.96/28 1; +211.98.192.0/21 1; +211.98.200.0/22 1; +211.98.204.0/23 1; +211.98.206.0/24 1; +211.98.237.0/24 1; +211.98.250.0/24 1; +211.138.16.0/20 1; +211.142.96.0/19 1; +211.142.128.0/18 1; +211.142.192.0/20 1; +218.28.0.0/15 1; +218.196.160.0/19 1; +218.196.192.0/18 1; +218.198.0.0/18 1; +218.198.64.0/19 1; +218.198.96.0/21 1; +218.198.104.0/22 1; +218.198.112.0/20 1; +218.198.128.0/18 1; +218.198.192.0/20 1; +218.198.208.0/21 1; +218.198.224.0/19 1; +218.206.192.0/18 1; +219.72.203.32/27 1; +219.147.48.0/20 1; +219.150.112.0/20 1; +219.150.128.0/17 1; +219.154.0.0/15 1; +219.156.0.0/15 1; +219.158.8.252/31 1; +219.158.10.64/26 1; +219.158.10.128/28 1; +219.158.10.144/29 1; +219.158.10.152/30 1; +219.158.10.198/31 1; +219.158.10.214/31 1; +219.158.11.46/31 1; +219.158.11.48/30 1; +219.158.12.8/31 1; +219.158.12.192/31 1; +219.158.12.246/31 1; +219.158.14.96/31 1; +219.158.14.104/31 1; +219.158.14.182/31 1; +219.158.14.200/30 1; +219.158.14.204/31 1; +219.158.16.40/31 1; +219.158.16.44/31 1; +219.158.16.122/31 1; +219.158.16.124/30 1; +219.158.17.82/31 1; +219.158.17.102/31 1; +219.158.17.104/30 1; +219.158.17.110/31 1; +219.158.17.114/31 1; +219.158.17.222/31 1; +219.158.18.206/31 1; +219.158.18.246/31 1; +219.158.18.248/30 1; +219.158.19.128/31 1; +219.158.21.2/31 1; +219.158.21.4/30 1; +219.158.21.8/30 1; +219.158.21.50/31 1; +219.158.21.52/30 1; +219.158.21.122/31 1; +219.158.22.38/31 1; +219.158.22.42/31 1; +219.158.22.116/31 1; +219.158.22.150/31 1; +219.158.22.152/29 1; +219.158.23.38/31 1; +219.158.40.4/30 1; +219.158.40.8/30 1; +219.158.40.12/31 1; +219.158.40.20/30 1; +219.158.40.24/30 1; +219.158.40.216/29 1; +219.158.42.124/30 1; +219.158.42.128/31 1; +219.158.42.132/31 1; +219.158.42.206/31 1; +219.158.43.116/30 1; +219.158.43.120/29 1; +219.158.45.58/31 1; +219.158.45.62/31 1; +219.158.45.148/30 1; +219.158.45.152/29 1; +219.158.97.124/31 1; +219.158.98.118/31 1; +219.158.99.116/31 1; +219.158.99.124/31 1; +219.158.99.154/31 1; +219.158.100.32/31 1; +219.158.100.242/31 1; +219.158.100.246/31 1; +219.158.101.34/31 1; +219.158.101.38/31 1; +219.158.101.62/31 1; +219.158.101.64/31 1; +219.158.101.72/31 1; +219.158.101.92/31 1; +219.158.101.96/31 1; +219.158.101.148/31 1; +219.158.101.162/31 1; +219.158.101.220/30 1; +219.158.102.2/31 1; +219.158.102.6/31 1; +219.158.104.76/31 1; +219.158.104.158/31 1; +219.158.104.162/31 1; +219.158.105.14/31 1; +219.158.106.158/31 1; +219.158.107.146/31 1; +219.158.107.188/31 1; +219.158.108.30/31 1; +219.158.108.34/31 1; +219.158.108.56/31 1; +219.158.108.60/31 1; +219.158.109.108/31 1; +219.158.109.158/31 1; +219.158.109.160/30 1; +219.158.109.228/31 1; +219.158.110.10/31 1; +219.158.110.80/31 1; +219.158.110.110/31 1; +219.158.110.124/31 1; +219.158.110.240/31 1; +219.158.112.56/30 1; +219.158.113.28/30 1; +219.158.113.38/31 1; +219.158.113.40/29 1; +219.158.113.64/31 1; +219.158.113.68/31 1; +219.158.113.72/31 1; +219.158.113.80/28 1; +219.158.113.96/30 1; +219.158.113.200/30 1; +219.158.113.204/31 1; +219.158.113.230/31 1; +219.158.114.26/31 1; +219.158.116.80/30 1; +219.158.116.84/31 1; +219.158.116.116/31 1; +219.158.116.120/31 1; +219.158.117.132/30 1; +219.243.245.0/24 1; +220.113.212.0/22 1; +220.113.216.0/21 1; +220.114.0.0/20 1; +220.114.48.0/20 1; +220.114.72.0/21 1; +220.114.192.0/21 1; +220.114.200.0/22 1; +220.202.64.0/19 1; +220.205.110.0/23 1; +220.205.112.0/23 1; +220.207.76.0/22 1; +220.207.140.0/22 1; +220.207.144.0/22 1; +221.13.128.0/17 1; +221.14.0.0/15 1; +221.176.15.60/31 1; +221.176.17.248/31 1; +221.176.22.70/31 1; +221.176.22.74/31 1; +221.176.22.82/31 1; +221.176.26.160/27 1; +221.176.27.92/30 1; +221.176.27.96/31 1; +221.176.52.36/30 1; +221.176.52.40/30 1; +221.176.96.0/19 1; +221.176.128.0/17 1; +221.177.152.0/21 1; +221.177.217.0/24 1; +221.177.218.0/23 1; +221.177.220.0/24 1; +221.177.233.0/24 1; +221.177.234.0/23 1; +221.177.236.0/24 1; +221.183.11.144/31 1; +221.183.11.148/31 1; +221.183.12.16/29 1; +221.183.13.24/29 1; +221.183.18.60/30 1; +221.183.18.64/30 1; +221.183.20.24/29 1; +221.183.20.32/28 1; +221.183.20.48/31 1; +221.183.20.64/30 1; +221.183.20.68/31 1; +221.183.21.124/30 1; +221.183.21.128/29 1; +221.183.22.10/31 1; +221.183.22.58/31 1; +221.183.22.234/31 1; +221.183.22.238/31 1; +221.183.23.6/31 1; +221.183.23.10/31 1; +221.183.37.54/31 1; +221.183.37.58/31 1; +221.183.37.60/30 1; +221.183.37.66/31 1; +221.183.37.92/30 1; +221.183.37.96/29 1; +221.183.37.104/30 1; +221.183.40.174/31 1; +221.183.42.154/31 1; +221.183.43.38/31 1; +221.183.43.40/29 1; +221.183.43.48/28 1; +221.183.43.64/26 1; +221.183.43.128/25 1; +221.183.44.0/23 1; +221.183.46.0/26 1; +221.183.46.64/27 1; +221.183.46.96/30 1; +221.183.48.176/30 1; +221.183.48.180/31 1; +221.183.48.194/31 1; +221.183.48.202/31 1; +221.183.48.204/30 1; +221.183.48.210/31 1; +221.183.48.214/31 1; +221.183.48.218/31 1; +221.183.48.234/31 1; +221.183.48.236/30 1; +221.183.48.240/29 1; +221.183.48.254/31 1; +221.183.49.0/29 1; +221.183.49.10/31 1; +221.183.49.12/30 1; +221.183.49.30/31 1; +221.183.51.8/29 1; +222.21.0.0/17 1; +222.21.128.0/18 1; +222.21.192.0/20 1; +222.21.208.0/22 1; +222.21.216.0/21 1; +222.22.0.0/18 1; +222.22.64.0/19 1; +222.22.96.0/22 1; +222.22.112.0/20 1; +222.40.0.0/16 1; +222.55.128.0/17 1; +222.60.128.0/17 1; +222.85.0.0/17 1; +222.88.0.0/15 1; +222.136.0.0/13 1; +223.88.0.0/14 1; +223.103.19.0/24 1; +223.103.41.0/24 1; +223.103.42.0/23 1; +223.103.44.0/24 1; +223.103.58.0/23 1; +223.103.60.0/22 1; +223.103.64.0/21 1; +223.103.72.0/22 1; +223.103.152.0/21 1; +223.103.160.0/23 1; +223.103.162.0/24 1; +223.103.206.0/24 1; +223.104.19.0/24 1; +223.104.105.0/24 1; +223.104.106.0/23 1; +223.104.108.0/22 1; +223.104.112.0/24 1; +223.211.192.0/19 1; +223.252.128.0/19 1; +2400:7200::/32 1; +2400:72e0::/32 1; +2400:a480::/32 1; +2400:f7c0::/32 1; +2401:3880::/32 1; +2401:3980::/32 1; +2401:3a80::/32 1; +2401:3b80::/32 1; +2401:3c80::/32 1; +2401:3d80::/32 1; +2401:3e80::/32 1; +2401:3f80::/32 1; +2401:4080::/32 1; +2401:4180::/32 1; +2401:4280::/32 1; +2401:4380::/32 1; +2401:4480::/32 1; +2401:4580::/32 1; +2401:4680::/32 1; +2401:4780::/32 1; +2401:4880::/32 1; +2401:4a80::/32 1; +2401:8fc0::/32 1; +2402:5b40::/32 1; +2403:e500::/32 1; +2404:f00::/32 1; +2404:10c0::/32 1; +2404:a000::/32 1; +2406:840:3c0::/42 1; +2406:840:400::/44 1; +2406:840:43c0::/42 1; +2406:840:4400::/38 1; +2406:7580::/32 1; +2406:7680::/32 1; +2406:7780::/32 1; +2406:7880::/32 1; +2408:8421:1200::/40 1; +2408:8421:6000::/39 1; +2408:8422:7100::/40 1; +2408:8422:9300::/40 1; +2409:8044::/30 1; +2409:8048::/31 1; +2409:804a::/32 1; +2409:804b::/37 1; +2409:804b:900::/40 1; +2409:804b:a00::/39 1; +2409:804b:c00::/38 1; +2409:804b:1000::/36 1; +2409:804b:2000::/35 1; +2409:804b:4000::/34 1; +2409:804b:8000::/33 1; +2409:8087:4400::/43 1; +2409:8087:4420::/44 1; +2409:8087:4430::/47 1; +2409:8087:4434::/46 1; +2409:8087:4438::/45 1; +2409:8087:4440::/42 1; +2409:8087:4480::/41 1; +2409:8088::/32 1; +2409:8744::/30 1; +2409:8748::/30 1; +2409:8844::/40 1; +2409:8944::/30 1; +2409:8948::/30 1; +2409:8a44::/30 1; +2409:8a48::/30 1; +2409:8b44::/30 1; +2409:8b48::/30 1; +2409:8c44::/36 1; +2409:8c44:1000::/37 1; +2409:8c44:1800::/39 1; +2409:8c44:1a00::/40 1; +2409:8c44:1c00::/38 1; +2409:8c44:2000::/35 1; +2409:8c44:4000::/34 1; +2409:8c44:8000::/33 1; +2409:8c45::/32 1; +2409:8c46::/31 1; +2409:8c48::/30 1; +2409:8d44::/30 1; +2409:8d48::/30 1; +2409:8e44::/30 1; +2409:8e48::/30 1; +240a:42bc::/40 1; +240a:42bc:1600::/40 1; +240a:42bd:2e00::/40 1; +240a:42be::/40 1; +240a:42be:600::/40 1; +240a:42be:1600::/40 1; +240a:42be:be00::/40 1; +240a:42be:e600::/40 1; +240a:42be:e800::/40 1; +240e:43c:7b00::/40 1; +240e:43d:2a00::/40 1; +240e:878:21:4000::/50 1; +240e:878:21:8000::/49 1; +240e:878:22::/48 1; +240e:878:23::/49 1; +240e:878:55:c000::/50 1; +2606:54c0:2148::/45 1; +2606:54c0:2150::/44 1; +2606:54c0:2160::/43 1; +2606:54c0:2180::/43 1; +2606:54c0:21a0::/45 1; +2606:54c3:0:32::/64 1; +2606:54c3:0:37d::/64 1; +2606:54c3:0:3de::/64 1; +2606:54c3:0:7e3::/64 1; +2606:54c3:0:891::/64 1; +2606:54c3:0:ac5::/64 1; +2606:54c3:0:b2b::/64 1; +2606:54c3:0:c39::/64 1; +2606:54c3:0:15ef::/64 1; +2606:54c3:0:1757::/64 1; +2606:54c3:0:1761::/64 1; +2606:54c3:0:19cf::/64 1; +2a02:26f7:c400:f483::/64 1; +2a02:26f7:c400:f484::/62 1; +2a02:26f7:c400:f488::/61 1; +2a02:26f7:c400:f490::/60 1; +2a02:26f7:c400:f4a0::/60 1; +2a02:26f7:c400:f4b0::/62 1; +2a02:26f7:c400:f4b4::/63 1; +2a02:26f7:c400:f4b6::/64 1; +2a02:26f7:c404:f483::/64 1; +2a02:26f7:c404:f484::/62 1; +2a02:26f7:c404:f488::/61 1; +2a02:26f7:c404:f490::/60 1; +2a02:26f7:c404:f4a0::/60 1; +2a02:26f7:c404:f4b0::/62 1; +2a02:26f7:c404:f4b4::/63 1; +2a02:26f7:c404:f4b6::/64 1; +2a02:26f7:c408:f483::/64 1; +2a02:26f7:c408:f484::/62 1; +2a02:26f7:c408:f488::/61 1; +2a02:26f7:c408:f490::/60 1; +2a02:26f7:c408:f4a0::/60 1; +2a02:26f7:c408:f4b0::/62 1; +2a02:26f7:c408:f4b4::/63 1; +2a02:26f7:c408:f4b6::/64 1; +2a02:26f7:c40c:f483::/64 1; +2a02:26f7:c40c:f484::/62 1; +2a02:26f7:c40c:f488::/61 1; +2a02:26f7:c40c:f490::/60 1; +2a02:26f7:c40c:f4a0::/60 1; +2a02:26f7:c40c:f4b0::/62 1; +2a02:26f7:c40c:f4b4::/63 1; +2a02:26f7:c40c:f4b6::/64 1; +2a02:26f7:c410:f483::/64 1; +2a02:26f7:c410:f484::/62 1; +2a02:26f7:c410:f488::/61 1; +2a02:26f7:c410:f490::/60 1; +2a02:26f7:c410:f4a0::/60 1; +2a02:26f7:c410:f4b0::/62 1; +2a02:26f7:c410:f4b4::/63 1; +2a02:26f7:c410:f4b6::/64 1; +2a02:26f7:c414:f483::/64 1; +2a02:26f7:c414:f484::/62 1; +2a02:26f7:c414:f488::/61 1; +2a02:26f7:c414:f490::/60 1; +2a02:26f7:c414:f4a0::/60 1; +2a02:26f7:c414:f4b0::/62 1; +2a02:26f7:c414:f4b4::/63 1; +2a02:26f7:c414:f4b6::/64 1; +2a02:26f7:c418:f483::/64 1; +2a02:26f7:c418:f484::/62 1; +2a02:26f7:c418:f488::/61 1; +2a02:26f7:c418:f490::/60 1; +2a02:26f7:c418:f4a0::/60 1; +2a02:26f7:c418:f4b0::/62 1; +2a02:26f7:c418:f4b4::/63 1; +2a02:26f7:c418:f4b6::/64 1; +2a02:26f7:c41c:f483::/64 1; +2a02:26f7:c41c:f484::/62 1; +2a02:26f7:c41c:f488::/61 1; +2a02:26f7:c41c:f490::/60 1; +2a02:26f7:c41c:f4a0::/60 1; +2a02:26f7:c41c:f4b0::/62 1; +2a02:26f7:c41c:f4b4::/63 1; +2a02:26f7:c41c:f4b6::/64 1; +2a02:26f7:c420:f483::/64 1; +2a02:26f7:c420:f484::/62 1; +2a02:26f7:c420:f488::/61 1; +2a02:26f7:c420:f490::/60 1; +2a02:26f7:c420:f4a0::/60 1; +2a02:26f7:c420:f4b0::/62 1; +2a02:26f7:c420:f4b4::/63 1; +2a02:26f7:c420:f4b6::/64 1; +2a06:a005:2916::/47 1; +2a09:bac1:1980:d0::/64 1; +2a09:bac1:1980:d8::/64 1; +2a09:bac1:1980:e0::/64 1; +2a09:bac1:1980:120::/64 1; +2a09:bac1:1980:c800::/64 1; +2a09:bac1:1980:c850::/64 1; +2a09:bac1:1980:f3e8::/64 1; +2a09:bac1:1980:f528::/64 1; +2a09:bac1:1981:708::/64 1; +2a09:bac1:1981:800::/64 1; +2a09:bac1:1981:840::/64 1; +2a09:bac1:1981:8f0::/64 1; +2a09:bac1:19a0:d0::/64 1; +2a09:bac1:19a0:d8::/64 1; +2a09:bac1:19a0:e0::/64 1; +2a09:bac1:19a0:120::/64 1; +2a09:bac1:19a0:c800::/64 1; +2a09:bac1:19a0:c850::/64 1; +2a09:bac1:19a0:f3e8::/64 1; +2a09:bac1:19a0:f528::/64 1; +2a09:bac1:19a1:708::/64 1; +2a09:bac1:19a1:800::/64 1; +2a09:bac1:19a1:840::/64 1; +2a09:bac1:19a1:8f0::/64 1; +2a09:bac1:19c0:d0::/64 1; +2a09:bac1:19c0:d8::/64 1; +2a09:bac1:19c0:e0::/64 1; +2a09:bac1:19c0:120::/64 1; +2a09:bac1:19c0:c800::/64 1; +2a09:bac1:19c0:c850::/64 1; +2a09:bac1:19c0:f3e8::/64 1; +2a09:bac1:19c0:f528::/64 1; +2a09:bac1:19c1:708::/64 1; +2a09:bac1:19c1:800::/64 1; +2a09:bac1:19c1:840::/64 1; +2a09:bac1:19c1:8f0::/64 1; +2a09:bac1:19e0:d0::/64 1; +2a09:bac1:19e0:d8::/64 1; +2a09:bac1:19e0:e0::/64 1; +2a09:bac1:19e0:120::/64 1; +2a09:bac1:19e0:c800::/64 1; +2a09:bac1:19e0:c850::/64 1; +2a09:bac1:19e0:f3e8::/64 1; +2a09:bac1:19e0:f528::/64 1; +2a09:bac1:19e1:708::/64 1; +2a09:bac1:19e1:800::/64 1; +2a09:bac1:19e1:840::/64 1; +2a09:bac1:19e1:8f0::/64 1; +2a09:bac2:2148::/45 1; +2a09:bac2:2150::/44 1; +2a09:bac2:2160::/43 1; +2a09:bac2:2180::/43 1; +2a09:bac2:21a0::/45 1; +2a09:bac3:2148::/45 1; +2a09:bac3:2150::/44 1; +2a09:bac3:2160::/43 1; +2a09:bac3:2180::/43 1; +2a09:bac3:21a0::/45 1; +2a09:bac5:2178::/45 1; +2a09:bac5:2180::/42 1; +2a09:bac5:21c0::/44 1; +2a09:bac5:21d0::/45 1; +2a09:bac6:2178::/45 1; +2a09:bac6:2180::/42 1; +2a09:bac6:21c0::/44 1; +2a09:bac6:21d0::/45 1; +2a0e:aa06:300::/40 1; +2a0e:aa07:f004::/46 1; +2a0e:aa07:f009::/48 1; +2a0e:aa07:f00a::/47 1; +2a0e:b107:790::/44 1; +2a10:2f00:18e::/48 1; diff --git a/minigate/root/usr/lib/minigate/geo/420000.conf b/minigate/root/usr/lib/minigate/geo/420000.conf new file mode 100644 index 000000000..bec60a665 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/420000.conf @@ -0,0 +1,922 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 湖北省 +27.16.0.0/12 1; +36.134.78.0/23 1; +36.192.243.0/24 1; +36.192.244.0/22 1; +36.192.248.0/21 1; +36.193.0.0/21 1; +36.193.8.0/24 1; +42.198.0.0/16 1; +42.201.64.0/22 1; +42.201.68.0/24 1; +42.245.208.0/21 1; +42.245.254.0/23 1; +42.247.0.176/28 1; +42.247.3.96/29 1; +42.247.5.224/29 1; +42.247.12.0/27 1; +42.247.15.0/28 1; +42.247.20.96/30 1; +42.247.25.128/28 1; +42.247.35.232/29 1; +42.247.35.240/28 1; +42.247.46.208/28 1; +42.247.47.208/28 1; +43.224.54.0/30 1; +43.224.54.12/30 1; +43.224.184.0/22 1; +43.227.136.0/22 1; +43.236.244.0/22 1; +43.236.248.0/22 1; +43.237.8.0/22 1; +43.237.136.0/22 1; +43.237.216.0/22 1; +43.238.28.0/22 1; +43.250.16.0/21 1; +43.250.100.0/22 1; +43.250.108.0/22 1; +43.252.51.0/24 1; +45.113.52.0/22 1; +45.113.184.0/22 1; +45.115.216.0/24 1; +45.253.16.0/21 1; +49.120.0.0/15 1; +49.122.72.0/21 1; +49.122.80.0/20 1; +49.122.96.0/19 1; +49.122.192.0/18 1; +49.123.48.0/20 1; +49.123.128.0/17 1; +49.210.0.0/16 1; +49.211.0.0/17 1; +49.222.0.0/16 1; +58.19.0.0/16 1; +58.48.0.0/13 1; +58.195.0.0/21 1; +58.195.160.0/20 1; +58.200.76.128/25 1; +58.200.127.248/29 1; +58.205.220.0/22 1; +58.205.224.0/19 1; +58.207.144.0/20 1; +59.43.68.0/24 1; +59.43.80.36/30 1; +59.43.80.40/31 1; +59.68.0.0/16 1; +59.69.0.0/17 1; +59.69.224.0/19 1; +59.70.15.0/24 1; +59.70.208.0/20 1; +59.71.128.0/17 1; +59.172.0.0/14 1; +61.136.128.0/17 1; +61.183.0.0/16 1; +61.184.0.0/16 1; +61.232.204.0/22 1; +61.232.208.0/22 1; +61.234.144.0/20 1; +61.237.0.10/31 1; +61.237.0.26/31 1; +61.237.0.28/30 1; +61.237.1.52/30 1; +61.237.1.64/30 1; +61.237.1.116/30 1; +61.237.1.120/29 1; +61.237.1.128/27 1; +61.237.1.160/28 1; +61.237.1.176/30 1; +61.237.2.188/31 1; +61.237.2.192/31 1; +61.237.3.24/29 1; +61.237.10.192/26 1; +61.237.22.224/27 1; +61.237.86.0/24 1; +61.237.119.154/31 1; +61.237.122.208/31 1; +61.237.122.212/31 1; +61.237.123.62/31 1; +61.237.123.76/31 1; +61.237.123.98/31 1; +61.237.123.102/31 1; +61.237.123.106/31 1; +61.237.123.108/31 1; +61.237.126.74/31 1; +61.237.126.78/31 1; +61.237.126.82/31 1; +61.237.126.90/31 1; +61.237.127.34/31 1; +61.237.127.46/31 1; +61.237.127.120/29 1; +61.237.127.128/28 1; +61.242.128.0/20 1; +61.242.160.0/19 1; +101.7.8.64/27 1; +103.3.104.0/22 1; +103.22.80.0/22 1; +103.32.244.0/22 1; +103.32.248.0/22 1; +103.33.8.0/22 1; +103.33.136.0/22 1; +103.33.216.0/22 1; +103.34.28.0/22 1; +103.40.88.0/22 1; +103.41.148.0/22 1; +103.41.152.0/22 1; +103.41.220.0/22 1; +103.41.224.0/22 1; +103.43.208.0/22 1; +103.46.244.0/22 1; +103.65.224.0/22 1; +103.67.72.0/21 1; +103.67.80.0/21 1; +103.67.172.0/24 1; +103.67.175.0/24 1; +103.72.124.0/22 1; +103.75.87.0/24 1; +103.79.84.0/22 1; +103.94.20.0/22 1; +103.95.52.0/22 1; +103.95.152.0/22 1; +103.95.216.0/22 1; +103.98.80.0/22 1; +103.98.196.0/22 1; +103.98.240.0/21 1; +103.99.116.0/22 1; +103.99.120.0/22 1; +103.99.232.0/21 1; +103.100.248.0/21 1; +103.101.144.0/21 1; +103.102.76.0/22 1; +103.102.80.0/22 1; +103.102.208.0/21 1; +103.104.36.0/22 1; +103.104.40.0/22 1; +103.106.36.0/22 1; +103.106.40.0/22 1; +103.106.128.0/21 1; +103.106.252.0/22 1; +103.107.0.0/22 1; +103.107.28.0/22 1; +103.107.32.0/22 1; +103.113.5.0/24 1; +103.113.6.0/23 1; +103.126.124.0/22 1; +103.133.232.0/24 1; +103.202.196.0/22 1; +103.204.136.0/22 1; +103.210.188.0/22 1; +103.226.60.0/22 1; +103.226.116.0/22 1; +103.226.156.0/22 1; +104.28.27.185/32 1; +104.28.27.186/31 1; +104.28.27.188/30 1; +104.28.66.38/31 1; +104.28.69.38/31 1; +104.28.83.10/31 1; +104.28.99.8/31 1; +104.28.101.8/31 1; +104.28.117.40/31 1; +104.28.120.40/31 1; +104.28.143.54/32 1; +104.28.162.190/32 1; +104.28.199.200/30 1; +104.28.199.204/31 1; +104.28.199.206/32 1; +104.28.231.200/30 1; +104.28.231.204/31 1; +104.28.231.206/32 1; +110.121.8.0/21 1; +110.121.16.0/20 1; +110.121.32.0/21 1; +110.121.48.0/20 1; +110.121.96.0/21 1; +110.121.112.0/20 1; +110.121.176.0/21 1; +110.121.192.0/19 1; +110.200.0.0/15 1; +110.202.0.0/16 1; +111.4.0.0/16 1; +111.46.0.0/15 1; +111.48.0.0/16 1; +111.60.0.0/16 1; +111.170.0.0/16 1; +111.172.0.0/14 1; +111.176.0.0/13 1; +112.53.240.0/20 1; +112.61.64.0/19 1; +112.61.96.0/20 1; +113.56.0.0/15 1; +115.25.211.0/24 1; +115.156.0.0/16 1; +115.157.0.0/17 1; +115.157.224.0/20 1; +115.168.48.0/24 1; +115.168.80.0/24 1; +115.175.0.0/17 1; +115.190.0.0/15 1; +116.205.11.0/24 1; +116.205.12.0/23 1; +116.205.14.0/24 1; +116.207.0.0/16 1; +116.208.0.0/14 1; +117.49.11.0/24 1; +117.72.255.0/24 1; +117.79.192.0/19 1; +117.136.23.0/24 1; +117.136.52.0/23 1; +117.136.74.0/24 1; +117.136.81.0/24 1; +117.136.83.0/24 1; +117.136.145.0/24 1; +117.136.235.104/30 1; +117.142.22.0/23 1; +117.142.24.0/21 1; +117.142.32.0/22 1; +117.142.135.0/24 1; +117.150.0.0/15 1; +117.152.0.0/14 1; +118.26.112.0/22 1; +119.36.0.0/16 1; +119.79.0.0/16 1; +119.96.0.0/13 1; +120.65.254.0/23 1; +120.128.8.0/21 1; +120.128.16.0/20 1; +120.128.32.0/19 1; +120.128.64.0/18 1; +120.128.128.0/17 1; +120.129.0.0/16 1; +120.130.0.0/16 1; +120.131.16.0/20 1; +120.131.32.0/19 1; +120.202.0.0/16 1; +121.60.0.0/14 1; +122.9.252.0/22 1; +122.72.10.0/23 1; +122.72.84.0/22 1; +122.82.0.0/16 1; +122.188.0.0/14 1; +122.204.0.0/15 1; +122.207.8.0/21 1; +122.207.224.0/19 1; +123.85.0.0/16 1; +123.94.3.0/24 1; +123.94.18.0/24 1; +124.15.0.0/18 1; +124.203.176.0/20 1; +124.203.224.0/22 1; +125.219.208.0/20 1; +125.219.224.0/19 1; +125.220.0.0/16 1; +125.221.0.0/17 1; +159.226.124.0/22 1; +159.226.162.0/23 1; +160.19.216.0/22 1; +171.40.0.0/13 1; +171.80.0.0/14 1; +171.112.0.0/14 1; +175.189.0.0/16 1; +180.90.0.0/17 1; +183.92.0.0/14 1; +183.168.0.0/16 1; +183.169.160.0/20 1; +202.94.9.0/24 1; +202.97.17.2/31 1; +202.97.17.4/30 1; +202.97.19.0/28 1; +202.97.19.16/31 1; +202.97.19.32/31 1; +202.97.19.58/31 1; +202.97.19.60/30 1; +202.97.19.64/28 1; +202.97.19.80/29 1; +202.97.19.88/30 1; +202.97.19.100/30 1; +202.97.19.104/30 1; +202.97.19.108/31 1; +202.97.19.114/31 1; +202.97.19.116/30 1; +202.97.19.120/31 1; +202.97.19.124/31 1; +202.97.22.24/29 1; +202.97.22.32/27 1; +202.97.22.64/31 1; +202.97.22.68/31 1; +202.97.23.32/27 1; +202.97.23.66/31 1; +202.97.23.68/30 1; +202.97.23.98/31 1; +202.97.23.100/30 1; +202.97.23.124/31 1; +202.97.23.128/31 1; +202.97.23.132/31 1; +202.97.23.136/31 1; +202.97.23.196/31 1; +202.97.23.208/31 1; +202.97.29.0/29 1; +202.97.29.8/30 1; +202.97.29.12/31 1; +202.97.29.50/31 1; +202.97.29.54/31 1; +202.97.29.56/29 1; +202.97.29.64/30 1; +202.97.29.70/31 1; +202.97.29.100/31 1; +202.97.29.162/31 1; +202.97.29.164/30 1; +202.97.31.36/30 1; +202.97.32.4/31 1; +202.97.32.72/30 1; +202.97.32.76/31 1; +202.97.35.164/31 1; +202.97.35.174/31 1; +202.97.36.18/31 1; +202.97.36.20/31 1; +202.97.36.96/29 1; +202.97.36.104/30 1; +202.97.36.108/31 1; +202.97.36.150/31 1; +202.97.36.156/31 1; +202.97.36.180/31 1; +202.97.36.186/31 1; +202.97.36.228/31 1; +202.97.36.232/31 1; +202.97.37.84/31 1; +202.97.37.102/31 1; +202.97.37.162/31 1; +202.97.37.166/31 1; +202.97.37.170/31 1; +202.97.37.188/30 1; +202.97.37.194/31 1; +202.97.37.208/28 1; +202.97.37.224/30 1; +202.97.37.232/31 1; +202.97.37.248/31 1; +202.97.38.40/31 1; +202.97.38.100/31 1; +202.97.38.192/31 1; +202.97.38.224/31 1; +202.97.38.240/31 1; +202.97.39.44/31 1; +202.97.40.50/31 1; +202.97.42.168/31 1; +202.97.42.180/31 1; +202.97.42.204/30 1; +202.97.42.208/30 1; +202.97.42.212/31 1; +202.97.43.40/31 1; +202.97.43.48/30 1; +202.97.43.86/31 1; +202.97.43.140/31 1; +202.97.43.200/29 1; +202.97.43.208/29 1; +202.97.44.0/26 1; +202.97.44.156/31 1; +202.97.46.184/31 1; +202.97.46.196/31 1; +202.97.48.136/31 1; +202.97.48.192/31 1; +202.97.54.0/31 1; +202.97.54.208/31 1; +202.97.54.220/31 1; +202.97.56.96/31 1; +202.97.56.104/31 1; +202.97.56.132/30 1; +202.97.56.136/30 1; +202.97.56.140/31 1; +202.97.56.156/31 1; +202.97.56.224/31 1; +202.97.56.228/31 1; +202.97.56.244/31 1; +202.97.56.248/31 1; +202.97.56.252/31 1; +202.97.59.10/31 1; +202.97.59.12/30 1; +202.97.59.22/31 1; +202.97.59.26/31 1; +202.97.59.34/31 1; +202.97.59.36/30 1; +202.97.59.40/30 1; +202.97.59.46/31 1; +202.97.59.50/31 1; +202.97.59.52/30 1; +202.97.59.56/29 1; +202.97.59.64/30 1; +202.97.59.74/31 1; +202.97.59.78/31 1; +202.97.61.176/31 1; +202.97.61.212/31 1; +202.97.63.56/31 1; +202.97.63.88/31 1; +202.97.64.0/31 1; +202.97.64.196/31 1; +202.97.64.200/31 1; +202.97.64.204/31 1; +202.97.64.208/29 1; +202.97.64.216/30 1; +202.97.64.220/31 1; +202.97.64.240/31 1; +202.97.64.244/31 1; +202.97.64.248/31 1; +202.97.65.76/31 1; +202.97.65.116/30 1; +202.97.65.120/30 1; +202.97.65.124/31 1; +202.97.65.152/29 1; +202.97.65.176/30 1; +202.97.65.180/31 1; +202.97.65.188/31 1; +202.97.66.128/29 1; +202.97.66.136/31 1; +202.97.67.14/31 1; +202.97.67.18/31 1; +202.97.67.26/31 1; +202.97.67.28/30 1; +202.97.67.32/30 1; +202.97.67.36/31 1; +202.97.67.62/31 1; +202.97.67.64/31 1; +202.97.67.68/31 1; +202.97.67.76/30 1; +202.97.67.80/30 1; +202.97.67.84/31 1; +202.97.67.106/31 1; +202.97.67.110/31 1; +202.97.67.112/31 1; +202.97.67.156/31 1; +202.97.67.160/31 1; +202.97.67.168/29 1; +202.97.67.176/31 1; +202.97.67.180/30 1; +202.97.67.184/30 1; +202.97.67.188/31 1; +202.97.67.192/31 1; +202.97.70.152/31 1; +202.97.70.184/30 1; +202.97.70.188/31 1; +202.97.70.192/31 1; +202.97.70.196/31 1; +202.97.70.212/31 1; +202.97.71.32/31 1; +202.97.71.36/31 1; +202.97.71.120/31 1; +202.97.71.124/31 1; +202.97.76.0/31 1; +202.97.76.12/31 1; +202.97.76.56/31 1; +202.97.76.60/31 1; +202.97.77.32/31 1; +202.97.77.36/31 1; +202.97.77.40/30 1; +202.97.77.44/31 1; +202.97.77.80/31 1; +202.97.77.88/31 1; +202.97.77.92/31 1; +202.97.77.180/31 1; +202.97.77.184/31 1; +202.97.77.188/30 1; +202.97.77.192/31 1; +202.97.77.196/30 1; +202.97.77.200/31 1; +202.97.77.204/31 1; +202.97.77.208/31 1; +202.97.77.212/31 1; +202.97.78.130/31 1; +202.97.78.134/31 1; +202.97.78.136/29 1; +202.97.78.144/29 1; +202.97.78.152/30 1; +202.97.78.238/31 1; +202.97.79.64/31 1; +202.97.79.68/31 1; +202.97.79.80/30 1; +202.97.79.84/31 1; +202.97.79.88/31 1; +202.97.79.96/31 1; +202.97.79.100/31 1; +202.97.79.108/31 1; +202.97.79.116/31 1; +202.97.79.124/31 1; +202.97.79.240/31 1; +202.97.87.0/26 1; +202.97.87.64/27 1; +202.97.92.64/28 1; +202.103.0.0/18 1; +202.110.128.0/18 1; +202.112.20.0/23 1; +202.112.22.0/24 1; +202.112.53.28/30 1; +202.114.0.0/16 1; +202.127.146.0/24 1; +202.127.148.0/22 1; +202.127.152.0/23 1; +202.127.155.0/24 1; +202.127.156.0/23 1; +202.127.158.0/24 1; +202.127.251.0/26 1; +202.205.48.0/20 1; +203.0.104.0/21 1; +203.2.64.0/21 1; +203.93.112.0/24 1; +203.93.189.0/24 1; +203.93.198.0/23 1; +203.93.224.0/20 1; +203.100.32.0/20 1; +210.5.128.0/20 1; +210.22.196.192/26 1; +210.42.0.0/17 1; +210.42.128.0/21 1; +210.42.136.0/22 1; +210.42.140.0/23 1; +210.42.144.0/20 1; +210.42.160.0/20 1; +210.51.212.0/22 1; +210.51.229.0/24 1; +210.51.236.0/25 1; +210.51.240.0/23 1; +210.51.242.0/24 1; +210.51.252.0/24 1; +210.53.0.0/21 1; +211.67.0.0/18 1; +211.67.64.0/20 1; +211.69.128.0/18 1; +211.69.192.0/20 1; +211.84.96.0/20 1; +211.85.0.0/17 1; +211.85.128.0/18 1; +211.85.192.0/20 1; +211.85.208.0/21 1; +211.91.120.0/21 1; +211.91.128.0/19 1; +211.91.160.0/20 1; +211.91.176.0/21 1; +211.98.70.0/27 1; +211.98.70.32/29 1; +211.98.70.232/29 1; +211.98.70.248/29 1; +211.98.102.0/23 1; +211.98.104.0/22 1; +211.98.117.0/24 1; +211.98.118.0/24 1; +211.98.128.24/29 1; +211.98.128.48/28 1; +211.98.147.0/24 1; +211.98.158.0/24 1; +211.98.169.128/27 1; +211.98.235.0/24 1; +211.136.23.64/26 1; +211.136.23.128/28 1; +211.137.48.0/20 1; +211.137.64.0/20 1; +211.161.120.0/21 1; +211.161.144.0/20 1; +211.161.160.0/19 1; +211.162.234.0/23 1; +211.164.54.0/23 1; +211.164.56.0/23 1; +211.164.76.0/23 1; +218.104.96.0/20 1; +218.106.112.0/20 1; +218.196.59.0/24 1; +218.196.60.0/22 1; +218.196.128.0/19 1; +218.197.0.0/16 1; +218.198.108.0/22 1; +218.198.216.0/21 1; +218.199.0.0/16 1; +218.200.64.0/18 1; +218.200.128.0/19 1; +218.200.240.0/24 1; +219.138.0.0/15 1; +219.140.0.0/16 1; +219.158.7.246/31 1; +219.158.9.26/31 1; +219.158.10.40/31 1; +219.158.11.232/30 1; +219.158.12.154/31 1; +219.158.13.128/29 1; +219.158.13.186/31 1; +219.158.14.94/31 1; +219.158.14.166/31 1; +219.158.14.170/31 1; +219.158.15.190/31 1; +219.158.15.232/29 1; +219.158.16.38/31 1; +219.158.16.54/31 1; +219.158.16.172/31 1; +219.158.16.180/31 1; +219.158.17.36/31 1; +219.158.17.40/29 1; +219.158.17.48/31 1; +219.158.17.62/31 1; +219.158.17.76/31 1; +219.158.19.154/31 1; +219.158.19.206/31 1; +219.158.19.216/31 1; +219.158.20.24/31 1; +219.158.20.188/31 1; +219.158.20.204/31 1; +219.158.20.212/31 1; +219.158.20.216/31 1; +219.158.20.228/31 1; +219.158.20.232/31 1; +219.158.20.240/31 1; +219.158.20.244/31 1; +219.158.20.248/31 1; +219.158.21.144/31 1; +219.158.21.148/30 1; +219.158.21.152/29 1; +219.158.21.160/30 1; +219.158.21.250/31 1; +219.158.22.48/30 1; +219.158.22.52/31 1; +219.158.22.78/31 1; +219.158.22.100/31 1; +219.158.22.244/30 1; +219.158.22.248/31 1; +219.158.22.252/30 1; +219.158.23.56/29 1; +219.158.23.70/31 1; +219.158.23.98/31 1; +219.158.23.202/31 1; +219.158.24.36/31 1; +219.158.24.98/31 1; +219.158.39.208/29 1; +219.158.39.216/30 1; +219.158.39.220/31 1; +219.158.39.224/31 1; +219.158.39.248/30 1; +219.158.40.240/29 1; +219.158.42.196/30 1; +219.158.42.200/30 1; +219.158.42.204/31 1; +219.158.43.190/31 1; +219.158.43.192/29 1; +219.158.43.200/30 1; +219.158.43.204/31 1; +219.158.44.236/30 1; +219.158.44.240/29 1; +219.158.45.66/31 1; +219.158.45.136/31 1; +219.158.45.140/30 1; +219.158.45.144/31 1; +219.158.45.198/31 1; +219.158.45.200/29 1; +219.158.45.208/28 1; +219.158.97.174/31 1; +219.158.98.112/30 1; +219.158.98.162/31 1; +219.158.99.6/31 1; +219.158.99.120/30 1; +219.158.99.190/31 1; +219.158.99.194/31 1; +219.158.100.248/31 1; +219.158.101.200/30 1; +219.158.101.204/31 1; +219.158.102.12/30 1; +219.158.104.74/31 1; +219.158.104.94/31 1; +219.158.105.254/31 1; +219.158.108.46/31 1; +219.158.109.82/31 1; +219.158.109.102/31 1; +219.158.109.104/30 1; +219.158.109.112/29 1; +219.158.109.136/30 1; +219.158.109.148/30 1; +219.158.110.102/31 1; +219.158.110.152/30 1; +219.158.110.156/31 1; +219.158.112.88/30 1; +219.158.112.92/31 1; +219.158.112.118/31 1; +219.224.102.214/31 1; +219.242.184.0/21 1; +219.243.243.0/24 1; +220.113.64.0/18 1; +220.202.0.0/18 1; +220.203.32.0/19 1; +220.207.136.0/22 1; +220.207.152.0/21 1; +220.231.231.0/24 1; +220.231.232.0/22 1; +220.249.64.0/18 1; +221.174.120.0/25 1; +221.176.15.102/31 1; +221.176.15.186/31 1; +221.176.15.190/31 1; +221.176.20.168/29 1; +221.176.20.176/30 1; +221.176.20.180/31 1; +221.176.21.12/30 1; +221.176.21.16/31 1; +221.176.21.20/30 1; +221.176.21.24/29 1; +221.176.21.32/28 1; +221.176.21.48/29 1; +221.176.21.232/31 1; +221.176.21.240/31 1; +221.176.21.244/31 1; +221.176.22.56/31 1; +221.176.22.68/31 1; +221.176.22.166/31 1; +221.176.22.230/31 1; +221.176.26.224/31 1; +221.176.27.10/31 1; +221.176.27.78/31 1; +221.176.27.100/31 1; +221.176.27.226/31 1; +221.176.27.228/30 1; +221.176.52.44/30 1; +221.176.52.48/30 1; +221.177.160.0/21 1; +221.183.9.166/31 1; +221.183.10.70/31 1; +221.183.10.86/31 1; +221.183.10.162/31 1; +221.183.10.164/31 1; +221.183.10.172/31 1; +221.183.10.178/31 1; +221.183.10.184/29 1; +221.183.10.192/27 1; +221.183.10.224/29 1; +221.183.10.232/30 1; +221.183.11.28/31 1; +221.183.11.42/31 1; +221.183.11.126/31 1; +221.183.11.230/31 1; +221.183.14.40/29 1; +221.183.15.76/30 1; +221.183.15.80/28 1; +221.183.15.96/30 1; +221.183.15.240/28 1; +221.183.19.32/29 1; +221.183.20.72/29 1; +221.183.22.22/31 1; +221.183.22.46/31 1; +221.183.22.60/31 1; +221.183.22.64/31 1; +221.183.22.104/31 1; +221.183.22.136/31 1; +221.183.22.204/31 1; +221.183.22.218/31 1; +221.183.25.12/30 1; +221.183.25.16/30 1; +221.183.36.188/31 1; +221.183.39.208/28 1; +221.183.40.50/31 1; +221.183.41.34/31 1; +221.183.128.0/17 1; +221.232.0.0/14 1; +222.20.0.0/16 1; +222.21.212.0/22 1; +222.21.224.0/19 1; +222.22.100.0/22 1; +222.22.104.0/21 1; +222.22.128.0/18 1; +222.22.192.0/19 1; +222.42.0.0/16 1; +223.75.0.0/16 1; +223.76.0.0/15 1; +223.103.20.0/24 1; +223.104.20.0/24 1; +223.104.119.0/24 1; +223.104.120.0/21 1; +223.209.128.0/17 1; +223.210.0.0/22 1; +2001:250:4000::/48 1; +2001:df1:5280::/48 1; +2001:df3:2a80::/48 1; +2400:6200::/32 1; +2400:7ae0::/32 1; +2400:e880::/32 1; +2401:5c20::/32 1; +2401:9f80::/32 1; +2401:aa40::/32 1; +2401:bb20::/32 1; +2401:ffc0::/32 1; +2402:440::/32 1; +2402:2440::/32 1; +2402:24c0::/32 1; +2402:2b80::/32 1; +2402:3140::/32 1; +2402:31c0::/32 1; +2403:9ac0::/32 1; +2404:f4c0::/34 1; +2404:f4c0:4000::/36 1; +2404:f4c0:a002::/47 1; +2404:f4c0:a004::/46 1; +2404:f4c0:a008::/45 1; +2404:f4c0:a010::/44 1; +2404:f4c0:a020::/43 1; +2404:f4c0:a040::/42 1; +2404:f4c0:a080::/41 1; +2404:f4c0:a100::/40 1; +2404:f4c0:a200::/39 1; +2404:f4c0:a400::/38 1; +2404:f4c0:a800::/37 1; +2404:f4c0:b000::/36 1; +2404:f4c0:c000::/34 1; +2406:840:301::/48 1; +2406:840:302::/47 1; +2406:840:304::/46 1; +2406:840:308::/45 1; +2406:840:310::/44 1; +2406:840:320::/43 1; +2406:840:340::/42 1; +2406:840:e080::/48 1; +2406:840:e083::/48 1; +2406:840:e084::/46 1; +2406:840:e088::/45 1; +2406:840:e300::/44 1; +2406:840:e340::/44 1; +2406:840:e840::/44 1; +2406:840:fed2::/48 1; +2406:cac0::/40 1; +2407:9bc0::/32 1; +2407:c080:7000::/40 1; +2408:824e:c700::/40 1; +2408:844f:500::/40 1; +2408:844f:1500::/40 1; +2408:844f:9f00::/40 1; +2408:894e:700::/40 1; +2408:894e:c00::/40 1; +2409:894d:3e00::/40 1; +240a:42c1:8400::/40 1; +240a:42c4:4400::/40 1; +240a:42c4:6800::/40 1; +240a:42c5:8400::/40 1; +240e:45c:c00::/40 1; +240e:45c:5300::/40 1; +240e:45c:6600::/40 1; +240e:45c:9800::/40 1; +240e:45c:c600::/40 1; +240e:45c:c800::/40 1; +240e:45d::/33 1; +240e:45d:c600::/40 1; +240e:45e:1400::/40 1; +240e:45f:1400::/40 1; +240e:45f:1e00::/40 1; +2602:feda:c30::/44 1; +2606:54c0:21a8::/45 1; +2606:54c0:21b0::/44 1; +2606:54c0:21c0::/43 1; +2606:54c3:0:614::/64 1; +2606:54c3:0:63d::/64 1; +2606:54c3:0:91c::/64 1; +2606:54c3:0:d44::/64 1; +2606:54c3:0:1069::/64 1; +2606:54c3:0:1218::/64 1; +2606:54c3:0:142b::/64 1; +2a09:bac1:1980:c8::/64 1; +2a09:bac1:1980:9498::/64 1; +2a09:bac1:1980:9f60::/64 1; +2a09:bac1:1980:a020::/64 1; +2a09:bac1:1980:edc8::/64 1; +2a09:bac1:1980:ee08::/64 1; +2a09:bac1:1980:ee10::/64 1; +2a09:bac1:19a0:c8::/64 1; +2a09:bac1:19a0:9498::/64 1; +2a09:bac1:19a0:9f60::/64 1; +2a09:bac1:19a0:a020::/64 1; +2a09:bac1:19a0:edc8::/64 1; +2a09:bac1:19a0:ee08::/64 1; +2a09:bac1:19a0:ee10::/64 1; +2a09:bac1:19c0:c8::/64 1; +2a09:bac1:19c0:9498::/64 1; +2a09:bac1:19c0:9f60::/64 1; +2a09:bac1:19c0:a020::/64 1; +2a09:bac1:19c0:edc8::/64 1; +2a09:bac1:19c0:ee08::/64 1; +2a09:bac1:19c0:ee10::/64 1; +2a09:bac1:19e0:c8::/64 1; +2a09:bac1:19e0:9498::/64 1; +2a09:bac1:19e0:9f60::/64 1; +2a09:bac1:19e0:a020::/64 1; +2a09:bac1:19e0:edc8::/64 1; +2a09:bac1:19e0:ee08::/64 1; +2a09:bac1:19e0:ee10::/64 1; +2a09:bac2:21a8::/45 1; +2a09:bac2:21b0::/44 1; +2a09:bac2:21c0::/43 1; +2a09:bac2:d4f0::/45 1; +2a09:bac3:21a8::/45 1; +2a09:bac3:21b0::/44 1; +2a09:bac3:21c0::/43 1; +2a09:bac3:d4f0::/45 1; +2a09:bac5:21d8::/45 1; +2a09:bac5:21e0::/43 1; +2a09:bac5:2200::/44 1; +2a09:bac5:d5f8::/45 1; +2a09:bac6:21d8::/45 1; +2a09:bac6:21e0::/43 1; +2a09:bac6:2200::/44 1; +2a09:bac6:d5f8::/45 1; +2a0c:b641:310::/44 1; +2a0d:2580:ff00::/40 1; +2a0d:2581::/39 1; +2a0e:aa07:e042::/48 1; +2a0e:b107:11c0::/44 1; +2a0e:b107:13a0::/43 1; +2a0e:b107:13c0::/44 1; diff --git a/minigate/root/usr/lib/minigate/geo/430000.conf b/minigate/root/usr/lib/minigate/geo/430000.conf new file mode 100644 index 000000000..1b7136dfa --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/430000.conf @@ -0,0 +1,625 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 湖南省 +36.111.200.0/21 1; +36.133.12.0/22 1; +36.133.16.0/21 1; +36.133.152.0/21 1; +36.148.0.0/16 1; +36.157.0.0/16 1; +36.158.0.0/16 1; +36.193.9.0/24 1; +36.193.10.0/23 1; +36.193.12.0/22 1; +36.193.16.0/20 1; +36.193.32.0/23 1; +42.48.0.0/15 1; +42.247.11.192/27 1; +42.247.25.160/27 1; +42.247.37.224/28 1; +42.247.41.0/27 1; +42.247.42.80/28 1; +43.224.54.168/29 1; +43.224.160.0/22 1; +43.236.4.0/22 1; +43.236.140.0/22 1; +43.236.144.0/22 1; +43.237.24.0/22 1; +43.237.148.0/22 1; +43.238.144.0/22 1; +43.238.236.0/22 1; +43.240.160.0/22 1; +43.240.168.0/22 1; +43.240.184.0/21 1; +43.242.144.0/21 1; +43.242.156.0/22 1; +43.250.200.0/22 1; +43.252.56.0/22 1; +45.113.252.0/22 1; +45.116.36.0/22 1; +45.123.128.0/22 1; +45.250.12.0/22 1; +49.123.0.0/19 1; +49.123.32.0/20 1; +49.123.64.0/18 1; +49.220.0.0/17 1; +58.20.0.0/16 1; +58.44.0.0/14 1; +58.200.127.184/29 1; +58.207.120.0/21 1; +58.207.248.0/21 1; +59.43.69.0/24 1; +59.51.0.0/17 1; +59.71.0.0/17 1; +59.81.86.0/23 1; +61.137.0.0/17 1; +61.150.128.0/17 1; +61.186.64.0/18 1; +61.187.0.0/16 1; +61.232.142.0/23 1; +61.232.144.0/22 1; +61.232.148.0/23 1; +61.234.228.0/22 1; +61.234.232.0/21 1; +61.234.240.0/20 1; +61.236.64.0/20 1; +61.237.0.42/31 1; +61.237.0.116/30 1; +61.237.0.120/30 1; +61.237.1.70/31 1; +61.237.1.74/31 1; +61.237.2.4/30 1; +61.237.2.8/30 1; +61.237.2.190/31 1; +61.237.2.194/31 1; +61.237.14.128/27 1; +61.237.24.32/27 1; +61.237.24.128/26 1; +61.237.30.88/30 1; +61.237.64.3/32 1; +61.237.112.84/30 1; +61.237.113.176/30 1; +61.237.122.206/31 1; +61.237.122.210/31 1; +61.237.122.214/31 1; +61.237.123.110/31 1; +61.237.123.114/31 1; +61.237.128.0/20 1; +61.240.192.0/19 1; +61.240.224.0/20 1; +61.241.224.0/19 1; +101.126.128.0/17 1; +101.130.0.0/17 1; +103.22.68.0/22 1; +103.32.140.0/22 1; +103.32.144.0/22 1; +103.33.24.0/22 1; +103.33.148.0/22 1; +103.34.144.0/22 1; +103.34.236.0/22 1; +103.38.32.0/22 1; +103.38.40.0/22 1; +103.43.224.0/22 1; +103.53.204.0/22 1; +103.56.72.0/22 1; +103.63.244.0/22 1; +103.73.168.0/22 1; +103.78.124.0/22 1; +103.86.32.0/22 1; +103.86.129.0/24 1; +103.88.152.0/23 1; +103.91.108.0/22 1; +103.93.152.0/22 1; +103.96.216.0/22 1; +103.103.72.0/22 1; +103.109.248.0/22 1; +103.178.0.0/18 1; +103.192.128.0/22 1; +103.202.192.0/22 1; +103.202.228.0/22 1; +103.202.236.0/22 1; +103.202.244.0/22 1; +103.203.112.0/22 1; +103.203.164.0/22 1; +103.204.236.0/22 1; +103.218.20.0/22 1; +103.223.36.0/22 1; +103.228.176.0/22 1; +103.233.44.0/22 1; +103.246.8.0/22 1; +103.250.248.0/22 1; +104.28.20.129/32 1; +104.28.20.130/31 1; +104.28.20.132/30 1; +104.28.66.88/31 1; +104.28.66.102/31 1; +104.28.69.88/31 1; +104.28.69.102/31 1; +104.28.83.60/31 1; +104.28.83.74/31 1; +104.28.99.54/31 1; +104.28.99.68/31 1; +104.28.101.54/31 1; +104.28.101.68/31 1; +104.28.117.90/31 1; +104.28.117.104/31 1; +104.28.120.90/31 1; +104.28.120.104/31 1; +104.28.191.12/30 1; +104.28.191.16/31 1; +104.28.191.18/32 1; +104.28.192.130/31 1; +104.28.192.132/30 1; +104.28.192.136/32 1; +104.28.223.75/32 1; +104.28.223.76/30 1; +104.28.223.80/31 1; +104.28.224.130/31 1; +104.28.224.132/30 1; +104.28.224.136/32 1; +104.28.255.75/32 1; +104.28.255.76/30 1; +104.28.255.80/31 1; +106.16.0.0/12 1; +110.52.0.0/15 1; +110.203.0.0/16 1; +110.204.0.0/14 1; +111.8.0.0/16 1; +111.22.0.0/15 1; +112.26.31.224/27 1; +112.33.250.0/23 1; +112.33.252.0/22 1; +113.218.0.0/15 1; +113.220.0.0/14 1; +113.240.0.0/13 1; +114.119.192.0/21 1; +114.119.200.0/22 1; +115.157.192.0/19 1; +115.157.240.0/20 1; +115.168.49.0/24 1; +115.168.81.0/24 1; +116.128.224.0/19 1; +116.129.244.0/22 1; +116.129.248.0/22 1; +116.129.252.0/23 1; +116.129.254.0/24 1; +116.161.0.0/16 1; +116.162.0.0/16 1; +116.163.0.0/18 1; +116.199.128.0/23 1; +116.199.133.0/24 1; +116.199.134.0/23 1; +116.199.136.0/23 1; +116.199.138.0/24 1; +117.136.24.0/24 1; +117.136.88.0/23 1; +118.206.192.0/18 1; +118.239.0.0/16 1; +118.248.0.0/13 1; +119.39.0.0/16 1; +119.44.0.0/16 1; +119.45.0.0/18 1; +120.226.0.0/15 1; +120.228.0.0/16 1; +122.48.16.0/20 1; +122.48.80.0/20 1; +122.48.192.0/18 1; +122.72.28.0/24 1; +122.72.88.0/22 1; +122.72.123.0/24 1; +122.207.0.0/21 1; +122.207.16.0/20 1; +122.207.32.0/19 1; +122.207.64.0/18 1; +123.68.0.0/15 1; +123.84.0.0/16 1; +123.94.19.0/24 1; +124.203.132.0/22 1; +124.228.0.0/14 1; +124.232.0.0/15 1; +125.221.128.0/17 1; +159.226.147.0/24 1; +159.226.152.0/24 1; +175.0.0.0/12 1; +180.189.148.0/22 1; +182.43.0.0/22 1; +182.43.4.0/24 1; +183.169.0.0/17 1; +183.214.0.0/15 1; +202.97.18.74/31 1; +202.97.18.82/31 1; +202.97.18.90/31 1; +202.97.19.98/31 1; +202.97.19.142/31 1; +202.97.20.0/25 1; +202.97.34.250/31 1; +202.97.36.26/31 1; +202.97.38.26/31 1; +202.97.38.38/31 1; +202.97.38.42/31 1; +202.97.38.44/30 1; +202.97.38.48/29 1; +202.97.38.56/30 1; +202.97.38.66/31 1; +202.97.38.102/31 1; +202.97.38.182/31 1; +202.97.38.190/31 1; +202.97.38.194/31 1; +202.97.38.196/30 1; +202.97.38.218/31 1; +202.97.38.226/31 1; +202.97.38.242/31 1; +202.97.38.250/31 1; +202.97.39.32/31 1; +202.97.42.54/31 1; +202.97.42.62/31 1; +202.97.42.118/31 1; +202.97.42.162/31 1; +202.97.42.166/31 1; +202.97.42.182/31 1; +202.97.42.214/31 1; +202.97.43.38/31 1; +202.97.46.168/30 1; +202.97.46.204/30 1; +202.97.46.208/30 1; +202.97.46.212/31 1; +202.97.46.216/29 1; +202.97.49.238/31 1; +202.97.49.242/31 1; +202.97.54.210/31 1; +202.97.54.212/30 1; +202.97.54.216/30 1; +202.97.54.222/31 1; +202.97.56.6/31 1; +202.97.56.10/31 1; +202.97.56.18/31 1; +202.97.56.22/31 1; +202.97.56.38/31 1; +202.97.56.42/31 1; +202.97.56.54/31 1; +202.97.56.58/31 1; +202.97.56.62/31 1; +202.97.56.74/31 1; +202.97.56.94/31 1; +202.97.56.98/31 1; +202.97.56.100/30 1; +202.97.56.106/31 1; +202.97.56.110/31 1; +202.97.56.242/31 1; +202.97.69.162/31 1; +202.97.69.166/31 1; +202.97.69.170/31 1; +202.97.69.174/31 1; +202.97.69.186/31 1; +202.97.69.218/31 1; +202.97.69.238/31 1; +202.97.69.240/29 1; +202.97.71.128/31 1; +202.97.71.136/31 1; +202.97.71.146/31 1; +202.97.71.162/31 1; +202.97.71.170/31 1; +202.97.71.172/30 1; +202.97.71.176/31 1; +202.97.71.184/31 1; +202.97.71.194/31 1; +202.97.71.222/31 1; +202.97.71.226/31 1; +202.97.71.228/30 1; +202.97.71.232/29 1; +202.97.77.50/31 1; +202.97.77.52/30 1; +202.97.77.58/31 1; +202.97.77.62/31 1; +202.97.77.70/31 1; +202.97.77.82/31 1; +202.97.77.90/31 1; +202.97.77.94/31 1; +202.97.77.98/31 1; +202.97.77.100/30 1; +202.97.77.118/31 1; +202.97.77.122/31 1; +202.97.77.124/30 1; +202.97.77.130/31 1; +202.97.77.134/31 1; +202.97.77.136/30 1; +202.97.77.142/31 1; +202.97.77.146/31 1; +202.97.77.158/31 1; +202.97.77.160/30 1; +202.97.77.166/31 1; +202.97.77.170/31 1; +202.97.77.172/30 1; +202.97.77.178/31 1; +202.97.77.182/31 1; +202.97.77.206/31 1; +202.97.92.176/31 1; +202.97.92.192/31 1; +202.97.92.196/30 1; +202.97.92.200/30 1; +202.97.92.204/31 1; +202.103.64.0/18 1; +202.127.249.0/24 1; +202.127.251.128/26 1; +203.2.112.0/21 1; +203.3.112.0/21 1; +203.93.208.0/20 1; +210.13.224.0/21 1; +210.13.232.0/22 1; +210.13.238.0/23 1; +210.14.170.0/23 1; +210.14.172.0/22 1; +210.14.187.0/26 1; +210.14.187.64/32 1; +210.14.254.0/24 1; +210.15.30.0/24 1; +210.22.48.0/20 1; +210.42.176.0/20 1; +210.42.192.0/20 1; +210.43.40.0/21 1; +210.43.48.0/20 1; +210.43.64.0/18 1; +210.43.148.0/22 1; +210.43.152.0/21 1; +210.43.160.0/19 1; +210.43.192.0/18 1; +210.52.81.0/24 1; +210.52.82.0/24 1; +210.52.128.86/31 1; +210.52.128.88/30 1; +210.52.145.0/25 1; +210.53.53.0/24 1; +210.53.54.0/23 1; +210.53.56.0/23 1; +210.75.91.128/26 1; +210.75.93.64/26 1; +210.75.93.192/26 1; +211.67.192.0/18 1; +211.69.48.0/20 1; +211.69.64.0/18 1; +211.69.208.0/21 1; +211.69.224.0/19 1; +211.85.216.0/21 1; +211.85.224.0/19 1; +211.91.216.0/21 1; +211.91.224.0/19 1; +211.98.62.0/23 1; +211.98.65.0/24 1; +211.98.75.0/24 1; +211.98.76.96/27 1; +211.98.76.224/27 1; +211.98.166.0/24 1; +211.98.172.0/24 1; +211.138.224.0/20 1; +211.142.208.0/20 1; +211.142.224.0/19 1; +211.143.0.0/19 1; +211.143.32.0/20 1; +211.161.116.0/22 1; +211.164.38.0/23 1; +211.164.40.0/23 1; +218.75.128.0/17 1; +218.76.0.0/16 1; +218.77.0.0/17 1; +218.104.144.0/20 1; +218.196.0.0/19 1; +218.196.32.0/20 1; +218.196.48.0/21 1; +218.196.56.0/23 1; +218.196.58.0/24 1; +218.196.64.0/18 1; +219.72.104.0/21 1; +219.72.144.0/23 1; +219.72.224.0/20 1; +219.158.12.78/31 1; +219.158.12.80/30 1; +219.158.15.102/31 1; +219.158.15.202/31 1; +219.158.15.208/31 1; +219.158.17.50/31 1; +219.158.17.94/31 1; +219.158.17.254/31 1; +219.158.18.114/31 1; +219.158.18.116/30 1; +219.158.18.230/31 1; +219.158.18.242/31 1; +219.158.19.158/31 1; +219.158.19.218/31 1; +219.158.20.26/31 1; +219.158.20.208/31 1; +219.158.20.226/31 1; +219.158.22.34/31 1; +219.158.22.64/31 1; +219.158.22.126/31 1; +219.158.22.192/31 1; +219.158.22.196/31 1; +219.158.23.74/31 1; +219.158.23.144/30 1; +219.158.24.102/31 1; +219.158.97.130/31 1; +219.158.97.134/31 1; +219.158.98.70/31 1; +219.158.98.72/30 1; +219.158.98.212/31 1; +219.158.99.118/31 1; +219.158.100.6/31 1; +219.158.101.98/31 1; +219.158.101.190/31 1; +219.158.112.122/31 1; +219.158.112.146/31 1; +219.158.113.242/31 1; +219.158.117.136/30 1; +219.158.117.196/30 1; +219.243.244.0/24 1; +220.168.0.0/15 1; +220.170.0.0/16 1; +220.202.96.0/19 1; +220.202.128.0/17 1; +220.207.220.0/22 1; +220.207.224.0/22 1; +220.248.160.0/19 1; +221.174.120.128/25 1; +221.174.127.0/24 1; +221.176.16.234/31 1; +221.176.17.180/31 1; +221.176.17.184/31 1; +221.176.18.30/31 1; +221.176.18.198/31 1; +221.176.20.232/29 1; +221.176.27.0/30 1; +221.176.27.224/31 1; +221.177.168.0/21 1; +221.183.11.30/31 1; +221.183.19.184/29 1; +221.183.19.192/29 1; +221.183.19.200/30 1; +221.183.22.150/31 1; +221.183.22.214/31 1; +221.183.40.90/31 1; +221.183.40.170/31 1; +221.183.42.150/31 1; +221.183.48.168/29 1; +222.22.224.0/19 1; +222.51.0.0/16 1; +222.58.128.0/17 1; +222.240.0.0/13 1; +223.103.21.0/24 1; +223.104.21.0/24 1; +223.104.128.0/21 1; +223.104.136.0/22 1; +223.104.140.0/24 1; +223.144.0.0/12 1; +2001:df2:a580::/48 1; +2001:df4:a980::/48 1; +2400:3660::/32 1; +2400:7ac0::/32 1; +2400:b6c0::/32 1; +2400:d6a0::/32 1; +2401:20::/32 1; +2401:7d40::/32 1; +2401:bf20::/32 1; +2406:40::/32 1; +2406:840:46::/47 1; +2406:840:48::/45 1; +2406:840:380::/42 1; +2406:840:4380::/47 1; +2406:840:f990::/44 1; +2406:4340::/32 1; +2408:8352:cc00::/40 1; +2408:8352:e200::/40 1; +2408:8352:f200::/40 1; +2408:8956:8440::/44 1; +2408:8956:8480::/44 1; +2409:8050::/40 1; +2409:8050:800::/40 1; +2409:8050:1000::/40 1; +2409:8050:1800::/40 1; +2409:8050:2000::/40 1; +2409:8050:2800::/38 1; +2409:8050:3000::/40 1; +2409:8050:3800::/40 1; +2409:8051::/40 1; +2409:8051:800::/40 1; +2409:8051:1000::/40 1; +2409:8051:1800::/40 1; +2409:8051:2000::/40 1; +2409:8051:2800::/38 1; +2409:8051:3000::/40 1; +2409:8051:3800::/40 1; +2409:8052::/40 1; +2409:8052:800::/40 1; +2409:8052:1000::/40 1; +2409:8052:1800::/40 1; +2409:8052:2000::/40 1; +2409:8052:2800::/38 1; +2409:8052:3000::/40 1; +2409:8052:3800::/40 1; +2409:8053::/40 1; +2409:8053:800::/40 1; +2409:8053:1000::/40 1; +2409:8053:1800::/40 1; +2409:8053:2000::/40 1; +2409:8053:2800::/38 1; +2409:8053:3000::/40 1; +2409:8053:3800::/40 1; +2409:8087:5000::/40 1; +2409:8750::/30 1; +2409:8850::/40 1; +2409:8950::/30 1; +2409:895c:fc00::/40 1; +2409:8a50::/30 1; +2409:8c50::/30 1; +2409:8d50::/30 1; +2409:8e50::/30 1; +2409:8f50::/30 1; +240a:42c2:1c00::/40 1; +240a:42c3:1c00::/40 1; +240a:42c3:b800::/40 1; +240e:469:2800::/40 1; +240e:469:3400::/40 1; +2602:feda:d80::/47 1; +2602:feda:d82::/48 1; +2606:54c0:22a8::/45 1; +2606:54c0:22b0::/44 1; +2606:54c0:22c0::/43 1; +2606:54c0:22e0::/44 1; +2606:54c3:0:97::/64 1; +2606:54c3:0:c4f::/64 1; +2606:54c3:0:da3::/64 1; +2606:54c3:0:deb::/64 1; +2606:54c3:0:ffc::/64 1; +2606:54c3:0:188f::/64 1; +2606:54c3:0:199b::/64 1; +2606:54c3:0:19dd::/64 1; +2606:54c3:0:1a50::/64 1; +2a06:a005:2918::/45 1; +2a09:bac1:1980:b8::/64 1; +2a09:bac1:1980:c0::/64 1; +2a09:bac1:1980:7f10::/64 1; +2a09:bac1:1980:7fe0::/64 1; +2a09:bac1:1980:8120::/64 1; +2a09:bac1:1980:95d0::/64 1; +2a09:bac1:1980:9678::/64 1; +2a09:bac1:1980:96a0::/64 1; +2a09:bac1:1980:deb0::/64 1; +2a09:bac1:19a0:b8::/64 1; +2a09:bac1:19a0:c0::/64 1; +2a09:bac1:19a0:7f10::/64 1; +2a09:bac1:19a0:7fe0::/64 1; +2a09:bac1:19a0:8120::/64 1; +2a09:bac1:19a0:95d0::/64 1; +2a09:bac1:19a0:9678::/64 1; +2a09:bac1:19a0:96a0::/64 1; +2a09:bac1:19a0:deb0::/64 1; +2a09:bac1:19c0:b8::/64 1; +2a09:bac1:19c0:c0::/64 1; +2a09:bac1:19c0:7f10::/64 1; +2a09:bac1:19c0:7fe0::/64 1; +2a09:bac1:19c0:8120::/64 1; +2a09:bac1:19c0:95d0::/64 1; +2a09:bac1:19c0:9678::/64 1; +2a09:bac1:19c0:96a0::/64 1; +2a09:bac1:19c0:deb0::/64 1; +2a09:bac1:19e0:b8::/64 1; +2a09:bac1:19e0:c0::/64 1; +2a09:bac1:19e0:7f10::/64 1; +2a09:bac1:19e0:7fe0::/64 1; +2a09:bac1:19e0:8120::/64 1; +2a09:bac1:19e0:95d0::/64 1; +2a09:bac1:19e0:9678::/64 1; +2a09:bac1:19e0:96a0::/64 1; +2a09:bac1:19e0:deb0::/64 1; +2a09:bac2:22a8::/45 1; +2a09:bac2:22b0::/44 1; +2a09:bac2:22c0::/43 1; +2a09:bac2:22e0::/44 1; +2a09:bac3:22a8::/45 1; +2a09:bac3:22b0::/44 1; +2a09:bac3:22c0::/43 1; +2a09:bac3:22e0::/44 1; +2a09:bac5:22d8::/45 1; +2a09:bac5:22e0::/43 1; +2a09:bac5:2300::/43 1; +2a09:bac6:22d8::/45 1; +2a09:bac6:22e0::/43 1; +2a09:bac6:2300::/43 1; +2a0e:aa07:f0a0::/44 1; +2a13:1800::/44 1; diff --git a/minigate/root/usr/lib/minigate/geo/440000.conf b/minigate/root/usr/lib/minigate/geo/440000.conf new file mode 100644 index 000000000..76f8bbbad --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/440000.conf @@ -0,0 +1,4500 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 广东省 +1.0.8.0/21 1; +1.0.32.0/19 1; +1.1.8.0/21 1; +1.1.16.0/20 1; +1.1.32.0/19 1; +1.2.9.0/24 1; +1.2.10.0/23 1; +1.2.12.0/22 1; +1.2.16.0/20 1; +1.2.32.0/19 1; +1.2.64.0/18 1; +1.3.0.0/16 1; +1.4.8.0/21 1; +1.4.16.0/20 1; +1.4.32.0/19 1; +1.4.64.0/18 1; +1.10.0.0/21 1; +1.10.16.0/20 1; +1.10.32.0/19 1; +1.10.64.0/18 1; +1.184.0.0/16 1; +1.185.96.0/19 1; +1.185.128.0/18 1; +8.129.0.0/16 1; +8.134.0.0/21 1; +8.134.8.0/24 1; +8.134.20.64/26 1; +8.134.20.128/25 1; +8.134.21.0/24 1; +8.134.22.0/23 1; +8.134.24.0/21 1; +8.134.32.0/19 1; +8.134.64.0/20 1; +14.0.0.0/21 1; +14.16.0.0/12 1; +14.103.0.0/16 1; +14.112.0.0/12 1; +14.144.0.0/12 1; +14.197.0.0/17 1; +14.197.149.157/32 1; +14.197.160.0/20 1; +14.197.176.0/25 1; +14.197.176.128/26 1; +14.197.176.192/27 1; +14.197.176.224/28 1; +14.197.176.240/30 1; +14.197.177.24/29 1; +14.197.177.32/27 1; +14.197.177.64/26 1; +14.197.177.128/25 1; +14.197.178.208/32 1; +14.197.178.210/31 1; +14.197.178.212/30 1; +14.197.178.216/29 1; +14.197.178.224/27 1; +14.197.179.0/24 1; +14.197.241.173/32 1; +14.197.245.241/32 1; +14.197.253.49/32 1; +14.208.0.0/12 1; +27.34.232.0/21 1; +27.36.0.0/14 1; +27.40.0.0/13 1; +27.50.40.0/21 1; +27.54.72.0/21 1; +27.54.152.0/21 1; +27.103.0.0/16 1; +27.106.128.0/18 1; +27.121.72.0/21 1; +27.121.120.0/21 1; +31.133.128.0/18 1; +36.0.16.0/20 1; +36.0.32.0/19 1; +36.36.0.0/16 1; +36.37.0.0/19 1; +36.37.40.0/21 1; +36.37.48.0/20 1; +36.111.32.0/19 1; +36.133.0.0/21 1; +36.133.8.0/22 1; +36.133.144.0/21 1; +36.133.176.0/20 1; +36.133.224.0/21 1; +36.193.34.0/23 1; +36.193.36.0/22 1; +36.193.40.0/21 1; +36.193.48.0/20 1; +36.255.164.0/22 1; +39.0.8.0/21 1; +39.0.16.0/20 1; +39.0.32.0/19 1; +39.0.64.0/18 1; +39.0.128.0/17 1; +39.108.0.0/16 1; +39.144.13.0/24 1; +39.144.14.0/23 1; +39.144.16.0/24 1; +42.0.8.0/21 1; +42.0.16.0/21 1; +42.0.32.0/19 1; +42.1.0.0/19 1; +42.1.32.0/20 1; +42.1.48.0/21 1; +42.62.128.0/19 1; +42.62.160.0/20 1; +42.62.184.0/21 1; +42.83.64.0/20 1; +42.83.88.0/21 1; +42.83.96.0/19 1; +42.96.64.0/19 1; +42.96.96.0/21 1; +42.96.112.0/20 1; +42.99.64.0/19 1; +42.99.96.0/20 1; +42.99.120.0/21 1; +42.120.240.0/27 1; +42.123.0.0/19 1; +42.123.40.0/21 1; +42.123.48.0/20 1; +42.156.0.0/19 1; +42.156.40.0/21 1; +42.156.48.0/20 1; +42.156.64.0/18 1; +42.157.128.0/21 1; +42.157.192.0/21 1; +42.187.0.0/18 1; +42.187.64.0/19 1; +42.187.96.0/20 1; +42.187.112.0/21 1; +42.194.0.0/21 1; +42.194.16.0/20 1; +42.194.32.0/19 1; +42.194.64.0/18 1; +42.194.128.0/17 1; +42.197.0.0/16 1; +42.199.0.0/18 1; +42.240.128.0/17 1; +42.245.216.96/27 1; +42.245.216.128/26 1; +42.245.217.0/24 1; +42.245.218.0/24 1; +42.245.219.0/25 1; +42.245.219.128/26 1; +42.245.219.192/27 1; +42.245.221.0/24 1; +42.245.222.0/23 1; +42.245.224.0/22 1; +42.245.228.0/23 1; +42.245.230.0/24 1; +42.245.232.0/22 1; +42.247.0.64/27 1; +42.247.0.128/27 1; +42.247.0.160/28 1; +42.247.1.128/26 1; +42.247.2.168/29 1; +42.247.3.32/29 1; +42.247.11.32/27 1; +42.247.14.64/26 1; +42.247.15.80/28 1; +42.247.15.224/28 1; +42.247.17.64/27 1; +42.247.17.96/28 1; +42.247.18.192/27 1; +42.247.19.128/27 1; +42.247.20.16/28 1; +42.247.20.32/27 1; +42.247.20.100/30 1; +42.247.20.108/30 1; +42.247.22.64/26 1; +42.247.22.128/27 1; +42.247.22.224/28 1; +42.247.22.240/29 1; +42.247.24.144/28 1; +42.247.26.32/27 1; +42.247.28.0/26 1; +42.247.29.8/30 1; +42.247.29.112/28 1; +42.247.29.128/27 1; +42.247.30.32/28 1; +42.247.31.0/28 1; +42.247.33.144/28 1; +42.247.36.160/27 1; +42.247.36.224/27 1; +42.247.37.208/28 1; +42.247.38.192/27 1; +42.247.41.32/27 1; +42.247.41.64/28 1; +42.247.43.96/27 1; +42.247.44.128/27 1; +42.247.44.192/26 1; +42.247.45.80/28 1; +42.247.45.112/28 1; +42.247.45.160/27 1; +42.247.45.240/28 1; +42.247.46.240/28 1; +42.247.48.0/27 1; +42.247.48.64/27 1; +42.247.48.160/27 1; +42.247.48.192/27 1; +42.247.49.0/27 1; +42.247.49.192/26 1; +42.247.50.0/23 1; +42.247.52.0/25 1; +42.247.52.128/26 1; +42.247.52.192/27 1; +43.224.54.176/29 1; +43.224.240.0/22 1; +43.226.240.0/20 1; +43.227.0.0/21 1; +43.227.36.0/22 1; +43.227.40.0/21 1; +43.227.48.0/22 1; +43.229.216.0/22 1; +43.230.220.0/22 1; +43.230.224.0/23 1; +43.231.80.0/20 1; +43.231.96.0/20 1; +43.236.44.0/22 1; +43.236.48.0/22 1; +43.236.56.0/22 1; +43.236.64.0/22 1; +43.236.84.0/22 1; +43.236.184.0/21 1; +43.236.200.0/22 1; +43.237.32.0/22 1; +43.237.40.0/22 1; +43.237.52.0/22 1; +43.237.56.0/22 1; +43.237.196.0/22 1; +43.237.204.0/22 1; +43.237.220.0/22 1; +43.238.68.0/22 1; +43.238.108.0/22 1; +43.238.120.0/22 1; +43.238.240.0/21 1; +43.238.248.0/22 1; +43.242.160.0/22 1; +43.243.244.0/22 1; +43.247.44.0/22 1; +43.247.68.0/22 1; +43.249.132.0/23 1; +43.249.134.0/24 1; +43.249.152.0/21 1; +43.249.160.0/21 1; +43.250.72.0/22 1; +43.250.212.0/22 1; +43.251.8.0/22 1; +43.252.50.0/24 1; +43.254.128.0/22 1; +43.254.156.0/22 1; +43.255.0.0/23 1; +43.255.2.0/24 1; +43.255.204.0/22 1; +43.255.212.0/22 1; +43.255.228.0/22 1; +45.40.224.0/20 1; +45.65.20.0/22 1; +45.65.24.0/21 1; +45.113.12.0/22 1; +45.114.136.0/22 1; +45.116.32.0/22 1; +45.116.96.0/22 1; +45.116.140.0/22 1; +45.123.212.0/22 1; +45.124.172.0/22 1; +45.124.208.0/22 1; +45.125.76.0/22 1; +45.125.84.0/22 1; +45.125.88.0/21 1; +45.125.96.0/21 1; +45.126.116.0/22 1; +45.248.128.0/22 1; +45.248.208.0/20 1; +45.248.224.0/19 1; +45.249.0.0/21 1; +45.249.212.0/22 1; +45.250.112.0/20 1; +45.250.128.0/20 1; +45.251.16.0/22 1; +45.251.52.0/22 1; +45.251.88.0/22 1; +45.251.124.0/22 1; +45.253.40.0/23 1; +45.253.52.0/22 1; +45.253.92.0/22 1; +45.254.0.0/20 1; +45.254.50.0/23 1; +45.254.52.0/22 1; +45.254.100.0/22 1; +45.254.104.0/21 1; +45.254.112.0/22 1; +47.106.0.0/15 1; +47.112.0.0/14 1; +49.221.136.0/22 1; +49.221.140.0/23 1; +49.239.192.0/18 1; +58.60.0.0/14 1; +58.65.232.0/21 1; +58.66.0.0/15 1; +58.99.254.0/23 1; +58.194.8.0/23 1; +58.194.12.0/22 1; +58.194.24.0/21 1; +58.200.1.0/24 1; +58.200.66.0/24 1; +58.200.79.0/24 1; +58.200.120.176/29 1; +58.200.120.200/29 1; +58.205.192.0/22 1; +58.206.32.0/19 1; +58.207.128.0/20 1; +58.248.0.0/13 1; +59.32.0.0/13 1; +59.40.0.0/15 1; +59.42.0.0/16 1; +59.43.70.0/24 1; +59.43.80.16/29 1; +59.43.80.34/31 1; +59.43.80.116/30 1; +59.43.80.120/29 1; +59.43.82.20/31 1; +59.43.181.94/31 1; +59.43.181.96/29 1; +59.43.181.168/31 1; +59.43.182.74/31 1; +59.43.248.240/31 1; +59.43.248.244/30 1; +59.43.248.248/31 1; +59.43.249.164/30 1; +59.43.249.168/29 1; +59.43.249.176/30 1; +59.43.249.198/31 1; +59.43.250.76/30 1; +59.43.250.80/31 1; +59.43.252.4/30 1; +59.43.255.12/30 1; +59.43.255.16/30 1; +59.43.255.66/31 1; +59.107.0.0/16 1; +59.152.16.0/22 1; +59.155.0.0/18 1; +59.155.192.0/18 1; +59.191.0.0/17 1; +61.4.86.0/23 1; +61.4.88.0/21 1; +61.28.0.0/17 1; +61.29.128.0/18 1; +61.29.192.0/19 1; +61.29.224.0/20 1; +61.45.224.0/20 1; +61.140.0.0/14 1; +61.144.0.0/15 1; +61.146.0.0/16 1; +61.232.126.0/23 1; +61.232.128.0/21 1; +61.232.136.0/22 1; +61.232.140.0/23 1; +61.234.96.0/19 1; +61.234.160.0/20 1; +61.235.64.0/18 1; +61.235.128.0/22 1; +61.237.0.18/31 1; +61.237.0.22/31 1; +61.237.0.24/31 1; +61.237.0.32/31 1; +61.237.0.40/31 1; +61.237.0.52/31 1; +61.237.0.252/30 1; +61.237.1.0/27 1; +61.237.1.32/28 1; +61.237.1.48/30 1; +61.237.1.112/31 1; +61.237.1.192/30 1; +61.237.1.200/31 1; +61.237.1.204/31 1; +61.237.1.224/30 1; +61.237.3.20/30 1; +61.237.3.188/30 1; +61.237.10.128/26 1; +61.237.14.64/27 1; +61.237.29.64/30 1; +61.237.64.7/32 1; +61.237.64.8/32 1; +61.237.97.160/31 1; +61.237.119.88/29 1; +61.237.119.96/28 1; +61.237.119.112/30 1; +61.237.121.66/31 1; +61.237.121.86/31 1; +61.237.121.88/29 1; +61.237.121.96/29 1; +61.237.121.104/31 1; +61.237.121.108/30 1; +61.237.121.120/29 1; +61.237.122.140/31 1; +61.237.122.176/29 1; +61.237.122.184/31 1; +61.237.122.200/30 1; +61.237.122.204/31 1; +61.237.122.216/31 1; +61.237.123.64/29 1; +61.237.123.72/30 1; +61.237.123.78/31 1; +61.237.123.112/31 1; +61.237.123.118/31 1; +61.237.123.130/31 1; +61.237.123.134/31 1; +61.237.123.136/30 1; +61.237.123.140/31 1; +61.237.123.144/31 1; +61.237.123.148/31 1; +61.237.123.152/31 1; +61.237.123.156/31 1; +61.237.123.172/30 1; +61.237.123.204/30 1; +61.237.123.208/29 1; +61.237.123.216/30 1; +61.237.124.16/30 1; +61.237.124.132/30 1; +61.237.125.152/29 1; +61.237.125.160/27 1; +61.237.125.192/26 1; +61.237.126.0/26 1; +61.237.126.64/29 1; +61.237.126.72/31 1; +61.237.126.76/31 1; +61.237.126.80/31 1; +61.237.126.92/31 1; +61.237.126.96/31 1; +61.237.126.114/31 1; +61.237.126.118/31 1; +61.237.126.122/31 1; +61.237.126.148/30 1; +61.237.126.152/29 1; +61.237.126.160/27 1; +61.237.126.192/27 1; +61.237.126.224/28 1; +61.237.126.246/31 1; +61.237.127.56/31 1; +61.237.127.72/31 1; +61.237.127.76/31 1; +61.237.127.80/31 1; +61.237.127.84/30 1; +61.237.127.88/30 1; +61.237.127.232/29 1; +61.241.0.0/18 1; +61.242.0.0/17 1; +64.235.253.192/27 1; +64.235.253.224/28 1; +64.235.253.240/30 1; +81.71.0.0/17 1; +94.231.206.0/24 1; +101.46.32.0/19 1; +101.46.112.0/20 1; +101.47.48.0/20 1; +101.47.64.0/19 1; +101.47.224.0/19 1; +101.48.0.0/16 1; +101.55.224.0/21 1; +101.96.0.0/21 1; +101.96.16.0/20 1; +101.99.96.0/19 1; +101.101.64.0/19 1; +101.101.104.0/21 1; +101.101.112.0/20 1; +101.102.64.0/19 1; +101.102.104.0/21 1; +101.102.112.0/20 1; +101.104.0.0/17 1; +101.105.0.0/18 1; +101.106.64.0/18 1; +101.107.64.0/18 1; +101.107.192.0/18 1; +101.110.64.0/19 1; +101.110.96.0/20 1; +101.110.117.0/24 1; +101.110.118.0/23 1; +101.110.120.0/21 1; +101.124.128.0/19 1; +101.126.0.0/18 1; +101.128.8.0/21 1; +101.128.16.0/20 1; +101.128.32.0/19 1; +101.130.128.0/18 1; +101.130.224.0/19 1; +101.203.128.0/19 1; +101.203.160.0/21 1; +101.203.176.0/20 1; +101.232.0.0/15 1; +101.234.64.0/21 1; +101.234.80.0/20 1; +101.234.96.0/19 1; +101.246.0.0/18 1; +101.247.192.0/18 1; +101.251.8.0/21 1; +101.251.16.0/20 1; +101.251.32.0/19 1; +103.5.52.0/24 1; +103.5.56.0/22 1; +103.8.0.0/22 1; +103.11.16.0/22 1; +103.12.184.0/22 1; +103.13.124.0/22 1; +103.14.84.0/22 1; +103.17.64.0/22 1; +103.18.192.0/22 1; +103.18.212.0/22 1; +103.20.34.0/24 1; +103.20.68.0/22 1; +103.21.178.0/23 1; +103.22.40.0/22 1; +103.23.164.0/22 1; +103.24.24.0/22 1; +103.24.176.0/22 1; +103.25.148.0/22 1; +103.27.24.0/22 1; +103.28.4.0/22 1; +103.28.184.0/22 1; +103.29.236.0/22 1; +103.30.202.0/23 1; +103.31.60.0/22 1; +103.32.44.0/22 1; +103.32.48.0/22 1; +103.32.56.0/22 1; +103.32.64.0/22 1; +103.32.84.0/22 1; +103.32.184.0/21 1; +103.32.200.0/22 1; +103.33.32.0/22 1; +103.33.40.0/22 1; +103.33.52.0/22 1; +103.33.56.0/22 1; +103.33.196.0/22 1; +103.33.204.0/22 1; +103.33.220.0/22 1; +103.34.68.0/22 1; +103.34.108.0/22 1; +103.34.120.0/22 1; +103.34.240.0/21 1; +103.34.248.0/22 1; +103.37.188.0/22 1; +103.38.44.0/22 1; +103.39.160.0/19 1; +103.39.208.0/20 1; +103.39.224.0/21 1; +103.39.232.0/22 1; +103.40.240.0/20 1; +103.44.236.0/22 1; +103.44.240.0/20 1; +103.45.0.0/18 1; +103.45.80.0/20 1; +103.45.192.0/19 1; +103.46.0.0/22 1; +103.46.152.0/21 1; +103.46.160.0/21 1; +103.46.172.0/22 1; +103.46.176.0/21 1; +103.49.12.0/22 1; +103.50.39.0/24 1; +103.52.160.0/22 1; +103.53.212.0/22 1; +103.56.76.0/22 1; +103.56.140.0/22 1; +103.56.184.0/22 1; +103.65.52.0/22 1; +103.65.60.0/22 1; +103.65.64.0/21 1; +103.65.72.0/22 1; +103.65.144.0/20 1; +103.65.160.0/20 1; +103.72.148.0/22 1; +103.72.152.0/22 1; +103.72.224.0/19 1; +103.73.0.0/19 1; +103.73.48.0/22 1; +103.73.120.0/21 1; +103.73.128.0/22 1; +103.73.204.0/22 1; +103.73.244.0/22 1; +103.73.248.0/22 1; +103.77.88.0/22 1; +103.77.148.0/22 1; +103.78.172.0/22 1; +103.78.176.0/22 1; +103.79.136.0/22 1; +103.80.232.0/22 1; +103.82.60.0/22 1; +103.84.12.0/22 1; +103.84.28.0/22 1; +103.85.52.0/22 1; +103.85.56.0/22 1; +103.89.112.0/22 1; +103.91.200.0/22 1; +103.95.31.0/24 1; +103.95.252.0/22 1; +103.98.15.0/24 1; +103.100.40.0/22 1; +103.100.56.0/22 1; +103.101.121.0/24 1; +103.101.122.0/23 1; +103.102.180.0/22 1; +103.107.110.0/23 1; +103.108.251.0/24 1; +103.110.127.0/24 1; +103.110.128.0/23 1; +103.116.92.0/22 1; +103.123.88.0/22 1; +103.135.196.0/22 1; +103.138.12.0/24 1; +103.142.221.0/24 1; +103.152.200.0/23 1; +103.156.28.0/23 1; +103.156.78.0/23 1; +103.192.216.0/22 1; +103.193.40.0/22 1; +103.198.156.0/22 1; +103.200.180.0/22 1; +103.202.188.0/22 1; +103.203.0.0/22 1; +103.203.100.0/22 1; +103.207.192.0/21 1; +103.207.200.0/22 1; +103.207.208.0/21 1; +103.209.200.0/22 1; +103.210.160.0/22 1; +103.210.172.0/22 1; +103.210.176.0/21 1; +103.211.102.0/23 1; +103.211.248.0/22 1; +103.212.48.0/22 1; +103.212.84.0/22 1; +103.215.44.0/22 1; +103.217.0.0/18 1; +103.218.52.0/22 1; +103.218.56.0/21 1; +103.218.64.0/22 1; +103.218.76.0/22 1; +103.218.84.0/22 1; +103.218.216.0/22 1; +103.220.52.0/22 1; +103.222.112.0/20 1; +103.222.128.0/20 1; +103.222.168.0/22 1; +103.222.176.0/21 1; +103.222.220.0/22 1; +103.222.224.0/21 1; +103.222.232.0/22 1; +103.222.240.0/22 1; +103.223.16.0/21 1; +103.223.72.0/22 1; +103.223.88.0/21 1; +103.223.96.0/20 1; +103.223.112.0/21 1; +103.223.124.0/22 1; +103.224.0.0/22 1; +103.226.40.0/22 1; +103.228.160.0/22 1; +103.229.237.0/24 1; +103.229.238.0/23 1; +103.231.184.0/24 1; +103.231.244.0/22 1; +103.238.18.0/23 1; +103.238.188.0/22 1; +103.239.204.0/22 1; +103.245.124.0/22 1; +103.247.191.0/24 1; +103.248.168.0/22 1; +103.249.12.0/22 1; +103.249.192.0/22 1; +103.251.32.0/22 1; +103.252.28.0/22 1; +104.28.20.12/30 1; +104.28.20.16/30 1; +104.28.25.82/31 1; +104.28.25.84/30 1; +104.28.25.88/31 1; +104.28.43.40/31 1; +104.28.43.44/30 1; +104.28.43.48/31 1; +104.28.43.52/31 1; +104.28.66.40/31 1; +104.28.66.58/31 1; +104.28.66.78/31 1; +104.28.66.82/31 1; +104.28.66.90/31 1; +104.28.69.40/31 1; +104.28.69.58/31 1; +104.28.69.78/31 1; +104.28.69.82/31 1; +104.28.69.90/31 1; +104.28.83.12/31 1; +104.28.83.30/31 1; +104.28.83.50/31 1; +104.28.83.54/31 1; +104.28.83.62/31 1; +104.28.99.10/31 1; +104.28.99.28/31 1; +104.28.99.46/31 1; +104.28.99.50/31 1; +104.28.99.56/31 1; +104.28.101.10/31 1; +104.28.101.28/31 1; +104.28.101.46/31 1; +104.28.101.50/31 1; +104.28.101.56/31 1; +104.28.117.42/31 1; +104.28.117.60/31 1; +104.28.117.80/31 1; +104.28.117.84/31 1; +104.28.117.92/31 1; +104.28.120.42/31 1; +104.28.120.60/31 1; +104.28.120.80/31 1; +104.28.120.84/31 1; +104.28.120.92/31 1; +104.28.148.204/32 1; +104.28.156.204/32 1; +104.28.180.91/32 1; +104.28.180.92/30 1; +104.28.180.96/31 1; +104.28.180.98/32 1; +104.28.181.127/32 1; +104.28.181.128/30 1; +104.28.181.132/31 1; +104.28.181.134/32 1; +104.28.189.254/31 1; +104.28.190.0/30 1; +104.28.190.4/31 1; +104.28.192.13/32 1; +104.28.192.14/31 1; +104.28.192.16/30 1; +104.28.192.20/32 1; +104.28.197.93/32 1; +104.28.197.94/31 1; +104.28.197.96/30 1; +104.28.197.100/32 1; +104.28.212.132/30 1; +104.28.212.136/30 1; +104.28.213.170/31 1; +104.28.213.172/30 1; +104.28.213.176/31 1; +104.28.222.59/32 1; +104.28.222.60/30 1; +104.28.222.64/31 1; +104.28.222.66/32 1; +104.28.224.13/32 1; +104.28.224.14/31 1; +104.28.224.16/30 1; +104.28.224.20/32 1; +104.28.229.93/32 1; +104.28.229.94/31 1; +104.28.229.96/30 1; +104.28.229.100/32 1; +104.28.244.132/30 1; +104.28.244.136/30 1; +104.28.245.170/31 1; +104.28.245.172/30 1; +104.28.245.176/31 1; +104.28.254.59/32 1; +104.28.254.60/30 1; +104.28.254.64/31 1; +104.28.254.66/32 1; +104.223.248.0/21 1; +106.0.8.0/21 1; +106.0.16.0/20 1; +106.0.64.0/18 1; +106.3.224.0/21 1; +106.11.0.0/19 1; +106.11.128.0/20 1; +106.11.199.0/24 1; +106.11.204.0/22 1; +106.12.96.0/19 1; +106.12.128.0/20 1; +106.13.192.0/18 1; +106.48.36.0/23 1; +106.52.0.0/14 1; +106.75.128.0/18 1; +106.126.0.0/16 1; +109.244.48.0/20 1; +109.244.64.0/18 1; +109.244.128.0/18 1; +109.244.192.0/21 1; +110.43.0.0/21 1; +110.43.8.0/24 1; +110.43.32.0/19 1; +110.43.240.0/20 1; +110.64.0.0/17 1; +110.64.128.0/20 1; +110.64.144.0/21 1; +110.64.152.0/24 1; +110.64.154.0/23 1; +110.64.156.0/22 1; +110.64.160.0/19 1; +110.64.192.0/18 1; +110.65.0.0/17 1; +110.65.128.0/18 1; +110.65.192.0/19 1; +110.65.224.0/20 1; +110.75.224.0/24 1; +110.75.236.0/22 1; +110.75.240.0/20 1; +110.93.32.0/19 1; +110.120.0.0/16 1; +110.173.64.0/19 1; +110.208.0.0/14 1; +111.45.0.0/17 1; +111.66.0.0/16 1; +111.148.0.0/14 1; +111.221.128.0/17 1; +111.222.0.0/16 1; +111.230.0.0/16 1; +111.231.230.0/23 1; +111.231.232.0/21 1; +111.231.240.0/20 1; +112.33.0.0/18 1; +112.35.0.0/21 1; +112.35.8.0/23 1; +112.35.10.0/24 1; +112.53.0.0/18 1; +112.53.208.0/20 1; +112.60.0.0/17 1; +112.60.128.0/19 1; +112.74.0.0/15 1; +112.88.0.0/13 1; +112.96.0.0/15 1; +112.137.48.0/21 1; +113.21.232.0/24 1; +113.64.0.0/11 1; +113.96.0.0/12 1; +113.112.0.0/13 1; +113.212.184.0/21 1; +114.67.0.0/18 1; +114.79.64.0/18 1; +114.116.0.0/15 1; +114.118.128.0/17 1; +114.119.0.0/17 1; +114.141.64.0/21 1; +114.142.136.0/21 1; +114.198.248.0/21 1; +115.31.68.0/22 1; +115.44.0.0/15 1; +115.69.64.0/20 1; +115.106.0.0/15 1; +115.159.254.0/23 1; +115.166.64.0/19 1; +115.168.50.0/24 1; +115.168.82.0/24 1; +115.168.254.0/23 1; +115.169.0.0/22 1; +115.169.4.0/23 1; +115.169.6.0/24 1; +115.169.16.0/23 1; +115.172.0.0/19 1; +115.172.96.0/19 1; +115.172.184.0/21 1; +115.173.32.0/19 1; +115.174.64.0/19 1; +115.175.128.0/17 1; +115.181.240.0/20 1; +116.0.8.0/21 1; +116.0.24.0/21 1; +116.4.0.0/14 1; +116.13.64.0/18 1; +116.13.128.0/18 1; +116.13.228.0/22 1; +116.13.240.0/20 1; +116.16.0.0/12 1; +116.50.0.0/20 1; +116.56.0.0/15 1; +116.76.0.0/15 1; +116.85.0.0/16 1; +116.193.176.0/21 1; +116.197.160.0/22 1; +116.198.64.0/18 1; +116.198.128.0/20 1; +116.199.0.0/17 1; +116.199.130.0/23 1; +116.199.132.0/24 1; +116.199.139.0/24 1; +116.199.140.0/22 1; +116.199.144.0/21 1; +116.204.0.0/17 1; +116.204.192.0/22 1; +116.205.0.0/21 1; +116.205.8.0/23 1; +116.205.10.0/24 1; +116.205.15.0/24 1; +116.205.16.0/21 1; +116.205.28.0/22 1; +116.205.32.0/19 1; +116.205.64.0/18 1; +116.205.128.0/17 1; +116.214.129.0/24 1; +116.214.130.0/23 1; +116.254.129.0/24 1; +116.254.130.0/23 1; +116.254.132.0/22 1; +116.254.136.0/21 1; +116.254.144.0/20 1; +116.254.160.0/19 1; +116.254.192.0/18 1; +117.48.192.0/18 1; +117.49.2.0/24 1; +117.49.5.0/24 1; +117.74.80.0/20 1; +117.78.64.0/18 1; +117.78.128.0/17 1; +117.103.40.0/21 1; +117.103.72.0/21 1; +117.104.168.0/21 1; +117.132.199.32/28 1; +117.132.199.48/30 1; +117.132.201.0/24 1; +117.136.12.0/24 1; +117.136.31.0/24 1; +117.136.32.0/23 1; +117.136.34.0/24 1; +117.136.39.0/24 1; +117.136.40.0/23 1; +117.136.43.0/24 1; +117.136.79.0/24 1; +117.136.130.0/23 1; +117.136.178.64/26 1; +117.136.179.0/24 1; +117.136.180.0/24 1; +117.136.186.0/24 1; +117.136.196.0/24 1; +117.136.199.0/24 1; +117.136.235.24/29 1; +117.136.235.128/30 1; +117.142.0.0/22 1; +117.142.18.0/23 1; +117.142.69.0/24 1; +117.142.70.0/23 1; +117.142.72.0/21 1; +117.142.80.0/23 1; +117.142.82.0/24 1; +118.25.200.0/21 1; +118.26.120.0/24 1; +118.30.0.0/20 1; +118.30.16.0/21 1; +118.30.24.0/22 1; +118.30.32.0/19 1; +118.30.64.0/18 1; +118.30.128.0/17 1; +118.85.116.36/30 1; +118.85.116.40/29 1; +118.85.116.48/28 1; +118.85.116.64/26 1; +118.85.116.128/25 1; +118.85.117.0/25 1; +118.85.117.128/26 1; +118.85.117.192/27 1; +118.85.117.224/28 1; +118.85.117.240/29 1; +118.85.117.248/30 1; +118.89.16.0/20 1; +118.89.32.0/19 1; +118.89.64.0/23 1; +118.89.250.0/23 1; +118.89.252.0/22 1; +118.102.32.0/21 1; +118.103.245.0/24 1; +118.103.246.0/23 1; +118.126.88.0/21 1; +118.126.96.0/21 1; +118.126.104.0/22 1; +118.126.118.0/23 1; +118.126.124.0/22 1; +118.127.128.0/19 1; +118.191.13.0/24 1; +118.191.14.0/23 1; +118.191.16.0/20 1; +118.191.32.0/19 1; +118.191.64.0/18 1; +118.191.128.0/18 1; +118.195.128.0/21 1; +118.195.136.0/22 1; +118.196.0.0/15 1; +118.215.202.0/23 1; +118.215.204.0/23 1; +118.215.206.0/24 1; +118.215.212.0/22 1; +118.215.216.0/24 1; +119.2.128.0/17 1; +119.16.0.0/16 1; +119.18.240.0/20 1; +119.19.0.0/16 1; +119.23.0.0/16 1; +119.27.128.0/19 1; +119.29.0.0/20 1; +119.29.16.0/21 1; +119.29.24.0/22 1; +119.29.28.0/24 1; +119.29.30.0/23 1; +119.29.32.0/19 1; +119.29.64.0/18 1; +119.29.128.0/17 1; +119.32.0.0/14 1; +119.38.128.0/18 1; +119.38.219.102/31 1; +119.38.219.104/31 1; +119.40.128.0/17 1; +119.42.0.0/19 1; +119.42.128.0/21 1; +119.59.128.0/17 1; +119.63.32.0/19 1; +119.78.0.0/23 1; +119.78.2.0/24 1; +119.78.4.0/23 1; +119.82.208.0/20 1; +119.120.0.0/13 1; +119.128.0.0/12 1; +119.144.0.0/14 1; +119.148.176.0/20 1; +119.151.192.0/18 1; +119.160.200.0/21 1; +119.161.160.0/21 1; +119.232.0.0/18 1; +119.233.0.0/17 1; +119.252.96.0/21 1; +119.252.252.0/23 1; +120.24.0.0/15 1; +120.30.0.0/15 1; +120.65.32.0/19 1; +120.65.88.0/21 1; +120.76.0.0/14 1; +120.80.0.0/13 1; +120.88.8.0/21 1; +120.132.112.0/20 1; +120.132.128.0/21 1; +120.132.140.0/22 1; +120.132.144.0/20 1; +120.132.160.0/19 1; +120.132.192.0/18 1; +120.143.128.0/19 1; +120.196.0.0/15 1; +120.198.0.0/16 1; +120.229.0.0/16 1; +120.230.0.0/15 1; +120.232.0.0/13 1; +120.240.0.0/15 1; +121.0.8.0/21 1; +121.8.0.0/13 1; +121.32.0.0/14 1; +121.37.0.0/18 1; +121.37.192.0/18 1; +121.46.0.0/18 1; +121.46.128.0/18 1; +121.46.208.0/20 1; +121.50.8.0/21 1; +121.51.0.0/19 1; +121.51.59.0/24 1; +121.51.96.0/24 1; +121.51.98.0/23 1; +121.51.100.0/22 1; +121.51.104.0/21 1; +121.51.128.0/18 1; +121.51.192.0/20 1; +121.51.230.128/25 1; +121.51.231.0/24 1; +121.51.236.0/22 1; +121.51.250.0/23 1; +121.51.252.0/22 1; +121.54.176.0/21 1; +121.58.136.0/21 1; +121.58.160.0/21 1; +121.68.0.0/16 1; +121.101.0.0/18 1; +121.200.192.0/21 1; +121.201.0.0/16 1; +122.9.48.0/20 1; +122.9.96.0/19 1; +122.13.0.0/16 1; +122.48.128.0/20 1; +122.72.12.0/23 1; +122.72.92.0/22 1; +122.72.124.0/22 1; +122.72.128.0/17 1; +122.98.144.0/20 1; +122.98.160.0/19 1; +122.98.192.0/21 1; +122.98.232.0/21 1; +122.98.240.0/20 1; +122.128.120.0/21 1; +122.152.222.0/23 1; +122.152.224.0/19 1; +122.198.0.0/18 1; +122.248.24.0/21 1; +122.255.64.0/21 1; +123.50.160.0/19 1; +123.58.32.0/19 1; +123.58.64.0/20 1; +123.58.80.0/21 1; +123.58.88.0/22 1; +123.61.0.0/16 1; +123.64.0.0/15 1; +123.66.0.0/17 1; +123.88.0.0/15 1; +123.94.20.0/24 1; +123.98.0.0/17 1; +123.100.0.0/19 1; +123.108.88.0/22 1; +123.196.69.0/24 1; +123.196.70.0/23 1; +123.196.72.0/21 1; +123.196.80.0/20 1; +123.196.96.0/20 1; +123.197.128.0/17 1; +123.206.244.0/22 1; +123.206.248.0/21 1; +123.207.0.0/17 1; +123.207.128.0/22 1; +123.207.208.0/20 1; +123.207.224.0/19 1; +123.242.0.0/17 1; +123.249.128.0/17 1; +124.14.192.0/19 1; +124.15.64.0/18 1; +124.15.184.0/21 1; +124.16.0.0/21 1; +124.16.8.0/22 1; +124.29.0.0/17 1; +124.40.128.0/18 1; +124.40.192.0/19 1; +124.42.128.0/17 1; +124.71.0.0/17 1; +124.109.96.0/21 1; +124.147.128.0/17 1; +124.150.137.0/24 1; +124.172.0.0/16 1; +124.173.32.0/19 1; +124.173.64.0/18 1; +124.173.128.0/17 1; +124.174.0.0/15 1; +124.196.17.0/24 1; +124.196.18.0/23 1; +124.196.20.0/24 1; +124.196.25.0/24 1; +124.196.26.0/23 1; +124.196.28.0/22 1; +124.196.32.0/23 1; +124.203.208.0/20 1; +124.240.0.0/17 1; +125.31.192.0/18 1; +125.88.0.0/13 1; +125.169.0.0/16 1; +125.171.0.0/16 1; +125.216.0.0/16 1; +125.217.8.0/21 1; +125.217.16.0/20 1; +125.217.116.0/22 1; +125.217.128.0/17 1; +125.218.0.0/17 1; +125.218.128.0/19 1; +125.218.160.0/20 1; +125.218.176.0/21 1; +125.218.184.0/22 1; +125.218.188.0/23 1; +125.218.191.0/24 1; +125.218.192.0/18 1; +129.28.240.0/20 1; +129.204.0.0/16 1; +134.175.0.0/16 1; +137.59.59.0/24 1; +139.5.60.0/22 1; +139.5.192.0/22 1; +139.9.0.0/18 1; +139.9.64.0/19 1; +139.9.96.0/20 1; +139.9.176.0/20 1; +139.9.192.0/19 1; +139.159.128.0/17 1; +139.198.108.0/22 1; +139.198.116.0/22 1; +139.198.122.0/23 1; +139.198.124.0/22 1; +139.199.0.0/20 1; +139.199.16.0/22 1; +139.199.40.0/21 1; +139.199.54.0/23 1; +139.199.56.0/21 1; +139.199.64.0/20 1; +139.199.80.0/21 1; +139.199.88.0/22 1; +139.199.92.0/23 1; +139.199.136.0/21 1; +139.199.144.0/22 1; +139.199.152.0/21 1; +139.199.160.0/19 1; +139.199.192.0/19 1; +139.199.224.0/21 1; +139.199.232.0/22 1; +139.199.236.0/23 1; +139.199.239.0/24 1; +139.199.240.0/21 1; +139.199.250.0/23 1; +139.199.252.0/22 1; +139.220.129.0/24 1; +139.220.130.0/23 1; +139.220.132.0/22 1; +139.220.136.0/21 1; +139.220.144.0/20 1; +139.220.160.0/19 1; +139.220.203.0/24 1; +139.221.0.0/16 1; +146.196.92.0/22 1; +146.222.79.0/24 1; +146.222.81.0/24 1; +146.222.94.0/24 1; +150.242.56.0/22 1; +152.104.128.0/17 1; +154.85.32.0/21 1; +157.18.0.0/16 1; +157.52.128.0/17 1; +157.61.0.0/16 1; +157.122.0.0/16 1; +157.148.0.0/16 1; +157.156.0.0/16 1; +157.255.0.0/16 1; +158.140.252.0/23 1; +158.140.255.62/31 1; +158.140.255.64/26 1; +158.140.255.128/25 1; +159.226.145.0/24 1; +159.226.146.0/24 1; +160.19.208.0/22 1; +160.238.64.0/22 1; +161.163.0.0/21 1; +163.0.0.0/16 1; +163.53.0.0/22 1; +163.125.0.0/16 1; +163.142.0.0/16 1; +163.177.0.0/16 1; +163.179.0.0/16 1; +163.204.0.0/16 1; +175.111.144.0/20 1; +175.111.160.0/20 1; +175.188.192.0/19 1; +175.191.0.0/18 1; +175.191.128.0/18 1; +175.191.240.0/21 1; +180.88.0.0/18 1; +180.89.128.0/19 1; +180.91.128.0/18 1; +180.148.16.0/21 1; +180.148.152.0/21 1; +180.148.216.0/21 1; +180.200.252.0/22 1; +182.23.184.0/21 1; +182.23.200.0/21 1; +182.61.0.0/18 1; +182.61.132.0/22 1; +182.61.136.0/21 1; +182.61.144.0/21 1; +182.254.0.0/21 1; +182.254.23.0/24 1; +182.254.24.0/21 1; +182.254.32.0/21 1; +182.254.64.0/21 1; +182.254.98.0/23 1; +182.254.100.0/22 1; +182.254.104.0/21 1; +182.254.116.0/22 1; +182.254.120.0/21 1; +182.254.160.0/19 1; +182.254.192.0/20 1; +182.254.224.0/20 1; +182.254.251.0/24 1; +182.254.252.0/22 1; +183.0.0.0/10 1; +183.91.136.0/21 1; +183.232.0.0/13 1; +183.240.0.0/16 1; +192.140.136.0/22 1; +192.140.156.0/22 1; +193.112.0.0/16 1; +202.6.176.0/20 1; +202.8.192.0/20 1; +202.10.74.0/23 1; +202.10.76.0/22 1; +202.38.48.0/20 1; +202.38.129.240/28 1; +202.38.171.0/24 1; +202.38.192.0/18 1; +202.41.152.0/21 1; +202.44.16.0/20 1; +202.45.16.0/20 1; +202.57.240.0/20 1; +202.59.215.0/24 1; +202.60.48.0/21 1; +202.60.96.0/21 1; +202.60.136.0/21 1; +202.60.144.0/20 1; +202.63.88.0/21 1; +202.65.0.0/21 1; +202.67.3.2/31 1; +202.69.16.0/20 1; +202.70.0.0/19 1; +202.70.96.0/20 1; +202.70.192.0/20 1; +202.72.40.0/21 1; +202.72.80.0/20 1; +202.74.8.0/21 1; +202.74.80.0/20 1; +202.77.80.0/21 1; +202.78.8.0/21 1; +202.79.224.0/21 1; +202.80.200.0/21 1; +202.84.8.0/23 1; +202.84.12.0/22 1; +202.84.24.0/21 1; +202.87.80.0/20 1; +202.89.8.0/21 1; +202.90.0.0/22 1; +202.90.112.0/20 1; +202.90.232.0/21 1; +202.91.96.0/20 1; +202.92.8.0/21 1; +202.92.48.0/20 1; +202.93.0.0/22 1; +202.95.240.0/21 1; +202.96.128.0/18 1; +202.97.4.72/31 1; +202.97.13.158/31 1; +202.97.14.148/30 1; +202.97.14.152/29 1; +202.97.14.160/30 1; +202.97.15.8/29 1; +202.97.15.24/31 1; +202.97.15.28/30 1; +202.97.15.32/31 1; +202.97.15.112/28 1; +202.97.15.128/28 1; +202.97.15.144/30 1; +202.97.15.156/30 1; +202.97.15.160/27 1; +202.97.15.192/26 1; +202.97.16.0/27 1; +202.97.16.32/28 1; +202.97.16.48/29 1; +202.97.16.56/30 1; +202.97.17.0/31 1; +202.97.18.56/31 1; +202.97.18.168/29 1; +202.97.18.176/28 1; +202.97.18.192/27 1; +202.97.18.228/30 1; +202.97.18.232/29 1; +202.97.18.240/28 1; +202.97.19.54/31 1; +202.97.19.128/29 1; +202.97.19.178/31 1; +202.97.19.180/30 1; +202.97.19.186/31 1; +202.97.22.112/31 1; +202.97.22.120/31 1; +202.97.22.124/31 1; +202.97.22.128/31 1; +202.97.22.134/31 1; +202.97.22.136/29 1; +202.97.23.4/31 1; +202.97.23.148/31 1; +202.97.23.160/31 1; +202.97.23.164/31 1; +202.97.23.168/31 1; +202.97.23.172/31 1; +202.97.23.184/31 1; +202.97.23.192/31 1; +202.97.24.6/31 1; +202.97.24.8/30 1; +202.97.24.12/31 1; +202.97.24.16/31 1; +202.97.24.24/31 1; +202.97.24.44/31 1; +202.97.25.96/27 1; +202.97.25.128/26 1; +202.97.25.200/31 1; +202.97.25.204/30 1; +202.97.25.208/30 1; +202.97.25.214/31 1; +202.97.25.216/30 1; +202.97.25.222/31 1; +202.97.25.234/31 1; +202.97.26.20/30 1; +202.97.26.24/30 1; +202.97.26.28/31 1; +202.97.26.32/27 1; +202.97.26.64/29 1; +202.97.26.72/30 1; +202.97.26.76/31 1; +202.97.26.96/28 1; +202.97.26.112/30 1; +202.97.26.176/28 1; +202.97.26.192/28 1; +202.97.26.236/30 1; +202.97.26.240/29 1; +202.97.28.16/31 1; +202.97.28.20/31 1; +202.97.29.20/31 1; +202.97.29.36/31 1; +202.97.29.44/31 1; +202.97.29.48/31 1; +202.97.29.52/31 1; +202.97.29.68/31 1; +202.97.29.72/31 1; +202.97.29.184/31 1; +202.97.30.138/31 1; +202.97.30.140/30 1; +202.97.30.144/28 1; +202.97.30.160/29 1; +202.97.30.168/30 1; +202.97.30.172/31 1; +202.97.30.242/31 1; +202.97.30.252/31 1; +202.97.31.2/31 1; +202.97.31.40/30 1; +202.97.31.68/31 1; +202.97.32.2/31 1; +202.97.32.32/28 1; +202.97.32.48/32 1; +202.97.32.52/30 1; +202.97.32.68/31 1; +202.97.33.184/30 1; +202.97.33.236/31 1; +202.97.34.34/31 1; +202.97.34.38/32 1; +202.97.34.62/31 1; +202.97.34.64/30 1; +202.97.34.68/31 1; +202.97.34.106/31 1; +202.97.34.112/31 1; +202.97.34.122/31 1; +202.97.34.142/31 1; +202.97.34.146/31 1; +202.97.34.180/31 1; +202.97.34.192/31 1; +202.97.34.200/30 1; +202.97.34.206/31 1; +202.97.34.212/31 1; +202.97.34.216/31 1; +202.97.34.254/31 1; +202.97.35.150/31 1; +202.97.35.176/28 1; +202.97.35.192/26 1; +202.97.36.70/31 1; +202.97.36.84/30 1; +202.97.36.88/29 1; +202.97.36.116/31 1; +202.97.36.176/31 1; +202.97.36.220/31 1; +202.97.37.80/31 1; +202.97.38.0/31 1; +202.97.38.20/31 1; +202.97.38.24/31 1; +202.97.38.36/31 1; +202.97.38.92/30 1; +202.97.38.106/31 1; +202.97.38.116/30 1; +202.97.38.164/30 1; +202.97.38.172/30 1; +202.97.38.180/31 1; +202.97.38.216/31 1; +202.97.38.232/30 1; +202.97.38.248/31 1; +202.97.40.36/31 1; +202.97.40.52/31 1; +202.97.40.60/31 1; +202.97.40.64/31 1; +202.97.40.108/31 1; +202.97.40.140/31 1; +202.97.40.152/31 1; +202.97.40.160/31 1; +202.97.40.164/31 1; +202.97.40.168/31 1; +202.97.41.2/31 1; +202.97.41.4/31 1; +202.97.41.8/31 1; +202.97.41.18/31 1; +202.97.41.66/31 1; +202.97.41.102/31 1; +202.97.41.128/31 1; +202.97.42.2/31 1; +202.97.42.8/30 1; +202.97.42.20/31 1; +202.97.42.24/31 1; +202.97.42.40/31 1; +202.97.42.50/31 1; +202.97.42.58/31 1; +202.97.42.88/31 1; +202.97.42.100/31 1; +202.97.42.104/31 1; +202.97.42.160/31 1; +202.97.42.164/31 1; +202.97.42.184/31 1; +202.97.42.200/31 1; +202.97.42.226/31 1; +202.97.43.42/31 1; +202.97.43.108/31 1; +202.97.43.124/31 1; +202.97.43.128/30 1; +202.97.43.180/31 1; +202.97.43.228/30 1; +202.97.43.240/31 1; +202.97.43.244/30 1; +202.97.44.76/30 1; +202.97.44.80/30 1; +202.97.44.106/31 1; +202.97.44.112/29 1; +202.97.44.132/30 1; +202.97.44.136/29 1; +202.97.44.144/29 1; +202.97.44.152/31 1; +202.97.44.162/31 1; +202.97.44.210/31 1; +202.97.44.214/31 1; +202.97.44.216/31 1; +202.97.45.0/31 1; +202.97.45.4/31 1; +202.97.45.12/30 1; +202.97.45.16/28 1; +202.97.45.32/27 1; +202.97.45.64/26 1; +202.97.45.128/25 1; +202.97.46.0/25 1; +202.97.46.128/28 1; +202.97.46.144/29 1; +202.97.46.180/31 1; +202.97.46.214/31 1; +202.97.47.2/31 1; +202.97.47.10/31 1; +202.97.47.78/31 1; +202.97.47.178/31 1; +202.97.47.204/31 1; +202.97.47.226/31 1; +202.97.47.228/30 1; +202.97.47.246/31 1; +202.97.48.0/31 1; +202.97.49.20/30 1; +202.97.49.210/31 1; +202.97.49.214/31 1; +202.97.49.216/29 1; +202.97.49.224/29 1; +202.97.49.232/30 1; +202.97.50.2/31 1; +202.97.50.6/31 1; +202.97.50.10/31 1; +202.97.50.12/30 1; +202.97.50.16/28 1; +202.97.50.92/30 1; +202.97.50.96/29 1; +202.97.50.104/31 1; +202.97.50.128/31 1; +202.97.51.88/31 1; +202.97.51.92/31 1; +202.97.51.96/29 1; +202.97.51.104/31 1; +202.97.51.108/31 1; +202.97.51.112/31 1; +202.97.51.116/31 1; +202.97.51.120/31 1; +202.97.51.152/30 1; +202.97.51.156/31 1; +202.97.51.164/31 1; +202.97.51.168/31 1; +202.97.51.172/31 1; +202.97.54.236/31 1; +202.97.55.24/31 1; +202.97.55.48/28 1; +202.97.55.64/29 1; +202.97.55.72/31 1; +202.97.55.84/31 1; +202.97.55.92/31 1; +202.97.55.152/29 1; +202.97.55.160/30 1; +202.97.55.168/29 1; +202.97.55.192/30 1; +202.97.55.196/31 1; +202.97.55.212/31 1; +202.97.55.216/29 1; +202.97.55.242/31 1; +202.97.56.14/31 1; +202.97.56.30/31 1; +202.97.56.108/31 1; +202.97.56.112/31 1; +202.97.56.116/31 1; +202.97.56.120/31 1; +202.97.56.184/31 1; +202.97.56.216/31 1; +202.97.58.0/31 1; +202.97.58.10/32 1; +202.97.58.12/31 1; +202.97.58.16/31 1; +202.97.58.22/31 1; +202.97.58.24/31 1; +202.97.58.32/27 1; +202.97.58.64/26 1; +202.97.58.128/31 1; +202.97.58.132/31 1; +202.97.58.136/31 1; +202.97.58.158/31 1; +202.97.58.160/30 1; +202.97.58.174/31 1; +202.97.58.178/31 1; +202.97.58.182/31 1; +202.97.58.198/31 1; +202.97.58.202/31 1; +202.97.58.206/31 1; +202.97.58.208/28 1; +202.97.58.224/28 1; +202.97.58.240/30 1; +202.97.58.244/31 1; +202.97.58.248/29 1; +202.97.59.0/31 1; +202.97.59.8/31 1; +202.97.60.16/28 1; +202.97.60.32/28 1; +202.97.60.52/30 1; +202.97.60.60/31 1; +202.97.60.74/31 1; +202.97.60.84/30 1; +202.97.60.116/30 1; +202.97.60.122/31 1; +202.97.60.126/31 1; +202.97.60.136/30 1; +202.97.60.140/31 1; +202.97.60.144/28 1; +202.97.60.160/28 1; +202.97.60.184/31 1; +202.97.60.192/28 1; +202.97.60.208/31 1; +202.97.60.212/31 1; +202.97.60.224/31 1; +202.97.60.228/31 1; +202.97.60.236/30 1; +202.97.60.240/31 1; +202.97.60.244/31 1; +202.97.60.248/31 1; +202.97.61.28/31 1; +202.97.61.172/30 1; +202.97.61.216/29 1; +202.97.61.224/27 1; +202.97.62.0/28 1; +202.97.62.64/30 1; +202.97.63.8/31 1; +202.97.63.44/31 1; +202.97.63.48/31 1; +202.97.63.68/31 1; +202.97.63.78/31 1; +202.97.63.80/30 1; +202.97.63.96/31 1; +202.97.63.104/30 1; +202.97.63.108/31 1; +202.97.63.156/31 1; +202.97.63.184/29 1; +202.97.63.192/26 1; +202.97.64.2/31 1; +202.97.64.4/30 1; +202.97.64.8/29 1; +202.97.64.16/28 1; +202.97.64.32/27 1; +202.97.64.64/26 1; +202.97.64.130/31 1; +202.97.64.132/30 1; +202.97.64.136/29 1; +202.97.64.144/28 1; +202.97.64.160/27 1; +202.97.64.198/31 1; +202.97.64.202/31 1; +202.97.64.206/31 1; +202.97.64.222/31 1; +202.97.64.230/31 1; +202.97.64.232/29 1; +202.97.64.246/31 1; +202.97.65.50/31 1; +202.97.65.52/30 1; +202.97.65.58/31 1; +202.97.65.62/31 1; +202.97.65.64/30 1; +202.97.65.70/32 1; +202.97.65.72/30 1; +202.97.65.80/31 1; +202.97.65.102/31 1; +202.97.65.106/31 1; +202.97.65.126/31 1; +202.97.65.130/31 1; +202.97.65.138/31 1; +202.97.65.146/31 1; +202.97.65.150/31 1; +202.97.65.162/31 1; +202.97.65.164/31 1; +202.97.65.170/31 1; +202.97.65.174/31 1; +202.97.65.182/31 1; +202.97.65.190/31 1; +202.97.65.192/27 1; +202.97.66.26/31 1; +202.97.66.34/31 1; +202.97.66.152/29 1; +202.97.66.160/29 1; +202.97.66.168/30 1; +202.97.66.186/31 1; +202.97.66.190/31 1; +202.97.66.218/31 1; +202.97.66.220/30 1; +202.97.67.44/30 1; +202.97.67.48/29 1; +202.97.67.56/30 1; +202.97.67.60/31 1; +202.97.69.84/30 1; +202.97.69.88/31 1; +202.97.69.92/31 1; +202.97.69.96/31 1; +202.97.69.104/31 1; +202.97.69.108/31 1; +202.97.70.216/31 1; +202.97.71.0/29 1; +202.97.71.8/30 1; +202.97.71.12/31 1; +202.97.71.48/28 1; +202.97.71.64/31 1; +202.97.71.78/31 1; +202.97.71.224/31 1; +202.97.71.244/31 1; +202.97.72.100/31 1; +202.97.72.180/31 1; +202.97.73.96/31 1; +202.97.73.112/29 1; +202.97.73.120/31 1; +202.97.73.124/31 1; +202.97.73.160/31 1; +202.97.73.168/29 1; +202.97.73.176/30 1; +202.97.73.180/31 1; +202.97.73.196/31 1; +202.97.73.200/31 1; +202.97.73.204/31 1; +202.97.73.208/31 1; +202.97.74.224/31 1; +202.97.74.228/31 1; +202.97.74.232/31 1; +202.97.74.240/31 1; +202.97.74.244/31 1; +202.97.74.248/31 1; +202.97.74.252/31 1; +202.97.75.116/31 1; +202.97.75.120/31 1; +202.97.75.124/31 1; +202.97.75.208/31 1; +202.97.76.16/29 1; +202.97.76.24/30 1; +202.97.76.28/31 1; +202.97.76.216/30 1; +202.97.76.220/31 1; +202.97.76.224/31 1; +202.97.77.0/29 1; +202.97.77.8/30 1; +202.97.77.12/31 1; +202.97.77.20/31 1; +202.97.77.24/31 1; +202.97.77.28/31 1; +202.97.77.68/31 1; +202.97.77.76/31 1; +202.97.77.110/31 1; +202.97.77.112/30 1; +202.97.77.116/31 1; +202.97.77.120/31 1; +202.97.77.128/31 1; +202.97.77.132/31 1; +202.97.77.140/31 1; +202.97.77.144/31 1; +202.97.77.148/30 1; +202.97.77.152/30 1; +202.97.77.156/31 1; +202.97.77.164/31 1; +202.97.77.168/31 1; +202.97.78.28/31 1; +202.97.78.36/30 1; +202.97.78.40/30 1; +202.97.78.44/31 1; +202.97.78.96/31 1; +202.97.79.160/31 1; +202.97.80.18/31 1; +202.97.80.22/31 1; +202.97.80.196/30 1; +202.97.80.200/31 1; +202.97.80.204/31 1; +202.97.81.92/31 1; +202.97.82.32/29 1; +202.97.82.86/31 1; +202.97.82.88/30 1; +202.97.82.104/31 1; +202.97.83.168/30 1; +202.97.83.172/31 1; +202.97.83.184/30 1; +202.97.83.188/31 1; +202.97.89.106/31 1; +202.97.89.108/31 1; +202.97.89.136/31 1; +202.97.89.156/30 1; +202.97.89.198/31 1; +202.97.90.44/31 1; +202.97.90.156/30 1; +202.97.90.160/29 1; +202.97.90.168/30 1; +202.97.90.204/30 1; +202.97.91.80/31 1; +202.97.91.88/31 1; +202.97.91.96/30 1; +202.97.91.128/25 1; +202.97.92.80/28 1; +202.97.94.68/30 1; +202.97.94.72/29 1; +202.97.94.80/28 1; +202.97.94.96/27 1; +202.97.94.128/28 1; +202.97.94.144/29 1; +202.97.95.6/31 1; +202.97.95.8/29 1; +202.97.95.16/29 1; +202.97.95.24/31 1; +202.97.95.30/31 1; +202.97.95.70/31 1; +202.97.95.72/29 1; +202.97.95.80/28 1; +202.97.95.96/27 1; +202.97.95.128/26 1; +202.97.95.192/28 1; +202.97.95.208/31 1; +202.97.95.216/30 1; +202.97.95.220/31 1; +202.103.128.0/18 1; +202.104.0.0/15 1; +202.112.17.0/24 1; +202.112.18.0/23 1; +202.112.38.204/30 1; +202.112.38.220/30 1; +202.112.38.228/30 1; +202.112.38.236/30 1; +202.112.53.24/31 1; +202.112.53.27/32 1; +202.112.53.32/29 1; +202.112.53.40/30 1; +202.112.53.44/31 1; +202.112.53.52/30 1; +202.112.53.56/29 1; +202.112.53.64/29 1; +202.112.53.76/30 1; +202.112.53.80/29 1; +202.112.53.92/30 1; +202.112.53.96/27 1; +202.112.53.128/30 1; +202.112.53.140/30 1; +202.112.53.144/28 1; +202.112.53.160/27 1; +202.112.53.204/30 1; +202.112.53.208/29 1; +202.112.53.216/30 1; +202.112.53.228/30 1; +202.112.53.232/29 1; +202.112.53.244/30 1; +202.112.53.248/30 1; +202.116.0.0/17 1; +202.116.128.0/18 1; +202.116.192.0/19 1; +202.116.224.0/20 1; +202.116.240.0/21 1; +202.122.120.0/21 1; +202.124.16.0/21 1; +202.125.112.0/20 1; +202.127.128.0/20 1; +202.127.238.0/24 1; +202.127.241.128/25 1; +202.127.251.192/26 1; +202.131.208.0/20 1; +202.133.32.0/20 1; +202.134.128.0/20 1; +202.136.224.0/20 1; +202.143.32.0/20 1; +202.143.56.0/21 1; +202.146.160.0/20 1; +202.146.200.0/21 1; +202.147.144.0/20 1; +202.148.32.0/20 1; +202.148.64.0/19 1; +202.149.32.0/19 1; +202.149.160.0/19 1; +202.150.32.0/20 1; +202.150.192.0/20 1; +202.150.224.0/19 1; +202.151.128.0/19 1; +202.153.7.0/24 1; +202.157.192.0/19 1; +202.158.242.0/24 1; +202.164.96.0/19 1; +202.166.224.0/19 1; +202.168.160.0/19 1; +202.170.128.0/19 1; +202.170.224.0/19 1; +202.171.216.0/21 1; +202.171.232.0/24 1; +202.172.7.0/24 1; +202.173.6.0/24 1; +202.173.224.0/19 1; +202.174.64.0/20 1; +202.176.224.0/19 1; +202.180.208.0/21 1; +202.182.32.0/20 1; +202.182.192.0/19 1; +202.189.184.0/21 1; +202.191.72.0/21 1; +202.191.80.0/20 1; +202.192.0.0/16 1; +203.15.234.0/23 1; +203.16.63.0/24 1; +203.17.249.0/24 1; +203.19.1.0/24 1; +203.32.48.0/23 1; +203.32.68.0/23 1; +203.32.84.0/23 1; +203.32.186.0/23 1; +203.32.203.0/24 1; +203.32.204.0/23 1; +203.33.158.0/23 1; +203.57.66.0/24 1; +203.57.69.0/24 1; +203.57.73.0/24 1; +203.57.90.0/24 1; +203.57.253.0/24 1; +203.86.0.0/19 1; +203.86.96.0/19 1; +203.88.32.0/19 1; +203.88.192.0/19 1; +203.91.32.0/19 1; +203.93.178.0/26 1; +203.93.186.0/24 1; +203.93.197.0/24 1; +203.93.206.0/23 1; +203.95.224.0/19 1; +203.99.80.0/20 1; +203.100.60.0/24 1; +203.105.96.0/19 1; +203.105.128.0/19 1; +203.107.4.0/22 1; +203.107.8.0/21 1; +203.107.25.32/27 1; +203.107.25.64/26 1; +203.107.25.128/25 1; +203.107.26.0/23 1; +203.107.28.0/22 1; +203.107.56.0/21 1; +203.107.64.0/18 1; +203.118.192.0/19 1; +203.128.96.0/19 1; +203.132.32.0/19 1; +203.142.224.0/19 1; +203.144.96.0/19 1; +203.145.0.0/19 1; +203.152.128.0/19 1; +203.160.192.0/19 1; +203.161.192.0/19 1; +203.168.0.0/19 1; +203.174.6.0/24 1; +203.175.128.0/19 1; +203.191.2.0/24 1; +203.191.7.0/24 1; +203.191.29.0/24 1; +203.191.30.0/23 1; +203.191.64.0/18 1; +203.195.128.0/17 1; +203.201.181.0/24 1; +203.205.160.0/20 1; +203.205.176.0/22 1; +203.205.184.0/23 1; +203.205.186.0/24 1; +203.205.189.0/24 1; +203.205.192.0/20 1; +203.205.214.0/23 1; +203.205.216.0/23 1; +203.205.225.0/24 1; +203.205.226.0/23 1; +203.205.228.0/22 1; +203.205.232.0/21 1; +203.205.240.0/21 1; +203.208.17.0/24 1; +203.208.18.0/23 1; +203.209.228.0/22 1; +203.217.164.0/22 1; +208.90.120.0/22 1; +210.5.0.0/24 1; +210.5.2.11/32 1; +210.5.2.12/30 1; +210.5.2.16/28 1; +210.5.2.32/27 1; +210.5.2.64/26 1; +210.5.2.128/25 1; +210.5.3.0/24 1; +210.5.4.0/22 1; +210.5.13.0/24 1; +210.5.14.0/24 1; +210.5.23.0/24 1; +210.5.56.8/30 1; +210.14.180.0/24 1; +210.14.187.65/32 1; +210.14.187.66/31 1; +210.14.187.68/30 1; +210.14.187.72/29 1; +210.14.187.80/28 1; +210.14.187.96/27 1; +210.14.187.128/25 1; +210.14.191.0/24 1; +210.14.248.0/24 1; +210.14.252.0/23 1; +210.21.0.0/16 1; +210.22.0.0/19 1; +210.22.32.0/22 1; +210.25.252.0/22 1; +210.38.0.0/21 1; +210.38.24.0/21 1; +210.38.32.0/19 1; +210.38.64.0/18 1; +210.38.128.0/17 1; +210.39.0.0/18 1; +210.39.72.0/21 1; +210.39.80.0/20 1; +210.39.96.0/21 1; +210.39.104.0/22 1; +210.39.112.0/20 1; +210.39.128.0/17 1; +210.51.88.0/22 1; +210.51.92.0/23 1; +210.51.94.0/24 1; +210.51.121.0/24 1; +210.51.122.0/23 1; +210.51.124.0/22 1; +210.51.128.0/21 1; +210.51.136.0/22 1; +210.51.140.0/24 1; +210.51.157.0/24 1; +210.51.158.0/23 1; +210.51.224.0/26 1; +210.52.64.0/20 1; +210.52.80.0/25 1; +210.52.80.136/29 1; +210.52.80.144/28 1; +210.52.80.160/27 1; +210.52.80.192/26 1; +210.52.83.0/24 1; +210.52.84.0/22 1; +210.52.88.0/21 1; +210.52.96.0/22 1; +210.52.100.0/23 1; +210.52.102.0/24 1; +210.52.104.0/22 1; +210.52.108.0/24 1; +210.52.110.0/23 1; +210.52.112.0/20 1; +210.52.128.25/32 1; +210.52.128.26/31 1; +210.52.143.128/25 1; +210.52.144.0/25 1; +210.53.28.0/22 1; +210.53.32.0/22 1; +210.53.36.220/30 1; +210.53.36.224/27 1; +210.53.37.0/24 1; +210.53.38.0/23 1; +210.53.40.0/22 1; +210.53.44.0/24 1; +210.53.200.0/24 1; +210.53.202.0/23 1; +210.53.204.0/24 1; +210.53.206.0/23 1; +210.72.0.0/21 1; +210.72.16.0/24 1; +210.73.44.0/23 1; +210.74.32.0/23 1; +210.74.39.0/24 1; +210.74.48.0/20 1; +210.75.0.0/18 1; +210.75.82.0/23 1; +210.75.85.0/24 1; +210.75.91.0/25 1; +210.75.91.192/26 1; +210.75.252.0/22 1; +210.76.64.0/19 1; +210.77.80.0/20 1; +210.77.96.0/19 1; +210.78.64.0/19 1; +210.79.64.0/18 1; +210.83.32.0/20 1; +210.83.224.0/19 1; +210.185.192.0/18 1; +211.66.0.0/19 1; +211.66.32.0/21 1; +211.66.48.0/20 1; +211.66.64.0/18 1; +211.66.128.0/18 1; +211.66.192.0/21 1; +211.66.200.0/22 1; +211.66.204.0/24 1; +211.66.206.0/23 1; +211.66.208.0/22 1; +211.66.216.0/21 1; +211.66.224.0/19 1; +211.95.128.0/19 1; +211.95.192.0/18 1; +211.96.0.0/16 1; +211.97.0.0/18 1; +211.98.70.112/28 1; +211.98.70.128/26 1; +211.98.70.192/28 1; +211.98.70.208/29 1; +211.98.70.220/31 1; +211.98.71.224/28 1; +211.98.169.192/26 1; +211.98.207.32/28 1; +211.99.96.0/20 1; +211.102.33.0/24 1; +211.102.34.0/23 1; +211.102.36.0/22 1; +211.102.40.0/21 1; +211.102.48.0/20 1; +211.102.64.0/19 1; +211.136.0.8/29 1; +211.136.0.234/32 1; +211.136.1.56/29 1; +211.136.1.64/29 1; +211.136.1.72/30 1; +211.136.1.80/30 1; +211.136.1.94/31 1; +211.136.1.98/31 1; +211.136.1.106/31 1; +211.136.1.110/31 1; +211.136.10.192/26 1; +211.136.11.0/24 1; +211.136.15.0/24 1; +211.136.20.0/24 1; +211.136.192.0/18 1; +211.139.128.0/17 1; +211.147.160.0/19 1; +211.147.224.0/19 1; +211.148.64.0/18 1; +211.148.128.0/19 1; +211.148.192.0/19 1; +211.149.32.0/19 1; +211.149.64.0/19 1; +211.152.64.0/19 1; +211.152.160.0/19 1; +211.154.128.0/19 1; +211.154.176.0/20 1; +211.155.16.0/20 1; +211.155.192.0/19 1; +211.156.32.0/20 1; +211.156.97.0/24 1; +211.156.98.0/24 1; +211.156.106.0/24 1; +211.156.108.0/23 1; +211.156.112.0/20 1; +211.156.176.0/20 1; +211.156.224.0/19 1; +211.159.16.0/21 1; +211.159.32.0/19 1; +211.159.64.0/20 1; +211.159.128.0/22 1; +211.159.132.0/23 1; +211.159.138.0/23 1; +211.159.140.0/23 1; +211.159.182.0/23 1; +211.159.184.0/22 1; +211.159.188.0/23 1; +211.159.192.0/22 1; +211.159.196.0/23 1; +211.161.16.0/22 1; +211.161.28.0/22 1; +211.161.60.0/22 1; +211.161.64.0/20 1; +211.162.48.0/20 1; +211.162.64.0/20 1; +211.162.82.0/23 1; +211.162.84.0/22 1; +211.162.88.0/21 1; +211.162.96.0/21 1; +211.162.106.0/23 1; +211.162.108.0/22 1; +211.162.112.0/20 1; +211.162.192.0/22 1; +211.162.224.0/21 1; +211.164.22.0/23 1; +211.164.30.0/23 1; +211.167.0.0/19 1; +218.13.0.0/16 1; +218.14.0.0/15 1; +218.16.0.0/14 1; +218.20.0.0/16 1; +218.30.0.0/24 1; +218.30.8.0/22 1; +218.30.18.0/24 1; +218.30.30.0/23 1; +218.30.128.0/24 1; +218.30.130.0/23 1; +218.97.0.0/23 1; +218.97.168.0/22 1; +218.97.180.0/22 1; +218.97.184.0/22 1; +218.97.224.0/20 1; +218.100.96.0/19 1; +218.100.128.0/17 1; +218.104.160.0/19 1; +218.104.192.0/21 1; +218.106.128.0/21 1; +218.107.0.0/18 1; +218.192.0.0/16 1; +218.200.246.0/24 1; +218.200.254.0/23 1; +218.204.160.0/19 1; +218.204.192.0/18 1; +218.243.16.0/20 1; +218.247.32.0/19 1; +219.72.65.0/24 1; +219.72.202.0/28 1; +219.72.202.128/28 1; +219.72.203.128/27 1; +219.72.203.208/28 1; +219.128.0.0/13 1; +219.136.0.0/15 1; +219.158.7.226/31 1; +219.158.8.82/31 1; +219.158.8.86/31 1; +219.158.8.88/30 1; +219.158.8.96/29 1; +219.158.8.104/31 1; +219.158.8.112/29 1; +219.158.8.120/30 1; +219.158.8.188/31 1; +219.158.8.192/29 1; +219.158.8.200/31 1; +219.158.8.244/31 1; +219.158.9.28/30 1; +219.158.9.32/27 1; +219.158.9.64/28 1; +219.158.9.80/30 1; +219.158.9.84/31 1; +219.158.9.140/31 1; +219.158.10.28/31 1; +219.158.10.44/30 1; +219.158.10.48/31 1; +219.158.10.52/31 1; +219.158.10.204/30 1; +219.158.10.208/30 1; +219.158.10.216/30 1; +219.158.10.248/30 1; +219.158.11.16/28 1; +219.158.11.34/31 1; +219.158.11.36/30 1; +219.158.11.40/30 1; +219.158.11.142/31 1; +219.158.11.144/28 1; +219.158.11.160/27 1; +219.158.11.192/28 1; +219.158.11.208/31 1; +219.158.12.0/30 1; +219.158.12.4/31 1; +219.158.12.20/31 1; +219.158.12.144/31 1; +219.158.12.172/31 1; +219.158.12.224/30 1; +219.158.12.228/31 1; +219.158.13.96/31 1; +219.158.13.192/31 1; +219.158.14.232/29 1; +219.158.15.140/31 1; +219.158.15.144/31 1; +219.158.15.224/30 1; +219.158.15.228/31 1; +219.158.15.240/28 1; +219.158.16.4/31 1; +219.158.16.24/30 1; +219.158.16.34/31 1; +219.158.16.48/31 1; +219.158.16.56/31 1; +219.158.16.60/31 1; +219.158.16.116/31 1; +219.158.16.120/31 1; +219.158.16.128/31 1; +219.158.17.20/31 1; +219.158.17.156/31 1; +219.158.17.188/31 1; +219.158.17.196/31 1; +219.158.17.240/29 1; +219.158.17.248/30 1; +219.158.17.252/31 1; +219.158.18.136/31 1; +219.158.18.204/31 1; +219.158.19.12/31 1; +219.158.19.38/31 1; +219.158.19.64/30 1; +219.158.19.140/31 1; +219.158.19.156/31 1; +219.158.19.160/31 1; +219.158.19.172/31 1; +219.158.19.188/30 1; +219.158.19.192/29 1; +219.158.19.200/30 1; +219.158.19.220/30 1; +219.158.19.224/28 1; +219.158.19.240/31 1; +219.158.19.244/31 1; +219.158.20.32/31 1; +219.158.20.36/31 1; +219.158.20.40/31 1; +219.158.20.56/31 1; +219.158.20.152/31 1; +219.158.20.160/28 1; +219.158.20.176/31 1; +219.158.20.220/30 1; +219.158.20.236/31 1; +219.158.21.16/31 1; +219.158.21.240/31 1; +219.158.22.32/31 1; +219.158.22.72/31 1; +219.158.22.80/31 1; +219.158.22.84/31 1; +219.158.22.144/31 1; +219.158.22.168/29 1; +219.158.22.176/31 1; +219.158.22.180/31 1; +219.158.23.0/28 1; +219.158.23.16/31 1; +219.158.23.64/31 1; +219.158.23.88/31 1; +219.158.23.100/31 1; +219.158.23.192/31 1; +219.158.23.200/31 1; +219.158.23.204/31 1; +219.158.23.212/31 1; +219.158.23.236/30 1; +219.158.23.240/31 1; +219.158.23.244/30 1; +219.158.23.248/30 1; +219.158.24.4/30 1; +219.158.24.8/29 1; +219.158.24.16/30 1; +219.158.24.72/31 1; +219.158.24.96/31 1; +219.158.24.100/31 1; +219.158.25.136/31 1; +219.158.39.222/31 1; +219.158.40.168/30 1; +219.158.40.228/31 1; +219.158.41.124/30 1; +219.158.41.128/29 1; +219.158.42.136/29 1; +219.158.42.144/28 1; +219.158.42.160/29 1; +219.158.43.112/30 1; +219.158.45.48/29 1; +219.158.45.172/30 1; +219.158.96.172/31 1; +219.158.96.176/31 1; +219.158.96.192/26 1; +219.158.97.0/30 1; +219.158.97.20/30 1; +219.158.97.24/29 1; +219.158.97.32/30 1; +219.158.97.38/31 1; +219.158.97.40/31 1; +219.158.97.192/30 1; +219.158.97.204/30 1; +219.158.97.208/28 1; +219.158.97.224/28 1; +219.158.97.240/30 1; +219.158.97.244/31 1; +219.158.98.0/30 1; +219.158.98.32/31 1; +219.158.98.36/31 1; +219.158.98.48/31 1; +219.158.98.60/31 1; +219.158.98.148/30 1; +219.158.98.152/31 1; +219.158.99.0/30 1; +219.158.99.8/29 1; +219.158.99.16/28 1; +219.158.99.32/27 1; +219.158.99.64/28 1; +219.158.99.80/31 1; +219.158.99.208/31 1; +219.158.99.220/30 1; +219.158.99.224/27 1; +219.158.100.0/30 1; +219.158.100.4/31 1; +219.158.100.28/31 1; +219.158.100.64/31 1; +219.158.100.240/31 1; +219.158.100.252/31 1; +219.158.101.88/31 1; +219.158.101.164/30 1; +219.158.101.168/29 1; +219.158.101.176/29 1; +219.158.101.184/30 1; +219.158.101.188/31 1; +219.158.101.196/31 1; +219.158.102.8/30 1; +219.158.102.24/30 1; +219.158.102.28/31 1; +219.158.102.52/31 1; +219.158.102.92/31 1; +219.158.102.96/31 1; +219.158.102.104/31 1; +219.158.102.136/31 1; +219.158.102.156/31 1; +219.158.102.180/30 1; +219.158.102.184/29 1; +219.158.102.192/28 1; +219.158.102.208/31 1; +219.158.102.212/31 1; +219.158.103.216/29 1; +219.158.103.224/27 1; +219.158.104.0/28 1; +219.158.104.16/29 1; +219.158.104.24/31 1; +219.158.104.32/30 1; +219.158.104.36/31 1; +219.158.104.40/31 1; +219.158.104.56/30 1; +219.158.104.60/31 1; +219.158.104.110/31 1; +219.158.104.148/31 1; +219.158.104.152/31 1; +219.158.104.156/31 1; +219.158.104.196/31 1; +219.158.104.244/31 1; +219.158.104.254/31 1; +219.158.105.0/29 1; +219.158.105.8/31 1; +219.158.105.12/31 1; +219.158.105.16/31 1; +219.158.105.20/31 1; +219.158.105.24/31 1; +219.158.105.28/31 1; +219.158.105.32/28 1; +219.158.105.48/29 1; +219.158.105.56/30 1; +219.158.105.60/31 1; +219.158.105.250/32 1; +219.158.106.16/30 1; +219.158.106.20/31 1; +219.158.106.40/31 1; +219.158.106.56/30 1; +219.158.106.60/31 1; +219.158.106.64/31 1; +219.158.106.84/31 1; +219.158.106.180/30 1; +219.158.106.184/31 1; +219.158.107.30/31 1; +219.158.107.60/31 1; +219.158.107.84/30 1; +219.158.107.88/30 1; +219.158.107.124/30 1; +219.158.107.128/28 1; +219.158.107.144/31 1; +219.158.107.220/31 1; +219.158.107.232/29 1; +219.158.107.240/28 1; +219.158.108.0/28 1; +219.158.108.16/29 1; +219.158.108.24/30 1; +219.158.108.28/31 1; +219.158.108.32/31 1; +219.158.108.96/30 1; +219.158.108.100/31 1; +219.158.108.104/30 1; +219.158.108.108/31 1; +219.158.109.84/30 1; +219.158.109.88/31 1; +219.158.109.92/31 1; +219.158.109.128/31 1; +219.158.109.196/30 1; +219.158.109.200/31 1; +219.158.109.248/31 1; +219.158.110.12/31 1; +219.158.110.16/31 1; +219.158.110.28/31 1; +219.158.110.44/31 1; +219.158.110.92/30 1; +219.158.110.96/31 1; +219.158.111.24/31 1; +219.158.111.56/31 1; +219.158.112.46/31 1; +219.158.112.216/31 1; +219.158.116.216/29 1; +219.158.116.224/30 1; +219.158.116.228/31 1; +219.158.117.140/30 1; +219.222.0.0/15 1; +219.224.102.224/30 1; +219.227.0.0/16 1; +219.232.160.0/19 1; +219.234.96.0/19 1; +219.235.16.0/20 1; +219.235.208.0/20 1; +219.243.239.0/24 1; +219.243.242.0/24 1; +220.112.0.0/18 1; +220.112.192.0/20 1; +220.112.224.0/19 1; +220.113.140.0/22 1; +220.113.150.0/23 1; +220.113.152.0/21 1; +220.113.160.0/21 1; +220.113.224.0/19 1; +220.114.32.0/20 1; +220.114.112.0/20 1; +220.114.204.0/22 1; +220.114.208.0/20 1; +220.114.224.0/21 1; +220.114.252.0/22 1; +220.115.0.0/21 1; +220.115.32.0/19 1; +220.115.144.0/20 1; +220.115.160.0/19 1; +220.115.224.0/22 1; +220.152.128.0/17 1; +220.198.0.0/15 1; +220.205.90.0/23 1; +220.205.92.0/22 1; +220.205.96.0/21 1; +220.206.243.0/24 1; +220.206.244.0/24 1; +220.207.24.0/21 1; +220.207.32.0/20 1; +220.207.48.0/21 1; +220.207.160.0/21 1; +220.207.212.0/22 1; +220.207.216.0/22 1; +220.231.128.0/18 1; +220.231.192.0/19 1; +220.231.224.0/22 1; +220.231.228.0/23 1; +220.231.230.0/24 1; +220.231.236.0/22 1; +220.231.240.0/20 1; +220.242.0.0/24 1; +220.242.12.0/23 1; +220.242.14.0/24 1; +220.242.17.0/24 1; +220.242.18.0/23 1; +220.242.20.0/24 1; +220.242.32.0/20 1; +220.242.48.0/23 1; +220.242.55.0/24 1; +220.242.56.0/22 1; +220.242.60.0/23 1; +220.242.62.0/24 1; +220.242.64.0/19 1; +220.242.96.0/20 1; +220.242.112.0/21 1; +220.242.120.0/22 1; +220.242.124.0/23 1; +220.242.126.0/24 1; +220.242.149.0/24 1; +220.242.158.0/23 1; +220.242.160.0/22 1; +220.242.164.0/24 1; +220.242.166.0/24 1; +220.242.169.0/24 1; +220.242.170.0/24 1; +220.242.173.0/24 1; +220.242.174.0/24 1; +220.242.182.0/23 1; +220.242.184.0/23 1; +220.242.187.0/24 1; +220.242.189.0/24 1; +220.242.190.0/24 1; +220.242.192.0/23 1; +220.242.197.0/24 1; +220.242.198.0/23 1; +220.242.200.0/22 1; +220.242.205.0/24 1; +220.242.206.0/23 1; +220.242.208.0/20 1; +220.242.224.0/19 1; +220.243.0.0/17 1; +220.243.204.0/24 1; +220.243.214.0/24 1; +220.243.217.0/24 1; +220.243.218.0/24 1; +220.247.140.0/22 1; +220.249.192.0/18 1; +221.4.0.0/16 1; +221.5.0.0/17 1; +221.172.0.0/16 1; +221.176.15.6/31 1; +221.176.15.210/31 1; +221.176.15.216/31 1; +221.176.15.220/31 1; +221.176.17.8/30 1; +221.176.17.168/29 1; +221.176.17.182/31 1; +221.176.17.250/31 1; +221.176.17.252/30 1; +221.176.18.0/28 1; +221.176.18.16/29 1; +221.176.18.24/31 1; +221.176.18.28/31 1; +221.176.18.36/31 1; +221.176.18.46/31 1; +221.176.18.56/29 1; +221.176.18.64/27 1; +221.176.18.96/28 1; +221.176.18.112/30 1; +221.176.18.142/31 1; +221.176.18.146/31 1; +221.176.18.164/30 1; +221.176.18.180/31 1; +221.176.18.184/30 1; +221.176.18.188/31 1; +221.176.18.196/31 1; +221.176.18.200/30 1; +221.176.18.220/30 1; +221.176.18.224/27 1; +221.176.19.32/28 1; +221.176.19.70/31 1; +221.176.19.74/31 1; +221.176.19.78/31 1; +221.176.19.80/29 1; +221.176.19.90/31 1; +221.176.19.92/30 1; +221.176.19.96/29 1; +221.176.19.188/30 1; +221.176.19.192/28 1; +221.176.19.208/29 1; +221.176.19.240/30 1; +221.176.20.0/29 1; +221.176.20.14/31 1; +221.176.20.16/29 1; +221.176.20.86/31 1; +221.176.20.94/32 1; +221.176.20.124/31 1; +221.176.20.254/31 1; +221.176.21.10/31 1; +221.176.21.18/31 1; +221.176.22.6/31 1; +221.176.22.76/31 1; +221.176.22.92/30 1; +221.176.22.96/27 1; +221.176.22.128/29 1; +221.176.22.136/30 1; +221.176.22.156/30 1; +221.176.22.160/30 1; +221.176.22.180/30 1; +221.176.22.184/29 1; +221.176.22.202/31 1; +221.176.22.208/28 1; +221.176.22.224/30 1; +221.176.22.228/31 1; +221.176.22.232/29 1; +221.176.22.240/28 1; +221.176.23.0/28 1; +221.176.23.60/30 1; +221.176.23.64/28 1; +221.176.23.80/30 1; +221.176.23.84/31 1; +221.176.23.88/31 1; +221.176.23.92/31 1; +221.176.23.100/30 1; +221.176.23.104/31 1; +221.176.23.108/30 1; +221.176.23.112/30 1; +221.176.23.172/30 1; +221.176.23.176/28 1; +221.176.23.192/26 1; +221.176.24.0/25 1; +221.176.24.128/26 1; +221.176.24.192/27 1; +221.176.24.224/28 1; +221.176.24.240/31 1; +221.176.24.244/31 1; +221.176.26.200/29 1; +221.176.26.208/30 1; +221.176.27.116/30 1; +221.176.32.0/20 1; +221.176.51.0/24 1; +221.176.52.52/30 1; +221.176.52.56/29 1; +221.176.52.64/30 1; +221.176.53.0/24 1; +221.176.54.0/24 1; +221.176.64.0/20 1; +221.177.64.0/19 1; +221.177.224.0/22 1; +221.177.232.0/24 1; +221.177.253.0/24 1; +221.179.0.0/17 1; +221.183.9.84/31 1; +221.183.9.88/31 1; +221.183.9.142/31 1; +221.183.9.168/31 1; +221.183.10.90/31 1; +221.183.10.122/31 1; +221.183.10.170/31 1; +221.183.10.174/31 1; +221.183.11.32/31 1; +221.183.11.52/31 1; +221.183.11.64/31 1; +221.183.11.72/29 1; +221.183.11.80/29 1; +221.183.11.110/31 1; +221.183.11.142/31 1; +221.183.11.232/31 1; +221.183.12.56/30 1; +221.183.12.116/30 1; +221.183.12.120/29 1; +221.183.12.128/30 1; +221.183.12.144/31 1; +221.183.12.248/29 1; +221.183.13.48/29 1; +221.183.13.64/29 1; +221.183.13.116/30 1; +221.183.13.120/30 1; +221.183.13.168/29 1; +221.183.13.176/29 1; +221.183.13.200/29 1; +221.183.13.224/29 1; +221.183.14.56/29 1; +221.183.14.120/29 1; +221.183.14.128/28 1; +221.183.14.144/29 1; +221.183.14.210/31 1; +221.183.14.214/31 1; +221.183.14.216/29 1; +221.183.14.224/29 1; +221.183.14.232/30 1; +221.183.15.12/30 1; +221.183.15.52/30 1; +221.183.15.56/30 1; +221.183.15.112/28 1; +221.183.18.68/30 1; +221.183.18.72/29 1; +221.183.18.80/28 1; +221.183.18.96/27 1; +221.183.18.128/25 1; +221.183.19.2/31 1; +221.183.19.4/30 1; +221.183.19.8/29 1; +221.183.19.112/30 1; +221.183.19.156/31 1; +221.183.19.204/30 1; +221.183.19.208/30 1; +221.183.19.232/29 1; +221.183.19.240/30 1; +221.183.19.244/31 1; +221.183.20.124/30 1; +221.183.20.130/31 1; +221.183.20.164/30 1; +221.183.20.168/29 1; +221.183.20.176/29 1; +221.183.20.184/30 1; +221.183.20.212/30 1; +221.183.20.216/30 1; +221.183.20.244/31 1; +221.183.20.248/31 1; +221.183.20.252/31 1; +221.183.21.8/31 1; +221.183.21.12/31 1; +221.183.21.26/31 1; +221.183.21.190/31 1; +221.183.21.202/31 1; +221.183.22.14/31 1; +221.183.22.24/30 1; +221.183.22.28/31 1; +221.183.22.32/30 1; +221.183.22.80/31 1; +221.183.22.84/31 1; +221.183.22.92/31 1; +221.183.22.96/31 1; +221.183.22.128/31 1; +221.183.22.196/31 1; +221.183.22.212/31 1; +221.183.22.224/31 1; +221.183.22.228/31 1; +221.183.24.140/30 1; +221.183.24.144/30 1; +221.183.24.212/30 1; +221.183.25.72/29 1; +221.183.25.80/28 1; +221.183.25.96/28 1; +221.183.25.112/29 1; +221.183.25.120/30 1; +221.183.25.204/30 1; +221.183.26.48/29 1; +221.183.26.56/30 1; +221.183.26.62/31 1; +221.183.26.108/30 1; +221.183.26.112/28 1; +221.183.26.128/25 1; +221.183.27.0/27 1; +221.183.27.32/29 1; +221.183.27.244/30 1; +221.183.27.248/30 1; +221.183.36.100/30 1; +221.183.36.104/29 1; +221.183.36.112/31 1; +221.183.36.140/30 1; +221.183.36.144/28 1; +221.183.36.160/29 1; +221.183.36.168/31 1; +221.183.37.112/28 1; +221.183.37.128/29 1; +221.183.37.136/30 1; +221.183.38.124/30 1; +221.183.38.128/28 1; +221.183.38.156/30 1; +221.183.38.160/28 1; +221.183.38.176/30 1; +221.183.39.144/28 1; +221.183.39.160/28 1; +221.183.39.176/29 1; +221.183.39.184/30 1; +221.183.39.188/31 1; +221.183.39.192/28 1; +221.183.40.46/31 1; +221.183.40.204/30 1; +221.183.40.208/29 1; +221.183.40.216/31 1; +221.183.40.220/30 1; +221.183.40.224/31 1; +221.183.40.228/31 1; +221.183.40.232/31 1; +221.183.40.236/31 1; +221.183.40.240/31 1; +221.183.40.244/30 1; +221.183.40.248/29 1; +221.183.41.0/28 1; +221.183.41.16/29 1; +221.183.41.24/30 1; +221.183.41.28/31 1; +221.183.41.32/31 1; +221.183.41.36/31 1; +221.183.41.40/31 1; +221.183.41.44/31 1; +221.183.41.48/31 1; +221.183.41.52/30 1; +221.183.41.56/29 1; +221.183.41.64/28 1; +221.183.41.80/29 1; +221.183.41.88/31 1; +221.183.46.184/29 1; +221.183.46.192/27 1; +221.183.46.224/28 1; +221.183.46.240/30 1; +221.183.46.244/31 1; +221.183.49.192/27 1; +221.183.49.224/29 1; +221.183.49.232/31 1; +221.183.49.236/30 1; +221.183.50.0/24 1; +222.16.0.0/16 1; +222.17.0.0/17 1; +222.17.160.0/21 1; +222.17.169.0/24 1; +222.17.170.0/23 1; +222.17.172.0/22 1; +222.50.0.0/16 1; +222.125.0.0/16 1; +222.126.128.0/20 1; +222.126.144.0/21 1; +222.126.152.0/22 1; +222.126.156.0/23 1; +222.126.158.0/24 1; +222.126.159.0/25 1; +222.126.159.128/26 1; +222.126.159.192/27 1; +222.126.159.224/28 1; +222.126.159.240/29 1; +222.126.172.0/23 1; +222.126.178.0/23 1; +222.126.180.0/22 1; +222.126.184.0/21 1; +222.126.192.0/19 1; +222.126.224.0/21 1; +222.126.232.0/22 1; +222.126.236.0/23 1; +222.192.186.64/26 1; +222.192.186.192/26 1; +222.200.0.0/15 1; +222.202.0.0/16 1; +222.203.64.0/18 1; +222.203.128.0/18 1; +222.203.192.0/21 1; +222.203.200.0/22 1; +222.248.0.0/16 1; +223.27.184.0/22 1; +223.73.0.0/16 1; +223.74.0.0/16 1; +223.103.1.0/24 1; +223.103.140.0/22 1; +223.103.144.0/21 1; +223.103.204.0/24 1; +223.104.1.0/24 1; +223.104.58.0/23 1; +223.104.60.0/22 1; +223.104.64.0/20 1; +223.104.80.0/22 1; +223.104.84.0/24 1; +223.104.253.0/24 1; +223.104.255.0/24 1; +223.192.0.0/16 1; +223.208.128.0/17 1; +223.209.64.0/18 1; +223.210.64.0/18 1; +223.210.224.0/19 1; +223.211.0.0/17 1; +223.211.224.0/19 1; +223.212.0.0/15 1; +2001:250:3001::/48 1; +2001:250:3002::/47 1; +2001:250:3c00::/46 1; +2001:250:3c08::/48 1; +2001:67c:1230::/46 1; +2001:da8:2018::/47 1; +2001:df0:423::/48 1; +2001:df0:ac40::/48 1; +2001:df0:bf80::/48 1; +2001:df1:4580::/48 1; +2001:df1:5b80::/48 1; +2001:df1:5fc0::/48 1; +2001:df1:6180::/48 1; +2001:df1:a100::/48 1; +2001:df3:a680::/48 1; +2001:df6:6800::/48 1; +2001:df6:f400::/48 1; +2400:3160::/32 1; +2400:4e00::/32 1; +2400:5e80::/32 1; +2400:6000::/32 1; +2400:86e0::/32 1; +2400:8920::/32 1; +2400:b620::/32 1; +2400:bac0::/32 1; +2400:d200::/32 1; +2400:da60::/32 1; +2400:edc0::/32 1; +2400:ee00::/32 1; +2400:ef40::/32 1; +2400:f720::/32 1; +2401:e00::/32 1; +2401:11c0::/32 1; +2401:18c0::/32 1; +2401:1940::/32 1; +2401:19c0::/32 1; +2401:1a40::/32 1; +2401:1ac0::/32 1; +2401:2600::/32 1; +2401:2a00::/32 1; +2401:3c20::/32 1; +2401:7a00::/32 1; +2401:7cc0::/32 1; +2401:92a0::/32 1; +2401:9600::/32 1; +2401:a3c0::/32 1; +2401:b4e0::/32 1; +2401:bd60::/32 1; +2401:cbe0::/32 1; +2401:d7e0::/32 1; +2401:f0e0::/32 1; +2402:3240::/32 1; +2402:33c0::/32 1; +2402:4e00::/32 1; +2402:5340::/32 1; +2402:62c0::/32 1; +2402:7d00::/32 1; +2402:c280::/32 1; +2402:d2c0::/32 1; +2402:d780::/32 1; +2402:ed80::/32 1; +2402:f8c0:100::/40 1; +2402:f8c0:200::/39 1; +2402:f8c0:400::/38 1; +2402:f8c0:800::/37 1; +2402:f8c0:1000::/36 1; +2402:f8c0:2000::/35 1; +2402:f8c0:4000::/34 1; +2402:f8c0:8000::/33 1; +2403:800::/31 1; +2403:1c80::/32 1; +2403:2440::/32 1; +2403:2940::/32 1; +2403:2bc0::/32 1; +2403:3580::/32 1; +2403:5b40::/32 1; +2403:6d80::/32 1; +2403:7840::/32 1; +2403:c080::/32 1; +2404:158::/32 1; +2404:680::/32 1; +2404:1cc0::/32 1; +2404:1f40::/32 1; +2404:37c0::/32 1; +2404:7180::/32 1; +2404:7740::/32 1; +2404:7d00::/32 1; +2404:a080::/32 1; +2404:d080::/32 1; +2404:f4c0:5000::/36 1; +2404:f4c0:6000::/35 1; +2404:f4c0:8000::/35 1; +2404:f4c0:a000::/47 1; +2405:80::/32 1; +2405:2ec0::/32 1; +2405:3b01::/32 1; +2405:3b02::/31 1; +2405:3b04::/30 1; +2405:3b08::/29 1; +2405:3b10::/28 1; +2405:3b20::/27 1; +2405:3b40::/26 1; +2405:44c0::/32 1; +2405:69c0::/32 1; +2405:7fc0::/32 1; +2405:84c0::/36 1; +2405:84c0:6000::/37 1; +2405:84c0:6a00::/40 1; +2405:84c0:6d00::/40 1; +2405:84c0:7000::/36 1; +2405:84c0:8100::/40 1; +2405:84c0:8200::/39 1; +2405:84c0:8400::/38 1; +2405:84c0:8800::/37 1; +2405:84c0:9000::/38 1; +2405:84c0:9400::/40 1; +2405:84c0:9900::/40 1; +2405:84c0:9b00::/40 1; +2405:84c0:9d00::/40 1; +2405:84c0:a000::/35 1; +2405:84c0:c000::/35 1; +2405:84c0:e000::/36 1; +2405:84c0:f000::/37 1; +2405:84c0:f800::/38 1; +2405:84c0:fc00::/40 1; +2405:84c0:fe00::/39 1; +2405:9b80::/32 1; +2405:9e00::/32 1; +2405:aa80::/32 1; +2405:b300::/32 1; +2405:bb00::/32 1; +2405:ff80::/32 1; +2406:80::/32 1; +2406:440::/32 1; +2406:840:78::/48 1; +2406:840:410::/44 1; +2406:840:420::/48 1; +2406:840:5102::/47 1; +2406:840:5104::/46 1; +2406:840:5108::/45 1; +2406:840:5110::/44 1; +2406:840:5120::/43 1; +2406:840:5140::/42 1; +2406:840:5180::/41 1; +2406:840:5200::/39 1; +2406:840:5400::/38 1; +2406:840:9201::/48 1; +2406:840:9202::/47 1; +2406:840:9204::/46 1; +2406:840:9208::/45 1; +2406:840:9210::/44 1; +2406:840:9220::/43 1; +2406:840:9240::/42 1; +2406:840:9280::/41 1; +2406:840:9300::/40 1; +2406:840:9400::/40 1; +2406:840:9500::/41 1; +2406:840:9580::/43 1; +2406:840:9704::/46 1; +2406:840:9708::/45 1; +2406:840:9710::/44 1; +2406:840:9720::/43 1; +2406:840:9740::/42 1; +2406:840:9780::/41 1; +2406:840:9800::/48 1; +2406:840:e030::/44 1; +2406:840:eb80::/41 1; +2406:840:ec00::/41 1; +2406:840:ec80::/42 1; +2406:840:edd0::/44 1; +2406:840:ede0::/43 1; +2406:840:ee00::/39 1; +2406:840:f000::/41 1; +2406:840:f080::/43 1; +2406:840:f0a0::/48 1; +2406:840:fd04::/46 1; +2406:840:fd08::/47 1; +2406:840:fd0b::/48 1; +2406:840:fea0::/43 1; +2406:2980::/32 1; +2406:2a80::/32 1; +2406:2b80::/32 1; +2406:2c80::/32 1; +2406:2d80::/32 1; +2406:2e80::/32 1; +2406:2f80::/32 1; +2406:3080::/32 1; +2406:3180::/32 1; +2406:3280::/32 1; +2406:3380::/32 1; +2406:3440::/32 1; +2406:3480::/32 1; +2406:34c0::/32 1; +2406:3580::/32 1; +2406:3680::/32 1; +2406:3700::/32 1; +2406:3780::/32 1; +2406:3d80::/32 1; +2406:3e80::/32 1; +2406:5280::/32 1; +2406:5380::/32 1; +2406:5480::/32 1; +2406:5580::/32 1; +2406:5ac0::/32 1; +2406:5b40::/32 1; +2406:6280::/32 1; +2406:6480::/32 1; +2406:6580::/32 1; +2406:6d80::/32 1; +2406:7280::/32 1; +2406:7a80::/32 1; +2406:7b80::/32 1; +2406:7c80::/32 1; +2406:7d80::/32 1; +2406:7e80::/32 1; +2406:8500::/32 1; +2406:9380::/32 1; +2406:9480::/32 1; +2406:9e80::/32 1; +2406:9f80::/32 1; +2406:a080::/32 1; +2406:a180::/32 1; +2406:a280::/32 1; +2406:a380::/32 1; +2406:aac0::/32 1; +2406:bb80::/32 1; +2406:bc80::/32 1; +2406:bd80::/32 1; +2406:be80::/32 1; +2406:e3c0::/32 1; +2406:fe80::/32 1; +2407:480::/32 1; +2407:580::/32 1; +2407:2840::/32 1; +2407:53c0::/32 1; +2407:5500::/32 1; +2407:8f40::/32 1; +2407:9980::/32 1; +2407:9f00::/32 1; +2407:b080::/32 1; +2407:b380::/32 1; +2407:c080::/37 1; +2407:c080:4000::/37 1; +2407:c080:5000::/37 1; +2407:c900::/32 1; +2408:4003::/32 1; +2408:4008::/32 1; +2408:400d::/33 1; +2408:400d:8000::/40 1; +2408:80fa:7580::/42 1; +2408:8456:a10::/44 1; +2408:8456:a20::/43 1; +2408:8456:3000::/44 1; +2408:8456:3a00::/44 1; +2408:8456:a040::/42 1; +2408:8456:a080::/41 1; +2408:8456:a100::/40 1; +2408:8459:30::/44 1; +2408:8459:620::/44 1; +2408:8459:640::/44 1; +2408:8459:830::/44 1; +2408:8459:a60::/43 1; +2408:8459:a80::/44 1; +2408:8459:c10::/44 1; +2408:8459:c20::/44 1; +2408:8459:c40::/44 1; +2408:8459:1410::/44 1; +2408:8459:1430::/44 1; +2408:8459:1440::/44 1; +2408:8459:1460::/43 1; +2408:8459:1480::/44 1; +2408:8459:1810::/44 1; +2408:8459:1820::/44 1; +2408:8459:1870::/44 1; +2408:8459:1880::/41 1; +2408:8459:1970::/44 1; +2408:8459:1980::/41 1; +2408:8459:1a70::/44 1; +2408:8459:1a80::/41 1; +2408:8459:1b70::/44 1; +2408:8459:1b80::/41 1; +2408:8459:1c70::/44 1; +2408:8459:1c80::/41 1; +2408:8459:1d70::/44 1; +2408:8459:1d80::/41 1; +2408:8459:1e70::/44 1; +2408:8459:1e80::/41 1; +2408:8459:1f70::/44 1; +2408:8459:1f80::/41 1; +2408:8459:2070::/44 1; +2408:8459:2080::/41 1; +2408:8459:2170::/44 1; +2408:8459:2180::/41 1; +2408:8459:2c50::/44 1; +2408:8459:2c60::/44 1; +2408:8459:2e10::/44 1; +2408:8459:2e20::/43 1; +2408:8459:2e40::/43 1; +2408:8459:2e60::/44 1; +2408:8459:3010::/44 1; +2408:8459:3020::/43 1; +2408:8459:3040::/43 1; +2408:8459:3060::/44 1; +2408:8459:3230::/44 1; +2408:8459:3250::/44 1; +2408:8459:3260::/44 1; +2408:8459:3410::/44 1; +2408:8459:3420::/43 1; +2408:8459:3440::/43 1; +2408:8459:3460::/44 1; +2408:8459:3650::/44 1; +2408:8459:3660::/44 1; +2408:8459:3850::/44 1; +2408:8459:3860::/44 1; +2408:8459:3a50::/44 1; +2408:8459:3a60::/44 1; +2408:8459:3c50::/44 1; +2408:8459:3c60::/44 1; +2408:8459:4010::/44 1; +2408:8459:4020::/43 1; +2408:8459:4040::/44 1; +2408:8459:4c80::/42 1; +2408:8459:54c0::/42 1; +2408:8459:5500::/40 1; +2408:8459:6210::/44 1; +2408:8459:6220::/44 1; +2408:8459:6470::/44 1; +2408:8459:6480::/41 1; +2408:8459:6500::/40 1; +2408:8459:6670::/44 1; +2408:8459:6680::/41 1; +2408:8459:6700::/40 1; +2408:8459:6870::/44 1; +2408:8459:6880::/41 1; +2408:8459:6900::/40 1; +2408:8459:6a70::/44 1; +2408:8459:6a80::/41 1; +2408:8459:6b00::/40 1; +2408:8459:6c70::/44 1; +2408:8459:6c80::/41 1; +2408:8459:6d00::/40 1; +2408:8459:6e10::/44 1; +2408:8459:6e20::/44 1; +2408:8459:6e70::/44 1; +2408:8459:6e80::/41 1; +2408:8459:6f00::/40 1; +2408:8459:7010::/44 1; +2408:8459:7020::/43 1; +2408:8459:7040::/42 1; +2408:8459:7080::/41 1; +2408:8459:7100::/40 1; +2408:8459:7270::/44 1; +2408:8459:7280::/41 1; +2408:8459:7300::/40 1; +2408:8459:7470::/44 1; +2408:8459:7480::/41 1; +2408:8459:7500::/40 1; +2408:8459:7670::/44 1; +2408:8459:7680::/41 1; +2408:8459:7700::/40 1; +2408:8459:7a70::/44 1; +2408:8459:7a80::/41 1; +2408:8459:7b00::/40 1; +2408:8459:7c70::/44 1; +2408:8459:7c80::/41 1; +2408:8459:7d00::/40 1; +2408:8459:7e70::/44 1; +2408:8459:7e80::/41 1; +2408:8459:7f00::/40 1; +2408:8459:8070::/44 1; +2408:8459:8080::/41 1; +2408:8459:8100::/40 1; +2408:8459:8230::/44 1; +2408:8459:8240::/42 1; +2408:8459:8280::/41 1; +2408:8459:8300::/40 1; +2408:8459:8470::/44 1; +2408:8459:8480::/41 1; +2408:8459:8500::/40 1; +2408:8459:8670::/44 1; +2408:8459:8680::/41 1; +2408:8459:8700::/40 1; +2408:8459:8870::/44 1; +2408:8459:8880::/41 1; +2408:8459:8900::/40 1; +2408:8459:8a70::/44 1; +2408:8459:8a80::/41 1; +2408:8459:8b00::/40 1; +2408:8459:8c70::/44 1; +2408:8459:8c80::/41 1; +2408:8459:8d00::/40 1; +2408:8459:8e70::/44 1; +2408:8459:8e80::/41 1; +2408:8459:8f00::/40 1; +2408:8459:9070::/44 1; +2408:8459:9080::/41 1; +2408:8459:9100::/40 1; +2408:8459:9c70::/44 1; +2408:8459:9c80::/41 1; +2408:8459:9d00::/40 1; +2408:8459:9e70::/44 1; +2408:8459:9e80::/41 1; +2408:8459:9f00::/40 1; +2408:8459:a010::/44 1; +2408:8459:a020::/44 1; +2408:8459:a070::/44 1; +2408:8459:a080::/41 1; +2408:8459:a100::/40 1; +2408:8459:a270::/44 1; +2408:8459:a280::/41 1; +2408:8459:a300::/40 1; +2408:8459:a470::/44 1; +2408:8459:a480::/41 1; +2408:8459:a500::/40 1; +2408:8459:e230::/44 1; +2408:8459:e240::/42 1; +2408:8459:e280::/41 1; +2408:8459:e300::/40 1; +2408:8459:e410::/44 1; +2408:8459:e420::/44 1; +2408:8459:f170::/44 1; +2408:8459:f180::/41 1; +2408:8459:f200::/40 1; +2408:8956::/44 1; +2408:8956:200::/44 1; +2408:8956:250::/44 1; +2408:8956:260::/43 1; +2408:8956:2c0::/44 1; +2408:8956:400::/44 1; +2408:8956:600::/44 1; +2408:8956:1950::/44 1; +2408:8956:1960::/44 1; +2408:8956:7a40::/44 1; +2408:8956:8080::/44 1; +2408:8956:8240::/44 1; +2409:2000:1000::/36 1; +2409:2000:2000::/35 1; +2409:2000:4000::/34 1; +2409:2000:8000::/33 1; +2409:2001::/32 1; +2409:2002::/31 1; +2409:2004::/30 1; +2409:2008::/29 1; +2409:2010::/28 1; +2409:2020::/27 1; +2409:2040::/26 1; +2409:2080::/25 1; +2409:2100::/24 1; +2409:2200::/23 1; +2409:2400::/22 1; +2409:8000:100::/40 1; +2409:8000:200::/39 1; +2409:8000:400::/38 1; +2409:8000:900::/40 1; +2409:8000:a00::/39 1; +2409:8000:c00::/38 1; +2409:8000:1100::/40 1; +2409:8000:1200::/39 1; +2409:8000:1400::/38 1; +2409:8000:1900::/40 1; +2409:8000:1a00::/39 1; +2409:8000:1c00::/38 1; +2409:8000:2100::/40 1; +2409:8000:2200::/39 1; +2409:8000:2400::/38 1; +2409:8000:2c00::/38 1; +2409:8000:3000::/37 1; +2409:8000:3900::/40 1; +2409:8000:3a00::/39 1; +2409:8000:3c00::/38 1; +2409:8000:4000::/36 1; +2409:8000:5000::/40 1; +2409:8000:5200::/39 1; +2409:8000:5400::/38 1; +2409:8000:5900::/40 1; +2409:8000:5b00::/40 1; +2409:8000:5d00::/40 1; +2409:8000:5e00::/39 1; +2409:8000:6000::/35 1; +2409:8000:8000::/33 1; +2409:8001::/32 1; +2409:8002:100::/40 1; +2409:8002:200::/39 1; +2409:8002:400::/38 1; +2409:8002:900::/40 1; +2409:8002:a00::/39 1; +2409:8002:c00::/38 1; +2409:8002:1100::/40 1; +2409:8002:1200::/39 1; +2409:8002:1400::/38 1; +2409:8002:1900::/40 1; +2409:8002:1a00::/39 1; +2409:8002:1c00::/38 1; +2409:8002:2100::/40 1; +2409:8002:2200::/39 1; +2409:8002:2400::/38 1; +2409:8002:2a00::/40 1; +2409:8002:2c00::/38 1; +2409:8002:3000::/36 1; +2409:8002:4000::/34 1; +2409:8002:8000::/33 1; +2409:8003::/35 1; +2409:8003:2000::/37 1; +2409:8003:2800::/40 1; +2409:8003:2a00::/40 1; +2409:8003:2c00::/38 1; +2409:8003:3000::/36 1; +2409:8003:4000::/34 1; +2409:8003:8000::/33 1; +2409:8006::/31 1; +2409:8009::/32 1; +2409:800a::/32 1; +2409:800b::/35 1; +2409:800b:2000::/37 1; +2409:800b:2800::/38 1; +2409:800b:2d00::/40 1; +2409:800b:2e00::/39 1; +2409:800b:3000::/36 1; +2409:800b:4000::/34 1; +2409:800b:8000::/33 1; +2409:8010::/30 1; +2409:8017:2900::/40 1; +2409:8018:4000::/34 1; +2409:8018:8000::/33 1; +2409:8019:4000::/34 1; +2409:8019:8000::/33 1; +2409:8021::/32 1; +2409:8022::/31 1; +2409:8024::/30 1; +2409:8028:100::/40 1; +2409:8028:200::/39 1; +2409:8028:400::/38 1; +2409:8028:900::/40 1; +2409:8028:a00::/39 1; +2409:8028:c00::/38 1; +2409:8028:1200::/39 1; +2409:8028:1400::/38 1; +2409:8028:1900::/40 1; +2409:8028:1a00::/39 1; +2409:8028:1c00::/38 1; +2409:8028:2100::/40 1; +2409:8028:2200::/39 1; +2409:8028:2400::/38 1; +2409:8028:2a00::/40 1; +2409:8028:2c00::/38 1; +2409:8028:3100::/40 1; +2409:8028:3200::/39 1; +2409:8028:3400::/38 1; +2409:8028:3900::/40 1; +2409:8028:3a00::/39 1; +2409:8028:3c00::/38 1; +2409:8028:4000::/34 1; +2409:8028:8000::/33 1; +2409:8029::/32 1; +2409:802a::/31 1; +2409:802c::/31 1; +2409:802e:800::/40 1; +2409:802f:800::/40 1; +2409:802f:2900::/40 1; +2409:8030::/29 1; +2409:8038::/30 1; +2409:803c:100::/40 1; +2409:803c:200::/39 1; +2409:803c:400::/38 1; +2409:803c:900::/40 1; +2409:803c:a00::/39 1; +2409:803c:c00::/38 1; +2409:803c:1100::/40 1; +2409:803c:1200::/39 1; +2409:803c:1400::/38 1; +2409:803c:1900::/40 1; +2409:803c:1a00::/39 1; +2409:803c:1c00::/38 1; +2409:803c:2100::/40 1; +2409:803c:2200::/39 1; +2409:803c:2400::/38 1; +2409:803c:2c00::/38 1; +2409:803c:3100::/40 1; +2409:803c:3200::/39 1; +2409:803c:3400::/38 1; +2409:803c:3900::/40 1; +2409:803c:3a00::/39 1; +2409:803c:3c00::/38 1; +2409:803c:4000::/34 1; +2409:803c:8000::/33 1; +2409:803d::/35 1; +2409:803d:2000::/37 1; +2409:803d:2800::/40 1; +2409:803d:2c00::/38 1; +2409:803d:3000::/36 1; +2409:803d:4000::/34 1; +2409:803d:8000::/33 1; +2409:803e::/31 1; +2409:8040::/30 1; +2409:804b:800::/40 1; +2409:804c::/30 1; +2409:8050:100::/40 1; +2409:8050:200::/39 1; +2409:8050:400::/38 1; +2409:8050:900::/40 1; +2409:8050:a00::/39 1; +2409:8050:c00::/38 1; +2409:8050:1100::/40 1; +2409:8050:1200::/39 1; +2409:8050:1400::/38 1; +2409:8050:1900::/40 1; +2409:8050:1a00::/39 1; +2409:8050:1c00::/38 1; +2409:8050:2100::/40 1; +2409:8050:2200::/39 1; +2409:8050:2400::/38 1; +2409:8050:2c00::/38 1; +2409:8050:3100::/40 1; +2409:8050:3200::/39 1; +2409:8050:3400::/38 1; +2409:8050:3900::/40 1; +2409:8050:3a00::/39 1; +2409:8050:3c00::/38 1; +2409:8050:4000::/34 1; +2409:8050:8000::/33 1; +2409:8051:100::/40 1; +2409:8051:200::/39 1; +2409:8051:400::/38 1; +2409:8051:900::/40 1; +2409:8051:a00::/39 1; +2409:8051:c00::/38 1; +2409:8051:1100::/40 1; +2409:8051:1200::/39 1; +2409:8051:1400::/38 1; +2409:8051:1900::/40 1; +2409:8051:1a00::/39 1; +2409:8051:1c00::/38 1; +2409:8051:2100::/40 1; +2409:8051:2200::/39 1; +2409:8051:2400::/38 1; +2409:8051:2c00::/38 1; +2409:8051:3100::/40 1; +2409:8051:3200::/39 1; +2409:8051:3400::/38 1; +2409:8051:3900::/40 1; +2409:8051:3a00::/39 1; +2409:8051:3c00::/38 1; +2409:8051:4000::/34 1; +2409:8051:8000::/33 1; +2409:8052:100::/40 1; +2409:8052:200::/39 1; +2409:8052:400::/38 1; +2409:8052:900::/40 1; +2409:8052:a00::/39 1; +2409:8052:c00::/38 1; +2409:8052:1100::/40 1; +2409:8052:1200::/39 1; +2409:8052:1400::/38 1; +2409:8052:1900::/40 1; +2409:8052:1a00::/39 1; +2409:8052:1c00::/38 1; +2409:8052:2100::/40 1; +2409:8052:2200::/39 1; +2409:8052:2400::/38 1; +2409:8052:2c00::/38 1; +2409:8052:3100::/40 1; +2409:8052:3200::/39 1; +2409:8052:3400::/38 1; +2409:8052:3900::/40 1; +2409:8052:3a00::/39 1; +2409:8052:3c00::/38 1; +2409:8052:4000::/34 1; +2409:8052:8000::/33 1; +2409:8053:100::/40 1; +2409:8053:200::/39 1; +2409:8053:400::/38 1; +2409:8053:900::/40 1; +2409:8053:a00::/39 1; +2409:8053:c00::/38 1; +2409:8053:1100::/40 1; +2409:8053:1200::/39 1; +2409:8053:1400::/38 1; +2409:8053:1900::/40 1; +2409:8053:1a00::/39 1; +2409:8053:1c00::/38 1; +2409:8053:2100::/40 1; +2409:8053:2200::/39 1; +2409:8053:2400::/38 1; +2409:8053:2c00::/38 1; +2409:8053:3100::/40 1; +2409:8053:3200::/39 1; +2409:8053:3400::/38 1; +2409:8053:3900::/40 1; +2409:8053:3a00::/39 1; +2409:8053:3c00::/38 1; +2409:8053:4000::/34 1; +2409:8053:8000::/33 1; +2409:8054::/32 1; +2409:8055::/35 1; +2409:8055:2000::/36 1; +2409:8055:3000::/42 1; +2409:8055:3040::/43 1; +2409:8055:3060::/45 1; +2409:8055:3068::/46 1; +2409:8055:306d::/48 1; +2409:8055:306e::/47 1; +2409:8055:3070::/44 1; +2409:8055:3080::/41 1; +2409:8055:3100::/40 1; +2409:8055:3200::/39 1; +2409:8055:3400::/38 1; +2409:8055:3800::/37 1; +2409:8055:4000::/34 1; +2409:8055:8000::/33 1; +2409:8056::/32 1; +2409:8057::/35 1; +2409:8057:2000::/36 1; +2409:8057:3000::/42 1; +2409:8057:3040::/43 1; +2409:8057:3060::/45 1; +2409:8057:3068::/46 1; +2409:8057:306d::/48 1; +2409:8057:306e::/47 1; +2409:8057:3070::/44 1; +2409:8057:3080::/41 1; +2409:8057:3100::/40 1; +2409:8057:3200::/39 1; +2409:8057:3400::/38 1; +2409:8057:3800::/37 1; +2409:8057:4000::/34 1; +2409:8057:8000::/33 1; +2409:8058::/29 1; +2409:8060::/29 1; +2409:8068::/31 1; +2409:806a::/35 1; +2409:806a:2000::/36 1; +2409:806a:3100::/40 1; +2409:806a:3200::/39 1; +2409:806a:3400::/38 1; +2409:806a:3800::/37 1; +2409:806a:4000::/34 1; +2409:806a:8000::/33 1; +2409:806b::/32 1; +2409:806c::/30 1; +2409:8070::/28 1; +2409:8080::/30 1; +2409:8084::/31 1; +2409:8086::/32 1; +2409:8087:300::/40 1; +2409:8087:1000::/38 1; +2409:8087:1b00::/40 1; +2409:8087:1c00::/39 1; +2409:8087:2900::/40 1; +2409:8087:2a00::/39 1; +2409:8087:2c00::/38 1; +2409:8087:3000::/37 1; +2409:8087:3800::/38 1; +2409:8087:3d00::/40 1; +2409:8087:3e00::/39 1; +2409:8087:4000::/38 1; +2409:8087:4432::/47 1; +2409:8087:4500::/40 1; +2409:8087:4600::/39 1; +2409:8087:4800::/37 1; +2409:8087:5100::/40 1; +2409:8087:5200::/39 1; +2409:8087:5400::/38 1; +2409:8087:5800::/37 1; +2409:8087:6000::/35 1; +2409:8087:8000::/33 1; +2409:8089::/32 1; +2409:808a::/31 1; +2409:808c::/30 1; +2409:8090::/28 1; +2409:80a0::/27 1; +2409:80c0::/26 1; +2409:8100::/28 1; +2409:8110::/29 1; +2409:8118::/30 1; +2409:811c::/31 1; +2409:8120::/27 1; +2409:8140::/26 1; +2409:8180::/25 1; +2409:8200::/28 1; +2409:8210::/29 1; +2409:8218::/30 1; +2409:821c::/31 1; +2409:8220::/27 1; +2409:8240::/26 1; +2409:8280::/25 1; +2409:8300::/28 1; +2409:8310::/29 1; +2409:8318::/30 1; +2409:831c::/31 1; +2409:8320::/27 1; +2409:8340::/26 1; +2409:8380::/25 1; +2409:8400::/28 1; +2409:8410::/29 1; +2409:8418::/30 1; +2409:841c::/31 1; +2409:8420::/27 1; +2409:8440::/26 1; +2409:8480::/25 1; +2409:8500::/28 1; +2409:8510::/29 1; +2409:8518::/30 1; +2409:851c::/31 1; +2409:8520::/27 1; +2409:8540::/26 1; +2409:8580::/25 1; +2409:8600::/28 1; +2409:8610::/29 1; +2409:8618::/30 1; +2409:861c::/31 1; +2409:8620::/27 1; +2409:8640::/26 1; +2409:8680::/25 1; +2409:8703::/32 1; +2409:8706::/31 1; +2409:8708::/31 1; +2409:870a::/32 1; +2409:8710::/30 1; +2409:8721::/32 1; +2409:8722::/31 1; +2409:8724::/30 1; +2409:872a::/31 1; +2409:872c::/30 1; +2409:8730::/29 1; +2409:8738::/30 1; +2409:873c:8a00::/39 1; +2409:873c:8c00::/38 1; +2409:873c:9000::/36 1; +2409:873c:a000::/35 1; +2409:873c:c000::/34 1; +2409:873d::/32 1; +2409:873e::/31 1; +2409:8740::/30 1; +2409:874c::/30 1; +2409:8754::/30 1; +2409:8758::/29 1; +2409:8760::/27 1; +2409:8780::/25 1; +2409:8800:100::/40 1; +2409:8800:200::/39 1; +2409:8800:400::/38 1; +2409:8800:800::/37 1; +2409:8800:1000::/36 1; +2409:8800:2000::/35 1; +2409:8800:4000::/34 1; +2409:8800:8000::/33 1; +2409:8801::/32 1; +2409:8802:100::/40 1; +2409:8802:200::/39 1; +2409:8802:400::/38 1; +2409:8802:800::/37 1; +2409:8802:1000::/36 1; +2409:8802:2000::/35 1; +2409:8802:4000::/34 1; +2409:8802:8000::/33 1; +2409:8803::/32 1; +2409:8804::/30 1; +2409:8808:100::/40 1; +2409:8808:200::/39 1; +2409:8808:400::/38 1; +2409:8808:800::/37 1; +2409:8808:1000::/36 1; +2409:8808:2000::/35 1; +2409:8808:4000::/34 1; +2409:8808:8000::/33 1; +2409:8809::/32 1; +2409:880a::/31 1; +2409:880c:100::/40 1; +2409:880c:200::/39 1; +2409:880c:400::/38 1; +2409:880c:800::/37 1; +2409:880c:1000::/36 1; +2409:880c:2000::/35 1; +2409:880c:4000::/34 1; +2409:880c:8000::/33 1; +2409:880d:100::/40 1; +2409:880d:200::/39 1; +2409:880d:400::/38 1; +2409:880d:800::/37 1; +2409:880d:1000::/36 1; +2409:880d:2000::/35 1; +2409:880d:4000::/34 1; +2409:880d:8000::/33 1; +2409:880e:100::/40 1; +2409:880e:200::/39 1; +2409:880e:400::/38 1; +2409:880e:800::/37 1; +2409:880e:1000::/36 1; +2409:880e:2000::/35 1; +2409:880e:4000::/34 1; +2409:880e:8000::/33 1; +2409:880f:100::/40 1; +2409:880f:200::/39 1; +2409:880f:400::/38 1; +2409:880f:800::/37 1; +2409:880f:1000::/36 1; +2409:880f:2000::/35 1; +2409:880f:4000::/34 1; +2409:880f:8000::/33 1; +2409:8810::/30 1; +2409:8814:100::/40 1; +2409:8814:200::/39 1; +2409:8814:400::/38 1; +2409:8814:800::/37 1; +2409:8814:1000::/36 1; +2409:8814:2000::/35 1; +2409:8814:4000::/34 1; +2409:8814:8000::/33 1; +2409:8815::/32 1; +2409:8816::/31 1; +2409:8818::/31 1; +2409:881a:100::/40 1; +2409:881a:200::/39 1; +2409:881a:400::/38 1; +2409:881a:800::/37 1; +2409:881a:1000::/36 1; +2409:881a:2000::/35 1; +2409:881a:4000::/34 1; +2409:881a:8000::/33 1; +2409:881b::/32 1; +2409:881c::/31 1; +2409:8820:100::/40 1; +2409:8820:200::/39 1; +2409:8820:400::/38 1; +2409:8820:800::/37 1; +2409:8820:1000::/36 1; +2409:8820:2000::/35 1; +2409:8820:4000::/34 1; +2409:8820:8000::/33 1; +2409:8821::/32 1; +2409:8822::/31 1; +2409:8824::/30 1; +2409:8828:100::/40 1; +2409:8828:200::/39 1; +2409:8828:400::/38 1; +2409:8828:800::/37 1; +2409:8828:1000::/36 1; +2409:8828:2000::/35 1; +2409:8828:4000::/34 1; +2409:8828:8000::/33 1; +2409:8829::/32 1; +2409:882a::/31 1; +2409:882c::/30 1; +2409:8830::/29 1; +2409:8838::/30 1; +2409:883c:100::/40 1; +2409:883c:200::/39 1; +2409:883c:400::/38 1; +2409:883c:800::/37 1; +2409:883c:1000::/36 1; +2409:883c:2000::/35 1; +2409:883c:4000::/34 1; +2409:883c:8000::/33 1; +2409:883d::/32 1; +2409:883e::/31 1; +2409:8840::/30 1; +2409:8844:100::/40 1; +2409:8844:200::/39 1; +2409:8844:400::/38 1; +2409:8844:800::/37 1; +2409:8844:1000::/36 1; +2409:8844:2000::/35 1; +2409:8844:4000::/34 1; +2409:8844:8000::/33 1; +2409:8845::/32 1; +2409:8846::/31 1; +2409:8848::/29 1; +2409:8850:100::/40 1; +2409:8850:200::/39 1; +2409:8850:400::/38 1; +2409:8850:800::/37 1; +2409:8850:1000::/36 1; +2409:8850:2000::/35 1; +2409:8850:4000::/34 1; +2409:8850:8000::/33 1; +2409:8851::/32 1; +2409:8852::/31 1; +2409:8854::/30 1; +2409:8858::/29 1; +2409:8860::/27 1; +2409:8880::/25 1; +2409:8910::/30 1; +2409:892d::/32 1; +2409:892e::/31 1; +2409:8930::/29 1; +2409:8938::/30 1; +2409:893e::/31 1; +2409:8940::/30 1; +2409:894c::/32 1; +2409:894d::/35 1; +2409:894d:2000::/36 1; +2409:894d:3000::/37 1; +2409:894d:3800::/38 1; +2409:894d:3c00::/39 1; +2409:894d:3f00::/40 1; +2409:894d:4000::/34 1; +2409:894d:8000::/33 1; +2409:894e::/31 1; +2409:8954::/30 1; +2409:8958::/30 1; +2409:895c::/33 1; +2409:895c:8000::/34 1; +2409:895c:c000::/35 1; +2409:895c:e000::/36 1; +2409:895c:f000::/37 1; +2409:895c:f800::/38 1; +2409:895c:fd00::/40 1; +2409:895c:fe00::/39 1; +2409:895d::/32 1; +2409:895e::/31 1; +2409:8960::/27 1; +2409:8980::/37 1; +2409:8980:900::/40 1; +2409:8980:a00::/39 1; +2409:8980:c00::/38 1; +2409:8980:1000::/36 1; +2409:8980:2000::/35 1; +2409:8980:4000::/34 1; +2409:8980:8000::/33 1; +2409:8981::/32 1; +2409:8982::/31 1; +2409:8984::/30 1; +2409:8988::/29 1; +2409:8990::/28 1; +2409:89a0::/27 1; +2409:89c0::/26 1; +2409:8a03::/32 1; +2409:8a06::/31 1; +2409:8a08::/30 1; +2409:8a10::/30 1; +2409:8a21:c800::/37 1; +2409:8a21:d000::/36 1; +2409:8a21:e000::/35 1; +2409:8a23::/32 1; +2409:8a24::/30 1; +2409:8a29::/32 1; +2409:8a2a::/31 1; +2409:8a2c::/30 1; +2409:8a30::/29 1; +2409:8a38::/30 1; +2409:8a3c:8a00::/39 1; +2409:8a3c:8c00::/38 1; +2409:8a3c:9000::/36 1; +2409:8a3c:a000::/35 1; +2409:8a3c:c000::/34 1; +2409:8a3d::/32 1; +2409:8a3e::/31 1; +2409:8a40::/30 1; +2409:8a4c::/30 1; +2409:8a54::/30 1; +2409:8a58::/29 1; +2409:8a60::/27 1; +2409:8a80::/25 1; +2409:8b03::/32 1; +2409:8b06::/31 1; +2409:8b08::/30 1; +2409:8b10::/30 1; +2409:8b20::/29 1; +2409:8b29::/32 1; +2409:8b2a::/31 1; +2409:8b2c::/30 1; +2409:8b30::/29 1; +2409:8b38::/30 1; +2409:8b3d::/32 1; +2409:8b3e::/31 1; +2409:8b40::/30 1; +2409:8b4c::/30 1; +2409:8b50::/28 1; +2409:8b60::/27 1; +2409:8b80::/25 1; +2409:8c00::/30 1; +2409:8c06::/31 1; +2409:8c08::/30 1; +2409:8c10::/30 1; +2409:8c14:f0::/44 1; +2409:8c14:e00::/39 1; +2409:8c14:1000::/36 1; +2409:8c14:2e00::/39 1; +2409:8c14:3000::/37 1; +2409:8c14:3800::/38 1; +2409:8c14:a000::/37 1; +2409:8c14:a800::/38 1; +2409:8c14:ac00::/39 1; +2409:8c15:2000::/40 1; +2409:8c15:2800::/40 1; +2409:8c15:2e00::/39 1; +2409:8c15:3000::/37 1; +2409:8c15:3800::/38 1; +2409:8c1e::/31 1; +2409:8c20:1833::/48 1; +2409:8c29::/32 1; +2409:8c2c::/31 1; +2409:8c2e::/32 1; +2409:8c2f:3800::/40 1; +2409:8c30::/29 1; +2409:8c38::/30 1; +2409:8c3c:800::/40 1; +2409:8c3c:b00::/40 1; +2409:8c3c:1300::/40 1; +2409:8c3c:2700::/40 1; +2409:8c3c:2800::/40 1; +2409:8c3c:3300::/40 1; +2409:8c3c:3600::/39 1; +2409:8c3c:5100::/40 1; +2409:8c3c:5500::/40 1; +2409:8c3c:5600::/39 1; +2409:8c3c:5800::/40 1; +2409:8c3c:ff00::/40 1; +2409:8c3d::/32 1; +2409:8c3e::/31 1; +2409:8c40::/30 1; +2409:8c44:1b00::/40 1; +2409:8c4c::/30 1; +2409:8c54::/30 1; +2409:8c58::/29 1; +2409:8c60::/29 1; +2409:8c68::/31 1; +2409:8c6a::/34 1; +2409:8c6a:4000::/37 1; +2409:8c6a:4800::/38 1; +2409:8c6a:4d00::/40 1; +2409:8c6a:4e00::/39 1; +2409:8c6a:5000::/36 1; +2409:8c6a:6000::/35 1; +2409:8c6a:8000::/33 1; +2409:8c6b::/32 1; +2409:8c6c::/30 1; +2409:8c70::/28 1; +2409:8c80::/30 1; +2409:8c84::/32 1; +2409:8c85::/36 1; +2409:8c85:1000::/37 1; +2409:8c85:1800::/39 1; +2409:8c85:1b00::/40 1; +2409:8c85:1c00::/38 1; +2409:8c85:2100::/40 1; +2409:8c85:2200::/39 1; +2409:8c85:2400::/38 1; +2409:8c85:2800::/37 1; +2409:8c85:3000::/36 1; +2409:8c85:4000::/35 1; +2409:8c85:6000::/39 1; +2409:8c85:6300::/40 1; +2409:8c85:6400::/38 1; +2409:8c85:6800::/37 1; +2409:8c85:7000::/36 1; +2409:8c85:8000::/33 1; +2409:8c86::/31 1; +2409:8c88::/29 1; +2409:8c90::/28 1; +2409:8ca0::/27 1; +2409:8cc0::/26 1; +2409:8d01::/32 1; +2409:8d03::/32 1; +2409:8d04::/32 1; +2409:8d06::/31 1; +2409:8d08::/30 1; +2409:8d10::/30 1; +2409:8d1b::/32 1; +2409:8d1c::/31 1; +2409:8d30::/29 1; +2409:8d38::/30 1; +2409:8d3d::/32 1; +2409:8d3e::/31 1; +2409:8d40::/30 1; +2409:8d4c::/30 1; +2409:8d54::/30 1; +2409:8d58::/29 1; +2409:8d60::/28 1; +2409:8d70:100::/40 1; +2409:8d70:200::/39 1; +2409:8d70:400::/38 1; +2409:8d70:800::/37 1; +2409:8d70:1000::/36 1; +2409:8d70:2000::/35 1; +2409:8d70:4000::/34 1; +2409:8d70:8000::/33 1; +2409:8d71::/32 1; +2409:8d72::/31 1; +2409:8d74::/30 1; +2409:8d78::/29 1; +2409:8d80::/25 1; +2409:8e01::/32 1; +2409:8e02:1000::/36 1; +2409:8e02:2000::/35 1; +2409:8e02:4000::/34 1; +2409:8e02:8000::/34 1; +2409:8e02:c000::/35 1; +2409:8e02:e000::/36 1; +2409:8e03::/32 1; +2409:8e04::/32 1; +2409:8e06::/31 1; +2409:8e08::/30 1; +2409:8e10::/30 1; +2409:8e1b::/32 1; +2409:8e1c::/31 1; +2409:8e20::/33 1; +2409:8e20:8000::/34 1; +2409:8e20:c000::/35 1; +2409:8e20:e000::/36 1; +2409:8e21::/32 1; +2409:8e22::/31 1; +2409:8e24::/30 1; +2409:8e30::/29 1; +2409:8e38::/30 1; +2409:8e3d::/32 1; +2409:8e3e::/31 1; +2409:8e40::/30 1; +2409:8e4c::/30 1; +2409:8e54::/30 1; +2409:8e58::/29 1; +2409:8e60::/27 1; +2409:8e80::/25 1; +2409:8f00::/30 1; +2409:8f05::/32 1; +2409:8f06::/31 1; +2409:8f08::/29 1; +2409:8f10::/29 1; +2409:8f1a::/31 1; +2409:8f1c::/31 1; +2409:8f20::/27 1; +2409:8f40::/28 1; +2409:8f54::/30 1; +2409:8f58::/29 1; +2409:8f60::/27 1; +2409:8f80::/25 1; +240a:42c6:1400::/40 1; +240a:42c6:1800::/40 1; +240a:42c6:1c00::/40 1; +240a:42c6:6400::/40 1; +240a:42c6:6800::/40 1; +240a:42c6:9800::/40 1; +240a:42c6:b400::/40 1; +240a:42c7:2400::/40 1; +240a:42c7:2800::/40 1; +240a:42c7:2c00::/40 1; +240a:42c7:6800::/40 1; +240a:42c7:a000::/40 1; +240a:42c7:a200::/40 1; +240a:42c7:ec00::/40 1; +240a:42cc:1200::/40 1; +240a:42cc:1800::/40 1; +240a:42cc:2800::/40 1; +240a:42cc:6400::/40 1; +240a:42cc:8800::/40 1; +240a:42cc:9800::/40 1; +240a:42cc:9c00::/40 1; +240a:42cd::/40 1; +240a:42cd:2600::/40 1; +240a:42cd:2800::/40 1; +240a:42cd:2c00::/40 1; +240a:42cd:3000::/40 1; +240a:42cd:a000::/40 1; +240a:42cd:ec00::/40 1; +240e:f9:c000::/34 1; +240e:fa::/32 1; +240e:fe:2000::/35 1; +240e:fe:4000::/35 1; +240e:108:4042::/48 1; +240e:108:4842::/48 1; +240e:3b0:2c00::/38 1; +240e:3b0:3000::/37 1; +240e:3b0:3800::/38 1; +240e:3b0:3c00::/39 1; +240e:3b1:2c00::/38 1; +240e:3b1:3000::/37 1; +240e:3b1:3800::/38 1; +240e:3b1:3c00::/39 1; +240e:3b1:6400::/40 1; +240e:3b2:2c00::/38 1; +240e:3b2:3000::/37 1; +240e:3b2:3800::/38 1; +240e:3b2:3c00::/39 1; +240e:3b3:2c00::/38 1; +240e:3b3:3000::/37 1; +240e:3b3:3800::/38 1; +240e:3b3:3c00::/39 1; +240e:3b4:2c00::/38 1; +240e:3b4:3000::/37 1; +240e:3b4:3800::/38 1; +240e:3b4:3c00::/39 1; +240e:3b5:2c00::/38 1; +240e:3b5:3000::/37 1; +240e:3b5:3800::/38 1; +240e:3b5:3c00::/39 1; +240e:3b6:2c00::/38 1; +240e:3b6:3000::/37 1; +240e:3b6:3800::/38 1; +240e:3b6:3c00::/39 1; +240e:3b7:400::/40 1; +240e:3b7:2c00::/38 1; +240e:3b7:3000::/37 1; +240e:3b7:3800::/38 1; +240e:3b7:3c00::/39 1; +240e:3b8:2c00::/38 1; +240e:3b8:3000::/37 1; +240e:3b8:3800::/38 1; +240e:3b8:3c00::/39 1; +240e:3b9:2c00::/38 1; +240e:3b9:3000::/37 1; +240e:3b9:3800::/38 1; +240e:3b9:3c00::/39 1; +240e:3ba:2c00::/38 1; +240e:3ba:3000::/37 1; +240e:3ba:3800::/38 1; +240e:3ba:3c00::/39 1; +240e:3ba:3e00::/40 1; +240e:3bb:2c00::/38 1; +240e:3bb:3000::/37 1; +240e:3bb:3800::/38 1; +240e:3bb:3c00::/39 1; +240e:3bc:2c00::/38 1; +240e:3bc:3000::/37 1; +240e:3bc:3800::/38 1; +240e:3bc:3c00::/39 1; +240e:3bd:2c00::/38 1; +240e:3bd:3000::/37 1; +240e:3bd:3800::/38 1; +240e:3bd:3c00::/39 1; +240e:3be:2c00::/38 1; +240e:3be:3000::/37 1; +240e:3be:3800::/38 1; +240e:3be:3c00::/39 1; +240e:3bf:1800::/37 1; +240e:3bf:2000::/36 1; +240e:3bf:3000::/37 1; +240e:3bf:3800::/38 1; +240e:3bf:3c00::/39 1; +240e:47c:400::/40 1; +240e:47e:800::/40 1; +240e:47e:2c00::/40 1; +240e:47e:2e00::/40 1; +240e:47e:3000::/40 1; +240e:47e:3200::/40 1; +240e:47e:3400::/39 1; +240e:47e:3600::/40 1; +240e:47e:3800::/40 1; +240e:47e:3a00::/40 1; +240e:47e:3c00::/40 1; +240e:47e:4e00::/40 1; +240e:47e:9400::/40 1; +240e:47e:d800::/40 1; +240e:6b1::/32 1; +240e:87c:400::/40 1; +240e:87c:1100::/40 1; +240f:4000::/24 1; +2602:fd92:800::/40 1; +2602:fed2:731d::/48 1; +2602:feda:20::/44 1; +2602:feda:c3::/48 1; +2602:feda:c4::/48 1; +2602:feda:1b0::/44 1; +2602:feda:3c0::/46 1; +2602:feda:3c4::/48 1; +2602:feda:ce0::/48 1; +2602:ffc5:102::/48 1; +2606:54c0:1fd8::/45 1; +2606:54c0:1fe0::/43 1; +2606:54c0:2000::/41 1; +2606:54c0:2080::/44 1; +2606:54c0:2090::/45 1; +2606:54c3:0:49::/64 1; +2606:54c3:0:13b::/64 1; +2606:54c3:0:14c::/64 1; +2606:54c3:0:21e::/64 1; +2606:54c3:0:44f::/64 1; +2606:54c3:0:4ac::/64 1; +2606:54c3:0:7f2::/64 1; +2606:54c3:0:8a6::/64 1; +2606:54c3:0:8ac::/64 1; +2606:54c3:0:8be::/64 1; +2606:54c3:0:8c5::/64 1; +2606:54c3:0:8eb::/64 1; +2606:54c3:0:8ec::/64 1; +2606:54c3:0:9be::/64 1; +2606:54c3:0:e16::/64 1; +2606:54c3:0:f3e::/64 1; +2606:54c3:0:11e2::/64 1; +2606:54c3:0:13c7::/64 1; +2606:54c3:0:14f6::/64 1; +2606:54c3:0:1612::/64 1; +2606:54c3:0:1702::/64 1; +2606:54c3:0:19f4::/63 1; +2606:54c3:0:1a91::/64 1; +2a02:26f7:c400:4000::/64 1; +2a02:26f7:c401:4000::/64 1; +2a02:26f7:c404:4000::/64 1; +2a02:26f7:c405:4000::/64 1; +2a02:26f7:c408:4000::/64 1; +2a02:26f7:c409:4000::/64 1; +2a02:26f7:c40c:4000::/64 1; +2a02:26f7:c40d:4000::/64 1; +2a02:26f7:c410:4000::/64 1; +2a02:26f7:c411:4000::/64 1; +2a02:26f7:c414:4000::/64 1; +2a02:26f7:c415:4000::/64 1; +2a02:26f7:c418:4000::/64 1; +2a02:26f7:c419:4000::/64 1; +2a02:26f7:c41c:4000::/64 1; +2a02:26f7:c41d:4000::/64 1; +2a02:26f7:c420:4000::/64 1; +2a02:26f7:c421:4000::/64 1; +2a05:dfc1:1601::/48 1; +2a09:b280:ff86::/47 1; +2a09:b280:ff88::/45 1; +2a09:bac1:1980:18::/64 1; +2a09:bac1:1980:60::/64 1; +2a09:bac1:1980:90::/64 1; +2a09:bac1:1980:98::/64 1; +2a09:bac1:1980:a0::/64 1; +2a09:bac1:1980:a8::/64 1; +2a09:bac1:1980:3c60::/64 1; +2a09:bac1:1980:3cc0::/64 1; +2a09:bac1:1980:3cd0::/64 1; +2a09:bac1:1980:3cf0::/64 1; +2a09:bac1:1980:3cf8::/64 1; +2a09:bac1:1980:3d78::/64 1; +2a09:bac1:1980:3e08::/64 1; +2a09:bac1:1980:3ec8::/64 1; +2a09:bac1:1980:76d8::/64 1; +2a09:bac1:1980:d798::/64 1; +2a09:bac1:1980:d7c0::/64 1; +2a09:bac1:1980:d820::/64 1; +2a09:bac1:1980:d8a0::/64 1; +2a09:bac1:1980:d948::/64 1; +2a09:bac1:1980:da38::/64 1; +2a09:bac1:1980:dc00::/64 1; +2a09:bac1:1980:dc08::/64 1; +2a09:bac1:1980:dc28::/64 1; +2a09:bac1:1980:dce0::/64 1; +2a09:bac1:19a0:18::/64 1; +2a09:bac1:19a0:60::/64 1; +2a09:bac1:19a0:90::/64 1; +2a09:bac1:19a0:98::/64 1; +2a09:bac1:19a0:a0::/64 1; +2a09:bac1:19a0:a8::/64 1; +2a09:bac1:19a0:3c60::/64 1; +2a09:bac1:19a0:3cc0::/64 1; +2a09:bac1:19a0:3cd0::/64 1; +2a09:bac1:19a0:3cf0::/64 1; +2a09:bac1:19a0:3cf8::/64 1; +2a09:bac1:19a0:3d78::/64 1; +2a09:bac1:19a0:3e08::/64 1; +2a09:bac1:19a0:3ec8::/64 1; +2a09:bac1:19a0:76d8::/64 1; +2a09:bac1:19a0:d798::/64 1; +2a09:bac1:19a0:d7c0::/64 1; +2a09:bac1:19a0:d820::/64 1; +2a09:bac1:19a0:d8a0::/64 1; +2a09:bac1:19a0:d948::/64 1; +2a09:bac1:19a0:da38::/64 1; +2a09:bac1:19a0:dc00::/64 1; +2a09:bac1:19a0:dc08::/64 1; +2a09:bac1:19a0:dc28::/64 1; +2a09:bac1:19a0:dce0::/64 1; +2a09:bac1:19c0:18::/64 1; +2a09:bac1:19c0:60::/64 1; +2a09:bac1:19c0:90::/64 1; +2a09:bac1:19c0:98::/64 1; +2a09:bac1:19c0:a0::/64 1; +2a09:bac1:19c0:a8::/64 1; +2a09:bac1:19c0:3c60::/64 1; +2a09:bac1:19c0:3cc0::/64 1; +2a09:bac1:19c0:3cd0::/64 1; +2a09:bac1:19c0:3cf0::/64 1; +2a09:bac1:19c0:3cf8::/64 1; +2a09:bac1:19c0:3d78::/64 1; +2a09:bac1:19c0:3e08::/64 1; +2a09:bac1:19c0:3ec8::/64 1; +2a09:bac1:19c0:76d8::/64 1; +2a09:bac1:19c0:d798::/64 1; +2a09:bac1:19c0:d7c0::/64 1; +2a09:bac1:19c0:d820::/64 1; +2a09:bac1:19c0:d8a0::/64 1; +2a09:bac1:19c0:d948::/64 1; +2a09:bac1:19c0:da38::/64 1; +2a09:bac1:19c0:dc00::/64 1; +2a09:bac1:19c0:dc08::/64 1; +2a09:bac1:19c0:dc28::/64 1; +2a09:bac1:19c0:dce0::/64 1; +2a09:bac1:19e0:18::/64 1; +2a09:bac1:19e0:60::/64 1; +2a09:bac1:19e0:90::/64 1; +2a09:bac1:19e0:98::/64 1; +2a09:bac1:19e0:a0::/64 1; +2a09:bac1:19e0:a8::/64 1; +2a09:bac1:19e0:3c60::/64 1; +2a09:bac1:19e0:3cc0::/64 1; +2a09:bac1:19e0:3cd0::/64 1; +2a09:bac1:19e0:3cf0::/64 1; +2a09:bac1:19e0:3cf8::/64 1; +2a09:bac1:19e0:3d78::/64 1; +2a09:bac1:19e0:3e08::/64 1; +2a09:bac1:19e0:3ec8::/64 1; +2a09:bac1:19e0:76d8::/64 1; +2a09:bac1:19e0:d798::/64 1; +2a09:bac1:19e0:d7c0::/64 1; +2a09:bac1:19e0:d820::/64 1; +2a09:bac1:19e0:d8a0::/64 1; +2a09:bac1:19e0:d948::/64 1; +2a09:bac1:19e0:da38::/64 1; +2a09:bac1:19e0:dc00::/64 1; +2a09:bac1:19e0:dc08::/64 1; +2a09:bac1:19e0:dc28::/64 1; +2a09:bac1:19e0:dce0::/64 1; +2a09:bac2:1fd8::/45 1; +2a09:bac2:1fe0::/43 1; +2a09:bac2:2000::/41 1; +2a09:bac2:2080::/44 1; +2a09:bac2:2090::/45 1; +2a09:bac3:1fd8::/45 1; +2a09:bac3:1fe0::/43 1; +2a09:bac3:2000::/41 1; +2a09:bac3:2080::/44 1; +2a09:bac3:2090::/45 1; +2a09:bac5:2008::/45 1; +2a09:bac5:2010::/44 1; +2a09:bac5:2020::/43 1; +2a09:bac5:2040::/42 1; +2a09:bac5:2080::/42 1; +2a09:bac5:20c0::/45 1; +2a09:bac6:2008::/45 1; +2a09:bac6:2010::/44 1; +2a09:bac6:2020::/43 1; +2a09:bac6:2040::/42 1; +2a09:bac6:2080::/42 1; +2a09:bac6:20c0::/45 1; +2a0a:6040:d400::/48 1; +2a0a:6040:d402::/47 1; +2a0a:6040:d404::/46 1; +2a0a:6040:d408::/45 1; +2a0a:6040:d410::/44 1; +2a0a:6040:d420::/43 1; +2a0a:6040:d440::/42 1; +2a0a:6040:d480::/41 1; +2a0a:6040:d500::/40 1; +2a0a:6040:ec00::/40 1; +2a0b:4340:a2::/48 1; +2a0b:4340:a4::/46 1; +2a0b:4340:a8::/45 1; +2a0e:aa07:e024::/48 1; +2a0e:aa07:e039::/48 1; +2a0e:aa07:e057::/48 1; +2a0e:aa07:f0d4::/48 1; +2a0e:b107:1c::/46 1; +2a0e:b107:271::/48 1; +2a0e:b107:2c0::/44 1; +2a0e:b107:df4::/48 1; +2a0e:b107:f00::/44 1; +2a0e:b107:1730::/44 1; +2a0e:b107:1740::/43 1; +2a0e:b107:1760::/44 1; +2a0f:9400:770a::/48 1; +2a0f:ca81:6960::/44 1; +2a10:2f00:101::/48 1; +2a10:2f00:12a::/48 1; +2a10:cc40:181::/48 1; +2a10:cc40:182::/47 1; +2a10:cc40:184::/46 1; +2a10:cc40:188::/45 1; +2a12:f8c0:1::/48 1; +2a12:f8c0:2::/47 1; +2a12:f8c0:4::/46 1; +2a12:f8c0:8::/45 1; +2a12:f8c0:10::/44 1; +2a12:f8c0:20::/43 1; +2a12:f8c0:40::/42 1; +2a12:f8c0:80::/41 1; +2a12:f8c0:100::/40 1; +2a12:f8c0:200::/39 1; +2a12:f8c0:400::/38 1; +2a12:f8c0:800::/37 1; +2a12:f8c0:1300::/40 1; +2a12:f8c0:1400::/38 1; +2a12:f8c0:1800::/37 1; +2a12:f8c0:2000::/35 1; +2a12:f8c0:4000::/34 1; +2a12:f8c0:8000::/33 1; +2a12:f8c1::/44 1; +2a13:a5c4::/32 1; +2a13:aac4:1000::/36 1; +2a13:aac4:2000::/35 1; +2a13:aac4:4000::/34 1; +2a13:aac4:8000::/33 1; diff --git a/minigate/root/usr/lib/minigate/geo/450000.conf b/minigate/root/usr/lib/minigate/geo/450000.conf new file mode 100644 index 000000000..0dfde22b9 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/450000.conf @@ -0,0 +1,420 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 广西 +1.185.0.0/18 1; +1.185.64.0/19 1; +1.185.192.0/18 1; +14.197.144.0/22 1; +36.134.86.0/23 1; +36.159.0.0/17 1; +36.193.64.0/21 1; +36.193.72.0/22 1; +39.144.64.0/24 1; +39.144.66.0/24 1; +42.247.5.216/29 1; +42.247.12.80/28 1; +42.247.20.112/28 1; +42.247.21.192/26 1; +42.247.23.224/28 1; +42.247.25.192/28 1; +42.247.26.64/27 1; +42.247.29.240/28 1; +42.247.31.192/28 1; +42.247.35.0/27 1; +42.247.36.48/28 1; +42.247.36.96/28 1; +42.247.36.128/27 1; +42.247.36.192/27 1; +42.247.37.128/27 1; +42.247.39.64/27 1; +42.247.49.96/28 1; +43.224.54.184/29 1; +43.236.124.0/22 1; +43.236.148.0/22 1; +43.238.116.0/22 1; +43.247.228.0/22 1; +43.250.244.0/22 1; +43.255.68.0/22 1; +58.59.128.0/17 1; +59.43.71.0/24 1; +59.81.82.0/23 1; +61.139.192.0/18 1; +61.232.150.0/23 1; +61.232.152.0/22 1; +61.234.32.0/19 1; +61.235.160.0/19 1; +61.235.192.0/22 1; +61.237.0.34/31 1; +61.237.1.206/31 1; +61.237.2.20/30 1; +61.237.3.152/30 1; +61.237.15.0/27 1; +61.237.97.156/30 1; +61.237.97.162/31 1; +61.237.113.198/31 1; +61.237.122.218/31 1; +103.22.60.0/22 1; +103.32.124.0/22 1; +103.32.148.0/22 1; +103.34.116.0/22 1; +103.203.8.0/22 1; +103.228.208.0/22 1; +103.241.188.0/22 1; +103.251.96.0/22 1; +104.28.26.158/31 1; +104.28.26.160/30 1; +104.28.26.164/32 1; +104.28.43.50/31 1; +104.28.66.84/31 1; +104.28.69.84/31 1; +104.28.83.56/31 1; +104.28.117.86/31 1; +104.28.120.86/31 1; +104.28.198.171/32 1; +104.28.198.172/30 1; +104.28.198.176/31 1; +104.28.230.171/32 1; +104.28.230.172/30 1; +104.28.230.176/31 1; +106.127.0.0/16 1; +110.72.0.0/15 1; +110.212.0.0/16 1; +111.12.0.0/17 1; +111.58.0.0/15 1; +112.54.48.0/20 1; +112.62.0.0/19 1; +112.62.32.0/20 1; +113.12.0.0/14 1; +113.16.0.0/15 1; +115.46.0.0/16 1; +115.168.51.0/24 1; +115.168.83.0/24 1; +116.1.0.0/16 1; +116.8.0.0/14 1; +116.13.192.0/19 1; +116.13.224.0/22 1; +116.13.232.0/21 1; +116.165.0.0/16 1; +116.166.0.0/16 1; +116.252.0.0/15 1; +117.136.14.0/24 1; +117.136.76.0/24 1; +117.136.97.0/24 1; +117.136.98.0/23 1; +117.140.0.0/15 1; +117.142.100.0/22 1; +117.142.104.0/23 1; +117.181.0.0/16 1; +117.182.0.0/15 1; +118.194.0.0/19 1; +118.195.140.0/22 1; +118.195.148.0/22 1; +118.195.152.0/21 1; +118.195.160.0/19 1; +118.195.192.0/18 1; +121.31.0.0/16 1; +122.11.0.0/19 1; +122.11.64.0/18 1; +122.72.29.0/24 1; +122.72.96.0/23 1; +122.72.116.0/24 1; +123.67.0.0/16 1; +123.79.0.0/16 1; +123.94.21.0/24 1; +124.226.0.0/15 1; +124.249.240.0/20 1; +125.73.0.0/16 1; +125.217.0.0/21 1; +125.217.32.0/19 1; +171.36.0.0/14 1; +171.104.0.0/13 1; +175.51.0.0/16 1; +180.136.0.0/13 1; +182.88.0.0/14 1; +202.97.15.34/31 1; +202.97.15.54/31 1; +202.97.15.58/31 1; +202.97.21.128/27 1; +202.97.21.160/28 1; +202.97.21.176/29 1; +202.97.21.204/30 1; +202.97.23.6/31 1; +202.97.23.8/29 1; +202.97.23.16/28 1; +202.97.23.174/31 1; +202.97.23.178/31 1; +202.97.23.180/30 1; +202.97.23.198/31 1; +202.97.23.200/29 1; +202.97.23.210/31 1; +202.97.30.174/31 1; +202.97.36.6/31 1; +202.97.36.32/29 1; +202.97.36.122/31 1; +202.97.36.140/30 1; +202.97.36.152/30 1; +202.97.36.200/29 1; +202.97.37.178/31 1; +202.97.37.182/31 1; +202.97.38.206/31 1; +202.97.39.214/31 1; +202.97.42.6/31 1; +202.97.42.14/31 1; +202.97.42.18/31 1; +202.97.42.186/31 1; +202.97.43.126/31 1; +202.97.43.182/31 1; +202.97.55.90/31 1; +202.97.56.114/31 1; +202.97.56.118/31 1; +202.97.56.122/31 1; +202.97.56.124/30 1; +202.97.56.142/31 1; +202.97.56.144/29 1; +202.97.56.190/31 1; +202.97.56.246/31 1; +202.97.56.250/31 1; +202.97.56.254/31 1; +202.97.60.2/31 1; +202.97.60.4/30 1; +202.97.60.90/31 1; +202.97.60.134/31 1; +202.97.66.0/28 1; +202.97.66.16/29 1; +202.97.66.40/31 1; +202.97.66.44/31 1; +202.97.67.88/29 1; +202.97.68.146/31 1; +202.97.68.148/30 1; +202.97.71.246/31 1; +202.97.73.206/31 1; +202.97.74.14/31 1; +202.97.74.16/30 1; +202.97.74.26/31 1; +202.97.74.30/31 1; +202.97.74.42/31 1; +202.97.74.58/31 1; +202.97.74.62/31 1; +202.97.74.66/31 1; +202.97.74.70/31 1; +202.97.74.72/31 1; +202.97.74.86/31 1; +202.97.74.88/29 1; +202.97.74.102/31 1; +202.97.74.104/29 1; +202.97.74.138/31 1; +202.97.74.162/31 1; +202.97.74.166/31 1; +202.97.74.168/30 1; +202.97.74.174/31 1; +202.97.74.176/30 1; +202.97.74.182/31 1; +202.97.74.186/31 1; +202.97.74.190/31 1; +202.97.74.194/31 1; +202.97.74.198/31 1; +202.97.74.202/31 1; +202.97.74.210/31 1; +202.97.74.218/31 1; +202.97.74.222/31 1; +202.97.74.226/31 1; +202.97.74.230/31 1; +202.97.74.234/31 1; +202.97.74.238/31 1; +202.97.74.242/31 1; +202.97.74.246/31 1; +202.97.74.250/31 1; +202.97.74.254/31 1; +202.97.77.14/31 1; +202.97.77.16/30 1; +202.97.77.22/31 1; +202.97.77.26/31 1; +202.97.77.30/31 1; +202.97.81.186/31 1; +202.97.81.190/31 1; +202.97.81.192/30 1; +202.97.82.242/31 1; +202.97.82.250/31 1; +202.103.192.0/18 1; +202.112.38.208/30 1; +202.127.252.0/25 1; +202.193.0.0/16 1; +203.91.96.0/20 1; +203.93.32.0/19 1; +210.13.164.0/24 1; +210.14.184.0/23 1; +210.14.251.0/24 1; +210.36.0.0/16 1; +210.53.125.0/24 1; +210.75.128.0/19 1; +211.97.64.0/19 1; +211.98.66.0/23 1; +211.98.68.0/23 1; +211.98.80.128/27 1; +211.98.162.0/23 1; +211.98.164.0/24 1; +211.98.173.0/24 1; +211.138.240.0/20 1; +218.21.64.0/18 1; +218.65.128.0/17 1; +218.204.0.0/18 1; +219.158.8.110/31 1; +219.158.8.202/31 1; +219.158.8.246/31 1; +219.158.9.126/31 1; +219.158.9.142/31 1; +219.158.9.182/31 1; +219.158.12.146/31 1; +219.158.12.148/30 1; +219.158.12.166/31 1; +219.158.12.168/30 1; +219.158.12.174/31 1; +219.158.16.50/31 1; +219.158.18.184/30 1; +219.158.18.188/31 1; +219.158.18.208/29 1; +219.158.19.34/31 1; +219.158.22.86/31 1; +219.158.22.88/30 1; +219.158.22.94/31 1; +219.158.22.98/31 1; +219.158.22.202/31 1; +219.158.23.78/31 1; +219.158.23.122/31 1; +219.158.23.124/30 1; +219.158.23.186/31 1; +219.158.23.190/31 1; +219.158.23.206/31 1; +219.158.97.142/31 1; +219.158.97.144/28 1; +219.158.97.160/30 1; +219.158.98.42/31 1; +219.158.98.44/30 1; +219.158.98.50/31 1; +219.158.98.216/30 1; +219.158.100.214/31 1; +219.158.101.106/31 1; +219.158.102.98/31 1; +219.158.106.54/31 1; +219.158.108.138/31 1; +219.158.109.38/31 1; +219.158.109.178/31 1; +219.158.109.250/31 1; +219.158.109.252/30 1; +219.158.111.2/31 1; +219.158.112.214/31 1; +219.158.112.218/31 1; +219.158.116.118/31 1; +219.158.117.194/31 1; +219.159.64.0/18 1; +219.159.128.0/17 1; +219.232.64.0/19 1; +219.234.32.0/20 1; +219.235.152.0/21 1; +219.243.240.0/24 1; +220.173.0.0/16 1; +220.200.112.0/20 1; +220.200.128.0/20 1; +220.200.144.0/22 1; +220.207.4.0/22 1; +220.207.244.0/23 1; +221.7.128.0/17 1; +221.174.121.0/24 1; +221.176.20.26/31 1; +221.176.20.28/30 1; +221.176.21.74/31 1; +221.176.26.226/31 1; +221.177.114.0/23 1; +221.177.116.0/22 1; +221.177.250.0/23 1; +221.180.64.0/18 1; +221.183.11.34/31 1; +221.183.11.54/31 1; +221.183.11.136/30 1; +221.183.11.140/31 1; +221.183.13.14/31 1; +221.183.19.72/29 1; +221.183.19.80/28 1; +221.183.40.198/31 1; +221.183.49.34/31 1; +221.183.49.36/30 1; +222.52.0.0/16 1; +222.83.128.0/17 1; +222.84.0.0/16 1; +222.203.0.0/18 1; +222.203.204.0/22 1; +222.203.208.0/20 1; +222.203.224.0/19 1; +222.216.0.0/15 1; +222.218.0.0/16 1; +223.103.22.0/24 1; +223.103.31.0/24 1; +223.103.32.0/22 1; +223.103.36.0/24 1; +223.104.22.0/24 1; +223.104.90.0/23 1; +223.104.92.0/23 1; +2001:250:3400::/47 1; +2001:df1:d180::/48 1; +2400:d160::/32 1; +2401:cb80::/32 1; +2406:840:480::/41 1; +2406:840:500::/41 1; +2406:840:9680::/44 1; +2406:840:fed7::/48 1; +2408:845d:9900::/40 1; +240a:42ca::/40 1; +240a:42ca:c00::/40 1; +240a:42cb:6000::/40 1; +240a:42d2:1800::/40 1; +240e:352:ae00::/40 1; +2606:54c0:20d0::/44 1; +2606:54c0:20e0::/43 1; +2606:54c0:2100::/44 1; +2606:54c3:0:67a::/64 1; +2606:54c3:0:b26::/64 1; +2606:54c3:0:bb0::/64 1; +2606:54c3:0:c3d::/64 1; +2606:54c3:0:f57::/64 1; +2606:54c3:0:1045::/64 1; +2606:54c3:0:11ef::/64 1; +2606:54c3:0:150e::/64 1; +2a09:bac1:1980:68::/64 1; +2a09:bac1:1980:3a78::/64 1; +2a09:bac1:1980:3b28::/64 1; +2a09:bac1:1980:72d8::/64 1; +2a09:bac1:1980:74d0::/64 1; +2a09:bac1:1980:7570::/64 1; +2a09:bac1:1980:76e8::/64 1; +2a09:bac1:1980:7818::/64 1; +2a09:bac1:19a0:68::/64 1; +2a09:bac1:19a0:3a78::/64 1; +2a09:bac1:19a0:3b28::/64 1; +2a09:bac1:19a0:72d8::/64 1; +2a09:bac1:19a0:74d0::/64 1; +2a09:bac1:19a0:7570::/64 1; +2a09:bac1:19a0:76e8::/64 1; +2a09:bac1:19a0:7818::/64 1; +2a09:bac1:19c0:68::/64 1; +2a09:bac1:19c0:3a78::/64 1; +2a09:bac1:19c0:3b28::/64 1; +2a09:bac1:19c0:72d8::/64 1; +2a09:bac1:19c0:74d0::/64 1; +2a09:bac1:19c0:7570::/64 1; +2a09:bac1:19c0:76e8::/64 1; +2a09:bac1:19c0:7818::/64 1; +2a09:bac1:19e0:68::/64 1; +2a09:bac1:19e0:3a78::/64 1; +2a09:bac1:19e0:3b28::/64 1; +2a09:bac1:19e0:72d8::/64 1; +2a09:bac1:19e0:74d0::/64 1; +2a09:bac1:19e0:7570::/64 1; +2a09:bac1:19e0:76e8::/64 1; +2a09:bac1:19e0:7818::/64 1; +2a09:bac2:20d0::/44 1; +2a09:bac2:20e0::/43 1; +2a09:bac2:2100::/44 1; +2a09:bac3:20d0::/44 1; +2a09:bac3:20e0::/43 1; +2a09:bac3:2100::/44 1; +2a09:bac5:2100::/42 1; +2a09:bac6:2100::/42 1; +2a14:7584::/34 1; diff --git a/minigate/root/usr/lib/minigate/geo/460000.conf b/minigate/root/usr/lib/minigate/geo/460000.conf new file mode 100644 index 000000000..a99e392d7 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/460000.conf @@ -0,0 +1,237 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 海南省 +36.1.0.0/16 1; +36.101.0.0/16 1; +36.111.89.0/24 1; +36.111.90.0/23 1; +36.111.92.0/22 1; +36.111.112.0/20 1; +36.111.208.0/20 1; +36.111.224.0/19 1; +36.193.76.0/23 1; +42.247.15.64/28 1; +42.247.25.144/28 1; +42.247.33.192/28 1; +43.224.54.192/29 1; +43.236.8.0/22 1; +43.238.8.0/22 1; +43.251.4.0/22 1; +45.117.124.0/22 1; +59.49.128.0/17 1; +59.50.0.0/16 1; +59.81.100.0/23 1; +60.13.64.0/18 1; +61.186.0.0/18 1; +61.235.224.0/20 1; +61.237.0.54/31 1; +61.237.0.68/30 1; +61.237.64.229/32 1; +61.237.64.230/31 1; +61.237.123.220/30 1; +61.237.123.224/30 1; +61.240.240.0/20 1; +61.243.124.0/22 1; +103.22.48.0/22 1; +103.34.8.0/22 1; +103.57.196.0/22 1; +103.66.108.0/22 1; +103.240.188.0/22 1; +103.251.124.0/22 1; +110.65.240.0/20 1; +111.28.0.0/15 1; +112.54.244.0/22 1; +112.61.176.0/20 1; +112.66.0.0/15 1; +113.58.0.0/16 1; +113.59.0.0/17 1; +115.168.54.0/24 1; +115.168.86.0/24 1; +116.13.0.0/18 1; +116.167.0.0/16 1; +117.126.0.0/16 1; +117.136.13.0/24 1; +117.142.109.0/24 1; +117.142.110.0/24 1; +119.41.0.0/16 1; +121.58.0.0/17 1; +122.72.31.128/25 1; +122.72.98.0/24 1; +123.94.22.0/26 1; +123.95.0.0/17 1; +124.66.0.0/17 1; +124.225.0.0/16 1; +125.217.64.0/19 1; +125.217.96.0/20 1; +125.217.112.0/22 1; +125.217.120.0/21 1; +139.189.0.0/16 1; +140.240.0.0/16 1; +150.255.0.0/16 1; +153.0.0.0/16 1; +183.254.0.0/15 1; +202.100.192.0/18 1; +202.127.252.128/26 1; +210.13.236.0/23 1; +210.14.186.0/24 1; +210.14.255.0/24 1; +210.37.0.0/17 1; +210.37.128.0/21 1; +210.37.138.0/23 1; +210.37.144.0/20 1; +210.37.164.0/23 1; +210.37.168.0/23 1; +210.37.172.0/22 1; +210.37.176.0/22 1; +210.37.180.0/23 1; +210.37.184.0/22 1; +210.37.188.0/23 1; +210.37.196.0/22 1; +210.37.200.0/23 1; +210.37.204.0/22 1; +210.37.210.0/23 1; +210.37.212.0/22 1; +210.37.216.0/23 1; +210.37.220.0/22 1; +210.37.228.0/22 1; +210.37.232.0/21 1; +210.37.240.0/20 1; +210.53.205.0/24 1; +210.82.184.0/22 1; +211.97.96.0/21 1; +211.98.171.248/29 1; +211.138.160.0/20 1; +211.164.34.0/23 1; +218.77.128.0/17 1; +219.158.13.98/31 1; +219.158.13.100/30 1; +219.158.13.104/29 1; +219.158.22.82/31 1; +219.158.23.214/31 1; +219.158.23.242/31 1; +219.158.24.78/31 1; +219.158.100.234/31 1; +219.158.100.236/30 1; +219.158.113.66/31 1; +219.158.113.74/31 1; +219.158.113.76/30 1; +219.243.241.0/24 1; +220.174.0.0/16 1; +220.200.96.0/20 1; +220.207.180.0/23 1; +221.11.128.0/18 1; +221.11.192.0/19 1; +221.174.122.0/24 1; +221.176.15.188/31 1; +221.176.15.218/31 1; +221.176.15.222/31 1; +221.176.18.38/31 1; +221.176.27.18/31 1; +221.176.80.0/20 1; +221.177.112.0/23 1; +221.182.128.0/17 1; +221.183.13.184/29 1; +221.183.22.82/31 1; +221.183.22.86/31 1; +221.183.36.190/31 1; +221.183.36.192/30 1; +221.199.224.0/19 1; +222.17.128.0/19 1; +222.17.168.0/24 1; +222.17.176.0/20 1; +222.17.192.0/18 1; +222.61.0.0/17 1; +223.103.23.0/24 1; +223.104.23.0/24 1; +223.104.98.0/23 1; +223.104.100.0/24 1; +223.198.0.0/15 1; +2400:5ee0::/32 1; +2401:9b60::/32 1; +2401:b940::/32 1; +2408:8460:e400::/40 1; +2606:54c0:2240::/44 1; +2606:54c3:0:ff0::/64 1; +2606:54c3:0:1a5a::/64 1; +2a02:26f7:c400:f4cd::/64 1; +2a02:26f7:c400:f4ce::/63 1; +2a02:26f7:c400:f4d0::/60 1; +2a02:26f7:c400:f4e0::/59 1; +2a02:26f7:c400:f500::/56 1; +2a02:26f7:c400:f600::/61 1; +2a02:26f7:c400:f608::/62 1; +2a02:26f7:c400:f60c::/63 1; +2a02:26f7:c404:f4cd::/64 1; +2a02:26f7:c404:f4ce::/63 1; +2a02:26f7:c404:f4d0::/60 1; +2a02:26f7:c404:f4e0::/59 1; +2a02:26f7:c404:f500::/56 1; +2a02:26f7:c404:f600::/61 1; +2a02:26f7:c404:f608::/62 1; +2a02:26f7:c404:f60c::/63 1; +2a02:26f7:c408:f4cd::/64 1; +2a02:26f7:c408:f4ce::/63 1; +2a02:26f7:c408:f4d0::/60 1; +2a02:26f7:c408:f4e0::/59 1; +2a02:26f7:c408:f500::/56 1; +2a02:26f7:c408:f600::/61 1; +2a02:26f7:c408:f608::/62 1; +2a02:26f7:c408:f60c::/63 1; +2a02:26f7:c40c:f4cd::/64 1; +2a02:26f7:c40c:f4ce::/63 1; +2a02:26f7:c40c:f4d0::/60 1; +2a02:26f7:c40c:f4e0::/59 1; +2a02:26f7:c40c:f500::/56 1; +2a02:26f7:c40c:f600::/61 1; +2a02:26f7:c40c:f608::/62 1; +2a02:26f7:c40c:f60c::/63 1; +2a02:26f7:c410:f4cd::/64 1; +2a02:26f7:c410:f4ce::/63 1; +2a02:26f7:c410:f4d0::/60 1; +2a02:26f7:c410:f4e0::/59 1; +2a02:26f7:c410:f500::/56 1; +2a02:26f7:c410:f600::/61 1; +2a02:26f7:c410:f608::/62 1; +2a02:26f7:c410:f60c::/63 1; +2a02:26f7:c414:f4cd::/64 1; +2a02:26f7:c414:f4ce::/63 1; +2a02:26f7:c414:f4d0::/60 1; +2a02:26f7:c414:f4e0::/59 1; +2a02:26f7:c414:f500::/56 1; +2a02:26f7:c414:f600::/61 1; +2a02:26f7:c414:f608::/62 1; +2a02:26f7:c414:f60c::/63 1; +2a02:26f7:c418:f4cd::/64 1; +2a02:26f7:c418:f4ce::/63 1; +2a02:26f7:c418:f4d0::/60 1; +2a02:26f7:c418:f4e0::/59 1; +2a02:26f7:c418:f500::/56 1; +2a02:26f7:c418:f600::/61 1; +2a02:26f7:c418:f608::/62 1; +2a02:26f7:c418:f60c::/63 1; +2a02:26f7:c41c:f4cd::/64 1; +2a02:26f7:c41c:f4ce::/63 1; +2a02:26f7:c41c:f4d0::/60 1; +2a02:26f7:c41c:f4e0::/59 1; +2a02:26f7:c41c:f500::/56 1; +2a02:26f7:c41c:f600::/61 1; +2a02:26f7:c41c:f608::/62 1; +2a02:26f7:c41c:f60c::/63 1; +2a02:26f7:c420:f4cd::/64 1; +2a02:26f7:c420:f4ce::/63 1; +2a02:26f7:c420:f4d0::/60 1; +2a02:26f7:c420:f4e0::/59 1; +2a02:26f7:c420:f500::/56 1; +2a02:26f7:c420:f600::/61 1; +2a02:26f7:c420:f608::/62 1; +2a02:26f7:c420:f60c::/63 1; +2a09:bac1:1980:3888::/64 1; +2a09:bac1:1980:3be0::/64 1; +2a09:bac1:19a0:3888::/64 1; +2a09:bac1:19a0:3be0::/64 1; +2a09:bac1:19c0:3888::/64 1; +2a09:bac1:19c0:3be0::/64 1; +2a09:bac1:19e0:3888::/64 1; +2a09:bac1:19e0:3be0::/64 1; +2a09:bac2:2240::/44 1; +2a09:bac3:2240::/44 1; +2a09:bac5:2270::/44 1; +2a09:bac6:2270::/44 1; diff --git a/minigate/root/usr/lib/minigate/geo/500000.conf b/minigate/root/usr/lib/minigate/geo/500000.conf new file mode 100644 index 000000000..c577b63b1 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/500000.conf @@ -0,0 +1,468 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 重庆市 +14.104.0.0/13 1; +27.8.0.0/13 1; +27.144.0.0/16 1; +36.133.108.0/22 1; +36.133.112.0/21 1; +36.133.232.0/21 1; +36.134.24.0/21 1; +36.193.78.0/23 1; +36.193.80.0/22 1; +39.144.17.0/24 1; +39.144.18.0/24 1; +39.144.20.0/24 1; +39.144.218.0/23 1; +39.144.220.0/22 1; +39.144.224.0/19 1; +39.145.0.0/16 1; +39.146.0.0/15 1; +42.247.1.192/29 1; +42.247.2.248/29 1; +42.247.3.0/27 1; +42.247.3.120/29 1; +42.247.5.168/29 1; +42.247.6.208/28 1; +42.247.7.0/24 1; +42.247.8.0/24 1; +42.247.9.0/26 1; +42.247.9.64/28 1; +42.247.9.80/29 1; +42.247.9.192/28 1; +42.247.10.16/28 1; +42.247.16.80/28 1; +42.247.21.88/30 1; +42.247.25.80/28 1; +42.247.26.224/28 1; +42.247.26.240/29 1; +42.247.27.80/28 1; +42.247.27.208/28 1; +42.247.27.224/29 1; +42.247.31.48/29 1; +42.247.32.144/28 1; +42.247.34.0/25 1; +42.247.34.128/26 1; +42.247.36.0/27 1; +42.247.36.32/28 1; +42.247.38.64/27 1; +42.247.38.96/28 1; +42.247.41.112/28 1; +42.247.46.48/28 1; +43.224.54.32/29 1; +43.237.36.0/22 1; +43.237.236.0/22 1; +43.243.180.0/22 1; +43.247.48.0/22 1; +43.247.222.0/24 1; +45.122.100.0/22 1; +58.17.128.0/17 1; +58.43.0.0/16 1; +58.144.0.0/16 1; +58.200.10.0/24 1; +58.207.80.0/20 1; +61.128.128.0/17 1; +61.161.64.0/18 1; +61.186.128.0/17 1; +61.232.224.0/21 1; +61.235.196.0/22 1; +61.235.200.0/21 1; +61.235.208.0/20 1; +61.237.0.46/31 1; +61.237.0.50/31 1; +61.237.2.112/28 1; +61.237.2.128/30 1; +61.237.2.224/28 1; +61.237.15.64/27 1; +61.237.24.224/27 1; +61.237.127.58/31 1; +61.237.127.82/31 1; +61.242.192.0/18 1; +80.239.176.0/24 1; +94.191.0.0/17 1; +101.46.64.0/19 1; +101.47.192.0/19 1; +101.105.128.0/18 1; +103.3.148.0/22 1; +103.22.12.0/22 1; +103.26.240.0/22 1; +103.33.36.0/22 1; +103.33.236.0/22 1; +103.35.24.0/22 1; +103.62.208.0/22 1; +103.65.48.0/22 1; +103.104.2.0/23 1; +103.213.196.0/22 1; +103.229.20.0/22 1; +103.248.212.0/22 1; +104.28.66.98/31 1; +104.28.69.98/31 1; +104.28.83.70/31 1; +104.28.99.64/31 1; +104.28.101.64/31 1; +104.28.117.100/31 1; +104.28.120.100/31 1; +104.28.179.2/31 1; +104.28.179.4/30 1; +104.28.179.8/32 1; +104.28.211.41/32 1; +104.28.211.42/31 1; +104.28.211.44/30 1; +104.28.243.41/32 1; +104.28.243.42/31 1; +104.28.243.44/30 1; +106.80.0.0/12 1; +109.244.200.0/22 1; +110.214.0.0/16 1; +111.10.0.0/16 1; +111.231.188.0/23 1; +112.54.176.0/21 1; +112.54.248.0/23 1; +112.62.48.0/20 1; +112.62.64.0/19 1; +113.204.0.0/14 1; +113.248.0.0/14 1; +115.120.128.0/17 1; +115.168.52.0/24 1; +115.168.84.0/24 1; +115.168.95.0/24 1; +115.169.18.0/24 1; +115.173.64.0/18 1; +116.168.0.0/16 1; +116.205.24.0/22 1; +116.218.8.0/24 1; +117.59.0.0/16 1; +117.136.30.0/24 1; +117.136.61.224/27 1; +117.136.235.112/28 1; +118.24.192.0/18 1; +118.144.165.128/25 1; +118.195.144.0/22 1; +118.205.128.0/17 1; +119.84.0.0/14 1; +120.94.128.0/18 1; +121.49.0.0/21 1; +121.49.8.0/22 1; +121.49.16.0/20 1; +121.49.32.0/21 1; +122.72.32.0/25 1; +122.72.99.0/24 1; +122.73.0.0/16 1; +123.94.23.0/25 1; +123.144.0.0/14 1; +124.162.0.0/16 1; +125.62.0.0/18 1; +125.80.0.0/13 1; +125.213.88.0/21 1; +125.213.96.0/21 1; +129.28.0.0/20 1; +129.28.144.0/20 1; +129.28.160.0/19 1; +129.28.192.0/19 1; +129.28.224.0/20 1; +139.186.0.0/17 1; +139.186.128.0/20 1; +139.220.0.0/17 1; +140.143.102.0/23 1; +140.143.104.0/22 1; +140.143.108.0/23 1; +180.84.64.0/20 1; +180.84.80.0/21 1; +180.84.88.0/23 1; +180.84.192.0/18 1; +180.85.128.0/17 1; +180.88.192.0/18 1; +183.64.0.0/13 1; +183.226.0.0/15 1; +183.228.0.0/14 1; +202.97.14.86/31 1; +202.97.14.88/29 1; +202.97.14.96/27 1; +202.97.14.128/31 1; +202.97.28.14/31 1; +202.97.28.18/31 1; +202.97.28.22/31 1; +202.97.28.26/31 1; +202.97.28.94/31 1; +202.97.28.110/31 1; +202.97.28.118/31 1; +202.97.28.128/31 1; +202.97.28.136/31 1; +202.97.28.144/31 1; +202.97.28.254/31 1; +202.97.36.8/31 1; +202.97.36.68/31 1; +202.97.55.228/31 1; +202.97.73.66/31 1; +202.97.73.98/31 1; +202.97.73.100/30 1; +202.97.73.106/31 1; +202.97.73.110/31 1; +202.97.73.126/32 1; +202.97.82.40/31 1; +202.97.82.188/31 1; +202.97.83.154/31 1; +202.97.83.162/31 1; +202.97.83.166/31 1; +202.97.83.174/31 1; +202.97.83.176/29 1; +202.97.83.190/31 1; +202.97.83.198/31 1; +202.97.83.200/29 1; +202.97.83.208/28 1; +202.97.83.224/29 1; +202.97.83.232/30 1; +202.97.83.242/31 1; +202.97.83.250/31 1; +202.97.83.252/30 1; +202.97.86.0/26 1; +202.97.86.64/30 1; +202.97.86.70/31 1; +202.97.86.74/31 1; +202.97.86.78/31 1; +202.97.86.80/31 1; +202.97.86.94/31 1; +202.97.86.96/27 1; +202.97.86.128/25 1; +202.98.32.0/19 1; +202.127.253.64/26 1; +202.202.0.0/19 1; +202.202.32.0/20 1; +202.202.64.0/18 1; +202.202.128.0/17 1; +203.93.96.0/20 1; +203.93.188.64/26 1; +210.41.32.0/19 1; +210.53.24.0/22 1; +210.75.92.192/26 1; +210.77.160.0/20 1; +211.83.16.0/20 1; +211.83.192.0/19 1; +211.83.224.0/21 1; +211.92.0.0/17 1; +211.92.128.0/21 1; +211.98.112.0/23 1; +211.98.114.0/24 1; +211.98.116.0/24 1; +211.98.170.128/28 1; +211.98.208.0/24 1; +211.98.217.0/24 1; +211.98.218.0/24 1; +211.98.223.0/24 1; +211.139.32.0/19 1; +211.144.160.0/20 1; +211.158.0.0/16 1; +211.162.208.0/21 1; +211.165.135.0/24 1; +218.21.48.0/20 1; +218.30.158.0/24 1; +218.70.0.0/16 1; +218.194.128.0/18 1; +218.201.0.0/18 1; +218.201.64.0/19 1; +218.206.0.0/19 1; +218.207.0.0/18 1; +218.244.0.0/19 1; +219.72.202.240/28 1; +219.151.128.0/17 1; +219.152.0.0/15 1; +219.158.9.202/31 1; +219.158.9.238/31 1; +219.158.9.242/31 1; +219.158.9.252/31 1; +219.158.11.218/31 1; +219.158.11.222/31 1; +219.158.12.14/31 1; +219.158.12.70/31 1; +219.158.12.74/31 1; +219.158.12.86/31 1; +219.158.12.98/31 1; +219.158.12.100/30 1; +219.158.12.104/31 1; +219.158.12.110/31 1; +219.158.12.222/31 1; +219.158.14.206/31 1; +219.158.15.66/31 1; +219.158.15.78/31 1; +219.158.15.80/30 1; +219.158.16.214/31 1; +219.158.16.216/30 1; +219.158.17.38/31 1; +219.158.18.190/31 1; +219.158.18.192/30 1; +219.158.19.118/31 1; +219.158.21.218/31 1; +219.158.21.242/31 1; +219.158.21.244/31 1; +219.158.22.74/31 1; +219.158.22.200/31 1; +219.158.23.102/31 1; +219.158.23.104/30 1; +219.158.23.198/31 1; +219.158.40.52/30 1; +219.158.43.136/30 1; +219.158.99.88/31 1; +219.158.99.106/31 1; +219.158.104.68/31 1; +219.158.104.90/31 1; +219.158.104.130/31 1; +219.158.106.200/29 1; +219.158.106.208/28 1; +219.158.106.224/27 1; +219.158.107.0/29 1; +219.158.107.8/30 1; +219.158.107.18/31 1; +219.158.107.62/31 1; +219.158.107.78/31 1; +219.158.108.72/31 1; +219.158.108.142/31 1; +219.158.108.144/28 1; +219.158.108.160/27 1; +219.158.108.192/26 1; +219.158.109.0/27 1; +219.158.109.32/30 1; +219.158.110.158/31 1; +219.158.110.186/31 1; +219.158.114.6/31 1; +219.158.117.154/31 1; +219.221.0.0/19 1; +219.221.32.0/20 1; +219.221.48.0/22 1; +219.221.64.0/18 1; +219.243.235.0/24 1; +220.114.16.0/20 1; +220.115.192.0/19 1; +220.182.240.0/24 1; +220.192.0.0/18 1; +220.192.128.0/19 1; +220.192.160.0/20 1; +220.192.176.0/21 1; +220.192.184.0/22 1; +220.200.64.0/19 1; +220.207.228.0/22 1; +220.207.232.0/23 1; +221.5.128.0/17 1; +221.7.64.0/18 1; +221.13.96.0/19 1; +221.130.252.0/24 1; +221.176.20.24/31 1; +221.176.20.32/30 1; +221.176.20.36/31 1; +221.176.20.152/31 1; +221.176.20.166/31 1; +221.176.26.36/30 1; +221.176.26.48/28 1; +221.176.26.64/29 1; +221.176.26.72/30 1; +221.176.26.84/30 1; +221.176.26.88/30 1; +221.176.52.68/30 1; +221.176.52.72/30 1; +221.177.188.0/23 1; +221.177.206.0/24 1; +221.177.222.0/24 1; +221.177.241.0/24 1; +221.177.249.0/24 1; +221.178.0.0/17 1; +221.183.9.164/31 1; +221.183.11.66/31 1; +221.183.13.32/29 1; +221.183.19.56/29 1; +221.183.20.80/30 1; +221.183.20.140/30 1; +221.183.20.144/29 1; +221.183.20.152/30 1; +221.183.20.220/30 1; +221.183.20.224/28 1; +221.183.20.240/30 1; +221.183.21.136/30 1; +221.183.22.62/31 1; +221.183.24.224/29 1; +221.183.28.0/28 1; +221.183.36.254/31 1; +221.183.37.68/31 1; +221.183.37.72/29 1; +221.183.37.80/29 1; +221.183.37.88/31 1; +221.183.42.90/31 1; +221.183.42.158/31 1; +221.183.42.210/31 1; +221.183.46.112/29 1; +221.183.46.120/30 1; +221.183.49.40/29 1; +222.55.0.0/17 1; +222.176.0.0/13 1; +222.196.16.0/20 1; +222.198.0.0/20 1; +222.198.32.0/19 1; +222.198.64.0/18 1; +222.198.128.0/19 1; +222.198.160.0/20 1; +222.198.176.0/22 1; +223.103.25.0/24 1; +223.103.57.0/25 1; +223.104.25.0/24 1; +223.104.248.0/22 1; +223.208.32.0/19 1; +223.208.64.0/18 1; +223.210.24.0/21 1; +2001:250:2401::/48 1; +2001:df5:5f80::/48 1; +2001:f88::/32 1; +2400:d7a0::/32 1; +2401:92e0::/32 1; +2403:9b40::/32 1; +2404:5b00::/32 1; +2405:a980::/32 1; +2406:840:e20f::/48 1; +2408:8462:100::/40 1; +2408:8462:d00::/40 1; +2408:8462:1200::/40 1; +2408:8462:1e00::/40 1; +2408:8462:2a00::/39 1; +2408:8462:6c00::/40 1; +2408:8462:ec00::/40 1; +2408:8469:6b00::/40 1; +240e:330::/32 1; +240e:430:2400::/40 1; +240e:430:2a00::/40 1; +2602:feda:1a0::/44 1; +2602:feda:af1::/48 1; +2602:feda:d83::/48 1; +2606:54c0:1f10::/45 1; +2606:54c0:1f70::/44 1; +2606:54c0:1f80::/45 1; +2606:54c3:0:646::/64 1; +2606:54c3:0:985::/64 1; +2606:54c3:0:aaf::/64 1; +2606:54c3:0:189d::/64 1; +2a09:bac1:1980:50::/64 1; +2a09:bac1:1980:80::/64 1; +2a09:bac1:1980:8888::/64 1; +2a09:bac1:1980:9318::/64 1; +2a09:bac1:19a0:50::/64 1; +2a09:bac1:19a0:80::/64 1; +2a09:bac1:19a0:8888::/64 1; +2a09:bac1:19a0:9318::/64 1; +2a09:bac1:19c0:50::/64 1; +2a09:bac1:19c0:80::/64 1; +2a09:bac1:19c0:8888::/64 1; +2a09:bac1:19c0:9318::/64 1; +2a09:bac1:19e0:50::/64 1; +2a09:bac1:19e0:80::/64 1; +2a09:bac1:19e0:8888::/64 1; +2a09:bac1:19e0:9318::/64 1; +2a09:bac2:1f10::/45 1; +2a09:bac2:1f70::/44 1; +2a09:bac2:1f80::/45 1; +2a09:bac3:1f10::/45 1; +2a09:bac3:1f70::/44 1; +2a09:bac3:1f80::/45 1; +2a09:bac5:1f40::/45 1; +2a09:bac5:1fa0::/44 1; +2a09:bac5:1fb0::/45 1; +2a09:bac6:1f40::/45 1; +2a09:bac6:1fa0::/44 1; +2a09:bac6:1fb0::/45 1; +2a0b:b87:ffb9::/48 1; +2a0d:2901::/32 1; +2a0d:2902::/32 1; +2a0e:aa07:f020::/44 1; diff --git a/minigate/root/usr/lib/minigate/geo/510000.conf b/minigate/root/usr/lib/minigate/geo/510000.conf new file mode 100644 index 000000000..4456b10ca --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/510000.conf @@ -0,0 +1,890 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 四川省 +14.196.0.0/16 1; +36.111.64.0/20 1; +36.133.60.0/22 1; +36.133.64.0/21 1; +36.133.200.0/21 1; +36.142.0.0/23 1; +36.193.84.0/22 1; +36.193.88.0/21 1; +36.193.96.0/23 1; +39.144.137.0/24 1; +39.144.138.0/24 1; +42.247.1.208/29 1; +42.247.2.128/29 1; +42.247.2.160/29 1; +42.247.2.192/29 1; +42.247.2.232/29 1; +42.247.3.128/25 1; +42.247.9.128/29 1; +42.247.9.216/29 1; +42.247.24.0/27 1; +42.247.40.64/27 1; +42.247.40.128/28 1; +42.247.41.160/27 1; +42.247.43.32/27 1; +43.224.54.96/29 1; +43.236.32.0/21 1; +43.236.132.0/22 1; +43.237.12.0/22 1; +43.237.124.0/22 1; +43.238.52.0/22 1; +43.240.132.0/22 1; +43.241.248.0/22 1; +43.243.16.0/22 1; +43.247.204.0/22 1; +43.250.28.0/22 1; +45.40.192.0/20 1; +45.40.208.0/21 1; +45.40.240.0/20 1; +45.122.0.0/22 1; +45.250.76.0/22 1; +47.108.0.0/16 1; +58.200.7.128/25 1; +58.200.119.0/24 1; +58.200.127.160/29 1; +58.206.0.0/19 1; +59.43.72.0/24 1; +59.43.80.60/30 1; +59.43.80.64/30 1; +59.81.76.0/23 1; +59.153.156.0/22 1; +60.247.128.0/17 1; +60.255.0.0/16 1; +61.139.0.0/17 1; +61.157.0.0/16 1; +61.188.0.0/16 1; +61.232.212.0/22 1; +61.232.216.0/21 1; +61.236.120.0/21 1; +61.236.128.0/19 1; +61.237.0.44/31 1; +61.237.0.48/31 1; +61.237.11.128/26 1; +61.237.124.92/30 1; +61.237.124.100/30 1; +61.237.124.104/31 1; +61.237.124.108/31 1; +61.237.124.112/31 1; +61.237.124.116/31 1; +61.237.124.120/29 1; +61.237.124.128/31 1; +61.237.127.74/31 1; +61.237.127.78/31 1; +61.237.127.92/30 1; +61.237.127.144/28 1; +61.237.127.160/29 1; +101.204.0.0/14 1; +101.237.0.0/16 1; +103.3.108.0/22 1; +103.5.252.0/22 1; +103.11.180.0/22 1; +103.22.124.0/22 1; +103.24.184.0/22 1; +103.32.32.0/21 1; +103.32.132.0/22 1; +103.33.12.0/22 1; +103.33.124.0/22 1; +103.34.52.0/22 1; +103.37.176.0/22 1; +103.41.160.0/22 1; +103.41.228.0/22 1; +103.51.62.0/23 1; +103.62.88.0/22 1; +103.65.120.0/21 1; +103.65.128.0/22 1; +103.85.44.0/22 1; +103.103.37.0/24 1; +103.103.38.0/23 1; +103.103.220.0/22 1; +103.103.227.0/24 1; +103.110.116.0/24 1; +103.111.252.0/22 1; +103.118.19.0/24 1; +103.198.200.0/22 1; +103.200.52.0/22 1; +103.203.120.0/22 1; +103.203.216.0/22 1; +103.204.112.0/22 1; +103.204.148.0/22 1; +103.204.152.0/22 1; +103.218.12.0/22 1; +103.228.88.0/22 1; +103.238.24.0/22 1; +103.238.36.0/22 1; +104.28.37.44/31 1; +104.28.66.76/31 1; +104.28.69.76/31 1; +104.28.83.48/31 1; +104.28.117.78/31 1; +104.28.120.78/31 1; +104.28.186.247/32 1; +104.28.186.248/30 1; +104.28.186.252/31 1; +104.28.186.254/32 1; +104.28.219.46/31 1; +104.28.219.48/30 1; +104.28.219.52/31 1; +104.28.251.46/31 1; +104.28.251.48/30 1; +104.28.251.52/31 1; +106.11.198.0/24 1; +110.119.0.0/16 1; +110.184.0.0/13 1; +110.215.0.0/16 1; +111.9.0.0/16 1; +111.231.190.0/23 1; +111.231.192.0/19 1; +111.231.224.0/22 1; +111.231.228.0/23 1; +111.235.165.0/24 1; +112.18.0.0/15 1; +112.44.0.0/15 1; +112.53.160.0/20 1; +112.54.88.0/21 1; +112.54.200.0/22 1; +112.61.192.0/18 1; +112.192.0.0/14 1; +113.54.0.0/19 1; +113.54.64.0/18 1; +113.54.128.0/17 1; +115.168.53.0/24 1; +115.168.85.0/24 1; +115.181.232.0/22 1; +116.169.0.0/21 1; +116.169.8.0/23 1; +117.61.0.0/18 1; +117.61.64.0/22 1; +117.136.15.0/24 1; +117.136.62.0/23 1; +117.136.64.0/23 1; +117.136.69.0/24 1; +117.136.70.0/24 1; +117.136.82.0/24 1; +117.136.144.0/24 1; +117.139.0.0/16 1; +117.142.7.0/24 1; +117.142.8.0/23 1; +117.142.216.0/22 1; +117.142.220.0/23 1; +117.142.222.0/24 1; +117.172.0.0/14 1; +117.176.0.0/15 1; +118.24.0.0/17 1; +118.24.128.0/18 1; +118.25.208.0/20 1; +118.25.224.0/20 1; +118.112.0.0/14 1; +118.116.0.0/15 1; +118.118.0.0/18 1; +118.118.64.0/19 1; +118.118.96.0/20 1; +118.118.112.0/22 1; +118.118.116.0/23 1; +118.118.118.119/32 1; +118.118.118.120/29 1; +118.118.118.128/25 1; +118.118.119.0/24 1; +118.118.120.0/21 1; +118.118.128.0/17 1; +118.119.0.0/16 1; +118.120.0.0/14 1; +118.124.0.0/15 1; +118.126.108.0/22 1; +118.126.112.0/22 1; +118.126.116.0/23 1; +118.191.194.0/23 1; +118.191.196.0/22 1; +118.191.200.0/21 1; +118.191.208.0/21 1; +118.224.0.0/23 1; +119.4.0.0/14 1; +119.27.160.0/19 1; +119.252.240.0/21 1; +120.94.0.0/17 1; +120.94.192.0/18 1; +121.48.0.0/16 1; +121.49.12.0/22 1; +121.49.40.0/21 1; +121.49.48.0/20 1; +121.49.64.0/18 1; +121.49.155.0/24 1; +121.49.156.0/22 1; +121.49.240.0/20 1; +121.51.97.0/24 1; +122.9.236.0/22 1; +122.72.14.0/23 1; +122.72.100.0/23 1; +123.70.0.0/15 1; +123.94.24.0/24 1; +124.14.128.0/19 1; +124.161.0.0/16 1; +125.64.0.0/13 1; +125.214.96.0/19 1; +129.28.16.0/20 1; +129.28.32.0/19 1; +129.28.64.0/18 1; +129.28.128.0/20 1; +132.232.0.0/16 1; +139.155.0.0/16 1; +139.186.144.0/20 1; +139.186.160.0/19 1; +139.186.192.0/18 1; +139.200.0.0/13 1; +140.143.82.0/23 1; +140.143.84.0/22 1; +140.143.88.0/21 1; +140.143.96.0/22 1; +140.143.100.0/23 1; +159.226.140.0/22 1; +159.226.167.0/24 1; +171.88.0.0/13 1; +171.208.0.0/12 1; +175.152.0.0/14 1; +180.84.0.0/18 1; +180.84.90.0/23 1; +180.84.92.0/22 1; +180.84.96.0/19 1; +180.84.160.0/19 1; +180.85.0.0/17 1; +180.91.0.0/17 1; +180.222.224.0/19 1; +182.128.0.0/12 1; +182.144.0.0/13 1; +183.220.0.0/14 1; +192.151.208.0/24 1; +202.44.48.0/22 1; +202.61.88.0/22 1; +202.97.15.56/31 1; +202.97.16.104/29 1; +202.97.16.112/29 1; +202.97.16.162/31 1; +202.97.16.164/30 1; +202.97.19.42/31 1; +202.97.19.44/30 1; +202.97.19.50/31 1; +202.97.19.154/31 1; +202.97.23.0/31 1; +202.97.23.106/31 1; +202.97.23.108/30 1; +202.97.23.114/31 1; +202.97.23.116/30 1; +202.97.24.0/31 1; +202.97.24.4/31 1; +202.97.24.40/30 1; +202.97.26.208/28 1; +202.97.26.224/29 1; +202.97.26.232/30 1; +202.97.28.24/31 1; +202.97.28.28/30 1; +202.97.28.32/27 1; +202.97.28.64/28 1; +202.97.28.80/29 1; +202.97.28.88/30 1; +202.97.28.92/31 1; +202.97.28.196/31 1; +202.97.29.14/31 1; +202.97.29.16/30 1; +202.97.29.22/31 1; +202.97.29.24/29 1; +202.97.29.32/30 1; +202.97.29.38/31 1; +202.97.29.40/30 1; +202.97.29.46/31 1; +202.97.29.170/31 1; +202.97.29.172/30 1; +202.97.29.178/31 1; +202.97.29.180/30 1; +202.97.30.16/30 1; +202.97.31.64/30 1; +202.97.32.64/30 1; +202.97.32.70/31 1; +202.97.34.18/31 1; +202.97.36.2/31 1; +202.97.36.4/31 1; +202.97.36.25/32 1; +202.97.36.54/31 1; +202.97.36.72/31 1; +202.97.36.78/31 1; +202.97.36.80/30 1; +202.97.36.120/31 1; +202.97.36.124/31 1; +202.97.36.132/31 1; +202.97.36.138/31 1; +202.97.36.188/31 1; +202.97.36.196/31 1; +202.97.36.210/31 1; +202.97.36.212/31 1; +202.97.36.216/31 1; +202.97.36.222/31 1; +202.97.36.224/30 1; +202.97.36.236/31 1; +202.97.37.104/29 1; +202.97.37.112/28 1; +202.97.37.128/29 1; +202.97.37.136/30 1; +202.97.37.156/31 1; +202.97.37.168/31 1; +202.97.37.230/31 1; +202.97.37.234/31 1; +202.97.38.176/31 1; +202.97.39.206/31 1; +202.97.39.216/31 1; +202.97.39.244/30 1; +202.97.39.248/31 1; +202.97.40.12/31 1; +202.97.40.104/31 1; +202.97.40.156/31 1; +202.97.41.42/31 1; +202.97.41.142/31 1; +202.97.42.80/31 1; +202.97.42.112/30 1; +202.97.42.116/31 1; +202.97.42.250/31 1; +202.97.43.150/31 1; +202.97.43.172/31 1; +202.97.43.194/31 1; +202.97.44.208/31 1; +202.97.46.166/31 1; +202.97.46.198/31 1; +202.97.48.114/31 1; +202.97.48.116/30 1; +202.97.48.120/30 1; +202.97.48.138/31 1; +202.97.55.75/32 1; +202.97.55.164/31 1; +202.97.56.0/30 1; +202.97.56.4/31 1; +202.97.56.8/31 1; +202.97.56.12/31 1; +202.97.56.192/31 1; +202.97.56.196/31 1; +202.97.56.200/30 1; +202.97.56.204/31 1; +202.97.56.220/31 1; +202.97.60.0/31 1; +202.97.60.132/31 1; +202.97.60.142/31 1; +202.97.60.186/31 1; +202.97.60.234/31 1; +202.97.63.98/31 1; +202.97.63.102/31 1; +202.97.64.250/31 1; +202.97.64.252/30 1; +202.97.65.160/31 1; +202.97.65.168/31 1; +202.97.65.172/31 1; +202.97.65.224/31 1; +202.97.66.42/31 1; +202.97.66.46/31 1; +202.97.66.192/31 1; +202.97.66.224/31 1; +202.97.66.248/31 1; +202.97.66.252/31 1; +202.97.68.16/30 1; +202.97.68.20/31 1; +202.97.68.24/31 1; +202.97.68.32/30 1; +202.97.68.36/31 1; +202.97.68.68/31 1; +202.97.68.76/30 1; +202.97.68.80/31 1; +202.97.68.84/31 1; +202.97.68.94/31 1; +202.97.68.98/31 1; +202.97.68.102/31 1; +202.97.68.106/31 1; +202.97.69.0/31 1; +202.97.69.4/31 1; +202.97.69.32/31 1; +202.97.69.44/30 1; +202.97.69.48/31 1; +202.97.69.52/31 1; +202.97.69.64/30 1; +202.97.69.68/31 1; +202.97.69.72/31 1; +202.97.69.116/31 1; +202.97.69.192/29 1; +202.97.69.200/30 1; +202.97.69.204/31 1; +202.97.70.0/25 1; +202.97.70.128/29 1; +202.97.70.136/30 1; +202.97.70.140/31 1; +202.97.70.146/31 1; +202.97.70.148/30 1; +202.97.70.156/31 1; +202.97.70.162/31 1; +202.97.70.166/31 1; +202.97.70.170/31 1; +202.97.70.172/30 1; +202.97.70.176/29 1; +202.97.70.190/31 1; +202.97.70.194/31 1; +202.97.70.226/31 1; +202.97.70.234/31 1; +202.97.70.242/31 1; +202.97.70.244/30 1; +202.97.70.250/31 1; +202.97.70.252/31 1; +202.97.71.42/31 1; +202.97.71.72/31 1; +202.97.71.80/30 1; +202.97.71.84/31 1; +202.97.71.240/31 1; +202.97.72.138/31 1; +202.97.74.136/31 1; +202.97.76.36/31 1; +202.97.76.40/31 1; +202.97.76.44/31 1; +202.97.76.80/31 1; +202.97.76.84/31 1; +202.97.76.142/31 1; +202.97.77.64/31 1; +202.97.77.72/31 1; +202.97.77.96/31 1; +202.97.77.104/30 1; +202.97.77.108/31 1; +202.97.78.34/31 1; +202.97.78.50/31 1; +202.97.78.58/31 1; +202.97.78.162/31 1; +202.97.78.174/31 1; +202.97.78.190/31 1; +202.97.79.104/31 1; +202.97.79.112/31 1; +202.97.79.120/31 1; +202.97.80.164/31 1; +202.97.81.120/30 1; +202.97.81.124/31 1; +202.97.83.152/31 1; +202.97.83.160/31 1; +202.97.83.164/31 1; +202.97.83.192/30 1; +202.97.83.196/31 1; +202.97.83.236/30 1; +202.97.83.240/31 1; +202.97.83.248/31 1; +202.97.86.76/31 1; +202.97.86.84/31 1; +202.97.86.88/30 1; +202.97.86.92/31 1; +202.97.88.0/26 1; +202.97.88.64/27 1; +202.97.90.26/31 1; +202.97.92.112/28 1; +202.97.92.128/27 1; +202.97.95.32/28 1; +202.97.95.48/30 1; +202.97.95.52/31 1; +202.97.95.56/31 1; +202.97.95.60/30 1; +202.97.95.64/30 1; +202.97.95.68/31 1; +202.98.96.0/19 1; +202.98.128.0/19 1; +202.112.14.0/23 1; +202.112.16.0/24 1; +202.115.0.0/16 1; +202.127.241.0/25 1; +202.168.136.0/21 1; +202.202.48.0/20 1; +203.25.208.0/20 1; +203.62.2.0/24 1; +203.93.200.0/24 1; +203.191.152.0/22 1; +203.191.156.0/23 1; +203.196.28.0/22 1; +210.14.181.0/24 1; +210.15.64.0/18 1; +210.41.64.0/18 1; +210.41.128.0/17 1; +210.51.232.0/23 1; +210.52.103.0/24 1; +210.53.16.0/21 1; +210.74.66.0/23 1; +210.74.68.0/22 1; +210.74.72.0/21 1; +210.74.80.0/20 1; +210.75.84.0/24 1; +210.75.232.0/21 1; +211.83.0.0/20 1; +211.83.32.0/19 1; +211.83.64.0/18 1; +211.83.128.0/19 1; +211.83.232.0/21 1; +211.83.240.0/20 1; +211.95.160.0/19 1; +211.98.109.0/24 1; +211.98.110.0/23 1; +211.98.170.248/29 1; +211.98.209.0/24 1; +211.98.210.0/23 1; +211.98.212.0/24 1; +211.98.214.0/23 1; +211.136.23.0/27 1; +211.136.23.144/28 1; +211.137.80.0/20 1; +211.137.96.0/20 1; +211.149.128.0/17 1; +211.154.49.0/24 1; +211.154.50.0/25 1; +211.162.128.0/18 1; +211.162.216.0/21 1; +211.164.96.0/22 1; +211.165.128.0/24 1; +211.165.132.0/24 1; +218.6.128.0/17 1; +218.88.0.0/15 1; +218.104.200.0/21 1; +218.104.216.0/21 1; +218.106.136.0/22 1; +218.194.0.0/18 1; +218.194.64.0/19 1; +218.200.160.0/19 1; +218.200.192.0/19 1; +218.200.224.0/20 1; +218.200.242.0/29 1; +218.203.224.0/19 1; +218.205.224.0/19 1; +218.246.192.0/19 1; +219.72.202.192/28 1; +219.158.9.136/31 1; +219.158.9.144/31 1; +219.158.9.148/30 1; +219.158.9.152/31 1; +219.158.9.156/31 1; +219.158.9.178/31 1; +219.158.9.212/30 1; +219.158.9.216/29 1; +219.158.9.224/29 1; +219.158.9.232/30 1; +219.158.9.236/31 1; +219.158.9.240/31 1; +219.158.9.244/30 1; +219.158.9.248/30 1; +219.158.12.108/31 1; +219.158.12.208/31 1; +219.158.13.170/31 1; +219.158.13.178/31 1; +219.158.14.216/31 1; +219.158.15.96/31 1; +219.158.16.166/31 1; +219.158.16.212/31 1; +219.158.19.24/31 1; +219.158.19.28/31 1; +219.158.21.56/31 1; +219.158.22.164/31 1; +219.158.39.232/30 1; +219.158.40.132/30 1; +219.158.41.8/31 1; +219.158.44.248/30 1; +219.158.45.224/28 1; +219.158.45.240/30 1; +219.158.96.80/31 1; +219.158.97.12/31 1; +219.158.99.204/31 1; +219.158.102.102/31 1; +219.158.102.178/31 1; +219.158.104.86/31 1; +219.158.104.126/31 1; +219.158.104.200/29 1; +219.158.104.208/28 1; +219.158.104.224/28 1; +219.158.104.240/31 1; +219.158.105.10/31 1; +219.158.105.22/31 1; +219.158.106.0/31 1; +219.158.107.20/30 1; +219.158.107.24/30 1; +219.158.109.156/31 1; +219.158.109.218/31 1; +219.158.109.240/31 1; +219.158.110.32/29 1; +219.158.110.82/31 1; +219.158.110.86/31 1; +219.158.110.90/31 1; +219.158.110.100/31 1; +219.158.110.106/31 1; +219.158.110.160/30 1; +219.158.110.170/31 1; +219.158.110.172/30 1; +219.158.110.178/31 1; +219.158.110.202/31 1; +219.158.110.204/30 1; +219.158.110.208/29 1; +219.158.110.218/31 1; +219.158.110.222/31 1; +219.158.110.230/31 1; +219.158.110.232/30 1; +219.158.110.242/31 1; +219.158.111.0/31 1; +219.158.111.6/31 1; +219.158.112.228/30 1; +219.158.112.232/30 1; +219.158.113.250/31 1; +219.158.117.156/30 1; +219.221.52.0/22 1; +219.221.56.0/21 1; +219.221.128.0/18 1; +219.221.192.0/19 1; +219.243.234.0/24 1; +220.112.128.0/18 1; +220.115.64.0/19 1; +220.115.96.0/20 1; +220.166.0.0/16 1; +220.167.0.0/17 1; +220.205.34.0/23 1; +220.205.36.0/22 1; +220.207.168.0/21 1; +220.248.128.0/19 1; +221.10.0.0/16 1; +221.174.123.0/24 1; +221.176.18.182/31 1; +221.176.20.118/31 1; +221.176.20.122/31 1; +221.176.20.126/31 1; +221.176.20.130/31 1; +221.176.20.134/31 1; +221.176.20.136/29 1; +221.176.20.144/29 1; +221.176.20.160/30 1; +221.176.20.164/31 1; +221.176.20.208/28 1; +221.176.20.224/29 1; +221.176.20.240/30 1; +221.176.21.66/31 1; +221.176.21.72/31 1; +221.176.26.80/31 1; +221.176.26.126/31 1; +221.176.26.192/29 1; +221.176.26.216/29 1; +221.176.27.8/31 1; +221.176.27.104/31 1; +221.176.27.124/30 1; +221.176.27.128/31 1; +221.176.52.76/30 1; +221.177.120.0/21 1; +221.177.198.0/23 1; +221.177.200.0/23 1; +221.182.0.0/17 1; +221.183.9.106/31 1; +221.183.9.146/31 1; +221.183.9.162/31 1; +221.183.11.94/31 1; +221.183.11.96/30 1; +221.183.14.76/30 1; +221.183.15.164/30 1; +221.183.15.220/30 1; +221.183.15.224/29 1; +221.183.19.40/29 1; +221.183.20.120/30 1; +221.183.21.176/30 1; +221.183.22.90/31 1; +221.183.22.116/31 1; +221.183.22.142/31 1; +221.183.22.160/30 1; +221.183.22.164/31 1; +221.183.25.0/30 1; +221.183.25.4/31 1; +221.183.36.72/31 1; +221.183.36.196/31 1; +221.183.36.200/31 1; +221.183.36.216/29 1; +221.183.36.224/30 1; +221.183.36.228/31 1; +221.183.36.240/31 1; +221.183.40.218/31 1; +221.183.41.46/31 1; +221.183.42.122/31 1; +221.183.42.188/30 1; +221.183.42.192/28 1; +221.183.42.208/31 1; +221.183.42.212/31 1; +221.183.42.216/31 1; +221.183.42.220/31 1; +221.183.42.224/31 1; +221.183.42.228/31 1; +221.183.42.232/29 1; +221.183.42.240/31 1; +221.183.42.244/30 1; +221.183.42.248/29 1; +221.183.43.0/28 1; +221.183.43.16/31 1; +221.183.47.32/31 1; +221.183.47.104/29 1; +221.183.47.112/28 1; +221.183.47.128/28 1; +221.236.0.0/15 1; +222.18.0.0/16 1; +222.19.0.0/18 1; +222.19.100.0/22 1; +222.19.104.0/21 1; +222.19.149.0/24 1; +222.19.150.0/23 1; +222.53.0.0/17 1; +222.53.128.0/18 1; +222.53.192.0/19 1; +222.53.224.0/23 1; +222.53.228.0/22 1; +222.53.232.0/23 1; +222.53.240.0/20 1; +222.62.0.0/19 1; +222.196.0.0/20 1; +222.196.32.0/19 1; +222.196.64.0/18 1; +222.196.128.0/17 1; +222.197.0.0/17 1; +222.197.128.0/18 1; +222.197.250.0/23 1; +222.197.252.0/22 1; +222.198.16.0/20 1; +222.198.180.0/22 1; +222.198.184.0/21 1; +222.198.254.0/23 1; +222.208.0.0/13 1; +223.85.0.0/16 1; +223.86.0.0/15 1; +223.103.9.0/24 1; +223.103.82.0/23 1; +223.103.190.0/23 1; +223.103.192.0/21 1; +223.104.9.0/24 1; +223.104.214.0/23 1; +223.104.216.0/21 1; +223.104.224.0/21 1; +223.104.232.0/24 1; +223.128.0.0/16 1; +223.129.0.0/17 1; +223.129.128.0/18 1; +223.129.192.0/19 1; +223.129.224.0/20 1; +223.208.0.0/19 1; +2001:250:2000::/46 1; +2001:250:2004::/47 1; +2001:250:2006::/48 1; +2400:6da0::/32 1; +2400:ce00::/32 1; +2401:1200::/32 1; +2401:7700::/32 1; +2401:a9a0::/32 1; +2403:eac0::/32 1; +2404:d80::/32 1; +2405:a680::/32 1; +2406:840:9960::/47 1; +2406:840:9966::/47 1; +2406:840:9968::/46 1; +2406:840:996c::/47 1; +2406:840:996e::/48 1; +2406:840:fe00::/43 1; +2406:840:fe20::/46 1; +2406:840:fe24::/47 1; +2406:840:fe26::/48 1; +2406:840:fe72::/48 1; +2406:1480::/32 1; +2406:a7c0::/32 1; +2407:3540::/32 1; +2407:3740::/32 1; +2407:6040::/32 1; +2408:4006::/32 1; +2408:8469:100::/40 1; +2408:8469:200::/40 1; +2408:8469:400::/40 1; +2408:8469:f00::/40 1; +2408:8469:2800::/40 1; +2408:8469:4000::/40 1; +2408:8469:4400::/40 1; +2408:8469:5300::/40 1; +2408:8469:5900::/40 1; +240e:16::/31 1; +240e:476:4200::/40 1; +240e:476:ae00::/40 1; +2606:54c0:1f00::/45 1; +2606:54c0:2408::/45 1; +2606:54c0:2410::/44 1; +2606:54c0:2420::/43 1; +2606:54c0:2440::/43 1; +2606:54c3:0:27a::/64 1; +2606:54c3:0:2df::/64 1; +2606:54c3:0:3a9::/64 1; +2606:54c3:0:3dc::/64 1; +2606:54c3:0:5a1::/64 1; +2606:54c3:0:6d7::/64 1; +2606:54c3:0:d58::/64 1; +2606:54c3:0:dad::/64 1; +2606:54c3:0:f8d::/64 1; +2606:54c3:0:1025::/64 1; +2606:54c3:0:1151::/64 1; +2606:54c3:0:1698::/64 1; +2a09:bac1:1980:48::/64 1; +2a09:bac1:1980:78::/64 1; +2a09:bac1:1980:6c48::/64 1; +2a09:bac1:1980:8588::/64 1; +2a09:bac1:1980:8600::/64 1; +2a09:bac1:1980:8620::/64 1; +2a09:bac1:1980:8790::/64 1; +2a09:bac1:1980:88f8::/64 1; +2a09:bac1:1980:8918::/64 1; +2a09:bac1:1980:8d10::/64 1; +2a09:bac1:1980:8d40::/64 1; +2a09:bac1:1980:9018::/64 1; +2a09:bac1:19a0:48::/64 1; +2a09:bac1:19a0:78::/64 1; +2a09:bac1:19a0:6c48::/64 1; +2a09:bac1:19a0:8588::/64 1; +2a09:bac1:19a0:8600::/64 1; +2a09:bac1:19a0:8620::/64 1; +2a09:bac1:19a0:8790::/64 1; +2a09:bac1:19a0:88f8::/64 1; +2a09:bac1:19a0:8918::/64 1; +2a09:bac1:19a0:8d10::/64 1; +2a09:bac1:19a0:8d40::/64 1; +2a09:bac1:19a0:9018::/64 1; +2a09:bac1:19c0:48::/64 1; +2a09:bac1:19c0:78::/64 1; +2a09:bac1:19c0:6c48::/64 1; +2a09:bac1:19c0:8588::/64 1; +2a09:bac1:19c0:8600::/64 1; +2a09:bac1:19c0:8620::/64 1; +2a09:bac1:19c0:8790::/64 1; +2a09:bac1:19c0:88f8::/64 1; +2a09:bac1:19c0:8918::/64 1; +2a09:bac1:19c0:8d10::/64 1; +2a09:bac1:19c0:8d40::/64 1; +2a09:bac1:19c0:9018::/64 1; +2a09:bac1:19e0:48::/64 1; +2a09:bac1:19e0:78::/64 1; +2a09:bac1:19e0:6c48::/64 1; +2a09:bac1:19e0:8588::/64 1; +2a09:bac1:19e0:8600::/64 1; +2a09:bac1:19e0:8620::/64 1; +2a09:bac1:19e0:8790::/64 1; +2a09:bac1:19e0:88f8::/64 1; +2a09:bac1:19e0:8918::/64 1; +2a09:bac1:19e0:8d10::/64 1; +2a09:bac1:19e0:8d40::/64 1; +2a09:bac1:19e0:9018::/64 1; +2a09:bac2:1f00::/45 1; +2a09:bac2:2408::/45 1; +2a09:bac2:2410::/44 1; +2a09:bac2:2420::/43 1; +2a09:bac2:2440::/43 1; +2a09:bac3:1f00::/45 1; +2a09:bac3:2408::/45 1; +2a09:bac3:2410::/44 1; +2a09:bac3:2420::/43 1; +2a09:bac3:2440::/43 1; +2a09:bac5:1f30::/45 1; +2a09:bac5:2438::/45 1; +2a09:bac5:2440::/42 1; +2a09:bac5:2480::/44 1; +2a09:bac6:1f30::/45 1; +2a09:bac6:2438::/45 1; +2a09:bac6:2440::/42 1; +2a09:bac6:2480::/44 1; +2a0a:6040:ea0::/48 1; +2a0e:aa07:f050::/44 1; +2a0e:b107:1f0::/44 1; +2a0f:5707:fff1::/48 1; +2a0f:5707:fff2::/47 1; +2a12:3fc6::/40 1; diff --git a/minigate/root/usr/lib/minigate/geo/520000.conf b/minigate/root/usr/lib/minigate/geo/520000.conf new file mode 100644 index 000000000..419e55969 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/520000.conf @@ -0,0 +1,390 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 贵州省 +1.48.0.0/15 1; +1.204.0.0/14 1; +36.111.160.0/19 1; +36.114.0.0/16 1; +36.193.98.0/23 1; +36.193.100.0/23 1; +36.193.102.0/24 1; +39.144.41.0/24 1; +39.144.42.0/24 1; +42.123.96.0/19 1; +42.247.2.200/29 1; +42.247.9.112/28 1; +42.247.14.48/28 1; +42.247.20.64/28 1; +42.247.23.128/28 1; +42.247.26.160/28 1; +42.247.27.16/28 1; +42.247.33.160/28 1; +42.247.35.192/27 1; +42.247.45.64/28 1; +42.247.45.96/28 1; +43.224.54.24/29 1; +43.236.68.0/22 1; +43.243.156.0/22 1; +43.247.208.0/22 1; +43.250.116.0/22 1; +43.250.216.0/22 1; +43.254.100.0/22 1; +43.255.192.0/22 1; +45.248.88.0/22 1; +45.251.92.0/22 1; +45.251.100.0/22 1; +58.16.0.0/16 1; +58.42.0.0/16 1; +59.51.128.0/17 1; +59.80.0.0/16 1; +61.159.128.0/18 1; +61.189.128.0/17 1; +61.236.176.0/20 1; +61.236.192.0/20 1; +61.237.2.28/30 1; +61.237.3.160/30 1; +61.237.15.32/27 1; +61.237.91.0/24 1; +61.237.97.100/30 1; +61.237.122.142/31 1; +61.237.124.106/31 1; +61.237.124.110/31 1; +61.237.124.114/31 1; +61.243.0.0/19 1; +61.243.32.0/20 1; +101.238.0.0/16 1; +103.3.152.0/22 1; +103.22.24.0/22 1; +103.32.68.0/22 1; +103.41.232.0/22 1; +103.42.64.0/22 1; +103.76.72.0/22 1; +103.81.4.0/22 1; +103.85.144.0/22 1; +103.90.152.0/22 1; +103.112.88.0/21 1; +103.115.248.0/22 1; +103.205.44.0/22 1; +103.210.156.0/22 1; +103.215.140.0/22 1; +103.216.228.0/22 1; +103.220.56.0/22 1; +103.220.64.0/22 1; +103.221.88.0/22 1; +103.235.184.0/22 1; +103.236.220.0/22 1; +103.238.32.0/22 1; +103.238.44.0/22 1; +103.242.212.0/22 1; +106.32.0.0/16 1; +106.43.0.0/16 1; +106.108.0.0/15 1; +110.216.0.0/16 1; +111.85.0.0/16 1; +111.120.0.0/14 1; +111.124.0.0/16 1; +112.54.136.0/21 1; +112.54.220.0/22 1; +112.54.224.0/22 1; +112.62.96.0/20 1; +113.125.0.0/16 1; +114.135.0.0/16 1; +114.138.0.0/15 1; +115.168.55.0/24 1; +115.168.87.0/24 1; +115.181.64.0/20 1; +115.181.208.0/22 1; +117.128.0.128/26 1; +117.135.192.0/18 1; +117.136.17.0/24 1; +117.142.106.0/23 1; +117.142.108.0/24 1; +117.187.0.0/16 1; +117.188.0.0/15 1; +119.0.0.0/15 1; +121.49.192.0/19 1; +121.49.224.0/20 1; +122.9.128.0/19 1; +122.9.160.0/20 1; +122.72.32.128/25 1; +122.72.109.0/24 1; +123.94.25.0/25 1; +123.197.0.0/21 1; +123.249.0.0/17 1; +124.203.128.0/22 1; +125.218.190.0/24 1; +139.5.56.0/22 1; +139.9.144.0/20 1; +139.9.224.0/19 1; +140.246.0.0/16 1; +150.242.224.0/22 1; +157.119.28.0/22 1; +158.60.0.0/16 1; +159.226.151.0/24 1; +175.191.64.0/18 1; +182.43.5.0/24 1; +182.43.6.0/23 1; +182.43.8.0/21 1; +182.43.16.0/20 1; +182.43.32.0/19 1; +182.43.64.0/18 1; +182.43.128.0/17 1; +202.97.14.164/30 1; +202.97.14.168/30 1; +202.97.15.26/31 1; +202.97.17.18/31 1; +202.97.17.20/30 1; +202.97.17.24/29 1; +202.97.17.32/27 1; +202.97.19.18/31 1; +202.97.19.20/30 1; +202.97.19.24/29 1; +202.97.25.16/28 1; +202.97.25.32/27 1; +202.97.25.64/28 1; +202.97.36.10/31 1; +202.97.36.12/30 1; +202.97.40.38/31 1; +202.97.40.66/31 1; +202.97.40.106/31 1; +202.97.40.158/31 1; +202.97.40.214/31 1; +202.97.42.122/31 1; +202.97.43.122/31 1; +202.97.69.2/31 1; +202.97.69.50/31 1; +202.97.69.70/31 1; +202.97.69.74/31 1; +202.97.69.76/30 1; +202.97.69.80/30 1; +202.97.69.90/31 1; +202.97.69.94/31 1; +202.97.69.114/31 1; +202.97.69.118/31 1; +202.97.69.120/29 1; +202.97.69.128/28 1; +202.97.69.144/29 1; +202.97.69.156/31 1; +202.97.69.190/31 1; +202.97.69.206/31 1; +202.97.69.210/31 1; +202.97.69.212/30 1; +202.97.69.222/31 1; +202.97.69.250/31 1; +202.97.69.252/30 1; +202.97.71.102/31 1; +202.97.74.44/31 1; +202.98.192.0/19 1; +202.101.64.0/19 1; +202.112.38.212/30 1; +202.179.160.0/22 1; +203.6.224.0/20 1; +203.33.206.0/23 1; +203.33.214.0/23 1; +203.33.224.0/23 1; +203.34.48.0/23 1; +203.34.56.0/23 1; +203.34.92.0/24 1; +203.34.152.0/23 1; +203.55.2.0/23 1; +203.55.4.0/24 1; +203.55.10.0/24 1; +203.55.13.0/24 1; +203.55.22.0/24 1; +203.55.116.0/23 1; +203.56.68.0/23 1; +203.56.82.0/23 1; +203.56.84.0/23 1; +203.57.12.0/23 1; +203.57.70.0/23 1; +203.57.224.0/20 1; +203.57.246.0/23 1; +203.57.254.0/23 1; +203.80.57.0/24 1; +203.86.254.0/23 1; +203.93.80.0/20 1; +203.95.204.0/22 1; +203.174.4.0/24 1; +203.189.192.0/19 1; +203.189.240.0/22 1; +203.193.224.0/19 1; +203.195.64.0/19 1; +210.14.190.0/24 1; +210.14.250.0/24 1; +210.40.0.0/17 1; +210.40.128.0/19 1; +210.40.160.0/20 1; +210.75.92.64/26 1; +211.83.160.0/20 1; +211.92.136.0/21 1; +211.98.108.0/24 1; +211.98.115.0/24 1; +211.98.139.0/24 1; +211.98.213.0/24 1; +211.139.0.0/20 1; +218.86.128.0/17 1; +218.194.224.0/19 1; +218.201.192.0/18 1; +219.141.0.0/17 1; +219.151.0.0/19 1; +219.158.8.106/31 1; +219.158.8.190/31 1; +219.158.9.86/31 1; +219.158.9.146/31 1; +219.158.9.154/31 1; +219.158.9.158/31 1; +219.158.9.254/31 1; +219.158.10.0/30 1; +219.158.10.6/31 1; +219.158.10.36/31 1; +219.158.12.6/31 1; +219.158.12.106/31 1; +219.158.14.134/31 1; +219.158.14.218/31 1; +219.158.14.220/30 1; +219.158.15.98/31 1; +219.158.15.110/31 1; +219.158.15.142/31 1; +219.158.17.134/31 1; +219.158.19.30/31 1; +219.158.23.174/31 1; +219.158.23.178/31 1; +219.158.24.62/31 1; +219.158.40.186/31 1; +219.158.44.252/30 1; +219.158.99.90/31 1; +219.158.99.138/31 1; +219.158.99.212/30 1; +219.158.99.216/30 1; +219.158.104.70/31 1; +219.158.106.2/31 1; +219.158.106.26/31 1; +219.158.107.82/31 1; +219.158.107.100/30 1; +219.158.107.104/30 1; +219.158.108.90/31 1; +219.158.108.92/30 1; +219.158.117.160/30 1; +219.234.9.0/24 1; +219.234.10.0/23 1; +219.234.12.0/22 1; +219.243.237.0/24 1; +220.112.208.0/20 1; +220.171.192.0/18 1; +220.172.0.0/16 1; +220.197.0.0/17 1; +220.197.128.0/18 1; +220.197.192.0/19 1; +220.205.116.0/22 1; +221.13.0.0/18 1; +221.176.20.154/31 1; +221.176.20.156/30 1; +221.177.130.0/23 1; +221.177.202.0/23 1; +221.183.12.148/30 1; +221.183.13.88/29 1; +221.183.22.166/31 1; +221.183.22.168/30 1; +221.183.22.226/31 1; +221.183.25.6/31 1; +221.183.25.156/30 1; +221.183.25.160/29 1; +221.183.25.168/30 1; +221.183.27.140/30 1; +221.183.27.144/30 1; +221.183.42.110/31 1; +221.183.42.226/31 1; +221.183.46.124/30 1; +221.183.46.128/29 1; +221.183.49.48/29 1; +221.183.51.16/29 1; +222.19.128.0/20 1; +222.19.144.0/22 1; +222.19.148.0/24 1; +222.19.152.0/21 1; +222.19.160.0/19 1; +222.54.0.0/16 1; +222.85.128.0/17 1; +222.86.0.0/15 1; +222.198.192.0/19 1; +222.198.224.0/20 1; +222.198.240.0/21 1; +222.198.248.0/22 1; +222.198.252.0/23 1; +223.103.24.0/24 1; +223.104.24.0/24 1; +223.104.94.0/23 1; +223.104.96.0/23 1; +223.209.0.0/18 1; +223.255.253.0/24 1; +2001:250:2c00::/48 1; +2400:73e0::/32 1; +2401:b580::/32 1; +2402:66c0::/32 1; +2402:6fc0::/32 1; +2402:7040::/32 1; +2402:70c0::/32 1; +2402:f140::/32 1; +2404:1080::/32 1; +2404:6f80::/32 1; +2406:840:fe80::/48 1; +2406:43c0::/32 1; +2407:f40::/32 1; +2408:8463:1300::/40 1; +2408:846a:1d00::/40 1; +240e:438:20::/43 1; +240e:438:40::/42 1; +240e:438:80::/41 1; +240e:438:100::/40 1; +240e:438:8a20::/43 1; +240e:438:8a40::/42 1; +240e:438:8a80::/41 1; +240e:438:8b00::/40 1; +2606:54c0:2110::/44 1; +2606:54c0:2120::/43 1; +2606:54c0:2140::/45 1; +2606:54c3:0:30f::/64 1; +2606:54c3:0:50b::/64 1; +2606:54c3:0:729::/64 1; +2606:54c3:0:7eb::/64 1; +2606:54c3:0:ca0::/64 1; +2606:54c3:0:f6a::/64 1; +2606:54c3:0:149b::/64 1; +2a09:bac1:1980:6848::/64 1; +2a09:bac1:1980:6f00::/64 1; +2a09:bac1:1980:6f60::/64 1; +2a09:bac1:1980:6fe0::/64 1; +2a09:bac1:1980:79f8::/64 1; +2a09:bac1:1980:7be8::/64 1; +2a09:bac1:1980:7d28::/64 1; +2a09:bac1:19a0:6848::/64 1; +2a09:bac1:19a0:6f00::/64 1; +2a09:bac1:19a0:6f60::/64 1; +2a09:bac1:19a0:6fe0::/64 1; +2a09:bac1:19a0:79f8::/64 1; +2a09:bac1:19a0:7be8::/64 1; +2a09:bac1:19a0:7d28::/64 1; +2a09:bac1:19c0:6848::/64 1; +2a09:bac1:19c0:6f00::/64 1; +2a09:bac1:19c0:6f60::/64 1; +2a09:bac1:19c0:6fe0::/64 1; +2a09:bac1:19c0:79f8::/64 1; +2a09:bac1:19c0:7be8::/64 1; +2a09:bac1:19c0:7d28::/64 1; +2a09:bac1:19e0:6848::/64 1; +2a09:bac1:19e0:6f00::/64 1; +2a09:bac1:19e0:6f60::/64 1; +2a09:bac1:19e0:6fe0::/64 1; +2a09:bac1:19e0:79f8::/64 1; +2a09:bac1:19e0:7be8::/64 1; +2a09:bac1:19e0:7d28::/64 1; +2a09:bac2:2110::/44 1; +2a09:bac2:2120::/43 1; +2a09:bac2:2140::/45 1; +2a09:bac3:2110::/44 1; +2a09:bac3:2120::/43 1; +2a09:bac3:2140::/45 1; +2a09:bac5:2140::/43 1; +2a09:bac5:2160::/44 1; +2a09:bac5:2170::/45 1; +2a09:bac6:2140::/43 1; +2a09:bac6:2160::/44 1; +2a09:bac6:2170::/45 1; diff --git a/minigate/root/usr/lib/minigate/geo/530000.conf b/minigate/root/usr/lib/minigate/geo/530000.conf new file mode 100644 index 000000000..e4a563ad0 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/530000.conf @@ -0,0 +1,389 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 云南省 +14.204.0.0/15 1; +36.134.74.0/23 1; +36.193.103.0/24 1; +36.193.104.0/22 1; +36.193.108.0/23 1; +39.128.0.0/15 1; +39.130.0.0/16 1; +39.144.145.0/24 1; +39.144.147.0/24 1; +42.242.0.0/15 1; +42.245.216.0/26 1; +42.247.9.144/29 1; +42.247.17.240/28 1; +42.247.20.208/28 1; +42.247.23.240/28 1; +42.247.26.16/28 1; +42.247.27.0/28 1; +42.247.35.160/27 1; +42.247.39.208/28 1; +42.247.42.192/28 1; +42.247.45.0/28 1; +42.247.46.32/28 1; +43.224.54.80/29 1; +43.228.76.0/22 1; +43.236.112.0/22 1; +43.248.108.0/22 1; +43.254.252.0/22 1; +58.207.72.0/21 1; +59.43.73.2/31 1; +59.81.44.0/24 1; +59.81.92.0/23 1; +60.160.0.0/15 1; +61.138.192.0/19 1; +61.159.192.0/18 1; +61.166.0.0/16 1; +61.232.232.0/22 1; +61.237.2.24/30 1; +61.237.97.12/30 1; +61.237.121.106/31 1; +61.237.123.228/30 1; +61.237.124.118/31 1; +61.237.124.130/31 1; +61.243.48.0/20 1; +101.46.96.0/20 1; +101.47.120.0/21 1; +103.3.116.0/22 1; +103.22.28.0/22 1; +103.23.8.0/22 1; +103.32.112.0/22 1; +103.47.80.0/22 1; +103.94.88.0/22 1; +103.203.140.0/22 1; +103.210.96.0/22 1; +103.216.156.0/22 1; +103.241.160.0/22 1; +106.56.0.0/13 1; +112.54.16.0/20 1; +112.62.112.0/20 1; +112.62.128.0/20 1; +112.112.0.0/14 1; +112.116.0.0/15 1; +113.54.32.0/19 1; +113.55.0.0/16 1; +115.168.57.0/24 1; +115.168.89.0/24 1; +116.52.0.0/14 1; +116.129.0.0/17 1; +116.129.128.0/18 1; +116.129.192.0/19 1; +116.248.0.0/15 1; +117.75.0.0/16 1; +117.136.16.0/24 1; +117.136.71.0/24 1; +117.136.72.0/23 1; +117.136.80.0/24 1; +117.136.84.0/23 1; +117.142.20.0/23 1; +117.142.36.0/24 1; +119.62.0.0/16 1; +121.49.128.0/20 1; +121.49.144.0/21 1; +121.49.152.0/23 1; +121.49.154.0/24 1; +121.49.160.0/19 1; +122.72.33.0/25 1; +122.72.102.0/23 1; +123.74.0.0/17 1; +123.86.0.0/15 1; +123.94.25.128/25 1; +125.213.104.0/21 1; +159.226.69.0/24 1; +159.226.148.0/23 1; +159.226.249.0/24 1; +180.84.128.0/19 1; +180.129.128.0/17 1; +180.130.0.0/16 1; +182.240.0.0/13 1; +183.224.0.0/15 1; +202.97.19.34/31 1; +202.97.19.36/30 1; +202.97.19.136/30 1; +202.97.19.152/31 1; +202.97.19.164/31 1; +202.97.19.224/31 1; +202.97.24.2/31 1; +202.97.24.122/31 1; +202.97.24.124/30 1; +202.97.28.240/29 1; +202.97.28.248/30 1; +202.97.28.252/31 1; +202.97.36.166/31 1; +202.97.36.170/31 1; +202.97.36.174/31 1; +202.97.36.178/31 1; +202.97.36.230/31 1; +202.97.36.234/31 1; +202.97.37.50/31 1; +202.97.37.54/31 1; +202.97.37.82/31 1; +202.97.39.18/31 1; +202.97.39.212/31 1; +202.97.42.90/31 1; +202.97.43.26/31 1; +202.97.43.110/31 1; +202.97.43.162/31 1; +202.97.43.164/30 1; +202.97.43.174/31 1; +202.97.44.72/31 1; +202.97.44.84/31 1; +202.97.44.88/31 1; +202.97.44.92/31 1; +202.97.44.104/31 1; +202.97.44.200/31 1; +202.97.46.156/31 1; +202.97.46.160/31 1; +202.97.47.52/30 1; +202.97.47.56/31 1; +202.97.47.206/31 1; +202.97.47.232/31 1; +202.97.70.142/31 1; +202.97.70.230/31 1; +202.97.70.238/31 1; +202.97.70.254/31 1; +202.97.71.202/31 1; +202.97.71.204/30 1; +202.97.71.210/31 1; +202.97.71.212/30 1; +202.97.74.46/31 1; +202.97.76.2/31 1; +202.97.76.4/30 1; +202.97.76.8/30 1; +202.97.76.14/31 1; +202.97.76.30/31 1; +202.97.76.38/31 1; +202.97.76.46/31 1; +202.97.76.50/31 1; +202.97.76.54/31 1; +202.97.76.58/31 1; +202.97.76.62/31 1; +202.97.76.66/31 1; +202.97.76.74/31 1; +202.97.76.78/31 1; +202.97.76.86/31 1; +202.97.76.88/29 1; +202.97.76.96/28 1; +202.97.76.112/30 1; +202.97.76.134/31 1; +202.97.76.138/31 1; +202.97.76.166/31 1; +202.97.76.168/29 1; +202.97.76.176/28 1; +202.97.76.192/29 1; +202.97.76.206/31 1; +202.97.76.210/31 1; +202.97.76.212/30 1; +202.97.76.230/31 1; +202.97.76.232/29 1; +202.97.76.240/28 1; +202.97.77.66/31 1; +202.97.77.74/31 1; +202.97.77.78/31 1; +202.97.80.54/31 1; +202.97.82.194/31 1; +202.97.83.24/30 1; +202.97.83.28/31 1; +202.97.83.130/31 1; +202.97.86.86/31 1; +202.97.89.206/31 1; +202.97.89.208/28 1; +202.97.95.58/31 1; +202.98.64.0/19 1; +202.98.160.0/19 1; +202.127.253.128/26 1; +202.203.0.0/16 1; +203.89.0.0/22 1; +203.93.64.0/20 1; +210.14.188.0/23 1; +210.14.249.0/24 1; +210.40.176.0/20 1; +210.40.192.0/19 1; +210.40.224.0/20 1; +210.40.240.0/21 1; +210.40.248.0/24 1; +210.40.252.0/22 1; +210.72.88.0/21 1; +210.75.92.128/26 1; +211.83.176.0/20 1; +211.92.144.0/20 1; +211.92.160.0/19 1; +211.92.192.0/19 1; +211.92.224.0/20 1; +211.92.240.0/22 1; +211.93.172.0/22 1; +211.93.176.0/22 1; +211.93.180.0/23 1; +211.98.72.0/23 1; +211.98.74.0/24 1; +211.98.161.0/24 1; +211.98.167.0/24 1; +211.98.171.160/29 1; +211.98.174.0/23 1; +211.139.16.0/20 1; +218.62.128.0/17 1; +218.63.0.0/16 1; +218.104.208.0/21 1; +218.194.96.0/19 1; +218.194.192.0/19 1; +218.202.0.0/18 1; +218.206.32.0/19 1; +219.158.9.138/31 1; +219.158.10.34/31 1; +219.158.12.66/31 1; +219.158.15.114/31 1; +219.158.15.122/31 1; +219.158.15.124/30 1; +219.158.15.128/30 1; +219.158.15.170/31 1; +219.158.16.6/31 1; +219.158.17.142/31 1; +219.158.20.34/31 1; +219.158.20.38/31 1; +219.158.20.254/31 1; +219.158.21.246/31 1; +219.158.24.82/31 1; +219.158.96.82/31 1; +219.158.97.14/31 1; +219.158.99.206/31 1; +219.158.102.100/31 1; +219.158.102.210/31 1; +219.158.104.52/31 1; +219.158.106.22/31 1; +219.158.106.42/31 1; +219.158.106.44/30 1; +219.158.106.48/30 1; +219.158.106.66/31 1; +219.158.108.74/31 1; +219.158.108.102/31 1; +219.158.108.122/31 1; +219.158.109.58/31 1; +219.158.109.62/31 1; +219.158.109.242/31 1; +219.158.109.244/30 1; +219.158.117.164/30 1; +219.221.224.0/19 1; +219.243.236.0/24 1; +220.163.0.0/16 1; +220.164.0.0/15 1; +220.192.188.0/22 1; +220.192.192.0/20 1; +220.192.208.0/21 1; +220.197.224.0/19 1; +220.207.188.0/22 1; +220.207.252.0/23 1; +221.3.128.0/17 1; +221.176.18.140/31 1; +221.176.18.144/31 1; +221.176.20.38/31 1; +221.176.27.106/31 1; +221.177.128.0/23 1; +221.177.207.0/24 1; +221.177.208.0/24 1; +221.183.9.78/31 1; +221.183.9.82/31 1; +221.183.9.86/31 1; +221.183.9.90/31 1; +221.183.9.92/30 1; +221.183.9.104/31 1; +221.183.9.170/31 1; +221.183.11.92/31 1; +221.183.13.96/29 1; +221.183.28.68/30 1; +221.183.28.72/30 1; +221.183.37.70/31 1; +221.183.40.38/31 1; +221.183.41.30/31 1; +221.183.42.114/31 1; +221.183.42.182/31 1; +221.183.42.230/31 1; +221.183.43.18/31 1; +221.183.46.136/29 1; +221.183.46.144/30 1; +221.183.49.56/29 1; +221.183.49.64/27 1; +221.183.49.96/28 1; +221.183.51.24/29 1; +221.183.51.32/29 1; +221.213.0.0/16 1; +222.19.192.0/18 1; +222.56.0.0/17 1; +222.172.128.0/17 1; +222.197.192.0/19 1; +222.197.224.0/20 1; +222.197.240.0/21 1; +222.197.248.0/23 1; +222.219.0.0/16 1; +222.220.0.0/15 1; +223.103.12.0/24 1; +223.103.88.0/23 1; +223.104.12.0/24 1; +223.104.238.0/23 1; +223.104.240.0/23 1; +223.210.16.0/23 1; +2001:df0:2e00::/48 1; +2400:ebc0::/32 1; +2401:ca20::/32 1; +2404:a180::/32 1; +240a:42de:400::/40 1; +240a:42de:a00::/40 1; +240a:42e4::/40 1; +240a:42e4:5200::/40 1; +240a:42e4:fe00::/40 1; +240e:44d::/42 1; +240e:44d:2b00::/42 1; +240e:44d:2d00::/42 1; +240e:44d:3900::/42 1; +240e:44d:6840::/42 1; +240e:44d:6880::/41 1; +240e:44d:8000::/42 1; +2606:54c0:25b0::/44 1; +2606:54c0:25c0::/43 1; +2606:54c0:25e0::/45 1; +2606:54c3:0:72a::/64 1; +2606:54c3:0:dd6::/64 1; +2606:54c3:0:1026::/64 1; +2606:54c3:0:12c7::/64 1; +2606:54c3:0:12d7::/64 1; +2606:54c3:0:15bb::/64 1; +2606:54c3:0:1691::/64 1; +2a09:bac1:1980:37b8::/64 1; +2a09:bac1:1980:42d0::/64 1; +2a09:bac1:1980:44a0::/64 1; +2a09:bac1:1980:63b0::/64 1; +2a09:bac1:1980:65a0::/64 1; +2a09:bac1:1980:6ac0::/64 1; +2a09:bac1:1980:6ce0::/64 1; +2a09:bac1:19a0:37b8::/64 1; +2a09:bac1:19a0:42d0::/64 1; +2a09:bac1:19a0:44a0::/64 1; +2a09:bac1:19a0:63b0::/64 1; +2a09:bac1:19a0:65a0::/64 1; +2a09:bac1:19a0:6ac0::/64 1; +2a09:bac1:19a0:6ce0::/64 1; +2a09:bac1:19c0:37b8::/64 1; +2a09:bac1:19c0:42d0::/64 1; +2a09:bac1:19c0:44a0::/64 1; +2a09:bac1:19c0:63b0::/64 1; +2a09:bac1:19c0:65a0::/64 1; +2a09:bac1:19c0:6ac0::/64 1; +2a09:bac1:19c0:6ce0::/64 1; +2a09:bac1:19e0:37b8::/64 1; +2a09:bac1:19e0:42d0::/64 1; +2a09:bac1:19e0:44a0::/64 1; +2a09:bac1:19e0:63b0::/64 1; +2a09:bac1:19e0:65a0::/64 1; +2a09:bac1:19e0:6ac0::/64 1; +2a09:bac1:19e0:6ce0::/64 1; +2a09:bac2:25b0::/44 1; +2a09:bac2:25c0::/43 1; +2a09:bac2:25e0::/45 1; +2a09:bac3:25b0::/44 1; +2a09:bac3:25c0::/43 1; +2a09:bac3:25e0::/45 1; +2a09:bac5:25e0::/43 1; +2a09:bac5:2600::/44 1; +2a09:bac5:2610::/45 1; +2a09:bac6:25e0::/43 1; +2a09:bac6:2600::/44 1; +2a09:bac6:2610::/45 1; diff --git a/minigate/root/usr/lib/minigate/geo/540000.conf b/minigate/root/usr/lib/minigate/geo/540000.conf new file mode 100644 index 000000000..b4ac09a06 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/540000.conf @@ -0,0 +1,128 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 西藏 +27.98.224.0/19 1; +42.157.144.0/20 1; +42.157.200.0/21 1; +42.157.208.0/20 1; +42.157.224.0/19 1; +43.242.164.0/22 1; +43.255.232.0/22 1; +59.81.102.0/23 1; +101.248.0.0/15 1; +103.3.124.0/22 1; +103.22.44.0/22 1; +103.53.248.0/22 1; +103.239.208.0/22 1; +111.11.192.0/18 1; +112.54.254.0/23 1; +112.58.240.0/20 1; +113.62.0.0/15 1; +115.168.58.0/24 1; +115.168.90.0/24 1; +116.172.128.0/17 1; +117.136.18.0/24 1; +117.136.146.0/23 1; +117.136.148.0/22 1; +117.136.152.0/21 1; +117.136.160.0/20 1; +117.136.176.0/23 1; +117.180.206.0/23 1; +117.180.208.0/20 1; +117.180.224.0/19 1; +124.31.0.0/16 1; +202.97.28.202/31 1; +202.97.28.206/31 1; +202.97.44.74/31 1; +202.97.44.86/31 1; +202.97.44.90/31 1; +202.97.44.94/31 1; +202.97.44.202/31 1; +202.97.46.158/31 1; +202.97.46.162/31 1; +202.97.47.58/31 1; +202.97.47.186/31 1; +202.97.47.202/31 1; +202.97.47.210/31 1; +202.97.47.214/31 1; +202.97.47.216/30 1; +202.97.47.222/31 1; +202.97.47.234/31 1; +202.97.47.236/30 1; +202.97.47.242/31 1; +202.97.81.126/31 1; +202.97.81.128/29 1; +202.97.95.210/31 1; +202.97.95.212/30 1; +202.97.95.222/31 1; +202.98.224.0/19 1; +202.112.38.248/30 1; +210.41.0.0/20 1; +210.41.16.0/21 1; +210.72.14.0/25 1; +210.75.92.0/26 1; +211.92.244.0/22 1; +211.92.248.0/21 1; +211.139.64.0/20 1; +218.206.180.0/22 1; +218.206.184.0/22 1; +218.206.188.0/24 1; +218.207.226.0/23 1; +218.207.228.0/22 1; +218.207.232.0/23 1; +218.207.234.0/24 1; +219.151.32.0/19 1; +219.151.64.0/18 1; +219.158.12.210/31 1; +219.158.17.22/31 1; +219.158.21.58/31 1; +219.158.21.126/31 1; +219.158.21.134/31 1; +219.158.21.138/31 1; +219.158.21.142/31 1; +219.158.96.122/31 1; +219.158.96.158/31 1; +219.158.98.130/31 1; +219.158.98.174/31 1; +219.158.102.22/31 1; +219.158.104.150/31 1; +219.158.104.242/31 1; +219.158.104.246/31 1; +219.158.104.248/30 1; +219.158.116.58/31 1; +219.243.238.0/24 1; +220.182.0.0/18 1; +220.207.242.0/23 1; +221.13.64.0/19 1; +221.176.20.202/31 1; +221.176.20.204/30 1; +221.176.26.42/31 1; +221.176.26.44/30 1; +221.176.26.82/31 1; +221.177.132.0/22 1; +221.179.224.0/19 1; +221.183.10.154/31 1; +221.183.36.14/31 1; +221.183.36.74/31 1; +221.183.36.90/31 1; +221.183.36.206/31 1; +221.183.36.230/31 1; +221.183.37.90/31 1; +222.19.64.0/19 1; +222.19.96.0/22 1; +222.19.112.0/20 1; +222.53.226.0/23 1; +222.53.234.0/23 1; +222.53.236.0/22 1; +223.103.26.0/24 1; +223.104.26.0/24 1; +223.129.240.0/20 1; +240e:42c::/40 1; +2606:54c0:25a8::/45 1; +2606:54c3:0:1666::/64 1; +2a09:bac1:1980:49a8::/64 1; +2a09:bac1:19a0:49a8::/64 1; +2a09:bac1:19c0:49a8::/64 1; +2a09:bac1:19e0:49a8::/64 1; +2a09:bac2:25a8::/45 1; +2a09:bac3:25a8::/45 1; +2a09:bac5:25d8::/45 1; +2a09:bac6:25d8::/45 1; diff --git a/minigate/root/usr/lib/minigate/geo/610000.conf b/minigate/root/usr/lib/minigate/geo/610000.conf new file mode 100644 index 000000000..6d204f78c --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/610000.conf @@ -0,0 +1,868 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 陕西省 +1.80.0.0/13 1; +14.197.128.0/20 1; +14.197.240.0/25 1; +14.197.240.128/30 1; +14.197.240.132/32 1; +14.197.240.146/31 1; +14.197.240.148/30 1; +14.197.240.152/29 1; +14.197.240.160/27 1; +14.197.240.192/30 1; +14.197.240.196/32 1; +14.197.240.198/31 1; +14.197.240.200/29 1; +14.197.240.208/29 1; +14.197.240.216/32 1; +14.197.240.218/31 1; +14.197.240.220/30 1; +14.197.240.224/29 1; +14.197.240.232/32 1; +14.197.240.234/31 1; +14.197.240.236/30 1; +14.197.240.240/28 1; +14.197.241.0/28 1; +14.197.241.16/29 1; +14.197.241.28/32 1; +14.197.241.31/32 1; +14.197.241.32/27 1; +14.197.241.64/26 1; +14.197.241.128/27 1; +14.197.241.160/32 1; +14.197.241.162/31 1; +14.197.241.164/32 1; +14.197.241.166/31 1; +14.197.241.168/30 1; +14.197.241.172/32 1; +14.197.241.174/31 1; +14.197.241.176/32 1; +14.197.241.178/31 1; +14.197.241.180/30 1; +14.197.241.184/29 1; +14.197.241.192/27 1; +14.197.241.224/28 1; +14.197.241.240/30 1; +14.197.241.244/32 1; +14.197.241.247/32 1; +14.197.241.248/32 1; +14.197.241.251/32 1; +14.197.241.252/30 1; +14.197.242.0/28 1; +14.197.242.32/30 1; +14.197.242.44/30 1; +14.197.242.48/28 1; +14.197.242.64/26 1; +14.197.242.128/27 1; +14.197.242.160/30 1; +14.197.242.172/30 1; +14.197.242.176/28 1; +14.197.242.192/26 1; +14.197.243.0/26 1; +14.197.243.64/28 1; +14.197.243.80/29 1; +14.197.243.92/31 1; +14.197.243.95/32 1; +14.197.243.96/27 1; +14.197.243.128/25 1; +14.197.244.0/27 1; +14.197.244.32/30 1; +14.197.244.36/31 1; +14.197.244.39/32 1; +14.197.244.40/29 1; +14.197.244.48/32 1; +14.197.244.50/31 1; +14.197.244.52/30 1; +14.197.244.56/29 1; +14.197.244.64/28 1; +14.197.244.80/29 1; +14.197.244.88/30 1; +14.197.244.92/32 1; +14.197.244.94/31 1; +14.197.244.96/28 1; +14.197.244.112/30 1; +14.197.244.116/32 1; +14.197.244.118/31 1; +14.197.244.120/29 1; +14.197.244.128/28 1; +14.197.244.144/31 1; +14.197.244.147/32 1; +14.197.244.148/30 1; +14.197.244.152/29 1; +14.197.244.160/32 1; +14.197.244.162/31 1; +14.197.244.164/30 1; +14.197.244.168/29 1; +14.197.244.176/30 1; +14.197.244.180/32 1; +14.197.244.183/32 1; +14.197.244.184/32 1; +14.197.244.187/32 1; +14.197.244.188/30 1; +14.197.244.192/27 1; +14.197.244.224/28 1; +14.197.244.240/29 1; +14.197.244.248/30 1; +14.197.244.252/32 1; +14.197.244.254/31 1; +14.197.246.0/25 1; +14.197.246.128/26 1; +14.197.246.192/28 1; +14.197.246.208/30 1; +14.197.246.212/32 1; +14.197.246.214/31 1; +14.197.246.216/29 1; +14.197.246.224/27 1; +36.40.0.0/13 1; +36.133.96.0/21 1; +36.133.104.0/22 1; +36.133.248.0/21 1; +36.193.110.0/23 1; +36.193.112.0/21 1; +36.193.120.0/23 1; +42.247.9.160/27 1; +42.247.11.160/28 1; +42.247.16.96/27 1; +42.247.17.160/27 1; +42.247.26.96/27 1; +42.247.35.224/29 1; +42.247.39.224/27 1; +42.247.40.160/28 1; +42.247.40.176/29 1; +43.224.54.56/29 1; +43.236.252.0/22 1; +43.237.76.0/22 1; +43.238.128.0/22 1; +43.248.4.0/22 1; +45.115.248.0/22 1; +45.121.72.0/22 1; +45.124.22.0/23 1; +45.125.136.0/22 1; +45.250.88.0/22 1; +45.250.148.0/22 1; +49.208.0.0/16 1; +49.209.128.0/18 1; +49.209.192.0/19 1; +49.209.224.0/21 1; +49.221.32.0/19 1; +58.195.128.0/21 1; +58.200.127.168/29 1; +58.206.96.0/19 1; +58.207.176.0/20 1; +58.207.192.0/21 1; +59.43.80.68/30 1; +59.43.80.72/30 1; +59.74.0.0/17 1; +59.74.128.0/18 1; +59.75.0.0/17 1; +59.75.184.0/21 1; +59.75.210.0/23 1; +59.75.212.0/22 1; +59.75.248.0/21 1; +59.81.36.0/23 1; +59.153.4.0/22 1; +61.134.0.0/18 1; +61.150.0.0/17 1; +61.185.0.0/16 1; +61.232.196.0/22 1; +61.232.200.0/22 1; +61.236.208.0/20 1; +61.236.224.0/19 1; +61.237.1.100/30 1; +61.237.1.236/30 1; +61.237.2.0/31 1; +61.237.2.12/31 1; +61.237.3.40/29 1; +61.237.11.64/26 1; +61.237.124.68/31 1; +61.237.124.80/30 1; +61.237.124.84/31 1; +61.243.96.0/21 1; +61.243.104.0/22 1; +101.105.224.0/19 1; +101.107.128.0/18 1; +101.247.0.0/18 1; +103.1.72.0/22 1; +103.3.132.0/22 1; +103.17.204.0/22 1; +103.22.36.0/22 1; +103.32.252.0/22 1; +103.33.76.0/22 1; +103.34.128.0/22 1; +103.35.20.0/22 1; +103.44.152.0/22 1; +103.61.160.0/22 1; +103.62.72.0/21 1; +103.62.80.0/21 1; +103.65.12.0/22 1; +103.65.16.0/22 1; +103.67.60.0/22 1; +103.68.100.0/22 1; +103.71.88.0/22 1; +103.79.56.0/21 1; +103.80.192.0/22 1; +103.84.56.0/22 1; +103.92.184.0/22 1; +103.98.46.0/23 1; +103.100.240.0/22 1; +103.114.100.0/22 1; +103.117.88.0/22 1; +103.117.220.0/22 1; +103.119.200.0/22 1; +103.152.168.0/23 1; +103.192.132.0/24 1; +103.194.16.0/22 1; +103.197.228.0/22 1; +103.202.184.0/22 1; +103.203.104.0/22 1; +103.207.220.0/22 1; +103.218.32.0/22 1; +103.218.88.0/22 1; +104.28.66.62/31 1; +104.28.69.62/31 1; +104.28.83.34/31 1; +104.28.99.32/31 1; +104.28.101.32/31 1; +104.28.117.64/31 1; +104.28.120.64/31 1; +104.28.143.55/32 1; +104.28.162.191/32 1; +104.28.175.250/31 1; +104.28.175.252/30 1; +104.28.176.0/32 1; +104.28.208.27/32 1; +104.28.208.28/30 1; +104.28.208.32/31 1; +104.28.240.27/32 1; +104.28.240.28/30 1; +104.28.240.32/31 1; +106.36.0.0/16 1; +106.44.0.0/16 1; +110.217.0.0/16 1; +111.18.0.0/15 1; +111.20.0.0/15 1; +111.114.0.0/16 1; +111.115.224.0/19 1; +111.155.0.0/16 1; +112.46.0.0/17 1; +112.54.64.0/20 1; +112.62.144.0/20 1; +112.62.160.0/19 1; +112.62.192.0/20 1; +113.132.0.0/14 1; +113.136.0.0/13 1; +113.200.0.0/15 1; +115.120.0.0/17 1; +115.154.0.0/16 1; +115.155.0.0/18 1; +115.155.168.0/21 1; +115.155.216.0/21 1; +115.168.56.0/24 1; +115.168.88.0/24 1; +116.173.0.0/16 1; +116.174.0.0/15 1; +117.22.0.0/15 1; +117.32.0.0/13 1; +117.136.25.0/24 1; +117.136.50.0/23 1; +117.136.86.0/23 1; +117.136.235.48/30 1; +117.142.206.0/23 1; +117.142.208.0/24 1; +119.42.52.0/22 1; +120.95.0.0/17 1; +120.95.128.0/18 1; +120.128.0.0/21 1; +120.192.192.0/18 1; +122.9.244.0/22 1; +122.9.248.0/23 1; +122.72.30.0/24 1; +122.72.104.0/23 1; +122.77.0.0/16 1; +123.94.26.0/24 1; +123.103.0.0/23 1; +123.138.0.0/15 1; +124.22.0.0/15 1; +124.47.0.0/18 1; +124.89.0.0/17 1; +124.114.0.0/15 1; +124.116.0.0/16 1; +125.76.128.0/17 1; +139.148.0.0/16 1; +159.226.139.0/24 1; +159.226.153.0/24 1; +159.226.154.0/24 1; +159.226.255.112/29 1; +175.111.184.0/22 1; +175.191.192.0/19 1; +175.191.224.0/20 1; +180.89.224.0/19 1; +180.91.192.0/23 1; +182.80.0.0/14 1; +202.97.13.122/31 1; +202.97.19.184/31 1; +202.97.21.184/29 1; +202.97.21.192/29 1; +202.97.21.200/31 1; +202.97.21.208/31 1; +202.97.23.104/31 1; +202.97.23.142/31 1; +202.97.23.146/31 1; +202.97.24.52/30 1; +202.97.24.56/31 1; +202.97.24.60/31 1; +202.97.31.6/31 1; +202.97.32.6/31 1; +202.97.32.78/31 1; +202.97.32.80/30 1; +202.97.34.4/31 1; +202.97.34.16/31 1; +202.97.34.20/30 1; +202.97.34.24/31 1; +202.97.36.66/31 1; +202.97.36.110/31 1; +202.97.36.144/31 1; +202.97.36.172/31 1; +202.97.36.184/31 1; +202.97.37.32/29 1; +202.97.37.48/31 1; +202.97.37.52/31 1; +202.97.37.64/29 1; +202.97.37.88/30 1; +202.97.37.172/30 1; +202.97.37.176/31 1; +202.97.37.180/31 1; +202.97.37.200/30 1; +202.97.38.64/31 1; +202.97.40.16/30 1; +202.97.40.180/30 1; +202.97.41.20/31 1; +202.97.41.40/31 1; +202.97.41.104/31 1; +202.97.41.124/31 1; +202.97.41.148/31 1; +202.97.41.152/31 1; +202.97.41.160/29 1; +202.97.41.172/30 1; +202.97.42.176/30 1; +202.97.43.0/31 1; +202.97.43.4/31 1; +202.97.43.8/31 1; +202.97.43.28/31 1; +202.97.43.44/31 1; +202.97.43.60/30 1; +202.97.43.64/30 1; +202.97.43.68/31 1; +202.97.43.72/31 1; +202.97.43.100/31 1; +202.97.43.106/31 1; +202.97.43.114/31 1; +202.97.43.116/31 1; +202.97.43.120/31 1; +202.97.43.132/31 1; +202.97.43.148/31 1; +202.97.43.152/31 1; +202.97.43.156/31 1; +202.97.43.184/30 1; +202.97.43.190/31 1; +202.97.43.216/31 1; +202.97.43.220/31 1; +202.97.43.224/31 1; +202.97.43.232/31 1; +202.97.43.236/31 1; +202.97.43.248/31 1; +202.97.44.68/31 1; +202.97.44.108/30 1; +202.97.44.124/31 1; +202.97.44.236/31 1; +202.97.46.152/31 1; +202.97.46.176/31 1; +202.97.46.186/31 1; +202.97.46.228/31 1; +202.97.46.232/31 1; +202.97.47.4/31 1; +202.97.47.12/31 1; +202.97.47.16/31 1; +202.97.47.60/31 1; +202.97.48.112/31 1; +202.97.48.124/30 1; +202.97.48.128/30 1; +202.97.48.132/31 1; +202.97.48.144/31 1; +202.97.48.152/31 1; +202.97.48.156/31 1; +202.97.48.190/31 1; +202.97.49.0/30 1; +202.97.49.8/29 1; +202.97.49.16/30 1; +202.97.49.24/29 1; +202.97.55.176/31 1; +202.97.55.180/30 1; +202.97.55.184/31 1; +202.97.55.188/31 1; +202.97.55.224/31 1; +202.97.55.232/31 1; +202.97.55.236/31 1; +202.97.55.248/31 1; +202.97.56.16/31 1; +202.97.56.20/31 1; +202.97.56.24/31 1; +202.97.56.28/31 1; +202.97.56.52/31 1; +202.97.56.56/31 1; +202.97.56.60/31 1; +202.97.56.154/31 1; +202.97.56.188/31 1; +202.97.59.82/31 1; +202.97.59.86/32 1; +202.97.59.90/31 1; +202.97.59.94/32 1; +202.97.60.232/31 1; +202.97.63.12/31 1; +202.97.63.38/31 1; +202.97.63.54/31 1; +202.97.63.100/31 1; +202.97.64.242/31 1; +202.97.65.78/31 1; +202.97.65.110/31 1; +202.97.65.112/30 1; +202.97.65.132/30 1; +202.97.68.92/31 1; +202.97.68.96/31 1; +202.97.68.100/31 1; +202.97.68.104/31 1; +202.97.68.172/30 1; +202.97.69.208/31 1; +202.97.69.216/31 1; +202.97.69.220/31 1; +202.97.71.144/31 1; +202.97.71.148/31 1; +202.97.72.24/31 1; +202.97.72.28/31 1; +202.97.72.32/31 1; +202.97.72.36/30 1; +202.97.72.40/31 1; +202.97.72.44/31 1; +202.97.72.48/31 1; +202.97.72.52/31 1; +202.97.72.112/31 1; +202.97.72.116/31 1; +202.97.72.120/31 1; +202.97.72.124/30 1; +202.97.72.128/30 1; +202.97.72.132/31 1; +202.97.72.136/31 1; +202.97.72.144/29 1; +202.97.72.152/31 1; +202.97.72.156/31 1; +202.97.72.164/30 1; +202.97.72.168/30 1; +202.97.72.172/31 1; +202.97.72.188/31 1; +202.97.73.212/31 1; +202.97.73.220/31 1; +202.97.73.240/30 1; +202.97.73.244/31 1; +202.97.73.248/31 1; +202.97.73.252/31 1; +202.97.74.8/30 1; +202.97.74.12/31 1; +202.97.74.80/30 1; +202.97.74.84/31 1; +202.97.74.96/30 1; +202.97.74.100/31 1; +202.97.75.0/31 1; +202.97.75.4/31 1; +202.97.75.8/31 1; +202.97.75.12/31 1; +202.97.75.16/31 1; +202.97.75.20/31 1; +202.97.75.24/30 1; +202.97.75.28/31 1; +202.97.76.48/31 1; +202.97.76.52/31 1; +202.97.76.200/30 1; +202.97.76.204/31 1; +202.97.78.8/30 1; +202.97.78.12/31 1; +202.97.78.24/31 1; +202.97.78.32/31 1; +202.97.78.48/31 1; +202.97.78.52/30 1; +202.97.78.56/31 1; +202.97.78.60/31 1; +202.97.78.66/31 1; +202.97.78.68/30 1; +202.97.78.94/31 1; +202.97.78.98/31 1; +202.97.78.100/30 1; +202.97.78.104/29 1; +202.97.78.112/28 1; +202.97.78.128/31 1; +202.97.78.132/31 1; +202.97.78.156/30 1; +202.97.78.160/31 1; +202.97.78.164/31 1; +202.97.78.173/32 1; +202.97.78.176/31 1; +202.97.78.188/31 1; +202.97.78.196/31 1; +202.97.78.200/31 1; +202.97.78.216/30 1; +202.97.78.220/31 1; +202.97.78.224/31 1; +202.97.78.228/30 1; +202.97.78.232/30 1; +202.97.78.236/31 1; +202.97.78.240/31 1; +202.97.78.248/31 1; +202.97.78.252/31 1; +202.97.79.72/31 1; +202.97.79.128/31 1; +202.97.79.136/31 1; +202.97.79.140/31 1; +202.97.79.148/31 1; +202.97.82.252/30 1; +202.97.83.0/29 1; +202.97.83.8/31 1; +202.97.83.12/31 1; +202.97.83.16/31 1; +202.97.83.32/31 1; +202.97.83.36/31 1; +202.97.83.48/29 1; +202.97.83.56/31 1; +202.97.83.60/31 1; +202.97.83.68/30 1; +202.97.83.72/29 1; +202.97.83.80/29 1; +202.97.83.88/31 1; +202.97.83.92/31 1; +202.97.83.96/31 1; +202.97.83.100/31 1; +202.97.83.104/31 1; +202.97.83.108/30 1; +202.97.83.112/30 1; +202.97.83.116/31 1; +202.97.83.120/31 1; +202.97.83.124/31 1; +202.97.83.128/31 1; +202.97.83.132/31 1; +202.97.83.136/30 1; +202.97.83.140/31 1; +202.97.83.144/31 1; +202.97.83.148/31 1; +202.97.86.68/31 1; +202.97.86.72/31 1; +202.97.88.128/26 1; +202.97.88.192/27 1; +202.97.89.200/31 1; +202.97.89.204/31 1; +202.97.90.78/31 1; +202.97.90.80/28 1; +202.97.90.96/28 1; +202.100.0.0/18 1; +202.112.11.0/24 1; +202.112.12.0/23 1; +202.117.0.0/16 1; +202.127.239.0/24 1; +202.136.72.0/22 1; +202.150.16.0/20 1; +202.200.0.0/17 1; +202.200.128.0/21 1; +202.200.136.0/22 1; +202.200.140.0/23 1; +202.200.142.0/24 1; +202.200.144.0/20 1; +202.200.160.0/19 1; +202.200.192.0/18 1; +203.2.160.0/21 1; +203.3.80.0/21 1; +203.93.128.0/20 1; +203.119.34.0/24 1; +203.152.64.0/19 1; +203.196.7.0/24 1; +210.27.0.0/19 1; +210.27.32.0/20 1; +210.27.48.0/21 1; +210.27.64.0/19 1; +210.27.96.0/20 1; +210.27.112.0/21 1; +210.52.0.72/29 1; +210.72.144.0/22 1; +210.72.148.0/23 1; +210.72.150.0/24 1; +210.74.128.0/19 1; +210.75.95.192/26 1; +210.83.0.0/20 1; +210.87.128.0/18 1; +210.192.116.0/22 1; +211.98.100.0/23 1; +211.98.171.176/29 1; +211.98.234.0/24 1; +211.137.112.0/20 1; +211.137.128.0/20 1; +211.164.152.0/22 1; +218.30.12.0/22 1; +218.30.16.0/24 1; +218.30.19.0/24 1; +218.30.20.0/22 1; +218.30.24.0/24 1; +218.30.66.0/23 1; +218.30.68.0/22 1; +218.30.72.0/21 1; +218.30.80.0/22 1; +218.30.84.0/23 1; +218.30.88.0/22 1; +218.30.160.0/24 1; +218.106.208.0/20 1; +218.195.0.0/17 1; +218.200.0.0/18 1; +219.72.202.208/28 1; +219.72.202.224/28 1; +219.144.0.0/15 1; +219.158.8.214/31 1; +219.158.8.216/30 1; +219.158.11.32/31 1; +219.158.13.48/29 1; +219.158.13.56/30 1; +219.158.13.60/31 1; +219.158.14.106/31 1; +219.158.14.210/31 1; +219.158.14.212/30 1; +219.158.18.152/31 1; +219.158.19.26/31 1; +219.158.20.116/30 1; +219.158.20.120/29 1; +219.158.20.128/29 1; +219.158.20.138/31 1; +219.158.21.132/31 1; +219.158.21.140/31 1; +219.158.21.248/31 1; +219.158.22.60/31 1; +219.158.22.184/29 1; +219.158.23.92/30 1; +219.158.23.128/31 1; +219.158.40.136/30 1; +219.158.40.212/30 1; +219.158.41.122/31 1; +219.158.43.128/30 1; +219.158.43.164/31 1; +219.158.43.184/30 1; +219.158.43.188/31 1; +219.158.45.0/29 1; +219.158.45.124/30 1; +219.158.45.128/30 1; +219.158.45.132/31 1; +219.158.45.246/31 1; +219.158.45.248/30 1; +219.158.96.120/31 1; +219.158.96.156/31 1; +219.158.98.232/29 1; +219.158.98.240/29 1; +219.158.98.248/30 1; +219.158.100.36/30 1; +219.158.101.234/31 1; +219.158.104.106/31 1; +219.158.104.172/31 1; +219.158.106.70/31 1; +219.158.106.72/29 1; +219.158.106.80/31 1; +219.158.107.76/31 1; +219.158.108.140/31 1; +219.158.112.10/31 1; +219.158.112.14/31 1; +219.158.112.16/28 1; +219.158.112.32/30 1; +219.158.112.94/31 1; +219.158.114.10/31 1; +219.158.114.18/31 1; +219.158.114.28/31 1; +219.158.116.56/31 1; +219.243.229.0/24 1; +219.244.0.0/15 1; +220.114.236.0/22 1; +220.114.240.0/21 1; +220.205.74.0/23 1; +220.205.76.0/23 1; +220.207.128.0/22 1; +221.11.0.0/17 1; +221.176.15.10/31 1; +221.176.15.42/31 1; +221.176.15.54/31 1; +221.176.15.214/31 1; +221.176.16.230/31 1; +221.176.20.60/30 1; +221.176.20.64/30 1; +221.176.20.104/29 1; +221.176.20.244/30 1; +221.176.20.248/31 1; +221.176.20.252/31 1; +221.176.21.0/31 1; +221.176.21.4/31 1; +221.176.21.8/31 1; +221.176.22.58/31 1; +221.176.26.0/28 1; +221.176.26.16/29 1; +221.176.26.24/30 1; +221.176.26.32/30 1; +221.176.26.112/29 1; +221.176.26.120/30 1; +221.176.26.124/31 1; +221.176.26.128/31 1; +221.176.26.136/29 1; +221.176.26.144/28 1; +221.176.27.12/31 1; +221.176.27.70/31 1; +221.176.27.74/31 1; +221.176.27.130/31 1; +221.177.176.0/22 1; +221.177.245.0/24 1; +221.177.246.0/24 1; +221.183.9.132/31 1; +221.183.9.136/31 1; +221.183.9.158/31 1; +221.183.9.174/31 1; +221.183.9.176/31 1; +221.183.11.174/31 1; +221.183.21.60/30 1; +221.183.21.144/30 1; +221.183.25.10/31 1; +221.183.27.128/29 1; +221.183.27.136/30 1; +221.183.36.202/31 1; +221.183.36.244/31 1; +221.183.36.248/31 1; +221.183.36.252/31 1; +221.183.37.0/28 1; +221.183.37.16/29 1; +221.183.37.24/31 1; +221.183.41.50/31 1; +221.183.42.126/31 1; +221.183.43.20/30 1; +221.183.43.24/31 1; +221.183.43.28/30 1; +221.183.43.32/31 1; +221.183.43.36/31 1; +221.183.47.144/30 1; +221.183.47.148/31 1; +221.183.47.156/31 1; +221.183.49.116/31 1; +222.24.0.0/16 1; +222.25.0.0/17 1; +222.25.128.0/18 1; +222.41.0.0/16 1; +222.90.0.0/15 1; +223.103.11.0/24 1; +223.103.80.0/23 1; +223.103.182.0/23 1; +223.103.184.0/22 1; +223.103.188.0/23 1; +223.104.11.0/24 1; +223.104.202.0/23 1; +223.104.204.0/22 1; +223.104.208.0/23 1; +2001:250:1001::/48 1; +2001:da8:4019::/48 1; +2402:9480::/32 1; +2403:16c0::/32 1; +2403:8a40::/32 1; +2404:1880::/32 1; +2405:e600::/32 1; +2406:840:580::/41 1; +2406:840:600::/41 1; +2406:840:680::/43 1; +2406:6300::/32 1; +2408:8471:1000::/40 1; +2409:8d70::/40 1; +240a:42e6:100::/40 1; +240a:42e6:500::/40 1; +240a:42e6:800::/40 1; +240a:42e6:c00::/40 1; +240a:42ea:100::/40 1; +240a:42ea:500::/40 1; +240a:42ea:700::/40 1; +240a:42ea:800::/40 1; +240a:42ea:2300::/40 1; +240a:42ea:3000::/40 1; +240e:358:3100::/40 1; +240e:456:700::/40 1; +240e:456:3a00::/40 1; +240e:456:4c00::/40 1; +240e:457:600::/40 1; +240e:457:2200::/40 1; +240e:457:3e00::/40 1; +240e:457:5600::/40 1; +2602:feda:1d2::/47 1; +2602:feda:1d4::/46 1; +2602:feda:1d8::/45 1; +2606:54c0:1ee0::/45 1; +2606:54c0:1ef0::/45 1; +2606:54c0:2528::/45 1; +2606:54c0:2530::/44 1; +2606:54c0:2540::/43 1; +2606:54c3:0:5bf::/64 1; +2606:54c3:0:89b::/64 1; +2606:54c3:0:bff::/64 1; +2606:54c3:0:cec::/64 1; +2606:54c3:0:ef6::/64 1; +2606:54c3:0:ffe::/64 1; +2606:54c3:0:1070::/64 1; +2606:54c3:0:18ab::/64 1; +2a09:bac1:1980:28::/64 1; +2a09:bac1:1980:88::/64 1; +2a09:bac1:1980:9b88::/64 1; +2a09:bac1:1980:9c50::/64 1; +2a09:bac1:1980:c3b0::/64 1; +2a09:bac1:1980:c428::/64 1; +2a09:bac1:1980:c448::/64 1; +2a09:bac1:1980:cbc0::/64 1; +2a09:bac1:19a0:28::/64 1; +2a09:bac1:19a0:88::/64 1; +2a09:bac1:19a0:9b88::/64 1; +2a09:bac1:19a0:9c50::/64 1; +2a09:bac1:19a0:c3b0::/64 1; +2a09:bac1:19a0:c428::/64 1; +2a09:bac1:19a0:c448::/64 1; +2a09:bac1:19a0:cbc0::/64 1; +2a09:bac1:19c0:28::/64 1; +2a09:bac1:19c0:88::/64 1; +2a09:bac1:19c0:9b88::/64 1; +2a09:bac1:19c0:9c50::/64 1; +2a09:bac1:19c0:c3b0::/64 1; +2a09:bac1:19c0:c428::/64 1; +2a09:bac1:19c0:c448::/64 1; +2a09:bac1:19c0:cbc0::/64 1; +2a09:bac1:19e0:28::/64 1; +2a09:bac1:19e0:88::/64 1; +2a09:bac1:19e0:9b88::/64 1; +2a09:bac1:19e0:9c50::/64 1; +2a09:bac1:19e0:c3b0::/64 1; +2a09:bac1:19e0:c428::/64 1; +2a09:bac1:19e0:c448::/64 1; +2a09:bac1:19e0:cbc0::/64 1; +2a09:bac2:1ee0::/45 1; +2a09:bac2:2528::/45 1; +2a09:bac2:2530::/44 1; +2a09:bac2:2540::/43 1; +2a09:bac2:d4f8::/45 1; +2a09:bac3:1ee0::/45 1; +2a09:bac3:2528::/45 1; +2a09:bac3:2530::/44 1; +2a09:bac3:2540::/43 1; +2a09:bac3:d4f8::/45 1; +2a09:bac5:1f10::/45 1; +2a09:bac5:2558::/45 1; +2a09:bac5:2560::/43 1; +2a09:bac5:2580::/44 1; +2a09:bac5:d600::/45 1; +2a09:bac6:1f10::/45 1; +2a09:bac6:2558::/45 1; +2a09:bac6:2560::/43 1; +2a09:bac6:2580::/44 1; +2a09:bac6:d600::/45 1; +2a0b:2542::/40 1; +2a0b:2542:100::/41 1; +2a0e:b107:730::/44 1; +2a0e:b107:740::/44 1; +2a0e:b107:bd0::/44 1; +2a0f:9400:7b00::/40 1; +2a0f:9400:8022::/47 1; diff --git a/minigate/root/usr/lib/minigate/geo/620000.conf b/minigate/root/usr/lib/minigate/geo/620000.conf new file mode 100644 index 000000000..40bc72a7f --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/620000.conf @@ -0,0 +1,307 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 甘肃省 +27.224.0.0/14 1; +36.134.72.0/23 1; +36.142.2.0/23 1; +36.142.4.0/22 1; +36.142.8.0/21 1; +36.142.16.0/20 1; +36.142.32.0/19 1; +36.142.64.0/18 1; +36.142.128.0/17 1; +36.193.122.0/23 1; +36.193.124.0/23 1; +42.88.0.0/13 1; +42.247.11.240/28 1; +42.247.18.224/28 1; +42.247.20.104/30 1; +42.247.39.112/28 1; +42.247.40.0/26 1; +42.247.41.96/28 1; +42.247.43.64/28 1; +43.224.54.200/29 1; +43.243.4.0/22 1; +49.209.232.0/21 1; +49.209.240.0/20 1; +58.200.120.104/29 1; +58.206.160.0/19 1; +58.207.40.0/21 1; +59.74.192.0/18 1; +59.76.0.0/17 1; +59.76.128.0/19 1; +59.76.160.0/20 1; +59.81.94.0/23 1; +60.13.0.0/18 1; +60.164.0.0/15 1; +61.134.64.0/19 1; +61.159.64.0/18 1; +61.178.0.0/16 1; +61.232.236.0/22 1; +61.232.240.0/22 1; +61.234.0.0/20 1; +61.237.0.126/31 1; +61.237.2.52/30 1; +61.237.3.176/30 1; +61.237.15.160/27 1; +103.22.56.0/22 1; +103.100.33.0/24 1; +103.100.34.0/23 1; +103.106.190.0/23 1; +103.192.133.0/24 1; +103.192.134.0/23 1; +103.223.76.0/22 1; +103.232.144.0/22 1; +103.238.28.0/22 1; +103.240.36.0/22 1; +110.220.0.0/16 1; +111.11.128.0/18 1; +111.115.0.0/18 1; +111.115.128.0/18 1; +112.54.184.0/21 1; +112.62.208.0/20 1; +112.62.224.0/20 1; +115.85.192.0/18 1; +115.155.64.0/18 1; +115.155.128.0/19 1; +115.155.160.0/21 1; +115.155.176.0/20 1; +115.168.59.0/24 1; +115.168.91.0/24 1; +116.176.0.0/20 1; +116.176.16.0/24 1; +117.136.27.0/24 1; +117.156.0.0/15 1; +118.180.0.0/14 1; +122.72.33.128/25 1; +122.72.106.0/23 1; +123.81.0.0/16 1; +123.94.22.64/26 1; +123.108.134.0/24 1; +123.108.138.0/23 1; +123.108.140.0/24 1; +124.152.0.0/16 1; +125.74.0.0/15 1; +125.76.0.0/17 1; +180.95.128.0/17 1; +202.97.21.202/31 1; +202.97.21.210/31 1; +202.97.21.212/30 1; +202.97.21.216/29 1; +202.97.21.224/27 1; +202.97.28.204/31 1; +202.97.33.2/31 1; +202.97.38.98/31 1; +202.97.43.2/31 1; +202.97.43.6/31 1; +202.97.43.58/31 1; +202.97.43.70/31 1; +202.97.43.78/31 1; +202.97.43.102/31 1; +202.97.43.178/31 1; +202.97.44.70/31 1; +202.97.44.126/31 1; +202.97.44.238/31 1; +202.97.44.242/31 1; +202.97.47.20/30 1; +202.97.47.64/30 1; +202.97.47.88/29 1; +202.97.47.96/27 1; +202.97.47.128/30 1; +202.97.47.184/31 1; +202.97.47.188/30 1; +202.97.47.192/29 1; +202.97.47.200/31 1; +202.97.47.208/31 1; +202.97.47.212/31 1; +202.97.47.220/31 1; +202.97.47.240/31 1; +202.97.48.162/31 1; +202.97.49.192/29 1; +202.97.49.200/30 1; +202.97.54.4/30 1; +202.97.54.34/31 1; +202.97.54.56/29 1; +202.97.54.66/31 1; +202.97.54.70/31 1; +202.97.54.96/29 1; +202.97.63.14/31 1; +202.97.63.32/30 1; +202.97.66.226/31 1; +202.97.66.228/30 1; +202.97.66.232/29 1; +202.97.66.240/29 1; +202.97.70.200/31 1; +202.97.74.78/31 1; +202.97.76.82/31 1; +202.97.76.158/31 1; +202.97.76.162/31 1; +202.97.76.222/31 1; +202.97.79.58/31 1; +202.97.79.206/31 1; +202.97.79.210/31 1; +202.97.79.212/30 1; +202.97.79.218/31 1; +202.97.79.222/31 1; +202.97.79.224/30 1; +202.97.79.230/31 1; +202.97.79.234/31 1; +202.97.79.236/30 1; +202.97.82.206/31 1; +202.97.82.214/31 1; +202.97.82.246/31 1; +202.97.83.10/31 1; +202.97.83.14/31 1; +202.97.83.18/31 1; +202.97.83.20/30 1; +202.97.83.34/31 1; +202.97.83.38/31 1; +202.97.83.40/29 1; +202.97.83.118/31 1; +202.97.83.122/31 1; +202.97.83.126/31 1; +202.97.83.134/31 1; +202.97.83.142/31 1; +202.97.83.146/31 1; +202.97.83.150/31 1; +202.97.95.224/31 1; +202.100.64.0/19 1; +202.127.252.192/26 1; +202.131.59.0/24 1; +202.201.0.0/18 1; +202.201.64.0/19 1; +202.201.96.0/20 1; +203.118.249.0/24 1; +210.26.0.0/19 1; +210.26.32.0/21 1; +210.26.48.0/20 1; +210.26.64.0/24 1; +210.26.68.0/22 1; +210.26.72.0/21 1; +210.26.80.0/20 1; +210.26.96.0/19 1; +210.53.193.0/24 1; +210.53.195.0/24 1; +210.72.80.0/22 1; +210.75.95.0/26 1; +210.77.64.0/20 1; +210.82.198.0/24 1; +211.98.121.0/24 1; +211.98.122.0/23 1; +211.98.126.0/24 1; +211.98.225.48/28 1; +211.98.225.64/27 1; +211.98.225.96/29 1; +211.98.230.0/23 1; +211.98.232.0/24 1; +211.98.239.12/30 1; +211.98.239.20/30 1; +211.98.247.0/24 1; +211.98.248.0/24 1; +211.139.80.0/20 1; +211.164.196.0/22 1; +218.30.167.0/24 1; +218.203.160.0/19 1; +218.203.192.0/19 1; +219.158.12.230/31 1; +219.158.18.154/31 1; +219.158.22.58/31 1; +219.158.99.134/31 1; +219.158.99.182/31 1; +219.158.100.66/31 1; +219.158.100.68/30 1; +219.158.104.174/31 1; +219.158.106.82/31 1; +219.158.108.110/31 1; +219.158.109.186/31 1; +219.158.109.188/30 1; +219.158.110.6/31 1; +219.243.231.0/24 1; +219.246.0.0/16 1; +220.205.85.0/24 1; +220.205.86.0/23 1; +220.205.88.0/24 1; +221.7.32.0/19 1; +221.174.125.0/25 1; +221.176.15.94/31 1; +221.176.15.226/31 1; +221.176.15.230/31 1; +221.176.15.246/31 1; +221.176.15.250/31 1; +221.176.16.18/31 1; +221.177.182.0/23 1; +221.177.221.0/24 1; +221.183.9.172/31 1; +221.183.9.178/31 1; +221.183.14.48/29 1; +221.183.37.26/31 1; +221.183.40.42/31 1; +221.183.40.202/31 1; +221.183.46.148/31 1; +221.183.49.114/31 1; +221.183.49.118/31 1; +222.23.0.0/17 1; +222.23.128.0/18 1; +222.57.0.0/17 1; +223.103.27.0/24 1; +223.104.27.0/24 1; +223.104.56.0/23 1; +2400:8ce0::/32 1; +2401:1320::/32 1; +2401:2780::/32 1; +2401:87e0::/32 1; +2401:8be0::/32 1; +2401:b7c0::/32 1; +2405:93c0::/32 1; +2406:8c0::/32 1; +240e:423::/40 1; +2606:54c0:2098::/45 1; +2606:54c0:20a0::/43 1; +2606:54c0:20c0::/44 1; +2606:54c3:0:54::/64 1; +2606:54c3:0:3a8::/64 1; +2606:54c3:0:46a::/64 1; +2606:54c3:0:ab6::/64 1; +2606:54c3:0:ce7::/64 1; +2606:54c3:0:150d::/64 1; +2606:54c3:0:151b::/64 1; +2a09:bac1:1980:ab78::/64 1; +2a09:bac1:1980:b848::/64 1; +2a09:bac1:1980:baa0::/64 1; +2a09:bac1:1980:bb18::/64 1; +2a09:bac1:1980:bbe0::/64 1; +2a09:bac1:1980:bd30::/64 1; +2a09:bac1:1980:be80::/64 1; +2a09:bac1:19a0:ab78::/64 1; +2a09:bac1:19a0:b848::/64 1; +2a09:bac1:19a0:baa0::/64 1; +2a09:bac1:19a0:bb18::/64 1; +2a09:bac1:19a0:bbe0::/64 1; +2a09:bac1:19a0:bd30::/64 1; +2a09:bac1:19a0:be80::/64 1; +2a09:bac1:19c0:ab78::/64 1; +2a09:bac1:19c0:b848::/64 1; +2a09:bac1:19c0:baa0::/64 1; +2a09:bac1:19c0:bb18::/64 1; +2a09:bac1:19c0:bbe0::/64 1; +2a09:bac1:19c0:bd30::/64 1; +2a09:bac1:19c0:be80::/64 1; +2a09:bac1:19e0:ab78::/64 1; +2a09:bac1:19e0:b848::/64 1; +2a09:bac1:19e0:baa0::/64 1; +2a09:bac1:19e0:bb18::/64 1; +2a09:bac1:19e0:bbe0::/64 1; +2a09:bac1:19e0:bd30::/64 1; +2a09:bac1:19e0:be80::/64 1; +2a09:bac2:2098::/45 1; +2a09:bac2:20a0::/43 1; +2a09:bac2:20c0::/44 1; +2a09:bac3:2098::/45 1; +2a09:bac3:20a0::/43 1; +2a09:bac3:20c0::/44 1; +2a09:bac5:20c8::/45 1; +2a09:bac5:20d0::/44 1; +2a09:bac5:20e0::/43 1; +2a09:bac6:20c8::/45 1; +2a09:bac6:20d0::/44 1; +2a09:bac6:20e0::/43 1; +2a0d:2406:1c2e::/48 1; +2a13:cc3:c000::/34 1; diff --git a/minigate/root/usr/lib/minigate/geo/630000.conf b/minigate/root/usr/lib/minigate/geo/630000.conf new file mode 100644 index 000000000..01cc0d71d --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/630000.conf @@ -0,0 +1,130 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 青海省 +36.100.0.0/16 1; +36.193.126.0/23 1; +42.247.42.240/28 1; +42.247.47.112/28 1; +43.224.54.208/29 1; +43.242.180.0/22 1; +45.252.4.0/22 1; +49.209.64.0/18 1; +59.75.192.0/20 1; +59.75.208.0/23 1; +59.75.216.0/21 1; +61.133.224.0/19 1; +61.236.160.0/20 1; +61.237.2.2/31 1; +61.237.2.14/31 1; +61.237.2.40/30 1; +61.237.15.96/27 1; +61.237.124.70/31 1; +61.237.124.72/29 1; +61.243.120.0/22 1; +103.22.100.0/22 1; +103.100.48.0/22 1; +103.101.184.0/22 1; +103.220.244.0/22 1; +103.251.160.0/22 1; +110.166.0.0/15 1; +110.222.128.0/17 1; +111.12.128.0/17 1; +111.44.128.0/17 1; +111.115.192.0/19 1; +112.54.252.0/23 1; +112.63.0.0/16 1; +115.168.60.0/24 1; +115.168.92.0/24 1; +116.177.0.0/16 1; +117.136.29.0/24 1; +117.142.188.0/23 1; +118.213.0.0/16 1; +122.72.34.0/25 1; +122.72.108.0/24 1; +123.94.22.128/26 1; +125.72.0.0/16 1; +139.170.0.0/16 1; +159.226.109.0/24 1; +159.226.155.0/24 1; +175.184.128.0/18 1; +202.92.0.0/22 1; +202.100.128.0/19 1; +203.93.144.0/20 1; +210.27.128.0/20 1; +210.27.144.0/21 1; +210.27.152.0/22 1; +210.27.156.0/24 1; +210.27.158.0/23 1; +210.27.160.0/19 1; +210.52.40.232/29 1; +210.75.87.0/24 1; +210.75.95.64/26 1; +210.75.248.0/23 1; +211.98.171.208/29 1; +211.98.207.0/28 1; +211.98.207.48/28 1; +211.98.207.64/26 1; +211.98.207.128/25 1; +211.98.224.80/29 1; +211.98.239.16/30 1; +211.98.253.0/24 1; +211.98.254.0/23 1; +211.138.64.0/20 1; +218.95.224.0/19 1; +218.206.160.0/20 1; +219.158.7.186/31 1; +219.158.7.190/31 1; +219.158.7.210/31 1; +219.158.7.214/31 1; +219.158.8.210/31 1; +219.158.16.130/31 1; +219.158.16.132/30 1; +219.158.16.138/31 1; +219.158.19.14/31 1; +219.158.19.16/30 1; +219.158.19.114/31 1; +219.158.19.246/31 1; +219.158.20.178/31 1; +219.158.22.62/31 1; +219.158.23.130/31 1; +219.158.107.118/31 1; +219.158.107.120/30 1; +219.158.109.60/31 1; +219.158.109.64/31 1; +219.158.110.54/31 1; +219.158.110.74/31 1; +219.158.111.26/31 1; +219.158.111.58/31 1; +219.158.111.60/30 1; +219.158.112.150/31 1; +219.158.116.54/31 1; +219.158.116.62/31 1; +219.158.116.64/29 1; +219.243.230.0/24 1; +219.247.192.0/18 1; +220.167.128.0/17 1; +220.205.89.0/24 1; +221.174.125.128/25 1; +221.176.26.236/30 1; +221.177.186.0/23 1; +221.183.9.156/31 1; +221.183.36.22/31 1; +221.183.36.246/31 1; +221.207.0.0/18 1; +222.59.0.0/17 1; +223.103.28.0/24 1; +223.104.28.0/24 1; +223.104.183.0/24 1; +223.104.184.0/24 1; +223.220.0.0/15 1; +2400:4920::/32 1; +2408:8476:400::/40 1; +2408:8476:900::/40 1; +2606:54c0:2400::/45 1; +2606:54c3:0:1a02::/64 1; +2a09:bac1:1980:bc78::/64 1; +2a09:bac1:19a0:bc78::/64 1; +2a09:bac1:19c0:bc78::/64 1; +2a09:bac1:19e0:bc78::/64 1; +2a09:bac2:2400::/45 1; +2a09:bac3:2400::/45 1; +2a09:bac5:2430::/45 1; +2a09:bac6:2430::/45 1; diff --git a/minigate/root/usr/lib/minigate/geo/640000.conf b/minigate/root/usr/lib/minigate/geo/640000.conf new file mode 100644 index 000000000..68efec00b --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/640000.conf @@ -0,0 +1,182 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 宁夏 +1.50.0.0/16 1; +13.34.150.192/26 1; +13.34.151.0/26 1; +13.34.154.64/26 1; +13.34.154.192/26 1; +13.34.155.0/26 1; +13.34.175.0/26 1; +13.34.232.64/26 1; +13.34.238.64/26 1; +14.134.0.0/15 1; +36.103.0.0/16 1; +36.193.128.0/23 1; +42.63.0.0/16 1; +42.247.20.160/27 1; +42.247.27.240/28 1; +42.247.33.224/27 1; +42.247.35.144/28 1; +43.192.0.0/16 1; +43.193.0.0/18 1; +43.193.64.0/22 1; +43.194.0.0/20 1; +43.194.16.0/24 1; +43.251.36.0/22 1; +45.253.60.0/22 1; +52.82.0.0/15 1; +52.93.127.92/30 1; +52.93.127.96/29 1; +52.93.127.104/31 1; +54.239.0.176/28 1; +58.194.128.0/20 1; +59.76.176.0/20 1; +59.76.192.0/18 1; +59.81.98.0/23 1; +61.133.192.0/19 1; +61.232.245.0/24 1; +61.232.246.0/24 1; +61.237.2.56/30 1; +61.237.15.192/27 1; +61.237.124.86/31 1; +61.237.124.88/30 1; +61.243.108.0/22 1; +61.243.112.0/21 1; +63.249.210.0/23 1; +63.249.212.0/24 1; +68.79.0.0/18 1; +69.230.192.0/18 1; +69.231.128.0/18 1; +69.234.192.0/18 1; +69.235.128.0/18 1; +101.199.48.0/20 1; +103.22.64.0/22 1; +103.88.8.0/22 1; +103.222.184.0/22 1; +103.251.240.0/22 1; +106.45.0.0/16 1; +110.222.0.0/17 1; +111.49.0.0/16 1; +111.50.0.0/15 1; +111.112.0.0/15 1; +112.54.250.0/23 1; +112.62.240.0/20 1; +115.168.61.0/24 1; +115.168.93.0/24 1; +116.129.224.0/24 1; +116.129.242.0/23 1; +117.136.28.0/24 1; +117.142.180.0/23 1; +117.142.182.0/24 1; +117.142.185.0/24 1; +117.142.186.0/24 1; +119.60.0.0/16 1; +120.253.0.0/17 1; +122.72.34.128/25 1; +122.72.110.0/24 1; +123.94.22.192/26 1; +124.224.0.0/16 1; +159.248.0.0/17 1; +159.248.132.0/24 1; +159.248.134.0/23 1; +159.248.136.0/21 1; +159.248.144.0/20 1; +159.248.160.0/19 1; +159.248.192.0/21 1; +159.248.208.0/21 1; +159.248.232.0/21 1; +159.248.240.0/20 1; +161.189.0.0/16 1; +182.54.0.0/17 1; +202.100.96.0/19 1; +202.201.112.0/20 1; +202.201.128.0/19 1; +203.93.160.0/20 1; +210.27.192.0/20 1; +210.27.208.0/21 1; +210.27.216.0/24 1; +210.27.220.0/22 1; +210.27.224.0/19 1; +210.53.194.0/24 1; +211.93.0.0/20 1; +211.93.16.0/21 1; +211.98.124.0/23 1; +211.98.171.224/29 1; +211.98.224.0/26 1; +211.98.224.64/28 1; +211.98.227.0/24 1; +211.98.229.0/24 1; +211.98.238.64/26 1; +211.98.238.128/25 1; +211.98.239.128/29 1; +211.138.48.0/20 1; +218.21.0.0/19 1; +218.21.32.0/20 1; +218.30.173.0/24 1; +218.95.128.0/18 1; +218.95.192.0/19 1; +218.203.96.0/19 1; +218.203.128.0/19 1; +219.158.13.194/31 1; +219.158.13.196/30 1; +219.158.13.200/30 1; +219.158.17.182/31 1; +219.158.17.186/31 1; +219.158.96.126/31 1; +219.158.96.150/31 1; +219.158.97.18/31 1; +219.158.97.122/31 1; +219.158.97.186/31 1; +219.158.99.130/31 1; +219.158.99.146/31 1; +219.158.99.198/31 1; +219.158.102.214/31 1; +219.158.102.218/31 1; +219.158.109.180/31 1; +219.158.112.114/31 1; +219.243.232.0/24 1; +219.247.128.0/18 1; +220.200.148.0/22 1; +220.200.152.0/21 1; +220.200.160.0/19 1; +220.200.192.0/18 1; +220.205.114.0/23 1; +221.11.224.0/19 1; +221.176.15.40/31 1; +221.176.15.44/31 1; +221.176.15.52/31 1; +221.176.26.134/31 1; +221.177.184.0/23 1; +221.183.11.168/30 1; +221.183.11.172/31 1; +221.183.11.176/31 1; +221.183.19.64/30 1; +221.183.22.132/31 1; +221.183.24.216/29 1; +221.183.36.18/31 1; +221.183.36.54/31 1; +221.183.36.58/31 1; +221.183.36.242/31 1; +221.183.37.30/31 1; +221.183.37.50/31 1; +221.199.0.0/17 1; +222.23.192.0/18 1; +222.58.0.0/17 1; +222.75.0.0/16 1; +223.103.29.0/24 1; +223.104.29.0/24 1; +223.104.179.0/24 1; +223.104.180.0/23 1; +223.104.182.0/24 1; +2400:19a0::/32 1; +2400:6500:100:7200::/56 1; +2404:c2c0::/32 1; +2407:7980::/32 1; +240f:8000:4000::/40 1; +240f:8014::/36 1; +240f:80a0:4000::/40 1; +240f:80f8:4000::/40 1; +240f:80f9:4000::/40 1; +240f:80fa:4000::/40 1; +240f:80fc:4000::/40 1; +240f:80fe:4000::/40 1; +240f:80ff:4000::/40 1; diff --git a/minigate/root/usr/lib/minigate/geo/650000.conf b/minigate/root/usr/lib/minigate/geo/650000.conf new file mode 100644 index 000000000..80871eb8a --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/650000.conf @@ -0,0 +1,325 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 新疆 +36.96.0.0/16 1; +36.105.0.0/16 1; +36.107.0.0/16 1; +36.108.0.0/15 1; +36.182.0.0/15 1; +36.184.0.0/14 1; +36.188.0.0/15 1; +36.193.130.0/23 1; +36.193.132.0/22 1; +36.193.136.0/24 1; +42.247.2.184/29 1; +42.247.6.192/29 1; +42.247.10.32/27 1; +42.247.17.128/27 1; +42.247.17.192/28 1; +42.247.20.224/27 1; +42.247.21.32/27 1; +42.247.21.64/28 1; +42.247.28.160/27 1; +42.247.30.96/27 1; +42.247.32.96/28 1; +42.247.32.160/27 1; +42.247.37.160/27 1; +42.247.41.224/27 1; +42.247.45.32/27 1; +43.224.52.0/23 1; +43.224.54.48/29 1; +43.224.54.64/29 1; +43.224.54.152/29 1; +43.224.54.216/29 1; +43.224.54.224/27 1; +43.224.55.0/24 1; +43.242.152.0/22 1; +49.112.0.0/13 1; +49.209.0.0/18 1; +58.207.64.0/22 1; +59.75.128.0/19 1; +59.75.160.0/20 1; +59.75.176.0/21 1; +59.75.224.0/20 1; +59.75.240.0/21 1; +59.81.104.0/23 1; +60.13.128.0/17 1; +61.128.0.0/17 1; +61.138.224.0/19 1; +61.232.252.0/22 1; +61.233.192.0/20 1; +61.234.128.0/20 1; +61.237.1.180/30 1; +61.237.2.48/30 1; +61.237.3.212/30 1; +61.237.15.128/27 1; +61.237.120.216/29 1; +61.237.120.224/27 1; +61.237.127.66/31 1; +61.243.64.0/19 1; +103.3.136.0/22 1; +103.8.207.0/24 1; +103.22.116.0/22 1; +103.71.84.0/22 1; +103.82.104.0/22 1; +103.200.64.0/22 1; +103.227.228.0/22 1; +104.28.66.15/32 1; +104.28.66.16/31 1; +104.28.99.42/32 1; +104.28.184.10/31 1; +104.28.184.12/31 1; +104.28.216.59/32 1; +104.28.216.60/31 1; +104.28.216.62/32 1; +104.28.248.59/32 1; +104.28.248.60/31 1; +104.28.248.62/32 1; +106.123.0.0/16 1; +106.124.0.0/16 1; +110.152.0.0/14 1; +110.156.0.0/15 1; +111.115.64.0/18 1; +112.43.0.0/16 1; +115.155.192.0/20 1; +115.155.208.0/21 1; +115.155.224.0/19 1; +115.168.62.0/24 1; +115.168.94.0/24 1; +116.131.32.0/19 1; +116.131.64.0/18 1; +116.178.0.0/16 1; +117.136.26.0/24 1; +117.145.0.0/16 1; +117.146.0.0/16 1; +117.190.0.0/15 1; +120.68.0.0/14 1; +120.95.192.0/18 1; +120.205.0.0/16 1; +122.72.111.0/24 1; +123.80.0.0/16 1; +123.94.23.128/25 1; +123.95.128.0/17 1; +124.88.0.0/16 1; +124.117.0.0/16 1; +124.118.0.0/15 1; +125.213.112.0/20 1; +159.226.132.0/22 1; +159.226.255.96/28 1; +175.50.0.0/16 1; +202.97.21.0/28 1; +202.97.21.16/30 1; +202.97.21.60/31 1; +202.97.21.64/30 1; +202.97.21.68/31 1; +202.97.21.72/31 1; +202.97.24.18/31 1; +202.97.24.22/31 1; +202.97.24.26/31 1; +202.97.24.28/30 1; +202.97.24.32/29 1; +202.97.24.46/31 1; +202.97.24.62/31 1; +202.97.38.86/31 1; +202.97.38.90/31 1; +202.97.38.110/31 1; +202.97.38.114/31 1; +202.97.38.122/31 1; +202.97.38.126/31 1; +202.97.38.130/31 1; +202.97.38.134/31 1; +202.97.38.136/30 1; +202.97.38.154/31 1; +202.97.38.158/31 1; +202.97.43.30/31 1; +202.97.43.74/31 1; +202.97.43.118/31 1; +202.97.43.154/31 1; +202.97.43.222/31 1; +202.97.43.226/31 1; +202.97.43.238/31 1; +202.97.44.218/31 1; +202.97.46.154/31 1; +202.97.46.178/31 1; +202.97.46.230/31 1; +202.97.46.234/31 1; +202.97.46.236/30 1; +202.97.47.6/31 1; +202.97.47.14/31 1; +202.97.47.18/31 1; +202.97.47.62/31 1; +202.97.69.34/31 1; +202.97.69.36/30 1; +202.97.69.40/30 1; +202.97.69.54/31 1; +202.97.69.56/29 1; +202.97.69.98/31 1; +202.97.69.100/30 1; +202.97.69.158/31 1; +202.97.69.178/31 1; +202.97.69.182/31 1; +202.97.70.198/31 1; +202.97.70.202/31 1; +202.97.70.204/30 1; +202.97.70.214/31 1; +202.97.71.66/31 1; +202.97.72.0/28 1; +202.97.72.16/29 1; +202.97.72.26/31 1; +202.97.72.30/31 1; +202.97.72.34/31 1; +202.97.72.42/31 1; +202.97.72.46/31 1; +202.97.72.50/31 1; +202.97.72.54/31 1; +202.97.72.56/29 1; +202.97.72.64/28 1; +202.97.72.80/29 1; +202.97.72.90/31 1; +202.97.72.92/30 1; +202.97.72.96/30 1; +202.97.72.110/31 1; +202.97.72.114/31 1; +202.97.72.134/31 1; +202.97.72.142/31 1; +202.97.72.158/31 1; +202.97.72.160/30 1; +202.97.72.174/31 1; +202.97.72.178/31 1; +202.97.72.184/30 1; +202.97.73.70/31 1; +202.97.82.186/31 1; +202.97.89.202/31 1; +202.97.89.226/31 1; +202.97.89.228/30 1; +202.97.89.232/29 1; +202.97.89.240/28 1; +202.100.160.0/19 1; +202.107.128.0/18 1; +202.127.253.0/26 1; +202.201.160.0/19 1; +202.201.192.0/18 1; +203.93.185.0/24 1; +203.93.203.0/24 1; +210.5.60.0/24 1; +210.7.56.0/22 1; +210.26.128.0/17 1; +210.52.20.0/24 1; +210.53.192.0/24 1; +210.73.32.0/21 1; +210.75.95.128/26 1; +210.82.172.0/24 1; +211.98.127.0/24 1; +211.98.171.240/29 1; +211.98.224.216/29 1; +211.98.224.224/27 1; +211.98.225.0/28 1; +211.98.226.0/24 1; +211.98.233.0/24 1; +211.98.239.0/29 1; +211.98.239.8/30 1; +211.98.239.104/29 1; +211.98.239.112/29 1; +211.98.249.0/24 1; +211.98.252.0/24 1; +211.138.32.0/20 1; +218.31.0.0/16 1; +218.84.0.0/16 1; +218.195.128.0/17 1; +218.202.144.0/20 1; +218.202.160.0/19 1; +218.202.192.0/19 1; +219.158.11.10/31 1; +219.158.11.12/30 1; +219.158.17.118/31 1; +219.158.17.122/31 1; +219.158.17.126/31 1; +219.158.19.98/31 1; +219.158.19.102/31 1; +219.158.19.106/31 1; +219.158.19.110/31 1; +219.158.20.114/31 1; +219.158.101.210/31 1; +219.158.101.212/30 1; +219.158.101.216/30 1; +219.158.102.230/31 1; +219.158.111.18/31 1; +219.158.111.22/31 1; +219.158.111.34/31 1; +219.158.111.36/30 1; +219.158.111.52/31 1; +219.158.116.142/31 1; +219.158.116.144/28 1; +219.158.117.50/31 1; +219.158.117.52/30 1; +219.158.117.56/29 1; +219.158.117.64/28 1; +219.243.233.0/24 1; +219.247.0.0/18 1; +219.247.64.0/19 1; +219.247.96.0/20 1; +219.247.112.0/22 1; +219.247.116.0/24 1; +220.171.0.0/17 1; +220.171.128.0/18 1; +221.7.0.0/19 1; +221.174.126.0/24 1; +221.176.15.66/31 1; +221.176.16.24/31 1; +221.176.27.68/31 1; +221.176.27.72/31 1; +221.177.180.0/23 1; +221.181.0.0/18 1; +221.183.11.152/31 1; +221.183.13.192/29 1; +221.183.19.110/31 1; +221.183.36.30/31 1; +221.183.36.62/31 1; +221.183.36.198/31 1; +221.183.36.250/31 1; +222.25.192.0/18 1; +222.60.0.0/17 1; +222.62.32.0/19 1; +222.62.64.0/19 1; +222.80.0.0/15 1; +222.82.0.0/16 1; +222.83.0.0/17 1; +223.103.30.0/24 1; +223.104.30.0/24 1; +223.104.233.0/24 1; +223.104.234.0/24 1; +223.114.0.0/15 1; +223.116.0.0/15 1; +2400:82c0::/32 1; +2402:5e40::/32 1; +2405:8a40::/32 1; +2405:a3c0::/32 1; +2406:840:f660::/44 1; +2406:7480::/32 1; +240a:42f4:4800::/40 1; +240e:448:4c00::/40 1; +240e:448:c000::/40 1; +2606:54c0:1f08::/45 1; +2606:54c3:0:693::/64 1; +2a02:26f7:ce80:4000::/64 1; +2a02:26f7:ce80:d040::/62 1; +2a02:26f7:ce80:d044::/63 1; +2a02:26f7:ce80:d046::/64 1; +2a02:26f7:ce81:4000::/64 1; +2a02:26f7:ce88:4000::/64 1; +2a02:26f7:ce88:d040::/62 1; +2a02:26f7:ce88:d044::/63 1; +2a02:26f7:ce88:d046::/64 1; +2a02:26f7:ce89:4000::/64 1; +2a02:26f7:ce8c:4000::/64 1; +2a02:26f7:ce8c:d040::/62 1; +2a02:26f7:ce8c:d044::/63 1; +2a02:26f7:ce8c:d046::/64 1; +2a02:26f7:ce8d:4000::/64 1; +2a09:bac1:1980:2fc8::/64 1; +2a09:bac1:19a0:2fc8::/64 1; +2a09:bac1:19c0:2fc8::/64 1; +2a09:bac1:19e0:2fc8::/64 1; +2a09:bac2:1f08::/45 1; +2a09:bac3:1f08::/45 1; +2a09:bac5:1f38::/45 1; +2a09:bac6:1f38::/45 1; +2a0e:b107:ae::/48 1; diff --git a/minigate/root/usr/lib/minigate/geo/710000.conf b/minigate/root/usr/lib/minigate/geo/710000.conf new file mode 100644 index 000000000..1b361f78e --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/710000.conf @@ -0,0 +1,3572 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 台湾省 +1.32.208.0/21 1; +1.32.232.0/24 1; +1.32.234.0/23 1; +1.34.0.0/15 1; +1.160.0.0/12 1; +1.178.31.0/24 1; +1.200.0.0/16 1; +2.18.16.0/23 1; +2.21.16.0/22 1; +3.2.44.64/26 1; +3.2.101.0/24 1; +3.5.196.0/22 1; +3.169.32.0/19 1; +3.169.64.0/18 1; +3.169.128.0/17 1; +3.170.0.0/15 1; +3.172.0.0/16 1; +3.173.0.0/17 1; +3.173.128.0/18 1; +5.42.160.0/20 1; +5.60.0.0/20 1; +5.60.17.0/24 1; +5.60.18.0/23 1; +5.60.20.0/22 1; +5.60.24.0/21 1; +5.145.180.0/23 1; +5.181.129.0/24 1; +5.253.85.0/24 1; +5.253.245.0/24 1; +8.29.109.119/32 1; +8.29.231.120/32 1; +8.39.126.0/24 1; +8.209.32.0/22 1; +13.33.189.0/24 1; +13.33.200.0/22 1; +13.34.128.192/26 1; +13.34.129.0/26 1; +13.34.129.128/26 1; +13.34.160.128/26 1; +13.34.190.32/27 1; +13.34.244.128/26 1; +13.248.78.0/24 1; +14.0.56.0/24 1; +14.0.63.0/24 1; +14.102.0.0/23 1; +15.128.0.0/20 1; +15.177.104.0/24 1; +15.190.112.0/20 1; +15.190.244.0/22 1; +15.220.56.0/21 1; +15.220.80.0/20 1; +15.248.128.0/21 1; +16.12.78.0/23 1; +16.12.80.0/24 1; +17.253.116.0/23 1; +18.97.112.0/20 1; +23.11.64.0/19 1; +23.36.112.0/21 1; +23.36.240.0/24 1; +23.39.44.0/23 1; +23.39.60.0/22 1; +23.40.200.0/22 1; +23.41.128.0/20 1; +23.42.96.0/20 1; +23.45.196.0/22 1; +23.46.63.0/24 1; +23.46.88.0/22 1; +23.49.112.0/20 1; +23.50.226.0/23 1; +23.58.96.0/21 1; +23.58.108.0/22 1; +23.65.80.0/20 1; +23.73.24.0/23 1; +23.76.80.0/20 1; +23.91.111.0/24 1; +23.193.24.0/22 1; +23.198.96.0/23 1; +23.199.34.0/24 1; +23.201.8.0/21 1; +23.201.40.0/23 1; +23.201.42.0/24 1; +23.202.122.0/23 1; +23.202.124.0/22 1; +23.205.172.0/23 1; +23.206.184.0/23 1; +23.209.216.0/22 1; +23.210.215.0/24 1; +23.210.236.0/22 1; +23.211.113.0/24 1; +23.211.228.0/22 1; +23.211.253.0/24 1; +23.212.60.0/24 1; +23.213.216.0/21 1; +23.217.11.0/24 1; +23.219.32.0/22 1; +23.220.196.0/22 1; +23.220.224.0/21 1; +23.221.204.0/22 1; +23.236.103.0/24 1; +23.236.104.0/24 1; +23.248.176.0/23 1; +23.251.126.0/24 1; +23.254.0.0/21 1; +23.254.40.0/21 1; +23.254.48.0/20 1; +23.254.64.0/20 1; +23.254.80.0/21 1; +24.233.0.0/19 1; +24.235.24.0/22 1; +24.235.28.0/24 1; +27.0.152.0/22 1; +27.0.233.0/24 1; +27.34.177.0/24 1; +27.34.182.0/23 1; +27.34.184.0/23 1; +27.34.191.0/24 1; +27.50.0.0/22 1; +27.50.52.0/24 1; +27.51.0.0/16 1; +27.52.0.0/15 1; +27.96.224.0/19 1; +27.100.64.0/18 1; +27.105.0.0/16 1; +27.106.216.0/21 1; +27.123.40.0/23 1; +27.123.48.0/21 1; +27.123.194.0/23 1; +27.123.198.0/23 1; +27.123.200.0/21 1; +27.124.0.0/23 1; +27.124.13.0/24 1; +27.124.14.0/24 1; +27.126.220.0/22 1; +27.126.228.0/23 1; +27.126.230.0/24 1; +27.147.0.0/18 1; +27.240.0.0/13 1; +31.13.87.0/24 1; +31.40.228.0/22 1; +34.34.244.0/24 1; +34.80.0.0/15 1; +34.137.0.0/16 1; +34.183.71.0/24 1; +34.183.104.0/24 1; +34.184.70.0/24 1; +34.184.83.0/24 1; +35.71.127.0/24 1; +35.185.128.0/19 1; +35.185.160.0/20 1; +35.187.144.0/20 1; +35.189.160.0/19 1; +35.194.128.0/17 1; +35.201.128.0/17 1; +35.203.220.0/22 1; +35.203.224.0/22 1; +35.206.192.0/18 1; +35.220.32.0/21 1; +35.221.128.0/17 1; +35.229.128.0/17 1; +35.230.196.0/22 1; +35.230.224.0/21 1; +35.234.0.0/18 1; +35.235.16.0/20 1; +35.236.128.0/18 1; +35.242.32.0/21 1; +36.224.0.0/12 1; +36.255.96.0/24 1; +36.255.160.0/22 1; +36.255.244.0/23 1; +36.255.246.0/24 1; +37.252.243.0/24 1; +39.1.0.0/16 1; +39.8.0.0/13 1; +42.0.64.0/18 1; +42.64.0.0/12 1; +42.96.104.0/22 1; +42.99.167.0/24 1; +42.99.216.0/23 1; +43.212.0.0/15 1; +43.224.20.0/22 1; +43.224.88.0/23 1; +43.224.90.0/24 1; +43.225.40.0/22 1; +43.225.93.0/24 1; +43.225.94.0/24 1; +43.225.136.0/22 1; +43.226.232.0/22 1; +43.227.24.0/22 1; +43.228.198.0/23 1; +43.230.52.0/22 1; +43.231.186.0/24 1; +43.231.189.0/24 1; +43.231.190.0/23 1; +43.239.104.0/22 1; +43.239.232.0/24 1; +43.240.24.0/22 1; +43.240.44.0/22 1; +43.240.92.0/22 1; +43.240.104.0/23 1; +43.240.106.4/30 1; +43.240.106.8/29 1; +43.240.106.16/28 1; +43.240.106.32/27 1; +43.240.106.64/26 1; +43.240.106.128/25 1; +43.240.107.0/24 1; +43.240.108.0/22 1; +43.240.152.0/22 1; +43.241.32.0/22 1; +43.241.160.0/21 1; +43.242.108.0/24 1; +43.243.170.0/24 1; +43.243.252.0/22 1; +43.246.128.0/22 1; +43.246.144.0/23 1; +43.246.146.0/24 1; +43.246.182.0/23 1; +43.246.184.0/23 1; +43.246.187.0/24 1; +43.246.188.0/22 1; +43.246.196.0/22 1; +43.246.216.0/22 1; +43.248.16.0/22 1; +43.249.100.0/22 1; +43.249.212.0/23 1; +43.249.214.0/24 1; +43.249.250.0/24 1; +43.250.44.0/22 1; +43.250.52.0/22 1; +43.250.235.0/24 1; +43.251.44.0/22 1; +43.251.56.0/21 1; +43.251.64.0/23 1; +43.251.66.0/24 1; +43.251.69.0/24 1; +43.251.70.0/24 1; +43.251.76.0/23 1; +43.251.79.0/24 1; +43.251.124.0/22 1; +43.251.128.0/23 1; +43.251.130.0/24 1; +43.251.144.0/22 1; +43.251.149.0/24 1; +43.251.185.0/24 1; +43.251.186.0/23 1; +43.254.16.0/22 1; +43.254.60.0/22 1; +43.254.196.0/22 1; +43.255.12.0/22 1; +43.255.88.0/21 1; +43.255.180.0/22 1; +45.9.88.0/22 1; +45.12.228.0/22 1; +45.40.216.0/21 1; +45.43.36.0/22 1; +45.43.59.0/24 1; +45.43.60.0/23 1; +45.57.92.0/23 1; +45.64.28.0/22 1; +45.64.32.0/22 1; +45.64.228.0/22 1; +45.64.232.0/22 1; +45.65.70.0/24 1; +45.67.208.0/22 1; +45.85.196.0/22 1; +45.86.228.0/22 1; +45.92.176.0/22 1; +45.94.120.0/22 1; +45.112.248.0/22 1; +45.113.56.0/22 1; +45.113.129.128/25 1; +45.113.156.0/22 1; +45.113.176.0/22 1; +45.115.33.0/24 1; +45.115.34.0/23 1; +45.115.228.0/22 1; +45.116.130.0/24 1; +45.116.168.0/23 1; +45.121.48.0/23 1; +45.121.50.0/24 1; +45.121.180.0/24 1; +45.124.60.0/22 1; +45.124.204.0/22 1; +45.126.84.0/22 1; +45.126.136.0/24 1; +45.126.140.0/22 1; +45.126.148.0/23 1; +45.126.226.0/23 1; +45.127.216.0/22 1; +45.199.152.0/21 1; +45.199.160.0/19 1; +45.199.192.0/18 1; +45.249.96.0/24 1; +47.89.64.0/24 1; +47.89.91.0/24 1; +47.246.5.0/24 1; +47.246.65.0/24 1; +47.246.66.0/24 1; +47.246.67.0/26 1; +49.128.64.0/19 1; +49.128.112.0/20 1; +49.158.0.0/15 1; +49.213.128.0/17 1; +49.214.0.0/15 1; +49.216.0.0/14 1; +49.246.224.0/23 1; +49.246.228.0/23 1; +49.246.232.0/23 1; +49.246.237.0/24 1; +49.246.238.0/23 1; +49.246.240.0/20 1; +52.46.57.0/24 1; +52.46.62.0/24 1; +52.84.200.0/22 1; +52.84.204.0/23 1; +52.84.248.0/23 1; +52.84.250.0/24 1; +52.94.250.128/28 1; +52.124.196.0/24 1; +54.54.0.0/15 1; +54.192.212.0/22 1; +54.230.212.0/22 1; +54.239.176.0/22 1; +58.82.205.0/24 1; +58.82.206.0/24 1; +58.84.4.0/24 1; +58.84.242.0/24 1; +58.86.0.0/16 1; +58.99.0.0/17 1; +58.114.0.0/15 1; +59.102.128.0/17 1; +59.104.0.0/15 1; +59.112.0.0/12 1; +59.151.140.0/22 1; +60.198.0.0/15 1; +60.244.0.0/16 1; +60.245.0.0/17 1; +60.248.0.0/14 1; +61.8.34.0/24 1; +61.8.37.0/24 1; +61.8.45.0/26 1; +61.8.45.64/27 1; +61.8.45.96/31 1; +61.8.45.100/30 1; +61.8.45.104/29 1; +61.8.45.112/28 1; +61.8.45.128/25 1; +61.8.46.0/24 1; +61.14.132.128/26 1; +61.14.133.0/24 1; +61.14.148.48/28 1; +61.14.150.0/23 1; +61.14.152.0/22 1; +61.14.156.9/32 1; +61.14.156.10/32 1; +61.14.156.71/32 1; +61.14.157.194/31 1; +61.14.157.196/30 1; +61.14.157.200/29 1; +61.14.157.212/31 1; +61.14.157.226/31 1; +61.14.157.228/30 1; +61.14.164.0/23 1; +61.14.176.0/24 1; +61.14.177.128/25 1; +61.14.179.0/24 1; +61.14.180.0/23 1; +61.14.188.0/23 1; +61.14.190.0/24 1; +61.14.191.0/25 1; +61.14.191.128/27 1; +61.14.191.192/28 1; +61.20.0.0/16 1; +61.30.0.0/15 1; +61.45.250.0/24 1; +61.45.252.0/22 1; +61.56.0.0/13 1; +61.64.0.0/14 1; +61.70.0.0/15 1; +61.213.147.128/25 1; +61.216.0.0/13 1; +61.224.0.0/13 1; +61.247.160.0/20 1; +63.216.192.0/21 1; +63.217.71.0/24 1; +63.217.88.0/21 1; +63.218.17.0/24 1; +63.218.78.60/30 1; +63.218.78.64/26 1; +63.218.78.128/25 1; +63.218.79.0/25 1; +63.218.79.128/26 1; +63.218.79.192/27 1; +63.218.244.0/22 1; +63.221.80.0/21 1; +63.222.40.0/24 1; +63.222.54.0/24 1; +63.223.9.0/24 1; +63.223.19.0/24 1; +63.249.198.0/23 1; +63.249.200.0/24 1; +64.25.32.0/20 1; +64.78.174.0/23 1; +64.185.170.0/24 1; +64.233.175.209/32 1; +64.233.187.0/24 1; +64.233.188.0/23 1; +65.255.33.0/24 1; +66.133.82.0/24 1; +66.159.198.0/24 1; +66.171.112.0/23 1; +66.171.116.128/25 1; +66.171.117.0/24 1; +66.249.71.0/24 1; +66.249.82.0/24 1; +66.249.94.24/32 1; +66.249.95.150/31 1; +66.249.95.250/31 1; +66.249.95.252/31 1; +66.253.29.0/24 1; +66.253.30.0/24 1; +70.32.159.0/24 1; +70.132.27.0/24 1; +70.157.0.0/16 1; +71.152.15.0/24 1; +72.14.192.0/24 1; +72.14.194.216/31 1; +72.14.195.40/31 1; +72.14.195.146/31 1; +72.14.195.176/31 1; +72.14.195.213/32 1; +72.14.196.56/30 1; +72.14.196.80/30 1; +72.14.196.228/30 1; +72.14.198.8/30 1; +72.14.212.128/31 1; +72.14.213.90/31 1; +72.14.213.144/29 1; +72.14.214.0/30 1; +72.14.214.46/31 1; +72.14.214.124/30 1; +72.14.214.152/31 1; +72.14.214.204/31 1; +72.14.214.207/32 1; +72.14.215.0/31 1; +72.14.215.200/31 1; +72.14.216.60/30 1; +72.14.217.40/31 1; +72.14.218.26/31 1; +72.14.218.128/30 1; +72.14.218.140/30 1; +72.14.219.64/30 1; +72.14.219.134/31 1; +72.14.220.124/31 1; +72.14.220.170/31 1; +72.14.220.200/29 1; +72.14.220.210/31 1; +72.14.221.32/30 1; +72.14.221.60/30 1; +72.14.221.184/30 1; +72.14.222.32/31 1; +72.14.223.190/31 1; +72.14.229.0/24 1; +72.14.231.40/29 1; +72.14.232.95/32 1; +72.14.233.159/32 1; +72.14.233.232/31 1; +72.14.237.43/32 1; +72.14.237.68/31 1; +72.14.237.111/32 1; +72.14.237.230/31 1; +72.14.239.78/31 1; +72.14.239.84/31 1; +72.14.239.91/32 1; +72.14.239.100/31 1; +72.14.239.118/31 1; +72.14.239.214/31 1; +72.14.254.152/32 1; +72.35.248.0/22 1; +72.242.0.0/15 1; +74.80.95.0/24 1; +74.114.48.0/22 1; +74.125.10.128/27 1; +74.125.10.160/28 1; +74.125.23.0/24 1; +74.125.41.0/24 1; +74.125.48.66/31 1; +74.125.48.100/30 1; +74.125.48.104/30 1; +74.125.48.134/31 1; +74.125.49.144/31 1; +74.125.52.124/31 1; +74.125.52.206/31 1; +74.125.66.0/24 1; +74.125.102.32/27 1; +74.125.251.158/31 1; +74.125.251.160/31 1; +74.125.252.23/32 1; +74.125.252.142/31 1; +74.125.252.166/31 1; +74.125.252.172/31 1; +74.125.252.184/31 1; +76.223.170.80/28 1; +77.67.84.0/24 1; +79.170.33.0/24 1; +79.170.34.0/23 1; +79.170.36.0/22 1; +80.89.0.0/20 1; +82.100.184.0/21 1; +82.115.2.0/24 1; +85.239.33.0/24 1; +85.239.34.0/24 1; +85.239.36.0/22 1; +85.239.40.0/21 1; +85.239.48.0/20 1; +87.245.233.226/31 1; +87.251.0.0/22 1; +89.184.192.0/19 1; +89.207.224.4/30 1; +89.207.224.8/31 1; +89.207.224.24/31 1; +89.207.224.38/31 1; +89.207.224.40/31 1; +89.207.224.98/31 1; +89.207.224.100/30 1; +89.207.224.104/31 1; +89.207.224.180/30 1; +89.207.224.228/31 1; +89.207.228.0/30 1; +89.207.228.4/31 1; +89.207.228.24/31 1; +89.207.228.26/32 1; +89.207.228.30/31 1; +89.207.228.59/32 1; +89.207.228.60/30 1; +89.207.228.64/26 1; +89.207.228.128/25 1; +89.207.231.20/31 1; +89.207.231.68/30 1; +89.207.231.72/31 1; +91.206.144.0/23 1; +91.209.48.0/24 1; +91.223.161.0/24 1; +93.90.72.0/23 1; +93.114.0.0/20 1; +94.176.48.0/20 1; +94.176.80.0/20 1; +94.176.112.0/20 1; +94.190.152.0/22 1; +94.190.156.0/24 1; +94.228.16.0/20 1; +95.87.112.0/21 1; +96.7.252.0/22 1; +96.17.0.0/22 1; +101.0.30.0/23 1; +101.0.128.0/17 1; +101.3.0.0/16 1; +101.8.0.0/13 1; +101.36.83.0/24 1; +101.36.84.0/22 1; +101.101.101.0/24 1; +101.102.103.0/24 1; +101.136.0.0/14 1; +103.1.45.0/24 1; +103.1.220.0/22 1; +103.2.216.0/22 1; +103.3.192.0/22 1; +103.4.28.0/22 1; +103.4.104.0/22 1; +103.5.32.0/22 1; +103.5.100.0/22 1; +103.5.116.0/22 1; +103.5.160.0/22 1; +103.6.20.0/22 1; +103.6.60.0/23 1; +103.6.124.0/22 1; +103.8.84.0/22 1; +103.8.88.0/22 1; +103.8.104.0/23 1; +103.8.107.0/24 1; +103.9.116.0/22 1; +103.9.176.0/23 1; +103.9.178.0/24 1; +103.9.179.0/25 1; +103.9.179.128/26 1; +103.9.179.192/27 1; +103.9.179.224/28 1; +103.9.179.248/29 1; +103.9.228.0/22 1; +103.10.4.0/22 1; +103.10.37.0/24 1; +103.10.204.0/22 1; +103.11.6.0/23 1; +103.11.37.0/24 1; +103.11.40.0/22 1; +103.11.239.0/24 1; +103.12.53.0/24 1; +103.12.54.0/23 1; +103.12.60.0/22 1; +103.12.208.0/23 1; +103.12.216.0/22 1; +103.13.17.0/24 1; +103.13.18.0/23 1; +103.13.45.0/24 1; +103.13.46.0/24 1; +103.13.212.0/22 1; +103.14.56.0/23 1; +103.14.164.0/22 1; +103.14.176.0/22 1; +103.15.32.0/22 1; +103.15.76.0/22 1; +103.16.120.0/22 1; +103.16.240.0/21 1; +103.17.8.0/21 1; +103.17.24.0/22 1; +103.17.122.0/23 1; +103.17.240.32/27 1; +103.17.240.64/26 1; +103.17.240.128/25 1; +103.17.241.128/25 1; +103.17.243.0/24 1; +103.18.128.0/22 1; +103.18.172.0/22 1; +103.18.228.0/22 1; +103.20.40.0/22 1; +103.20.176.0/22 1; +103.21.60.0/22 1; +103.21.105.0/24 1; +103.21.106.0/23 1; +103.21.196.0/22 1; +103.22.156.0/22 1; +103.22.212.0/22 1; +103.23.72.0/22 1; +103.23.88.0/22 1; +103.23.96.0/23 1; +103.23.98.0/24 1; +103.23.108.0/22 1; +103.23.128.0/22 1; +103.23.215.0/24 1; +103.23.220.0/24 1; +103.24.52.0/22 1; +103.24.80.0/22 1; +103.24.100.0/22 1; +103.24.160.0/22 1; +103.25.198.0/23 1; +103.25.232.0/21 1; +103.26.180.0/22 1; +103.27.180.0/22 1; +103.28.200.0/22 1; +103.30.44.0/22 1; +103.30.128.0/21 1; +103.30.252.0/22 1; +103.31.196.0/22 1; +103.35.122.0/24 1; +103.35.204.0/22 1; +103.36.24.0/22 1; +103.36.88.0/22 1; +103.36.116.0/22 1; +103.37.36.0/22 1; +103.38.20.0/23 1; +103.38.22.0/24 1; +103.38.146.0/23 1; +103.39.32.0/22 1; +103.39.40.0/23 1; +103.40.4.0/22 1; +103.40.164.0/23 1; +103.40.176.0/22 1; +103.40.225.0/24 1; +103.41.129.0/24 1; +103.42.112.0/23 1; +103.42.136.0/22 1; +103.42.144.0/21 1; +103.42.191.0/24 1; +103.42.228.0/22 1; +103.43.48.0/22 1; +103.43.108.0/22 1; +103.46.144.0/22 1; +103.46.184.0/21 1; +103.47.61.0/24 1; +103.47.176.0/22 1; +103.48.28.0/24 1; +103.49.126.0/24 1; +103.49.133.0/24 1; +103.49.134.0/24 1; +103.51.88.0/22 1; +103.51.140.0/22 1; +103.52.112.0/22 1; +103.52.124.0/22 1; +103.52.236.0/22 1; +103.53.100.0/22 1; +103.56.8.0/23 1; +103.56.10.0/24 1; +103.56.212.0/22 1; +103.57.90.0/24 1; +103.59.108.0/22 1; +103.59.136.0/22 1; +103.59.220.0/22 1; +103.60.252.0/22 1; +103.61.136.0/22 1; +103.67.160.0/22 1; +103.67.204.0/23 1; +103.67.207.0/24 1; +103.67.224.0/22 1; +103.68.111.0/24 1; +103.68.138.0/24 1; +103.69.48.0/21 1; +103.69.80.0/22 1; +103.69.92.0/22 1; +103.69.136.0/22 1; +103.69.204.0/22 1; +103.70.52.0/22 1; +103.70.180.0/22 1; +103.71.136.0/21 1; +103.74.0.0/22 1; +103.74.52.0/23 1; +103.74.201.0/24 1; +103.74.202.0/23 1; +103.76.112.0/22 1; +103.78.122.0/23 1; +103.78.222.0/23 1; +103.80.204.0/22 1; +103.81.128.0/23 1; +103.81.130.0/24 1; +103.81.185.0/24 1; +103.82.112.0/22 1; +103.82.128.0/22 1; +103.89.20.0/22 1; +103.90.12.0/23 1; +103.94.28.0/24 1; +103.95.29.0/24 1; +103.95.44.0/22 1; +103.96.120.0/22 1; +103.97.132.0/22 1; +103.97.156.0/22 1; +103.98.16.0/23 1; +103.98.72.0/22 1; +103.99.4.0/22 1; +103.99.88.0/22 1; +103.100.124.0/22 1; +103.100.164.0/22 1; +103.100.192.0/24 1; +103.102.16.0/22 1; +103.103.80.0/23 1; +103.103.82.0/24 1; +103.103.128.0/22 1; +103.104.151.0/24 1; +103.106.52.0/22 1; +103.107.108.0/24 1; +103.112.48.0/22 1; +103.115.108.0/22 1; +103.116.8.0/22 1; +103.116.42.0/24 1; +103.116.68.0/22 1; +103.116.96.0/22 1; +103.117.4.0/22 1; +103.117.40.0/22 1; +103.117.106.0/24 1; +103.117.112.0/22 1; +103.117.224.0/22 1; +103.118.24.0/21 1; +103.118.148.0/22 1; +103.119.212.0/22 1; +103.123.60.0/22 1; +103.123.100.0/24 1; +103.123.102.0/24 1; +103.123.124.0/22 1; +103.123.128.0/21 1; +103.123.140.0/22 1; +103.123.152.0/22 1; +103.123.172.0/22 1; +103.123.184.0/21 1; +103.123.192.0/21 1; +103.123.217.0/24 1; +103.123.218.0/23 1; +103.123.240.0/22 1; +103.123.252.0/22 1; +103.124.20.0/22 1; +103.124.24.0/21 1; +103.124.32.0/19 1; +103.124.64.0/20 1; +103.124.120.0/22 1; +103.124.148.0/22 1; +103.124.176.0/22 1; +103.124.208.0/22 1; +103.125.64.0/22 1; +103.125.156.0/22 1; +103.125.180.0/22 1; +103.125.224.0/21 1; +103.126.140.0/22 1; +103.126.164.0/22 1; +103.126.180.0/22 1; +103.126.189.0/24 1; +103.126.191.0/24 1; +103.126.252.0/22 1; +103.127.132.0/22 1; +103.127.136.0/22 1; +103.127.148.0/22 1; +103.127.216.0/21 1; +103.127.224.0/21 1; +103.127.232.0/22 1; +103.127.236.0/23 1; +103.127.238.0/24 1; +103.127.241.0/24 1; +103.129.100.0/22 1; +103.129.124.0/22 1; +103.129.144.0/22 1; +103.129.160.0/20 1; +103.129.176.0/21 1; +103.130.0.0/22 1; +103.130.16.0/20 1; +103.130.32.0/20 1; +103.130.48.0/22 1; +103.130.80.0/21 1; +103.130.92.0/22 1; +103.130.96.0/21 1; +103.130.116.0/22 1; +103.130.120.0/21 1; +103.130.236.0/22 1; +103.130.248.0/21 1; +103.131.56.0/22 1; +103.131.82.0/24 1; +103.131.84.0/22 1; +103.131.112.0/22 1; +103.131.124.0/22 1; +103.131.128.0/21 1; +103.131.136.0/22 1; +103.131.148.0/22 1; +103.131.172.0/22 1; +103.131.196.0/22 1; +103.131.248.0/21 1; +103.132.20.0/22 1; +103.132.40.0/22 1; +103.132.100.0/22 1; +103.132.132.0/22 1; +103.132.156.0/22 1; +103.132.160.0/22 1; +103.133.44.0/22 1; +103.133.152.0/21 1; +103.133.244.0/22 1; +103.134.80.0/22 1; +103.134.120.0/22 1; +103.134.232.0/22 1; +103.135.16.0/22 1; +103.135.21.0/24 1; +103.135.22.0/23 1; +103.135.64.0/22 1; +103.135.116.0/22 1; +103.135.120.0/22 1; +103.136.60.0/23 1; +103.136.210.0/23 1; +103.136.224.0/23 1; +103.136.250.0/24 1; +103.137.166.0/24 1; +103.137.188.0/23 1; +103.137.246.0/23 1; +103.138.92.0/23 1; +103.138.106.0/23 1; +103.138.134.0/24 1; +103.138.194.0/23 1; +103.139.64.0/23 1; +103.139.92.0/23 1; +103.139.96.0/23 1; +103.139.126.0/23 1; +103.139.240.0/23 1; +103.140.110.0/23 1; +103.140.232.0/23 1; +103.142.42.0/23 1; +103.142.44.0/23 1; +103.142.150.0/23 1; +103.142.152.0/23 1; +103.142.176.0/23 1; +103.142.244.0/23 1; +103.143.56.0/23 1; +103.144.6.0/23 1; +103.144.32.0/22 1; +103.144.62.0/23 1; +103.144.64.0/23 1; +103.144.140.0/23 1; +103.145.22.0/23 1; +103.146.164.0/23 1; +103.146.210.0/23 1; +103.146.212.0/23 1; +103.146.250.0/23 1; +103.147.22.0/23 1; +103.147.58.0/23 1; +103.147.130.0/23 1; +103.148.68.0/23 1; +103.148.72.0/23 1; +103.148.130.0/23 1; +103.148.142.0/23 1; +103.148.146.0/23 1; +103.149.64.0/23 1; +103.150.36.0/24 1; +103.150.230.0/23 1; +103.151.176.0/24 1; +103.152.150.0/23 1; +103.152.202.0/23 1; +103.152.220.0/23 1; +103.152.252.0/23 1; +103.155.176.0/23 1; +103.193.184.0/22 1; +103.196.86.0/23 1; +103.196.128.0/22 1; +103.196.172.0/22 1; +103.196.184.0/24 1; +103.196.204.0/22 1; +103.197.172.0/22 1; +103.198.82.0/24 1; +103.198.147.0/24 1; +103.198.152.0/22 1; +103.200.0.0/22 1; +103.205.72.0/22 1; +103.206.156.0/23 1; +103.207.48.0/22 1; +103.207.72.0/23 1; +103.207.74.0/24 1; +103.207.75.0/25 1; +103.207.252.0/22 1; +103.208.84.0/24 1; +103.208.87.0/24 1; +103.208.192.0/22 1; +103.208.196.0/23 1; +103.210.200.0/22 1; +103.211.198.0/24 1; +103.214.16.0/22 1; +103.214.70.0/24 1; +103.220.100.0/24 1; +103.220.102.0/23 1; +103.222.248.0/22 1; +103.224.24.0/22 1; +103.224.56.0/22 1; +103.224.68.0/22 1; +103.224.96.0/22 1; +103.224.132.0/22 1; +103.224.148.0/22 1; +103.224.192.0/22 1; +103.224.200.0/21 1; +103.224.252.0/22 1; +103.225.0.0/22 1; +103.226.100.0/22 1; +103.226.212.0/22 1; +103.227.32.0/22 1; +103.227.40.0/24 1; +103.227.152.0/22 1; +103.227.224.0/22 1; +103.228.216.0/22 1; +103.229.16.0/23 1; +103.229.50.0/24 1; +103.229.100.0/22 1; +103.229.132.0/22 1; +103.229.227.0/24 1; +103.230.64.0/24 1; +103.230.66.0/23 1; +103.230.88.0/22 1; +103.230.144.0/24 1; +103.231.36.0/22 1; +103.231.48.0/22 1; +103.232.136.0/22 1; +103.233.68.0/22 1; +103.233.212.0/22 1; +103.234.40.0/21 1; +103.234.76.0/22 1; +103.234.80.0/22 1; +103.234.204.0/22 1; +103.234.224.0/21 1; +103.235.5.0/24 1; +103.235.6.0/23 1; +103.235.48.0/22 1; +103.235.88.0/22 1; +103.236.100.0/22 1; +103.237.48.0/22 1; +103.239.60.0/22 1; +103.240.80.0/22 1; +103.240.216.0/22 1; +103.241.8.0/23 1; +103.241.10.0/24 1; +103.241.28.0/22 1; +103.241.32.0/22 1; +103.241.68.0/22 1; +103.241.76.0/22 1; +103.241.112.0/21 1; +103.241.236.0/22 1; +103.242.144.0/22 1; +103.243.20.0/22 1; +103.243.36.0/22 1; +103.243.248.0/22 1; +103.244.163.0/24 1; +103.244.208.0/22 1; +103.244.220.0/22 1; +103.245.232.0/22 1; +103.246.20.0/22 1; +103.246.176.0/23 1; +103.246.208.0/22 1; +103.246.218.0/23 1; +103.246.252.0/23 1; +103.247.68.0/22 1; +103.247.112.0/22 1; +103.248.133.0/24 1; +103.248.148.0/22 1; +103.249.184.0/22 1; +103.252.68.0/22 1; +103.252.128.0/21 1; +103.252.156.0/22 1; +103.252.196.0/22 1; +103.252.213.0/24 1; +103.252.214.0/23 1; +103.252.229.0/24 1; +103.252.244.0/24 1; +103.253.28.0/23 1; +103.253.30.0/24 1; +103.253.56.0/22 1; +103.253.120.0/23 1; +103.253.184.0/22 1; +103.254.36.0/22 1; +103.254.122.0/23 1; +103.254.212.0/22 1; +103.255.40.0/22 1; +104.28.20.210/31 1; +104.28.20.212/30 1; +104.28.20.216/31 1; +104.28.25.246/31 1; +104.28.25.248/30 1; +104.28.25.252/31 1; +104.28.27.247/32 1; +104.28.27.248/30 1; +104.28.27.252/31 1; +104.28.27.254/32 1; +104.28.66.112/31 1; +104.28.66.117/32 1; +104.28.66.118/31 1; +104.28.66.120/30 1; +104.28.66.124/31 1; +104.28.66.126/32 1; +104.28.69.112/31 1; +104.28.69.117/32 1; +104.28.69.118/31 1; +104.28.69.120/30 1; +104.28.69.124/31 1; +104.28.69.126/32 1; +104.28.83.84/31 1; +104.28.83.89/32 1; +104.28.83.90/31 1; +104.28.83.92/30 1; +104.28.83.96/31 1; +104.28.83.98/32 1; +104.28.99.78/31 1; +104.28.99.83/32 1; +104.28.99.84/30 1; +104.28.99.88/30 1; +104.28.99.92/32 1; +104.28.101.78/31 1; +104.28.101.83/32 1; +104.28.101.84/30 1; +104.28.101.88/30 1; +104.28.101.92/32 1; +104.28.117.114/31 1; +104.28.117.119/32 1; +104.28.117.120/29 1; +104.28.117.128/32 1; +104.28.120.114/31 1; +104.28.120.119/32 1; +104.28.120.120/29 1; +104.28.120.128/32 1; +104.28.128.6/31 1; +104.28.128.11/32 1; +104.28.128.12/30 1; +104.28.128.16/30 1; +104.28.128.20/32 1; +104.28.139.17/32 1; +104.28.139.18/32 1; +104.28.141.10/31 1; +104.28.141.20/31 1; +104.28.141.22/32 1; +104.28.141.75/32 1; +104.28.142.7/32 1; +104.28.148.240/30 1; +104.28.148.244/31 1; +104.28.148.246/32 1; +104.28.149.156/30 1; +104.28.149.160/32 1; +104.28.151.153/32 1; +104.28.151.154/31 1; +104.28.151.156/31 1; +104.28.156.240/30 1; +104.28.156.244/31 1; +104.28.156.246/32 1; +104.28.157.156/30 1; +104.28.157.160/32 1; +104.28.159.153/32 1; +104.28.159.154/31 1; +104.28.159.156/31 1; +104.28.160.168/31 1; +104.28.160.178/31 1; +104.28.160.180/32 1; +104.28.160.239/32 1; +104.28.161.158/32 1; +104.28.164.17/32 1; +104.28.164.18/32 1; +104.28.190.96/29 1; +104.28.190.243/32 1; +104.28.190.244/30 1; +104.28.190.248/31 1; +104.28.190.250/32 1; +104.28.192.211/32 1; +104.28.192.212/30 1; +104.28.192.216/31 1; +104.28.192.218/32 1; +104.28.198.3/32 1; +104.28.198.4/30 1; +104.28.198.8/31 1; +104.28.198.10/32 1; +104.28.200.8/29 1; +104.28.222.157/32 1; +104.28.222.158/31 1; +104.28.222.160/30 1; +104.28.222.164/32 1; +104.28.223.50/31 1; +104.28.223.52/30 1; +104.28.223.56/31 1; +104.28.224.211/32 1; +104.28.224.212/30 1; +104.28.224.216/31 1; +104.28.224.218/32 1; +104.28.230.3/32 1; +104.28.230.4/30 1; +104.28.230.8/31 1; +104.28.230.10/32 1; +104.28.232.8/29 1; +104.28.254.157/32 1; +104.28.254.158/31 1; +104.28.254.160/30 1; +104.28.254.164/32 1; +104.28.255.50/31 1; +104.28.255.52/30 1; +104.28.255.56/31 1; +104.29.64.0/24 1; +104.30.135.55/32 1; +104.30.160.233/32 1; +104.30.161.69/32 1; +104.30.161.124/32 1; +104.30.161.187/32 1; +104.30.162.227/32 1; +104.30.163.195/32 1; +104.30.164.39/32 1; +104.30.164.40/32 1; +104.30.165.9/32 1; +104.30.165.35/32 1; +104.30.166.120/32 1; +104.30.166.162/32 1; +104.30.166.168/32 1; +104.30.166.245/32 1; +104.30.166.246/32 1; +104.30.167.185/32 1; +104.30.167.222/32 1; +104.30.168.202/32 1; +104.30.169.24/31 1; +104.30.169.26/32 1; +104.30.170.74/32 1; +104.30.171.172/32 1; +104.30.172.125/32 1; +104.30.172.169/32 1; +104.30.172.171/32 1; +104.30.172.227/32 1; +104.30.173.206/32 1; +104.30.176.48/32 1; +104.30.176.85/32 1; +104.30.176.155/32 1; +104.30.177.20/32 1; +104.30.177.128/32 1; +104.30.178.5/32 1; +104.30.178.89/32 1; +104.30.178.103/32 1; +104.30.178.181/32 1; +104.30.179.55/32 1; +104.30.179.58/32 1; +104.30.179.71/32 1; +104.30.179.147/32 1; +104.30.179.152/32 1; +104.37.42.0/23 1; +104.44.217.180/30 1; +104.70.115.0/24 1; +104.74.71.0/24 1; +104.77.93.0/24 1; +104.77.94.0/23 1; +104.93.0.0/22 1; +104.94.32.0/19 1; +104.107.54.0/23 1; +104.107.56.0/22 1; +104.107.64.0/19 1; +104.115.168.0/21 1; +104.115.208.0/20 1; +104.115.224.0/19 1; +104.116.0.0/20 1; +104.116.16.0/22 1; +104.116.243.0/24 1; +104.124.16.0/20 1; +104.124.32.0/20 1; +104.124.48.0/23 1; +104.124.188.0/22 1; +104.124.192.0/18 1; +104.125.0.0/23 1; +104.132.9.0/24 1; +104.132.11.0/24 1; +104.132.42.0/24 1; +104.132.79.0/24 1; +104.132.150.0/24 1; +104.132.193.0/24 1; +104.132.194.0/24 1; +104.132.213.0/24 1; +104.132.239.0/24 1; +104.133.15.0/24 1; +104.133.17.0/24 1; +104.133.18.0/24 1; +104.155.192.0/19 1; +104.155.224.0/20 1; +104.160.159.48/32 1; +104.160.159.90/32 1; +104.199.128.0/17 1; +104.250.40.0/22 1; +104.250.60.0/22 1; +104.255.59.212/30 1; +104.255.59.216/31 1; +106.1.0.0/16 1; +106.64.0.0/15 1; +106.104.0.0/14 1; +107.154.94.0/24 1; +107.155.30.0/24 1; +107.155.57.0/24 1; +107.155.58.0/24 1; +107.155.224.0/22 1; +107.167.176.0/20 1; +107.178.198.0/24 1; +108.59.224.0/24 1; +108.170.198.0/23 1; +108.170.200.0/22 1; +108.170.248.0/25 1; +108.177.97.0/24 1; +108.177.125.0/24 1; +110.24.0.0/13 1; +110.34.56.0/21 1; +110.50.128.0/18 1; +110.50.224.0/23 1; +110.50.227.0/24 1; +110.50.228.0/22 1; +110.50.233.0/24 1; +110.50.234.0/24 1; +110.50.236.0/22 1; +110.79.32.0/21 1; +111.67.48.0/20 1; +111.70.0.0/15 1; +111.80.0.0/14 1; +111.125.128.0/21 1; +111.184.0.0/15 1; +111.235.132.0/22 1; +111.235.192.0/18 1; +111.240.0.0/12 1; +112.78.16.0/20 1; +112.78.55.0/24 1; +112.78.56.0/21 1; +112.78.64.0/19 1; +112.78.104.0/21 1; +112.104.0.0/15 1; +112.121.32.0/20 1; +112.121.64.0/19 1; +112.121.96.0/20 1; +112.121.112.0/21 1; +112.121.120.0/22 1; +112.213.48.0/20 1; +113.20.144.0/21 1; +113.21.80.0/21 1; +113.21.88.0/22 1; +113.21.93.0/24 1; +113.21.94.0/23 1; +113.21.160.0/19 1; +113.61.128.0/17 1; +113.196.0.0/16 1; +113.197.73.0/24 1; +113.197.74.0/23 1; +113.197.76.0/23 1; +113.212.76.0/22 1; +113.212.176.0/22 1; +113.212.180.0/23 1; +113.212.182.0/24 1; +114.24.0.0/14 1; +114.29.240.0/21 1; +114.30.32.0/20 1; +114.32.0.0/12 1; +114.69.232.0/22 1; +114.69.236.0/24 1; +114.112.18.0/23 1; +114.112.22.0/24 1; +114.112.129.0/24 1; +114.112.131.0/24 1; +114.136.0.0/15 1; +114.140.0.0/16 1; +114.141.216.0/21 1; +114.198.160.0/19 1; +114.199.64.0/23 1; +114.199.66.0/24 1; +114.199.70.0/23 1; +114.199.72.0/22 1; +114.199.77.0/24 1; +114.199.78.0/23 1; +115.30.64.0/18 1; +115.42.80.0/20 1; +115.42.112.0/21 1; +115.43.0.0/16 1; +115.80.0.0/14 1; +115.85.144.0/20 1; +115.165.192.0/18 1; +115.178.0.0/23 1; +116.0.64.240/29 1; +116.0.65.0/24 1; +116.50.32.0/20 1; +116.59.0.0/16 1; +116.66.180.0/22 1; +116.66.254.0/23 1; +116.89.128.0/20 1; +116.118.128.0/18 1; +116.204.164.0/22 1; +116.206.72.0/22 1; +116.206.116.0/22 1; +116.212.80.0/20 1; +116.214.0.0/20 1; +116.241.0.0/16 1; +117.18.124.0/23 1; +117.19.0.0/16 1; +117.56.0.0/16 1; +117.58.199.0/24 1; +117.103.96.0/20 1; +117.104.191.0/24 1; +118.99.128.0/17 1; +118.126.20.0/22 1; +118.126.24.0/21 1; +118.150.0.0/16 1; +118.160.0.0/13 1; +118.168.0.0/14 1; +118.214.224.0/19 1; +118.231.0.0/16 1; +118.232.0.0/15 1; +119.2.39.0/24 1; +119.10.147.0/24 1; +119.10.149.0/24 1; +119.14.0.0/16 1; +119.15.192.0/18 1; +119.30.16.0/20 1; +119.31.176.0/20 1; +119.42.44.0/22 1; +119.42.51.0/24 1; +119.75.240.0/20 1; +119.77.128.0/17 1; +119.160.240.0/20 1; +119.161.12.0/22 1; +119.161.16.0/23 1; +119.235.179.0/24 1; +120.96.0.0/11 1; +121.50.144.0/21 1; +121.50.176.0/20 1; +121.254.64.0/18 1; +122.10.192.0/23 1; +122.10.203.0/24 1; +122.10.204.0/22 1; +122.10.209.0/24 1; +122.10.210.0/23 1; +122.10.212.0/22 1; +122.14.128.0/24 1; +122.14.151.0/24 1; +122.14.152.0/21 1; +122.14.160.0/20 1; +122.14.176.0/21 1; +122.14.184.0/22 1; +122.14.188.0/23 1; +122.14.190.0/24 1; +122.99.0.0/18 1; +122.100.64.0/18 1; +122.112.113.0/24 1; +122.115.68.0/23 1; +122.116.0.0/15 1; +122.118.0.0/16 1; +122.120.0.0/13 1; +122.128.80.0/21 1; +122.144.32.0/19 1; +122.146.0.0/15 1; +122.152.134.0/24 1; +122.152.162.0/23 1; +122.152.168.0/24 1; +122.152.177.0/24 1; +122.152.178.0/23 1; +122.152.180.0/22 1; +122.152.184.0/22 1; +122.152.188.0/23 1; +122.200.152.0/21 1; +122.201.128.0/17 1; +122.248.169.0/24 1; +122.248.184.0/23 1; +122.252.24.0/21 1; +122.252.160.0/20 1; +122.254.0.0/18 1; +122.255.80.0/20 1; +123.0.32.0/19 1; +123.0.192.0/18 1; +123.50.32.0/19 1; +123.51.128.0/17 1; +123.99.0.0/18 1; +123.108.0.0/21 1; +123.108.112.0/22 1; +123.108.116.0/23 1; +123.108.119.0/24 1; +123.108.121.0/24 1; +123.108.122.0/23 1; +123.108.124.0/22 1; +123.108.132.0/24 1; +123.108.137.0/24 1; +123.108.141.0/24 1; +123.108.142.0/23 1; +123.110.0.0/16 1; +123.192.0.0/14 1; +123.204.0.0/15 1; +123.240.0.0/15 1; +123.252.0.0/17 1; +123.253.140.0/23 1; +123.255.224.0/21 1; +123.255.255.0/24 1; +124.6.0.0/19 1; +124.8.0.0/14 1; +124.12.0.0/16 1; +124.29.128.0/18 1; +124.108.72.0/22 1; +124.108.88.0/21 1; +124.108.100.0/22 1; +124.108.104.0/21 1; +124.108.112.0/20 1; +124.108.128.0/18 1; +124.109.4.0/22 1; +124.109.112.0/20 1; +124.150.128.0/21 1; +124.155.128.0/18 1; +124.199.64.0/19 1; +124.199.96.0/20 1; +124.218.0.0/16 1; +124.219.0.0/17 1; +125.62.64.0/22 1; +125.62.224.0/20 1; +125.224.0.0/13 1; +125.232.0.0/15 1; +125.252.69.0/24 1; +125.252.70.0/24 1; +125.252.74.0/24 1; +125.252.75.64/26 1; +125.252.76.0/23 1; +125.252.82.0/24 1; +125.252.96.0/24 1; +128.1.32.0/24 1; +128.1.37.0/24 1; +128.1.45.0/24 1; +128.1.50.0/24 1; +128.1.63.0/24 1; +128.1.64.0/24 1; +128.1.72.0/24 1; +128.1.101.0/24 1; +128.1.102.0/24 1; +128.1.107.0/24 1; +128.1.149.0/24 1; +128.1.155.0/24 1; +128.14.226.0/23 1; +128.14.229.0/24 1; +128.14.230.0/24 1; +128.14.236.0/22 1; +128.90.200.0/22 1; +128.90.204.0/23 1; +128.90.206.0/24 1; +129.227.48.0/22 1; +129.227.58.0/23 1; +129.227.60.0/22 1; +130.211.240.0/20 1; +134.159.101.0/24 1; +134.159.102.0/23 1; +134.159.160.0/30 1; +134.159.163.0/30 1; +134.159.169.0/24 1; +134.159.170.0/24 1; +134.208.0.0/16 1; +134.238.0.0/16 1; +136.228.229.0/24 1; +137.59.208.0/22 1; +138.99.216.0/22 1; +139.5.32.0/22 1; +139.5.185.0/24 1; +139.5.186.0/24 1; +139.175.0.0/16 1; +139.223.0.0/16 1; +140.92.0.0/16 1; +140.96.0.0/16 1; +140.109.0.0/16 1; +140.110.0.0/15 1; +140.112.0.0/12 1; +140.128.0.0/13 1; +140.136.0.0/15 1; +140.138.0.0/16 1; +141.98.212.0/24 1; +142.4.160.144/29 1; +142.4.160.208/29 1; +142.4.161.48/29 1; +142.4.162.8/29 1; +142.4.162.16/29 1; +144.48.32.0/22 1; +146.88.84.0/22 1; +146.88.88.0/22 1; +146.88.92.0/23 1; +146.88.94.0/24 1; +146.88.153.0/24 1; +146.88.154.0/23 1; +146.88.156.0/22 1; +146.88.160.0/22 1; +146.88.165.0/24 1; +146.88.166.0/23 1; +146.88.168.0/22 1; +146.88.173.0/24 1; +146.88.174.0/24 1; +146.196.84.0/22 1; +146.222.14.0/24 1; +147.243.6.32/27 1; +147.243.6.64/27 1; +147.243.14.96/27 1; +147.243.17.32/27 1; +147.243.134.96/27 1; +149.71.127.0/24 1; +150.107.56.0/21 1; +150.107.64.0/22 1; +150.116.0.0/15 1; +150.129.36.0/22 1; +150.129.72.0/22 1; +150.129.96.0/22 1; +150.129.208.0/23 1; +150.129.210.0/24 1; +150.129.228.0/22 1; +150.222.53.224/27 1; +150.222.54.96/27 1; +150.222.54.128/27 1; +150.242.100.0/22 1; +152.32.164.0/22 1; +152.104.96.0/19 1; +154.16.136.0/24 1; +154.16.196.0/22 1; +154.18.24.0/24 1; +154.54.40.136/30 1; +154.214.255.0/24 1; +154.223.38.0/23 1; +154.223.61.0/24 1; +154.223.62.0/24 1; +156.232.96.0/19 1; +156.250.1.0/24 1; +159.63.8.0/24 1; +159.100.205.0/24 1; +159.117.40.0/24 1; +159.117.64.0/19 1; +159.117.132.0/24 1; +159.117.133.0/25 1; +159.117.137.0/24 1; +159.117.138.0/23 1; +159.117.140.0/22 1; +159.117.201.0/24 1; +159.195.0.0/16 1; +160.19.53.0/24 1; +160.19.54.0/23 1; +160.20.0.0/22 1; +160.32.240.0/22 1; +160.32.244.0/23 1; +160.32.246.0/24 1; +162.158.240.0/22 1; +162.222.164.0/23 1; +163.13.0.0/16 1; +163.14.0.0/15 1; +163.16.0.0/12 1; +163.32.0.0/16 1; +163.171.222.0/24 1; +163.244.185.0/24 1; +164.52.8.0/22 1; +164.52.16.0/21 1; +164.52.68.0/23 1; +165.1.244.0/22 1; +165.1.248.0/21 1; +165.84.194.0/23 1; +165.84.196.0/22 1; +165.84.200.0/21 1; +165.84.233.0/24 1; +165.84.234.0/23 1; +165.84.236.0/22 1; +165.84.240.0/21 1; +165.84.249.0/24 1; +165.84.252.0/24 1; +165.84.255.0/24 1; +165.99.168.1/32 1; +165.99.168.2/32 1; +165.154.56.0/21 1; +165.154.64.0/18 1; +165.204.134.0/23 1; +165.204.136.0/21 1; +165.225.102.0/24 1; +167.105.0.0/16 1; +168.95.0.0/16 1; +168.149.159.0/24 1; +172.68.87.0/24 1; +172.68.106.0/23 1; +172.69.221.0/24 1; +172.71.139.0/24 1; +172.71.204.0/24 1; +172.107.246.0/24 1; +172.107.255.0/24 1; +172.217.24.0/27 1; +172.217.24.96/27 1; +172.217.24.128/26 1; +172.217.24.224/27 1; +172.217.26.224/27 1; +172.217.27.96/27 1; +172.217.27.128/27 1; +172.217.42.0/24 1; +172.224.27.0/24 1; +172.224.166.0/24 1; +172.253.16.0/23 1; +172.253.18.0/24 1; +172.253.64.122/31 1; +172.253.64.124/30 1; +172.253.64.128/26 1; +172.253.64.192/28 1; +172.253.64.208/29 1; +172.253.64.216/30 1; +172.253.64.220/32 1; +172.253.66.132/31 1; +172.253.66.182/31 1; +172.253.66.248/31 1; +172.253.67.54/31 1; +172.253.67.56/31 1; +172.253.73.202/31 1; +172.253.73.204/30 1; +172.253.73.216/29 1; +172.253.73.224/27 1; +172.253.74.0/27 1; +172.253.74.32/29 1; +172.253.74.40/32 1; +172.253.74.106/31 1; +172.253.79.239/32 1; +173.82.97.0/24 1; +173.82.108.0/24 1; +173.82.227.0/24 1; +173.194.51.208/28 1; +173.194.51.224/27 1; +173.194.59.32/28 1; +173.194.93.0/24 1; +173.194.171.0/24 1; +173.194.174.0/24 1; +173.222.180.0/22 1; +173.244.40.0/24 1; +175.41.48.0/21 1; +175.41.56.0/22 1; +175.41.60.0/30 1; +175.41.60.4/31 1; +175.41.60.14/31 1; +175.41.60.16/28 1; +175.41.60.32/27 1; +175.41.60.64/26 1; +175.41.60.128/25 1; +175.41.61.0/24 1; +175.41.62.0/23 1; +175.96.0.0/14 1; +175.111.32.0/19 1; +175.111.192.0/18 1; +175.180.0.0/14 1; +175.184.240.0/21 1; +176.104.224.0/20 1; +178.213.128.0/21 1; +180.87.76.0/22 1; +180.92.0.0/20 1; +180.150.168.0/21 1; +180.176.0.0/15 1; +180.204.0.0/14 1; +180.210.230.0/23 1; +180.214.176.0/20 1; +180.217.0.0/16 1; +180.218.0.0/16 1; +180.222.97.0/24 1; +180.222.98.0/23 1; +180.222.100.0/22 1; +180.222.106.0/23 1; +180.222.108.0/22 1; +180.222.112.0/21 1; +180.222.204.0/22 1; +180.233.112.0/22 1; +180.233.116.0/23 1; +180.233.119.0/24 1; +180.233.162.0/23 1; +180.233.164.0/24 1; +180.233.166.0/24 1; +181.215.45.0/24 1; +182.54.128.30/32 1; +182.54.136.0/22 1; +182.155.0.0/16 1; +182.161.42.0/24 1; +182.173.0.0/18 1; +182.173.68.0/22 1; +182.233.0.0/16 1; +182.234.0.0/15 1; +182.239.32.0/21 1; +182.239.46.0/23 1; +183.177.64.0/22 1; +183.177.69.0/24 1; +183.177.70.0/23 1; +183.177.72.0/23 1; +183.177.76.192/26 1; +183.177.77.32/27 1; +183.177.77.64/27 1; +183.177.77.96/30 1; +183.177.77.100/32 1; +183.177.77.102/32 1; +183.177.77.104/29 1; +183.177.77.112/30 1; +183.177.92.0/22 1; +183.177.112.0/21 1; +183.182.64.0/20 1; +184.24.80.0/20 1; +184.25.120.0/23 1; +184.25.124.0/23 1; +184.26.127.0/24 1; +184.26.170.0/23 1; +184.28.66.0/23 1; +184.29.40.0/23 1; +184.50.176.0/20 1; +184.51.152.0/24 1; +184.84.196.0/22 1; +184.86.232.0/22 1; +185.18.72.0/22 1; +185.78.104.0/23 1; +185.86.44.0/23 1; +185.86.46.0/24 1; +185.99.134.0/24 1; +185.100.40.0/24 1; +185.106.0.0/21 1; +185.106.36.0/22 1; +185.109.16.0/22 1; +185.115.164.0/22 1; +185.121.162.0/23 1; +185.121.169.0/24 1; +185.121.170.0/24 1; +185.121.178.0/23 1; +185.126.124.0/22 1; +185.132.78.0/24 1; +185.135.75.0/24 1; +185.135.76.0/23 1; +185.167.12.0/22 1; +185.175.100.0/22 1; +185.182.120.0/22 1; +185.189.160.0/22 1; +185.202.102.0/24 1; +185.203.36.0/22 1; +185.212.120.0/22 1; +185.220.236.0/22 1; +185.238.212.0/22 1; +185.243.4.0/23 1; +185.248.184.0/22 1; +188.68.64.0/20 1; +188.172.208.0/24 1; +188.227.128.0/19 1; +192.72.3.0/24 1; +192.72.4.0/22 1; +192.72.8.0/21 1; +192.72.16.0/20 1; +192.72.32.0/19 1; +192.72.64.0/18 1; +192.72.128.0/18 1; +192.72.192.0/19 1; +192.72.224.0/20 1; +192.72.240.0/21 1; +192.72.248.0/22 1; +192.72.252.0/24 1; +192.72.254.0/24 1; +192.83.122.0/24 1; +192.83.166.0/23 1; +192.83.168.0/21 1; +192.83.176.0/20 1; +192.83.192.0/22 1; +192.83.196.0/24 1; +192.94.35.0/24 1; +192.101.64.0/22 1; +192.102.199.0/24 1; +192.146.5.0/24 1; +192.188.171.0/24 1; +192.192.0.0/16 1; +192.209.62.0/24 1; +192.230.120.0/24 1; +192.254.86.0/24 1; +193.28.159.0/24 1; +193.36.119.0/24 1; +193.42.40.0/22 1; +193.119.0.0/19 1; +193.186.4.96/28 1; +193.186.4.128/25 1; +193.223.108.0/24 1; +193.239.178.0/23 1; +194.105.122.0/24 1; +195.10.217.0/24 1; +195.80.32.0/22 1; +195.80.148.0/24 1; +196.52.128.0/25 1; +196.52.129.144/28 1; +196.52.129.160/27 1; +196.52.129.192/26 1; +196.52.130.0/24 1; +196.52.131.0/25 1; +196.52.164.0/24 1; +196.52.165.0/25 1; +196.52.165.224/27 1; +196.52.166.0/24 1; +196.53.124.0/22 1; +196.53.128.0/23 1; +196.53.130.0/25 1; +196.53.130.128/27 1; +196.53.148.0/23 1; +196.53.150.0/25 1; +196.53.232.0/24 1; +196.53.233.0/25 1; +196.53.233.128/27 1; +196.54.128.0/24 1; +196.54.129.0/25 1; +196.198.187.0/24 1; +196.198.188.0/22 1; +196.198.192.0/23 1; +196.243.8.0/21 1; +198.11.141.0/24 1; +198.148.192.0/23 1; +198.148.194.0/24 1; +199.26.96.0/21 1; +199.36.4.0/24 1; +199.101.116.0/22 1; +199.192.113.0/24 1; +202.2.52.0/22 1; +202.3.160.0/19 1; +202.5.4.0/23 1; +202.5.8.0/21 1; +202.5.224.0/19 1; +202.6.104.0/23 1; +202.8.14.0/23 1; +202.12.76.0/22 1; +202.39.0.0/16 1; +202.41.146.0/24 1; +202.43.192.0/21 1; +202.43.200.0/23 1; +202.47.205.0/24 1; +202.47.206.0/24 1; +202.55.224.0/19 1; +202.58.20.0/22 1; +202.58.24.0/21 1; +202.59.250.0/23 1; +202.66.206.0/23 1; +202.74.126.0/23 1; +202.80.104.0/22 1; +202.80.108.0/24 1; +202.80.111.0/24 1; +202.88.20.0/23 1; +202.88.22.0/24 1; +202.89.121.0/24 1; +202.89.122.0/23 1; +202.97.4.70/31 1; +202.97.4.74/31 1; +202.97.90.46/31 1; +202.123.124.0/22 1; +202.126.64.0/20 1; +202.127.69.8/29 1; +202.128.108.0/23 1; +202.129.221.0/24 1; +202.129.222.0/24 1; +202.131.52.0/23 1; +202.131.54.0/24 1; +202.131.58.0/24 1; +202.131.60.0/22 1; +202.132.0.0/16 1; +202.133.68.0/22 1; +202.133.224.0/19 1; +202.134.56.0/24 1; +202.135.124.0/22 1; +202.135.230.0/24 1; +202.140.134.0/23 1; +202.140.160.0/19 1; +202.144.208.0/20 1; +202.145.32.0/19 1; +202.145.64.0/18 1; +202.145.128.0/17 1; +202.147.25.0/24 1; +202.147.26.0/29 1; +202.147.27.16/28 1; +202.147.27.32/27 1; +202.147.27.64/26 1; +202.147.27.128/25 1; +202.147.28.0/24 1; +202.147.31.0/24 1; +202.147.49.0/25 1; +202.148.208.0/20 1; +202.151.48.0/20 1; +202.153.4.0/23 1; +202.153.160.0/19 1; +202.153.192.0/20 1; +202.154.192.0/19 1; +202.160.64.0/19 1; +202.162.97.0/24 1; +202.165.61.0/24 1; +202.165.110.0/23 1; +202.165.128.0/19 1; +202.168.192.0/20 1; +202.169.160.0/20 1; +202.173.32.0/19 1; +202.174.4.0/24 1; +202.174.16.0/20 1; +202.178.128.0/17 1; +202.181.136.0/21 1; +202.181.144.0/21 1; +202.181.152.0/23 1; +202.181.154.0/24 1; +202.181.216.0/23 1; +202.181.218.0/24 1; +202.181.220.0/22 1; +203.14.212.0/24 1; +203.15.150.0/24 1; +203.18.156.0/22 1; +203.18.160.0/20 1; +203.55.118.0/24 1; +203.64.0.0/16 1; +203.65.0.0/17 1; +203.65.128.0/18 1; +203.65.192.0/19 1; +203.65.224.0/20 1; +203.65.244.0/22 1; +203.65.248.0/21 1; +203.66.0.0/15 1; +203.68.0.0/14 1; +203.72.0.0/14 1; +203.77.0.0/17 1; +203.78.0.0/22 1; +203.78.176.0/20 1; +203.79.128.0/17 1; +203.80.169.0/24 1; +203.81.183.0/24 1; +203.83.216.0/23 1; +203.84.144.0/21 1; +203.84.192.0/20 1; +203.84.212.32/27 1; +203.84.212.64/26 1; +203.84.212.128/25 1; +203.89.96.0/22 1; +203.91.0.0/19 1; +203.92.208.0/24 1; +203.99.254.0/24 1; +203.104.16.32/30 1; +203.105.224.0/19 1; +203.111.208.0/20 1; +203.118.224.0/20 1; +203.119.3.0/24 1; +203.119.94.0/24 1; +203.121.224.0/19 1; +203.133.0.0/17 1; +203.135.64.0/19 1; +203.145.192.0/19 1; +203.148.92.0/24 1; +203.160.143.0/24 1; +203.160.144.0/20 1; +203.160.224.0/19 1; +203.163.72.0/21 1; +203.163.192.0/19 1; +203.170.21.0/24 1; +203.170.22.0/24 1; +203.175.124.0/24 1; +203.187.0.0/17 1; +203.188.192.0/20 1; +203.190.16.0/21 1; +203.191.17.0/24 1; +203.191.18.0/24 1; +203.191.23.0/24 1; +203.191.28.0/24 1; +203.192.140.0/24 1; +203.192.143.0/24 1; +203.192.152.0/24 1; +203.192.162.0/24 1; +203.192.170.0/23 1; +203.192.172.0/24 1; +203.192.177.80/29 1; +203.192.181.0/24 1; +203.196.98.0/24 1; +203.201.32.0/20 1; +203.203.0.0/16 1; +203.204.0.0/16 1; +203.205.212.0/23 1; +203.207.0.0/20 1; +203.207.32.0/20 1; +203.211.0.0/19 1; +203.217.96.0/19 1; +203.222.0.0/19 1; +203.222.191.0/27 1; +204.2.177.192/27 1; +204.128.56.0/23 1; +204.128.62.0/23 1; +205.177.208.0/21 1; +205.177.232.0/24 1; +205.198.15.0/24 1; +205.198.16.0/20 1; +205.198.64.0/24 1; +205.198.65.0/25 1; +205.198.65.128/27 1; +205.198.65.192/26 1; +205.198.66.0/23 1; +205.198.68.0/22 1; +205.198.72.0/21 1; +205.198.80.0/21 1; +205.198.88.0/23 1; +205.198.90.0/24 1; +205.198.91.0/25 1; +205.198.91.128/27 1; +205.198.92.0/25 1; +205.198.92.128/27 1; +205.252.16.0/22 1; +206.108.53.0/24 1; +206.127.144.0/20 1; +206.161.16.0/21 1; +206.218.250.0/24 1; +206.220.71.0/24 1; +207.209.218.0/24 1; +207.226.120.0/21 1; +208.66.232.0/22 1; +208.66.236.0/24 1; +208.70.200.0/24 1; +208.70.202.0/23 1; +208.70.206.0/23 1; +208.71.212.0/23 1; +208.71.214.0/25 1; +208.71.215.0/25 1; +208.81.116.0/24 1; +208.81.117.0/25 1; +208.87.111.0/24 1; +208.87.167.0/24 1; +208.127.158.0/23 1; +209.9.40.0/21 1; +209.9.48.0/21 1; +209.9.136.0/22 1; +209.85.130.0/24 1; +209.85.142.120/31 1; +209.85.142.172/32 1; +209.85.142.252/30 1; +209.85.148.150/31 1; +209.85.148.152/31 1; +209.85.148.254/31 1; +209.85.240.14/31 1; +209.85.241.177/32 1; +209.85.243.100/31 1; +209.85.244.29/32 1; +209.85.244.30/31 1; +209.85.244.39/32 1; +209.85.244.40/29 1; +209.85.244.48/31 1; +209.85.244.50/32 1; +209.85.244.232/29 1; +209.85.245.16/32 1; +209.85.245.48/31 1; +209.85.245.64/30 1; +209.85.245.68/32 1; +209.85.245.161/32 1; +209.85.245.162/31 1; +209.85.245.252/30 1; +209.85.246.8/31 1; +209.85.247.16/30 1; +209.85.247.164/30 1; +209.85.247.196/30 1; +209.85.247.202/31 1; +209.85.247.204/30 1; +209.85.248.129/32 1; +209.85.248.152/31 1; +209.85.253.8/30 1; +209.85.253.12/31 1; +209.120.248.0/24 1; +209.146.8.0/25 1; +209.177.81.0/24 1; +210.1.232.0/22 1; +210.2.22.0/23 1; +210.16.105.0/24 1; +210.16.125.0/24 1; +210.16.126.0/24 1; +210.16.127.0/25 1; +210.17.0.0/17 1; +210.57.28.0/24 1; +210.57.58.0/27 1; +210.57.58.32/28 1; +210.57.61.192/27 1; +210.58.0.0/15 1; +210.60.0.0/14 1; +210.64.0.0/13 1; +210.79.60.0/23 1; +210.80.64.0/19 1; +210.85.0.0/16 1; +210.176.33.0/30 1; +210.176.34.96/27 1; +210.176.44.0/23 1; +210.176.135.0/24 1; +210.176.136.0/22 1; +210.176.144.16/29 1; +210.176.144.224/27 1; +210.176.154.0/23 1; +210.192.0.0/18 1; +210.192.128.0/17 1; +210.200.0.0/15 1; +210.202.0.0/16 1; +210.203.0.0/17 1; +210.208.0.0/16 1; +210.209.0.0/18 1; +210.209.128.0/17 1; +210.240.0.0/14 1; +210.244.0.0/16 1; +211.20.0.0/14 1; +211.72.0.0/13 1; +211.155.69.0/24 1; +211.155.70.0/23 1; +212.22.248.0/22 1; +212.59.88.0/24 1; +212.115.52.0/22 1; +216.58.200.32/27 1; +216.58.200.224/27 1; +216.58.220.0/26 1; +216.58.221.160/27 1; +216.216.0.0/15 1; +216.239.46.170/31 1; +216.239.46.172/30 1; +216.239.46.176/28 1; +216.239.46.223/32 1; +216.239.46.248/31 1; +216.239.48.102/31 1; +216.239.54.88/29 1; +216.239.54.96/29 1; +216.239.63.70/31 1; +216.239.63.72/29 1; +216.239.63.80/31 1; +218.32.0.0/16 1; +218.34.0.0/15 1; +218.160.0.0/12 1; +218.184.0.0/16 1; +218.187.0.0/16 1; +218.210.0.0/15 1; +218.246.128.0/24 1; +218.246.135.0/24 1; +218.246.136.0/23 1; +218.246.138.0/24 1; +219.68.0.0/14 1; +219.80.0.0/15 1; +219.84.0.0/14 1; +219.90.0.0/18 1; +219.91.0.0/17 1; +219.158.39.178/31 1; +219.158.41.138/31 1; +220.128.0.0/19 1; +220.128.32.0/20 1; +220.128.48.0/23 1; +220.128.50.0/24 1; +220.128.52.0/23 1; +220.128.54.0/24 1; +220.128.56.0/21 1; +220.128.64.0/18 1; +220.128.128.0/17 1; +220.129.0.0/16 1; +220.130.0.0/15 1; +220.132.0.0/14 1; +220.136.0.0/13 1; +220.157.112.0/20 1; +220.158.228.0/22 1; +220.228.0.0/15 1; +220.243.206.0/24 1; +220.243.240.0/24 1; +221.120.0.0/18 1; +221.120.64.0/19 1; +221.169.0.0/16 1; +222.156.0.0/15 1; +222.250.0.0/16 1; +222.251.0.0/17 1; +223.22.0.0/15 1; +223.26.0.0/20 1; +223.26.64.0/18 1; +223.27.32.0/19 1; +223.136.0.0/13 1; +223.165.0.0/20 1; +223.200.0.0/16 1; +2001:288::/32 1; +2001:470:402c::/48 1; +2001:470:5091::/48 1; +2001:470:5092::/47 1; +2001:470:7173::/48 1; +2001:470:84df::/48 1; +2001:470:84e0::/47 1; +2001:470:b14b:fb00::/56 1; +2001:470:b14b:fc00::/54 1; +2001:470:b14c::/46 1; +2001:470:b150::/44 1; +2001:470:b160::/44 1; +2001:470:b170::/45 1; +2001:470:b178::/46 1; +2001:470:b17c::/47 1; +2001:470:b17e::/48 1; +2001:470:ecd2::/47 1; +2001:470:ecd4::/47 1; +2001:470:edb4::/48 1; +2001:470:ee10::/46 1; +2001:470:f02c::/48 1; +2001:470:f9a6::/47 1; +2001:470:f9a8::/46 1; +2001:470:f9ac::/47 1; +2001:470:f9ae::/48 1; +2001:470:fc10::/44 1; +2001:470:fc20::/43 1; +2001:470:fc40::/43 1; +2001:470:fc60::/45 1; +2001:470:fc68::/46 1; +2001:470:fc6c::/48 1; +2001:470:fc6e::/47 1; +2001:470:fc70::/48 1; +2001:470:fd29::/48 1; +2001:470:fd2a::/47 1; +2001:470:fd2c::/46 1; +2001:470:fd30::/44 1; +2001:470:fd40::/43 1; +2001:470:fd60::/44 1; +2001:470:fd70::/47 1; +2001:470:fd74::/47 1; +2001:678:fb8::/48 1; +2001:67c:aa0::/48 1; +2001:67c:2800::/48 1; +2001:67c:2be8::/48 1; +2001:7fa:1::/48 1; +2001:c08::/32 1; +2001:c50::/32 1; +2001:c58::/32 1; +2001:ca0::/32 1; +2001:cd8::/32 1; +2001:d40::/32 1; +2001:d48::/32 1; +2001:d58::/32 1; +2001:d80:1380:100::/56 1; +2001:d80:1380:200::/55 1; +2001:d80:1380:400::/64 1; +2001:dc1::/32 1; +2001:de4::/40 1; +2001:df0:d9::/48 1; +2001:df0:4e00::/48 1; +2001:df2:5480::/48 1; +2001:df2:7580::/48 1; +2001:df3:6e00::/48 1; +2001:df4:8a00::/48 1; +2001:df4:9d00::/48 1; +2001:df6:3f80::/48 1; +2001:df6:4780::/48 1; +2001:e10::/32 1; +2001:ed8::/32 1; +2001:f10::/32 1; +2001:f18::/32 1; +2001:4420::/32 1; +2001:44f0::/32 1; +2001:4500::/32 1; +2001:4508::/32 1; +2001:4540::/27 1; +2001:4580::/26 1; +2001:4860:7:410::/64 1; +2001:4860:7:500::/64 1; +2001:4860:7:510::/64 1; +2001:b000::/21 1; +2400:1300::/32 1; +2400:1500::/32 1; +2400:1be0::/32 1; +2400:1ce0::/32 1; +2400:1e20::/32 1; +2400:30a0::/32 1; +2400:37a0::/32 1; +2400:4460::/32 1; +2400:4500::/32 1; +2400:4d20::/32 1; +2400:4e80::/32 1; +2400:5060::/32 1; +2400:50a0::/32 1; +2400:50e0::/32 1; +2400:54a0:2040::/44 1; +2400:5ea0::/32 1; +2400:61a0::/32 1; +2400:6280::/32 1; +2400:62e0::/32 1; +2400:63e0::/32 1; +2400:6500:0:7e00::/56 1; +2400:6960::/32 1; +2400:7000::/32 1; +2400:70e0::/31 1; +2400:71a0::/32 1; +2400:7420::/32 1; +2400:8260::/32 1; +2400:8560::/32 1; +2400:85a0::/32 1; +2400:8800:e015::/48 1; +2400:8800:e016::/47 1; +2400:8800:e018::/45 1; +2400:8800:e020::/43 1; +2400:8800:e040::/42 1; +2400:8800:e080::/41 1; +2400:8800:e100::/40 1; +2400:8800:e200::/39 1; +2400:8800:e400::/38 1; +2400:8800:e800::/37 1; +2400:91e0::/32 1; +2400:9360::/32 1; +2400:93a0::/32 1; +2400:aa80::/32 1; +2400:ad20::/32 1; +2400:b0a0::/32 1; +2400:b380::/32 1; +2400:b480::/32 1; +2400:ba20::/32 1; +2400:ba60::/32 1; +2400:bb20::/32 1; +2400:bea0::/32 1; +2400:bfa0::/32 1; +2400:c220::/32 1; +2400:c9a0::/32 1; +2400:c9e0::/32 1; +2400:cb00:80::/48 1; +2400:cb00:560::/48 1; +2400:cb00:574::/48 1; +2400:cb00:584::/48 1; +2400:cb00:685::/48 1; +2400:cb00:686::/48 1; +2400:d4a0::/32 1; +2400:d580::/32 1; +2400:df40::/32 1; +2400:e480::/32 1; +2400:ebe0::/32 1; +2400:f420::/32 1; +2400:f520::/32 1; +2400:fc80::/32 1; +2400:fe60::/32 1; +2400:fee0::/32 1; +2401:a60::/32 1; +2401:b60:1e00::/40 1; +2401:16a0::/32 1; +2401:1780::/32 1; +2401:1ae0::/32 1; +2401:2760::/32 1; +2401:2920::/32 1; +2401:3b60::/32 1; +2401:3ba0::/32 1; +2401:3f40::/32 1; +2401:4860::/32 1; +2401:4ca0::/32 1; +2401:4e60::/32 1; +2401:5220::/32 1; +2401:55a0::/32 1; +2401:55e0::/32 1; +2401:5860::/32 1; +2401:5da0::/32 1; +2401:5e00::/32 1; +2401:5f20::/32 1; +2401:7080::/32 1; +2401:7a60::/32 1; +2401:7ba0::/32 1; +2401:8000::/26 1; +2401:81a0::/32 1; +2401:83a0::/32 1; +2401:83e0::/32 1; +2401:8420::/32 1; +2401:85c0::/32 1; +2401:88a0::/32 1; +2401:8c20::/32 1; +2401:95c0::/32 1; +2401:97e0::/32 1; +2401:9e60::/32 1; +2401:a040::/32 1; +2401:ab00::/32 1; +2401:af20::/32 1; +2401:b4a0::/32 1; +2401:b9a0::/32 1; +2401:ba60::/32 1; +2401:bf60::/32 1; +2401:c520::/32 1; +2401:c620::/32 1; +2401:caa0::/32 1; +2401:cae0::/32 1; +2401:cd20::/32 1; +2401:cd60::/32 1; +2401:d620::/32 1; +2401:dae0::/32 1; +2401:e180::/32 1; +2401:e3e0::/32 1; +2401:e760::/32 1; +2401:e7a0::/32 1; +2401:e8a0::/32 1; +2401:eea0::/32 1; +2401:f120::/32 1; +2401:f540::/32 1; +2401:fa00:1::/48 1; +2401:fa00:2::/48 1; +2401:fa00:f::/48 1; +2401:fa00:23::/48 1; +2401:fa00:3b::/48 1; +2401:fa00:81::/48 1; +2401:fa00:82::/48 1; +2401:fa00:95::/48 1; +2401:fa00:f0::/47 1; +2401:fa00:fc::/47 1; +2401:fa00:400:ae00::/55 1; +2401:fa00:400:dc00::/54 1; +2401:fa00:400:e000::/53 1; +2401:fa00:480:e00::/55 1; +2401:fa00:480:9000::/54 1; +2401:fa00:480:9400::/55 1; +2401:fa00:480:9a00::/55 1; +2401:fa00:480:b000::/55 1; +2401:fa00:480:c000::/55 1; +2401:fa00:481:4400::/55 1; +2401:fa00:49c:500::/56 1; +2401:fa00:49c:800::/55 1; +2401:fa00:49c:a00::/56 1; +2401:fa00:49c:1300::/56 1; +2401:fa00:49c:1400::/56 1; +2401:fa00:49c:1600::/55 1; +2401:fa00:49c:1800::/53 1; +2401:fa00:49c:2000::/51 1; +2401:fa00:49c:4000::/50 1; +2401:fa00:49c:8000::/49 1; +2401:fa00:49d::/48 1; +2401:fa00:49e::/48 1; +2401:fa00:49f::/49 1; +2401:fa00:49f:8000::/50 1; +2401:fa00:49f:c000::/51 1; +2401:fa00:49f:e000::/52 1; +2401:fa00:49f:f000::/53 1; +2401:fa00:49f:f800::/54 1; +2401:fa00:49f:fc00::/55 1; +2401:fa00:49f:fe00::/56 1; +2401:fa00:ffe1:400::/56 1; +2401:fa20::/32 1; +2401:fae0::/32 1; +2402:4a0::/32 1; +2402:2080::/32 1; +2402:20c0:1::/48 1; +2402:2580::/32 1; +2402:4900::/32 1; +2402:7500::/32 1; +2402:9500:8000::/48 1; +2402:9c00::/32 1; +2402:b600::/32 1; +2403:bc0::/32 1; +2403:11c0::/32 1; +2403:2640::/32 1; +2403:5200::/32 1; +2403:7f40::/32 1; +2403:80c0::/32 1; +2403:8140::/32 1; +2403:82c0::/32 1; +2403:8340::/32 1; +2403:84c0::/32 1; +2403:8640::/32 1; +2403:8bc0::/32 1; +2403:8ec0::/32 1; +2403:8f40::/32 1; +2403:93c0::/32 1; +2403:95c0::/32 1; +2403:96c0::/32 1; +2403:9740::/32 1; +2403:9f00::/32 1; +2403:a240::/32 1; +2403:a2c0::/32 1; +2403:a340::/32 1; +2403:a3c0::/32 1; +2403:a740::/32 1; +2403:a7c0::/32 1; +2403:ad40::/32 1; +2403:b340::/32 1; +2403:b640::/32 1; +2403:b7c0::/32 1; +2403:b940::/32 1; +2403:b9c0::/32 1; +2403:c1c0::/32 1; +2403:c240::/32 1; +2403:c300::/32 1; +2403:c940::/32 1; +2403:c9c0::/32 1; +2403:ce40::/32 1; +2403:cfc0:1004::/46 1; +2403:cfc0:1008::/45 1; +2403:cfc0:1010::/44 1; +2403:cfc0:1020::/43 1; +2403:cfc0:1040::/42 1; +2403:cfc0:1080::/41 1; +2403:cfc0:1100::/44 1; +2403:d340::/32 1; +2403:d5c0::/32 1; +2403:e940::/32 1; +2403:edc0::/32 1; +2403:ee00::/32 1; +2403:f3c0::/32 1; +2403:fb40::/32 1; +2404::/26 1; +2404:80::/28 1; +2404:e9::/32 1; +2404:840::/32 1; +2404:e40::/32 1; +2404:f40::/32 1; +2404:15c0::/32 1; +2404:22c0::/32 1; +2404:2840::/32 1; +2404:28c0::/32 1; +2404:29c0::/32 1; +2404:6200::/32 1; +2404:62c0::/32 1; +2404:63c0::/32 1; +2404:6800:4008::/48 1; +2404:73c0::/32 1; +2404:7d40::/32 1; +2404:8cc0::/32 1; +2404:9cc0::/32 1; +2404:9e40::/32 1; +2404:a3c0::/32 1; +2404:c740::/32 1; +2404:c7c0::/32 1; +2404:d2c0::/32 1; +2404:db00::/32 1; +2404:f2c0::/32 1; +2405:740::/32 1; +2405:a00::/32 1; +2405:1740::/32 1; +2405:2000:c00::/40 1; +2405:2000:2400::/40 1; +2405:3300::/32 1; +2405:3ec0::/32 1; +2405:4500::/32 1; +2405:4840::/32 1; +2405:4d00::/32 1; +2405:5600::/32 1; +2405:6100::/32 1; +2405:63c0::/32 1; +2405:6440::/32 1; +2405:67c0::/32 1; +2405:7640::/32 1; +2405:7e00::/32 1; +2405:8700::/32 1; +2405:9200::/32 1; +2405:9b40::/32 1; +2405:a040::/32 1; +2405:a0c0::/32 1; +2405:a640::/32 1; +2405:b8c0::/32 1; +2405:c600::/32 1; +2405:ccc0::/32 1; +2405:cdc0::/32 1; +2405:d140::/32 1; +2405:d1c0:3000::/36 1; +2405:e4c0::/32 1; +2405:e540::/32 1; +2405:fbc0::/32 1; +2406:300::/32 1; +2406:840:840::/43 1; +2406:840:9160::/43 1; +2406:840:9180::/41 1; +2406:840:9200::/48 1; +2406:840:9964::/48 1; +2406:840:fa01::/48 1; +2406:1740::/32 1; +2406:2000::/33 1; +2406:2000:8000::/34 1; +2406:2000:c000::/35 1; +2406:2000:e000::/37 1; +2406:2000:e800::/38 1; +2406:2000:ec00::/39 1; +2406:2000:ee00::/40 1; +2406:2000:ef00::/42 1; +2406:2000:ef40::/43 1; +2406:2000:ef60::/46 1; +2406:2000:ef66::/47 1; +2406:2000:ef68::/48 1; +2406:2000:ef6a::/47 1; +2406:2000:ef6c::/46 1; +2406:2000:ef70::/44 1; +2406:2000:ef80::/43 1; +2406:2000:efa0::/46 1; +2406:2000:efa4::/47 1; +2406:2000:efbc:7800::/53 1; +2406:2000:efbc:8000::/49 1; +2406:2000:efbd::/48 1; +2406:2000:efbe::/47 1; +2406:2000:efc0::/42 1; +2406:2000:f000::/36 1; +2406:2f40::/32 1; +2406:2fc0::/32 1; +2406:3040::/32 1; +2406:3540::/32 1; +2406:3a40::/32 1; +2406:48c0::/32 1; +2406:4ac0::/32 1; +2406:77c0::/32 1; +2406:86c0::/32 1; +2406:8dc0::/32 1; +2406:9040::/32 1; +2406:9580::/32 1; +2406:9bc0::/32 1; +2406:b4c0::/32 1; +2406:bfc0::/32 1; +2406:c140:886::/48 1; +2406:c3c0::/32 1; +2406:ce40::/32 1; +2406:d040::/32 1; +2406:d0c0::/32 1; +2406:d400::/32 1; +2406:d7c0::/32 1; +2406:da00:c800::/40 1; +2406:da1c:8000::/34 1; +2406:da2c:8000::/34 1; +2406:da30:c800::/40 1; +2406:da32:c800::/40 1; +2406:da33:c800::/40 1; +2406:da36:c800::/40 1; +2406:da38:c800::/40 1; +2406:da60:c800::/40 1; +2406:da61:c800::/40 1; +2406:da70:c800::/40 1; +2406:daa0:c800::/40 1; +2406:dab8:c800::/40 1; +2406:dab9:c800::/40 1; +2406:daba:c800::/40 1; +2406:dabb:c800::/40 1; +2406:dae8:c800::/40 1; +2406:dae9:c800::/40 1; +2406:daea:c800::/40 1; +2406:daeb:c800::/40 1; +2406:daee:c800::/40 1; +2406:daef:c800::/40 1; +2406:daf0:c800::/40 1; +2406:daf1:c800::/40 1; +2406:daf2:c800::/40 1; +2406:daf3:c800::/40 1; +2406:daf4:c800::/40 1; +2406:daf5:c800::/40 1; +2406:daf6:c800::/40 1; +2406:daf9:c800::/40 1; +2406:dafc:c800::/40 1; +2406:dafe:c800::/40 1; +2406:daff:c800::/40 1; +2406:db40::/32 1; +2406:e5c0::/32 1; +2406:ee40::/32 1; +2406:f1c0::/32 1; +2406:f2c0::/32 1; +2406:f340::/32 1; +2406:f540::/32 1; +2406:f5c0::/32 1; +2406:fcc0::/32 1; +2406:fdc0::/32 1; +2407:680::/32 1; +2407:1440::/32 1; +2407:3d00::/32 1; +2407:4700::/32 1; +2407:4900::/32 1; +2407:4b00::/32 1; +2407:4d00::/32 1; +2407:51c0::/32 1; +2407:62c0::/32 1; +2407:7100::/32 1; +2407:9240::/35 1; +2407:9240:2000::/36 1; +2407:9240:3000::/39 1; +2407:9240:3300::/40 1; +2407:9240:3400::/38 1; +2407:9240:3800::/37 1; +2407:9240:4000::/34 1; +2407:9240:8000::/33 1; +2407:92c0::/32 1; +2407:9a40::/32 1; +2407:9fc0::/32 1; +2407:a0c0::/32 1; +2407:a740::/32 1; +2407:ab40::/32 1; +2407:d240::/26 1; +2407:d280::/26 1; +2407:d2c0::/32 1; +2407:e4c0::/32 1; +2600:1417:18::/48 1; +2600:1417:1b::/48 1; +2600:1417:76::/48 1; +2600:1417:1800::/37 1; +2600:1417:e800::/37 1; +2600:1417:f000::/37 1; +2600:1900:0:3800::/56 1; +2600:1900:4030::/44 1; +2600:1902:20::/44 1; +2600:1f20:c000::/34 1; +2600:f0f0:6125::/48 1; +2600:f0f0:c125::/48 1; +2600:f0f2:7025::/48 1; +2602:234::/30 1; +2602:238::/29 1; +2602:f7a7::/34 1; +2602:f825::/34 1; +2602:f836::/34 1; +2602:f9f6::/34 1; +2602:faad::/40 1; +2602:fb26:817::/48 1; +2602:fb26:a07::/48 1; +2602:fc1d:101::/48 1; +2602:fc1d:102::/47 1; +2602:fc1d:104::/46 1; +2602:fc1d:108::/45 1; +2602:fc1d:110::/44 1; +2602:fc1d:120::/43 1; +2602:fc1d:140::/42 1; +2602:fc1d:180::/41 1; +2602:fc1d:200::/48 1; +2602:feda:b88::/47 1; +2602:feda:c10::/44 1; +2602:feda:c70::/44 1; +2602:feda:c90::/44 1; +2602:feda:cb0::/44 1; +2602:feda:d90::/44 1; +2602:feda:da0::/43 1; +2602:feda:dc0::/44 1; +2603:1040:1200::/39 1; +2603:1046:c00:2e::/63 1; +2603:1046:c00:30::/60 1; +2603:1046:c00:40::/58 1; +2603:1046:c00:80::/57 1; +2603:1046:c00:100::/56 1; +2603:1046:c00:200::/55 1; +2603:1046:c00:400::/54 1; +2603:1046:c00:800::/53 1; +2603:1046:c00:1000::/52 1; +2603:1046:c00:2000::/51 1; +2603:1046:c00:4000::/50 1; +2603:1046:c00:8000::/50 1; +2603:1046:c10::/47 1; +2603:1046:2000:c0::/59 1; +2603:1047:1:c0::/59 1; +2603:1047:1:200::/55 1; +2603:1047:1:400::/54 1; +2603:1047:1:800::/53 1; +2603:1047:1:1000::/52 1; +2603:1047:1:2000::/51 1; +2603:1047:1:4000::/50 1; +2603:1047:1:8000::/49 1; +2603:1047:2::/47 1; +2603:1047:4::/46 1; +2603:1047:8::/45 1; +2603:1047:10::/44 1; +2603:1047:20::/43 1; +2603:1047:40::/42 1; +2603:1047:80::/41 1; +2603:1049:d00::/40 1; +2603:1049:1400::/38 1; +2603:1049:1800::/37 1; +2603:1049:2000::/35 1; +2603:1061:1300:3400::/54 1; +2603:1061:1300:3800::/54 1; +2603:1061:1310:3400::/54 1; +2603:1061:1310:3800::/54 1; +2603:1061:13f0:3400::/54 1; +2603:1061:13f0:3800::/54 1; +2603:1062:0:a0::/62 1; +2603:1063:2202:4c::/62 1; +2603:1063:2202:58::/61 1; +2603:1063:2202:60::/59 1; +2603:1063:2202:80::/57 1; +2603:1063:2202:100::/56 1; +2603:1063:2202:200::/55 1; +2603:1063:2202:400::/54 1; +2603:1063:2202:800::/53 1; +2603:1063:2202:1000::/52 1; +2603:1063:2202:2000::/51 1; +2603:1063:2202:4000::/50 1; +2603:1063:2202:8000::/49 1; +2603:1063:2203::/48 1; +2605:8380:1f00::/40 1; +2606:40:1b30::/45 1; +2606:40:1bb0::/44 1; +2606:40:1bc0::/42 1; +2606:40:1c00::/38 1; +2606:40:2000::/35 1; +2606:40:4000::/34 1; +2606:c00::/32 1; +2606:1540:3800::/38 1; +2606:54c0:57e8::/45 1; +2606:54c0:57f0::/44 1; +2606:54c0:5800::/43 1; +2606:54c0:d480::/45 1; +2606:54c3:0:b2::/64 1; +2606:54c3:0:ff::/64 1; +2606:54c3:0:7bb::/64 1; +2606:54c3:0:13e0::/64 1; +2606:54c3:0:1497::/64 1; +2606:54c3:0:159a::/64 1; +2606:54c3:0:1a18::/64 1; +2606:f4c0:2720::/43 1; +2607:740:42::/48 1; +2610:a1:305c::17/128 1; +2610:a1:305c::18/125 1; +2610:a1:305c::20/123 1; +2610:a1:305c::40/122 1; +2610:a1:305c::80/121 1; +2610:a1:305c::100/120 1; +2610:a1:305c::200/119 1; +2610:a1:305c::400/118 1; +2610:a1:305c::800/117 1; +2610:a1:305c::1000/116 1; +2610:a1:305c::2000/115 1; +2610:a1:305c::4000/114 1; +2610:a1:305c::8000/113 1; +2610:a1:305c::1:0/112 1; +2610:a1:305c::2:0/111 1; +2610:a1:305c::4:0/110 1; +2610:a1:305c::8:0/109 1; +2610:a1:305c::10:0/108 1; +2610:a1:305c::20:0/107 1; +2610:a1:305c::40:0/106 1; +2610:a1:305c::80:0/105 1; +2610:a1:305c::100:0/104 1; +2610:a1:305c::200:0/103 1; +2610:a1:305c::400:0/102 1; +2610:a1:305c::800:0/101 1; +2610:a1:305c::1000:0/100 1; +2610:a1:305c::2000:0/99 1; +2610:a1:305c::4000:0/98 1; +2610:a1:305c::8000:0/97 1; +2610:a1:305c::1:0:0/96 1; +2610:a1:305c::2:0:0/95 1; +2610:a1:305c::4:0:0/94 1; +2610:a1:305c::8:0:0/93 1; +2610:a1:305c::10:0:0/92 1; +2610:a1:305c::20:0:0/91 1; +2610:a1:305c::40:0:0/90 1; +2610:a1:305c::80:0:0/89 1; +2610:a1:305c::100:0:0/88 1; +2610:a1:305c::200:0:0/87 1; +2610:a1:305c::400:0:0/86 1; +2610:a1:305c::800:0:0/85 1; +2610:a1:305c::1000:0:0/84 1; +2610:a1:305c::2000:0:0/83 1; +2610:a1:305c::4000:0:0/82 1; +2610:a1:305c::8000:0:0/81 1; +2610:a1:305c:0:1::/80 1; +2610:a1:305c:0:2::/79 1; +2610:a1:305c:0:4::/78 1; +2610:a1:305c:0:8::/77 1; +2610:a1:305c:0:10::/76 1; +2610:a1:305c:0:20::/75 1; +2610:a1:305c:0:40::/74 1; +2610:a1:305c:0:80::/73 1; +2610:a1:305c:0:100::/72 1; +2610:a1:305c:0:200::/71 1; +2610:a1:305c:0:400::/70 1; +2610:a1:305c:0:800::/69 1; +2610:a1:305c:0:1000::/68 1; +2610:a1:305c:0:2000::/67 1; +2610:a1:305c:0:4000::/66 1; +2610:a1:305c:0:8000::/65 1; +2610:a1:305c:1::/64 1; +2610:a1:305c:2::/63 1; +2610:a1:305c:4::/62 1; +2610:a1:305c:8::/61 1; +2610:a1:305c:10::/60 1; +2610:a1:305c:20::/59 1; +2610:a1:305c:40::/58 1; +2610:a1:305c:80::/57 1; +2610:a1:305c:100::/56 1; +2610:a1:305c:200::/55 1; +2610:a1:305c:400::/54 1; +2610:a1:305c:800::/53 1; +2610:a1:305c:1000::/52 1; +2610:a1:305c:2000::/51 1; +2610:a1:305c:4000::/50 1; +2610:a1:305c:8000::/49 1; +2610:a1:305d::/48 1; +2610:a1:305e::/47 1; +2610:a1:3060::/46 1; +2620:0:10cc::/48 1; +2a00:11c0:12::/48 1; +2a00:11c0:35::/48 1; +2a00:79e0:ffe0:800::/56 1; +2a00:79e0:ffe2:1d00::/56 1; +2a00:79e0:ffe2:2000::/56 1; +2a00:79e0:ffe2:3b00::/56 1; +2a00:79e0:ffe2:4000::/55 1; +2a00:79e0:ffe2:4300::/56 1; +2a00:79e0:ffe2:4f00::/56 1; +2a00:79e0:ffe3:2100::/56 1; +2a00:79e0:ffe3:a500::/56 1; +2a00:79e0:ffe3:f800::/56 1; +2a00:79e0:ffe4:100::/56 1; +2a00:79e0:ffe4:700::/56 1; +2a00:79e1:abc:6200::/56 1; +2a00:79e1:abc:6f00::/56 1; +2a00:79e1:abc:7000::/56 1; +2a00:79e1:abd:4200::/56 1; +2a00:79e1:f001:2c00::/54 1; +2a00:79e1:f001:3600::/56 1; +2a00:79e1:f002:1200::/56 1; +2a00:79e1:f002:1d00::/56 1; +2a01:111:f402:f12d::/64 1; +2a01:111:f402:f12f::/64 1; +2a01:111:f402:f130::/64 1; +2a01:111:f403:c402::/63 1; +2a01:111:f403:c404::/62 1; +2a01:111:f403:c408::/61 1; +2a01:111:f403:c410::/60 1; +2a01:111:f403:c420::/59 1; +2a01:111:f403:c440::/58 1; +2a01:111:f403:c480::/57 1; +2a01:111:f403:c500::/56 1; +2a01:111:f403:c600::/55 1; +2a01:111:f403:cc0a::/63 1; +2a01:111:f403:cc0c::/62 1; +2a01:111:f403:cc10::/60 1; +2a01:111:f403:cc20::/59 1; +2a01:111:f403:cc40::/58 1; +2a01:111:f403:cc80::/57 1; +2a01:111:f403:cd00::/56 1; +2a01:111:f403:ce00::/55 1; +2a01:111:f403:d403::/64 1; +2a01:111:f403:d404::/62 1; +2a01:111:f403:d408::/61 1; +2a01:111:f403:d410::/60 1; +2a01:111:f403:d420::/59 1; +2a01:111:f403:d440::/58 1; +2a01:111:f403:d480::/57 1; +2a01:111:f403:d500::/56 1; +2a01:111:f403:d600::/55 1; +2a01:111:f403:dc02::/63 1; +2a01:111:f403:dc04::/62 1; +2a01:111:f403:dc08::/61 1; +2a01:111:f403:dc10::/60 1; +2a01:111:f403:dc20::/59 1; +2a01:111:f403:dc40::/58 1; +2a01:111:f403:dc80::/57 1; +2a01:111:f403:dd00::/56 1; +2a01:111:f403:de00::/55 1; +2a01:111:f403:e402::/63 1; +2a01:111:f403:e404::/62 1; +2a01:111:f403:e408::/61 1; +2a01:111:f403:e410::/60 1; +2a01:111:f403:e420::/59 1; +2a01:111:f403:e440::/58 1; +2a01:111:f403:e480::/57 1; +2a01:111:f403:e500::/56 1; +2a01:111:f403:e600::/55 1; +2a01:111:f403:e800::/53 1; +2a01:53c0:fff8::/48 1; +2a01:ce9e:1000::/36 1; +2a01:f4c0::/29 1; +2a02:26f7:18::/48 1; +2a02:26f7:132::/48 1; +2a02:26f7:b604:4001::/64 1; +2a02:26f7:b604:4002::/63 1; +2a02:26f7:b604:4004::/62 1; +2a02:26f7:b604:4008::/61 1; +2a02:26f7:b604:4010::/60 1; +2a02:26f7:b604:4020::/59 1; +2a02:26f7:b604:4040::/58 1; +2a02:26f7:b604:4080::/57 1; +2a02:26f7:b604:4100::/56 1; +2a02:26f7:b604:4200::/55 1; +2a02:26f7:b604:4400::/54 1; +2a02:26f7:b604:4800::/53 1; +2a02:26f7:b604:5000::/52 1; +2a02:26f7:b604:6000::/51 1; +2a02:26f7:b604:8000::/50 1; +2a02:26f7:b604:c000::/52 1; +2a02:26f7:b604:d000::/53 1; +2a02:26f7:b604:d800::/55 1; +2a02:26f7:b604:da00::/56 1; +2a02:26f7:b604:db02::/64 1; +2a02:26f7:b604:db0a::/64 1; +2a02:26f7:b604:db0c::/64 1; +2a02:26f7:b604:db12::/63 1; +2a02:26f7:b604:db16::/63 1; +2a02:26f7:b604:db1a::/64 1; +2a02:26f7:b604:db1c::/62 1; +2a02:26f7:b604:db21::/64 1; +2a02:26f7:b604:db22::/64 1; +2a02:26f7:b604:db24::/64 1; +2a02:26f7:b604:db29::/64 1; +2a02:26f7:b604:db2c::/64 1; +2a02:26f7:b604:db2e::/64 1; +2a02:26f7:b604:db30::/64 1; +2a02:26f7:b604:db33::/64 1; +2a02:26f7:b604:db34::/63 1; +2a02:26f7:b604:db38::/62 1; +2a02:26f7:b604:db3f::/64 1; +2a02:26f7:b604:db41::/64 1; +2a02:26f7:b604:db42::/63 1; +2a02:26f7:b604:db45::/64 1; +2a02:26f7:b604:db46::/64 1; +2a02:26f7:b604:db48::/64 1; +2a02:26f7:b604:db4a::/63 1; +2a02:26f7:b604:db4c::/64 1; +2a02:26f7:b604:db51::/64 1; +2a02:26f7:b604:db55::/64 1; +2a02:26f7:b604:db56::/64 1; +2a02:26f7:b604:db5b::/64 1; +2a02:26f7:b604:db5c::/64 1; +2a02:26f7:b604:db60::/59 1; +2a02:26f7:b604:db80::/57 1; +2a02:26f7:b604:dc00::/54 1; +2a02:26f7:b604:e000::/51 1; +2a02:26f7:b605::/50 1; +2a02:26f7:b780:4000::/64 1; +2a02:26f7:b780:4dc0::/60 1; +2a02:26f7:b781:4000::/50 1; +2a02:26f7:b781:8000::/49 1; +2a02:26f7:b782::/47 1; +2a02:26f7:b784::/47 1; +2a02:26f7:b786::/48 1; +2a02:26f7:b787::/50 1; +2a02:26f7:b787:4000::/64 1; +2a02:26f7:b788::/50 1; +2a02:26f7:b788:4000::/64 1; +2a02:26f7:b788:4dc0::/60 1; +2a02:26f7:b789:4000::/50 1; +2a02:26f7:b789:8000::/49 1; +2a02:26f7:b78a::/47 1; +2a02:26f7:b78c::/46 1; +2a02:26f7:b790::/48 1; +2a02:26f7:b791::/50 1; +2a02:26f7:b791:4000::/64 1; +2a02:26f7:b7c4:4001::/64 1; +2a02:26f7:b7c4:4002::/63 1; +2a02:26f7:b7c4:4004::/62 1; +2a02:26f7:b7c4:4008::/61 1; +2a02:26f7:b7c4:4010::/60 1; +2a02:26f7:b7c4:4020::/59 1; +2a02:26f7:b7c4:4040::/58 1; +2a02:26f7:b7c4:4080::/57 1; +2a02:26f7:b7c4:4100::/56 1; +2a02:26f7:b7c4:4200::/55 1; +2a02:26f7:b7c4:4400::/54 1; +2a02:26f7:b7c4:4800::/53 1; +2a02:26f7:b7c4:5000::/52 1; +2a02:26f7:b7c4:6000::/51 1; +2a02:26f7:b7c4:8000::/50 1; +2a02:26f7:b7c4:c000::/52 1; +2a02:26f7:b7c4:d000::/55 1; +2a02:26f7:b7c4:d200::/58 1; +2a02:26f7:b7c4:d240::/59 1; +2a02:26f7:b7c4:d264::/64 1; +2a02:26f7:b7c4:d26c::/62 1; +2a02:26f7:b7c4:d270::/60 1; +2a02:26f7:b7c4:d280::/57 1; +2a02:26f7:b7c4:d300::/56 1; +2a02:26f7:b7c4:d400::/54 1; +2a02:26f7:b7c4:d800::/53 1; +2a02:26f7:b7c4:e000::/51 1; +2a02:26f7:b7c5::/50 1; +2a02:26f7:b8c4:4001::/64 1; +2a02:26f7:b8c4:4002::/63 1; +2a02:26f7:b8c4:4004::/62 1; +2a02:26f7:b8c4:4008::/61 1; +2a02:26f7:b8c4:4010::/60 1; +2a02:26f7:b8c4:4020::/59 1; +2a02:26f7:b8c4:4040::/58 1; +2a02:26f7:b8c4:4080::/57 1; +2a02:26f7:b8c4:4100::/56 1; +2a02:26f7:b8c4:4200::/55 1; +2a02:26f7:b8c4:4400::/54 1; +2a02:26f7:b8c4:4800::/53 1; +2a02:26f7:b8c4:5000::/52 1; +2a02:26f7:b8c4:6000::/51 1; +2a02:26f7:b8c4:8000::/50 1; +2a02:26f7:b8c4:c000::/53 1; +2a02:26f7:b8c4:c800::/55 1; +2a02:26f7:b8c4:ca00::/56 1; +2a02:26f7:b8c4:cb00::/57 1; +2a02:26f7:b8c4:cb80::/58 1; +2a02:26f7:b8c4:cbc0::/59 1; +2a02:26f7:b8c4:cbe2::/63 1; +2a02:26f7:b8c4:cbe4::/62 1; +2a02:26f7:b8c4:cbe8::/61 1; +2a02:26f7:b8c4:cbf0::/60 1; +2a02:26f7:b8c4:cc00::/54 1; +2a02:26f7:b8c4:d000::/52 1; +2a02:26f7:b8c4:e000::/51 1; +2a02:26f7:b8c5::/50 1; +2a02:26f7:b9c8:4001::/64 1; +2a02:26f7:b9c8:4002::/63 1; +2a02:26f7:b9c8:4004::/62 1; +2a02:26f7:b9c8:4008::/61 1; +2a02:26f7:b9c8:4010::/60 1; +2a02:26f7:b9c8:4020::/59 1; +2a02:26f7:b9c8:4040::/58 1; +2a02:26f7:b9c8:4080::/57 1; +2a02:26f7:b9c8:4100::/56 1; +2a02:26f7:b9c8:4200::/55 1; +2a02:26f7:b9c8:4400::/56 1; +2a02:26f7:b9c8:4500::/57 1; +2a02:26f7:b9c8:4580::/58 1; +2a02:26f7:b9c8:45c3::/64 1; +2a02:26f7:b9c8:45c4::/62 1; +2a02:26f7:b9c8:45c8::/61 1; +2a02:26f7:b9c8:45d0::/60 1; +2a02:26f7:b9c8:45e0::/59 1; +2a02:26f7:b9c8:4600::/55 1; +2a02:26f7:b9c8:4800::/53 1; +2a02:26f7:b9c8:5000::/52 1; +2a02:26f7:b9c8:6000::/51 1; +2a02:26f7:b9c8:8000::/49 1; +2a02:26f7:b9c9::/50 1; +2a02:26f7:ba04::/48 1; +2a02:26f7:ba05::/50 1; +2a02:26f7:c3d0:4001::/64 1; +2a02:26f7:c3d0:4002::/63 1; +2a02:26f7:c3d0:4004::/62 1; +2a02:26f7:c3d0:4008::/61 1; +2a02:26f7:c3d0:4010::/60 1; +2a02:26f7:c3d0:4020::/59 1; +2a02:26f7:c3d0:4040::/58 1; +2a02:26f7:c3d0:4080::/57 1; +2a02:26f7:c3d0:4100::/56 1; +2a02:26f7:c3d0:4200::/55 1; +2a02:26f7:c3d0:4400::/54 1; +2a02:26f7:c3d0:4800::/53 1; +2a02:26f7:c3d0:5033::/64 1; +2a02:26f7:c3d0:5034::/62 1; +2a02:26f7:c3d0:5038::/61 1; +2a02:26f7:c3d0:5040::/58 1; +2a02:26f7:c3d0:5080::/57 1; +2a02:26f7:c3d0:5100::/56 1; +2a02:26f7:c3d0:5200::/55 1; +2a02:26f7:c3d0:5400::/54 1; +2a02:26f7:c3d0:5800::/53 1; +2a02:26f7:c3d0:6000::/51 1; +2a02:26f7:c3d0:8000::/49 1; +2a02:26f7:c3d1::/50 1; +2a02:26f7:c40c::/50 1; +2a02:26f7:c40c:4001::/64 1; +2a02:26f7:c40c:4002::/63 1; +2a02:26f7:c40c:4004::/62 1; +2a02:26f7:c40c:4008::/61 1; +2a02:26f7:c40c:4010::/60 1; +2a02:26f7:c40c:4020::/59 1; +2a02:26f7:c40c:4040::/58 1; +2a02:26f7:c40c:4080::/57 1; +2a02:26f7:c40c:4100::/56 1; +2a02:26f7:c40c:4200::/55 1; +2a02:26f7:c40c:4400::/54 1; +2a02:26f7:c40c:4800::/53 1; +2a02:26f7:c40c:5000::/52 1; +2a02:26f7:c40c:6000::/51 1; +2a02:26f7:c40c:8000::/50 1; +2a02:26f7:c40c:c000::/51 1; +2a02:26f7:c40c:e000::/52 1; +2a02:26f7:c40c:f000::/54 1; +2a02:26f7:c40c:f60e::/63 1; +2a02:26f7:c40c:f610::/60 1; +2a02:26f7:c40c:f620::/59 1; +2a02:26f7:c40c:f640::/58 1; +2a02:26f7:c40c:f680::/57 1; +2a02:26f7:c40c:f700::/56 1; +2a02:26f7:c40c:f800::/53 1; +2a02:26f7:c40d::/50 1; +2a02:26f7:c5c8:4001::/64 1; +2a02:26f7:c5c8:4002::/63 1; +2a02:26f7:c5c8:4004::/62 1; +2a02:26f7:c5c8:4008::/61 1; +2a02:26f7:c5c8:4010::/60 1; +2a02:26f7:c5c8:4020::/59 1; +2a02:26f7:c5c8:4040::/58 1; +2a02:26f7:c5c8:4080::/57 1; +2a02:26f7:c5c8:4100::/56 1; +2a02:26f7:c5c8:4200::/55 1; +2a02:26f7:c5c8:4400::/54 1; +2a02:26f7:c5c8:4800::/54 1; +2a02:26f7:c5c8:4c00::/55 1; +2a02:26f7:c5c8:4e00::/56 1; +2a02:26f7:c5c8:4f00::/57 1; +2a02:26f7:c5c8:4f81::/64 1; +2a02:26f7:c5c8:4f82::/64 1; +2a02:26f7:c5c8:4f85::/64 1; +2a02:26f7:c5c8:4f86::/64 1; +2a02:26f7:c5c8:4f8d::/64 1; +2a02:26f7:c5c8:4f93::/64 1; +2a02:26f7:c5c8:4f96::/63 1; +2a02:26f7:c5c8:4f99::/64 1; +2a02:26f7:c5c8:4f9a::/64 1; +2a02:26f7:c5c8:4f9c::/64 1; +2a02:26f7:c5c8:4f9f::/64 1; +2a02:26f7:c5c8:4fa2::/63 1; +2a02:26f7:c5c8:4fa5::/64 1; +2a02:26f7:c5c8:4fa7::/64 1; +2a02:26f7:c5c8:4fa8::/63 1; +2a02:26f7:c5c8:4faa::/64 1; +2a02:26f7:c5c8:4fac::/63 1; +2a02:26f7:c5c8:4fb2::/63 1; +2a02:26f7:c5c8:4fb4::/62 1; +2a02:26f7:c5c8:4fb8::/61 1; +2a02:26f7:c5c8:4fc0::/58 1; +2a02:26f7:c5c8:5000::/52 1; +2a02:26f7:c5c8:6000::/51 1; +2a02:26f7:c5c8:8000::/49 1; +2a02:26f7:c5c9::/50 1; +2a02:26f7:c788:4001::/64 1; +2a02:26f7:c788:4002::/63 1; +2a02:26f7:c788:4004::/62 1; +2a02:26f7:c788:4008::/61 1; +2a02:26f7:c788:4010::/60 1; +2a02:26f7:c788:4020::/59 1; +2a02:26f7:c788:4040::/58 1; +2a02:26f7:c788:4080::/57 1; +2a02:26f7:c788:4100::/56 1; +2a02:26f7:c788:4200::/55 1; +2a02:26f7:c788:4400::/54 1; +2a02:26f7:c788:4800::/53 1; +2a02:26f7:c788:5000::/52 1; +2a02:26f7:c788:6000::/51 1; +2a02:26f7:c788:8000::/50 1; +2a02:26f7:c788:c000::/52 1; +2a02:26f7:c788:d000::/55 1; +2a02:26f7:c788:d200::/58 1; +2a02:26f7:c788:d24c::/62 1; +2a02:26f7:c788:d250::/60 1; +2a02:26f7:c788:d260::/59 1; +2a02:26f7:c788:d280::/57 1; +2a02:26f7:c788:d300::/56 1; +2a02:26f7:c788:d400::/54 1; +2a02:26f7:c788:d800::/53 1; +2a02:26f7:c788:e000::/51 1; +2a02:26f7:c789::/50 1; +2a02:26f7:c808:4001::/64 1; +2a02:26f7:c808:4002::/63 1; +2a02:26f7:c808:4004::/62 1; +2a02:26f7:c808:4008::/61 1; +2a02:26f7:c808:4010::/60 1; +2a02:26f7:c808:4020::/59 1; +2a02:26f7:c808:4040::/58 1; +2a02:26f7:c808:4080::/57 1; +2a02:26f7:c808:4100::/56 1; +2a02:26f7:c808:4200::/55 1; +2a02:26f7:c808:4400::/54 1; +2a02:26f7:c808:4800::/53 1; +2a02:26f7:c808:5000::/52 1; +2a02:26f7:c808:6000::/51 1; +2a02:26f7:c808:8000::/50 1; +2a02:26f7:c808:c000::/53 1; +2a02:26f7:c808:c800::/55 1; +2a02:26f7:c808:ca00::/58 1; +2a02:26f7:c808:ca42::/63 1; +2a02:26f7:c808:ca44::/62 1; +2a02:26f7:c808:ca48::/61 1; +2a02:26f7:c808:ca50::/60 1; +2a02:26f7:c808:ca60::/59 1; +2a02:26f7:c808:ca80::/57 1; +2a02:26f7:c808:cb00::/56 1; +2a02:26f7:c808:cc00::/54 1; +2a02:26f7:c808:d000::/52 1; +2a02:26f7:c808:e000::/51 1; +2a02:26f7:c809::/50 1; +2a02:26f7:ce88:4001::/64 1; +2a02:26f7:ce88:4002::/63 1; +2a02:26f7:ce88:4004::/62 1; +2a02:26f7:ce88:4008::/61 1; +2a02:26f7:ce88:4010::/60 1; +2a02:26f7:ce88:4020::/59 1; +2a02:26f7:ce88:4040::/58 1; +2a02:26f7:ce88:4080::/57 1; +2a02:26f7:ce88:4100::/56 1; +2a02:26f7:ce88:4200::/55 1; +2a02:26f7:ce88:4400::/54 1; +2a02:26f7:ce88:4800::/53 1; +2a02:26f7:ce88:5000::/52 1; +2a02:26f7:ce88:6000::/51 1; +2a02:26f7:ce88:8000::/50 1; +2a02:26f7:ce88:c000::/52 1; +2a02:26f7:ce88:d000::/58 1; +2a02:26f7:ce88:d047::/64 1; +2a02:26f7:ce88:d048::/61 1; +2a02:26f7:ce88:d050::/60 1; +2a02:26f7:ce88:d060::/59 1; +2a02:26f7:ce88:d080::/57 1; +2a02:26f7:ce88:d100::/56 1; +2a02:26f7:ce88:d200::/55 1; +2a02:26f7:ce88:d400::/54 1; +2a02:26f7:ce88:d800::/53 1; +2a02:26f7:ce88:e000::/51 1; +2a02:26f7:ce89::/50 1; +2a02:5740:187::/48 1; +2a02:5741:187::/48 1; +2a02:5742:187::/48 1; +2a02:5743:187::/48 1; +2a02:5744:187::/48 1; +2a02:5745:187::/48 1; +2a02:5746:187::/48 1; +2a02:5747:187::/48 1; +2a03:83e0:d3a::/48 1; +2a03:83e0:e16::/48 1; +2a03:83e0:f16::/48 1; +2a03:83e0:1116::/48 1; +2a03:83e0:1216::/48 1; +2a03:83e0:1d16::/48 1; +2a03:b8c0:18::/47 1; +2a05:b0c6:9000::/40 1; +2a05:dfc1:6603::/48 1; +2a06:a001:a100::/44 1; +2a06:a005:1a0::/43 1; +2a06:a005:1c0::/43 1; +2a06:a005:500::/44 1; +2a06:a005:570::/44 1; +2a06:a005:8f0::/44 1; +2a06:a005:a13::/48 1; +2a06:a005:f60::/44 1; +2a06:a005:14f0::/44 1; +2a06:a005:16f0::/44 1; +2a06:a005:1800::/48 1; +2a06:a005:1be4::/46 1; +2a06:a005:1be8::/45 1; +2a06:a005:2180::/44 1; +2a06:a005:2950::/44 1; +2a06:a005:29b0::/44 1; +2a09:bac0:80::/48 1; +2a09:bac0:574::/48 1; +2a09:bac0:584::/46 1; +2a09:bac0:588::/45 1; +2a09:bac0:590::/46 1; +2a09:bac0:1000:495::/64 1; +2a09:bac0:1000:5bd::/64 1; +2a09:bac0:1000:603::/64 1; +2a09:bac0:1000:61b::/64 1; +2a09:bac0:1000:651::/64 1; +2a09:bac0:1000:691::/64 1; +2a09:bac0:1000:7b6::/64 1; +2a09:bac0:1000:88f::/64 1; +2a09:bac0:1000:8e2::/63 1; +2a09:bac0:1000:9bf::/64 1; +2a09:bac0:1000:9d8::/64 1; +2a09:bac0:1000:b48::/64 1; +2a09:bac0:1000:b76::/64 1; +2a09:bac0:1000:b7c::/64 1; +2a09:bac0:1000:bbd::/64 1; +2a09:bac0:1000:bca::/63 1; +2a09:bac0:1000:c97::/64 1; +2a09:bac0:1000:ce7::/64 1; +2a09:bac0:1000:d26::/64 1; +2a09:bac0:1000:ed4::/64 1; +2a09:bac0:1000:1107::/64 1; +2a09:bac0:1000:1152::/63 1; +2a09:bac0:1000:1154::/64 1; +2a09:bac0:1000:119c::/63 1; +2a09:bac0:1000:1285::/64 1; +2a09:bac0:1000:13f5::/64 1; +2a09:bac0:1000:14b4::/64 1; +2a09:bac0:1000:14e0::/64 1; +2a09:bac0:1000:14e2::/64 1; +2a09:bac0:1000:151b::/64 1; +2a09:bac0:1000:1604::/64 1; +2a09:bac0:1001:19d::/64 1; +2a09:bac0:1001:305::/64 1; +2a09:bac0:1001:32a::/64 1; +2a09:bac0:1001:3e8::/64 1; +2a09:bac0:1001:464::/64 1; +2a09:bac0:1001:4ca::/64 1; +2a09:bac0:1001:4e7::/64 1; +2a09:bac0:1001:523::/64 1; +2a09:bac0:1001:580::/64 1; +2a09:bac0:1001:600::/64 1; +2a09:bac0:1001:603::/64 1; +2a09:bac0:1001:60f::/64 1; +2a09:bac0:1001:65b::/64 1; +2a09:bac0:1001:660::/64 1; +2a09:bac1:7400:8::/64 1; +2a09:bac1:7400:18::/64 1; +2a09:bac1:7400:20::/64 1; +2a09:bac1:7400:28::/64 1; +2a09:bac1:7400:30::/64 1; +2a09:bac1:7400:38::/64 1; +2a09:bac1:7400:40::/64 1; +2a09:bac1:7420:8::/64 1; +2a09:bac1:7420:18::/64 1; +2a09:bac1:7420:20::/64 1; +2a09:bac1:7420:28::/64 1; +2a09:bac1:7420:30::/64 1; +2a09:bac1:7420:38::/64 1; +2a09:bac1:7420:40::/64 1; +2a09:bac1:7440:8::/64 1; +2a09:bac1:7440:18::/64 1; +2a09:bac1:7440:20::/64 1; +2a09:bac1:7440:28::/64 1; +2a09:bac1:7440:30::/64 1; +2a09:bac1:7440:38::/64 1; +2a09:bac1:7440:40::/64 1; +2a09:bac1:7460:8::/64 1; +2a09:bac1:7460:18::/64 1; +2a09:bac1:7460:20::/64 1; +2a09:bac1:7460:28::/64 1; +2a09:bac1:7460:30::/64 1; +2a09:bac1:7460:38::/64 1; +2a09:bac1:7460:40::/64 1; +2a09:bac2:57e8::/45 1; +2a09:bac2:57f0::/44 1; +2a09:bac2:5800::/44 1; +2a09:bac2:5810::/45 1; +2a09:bac2:d480::/45 1; +2a09:bac3:57e8::/45 1; +2a09:bac3:57f0::/44 1; +2a09:bac3:5800::/44 1; +2a09:bac3:5810::/45 1; +2a09:bac3:d480::/45 1; +2a09:bac4:710::/45 1; +2a09:bac4:1710::/45 1; +2a09:bac5:58e0::/43 1; +2a09:bac5:5900::/44 1; +2a09:bac5:d588::/45 1; +2a09:bac6:58e0::/43 1; +2a09:bac6:5900::/44 1; +2a09:bac6:d588::/45 1; +2a09:bac6:d838::/45 1; +2a0a:6040:3441::/48 1; +2a0a:6040:a100::/48 1; +2a0a:6040:d710::/44 1; +2a0a:8f40:1f::/48 1; +2a0a:8f40:20::/48 1; +2a0a:8f40:32::/48 1; +2a0b:4340:b0::/44 1; +2a0b:4340:500::/43 1; +2a0b:4340:530::/44 1; +2a0b:4340:540::/43 1; +2a0b:4341:400::/40 1; +2a0c:5200::/29 1; +2a0c:9a40:8230::/48 1; +2a0c:9a40:9300::/40 1; +2a0c:9a40:95e8::/45 1; +2a0c:9a40:95f0::/44 1; +2a0c:e642:50::/44 1; +2a0d:2580:1082::/47 1; +2a0d:2580:1084::/46 1; +2a0d:2580:1088::/45 1; +2a0d:2580:1090::/44 1; +2a0d:2580:10a0::/43 1; +2a0d:2580:10c0::/42 1; +2a0d:2580:1100::/40 1; +2a0d:2580:1200::/40 1; +2a0d:2580:1300::/42 1; +2a0d:2580:1340::/44 1; +2a0d:2580:1350::/47 1; +2a0d:2580:1353::/48 1; +2a0d:2580:1354::/46 1; +2a0d:2580:1358::/45 1; +2a0d:2580:1360::/43 1; +2a0d:2580:1380::/41 1; +2a0d:2580:1400::/39 1; +2a0d:2580:1600::/46 1; +2a0d:2580:1605::/48 1; +2a0d:2580:1606::/47 1; +2a0d:2580:1608::/45 1; +2a0d:2580:1610::/44 1; +2a0d:2580:1620::/43 1; +2a0d:2580:1640::/42 1; +2a0d:2580:1680::/41 1; +2a0d:2580:1700::/47 1; +2a0d:2580:1703::/48 1; +2a0d:2580:1704::/46 1; +2a0d:2580:1708::/45 1; +2a0d:2580:1710::/44 1; +2a0d:2580:1720::/43 1; +2a0d:2580:1740::/42 1; +2a0d:2580:1780::/41 1; +2a0d:2580:1800::/42 1; +2a0d:2580:1840::/44 1; +2a0d:2580:1850::/47 1; +2a0d:2580:1853::/48 1; +2a0d:2580:1854::/46 1; +2a0d:2580:1858::/45 1; +2a0d:2580:1860::/43 1; +2a0d:2580:1880::/41 1; +2a0d:2580:1900::/40 1; +2a0d:2580:1a00::/39 1; +2a0d:2580:1c00::/38 1; +2a0d:2580:2000::/35 1; +2a0d:2580:4000::/34 1; +2a0d:2682::/33 1; +2a0d:2682:c000::/34 1; +2a0e:2c00::/29 1; +2a0e:8f02:f00d::/48 1; +2a0e:8f02:f00e::/47 1; +2a0e:8f02:f010::/47 1; +2a0e:8f02:f013::/48 1; +2a0e:8f02:f03d:1b00::/56 1; +2a0e:8f02:f03d:1c00::/54 1; +2a0e:8f02:f03d:2000::/51 1; +2a0e:8f02:f03d:4000::/50 1; +2a0e:8f02:f03d:8000::/49 1; +2a0e:8f02:f03f::/48 1; +2a0e:8f02:f046::/48 1; +2a0e:aa07:e019::/48 1; +2a0e:b107:90::/44 1; +2a0e:b107:340::/43 1; +2a0e:b107:c10::/44 1; +2a0e:b107:d70::/46 1; +2a0e:b107:df0::/47 1; +2a0e:b107:df5::/48 1; +2a0e:b107:ea2::/47 1; +2a0e:b107:1070::/44 1; +2a0e:b107:1250::/44 1; +2a0e:b107:1290::/44 1; +2a0e:b107:1310::/44 1; +2a0e:b107:1320::/43 1; +2a0e:b107:1340::/43 1; +2a0e:b107:1480::/44 1; +2a0e:b107:14c0::/44 1; +2a0e:b107:1550::/44 1; +2a0e:b107:1980::/44 1; +2a0e:b107:1a30::/47 1; +2a0e:b107:1a32::/51 1; +2a0e:b107:1a32:b000::/52 1; +2a0e:b107:1a32:c000::/50 1; +2a0e:b107:1a33::/48 1; +2a0e:b107:1c00::/44 1; +2a0e:b107:1c30::/45 1; +2a0e:b107:1c38::/48 1; +2a0e:b107:1c3a::/47 1; +2a0e:b107:1c3c::/46 1; +2a0f:607:1004::/46 1; +2a0f:607:1008::/45 1; +2a0f:607:1010::/48 1; +2a0f:607:1024::/46 1; +2a0f:607:1028::/45 1; +2a0f:607:1030::/44 1; +2a0f:607:1040::/43 1; +2a0f:607:1060::/44 1; +2a0f:607:1071::/48 1; +2a0f:607:1072::/47 1; +2a0f:607:1074::/46 1; +2a0f:607:1078::/45 1; +2a0f:607:1080::/41 1; +2a0f:607:1100::/44 1; +2a0f:607:1500::/44 1; +2a0f:1500::/29 1; +2a0f:5707:ad01::/48 1; +2a0f:5707:ffa0::/45 1; +2a0f:5707:ffe0::/46 1; +2a0f:9400:62c8::/46 1; +2a0f:9400:6510::/45 1; +2a0f:9400:7844::/47 1; +2a10:2f00:157::/48 1; +2a11:b000:8::/47 1; +2a12:3fc2:df00::/40 1; +2a12:3fc5::/32 1; +2a12:ac42::/32 1; +2a12:dd47:80b0::/48 1; +2a12:f8c7::/32 1; +2a13:a5c5::/40 1; +2a13:a5c6:4000::/36 1; +2a13:b487:1f01::/48 1; +2a13:b487:1f02::/47 1; +2a13:b487:1f04::/46 1; +2a13:b487:1f08::/45 1; +2a13:b487:1f10::/44 1; +2a13:b487:1f20::/43 1; +2a13:b487:1f40::/42 1; +2a13:b487:1f80::/41 1; +2a13:b487:2000::/35 1; +2a13:c000::/30 1; +2a13:c004::/31 1; +2a13:c006::/32 1; +2a13:c007::/33 1; +2a13:c007:8000::/40 1; +2a13:c007:8200::/39 1; +2a13:c007:8500::/40 1; +2a13:c007:8600::/39 1; +2a13:c007:8800::/37 1; +2a13:c007:9000::/36 1; +2a13:c007:a000::/35 1; +2a13:c007:c000::/34 1; +2a13:d047::/40 1; +2a14:7580:4000::/34 1; +2a14:7580:8000::/34 1; diff --git a/minigate/root/usr/lib/minigate/geo/810000.conf b/minigate/root/usr/lib/minigate/geo/810000.conf new file mode 100644 index 000000000..18b574580 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/810000.conf @@ -0,0 +1,9911 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 香港特别行政区 +1.32.192.0/21 1; +1.32.200.0/22 1; +1.32.204.0/23 1; +1.32.206.0/24 1; +1.32.216.0/21 1; +1.32.224.0/21 1; +1.32.233.0/24 1; +1.32.236.0/24 1; +1.32.238.0/24 1; +1.32.242.0/23 1; +1.32.244.0/22 1; +1.32.248.0/21 1; +1.36.0.0/16 1; +1.64.0.0/15 1; +1.118.0.0/24 1; +1.178.103.0/24 1; +2.16.86.0/24 1; +2.16.92.0/24 1; +2.16.244.0/24 1; +2.17.28.0/22 1; +2.20.40.0/22 1; +2.58.240.0/21 1; +2.58.248.0/22 1; +2.59.100.0/22 1; +2.59.154.0/23 1; +3.2.35.128/26 1; +3.2.81.0/24 1; +3.4.12.67/32 1; +3.4.12.68/31 1; +3.4.12.70/32 1; +3.4.15.224/28 1; +3.5.214.0/23 1; +3.5.236.0/22 1; +3.45.0.0/18 1; +4.69.170.37/32 1; +4.69.170.38/32 1; +4.69.170.48/32 1; +4.144.0.0/15 1; +4.146.0.0/17 1; +4.191.0.0/16 1; +4.192.0.0/16 1; +4.193.0.0/17 1; +4.193.128.0/19 1; +4.252.0.0/16 1; +4.253.0.0/18 1; +4.253.64.0/19 1; +5.61.68.0/23 1; +5.102.36.0/22 1; +5.152.177.0/24 1; +5.180.96.0/22 1; +5.180.188.0/24 1; +5.181.4.0/24 1; +5.181.150.0/24 1; +5.181.224.0/22 1; +5.182.35.0/24 1; +5.182.60.0/23 1; +5.182.62.0/24 1; +5.182.216.0/22 1; +5.183.116.0/22 1; +5.183.120.0/22 1; +5.188.33.0/24 1; +5.188.230.0/24 1; +5.189.200.0/23 1; +5.253.16.0/23 1; +5.254.128.0/19 1; +8.20.100.0/24 1; +8.21.11.0/24 1; +8.23.176.0/20 1; +8.27.192.0/20 1; +8.29.109.133/32 1; +8.29.109.186/31 1; +8.29.109.201/32 1; +8.29.109.202/32 1; +8.29.109.234/32 1; +8.29.228.77/32 1; +8.29.228.121/32 1; +8.29.228.164/32 1; +8.29.228.243/32 1; +8.29.228.247/32 1; +8.29.230.23/32 1; +8.29.230.28/31 1; +8.29.230.114/32 1; +8.29.230.169/32 1; +8.29.231.32/32 1; +8.29.231.82/32 1; +8.39.127.0/24 1; +8.44.86.64/26 1; +8.44.86.128/25 1; +8.44.87.0/24 1; +8.210.0.0/16 1; +13.32.32.0/21 1; +13.32.63.0/24 1; +13.33.142.0/24 1; +13.33.156.0/23 1; +13.33.176.0/21 1; +13.34.7.64/26 1; +13.34.11.0/26 1; +13.34.16.64/26 1; +13.34.62.0/26 1; +13.34.63.0/26 1; +13.34.117.0/26 1; +13.34.122.0/26 1; +13.34.130.128/26 1; +13.34.149.0/26 1; +13.34.186.96/27 1; +13.34.251.0/26 1; +13.70.0.0/18 1; +13.72.192.0/19 1; +13.75.0.0/17 1; +13.88.208.0/20 1; +13.94.0.0/18 1; +13.106.44.0/23 1; +13.224.153.0/24 1; +13.224.154.0/23 1; +13.224.156.0/22 1; +13.224.160.0/21 1; +13.224.168.0/24 1; +13.225.89.0/24 1; +13.225.90.0/23 1; +13.225.92.0/22 1; +13.225.96.0/21 1; +13.225.104.0/24 1; +13.226.57.0/24 1; +13.226.58.0/23 1; +13.226.60.0/22 1; +13.226.64.0/21 1; +13.226.72.0/24 1; +13.226.112.0/20 1; +13.227.53.0/24 1; +13.227.54.0/23 1; +13.248.32.0/19 1; +14.0.39.0/24 1; +14.0.40.0/24 1; +14.0.52.0/23 1; +14.0.128.0/17 1; +14.1.96.0/22 1; +14.1.112.0/22 1; +14.102.184.0/22 1; +14.102.240.0/20 1; +14.128.32.0/20 1; +14.128.48.0/21 1; +14.128.56.0/24 1; +14.128.58.0/23 1; +14.128.60.0/22 1; +14.136.0.0/16 1; +14.192.4.0/22 1; +14.192.8.0/22 1; +14.192.20.0/22 1; +14.192.48.0/22 1; +14.192.67.0/24 1; +14.192.68.0/23 1; +14.192.160.0/19 1; +14.198.0.0/15 1; +15.129.62.0/23 1; +15.177.85.0/24 1; +15.177.86.0/24 1; +15.230.73.192/26 1; +15.230.74.0/25 1; +16.12.6.0/23 1; +16.12.8.0/24 1; +16.162.0.0/15 1; +17.252.144.0/23 1; +17.253.84.0/22 1; +17.253.94.0/23 1; +17.255.252.0/24 1; +18.99.176.0/20 1; +18.162.0.0/15 1; +18.166.0.0/15 1; +20.134.209.0/24 1; +20.134.244.0/24 1; +20.139.48.0/20 1; +20.187.64.0/18 1; +20.187.128.0/17 1; +20.189.64.0/18 1; +20.190.140.128/25 1; +20.190.164.0/24 1; +23.0.246.0/23 1; +23.2.16.0/24 1; +23.3.99.0/24 1; +23.7.160.0/20 1; +23.7.208.0/20 1; +23.7.224.0/20 1; +23.13.184.0/21 1; +23.14.56.0/22 1; +23.15.140.0/22 1; +23.32.20.0/24 1; +23.32.30.0/24 1; +23.32.61.0/24 1; +23.32.76.0/22 1; +23.32.91.0/24 1; +23.32.240.0/24 1; +23.33.91.0/24 1; +23.33.92.0/24 1; +23.33.124.0/24 1; +23.33.126.0/24 1; +23.33.184.0/23 1; +23.33.239.0/24 1; +23.34.163.0/24 1; +23.35.148.0/24 1; +23.35.216.0/24 1; +23.35.244.0/22 1; +23.35.248.0/23 1; +23.36.0.0/24 1; +23.36.188.0/22 1; +23.36.230.0/24 1; +23.38.188.0/24 1; +23.38.197.0/24 1; +23.39.47.0/24 1; +23.40.180.0/22 1; +23.40.184.0/22 1; +23.40.189.0/24 1; +23.40.240.0/22 1; +23.40.246.0/24 1; +23.40.248.0/22 1; +23.41.64.0/20 1; +23.41.96.0/20 1; +23.41.245.0/24 1; +23.42.160.0/20 1; +23.42.176.0/21 1; +23.42.188.0/22 1; +23.43.50.0/24 1; +23.43.169.0/24 1; +23.44.8.0/23 1; +23.44.216.0/22 1; +23.45.38.0/24 1; +23.45.78.0/23 1; +23.45.155.0/24 1; +23.46.48.0/23 1; +23.46.50.0/24 1; +23.46.196.0/22 1; +23.47.96.0/20 1; +23.47.121.0/24 1; +23.47.152.0/22 1; +23.48.228.0/22 1; +23.48.232.0/22 1; +23.49.104.0/23 1; +23.50.16.0/20 1; +23.50.63.0/24 1; +23.52.64.0/23 1; +23.53.6.0/24 1; +23.56.20.0/22 1; +23.56.24.0/21 1; +23.56.132.0/23 1; +23.56.143.0/24 1; +23.56.164.0/22 1; +23.56.180.0/22 1; +23.57.112.0/22 1; +23.58.83.0/24 1; +23.58.209.0/24 1; +23.60.96.0/24 1; +23.61.1.0/24 1; +23.61.203.0/24 1; +23.62.52.0/24 1; +23.64.136.0/23 1; +23.66.4.0/22 1; +23.66.32.0/20 1; +23.66.144.0/20 1; +23.67.36.0/23 1; +23.67.38.0/24 1; +23.67.51.0/24 1; +23.67.57.0/24 1; +23.74.15.0/24 1; +23.74.240.0/20 1; +23.75.24.0/23 1; +23.75.80.0/20 1; +23.76.64.0/20 1; +23.76.104.0/23 1; +23.76.144.0/23 1; +23.76.148.0/23 1; +23.76.154.0/23 1; +23.76.158.0/24 1; +23.76.206.0/23 1; +23.76.208.0/20 1; +23.76.224.0/20 1; +23.77.0.0/19 1; +23.77.48.0/20 1; +23.77.214.0/23 1; +23.78.216.0/22 1; +23.91.96.0/21 1; +23.91.104.0/22 1; +23.97.64.0/19 1; +23.98.32.0/21 1; +23.98.40.0/22 1; +23.98.44.0/24 1; +23.99.96.0/19 1; +23.100.88.0/21 1; +23.101.0.0/20 1; +23.102.200.0/23 1; +23.102.224.0/19 1; +23.103.137.32/27 1; +23.103.141.224/28 1; +23.103.189.32/27 1; +23.103.189.160/27 1; +23.103.189.192/26 1; +23.192.231.0/24 1; +23.194.128.0/24 1; +23.197.87.0/24 1; +23.197.224.0/22 1; +23.198.100.0/22 1; +23.198.104.0/23 1; +23.199.52.0/24 1; +23.199.75.0/24 1; +23.199.76.0/22 1; +23.200.74.0/24 1; +23.200.143.0/24 1; +23.200.145.0/24 1; +23.200.228.0/23 1; +23.200.230.0/24 1; +23.200.232.0/22 1; +23.201.97.0/24 1; +23.201.98.0/24 1; +23.201.103.0/24 1; +23.201.110.0/23 1; +23.201.144.0/21 1; +23.201.192.0/24 1; +23.201.197.0/24 1; +23.201.200.0/22 1; +23.201.208.0/21 1; +23.202.32.0/24 1; +23.202.34.0/23 1; +23.202.36.0/23 1; +23.202.48.0/24 1; +23.202.51.0/24 1; +23.202.52.0/22 1; +23.202.56.0/22 1; +23.202.62.0/23 1; +23.202.80.0/21 1; +23.202.92.0/22 1; +23.202.96.0/23 1; +23.202.100.0/22 1; +23.202.108.0/22 1; +23.202.114.0/24 1; +23.203.53.0/24 1; +23.204.80.0/24 1; +23.204.92.0/23 1; +23.204.98.0/24 1; +23.204.138.0/24 1; +23.204.140.0/23 1; +23.205.120.0/24 1; +23.205.150.0/23 1; +23.206.202.0/23 1; +23.206.204.0/22 1; +23.206.212.0/24 1; +23.207.162.0/24 1; +23.207.164.0/22 1; +23.208.12.0/24 1; +23.208.26.0/24 1; +23.208.98.0/23 1; +23.209.73.0/24 1; +23.209.117.0/24 1; +23.210.7.0/24 1; +23.211.143.0/24 1; +23.215.180.0/22 1; +23.215.188.0/22 1; +23.217.196.0/22 1; +23.217.206.0/23 1; +23.217.208.0/23 1; +23.217.210.0/24 1; +23.219.132.0/22 1; +23.219.172.0/24 1; +23.220.71.0/24 1; +23.220.192.0/22 1; +23.221.60.0/23 1; +23.222.72.0/22 1; +23.222.77.0/24 1; +23.222.112.0/21 1; +23.222.120.0/22 1; +23.222.128.0/21 1; +23.225.239.0/24 1; +23.226.0.0/20 1; +23.226.48.0/20 1; +23.226.128.0/21 1; +23.226.191.0/24 1; +23.231.128.0/17 1; +23.234.0.0/18 1; +23.235.128.0/18 1; +23.246.0.242/31 1; +23.246.56.0/23 1; +23.246.61.195/32 1; +23.246.61.201/32 1; +23.246.61.217/32 1; +23.248.162.0/23 1; +23.248.192.0/18 1; +23.249.0.0/23 1; +23.249.16.0/24 1; +23.249.19.0/24 1; +23.249.20.0/23 1; +23.251.32.0/19 1; +24.230.0.0/20 1; +24.235.29.0/24 1; +24.235.30.0/23 1; +27.0.192.0/22 1; +27.0.232.0/24 1; +27.34.176.0/24 1; +27.34.180.0/24 1; +27.34.187.0/24 1; +27.34.188.0/24 1; +27.34.190.0/24 1; +27.50.32.0/21 1; +27.50.48.0/22 1; +27.50.53.0/24 1; +27.50.54.0/24 1; +27.50.56.0/21 1; +27.98.192.0/20 1; +27.100.16.0/22 1; +27.100.20.0/24 1; +27.100.39.0/24 1; +27.106.0.0/17 1; +27.110.64.0/20 1; +27.110.80.0/22 1; +27.111.160.0/19 1; +27.111.192.0/20 1; +27.112.96.0/22 1; +27.122.12.0/22 1; +27.122.56.0/23 1; +27.123.44.0/22 1; +27.123.56.0/21 1; +27.123.192.0/23 1; +27.123.232.0/22 1; +27.124.2.0/23 1; +27.124.4.0/22 1; +27.124.9.0/24 1; +27.124.10.0/23 1; +27.124.12.0/24 1; +27.124.15.0/24 1; +27.124.16.0/20 1; +27.124.32.0/22 1; +27.124.40.0/21 1; +27.124.55.0/24 1; +27.124.56.0/23 1; +27.124.58.0/24 1; +27.124.60.0/23 1; +27.126.176.0/20 1; +27.126.192.0/20 1; +27.126.208.0/21 1; +27.126.216.0/22 1; +27.126.224.0/22 1; +27.126.231.0/24 1; +27.126.232.0/21 1; +27.126.240.0/20 1; +31.6.59.0/24 1; +31.6.60.0/23 1; +31.13.75.0/24 1; +31.13.77.0/24 1; +31.13.95.0/24 1; +31.14.74.0/24 1; +31.24.80.0/24 1; +31.222.78.0/23 1; +34.34.236.0/24 1; +34.92.0.0/16 1; +34.96.128.0/17 1; +34.104.88.0/21 1; +34.124.24.0/21 1; +34.150.0.0/17 1; +35.34.102.0/24 1; +35.54.51.0/24 1; +35.71.107.0/24 1; +35.203.228.0/23 1; +35.215.128.0/18 1; +35.220.27.0/24 1; +35.220.128.0/17 1; +35.241.64.0/18 1; +35.242.27.0/24 1; +35.243.8.0/21 1; +35.248.3.184/30 1; +35.248.3.192/30 1; +36.0.8.0/21 1; +36.37.32.0/22 1; +36.51.254.0/23 1; +36.255.56.0/22 1; +36.255.76.0/23 1; +36.255.78.0/24 1; +36.255.220.0/22 1; +37.1.224.0/21 1; +37.10.26.0/24 1; +37.10.32.0/24 1; +37.10.40.0/24 1; +37.17.188.0/24 1; +37.17.190.0/24 1; +37.44.228.0/22 1; +37.61.224.0/24 1; +37.148.128.0/21 1; +37.153.152.0/22 1; +37.218.240.0/24 1; +37.218.244.0/24 1; +37.230.183.0/24 1; +37.252.212.0/24 1; +37.252.249.0/24 1; +38.127.240.0/20 1; +39.109.0.0/17 1; +40.66.129.128/25 1; +40.66.148.0/24 1; +40.77.134.0/24 1; +40.77.136.16/28 1; +40.77.160.32/27 1; +40.77.160.64/26 1; +40.77.160.128/25 1; +40.77.161.0/26 1; +40.77.161.128/25 1; +40.77.175.128/27 1; +40.77.192.0/22 1; +40.77.226.0/25 1; +40.77.252.0/23 1; +40.79.210.0/24 1; +40.81.16.0/20 1; +40.82.116.0/22 1; +40.83.64.0/18 1; +40.87.192.0/22 1; +40.90.154.192/26 1; +40.92.54.0/24 1; +40.92.60.0/24 1; +40.92.82.0/24 1; +40.92.255.0/24 1; +40.94.252.0/24 1; +40.95.55.0/24 1; +40.95.81.0/24 1; +40.95.252.0/22 1; +40.96.3.208/28 1; +40.96.3.224/27 1; +40.96.4.0/25 1; +40.103.28.160/28 1; +40.103.28.224/28 1; +40.103.29.32/28 1; +40.108.228.0/24 1; +40.108.238.0/24 1; +40.108.245.0/24 1; +40.126.12.128/25 1; +40.126.36.0/24 1; +42.1.128.0/17 1; +42.2.0.0/15 1; +42.83.135.0/24 1; +42.98.0.0/16 1; +42.99.116.0/22 1; +42.99.128.0/21 1; +42.99.138.0/23 1; +42.99.140.0/22 1; +42.99.152.0/21 1; +42.99.160.0/22 1; +42.99.164.0/23 1; +42.99.168.0/21 1; +42.99.177.0/24 1; +42.99.179.0/24 1; +42.99.180.0/22 1; +42.99.184.0/21 1; +42.99.192.0/20 1; +42.99.208.0/23 1; +42.99.211.0/24 1; +42.99.214.0/24 1; +42.99.218.0/23 1; +42.99.221.0/24 1; +42.99.222.0/23 1; +42.99.224.0/23 1; +42.99.226.0/24 1; +42.157.12.0/23 1; +42.200.0.0/16 1; +42.201.128.0/17 1; +43.128.0.0/10 1; +43.193.68.0/22 1; +43.193.72.0/21 1; +43.193.80.0/20 1; +43.193.96.0/19 1; +43.193.128.0/17 1; +43.194.17.0/24 1; +43.194.18.0/23 1; +43.194.20.0/22 1; +43.194.24.0/21 1; +43.194.32.0/19 1; +43.194.64.0/18 1; +43.194.128.0/17 1; +43.195.22.0/23 1; +43.195.24.0/21 1; +43.195.32.0/19 1; +43.195.64.0/18 1; +43.195.128.0/17 1; +43.197.0.0/16 1; +43.198.0.0/15 1; +43.214.0.0/15 1; +43.219.0.0/16 1; +43.221.0.0/16 1; +43.222.0.0/15 1; +43.224.4.0/22 1; +43.224.30.0/23 1; +43.224.48.0/22 1; +43.224.64.0/22 1; +43.224.91.0/24 1; +43.224.92.0/22 1; +43.224.140.0/22 1; +43.224.148.0/22 1; +43.224.152.0/22 1; +43.224.196.0/22 1; +43.224.224.0/21 1; +43.224.232.0/22 1; +43.224.244.0/22 1; +43.224.248.0/23 1; +43.225.8.0/22 1; +43.225.28.0/22 1; +43.225.36.0/22 1; +43.225.44.0/22 1; +43.225.56.0/22 1; +43.225.80.0/22 1; +43.225.84.0/23 1; +43.225.87.0/24 1; +43.225.92.0/24 1; +43.225.100.0/22 1; +43.225.104.0/22 1; +43.225.124.0/22 1; +43.225.132.0/22 1; +43.225.140.0/22 1; +43.225.156.0/22 1; +43.225.172.0/22 1; +43.225.196.0/22 1; +43.226.16.0/21 1; +43.226.124.0/22 1; +43.226.168.0/21 1; +43.226.176.0/20 1; +43.226.192.0/20 1; +43.226.208.0/21 1; +43.226.231.0/24 1; +43.227.28.0/22 1; +43.227.96.0/21 1; +43.227.236.0/22 1; +43.228.88.0/22 1; +43.228.120.0/22 1; +43.228.157.0/24 1; +43.228.158.0/31 1; +43.228.180.0/22 1; +43.228.196.0/24 1; +43.228.197.0/29 1; +43.228.204.0/22 1; +43.228.216.0/22 1; +43.228.232.0/23 1; +43.228.234.0/24 1; +43.228.240.0/22 1; +43.229.0.0/21 1; +43.229.16.0/22 1; +43.229.28.0/22 1; +43.229.36.0/22 1; +43.229.52.0/22 1; +43.229.108.0/22 1; +43.229.112.0/21 1; +43.229.120.0/22 1; +43.229.144.0/22 1; +43.229.152.0/22 1; +43.229.212.0/22 1; +43.229.228.0/22 1; +43.230.8.0/21 1; +43.230.16.0/22 1; +43.230.88.0/22 1; +43.230.112.0/21 1; +43.230.136.0/22 1; +43.230.164.0/22 1; +43.230.168.0/22 1; +43.230.181.0/24 1; +43.230.182.0/23 1; +43.230.188.0/22 1; +43.230.204.0/22 1; +43.231.0.0/21 1; +43.231.16.0/22 1; +43.231.184.0/24 1; +43.231.187.0/24 1; +43.231.196.0/22 1; +43.231.231.0/24 1; +43.239.64.0/22 1; +43.239.84.0/22 1; +43.239.136.0/22 1; +43.239.156.0/22 1; +43.239.160.0/21 1; +43.239.176.0/22 1; +43.240.12.0/22 1; +43.240.16.0/22 1; +43.240.28.0/22 1; +43.240.36.0/22 1; +43.240.48.0/22 1; +43.240.106.0/30 1; +43.240.116.0/22 1; +43.240.144.0/22 1; +43.240.236.0/22 1; +43.241.44.0/22 1; +43.241.72.0/22 1; +43.241.100.0/22 1; +43.241.152.0/21 1; +43.241.196.0/22 1; +43.241.204.0/22 1; +43.241.252.0/22 1; +43.242.32.0/22 1; +43.242.44.0/22 1; +43.242.52.0/24 1; +43.242.55.0/24 1; +43.242.109.0/24 1; +43.242.110.0/23 1; +43.242.128.0/22 1; +43.242.136.0/21 1; +43.242.172.0/22 1; +43.242.200.0/22 1; +43.242.232.0/21 1; +43.243.24.0/21 1; +43.243.32.0/22 1; +43.243.42.0/23 1; +43.243.44.0/22 1; +43.243.48.0/21 1; +43.243.64.0/21 1; +43.243.72.0/22 1; +43.243.92.0/22 1; +43.243.100.0/22 1; +43.243.104.0/21 1; +43.243.112.0/22 1; +43.243.120.0/22 1; +43.243.164.0/22 1; +43.243.168.0/23 1; +43.243.171.0/24 1; +43.243.176.0/22 1; +43.243.188.0/22 1; +43.243.192.0/22 1; +43.243.208.0/22 1; +43.243.220.0/22 1; +43.243.224.0/22 1; +43.243.240.0/22 1; +43.243.248.0/22 1; +43.245.50.0/23 1; +43.245.62.0/23 1; +43.245.152.0/24 1; +43.245.168.0/24 1; +43.245.196.0/23 1; +43.245.199.0/24 1; +43.245.220.0/22 1; +43.246.132.0/22 1; +43.246.168.0/21 1; +43.246.186.0/24 1; +43.246.204.0/22 1; +43.246.208.0/22 1; +43.246.212.0/24 1; +43.247.0.0/22 1; +43.247.132.0/22 1; +43.247.164.0/22 1; +43.248.8.0/22 1; +43.248.56.0/21 1; +43.248.64.0/22 1; +43.248.164.0/22 1; +43.248.168.0/21 1; +43.248.224.0/22 1; +43.248.248.0/22 1; +43.249.0.0/22 1; +43.249.8.0/22 1; +43.249.16.0/20 1; +43.249.36.0/23 1; +43.249.47.0/24 1; +43.249.48.0/22 1; +43.249.73.0/24 1; +43.249.76.0/22 1; +43.249.80.0/22 1; +43.249.88.0/22 1; +43.249.96.0/22 1; +43.249.124.0/22 1; +43.249.172.0/22 1; +43.249.204.0/22 1; +43.249.220.0/22 1; +43.249.248.0/24 1; +43.249.252.0/22 1; +43.250.8.0/22 1; +43.250.36.0/22 1; +43.250.56.0/21 1; +43.250.64.0/22 1; +43.250.104.0/22 1; +43.250.172.0/22 1; +43.250.180.0/22 1; +43.250.188.0/22 1; +43.251.12.0/22 1; +43.251.16.0/23 1; +43.251.20.0/22 1; +43.251.24.0/21 1; +43.251.32.0/22 1; +43.251.68.0/24 1; +43.251.71.0/24 1; +43.251.78.0/24 1; +43.251.100.0/22 1; +43.251.104.0/22 1; +43.251.112.0/21 1; +43.251.131.0/24 1; +43.251.132.0/22 1; +43.251.140.0/22 1; +43.251.148.0/24 1; +43.251.150.0/23 1; +43.251.156.0/22 1; +43.251.196.0/22 1; +43.251.224.0/21 1; +43.251.236.0/22 1; +43.251.248.0/22 1; +43.252.40.0/22 1; +43.252.52.0/22 1; +43.252.84.0/22 1; +43.252.132.0/22 1; +43.252.148.0/22 1; +43.252.160.0/20 1; +43.252.176.0/22 1; +43.252.200.0/22 1; +43.252.208.0/22 1; +43.252.228.0/22 1; +43.254.164.0/22 1; +43.254.216.0/22 1; +43.255.28.0/22 1; +43.255.36.0/22 1; +43.255.52.0/22 1; +43.255.80.0/23 1; +43.255.82.0/24 1; +43.255.104.0/21 1; +43.255.116.0/22 1; +43.255.120.0/22 1; +43.255.156.0/22 1; +43.255.168.0/22 1; +43.255.189.0/24 1; +43.255.190.0/23 1; +45.8.25.0/24 1; +45.8.28.0/22 1; +45.8.32.0/22 1; +45.9.108.0/22 1; +45.10.68.0/24 1; +45.10.172.0/22 1; +45.10.208.0/22 1; +45.10.235.0/24 1; +45.11.46.0/23 1; +45.11.76.0/22 1; +45.11.104.0/24 1; +45.11.184.0/21 1; +45.12.128.0/20 1; +45.12.144.0/21 1; +45.12.185.0/24 1; +45.12.186.0/23 1; +45.13.160.0/22 1; +45.15.8.0/22 1; +45.33.165.0/24 1; +45.40.59.0/24 1; +45.40.112.0/23 1; +45.41.139.0/24 1; +45.41.184.0/24 1; +45.43.32.0/22 1; +45.43.52.0/22 1; +45.43.56.0/24 1; +45.56.152.0/24 1; +45.60.1.0/24 1; +45.60.194.0/24 1; +45.60.197.0/24 1; +45.60.198.0/23 1; +45.60.200.0/21 1; +45.60.208.0/21 1; +45.60.216.0/22 1; +45.60.220.0/23 1; +45.60.222.0/24 1; +45.61.69.0/24 1; +45.61.83.0/24 1; +45.61.240.0/20 1; +45.64.52.0/22 1; +45.64.64.0/22 1; +45.64.74.0/23 1; +45.64.108.0/22 1; +45.64.112.0/23 1; +45.64.240.0/21 1; +45.65.32.0/22 1; +45.65.112.0/22 1; +45.66.188.0/22 1; +45.67.136.0/23 1; +45.67.138.0/24 1; +45.67.200.0/22 1; +45.74.41.0/24 1; +45.82.76.0/22 1; +45.83.236.0/23 1; +45.83.254.0/24 1; +45.84.179.0/24 1; +45.85.12.0/22 1; +45.85.168.0/22 1; +45.86.140.0/22 1; +45.86.160.0/24 1; +45.87.228.0/22 1; +45.92.158.0/23 1; +45.93.16.0/22 1; +45.93.20.0/24 1; +45.93.64.0/22 1; +45.93.96.0/22 1; +45.93.116.0/23 1; +45.95.40.0/22 1; +45.95.128.0/24 1; +45.95.226.0/23 1; +45.112.24.0/22 1; +45.112.204.0/22 1; +45.112.212.0/22 1; +45.113.0.0/22 1; +45.113.32.0/22 1; +45.113.80.0/22 1; +45.113.108.0/22 1; +45.113.112.0/22 1; +45.113.120.0/23 1; +45.113.123.0/24 1; +45.113.128.96/27 1; +45.113.128.128/26 1; +45.113.130.0/23 1; +45.113.140.0/22 1; +45.113.160.0/21 1; +45.113.194.0/23 1; +45.114.8.0/21 1; +45.114.24.0/22 1; +45.114.40.0/21 1; +45.114.100.0/22 1; +45.114.104.0/21 1; +45.114.117.0/24 1; +45.114.118.0/23 1; +45.114.124.0/22 1; +45.114.164.0/22 1; +45.114.168.0/21 1; +45.114.236.0/24 1; +45.115.25.0/24 1; +45.115.27.0/24 1; +45.115.36.0/22 1; +45.115.42.0/23 1; +45.115.124.0/22 1; +45.115.160.0/22 1; +45.115.196.0/22 1; +45.115.236.0/22 1; +45.115.240.0/22 1; +45.116.8.0/22 1; +45.116.12.0/24 1; +45.116.15.0/24 1; +45.116.40.0/22 1; +45.116.60.0/22 1; +45.116.64.0/22 1; +45.116.76.0/22 1; +45.116.80.0/22 1; +45.116.144.0/22 1; +45.116.160.0/21 1; +45.116.170.0/23 1; +45.116.172.0/22 1; +45.116.176.0/22 1; +45.116.212.0/22 1; +45.117.40.0/22 1; +45.117.56.0/21 1; +45.117.96.0/22 1; +45.117.121.0/24 1; +45.117.123.64/26 1; +45.117.123.128/25 1; +45.117.192.0/22 1; +45.118.124.0/22 1; +45.118.248.0/21 1; +45.119.0.0/21 1; +45.119.52.0/22 1; +45.119.92.0/22 1; +45.119.96.0/22 1; +45.119.116.0/22 1; +45.119.124.0/22 1; +45.120.0.0/22 1; +45.120.28.0/22 1; +45.120.44.0/22 1; +45.120.48.0/21 1; +45.120.80.0/22 1; +45.120.152.0/22 1; +45.120.156.0/24 1; +45.120.158.0/24 1; +45.120.168.0/22 1; +45.120.180.0/22 1; +45.120.184.0/22 1; +45.120.201.0/24 1; +45.120.202.0/24 1; +45.120.204.0/22 1; +45.120.208.0/22 1; +45.120.216.0/21 1; +45.121.20.0/22 1; +45.121.51.0/24 1; +45.121.56.0/22 1; +45.121.80.0/22 1; +45.121.104.0/22 1; +45.121.140.0/22 1; +45.121.144.0/24 1; +45.121.192.0/20 1; +45.121.212.0/22 1; +45.122.132.0/22 1; +45.122.136.0/22 1; +45.122.156.0/24 1; +45.123.20.0/22 1; +45.123.88.0/22 1; +45.123.100.0/22 1; +45.123.112.0/22 1; +45.123.188.0/23 1; +45.123.191.0/24 1; +45.123.192.0/21 1; +45.124.8.0/22 1; +45.124.24.0/22 1; +45.124.64.0/22 1; +45.124.72.0/22 1; +45.124.112.0/22 1; +45.124.132.0/22 1; +45.124.160.0/22 1; +45.124.252.0/24 1; +45.125.0.0/20 1; +45.125.16.0/22 1; +45.125.28.0/22 1; +45.125.32.0/22 1; +45.125.48.0/22 1; +45.125.64.0/24 1; +45.125.67.0/24 1; +45.125.104.0/22 1; +45.125.112.0/22 1; +45.125.160.0/21 1; +45.125.216.0/22 1; +45.126.0.0/21 1; +45.126.12.0/22 1; +45.126.100.0/22 1; +45.126.124.0/22 1; +45.126.137.0/24 1; +45.126.138.0/23 1; +45.126.150.0/23 1; +45.126.180.0/22 1; +45.126.212.0/22 1; +45.126.216.0/22 1; +45.126.224.0/23 1; +45.126.240.0/22 1; +45.127.0.0/22 1; +45.127.36.0/22 1; +45.127.96.0/22 1; +45.127.112.0/22 1; +45.127.124.0/22 1; +45.127.176.0/22 1; +45.127.184.0/22 1; +45.192.0.0/17 1; +45.192.160.0/19 1; +45.192.192.0/18 1; +45.193.0.0/16 1; +45.194.0.0/15 1; +45.196.64.0/18 1; +45.196.128.0/17 1; +45.197.64.0/18 1; +45.197.128.0/19 1; +45.199.0.0/17 1; +45.199.128.0/20 1; +45.199.144.0/22 1; +45.199.148.0/24 1; +45.200.0.0/16 1; +45.202.0.0/16 1; +45.203.0.0/17 1; +45.204.0.0/16 1; +45.205.0.0/18 1; +45.248.68.0/22 1; +45.248.84.0/22 1; +45.248.200.0/22 1; +45.249.60.0/22 1; +45.249.88.0/23 1; +45.249.92.0/22 1; +45.249.97.0/24 1; +45.249.98.0/23 1; +45.249.180.0/22 1; +45.249.244.0/22 1; +45.250.156.0/25 1; +45.250.156.128/27 1; +45.250.196.0/22 1; +45.251.44.0/28 1; +45.251.44.18/32 1; +45.251.44.48/29 1; +45.251.44.56/31 1; +45.251.44.93/32 1; +45.251.44.94/31 1; +45.251.44.96/28 1; +45.251.44.112/29 1; +45.251.45.0/24 1; +45.251.64.0/22 1; +45.251.104.0/21 1; +45.251.136.0/24 1; +45.251.242.0/23 1; +45.252.60.0/22 1; +45.252.185.36/31 1; +45.252.185.40/31 1; +45.252.185.80/28 1; +45.252.185.96/27 1; +45.252.185.128/27 1; +45.252.185.244/30 1; +45.252.185.248/31 1; +45.253.244.0/22 1; +45.253.248.0/21 1; +45.254.24.0/22 1; +45.254.232.0/22 1; +45.254.240.0/22 1; +45.254.255.0/24 1; +45.255.125.0/24 1; +45.255.126.0/23 1; +45.255.128.0/23 1; +46.8.96.0/21 1; +46.16.162.0/23 1; +46.16.164.0/24 1; +46.19.166.0/23 1; +46.29.24.0/22 1; +46.70.0.0/15 1; +46.149.192.0/20 1; +46.151.32.0/21 1; +46.235.37.0/24 1; +46.235.39.0/24 1; +46.243.250.0/23 1; +46.248.20.0/23 1; +46.255.29.146/31 1; +46.255.29.148/30 1; +46.255.29.152/31 1; +46.255.29.154/32 1; +47.52.0.0/16 1; +47.56.0.0/15 1; +47.75.0.0/16 1; +47.76.0.0/14 1; +47.80.0.0/13 1; +47.88.0.0/17 1; +47.89.0.0/18 1; +47.89.82.0/23 1; +47.89.100.0/23 1; +47.90.0.0/17 1; +47.91.128.0/17 1; +47.240.0.0/16 1; +47.242.0.0/15 1; +47.244.0.0/16 1; +47.246.16.0/24 1; +47.246.33.0/24 1; +47.246.34.0/23 1; +47.246.36.0/22 1; +47.246.40.0/24 1; +47.246.60.0/23 1; +47.252.128.0/17 1; +47.253.0.0/16 1; +47.254.0.0/17 1; +49.130.0.0/15 1; +49.143.232.0/23 1; +49.143.234.0/24 1; +49.213.0.0/20 1; +49.213.24.0/21 1; +49.246.230.0/23 1; +49.246.236.0/24 1; +50.7.59.0/24 1; +50.7.250.0/23 1; +50.7.255.0/24 1; +50.115.90.0/24 1; +50.116.224.0/20 1; +52.85.226.0/24 1; +52.93.35.0/24 1; +52.93.156.0/22 1; +52.94.249.144/28 1; +52.95.160.0/23 1; +52.95.162.0/24 1; +52.95.226.0/24 1; +52.101.87.0/24 1; +52.119.248.0/24 1; +52.120.157.0/24 1; +52.121.112.0/22 1; +52.124.151.0/24 1; +52.124.152.0/23 1; +52.128.224.0/19 1; +52.139.128.0/18 1; +52.144.4.0/24 1; +52.144.224.192/26 1; +52.144.225.0/26 1; +52.175.0.0/17 1; +52.184.0.0/17 1; +52.222.211.0/24 1; +52.222.223.0/24 1; +52.222.249.0/24 1; +52.222.250.0/23 1; +52.222.252.0/22 1; +52.239.224.0/24 1; +52.245.56.0/22 1; +52.246.128.0/20 1; +54.46.0.0/17 1; +54.182.170.0/24 1; +54.192.16.0/21 1; +54.230.84.0/22 1; +54.239.1.80/28 1; +54.239.129.0/24 1; +54.239.190.0/23 1; +54.239.218.0/24 1; +54.240.17.0/24 1; +54.240.160.0/23 1; +54.240.241.0/24 1; +57.96.8.0/21 1; +57.96.24.0/21 1; +57.96.32.0/19 1; +58.2.128.0/19 1; +58.2.192.0/19 1; +58.64.128.0/17 1; +58.65.249.0/24 1; +58.82.192.0/21 1; +58.82.200.0/22 1; +58.82.204.0/24 1; +58.82.207.0/24 1; +58.82.208.0/20 1; +58.82.224.0/19 1; +58.84.5.0/24 1; +58.84.6.0/23 1; +58.84.52.0/22 1; +58.96.160.0/19 1; +58.145.192.0/19 1; +58.145.224.0/23 1; +58.145.240.0/20 1; +58.152.0.0/15 1; +58.176.0.0/15 1; +59.43.181.184/29 1; +59.43.248.238/31 1; +59.43.248.250/31 1; +59.43.248.252/30 1; +59.43.249.0/28 1; +59.43.249.16/29 1; +59.43.249.196/31 1; +59.43.249.202/31 1; +59.43.250.16/30 1; +59.43.250.22/31 1; +59.43.250.24/29 1; +59.43.250.38/31 1; +59.43.250.44/30 1; +59.43.250.54/31 1; +59.43.250.58/31 1; +59.43.250.60/30 1; +59.43.250.64/29 1; +59.43.250.82/31 1; +59.43.250.84/30 1; +59.83.64.0/18 1; +59.83.128.0/23 1; +59.83.255.0/24 1; +59.148.0.0/15 1; +59.151.128.0/22 1; +59.152.44.0/22 1; +59.152.48.0/22 1; +59.152.192.0/18 1; +59.153.52.0/22 1; +59.153.56.0/21 1; +59.153.116.0/22 1; +59.153.148.0/22 1; +59.153.196.0/22 1; +59.165.192.0/21 1; +59.188.0.0/16 1; +59.191.240.0/20 1; +60.254.168.0/22 1; +60.254.172.0/23 1; +60.254.180.0/22 1; +61.4.0.0/18 1; +61.4.80.0/24 1; +61.4.112.0/20 1; +61.8.35.0/24 1; +61.8.36.0/24 1; +61.8.38.0/23 1; +61.8.40.0/22 1; +61.8.44.0/24 1; +61.8.45.98/31 1; +61.8.47.0/24 1; +61.8.48.0/21 1; +61.8.56.0/23 1; +61.8.58.0/24 1; +61.8.59.0/26 1; +61.8.59.64/27 1; +61.8.59.96/28 1; +61.8.59.112/30 1; +61.8.59.116/31 1; +61.8.59.224/30 1; +61.8.59.248/30 1; +61.8.60.0/22 1; +61.10.0.0/16 1; +61.14.2.0/24 1; +61.14.4.0/22 1; +61.14.24.0/22 1; +61.14.52.0/24 1; +61.14.128.0/22 1; +61.14.134.0/23 1; +61.14.136.0/24 1; +61.14.144.0/24 1; +61.14.148.64/26 1; +61.14.148.128/25 1; +61.14.156.0/29 1; +61.14.156.8/32 1; +61.14.156.11/32 1; +61.14.156.12/30 1; +61.14.156.16/28 1; +61.14.156.32/27 1; +61.14.156.64/30 1; +61.14.156.68/31 1; +61.14.156.70/32 1; +61.14.156.72/29 1; +61.14.156.80/28 1; +61.14.156.96/27 1; +61.14.156.128/25 1; +61.14.157.0/25 1; +61.14.157.128/26 1; +61.14.157.192/31 1; +61.14.157.208/30 1; +61.14.157.214/31 1; +61.14.157.216/29 1; +61.14.157.224/31 1; +61.14.157.232/29 1; +61.14.157.240/28 1; +61.14.158.0/23 1; +61.14.161.0/24 1; +61.14.163.0/24 1; +61.14.174.0/23 1; +61.14.178.0/24 1; +61.14.191.160/27 1; +61.14.191.208/28 1; +61.14.191.224/27 1; +61.14.200.0/22 1; +61.14.252.0/22 1; +61.15.0.0/16 1; +61.18.0.0/16 1; +61.28.195.0/24 1; +61.28.196.0/24 1; +61.28.212.0/24 1; +61.29.240.0/20 1; +61.47.0.0/22 1; +61.47.4.0/23 1; +61.47.44.0/22 1; +61.47.48.0/21 1; +61.47.56.0/24 1; +61.87.144.0/20 1; +61.92.0.0/15 1; +61.238.0.0/15 1; +61.244.0.0/16 1; +62.25.128.0/20 1; +62.25.251.0/24 1; +62.25.252.0/22 1; +62.44.36.0/23 1; +62.60.128.0/17 1; +62.112.28.0/24 1; +62.115.40.72/30 1; +62.115.47.16/30 1; +62.115.51.112/30 1; +62.115.52.148/30 1; +62.115.54.92/30 1; +62.115.54.96/30 1; +62.115.56.88/30 1; +62.115.56.92/32 1; +62.115.56.148/30 1; +62.115.58.240/30 1; +62.115.138.119/32 1; +62.115.138.203/32 1; +62.115.139.179/32 1; +62.115.143.250/31 1; +62.182.32.0/22 1; +62.192.188.0/22 1; +62.216.92.0/23 1; +63.140.0.0/20 1; +63.142.4.0/24 1; +63.148.126.0/24 1; +63.150.128.0/21 1; +63.150.136.0/23 1; +63.150.138.0/24 1; +63.150.139.0/25 1; +63.150.139.128/27 1; +63.150.139.160/28 1; +63.150.139.180/30 1; +63.150.139.184/29 1; +63.150.139.192/26 1; +63.150.142.0/23 1; +63.159.142.0/24 1; +63.216.56.0/21 1; +63.216.142.0/23 1; +63.216.148.0/23 1; +63.216.162.0/24 1; +63.216.168.0/21 1; +63.216.176.0/24 1; +63.217.16.0/23 1; +63.217.40.0/21 1; +63.217.72.0/22 1; +63.217.80.0/21 1; +63.217.237.0/24 1; +63.218.0.0/21 1; +63.218.8.0/22 1; +63.218.18.0/23 1; +63.218.43.0/24 1; +63.218.56.0/21 1; +63.218.76.0/23 1; +63.218.78.0/27 1; +63.218.78.32/28 1; +63.218.78.48/29 1; +63.218.78.56/30 1; +63.218.114.0/23 1; +63.218.126.0/23 1; +63.218.128.0/21 1; +63.218.136.0/22 1; +63.218.140.0/23 1; +63.218.144.0/23 1; +63.218.158.0/23 1; +63.218.174.0/23 1; +63.218.190.0/23 1; +63.218.204.0/23 1; +63.218.210.0/23 1; +63.218.212.0/22 1; +63.218.240.0/23 1; +63.218.252.0/22 1; +63.219.0.0/20 1; +63.219.16.0/22 1; +63.220.0.0/21 1; +63.221.136.0/21 1; +63.221.144.0/20 1; +63.222.7.0/24 1; +63.222.16.0/21 1; +63.222.45.0/24 1; +63.223.15.0/24 1; +63.223.16.0/23 1; +63.223.20.0/24 1; +63.223.29.0/24 1; +63.223.30.0/23 1; +63.223.44.0/24 1; +63.223.50.0/24 1; +63.232.5.156/30 1; +63.234.237.0/24 1; +63.243.252.0/24 1; +63.249.160.0/23 1; +63.249.162.0/24 1; +64.4.168.0/24 1; +64.6.172.0/23 1; +64.7.2.0/23 1; +64.7.4.0/22 1; +64.7.8.0/23 1; +64.7.12.0/22 1; +64.7.16.0/21 1; +64.7.24.0/24 1; +64.57.176.0/20 1; +64.66.156.0/24 1; +64.69.116.0/22 1; +64.69.122.0/23 1; +64.69.124.0/23 1; +64.69.126.0/24 1; +64.81.189.0/24 1; +64.81.190.0/24 1; +64.104.96.0/19 1; +64.104.160.0/19 1; +64.120.88.0/22 1; +64.120.112.0/21 1; +64.120.120.0/23 1; +64.125.25.244/30 1; +64.138.2.0/23 1; +64.188.56.0/21 1; +64.208.7.80/30 1; +64.208.7.128/30 1; +64.208.110.216/30 1; +64.208.170.184/30 1; +64.208.214.0/24 1; +64.209.95.16/30 1; +64.209.240.0/20 1; +64.210.14.120/30 1; +64.211.60.16/30 1; +64.211.111.204/30 1; +64.212.32.216/30 1; +64.212.48.0/24 1; +64.214.60.108/30 1; +64.214.60.112/30 1; +64.214.61.108/30 1; +64.214.61.120/30 1; +64.214.62.208/30 1; +64.214.63.156/30 1; +64.214.116.0/23 1; +64.215.27.140/30 1; +64.234.235.0/24 1; +64.234.236.0/22 1; +64.235.227.0/24 1; +64.235.228.0/24 1; +64.235.232.0/22 1; +64.235.249.0/24 1; +64.235.252.0/24 1; +64.235.253.0/27 1; +64.235.253.32/28 1; +64.235.253.48/29 1; +64.235.253.96/27 1; +64.235.253.128/30 1; +64.235.254.0/23 1; +64.252.139.0/24 1; +64.252.149.0/24 1; +64.253.80.0/20 1; +64.254.121.0/24 1; +65.18.195.0/24 1; +65.49.108.40/29 1; +65.49.108.48/28 1; +65.49.108.64/26 1; +65.49.108.128/25 1; +65.49.109.0/24 1; +65.49.110.0/23 1; +65.49.144.0/21 1; +65.52.160.0/19 1; +65.54.201.0/24 1; +65.55.88.0/24 1; +65.100.229.0/24 1; +65.181.64.0/19 1; +65.181.128.0/18 1; +66.28.1.15/32 1; +66.70.92.0/22 1; +66.70.107.0/24 1; +66.92.44.0/22 1; +66.92.178.0/23 1; +66.92.180.0/22 1; +66.92.184.0/21 1; +66.92.213.0/24 1; +66.92.214.0/24 1; +66.92.222.0/23 1; +66.92.244.0/23 1; +66.92.248.0/21 1; +66.93.44.0/22 1; +66.93.48.0/20 1; +66.93.64.0/21 1; +66.93.72.0/24 1; +66.93.81.0/24 1; +66.93.128.0/20 1; +66.93.152.0/21 1; +66.93.160.0/22 1; +66.93.168.0/23 1; +66.117.24.0/22 1; +66.119.144.192/26 1; +66.119.156.0/24 1; +66.119.157.0/25 1; +66.133.80.0/23 1; +66.133.83.0/24 1; +66.133.84.0/22 1; +66.133.88.0/21 1; +66.159.199.0/24 1; +66.198.34.0/24 1; +66.203.144.0/20 1; +66.232.0.0/20 1; +66.249.94.120/31 1; +66.249.94.223/32 1; +66.249.94.224/27 1; +66.249.95.44/31 1; +66.249.95.128/28 1; +66.249.95.144/30 1; +66.249.95.148/32 1; +66.249.95.254/31 1; +66.253.3.0/24 1; +66.253.8.0/23 1; +66.253.10.0/24 1; +66.253.84.0/22 1; +67.14.16.0/27 1; +67.14.16.32/29 1; +67.14.16.40/30 1; +67.14.16.44/31 1; +67.14.16.136/29 1; +67.14.16.144/28 1; +67.14.16.160/27 1; +67.14.16.192/30 1; +67.14.16.240/28 1; +67.14.17.92/30 1; +67.14.17.96/27 1; +67.14.17.128/25 1; +67.14.18.0/25 1; +67.14.18.128/30 1; +67.14.18.132/31 1; +67.17.157.108/30 1; +67.17.159.252/30 1; +67.17.160.224/30 1; +67.17.160.232/30 1; +67.17.168.172/30 1; +67.17.197.20/30 1; +67.17.197.208/30 1; +67.17.211.48/30 1; +67.17.211.248/30 1; +67.17.212.132/30 1; +67.17.212.228/30 1; +67.17.212.232/29 1; +67.17.212.240/30 1; +67.24.8.0/21 1; +67.27.32.0/20 1; +67.102.176.0/21 1; +67.131.91.0/24 1; +67.199.130.0/23 1; +67.199.145.0/24 1; +67.200.58.0/24 1; +67.211.64.0/20 1; +67.215.82.0/24 1; +67.220.140.0/23 1; +68.64.176.0/20 1; +68.164.16.0/22 1; +68.164.20.0/23 1; +68.164.24.0/21 1; +68.167.64.0/20 1; +68.167.80.0/21 1; +68.167.144.0/21 1; +68.167.182.0/23 1; +68.168.16.0/24 1; +69.17.0.0/23 1; +69.17.16.0/22 1; +69.17.64.0/21 1; +69.33.114.0/23 1; +69.94.99.0/24 1; +69.94.100.0/22 1; +69.94.104.0/21 1; +69.107.7.16/29 1; +69.107.12.64/28 1; +69.160.168.0/21 1; +69.165.64.0/20 1; +69.166.208.0/23 1; +69.166.222.0/23 1; +69.166.224.0/22 1; +69.168.235.0/24 1; +69.171.64.0/22 1; +69.172.64.0/19 1; +69.176.80.0/20 1; +69.191.182.0/23 1; +69.191.207.0/24 1; +69.192.8.0/21 1; +69.192.217.0/24 1; +69.192.218.0/24 1; +69.192.220.0/22 1; +69.194.160.0/20 1; +70.36.96.0/19 1; +70.36.128.0/21 1; +70.36.136.0/23 1; +70.105.140.0/23 1; +71.152.95.0/24 1; +72.14.194.8/31 1; +72.14.194.10/32 1; +72.14.194.16/30 1; +72.14.194.26/31 1; +72.14.194.40/29 1; +72.14.194.48/28 1; +72.14.194.64/28 1; +72.14.194.140/30 1; +72.14.194.174/31 1; +72.14.194.214/31 1; +72.14.194.220/31 1; +72.14.194.248/31 1; +72.14.195.36/30 1; +72.14.195.74/31 1; +72.14.195.150/31 1; +72.14.195.168/31 1; +72.14.196.50/31 1; +72.14.196.144/30 1; +72.14.196.150/31 1; +72.14.196.156/30 1; +72.14.197.136/31 1; +72.14.197.156/31 1; +72.14.197.174/31 1; +72.14.198.12/30 1; +72.14.198.76/31 1; +72.14.198.116/30 1; +72.14.198.120/30 1; +72.14.198.124/31 1; +72.14.198.184/29 1; +72.14.198.192/30 1; +72.14.198.224/30 1; +72.14.198.248/30 1; +72.14.208.0/25 1; +72.14.208.128/28 1; +72.14.208.172/31 1; +72.14.208.216/30 1; +72.14.208.224/30 1; +72.14.209.102/31 1; +72.14.209.134/31 1; +72.14.209.148/31 1; +72.14.209.232/29 1; +72.14.210.12/30 1; +72.14.210.48/29 1; +72.14.210.124/31 1; +72.14.210.232/31 1; +72.14.210.244/30 1; +72.14.210.248/31 1; +72.14.211.120/31 1; +72.14.211.126/31 1; +72.14.211.156/31 1; +72.14.211.164/31 1; +72.14.211.186/31 1; +72.14.211.188/31 1; +72.14.211.248/31 1; +72.14.212.8/31 1; +72.14.212.16/30 1; +72.14.212.20/31 1; +72.14.212.64/31 1; +72.14.212.108/30 1; +72.14.212.202/31 1; +72.14.212.208/30 1; +72.14.212.218/31 1; +72.14.213.10/31 1; +72.14.213.14/31 1; +72.14.213.72/30 1; +72.14.213.88/31 1; +72.14.213.98/31 1; +72.14.213.114/31 1; +72.14.213.140/30 1; +72.14.213.186/31 1; +72.14.213.210/31 1; +72.14.214.12/31 1; +72.14.214.84/30 1; +72.14.215.28/30 1; +72.14.215.36/31 1; +72.14.215.48/31 1; +72.14.215.86/31 1; +72.14.215.120/30 1; +72.14.215.128/30 1; +72.14.215.150/31 1; +72.14.216.76/30 1; +72.14.216.80/28 1; +72.14.216.96/28 1; +72.14.216.144/31 1; +72.14.216.180/31 1; +72.14.218.46/31 1; +72.14.218.122/31 1; +72.14.218.144/31 1; +72.14.218.160/31 1; +72.14.218.238/31 1; +72.14.219.16/31 1; +72.14.219.36/31 1; +72.14.219.121/32 1; +72.14.219.122/31 1; +72.14.219.148/31 1; +72.14.219.198/31 1; +72.14.219.212/31 1; +72.14.220.32/31 1; +72.14.220.48/30 1; +72.14.220.148/31 1; +72.14.220.220/31 1; +72.14.221.124/30 1; +72.14.221.128/29 1; +72.14.221.136/30 1; +72.14.221.176/30 1; +72.14.222.8/29 1; +72.14.222.34/31 1; +72.14.222.196/30 1; +72.14.222.200/30 1; +72.14.222.204/31 1; +72.14.222.236/31 1; +72.14.222.254/31 1; +72.14.223.150/31 1; +72.14.223.232/31 1; +72.14.231.16/29 1; +72.14.231.104/30 1; +72.14.233.0/32 1; +72.14.233.2/32 1; +72.14.233.124/31 1; +72.14.233.168/31 1; +72.14.237.64/30 1; +72.14.237.122/31 1; +72.14.237.170/31 1; +72.14.237.240/28 1; +72.14.238.247/32 1; +72.14.238.252/32 1; +72.14.239.92/30 1; +72.14.239.212/32 1; +72.14.254.131/32 1; +72.14.254.136/32 1; +72.14.254.191/32 1; +72.14.255.180/32 1; +72.14.255.182/32 1; +72.35.252.0/23 1; +72.52.16.0/22 1; +72.52.32.0/22 1; +72.163.224.0/20 1; +72.163.240.0/21 1; +72.163.252.0/22 1; +72.246.47.0/24 1; +72.247.116.0/22 1; +72.247.241.0/24 1; +72.255.224.0/19 1; +74.0.54.0/23 1; +74.0.56.0/21 1; +74.1.80.0/20 1; +74.2.24.0/21 1; +74.50.6.0/23 1; +74.50.8.0/21 1; +74.50.16.0/21 1; +74.63.27.0/24 1; +74.80.115.0/24 1; +74.81.64.0/22 1; +74.82.46.36/30 1; +74.82.46.40/29 1; +74.82.46.160/30 1; +74.82.46.204/30 1; +74.82.46.208/28 1; +74.82.46.224/29 1; +74.82.48.0/22 1; +74.112.152.0/21 1; +74.114.32.0/22 1; +74.114.168.0/22 1; +74.118.124.0/22 1; +74.119.36.0/24 1; +74.120.16.0/22 1; +74.122.24.0/23 1; +74.123.98.0/23 1; +74.123.103.0/24 1; +74.125.10.80/28 1; +74.125.10.96/27 1; +74.125.22.0/24 1; +74.125.32.34/31 1; +74.125.32.66/31 1; +74.125.32.76/31 1; +74.125.32.112/31 1; +74.125.48.56/30 1; +74.125.48.60/31 1; +74.125.48.80/30 1; +74.125.48.116/30 1; +74.125.48.142/32 1; +74.125.49.8/31 1; +74.125.49.160/29 1; +74.125.49.192/32 1; +74.125.50.0/32 1; +74.125.51.22/31 1; +74.125.51.161/32 1; +74.125.51.162/32 1; +74.125.52.196/31 1; +74.125.96.32/27 1; +74.125.96.64/27 1; +74.125.102.64/26 1; +74.125.106.0/27 1; +74.125.119.116/31 1; +74.125.119.136/31 1; +74.125.119.234/31 1; +74.125.171.255/32 1; +74.125.251.69/32 1; +74.125.251.176/31 1; +74.125.252.69/32 1; +74.125.252.76/30 1; +74.125.252.80/32 1; +74.125.252.88/31 1; +74.125.252.186/32 1; +74.220.105.0/24 1; +75.96.164.0/22 1; +77.81.92.0/22 1; +77.83.159.0/24 1; +77.246.220.0/23 1; +78.31.248.0/22 1; +78.142.228.0/22 1; +78.156.64.0/19 1; +79.98.244.0/22 1; +79.141.168.0/23 1; +79.143.53.0/24 1; +80.77.0.0/21 1; +80.77.8.0/22 1; +80.77.14.0/24 1; +80.84.18.74/32 1; +80.84.29.0/24 1; +80.126.2.0/24 1; +80.240.96.0/21 1; +80.240.104.0/23 1; +80.245.104.0/22 1; +81.17.160.0/20 1; +81.18.48.0/24 1; +81.22.36.0/24 1; +81.28.252.0/22 1; +81.31.18.0/23 1; +81.31.20.0/23 1; +81.201.95.212/30 1; +81.201.95.216/29 1; +81.201.95.224/28 1; +81.201.95.240/29 1; +82.24.57.0/24 1; +82.24.110.0/24 1; +82.24.144.0/23 1; +82.24.174.0/24 1; +82.25.143.0/24 1; +82.25.148.0/22 1; +82.25.164.0/22 1; +82.27.92.0/22 1; +82.27.116.0/22 1; +82.27.123.0/24 1; +82.27.160.0/21 1; +82.29.48.0/24 1; +82.29.88.0/22 1; +82.29.103.0/24 1; +82.38.76.0/22 1; +82.38.98.0/24 1; +82.38.104.0/21 1; +82.38.116.0/22 1; +82.38.120.0/22 1; +82.38.132.0/22 1; +82.102.29.0/28 1; +82.102.29.16/29 1; +82.102.29.24/30 1; +82.102.29.28/31 1; +82.150.104.0/23 1; +82.150.114.0/23 1; +82.163.168.0/21 1; +82.163.224.0/21 1; +83.97.112.0/22 1; +83.147.0.0/19 1; +83.147.32.0/20 1; +83.147.48.0/21 1; +83.147.56.0/22 1; +83.147.60.0/23 1; +83.147.62.0/24 1; +83.150.224.0/22 1; +83.231.145.0/24 1; +84.17.37.0/24 1; +84.17.56.0/23 1; +84.39.118.0/23 1; +84.54.0.0/22 1; +84.252.100.0/22 1; +85.8.164.0/22 1; +85.8.180.0/22 1; +85.92.102.0/23 1; +85.92.112.0/22 1; +85.117.241.0/24 1; +85.119.53.0/24 1; +85.184.245.0/24 1; +85.203.47.0/24 1; +85.208.56.0/22 1; +85.208.72.0/24 1; +85.208.104.0/22 1; +85.208.152.0/23 1; +85.236.136.0/21 1; +85.239.152.0/21 1; +86.106.77.0/24 1; +86.107.104.32/27 1; +86.107.104.64/26 1; +86.107.104.128/25 1; +87.237.220.0/23 1; +87.245.233.242/32 1; +87.245.235.248/30 1; +88.218.144.0/22 1; +88.218.192.0/22 1; +89.19.46.0/23 1; +89.30.79.0/29 1; +89.30.79.64/26 1; +89.30.79.128/25 1; +89.30.87.0/24 1; +89.38.212.0/22 1; +89.41.184.0/22 1; +89.44.212.56/29 1; +89.44.212.64/30 1; +89.44.212.68/31 1; +89.44.212.71/32 1; +89.44.240.0/22 1; +89.45.6.0/24 1; +89.47.15.0/24 1; +89.149.132.64/30 1; +89.149.133.136/31 1; +89.149.135.12/30 1; +89.149.135.16/30 1; +89.149.147.252/30 1; +89.149.177.160/30 1; +89.149.179.136/30 1; +89.149.184.100/31 1; +89.149.186.4/30 1; +89.149.186.8/29 1; +89.149.186.66/31 1; +89.149.186.120/30 1; +89.150.192.0/18 1; +89.207.224.244/30 1; +89.207.224.248/32 1; +89.207.228.38/32 1; +89.207.228.58/32 1; +91.103.120.0/21 1; +91.109.40.0/21 1; +91.132.48.0/22 1; +91.148.135.0/24 1; +91.193.100.0/22 1; +91.197.141.0/24 1; +91.198.24.0/24 1; +91.199.84.0/24 1; +91.205.228.0/24 1; +91.206.2.0/24 1; +91.208.73.0/24 1; +91.208.104.0/24 1; +91.208.109.0/24 1; +91.208.227.0/24 1; +91.208.236.0/24 1; +91.208.240.0/24 1; +91.208.245.0/24 1; +91.208.246.0/24 1; +91.209.182.0/24 1; +91.212.120.0/24 1; +91.213.174.0/24 1; +91.213.186.0/24 1; +91.213.189.0/24 1; +91.213.200.0/24 1; +91.217.135.0/24 1; +91.217.162.0/24 1; +91.217.167.0/24 1; +91.229.132.0/22 1; +91.229.202.0/23 1; +91.233.183.0/24 1; +91.233.198.0/24 1; +91.238.71.0/24 1; +91.238.114.0/24 1; +91.238.203.0/24 1; +91.238.207.0/24 1; +91.238.213.0/24 1; +91.240.118.0/24 1; +91.240.128.0/24 1; +91.240.163.0/24 1; +91.240.175.0/24 1; +91.241.19.0/24 1; +91.244.196.0/22 1; +92.61.228.0/24 1; +92.61.230.0/23 1; +92.118.144.0/22 1; +92.118.162.0/24 1; +92.118.189.0/24 1; +92.118.190.0/23 1; +92.119.12.0/22 1; +92.122.123.0/24 1; +92.122.184.0/24 1; +92.223.52.0/23 1; +92.223.76.0/24 1; +92.223.90.0/24 1; +93.90.74.0/23 1; +93.93.48.0/24 1; +93.93.100.64/26 1; +93.93.101.176/32 1; +93.93.101.178/31 1; +93.93.101.180/30 1; +93.93.101.184/30 1; +93.93.101.196/30 1; +93.93.101.220/30 1; +93.93.101.227/32 1; +93.93.101.233/32 1; +93.93.240.0/22 1; +93.177.76.0/22 1; +93.179.124.0/22 1; +93.187.128.0/22 1; +93.190.246.0/23 1; +94.45.160.0/19 1; +94.45.192.0/19 1; +94.103.4.0/22 1; +94.140.20.0/22 1; +94.188.201.0/24 1; +94.190.208.0/20 1; +94.190.224.0/20 1; +94.229.208.0/20 1; +94.244.128.0/18 1; +95.40.0.0/15 1; +95.100.212.0/24 1; +95.128.195.0/24 1; +95.128.196.0/24 1; +95.155.128.0/18 1; +95.214.78.0/24 1; +96.7.54.0/23 1; +96.7.96.0/20 1; +96.9.180.0/23 1; +96.9.182.0/24 1; +96.16.104.0/22 1; +96.16.168.0/22 1; +96.17.188.0/22 1; +96.43.96.0/20 1; +98.124.140.0/24 1; +98.158.109.0/24 1; +98.158.110.0/23 1; +98.159.32.0/24 1; +98.159.96.0/23 1; +98.159.98.0/24 1; +98.159.103.0/24 1; +98.159.104.0/23 1; +98.159.106.0/24 1; +98.159.109.0/24 1; +99.77.142.0/24 1; +99.77.241.0/24 1; +99.83.96.0/24 1; +99.150.88.0/21 1; +100.42.56.0/24 1; +101.1.4.0/22 1; +101.1.16.0/20 1; +101.32.0.0/18 1; +101.32.64.0/20 1; +101.32.176.0/20 1; +101.32.192.0/20 1; +101.36.80.0/23 1; +101.36.82.0/24 1; +101.36.100.0/23 1; +101.36.102.0/24 1; +101.36.106.0/23 1; +101.36.108.0/22 1; +101.36.112.0/20 1; +101.78.128.0/17 1; +101.101.96.0/22 1; +101.167.176.0/22 1; +101.167.188.0/22 1; +101.167.192.0/20 1; +101.167.208.0/22 1; +101.198.192.0/24 1; +101.198.195.0/24 1; +101.198.204.0/22 1; +101.198.208.0/20 1; +101.234.30.0/23 1; +102.141.200.0/22 1; +102.164.48.0/22 1; +102.165.43.0/24 1; +103.1.12.0/22 1; +103.1.16.0/22 1; +103.1.32.0/21 1; +103.1.40.0/24 1; +103.1.42.0/23 1; +103.1.44.0/24 1; +103.1.46.0/23 1; +103.1.48.0/22 1; +103.1.65.0/24 1; +103.1.66.0/23 1; +103.1.152.0/21 1; +103.1.224.0/22 1; +103.3.24.0/22 1; +103.4.20.0/22 1; +103.4.24.0/22 1; +103.4.112.0/23 1; +103.4.224.0/22 1; +103.4.244.0/23 1; +103.4.246.0/24 1; +103.5.13.0/24 1; +103.5.14.0/24 1; +103.5.53.0/24 1; +103.5.54.0/23 1; +103.5.66.0/23 1; +103.5.79.0/24 1; +103.5.149.0/24 1; +103.5.198.0/24 1; +103.5.220.0/22 1; +103.5.248.0/23 1; +103.5.250.0/24 1; +103.6.4.0/22 1; +103.6.48.0/22 1; +103.6.84.0/23 1; +103.6.86.0/24 1; +103.6.108.0/22 1; +103.6.128.0/22 1; +103.6.136.0/21 1; +103.6.152.0/22 1; +103.6.160.0/24 1; +103.6.166.0/24 1; +103.6.176.0/22 1; +103.6.182.0/23 1; +103.6.192.0/22 1; +103.6.228.0/22 1; +103.6.248.0/22 1; +103.7.4.0/22 1; +103.7.28.0/22 1; +103.7.54.0/23 1; +103.7.68.0/22 1; +103.7.162.0/23 1; +103.7.240.0/22 1; +103.8.106.0/24 1; +103.8.191.0/24 1; +103.8.215.0/24 1; +103.8.240.0/22 1; +103.9.148.0/24 1; +103.9.150.0/24 1; +103.9.192.0/22 1; +103.9.244.0/22 1; +103.10.12.0/22 1; +103.10.196.0/22 1; +103.11.36.0/24 1; +103.11.38.0/23 1; +103.11.72.0/23 1; +103.11.88.0/21 1; +103.11.100.0/22 1; +103.11.104.0/23 1; +103.11.108.0/22 1; +103.11.212.0/24 1; +103.11.214.0/24 1; +103.11.228.0/22 1; +103.11.244.0/22 1; +103.12.48.0/22 1; +103.12.68.0/22 1; +103.12.76.0/22 1; +103.12.92.0/22 1; +103.12.148.0/22 1; +103.13.47.0/24 1; +103.13.48.0/22 1; +103.13.72.0/23 1; +103.13.176.0/23 1; +103.13.232.0/22 1; +103.13.240.0/24 1; +103.13.243.0/24 1; +103.14.32.0/22 1; +103.14.78.0/24 1; +103.14.100.0/22 1; +103.14.112.0/21 1; +103.14.144.0/22 1; +103.14.200.0/23 1; +103.14.202.0/24 1; +103.14.220.0/24 1; +103.14.230.0/24 1; +103.15.20.0/22 1; +103.15.24.0/24 1; +103.15.26.0/23 1; +103.15.28.0/22 1; +103.15.38.0/24 1; +103.15.84.0/22 1; +103.15.104.0/22 1; +103.15.120.0/22 1; +103.15.132.0/22 1; +103.15.139.0/24 1; +103.15.158.0/24 1; +103.15.180.0/23 1; +103.15.183.0/24 1; +103.15.192.0/21 1; +103.15.216.0/21 1; +103.15.224.0/23 1; +103.16.26.0/23 1; +103.16.116.0/22 1; +103.16.228.0/22 1; +103.16.252.0/22 1; +103.17.4.0/22 1; +103.17.28.0/22 1; +103.17.33.0/24 1; +103.17.34.0/23 1; +103.17.72.0/22 1; +103.17.92.0/24 1; +103.17.94.0/23 1; +103.17.116.0/22 1; +103.17.240.0/27 1; +103.17.241.0/25 1; +103.17.242.0/24 1; +103.18.182.0/23 1; +103.19.24.0/22 1; +103.19.38.0/24 1; +103.19.188.0/22 1; +103.19.219.0/24 1; +103.19.236.0/22 1; +103.20.35.0/24 1; +103.20.44.0/22 1; +103.20.60.0/22 1; +103.20.93.0/24 1; +103.20.95.0/24 1; +103.20.165.0/24 1; +103.20.172.0/22 1; +103.20.192.0/22 1; +103.20.220.0/22 1; +103.20.236.0/22 1; +103.21.8.0/22 1; +103.21.28.0/22 1; +103.21.88.0/22 1; +103.21.136.0/22 1; +103.21.220.0/22 1; +103.21.245.0/24 1; +103.22.96.0/22 1; +103.22.128.0/22 1; +103.22.203.0/24 1; +103.23.44.0/24 1; +103.23.46.0/23 1; +103.23.67.0/24 1; +103.23.68.0/23 1; +103.23.99.0/24 1; +103.23.148.0/23 1; +103.23.150.0/24 1; +103.23.172.0/23 1; +103.23.192.0/22 1; +103.24.0.0/22 1; +103.24.92.0/22 1; +103.24.204.0/22 1; +103.24.216.0/21 1; +103.24.224.0/22 1; +103.24.248.0/22 1; +103.25.8.0/23 1; +103.25.60.0/24 1; +103.25.63.0/24 1; +103.25.72.0/22 1; +103.25.104.0/22 1; +103.25.252.0/22 1; +103.26.92.0/23 1; +103.26.94.0/24 1; +103.26.120.0/22 1; +103.26.132.0/22 1; +103.26.144.0/22 1; +103.27.0.0/24 1; +103.27.76.0/22 1; +103.27.108.0/22 1; +103.27.124.0/22 1; +103.27.176.0/22 1; +103.27.208.0/21 1; +103.28.44.0/22 1; +103.28.54.0/23 1; +103.28.68.0/23 1; +103.28.76.0/22 1; +103.28.88.0/23 1; +103.29.12.0/22 1; +103.29.23.0/29 1; +103.29.72.0/22 1; +103.29.92.0/22 1; +103.29.140.0/22 1; +103.30.4.0/22 1; +103.30.24.0/22 1; +103.30.40.0/22 1; +103.30.68.0/22 1; +103.30.76.0/22 1; +103.30.100.0/22 1; +103.30.200.0/23 1; +103.30.212.0/23 1; +103.30.234.0/23 1; +103.31.8.0/22 1; +103.31.16.0/21 1; +103.31.27.0/24 1; +103.31.56.0/22 1; +103.31.73.0/24 1; +103.31.74.0/23 1; +103.31.98.0/23 1; +103.31.136.0/22 1; +103.31.220.0/22 1; +103.31.240.0/22 1; +103.35.72.0/22 1; +103.35.84.0/22 1; +103.35.116.0/22 1; +103.35.144.0/21 1; +103.35.172.0/22 1; +103.35.184.0/22 1; +103.35.200.0/22 1; +103.35.250.0/24 1; +103.35.252.0/22 1; +103.36.20.0/22 1; +103.36.52.0/22 1; +103.36.70.0/24 1; +103.36.112.0/22 1; +103.37.0.0/21 1; +103.37.40.0/22 1; +103.37.60.0/22 1; +103.37.84.0/22 1; +103.37.124.0/22 1; +103.37.184.0/22 1; +103.37.192.0/22 1; +103.37.232.0/22 1; +103.37.248.0/22 1; +103.38.23.0/24 1; +103.38.28.0/22 1; +103.38.64.0/22 1; +103.38.80.0/22 1; +103.38.90.0/23 1; +103.38.104.0/22 1; +103.38.144.0/24 1; +103.38.156.0/22 1; +103.38.160.0/22 1; +103.38.168.0/22 1; +103.38.254.0/23 1; +103.39.16.0/22 1; +103.39.24.0/22 1; +103.39.56.0/22 1; +103.39.76.0/22 1; +103.39.108.0/22 1; +103.39.144.0/21 1; +103.39.152.0/22 1; +103.40.8.0/22 1; +103.40.76.0/22 1; +103.40.84.0/22 1; +103.40.100.0/22 1; +103.40.110.0/23 1; +103.40.112.0/22 1; +103.40.152.0/22 1; +103.40.160.0/22 1; +103.40.172.0/22 1; +103.40.208.0/22 1; +103.41.4.0/22 1; +103.41.16.0/22 1; +103.41.44.0/22 1; +103.41.48.0/22 1; +103.41.64.0/22 1; +103.41.80.0/22 1; +103.41.104.0/22 1; +103.41.116.0/22 1; +103.41.124.0/22 1; +103.41.128.0/24 1; +103.41.130.0/24 1; +103.41.132.0/22 1; +103.41.180.0/22 1; +103.41.184.0/22 1; +103.41.248.0/22 1; +103.42.12.0/22 1; +103.42.18.0/24 1; +103.42.28.0/22 1; +103.42.36.0/22 1; +103.42.100.0/22 1; +103.42.104.0/22 1; +103.42.176.0/21 1; +103.42.212.0/22 1; +103.43.8.0/21 1; +103.43.16.0/21 1; +103.43.24.0/23 1; +103.43.28.0/22 1; +103.43.84.0/22 1; +103.43.132.0/22 1; +103.43.160.0/21 1; +103.43.172.0/22 1; +103.43.188.0/22 1; +103.43.216.0/22 1; +103.43.232.0/21 1; +103.43.240.0/21 1; +103.44.20.0/22 1; +103.44.28.0/22 1; +103.44.56.0/23 1; +103.44.60.0/22 1; +103.44.64.0/22 1; +103.44.88.0/22 1; +103.44.103.0/24 1; +103.44.109.0/24 1; +103.44.132.0/22 1; +103.44.160.0/22 1; +103.44.233.0/24 1; +103.45.64.0/21 1; +103.46.141.0/24 1; +103.46.142.0/23 1; +103.46.226.0/23 1; +103.47.88.0/23 1; +103.47.100.0/22 1; +103.47.108.0/22 1; +103.47.112.0/22 1; +103.47.144.0/23 1; +103.47.147.0/24 1; +103.47.220.0/22 1; +103.47.240.0/22 1; +103.47.248.0/22 1; +103.48.4.0/22 1; +103.48.20.0/22 1; +103.48.26.0/24 1; +103.48.29.0/24 1; +103.48.48.0/23 1; +103.48.132.0/22 1; +103.48.140.0/22 1; +103.48.144.0/22 1; +103.48.156.0/22 1; +103.48.168.0/22 1; +103.49.8.0/22 1; +103.49.60.0/22 1; +103.49.92.0/22 1; +103.49.122.0/23 1; +103.49.124.0/23 1; +103.49.132.0/24 1; +103.49.135.0/24 1; +103.49.156.0/22 1; +103.49.160.0/22 1; +103.49.196.0/24 1; +103.49.199.0/24 1; +103.49.214.0/23 1; +103.49.246.0/23 1; +103.49.248.0/22 1; +103.50.16.0/22 1; +103.50.96.0/22 1; +103.50.252.0/23 1; +103.51.12.0/22 1; +103.51.108.0/22 1; +103.51.144.0/22 1; +103.52.152.0/22 1; +103.52.188.0/22 1; +103.52.214.0/23 1; +103.53.4.0/23 1; +103.53.6.0/24 1; +103.53.8.0/22 1; +103.53.48.0/22 1; +103.53.152.0/23 1; +103.53.199.0/24 1; +103.53.216.0/22 1; +103.53.224.0/22 1; +103.54.4.0/22 1; +103.54.52.0/22 1; +103.54.60.0/22 1; +103.54.116.0/22 1; +103.54.120.0/21 1; +103.54.128.0/22 1; +103.54.176.0/22 1; +103.55.20.0/22 1; +103.55.24.0/21 1; +103.55.53.0/24 1; +103.55.112.0/23 1; +103.55.128.0/22 1; +103.55.200.0/22 1; +103.55.218.0/24 1; +103.56.11.0/24 1; +103.56.16.0/22 1; +103.56.24.0/22 1; +103.56.44.0/22 1; +103.56.52.0/24 1; +103.56.54.0/24 1; +103.56.100.0/22 1; +103.56.104.0/22 1; +103.56.112.0/21 1; +103.56.136.0/22 1; +103.56.192.0/22 1; +103.56.216.0/23 1; +103.57.24.0/22 1; +103.57.108.0/22 1; +103.57.224.0/23 1; +103.57.227.0/24 1; +103.57.228.0/22 1; +103.57.248.0/24 1; +103.58.181.0/24 1; +103.58.182.0/23 1; +103.59.40.0/21 1; +103.59.48.0/22 1; +103.59.90.0/23 1; +103.59.100.0/22 1; +103.59.121.0/24 1; +103.59.144.0/22 1; +103.59.164.0/22 1; +103.59.216.0/22 1; +103.60.8.0/24 1; +103.60.64.0/22 1; +103.60.108.0/22 1; +103.60.146.0/23 1; +103.60.148.0/22 1; +103.60.191.0/24 1; +103.60.192.0/22 1; +103.60.220.0/22 1; +103.60.248.0/22 1; +103.61.0.0/22 1; +103.61.20.0/22 1; +103.61.28.0/22 1; +103.61.36.0/22 1; +103.61.42.0/23 1; +103.61.120.0/22 1; +103.61.144.0/22 1; +103.61.168.0/22 1; +103.61.188.0/22 1; +103.61.220.0/22 1; +103.61.240.0/22 1; +103.62.44.0/22 1; +103.62.52.0/22 1; +103.62.148.0/22 1; +103.63.0.0/21 1; +103.63.132.0/22 1; +103.63.136.0/22 1; +103.63.236.0/22 1; +103.65.8.0/22 1; +103.65.37.0/24 1; +103.65.38.0/23 1; +103.65.40.0/22 1; +103.65.98.0/23 1; +103.65.216.0/22 1; +103.66.30.0/24 1; +103.66.36.0/24 1; +103.66.56.0/21 1; +103.66.92.0/22 1; +103.66.100.0/22 1; +103.66.180.0/22 1; +103.66.216.0/22 1; +103.67.173.0/24 1; +103.67.174.0/24 1; +103.67.206.0/24 1; +103.67.252.0/22 1; +103.68.60.0/22 1; +103.68.64.0/22 1; +103.68.168.0/21 1; +103.68.176.0/21 1; +103.68.192.0/22 1; +103.68.200.0/23 1; +103.68.232.0/22 1; +103.69.116.0/22 1; +103.69.128.0/23 1; +103.69.132.0/22 1; +103.69.143.0/24 1; +103.69.152.0/22 1; +103.69.184.0/22 1; +103.70.0.0/22 1; +103.70.59.0/24 1; +103.70.76.0/23 1; +103.70.212.0/22 1; +103.70.220.0/22 1; +103.70.224.0/22 1; +103.71.12.0/22 1; +103.71.24.0/24 1; +103.71.28.0/22 1; +103.71.32.0/22 1; +103.71.48.0/22 1; +103.71.144.0/21 1; +103.71.152.0/22 1; +103.71.176.0/22 1; +103.71.228.0/22 1; +103.71.236.0/22 1; +103.71.252.0/23 1; +103.72.82.0/23 1; +103.72.89.0/24 1; +103.72.92.0/24 1; +103.72.120.0/22 1; +103.72.144.0/22 1; +103.72.160.0/23 1; +103.72.164.0/22 1; +103.73.66.0/23 1; +103.73.88.0/22 1; +103.73.96.0/22 1; +103.73.144.0/22 1; +103.73.160.0/22 1; +103.73.194.0/24 1; +103.73.220.0/23 1; +103.73.242.0/23 1; +103.73.254.0/23 1; +103.74.128.0/22 1; +103.74.172.0/22 1; +103.74.192.0/22 1; +103.74.248.0/22 1; +103.75.0.0/22 1; +103.75.12.0/22 1; +103.75.16.0/20 1; +103.75.32.0/19 1; +103.75.64.0/20 1; +103.75.80.0/22 1; +103.75.84.0/23 1; +103.75.86.0/24 1; +103.75.117.0/24 1; +103.75.175.0/24 1; +103.75.228.0/22 1; +103.75.236.0/24 1; +103.75.240.0/22 1; +103.76.32.0/22 1; +103.76.84.0/22 1; +103.77.20.0/22 1; +103.77.72.0/22 1; +103.77.92.0/22 1; +103.77.184.0/24 1; +103.77.192.0/22 1; +103.78.243.0/24 1; +103.79.52.0/22 1; +103.79.92.0/22 1; +103.79.120.0/22 1; +103.79.176.0/22 1; +103.79.184.0/22 1; +103.79.240.0/22 1; +103.80.8.0/22 1; +103.80.16.0/22 1; +103.80.24.0/21 1; +103.80.124.0/22 1; +103.80.144.0/22 1; +103.80.168.0/22 1; +103.80.220.0/23 1; +103.80.252.0/23 1; +103.81.8.0/22 1; +103.81.16.0/21 1; +103.81.131.0/24 1; +103.81.168.0/22 1; +103.81.183.0/24 1; +103.81.186.0/23 1; +103.81.247.0/24 1; +103.82.4.0/23 1; +103.82.16.0/22 1; +103.82.52.0/22 1; +103.82.140.0/24 1; +103.82.168.0/22 1; +103.82.212.0/22 1; +103.82.216.0/22 1; +103.83.0.0/24 1; +103.83.16.0/23 1; +103.83.64.0/22 1; +103.83.160.0/24 1; +103.83.170.0/24 1; +103.83.231.0/24 1; +103.84.16.0/22 1; +103.84.32.0/22 1; +103.84.44.0/22 1; +103.84.84.0/22 1; +103.84.88.0/21 1; +103.84.108.0/22 1; +103.84.120.0/22 1; +103.84.136.0/22 1; +103.84.152.0/24 1; +103.84.220.0/22 1; +103.85.20.0/22 1; +103.85.72.0/22 1; +103.85.108.0/22 1; +103.85.212.0/24 1; +103.85.224.0/22 1; +103.85.244.0/22 1; +103.85.252.0/22 1; +103.86.12.0/22 1; +103.86.64.0/22 1; +103.86.72.0/21 1; +103.86.80.0/22 1; +103.86.89.0/24 1; +103.87.8.0/22 1; +103.87.72.0/23 1; +103.87.74.0/24 1; +103.87.109.0/24 1; +103.87.110.0/24 1; +103.87.156.0/22 1; +103.87.240.0/22 1; +103.88.92.0/22 1; +103.88.176.0/22 1; +103.88.184.0/21 1; +103.89.68.0/22 1; +103.89.72.0/24 1; +103.89.128.0/22 1; +103.89.137.0/24 1; +103.90.51.0/24 1; +103.90.56.0/23 1; +103.90.76.0/24 1; +103.90.80.0/22 1; +103.90.136.0/22 1; +103.90.172.0/24 1; +103.90.203.0/24 1; +103.91.8.0/22 1; +103.91.126.0/24 1; +103.91.156.0/22 1; +103.91.252.0/22 1; +103.92.0.0/20 1; +103.92.86.0/24 1; +103.92.105.0/24 1; +103.92.128.0/21 1; +103.92.136.0/22 1; +103.93.46.0/24 1; +103.93.72.0/22 1; +103.93.121.0/24 1; +103.93.122.0/23 1; +103.93.124.0/22 1; +103.93.255.0/24 1; +103.94.76.0/22 1; +103.94.103.0/24 1; +103.94.148.0/22 1; +103.94.157.0/24 1; +103.94.180.0/22 1; +103.94.184.0/24 1; +103.94.232.0/22 1; +103.95.56.0/21 1; +103.95.64.0/22 1; +103.95.102.0/23 1; +103.95.108.0/22 1; +103.95.112.0/21 1; +103.95.128.0/22 1; +103.95.176.0/22 1; +103.95.215.0/24 1; +103.96.72.0/21 1; +103.96.80.0/22 1; +103.96.128.0/22 1; +103.96.140.0/24 1; +103.96.148.0/22 1; +103.97.0.0/22 1; +103.97.8.0/21 1; +103.97.16.0/20 1; +103.97.32.0/19 1; +103.97.64.0/21 1; +103.97.72.0/22 1; +103.97.80.0/22 1; +103.97.128.0/22 1; +103.97.175.0/24 1; +103.97.176.0/22 1; +103.97.200.0/23 1; +103.97.224.0/23 1; +103.97.227.0/24 1; +103.97.228.0/23 1; +103.98.8.0/23 1; +103.98.10.0/24 1; +103.98.14.0/24 1; +103.98.19.0/24 1; +103.98.76.0/23 1; +103.98.92.0/22 1; +103.98.96.0/22 1; +103.98.112.0/22 1; +103.98.125.0/24 1; +103.98.251.0/24 1; +103.99.23.0/24 1; +103.99.40.0/23 1; +103.99.72.0/21 1; +103.100.52.0/22 1; +103.100.60.0/22 1; +103.100.68.0/22 1; +103.100.73.0/24 1; +103.100.112.0/22 1; +103.100.138.0/23 1; +103.100.140.0/22 1; +103.100.152.0/21 1; +103.100.168.0/22 1; +103.100.176.0/22 1; +103.100.208.0/22 1; +103.100.236.0/22 1; +103.101.0.0/22 1; +103.101.28.0/23 1; +103.101.96.0/22 1; +103.101.120.0/24 1; +103.101.176.0/22 1; +103.101.188.0/23 1; +103.101.191.0/24 1; +103.101.215.0/24 1; +103.102.4.0/22 1; +103.102.32.0/22 1; +103.102.44.0/23 1; +103.102.47.0/24 1; +103.102.48.0/23 1; +103.102.132.0/22 1; +103.102.136.0/22 1; +103.102.197.0/24 1; +103.102.198.0/23 1; +103.103.64.0/23 1; +103.103.68.0/22 1; +103.103.83.0/24 1; +103.103.115.0/24 1; +103.103.176.0/24 1; +103.103.224.0/24 1; +103.103.226.0/24 1; +103.103.228.0/22 1; +103.103.232.0/22 1; +103.103.240.0/20 1; +103.104.0.0/23 1; +103.104.4.0/22 1; +103.104.11.0/24 1; +103.104.50.0/23 1; +103.104.104.0/22 1; +103.104.148.0/23 1; +103.104.150.0/24 1; +103.104.171.0/24 1; +103.104.178.0/24 1; +103.104.188.0/22 1; +103.104.198.0/23 1; +103.104.220.0/24 1; +103.106.160.0/22 1; +103.106.188.0/23 1; +103.106.244.0/22 1; +103.106.249.0/24 1; +103.107.8.0/24 1; +103.107.10.0/23 1; +103.107.12.0/22 1; +103.107.88.0/22 1; +103.107.92.0/23 1; +103.107.104.0/22 1; +103.107.109.0/24 1; +103.107.236.0/22 1; +103.108.2.0/23 1; +103.108.8.0/24 1; +103.108.40.0/22 1; +103.108.64.0/22 1; +103.108.142.0/24 1; +103.108.172.0/24 1; +103.108.180.0/22 1; +103.108.189.0/24 1; +103.108.192.0/22 1; +103.108.216.0/23 1; +103.108.248.0/23 1; +103.108.250.0/24 1; +103.109.4.0/23 1; +103.109.100.0/22 1; +103.109.104.0/24 1; +103.109.106.0/24 1; +103.109.149.0/24 1; +103.110.60.0/22 1; +103.110.80.0/23 1; +103.110.100.0/22 1; +103.110.118.0/24 1; +103.110.152.0/22 1; +103.111.38.0/23 1; +103.111.124.0/24 1; +103.111.182.0/24 1; +103.112.28.0/22 1; +103.112.67.0/24 1; +103.112.68.0/22 1; +103.112.78.0/23 1; +103.112.96.0/22 1; +103.112.116.0/22 1; +103.112.172.0/22 1; +103.112.184.0/22 1; +103.112.208.0/22 1; +103.113.8.0/22 1; +103.113.20.0/22 1; +103.113.36.0/22 1; +103.113.60.0/22 1; +103.113.92.0/22 1; +103.113.156.0/22 1; +103.113.165.0/24 1; +103.113.240.0/22 1; +103.114.8.0/24 1; +103.114.132.0/22 1; +103.114.158.0/23 1; +103.114.192.0/22 1; +103.115.16.0/22 1; +103.115.20.0/24 1; +103.115.40.0/21 1; +103.115.48.0/20 1; +103.115.64.0/22 1; +103.115.141.0/24 1; +103.115.144.0/23 1; +103.115.146.0/24 1; +103.115.152.0/22 1; +103.116.14.0/23 1; +103.116.20.0/22 1; +103.116.40.0/23 1; +103.116.43.0/24 1; +103.116.44.0/22 1; +103.116.64.0/22 1; +103.116.72.0/22 1; +103.116.132.0/23 1; +103.116.148.0/23 1; +103.116.151.0/24 1; +103.116.206.0/23 1; +103.116.212.0/22 1; +103.116.244.0/22 1; +103.117.24.0/22 1; +103.117.72.0/21 1; +103.117.100.0/22 1; +103.117.116.0/24 1; +103.117.120.0/22 1; +103.117.128.0/23 1; +103.117.132.0/22 1; +103.117.136.0/22 1; +103.117.144.0/22 1; +103.117.248.0/22 1; +103.117.252.0/24 1; +103.118.36.0/22 1; +103.118.40.0/21 1; +103.118.48.0/23 1; +103.118.81.0/24 1; +103.118.192.0/18 1; +103.119.0.0/22 1; +103.119.12.0/22 1; +103.119.16.0/22 1; +103.119.44.0/22 1; +103.119.104.0/23 1; +103.119.106.0/24 1; +103.119.108.0/22 1; +103.119.124.0/24 1; +103.119.128.0/22 1; +103.119.132.0/23 1; +103.119.137.0/24 1; +103.119.172.0/22 1; +103.119.176.0/22 1; +103.120.24.0/22 1; +103.123.160.0/22 1; +103.123.216.0/24 1; +103.124.126.0/24 1; +103.124.155.0/24 1; +103.124.192.0/22 1; +103.125.84.0/22 1; +103.125.115.0/24 1; +103.125.232.0/23 1; +103.126.132.0/22 1; +103.126.188.0/24 1; +103.126.190.0/24 1; +103.126.208.0/24 1; +103.126.210.0/23 1; +103.126.227.0/24 1; +103.126.241.0/24 1; +103.126.242.0/24 1; +103.127.24.0/22 1; +103.127.80.0/22 1; +103.127.128.0/24 1; +103.127.239.0/24 1; +103.127.248.0/22 1; +103.129.16.0/22 1; +103.129.52.0/24 1; +103.129.136.0/22 1; +103.129.197.0/24 1; +103.129.252.0/22 1; +103.130.152.0/24 1; +103.130.200.0/24 1; +103.131.34.0/24 1; +103.131.44.0/22 1; +103.131.163.0/24 1; +103.131.176.0/22 1; +103.131.204.0/22 1; +103.131.222.0/24 1; +103.132.48.0/21 1; +103.132.164.0/22 1; +103.132.202.0/24 1; +103.132.234.0/23 1; +103.133.72.0/23 1; +103.133.74.0/24 1; +103.133.88.0/21 1; +103.134.12.0/24 1; +103.134.86.0/24 1; +103.134.136.0/21 1; +103.134.144.0/22 1; +103.134.150.0/23 1; +103.134.152.0/23 1; +103.134.154.0/24 1; +103.135.20.0/24 1; +103.135.32.0/22 1; +103.135.44.0/23 1; +103.135.100.0/22 1; +103.135.104.0/23 1; +103.135.110.0/23 1; +103.135.112.0/22 1; +103.135.140.0/22 1; +103.135.144.0/22 1; +103.135.208.0/22 1; +103.135.240.0/22 1; +103.135.248.0/22 1; +103.136.108.0/22 1; +103.136.116.0/22 1; +103.136.148.0/22 1; +103.136.192.0/22 1; +103.136.251.0/24 1; +103.137.76.0/22 1; +103.137.98.0/23 1; +103.137.150.0/24 1; +103.137.167.0/24 1; +103.137.177.0/24 1; +103.138.13.0/24 1; +103.138.32.0/24 1; +103.138.53.0/24 1; +103.138.72.0/22 1; +103.138.148.0/23 1; +103.138.156.0/23 1; +103.138.254.0/23 1; +103.139.0.0/22 1; +103.139.20.0/24 1; +103.139.72.0/23 1; +103.139.90.0/24 1; +103.139.113.0/24 1; +103.139.198.0/23 1; +103.139.200.0/23 1; +103.140.8.0/23 1; +103.140.28.50/31 1; +103.140.28.52/32 1; +103.140.68.0/22 1; +103.140.126.0/23 1; +103.140.226.0/23 1; +103.140.228.0/23 1; +103.140.238.0/23 1; +103.140.240.0/20 1; +103.141.0.0/17 1; +103.141.128.0/18 1; +103.141.220.0/23 1; +103.141.236.0/23 1; +103.142.8.0/23 1; +103.142.36.0/23 1; +103.142.46.0/23 1; +103.142.84.0/22 1; +103.142.100.0/22 1; +103.142.126.0/24 1; +103.142.130.0/23 1; +103.142.146.0/23 1; +103.142.172.0/23 1; +103.142.190.0/23 1; +103.142.204.0/23 1; +103.142.220.0/24 1; +103.142.231.0/24 1; +103.142.246.0/23 1; +103.142.248.0/23 1; +103.143.10.0/23 1; +103.143.12.0/22 1; +103.143.26.0/23 1; +103.143.28.0/23 1; +103.143.30.0/24 1; +103.143.80.0/23 1; +103.143.230.0/23 1; +103.143.236.0/22 1; +103.143.248.0/23 1; +103.144.2.0/23 1; +103.144.28.0/23 1; +103.144.40.0/23 1; +103.144.52.0/23 1; +103.144.58.0/23 1; +103.144.96.0/23 1; +103.144.117.0/24 1; +103.144.148.0/23 1; +103.144.162.0/23 1; +103.144.196.0/22 1; +103.144.200.0/22 1; +103.144.218.0/23 1; +103.145.21.0/24 1; +103.145.38.0/23 1; +103.145.40.0/23 1; +103.145.60.0/23 1; +103.145.104.0/23 1; +103.145.107.0/24 1; +103.145.114.0/23 1; +103.145.122.0/23 1; +103.145.152.0/23 1; +103.145.190.0/23 1; +103.146.8.0/23 1; +103.146.50.0/23 1; +103.146.52.0/23 1; +103.146.124.0/23 1; +103.146.140.0/22 1; +103.146.144.0/23 1; +103.146.147.0/24 1; +103.146.148.0/22 1; +103.146.152.0/21 1; +103.146.178.0/23 1; +103.146.208.0/23 1; +103.146.230.0/23 1; +103.147.12.0/22 1; +103.147.16.0/22 1; +103.147.20.0/23 1; +103.147.45.0/24 1; +103.147.114.0/23 1; +103.147.172.0/24 1; +103.147.196.0/22 1; +103.147.200.0/22 1; +103.147.204.0/23 1; +103.147.212.0/24 1; +103.147.224.0/23 1; +103.147.234.0/23 1; +103.148.36.0/23 1; +103.148.58.0/23 1; +103.148.116.0/22 1; +103.148.120.0/22 1; +103.148.124.0/23 1; +103.148.134.0/23 1; +103.148.145.0/24 1; +103.148.150.0/23 1; +103.148.186.0/23 1; +103.148.202.0/23 1; +103.148.218.0/23 1; +103.148.226.0/23 1; +103.148.231.0/24 1; +103.148.244.0/23 1; +103.149.4.0/23 1; +103.149.24.0/21 1; +103.149.32.0/21 1; +103.149.40.0/23 1; +103.149.62.0/23 1; +103.149.66.0/23 1; +103.149.82.0/23 1; +103.149.90.0/23 1; +103.149.92.0/23 1; +103.149.102.0/24 1; +103.149.110.0/23 1; +103.149.128.0/21 1; +103.149.144.0/23 1; +103.149.149.0/24 1; +103.149.150.0/23 1; +103.149.152.0/23 1; +103.149.156.0/23 1; +103.149.162.0/24 1; +103.149.181.0/24 1; +103.149.182.0/23 1; +103.149.200.0/23 1; +103.149.248.0/23 1; +103.150.28.0/24 1; +103.150.37.0/24 1; +103.150.54.0/23 1; +103.150.130.0/24 1; +103.150.172.0/23 1; +103.150.181.0/24 1; +103.150.184.0/23 1; +103.150.199.0/24 1; +103.150.210.0/23 1; +103.150.212.0/24 1; +103.150.250.0/23 1; +103.151.134.0/23 1; +103.151.146.0/23 1; +103.151.150.0/23 1; +103.151.160.0/23 1; +103.151.172.0/24 1; +103.151.178.0/23 1; +103.151.200.0/23 1; +103.151.206.0/23 1; +103.151.210.0/24 1; +103.151.229.0/24 1; +103.151.250.0/23 1; +103.152.34.0/23 1; +103.152.56.0/23 1; +103.152.82.0/23 1; +103.152.132.0/23 1; +103.152.170.0/23 1; +103.152.194.0/23 1; +103.152.206.0/24 1; +103.152.210.0/23 1; +103.152.226.0/23 1; +103.152.246.0/23 1; +103.153.4.0/23 1; +103.153.16.0/23 1; +103.154.242.0/23 1; +103.155.8.0/23 1; +103.155.13.0/24 1; +103.155.60.0/23 1; +103.155.86.0/23 1; +103.155.90.0/23 1; +103.155.92.0/22 1; +103.155.96.0/19 1; +103.155.128.0/20 1; +103.155.202.0/23 1; +103.155.214.0/23 1; +103.155.244.0/23 1; +103.155.248.0/23 1; +103.156.24.0/23 1; +103.156.76.0/23 1; +103.192.36.0/22 1; +103.192.40.0/22 1; +103.192.176.0/22 1; +103.192.200.0/22 1; +103.192.224.0/22 1; +103.193.32.0/22 1; +103.193.68.0/22 1; +103.193.124.0/23 1; +103.193.127.0/24 1; +103.193.128.0/24 1; +103.193.131.0/24 1; +103.193.132.0/22 1; +103.193.144.0/24 1; +103.193.148.0/22 1; +103.193.172.0/22 1; +103.193.240.0/22 1; +103.193.248.0/22 1; +103.194.36.0/22 1; +103.194.43.0/24 1; +103.194.100.0/22 1; +103.194.104.0/22 1; +103.194.148.0/22 1; +103.194.184.0/22 1; +103.194.237.0/24 1; +103.194.238.0/23 1; +103.194.244.0/22 1; +103.195.4.0/22 1; +103.195.48.0/22 1; +103.195.104.0/21 1; +103.195.132.0/22 1; +103.195.136.0/24 1; +103.195.148.0/22 1; +103.195.187.0/24 1; +103.195.192.0/22 1; +103.196.20.0/23 1; +103.196.23.0/24 1; +103.196.37.0/24 1; +103.196.38.0/23 1; +103.196.60.0/22 1; +103.196.100.0/22 1; +103.196.120.0/21 1; +103.196.152.0/22 1; +103.197.4.0/22 1; +103.197.24.0/22 1; +103.197.68.0/22 1; +103.197.96.0/23 1; +103.197.156.0/22 1; +103.197.168.0/22 1; +103.197.180.0/23 1; +103.197.182.0/24 1; +103.197.192.0/22 1; +103.197.216.0/22 1; +103.197.252.0/24 1; +103.198.1.0/24 1; +103.198.18.0/23 1; +103.198.48.0/21 1; +103.198.56.0/22 1; +103.198.146.0/24 1; +103.198.192.0/22 1; +103.198.204.0/22 1; +103.198.216.0/21 1; +103.198.224.0/20 1; +103.198.240.0/21 1; +103.198.248.0/22 1; +103.199.100.0/22 1; +103.199.104.0/22 1; +103.199.148.0/22 1; +103.199.248.0/22 1; +103.200.5.0/24 1; +103.200.6.0/24 1; +103.200.28.0/22 1; +103.200.32.0/22 1; +103.200.112.0/21 1; +103.200.123.0/24 1; +103.200.124.0/22 1; +103.200.200.0/22 1; +103.202.48.0/22 1; +103.202.211.0/24 1; +103.202.219.0/24 1; +103.203.48.0/22 1; +103.203.56.0/22 1; +103.203.148.0/22 1; +103.203.158.0/23 1; +103.203.180.0/22 1; +103.203.184.0/22 1; +103.203.220.0/24 1; +103.203.223.0/24 1; +103.203.240.0/22 1; +103.204.67.0/24 1; +103.204.72.0/21 1; +103.204.176.0/21 1; +103.204.252.0/22 1; +103.205.0.0/22 1; +103.205.8.0/22 1; +103.205.20.0/22 1; +103.205.121.0/24 1; +103.205.122.0/23 1; +103.205.156.0/22 1; +103.205.164.0/22 1; +103.205.240.0/22 1; +103.206.37.0/24 1; +103.206.38.0/23 1; +103.206.40.0/22 1; +103.206.92.0/22 1; +103.206.98.0/24 1; +103.206.108.0/22 1; +103.206.120.0/24 1; +103.206.122.0/23 1; +103.206.154.0/23 1; +103.206.188.0/22 1; +103.207.24.0/22 1; +103.207.68.0/23 1; +103.207.70.0/24 1; +103.207.75.128/25 1; +103.207.93.0/24 1; +103.207.116.0/22 1; +103.207.159.0/24 1; +103.207.164.0/22 1; +103.208.0.0/24 1; +103.208.8.0/22 1; +103.208.32.0/22 1; +103.208.40.0/21 1; +103.209.28.0/22 1; +103.209.40.0/22 1; +103.209.60.0/22 1; +103.209.102.0/23 1; +103.209.128.0/23 1; +103.209.232.0/22 1; +103.209.252.0/24 1; +103.209.254.0/23 1; +103.210.20.0/22 1; +103.210.216.0/24 1; +103.210.220.0/24 1; +103.210.232.0/21 1; +103.210.240.0/21 1; +103.211.0.0/24 1; +103.211.32.0/22 1; +103.211.68.0/22 1; +103.211.92.0/22 1; +103.211.99.0/24 1; +103.211.100.0/23 1; +103.211.124.0/22 1; +103.211.167.0/24 1; +103.211.173.0/24 1; +103.211.192.0/22 1; +103.211.224.0/22 1; +103.211.228.0/24 1; +103.211.231.0/24 1; +103.211.236.0/23 1; +103.211.244.0/22 1; +103.212.32.0/22 1; +103.212.56.0/23 1; +103.212.58.0/24 1; +103.212.72.0/22 1; +103.212.96.0/22 1; +103.212.104.0/21 1; +103.212.228.0/22 1; +103.213.4.0/22 1; +103.213.232.0/22 1; +103.213.245.0/24 1; +103.213.248.0/22 1; +103.214.32.0/22 1; +103.214.41.0/24 1; +103.214.56.0/22 1; +103.214.64.0/22 1; +103.214.76.0/22 1; +103.214.140.0/22 1; +103.214.144.0/22 1; +103.214.164.0/22 1; +103.214.168.0/21 1; +103.214.192.0/22 1; +103.214.224.0/22 1; +103.214.228.0/24 1; +103.214.248.0/21 1; +103.215.0.0/21 1; +103.215.8.0/22 1; +103.215.40.0/22 1; +103.215.48.0/22 1; +103.215.76.0/22 1; +103.215.80.0/22 1; +103.215.102.0/23 1; +103.215.124.0/22 1; +103.215.184.0/21 1; +103.215.212.0/22 1; +103.215.228.0/22 1; +103.216.100.0/23 1; +103.216.103.0/24 1; +103.216.134.0/24 1; +103.216.216.0/22 1; +103.216.221.0/24 1; +103.217.160.0/22 1; +103.217.224.0/22 1; +103.217.252.0/23 1; +103.217.255.0/24 1; +103.218.0.0/21 1; +103.218.104.0/22 1; +103.218.184.0/22 1; +103.218.240.0/22 1; +103.219.56.0/23 1; +103.219.80.0/22 1; +103.219.104.0/22 1; +103.219.172.0/24 1; +103.219.192.0/22 1; +103.220.8.0/22 1; +103.220.72.0/21 1; +103.220.101.0/24 1; +103.220.248.0/21 1; +103.221.0.0/20 1; +103.221.16.0/21 1; +103.221.36.0/22 1; +103.221.40.0/21 1; +103.221.92.0/22 1; +103.222.32.0/24 1; +103.223.120.0/22 1; +103.224.16.0/22 1; +103.224.20.0/24 1; +103.224.22.0/24 1; +103.224.72.0/22 1; +103.224.80.0/22 1; +103.224.92.0/22 1; +103.224.106.0/24 1; +103.224.172.0/22 1; +103.224.176.0/22 1; +103.224.180.0/24 1; +103.224.248.0/22 1; +103.225.8.0/22 1; +103.225.16.0/21 1; +103.225.28.0/22 1; +103.225.84.0/22 1; +103.225.196.0/22 1; +103.225.212.0/22 1; +103.225.250.0/24 1; +103.226.16.0/22 1; +103.226.92.0/22 1; +103.226.124.0/22 1; +103.226.148.0/22 1; +103.226.152.0/22 1; +103.227.84.0/22 1; +103.227.128.0/22 1; +103.227.192.0/22 1; +103.227.207.0/24 1; +103.228.28.0/22 1; +103.228.64.0/22 1; +103.228.82.0/24 1; +103.228.92.0/22 1; +103.228.108.0/22 1; +103.228.128.0/22 1; +103.228.168.0/22 1; +103.228.180.0/22 1; +103.229.28.0/22 1; +103.229.52.0/22 1; +103.229.60.0/22 1; +103.229.64.0/21 1; +103.229.116.0/22 1; +103.229.124.0/22 1; +103.229.140.0/22 1; +103.229.144.0/22 1; +103.229.180.0/22 1; +103.229.188.0/22 1; +103.229.206.0/23 1; +103.229.224.0/23 1; +103.229.226.0/24 1; +103.229.244.0/22 1; +103.230.12.0/24 1; +103.230.32.0/22 1; +103.230.65.0/24 1; +103.230.108.0/22 1; +103.230.120.0/22 1; +103.230.128.0/22 1; +103.230.136.0/22 1; +103.230.145.0/24 1; +103.230.146.0/23 1; +103.230.160.0/22 1; +103.230.192.0/22 1; +103.230.216.0/22 1; +103.230.228.0/22 1; +103.230.240.0/22 1; +103.230.248.0/23 1; +103.231.12.0/22 1; +103.231.28.0/22 1; +103.231.56.0/22 1; +103.231.84.0/22 1; +103.231.104.0/22 1; +103.231.140.0/22 1; +103.231.164.0/22 1; +103.231.172.0/22 1; +103.231.185.0/24 1; +103.231.186.0/23 1; +103.231.252.0/22 1; +103.232.0.0/22 1; +103.232.16.8/29 1; +103.232.16.16/28 1; +103.232.16.32/27 1; +103.232.16.64/26 1; +103.232.16.128/25 1; +103.232.17.0/24 1; +103.232.18.0/24 1; +103.232.19.0/25 1; +103.232.19.128/26 1; +103.232.19.192/29 1; +103.232.19.200/30 1; +103.232.34.0/23 1; +103.232.36.0/22 1; +103.232.68.0/22 1; +103.232.84.0/22 1; +103.232.88.0/22 1; +103.232.148.0/22 1; +103.232.188.0/22 1; +103.232.212.0/24 1; +103.232.214.0/23 1; +103.232.220.0/22 1; +103.233.8.0/22 1; +103.233.72.0/24 1; +103.233.96.0/22 1; +103.233.164.0/22 1; +103.233.184.0/22 1; +103.233.232.0/22 1; +103.233.248.0/21 1; +103.234.0.0/21 1; +103.234.8.0/22 1; +103.234.32.0/24 1; +103.234.52.0/22 1; +103.234.60.0/22 1; +103.234.72.0/22 1; +103.234.96.0/22 1; +103.234.140.0/22 1; +103.234.220.0/22 1; +103.234.244.0/22 1; +103.235.4.0/24 1; +103.235.16.0/22 1; +103.235.44.0/22 1; +103.235.100.0/22 1; +103.235.168.0/21 1; +103.235.216.0/22 1; +103.236.136.0/22 1; +103.236.179.244/30 1; +103.236.216.0/22 1; +103.236.224.0/22 1; +103.236.232.0/22 1; +103.237.72.0/22 1; +103.237.92.0/22 1; +103.237.100.0/22 1; +103.237.128.0/22 1; +103.237.132.0/23 1; +103.238.16.0/23 1; +103.238.130.0/23 1; +103.238.224.0/22 1; +103.239.28.0/22 1; +103.239.40.0/22 1; +103.239.72.0/22 1; +103.239.96.0/21 1; +103.239.126.0/24 1; +103.239.148.0/22 1; +103.239.176.0/22 1; +103.240.40.0/22 1; +103.240.64.0/22 1; +103.240.92.0/22 1; +103.240.140.0/22 1; +103.240.148.0/22 1; +103.240.156.0/22 1; +103.240.164.0/22 1; +103.240.180.0/22 1; +103.240.196.0/22 1; +103.240.200.0/22 1; +103.240.221.0/24 1; +103.241.11.0/24 1; +103.241.16.0/22 1; +103.241.48.0/22 1; +103.241.72.0/22 1; +103.241.164.0/22 1; +103.241.228.0/22 1; +103.242.0.0/22 1; +103.242.8.0/21 1; +103.242.67.0/24 1; +103.242.72.0/23 1; +103.242.88.0/22 1; +103.242.100.0/22 1; +103.242.108.0/22 1; +103.242.132.0/22 1; +103.242.140.0/22 1; +103.242.148.0/23 1; +103.243.0.0/22 1; +103.243.8.0/23 1; +103.243.14.0/24 1; +103.243.18.0/24 1; +103.243.24.0/22 1; +103.243.92.0/22 1; +103.243.100.0/22 1; +103.243.128.0/22 1; +103.243.164.0/22 1; +103.243.180.0/22 1; +103.244.0.0/22 1; +103.244.50.0/24 1; +103.244.52.0/22 1; +103.244.88.0/22 1; +103.244.112.0/22 1; +103.244.148.0/22 1; +103.244.156.0/22 1; +103.245.24.0/21 1; +103.245.190.0/23 1; +103.245.208.0/22 1; +103.246.38.0/24 1; +103.246.77.0/24 1; +103.246.79.0/24 1; +103.246.113.0/24 1; +103.246.114.0/23 1; +103.246.141.0/24 1; +103.246.156.0/22 1; +103.246.160.0/22 1; +103.246.178.0/23 1; +103.246.202.0/24 1; +103.246.244.0/22 1; +103.247.28.0/23 1; +103.247.92.0/22 1; +103.247.136.0/21 1; +103.247.144.0/22 1; +103.247.156.0/22 1; +103.247.160.0/21 1; +103.248.0.0/23 1; +103.248.20.0/22 1; +103.248.36.0/22 1; +103.248.66.0/23 1; +103.248.76.0/22 1; +103.248.88.0/22 1; +103.248.136.0/22 1; +103.248.180.0/22 1; +103.248.184.0/22 1; +103.248.220.0/22 1; +103.248.252.0/22 1; +103.249.32.0/22 1; +103.249.72.0/22 1; +103.249.104.0/24 1; +103.249.106.0/23 1; +103.249.108.0/22 1; +103.249.196.0/22 1; +103.250.4.0/22 1; +103.250.12.0/22 1; +103.250.41.0/24 1; +103.250.52.0/22 1; +103.250.100.0/22 1; +103.250.176.0/22 1; +103.251.36.0/22 1; +103.251.88.0/22 1; +103.251.112.0/22 1; +103.251.128.0/22 1; +103.251.199.0/24 1; +103.251.236.0/22 1; +103.252.16.0/22 1; +103.252.72.0/21 1; +103.252.116.0/22 1; +103.252.162.0/24 1; +103.252.212.0/24 1; +103.252.240.0/22 1; +103.253.8.0/22 1; +103.253.40.0/22 1; +103.253.140.0/22 1; +103.253.236.0/22 1; +103.253.248.0/22 1; +103.254.28.0/22 1; +103.254.44.0/22 1; +103.254.72.0/22 1; +103.254.108.0/22 1; +103.254.116.0/22 1; +103.254.148.0/22 1; +103.254.196.0/24 1; +103.254.198.0/23 1; +103.254.208.0/22 1; +103.254.220.0/22 1; +103.255.44.0/22 1; +103.255.56.0/21 1; +103.255.127.0/24 1; +103.255.176.0/22 1; +103.255.212.0/22 1; +103.255.252.0/22 1; +104.28.43.56/29 1; +104.28.66.129/32 1; +104.28.66.130/31 1; +104.28.66.132/30 1; +104.28.66.136/32 1; +104.28.69.129/32 1; +104.28.69.130/31 1; +104.28.69.132/30 1; +104.28.69.136/32 1; +104.28.83.101/32 1; +104.28.83.102/31 1; +104.28.83.104/30 1; +104.28.83.108/32 1; +104.28.99.97/32 1; +104.28.99.98/31 1; +104.28.99.100/30 1; +104.28.99.104/32 1; +104.28.101.97/32 1; +104.28.101.98/31 1; +104.28.101.100/30 1; +104.28.101.104/32 1; +104.28.117.131/32 1; +104.28.117.132/30 1; +104.28.117.136/31 1; +104.28.117.138/32 1; +104.28.120.131/32 1; +104.28.120.132/30 1; +104.28.120.136/31 1; +104.28.120.138/32 1; +104.28.136.161/32 1; +104.28.136.162/31 1; +104.28.136.164/30 1; +104.28.137.168/32 1; +104.28.139.160/32 1; +104.28.141.23/32 1; +104.28.141.24/29 1; +104.28.141.32/31 1; +104.28.141.34/32 1; +104.28.142.82/32 1; +104.28.143.31/32 1; +104.28.143.32/32 1; +104.28.143.176/29 1; +104.28.143.207/32 1; +104.28.143.208/32 1; +104.28.143.217/32 1; +104.28.143.218/32 1; +104.28.143.225/32 1; +104.28.148.205/32 1; +104.28.148.206/31 1; +104.28.148.208/28 1; +104.28.148.224/29 1; +104.28.148.232/31 1; +104.28.149.193/32 1; +104.28.149.194/31 1; +104.28.149.196/30 1; +104.28.149.200/31 1; +104.28.149.202/32 1; +104.28.150.49/32 1; +104.28.150.50/31 1; +104.28.150.52/30 1; +104.28.150.56/32 1; +104.28.150.133/32 1; +104.28.150.134/32 1; +104.28.150.176/31 1; +104.28.151.234/31 1; +104.28.156.205/32 1; +104.28.156.206/31 1; +104.28.156.208/28 1; +104.28.156.224/29 1; +104.28.156.232/31 1; +104.28.157.193/32 1; +104.28.157.194/31 1; +104.28.157.196/30 1; +104.28.157.200/31 1; +104.28.157.202/32 1; +104.28.158.49/32 1; +104.28.158.50/31 1; +104.28.158.52/30 1; +104.28.158.56/32 1; +104.28.158.133/32 1; +104.28.158.134/32 1; +104.28.158.176/31 1; +104.28.159.94/32 1; +104.28.159.234/31 1; +104.28.160.181/32 1; +104.28.160.182/31 1; +104.28.160.184/30 1; +104.28.160.198/31 1; +104.28.160.200/31 1; +104.28.160.202/32 1; +104.28.161.228/32 1; +104.28.163.30/31 1; +104.28.163.49/32 1; +104.28.163.50/31 1; +104.28.163.52/30 1; +104.28.163.56/32 1; +104.28.163.84/31 1; +104.28.163.94/31 1; +104.28.163.102/32 1; +104.28.166.47/32 1; +104.28.166.48/30 1; +104.28.166.52/31 1; +104.28.167.53/32 1; +104.28.183.20/30 1; +104.28.183.24/30 1; +104.28.215.67/32 1; +104.28.215.68/30 1; +104.28.215.72/31 1; +104.28.215.74/32 1; +104.28.247.67/32 1; +104.28.247.68/30 1; +104.28.247.72/31 1; +104.28.247.74/32 1; +104.29.59.0/24 1; +104.29.67.0/24 1; +104.29.68.0/23 1; +104.30.132.11/32 1; +104.30.132.199/32 1; +104.30.133.15/32 1; +104.30.133.65/32 1; +104.30.133.99/32 1; +104.30.133.132/32 1; +104.30.133.134/32 1; +104.30.133.185/32 1; +104.30.133.200/32 1; +104.30.134.238/32 1; +104.30.135.54/32 1; +104.30.135.60/32 1; +104.30.135.91/32 1; +104.30.135.103/32 1; +104.30.135.118/32 1; +104.30.135.157/32 1; +104.30.160.36/32 1; +104.30.160.82/32 1; +104.30.160.228/32 1; +104.30.161.55/32 1; +104.30.161.67/32 1; +104.30.161.103/32 1; +104.30.161.133/32 1; +104.30.161.185/32 1; +104.30.161.223/32 1; +104.30.161.233/32 1; +104.30.162.2/32 1; +104.30.162.23/32 1; +104.30.162.43/32 1; +104.30.162.53/32 1; +104.30.162.114/32 1; +104.30.162.141/32 1; +104.30.163.20/32 1; +104.30.163.79/32 1; +104.30.163.104/32 1; +104.30.163.214/32 1; +104.30.164.10/32 1; +104.30.164.51/32 1; +104.30.164.252/32 1; +104.30.165.40/32 1; +104.30.165.46/32 1; +104.30.165.76/32 1; +104.30.165.147/32 1; +104.30.165.251/32 1; +104.30.165.254/32 1; +104.30.166.90/32 1; +104.30.166.248/32 1; +104.30.167.117/32 1; +104.30.167.208/31 1; +104.30.167.226/32 1; +104.30.167.253/32 1; +104.30.168.74/32 1; +104.30.168.115/32 1; +104.30.168.172/32 1; +104.30.170.211/32 1; +104.30.170.215/32 1; +104.30.172.98/31 1; +104.30.172.106/32 1; +104.30.172.249/32 1; +104.30.173.15/32 1; +104.30.173.36/32 1; +104.30.173.90/32 1; +104.30.173.143/32 1; +104.30.175.42/32 1; +104.30.175.46/32 1; +104.30.175.58/32 1; +104.30.176.93/32 1; +104.30.176.101/32 1; +104.30.177.107/32 1; +104.30.177.113/32 1; +104.30.177.216/32 1; +104.30.178.38/32 1; +104.30.178.125/32 1; +104.30.178.143/32 1; +104.30.179.30/32 1; +104.30.179.40/32 1; +104.30.179.193/32 1; +104.30.179.195/32 1; +104.44.87.0/24 1; +104.44.88.192/27 1; +104.44.90.224/27 1; +104.44.91.192/27 1; +104.44.94.96/28 1; +104.44.118.0/24 1; +104.44.217.206/31 1; +104.44.218.128/25 1; +104.44.224.0/22 1; +104.46.24.0/22 1; +104.47.26.128/25 1; +104.47.27.0/26 1; +104.47.66.128/26 1; +104.47.115.0/24 1; +104.47.120.0/24 1; +104.47.123.0/24 1; +104.47.124.0/24 1; +104.70.160.0/23 1; +104.70.181.0/24 1; +104.70.182.0/23 1; +104.70.235.0/24 1; +104.70.236.0/22 1; +104.71.48.0/22 1; +104.74.20.0/22 1; +104.74.24.0/24 1; +104.75.164.0/22 1; +104.76.128.0/20 1; +104.79.96.0/19 1; +104.79.196.0/24 1; +104.84.150.0/24 1; +104.85.64.0/19 1; +104.85.192.0/19 1; +104.89.96.0/20 1; +104.89.126.0/23 1; +104.89.128.0/19 1; +104.89.160.0/22 1; +104.91.80.0/20 1; +104.101.221.0/24 1; +104.102.245.0/24 1; +104.110.72.0/21 1; +104.111.128.0/18 1; +104.111.192.0/20 1; +104.115.38.0/24 1; +104.132.122.0/24 1; +104.143.32.0/21 1; +104.143.40.0/22 1; +104.143.47.0/24 1; +104.143.87.0/24 1; +104.146.39.64/26 1; +104.146.54.64/26 1; +104.146.54.128/26 1; +104.146.138.0/23 1; +104.147.178.0/23 1; +104.147.180.0/23 1; +104.147.246.64/26 1; +104.147.246.128/25 1; +104.160.143.176/31 1; +104.160.143.202/32 1; +104.160.143.204/31 1; +104.160.159.5/32 1; +104.160.159.32/32 1; +104.160.159.49/32 1; +104.160.159.50/31 1; +104.160.159.52/31 1; +104.160.159.54/32 1; +104.160.159.77/32 1; +104.160.159.78/31 1; +104.160.159.80/30 1; +104.160.159.84/31 1; +104.167.231.0/24 1; +104.192.80.0/21 1; +104.193.182.0/24 1; +104.193.185.0/24 1; +104.194.212.0/23 1; +104.200.66.0/24 1; +104.200.75.0/24 1; +104.207.83.0/24 1; +104.208.64.0/18 1; +104.214.160.0/19 1; +104.233.252.0/22 1; +104.237.91.0/24 1; +104.237.95.0/24 1; +104.238.49.0/24 1; +104.243.250.0/23 1; +104.244.44.0/24 1; +104.245.8.0/24 1; +104.245.12.0/24 1; +104.245.40.0/21 1; +104.250.32.0/21 1; +104.250.44.0/24 1; +104.250.46.0/23 1; +104.250.48.0/22 1; +104.250.56.0/22 1; +104.250.106.0/24 1; +104.250.188.0/24 1; +104.251.224.0/22 1; +104.251.228.0/24 1; +104.251.235.0/24 1; +104.251.236.0/22 1; +104.254.112.0/23 1; +104.254.114.128/25 1; +106.3.0.0/20 1; +106.3.84.0/22 1; +106.3.160.0/22 1; +106.48.48.0/22 1; +106.48.52.0/24 1; +106.48.54.0/23 1; +106.49.97.0/24 1; +106.75.192.0/21 1; +106.75.200.0/22 1; +106.187.0.0/24 1; +107.150.118.0/23 1; +107.150.120.0/22 1; +107.150.124.0/23 1; +107.151.64.0/18 1; +107.151.192.0/21 1; +107.151.201.0/24 1; +107.151.202.0/23 1; +107.151.204.0/22 1; +107.151.208.0/20 1; +107.151.224.0/19 1; +107.154.26.0/24 1; +107.154.125.0/24 1; +107.154.128.0/24 1; +107.154.196.0/22 1; +107.154.200.0/22 1; +107.154.204.0/23 1; +107.154.206.0/24 1; +107.154.221.0/24 1; +107.155.25.0/24 1; +107.155.61.0/24 1; +107.155.109.0/24 1; +107.163.0.0/16 1; +108.161.247.0/24 1; +108.162.222.0/23 1; +108.171.143.0/24 1; +108.175.150.0/24 1; +108.187.0.0/16 1; +109.110.160.0/19 1; +109.111.32.0/19 1; +109.122.0.0/18 1; +109.205.10.110/31 1; +109.205.11.0/27 1; +109.205.11.32/29 1; +109.205.11.48/29 1; +109.205.11.176/29 1; +109.206.244.0/22 1; +109.234.225.0/24 1; +109.236.197.0/24 1; +109.236.203.0/24 1; +109.238.160.0/20 1; +110.4.0.0/19 1; +110.34.156.0/24 1; +110.43.78.0/23 1; +110.76.188.0/22 1; +110.79.0.0/19 1; +110.79.40.0/21 1; +110.79.48.0/20 1; +110.79.64.0/18 1; +110.79.128.0/17 1; +110.92.24.0/21 1; +110.92.64.0/22 1; +110.92.76.0/22 1; +110.165.32.0/19 1; +110.173.48.0/20 1; +110.173.96.0/19 1; +110.232.176.0/24 1; +110.234.48.0/22 1; +110.235.0.0/17 1; +111.68.0.0/20 1; +111.87.5.0/24 1; +111.91.236.0/22 1; +111.92.224.0/20 1; +111.92.240.0/22 1; +111.118.232.0/22 1; +111.119.21.0/24 1; +111.119.22.0/23 1; +111.221.29.0/24 1; +111.221.30.0/23 1; +111.221.58.0/24 1; +111.221.64.0/20 1; +111.221.112.0/21 1; +111.221.120.0/22 1; +111.235.152.0/22 1; +112.73.0.0/18 1; +112.73.128.0/17 1; +112.78.52.0/23 1; +112.78.54.0/24 1; +112.118.0.0/15 1; +112.120.0.0/16 1; +112.121.124.0/22 1; +112.121.160.0/19 1; +112.137.16.0/20 1; +112.213.64.0/20 1; +112.213.96.0/19 1; +113.10.128.0/17 1; +113.20.20.0/22 1; +113.20.132.0/22 1; +113.21.92.0/24 1; +113.21.192.0/19 1; +113.28.0.0/16 1; +113.29.32.0/20 1; +113.29.49.0/24 1; +113.29.50.0/23 1; +113.29.52.0/22 1; +113.29.56.0/21 1; +113.29.80.0/23 1; +113.29.82.0/24 1; +113.29.228.0/23 1; +113.29.252.0/22 1; +113.52.132.0/22 1; +113.52.153.0/24 1; +113.52.154.0/23 1; +113.59.240.0/20 1; +113.197.72.0/24 1; +113.197.112.0/22 1; +113.197.116.0/24 1; +113.208.64.0/22 1; +113.208.72.0/21 1; +113.208.80.0/24 1; +113.208.82.0/23 1; +113.208.84.0/22 1; +113.212.192.0/18 1; +113.252.0.0/14 1; +114.28.192.0/24 1; +114.29.200.0/23 1; +114.29.236.0/22 1; +114.29.252.0/22 1; +114.112.0.0/22 1; +114.112.12.0/22 1; +114.112.16.0/23 1; +114.112.20.0/23 1; +114.112.23.0/24 1; +114.112.112.0/22 1; +114.112.128.0/24 1; +114.112.130.0/24 1; +114.112.132.0/22 1; +114.112.224.0/19 1; +114.113.136.0/22 1; +114.113.192.0/22 1; +114.113.240.0/20 1; +114.134.80.0/22 1; +114.134.84.0/23 1; +114.134.87.0/24 1; +114.134.184.0/21 1; +114.142.144.0/20 1; +114.199.67.0/24 1; +114.199.68.0/23 1; +114.199.76.0/24 1; +115.42.60.0/22 1; +115.85.134.0/24 1; +115.126.0.0/17 1; +115.160.128.0/18 1; +115.178.10.0/23 1; +116.0.64.0/26 1; +116.0.64.64/28 1; +116.0.64.128/26 1; +116.0.64.192/27 1; +116.0.64.224/28 1; +116.0.64.248/29 1; +116.0.82.0/24 1; +116.0.89.0/24 1; +116.0.93.0/24 1; +116.48.0.0/15 1; +116.50.57.0/24 1; +116.66.112.0/21 1; +116.66.124.0/22 1; +116.66.176.0/22 1; +116.66.184.0/22 1; +116.66.208.0/20 1; +116.66.232.0/21 1; +116.68.184.0/21 1; +116.89.240.0/22 1; +116.89.248.0/22 1; +116.90.64.0/21 1; +116.92.0.0/21 1; +116.92.8.0/22 1; +116.92.12.0/23 1; +116.92.14.0/24 1; +116.92.64.0/18 1; +116.92.128.0/17 1; +116.193.158.0/23 1; +116.193.164.0/22 1; +116.193.168.0/22 1; +116.196.14.0/23 1; +116.197.176.0/23 1; +116.197.182.0/23 1; +116.197.188.0/23 1; +116.204.132.0/22 1; +116.204.156.0/22 1; +116.204.176.0/22 1; +116.204.184.0/22 1; +116.204.208.0/22 1; +116.204.216.0/22 1; +116.206.0.0/22 1; +116.206.82.0/24 1; +116.206.92.0/22 1; +116.206.100.0/22 1; +116.206.106.0/23 1; +116.206.109.0/24 1; +116.206.110.0/23 1; +116.206.176.0/22 1; +116.206.208.0/22 1; +116.212.112.0/20 1; +116.213.21.0/24 1; +116.213.22.0/23 1; +116.213.36.0/22 1; +116.213.40.0/22 1; +116.214.110.0/23 1; +116.214.122.0/23 1; +116.251.65.48/28 1; +116.251.65.64/26 1; +116.251.65.128/27 1; +116.251.65.160/30 1; +116.251.65.164/32 1; +116.251.65.179/32 1; +116.251.65.180/30 1; +116.251.65.184/29 1; +116.251.65.192/30 1; +116.251.65.202/31 1; +116.251.65.216/29 1; +116.251.65.224/28 1; +116.251.65.240/29 1; +116.251.65.248/30 1; +116.251.65.252/31 1; +116.251.84.0/23 1; +116.251.204.0/22 1; +116.251.224.0/19 1; +116.254.128.0/24 1; +117.18.0.0/20 1; +117.18.64.0/20 1; +117.18.96.0/20 1; +117.18.112.0/21 1; +117.18.120.0/22 1; +117.18.126.0/24 1; +117.18.224.0/22 1; +117.103.124.0/23 1; +117.103.144.0/20 1; +117.104.189.0/24 1; +117.120.20.0/23 1; +117.120.60.0/22 1; +117.121.144.0/22 1; +117.121.247.0/24 1; +118.26.32.0/21 1; +118.26.96.0/21 1; +118.26.105.0/24 1; +118.26.110.0/23 1; +118.91.240.0/20 1; +118.99.0.0/18 1; +118.102.8.0/21 1; +118.103.144.0/20 1; +118.103.240.0/22 1; +118.103.244.0/24 1; +118.107.0.0/19 1; +118.107.32.0/20 1; +118.107.176.0/21 1; +118.107.192.0/19 1; +118.107.224.0/21 1; +118.107.244.0/22 1; +118.107.248.0/21 1; +118.126.0.0/24 1; +118.126.19.0/24 1; +118.140.0.0/14 1; +118.184.0.0/21 1; +118.184.12.0/22 1; +118.184.16.0/20 1; +118.184.32.0/19 1; +118.184.64.0/22 1; +118.184.69.0/24 1; +118.184.70.0/23 1; +118.184.76.0/22 1; +118.184.80.0/21 1; +118.184.92.0/22 1; +118.184.96.0/21 1; +118.184.104.0/22 1; +118.184.108.0/24 1; +118.184.127.0/24 1; +118.191.216.0/21 1; +118.191.224.0/20 1; +118.191.240.0/21 1; +118.193.4.0/22 1; +118.193.8.0/21 1; +118.193.28.0/23 1; +118.193.30.0/24 1; +118.193.32.0/20 1; +118.193.48.0/21 1; +118.193.58.0/23 1; +118.193.60.0/22 1; +118.193.64.0/20 1; +118.193.93.0/24 1; +118.193.94.0/23 1; +118.193.128.0/17 1; +118.194.224.0/21 1; +118.214.176.0/22 1; +118.214.186.0/23 1; +118.215.40.0/21 1; +119.2.33.0/24 1; +119.8.16.0/20 1; +119.8.32.0/19 1; +119.8.64.0/18 1; +119.9.64.0/18 1; +119.9.192.0/18 1; +119.10.144.0/23 1; +119.10.146.0/24 1; +119.10.148.0/24 1; +119.10.150.0/23 1; +119.10.152.0/21 1; +119.18.185.254/31 1; +119.27.62.0/23 1; +119.28.0.0/18 1; +119.28.64.0/19 1; +119.28.124.0/23 1; +119.28.128.0/20 1; +119.28.164.0/22 1; +119.28.168.0/21 1; +119.28.176.0/20 1; +119.28.192.0/19 1; +119.28.224.0/21 1; +119.31.160.0/24 1; +119.31.165.0/24 1; +119.31.174.0/24 1; +119.31.250.0/24 1; +119.38.224.0/19 1; +119.42.32.0/22 1; +119.42.60.0/22 1; +119.42.144.0/21 1; +119.47.80.0/21 1; +119.59.72.0/21 1; +119.63.96.0/20 1; +119.81.128.0/18 1; +119.81.224.0/19 1; +119.160.232.0/22 1; +119.161.2.0/24 1; +119.161.8.0/23 1; +119.161.53.0/24 1; +119.161.84.0/24 1; +119.161.136.0/21 1; +119.161.144.0/21 1; +119.161.152.0/22 1; +119.235.40.0/21 1; +119.235.176.0/23 1; +119.235.178.0/24 1; +119.235.180.0/24 1; +119.235.188.0/22 1; +119.236.0.0/15 1; +119.246.0.0/15 1; +119.252.136.0/21 1; +119.252.248.0/22 1; +119.252.254.0/23 1; +120.29.192.0/23 1; +120.29.194.0/25 1; +120.29.194.128/27 1; +120.29.194.192/26 1; +120.29.208.32/27 1; +120.29.208.64/27 1; +120.29.208.112/28 1; +120.29.208.128/25 1; +120.29.209.0/24 1; +120.29.210.0/25 1; +120.29.216.0/24 1; +120.29.223.192/29 1; +120.88.192.0/18 1; +120.89.68.0/22 1; +120.136.32.0/20 1; +120.138.36.0/24 1; +120.138.40.0/25 1; +120.138.40.128/26 1; +120.138.40.240/28 1; +120.138.41.0/24 1; +120.138.42.0/23 1; +120.138.192.0/18 1; +121.46.116.0/22 1; +121.50.168.0/22 1; +121.54.160.0/22 1; +121.54.168.0/21 1; +121.54.188.0/22 1; +121.101.144.0/24 1; +121.101.168.0/21 1; +121.127.24.0/24 1; +121.127.224.0/19 1; +121.189.2.20/31 1; +121.202.0.0/15 1; +122.8.0.0/16 1; +122.10.0.0/17 1; +122.10.128.0/22 1; +122.10.160.0/19 1; +122.10.194.0/23 1; +122.10.196.0/22 1; +122.10.200.0/23 1; +122.10.202.0/24 1; +122.10.208.0/24 1; +122.10.220.0/23 1; +122.10.226.0/23 1; +122.10.245.0/24 1; +122.14.129.0/24 1; +122.14.130.0/23 1; +122.14.132.0/22 1; +122.14.136.0/21 1; +122.14.144.0/22 1; +122.14.148.0/23 1; +122.14.150.0/24 1; +122.14.191.0/24 1; +122.112.100.0/22 1; +122.112.104.0/21 1; +122.112.112.0/24 1; +122.112.114.0/23 1; +122.112.116.0/22 1; +122.112.120.0/23 1; +122.112.126.0/23 1; +122.115.64.0/22 1; +122.115.70.0/23 1; +122.115.72.0/21 1; +122.128.99.0/24 1; +122.128.104.0/21 1; +122.152.130.0/23 1; +122.152.132.0/24 1; +122.152.137.0/24 1; +122.152.138.0/23 1; +122.152.141.0/24 1; +122.152.142.0/24 1; +122.152.148.0/24 1; +122.152.150.0/23 1; +122.152.152.0/21 1; +122.152.160.0/23 1; +122.152.169.0/24 1; +122.152.170.0/23 1; +122.152.172.0/22 1; +122.152.176.0/24 1; +122.152.190.0/23 1; +122.200.132.0/22 1; +122.201.32.0/21 1; +122.201.44.0/23 1; +122.248.16.0/21 1; +122.248.136.0/21 1; +122.248.180.0/23 1; +122.254.64.0/20 1; +122.254.92.0/22 1; +123.1.128.0/17 1; +123.49.128.0/23 1; +123.49.140.0/22 1; +123.49.144.0/21 1; +123.58.92.0/22 1; +123.58.194.0/23 1; +123.58.196.0/22 1; +123.58.200.0/21 1; +123.58.208.0/20 1; +123.60.0.0/16 1; +123.103.31.0/24 1; +123.103.240.0/20 1; +123.108.72.0/21 1; +123.108.108.0/22 1; +123.108.120.0/24 1; +123.108.130.0/23 1; +123.136.0.0/20 1; +123.136.80.0/20 1; +123.176.96.0/21 1; +123.202.0.0/15 1; +123.242.224.0/21 1; +123.253.24.0/22 1; +123.253.44.0/22 1; +123.253.100.0/22 1; +123.253.104.0/21 1; +123.253.112.0/22 1; +123.253.168.0/22 1; +123.253.180.0/22 1; +123.253.217.0/24 1; +123.253.218.0/23 1; +123.253.224.0/22 1; +123.254.104.0/21 1; +123.255.64.0/18 1; +124.6.32.0/22 1; +124.108.20.0/23 1; +124.108.22.0/24 1; +124.108.76.128/25 1; +124.108.77.0/24 1; +124.108.80.0/21 1; +124.155.240.0/20 1; +124.156.96.0/19 1; +124.156.128.0/18 1; +124.158.192.0/19 1; +124.173.0.0/19 1; +124.217.128.0/18 1; +124.244.0.0/16 1; +124.248.192.0/18 1; +125.56.185.0/24 1; +125.56.186.0/24 1; +125.59.0.0/16 1; +125.62.68.0/22 1; +125.214.192.0/18 1; +125.215.128.0/17 1; +125.252.73.0/24 1; +125.252.83.0/24 1; +125.252.84.0/25 1; +125.252.86.0/23 1; +125.252.91.0/24 1; +125.252.97.0/24 1; +125.252.98.0/23 1; +125.252.100.0/22 1; +125.252.104.0/22 1; +125.252.108.0/23 1; +125.252.112.0/20 1; +125.253.128.0/22 1; +125.253.136.0/21 1; +125.253.144.0/20 1; +125.253.160.0/19 1; +125.253.192.0/18 1; +128.0.116.0/22 1; +128.1.62.0/24 1; +128.1.66.0/23 1; +128.1.97.0/24 1; +128.1.123.0/24 1; +128.1.131.0/24 1; +128.1.132.0/22 1; +128.1.136.0/23 1; +128.1.138.0/24 1; +128.1.150.0/23 1; +128.1.152.0/24 1; +128.1.156.0/22 1; +128.90.5.0/24 1; +128.90.6.0/23 1; +128.90.16.0/23 1; +128.90.18.0/24 1; +128.90.58.0/24 1; +128.90.66.0/23 1; +128.90.68.0/24 1; +128.90.70.0/23 1; +128.90.72.0/23 1; +128.90.74.0/24 1; +128.90.192.0/21 1; +128.90.222.0/23 1; +128.90.224.0/22 1; +128.90.234.0/24 1; +128.116.0.0/23 1; +128.116.118.0/24 1; +129.192.76.0/24 1; +129.226.8.0/21 1; +129.226.48.0/20 1; +129.226.64.0/18 1; +129.226.128.0/17 1; +129.227.56.0/23 1; +129.227.128.0/19 1; +129.227.168.0/21 1; +129.227.189.0/24 1; +129.227.191.0/24 1; +129.250.2.43/32 1; +131.101.0.0/16 1; +131.253.5.56/29 1; +131.253.5.128/29 1; +131.253.5.200/29 1; +131.253.5.208/28 1; +131.253.5.224/28 1; +131.253.13.100/30 1; +131.253.13.104/30 1; +132.245.58.0/28 1; +132.245.128.0/23 1; +132.245.130.0/25 1; +132.245.130.128/29 1; +132.245.253.64/27 1; +134.8.1.0/24 1; +134.42.224.0/24 1; +134.42.226.0/24 1; +134.42.233.0/24 1; +134.42.234.0/23 1; +134.42.236.0/22 1; +134.122.128.0/21 1; +134.159.0.0/20 1; +134.159.16.0/21 1; +134.159.24.0/22 1; +134.159.28.0/23 1; +134.159.71.0/24 1; +134.159.72.0/21 1; +134.159.80.0/21 1; +134.159.88.0/22 1; +134.159.92.0/24 1; +134.159.96.0/23 1; +134.159.100.0/24 1; +134.159.105.0/24 1; +134.159.106.0/23 1; +134.159.108.0/22 1; +134.159.112.0/20 1; +134.159.128.0/23 1; +134.159.134.0/23 1; +134.159.137.0/24 1; +134.159.138.0/23 1; +134.159.140.0/23 1; +134.159.143.0/24 1; +134.159.144.0/22 1; +134.159.148.0/23 1; +134.159.159.0/24 1; +134.159.161.0/24 1; +134.159.175.0/24 1; +134.159.192.0/18 1; +134.170.136.0/21 1; +134.170.192.0/21 1; +134.170.216.0/24 1; +136.143.224.0/19 1; +136.228.16.0/24 1; +137.59.16.0/21 1; +137.59.80.0/22 1; +137.59.100.0/22 1; +137.59.148.0/22 1; +137.59.212.0/22 1; +137.59.236.0/22 1; +137.83.0.0/24 1; +137.83.152.0/24 1; +137.116.160.0/20 1; +137.189.0.0/16 1; +137.221.93.0/24 1; +138.19.0.0/16 1; +138.43.32.0/20 1; +138.104.232.0/24 1; +138.113.0.0/16 1; +138.242.192.0/19 1; +139.5.108.0/22 1; +139.5.200.0/21 1; +139.5.208.0/21 1; +139.28.48.0/22 1; +139.28.128.0/21 1; +139.28.136.0/22 1; +139.28.172.0/22 1; +139.60.205.0/24 1; +139.122.224.0/20 1; +139.159.48.24/29 1; +139.159.48.32/28 1; +139.159.48.48/29 1; +139.159.48.62/31 1; +139.159.48.78/31 1; +139.159.48.93/32 1; +139.159.48.94/31 1; +139.159.48.146/31 1; +139.159.48.156/30 1; +139.159.48.160/27 1; +139.159.48.192/26 1; +139.159.49.0/24 1; +139.159.50.0/24 1; +139.159.51.0/25 1; +139.159.51.128/27 1; +139.159.51.160/29 1; +139.159.51.168/30 1; +139.159.51.216/30 1; +139.159.51.240/28 1; +139.198.64.0/23 1; +139.198.112.0/22 1; +139.198.120.0/23 1; +140.82.193.0/24 1; +140.99.95.0/24 1; +140.101.192.0/20 1; +140.242.5.0/24 1; +140.242.6.0/23 1; +140.242.9.0/24 1; +141.11.48.0/20 1; +141.98.234.0/24 1; +141.101.110.0/24 1; +141.101.147.0/24 1; +141.160.26.0/24 1; +141.183.0.0/16 1; +141.193.112.0/23 1; +141.193.228.0/24 1; +141.226.231.0/24 1; +142.54.23.0/24 1; +142.252.249.0/24 1; +142.252.250.0/23 1; +142.252.252.0/22 1; +143.58.15.0/24 1; +143.58.16.0/22 1; +143.58.20.0/23 1; +143.89.0.0/16 1; +143.92.32.0/19 1; +144.2.3.0/24 1; +144.48.4.0/23 1; +144.48.8.0/22 1; +144.48.56.0/22 1; +144.48.68.0/22 1; +144.48.124.0/22 1; +144.48.140.0/22 1; +144.48.188.0/22 1; +144.48.192.0/21 1; +144.48.216.0/21 1; +144.48.236.0/22 1; +144.48.240.0/22 1; +144.48.252.0/22 1; +144.177.100.0/22 1; +144.177.104.0/21 1; +144.177.112.0/20 1; +144.178.14.0/24 1; +144.211.96.0/24 1; +144.214.0.0/16 1; +144.250.40.0/23 1; +146.88.128.0/23 1; +146.88.152.0/24 1; +146.88.164.0/24 1; +146.88.172.0/24 1; +146.112.11.0/24 1; +146.112.54.0/24 1; +146.112.114.0/23 1; +146.112.149.0/24 1; +146.112.197.0/24 1; +146.112.251.0/24 1; +146.196.52.0/22 1; +146.196.72.0/21 1; +146.196.80.0/22 1; +146.196.88.0/22 1; +146.222.1.0/24 1; +146.222.2.0/23 1; +146.222.4.0/22 1; +146.222.8.0/22 1; +146.222.12.0/24 1; +146.222.15.0/24 1; +146.222.16.0/22 1; +146.222.20.0/24 1; +146.222.23.0/24 1; +146.222.24.0/24 1; +146.222.49.0/24 1; +146.222.50.0/23 1; +146.222.52.0/22 1; +146.222.56.0/22 1; +146.222.80.0/24 1; +146.222.82.0/24 1; +146.222.93.0/24 1; +146.222.194.0/24 1; +146.222.198.0/23 1; +146.222.231.0/24 1; +146.222.232.0/21 1; +146.222.240.0/20 1; +147.8.0.0/16 1; +147.75.42.0/23 1; +147.78.152.0/22 1; +147.92.32.0/20 1; +147.139.0.0/17 1; +147.161.32.0/19 1; +147.243.0.32/27 1; +147.243.0.64/26 1; +147.243.0.128/26 1; +147.243.5.0/25 1; +147.243.5.128/27 1; +147.243.11.192/27 1; +147.243.13.224/27 1; +147.243.15.32/27 1; +147.243.15.64/26 1; +147.243.26.0/24 1; +148.64.0.0/24 1; +148.66.0.0/19 1; +148.66.48.0/20 1; +148.153.126.0/23 1; +148.163.225.0/24 1; +149.6.36.56/31 1; +149.71.112.0/21 1; +149.71.120.0/22 1; +149.71.124.0/23 1; +149.71.126.0/24 1; +149.96.96.0/22 1; +149.104.0.0/16 1; +149.120.224.0/19 1; +149.129.64.0/18 1; +150.107.0.0/22 1; +150.107.44.0/22 1; +150.109.32.0/19 1; +150.109.64.0/20 1; +150.109.96.0/19 1; +150.129.32.0/22 1; +150.129.40.0/22 1; +150.129.76.0/22 1; +150.129.80.0/22 1; +150.129.152.0/22 1; +150.129.211.0/24 1; +150.129.216.0/22 1; +150.130.116.0/22 1; +150.222.47.128/25 1; +150.222.48.0/26 1; +150.222.114.0/24 1; +150.222.135.0/24 1; +150.242.36.0/24 1; +150.242.39.0/24 1; +150.242.124.0/22 1; +150.242.208.0/21 1; +150.242.216.0/22 1; +150.242.228.0/22 1; +150.251.0.0/24 1; +151.101.76.0/22 1; +151.106.195.0/24 1; +151.139.56.0/22 1; +151.139.104.0/23 1; +151.148.19.0/24 1; +151.236.20.0/24 1; +152.32.128.0/21 1; +152.32.136.0/24 1; +152.32.168.0/21 1; +152.32.176.0/20 1; +152.32.192.0/18 1; +152.89.84.0/22 1; +152.101.0.0/16 1; +152.103.0.0/16 1; +152.104.0.0/18 1; +152.104.64.0/19 1; +152.195.186.0/23 1; +152.195.188.0/23 1; +153.254.86.0/23 1; +153.254.107.0/24 1; +153.254.108.0/22 1; +153.254.117.0/24 1; +153.254.118.0/24 1; +154.3.11.0/24 1; +154.3.32.0/21 1; +154.6.160.0/19 1; +154.6.192.0/18 1; +154.7.0.0/18 1; +154.7.64.0/20 1; +154.7.80.0/23 1; +154.7.82.0/24 1; +154.8.64.0/18 1; +154.9.24.0/21 1; +154.12.16.0/20 1; +154.12.88.0/21 1; +154.16.10.0/24 1; +154.16.96.0/24 1; +154.16.132.0/24 1; +154.16.150.0/23 1; +154.16.153.0/24 1; +154.16.222.0/24 1; +154.16.232.0/23 1; +154.16.242.0/23 1; +154.18.4.0/22 1; +154.18.8.0/21 1; +154.23.224.0/19 1; +154.54.50.192/30 1; +154.54.84.216/29 1; +154.54.87.122/32 1; +154.80.128.0/17 1; +154.83.64.0/18 1; +154.83.128.0/17 1; +154.84.0.0/17 1; +154.85.0.0/23 1; +154.85.4.0/22 1; +154.85.16.0/20 1; +154.85.40.0/22 1; +154.85.44.0/23 1; +154.85.48.0/20 1; +154.85.124.0/22 1; +154.85.128.0/17 1; +154.86.0.0/15 1; +154.88.0.0/15 1; +154.90.4.0/22 1; +154.90.33.0/24 1; +154.90.34.0/23 1; +154.90.36.0/22 1; +154.90.40.0/21 1; +154.90.48.0/20 1; +154.90.64.0/18 1; +154.90.128.0/17 1; +154.91.0.0/16 1; +154.92.0.0/15 1; +154.94.0.0/17 1; +154.95.4.0/22 1; +154.95.8.0/21 1; +154.95.16.0/21 1; +154.95.40.0/21 1; +154.95.48.0/20 1; +154.95.64.0/18 1; +154.95.128.0/17 1; +154.193.0.0/17 1; +154.194.0.0/15 1; +154.196.0.0/15 1; +154.198.0.0/16 1; +154.201.1.0/24 1; +154.201.16.0/20 1; +154.201.32.0/19 1; +154.201.64.0/18 1; +154.201.128.0/17 1; +154.202.0.0/15 1; +154.204.0.0/14 1; +154.208.0.0/24 1; +154.208.2.0/23 1; +154.208.4.0/22 1; +154.208.8.0/22 1; +154.208.32.0/19 1; +154.208.64.0/18 1; +154.208.128.0/17 1; +154.209.0.0/16 1; +154.210.0.0/15 1; +154.212.0.0/15 1; +154.214.4.0/22 1; +154.214.8.0/21 1; +154.214.64.0/18 1; +154.214.128.0/18 1; +154.214.192.0/19 1; +154.214.224.0/20 1; +154.214.240.0/21 1; +154.214.248.0/22 1; +154.214.252.0/23 1; +154.214.254.0/24 1; +154.215.0.0/16 1; +154.216.0.0/14 1; +154.220.0.0/15 1; +154.222.0.0/22 1; +154.222.8.0/21 1; +154.222.16.0/20 1; +154.222.32.0/19 1; +154.222.64.0/18 1; +154.222.128.0/22 1; +154.222.132.0/24 1; +154.222.181.0/24 1; +154.222.182.0/23 1; +154.222.184.0/21 1; +154.222.192.0/18 1; +154.223.0.0/19 1; +154.223.32.0/22 1; +154.223.56.0/22 1; +154.223.60.0/24 1; +154.223.63.0/24 1; +154.223.64.0/18 1; +154.223.128.0/18 1; +154.223.192.0/19 1; +154.223.224.0/20 1; +154.223.240.0/23 1; +154.223.242.0/24 1; +155.72.104.0/23 1; +155.72.106.0/24 1; +155.133.244.0/24 1; +155.159.0.0/16 1; +155.235.128.0/22 1; +155.235.244.0/22 1; +155.235.248.0/21 1; +155.254.106.0/23 1; +155.254.221.0/24 1; +156.20.30.0/23 1; +156.59.0.0/16 1; +156.96.99.0/24 1; +156.96.100.0/22 1; +156.96.104.0/23 1; +156.96.106.0/24 1; +156.96.138.0/23 1; +156.107.156.0/22 1; +156.146.44.0/23 1; +156.224.0.0/14 1; +156.229.8.0/21 1; +156.229.16.0/20 1; +156.229.64.0/18 1; +156.232.128.0/17 1; +156.233.0.0/16 1; +156.234.0.0/16 1; +156.235.0.0/20 1; +156.235.32.0/19 1; +156.235.64.0/18 1; +156.235.128.0/17 1; +156.236.0.0/15 1; +156.238.0.0/21 1; +156.238.8.0/22 1; +156.238.12.0/23 1; +156.238.18.0/23 1; +156.238.28.0/22 1; +156.238.32.0/19 1; +156.238.64.0/18 1; +156.238.128.0/20 1; +156.238.144.0/22 1; +156.238.148.0/23 1; +156.238.150.0/24 1; +156.239.0.0/20 1; +156.239.16.0/21 1; +156.239.64.0/18 1; +156.239.128.0/17 1; +156.240.0.0/14 1; +156.244.0.0/15 1; +156.249.24.0/23 1; +156.250.0.0/24 1; +156.250.2.0/23 1; +156.250.4.0/22 1; +156.250.8.0/21 1; +156.250.16.0/20 1; +156.250.32.0/19 1; +156.250.64.0/18 1; +156.250.128.0/17 1; +156.251.0.0/16 1; +156.253.0.0/16 1; +156.254.0.0/15 1; +157.52.81.0/24 1; +157.119.20.0/22 1; +157.119.68.0/22 1; +157.119.72.0/22 1; +157.119.92.0/22 1; +157.119.100.0/22 1; +157.119.112.0/22 1; +157.119.232.0/22 1; +157.120.224.0/21 1; +157.120.232.0/23 1; +157.120.255.255/32 1; +157.167.36.0/22 1; +157.185.142.0/23 1; +157.185.185.0/24 1; +157.185.186.0/23 1; +157.240.199.0/24 1; +157.240.211.0/24 1; +157.254.32.0/19 1; +158.116.198.0/23 1; +158.116.200.0/21 1; +158.116.208.0/20 1; +158.132.0.0/16 1; +158.140.254.0/24 1; +158.140.255.0/27 1; +158.140.255.32/28 1; +158.140.255.48/29 1; +158.140.255.56/30 1; +158.140.255.60/31 1; +158.182.0.0/16 1; +158.255.208.0/24 1; +159.45.249.0/24 1; +159.63.23.32/30 1; +159.63.49.220/30 1; +159.63.51.228/30 1; +159.100.177.0/24 1; +159.100.206.0/24 1; +159.117.41.0/24 1; +159.117.42.0/23 1; +159.117.44.0/22 1; +159.117.96.0/21 1; +159.117.133.128/25 1; +159.117.134.0/23 1; +159.117.205.0/24 1; +159.117.224.0/19 1; +159.138.0.0/17 1; +159.138.128.0/19 1; +159.155.136.0/21 1; +159.180.89.0/24 1; +159.248.133.0/24 1; +159.253.1.0/24 1; +159.253.2.0/23 1; +160.19.48.0/22 1; +160.19.52.0/24 1; +160.20.52.0/22 1; +160.20.56.0/21 1; +160.30.128.0/17 1; +160.83.104.0/23 1; +160.121.0.0/16 1; +160.122.0.0/16 1; +160.124.0.0/16 1; +160.181.128.0/17 1; +160.202.44.0/22 1; +160.202.56.0/22 1; +160.202.63.0/24 1; +160.202.168.0/22 1; +160.235.128.0/18 1; +160.238.34.0/23 1; +160.238.58.0/23 1; +160.238.84.0/22 1; +161.69.88.0/23 1; +161.81.0.0/16 1; +161.123.160.0/19 1; +161.123.192.0/19 1; +161.123.240.0/22 1; +161.129.47.0/24 1; +161.145.96.0/19 1; +161.145.128.0/17 1; +161.162.12.0/24 1; +161.202.32.0/19 1; +161.242.176.0/20 1; +162.56.0.0/16 1; +162.88.50.0/24 1; +162.88.64.0/22 1; +162.128.0.0/16 1; +162.158.113.0/24 1; +162.158.114.0/24 1; +162.158.176.0/24 1; +162.158.178.0/23 1; +162.158.193.0/24 1; +162.159.97.0/24 1; +162.159.98.0/24 1; +162.209.240.0/20 1; +162.211.180.0/22 1; +162.213.0.0/22 1; +162.218.26.0/23 1; +162.219.32.0/21 1; +162.219.80.0/21 1; +162.222.166.0/23 1; +162.222.194.0/24 1; +162.245.124.0/22 1; +162.245.220.0/23 1; +162.247.0.0/21 1; +162.247.96.0/22 1; +162.247.100.0/23 1; +162.251.20.0/22 1; +162.251.92.0/22 1; +163.47.44.0/23 1; +163.53.16.0/22 1; +163.53.44.0/22 1; +163.53.216.0/22 1; +163.53.244.0/22 1; +163.116.200.0/24 1; +163.171.193.0/24 1; +163.171.194.0/24 1; +163.171.198.0/24 1; +163.171.202.0/23 1; +163.171.246.0/23 1; +163.171.251.0/24 1; +163.171.252.0/22 1; +163.181.32.0/22 1; +163.181.40.0/21 1; +163.181.48.0/20 1; +163.181.64.0/18 1; +163.181.128.0/18 1; +163.197.0.0/18 1; +164.52.3.0/24 1; +164.52.4.0/24 1; +164.52.12.0/22 1; +164.52.27.0/24 1; +164.52.33.0/24 1; +164.52.34.0/23 1; +164.52.70.0/23 1; +164.52.72.0/21 1; +164.52.80.0/20 1; +164.52.96.0/21 1; +164.52.104.0/23 1; +164.55.249.0/24 1; +164.88.0.0/16 1; +164.90.64.0/21 1; +164.90.76.0/22 1; +164.90.80.0/23 1; +164.90.89.0/24 1; +164.90.90.0/23 1; +164.90.92.0/22 1; +164.90.96.0/20 1; +164.90.112.0/22 1; +164.90.116.0/23 1; +164.90.125.0/24 1; +164.90.126.0/23 1; +164.155.0.0/16 1; +165.3.120.0/24 1; +165.42.0.0/15 1; +165.84.128.0/18 1; +165.84.192.0/24 1; +165.84.232.0/24 1; +165.84.248.0/24 1; +165.84.253.0/24 1; +165.84.254.0/24 1; +165.154.0.0/19 1; +165.154.32.0/20 1; +165.202.0.0/16 1; +165.225.116.0/23 1; +165.254.220.0/24 1; +166.81.0.0/16 1; +167.103.0.0/16 1; +167.148.0.0/16 1; +167.179.48.0/20 1; +167.179.200.0/21 1; +167.179.212.0/22 1; +168.63.128.0/19 1; +168.63.192.0/19 1; +168.70.0.0/16 1; +168.76.0.0/16 1; +168.106.0.0/16 1; +168.128.112.0/21 1; +168.168.254.0/23 1; +168.206.0.0/16 1; +169.56.224.0/19 1; +169.196.66.0/23 1; +169.196.68.0/22 1; +170.10.209.0/24 1; +170.16.120.0/22 1; +170.16.136.0/22 1; +170.33.0.0/22 1; +170.48.128.0/20 1; +170.149.234.0/23 1; +170.149.252.0/23 1; +171.33.242.0/23 1; +172.68.98.0/24 1; +172.68.211.0/24 1; +172.68.225.0/24 1; +172.68.248.0/24 1; +172.69.96.0/23 1; +172.70.32.0/24 1; +172.70.36.0/24 1; +172.70.40.0/24 1; +172.70.202.0/24 1; +172.71.209.0/24 1; +172.71.210.0/23 1; +172.71.213.0/24 1; +172.71.214.0/23 1; +172.71.217.0/24 1; +172.71.218.0/23 1; +172.81.102.0/23 1; +172.81.104.0/22 1; +172.81.109.0/24 1; +172.81.111.0/24 1; +172.81.120.0/21 1; +172.83.252.0/22 1; +172.93.165.0/24 1; +172.93.188.0/23 1; +172.94.94.0/23 1; +172.94.128.0/24 1; +172.96.185.0/24 1; +172.99.20.0/23 1; +172.99.22.0/24 1; +172.102.0.0/22 1; +172.111.66.192/27 1; +172.111.72.32/28 1; +172.111.113.0/24 1; +172.111.114.0/23 1; +172.111.141.0/24 1; +172.111.142.0/24 1; +172.111.164.0/24 1; +172.111.168.0/24 1; +172.111.175.0/24 1; +172.111.192.0/23 1; +172.111.234.0/24 1; +172.217.24.32/27 1; +172.217.24.64/27 1; +172.217.24.192/27 1; +172.217.25.0/27 1; +172.217.26.128/27 1; +172.217.31.224/27 1; +172.224.25.0/24 1; +172.224.153.0/24 1; +172.224.177.0/24 1; +172.224.191.0/24 1; +172.226.224.0/20 1; +172.240.128.0/22 1; +172.241.216.0/21 1; +172.247.134.0/23 1; +172.247.136.0/21 1; +172.247.144.0/20 1; +172.247.160.0/22 1; +172.247.164.0/23 1; +172.253.4.0/23 1; +172.253.6.0/24 1; +172.253.64.110/31 1; +172.253.66.70/31 1; +172.253.66.72/32 1; +172.253.66.78/32 1; +172.253.66.218/31 1; +172.253.66.220/31 1; +172.253.68.154/31 1; +172.253.75.82/31 1; +172.253.75.84/31 1; +172.253.76.72/29 1; +172.253.76.80/30 1; +172.253.77.116/31 1; +172.253.237.0/24 1; +173.39.128.0/18 1; +173.39.192.0/20 1; +173.82.208.0/24 1; +173.194.4.0/26 1; +173.194.4.64/27 1; +173.194.4.160/27 1; +173.194.4.192/26 1; +173.194.51.192/28 1; +173.194.59.48/28 1; +173.194.59.64/26 1; +173.194.127.0/24 1; +173.209.192.0/24 1; +173.211.116.0/22 1; +173.223.80.0/20 1; +173.223.232.0/24 1; +173.239.212.0/24 1; +173.239.253.0/24 1; +173.245.62.0/24 1; +173.248.224.0/19 1; +173.249.187.0/24 1; +173.249.188.0/22 1; +174.138.144.0/20 1; +175.29.0.0/16 1; +175.41.2.0/23 1; +175.41.4.0/24 1; +175.41.6.0/23 1; +175.41.8.0/22 1; +175.41.12.0/23 1; +175.41.15.0/24 1; +175.41.16.0/20 1; +175.41.60.12/31 1; +175.45.0.0/18 1; +175.100.164.0/24 1; +175.100.166.0/23 1; +175.100.193.0/24 1; +175.100.194.0/23 1; +175.100.196.0/22 1; +175.100.200.0/21 1; +175.111.96.0/22 1; +175.159.0.0/16 1; +175.176.152.0/22 1; +175.176.168.0/24 1; +175.176.171.96/27 1; +175.176.171.128/25 1; +175.176.172.0/22 1; +175.176.176.0/21 1; +175.176.192.0/22 1; +175.176.224.0/24 1; +175.176.234.0/24 1; +175.176.252.0/22 1; +176.32.124.125/32 1; +176.32.124.127/32 1; +176.105.228.0/22 1; +176.119.148.0/22 1; +176.121.91.0/24 1; +178.20.208.0/22 1; +178.171.52.0/23 1; +178.173.224.0/19 1; +178.208.182.0/23 1; +178.208.184.0/24 1; +178.236.40.0/21 1; +178.236.232.0/24 1; +178.237.167.0/24 1; +178.249.208.0/21 1; +179.61.227.0/24 1; +179.61.229.0/24 1; +179.61.234.0/23 1; +179.61.241.0/24 1; +179.61.242.0/23 1; +179.61.244.0/22 1; +179.61.248.0/21 1; +180.76.0.0/20 1; +180.87.1.0/27 1; +180.87.1.128/25 1; +180.87.3.0/28 1; +180.87.3.32/28 1; +180.87.4.16/28 1; +180.87.5.128/25 1; +180.87.6.0/24 1; +180.87.10.0/23 1; +180.87.13.0/24 1; +180.87.27.0/24 1; +180.87.31.0/24 1; +180.87.90.0/24 1; +180.87.93.24/30 1; +180.87.112.0/24 1; +180.87.113.0/25 1; +180.87.114.0/24 1; +180.87.121.0/24 1; +180.87.122.0/23 1; +180.87.129.0/24 1; +180.87.141.0/24 1; +180.87.143.64/26 1; +180.87.144.0/24 1; +180.87.146.0/24 1; +180.87.147.144/28 1; +180.87.149.32/27 1; +180.87.149.64/26 1; +180.87.149.128/25 1; +180.87.150.0/23 1; +180.87.153.0/24 1; +180.87.160.0/22 1; +180.87.165.0/24 1; +180.87.166.0/23 1; +180.87.168.0/21 1; +180.87.176.0/23 1; +180.87.178.0/24 1; +180.87.190.0/23 1; +180.87.192.0/18 1; +180.92.180.0/22 1; +180.92.188.0/22 1; +180.94.224.0/21 1; +180.131.144.0/22 1; +180.131.160.0/19 1; +180.149.34.0/23 1; +180.149.236.0/22 1; +180.149.252.0/22 1; +180.150.128.0/19 1; +180.178.32.0/19 1; +180.178.76.0/24 1; +180.178.78.0/23 1; +180.188.128.0/18 1; +180.188.192.0/21 1; +180.188.200.0/22 1; +180.210.220.0/22 1; +180.210.224.0/22 1; +180.210.228.0/23 1; +180.214.160.0/21 1; +180.215.0.0/16 1; +180.219.0.0/16 1; +180.222.104.0/23 1; +180.222.200.0/22 1; +180.223.128.0/24 1; +180.233.118.0/24 1; +180.233.160.0/23 1; +180.233.165.0/24 1; +180.233.167.0/24 1; +180.233.168.0/21 1; +180.233.176.0/20 1; +180.235.132.0/22 1; +180.235.136.0/23 1; +180.235.139.0/24 1; +180.235.152.0/22 1; +180.240.135.20/30 1; +180.240.135.24/29 1; +180.240.135.32/27 1; +180.240.135.64/26 1; +180.240.135.128/25 1; +180.240.136.0/24 1; +181.41.195.0/24 1; +181.41.196.0/23 1; +181.41.198.0/24 1; +181.41.211.0/24 1; +181.214.119.0/24 1; +181.214.120.0/21 1; +181.214.216.0/24 1; +181.214.237.0/24 1; +181.214.248.0/23 1; +181.215.22.0/23 1; +181.215.24.0/23 1; +181.215.26.0/24 1; +182.16.0.0/17 1; +182.50.4.0/22 1; +182.54.130.0/23 1; +182.54.244.0/22 1; +182.61.64.0/18 1; +182.61.160.0/19 1; +182.152.0.0/15 1; +182.160.0.0/18 1; +182.161.32.0/22 1; +182.161.40.0/23 1; +182.161.43.0/24 1; +182.161.52.0/22 1; +182.161.60.0/22 1; +182.161.68.0/22 1; +182.161.72.0/24 1; +182.173.76.0/22 1; +182.237.0.0/22 1; +182.239.44.0/23 1; +182.239.48.0/20 1; +182.239.64.0/18 1; +182.255.24.0/22 1; +182.255.32.0/22 1; +182.255.44.0/22 1; +182.255.60.0/22 1; +183.78.176.0/22 1; +183.80.132.0/28 1; +183.81.172.0/22 1; +183.87.32.0/19 1; +183.87.64.0/18 1; +183.87.128.0/19 1; +183.90.184.0/21 1; +183.91.32.0/19 1; +183.177.74.0/23 1; +183.177.76.0/25 1; +183.177.76.128/26 1; +183.177.77.101/32 1; +183.177.77.103/32 1; +183.177.77.128/25 1; +183.177.78.128/25 1; +183.177.79.0/24 1; +183.177.80.64/26 1; +183.177.80.128/25 1; +183.177.81.0/24 1; +183.177.82.0/23 1; +183.177.90.0/23 1; +183.178.0.0/15 1; +183.182.0.0/21 1; +183.182.8.0/23 1; +183.182.12.0/22 1; +183.182.16.0/23 1; +183.182.23.0/24 1; +183.182.24.0/21 1; +183.182.80.0/22 1; +184.24.154.0/24 1; +184.26.91.0/24 1; +184.26.92.0/24 1; +184.26.166.0/23 1; +184.27.204.0/24 1; +184.27.207.0/24 1; +184.28.5.0/24 1; +184.28.7.0/24 1; +184.28.12.0/22 1; +184.28.34.0/23 1; +184.28.117.0/24 1; +184.28.158.0/23 1; +184.28.218.0/24 1; +184.28.223.0/24 1; +184.29.32.0/22 1; +184.29.39.0/24 1; +184.30.8.0/21 1; +184.50.87.0/24 1; +184.50.90.0/23 1; +184.50.92.0/23 1; +184.51.15.0/24 1; +184.51.41.0/24 1; +184.51.102.0/24 1; +184.51.136.0/22 1; +184.51.240.0/22 1; +184.84.48.0/20 1; +184.84.172.0/22 1; +184.84.204.0/22 1; +184.84.208.0/22 1; +184.84.239.0/24 1; +184.84.245.0/24 1; +184.85.112.0/20 1; +184.85.208.0/24 1; +184.86.99.0/24 1; +184.87.96.0/20 1; +184.87.132.0/22 1; +184.87.174.0/23 1; +184.87.198.0/23 1; +184.87.224.0/20 1; +184.105.64.126/31 1; +184.105.64.128/31 1; +184.105.80.52/30 1; +184.105.222.100/31 1; +184.105.223.116/30 1; +184.164.202.0/24 1; +184.174.4.0/22 1; +184.174.17.0/24 1; +184.174.18.0/23 1; +184.174.20.0/22 1; +184.174.24.0/21 1; +184.174.32.0/21 1; +185.2.48.0/24 1; +185.2.50.0/23 1; +185.2.160.0/22 1; +185.6.129.0/24 1; +185.10.105.0/24 1; +185.23.200.0/23 1; +185.28.220.0/24 1; +185.36.204.0/22 1; +185.37.221.0/25 1; +185.37.221.176/28 1; +185.37.223.22/31 1; +185.38.34.0/24 1; +185.45.47.0/24 1; +185.46.236.0/22 1; +185.48.251.0/24 1; +185.51.164.0/22 1; +185.56.44.0/22 1; +185.62.127.0/24 1; +185.62.166.0/23 1; +185.64.142.0/24 1; +185.65.62.0/23 1; +185.69.120.0/22 1; +185.78.106.0/23 1; +185.80.200.0/22 1; +185.81.68.0/22 1; +185.82.48.0/24 1; +185.84.60.0/23 1; +185.85.0.0/24 1; +185.89.219.0/24 1; +185.91.112.0/22 1; +185.91.132.0/22 1; +185.93.57.0/24 1; +185.93.59.0/24 1; +185.94.19.0/24 1; +185.96.247.0/24 1; +185.101.168.0/22 1; +185.103.28.0/24 1; +185.106.176.0/22 1; +185.113.92.0/22 1; +185.115.105.0/24 1; +185.121.242.0/24 1; +185.123.53.0/24 1; +185.125.225.0/24 1; +185.126.148.0/22 1; +185.133.195.0/24 1; +185.135.72.0/23 1; +185.135.74.0/24 1; +185.135.78.0/23 1; +185.135.136.0/22 1; +185.137.9.0/24 1; +185.140.53.0/24 1; +185.140.54.0/24 1; +185.142.143.0/24 1; +185.162.112.0/22 1; +185.165.84.0/22 1; +185.165.154.0/24 1; +185.167.232.0/21 1; +185.171.0.0/24 1; +185.174.60.0/24 1; +185.175.68.0/24 1; +185.182.48.0/23 1; +185.184.220.0/23 1; +185.185.12.0/24 1; +185.189.240.0/22 1; +185.191.127.0/24 1; +185.199.14.0/24 1; +185.202.222.0/24 1; +185.207.152.0/22 1; +185.207.176.0/24 1; +185.208.171.0/24 1; +185.211.48.0/24 1; +185.211.132.0/24 1; +185.211.134.0/24 1; +185.212.160.0/22 1; +185.213.60.0/22 1; +185.216.116.0/22 1; +185.216.248.0/22 1; +185.221.218.0/24 1; +185.221.231.0/24 1; +185.223.164.0/23 1; +185.224.168.0/22 1; +185.225.168.0/22 1; +185.226.104.0/22 1; +185.227.152.0/22 1; +185.228.184.0/22 1; +185.229.200.0/22 1; +185.230.181.0/24 1; +185.232.92.0/22 1; +185.235.86.0/24 1; +185.235.164.0/22 1; +185.236.172.0/22 1; +185.237.55.0/24 1; +185.237.166.32/27 1; +185.237.166.64/26 1; +185.237.166.128/25 1; +185.237.167.0/24 1; +185.238.224.0/22 1; +185.239.84.0/22 1; +185.239.224.0/24 1; +185.241.40.0/22 1; +185.242.232.0/22 1; +185.243.6.0/23 1; +185.243.43.0/24 1; +185.243.240.0/22 1; +185.244.0.0/22 1; +185.245.40.0/22 1; +185.246.112.0/22 1; +185.247.180.0/22 1; +185.247.228.0/22 1; +185.249.60.0/22 1; +185.249.221.0/24 1; +185.250.41.0/24 1; +185.251.44.0/23 1; +185.251.248.0/23 1; +188.42.204.0/22 1; +188.64.176.0/21 1; +188.95.8.0/21 1; +188.130.228.0/22 1; +188.172.201.0/24 1; +188.172.211.0/24 1; +188.214.228.0/22 1; +188.214.232.0/21 1; +188.215.120.0/21 1; +188.215.236.0/22 1; +190.98.154.0/24 1; +190.98.155.0/25 1; +191.96.3.0/24 1; +191.96.88.0/22 1; +191.96.99.0/24 1; +191.96.116.0/23 1; +191.96.120.0/23 1; +191.96.149.0/24 1; +191.96.164.0/24 1; +191.96.182.0/24 1; +191.96.206.0/24 1; +191.96.234.0/23 1; +191.96.240.0/22 1; +191.96.254.0/23 1; +191.101.34.0/23 1; +191.101.36.0/23 1; +191.101.132.0/23 1; +191.101.134.0/24 1; +191.101.148.0/24 1; +191.101.176.0/24 1; +191.101.212.0/22 1; +191.101.216.0/21 1; +191.234.2.0/23 1; +191.234.16.0/20 1; +191.237.238.0/24 1; +192.8.37.0/24 1; +192.12.3.0/24 1; +192.19.236.0/24 1; +192.30.19.0/24 1; +192.33.31.0/24 1; +192.35.12.0/22 1; +192.58.134.0/23 1; +192.64.203.0/24 1; +192.64.204.0/24 1; +192.67.160.0/23 1; +192.75.137.0/24 1; +192.80.16.44/30 1; +192.80.16.48/30 1; +192.81.248.0/22 1; +192.84.168.0/24 1; +192.88.170.0/24 1; +192.94.174.0/24 1; +192.101.75.0/24 1; +192.101.84.0/24 1; +192.109.143.0/24 1; +192.131.142.0/23 1; +192.137.156.0/24 1; +192.145.20.0/22 1; +192.147.55.0/24 1; +192.149.239.0/24 1; +192.151.192.0/24 1; +192.151.226.0/23 1; +192.151.228.0/22 1; +192.151.232.0/21 1; +192.151.248.0/21 1; +192.154.16.0/21 1; +192.154.24.0/23 1; +192.155.160.0/19 1; +192.156.144.0/24 1; +192.156.220.0/24 1; +192.157.191.0/24 1; +192.158.244.0/24 1; +192.163.16.0/24 1; +192.163.20.0/24 1; +192.163.160.0/19 1; +192.166.244.0/24 1; +192.169.96.0/19 1; +192.186.0.0/24 1; +192.186.57.0/24 1; +192.186.58.0/23 1; +192.186.60.0/22 1; +192.188.82.0/23 1; +192.193.127.0/24 1; +192.193.128.0/21 1; +192.197.113.0/24 1; +192.203.183.0/24 1; +192.203.184.0/23 1; +192.206.102.0/24 1; +192.207.91.0/24 1; +192.223.128.0/24 1; +192.230.84.0/24 1; +192.230.89.0/24 1; +192.230.90.0/23 1; +192.230.94.0/23 1; +192.230.106.0/23 1; +192.237.68.0/22 1; +192.237.72.0/23 1; +192.245.155.0/24 1; +192.245.196.0/24 1; +192.245.208.0/24 1; +192.249.42.0/23 1; +192.249.80.0/20 1; +192.250.240.0/20 1; +192.252.176.0/20 1; +192.253.224.0/20 1; +192.253.240.0/24 1; +192.253.242.0/24 1; +192.253.251.0/24 1; +192.253.252.0/24 1; +192.254.89.0/24 1; +192.254.91.0/24 1; +192.254.93.0/24 1; +192.254.94.0/24 1; +193.8.80.0/22 1; +193.17.124.0/22 1; +193.22.156.0/24 1; +193.28.202.0/24 1; +193.28.237.0/24 1; +193.31.41.0/24 1; +193.34.38.0/23 1; +193.36.112.0/22 1; +193.37.235.0/24 1; +193.37.239.0/24 1; +193.38.250.0/24 1; +193.41.248.0/24 1; +193.42.15.0/24 1; +193.42.24.0/23 1; +193.42.26.0/24 1; +193.42.132.0/24 1; +193.42.135.0/24 1; +193.42.149.0/24 1; +193.47.60.0/22 1; +193.84.85.0/24 1; +193.84.248.0/23 1; +193.105.177.0/24 1; +193.105.207.0/24 1; +193.105.244.0/23 1; +193.107.216.0/22 1; +193.108.88.0/24 1; +193.108.96.0/23 1; +193.110.200.0/22 1; +193.111.30.0/23 1; +193.118.134.0/23 1; +193.118.136.0/24 1; +193.118.159.0/24 1; +193.134.163.0/24 1; +193.142.18.0/24 1; +193.142.22.0/24 1; +193.150.8.0/22 1; +193.150.40.0/24 1; +193.160.213.0/24 1; +193.163.240.0/24 1; +193.164.222.0/23 1; +193.168.4.0/23 1; +193.176.20.0/22 1; +193.176.211.0/24 1; +193.178.56.0/22 1; +193.187.116.0/22 1; +193.200.102.0/23 1; +193.200.130.0/24 1; +193.200.134.0/24 1; +193.200.149.0/24 1; +193.200.152.0/24 1; +193.203.214.0/23 1; +193.218.38.0/23 1; +193.227.103.0/24 1; +193.227.109.0/24 1; +193.227.114.0/24 1; +193.232.82.0/24 1; +193.232.127.0/24 1; +193.239.86.0/24 1; +193.239.150.0/24 1; +193.239.154.0/23 1; +193.239.190.0/23 1; +193.242.106.0/24 1; +193.243.150.0/23 1; +194.5.52.0/24 1; +194.5.64.0/22 1; +194.5.225.0/24 1; +194.15.39.0/24 1; +194.28.164.0/24 1; +194.29.186.0/23 1; +194.31.148.0/23 1; +194.31.150.0/24 1; +194.31.180.0/22 1; +194.32.81.0/24 1; +194.32.148.0/23 1; +194.36.243.0/24 1; +194.41.36.0/23 1; +194.41.38.0/24 1; +194.41.58.0/23 1; +194.41.114.0/24 1; +194.42.70.0/23 1; +194.42.72.0/23 1; +194.49.109.0/24 1; +194.50.18.0/24 1; +194.56.180.0/22 1; +194.56.226.0/24 1; +194.61.72.0/22 1; +194.69.147.0/24 1; +194.105.58.0/23 1; +194.105.62.0/23 1; +194.113.164.0/24 1; +194.119.12.0/22 1; +194.126.202.0/24 1; +194.145.142.0/23 1; +194.145.196.0/23 1; +194.145.237.0/24 1; +194.146.84.0/22 1; +194.147.4.0/22 1; +194.153.252.0/22 1; +194.156.60.0/22 1; +194.156.98.0/23 1; +194.156.132.0/23 1; +194.156.157.0/24 1; +194.169.168.0/22 1; +194.176.144.128/25 1; +194.246.114.0/23 1; +195.2.3.0/24 1; +195.2.14.4/30 1; +195.2.14.76/30 1; +195.10.43.32/27 1; +195.10.43.88/29 1; +195.10.43.96/28 1; +195.21.4.0/24 1; +195.21.28.0/22 1; +195.21.32.0/19 1; +195.21.64.0/18 1; +195.22.223.128/25 1; +195.59.144.0/22 1; +195.59.148.0/23 1; +195.89.107.128/30 1; +195.114.192.0/19 1; +195.129.28.0/22 1; +195.130.202.0/24 1; +195.143.68.0/24 1; +195.190.130.0/24 1; +195.190.139.0/24 1; +195.191.206.0/23 1; +196.3.44.0/24 1; +196.12.69.0/24 1; +196.12.70.0/23 1; +196.12.72.0/24 1; +196.17.94.0/24 1; +196.19.106.0/23 1; +196.52.38.0/24 1; +196.52.116.0/22 1; +196.52.128.128/25 1; +196.52.129.0/25 1; +196.52.129.128/28 1; +196.52.131.128/25 1; +196.52.165.128/26 1; +196.52.165.192/27 1; +196.52.167.0/24 1; +196.53.130.160/27 1; +196.53.130.192/26 1; +196.53.131.0/24 1; +196.53.150.128/25 1; +196.53.151.0/24 1; +196.53.233.160/27 1; +196.53.233.192/26 1; +196.53.234.0/23 1; +196.54.129.128/25 1; +196.54.130.0/23 1; +196.197.200.0/22 1; +196.198.11.0/24 1; +196.198.79.0/24 1; +196.198.143.0/24 1; +196.198.207.0/24 1; +196.199.50.0/24 1; +196.199.114.0/24 1; +196.199.242.0/24 1; +196.240.242.0/24 1; +196.242.11.0/24 1; +196.242.79.0/24 1; +196.242.143.0/24 1; +196.242.207.0/24 1; +196.243.16.0/21 1; +196.244.11.0/24 1; +196.244.79.0/24 1; +196.244.207.0/24 1; +196.245.200.0/22 1; +196.247.200.0/22 1; +196.251.64.0/23 1; +196.251.66.0/24 1; +198.11.12.0/23 1; +198.11.184.0/21 1; +198.35.65.0/24 1; +198.41.234.0/24 1; +198.44.160.0/20 1; +198.44.176.0/22 1; +198.44.180.0/23 1; +198.44.183.0/24 1; +198.44.184.0/21 1; +198.44.228.0/22 1; +198.44.232.0/21 1; +198.44.240.0/20 1; +198.47.126.0/24 1; +198.58.86.0/24 1; +198.99.173.0/24 1; +198.105.76.0/23 1; +198.143.50.0/24 1; +198.143.53.0/24 1; +198.148.195.0/24 1; +198.176.49.0/24 1; +198.177.121.0/24 1; +198.179.225.0/24 1; +198.181.55.0/24 1; +198.212.222.0/24 1; +198.232.54.0/24 1; +198.240.131.0/24 1; +199.9.24.0/21 1; +199.15.76.0/22 1; +199.27.84.0/24 1; +199.27.227.0/24 1; +199.33.119.0/24 1; +199.43.18.0/23 1; +199.43.63.0/24 1; +199.47.78.0/24 1; +199.48.244.0/24 1; +199.48.247.0/24 1; +199.53.69.0/24 1; +199.58.88.0/22 1; +199.59.231.0/24 1; +199.68.218.0/23 1; +199.88.194.0/24 1; +199.101.194.0/23 1; +199.101.196.0/22 1; +199.119.64.0/24 1; +199.119.136.0/21 1; +199.167.248.0/22 1; +199.181.130.0/24 1; +199.184.151.0/24 1; +199.189.172.0/22 1; +199.190.44.0/24 1; +199.192.72.0/24 1; +199.192.218.0/24 1; +199.201.47.0/24 1; +199.204.228.0/22 1; +199.212.57.0/24 1; +199.230.2.0/23 1; +199.231.64.0/21 1; +199.245.31.252/30 1; +199.245.115.0/24 1; +199.253.242.0/24 1; +199.253.247.0/24 1; +202.0.128.0/20 1; +202.0.160.0/20 1; +202.0.176.0/21 1; +202.1.2.0/24 1; +202.1.6.0/23 1; +202.1.64.0/19 1; +202.1.96.0/20 1; +202.1.232.0/24 1; +202.2.32.0/20 1; +202.2.48.0/22 1; +202.2.64.0/20 1; +202.2.80.0/21 1; +202.3.6.0/23 1; +202.3.124.0/24 1; +202.3.134.0/24 1; +202.4.26.0/23 1; +202.4.162.0/23 1; +202.4.192.0/19 1; +202.6.0.0/23 1; +202.6.94.0/24 1; +202.6.192.0/20 1; +202.7.128.0/20 1; +202.8.31.0/24 1; +202.8.88.0/22 1; +202.8.93.0/24 1; +202.8.104.0/22 1; +202.8.120.0/22 1; +202.9.39.0/24 1; +202.9.60.0/22 1; +202.9.82.0/24 1; +202.10.72.0/23 1; +202.12.4.0/22 1; +202.14.4.0/22 1; +202.14.67.0/24 1; +202.14.68.0/24 1; +202.14.80.0/24 1; +202.14.116.0/24 1; +202.20.98.0/24 1; +202.20.100.0/23 1; +202.20.111.0/24 1; +202.20.115.0/24 1; +202.20.116.0/24 1; +202.20.118.0/24 1; +202.22.240.0/21 1; +202.38.16.0/20 1; +202.38.178.0/23 1; +202.40.8.0/22 1; +202.40.12.0/23 1; +202.40.14.0/24 1; +202.40.16.0/20 1; +202.40.128.0/22 1; +202.40.132.0/23 1; +202.40.134.0/24 1; +202.40.137.0/24 1; +202.40.138.0/23 1; +202.40.141.0/24 1; +202.40.142.0/24 1; +202.40.146.0/23 1; +202.40.148.0/23 1; +202.40.151.0/24 1; +202.40.152.0/23 1; +202.40.154.0/24 1; +202.40.157.0/24 1; +202.40.160.0/23 1; +202.40.168.0/22 1; +202.40.192.0/19 1; +202.41.143.0/24 1; +202.41.224.0/22 1; +202.41.228.0/23 1; +202.41.230.0/24 1; +202.43.82.0/23 1; +202.43.91.0/24 1; +202.43.124.0/22 1; +202.43.202.0/23 1; +202.43.204.0/22 1; +202.43.208.0/20 1; +202.43.227.0/24 1; +202.43.232.0/21 1; +202.44.120.0/21 1; +202.45.4.0/23 1; +202.45.8.0/23 1; +202.45.14.0/24 1; +202.45.32.0/19 1; +202.45.64.0/19 1; +202.45.128.0/24 1; +202.45.130.0/23 1; +202.45.148.0/24 1; +202.45.176.0/20 1; +202.45.192.0/18 1; +202.46.32.0/22 1; +202.46.36.0/23 1; +202.46.38.0/24 1; +202.46.41.0/24 1; +202.46.42.0/23 1; +202.46.44.0/22 1; +202.46.48.0/20 1; +202.47.134.0/23 1; +202.47.143.0/24 1; +202.47.200.0/24 1; +202.47.204.128/25 1; +202.47.208.0/22 1; +202.47.223.0/24 1; +202.51.128.0/19 1; +202.52.33.0/24 1; +202.52.35.0/24 1; +202.52.42.0/23 1; +202.52.47.0/24 1; +202.52.136.0/24 1; +202.52.144.0/24 1; +202.52.192.0/19 1; +202.53.128.0/22 1; +202.53.132.0/23 1; +202.53.136.0/22 1; +202.53.142.0/24 1; +202.53.148.0/22 1; +202.53.153.0/24 1; +202.55.0.0/20 1; +202.55.16.0/21 1; +202.55.24.0/23 1; +202.55.26.0/24 1; +202.55.28.0/23 1; +202.55.32.0/19 1; +202.56.8.0/21 1; +202.57.192.0/20 1; +202.57.220.0/22 1; +202.58.101.0/24 1; +202.58.104.0/23 1; +202.58.106.0/24 1; +202.58.185.0/24 1; +202.58.186.0/23 1; +202.58.188.0/22 1; +202.59.152.0/21 1; +202.59.232.0/23 1; +202.59.249.0/24 1; +202.60.224.0/19 1; +202.61.64.0/22 1; +202.61.84.0/22 1; +202.61.97.0/24 1; +202.61.103.0/24 1; +202.61.111.0/24 1; +202.61.128.0/21 1; +202.62.192.0/19 1; +202.62.247.0/24 1; +202.63.0.0/19 1; +202.64.0.0/16 1; +202.65.96.0/20 1; +202.65.192.0/19 1; +202.65.248.0/21 1; +202.66.0.0/17 1; +202.66.128.0/19 1; +202.66.168.0/22 1; +202.66.192.0/21 1; +202.66.200.0/23 1; +202.66.202.0/24 1; +202.66.208.0/20 1; +202.66.224.0/19 1; +202.67.128.0/17 1; +202.68.0.0/18 1; +202.68.192.0/20 1; +202.69.0.0/22 1; +202.69.6.0/23 1; +202.69.64.0/19 1; +202.69.128.0/22 1; +202.69.240.0/20 1; +202.70.160.0/20 1; +202.71.192.0/18 1; +202.72.0.0/19 1; +202.72.228.0/22 1; +202.72.252.0/22 1; +202.73.0.0/22 1; +202.73.4.0/23 1; +202.73.6.0/24 1; +202.73.170.0/23 1; +202.73.172.0/22 1; +202.73.176.0/22 1; +202.73.180.0/24 1; +202.74.0.0/22 1; +202.74.35.0/24 1; +202.74.40.0/23 1; +202.74.55.0/24 1; +202.74.62.0/23 1; +202.74.96.0/24 1; +202.74.101.168/29 1; +202.74.101.176/28 1; +202.74.101.192/26 1; +202.74.102.0/23 1; +202.74.104.0/22 1; +202.74.112.0/22 1; +202.74.232.0/22 1; +202.75.0.0/22 1; +202.75.64.0/19 1; +202.76.0.0/18 1; +202.76.64.0/23 1; +202.76.67.0/24 1; +202.76.69.0/24 1; +202.76.70.0/23 1; +202.76.72.0/21 1; +202.76.80.0/20 1; +202.76.96.0/19 1; +202.77.0.0/20 1; +202.77.17.0/24 1; +202.77.18.0/23 1; +202.77.20.0/22 1; +202.77.24.0/21 1; +202.77.32.0/19 1; +202.77.128.0/21 1; +202.77.140.0/22 1; +202.77.144.0/20 1; +202.77.160.0/19 1; +202.77.192.0/18 1; +202.78.0.0/21 1; +202.78.252.0/22 1; +202.79.168.0/21 1; +202.79.252.0/22 1; +202.80.0.0/19 1; +202.80.109.0/24 1; +202.80.110.0/24 1; +202.80.128.0/20 1; +202.81.224.0/19 1; +202.82.0.0/16 1; +202.83.0.0/20 1; +202.83.192.0/19 1; +202.83.240.0/21 1; +202.84.128.0/18 1; +202.84.192.0/20 1; +202.84.208.0/21 1; +202.84.216.0/23 1; +202.84.218.0/24 1; +202.84.221.104/29 1; +202.84.221.112/28 1; +202.84.221.128/25 1; +202.84.222.0/23 1; +202.84.224.0/19 1; +202.85.0.0/17 1; +202.85.128.0/18 1; +202.85.192.0/20 1; +202.85.224.0/20 1; +202.85.248.0/21 1; +202.86.0.0/22 1; +202.86.64.0/19 1; +202.86.252.0/22 1; +202.87.0.0/22 1; +202.88.0.0/23 1; +202.88.3.0/24 1; +202.88.4.0/22 1; +202.88.8.0/21 1; +202.88.16.0/24 1; +202.88.24.0/21 1; +202.88.96.0/22 1; +202.88.100.0/23 1; +202.88.102.0/24 1; +202.88.104.0/21 1; +202.88.112.0/20 1; +202.88.200.0/21 1; +202.89.0.0/22 1; +202.89.16.0/23 1; +202.89.18.0/24 1; +202.89.252.0/22 1; +202.90.248.0/24 1; +202.90.251.0/24 1; +202.91.36.0/22 1; +202.92.160.0/19 1; +202.93.6.0/23 1; +202.93.192.0/20 1; +202.93.234.0/23 1; +202.93.236.0/22 1; +202.94.68.0/24 1; +202.94.75.0/24 1; +202.94.87.0/24 1; +202.94.224.0/20 1; +202.95.6.0/23 1; +202.95.8.0/21 1; +202.95.16.0/20 1; +202.97.22.126/31 1; +202.97.24.14/31 1; +202.97.25.212/31 1; +202.97.25.226/31 1; +202.97.25.230/31 1; +202.97.30.237/32 1; +202.97.30.248/31 1; +202.97.32.20/31 1; +202.97.32.30/31 1; +202.97.32.120/31 1; +202.97.32.128/30 1; +202.97.34.114/31 1; +202.97.34.128/30 1; +202.97.37.238/31 1; +202.97.37.242/31 1; +202.97.41.118/31 1; +202.97.42.150/31 1; +202.97.45.8/30 1; +202.97.49.186/31 1; +202.97.55.204/30 1; +202.97.55.208/30 1; +202.97.58.138/31 1; +202.97.61.38/31 1; +202.97.61.40/29 1; +202.97.61.54/31 1; +202.97.61.58/31 1; +202.97.61.62/31 1; +202.97.61.130/31 1; +202.97.61.132/30 1; +202.97.61.136/30 1; +202.97.61.186/31 1; +202.97.61.188/30 1; +202.97.61.202/31 1; +202.97.62.16/28 1; +202.97.62.32/28 1; +202.97.62.48/29 1; +202.97.62.56/30 1; +202.97.62.70/31 1; +202.97.62.80/28 1; +202.97.62.96/27 1; +202.97.62.128/25 1; +202.97.63.110/31 1; +202.97.63.118/31 1; +202.97.63.126/31 1; +202.97.91.82/31 1; +202.97.91.84/30 1; +202.97.91.90/31 1; +202.97.91.92/30 1; +202.97.91.102/31 1; +202.97.91.110/31 1; +202.97.91.114/31 1; +202.97.91.116/30 1; +202.97.93.2/31 1; +202.97.93.4/30 1; +202.97.93.8/29 1; +202.97.93.16/31 1; +202.122.96.0/20 1; +202.123.64.0/19 1; +202.123.112.0/22 1; +202.123.160.0/20 1; +202.123.192.0/19 1; +202.124.28.0/22 1; +202.124.248.0/24 1; +202.125.90.0/23 1; +202.125.192.0/18 1; +202.126.48.0/20 1; +202.126.208.0/20 1; +202.127.64.0/22 1; +202.127.68.0/24 1; +202.127.70.0/23 1; +202.127.75.0/24 1; +202.127.76.0/23 1; +202.127.78.0/24 1; +202.127.168.0/21 1; +202.128.99.0/24 1; +202.128.104.0/23 1; +202.128.128.0/22 1; +202.128.132.0/23 1; +202.128.134.0/24 1; +202.128.136.0/21 1; +202.128.144.0/20 1; +202.128.224.0/19 1; +202.130.64.0/18 1; +202.130.128.0/18 1; +202.131.32.0/20 1; +202.131.48.0/22 1; +202.131.57.0/24 1; +202.131.64.0/20 1; +202.133.8.0/21 1; +202.134.55.0/24 1; +202.134.60.0/22 1; +202.134.64.0/18 1; +202.135.167.0/24 1; +202.135.172.0/24 1; +202.135.174.0/24 1; +202.135.184.0/22 1; +202.135.188.0/23 1; +202.135.244.0/22 1; +202.135.252.0/22 1; +202.140.64.0/18 1; +202.140.132.0/23 1; +202.140.224.0/19 1; +202.146.96.0/19 1; +202.146.216.0/21 1; +202.147.13.0/24 1; +202.147.14.0/23 1; +202.147.16.0/21 1; +202.147.24.0/24 1; +202.147.42.0/23 1; +202.147.53.0/24 1; +202.147.55.0/24 1; +202.147.56.0/22 1; +202.147.60.0/25 1; +202.147.60.128/26 1; +202.147.60.192/27 1; +202.147.60.224/32 1; +202.150.13.0/24 1; +202.151.33.0/24 1; +202.153.8.0/21 1; +202.153.88.0/21 1; +202.153.96.0/19 1; +202.155.86.0/23 1; +202.155.88.0/21 1; +202.155.96.0/21 1; +202.155.112.0/22 1; +202.155.152.0/21 1; +202.155.176.0/24 1; +202.155.178.0/23 1; +202.155.188.0/22 1; +202.155.192.0/18 1; +202.157.180.0/23 1; +202.160.140.0/22 1; +202.160.152.0/22 1; +202.161.160.0/20 1; +202.162.74.0/24 1; +202.162.98.0/23 1; +202.162.100.0/23 1; +202.162.103.0/24 1; +202.162.104.0/22 1; +202.162.109.0/24 1; +202.162.110.0/23 1; +202.162.184.0/22 1; +202.163.0.0/19 1; +202.164.27.0/24 1; +202.165.71.0/24 1; +202.165.120.0/22 1; +202.167.232.0/22 1; +202.167.248.0/23 1; +202.167.250.0/24 1; +202.167.255.0/24 1; +202.168.95.0/24 1; +202.168.148.0/22 1; +202.168.208.0/21 1; +202.169.0.0/20 1; +202.170.0.0/19 1; +202.171.208.0/21 1; +202.174.8.0/21 1; +202.174.121.0/24 1; +202.174.128.0/23 1; +202.174.130.0/24 1; +202.174.131.32/27 1; +202.174.131.64/26 1; +202.174.131.128/25 1; +202.174.136.0/23 1; +202.174.138.0/24 1; +202.174.142.192/26 1; +202.174.143.0/28 1; +202.174.143.16/29 1; +202.174.143.72/29 1; +202.174.143.112/28 1; +202.174.143.128/25 1; +202.174.144.128/25 1; +202.174.145.0/24 1; +202.174.146.0/23 1; +202.174.148.0/22 1; +202.174.152.0/21 1; +202.177.0.0/19 1; +202.177.192.0/24 1; +202.177.199.0/24 1; +202.177.200.0/23 1; +202.177.204.0/23 1; +202.179.152.0/22 1; +202.180.160.0/20 1; +202.181.0.0/22 1; +202.181.24.0/22 1; +202.181.128.0/21 1; +202.181.155.0/24 1; +202.181.156.0/22 1; +202.181.160.0/19 1; +202.181.192.0/20 1; +202.181.208.0/21 1; +202.181.219.0/24 1; +202.181.224.0/19 1; +202.182.224.0/19 1; +202.183.32.0/23 1; +202.189.96.0/19 1; +203.0.252.0/22 1; +203.7.160.0/21 1; +203.8.24.0/21 1; +203.9.150.0/24 1; +203.11.128.0/24 1; +203.12.88.0/21 1; +203.12.200.0/21 1; +203.13.80.0/21 1; +203.14.106.0/23 1; +203.14.108.0/22 1; +203.14.112.0/23 1; +203.14.166.0/24 1; +203.14.184.0/21 1; +203.16.239.0/24 1; +203.18.50.0/24 1; +203.18.177.0/24 1; +203.19.32.0/21 1; +203.20.136.0/22 1; +203.20.152.0/21 1; +203.22.186.0/24 1; +203.23.127.0/24 1; +203.23.128.0/24 1; +203.25.48.0/21 1; +203.25.68.0/22 1; +203.25.72.0/21 1; +203.25.80.0/23 1; +203.25.158.0/24 1; +203.26.226.0/23 1; +203.28.57.0/24 1; +203.28.58.0/23 1; +203.28.60.0/22 1; +203.28.64.0/21 1; +203.28.72.0/24 1; +203.29.222.0/24 1; +203.30.49.0/24 1; +203.31.32.0/23 1; +203.31.76.0/24 1; +203.33.14.0/23 1; +203.33.189.0/24 1; +203.34.252.0/23 1; +203.56.87.0/24 1; +203.56.90.0/23 1; +203.56.231.0/24 1; +203.56.253.0/24 1; +203.60.0.0/17 1; +203.60.160.0/19 1; +203.60.192.0/18 1; +203.62.132.0/23 1; +203.62.147.0/24 1; +203.62.195.0/24 1; +203.77.128.0/19 1; +203.77.160.0/20 1; +203.77.188.0/22 1; +203.78.5.0/24 1; +203.78.6.0/23 1; +203.78.32.0/20 1; +203.78.64.0/19 1; +203.78.136.0/21 1; +203.79.33.0/24 1; +203.79.34.0/23 1; +203.79.37.0/24 1; +203.79.38.0/23 1; +203.79.40.0/21 1; +203.80.0.0/22 1; +203.80.64.0/18 1; +203.80.176.0/21 1; +203.80.184.0/22 1; +203.80.192.0/18 1; +203.81.176.0/22 1; +203.81.180.0/23 1; +203.81.182.0/24 1; +203.81.252.0/22 1; +203.82.8.0/21 1; +203.82.157.0/24 1; +203.82.158.0/23 1; +203.82.222.0/23 1; +203.82.252.0/22 1; +203.83.8.0/22 1; +203.83.64.0/18 1; +203.83.252.0/22 1; +203.84.0.0/18 1; +203.84.128.0/23 1; +203.84.133.0/24 1; +203.84.208.64/26 1; +203.84.208.128/28 1; +203.84.208.160/27 1; +203.84.208.192/26 1; +203.84.209.0/24 1; +203.84.210.0/26 1; +203.84.210.64/29 1; +203.84.210.72/30 1; +203.84.210.76/31 1; +203.84.213.0/24 1; +203.84.214.0/23 1; +203.84.218.0/23 1; +203.84.220.0/22 1; +203.85.0.0/16 1; +203.86.128.0/18 1; +203.86.232.0/21 1; +203.86.252.0/23 1; +203.88.64.0/22 1; +203.88.68.0/24 1; +203.88.70.96/27 1; +203.88.70.128/25 1; +203.88.73.0/24 1; +203.88.74.0/24 1; +203.88.78.0/23 1; +203.88.82.176/28 1; +203.88.82.192/26 1; +203.88.83.0/24 1; +203.88.84.0/22 1; +203.88.88.0/22 1; +203.88.93.0/24 1; +203.88.95.0/24 1; +203.88.160.0/20 1; +203.89.6.0/23 1; +203.89.10.0/23 1; +203.89.12.0/22 1; +203.89.133.0/24 1; +203.90.6.0/23 1; +203.90.224.0/19 1; +203.91.128.0/19 1; +203.92.211.0/24 1; +203.92.216.0/21 1; +203.95.192.0/22 1; +203.95.212.0/22 1; +203.96.164.0/22 1; +203.98.128.0/18 1; +203.98.192.0/24 1; +203.98.193.0/28 1; +203.98.200.0/26 1; +203.98.202.160/28 1; +203.99.20.0/23 1; +203.99.29.0/24 1; +203.99.143.0/24 1; +203.100.48.0/21 1; +203.100.57.0/24 1; +203.100.128.0/19 1; +203.104.16.0/29 1; +203.104.180.0/23 1; +203.105.0.0/18 1; +203.110.235.0/24 1; +203.110.236.0/22 1; +203.112.80.0/20 1; +203.112.224.0/21 1; +203.112.232.0/23 1; +203.112.234.0/24 1; +203.114.252.0/22 1; +203.119.2.0/24 1; +203.119.33.0/24 1; +203.119.87.0/24 1; +203.119.120.0/21 1; +203.121.154.0/23 1; +203.121.156.0/23 1; +203.121.158.0/24 1; +203.121.175.0/24 1; +203.121.181.0/24 1; +203.121.182.0/23 1; +203.121.184.0/24 1; +203.121.187.0/24 1; +203.123.168.0/21 1; +203.123.176.0/20 1; +203.124.8.0/21 1; +203.128.224.0/24 1; +203.129.8.0/22 1; +203.129.64.0/19 1; +203.131.224.0/19 1; +203.132.192.0/20 1; +203.135.128.0/19 1; +203.142.10.0/23 1; +203.142.28.0/22 1; +203.142.88.0/21 1; +203.142.96.0/19 1; +203.145.64.0/19 1; +203.147.110.0/23 1; +203.152.5.0/24 1; +203.152.21.0/24 1; +203.152.22.0/23 1; +203.152.45.0/24 1; +203.152.46.0/24 1; +203.152.51.0/24 1; +203.153.4.0/23 1; +203.160.32.0/24 1; +203.160.34.0/23 1; +203.160.36.0/22 1; +203.160.40.0/21 1; +203.160.52.0/22 1; +203.160.64.0/19 1; +203.160.104.0/21 1; +203.160.140.0/23 1; +203.160.142.0/24 1; +203.161.4.0/22 1; +203.161.224.0/19 1; +203.163.104.0/24 1; +203.163.107.64/26 1; +203.163.113.0/24 1; +203.163.114.0/23 1; +203.163.116.0/22 1; +203.166.220.0/22 1; +203.167.16.0/24 1; +203.167.20.0/22 1; +203.168.128.0/17 1; +203.169.0.0/22 1; +203.169.32.0/20 1; +203.169.56.0/22 1; +203.169.60.0/24 1; +203.169.62.0/23 1; +203.169.128.0/17 1; +203.170.28.0/22 1; +203.170.49.0/24 1; +203.170.83.0/24 1; +203.170.90.0/23 1; +203.174.32.0/19 1; +203.174.80.2/31 1; +203.174.80.4/30 1; +203.174.80.8/29 1; +203.174.80.16/28 1; +203.174.80.32/27 1; +203.174.80.64/26 1; +203.174.80.128/25 1; +203.174.81.0/24 1; +203.174.82.0/23 1; +203.174.84.0/22 1; +203.174.112.0/20 1; +203.175.12.0/22 1; +203.176.114.0/23 1; +203.176.124.0/22 1; +203.176.192.0/18 1; +203.184.128.0/17 1; +203.185.0.0/18 1; +203.185.189.0/24 1; +203.186.0.0/16 1; +203.187.145.0/24 1; +203.188.64.0/18 1; +203.189.26.0/23 1; +203.189.160.0/20 1; +203.189.232.0/21 1; +203.190.38.0/23 1; +203.190.120.0/21 1; +203.191.3.0/24 1; +203.191.16.0/24 1; +203.191.19.0/24 1; +203.191.20.0/23 1; +203.191.22.0/24 1; +203.191.24.0/22 1; +203.192.134.0/23 1; +203.192.137.0/24 1; +203.192.139.0/24 1; +203.192.144.0/23 1; +203.192.146.0/24 1; +203.192.147.0/25 1; +203.192.147.128/26 1; +203.192.153.0/24 1; +203.192.156.0/24 1; +203.192.174.0/23 1; +203.192.176.0/24 1; +203.192.178.0/24 1; +203.192.180.0/24 1; +203.192.187.0/24 1; +203.193.0.0/17 1; +203.194.120.0/21 1; +203.194.128.0/17 1; +203.195.112.0/23 1; +203.195.116.0/22 1; +203.196.8.0/21 1; +203.196.103.0/24 1; +203.196.125.0/24 1; +203.196.127.0/24 1; +203.198.0.0/16 1; +203.202.226.0/23 1; +203.202.228.0/23 1; +203.205.128.0/20 1; +203.205.144.0/21 1; +203.205.158.0/24 1; +203.205.180.0/22 1; +203.205.208.0/22 1; +203.205.218.0/23 1; +203.205.220.0/22 1; +203.205.248.0/21 1; +203.208.20.0/24 1; +203.208.22.0/24 1; +203.208.140.80/28 1; +203.208.140.96/27 1; +203.208.140.128/25 1; +203.208.141.0/24 1; +203.209.128.0/20 1; +203.210.0.0/20 1; +203.210.76.0/22 1; +203.215.145.0/24 1; +203.215.232.0/24 1; +203.215.234.0/24 1; +203.215.238.0/23 1; +203.215.240.0/20 1; +203.217.175.0/24 1; +203.218.0.0/16 1; +203.222.39.0/24 1; +203.222.43.0/24 1; +203.222.51.0/24 1; +203.222.52.0/24 1; +203.222.53.192/27 1; +203.222.60.0/22 1; +203.222.160.0/24 1; +203.222.164.0/23 1; +203.222.176.0/23 1; +203.222.186.0/23 1; +203.222.188.0/24 1; +203.222.191.192/28 1; +203.222.191.232/29 1; +203.222.192.0/20 1; +203.223.16.0/24 1; +203.223.21.0/24 1; +203.223.22.0/24 1; +203.223.178.0/24 1; +203.223.192.0/18 1; +203.254.250.0/24 1; +204.1.128.0/18 1; +204.1.192.0/19 1; +204.1.224.0/20 1; +204.1.240.0/21 1; +204.1.248.0/22 1; +204.1.252.0/23 1; +204.2.26.0/24 1; +204.2.154.192/31 1; +204.2.154.194/32 1; +204.2.179.0/24 1; +204.2.180.0/23 1; +204.14.72.0/23 1; +204.14.74.0/24 1; +204.14.181.0/24 1; +204.14.182.0/24 1; +204.69.150.0/24 1; +204.69.217.0/24 1; +204.69.218.0/23 1; +204.69.220.0/23 1; +204.79.169.0/24 1; +204.79.189.0/24 1; +204.79.250.0/23 1; +204.80.164.0/24 1; +204.107.117.0/24 1; +204.110.8.0/21 1; +204.127.246.0/23 1; +204.127.248.0/24 1; +204.130.1.0/24 1; +204.152.224.0/21 1; +204.194.64.0/21 1; +204.214.48.0/23 1; +204.227.237.0/24 1; +204.231.197.0/24 1; +204.237.196.0/24 1; +204.246.167.0/24 1; +204.246.168.0/23 1; +205.134.26.0/23 1; +205.134.28.0/22 1; +205.134.32.0/21 1; +205.147.104.0/22 1; +205.149.20.0/24 1; +205.149.24.0/23 1; +205.175.197.0/24 1; +205.175.204.0/23 1; +205.177.0.0/19 1; +205.177.32.0/21 1; +205.177.40.0/22 1; +205.177.60.0/23 1; +205.177.63.0/24 1; +205.177.72.0/21 1; +205.177.80.0/22 1; +205.177.96.0/20 1; +205.177.117.0/24 1; +205.177.118.0/23 1; +205.177.125.0/24 1; +205.177.126.0/23 1; +205.177.128.0/19 1; +205.177.160.0/20 1; +205.177.192.0/20 1; +205.177.216.0/24 1; +205.177.224.0/21 1; +205.177.235.0/24 1; +205.177.236.0/22 1; +205.177.240.0/20 1; +205.182.208.0/24 1; +205.196.145.0/24 1; +205.196.146.0/23 1; +205.196.148.0/22 1; +205.196.152.0/21 1; +205.198.0.0/21 1; +205.198.8.0/22 1; +205.198.12.0/23 1; +205.198.14.0/24 1; +205.198.65.160/27 1; +205.198.91.160/27 1; +205.198.91.192/26 1; +205.198.92.160/27 1; +205.198.92.192/26 1; +205.198.93.0/24 1; +205.198.94.0/23 1; +205.201.0.0/20 1; +205.201.62.30/31 1; +205.201.62.136/32 1; +205.203.74.0/23 1; +205.203.188.0/22 1; +205.204.104.0/23 1; +205.204.117.0/24 1; +205.204.122.0/23 1; +205.204.124.0/22 1; +205.228.101.0/24 1; +205.228.102.0/24 1; +205.237.88.0/22 1; +205.237.92.0/24 1; +205.252.8.0/21 1; +205.252.52.0/24 1; +205.252.128.0/18 1; +205.252.192.0/20 1; +205.252.216.0/21 1; +205.252.224.0/19 1; +206.41.3.236/30 1; +206.52.0.0/16 1; +206.82.132.0/24 1; +206.119.0.0/16 1; +206.131.192.0/20 1; +206.142.0.0/17 1; +206.161.216.0/21 1; +206.161.224.0/21 1; +206.161.232.0/22 1; +206.218.248.0/23 1; +206.220.132.0/22 1; +206.225.128.0/22 1; +207.42.40.0/24 1; +207.46.70.0/23 1; +207.46.72.0/26 1; +207.46.87.0/24 1; +207.46.89.16/28 1; +207.46.95.32/27 1; +207.46.128.0/19 1; +207.56.0.0/17 1; +207.56.128.0/18 1; +207.56.192.0/20 1; +207.138.94.72/30 1; +207.148.32.0/20 1; +207.174.176.0/20 1; +207.176.32.0/24 1; +207.176.96.0/19 1; +207.179.28.0/24 1; +207.189.10.0/24 1; +207.189.170.0/23 1; +207.189.185.0/24 1; +207.226.0.0/20 1; +207.226.136.0/21 1; +207.226.152.0/21 1; +208.50.242.0/24 1; +208.65.151.0/24 1; +208.66.237.0/24 1; +208.67.236.0/24 1; +208.71.120.0/24 1; +208.71.214.128/25 1; +208.71.215.128/25 1; +208.72.36.0/24 1; +208.76.47.0/24 1; +208.76.59.0/24 1; +208.81.117.128/25 1; +208.81.118.0/23 1; +208.87.96.0/23 1; +208.87.166.0/24 1; +208.87.200.0/21 1; +208.91.190.0/24 1; +208.111.42.0/24 1; +208.127.111.0/24 1; +208.127.112.0/21 1; +208.127.120.0/23 1; +208.127.122.0/24 1; +208.127.160.0/23 1; +208.170.39.0/24 1; +208.178.244.80/30 1; +209.9.104.0/21 1; +209.9.112.0/23 1; +209.9.114.0/25 1; +209.9.115.0/24 1; +209.9.116.0/22 1; +209.9.120.0/21 1; +209.9.128.0/21 1; +209.9.192.0/19 1; +209.16.190.0/24 1; +209.40.96.0/19 1; +209.40.252.0/22 1; +209.58.184.0/21 1; +209.85.142.173/32 1; +209.85.142.192/31 1; +209.85.142.202/31 1; +209.85.142.244/31 1; +209.85.142.248/31 1; +209.85.143.32/31 1; +209.85.143.36/30 1; +209.85.143.98/31 1; +209.85.143.100/31 1; +209.85.143.118/31 1; +209.85.143.122/31 1; +209.85.143.128/31 1; +209.85.143.136/31 1; +209.85.143.152/29 1; +209.85.143.184/30 1; +209.85.148.76/31 1; +209.85.148.112/31 1; +209.85.148.222/31 1; +209.85.148.240/29 1; +209.85.149.24/30 1; +209.85.240.8/30 1; +209.85.240.234/31 1; +209.85.241.0/29 1; +209.85.241.56/31 1; +209.85.241.208/31 1; +209.85.242.3/32 1; +209.85.242.32/31 1; +209.85.242.52/30 1; +209.85.242.214/32 1; +209.85.243.97/32 1; +209.85.243.246/31 1; +209.85.243.248/31 1; +209.85.244.22/31 1; +209.85.244.24/31 1; +209.85.244.56/32 1; +209.85.245.160/32 1; +209.85.246.0/29 1; +209.85.247.30/31 1; +209.85.247.96/32 1; +209.85.247.194/32 1; +209.85.248.80/32 1; +209.90.63.0/24 1; +209.92.176.0/20 1; +209.92.192.0/21 1; +209.95.60.0/24 1; +209.101.136.0/24 1; +209.101.138.0/23 1; +209.101.140.0/22 1; +209.103.160.0/19 1; +209.146.0.0/23 1; +209.146.2.0/24 1; +209.146.4.0/22 1; +209.146.8.128/25 1; +209.146.9.0/24 1; +209.146.10.0/23 1; +209.146.12.0/23 1; +209.146.14.0/24 1; +209.177.84.0/24 1; +209.212.229.0/24 1; +210.0.128.0/17 1; +210.1.231.0/24 1; +210.2.3.0/24 1; +210.2.16.0/22 1; +210.2.20.0/23 1; +210.3.0.0/16 1; +210.5.56.12/30 1; +210.5.56.16/28 1; +210.5.56.32/27 1; +210.5.56.64/26 1; +210.5.56.128/25 1; +210.5.57.0/24 1; +210.5.58.0/23 1; +210.5.61.0/24 1; +210.5.62.0/23 1; +210.5.160.0/19 1; +210.5.192.0/18 1; +210.6.0.0/16 1; +210.16.72.0/22 1; +210.16.96.0/22 1; +210.16.104.0/24 1; +210.16.106.0/23 1; +210.16.116.0/22 1; +210.16.122.0/23 1; +210.16.127.128/25 1; +210.16.140.0/22 1; +210.16.144.0/21 1; +210.16.152.0/22 1; +210.17.128.0/17 1; +210.24.65.0/24 1; +210.24.66.0/23 1; +210.24.68.0/22 1; +210.24.72.0/21 1; +210.24.80.0/20 1; +210.24.139.0/24 1; +210.24.140.0/22 1; +210.24.144.0/20 1; +210.24.247.0/24 1; +210.24.248.0/21 1; +210.48.136.0/21 1; +210.56.48.0/20 1; +210.57.0.0/21 1; +210.57.8.0/22 1; +210.57.21.0/24 1; +210.57.22.0/24 1; +210.57.27.0/24 1; +210.57.49.0/24 1; +210.57.53.6/31 1; +210.57.60.0/24 1; +210.57.61.0/25 1; +210.57.61.128/26 1; +210.57.61.224/27 1; +210.57.64.0/18 1; +210.57.128.0/18 1; +210.57.192.0/20 1; +210.79.62.0/23 1; +210.87.240.0/20 1; +210.89.64.0/23 1; +210.89.67.0/24 1; +210.89.68.0/24 1; +210.89.69.0/28 1; +210.89.69.176/28 1; +210.89.69.192/26 1; +210.89.70.0/24 1; +210.89.75.168/29 1; +210.89.75.208/28 1; +210.89.75.240/28 1; +210.89.76.0/28 1; +210.89.76.16/29 1; +210.89.76.112/28 1; +210.89.76.128/25 1; +210.89.77.0/24 1; +210.89.78.0/24 1; +210.89.79.0/27 1; +210.89.81.208/28 1; +210.89.81.224/27 1; +210.89.82.0/23 1; +210.89.84.0/23 1; +210.89.86.0/24 1; +210.89.93.0/24 1; +210.89.94.0/23 1; +210.176.0.0/19 1; +210.176.34.0/26 1; +210.176.34.64/27 1; +210.176.34.128/25 1; +210.176.39.0/24 1; +210.176.48.0/20 1; +210.176.64.0/18 1; +210.176.129.0/24 1; +210.176.132.0/23 1; +210.176.134.0/24 1; +210.176.140.0/23 1; +210.176.144.0/28 1; +210.176.144.24/29 1; +210.176.144.32/27 1; +210.176.144.64/26 1; +210.176.144.128/26 1; +210.176.144.192/27 1; +210.176.149.0/24 1; +210.176.156.0/22 1; +210.176.160.0/19 1; +210.176.192.0/18 1; +210.177.0.0/16 1; +210.184.0.0/23 1; +210.184.3.0/24 1; +210.184.4.0/22 1; +210.184.8.0/21 1; +210.184.16.0/20 1; +210.184.32.0/19 1; +210.184.64.0/20 1; +210.184.80.0/21 1; +210.184.88.0/22 1; +210.184.92.0/23 1; +210.184.94.0/24 1; +210.184.96.0/19 1; +210.184.128.0/17 1; +210.209.64.0/18 1; +210.211.24.0/21 1; +210.245.15.192/26 1; +210.245.128.0/17 1; +211.136.1.93/32 1; +211.136.1.96/31 1; +211.136.1.100/30 1; +211.136.1.104/31 1; +211.136.1.108/31 1; +211.136.1.114/31 1; +211.136.1.118/31 1; +211.154.56.0/21 1; +211.155.66.0/24 1; +211.155.96.0/24 1; +211.155.114.0/23 1; +211.156.110.0/23 1; +212.11.0.0/18 1; +212.58.134.0/24 1; +212.59.83.0/24 1; +212.59.84.0/24 1; +212.90.100.0/22 1; +212.102.42.0/23 1; +212.103.51.192/26 1; +212.107.28.0/22 1; +212.115.124.0/22 1; +213.39.45.44/30 1; +213.39.94.0/24 1; +213.155.134.195/32 1; +213.155.136.45/32 1; +213.173.32.0/23 1; +213.176.32.0/19 1; +213.176.64.0/19 1; +213.176.96.0/20 1; +213.176.112.0/21 1; +213.190.21.0/24 1; +213.230.188.0/22 1; +213.254.227.244/30 1; +213.254.227.248/29 1; +216.19.0.0/18 1; +216.21.11.0/24 1; +216.38.125.0/24 1; +216.38.126.0/24 1; +216.38.170.0/23 1; +216.57.104.0/21 1; +216.58.197.96/27 1; +216.58.199.0/27 1; +216.58.199.96/27 1; +216.58.200.0/27 1; +216.58.200.64/27 1; +216.58.220.192/27 1; +216.58.221.224/27 1; +216.74.120.0/21 1; +216.83.32.0/19 1; +216.108.240.0/20 1; +216.113.190.36/32 1; +216.113.190.38/32 1; +216.113.190.44/32 1; +216.118.224.0/19 1; +216.131.36.0/24 1; +216.133.150.0/23 1; +216.133.156.0/24 1; +216.137.54.0/23 1; +216.151.160.0/22 1; +216.151.164.0/23 1; +216.151.192.0/20 1; +216.155.26.0/24 1; +216.170.96.0/20 1; +216.224.113.0/24 1; +216.224.114.0/23 1; +216.224.116.0/22 1; +216.224.120.0/21 1; +216.225.160.0/19 1; +216.225.192.0/19 1; +216.225.224.0/20 1; +216.228.232.0/24 1; +216.239.46.204/31 1; +216.239.47.16/29 1; +216.239.47.82/31 1; +216.239.47.94/31 1; +216.239.48.2/31 1; +216.239.48.4/30 1; +216.239.48.8/29 1; +216.239.48.66/31 1; +216.239.58.224/32 1; +216.239.59.240/31 1; +216.239.63.98/31 1; +216.239.63.100/30 1; +216.239.63.104/29 1; +216.239.63.112/29 1; +216.239.63.120/31 1; +216.239.63.214/31 1; +216.239.63.216/31 1; +216.239.63.230/31 1; +216.239.98.0/24 1; +216.239.104.0/24 1; +216.241.251.0/24 1; +216.244.6.0/24 1; +216.244.24.0/21 1; +216.244.32.0/22 1; +216.250.96.0/23 1; +216.250.104.0/21 1; +216.254.2.0/23 1; +217.6.49.181/32 1; +217.10.226.0/24 1; +217.119.96.0/20 1; +217.145.236.0/24 1; +217.147.178.0/23 1; +217.173.157.0/24 1; +217.194.132.0/22 1; +217.194.136.0/23 1; +217.194.140.0/22 1; +217.216.0.0/15 1; +218.30.56.0/21 1; +218.33.81.0/24 1; +218.33.82.0/23 1; +218.33.84.0/22 1; +218.33.88.0/21 1; +218.33.96.0/19 1; +218.98.64.0/19 1; +218.98.160.0/19 1; +218.100.16.0/23 1; +218.100.90.0/23 1; +218.100.92.0/23 1; +218.100.94.0/24 1; +218.102.0.0/15 1; +218.185.247.0/24 1; +218.188.0.0/14 1; +218.213.0.0/16 1; +218.247.64.0/19 1; +218.250.0.0/16 1; +218.252.0.0/14 1; +219.73.0.0/17 1; +219.76.0.0/14 1; +219.90.112.0/20 1; +219.158.10.30/31 1; +219.158.10.50/31 1; +219.158.10.54/31 1; +219.158.10.56/29 1; +219.158.25.138/31 1; +219.158.25.140/30 1; +219.158.35.4/30 1; +219.158.39.114/31 1; +219.158.39.116/30 1; +219.158.39.132/30 1; +219.158.39.150/31 1; +219.158.39.158/31 1; +219.158.39.190/31 1; +219.158.39.206/31 1; +219.158.40.30/31 1; +219.158.40.32/29 1; +219.158.40.40/30 1; +219.158.40.44/31 1; +219.158.40.92/30 1; +219.158.40.96/29 1; +219.158.40.104/30 1; +219.158.40.124/30 1; +219.158.40.128/30 1; +219.158.40.140/30 1; +219.158.40.144/31 1; +219.158.40.156/30 1; +219.158.40.226/31 1; +219.158.40.232/29 1; +219.158.41.10/31 1; +219.158.41.12/30 1; +219.158.41.16/29 1; +219.158.41.136/31 1; +219.158.42.122/31 1; +219.158.43.96/29 1; +219.158.43.110/31 1; +219.158.43.160/30 1; +219.158.45.190/31 1; +219.158.97.4/30 1; +219.158.97.8/30 1; +219.158.97.246/31 1; +219.158.97.248/29 1; +219.158.112.206/31 1; +219.234.8.0/24 1; +219.234.16.0/20 1; +220.158.132.0/22 1; +220.158.192.0/22 1; +220.158.208.0/22 1; +220.158.224.0/22 1; +220.158.240.0/23 1; +220.158.242.0/24 1; +220.158.244.0/22 1; +220.158.252.0/22 1; +220.232.128.0/17 1; +220.241.0.0/16 1; +220.242.2.0/24 1; +220.242.21.0/24 1; +220.242.22.0/23 1; +220.242.24.0/21 1; +220.242.127.0/24 1; +220.242.154.0/24 1; +220.242.167.0/24 1; +220.242.179.0/24 1; +220.242.195.0/24 1; +220.243.194.0/24 1; +220.243.213.0/24 1; +220.243.222.0/24 1; +220.243.241.0/24 1; +220.243.253.0/24 1; +220.246.0.0/16 1; +221.120.176.0/20 1; +221.124.0.0/14 1; +221.128.118.0/23 1; +221.128.120.0/22 1; +221.176.23.86/31 1; +221.176.23.90/31 1; +221.176.23.94/31 1; +221.176.57.0/24 1; +221.183.20.246/31 1; +221.183.20.250/31 1; +221.183.20.254/31 1; +221.183.21.0/29 1; +221.183.21.10/31 1; +221.183.21.14/31 1; +221.183.21.16/29 1; +221.183.21.24/31 1; +221.183.21.56/30 1; +222.126.174.0/23 1; +222.126.176.0/23 1; +222.166.0.0/15 1; +223.16.0.0/14 1; +223.26.48.0/20 1; +223.27.160.0/22 1; +223.27.165.0/24 1; +223.28.43.254/31 1; +223.29.248.0/22 1; +223.118.0.0/16 1; +223.119.0.0/17 1; +223.119.128.0/18 1; +223.119.192.0/19 1; +223.119.224.0/20 1; +223.119.240.0/21 1; +223.119.248.0/22 1; +223.119.252.0/23 1; +223.119.254.0/24 1; +223.120.0.0/30 1; +223.120.0.4/32 1; +223.120.0.8/29 1; +223.120.0.16/28 1; +223.120.0.32/27 1; +223.120.0.64/26 1; +223.120.0.128/25 1; +223.120.1.0/24 1; +223.120.2.0/23 1; +223.120.4.0/22 1; +223.120.8.0/21 1; +223.120.16.0/20 1; +223.120.32.0/19 1; +223.120.64.0/18 1; +223.120.128.0/17 1; +223.121.0.0/16 1; +223.122.0.0/15 1; +223.124.0.0/14 1; +223.130.32.0/19 1; +223.197.0.0/16 1; +223.223.216.0/22 1; +223.252.160.0/19 1; +223.255.128.0/18 1; +223.255.240.0/22 1; +223.255.248.0/22 1; +2001:2e0::/32 1; +2001:470:18:8f::/64 1; +2001:470:18:90::/60 1; +2001:470:18:a0::/59 1; +2001:470:18:c0::/58 1; +2001:470:18:100::/56 1; +2001:470:18:200::/55 1; +2001:470:18:400::/54 1; +2001:470:18:800::/53 1; +2001:470:18:1000::/52 1; +2001:470:18:2000::/51 1; +2001:470:18:4000::/50 1; +2001:470:18:8000::/49 1; +2001:470:19::/55 1; +2001:470:19:200::/56 1; +2001:470:19:300::/58 1; +2001:470:19:340::/59 1; +2001:470:19:360::/61 1; +2001:470:19:368::/64 1; +2001:470:5826::/47 1; +2001:470:5828::/45 1; +2001:470:5830::/44 1; +2001:470:5840::/44 1; +2001:470:5850::/48 1; +2001:470:d885::/48 1; +2001:470:ec1e::/47 1; +2001:470:ec20::/44 1; +2001:470:ec30::/47 1; +2001:470:ec32::/48 1; +2001:470:ec91::/48 1; +2001:470:ec92::/47 1; +2001:470:ec94::/46 1; +2001:470:eda1::/48 1; +2001:470:eda2::/48 1; +2001:470:eeca::/47 1; +2001:470:eecc::/46 1; +2001:470:eed0::/46 1; +2001:470:eed4::/47 1; +2001:470:eed6::/48 1; +2001:470:f02d::/48 1; +2001:470:f02e::/47 1; +2001:470:f030::/44 1; +2001:470:f040::/46 1; +2001:470:f0f3::/48 1; +2001:470:f0f4::/48 1; +2001:470:f45d::/48 1; +2001:470:f45e::/47 1; +2001:470:f460::/43 1; +2001:470:f480::/41 1; +2001:470:f500::/40 1; +2001:470:f600::/39 1; +2001:470:f800::/46 1; +2001:470:f804::/47 1; +2001:470:f824::/46 1; +2001:470:f828::/45 1; +2001:470:f830::/44 1; +2001:470:f9a4::/47 1; +2001:470:fbdc::/48 1; +2001:5a0:e00:100::/56 1; +2001:5a0:e00:200::/55 1; +2001:5a0:e00:400::/54 1; +2001:5a0:e00:800::/53 1; +2001:5a0:e00:1000::/52 1; +2001:5a0:e00:2000::/51 1; +2001:5a0:e00:4000::/50 1; +2001:5a0:e00:8000::/49 1; +2001:5a0:e01::/48 1; +2001:5a0:e02::/47 1; +2001:5a0:e04::/46 1; +2001:5a0:e08::/45 1; +2001:5a0:e10::/44 1; +2001:5a0:e20::/43 1; +2001:5a0:e40::/42 1; +2001:5a0:e80::/41 1; +2001:668:1f:fe0a::/64 1; +2001:668:1f:ffb7::/64 1; +2001:668:1f:ffc8::/64 1; +2001:7fa:0:1::/64 1; +2001:ac8:a::/47 1; +2001:ac8:c::/48 1; +2001:ac8:13::/48 1; +2001:ac8:92::/48 1; +2001:cb0:9105::/48 1; +2001:cb0:9106::/47 1; +2001:cb0:9108::/45 1; +2001:cb0:9110::/44 1; +2001:cb0:9120::/43 1; +2001:cb0:9140::/42 1; +2001:cb0:9180::/41 1; +2001:cb0:9200::/39 1; +2001:cb0:9400::/38 1; +2001:cb0:9800::/37 1; +2001:cb0:a000::/35 1; +2001:cb0:c000::/34 1; +2001:cb1::/32 1; +2001:cb2::/31 1; +2001:cb4::/30 1; +2001:cb8::/32 1; +2001:ce0::/31 1; +2001:d80:1180:100::/56 1; +2001:d80:1190::/44 1; +2001:d80:11a0::/43 1; +2001:d80:11c0::/42 1; +2001:d80:1200::/42 1; +2001:d80:1240::/64 1; +2001:dca::/32 1; +2001:dec::/48 1; +2001:dee::/40 1; +2001:def::/40 1; +2001:df0:69::/48 1; +2001:df0:78::/48 1; +2001:df0:85::/48 1; +2001:df0:9f::/48 1; +2001:df0:a6::/48 1; +2001:df0:ad::/48 1; +2001:df0:d2::/48 1; +2001:df0:e3::/48 1; +2001:df0:20a::/48 1; +2001:df0:212::/48 1; +2001:df0:22b::/48 1; +2001:df0:22e::/48 1; +2001:df0:280::/44 1; +2001:df0:2af::/48 1; +2001:df0:412::/48 1; +2001:df0:442::/47 1; +2001:df0:452::/48 1; +2001:df0:465::/48 1; +2001:df0:4800::/48 1; +2001:df0:59c0::/48 1; +2001:df0:6300::/48 1; +2001:df0:6a00::/48 1; +2001:df0:7c00::/48 1; +2001:df0:8700::/48 1; +2001:df0:8e00::/48 1; +2001:df0:8f80::/48 1; +2001:df0:9880::/48 1; +2001:df0:a300::/48 1; +2001:df0:a540::/48 1; +2001:df0:b700::/48 1; +2001:df0:b800::/48 1; +2001:df0:c000::/48 1; +2001:df0:c680::/48 1; +2001:df0:cc80::/48 1; +2001:df0:d400::/48 1; +2001:df0:d980::/48 1; +2001:df0:e100::/48 1; +2001:df0:e300::/48 1; +2001:df0:fa80::/48 1; +2001:df0:fbc0:100::/56 1; +2001:df0:fbc0:200::/55 1; +2001:df0:fbc0:400::/54 1; +2001:df0:fbc0:800::/53 1; +2001:df0:fbc0:1000::/52 1; +2001:df0:fbc0:2000::/51 1; +2001:df0:fbc0:4000::/50 1; +2001:df0:fbc0:8000::/49 1; +2001:df1:801::/48 1; +2001:df1:1380::/48 1; +2001:df1:1d00::/48 1; +2001:df1:2380::/48 1; +2001:df1:2580::/48 1; +2001:df1:2f80::/48 1; +2001:df1:3100::/48 1; +2001:df1:3780::/48 1; +2001:df1:3880::/48 1; +2001:df1:3c80::/48 1; +2001:df1:4280::/48 1; +2001:df1:4880::/48 1; +2001:df1:5000::/48 1; +2001:df1:5180::/48 1; +2001:df1:5f80::/48 1; +2001:df1:6080::/48 1; +2001:df1:6680::/48 1; +2001:df1:6980::/48 1; +2001:df1:7580::/48 1; +2001:df1:7880::/48 1; +2001:df1:7900::/48 1; +2001:df1:7f00::/42 1; +2001:df1:8b80::/48 1; +2001:df1:9400::/48 1; +2001:df1:9d80::/48 1; +2001:df1:9f80::/48 1; +2001:df1:a580::/48 1; +2001:df1:ab00::/48 1; +2001:df1:ae80::/48 1; +2001:df1:c800::/48 1; +2001:df1:d400::/47 1; +2001:df1:e080::/48 1; +2001:df1:e680::/48 1; +2001:df1:e781::/48 1; +2001:df1:f400::/48 1; +2001:df2:2c00::/48 1; +2001:df2:3880::/48 1; +2001:df2:4100::/48 1; +2001:df2:4580::/41 1; +2001:df2:4600::/48 1; +2001:df2:4680::/48 1; +2001:df2:5100::/48 1; +2001:df2:5380::/48 1; +2001:df2:7400::/48 1; +2001:df2:7900::/48 1; +2001:df2:7b80::/48 1; +2001:df2:7c80::/48 1; +2001:df2:7d80::/48 1; +2001:df2:8980::/48 1; +2001:df2:8c00::/48 1; +2001:df2:bb00::/48 1; +2001:df2:c700::/48 1; +2001:df2:d000::/48 1; +2001:df2:d200::/48 1; +2001:df2:d280::/48 1; +2001:df2:d680::/48 1; +2001:df2:d980::/48 1; +2001:df2:dc80::/48 1; +2001:df2:e380::/48 1; +2001:df2:f080::/48 1; +2001:df3:980::/41 1; +2001:df3:a00::/41 1; +2001:df3:f80::/48 1; +2001:df3:1c80::/48 1; +2001:df3:1d80::/48 1; +2001:df3:1e80::/48 1; +2001:df3:1f00::/48 1; +2001:df3:2d80::/48 1; +2001:df3:3680::/48 1; +2001:df3:3d00::/48 1; +2001:df3:4080::/48 1; +2001:df3:5180::/48 1; +2001:df3:5500::/48 1; +2001:df3:7580::/48 1; +2001:df3:8200::/48 1; +2001:df3:8b80::/48 1; +2001:df3:9100::/48 1; +2001:df3:9500::/48 1; +2001:df3:9c00::/48 1; +2001:df3:a400::/48 1; +2001:df3:bc80::/41 1; +2001:df3:cd00::/48 1; +2001:df3:cd80::/48 1; +2001:df3:d200::/48 1; +2001:df3:fc00::/48 1; +2001:df4:180::/48 1; +2001:df4:d00::/48 1; +2001:df4:1000::/48 1; +2001:df4:1d00::/48 1; +2001:df4:3700::/48 1; +2001:df4:4780::/48 1; +2001:df4:6b00::/48 1; +2001:df4:7000::/48 1; +2001:df4:7a00::/48 1; +2001:df4:8c00::/48 1; +2001:df4:c180::/48 1; +2001:df4:cb80::/48 1; +2001:df4:d280::/48 1; +2001:df4:ee00::/48 1; +2001:df5:800::/41 1; +2001:df5:2d80::/48 1; +2001:df5:3280::/48 1; +2001:df5:3380::/48 1; +2001:df5:5200::/48 1; +2001:df5:5780::/48 1; +2001:df5:6900::/48 1; +2001:df5:7300::/48 1; +2001:df5:7e80::/48 1; +2001:df5:8300::/48 1; +2001:df5:8380::/48 1; +2001:df5:8480::/48 1; +2001:df5:8580::/48 1; +2001:df5:8b00::/48 1; +2001:df5:9380::/48 1; +2001:df5:9580::/48 1; +2001:df5:a900::/48 1; +2001:df5:b580::/48 1; +2001:df5:b800::/48 1; +2001:df5:ca80::/48 1; +2001:df5:e900::/48 1; +2001:df5:f580::/48 1; +2001:df5:f780::/48 1; +2001:df6:200::/48 1; +2001:df6:400::/48 1; +2001:df6:800::/44 1; +2001:df6:1980::/48 1; +2001:df6:1c80::/48 1; +2001:df6:2680::/48 1; +2001:df6:5680::/48 1; +2001:df6:5780::/48 1; +2001:df6:6280::/48 1; +2001:df6:8380::/48 1; +2001:df6:8780::/48 1; +2001:df6:8e80::/48 1; +2001:df6:9b00::/48 1; +2001:df6:bc00::/48 1; +2001:df6:d000::/48 1; +2001:df6:eb00::/48 1; +2001:df6:f000::/48 1; +2001:df7:400::/48 1; +2001:df7:2600::/48 1; +2001:df7:3700::/48 1; +2001:df7:3d00::/48 1; +2001:df7:5500::/48 1; +2001:df7:6700::/48 1; +2001:df7:7000::/48 1; +2001:df7:7f00::/48 1; +2001:e28::/32 1; +2001:eb0::/32 1; +2001:41a8:6200::/48 1; +2001:4480::/32 1; +2001:4860:7:404::/64 1; +2001:4860:7:504::/64 1; +2001:49f0:d0da::/48 1; +2001:500b::/32 1; +2001:500c::/40 1; +2400:13a0::/32 1; +2400:1c40::/32 1; +2400:1c80::/32 1; +2400:1e00::/32 1; +2400:1e80::/32 1; +2400:3520::/32 1; +2400:3ec0::/32 1; +2400:4580::/32 1; +2400:4940::/32 1; +2400:49a0::/32 1; +2400:4c00::/32 1; +2400:51c0::/32 1; +2400:5340::/32 1; +2400:53c0::/32 1; +2400:5440::/32 1; +2400:54a0:2020::/48 1; +2400:54a0:2100::/44 1; +2400:56a0:100::/40 1; +2400:5a60::/32 1; +2400:5b20::/32 1; +2400:5ce0:10::/46 1; +2400:5f80::/32 1; +2400:6460::/32 1; +2400:6500:0:3::/64 1; +2400:6500:0:4::/126 1; +2400:6500:0:4::4/128 1; +2400:6500:0:7300::/56 1; +2400:6a80:c000::/34 1; +2400:6a81::/32 1; +2400:6c80::/32 1; +2400:6d60::/32 1; +2400:7300::/32 1; +2400:7460::/32 1; +2400:74a0::/32 1; +2400:7a00::/32 1; +2400:7e20::/32 1; +2400:7e40::/32 1; +2400:84c0::/32 1; +2400:8640::/32 1; +2400:8800::/38 1; +2400:8800:400::/40 1; +2400:8800:501::/48 1; +2400:8800:502::/47 1; +2400:8800:504::/46 1; +2400:8800:508::/45 1; +2400:8800:510::/44 1; +2400:8800:520::/43 1; +2400:8800:540::/42 1; +2400:8800:580::/41 1; +2400:8800:600::/39 1; +2400:8800:800::/37 1; +2400:8800:1000::/36 1; +2400:8800:2000::/41 1; +2400:8800:2080::/48 1; +2400:8800:2082::/47 1; +2400:8800:2084::/46 1; +2400:8800:2088::/45 1; +2400:8800:2090::/44 1; +2400:8800:20a0::/43 1; +2400:8800:20c0::/42 1; +2400:8800:2100::/40 1; +2400:8800:2200::/39 1; +2400:8800:2400::/38 1; +2400:8800:2800::/37 1; +2400:8800:3000::/36 1; +2400:8800:4000::/34 1; +2400:8800:8000::/34 1; +2400:8800:c000::/35 1; +2400:8800:e002::/48 1; +2400:8800:e00d::/48 1; +2400:8800:f000::/36 1; +2400:8a20::/32 1; +2400:8d00::/32 1; +2400:8da0::/33 1; +2400:8da0:8000::/34 1; +2400:8da0:c000::/35 1; +2400:8da0:e000::/37 1; +2400:8da0:e800::/39 1; +2400:8da0:ea00::/40 1; +2400:8da0:ee00::/39 1; +2400:8da0:f000::/36 1; +2400:9320::/32 1; +2400:9380::/33 1; +2400:9380:8000::/34 1; +2400:9380:c000::/35 1; +2400:9380:e000::/36 1; +2400:9380:f000::/39 1; +2400:9380:f400::/38 1; +2400:9380:f800::/37 1; +2400:9381::/32 1; +2400:9ce0:1000::/36 1; +2400:b1c0::/32 1; +2400:b3a0::/32 1; +2400:bbc0::/32 1; +2400:be40::/32 1; +2400:be80::/32 1; +2400:bfc0::/32 1; +2400:c2c0::/32 1; +2400:c300::/32 1; +2400:c540:c344::/48 1; +2400:c620::/32 1; +2400:c680::/32 1; +2400:c800::/29 1; +2400:cb00:23::/48 1; +2400:cb00:134::/48 1; +2400:cb00:440::/48 1; +2400:cb00:581::/48 1; +2400:cb00:582::/47 1; +2400:cb00:770::/48 1; +2400:cb00:975::/48 1; +2400:cb00:976::/48 1; +2400:cb00:1176::/48 1; +2400:cca0::/32 1; +2400:cec0::/32 1; +2400:cf20::/32 1; +2400:d700::/32 1; +2400:db00::/32 1; +2400:dd60::/32 1; +2400:dec0::/32 1; +2400:e040::/32 1; +2400:e3e0::/33 1; +2400:e3e0:8000::/35 1; +2400:e3e0:a000::/37 1; +2400:e3e0:a800::/39 1; +2400:e3e0:ab00::/40 1; +2400:e3e0:ac00::/38 1; +2400:e3e0:b000::/36 1; +2400:e3e0:c000::/34 1; +2400:e760::/39 1; +2400:e760:500::/40 1; +2400:e760:600::/39 1; +2400:e760:800::/37 1; +2400:e760:1000::/36 1; +2400:e760:2000::/35 1; +2400:e760:4000::/34 1; +2400:e760:8000::/33 1; +2400:e7c0::/32 1; +2400:e840::/32 1; +2400:ede0::/32 1; +2400:ee40::/32 1; +2400:ef00::/32 1; +2400:f000::/32 1; +2400:f100::/32 1; +2400:f700::/32 1; +2400:f800::/32 1; +2400:f880::/32 1; +2400:fd40::/32 1; +2401:c0::/32 1; +2401:280::/32 1; +2401:300::/32 1; +2401:360::/32 1; +2401:a00::/32 1; +2401:b60::/36 1; +2401:b60:2000::/35 1; +2401:b60:4000::/34 1; +2401:b60:8000::/33 1; +2401:c60::/32 1; +2401:e60::/32 1; +2401:1020::/32 1; +2401:1100::/32 1; +2401:11a0:1500::/40 1; +2401:1280::/32 1; +2401:1380::/32 1; +2401:1640:20::/43 1; +2401:1640:40::/42 1; +2401:1640:80::/41 1; +2401:1640:100::/40 1; +2401:1640:200::/39 1; +2401:1640:400::/38 1; +2401:1640:800::/37 1; +2401:1640:1000::/36 1; +2401:1640:2000::/35 1; +2401:1640:4000::/34 1; +2401:1640:8000::/33 1; +2401:1740:2000::/48 1; +2401:1800:7800::/37 1; +2401:1800:8000::/33 1; +2401:1801::/32 1; +2401:1da0::/40 1; +2401:1fe0::/32 1; +2401:2660::/32 1; +2401:2c80::/32 1; +2401:2d40::/32 1; +2401:3000::/32 1; +2401:3040::/32 1; +2401:3260::/32 1; +2401:3400:8000::/34 1; +2401:3620::/32 1; +2401:3680::/32 1; +2401:36c0::/32 1; +2401:37c0::/32 1; +2401:39c0::/32 1; +2401:3bc0::/45 1; +2401:3bc0:8::/47 1; +2401:3c60::/32 1; +2401:3ca0::/32 1; +2401:3cc0:1800::/37 1; +2401:3cc0:2000::/35 1; +2401:3e40::/32 1; +2401:4020::/32 1; +2401:4060::/32 1; +2401:41c0::/32 1; +2401:44c0::/32 1; +2401:47c0::/32 1; +2401:4840::/32 1; +2401:4a00::/32 1; +2401:4bc0::/32 1; +2401:4c40::/32 1; +2401:4e80::/32 1; +2401:5060::/32 1; +2401:5480::/32 1; +2401:5900::/32 1; +2401:5a00::/32 1; +2401:5dc0::/32 1; +2401:7ac0::/32 1; +2401:7b20::/32 1; +2401:7d20::/39 1; +2401:7d20:400::/38 1; +2401:7d20:800::/37 1; +2401:7d20:1000::/36 1; +2401:7d20:2000::/35 1; +2401:7d20:4000::/34 1; +2401:7d20:8000::/33 1; +2401:8500::/32 1; +2401:86a0::/32 1; +2401:87c0::/32 1; +2401:8880::/32 1; +2401:89a0::/32 1; +2401:89c0::/32 1; +2401:8a00::/32 1; +2401:8b80::/32 1; +2401:8d40::/32 1; +2401:9140::/32 1; +2401:95a0::/32 1; +2401:9820::/32 1; +2401:9880::/32 1; +2401:99c0::/32 1; +2401:9c80::/32 1; +2401:9d80::/32 1; +2401:9f00::/32 1; +2401:a060::/32 1; +2401:a080::/32 1; +2401:a2a0::/32 1; +2401:a420::/32 1; +2401:a680::/32 1; +2401:a6c0::/32 1; +2401:a8e0::/32 1; +2401:ab80::/32 1; +2401:ada0::/32 1; +2401:b0e0::/32 1; +2401:b440::/32 1; +2401:b960::/32 1; +2401:bbc0::/32 1; +2401:bbe0::/32 1; +2401:bec0::/32 1; +2401:c0c0::/32 1; +2401:c480::/32 1; +2401:c660::/32 1; +2401:c700::/32 1; +2401:c740::/32 1; +2401:c900:1200::/39 1; +2401:cc80::/32 1; +2401:cdc0::/32 1; +2401:ce20:4000::/34 1; +2401:ce20:8000::/33 1; +2401:cec0::/32 1; +2401:d280::/32 1; +2401:d3c0::/32 1; +2401:d640::/32 1; +2401:d840::/32 1; +2401:d8c0::/32 1; +2401:d980::/32 1; +2401:d9c0::/32 1; +2401:da40::/32 1; +2401:da80:2000::/35 1; +2401:da80:4000::/34 1; +2401:da80:8000::/33 1; +2401:dba0::/32 1; +2401:dc60::/32 1; +2401:dda0::/32 1; +2401:ddc0::/32 1; +2401:de20::/32 1; +2401:de40::/32 1; +2401:df40:1::/48 1; +2401:e380::/32 1; +2401:e820::/32 1; +2401:e9e0::/32 1; +2401:ec60::/32 1; +2401:ecc0::/32 1; +2401:edc0::/32 1; +2401:ef80::/32 1; +2401:f060::/32 1; +2401:f400::/32 1; +2401:f460::/32 1; +2401:f6a0::/32 1; +2401:f6c0::/32 1; +2401:f860::/34 1; +2401:f940::/32 1; +2401:f9c0:2600::/39 1; +2401:fa00:13::/48 1; +2401:fa00:20::/47 1; +2401:fa00:90::/48 1; +2401:fa00:9c::/48 1; +2401:fa00:480:3000::/55 1; +2401:fc20::/32 1; +2401:fd20::/32 1; +2401:fe60::/32 1; +2401:ff20::/32 1; +2402:940::/32 1; +2402:c80::/32 1; +2402:11c0::/32 1; +2402:1240::/32 1; +2402:1500:8000::/33 1; +2402:1540::/32 1; +2402:15c0::/32 1; +2402:16c0::/32 1; +2402:1880::/30 1; +2402:1ac0::/32 1; +2402:1f00::/33 1; +2402:1f00:c000::/34 1; +2402:1fc0::/32 1; +2402:2040::/32 1; +2402:2100::/32 1; +2402:26c0::/32 1; +2402:2a80::/36 1; +2402:2a80:1000::/39 1; +2402:2a80:1200::/40 1; +2402:2a80:1300::/42 1; +2402:2a80:1340::/44 1; +2402:2a80:1350::/45 1; +2402:2b40::/32 1; +2402:2f80:8::/48 1; +2402:3180:8::/45 1; +2402:3180:10::/44 1; +2402:3180:20::/43 1; +2402:3180:40::/42 1; +2402:3180:80::/41 1; +2402:3180:100::/40 1; +2402:3180:200::/39 1; +2402:3180:400::/38 1; +2402:3180:800::/37 1; +2402:3180:1000::/36 1; +2402:3180:2000::/35 1; +2402:3b40::/32 1; +2402:4480:8000:100::/56 1; +2402:4480:8000:200::/55 1; +2402:4480:8000:400::/54 1; +2402:4480:8000:800::/53 1; +2402:4480:8000:1000::/52 1; +2402:4480:8000:2000::/51 1; +2402:4480:8000:4000::/50 1; +2402:4480:8000:8000::/49 1; +2402:4480:8001::/48 1; +2402:4480:8002:100::/56 1; +2402:4480:8002:200::/55 1; +2402:4480:8002:400::/54 1; +2402:4480:8002:800::/53 1; +2402:4480:8002:1100::/56 1; +2402:4480:8002:1200::/55 1; +2402:4480:8002:1400::/54 1; +2402:4480:8002:1800::/53 1; +2402:4480:8002:2000::/51 1; +2402:4480:8002:4000::/50 1; +2402:4480:8002:8000::/49 1; +2402:4480:8003::/48 1; +2402:4480:8004::/46 1; +2402:4480:8008::/45 1; +2402:4480:8010::/44 1; +2402:4480:8020::/43 1; +2402:4480:8040::/42 1; +2402:4480:8080::/41 1; +2402:4480:8100::/40 1; +2402:4480:8200::/39 1; +2402:4480:8400::/38 1; +2402:4480:8800::/37 1; +2402:4480:9000::/36 1; +2402:4480:a000::/35 1; +2402:4480:c000::/34 1; +2402:4680::/32 1; +2402:47c0::/32 1; +2402:4b40::/32 1; +2402:4d00::/32 1; +2402:4f00::/32 1; +2402:4f40::/32 1; +2402:5dc0::/32 1; +2402:6140::/32 1; +2402:6800:720::/48 1; +2402:6a80::/32 1; +2402:6e40::/32 1; +2402:6f00::/32 1; +2402:7800:130::/48 1; +2402:7840::/32 1; +2402:8a00:4000::/40 1; +2402:8a40::/32 1; +2402:90c0::/32 1; +2402:9880::/40 1; +2402:9880:800::/37 1; +2402:9880:1000::/36 1; +2402:9880:2000::/35 1; +2402:9880:4000::/34 1; +2402:9880:8000::/33 1; +2402:9b40::/32 1; +2402:9e80::/40 1; +2402:9e80:300::/40 1; +2402:9e80:400::/38 1; +2402:9e80:800::/37 1; +2402:9e80:1000::/36 1; +2402:9e80:2000::/35 1; +2402:9e80:4000::/34 1; +2402:9e80:8000::/34 1; +2402:9e80:c000::/35 1; +2402:a0c0:1::/48 1; +2402:a140::/32 1; +2402:a7c1::/32 1; +2402:b780::/32 1; +2402:b840::/32 1; +2402:b940::/39 1; +2402:bdc0::/32 1; +2402:c081::/32 1; +2402:c480::/32 1; +2402:c680::/32 1; +2402:c880::/32 1; +2402:c940::/32 1; +2402:cac0::/32 1; +2402:cf80:1003::/48 1; +2402:d140:200::/40 1; +2402:d1c0::/32 1; +2402:da80::/32 1; +2402:dc80::/32 1; +2402:e380:400::/40 1; +2402:e580::/32 1; +2402:e940:20::/43 1; +2402:e940:40::/42 1; +2402:e940:80::/41 1; +2402:e940:100::/40 1; +2402:e940:200::/39 1; +2402:e940:400::/38 1; +2402:e940:800::/38 1; +2402:e940:c00::/39 1; +2402:e940:e00::/40 1; +2402:e940:f00::/47 1; +2402:f740:1000::/36 1; +2403:300:1c00::/40 1; +2403:380::/32 1; +2403:ac0::/32 1; +2403:c40::/32 1; +2403:fc0::/38 1; +2403:1000::/32 1; +2403:1040::/32 1; +2403:18c0::/40 1; +2403:1ac0::/32 1; +2403:1c00::/32 1; +2403:1fc0::/32 1; +2403:2400::/32 1; +2403:2500:8000::/41 1; +2403:27c0::/32 1; +2403:2c00::/33 1; +2403:2c00:8000::/34 1; +2403:2c00:c000::/35 1; +2403:2c00:f000::/36 1; +2403:2c80::/31 1; +2403:3d80::/32 1; +2403:43c0::/32 1; +2403:4900::/32 1; +2403:4a00::/32 1; +2403:4e40::/32 1; +2403:4f40::/32 1; +2403:4fc0::/32 1; +2403:5000::/32 1; +2403:5140::/32 1; +2403:5500::/32 1; +2403:5600::/32 1; +2403:5d40::/32 1; +2403:6440::/32 1; +2403:64c0::/32 1; +2403:6540::/32 1; +2403:6f80::/32 1; +2403:7680::/32 1; +2403:7780::/32 1; +2403:8100::/32 1; +2403:8e40::/32 1; +2403:9bc0::/32 1; +2403:9d40::/32 1; +2403:a280::/35 1; +2403:a280:2000::/36 1; +2403:a280:4000::/34 1; +2403:a280:9000::/36 1; +2403:a280:a000::/35 1; +2403:a280:c000::/34 1; +2403:abc0::/32 1; +2403:ad80::/36 1; +2403:ad80:1100::/40 1; +2403:ad80:1200::/39 1; +2403:ad80:1400::/38 1; +2403:ad80:1800::/37 1; +2403:ad80:2000::/36 1; +2403:ad80:3000::/37 1; +2403:ad80:3800::/38 1; +2403:ad80:4000::/37 1; +2403:ad80:4800::/38 1; +2403:ad80:5400::/38 1; +2403:ad80:5800::/37 1; +2403:ad80:6000::/35 1; +2403:ad80:8100::/40 1; +2403:ad80:8200::/39 1; +2403:ad80:8400::/38 1; +2403:ad80:8800::/37 1; +2403:ad80:9000::/36 1; +2403:ad80:a000::/35 1; +2403:ad80:c000::/34 1; +2403:c540::/32 1; +2403:cec0::/32 1; +2403:d300::/32 1; +2403:dcc0::/32 1; +2403:df40:15::/48 1; +2403:df40:16::/47 1; +2403:df40:18::/45 1; +2403:df40:20::/43 1; +2403:df40:40::/42 1; +2403:df40:80::/41 1; +2403:df40:100::/40 1; +2403:df40:200::/39 1; +2403:df40:400::/38 1; +2403:df40:800::/37 1; +2403:df40:1000::/36 1; +2403:df40:2000::/35 1; +2403:e340::/32 1; +2403:e800::/32 1; +2403:e840::/32 1; +2403:ea00::/32 1; +2403:ebc0::/32 1; +2403:f500::/32 1; +2403:fa00::/32 1; +2404:e5::/32 1; +2404:1a0::/30 1; +2404:8c0::/32 1; +2404:1280::/32 1; +2404:1a40::/32 1; +2404:2100::/32 1; +2404:2280:107::/48 1; +2404:2280:10d::/48 1; +2404:2280:1c7::/48 1; +2404:2280:1c8::/48 1; +2404:2280:1d6::/48 1; +2404:2380::/32 1; +2404:2480::/32 1; +2404:2a80::/44 1; +2404:2a80:10::/46 1; +2404:2a80:14::/48 1; +2404:2a80:16::/47 1; +2404:2a80:18::/45 1; +2404:2a80:20::/43 1; +2404:2a80:40::/42 1; +2404:2a80:80::/41 1; +2404:2a80:100::/40 1; +2404:2a80:200::/39 1; +2404:2a80:400::/38 1; +2404:2a80:800::/37 1; +2404:2a80:1000::/36 1; +2404:2a80:2000::/35 1; +2404:2a80:4000::/34 1; +2404:2a80:8000::/33 1; +2404:2b40::/32 1; +2404:2fc0::/32 1; +2404:3500::/32 1; +2404:3880::/32 1; +2404:3e40::/32 1; +2404:4280::/32 1; +2404:4a40::/32 1; +2404:4cc0::/32 1; +2404:5d80:6600::/40 1; +2404:6540::/32 1; +2404:6800:4005::/48 1; +2404:6900::/32 1; +2404:7380::/32 1; +2404:7480::/32 1; +2404:7980::/32 1; +2404:7ac0::/34 1; +2404:7ac0:8000::/33 1; +2404:7b40::/32 1; +2404:7c40::/32 1; +2404:7cc0::/32 1; +2404:7f40::/32 1; +2404:7fc0::/32 1; +2404:82c0::/32 1; +2404:8380::/32 1; +2404:8c80::/32 1; +2404:9140::/40 1; +2404:95c0::/32 1; +2404:9a40::/32 1; +2404:9ec0::/32 1; +2404:a140::/32 1; +2404:a340::/32 1; +2404:ae00::/32 1; +2404:bb40::/31 1; +2404:c140::/39 1; +2404:c140:200::/43 1; +2404:c140:220::/46 1; +2404:c680::/32 1; +2404:c800::/29 1; +2404:ccc0::/32 1; +2404:ce80::/32 1; +2404:d180::/32 1; +2404:da80::/32 1; +2404:de80::/32 1; +2404:ea80::/32 1; +2404:ee00::/32 1; +2404:efc0:1000::/47 1; +2404:f880::/32 1; +2404:fc00::/32 1; +2404:ff80::/32 1; +2405:40::/32 1; +2405:dc0::/33 1; +2405:dc0:8100::/40 1; +2405:dc0:8200::/39 1; +2405:dc0:8400::/38 1; +2405:dc0:8800::/37 1; +2405:dc0:9000::/36 1; +2405:dc0:a000::/35 1; +2405:dc0:c000::/34 1; +2405:1400::/34 1; +2405:1940::/32 1; +2405:1c00::/32 1; +2405:2000::/40 1; +2405:2000:400::/39 1; +2405:2000:a00::/40 1; +2405:2001:300:100::/56 1; +2405:2001:300:200::/55 1; +2405:2001:300:400::/54 1; +2405:2001:300:800::/53 1; +2405:2001:300:1000::/52 1; +2405:2001:300:2000::/51 1; +2405:2001:300:4000::/50 1; +2405:2001:300:8000::/49 1; +2405:2001:301::/48 1; +2405:2001:302::/47 1; +2405:2001:304::/46 1; +2405:2001:308::/45 1; +2405:2001:310::/44 1; +2405:2001:320::/43 1; +2405:2001:340::/42 1; +2405:2001:380::/41 1; +2405:2001:400::/56 1; +2405:2001:500::/60 1; +2405:3000::/31 1; +2405:3e00::/32 1; +2405:4200:500::/40 1; +2405:5c00::/32 1; +2405:5d00::/32 1; +2405:5e00::/32 1; +2405:7bc0::/32 1; +2405:7ec0::/32 1; +2405:84c0:2000::/36 1; +2405:84c0:6b00::/40 1; +2405:84c0:9800::/40 1; +2405:84c0:fd00::/40 1; +2405:88c0::/32 1; +2405:a480::/32 1; +2405:a780::/32 1; +2405:adc0::/32 1; +2405:b200::/32 1; +2405:b5c0::/32 1; +2405:ba80::/32 1; +2405:bf80::/32 1; +2405:bfc0::/32 1; +2405:c180::/32 1; +2405:c2c0::/32 1; +2405:c300::/32 1; +2405:c740::/32 1; +2405:d1c0::/36 1; +2405:d1c0:a000::/35 1; +2405:d1c0:c000::/34 1; +2405:d6c0::/32 1; +2405:d800::/40 1; +2405:d800:100::/44 1; +2405:d800:110::/48 1; +2405:d800:112::/47 1; +2405:d800:114::/46 1; +2405:d800:118::/45 1; +2405:d800:120::/43 1; +2405:d800:140::/42 1; +2405:d800:180::/41 1; +2405:d800:200::/39 1; +2405:d800:400::/38 1; +2405:d800:800::/37 1; +2405:d800:1000::/36 1; +2405:d800:2000::/35 1; +2405:d800:4000::/34 1; +2405:d800:8000::/33 1; +2405:dac0::/32 1; +2405:dfc0::/32 1; +2405:e440::/32 1; +2405:e500::/32 1; +2405:e580::/32 1; +2405:e780::/32 1; +2405:e9c0::/32 1; +2405:ef00::/32 1; +2405:ef80::/32 1; +2405:efc0::/32 1; +2405:f080:400::/38 1; +2405:f080:8000::/34 1; +2405:fc40::/32 1; +2405:fd80::/37 1; +2405:fd80:800::/39 1; +2405:fd80:1100::/40 1; +2405:fd80:1200::/40 1; +2405:fd80:1400::/38 1; +2405:fd80:1800::/37 1; +2405:fd80:2000::/35 1; +2405:fd80:4000::/34 1; +2405:fd80:8000::/33 1; +2406::/32 1; +2406:381::/32 1; +2406:840:1f:1000::/64 1; +2406:840:800::/42 1; +2406:840:1000::/37 1; +2406:840:1800::/42 1; +2406:840:1840::/43 1; +2406:840:2800::/37 1; +2406:840:3000::/36 1; +2406:840:4800::/41 1; +2406:840:5800::/42 1; +2406:840:5840::/43 1; +2406:840:8200::/39 1; +2406:840:8400::/38 1; +2406:840:8800::/37 1; +2406:840:9000::/40 1; +2406:840:9690::/44 1; +2406:840:96a0::/43 1; +2406:840:96c0::/42 1; +2406:840:9700::/46 1; +2406:840:9962::/47 1; +2406:840:9970::/44 1; +2406:840:9ef0::/44 1; +2406:840:d000::/36 1; +2406:840:e000::/44 1; +2406:840:e110::/44 1; +2406:840:e180::/44 1; +2406:840:e1e0::/44 1; +2406:840:e500::/44 1; +2406:840:eb02::/48 1; +2406:840:f840::/44 1; +2406:840:fa02::/47 1; +2406:840:fa04::/46 1; +2406:840:fa08::/45 1; +2406:840:fa10::/44 1; +2406:840:fa20::/43 1; +2406:840:fa40::/42 1; +2406:840:fa80::/41 1; +2406:840:fb00::/40 1; +2406:840:fc00::/44 1; +2406:840:fec0::/44 1; +2406:840:fed1::/48 1; +2406:840:fef2::/48 1; +2406:840:ff00::/44 1; +2406:840:ff10::/47 1; +2406:840:ff13::/48 1; +2406:840:ff14::/46 1; +2406:840:ff18::/45 1; +2406:840:ff20::/43 1; +2406:840:ffff::/48 1; +2406:dc0::/32 1; +2406:1040::/32 1; +2406:1ec0::/32 1; +2406:2000:ef64::/48 1; +2406:3200::/32 1; +2406:3800::/32 1; +2406:4300::/32 1; +2406:4440::/33 1; +2406:4440:8000::/34 1; +2406:4440:c000::/36 1; +2406:4440:d000::/40 1; +2406:4440:da00::/39 1; +2406:4440:dc00::/38 1; +2406:4440:e000::/35 1; +2406:60c0::/32 1; +2406:6b40::/32 1; +2406:7180::/32 1; +2406:7840::/32 1; +2406:7a40::/32 1; +2406:8100::/32 1; +2406:81c0::/32 1; +2406:8680::/32 1; +2406:9100::/32 1; +2406:9400::/32 1; +2406:95c0::/32 1; +2406:9640::/32 1; +2406:9b80::/32 1; +2406:9c00::/32 1; +2406:9dc0::/39 1; +2406:9dc0:1000::/40 1; +2406:af40::/32 1; +2406:bcc0::/32 1; +2406:c140:852::/48 1; +2406:d340::/32 1; +2406:d4c0::/32 1; +2406:da00:e000::/40 1; +2406:da1e::/32 1; +2406:da2e::/36 1; +2406:da30:e000::/40 1; +2406:da32:e000::/40 1; +2406:da33:e000::/40 1; +2406:da36:e000::/40 1; +2406:da38:e000::/40 1; +2406:da60:e000::/40 1; +2406:da61:e000::/40 1; +2406:da70:e000::/40 1; +2406:daa0:e000::/36 1; +2406:daa0:f100::/40 1; +2406:daa0:f200::/39 1; +2406:daa0:f400::/38 1; +2406:daa0:f800::/37 1; +2406:dab8:e000::/40 1; +2406:dab9:e000::/40 1; +2406:daba:e000::/40 1; +2406:dabb:e000::/40 1; +2406:dae8:e000::/40 1; +2406:dae9:e000::/40 1; +2406:daea:e000::/40 1; +2406:daeb:e000::/40 1; +2406:daee:e000::/40 1; +2406:daef:e000::/40 1; +2406:daf0:e000::/40 1; +2406:daf1:e000::/40 1; +2406:daf2:e000::/40 1; +2406:daf3:e000::/40 1; +2406:daf4:e000::/40 1; +2406:daf5:e000::/40 1; +2406:daf6:e000::/40 1; +2406:daf8:e000::/40 1; +2406:daf9:e000::/40 1; +2406:dafa:e000::/40 1; +2406:dafc:e000::/40 1; +2406:dafe:e000::/40 1; +2406:daff:e000::/40 1; +2406:e300::/32 1; +2406:ef80:1::/48 1; +2406:f380::/32 1; +2406:f400:100::/44 1; +2406:fb00::/32 1; +2406:fb80::/32 1; +2407:4c0::/32 1; +2407:880::/32 1; +2407:900::/32 1; +2407:a80::/32 1; +2407:c40:2::/47 1; +2407:c40:4::/46 1; +2407:c40:8::/45 1; +2407:c40:10::/44 1; +2407:c40:20::/43 1; +2407:c40:40::/42 1; +2407:c40:80::/41 1; +2407:c40:100::/40 1; +2407:c40:200::/39 1; +2407:c40:400::/38 1; +2407:c40:800::/37 1; +2407:c40:1000::/36 1; +2407:c40:2000::/35 1; +2407:1080::/32 1; +2407:1380::/32 1; +2407:1540::/32 1; +2407:1b80::/32 1; +2407:1c40::/32 1; +2407:21c0::/32 1; +2407:2340::/32 1; +2407:2440:5::/48 1; +2407:2940::/32 1; +2407:3100::/32 1; +2407:3240::/32 1; +2407:3880::/40 1; +2407:3880:200::/39 1; +2407:3880:400::/38 1; +2407:3880:800::/37 1; +2407:3880:1000::/36 1; +2407:3880:2000::/35 1; +2407:3880:4000::/34 1; +2407:3880:8000::/33 1; +2407:3980::/32 1; +2407:3a40::/32 1; +2407:3bc0::/32 1; +2407:3c40::/32 1; +2407:3d80::/32 1; +2407:3fc0::/32 1; +2407:4340::/32 1; +2407:47c0::/32 1; +2407:4e40::/32 1; +2407:6080::/32 1; +2407:6480::/32 1; +2407:6880::/32 1; +2407:6dc0::/32 1; +2407:7200::/32 1; +2407:7280::/32 1; +2407:8000::/31 1; +2407:8480::/32 1; +2407:a3c0::/32 1; +2407:a700::/32 1; +2407:a980::/32 1; +2407:ac40::/32 1; +2407:acc0::/32 1; +2407:b400::/32 1; +2407:b700::/32 1; +2407:b9c0:f000::/36 1; +2407:bd00::/32 1; +2407:c640::/32 1; +2407:cdc0::/33 1; +2407:cdc0:a000::/35 1; +2407:cdc0:c000::/36 1; +2407:cdc0:e000::/35 1; +2407:cf00::/40 1; +2407:d340::/33 1; +2407:d340:8000::/34 1; +2407:d340:c000::/35 1; +2407:d340:e000::/36 1; +2407:d340:f100::/40 1; +2407:d340:f200::/39 1; +2407:d340:f400::/38 1; +2407:d340:f800::/37 1; +2407:d5c0::/32 1; +2407:d840:1::/48 1; +2407:d840:2::/47 1; +2407:df40::/32 1; +2407:e100::/32 1; +2407:e300::/31 1; +2407:ea00::/32 1; +2407:fa00::/32 1; +240b:4001::/32 1; +2600:140e:3::/48 1; +2600:140e:6::/47 1; +2600:1417:28::/46 1; +2600:1417:4400::/48 1; +2600:1417:7800::/48 1; +2600:1417:8000::/48 1; +2600:1417:8400::/48 1; +2600:1417:9000::/38 1; +2600:1417:9401::/48 1; +2600:1417:9402::/47 1; +2600:1417:9404::/46 1; +2600:1417:9408::/45 1; +2600:1417:9410::/44 1; +2600:1417:9420::/43 1; +2600:1417:9440::/42 1; +2600:1417:9480::/41 1; +2600:1417:9500::/40 1; +2600:1417:9600::/39 1; +2600:1417:9800::/37 1; +2600:1417:a000::/37 1; +2600:14a0:f0::/48 1; +2600:1900:0:2700::/56 1; +2600:1900:41a0::/44 1; +2600:1902:30::/44 1; +2600:1f01:4814::/46 1; +2600:1f01:4818::/47 1; +2600:1f01:481c::/46 1; +2600:1f01:4822:100::/56 1; +2600:1f01:4822:200::/55 1; +2600:1f01:4822:400::/54 1; +2600:1f01:4822:800::/53 1; +2600:1f01:4822:1000::/52 1; +2600:1f01:4822:2000::/51 1; +2600:1f01:4822:4000::/50 1; +2600:1f01:4822:8000::/49 1; +2600:1f01:4823::/48 1; +2600:1f01:4824::/46 1; +2600:1f01:4828::/45 1; +2600:1f01:4920::/47 1; +2600:70ff:a89c::/46 1; +2600:70ff:a8a0::/43 1; +2600:70ff:a8c0::/42 1; +2600:70ff:a900::/40 1; +2600:70ff:aa00::/39 1; +2600:70ff:ac00::/38 1; +2600:70ff:b000::/41 1; +2600:70ff:b080::/42 1; +2600:70ff:b0c0::/43 1; +2600:70ff:b0e0::/44 1; +2600:70ff:b0f0::/45 1; +2600:70ff:b0f8::/47 1; +2600:bc02::/40 1; +2600:f0f0:6113::/48 1; +2600:f0f0:810d::/48 1; +2600:f0f0:c113::/48 1; +2600:f0f1:85::/48 1; +2600:f0f1:4280::/42 1; +2600:f0f2:7402::/48 1; +2600:f0fb:f106::/48 1; +2602:2ef::/34 1; +2602:f6e0::/34 1; +2602:f7d3::/34 1; +2602:f803::/34 1; +2602:f92a::/32 1; +2602:fa63::/34 1; +2602:fb69:f4::/48 1; +2602:fbda:666::/47 1; +2602:fbda:668::/45 1; +2602:fbda:670::/44 1; +2602:fbda:680::/41 1; +2602:fca7:4::/47 1; +2602:fd55::/36 1; +2602:fed2:7124::/48 1; +2602:feda:a4::/48 1; +2602:feda:100::/41 1; +2602:feda:182::/47 1; +2602:feda:185::/48 1; +2602:feda:1d0::/48 1; +2602:feda:1e0::/44 1; +2602:feda:2a0::/44 1; +2602:feda:3b0::/44 1; +2602:feda:ae5::/48 1; +2602:feda:b8f::/48 1; +2602:feda:ce1::/48 1; +2602:feda:ce2::/47 1; +2602:feda:ce4::/46 1; +2602:feda:ce8::/45 1; +2602:feda:d50::/44 1; +2602:feda:d70::/44 1; +2602:feda:de0::/43 1; +2602:feda:e40::/44 1; +2602:feda:f070::/44 1; +2602:feda:f080::/41 1; +2602:ffe4::/38 1; +2602:ffe4:d00::/40 1; +2602:ffe4:e00::/39 1; +2603:1040:200::/40 1; +2603:1046:200::/40 1; +2603:1046:c00::/63 1; +2603:1046:c00:c002::/64 1; +2603:1046:c02::/48 1; +2603:1046:c03:800::/53 1; +2603:1046:c03:1000::/52 1; +2603:1046:c03:2000::/51 1; +2603:1046:c03:4000::/50 1; +2603:1046:c03:8000::/49 1; +2603:1046:c08:1800::/53 1; +2603:1046:c08:2000::/51 1; +2603:1046:c08:4000::/50 1; +2603:1046:c08:8000::/49 1; +2603:1046:1401::/48 1; +2603:1046:1409::/48 1; +2603:1046:1500:24::/64 1; +2603:1046:2000:40::/59 1; +2603:1047:0:1::/64 1; +2603:1047:0:5::/64 1; +2603:1047:0:e::/64 1; +2603:1047:0:43::/64 1; +2603:1047:0:81::/64 1; +2603:1047:0:85::/64 1; +2603:1047:0:8e::/64 1; +2603:1047:0:90::/64 1; +2603:1047:0:c3::/64 1; +2603:1047:0:400::/59 1; +2603:1047:1:40::/59 1; +2603:1047:200::/40 1; +2603:1049:200::/47 1; +2603:1049:202::/48 1; +2603:1049:700::/40 1; +2603:1061:1300:400::/54 1; +2603:1061:1310:400::/54 1; +2603:1061:13f0:400::/54 1; +2603:1062:0:8c::/64 1; +2603:1062:0:8e::/64 1; +2603:1062:0:313::/64 1; +2603:1063:2202:8::/62 1; +2604:1380:51:c00::/54 1; +2604:1380:51:1000::/52 1; +2604:1380:51:2000::/51 1; +2604:1380:51:4000::/50 1; +2604:1380:51:8000::/49 1; +2604:1380:52::/47 1; +2604:1380:54::/46 1; +2604:1380:58::/45 1; +2604:1380:60::/49 1; +2604:1380:60:8000::/50 1; +2604:1380:60:c000::/51 1; +2604:1380:60:e000::/52 1; +2604:1380:60:f000::/53 1; +2604:1380:60:f800::/54 1; +2604:1380:60:fc00::/55 1; +2604:1380:60:fe00::/56 1; +2604:1380:40a0::/44 1; +2604:1380:40d0::/44 1; +2604:3e40::/32 1; +2604:d6c0::/48 1; +2605:8380:e00::/40 1; +2605:a7c0:19::/48 1; +2605:dd40:9005::/48 1; +2605:e440:15::/48 1; +2605:e440:16::/47 1; +2605:e440:18::/45 1; +2605:e440:20::/43 1; +2605:e440:40::/42 1; +2605:e440:80::/41 1; +2605:e440:100::/40 1; +2605:e440:200::/39 1; +2605:e440:400::/38 1; +2605:e440:800::/37 1; +2605:e440:1000::/36 1; +2605:e440:2000::/35 1; +2605:f500:403::/48 1; +2606:1540::/37 1; +2606:1540:c00::/38 1; +2606:1540:1c00::/38 1; +2606:1540:2000::/36 1; +2606:1540:3400::/38 1; +2606:1540:4400::/38 1; +2606:1540:4800::/37 1; +2606:1540:5000::/36 1; +2606:1540:6000::/35 1; +2606:1540:8000::/33 1; +2606:54c0:3910::/44 1; +2606:54c3:0:73d::/64 1; +2606:54c3:0:1686::/64 1; +2607:5d00:2::/47 1; +2607:5d00:4::/47 1; +2607:8140::/32 1; +2607:f740:90::/44 1; +2607:f740:a0::/43 1; +2607:f740:c0::/42 1; +2607:fdc0:140::/42 1; +2610:a1:3054:100::/56 1; +2610:a1:3054:200::/55 1; +2610:a1:3054:400::/54 1; +2610:a1:3054:800::/53 1; +2610:a1:3054:1000::/52 1; +2610:a1:3054:2000::/51 1; +2610:a1:3054:4000::/50 1; +2610:a1:3054:8000::/49 1; +2610:a1:3055::/48 1; +2610:a1:3056::/47 1; +2610:a1:3058::/55 1; +2610:a1:3058:200::/58 1; +2610:a1:3058:240::/60 1; +2610:a1:3058:250::/63 1; +2610:a1:3058:252::/119 1; +2610:a1:3058:252::200/122 1; +2610:a1:3058:252::240/124 1; +2610:a1:3058:252::250/126 1; +2610:a1:3058:252::254/128 1; +2620:0:cce::/48 1; +2620:74:4b:3000::/52 1; +2620:74:4b:4000::/50 1; +2620:74:4b:8000::/49 1; +2620:74:4c::/46 1; +2620:74:50::/51 1; +2620:74:50:2000::/52 1; +2620:171:32::/47 1; +2620:171:55::/48 1; +2620:171:fb::/48 1; +2a00:11c0:17::/48 1; +2a00:11c0:33::/48 1; +2a00:1d27::/32 1; +2a00:79e0:ffe2:3d00::/56 1; +2a00:79e0:ffe2:8d00::/56 1; +2a00:79e0:ffe2:c800::/56 1; +2a00:79e0:ffe3:bd00::/56 1; +2a00:79e0:ffe3:da00::/56 1; +2a00:79e0:ffe3:e500::/56 1; +2a00:79e0:ffe3:ef00::/56 1; +2a00:8420::/29 1; +2a00:86c0:1056::/47 1; +2a00:86c0:1058::/45 1; +2a00:86c0:1060::/47 1; +2a00:86c0:1062::/48 1; +2a01:111:201d::/48 1; +2a01:111:2032::/48 1; +2a01:111:f100:6000::/52 1; +2a01:111:f102:8000::/52 1; +2a01:111:f400:1c00::/61 1; +2a01:111:f400:1c09::/64 1; +2a01:111:f400:1c9a::/63 1; +2a01:111:f400:1c9c::/62 1; +2a01:111:f400:2e28::/63 1; +2a01:111:f400:2e2a::/64 1; +2a01:111:f400:2e2c::/62 1; +2a01:111:f400:2e30::/61 1; +2a01:111:f400:2e38::/62 1; +2a01:111:f400:2e4c::/62 1; +2a01:111:f400:2f70::/61 1; +2a01:111:f400:2f78::/62 1; +2a01:111:f400:2f7c::/63 1; +2a01:111:f400:308b::/64 1; +2a01:111:f400:3285::/64 1; +2a01:111:f400:3286::/63 1; +2a01:111:f400:3288::/61 1; +2a01:111:f400:3290::/61 1; +2a01:111:f400:3298::/64 1; +2a01:111:f400:523a::/63 1; +2a01:111:f400:6034::/63 1; +2a01:111:f400:6092::/64 1; +2a01:111:f400:60a2::/63 1; +2a01:111:f400:7c1c::/64 1; +2a01:111:f400:7e96::/64 1; +2a01:111:f400:7eb3::/64 1; +2a01:111:f400:a401::/64 1; +2a01:111:f400:a402::/64 1; +2a01:111:f400:a408::/63 1; +2a01:111:f400:a426::/63 1; +2a01:111:f400:e022::/63 1; +2a01:111:f400:e0f1::/64 1; +2a01:111:f400:e119::/64 1; +2a01:111:f400:e233::/64 1; +2a01:111:f400:e234::/63 1; +2a01:111:f400:e289::/64 1; +2a01:111:f400:e28d::/64 1; +2a01:111:f400:e2d4::/63 1; +2a01:111:f400:e2d8::/63 1; +2a01:111:f400:e2dc::/63 1; +2a01:111:f400:e348::/63 1; +2a01:111:f400:f320::/61 1; +2a01:111:f400:f328::/62 1; +2a01:111:f400:fc18::/64 1; +2a01:111:f400:fe91::/64 1; +2a01:111:f400:feaa::/64 1; +2a01:111:f400:feb3::/64 1; +2a01:111:f400:fec4::/64 1; +2a01:111:f400:fec7::/64 1; +2a01:111:f400:ff8e::/64 1; +2a01:111:f402:6800::/54 1; +2a01:111:f402:a000::/54 1; +2a01:111:f402:f03c::/64 1; +2a01:111:f402:f060::/63 1; +2a01:111:f403:54::/64 1; +2a01:111:f403:59::/64 1; +2a01:111:f403:833::/64 1; +2a01:111:f403:1001::/64 1; +2a01:111:f403:1008::/64 1; +2a01:111:f403:1019::/64 1; +2a01:111:f403:101b::/64 1; +2a01:111:f403:200b::/64 1; +2a01:111:f403:2010::/64 1; +2a01:111:f403:2806::/64 1; +2a01:111:f403:280b::/64 1; +2a01:111:f403:3002::/64 1; +2a01:111:f403:3007::/64 1; +2a01:111:f403:5001::/64 1; +2a01:111:f403:5002::/63 1; +2a01:111:f403:5004::/62 1; +2a01:111:f403:700a::/64 1; +2a01:111:f403:7029::/64 1; +2a01:111:f403:702a::/63 1; +2a01:111:f403:702c::/62 1; +2a01:111:f403:7050::/64 1; +2a01:111:f403:9002::/64 1; +2a01:111:f403:9005::/64 1; +2a01:111:f403:a002::/64 1; +2a01:111:f403:a007::/64 1; +2a01:111:f403:c400::/64 1; +2a01:111:f403:cc00::/62 1; +2a01:111:f403:cc04::/64 1; +2a01:111:f403:d401::/64 1; +2a01:111:f403:dc00::/64 1; +2a01:111:f403:e400::/64 1; +2a01:111:f406:a000::/63 1; +2a01:111:f406:a003::/64 1; +2a01:5b0:24::/48 1; +2a01:5042::/36 1; +2a01:53c0:ffe4::/46 1; +2a01:53c0:fff7::/56 1; +2a01:53c0:fffc::/47 1; +2a01:9260::/32 1; +2a01:b747:400::/43 1; +2a01:b747:420::/44 1; +2a01:b747:431::/48 1; +2a01:b747:432::/47 1; +2a01:b747:434::/46 1; +2a01:b747:4f3::/48 1; +2a01:b747:4f4::/46 1; +2a01:b747:4f8::/45 1; +2a01:ce9e::/36 1; +2a02:b4b::/32 1; +2a02:b4c::/32 1; +2a02:2370:c000::/35 1; +2a02:2370:e000::/36 1; +2a02:26f7:7::/48 1; +2a02:26f7:130::/48 1; +2a02:26f7:149::/48 1; +2a02:26f7:156::/48 1; +2a02:26f7:b9c0::/50 1; +2a02:26f7:b9c0:4000::/64 1; +2a02:26f7:b9c0:45c0::/63 1; +2a02:26f7:b9c0:45c2::/64 1; +2a02:26f7:b9c1:4000::/64 1; +2a02:26f7:b9c4:4000::/64 1; +2a02:26f7:b9c4:45c0::/63 1; +2a02:26f7:b9c4:45c2::/64 1; +2a02:26f7:b9c5::/50 1; +2a02:26f7:b9c5:4000::/64 1; +2a02:26f7:b9c5:45c0::/63 1; +2a02:26f7:b9c5:45c2::/64 1; +2a02:26f7:b9c6:4000::/50 1; +2a02:26f7:b9c6:8000::/49 1; +2a02:26f7:b9c7::/48 1; +2a02:26f7:b9c8::/50 1; +2a02:26f7:b9c8:4000::/64 1; +2a02:26f7:b9c8:45c0::/63 1; +2a02:26f7:b9c8:45c2::/64 1; +2a02:26f7:b9c9:4000::/50 1; +2a02:26f7:b9c9:8000::/49 1; +2a02:26f7:b9ca::/47 1; +2a02:26f7:b9cc::/46 1; +2a02:26f7:b9d0::/44 1; +2a02:26f7:b9e0::/43 1; +2a02:26f7:ba00::/48 1; +2a02:26f7:ba01::/50 1; +2a02:26f7:c400:4001::/64 1; +2a02:26f7:c400:4002::/63 1; +2a02:26f7:c400:4004::/62 1; +2a02:26f7:c400:4008::/61 1; +2a02:26f7:c400:4010::/60 1; +2a02:26f7:c400:4020::/59 1; +2a02:26f7:c400:4040::/58 1; +2a02:26f7:c400:4080::/57 1; +2a02:26f7:c400:4100::/56 1; +2a02:26f7:c400:4200::/55 1; +2a02:26f7:c400:4400::/54 1; +2a02:26f7:c400:4800::/53 1; +2a02:26f7:c400:5000::/52 1; +2a02:26f7:c400:6000::/51 1; +2a02:26f7:c400:8000::/50 1; +2a02:26f7:c400:c000::/51 1; +2a02:26f7:c400:e000::/52 1; +2a02:26f7:c400:f000::/54 1; +2a02:26f7:c400:f60e::/63 1; +2a02:26f7:c400:f610::/60 1; +2a02:26f7:c400:f620::/59 1; +2a02:26f7:c400:f640::/58 1; +2a02:26f7:c400:f680::/57 1; +2a02:26f7:c400:f700::/56 1; +2a02:26f7:c400:f800::/53 1; +2a02:26f7:c401::/50 1; +2a02:26f7:c401:4001::/64 1; +2a02:26f7:c401:4002::/63 1; +2a02:26f7:c401:4004::/62 1; +2a02:26f7:c401:4008::/61 1; +2a02:26f7:c401:4010::/60 1; +2a02:26f7:c401:4020::/59 1; +2a02:26f7:c401:4040::/58 1; +2a02:26f7:c401:4080::/57 1; +2a02:26f7:c401:4100::/56 1; +2a02:26f7:c401:4200::/55 1; +2a02:26f7:c401:4400::/54 1; +2a02:26f7:c401:4800::/53 1; +2a02:26f7:c401:5000::/52 1; +2a02:26f7:c401:6000::/51 1; +2a02:26f7:c401:8000::/49 1; +2a02:26f7:c402::/47 1; +2a02:26f7:c405:4001::/64 1; +2a02:26f7:c405:4002::/63 1; +2a02:26f7:c405:4004::/62 1; +2a02:26f7:c405:4008::/61 1; +2a02:26f7:c405:4010::/60 1; +2a02:26f7:c405:4020::/59 1; +2a02:26f7:c405:4040::/58 1; +2a02:26f7:c405:4080::/57 1; +2a02:26f7:c405:4100::/56 1; +2a02:26f7:c405:4200::/55 1; +2a02:26f7:c405:4400::/54 1; +2a02:26f7:c405:4800::/53 1; +2a02:26f7:c405:5000::/52 1; +2a02:26f7:c405:6000::/51 1; +2a02:26f7:c405:8000::/49 1; +2a02:26f7:c406::/47 1; +2a02:26f7:c409:4001::/64 1; +2a02:26f7:c409:4002::/63 1; +2a02:26f7:c409:4004::/62 1; +2a02:26f7:c409:4008::/61 1; +2a02:26f7:c409:4010::/60 1; +2a02:26f7:c409:4020::/59 1; +2a02:26f7:c409:4040::/58 1; +2a02:26f7:c409:4080::/57 1; +2a02:26f7:c409:4100::/56 1; +2a02:26f7:c409:4200::/55 1; +2a02:26f7:c409:4400::/54 1; +2a02:26f7:c409:4800::/53 1; +2a02:26f7:c409:5000::/52 1; +2a02:26f7:c409:6000::/51 1; +2a02:26f7:c409:8000::/49 1; +2a02:26f7:c40a::/47 1; +2a02:26f7:c40d:4001::/64 1; +2a02:26f7:c40d:4002::/63 1; +2a02:26f7:c40d:4004::/62 1; +2a02:26f7:c40d:4008::/61 1; +2a02:26f7:c40d:4010::/60 1; +2a02:26f7:c40d:4020::/59 1; +2a02:26f7:c40d:4040::/58 1; +2a02:26f7:c40d:4080::/57 1; +2a02:26f7:c40d:4100::/56 1; +2a02:26f7:c40d:4200::/55 1; +2a02:26f7:c40d:4400::/54 1; +2a02:26f7:c40d:4800::/53 1; +2a02:26f7:c40d:5000::/52 1; +2a02:26f7:c40d:6000::/51 1; +2a02:26f7:c40d:8000::/49 1; +2a02:26f7:c40e::/47 1; +2a02:26f7:c410::/50 1; +2a02:26f7:c410:4001::/64 1; +2a02:26f7:c410:4002::/63 1; +2a02:26f7:c410:4004::/62 1; +2a02:26f7:c410:4008::/61 1; +2a02:26f7:c410:4010::/60 1; +2a02:26f7:c410:4020::/59 1; +2a02:26f7:c410:4040::/58 1; +2a02:26f7:c410:4080::/57 1; +2a02:26f7:c410:4100::/56 1; +2a02:26f7:c410:4200::/55 1; +2a02:26f7:c410:4400::/54 1; +2a02:26f7:c410:4800::/53 1; +2a02:26f7:c410:5000::/52 1; +2a02:26f7:c410:6000::/51 1; +2a02:26f7:c410:8000::/50 1; +2a02:26f7:c410:c000::/51 1; +2a02:26f7:c410:e000::/52 1; +2a02:26f7:c410:f000::/54 1; +2a02:26f7:c410:f60e::/63 1; +2a02:26f7:c410:f610::/60 1; +2a02:26f7:c410:f620::/59 1; +2a02:26f7:c410:f640::/58 1; +2a02:26f7:c410:f680::/57 1; +2a02:26f7:c410:f700::/56 1; +2a02:26f7:c410:f800::/53 1; +2a02:26f7:c411::/50 1; +2a02:26f7:c411:4001::/64 1; +2a02:26f7:c411:4002::/63 1; +2a02:26f7:c411:4004::/62 1; +2a02:26f7:c411:4008::/61 1; +2a02:26f7:c411:4010::/60 1; +2a02:26f7:c411:4020::/59 1; +2a02:26f7:c411:4040::/58 1; +2a02:26f7:c411:4080::/57 1; +2a02:26f7:c411:4100::/56 1; +2a02:26f7:c411:4200::/55 1; +2a02:26f7:c411:4400::/54 1; +2a02:26f7:c411:4800::/53 1; +2a02:26f7:c411:5000::/52 1; +2a02:26f7:c411:6000::/51 1; +2a02:26f7:c411:8000::/49 1; +2a02:26f7:c412::/47 1; +2a02:26f7:c414::/50 1; +2a02:26f7:c415:4001::/64 1; +2a02:26f7:c415:4002::/63 1; +2a02:26f7:c415:4004::/62 1; +2a02:26f7:c415:4008::/61 1; +2a02:26f7:c415:4010::/60 1; +2a02:26f7:c415:4020::/59 1; +2a02:26f7:c415:4040::/58 1; +2a02:26f7:c415:4080::/57 1; +2a02:26f7:c415:4100::/56 1; +2a02:26f7:c415:4200::/55 1; +2a02:26f7:c415:4400::/54 1; +2a02:26f7:c415:4800::/53 1; +2a02:26f7:c415:5000::/52 1; +2a02:26f7:c415:6000::/51 1; +2a02:26f7:c415:8000::/49 1; +2a02:26f7:c416::/47 1; +2a02:26f7:c418::/50 1; +2a02:26f7:c419:4001::/64 1; +2a02:26f7:c419:4002::/63 1; +2a02:26f7:c419:4004::/62 1; +2a02:26f7:c419:4008::/61 1; +2a02:26f7:c419:4010::/60 1; +2a02:26f7:c419:4020::/59 1; +2a02:26f7:c419:4040::/58 1; +2a02:26f7:c419:4080::/57 1; +2a02:26f7:c419:4100::/56 1; +2a02:26f7:c419:4200::/55 1; +2a02:26f7:c419:4400::/54 1; +2a02:26f7:c419:4800::/53 1; +2a02:26f7:c419:5000::/52 1; +2a02:26f7:c419:6000::/51 1; +2a02:26f7:c419:8000::/49 1; +2a02:26f7:c41a::/47 1; +2a02:26f7:c41c::/50 1; +2a02:26f7:c41d:4001::/64 1; +2a02:26f7:c41d:4002::/63 1; +2a02:26f7:c41d:4004::/62 1; +2a02:26f7:c41d:4008::/61 1; +2a02:26f7:c41d:4010::/60 1; +2a02:26f7:c41d:4020::/59 1; +2a02:26f7:c41d:4040::/58 1; +2a02:26f7:c41d:4080::/57 1; +2a02:26f7:c41d:4100::/56 1; +2a02:26f7:c41d:4200::/55 1; +2a02:26f7:c41d:4400::/54 1; +2a02:26f7:c41d:4800::/53 1; +2a02:26f7:c41d:5000::/52 1; +2a02:26f7:c41d:6000::/51 1; +2a02:26f7:c41d:8000::/49 1; +2a02:26f7:c41e::/47 1; +2a02:26f7:c420::/50 1; +2a02:26f7:c421:4001::/64 1; +2a02:26f7:c421:4002::/63 1; +2a02:26f7:c421:4004::/62 1; +2a02:26f7:c421:4008::/61 1; +2a02:26f7:c421:4010::/60 1; +2a02:26f7:c421:4020::/59 1; +2a02:26f7:c421:4040::/58 1; +2a02:26f7:c421:4080::/57 1; +2a02:26f7:c421:4100::/56 1; +2a02:26f7:c421:4200::/55 1; +2a02:26f7:c421:4400::/54 1; +2a02:26f7:c421:4800::/53 1; +2a02:26f7:c421:5000::/52 1; +2a02:26f7:c421:6000::/51 1; +2a02:26f7:c421:8000::/49 1; +2a02:26f7:c422::/47 1; +2a02:26f7:c424::/46 1; +2a02:26f7:c428::/45 1; +2a02:26f7:c430::/44 1; +2a02:26f7:c441:4001::/64 1; +2a02:26f7:c441:4002::/63 1; +2a02:26f7:c441:4004::/62 1; +2a02:26f7:c441:4008::/61 1; +2a02:26f7:c441:4010::/60 1; +2a02:26f7:c441:4020::/59 1; +2a02:26f7:c441:4040::/58 1; +2a02:26f7:c441:4080::/57 1; +2a02:26f7:c441:4100::/56 1; +2a02:26f7:c441:4200::/55 1; +2a02:26f7:c441:4400::/54 1; +2a02:26f7:c441:4800::/53 1; +2a02:26f7:c441:5000::/52 1; +2a02:26f7:c441:6000::/51 1; +2a02:26f7:c441:8000::/49 1; +2a02:26f7:c442::/47 1; +2a02:26f7:c444::/50 1; +2a02:26f7:c445:4001::/64 1; +2a02:26f7:c445:4002::/63 1; +2a02:26f7:c445:4004::/62 1; +2a02:26f7:c445:4008::/61 1; +2a02:26f7:c445:4010::/60 1; +2a02:26f7:c445:4020::/59 1; +2a02:26f7:c445:4040::/58 1; +2a02:26f7:c445:4080::/57 1; +2a02:26f7:c445:4100::/56 1; +2a02:26f7:c445:4200::/55 1; +2a02:26f7:c445:4400::/54 1; +2a02:26f7:c445:4800::/53 1; +2a02:26f7:c445:5000::/52 1; +2a02:26f7:c445:6000::/51 1; +2a02:26f7:c445:8000::/49 1; +2a02:26f7:c446::/47 1; +2a02:26f7:c448::/46 1; +2a02:26f7:c44d:4001::/64 1; +2a02:26f7:c44d:4002::/63 1; +2a02:26f7:c44d:4004::/62 1; +2a02:26f7:c44d:4008::/61 1; +2a02:26f7:c44d:4010::/60 1; +2a02:26f7:c44d:4020::/59 1; +2a02:26f7:c44d:4040::/58 1; +2a02:26f7:c44d:4080::/57 1; +2a02:26f7:c44d:4100::/56 1; +2a02:26f7:c44d:4200::/55 1; +2a02:26f7:c44d:4400::/54 1; +2a02:26f7:c44d:4800::/53 1; +2a02:26f7:c44d:5000::/52 1; +2a02:26f7:c44d:6000::/51 1; +2a02:26f7:c44d:8000::/49 1; +2a02:26f7:c44e::/47 1; +2a02:26f7:c450::/44 1; +2a02:26f7:c460::/43 1; +2a02:26f7:c481:4001::/64 1; +2a02:26f7:c481:4002::/63 1; +2a02:26f7:c481:4004::/62 1; +2a02:26f7:c481:4008::/61 1; +2a02:26f7:c481:4010::/60 1; +2a02:26f7:c481:4020::/59 1; +2a02:26f7:c481:4040::/58 1; +2a02:26f7:c481:4080::/57 1; +2a02:26f7:c481:4100::/56 1; +2a02:26f7:c481:4200::/55 1; +2a02:26f7:c481:4400::/54 1; +2a02:26f7:c481:4800::/53 1; +2a02:26f7:c481:5000::/52 1; +2a02:26f7:c481:6000::/51 1; +2a02:26f7:c481:8000::/49 1; +2a02:26f7:c482::/47 1; +2a02:26f7:c485:4001::/64 1; +2a02:26f7:c485:4002::/63 1; +2a02:26f7:c485:4004::/62 1; +2a02:26f7:c485:4008::/61 1; +2a02:26f7:c485:4010::/60 1; +2a02:26f7:c485:4020::/59 1; +2a02:26f7:c485:4040::/58 1; +2a02:26f7:c485:4080::/57 1; +2a02:26f7:c485:4100::/56 1; +2a02:26f7:c485:4200::/55 1; +2a02:26f7:c485:4400::/54 1; +2a02:26f7:c485:4800::/53 1; +2a02:26f7:c485:5000::/52 1; +2a02:26f7:c485:6000::/51 1; +2a02:26f7:c485:8000::/49 1; +2a02:26f7:c486::/47 1; +2a02:26f7:c489:4001::/64 1; +2a02:26f7:c489:4002::/63 1; +2a02:26f7:c489:4004::/62 1; +2a02:26f7:c489:4008::/61 1; +2a02:26f7:c489:4010::/60 1; +2a02:26f7:c489:4020::/59 1; +2a02:26f7:c489:4040::/58 1; +2a02:26f7:c489:4080::/57 1; +2a02:26f7:c489:4100::/56 1; +2a02:26f7:c489:4200::/55 1; +2a02:26f7:c489:4400::/54 1; +2a02:26f7:c489:4800::/53 1; +2a02:26f7:c489:5000::/52 1; +2a02:26f7:c489:6000::/51 1; +2a02:26f7:c489:8000::/49 1; +2a02:26f7:c48a::/47 1; +2a02:26f7:c48d:4001::/64 1; +2a02:26f7:c48d:4002::/63 1; +2a02:26f7:c48d:4004::/62 1; +2a02:26f7:c48d:4008::/61 1; +2a02:26f7:c48d:4010::/60 1; +2a02:26f7:c48d:4020::/59 1; +2a02:26f7:c48d:4040::/58 1; +2a02:26f7:c48d:4080::/57 1; +2a02:26f7:c48d:4100::/56 1; +2a02:26f7:c48d:4200::/55 1; +2a02:26f7:c48d:4400::/54 1; +2a02:26f7:c48d:4800::/53 1; +2a02:26f7:c48d:5000::/52 1; +2a02:26f7:c48d:6000::/51 1; +2a02:26f7:c48d:8000::/49 1; +2a02:26f7:c48e::/47 1; +2a02:26f7:c491:4001::/64 1; +2a02:26f7:c491:4002::/63 1; +2a02:26f7:c491:4004::/62 1; +2a02:26f7:c491:4008::/61 1; +2a02:26f7:c491:4010::/60 1; +2a02:26f7:c491:4020::/59 1; +2a02:26f7:c491:4040::/58 1; +2a02:26f7:c491:4080::/57 1; +2a02:26f7:c491:4100::/56 1; +2a02:26f7:c491:4200::/55 1; +2a02:26f7:c491:4400::/54 1; +2a02:26f7:c491:4800::/53 1; +2a02:26f7:c491:5000::/52 1; +2a02:26f7:c491:6000::/51 1; +2a02:26f7:c491:8000::/49 1; +2a02:26f7:c492::/47 1; +2a02:26f7:c494::/46 1; +2a02:26f7:c498::/45 1; +2a02:26f7:c4a0::/43 1; +2a02:26f7:c4c1:4001::/64 1; +2a02:26f7:c4c1:4002::/63 1; +2a02:26f7:c4c1:4004::/62 1; +2a02:26f7:c4c1:4008::/61 1; +2a02:26f7:c4c1:4010::/60 1; +2a02:26f7:c4c1:4020::/59 1; +2a02:26f7:c4c1:4040::/58 1; +2a02:26f7:c4c1:4080::/57 1; +2a02:26f7:c4c1:4100::/56 1; +2a02:26f7:c4c1:4200::/55 1; +2a02:26f7:c4c1:4400::/54 1; +2a02:26f7:c4c1:4800::/53 1; +2a02:26f7:c4c1:5000::/52 1; +2a02:26f7:c4c1:6000::/51 1; +2a02:26f7:c4c1:8000::/49 1; +2a02:26f7:c4c2::/47 1; +2a02:26f7:c4c9:4001::/64 1; +2a02:26f7:c4c9:4002::/63 1; +2a02:26f7:c4c9:4004::/62 1; +2a02:26f7:c4c9:4008::/61 1; +2a02:26f7:c4c9:4010::/60 1; +2a02:26f7:c4c9:4020::/59 1; +2a02:26f7:c4c9:4040::/58 1; +2a02:26f7:c4c9:4080::/57 1; +2a02:26f7:c4c9:4100::/56 1; +2a02:26f7:c4c9:4200::/55 1; +2a02:26f7:c4c9:4400::/54 1; +2a02:26f7:c4c9:4800::/53 1; +2a02:26f7:c4c9:5000::/52 1; +2a02:26f7:c4c9:6000::/51 1; +2a02:26f7:c4c9:8000::/49 1; +2a02:26f7:c4ca::/47 1; +2a02:26f7:c4cc::/50 1; +2a02:26f7:c4cd:4001::/64 1; +2a02:26f7:c4cd:4002::/63 1; +2a02:26f7:c4cd:4004::/62 1; +2a02:26f7:c4cd:4008::/61 1; +2a02:26f7:c4cd:4010::/60 1; +2a02:26f7:c4cd:4020::/59 1; +2a02:26f7:c4cd:4040::/58 1; +2a02:26f7:c4cd:4080::/57 1; +2a02:26f7:c4cd:4100::/56 1; +2a02:26f7:c4cd:4200::/55 1; +2a02:26f7:c4cd:4400::/54 1; +2a02:26f7:c4cd:4800::/53 1; +2a02:26f7:c4cd:5000::/52 1; +2a02:26f7:c4cd:6000::/51 1; +2a02:26f7:c4cd:8000::/49 1; +2a02:26f7:c4ce::/47 1; +2a02:26f7:c4d1:4001::/64 1; +2a02:26f7:c4d1:4002::/63 1; +2a02:26f7:c4d1:4004::/62 1; +2a02:26f7:c4d1:4008::/61 1; +2a02:26f7:c4d1:4010::/60 1; +2a02:26f7:c4d1:4020::/59 1; +2a02:26f7:c4d1:4040::/58 1; +2a02:26f7:c4d1:4080::/57 1; +2a02:26f7:c4d1:4100::/56 1; +2a02:26f7:c4d1:4200::/55 1; +2a02:26f7:c4d1:4400::/54 1; +2a02:26f7:c4d1:4800::/53 1; +2a02:26f7:c4d1:5000::/52 1; +2a02:26f7:c4d1:6000::/51 1; +2a02:26f7:c4d1:8000::/49 1; +2a02:26f7:c4d2::/47 1; +2a02:26f7:c4d5:4001::/64 1; +2a02:26f7:c4d5:4002::/63 1; +2a02:26f7:c4d5:4004::/62 1; +2a02:26f7:c4d5:4008::/61 1; +2a02:26f7:c4d5:4010::/60 1; +2a02:26f7:c4d5:4020::/59 1; +2a02:26f7:c4d5:4040::/58 1; +2a02:26f7:c4d5:4080::/57 1; +2a02:26f7:c4d5:4100::/56 1; +2a02:26f7:c4d5:4200::/55 1; +2a02:26f7:c4d5:4400::/54 1; +2a02:26f7:c4d5:4800::/53 1; +2a02:26f7:c4d5:5000::/52 1; +2a02:26f7:c4d5:6000::/51 1; +2a02:26f7:c4d5:8000::/49 1; +2a02:26f7:c4d6::/47 1; +2a02:26f7:c4d8::/45 1; +2a02:26f7:c4e0::/43 1; +2a02:26f7:cf0c:4001::/64 1; +2a02:26f7:cf0c:4002::/63 1; +2a02:26f7:cf0c:4004::/62 1; +2a02:26f7:cf0c:4008::/61 1; +2a02:26f7:cf0c:4010::/60 1; +2a02:26f7:cf0c:4020::/59 1; +2a02:26f7:cf0c:4040::/58 1; +2a02:26f7:cf0c:4080::/57 1; +2a02:26f7:cf0c:4100::/56 1; +2a02:26f7:cf0c:4200::/55 1; +2a02:26f7:cf0c:4400::/54 1; +2a02:26f7:cf0c:4800::/53 1; +2a02:26f7:cf0c:5000::/52 1; +2a02:26f7:cf0c:6000::/51 1; +2a02:26f7:cf0c:8000::/50 1; +2a02:26f7:cf0c:c000::/52 1; +2a02:26f7:cf0c:d000::/56 1; +2a02:26f7:cf0c:d100::/57 1; +2a02:26f7:cf0c:d180::/59 1; +2a02:26f7:cf0c:d1aa::/63 1; +2a02:26f7:cf0c:d1ac::/62 1; +2a02:26f7:cf0c:d1b0::/60 1; +2a02:26f7:cf0c:d1c0::/58 1; +2a02:26f7:cf0c:d200::/55 1; +2a02:26f7:cf0c:d400::/54 1; +2a02:26f7:cf0c:d800::/53 1; +2a02:26f7:cf0c:e000::/51 1; +2a02:26f7:cf0d::/50 1; +2a02:6ea0:d600::/40 1; +2a02:afc0::/32 1; +2a02:c6c1:7::/48 1; +2a03:f80:852::/48 1; +2a03:2880:f05e::/47 1; +2a03:2880:f060::/46 1; +2a03:2880:f064::/48 1; +2a03:90c0:f0::/44 1; +2a03:90c0:2c0::/44 1; +2a04:2d01::/48 1; +2a04:e4c0:b1::/48 1; +2a05:4140:200::/40 1; +2a05:a300::/29 1; +2a05:a884:10::/48 1; +2a05:a884:de10::/48 1; +2a05:dfc1:1602::/47 1; +2a05:dfc1:1680::/41 1; +2a05:dfc1:1700::/40 1; +2a05:dfc1:1800::/37 1; +2a05:dfc1:2000::/35 1; +2a05:f440:14::/48 1; +2a06:1281:4000::/34 1; +2a06:5040::/46 1; +2a06:5040:4::/48 1; +2a06:5040:7::/48 1; +2a06:5040:a::/47 1; +2a06:5040:c::/46 1; +2a06:5040:15::/48 1; +2a06:5040:16::/47 1; +2a06:5040:18::/45 1; +2a06:5040:20::/44 1; +2a06:5040:38::/45 1; +2a06:5040:40::/42 1; +2a06:5040:80::/41 1; +2a06:5040:100::/40 1; +2a06:5040:200::/39 1; +2a06:5040:400::/38 1; +2a06:5040:800::/37 1; +2a06:5040:1000::/36 1; +2a06:5040:2000::/35 1; +2a06:5040:4000::/34 1; +2a06:5040:8000::/33 1; +2a06:5041::/32 1; +2a06:5042::/31 1; +2a06:5044::/30 1; +2a06:9540::/29 1; +2a06:a000:1e5::/48 1; +2a06:a005:280::/44 1; +2a06:a005:510::/44 1; +2a06:a005:520::/43 1; +2a06:a005:540::/43 1; +2a06:a005:560::/44 1; +2a06:a005:b69::/48 1; +2a06:a005:e60::/43 1; +2a06:a005:e80::/44 1; +2a06:a005:10a0::/44 1; +2a06:a005:1700::/44 1; +2a06:a005:1e70::/44 1; +2a06:da40::/29 1; +2a06:e881:4800::/44 1; +2a07:1980:f::/48 1; +2a07:1980:10::/44 1; +2a07:1980:20::/48 1; +2a07:8144::/36 1; +2a07:aec0::/29 1; +2a07:d883:400::/40 1; +2a07:f605::/32 1; +2a07:f606::/31 1; +2a09:6:8::/48 1; +2a09:4c0:6900::/40 1; +2a09:42c0::/29 1; +2a09:4f80::/29 1; +2a09:6cc0::/29 1; +2a09:7c45::/32 1; +2a09:8280:58::/48 1; +2a09:b280:ff81::/48 1; +2a09:bac0:23::/48 1; +2a09:bac0:134::/48 1; +2a09:bac0:581::/48 1; +2a09:bac0:582::/47 1; +2a09:bac0:1000:7::/64 1; +2a09:bac0:1000:8::/64 1; +2a09:bac0:1000:a::/64 1; +2a09:bac0:1000:101::/64 1; +2a09:bac0:1000:10a::/63 1; +2a09:bac0:1000:152::/63 1; +2a09:bac0:1000:162::/64 1; +2a09:bac0:1000:164::/64 1; +2a09:bac0:1000:18b::/64 1; +2a09:bac0:1000:1bf::/64 1; +2a09:bac0:1000:1dc::/64 1; +2a09:bac0:1000:1e3::/64 1; +2a09:bac0:1000:20b::/64 1; +2a09:bac0:1000:2cc::/64 1; +2a09:bac0:1000:312::/64 1; +2a09:bac0:1000:344::/64 1; +2a09:bac0:1000:366::/64 1; +2a09:bac0:1000:387::/64 1; +2a09:bac0:1000:389::/64 1; +2a09:bac0:1000:3bc::/64 1; +2a09:bac0:1000:3cb::/64 1; +2a09:bac0:1000:44f::/64 1; +2a09:bac0:1000:494::/64 1; +2a09:bac0:1000:49a::/64 1; +2a09:bac0:1000:4bb::/64 1; +2a09:bac0:1000:4c7::/64 1; +2a09:bac0:1000:4d7::/64 1; +2a09:bac0:1000:4fe::/64 1; +2a09:bac0:1000:5b8::/64 1; +2a09:bac0:1000:60d::/64 1; +2a09:bac0:1000:619::/64 1; +2a09:bac0:1000:63d::/64 1; +2a09:bac0:1000:65a::/64 1; +2a09:bac0:1000:68f::/64 1; +2a09:bac0:1000:6b4::/64 1; +2a09:bac0:1000:6be::/64 1; +2a09:bac0:1000:6d5::/64 1; +2a09:bac0:1000:6ea::/64 1; +2a09:bac0:1000:6fe::/64 1; +2a09:bac0:1000:707::/64 1; +2a09:bac0:1000:744::/64 1; +2a09:bac0:1000:75f::/64 1; +2a09:bac0:1000:7e5::/64 1; +2a09:bac0:1000:820::/64 1; +2a09:bac0:1000:839::/64 1; +2a09:bac0:1000:8a2::/64 1; +2a09:bac0:1000:8ee::/64 1; +2a09:bac0:1000:9b0::/64 1; +2a09:bac0:1000:9dd::/64 1; +2a09:bac0:1000:9e3::/64 1; +2a09:bac0:1000:a1c::/64 1; +2a09:bac0:1000:a65::/64 1; +2a09:bac0:1000:acd::/64 1; +2a09:bac0:1000:ad0::/64 1; +2a09:bac0:1000:b2a::/64 1; +2a09:bac0:1000:bcd::/64 1; +2a09:bac0:1000:c42::/64 1; +2a09:bac0:1000:cda::/63 1; +2a09:bac0:1000:ceb::/64 1; +2a09:bac0:1000:d08::/64 1; +2a09:bac0:1000:d53::/64 1; +2a09:bac0:1000:de9::/64 1; +2a09:bac0:1000:10e9::/64 1; +2a09:bac0:1000:130e::/64 1; +2a09:bac0:1000:1312::/64 1; +2a09:bac0:1000:1499::/64 1; +2a09:bac0:1000:149a::/64 1; +2a09:bac0:1000:14a1::/64 1; +2a09:bac0:1000:1531::/64 1; +2a09:bac0:1000:1545::/64 1; +2a09:bac0:1000:1559::/64 1; +2a09:bac0:1000:1592::/64 1; +2a09:bac0:1000:15c5::/64 1; +2a09:bac0:1000:175d::/64 1; +2a09:bac0:1000:1761::/64 1; +2a09:bac0:1000:176d::/64 1; +2a09:bac0:1000:200a::/64 1; +2a09:bac0:1001:51::/64 1; +2a09:bac0:1001:e7::/64 1; +2a09:bac0:1001:e8::/64 1; +2a09:bac0:1001:f6::/64 1; +2a09:bac0:1001:140::/64 1; +2a09:bac0:1001:27c::/64 1; +2a09:bac0:1001:2aa::/64 1; +2a09:bac0:1001:332::/64 1; +2a09:bac0:1001:33b::/64 1; +2a09:bac0:1001:450::/64 1; +2a09:bac0:1001:453::/64 1; +2a09:bac0:1001:49f::/64 1; +2a09:bac0:1001:4ee::/64 1; +2a09:bac0:1001:547::/64 1; +2a09:bac0:1001:559::/64 1; +2a09:bac0:1001:5e7::/64 1; +2a09:bac0:1001:5f1::/64 1; +2a09:bac0:1001:688::/64 1; +2a09:bac0:1001:68a::/64 1; +2a09:bac1:3180::/64 1; +2a09:bac1:3180:8::/64 1; +2a09:bac1:31a0::/64 1; +2a09:bac1:31a0:8::/64 1; +2a09:bac1:31c0::/64 1; +2a09:bac1:31c0:8::/64 1; +2a09:bac1:31e0::/64 1; +2a09:bac1:31e0:8::/64 1; +2a09:bac2:3910::/44 1; +2a09:bac3:3910::/44 1; +2a09:bac4:2f0::/44 1; +2a09:bac4:12f0::/44 1; +2a09:bac5:3980::/44 1; +2a09:bac6:3980::/44 1; +2a09:bac6:d818::/45 1; +2a09:c140:beef::/48 1; +2a0a:2844:f0f0::/46 1; +2a0a:6040:e03::/48 1; +2a0a:6040:2100::/40 1; +2a0a:6040:3430::/44 1; +2a0a:6040:3440::/48 1; +2a0a:6040:34ff::/48 1; +2a0a:6040:a720::/48 1; +2a0a:6040:c780::/43 1; +2a0a:6040:d0fe::/48 1; +2a0a:6040:d320::/48 1; +2a0a:6040:d700::/44 1; +2a0a:6040:e400::/40 1; +2a0a:6040:e542::/48 1; +2a0a:6040:ea01::/48 1; +2a0a:6040:ea02::/47 1; +2a0a:6040:ea04::/46 1; +2a0a:6040:ea08::/45 1; +2a0a:6040:ea10::/44 1; +2a0a:6040:ea20::/43 1; +2a0a:6040:ea40::/42 1; +2a0a:6040:ea80::/41 1; +2a0a:8f40:22::/48 1; +2a0a:90c0:10ca::/48 1; +2a0a:a880::/29 1; +2a0a:d207::/32 1; +2a0b:b86:ffe0::/48 1; +2a0b:b87:ffb6::/48 1; +2a0b:1306:b::/48 1; +2a0b:1f00::/29 1; +2a0b:4340:99::/48 1; +2a0b:4340:a0::/47 1; +2a0b:4340:a3::/48 1; +2a0b:4340:d3::/48 1; +2a0b:4340:d4::/48 1; +2a0b:4340:400::/40 1; +2a0b:4340:520::/44 1; +2a0b:4340:560::/43 1; +2a0b:4340:580::/41 1; +2a0b:4340:600::/48 1; +2a0b:4340:1700::/40 1; +2a0b:4340:1800::/38 1; +2a0b:4340:1c00::/40 1; +2a0b:4340:1e00::/39 1; +2a0b:4341:500::/40 1; +2a0b:4342::92/128 1; +2a0b:4342::94/126 1; +2a0b:4342::98/125 1; +2a0b:4342::a0/123 1; +2a0b:4342::c0/122 1; +2a0b:4342::100/124 1; +2a0b:4342::110/126 1; +2a0b:4342::246/127 1; +2a0b:4342::252/127 1; +2a0b:4342::254/128 1; +2a0b:4342:64::32/127 1; +2a0b:4342:64::34/126 1; +2a0b:4342:64::38/125 1; +2a0b:4342:64::40/122 1; +2a0b:4342:64::80/121 1; +2a0b:4342:64::100/120 1; +2a0b:4342:64::200/119 1; +2a0b:4342:64::400/118 1; +2a0b:4342:64::800/117 1; +2a0b:4342:64::1000/116 1; +2a0b:4342:64::2000/115 1; +2a0b:4342:64::4000/114 1; +2a0b:4342:64::8000/113 1; +2a0b:4342:64::1:0/112 1; +2a0b:4342:64::2:0/111 1; +2a0b:4342:64::4:0/110 1; +2a0b:4342:64::8:0/109 1; +2a0b:4342:64::10:0/108 1; +2a0b:4342:64::20:0/107 1; +2a0b:4342:64::40:0/106 1; +2a0b:4342:64::80:0/105 1; +2a0b:4342:64::100:0/104 1; +2a0b:4342:64::200:0/103 1; +2a0b:4342:64::400:0/102 1; +2a0b:4342:64::800:0/101 1; +2a0b:4342:64::1000:0/100 1; +2a0b:4342:64::2000:0/99 1; +2a0b:4342:64::4000:0/98 1; +2a0b:4342:64::8000:0/97 1; +2a0b:4342:64::1:0:0/96 1; +2a0b:4342:64::2:0:0/95 1; +2a0b:4342:64::4:0:0/94 1; +2a0b:4342:64::8:0:0/93 1; +2a0b:4342:64::10:0:0/92 1; +2a0b:4342:64::20:0:0/91 1; +2a0b:4342:64::40:0:0/90 1; +2a0b:4342:64::80:0:0/89 1; +2a0b:4342:64::100:0:0/88 1; +2a0b:4342:64::200:0:0/87 1; +2a0b:4342:64::400:0:0/86 1; +2a0b:4342:64::800:0:0/85 1; +2a0b:4342:64::1000:0:0/84 1; +2a0b:4342:64::2000:0:0/83 1; +2a0b:4342:64::4000:0:0/82 1; +2a0b:4342:64::8000:0:0/81 1; +2a0b:4342:64:0:1::/80 1; +2a0b:4342:64:0:2::/79 1; +2a0b:4342:64:0:4::/78 1; +2a0b:4342:64:0:8::/77 1; +2a0b:4342:64:0:10::/76 1; +2a0b:4342:64:0:20::/75 1; +2a0b:4342:64:0:40::/74 1; +2a0b:4342:64:0:80::/73 1; +2a0b:4342:64:0:100::/72 1; +2a0b:4342:64:0:200::/71 1; +2a0b:4342:64:0:400::/70 1; +2a0b:4342:64:0:800::/69 1; +2a0b:4342:64:0:1000::/68 1; +2a0b:4342:64:0:2000::/67 1; +2a0b:4342:64:0:4000::/66 1; +2a0b:4342:64:0:8000::/65 1; +2a0b:4342:64:1::/64 1; +2a0b:4342:64:2::/63 1; +2a0b:4342:64:4::/62 1; +2a0b:4342:64:8::/61 1; +2a0b:4342:64:10::/60 1; +2a0b:4342:64:20::/59 1; +2a0b:4342:64:40::/58 1; +2a0b:4342:64:80::/57 1; +2a0b:4342:64:100::/56 1; +2a0b:4342:64:200::/55 1; +2a0b:4342:64:400::/54 1; +2a0b:4342:64:800::/53 1; +2a0b:4342:64:1000::/52 1; +2a0b:4342:64:2000::/51 1; +2a0b:4342:64:4000::/50 1; +2a0b:4342:64:8000::/49 1; +2a0b:4342:65::/48 1; +2a0b:4342:66::/47 1; +2a0b:4342:68::/45 1; +2a0b:4342:70::/44 1; +2a0b:4342:80::/41 1; +2a0b:4342:100::/44 1; +2a0b:4342:110::/48 1; +2a0b:65c0::/29 1; +2a0c:9a40:8330::/48 1; +2a0c:9a40:9200::/40 1; +2a0c:9a40:95c4::/48 1; +2a0c:9a40:d000::/36 1; +2a0c:9a40:e000::/35 1; +2a0c:b641:212::/47 1; +2a0c:b641:214::/46 1; +2a0c:b641:218::/45 1; +2a0c:b641:69c::/46 1; +2a0c:b641:740::/44 1; +2a0d:2580:1852::/48 1; +2a0d:2580:a200::/40 1; +2a0d:2581:300::/40 1; +2a0d:2680::/32 1; +2a0d:2682:8000::/34 1; +2a0d:2683:c000::/34 1; +2a0d:a740::/29 1; +2a0d:b140:4000::/34 1; +2a0d:b140:8000::/33 1; +2a0d:b141::/32 1; +2a0d:b142::/31 1; +2a0d:b144::/30 1; +2a0e:800:6666::/48 1; +2a0e:1840::/29 1; +2a0e:1d80:14::/48 1; +2a0e:31c0::/29 1; +2a0e:46c4:2900::/40 1; +2a0e:5940:60::/44 1; +2a0e:8f02:f01e::/48 1; +2a0e:8f02:f03d:1600::/56 1; +2a0e:97c0:220::/44 1; +2a0e:a0c0::/29 1; +2a0e:aa00:120::/44 1; +2a0e:aa07:4000::/39 1; +2a0e:aa07:e00e::/48 1; +2a0e:aa07:e04c::/47 1; +2a0e:aa07:e054::/48 1; +2a0e:aa07:f008::/48 1; +2a0e:aa07:f088::/48 1; +2a0e:aa07:f0d1::/48 1; +2a0e:aa07:f0d5::/48 1; +2a0e:aa07:f0d6::/47 1; +2a0e:aa07:f0d8::/45 1; +2a0e:b107:a0::/45 1; +2a0e:b107:a8::/46 1; +2a0e:b107:ac::/47 1; +2a0e:b107:af::/48 1; +2a0e:b107:1c0::/47 1; +2a0e:b107:1e0::/44 1; +2a0e:b107:272::/48 1; +2a0e:b107:300::/44 1; +2a0e:b107:316::/48 1; +2a0e:b107:5cd::/48 1; +2a0e:b107:918::/45 1; +2a0e:b107:920::/44 1; +2a0e:b107:be0::/44 1; +2a0e:b107:c90::/44 1; +2a0e:b107:dc7::/48 1; +2a0e:b107:df3::/48 1; +2a0e:b107:df6::/47 1; +2a0e:b107:df8::/45 1; +2a0e:b107:e10::/44 1; +2a0e:b107:fa0::/44 1; +2a0e:b107:fe0::/44 1; +2a0e:b107:1020::/44 1; +2a0e:b107:1120::/44 1; +2a0e:b107:1140::/43 1; +2a0e:b107:1164::/48 1; +2a0e:b107:1170::/44 1; +2a0e:b107:1460::/44 1; +2a0e:b107:1490::/44 1; +2a0e:b107:14b0::/44 1; +2a0e:b107:14e0::/44 1; +2a0e:b107:1520::/43 1; +2a0e:b107:16f0::/44 1; +2a0e:b107:1800::/46 1; +2a0e:b107:1804::/47 1; +2a0e:b107:1820::/44 1; +2a0e:b107:1840::/43 1; +2a0e:b107:1860::/44 1; +2a0e:b107:1990::/44 1; +2a0e:b107:19a0::/44 1; +2a0e:b107:1a32:6000::/52 1; +2a0e:b107:1b40::/44 1; +2a0e:b107:1d26::/47 1; +2a0e:b107:1d28::/45 1; +2a0e:b107:1d30::/44 1; +2a0e:b107:1d70::/44 1; +2a0e:b107:1d80::/42 1; +2a0e:b107:21c0::/45 1; +2a0e:c781::/32 1; +2a0e:d781::/32 1; +2a0e:e383:c000::/34 1; +2a0e:f600:5b::/48 1; +2a0e:f600:5c::/47 1; +2a0e:f600:5e::/48 1; +2a0e:f600:60::/48 1; +2a0f:2c0::/29 1; +2a0f:22c0::/29 1; +2a0f:5707:ad02::/48 1; +2a0f:5707:fff6::/48 1; +2a0f:7a80::/29 1; +2a0f:9400:6150::/44 1; +2a0f:9400:6250::/48 1; +2a0f:9400:6255::/48 1; +2a0f:9400:626c::/46 1; +2a0f:9400:6270::/44 1; +2a0f:9400:6280::/42 1; +2a0f:9400:62c0::/45 1; +2a0f:9400:6300::/43 1; +2a0f:9400:6328::/45 1; +2a0f:9400:6330::/44 1; +2a0f:9400:6340::/42 1; +2a0f:9400:6380::/41 1; +2a0f:9400:6400::/40 1; +2a0f:9400:6500::/45 1; +2a0f:9400:6800::/40 1; +2a0f:9400:6903::/48 1; +2a0f:9400:73b0::/44 1; +2a0f:9400:7700::/48 1; +2a0f:9400:7812::/47 1; +2a0f:9400:7826::/47 1; +2a0f:9400:7828::/45 1; +2a0f:9400:7832::/47 1; +2a0f:9400:7834::/46 1; +2a0f:9400:7a00::/44 1; +2a0f:9400:8015::/48 1; +2a0f:9400:8019::/48 1; +2a0f:aec0::/29 1; +2a0f:cf40::/29 1; +2a10:1fc0::/29 1; +2a10:2f00:11e::/48 1; +2a10:2f01:200::/43 1; +2a10:2f01:3c0::/44 1; +2a10:2f01:3d0::/45 1; +2a10:2f01:3d8::/46 1; +2a10:2f01:3dd::/48 1; +2a10:2f01:3de::/47 1; +2a10:bc40::/29 1; +2a10:cc40:180::/48 1; +2a10:cc42:150::/44 1; +2a10:ccc0:c000::/39 1; +2a10:ccc0:c200::/40 1; +2a10:ccc0:ccc0::/46 1; +2a10:ccc0:ccc4::/47 1; +2a10:ccc0:ccca::/47 1; +2a10:ccc0:cccc::/46 1; +2a10:ce40::/32 1; +2a11:840:46::/47 1; +2a11:3843::/32 1; +2a11:3844::/30 1; +2a11:4580::/29 1; +2a11:7783::/32 1; +2a11:7784::/30 1; +2a11:78c3::/32 1; +2a11:78c4::/30 1; +2a11:7e03::/32 1; +2a11:8ec4::/30 1; +2a11:fe03::/32 1; +2a11:fe04::/30 1; +2a12:3fc2:ab41::/48 1; +2a12:3fc2:ab42::/47 1; +2a12:3fc2:ab44::/46 1; +2a12:3fc2:ab48::/45 1; +2a12:3fc3::/32 1; +2a12:5f40::/29 1; +2a12:6c41::/32 1; +2a12:6c42::/31 1; +2a12:6c44::/30 1; +2a12:9780::/29 1; +2a12:a380::/29 1; +2a12:ab80::/29 1; +2a12:e100::/40 1; +2a12:e100:200::/39 1; +2a12:e100:400::/38 1; +2a12:e100:800::/37 1; +2a12:e100:1000::/36 1; +2a12:e100:2000::/35 1; +2a12:e100:4000::/34 1; +2a12:e100:8000::/33 1; +2a12:e101::/32 1; +2a12:e102::/31 1; +2a12:e104::/30 1; +2a12:e4c1::/32 1; +2a12:f8c2:400::/40 1; +2a12:f8c3::/34 1; +2a13:3700::/29 1; +2a13:4a80::/29 1; +2a13:6301::/32 1; +2a13:7c00::/47 1; +2a13:7c00:2::/48 1; +2a13:82c3::/32 1; +2a13:82c4::/33 1; +2a13:82c4:8000::/34 1; +2a13:82c4:c000::/35 1; +2a13:82c4:e000::/36 1; +2a13:82c4:f000::/37 1; +2a13:82c4:f800::/38 1; +2a13:82c4:fc00::/39 1; +2a13:82c4:fe00::/40 1; +2a13:82c5::/32 1; +2a13:82c6::/31 1; +2a13:82c8::/29 1; +2a13:82d0::/28 1; +2a13:82e0::/27 1; +2a13:a5c5:100::/40 1; +2a13:a5c5:200::/39 1; +2a13:a5c5:400::/38 1; +2a13:a5c5:800::/37 1; +2a13:a5c5:1000::/40 1; +2a13:a5c5:1200::/39 1; +2a13:a5c5:1400::/40 1; +2a13:a5c5:1600::/39 1; +2a13:a5c5:1800::/37 1; +2a13:a5c5:2000::/39 1; +2a13:a5c5:2200::/40 1; +2a13:a5c5:2400::/39 1; +2a13:a5c5:2700::/40 1; +2a13:a5c5:2800::/37 1; +2a13:a5c5:3300::/40 1; +2a13:a5c5:3400::/38 1; +2a13:a5c5:3800::/37 1; +2a13:a5c5:4000::/34 1; +2a13:a5c5:8000::/34 1; +2a13:a5c5:c000::/35 1; +2a13:a5c5:e000::/36 1; +2a13:a5c5:f100::/40 1; +2a13:a5c5:f200::/39 1; +2a13:a5c5:f400::/38 1; +2a13:a5c5:f800::/37 1; +2a13:a5c6:1000::/36 1; +2a13:a5c6:6000::/38 1; +2a13:a5c6:6900::/40 1; +2a13:a5c6:6a00::/39 1; +2a13:a5c6:6c00::/38 1; +2a13:aac0::/30 1; +2a13:aac4::/36 1; +2a13:aac5::/32 1; +2a13:aac6::/32 1; +2a13:aac7:4000::/34 1; +2a13:aac7:8000::/33 1; +2a13:b487:1210::/44 1; +2a13:b487:1220::/43 1; +2a13:b487:1240::/42 1; +2a13:b487:1280::/41 1; +2a13:b487:1300::/40 1; +2a13:b487:1400::/38 1; +2a13:b487:1800::/39 1; +2a13:b487:1a00::/40 1; +2a13:b487:1b00::/41 1; +2a13:b487:1b80::/43 1; +2a13:b487:1ba0::/44 1; +2a13:bb87:0:508::/61 1; +2a13:bb87:0:510::/64 1; +2a13:bcc0::/29 1; +2a13:ce40::/34 1; +2a14:980::/26 1; +2a14:1300::/29 1; +2a14:4900::/29 1; +2a14:67c0::/29 1; +2a14:7540::/29 1; +2a14:a000::/29 1; +2a14:cc80::/34 1; diff --git a/minigate/root/usr/lib/minigate/geo/820000.conf b/minigate/root/usr/lib/minigate/geo/820000.conf new file mode 100644 index 000000000..c63560553 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/820000.conf @@ -0,0 +1,157 @@ +# ip2region f8b0792b0cd729f5b2593f690aeed225e49c1967: 澳门特别行政区 +23.67.62.0/24 1; +27.100.21.0/24 1; +27.100.22.0/24 1; +27.109.128.0/17 1; +42.247.5.192/29 1; +42.247.5.200/30 1; +43.247.24.0/22 1; +43.249.215.0/24 1; +45.64.20.0/22 1; +45.123.200.0/22 1; +59.43.181.170/31 1; +59.43.181.172/30 1; +60.246.0.0/16 1; +74.119.64.0/21 1; +96.7.112.0/20 1; +103.5.218.0/23 1; +103.96.60.0/22 1; +103.115.140.0/24 1; +103.115.142.0/23 1; +103.143.92.0/23 1; +103.192.44.0/22 1; +103.233.188.0/22 1; +103.237.124.0/22 1; +103.240.56.0/22 1; +104.28.66.94/31 1; +104.28.66.106/32 1; +104.28.99.61/32 1; +104.28.173.165/32 1; +104.28.173.166/31 1; +104.28.173.168/32 1; +104.28.205.192/30 1; +104.28.237.192/30 1; +104.30.163.56/32 1; +104.77.80.0/24 1; +113.52.64.0/18 1; +115.169.7.0/24 1; +115.169.8.0/22 1; +115.169.12.0/23 1; +116.193.8.0/21 1; +122.100.128.0/17 1; +123.253.200.0/22 1; +125.31.0.0/18 1; +128.90.57.0/24 1; +128.90.75.0/24 1; +128.90.76.0/24 1; +128.90.184.0/21 1; +161.64.0.0/16 1; +172.69.72.0/23 1; +173.223.44.0/22 1; +178.253.32.0/21 1; +178.253.40.0/22 1; +178.253.44.0/23 1; +180.94.128.0/18 1; +182.93.0.0/18 1; +184.29.18.0/23 1; +185.192.56.0/24 1; +185.236.230.0/24 1; +192.203.232.0/24 1; +202.75.248.0/22 1; +202.86.128.0/18 1; +202.171.252.0/22 1; +202.174.0.0/22 1; +202.175.0.0/17 1; +202.175.160.0/19 1; +203.15.236.0/23 1; +203.223.17.0/24 1; +203.223.18.0/23 1; +203.223.20.0/24 1; +205.198.48.0/20 1; +205.215.0.0/19 1; +2001:470:ed9c::/46 1; +2001:470:eda0::/48 1; +2001:470:edab::/48 1; +2001:470:edac::/46 1; +2001:470:edb0::/46 1; +2001:df6:4f00::/48 1; +2001:f90::/32 1; +2001:ff8::/40 1; +2400:cb00:140::/48 1; +2401:20e0::/32 1; +2401:3280:1000::/36 1; +2402:e940:f02::/47 1; +2402:e940:f04::/46 1; +2402:e940:f08::/45 1; +2402:e940:f10::/44 1; +2402:e940:f20::/43 1; +2402:e940:f40::/42 1; +2402:e940:f80::/41 1; +2402:e940:1000::/36 1; +2402:e940:2000::/35 1; +2402:e940:4000::/34 1; +2402:e940:8000::/33 1; +2606:54c0:48a8::/45 1; +2606:54c3:0:ec8::/64 1; +2a02:26f7:c708::/50 1; +2a02:26f7:c708:4001::/64 1; +2a02:26f7:c708:4002::/63 1; +2a02:26f7:c708:4004::/62 1; +2a02:26f7:c708:4008::/61 1; +2a02:26f7:c708:4010::/60 1; +2a02:26f7:c708:4020::/59 1; +2a02:26f7:c708:4040::/58 1; +2a02:26f7:c708:4080::/57 1; +2a02:26f7:c708:4100::/56 1; +2a02:26f7:c708:4200::/55 1; +2a02:26f7:c708:4400::/54 1; +2a02:26f7:c708:4800::/53 1; +2a02:26f7:c708:5000::/52 1; +2a02:26f7:c708:6000::/51 1; +2a02:26f7:c708:8000::/50 1; +2a02:26f7:c708:c000::/54 1; +2a02:26f7:c708:c400::/56 1; +2a02:26f7:c708:c500::/59 1; +2a02:26f7:c708:c521::/64 1; +2a02:26f7:c708:c522::/63 1; +2a02:26f7:c708:c524::/62 1; +2a02:26f7:c708:c528::/61 1; +2a02:26f7:c708:c530::/60 1; +2a02:26f7:c708:c540::/58 1; +2a02:26f7:c708:c580::/57 1; +2a02:26f7:c708:c600::/55 1; +2a02:26f7:c708:c800::/53 1; +2a02:26f7:c708:d000::/52 1; +2a02:26f7:c708:e000::/51 1; +2a02:26f7:c709::/50 1; +2a02:26f7:c709:4001::/64 1; +2a02:26f7:c709:4002::/63 1; +2a02:26f7:c709:4004::/62 1; +2a02:26f7:c709:4008::/61 1; +2a02:26f7:c709:4010::/60 1; +2a02:26f7:c709:4020::/59 1; +2a02:26f7:c709:4040::/58 1; +2a02:26f7:c709:4080::/57 1; +2a02:26f7:c709:4100::/56 1; +2a02:26f7:c709:4200::/55 1; +2a02:26f7:c709:4400::/54 1; +2a02:26f7:c709:4800::/53 1; +2a02:26f7:c709:5000::/52 1; +2a02:26f7:c709:6000::/51 1; +2a02:26f7:c709:8000::/49 1; +2a02:26f7:c70a::/47 1; +2a02:26f7:c70c::/46 1; +2a02:26f7:c710::/44 1; +2a02:26f7:c720::/43 1; +2a02:26f7:c740::/50 1; +2a04:ff00:402::/48 1; +2a09:bac0:1000:809::/64 1; +2a09:bac1:4c00::/64 1; +2a09:bac1:4c20::/64 1; +2a09:bac1:4c40::/64 1; +2a09:bac1:4c60::/64 1; +2a09:bac2:48a8::/45 1; +2a09:bac3:48a8::/45 1; +2a09:bac5:4958::/45 1; +2a09:bac6:4958::/45 1; +2a0e:b107:12e0::/44 1; diff --git a/minigate/root/usr/lib/minigate/geo/LICENSE.ip2region b/minigate/root/usr/lib/minigate/geo/LICENSE.ip2region new file mode 100644 index 000000000..82c227432 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/LICENSE.ip2region @@ -0,0 +1,233 @@ +ip2region is dual-licensed under the Apache License 2.0 and the MIT License. + +You may use, distribute, and modify this software under either license, +at your option. The full text of both licenses appears below. + +SPDX-License-Identifier: Apache-2.0 OR MIT + +============================================================================== + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +========================================================================== +The following license applies to the ip2region library +-------------------------------------------------------------------------- +Copyright (c) 2015 Lionsoul + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/minigate/root/usr/lib/minigate/geo/metadata.json b/minigate/root/usr/lib/minigate/geo/metadata.json new file mode 100644 index 000000000..f777f39a5 --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/metadata.json @@ -0,0 +1,146 @@ +{ + "source": "https://github.com/lionsoul2014/ip2region", + "revision": "f8b0792b0cd729f5b2593f690aeed225e49c1967", + "source_sha256": { + "ipv4_source.txt": "b845e5682b4d27a6733e811639f2db7f79912c30a351abd4e646fbfedaf58d1a", + "ipv6_source.txt": "4d9df9b89141f069845ae8ce3f375534323a7c068e0d88138eae06244d7192d2" + }, + "networks": { + "110000": { + "4": 5685, + "6": 5157 + }, + "120000": { + "4": 567, + "6": 91 + }, + "130000": { + "4": 517, + "6": 191 + }, + "140000": { + "4": 309, + "6": 87 + }, + "150000": { + "4": 357, + "6": 4 + }, + "210000": { + "4": 714, + "6": 145 + }, + "220000": { + "4": 316, + "6": 60 + }, + "230000": { + "4": 303, + "6": 106 + }, + "310000": { + "4": 2258, + "6": 363 + }, + "320000": { + "4": 1310, + "6": 239 + }, + "330000": { + "4": 1114, + "6": 395 + }, + "340000": { + "4": 442, + "6": 117 + }, + "350000": { + "4": 1584, + "6": 127 + }, + "360000": { + "4": 418, + "6": 119 + }, + "370000": { + "4": 815, + "6": 258 + }, + "410000": { + "4": 660, + "6": 261 + }, + "420000": { + "4": 786, + "6": 135 + }, + "430000": { + "4": 488, + "6": 136 + }, + "440000": { + "4": 2915, + "6": 1584 + }, + "450000": { + "4": 353, + "6": 66 + }, + "460000": { + "4": 145, + "6": 91 + }, + "500000": { + "4": 405, + "6": 62 + }, + "510000": { + "4": 761, + "6": 128 + }, + "520000": { + "4": 316, + "6": 73 + }, + "530000": { + "4": 322, + "6": 66 + }, + "540000": { + "4": 116, + "6": 11 + }, + "610000": { + "4": 761, + "6": 106 + }, + "620000": { + "4": 245, + "6": 61 + }, + "630000": { + "4": 116, + "6": 13 + }, + "640000": { + "4": 168, + "6": 13 + }, + "650000": { + "4": 289, + "6": 35 + }, + "710000": { + "4": 2183, + "6": 1388 + }, + "810000": { + "4": 7251, + "6": 2659 + }, + "820000": { + "4": 70, + "6": 86 + } + } +} diff --git a/minigate/root/usr/lib/minigate/geo/regions.txt b/minigate/root/usr/lib/minigate/geo/regions.txt new file mode 100644 index 000000000..724f0a8fc --- /dev/null +++ b/minigate/root/usr/lib/minigate/geo/regions.txt @@ -0,0 +1,34 @@ +110000 北京市 +120000 天津市 +130000 河北省 +140000 山西省 +150000 内蒙古 +210000 辽宁省 +220000 吉林省 +230000 黑龙江省 +310000 上海市 +320000 江苏省 +330000 浙江省 +340000 安徽省 +350000 福建省 +360000 江西省 +370000 山东省 +410000 河南省 +420000 湖北省 +430000 湖南省 +440000 广东省 +450000 广西 +460000 海南省 +500000 重庆市 +510000 四川省 +520000 贵州省 +530000 云南省 +540000 西藏 +610000 陕西省 +620000 甘肃省 +630000 青海省 +640000 宁夏 +650000 新疆 +710000 台湾省 +810000 香港特别行政区 +820000 澳门特别行政区 diff --git a/minigate/root/usr/lib/minigate/geofence.sh b/minigate/root/usr/lib/minigate/geofence.sh index f30db236f..939914aa8 100644 --- a/minigate/root/usr/lib/minigate/geofence.sh +++ b/minigate/root/usr/lib/minigate/geofence.sh @@ -119,6 +119,8 @@ extract_public_ips() { # 主逻辑:扫描 access log 中的新 IP scan_and_block() { + # 请求前准入已覆盖公网反代,避免旧扫描器再把来源全局封禁到其他服务。 + [ "$(uci -q get minigate.global.access_enabled)" = "1" ] && return 0 local enabled=$(uci -q get minigate.global.geo_enabled) [ "$enabled" != "1" ] && return 0 diff --git a/minigate/root/usr/lib/minigate/proxy.sh b/minigate/root/usr/lib/minigate/proxy.sh index 1938cba09..20224b6b6 100644 --- a/minigate/root/usr/lib/minigate/proxy.sh +++ b/minigate/root/usr/lib/minigate/proxy.sh @@ -13,6 +13,8 @@ STREAM_MODULE="${MINIGATE_STREAM_MODULE:-/usr/lib/nginx/modules/ngx_stream_modul ACCESS_LOG_MAX="${MINIGATE_ACCESS_LOG_MAX:-1048576}" # OpenWrt 的 dnsmasq 以 addn-hosts=/tmp/hosts 读取整个目录,收到 SIGHUP 时重新加载 LAN_HOSTS_FILE="${MINIGATE_LAN_HOSTS_FILE:-/tmp/hosts/minigate}" +GEO_DIR="${MINIGATE_GEO_DIR:-/usr/lib/minigate/geo}" +MIME_TYPES="${MINIGATE_MIME_TYPES:-/etc/nginx/mime.types}" log() { echo "$(date '+%Y-%m-%d %H:%M:%S') [PROXY] $*" >> "$LOGFILE"; } @@ -46,7 +48,9 @@ EOF fi cat >> "$NGINX_CONF" <<'EOF' http { - include /etc/nginx/mime.types; +EOF + echo " include ${MIME_TYPES};" >> "$NGINX_CONF" + cat >> "$NGINX_CONF" <<'EOF' default_type application/octet-stream; server_names_hash_bucket_size 64; sendfile on; keepalive_timeout 65; client_max_body_size 100m; @@ -69,6 +73,7 @@ http { '"referer":"$http_referer",' '"ua":"$http_user_agent"}'; EOF + write_geo_access >> "$NGINX_CONF" echo " access_log ${ACCESS_LOG} minigate_json;" >> "$NGINX_CONF" echo " include ${SITES_DIR}/*.conf;" >> "$NGINX_CONF" cat >> "$NGINX_CONF" <<'EOF' @@ -107,6 +112,59 @@ get_http_redirect() { echo "${enabled:-0}" } +# 同端口分流已由本机 stream 写入 PROXY protocol;不读取访客传来的转发头。 +write_geo_access() { + [ "$(uci -q get minigate.global.access_enabled)" = "1" ] || return 0 + cat <<'EOF' + geo $minigate_client_addr $minigate_geo_allowed { + default 0; + 127.0.0.1/32 1; + 10.0.0.0/8 1; + 172.16.0.0/12 1; + 192.168.0.0/16 1; + ::1/128 1; + fc00::/7 1; + fe80::/10 1; +EOF + write_lan_ipv6_access + local region + for region in $(uci -q get minigate.global.access_regions | tr ' ' '\n' | sort -u); do + # 仅接受随包提供的省级代码,防止 UCI 值进入路径或 Nginx 指令。 + case "$region" in + [0-9][0-9]0000) ;; + *) log "访问范围:忽略无效地区代码"; continue ;; + esac + if [ -f "$GEO_DIR/$region.conf" ] && grep -q "^${region} " "$GEO_DIR/regions.txt"; then + echo " include ${GEO_DIR}/${region}.conf;" + else + log "访问范围:地区 ${region} 数据缺失,该地区公网请求将被拒绝" + fi + done + echo " }" +} + +write_lan_ipv6_access() { + local status address mask i=0 + status=$(ubus call network.interface.lan status 2>/dev/null) + [ -n "$status" ] || return 0 + # LAN 获得的全球 IPv6 前缀也属于内网;只接受 LAN 接口实际分配的子网。 + while [ "$i" -lt 32 ]; do + address=$(printf '%s' "$status" | jsonfilter -e "@[\"ipv6-prefix-assignment\"][${i}].address" 2>/dev/null) + mask=$(printf '%s' "$status" | jsonfilter -e "@[\"ipv6-prefix-assignment\"][${i}].mask" 2>/dev/null) + [ -n "$address" ] || break + i=$((i + 1)) + case "$address" in *[!0-9a-fA-F:]*|[!23]*) continue ;; esac + case "$mask" in ''|*[!0-9]*) continue ;; esac + [ "$mask" -ge 48 ] && [ "$mask" -le 128 ] || continue + echo " ${address}/${mask} 1;" + done +} + +write_geo_guard() { + [ "$(uci -q get minigate.global.access_enabled)" = "1" ] || return 0 + echo ' if ($minigate_geo_allowed = 0) { return 444; }' >> "$1" +} + ensure_default_cert() { mkdir -p "$DEFAULT_CERT_DIR" [ -f "${DEFAULT_CERT_DIR}/fullchain.pem" ] && [ -f "${DEFAULT_CERT_DIR}/key.pem" ] && return 0 @@ -185,6 +243,9 @@ write_redirect_server() { server { listen unix:${SOCKET_DIR}/http_${lport}.sock proxy_protocol; server_name ${domain}; +SEOF + write_geo_guard "$conf" + cat >> "$conf" <> "$conf" < new Promise(resolve => setTimeout(resolve, ms)); + +function request(socketPath, source, { spoof = false, websocket = false } = {}) { + return new Promise((resolve, reject) => { + let response = ''; + const socket = net.connect(socketPath, () => { + const v6 = source.includes(':'); + socket.write(`PROXY ${v6 ? 'TCP6' : 'TCP4'} ${source} ${v6 ? '::1' : '127.0.0.1'} 12345 2000\r\n` + + 'GET / HTTP/1.1\r\nHost: app.example.com\r\n' + + (spoof ? 'X-Forwarded-For: 14.196.0.1\r\nX-Real-IP: 14.196.0.1\r\n' : '') + + (websocket ? 'Connection: Upgrade\r\nUpgrade: websocket\r\n' : 'Connection: close\r\n') + '\r\n'); + }); + socket.setTimeout(3000, () => socket.destroy(new Error('请求超时'))); + socket.on('data', chunk => { response += chunk; }); + socket.on('error', error => error.code === 'ECONNRESET' ? resolve(response) : reject(error)); + socket.on('close', () => resolve(response)); + }); +} + +async function running(t, options = {}) { + let reached = 0; + const backend = http.createServer((req, res) => { reached++; res.end('backend-reached'); }); + backend.on('upgrade', (req, socket) => { reached++; socket.end('HTTP/1.1 101 Switching Protocols\r\nConnection: Upgrade\r\nUpgrade: websocket\r\n\r\n'); }); + await new Promise(resolve => backend.listen(0, '127.0.0.1', resolve)); + t.after(() => new Promise(resolve => backend.close(resolve))); + const port = backend.address().port; + const fixture = config(` + write_server "$SITES_DIR/site.conf" app.example.com 2000 127.0.0.1 ${port} 0 0 1 old 0 0 + write_redirect_server "$SITES_DIR/redirect.conf" app.example.com 2000 + generate_main_conf + `, options); + assert.equal(fixture.status, 0, fixture.stderr); + const site = path.join(fixture.dir, 'sites/site.conf'); + const socketPath = path.join(fixture.dir, 'proxy.sock'); + fs.writeFileSync(site, fs.readFileSync(site, 'utf8').replace('listen 2000;', `listen unix:${socketPath} proxy_protocol;`)); + const main = path.join(fixture.dir, 'main.conf'); + fs.mkdirSync(path.join(fixture.dir, 'logs')); + const tempPaths = ['client_body', 'proxy', 'fastcgi', 'uwsgi', 'scgi'] + .map(name => ` ${name}_temp_path ${fixture.dir}/${name}-temp;`).join('\n'); + fs.writeFileSync(main, fs.readFileSync(main, 'utf8').replace('http {', `http {\n${tempPaths}`)); + const check = spawnSync(nginx, ['-t', '-c', main, '-p', fixture.dir], { encoding: 'utf8' }); + assert.equal(check.status, 0, check.stderr); + const child = spawn(nginx, ['-c', main, '-p', fixture.dir, '-g', 'daemon off;'], { stdio: 'ignore' }); + t.after(async () => { + if (child.exitCode === null) { + child.kill('SIGQUIT'); + await new Promise(resolve => child.once('exit', resolve)); + } + }); + for (let i = 0; i < 50 && !fs.existsSync(socketPath); i++) await pause(50); + assert.ok(fs.existsSync(socketPath), fs.existsSync(path.join(fixture.dir, 'error.log')) ? fs.readFileSync(path.join(fixture.dir, 'error.log'), 'utf8') : 'Nginx 未启动'); + return { ...fixture, socketPath, redirectPath: path.join(fixture.dir, 'http_2000.sock'), reached: () => reached }; +} + +test('real nginx enforces source policy before upstream, redirect and websocket', { skip: !nginx }, async t => { + const fixture = await running(t); + for (const ip of ['14.196.0.1', '::ffff:14.196.0.1', '2001:250:2000::1', '192.168.2.15', '10.0.0.2', 'fd00::15', 'fe80::15']) { + const response = await request(fixture.socketPath, ip); + assert.match(response, /200 OK/, ip); + assert.match(response, /backend-reached/, ip); + } + const reached = fixture.reached(); + for (const ip of ['8.8.8.8', '::ffff:8.8.8.8', '1.0.1.1', '203.0.113.10', '2001:4860:4860::8888', '2001:db8::1']) { + assert.equal(await request(fixture.socketPath, ip, { spoof: true }), '', ip); + assert.equal(await request(fixture.redirectPath, ip), '', `redirect ${ip}`); + assert.equal(await request(fixture.socketPath, ip, { websocket: true }), '', `websocket ${ip}`); + } + assert.equal(fixture.reached(), reached, '拒绝的请求不得到达后端'); + assert.match(await request(fixture.redirectPath, '14.196.0.1'), /308 Permanent Redirect/); + assert.match(await request(fixture.socketPath, '14.196.0.1', { websocket: true }), /101 Switching Protocols/); +}); + +test('real nginx permits all sources when disabled and fails closed if selected data is missing', { skip: !nginx }, async t => { + const open = await running(t, { enabled: '0' }); + assert.match(await request(open.socketPath, '8.8.8.8'), /200 OK/); + const missing = await running(t, { directory: '/missing-minigate-geo-data' }); + assert.equal(await request(missing.socketPath, '14.196.0.1'), ''); + assert.match(await request(missing.socketPath, '192.168.2.15'), /200 OK/); +}); + + +test('real nginx accepts all bundled province includes together', { skip: !nginx }, async t => { + const regions = fs.readFileSync(path.join(geoDir, 'regions.txt'), 'utf8').trim().split('\n').map(row => row.split(' ')[0]).join(' '); + const fixture = await running(t, { regions }); + assert.match(await request(fixture.socketPath, '1.0.1.1'), /200 OK/); + assert.equal(await request(fixture.socketPath, '8.8.8.8'), ''); +}); diff --git a/minigate/tests/access-ui.test.cjs b/minigate/tests/access-ui.test.cjs new file mode 100644 index 000000000..2b2bfcaae --- /dev/null +++ b/minigate/tests/access-ui.test.cjs @@ -0,0 +1,53 @@ +const { test } = require('node:test'); +const assert = require('node:assert/strict'); +const { spawnSync } = require('node:child_process'); +const { root, geoDir } = require('./helpers/access-fixture.cjs'); +const path = require('node:path'); + +const lua = process.env.MINIGATE_TEST_LUA; + +test('LuCI access settings offer all provinces, default off, validate multiple choices and reject invalid values', { skip: !lua }, () => { + const result = spawnSync(lua, ['-'], { encoding: 'utf8', input: ` + local options = {} + package.preload['luci.sys'] = function() return {} end + package.preload['luci.model.uci'] = function() + return {cursor=function() return {foreach=function() end, get=function() end} end} + end + Flag, Value, DynamicList, ListValue, DummyValue = 'Flag', 'Value', 'DynamicList', 'ListValue', 'DummyValue' + NamedSection, TypedSection = 'NamedSection', 'TypedSection' + function Map() + return {section=function() + return {option=function(self, kind, name) + local option = {kind=kind, choices={}} + function option:value(key, label) self.choices[key] = label end + function option:depends(key, value) self.dependency={key,value} end + options[name] = option + return option + end} + end} + end + local real_open = io.open + io.open = function(file, mode) + if file == '/usr/lib/minigate/geo/regions.txt' then file = ${JSON.stringify(path.join(geoDir, 'regions.txt'))} end + return real_open(file, mode) + end + assert(dofile(${JSON.stringify(path.join(root, 'luasrc/model/cbi/minigate/proxy.lua'))})) + assert(options.access_enabled.default == '0') + local regions = options.access_regions + assert(regions.kind == 'DynamicList') + assert(regions.default == '510000') + assert(regions.dependency[1] == 'access_enabled' and regions.dependency[2] == '1') + assert(regions.choices['510000'] == '四川省') + local count = 0; for _ in pairs(regions.choices) do count = count + 1 end + assert(count == 34) + assert(regions:validate({'510000', '500000'}, 'global')) + assert(regions:validate('510000', 'global')) + assert(not regions:validate({}, 'global')) + assert(not regions:validate({''}, 'global')) + assert(not regions:validate({'990000'}, 'global')) + assert(not regions:validate({'510000', '../500000'}, 'global')) + print('LuCI access validation passed') + ` }); + assert.equal(result.status, 0, result.stderr); + assert.match(result.stdout, /validation passed/); +}); diff --git a/minigate/tests/access.test.cjs b/minigate/tests/access.test.cjs new file mode 100644 index 000000000..cd139d633 --- /dev/null +++ b/minigate/tests/access.test.cjs @@ -0,0 +1,114 @@ +const { test } = require('node:test'); +const assert = require('node:assert/strict'); +const fs = require('node:fs'); +const path = require('node:path'); +const { spawnSync } = require('node:child_process'); + +const { config, geoDir, root } = require('./helpers/access-fixture.cjs'); + +test('disabled or absent access option preserves unrestricted generated sites', () => { + for (const enabled of ['', '0']) { + const result = config('write_geo_access; write_server "$conf" app.example.com 2000 127.0.0.1 80 0 0 1 old 1 0', { enabled }); + assert.equal(result.status, 0, result.stderr); + assert.equal(result.stdout, ''); + assert.doesNotMatch(result.conf, /minigate_geo_allowed/); + assert.match(result.conf, /proxy_pass http:\/\/127.0.0.1:80/); + } +}); + +test('province policy defaults to deny, uses connection IP and preserves private LAN', () => { + const result = config('write_geo_access'); + assert.equal(result.status, 0, result.stderr); + assert.match(result.stdout, /geo \$minigate_client_addr \$minigate_geo_allowed/); + assert.match(result.stdout, /default 0;/); + assert.match(result.stdout, /192\.168\.0\.0\/16 1;/); + assert.match(result.stdout, /fc00::\/7 1;/); + assert.match(result.stdout, /fe80::\/10 1;/); + assert.match(result.stdout, /510000\.conf;/); + assert.doesNotMatch(result.stdout, /http_x_|100\.64|0\.0\.0\.0\/0/); +}); + +test('multiple selected provinces are included once and other provinces stay absent', () => { + const result = config('write_geo_access', { regions: '510000 500000 510000' }); + assert.equal(result.status, 0, result.stderr); + assert.equal((result.stdout.match(/510000\.conf/g) || []).length, 1); + assert.match(result.stdout, /500000\.conf/); + assert.doesNotMatch(result.stdout, /440000\.conf/); +}); + +test('empty, invalid or missing region data never falls back to public access', () => { + for (const options of [ + { regions: '' }, { regions: '../510000; return 200;' }, { regions: '990000' }, + { directory: '/missing-minigate-geo-data' } + ]) { + const result = config('write_geo_access', options); + assert.equal(result.status, 0, result.stderr); + assert.match(result.stdout, /default 0;/); + assert.doesNotMatch(result.stdout, /include .*\.conf|return 200/); + } +}); + +test('both ordinary and multiplexed proxy sites reject before proxy_pass and websocket upgrade', () => { + for (const mux of [0, 1]) { + const result = config(`write_server "$conf" app.example.com 2000 127.0.0.1 80 0 0 1 old 1 ${mux}`); + assert.equal(result.status, 0, result.stderr); + assert.match(result.conf, /if \(\$minigate_geo_allowed = 0\) \{ return 444; \}/); + assert.ok(result.conf.indexOf('return 444;') < result.conf.indexOf('proxy_pass')); + assert.match(result.conf, /proxy_set_header Upgrade/); + } +}); + +test('HTTP redirect rejects unapproved source before sending a redirect', () => { + const result = config('write_redirect_server "$conf" app.example.com 2000'); + assert.equal(result.status, 0, result.stderr); + assert.ok(result.conf.indexOf('return 444;') < result.conf.indexOf('return 308')); +}); + +test('the legacy scanner cannot add global firewall bans in request access mode', () => { + const scanner = path.join(root, 'root/usr/lib/minigate/geofence.sh'); + const result = spawnSync('/bin/sh', ['-c', ` + export MINIGATE_GEOFENCE_LIBRARY_ONLY=1 + . '${scanner}' + uci() { [ "$3" = minigate.global.access_enabled ] && echo 1; } + init_block_set() { echo unexpected >&2; return 1; } + scan_and_block + `], { encoding: 'utf8' }); + assert.equal(result.status, 0, result.stderr); + assert.equal(result.stderr, ''); +}); + +test('bundled regions all cover IPv4 and IPv6 and data follows every install path', () => { + const metadata = JSON.parse(fs.readFileSync(path.join(geoDir, 'metadata.json'))); + const regions = fs.readFileSync(path.join(geoDir, 'regions.txt'), 'utf8').trim().split('\n'); + assert.equal(regions.length, 34); + for (const row of regions) { + const code = row.split(' ')[0]; + const data = fs.readFileSync(path.join(geoDir, `${code}.conf`), 'utf8'); + assert.match(data, /^\d+\.\d+\.\d+\.\d+\/\d+ 1;$/m, code); + assert.match(data, /^[a-f0-9:]+\/\d+ 1;$/m, code); + assert.equal(data.trim().split('\n').length - 1, metadata.networks[code]['4'] + metadata.networks[code]['6']); + } + for (const file of ['Makefile', 'install.sh', 'scripts/build-ipk.sh']) { + assert.match(fs.readFileSync(path.join(root, file), 'utf8'), /root\/usr\/lib\/minigate\/geo/, file); + } + assert.match(fs.readFileSync(path.join(geoDir, 'LICENSE.ip2region'), 'utf8'), /Copyright.*Lionsoul/); +}); + + +test('assigned LAN global IPv6 subnet is exempted without allowing a broad remote prefix', () => { + const run = mask => config(` + ubus() { echo fixture; } + jsonfilter() { + case "$2" in + *'[0].address') echo 2001:db8:1234:: ;; + *'[0].mask') echo ${mask} ;; + esac + } + write_geo_access + `); + const assigned = run('64'); + assert.equal(assigned.status, 0, assigned.stderr); + assert.match(assigned.stdout, /2001:db8:1234::\/64 1;/); + assert.doesNotMatch(run('0').stdout, /2001:db8:1234/); + assert.doesNotMatch(run('32').stdout, /2001:db8:1234/); +}); diff --git a/minigate/tests/helpers/access-fixture.cjs b/minigate/tests/helpers/access-fixture.cjs new file mode 100644 index 000000000..35cac3d99 --- /dev/null +++ b/minigate/tests/helpers/access-fixture.cjs @@ -0,0 +1,44 @@ +const fs = require('node:fs'); +const os = require('node:os'); +const path = require('node:path'); +const { spawnSync } = require('node:child_process'); + +const root = path.resolve(__dirname, '../..'); +const script = path.join(root, 'root/usr/lib/minigate/proxy.sh'); +const geoDir = path.join(root, 'root/usr/lib/minigate/geo'); + +function config(body, { enabled = '1', regions = '510000', directory = geoDir } = {}) { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'mg-access-')); + const file = path.join(dir, 'site.conf'); + fs.writeFileSync(file, ''); + fs.mkdirSync(path.join(dir, 'sites')); + fs.mkdirSync(path.join(dir, 'streams')); + fs.writeFileSync(path.join(dir, 'mime.types'), ''); + const quote = s => `'${s.replaceAll("'", "'\\''")}'`; + const command = ` + export MINIGATE_PROXY_LIBRARY_ONLY=1 + export MINIGATE_NGINX_CONF=${quote(path.join(dir, 'main.conf'))} + export MINIGATE_SITES_DIR=${quote(path.join(dir, 'sites'))} + export MINIGATE_STREAMS_DIR=${quote(path.join(dir, 'streams'))} + export MINIGATE_MIME_TYPES=${quote(path.join(dir, 'mime.types'))} + export MINIGATE_PID_FILE=${quote(path.join(dir, 'nginx.pid'))} + export MINIGATE_NGINX_ERROR_LOG=${quote(path.join(dir, 'error.log'))} + export MINIGATE_ACCESS_LOG=${quote(path.join(dir, 'access.log'))} + export MINIGATE_GEO_DIR=${quote(directory)} + export MINIGATE_LOGFILE=${quote(path.join(dir, 'proxy.log'))} + export MINIGATE_SOCKET_DIR=${quote(dir)} + . ${quote(script)} + uci() { + case "$3" in + minigate.global.access_enabled) printf '%s\\n' ${quote(enabled)} ;; + minigate.global.access_regions) printf '%s\\n' ${quote(regions)} ;; + esac + } + conf=${quote(file)} + ${body} + `; + const result = spawnSync('/bin/sh', ['-c', command], { encoding: 'utf8' }); + return { ...result, conf: fs.readFileSync(file, 'utf8'), dir }; +} + +module.exports = { config, geoDir, root }; diff --git a/mise/Makefile b/mise/Makefile index cae84d0c9..7b3fce9d0 100644 --- a/mise/Makefile +++ b/mise/Makefile @@ -14,8 +14,8 @@ MISE_HASH_x86_64:=3832f39c325e343f81fe3d92b2447c5d1a5eea1bc85092bb7b6c2580622264 MISE_HASH_aarch64:=06186cfbfe947049b21d58575fb0ea800cc26ed1375f20f4b678cb3a9d679437 PKG_NAME:=mise -PKG_VERSION:=2026.10.18 -PKG_RELEASE:=41 +PKG_VERSION:=2026.10.19 +PKG_RELEASE:=42 PKG_SOURCE:=$(PKG_NAME)-v$(PKG_VERSION)-linux-$(MISE_ARCH)-musl.tar.gz PKG_SOURCE_URL:=https://github.com/jdx/mise/releases/download/v$(PKG_VERSION)/ PKG_HASH:=skip diff --git a/thermal-guard/Makefile b/thermal-guard/Makefile index 2fc672c0b..92a141c5d 100644 --- a/thermal-guard/Makefile +++ b/thermal-guard/Makefile @@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=thermal-guard -PKG_VERSION:=2.0.0 -PKG_RELEASE:=1 +PKG_VERSION:=2.1.1.0 +PKG_RELEASE:=2 PKG_LICENSE:=GPL-2.0-only PKG_LICENSE_FILES:=LICENSE @@ -29,7 +29,9 @@ define Package/thermal-guard/description Watches SoC and modem temperature and escalates in stages when a router runs hot, typically after a fan failure: fan to full speed, modem radio off, Wi-Fi off. Stages do not roll back on their own, clearing them is an operator - decision, and they survive a reboot. Fan control works either through the + decision, and they survive a reboot. One optional exception, off by default: + the second stage clears itself when the modem alone caused it and has read + cool for a while. Fan control works either through the kernel thermal zone or through sysfs PWM, modem temperature through Quectel or Fibocom AT commands, a file or a hook script. Warnings are posted to a URL. Where the kernel drives the fan, it can lower the fan's trip points while the @@ -59,6 +61,7 @@ define Package/thermal-guard/install $(INSTALL_BIN) ./files/usr/sbin/thermal-guard $(1)/usr/sbin/thermal-guard $(INSTALL_DATA) ./files/usr/share/thermal-guard/backends.sh $(1)/usr/share/thermal-guard/backends.sh $(INSTALL_DATA) ./files/usr/share/thermal-guard/trips.sh $(1)/usr/share/thermal-guard/trips.sh + $(INSTALL_DATA) ./files/usr/share/thermal-guard/modems $(1)/usr/share/thermal-guard/modems $(INSTALL_CONF) ./files/etc/config/thermal-guard $(1)/etc/config/thermal-guard $(INSTALL_BIN) ./files/etc/init.d/thermal-guard $(1)/etc/init.d/thermal-guard $(INSTALL_BIN) ./files/etc/uci-defaults/90-thermal-guard-trip-base $(1)/etc/uci-defaults/ diff --git a/thermal-guard/files/etc/config/thermal-guard b/thermal-guard/files/etc/config/thermal-guard index fc1a54a8a..97e3e57f3 100644 --- a/thermal-guard/files/etc/config/thermal-guard +++ b/thermal-guard/files/etc/config/thermal-guard @@ -1,20 +1,31 @@ config thermal-guard 'main' option enabled '1' - # seconds between readings, minimum 5 + # seconds between readings, 5 to 300, values outside are set to the nearest limit option interval '20' # stage thresholds in degrees celsius, must be ordered warn < crit < emergency option cpu_warn '70' option cpu_crit '80' option cpu_emergency '90' - option modem_warn '80' - option modem_crit '88' + # Unset takes the profile of the detected modem from + # /usr/share/thermal-guard/modems, otherwise 80 and 88. Set either to + # override it, warn below crit + #option modem_warn '80' + #option modem_crit '88' # minutes a stage has to persist before the next one can trigger on time alone option hold_minutes '3' # degrees below the warn thresholds that count as cooled down option hysteresis '10' + # Clear daemon stage 1 (stage 2 of 3 on the status page) on its own once + # the modem, which alone caused it, has read cool for recover_minutes + # (5 to 120), at most recover_max times in 24 hours (1 to 10). Stage 2, an + # incident where the processor was warm at any point and the 'command' + # action wait for a reset. Unset or 0 is off + #option auto_recover '1' + #option recover_minutes '10' + #option recover_max '3' option cpu_temp_path '/sys/class/thermal/thermal_zone0/temp' # also report the other temperature sensors of the board, Wi-Fi chips and so on @@ -23,6 +34,10 @@ config thermal-guard 'main' # none, cooling_device (kernel thermal zone), pwm (sysfs) or auto. # none leaves the fan to whatever regulates it already. auto takes the cooling # device if there is one and otherwise stays off the fan; it never picks pwm. + # The fan options below are read when a stage takes the fan over. Changed + # during a stage, they apply from the next takeover: the fan taken at stage + # entry stays in use (forced, checked, handed back) until it is released, + # also under none. option fan_mode 'none' # type of the fan's cooling device, for cooling_device, auto and trip # management; empty means pwm-fan @@ -72,7 +87,9 @@ config thermal-guard 'main' # the message is posted here. Works with ntfy, Gotify, Matrix, Slack and # anything else that takes a plain POST body. For a delivery HTTP cannot - # express, put an executable at /etc/thermal-guard/hooks/notify instead + # express, put an executable at /etc/thermal-guard/hooks/notify instead. + # Without curl the address is visible in the process list: it must not carry + # a secret in its path, and one with a query string or user info is refused #option notify_url 'https://ntfy.sh/my-topic' # only sent when curl is installed, uclient-fetch cannot set headers #option notify_header 'Authorization: Bearer secret' diff --git a/thermal-guard/files/etc/thermal-guard/hooks/README b/thermal-guard/files/etc/thermal-guard/hooks/README index 54279ab54..84209a0e7 100644 --- a/thermal-guard/files/etc/thermal-guard/hooks/README +++ b/thermal-guard/files/etc/thermal-guard/hooks/README @@ -22,12 +22,22 @@ delivery that way, and a missing modem-temp hook means no modem reading. modem-temp Runs when modem_source is 'command'. Has to print the modem temperature in whole degrees Celsius on stdout, nothing else. + A number of more than seven significant digits counts as no + reading (leading zeros are dropped first, a minus sign counts). + + modem-model Runs at start, in cycles with a modem reading, up to three times + until it prints a valid model, when modem_source is 'command' + or 'file'. Prints the modem model on stdout, for the modem + table in /usr/share/thermal-guard/modems. With ModemManager: + mmcli -m any -K | sed -n 's/^modem\.generic\.model *: *//p' + Letters, digits, dot, underscore and dash, up to 32 characters. Every hook runs under a time limit: 15 seconds for notify, stage1 and stage2, -5 seconds for modem-temp, which runs every cycle. A hook still running then -gets TERM, and KILL 5 seconds later. It counts as failed: a stage action is -reported as not carried out, a modem-temp hook as no reading. Keep hooks short; -a mail or HTTP call inside one needs its own, shorter time limit. +5 seconds for modem-temp, which runs every cycle, and for modem-model. A hook +still running then gets TERM, and KILL 5 seconds later. It counts as failed: a +stage action is reported as not carried out, a modem-temp hook as no reading. +Keep hooks short; a mail or HTTP call inside one needs its own, shorter time +limit. Example, a notify hook for a local mailer: diff --git a/thermal-guard/files/usr/sbin/thermal-guard b/thermal-guard/files/usr/sbin/thermal-guard index 3842fd05c..3b260da33 100755 --- a/thermal-guard/files/usr/sbin/thermal-guard +++ b/thermal-guard/files/usr/sbin/thermal-guard @@ -11,16 +11,19 @@ # # Stages never roll back on their own. Cooling down is reported, but the operator # decides when the box is safe again ("thermal-guard reset"). That is deliberate: -# a fan that failed once will fail again, and a silent recovery hides it. +# a fan that failed once will fail again, and a silent recovery hides it. One +# exception, off by default: auto_recover clears stage 1 when the modem alone +# caused it and has read cool for recover_minutes, a few times a day at most. # -# Usage: thermal-guard daemon|status|reset|test |selftest|-V +# Usage: thermal-guard daemon|status|reset|reset-start|trips-keep|fan-forget|test | +# selftest|-V # # "test" is a dry run: it reports what the current state plus those readings # would decide, and runs and writes nothing. Safe on a live box. set -u -THERMAL_GUARD_VERSION="2.0.0" +THERMAL_GUARD_VERSION="2.1.1.0" TAG=thermal-guard STATE_DIR="${STATE_DIR:-/var/run/thermal-guard}" STATE="$STATE_DIR/state" @@ -34,12 +37,18 @@ OUTBOX="$STATE_DIR/outbox" EVLOG="$STATE_DIR/log" STATUS_FILE="${STATUS_FILE:-/var/run/thermal-guard.status}" LIB_DIR="${LIB_DIR:-/usr/share/thermal-guard}" +# Default modem limits per model, shipped with the package. Environment only: +# UCI cannot name a file the daemon reads. +MODEM_TABLE="${MODEM_TABLE:-$LIB_DIR/modems}" # Tests point these at a planted tree. Environment only, UCI cannot move them. THERMAL_ROOT="${THERMAL_ROOT:-/sys/class/thermal}" DT_ROOT="${DT_ROOT:-/sys/firmware/devicetree/base}" NET_ROOT="${NET_ROOT:-/sys/class/net}" HWMON_ROOT="${HWMON_ROOT:-/sys/class/hwmon}" +# Where fan device links resolve to, and the id of this boot. +DEVICES_ROOT="${DEVICES_ROOT:-/sys/devices}" +BOOT_ID_FILE="${BOOT_ID_FILE:-/proc/sys/kernel/random/boot_id}" TG_FUNCTIONS="${TG_FUNCTIONS:-/lib/functions.sh}" # Only for tests, which point it at a stand-in so no line reaches the host's # syslog. A BusyBox that prefers its applets would bypass one on PATH. @@ -49,14 +58,28 @@ TG_LOGGER="${TG_LOGGER:-logger}" AT_WAIT="${AT_WAIT:-10}"; AT_TIMEOUT="${AT_TIMEOUT:-5}"; AT_NO_TIMEOUT_TOLD=0 # Seconds a notification post without curl may take, DNS lookup included. HTTP_TIMEOUT="${HTTP_TIMEOUT:-20}" -# Seconds for wifi, ifdown and ifup, and for a hook. A hook that ignores TERM -# is killed 5 s later. -CMD_TIMEOUT="${CMD_TIMEOUT:-15}"; HOOK_TIMEOUT="${HOOK_TIMEOUT:-15}" +# Seconds for wifi, ifdown, ifup and sync, and for a hook. Whatever ignores +# TERM at its time limit gets KILL KILL_AFTER seconds later. +CMD_TIMEOUT="${CMD_TIMEOUT:-15}"; HOOK_TIMEOUT="${HOOK_TIMEOUT:-15}"; KILL_AFTER=5 # Seconds for a ubus call. netifd answers late while wifi down runs, and the # readback must not hang on exactly what it checks. UBUS_TIMEOUT="${UBUS_TIMEOUT:-5}" -# Seconds between attempts when an action is read back. -CFUN_SETTLE=2 +# Seconds a reset waits for a running cycle. Longer than the slowest one, fan, +# modem and Wi-Fi retries included. Environment only. +RESET_WAIT="${RESET_WAIT:-240}" +case "$RESET_WAIT" in ''|*[!0-9]*|???????*) RESET_WAIT=240 ;; esac +# Seconds a reset may spend undoing, once it holds the lock. An undo that might +# not end in time is skipped and listed as not undone. The daemon alerts when a +# holder keeps the lock longer. Environment only. +RESET_BUDGET="${RESET_BUDGET:-200}" +case "$RESET_BUDGET" in ''|*[!0-9]*|???????*) RESET_BUDGET=200 ;; esac +# Seconds a reset request waits for admission. Its holders only read and +# rename small files, so a wait this long means one of them hangs. +# Environment only. +ADMIT_WAIT="${ADMIT_WAIT:-10}" +case "$ADMIT_WAIT" in ''|*[!0-9]*|???????*) ADMIT_WAIT=10 ;; esac +# Seconds between attempts when an action is read back, and the attempts. +CFUN_SETTLE=2; CFUN_TRIES=3; IFACE_TRIES=3 # Wi-Fi restarts hostapd per radio, which takes longer than a modem answers. WIFI_SETTLE="${WIFI_SETTLE:-5}"; WIFI_TRIES=5 # What the fan is read from, set by tg_fan_detect. FAN_MODE says what may be @@ -69,7 +92,12 @@ FAN_VIEW=none tg_cfg_defaults() { ENABLED=1; INTERVAL=20 tg_cfg_default_thresholds + # What UCI says about the modem pair, kept apart so tg_cfg_thresholds can + # tell an operator's value from the profile's. Empty means unset. + UCI_MODEM_WARN=""; UCI_MODEM_CRIT="" HOLD_MINUTES=3; HYSTERESIS=10 + # Off unless asked for: by default stages wait for a reset. + AUTO_RECOVER=0; RECOVER_MINUTES=10; RECOVER_MAX=3 CPU_TEMP_PATH="$THERMAL_ROOT/thermal_zone0/temp" # Hands off the fan unless told otherwise: most boards that have one also # have a regulator for it, and this is not meant to compete. @@ -119,15 +147,31 @@ PWM_PATH_TOLD="" NOTIFY_TOLD="" # The fan_governor value last rejected, so it is said once until it changes. GOVERNOR_TOLD="" +# Rejected enumeration and range values as "option=value " pairs, said once each. +ENUM_TOLD="" +# Set while a failed chmod of the curl config has been reported. +NOTIFY_CHMOD_TOLD=0 # Set once wifi_off has been checked against netifd, cleared when no stage # uses it any more, so adding it again checks again. WIFI_CHECKED=0 # Set once a failed persist has been reported, until the next one succeeds. -PERSIST_TOLD=0 +# LEDGER_TOLD does the same for the recovery count. LEDGER_UNFLUSHED is set +# while the count file is in place but its flush failed. +PERSIST_TOLD=0; LEDGER_TOLD=0; LEDGER_UNFLUSHED=0 # Set once a missing ip or flock has been reported. IP_TOLD=0; FLOCK_TOLD=0 # The fetcher that was told it cannot send notify_header. NOTIFY_HEADER_TOLD="" +# The detected modem, the attempts that got a reading but no model, and the +# profile found for it. PROFILE_MODEL is the model the profile was looked up +# for, so tg_cfg, which runs every cycle, reads the table once per model. +MODEM_MODEL=""; MODEL_TRIES=0 +PROFILE_MODEL=""; PROFILE_MATCH=""; PROFILE_WARN=""; PROFILE_CRIT="" +# Where each modem limit came from: default, profile or uci. +MODEM_WARN_SRC=default; MODEM_CRIT_SRC=default +# The implausible values last reported, so each is said once. +MODEM_THR_TOLD=""; CPU_THR_TOLD="" +RECOVER_CFG_TOLD="" # Set by tg_daemon. Only the long running process narrates the configuration; # status, reset and test run the same checks but stay quiet about them. DAEMON=0 @@ -138,28 +182,250 @@ DAEMON=0 . "$LIB_DIR/trips.sh" # ---- state ----------------------------------------------------------------- +# The stage 1 action names the state may hold. Anything else is no action at +# all, so a junk value can neither reach the state file nor allow a recovery. +tg_action_name() { # $1 action + case "$1" in + modem_radio_off|wifi_off|interface_down|command|none) echo "$1" ;; + *) echo "" ;; + esac +} + tg_state_clear() { + tg_state_clear_but_fan + tg_fan_record_drop +} + +# Everything but the fan takeover record, which lives in the state so it +# survives a daemon restart (see tg_fan_record_drop). +tg_state_clear_but_fan() { STAGE=-1; T0=0; T1=0; T2=0 # Readings at stage entry, empty where that reading was missing. REF_CPU0=""; REF_MODEM0=""; REF_CPU1=""; REF_MODEM1="" PENDING=-1; PENDING_N=0; COOLED=0 + # Automatic recovery: who drove stage 1 and which action it ran, since when + # the readings are cool, and the 24 hour window with its count and whether + # its cap was reported. + CAUSE1=""; ACTION1=""; COOL_SINCE=0; RECOVER_WIN=0; RECOVER_N=0; RECOVER_TOLD=0 + # What each stage ran and, for interface_down, which interface it took down, + # so a reset undoes that and not whatever the options say by then. + IFACE1=""; ACTION2=""; IFACE2="" + # What the last reset could not undo, comma separated. Survives that reset's + # own clear (tg_reset sets it after), ends with the next stage entry. + RESET_FAILED="" + # 1 once the processor read at or above cpu_warn at any point of the incident. + CPU_SEEN=0 LAST_CPU=""; LAST_MODEM=""; LAST_MODEM_SRC=""; LAST_TS=0 - # What the fan was doing before we took it over, so the release can put it - # back. Lives in the state so it survives a daemon restart. POLICY is the - # thermal zone governor for cooling_device mode, the other two are the pwm - # chip's manual mode and duty cycle. - FAN_SAVED_ENABLE=""; FAN_SAVED_PWM=""; FAN_SAVED_POLICY="" # Counts resets. The daemon compares it to spot a reset that happened while # it was busy deciding. tg_reset restores the old value after clearing. GEN=0 } tg_state_clear +# A fan record from another boot was dropped at load, said when that is saved. +# RESTORING is set while a restore reapplies its stages. +FAN_DISCARDED=0; RESTORING=0 DECISION=none +UNDO_FAILED="" +# The reset request record as tg_reset_read found it: the current request, the +# process that reserved it and its worker (pid and start time each), and the +# request before it in this boot. +RESET_BOOT=""; RESET_ID=""; RESET_GEN=""; RESET_STATE=""; RESET_TS=""; RESET_KIND="" +RESET_REC_FAILED=""; RESET_RPID=""; RESET_RSTART=""; RESET_WPID=""; RESET_WSTART="" +RESET_PREV_ID=""; RESET_PREV_GEN=""; RESET_PREV_STATE=""; RESET_PREV_FAILED=""; RESET_PREV_TS="" +# The request this process runs or joined, and one a new request found dead. +REQ_BOOT=""; REQ_GEN=""; REQ_ID=""; REQ_TS=""; REQ_JOINED=0; REQ_ABORTED="" +PROC_START="" FROM_STAGE=0 DRY=0 MODEM_VAL="" MODEM_SRC="" +# Reset and the daemon cycle both change the state and the hardware, so they +# take turns: an exclusive flock on fd 7 of the running shell, where a subshell +# would lose the globals. Only the holder writes the state file, the status file +# or the hardware, and without a lock nobody does. LOCK_OK is empty until +# opened, 1 open, 0 when it cannot be, with LOCK_ERR saying why. +LOCK_OK=""; LOCK_ERR="" +# The holder a blocked daemon cycle last found (its pid in lock.owner), since +# when on the uptime, and the alerts sent for it. +BLOCK_HOLDER=""; BLOCK_SINCE=""; BLOCK_TOLD="" +MY_PID=$$ + +# $$ is the parent's PID in a subshell, where the page's reset runs. The shell +# reads /proc/self itself here, no fork in between. +tg_my_pid() { + local p="" rest="" + [ -r /proc/self/stat ] && read -r p rest < /proc/self/stat + case "$p" in ''|*[!0-9]*) p=$$ ;; esac + MY_PID=$p +} + +# A process is its pid and its start time, field 22 of its stat, so a pid the +# kernel has given to another process does not count as the same one. Counted +# after the last ")", the name before it may hold spaces and parentheses. A +# zombie has ended and gets no start time. +tg_stat_start() { # $1 stat line; sets PROC_START + local rest + PROC_START="" + case "$1" in *")"*) ;; *) return 0 ;; esac + rest=${1##*)} + # shellcheck disable=SC2086 # split into its fields on purpose + set -- $rest + case "${1:-}" in ''|Z|X|x) return 0 ;; esac + [ "$#" -ge 20 ] || return 0 + shift 19 + PROC_START=$(tg_int "$1") +} + +tg_proc_start() { # $1 pid; sets PROC_START, empty for a process that is gone + local l="" + PROC_START="" + case "$1" in ''|*[!0-9]*) return 0 ;; esac + { read -r l < "/proc/$1/stat"; } 2>/dev/null || return 0 + tg_stat_start "$l" +} + +tg_proc_is() { # $1 pid, $2 start time + [ -n "$2" ] || return 1 + tg_proc_start "$1" + [ "$PROC_START" = "$2" ] +} + +# Whole seconds since boot. Unlike the clock it never steps, so a timer on it +# measures what it says. The clock where it cannot be read. +tg_uptime() { # $1 file, /proc/uptime by default + local f="${1:-/proc/uptime}" u="" rest="" + [ -r "$f" ] && read -r u rest < "$f" + u=$(tg_int "${u%%.*}") + [ -n "$u" ] || u=$(date +%s) + echo "$u" +} + +# Opens $2 on descriptor $1 for flock: 1 without flock, 2 where the file cannot +# be opened. The kernel drops a flock only when the last descriptor on its open +# file closes, so whatever starts while one is held must not inherit it. +tg_lock_fd_open() { # $1 descriptor 3 to 9, $2 lock file + case "$1" in [3-9]) ;; *) return 2 ;; esac + tg_have flock || return 1 + mkdir -p "${2%/*}" 2>/dev/null 7>&- + # command: a failed redirection must not end the shell. eval only sees the + # digit checked above, the file name stays a variable. + { eval "command exec $1>\"\$2\""; } 2>/dev/null || return 2 +} + +# Never waits. +tg_lock_fd_take() { # $1 descriptor + flock -n -x "$1" 2>/dev/null +} + +tg_lock_open() { + local rc=0 + [ -n "$LOCK_OK" ] && { [ "$LOCK_OK" = 1 ]; return; } + tg_lock_fd_open 7 "$STATE_DIR/lock" || rc=$? + case "$rc" in + 0) LOCK_OK=1; return 0 ;; + 1) LOCK_ERR="no flock command, the state lock cannot be taken" ;; + *) LOCK_ERR="cannot open $STATE_DIR/lock, the state lock cannot be taken" ;; + esac + LOCK_OK=0 + return 1 +} + +# Never waits. 0 taken, 1 held by another process, 2 no lock to take. +tg_lock_take() { + tg_lock_open || return 2 + tg_lock_fd_take 7 || return 1 + # A file of its own: opening the lock file truncates it. The daemon tells + # one holder from the next by this. + tg_my_pid + printf '%s\n' "$MY_PID" 2>/dev/null > "$STATE_DIR/lock.owner" + return 0 +} + +# BusyBox flock cannot wait with a limit, so poll once a second. Returns at +# once with 2 where there is no lock to wait for. +tg_lock_wait() { # $1 seconds + local n=0 rc + while :; do + rc=0; tg_lock_take || rc=$? + case "$rc" in 0|2) return "$rc" ;; esac + [ "$n" -lt "$1" ] || return 1 + sleep 1 + n=$((n + 1)) + done +} + +tg_lock_drop() { + [ "$LOCK_OK" = 1 ] && flock -u 7 2>/dev/null + return 0 +} + +# Admission to the reset request record, reset.admit on fd 6. A leaf lock: its +# holder reads and writes small files with shell builtins, forks the detached +# reset and runs no command but the rename of a record and the unlock; it never +# waits for anything and never takes the state lock. A reset takes it while +# holding the state lock, never the other way round, so the two cannot wait for +# each other. fd 6 is open only while it is held, and what runs meanwhile gets +# it closed, but for the rename of a record (tg_reset_put). 0 taken, 1 not +# within ADMIT_WAIT, 2 no lock to take. +tg_admit_take() { + local n=0 + tg_lock_fd_open 6 "$STATE_DIR/reset.admit" || return 2 + while ! flock -n -x 6 2>/dev/null 7>&-; do + if [ "$n" -ge "$ADMIT_WAIT" ]; then + exec 6>&- + return 1 + fi + sleep 1 6>&- 7>&- + n=$((n + 1)) + done +} + +# Unlocks before closing: the detached reset inherits fd 6 and may not have +# closed its copy yet, which would keep the lock held. +tg_admit_drop() { + flock -u 6 2>/dev/null 7>&- + exec 6>&- +} + +# The daemon neither waits nor goes on without the lock. A held lock has a live +# holder, a reset as a rule, which may still write, however long it takes. +tg_daemon_lock() { + tg_lock_take || return 1 + BLOCK_HOLDER=""; BLOCK_SINCE=""; BLOCK_TOLD="" +} + +# A cycle that found the lock held measures and alerts, nothing more. Once per +# holder and level: held past RESET_BUDGET, a reading at a crit threshold, the +# CPU at emergency, which stands for crit too. tg_notify queues what it cannot +# deliver, so a failed post never turns into cycle work. +tg_blocked() { # $1 cpu, $2 modem, $3 uptime + local owner held what="blocked by a reset while" + owner=$(tg_int "$(head -n1 "$STATE_DIR/lock.owner" 2>/dev/null)") + if [ -z "$BLOCK_SINCE" ] || [ "$owner" != "$BLOCK_HOLDER" ]; then + BLOCK_HOLDER=$owner; BLOCK_SINCE=$3; BLOCK_TOLD="" + fi + held=$(($3 - BLOCK_SINCE)) + [ "$held" -gt "$RESET_BUDGET" ] && tg_blocked_alert budget \ + "blocked by a reset for $held s, no action taken (cpu ${1:-?} C, modem ${2:-?} C)" + if [ -n "$1" ] && [ "$1" -ge "$CPU_EMERGENCY" ]; then + tg_blocked_alert emergency \ + "$what the CPU is at $1 C, its emergency threshold, no action taken" + BLOCK_TOLD="$BLOCK_TOLD crit" + elif [ -n "$1" ] && [ "$1" -ge "$CPU_CRIT" ]; then + tg_blocked_alert crit "$what cpu is at $1 C, above its crit threshold, no action taken" + elif [ -n "$2" ] && [ "$2" -ge "$MODEM_CRIT" ]; then + tg_blocked_alert crit "$what modem is at $2 C, above its crit threshold, no action taken" + fi + return 0 +} + +tg_blocked_alert() { # $1 level, $2 text + case " $BLOCK_TOLD " in *" $1 "*) return 0 ;; esac + BLOCK_TOLD="$BLOCK_TOLD $1" + tg_notify blocked "$2" +} + # ---- decision logic, pure: touches variables only, no side effects --------- # # Candidate is the highest stage above the current one whose condition holds. @@ -201,12 +467,119 @@ tg_candidate() { echo "$c" } +# Who drove stage 1: the modem alone, or anything involving the processor. A +# missing modem reading counts as cpu, so recovery never rests on a guess. +tg_cause1() { # $1 cpu, $2 modem + if [ -n "$2" ] && [ "$2" -ge "$MODEM_WARN" ] && { [ -z "$1" ] || [ "$1" -lt "$CPU_WARN" ]; }; then + echo modem + else + echo cpu + fi +} + +# Marks the incident as processor involved. CAUSE1 only sees the readings at +# stage 1 entry, this sees every cycle of an active stage. +tg_cpu_seen() { # $1 cpu + [ "$STAGE" -ge 0 ] && [ -n "$1" ] && [ "$1" -ge "$CPU_WARN" ] && CPU_SEEN=1 + return 0 +} + +# Whether stage 1 is the kind that may clear itself: switched on, caused by +# the modem alone, the processor never warm during the incident, an action +# that can be undone, and a fan record that can be handed back. An unresolved +# one fails every release, and each try would switch the modem on and off. +tg_recover_applies() { + [ "$AUTO_RECOVER" = 1 ] && [ "$STAGE" -eq 1 ] && [ "$CAUSE1" = modem ] && + [ "$CPU_SEEN" = 0 ] && [ "$FAN_UNRESOLVED" = 0 ] && tg_recover_action_ok +} + +# The action recorded at entry has a confirmed undo and is still the one +# configured. A hook has no undo, and undoing an action other than the one +# that ran would leave that one in force while the stage reads cleared. +tg_recover_action_ok() { + [ "$ACTION1" = "$STAGE1_ACTION" ] || return 1 + case "$ACTION1" in + modem_radio_off|wifi_off|interface_down|none) return 0 ;; + esac + return 1 +} + +# Once the cap blocked a recovery, the stage stays until a reset, whatever the +# window does later. Before that, a count at the max holds within its window. +tg_recover_capped() { # $1 now + [ "$RECOVER_TOLD" = 1 ] && return 0 + [ "$RECOVER_N" -ge "$RECOVER_MAX" ] && [ "$RECOVER_WIN" -gt 0 ] && + [ $(($1 - RECOVER_WIN)) -lt 86400 ] +} + +# What the page says about the recovery of stage 1, decided here so the +# browser has nothing to derive. Empty where no recovery is in question. +tg_recover_state() { # $1 now + [ "$STAGE" -eq 1 ] && [ "$AUTO_RECOVER" = 1 ] || return 0 + [ "$CPU_SEEN" = 1 ] && { echo cpu; return 0; } + # Judged cpu at entry with the processor never warm: the modem had no reading. + case "$CAUSE1" in + cpu) echo nomodem; return 0 ;; + '') echo nocause; return 0 ;; + esac + [ "$FAN_UNRESOLVED" = 1 ] && { echo fan; return 0; } + if ! tg_recover_action_ok; then + echo action + elif tg_recover_capped "$1"; then + echo capped + elif [ "$COOL_SINCE" -gt 0 ]; then + echo planned + else + echo cooling + fi +} + +# DECISION=recover once the readings have been cool for recover_minutes, or +# recover_capped the first time the cap alone holds it back. A missing reading +# is not cool here, unlike for the cooled report: recovery turns a radio back +# on and must not do that blind. A board without any sensor has no processor +# reading to wait for, so there the modem alone decides. +tg_recover_check() { # $1 cpu, $2 modem, $3 now + tg_recover_applies || { COOL_SINCE=0; return 1; } + # The cap latches: a new window does not reopen a stage it once held. + [ "$RECOVER_TOLD" = 1 ] && { COOL_SINCE=0; return 1; } + if [ -z "$2" ] || [ "$2" -gt $((MODEM_WARN - HYSTERESIS)) ] || + { [ -z "$1" ] && [ "$NO_SENSOR" = 0 ]; } || + { [ -n "$1" ] && [ "$1" -gt $((CPU_WARN - HYSTERESIS)) ]; }; then + COOL_SINCE=0 + return 1 + fi + # A gap is not a cool streak: a pause, a restart or a clock step starts over. + [ "$LAST_TS" -gt 0 ] && [ "$3" -ge "$LAST_TS" ] && + [ $(($3 - LAST_TS)) -le $((INTERVAL * 3 + 60)) ] || COOL_SINCE=0 + [ "$COOL_SINCE" -gt 0 ] || COOL_SINCE=$3 + [ $(($3 - COOL_SINCE)) -ge $((RECOVER_MINUTES * 60)) ] || return 1 + if [ "$RECOVER_WIN" -eq 0 ] || [ $(($3 - RECOVER_WIN)) -ge 86400 ]; then + RECOVER_WIN=$3; RECOVER_N=0 + fi + if [ "$RECOVER_N" -ge "$RECOVER_MAX" ]; then + RECOVER_TOLD=1; DECISION=recover_capped + return 0 + fi + DECISION=recover + return 0 +} + tg_enter_stage() { # $1 stage, $2 cpu, $3 modem, $4 now case "$1" in 0) T0=$4; REF_CPU0=${2:-}; REF_MODEM0=${3:-} ;; - 1) T1=$4; REF_CPU1=${2:-}; REF_MODEM1=${3:-} ;; - 2) T2=$4 ;; + 1) + T1=$4; REF_CPU1=${2:-}; REF_MODEM1=${3:-}; CAUSE1=$(tg_cause1 "$2" "$3") + # A recovery and a reset undo what ran, even if the options change meanwhile. + ACTION1=$(tg_action_name "$STAGE1_ACTION"); IFACE1=$(tg_action_iface "$ACTION1") + ;; + 2) + T2=$4 + ACTION2=$(tg_action_name "$STAGE2_ACTION"); IFACE2=$(tg_action_iface "$ACTION2") + ;; esac + # A failed reset stays visible until something new happens. + RESET_FAILED="" STAGE=$1 } @@ -225,6 +598,8 @@ tg_decide() { # $1 cpu, $2 modem, $3 now -> DECISION c=$(tg_candidate "$cpu" "$modem" "$now") if [ "$c" -gt "$STAGE" ]; then + # A hit toward a higher stage is not cool, whatever came before. + COOL_SINCE=0 if [ "$c" -eq "$PENDING" ]; then PENDING_N=$((PENDING_N + 1)) else @@ -239,10 +614,14 @@ tg_decide() { # $1 cpu, $2 modem, $3 now -> DECISION PENDING=-1; PENDING_N=0; COOLED=0 DECISION="stage:$c" fi + tg_cpu_seen "$cpu" return 0 fi PENDING=-1; PENDING_N=0 + tg_cpu_seen "$cpu" + + tg_recover_check "$cpu" "$modem" "$now" && return 0 # Cooling down is reported once. Nothing is taken back, a missing reading counts as cool. if [ "$STAGE" -ge 0 ] && [ "$COOLED" = 0 ]; then @@ -265,10 +644,13 @@ tg_log() { *) prio=info ;; esac # Never let logging fail a caller, not even where logger is missing. - "$TG_LOGGER" -t "$TAG" -p "daemon.$prio" "$1" 2>/dev/null + "$TG_LOGGER" -t "$TAG" -p "daemon.$prio" "$1" 2>/dev/null 7>&- mkdir -p "$STATE_DIR" printf '%s %s\n' "$(date '+%F %T')" "$1" >> "$EVLOG" - [ "$(wc -l < "$EVLOG")" -gt 50 ] && { tail -n 50 "$EVLOG" > "$EVLOG.tmp" && mv "$EVLOG.tmp" "$EVLOG"; } + # A temp name of its own: a reset request logs without the state lock. + tg_my_pid + [ "$(wc -l < "$EVLOG")" -gt 50 ] && { tail -n 50 "$EVLOG" > "$EVLOG.tmp.$MY_PID" && + mv "$EVLOG.tmp.$MY_PID" "$EVLOG"; } return 0 } @@ -295,13 +677,14 @@ tg_notify_send() { # $1 text tg_notify_hook "$1" } -# $1 the stage (0 to 2, also for a restore), blind, cooled or reset; the -# syslog priority follows from it. $2 text. +# $1 the stage (0 to 2, also for a restore), blind, blocked, cooled, reset, resetfail (a +# reset that could not undo everything) or recover; the syslog priority follows +# from it. $2 text. tg_notify() { local text prio=crit case "$1" in blind) prio=warning ;; - cooled|reset) prio=notice ;; + cooled|reset|recover) prio=notice ;; esac # A dry run touches neither syslog nor the event log nor the outbox. It # says what it would send, with the priority a remote alert would see. @@ -317,7 +700,7 @@ tg_notify() { # From stage 1 on we may be about to switch off the only uplink. Queue the # message instead of losing it, the daemon retries while a route exists. case "$1" in - 0|blind|reset|cooled) ;; + 0|blind|blocked|reset|resetfail|cooled|recover) ;; *) tg_alt_uplink || { printf '%s %s\n' "$(date '+%F %T')" "$2" >> "$OUTBOX" tg_log "no alternative uplink, message queued" @@ -351,25 +734,200 @@ tg_flush_outbox() { # Returns what the action returned. A stage that could not do what it promised # has to be visible: on a box with a dead fan, "modem off" quietly failing is # the difference between a warm modem and a dead one. -tg_run_action() { # $1 action name, $2 hook name for the "command" action +tg_run_action() { # $1 action name, $2 hook name for the "command" action, $3 interface case "$1" in modem_radio_off) tg_action_modem_radio_off ;; wifi_off) tg_action_wifi_off ;; - interface_down) tg_action_interface_down ;; + interface_down) tg_action_interface_down "${3:-}" ;; command) tg_run_hook "$2" ;; none|'') return 0 ;; *) tg_log "unknown action '$1', doing nothing" warning; return 1 ;; esac } -# The reverse of a stage action, on reset. A hook has no reverse; the operator -# who wrote it knows what to undo. -tg_undo_action() { # $1 action name +# Applies a stage action again from what the state recorded: the recorded action +# and interface, the configured action only for a state that recorded none. A +# recorded interface_down without an interface took nothing down, so there is +# nothing to repeat and it counts as failed. +tg_run_recorded() { # $1 recorded action, $2 recorded interface, $3 configured action, $4 hook + if [ "$1" = interface_down ] && [ -z "$2" ]; then + tg_log "interface_down recorded no interface, cannot apply it again" warning + return 1 + fi + tg_run_action "${1:-$3}" "$4" "$2" +} + +# Says whether the effect of the reverse was confirmed. The automatic recovery +# must not clear a stage it could not undo. $2 is the interface the action took +# down; empty means nothing was taken down, so there is nothing to bring back. +tg_undo_checked() { # $1 action name, $2 interface case "$1" in - modem_radio_off) tg_action_modem_radio_on || tg_log "could not switch the modem back on" crit ;; + modem_radio_off) tg_action_modem_radio_on ;; wifi_off) tg_action_wifi_on ;; - interface_down) tg_action_interface_up || tg_log "could not bring the interface back up" crit ;; + interface_down) [ -z "${2:-}" ] || tg_action_interface_up "$2" ;; + none|'') return 0 ;; + *) return 1 ;; esac +} + +# The reverse of a stage action, on reset. A hook has no reverse; the operator +# who wrote it knows what to undo, so it never counts as a failure. +tg_undo_recorded() { # $1 action name, $2 interface + case "$1" in + command|none|'') return 0 ;; + esac + tg_undo_checked "$1" "${2:-}" && return 0 + case "$1" in + modem_radio_off) tg_log "could not switch the modem back on" crit ;; + wifi_off) tg_log "could not switch Wi-Fi back on" crit ;; + interface_down) tg_log "could not bring the interface back up" crit ;; + esac + return 1 +} + +# $1 comma separated list, $2 item: the list with the item once. +tg_list_add() { + case ",$1," in + *",$2,"*) echo "$1" ;; + *) echo "${1:+$1,}$2" ;; + esac +} + +# $1 comma separated list, $2 item: the list without it. Lowercase names and +# commas only, so word splitting is safe. +tg_list_drop() { + local out="" t + for t in $(echo "$1" | tr ',' ' '); do + [ "$t" = "$2" ] || out=$(tg_list_add "$out" "$t") + done + echo "$out" +} + +# The longest the undo of $1 can take: each external call at its time limit +# plus KILL_AFTER, every attempt and settle time of its readback. An AT call is +# bounded by its outer limit, AT_WAIT. The fan release only writes sysfs and +# has no bound of its own, nor has an undo with nothing to do. +tg_undo_budget() { # $1 action name, $2 interface + case "$1" in + wifi_off) + echo $((WIFI_TRIES * (CMD_TIMEOUT + KILL_AFTER + WIFI_SETTLE + UBUS_TIMEOUT + + KILL_AFTER))) ;; + modem_radio_off) + echo $((CFUN_TRIES * 2 * (AT_WAIT + KILL_AFTER) + (CFUN_TRIES - 1) * CFUN_SETTLE)) ;; + interface_down) + if [ -n "$2" ]; then + echo $((CMD_TIMEOUT + KILL_AFTER + IFACE_TRIES * (UBUS_TIMEOUT + KILL_AFTER) + + (IFACE_TRIES - 1) * CFUN_SETTLE)) + else + echo 0 + fi ;; + *) echo 0 ;; + esac +} + +# Whether the undo of $1 still ends within RESET_BUDGET seconds of $3. What +# would not is skipped and stays listed as not undone, so a reset never runs +# into a hardware step it cannot finish in time. +tg_undo_fits() { # $1 action name or fan, $2 interface, $3 uptime the reset began + case "$1" in command|none|'') return 0 ;; esac + [ "$(tg_undo_budget "$1" "$2")" -le $((RESET_BUDGET - ($(tg_uptime) - $3))) ] && return 0 + tg_log "skipping the undo of $1, it might not end within the reset budget of $RESET_BUDGET s" \ + crit + return 1 +} + +# Reset: undo what the stage entries recorded, stage 2 first, then hand the fan +# back. UNDO_FAILED names what could not be confirmed or was skipped (the action +# names, and fan). A state from before the actions were recorded gets the +# configured ones. +tg_undo_all() { # $1 uptime the reset began, now by default + local a1="$ACTION1" i1="$IFACE1" a2="$ACTION2" i2="$IFACE2" old=0 t0="${1:-}" + [ -n "$t0" ] || t0=$(tg_uptime) + UNDO_FAILED="" + if [ "$STAGE" -ge 1 ] && [ -z "$a1" ]; then + a1=$(tg_action_name "$STAGE1_ACTION"); i1=$(tg_action_iface "$a1"); old=1 + fi + if [ "$STAGE" -ge 2 ] && [ -z "$a2" ]; then + a2=$(tg_action_name "$STAGE2_ACTION"); i2=$(tg_action_iface "$a2"); old=1 + fi + [ "$old" = 0 ] || tg_log "state from an older version, undoing the configured actions" warning + if [ "$STAGE" -ge 2 ]; then + { tg_undo_fits "$a2" "$i2" "$t0" && tg_undo_recorded "$a2" "$i2"; } || + UNDO_FAILED=$(tg_list_add "$UNDO_FAILED" "$a2") + fi + if [ "$STAGE" -ge 1 ]; then + { tg_undo_fits "$a1" "$i1" "$t0" && tg_undo_recorded "$a1" "$i1"; } || + UNDO_FAILED=$(tg_list_add "$UNDO_FAILED" "$a1") + fi + # Unconditional, not "if we think we took the fan". Reset means hand it + # back, and the one case where the stage says idle but the fan is still + # forced is exactly the one an operator cannot fix any other way. + { tg_undo_fits fan "" "$t0" && tg_fan_release; } || + UNDO_FAILED=$(tg_list_add "$UNDO_FAILED" fan) + return 0 +} + +# The mode of the fan a force goes to, for messages: the taken fan's, else the +# configured one. Sets FAN_NOW, no subshell under the lock. +FAN_NOW="" +tg_fan_mode_now() { + if tg_fan_recorded; then FAN_NOW=$FAN_TAKEN; else FAN_NOW=$FAN_MODE; fi +} + +# Daemon stage 1, caused by the modem alone and cool for recover_minutes: +# undo the action, hand the fan back, clear the stage. GEN stays, it marks +# operator resets; the window and its count stay, they cap the next ones. +tg_recover() { # $1 cpu, $2 modem, $3 now + local n=$((RECOVER_N + 1)) mins=$((($3 - COOL_SINCE) / 60)) win=$RECOVER_WIN gen=$GEN msg + msg="auto recovery $n of $RECOVER_MAX: modem ${2:-?} C for $mins min," + msg="$msg stage 1 action '$ACTION1' undone." + [ "$DRY" = 1 ] && { tg_notify recover "$msg"; return 0; } + if ! tg_undo_checked "$ACTION1" "$IFACE1"; then + # Counts like a recovery: a modem that never confirms hits the cap + # instead of a crit message every recover_minutes for good. + COOL_SINCE=0; RECOVER_N=$n + tg_recover_ledger_save + msg="auto recovery $n of $RECOVER_MAX failed:" + tg_notify 1 "$msg stage 1 action '$ACTION1' could not be undone, stage 1 stays." + return 1 + fi + if ! tg_fan_release; then + # The undo is confirmed but the fan is still forced: the stage stays, + # and the next try finds the saved governor in the state. The action + # goes back on, because a rising modem never re-runs stage 1. So does + # the fan: a partial release may have handed back the duty cycle. Both + # went to the recorded fan, whatever fan_mode says by now. + COOL_SINCE=0; RECOVER_N=$n + tg_recover_ledger_save + tg_fan_hands_off || tg_fan_full || { + tg_fan_mode_now + tg_log "could not force the fan again after the failed release (mode $FAN_NOW)" crit + } + msg="auto recovery $n of $RECOVER_MAX failed: the fan could not be handed back," + if tg_run_recorded "$ACTION1" "$IFACE1" "$STAGE1_ACTION" stage1; then + tg_notify 1 "$msg stage 1 action '$ACTION1' applied again, stage 1 stays." + else + msg="$msg and stage 1 action '$ACTION1' could not be applied again," + tg_notify 1 "$msg the box may be without that protection." + fi + return 1 + fi + tg_state_clear + GEN=$gen; RECOVER_WIN=$win; RECOVER_N=$n + LAST_CPU=$1; LAST_MODEM=$2; LAST_TS=$3; LAST_MODEM_SRC=$MODEM_SRC + [ -n "$2" ] || LAST_MODEM_SRC="" + # The count first: with the stage file gone it is all a reboot has left. + tg_recover_ledger_save + # Cleared means cleared across the next reboot, as after a reset. + rm -f "$PERSIST" 2>/dev/null + tg_sync || tg_log \ + "could not flush the removal of $PERSIST, stage 1 may come back after a reboot" warning + tg_notify recover "$msg" +} + +# When the planned recovery happens, empty when none is planned. +tg_recover_at() { # $1 now + [ "$(tg_recover_state "$1")" = planned ] && echo $((COOL_SINCE + RECOVER_MINUTES * 60)) return 0 } @@ -382,19 +940,24 @@ tg_run_hook() { # $1 hook name tg_log "action is set to 'command' but $hook is missing or not executable" warning return 1 fi - timeout -k 5 "$HOOK_TIMEOUT" "$hook" >/dev/null 2>&1 + # Without fd 7: something the hook leaves running would keep the state lock + # held after this process is gone. + tg_timeout "$HOOK_TIMEOUT" "$hook" >/dev/null 2>&1 7>&- } tg_act() { # $1 stage, $2 cpu, $3 modem case "$1" in 0) - if [ "$FAN_MODE" = none ]; then + if tg_fan_hands_off; then tg_notify 0 "stage 0: cpu ${2:-?} C, modem ${3:-?} C, fan left to its own controller. Check the fan." return 0 fi tg_notify 0 "stage 0: cpu ${2:-?} C, modem ${3:-?} C, forcing fan to full speed. Check the fan." [ "$DRY" = 1 ] && return 0 - tg_fan_full || tg_log "could not force the fan (mode $FAN_MODE)" crit + tg_fan_full || { + tg_fan_mode_now + tg_notify 0 "stage 0: could not force the fan (mode $FAN_NOW). Check the fan." + } ;; 1) tg_notify 1 "stage 1: cpu ${2:-?} C, modem ${3:-?} C, running $STAGE1_ACTION." @@ -433,7 +996,7 @@ tg_state_unchanged() { # $1 GEN snapshot, empty skips the check } tg_cycle() { # $1 cpu, $2 modem, $3 now, $4 GEN when the state was loaded - local d s gen="${4:-}" + local d s gen="${4:-}" seen=$CPU_SEEN tg_decide "$1" "$2" "$3" LAST_CPU=$1; LAST_MODEM=$2; LAST_TS=$3 LAST_MODEM_SRC=$MODEM_SRC @@ -455,7 +1018,15 @@ tg_cycle() { # $1 cpu, $2 modem, $3 now, $4 GEN when the state was loaded done ;; cooled) - tg_notify cooled "cooled down: cpu ${1:-?} C, modem ${2:-?} C. Stage $STAGE stays active, clear it with 'thermal-guard reset'." + if tg_recover_applies && ! tg_recover_capped "$3"; then + tg_notify cooled "cooled down: cpu ${1:-?} C, modem ${2:-?} C. Stage $STAGE clears on its own after $RECOVER_MINUTES min of cool readings, at most $RECOVER_MAX times in 24 h." + else + tg_notify cooled "cooled down: cpu ${1:-?} C, modem ${2:-?} C. Stage $STAGE stays active, clear it with 'thermal-guard reset'." + fi + ;; + recover) tg_recover "$1" "$2" "$3" ;; + recover_capped) + tg_notify 1 "stage 1 stays: $RECOVER_N automatic recovery attempts in 24 h. Clear it with 'thermal-guard reset' once the cause is fixed." ;; esac @@ -468,23 +1039,70 @@ tg_cycle() { # $1 cpu, $2 modem, $3 now, $4 GEN when the state was loaded [ "$DRY" = 1 ] && return 0 tg_state_save - # Only stage changes reach the overlay, see tg_state_persist. - case "$DECISION" in stage:*) tg_state_persist ;; esac + # Only stage changes reach the overlay, see tg_state_persist. A blocked + # recovery too, once per stage: the cap it latches has to hold after a reboot. + # A processor turning warm in a stage that is already on too: a reboot must + # not hand the recovery back. + case "$DECISION" in + stage:*) tg_state_persist ;; + recover_capped) tg_state_persist; tg_recover_ledger_save ;; + *) [ "$CPU_SEEN" = "$seen" ] || tg_state_persist ;; + esac tg_status_write } # ---- persistence ----------------------------------------------------------- tg_state_save() { mkdir -p "$STATE_DIR" + # Said once the drop lands in the file: a status call reads and stays quiet. + if [ "$FAN_DISCARDED" = 1 ]; then + FAN_DISCARDED=0 + tg_log "fan takeover record from an earlier boot discarded, its forcing ended with that boot" \ + notice + fi tg_state_write "$STATE" } +# $1 state file, printed without the fan takeover record. +tg_fan_keys_strip() { + sed -e '/^FAN_SAVED_[A-Z]*=/d' -e '/^FAN_T_[A-Z]*=/d' -e '/^FAN_TAKEN=/d' \ + -e '/^FAN_BOOT=/d' -e '/^FAN_UNRESOLVED=/d' "$1" +} + +# The save of a takeover: the file as it was loaded with the fan record put in. +# The stage stays the loaded one, its actions have not run yet; published in +# full at the end of the cycle, so a daemon killed before then decides it again. +# A restore loaded its stage from the overlay, so that copy gets the record. +tg_fan_record_save() { + local f=$STATE t + [ "$RESTORING" = 1 ] && f=$PERSIST + tg_my_pid + t="$f.tmp.$MY_PID" + mkdir -p "${f%/*}" 2>/dev/null + { + tg_fan_keys_strip "$f" 2>/dev/null + printf 'FAN_SAVED_ENABLE=%s\nFAN_SAVED_PWM=%s\nFAN_SAVED_POLICY=%s\n' \ + "$FAN_SAVED_ENABLE" "$FAN_SAVED_PWM" "$FAN_SAVED_POLICY" + printf 'FAN_TAKEN=%s\nFAN_BOOT=%s\nFAN_T_NAME=%s\nFAN_T_DEV=%s\n' \ + "$FAN_TAKEN" "$FAN_BOOT" "$FAN_T_NAME" "$FAN_T_DEV" + printf 'FAN_T_ATTR=%s\nFAN_T_ZONE=%s\nFAN_T_FULL=%s\nFAN_UNRESOLVED=%s\n' \ + "$FAN_T_ATTR" "$FAN_T_ZONE" "$FAN_T_FULL" "$FAN_UNRESOLVED" + } > "$t" 2>/dev/null || { rm -f "$t"; return 1; } + if ! mv "$t" "$f"; then + rm -f "$t" + return 1 + fi + [ "$RESTORING" = 1 ] || return 0 + tg_sync +} + # Mirror to the overlay. Called on stage changes only, so the flash sees a # handful of writes per incident instead of one every interval. tg_state_persist() { - if mkdir -p "$PERSIST_DIR" 2>/dev/null && tg_state_write "$PERSIST" 2>/dev/null; then - # A stage that only sits in the page cache is lost to a power cut. - sync + # A stage that only sits in the page cache is lost to a power cut, so only a + # flush that completed counts. A written file without one is no persist. + if mkdir -p "$PERSIST_DIR" 2>/dev/null && tg_state_write "$PERSIST" 2>/dev/null && + tg_sync; then PERSIST_TOLD=0 return 0 fi @@ -496,8 +1114,12 @@ tg_state_persist() { } # Returns the status of the rename, so a caller knows whether the file landed. +# The temp name is this writer's own, so two writers never mix their lines. tg_state_write() { # $1 target file - cat > "$1.tmp" <<-EOF || return 1 + local t + tg_my_pid + t="$1.tmp.$MY_PID" + cat > "$t" <<-EOF || { rm -f "$t"; return 1; } STAGE=$STAGE T0=$T0 T1=$T1 @@ -509,6 +1131,17 @@ tg_state_write() { # $1 target file PENDING=$PENDING PENDING_N=$PENDING_N COOLED=$COOLED + CAUSE1=$CAUSE1 + ACTION1=$ACTION1 + IFACE1=$IFACE1 + ACTION2=$ACTION2 + IFACE2=$IFACE2 + RESET_FAILED=$RESET_FAILED + COOL_SINCE=$COOL_SINCE + RECOVER_WIN=$RECOVER_WIN + RECOVER_N=$RECOVER_N + RECOVER_TOLD=$RECOVER_TOLD + CPU_SEEN=$CPU_SEEN LAST_CPU=$LAST_CPU LAST_MODEM=$LAST_MODEM LAST_MODEM_SRC=$LAST_MODEM_SRC @@ -516,9 +1149,19 @@ tg_state_write() { # $1 target file FAN_SAVED_ENABLE=$FAN_SAVED_ENABLE FAN_SAVED_PWM=$FAN_SAVED_PWM FAN_SAVED_POLICY=$FAN_SAVED_POLICY + FAN_TAKEN=$FAN_TAKEN + FAN_BOOT=$FAN_BOOT + FAN_T_NAME=$FAN_T_NAME + FAN_T_DEV=$FAN_T_DEV + FAN_T_ATTR=$FAN_T_ATTR + FAN_T_ZONE=$FAN_T_ZONE + FAN_T_FULL=$FAN_T_FULL + FAN_UNRESOLVED=$FAN_UNRESOLVED GEN=$GEN EOF - mv "$1.tmp" "$1" + mv "$t" "$1" && return 0 + rm -f "$t" + return 1 } # Only known keys with integer or empty values, the file is also written by "reset". @@ -528,24 +1171,164 @@ tg_state_load() { } tg_state_read() { # $1 source file + local if1=0 if2=0 seen=0 fan_bad=0 + FAN_DISCARDED=0 [ -r "$1" ] || return 0 while IFS='=' read -r k v; do case "$k" in - STAGE|T0|T1|T2|REF_CPU0|REF_MODEM0|REF_CPU1|REF_MODEM1|PENDING|PENDING_N|COOLED|LAST_TS|GEN) - [ -n "$(tg_int "$v")" ] && eval "$k=\$v" ;; + STAGE|T0|T1|T2|REF_CPU0|REF_MODEM0|REF_CPU1|REF_MODEM1|PENDING|PENDING_N|COOLED|LAST_TS|GEN|\ + COOL_SINCE|RECOVER_WIN|RECOVER_N|RECOVER_TOLD) + v=$(tg_int "$v") + [ -n "$v" ] && eval "$k=\$v" ;; + CAUSE1) + case "$v" in modem|cpu) CAUSE1=$v ;; *) CAUSE1="" ;; esac ;; + ACTION1|ACTION2) + eval "$k=\$(tg_action_name \"\$v\")" ;; + IFACE1|IFACE2) + case "$k" in IFACE1) if1=1 ;; *) if2=1 ;; esac + if tg_iface_name_ok "$v"; then eval "$k=\$v"; else eval "$k="; fi ;; + RESET_FAILED) + case "$v" in ''|*[!a-z_,]*) RESET_FAILED="" ;; *) RESET_FAILED=$v ;; esac ;; + # Anything but 0 counts as seen: no automatic undo is the safe side. + CPU_SEEN) + seen=1 + case "$v" in 0) CPU_SEEN=0 ;; *) CPU_SEEN=1 ;; esac ;; LAST_CPU|LAST_MODEM|FAN_SAVED_ENABLE|FAN_SAVED_PWM) eval "$k=\$(tg_int \"\$v\")" ;; LAST_MODEM_SRC) case "$v" in file|command|at|test) LAST_MODEM_SRC=$v ;; *) LAST_MODEM_SRC="" ;; esac ;; - # Governor names, not free text: this value is written back to sysfs. - FAN_SAVED_POLICY) - case "$v" in - step_wise|fair_share|bang_bang|user_space|power_allocator) - FAN_SAVED_POLICY=$v ;; - *) FAN_SAVED_POLICY="" ;; - esac ;; + FAN_SAVED_POLICY) FAN_SAVED_POLICY=$(tg_fan_policy_name "$v") ;; + # The fan takeover record. A part that fails its check is not taken + # and makes the record unresolved; anything but 0 marks it so too. + FAN_TAKEN) + case "$v" in pwm|cooling_device|'') FAN_TAKEN=$v ;; *) fan_bad=1 ;; esac ;; + FAN_BOOT) + if [ -z "$v" ] || tg_boot_ok "$v"; then FAN_BOOT=$v; else fan_bad=1; fi ;; + FAN_T_NAME|FAN_T_ZONE) + if [ -z "$v" ] || tg_name_ok "$v"; then eval "$k=\$v"; else fan_bad=1; fi ;; + FAN_T_DEV) + if tg_fan_dev_ok "$v"; then FAN_T_DEV=$v; else fan_bad=1; fi ;; + FAN_T_ATTR) + if [ -z "$v" ] || tg_fan_attr_ok "$v"; then FAN_T_ATTR=$v; else fan_bad=1; fi ;; + FAN_T_FULL) + [ -z "$v" ] || v=$(tg_int "$v") + if [ -z "$v" ] || tg_fan_full_ok "$v"; then FAN_T_FULL=$v; else fan_bad=1; fi ;; + FAN_UNRESOLVED) + case "$v" in 0|'') ;; *) FAN_UNRESOLVED=1 ;; esac ;; esac done < "$1" + tg_fan_record_settle "$fan_bad" + # 2.1.0.0 wrote no IFACE keys, its interface_down took the configured interface + # down. A key that is there but empty means nothing went down. + [ "$ACTION1" = interface_down ] && [ "$if1" = 0 ] && IFACE1=$(tg_action_iface interface_down) + [ "$ACTION2" = interface_down ] && [ "$if2" = 0 ] && IFACE2=$(tg_action_iface interface_down) + # Nor CPU_SEEN: with no record of the processor, a stage gets no automatic undo. + [ "$STAGE" -ge 0 ] && [ "$seen" = 0 ] && CPU_SEEN=1 + return 0 +} + +# A fan record of another boot describes forcing that ended with it, and goes. +# Only a valid boot id proves that: a missing working state does not. A record +# that cannot name its fan (a part failed its check, no boot id, or saved values +# from an older version without any identity) is unresolved, kept and never +# written from. Nothing saved at all is no record, as in 2.0.0. +tg_fan_record_settle() { # $1 1 when a part failed its check + local boot + [ "$1" = 1 ] && FAN_UNRESOLVED=1 + [ -n "$FAN_TAKEN$FAN_BOOT$FAN_T_NAME$FAN_T_DEV$FAN_T_ATTR$FAN_T_ZONE$FAN_T_FULL" ] || + [ -n "$FAN_SAVED_ENABLE$FAN_SAVED_PWM$FAN_SAVED_POLICY" ] || + [ "$FAN_UNRESOLVED" = 1 ] || return 0 + boot=$(tg_boot_id) + if [ -n "$FAN_BOOT" ] && [ -n "$boot" ] && [ "$FAN_BOOT" != "$boot" ]; then + tg_fan_record_drop + FAN_DISCARDED=1 + return 0 + fi + tg_fan_recorded || FAN_UNRESOLVED=1 + return 0 +} + +# The automatic recovery count outlives a reboot on its own: a recovery removes the +# stage file, and a count that restarts at zero would hand the cap back. Written +# on an attempt or the cap only, never on a timer, and only when it changed. +tg_recover_ledger_save() { + local f="$PERSIST_DIR/recover" body t + body=$(printf 'RECOVER_WIN=%s\nRECOVER_N=%s\nRECOVER_TOLD=%s' \ + "$RECOVER_WIN" "$RECOVER_N" "$RECOVER_TOLD") + # A file whose flush failed holds the right values but is not saved yet. + [ "$LEDGER_UNFLUSHED" = 0 ] && [ "$(cat "$f" 2>/dev/null)" = "$body" ] && return 0 + # Only the daemon writes it (reset removes it). The own PID keeps the temp + # name unique anyway, as for the other writers. + tg_my_pid; t="$f.$MY_PID" + # Saved only once the flush completed, as for the stage file. + if mkdir -p "$PERSIST_DIR" 2>/dev/null && printf '%s\n' "$body" > "$t" 2>/dev/null && + mv "$t" "$f" 2>/dev/null; then + LEDGER_UNFLUSHED=1 + if tg_sync; then + LEDGER_UNFLUSHED=0; LEDGER_TOLD=0 + return 0 + fi + fi + rm -f "$t" 2>/dev/null + if [ "$LEDGER_TOLD" = 0 ]; then + tg_log "could not save the recovery count to $f, it will not survive a reboot" crit + [ "$DAEMON" = 1 ] && LEDGER_TOLD=1 + fi + return 1 +} + +# Only what the ledger holds overrides the stage file. A missing, partial or +# damaged one keeps the stage file's count rather than handing recoveries back. +tg_recover_ledger_load() { + local k v + [ -r "$PERSIST_DIR/recover" ] || return 0 + while IFS='=' read -r k v; do + case "$k" in + RECOVER_WIN|RECOVER_N|RECOVER_TOLD) + v=$(tg_int "$v") + [ -n "$v" ] && eval "$k=\$v" ;; + esac + done < "$PERSIST_DIR/recover" +} + +# The model the daemon found, for the one shot commands: status and test have +# to judge with the same limits and must not talk to the modem themselves. +tg_model_save() { + mkdir -p "$STATE_DIR" + printf '%s\n' "$MODEM_MODEL" > "$STATE_DIR/modem-model.tmp" || return 0 + chmod 644 "$STATE_DIR/modem-model.tmp" 2>/dev/null + mv "$STATE_DIR/modem-model.tmp" "$STATE_DIR/modem-model" +} + +tg_model_load() { + [ -n "$MODEM_MODEL" ] && return 0 + MODEM_MODEL=$(tg_name "$(head -n1 "$STATE_DIR/modem-model" 2>/dev/null)") + return 0 +} + +# What writers killed between write and rename left behind: unique names are +# never written again, so they would pile up, on the overlay too. recover.* are +# the recovery count's, the count itself is recover. A trim of the event log +# that loses its temp file here just happens again with the next line. The +# reset request record cleans up after itself once admission is let go. A curl +# config holds the notification secret: a killed poster's goes, a live one may +# be a detached reset posting right now. +tg_tmp_cleanup() { + rm -f "$STATE".tmp.* "$PERSIST".tmp.* "$STATUS_FILE".tmp "$STATUS_FILE".tmp.* \ + "$PERSIST_DIR"/recover.* "$EVLOG".tmp "$EVLOG".tmp.* 2>/dev/null + tg_rm_gone "$STATE_DIR"/notify.conf.* +} + +# Removes each file in $@ whose writer, the pid after the last dot, is gone. +tg_rm_gone() { + local f p + for f in "$@"; do + [ -e "$f" ] || continue + p=${f##*.} + case "$p" in ''|*[!0-9]*) continue ;; esac + [ -d "/proc/$p" ] || rm -f "$f" 2>/dev/null + done + return 0 } # After a reboot /var/run is empty while the overlay may still hold a stage. The @@ -554,29 +1337,35 @@ tg_state_read() { # $1 source file # would consider itself fully escalated and stop reacting, while nothing is # actually in force. tg_state_restore() { - local s what failed="" msg + local s what failed="" msg next [ -r "$STATE" ] && return 0 [ -r "$PERSIST" ] || return 0 tg_state_clear tg_state_read "$PERSIST" [ "$STAGE" -ge 0 ] || return 0 + # Before the message: the ledger may know a cap the stage file does not. + tg_recover_ledger_load # Reapplying can take over a minute (Wi-Fi retries). Should the daemon die # in between, the event log and the history of reset show it had begun. tg_log "restoring stage $STAGE after a reboot" notice + # A takeover in here saves to the overlay: a working state written now would + # mark the restore done before its stage actions are back. + RESTORING=1 s=0 while [ "$s" -le "$STAGE" ]; do if ! tg_reapply "$s"; then case "$s" in 0) what="forcing the fan" ;; - 1) what="stage 1 action '$STAGE1_ACTION'" ;; - *) what="stage 2 action '$STAGE2_ACTION'" ;; + 1) what="stage 1 action '${ACTION1:-$STAGE1_ACTION}'" ;; + *) what="stage 2 action '${ACTION2:-$STAGE2_ACTION}'" ;; esac failed="$failed${failed:+, }$what" fi s=$((s + 1)) done + RESTORING=0 # One message, after the actions, so it can say which of them failed. if [ -n "$failed" ]; then msg="restored stage $STAGE after a reboot, but reapplying failed for: $failed." @@ -584,10 +1373,30 @@ tg_state_restore() { else msg="restored stage $STAGE after a reboot and reapplied its actions." fi - tg_notify "$STAGE" "$msg Clear it with 'thermal-guard reset' once the cause is fixed." + next="Clear it with 'thermal-guard reset' once the cause is fixed." + if tg_recover_applies && ! tg_recover_capped "$(date +%s)"; then + next="Stage 1 clears on its own after $RECOVER_MINUTES min of cool readings," + next="$next at most $RECOVER_MAX times in 24 h." + fi + tg_notify "$STAGE" "$msg $next" tg_state_save } +# The daemon's first look at the state, under the lock. +tg_state_start() { + # Every caller holds the lock, so no other writer is in the middle of one. + tg_tmp_cleanup + tg_state_restore + tg_state_load + # The ledger is written on every attempt, the stage file only on a stage change, + # so where both exist the ledger is at least as fresh and wins. Without one + # (before this file existed) the count in the stage file stays. + if [ -r "$PERSIST_DIR/recover" ]; then + tg_recover_ledger_load + tg_state_save + fi +} + # The effects of a stage without its announcement, for the reboot path where one # message covers the whole restore. # $1 stage. A failure is logged as crit and returns 1, so the restore can @@ -595,17 +1404,18 @@ tg_state_restore() { tg_reapply() { case "$1" in 0) - [ "$FAN_MODE" = none ] && return 0 + tg_fan_hands_off && return 0 tg_fan_full && return 0 - tg_log "could not force the fan (mode $FAN_MODE)" crit + tg_fan_mode_now + tg_log "could not force the fan (mode $FAN_NOW)" crit ;; 1) - tg_run_action "$STAGE1_ACTION" stage1 && return 0 - tg_log "stage 1 action '$STAGE1_ACTION' failed after the reboot" crit + tg_run_recorded "$ACTION1" "$IFACE1" "$STAGE1_ACTION" stage1 && return 0 + tg_log "stage 1 action '${ACTION1:-$STAGE1_ACTION}' failed after the reboot" crit ;; 2) - tg_run_action "$STAGE2_ACTION" stage2 && return 0 - tg_log "stage 2 action '$STAGE2_ACTION' failed after the reboot" crit + tg_run_recorded "$ACTION2" "$IFACE2" "$STAGE2_ACTION" stage2 && return 0 + tg_log "stage 2 action '${ACTION2:-$STAGE2_ACTION}' failed after the reboot" crit ;; *) return 0 ;; esac @@ -614,10 +1424,16 @@ tg_reapply() { # Machine readable snapshot for the LuCI page, so the UI never talks to the modem. tg_status_write() { - cat > "$STATUS_FILE.tmp" <<-EOF + local now t + tg_my_pid + t="$STATUS_FILE.tmp.$MY_PID" + now=$(date +%s) + tg_reset_view + tg_fan_view_now + cat > "$t" <<-EOF version=$THERMAL_GUARD_VERSION ts=$LAST_TS - now=$(date +%s) + now=$now interval=$INTERVAL enabled=$ENABLED stage=$STAGE @@ -632,12 +1448,18 @@ tg_status_write() { cpu_emergency=$CPU_EMERGENCY modem_warn=$MODEM_WARN modem_crit=$MODEM_CRIT + modem_model=$MODEM_MODEL + modem_profile=$PROFILE_MATCH + modem_profile_warn=$PROFILE_WARN + modem_profile_crit=$PROFILE_CRIT + modem_warn_src=$MODEM_WARN_SRC + modem_crit_src=$MODEM_CRIT_SRC fan_mode=$FAN_MODE - fan_view=$FAN_VIEW - fan_state=$(tg_fan_state) - fan_max=$(tg_fan_max) - fan_percent=$(tg_fan_percent) + $(tg_fan_status) + fan_taken=$FAN_TAKEN + fan_unresolved=$FAN_UNRESOLVED fan_foreign=$FAN_FOREIGN + fan_restore_pending=$(tg_fan_restore_pending && echo 1 || echo 0) fan_rpm=$(tg_fan_rpm) stage1_action=$STAGE1_ACTION stage2_action=$STAGE2_ACTION @@ -655,13 +1477,39 @@ tg_status_write() { t0=$T0 t1=$T1 t2=$T2 + cause1=$CAUSE1 + cpu_seen=$CPU_SEEN + auto_recover=$AUTO_RECOVER + recover_minutes=$RECOVER_MINUTES + recover_max=$RECOVER_MAX + recover_n=$RECOVER_N + recover_at=$(tg_recover_at "$now") + recover_state=$(tg_recover_state "$now") + reset_failed=$RESET_FAILED + reset_state=$RESET_STATE + reset_req_failed=$RESET_REC_FAILED + reset_ts=$RESET_TS + reset_boot=$RESET_BOOT + boot_id=$(tg_boot_id) + reset_id=$RESET_ID + reset_gen=$RESET_GEN + reset_kind=$RESET_KIND + reset_prev_id=$RESET_PREV_ID + reset_prev_gen=$RESET_PREV_GEN + reset_prev_state=$RESET_PREV_STATE + reset_prev_failed=$RESET_PREV_FAILED + reset_prev_ts=$RESET_PREV_TS EOF - # One line per extra sensor, prefixed so the UI can pick them out. - tg_read_extra_sensors | while IFS='=' read -r n v; do - printf 'sensor.%s=%s\n' "$n" "$v" - done >> "$STATUS_FILE.tmp" - chmod 644 "$STATUS_FILE.tmp" 2>/dev/null - mv "$STATUS_FILE.tmp" "$STATUS_FILE" + # One line per extra sensor, prefixed so the UI can pick them out. Both sides + # of the pipe wait for the reads, so neither may keep the state lock. + ( + exec 7>&- + tg_read_extra_sensors | while IFS='=' read -r n v; do + printf 'sensor.%s=%s\n' "$n" "$v" + done + ) >> "$t" + chmod 644 "$t" 2>/dev/null + mv "$t" "$STATUS_FILE" || rm -f "$t" } # ---- configuration --------------------------------------------------------- @@ -669,9 +1517,15 @@ tg_status_write() { # tg_cfg_defaults set just before. config_get needs its fourth argument, the # original expands it for a missing option and set -u would end the daemon. tg_cfg_int() { - local v="" + local v="" mag="" config_get v main "$1" "" - [ -n "$(tg_int "$v")" ] && eval "$2=\$v" + v=$(tg_int "$v") + [ -n "$v" ] || return 0 + # Over six digits is out of range for every option. Capped, the range checks + # reject it; raw, test(1) would error out and let it through. + mag=${v#-} + [ "${#mag}" -le 6 ] || v=${v%"$mag"}999999 + eval "$2=\$v" return 0 } @@ -715,6 +1569,7 @@ tg_cfg_validate_paths() { # either way, so a run without uci behaves like one with an empty config. tg_cfg() { tg_cfg_from_uci + tg_cfg_thresholds tg_cfg_validate_paths tg_cpu_detect tg_cfg_check_wifi @@ -731,7 +1586,7 @@ tg_cfg_check_wifi() { *) WIFI_CHECKED=0; return 0 ;; esac [ "$WIFI_CHECKED" = 1 ] && return 0 - state=$(tg_wifi_radios) + state=$(exec 7>&-; tg_wifi_radios) [ -n "$state" ] || return 0 WIFI_CHECKED=1 [ "${state%% *}" -eq 0 ] && @@ -739,6 +1594,145 @@ tg_cfg_check_wifi() { return 0 } +# One line of the modem table: 0 valid, 1 comment or empty, 2 invalid. The +# pattern only allows * and ? as glob characters, so the unquoted match in +# tg_profile_lookup cannot be turned into anything else. +tg_profile_line() { # $1 pattern, $2 warn, $3 crit, $4 source + case "$1" in + ''|\#*) return 1 ;; + *[!A-Za-z0-9._*?-]*) return 2 ;; + esac + [ -n "$(tg_int "$2")" ] && [ -n "$(tg_int "$3")" ] && [ -n "$4" ] || return 2 + [ "$2" -ge 40 ] && [ "$3" -le 120 ] && [ "$2" -lt "$3" ] || return 2 + return 0 +} + +# "pattern warn crit" of the first valid line matching the model, nothing +# without a match. Case does not matter, modems are not consistent about it. +tg_profile_lookup() { # $1 model + local model pat warn crit src pat_up + [ -n "$1" ] && [ -r "$MODEM_TABLE" ] || return 0 + # BusyBox tr has no [:lower:] classes, so the alphabet is spelled out. + model=$(printf '%s' "$1" | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') + while read -r pat warn crit src; do + # Plain decimals out, the limits go into arithmetic. + warn=$(tg_int "$warn"); crit=$(tg_int "$crit") + tg_profile_line "$pat" "$warn" "$crit" "$src" || continue + pat_up=$(printf '%s' "$pat" | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ') + # shellcheck disable=SC2254 # globs on purpose, tg_profile_line allows * and ? only + case "$model" in + $pat_up) echo "$pat $warn $crit"; return 0 ;; + esac + done < "$MODEM_TABLE" + return 0 +} + +# Numbers of the lines tg_profile_lookup skips as invalid, one per line. +tg_profile_check() { + local n=0 pat warn crit src rc + [ -r "$MODEM_TABLE" ] || return 0 + while read -r pat warn crit src; do + n=$((n + 1)) + rc=0 + tg_profile_line "$pat" "$warn" "$crit" "$src" || rc=$? + [ "$rc" = 2 ] && echo "$n" + done < "$MODEM_TABLE" + return 0 +} + +# The profile of MODEM_MODEL, looked up once per model. Read through a here +# document, not set --, because the pattern would glob against the current +# directory there. +tg_profile_resolve() { + local r + [ "$PROFILE_MODEL" = "$MODEM_MODEL" ] && return 0 + PROFILE_MODEL=$MODEM_MODEL; PROFILE_MATCH=""; PROFILE_WARN=""; PROFILE_CRIT="" + r=$(tg_profile_lookup "$MODEM_MODEL") + [ -n "$r" ] || return 0 + read -r PROFILE_MATCH PROFILE_WARN PROFILE_CRIT <<-EOF + $r + EOF +} + +# Modem limits from three places, later ones winning option by option: the +# built in pair, the profile of the detected modem, UCI. Thresholds out of +# order would silently disable the guard: a modem pair falls back to the +# profile, or to the built in pair without one, and the CPU triple is judged +# on its own, so a typo in one cannot reset the other. +tg_cfg_thresholds() { + local cw=$CPU_WARN cc=$CPU_CRIT ce=$CPU_EMERGENCY mw mc bad src + tg_model_load + tg_profile_resolve + MODEM_WARN_SRC=default; MODEM_CRIT_SRC=default + if [ -n "$PROFILE_MATCH" ]; then + MODEM_WARN=$PROFILE_WARN; MODEM_CRIT=$PROFILE_CRIT + MODEM_WARN_SRC=profile; MODEM_CRIT_SRC=profile + fi + [ -n "$UCI_MODEM_WARN" ] && { MODEM_WARN=$UCI_MODEM_WARN; MODEM_WARN_SRC=uci; } + [ -n "$UCI_MODEM_CRIT" ] && { MODEM_CRIT=$UCI_MODEM_CRIT; MODEM_CRIT_SRC=uci; } + + bad="" + if [ "$MODEM_WARN" -ge "$MODEM_CRIT" ]; then + bad="$MODEM_WARN/$MODEM_CRIT" + if [ -n "$PROFILE_MATCH" ]; then + MODEM_WARN=$PROFILE_WARN; MODEM_CRIT=$PROFILE_CRIT; src=profile + else + tg_cfg_default_thresholds + CPU_WARN=$cw; CPU_CRIT=$cc; CPU_EMERGENCY=$ce; src=default + fi + MODEM_WARN_SRC=$src; MODEM_CRIT_SRC=$src + [ "$MODEM_THR_TOLD" = "$bad" ] || tg_cfg_log \ + "implausible modem thresholds ($bad), using the $src values $MODEM_WARN/$MODEM_CRIT" + fi + [ "$DAEMON" = 1 ] && MODEM_THR_TOLD=$bad + + bad="" + if [ "$CPU_WARN" -ge "$CPU_CRIT" ] || [ "$CPU_CRIT" -ge "$CPU_EMERGENCY" ]; then + bad="$CPU_WARN/$CPU_CRIT/$CPU_EMERGENCY" + mw=$MODEM_WARN; mc=$MODEM_CRIT + tg_cfg_default_thresholds + MODEM_WARN=$mw; MODEM_CRIT=$mc + [ "$CPU_THR_TOLD" = "$bad" ] || tg_cfg_log \ + "implausible cpu thresholds ($bad), using the built in values $CPU_WARN/$CPU_CRIT/$CPU_EMERGENCY" + fi + [ "$DAEMON" = 1 ] && CPU_THR_TOLD=$bad + return 0 +} + +# Daemon only, in cycles with a modem reading: without one there is no modem +# to ask. Three misses and it stops asking until the next start. +tg_model_detect() { + local m + [ -z "$MODEM_MODEL" ] && [ "$MODEL_TRIES" -lt 3 ] || return 0 + m=$(tg_modem_model) + if [ -z "$m" ]; then + MODEL_TRIES=$((MODEL_TRIES + 1)) + [ "$MODEL_TRIES" -lt 3 ] || tg_log \ + "modem model not detected after 3 attempts, using the configured or built in limits" warning + return 0 + fi + MODEM_MODEL=$m + tg_model_save + tg_cfg_thresholds + if [ -n "$PROFILE_MATCH" ]; then + tg_log "modem $MODEM_MODEL, profile $PROFILE_MATCH (warn $PROFILE_WARN, crit $PROFILE_CRIT)" + else + tg_log "modem $MODEM_MODEL, no profile in $MODEM_TABLE, using the configured or built in limits" + fi +} + +# Once at start: a missing table or a broken line explains a missing profile. +tg_profile_report() { + local n + if [ ! -r "$MODEM_TABLE" ]; then + tg_log "no modem table at $MODEM_TABLE, using the configured or built in limits" warning + return 0 + fi + for n in $(tg_profile_check); do + tg_log "modem table line $n is invalid and skipped" warning + done +} + tg_cfg_from_uci() { local v tg_cfg_defaults @@ -763,10 +1757,13 @@ tg_cfg_from_uci() { tg_cfg_int cpu_warn CPU_WARN tg_cfg_int cpu_crit CPU_CRIT tg_cfg_int cpu_emergency CPU_EMERGENCY - tg_cfg_int modem_warn MODEM_WARN - tg_cfg_int modem_crit MODEM_CRIT + tg_cfg_int modem_warn UCI_MODEM_WARN + tg_cfg_int modem_crit UCI_MODEM_CRIT tg_cfg_int hold_minutes HOLD_MINUTES tg_cfg_int hysteresis HYSTERESIS + tg_cfg_int auto_recover AUTO_RECOVER + tg_cfg_int recover_minutes RECOVER_MINUTES + tg_cfg_int recover_max RECOVER_MAX tg_cfg_int pwm_full PWM_FULL tg_cfg_int pwm_idle PWM_IDLE tg_cfg_str cpu_temp_path CPU_TEMP_PATH @@ -791,18 +1788,12 @@ tg_cfg_from_uci() { tg_cfg_str trip_boost TRIP_BOOST tg_cfg_str trip_active TRIP_ACTIVE tg_cfg_str trip_boost_offset TRIP_BOOST_OFFSET + tg_cfg_validate_enums tg_cfg_validate_trips tg_cfg_validate_governor - - # Thresholds out of order would silently disable the guard, so fall back to defaults. - if [ "$CPU_WARN" -ge "$CPU_CRIT" ] || [ "$CPU_CRIT" -ge "$CPU_EMERGENCY" ] || - [ "$MODEM_WARN" -ge "$MODEM_CRIT" ]; then - tg_cfg_log "implausible thresholds (cpu $CPU_WARN/$CPU_CRIT/$CPU_EMERGENCY, modem $MODEM_WARN/$MODEM_CRIT), using defaults" - tg_cfg_default_thresholds - fi - [ "$INTERVAL" -ge 5 ] || INTERVAL=5 tg_cfg_validate_actions tg_cfg_validate_notify + tg_cfg_validate_recover } # Checked when the configuration loads, not when a message goes out: a rejected @@ -878,18 +1869,86 @@ tg_cfg_validate_governor() { return 0 } +# One rejection, said once per option and value until it clears. $1 option, +# $2 rejected value, $3 what is used instead. +tg_cfg_enum_reject() { + ENUM_NOW="$ENUM_NOW$1=$2 " + case " $ENUM_TOLD " in + *" $1=$2 "*) return 0 ;; + esac + tg_cfg_log "rejecting $1 '$2', using $3" +} + +# A word or a number off its list or range falls back to the default, so a +# typo cannot switch off the fan mode check or the time based escalation. +tg_cfg_validate_enums() { + ENUM_NOW="" + case "$FAN_MODE" in + none|cooling_device|pwm|auto) ;; + *) tg_cfg_enum_reject fan_mode "$FAN_MODE" none; FAN_MODE=none ;; + esac + case "$MODEM_SOURCE" in + auto|quectel|fibocom|file|command|none) ;; + *) tg_cfg_enum_reject modem_source "$MODEM_SOURCE" auto; MODEM_SOURCE=auto ;; + esac + case "$STAGE1_ACTION" in + modem_radio_off|wifi_off|interface_down|command|none) ;; + *) + tg_cfg_enum_reject stage1_action "$STAGE1_ACTION" modem_radio_off + STAGE1_ACTION=modem_radio_off + ;; + esac + case "$STAGE2_ACTION" in + modem_radio_off|wifi_off|interface_down|command|none) ;; + *) + tg_cfg_enum_reject stage2_action "$STAGE2_ACTION" wifi_off + STAGE2_ACTION=wifi_off + ;; + esac + if [ "$HOLD_MINUTES" -lt 1 ] || [ "$HOLD_MINUTES" -gt 60 ]; then + tg_cfg_enum_reject hold_minutes "$HOLD_MINUTES" 3 + HOLD_MINUTES=3 + fi + if [ "$HYSTERESIS" -lt 0 ] || [ "$HYSTERESIS" -gt 40 ]; then + tg_cfg_enum_reject hysteresis "$HYSTERESIS" 10 + HYSTERESIS=10 + fi + # A huge interval would leave the box unwatched for all practical purposes. + if [ "$INTERVAL" -lt 5 ]; then + tg_cfg_enum_reject interval "$INTERVAL" 5 + INTERVAL=5 + elif [ "$INTERVAL" -gt 300 ]; then + tg_cfg_enum_reject interval "$INTERVAL" 300 + INTERVAL=300 + fi + [ "$DAEMON" = 1 ] && ENUM_TOLD=$ENUM_NOW + return 0 +} + tg_cfg_validate_trips() { + local off="" v="" list="" case "${TRIP_BOOST:-off}" in off|modem) TRIP_BOOST=${TRIP_BOOST:-off} ;; *) tg_cfg_log "rejecting trip_boost '$TRIP_BOOST', using off"; TRIP_BOOST=off ;; esac + # Two digits at most: a longer number is out of range and would trip test(1). + off=$(tg_int "$TRIP_BOOST_OFFSET") if [ -z "$TRIP_BOOST_OFFSET" ]; then TRIP_BOOST_OFFSET=15 - elif [ -z "$(tg_int "$TRIP_BOOST_OFFSET")" ] || [ "$TRIP_BOOST_OFFSET" -lt 0 ] || - [ "$TRIP_BOOST_OFFSET" -gt 40 ]; then + elif [ -z "$off" ] || [ "${#off}" -gt 2 ] || [ "$off" -lt 0 ] || [ "$off" -gt 40 ]; then tg_cfg_log "rejecting trip_boost_offset '$TRIP_BOOST_OFFSET', using 15" TRIP_BOOST_OFFSET=15 + else + TRIP_BOOST_OFFSET=$off fi + # Plain decimals for the trip arithmetic. A list with anything else stays as + # written: tg_trip_valid rejects it and the log shows what was set. + for v in $TRIP_ACTIVE; do + v=$(tg_int "$v") + [ -n "$v" ] || return 0 + list="$list${list:+ }$v" + done + TRIP_ACTIVE=$list } tg_cfg_validate_actions() { @@ -910,6 +1969,25 @@ tg_cfg_validate_actions() { fi } +# Out of range means the default, said once per rejected set of values. +tg_cfg_validate_recover() { + local bad="" + case "$AUTO_RECOVER" in + 0|1) ;; + *) bad="auto_recover '$AUTO_RECOVER'"; AUTO_RECOVER=0 ;; + esac + if [ "$RECOVER_MINUTES" -lt 5 ] || [ "$RECOVER_MINUTES" -gt 120 ]; then + bad="$bad${bad:+, }recover_minutes '$RECOVER_MINUTES'"; RECOVER_MINUTES=10 + fi + if [ "$RECOVER_MAX" -lt 1 ] || [ "$RECOVER_MAX" -gt 10 ]; then + bad="$bad${bad:+, }recover_max '$RECOVER_MAX'"; RECOVER_MAX=3 + fi + [ "$RECOVER_CFG_TOLD" = "$bad" ] || [ -z "$bad" ] || + tg_cfg_log "rejecting $bad, using the default" + [ "$DAEMON" = 1 ] && RECOVER_CFG_TOLD=$bad + return 0 +} + # The default path fits mediatek and most ARM targets but not ramips or x86, # where the SoC sensor is a hwmon node. Rather than run blind on a board nobody # configured by hand, look for a working sensor and say which one we took. @@ -937,18 +2015,281 @@ tg_cpu_detect() { fi } +# ---- reset requests -------------------------------------------------------- +# The record ($STATE_DIR/reset) holds the current request and the one before +# it in this boot, so a page polling every few seconds still finds a result one +# later request replaced. A request is -; +# the generation counts requests per boot in reset.gen. Only admission writes +# both files, the status writers read them without it: a whole file per rename. + +# A positive decimal that shell arithmetic still holds, empty for anything else. +tg_reset_num() { # $1 value + local v + v=$(tg_int "$1") + case "$v" in ''|-*|0|???????????????????*) echo "" ;; *) echo "$v" ;; esac +} + +tg_reset_id_ok() { # $1 request id + local n=${1%%-*} p=${1#*-} + [ "$n" != "$1" ] && [ -n "$n" ] && [ -n "$p" ] && + [ "$(tg_reset_num "$n")" = "$n" ] && [ "$(tg_reset_num "$p")" = "$p" ] +} + +tg_reset_read() { + local k v + RESET_BOOT=""; RESET_ID=""; RESET_GEN=""; RESET_STATE=""; RESET_TS=""; RESET_KIND="" + RESET_REC_FAILED=""; RESET_RPID=""; RESET_RSTART=""; RESET_WPID=""; RESET_WSTART="" + RESET_PREV_ID=""; RESET_PREV_GEN=""; RESET_PREV_STATE=""; RESET_PREV_FAILED="" + RESET_PREV_TS="" + [ -r "$STATE_DIR/reset" ] || return 0 + while IFS='=' read -r k v; do + case "$k" in + reset_boot) tg_boot_ok "$v" && RESET_BOOT=$v ;; + reset_id) tg_reset_id_ok "$v" && RESET_ID=$v ;; + reset_prev_id) tg_reset_id_ok "$v" && RESET_PREV_ID=$v ;; + reset_state) RESET_STATE=$(tg_reset_state_ok "$v") ;; + reset_prev_state) RESET_PREV_STATE=$(tg_reset_state_ok "$v") ;; + reset_failed) RESET_REC_FAILED=$(tg_reset_list_ok "$v") ;; + reset_prev_failed) RESET_PREV_FAILED=$(tg_reset_list_ok "$v") ;; + reset_kind) case "$v" in cli|page) RESET_KIND=$v ;; esac ;; + reset_gen) RESET_GEN=$(tg_reset_num "$v") ;; + reset_prev_gen) RESET_PREV_GEN=$(tg_reset_num "$v") ;; + reset_ts) RESET_TS=$(tg_int "$v") ;; + reset_prev_ts) RESET_PREV_TS=$(tg_int "$v") ;; + reset_rpid) RESET_RPID=$(tg_reset_num "$v") ;; + reset_rstart) RESET_RSTART=$(tg_int "$v") ;; + reset_wpid) RESET_WPID=$(tg_reset_num "$v") ;; + reset_wstart) RESET_WSTART=$(tg_int "$v") ;; + esac + done < "$STATE_DIR/reset" +} + +tg_reset_state_ok() { # $1 state + case "$1" in starting|running|done|failed|busy|aborted) echo "$1" ;; *) echo "" ;; esac +} + +# Lowercase names and commas, as in RESET_FAILED. +tg_reset_list_ok() { # $1 list + case "$1" in *[!a-z_,]*) echo "" ;; *) echo "$1" ;; esac +} + +# A starting or running request lives while its worker does or, before one is +# recorded, while the process that reserved it does. +tg_reset_alive() { + case "$RESET_STATE" in starting|running) ;; *) return 1 ;; esac + if [ -n "$RESET_WPID" ]; then + tg_proc_is "$RESET_WPID" "$RESET_WSTART" + else + tg_proc_is "$RESET_RPID" "$RESET_RSTART" + fi +} + +# Outside admission, on the record just read: 0 when its request is starting or +# running and its process is gone without a result. A worker renames its result +# into place before it exits, so a dead process counts only if the record read +# after the liveness test still shows that same request unfinished. RESET_* +# holds the last read. +tg_reset_ended() { + local i=0 seen + while [ "$i" -lt 3 ]; do + case "$RESET_STATE" in starting|running) ;; *) return 1 ;; esac + tg_reset_alive && return 1 + seen="$RESET_BOOT/$RESET_ID/$RESET_STATE/$RESET_RPID/$RESET_WPID/$RESET_WSTART" + tg_reset_read + [ "$RESET_BOOT/$RESET_ID/$RESET_STATE/$RESET_RPID/$RESET_WPID/$RESET_WSTART" = \ + "$seen" ] && return 0 + i=$((i + 1)) + done + return 1 +} + +# The record as published: a request whose process is gone ended without a +# result, whether or not a later start has said so in the record yet. +tg_reset_view() { + tg_reset_read + tg_reset_ended && RESET_STATE=aborted + return 0 +} + +# Under admission the rename is the one command that runs. It keeps fd 6: a +# rename that outlives its caller still holds admission, so no later request +# gets in before it has landed. A temp file it could not move stays until +# tg_reset_tidy finds its writer gone. +tg_reset_put() { # $1 file, $2 content + local t + tg_my_pid; t="$1.tmp.$MY_PID" + { ( umask 022; printf '%s\n' "$2" > "$t" ); } 2>/dev/null || return 1 + mv "$t" "$1" 2>/dev/null 7>&- +} + +# After admission is let go, so whoever holds it now may be writing: only temp +# files of a writer that is gone are removed. +tg_reset_tidy() { + tg_rm_gone "$STATE_DIR"/reset.tmp.* "$STATE_DIR"/reset.gen.tmp.* +} + +# Under admission. $1 the state of the current request, the rest from RESET_*. +tg_reset_save() { + RESET_STATE=$1 + tg_reset_put "$STATE_DIR/reset" "$(printf '%s\n' "reset_boot=$RESET_BOOT" \ + "reset_id=$RESET_ID" "reset_gen=$RESET_GEN" "reset_state=$RESET_STATE" \ + "reset_ts=$RESET_TS" "reset_kind=$RESET_KIND" "reset_failed=$RESET_REC_FAILED" \ + "reset_rpid=$RESET_RPID" "reset_rstart=$RESET_RSTART" "reset_wpid=$RESET_WPID" \ + "reset_wstart=$RESET_WSTART" "reset_prev_id=$RESET_PREV_ID" \ + "reset_prev_gen=$RESET_PREV_GEN" "reset_prev_state=$RESET_PREV_STATE" \ + "reset_prev_failed=$RESET_PREV_FAILED" "reset_prev_ts=$RESET_PREV_TS")" +} + +# Under admission, with the record just read: a new request of this boot with +# the next generation. The current one becomes the previous one, as aborted +# where it never ended; a record of another boot is dropped. A command line +# request is its own worker and runs at once, the page's starts with no worker +# until reset-start has forked one. $1 cli or page, $2 boot, $3 time, $4 the +# start time of this process. +tg_reset_reserve() { + local b="" g="" n="" + { read -r b g < "$STATE_DIR/reset.gen"; } 2>/dev/null + [ "$b" = "$2" ] && n=$(tg_reset_num "$g") + n=${n:-0} + if [ "$RESET_BOOT" = "$2" ] && [ -n "$RESET_ID" ] && [ -n "$RESET_STATE" ]; then + [ "${RESET_GEN:-0}" -gt "$n" ] && n=$RESET_GEN + case "$RESET_STATE" in starting|running) RESET_STATE=aborted; REQ_ABORTED=$RESET_ID ;; esac + RESET_PREV_ID=$RESET_ID; RESET_PREV_GEN=$RESET_GEN; RESET_PREV_STATE=$RESET_STATE + RESET_PREV_FAILED=$RESET_REC_FAILED; RESET_PREV_TS=$RESET_TS + else + RESET_PREV_ID=""; RESET_PREV_GEN=""; RESET_PREV_STATE=""; RESET_PREV_FAILED="" + RESET_PREV_TS="" + fi + n=$((n + 1)) + tg_reset_put "$STATE_DIR/reset.gen" "$2 $n" || return 1 + tg_my_pid + RESET_BOOT=$2; RESET_GEN=$n; RESET_ID="$n-$MY_PID"; RESET_TS=$3; RESET_KIND=$1 + RESET_REC_FAILED=""; RESET_RPID=$MY_PID; RESET_RSTART=$4 + RESET_WPID=""; RESET_WSTART="" + REQ_BOOT=$RESET_BOOT; REQ_GEN=$RESET_GEN; REQ_ID=$RESET_ID; REQ_TS=$RESET_TS + if [ "$1" = cli ]; then + RESET_WPID=$MY_PID; RESET_WSTART=$4 + tg_reset_save running + else + tg_reset_save starting + fi +} + +# Joins the live request of this boot or reserves a new one. 0 with admission +# held and REQ_* set, REQ_JOINED=1 for a join; 1 after saying why. $1 cli or page. +tg_reset_admit() { + local boot now self rc=0 + boot=$(tg_boot_id) + if [ -z "$boot" ]; then + echo "cannot read the boot id from $BOOT_ID_FILE, nothing was changed" >&2 + return 1 + fi + # Without it this process could not be told from a dead one, and the next + # start would run a second reset next to it. + tg_my_pid; tg_proc_start "$MY_PID"; self=$PROC_START + if [ -z "$self" ]; then + echo "cannot read the start time of this process from /proc, nothing was changed" >&2 + return 1 + fi + now=$(date +%s) + tg_admit_take || rc=$? + case "$rc" in + 0) ;; + 1) + echo "another reset is being admitted and does not let go, nothing was changed" >&2 + return 1 ;; + *) + echo "cannot open $STATE_DIR/reset.admit, nothing was changed" >&2 + return 1 ;; + esac + REQ_ABORTED=""; REQ_JOINED=0 + tg_reset_read + if [ "$RESET_BOOT" = "$boot" ] && [ -n "$RESET_ID" ] && tg_reset_alive; then + REQ_BOOT=$RESET_BOOT; REQ_GEN=$RESET_GEN; REQ_ID=$RESET_ID; REQ_TS=$RESET_TS + REQ_JOINED=1 + return 0 + fi + tg_reset_reserve "$1" "$boot" "$now" "$self" && return 0 + tg_admit_drop + echo "cannot write $STATE_DIR/reset, nothing was changed" >&2 + return 1 +} + +# Only once admission is let go: logging runs commands that may wait. +tg_reset_aborted_log() { + [ -n "$REQ_ABORTED" ] || return 0 + tg_log "reset request $REQ_ABORTED ended without a result, its process is gone" warning +} + +# Still under admission, right after the fork: who the worker is, so a later +# start can tell a live worker from a dead one also before its first step. +tg_reset_publish() { # $1 worker pid + tg_proc_start "$1" + RESET_WPID=$1; RESET_WSTART=$PROC_START + tg_reset_save starting +} + +# The worker's first step after closing what it inherited. Only the request it +# was forked for, still starting and naming this very process as its worker, +# may run. Anything else (aborted, replaced, ended, another worker) means a +# later start took over: leave without taking the state lock or writing. +tg_reset_fence() { # $1 boot, $2 generation, $3 request id + local me="" + tg_my_pid; tg_proc_start "$MY_PID" + me="$MY_PID/$PROC_START" + [ -n "$PROC_START" ] || return 1 + tg_admit_take || return 1 + tg_reset_read + if [ "$RESET_BOOT/$RESET_GEN/$RESET_ID/$RESET_STATE/$RESET_WPID/$RESET_WSTART" != \ + "$1/$2/$3/starting/$me" ] || ! tg_reset_save running; then + tg_admit_drop + return 1 + fi + tg_admit_drop + REQ_BOOT=$1; REQ_GEN=$2; REQ_ID=$3 +} + +# The result goes into the record only while it still holds this request, +# running. Otherwise a later request owns the record, and the log has it. +tg_reset_finish() { # $1 done, failed or busy, $2 what is still in force + tg_admit_take || return 1 + tg_reset_read + if [ "$RESET_BOOT/$RESET_GEN/$RESET_ID/$RESET_STATE" = \ + "$REQ_BOOT/$REQ_GEN/$REQ_ID/running" ]; then + RESET_REC_FAILED=$2 + tg_reset_save "$1" + fi + tg_admit_drop +} + # ---- commands -------------------------------------------------------------- tg_daemon() { - local cpu modem now blind_cpu=0 blind_modem=0 prev_src="" + local cpu modem now blind_cpu=0 blind_modem=0 prev_src="" start=1 + # A daemon that cannot serialise with reset must not write at all. Syslog + # only: procd restarts it every few seconds, and the event log would lose + # the incident it holds. + if ! tg_lock_open; then + "$TG_LOGGER" -t "$TAG" -p daemon.crit "$LOCK_ERR, not starting" 2>/dev/null + echo "$LOCK_ERR, not starting" >&2 + exit 1 + fi # From here the configuration diagnostics are worth logging: this process # stays, so each of them is said once rather than once per invocation. DAEMON=1 mkdir -p "$STATE_DIR" + # A new start detects again rather than trusting what an earlier run found. + rm -f "$STATE_DIR/modem-model" tg_cfg + tg_profile_report tg_fan_detect - # Before the first load, so a reboot does not silently drop the stages. - tg_state_restore - tg_state_load + # Before the first load, so a reboot does not silently drop the stages. While + # a reset holds the lock, the first cycle that gets it does this instead. + if tg_daemon_lock; then + tg_state_start; start=0 + tg_lock_drop + else + tg_state_load + fi tg_log "started, version $THERMAL_GUARD_VERSION, stage $STAGE, fan mode $FAN_MODE, modem source $MODEM_SOURCE" while :; do @@ -962,8 +2303,12 @@ tg_daemon() { # checkbox. Keep refreshing the status file so the web interface can # say so instead of showing a snapshot that stopped ageing. if [ "$ENABLED" = 0 ]; then - tg_state_load - tg_status_write + if tg_daemon_lock; then + [ "$start" = 0 ] || { tg_state_start; start=0; } + tg_state_load + tg_status_write + tg_lock_drop + fi sleep "$INTERVAL" continue fi @@ -971,6 +2316,7 @@ tg_daemon() { cpu=$(tg_read_cpu) tg_read_modem modem=$MODEM_VAL + [ -n "$modem" ] && tg_model_detect tg_modem_publish now=$(date +%s) @@ -996,19 +2342,29 @@ tg_daemon() { fi # The state file is the single source of truth, "reset" writes it from - # outside. Load it after the modem read so a reset in between survives. - tg_state_load - # Needs the loaded stage to know whether the fan should be forced. - tg_fan_check_owner - tg_trip_cycle "$cpu" "$modem" - FROM_STAGE=$((STAGE + 1)) - tg_cycle "$cpu" "$modem" "$now" "$GEN" + # outside. Load it after the modem read so a reset in between survives, + # and hold the lock from the load to the status write, so a reset can + # neither land in the middle nor be overwritten by this cycle. + if tg_daemon_lock; then + [ "$start" = 0 ] || { tg_state_start; start=0; } + tg_state_load + # Needs the loaded stage to know whether the fan should be forced. + tg_fan_check_owner + tg_trip_cycle "$cpu" "$modem" + FROM_STAGE=$((STAGE + 1)) + tg_cycle "$cpu" "$modem" "$now" "$GEN" + tg_lock_drop + else + # The holder may still write, so this cycle only alerts. + tg_blocked "$cpu" "$modem" "$(tg_uptime)" + fi tg_flush_outbox sleep "$INTERVAL" done } tg_status() { + local now tg_cfg tg_fan_detect tg_state_load @@ -1020,55 +2376,234 @@ tg_status() { echo "cpu_temp_path=$CPU_TEMP_PATH" echo "last_modem=$LAST_MODEM" echo "last_modem_src=$LAST_MODEM_SRC" + echo "modem_model=$MODEM_MODEL" + echo "modem_profile=$PROFILE_MATCH" + echo "modem_profile_warn=$PROFILE_WARN"; echo "modem_profile_crit=$PROFILE_CRIT" + echo "modem_warn=$MODEM_WARN"; echo "modem_crit=$MODEM_CRIT" + echo "modem_warn_src=$MODEM_WARN_SRC"; echo "modem_crit_src=$MODEM_CRIT_SRC" echo "last_ts=$LAST_TS" echo "t0=$T0"; echo "t1=$T1"; echo "t2=$T2" echo "pending=$PENDING"; echo "pending_n=$PENDING_N" + echo "cause1=$CAUSE1"; echo "cpu_seen=$CPU_SEEN"; echo "auto_recover=$AUTO_RECOVER" + echo "recover_minutes=$RECOVER_MINUTES"; echo "recover_max=$RECOVER_MAX" + echo "cool_since=$COOL_SINCE"; echo "recover_n=$RECOVER_N" + now=$(date +%s) + echo "recover_at=$(tg_recover_at "$now")" + echo "recover_state=$(tg_recover_state "$now")" + echo "reset_failed=$RESET_FAILED" + tg_reset_view + echo "reset_state=$RESET_STATE"; echo "reset_req_failed=$RESET_REC_FAILED" + echo "reset_ts=$RESET_TS" + echo "reset_boot=$RESET_BOOT"; echo "reset_id=$RESET_ID"; echo "reset_gen=$RESET_GEN" + echo "reset_kind=$RESET_KIND" + echo "reset_prev_id=$RESET_PREV_ID"; echo "reset_prev_gen=$RESET_PREV_GEN" + echo "reset_prev_state=$RESET_PREV_STATE"; echo "reset_prev_failed=$RESET_PREV_FAILED" + echo "reset_prev_ts=$RESET_PREV_TS" echo "fan_mode=$FAN_MODE" - echo "fan_state=$(tg_fan_state)" - echo "fan_max=$(tg_fan_max)" + tg_fan_view_now; tg_fan_status + echo "fan_restore_pending=$(tg_fan_restore_pending && echo 1 || echo 0)" + echo "fan_taken=$FAN_TAKEN"; echo "fan_unresolved=$FAN_UNRESOLVED" echo "outbox_lines=$([ -f "$OUTBOX" ] && wc -l < "$OUTBOX" || echo 0)" echo "alt_uplink=$(tg_alt_uplink && echo 1 || echo 0)" } +# The command line reset. A reset that already runs, detached or by hand, is +# joined rather than queued behind: same intent, and its result is the answer. tg_reset() { - local hist gen tg_cfg tg_fan_detect - tg_state_load - tg_log "reset requested (stage $STAGE)" notice + # Without a lock there is no telling who else writes, so nothing is touched. + if ! tg_lock_open; then + echo "$LOCK_ERR, nothing was changed" >&2 + return 1 + fi + tg_reset_admit cli || return 1 + tg_admit_drop + tg_reset_tidy + tg_reset_aborted_log + if [ "$REQ_JOINED" = 1 ]; then + tg_reset_join + return + fi + tg_reset_run +} - [ "$STAGE" -ge 1 ] && tg_undo_action "$STAGE1_ACTION" - [ "$STAGE" -ge 2 ] && tg_undo_action "$STAGE2_ACTION" - # Unconditional, not "if we think we took the fan". Reset means hand it - # back, and the one case where the stage says idle but the fan is still - # forced is exactly the one an operator cannot fix any other way. - tg_fan_release +# Waits for the result of the joined request and exits by it. Admission is not +# held meanwhile: the worker needs it for that very result. +tg_reset_join() { + local i=0 limit=$((RESET_WAIT + RESET_BUDGET + 60)) st="" failed="" dead=0 + echo "a reset is already running (request $REQ_ID), waiting for its result" + while :; do + tg_reset_read + dead=0; tg_reset_ended && dead=1 + if [ "$RESET_BOOT/$RESET_ID" = "$REQ_BOOT/$REQ_ID" ]; then + case "$RESET_STATE" in + starting|running) [ "$dead" = 0 ] || st=aborted ;; + *) st=$RESET_STATE; failed=$RESET_REC_FAILED ;; + esac + elif [ "$RESET_BOOT/$RESET_PREV_ID" = "$REQ_BOOT/$REQ_ID" ]; then + st=$RESET_PREV_STATE; failed=$RESET_PREV_FAILED + else + st=unknown + fi + [ -z "$st" ] || break + if [ "$i" -ge "$limit" ]; then + st=unknown + break + fi + sleep 1 + i=$((i + 1)) + done + case "$st" in + done) + [ -z "$failed" ] || echo "still in force: $failed" >&2 + return 0 ;; + failed) echo "the reset could not undo everything, still in force: ${failed:-?}" >&2 ;; + busy) echo "the daemon is busy with a stage action, try again" >&2 ;; + aborted) echo "the reset ended without a result, its process is gone" >&2 ;; + *) echo "the result of the reset is not known, see thermal-guard status" >&2 ;; + esac + return 1 +} + +# The reset itself, as the request in REQ_*, which is running. Its result goes +# into the record before the final status write, under both locks. +tg_reset_run() { + local hist gen failed carried listed t t0 rc=0 + # A cycle in flight finishes first: once it acts or saves after the reset, + # the reset is undone without anyone noticing. + tg_lock_wait "$RESET_WAIT" || rc=$? + if [ "$rc" != 0 ]; then + # Busy: the holder publishes it with its next status write. No lock at all + # is no reason to try again, failed with the log saying why. The status + # file lags there until the next writer, the record and status are right. + if [ "$rc" = 2 ]; then + tg_reset_finish failed "" + tg_log "reset request $REQ_ID: $LOCK_ERR, nothing was changed" crit + echo "$LOCK_ERR, nothing was changed" >&2 + else + tg_reset_finish busy "" + echo "the daemon is busy with a stage action, try again" >&2 + fi + return 1 + fi + t0=$(tg_uptime) + tg_state_load + # A daemon killed in a restore, after the takeover save, left the fan record + # in the persisted copy only. A record of an earlier boot is dropped on read. + [ -r "$STATE" ] || tg_state_read "$PERSIST" + tg_log "reset requested (stage $STAGE)" notice + # The daemon publishes nothing while it waits for this reset, so the page + # learns from this snapshot that clearing runs: the record says running. + tg_status_write + + tg_undo_all "$t0" + # Entries an earlier reset could not undo, the fan aside, are not tried again + # and are still in force, so they stay in view. A stage entry empties the list. + # Only what this reset tried and could not undo counts as its failure. + # Lowercase names and commas only, so word splitting is safe. + carried=$(tg_list_drop "$RESET_FAILED" fan) + failed=$UNDO_FAILED; listed=$carried + for t in $(echo "$failed" | tr ',' ' '); do + listed=$(tg_list_add "$listed" "$t") + done hist=$(tail -n 10 "$EVLOG" 2>/dev/null) gen=$((GEN + 1)) - tg_state_clear + # A fan that was not handed back keeps its takeover record, so the next + # reset retries that same fan with what was saved, and never another one. + case ",$failed," in + *,fan,*) tg_state_clear_but_fan ;; + *) tg_state_clear ;; + esac GEN=$gen + # The stage is cleared even where an undo failed: reset must stay possible + # with the hardware gone. What is still in force stays in view instead. + RESET_FAILED=$listed # Clearing means clearing, including across the next reboot. - rm -f "$PERSIST" 2>/dev/null - sync + rm -f "$PERSIST" "$PERSIST_DIR/recover" 2>/dev/null + tg_sync || tg_log \ + "could not flush the removal of $PERSIST, the stage may come back after a reboot" warning tg_state_save + # Before the status write, which publishes it, and before the messages, + # which may take a while: the page waits for this. + if [ -n "$failed" ]; then + tg_reset_finish failed "$listed" + else + tg_reset_finish "done" "$listed" + fi tg_status_write + # The messages go out without it: a slow post must not hold up a cycle. + tg_lock_drop + if [ -n "$failed" ]; then + tg_notify resetfail "reset done, but could not undo: $failed. Check the device." + echo "could not undo: $failed" >&2 + return 1 + fi + # Nothing this reset tried failed. What is left was there before it. + if [ -n "$carried" ]; then + tg_notify reset "still in force from an earlier reset: $carried" + echo "still in force from an earlier reset: $carried" >&2 + fi tg_log "reset done" notice tg_notify_configured || return 0 - if tg_notify_send "$(printf '[%s] %s: reset done. Recent events:\n%s' \ - "$(cat /proc/sys/kernel/hostname 2>/dev/null)" "$TAG" "$hist")"; then - : > "$OUTBOX" 2>/dev/null - else - mkdir -p "$STATE_DIR" - printf '%s reset done (history: logread -e %s)\n' "$(date '+%F %T')" "$TAG" >> "$OUTBOX" - fi + # The outbox stays as it is either way: a daemon blocked by this reset may + # have queued an alert after the history was taken, and it delivers it. + tg_notify_send "$(printf '[%s] %s: reset done. Recent events:\n%s' \ + "$(cat /proc/sys/kernel/hostname 2>/dev/null)" "$TAG" "$hist")" && return 0 + mkdir -p "$STATE_DIR" + printf '%s reset done (history: logread -e %s)\n' "$(date '+%F %T')" "$TAG" >> "$OUTBOX" return 0 } +# The page's Clear. rpcd kills a command that outlasts its timeout, perhaps in +# the middle of an undo, and the page gives up even sooner. So the reset runs +# detached, and the page reads how it went from the status file. A Clear while +# a reset runs joins it and prints that request. +tg_reset_start() { + # A reset that could never take the lock is not started at all. + if ! tg_lock_open; then + echo "$LOCK_ERR, nothing was changed" >&2 + return 1 + fi + tg_reset_admit page || return 1 + if [ "$REQ_JOINED" = 0 ]; then + # Forked under admission, so the worker is recorded before anyone can + # look. None of rpcd's streams stays open: rpcd waits for them to close. + ( tg_reset_worker "$REQ_BOOT" "$REQ_GEN" "$REQ_ID" ) < /dev/null > /dev/null 2>&1 & + if ! tg_reset_publish "$!"; then + tg_admit_drop + echo "cannot write $STATE_DIR/reset, nothing was changed" >&2 + return 1 + fi + fi + tg_admit_drop + tg_reset_tidy + tg_reset_aborted_log + printf 'reset_boot=%s\nreset_id=%s\nreset_gen=%s\nreset_ts=%s\n' \ + "$REQ_BOOT" "$REQ_ID" "$REQ_GEN" "$REQ_TS" + [ "$REQ_JOINED" = 0 ] || echo "reset_joined=1" + return 0 +} + +# The detached reset. Forked while reset-start held admission, it shares that +# locked descriptor and the state lock's one: both are closed first, or this +# process would hold what reset-start holds. Its own come from fresh opens. +tg_reset_worker() { # $1 boot, $2 generation, $3 request id + exec 6>&- 7>&- + LOCK_OK="" + tg_reset_fence "$1" "$2" "$3" || return 0 + tg_cfg + tg_fan_detect + tg_reset_run +} + # The operator has seen the new device tree trips and decided, either to use # them as trip_active or to keep their own. Both make the set of this boot -# the one trip_active was made for. +# the one trip_active was made for. No state lock: this writes trip_base only, +# never the state or the hardware, and the daemon writes trip_base only where +# it is missing, then with the same set of this boot. tg_trips_keep() { local dt dt=$(cat "$STATE_DIR/trip_dt" 2>/dev/null) @@ -1084,6 +2619,67 @@ tg_trips_keep() { tg_log "trip_base set to $(tg_trip_deg "$dt") C (trips-keep)" notice } +# The operator has checked the fan by hand and drops what the daemon keeps to +# hand it back. No hardware is written, the fan stays as it is. Refused while a +# stage is active, in the working state or in the persisted copy the next start +# restores: that stage still needs its fan. Both copies lose the record under +# one hold of the lock, so a restart cannot bring it back. +tg_fan_forget() { + local ps t + tg_cfg + tg_fan_detect + if ! tg_lock_open; then + echo "$LOCK_ERR, nothing was changed" >&2 + return 1 + fi + if ! tg_lock_wait "$RESET_WAIT"; then + echo "the daemon is busy with a stage action, try again" >&2 + return 1 + fi + tg_state_load + ps=$(tg_int "$(sed -n 's/^STAGE=//p' "$PERSIST" 2>/dev/null | head -n1)") + if [ "$STAGE" -ge 0 ] || [ "${ps:--1}" -ge 0 ]; then + tg_lock_drop + echo "a stage is active, clear it first" >&2 + return 1 + fi + case ",$RESET_FAILED," in + *,fan,*) ;; + *) + if ! tg_fan_restore_pending; then + tg_lock_drop + echo "no fan restoration record, nothing was changed" + return 0 + fi ;; + esac + if [ -e "$PERSIST" ]; then + tg_my_pid; t="$PERSIST.tmp.$MY_PID" + if ! { tg_fan_keys_strip "$PERSIST" > "$t" && mv "$t" "$PERSIST"; } 2>/dev/null; then + rm -f "$t"; tg_lock_drop + echo "could not rewrite $PERSIST, nothing was changed" >&2 + return 1 + fi + # Not discarded until it is on flash, or a reboot brings it back. + if ! tg_sync; then + tg_lock_drop + echo "could not flush $PERSIST, the record is still in $STATE, try again" >&2 + return 1 + fi + fi + tg_fan_record_drop + RESET_FAILED=$(tg_list_drop "$RESET_FAILED" fan) + if ! tg_state_save; then + tg_lock_drop + echo "could not write $STATE, the record is still there, try again" >&2 + return 1 + fi + tg_log "fan restoration record discarded by the operator, the fan was not released" notice + tg_status_write + tg_lock_drop + echo "fan restoration record discarded, the fan was not released" + return 0 +} + # Two cycles with the same readings, prints what they would trigger. tg_test() { local cpu modem now @@ -1097,7 +2693,7 @@ tg_test() { # stops at DRY already; clearing the ways out is the second line of defence # should a later path ever send around it. DRY=1; NOTIFY_URL=""; HOOK_DIR=/nonexistent; MODEM_SRC="test" - cpu=$1; modem=$(tg_int "${2:-}"); now=$(date +%s) + cpu=$(tg_int "$1"); modem=$(tg_int "${2:-}"); now=$(date +%s) # Every transition needs two readings in a row, so one cycle never shows a # stage. Both at the same time: the hold time does not pass here. FROM_STAGE=$((STAGE + 1)); tg_cycle "$cpu" "$modem" "$now" @@ -1117,7 +2713,16 @@ tg_selftest() { STATE_DIR="$dir/run"; STATE="$STATE_DIR/state"; OUTBOX="$STATE_DIR/outbox" EVLOG="$STATE_DIR/log"; PERSIST_DIR="$dir/persist"; PERSIST="$PERSIST_DIR/state" STATUS_FILE="$dir/status"; HOOK_DIR="$dir/hooks" - mkdir -p "$STATE_DIR" + # And no sysfs: every root is planted for the whole run. A block that needs a + # real path sets it and puts the planted one back. + THERMAL_ROOT="$dir/thermal"; HWMON_ROOT="$dir/hwmon"; NET_ROOT="$dir/net" + DT_ROOT="$dir/devicetree"; CPU_TEMP_PATH="$THERMAL_ROOT/thermal_zone0/temp" + AT_LOCK="$dir/modem-at.lock" + # The boot id too, so a boot change can be planted, and where fan device + # links resolve to. + BOOT_ID_FILE="$dir/boot_id"; DEVICES_ROOT="$dir/sysdev" + SELFTEST_BOOT=4f0c9d1e-6a2b-4c3d-8e5f-0a1b2c3d4e5f + mkdir -p "$STATE_DIR"; echo "$SELFTEST_BOOT" > "$BOOT_ID_FILE" # Never the real syslog; the priorities are checked from this file. logger() { echo "$*" >> "$dir/syslog"; } TG_LOGGER="logger" @@ -1132,6 +2737,19 @@ tg_selftest() { fail=1 fi } + # Helpers that delete or plant files take only paths in the scratch directory. + # One aimed elsewhere ends the run before it touches anything: this runs as root. + tg_selftest_scratch() { # $@ paths + local p + for p in "$@"; do + tg_path_under "$p" "$dir/" && continue + echo "FAIL a selftest helper was given '$p', outside the scratch directory" + echo "selftest: FAILED" + # Only the main shell owns the scratch directory, a subshell leaves it. + tg_my_pid; [ "$MY_PID" = "$$" ] && rm -rf "$dir" + exit 1 + done + } CPU_WARN=70; CPU_CRIT=80; CPU_EMERGENCY=90; MODEM_WARN=80; MODEM_CRIT=88 HOLD_MINUTES=3; HYSTERESIS=10 @@ -1157,6 +2775,23 @@ tg_selftest() { tg_decide 85 72 1280; tg_decide 85 72 1300 chk "a rise over it after the hold time reaches stage 2" "$DECISION/$STAGE" "stage:2/2" + # Missing readings per transition. Stage 1 to 2 on time needs a reading above + # its reference, so a box that went blind stays in stage 1. + tg_state_clear; tg_decide 85 70 1000; tg_decide 85 70 1020 + tg_decide '' '' 1240; tg_decide '' '' 1260 + chk "stage 1, hold elapsed, no readings at all: stays stage 1" \ + "$DECISION/$STAGE/$PENDING_N" "none/1/0" + tg_decide '' 80 1280; tg_decide '' 80 1300 + chk "a modem reading above its reference is what escalates" "$DECISION/$STAGE" "stage:2/2" + # Stage 0 to 1 on time counts a missing reading as no drop, so it is not delayed. + tg_state_clear; tg_decide 75 66 6000; tg_decide 75 66 6020 + tg_decide '' '' 6200; tg_decide '' '' 6220 + chk "stage 0, hold elapsed, no readings: a missing reading is no drop" \ + "$DECISION/$STAGE" "stage:1/1" + # A threshold needs a reading. + tg_state_clear; tg_decide '' '' 6400; tg_decide '' '' 6420 + chk "no readings at all do not start a stage" "$DECISION/$STAGE" "none/-1" + tg_state_clear; tg_decide 65 66 2000; tg_decide 60 65 2020; tg_decide 62 66 2040 tg_decide 61 82 2060; tg_decide 61 82 2080; chk "modem alone reaches stage 0" "$DECISION/$STAGE" "stage:0/0" tg_decide 61 90 2100; tg_decide 61 90 2120; chk "modem crit skips the hold" "$DECISION/$STAGE" "stage:1/1" @@ -1180,6 +2815,9 @@ tg_selftest() { chk "$1 '$2'" reject "$3" fi } + # Against the shipped roots: the guards only compare strings, nothing is read. + saved_root=$THERMAL_ROOT; saved_hwmon=$HWMON_ROOT + THERMAL_ROOT=/sys/class/thermal; HWMON_ROOT=/sys/class/hwmon chk_path tg_path_thermal /sys/class/thermal/thermal_zone0/temp accept chk_path tg_path_thermal /etc/passwd reject chk_path tg_path_thermal /sys/class/thermal/../../../etc/passwd reject @@ -1197,6 +2835,7 @@ tg_selftest() { chk_path tg_path_lock /tmpfoo/evil reject chk_path tg_path_dev /dev/ttyUSB2 accept chk_path tg_path_dev /tmp/x reject + THERMAL_ROOT=$saved_root; HWMON_ROOT=$saved_hwmon # Reset race. A reset landing mid cycle has to win: the daemon drops its # decision instead of writing the stage it was still holding back. @@ -1211,19 +2850,19 @@ tg_selftest() { # Fan percentage has to read the same on a board whose scale descends. FAN_MODE=pwm; FAN_VIEW=pwm PWM_IDLE=0; PWM_FULL=200 - chk "rising scale, half speed" "$(tg_fan_percent 100)" "50" + chk "rising scale, half speed" "$(tg_fan_view_now; tg_fan_percent 100)" "50" PWM_IDLE=200; PWM_FULL=0 - chk "inverted scale, half speed" "$(tg_fan_percent 100)" "50" + chk "inverted scale, half speed" "$(tg_fan_view_now; tg_fan_percent 100)" "50" # The Banana Pi R3 Mini runs this way round: 1 is full speed, 255 stops it. PWM_IDLE=255; PWM_FULL=1 - chk "inverted board at full speed" "$(tg_fan_percent 1)" "100" - chk "inverted board stopped" "$(tg_fan_percent 255)" "0" - chk "inverted board, measured value" "$(tg_fan_percent 89)" "65" + chk "inverted board at full speed" "$(tg_fan_view_now; tg_fan_percent 1)" "100" + chk "inverted board stopped" "$(tg_fan_view_now; tg_fan_percent 255)" "0" + chk "inverted board, measured value" "$(tg_fan_view_now; tg_fan_percent 89)" "65" # A value outside the configured span must not leave 0..100. - chk "out of range clamps" "$(tg_fan_percent 300)" "0" - chk "a garbled reading yields nothing" "$(tg_fan_percent '9;reboot')" "" + chk "out of range clamps" "$(tg_fan_view_now; tg_fan_percent 300)" "0" + chk "a garbled reading yields nothing" "$(tg_fan_view_now; tg_fan_percent '9;reboot')" "" # Polarity is never assumed. pwm without both values must not touch the fan, # and auto must not pick pwm at all, since it cannot know the polarity. @@ -1247,16 +2886,13 @@ tg_selftest() { PWM_FULL=1; PWM_IDLE=255; FAN_MODE=none; tg_fan_detect chk "none still writes nothing" "$FAN_MODE" "none" chk "none reads the pwm output when the polarity is known" "$FAN_VIEW" "pwm" - chk "and shows it as a percentage" "$(tg_fan_percent 1)" "100" + chk "and shows it as a percentage" "$(tg_fan_view_now; tg_fan_percent 1)" "100" PWM_FULL=""; PWM_IDLE=""; FAN_MODE=none; tg_fan_detect chk "without a polarity the raw output is still read" "$FAN_VIEW" "pwm" - chk "but not turned into a percentage" "$(tg_fan_percent 1)" "" - # Only where the board has no fan chip: on one that does, it is found by - # its hwmon name and read, which is the point. - if [ -z "$(tg_fan_find_hwmon)" ]; then - PWM_PATH=""; PWM_ENABLE_PATH=""; FAN_MODE=none; tg_fan_detect - chk "nothing to read, nothing shown" "$FAN_VIEW" "none" - fi + chk "but not turned into a percentage" "$(tg_fan_view_now; tg_fan_percent 1)" "" + # The planted hwmon tree has no fan chip yet, so there is nothing to find. + PWM_PATH=""; PWM_ENABLE_PATH=""; FAN_MODE=none; tg_fan_detect + chk "nothing to read, nothing shown" "$FAN_VIEW" "none" PWM_PATH="$STATE_DIR/pwm1"; PWM_ENABLE_PATH="$STATE_DIR/pwm1_enable" PWM_FULL=1; PWM_IDLE=255; FAN_MODE=pwm; tg_fan_detect chk "a driven fan is read the way it is written" "$FAN_VIEW" "pwm" @@ -1330,7 +2966,7 @@ tg_selftest() { # "command" without a hook must not silently look like success. tg_run_action command nosuchhook >/dev/null 2>&1 && r=ok || r=failed chk "an action with no hook reports failure" "$r" "failed" - HOOK_DIR=/nonexistent + HOOK_DIR="$dir/no-hooks" # Notification address. Anything that ends a quoted value in a curl config # file, or starts a new line in one, must never reach it: curl config knows @@ -1379,13 +3015,30 @@ tg_selftest() { tg_state_clear; tg_state_load chk "a junk governor is dropped" "$FAN_SAVED_POLICY" "" - # Persisting to flash. sync is counted instead of run, the function is new - # here, so unset -f afterwards leaves nothing behind. - sync() { echo x >> "$dir/sync.calls"; } + # Persisting to flash. sync is a stand-in on PATH that counts its calls, it + # runs under timeout, which a shell function would not reach. It fails while + # sync.fail exists and hangs while sync.hang does. + mkdir -p "$dir/bin-sync" + printf '#!/bin/sh\necho x >> "%s"\n[ -e "%s" ] && exec sleep 10\n[ ! -e "%s" ]\n' \ + "$dir/sync.calls" "$dir/sync.hang" "$dir/sync.fail" > "$dir/bin-sync/sync" + chmod 0755 "$dir/bin-sync/sync" + saved_path=$PATH; PATH="$dir/bin-sync:$PATH" sync_calls() { [ -f "$dir/sync.calls" ] && wc -l < "$dir/sync.calls" | tr -d ' ' || echo 0; } rm -f "$dir/sync.calls"; tg_state_clear; STAGE=1 tg_state_persist && r=ok || r=failed chk "persisting a stage flushes it to flash" "$r/$(sync_calls)/$(sed -n 's/^STAGE=//p' "$PERSIST")" "ok/1/1" + # A flush that fails or does not end in time confirms nothing: the stage is + # written, but not reported as persisted. + rm -f "$dir/sync.calls" "$PERSIST"; : > "$EVLOG"; touch "$dir/sync.fail" + tg_state_persist && r=ok || r=failed + saved_ct=$CMD_TIMEOUT; CMD_TIMEOUT=1; rm -f "$dir/sync.fail"; touch "$dir/sync.hang" + t=$(tg_uptime) + tg_state_persist && r="$r/ok" || r="$r/failed" + r="$r/$([ $(($(tg_uptime) - t)) -le 3 ] && echo bounded)" + CMD_TIMEOUT=$saved_ct; rm -f "$dir/sync.hang" + chk "a failed or hung flush is not taken as persisted" \ + "$r/$(sed -n 's/^STAGE=//p' "$PERSIST")/$(grep -c 'could not persist stage 1' "$EVLOG")" \ + "failed/failed/bounded/1/2" rm -f "$dir/sync.calls"; tg_state_clear tg_cycle 50 40 6000 >/dev/null 2>&1 chk "a cycle without a stage change saves the state but does not flush" \ @@ -1397,7 +3050,8 @@ tg_selftest() { chk "a stage that cannot be persisted is reported and not flushed" \ "$r/$(grep -c 'could not persist stage 1' "$EVLOG")/$(sync_calls)" "failed/1/0" PERSIST_DIR=$saved_pdir; PERSIST=$saved_persist - unset -f sync sync_calls + PATH=$saved_path + unset -f sync_calls tg_state_clear # A restore applies first and sends one message that names what failed. @@ -1421,6 +3075,7 @@ tg_selftest() { # boards, and the real trips belong to the daemon next to it. tg_selftest_tree() { # $1 root, $2 form: bpi, nofan or ro local z="$1/thermal_zone0" c="$1/cooling_device0" i t + tg_selftest_scratch "$1" rm -rf "$1"; mkdir -p "$z" "$c" echo pwm-fan > "$c/type"; echo 3 > "$c/max_state"; echo 0 > "$c/cur_state" echo step_wise > "$z/policy"; echo 45000 > "$z/temp" @@ -1438,9 +3093,24 @@ tg_selftest() { [ "$2" = ro ] && chmod 0444 "$z/trip_point_3_temp" return 0 } + # Takeover records of the planted fans, the way a stage entry writes them: + # the cooling device of a tree under $1 with its zone, the pwmfan chip. + tg_selftest_cdev_rec() { # $1 thermal root + tg_selftest_scratch "$1" + echo cpu-thermal > "$1/thermal_zone0/type" + tg_fan_record_drop + FAN_TAKEN=cooling_device; FAN_BOOT=$SELFTEST_BOOT; FAN_T_NAME='pwm-fan' + FAN_T_ZONE='cpu-thermal' + } + tg_selftest_pwm_rec() { + tg_fan_record_drop + FAN_TAKEN=pwm; FAN_BOOT=$SELFTEST_BOOT; FAN_T_NAME=pwmfan; FAN_T_ATTR=pwm1 + FAN_T_FULL=$(tg_int "$PWM_FULL") + } tg_selftest_trips() { cat "$THERMAL_ROOT"/thermal_zone0/trip_point_*_temp | tr '\n' ' '; } tg_selftest_trip_reset() { tg_selftest_tree "$THERMAL_ROOT" "${1:-bpi}" + tg_selftest_scratch "$STATE_DIR" "$PERSIST_DIR" rm -f "$STATE_DIR/trip_dt" TRIP_DT=""; TRIP_WIN=""; TRIP_DELTA=0; TRIP_WAS_ACTIVE=0 TRIP_TOLD_FIND=""; TRIP_TOLD_VALID=""; TRIP_TOLD_DT=""; TRIP_TOLD_WRITE="" @@ -1448,8 +3118,18 @@ tg_selftest() { FAN_ZONE=""; FAN_CDEV_TYPE=pwm-fan; STAGE=-1 mkdir -p "$PERSIST_DIR"; echo "50 60 70" > "$PERSIST_DIR/trip_base" } - saved_root=$THERMAL_ROOT; saved_hwmon=$HWMON_ROOT - THERMAL_ROOT="$dir/thermal"; HWMON_ROOT="$dir/hwmon" + # The tree helper deletes and plants, so a root outside the scratch directory + # ends the run before anything is touched. Siblings of it stand in for /sys. + for r in "a sibling:$dir.outside" "a way out over ..:$dir/../${dir##*/}.dotdot"; do + c=$( (tg_selftest_tree "${r#*:}" bpi; echo "went on") 2>&1 ) + case "$c" in + "FAIL "*" outside the scratch directory"*"selftest: FAILED") t=refused ;; + *) t="not refused" ;; + esac + [ -e "${r#*:}" ] && t="$t/planted" || t="$t/none" + chk "the tree helper refuses ${r%%:*} and ends the run" "$t" "refused/none" + rm -rf "${r#*:}" + done case "$THERMAL_ROOT" in "$dir"/*) r=planted ;; *) r=live ;; esac chk "trip tests run against a planted tree" "$r" "planted" # The hwmon guard follows the moved root and still keeps everything else out. @@ -1466,14 +3146,19 @@ tg_selftest() { printf '\000\000\000\214\000\000\000\144\000\000\000\062\000\000\000\000' > "$DT_ROOT/pwm-fan/cooling-levels" if command -v hexdump >/dev/null 2>&1; then chk "cooling-levels are read from the device tree" "$(tg_fan_levels)" "140 100 50 0" + # Every status write asks, so a node without compatible must not print errors. + mkdir -p "$DT_ROOT/gpio-fan"; printf '\000\000\000\001' > "$DT_ROOT/gpio-fan/cooling-levels" + chk "a node without compatible is skipped without a word" "$(tg_fan_levels 2>&1)" \ + "140 100 50 0" else echo "skip cooling-levels (no hexdump on this host; BusyBox on the target has it)" fi DT_ROOT=$saved_dt # mt_wifi temperatures through iwpriv, against a planted net tree and a - # stand-in iwpriv, so the real radios are never asked - saved_net=$NET_ROOT; saved_path=$PATH; NET_ROOT="$dir/net" + # stand-in iwpriv, so the real radios are never asked. A tree of its own: the + # radios it plants up would be asked of the host's iwpriv later. + saved_net=$NET_ROOT; saved_path=$PATH; NET_ROOT="$dir/net-mtwifi" mkdir -p "$NET_ROOT/ra0" "$NET_ROOT/rax0" "$dir/bin" # shellcheck disable=SC2016 # $1 belongs to the stand-in script, not to us printf '#!/bin/sh\ncase "$1" in\n\tra0) echo "CurrentTemperature = 53" ;;\n\trax0) echo "CurrentTemperature = 48;reboot" ;;\nesac\n' > "$dir/bin/iwpriv" @@ -1508,6 +3193,12 @@ tg_selftest() { chmod 0755 "$HOOK_DIR/modem-temp" MODEM_VAL=""; tg_read_modem chk "a modem-temp hook that finishes gives a reading" "$MODEM_VAL/$MODEM_SRC" "55/command" + printf '#!/bin/sh\necho 0085\n' > "$HOOK_DIR/modem-temp" + MODEM_VAL=""; tg_read_modem + chk "a hook printing 0085 gives 85" "$MODEM_VAL" "85" + printf '#!/bin/sh\necho 12345678\n' > "$HOOK_DIR/modem-temp" + MODEM_VAL=""; tg_read_modem + chk "a hook printing eight digits gives none" "$MODEM_VAL" "" printf '#!/bin/sh\necho 55\nexec sleep 30\n' > "$HOOK_DIR/modem-temp" MODEM_VAL=""; tg_read_modem chk "one stopped at its time limit gives none" "$MODEM_VAL" "" @@ -1538,10 +3229,17 @@ tg_selftest() { TRIP_BOOST=bogus; TRIP_BOOST_OFFSET=-1; tg_cfg_validate_trips chk "unknown trip_boost falls back to off" "$TRIP_BOOST" "off" chk "negative offset falls back to 15" "$TRIP_BOOST_OFFSET" "15" - for v in 41 x; do + for v in 41 x 041 99999999999999999999; do TRIP_BOOST_OFFSET=$v; tg_cfg_validate_trips chk "offset '$v' falls back to 15" "$TRIP_BOOST_OFFSET" "15" done + TRIP_BOOST_OFFSET=012; tg_cfg_validate_trips + chk "a padded offset 012 is kept as 12" "$TRIP_BOOST_OFFSET" "12" + TRIP_ACTIVE="045 055 065"; tg_cfg_validate_trips + chk "a padded trip_active is kept as plain decimals" "$TRIP_ACTIVE" "45 55 65" + TRIP_ACTIVE="050 60 x"; tg_cfg_validate_trips + chk "a trip_active with a non number stays as written" "$TRIP_ACTIVE" "050 60 x" + TRIP_ACTIVE=""; TRIP_BOOST_OFFSET=15 for v in step_wise fair_share bang_bang power_allocator; do FAN_GOVERNOR=$v; tg_cfg_validate_governor @@ -1594,6 +3292,15 @@ tg_selftest() { chk "trip_active is the baseline" "$(tg_selftest_trips)" "125000 120000 45000 55000 65000 " TRIP_ACTIVE="65 55 45"; tg_trip_cycle 50 60 chk "a bad trip_active falls back to the device tree" "$(tg_selftest_trips)" "125000 120000 50000 60000 70000 " + # Padded values the way UCI hands them over: the trip arithmetic sees decimals. + tg_selftest_trip_reset + TRIP_ACTIVE="045 055 065"; tg_cfg_validate_trips; tg_trip_cycle 50 60 + chk "a padded trip_active writes its own millidegrees" \ + "$(tg_selftest_trips)" "125000 120000 45000 55000 65000 " + tg_selftest_trip_reset + TRIP_BOOST_OFFSET=015; tg_cfg_validate_trips; tg_trip_cycle 50 80 + chk "a padded trip_boost_offset of 015 lowers by 15" \ + "$(tg_selftest_trips)" "125000 120000 35000 45000 55000 " tg_selftest_trip_reset echo "50 60 75" > "$PERSIST_DIR/trip_base" @@ -1749,6 +3456,291 @@ tg_selftest() { fi FAN_MODE=none; PWM_PATH=""; PWM_ENABLE_PATH=""; FAN_SAVED_ENABLE=""; FAN_SAVED_PWM="" + # Forcing the fan is confirmed by reading it back. A write that is accepted but + # does not stick (a symlink to /dev/null stands in for it), a refused write and a + # missing output are all failures, whoever runs the test. Each case is a + # takeover of its own, so the record of the one before goes first. + fresh_full() { tg_fan_record_drop; tg_fan_full; } + tg_selftest_tree "$THERMAL_ROOT" bpi + z="$THERMAL_ROOT/thermal_zone0"; fc="$THERMAL_ROOT/cooling_device0" + FAN_MODE=cooling_device; FAN_CDEV=$fc; FAN_ZONE=$z; FAN_SAVED_POLICY="" + fresh_full && r=ok || r=failed + chk "a confirmed cooling device force succeeds" \ + "$r/$(cat "$z/policy")/$(cat "$fc/cur_state")/$FAN_SAVED_POLICY" "ok/user_space/3/step_wise" + tg_selftest_tree "$THERMAL_ROOT" bpi; FAN_SAVED_POLICY="" + rm "$fc/cur_state"; ln -s /dev/null "$fc/cur_state" + fresh_full && r=ok || r=failed + chk "a state that is accepted but not read back fails" "$r" "failed" + tg_selftest_tree "$THERMAL_ROOT" bpi; FAN_SAVED_POLICY="" + rm "$z/policy"; ln -s /dev/null "$z/policy" + fresh_full && r=ok || r=failed + chk "a zone policy that is not read back fails" "$r/$(cat "$fc/cur_state")" "failed/3" + tg_selftest_tree "$THERMAL_ROOT" bpi; FAN_SAVED_POLICY="" + rm "$fc/cur_state"; mkdir "$fc/cur_state" + fresh_full && r=ok || r=failed + chk "a state that cannot be written fails" "$r" "failed" + if [ "$(id -u)" = 0 ]; then + echo "skip a read only cur_state (root writes read only files)" + else + tg_selftest_tree "$THERMAL_ROOT" bpi; FAN_SAVED_POLICY=""; chmod 0444 "$fc/cur_state" + fresh_full && r=ok || r=failed + chk "a read only cur_state fails and leaves the zone on its governor" \ + "$r/$(cat "$fc/cur_state")/$(cat "$z/policy")" "failed/0/step_wise" + chmod 0644 "$fc/cur_state" + fi + tg_selftest_tree "$THERMAL_ROOT" bpi; FAN_SAVED_POLICY="" + FAN_CDEV="$THERMAL_ROOT/cooling_device9" + fresh_full && r=ok || r=failed + chk "a missing cooling device fails and leaves the zone alone" \ + "$r/$(cat "$z/policy")/$([ -e "$FAN_CDEV" ] && echo made || echo none)" "failed/step_wise/none" + tg_selftest_tree "$THERMAL_ROOT" bpi; FAN_SAVED_POLICY=""; FAN_CDEV=$fc; FAN_ZONE="" + fresh_full && r=ok || r=failed + chk "a cooling device without a zone is forced directly" "$r/$(cat "$fc/cur_state")" "ok/3" + echo 0 > "$fc/max_state"; echo 0 > "$fc/cur_state" + fresh_full && r=ok || r=failed + chk "a cooling device that cannot cool by anything is a failure" "$r" "failed" + FAN_MODE=none; FAN_CDEV=""; FAN_ZONE=""; FAN_SAVED_POLICY="" + + # The same for pwm. Both polarity values and the output are needed, the mode file + # is optional. + saved_pf=$PWM_FULL; saved_pi=$PWM_IDLE + PWM_FULL=0; PWM_IDLE=255 + FAN_MODE=pwm; PWM_PATH="$h/pwm1"; PWM_ENABLE_PATH="$h/pwm1_enable" + FAN_SAVED_ENABLE=""; FAN_SAVED_PWM="" + echo 2 > "$h/pwm1_enable"; echo 255 > "$h/pwm1" + fresh_full && r=ok || r=failed + chk "a confirmed pwm force succeeds" \ + "$r/$(cat "$h/pwm1_enable")/$(cat "$h/pwm1")/$FAN_SAVED_ENABLE/$FAN_SAVED_PWM" "ok/1/0/2/255" + PWM_ENABLE_PATH=""; rm -f "$h/pwm1_enable"; echo 255 > "$h/pwm1" + fresh_full && r=ok || r=failed + chk "pwm without a mode file is forced on the duty cycle alone" "$r/$(cat "$h/pwm1")" "ok/0" + # The output's own mode file is taken where pwm_enable_path is empty, as a + # resolved record takes it. + echo 2 > "$h/pwm1_enable"; echo 255 > "$h/pwm1" + fresh_full && r=ok || r=failed + chk "an empty pwm_enable_path takes the output's own mode file" \ + "$r/$(cat "$h/pwm1_enable")/$(cat "$h/pwm1")/$FAN_SAVED_ENABLE" "ok/1/0/2" + PWM_ENABLE_PATH="$h/pwm1_enable" + rm -f "$h/pwm1"; ln -s /dev/null "$h/pwm1" + fresh_full && r=ok || r=failed + chk "a duty cycle that is not read back fails" "$r" "failed" + rm -f "$h/pwm1"; echo 255 > "$h/pwm1" + rm -f "$h/pwm1_enable"; ln -s /dev/null "$h/pwm1_enable" + fresh_full && r=ok || r=failed + chk "a manual mode that is not read back fails" "$r/$(cat "$h/pwm1")" "failed/0" + rm -f "$h/pwm1_enable"; echo 2 > "$h/pwm1_enable" + if [ "$(id -u)" = 0 ]; then + echo "skip a read only duty cycle (root writes read only files)" + else + echo 255 > "$h/pwm1"; chmod 0444 "$h/pwm1" + fresh_full && r=ok || r=failed + chk "a read only duty cycle fails" "$r/$(cat "$h/pwm1")" "failed/255" + chmod 0644 "$h/pwm1" + fi + PWM_PATH=""; PWM_ENABLE_PATH="" + fresh_full && r=ok || r=failed + chk "pwm with empty paths fails" "$r" "failed" + PWM_PATH="$HWMON_ROOT/hwmon9/pwm1"; PWM_ENABLE_PATH="$h/pwm1_enable" + fresh_full && r=ok || r=failed + chk "pwm with a missing output fails" "$r/$([ -e "$PWM_PATH" ] && echo made || echo none)" "failed/none" + PWM_PATH="$h/pwm1"; PWM_IDLE="" + echo 255 > "$h/pwm1" + fresh_full && r=ok || r=failed + chk "pwm without a known polarity fails and writes nothing" "$r/$(cat "$h/pwm1")" "failed/255" + PWM_FULL=$saved_pf; PWM_IDLE=$saved_pi; unset -f fresh_full + FAN_MODE=none; PWM_PATH=""; PWM_ENABLE_PATH=""; tg_fan_record_drop + + # A fan that cannot be forced is notified: at stage entry, and when a reassert + # fails, once until a reassert works or the stage clears. The mode file does + # not read back, another controller writes 255 before every check. + saved_pf=$PWM_FULL; saved_pi=$PWM_IDLE; PWM_FULL=0; PWM_IDLE=255 + FAN_MODE=pwm; PWM_PATH="$h/pwm1"; PWM_ENABLE_PATH="$h/pwm1_enable"; FAN_FOREIGN=0 + FAN_SAVED_ENABLE=2; FAN_SAVED_PWM=255 + rm -f "$h/pwm1_enable"; ln -s /dev/null "$h/pwm1_enable" + tg_state_clear; STAGE=0; : > "$EVLOG"; : > "$dir/syslog" + tg_act 0 60 60 + chk "a fan force that fails at stage 0 is notified at crit" "$(tg_selftest_prio \ + 'stage 0: could not force the fan (mode pwm). Check the fan.')" "daemon.crit" + reassert() { tg_selftest_scratch "$h"; echo 255 > "$h/pwm1"; tg_fan_check_owner; } + : > "$EVLOG"; : > "$dir/syslog" + reassert; reassert; reassert + chk "a failed reassert is notified once, not logged every cycle" \ + "$(grep -c 'could not reassert the fan' "$EVLOG")/$(tg_selftest_prio \ + 'stage 0: could not reassert the fan (mode pwm). Check the fan.')" "1/daemon.crit" + rm -f "$h/pwm1_enable"; echo 2 > "$h/pwm1_enable"; reassert + rm -f "$h/pwm1_enable"; ln -s /dev/null "$h/pwm1_enable"; reassert + chk "after a reassert that worked the next failure is told" \ + "$(grep -c 'could not reassert the fan' "$EVLOG")" "2" + STAGE=-1; tg_fan_check_owner; STAGE=0; reassert + chk "and after the stage cleared" "$(grep -c 'could not reassert the fan' "$EVLOG")" "3" + # A fan taken over is named by its own mode and is not left alone by setting + # none; the hint to do so is for a fan nobody took. + FAN_MODE=none; FAN_FOREIGN=0; : > "$EVLOG" + tg_fan_mode_now; r=$FAN_NOW/$(tg_fan_recorded && echo rec); reassert + chk "the taken fan's mode and a reassert hint that matches it under none" \ + "$r/$(grep -c 'It is reasserted until it is handed back' "$EVLOG")/$(grep -c \ + 'Set fan_mode=none' "$EVLOG")" "pwm/rec/1/0" + tg_fan_record_drop; FAN_MODE=pwm; FAN_FOREIGN=0; : > "$EVLOG" + tg_fan_mode_now; r=$FAN_NOW; reassert + chk "without a record the configured mode and the hint to set none" \ + "$r/$(grep -c 'It is reasserted until' "$EVLOG")/$(grep -c 'Set fan_mode=none' "$EVLOG")" \ + "pwm/0/1" + unset -f reassert + rm -f "$h/pwm1_enable"; echo 2 > "$h/pwm1_enable"; tg_state_clear + PWM_FULL=$saved_pf; PWM_IDLE=$saved_pi; FAN_FOREIGN=0 + FAN_MODE=none; PWM_PATH=""; PWM_ENABLE_PATH=""; FAN_SAVED_ENABLE=""; FAN_SAVED_PWM="" + + # The release is confirmed the same way: a value that does not come back keeps + # the saved state and fails, so a later reset can try again. + tg_selftest_tree "$THERMAL_ROOT" bpi; : > "$dir/syslog" + FAN_MODE=cooling_device; FAN_CDEV=$fc; FAN_ZONE=$z; FAN_SAVED_POLICY=bang_bang + echo user_space > "$z/policy" + tg_fan_release && r=ok || r=failed + chk "a confirmed release succeeds and clears the saved policy" \ + "$r/$(cat "$z/policy")/${FAN_SAVED_POLICY:-empty}" "ok/bang_bang/empty" + echo user_space > "$z/policy"; FAN_SAVED_POLICY=bang_bang + rm "$z/policy"; ln -s /dev/null "$z/policy" + tg_fan_release && r=ok || r=failed + chk "a release that is not read back keeps the saved policy and fails" \ + "$r/$FAN_SAVED_POLICY" "failed/bang_bang" + FAN_ZONE="" + tg_fan_release && r=ok || r=failed + chk "a cooling device without a zone has nothing to release and keeps nothing" \ + "$r/$FAN_SAVED_POLICY" "ok/" + FAN_MODE=none; tg_fan_release && r=ok || r=failed + chk "mode none has nothing to release" "$r" "ok" + FAN_ZONE=""; FAN_SAVED_POLICY="" + FAN_MODE=pwm; PWM_PATH="$h/pwm1"; PWM_ENABLE_PATH="$h/pwm1_enable" + rm -f "$h/pwm1_enable"; ln -s /dev/null "$h/pwm1_enable"; echo 5 > "$h/pwm1" + FAN_SAVED_ENABLE=1; FAN_SAVED_PWM=120 + tg_fan_release && r=ok || r=failed + chk "a pwm release that is not read back keeps the saved values and fails" \ + "$r/$FAN_SAVED_ENABLE/$FAN_SAVED_PWM" "failed/1/120" + rm -f "$h/pwm1_enable"; echo 0 > "$h/pwm1_enable" + tg_fan_release && r=ok || r=failed + chk "and the retry with the same values succeeds and clears them" \ + "$r/$(cat "$h/pwm1_enable")/$(cat "$h/pwm1")/${FAN_SAVED_ENABLE:-empty}/${FAN_SAVED_PWM:-empty}" \ + "ok/1/120/empty/empty" + FAN_MODE=none; PWM_PATH=""; PWM_ENABLE_PATH=""; FAN_SAVED_ENABLE=""; FAN_SAVED_PWM="" + FAN_CDEV=""; FAN_ZONE="" + + # The takeover record. Each part passes its check where it is recorded and + # where it is read, and one that fails makes the record unresolved. + chk_path tg_fan_dev_ok "" accept + chk_path tg_fan_dev_ok "$DEVICES_ROOT/platform/pwm-fan" accept + chk_path tg_fan_dev_ok "$DEVICES_ROOT/platform/soc/11d00000.pwm:fan@0+1" accept + chk_path tg_fan_dev_ok "$DEVICES_ROOT/platform/../platform/pwm-fan" reject + chk_path tg_fan_dev_ok "$DEVICES_ROOT/platform/pwm-fan,1" reject + chk_path tg_fan_dev_ok "$dir/elsewhere/pwm-fan" reject + chk_path tg_fan_dev_ok "$DEVICES_ROOT/$(printf '%0200d' 0)" reject + chk_path tg_boot_ok "$SELFTEST_BOOT" accept + chk_path tg_boot_ok "${SELFTEST_BOOT%?}" reject + chk_path tg_boot_ok 4F0C9D1E-6A2B-4C3D-8E5F-0A1B2C3D4E5F reject + chk_path tg_boot_ok '4f0c9d1e-6a2b-4c3d-8e5f-0a1b2c3d4e5;' reject + chk_path tg_fan_attr_ok pwm1 accept + chk_path tg_fan_attr_ok pwm12 accept + chk_path tg_fan_attr_ok pwm123 reject + chk_path tg_fan_attr_ok pwm1_enable reject + rec_load() { # state lines + tg_selftest_scratch "$STATE" + printf '%s\n' "$@" > "$STATE"; tg_state_load + } + rec="FAN_TAKEN=pwm FAN_BOOT=$SELFTEST_BOOT FAN_T_NAME=pwmfan FAN_T_ATTR=pwm1 FAN_T_FULL=255" + # shellcheck disable=SC2086 # rec holds five state lines + rec_load STAGE=-1 $rec "FAN_T_DEV=$DEVICES_ROOT/platform/pwm-fan" + chk "a complete pwm record loads as one to resolve" \ + "$FAN_TAKEN/$FAN_T_FULL/$FAN_T_DEV/$FAN_UNRESOLVED" \ + "pwm/255/$DEVICES_ROOT/platform/pwm-fan/0" + for t in FAN_TAKEN=fan 'FAN_T_NAME=pwm;fan' FAN_T_NAME=pwmfan=1 FAN_T_ATTR=pwm1_enable \ + 'FAN_T_ZONE=a b' FAN_T_ZONE=cpu-thermal FAN_BOOT=4f0c FAN_T_DEV=/etc/passwd \ + FAN_UNRESOLVED=yes FAN_T_FULL=256 FAN_T_FULL=x; do + # shellcheck disable=SC2086 # rec holds five state lines + rec_load STAGE=-1 $rec "$t" + chk "a record with $t loads unresolved" "$FAN_UNRESOLVED" "1" + done + rec_load STAGE=-1 FAN_TAKEN=pwm FAN_T_NAME=pwmfan FAN_T_ATTR=pwm1 FAN_T_FULL=255 + chk "so does one without a boot id" "$FAN_UNRESOLVED" "1" + rec_load STAGE=-1 FAN_TAKEN=pwm "FAN_BOOT=$SELFTEST_BOOT" FAN_T_NAME=pwmfan FAN_T_ATTR=pwm1 + chk "so does a pwm record without the full speed value it forced" "$FAN_UNRESOLVED" "1" + rec_load STAGE=-1 FAN_TAKEN=cooling_device "FAN_BOOT=$SELFTEST_BOOT" FAN_T_NAME=pwm-fan \ + FAN_T_FULL=255 + chk "and a cooling device record with one" "$FAN_UNRESOLVED" "1" + rec_load STAGE=-1 FAN_TAKEN=pwm 'FAN_T_NAME=a;reboot'; tg_state_save + chk "a part that failed its check is not written back" \ + "$(sed -n 's/^FAN_T_NAME=//p' "$STATE")/$(sed -n 's/^FAN_UNRESOLVED=//p' "$STATE")" "/1" + # Boot: only a valid id of another boot drops a record, said when it is saved. + other=00000000-1111-2222-3333-444444444444 + rec_load STAGE=0 FAN_TAKEN=pwm "FAN_BOOT=$other" FAN_T_NAME=pwmfan FAN_T_ATTR=pwm1 \ + FAN_SAVED_PWM=33 FAN_UNRESOLVED=1 + chk "a record from another boot goes at load, unresolved or not" \ + "$FAN_TAKEN/$FAN_SAVED_PWM/$FAN_UNRESOLVED" "//0" + : > "$EVLOG"; ( tg_status >/dev/null 2>&1 ) + chk "a status call saves nothing and says nothing" \ + "$(grep -c 'earlier boot' "$EVLOG")/$(sed -n 's/^FAN_SAVED_PWM=//p' "$STATE")" "0/33" + : > "$dir/syslog"; tg_state_load; tg_state_save; tg_state_save + chk "the drop is said once, at notice, when it is saved" \ + "$(grep -c 'earlier boot' "$EVLOG")/$(tg_selftest_prio \ + 'fan takeover record from an earlier boot discarded, its forcing ended with that boot')" \ + "1/daemon.notice" + tg_selftest_scratch "$BOOT_ID_FILE"; rm -f "$BOOT_ID_FILE" + rec_load STAGE=0 FAN_TAKEN=pwm "FAN_BOOT=$other" FAN_T_NAME=pwmfan FAN_T_ATTR=pwm1 \ + FAN_T_FULL=255 + chk "without this boot's id nothing proves a reboot, the record stays" \ + "$FAN_TAKEN/$FAN_UNRESOLVED" "pwm/0" + echo "$SELFTEST_BOOT" > "$BOOT_ID_FILE" + rec_load STAGE=0 FAN_SAVED_PWM=33 + chk "saved values without a record are an older state's: unresolved" \ + "$FAN_UNRESOLVED/$FAN_SAVED_PWM" "1/33" + rec_load STAGE=0 + chk "nothing saved is no record at all" "$FAN_UNRESOLVED/$FAN_TAKEN" "0/" + unset -f rec_load + # Resolution scans and never uses a stored path. Without a device link the + # name has to be unique, and the recorded output has to be there. + saved_hwmon=$HWMON_ROOT; HWMON_ROOT="$dir/hwmon-rec" + rec_chip() { # $1 index, $2 name + tg_selftest_scratch "$HWMON_ROOT/hwmon$1" + mkdir -p "$HWMON_ROOT/hwmon$1"; echo "$2" > "$HWMON_ROOT/hwmon$1/name" + echo 0 > "$HWMON_ROOT/hwmon$1/pwm1" + } + rec_chip 0 nct6775; rec_chip 1 pwmfan; tg_selftest_pwm_rec + tg_fan_resolve && r=$FAN_TGT_PWM || r=none + chk "a record without a device link finds the one chip of its name" \ + "$r" "$HWMON_ROOT/hwmon1/pwm1" + rec_chip 2 pwmfan + tg_fan_resolve && r=$FAN_TGT_PWM || r=none + chk "two chips of that name are no match" "$r" "none" + tg_selftest_scratch "$HWMON_ROOT/hwmon2"; rm -rf "$HWMON_ROOT/hwmon2"; FAN_T_ATTR=pwm2 + tg_fan_resolve && r=$FAN_TGT_PWM || r=none + chk "nor is a chip without the recorded output" "$r" "none" + HWMON_ROOT=$saved_hwmon; unset -f rec_chip + tg_selftest_tree "$THERMAL_ROOT" bpi; tg_selftest_cdev_rec "$THERMAL_ROOT" + tg_fan_resolve && r="$FAN_TGT_CDEV|$FAN_TGT_ZONE" || r=none + chk "a cooling device record finds the device and the zone that drives it" \ + "$r" "$THERMAL_ROOT/cooling_device0|$THERMAL_ROOT/thermal_zone0" + z9="$THERMAL_ROOT/thermal_zone9"; tg_selftest_scratch "$z9"; mkdir -p "$z9" + echo cpu-thermal > "$z9/type"; ln -s ../cooling_device0 "$z9/cdev0" + tg_fan_resolve && r="$FAN_TGT_CDEV|$FAN_TGT_ZONE" || r=none + chk "two zones of the recorded type that drive it are no match" "$r" "none" + rm -rf "$z9"; FAN_T_ZONE='board-thermal' + tg_fan_resolve && r="$FAN_TGT_CDEV|$FAN_TGT_ZONE" || r=none + chk "nor is a zone of another type" "$r" "none" + # A fan the record cannot name is still forced, more cooling is the safe + # side. Its record is unresolved and takes no new values on a later force. + tg_selftest_tree "$THERMAL_ROOT" bpi; tg_fan_record_drop + z="$THERMAL_ROOT/thermal_zone0"; fc="$THERMAL_ROOT/cooling_device0" + FAN_MODE=cooling_device; FAN_CDEV=$fc; FAN_ZONE=$z + tg_fan_full && r=ok || r=failed + chk "a fan without a usable identity is forced, its record saved and unresolved" \ + "$r/$(cat "$z/policy")/$FAN_TAKEN/$FAN_UNRESOLVED/$FAN_SAVED_POLICY/$(sed -n \ + 's/^FAN_UNRESOLVED=//p' "$STATE")" "ok/user_space/cooling_device/1/step_wise/1" + echo fair_share > "$z/policy" + tg_fan_full && r=ok || r=failed + chk "a later force takes no new values" "$r/$(cat "$z/policy")/$FAN_SAVED_POLICY" \ + "ok/user_space/step_wise" + tg_fan_release && r=ok || r=failed + chk "and its release writes nothing" "$r/$(cat "$z/policy")" "failed/user_space" + FAN_MODE=none; FAN_CDEV=""; FAN_ZONE=""; tg_state_clear; rm -f "$STATE" + # Sensor lines in the status file: one name and one number each. A missing # line end runs two sensors together, a doubled one leaves an empty line. for t in 1:wmac:45000 2:nvme:38000; do @@ -1756,10 +3748,7 @@ tg_selftest() { r=${t#*:}; echo "${r%%:*}" > "$THERMAL_ROOT/thermal_zone${t%%:*}/type" echo "${r#*:}" > "$THERMAL_ROOT/thermal_zone${t%%:*}/temp" done - # No real radios: tg_read_mtwifi would ask iwpriv on this board. - saved_net=$NET_ROOT; NET_ROOT="$dir/no-net" tg_status_write - NET_ROOT=$saved_net r=ok while IFS='=' read -r k v; do case "$k" in sensor.*) ;; *) continue ;; esac @@ -1773,7 +3762,7 @@ tg_selftest() { # The processor is no extra sensor: not by path, and not as the hwmon # mirror of its zone, whatever that zone is called. - saved_cpu=$CPU_TEMP_PATH; saved_net=$NET_ROOT; NET_ROOT="$dir/no-net" + saved_cpu=$CPU_TEMP_PATH z0="$THERMAL_ROOT/thermal_zone0"; h1="$HWMON_ROOT/hwmon1"; mkdir -p "$h1" # The mirror is named as the kernel does it: "-" in the type becomes "_", # as on the Banana Pi R3 Mini (zone cpu-thermal, hwmon cpu_thermal). @@ -1808,9 +3797,9 @@ tg_selftest() { "$(printf '%s\n' "$r" | grep -c -e '^board-cpu=' -e '^board_cpu=')/$(printf '%s\n' "$r" | grep -c '^wmac=45$')" "0/1" rm -f "$THERMAL_ROOT/thermal_zone5" "$HWMON_ROOT/hwmon7"; rm -rf "$dir/devices" rm -rf "$h1" "$h3"; rm -f "$z0/type" - CPU_TEMP_PATH=$saved_cpu; NET_ROOT=$saved_net + CPU_TEMP_PATH=$saved_cpu - THERMAL_ROOT=$saved_root; HWMON_ROOT=$saved_hwmon; STAGE=-1; TRIP_BOOST=off + STAGE=-1; TRIP_BOOST=off # Stage actions are checked by reading the result back, not by trusting the # command. Everything that would reach the modem or netifd is replaced by a @@ -1874,12 +3863,17 @@ tg_selftest() { chk "and makes no logger call" "$(wc -l < "$dir/syslog" | tr -d ' ')" "0" chk "and leaves the event log alone" "$(wc -l < "$EVLOG" | tr -d ' ')" "0" - CFUN_SETTLE=0; SELFTEST_CFUN=1; SELFTEST_CFUN_STICKS=1 + CFUN_SETTLE=0; SELFTEST_CFUN=1; SELFTEST_CFUN_STICKS=1; SELFTEST_CFUN_REFUSE="" tg_modem_port() { echo /dev/selftest; } tg_at() { case "$2" in 'AT+CFUN?') echo "+CFUN: $SELFTEST_CFUN"; echo OK ;; - AT+CFUN=*) [ "$SELFTEST_CFUN_STICKS" = 1 ] && SELFTEST_CFUN=${2#AT+CFUN=}; echo OK ;; + AT+CFUN=*) + # One level can be made to bounce, the others stick. + if [ "$SELFTEST_CFUN_STICKS" = 1 ] && [ "${2#AT+CFUN=}" != "$SELFTEST_CFUN_REFUSE" ]; then + SELFTEST_CFUN=${2#AT+CFUN=} + fi + echo OK ;; esac } : > "$EVLOG" @@ -1901,7 +3895,7 @@ tg_selftest() { # so it is crit like any failed action. : > "$dir/syslog"; : > "$EVLOG" SELFTEST_CFUN_STICKS=0; SELFTEST_CFUN=4 - tg_undo_action modem_radio_off + tg_undo_recorded modem_radio_off SELFTEST_CFUN_STICKS=1 chk "a failed undo is daemon.crit" \ "$(tg_selftest_prio 'could not switch the modem back on')" "daemon.crit" @@ -1986,7 +3980,7 @@ tg_selftest() { echo "skip interface and Wi-Fi actions (host only: timeout here would not run the" \ "stand-ins, typically the BusyBox applet; the target runs coreutils-timeout)" elif ! command -v jsonfilter >/dev/null 2>&1; then - echo "skip interface and Wi-Fi actions (no jsonfilter here, see CLAUDE.md)" + echo "skip interface and Wi-Fi actions (no jsonfilter here)" else echo true > "$dir/iface.up"; echo 1 > "$dir/iface.sticks" UPLINK_INTERFACE=wwan; ACTION_INTERFACE="" @@ -2160,6 +4154,1275 @@ tg_selftest() { unset -f tg_fetcher PATH=$saved_path; NOTIFY_URL="" + # Model names reach the log, the status file and a glob match, so only a + # plain name passes. + chk "a plain model passes tg_name" "$(tg_name RM520N-GL)" "RM520N-GL" + chk "dots and underscores pass" "$(tg_name FM350-GL_01.2)" "FM350-GL_01.2" + chk "a semicolon is dropped" "$(tg_name 'RM520N;reboot')" "" + chk "a space is dropped" "$(tg_name 'RM520N GL')" "" + chk "a glob is dropped" "$(tg_name 'RM*')" "" + chk "an empty model is dropped" "$(tg_name '')" "" + chk "32 characters pass" "$(tg_name abcdefghijklmnopqrstuvwxyz012345)" \ + "abcdefghijklmnopqrstuvwxyz012345" + chk "33 characters are dropped" "$(tg_name abcdefghijklmnopqrstuvwxyz0123456)" "" + + # AT+CGMM through the same helper as the temperature. The stand-in answers + # the way sms_tool prints it: echo, reply, empty line, OK. It keeps the CFUN + # behaviour of the stand-in above and counts the model queries. + SELFTEST_CGMM='RM520N-GL' + tg_at() { + case "$2" in + AT+CGMM) + echo x >> "$dir/cgmm.calls" + printf 'AT+CGMM\r\n%s\r\n\r\nOK\r\n' "$SELFTEST_CGMM" ;; + 'AT+CFUN?') echo "+CFUN: $SELFTEST_CFUN"; echo OK ;; + AT+CFUN=*) + if [ "$SELFTEST_CFUN_STICKS" = 1 ] && [ "${2#AT+CFUN=}" != "$SELFTEST_CFUN_REFUSE" ]; then + SELFTEST_CFUN=${2#AT+CFUN=} + fi + echo OK ;; + esac + } + saved_src=$MODEM_SOURCE; MODEM_SOURCE=quectel + chk "the model is read with AT+CGMM" "$(tg_modem_model)" "RM520N-GL" + SELFTEST_CGMM='+CGMM: FM350-GL' + chk "a +CGMM: prefix is dropped" "$(tg_modem_model)" "FM350-GL" + SELFTEST_CGMM='+CGMM: "FM350-GL"' + chk "quotes around the model are dropped" "$(tg_modem_model)" "FM350-GL" + # An unsolicited result code can arrive before the reply. + SELFTEST_CGMM=$(printf '+QIND: "csq",20,99\r\nRM520N-GL') + chk "a result code before the model is skipped" "$(tg_modem_model)" "RM520N-GL" + SELFTEST_CGMM='RM520N;reboot' + chk "a garbled model gives none" "$(tg_modem_model)" "" + MODEM_SOURCE=none; SELFTEST_CGMM='RM520N-GL' + chk "no modem, no model" "$(tg_modem_model)" "" + + # The modem-model hook, for boxes where ModemManager owns the port. + saved_hooks=$HOOK_DIR; saved_at=$AT_TIMEOUT + HOOK_DIR="$dir/hooks-model"; MODEM_SOURCE="command"; AT_TIMEOUT=1 + mkdir -p "$HOOK_DIR" + printf '#!/bin/sh\necho " FM350-GL "\necho second line\n' > "$HOOK_DIR/modem-model" + chmod 0755 "$HOOK_DIR/modem-model" + chk "the modem-model hook gives its first line, trimmed" "$(tg_modem_model)" "FM350-GL" + printf '#!/bin/sh\necho FM350-GL\nexec sleep 30\n' > "$HOOK_DIR/modem-model" + t0=$(date +%s); r=$(tg_modem_model); t1=$(date +%s) + [ $((t1 - t0)) -le 7 ] && r="$r/in time" || r="$r/took $((t1 - t0)) s" + chk "a modem-model hook stopped at its time limit gives none" "$r" "/in time" + rm -f "$HOOK_DIR/modem-model" + chk "no hook, no model" "$(tg_modem_model)" "" + HOOK_DIR=$saved_hooks; MODEM_SOURCE=$saved_src; AT_TIMEOUT=$saved_at + + # Modem table. Planted, never the shipped one, so these cases do not move + # when a line is added there. + saved_table=$MODEM_TABLE; MODEM_TABLE="$dir/modems" + { + echo '# a comment' + echo '' + printf 'RM520N-GL*\t85\t95\tmeasured on a planted board\n' + echo 'RM520N-GL* 60 70 shadowed by the line above' + echo 'BAD[1]* 80 88 a bracket is not allowed' + echo 'LOW* 30 88 warn below 40' + echo 'HIGH* 80 130 crit above 120' + echo 'EQUAL* 85 85 warn not below crit' + echo 'NOSRC* 80 88' + echo 'RM5* 82 92 generic after the specific one' + echo 'PAD* 085 095 zero padded' + } > "$MODEM_TABLE" + chk "a model matches its line, case does not matter" \ + "$(tg_profile_lookup rm520n-gl)" "RM520N-GL* 85 95" + chk "the first matching line wins" "$(tg_profile_lookup RM520N-GL)" "RM520N-GL* 85 95" + chk "a generic line catches the rest of the family" \ + "$(tg_profile_lookup RM500Q-GL)" "RM5* 82 92" + chk "an unknown model has no profile" "$(tg_profile_lookup FM160-EAU)" "" + for m in BAD1x LOWx HIGHx EQUALx NOSRCx; do + chk "an invalid line never matches ($m)" "$(tg_profile_lookup "$m")" "" + done + chk "the invalid lines are found by number" "$(tg_profile_check | tr '\n' ' ')" "5 6 7 8 9 " + MODEM_TABLE="$dir/no-such-table" + chk "a missing table gives no profile" "$(tg_profile_lookup RM520N-GL)" "" + chk "and no invalid lines" "$(tg_profile_check)" "" + # The shipped table, so a broken line is caught before a release. + MODEM_TABLE="$LIB_DIR/modems" + chk "the shipped modem table is there" "$([ -r "$MODEM_TABLE" ] && echo yes || echo no)" "yes" + chk "and has no invalid line" "$(tg_profile_check)" "" + MODEM_TABLE="$dir/modems" + PROFILE_MODEL=""; MODEM_MODEL=RM520N-GL; tg_profile_resolve + chk "a resolved profile is kept" "$PROFILE_MATCH/$PROFILE_WARN/$PROFILE_CRIT" "RM520N-GL*/85/95" + MODEM_MODEL=FM160-EAU; tg_profile_resolve + chk "a new model resolves again" "$PROFILE_MATCH/$PROFILE_WARN/$PROFILE_CRIT" "//" + MODEM_MODEL=PADx; tg_profile_resolve + chk "a padded line gives plain warn and crit" \ + "$PROFILE_MATCH/$PROFILE_WARN/$PROFILE_CRIT" "PAD*/85/95" + MODEM_MODEL=""; tg_profile_resolve + chk "no model, no profile" "$PROFILE_MATCH" "" + MODEM_TABLE=$saved_table + + # Threshold resolution: built in pair, then the profile, then UCI option by + # option. An implausible pair falls back to the profile, without one to the + # built in pair, and the CPU triple is judged on its own. + saved_table=$MODEM_TABLE; MODEM_TABLE="$dir/modems" + chk_thr() { # $1 label, $2 UCI warn, $3 UCI crit, $4 expected warn/crit/src/src + CPU_WARN=70; CPU_CRIT=80; CPU_EMERGENCY=90; MODEM_WARN=80; MODEM_CRIT=88 + UCI_MODEM_WARN=$2; UCI_MODEM_CRIT=$3 + tg_cfg_thresholds + chk "$1" "$MODEM_WARN/$MODEM_CRIT/$MODEM_WARN_SRC/$MODEM_CRIT_SRC" "$4" + } + MODEM_MODEL=RM520N-GL; PROFILE_MODEL="" + chk_thr "the profile applies while UCI sets nothing" "" "" "85/95/profile/profile" + chk_thr "a UCI warn overrides warn only" 90 "" "90/95/uci/profile" + chk_thr "an implausible pair falls back to the profile" 96 "" "85/95/profile/profile" + chk_thr "both values from UCI" 85 95 "85/95/uci/uci" + MODEM_MODEL=FM160-EAU + chk_thr "no profile, the built in pair" "" "" "80/88/default/default" + chk_thr "no profile, an implausible pair falls back to built in" 90 85 "80/88/default/default" + MODEM_MODEL=RM520N-GL + CPU_WARN=85; CPU_CRIT=80; CPU_EMERGENCY=90; UCI_MODEM_WARN=""; UCI_MODEM_CRIT="" + tg_cfg_thresholds + chk "implausible cpu values fall back without touching the modem pair" \ + "$CPU_WARN/$CPU_CRIT/$CPU_EMERGENCY/$MODEM_WARN/$MODEM_CRIT" "70/80/90/85/95" + + # The detected model for the one shot commands, read back through tg_name. + MODEM_MODEL=FM350-GL; tg_model_save; MODEM_MODEL=""; tg_model_load + chk "the detected model is there for the one shot commands" "$MODEM_MODEL" "FM350-GL" + printf 'FM350;reboot\n' > "$STATE_DIR/modem-model"; MODEM_MODEL=""; tg_model_load + chk "a junk model file loads nothing" "$MODEM_MODEL" "" + + # Detection: three unanswered queries, then silence until the next start. + saved_src=$MODEM_SOURCE; MODEM_SOURCE=quectel; DAEMON=1; : > "$EVLOG" + MODEM_MODEL=""; MODEL_TRIES=0; SELFTEST_CGMM=""; rm -f "$dir/cgmm.calls" + for c in 1 2 3 4 5; do tg_model_detect; done + chk "an unanswered AT+CGMM is asked three times, then not again" \ + "$(wc -l < "$dir/cgmm.calls" | tr -d ' ')" "3" + chk "and reported once" "$(grep -c 'modem model not detected after 3 attempts' "$EVLOG")" "1" + MODEL_TRIES=0; SELFTEST_CGMM=RM520N-GL; : > "$EVLOG"; tg_model_detect + chk "a detected model is logged with its profile" \ + "$(grep -c 'modem RM520N-GL, profile RM520N-GL\* (warn 85, crit 95)' "$EVLOG")" "1" + chk "and written for the one shot commands" "$(cat "$STATE_DIR/modem-model")" "RM520N-GL" + chk "and its limits apply at once" "$MODEM_WARN/$MODEM_CRIT/$MODEM_WARN_SRC" "85/95/profile" + DAEMON=0; MODEM_SOURCE=$saved_src; MODEM_TABLE=$saved_table + MODEM_MODEL=""; PROFILE_MODEL=""; PROFILE_MATCH=""; PROFILE_WARN=""; PROFILE_CRIT="" + UCI_MODEM_WARN=""; UCI_MODEM_CRIT=""; rm -f "$STATE_DIR/modem-model" + CPU_WARN=70; CPU_CRIT=80; CPU_EMERGENCY=90; MODEM_WARN=80; MODEM_CRIT=88 + + # Automatic recovery. The cause first, then the pure decisions, then the + # action against the CFUN stand-in. tgd feeds one reading the way tg_cycle + # does (LAST_TS follows the decision), feed runs readings every 20 seconds. + CPU_WARN=70; CPU_CRIT=80; CPU_EMERGENCY=90; MODEM_WARN=80; MODEM_CRIT=88 + HOLD_MINUTES=3; HYSTERESIS=10; INTERVAL=20 + AUTO_RECOVER=1; RECOVER_MINUTES=10; RECOVER_MAX=3; STAGE1_ACTION=modem_radio_off + tgd() { tg_decide "$1" "$2" "$3"; LAST_TS=$3; } + feed() { # $1 cpu, $2 modem, $3 first time, $4 last time + local t=$3 + while [ "$t" -le "$4" ]; do tgd "$1" "$2" "$t"; t=$((t + 20)); done + } + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + chk "a hot modem alone is the cause of stage 1" "$STAGE/$CAUSE1" "1/modem" + tg_state_clear; tgd 85 60 1000; tgd 85 60 1020 + chk "a hot processor is the cause of stage 1" "$STAGE/$CAUSE1" "1/cpu" + tg_state_clear; tgd 85 90 1000; tgd 85 90 1020 + chk "both hot counts as the processor" "$STAGE/$CAUSE1" "1/cpu" + tg_state_clear; tgd 85 '' 1000; tgd 85 '' 1020 + chk "no modem reading counts as the processor" "$STAGE/$CAUSE1" "1/cpu" + tg_state_clear; tgd '' 90 1000; tgd '' 90 1020 + chk "a hot modem without a processor reading is the modem" "$STAGE/$CAUSE1" "1/modem" + + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + tgd 60 70 1040 + chk "the first cool reading starts the streak and reports cooled" \ + "$DECISION/$COOL_SINCE" "cooled/1040" + feed 60 70 1060 1600 + chk "before recover_minutes nothing happens" "$DECISION/$STAGE" "none/1" + feed 60 70 1620 1640 + chk "after recover_minutes stage 1 is to recover" "$DECISION/$RECOVER_WIN/$RECOVER_N" \ + "recover/1640/0" + + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + tgd 60 70 1040; tgd 60 '' 1060; tgd 60 70 1080 + chk "a missing modem reading restarts the streak" "$COOL_SINCE" "1080" + tgd 60 75 1100 + chk "a warm reading ends it" "$COOL_SINCE" "0" + tgd 60 70 1120; tgd 95 70 1140 + chk "a first hot hit toward stage 2 ends it as well" "$COOL_SINCE/$PENDING" "0/2" + + # On a board with a sensor a missing processor reading is not cool either. + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + tgd 60 70 1040; tgd '' 70 1060 + chk "a missing processor reading ends the streak" "$COOL_SINCE" "0" + tgd 60 70 1080 + chk "and the next reading starts a new one" "$COOL_SINCE" "1080" + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + tgd '' 70 1040; feed '' 70 1060 1700 + chk "without processor readings stage 1 stays" "$DECISION/$STAGE" "none/1" + # A board without any sensor has only the modem to go by. + NO_SENSOR=1 + tg_state_clear; tgd '' 90 1000; tgd '' 90 1020 + tgd '' 70 1040; feed '' 70 1060 1640 + chk "a board without any sensor recovers on the modem alone" "$DECISION/$STAGE" "recover/1" + NO_SENSOR=0 + + # Readings that stop and come back are not a cool streak. + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + tgd 60 70 1040; tgd 60 70 4640 + chk "a gap in the readings restarts the streak" "$DECISION/$COOL_SINCE" "none/4640" + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + tgd 60 70 1040; tgd 60 70 $((1040 + INTERVAL * 3 + 60)) + chk "a gap at the limit keeps it" "$COOL_SINCE" "1040" + tgd 60 70 $((1040 + INTERVAL * 3 + 60 + INTERVAL * 3 + 61)) + chk "one second past the limit restarts it" "$COOL_SINCE" "$((1040 + INTERVAL * 6 + 121))" + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + feed 60 70 1040 1100; tgd 60 70 1080 + chk "a clock stepped back restarts it" "$DECISION/$COOL_SINCE" "none/1080" + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + feed 60 70 1040 1600; LAST_TS=0; tgd 60 70 1640 + chk "a state without a previous reading restarts it" "$DECISION/$COOL_SINCE" "none/1640" + + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + RECOVER_WIN=900; RECOVER_N=3 + tgd 60 70 1040; feed 60 70 1060 1640 + chk "the cap stops a recovery and says so" "$DECISION/$STAGE/$RECOVER_TOLD" \ + "recover_capped/1/1" + tgd 60 70 1660 + chk "and says it once" "$DECISION/$STAGE" "none/1" + # Continuous readings across a day: the streak is old, the previous reading 20 s ago. + LAST_TS=87380; tgd 60 70 87400 + chk "a capped and told stage does not recover after 24 hours" \ + "$DECISION/$STAGE/$RECOVER_N" "none/1/3" + # A stage that never hit the cap, entered after the window ended, opens a new one. + tg_state_clear; RECOVER_WIN=900; RECOVER_N=3; RECOVER_TOLD=0 + tgd 60 90 87000; tgd 60 90 87020; tgd 60 70 87040; feed 60 70 87060 87640 + chk "a new stage after the window ended recovers and counts again" \ + "$DECISION/$RECOVER_N/$RECOVER_WIN" "recover/0/87640" + + # The cap as the messages and the page see it. + chk_capped() { # $1 label, $2 now, $3 capped or open + if tg_recover_capped "$2"; then chk "$1" capped "$3"; else chk "$1" open "$3"; fi + } + tg_state_clear; RECOVER_TOLD=1 + chk_capped "a told cap is capped" 1000 capped + RECOVER_TOLD=0; RECOVER_N=3; RECOVER_WIN=900 + chk_capped "the count at the max within the window is capped" 87299 capped + chk_capped "the count at the max after the window is open" 87300 open + RECOVER_N=2 + chk_capped "a count below the max is open" 1000 open + + # The undo follows the action that ran at entry, not the one configured now. + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + chk "stage 1 records its action" "$ACTION1" "modem_radio_off" + STAGE1_ACTION=wifi_off; tgd 60 70 1040; feed 60 70 1060 1700 + chk "an action changed during the stage blocks the recovery" \ + "$DECISION/$STAGE/$COOL_SINCE" "none/1/0" + STAGE1_ACTION=modem_radio_off + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020; ACTION1="" + tgd 60 70 1040; feed 60 70 1060 1700 + chk "a stage without a recorded action waits for a reset" "$DECISION/$STAGE" "none/1" + STAGE1_ACTION=$(printf 'none\nGEN=99') + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + chk "an unknown action is recorded as none at all" "${ACTION1:-empty}" "empty" + STAGE1_ACTION=modem_radio_off + + # What the page is told about the recovery, one word computed here. + chk_rs() { # $1 label, $2 expected + chk "recover_state: $1" "$(tg_recover_state 2000)" "$2" + } + tg_state_clear; STAGE=1; CAUSE1=modem; ACTION1=modem_radio_off + AUTO_RECOVER=0; chk_rs "empty with auto_recover 0" "" + AUTO_RECOVER=1; STAGE=2; chk_rs "empty in stage 2" "" + STAGE=0; chk_rs "empty in stage 0" "" + STAGE=1; CAUSE1=cpu; chk_rs "a cool processor and no modem reading at entry" nomodem + CPU_SEEN=1; chk_rs "the processor was warm" cpu + CPU_SEEN=0; CAUSE1=""; chk_rs "no recorded cause" nocause + CAUSE1=modem; ACTION1="command"; STAGE1_ACTION="command"; chk_rs "a hook ran" action + STAGE1_ACTION=modem_radio_off; ACTION1=""; chk_rs "no recorded action" action + ACTION1=wifi_off; chk_rs "the action changed" action + ACTION1=modem_radio_off; RECOVER_TOLD=1; chk_rs "the cap holds" capped + RECOVER_TOLD=0; chk_rs "no cool streak yet" cooling + COOL_SINCE=1900; chk_rs "a cool streak runs" planned + chk "and it has a planned time" "$(tg_recover_at 2000)" "2500" + RECOVER_TOLD=1 + chk "no planned time while the cap holds" "$(tg_recover_at 2000)" "" + # A recovery hands the fan back. With an unresolved record that fails every + # time, and the modem would go on and off up to recover_max times a day. + RECOVER_TOLD=0; FAN_UNRESOLVED=1; chk_rs "an unresolved fan record" fan + chk "and no recovery applies while it is unresolved" \ + "$(tg_recover_applies && echo yes || echo no)/$(tg_recover_at 2000)" "no/" + FAN_UNRESOLVED=0; tg_status_write + chk "the status file carries recover_state" \ + "$(sed -n 's/^recover_state=//p' "$STATUS_FILE")" "planned" + # Stage 0 by the modem, then the modem goes silent and stage 1 follows on time. + tg_state_clear; tgd 60 85 1000; tgd 60 85 1020; feed 60 '' 1040 1240 + chk "a stage 1 the modem had no reading for is told as such" \ + "$STAGE/$CAUSE1/$CPU_SEEN/$(tg_recover_state 1300)" "1/cpu/0/nomodem" + + # What the ledger on the overlay says, win/n/told. + ledger() { + printf '%s/%s/%s' "$(sed -n 's/^RECOVER_WIN=//p' "$PERSIST_DIR/recover" 2>/dev/null)" \ + "$(sed -n 's/^RECOVER_N=//p' "$PERSIST_DIR/recover" 2>/dev/null)" \ + "$(sed -n 's/^RECOVER_TOLD=//p' "$PERSIST_DIR/recover" 2>/dev/null)" + } + + # The cooled message promises a recovery only where one can happen. + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020; : > "$EVLOG" + tg_cycle 60 70 1040 >/dev/null 2>&1 + chk "cooled promises the recovery where it applies" \ + "$(grep -c 'Stage 1 clears on its own' "$EVLOG")" "1" + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020; RECOVER_WIN=900; RECOVER_N=3; : > "$EVLOG" + tg_cycle 60 70 1040 >/dev/null 2>&1 + chk "but not while the cap holds" "$(grep -c 'Stage 1 stays active' "$EVLOG")" "1" + # A blocked recovery is a change of state, so the latch survives a reboot. + feed 60 70 1060 1620; rm -f "$PERSIST" "$PERSIST_DIR/recover" + DRY=1; tg_cycle 60 70 1640 >/dev/null 2>&1; DRY=0; RECOVER_TOLD=0 + chk "a dry run of the blocked recovery writes no ledger" \ + "$DECISION/$([ -e "$PERSIST_DIR/recover" ] && echo written || echo none)" "recover_capped/none" + tg_cycle 60 70 1640 >/dev/null 2>&1 + chk "a blocked recovery reaches the overlay" \ + "$DECISION/$(sed -n 's/^RECOVER_TOLD=//p' "$PERSIST" 2>/dev/null)" "recover_capped/1" + chk "and the ledger carries the latch" "$(ledger)" "900/3/1" + chk "and is reported with the attempts it counted" \ + "$(grep -c 'stage 1 stays: 3 automatic recovery attempts in 24 h' "$EVLOG")" "1" + rm -f "$PERSIST" "$STATE" "$PERSIST_DIR/recover" + + # The restore message says what happens next with the stage. + saved_fan=$FAN_MODE; FAN_MODE=none; STAGE1_ACTION=none + restore_says() { # prints "/" as counts + tg_selftest_scratch "$STATE" "$EVLOG"; rm -f "$STATE"; : > "$EVLOG"; tg_state_restore + printf '%s/%s' "$(grep -c 'Stage 1 clears on its own' "$EVLOG")" \ + "$(grep -c "Clear it with 'thermal-guard reset'" "$EVLOG")" + } + tg_state_clear; STAGE=1; CAUSE1=modem; ACTION1=none; tg_state_persist + chk "a restored stage that clears on its own says so" "$(restore_says)" "1/0" + tg_state_clear; STAGE=1; CAUSE1=modem; ACTION1=none; RECOVER_TOLD=1; tg_state_persist + chk "a capped one still asks for a reset" "$(restore_says)" "0/1" + # The stage file is older than the ledger, which alone knows the cap. + tg_state_clear; STAGE=1; CAUSE1=modem; ACTION1=none; tg_state_persist + printf 'RECOVER_WIN=0\nRECOVER_N=0\nRECOVER_TOLD=1\n' > "$PERSIST_DIR/recover" + chk "so does one only the ledger caps" "$(restore_says)" "0/1" + rm -f "$PERSIST_DIR/recover" + FAN_MODE=$saved_fan; STAGE1_ACTION=modem_radio_off; rm -f "$PERSIST" "$STATE" + + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020; tgd 60 70 1040 + STAGE1_ACTION="command"; feed 60 70 1060 1640 + chk "a hook action never recovers on its own" "$DECISION/$STAGE/$COOL_SINCE" "none/1/0" + STAGE1_ACTION=modem_radio_off; AUTO_RECOVER=0 + feed 60 70 1660 2300 + chk "auto_recover 0 never recovers" "$DECISION/$STAGE" "none/1" + AUTO_RECOVER=1 + tg_state_clear; STAGE=2; CAUSE1=modem; T0=1000; T1=1000; T2=1000 + tgd 60 70 1040; feed 60 70 1060 1700 + chk "stage 2 never recovers on its own" "$DECISION/$STAGE" "none/2" + tg_state_clear; tgd 85 60 1000; tgd 85 60 1020 + tgd 55 60 1040; feed 55 60 1060 1700 + chk "a stage the processor caused waits for a reset" "$DECISION/$STAGE" "none/1" + + # The action: confirmed by the CFUN stand-in, GEN stays, the count grows. + saved_fan=$FAN_MODE; FAN_MODE=none + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020; GEN=7 + tgd 60 70 1040; feed 60 70 1060 1640 + SELFTEST_CFUN=4; SELFTEST_CFUN_STICKS=1; : > "$EVLOG"; : > "$dir/syslog" + mkdir -p "$PERSIST_DIR"; echo STAGE=1 > "$PERSIST"; rm -f "$PERSIST_DIR/recover" + tg_recover 60 70 1640 && r=ok || r=failed + chk "a confirmed recovery clears stage 1" "$r/$STAGE/$SELFTEST_CFUN" "ok/-1/1" + chk "and leaves its count in the ledger, the stage file is gone" \ + "$(ledger)/$([ -e "$PERSIST" ] && echo kept || echo gone)" "1640/1/0/gone" + chk "and keeps GEN and counts itself" "$GEN/$RECOVER_N/$RECOVER_WIN" "7/1/1640" + chk "and drops the persisted stage" "$([ -e "$PERSIST" ] && echo kept || echo gone)" "gone" + chk "and is reported at notice" "$(tg_selftest_prio \ + 'auto recovery 1 of 3: modem 70 C for 10 min, stage 1 action .modem_radio_off. undone.')" \ + "daemon.notice" + tgd 60 90 1700; tgd 60 90 1720 + chk "after a recovery a hot modem escalates again" "$DECISION/$STAGE/$RECOVER_N" "stage:1/1/1" + + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + tgd 60 70 1040; feed 60 70 1060 1640 + STAGE1_ACTION=none; SELFTEST_CFUN=4; : > "$EVLOG" + tg_recover 60 70 1640 && r=ok || r=failed + chk "the recovery undoes the action that ran at entry" "$r/$SELFTEST_CFUN" "ok/1" + chk "and names it" "$(grep -c "stage 1 action 'modem_radio_off' undone" "$EVLOG")" "1" + STAGE1_ACTION=modem_radio_off + + # An operator reset that lands between the decision and the action wins: the + # file says GEN 8 and idle while the cycle still holds stage 1 of GEN 7. + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020; GEN=7 + tgd 60 70 1040; feed 60 70 1060 1620 + printf 'STAGE=-1\nGEN=8\n' > "$STATE"; SELFTEST_CFUN=4; : > "$EVLOG" + tg_cycle 60 70 1640 7 >/dev/null 2>&1 + chk "a reset during a recovery cycle wins" \ + "$DECISION/$STAGE/$GEN/$SELFTEST_CFUN" "recover/-1/8/4" + chk "and no recovery is logged" "$(grep -c 'auto recovery' "$EVLOG")" "0" + rm -f "$STATE" + + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + tgd 60 70 1040; feed 60 70 1060 1640 + SELFTEST_CFUN=4; SELFTEST_CFUN_STICKS=0; : > "$dir/syslog"; rm -f "$PERSIST_DIR/recover" + tg_recover 60 70 1640 && r=ok || r=failed + chk "an unconfirmed undo keeps stage 1 and restarts the streak" \ + "$r/$STAGE/$COOL_SINCE" "failed/1/0" + chk "and is crit" "$(tg_selftest_prio \ + 'auto recovery 1 of 3 failed: stage 1 action .modem_radio_off. could not be undone, stage 1 stays.')" \ + "daemon.crit" + chk "and counts toward the cap" "$RECOVER_N/$RECOVER_WIN" "1/1640" + chk "and the ledger has the failed attempt" "$(ledger)" "1640/1/0" + # A modem that never confirms is capped, not tried every recover_minutes. + saved_settle=$CFUN_SETTLE; CFUN_SETTLE=0 + for t in 1660 2280; do + feed 60 70 "$t" $((t + 600)); tg_recover 60 70 $((t + 600)) || : + done + chk "two more failed undos reach the cap" "$RECOVER_N/$RECOVER_WIN" "3/1640" + chk "and the ledger follows" "$(ledger)" "1640/3/0" + feed 60 70 2900 3500 + chk "and the next cool streak is capped instead of tried" "$DECISION/$STAGE" "recover_capped/1" + CFUN_SETTLE=$saved_settle + SELFTEST_CFUN_STICKS=1; FAN_MODE=$saved_fan + + # The undo is confirmed but the fan does not come back: the stage stays, the + # attempt counts and the saved governor is still there for the next try. + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + tgd 60 70 1040; feed 60 70 1060 1640 + saved_root=$THERMAL_ROOT; THERMAL_ROOT="$dir/thermal-recover" + tg_selftest_tree "$THERMAL_ROOT" bpi + z="$THERMAL_ROOT/thermal_zone0"; rm "$z/policy"; ln -s /dev/null "$z/policy" + saved_fan=$FAN_MODE; FAN_MODE=cooling_device; FAN_ZONE=$z + tg_selftest_cdev_rec "$THERMAL_ROOT"; FAN_SAVED_POLICY=step_wise + saved_off=$MODEM_RADIO_OFF_AT; MODEM_RADIO_OFF_AT='AT+CFUN=4' + SELFTEST_CFUN=4; SELFTEST_CFUN_STICKS=1; : > "$dir/syslog"; : > "$EVLOG" + rm -f "$PERSIST_DIR/recover" + tg_recover 60 70 1640 && r=ok || r=failed + chk "a fan that cannot be handed back keeps stage 1 and restarts the streak" \ + "$r/$STAGE/$COOL_SINCE/$RECOVER_N/$FAN_SAVED_POLICY" "failed/1/0/1/step_wise" + chk "and the ledger has that attempt" "$(ledger)" "1640/1/0" + chk "and the radio is off again, so the stage keeps its effect" "$SELFTEST_CFUN" "4" + chk "and is crit" "$(tg_selftest_prio \ + 'auto recovery 1 of 3 failed: the fan could not be handed back, stage 1 action .modem_radio_off. applied again, stage 1 stays.')" \ + "daemon.crit" + # The radio refuses to go off again: the box may be without that protection. + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + tgd 60 70 1040; feed 60 70 1060 1640 + tg_selftest_cdev_rec "$THERMAL_ROOT"; FAN_SAVED_POLICY=step_wise + SELFTEST_CFUN=4; SELFTEST_CFUN_REFUSE=4 + : > "$dir/syslog"; : > "$EVLOG" + tg_recover 60 70 1640 && r=ok || r=failed + chk "a radio that stays on after the failed release is reported" \ + "$r/$STAGE/$SELFTEST_CFUN" "failed/1/1" + chk "and is crit" "$(tg_selftest_prio \ + 'auto recovery 1 of 3 failed: the fan could not be handed back, and stage 1 action .modem_radio_off. could not be applied again, the box may be without that protection.')" \ + "daemon.crit" + SELFTEST_CFUN_REFUSE="" + FAN_ZONE=""; FAN_SAVED_POLICY=""; THERMAL_ROOT=$saved_root + # A partial pwm release: the mode does not read back, the duty cycle went back + # to its old value all the same. The fan is forced again with the action. Both + # go to the recorded fan, though fan_mode is none by now. + saved_hwmon=$HWMON_ROOT; HWMON_ROOT="$dir/hwmon-recover"; h="$HWMON_ROOT/hwmon0" + mkdir -p "$h"; echo pwmfan > "$h/name"; echo 0 > "$h/pwm1"; ln -s /dev/null "$h/pwm1_enable" + saved_pf=$PWM_FULL; saved_pi=$PWM_IDLE; PWM_FULL=0; PWM_IDLE=255 + FAN_MODE=none; PWM_PATH=""; PWM_ENABLE_PATH="" + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + tgd 60 70 1040; feed 60 70 1060 1640 + tg_selftest_pwm_rec; FAN_SAVED_ENABLE=1; FAN_SAVED_PWM=120 + SELFTEST_CFUN=4; SELFTEST_CFUN_STICKS=1 + tg_recover 60 70 1640 && r=ok || r=failed + chk "a partial release of the recorded pwm fan forces it again and keeps the saved values" \ + "$r/$STAGE/$(cat "$h/pwm1")/$FAN_SAVED_ENABLE/$FAN_SAVED_PWM/$SELFTEST_CFUN" "failed/1/0/1/120/4" + HWMON_ROOT=$saved_hwmon; PWM_FULL=$saved_pf; PWM_IDLE=$saved_pi; MODEM_RADIO_OFF_AT=$saved_off + PWM_PATH=""; PWM_ENABLE_PATH=""; tg_fan_record_drop + FAN_MODE=$saved_fan; FAN_ZONE="" + + # Round trip through the state file, and junk in it. + tg_state_clear; CAUSE1=modem; COOL_SINCE=1040; RECOVER_WIN=900; RECOVER_N=2; RECOVER_TOLD=1 + ACTION1=wifi_off + tg_state_save; tg_state_clear; tg_state_load + chk "recovery state survives save and load" \ + "$CAUSE1/$ACTION1/$COOL_SINCE/$RECOVER_WIN/$RECOVER_N/$RECOVER_TOLD" \ + "modem/wifi_off/1040/900/2/1" + tg_state_clear; ACTION1="command"; tg_state_save; tg_state_clear; tg_state_load + chk "a hook as the recorded action survives too" "$ACTION1" "command" + printf 'CAUSE1=modem;reboot\nRECOVER_N=x\nACTION1=wifi_off;reboot\n' > "$STATE"; tg_state_load + chk "junk recovery state loads as cleared" "$CAUSE1/$RECOVER_N/$ACTION1" "/0/" + tg_state_clear + chk "a clear empties the recorded action" "${ACTION1:-empty}" "empty" + + # Options out of range fall back to their defaults. + AUTO_RECOVER=2; RECOVER_MINUTES=4; RECOVER_MAX=11; tg_cfg_validate_recover + chk "out of range recovery options fall back" \ + "$AUTO_RECOVER/$RECOVER_MINUTES/$RECOVER_MAX" "0/10/3" + AUTO_RECOVER=1; RECOVER_MINUTES=120; RECOVER_MAX=1; tg_cfg_validate_recover + chk "the ends of the ranges are accepted" "$AUTO_RECOVER/$RECOVER_MINUTES/$RECOVER_MAX" "1/120/1" + AUTO_RECOVER=0; RECOVER_MINUTES=10; RECOVER_MAX=3; STAGE1_ACTION=modem_radio_off + tg_state_clear; rm -f "$PERSIST" "$STATE" + + # Every integer from outside comes back as a plain decimal: ash arithmetic + # reads 010 as 8 and 09 as an error. + for c in 09000:9000 010000:10000 0:0 000:0 -05:-5 -0:0 12a: -: 1-2:; do + chk "tg_int '${c%%:*}' is '${c#*:}'" "$(tg_int "${c%%:*}")" "${c#*:}" + done + + # Integers from UCI with leading zeros. A stand-in config_get answers with + # SELFTEST_UCI. + config_get() { eval "$1=\$SELFTEST_UCI"; } + for c in 09:9 010:10 0:0 -05:-5 00:0 -0:0 120:120 999999:999999 1234567:999999 \ + -999999:-999999 -1234567:-999999 0000000000000000000012:12 \ + 99999999999999999999:999999 x:kept; do + # shellcheck disable=SC2034 # read by the stand-in through eval + SELFTEST_UCI=${c%%:*}; RECOVER_MINUTES=kept + tg_cfg_int recover_minutes RECOVER_MINUTES + chk "the UCI integer '${c%%:*}' is stored as ${c#*:}" "$RECOVER_MINUTES" "${c#*:}" + done + unset -f config_get + RECOVER_MINUTES=10 + + # modem_source file reads a regular file, bounded. A fifo without a writer + # or a directory must come back at once, not block the cycle. + saved_src=$MODEM_SOURCE; saved_file=$MODEM_TEMP_FILE; saved_at=$AT_TIMEOUT + MODEM_SOURCE="file"; MODEM_TEMP_FILE="$dir/modem.temp"; AT_TIMEOUT=1 + echo 47000 > "$MODEM_TEMP_FILE"; MODEM_VAL=""; tg_read_modem + chk "a regular modem_temp_file is read" "$MODEM_VAL/$MODEM_SRC" "47/file" + echo hot > "$MODEM_TEMP_FILE"; MODEM_VAL=""; tg_read_modem + chk "garbage in the file is no reading" "$MODEM_VAL" "" + printf '1234567890123456789012345678901234567890' > "$MODEM_TEMP_FILE" + MODEM_VAL=""; tg_read_modem + chk "an oversized number is no reading" "$MODEM_VAL" "" + # In this shell, not a subshell: an arithmetic error would end the run here. + echo 09000 > "$MODEM_TEMP_FILE"; MODEM_VAL=""; tg_read_modem + chk "a padded 09000 in the file reads as 9" "$MODEM_VAL" "9" + echo 010000 > "$MODEM_TEMP_FILE"; MODEM_VAL=""; tg_read_modem + chk "a padded 010000 reads as 10, not octal" "$MODEM_VAL" "10" + echo 0085 > "$MODEM_TEMP_FILE"; MODEM_VAL=""; tg_read_modem + chk "a padded 0085 reads as 85" "$MODEM_VAL" "85" + echo 85 > "$MODEM_TEMP_FILE"; MODEM_VAL=""; tg_read_modem + chk "a plain 85 reads as 85" "$MODEM_VAL" "85" + printf '123456789012345678901234567890123' > "$MODEM_TEMP_FILE" + MODEM_VAL=""; tg_read_modem + chk "a 33 digit number is no reading" "$MODEM_VAL" "" + echo 12a > "$MODEM_TEMP_FILE"; MODEM_VAL=""; tg_read_modem + chk "12a in the file is no reading" "$MODEM_VAL" "" + rm -f "$MODEM_TEMP_FILE"; mkfifo "$MODEM_TEMP_FILE" + MODEM_VAL=""; tg_read_modem + chk "a fifo without a writer is no reading" "$MODEM_VAL" "" + rm -f "$MODEM_TEMP_FILE"; mkdir "$MODEM_TEMP_FILE" + MODEM_VAL=""; tg_read_modem + chk "a directory is no reading" "$MODEM_VAL" "" + rmdir "$MODEM_TEMP_FILE" + tg_have() { + case "$1" in timeout) return 1 ;; esac + command -v "$1" >/dev/null 2>&1 + } + echo 52 > "$MODEM_TEMP_FILE"; MODEM_VAL=""; tg_read_modem + chk "without timeout the file is still read" "$MODEM_VAL" "52" + tg_have() { + command -v "$1" >/dev/null 2>&1 + } + chk "tg_have is back as shipped after the file cases" "$(type tg_have)" "$saved_have" + rm -f "$MODEM_TEMP_FILE" + MODEM_SOURCE=$saved_src; MODEM_TEMP_FILE=$saved_file; AT_TIMEOUT=$saved_at; MODEM_VAL="" + + # The curl config holds the address and the header. If it cannot be made + # private nothing is written and nothing is sent. + saved_path=$PATH + mkdir -p "$dir/bin" + printf '#!/bin/sh\necho ran >> "%s"\ncat >/dev/null\n' "$dir/curl.ran" > "$dir/bin/curl" + chmod 0755 "$dir/bin/curl" + PATH="$dir/bin:$PATH" + tg_fetcher() { echo curl; } + NOTIFY_URL="https://ntfy.example/alerts"; NOTIFY_HEADER="Authorization: Bearer x" + rm -f "$dir/curl.ran" + tg_notify_http "test message" >/dev/null 2>&1 && r=sent || r=failed + chk "a curl notification goes out" "$r/$({ wc -l < "$dir/curl.ran"; } 2>/dev/null | tr -d ' ')" "sent/1" + # The config is the writer's own: a detached reset and the daemon may post at once. + # shellcheck disable=SC2016 # $5 belongs to the stand-in script, not to us + printf '#!/bin/sh\n[ -f "$5" ] && echo "$5" > "%s"\ncat >/dev/null\n' "$dir/curl.cfg" \ + > "$dir/bin/curl" + rm -f "$dir/curl.cfg" + r=$(tg_notify_http "sub" >/dev/null 2>&1; echo "$MY_PID") + chk "the curl config is named after the writer's own pid" \ + "$(cat "$dir/curl.cfg" 2>/dev/null)/$([ "$r" != "$$" ] && echo own)" \ + "$STATE_DIR/notify.conf.$r/own" + chk "and removed after use" "$(find "$STATE_DIR" -name 'notify.conf*' | wc -l | tr -d ' ')" "0" + printf '#!/bin/sh\necho ran >> "%s"\ncat >/dev/null\n' "$dir/curl.ran" > "$dir/bin/curl" + chmod() { return 1; } + rm -f "$dir/curl.ran"; : > "$EVLOG" + tg_notify_http "one" >/dev/null 2>&1 && r=sent || r=failed + tg_notify_http "two" >/dev/null 2>&1 + unset -f chmod + chk "no private curl config means no send" "$r/$([ -e "$dir/curl.ran" ] && echo ran || echo none)" \ + "failed/none" + chk "and no config file is left behind" \ + "$(find "$STATE_DIR" -name 'notify.conf*' | wc -l | tr -d ' ')" "0" + chk "the failure is said once" "$(grep -c 'could not protect the notify config' "$EVLOG")" "1" + chk "at warning" "$(tg_selftest_prio 'could not protect the notify config, not sending over HTTP')" \ + "daemon.warning" + unset -f tg_fetcher + PATH=$saved_path; NOTIFY_URL=""; NOTIFY_HEADER=""; NOTIFY_CHMOD_TOLD=0 + + # Enumerations: anything off the list falls back, said once per value. + chk_enum() { # $1 variable, $2 junk value, $3 valid value, $4 fallback + eval "$1=\$2"; tg_cfg_validate_enums + eval "r=\$$1" + chk "$1 '$2' falls back to $4" "$r" "$4" + eval "$1=\$3"; tg_cfg_validate_enums + eval "r=\$$1" + chk "$1 '$3' is kept" "$r" "$3" + } + for v in bogus 'pwm;reboot' ''; do + chk_enum FAN_MODE "$v" cooling_device none + chk_enum MODEM_SOURCE "$v" quectel auto + chk_enum STAGE1_ACTION "$v" interface_down modem_radio_off + chk_enum STAGE2_ACTION "$v" command wifi_off + done + for v in none cooling_device pwm auto; do + FAN_MODE=$v; tg_cfg_validate_enums; chk "fan_mode '$v' is kept" "$FAN_MODE" "$v" + done + for v in auto quectel fibocom file command none; do + MODEM_SOURCE=$v; tg_cfg_validate_enums; chk "modem_source '$v' is kept" "$MODEM_SOURCE" "$v" + done + for v in modem_radio_off wifi_off interface_down command none; do + STAGE1_ACTION=$v; STAGE2_ACTION=$v; tg_cfg_validate_enums + chk "stage actions '$v' are kept" "$STAGE1_ACTION/$STAGE2_ACTION" "$v/$v" + done + FAN_MODE=none; MODEM_SOURCE=auto; STAGE1_ACTION=modem_radio_off; STAGE2_ACTION=wifi_off + + # Ranges: both ends are valid, one step outside on each side is not. + for c in 0:3 1:1 60:60 61:3 -5:3; do + HOLD_MINUTES=${c%:*}; tg_cfg_validate_enums + chk "hold_minutes ${c%:*} becomes ${c#*:}" "$HOLD_MINUTES" "${c#*:}" + done + for c in -1:10 0:0 40:40 41:10 99:10; do + HYSTERESIS=${c%:*}; tg_cfg_validate_enums + chk "hysteresis ${c%:*} becomes ${c#*:}" "$HYSTERESIS" "${c#*:}" + done + for c in 4:5 5:5 300:300 301:300 -1:5 0:5 999999:300; do + INTERVAL=${c%:*}; tg_cfg_validate_enums + chk "interval ${c%:*} becomes ${c#*:}" "$INTERVAL" "${c#*:}" + done + HOLD_MINUTES=3; HYSTERESIS=10; INTERVAL=20 + + # A 20 digit number from UCI is capped when it is read, so the range check + # sees it, rejects it and says so (a raw one makes test fail every cycle). + config_get() { eval "$1=\$SELFTEST_UCI"; } + DAEMON=1; : > "$EVLOG"; ENUM_TOLD="" + for c in hold_minutes:HOLD_MINUTES hysteresis:HYSTERESIS interval:INTERVAL; do + # shellcheck disable=SC2034 # read by the stand-in through eval + SELFTEST_UCI=12345678901234567890 + tg_cfg_int "${c%%:*}" "${c#*:}"; tg_cfg_validate_enums + tg_cfg_int "${c%%:*}" "${c#*:}"; tg_cfg_validate_enums + chk "a 20 digit ${c%%:*} is rejected once" \ + "$(grep -c "rejecting ${c%%:*} '999999'" "$EVLOG")" "1" + done + chk "and they fall back to the defaults" "$HOLD_MINUTES/$HYSTERESIS/$INTERVAL" "3/10/300" + # shellcheck disable=SC2034 # read by the stand-in through eval + SELFTEST_UCI=-12345678901234567890; tg_cfg_int interval INTERVAL; tg_cfg_validate_enums + chk "a negative 20 digit interval becomes 5" "$INTERVAL" "5" + unset -f config_get + DAEMON=0; ENUM_TOLD=""; HOLD_MINUTES=3; HYSTERESIS=10; INTERVAL=20 + + # Validation runs every cycle, a rejection is said once per rejected value. + DAEMON=1; : > "$EVLOG"; ENUM_TOLD="" + FAN_MODE=bogus; HOLD_MINUTES=99; tg_cfg_validate_enums + FAN_MODE=bogus; HOLD_MINUTES=99; tg_cfg_validate_enums + chk "a rejected fan_mode is said once" "$(grep -c "rejecting fan_mode 'bogus'" "$EVLOG")" "1" + chk "a rejected hold_minutes is said once" "$(grep -c "rejecting hold_minutes '99'" "$EVLOG")" "1" + FAN_MODE=bogus2; tg_cfg_validate_enums + chk "another rejected value is said" "$(grep -c "rejecting fan_mode 'bogus2'" "$EVLOG")" "1" + chk "and the first one is not repeated" "$(grep -c "rejecting fan_mode 'bogus'" "$EVLOG")" "1" + FAN_MODE=none; tg_cfg_validate_enums + FAN_MODE=bogus; tg_cfg_validate_enums + chk "the same value after a valid one is said again" \ + "$(grep -c "rejecting fan_mode 'bogus'" "$EVLOG")" "2" + DAEMON=0; ENUM_TOLD=""; : > "$EVLOG"; FAN_MODE=bogus; tg_cfg_validate_enums + chk "a one shot command says nothing" "$(wc -l < "$EVLOG" | tr -d ' ')" "0" + FAN_MODE=none; HOLD_MINUTES=3 + + # A warm processor at any point of the incident blocks the automatic recovery. + CPU_WARN=70; CPU_CRIT=80; CPU_EMERGENCY=90; MODEM_WARN=80; MODEM_CRIT=88 + HYSTERESIS=10; INTERVAL=20; AUTO_RECOVER=1; RECOVER_MINUTES=10; RECOVER_MAX=3 + STAGE1_ACTION=modem_radio_off; DRY=0 + tg_state_clear; tgd 75 60 1000; tgd 75 60 1020; tgd 50 90 1040; tgd 50 90 1060 + chk "a stage 0 the processor drove, then a hot modem: stage 1 by the modem" \ + "$STAGE/$CAUSE1/$CPU_SEEN" "1/modem/1" + tgd 50 70 1080; feed 50 70 1100 1800 + chk "and a long cool streak does not recover" "$DECISION/$STAGE/$COOL_SINCE" "none/1/0" + chk "and the page is told the processor was involved" "$(tg_recover_state 1800)" "cpu" + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020 + chk "a modem alone leaves the processor unseen" "$STAGE/$CAUSE1/$CPU_SEEN" "1/modem/0" + tgd 60 70 1040; feed 60 70 1060 1640 + chk "and recovers after the cool streak" "$DECISION/$STAGE" "recover/1" + chk "and the page waits for it" "$(tg_recover_state 1640)" "planned" + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020; tgd 72 70 1040 + chk "a warm processor during stage 1 is seen" "$STAGE/$CAUSE1/$CPU_SEEN" "1/modem/1" + tgd 60 70 1060; feed 60 70 1080 1800 + chk "and blocks the recovery for good" "$DECISION/$STAGE/$(tg_recover_state 1800)" "none/1/cpu" + tg_state_clear; tgd 72 60 1000 + chk "a warm processor without a stage is not seen yet" "$STAGE/$CPU_SEEN" "-1/0" + tgd 72 60 1020 + chk "the stage entry with a warm processor sees it" "$STAGE/$CPU_SEEN" "0/1" + tg_state_clear; tgd 60 85 1000; tgd 60 85 1020; tgd '' 70 1040 + chk "a missing processor reading does not set it" "$STAGE/$CPU_SEEN" "0/0" + tg_state_clear; tgd 70 60 1000; tgd 70 60 1020 + chk "a processor exactly at cpu_warn counts" "$STAGE/$CPU_SEEN" "0/1" + tg_state_clear; tgd 69 60 1000; tgd 69 60 1020 + chk "one degree below cpu_warn does not stage at all" "$STAGE/$CPU_SEEN" "-1/0" + + # A recovered stage starts a new incident. + tg_state_clear; tgd 60 90 1000; tgd 60 90 1020; tgd 60 70 1040; feed 60 70 1060 1640 + saved_fan=$FAN_MODE; FAN_MODE=none; SELFTEST_CFUN=4; SELFTEST_CFUN_STICKS=1 + tg_recover 60 70 1640 && r=ok || r=failed + chk "a recovered stage clears it" "$r/$STAGE/$CPU_SEEN" "ok/-1/0" + FAN_MODE=$saved_fan + + # Round trip and junk, also through the overlay copy. Anything but 0 reads as + # seen: the safe side is no automatic undo. + tg_state_clear; STAGE=1; CAUSE1=modem; CPU_SEEN=1 + tg_state_save; tg_state_clear; tg_state_load + chk "cpu_seen survives save and load" "$STAGE/$CPU_SEEN" "1/1" + rm -f "$PERSIST"; tg_state_persist; tg_state_clear; tg_state_read "$PERSIST" + chk "and the copy on the overlay" "$STAGE/$CPU_SEEN" "1/1" + printf 'STAGE=1\nCPU_SEEN=0\n' > "$STATE"; tg_state_load + chk "an unseen processor loads as unseen" "$CPU_SEEN" "0" + printf 'STAGE=1\nCPU_SEEN=7\n' > "$STATE"; tg_state_load + chk "a junk number in cpu_seen loads as seen" "$CPU_SEEN" "1" + printf 'STAGE=1\nCPU_SEEN=0;reboot\n' > "$STATE"; tg_state_load + chk "junk text in cpu_seen loads as seen" "$CPU_SEEN" "1" + tg_state_clear + chk "a clear empties it" "$CPU_SEEN" "0" + # Padded numbers are decimals in the next decision. T0=0100 read as octal 64 + # would let the hold time pass 36 s early. + printf 'STAGE=0\nT0=0100\nREF_CPU0=72\nGEN=007\nCPU_SEEN=1\n' > "$STATE"; tg_state_load + chk "a padded GEN and T0 load as decimals" "$GEN/$T0" "7/100" + chk "and GEN matches the file on the next check" \ + "$(tg_state_unchanged "$GEN" && echo same)" "same" + tg_decide 73 '' 250; tg_decide 73 '' 270 + chk "and the hold time counts from T0 100" "$DECISION/$STAGE" "none/0" + tg_state_clear + rm -f "$PERSIST" "$STATE" + + # A processor that turns warm after the stage is on reaches the overlay at once, + # or a reboot would hand the recovery back. + tg_state_clear; : > "$EVLOG" + tg_cycle 60 90 1000 >/dev/null 2>&1; tg_cycle 60 90 1020 >/dev/null 2>&1 + chk "stage 1 by the modem is persisted unseen" \ + "$(sed -n 's/^CPU_SEEN=//p' "$PERSIST" 2>/dev/null)" "0" + tg_cycle 72 70 1040 >/dev/null 2>&1 + chk "a warm processor afterwards is persisted too" \ + "$(sed -n 's/^CPU_SEEN=//p' "$PERSIST" 2>/dev/null)" "1" + tg_status_write + chk "the status file carries cpu_seen" "$(sed -n 's/^cpu_seen=//p' "$STATUS_FILE")" "1" + chk "and so does status" "$(tg_status 2>/dev/null | sed -n 's/^cpu_seen=//p')" "1" + AUTO_RECOVER=0; rm -f "$PERSIST" "$STATE" + + # The recovery ledger on its own: round trip, one flush per change, junk. + saved_path=$PATH; PATH="$dir/bin-sync:$PATH" + sync_calls() { [ -f "$dir/sync.calls" ] && wc -l < "$dir/sync.calls" | tr -d ' ' || echo 0; } + rm -f "$PERSIST_DIR/recover" "$dir/sync.calls"; tg_state_clear + RECOVER_WIN=1640; RECOVER_N=2; RECOVER_TOLD=1 + tg_recover_ledger_save && r=ok || r=failed + chk "the ledger is written and flushed once" "$r/$(sync_calls)/$(ledger)" "ok/1/1640/2/1" + tg_state_clear; tg_recover_ledger_load + chk "and loads back" "$RECOVER_WIN/$RECOVER_N/$RECOVER_TOLD" "1640/2/1" + rm -f "$dir/sync.calls"; tg_recover_ledger_save + chk "unchanged values are not written again" "$(sync_calls)" "0" + RECOVER_N=3; tg_recover_ledger_save + chk "a changed count is" "$(sync_calls)/$(ledger)" "1/1640/3/1" + chk "and no temp file is left behind" \ + "$(find "$PERSIST_DIR" -name 'recover*' | wc -l | tr -d ' ')" "1" + # A subshell shares $$ with its parent: the temp name is the writer's own. + mkdir "$PERSIST_DIR/recover.$$"; RECOVER_N=4 + ( tg_recover_ledger_save ) 2>/dev/null; r=$? + chk "the ledger is written under the subshell's own temp name" "$r/$(ledger)" "0/1640/4/1" + rmdir "$PERSIST_DIR/recover.$$" + printf 'RECOVER_WIN=x\nRECOVER_N=2;reboot\nRECOVER_TOLD=\nOTHER=5\n' > "$PERSIST_DIR/recover" + RECOVER_WIN=7; RECOVER_N=7; RECOVER_TOLD=1; tg_recover_ledger_load + chk "a junk ledger keeps the counts from the stage file" \ + "$RECOVER_WIN/$RECOVER_N/$RECOVER_TOLD" "7/7/1" + rm -f "$PERSIST_DIR/recover" + RECOVER_WIN=7; RECOVER_N=7; RECOVER_TOLD=1; tg_recover_ledger_load + chk "so does a missing one" "$RECOVER_WIN/$RECOVER_N/$RECOVER_TOLD" "7/7/1" + printf 'RECOVER_N=2\n' > "$PERSIST_DIR/recover" + RECOVER_WIN=7; RECOVER_N=7; RECOVER_TOLD=1; tg_recover_ledger_load + chk "a partial ledger overwrites only the keys it has" \ + "$RECOVER_WIN/$RECOVER_N/$RECOVER_TOLD" "7/2/1" + # Read as octal, 0100000 would be 32768 and the window long over at 150000. + printf 'RECOVER_WIN=0100000\nRECOVER_N=03\nRECOVER_TOLD=00\n' > "$PERSIST_DIR/recover" + RECOVER_MAX=3; tg_recover_ledger_load + chk "a padded ledger loads as decimals" "$RECOVER_WIN/$RECOVER_N/$RECOVER_TOLD" "100000/3/0" + chk "and its window still holds the cap" "$(tg_recover_capped 150000 && echo capped)" "capped" + # Quiet cycles never touch the flash. + rm -f "$PERSIST_DIR/recover" "$dir/sync.calls"; tg_state_clear + tg_cycle 50 40 6000 >/dev/null 2>&1; tg_cycle 50 40 6020 >/dev/null 2>&1 + chk "cycles without an attempt write no ledger" \ + "$([ -e "$PERSIST_DIR/recover" ] && echo written || echo none)/$(sync_calls)" "none/0" + saved_pdir=$PERSIST_DIR; : > "$dir/not-a-dir"; PERSIST_DIR="$dir/not-a-dir" + RECOVER_N=1; : > "$EVLOG" + tg_recover_ledger_save && r=ok || r=failed + chk "a ledger that cannot be written is reported and not flushed" \ + "$r/$(grep -c 'could not save the recovery count' "$EVLOG")/$(sync_calls)" "failed/1/0" + PERSIST_DIR=$saved_pdir + # A ledger that landed but whose flush failed is no saved ledger: the next + # save with the same values flushes again instead of taking the file for done. + rm -f "$PERSIST_DIR/recover" "$dir/sync.calls"; : > "$EVLOG"; touch "$dir/sync.fail" + RECOVER_WIN=1700; RECOVER_N=1; RECOVER_TOLD=0 + tg_recover_ledger_save && r=ok || r=failed + rm -f "$dir/sync.fail" + tg_recover_ledger_save && r="$r/ok" || r="$r/failed" + chk "a ledger whose flush failed is flushed again by the next save" \ + "$r/$(sync_calls)/$(grep -c 'could not save the recovery count' "$EVLOG")" "failed/ok/2/1" + rm -f "$dir/sync.calls"; tg_recover_ledger_save + chk "and once flushed it is left alone again" "$(sync_calls)" "0" + rm -f "$PERSIST_DIR/recover"; tg_state_clear + PATH=$saved_path + unset -f sync_calls ledger + tg_state_clear + + # A temp file another writer left, or is still writing, is neither in the way + # nor taken for ours. + tg_state_clear; GEN=9; rm -f "$STATE"; mkdir -p "$STATE.tmp" + tg_state_save 2>/dev/null && r=ok || r=failed + chk "a temp file of another writer does not stop the save" \ + "$r/$(sed -n 's/^GEN=//p' "$STATE" 2>/dev/null)" "ok/9" + chk "and the save leaves no temp file of its own" \ + "$(find "$STATE_DIR" -name 'state.tmp.*' | wc -l | tr -d ' ')" "0" + rmdir "$STATE.tmp"; rm -f "$STATE"; tg_state_clear + + # The state lock. Without flock, or with a lock file that cannot be opened, + # there is no lock, and no lock gives no permission: take and wait refuse at + # once and keep the reason for the caller. + LOCK_OK=""; LOCK_ERR="" + tg_have() { [ "$1" != flock ] && command -v "$1" >/dev/null 2>&1; } + t=$(tg_uptime) + tg_lock_take && r=taken || r=refused + tg_lock_wait 3 && r="$r/taken" || r="$r/refused" + chk "without flock the state lock is refused, the wait at once" \ + "$r/$([ $(($(tg_uptime) - t)) -le 1 ] && echo quick)" "refused/refused/quick" + chk "and the reason is kept for the caller" "$LOCK_ERR" \ + "no flock command, the state lock cannot be taken" + tg_lock_fd_open 8 "$dir/second.lock" && r=open || r=refused + chk "a second lock on its own descriptor is refused the same way" "$r" "refused" + tg_have() { + command -v "$1" >/dev/null 2>&1 + } + LOCK_OK="" + if tg_have flock; then + # A directory where the lock file belongs cannot be opened for writing, + # not even by root. + saved_sdir=$STATE_DIR; STATE_DIR="$dir/lockdir"; mkdir -p "$STATE_DIR/lock" + tg_lock_take && r=taken || r=refused + chk "a lock file that cannot be opened refuses the state lock" "$r/$LOCK_ERR" \ + "refused/cannot open $dir/lockdir/lock, the state lock cannot be taken" + tg_lock_fd_open 8 "$STATE_DIR/lock" && r=open || r=refused + chk "and a second lock on such a file" "$r" "refused" + STATE_DIR=$saved_sdir; LOCK_OK=""; rm -rf "$dir/lockdir" + # The same helpers serve a second lock on its own descriptor. + other_free() { ( flock -n -x 9 ) 9>"$1" && echo free || echo held; } + tg_lock_fd_open 8 "$dir/second.lock" && tg_lock_fd_take 8 && r=taken || r=refused + chk "a second lock is taken on its own descriptor" \ + "$r/$(other_free "$dir/second.lock")" "taken/held" + flock -u 8; exec 8>&- + chk "and handed back" "$(other_free "$dir/second.lock")" "free" + # Whether a second open of the lock file could take it now. + lock_other() { + tg_selftest_scratch "$STATE_DIR" + ( flock -n -x 8 ) 8>"$STATE_DIR/lock" && echo free || echo held + } + rm -f "$dir/held" + sh -c 'exec 8>"$1"; flock -x 8; : > "$2"; exec sleep 30' _ "$STATE_DIR/lock" "$dir/held" & + r=$! + for t in 1 2 3 4 5; do [ -e "$dir/held" ] || sleep 1; done + tg_lock_take && t=taken || t=held + chk "a lock another process holds is not taken" "$t" "held" + tg_lock_wait 1 && t=taken || t=gave-up + chk "and the wait gives up after its time" "$t" "gave-up" + # However long the lock is held, the daemon does not take over. + tg_daemon_lock && t=go || t=skip + tg_daemon_lock && t="$t/go" || t="$t/skip" + chk "the daemon skips a held lock every time" "$t" "skip/skip" + kill "$r" 2>/dev/null; wait "$r" 2>/dev/null + tg_lock_wait 3 && t=taken || t=gave-up + chk "once free the wait takes it" "$t/$(lock_other)" "taken/held" + chk "and records itself as the owner" "$(cat "$STATE_DIR/lock.owner" 2>/dev/null)" "$$" + tg_lock_drop + chk "and the drop hands it back" "$(lock_other)" "free" + tg_daemon_lock && t=go || t=skip + chk "a free lock lets the daemon decide" "$t" "go" + tg_lock_drop + # A hook never gets the lock's fd, or what it leaves running holds the lock. + saved_hooks=$HOOK_DIR; HOOK_DIR="$dir/hooks-fd"; mkdir -p "$HOOK_DIR" + for t in fdcheck notify modem-temp modem-model; do + o="$dir/$t.fd"; h="$HOOK_DIR/$t" + printf '#!/bin/sh\n{ true >&7; } 2>/dev/null && echo open > "%s" ||\n' "$o" > "$h" + printf '\techo closed > "%s"\necho 55\n' "$o" >> "$h" + chmod 0755 "$h" + done + saved_src=$MODEM_SOURCE; MODEM_SOURCE="command" + tg_run_hook fdcheck; tg_notify_hook "selftest"; tg_read_modem; tg_modem_model >/dev/null + r="$(cat "$dir/fdcheck.fd")/$(cat "$dir/notify.fd")" + r="$r/$(cat "$dir/modem-temp.fd")/$(cat "$dir/modem-model.fd")/$MODEM_VAL" + chk "hooks run without the lock's fd" "$r" "closed/closed/closed/closed/55" + MODEM_SOURCE=$saved_src; MODEM_VAL=""; MODEM_SRC="" + rm -rf "$HOOK_DIR"; HOOK_DIR=$saved_hooks + unset -f lock_other other_free + else + echo "skip the state lock cases, no flock command here" + fi + + # Blocked by another holder the daemon only measures and alerts: over the + # reset budget, at a crit threshold, at the CPU emergency, each once per + # holder (the pid in lock.owner) and level. + saved_budget=$RESET_BUDGET; RESET_BUDGET=4; BLOCK_HOLDER=""; BLOCK_SINCE=""; BLOCK_TOLD="" + : > "$EVLOG"; : > "$dir/syslog" + blocked_n() { grep -c -- "$1" "$EVLOG"; } + echo 100 > "$STATE_DIR/lock.owner" + tg_blocked 40 48 1000; tg_blocked 40 48 1004 + r=$(blocked_n 'blocked by a reset') + tg_blocked 40 48 1005; tg_blocked 40 48 1006 + r="$r/$(blocked_n 'blocked by a reset for 5 s, no action taken (cpu 40 C, modem 48 C)$')" + chk "the over budget alert comes once, past the budget" "$r/$(blocked_n 'reset for')" "0/1/1" + tg_blocked 40 90 1007; tg_blocked 85 90 1008 + chk "a crit reading is alerted once" "$(blocked_n \ + 'reset while modem is at 90 C, above its crit threshold, no action taken$')/$(blocked_n \ + 'above its crit')" "1/1" + tg_blocked 95 90 1009; tg_blocked 96 90 1010 + chk "a CPU emergency after it is alerted once" "$(blocked_n \ + 'reset while the CPU is at 95 C, its emergency threshold, no action taken$')/$(blocked_n \ + 'its emergency')" "1/1" + chk "at crit" "$(tg_selftest_prio \ + 'blocked by a reset while the CPU is at 95 C, its emergency threshold, no action taken')" \ + "daemon.crit" + echo 200 > "$STATE_DIR/lock.owner" + tg_blocked 95 90 1011 + chk "a new holder alerts again, the emergency standing for crit" \ + "$(blocked_n 'its emergency')/$(blocked_n 'above its crit')/$(blocked_n 'reset for')" "2/1/1" + tg_blocked "" "" 1020 + chk "without readings only the budget is alerted" \ + "$(blocked_n 'blocked by a reset for 9 s, no action taken (cpu ? C, modem ? C)$')" "1" + RESET_BUDGET=$saved_budget; BLOCK_HOLDER=""; BLOCK_SINCE=""; BLOCK_TOLD="" + rm -f "$STATE_DIR/lock.owner"; : > "$EVLOG" + unset -f blocked_n + + # The longest an undo can take: every external call at its time limit plus + # the 5 s before KILL, every retry and settle time. + saved_t=$CMD_TIMEOUT; saved_u=$UBUS_TIMEOUT; saved_a=$AT_WAIT; saved_w=$WIFI_SETTLE + saved_c=$CFUN_SETTLE; CFUN_SETTLE=2 + CMD_TIMEOUT=15; UBUS_TIMEOUT=5; AT_WAIT=10; WIFI_SETTLE=5 + r="$(tg_undo_budget wifi_off)/$(tg_undo_budget modem_radio_off)" + r="$r/$(tg_undo_budget interface_down wan)/$(tg_undo_budget interface_down '')" + r="$r/$(tg_undo_budget none)/$(tg_undo_budget command)" + chk "undo budgets for Wi-Fi, modem, interface, no interface, none and command" \ + "$r" "175/94/54/0/0/0" + CMD_TIMEOUT=$saved_t; UBUS_TIMEOUT=$saved_u; AT_WAIT=$saved_a; WIFI_SETTLE=$saved_w + CFUN_SETTLE=$saved_c + printf '12345.67 99.10\n' > "$dir/uptime" + chk "the uptime is read in whole seconds" "$(tg_uptime "$dir/uptime")" "12345" + printf 'junk\n' > "$dir/uptime" + r=$(tg_uptime "$dir/uptime"); rm -f "$dir/uptime" + chk "an unreadable uptime falls back to the clock" \ + "$([ -n "$(tg_int "$r")" ] && echo int)" "int" + # The owner is the process itself, also in the subshell the page's reset runs in. + tg_my_pid + chk "the own pid is \$\$ in the main shell" "$MY_PID" "$$" + r=$(tg_my_pid; echo "$MY_PID") + chk "and its own in a subshell" \ + "$([ -n "$(tg_int "$r")" ] && [ "$r" != "$$" ] && echo own)" "own" + + # A process is its pid and start time, field 22 of its stat counted after + # the last parenthesis: the name before it may hold both. + tg_stat_start '42 (a) b) S 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 777 19' + r=$PROC_START + tg_stat_start '42 (z) Z 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 777 19' + r="$r/${PROC_START:-empty}" + tg_stat_start '42 (short) S 1 2' + chk "the start time comes after the last parenthesis, none for a zombie or a short line" \ + "$r/${PROC_START:-empty}" "777/empty/empty" + tg_my_pid; tg_proc_start "$MY_PID"; own_start=$PROC_START + tg_proc_is "$$" "$own_start" && r=same || r=other + tg_proc_is "$$" "$((own_start + 1))" && r="$r/same" || r="$r/other" + chk "the own identity matches, another start time under the same pid does not" \ + "$([ -n "$(tg_int "$own_start")" ] && echo int)/$r" "int/same/other" + + # The reset request record, for the page. Junk in it reads as empty. + RESET_BOOT=$SELFTEST_BOOT; RESET_ID=3-1234; RESET_GEN=3; RESET_TS=1240; RESET_KIND=page + RESET_REC_FAILED=fan; RESET_RPID=1234; RESET_RSTART=99; RESET_WPID=1235; RESET_WSTART=100 + RESET_PREV_ID=2-1200; RESET_PREV_GEN=2; RESET_PREV_STATE=failed + RESET_PREV_FAILED=wifi_off; RESET_PREV_TS=1200 + tg_reset_save busy; RESET_ID=""; RESET_PREV_FAILED=""; tg_reset_read + r="$RESET_BOOT/$RESET_ID/$RESET_GEN/$RESET_STATE/$RESET_TS/$RESET_KIND/$RESET_REC_FAILED" + r="$r/$RESET_RPID/$RESET_RSTART/$RESET_WPID/$RESET_WSTART" + r="$r/$RESET_PREV_ID/$RESET_PREV_GEN/$RESET_PREV_STATE/$RESET_PREV_FAILED/$RESET_PREV_TS" + chk "the reset record survives a read" "$r" \ + "$SELFTEST_BOOT/3-1234/3/busy/1240/page/fan/1234/99/1235/100/2-1200/2/failed/wifi_off/1200" + tg_state_clear; rm -f "$STATUS_FILE"; mkdir -p "$STATUS_FILE.tmp" + tg_status_write 2>/dev/null + r="" + for t in reset_state reset_ts reset_boot reset_id reset_gen reset_kind reset_prev_id \ + reset_prev_gen reset_prev_state reset_prev_failed reset_prev_ts; do + r="$r/$(sed -n "s/^$t=//p" "$STATUS_FILE" 2>/dev/null)" + done + chk "the status file carries the record, a stray temp name in the way or not" "$r" \ + "/busy/1240/$SELFTEST_BOOT/3-1234/3/page/2-1200/2/failed/wifi_off/1200" + # A page that waited across a reboot sees the new boot here even before the + # new boot has a request record. + r=$(sed -n 's/^boot_id=//p' "$STATUS_FILE" 2>/dev/null) + echo "${SELFTEST_BOOT%?}x" > "$BOOT_ID_FILE"; tg_status_write 2>/dev/null + r="$r/$(sed -n 's/^boot_id=//p' "$STATUS_FILE" 2>/dev/null)" + tg_selftest_scratch "$BOOT_ID_FILE"; rm -f "$BOOT_ID_FILE"; tg_status_write 2>/dev/null + r="$r/$(sed -n 's/^boot_id=//p' "$STATUS_FILE" 2>/dev/null)/$( + grep -c '^boot_id=$' "$STATUS_FILE" 2>/dev/null)" + echo "$SELFTEST_BOOT" > "$BOOT_ID_FILE" + chk "the status file names this boot, empty where the kernel id is unusable" "$r" \ + "$SELFTEST_BOOT///1" + r=$(tg_status 2>/dev/null) + chk "and so does status" "$(printf '%s\n' "$r" | sed -n 's/^reset_state=//p')/$( + printf '%s\n' "$r" | sed -n 's/^reset_id=//p')/$( + printf '%s\n' "$r" | sed -n 's/^reset_prev_failed=//p')" "busy/3-1234/wifi_off" + rm -rf "$STATUS_FILE.tmp" + chk "and the status write leaves no temp file of its own" \ + "$(find "$dir" -maxdepth 1 -name 'status.tmp*' | wc -l | tr -d ' ')" "0" + { + printf 'reset_boot=%s\nreset_id=3-12;reboot\nreset_gen=0x3\n' "${SELFTEST_BOOT%?}" + printf 'reset_state=rm -rf /\nreset_ts=12;reboot\nreset_kind=root\nreset_failed=a b\n' + printf 'reset_wpid=-1\nreset_prev_id=-2-3\nreset_prev_state=ok\nreset_prev_failed=;\n' + } > "$STATE_DIR/reset" + tg_reset_read + r="$RESET_BOOT/$RESET_ID/$RESET_GEN/$RESET_STATE/$RESET_TS/$RESET_KIND/$RESET_REC_FAILED" + r="$r/$RESET_WPID/$RESET_PREV_ID/$RESET_PREV_STATE/$RESET_PREV_FAILED" + chk "junk in the reset record reads as empty" "$r" "//////////" + # A starting or running request whose process is gone is shown as aborted. + RESET_BOOT=$SELFTEST_BOOT; RESET_ID=1-1; RESET_GEN=1; RESET_TS=1; RESET_KIND=page + RESET_RPID=""; RESET_RSTART=""; RESET_WPID=$MY_PID; RESET_WSTART=$((own_start + 1)) + tg_reset_save running; tg_reset_view + r=$RESET_STATE + RESET_WSTART=$own_start; tg_reset_save running; tg_reset_view + chk "a running request shows as aborted once its worker is gone, not before" \ + "$r/$RESET_STATE" "aborted/running" + rm -f "$STATE_DIR/reset" + + # In a subshell $$ is the parent's PID: the temp names are the process's own, or + # two detached resets of one parent would write into one file. + mkdir -p "$STATE_DIR" + mkdir -p "$STATE.tmp.$$" "$STATE_DIR/reset.tmp.$$" "$STATUS_FILE.tmp.$$" + ( tg_state_write "$STATE" ) 2>/dev/null; r=$? + chk "the state file is written under the subshell's own temp name" "$r" "0" + ( tg_reset_save "done" ) 2>/dev/null; r=$? + chk "and so is the reset record" "$r" "0" + rm -f "$STATUS_FILE" + ( tg_status_write ) 2>/dev/null; r=$? + chk "and the status file" "$r/$([ -f "$STATUS_FILE" ] && echo written)" "0/written" + rmdir "$STATE.tmp.$$" "$STATE_DIR/reset.tmp.$$" "$STATUS_FILE.tmp.$$" + rm -f "$STATE_DIR/reset" + # Without admission the cleanup removes only what a writer that is gone left. + sh -c ':' & r=$!; wait "$r" + tg_selftest_scratch "$STATE_DIR" + : > "$STATE_DIR/reset.tmp.$r"; : > "$STATE_DIR/reset.gen.tmp.$r" + : > "$STATE_DIR/reset.tmp.$$" + tg_reset_tidy + chk "the record cleanup removes a gone writer's temp files, not a live one's" \ + "$([ -e "$STATE_DIR/reset.tmp.$r" ] && echo kept)/$([ -e "$STATE_DIR/reset.gen.tmp.$r" ] && + echo kept)/$([ -e "$STATE_DIR/reset.tmp.$$" ] && echo kept)" "//kept" + rm -f "$STATE_DIR/reset.tmp.$$" + + # The admission lock is taken and handed back, and a holder elsewhere keeps + # it for ADMIT_WAIT seconds at most. + if tg_have flock; then + admit_other() { + ( flock -n -x 9 ) 9>"$STATE_DIR/reset.admit" && echo free || echo held + } + tg_admit_take && r=taken || r=refused + r="$r/$(admit_other)"; tg_admit_drop + chk "admission is taken and handed back" "$r/$(admit_other)" "taken/held/free" + rm -f "$dir/held" + sh -c 'exec 8>"$1"; flock -x 8; : > "$2"; exec sleep 30' _ "$STATE_DIR/reset.admit" \ + "$dir/held" & + r=$! + for t in 1 2 3 4 5; do [ -e "$dir/held" ] || sleep 1; done + saved_wait=$ADMIT_WAIT; ADMIT_WAIT=1; t=0; tg_admit_take || t=$? + ADMIT_WAIT=$saved_wait + kill "$r" 2>/dev/null; wait "$r" 2>/dev/null + chk "admission held elsewhere is given up after ADMIT_WAIT" "$t" "1" + unset -f admit_other + fi + + # A writer killed between write and rename leaves its temp file behind. + mkdir -p "$PERSIST_DIR" + for r in "$STATE.tmp.4711" "$PERSIST.tmp.4712" "$STATUS_FILE.tmp.4713" "$STATUS_FILE.tmp" \ + "$PERSIST_DIR/recover.4714" "$EVLOG.tmp.4715" "$STATE_DIR/other.tmp.1" \ + "$PERSIST_DIR/recover"; do + : > "$r" + done + tg_tmp_cleanup + t="" + for r in "$STATE.tmp.4711" "$PERSIST.tmp.4712" "$STATUS_FILE.tmp.4713" "$STATUS_FILE.tmp" \ + "$PERSIST_DIR/recover.4714" "$EVLOG.tmp.4715" "$STATE_DIR/other.tmp.1" \ + "$PERSIST_DIR/recover"; do + [ -e "$r" ] && t="${t}1" || t="${t}0" + done + chk "leftover temp files are removed, the recovery count and other files stay" "$t" "00000011" + rm -f "$STATE_DIR/other.tmp.1" "$PERSIST_DIR/recover" + # A curl config holds the notification secret: a poster killed mid post + # leaves it, a live one (perhaps a detached reset) is still using it. + sh -c ':' & r=$!; wait "$r" + : > "$STATE_DIR/notify.conf.$r"; : > "$STATE_DIR/notify.conf.$$" + tg_tmp_cleanup + chk "a curl config of a poster that is gone is removed, a live poster's stays" \ + "$([ -e "$STATE_DIR/notify.conf.$r" ] && echo kept)/$([ -e "$STATE_DIR/notify.conf.$$" ] && + echo kept)" "/kept" + rm -f "$STATE_DIR/notify.conf.$$" + + # The event log is trimmed under a temp name of the writer's own: a reset + # request logs without the state lock, next to the daemon. + tg_selftest_scratch "$EVLOG" + r=0; : > "$EVLOG" + while [ "$r" -lt 60 ]; do echo "line $r" >> "$EVLOG"; r=$((r + 1)); done + mkdir -p "$EVLOG.tmp" "$EVLOG.tmp.$$" + ( tg_log "trimmed" ) 2>/dev/null + chk "the event log trim takes a temp name of its own process" \ + "$(wc -l < "$EVLOG" | tr -d ' ')/$(tail -n1 "$EVLOG" | sed 's/^.* //')" "50/trimmed" + rmdir "$EVLOG.tmp" "$EVLOG.tmp.$$"; : > "$EVLOG" + + # A state from 2.1.0.0 has no IFACE keys: its interface_down acted on the + # configured interface. A key that is there but empty means nothing went down. + saved_ai=$ACTION_INTERFACE; ACTION_INTERFACE=lan + printf 'STAGE=2\nACTION1=interface_down\nACTION2=interface_down\n' > "$STATE"; tg_state_load + chk "an interface_down without its IFACE key takes the configured interface" \ + "$IFACE1/$IFACE2" "lan/lan" + printf 'STAGE=2\nACTION1=interface_down\nIFACE1=\nACTION2=interface_down\nIFACE2=\n' > "$STATE" + tg_state_load + chk "one whose IFACE key is empty took nothing down" "${IFACE1:-empty}/${IFACE2:-empty}" \ + "empty/empty" + printf 'STAGE=1\nACTION1=wifi_off\n' > "$STATE"; tg_state_load + chk "another action without the key gets no interface" "${IFACE1:-empty}" "empty" + # Nor CPU_SEEN: nothing says the processor stayed cool, so no automatic undo. + chk "a stage without CPU_SEEN loads as seen" "$CPU_SEEN" "1" + printf 'STAGE=-1\n' > "$STATE"; tg_state_load + chk "an idle state without it loads as unseen" "$CPU_SEEN" "0" + ACTION_INTERFACE=$saved_ai; rm -f "$STATE"; tg_state_clear + + # A release that did not read back keeps its values for the next reset. The zone + # then still sits on this daemon's own user_space: no foreign writer, and the + # page is told that a restore is pending. + saved_root=$THERMAL_ROOT; THERMAL_ROOT="$dir/thermal-pending" + tg_selftest_tree "$THERMAL_ROOT" bpi; z="$THERMAL_ROOT/thermal_zone0" + echo user_space > "$z/policy"; FAN_MODE=cooling_device; FAN_ZONE=$z; DAEMON=1 + pending() { + tg_selftest_scratch "$STATUS_FILE" + tg_status_write; sed -n 's/^fan_restore_pending=//p' "$STATUS_FILE" + } + tg_state_clear; tg_selftest_cdev_rec "$THERMAL_ROOT"; FAN_SAVED_POLICY=step_wise + : > "$EVLOG"; tg_fan_check_owner; r=$(pending) + chk "a kept record is no foreign writer and is published" \ + "$FAN_FOREIGN/$r/$(grep -c 'another program drives this fan' "$EVLOG")" "0/1/0" + tg_state_save + chk "and status shows it" "$(tg_status 2>/dev/null | sed -n 's/^fan_restore_pending=//p')" "1" + tg_state_clear; FAN_UNRESOLVED=1; r=$(pending) + chk "an unresolved record counts too" "$r" "1" + tg_state_clear; STAGE=0; tg_selftest_cdev_rec "$THERMAL_ROOT"; r=$(pending) + chk "while a stage is on nothing is pending" "$r" "0" + tg_state_clear; tg_fan_check_owner; r=$(pending) + chk "without one, user_space while idle is another program" "$FAN_FOREIGN/$r" "1/0" + unset -f pending + THERMAL_ROOT=$saved_root; FAN_MODE=none; FAN_ZONE=""; DAEMON=0; FAN_FOREIGN=0 + rm -f "$STATE"; tg_state_clear + + # A block that set a real root and did not put the planted one back would send + # every block after it to the live tree. + r="" + for t in "$THERMAL_ROOT" "$HWMON_ROOT" "$NET_ROOT" "$DT_ROOT" "$CPU_TEMP_PATH" "$AT_LOCK" \ + "$STATE_DIR" "$PERSIST_DIR" "$STATUS_FILE" "$HOOK_DIR" "$BOOT_ID_FILE" "$DEVICES_ROOT"; do + tg_path_under "$t" "$dir/" || r="$r '$t'" + done + chk "every root still points into the scratch directory" "${r:-yes}" "yes" + + # Reset undoes what ran at entry, with the interface recorded then. The three + # reverses and the fan release are stand-ins here, they have their own cases. + # They stay overridden for the rest of the run: this block must stay last. + undo_stub() { echo "$1/${2:-}" >> "$dir/undo.calls"; [ "$1" != "$SELFTEST_UNDO_FAIL" ]; } + tg_action_modem_radio_on() { undo_stub modem_radio_off; } + tg_action_wifi_on() { undo_stub wifi_off; } + tg_action_interface_up() { undo_stub interface_down "$1"; } + tg_fan_release() { return "$SELFTEST_FAN_RC"; } + SELFTEST_UNDO_FAIL=""; SELFTEST_FAN_RC=0 + # The calls file is there from the start: a case with nothing to undo has to + # read an empty list, not a missing file. + undo_run() { # prints the undo calls, then what failed + tg_selftest_scratch "$EVLOG" + : > "$dir/undo.calls"; : > "$EVLOG"; tg_undo_all + echo "$(tr '\n' ' ' < "$dir/undo.calls")|$UNDO_FAILED" + } + STAGE1_ACTION=modem_radio_off; STAGE2_ACTION=modem_radio_off; ACTION_INTERFACE=lan + tg_state_clear; STAGE=2; ACTION1=wifi_off; ACTION2=interface_down; IFACE2=wwan + chk "reset undoes stage 2 first, with its recorded interface" \ + "$(undo_run)" "interface_down/wwan wifi_off/ |" + tg_state_clear; STAGE=1; ACTION1=interface_down; IFACE1=wwan; ACTION2=wifi_off + chk "a stage 1 state leaves the stage 2 action alone" "$(undo_run)" "interface_down/wwan |" + tg_state_clear + chk "an idle state undoes nothing" "$(undo_run)" "|" + tg_state_clear; STAGE=1; STAGE1_ACTION=wifi_off + chk "a state without a recorded action undoes the configured one" \ + "$(undo_run)" "wifi_off/ |" + chk "and says so" "$(grep -c 'state from an older version, undoing the configured actions' \ + "$EVLOG")" "1" + # interface_down that recorded no interface took nothing down. + tg_state_clear; STAGE=1; ACTION1=interface_down + chk "a recorded interface_down without an interface has nothing to undo" \ + "$(undo_run)" "|" + tg_state_clear; STAGE=1; STAGE1_ACTION=interface_down + chk "an older state takes the configured interface" "$(undo_run)" "interface_down/lan |" + saved_up=$UPLINK_INTERFACE; ACTION_INTERFACE=""; UPLINK_INTERFACE="" + chk "and nothing where none is configured either" "$(undo_run)" "|" + ACTION_INTERFACE=lan; UPLINK_INTERFACE=$saved_up + STAGE1_ACTION=modem_radio_off + tg_state_clear; STAGE=2; ACTION1=none; ACTION2="command" + chk "none and command have nothing to undo and cannot fail" "$(undo_run)" "|" + SELFTEST_UNDO_FAIL=modem_radio_off + tg_state_clear; STAGE=2; ACTION1=modem_radio_off; ACTION2=modem_radio_off + chk "a failed undo is collected once" "$(undo_run)" \ + "modem_radio_off/ modem_radio_off/ |modem_radio_off" + SELFTEST_FAN_RC=1 + tg_state_clear; STAGE=1; ACTION1=wifi_off + chk "a failed fan release is collected as fan" "$(undo_run)" "wifi_off/ |fan" + tg_state_clear; STAGE=1; ACTION1=modem_radio_off + chk "and in order with the failed undo" "$(undo_run)" "modem_radio_off/ |modem_radio_off,fan" + SELFTEST_UNDO_FAIL=""; SELFTEST_FAN_RC=0 + # A reset already past its budget skips what is left, the fan as well, and + # lists it. An action with nothing to undo is not listed. + tg_state_clear; STAGE=2; ACTION1=none; ACTION2=wifi_off + r=$(tg_selftest_scratch "$EVLOG"; : > "$dir/undo.calls"; : > "$EVLOG" + tg_undo_all $(($(tg_uptime) - RESET_BUDGET - 1)) + echo "$(tr '\n' ' ' < "$dir/undo.calls")|$UNDO_FAILED|$(grep -c 'skipping the undo' "$EVLOG")") + chk "a reset past its budget skips the rest into the failure list" "$r" "|wifi_off,fan|2" + + # Stage entry records the actions and the interface they acted on, and ends an + # old reset failure. + STAGE1_ACTION=interface_down; STAGE2_ACTION=wifi_off; ACTION_INTERFACE=wwan + tg_state_clear; RESET_FAILED=wifi_off; tgd 60 90 1000; tgd 60 90 1020 + chk "stage 1 records its interface" "$ACTION1/$IFACE1/$ACTION2" "interface_down/wwan/" + chk "and a stage entry ends the old reset failure" "${RESET_FAILED:-empty}" "empty" + ACTION_INTERFACE=lan; tgd 99 99 1040; tgd 99 99 1060 + chk "stage 2 records its action, no interface for wifi_off" \ + "$STAGE/$ACTION1/$IFACE1/$ACTION2/${IFACE2:-empty}" "2/interface_down/wwan/wifi_off/empty" + STAGE2_ACTION=interface_down; ACTION_INTERFACE=""; UPLINK_INTERFACE=wan + tg_state_clear; tgd 99 99 1000; tgd 99 99 1020 + chk "the uplink interface is the fallback for the recorded interface" \ + "$ACTION2/$IFACE2" "interface_down/wan" + UPLINK_INTERFACE="" + tg_state_clear; tgd 99 99 1000; tgd 99 99 1020 + chk "an interface action without any interface records none" \ + "$ACTION2/${IFACE2:-empty}" "interface_down/empty" + STAGE1_ACTION=modem_radio_off; STAGE2_ACTION=wifi_off; ACTION_INTERFACE="" + + # The new keys survive the state file, and junk in them does not. + tg_state_clear; STAGE=2; ACTION1=wifi_off; ACTION2=interface_down + IFACE1=lan; IFACE2=wwan; RESET_FAILED=wifi_off,fan; tg_state_save + tg_state_clear; tg_state_load + chk "actions, interfaces and the reset failure survive a reload" \ + "$ACTION1/$ACTION2/$IFACE1/$IFACE2/$RESET_FAILED" \ + "wifi_off/interface_down/lan/wwan/wifi_off,fan" + printf 'STAGE=2\nACTION2=rm\nIFACE1=-a\nIFACE2=a;b\nRESET_FAILED=a;b\n' > "$STATE" + tg_state_clear; tg_state_load + chk "junk in the new keys loads as empty" \ + "${ACTION2:-empty}/${IFACE1:-empty}/${IFACE2:-empty}/${RESET_FAILED:-empty}" \ + "empty/empty/empty/empty" + tg_state_clear; RESET_FAILED=fan; tg_state_save; tg_status_write + chk "the status file carries reset_failed" \ + "$(sed -n 's/^reset_failed=//p' "$STATUS_FILE")" "fan" + chk "and so does status" "$(tg_status 2>/dev/null | sed -n 's/^reset_failed=//p')" "fan" + tg_state_clear; rm -f "$STATE" + unset -f undo_run + rm -rf "$dir" [ "$fail" = 0 ] && echo "selftest: all cases passed" || echo "selftest: FAILED" return $fail @@ -2171,9 +5434,12 @@ case "${1:-}" in daemon) tg_daemon ;; status) tg_status ;; reset) tg_reset ;; + reset-start) tg_reset_start ;; trips-keep) tg_trips_keep ;; + fan-forget) tg_fan_forget ;; test) tg_test "${2:-}" "${3:-}" ;; *) - echo "usage: thermal-guard daemon|status|reset|trips-keep|test |selftest|-V" >&2 + printf 'usage: thermal-guard %s\n' \ + "daemon|status|reset|reset-start|trips-keep|fan-forget|test |selftest|-V" >&2 exit 2 ;; esac diff --git a/thermal-guard/files/usr/share/thermal-guard/backends.sh b/thermal-guard/files/usr/share/thermal-guard/backends.sh index fa6dbdd7b..5de85f7db 100644 --- a/thermal-guard/files/usr/share/thermal-guard/backends.sh +++ b/thermal-guard/files/usr/share/thermal-guard/backends.sh @@ -7,11 +7,16 @@ # ---- helpers --------------------------------------------------------------- # Keep integers only so a garbled sysfs read or AT reply cannot reach the logic. +# Leading zeros go, ash arithmetic reads 010 as octal 8 and 09 as an error. tg_int() { + local sign="" d="" case "$1" in - ''|*[!0-9-]*|-|?*-*) echo "" ;; - *) echo "$1" ;; + ''|*[!0-9-]*|-|?*-*) echo ""; return 0 ;; + -*) sign=-; d=${1#-} ;; + *) d=$1 ;; esac + d=${d#"${d%%[!0]*}"} + if [ -n "$d" ]; then echo "$sign$d"; else echo 0; fi } # Whether a program or function is there. The one place that asks, so the @@ -20,6 +25,43 @@ tg_have() { command -v "$1" >/dev/null 2>&1 } +# fd 7 is the state lock. A command that can wait gets it closed, and so does +# a command substitution or pipeline around one ($(exec 7>&-; ...)): each is a +# process of its own, and one left behind by a killed holder keeps the lock. + +# Runs a command under a time limit, KILL_AFTER seconds more for one that +# ignores TERM. Once timeout sends KILL it ends its own process group, itself +# included, and ash would print "Killed" to the daemon's stderr, which procd +# hands to syslog. An sh with stderr on /dev/null waits instead and passes the +# status on; every caller discards the command's stderr anyway. A separate sh, +# not a subshell: a function called with 7>&- keeps a saved copy of fd 7, and a +# subshell would hold it while it waits, the exec of sh drops it. +tg_timeout() { # $1 seconds, then the command + # shellcheck disable=SC2016 # expanded by the inner sh + sh -c 'k=$1; shift; exec 2>/dev/null; timeout -k "$k" "$@"; exit $?' tg_timeout \ + "$KILL_AFTER" "$@" +} + +# Flushes what was written to the overlay. Only a flush that completed in time +# says it survives a power cut; a hung one must not hold the lock for good. +tg_sync() { + tg_timeout "$CMD_TIMEOUT" sync >/dev/null 2>&1 6>&- 7>&- +} + +# Model names from a modem or a hook end up in the log, the status file and a +# glob match: letters, digits, dot, underscore and dash, 1 to 32 characters. +# The fan takeover record holds hwmon, cooling device and zone names the same way. +tg_name_ok() { + case "$1" in + ''|*[!A-Za-z0-9._-]*) return 1 ;; + esac + [ "${#1}" -le 32 ] +} + +tg_name() { + if tg_name_ok "$1"; then echo "$1"; else echo ""; fi +} + # Absolute path, no .. and no wildcards. Stops UCI from pointing us at random files. tg_path_ok() { case "$1" in @@ -112,12 +154,24 @@ tg_notify_http() { if [ "$tool" = curl ]; then NOTIFY_HEADER_TOLD="" mkdir -p "$STATE_DIR" - cfg="$STATE_DIR/notify.conf" + # The writer's own name: a detached reset may post while the daemon does. + tg_my_pid + cfg="$STATE_DIR/notify.conf.$MY_PID" : > "$cfg" - chmod 600 "$cfg" 2>/dev/null + # Without a private file the address and header must not be written. + if ! chmod 600 "$cfg" 2>/dev/null; then + rm -f "$cfg" + [ "$NOTIFY_CHMOD_TOLD" = 1 ] || + tg_log "could not protect the notify config, not sending over HTTP" warning + NOTIFY_CHMOD_TOLD=1 + return 1 + fi + NOTIFY_CHMOD_TOLD=0 printf 'url = "%s"\n' "$NOTIFY_URL" >> "$cfg" [ -n "$NOTIFY_HEADER" ] && printf 'header = "%s"\n' "$NOTIFY_HEADER" >> "$cfg" - printf '%s\n' "$1" | curl -fsS -m 15 -K "$cfg" --data-binary @- >/dev/null 2>&1 + # The pipeline element closes fd 7 for good: a function call would keep a copy. + printf '%s\n' "$1" | { exec 7>&-; tg_timeout "$HTTP_TIMEOUT" \ + curl -fsS -m 15 -K "$cfg" --data-binary @- >/dev/null 2>&1; } rc=$? rm -f "$cfg" return $rc @@ -131,8 +185,8 @@ tg_notify_http() { NOTIFY_HEADER_TOLD=$tool fi # -T bounds the network wait only, the outer limit also covers a hung DNS lookup. - timeout "$HTTP_TIMEOUT" "$tool" -q -T 15 -O /dev/null --post-data="$1" "$NOTIFY_URL" \ - >/dev/null 2>&1 + tg_timeout "$HTTP_TIMEOUT" "$tool" -q -T 15 -O /dev/null --post-data="$1" \ + "$NOTIFY_URL" >/dev/null 2>&1 7>&- } # The escape hatch for anything HTTP cannot express, a local mailer for example. @@ -141,16 +195,20 @@ tg_notify_http() { tg_notify_hook() { local hook="$HOOK_DIR/notify" [ -x "$hook" ] || return 1 - printf '%s\n' "$1" | timeout -k 5 "$HOOK_TIMEOUT" "$hook" >/dev/null 2>&1 + # Without fd 7, the state lock, like every hook (see tg_run_hook), closed for + # good in the pipeline element: a function call would keep a copy. + printf '%s\n' "$1" | { exec 7>&-; tg_timeout "$HOOK_TIMEOUT" "$hook" >/dev/null 2>&1; } } # Run an AT command through a lock. Several daemons and LuCI apps share one port # and the modem answers a collision with nothing at all. Both the wait for the # lock and the query are bounded: a modem that hangs, or a program that sits on # the lock, must not stop the whole loop. BusyBox flock has no -w, so the outer -# timeout covers the wait and the inner one the query. -# Without flock the query still runs, the modem reading matters more than the -# lock. But another program on the port can garble it now, so say so once. +# timeout covers the wait and the inner one the query. None of them gets fd 7: +# this flock takes the AT lock, and a hung sms_tool must not hold the state lock. +# The daemon and reset refuse to run without flock, so the branch without it is +# a guard for a caller that got here anyway: the query still runs, but another +# program on the port can garble it, so say so once. tg_at_unlocked() { [ "$FLOCK_TOLD" = 1 ] && return 0 tg_cfg_log "no flock command, AT queries run without the shared lock" @@ -171,18 +229,19 @@ tg_at() { [ "$DAEMON" = 1 ] && AT_NO_TIMEOUT_TOLD=1 fi if tg_have flock; then - flock "$lock" sms_tool -d "$port" at "$cmd" 2>/dev/null + flock "$lock" sms_tool -d "$port" at "$cmd" 2>/dev/null 7>&- else tg_at_unlocked - sms_tool -d "$port" at "$cmd" 2>/dev/null + sms_tool -d "$port" at "$cmd" 2>/dev/null 7>&- fi return fi if tg_have flock; then - timeout "$AT_WAIT" flock "$lock" timeout "$AT_TIMEOUT" sms_tool -d "$port" at "$cmd" 2>/dev/null + tg_timeout "$AT_WAIT" flock "$lock" timeout -k "$KILL_AFTER" "$AT_TIMEOUT" \ + sms_tool -d "$port" at "$cmd" 2>/dev/null 7>&- else tg_at_unlocked - timeout "$AT_TIMEOUT" sms_tool -d "$port" at "$cmd" 2>/dev/null + tg_timeout "$AT_TIMEOUT" sms_tool -d "$port" at "$cmd" 2>/dev/null 7>&- fi } @@ -299,19 +358,21 @@ tg_fan_find_cdev() { # Fill in the pwm paths from the detected chip. A configured path that works is # left alone; one that stopped working is replaced, because a renumbered hwmon -# is the likely reason and running without a fan is not an option here. +# is the likely reason and running without a fan is not an option here. The mode +# file is only ever the output's own: another chip's would switch that chip to +# manual and leave the configured output on its controller. tg_fan_resolve_pwm() { local h - [ -n "$PWM_PATH" ] && [ -w "$PWM_PATH" ] && [ -n "$PWM_ENABLE_PATH" ] && return 0 - - h=$(tg_fan_find_hwmon) - [ -n "$h" ] || return 0 - tg_path_hwmon "$h" || return 0 - if [ -z "$PWM_PATH" ] || [ ! -w "$PWM_PATH" ]; then - [ -w "$h/pwm1" ] && tg_fan_set_pwm_path "$h/pwm1" + h=$(tg_fan_find_hwmon) + if [ -n "$h" ] && tg_path_hwmon "$h" && [ -w "$h/pwm1" ]; then + tg_fan_set_pwm_path "$h/pwm1" + # A configured mode file went with the configured output, not this one. + PWM_ENABLE_PATH="" + fi fi - [ -n "$PWM_ENABLE_PATH" ] || [ ! -e "$h/pwm1_enable" ] || PWM_ENABLE_PATH="$h/pwm1_enable" + [ -n "$PWM_ENABLE_PATH" ] || [ -z "$PWM_PATH" ] || [ ! -e "${PWM_PATH}_enable" ] || + PWM_ENABLE_PATH="${PWM_PATH}_enable" return 0 } @@ -354,45 +415,304 @@ tg_fan_find_zone() { done } -tg_fan_state() { - case "$FAN_VIEW" in +# The fan a stage took over is recorded by identity, never by path: hwmonN and +# cooling_deviceN are numbers handed out in probe order. Each part is checked +# where it is recorded and where it is read, so none can add a line to the state. +# FAN_TGT_* is the fan the next force, check or release works on. +FAN_TGT_MODE=""; FAN_TGT_CDEV=""; FAN_TGT_ZONE=""; FAN_TGT_PWM=""; FAN_TGT_ENABLE="" +FAN_TGT_FULL="" +ID_NAME=""; ID_DEV=""; ID_ATTR=""; ID_ZONE=""; ID_FULL="" + +# Where the device link resolved to, empty for none. Only ever compared with +# what a scan finds, never written to. +tg_fan_dev_ok() { # $1 path + [ -z "$1" ] && return 0 + [ "${#1}" -le 200 ] || return 1 + case "$1" in *[!A-Za-z0-9_./:+@-]*) return 1 ;; esac + tg_path_under "$1" "$DEVICES_ROOT/" +} + +tg_fan_attr_ok() { + case "$1" in pwm[0-9]|pwm[0-9][0-9]) return 0 ;; esac + return 1 +} + +# The full speed value a pwm takeover wrote, a canonical 0 to 255. The polarity +# belongs to the record: a pwm_full changed during the stage, perhaps for an +# inverted chip, must not reach the fan taken over. +tg_fan_full_ok() { + case "$1" in ''|*[!0-9]*) return 1 ;; esac + [ "$1" = "$(tg_int "$1")" ] && [ "${#1}" -le 3 ] && [ "$1" -le 255 ] +} + +tg_boot_ok() { + [ "${#1}" -eq 36 ] || return 1 + case "$1" in *[!0-9a-f-]*) return 1 ;; esac + return 0 +} + +# This boot's id, empty where the kernel does not say. +tg_boot_id() { + local b="" + [ -r "$BOOT_ID_FILE" ] && read -r b < "$BOOT_ID_FILE" + tg_boot_ok "$b" && echo "$b" + return 0 +} + +# The resolved device link of a hwmon or cooling device directory, if it has one. +tg_fan_dev_of() { # $1 directory + [ -e "$1/device" ] && readlink -f "$1/device" 2>/dev/null + return 0 +} + +# Governor names, not free text: a saved policy is written back to sysfs. +tg_fan_policy_name() { + case "$1" in + step_wise|fair_share|bang_bang|user_space|power_allocator) echo "$1" ;; + *) echo "" ;; + esac +} + +# What the release needs to put the fan back: the record of which fan it is and +# what it was doing before. POLICY is the zone's governor for cooling_device, +# ENABLE and PWM the chip's mode and duty cycle. FAN_UNRESOLVED marks a record +# that cannot name its fan; it is kept, and nothing is ever written from it. +tg_fan_record_drop() { + FAN_TAKEN=""; FAN_BOOT=""; FAN_T_NAME=""; FAN_T_DEV=""; FAN_T_ATTR=""; FAN_T_ZONE="" + FAN_T_FULL="" + FAN_UNRESOLVED=0; FAN_SAVED_ENABLE=""; FAN_SAVED_PWM=""; FAN_SAVED_POLICY="" +} + +# A record that names its fan in full, so a scan can find it again. +tg_fan_recorded() { + [ "$FAN_UNRESOLVED" = 0 ] || return 1 + tg_boot_ok "$FAN_BOOT" && tg_name_ok "$FAN_T_NAME" || return 1 + case "$FAN_TAKEN" in + pwm) + tg_fan_attr_ok "$FAN_T_ATTR" && tg_fan_full_ok "$FAN_T_FULL" && [ -z "$FAN_T_ZONE" ] ;; + cooling_device) [ -z "$FAN_T_ATTR$FAN_T_FULL" ] ;; + *) return 1 ;; + esac +} + +# Nothing to force: no fan configured, and none taken over that can be found. +tg_fan_hands_off() { + [ "$FAN_MODE" = none ] && ! tg_fan_recorded +} + +# The identity of the configured fan in ID_*. 1 where a part has none that +# passes its check; that part stays empty. +tg_fan_identity() { + local d e rc=0 + ID_NAME=""; ID_DEV=""; ID_ATTR=""; ID_ZONE=""; ID_FULL="" + case "$FAN_MODE" in + pwm) + tg_path_hwmon "$PWM_PATH" || return 1 + d=${PWM_PATH%/*}; ID_ATTR=${PWM_PATH##*/}; ID_NAME=$(cat "$d/name" 2>/dev/null) + tg_fan_attr_ok "$ID_ATTR" || { ID_ATTR=""; rc=1; } + # A resolved record finds the output's own mode file and no other. The + # same file may be named through /sys/class or /sys/devices. + if [ -n "$PWM_ENABLE_PATH" ] && [ "$PWM_ENABLE_PATH" != "${PWM_PATH}_enable" ]; then + e=$(readlink -f "$PWM_ENABLE_PATH" 2>/dev/null) + [ -n "$e" ] && [ "$e" = "$(readlink -f "${PWM_PATH}_enable" 2>/dev/null)" ] || rc=1 + fi + ID_FULL=$(tg_int "$PWM_FULL") + tg_fan_full_ok "$ID_FULL" || { ID_FULL=""; rc=1; } + ;; cooling_device) - tg_path_thermal "$FAN_CDEV" || return - cat "$FAN_CDEV/cur_state" 2>/dev/null + tg_path_thermal "$FAN_CDEV" || return 1 + d=$FAN_CDEV; ID_NAME=$(cat "$d/type" 2>/dev/null) + if [ -n "$FAN_ZONE" ]; then + ID_ZONE=$(cat "$FAN_ZONE/type" 2>/dev/null) + tg_name_ok "$ID_ZONE" || { ID_ZONE=""; rc=1; } + fi + ;; + *) return 1 ;; + esac + tg_name_ok "$ID_NAME" || { ID_NAME=""; rc=1; } + ID_DEV=$(tg_fan_dev_of "$d") + tg_fan_dev_ok "$ID_DEV" || { ID_DEV=""; rc=1; } + return "$rc" +} + +# The one directory matching $1* whose $2 (name or type) and device link are +# the recorded ones. Without a recorded link the name alone has to be unique. +tg_fan_find_recorded() { # $1 path prefix, $2 file holding the name + local d n=0 found="" + for d in "$1"*; do + [ "$(cat "$d/$2" 2>/dev/null)" = "$FAN_T_NAME" ] || continue + [ -z "$FAN_T_DEV" ] || [ "$(tg_fan_dev_of "$d")" = "$FAN_T_DEV" ] || continue + n=$((n + 1)); found=$d + done + [ "$n" = 1 ] && echo "$found" + return 0 +} + +# The one zone of the recorded type that links to cooling device $1. +tg_fan_find_recorded_zone() { # $1 cooling device + local z c real n=0 found="" + real=$(readlink -f "$1") + for z in "$THERMAL_ROOT"/thermal_zone*; do + [ "$(cat "$z/type" 2>/dev/null)" = "$FAN_T_ZONE" ] || continue + for c in "$z"/cdev*; do + [ -e "$c" ] && [ "$(readlink -f "$c")" = "$real" ] || continue + n=$((n + 1)); found=$z + break + done + done + [ "$n" = 1 ] && echo "$found" + return 0 +} + +# Finds the recorded fan again, by scanning only, into FAN_TGT_*. No match or +# several are unresolved: 1, and nothing gets written. +tg_fan_resolve() { + local d z="" + case "$FAN_TAKEN" in + pwm) + d=$(tg_fan_find_recorded "$HWMON_ROOT/hwmon" name) + [ -n "$d" ] && [ -e "$d/$FAN_T_ATTR" ] && tg_path_hwmon "$d/$FAN_T_ATTR" || return 1 + FAN_TGT_PWM="$d/$FAN_T_ATTR"; FAN_TGT_ENABLE=""; FAN_TGT_CDEV=""; FAN_TGT_ZONE="" + FAN_TGT_FULL=$FAN_T_FULL + [ -e "${FAN_TGT_PWM}_enable" ] && FAN_TGT_ENABLE="${FAN_TGT_PWM}_enable" + ;; + cooling_device) + d=$(tg_fan_find_recorded "$THERMAL_ROOT/cooling_device" type) + [ -n "$d" ] && tg_path_thermal "$d" || return 1 + if [ -n "$FAN_T_ZONE" ]; then + z=$(tg_fan_find_recorded_zone "$d") + [ -n "$z" ] && tg_path_thermal "$z" || return 1 + fi + FAN_TGT_CDEV=$d; FAN_TGT_ZONE=$z; FAN_TGT_PWM=""; FAN_TGT_ENABLE=""; FAN_TGT_FULL="" + ;; + *) return 1 ;; + esac + FAN_TGT_MODE=$FAN_TAKEN +} + +# The configured fan as the target, where no record names one. Its full speed +# value only exists with both ends of the scale known. $1 force: an empty +# pwm_enable_path means the output's own mode file, as for a record. +tg_fan_target_config() { # $1 force or release + FAN_TGT_MODE=$FAN_MODE; FAN_TGT_CDEV=$FAN_CDEV; FAN_TGT_ZONE=$FAN_ZONE + FAN_TGT_PWM=$PWM_PATH; FAN_TGT_ENABLE=$PWM_ENABLE_PATH; FAN_TGT_FULL="" + tg_fan_polarity_known && FAN_TGT_FULL=$(tg_int "$PWM_FULL") + [ "$1" = force ] && [ "$FAN_MODE" = pwm ] && [ -z "$FAN_TGT_ENABLE" ] && + [ -n "$PWM_PATH" ] && [ -e "${PWM_PATH}_enable" ] && FAN_TGT_ENABLE="${PWM_PATH}_enable" + return 0 +} + +# A takeover. Which fan and what it was doing are saved before the first write, +# so neither a crash nor a failed force loses the way back. Saved values without +# a record are an older version's, of a fan nobody knows: they stay, nothing is +# mixed in. Only the fan keys of the file change (tg_fan_record_save): a restore +# writes them to the overlay, where its stage comes from, a cycle to the +# working state as it loaded it. +tg_fan_take() { + if [ -n "$FAN_SAVED_POLICY$FAN_SAVED_ENABLE$FAN_SAVED_PWM" ]; then + FAN_UNRESOLVED=1 + else + FAN_TAKEN=$FAN_TGT_MODE; FAN_BOOT=$(tg_boot_id) + tg_fan_identity || FAN_UNRESOLVED=1 + [ -n "$FAN_BOOT" ] || FAN_UNRESOLVED=1 + FAN_T_NAME=$ID_NAME; FAN_T_DEV=$ID_DEV; FAN_T_ATTR=$ID_ATTR; FAN_T_ZONE=$ID_ZONE + FAN_T_FULL=$ID_FULL + case "$FAN_TGT_MODE" in + cooling_device) + [ -z "$FAN_TGT_ZONE" ] || FAN_SAVED_POLICY=$(tg_fan_policy_name \ + "$(cat "$FAN_TGT_ZONE/policy" 2>/dev/null)") ;; + pwm) + [ -z "$FAN_TGT_ENABLE" ] || + FAN_SAVED_ENABLE=$(tg_int "$(cat "$FAN_TGT_ENABLE" 2>/dev/null)") + FAN_SAVED_PWM=$(tg_int "$(cat "$FAN_TGT_PWM" 2>/dev/null)") ;; + esac + fi + # Forcing goes ahead even where the save failed: more cooling is the safe side. + tg_fan_record_save + return 0 +} + +# The settings still describe the recorded fan: same mode, same identity. +tg_fan_settings_fit() { + tg_fan_identity && [ "$FAN_MODE" = "$FAN_TAKEN" ] && + [ "$ID_NAME|$ID_DEV|$ID_ATTR|$ID_ZONE|$ID_FULL" = \ + "$FAN_T_NAME|$FAN_T_DEV|$FAN_T_ATTR|$FAN_T_ZONE|$FAN_T_FULL" ] +} + +# Said once while the configured fan is not the one the record holds. +FAN_CHANGE_TOLD=0 +tg_fan_settings_check() { + local msg + if ! tg_fan_recorded || tg_fan_settings_fit; then + FAN_CHANGE_TOLD=0 + return 0 + fi + [ "$FAN_CHANGE_TOLD" = 1 ] && return 0 + msg="fan settings changed since the fan was taken over: the fan taken at stage entry" + msg="$msg stays in use until it is handed back, the new settings apply from the next takeover" + tg_cfg_log "$msg" + [ "$DAEMON" = 1 ] && FAN_CHANGE_TOLD=1 + return 0 +} + +# The fan as the status shows it, into FAN_PV_*. While a record names its fan, +# that fan is the one in control and the one read, whatever the settings say by +# now; their pwm scale applies only while they still describe it. Otherwise the +# settings and the view tg_fan_pick_view chose. An empty scale means unknown. +FAN_CONTROL=none; FAN_PV=none; FAN_PV_PWM=""; FAN_PV_CDEV=""; FAN_PV_IDLE=""; FAN_PV_FULL="" +tg_fan_view_now() { + FAN_CONTROL=$FAN_MODE; FAN_PV=$FAN_VIEW; FAN_PV_PWM=$PWM_PATH; FAN_PV_CDEV=$FAN_CDEV + FAN_PV_IDLE=""; FAN_PV_FULL="" + if tg_fan_polarity_known; then + FAN_PV_IDLE=$(tg_int "$PWM_IDLE"); FAN_PV_FULL=$(tg_int "$PWM_FULL") + fi + tg_fan_recorded || return 0 + FAN_CONTROL=$FAN_TAKEN; FAN_PV=$FAN_TAKEN; FAN_PV_PWM=""; FAN_PV_CDEV="" + tg_fan_settings_fit || { FAN_PV_IDLE=""; FAN_PV_FULL=""; } + tg_fan_resolve || return 0 + FAN_PV_PWM=$FAN_TGT_PWM; FAN_PV_CDEV=$FAN_TGT_CDEV +} + +tg_fan_state() { + case "$FAN_PV" in + cooling_device) + tg_path_thermal "$FAN_PV_CDEV" || return + cat "$FAN_PV_CDEV/cur_state" 2>/dev/null ;; pwm) - tg_path_hwmon "$PWM_PATH" || return - cat "$PWM_PATH" 2>/dev/null + tg_path_hwmon "$FAN_PV_PWM" || return + cat "$FAN_PV_PWM" 2>/dev/null ;; esac } tg_fan_max() { - case "$FAN_VIEW" in + case "$FAN_PV" in cooling_device) - tg_path_thermal "$FAN_CDEV" || return - cat "$FAN_CDEV/max_state" 2>/dev/null + tg_path_thermal "$FAN_PV_CDEV" || return + cat "$FAN_PV_CDEV/max_state" 2>/dev/null ;; - pwm) tg_fan_polarity_known && echo "$PWM_FULL" ;; + pwm) [ -n "$FAN_PV_IDLE" ] && echo "$FAN_PV_FULL" ;; esac } # Fan speed as 0..100 regardless of how the raw scale runs. For pwm that is the -# span between PWM_IDLE and PWM_FULL, which may descend on an inverted board; -# for a cooling device it is cur_state against max_state, which always ascends. -# Without this the status page reports a fan at full speed as nearly stopped. +# span between the idle and the full speed value, which may descend on an +# inverted board; for a cooling device it is cur_state against max_state, which +# always ascends. Without this the status page reports a fan at full speed as +# nearly stopped. tg_fan_percent() { # $1 optional raw value, otherwise the live reading local cur max span pct cur=${1:-$(tg_fan_state)} cur=$(tg_int "$cur") [ -n "$cur" ] || return 0 - case "$FAN_VIEW" in + case "$FAN_PV" in pwm) - tg_fan_polarity_known || return 0 - span=$((PWM_FULL - PWM_IDLE)) + [ -n "$FAN_PV_IDLE" ] && [ -n "$FAN_PV_FULL" ] || return 0 + span=$((FAN_PV_FULL - FAN_PV_IDLE)) [ "$span" -ne 0 ] || return 0 - pct=$(( (cur - PWM_IDLE) * 100 / span )) + pct=$(( (cur - FAN_PV_IDLE) * 100 / span )) ;; cooling_device) max=$(tg_int "$(tg_fan_max)") @@ -407,19 +727,30 @@ tg_fan_percent() { # $1 optional raw value, otherwise the live reading echo "$pct" } +# The fan lines of the status, after tg_fan_view_now. +tg_fan_status() { + printf 'fan_control=%s\nfan_view=%s\nfan_state=%s\nfan_max=%s\nfan_percent=%s\n' \ + "$FAN_CONTROL" "$FAN_PV" "$(tg_fan_state)" "$(tg_fan_max)" "$(tg_fan_percent)" +} + # We forced the fan when the stage was entered. If the value is gone the chip # belongs to someone else, a second fan daemon or a governor we did not take # over. Re-assert, because too much cooling is the safe direction, but say once # what is happening instead of quietly fighting every cycle. -FAN_FOREIGN=0 +# FAN_REASSERT_TOLD: a failed reassert was notified, until one works or the stage clears. +FAN_FOREIGN=0; FAN_REASSERT_TOLD=0 tg_fan_check_owner() { - local want have + local want="" have="" msg + tg_fan_settings_check if [ "$STAGE" -lt 0 ]; then + FAN_REASSERT_TOLD=0 # Idle, so nothing of ours is in there to compare against. For a # cooling device the zone still tells: user_space means somebody took # it off its governor, and it was not this daemon. Worth knowing # before an incident rather than during one. FAN_FOREIGN=0 + # A release that did not read back left this daemon's own values there. + tg_fan_restore_pending && return 0 [ "$FAN_MODE" = cooling_device ] && [ -n "$FAN_ZONE" ] || return 0 tg_path_thermal "$FAN_ZONE" || return 0 [ "$(cat "$FAN_ZONE/policy" 2>/dev/null)" = user_space ] || return 0 @@ -428,21 +759,56 @@ tg_fan_check_owner() { return 0 fi - case "$FAN_MODE" in - pwm) want=$PWM_FULL ;; - cooling_device) want=$(tg_int "$(tg_fan_max)") ;; + # The recorded fan, whatever the settings say by now. One that cannot be + # found again is not compared, and a reassert would fail the same way. + if tg_fan_recorded; then + tg_fan_resolve || return 0 + elif tg_fan_hands_off; then + FAN_FOREIGN=0 + return 0 + else + tg_fan_target_config force + fi + case "$FAN_TGT_MODE" in + pwm) + tg_path_hwmon "$FAN_TGT_PWM" || return 0 + want=$FAN_TGT_FULL; have=$(tg_int "$(cat "$FAN_TGT_PWM" 2>/dev/null)") ;; + cooling_device) + tg_path_thermal "$FAN_TGT_CDEV" || return 0 + want=$(tg_int "$(cat "$FAN_TGT_CDEV/max_state" 2>/dev/null)") + have=$(tg_int "$(cat "$FAN_TGT_CDEV/cur_state" 2>/dev/null)") ;; *) FAN_FOREIGN=0; return 0 ;; esac - have=$(tg_int "$(tg_fan_state)") [ -n "$want" ] && [ -n "$have" ] || return 0 if [ "$have" = "$want" ]; then FAN_FOREIGN=0 return 0 fi - [ "$FAN_FOREIGN" = 1 ] || tg_log "fan was set to $want but reads $have, another controller owns it. Set fan_mode=none to leave it alone." warning + if [ "$FAN_FOREIGN" != 1 ]; then + msg="fan was set to $want but reads $have, another controller owns it." + # A taken fan stays forced whatever fan_mode says, so that hint would mislead. + if tg_fan_recorded; then + msg="$msg It is reasserted until it is handed back." + else + msg="$msg Set fan_mode=none to leave it alone." + fi + tg_log "$msg" warning + fi FAN_FOREIGN=1 - tg_fan_full || tg_log "could not reassert the fan (mode $FAN_MODE)" crit + if tg_fan_full; then + FAN_REASSERT_TOLD=0 + return 0 + fi + [ "$FAN_REASSERT_TOLD" = 1 ] && return 0 + FAN_REASSERT_TOLD=1 + tg_notify "$STAGE" "stage $STAGE: could not reassert the fan (mode $FAN_TGT_MODE). Check the fan." +} + +# No stage, but a takeover record is still kept: the last release did not read +# back or could not find its fan, and the next reset retries it. +tg_fan_restore_pending() { + [ "$STAGE" -lt 0 ] && { [ -n "$FAN_TAKEN" ] || [ "$FAN_UNRESOLVED" = 1 ]; } } tg_fan_rpm() { @@ -452,59 +818,90 @@ tg_fan_rpm() { done } -# Force full speed. cooling_device takes the zone away from the kernel governor, -# pwm writes the duty cycle after taking manual control of the chip. +# Force full speed and read it back. The recorded fan where a record names one, +# whatever the settings say by now; otherwise the configured fan, taken over +# first unless a record that cannot name its fan is still kept. Returns 0 only +# when the readback matched, so a write the driver swallowed or an output that +# is not there is a failed action. tg_fan_full() { - case "$FAN_MODE" in + if tg_fan_recorded; then + tg_fan_resolve || return 1 + else + tg_fan_target_config force + tg_fan_ready || return 1 + [ -n "$FAN_TAKEN" ] || [ "$FAN_UNRESOLVED" = 1 ] || tg_fan_take + fi + tg_fan_ready && tg_fan_write_full +} + +# Whether FAN_TGT_* can be forced at all, checked before any write: a fan that +# cannot be driven never costs the zone its governor and is never taken over. +tg_fan_ready() { + local max + case "$FAN_TGT_MODE" in cooling_device) - tg_path_thermal "$FAN_CDEV" || return 1 - # Take the zone off its governor first, where there is one, and - # remember what it was on. Another program may already have taken - # it, and handing it back to the configured default rather than to - # what was actually there would cut that program's cooling short. - if [ -n "$FAN_ZONE" ]; then - tg_path_thermal "$FAN_ZONE" || return 1 - [ -n "$FAN_SAVED_POLICY" ] || - FAN_SAVED_POLICY=$(cat "$FAN_ZONE/policy" 2>/dev/null) - echo user_space > "$FAN_ZONE/policy" 2>/dev/null || return 1 - fi - # max_state means maximum cooling whichever way the cooling-levels - # in the device tree run, so this mode needs no idea of polarity. - tg_fan_max > "$FAN_CDEV/cur_state" 2>/dev/null + tg_path_thermal "$FAN_TGT_CDEV" || return 1 + # A max of 0 cools by nothing. + max=$(tg_int "$(cat "$FAN_TGT_CDEV/max_state" 2>/dev/null)") + [ -n "$max" ] && [ "$max" -gt 0 ] && [ -w "$FAN_TGT_CDEV/cur_state" ] || return 1 + [ -z "$FAN_TGT_ZONE" ] || tg_path_thermal "$FAN_TGT_ZONE" ;; pwm) - # Remember what the chip was doing before we take it over. The - # release writes this back, which beats asking the admin for a - # shell command and survives a daemon restart via the state file. - if [ -n "$PWM_ENABLE_PATH" ] && [ -z "$FAN_SAVED_ENABLE" ]; then - FAN_SAVED_ENABLE=$(tg_int "$(cat "$PWM_ENABLE_PATH" 2>/dev/null)") - fi - if [ -n "$PWM_PATH" ] && [ -z "$FAN_SAVED_PWM" ]; then - FAN_SAVED_PWM=$(tg_int "$(cat "$PWM_PATH" 2>/dev/null)") - fi - - if [ -n "$PWM_ENABLE_PATH" ]; then - tg_path_hwmon "$PWM_ENABLE_PATH" || return 1 - echo 1 > "$PWM_ENABLE_PATH" 2>/dev/null - fi - if [ -n "$PWM_PATH" ]; then - tg_path_hwmon "$PWM_PATH" || return 1 - echo "$PWM_FULL" > "$PWM_PATH" 2>/dev/null - fi + # A full speed value, the record's or one from both ends of the configured + # scale, and an output to write. + [ -n "$FAN_TGT_FULL" ] || return 1 + [ -n "$FAN_TGT_PWM" ] && tg_path_hwmon "$FAN_TGT_PWM" && [ -e "$FAN_TGT_PWM" ] || + return 1 + [ -z "$FAN_TGT_ENABLE" ] || tg_path_hwmon "$FAN_TGT_ENABLE" ;; - none) return 1 ;; + *) return 1 ;; esac } -# Hand the fan back. Only called on an explicit reset or a clean stop, never on -# the escalation path, so a crash leaves the fan running. +# cooling_device takes the zone away from the kernel governor, pwm writes the +# duty cycle after taking manual control of the chip. Every write is attempted +# before the checks: more cooling is the safe direction. +tg_fan_write_full() { + local max got rc=0 + case "$FAN_TGT_MODE" in + cooling_device) + # max_state means maximum cooling whichever way the cooling-levels + # in the device tree run, so this mode needs no idea of polarity. + max=$(tg_int "$(cat "$FAN_TGT_CDEV/max_state" 2>/dev/null)") + if [ -n "$FAN_TGT_ZONE" ]; then + { echo user_space > "$FAN_TGT_ZONE/policy"; } 2>/dev/null + fi + { echo "$max" > "$FAN_TGT_CDEV/cur_state"; } 2>/dev/null + if [ -n "$FAN_TGT_ZONE" ]; then + got=$(cat "$FAN_TGT_ZONE/policy" 2>/dev/null) + [ "$got" = user_space ] || rc=1 + fi + got=$(tg_int "$(cat "$FAN_TGT_CDEV/cur_state" 2>/dev/null)") + [ "$got" = "$max" ] || rc=1 + ;; + pwm) + if [ -n "$FAN_TGT_ENABLE" ]; then + { echo 1 > "$FAN_TGT_ENABLE"; } 2>/dev/null + fi + { echo "$FAN_TGT_FULL" > "$FAN_TGT_PWM"; } 2>/dev/null + if [ -n "$FAN_TGT_ENABLE" ]; then + got=$(tg_int "$(cat "$FAN_TGT_ENABLE" 2>/dev/null)") + [ "$got" = 1 ] || rc=1 + fi + got=$(tg_int "$(cat "$FAN_TGT_PWM" 2>/dev/null)") + [ "$got" = "$FAN_TGT_FULL" ] || rc=1 + ;; + esac + return $rc +} + # Hands the zone to governor $1 and reads the policy back. The kernel refuses # a governor it was built without, which would leave the zone on user_space # and the fan at full speed with nobody told. step_wise is in every kernel # with thermal support. Without available_policies the name is written as is. tg_fan_zone_policy() { local want="$1" avail got - avail=$(cat "$FAN_ZONE/available_policies" 2>/dev/null) + avail=$(cat "$FAN_TGT_ZONE/available_policies" 2>/dev/null) if [ -n "$avail" ]; then case " $avail " in *" $want "*) ;; @@ -514,8 +911,8 @@ tg_fan_zone_policy() { esac fi # Braces, so a failed open is as quiet as a failed write. - { echo "$want" > "$FAN_ZONE/policy"; } 2>/dev/null - got=$(cat "$FAN_ZONE/policy" 2>/dev/null) + { echo "$want" > "$FAN_TGT_ZONE/policy"; } 2>/dev/null + got=$(cat "$FAN_TGT_ZONE/policy" 2>/dev/null) [ "$got" = "$want" ] && return 0 tg_log "zone still reports policy '${got:-nothing}' after handing it back" crit return 1 @@ -531,36 +928,60 @@ tg_fan_write_back() { return 1 } +# Hand the fan back. Called by reset and by the automatic recovery only, never on +# the escalation path and not at a stop, so a crash or a stop leaves a forced fan +# forced. The recorded fan, found again by identity; without a record (2.0.0 +# saved none) the configured one. Returns 1 when the record cannot name its +# fan, the fan is not there once and only once, or a value did not read back. +# The record then stays, so a later reset or recovery can try again with it. tg_fan_release() { - local mode="" - case "$FAN_MODE" in + local msg="the fan taken over" + if [ "$FAN_UNRESOLVED" = 1 ]; then + msg="$msg has no usable record, nothing was handed back." + tg_log "$msg Check the fan by hand, then run 'thermal-guard fan-forget'" crit + return 1 + fi + if [ -z "$FAN_TAKEN" ]; then + tg_fan_target_config release + elif ! tg_fan_resolve; then + msg="$msg ($FAN_TAKEN $FAN_T_NAME) is not found exactly once, nothing was handed back" + tg_log "$msg" crit + return 1 + fi + tg_fan_hand_back || return 1 + tg_fan_record_drop + return 0 +} + +tg_fan_hand_back() { + local mode="" rc=0 + case "$FAN_TGT_MODE" in cooling_device) # Nothing to hand back where no zone drives the cooling device. - [ -n "$FAN_ZONE" ] || return 0 - tg_path_thermal "$FAN_ZONE" || return 0 + [ -n "$FAN_TGT_ZONE" ] || return 0 + tg_path_thermal "$FAN_TGT_ZONE" || return 0 # Back to whatever held the zone before, which may be another # program's user_space rather than a kernel governor. Only where # nothing was recorded, because the state was lost, does the # configured default get used as the safety net. if [ -n "$FAN_SAVED_POLICY" ]; then - tg_fan_zone_policy "$FAN_SAVED_POLICY" + tg_fan_zone_policy "$FAN_SAVED_POLICY" || return 1 else tg_log "no saved fan policy, handing the zone to $FAN_GOVERNOR" - tg_fan_zone_policy "$FAN_GOVERNOR" + tg_fan_zone_policy "$FAN_GOVERNOR" || return 1 fi - FAN_SAVED_POLICY="" ;; pwm) # Put back what we found. The fallback 2 means "automatic" on the # usual pwm chips; 0 is never written, because on some of them that # stops the fan, which is the opposite of what a release should do. - if [ -n "$PWM_ENABLE_PATH" ] && tg_path_hwmon "$PWM_ENABLE_PATH"; then + if [ -n "$FAN_TGT_ENABLE" ] && tg_path_hwmon "$FAN_TGT_ENABLE"; then mode=$FAN_SAVED_ENABLE if [ -z "$mode" ] || [ "$mode" = 0 ]; then tg_log "no saved fan control mode, handing the fan to automatic" mode=2 fi - tg_fan_write_back "$PWM_ENABLE_PATH" "$mode" "fan control mode" + tg_fan_write_back "$FAN_TGT_ENABLE" "$mode" "fan control mode" || rc=1 fi # The duty cycle only in manual mode, or where there is no mode to # set. In any other mode the chip drives it: the value saved before @@ -568,12 +989,13 @@ tg_fan_release() { # and reading it back would report the chip's own value as failure. case "$mode" in ''|1) - if [ -n "$FAN_SAVED_PWM" ] && [ -n "$PWM_PATH" ] && tg_path_hwmon "$PWM_PATH"; then - tg_fan_write_back "$PWM_PATH" "$FAN_SAVED_PWM" "fan pwm" + if [ -n "$FAN_SAVED_PWM" ] && [ -n "$FAN_TGT_PWM" ] && + tg_path_hwmon "$FAN_TGT_PWM"; then + tg_fan_write_back "$FAN_TGT_PWM" "$FAN_SAVED_PWM" "fan pwm" || rc=1 fi ;; esac - FAN_SAVED_ENABLE=""; FAN_SAVED_PWM="" + return "$rc" ;; esac return 0 @@ -663,8 +1085,8 @@ tg_modem_fibocom() { | awk '$2 > 0 && $2 > m { m = $2 } END { if (m > 0) printf "%d", m / 1000 }' } -# Sets MODEM_VAL and MODEM_SRC. Empty value means "no reading", which the logic -# treats as "condition met" so a dead modem never blocks an escalation. +# Sets MODEM_VAL and MODEM_SRC. Empty value means "no reading"; what that does +# depends on the transition (see tg_candidate). tg_read_modem() { local port v rc MODEM_VAL=""; MODEM_SRC="" @@ -673,7 +1095,17 @@ tg_read_modem() { none) return 0 ;; file) tg_path_modem_file "$MODEM_TEMP_FILE" || return 0 - v=$(tg_int "$(cat "$MODEM_TEMP_FILE" 2>/dev/null)") + # A fifo or a device would block the cycle, only a regular file is read. + [ -f "$MODEM_TEMP_FILE" ] || return 0 + if tg_have timeout; then + v=$(exec 7>&-; tg_timeout "$AT_TIMEOUT" head -c 32 \ + "$MODEM_TEMP_FILE" 2>/dev/null) || return 0 + else + v=$(exec 7>&-; head -c 32 "$MODEM_TEMP_FILE" 2>/dev/null) || return 0 + fi + v=$(tg_int "$v") + # Seven digits are plenty, a longer number would overflow the arithmetic. + [ "${#v}" -le 7 ] || return 0 [ -n "$v" ] && [ "$v" -gt 1000 ] && v=$((v / 1000)) [ -n "$v" ] && { MODEM_VAL=$v; MODEM_SRC="file"; } return 0 @@ -681,7 +1113,7 @@ tg_read_modem() { command) # An executable from the hook directory, not a string from UCI. [ -x "$HOOK_DIR/modem-temp" ] || return 0 - v=$({ timeout -k 5 "$AT_TIMEOUT" "$HOOK_DIR/modem-temp"; } 2>/dev/null) + v=$(exec 7>&- 2>/dev/null; tg_timeout "$AT_TIMEOUT" "$HOOK_DIR/modem-temp") rc=$? # Stopped at its time limit: coreutils timeout says 124, or 137 for # the KILL a hook that ignored TERM gets; a BusyBox timeout dies of @@ -689,6 +1121,8 @@ tg_read_modem() { # no reading. [ "$rc" -eq 124 ] || [ "$rc" -gt 128 ] && return 0 v=$(tg_int "$v") + # The same bound as for the file, a hook is no more trusted. + [ "${#v}" -le 7 ] || return 0 [ -n "$v" ] && { MODEM_VAL=$v; MODEM_SRC="command"; } return 0 ;; @@ -698,11 +1132,11 @@ tg_read_modem() { [ -n "$port" ] || return 0 case "$MODEM_SOURCE" in - quectel) v=$(tg_modem_quectel "$port") ;; - fibocom) v=$(tg_modem_fibocom "$port") ;; + quectel) v=$(exec 7>&-; tg_modem_quectel "$port") ;; + fibocom) v=$(exec 7>&-; tg_modem_fibocom "$port") ;; auto) - v=$(tg_modem_quectel "$port") - [ -n "$v" ] || v=$(tg_modem_fibocom "$port") + v=$(exec 7>&-; tg_modem_quectel "$port") + [ -n "$v" ] || v=$(exec 7>&-; tg_modem_fibocom "$port") ;; esac @@ -711,6 +1145,36 @@ tg_read_modem() { return 0 } +# The model as the modem names it, or nothing. AT+CGMM is plain 3GPP and needs +# no vendor case. Where another program owns the port (ModemManager), the +# modem-model hook answers instead, typically from that program's cache, so +# nothing extra reaches the modem. +tg_modem_model() { + local port v="" rc + case "$MODEM_SOURCE" in + none) return 0 ;; + file|command) + [ -x "$HOOK_DIR/modem-model" ] || return 0 + v=$(exec 7>&- 2>/dev/null; tg_timeout "$AT_TIMEOUT" "$HOOK_DIR/modem-model") + rc=$? + # Same reading of the exit status as the modem-temp hook. + [ "$rc" -eq 124 ] || [ "$rc" -gt 128 ] && return 0 + ;; + *) + port=$(tg_modem_port) + [ -n "$port" ] || return 0 + # Any other line starting with + is a result code the modem sent + # unasked, which can arrive before the reply. + v=$(exec 7>&-; tg_at "$port" 'AT+CGMM' | tr -d '\r' | sed -n \ + 's/^+CGMM: *//; /^+/d; /^AT/d; /^OK$/d; /^ERROR/d; /^[[:space:]]*$/d; p') + ;; + esac + # Some modems quote the model. + v=$(printf '%s\n' "$v" | head -n1 | + sed 's/^[[:space:]]*//; s/[[:space:]]*$//; s/^"\(.*\)"$/\1/') + tg_name "$v" +} + # Everything else the board reports: Wi-Fi chips, ethernet phys, disks. Printed as # "name=degrees" per line. The source of the processor reading is skipped so it does # not show up twice, and hwmon entries win over thermal zones with the same name. @@ -790,7 +1254,7 @@ tg_read_mtwifi() { flags=$(cat "$NET_ROOT/$ifname/flags" 2>/dev/null) case "$flags" in 0x[0-9a-fA-F]*) ;; *) continue ;; esac [ $((flags & 1)) -eq 1 ] || continue - raw=$(tg_mtwifi_temp "$ifname") + raw=$(exec 7>&-; tg_mtwifi_temp "$ifname") [ -n "$raw" ] || continue printf 'mtwifi_phy%s=%s\n' "$n" "$raw" done @@ -799,9 +1263,9 @@ tg_read_mtwifi() { tg_mtwifi_temp() { # $1 interface local out v if tg_have timeout; then - out=$(timeout 3 iwpriv "$1" stat 2>/dev/null) + out=$(exec 7>&-; tg_timeout 3 iwpriv "$1" stat 2>/dev/null) else - out=$(iwpriv "$1" stat 2>/dev/null) + out=$(exec 7>&-; iwpriv "$1" stat 2>/dev/null) fi v=$(printf '%s\n' "$out" | sed -n 's/^CurrentTemperature *= *\(-\{0,1\}[0-9]\{1,3\}\) *$/\1/p' | head -n 1) v=$(tg_int "$v") @@ -823,10 +1287,11 @@ tg_modem_cfun_set() { # $1 level local port got="" i=0 port=$(tg_modem_port) [ -n "$port" ] || return 1 - while [ "$i" -lt 3 ]; do - [ "$i" -gt 0 ] && sleep "$CFUN_SETTLE" + while [ "$i" -lt "$CFUN_TRIES" ]; do + [ "$i" -gt 0 ] && sleep "$CFUN_SETTLE" 7>&- tg_at "$port" "AT+CFUN=$1" >/dev/null 2>&1 - got=$(tg_at "$port" 'AT+CFUN?' | tr -d '\r' | sed -n 's/^+CFUN: *\([0-9]\).*/\1/p' | head -n1) + got=$(exec 7>&-; tg_at "$port" 'AT+CFUN?' | tr -d '\r' | + sed -n 's/^+CFUN: *\([0-9]\).*/\1/p' | head -n1) [ "$got" = "$1" ] && return 0 i=$((i + 1)) done @@ -844,14 +1309,26 @@ tg_iface_name_ok() { # "true" or "false" as netifd reports it, empty for an interface it does not know. tg_iface_up_state() { - timeout "$UBUS_TIMEOUT" ubus call "network.interface.$1" status 2>/dev/null \ + tg_timeout "$UBUS_TIMEOUT" ubus call "network.interface.$1" status 2>/dev/null 7>&- \ | jsonfilter -e '@.up' 2>/dev/null } -tg_action_interface_down() { tg_iface_set "${ACTION_INTERFACE:-$UPLINK_INTERFACE}" false; } -tg_action_interface_up() { tg_iface_set "${ACTION_INTERFACE:-$UPLINK_INTERFACE}" true; } +# $1 the interface to take down, empty for the configured one. +tg_action_interface_down() { tg_iface_set "${1:-${ACTION_INTERFACE:-$UPLINK_INTERFACE}}" false; } +# $1 the interface that went down, empty for the configured one. +tg_action_interface_up() { tg_iface_set "${1:-${ACTION_INTERFACE:-$UPLINK_INTERFACE}}" true; } -# ifdown and ifup return before netifd has acted, so wait for its report. +# $1 action name: the interface interface_down acts on, empty for any other +# action and for an interface that is not usable. +tg_action_iface() { + [ "$1" = interface_down ] || return 0 + tg_iface_name_ok "${ACTION_INTERFACE:-$UPLINK_INTERFACE}" || return 0 + echo "${ACTION_INTERFACE:-$UPLINK_INTERFACE}" +} + +# ifdown and ifup return before netifd has acted, so wait for its report. Like +# every command run under the state lock they do not get fd 7: a child they +# leave behind would hold the lock after this process is gone. tg_iface_set() { # $1 interface, $2 true or false local i=0 got="" if ! tg_iface_name_ok "$1"; then @@ -860,13 +1337,13 @@ tg_iface_set() { # $1 interface, $2 true or false fi tg_have ifdown || return 1 if [ "$2" = false ]; then - timeout "$CMD_TIMEOUT" ifdown "$1" >/dev/null 2>&1 + tg_timeout "$CMD_TIMEOUT" ifdown "$1" >/dev/null 2>&1 7>&- else - timeout "$CMD_TIMEOUT" ifup "$1" >/dev/null 2>&1 + tg_timeout "$CMD_TIMEOUT" ifup "$1" >/dev/null 2>&1 7>&- fi - while [ "$i" -lt 3 ]; do - [ "$i" -gt 0 ] && sleep "$CFUN_SETTLE" - got=$(tg_iface_up_state "$1") + while [ "$i" -lt "$IFACE_TRIES" ]; do + [ "$i" -gt 0 ] && sleep "$CFUN_SETTLE" 7>&- + got=$(exec 7>&-; tg_iface_up_state "$1") [ "$got" = "$2" ] && return 0 i=$((i + 1)) done @@ -883,7 +1360,8 @@ tg_action_wifi_on() { tg_wifi_set up; } # without a "disabled" key at all. tg_wifi_radios() { local json v radios=0 up=0 - json=$(timeout "$UBUS_TIMEOUT" ubus call network.wireless status 2>/dev/null) || return 0 + json=$(exec 7>&-; tg_timeout "$UBUS_TIMEOUT" ubus call network.wireless status \ + 2>/dev/null) || return 0 [ -n "$json" ] || return 0 for v in $(printf '%s\n' "$json" | jsonfilter -e '@[!(@.disabled=true)].up' 2>/dev/null); do radios=$((radios + 1)) @@ -902,9 +1380,11 @@ tg_wifi_set() { # $1 down or up return 1 fi while [ "$i" -lt "$WIFI_TRIES" ]; do - timeout "$CMD_TIMEOUT" wifi "$1" >/dev/null 2>&1 - [ "$WIFI_SETTLE" -gt 0 ] && sleep "$WIFI_SETTLE" - state=$(tg_wifi_radios) + # Without fd 7: some vendor wifi scripts start the radio daemons themselves, + # which would hold the state lock for as long as they run. + tg_timeout "$CMD_TIMEOUT" wifi "$1" >/dev/null 2>&1 7>&- + [ "$WIFI_SETTLE" -gt 0 ] && sleep "$WIFI_SETTLE" 7>&- + state=$(exec 7>&-; tg_wifi_radios) if [ -n "$state" ]; then radios=${state%% *}; up=${state#* } # Nothing to switch off is not a success: the stage would claim an @@ -934,13 +1414,14 @@ tg_wifi_set() { # $1 down or up # way out" from "the only way out is the thing we are about to switch off". tg_modem_l3dev() { [ -n "$UPLINK_INTERFACE" ] || return 0 - timeout "$UBUS_TIMEOUT" ubus call "network.interface.$UPLINK_INTERFACE" status 2>/dev/null \ + tg_timeout "$UBUS_TIMEOUT" ubus call "network.interface.$UPLINK_INTERFACE" status \ + 2>/dev/null 7>&- \ | jsonfilter -e '@.l3_device' 2>/dev/null } tg_default_devs() { tg_have ip || return 0 - { ip -4 route show default; ip -6 route show default; } 2>/dev/null \ + { ip -4 route show default; ip -6 route show default; } 2>/dev/null 7>&- \ | sed -n 's/.* dev \([^ ]*\).*/\1/p' } @@ -958,12 +1439,12 @@ tg_uplink_unknown() { tg_alt_uplink() { local md dev tg_uplink_unknown && return 0 - md=$(tg_modem_l3dev) - for dev in $(tg_default_devs); do + md=$(exec 7>&-; tg_modem_l3dev) + for dev in $(exec 7>&-; tg_default_devs); do [ -n "$md" ] && [ "$dev" = "$md" ] && continue return 0 done return 1 } -tg_any_uplink() { tg_uplink_unknown || [ -n "$(tg_default_devs)" ]; } +tg_any_uplink() { tg_uplink_unknown || [ -n "$(exec 7>&-; tg_default_devs)" ]; } diff --git a/thermal-guard/files/usr/share/thermal-guard/modems b/thermal-guard/files/usr/share/thermal-guard/modems new file mode 100644 index 000000000..f14c18eed --- /dev/null +++ b/thermal-guard/files/usr/share/thermal-guard/modems @@ -0,0 +1,17 @@ +# Modem profiles for thermal-guard: default modem limits per model. +# +# One line per profile: pattern, warn, crit, source, separated by blanks. +# pattern shell glob, * and ? only, against the model the modem reports +# (AT+CGMM or the modem-model hook); case does not matter +# warn modem_warn in whole degrees, 40 to 120 +# crit modem_crit, above warn, at most 120 +# source the rest of the line: the measurement or published limit the +# numbers come from. Required, a line without one is skipped. +# +# The first matching line wins, so specific patterns go above generic ones. +# modem_warn and modem_crit set in /etc/config/thermal-guard override these +# values one by one. thermal-guard reads the hottest sensor the modem +# reports, which is a die or amplifier sensor, not the module case. +# +RM520N-GL* 85 95 GL-X3000 2026-10-19: 80 C after 90 min of 5G load, GL.iNet firmware sets no modem limit +FM350-GL* 80 88 Banana Pi R3 Mini: plateau 73 to 74 C under sustained load (2026-09-19), 59 to 63 C with heatsink (2026-09-21) diff --git a/thermal-guard/files/usr/share/thermal-guard/trips.sh b/thermal-guard/files/usr/share/thermal-guard/trips.sh index 2e8622c5c..bacd57f76 100644 --- a/thermal-guard/files/usr/share/thermal-guard/trips.sh +++ b/thermal-guard/files/usr/share/thermal-guard/trips.sh @@ -233,7 +233,7 @@ tg_trip_base_save() { # $1 whole degrees, space separated mkdir -p "$PERSIST_DIR" 2>/dev/null && echo "$1" > "$f.tmp" 2>/dev/null && chmod 644 "$f.tmp" && mv "$f.tmp" "$f" 2>/dev/null || return 1 - sync + tg_sync } tg_trip_base_read() { @@ -336,7 +336,8 @@ tg_fan_levels() { local f for f in "$DT_ROOT"/*/cooling-levels "$DT_ROOT"/*/*/cooling-levels; do [ -r "$f" ] || continue - tr '\0' '\n' < "${f%/*}/compatible" 2>/dev/null | grep -qx pwm-fan || continue + # The braces take the open error too, a node may have no compatible. + { tr '\0' '\n' < "${f%/*}/compatible"; } 2>/dev/null | grep -qx pwm-fan || continue hexdump -v -e '4/1 "%u " "\n"' "$f" 2>/dev/null | awk 'NF == 4 { printf "%s%d", s, $1 * 16777216 + $2 * 65536 + $3 * 256 + $4; s = " " }' return 0