summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog383
-rw-r--r--LICENSE2
-rw-r--r--Makefile.am12
-rw-r--r--acinclude.m42
-rw-r--r--changes/111506
-rw-r--r--changes/170043
-rw-r--r--changes/170753
-rw-r--r--changes/170783
-rw-r--r--changes/170823
-rw-r--r--changes/170843
-rw-r--r--changes/175733
-rw-r--r--changes/178265
-rw-r--r--changes/179263
-rw-r--r--changes/179443
-rw-r--r--changes/74197
-rw-r--r--changes/assert_event_base5
-rw-r--r--changes/bug148214
-rw-r--r--changes/bug156382
-rw-r--r--changes/bug160234
-rw-r--r--changes/bug163823
-rw-r--r--changes/bug165636
-rw-r--r--changes/bug166515
-rw-r--r--changes/bug16794_ed3
-rw-r--r--changes/bug168257
-rw-r--r--changes/bug170033
-rw-r--r--changes/bug170265
-rw-r--r--changes/bug17027-reject-private-bind-port7
-rw-r--r--changes/bug171947
-rw-r--r--changes/bug173474
-rw-r--r--changes/bug174194
-rw-r--r--changes/bug175444
-rw-r--r--changes/bug175493
-rw-r--r--changes/bug17562-DataDirectoryGroupReadable3
-rw-r--r--changes/bug17562-allow-root-group-read6
-rw-r--r--changes/bug17562-defer-unix-socket-creation4
-rw-r--r--changes/bug17572-fallback-by-digest5
-rw-r--r--changes/bug175834
-rw-r--r--changes/bug175897
-rw-r--r--changes/bug17632-no-ipv4-no-localhost7
-rw-r--r--changes/bug17638-ipv6-ersatz-socketpair5
-rw-r--r--changes/bug176754
-rw-r--r--changes/bug176833
-rw-r--r--changes/bug176864
-rw-r--r--changes/bug17694_strongest6
-rw-r--r--changes/bug177244
-rw-r--r--changes/bug1773210
-rw-r--r--changes/bug177534
-rw-r--r--changes/bug177635
-rw-r--r--changes/bug177766
-rw-r--r--changes/bug177783
-rw-r--r--changes/bug177914
-rw-r--r--changes/bug178043
-rw-r--r--changes/bug178183
-rw-r--r--changes/bug178194
-rw-r--r--changes/bug178273
-rw-r--r--changes/bug178433
-rw-r--r--changes/bug1785210
-rw-r--r--changes/bug178765
-rw-r--r--changes/bug178876
-rw-r--r--changes/bug178886
-rw-r--r--changes/bug178924
-rw-r--r--changes/bug178934
-rw-r--r--changes/bug179064
-rw-r--r--changes/bug179234
-rw-r--r--changes/bug179244
-rw-r--r--changes/bug180356
-rw-r--r--changes/bug180507
-rw-r--r--changes/bug180514
-rw-r--r--changes/bug180896
-rw-r--r--changes/bug181163
-rw-r--r--changes/bug181234
-rw-r--r--changes/bug181627
-rw-r--r--changes/bug181845
-rw-r--r--changes/bug182085
-rw-r--r--changes/bug182213
-rw-r--r--changes/bug182426
-rw-r--r--changes/bug1825812
-rw-r--r--changes/bug182594
-rw-r--r--changes/bug182616
-rw-r--r--changes/bug182964
-rw-r--r--changes/bug183485
-rw-r--r--changes/bug183743
-rw-r--r--changes/bug183845
-rw-r--r--changes/bug18426_184594
-rw-r--r--changes/bug184486
-rw-r--r--changes/bug4483-multiple-consensus-downloads9
-rw-r--r--changes/bug60274
-rw-r--r--changes/build184904
-rw-r--r--changes/check-crypto-errors5
-rw-r--r--changes/cleanup_175873
-rw-r--r--changes/decouple_circuit_mark6
-rw-r--r--changes/decouple_conn_attach6
-rw-r--r--changes/doc173924
-rw-r--r--changes/feature125386
-rw-r--r--changes/feature136963
-rw-r--r--changes/feature148464
-rw-r--r--changes/feature15775-fallback19
-rw-r--r--changes/feature167743
-rw-r--r--changes/feature170763
-rw-r--r--changes/feature173275
-rw-r--r--changes/feature17576-UseDefaultFallbackDirs4
-rw-r--r--changes/feature176084
-rw-r--r--changes/feature176633
-rw-r--r--changes/feature177966
-rw-r--r--changes/feature178409
-rw-r--r--changes/feature178636
-rw-r--r--changes/feature178645
-rw-r--r--changes/feature179505
-rw-r--r--changes/feature179516
-rw-r--r--changes/feature179863
-rw-r--r--changes/feature81956
-rw-r--r--changes/feature8961-replaycache-sha2564
-rw-r--r--changes/first-hop-no-private8
-rw-r--r--changes/geoip-february20164
-rw-r--r--changes/geoip-january20164
-rw-r--r--changes/geoip-march20164
-rw-r--r--changes/getinfo-private-exitpolicy6
-rw-r--r--changes/laplace-edge-cases8
-rw-r--r--changes/log_heartbeat_test6
-rw-r--r--changes/rand-failure-modes5
-rw-r--r--changes/remove_memarea_freelist4
-rw-r--r--changes/routerset-parse-IPv6-literals5
-rw-r--r--changes/sha-unit-tests5
-rw-r--r--changes/test168313
-rw-r--r--changes/test_asan3
-rw-r--r--changes/ticket159899
-rw-r--r--changes/ticket171587
-rw-r--r--changes/ticket177444
-rw-r--r--changes/trunnel_update5
-rw-r--r--changes/warn-when-time-goes-backwards5
-rw-r--r--configure.ac205
-rw-r--r--contrib/win32build/tor-mingw.nsi.in2
-rw-r--r--doc/HACKING/CodingStandards.md5
-rw-r--r--doc/HACKING/WritingTests.md42
-rw-r--r--doc/contrib/tor-rpm-creation.txt2
-rw-r--r--doc/tor.1.txt42
-rwxr-xr-xscripts/maint/analyze_callgraph.py50
-rwxr-xr-xscripts/maint/display_callgraph.py2
-rw-r--r--scripts/maint/fallback.whitelist4
-rwxr-xr-xscripts/maint/lintChanges.py24
-rwxr-xr-xscripts/maint/sortChanges.py28
-rwxr-xr-xscripts/maint/updateCopyright.pl4
-rwxr-xr-xscripts/maint/updateFallbackDirs.py92
-rw-r--r--src/common/address.c59
-rw-r--r--src/common/address.h23
-rw-r--r--src/common/aes.c185
-rw-r--r--src/common/aes.h5
-rw-r--r--src/common/backtrace.c14
-rw-r--r--src/common/backtrace.h2
-rw-r--r--src/common/compat.c11
-rw-r--r--src/common/compat.h11
-rw-r--r--src/common/compat_libevent.c3
-rw-r--r--src/common/compat_libevent.h2
-rw-r--r--src/common/compat_openssl.h4
-rw-r--r--src/common/compat_pthreads.c9
-rw-r--r--src/common/compat_threads.c10
-rw-r--r--src/common/compat_threads.h2
-rw-r--r--src/common/compat_winthreads.c9
-rw-r--r--src/common/container.c60
-rw-r--r--src/common/container.h2
-rw-r--r--src/common/crypto.c127
-rw-r--r--src/common/crypto.h16
-rw-r--r--src/common/crypto_curve25519.c8
-rw-r--r--src/common/crypto_curve25519.h2
-rw-r--r--src/common/crypto_ed25519.c8
-rw-r--r--src/common/crypto_ed25519.h2
-rw-r--r--src/common/crypto_format.c8
-rw-r--r--src/common/crypto_format.h2
-rw-r--r--src/common/crypto_pwbox.c9
-rw-r--r--src/common/crypto_s2k.c8
-rw-r--r--src/common/crypto_s2k.h2
-rw-r--r--src/common/di_ops.c2
-rw-r--r--src/common/di_ops.h2
-rw-r--r--src/common/log.c15
-rw-r--r--src/common/memarea.c77
-rw-r--r--src/common/memarea.h3
-rw-r--r--src/common/procmon.c2
-rw-r--r--src/common/procmon.h2
-rw-r--r--src/common/sandbox.c5
-rw-r--r--src/common/sandbox.h2
-rw-r--r--src/common/testsupport.h2
-rw-r--r--src/common/torgzip.c2
-rw-r--r--src/common/torgzip.h2
-rw-r--r--src/common/torint.h30
-rw-r--r--src/common/torlog.h2
-rw-r--r--src/common/tortls.c28
-rw-r--r--src/common/tortls.h19
-rw-r--r--src/common/util.c118
-rw-r--r--src/common/util.h12
-rw-r--r--src/common/util_format.c9
-rw-r--r--src/common/util_format.h2
-rw-r--r--src/common/util_process.c2
-rw-r--r--src/common/util_process.h2
-rw-r--r--src/common/workqueue.c7
-rw-r--r--src/common/workqueue.h2
-rw-r--r--src/config/geoip10424
-rw-r--r--src/config/geoip62690
-rw-r--r--src/ext/ed25519/donna/ed25519_tor.c8
-rw-r--r--src/ext/eventdns.c15
-rw-r--r--src/ext/trunnel/trunnel-impl.h2
-rw-r--r--src/ext/trunnel/trunnel.c2
-rw-r--r--src/ext/trunnel/trunnel.h2
-rw-r--r--src/or/addressmap.c11
-rw-r--r--src/or/addressmap.h2
-rw-r--r--src/or/buffers.c5
-rw-r--r--src/or/buffers.h2
-rw-r--r--src/or/channel.c8
-rw-r--r--src/or/channel.h2
-rw-r--r--src/or/channeltls.c11
-rw-r--r--src/or/channeltls.h2
-rw-r--r--src/or/circpathbias.c11
-rw-r--r--src/or/circpathbias.h2
-rw-r--r--src/or/circuitbuild.c54
-rw-r--r--src/or/circuitbuild.h2
-rw-r--r--src/or/circuitlist.c33
-rw-r--r--src/or/circuitlist.h2
-rw-r--r--src/or/circuitmux.c2
-rw-r--r--src/or/circuitmux.h2
-rw-r--r--src/or/circuitmux_ewma.c2
-rw-r--r--src/or/circuitmux_ewma.h2
-rw-r--r--src/or/circuitstats.c9
-rw-r--r--src/or/circuitstats.h2
-rw-r--r--src/or/circuituse.c9
-rw-r--r--src/or/circuituse.h2
-rw-r--r--src/or/command.c2
-rw-r--r--src/or/command.h2
-rw-r--r--src/or/config.c39
-rw-r--r--src/or/config.h6
-rw-r--r--src/or/confparse.c9
-rw-r--r--src/or/confparse.h2
-rw-r--r--src/or/connection.c120
-rw-r--r--src/or/connection.h8
-rw-r--r--src/or/connection_edge.c2
-rw-r--r--src/or/connection_edge.h2
-rw-r--r--src/or/connection_or.c4
-rw-r--r--src/or/connection_or.h2
-rw-r--r--src/or/control.c34
-rw-r--r--src/or/control.h7
-rw-r--r--src/or/cpuworker.c2
-rw-r--r--src/or/cpuworker.h2
-rw-r--r--src/or/dircollate.c2
-rw-r--r--src/or/dircollate.h2
-rw-r--r--src/or/directory.c314
-rw-r--r--src/or/directory.h6
-rw-r--r--src/or/dirserv.c8
-rw-r--r--src/or/dirserv.h8
-rw-r--r--src/or/dirvote.c8
-rw-r--r--src/or/dirvote.h2
-rw-r--r--src/or/dns.c2
-rw-r--r--src/or/dns.h2
-rw-r--r--src/or/dnsserv.c5
-rw-r--r--src/or/dnsserv.h2
-rw-r--r--src/or/entrynodes.c52
-rw-r--r--src/or/entrynodes.h2
-rw-r--r--src/or/eventdns_tor.h2
-rw-r--r--src/or/ext_orport.c2
-rw-r--r--src/or/ext_orport.h2
-rw-r--r--src/or/fallback_dirs.inc320
-rw-r--r--src/or/fp_pair.c10
-rw-r--r--src/or/fp_pair.h2
-rw-r--r--src/or/geoip.c2
-rw-r--r--src/or/geoip.h2
-rw-r--r--src/or/hibernate.c2
-rw-r--r--src/or/hibernate.h2
-rw-r--r--src/or/keypin.c9
-rw-r--r--src/or/keypin.h2
-rw-r--r--src/or/main.c75
-rw-r--r--src/or/main.h4
-rw-r--r--src/or/microdesc.c11
-rw-r--r--src/or/microdesc.h2
-rw-r--r--src/or/networkstatus.c4
-rw-r--r--src/or/networkstatus.h2
-rw-r--r--src/or/nodelist.c322
-rw-r--r--src/or/nodelist.h14
-rw-r--r--src/or/ntmain.c8
-rw-r--r--src/or/ntmain.h2
-rw-r--r--src/or/onion.c2
-rw-r--r--src/or/onion.h2
-rw-r--r--src/or/onion_fast.c2
-rw-r--r--src/or/onion_fast.h2
-rw-r--r--src/or/onion_ntor.c8
-rw-r--r--src/or/onion_ntor.h2
-rw-r--r--src/or/onion_tap.c2
-rw-r--r--src/or/onion_tap.h2
-rw-r--r--src/or/or.h35
-rw-r--r--src/or/periodic.c8
-rw-r--r--src/or/periodic.h2
-rw-r--r--src/or/policies.c710
-rw-r--r--src/or/policies.h52
-rw-r--r--src/or/reasons.c2
-rw-r--r--src/or/reasons.h2
-rw-r--r--src/or/relay.c11
-rw-r--r--src/or/relay.h2
-rw-r--r--src/or/rendcache.c3
-rw-r--r--src/or/rendcache.h2
-rw-r--r--src/or/rendclient.c14
-rw-r--r--src/or/rendclient.h2
-rw-r--r--src/or/rendcommon.c76
-rw-r--r--src/or/rendcommon.h6
-rw-r--r--src/or/rendmid.c2
-rw-r--r--src/or/rendmid.h2
-rw-r--r--src/or/rendservice.c2
-rw-r--r--src/or/rendservice.h2
-rw-r--r--src/or/rephist.c2
-rw-r--r--src/or/rephist.h2
-rw-r--r--src/or/replaycache.c2
-rw-r--r--src/or/replaycache.h2
-rw-r--r--src/or/router.c70
-rw-r--r--src/or/router.h2
-rw-r--r--src/or/routerkeys.c14
-rw-r--r--src/or/routerkeys.h2
-rw-r--r--src/or/routerlist.c410
-rw-r--r--src/or/routerlist.h12
-rw-r--r--src/or/routerparse.c29
-rw-r--r--src/or/routerparse.h5
-rw-r--r--src/or/routerset.c9
-rw-r--r--src/or/routerset.h2
-rw-r--r--src/or/scheduler.c2
-rw-r--r--src/or/scheduler.h2
-rw-r--r--src/or/statefile.c9
-rw-r--r--src/or/statefile.h2
-rw-r--r--src/or/status.c2
-rw-r--r--src/or/status.h2
-rw-r--r--src/or/tor_main.c2
-rw-r--r--src/or/torcert.c9
-rw-r--r--src/or/torcert.h2
-rw-r--r--src/or/transports.c2
-rw-r--r--src/or/transports.h2
-rw-r--r--src/test/bench.c2
-rw-r--r--src/test/fakechans.h2
-rw-r--r--src/test/include.am9
-rw-r--r--src/test/log_test_helpers.c2
-rw-r--r--src/test/log_test_helpers.h3
-rwxr-xr-xsrc/test/ntor_ref.py2
-rw-r--r--src/test/rend_test_helpers.c2
-rw-r--r--src/test/rend_test_helpers.h2
-rw-r--r--src/test/test-child.c2
-rw-r--r--src/test/test.c6
-rw-r--r--src/test/test.h2
-rw-r--r--src/test/test_addr.c2
-rw-r--r--src/test/test_address.c6
-rw-r--r--src/test/test_bt_cl.c2
-rw-r--r--src/test/test_buffers.c2
-rw-r--r--src/test/test_cell_formats.c2
-rw-r--r--src/test/test_cell_queue.c2
-rw-r--r--src/test/test_channel.c2
-rw-r--r--src/test/test_channeltls.c2
-rw-r--r--src/test/test_checkdir.c2
-rw-r--r--src/test/test_circuitlist.c2
-rw-r--r--src/test/test_circuitmux.c6
-rw-r--r--src/test/test_compat_libevent.c2
-rw-r--r--src/test/test_config.c186
-rw-r--r--src/test/test_connection.c2
-rw-r--r--src/test/test_containers.c2
-rw-r--r--src/test/test_controller.c2
-rw-r--r--src/test/test_controller_events.c2
-rw-r--r--src/test/test_crypto.c26
-rw-r--r--src/test/test_crypto_slow.c2
-rw-r--r--src/test/test_data.c2
-rw-r--r--src/test/test_dir.c18
-rw-r--r--src/test/test_dir_common.c2
-rw-r--r--src/test/test_dir_common.h2
-rw-r--r--src/test/test_dir_handle_get.c8
-rw-r--r--src/test/test_dns.c2
-rw-r--r--src/test/test_entryconn.c2
-rw-r--r--src/test/test_entrynodes.c228
-rw-r--r--src/test/test_extorport.c2
-rw-r--r--src/test/test_guardfraction.c2
-rw-r--r--src/test/test_helpers.c2
-rw-r--r--src/test/test_helpers.h2
-rw-r--r--src/test/test_hs.c2
-rw-r--r--src/test/test_introduce.c2
-rw-r--r--src/test/test_keypin.c2
-rw-r--r--src/test/test_link_handshake.c2
-rw-r--r--src/test/test_logging.c2
-rw-r--r--src/test/test_microdesc.c2
-rw-r--r--src/test/test_nodelist.c2
-rw-r--r--src/test/test_ntor_cl.c2
-rw-r--r--src/test/test_oom.c2
-rw-r--r--src/test/test_options.c164
-rw-r--r--src/test/test_policy.c709
-rw-r--r--src/test/test_procmon.c2
-rw-r--r--src/test/test_pt.c2
-rw-r--r--src/test/test_relay.c2
-rw-r--r--src/test/test_relaycell.c2
-rw-r--r--src/test/test_rendcache.c6
-rw-r--r--src/test/test_replay.c2
-rw-r--r--src/test/test_routerkeys.c2
-rw-r--r--src/test/test_routerlist.c114
-rw-r--r--src/test/test_scheduler.c2
-rw-r--r--src/test/test_slow.c2
-rw-r--r--src/test/test_socks.c2
-rw-r--r--src/test/test_switch_id.c2
-rw-r--r--src/test/test_threads.c2
-rw-r--r--src/test/test_tortls.c39
-rw-r--r--src/test/test_util.c5
-rw-r--r--src/test/test_util_format.c2
-rw-r--r--src/test/test_util_process.c2
-rw-r--r--src/test/test_util_slow.c2
-rw-r--r--src/test/test_workqueue.c2
-rw-r--r--src/test/testing_common.c11
-rw-r--r--src/trunnel/ed25519_cert.c8
-rw-r--r--src/trunnel/ed25519_cert.h2
-rw-r--r--src/trunnel/link_handshake.c20
-rw-r--r--src/trunnel/link_handshake.h2
-rw-r--r--src/trunnel/pwbox.c14
-rw-r--r--src/trunnel/pwbox.h2
-rw-r--r--src/win32/orconfig.h5
408 files changed, 13889 insertions, 6628 deletions
diff --git a/ChangeLog b/ChangeLog
index b59ec43467..c39ea1973d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,362 @@
+Changes in version 0.2.8.1-alpha - 2016-02-04
+ Tor 0.2.8.1-alpha is the first alpha release in its series. It
+ includes numerous small features and bugfixes against previous Tor
+ versions, and numerous small infrastructure improvements. The most
+ notable features are a set of improvements to the directory subsystem.
+
+ o Major features (security, Linux):
+ - When Tor starts as root on Linux and is told to switch user ID, it
+ can now retain the capability to bind to low ports. By default,
+ Tor will do this only when it's switching user ID and some low
+ ports have been configured. You can change this behavior with the
+ new option KeepBindCapabilities. Closes ticket 8195.
+
+ o Major features (directory system):
+ - When bootstrapping multiple consensus downloads at a time, use the
+ first one that starts downloading, and close the rest. This
+ reduces failures when authorities or fallback directories are slow
+ or down. Together with the code for feature 15775, this feature
+ should reduces failures due to fallback churn. Implements ticket
+ 4483. Patch by "teor". Implements IPv4 portions of proposal 210 by
+ "mikeperry" and "teor".
+ - Include a trial list of default fallback directories, based on an
+ opt-in survey of suitable relays. Doing this should make clients
+ bootstrap more quickly and reliably, and reduce the load on the
+ directory authorities. Closes ticket 15775. Patch by "teor".
+ Candidates identified using an OnionOO script by "weasel", "teor",
+ "gsathya", and "karsten".
+ - Previously only relays that explicitly opened a directory port
+ (DirPort) accepted directory requests from clients. Now all
+ relays, with and without a DirPort, accept and serve tunneled
+ directory requests that they receive through their ORPort. You can
+ disable this behavior using the new DirCache option. Closes
+ ticket 12538.
+
+ o Major key updates:
+ - Update the V3 identity key for the dannenberg directory authority:
+ it was changed on 18 November 2015. Closes task 17906. Patch
+ by "teor".
+
+ o Minor features (security, clock):
+ - Warn when the system clock appears to move back in time (when the
+ state file was last written in the future). Tor doesn't know that
+ consensuses have expired if the clock is in the past. Patch by
+ "teor". Implements ticket 17188.
+
+ o Minor features (security, exit policies):
+ - ExitPolicyRejectPrivate now rejects more private addresses by
+ default. Specifically, it now rejects the relay's outbound bind
+ addresses (if configured), and the relay's configured port
+ addresses (such as ORPort and DirPort). Fixes bug 17027; bugfix on
+ 0.2.0.11-alpha. Patch by "teor".
+
+ o Minor features (security, memory erasure):
+ - Set the unused entries in a smartlist to NULL. This helped catch
+ a (harmless) bug, and shouldn't affect performance too much.
+ Implements ticket 17026.
+ - Use SecureMemoryWipe() function to securely clean memory on
+ Windows. Previously we'd use OpenSSL's OPENSSL_cleanse() function.
+ Implements feature 17986.
+ - Use explicit_bzero or memset_s when present. Previously, we'd use
+ OpenSSL's OPENSSL_cleanse() function. Closes ticket 7419; patches
+ from <logan@hackers.mu> and <selven@hackers.mu>.
+ - Make memwipe() do nothing when passed a NULL pointer or buffer of
+ zero size. Check size argument to memwipe() for underflow. Fixes
+ bug 18089; bugfix on 0.2.3.25 and 0.2.4.6-alpha. Reported by "gk",
+ patch by "teor".
+
+ o Minor features (security, RNG):
+ - Adjust Tor's use of OpenSSL's RNG APIs so that they absolutely,
+ positively are not allowed to fail. Previously we depended on
+ internal details of OpenSSL's behavior. Closes ticket 17686.
+ - Never use the system entropy output directly for anything besides
+ seeding the PRNG. When we want to generate important keys, instead
+ of using system entropy directly, we now hash it with the PRNG
+ stream. This may help resist certain attacks based on broken OS
+ entropy implementations. Closes part of ticket 17694.
+ - Use modern system calls (like getentropy() or getrandom()) to
+ generate strong entropy on platforms that have them. Closes
+ ticket 13696.
+
+ o Minor features (accounting):
+ - Added two modes to the AccountingRule option: One for limiting
+ only the number of bytes sent ("AccountingRule out"), and one for
+ limiting only the number of bytes received ("AccountingRule in").
+ Closes ticket 15989; patch from "unixninja92".
+
+ o Minor features (build):
+ - Since our build process now uses "make distcheck", we no longer
+ force "make dist" to depend on "make check". Closes ticket 17893;
+ patch from "cypherpunks."
+ - Tor now builds successfully with the recent OpenSSL 1.1
+ development branch, and with the latest LibreSSL. Closes tickets
+ 17549, 17921, and 17984.
+
+ o Minor features (controller):
+ - Adds the FallbackDir entries to 'GETINFO config/defaults'. Closes
+ tickets 16774 and 17817. Patch by George Tankersley.
+ - New 'GETINFO hs/service/desc/id/' command to retrieve a hidden
+ service descriptor from a service's local hidden service
+ descriptor cache. Closes ticket 14846.
+ - Add 'GETINFO exit-policy/reject-private/[default,relay]', so
+ controllers can examine the the reject rules added by
+ ExitPolicyRejectPrivate. This makes it easier for stem to display
+ exit policies.
+
+ o Minor features (crypto):
+ - Add SHA512 support to crypto.c. Closes ticket 17663; patch from
+ George Tankersley.
+ - Add SHA3 and SHAKE support to crypto.c. Closes ticket 17783.
+ - When allocating a digest state object, allocate no more space than
+ we actually need. Previously, we would allocate as much space as
+ the state for the largest algorithm would need. This change saves
+ up to 672 bytes per circuit. Closes ticket 17796.
+ - Improve performance when hashing non-multiple of 8 sized buffers,
+ based on Andrew Moon's public domain SipHash-2-4 implementation.
+ Fixes bug 17544; bugfix on 0.2.5.3-alpha.
+
+ o Minor features (directory downloads):
+ - Wait for busy authorities and fallback directories to become non-
+ busy when bootstrapping. (A similar change was made in 6c443e987d
+ for directory caches chosen from the consensus.) Closes ticket
+ 17864; patch by "teor".
+ - Add UseDefaultFallbackDirs, which enables any hard-coded fallback
+ directory mirrors. The default is 1; set it to 0 to disable
+ fallbacks. Implements ticket 17576. Patch by "teor".
+
+ o Minor features (geoip):
+ - Update geoip and geoip6 to the January 5 2016 Maxmind GeoLite2
+ Country database.
+
+ o Minor features (IPv6):
+ - Add an argument 'ipv6=address:orport' to the DirAuthority and
+ FallbackDir torrc options, to specify an IPv6 address for an
+ authority or fallback directory. Add hard-coded ipv6 addresses for
+ directory authorities that have them. Closes ticket 17327; patch
+ from Nick Mathewson and "teor".
+ - Add address policy assume_action support for IPv6 addresses.
+ - Limit IPv6 mask bits to 128.
+ - Warn when comparing against an AF_UNSPEC address in a policy, it's
+ almost always a bug. Closes ticket 17863; patch by "teor".
+ - Allow users to configure directory authorities and fallback
+ directory servers with IPv6 addresses and ORPorts. Resolves
+ ticket 6027.
+ - routerset_parse now accepts IPv6 literal addresses. Fixes bug
+ 17060; bugfix on 0.2.1.3-alpha. Patch by "teor".
+ - Make tor_ersatz_socketpair work on IPv6-only systems. Fixes bug
+ 17638; bugfix on 0.0.2pre8. Patch by "teor".
+
+ o Minor features (logging):
+ - When logging to syslog, allow a tag to be added to the syslog
+ identity (the string prepended to every log message). The tag can
+ be configured with SyslogIdentityTag and defaults to none. Setting
+ it to "foo" will cause logs to be tagged as "Tor-foo". Closes
+ ticket 17194.
+
+ o Minor features (portability):
+ - Use timingsafe_memcmp() where available. Closes ticket 17944;
+ patch from <logan@hackers.mu>.
+
+ o Minor features (relay, address discovery):
+ - Add a family argument to get_interface_addresses_raw() and
+ subfunctions to make network interface address interogation more
+ efficient. Now Tor can specifically ask for IPv4, IPv6 or both
+ types of interfaces from the operating system. Resolves
+ ticket 17950.
+ - When get_interface_address6_list(.,AF_UNSPEC,.) is called and
+ fails to enumerate interface addresses using the platform-specific
+ API, have it rely on the UDP socket fallback technique to try and
+ find out what IP addresses (both IPv4 and IPv6) our machine has.
+ Resolves ticket 17951.
+
+ o Minor features (replay cache):
+ - The replay cache now uses SHA256 instead of SHA1. Implements
+ feature 8961. Patch by "teor", issue reported by "rransom".
+
+ o Minor features (unix file permissions):
+ - Defer creation of Unix sockets until after setuid. This avoids
+ needing CAP_CHOWN and CAP_FOWNER when using systemd's
+ CapabilityBoundingSet, or chown and fowner when using SELinux.
+ Implements part of ticket 17562. Patch from Jamie Nguyen.
+ - If any directory created by Tor is marked as group readable, the
+ filesystem group is allowed to be either the default GID or the
+ root user. Allowing root to read the DataDirectory prevents the
+ need for CAP_READ_SEARCH when using systemd's
+ CapabilityBoundingSet, or dac_read_search when using SELinux.
+ Implements part of ticket 17562. Patch from Jamie Nguyen.
+ - Introduce a new DataDirectoryGroupReadable option. If it is set to
+ 1, the DataDirectory will be made readable by the default GID.
+ Implements part of ticket 17562. Patch from Jamie Nguyen.
+
+ o Minor bugfixes (accounting):
+ - The max bandwidth when using 'AccountRule sum' is now correctly
+ logged. Fixes bug 18024; bugfix on 0.2.6.1-alpha. Patch
+ from "unixninja92".
+
+ o Minor bugfixes (code correctness):
+ - When closing an entry connection, generate a warning if we should
+ have sent an end cell for it but we haven't. Fixes bug 17876;
+ bugfix on 0.2.3.2-alpha.
+ - Assert that allocated memory held by the reputation code is freed
+ according to its internal counters. Fixes bug 17753; bugfix
+ on tor-0.1.1.1-alpha.
+ - Assert when the TLS contexts fail to initialize. Fixes bug 17683;
+ bugfix on 0.0.6.
+
+ o Minor bugfixes (compilation):
+ - Mark all object files that include micro-revision.i as depending
+ on it, so as to make parallel builds more reliable. Fixes bug
+ 17826; bugfix on 0.2.5.1-alpha.
+ - Don't try to use the pthread_condattr_setclock() function unless
+ it actually exists. Fixes compilation on NetBSD-6.x. Fixes bug
+ 17819; bugfix on 0.2.6.3-alpha.
+ - Fix backtrace compilation on FreeBSD. Fixes bug 17827; bugfix
+ on tor-0.2.5.2-alpha.
+ - Fix compilation of sandbox.c with musl-libc. Fixes bug 17347;
+ bugfix on 0.2.5.1-alpha. Patch from 'jamestk'.
+ - Fix search for libevent libraries on OpenBSD (and other systems
+ that install libevent 1 and libevent 2 in parallel). Fixes bug
+ 16651; bugfix on 0.1.0.7-rc. Patch from "rubiate".
+ - Isolate environment variables meant for tests from the rest of the
+ build system. Fixes bug 17818; bugfix on tor-0.2.7.3-rc.
+ - Replace usage of 'INLINE' with 'inline'. Fixes bug 17804; bugfix
+ on tor-0.0.2pre8.
+ - Remove config.log only from make distclean, not from make clean.
+ Fixes bug 17924; bugfix on 0.2.4.1-alpha.
+
+ o Minor bugfixes (crypto):
+ - Check the return value of HMAC() and assert on failure. Fixes bug
+ 17658; bugfix on 0.2.3.6-alpha. Patch by "teor".
+
+ o Minor bugfixes (fallback directories):
+ - Mark fallbacks as "too busy" when they return a 503 response,
+ rather than just marking authorities. Fixes bug 17572; bugfix on
+ 0.2.4.7-alpha. Patch by "teor".
+
+ o Minor bugfixes (IPv6):
+ - Update the limits in max_dl_per_request for IPv6 address length.
+ Fixes bug 17573; bugfix on 0.2.1.5-alpha.
+
+ o Minor bugfixes (linux seccomp2 sandbox):
+ - Fix a crash when using offline master ed25519 keys with the Linux
+ seccomp2 sandbox enabled. Fixes bug 17675; bugfix on 0.2.7.3-alpha.
+
+ o Minor bugfixes (logging):
+ - In log messages that include a function name, use __FUNCTION__
+ instead of __PRETTY_FUNCTION__. In GCC, these are synonymous, but
+ with clang __PRETTY_FUNCTION__ has extra information we don't
+ need. Fixes bug 16563; bugfix on 0.0.2pre8. Fix by Tom van
+ der Woerdt.
+ - Remove needless quotes from a log message about unparseable
+ addresses. Fixes bug 17843; bugfix on 0.2.3.3-alpha.
+
+ o Minor bugfixes (portability):
+ - Remove an #endif from configure.ac so that we correctly detect the
+ presence of in6_addr.s6_addr32. Fixes bug 17923; bugfix
+ on 0.2.0.13-alpha.
+
+ o Minor bugfixes (relays):
+ - Check that both the ORPort and DirPort (if present) are reachable
+ before publishing a relay descriptor. Otherwise, relays publish a
+ descriptor with DirPort 0 when the DirPort reachability test takes
+ longer than the ORPort reachability test. Fixes bug 18050; bugfix
+ on 0.1.0.1-rc. Reported by "starlight", patch by "teor".
+
+ o Minor bugfixes (relays, hidden services):
+ - Refuse connection requests to private OR addresses unless
+ ExtendAllowPrivateAddresses is set. Previously, tor would connect,
+ then refuse to send any cells to a private address. Fixes bugs
+ 17674 and 8976; bugfix on 0.2.3.21-rc. Patch by "teor".
+
+ o Minor bugfixes (safe logging):
+ - When logging a malformed hostname received through socks4, scrub
+ it if SafeLogging says we should. Fixes bug 17419; bugfix
+ on 0.1.1.16-rc.
+
+ o Minor bugfixes (statistics code):
+ - Consistently check for overflow in round_*_to_next_multiple_of
+ functions, and add unit tests with additional and maximal values.
+ Fixes part of bug 13192; bugfix on 0.2.2.1-alpha.
+ - Handle edge cases in the laplace functions: avoid division by
+ zero, avoid taking the log of zero, and silence clang type
+ conversion warnings using round and trunc. Add unit tests for edge
+ cases with maximal values. Fixes part of bug 13192; bugfix
+ on 0.2.6.2-alpha.
+
+ o Minor bugfixes (testing):
+ - The test for log_heartbeat was incorrectly failing in timezones
+ with non-integer offsets. Instead of comparing the end of the time
+ string against a constant, compare it to the output of
+ format_local_iso_time when given the correct input. Fixes bug
+ 18039; bugfix on 0.2.5.4-alpha.
+ - Make unit tests pass on IPv6-only systems, and systems without
+ localhost addresses (like some FreeBSD jails). Fixes bug 17632;
+ bugfix on 0.2.7.3-rc. Patch by "teor".
+ - Fix a memory leak in the ntor test. Fixes bug 17778; bugfix
+ on 0.2.4.8-alpha.
+ - Check the full results of SHA256 and SHA512 digests in the unit
+ tests. Bugfix on 0.2.2.4-alpha. Patch by "teor".
+
+ o Code simplification and refactoring:
+ - Move logging of redundant policy entries in
+ policies_parse_exit_policy_internal into its own function. Closes
+ ticket 17608; patch from "juce".
+ - Extract the more complicated parts of circuit_mark_for_close()
+ into a new function that we run periodically before circuits are
+ freed. This change removes more than half of the functions
+ currently in the "blob". Closes ticket 17218.
+ - Clean up a little duplicated code in
+ crypto_expand_key_material_TAP(). Closes ticket 17587; patch
+ from "pfrankw".
+ - Decouple the list of streams waiting to be attached to circuits
+ from the overall connection list. This change makes it possible to
+ attach streams quickly while simplifying Tor's callgraph and
+ avoiding O(N) scans of the entire connection list. Closes
+ ticket 17590.
+ - When a direct directory request fails immediately on launch,
+ instead of relaunching that request from inside the code that
+ launches it, instead mark the connection for teardown. This change
+ simplifies Tor's callback and prevents the directory-request
+ launching code from invoking itself recursively. Closes
+ ticket 17589
+ - Remove code for configuring OpenSSL dynamic locks; OpenSSL doesn't
+ use them. Closes ticket 17926.
+
+ o Documentation:
+ - Add a description of the correct use of the '--keygen' command-
+ line option. Closes ticket 17583; based on text by 's7r'.
+ - Document the minimum HeartbeatPeriod value. Closes ticket 15638.
+ - Explain actual minima for BandwidthRate. Closes ticket 16382.
+ - Fix a minor formatting typo in the manpage. Closes ticket 17791.
+ - Mention torspec URL in the manpage and point the reader to it
+ whenever we mention a document that belongs in torspce. Fixes
+ issue 17392.
+
+ o Removed features:
+ - Remove client-side support for connecting to Tor relays running
+ versions of Tor before 0.2.3.6-alpha. These relays didn't support
+ the v3 TLS handshake protocol, and are no longer allowed on the
+ Tor network. Implements the client side of ticket 11150. Based on
+ patches by Tom van der Woerdt.
+
+ o Testing:
+ - Add unit tests to check for common RNG failure modes, such as
+ returning all zeroes, identical values, or incrementing values
+ (OpenSSL's rand_predictable feature). Patch by "teor".
+ - Log more information when the backtrace tests fail. Closes ticket
+ 17892. Patch from "cypherpunks."
+ - Always test both ed25519 backends, so that we can be sure that our
+ batch-open replacement code works. Part of ticket 16794.
+ - Cover dns_resolve_impl() in dns.c with unit tests. Implements a
+ portion of ticket 16831.
+ - More unit tests for compat_libevent.c, procmon.c, tortls.c,
+ util_format.c, directory.c, and options_validate.c. Closes tickets
+ 17075, 17082, 17084, 17003, and 17076 respectively. Patches from
+ Ola Bini.
+ - Unit tests for directory_handle_command_get. Closes ticket 17004.
+ Patch from Reinaldo de Souza Jr.
+
+
Changes in version 0.2.7.6 - 2015-12-10
Tor version 0.2.7.6 fixes a major bug in entry guard selection, as
well as a minor bug in hidden service reliability.
@@ -1041,6 +1400,30 @@ Changes in version 0.2.4.27 - 2015-04-06
Resolves ticket 15515.
+Changes in version 0.2.5.12 - 2015-04-06
+ Tor 0.2.5.12 backports two fixes from 0.2.6.7 for security issues that
+ could be used by an attacker to crash hidden services, or crash clients
+ visiting hidden services. Hidden services should upgrade as soon as
+ possible; clients should upgrade whenever packages become available.
+
+ This release also backports a simple improvement to make hidden
+ services a bit less vulnerable to denial-of-service attacks.
+
+ o Major bugfixes (security, hidden service):
+ - Fix an issue that would allow a malicious client to trigger an
+ assertion failure and halt a hidden service. Fixes bug 15600;
+ bugfix on 0.2.1.6-alpha. Reported by "disgleirio".
+ - Fix a bug that could cause a client to crash with an assertion
+ failure when parsing a malformed hidden service descriptor. Fixes
+ bug 15601; bugfix on 0.2.1.5-alpha. Found by "DonnchaC".
+
+ o Minor features (DoS-resistance, hidden service):
+ - Introduction points no longer allow multiple INTRODUCE1 cells to
+ arrive on the same circuit. This should make it more expensive for
+ attackers to overwhelm hidden services with introductions.
+ Resolves ticket 15515.
+
+
Changes in version 0.2.6.7 - 2015-04-06
Tor 0.2.6.7 fixes two security issues that could be used by an
attacker to crash hidden services, or crash clients visiting hidden
diff --git a/LICENSE b/LICENSE
index 68c9b23374..bc0ac4195b 100644
--- a/LICENSE
+++ b/LICENSE
@@ -13,7 +13,7 @@ Tor is distributed under this license:
Copyright (c) 2001-2004, Roger Dingledine
Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson
-Copyright (c) 2007-2015, The Tor Project, Inc.
+Copyright (c) 2007-2016, The Tor Project, Inc.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
diff --git a/Makefile.am b/Makefile.am
index fc9f7b27ba..92ba2b868d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,10 +3,6 @@
# Copyright (c) 2007-2015, The Tor Project, Inc.
# See LICENSE for licensing information
-# "foreign" means we don't follow GNU package layout standards
-# 1.9 means we require automake vesion 1.9
-AUTOMAKE_OPTIONS = foreign 1.9 subdir-objects
-
ACLOCAL_AMFLAGS = -I m4
noinst_LIBRARIES=
@@ -42,7 +38,11 @@ EXTRA_DIST+= \
if COVERAGE_ENABLED
TEST_CFLAGS=-fno-inline -fprofile-arcs -ftest-coverage
+if DISABLE_ASSERTS_IN_UNIT_TESTS
+TEST_CPPFLAGS=-DTOR_UNIT_TESTS -DTOR_COVERAGE -DDISABLE_ASSERTS_IN_UNIT_TESTS
+else
TEST_CPPFLAGS=-DTOR_UNIT_TESTS -DTOR_COVERAGE
+endif
TEST_NETWORK_FLAGS=--coverage --hs-multi-client 1
else
TEST_CFLAGS=
@@ -134,10 +134,10 @@ need-stem-path:
exit 1; \
fi
-test-stem: need-stem-path $(TESTING_TOR_BINARY)
+test-stem: need-stem-path all
@$(PYTHON) "$$STEM_SOURCE_DIR"/run_tests.py --tor $(TESTING_TOR_BINARY) --all --log notice --target RUN_ALL;
-test-stem-full: need-stem-path $(TESTING_TOR_BINARY)
+test-stem-full: need-stem-path all
@$(PYTHON) "$$STEM_SOURCE_DIR"/run_tests.py --tor $(TESTING_TOR_BINARY) --all --log notice --target RUN_ALL,ONLINE -v;
test-full: need-stem-path need-chutney-path check test-network test-stem
diff --git a/acinclude.m4 b/acinclude.m4
index 72593881ed..7b1aab2f99 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -109,7 +109,7 @@ if test -f /etc/debian_version && test x"$tor_$1_$2_debian" != x; then
fi
fi
if test -f /etc/fedora-release && test x"$tor_$1_$2_redhat" != x; then
- AC_WARN([On Fedora Core, you can install$h $1 using "yum install $tor_$1_$2_redhat"])
+ AC_WARN([On Fedora, you can install$h $1 using "dnf install $tor_$1_$2_redhat"])
if test x"$tor_$1_$2_redhat" != x"$tor_$1_devpkg_redhat"; then
AC_WARN([ You will probably need to install $tor_$1_devpkg_redhat too.])
fi
diff --git a/changes/11150 b/changes/11150
deleted file mode 100644
index b4d40ed07c..0000000000
--- a/changes/11150
+++ /dev/null
@@ -1,6 +0,0 @@
- o Removed features:
- - Remove client-side support for connecting to Tor servers running
- versions of Tor before 0.2.3.6-alpha. These servers didn't
- support the v3 TLS handshake protocol, and are no longer allowed
- on the Tor network. Implements the client side of ticket
- 11150. Based on patches by Tom van der Woerdt.
diff --git a/changes/17004 b/changes/17004
deleted file mode 100644
index 1dc9a237d4..0000000000
--- a/changes/17004
+++ /dev/null
@@ -1,3 +0,0 @@
- o Testing:
- - Unit tests for directory_handle_command_get. Closes ticket 17004.
- Patch from Reinaldo de Souza Jr.
diff --git a/changes/17075 b/changes/17075
deleted file mode 100644
index a91ac673e6..0000000000
--- a/changes/17075
+++ /dev/null
@@ -1,3 +0,0 @@
- o Testing:
- - More unit tests for compat_libevent.c. Closes ticket 17075.
- Patch from Ola Bini.
diff --git a/changes/17078 b/changes/17078
deleted file mode 100644
index af02877898..0000000000
--- a/changes/17078
+++ /dev/null
@@ -1,3 +0,0 @@
- o Testing:
- - More unit tests for procmon.c. Closes ticket 17078.
- Patch from Ola Bini.
diff --git a/changes/17082 b/changes/17082
deleted file mode 100644
index 30ed01473e..0000000000
--- a/changes/17082
+++ /dev/null
@@ -1,3 +0,0 @@
- o Testing:
- - More unit tests for tortls.c. Closes ticket 17082.
- Patch from Ola Bini.
diff --git a/changes/17084 b/changes/17084
deleted file mode 100644
index 361e26f264..0000000000
--- a/changes/17084
+++ /dev/null
@@ -1,3 +0,0 @@
- o Testing:
- - More unit tests for util_format.c. Closes ticket 17084.
- Patch from Ola Bini.
diff --git a/changes/17573 b/changes/17573
deleted file mode 100644
index fe1fd1c027..0000000000
--- a/changes/17573
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor bigfixes (IPv6):
- - Update the limits in max_dl_per_request for IPv6 address
- length. Closes ticket 17573.
diff --git a/changes/17826 b/changes/17826
deleted file mode 100644
index 7d0a17afee..0000000000
--- a/changes/17826
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor bugfixes (build):
- - Mark all object files that include micro-revision.i as depending on
- it, so as to make our build more reliable with parallel builds.
- Fixes bug 17826; bugfix on 0.2.5.1-alpha.
-
diff --git a/changes/17926 b/changes/17926
deleted file mode 100644
index 09bdbbeae7..0000000000
--- a/changes/17926
+++ /dev/null
@@ -1,3 +0,0 @@
- o Removed code:
- - Remove code for OpenSSL dynamic locks; OpenSSL doesn't use them.
- Closes ticket 17926.
diff --git a/changes/17944 b/changes/17944
deleted file mode 100644
index 0d8ed0a362..0000000000
--- a/changes/17944
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor features (portability):
- - Use timingsafe_memcmp() where available. Closes ticket 17944;
- patch from <logan@hackers.mu>.
diff --git a/changes/7419 b/changes/7419
deleted file mode 100644
index b792e8f6a0..0000000000
--- a/changes/7419
+++ /dev/null
@@ -1,7 +0,0 @@
- o Minor enhancement (security):
- - Use explicit_bzero when present
- from <logan@hackers.mu>.
- - Use memset_s when present
- from <selven@hackers.mu>
-
- 625538405474972d627b26d7a250ea36 (:
diff --git a/changes/assert_event_base b/changes/assert_event_base
new file mode 100644
index 0000000000..b887795518
--- /dev/null
+++ b/changes/assert_event_base
@@ -0,0 +1,5 @@
+ o Minor features (robustness):
+ - Exit immediately with an error message if the code attempts to
+ use libevent without having initialized it. This should resolve
+ some frequently-made mistakes in our unit tests. Closes ticket
+ 18241.
diff --git a/changes/bug14821 b/changes/bug14821
new file mode 100644
index 0000000000..0920d1fffc
--- /dev/null
+++ b/changes/bug14821
@@ -0,0 +1,4 @@
+ o Major bugfixes (compilation):
+ - Correctly repair hardened builds under the clang compiler. Previously,
+ our use of _FORTIFY_SOURCE would conflict with clang's address
+ sanitizer. Closes ticket 14821.
diff --git a/changes/bug15638 b/changes/bug15638
deleted file mode 100644
index cf5d46983f..0000000000
--- a/changes/bug15638
+++ /dev/null
@@ -1,2 +0,0 @@
- o Documentation:
- - Document the minimum HeartbeatPeriod value. Closes ticket 15638.
diff --git a/changes/bug16023 b/changes/bug16023
new file mode 100644
index 0000000000..7451e271a0
--- /dev/null
+++ b/changes/bug16023
@@ -0,0 +1,4 @@
+ o Minor feature (hidden service, control port)
+ - Add the onion address to the HS_DESC event for the UPLOADED action
+ both on success or failure. It was previously hardcoded with UNKNOWN.
+ Fixes #16023;
diff --git a/changes/bug16382 b/changes/bug16382
deleted file mode 100644
index 8faee98ad8..0000000000
--- a/changes/bug16382
+++ /dev/null
@@ -1,3 +0,0 @@
- o Documentation:
- - Explain actual minima for BandwidthRate. Closes ticket 16382.
-
diff --git a/changes/bug16563 b/changes/bug16563
deleted file mode 100644
index 19e59b3821..0000000000
--- a/changes/bug16563
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor bugfixes (logging):
- - In log messages that include a function name, use __FUNCTION__ instead
- of __PRETTY_FUNCTION__. In GCC, these are synonymous, but with clang
- __PRETTY_FUNCTION__ has extra information we don't need.
- Fixes bug 16563; bugfix on 0.0.2pre8. Fix by Tom van der Woerdt.
- \ No newline at end of file
diff --git a/changes/bug16651 b/changes/bug16651
deleted file mode 100644
index 096daeaf70..0000000000
--- a/changes/bug16651
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor bugfixes (compilation):
-
- - Fix search for libevent libraries on OpenBSD (and similar systems
- which install libevent 1 and libevent 2 in parallel). Resolves
- ticket 16651. Patch from "rubiate".
diff --git a/changes/bug16794_ed b/changes/bug16794_ed
deleted file mode 100644
index a43c401ed4..0000000000
--- a/changes/bug16794_ed
+++ /dev/null
@@ -1,3 +0,0 @@
- o Testing:
- - Always test both ed25519 backends, so that we can be sure that
- our batch-open replacement code works. Part of ticket 16794.
diff --git a/changes/bug16825 b/changes/bug16825
new file mode 100644
index 0000000000..75c5627efd
--- /dev/null
+++ b/changes/bug16825
@@ -0,0 +1,7 @@
+ o Minor bugfixes:
+ - Count receipt of new microdescriptors as progress towards
+ bootstrapping. Now, when a user who has set EntryNodes finishes
+ bootstrapping, Tor automatically repopulates the guard set based
+ on this new directory information. Fixes bug 16825; bugfix on
+ 0.2.3.1-alpha.
+
diff --git a/changes/bug17003 b/changes/bug17003
deleted file mode 100644
index 8125f0e402..0000000000
--- a/changes/bug17003
+++ /dev/null
@@ -1,3 +0,0 @@
- o Testing:
- - New tests for directory.c functions. Closes ticket 17003. Patch
- from Ola Bini.
diff --git a/changes/bug17026 b/changes/bug17026
deleted file mode 100644
index 8b1ce3c61b..0000000000
--- a/changes/bug17026
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor features:
- - Set unused entires in a smartlist to NULL. This helped catch a
- (harmless) bug, and shouldn't affect performance too much.
- Implements ticket 17026.
-
diff --git a/changes/bug17027-reject-private-bind-port b/changes/bug17027-reject-private-bind-port
deleted file mode 100644
index abc1431c9a..0000000000
--- a/changes/bug17027-reject-private-bind-port
+++ /dev/null
@@ -1,7 +0,0 @@
- o Minor bug fixes (security, exit policies):
- - ExitPolicyRejectPrivate rejects more private addresses by default:
- * the relay's outbound bind addresses (if configured), and
- * the relay's configured port addresses (such as ORPort and DirPort).
- Resolves ticket 17027. Patch by "teor".
- Patch on 42b8fb5a1523 (11 Nov 2007), released in 0.2.0.11-alpha,
- and on 0.2.7.3-rc.
diff --git a/changes/bug17194 b/changes/bug17194
deleted file mode 100644
index 26549b307f..0000000000
--- a/changes/bug17194
+++ /dev/null
@@ -1,7 +0,0 @@
- o Minor feature:
- - When logging to syslog, allow a tag to be added to the syslog
- identity ("Tor"), i.e. the string prepended to every log message.
- The tag can be configured by setting SyslogIdentityTag and defaults
- to none. Setting it to "foo" will cause logs to be tagged as
- "Tor-foo".
-
diff --git a/changes/bug17347 b/changes/bug17347
deleted file mode 100644
index 487b1320e2..0000000000
--- a/changes/bug17347
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor bugfixes (compilation):
- - Fix compilation of sandbox.c with musl-libc.
- Fixes bug 17347; bugfix on 0.2.5.1-alpha.
- Patch from 'jamestk'.
diff --git a/changes/bug17419 b/changes/bug17419
deleted file mode 100644
index 8ad8edd37b..0000000000
--- a/changes/bug17419
+++ /dev/null
@@ -1,4 +0,0 @@
-
- o Minor bugfixes:
- - When logging a malformed hostname received through socks4, scrub it
- if SafeLogging says we should. Fixes bug 17419; bugfix on 0.1.1.16-rc.
diff --git a/changes/bug17544 b/changes/bug17544
deleted file mode 100644
index 4316d0709c..0000000000
--- a/changes/bug17544
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor bugfix (SipHash-2-4 performance):
- - Improve performance when hashing non-multiple of 8 sized buffers,
- based on Andrew Moon's Public Domain SipHash-2-4 implementation.
- Fixes bug 17544; bugfix on 0.2.5.3-alpha.
diff --git a/changes/bug17549 b/changes/bug17549
deleted file mode 100644
index 3650608141..0000000000
--- a/changes/bug17549
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor bugfixes (compilation):
- - Repair compilation with the most recent (unreleased, alpha)
- vesions of OpenSSL 1.1. Fixes bug 17549.
diff --git a/changes/bug17562-DataDirectoryGroupReadable b/changes/bug17562-DataDirectoryGroupReadable
deleted file mode 100644
index 524e5ef28a..0000000000
--- a/changes/bug17562-DataDirectoryGroupReadable
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor bug fixes:
- - Introduce DataDirectoryGroupReadable boolean. If set to 1, the
- DataDirectory will be made readable by the default GID.
diff --git a/changes/bug17562-allow-root-group-read b/changes/bug17562-allow-root-group-read
deleted file mode 100644
index 7a0903c662..0000000000
--- a/changes/bug17562-allow-root-group-read
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor bug fixes:
- - If any directory created by Tor is marked as group readable, the
- filesystem group is allowed to be either the default GID or the root
- user. Allowing root to read the DataDirectory prevents the need for
- CAP_READ_SEARCH when using systemd's CapabilityBoundingSet, or
- dac_read_search when using SELinux.
diff --git a/changes/bug17562-defer-unix-socket-creation b/changes/bug17562-defer-unix-socket-creation
deleted file mode 100644
index f1896c044a..0000000000
--- a/changes/bug17562-defer-unix-socket-creation
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor bug fixes:
- - Defer creation of Unix sockets until after setuid. This avoids needing
- CAP_CHOWN and CAP_FOWNER when using systemd's CapabilityBoundingSet, or
- chown and fowner when using SELinux.
diff --git a/changes/bug17572-fallback-by-digest b/changes/bug17572-fallback-by-digest
deleted file mode 100644
index 3fba123360..0000000000
--- a/changes/bug17572-fallback-by-digest
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor bugfix (fallback directories):
- - Mark fallbacks as "too busy" when they return a 503 response,
- rather than just marking authorities.
- Fixes bug 17572; bugfix on 5c51b3f1f0d4 released in 0.2.4.7-alpha.
- Patch by "teor".
diff --git a/changes/bug17583 b/changes/bug17583
deleted file mode 100644
index d77d46759a..0000000000
--- a/changes/bug17583
+++ /dev/null
@@ -1,4 +0,0 @@
- o Documentation:
- - Add a description of the correct use of the '--keygen' command-line
- option. Closes ticket 17583; based on text by 's7r'.
-
diff --git a/changes/bug17589 b/changes/bug17589
deleted file mode 100644
index 91103276df..0000000000
--- a/changes/bug17589
+++ /dev/null
@@ -1,7 +0,0 @@
- o Code simplificiation and refactoring:
- - When a direct directory request fails immediately on launch,
- instead of relaunching that request from inside the code that
- launches it, instead mark the connection for teardown. This
- change simplifies Tor's callback and prevents the directory-
- request launching code from invoking itself recursively.
- Closes ticket 17589. \ No newline at end of file
diff --git a/changes/bug17632-no-ipv4-no-localhost b/changes/bug17632-no-ipv4-no-localhost
deleted file mode 100644
index 04622079d3..0000000000
--- a/changes/bug17632-no-ipv4-no-localhost
+++ /dev/null
@@ -1,7 +0,0 @@
- o Minor bugfix (unit tests):
- - Make unit tests pass on IPv6-only systems, and systems without
- localhost addresses (like some FreeBSD jails).
- Fixes bug #17632; bugfix on unit tests in 0.2.7.3-rc.
- c464a367728d was a partial fix for this issue in #17255;
- it was released in unit tests in 0.2.7.4-rc.
- Patch by "teor".
diff --git a/changes/bug17638-ipv6-ersatz-socketpair b/changes/bug17638-ipv6-ersatz-socketpair
deleted file mode 100644
index 6193065ff3..0000000000
--- a/changes/bug17638-ipv6-ersatz-socketpair
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor bugfix (IPv6 compatibility, unit tests):
- - Make tor_ersatz_socketpair work on IPv6-only systems.
- Fixes bug #17638; bugfix on a very early tor version,
- earlier than 22dba27d8dd5 (23 Nov 2004) / svn:r2943.
- Patch by "teor".
diff --git a/changes/bug17675 b/changes/bug17675
deleted file mode 100644
index 8326a0b9e8..0000000000
--- a/changes/bug17675
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor bugfixes (linux seccomp2 sandbox):
- - Fix a crash when using offline master ed25519 keys with the
- Linux seccomp2 sandbox enabled. Fixes bug 17675; bugfix on
- 0.2.7.3-alpha.
diff --git a/changes/bug17683 b/changes/bug17683
deleted file mode 100644
index e9d47513ab..0000000000
--- a/changes/bug17683
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor bugfixes (TLS context):
- - Assert when the TLS contexts fail to initialize. Fixes bug 17683;
- bugfix on 0.0.6.
diff --git a/changes/bug17686 b/changes/bug17686
deleted file mode 100644
index 8fa16c794b..0000000000
--- a/changes/bug17686
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor features:
- - Adjust Tor's use of OpenSSL's RNG APIs so that they absolutely,
- positively are not allowed to fail. Previously we depended on
- internals about OpenSSL behavior. Closes ticket 17686.
diff --git a/changes/bug17694_strongest b/changes/bug17694_strongest
deleted file mode 100644
index 0a8954a25e..0000000000
--- a/changes/bug17694_strongest
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor features (security):
- - Never use the system entropy output directly for anything besides
- seeding the PRNG. When we want to generate important keys, instead
- of using system entropy directly, hash it with the PRNG stream.
- This may help resist certain attacks based on broken OS entropy
- implementations. Closes part of ticket 17694. \ No newline at end of file
diff --git a/changes/bug17724 b/changes/bug17724
deleted file mode 100644
index 7ace99eece..0000000000
--- a/changes/bug17724
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor bug fixes (unit tests, hidden services):
- - Avoid relying on malloc internals in test_rend_cache_purge.
- Closes ticket 17724. Bug fix on ade5005853c1 and 5e9f2384cf0f,
- not in any released version of Tor. Patch by "teor".
diff --git a/changes/bug17732 b/changes/bug17732
new file mode 100644
index 0000000000..010645d3c9
--- /dev/null
+++ b/changes/bug17732
@@ -0,0 +1,10 @@
+ o Minor features (compilation):
+ - Note our minimum required autoconf/automake versions in the
+ appropriate locations. Closes ticket 17732.
+
+ o Dependency updates:
+ - Tor now uses Autoconf version 2.63 or later, and Automake 1.11 or later
+ (released in 2008 and 2009 respectively). If you are building Tor from
+ the git repository instead of from the source distribution, and your
+ tools are older than this, you will need to upgrade.
+ Closes ticket 17732.
diff --git a/changes/bug17753 b/changes/bug17753
deleted file mode 100644
index 7d227d856c..0000000000
--- a/changes/bug17753
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor bugfixes (code correctness)
- - Assert that allocated memory held by the reputation code is freed
- according to its internal counters. Fixes bug 17753; bugfix on
- tor-0.1.1.1-alpha.
diff --git a/changes/bug17763 b/changes/bug17763
deleted file mode 100644
index d565d13a7d..0000000000
--- a/changes/bug17763
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor bug fixes (exit policies):
- - Consistently ignore multicast addresses when automatically
- generating reject private exit policies.
- Closes ticket 17763. Bug fix on 10a6390deb3c9,
- not in any released version of Tor. Patch by "teor".
diff --git a/changes/bug17776 b/changes/bug17776
deleted file mode 100644
index a949625baa..0000000000
--- a/changes/bug17776
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor bugfixes (tests):
- - Fix buffer over-reads in the directory tests. Fixes bug 17776; not in any
- released version of Tor.
- - Fix buffer over-reads in the rendcache tests. Fixes bug 17776; not in any
- released version of Tor.
-
diff --git a/changes/bug17778 b/changes/bug17778
deleted file mode 100644
index 9844969a3b..0000000000
--- a/changes/bug17778
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor bugfixes (tests):
- - Fix a memory leak in the ntor test. Fixes bug 17778; bugfix on
- 0.2.4.8-alpha.
diff --git a/changes/bug17791 b/changes/bug17791
deleted file mode 100644
index f191012cd4..0000000000
--- a/changes/bug17791
+++ /dev/null
@@ -1,4 +0,0 @@
- o Documentation:
- - Fix a minor formatting typo in the manpage. Closes ticket
- 17791.
-
diff --git a/changes/bug17804 b/changes/bug17804
deleted file mode 100644
index bd2a3cbdff..0000000000
--- a/changes/bug17804
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor bugfixes (compilation):
- - Replace usage of 'INLINE' with 'inline'. Fixes bug 17804; bugfix
- on tor-0.0.2pre8.
diff --git a/changes/bug17818 b/changes/bug17818
deleted file mode 100644
index 3d9afe329e..0000000000
--- a/changes/bug17818
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor bugfixes (compilation):
- - Isolate environment variables meant for tests from the rest of the
- build system. Fixes bug 17818; bugfix on tor-0.2.7.3-rc.
diff --git a/changes/bug17819 b/changes/bug17819
deleted file mode 100644
index 45c55f74b6..0000000000
--- a/changes/bug17819
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor bugfixes (compilation):
- - Don't try to use the pthrad_condattr_setclock() function unless
- it actually exists. Fixes compilation on NetBSD-6.x. Fixes bug
- 17819; bugfix on 0.2.6.3-alpha.
diff --git a/changes/bug17827 b/changes/bug17827
deleted file mode 100644
index 04cd3b5977..0000000000
--- a/changes/bug17827
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor bugfixes (compilation):
- - Fix backtrace compilation on FreeBSD. Fixes bug 17827; bugfix on
- tor-0.2.5.2-alpha.
diff --git a/changes/bug17843 b/changes/bug17843
deleted file mode 100644
index 6cb16a0b6a..0000000000
--- a/changes/bug17843
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor bugfixes (logging):
- - Remove needless quotes from a log message about unparseable addresses.
- Fixes bug 17843; bugfix on 0.2.3.3-alpha.
diff --git a/changes/bug17852 b/changes/bug17852
new file mode 100644
index 0000000000..b36b55f9d6
--- /dev/null
+++ b/changes/bug17852
@@ -0,0 +1,10 @@
+ o Minor features (code hardening):
+ - Use tor_snprintf() and tor_vsnprintf() even in external and
+ low-level code, to harden against accidental failures to NUL-
+ terminate. Part of ticket 17852. Patch from 'jsturgix'. Found
+ with Flawfinder.
+
+ o Minor bugfixes (private directory):
+ - Prevent a race condition when creating private directories.
+ Fixes part of bug 17852; bugfix on 0.2pre13. Part of ticket
+ 17852. Patch from 'jsturgix'. Found with Flawfinder.
diff --git a/changes/bug17876 b/changes/bug17876
deleted file mode 100644
index 1bd3dd7c1b..0000000000
--- a/changes/bug17876
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor bugfixes:
- - When closing an entry connection, generate a warning if we should
- have sent an end cell for it but we haven't. Fixes bug 17876;
- bugfix on 0.2.3.2-alpha.
-
diff --git a/changes/bug17887 b/changes/bug17887
deleted file mode 100644
index 423c298bd5..0000000000
--- a/changes/bug17887
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor fixes (fallback directories):
- - Allow cached or outdated Onionoo data to be used to choose
- fallback directories, as long as it's less than a day old.
- Modify last modified date checks in preparation for Onionoo change
- #16907. Closes ticket #17887. Patch by "teor". Not in any released
- version of tor.
diff --git a/changes/bug17888 b/changes/bug17888
deleted file mode 100644
index 04e40b1556..0000000000
--- a/changes/bug17888
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor fixes (fallback directories):
- - When selecting exits as fallback directories, don't reduce
- their weights. (Several operators report having exits with
- spare capacity.)
- Closes ticket #17888. Patch by "teor". Not in any released
- version of tor.
diff --git a/changes/bug17892 b/changes/bug17892
deleted file mode 100644
index 73c26e9c94..0000000000
--- a/changes/bug17892
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor features (testing):
- - Log more information when the backtrace tests fail.
- Closes ticket 17892. Patch from "cypherpunks."
-
diff --git a/changes/bug17893 b/changes/bug17893
deleted file mode 100644
index 06808c0017..0000000000
--- a/changes/bug17893
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor features (build):
- - Since our build process now uses 'make distcheck', we no longer force
- "make dist" to depend on "make check". Closes ticket 17893;
- patch from "cypherpunks."
diff --git a/changes/bug17906 b/changes/bug17906
deleted file mode 100644
index fff76d1c59..0000000000
--- a/changes/bug17906
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor features (authorities):
- - Update the V3 identity key for dannenberg, it was changed on
- 18 November 2015.
- Closes task #17906. Patch by "teor".
diff --git a/changes/bug17923 b/changes/bug17923
deleted file mode 100644
index ea39960711..0000000000
--- a/changes/bug17923
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor bugfixes:
- - Remove an #endif from configure.ac so that we correctly detect
- the presence of in6_addr.s6_addr32. Fixes bug 17923; bugfix on
- 0.2.0.13-alpha.
diff --git a/changes/bug17924 b/changes/bug17924
deleted file mode 100644
index aa5cf58730..0000000000
--- a/changes/bug17924
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor bugfixes (makefile):
- - Remove config.log only from make distclean, not from
- make clean. Fixes bug 17924; bugfix on 0.2.4.1-alpha.
-
diff --git a/changes/bug18035 b/changes/bug18035
deleted file mode 100644
index 31889f5723..0000000000
--- a/changes/bug18035
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor fixes (fallback directories):
- - Work around an issue where OnionOO supplies the entire history,
- rather than the requested 120 days. Activate debug logging by
- default. Fix other minor calculation and compatibility issues.
- Closes ticket #18035. Patch by "starlight", merge fixes by
- "teor". Not in any released version of tor.
diff --git a/changes/bug18050 b/changes/bug18050
deleted file mode 100644
index ce24a7738a..0000000000
--- a/changes/bug18050
+++ /dev/null
@@ -1,7 +0,0 @@
- o Minor fixes (relays):
- - Check that both the ORPort and DirPort (if present) are reachable
- before publishing a relay descriptor. Otherwise, relays publish a
- descriptor with DirPort 0 when the DirPort reachability test takes
- longer than the ORPort reachability test.
- Closes bug #18050. Reported by "starlight", patch by "teor".
- Bugfix on 0.1.0.1-rc, commit a1f1fa6ab on 27 Feb 2005.
diff --git a/changes/bug18051 b/changes/bug18051
new file mode 100644
index 0000000000..1b11867d19
--- /dev/null
+++ b/changes/bug18051
@@ -0,0 +1,4 @@
+ o Minor bugfixes:
+ - When generating a URL for a directory server on an IPv6 address,
+ wrap the IPv6 address in square brackets. Fixes bug 18051;
+ bugfix on ?. Patch from Malek.
diff --git a/changes/bug18089 b/changes/bug18089
deleted file mode 100644
index c1fb342f77..0000000000
--- a/changes/bug18089
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor fixes (security):
- - Make memwipe() do nothing when passed a NULL pointer
- or zero size. Check size argument to memwipe() for underflow.
- Closes bug #18089. Reported by "gk", patch by "teor".
- Bugfix on 0.2.3.25 and 0.2.4.6-alpha (#7352),
- commit 49dd5ef3 on 7 Nov 2012.
diff --git a/changes/bug18116 b/changes/bug18116
new file mode 100644
index 0000000000..23ff8f7775
--- /dev/null
+++ b/changes/bug18116
@@ -0,0 +1,3 @@
+ o Major bugfixes:
+ - Correctly handle detaching circuits from cmuxes when doing
+ circuit_free_all() on shutdown again; fixes bug #18116.
diff --git a/changes/bug18123 b/changes/bug18123
new file mode 100644
index 0000000000..1359b4ef67
--- /dev/null
+++ b/changes/bug18123
@@ -0,0 +1,4 @@
+ o Minor bugfixes (security, win32):
+ - Set SO_EXCLUSIVEADDRUSE on Win32 to avoid a local port-stealing
+ attack.
+ Fixes bug 18123; bugfix on all tor versions. Patch by "teor".
diff --git a/changes/bug18162 b/changes/bug18162
new file mode 100644
index 0000000000..0844d6f62f
--- /dev/null
+++ b/changes/bug18162
@@ -0,0 +1,7 @@
+ o Major bugfixes (security, pointers):
+
+ - Avoid a difficult-to-trigger heap corruption attack when extending
+ a smartlist to contain over 16GB of pointers. Fixes bug #18162;
+ bugfix on Tor 0.1.1.11-alpha, which fixed a related bug
+ incompletely. Reported by Guido Vranken.
+
diff --git a/changes/bug18184 b/changes/bug18184
new file mode 100644
index 0000000000..af493df75f
--- /dev/null
+++ b/changes/bug18184
@@ -0,0 +1,5 @@
+ o Removed platform support:
+ - Tor no longer attempts to support platforms where the "time_t" type
+ is unsigned. (To the best of our knowledge, only OpenVMS does this,
+ and Tor has never actually built on OpenVMS.) Closes ticket 18184.
+
diff --git a/changes/bug18208 b/changes/bug18208
new file mode 100644
index 0000000000..d6d194bb4d
--- /dev/null
+++ b/changes/bug18208
@@ -0,0 +1,5 @@
+ o Minor bug fixes (exit policies, security):
+ - Refresh an exit relay's exit policy when interface addresses change.
+ Previously, tor only refreshed the exit policy when the configured
+ external address changed.
+ Closes ticket 18208 on tor 0.2.7.3. Patch by "teor".
diff --git a/changes/bug18221 b/changes/bug18221
new file mode 100644
index 0000000000..afc240422a
--- /dev/null
+++ b/changes/bug18221
@@ -0,0 +1,3 @@
+ o Minor features (crypto):
+ - Validate the Diffie-Hellman hard coded parameters and ensure that
+ p is a safe prime, and g is suitable. Closes ticket 18221.
diff --git a/changes/bug18242 b/changes/bug18242
new file mode 100644
index 0000000000..e91f6d5eb3
--- /dev/null
+++ b/changes/bug18242
@@ -0,0 +1,6 @@
+ o Minor bugfixes (testing):
+ - We no longer disable assertions in the unit tests when coverage
+ is enabled. Instead, we require you to say --disable-asserts-in-tests
+ to the configure script if you need assertions disabled in the
+ unit tests (for example, if you want to perform branch coverage).
+ Fixes bug 18242; bugfix on 0.2.7.1-alpha.
diff --git a/changes/bug18258 b/changes/bug18258
new file mode 100644
index 0000000000..00e122466f
--- /dev/null
+++ b/changes/bug18258
@@ -0,0 +1,12 @@
+ o Code simplification and refactoring:
+ - Remove specialized code for non-inplace AES_CTR. 99% of our AES
+ is inplace, so there's no need to have a separate implementation
+ for the non-inplace code. Closes ticket 18258. Patch from
+ Malek.
+
+ o New requirements:
+ - Tor no longer supports versions of OpenSSL with a broken
+ implementation of counter mode. (This bug was present in OpenSSL
+ 1.0.0, and was fixed in OpenSSL 1.0.0a.) Tor still detects, but
+ no longer runs with, these versions.
+
diff --git a/changes/bug18259 b/changes/bug18259
new file mode 100644
index 0000000000..1084b8f524
--- /dev/null
+++ b/changes/bug18259
@@ -0,0 +1,4 @@
+ o Code simplification and refactoring:
+ - Simplify return types for some crypto functions that can't
+ actually fail. Patch from Hassan Alsibyani. Closes ticket
+ 18259.
diff --git a/changes/bug18261 b/changes/bug18261
new file mode 100644
index 0000000000..df4c74f337
--- /dev/null
+++ b/changes/bug18261
@@ -0,0 +1,6 @@
+ o Minor features (crypto):
+ - Fix a segfault during startup: If unix socket was configured as
+ listener (such as a ControlSocket or a SocksPort unix socket), and
+ tor was started as root but not configured to switch to another
+ user, tor would segfault while trying to string compare a NULL
+ value. Fixes bug 18261; bugfix on 0.2.8.1-alpha. Patch by weasel.
diff --git a/changes/bug18296 b/changes/bug18296
new file mode 100644
index 0000000000..1e98200be9
--- /dev/null
+++ b/changes/bug18296
@@ -0,0 +1,4 @@
+ o Minor bugfixes (containers):
+ - If we somehow attempt to construct a heap with more than
+ 1073741822 elements, avoid an integer overflow when maintaining
+ the heap property. Fixes bug 18296; bugfix on 0.1.2.1-alpha.
diff --git a/changes/bug18348 b/changes/bug18348
new file mode 100644
index 0000000000..03978eda19
--- /dev/null
+++ b/changes/bug18348
@@ -0,0 +1,5 @@
+ o Major bug fixes (relays, bridge clients):
+ - Ensure relays always allow IPv4 OR and Dir connections.
+ Ensure bridge clients use the address configured in the bridge line.
+ Fixes bug 18348; bugfix on 0.2.8.1-alpha.
+ Reported by sysrqb, patch by teor.
diff --git a/changes/bug18374 b/changes/bug18374
new file mode 100644
index 0000000000..4764c53f56
--- /dev/null
+++ b/changes/bug18374
@@ -0,0 +1,3 @@
+ o Minor bugfixes (configuration):
+ - Fix a tiny memory leak when parsing a port configuration ending in
+ ":auto". Fixes bug 18374; bugfix on 0.2.3.3-alpha.
diff --git a/changes/bug18384 b/changes/bug18384
new file mode 100644
index 0000000000..78befcabaa
--- /dev/null
+++ b/changes/bug18384
@@ -0,0 +1,5 @@
+ o Minor bugfixes (crypto, static analysis):
+ - Silence spurious clang-scan warnings in the ed25519_donna code
+ by explicitly initialising some objects.
+ Fixes bug 18384; bugfix on 0f3eeca9 in 0.2.7.2-alpha.
+ Patch by "teor".
diff --git a/changes/bug18426_18459 b/changes/bug18426_18459
new file mode 100644
index 0000000000..9059d6e47e
--- /dev/null
+++ b/changes/bug18426_18459
@@ -0,0 +1,4 @@
+ o Documentation:
+ - Change build messages to refer to "Fedora" instead of "Fedora Core",
+ and "dnf" instead of "yum". Closes tickets 18459 and 18426.
+ Patches from "icanhasaccount" and "cypherpunks".
diff --git a/changes/bug18448 b/changes/bug18448
new file mode 100644
index 0000000000..e328ce367a
--- /dev/null
+++ b/changes/bug18448
@@ -0,0 +1,6 @@
+ o Minor features (build):
+ - Detect systems with FreeBSD-derived kernels (such as GNU/kFreeBSD) as
+ having possible IPfW support. Closes ticket 18448. Patch from
+ Steven Chamberlain.
+
+
diff --git a/changes/bug4483-multiple-consensus-downloads b/changes/bug4483-multiple-consensus-downloads
deleted file mode 100644
index 23d22a89c4..0000000000
--- a/changes/bug4483-multiple-consensus-downloads
+++ /dev/null
@@ -1,9 +0,0 @@
- o Major features (consensus downloads):
- - Schedule multiple in-progress consensus downloads during client
- bootstrap. Use the first one that starts downloading, close the
- rest. This reduces failures when authorities are slow or down.
- With #15775, it reduces failures due to fallback churn.
- Implements #4483 (reduce failures when authorities are down).
- Patch by "teor".
- Implements IPv4 portions of proposal #210 by "mikeperry" and
- "teor".
diff --git a/changes/bug6027 b/changes/bug6027
deleted file mode 100644
index 5233876a49..0000000000
--- a/changes/bug6027
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor features:
- - Allow users to configure directory authorities and fallback
- directory servers with IPv6 addresses and ORPorts. Resolves
- ticket 6027.
diff --git a/changes/build18490 b/changes/build18490
new file mode 100644
index 0000000000..466a133cb2
--- /dev/null
+++ b/changes/build18490
@@ -0,0 +1,4 @@
+ o Minor bugfixes (build):
+ - Do not link the unit tests against both the testing and non-testing
+ versions of the static libraries. Fixes bug 18490; bugfix on
+ 0.2.7.1-alpha.
diff --git a/changes/check-crypto-errors b/changes/check-crypto-errors
deleted file mode 100644
index e41862ca13..0000000000
--- a/changes/check-crypto-errors
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor bugfix (crypto):
- - Check the return value of HMAC and assert on failure.
- Fixes bug #17658; bugfix on commit in fdbb9cdf746b (11 Oct 2011)
- in tor version 0.2.3.5-alpha-dev.
- Patch by "teor".
diff --git a/changes/cleanup_17587 b/changes/cleanup_17587
deleted file mode 100644
index 05e00fd9e5..0000000000
--- a/changes/cleanup_17587
+++ /dev/null
@@ -1,3 +0,0 @@
- o Code simplifications and refactorings:
- - Clean up a little duplicated code in crypto_expand_key_material_TAP.
- Closes ticket 17587; patch from "pfrankw".
diff --git a/changes/decouple_circuit_mark b/changes/decouple_circuit_mark
deleted file mode 100644
index 4b7ed778a2..0000000000
--- a/changes/decouple_circuit_mark
+++ /dev/null
@@ -1,6 +0,0 @@
- o Code simplification and refactoring:
- - Extract the more complicated parts of circuit_mark_for_close into
- a new function run periodically before connections are freed.
- This change removes more than half of the functions currently
- in the "blob".
- Closes ticket #17218.
diff --git a/changes/decouple_conn_attach b/changes/decouple_conn_attach
deleted file mode 100644
index 6167b4e932..0000000000
--- a/changes/decouple_conn_attach
+++ /dev/null
@@ -1,6 +0,0 @@
- o Code simplification and refactorings:
- - Decouple the list of streams needing to be attached to circuits
- from the overall connection list. This change makes it possible to
- attach streams quickly while both simplifying Tor's callgraph and
- avoiding O(N) scans of the entire connection list. Closes ticket
- 17590.
diff --git a/changes/doc17392 b/changes/doc17392
deleted file mode 100644
index 3c93497b00..0000000000
--- a/changes/doc17392
+++ /dev/null
@@ -1,4 +0,0 @@
- o Documentation:
- - Mention torspec URL in the manpage and point the reader to it
- whenever we mention a document that belongs in torspce.
- Fixes issue 17392.
diff --git a/changes/feature12538 b/changes/feature12538
deleted file mode 100644
index 4e7ea9f41d..0000000000
--- a/changes/feature12538
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor features (directory system):
- Previously only relays who explicitly opened a directory port (DirPort)
- accepted directory requests from clients. Now all relays, with and without
- a DirPort, who do not disable the DirCache option accept and serve
- directory requests sent (tunnelled) through their ORPort.
- Closes ticket 12538.
diff --git a/changes/feature13696 b/changes/feature13696
deleted file mode 100644
index 21c2188d12..0000000000
--- a/changes/feature13696
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor features (security, cryptography):
- - Use modern system calls to generate strong entropy on platforms that
- provide them. Closes ticket 13696.
diff --git a/changes/feature14846 b/changes/feature14846
deleted file mode 100644
index 4668761f22..0000000000
--- a/changes/feature14846
+++ /dev/null
@@ -1,4 +0,0 @@
- o Major features (controller):
- - New "GETINFO hs/service/desc/id/" command to retrieve a hidden service
- descriptor from a service's local hidden service descriptor cache.
- Closes ticket 14846.
diff --git a/changes/feature15775-fallback b/changes/feature15775-fallback
deleted file mode 100644
index 567d01cc72..0000000000
--- a/changes/feature15775-fallback
+++ /dev/null
@@ -1,19 +0,0 @@
- o Major features (directory mirrors):
- - Include an opt-in trial list of Default Fallback Directories in
- add_default_fallback_dir_servers().
- "Tor has included a feature to fetch the initial consensus from nodes
- other than the authorities for a while now. We just haven't shipped a
- list of alternate locations for clients to go to yet.
- Reasons why we might want to ship tor with a list of additional places
- where clients can find the consensus is that it makes authority
- reachability and BW less important.
- We want them to have been around and using their current key, address,
- and port for a while now (120 days), and have been running, a guard,
- and a v2 directory mirror for most of that time."
- We exclude BadExits and tor versions that aren't recommended.
- We include an IPv6 address for each FallbackDir (#8374).
- (Tor might not use IPv6 fallbacks until #6027 is merged.)
- The unit test ensures that we successfully load all included
- default fallback directories.
- Closes ticket #15775. Patch by "teor".
- OnionOO script by "weasel", "teor", "gsathya", and "karsten".
diff --git a/changes/feature16774 b/changes/feature16774
deleted file mode 100644
index 87ba488cc6..0000000000
--- a/changes/feature16774
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor enhancement:
- - Adds FallbackDir entries to 'GETINFO config/defaults'. Closes ticket
- #16774 and 17817. Patch by George Tankersley.
diff --git a/changes/feature17076 b/changes/feature17076
deleted file mode 100644
index 50ebc96327..0000000000
--- a/changes/feature17076
+++ /dev/null
@@ -1,3 +0,0 @@
- o Testing:
- - New tests for options_validate. Closes ticket 17076. Patch from
- Ola Bini.
diff --git a/changes/feature17327 b/changes/feature17327
deleted file mode 100644
index 2fab09990b..0000000000
--- a/changes/feature17327
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor feature (IPv6):
- - Add a flag ipv6=address:orport to the DirAuthority and FallbackDir torrc
- options. Add hard-coded ipv6 addresses for directory authorities with
- ipv6 lines in their descriptors.
- Closes ticket 17327; patch from Nick Mathewson / "teor".
diff --git a/changes/feature17576-UseDefaultFallbackDirs b/changes/feature17576-UseDefaultFallbackDirs
deleted file mode 100644
index 68843c4769..0000000000
--- a/changes/feature17576-UseDefaultFallbackDirs
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor feature (fallback directories):
- - Add UseDefaultFallbackDirs, which enables any hard-coded fallback
- directory mirrors. Default is 1, set it to 0 to disable fallbacks.
- Implements ticket 17576. Patch by "teor".
diff --git a/changes/feature17608 b/changes/feature17608
deleted file mode 100644
index d56bb7d4a7..0000000000
--- a/changes/feature17608
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor feature (refactoring):
- - Move logging of redundant policy entries in
- policies_parse_exit_policy_internal into its own function.
- Closes ticket 17608; patch from "juce".
diff --git a/changes/feature17663 b/changes/feature17663
deleted file mode 100644
index baad9436fc..0000000000
--- a/changes/feature17663
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor feature (crypto):
- - Add SHA512 support to crypto.c. Closes ticket 17663; patch from
- George Tankersley.
diff --git a/changes/feature17796 b/changes/feature17796
deleted file mode 100644
index d96daed262..0000000000
--- a/changes/feature17796
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor features (crypto):
- - When allocating a digest state object, allocate no more space than we
- actually need. Previously, we were allocating as much space as the
- state for the largest algorithm would need. This change saves up to
- 672 bytes per circuit. Closes ticket 17796.
-
diff --git a/changes/feature17840 b/changes/feature17840
new file mode 100644
index 0000000000..b8b3b7f5b5
--- /dev/null
+++ b/changes/feature17840
@@ -0,0 +1,9 @@
+ o Minor feature (IPv6):
+ - Add ClientUseIPv4, which is set to 1 by default. If set to 0, tor
+ avoids using IPv4 for client OR and directory connections.
+ - Add ClientPreferIPv6DirPort, which is set to 0 by default. If set
+ to 1, tor prefers IPv6 directory addresses.
+ - Try harder to fulfil IP version restrictions ClientUseIPv4 0 and
+ ClientUseIPv6 0; and the preferences ClientPreferIPv6ORPort and
+ ClientPreferIPv6DirPort.
+ Closes ticket 17840; patch by "teor".
diff --git a/changes/feature17863 b/changes/feature17863
deleted file mode 100644
index 86c4e2ce0c..0000000000
--- a/changes/feature17863
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor feature (IPv6):
- - Add address policy assume_action support for IPv6 addresses.
- - Limit IPv6 mask bits to 128.
- - Warn when comparing against an AF_UNSPEC address in a policy,
- it's almost always a bug.
- Closes ticket 17863; patch by "teor".
diff --git a/changes/feature17864 b/changes/feature17864
deleted file mode 100644
index 1cf156206b..0000000000
--- a/changes/feature17864
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor feature (directory downloads):
- - Wait for busy authorities and fallbacks to become non-busy when
- bootstrapping. (A similar change was made in 6c443e987d for
- directory servers chosen from the consensus.)
- Closes ticket 17864; patch by "teor".
diff --git a/changes/feature17950 b/changes/feature17950
deleted file mode 100644
index 5ea83ecd8e..0000000000
--- a/changes/feature17950
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor features:
- - Add a family argument to get_interface_addresses_raw() and
- subfunctions to make network interface address interogation more
- efficient. Now Tor can specifically ask for IPv4, IPv6 or both
- types of interfaces from the operating system. Resolves ticket 17950.
diff --git a/changes/feature17951 b/changes/feature17951
deleted file mode 100644
index 42ec32a0dd..0000000000
--- a/changes/feature17951
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor features:
- - When get_interface_address6_list(.,AF_UNSPEC,.) is called and fails
- to enumerate interface addresses using the platform-specific API,
- have it rely on the UDP socket fallback technique to try and find
- out what IP addresses (both IPv4 and IPv6) our machine has. Resolves
- ticket 17951.
diff --git a/changes/feature17986 b/changes/feature17986
deleted file mode 100644
index ef82bd3503..0000000000
--- a/changes/feature17986
+++ /dev/null
@@ -1,3 +0,0 @@
- o Minor features:
- - Use SecureMemoryWipe() function to securely clean memory on
- Windows. Implements feature 17986.
diff --git a/changes/feature8195 b/changes/feature8195
deleted file mode 100644
index cb81f2e1d0..0000000000
--- a/changes/feature8195
+++ /dev/null
@@ -1,6 +0,0 @@
- o Major features:
- - When Tor is started as root on Linux and told to switch user ID, it
- can now retain the capabilitity to bind to low ports. By default,
- Tor will do this only when it's switching user ID and some low
- ports have been configured. You can change this behavior with
- the new option KeepBindCapabilities. Closes ticket 8195.
diff --git a/changes/feature8961-replaycache-sha256 b/changes/feature8961-replaycache-sha256
deleted file mode 100644
index c5b5c857db..0000000000
--- a/changes/feature8961-replaycache-sha256
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor enhancement (replaycache):
- - The replay cache now uses SHA256 instead of SHA1.
- Implements feature #8961.
- Patch by "teor", issue reported by "rransom".
diff --git a/changes/first-hop-no-private b/changes/first-hop-no-private
deleted file mode 100644
index e8d0684061..0000000000
--- a/changes/first-hop-no-private
+++ /dev/null
@@ -1,8 +0,0 @@
- o Minor bugfix (relays, hidden services):
- - Refuse connection requests to private OR addresses unless
- ExtendAllowPrivateAddresses is set. Previously, tor would
- connect, then refuse to send any cells to a private address.
- Fixes bugs 17674 and 8976; bugfix on b7c172c9ec76 (28 Aug 2012)
- Original bug 6710, released in 0.2.3.21-rc and an 0.2.2 maint
- release.
- Patch by "teor".
diff --git a/changes/geoip-february2016 b/changes/geoip-february2016
new file mode 100644
index 0000000000..49a8041fad
--- /dev/null
+++ b/changes/geoip-february2016
@@ -0,0 +1,4 @@
+ o Minor features:
+ - Update geoip and geoip6 to the February 2 2016 Maxmind GeoLite2
+ Country database.
+
diff --git a/changes/geoip-january2016 b/changes/geoip-january2016
deleted file mode 100644
index fe2d5c7dc7..0000000000
--- a/changes/geoip-january2016
+++ /dev/null
@@ -1,4 +0,0 @@
- o Minor features:
- - Update geoip and geoip6 to the January 5 2016 Maxmind GeoLite2
- Country database.
-
diff --git a/changes/geoip-march2016 b/changes/geoip-march2016
new file mode 100644
index 0000000000..d7b1bd42f9
--- /dev/null
+++ b/changes/geoip-march2016
@@ -0,0 +1,4 @@
+ o Minor features:
+ - Update geoip and geoip6 to the March 3 2016 Maxmind GeoLite2
+ Country database.
+
diff --git a/changes/getinfo-private-exitpolicy b/changes/getinfo-private-exitpolicy
deleted file mode 100644
index e8345167e9..0000000000
--- a/changes/getinfo-private-exitpolicy
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor features (exit policies, controllers):
- - Add controller getinfo exit-policy/reject-private/[default,relay]
- for the reject rules added by ExitPolicyRejectPrivate. This makes
- it easier for stem to display exit policies.
- - Add unit tests for getinfo exit-policy/*.
- Completes ticket #17183. Patch by "teor".
diff --git a/changes/laplace-edge-cases b/changes/laplace-edge-cases
deleted file mode 100644
index 6c8c77b040..0000000000
--- a/changes/laplace-edge-cases
+++ /dev/null
@@ -1,8 +0,0 @@
- o Code simplifications and unit tests:
- - Handle edge cases in the laplace functions: avoid division by zero,
- avoid taking the log of zero, and silence clang type conversion
- warnings using round and trunc. Add unit tests for edge cases with
- maximal values.
- - Consistently check for overflow in round_*_to_next_multiple_of
- functions, and add unit tests with additional and maximal values.
-
diff --git a/changes/log_heartbeat_test b/changes/log_heartbeat_test
deleted file mode 100644
index 7db97ed03c..0000000000
--- a/changes/log_heartbeat_test
+++ /dev/null
@@ -1,6 +0,0 @@
- o Minor bugfix (testing):
- - The test for log_heartbeat was incorrectly failing in timezones
- with non-integer offsets. Instead of comparing the end of the
- time string against a constant, compare it to the output of
- format_local_iso_time when given the correct input.
- Fixes bug 18039.
diff --git a/changes/rand-failure-modes b/changes/rand-failure-modes
deleted file mode 100644
index cc6ef4744e..0000000000
--- a/changes/rand-failure-modes
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor features (unit tests, random number generation):
- - Add unit tests that check for common RNG failure modes, such as
- returning all zeroes, identical values, or incrementing values
- (OpenSSL's rand_predictable feature).
- Patch by "teor".
diff --git a/changes/remove_memarea_freelist b/changes/remove_memarea_freelist
new file mode 100644
index 0000000000..dd9520c11e
--- /dev/null
+++ b/changes/remove_memarea_freelist
@@ -0,0 +1,4 @@
+ o Removed code:
+ - We no longer maintain an internal freelist in memarea.c. Allocators
+ should be good enough to make this code unnecessary, and it's doubtful
+ that it ever had any performance benefit.
diff --git a/changes/routerset-parse-IPv6-literals b/changes/routerset-parse-IPv6-literals
deleted file mode 100644
index c80c82c229..0000000000
--- a/changes/routerset-parse-IPv6-literals
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor bug fixes (routersets, IPv6):
- - routerset_parse now accepts IPv6 literal addresses.
- Fix for ticket 17060. Patch by "teor".
- Patch on 3ce6e2fba290 (24 Jul 2008), and related commits,
- released in 0.2.1.3-alpha.
diff --git a/changes/sha-unit-tests b/changes/sha-unit-tests
deleted file mode 100644
index 457578d337..0000000000
--- a/changes/sha-unit-tests
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor bugfixes (unit tests):
- - Check the full results of SHA256 and SHA512 digests in the
- unit tests.
- Bugfix on a tor version before the refactoring in git commit
- cea12251995d (23 Sep 2009). Patch by "teor".
diff --git a/changes/test16831 b/changes/test16831
deleted file mode 100644
index 7db2d14df5..0000000000
--- a/changes/test16831
+++ /dev/null
@@ -1,3 +0,0 @@
- o Testing:
- - Cover dns_resolve_impl() in dns.c with unit tests. Implements a
- portion of ticket 16831.
diff --git a/changes/test_asan b/changes/test_asan
new file mode 100644
index 0000000000..ce0aa978ff
--- /dev/null
+++ b/changes/test_asan
@@ -0,0 +1,3 @@
+ o Testing:
+ - Fix several warnings from clang's address sanitizer produced in the
+ unit tests.
diff --git a/changes/ticket15989 b/changes/ticket15989
deleted file mode 100644
index e90d0cf8a4..0000000000
--- a/changes/ticket15989
+++ /dev/null
@@ -1,9 +0,0 @@
- o Minor enhancement (accounting):
- - Added two modes to AccountingRule in torrc for
- limiting just input or just output.
- Closes ticket 15989; patch from "unixninja92".
-
- o Minor bugfixe (accounting):
- - The max bandwidth when using AccountRule sum
- is now correctly logged. Fixes bug 18024; bugfix on 0.2.6.1-alpha.
- Patch from "unixninja92".
diff --git a/changes/ticket17158 b/changes/ticket17158
deleted file mode 100644
index f65053db99..0000000000
--- a/changes/ticket17158
+++ /dev/null
@@ -1,7 +0,0 @@
- o Minor fixes (fallback directories):
- - Fix a display issue in updateFallbackDirs.py output.
- Patch by "teor". Not in any released version of tor.
-
- o Minor features (fallback directories):
- - Add default fallback directories for the 0.2.8 alpha releases.
- Patch by "teor".
diff --git a/changes/ticket17744 b/changes/ticket17744
new file mode 100644
index 0000000000..57a4a595c8
--- /dev/null
+++ b/changes/ticket17744
@@ -0,0 +1,4 @@
+ o Code simplification and refactoring:
+ - Quote all the string interpolations in configure.ac -- even
+ those which we are pretty sure can't contain spaces. Closes
+ ticket 17744. Patch from "zerosion". \ No newline at end of file
diff --git a/changes/trunnel_update b/changes/trunnel_update
new file mode 100644
index 0000000000..4f8c1855b6
--- /dev/null
+++ b/changes/trunnel_update
@@ -0,0 +1,5 @@
+ o Minor bugfixes (code correctness):
+ - Update to the latest version of Trunnel, which tries harder
+ to avoid generating code that can invoke memcpy(p,NULL,0).
+ Bug found by clang address sanitizer. Fixes bug 18373. Bugfix
+ on 0.2.7.2-alpha.
diff --git a/changes/warn-when-time-goes-backwards b/changes/warn-when-time-goes-backwards
deleted file mode 100644
index d7e584d9ff..0000000000
--- a/changes/warn-when-time-goes-backwards
+++ /dev/null
@@ -1,5 +0,0 @@
- o Minor features (security, clock):
- - Warn when the system clock is set back in time (when the
- state file was last written in the future). Tor doesn't know
- that consensuses have expired if the clock is in the past.
- Patch by "teor". Implements ticket #17188.
diff --git a/configure.ac b/configure.ac
index 6d2312d159..df4b9cdc08 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,10 +3,16 @@ dnl Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson
dnl Copyright (c) 2007-2015, The Tor Project, Inc.
dnl See LICENSE for licensing information
-AC_INIT([tor],[0.2.8.0-alpha-dev])
+AC_PREREQ([2.63])
+AC_INIT([tor],[0.2.8.1-alpha-dev])
AC_CONFIG_SRCDIR([src/or/main.c])
AC_CONFIG_MACRO_DIR([m4])
-AM_INIT_AUTOMAKE
+
+# "foreign" means we don't follow GNU package layout standards
+# "1.11" means we require automake version 1.11 or newer
+# "subdir-objects" means put .o files in the same directory as the .c files
+AM_INIT_AUTOMAKE([foreign 1.11 subdir-objects])
+
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_CONFIG_HEADERS([orconfig.h])
@@ -14,8 +20,8 @@ AC_CANONICAL_HOST
PKG_PROG_PKG_CONFIG
-if test -f /etc/redhat-release ; then
- if test -f /usr/kerberos/include ; then
+if test -f "/etc/redhat-release"; then
+ if test -f "/usr/kerberos/include"; then
CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
fi
fi
@@ -41,11 +47,20 @@ AC_ARG_ENABLE(unittests,
AS_HELP_STRING(--disable-unittests, [don't build unit tests for Tor. Risky!]))
AC_ARG_ENABLE(coverage,
AS_HELP_STRING(--enable-coverage, [enable coverage support in the unit-test build]))
+AC_ARG_ENABLE(asserts-in-tests,
+ AS_HELP_STRING(--disable-asserts-in-tests, [disable tor_assert() calls in the unit tests, for branch coverage]))
AC_ARG_ENABLE(system-torrc,
AS_HELP_STRING(--disable-system-torrc, [don't look for a system-wide torrc file]))
+if test "x$enable_coverage" != "xyes" -a "x$enable_asserts_in_tests" = "xno" ; then
+ AC_MSG_ERROR([Can't disable assertions outside of coverage build])
+fi
+
+AM_CONDITIONAL(UNITTESTS_ENABLED, test "x$enable_unittests" != "xno")
+AM_CONDITIONAL(COVERAGE_ENABLED, test "x$enable_coverage" = "xyes")
AM_CONDITIONAL(UNITTESTS_ENABLED, test x$enable_unittests != xno)
AM_CONDITIONAL(COVERAGE_ENABLED, test x$enable_coverage = xyes)
+AM_CONDITIONAL(DISABLE_ASSERTS_IN_UNIT_TESTS, test "x$enable_asserts_in_tests" = "xno")
if test "$enable_static_tor" = "yes"; then
enable_static_libevent="yes";
@@ -59,8 +74,8 @@ if test "$enable_system_torrc" = "no"; then
[Defined if we're not going to look for a torrc in SYSCONF])
fi
-AM_CONDITIONAL(USE_OPENBSD_MALLOC, test x$enable_openbsd_malloc = xyes)
-if test x$enable_instrument_downloads = xyes; then
+AM_CONDITIONAL(USE_OPENBSD_MALLOC, test "x$enable_openbsd_malloc" = "xyes")
+if test "x$enable_instrument_downloads" = "xyes"; then
AC_DEFINE(INSTRUMENT_DOWNLOADS, 1,
[Defined if we want to keep track of how much of each kind of resource we download.])
fi
@@ -68,16 +83,16 @@ fi
AC_ARG_ENABLE(transparent,
AS_HELP_STRING(--disable-transparent, [disable transparent proxy support]),
[case "${enableval}" in
- yes) transparent=true ;;
- no) transparent=false ;;
+ "yes") transparent=true ;;
+ "no") transparent=false ;;
*) AC_MSG_ERROR(bad value for --enable-transparent) ;;
esac], [transparent=true])
AC_ARG_ENABLE(asciidoc,
AS_HELP_STRING(--disable-asciidoc, [don't use asciidoc (disables building of manpages)]),
[case "${enableval}" in
- yes) asciidoc=true ;;
- no) asciidoc=false ;;
+ "yes") asciidoc=true ;;
+ "no") asciidoc=false ;;
*) AC_MSG_ERROR(bad value for --disable-asciidoc) ;;
esac], [asciidoc=true])
@@ -85,22 +100,22 @@ AC_ARG_ENABLE(asciidoc,
AC_ARG_ENABLE(systemd,
AS_HELP_STRING(--enable-systemd, [enable systemd notification support]),
[case "${enableval}" in
- yes) systemd=true ;;
- no) systemd=false ;;
+ "yes") systemd=true ;;
+ "no") systemd=false ;;
* ) AC_MSG_ERROR(bad value for --enable-systemd) ;;
esac], [systemd=auto])
# systemd support
-if test x$enable_systemd = xno ; then
+if test "x$enable_systemd" = "xno"; then
have_systemd=no;
else
PKG_CHECK_MODULES(SYSTEMD,
[libsystemd-daemon],
have_systemd=yes,
have_systemd=no)
- if test x$have_systemd=xno; then
+ if test "x$have_systemd" = "xno"; then
AC_MSG_NOTICE([Okay, checking for systemd a different way...])
PKG_CHECK_MODULES(SYSTEMD,
[libsystemd],
@@ -109,7 +124,7 @@ else
fi
fi
-if test x$have_systemd = xyes; then
+if test "x$have_systemd" = "xyes"; then
AC_DEFINE(HAVE_SYSTEMD,1,[Have systemd])
TOR_SYSTEMD_CFLAGS="${SYSTEMD_CFLAGS}"
TOR_SYSTEMD_LIBS="${SYSTEMD_LIBS}"
@@ -119,11 +134,11 @@ fi
AC_SUBST(TOR_SYSTEMD_CFLAGS)
AC_SUBST(TOR_SYSTEMD_LIBS)
-if test x$enable_systemd = xyes -a x$have_systemd != xyes ; then
+if test "x$enable_systemd" = "xyes" -a "x$have_systemd" != "xyes" ; then
AC_MSG_ERROR([Explicitly requested systemd support, but systemd not found])
fi
-case $host in
+case "$host" in
*-*-solaris* )
AC_DEFINE(_REENTRANT, 1, [Define on some platforms to activate x_r() functions in time.h])
;;
@@ -156,7 +171,7 @@ fi
# Tor2web mode flag
AC_ARG_ENABLE(tor2web-mode,
AS_HELP_STRING(--enable-tor2web-mode, [support tor2web non-anonymous mode]),
-[if test x$enableval = xyes; then
+[if test "x$enableval" = "xyes"; then
CFLAGS="$CFLAGS -D ENABLE_TOR2WEB_MODE=1"
fi])
@@ -184,10 +199,10 @@ dnl because that will find any cc on the system, not only the cross-compiler,
dnl and then verify that a binary built with this compiler runs on the
dnl build system. It will then come to the false conclusion that we're not
dnl cross-compiling.
-if test x$enable_tool_name_check != xno; then
- if test x$ac_tool_warned = xyes; then
+if test "x$enable_tool_name_check" != "xno"; then
+ if test "x$ac_tool_warned" = "xyes"; then
AC_MSG_ERROR([We are cross compiling but could not find a properly named toolchain. Do you have your cross-compiling toolchain in PATH? (You can --disable-tool-name-check to ignore this.)])
- elif test "x$ac_ct_AR" != x -a x$cross_compiling = xmaybe; then
+ elif test "x$ac_ct_AR" != "x" -a "x$cross_compiling" = "xmaybe"; then
AC_MSG_ERROR([We think we are cross compiling but could not find a properly named toolchain. Do you have your cross-compiling toolchain in PATH? (You can --disable-tool-name-check to ignore this.)])
fi
fi
@@ -206,11 +221,11 @@ dnl check for asciidoc and a2x
AC_PATH_PROG([ASCIIDOC], [asciidoc], none)
AC_PATH_PROGS([A2X], [a2x a2x.py], none)
-AM_CONDITIONAL(USE_ASCIIDOC, test x$asciidoc = xtrue)
+AM_CONDITIONAL(USE_ASCIIDOC, test "x$asciidoc" = "xtrue")
-AM_CONDITIONAL(USE_FW_HELPER, test x$natpmp = xtrue || test x$upnp = xtrue)
-AM_CONDITIONAL(NAT_PMP, test x$natpmp = xtrue)
-AM_CONDITIONAL(MINIUPNPC, test x$upnp = xtrue)
+AM_CONDITIONAL(USE_FW_HELPER, test "x$natpmp" = "xtrue" || test "x$upnp" = "xtrue")
+AM_CONDITIONAL(NAT_PMP, test "x$natpmp" = "xtrue")
+AM_CONDITIONAL(MINIUPNPC, test "x$upnp" = "xtrue")
AM_PROG_CC_C_O
AC_PROG_CC_C99
@@ -236,7 +251,7 @@ AC_C_FLEXIBLE_ARRAY_MEMBER
]),
[tor_cv_c_flexarray=yes],
[tor_cv_c_flexarray=no])])
- if test $tor_cv_flexarray = yes ; then
+ if test "$tor_cv_flexarray" = "yes"; then
AC_DEFINE([FLEXIBLE_ARRAY_MEMBER], [], [Define to nothing if C supports flexible array members, and to 1 if it does not.])
else
AC_DEFINE([FLEXIBLE_ARRAY_MEMBER], [1], [Define to nothing if C supports flexible array members, and to 1 if it does not.])
@@ -303,7 +318,7 @@ bwin32=false; AC_MSG_RESULT([no]),
bwin32=cross; AC_MSG_RESULT([cross])
)
-if test "$bwin32" = cross; then
+if test "$bwin32" = "cross"; then
AC_MSG_CHECKING([for win32 (cross)])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
#ifdef _WIN32
@@ -337,7 +352,7 @@ AH_BOTTOM([
])
-AM_CONDITIONAL(BUILD_NT_SERVICES, test x$bwin32 = xtrue)
+AM_CONDITIONAL(BUILD_NT_SERVICES, test "x$bwin32" = "xtrue")
dnl Enable C99 when compiling with MIPSpro
AC_MSG_CHECKING([for MIPSpro compiler])
@@ -350,7 +365,7 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [
bmipspro=false; AC_MSG_RESULT(no),
bmipspro=true; AC_MSG_RESULT(yes))
-if test "$bmipspro" = true; then
+if test "$bmipspro" = "true"; then
CFLAGS="$CFLAGS -c99"
fi
@@ -425,13 +440,13 @@ AC_CHECK_FUNCS(
_vscprintf
)
-if test "$bwin32" != true; then
+if test "$bwin32" != "true"; then
AC_CHECK_HEADERS(pthread.h)
AC_CHECK_FUNCS(pthread_create)
AC_CHECK_FUNCS(pthread_condattr_setclock)
fi
-if test "$bwin32" = true; then
+if test "$bwin32" = "true"; then
AC_CHECK_DECLS([SecureZeroMemory, _getwch], , , [
#include <windows.h>
#include <conio.h>
@@ -439,12 +454,13 @@ if test "$bwin32" = true; then
])
fi
-AM_CONDITIONAL(BUILD_READPASSPHRASE_C, test x$ac_cv_func_readpassphrase = xno && test $bwin32 = false)
+AM_CONDITIONAL(BUILD_READPASSPHRASE_C,
+ test "x$ac_cv_func_readpassphrase" = "xno" && test "$bwin32" = "false")
dnl ------------------------------------------------------
dnl Where do you live, libevent? And how do we call you?
-if test "$bwin32" = true; then
+if test "$bwin32" = "true"; then
TOR_LIB_WS32=-lws2_32
TOR_LIB_IPHLPAPI=-liphlpapi
# Some of the cargo-cults recommend -lwsock32 as well, but I don't
@@ -467,7 +483,7 @@ dnl On Gnu/Linux or any place we require it, we'll add librt to the Libevent
dnl linking for static builds.
STATIC_LIBEVENT_FLAGS=""
if test "$enable_static_libevent" = "yes"; then
- if test "$have_rt" = yes; then
+ if test "$have_rt" = "yes"; then
STATIC_LIBEVENT_FLAGS=" -lrt "
fi
fi
@@ -510,7 +526,8 @@ AC_CHECK_HEADERS(event2/event.h event2/dns.h event2/bufferevent_ssl.h)
LIBS="$STATIC_LIBEVENT_FLAGS $TOR_LIB_WS32 $save_LIBS"
-AM_CONDITIONAL(USE_EXTERNAL_EVDNS, test x$ac_cv_header_event2_dns_h = xyes)
+AM_CONDITIONAL(USE_EXTERNAL_EVDNS,
+ test "x$ac_cv_header_event2_dns_h" = "xyes")
if test "$enable_static_libevent" = "yes"; then
if test "$tor_cv_library_libevent_dir" = "(system)"; then
@@ -540,8 +557,8 @@ CPPFLAGS="$save_CPPFLAGS"
dnl This isn't the best test for Libevent 2.0.3-alpha. Once it's released,
dnl we can do much better.
-if test "$enable_bufferevents" = "yes" ; then
- if test "$ac_cv_header_event2_bufferevent_ssl_h" != "yes" ; then
+if test "$enable_bufferevents" = "yes"; then
+ if test "$ac_cv_header_event2_bufferevent_ssl_h" != "yes"; then
AC_MSG_ERROR([You've asked for bufferevent support, but you're using a version of Libevent without SSL support. This won't work. We need Libevent 2.0.8-rc or later, and you don't seem to even have Libevent 2.0.3-alpha.])
else
@@ -559,7 +576,7 @@ int x = 1;
#endif
])], [event_version_number_works=yes; AC_MSG_RESULT([yes]) ],
[event_version_number_works=no; AC_MSG_RESULT([no])])
- if test "$event_version_number_works" != 'yes'; then
+ if test "$event_version_number_works" != "yes"; then
AC_MSG_WARN([Version detection on Libevent seems broken. Your Libevent installation is probably screwed up or very old.])
else
AC_MSG_CHECKING([whether Libevent is new enough for bufferevents])
@@ -619,7 +636,7 @@ ALT_openssl_WITHVAL=""
AC_ARG_WITH(ssl-dir,
AS_HELP_STRING(--with-ssl-dir=PATH, [obsolete alias for --with-openssl-dir]),
[
- if test "x$withval" != xno && test "x$withval" != "x" ; then
+ if test "x$withval" != "xno" && test "x$withval" != "x"; then
ALT_openssl_WITHVAL="$withval"
fi
])
@@ -746,9 +763,9 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
#error
#endif])], have_clang=yes, have_clang=no)
-if test x$enable_gcc_hardening != xno; then
+if test "x$enable_gcc_hardening" != "xno"; then
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
- if test x$have_clang = xyes; then
+ if test "x$have_clang" = "xyes"; then
TOR_CHECK_CFLAGS(-Qunused-arguments)
fi
TOR_CHECK_CFLAGS(-fstack-protector-all, also_link)
@@ -771,13 +788,13 @@ m4_ifdef([AS_VAR_IF],[
fi
fi
-if test x$enable_expensive_hardening = xyes ; then
+if test "x$enable_expensive_hardening" = "xyes"; then
TOR_CHECK_CFLAGS([-fsanitize=address])
TOR_CHECK_CFLAGS([-fsanitize=undefined])
TOR_CHECK_CFLAGS([-fno-omit-frame-pointer])
fi
-if test x$enable_linker_hardening != xno; then
+if test "x$enable_linker_hardening" != "xno"; then
TOR_CHECK_LDFLAGS(-z relro -z now, "$all_ldflags_for_check", "$all_libs_for_check")
fi
@@ -791,7 +808,7 @@ saved_CFLAGS="$CFLAGS"
TOR_CHECK_CFLAGS(-fomit-frame-pointer)
F_OMIT_FRAME_POINTER=''
if test "$saved_CFLAGS" != "$CFLAGS"; then
- if test x$enable_expensive_hardening != xyes ; then
+ if test "x$enable_expensive_hardening" != "xyes"; then
F_OMIT_FRAME_POINTER='-fomit-frame-pointer'
fi
fi
@@ -900,10 +917,10 @@ AC_CACHE_CHECK([for nacl compiled with a fast curve25519 implementation],
dnl Okay, now we need to figure out which one to actually use. Fall back
dnl to curve25519-donna.c
- if test x$tor_cv_can_use_curve25519_donna_c64 != xno; then
+ if test "x$tor_cv_can_use_curve25519_donna_c64" != "xno"; then
build_curve25519_donna_c64=yes
use_curve25519_donna=yes
- elif test x$tor_cv_can_use_curve25519_nacl = xyes; then
+ elif test "x$tor_cv_can_use_curve25519_nacl" = "xyes"; then
use_curve25519_nacl=yes
CURVE25519_LIBS=-lnacl
else
@@ -911,16 +928,18 @@ AC_CACHE_CHECK([for nacl compiled with a fast curve25519 implementation],
use_curve25519_donna=yes
fi
-if test x$use_curve25519_donna = xyes; then
+if test "x$use_curve25519_donna" = "xyes"; then
AC_DEFINE(USE_CURVE25519_DONNA, 1,
[Defined if we should use an internal curve25519_donna{,_c64} implementation])
fi
-if test x$use_curve25519_nacl = xyes; then
+if test "x$use_curve25519_nacl" = "xyes"; then
AC_DEFINE(USE_CURVE25519_NACL, 1,
[Defined if we should use a curve25519 from nacl])
fi
-AM_CONDITIONAL(BUILD_CURVE25519_DONNA, test x$build_curve25519_donna = xyes)
-AM_CONDITIONAL(BUILD_CURVE25519_DONNA_C64, test x$build_curve25519_donna_c64 = xyes)
+AM_CONDITIONAL(BUILD_CURVE25519_DONNA,
+ test "x$build_curve25519_donna" = "xyes")
+AM_CONDITIONAL(BUILD_CURVE25519_DONNA_C64,
+ test "x$build_curve25519_donna_c64" = "xyes")
AC_SUBST(CURVE25519_LIBS)
dnl Make sure to enable support for large off_t if available.
@@ -1060,20 +1079,20 @@ AC_CHECK_HEADERS(linux/netfilter_ipv6/ip6_tables.h,
#include <linux/if.h>
#endif])
-if test x$transparent = xtrue ; then
+if test "x$transparent" = "xtrue"; then
transparent_ok=0
- if test x$net_if_found = x1 && test x$net_pfvar_found = x1 ; then
+ if test "x$net_if_found" = "x1" && test "x$net_pfvar_found" = "x1"; then
transparent_ok=1
fi
- if test x$linux_netfilter_ipv4 = x1 ; then
+ if test "x$linux_netfilter_ipv4" = "x1"; then
transparent_ok=1
fi
- if test x$linux_netfilter_ipv6_ip6_tables = x1 ; then
+ if test "x$linux_netfilter_ipv6_ip6_tables" = "x1"; then
transparent_ok=1
fi
- if test x$transparent_ok = x1 ; then
+ if test "x$transparent_ok" = "x1"; then
AC_DEFINE(USE_TRANSPARENT, 1, "Define to enable transparent proxy support")
- case $host in
+ case "$host" in
*-*-openbsd* | *-*-bitrig*)
AC_DEFINE(OPENBSD, 1, "Define to handle pf on OpenBSD properly") ;;
esac
@@ -1176,7 +1195,7 @@ AC_CHECK_TYPES([rlim_t], , ,
])
AX_CHECK_SIGN([time_t],
- [ AC_DEFINE(TIME_T_IS_SIGNED, 1, [Define if time_t is signed]) ],
+ [ : ],
[ : ], [
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
@@ -1189,8 +1208,8 @@ AX_CHECK_SIGN([time_t],
#endif
])
-if test "$ax_cv_decl_time_t_signed" = no; then
- AC_MSG_WARN([You have an unsigned time_t; some things will probably break. Please tell the Tor developers about your interesting platform.])
+if test "$ax_cv_decl_time_t_signed" = "no"; then
+ AC_MSG_ERROR([You have an unsigned time_t; Tor does not support that. Please tell the Tor developers about your interesting platform.])
fi
AX_CHECK_SIGN([size_t],
@@ -1201,7 +1220,7 @@ AX_CHECK_SIGN([size_t],
#endif
])
-if test "$ax_cv_decl_size_t_signed" = yes; then
+if test "$ax_cv_decl_size_t_signed" = "yes"; then
AC_MSG_ERROR([You have a signed size_t; that's grossly nonconformant.])
fi
@@ -1236,12 +1255,12 @@ return memcmp(&p1,&p2,sizeof(char*))?1:0; }]])],
[tor_cv_null_is_zero=no],
[tor_cv_null_is_zero=cross])])
-if test "$tor_cv_null_is_zero" = cross ; then
+if test "$tor_cv_null_is_zero" = "cross"; then
# Cross-compiling; let's hope that the target isn't raving mad.
AC_MSG_NOTICE([Cross-compiling: we'll assume that NULL is represented as a sequence of 0-valued bytes.])
fi
-if test "$tor_cv_null_is_zero" != no; then
+if test "$tor_cv_null_is_zero" != "no"; then
AC_DEFINE([NULL_REP_IS_ZERO_BYTES], 1,
[Define to 1 iff memset(0) sets pointers to NULL])
fi
@@ -1260,12 +1279,12 @@ return memcmp(&d1,&d2,sizeof(d1))?1:0; }]])],
[tor_cv_dbl0_is_zero=no],
[tor_cv_dbl0_is_zero=cross])])
-if test "$tor_cv_dbl0_is_zero" = cross ; then
+if test "$tor_cv_dbl0_is_zero" = "cross"; then
# Cross-compiling; let's hope that the target isn't raving mad.
AC_MSG_NOTICE([Cross-compiling: we'll assume that 0.0 can be represented as a sequence of 0-valued bytes.])
fi
-if test "$tor_cv_dbl0_is_zero" != no; then
+if test "$tor_cv_dbl0_is_zero" != "no"; then
AC_DEFINE([DOUBLE_0_REP_IS_ZERO_BYTES], 1,
[Define to 1 iff memset(0) sets doubles to 0.0])
fi
@@ -1284,12 +1303,12 @@ int main () { return malloc(0)?0:1; }]])],
[tor_cv_malloc_zero_works=no],
[tor_cv_malloc_zero_works=cross])])
-if test "$tor_cv_malloc_zero_works" = cross; then
+if test "$tor_cv_malloc_zero_works" = "cross"; then
# Cross-compiling; let's hope that the target isn't raving mad.
AC_MSG_NOTICE([Cross-compiling: we'll assume that we need to check malloc() arguments for 0.])
fi
-if test "$tor_cv_malloc_zero_works" = yes; then
+if test "$tor_cv_malloc_zero_works" = "yes"; then
AC_DEFINE([MALLOC_ZERO_WORKS], 1,
[Define to 1 iff malloc(0) returns a pointer])
fi
@@ -1303,14 +1322,15 @@ return problem ? 1 : 0; }]])],
[tor_cv_twos_complement=no],
[tor_cv_twos_complement=cross])])
-if test "$tor_cv_twos_complement" = cross ; then
+if test "$tor_cv_twos_complement" = "cross"; then
# Cross-compiling; let's hope that the target isn't raving mad.
AC_MSG_NOTICE([Cross-compiling: we'll assume that negative integers are represented with two's complement.])
fi
-if test "$tor_cv_twos_complement" != no ; then
+if test "$tor_cv_twos_complement" != "no"; then
AC_DEFINE([USING_TWOS_COMPLEMENT], 1,
- [Define to 1 iff we represent negative integers with two's complement])
+ [Define to 1 iff we represent negative integers with
+ two's complement])
fi
# What does shifting a negative value do?
@@ -1321,12 +1341,12 @@ AC_CACHE_CHECK([whether right-shift on negative values does sign-extension], tor
[tor_cv_sign_extend=no],
[tor_cv_sign_extend=cross])])
-if test "$tor_cv_sign_extend" = cross ; then
+if test "$tor_cv_sign_extend" = "cross"; then
# Cross-compiling; let's hope that the target isn't raving mad.
AC_MSG_NOTICE([Cross-compiling: we'll assume that right-shifting negative integers causes sign-extension])
fi
-if test "$tor_cv_sign_extend" != no ; then
+if test "$tor_cv_sign_extend" != "no"; then
AC_DEFINE([RSHIFT_DOES_SIGN_EXTEND], 1,
[Define to 1 iff right-shifting a negative value performs sign-extension])
fi
@@ -1355,18 +1375,18 @@ AC_ARG_WITH(tcmalloc,
AS_HELP_STRING(--with-tcmalloc, [use tcmalloc memory allocation library]),
[ tcmalloc=yes ], [ tcmalloc=no ])
-if test x$tcmalloc = xyes ; then
+if test "x$tcmalloc" = "xyes"; then
LDFLAGS="-ltcmalloc $LDFLAGS"
fi
using_custom_malloc=no
-if test x$enable_openbsd_malloc = xyes ; then
+if test "x$enable_openbsd_malloc" = "xyes"; then
using_custom_malloc=yes
fi
-if test x$tcmalloc = xyes ; then
+if test "x$tcmalloc" = "xyes"; then
using_custom_malloc=yes
fi
-if test $using_custom_malloc = no ; then
+if test "$using_custom_malloc" = "no"; then
AC_CHECK_FUNCS(mallinfo)
fi
@@ -1483,20 +1503,20 @@ int main(int c, char **v) { char **t = environ; }])],
tor_cv_have_environ_declared=yes,
tor_cv_have_environ_declared=no))
-if test "$tor_cv_have_func_macro" = 'yes'; then
+if test "$tor_cv_have_func_macro" = "yes"; then
AC_DEFINE(HAVE_MACRO__func__, 1, [Defined if the compiler supports __func__])
fi
-if test "$tor_cv_have_FUNC_macro" = 'yes'; then
+if test "$tor_cv_have_FUNC_macro" = "yes"; then
AC_DEFINE(HAVE_MACRO__FUNC__, 1, [Defined if the compiler supports __FUNC__])
fi
-if test "$tor_cv_have_FUNCTION_macro" = 'yes'; then
+if test "$tor_cv_have_FUNCTION_macro" = "yes"; then
AC_DEFINE(HAVE_MACRO__FUNCTION__, 1,
[Defined if the compiler supports __FUNCTION__])
fi
-if test "$tor_cv_have_environ_declared" = 'yes'; then
+if test "$tor_cv_have_environ_declared" = "yes"; then
AC_DEFINE(HAVE_EXTERN_ENVIRON_DECLARED, 1,
[Defined if we have extern char **environ already declared])
fi
@@ -1532,7 +1552,7 @@ AC_SUBST(BINDIR)
LOCALSTATEDIR=`eval echo $localstatedir`
AC_SUBST(LOCALSTATEDIR)
-if test "$bwin32" = true; then
+if test "$bwin32" = "true"; then
# Test if the linker supports the --nxcompat and --dynamicbase options
# for Windows
save_LDFLAGS="$LDFLAGS"
@@ -1548,7 +1568,7 @@ fi
# Set CFLAGS _after_ all the above checks, since our warnings are stricter
# than autoconf's macros like.
-if test "$GCC" = yes; then
+if test "$GCC" = "yes"; then
# Disable GCC's strict aliasing checks. They are an hours-to-debug
# accident waiting to happen.
CFLAGS="$CFLAGS -Wall -fno-strict-aliasing"
@@ -1571,7 +1591,8 @@ esac
# Add some more warnings which we use in development but not in the
# released versions. (Some relevant gcc versions can't handle these.)
-if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xyes; then
+if test "x$enable_gcc_warnings" = "xyes" ||
+ test "x$enable_gcc_warnings_advisory" = "xyes"; then
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [
#if !defined(__GNUC__) || (__GNUC__ < 4)
@@ -1600,7 +1621,7 @@ if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xy
have_shorten64_flag=no)
CFLAGS="$save_CFLAGS"
- case $host in
+ case "$host" in
*-*-openbsd* | *-*-bitrig*)
# Some OpenBSD versions (like 4.8) have -Wsystem-headers by default.
# That's fine, except that the headers don't pass -Wredundant-decls.
@@ -1615,18 +1636,18 @@ if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xy
CFLAGS="$CFLAGS -Wwrite-strings -Wmissing-declarations -Wredundant-decls"
CFLAGS="$CFLAGS -Wnested-externs -Wbad-function-cast -Wswitch-enum"
- if test x$enable_gcc_warnings = xyes; then
+ if test "x$enable_gcc_warnings" = "xyes"; then
CFLAGS="$CFLAGS -Werror"
fi
# Disabled, so we can use mallinfo(): -Waggregate-return
- if test x$have_gcc4 = xyes ; then
+ if test "x$have_gcc4" = "xyes"; then
# These warnings break gcc 3.3.5 and work on gcc 4.0.2
CFLAGS="$CFLAGS -Winit-self -Wmissing-field-initializers -Wold-style-definition"
fi
- if test x$have_gcc42 = xyes ; then
+ if test "x$have_gcc42" = "xyes"; then
# These warnings break gcc 4.0.2 and work on gcc 4.2
# XXXX020 See if any of these work with earlier versions.
CFLAGS="$CFLAGS -Waddress -Wmissing-noreturn -Wstrict-overflow=1"
@@ -1634,24 +1655,24 @@ if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xy
# We used to use -Wstrict-overflow=5, but that breaks us heavily under 4.3.
fi
- if test x$have_gcc42 = xyes && test x$have_clang = xno; then
+ if test "x$have_gcc42" = "xyes" && test "x$have_clang" = "xno"; then
# These warnings break gcc 4.0.2 and clang, but work on gcc 4.2
CFLAGS="$CFLAGS -Wnormalized=id -Woverride-init"
fi
- if test x$have_gcc43 = xyes ; then
+ if test "x$have_gcc43" = "xyes"; then
# These warnings break gcc 4.2 and work on gcc 4.3
# XXXX020 See if any of these work with earlier versions.
CFLAGS="$CFLAGS -Wextra -Warray-bounds"
fi
- if test x$have_gcc46 = xyes ; then
+ if test "x$have_gcc46" = "xyes"; then
# This warning was added in gcc 4.3, but it appears to generate
# spurious warnings in gcc 4.4. I don't know if it works in 4.5.
CFLAGS="$CFLAGS -Wlogical-op"
fi
- if test x$have_shorten64_flag = xyes ; then
+ if test "x$have_shorten64_flag" = "xyes"; then
CFLAGS="$CFLAGS -Wshorten-64-to-32"
fi
@@ -1661,7 +1682,7 @@ if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xy
# CFLAGS="$CFLAGS -Winline"
fi
-if test "$enable_coverage" = yes && test "$have_clang" = "no"; then
+if test "$enable_coverage" = "yes" && test "$have_clang" = "no"; then
case "$host_os" in
darwin*)
AC_MSG_WARN([Tried to enable coverage on OSX without using the clang compiler. This might not work! If coverage fails, use CC=clang when configuring with --enable-profiling.])
@@ -1684,7 +1705,7 @@ AC_CONFIG_FILES([
scripts/maint/updateVersions.pl
])
-if test x$asciidoc = xtrue && test "$ASCIIDOC" = "none" ; then
+if test "x$asciidoc" = "xtrue" && test "$ASCIIDOC" = "none"; then
regular_mans="doc/tor doc/tor-gencert doc/tor-resolve doc/torify"
for file in $regular_mans ; do
if ! [[ -f "$srcdir/$file.1.in" ]] || ! [[ -f "$srcdir/$file.html.in" ]] ; then
diff --git a/contrib/win32build/tor-mingw.nsi.in b/contrib/win32build/tor-mingw.nsi.in
index 2da4210499..9a4de0ab08 100644
--- a/contrib/win32build/tor-mingw.nsi.in
+++ b/contrib/win32build/tor-mingw.nsi.in
@@ -8,7 +8,7 @@
!include "LogicLib.nsh"
!include "FileFunc.nsh"
!insertmacro GetParameters
-!define VERSION "0.2.8.0-alpha-dev"
+!define VERSION "0.2.8.1-alpha-dev"
!define INSTALLER "tor-${VERSION}-win32.exe"
!define WEBSITE "https://www.torproject.org/"
!define LICENSE "LICENSE"
diff --git a/doc/HACKING/CodingStandards.md b/doc/HACKING/CodingStandards.md
index bec076527f..4aafa5ddd4 100644
--- a/doc/HACKING/CodingStandards.md
+++ b/doc/HACKING/CodingStandards.md
@@ -80,6 +80,11 @@ When we go to make a release, we will concatenate all the entries
in changes to make a draft changelog, and clear the directory. We'll
then edit the draft changelog into a nice readable format.
+To make sure that stuff is in the right format, we use
+scripts/maint/lintChanges.py to check the changes files for
+(superficial) validity. You can run this script on your own changes
+files!
+
What needs a changes file?
* A not-exhaustive list: Anything that might change user-visible
diff --git a/doc/HACKING/WritingTests.md b/doc/HACKING/WritingTests.md
index 42fba2d71a..4e98d3d645 100644
--- a/doc/HACKING/WritingTests.md
+++ b/doc/HACKING/WritingTests.md
@@ -206,6 +206,48 @@ For example, `crypto_curve25519.h` contains:
The `crypto_curve25519.c` file and the `test_crypto.c` file both define
`CRYPTO_CURVE25519_PRIVATE`, so they can see this declaration.
+### STOP! Does this test really test?
+
+When writing tests, it's not enough to just generate coverage on all the
+lines of the code that you're testing: It's important to make sure that
+the test _really tests_ the code.
+
+For example, here is a _bad_ test for the unlink() function (which is
+supposed to remove a file).
+
+ static void
+ test_unlink_badly(void *arg)
+ {
+ (void) arg;
+ int r;
+
+ const char *fname = get_fname("tmpfile");
+
+ /* If the file isn't there, unlink returns -1 and sets ENOENT */
+ r = unlink(fname);
+ tt_int_op(n, OP_EQ, -1);
+ tt_int_op(errno, OP_EQ, ENOENT);
+
+ /* If the file DOES exist, unlink returns 0. */
+ write_str_to_file(fname, "hello world", 0);
+ r = unlink(fnme);
+ tt_int_op(r, OP_EQ, 0);
+
+ done:
+ tor_free(contents);
+ }
+
+
+This test might get very high coverage on unlink(). So why is it a
+bad test? Because it doesn't check that unlink() *actually removes the
+named file*!
+
+Remember, the purpose of a test is to succeed if the code does what
+it's supposed to do, and fail otherwise. Try to design your tests so
+that they check for the code's intended and documented functionality
+as much as possible.
+
+
### Mock functions for testing in isolation
Often we want to test that a function works right, but the function to
diff --git a/doc/contrib/tor-rpm-creation.txt b/doc/contrib/tor-rpm-creation.txt
index a03891e2b9..9c4e05764e 100644
--- a/doc/contrib/tor-rpm-creation.txt
+++ b/doc/contrib/tor-rpm-creation.txt
@@ -42,7 +42,7 @@ Here's a workaround:
Before even building the source RPM, install fedora-packager and instruct
the build system to use rpmbuild-md5 like this:
-yum install fedora-packager
+dnf install fedora-packager
export RPMBUILD=rpmbuild-md5
Then proceed as usual to create the source RPM and binary RPMs:
diff --git a/doc/tor.1.txt b/doc/tor.1.txt
index d08366aa55..d6a68523df 100644
--- a/doc/tor.1.txt
+++ b/doc/tor.1.txt
@@ -390,6 +390,7 @@ GENERAL OPTIONS
authorities.
By default, the directory authorities are also FallbackDirs. Specifying a
FallbackDir replaces Tor's default hard-coded FallbackDirs (if any).
+ (See the **DirAuthority** entry for an explanation of each flag.)
[[UseDefaultFallbackDirs]] **UseDefaultFallbackDirs** **0**|**1**::
Use Tor's default hard-coded FallbackDirs (if any). (When a
@@ -414,6 +415,10 @@ GENERAL OPTIONS
authority is listening for IPv6 connections on the indicated IPv6 address
and OR Port. +
+
+ Tor will contact the authority at __address__:__port__ (the DirPort) to
+ download directory documents. If an IPv6 address is supplied, Tor will
+ also download directory documents at the IPv6 address on the DirPort. +
+ +
If no **DirAuthority** line is given, Tor will use the default directory
authorities. NOTE: this option is intended for setting up a private Tor
network with its own directory authorities. If you use it, you will be
@@ -1506,17 +1511,33 @@ The following options are useful only for clients (that is, if
If no defaults are available there, these options default to 20, .80,
.60, and 100, respectively.
+[[ClientUseIPv4]] **ClientUseIPv4** **0**|**1**::
+ If this option is set to 0, Tor will avoid connecting to directory servers
+ and entry nodes over IPv4. Note that clients with an IPv4
+ address in a **Bridge**, proxy, or pluggable transport line will try
+ connecting over IPv4 even if **ClientUseIPv4** is set to 0. (Default: 1)
+
[[ClientUseIPv6]] **ClientUseIPv6** **0**|**1**::
- If this option is set to 1, Tor might connect to entry nodes over
- IPv6. Note that clients configured with an IPv6 address in a
- **Bridge** line will try connecting over IPv6 even if
- **ClientUseIPv6** is set to 0. (Default: 0)
+ If this option is set to 1, Tor might connect to directory servers or
+ entry nodes over IPv6. Note that clients configured with an IPv6 address
+ in a **Bridge**, proxy, or pluggable transport line will try connecting
+ over IPv6 even if **ClientUseIPv6** is set to 0. (Default: 0)
+
+[[ClientPreferIPv6DirPort]] **ClientPreferIPv6DirPort** **0**|**1**|**auto**::
+ If this option is set to 1, Tor prefers a directory port with an IPv6
+ address over one with IPv4, for direct connections, if a given directory
+ server has both. (Tor also prefers an IPv6 DirPort if IPv4Client is set to
+ 0.) If this option is set to auto, clients prefer IPv4. Other things may
+ influence the choice. This option breaks a tie to the favor of IPv6.
+ (Default: auto)
-[[ClientPreferIPv6ORPort]] **ClientPreferIPv6ORPort** **0**|**1**::
+[[ClientPreferIPv6ORPort]] **ClientPreferIPv6ORPort** **0**|**1**|**auto**::
If this option is set to 1, Tor prefers an OR port with an IPv6
- address over one with IPv4 if a given entry node has both. Other
- things may influence the choice. This option breaks a tie to the
- favor of IPv6. (Default: 0)
+ address over one with IPv4 if a given entry node has both. (Tor also
+ prefers an IPv6 ORPort if IPv4Client is set to 0.) If this option is set
+ to auto, Tor bridge clients prefer the configured bridge address, and
+ other clients prefer IPv4. Other things may influence the choice. This
+ option breaks a tie to the favor of IPv6. (Default: auto)
[[PathsNeededToBuildCircuits]] **PathsNeededToBuildCircuits** __NUM__::
Tor clients don't build circuits for user traffic until they know
@@ -2461,6 +2482,11 @@ The following options are used for running a testing Tor network.
fallback directory mirrors before giving up. Changing this requires that
**TestingTorNetwork** is set. (Default: 7)
+[[TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries]] **TestingClientBootstrapConsensusAuthorityOnlyMaxDownloadTries** __NUM__::
+ Try this many times to download a consensus while bootstrapping using
+ authorities before giving up. Changing this requires that
+ **TestingTorNetwork** is set. (Default: 4)
+
[[TestingClientBootstrapConsensusMaxInProgressTries]] **TestingClientBootstrapConsensusMaxInProgressTries** __NUM__::
Try this many simultaneous connections to download a consensus before
waiting for one to complete, timeout, or error out. Changing this
diff --git a/scripts/maint/analyze_callgraph.py b/scripts/maint/analyze_callgraph.py
index b28460489a..8ce5827f07 100755
--- a/scripts/maint/analyze_callgraph.py
+++ b/scripts/maint/analyze_callgraph.py
@@ -9,19 +9,28 @@ import os
class Parser:
def __init__(self):
self.calls = {}
+ self.definedIn = {}
def enter_func(self, name):
- if self.infunc and not self.extern:
+ if self.infunc and not self.extern and self.calledfns:
+ if self.infunc in self.definedIn:
+ #print "{}: {} or {}?".format(
+ # self.infunc, self.definedIn[self.infunc], self.module)
+ self.definedIn[self.infunc] = 'nil'
+ else:
+ self.definedIn[self.infunc] = self.module
self.calls.setdefault(self.infunc, set()).update( self.calledfns )
self.calledfns = set()
self.infunc = name
self.extern = False
- def parse_callgraph_file(self, inp):
+ def parse_callgraph_file(self, inp, module):
self.infunc = None
self.extern = False
self.calledfns = set()
+ self.module = module
+
for line in inp:
m = re.match(r"Call graph node for function: '([^']+)'", line)
if m:
@@ -189,13 +198,27 @@ def connection_bottlenecks(callgraph):
if __name__ == '__main__':
p = Parser()
for fname in sys.argv[1:]:
+ modname = re.sub(r'.*/', '', fname).replace('.callgraph', '.c')
with open(fname, 'r') as f:
- p.parse_callgraph_file(f)
+ p.parse_callgraph_file(f, modname)
- sys.stdout.flush
+ sys.stdout.flush()
print "Building callgraph"
callgraph = p.extract_callgraph()
+ inModule = p.definedIn
+
+ print "Deriving module callgraph"
+ modCallgraph = {}
+ for fn in callgraph:
+ fnMod = inModule[fn]
+ for called in callgraph[fn]:
+ try:
+ calledMod = inModule[called]
+ except KeyError:
+ continue
+ modCallgraph.setdefault(fnMod, set()).add(calledMod)
+ del modCallgraph['nil']
print "Finding strongly connected components"
sccs = strongly_connected_components(callgraph)
@@ -206,11 +229,28 @@ if __name__ == '__main__':
print "Finding bottlenecks..."
bottlenecks = connection_bottlenecks(callgraph)
+ print "Finding module SCCs"
+ modSCCS = strongly_connected_components(modCallgraph)
+
+ print "Finding module TC"
+ modTC = transitive_closure(modCallgraph)
+
+ print "Finding module bottlenecks"
+ modB = connection_bottlenecks(modCallgraph)
+
data = {
'callgraph' : callgraph,
'sccs' : sccs,
'closure' : closure,
- 'bottlenecks' : bottlenecks }
+ 'bottlenecks' : bottlenecks,
+ 'modules' : p.definedIn,
+ 'modItems' : {
+ 'callgraph' : modCallgraph,
+ 'sccs' : modSCCS,
+ 'closure' : modTC,
+ 'bottlenecks' : modB,
+ }
+ }
with open('callgraph.pkl', 'w') as f:
cPickle.dump(data, f)
diff --git a/scripts/maint/display_callgraph.py b/scripts/maint/display_callgraph.py
index 211bfda28d..c9001c6d96 100755
--- a/scripts/maint/display_callgraph.py
+++ b/scripts/maint/display_callgraph.py
@@ -4,6 +4,8 @@ import cPickle
data = cPickle.load(open("callgraph.pkl"))
+# data = data['modItems']
+
callgraph = data['callgraph']
closure = data['closure']
sccs = data['sccs']
diff --git a/scripts/maint/fallback.whitelist b/scripts/maint/fallback.whitelist
index d5ddcd2e82..6edb368345 100644
--- a/scripts/maint/fallback.whitelist
+++ b/scripts/maint/fallback.whitelist
@@ -37,7 +37,6 @@
# https://lists.torproject.org/pipermail/tor-relays/2016-January/008555.html
62.210.124.124:9030 orport=9001 id=86E78DD3720C78DA8673182EF96C54B162CD660C ipv6=[2001:bc8:3f23:100::1]:9001
62.210.124.124:9130 orport=9101 id=2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E ipv6=[2001:bc8:3f23:100::1]:9101
-# DirPort TBC in next consensus
212.47.237.95:9030 orport=9001 id=3F5D8A879C58961BB45A3D26AC41B543B40236D6
212.47.237.95:9130 orport=9101 id=6FB38EB22E57EF7ED5EF00238F6A48E553735D88
@@ -76,7 +75,8 @@
81.7.14.246:80 orport=443 id=CE75BF0972ADD52AF8807602374E495C815DB304 ipv6=[2a02:180:a:51::dead]:443
# https://lists.torproject.org/pipermail/tor-relays/2015-December/008384.html
-149.202.98.161:80 orport=443 id=54660C671B47E6986B465B80444414BD19E5A34B ipv6=[2001:41d0:8:4528::161]:443
+# Sent additional email to teor with fingerprint change
+149.202.98.161:80 orport=443 id=FC64CD763F8C1A319BFBBF62551684F4E1E42332 ipv6=[2001:41d0:8:4528::161]:443
193.111.136.162:80 orport=443 id=C79552275DFCD486B942510EF663ED36ACA1A84B ipv6=[2001:4ba0:cafe:10d0::1]:443
# https://lists.torproject.org/pipermail/tor-relays/2015-December/008416.html
diff --git a/scripts/maint/lintChanges.py b/scripts/maint/lintChanges.py
index c2fc01d2bf..a73110dab1 100755
--- a/scripts/maint/lintChanges.py
+++ b/scripts/maint/lintChanges.py
@@ -7,6 +7,20 @@ import re
import os
+KNOWN_GROUPS=set([
+ "Minor bugfix",
+ "Minor bugfixes",
+ "Major bugfix",
+ "Major bugfixes",
+ "Minor feature",
+ "Minor features",
+ "Major feature",
+ "Major features",
+ "Testing",
+ "Documentation",
+ "Code simplification and refactoring",
+ "Removed features"])
+
def lintfile(fname):
have_warned = []
@@ -31,8 +45,16 @@ def lintfile(fname):
lines = contents.split("\n")
isBug = ("bug" in lines[0] or "fix" in lines[0])
- if not re.match(r'^[ ]{2}o (.*)', contents):
+ m = re.match(r'^[ ]{2}o ([^\(:]*)([^:]*):', contents)
+ if not m:
warn("header not in format expected")
+ elif m.group(1).strip() not in KNOWN_GROUPS:
+ warn("Weird header: %r"%m.group(1))
+ elif ( ("bugfix" in m.group(1) or "feature" in m.group(1)) and
+ ("Removed" not in m.group(1)) and
+ '(' not in m.group(2)):
+ warn("Missing subcategory on %s"%m.group(1))
+
contents = " ".join(contents.split())
diff --git a/scripts/maint/sortChanges.py b/scripts/maint/sortChanges.py
index 7e25cefd53..d6ec0e269d 100755
--- a/scripts/maint/sortChanges.py
+++ b/scripts/maint/sortChanges.py
@@ -16,10 +16,36 @@ def fetch(fn):
s = "%s\n" % s.rstrip()
return s
+CSR='Code simplification and refactoring'
+
+REPLACEMENTS = {
+ # plurals
+ 'Minor bugfix' : 'Minor bugfixes',
+ 'Major bugfix' : 'Major bugfixes',
+ 'Minor feature' : 'Minor features',
+ 'Major feature' : 'Major features',
+ 'Removed feature' : 'Removed features',
+ 'Code simplification and refactorings' : CSR,
+ 'Code simplifications and refactoring' : CSR,
+ 'Code simplifications and refactorings' : CSR,
+
+ # wrong words
+ 'Minor fix' : 'Minor bugfixes',
+ 'Major fix' : 'Major bugfixes',
+ 'Minor fixes' : 'Minor bugfixes',
+ 'Major fixes' : 'Major bugfixes',
+ 'Minor enhancement' : 'Minor features',
+ 'Minor enhancements' : 'Minor features',
+ 'Major enhancement' : 'Major features',
+ 'Major enhancements' : 'Major features',
+}
+
def score(s,fname=None):
m = re.match(r'^ +o ([^\n]*)\n(.*)', s, re.M|re.S)
if not m:
print >>sys.stderr, "Can't score %r from %s"%(s,fname)
+ heading = m.group(1)
+ heading = REPLACEMENTS.get(heading, heading)
lw = m.group(1).lower()
if lw.startswith("major feature"):
score = 0
@@ -36,7 +62,7 @@ def score(s,fname=None):
else:
score = 100
- return (score, lw, m.group(1), m.group(2))
+ return (score, lw, heading, m.group(2))
def splitChanges(s):
this_entry = []
diff --git a/scripts/maint/updateCopyright.pl b/scripts/maint/updateCopyright.pl
index ec82616a19..8bd6a18210 100755
--- a/scripts/maint/updateCopyright.pl
+++ b/scripts/maint/updateCopyright.pl
@@ -1,7 +1,7 @@
#!/usr/bin/perl -i -w -p
-$NEWYEAR=2015;
+$NEWYEAR=2016;
-s/Copyright(.*) (201[^5]), The Tor Project/Copyright$1 $2-${NEWYEAR}, The Tor Project/;
+s/Copyright(.*) (201[^6]), The Tor Project/Copyright$1 $2-${NEWYEAR}, The Tor Project/;
s/Copyright(.*)-(20..), The Tor Project/Copyright$1-${NEWYEAR}, The Tor Project/;
diff --git a/scripts/maint/updateFallbackDirs.py b/scripts/maint/updateFallbackDirs.py
index fd7d350c2e..d110335de4 100755
--- a/scripts/maint/updateFallbackDirs.py
+++ b/scripts/maint/updateFallbackDirs.py
@@ -26,11 +26,17 @@ import dateutil.parser
# bson_lazy provides bson
#from bson import json_util
+from stem.descriptor.remote import DescriptorDownloader
+
import logging
logging.basicConfig(level=logging.DEBUG)
## Top-Level Configuration
+# Perform DirPort checks over IPv6?
+# If you know IPv6 works for you, set this to True
+PERFORM_IPV6_DIRPORT_CHECKS = False
+
# Output all candidate fallbacks, or only output selected fallbacks?
OUTPUT_CANDIDATES = False
@@ -73,7 +79,11 @@ MAX_LIST_FILE_SIZE = 1024 * 1024
## Eligibility Settings
-ADDRESS_AND_PORT_STABLE_DAYS = 120
+# Reduced due to a bug in tor where a relay submits a 0 DirPort when restarted
+# This causes OnionOO to (correctly) reset its stability timer
+# This issue is fixed in 0.2.7.7 and master.
+# Until then, the CUTOFFs below ensure a decent level of stability.
+ADDRESS_AND_PORT_STABLE_DAYS = 7
# What time-weighted-fraction of these flags must FallbackDirs
# Equal or Exceed?
CUTOFF_RUNNING = .95
@@ -84,6 +94,16 @@ CUTOFF_GUARD = .95
# .00 means no bad exits
PERMITTED_BADEXIT = .00
+# Clients will time out after 30 seconds trying to download a consensus
+# So allow fallback directories half that to deliver a consensus
+# The exact download times might change based on the network connection
+# running this script, but only by a few seconds
+# There is also about a second of python overhead
+CONSENSUS_DOWNLOAD_SPEED_MAX = 15.0
+# If the relay fails a consensus check, retry the download
+# This avoids delisting a relay due to transient network conditions
+CONSENSUS_DOWNLOAD_RETRY = True
+
## List Length Limits
# The target for these parameters is 20% of the guards in the network
@@ -93,7 +113,7 @@ FALLBACK_PROPORTION_OF_GUARDS = None if OUTPUT_CANDIDATES else 0.2
# Limit the number of fallbacks (eliminating lowest by weight)
MAX_FALLBACK_COUNT = None if OUTPUT_CANDIDATES else 500
# Emit a C #error if the number of fallbacks is below
-MIN_FALLBACK_COUNT = 100
+MIN_FALLBACK_COUNT = 50
## Fallback Weight Settings
@@ -344,6 +364,7 @@ def onionoo_fetch(what, **kwargs):
# Check for freshness
if last_mod < required_freshness:
if last_mod_date is not None:
+ # This check sometimes fails transiently, retry the script if it does
date_message = "Outdated data: last updated " + last_mod_date
else:
date_message = "No data: never downloaded "
@@ -390,7 +411,7 @@ def fetch(what, **kwargs):
## Fallback Candidate Class
class Candidate(object):
- CUTOFF_ADDRESS_AND_PORT_STABLE = (datetime.datetime.now()
+ CUTOFF_ADDRESS_AND_PORT_STABLE = (datetime.datetime.utcnow()
- datetime.timedelta(ADDRESS_AND_PORT_STABLE_DAYS))
def __init__(self, details):
@@ -583,7 +604,7 @@ class Candidate(object):
periods = history.keys()
periods.sort(key = lambda x: history[x]['interval'])
- now = datetime.datetime.now()
+ now = datetime.datetime.utcnow()
newest = now
for p in periods:
h = history[p]
@@ -802,7 +823,57 @@ class Candidate(object):
def original_fallback_weight_fraction(self, total_weight):
return float(self.original_consensus_weight()) / total_weight
- def fallbackdir_line(self, total_weight, original_total_weight):
+ @staticmethod
+ def fallback_consensus_dl_speed(dirip, dirport, nickname, max_time):
+ downloader = DescriptorDownloader()
+ start = datetime.datetime.utcnow()
+ # there appears to be about 1 second of overhead when comparing stem's
+ # internal trace time and the elapsed time calculated here
+ downloader.get_consensus(endpoints = [(dirip, dirport)]).run()
+ elapsed = (datetime.datetime.utcnow() - start).total_seconds()
+ if elapsed > max_time:
+ status = 'too slow'
+ else:
+ status = 'ok'
+ logging.debug(('Consensus download: %0.2fs %s from %s (%s:%d), '
+ + 'max download time %0.2fs.') % (elapsed, status,
+ nickname, dirip, dirport,
+ max_time))
+ return elapsed
+
+ def fallback_consensus_dl_check(self):
+ ipv4_speed = Candidate.fallback_consensus_dl_speed(self.dirip,
+ self.dirport,
+ self._data['nickname'],
+ CONSENSUS_DOWNLOAD_SPEED_MAX)
+ if self.ipv6addr is not None and PERFORM_IPV6_DIRPORT_CHECKS:
+ # Clients assume the IPv6 DirPort is the same as the IPv4 DirPort
+ ipv6_speed = Candidate.fallback_consensus_dl_speed(self.ipv6addr,
+ self.dirport,
+ self._data['nickname'],
+ CONSENSUS_DOWNLOAD_SPEED_MAX)
+ else:
+ ipv6_speed = None
+ # Now retry the relay if it took too long the first time
+ if (ipv4_speed > CONSENSUS_DOWNLOAD_SPEED_MAX
+ and CONSENSUS_DOWNLOAD_RETRY):
+ ipv4_speed = Candidate.fallback_consensus_dl_speed(self.dirip,
+ self.dirport,
+ self._data['nickname'],
+ CONSENSUS_DOWNLOAD_SPEED_MAX)
+ if (self.ipv6addr is not None and PERFORM_IPV6_DIRPORT_CHECKS
+ and ipv6_speed > CONSENSUS_DOWNLOAD_SPEED_MAX
+ and CONSENSUS_DOWNLOAD_RETRY):
+ ipv6_speed = Candidate.fallback_consensus_dl_speed(self.ipv6addr,
+ self.dirport,
+ self._data['nickname'],
+ CONSENSUS_DOWNLOAD_SPEED_MAX)
+
+ return (ipv4_speed <= CONSENSUS_DOWNLOAD_SPEED_MAX
+ and (not PERFORM_IPV6_DIRPORT_CHECKS
+ or ipv6_speed <= CONSENSUS_DOWNLOAD_SPEED_MAX))
+
+ def fallbackdir_line(self, total_weight, original_total_weight, dl_speed_ok):
# /*
# nickname
# flags
@@ -813,6 +884,7 @@ class Candidate(object):
# "address:dirport orport=port id=fingerprint"
# "[ipv6=addr:orport]"
# "weight=num",
+ #
# Multiline C comment
s = '/*'
s += '\n'
@@ -839,6 +911,10 @@ class Candidate(object):
s += '\n'
s += '*/'
s += '\n'
+ # Comment out the fallback directory entry if it's too slow
+ # See the debug output for which address and port is failing
+ if not dl_speed_ok:
+ s += '/* Consensus download failed or was too slow:\n'
# Multi-Line C string with trailing comma (part of a string list)
# This makes it easier to diff the file, and remove IPv6 lines using grep
# Integers don't need escaping
@@ -852,6 +928,9 @@ class Candidate(object):
cleanse_c_string(self.ipv6addr), cleanse_c_string(self.ipv6orport))
s += '\n'
s += '" weight=%d",'%(weight)
+ if not dl_speed_ok:
+ s += '\n'
+ s += '*/'
return s
## Fallback Candidate List Class
@@ -1249,7 +1328,8 @@ def list_fallbacks():
print describe_fetch_source(s)
for x in candidates.fallbacks[:max_count]:
- print x.fallbackdir_line(total_weight, pre_clamp_total_weight)
+ dl_speed_ok = x.fallback_consensus_dl_check()
+ print x.fallbackdir_line(total_weight, pre_clamp_total_weight, dl_speed_ok)
#print json.dumps(candidates[x]._data, sort_keys=True, indent=4,
# separators=(',', ': '), default=json_util.default)
diff --git a/src/common/address.c b/src/common/address.c
index 86c32efdd9..8f1ce9dab7 100644
--- a/src/common/address.c
+++ b/src/common/address.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -148,7 +148,9 @@ tor_addr_make_af_unix(tor_addr_t *a)
}
/** Set the tor_addr_t in <b>a</b> to contain the socket address contained in
- * <b>sa</b>. Return 0 on success and -1 on failure. */
+ * <b>sa</b>. IF <b>port_out</b> is non-NULL and <b>sa</b> contains a port,
+ * set *<b>port_out</b> to that port. Return 0 on success and -1 on
+ * failure. */
int
tor_addr_from_sockaddr(tor_addr_t *a, const struct sockaddr *sa,
uint16_t *port_out)
@@ -908,6 +910,59 @@ tor_addr_is_loopback(const tor_addr_t *addr)
}
}
+/* Is addr valid?
+ * Checks that addr is non-NULL and not tor_addr_is_null().
+ * If for_listening is true, IPv4 addr 0.0.0.0 is allowed.
+ * It means "bind to all addresses on the local machine". */
+int
+tor_addr_is_valid(const tor_addr_t *addr, int for_listening)
+{
+ /* NULL addresses are invalid regardless of for_listening */
+ if (addr == NULL) {
+ return 0;
+ }
+
+ /* Only allow IPv4 0.0.0.0 for_listening. */
+ if (for_listening && addr->family == AF_INET
+ && tor_addr_to_ipv4h(addr) == 0) {
+ return 1;
+ }
+
+ /* Otherwise, the address is valid if it's not tor_addr_is_null() */
+ return !tor_addr_is_null(addr);
+}
+
+/* Is the network-order IPv4 address v4n_addr valid?
+ * Checks that addr is not zero.
+ * Except if for_listening is true, where IPv4 addr 0.0.0.0 is allowed. */
+int
+tor_addr_is_valid_ipv4n(uint32_t v4n_addr, int for_listening)
+{
+ /* Any IPv4 address is valid with for_listening. */
+ if (for_listening) {
+ return 1;
+ }
+
+ /* Otherwise, zero addresses are invalid. */
+ return v4n_addr != 0;
+}
+
+/* Is port valid?
+ * Checks that port is not 0.
+ * Except if for_listening is true, where port 0 is allowed.
+ * It means "OS chooses a port". */
+int
+tor_port_is_valid(uint16_t port, int for_listening)
+{
+ /* Any port value is valid with for_listening. */
+ if (for_listening) {
+ return 1;
+ }
+
+ /* Otherwise, zero ports are invalid. */
+ return port != 0;
+}
+
/** Set <b>dest</b> to equal the IPv4 address in <b>v4addr</b> (given in
* network order). */
void
diff --git a/src/common/address.h b/src/common/address.h
index 76090136d8..53712bde02 100644
--- a/src/common/address.h
+++ b/src/common/address.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -267,6 +267,27 @@ void tor_addr_from_in6(tor_addr_t *dest, const struct in6_addr *in6);
int tor_addr_is_null(const tor_addr_t *addr);
int tor_addr_is_loopback(const tor_addr_t *addr);
+int tor_addr_is_valid(const tor_addr_t *addr, int for_listening);
+int tor_addr_is_valid_ipv4n(uint32_t v4n_addr, int for_listening);
+#define tor_addr_is_valid_ipv4h(v4h_addr, for_listening) \
+ tor_addr_is_valid_ipv4n(htonl(v4h_addr), (for_listening))
+int tor_port_is_valid(uint16_t port, int for_listening);
+/* Are addr and port both valid? */
+#define tor_addr_port_is_valid(addr, port, for_listening) \
+ (tor_addr_is_valid((addr), (for_listening)) && \
+ tor_port_is_valid((port), (for_listening)))
+/* Are ap->addr and ap->port both valid? */
+#define tor_addr_port_is_valid_ap(ap, for_listening) \
+ tor_addr_port_is_valid(&(ap)->addr, (ap)->port, (for_listening))
+/* Are the network-order v4addr and port both valid? */
+#define tor_addr_port_is_valid_ipv4n(v4n_addr, port, for_listening) \
+ (tor_addr_is_valid_ipv4n((v4n_addr), (for_listening)) && \
+ tor_port_is_valid((port), (for_listening)))
+/* Are the host-order v4addr and port both valid? */
+#define tor_addr_port_is_valid_ipv4h(v4h_addr, port, for_listening) \
+ (tor_addr_is_valid_ipv4h((v4h_addr), (for_listening)) && \
+ tor_port_is_valid((port), (for_listening)))
+
int tor_addr_port_split(int severity, const char *addrport,
char **address_out, uint16_t *port_out);
diff --git a/src/common/aes.c b/src/common/aes.c
index 7b6cc39b20..c8a17c837f 100644
--- a/src/common/aes.c
+++ b/src/common/aes.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -81,47 +81,34 @@
#ifdef USE_EVP_AES_CTR
-struct aes_cnt_cipher {
- EVP_CIPHER_CTX evp;
-};
+/* We don't actually define the struct here. */
aes_cnt_cipher_t *
aes_new_cipher(const char *key, const char *iv)
{
- aes_cnt_cipher_t *cipher;
- cipher = tor_malloc_zero(sizeof(aes_cnt_cipher_t));
- EVP_EncryptInit(&cipher->evp, EVP_aes_128_ctr(),
+ EVP_CIPHER_CTX *cipher = EVP_CIPHER_CTX_new();
+ EVP_EncryptInit(cipher, EVP_aes_128_ctr(),
(const unsigned char*)key, (const unsigned char *)iv);
- return cipher;
+ return (aes_cnt_cipher_t *) cipher;
}
void
-aes_cipher_free(aes_cnt_cipher_t *cipher)
+aes_cipher_free(aes_cnt_cipher_t *cipher_)
{
- if (!cipher)
+ if (!cipher_)
return;
- EVP_CIPHER_CTX_cleanup(&cipher->evp);
- memwipe(cipher, 0, sizeof(aes_cnt_cipher_t));
- tor_free(cipher);
-}
-void
-aes_crypt(aes_cnt_cipher_t *cipher, const char *input, size_t len,
- char *output)
-{
- int outl;
-
- tor_assert(len < INT_MAX);
-
- EVP_EncryptUpdate(&cipher->evp, (unsigned char*)output,
- &outl, (const unsigned char *)input, (int)len);
+ EVP_CIPHER_CTX *cipher = (EVP_CIPHER_CTX *) cipher_;
+ EVP_CIPHER_CTX_cleanup(cipher);
+ EVP_CIPHER_CTX_free(cipher);
}
void
-aes_crypt_inplace(aes_cnt_cipher_t *cipher, char *data, size_t len)
+aes_crypt_inplace(aes_cnt_cipher_t *cipher_, char *data, size_t len)
{
int outl;
+ EVP_CIPHER_CTX *cipher = (EVP_CIPHER_CTX *) cipher_;
tor_assert(len < INT_MAX);
- EVP_EncryptUpdate(&cipher->evp, (unsigned char*)data,
+ EVP_EncryptUpdate(cipher, (unsigned char*)data,
&outl, (unsigned char*)data, (int)len);
}
int
@@ -182,10 +169,6 @@ struct aes_cnt_cipher {
* we're testing it or because we have hardware acceleration configured */
static int should_use_EVP = 0;
-/** True iff we have tested the counter-mode implementation and found that it
- * doesn't have the counter-mode bug from OpenSSL 1.0.0. */
-static int should_use_openssl_CTR = 0;
-
/** Check whether we should use the EVP interface for AES. If <b>force_val</b>
* is nonnegative, we use use EVP iff it is true. Otherwise, we use EVP
* if there is an engine enabled for aes-ecb. */
@@ -250,13 +233,9 @@ evaluate_ctr_for_aes(void)
if (fast_memneq(output, encrypt_zero, 16)) {
/* Counter mode is buggy */
- log_notice(LD_CRYPTO, "This OpenSSL has a buggy version of counter mode; "
- "not using it.");
- } else {
- /* Counter mode is okay */
- log_info(LD_CRYPTO, "This OpenSSL has a good implementation of counter "
- "mode; using it.");
- should_use_openssl_CTR = 1;
+ log_err(LD_CRYPTO, "This OpenSSL has a buggy version of counter mode; "
+ "quitting tor.");
+ exit(1);
}
return 0;
}
@@ -267,29 +246,6 @@ evaluate_ctr_for_aes(void)
#define COUNTER(c, n) ((c)->counter ## n)
#endif
-/**
- * Helper function: set <b>cipher</b>'s internal buffer to the encrypted
- * value of the current counter.
- */
-static inline void
-aes_fill_buf_(aes_cnt_cipher_t *cipher)
-{
- /* We don't currently use OpenSSL's counter mode implementation because:
- * 1) some versions have known bugs
- * 2) its attitude towards IVs is not our own
- * 3) changing the counter position was not trivial, last time I looked.
- * None of these issues are insurmountable in principle.
- */
-
- if (cipher->using_evp) {
- int outl=16, inl=16;
- EVP_EncryptUpdate(&cipher->key.evp, cipher->buf, &outl,
- cipher->ctr_buf.buf, inl);
- } else {
- AES_encrypt(cipher->ctr_buf.buf, cipher->buf, &cipher->key.aes);
- }
-}
-
static void aes_set_key(aes_cnt_cipher_t *cipher, const char *key,
int key_bits);
static void aes_set_iv(aes_cnt_cipher_t *cipher, const char *iv);
@@ -342,10 +298,7 @@ aes_set_key(aes_cnt_cipher_t *cipher, const char *key, int key_bits)
cipher->pos = 0;
- if (should_use_openssl_CTR)
- memset(cipher->buf, 0, sizeof(cipher->buf));
- else
- aes_fill_buf_(cipher);
+ memset(cipher->buf, 0, sizeof(cipher->buf));
}
/** Release storage held by <b>cipher</b>
@@ -381,63 +334,6 @@ evp_block128_fn(const uint8_t in[16],
EVP_EncryptUpdate(ctx, out, &outl, in, inl);
}
-/** Encrypt <b>len</b> bytes from <b>input</b>, storing the result in
- * <b>output</b>. Uses the key in <b>cipher</b>, and advances the counter
- * by <b>len</b> bytes as it encrypts.
- */
-void
-aes_crypt(aes_cnt_cipher_t *cipher, const char *input, size_t len,
- char *output)
-{
- if (should_use_openssl_CTR) {
- if (cipher->using_evp) {
- /* In openssl 1.0.0, there's an if'd out EVP_aes_128_ctr in evp.h. If
- * it weren't disabled, it might be better just to use that.
- */
- CRYPTO_ctr128_encrypt((const unsigned char *)input,
- (unsigned char *)output,
- len,
- &cipher->key.evp,
- cipher->ctr_buf.buf,
- cipher->buf,
- &cipher->pos,
- evp_block128_fn);
- } else {
- AES_ctr128_encrypt((const unsigned char *)input,
- (unsigned char *)output,
- len,
- &cipher->key.aes,
- cipher->ctr_buf.buf,
- cipher->buf,
- &cipher->pos);
- }
- return;
- } else {
- int c = cipher->pos;
- if (PREDICT_UNLIKELY(!len)) return;
-
- while (1) {
- do {
- if (len-- == 0) { cipher->pos = c; return; }
- *(output++) = *(input++) ^ cipher->buf[c];
- } while (++c != 16);
- cipher->pos = c = 0;
- if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 0))) {
- if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 1))) {
- if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 2))) {
- ++COUNTER(cipher, 3);
- UPDATE_CTR_BUF(cipher, 3);
- }
- UPDATE_CTR_BUF(cipher, 2);
- }
- UPDATE_CTR_BUF(cipher, 1);
- }
- UPDATE_CTR_BUF(cipher, 0);
- aes_fill_buf_(cipher);
- }
- }
-}
-
/** Encrypt <b>len</b> bytes from <b>input</b>, storing the results in place.
* Uses the key in <b>cipher</b>, and advances the counter by <b>len</b> bytes
* as it encrypts.
@@ -445,32 +341,26 @@ aes_crypt(aes_cnt_cipher_t *cipher, const char *input, size_t len,
void
aes_crypt_inplace(aes_cnt_cipher_t *cipher, char *data, size_t len)
{
- if (should_use_openssl_CTR) {
- aes_crypt(cipher, data, len, data);
- return;
+ if (cipher->using_evp) {
+ /* In openssl 1.0.0, there's an if'd out EVP_aes_128_ctr in evp.h. If
+ * it weren't disabled, it might be better just to use that.
+ */
+ CRYPTO_ctr128_encrypt((const unsigned char *)data,
+ (unsigned char *)data,
+ len,
+ &cipher->key.evp,
+ cipher->ctr_buf.buf,
+ cipher->buf,
+ &cipher->pos,
+ evp_block128_fn);
} else {
- int c = cipher->pos;
- if (PREDICT_UNLIKELY(!len)) return;
-
- while (1) {
- do {
- if (len-- == 0) { cipher->pos = c; return; }
- *(data++) ^= cipher->buf[c];
- } while (++c != 16);
- cipher->pos = c = 0;
- if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 0))) {
- if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 1))) {
- if (PREDICT_UNLIKELY(! ++COUNTER(cipher, 2))) {
- ++COUNTER(cipher, 3);
- UPDATE_CTR_BUF(cipher, 3);
- }
- UPDATE_CTR_BUF(cipher, 2);
- }
- UPDATE_CTR_BUF(cipher, 1);
- }
- UPDATE_CTR_BUF(cipher, 0);
- aes_fill_buf_(cipher);
- }
+ AES_ctr128_encrypt((const unsigned char *)data,
+ (unsigned char *)data,
+ len,
+ &cipher->key.aes,
+ cipher->ctr_buf.buf,
+ cipher->buf,
+ &cipher->pos);
}
}
@@ -487,9 +377,6 @@ aes_set_iv(aes_cnt_cipher_t *cipher, const char *iv)
#endif
cipher->pos = 0;
memcpy(cipher->ctr_buf.buf, iv, 16);
-
- if (!should_use_openssl_CTR)
- aes_fill_buf_(cipher);
}
#endif
diff --git a/src/common/aes.h b/src/common/aes.h
index df2f3aa65d..821fb742be 100644
--- a/src/common/aes.h
+++ b/src/common/aes.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2003, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/* Implements a minimal interface to counter-mode AES. */
@@ -13,13 +13,10 @@
* \brief Headers for aes.c
*/
-struct aes_cnt_cipher;
typedef struct aes_cnt_cipher aes_cnt_cipher_t;
aes_cnt_cipher_t* aes_new_cipher(const char *key, const char *iv);
void aes_cipher_free(aes_cnt_cipher_t *cipher);
-void aes_crypt(aes_cnt_cipher_t *cipher, const char *input, size_t len,
- char *output);
void aes_crypt_inplace(aes_cnt_cipher_t *cipher, char *data, size_t len);
int evaluate_evp_for_aes(int force_value);
diff --git a/src/common/backtrace.c b/src/common/backtrace.c
index 94de1eb5ee..3b762b68e3 100644
--- a/src/common/backtrace.c
+++ b/src/common/backtrace.c
@@ -1,6 +1,18 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file backtrace.c
+ *
+ * \brief Functions to produce backtraces on bugs, crashes, or assertion
+ * failures.
+ *
+ * Currently, we've only got an implementation here using the backtrace()
+ * family of functions, which are sometimes provided by libc and sometimes
+ * provided by libexecinfo. We tie into the sigaction() backend in order to
+ * detect crashes.
+ */
+
#define __USE_GNU
#define _GNU_SOURCE 1
diff --git a/src/common/backtrace.h b/src/common/backtrace.h
index 838e18eedd..b53fd2c668 100644
--- a/src/common/backtrace.h
+++ b/src/common/backtrace.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_BACKTRACE_H
diff --git a/src/common/compat.c b/src/common/compat.c
index fb22e922ba..af61f024ef 100644
--- a/src/common/compat.c
+++ b/src/common/compat.c
@@ -1,12 +1,12 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
* \file compat.c
* \brief Wrappers to make calls more portable. This code defines
- * functions such as tor_malloc, tor_snprintf, get/set various data types,
+ * functions such as tor_snprintf, get/set various data types,
* renaming, setting socket options, switching user IDs. It is basically
* where the non-portable items are conditionally included depending on
* the platform.
@@ -576,14 +576,17 @@ tor_vasprintf(char **strp, const char *fmt, va_list args)
int len, r;
va_list tmp_args;
va_copy(tmp_args, args);
- len = vsnprintf(buf, sizeof(buf), fmt, tmp_args);
+ /* vsnprintf() was properly checked but tor_vsnprintf() available so
+ * why not use it? */
+ len = tor_vsnprintf(buf, sizeof(buf), fmt, tmp_args);
va_end(tmp_args);
if (len < (int)sizeof(buf)) {
*strp = tor_strdup(buf);
return len;
}
strp_tmp = tor_malloc(len+1);
- r = vsnprintf(strp_tmp, len+1, fmt, args);
+ /* use of tor_vsnprintf() will ensure string is null terminated */
+ r = tor_vsnprintf(strp_tmp, len+1, fmt, args);
if (r != len) {
tor_free(strp_tmp);
*strp = NULL;
diff --git a/src/common/compat.h b/src/common/compat.h
index 8f35dfd110..8cf84580c6 100644
--- a/src/common/compat.h
+++ b/src/common/compat.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_COMPAT_H
@@ -42,6 +42,15 @@
#include <netinet6/in6.h>
#endif
+#if defined(__has_feature)
+# if __has_feature(address_sanitizer)
+/* Some of the fancy glibc strcmp() macros include references to memory that
+ * clang rejects because it is off the end of a less-than-3. Clang hates this,
+ * even though those references never actually happen. */
+# undef strcmp
+# endif
+#endif
+
#include <stdio.h>
#include <errno.h>
diff --git a/src/common/compat_libevent.c b/src/common/compat_libevent.c
index 29e5c5f63c..cc58883750 100644
--- a/src/common/compat_libevent.c
+++ b/src/common/compat_libevent.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2015, The Tor Project, Inc. */
+/* Copyright (c) 2009-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -247,6 +247,7 @@ tor_libevent_initialize(tor_libevent_cfg *torcfg)
MOCK_IMPL(struct event_base *,
tor_libevent_get_base, (void))
{
+ tor_assert(the_event_base != NULL);
return the_event_base;
}
diff --git a/src/common/compat_libevent.h b/src/common/compat_libevent.h
index 8ee02c0b6d..4b8b300112 100644
--- a/src/common/compat_libevent.h
+++ b/src/common/compat_libevent.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2015, The Tor Project, Inc. */
+/* Copyright (c) 2009-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_COMPAT_LIBEVENT_H
diff --git a/src/common/compat_openssl.h b/src/common/compat_openssl.h
index 9c98181bdd..a7bdb0a224 100644
--- a/src/common/compat_openssl.h
+++ b/src/common/compat_openssl.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_COMPAT_OPENSSL_H
@@ -35,9 +35,11 @@
(((st) == SSL3_ST_SW_SRVR_HELLO_A) || \
((st) == SSL3_ST_SW_SRVR_HELLO_B))
#define OSSL_HANDSHAKE_STATE int
+#define CONST_IF_OPENSSL_1_1_API
#else
#define STATE_IS_SW_SERVER_HELLO(st) \
((st) == TLS_ST_SW_SRVR_HELLO)
+#define CONST_IF_OPENSSL_1_1_API const
#endif
#endif
diff --git a/src/common/compat_pthreads.c b/src/common/compat_pthreads.c
index b1d87d38f2..1b24cc3c2a 100644
--- a/src/common/compat_pthreads.c
+++ b/src/common/compat_pthreads.c
@@ -1,8 +1,15 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file compat_pthreads.c
+ *
+ * \brief Implementation for the pthreads-based multithreading backend
+ * functions.
+ */
+
#define _GNU_SOURCE
#include "orconfig.h"
diff --git a/src/common/compat_threads.c b/src/common/compat_threads.c
index 85ad737574..8f9001258a 100644
--- a/src/common/compat_threads.c
+++ b/src/common/compat_threads.c
@@ -1,8 +1,16 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file compat_threads.c
+ *
+ * \brief Cross-platform threading and inter-thread communication logic.
+ * (Platform-specific parts are written in the other compat_*threads
+ * modules.)
+ */
+
#define _GNU_SOURCE
#include "orconfig.h"
diff --git a/src/common/compat_threads.h b/src/common/compat_threads.h
index 71562ba3ef..171a9f93ff 100644
--- a/src/common/compat_threads.h
+++ b/src/common/compat_threads.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_COMPAT_THREADS_H
diff --git a/src/common/compat_winthreads.c b/src/common/compat_winthreads.c
index 9a87daa871..735be4ad17 100644
--- a/src/common/compat_winthreads.c
+++ b/src/common/compat_winthreads.c
@@ -1,8 +1,15 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file compat_winthreads.c
+ *
+ * \brief Implementation for the windows-based multithreading backend
+ * functions.
+ */
+
#ifdef _WIN32
#include "compat.h"
diff --git a/src/common/container.c b/src/common/container.c
index 9f40dfa2e0..ddf3bafa91 100644
--- a/src/common/container.c
+++ b/src/common/container.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -59,25 +59,26 @@ smartlist_clear(smartlist_t *sl)
sl->num_used = 0;
}
+#if SIZE_MAX < INT_MAX
+#error "We don't support systems where size_t is smaller than int."
+#endif
+
/** Make sure that <b>sl</b> can hold at least <b>size</b> entries. */
static inline void
-smartlist_ensure_capacity(smartlist_t *sl, int size)
+smartlist_ensure_capacity(smartlist_t *sl, size_t size)
{
-#if SIZEOF_SIZE_T > SIZEOF_INT
+ /* Set MAX_CAPACITY to MIN(INT_MAX, SIZE_MAX / sizeof(void*)) */
+#if (SIZE_MAX/SIZEOF_VOID_P) > INT_MAX
#define MAX_CAPACITY (INT_MAX)
#else
#define MAX_CAPACITY (int)((SIZE_MAX / (sizeof(void*))))
-#define ASSERT_CAPACITY
#endif
- if (size > sl->capacity) {
- int higher = sl->capacity;
+
+ tor_assert(size <= MAX_CAPACITY);
+
+ if (size > (size_t) sl->capacity) {
+ size_t higher = (size_t) sl->capacity;
if (PREDICT_UNLIKELY(size > MAX_CAPACITY/2)) {
-#ifdef ASSERT_CAPACITY
- /* We don't include this assertion when MAX_CAPACITY == INT_MAX,
- * since int size; (size <= INT_MAX) makes analysis tools think we're
- * doing something stupid. */
- tor_assert(size <= MAX_CAPACITY);
-#endif
higher = MAX_CAPACITY;
} else {
while (size > higher)
@@ -87,7 +88,7 @@ smartlist_ensure_capacity(smartlist_t *sl, int size)
((size_t)higher));
memset(sl->list + sl->capacity, 0,
sizeof(void *) * (higher - sl->capacity));
- sl->capacity = higher;
+ sl->capacity = (int) higher;
}
#undef ASSERT_CAPACITY
#undef MAX_CAPACITY
@@ -97,7 +98,7 @@ smartlist_ensure_capacity(smartlist_t *sl, int size)
void
smartlist_add(smartlist_t *sl, void *element)
{
- smartlist_ensure_capacity(sl, sl->num_used+1);
+ smartlist_ensure_capacity(sl, ((size_t) sl->num_used)+1);
sl->list[sl->num_used++] = element;
}
@@ -105,11 +106,12 @@ smartlist_add(smartlist_t *sl, void *element)
void
smartlist_add_all(smartlist_t *s1, const smartlist_t *s2)
{
- int new_size = s1->num_used + s2->num_used;
- tor_assert(new_size >= s1->num_used); /* check for overflow. */
+ size_t new_size = (size_t)s1->num_used + (size_t)s2->num_used;
+ tor_assert(new_size >= (size_t) s1->num_used); /* check for overflow. */
smartlist_ensure_capacity(s1, new_size);
memcpy(s1->list + s1->num_used, s2->list, s2->num_used*sizeof(void*));
- s1->num_used = new_size;
+ tor_assert(new_size <= INT_MAX); /* redundant. */
+ s1->num_used = (int) new_size;
}
/** Remove all elements E from sl such that E==element. Preserve
@@ -385,7 +387,7 @@ smartlist_insert(smartlist_t *sl, int idx, void *val)
if (idx == sl->num_used) {
smartlist_add(sl, val);
} else {
- smartlist_ensure_capacity(sl, sl->num_used+1);
+ smartlist_ensure_capacity(sl, ((size_t) sl->num_used)+1);
/* Move other elements away */
if (idx < sl->num_used)
memmove(sl->list + idx + 1, sl->list + idx,
@@ -838,9 +840,17 @@ smartlist_sort_pointers(smartlist_t *sl)
*
* For a 1-indexed array, we would use LEFT_CHILD[x] = 2*x and RIGHT_CHILD[x]
* = 2*x + 1. But this is C, so we have to adjust a little. */
-//#define LEFT_CHILD(i) ( ((i)+1)*2 - 1)
-//#define RIGHT_CHILD(i) ( ((i)+1)*2 )
-//#define PARENT(i) ( ((i)+1)/2 - 1)
+
+/* MAX_PARENT_IDX is the largest IDX in the smartlist which might have
+ * children whose indices fit inside an int.
+ * LEFT_CHILD(MAX_PARENT_IDX) == INT_MAX-2;
+ * RIGHT_CHILD(MAX_PARENT_IDX) == INT_MAX-1;
+ * LEFT_CHILD(MAX_PARENT_IDX + 1) == INT_MAX // impossible, see max list size.
+ */
+#define MAX_PARENT_IDX ((INT_MAX - 2) / 2)
+/* If this is true, then i is small enough to potentially have children
+ * in the smartlist, and it is save to use LEFT_CHILD/RIGHT_CHILD on it. */
+#define IDX_MAY_HAVE_CHILDREN(i) ((i) <= MAX_PARENT_IDX)
#define LEFT_CHILD(i) ( 2*(i) + 1 )
#define RIGHT_CHILD(i) ( 2*(i) + 2 )
#define PARENT(i) ( ((i)-1) / 2 )
@@ -874,6 +884,14 @@ smartlist_heapify(smartlist_t *sl,
int idx)
{
while (1) {
+ if (! IDX_MAY_HAVE_CHILDREN(idx)) {
+ /* idx is so large that it cannot have any children, since doing so
+ * would mean the smartlist was over-capacity. Therefore it cannot
+ * violate the heap property by being greater than a child (since it
+ * doesn't have any). */
+ return;
+ }
+
int left_idx = LEFT_CHILD(idx);
int best_idx;
diff --git a/src/common/container.h b/src/common/container.h
index af7d5c37ce..92ad3f5ec7 100644
--- a/src/common/container.h
+++ b/src/common/container.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_CONTAINER_H
diff --git a/src/common/crypto.c b/src/common/crypto.c
index a42c461b14..11f8e1db19 100644
--- a/src/common/crypto.c
+++ b/src/common/crypto.c
@@ -1,13 +1,14 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
* \file crypto.c
* \brief Wrapper functions to present a consistent interface to
- * public-key and symmetric cryptography operations from OpenSSL.
+ * public-key and symmetric cryptography operations from OpenSSL and
+ * other places.
**/
#include "orconfig.h"
@@ -373,8 +374,12 @@ crypto_global_init(int useAccel, const char *accelName, const char *accelDir)
used by Tor and the set of algorithms available in the engine */
log_engine("RSA", ENGINE_get_default_RSA());
log_engine("DH", ENGINE_get_default_DH());
+#ifdef OPENSSL_1_1_API
+ log_engine("EC", ENGINE_get_default_EC());
+#else
log_engine("ECDH", ENGINE_get_default_ECDH());
log_engine("ECDSA", ENGINE_get_default_ECDSA());
+#endif
log_engine("RAND", ENGINE_get_default_RAND());
log_engine("RAND (which we will not use)", ENGINE_get_default_RAND());
log_engine("SHA1", ENGINE_get_digest_engine(NID_sha1));
@@ -1323,7 +1328,7 @@ crypto_pk_get_digest(const crypto_pk_t *pk, char *digest_out)
/** Compute all digests of the DER encoding of <b>pk</b>, and store them
* in <b>digests_out</b>. Return 0 on success, -1 on failure. */
int
-crypto_pk_get_all_digests(crypto_pk_t *pk, digests_t *digests_out)
+crypto_pk_get_common_digests(crypto_pk_t *pk, common_digests_t *digests_out)
{
unsigned char *buf = NULL;
int len;
@@ -1331,7 +1336,7 @@ crypto_pk_get_all_digests(crypto_pk_t *pk, digests_t *digests_out)
len = i2d_RSAPublicKey(pk->key, &buf);
if (len < 0 || buf == NULL)
return -1;
- if (crypto_digest_all(digests_out, (char*)buf, len) < 0) {
+ if (crypto_common_digests(digests_out, (char*)buf, len) < 0) {
OPENSSL_free(buf);
return -1;
}
@@ -1505,7 +1510,8 @@ crypto_cipher_encrypt(crypto_cipher_t *env, char *to,
tor_assert(to);
tor_assert(fromlen < SIZE_T_CEILING);
- aes_crypt(env->cipher, from, fromlen, to);
+ memcpy(to, from, fromlen);
+ aes_crypt_inplace(env->cipher, to, fromlen);
return 0;
}
@@ -1522,19 +1528,19 @@ crypto_cipher_decrypt(crypto_cipher_t *env, char *to,
tor_assert(to);
tor_assert(fromlen < SIZE_T_CEILING);
- aes_crypt(env->cipher, from, fromlen, to);
+ memcpy(to, from, fromlen);
+ aes_crypt_inplace(env->cipher, to, fromlen);
return 0;
}
/** Encrypt <b>len</b> bytes on <b>from</b> using the cipher in <b>env</b>;
- * on success, return 0. Does not check for failure.
+ * on success. Does not check for failure.
*/
-int
+void
crypto_cipher_crypt_inplace(crypto_cipher_t *env, char *buf, size_t len)
{
tor_assert(len < SIZE_T_CEILING);
aes_crypt_inplace(env->cipher, buf, len);
- return 0;
}
/** Encrypt <b>fromlen</b> bytes (at least 1) from <b>from</b> with the key in
@@ -1644,33 +1650,19 @@ crypto_digest512(char *digest, const char *m, size_t len,
== -1);
}
-/** Set the digests_t in <b>ds_out</b> to contain every digest on the
+/** Set the common_digests_t in <b>ds_out</b> to contain every digest on the
* <b>len</b> bytes in <b>m</b> that we know how to compute. Return 0 on
* success, -1 on failure. */
int
-crypto_digest_all(digests_t *ds_out, const char *m, size_t len)
+crypto_common_digests(common_digests_t *ds_out, const char *m, size_t len)
{
- int i;
tor_assert(ds_out);
memset(ds_out, 0, sizeof(*ds_out));
if (crypto_digest(ds_out->d[DIGEST_SHA1], m, len) < 0)
return -1;
- for (i = DIGEST_SHA256; i < N_DIGEST_ALGORITHMS; ++i) {
- switch (i) {
- case DIGEST_SHA256: /* FALLSTHROUGH */
- case DIGEST_SHA3_256:
- if (crypto_digest256(ds_out->d[i], m, len, i) < 0)
- return -1;
- break;
- case DIGEST_SHA512:
- case DIGEST_SHA3_512: /* FALLSTHROUGH */
- if (crypto_digest512(ds_out->d[i], m, len, i) < 0)
- return -1;
- break;
- default:
- return -1;
- }
- }
+ if (crypto_digest256(ds_out->d[DIGEST_SHA256], m, len, DIGEST_SHA256) < 0)
+ return -1;
+
return 0;
}
@@ -2084,6 +2076,71 @@ static BIGNUM *dh_param_p_tls = NULL;
/** Shared G parameter for our DH key exchanges. */
static BIGNUM *dh_param_g = NULL;
+/** Validate a given set of Diffie-Hellman parameters. This is moderately
+ * computationally expensive (milliseconds), so should only be called when
+ * the DH parameters change. Returns 0 on success, * -1 on failure.
+ */
+static int
+crypto_validate_dh_params(const BIGNUM *p, const BIGNUM *g)
+{
+ DH *dh = NULL;
+ int ret = -1;
+
+ /* Copy into a temporary DH object. */
+ if (!(dh = DH_new()))
+ goto out;
+ if (!(dh->p = BN_dup(p)))
+ goto out;
+ if (!(dh->g = BN_dup(g)))
+ goto out;
+
+ /* Perform the validation. */
+ int codes = 0;
+ if (!DH_check(dh, &codes))
+ goto out;
+ if (BN_is_word(dh->g, DH_GENERATOR_2)) {
+ /* Per https://wiki.openssl.org/index.php/Diffie-Hellman_parameters
+ *
+ * OpenSSL checks the prime is congruent to 11 when g = 2; while the
+ * IETF's primes are congruent to 23 when g = 2.
+ */
+ BN_ULONG residue = BN_mod_word(dh->p, 24);
+ if (residue == 11 || residue == 23)
+ codes &= ~DH_NOT_SUITABLE_GENERATOR;
+ }
+ if (codes != 0) /* Specifics on why the params suck is irrelevant. */
+ goto out;
+
+ /* Things are probably not evil. */
+ ret = 0;
+
+ out:
+ if (dh)
+ DH_free(dh);
+ return ret;
+}
+
+/** Set the global Diffie-Hellman generator, used for both TLS and internal
+ * DH stuff.
+ */
+static void
+crypto_set_dh_generator(void)
+{
+ BIGNUM *generator;
+ int r;
+
+ if (dh_param_g)
+ return;
+
+ generator = BN_new();
+ tor_assert(generator);
+
+ r = BN_set_word(generator, DH_GENERATOR);
+ tor_assert(r);
+
+ dh_param_g = generator;
+}
+
/** Set the global TLS Diffie-Hellman modulus. Use the Apache mod_ssl DH
* modulus. */
void
@@ -2116,6 +2173,8 @@ crypto_set_tls_dh_prime(void)
tor_assert(tls_prime);
dh_param_p_tls = tls_prime;
+ crypto_set_dh_generator();
+ tor_assert(0 == crypto_validate_dh_params(dh_param_p_tls, dh_param_g));
}
/** Initialize dh_param_p and dh_param_g if they are not already
@@ -2123,18 +2182,13 @@ crypto_set_tls_dh_prime(void)
static void
init_dh_param(void)
{
- BIGNUM *circuit_dh_prime, *generator;
+ BIGNUM *circuit_dh_prime;
int r;
if (dh_param_p && dh_param_g)
return;
circuit_dh_prime = BN_new();
- generator = BN_new();
- tor_assert(circuit_dh_prime && generator);
-
- /* Set our generator for all DH parameters */
- r = BN_set_word(generator, DH_GENERATOR);
- tor_assert(r);
+ tor_assert(circuit_dh_prime);
/* This is from rfc2409, section 6.2. It's a safe prime, and
supposedly it equals:
@@ -2150,7 +2204,8 @@ init_dh_param(void)
/* Set the new values as the global DH parameters. */
dh_param_p = circuit_dh_prime;
- dh_param_g = generator;
+ crypto_set_dh_generator();
+ tor_assert(0 == crypto_validate_dh_params(dh_param_p, dh_param_g));
if (!dh_param_p_tls) {
crypto_set_tls_dh_prime();
diff --git a/src/common/crypto.h b/src/common/crypto.h
index fa2ed610c7..682c4e3253 100644
--- a/src/common/crypto.h
+++ b/src/common/crypto.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -100,8 +100,9 @@ typedef enum {
DIGEST_SHA3_512 = 4,
} digest_algorithm_t;
#define N_DIGEST_ALGORITHMS (DIGEST_SHA3_512+1)
+#define N_COMMON_DIGEST_ALGORITHMS (DIGEST_SHA256+1)
-/** A set of all the digests we know how to compute, taken on a single
+/** A set of all the digests we commonly compute, taken on a single
* string. Any digests that are shorter than 512 bits are right-padded
* with 0 bits.
*
@@ -110,8 +111,8 @@ typedef enum {
* once.
**/
typedef struct {
- char d[N_DIGEST_ALGORITHMS][DIGEST512_LEN];
-} digests_t;
+ char d[N_COMMON_DIGEST_ALGORITHMS][DIGEST256_LEN];
+} common_digests_t;
typedef struct crypto_pk_t crypto_pk_t;
typedef struct crypto_cipher_t crypto_cipher_t;
@@ -191,7 +192,8 @@ int crypto_pk_private_hybrid_decrypt(crypto_pk_t *env, char *to,
int crypto_pk_asn1_encode(crypto_pk_t *pk, char *dest, size_t dest_len);
crypto_pk_t *crypto_pk_asn1_decode(const char *str, size_t len);
int crypto_pk_get_digest(const crypto_pk_t *pk, char *digest_out);
-int crypto_pk_get_all_digests(crypto_pk_t *pk, digests_t *digests_out);
+int crypto_pk_get_common_digests(crypto_pk_t *pk,
+ common_digests_t *digests_out);
int crypto_pk_get_fingerprint(crypto_pk_t *pk, char *fp_out,int add_space);
int crypto_pk_get_hashed_fingerprint(crypto_pk_t *pk, char *fp_out);
@@ -205,7 +207,7 @@ int crypto_cipher_encrypt(crypto_cipher_t *env, char *to,
const char *from, size_t fromlen);
int crypto_cipher_decrypt(crypto_cipher_t *env, char *to,
const char *from, size_t fromlen);
-int crypto_cipher_crypt_inplace(crypto_cipher_t *env, char *d, size_t len);
+void crypto_cipher_crypt_inplace(crypto_cipher_t *env, char *d, size_t len);
int crypto_cipher_encrypt_with_iv(const char *key,
char *to, size_t tolen,
@@ -220,7 +222,7 @@ int crypto_digest256(char *digest, const char *m, size_t len,
digest_algorithm_t algorithm);
int crypto_digest512(char *digest, const char *m, size_t len,
digest_algorithm_t algorithm);
-int crypto_digest_all(digests_t *ds_out, const char *m, size_t len);
+int crypto_common_digests(common_digests_t *ds_out, const char *m, size_t len);
struct smartlist_t;
void crypto_digest_smartlist_prefix(char *digest_out, size_t len_out,
const char *prepend,
diff --git a/src/common/crypto_curve25519.c b/src/common/crypto_curve25519.c
index 2002483265..baa573b0dc 100644
--- a/src/common/crypto_curve25519.c
+++ b/src/common/crypto_curve25519.c
@@ -1,7 +1,11 @@
-/* Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-/* Wrapper code for a curve25519 implementation. */
+/**
+ * \file crypto_curve25519.c
+ *
+ * \brief Wrapper code for a curve25519 implementation.
+ */
#define CRYPTO_CURVE25519_PRIVATE
#include "orconfig.h"
diff --git a/src/common/crypto_curve25519.h b/src/common/crypto_curve25519.h
index d868b3918b..547e393567 100644
--- a/src/common/crypto_curve25519.h
+++ b/src/common/crypto_curve25519.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_CRYPTO_CURVE25519_H
diff --git a/src/common/crypto_ed25519.c b/src/common/crypto_ed25519.c
index 9df665f66a..1d0cfd01ce 100644
--- a/src/common/crypto_ed25519.c
+++ b/src/common/crypto_ed25519.c
@@ -1,7 +1,11 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-/* Wrapper code for an ed25519 implementation. */
+/**
+ * \file crypto_ed25519.c
+ *
+ * \brief Wrapper code for an ed25519 implementation.
+ */
#include "orconfig.h"
#ifdef HAVE_SYS_STAT_H
diff --git a/src/common/crypto_ed25519.h b/src/common/crypto_ed25519.h
index 4fa7ea11cf..44c2ad9775 100644
--- a/src/common/crypto_ed25519.h
+++ b/src/common/crypto_ed25519.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_CRYPTO_ED25519_H
diff --git a/src/common/crypto_format.c b/src/common/crypto_format.c
index d4ecd5b192..bdf9bfd613 100644
--- a/src/common/crypto_format.c
+++ b/src/common/crypto_format.c
@@ -1,10 +1,14 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
-/* Formatting and parsing code for crypto-related data structures. */
+/**
+ * \file crypto_format.c
+ *
+ * \brief Formatting and parsing code for crypto-related data structures.
+ */
#include "orconfig.h"
#ifdef HAVE_SYS_STAT_H
diff --git a/src/common/crypto_format.h b/src/common/crypto_format.h
index b972d3f509..012e228cc4 100644
--- a/src/common/crypto_format.h
+++ b/src/common/crypto_format.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_CRYPTO_FORMAT_H
diff --git a/src/common/crypto_pwbox.c b/src/common/crypto_pwbox.c
index b866c7ef39..819dc0c39d 100644
--- a/src/common/crypto_pwbox.c
+++ b/src/common/crypto_pwbox.c
@@ -1,3 +1,12 @@
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
+/* See LICENSE for licensing information */
+
+/**
+ * \file crypto_pwbox.c
+ *
+ * \brief Code for encrypting secrets in a password-protected form and saving
+ * them to disk.
+ */
#include "crypto.h"
#include "crypto_s2k.h"
diff --git a/src/common/crypto_s2k.c b/src/common/crypto_s2k.c
index 99f3b2ebbc..a9140c7553 100644
--- a/src/common/crypto_s2k.c
+++ b/src/common/crypto_s2k.c
@@ -1,9 +1,15 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file crypto_s2k.c
+ *
+ * \brief Functions for deriving keys from human-readable passphrases.
+ */
+
#define CRYPTO_S2K_PRIVATE
#include "crypto.h"
diff --git a/src/common/crypto_s2k.h b/src/common/crypto_s2k.h
index 66df24c3c4..9b186450b1 100644
--- a/src/common/crypto_s2k.h
+++ b/src/common/crypto_s2k.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_CRYPTO_S2K_H_INCLUDED
diff --git a/src/common/di_ops.c b/src/common/di_ops.c
index 70f2da7377..5dfe828066 100644
--- a/src/common/di_ops.c
+++ b/src/common/di_ops.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011-2015, The Tor Project, Inc. */
+/* Copyright (c) 2011-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/common/di_ops.h b/src/common/di_ops.h
index bbb1caa00c..6e77b5cfd7 100644
--- a/src/common/di_ops.h
+++ b/src/common/di_ops.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/common/log.c b/src/common/log.c
index 4a8a7b1165..6c387c6244 100644
--- a/src/common/log.c
+++ b/src/common/log.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -149,10 +149,14 @@ static int pretty_fn_has_parens = 0;
/** Lock the log_mutex to prevent others from changing the logfile_t list */
#define LOCK_LOGS() STMT_BEGIN \
+ tor_assert(log_mutex_initialized); \
tor_mutex_acquire(&log_mutex); \
STMT_END
/** Unlock the log_mutex */
-#define UNLOCK_LOGS() STMT_BEGIN tor_mutex_release(&log_mutex); STMT_END
+#define UNLOCK_LOGS() STMT_BEGIN \
+ tor_assert(log_mutex_initialized); \
+ tor_mutex_release(&log_mutex); \
+ STMT_END
/** What's the lowest log level anybody cares about? Checking this lets us
* bail out early from log_debug if we aren't debugging. */
@@ -482,9 +486,12 @@ logv,(int severity, log_domain_mask_t domain, const char *funcname,
/* check that severity is sane. Overrunning the masks array leads to
* interesting and hard to diagnose effects */
assert(severity >= LOG_ERR && severity <= LOG_DEBUG);
+ /* check that we've initialised the log mutex before we try to lock it */
+ assert(log_mutex_initialized);
LOCK_LOGS();
- if ((! (domain & LD_NOCB)) && smartlist_len(pending_cb_messages))
+ if ((! (domain & LD_NOCB)) && pending_cb_messages
+ && smartlist_len(pending_cb_messages))
flush_pending_log_callbacks();
if (queue_startup_messages &&
@@ -939,7 +946,7 @@ flush_pending_log_callbacks(void)
smartlist_t *messages, *messages_tmp;
LOCK_LOGS();
- if (0 == smartlist_len(pending_cb_messages)) {
+ if (!pending_cb_messages || 0 == smartlist_len(pending_cb_messages)) {
UNLOCK_LOGS();
return;
}
diff --git a/src/common/memarea.c b/src/common/memarea.c
index a8e6d455d6..5d5dc0caf6 100644
--- a/src/common/memarea.c
+++ b/src/common/memarea.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008-2015, The Tor Project, Inc. */
+/* Copyright (c) 2008-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/** \file memarea.c
@@ -105,56 +105,32 @@ struct memarea_t {
memarea_chunk_t *first; /**< Top of the chunk stack: never NULL. */
};
-/** How many chunks will we put into the freelist before freeing them? */
-#define MAX_FREELIST_LEN 4
-/** The number of memarea chunks currently in our freelist. */
-static int freelist_len=0;
-/** A linked list of unused memory area chunks. Used to prevent us from
- * spinning in malloc/free loops. */
-static memarea_chunk_t *freelist = NULL;
-
/** Helper: allocate a new memarea chunk of around <b>chunk_size</b> bytes. */
static memarea_chunk_t *
-alloc_chunk(size_t sz, int freelist_ok)
+alloc_chunk(size_t sz)
{
tor_assert(sz < SIZE_T_CEILING);
- if (freelist && freelist_ok) {
- memarea_chunk_t *res = freelist;
- freelist = res->next_chunk;
- res->next_chunk = NULL;
- --freelist_len;
- CHECK_SENTINEL(res);
- return res;
- } else {
- size_t chunk_size = freelist_ok ? CHUNK_SIZE : sz;
- memarea_chunk_t *res;
- chunk_size += SENTINEL_LEN;
- res = tor_malloc(chunk_size);
- res->next_chunk = NULL;
- res->mem_size = chunk_size - CHUNK_HEADER_SIZE - SENTINEL_LEN;
- res->next_mem = res->U_MEM;
- tor_assert(res->next_mem+res->mem_size+SENTINEL_LEN ==
- ((char*)res)+chunk_size);
- tor_assert(realign_pointer(res->next_mem) == res->next_mem);
- SET_SENTINEL(res);
- return res;
- }
+
+ size_t chunk_size = sz < CHUNK_SIZE ? CHUNK_SIZE : sz;
+ memarea_chunk_t *res;
+ chunk_size += SENTINEL_LEN;
+ res = tor_malloc(chunk_size);
+ res->next_chunk = NULL;
+ res->mem_size = chunk_size - CHUNK_HEADER_SIZE - SENTINEL_LEN;
+ res->next_mem = res->U_MEM;
+ tor_assert(res->next_mem+res->mem_size+SENTINEL_LEN ==
+ ((char*)res)+chunk_size);
+ tor_assert(realign_pointer(res->next_mem) == res->next_mem);
+ SET_SENTINEL(res);
+ return res;
}
-/** Release <b>chunk</b> from a memarea, either by adding it to the freelist
- * or by freeing it if the freelist is already too big. */
+/** Release <b>chunk</b> from a memarea. */
static void
chunk_free_unchecked(memarea_chunk_t *chunk)
{
CHECK_SENTINEL(chunk);
- if (freelist_len < MAX_FREELIST_LEN) {
- ++freelist_len;
- chunk->next_chunk = freelist;
- freelist = chunk;
- chunk->next_mem = chunk->U_MEM;
- } else {
- tor_free(chunk);
- }
+ tor_free(chunk);
}
/** Allocate and return new memarea. */
@@ -162,7 +138,7 @@ memarea_t *
memarea_new(void)
{
memarea_t *head = tor_malloc(sizeof(memarea_t));
- head->first = alloc_chunk(CHUNK_SIZE, 1);
+ head->first = alloc_chunk(CHUNK_SIZE);
return head;
}
@@ -197,19 +173,6 @@ memarea_clear(memarea_t *area)
area->first->next_mem = area->first->U_MEM;
}
-/** Remove all unused memarea chunks from the internal freelist. */
-void
-memarea_clear_freelist(void)
-{
- memarea_chunk_t *chunk, *next;
- freelist_len = 0;
- for (chunk = freelist; chunk; chunk = next) {
- next = chunk->next_chunk;
- tor_free(chunk);
- }
- freelist = NULL;
-}
-
/** Return true iff <b>p</b> is in a range that has been returned by an
* allocation from <b>area</b>. */
int
@@ -241,12 +204,12 @@ memarea_alloc(memarea_t *area, size_t sz)
if (sz+CHUNK_HEADER_SIZE >= CHUNK_SIZE) {
/* This allocation is too big. Stick it in a special chunk, and put
* that chunk second in the list. */
- memarea_chunk_t *new_chunk = alloc_chunk(sz+CHUNK_HEADER_SIZE, 0);
+ memarea_chunk_t *new_chunk = alloc_chunk(sz+CHUNK_HEADER_SIZE);
new_chunk->next_chunk = chunk->next_chunk;
chunk->next_chunk = new_chunk;
chunk = new_chunk;
} else {
- memarea_chunk_t *new_chunk = alloc_chunk(CHUNK_SIZE, 1);
+ memarea_chunk_t *new_chunk = alloc_chunk(CHUNK_SIZE);
new_chunk->next_chunk = chunk;
area->first = chunk = new_chunk;
}
diff --git a/src/common/memarea.h b/src/common/memarea.h
index d14f3a2bae..85bca51ad3 100644
--- a/src/common/memarea.h
+++ b/src/common/memarea.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2008-2015, The Tor Project, Inc. */
+/* Copyright (c) 2008-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/* Tor dependencies */
@@ -18,7 +18,6 @@ char *memarea_strdup(memarea_t *area, const char *s);
char *memarea_strndup(memarea_t *area, const char *s, size_t n);
void memarea_get_stats(memarea_t *area,
size_t *allocated_out, size_t *used_out);
-void memarea_clear_freelist(void);
void memarea_assert_ok(memarea_t *area);
#endif
diff --git a/src/common/procmon.c b/src/common/procmon.c
index 346a0c6943..12d53fcd41 100644
--- a/src/common/procmon.c
+++ b/src/common/procmon.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011-2015, The Tor Project, Inc. */
+/* Copyright (c) 2011-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/common/procmon.h b/src/common/procmon.h
index ccee6bfac6..49ead24092 100644
--- a/src/common/procmon.h
+++ b/src/common/procmon.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011-2015, The Tor Project, Inc. */
+/* Copyright (c) 2011-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/common/sandbox.c b/src/common/sandbox.c
index d747a87563..4e765b763c 100644
--- a/src/common/sandbox.c
+++ b/src/common/sandbox.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -427,7 +427,8 @@ sb_open(scmp_filter_ctx ctx, sandbox_cfg_t *filter)
}
rc = seccomp_rule_add_1(ctx, SCMP_ACT_ERRNO(EACCES), SCMP_SYS(open),
- SCMP_CMP_MASKED(1, O_CLOEXEC|O_NONBLOCK|O_NOCTTY, O_RDONLY));
+ SCMP_CMP_MASKED(1, O_CLOEXEC|O_NONBLOCK|O_NOCTTY|O_NOFOLLOW,
+ O_RDONLY));
if (rc != 0) {
log_err(LD_BUG,"(Sandbox) failed to add open syscall, received libseccomp "
"error %d", rc);
diff --git a/src/common/sandbox.h b/src/common/sandbox.h
index 21d517fe51..b4cc9f7d18 100644
--- a/src/common/sandbox.h
+++ b/src/common/sandbox.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/common/testsupport.h b/src/common/testsupport.h
index db7700aeb0..3bb11a7e41 100644
--- a/src/common/testsupport.h
+++ b/src/common/testsupport.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_TESTSUPPORT_H
diff --git a/src/common/torgzip.c b/src/common/torgzip.c
index 5ba8ec4501..71e55f8723 100644
--- a/src/common/torgzip.c
+++ b/src/common/torgzip.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/common/torgzip.h b/src/common/torgzip.h
index 0fc2deb6c4..00f62dcb45 100644
--- a/src/common/torgzip.h
+++ b/src/common/torgzip.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2003, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/common/torint.h b/src/common/torint.h
index 418fe0fabf..58c30f41a8 100644
--- a/src/common/torint.h
+++ b/src/common/torint.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2003, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -312,8 +312,6 @@ typedef uint32_t uintptr_t;
#ifndef TIME_MAX
-#ifdef TIME_T_IS_SIGNED
-
#if (SIZEOF_TIME_T == SIZEOF_INT)
#define TIME_MAX ((time_t)INT_MAX)
#elif (SIZEOF_TIME_T == SIZEOF_LONG)
@@ -321,25 +319,13 @@ typedef uint32_t uintptr_t;
#elif (SIZEOF_TIME_T == 8)
#define TIME_MAX ((time_t)INT64_MAX)
#else
-#error "Can't define (signed) TIME_MAX"
+#error "Can't define TIME_MAX"
#endif
-#else
-/* Unsigned case */
-#if (SIZEOF_TIME_T == 4)
-#define TIME_MAX ((time_t)UINT32_MAX)
-#elif (SIZEOF_TIME_T == 8)
-#define TIME_MAX ((time_t)UINT64_MAX)
-#else
-#error "Can't define (unsigned) TIME_MAX"
-#endif
-#endif /* time_t_is_signed */
#endif /* ifndef(TIME_MAX) */
#ifndef TIME_MIN
-#ifdef TIME_T_IS_SIGNED
-
#if (SIZEOF_TIME_T == SIZEOF_INT)
#define TIME_MIN ((time_t)INT_MIN)
#elif (SIZEOF_TIME_T == SIZEOF_LONG)
@@ -347,19 +333,9 @@ typedef uint32_t uintptr_t;
#elif (SIZEOF_TIME_T == 8)
#define TIME_MIN ((time_t)INT64_MIN)
#else
-#error "Can't define (signed) TIME_MIN"
+#error "Can't define TIME_MIN"
#endif
-#else
-/* Unsigned case */
-#if (SIZEOF_TIME_T == 4)
-#define TIME_MIN ((time_t)UINT32_MIN)
-#elif (SIZEOF_TIME_T == 8)
-#define TIME_MIN ((time_t)UINT64_MIN)
-#else
-#error "Can't define (unsigned) TIME_MIN"
-#endif
-#endif /* time_t_is_signed */
#endif /* ifndef(TIME_MIN) */
#ifndef SIZE_MAX
diff --git a/src/common/torlog.h b/src/common/torlog.h
index 3e8667895f..578af7caea 100644
--- a/src/common/torlog.h
+++ b/src/common/torlog.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/common/tortls.c b/src/common/tortls.c
index 6e4cd3d480..fe21875f91 100644
--- a/src/common/tortls.c
+++ b/src/common/tortls.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2003, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -685,13 +685,13 @@ MOCK_IMPL(STATIC tor_x509_cert_t *,
cert->cert = x509_cert;
- crypto_digest_all(&cert->cert_digests,
+ crypto_common_digests(&cert->cert_digests,
(char*)cert->encoded, cert->encoded_len);
if ((pkey = X509_get_pubkey(x509_cert)) &&
(rsa = EVP_PKEY_get1_RSA(pkey))) {
crypto_pk_t *pk = crypto_new_pk_from_rsa_(rsa);
- crypto_pk_get_all_digests(pk, &cert->pkey_digests);
+ crypto_pk_get_common_digests(pk, &cert->pkey_digests);
cert->pkey_digests_set = 1;
crypto_pk_free(pk);
EVP_PKEY_free(pkey);
@@ -754,7 +754,7 @@ tor_x509_cert_get_der(const tor_x509_cert_t *cert,
/** Return a set of digests for the public key in <b>cert</b>, or NULL if this
* cert's public key is not one we know how to take the digest of. */
-const digests_t *
+const common_digests_t *
tor_x509_cert_get_id_digests(const tor_x509_cert_t *cert)
{
if (cert->pkey_digests_set)
@@ -764,7 +764,7 @@ tor_x509_cert_get_id_digests(const tor_x509_cert_t *cert)
}
/** Return a set of digests for the public key in <b>cert</b>. */
-const digests_t *
+const common_digests_t *
tor_x509_cert_get_cert_digests(const tor_x509_cert_t *cert)
{
return &cert->cert_digests;
@@ -911,7 +911,7 @@ tor_tls_cert_is_valid(int severity,
} else if (cert_key) {
int min_bits = 1024;
#ifdef EVP_PKEY_EC
- if (EVP_PKEY_type(cert_key->type) == EVP_PKEY_EC)
+ if (EVP_PKEY_base_id(cert_key) == EVP_PKEY_EC)
min_bits = 128;
#endif
if (EVP_PKEY_bits(cert_key) >= min_bits)
@@ -1338,7 +1338,7 @@ find_cipher_by_id(const SSL *ssl, const SSL_METHOD *m, uint16_t cipher)
return c != NULL;
}
# endif
-# if OPENSSL_VERSION_NUMBER < OPENSSL_V_SERIES(1,1,0)
+# ifndef OPENSSL_1_1_API
if (m && m->get_cipher && m->num_ciphers) {
/* It would seem that some of the "let's-clean-up-openssl" forks have
* removed the get_cipher_by_char function. Okay, so now you get a
@@ -1414,7 +1414,7 @@ tor_tls_classify_client_ciphers(const SSL *ssl,
/* Now we need to see if there are any ciphers whose presence means we're
* dealing with an updated Tor. */
for (i = 0; i < sk_SSL_CIPHER_num(peer_ciphers); ++i) {
- SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i);
+ const SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i);
const char *ciphername = SSL_CIPHER_get_name(cipher);
if (strcmp(ciphername, TLS1_TXT_DHE_RSA_WITH_AES_128_SHA) &&
strcmp(ciphername, TLS1_TXT_DHE_RSA_WITH_AES_256_SHA) &&
@@ -1431,7 +1431,7 @@ tor_tls_classify_client_ciphers(const SSL *ssl,
{
const uint16_t *v2_cipher = v2_cipher_list;
for (i = 0; i < sk_SSL_CIPHER_num(peer_ciphers); ++i) {
- SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i);
+ const SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i);
uint16_t id = SSL_CIPHER_get_id(cipher) & 0xffff;
if (id == 0x00ff) /* extended renegotiation indicator. */
continue;
@@ -1453,7 +1453,7 @@ tor_tls_classify_client_ciphers(const SSL *ssl,
smartlist_t *elts = smartlist_new();
char *s;
for (i = 0; i < sk_SSL_CIPHER_num(peer_ciphers); ++i) {
- SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i);
+ const SSL_CIPHER *cipher = sk_SSL_CIPHER_value(peer_ciphers, i);
const char *ciphername = SSL_CIPHER_get_name(cipher);
smartlist_add(elts, (char*)ciphername);
}
@@ -1562,7 +1562,8 @@ tor_tls_server_info_callback(const SSL *ssl, int type, int val)
STATIC int
tor_tls_session_secret_cb(SSL *ssl, void *secret, int *secret_len,
STACK_OF(SSL_CIPHER) *peer_ciphers,
- SSL_CIPHER **cipher, void *arg)
+ CONST_IF_OPENSSL_1_1_API SSL_CIPHER **cipher,
+ void *arg)
{
(void) secret;
(void) secret_len;
@@ -1733,8 +1734,13 @@ tor_tls_block_renegotiation(tor_tls_t *tls)
void
tor_tls_assert_renegotiation_unblocked(tor_tls_t *tls)
{
+#if defined(SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION) && \
+ SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION != 0
long options = SSL_get_options(tls->ssl);
tor_assert(0 != (options & SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION));
+#else
+ (void) tls;
+#endif
}
/** Return whether this tls initiated the connect (client) or
diff --git a/src/common/tortls.h b/src/common/tortls.h
index 6a4ef9aebe..1a59c67df3 100644
--- a/src/common/tortls.h
+++ b/src/common/tortls.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2003, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_TORTLS_H
@@ -82,8 +82,8 @@ struct tor_x509_cert_t {
uint8_t *encoded;
size_t encoded_len;
unsigned pkey_digests_set : 1;
- digests_t cert_digests;
- digests_t pkey_digests;
+ common_digests_t cert_digests;
+ common_digests_t pkey_digests;
};
/** Holds a SSL object and its associated data. Members are only
@@ -143,9 +143,10 @@ STATIC size_t SSL_SESSION_get_master_key(SSL_SESSION *s, uint8_t *out,
STATIC void tor_tls_debug_state_callback(const SSL *ssl, int type, int val);
STATIC void tor_tls_server_info_callback(const SSL *ssl, int type, int val);
STATIC int tor_tls_session_secret_cb(SSL *ssl, void *secret,
- int *secret_len,
- STACK_OF(SSL_CIPHER) *peer_ciphers,
- SSL_CIPHER **cipher, void *arg);
+ int *secret_len,
+ STACK_OF(SSL_CIPHER) *peer_ciphers,
+ CONST_IF_OPENSSL_1_1_API SSL_CIPHER **cipher,
+ void *arg);
STATIC int find_cipher_by_id(const SSL *ssl, const SSL_METHOD *m,
uint16_t cipher);
MOCK_DECL(STATIC X509*, tor_tls_create_certificate,(crypto_pk_t *rsa,
@@ -237,8 +238,10 @@ tor_x509_cert_t *tor_x509_cert_decode(const uint8_t *certificate,
size_t certificate_len);
void tor_x509_cert_get_der(const tor_x509_cert_t *cert,
const uint8_t **encoded_out, size_t *size_out);
-const digests_t *tor_x509_cert_get_id_digests(const tor_x509_cert_t *cert);
-const digests_t *tor_x509_cert_get_cert_digests(const tor_x509_cert_t *cert);
+const common_digests_t *tor_x509_cert_get_id_digests(
+ const tor_x509_cert_t *cert);
+const common_digests_t *tor_x509_cert_get_cert_digests(
+ const tor_x509_cert_t *cert);
int tor_tls_get_my_certs(int server,
const tor_x509_cert_t **link_cert_out,
const tor_x509_cert_t **id_cert_out);
diff --git a/src/common/util.c b/src/common/util.c
index 04f48a4eee..b4355115d1 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2003, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -2058,57 +2058,95 @@ check_private_dir(const char *dirname, cpd_check_t check,
{
int r;
struct stat st;
- char *f;
+
+ tor_assert(dirname);
+
#ifndef _WIN32
+ int fd;
unsigned unwanted_bits = 0;
const struct passwd *pw = NULL;
uid_t running_uid;
gid_t running_gid;
-#else
- (void)effective_user;
-#endif
- tor_assert(dirname);
- f = tor_strdup(dirname);
- clean_name_for_stat(f);
- log_debug(LD_FS, "stat()ing %s", f);
- r = stat(sandbox_intern_string(f), &st);
- tor_free(f);
- if (r) {
+ /*
+ * Goal is to harden the implementation by removing any
+ * potential for race between stat() and chmod().
+ * chmod() accepts filename as argument. If an attacker can move
+ * the file between stat() and chmod(), a potential race exists.
+ *
+ * Several suggestions taken from:
+ * https://developer.apple.com/library/mac/documentation/Security/Conceptual/SecureCodingGuide/Articles/RaceConditions.html
+ */
+
+ /* Open directory.
+ * O_NOFOLLOW to ensure that it does not follow symbolic links */
+ fd = open(sandbox_intern_string(dirname), O_NOFOLLOW);
+
+ /* Was there an error? Maybe the directory does not exist? */
+ if (fd == -1) {
+
if (errno != ENOENT) {
+ /* Other directory error */
log_warn(LD_FS, "Directory %s cannot be read: %s", dirname,
strerror(errno));
return -1;
}
+
+ /* Received ENOENT: Directory does not exist */
+
+ /* Should we create the directory? */
if (check & CPD_CREATE) {
log_info(LD_GENERAL, "Creating directory %s", dirname);
-#if defined (_WIN32)
- r = mkdir(dirname);
-#else
if (check & CPD_GROUP_READ) {
r = mkdir(dirname, 0750);
} else {
r = mkdir(dirname, 0700);
}
-#endif
+
+ /* check for mkdir() error */
if (r) {
log_warn(LD_FS, "Error creating directory %s: %s", dirname,
strerror(errno));
return -1;
}
+
+ /* we just created the directory. try to open it again.
+ * permissions on the directory will be checked again below.*/
+ fd = open(sandbox_intern_string(dirname), O_NOFOLLOW);
+
+ if ( fd == -1 ) return -1;
+
} else if (!(check & CPD_CHECK)) {
log_warn(LD_FS, "Directory %s does not exist.", dirname);
return -1;
}
+
/* XXXX In the case where check==CPD_CHECK, we should look at the
* parent directory a little harder. */
return 0;
}
+
+ tor_assert(fd);
+
+ //f = tor_strdup(dirname);
+ //clean_name_for_stat(f);
+ log_debug(LD_FS, "stat()ing %s", dirname);
+ //r = stat(sandbox_intern_string(f), &st);
+ r = fstat(fd, &st);
+ if (r == -1) {
+ log_warn(LD_FS, "fstat() on directory %s failed.", dirname);
+ close(fd);
+ return -1;
+ }
+ //tor_free(f);
+
+ /* check that dirname is a directory */
if (!(st.st_mode & S_IFDIR)) {
log_warn(LD_FS, "%s is not a directory", dirname);
+ close(fd);
return -1;
}
-#ifndef _WIN32
+
if (effective_user) {
/* Look up the user and group information.
* If we have a problem, bail out. */
@@ -2124,7 +2162,6 @@ check_private_dir(const char *dirname, cpd_check_t check,
running_uid = getuid();
running_gid = getgid();
}
-
if (st.st_uid != running_uid) {
const struct passwd *pw = NULL;
char *process_ownername = NULL;
@@ -2140,6 +2177,7 @@ check_private_dir(const char *dirname, cpd_check_t check,
pw ? pw->pw_name : "<unknown>", (int)st.st_uid);
tor_free(process_ownername);
+ close(fd);
return -1;
}
if ( (check & (CPD_GROUP_OK|CPD_GROUP_READ))
@@ -2156,6 +2194,7 @@ check_private_dir(const char *dirname, cpd_check_t check,
gr ? gr->gr_name : "<unknown>", (int)st.st_gid);
tor_free(process_groupname);
+ close(fd);
return -1;
}
if (check & (CPD_GROUP_OK|CPD_GROUP_READ)) {
@@ -2168,6 +2207,7 @@ check_private_dir(const char *dirname, cpd_check_t check,
if (check & CPD_CHECK_MODE_ONLY) {
log_warn(LD_FS, "Permissions on directory %s are too permissive.",
dirname);
+ close(fd);
return -1;
}
log_warn(LD_FS, "Fixing permissions on directory %s", dirname);
@@ -2177,14 +2217,51 @@ check_private_dir(const char *dirname, cpd_check_t check,
new_mode |= 0050; /* Group should have rx */
}
new_mode &= ~unwanted_bits; /* Clear the bits that we didn't want set...*/
- if (chmod(dirname, new_mode)) {
+ if (fchmod(fd, new_mode)) {
log_warn(LD_FS, "Could not chmod directory %s: %s", dirname,
strerror(errno));
+ close(fd);
return -1;
} else {
+ close(fd);
return 0;
}
}
+ close(fd);
+#else
+ /* Win32 case: we can't open() a directory. */
+ (void)effective_user;
+
+ char *f = tor_strdup(dirname);
+ clean_name_for_stat(f);
+ log_debug(LD_FS, "stat()ing %s", f);
+ r = stat(sandbox_intern_string(f), &st);
+ tor_free(f);
+ if (r) {
+ if (errno != ENOENT) {
+ log_warn(LD_FS, "Directory %s cannot be read: %s", dirname,
+ strerror(errno));
+ return -1;
+ }
+ if (check & CPD_CREATE) {
+ log_info(LD_GENERAL, "Creating directory %s", dirname);
+ r = mkdir(dirname);
+ if (r) {
+ log_warn(LD_FS, "Error creating directory %s: %s", dirname,
+ strerror(errno));
+ return -1;
+ }
+ } else if (!(check & CPD_CHECK)) {
+ log_warn(LD_FS, "Directory %s does not exist.", dirname);
+ return -1;
+ }
+ return 0;
+ }
+ if (!(st.st_mode & S_IFDIR)) {
+ log_warn(LD_FS, "%s is not a directory", dirname);
+ return -1;
+ }
+
#endif
return 0;
}
@@ -2900,6 +2977,9 @@ expand_filename(const char *filename)
{
tor_assert(filename);
#ifdef _WIN32
+ /* Might consider using GetFullPathName() as described here:
+ * http://etutorials.org/Programming/secure+programming/Chapter+3.+Input+Validation/3.7+Validating+Filenames+and+Paths/
+ */
return tor_strdup(filename);
#else
if (*filename == '~') {
diff --git a/src/common/util.h b/src/common/util.h
index 165bc0dcb3..9657003105 100644
--- a/src/common/util.h
+++ b/src/common/util.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -29,6 +29,9 @@
#ifndef O_TEXT
#define O_TEXT 0
#endif
+#ifndef O_NOFOLLOW
+#define O_NOFOLLOW 0
+#endif
/* Replace assert() with a variant that sends failures to the log before
* calling assert() normally.
@@ -45,9 +48,10 @@
#error "Sorry; we don't support building with NDEBUG."
#endif
-/* Don't use assertions during coverage. It leads to tons of unreached
- * branches which in reality are only assertions we didn't hit. */
-#ifdef TOR_COVERAGE
+/* Sometimes we don't want to use assertions during branch coverage tests; it
+ * leads to tons of unreached branches which in reality are only assertions we
+ * didn't hit. */
+#if defined(TOR_UNIT_TESTS) && defined(DISABLE_ASSERTS_IN_UNIT_TESTS)
#define tor_assert(a) STMT_BEGIN \
(void)(a); \
STMT_END
diff --git a/src/common/util_format.c b/src/common/util_format.c
index 8d99138506..8aae9e8771 100644
--- a/src/common/util_format.c
+++ b/src/common/util_format.c
@@ -1,9 +1,16 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file util_format.c
+ *
+ * \brief Miscellaneous functions for encoding and decoding various things
+ * in base{16,32,64}.
+ */
+
#include "orconfig.h"
#include "torlog.h"
#include "util.h"
diff --git a/src/common/util_format.h b/src/common/util_format.h
index 3fb7e1ac16..a748a4f3cf 100644
--- a/src/common/util_format.h
+++ b/src/common/util_format.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001, Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_UTIL_FORMAT_H
diff --git a/src/common/util_process.c b/src/common/util_process.c
index 1e3b02cc9a..848b238318 100644
--- a/src/common/util_process.c
+++ b/src/common/util_process.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/common/util_process.h b/src/common/util_process.h
index c55cd8c5fa..d38301a354 100644
--- a/src/common/util_process.h
+++ b/src/common/util_process.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011-2015, The Tor Project, Inc. */
+/* Copyright (c) 2011-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/common/workqueue.c b/src/common/workqueue.c
index c467bdf43b..0a38550de0 100644
--- a/src/common/workqueue.c
+++ b/src/common/workqueue.c
@@ -1,6 +1,13 @@
/* copyright (c) 2013-2015, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file workqueue.c
+ *
+ * \brief Implements worker threads, queues of work for them, and mechanisms
+ * for them to send answers back to the main thread.
+ */
+
#include "orconfig.h"
#include "compat.h"
#include "compat_threads.h"
diff --git a/src/common/workqueue.h b/src/common/workqueue.h
index 9ce1eadafc..89282e6f21 100644
--- a/src/common/workqueue.h
+++ b/src/common/workqueue.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_WORKQUEUE_H
diff --git a/src/config/geoip b/src/config/geoip
index 16f1ada2c9..788e39815b 100644
--- a/src/config/geoip
+++ b/src/config/geoip
@@ -1,4 +1,4 @@
-# Last updated based on January 5 2016 Maxmind GeoLite2 Country
+# Last updated based on March 3 2016 Maxmind GeoLite2 Country
# wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz
# gunzip GeoLite2-Country.mmdb.gz
# python mmdb-convert.py GeoLite2-Country.mmdb
@@ -132,11 +132,7 @@
36700160,36962303,AE
36962304,37224447,IL
37486592,37748735,RU
-37748736,38064639,SE
-38064640,38064895,DK
-38064896,38134783,SE
-38134784,38135039,DK
-38135040,38273023,SE
+37748736,38273023,SE
38273024,38797311,KZ
38797312,39059455,PT
39059456,39321599,GR
@@ -144,11 +140,7 @@
39583744,39845887,RU
39845888,40370175,GB
40370176,40894463,DK
-40894464,41094879,IT
-41094880,41094887,SI
-41094888,41094895,IT
-41094896,41094903,SI
-41094904,41418751,IT
+40894464,41418751,IT
41418752,41943039,GB
41943040,42205183,DK
42205184,42467327,KZ
@@ -169,9 +161,7 @@
68305408,68305919,MX
68305920,68980223,US
68980224,68980479,CA
-68980480,70620927,US
-70620928,70621183,CA
-70621184,71670208,US
+68980480,71670208,US
71670209,71670209,NL
71670210,83886080,US
83886081,83951615,SY
@@ -221,7 +211,9 @@
84471808,84473855,IQ
84475904,84498681,DE
84498682,84498682,NL
-84498683,84545535,DE
+84498683,84517997,DE
+84517998,84517998,NL
+84517999,84545535,DE
84545536,84549631,GB
84549632,84551679,GE
84551680,84557823,DE
@@ -262,14 +254,18 @@
85368832,85377023,RS
85377024,85385215,IR
85385216,85387263,GB
-85387264,85389311,SE
+85387264,85387519,SE
+85387520,85387775,DK
+85387776,85389311,SE
85389312,85391359,DE
85391360,85393407,NL
+85394432,85394439,IT
85395456,85395711,TR
85395968,85396223,BE
85396480,85397503,ES
85398528,85398783,SA
85399552,85400063,FR
+85400576,85400583,ES
85401600,85403647,IT
85403648,85405695,FR
85405696,85407743,RU
@@ -314,9 +310,7 @@
86177280,86177791,US
86177792,86179839,LI
86179840,86220799,RU
-86220800,86222607,JE
-86222608,86222615,GB
-86222616,86222847,JE
+86220800,86222847,JE
86222848,86226943,NL
86226944,86228991,SE
86228992,86231039,BE
@@ -438,7 +432,9 @@
86452300,86452303,IT
86452304,86452367,FR
86452368,86452383,GB
-86452384,86452671,FR
+86452384,86452615,FR
+86452616,86452623,ES
+86452624,86452671,FR
86452672,86452735,GB
86452736,86453199,FR
86453200,86453203,ES
@@ -523,7 +519,9 @@
86469994,86469995,ES
86469996,86470002,FR
86470003,86470008,ES
-86470009,86470015,FR
+86470009,86470012,FR
+86470013,86470013,ES
+86470014,86470015,FR
86470016,86470047,ES
86470048,86470731,FR
86470732,86470735,BE
@@ -580,9 +578,7 @@
86767616,86769663,IT
86769664,86773759,RU
86773760,86777855,GB
-86777856,86778879,AZ
-86778880,86779135,RU
-86779136,86779903,AZ
+86777856,86779903,AZ
86779904,86786047,RU
86786048,86788095,NO
86788096,86790143,NL
@@ -668,21 +664,18 @@
87638016,87640063,UA
87640064,87642111,RS
87642112,87646207,GB
-87646208,87646463,FR
-87646464,87646975,RE
+87646208,87646463,RE
+87646464,87646719,FR
+87646720,87646975,RE
87646976,87647487,FR
87647488,87647743,RE
87647744,87647999,FR
-87648000,87648511,RE
-87648512,87648767,FR
-87648768,87649535,RE
-87649536,87650559,FR
+87648000,87648255,RE
+87648256,87648767,FR
+87648768,87649023,RE
+87649024,87650559,FR
87650560,87650815,RE
-87650816,87651327,FR
-87651328,87651583,RE
-87651584,87652607,FR
-87652608,87652863,RE
-87652864,87654399,FR
+87650816,87654399,FR
87654400,87670783,PL
87670784,87672831,DE
87672832,87674879,CH
@@ -723,15 +716,18 @@
87969792,87972863,IM
87972864,87973375,GI
87973376,87973887,IM
-87973888,87982079,DE
+87973888,87981567,DE
+87981568,87982079,TR
87982080,87988479,RU
87988480,87988735,US
87988736,87988863,LV
-87988864,87989247,RU
+87988864,87988991,LT
+87988992,87989247,RU
87989248,87989503,US
87989504,87989759,FR
87989760,87990015,US
-87990016,88014847,RU
+87990016,87990271,DE
+87990272,88014847,RU
88014848,88016895,LY
88016896,88018943,IR
88018944,88020991,GB
@@ -751,7 +747,9 @@
88080384,88604671,GB
88604672,88670207,RU
88670208,88670208,IR
-88670209,88866815,RU
+88670209,88735743,RU
+88735744,88834047,IR
+88834048,88866815,RU
88866816,88932351,KZ
88932352,88940543,RU
88940544,88948735,GB
@@ -845,6 +843,7 @@
90718208,90718719,DE
90718720,90719231,FR
90719232,90719487,AT
+90719488,90719999,SE
90720000,90720255,GB
90720256,90722303,IQ
90722304,90724351,FI
@@ -864,7 +863,9 @@
90757120,90759167,AT
90759168,90761215,NL
90761216,90763263,KZ
-90763264,90764287,IL
+90763264,90763519,IL
+90763520,90763775,US
+90763776,90764287,IL
90764288,90764799,US
90764800,90765311,IL
90765312,90767359,PL
@@ -1134,7 +1135,9 @@
92793056,92793087,ES
92793088,92795123,FR
92795124,92795127,IT
-92795128,92796687,FR
+92795128,92795631,FR
+92795632,92795639,CZ
+92795640,92796687,FR
92796688,92796691,DE
92796692,92797355,FR
92797356,92797359,DE
@@ -1163,9 +1166,7 @@
93425664,93426687,GI
93426688,93427085,DE
93427086,93427086,GI
-93427087,93427199,DE
-93427200,93427455,GI
-93427456,93427711,DE
+93427087,93427711,DE
93427712,93429759,NO
93429760,93431807,RU
93431808,93433855,ES
@@ -1201,8 +1202,8 @@
93749248,93753343,IT
93753344,93765631,GB
93765632,93774847,SE
-93774848,93775871,NO
-93775872,93782015,SE
+93774848,93776127,NO
+93776128,93782015,SE
93782016,93836287,GB
93836288,93836799,NL
93836800,93842351,GB
@@ -1645,7 +1646,9 @@
96786432,96786495,GB
96786496,96788143,FR
96788144,96788159,ES
-96788160,96792751,FR
+96788160,96792319,FR
+96792320,96792383,ES
+96792384,96792751,FR
96792752,96792767,DE
96792768,96793583,FR
96793584,96793599,DE
@@ -1690,7 +1693,9 @@
97437696,97439743,AT
97439744,97443839,NL
97443840,97445887,PT
-97445888,97447679,RS
+97445888,97447167,RS
+97447168,97447423,XK
+97447424,97447679,RS
97447680,97447935,XK
97447936,97452031,PL
97452032,97517567,UA
@@ -1835,8 +1840,14 @@
100532224,100548863,RO
100548864,100548875,TR
100548876,100548876,RO
-100548877,100549119,TR
-100549120,100559255,RO
+100548877,100549038,TR
+100549039,100549039,RO
+100549040,100549119,TR
+100549120,100554999,RO
+100555000,100555000,DE
+100555001,100555007,RO
+100555008,100555263,DE
+100555264,100559255,RO
100559256,100559263,EG
100559264,100559551,RO
100559552,100559615,GB
@@ -1913,8 +1924,8 @@
135945984,136054015,US
136054016,136054271,GB
136054272,136175615,US
-136175616,136175871,CA
-136175872,136237055,US
+136175616,136176127,CA
+136176128,136237055,US
136237056,136239103,CA
136239104,136404991,US
136404992,136407039,CA
@@ -1933,9 +1944,9 @@
202385408,202385919,PR
202385920,202706431,US
202706432,202706943,PR
-202706944,203272959,US
-203272960,203273215,GB
-203273216,203658975,US
+202706944,202935551,US
+202935552,202935807,PR
+202935808,203658975,US
203658976,203658991,VI
203658992,203659007,US
203659008,203659263,VI
@@ -1945,9 +1956,9 @@
204048032,204048047,PR
204048048,205884415,US
205884416,205884671,MX
-205884672,206010367,US
-206010368,206010623,MX
-206010624,211597719,US
+205884672,211041535,US
+211041536,211041791,CA
+211041792,211597719,US
211597720,211597727,VI
211597728,212787199,US
212787200,212788223,PR
@@ -1959,13 +1970,13 @@
214698240,214698255,VI
214698256,214698303,US
214698304,214698311,VI
-214698312,214779135,US
-214779136,214779263,PR
-214779264,214783487,US
+214698312,214783487,US
214783488,214783743,PR
214783744,214786047,US
-214786048,214786431,PR
-214786432,219249919,US
+214786048,214786303,PR
+214786304,214787583,US
+214787584,214787839,PR
+214787840,219249919,US
219249920,219250175,GB
219250176,219512063,US
219512064,219512319,GB
@@ -1977,7 +1988,8 @@
222691328,222707711,HK
222707712,222740479,AU
222740480,222756863,IE
-222756864,222789631,IN
+222756864,222773247,US
+222773248,222789631,IN
222789632,222806015,JP
222806016,222871551,US
222871552,222879743,HK
@@ -1987,7 +1999,10 @@
222912512,222920703,AU
222920704,222937087,NL
222937088,222941183,AU
-222941184,222953471,US
+222941184,222945279,US
+222945280,222947327,NL
+222947328,222949375,JP
+222949376,222953471,US
222953472,223019007,IE
223019008,223051775,HK
223051776,223084543,AU
@@ -2000,9 +2015,32 @@
223346688,223477759,NL
223477760,223805439,US
223805440,223838207,GB
-223838208,224198655,US
-224198656,224264191,NL
-224264192,234881023,US
+223838208,223922175,US
+223922176,223924223,NL
+223924224,223928319,HK
+223928320,223936511,CA
+223936512,224198655,US
+224198656,224231423,NL
+224231424,224264191,US
+224264192,224280575,HK
+224280576,224296959,IE
+224296960,224395263,NL
+224395264,225050623,US
+225050624,225051647,IN
+225051648,225052159,SG
+225052160,225052671,JP
+225052672,225053183,CA
+225053184,225055231,GB
+225055232,225055743,JP
+225055744,225060863,US
+225060864,225061375,JP
+225061376,225061887,CA
+225061888,225062399,HK
+225062400,225062911,US
+225062912,225063423,CA
+225063424,225065471,US
+225065472,225066495,AU
+225066496,234881023,US
234881024,234883071,CN
234883072,234884095,JP
234884096,234885119,CN
@@ -2026,6 +2064,12 @@
234952704,234953727,CN
234953728,234954751,SG
234954752,234971135,NZ
+234971136,234972159,CN
+234972160,234973183,BD
+234973184,234974207,PK
+234974208,234975231,CN
+234975232,234976255,SG
+234976256,234979327,IN
234979328,235012095,MY
235012096,235077631,AU
235077632,235143167,JP
@@ -2034,9 +2078,7 @@
235929600,236978175,CN
236978176,241172479,KR
241172480,241434623,IN
-241434624,241469039,SG
-241469040,241469047,MY
-241469048,241500159,SG
+241434624,241500159,SG
241500160,241565695,JP
241565696,241598463,IN
241598464,241599487,CN
@@ -2045,6 +2087,14 @@
241602560,241604607,MY
241604608,241605631,ID
241605632,241606655,CN
+241606656,241607679,IN
+241607680,241608703,JP
+241608704,241609727,PH
+241609728,241610751,PK
+241610752,241611775,JP
+241611776,241612799,CN
+241612800,241613823,HK
+241613824,241614847,IN
241614848,241623039,JP
241623040,241627135,IN
241627136,241631231,HK
@@ -2067,6 +2117,12 @@
243990528,244318207,IN
244318208,245366783,CN
245366784,247463935,VN
+247463936,247464959,IN
+247464960,247465983,CN
+247465984,247467007,HK
+247467008,247469055,IN
+247469056,247470079,HK
+247470080,247472127,IN
247472128,247476223,JP
247479296,247480319,CN
247480320,247482367,MY
@@ -2107,15 +2163,17 @@
264997120,264997375,US
264997376,265005311,FR
265005312,265005567,US
-265005568,265011199,FR
+265005568,265007615,FR
+265007616,265007871,GB
+265007872,265011199,FR
265011200,265023487,US
265023488,265027583,GB
265027584,265060351,US
265060352,265093119,FR
-265093120,265523711,US
-265523712,265523967,AU
-265523968,265533695,US
-265533696,265533951,JP
+265093120,265531903,US
+265531904,265532159,JP
+265532160,265533695,US
+265533696,265533951,PH
265533952,266062079,US
266062080,266062335,IN
266062336,266070271,US
@@ -2146,10 +2204,13 @@
288212992,288215039,CA
288215040,288223231,US
288223232,288227327,CA
-288227328,289652735,US
+288227328,289642495,US
+289642496,289643007,GB
+289643008,289652735,US
289652736,289653759,NL
289653760,289654271,DE
-289654272,289655807,US
+289654272,289654783,US
+289654784,289655807,CZ
289655808,289656831,DE
289656832,289657855,BE
289657856,289658879,AE
@@ -2165,7 +2226,8 @@
289794048,289795071,US
289795072,289796095,GB
289796096,289798143,TR
-289798144,289948927,US
+289798144,289800191,SA
+289800192,289948927,US
289948928,289949055,AT
289949056,289949183,US
289949184,289949695,RU
@@ -2211,9 +2273,7 @@
290270208,290271231,PT
290271232,290277375,US
290277376,290279423,GB
-290279424,290280447,US
-290280448,290280703,GB
-290280704,290295295,US
+290279424,290295295,US
290295296,290295807,IN
290295808,290299903,US
290299904,290300927,LU
@@ -2231,15 +2291,24 @@
290377728,290379775,GB
290379776,290423807,US
290423808,290424831,SE
-290424832,344195839,US
-344195840,344196095,CA
-344196096,344260607,US
+290424832,300646399,US
+300646400,300650495,JP
+300650496,300654591,SG
+300654592,300658687,US
+300658688,300662783,AU
+300662784,300666879,GB
+300666880,300670975,NL
+300670976,300675071,IE
+300675072,300679167,IL
+300679168,301989119,US
+301989120,301989375,AU
+301989376,344260607,US
344260608,344260863,GB
344260864,344262655,US
344262656,344262911,GB
-344262912,344270860,US
-344270861,344270861,GB
-344270862,344588799,US
+344262912,344270847,US
+344270848,344271103,GB
+344271104,344588799,US
344588800,344589055,GB
344589056,344592895,US
344592896,344592945,GB
@@ -2681,7 +2750,8 @@
392310016,392310271,US
392310272,392310527,NL
392310528,392312831,US
-392312832,392314879,JP
+392312832,392313343,JP
+392313344,392314879,US
392314880,392331263,SG
392331264,392388607,US
392388608,392396799,HK
@@ -2693,31 +2763,198 @@
392452096,392454143,HK
392454144,392458239,JP
392458240,392460287,SG
-392460288,392495103,US
+392460288,392462335,US
+392462336,392478719,IE
+392478720,392495103,US
392495104,392499199,HK
392499200,392503295,SG
392503296,392507391,US
392507392,392511487,IE
392511488,392515583,NL
-392515584,392523775,JP
-392523776,392548351,US
-392548352,392556543,AU
-392556544,392579345,US
-392579346,392579346,JP
-392579347,392659871,US
-392659872,392659903,NL
-392659904,392765439,US
+392515584,392548351,US
+392548352,392560639,AU
+392560640,392577023,IE
+392577024,392585215,JP
+392585216,392611839,US
+392611840,392612351,HK
+392612352,392617983,US
+392617984,392626175,HK
+392626176,392658943,US
+392658944,392659199,JP
+392659200,392659327,US
+392659328,392659455,AU
+392659456,392659583,JP
+392659584,392659711,AU
+392659712,392659823,US
+392659824,392659855,SG
+392659856,392667135,US
+392667136,392671231,JP
+392671232,392672895,US
+392672896,392672959,NL
+392672960,392673087,SG
+392673088,392674591,US
+392674592,392674623,HK
+392674624,392674751,US
+392674752,392674815,HK
+392674816,392674879,SG
+392674880,392674911,US
+392674912,392674943,SG
+392674944,392675007,US
+392675008,392675023,IE
+392675024,392684479,US
+392684480,392684495,NL
+392684496,392684511,IE
+392684512,392684559,NL
+392684560,392684575,IE
+392684576,392684623,NL
+392684624,392684639,IE
+392684640,392684687,NL
+392684688,392684703,IE
+392684704,392684751,NL
+392684752,392684767,IE
+392684768,392684815,NL
+392684816,392684831,IE
+392684832,392684943,NL
+392684944,392684959,IE
+392684960,392685007,NL
+392685008,392685023,IE
+392685024,392685071,NL
+392685072,392685087,IE
+392685088,392685135,NL
+392685136,392685151,IE
+392685152,392685183,NL
+392685184,392686607,US
+392686608,392686623,AT
+392686624,392686639,FI
+392686640,392686655,IE
+392686656,392686671,US
+392686672,392686687,AT
+392686688,392686703,FI
+392686704,392686719,IE
+392686720,392686735,US
+392686736,392686751,AT
+392686752,392686767,FI
+392686768,392686783,IE
+392686784,392686799,US
+392686800,392686815,AT
+392686816,392686831,FI
+392686832,392686847,IE
+392686848,392686863,US
+392686864,392686879,AT
+392686880,392686895,FI
+392686896,392686911,IE
+392686912,392686927,US
+392686928,392686943,IE
+392686944,392686959,FI
+392686960,392686975,AT
+392686976,392686991,US
+392686992,392687007,IE
+392687008,392687023,FI
+392687024,392687039,AT
+392687040,392687055,US
+392687056,392687071,IE
+392687072,392687087,FI
+392687088,392687103,AT
+392687104,392687119,US
+392687120,392687135,IE
+392687136,392687151,FI
+392687152,392687167,AT
+392687168,392687183,US
+392687184,392687199,IE
+392687200,392687215,FI
+392687216,392687231,AT
+392687232,392687631,US
+392687632,392687647,NL
+392687648,392687695,US
+392687696,392687711,NL
+392687712,392687759,US
+392687760,392687775,NL
+392687776,392687823,US
+392687824,392687839,NL
+392687840,392687887,US
+392687888,392687903,NL
+392687904,392689295,US
+392689296,392689311,NL
+392689312,392689327,AT
+392689328,392689343,IE
+392689344,392689359,US
+392689360,392689375,NL
+392689376,392689391,AT
+392689392,392689407,IE
+392689408,392689423,US
+392689424,392689439,NL
+392689440,392689455,AT
+392689456,392689471,IE
+392689472,392689487,US
+392689488,392689503,NL
+392689504,392689519,AT
+392689520,392689535,IE
+392689536,392689551,US
+392689552,392689567,NL
+392689568,392689583,AT
+392689584,392689599,IE
+392689600,392689615,US
+392689616,392689631,NL
+392689632,392689647,AT
+392689648,392689663,IE
+392689664,392689679,US
+392689680,392689695,NL
+392689696,392689711,AT
+392689712,392689727,IE
+392689728,392689743,US
+392689744,392689759,NL
+392689760,392689775,AT
+392689776,392689791,IE
+392689792,392689807,US
+392689808,392689823,NL
+392689824,392689839,AT
+392689840,392689855,IE
+392689856,392689871,US
+392689872,392689887,NL
+392689888,392689903,AT
+392689904,392689919,IE
+392689920,392689983,US
+392689984,392690015,SG
+392690016,392690031,KR
+392690032,392690047,MY
+392690048,392690079,US
+392690080,392690095,KR
+392690096,392690111,MY
+392690112,392690431,US
+392690432,392690687,NL
+392690688,392690703,SG
+392690704,392690719,HK
+392690720,392690879,NL
+392690880,392690943,US
+392690944,392690975,HK
+392690976,392691007,SG
+392691008,392691023,HK
+392691024,392691039,SG
+392691040,392691055,KR
+392691056,392691071,MY
+392691072,392691327,US
+392691328,392691343,NL
+392691344,392691359,IE
+392691360,392691375,FI
+392691376,392691391,AT
+392691392,392691407,NL
+392691408,392691423,IE
+392691424,392691439,FI
+392691440,392691455,AT
+392691456,392765439,US
392765440,392765695,GB
392765696,394264575,US
394264576,394264831,CA
394270720,394271231,NL
394296320,394296831,NL
-394526720,394526975,US
-394788864,394789119,US
-395051008,395051263,CA
+394395648,394395903,US
+394526720,395051007,US
+395051008,395313151,CA
395313152,397410303,US
397410304,397410559,CA
+397672448,397672703,US
397934592,397934847,US
+398196736,398196991,KY
398458880,398500351,US
398500352,398500863,NL
398500864,398617599,US
@@ -2870,7 +3107,9 @@
400912128,400912383,SG
400912384,401114367,US
401114368,401114623,DE
-401114624,401125119,US
+401114624,401115903,US
+401115904,401116159,GB
+401116160,401125119,US
401125120,401125375,DE
401125376,401129727,US
401129728,401129983,FR
@@ -2889,7 +3128,7 @@
401144576,401144831,MA
401144832,401145087,OM
401145088,401145343,CO
-401145344,401145599,SC
+401145344,401145599,GB
401145600,401145855,YE
401145856,401211391,CA
401211392,401232375,US
@@ -2916,7 +3155,9 @@
402098176,402098431,BN
402098432,402098687,BH
402098688,402098943,AW
-402098944,402105087,US
+402098944,402099711,US
+402099712,402099967,GB
+402099968,402105087,US
402105088,402105343,GB
402105344,402107391,US
402107392,402107647,IT
@@ -2929,7 +3170,9 @@
402169856,402223103,US
402223104,402227199,CA
402227200,402227455,PR
-402227456,402231295,US
+402227456,402227711,US
+402227712,402227967,PR
+402227968,402231295,US
402235392,402239301,US
402239302,402239302,CA
402239303,402239473,US
@@ -2993,22 +3236,22 @@
406216704,406241279,US
406241280,406257663,PR
406257664,406274047,US
-406274048,406284031,PR
-406284032,406284287,US
-406284288,406284543,PR
-406284544,406284799,US
-406284800,406290431,PR
+406274048,406288383,PR
+406288384,406288639,US
+406288640,406288959,PR
+406288960,406289151,US
+406289152,406289215,PR
+406289216,406289279,US
+406289280,406290431,PR
406290432,406298623,US
406298624,406306815,PR
406306816,406323199,CA
406323200,406388735,US
406388736,406454271,CA
-406454272,406683647,US
-406683648,406683775,CA
-406683776,406684031,US
-406684032,406684159,CA
-406684160,406838783,US
-406838784,406839295,CA
+406454272,406683903,US
+406683904,406684159,CA
+406684160,406839039,US
+406839040,406839295,CA
406839296,406847487,US
406847488,407408639,CA
407408640,407613439,US
@@ -3074,14 +3317,18 @@
412708864,412909567,US
412909568,412942335,CA
412942336,412946431,US
-412946432,412950527,PR
+412946432,412948543,PR
+412948544,412948735,US
+412948736,412950527,PR
412950528,412958719,US
412958720,413007871,CA
413007872,413908991,US
413908992,413925375,PR
413925376,414502783,US
414502784,414502911,CA
-414502912,415760383,US
+414502912,414503295,US
+414503296,414503423,CA
+414503424,415760383,US
415760384,416022527,CA
416022528,416059391,US
416059392,416088063,CA
@@ -3128,36 +3375,56 @@
418766848,418770943,CA
418770944,418775039,US
418775040,418799615,CA
-418799616,419430399,US
-419430400,436207615,GB
+418799616,419035519,US
+419035520,419035647,VI
+419035648,419430399,US
+419430400,423757823,GB
+423757824,423759871,US
+423759872,436207615,GB
436207616,452984831,US
452984832,452985855,JP
452985856,452986879,MY
452986880,452987903,SG
452987904,452988927,VN
452988928,452989183,US
-452989184,452989439,JP
-452989440,452990207,US
-452990208,452990463,JP
-452990464,452990719,US
-452990720,452991231,JP
-452991232,452991487,US
-452991488,452992767,JP
+452989184,452989695,JP
+452989696,452989951,US
+452989952,452990463,JP
+452990464,452990975,US
+452990976,452992767,JP
452992768,452993023,US
452993024,452997119,JP
452997120,453001215,IN
453001216,453009407,AU
453009408,453017599,BD
+453017600,453019647,CN
+453019648,453023743,IN
+453023744,453024767,TW
+453024768,453025791,HK
+453025792,453027839,CN
+453027840,453031935,IN
+453031936,453032959,PK
+453032960,453033983,CN
+453033984,453035007,HK
+453035008,453036031,ID
+453036032,453037055,IN
+453037056,453040127,CN
+453040128,453045247,IN
+453045248,453046271,KR
+453046272,453047295,VN
+453047296,453050367,IN
453050368,453115903,KR
453115904,453246975,VN
453246976,453509119,IN
453509120,455081983,CN
455081984,455213055,AU
-455213056,455215359,NP
-455215360,455215615,RU
-455215616,455245823,NP
+455213056,455245823,NP
455245824,455258111,JP
-455258112,455262207,SG
+455258112,455258623,SG
+455258624,455258688,KH
+455258689,455260672,SG
+455260673,455260736,KH
+455260737,455262207,SG
455262208,455270399,JP
455270400,455272447,AU
455272448,455274495,CN
@@ -3321,8 +3588,8 @@
460983296,460984319,HK
460984320,460988415,PG
460988416,460994559,JP
-460994560,460995327,MY
-460995328,460995583,SG
+460994560,460995071,MY
+460995072,460995583,SG
460995584,460996607,IN
460996608,461008895,JP
461008896,461012991,AU
@@ -3337,7 +3604,9 @@
461058048,461062143,HK
461062144,461078527,IN
461078528,461094911,FJ
-461094912,461096959,HK
+461094912,461095423,HK
+461095424,461095935,SG
+461095936,461096959,HK
461096960,461099007,TW
461099008,461100031,JP
461100032,461101055,MN
@@ -3430,7 +3699,8 @@
520339456,520343551,UA
520343552,520355839,GB
520355840,520421375,ES
-520421376,520486911,BE
+520421376,520454143,RO
+520454144,520486911,BE
520486912,520488959,NL
520488960,520489983,IT
520489984,520490495,RU
@@ -3482,7 +3752,9 @@
520505344,520507391,GB
520507392,520511487,TR
520511488,520519679,UA
-520519680,520552447,PL
+520519680,520524287,PL
+520524288,520524543,GB
+520524544,520552447,PL
520552448,520554495,NL
520554496,520556543,GB
520556544,520560639,FI
@@ -3536,7 +3808,7 @@
520978432,520980479,RU
520980480,520982527,IT
520982528,520984575,RU
-520984576,520986623,NG
+520984576,520986623,GB
520986624,520988671,PS
520988672,520990719,DE
520990720,520992767,RU
@@ -3564,9 +3836,7 @@
521037568,521037823,TH
521037824,521039871,RO
521039872,521043967,IR
-521043968,521045286,RO
-521045287,521045287,IT
-521045288,521048063,RO
+521043968,521048063,IT
521048064,521052159,IR
521052160,521056255,RO
521056256,521057279,LT
@@ -3599,7 +3869,9 @@
521404416,521535487,NL
521535488,521537535,GB
521539584,521541631,BE
-521541632,521543679,DE
+521541632,521542655,DE
+521542656,521542783,CH
+521542784,521543679,DE
521543680,521545727,RU
521545728,521547775,GB
521547776,521551871,AL
@@ -3612,8 +3884,7 @@
521563136,521564159,NL
521564160,521565183,GR
521565184,521565439,GB
-521565440,521565695,US
-521565696,521566207,GR
+521565440,521566207,GR
521566208,521568255,LU
521568256,521601023,PT
521601024,521666559,RU
@@ -3649,7 +3920,9 @@
521717760,521718783,IQ
521718784,521719807,IR
521719808,521721855,UA
-521721856,521725951,GB
+521721856,521724159,GB
+521724160,521724415,AU
+521724416,521725951,GB
521725952,521727999,IR
521728000,521732095,FR
521732096,521736191,GB
@@ -4119,9 +4392,7 @@
532310016,532312063,GR
532312064,532312983,JE
532312984,532312991,GB
-532312992,532313855,JE
-532313856,532313983,GG
-532313984,532314111,JE
+532312992,532314111,JE
532314112,532316159,DE
532316160,532324351,RU
532324352,532328447,NL
@@ -4272,13 +4543,13 @@
533858752,533858815,AT
533858816,533858895,TR
533858896,533858903,AT
-533858904,533859647,TR
+533858904,533859071,TR
+533859072,533859087,AT
+533859088,533859647,TR
533859648,533859663,AT
533859664,533860351,TR
533862400,533864447,GB
-533864448,533886719,TR
-533886720,533886975,JP
-533886976,533889023,TR
+533864448,533889023,TR
533889024,533891071,GB
533891072,533893119,RU
533893120,533895167,ES
@@ -4334,7 +4605,8 @@
534374400,534376447,FR
534376448,534378495,IE
534380544,534511615,AE
-534511616,534512639,BZ
+534511616,534511871,NL
+534511872,534512639,BZ
534512640,534512895,NL
534512896,534513151,SE
534513152,534513215,BS
@@ -4431,9 +4703,11 @@
539656192,539660287,IN
539660288,539666431,HK
539666432,539668479,JP
-539668480,539668819,AU
-539668820,539668823,NZ
-539668824,539670527,AU
+539668480,539668735,AU
+539668736,539668891,NZ
+539668892,539668892,AU
+539668893,539668991,NZ
+539668992,539670527,AU
539670528,539672575,JP
539672576,540725247,US
540725248,540727295,FR
@@ -4443,7 +4717,9 @@
540733440,540737535,NL
540737536,540737757,BZ
540737758,540737758,BR
-540737759,540783936,BZ
+540737759,540753919,BZ
+540753920,540754175,AR
+540754176,540783936,BZ
540783937,540783937,BR
540783938,540803071,BZ
540803072,540811263,US
@@ -4493,11 +4769,7 @@
544436772,544436775,CA
544436776,548441343,US
548441344,548441599,PR
-548441600,586972927,US
-586972928,586973183,CA
-586973184,586978047,US
-586978048,586978303,BN
-586978304,587006719,US
+548441600,587006719,US
587006720,587006975,GB
587006976,603979775,US
603979776,603980799,CN
@@ -4525,6 +4797,52 @@
620232704,620494847,CN
620494848,620625919,NP
620625920,620691455,CN
+620691456,620699647,IN
+620699648,620700671,PK
+620700672,620701695,SG
+620701696,620703743,PK
+620703744,620704767,NZ
+620704768,620705791,BD
+620705792,620706815,HK
+620706816,620707839,PK
+620707840,620708863,IN
+620708864,620709887,HK
+620709888,620711935,AU
+620711936,620712959,HK
+620712960,620715007,IN
+620715008,620716031,AU
+620716032,620718079,PK
+620718080,620720127,IN
+620720128,620721151,AU
+620721152,620722175,CN
+620722176,620723199,JP
+620723200,620724223,SG
+620724224,620725247,CN
+620725248,620726271,IN
+620726272,620727295,TH
+620727296,620728319,MY
+620728320,620729343,KH
+620729344,620731391,SG
+620731392,620732415,IN
+620732416,620733439,JP
+620733440,620734463,CN
+620734464,620735487,IN
+620735488,620737535,CN
+620737536,620739583,IN
+620739584,620740607,BD
+620740608,620741631,CN
+620741632,620743679,IN
+620743680,620744703,HK
+620744704,620745727,IN
+620745728,620746751,PK
+620746752,620747775,JP
+620747776,620748799,PH
+620748800,620751871,IN
+620751872,620752895,JP
+620752896,620753919,IN
+620753920,620754943,PH
+620754944,620755967,BD
+620755968,620756991,IN
620756992,620759039,IE
620759040,620763135,NL
620763136,620765183,EE
@@ -4574,7 +4892,9 @@
621330432,621346815,PL
621346816,621355007,RU
621355008,621357055,UA
-621357056,621361151,RU
+621357056,621358079,RU
+621358080,621358591,US
+621358592,621361151,RU
621361152,621363199,GB
621363200,621381631,RU
621381632,621383679,FR
@@ -4629,9 +4949,7 @@
621939712,621940479,RU
621940480,621942527,GB
621942528,621969407,RU
-621971456,621971711,GB
-621971712,621973247,IM
-621973248,621973503,GB
+621971456,621973503,IM
621973504,621975551,IE
621975552,621977599,RU
621977600,621981695,FR
@@ -4688,7 +5006,9 @@
622518272,622518527,GB
622518528,622519281,NL
622519282,622519282,GB
-622519283,622520319,NL
+622519283,622519351,NL
+622519352,622519359,FR
+622519360,622520319,NL
622520320,622522367,RU
622522368,622524415,FR
622524416,622526463,ES
@@ -4853,7 +5173,9 @@
624646400,624646431,BE
624646432,624646583,FR
624646584,624646591,NL
-624646592,624647171,FR
+624646592,624646651,FR
+624646652,624646655,PT
+624646656,624647171,FR
624647172,624647183,ES
624647184,624647459,FR
624647460,624647463,GB
@@ -5099,9 +5421,9 @@
625506304,625508351,PL
625508352,625512447,AZ
625512448,625514495,DE
-625514496,625515007,GG
-625515008,625515519,GB
-625515520,625515775,GG
+625514496,625514751,GG
+625514752,625515263,GB
+625515264,625515775,GG
625515776,625516031,GB
625516032,625516287,GG
625516288,625516543,GB
@@ -5233,8 +5555,12 @@
628847616,628848639,GB
628848640,628850687,DE
628850688,628851455,SE
-628851456,628852479,NO
-628852480,628867071,SE
+628851456,628851711,NO
+628851712,628852223,SE
+628852224,628852723,NO
+628852724,628852727,SE
+628852728,628852735,NO
+628852736,628867071,SE
628867072,628869119,IR
628869120,628871167,PL
628871168,628873215,US
@@ -5412,7 +5738,7 @@
630999680,631001087,RO
631001088,631005183,MD
631005184,631006207,IT
-631006208,631007231,MD
+631006208,631007231,IR
631007232,631007487,KR
631007488,631007743,RO
631007744,631007871,GB
@@ -5436,7 +5762,8 @@
631036160,631036415,RO
631036416,631036543,GB
631036544,631039999,RO
-631040000,631043071,MD
+631040000,631042047,IR
+631042048,631043071,MD
631043072,631043839,RO
631043840,631045119,MD
631045120,631046143,RO
@@ -5497,7 +5824,9 @@
633290752,633298943,IR
633298944,633307135,GB
633307136,633339903,NO
-633339904,633602047,RU
+633339904,633599743,RU
+633599744,633599999,DE
+633600000,633602047,RU
633602048,633864191,SE
633864192,633880575,NO
633880576,633884671,RU
@@ -5524,9 +5853,7 @@
634075136,634077183,NL
634077184,634093567,BA
634093568,634109951,GB
-634109952,634110975,IE
-634110976,634111231,GB
-634111232,634111999,IE
+634109952,634111999,IE
634112000,634114047,RU
634114048,634116095,SE
634116096,634118143,NL
@@ -5621,7 +5948,8 @@
635224064,635240447,HU
635240448,635256831,IR
635273216,635281407,UA
-635281408,635283455,RO
+635281408,635281663,TR
+635281664,635283455,RO
635283456,635283967,DE
635283968,635284223,RO
635284224,635284418,DE
@@ -5649,7 +5977,9 @@
635723776,635725823,ES
635725824,635727871,US
635727872,635729919,RU
-635729920,635748351,DE
+635729920,635733209,DE
+635733210,635733210,PT
+635733211,635748351,DE
635748352,635764735,IE
635764736,635830271,UA
635830272,635842559,DE
@@ -5659,7 +5989,9 @@
635856896,635858943,TR
635858944,635860991,RU
635860992,635863039,BE
-635863040,635893503,RU
+635863040,635864831,RU
+635864832,635865087,NL
+635865088,635893503,RU
635893504,635893759,AZ
635893760,635894527,RU
635894528,635894783,KZ
@@ -5782,51 +6114,51 @@
641738240,641738495,CA
641738496,641761535,US
641761536,641761791,CA
-641761792,641763071,US
-641763072,641763839,CA
+641761792,641763327,US
+641763328,641763839,CA
641763840,641765375,US
641765376,641765887,CA
-641765888,641766911,US
+641765888,641766399,US
+641766400,641766655,CA
+641766656,641766911,US
641766912,641767167,CA
-641767168,641771519,US
+641767168,641768703,US
+641768704,641768959,CA
+641768960,641771519,US
641771520,641772543,CA
641772544,641773055,US
641773056,641773567,CA
-641773568,641775615,US
+641773568,641774079,US
+641774080,641774335,CA
+641774336,641775615,US
641775616,641775871,CA
641775872,641776639,US
641776640,641777407,CA
641777408,641777663,US
641777664,641777919,CA
-641777920,641779199,US
+641777920,641778175,US
+641778176,641778431,CA
+641778432,641779199,US
641779200,641779327,CA
-641779328,641828351,US
-641828352,641828607,MX
-641828608,641829057,US
-641829058,641829058,MX
-641829059,641829119,US
-641829120,641829375,MX
+641779328,641780735,US
+641780736,641780991,CA
+641780992,641828863,US
+641828864,641829375,MX
641829376,641830143,US
641830144,641830399,MX
-641830400,642089215,US
-642089216,642089471,CA
-642089472,642092543,US
+641830400,642089471,US
+642089472,642089727,CA
+642089728,642092543,US
642092544,642092799,CA
642092800,642093311,US
-642093312,642093823,CA
-642093824,642094079,US
+642093312,642093567,CA
+642093568,642094079,US
642094080,642094591,CA
642094592,642097919,US
642097920,642098175,CA
642098176,642113535,US
642113536,642115583,AU
-642115584,642387967,US
-642387968,642388223,CA
-642388224,642390015,US
-642390016,642390527,CA
-642390528,642391039,US
-642391040,642391295,CA
-642391296,642395135,US
+642115584,642395135,US
642395136,642395391,CA
642395392,642793471,US
642793472,642793983,CA
@@ -5837,8 +6169,8 @@
643219528,643295231,US
643295232,643295487,PR
643295488,643296767,US
-643296768,643297023,PR
-643297024,643302911,US
+643296768,643297279,PR
+643297280,643302911,US
643302912,643303039,CA
643303040,643303167,US
643303168,643303423,CA
@@ -5848,49 +6180,39 @@
643318272,643319039,CA
643319040,643346431,US
643346432,643346943,CA
-643346944,644055039,US
-644055040,644055807,CA
+643346944,644055295,US
+644055296,644055807,CA
644055808,644056063,US
-644056064,644056319,CA
-644056320,644056575,US
-644056576,644056831,CA
+644056064,644056831,CA
644056832,644057087,US
644057088,644057599,CA
-644057600,644058367,US
-644058368,644058879,CA
+644057600,644058111,US
+644058112,644058879,CA
644058880,644059135,US
-644059136,644059391,CA
-644059392,644060927,US
-644060928,644061183,CA
-644061184,644063231,US
+644059136,644059647,CA
+644059648,644060671,US
+644060672,644061631,CA
+644061632,644061663,US
+644061664,644061695,CA
+644061696,644063231,US
644063232,644063743,CA
644063744,644063999,US
644064000,644064767,CA
644064768,644065055,US
644065056,644065279,CA
644065280,644066303,US
-644066304,644066815,CA
-644066816,644067071,US
-644067072,644067327,CA
-644067328,644067583,US
-644067584,644067839,CA
+644066304,644066559,CA
+644066560,644067327,US
+644067328,644067839,CA
644067840,644069631,US
-644069632,644069887,CA
-644069888,644070143,US
-644070144,644070399,CA
+644069632,644070399,CA
644070400,644070655,US
-644070656,644071167,CA
-644071168,644084479,US
+644070656,644071423,CA
+644071424,644084479,US
644084480,644084735,GU
-644084736,644236031,US
-644236032,644236287,CA
-644236288,644239615,US
+644084736,644239615,US
644239616,644239871,CA
-644239872,644247551,US
-644247552,644247807,CA
-644247808,644248831,US
-644248832,644249087,CA
-644249088,644268543,US
+644239872,644268543,US
644268544,644268569,CA
644268570,644268570,US
644268571,644268613,CA
@@ -5899,86 +6221,89 @@
644268800,644323327,US
644323328,644323583,CA
644323584,644324095,US
-644324096,644324351,CA
-644324352,644389375,US
-644389376,644389631,CA
-644389632,644389887,US
-644389888,644390911,CA
+644324096,644324607,CA
+644324608,644389631,US
+644389632,644390911,CA
644390912,644399103,US
644399104,644399359,CA
644399360,644403199,US
644403200,644403711,CA
-644403712,644413439,US
+644403712,644408063,US
+644408064,644408319,CA
+644408320,644413439,US
644413440,644413695,MX
644413696,644414207,US
644414208,644414463,CA
644414464,644422911,US
644422912,644423423,JP
-644423424,644524607,US
+644423424,644424703,US
+644424704,644424959,CA
+644424960,644524607,US
644524608,644524671,CA
644524672,644569087,US
644569088,644569599,PR
644569600,644569855,US
-644569856,644570367,PR
-644570368,644570879,US
+644569856,644570111,PR
+644570112,644570879,US
644570880,644571135,PR
644571136,644628735,US
644628736,644628991,CA
-644628992,644630271,US
-644630272,644630527,CA
-644630528,644631039,US
+644628992,644631039,US
644631040,644631295,CA
-644631296,644634367,US
+644631296,644633343,US
+644633344,644633599,CA
+644633600,644634367,US
644634368,644634623,CA
-644634624,644718591,US
-644718592,644718911,CA
-644718912,644759551,US
+644634624,644718847,US
+644718848,644718911,CA
+644718912,644719103,RU
+644719104,644719871,US
+644719872,644720127,CA
+644720128,644759551,US
644759552,644759807,CA
644759808,644760575,US
644760576,644760831,CA
644760832,644761343,US
644761344,644761599,CA
-644761600,644762879,US
-644762880,644763135,CA
-644763136,644763903,US
-644763904,644764159,CA
+644761600,644763647,US
+644763648,644764159,CA
644764160,644765439,US
644765440,644765695,CA
-644765696,644767878,US
+644765696,644766975,US
+644766976,644767231,CA
+644767232,644767878,US
644767879,644767879,CA
-644767880,644768511,US
-644768512,644768767,CA
-644768768,644775679,US
+644767880,644775679,US
644775680,644775935,CA
-644775936,644834047,US
-644834048,644834303,CA
-644834304,644834815,US
-644834816,644835327,CA
+644775936,644835071,US
+644835072,644835327,CA
644835328,644838655,US
644838656,644839423,CA
644839424,644840447,US
-644840448,644840703,CA
-644840704,644875007,US
+644840448,644840959,CA
+644840960,644845823,US
+644845824,644846079,RU
+644846080,644874495,US
+644874496,644874751,CA
+644874752,644875007,US
644875008,644875263,CA
-644875264,644894975,US
-644894976,644895231,CA
-644895232,644897023,US
+644875264,644876223,US
+644876224,644876255,CA
+644876256,644897023,US
644897024,644897279,CA
644897280,644897791,US
644897792,644898047,CA
-644898048,644898815,US
-644898816,644899071,CA
-644899072,644899839,US
+644898048,644899839,US
644899840,644900095,CA
-644900096,644901631,US
-644901632,644901887,CA
-644901888,644903167,US
-644903168,644903679,CA
-644903680,644904959,US
-644904960,644905215,CA
-644905216,644906239,US
+644900096,644901375,US
+644901376,644901887,CA
+644901888,644903679,US
+644903680,644903935,CA
+644903936,644906239,US
644906240,644906495,CA
-644906496,644987135,US
+644906496,644981759,US
+644981760,644982015,CA
+644982016,644987135,US
644987136,644987391,CA
644987392,644987647,US
644987648,644987903,CA
@@ -5994,25 +6319,29 @@
645223424,645223679,CA
645223680,645225471,US
645225472,645225727,CA
-645225728,645229311,US
-645229312,645229823,CA
-645229824,645483263,US
+645225728,645227519,US
+645227520,645227775,CA
+645227776,645229055,US
+645229056,645230079,CA
+645230080,645481405,US
+645481406,645481406,CA
+645481407,645481471,US
+645481472,645481727,CA
+645481728,645483263,US
645483264,645483519,CA
-645483520,645484543,US
-645484544,645485055,CA
-645485056,645526527,US
+645483520,645526015,US
+645526016,645526271,CA
+645526272,645526527,US
645526528,645526783,CA
645526784,645527295,US
645527296,645527551,CA
-645527552,645528319,US
-645528320,645528575,CA
-645528576,645529343,US
-645529344,645529599,CA
-645529600,645540351,US
+645527552,645528191,US
+645528192,645528575,CA
+645528576,645540351,US
645540352,645540607,CA
645540608,645547007,US
-645547008,645547519,CA
-645547520,645576703,US
+645547008,645547263,CA
+645547264,645576703,US
645576704,645576997,CA
645576998,645576998,US
645576999,645577215,CA
@@ -6024,31 +6353,45 @@
645644928,645645055,MX
645645056,645647103,US
645647104,645647359,MX
-645647360,645704447,US
+645647360,645647615,US
+645647616,645647871,MX
+645647872,645704447,US
645704448,645704703,MX
645704704,645705215,US
645705216,645705471,MX
645705472,645710079,US
645710080,645710335,MX
-645710336,645737983,US
+645710336,645711871,US
+645711872,645712127,MX
+645712128,645737983,US
645737984,645738239,PR
645738240,645873663,US
645873664,645873919,CA
645873920,645874175,US
645874176,645874431,CA
-645874432,645876479,US
-645876480,645876735,CA
-645876736,645984255,US
+645874432,645876735,US
+645876736,645876991,CA
+645876992,645984255,US
645984256,645988351,CA
645988352,645989450,US
645989451,645989451,CA
-645989452,646160383,US
+645989452,646082815,US
+646082816,646083327,CA
+646083328,646084095,US
+646084096,646084351,CA
+646084352,646085631,US
+646085632,646085887,CA
+646085888,646160383,US
646160384,646164479,CA
-646164480,646711807,US
-646711808,646712319,CA
-646712320,646734847,US
-646734848,646735103,CA
-646735104,654311423,US
+646164480,646194175,US
+646194176,646194687,CA
+646194688,646195560,US
+646195561,646195561,CA
+646195562,646711807,US
+646711808,646712063,CA
+646712064,646734847,US
+646734848,646735359,CA
+646735360,654311423,US
654311424,654311679,CN
654311680,654311935,AU
654311936,654376959,CN
@@ -6065,7 +6408,13 @@
661651456,662700031,KR
662700032,666894335,CN
666894336,671088639,ID
-671088640,675807231,US
+671088640,675545087,US
+675545088,675610623,NL
+675610624,675635199,IE
+675635200,675643391,CA
+675643392,675659775,US
+675659776,675667967,IE
+675667968,675807231,US
675807232,675938303,CN
675938304,675954687,NL
675954688,675975167,JP
@@ -6090,19 +6439,221 @@
676773888,676790271,CA
676790272,676823039,US
676823040,676831231,IE
-676831232,676840447,US
+676831232,676837375,US
+676837376,676838399,NL
+676838400,676839423,IE
+676839424,676840447,HK
676840448,676841471,SG
-676841472,678428671,US
+676841472,676843519,JP
+676843520,676845567,AU
+676845568,676847615,IN
+676847616,677380127,US
+677380128,677380159,IE
+677380160,677380895,US
+677380896,677380927,DE
+677380928,677380943,IN
+677380944,677380975,DE
+677380976,677381375,US
+677381376,677381407,AT
+677381408,677381423,NL
+677381424,677382015,US
+677382016,677382031,NL
+677382032,677382047,US
+677382048,677382063,KR
+677382064,677382527,US
+677382528,677382543,CA
+677382544,677382559,IE
+677382560,677382575,US
+677382576,677382591,AU
+677382592,677382623,IE
+677382624,677382639,CA
+677382640,677382719,US
+677382720,677382727,IE
+677382728,677384399,US
+677384400,677384431,AT
+677384432,677384463,US
+677384464,677384495,FI
+677384496,677384671,US
+677384672,677384719,NL
+677384720,677385919,US
+677385920,677385935,CA
+677385936,677385967,US
+677385968,677385983,SG
+677385984,677386047,US
+677386048,677386063,CA
+677386064,677386095,US
+677386096,677386111,BR
+677386112,677386127,CA
+677386128,677386159,US
+677386160,677386175,BR
+677386176,677386207,CA
+677386208,677386399,US
+677386400,677386415,CL
+677386416,677386495,US
+677386496,677386527,IE
+677386528,677386543,AT
+677386544,677386559,HK
+677386560,677386575,FI
+677386576,677386591,US
+677386592,677386607,MY
+677386608,677386623,US
+677386624,677386639,JP
+677386640,677386655,US
+677386656,677386671,AU
+677386672,677386687,DE
+677386688,677386703,US
+677386704,677386719,DE
+677386720,677386735,US
+677386736,677386751,HK
+677386752,677386767,US
+677386768,677386799,CA
+677386800,677389231,US
+677389232,677389263,DE
+677389264,677389791,US
+677389792,677389823,CA
+677389824,677389999,US
+677390000,677390063,CA
+677390064,677391167,US
+677391168,677391199,GB
+677391200,677391759,US
+677391760,677391791,GB
+677391792,677392143,US
+677392144,677392159,DE
+677392160,677394463,US
+677394464,677394527,JP
+677394528,677394559,CL
+677394560,677394767,US
+677394768,677394799,JP
+677394800,677395679,US
+677395680,677395695,JP
+677395696,677395871,US
+677395872,677395903,IE
+677395904,677396623,US
+677396624,677396639,IE
+677396640,677511167,US
+677511168,677576703,NL
+677576704,677642239,US
+677642240,677646335,HK
+677646336,677647359,MY
+677647360,677648383,KR
+677648384,677651455,SG
+677651456,677652479,JP
+677652480,677679103,US
+677679104,677679119,AU
+677679120,677681151,US
+677681152,677681295,JP
+677681296,677681663,US
+677681664,677681919,JP
+677681920,677682175,US
+677682176,677682431,JP
+677682432,677683199,US
+677683200,677683311,CA
+677683312,677685247,US
+677685248,677686271,GB
+677686272,677707775,US
+677707776,677708799,NL
+677708800,677709823,AT
+677709824,677713919,NL
+677713920,677714943,IE
+677714944,677715967,FI
+677715968,677719039,IE
+677719040,677721087,DE
+677721088,677722111,GB
+677722112,677723135,NL
+677723136,677773311,US
+677773312,677774335,NL
+677774336,677774479,BR
+677774480,677775359,NL
+677775360,677775407,BR
+677775408,677781503,NL
+677781504,677783551,CL
+677783552,677784575,ZA
+677784576,677785599,US
+677785600,677806079,NL
+677806080,677838847,US
+677838848,677838863,NL
+677838864,677838879,IE
+677838880,677838895,FI
+677838896,677838911,AT
+677838912,677838927,NL
+677838928,677838943,IE
+677838944,677838959,FI
+677838960,677838975,AT
+677838976,677838991,NL
+677838992,677839007,IE
+677839008,677839023,FI
+677839024,677839039,AT
+677839040,677839055,NL
+677839056,677839071,IE
+677839072,677839087,FI
+677839088,677839103,AT
+677839104,677839119,NL
+677839120,677839135,IE
+677839136,677839151,FI
+677839152,677839167,AT
+677839168,677839183,NL
+677839184,677839199,IE
+677839200,677839215,FI
+677839216,677839231,AT
+677839232,677839247,NL
+677839248,677839263,IE
+677839264,677839279,FI
+677839280,677839295,AT
+677839296,677839311,NL
+677839312,677839327,IE
+677839328,677839343,FI
+677839344,677839359,AT
+677839360,677840319,US
+677840320,677840639,NL
+677840640,677841919,US
+677841920,677841935,FI
+677841936,677841951,IE
+677841952,677841967,AT
+677841968,677841999,FI
+677842000,677842015,IE
+677842016,677842031,AT
+677842032,677842047,NL
+677842048,677842063,FI
+677842064,677842079,IE
+677842080,677842095,AT
+677842096,677842111,NL
+677842112,677842127,FI
+677842128,677842143,IE
+677842144,677842159,AT
+677842160,677842175,NL
+677842176,677842191,FI
+677842192,677842207,IE
+677842208,677842223,AT
+677842224,677842239,NL
+677842240,677842255,FI
+677842256,677842271,IE
+677842272,677842287,AT
+677842288,677842303,NL
+677842304,677842335,FI
+677842336,677842351,AT
+677842352,677842367,NL
+677842368,677842383,FI
+677842384,677842399,IE
+677842400,677842415,AT
+677842416,677842431,NL
+677842432,677842447,FI
+677842448,677842463,IE
+677842464,677842479,AT
+677842480,677842495,NL
+677842496,677842511,FI
+677842512,677842527,IE
+677842528,677842543,AT
+677842544,677842559,NL
+677842560,678428671,US
678428672,678436863,IE
678436864,678437887,US
678437888,678438015,IE
-678438016,678438207,NL
-678438208,678438271,IE
+678438016,678438079,NL
+678438080,678438143,US
+678438144,678438207,NL
+678438208,678438271,US
678438272,678438399,AU
-678438400,678438591,US
-678438592,678438655,NL
-678438656,678438783,IN
-678438784,678445055,US
+678438400,678445055,US
678445056,678453247,IE
678453248,678461439,NL
678461440,678494207,US
@@ -6111,9 +6662,7 @@
678543360,678592511,US
678592512,678623193,NL
678623194,678623194,US
-678623195,678625279,NL
-678625280,678633471,IE
-678633472,678641663,NL
+678623195,678641663,NL
678641664,678649855,AU
678649856,678658047,IE
678658048,678690815,JP
@@ -6156,18 +6705,18 @@
691798016,691814399,ZM
691814400,691814655,ZW
691814656,691815167,ZM
-691815168,691815423,ZW
-691815424,691816191,ZM
-691816192,691816703,ZW
+691815168,691816703,ZW
691816704,691816959,ZM
-691816960,691817215,ZW
-691817216,691819007,ZM
-691819008,691819263,ZW
-691819264,691820799,ZM
-691820800,691821311,ZW
-691821312,691821567,ZM
-691821568,691821823,ZW
-691821824,691863551,ZM
+691816960,691817727,ZW
+691817728,691818751,ZM
+691818752,691819007,ZW
+691819008,691819775,ZM
+691819776,691820031,ZW
+691820032,691820287,ZM
+691820288,691821311,ZW
+691821312,691822079,ZM
+691822080,691822335,ZW
+691822336,691863551,ZM
691863552,691929087,ZA
691994624,692011007,ZM
692011008,692027391,ZA
@@ -6196,11 +6745,13 @@
692625408,692626687,KE
692626688,692626943,AO
692626944,692633599,KE
-692633600,692635903,MU
+692633600,692634623,MU
+692634624,692634879,KE
+692634880,692635903,MU
692635904,692636159,KE
-692636160,692639743,MU
-692639744,692639999,KE
-692640000,692641791,MU
+692636160,692641023,MU
+692641024,692641279,KE
+692641280,692641791,MU
692641792,692649983,GA
692649984,692658175,NG
692658176,692666367,ZA
@@ -6554,7 +7105,9 @@
700437504,700438527,MU
700438528,700439551,BW
700439552,700440575,GN
-700440576,700442247,MU
+700440576,700440831,MU
+700440832,700441343,KE
+700441344,700442247,MU
700442248,700442251,KE
700442252,700442623,MU
700442624,700444671,ZW
@@ -6571,7 +7124,9 @@
700595200,700596223,CD
700596224,700598783,ZA
700598784,700599039,CG
-700599040,700710911,ZA
+700599040,700599551,ZA
+700599552,700599807,US
+700599808,700710911,ZA
700710912,700776447,EG
700776448,700841983,RW
700841984,700846079,MU
@@ -6582,8 +7137,8 @@
700866560,700866815,NG
700866816,700867327,MU
700867328,700867583,NG
-700867584,700893439,MU
-700893440,700893951,NG
+700867584,700893695,MU
+700893696,700893951,NG
700893952,700895231,MU
700895232,700899327,NG
700899328,700907519,MU
@@ -6601,7 +7156,9 @@
701190144,701202431,NG
701202432,701210623,NE
701210624,701214719,ZA
-701214720,701218815,LS
+701214720,701215487,LS
+701215488,701215743,ZA
+701215744,701218815,LS
701218816,701222911,ML
701222912,701227007,KE
701227008,701231103,BF
@@ -6618,9 +7175,7 @@
701308928,701317119,AO
701317120,701325311,CM
701325312,701333503,EG
-701333504,701338111,NA
-701338112,701338367,ZM
-701338368,701341695,NA
+701333504,701341695,NA
701341696,701349887,NG
701349888,701358079,MA
701358080,701366271,SL
@@ -6743,7 +7298,9 @@
702341120,702342259,MU
702342260,702342263,KE
702342264,702344199,MU
-702344200,702349311,KE
+702344200,702344971,KE
+702344972,702345215,MU
+702345216,702349311,KE
702349312,702353407,ZA
702353408,702357503,DZ
702357504,702365695,TZ
@@ -6886,7 +7443,9 @@
703766528,703770623,ZA
703770624,703774719,BJ
703774720,703791103,ZA
-703791104,703856639,CD
+703791104,703791615,CD
+703791616,703791871,ZA
+703791872,703856639,CD
703856640,703922175,CM
703922176,704118783,ZA
704118784,704380927,MA
@@ -6989,7 +7548,7 @@
736131072,736132095,NZ
736132096,736133119,LK
736133120,736136191,IN
-736136192,736138239,CN
+736137216,736138239,CN
736138240,736139263,HK
736139264,736140287,SG
736140288,736141311,IN
@@ -7078,7 +7637,6 @@
736289920,736290047,JP
736290048,736290303,AU
736290304,736290815,US
-736290816,736291839,TW
736291840,736300031,CN
736300032,736301055,HK
736301056,736303103,IN
@@ -7148,10 +7706,13 @@
736432128,736433151,CN
736433152,736434175,ID
736434176,736435199,IN
+736435200,736436223,HK
736436224,736437247,JP
+736437248,736438271,HK
736438272,736439295,CN
736439296,736440319,TH
736440320,736441343,CN
+736441344,736442367,HK
736442368,736443391,CN
736443392,736445439,AU
736446464,736447487,IN
@@ -7187,7 +7748,11 @@
736494592,736495103,ID
736495104,736495359,NR
736495360,736495615,ID
-736495616,736498687,HK
+736495616,736495871,HK
+736495872,736496127,KR
+736496128,736496383,JP
+736496384,736496639,PH
+736496640,736498687,HK
736498688,736499711,CN
736499712,736500479,SG
736500480,736500735,TH
@@ -7218,7 +7783,6 @@
736532480,736533503,ID
736533504,736535551,IN
736535552,736536575,HK
-736536576,736537599,CN
736537600,736538623,IN
736538624,736539647,AU
736539648,736540671,SG
@@ -7285,7 +7849,10 @@
737113088,737115135,CN
737115136,737118207,IN
737118208,737119231,AU
-737119232,737120255,NL
+737119232,737119487,NL
+737119488,737119743,FR
+737119744,737119999,NL
+737120000,737120255,FR
737120256,737121279,IN
737121280,737122303,VN
737122304,737123327,IN
@@ -7300,7 +7867,8 @@
737142784,737143039,HK
737143040,737143807,MY
737143808,737146879,IN
-737146880,737147903,NZ
+737146880,737147647,US
+737147648,737147903,NZ
737147904,737148927,MY
737148928,737149951,CN
737149952,737151999,IN
@@ -7362,7 +7930,7 @@
737257472,737262591,CN
737262592,737263615,AU
737263616,737264639,IN
-737264640,737265663,CN
+737264640,737265663,HK
737265664,737266687,AU
737266688,737267711,HK
737267712,737276927,CN
@@ -7405,8 +7973,12 @@
737350912,737351679,NZ
737351680,737352703,CN
737352704,737354751,HK
-737354752,737355775,IN
-737355776,737359871,HK
+737354752,737355263,IN
+737355264,737355519,PK
+737355520,737355775,IN
+737355776,737356287,HK
+737356288,737356799,GB
+737356800,737359871,HK
737359872,737361919,NZ
737361920,737364991,HK
737364992,737368063,IN
@@ -7485,7 +8057,9 @@
737514496,737515519,IN
737515520,737516543,AU
737516544,737517567,IN
-737517568,737520639,AU
+737517568,737519871,AU
+737519872,737520127,SG
+737520128,737520639,AU
737520640,737521663,NZ
737521664,737522687,AU
737522688,737525759,ID
@@ -7498,6 +8072,7 @@
737529856,737530879,IN
737530880,737531903,NC
737531904,737532927,KH
+737532928,737533951,MY
737533952,737534975,AU
737534976,737535999,SG
737536000,737537023,BD
@@ -7669,7 +8244,7 @@
737846272,737847295,IN
737847296,737850367,CN
737850368,737851391,IN
-737851392,737852415,HK
+737851392,737853439,HK
737853440,737854463,SG
737854464,737855487,JP
737855488,737856511,CN
@@ -7720,13 +8295,11 @@
737911808,737912703,SG
737912704,737912831,MY
737912832,737915903,IN
-737915904,737916927,TW
737916928,737917951,JP
737917952,737918975,IN
737918976,737919999,CN
737920000,737921023,HK
737921024,737922047,AU
-737922048,737923071,KR
737923072,737924095,MY
737924096,737927167,IN
737927168,737929215,HK
@@ -7888,11 +8461,15 @@
755105792,755179519,CA
755179520,755236863,US
756023296,757071871,US
-757071872,757088255,NL
+757071872,757073919,NL
+757073920,757073920,JP
+757073921,757088255,NL
757088256,757090303,US
757090304,757104639,NL
757104640,757106687,US
-757106688,757121535,NL
+757106688,757118796,NL
+757118797,757118797,GB
+757118798,757121535,NL
757121536,757121791,US
757121792,757122047,NL
757122048,757122303,US
@@ -8318,7 +8895,8 @@
762397696,762398719,HK
762398720,762399743,CN
762399744,762400767,IN
-762400768,762401791,HK
+762400768,762401023,HK
+762401024,762401791,US
762401792,762402815,TH
762402816,762403839,IN
762403840,762404863,AU
@@ -8326,12 +8904,11 @@
762407936,762408959,CN
762408960,762409983,HK
762409984,762411007,JP
-762411008,762411263,IN
-762411264,762411519,HK
-762411520,762412031,IN
+762411008,762411519,HK
+762411520,762411775,IN
+762411776,762412031,HK
762412032,762413055,PK
762413056,762414079,HK
-762414080,762415103,JP
762415104,762416127,IN
762416128,762417151,HK
762417152,762419199,CN
@@ -8373,10 +8950,11 @@
762470400,762471423,CN
762471424,762472447,MY
762472448,762473471,CN
-762473472,762475519,JP
+762474496,762475519,JP
762475520,762475775,AU
762475776,762476031,SG
-762476032,762476543,ID
+762476032,762476287,ID
+762476288,762476543,SG
762476544,762478591,PK
762478592,762479615,KR
762479616,762480639,PK
@@ -8647,7 +9225,7 @@
762900480,762901503,CN
762901504,762902527,ID
762902528,762909695,IN
-762909696,762910719,CN
+762909696,762910719,HK
762910720,762911743,VN
762911744,762912767,IN
762912768,762913791,HK
@@ -8778,9 +9356,9 @@
763179008,763180031,HK
763180032,763182079,CN
763182080,763183103,IN
-763183104,763184127,HK
+763183104,763183359,JP
+763183360,763184127,HK
763184128,763185151,IN
-763185152,763186175,HK
763186176,763194367,CN
763194368,763196415,HK
763196416,763197439,IN
@@ -8802,7 +9380,8 @@
763226112,763227135,KR
763227136,763228159,VN
763228160,763229183,JP
-763229184,763229695,NZ
+763229184,763229439,NZ
+763229440,763229695,AU
763229696,763229951,IN
763229952,763230207,AU
763230208,763231231,PH
@@ -8818,7 +9397,7 @@
763246592,763247615,ID
763247616,763248639,SG
763248640,763250687,IN
-763250688,763251711,AU
+763250688,763251711,US
763251712,763252735,HK
763252736,763253759,ID
763253760,763254783,JP
@@ -8903,7 +9482,7 @@
772014080,772145151,DE
772145152,772210687,ES
772210688,772276223,IE
-772276224,772284415,NL
+772276224,772284415,GB
772284416,772284927,RU
772284928,772285183,UA
772285184,772285439,UZ
@@ -8913,7 +9492,11 @@
772286720,772286975,LB
772286976,772296703,RU
772296704,772300799,UA
-772300800,772341759,RU
+772300800,772339967,RU
+772339968,772340223,NL
+772340224,772341247,RU
+772341248,772341503,US
+772341504,772341759,RU
772341760,772407295,NO
772407296,772472831,BG
772472832,772538367,MT
@@ -8979,9 +9562,7 @@
772917248,772919295,RU
772919296,772923391,GB
772923392,772925439,AT
-772925440,772926975,GB
-772926976,772927231,ZW
-772927232,772927487,GB
+772925440,772927487,GB
772927488,772929535,UA
772929536,772931583,RU
772931584,772933631,UA
@@ -9040,13 +9621,9 @@
773048320,773050367,LV
773050368,773052415,IE
773052416,773054463,NL
-773054464,773055231,AL
-773055232,773055487,RS
-773055488,773055871,AL
+773054464,773055871,AL
773055872,773055999,RS
-773056000,773056007,AL
-773056008,773056009,RS
-773056010,773056511,AL
+773056000,773056511,AL
773056512,773058559,IT
773058560,773060607,BE
773060608,773062655,DK
@@ -9087,9 +9664,7 @@
773166464,773166591,PL
773166592,773167199,US
773167200,773167207,NL
-773167208,773167359,US
-773167360,773167615,NL
-773167616,773167655,US
+773167208,773167655,US
773167656,773167663,NL
773167664,773168127,US
773168128,773168415,NL
@@ -9110,7 +9685,7 @@
773211136,773211391,FR
773211392,773211647,US
773211648,773211903,NL
-773211904,773212159,US
+773211904,773212159,SG
773212160,773212671,NL
773212672,773213183,GB
773213184,773214207,US
@@ -9260,18 +9835,16 @@
773828608,773830655,HU
773830656,773832703,NO
773832704,773834751,FR
-773834752,773835007,GB
-773835008,773835263,IM
-773835264,773835775,GB
-773835776,773836031,IM
-773836032,773836543,GB
-773836544,773836799,IM
+773834752,773835519,GB
+773835520,773836031,IM
+773836032,773836799,GB
773836800,773838847,FR
773838848,773840895,DE
773840896,773842943,GB
773844992,773845759,GB
773845760,773846015,JE
-773846016,773846527,GG
+773846016,773846271,GB
+773846272,773846527,GG
773846528,773847039,GB
773847040,773849087,IT
773849088,773857279,IR
@@ -9288,7 +9861,9 @@
773935353,773935353,US
773935354,773935728,FR
773935729,773935729,GB
-773935730,773937663,FR
+773935730,773936145,FR
+773936146,773936146,US
+773936147,773937663,FR
773937664,773937664,DE
773937665,773937673,FR
773937674,773937674,IE
@@ -9301,9 +9876,7 @@
773963776,773971967,ME
773971968,773980159,UA
773980160,773988351,GB
-773988352,773997823,ES
-773997824,773998079,NL
-773998080,774000639,ES
+773988352,774000639,ES
774000640,774000823,NL
774000824,774000824,GB
774000825,774000895,NL
@@ -9559,8 +10132,8 @@
778304306,778304306,SI
778304307,778305535,AL
778305536,778371071,IR
-778371072,778399743,GB
-778399744,778436607,DE
+778371072,778395647,GB
+778395648,778436607,DE
778436608,778461183,RO
778461184,778461439,TR
778461440,778462207,EE
@@ -9595,7 +10168,9 @@
778567680,778633215,TR
778633216,778640127,FR
778640128,778640383,GB
-778640384,778666259,FR
+778640384,778657399,FR
+778657400,778657403,PT
+778657404,778666259,FR
778666260,778666263,ES
778666264,778666479,FR
778666480,778666495,DE
@@ -9741,7 +10316,9 @@
779616256,779747327,IL
779747328,779878399,SI
779878400,780009471,AT
-780009472,780125183,CH
+780009472,780016127,CH
+780016128,780016383,DE
+780016384,780125183,CH
780125184,780125695,DE
780125696,780140543,CH
780140544,780206079,DE
@@ -9757,9 +10334,7 @@
780779520,780795903,SG
780795904,780861439,RU
780861440,780926975,HU
-780926976,780949503,CH
-780949504,780949759,DE
-780949760,780992511,CH
+780926976,780992511,CH
780992512,781058047,IT
781058048,781123583,DE
781123584,781189119,IR
@@ -9801,7 +10376,9 @@
781656064,781658111,RO
781658112,781662207,UA
781662208,781664255,SK
-781664256,781666303,UA
+781664256,781664511,UA
+781664512,781664767,RU
+781664768,781666303,UA
781666304,781668351,PL
781668352,781670399,UA
781670400,781672447,RU
@@ -9810,7 +10387,9 @@
781676544,781678591,PL
781678592,781682687,RS
781682688,781684735,PL
-781684736,781688831,RU
+781684736,781685503,RU
+781685504,781685759,UA
+781685760,781688831,RU
781688832,781690879,RO
781690880,781692927,RU
781692928,781694975,UA
@@ -10082,11 +10661,9 @@
786567168,786569215,CZ
786569216,786571263,NO
786571264,786575359,ES
-786575360,786575871,GB
-786575872,786576098,NO
+786575360,786576098,GB
786576099,786576099,SE
-786576100,786576127,NO
-786576128,786577407,GB
+786576100,786577407,GB
786577408,786579455,NL
786579456,786581503,RU
786581504,786583551,GB
@@ -10282,8 +10859,9 @@
787189760,787191807,CH
787191808,787192063,GB
787192064,787192319,FR
-787192384,787192447,DE
+787192320,787192575,DE
787192576,787192831,SE
+787192832,787193087,AE
787193088,787193343,FI
787193344,787193599,DE
787193856,787195903,RU
@@ -10479,9 +11057,11 @@
788457472,788459519,IT
788459520,788461567,RU
788461568,788462335,JE
-788462336,788462591,GB
-788462592,788463103,JE
-788463104,788465663,GB
+788462336,788462847,GB
+788462848,788463103,JE
+788463104,788463359,GB
+788463360,788463615,JE
+788463616,788465663,GB
788465664,788467711,CZ
788467712,788469759,NO
788469760,788471807,NL
@@ -10520,15 +11100,23 @@
788523008,788525055,KZ
788525056,788527103,IT
788527104,788529151,GB
-788529152,789577727,CA
+788529152,789053439,CA
+789053440,789184511,SG
+789184512,789250047,CA
+789250048,789315583,SG
+789315584,789512191,CA
+789512192,789577727,SG
789577728,790102015,US
-790102016,790626303,CA
+790102016,790429695,CA
+790429696,790626303,SG
790626304,791937023,US
791937024,792002559,CA
792002560,792068095,IT
-792068096,792094719,CA
-792094720,792094975,US
-792094976,792330239,CA
+792068096,792070911,CA
+792070912,792071167,US
+792071168,792084479,CA
+792084480,792084735,US
+792084736,792330239,CA
792330240,792723455,ES
792723456,793247743,DE
793247744,793313279,NZ
@@ -10539,7 +11127,11 @@
794558464,796917759,CN
796917760,797873663,CA
797873664,797873919,US
-797873920,805306367,CA
+797873920,802160639,CA
+802160640,803209215,US
+803209216,804716543,CA
+804716544,804782079,SG
+804782080,805306367,CA
805306368,822083583,US
822083584,822084607,ID
822084608,822085631,BD
@@ -10610,7 +11202,8 @@
831519744,831520767,IN
831520768,832045055,PH
832045056,832307199,CN
-832307200,832311295,JP
+832307200,832308223,PK
+832308224,832311295,JP
832311296,832312319,AU
832312320,832313343,ID
832313344,832315391,AU
@@ -10673,8 +11266,10 @@
839112192,839112447,CA
839112448,839340031,US
839340032,839341055,ES
-839341056,839342079,US
-839342080,839343103,DE
+839341056,839341311,US
+839341312,839341567,DE
+839341568,839341823,US
+839341824,839343103,DE
839343104,839344127,NL
839344128,839348223,US
839348224,839348479,DE
@@ -10719,7 +11314,9 @@
843055104,843644927,CA
843644928,844890111,US
844890112,844988415,CA
-844988416,845283327,US
+844988416,845222689,US
+845222690,845222690,HK
+845222691,845283327,US
845283328,845545471,CA
845545472,846442495,US
846442496,846446591,CA
@@ -10729,16 +11326,138 @@
846626816,846627071,CN
846627072,846644755,US
846644756,846644756,PT
-846644757,848915455,US
-848915456,848916479,CA
-848916480,850506751,US
-850506752,850507263,CA
-850507264,855638015,US
-855638016,858230746,GB
+846644757,850506751,US
+850506752,850507007,CA
+850507008,855638015,US
+855638016,855900159,GB
+855900160,856031231,DE
+856031232,857997567,GB
+857997568,857998335,SA
+857998336,857998847,GB
+857998848,857999103,SA
+857999104,857999743,GB
+857999744,857999871,SA
+857999872,858001919,GB
+858001920,858002175,SA
+858002176,858003199,GB
+858003200,858003455,SA
+858003456,858003711,GB
+858003712,858004223,SA
+858004224,858004991,GB
+858004992,858005503,SA
+858005504,858005759,GB
+858005760,858006015,SA
+858006016,858006271,GB
+858006272,858006527,SA
+858006528,858006783,GB
+858006784,858007039,SA
+858007040,858008063,GB
+858008064,858008319,SA
+858008320,858008575,GB
+858008576,858009087,SA
+858009088,858009855,GB
+858009856,858010111,SA
+858010112,858010623,GB
+858010624,858011135,SA
+858011136,858011647,GB
+858011648,858012415,SA
+858012416,858013439,GB
+858013440,858013695,SA
+858013696,858014719,GB
+858014720,858014975,SA
+858014976,858020351,GB
+858020352,858020863,SA
+858020864,858021375,GB
+858021376,858021631,SA
+858021632,858022911,GB
+858022912,858023423,SA
+858023424,858025471,GB
+858025472,858025727,SA
+858025728,858028287,GB
+858028288,858028543,SA
+858028544,858033663,GB
+858033664,858033919,SA
+858033920,858035199,GB
+858035200,858035455,SA
+858035456,858035967,GB
+858035968,858036223,SA
+858036224,858043391,GB
+858043392,858043903,SA
+858043904,858044927,GB
+858044928,858045183,SA
+858045184,858194431,GB
+858194432,858195199,SA
+858195200,858195711,GB
+858195712,858195967,SA
+858195968,858196223,GB
+858196224,858196735,SA
+858196736,858197247,GB
+858197248,858198271,SA
+858198272,858199551,GB
+858199552,858199807,SA
+858199808,858201855,GB
+858201856,858202111,SA
+858202112,858202623,GB
+858202624,858202879,SA
+858202880,858204671,GB
+858204672,858204927,SA
+858204928,858206207,GB
+858206208,858206463,SA
+858206464,858207487,GB
+858207488,858207743,SA
+858207744,858208255,GB
+858208256,858208767,SA
+858208768,858209279,GB
+858209280,858209535,SA
+858209536,858209791,GB
+858209792,858210559,SA
+858210560,858210815,GB
+858210816,858211071,SA
+858211072,858215295,GB
+858215296,858215679,SA
+858215680,858216703,GB
+858216704,858216959,SA
+858216960,858218239,GB
+858218240,858218495,SA
+858218496,858219519,GB
+858219520,858219775,SA
+858219776,858221311,GB
+858221312,858221567,SA
+858221568,858222847,GB
+858222848,858223103,SA
+858223104,858223615,GB
+858223616,858223871,SA
+858223872,858225151,GB
+858225152,858225919,SA
+858225920,858227711,GB
+858227712,858227967,SA
+858227968,858228479,GB
+858228480,858228735,SA
+858228736,858229503,GB
+858229504,858229759,SA
+858229760,858230271,GB
+858230272,858230527,SA
+858230528,858230746,GB
858230747,858230747,SA
-858230748,860905167,GB
+858230748,858230783,GB
+858230784,858231039,SA
+858231040,858231807,GB
+858231808,858232063,SA
+858232064,858232831,GB
+858232832,858233343,SA
+858233344,858233855,GB
+858233856,858234367,SA
+858234368,858238719,GB
+858238720,858238975,SA
+858238976,860905167,GB
860905168,860905171,FR
-860905172,867041279,GB
+860905172,866853119,GB
+866853120,866853375,IE
+866853376,866855423,GB
+866855424,866855679,IE
+866855680,866858495,GB
+866858496,866859007,IE
+866859008,867041279,GB
867041280,867172351,NO
867172352,867368959,GB
867368960,867401727,IT
@@ -10752,11 +11471,17 @@
871038976,871104511,SA
871104512,872153087,GB
872153088,872284159,SA
-872284160,872288871,FR
+872284160,872286871,FR
+872286872,872286875,CZ
+872286876,872288871,FR
872288872,872288875,DE
872288876,872290111,FR
872290112,872290143,ES
-872290144,872300031,FR
+872290144,872291151,FR
+872291152,872291167,FI
+872291168,872297215,FR
+872297216,872297231,GB
+872297232,872300031,FR
872300032,872300063,ES
872300064,872300649,FR
872300650,872300650,PT
@@ -10783,7 +11508,9 @@
872344604,872344607,GB
872344608,872346978,FR
872346979,872346979,DE
-872346980,872357423,FR
+872346980,872347063,FR
+872347064,872347067,PT
+872347068,872357423,FR
872357424,872357427,PT
872357428,872357429,FR
872357430,872357433,PT
@@ -10791,15 +11518,21 @@
872364864,872364927,NL
872364928,872374608,FR
872374609,872374618,ES
-872374619,872377297,FR
+872374619,872375295,FR
+872375296,872375423,NL
+872375424,872377297,FR
872377298,872377299,ES
-872377300,872380607,FR
+872377300,872380247,FR
+872380248,872380248,ES
+872380249,872380607,FR
872380608,872380671,ES
872380672,872384095,FR
872384096,872384127,ES
872384128,872388415,FR
872388416,872388447,ES
-872388448,872415231,FR
+872388448,872403606,FR
+872403607,872403607,PT
+872403608,872415231,FR
872415232,873463807,US
873463808,873646466,IE
873646467,873646467,US
@@ -10835,13 +11568,16 @@
878460928,878461951,BR
878461952,878462975,DE
878462976,878463999,BR
-878464000,878576895,US
+878464000,878512127,US
+878512128,878513151,SG
+878513152,878576895,US
878576896,878577151,IE
-878577152,878577663,KR
-878577664,878577919,BR
-878577920,878578175,JP
-878578176,878578687,US
-878578688,878578943,SG
+878577152,878577407,KR
+878577408,878577663,BR
+878577664,878577919,JP
+878577920,878578431,US
+878578432,878578687,SG
+878578688,878578943,US
878578944,878579199,AU
878579200,878648831,US
878648832,878649343,JP
@@ -10876,7 +11612,27 @@
878706512,878706559,US
878706560,878706575,DE
878706576,878706591,CN
-878706592,884998143,US
+878706592,883097599,US
+883097600,883122175,SG
+883122176,883130367,US
+883130368,883146751,SG
+883146752,883163135,US
+883163136,883228671,IE
+883228672,883294207,US
+883294208,883359743,NL
+883359744,883490815,US
+883490816,883556351,IE
+883556352,883687423,US
+883687424,883703807,IN
+883703808,883818495,US
+883818496,883884031,NL
+883884032,883916799,HK
+883916800,883924991,JP
+883924992,884080639,US
+884080640,884097023,NL
+884097024,884113407,US
+884113408,884129791,IE
+884129792,884998143,US
884998144,885129215,JP
885129216,885260287,US
885260288,885522431,JP
@@ -11175,7 +11931,9 @@
962134016,962138111,AE
962138112,962203647,BE
962203648,962207999,AT
-962208000,962208255,BE
+962208000,962208195,BE
+962208196,962208196,AT
+962208197,962208255,BE
962208256,962211839,AT
962211840,962215935,BG
962215936,962217983,HR
@@ -11315,8 +12073,13 @@
982624256,982626303,ID
982626304,982628351,JP
982628352,982630399,BD
-982630400,982646783,SG
-982646784,982671359,JP
+982630400,982639103,JP
+982639104,982639615,SG
+982639616,982639871,JP
+982639872,982641151,SG
+982641152,982641663,JP
+982641664,982642687,SG
+982642688,982671359,JP
982671360,982679551,IN
982679552,982695935,SG
982695936,982712319,KR
@@ -11360,7 +12123,9 @@
996671488,996802559,TW
996802560,996868095,JP
996868096,997195775,CN
-997195776,998244351,TW
+997195776,997765631,TW
+997765632,997765887,JP
+997765888,998244351,TW
998244352,999292927,JP
999292928,999423999,IN
999424000,999555071,JP
@@ -11372,14 +12137,24 @@
999817216,999821311,BD
999821312,999827455,CN
999827456,999828479,IN
+999828480,999828735,HK
+999828736,999828991,PH
+999828992,999829503,MY
+999829504,999830527,HK
+999830528,999832575,IN
+999832576,999833599,BD
999833600,999837695,CN
999837696,999838719,IN
999839744,999845887,BD
999845888,999847935,CN
999847936,999848959,IN
-999848960,999849983,HK
+999848960,999849983,US
999849984,999866367,KR
-999866368,999882751,HK
+999866368,999873791,HK
+999873792,999873941,AU
+999873942,999873943,HK
+999873944,999874047,AU
+999874048,999882751,HK
999882752,999883775,IN
999883776,999884799,CN
999884800,999885823,AU
@@ -11504,9 +12279,7 @@
1023967232,1023975423,IN
1023975424,1023979519,CN
1023979520,1023983615,AU
-1023983616,1023996927,SG
-1023996928,1023997183,AU
-1023997184,1023999999,SG
+1023983616,1023999999,SG
1024000000,1024032767,PH
1024032768,1024065535,AU
1024065536,1024131071,HK
@@ -11530,17 +12303,17 @@
1024363520,1024363775,AU
1024363776,1024364063,JP
1024364064,1024364079,AU
-1024364080,1024365727,JP
-1024365728,1024365759,SG
-1024365760,1024371199,JP
+1024364080,1024365567,JP
+1024365568,1024365823,SG
+1024365824,1024371199,JP
1024371200,1024371455,PH
1024371456,1024372543,JP
1024372544,1024372639,HK
1024372640,1024373263,JP
1024373264,1024373279,HK
-1024373280,1024375551,JP
-1024375552,1024375807,AU
-1024375808,1024376831,JP
+1024373280,1024375295,JP
+1024375296,1024375551,AU
+1024375552,1024376831,JP
1024376832,1024378879,PH
1024378880,1024380927,IN
1024380928,1024381951,KR
@@ -11595,19 +12368,38 @@
1026416640,1026420735,CN
1026420736,1026422783,JP
1026422784,1026424831,AU
-1026424832,1026490367,JP
-1026490368,1026492415,TH
-1026492416,1026493439,SG
-1026493440,1026498559,TH
-1026498560,1026501631,SG
-1026501632,1026505727,TH
-1026505728,1026506751,SG
-1026506752,1026507775,TH
-1026507776,1026508799,SG
+1026424832,1026490623,JP
+1026490624,1026491135,SG
+1026491136,1026491903,JP
+1026491904,1026494207,SG
+1026494208,1026494463,JP
+1026494464,1026494719,SG
+1026494720,1026494975,JP
+1026494976,1026495743,SG
+1026495744,1026496255,JP
+1026496256,1026496511,SG
+1026496512,1026496767,JP
+1026496768,1026497023,SG
+1026497024,1026497279,TH
+1026497280,1026497535,JP
+1026497536,1026497791,SG
+1026497792,1026498047,JP
+1026498048,1026501631,SG
+1026501632,1026502399,JP
+1026502400,1026502911,SG
+1026502912,1026503679,JP
+1026503680,1026503935,SG
+1026503936,1026504959,JP
+1026504960,1026506751,SG
+1026506752,1026507519,JP
+1026507520,1026508799,SG
1026508800,1026510847,JP
1026510848,1026512895,SG
1026512896,1026514943,JP
-1026514944,1026516991,TH
+1026514944,1026515455,SG
+1026515456,1026515967,JP
+1026515968,1026516479,SG
+1026516480,1026516991,JP
1026516992,1026518015,SG
1026518016,1026519039,JP
1026519040,1026523135,SG
@@ -11687,7 +12479,9 @@
1040983552,1040983807,FO
1040983808,1040990207,DK
1040990208,1040998399,CY
-1040998400,1041006591,EG
+1040998400,1041003809,EG
+1041003810,1041003810,KE
+1041003811,1041006591,EG
1041006592,1041039359,CH
1041039360,1041072127,SE
1041072128,1041080319,GB
@@ -11703,9 +12497,7 @@
1041338880,1041339135,GB
1041339136,1041367039,IE
1041367040,1041498111,IT
-1041498112,1041523967,SE
-1041523968,1041524223,DK
-1041524224,1041563647,SE
+1041498112,1041563647,SE
1041563648,1041596415,PL
1041596416,1041629183,NL
1041629184,1041694719,ES
@@ -11756,8 +12548,8 @@
1042874368,1042875135,NL
1042875136,1042875391,FR
1042875392,1042879999,NL
-1042880000,1042880007,GB
-1042880008,1042881023,NL
+1042880000,1042880255,GB
+1042880256,1042881023,NL
1042881024,1042881535,DE
1042881536,1042939903,NL
1042939904,1043070975,ES
@@ -11818,7 +12610,9 @@
1044226048,1044234239,OM
1044234240,1044250623,RE
1044283392,1044316159,FR
-1044316160,1044332543,NO
+1044316160,1044318975,NO
+1044318976,1044319231,GB
+1044319232,1044332543,NO
1044332544,1044348927,RU
1044348928,1044365311,LV
1044365312,1044381695,SE
@@ -11889,9 +12683,7 @@
1044931232,1044931239,BE
1044931240,1044933499,GB
1044933500,1044933503,BE
-1044933504,1044933887,GB
-1044933888,1044934143,BE
-1044934144,1044935439,GB
+1044933504,1044935439,GB
1044935440,1044935455,BE
1044935456,1044935663,GB
1044935664,1044935671,BE
@@ -12020,12 +12812,10 @@
1046487291,1046488319,GB
1046488320,1046488575,DE
1046488576,1046489087,GB
-1046489088,1046489218,DE
-1046489219,1046489219,GB
-1046489220,1046489311,DE
+1046489088,1046489119,DE
+1046489120,1046489311,GB
1046489312,1046489327,ES
-1046489328,1046489343,DE
-1046489344,1046489391,GB
+1046489328,1046489391,GB
1046489392,1046489407,IT
1046489408,1046489471,GB
1046489472,1046489487,ES
@@ -12097,21 +12887,21 @@
1046529024,1046530047,DE
1046530048,1046530973,GB
1046530974,1046530974,DE
-1046530975,1046531071,GB
-1046531072,1046531327,DE
-1046531328,1046531839,GB
+1046530975,1046531839,GB
1046531840,1046532095,DE
1046532096,1046533375,GB
1046533376,1046533383,DE
1046533384,1046533537,GB
1046533538,1046533538,DE
-1046533539,1046533887,GB
+1046533539,1046533615,GB
+1046533616,1046533631,DE
+1046533632,1046533887,GB
1046533888,1046534143,DE
1046534144,1046535295,GB
1046535296,1046535311,DE
-1046535312,1046535439,GB
-1046535440,1046535447,DE
-1046535448,1046537023,GB
+1046535312,1046535423,GB
+1046535424,1046535679,DE
+1046535680,1046537023,GB
1046537024,1046537039,DE
1046537040,1046543209,GB
1046543210,1046543210,DE
@@ -12181,7 +12971,9 @@
1047461888,1047494655,DE
1047494656,1047527423,PL
1047527424,1047535615,BE
-1047535616,1047551999,DE
+1047535616,1047536895,DE
+1047536896,1047537151,SE
+1047537152,1047551999,DE
1047552000,1047560191,RU
1047560192,1047568383,DE
1047568384,1047576575,NL
@@ -12194,7 +12986,12 @@
1047642112,1047658495,DE
1047658496,1047724031,EG
1047728128,1047732223,SE
+1047735770,1047735770,DE
1047740544,1047740671,DE
+1047758911,1047758911,CZ
+1047759119,1047759119,AT
+1047759125,1047759125,AT
+1047759834,1047759834,CZ
1047781856,1047781871,DE
1047782690,1047782690,GB
1047787520,1047787775,ES
@@ -12239,13 +13036,12 @@
1048246272,1048248319,NO
1048248320,1048313855,IT
1048313856,1048510463,GB
-1048510464,1048536319,SE
-1048536320,1048536575,FI
-1048536576,1048575999,SE
+1048510464,1048575999,SE
1048576000,1048584191,DE
1048584192,1048592383,IL
1048592384,1048600575,IT
-1048600576,1048602111,UA
+1048600576,1048601599,UA
+1048601600,1048602111,RU
1048602112,1048602623,PL
1048602624,1048603135,RU
1048603136,1048603391,UA
@@ -12276,9 +13072,7 @@
1049006080,1049006335,DE
1049008128,1049009151,DE
1049016320,1049018367,DE
-1049018624,1049020671,DE
-1049020672,1049020927,GB
-1049020928,1049022463,DE
+1049018624,1049022463,DE
1049026816,1049029375,DE
1049030656,1049031679,DE
1049031744,1049031871,DE
@@ -12299,7 +13093,11 @@
1049378816,1049395199,EG
1049395200,1049411583,NL
1049411584,1049419775,GB
-1049419776,1049427967,RU
+1049419776,1049423615,RU
+1049423616,1049423856,UA
+1049423857,1049423857,RU
+1049423858,1049423871,UA
+1049423872,1049427967,RU
1049427968,1049436159,CZ
1049436160,1049444351,DE
1049444352,1049460735,RU
@@ -12399,7 +13197,9 @@
1051922432,1051924479,CH
1051924480,1051948031,AT
1051948032,1051949055,CH
-1051949056,1051951103,AT
+1051949056,1051949823,AT
+1051949824,1051950079,NL
+1051950080,1051951103,AT
1051951104,1051983871,NL
1051990016,1051991039,DE
1052001280,1052002303,DE
@@ -12484,9 +13284,7 @@
1052488704,1052489727,GB
1052494336,1052494591,NL
1052498432,1052498463,RO
-1052508160,1052596479,GB
-1052596480,1052596735,NL
-1052596736,1052704767,GB
+1052508160,1052704767,GB
1052704768,1052712959,NL
1052712960,1052770303,GB
1052770304,1052778495,CH
@@ -12519,7 +13317,6 @@
1053301056,1053301071,FR
1053312872,1053312887,DK
1053312912,1053312927,DK
-1053313280,1053313535,GB
1053318912,1053318943,FI
1053320224,1053320239,DE
1053325824,1053326335,DE
@@ -12532,7 +13329,6 @@
1053339904,1053340159,AT
1053349376,1053349631,NL
1053349952,1053349967,IE
-1053352960,1053353215,IE
1053353408,1053353423,GB
1053353984,1053354239,IL
1053354912,1053355007,IL
@@ -12684,15 +13480,13 @@
1054351360,1054359551,UA
1054359552,1054367743,RO
1054367744,1054375935,FI
-1054375936,1054381567,GB
-1054381568,1054381571,CA
+1054375936,1054381571,GB
1054381572,1054381572,SG
-1054381573,1054381587,CA
+1054381573,1054381587,GB
1054381588,1054381588,HK
-1054381589,1054381619,CA
+1054381589,1054381619,GB
1054381620,1054381620,US
-1054381621,1054381823,CA
-1054381824,1054384127,GB
+1054381621,1054384127,GB
1054384128,1054400511,DE
1054400512,1054408703,GB
1054408704,1054416895,FR
@@ -12790,7 +13584,9 @@
1056243712,1056251903,CH
1056251904,1056260095,RU
1056260096,1056276479,CZ
-1056276480,1056374783,DE
+1056276480,1056303615,DE
+1056303616,1056303871,FR
+1056303872,1056374783,DE
1056374784,1056440319,SE
1056440320,1056473087,TR
1056473088,1056505855,FI
@@ -12835,11 +13631,17 @@
1062597376,1062597631,PR
1062597632,1062871551,US
1062871552,1062872063,PR
-1062872064,1063052351,US
-1063052352,1063052367,CA
-1063052368,1063057432,US
+1062872064,1063053567,US
+1063053568,1063053647,CA
+1063053648,1063053663,US
+1063053664,1063053743,CA
+1063053744,1063053759,US
+1063053760,1063053823,CA
+1063053824,1063057432,US
1063057433,1063057433,CA
-1063057434,1063390207,US
+1063057434,1063361279,US
+1063361280,1063361535,SE
+1063361536,1063390207,US
1063390208,1063390463,PR
1063390464,1063568895,US
1063568896,1063569151,TZ
@@ -12871,9 +13673,7 @@
1064221952,1064222207,MX
1064222208,1064445183,US
1064445184,1064445439,PK
-1064445440,1065372927,US
-1065372928,1065373183,PR
-1065373184,1065519247,US
+1064445440,1065519247,US
1065519248,1065519263,IN
1065519264,1065519303,US
1065519304,1065519311,IN
@@ -12898,14 +13698,15 @@
1065908224,1066254975,US
1066254976,1066255103,GB
1066255104,1066311679,US
-1066311680,1066315775,CA
+1066311680,1066311954,CA
+1066311955,1066311955,US
+1066311956,1066315775,CA
1066315776,1066352639,US
1066352640,1066355711,JM
1066355712,1066355967,BB
1066355968,1066356479,JM
1066356480,1066356735,VG
-1066356736,1066358271,JM
-1066358272,1066358495,VG
+1066356736,1066358495,JM
1066358496,1066358527,AG
1066358528,1066369023,JM
1066369024,1066830303,US
@@ -12916,8 +13717,8 @@
1066831184,1066831191,JP
1066831192,1066831335,US
1066831336,1066831343,JP
-1066831344,1067238143,US
-1067238144,1067238399,JP
+1066831344,1067237887,US
+1067237888,1067238399,JP
1067238400,1067294719,US
1067294720,1067294975,CA
1067294976,1067481855,US
@@ -12970,9 +13771,7 @@
1068481024,1068481535,PR
1068481536,1068491263,US
1068491264,1068491519,HN
-1068491520,1070701055,US
-1070701056,1070701311,DO
-1070701312,1070729471,US
+1068491520,1070729471,US
1070729472,1070729727,CA
1070729728,1071100927,US
1071100928,1071101951,PR
@@ -13033,8 +13832,7 @@
1072924672,1072925183,US
1072925184,1072925695,GB
1072925696,1072926207,CA
-1072926208,1072926463,US
-1072926464,1072926719,CA
+1072926208,1072926719,US
1072926720,1072926975,PH
1072926976,1072927487,CA
1072927488,1072928511,US
@@ -13083,9 +13881,7 @@
1073028608,1073029119,GD
1073029120,1073031423,US
1073031424,1073031935,CW
-1073031936,1073034751,US
-1073034752,1073035007,BB
-1073035008,1073035263,US
+1073031936,1073035263,US
1073035264,1073036032,GD
1073036033,1073036543,US
1073036544,1073037055,MX
@@ -13107,7 +13903,11 @@
1073373184,1073381375,CA
1073381376,1073454591,US
1073454592,1073454847,KY
-1073454848,1074020351,US
+1073454848,1074008639,US
+1074008640,1074008703,SG
+1074008704,1074012671,US
+1074012672,1074013183,FI
+1074013184,1074020351,US
1074020352,1074028543,CA
1074028544,1074118655,US
1074118656,1074120959,CA
@@ -13246,9 +14046,7 @@
1075576897,1075577087,GB
1075577088,1075579391,NO
1075579392,1075579903,GB
-1075579904,1075580415,NO
-1075580416,1075580671,GB
-1075580672,1075585023,NO
+1075579904,1075585023,NO
1075585024,1075609599,US
1075609600,1075613695,TT
1075613696,1075769343,US
@@ -13385,9 +14183,7 @@
1076756480,1076772863,CA
1076772864,1076850687,US
1076850688,1076850943,CA
-1076850944,1076851199,US
-1076851200,1076851455,CA
-1076851456,1076880383,US
+1076850944,1076880383,US
1076880384,1076880639,CH
1076880640,1076880895,GB
1076880896,1077055487,US
@@ -13407,7 +14203,9 @@
1077841152,1077841407,GB
1077841408,1077848575,US
1077848576,1077848831,GR
-1077848832,1077865983,US
+1077848832,1077857279,US
+1077857280,1077857535,FR
+1077857536,1077865983,US
1077865984,1077866239,CA
1077866240,1077963775,US
1077963776,1077964031,JP
@@ -13619,7 +14417,9 @@
1079861248,1079865343,CA
1079865344,1079962879,US
1079962880,1079963135,GB
-1079963136,1080024319,US
+1079963136,1080015871,US
+1080015872,1080016383,GB
+1080016384,1080024319,US
1080024320,1080024575,CA
1080024576,1080033279,US
1080033280,1080164351,KY
@@ -13632,9 +14432,7 @@
1080514560,1080514815,GB
1080514816,1080568831,US
1080568832,1080569087,JP
-1080569088,1080569343,US
-1080569344,1080569599,JP
-1080569600,1080589567,US
+1080569088,1080589567,US
1080589568,1080589823,CN
1080589824,1080610559,US
1080610560,1080610815,AU
@@ -13726,10 +14524,9 @@
1082683392,1082687487,CA
1082687488,1082753023,US
1082753024,1082785791,CA
-1082785792,1082788655,US
-1082788656,1082788663,SG
-1082788664,1082790911,US
-1082790912,1082791167,AU
+1082785792,1082788607,US
+1082788608,1082788863,SG
+1082788864,1082791167,US
1082791168,1082791423,IN
1082791424,1082945535,US
1082945536,1082949631,CA
@@ -13771,7 +14568,9 @@
1086042112,1086046207,CA
1086046208,1086050815,US
1086050816,1086051327,CA
-1086051328,1086421503,US
+1086051328,1086267391,US
+1086267392,1086271487,CA
+1086271488,1086421503,US
1086421504,1086422015,MP
1086422016,1086922751,US
1086922752,1086930943,CA
@@ -13781,13 +14580,13 @@
1086955520,1086971903,CA
1086971904,1087016959,US
1087016960,1087021055,CA
-1087021056,1087399167,US
-1087399168,1087399423,GB
-1087399424,1087405407,US
+1087021056,1087405407,US
1087405408,1087405423,MX
1087405424,1087413895,US
1087413896,1087413903,DE
-1087413904,1087419135,US
+1087413904,1087414783,US
+1087414784,1087415039,CA
+1087415040,1087419135,US
1087419136,1087419391,GB
1087419392,1087419903,US
1087419904,1087420159,CA
@@ -13797,7 +14596,9 @@
1087440896,1087442943,PR
1087442944,1087444223,US
1087444224,1087444479,GB
-1087444480,1087466883,US
+1087444480,1087448575,US
+1087448576,1087448831,GB
+1087448832,1087466883,US
1087466884,1087466887,GB
1087466888,1087496703,US
1087496704,1087496959,CA
@@ -13805,17 +14606,18 @@
1087501472,1087501479,GB
1087501480,1087501535,US
1087501536,1087501695,HK
-1087501696,1087508161,US
+1087501696,1087501823,SG
+1087501824,1087508161,US
1087508162,1087508162,JP
1087508163,1087514623,US
1087514624,1087516671,BB
-1087516672,1087591237,US
+1087516672,1087589151,US
+1087589152,1087589183,GB
+1087589184,1087591237,US
1087591238,1087591238,FR
1087591239,1087593983,US
1087593984,1087594239,MX
-1087594240,1087596031,US
-1087596032,1087596287,DE
-1087596288,1087608319,US
+1087594240,1087608319,US
1087608320,1087608575,GB
1087608576,1087626111,US
1087626112,1087626239,VI
@@ -13835,7 +14637,9 @@
1087726016,1087726047,FR
1087726048,1087735743,US
1087735744,1087735807,CA
-1087735808,1087758335,US
+1087735808,1087743569,US
+1087743570,1087743570,GB
+1087743571,1087758335,US
1087758336,1087766527,PR
1087766528,1087783423,US
1087783424,1087783679,ZA
@@ -13855,8 +14659,8 @@
1087839232,1087839487,GB
1087839488,1087862783,US
1087862784,1087864831,PA
-1087864832,1087873023,US
-1087873024,1087873535,CA
+1087864832,1087873279,US
+1087873280,1087873535,CA
1087873536,1087883263,US
1087883264,1087883519,AR
1087883520,1087918511,US
@@ -13865,10 +14669,14 @@
1087950112,1087950119,PR
1087950120,1088012767,US
1088012768,1088012775,PR
-1088012776,1088311615,US
-1088311616,1088311679,CA
-1088311680,1088684031,US
-1088684032,1088946175,CA
+1088012776,1088308479,US
+1088308480,1088308735,CA
+1088308736,1088412159,US
+1088412160,1088412671,CA
+1088412672,1088684031,US
+1088684032,1088803071,CA
+1088803072,1088803327,US
+1088803328,1088946175,CA
1088946176,1089151231,US
1089151232,1089151487,NL
1089151488,1089167359,US
@@ -14044,19 +14852,53 @@
1093725184,1093730303,BB
1093730304,1093734053,US
1093734054,1093734054,PH
-1093734055,1093965960,US
-1093965961,1093965961,NL
-1093965962,1093966163,US
-1093966164,1093966164,NL
-1093966165,1093966216,US
-1093966217,1093966217,NL
-1093966218,1093984294,US
-1093984295,1093984295,IE
-1093984296,1094074879,US
+1093734055,1093943295,US
+1093943296,1093947391,IE
+1093947392,1093959679,US
+1093959680,1093967871,NL
+1093967872,1093976063,HK
+1093976064,1093984255,US
+1093984256,1093986303,IE
+1093986304,1093990399,US
+1093990400,1093992447,IE
+1093992448,1094064127,US
+1094064128,1094064575,IE
+1094064576,1094064639,US
+1094064640,1094064799,IE
+1094064800,1094064831,US
+1094064832,1094064863,IE
+1094064864,1094064871,US
+1094064872,1094064879,IE
+1094064880,1094065087,US
+1094065088,1094065119,IE
+1094065120,1094065151,US
+1094065152,1094066175,NL
+1094066176,1094066407,IE
+1094066408,1094066911,US
+1094066912,1094066975,IE
+1094066976,1094067199,US
+1094067200,1094067423,IE
+1094067424,1094068223,NL
+1094068224,1094068479,SG
+1094068480,1094074879,US
1094074880,1094075167,BR
-1094075168,1094088959,US
-1094088960,1094089023,PR
-1094089024,1094565887,US
+1094075168,1094077439,US
+1094077440,1094077695,FR
+1094077696,1094078975,US
+1094078976,1094079231,SG
+1094079232,1094079743,US
+1094079744,1094079999,BR
+1094080000,1094080511,US
+1094080512,1094081023,NL
+1094081024,1094088703,US
+1094088704,1094090751,FR
+1094090752,1094099471,US
+1094099472,1094099487,NL
+1094099488,1094099551,US
+1094099552,1094099567,IE
+1094099568,1094147631,US
+1094147632,1094147647,SG
+1094147648,1094565887,US
1094565888,1094582271,CA
1094582272,1095450623,US
1095450624,1095467007,BS
@@ -14093,7 +14935,11 @@
1097947208,1097947215,US
1097947216,1097947327,VI
1097947328,1097947391,US
-1097947392,1097949183,VI
+1097947392,1097947735,VI
+1097947736,1097947743,US
+1097947744,1097948327,VI
+1097948328,1097948335,US
+1097948336,1097949183,VI
1097949184,1097951231,US
1097951232,1097953279,VI
1097953280,1098070271,US
@@ -14132,9 +14978,9 @@
1101475840,1101479935,CO
1101479936,1101484031,US
1101484032,1101488127,CO
-1101488128,1101521407,US
-1101521408,1101521663,AS
-1101521664,1101542399,US
+1101488128,1101521663,US
+1101521664,1101521919,AS
+1101521920,1101542399,US
1101542400,1101542911,CO
1101542912,1101574655,US
1101574656,1101575167,EC
@@ -14211,7 +15057,9 @@
1104492288,1104492543,PH
1104492544,1104842751,US
1104842752,1104844799,PR
-1104844800,1105099519,US
+1104844800,1104899839,US
+1104899840,1104900095,CA
+1104900096,1105099519,US
1105099520,1105099775,EC
1105099776,1105719295,US
1105719296,1105723391,IN
@@ -14337,7 +15185,9 @@
1110573056,1110587391,PR
1110587392,1110587647,US
1110587648,1110588159,PR
-1110588160,1110592767,US
+1110588160,1110589951,US
+1110589952,1110590207,PR
+1110590208,1110592767,US
1110592768,1110593023,PR
1110593024,1110594815,US
1110594816,1110595071,PR
@@ -14371,7 +15221,9 @@
1111195648,1111212031,CA
1111212032,1111228415,US
1111228416,1111244799,AR
-1111244800,1112424447,US
+1111244800,1111982079,US
+1111982080,1111998463,IT
+1111998464,1112424447,US
1112432640,1112440831,CA
1112440832,1112530943,US
1112530944,1112539135,CA
@@ -14465,9 +15317,7 @@
1114877184,1114877439,CY
1114877440,1114877951,US
1114877952,1114878207,PA
-1114878208,1115112575,US
-1115112576,1115112607,IN
-1115112608,1115113471,US
+1114878208,1115113471,US
1115113472,1115114495,HN
1115114496,1115114751,MX
1115114752,1115115007,GT
@@ -14480,7 +15330,16 @@
1115118592,1115119615,SV
1115119616,1115127807,US
1115127808,1115131903,CA
-1115131904,1115135999,US
+1115131904,1115133183,US
+1115133184,1115133439,CN
+1115133440,1115133503,US
+1115133504,1115133567,NL
+1115133568,1115134975,US
+1115134976,1115135359,HK
+1115135360,1115135375,NL
+1115135376,1115135615,US
+1115135616,1115135647,SG
+1115135648,1115135999,US
1115136000,1115144191,CA
1115144192,1115693055,US
1115693056,1115697151,AR
@@ -14594,9 +15453,7 @@
1118543872,1118547967,CA
1118547968,1118790655,US
1118790656,1118790911,IL
-1118790912,1118792431,US
-1118792432,1118792447,AR
-1118792448,1118793471,US
+1118790912,1118793471,US
1118793472,1118793727,CO
1118793728,1118796543,US
1118796544,1118796799,GB
@@ -14880,7 +15737,9 @@
1123184640,1123336191,US
1123336192,1123352575,CA
1123352576,1123394559,US
-1123394560,1123394815,CA
+1123394560,1123394687,CA
+1123394688,1123394751,US
+1123394752,1123394815,CA
1123394816,1123534847,US
1123534848,1123536895,AW
1123536896,1123589631,US
@@ -14888,7 +15747,9 @@
1123589888,1123590143,US
1123590144,1123598335,VI
1123598336,1123598591,CA
-1123598592,1123635639,US
+1123598592,1123635626,US
+1123635627,1123635627,PL
+1123635628,1123635639,US
1123635640,1123635640,RU
1123635641,1123635660,US
1123635661,1123635661,RU
@@ -14896,7 +15757,9 @@
1123635671,1123635671,RU
1123635672,1123635887,US
1123635888,1123635888,AU
-1123635889,1123638730,US
+1123635889,1123638614,US
+1123638615,1123638615,RE
+1123638616,1123638730,US
1123638731,1123638731,RE
1123638732,1123651583,US
1123651584,1123651839,JM
@@ -14919,9 +15782,7 @@
1123801088,1123801343,RU
1123801344,1123848191,US
1123848192,1123852287,CA
-1123852288,1123929599,US
-1123929600,1123929855,CA
-1123929856,1123950591,US
+1123852288,1123950591,US
1123950592,1123958783,CA
1123958784,1125064703,US
1125064704,1125065215,GB
@@ -15051,9 +15912,7 @@
1137639424,1137680959,US
1137680960,1137680975,UA
1137680976,1137704959,US
-1137704960,1137706239,CA
-1137706240,1137706495,US
-1137706496,1137712383,CA
+1137704960,1137712383,CA
1137712384,1137712639,US
1137712640,1137713151,CA
1137713152,1137758207,US
@@ -15104,8 +15963,8 @@
1138216960,1138373887,US
1138373888,1138374143,AS
1138374144,1138374399,US
-1138374400,1138374911,AS
-1138374912,1138375423,US
+1138374400,1138375167,AS
+1138375168,1138375423,US
1138375424,1138375679,AS
1138375680,1138419711,US
1138419712,1138419967,DE
@@ -15119,7 +15978,9 @@
1138528256,1138528511,CA
1138528512,1138544895,US
1138544896,1138545151,GB
-1138545152,1138593791,US
+1138545152,1138556415,US
+1138556416,1138556671,NL
+1138556672,1138593791,US
1138593792,1138597887,CA
1138597888,1138704383,US
1138704384,1138716671,CA
@@ -15145,23 +16006,35 @@
1139167488,1139168767,PR
1139168768,1139169279,US
1139169280,1139169791,PR
-1139169792,1139170815,US
-1139170816,1139171071,PR
-1139171072,1139179519,US
+1139169792,1139170047,US
+1139170048,1139170303,PR
+1139170304,1139179519,US
1139179520,1139195903,CA
1139195904,1139216383,US
1139216384,1139220479,CA
1139220480,1139265535,US
1139265536,1139269631,CA
-1139269632,1144796287,US
+1139269632,1142959359,US
+1142959360,1142959487,CA
+1142959488,1143261183,US
+1143261184,1143261311,CA
+1143261312,1143311167,US
+1143311168,1143311359,CA
+1143311360,1143647359,US
+1143647360,1143647487,CA
+1143647488,1143726079,US
+1143726080,1143726207,CA
+1143726208,1144796287,US
1144796288,1144796415,CA
-1144796416,1144848383,US
+1144796416,1144806527,US
+1144806528,1144806655,CA
+1144806656,1144848383,US
1144848384,1144848511,CA
-1144848512,1145099519,US
-1145099520,1145099697,SA
-1145099698,1145099699,US
-1145099700,1145099775,SA
-1145099776,1145188351,US
+1144848512,1144866303,US
+1144866304,1144866431,CA
+1144866432,1145099533,US
+1145099534,1145099535,SA
+1145099536,1145188351,US
1145188352,1145192447,CA
1145192448,1145242111,US
1145242112,1145242367,NO
@@ -15204,7 +16077,9 @@
1152117760,1152117952,IL
1152117953,1152117953,CA
1152117954,1152118015,IL
-1152118016,1152122879,CA
+1152118016,1152120575,CA
+1152120576,1152120831,US
+1152120832,1152122879,CA
1152122880,1152581631,US
1152581632,1152614399,CA
1152614400,1152778239,US
@@ -15267,9 +16142,7 @@
1158441472,1158441983,CA
1158441984,1158443007,DM
1158443008,1158774783,US
-1158774784,1158784703,CA
-1158784704,1158784767,US
-1158784768,1158791167,CA
+1158774784,1158791167,CA
1158791168,1158794239,BM
1158794240,1158794495,US
1158794496,1158799359,BM
@@ -15340,9 +16213,7 @@
1159694592,1159694847,CA
1159694848,1159700479,US
1159700480,1159725055,CA
-1159725056,1159767039,US
-1159767040,1159767295,CA
-1159767296,1160011775,US
+1159725056,1160011775,US
1160011776,1160019967,CA
1160019968,1160364031,US
1160364032,1160368127,CA
@@ -15368,9 +16239,7 @@
1160425472,1160429567,CA
1160429568,1160486911,US
1160486912,1160487423,AU
-1160487424,1160505343,US
-1160505344,1160505855,AU
-1160505856,1160547839,US
+1160487424,1160547839,US
1160547840,1160548351,MX
1160548352,1160563199,US
1160563200,1160563711,MP
@@ -15400,7 +16269,9 @@
1161052672,1161052927,GB
1161052928,1161053439,US
1161053440,1161053695,GB
-1161053696,1161293823,US
+1161053696,1161073407,US
+1161073408,1161073663,AU
+1161073664,1161293823,US
1161293824,1161297919,CA
1161297920,1161363455,US
1161363456,1161367551,CA
@@ -15553,17 +16424,13 @@
1162883840,1162884863,BB
1162884864,1162885887,VC
1162885888,1162887167,BB
-1162887168,1163398655,US
-1163398656,1163398911,BD
-1163398912,1163400959,US
+1162887168,1163399167,US
+1163399168,1163399423,WS
+1163399424,1163400959,US
1163400960,1163401215,BD
1163401216,1163401471,US
1163401472,1163401727,ID
-1163401728,1163401983,US
-1163401984,1163402239,BD
-1163402240,1163402495,US
-1163402496,1163402751,BD
-1163402752,1163407359,US
+1163401728,1163407359,US
1163407360,1163411455,CA
1163411456,1163468799,US
1163468800,1163469055,PR
@@ -15663,9 +16530,9 @@
1163571200,1163571967,CA
1163571968,1163572223,US
1163572224,1163572479,CA
-1163572480,1163572991,US
-1163572992,1163573247,CA
-1163573248,1163575039,US
+1163572480,1163573439,US
+1163573440,1163573503,IN
+1163573504,1163575039,US
1163575040,1163575295,IN
1163575296,1163576575,CA
1163576576,1163579903,US
@@ -15703,11 +16570,7 @@
1168393520,1168393543,US
1168393544,1168393567,CA
1168393568,1168393663,US
-1168393664,1168393791,CA
-1168393792,1168393935,US
-1168393936,1168393943,CA
-1168393944,1168393951,US
-1168393952,1168393983,CA
+1168393664,1168393983,CA
1168393984,1168394143,US
1168394144,1168394151,CA
1168394152,1168394279,US
@@ -15813,9 +16676,7 @@
1170489344,1170497535,CA
1170497536,1170505727,US
1170505728,1170522111,CA
-1170522112,1175726591,US
-1175726592,1175726719,CA
-1175726720,1175728639,US
+1170522112,1175728639,US
1175728640,1175728895,CA
1175728896,1175977983,US
1175977984,1176068167,CA
@@ -15859,11 +16720,14 @@
1176771584,1176771839,GB
1176771840,1176776703,US
1176776704,1176780799,CA
-1176780800,1176867583,US
-1176867584,1176867839,AU
-1176867840,1176868095,US
-1176868096,1176868111,AU
-1176868112,1176895487,US
+1176780800,1176864767,US
+1176864768,1176865535,FR
+1176865536,1176868095,US
+1176868096,1176868351,AU
+1176868352,1176868863,BR
+1176868864,1176878607,US
+1176878608,1176878639,SG
+1176878640,1176895487,US
1176895488,1176897047,CA
1176897048,1176897055,US
1176897056,1176900735,CA
@@ -15878,14 +16742,12 @@
1176925008,1176925015,NG
1176925016,1176928255,CA
1176928256,1177000703,US
-1177000704,1177000735,CA
+1177000704,1177000711,CA
+1177000712,1177000719,US
+1177000720,1177000735,CA
1177000736,1177000751,US
1177000752,1177000759,CA
-1177000760,1177000791,US
-1177000792,1177000799,CA
-1177000800,1177000807,US
-1177000808,1177000959,CA
-1177000960,1177022975,US
+1177000760,1177022975,US
1177022976,1177023231,GB
1177023232,1177030655,US
1177030656,1177033727,AG
@@ -15902,14 +16764,16 @@
1177165312,1177354239,US
1177354240,1177419775,PR
1177419776,1177550847,US
-1177550848,1177593599,CA
-1177593600,1177593855,US
-1177593856,1178075135,CA
+1177550848,1177592831,CA
+1177592832,1177593087,US
+1177593088,1178075135,CA
1178075136,1178599423,US
1178599424,1179910143,CA
1179910144,1180113919,US
1180113920,1180114431,AE
-1180114432,1191673855,US
+1180114432,1181351167,US
+1181351168,1181351423,CA
+1181351424,1191673855,US
1191673856,1191706623,CA
1191706624,1192232127,US
1192232128,1192232159,PA
@@ -15921,7 +16785,9 @@
1192468480,1192476671,CA
1192476672,1192488959,US
1192488960,1192493055,CA
-1192493056,1202304255,US
+1192493056,1202291711,US
+1202291712,1202291967,CA
+1202291968,1202304255,US
1202304256,1202304383,CA
1202304384,1207975935,US
1207975936,1207980031,CA
@@ -15961,11 +16827,9 @@
1208935984,1208935991,IN
1208935992,1208935999,JP
1208936000,1208936003,HK
-1208936004,1208936007,US
+1208936004,1208936007,IN
1208936008,1208936015,ID
-1208936016,1208936031,US
-1208936032,1208936039,IN
-1208936040,1208936191,US
+1208936016,1208936191,IN
1208936192,1208936199,AU
1208936200,1208936207,SG
1208936208,1208936215,HK
@@ -16028,7 +16892,9 @@
1210254936,1210254943,CA
1210254944,1210256127,US
1210256128,1210256383,CA
-1210256384,1210259967,US
+1210256384,1210257663,US
+1210257664,1210257919,CA
+1210257920,1210259967,US
1210259968,1210260223,CA
1210260224,1210314751,US
1210314752,1210315007,GB
@@ -16164,24 +17030,30 @@
1224476978,1224477183,US
1224477184,1224477439,SX
1224477440,1224477695,US
-1224477696,1224478719,SX
+1224477696,1224478207,SX
+1224478208,1224478463,US
+1224478464,1224478719,SX
1224478720,1224480767,US
1224480768,1224484863,JM
1224484864,1224493055,GT
1224493056,1224497151,US
1224497152,1224501247,GT
-1224501248,1224523519,JM
+1224501248,1224503551,JM
+1224503552,1224503807,BS
+1224503808,1224523519,JM
1224523520,1224523775,US
1224523776,1224525568,JM
1224525569,1224525823,US
1224525824,1224539904,JM
-1224539905,1235708415,US
-1235708416,1235708927,CA
-1235708928,1237309823,US
+1224539905,1235191807,US
+1235191808,1235192063,CA
+1235192064,1235708415,US
+1235708416,1235708799,CA
+1235708800,1237309823,US
1237309824,1237309951,CA
-1237309952,1238547071,US
-1238547072,1238547199,PR
-1238547200,1241743359,US
+1237309952,1240100351,US
+1240100352,1240100607,CA
+1240100608,1241743359,US
1241743360,1241759743,CA
1241759744,1242300415,US
1242300416,1242562559,CA
@@ -16197,9 +17069,7 @@
1245144576,1245144831,CH
1245144832,1245183999,US
1245184000,1245446143,CA
-1245446144,1245450186,US
-1245450187,1245450187,GU
-1245450188,1246890431,US
+1245446144,1246890431,US
1246890432,1246890463,CA
1246890464,1246890464,US
1246890465,1246890495,CA
@@ -16213,9 +17083,11 @@
1246923520,1246923775,AU
1246923776,1246937087,US
1246937088,1246945279,CA
-1246945280,1247073023,US
-1247073024,1247073279,CA
-1247073280,1247490047,US
+1246945280,1247101439,US
+1247101440,1247101695,CA
+1247101696,1247129599,US
+1247129600,1247133695,NL
+1247133696,1247490047,US
1247494144,1248864255,US
1248864256,1248866303,CA
1248866304,1248879615,US
@@ -16235,9 +17107,7 @@
1248936960,1248939007,CA
1248939008,1248946175,US
1248946176,1248947199,VG
-1248947200,1248956415,US
-1248956416,1248957439,CA
-1248957440,1248958463,US
+1248947200,1248958463,US
1248958464,1248959487,CA
1248959488,1248964607,US
1248964608,1248966655,CA
@@ -16251,7 +17121,7 @@
1249019904,1249020927,CA
1249020928,1249029119,US
1249029120,1249030143,CA
-1249030144,1249032191,US
+1249030144,1249032447,US
1249033216,1249036287,US
1249036288,1249037311,TC
1249037312,1249038335,US
@@ -16376,26 +17246,26 @@
1249716736,1249717759,US
1249717760,1249718015,FI
1249718016,1249718271,NL
-1249718272,1249720339,US
+1249718272,1249720319,US
+1249720320,1249720339,JP
1249720340,1249720343,AU
-1249720344,1249720351,US
-1249720352,1249720367,JP
-1249720368,1249720383,SG
-1249720384,1249720511,US
+1249720344,1249720511,JP
1249720512,1249720527,IN
1249720528,1249720543,AU
-1249720544,1249720575,US
+1249720544,1249720575,JP
1249720576,1249720591,FR
-1249720592,1249720599,GB
+1249720592,1249720599,US
1249720600,1249720607,DE
-1249720608,1249720663,GB
+1249720608,1249720623,US
+1249720624,1249720631,GB
+1249720632,1249720663,US
1249720664,1249720671,SE
-1249720672,1249720711,GB
+1249720672,1249720707,GB
+1249720708,1249720711,US
1249720712,1249720719,NL
-1249720720,1249720831,GB
-1249720832,1249721119,US
-1249721120,1249721135,CA
-1249721136,1249721343,US
+1249720720,1249720751,US
+1249720752,1249720767,GB
+1249720768,1249721343,US
1249721344,1249721351,AT
1249721352,1249721359,BE
1249721360,1249721367,CH
@@ -16471,15 +17341,15 @@
1249852160,1249886207,US
1249886208,1249902591,CA
1249902592,1254490111,US
-1254490112,1254532095,CA
-1254532096,1254532223,RU
-1254532224,1254555647,CA
+1254490112,1254555647,CA
1254555648,1254621183,US
1254621184,1254629375,CA
1254629376,1254978751,US
1254978752,1254978767,LB
1254978768,1254989823,US
-1254989824,1254998015,CA
+1254989824,1254990335,CA
+1254990336,1254990591,US
+1254990592,1254998015,CA
1254998016,1255002111,US
1255002112,1255006207,CA
1255006208,1255011583,US
@@ -16520,19 +17390,21 @@
1256054400,1256054783,CZ
1256054784,1256079359,US
1256079360,1256087551,KY
-1256087552,1262783487,US
-1262783488,1262783615,CA
-1262783616,1262783743,US
-1262783744,1262784511,CA
-1262784512,1264717823,US
+1256087552,1262783615,US
+1262783616,1262783871,CA
+1262783872,1262783886,US
+1262783887,1262783887,CA
+1262783888,1264717823,US
1264717824,1264718079,CA
1264718080,1264718591,US
1264718592,1264718847,CA
1264718848,1264719103,US
1264719104,1264719871,CA
-1264719872,1264746527,US
-1264746528,1264746543,CA
-1264746544,1264762879,US
+1264719872,1264746495,US
+1264746496,1264746751,CA
+1264746752,1264747007,US
+1264747008,1264747263,CA
+1264747264,1264762879,US
1264762880,1264763391,CA
1264763392,1264763647,IE
1264763648,1264766975,CA
@@ -16566,7 +17438,9 @@
1275789312,1275822079,CA
1275822080,1275912759,US
1275912760,1275912783,CA
-1275912784,1279262719,US
+1275912784,1276160255,US
+1276160256,1276160511,PR
+1276160512,1279262719,US
1279262720,1279787007,CA
1279787008,1279848447,US
1279848448,1279852543,PR
@@ -16690,7 +17564,9 @@
1296105472,1296171007,PL
1296171008,1296203775,DK
1296203776,1296236543,RU
-1296236544,1296237439,FR
+1296236544,1296236671,FR
+1296236672,1296236799,US
+1296236800,1296237439,FR
1296237440,1296237567,IT
1296237568,1296237823,FR
1296237824,1296238079,GB
@@ -16718,7 +17594,13 @@
1296249024,1296249087,GB
1296249088,1296249279,FR
1296249280,1296249343,DE
-1296249344,1296249567,FR
+1296249344,1296249407,FR
+1296249408,1296249423,GB
+1296249424,1296249439,FR
+1296249440,1296249455,GB
+1296249456,1296249463,FR
+1296249464,1296249471,GB
+1296249472,1296249567,FR
1296249568,1296249599,NO
1296249600,1296249615,GB
1296249616,1296250367,FR
@@ -16728,8 +17610,7 @@
1296250464,1296250495,RO
1296250496,1296250527,FR
1296250528,1296250559,DK
-1296250560,1296250623,FR
-1296250624,1296250847,BE
+1296250560,1296250847,FR
1296250848,1296250879,GB
1296250880,1296251199,FR
1296251200,1296251231,NL
@@ -16945,9 +17826,7 @@
1297171456,1297172479,RO
1297172480,1297172991,GB
1297172992,1297173503,RO
-1297173504,1297173759,IR
-1297173760,1297173775,IQ
-1297173776,1297175551,IR
+1297173504,1297175551,IR
1297175552,1297176319,GB
1297176320,1297176831,RO
1297176832,1297177599,GB
@@ -16971,7 +17850,7 @@
1297196800,1297197055,CN
1297197056,1297203199,RO
1297203200,1297211391,IR
-1297211392,1297215487,RO
+1297211392,1297215487,IT
1297215488,1297217535,NL
1297217536,1297219583,AZ
1297219584,1297285119,RU
@@ -17111,9 +17990,7 @@
1298956288,1298972671,GB
1298972672,1298989055,RU
1298989056,1299005439,UA
-1299005440,1299009023,NL
-1299009024,1299009279,BE
-1299009280,1299010047,NL
+1299005440,1299010047,NL
1299010048,1299010815,BE
1299010816,1299013119,NL
1299013120,1299013375,BE
@@ -17124,7 +18001,9 @@
1299019776,1299020031,NL
1299020032,1299021055,BE
1299021056,1299021823,NL
-1299021824,1299026111,CH
+1299021824,1299025148,CH
+1299025149,1299025149,DE
+1299025150,1299026111,CH
1299026112,1299026127,ES
1299026128,1299038207,CH
1299038208,1299054591,FI
@@ -17142,14 +18021,14 @@
1299709952,1299972095,UA
1299972096,1300234239,IL
1300234240,1302331391,FR
-1302331392,1303154431,NL
-1303154432,1303154687,RO
-1303154688,1303379967,NL
+1302331392,1303379967,NL
1303379968,1304428543,DE
1304428544,1305477119,FR
1305477120,1305739263,ES
1305739264,1306001407,DK
-1306001408,1306198015,SE
+1306001408,1306142659,SE
+1306142660,1306142660,EE
+1306142661,1306198015,SE
1306198016,1306206207,LV
1306206208,1306214399,HR
1306214400,1306222591,LT
@@ -17318,12 +18197,28 @@
1307807744,1307811839,SE
1307811840,1307815935,NL
1307816192,1307816447,GB
-1307817216,1307817471,DE
+1307816960,1307817215,NL
+1307817216,1307817219,DE
+1307817220,1307817223,CZ
+1307817224,1307817231,DE
+1307817232,1307817251,CZ
+1307817252,1307817255,HU
+1307817256,1307817259,CZ
+1307817260,1307817471,DE
+1307817728,1307817983,DE
1307817984,1307818048,GB
1307818049,1307818049,BE
1307818050,1307818239,GB
1307819008,1307819263,GB
-1307819264,1307819519,NL
+1307819264,1307819287,NL
+1307819288,1307819331,DE
+1307819332,1307819343,NL
+1307819344,1307819355,DE
+1307819356,1307819395,NL
+1307819396,1307819399,DE
+1307819400,1307819407,NL
+1307819408,1307819431,DE
+1307819432,1307819519,NL
1307819520,1307819775,GB
1307820032,1307824127,PT
1307824128,1307828223,HU
@@ -17348,7 +18243,9 @@
1307901952,1307906047,JO
1307906048,1307910143,CH
1307910144,1307914239,DE
-1307914240,1307918335,NL
+1307914240,1307914495,NL
+1307914496,1307914527,GB
+1307914528,1307918335,NL
1307918336,1307922431,GB
1307922432,1307926527,NL
1307926528,1307930623,KZ
@@ -17540,7 +18437,11 @@
1311301632,1311303679,TR
1311303680,1311307775,GB
1311307776,1311309823,IS
-1311309824,1311311871,GB
+1311309824,1311310591,GB
+1311310592,1311310847,GG
+1311310848,1311311103,GB
+1311311104,1311311359,GG
+1311311360,1311311871,GB
1311311872,1311315967,CZ
1311315968,1311318015,PL
1311318016,1311320063,RU
@@ -17572,14 +18473,10 @@
1311593432,1311593432,US
1311593433,1311637503,CZ
1311637504,1312292863,DE
-1312292864,1312304383,LT
-1312304384,1312304639,GB
-1312304640,1312564479,LT
-1312564480,1312564735,RU
-1312564736,1312817151,LT
-1312817152,1313191295,SE
-1313191296,1313191423,DK
-1313191424,1313865727,SE
+1312292864,1312817151,LT
+1312817152,1313379583,SE
+1313379584,1313379839,DK
+1313379840,1313865727,SE
1313865728,1313931263,CZ
1313931264,1313996799,RU
1313996800,1314062335,SE
@@ -17609,18 +18506,14 @@
1315713024,1315717119,SE
1315717120,1315725311,RU
1315725312,1315729407,CZ
-1315733504,1315737599,NL
+1315733504,1315736063,NL
+1315736064,1315736319,BE
+1315736320,1315737599,NL
1315737600,1315741695,CZ
1315741696,1315745791,LB
1315745792,1315749887,CZ
1315749888,1315753983,RU
-1315758080,1315758335,FR
-1315758336,1315758591,RE
-1315758592,1315758847,FR
-1315758848,1315759103,RE
-1315759104,1315759615,FR
-1315759616,1315759871,RE
-1315759872,1315762175,FR
+1315758080,1315762175,FR
1315762176,1315766271,BG
1315766272,1315770367,NL
1315770368,1315774463,UA
@@ -17689,9 +18582,7 @@
1317371904,1317404671,PL
1317404672,1317437439,IT
1317437440,1317470207,HR
-1317470208,1317473535,TR
-1317473536,1317473791,GB
-1317473792,1317502975,TR
+1317470208,1317502975,TR
1317502976,1317535743,IE
1317535744,1317552127,GB
1317552128,1317568511,ES
@@ -17703,9 +18594,7 @@
1317627904,1317629951,RU
1317629952,1317636095,GB
1317636096,1317637119,IE
-1317637120,1317640959,GB
-1317640960,1317641215,IE
-1317641216,1317642239,GB
+1317637120,1317642239,GB
1317642240,1317642495,IE
1317642496,1317643316,GB
1317643317,1317643317,IE
@@ -17719,9 +18608,7 @@
1317650432,1317666815,PT
1317666816,1317679727,GB
1317679728,1317679735,CM
-1317679736,1317681919,GB
-1317681920,1317682175,NG
-1317682176,1317683199,GB
+1317679736,1317683199,GB
1317683200,1317699583,DE
1317699584,1317715967,RU
1317715968,1317732351,SA
@@ -17729,7 +18616,9 @@
1317748736,1317765119,RU
1317765120,1317781503,GE
1317781504,1317814271,RU
-1317814272,1317830655,DE
+1317814272,1317816335,DE
+1317816336,1317816351,JP
+1317816352,1317830655,DE
1317830656,1317847039,NL
1317847040,1317863423,RU
1317863424,1317879807,GB
@@ -17741,7 +18630,9 @@
1317978112,1317994495,RU
1317994496,1318010879,DE
1318010880,1318027263,DK
-1318027264,1318043647,IE
+1318027264,1318035711,IE
+1318035712,1318035967,GB
+1318035968,1318043647,IE
1318043648,1318584319,GB
1318584320,1318592511,PL
1318592512,1318593983,NL
@@ -17811,7 +18702,8 @@
1319002112,1319010303,IE
1319010304,1319018495,CY
1319018496,1319026687,IR
-1319026688,1319034879,RU
+1319026688,1319026943,UA
+1319026944,1319034879,RU
1319034880,1319035903,NO
1319035904,1319036927,DK
1319036928,1319038975,SE
@@ -17877,9 +18769,7 @@
1331902464,1331904511,MK
1331904512,1331908607,GB
1331908608,1331910655,DE
-1331912704,1331912959,DE
-1331912960,1331913215,GB
-1331913216,1331914751,DE
+1331912704,1331914751,DE
1331914752,1331916799,RU
1331916800,1331918847,IT
1331918848,1331920895,BE
@@ -17891,11 +18781,7 @@
1331931136,1331933183,SE
1331933184,1331935231,TR
1331935232,1331937279,NL
-1331937280,1331938063,NG
-1331938064,1331938079,GB
-1331938080,1331938431,NG
-1331938432,1331938559,GB
-1331938560,1331939327,NG
+1331937280,1331939327,GB
1331939328,1331941375,BE
1331941376,1331943423,ES
1331943424,1331945471,RU
@@ -17957,9 +18843,13 @@
1334091776,1334099967,LT
1334099968,1334108159,IR
1334108160,1334116351,BE
-1334116352,1334124543,AX
+1334116352,1334118399,AX
+1334118400,1334118655,FI
+1334118656,1334124543,AX
1334124544,1334125823,DE
-1334125824,1334126591,ES
+1334125824,1334125915,ES
+1334125916,1334125916,DE
+1334125917,1334126591,ES
1334126592,1334127359,DE
1334127360,1334127615,AT
1334127616,1334130687,DE
@@ -18010,9 +18900,7 @@
1334620160,1334624255,DE
1334624256,1334625791,GB
1334625792,1334626047,AU
-1334626048,1334627071,GB
-1334627072,1334627327,AU
-1334627328,1334628351,GB
+1334626048,1334628351,GB
1334628352,1334632447,IE
1334632448,1334636543,KZ
1334636544,1334640639,RU
@@ -18054,10 +18942,9 @@
1334710272,1334714367,RU
1334714368,1334718463,DE
1334718464,1334722559,KZ
-1334722560,1334723583,NL
-1334723584,1334723839,BE
+1334722560,1334723839,NL
1334723840,1334724095,DK
-1334724096,1334724351,NO
+1334724096,1334724351,NL
1334724352,1334724607,SE
1334724608,1334724863,US
1334724864,1334725631,NL
@@ -18197,51 +19084,43 @@
1342753024,1342753535,FR
1342753536,1342754047,YT
1342754048,1342754303,FR
-1342754304,1342754559,YT
-1342754560,1342754815,FR
-1342754816,1342756095,YT
-1342756096,1342758911,FR
-1342758912,1342759423,YT
-1342759424,1342759935,FR
-1342759936,1342760447,YT
-1342760448,1342760703,FR
-1342760704,1342761727,YT
-1342761728,1342761983,FR
-1342761984,1342763007,YT
-1342763008,1342763263,FR
-1342763264,1342764543,YT
+1342754304,1342754815,YT
+1342754816,1342755071,FR
+1342755072,1342756351,YT
+1342756352,1342756607,FR
+1342756608,1342756863,YT
+1342756864,1342757375,FR
+1342757376,1342757631,YT
+1342757632,1342759167,FR
+1342759168,1342759423,YT
+1342759424,1342759679,FR
+1342759680,1342760703,YT
+1342760704,1342760959,FR
+1342760960,1342761471,YT
+1342761472,1342761727,FR
+1342761728,1342764543,YT
1342764544,1342988287,FR
1342988288,1342989055,US
-1342989056,1342996479,FR
-1342996480,1342997759,GF
-1342997760,1342998015,FR
-1342998016,1342998783,GF
+1342989056,1342996735,FR
+1342996736,1342998783,GF
1342998784,1342999039,FR
1342999040,1342999807,GF
1342999808,1343000063,FR
1343000064,1343000575,GF
1343000576,1343000831,FR
-1343000832,1343001087,GF
-1343001088,1343001599,FR
-1343001600,1343001855,GF
-1343001856,1343002367,FR
+1343000832,1343001343,GF
+1343001344,1343001599,FR
+1343001600,1343002111,GF
+1343002112,1343002367,FR
1343002368,1343003391,GF
-1343003392,1343004159,FR
-1343004160,1343004415,GF
+1343003392,1343003903,FR
+1343003904,1343004415,GF
1343004416,1343004671,FR
-1343004672,1343005951,GF
-1343005952,1343006207,FR
-1343006208,1343006975,GF
+1343004672,1343006975,GF
1343006976,1343007743,FR
-1343007744,1343007999,GF
-1343008000,1343008255,FR
-1343008256,1343009791,GF
-1343009792,1343010303,FR
-1343010304,1343010815,GF
-1343010816,1343011071,FR
-1343011072,1343011327,GF
-1343011328,1343011583,FR
-1343011584,1343012863,GF
+1343007744,1343010047,GF
+1343010048,1343010303,FR
+1343010304,1343012863,GF
1343012864,1343017983,FR
1343017984,1343018495,RE
1343018496,1343025151,FR
@@ -18354,8 +19233,8 @@
1346744320,1346748415,RU
1346748416,1346752511,DE
1346752512,1346753791,FR
-1346753792,1346754303,RE
-1346754304,1346756607,FR
+1346753792,1346754047,RE
+1346754048,1346756607,FR
1346756608,1346760703,SE
1346760704,1346764799,IR
1346764800,1346768895,DK
@@ -18446,7 +19325,9 @@
1347149568,1347149823,IN
1347149824,1347151423,HU
1347151424,1347158015,AT
-1347158016,1347162111,CH
+1347158016,1347159935,CH
+1347159936,1347160063,AT
+1347160064,1347162111,CH
1347162112,1347166207,IT
1347166208,1347174399,GR
1347174400,1347182591,IT
@@ -18901,7 +19782,9 @@
1348096000,1348100095,AL
1348100096,1348104191,DE
1348104192,1348108287,RU
-1348108288,1348112383,CZ
+1348108288,1348111359,CZ
+1348111360,1348111615,SK
+1348111616,1348112383,CZ
1348112384,1348116479,DE
1348116480,1348120575,JO
1348120576,1348124671,RU
@@ -18924,6 +19807,7 @@
1348190208,1348194303,RU
1348194304,1348198399,GR
1348198400,1348202495,NO
+1348205258,1348205258,DE
1348206592,1348218879,RU
1348218880,1348222975,DE
1348222976,1348231167,LU
@@ -18951,7 +19835,16 @@
1348317184,1348321279,RU
1348321280,1348325375,GB
1348325376,1348329471,TR
-1348329472,1348337663,RS
+1348329472,1348333599,RS
+1348333600,1348333607,XK
+1348333608,1348333631,RS
+1348333632,1348333807,XK
+1348333808,1348333823,RS
+1348333824,1348334079,XK
+1348334080,1348336191,RS
+1348336192,1348336383,XK
+1348336384,1348337471,RS
+1348337472,1348337663,XK
1348337664,1348341759,ES
1348341760,1348345855,PL
1348345856,1348349951,GB
@@ -18968,15 +19861,12 @@
1348390912,1348395007,SE
1348395008,1348399103,BY
1348399104,1348403199,MD
-1348403200,1348404223,ZA
-1348405248,1348407295,ZA
+1348403200,1348407295,ZA
1348407296,1348411391,BG
1348411392,1348415487,RU
1348415488,1348419583,GB
1348419584,1348427775,HU
-1348427776,1348429823,CZ
-1348429824,1348430079,AU
-1348430080,1348435967,CZ
+1348427776,1348435967,CZ
1348435968,1348440063,FI
1348440064,1348444159,DE
1348444160,1348448255,NL
@@ -18994,9 +19884,7 @@
1349124096,1349255167,GR
1349255168,1349451775,AT
1349451776,1349517311,IE
-1349517312,1349554687,NL
-1349554688,1349554943,NO
-1349554944,1349763071,NL
+1349517312,1349763071,NL
1349763072,1349771263,RU
1349771264,1349779455,NL
1349779456,1349910527,IT
@@ -19044,9 +19932,7 @@
1353287960,1353287967,IE
1353287968,1353288191,GB
1353288192,1353288447,IE
-1353288448,1353289215,GB
-1353289216,1353289471,IE
-1353289472,1353298783,GB
+1353288448,1353298783,GB
1353298784,1353298815,SE
1353298816,1353298895,GB
1353298896,1353298911,SE
@@ -19056,14 +19942,17 @@
1353300064,1353300071,SE
1353300072,1353300079,GB
1353300080,1353300095,SE
-1353300096,1353306623,GB
-1353306624,1353306879,BE
-1353306880,1353308159,GB
+1353300096,1353306695,GB
+1353306696,1353306703,BE
+1353306704,1353308159,GB
1353308160,1353309183,FR
1353309184,1353312447,GB
1353312448,1353312479,CH
-1353312480,1353315327,GB
-1353315328,1353316351,ES
+1353312480,1353312767,GB
+1353312768,1353313023,IT
+1353313024,1353315327,GB
+1353315328,1353315583,US
+1353315584,1353316351,ES
1353316352,1353318399,GB
1353318400,1353383935,SE
1353383936,1353449471,DE
@@ -19088,7 +19977,9 @@
1354694656,1354760191,IR
1354760192,1355022335,GB
1355022336,1355284479,DK
-1355284480,1355415551,BE
+1355284480,1355366399,BE
+1355366400,1355366655,FR
+1355366656,1355415551,BE
1355415552,1355546623,NO
1355546624,1355808767,IT
1355808768,1356070911,DK
@@ -19125,6 +20016,7 @@
1357324296,1357324319,PL
1357324320,1357325311,GB
1357326336,1357326337,ES
+1357326338,1357326339,SL
1357326848,1357327103,GB
1357327360,1357327615,FR
1357328384,1357328671,GB
@@ -19133,11 +20025,11 @@
1357330944,1357331199,GB
1357335808,1357336063,IT
1357337600,1357337635,NL
+1357337640,1357337647,NL
1357340672,1357341695,GB
1357342976,1357343231,GB
1357343488,1357343503,GB
-1357344260,1357344271,FR
-1357344512,1357344767,FR
+1357344256,1357344767,FR
1357346816,1357346835,FR
1357346848,1357346863,FR
1357347336,1357347375,FR
@@ -19145,13 +20037,14 @@
1357347616,1357347659,FR
1357347664,1357347671,FR
1357347680,1357347727,FR
+1357347744,1357347775,FR
1357347840,1357348095,PL
+1357348352,1357348359,ES
1357348384,1357348415,ES
1357348480,1357348607,ES
-1357350400,1357350639,GB
+1357350400,1357350647,GB
1357350656,1357350847,GB
1357351168,1357351423,PL
-1357355520,1357355775,FR
1357360064,1357360383,GB
1357361152,1357363199,GB
1357363200,1357364223,QA
@@ -19170,9 +20063,9 @@
1357373536,1357373539,ES
1357373540,1357373543,PT
1357373544,1357373555,GB
-1357373560,1357375199,GB
-1357377536,1357377679,FR
-1357377696,1357378623,FR
+1357373560,1357375207,GB
+1357375232,1357375295,GB
+1357377536,1357378623,FR
1357381632,1357414399,NO
1357414400,1357447167,LV
1357447168,1357479935,IE
@@ -19212,6 +20105,7 @@
1357885952,1357886207,SE
1357889024,1357889279,GB
1357889280,1357889535,SE
+1357889792,1357890047,SE
1357890828,1357890831,NL
1357891072,1357891327,NL
1357891584,1357891647,SE
@@ -19286,8 +20180,8 @@
1358036992,1358041087,IR
1358041088,1358045183,FI
1358045184,1358049279,SK
-1358049280,1358062591,RU
-1358062592,1358065663,UA
+1358049280,1358064639,RU
+1358064640,1358065663,UA
1358065664,1358069759,BA
1358069760,1358086143,DE
1358086144,1358090239,CH
@@ -19309,10 +20203,10 @@
1358151680,1358155775,DE
1358155776,1358159871,CH
1358163968,1358164479,FR
-1358164480,1358164735,MQ
-1358164736,1358164991,FR
-1358164992,1358165247,MQ
-1358165248,1358167807,FR
+1358164480,1358165247,MQ
+1358165248,1358167295,FR
+1358167296,1358167551,GP
+1358167552,1358167807,FR
1358167808,1358168063,GP
1358168064,1358172159,GB
1358172160,1358176255,CY
@@ -19431,9 +20325,7 @@
1358670976,1358670991,PT
1358670992,1358671001,GB
1358671002,1358671002,PT
-1358671003,1358671359,GB
-1358671360,1358671615,PT
-1358671616,1358671935,GB
+1358671003,1358671935,GB
1358671936,1358671943,PT
1358671944,1358675967,GB
1358675968,1358676991,SE
@@ -19538,7 +20430,9 @@
1359122432,1359123967,DE
1359123968,1359124479,ES
1359124480,1359134719,DE
-1359134720,1359151103,CZ
+1359134720,1359147960,CZ
+1359147961,1359147961,PT
+1359147962,1359151103,CZ
1359151104,1359167487,DE
1359167488,1359183871,GB
1359183872,1359200255,RU
@@ -19560,7 +20454,9 @@
1359446016,1359462399,DK
1359462400,1359467007,DE
1359467008,1359467263,US
-1359467264,1359470591,DE
+1359467264,1359468607,DE
+1359468608,1359468623,SG
+1359468624,1359470591,DE
1359470592,1359478783,CH
1359478784,1359511551,TR
1359511552,1359544319,SE
@@ -19649,7 +20545,9 @@
1360282496,1360282623,DE
1360282624,1360284671,NL
1360284672,1360284927,DK
-1360284928,1360285695,NL
+1360284928,1360285183,NL
+1360285184,1360285247,ES
+1360285248,1360285695,NL
1360285696,1360289791,DE
1360289792,1360293887,RU
1360293888,1360302079,DE
@@ -19809,9 +20707,15 @@
1360986357,1360986358,US
1360986359,1360986367,GB
1360986368,1360986399,US
-1360986400,1360986631,GB
+1360986400,1360986431,GB
+1360986432,1360986447,US
+1360986448,1360986631,GB
1360986632,1360986635,US
-1360986636,1360992255,GB
+1360986636,1360986755,GB
+1360986756,1360986763,US
+1360986764,1360989929,GB
+1360989930,1360989930,FR
+1360989931,1360992255,GB
1360992256,1360992511,DE
1360992512,1360993095,GB
1360993096,1360993099,DE
@@ -19871,9 +20775,7 @@
1364526592,1364528639,GB
1364528640,1364529663,NL
1364529664,1364530175,GB
-1364530176,1364537343,NL
-1364537344,1364537599,IS
-1364537600,1364541439,NL
+1364530176,1364541439,NL
1364541440,1364545535,SE
1364545536,1364581375,NL
1364581376,1364582399,LY
@@ -20007,9 +20909,7 @@
1365237760,1365241855,UZ
1365241856,1365245951,DK
1365245952,1366294527,GB
-1366294528,1366405831,IT
-1366405832,1366405835,SI
-1366405836,1367343103,IT
+1366294528,1367343103,IT
1367343104,1369440255,GB
1369440256,1369473023,DE
1369473024,1369505791,HU
@@ -20135,7 +21035,7 @@
1372004352,1372012543,GB
1372012544,1372013567,ZM
1372013568,1372020735,GB
-1372020736,1372020991,ZM
+1372020736,1372020991,LR
1372020992,1372021247,CD
1372021248,1372022783,ZM
1372022784,1372026623,GB
@@ -20208,31 +21108,27 @@
1373437952,1373503487,CH
1373503488,1373569023,RU
1373569024,1373634559,AT
-1373634560,1374433279,SE
-1374433280,1374433535,DK
-1374433536,1374683135,SE
+1373634560,1374683135,SE
1374683136,1375207423,BE
-1375207424,1375207679,FR
-1375207680,1375208447,MQ
+1375207424,1375208447,MQ
1375208448,1375208703,GP
1375208704,1375208959,FR
1375208960,1375210239,MQ
1375210240,1375210495,GP
1375210496,1375211263,MQ
-1375211264,1375211519,FR
-1375211520,1375213055,GP
+1375211264,1375211775,FR
+1375211776,1375213055,GP
1375213056,1375213311,FR
-1375213312,1375215359,GP
-1375215360,1375215615,BL
-1375215616,1375215871,GF
-1375215872,1375216127,FR
-1375216128,1375216639,GF
-1375216640,1375217663,FR
+1375213312,1375214591,GP
+1375214592,1375214847,FR
+1375214848,1375215615,GP
+1375215616,1375216639,GF
+1375216640,1375216895,FR
+1375216896,1375217151,GF
+1375217152,1375217663,FR
1375217664,1375217919,GF
1375217920,1375218175,FR
-1375218176,1375218687,GF
-1375218688,1375218943,FR
-1375218944,1375220735,GF
+1375218176,1375220735,GF
1375220736,1375221759,FR
1375221760,1375222015,GF
1375222016,1375222783,FR
@@ -20240,19 +21136,19 @@
1375223040,1375223295,FR
1375223296,1375223551,GF
1375223552,1375224831,FR
-1375224832,1375225087,MQ
-1375225088,1375226111,FR
-1375226112,1375226367,MQ
+1375224832,1375225343,MQ
+1375225344,1375225855,FR
+1375225856,1375226367,MQ
1375226368,1375226623,FR
-1375226624,1375227391,MQ
-1375227392,1375227647,FR
-1375227648,1375227903,MQ
-1375227904,1375228415,FR
-1375228416,1375228671,MQ
-1375228672,1375229183,FR
-1375229184,1375229439,MQ
-1375229440,1375230719,FR
-1375230720,1375230975,MQ
+1375226624,1375228415,MQ
+1375228416,1375228671,FR
+1375228672,1375228927,MQ
+1375228928,1375229183,FR
+1375229184,1375229695,MQ
+1375229696,1375229951,FR
+1375229952,1375230207,MQ
+1375230208,1375230463,FR
+1375230464,1375230975,MQ
1375230976,1375231487,FR
1375231488,1375231743,MQ
1375231744,1375234047,FR
@@ -20261,22 +21157,22 @@
1375234560,1375234815,MQ
1375234816,1375235071,FR
1375235072,1375235583,MQ
-1375235584,1375236095,FR
-1375236096,1375236351,MQ
-1375236352,1375237887,FR
-1375237888,1375238143,MQ
-1375238144,1375238655,FR
-1375238656,1375238911,MQ
-1375238912,1375239167,FR
-1375239168,1375239423,MQ
-1375239424,1375242495,FR
-1375242496,1375242751,GP
-1375242752,1375243007,FR
-1375243008,1375243263,GP
-1375243264,1375243775,FR
-1375243776,1375244031,GP
-1375244032,1375246079,FR
-1375246080,1375246591,GP
+1375235584,1375237119,FR
+1375237120,1375237375,MQ
+1375237376,1375237631,FR
+1375237632,1375238399,MQ
+1375238400,1375238655,FR
+1375238656,1375239423,MQ
+1375239424,1375241215,FR
+1375241216,1375241471,GP
+1375241472,1375242495,FR
+1375242496,1375243263,GP
+1375243264,1375243519,FR
+1375243520,1375244031,GP
+1375244032,1375244799,FR
+1375244800,1375245311,GP
+1375245312,1375245823,FR
+1375245824,1375246591,GP
1375246592,1375247871,FR
1375247872,1375248383,GP
1375248384,1375250687,FR
@@ -20284,11 +21180,7 @@
1375251200,1375251711,FR
1375251712,1375252223,GP
1375252224,1375252735,FR
-1375252736,1375253247,GP
-1375253248,1375253503,FR
-1375253504,1375253759,GP
-1375253760,1375254015,FR
-1375254016,1375254527,GP
+1375252736,1375254527,GP
1375254528,1375255039,FR
1375255040,1375255295,GP
1375255296,1375255551,FR
@@ -20297,15 +21189,17 @@
1375256576,1375257599,RE
1375257600,1375258111,FR
1375258112,1375258623,RE
-1375258624,1375260062,FR
-1375260063,1375260063,RE
-1375260064,1375260685,FR
+1375258624,1375259647,FR
+1375259648,1375260415,RE
+1375260416,1375260685,FR
1375260686,1375260686,RE
1375260687,1375260927,FR
1375260928,1375262463,RE
-1375262464,1375262975,FR
-1375262976,1375263487,RE
-1375263488,1375264255,FR
+1375262464,1375262719,FR
+1375262720,1375263487,RE
+1375263488,1375263743,FR
+1375263744,1375263999,RE
+1375264000,1375264255,FR
1375264256,1375264511,RE
1375264512,1375264550,FR
1375264551,1375264551,RE
@@ -20313,19 +21207,19 @@
1375264728,1375264728,RE
1375264729,1375264767,FR
1375264768,1375265791,RE
-1375265792,1375266303,FR
-1375266304,1375266815,RE
+1375265792,1375266047,FR
+1375266048,1375266815,RE
1375266816,1375269119,FR
1375269120,1375269375,RE
1375269376,1375269631,FR
-1375269632,1375270143,RE
-1375270144,1375270399,FR
-1375270400,1375270655,RE
-1375270656,1375270911,FR
-1375270912,1375271679,RE
+1375269632,1375271679,RE
1375271680,1375271964,FR
1375271965,1375271965,RE
-1375271966,1375731711,FR
+1375271966,1375272191,FR
+1375272192,1375272447,RE
+1375272448,1375272703,FR
+1375272704,1375272959,RE
+1375272960,1375731711,FR
1375731712,1378877439,GB
1378877440,1379926015,IT
1379926016,1380188159,FR
@@ -20344,7 +21238,8 @@
1382072320,1382088703,RU
1382088704,1382105087,FR
1382105088,1382137855,DE
-1382137856,1382154239,RU
+1382137856,1382152191,RU
+1382152192,1382154239,IR
1382154240,1382170623,FR
1382170624,1382187007,DE
1382187008,1382203391,ES
@@ -20381,14 +21276,13 @@
1382809600,1383071743,GB
1383071744,1383088127,RU
1383088128,1383096319,IS
-1383096320,1383098879,GB
+1383096320,1383096575,FR
+1383096576,1383098879,GB
1383098880,1383099135,DE
1383099136,1383099163,GB
1383099164,1383099164,NL
1383099165,1383104511,GB
-1383104512,1383108735,JE
-1383108736,1383108863,GG
-1383108864,1383112703,JE
+1383104512,1383112703,JE
1383112704,1383114751,LB
1383114752,1383116799,GB
1383116800,1383120895,RU
@@ -20536,7 +21430,9 @@
1385267200,1385275391,SE
1385275392,1385283583,IT
1385283584,1385286143,DE
-1385286144,1385290631,GB
+1385286144,1385290288,GB
+1385290289,1385290289,RE
+1385290290,1385290631,GB
1385290632,1385290632,IS
1385290633,1385291343,GB
1385291344,1385291344,IS
@@ -20600,9 +21496,29 @@
1386438400,1386438655,FR
1386438656,1386448895,GB
1386448896,1386449151,IL
-1386449152,1386449407,NL
-1386449408,1386450943,IL
-1386450944,1386479615,GB
+1386449152,1386449343,NL
+1386449344,1386449347,GB
+1386449348,1386449359,NL
+1386449360,1386449363,GB
+1386449364,1386449367,BE
+1386449368,1386449371,AU
+1386449372,1386449375,AT
+1386449376,1386449379,NL
+1386449380,1386449383,CH
+1386449384,1386449387,FR
+1386449388,1386449391,NL
+1386449392,1386449395,ES
+1386449396,1386449399,PT
+1386449400,1386449403,RU
+1386449404,1386449407,DE
+1386449408,1386449663,IL
+1386449664,1386449919,HK
+1386449920,1386450943,IL
+1386450944,1386477567,GB
+1386477568,1386477823,US
+1386477824,1386478079,GB
+1386478080,1386478335,US
+1386478336,1386479615,GB
1386479616,1386545151,NO
1386545152,1386552319,DE
1386552320,1386553087,GB
@@ -20653,9 +21569,13 @@
1388581120,1388583167,FR
1388583168,1388583423,DZ
1388583424,1388584959,FR
+1388587264,1388587455,BE
1388587456,1388587471,GB
+1388587472,1388587519,BE
1388587520,1388587775,GB
+1388588288,1388588543,GB
1388589056,1388589823,GB
+1388590080,1388590335,GB
1388591104,1388591359,AU
1388593152,1388601343,RU
1388601344,1388609535,SE
@@ -20666,11 +21586,13 @@
1388642304,1388650495,FI
1388650496,1388658687,PL
1388658688,1388666879,GB
-1388666880,1388667647,FR
-1388667648,1388668159,RE
+1388666880,1388667903,FR
+1388667904,1388668159,RE
1388668160,1388671097,FR
1388671098,1388671098,RE
-1388671099,1388671763,FR
+1388671099,1388671231,FR
+1388671232,1388671487,RE
+1388671488,1388671763,FR
1388671764,1388671764,RE
1388671765,1388672244,FR
1388672245,1388672245,RE
@@ -20682,10 +21604,13 @@
1388675584,1388676095,DE
1388677632,1388677887,NL
1388678144,1388679167,DE
+1388679168,1388679423,FR
1388681216,1388683263,DE
1388683264,1388683903,CH
1388683904,1388683919,DE
-1388683920,1388685599,CH
+1388683920,1388684080,CH
+1388684081,1388684081,AT
+1388684082,1388685599,CH
1388685600,1388685631,GB
1388685632,1388688127,CH
1388688128,1388688159,NL
@@ -20763,11 +21688,19 @@
1389166592,1389199359,PS
1389199360,1389199871,AE
1389199872,1389200159,US
-1389200160,1389218815,AE
+1389200160,1389215743,AE
+1389215744,1389215999,DE
+1389216000,1389217023,AE
+1389217024,1389217535,US
+1389217536,1389218815,AE
1389218816,1389219839,AF
-1389219840,1389228415,AE
+1389219840,1389223935,AE
+1389223936,1389224191,DE
+1389224192,1389228415,AE
1389228416,1389228479,LB
-1389228480,1389232127,AE
+1389228480,1389231359,AE
+1389231360,1389231615,DE
+1389231616,1389232127,AE
1389232128,1389264895,DE
1389264896,1389265151,TZ
1389265152,1389266943,GB
@@ -20791,7 +21724,8 @@
1389445120,1389461503,RU
1389461504,1389477887,SE
1389477888,1389494271,BY
-1389494272,1389510655,DE
+1389494272,1389494527,RO
+1389494528,1389510655,DE
1389510656,1389527039,NL
1389527040,1389543423,RO
1389543424,1389576191,DE
@@ -20822,7 +21756,9 @@
1389789184,1389805567,PL
1389805568,1389806591,DE
1389806592,1389806847,SA
-1389806848,1389817855,DE
+1389806848,1389817603,DE
+1389817604,1389817604,NO
+1389817605,1389817855,DE
1389817856,1389819903,GB
1389819904,1389821951,DE
1389821952,1389838335,NL
@@ -20966,10 +21902,11 @@
1401544704,1401546751,GB
1401546752,1401548799,IT
1401548800,1401550847,FR
-1401550848,1401551103,JE
-1401551104,1401551615,GB
-1401551616,1401552639,JE
-1401552640,1401552895,GB
+1401550848,1401551359,JE
+1401551360,1401551615,GB
+1401551616,1401552383,JE
+1401552384,1401552639,GB
+1401552640,1401552895,JE
1401552896,1401554943,NL
1401554944,1401556991,IE
1401556992,1401563135,GB
@@ -21050,6 +21987,13 @@
1401939968,1401942015,UA
1401942016,1401942047,CZ
1401942528,1401943039,GB
+1401943048,1401943055,IT
+1401943056,1401943063,ES
+1401943064,1401943067,NL
+1401943072,1401943079,HU
+1401943080,1401943087,FR
+1401943096,1401943103,DE
+1401943104,1401943111,HU
1401943552,1401943807,US
1401944064,1401946111,BG
1401946112,1401962495,FR
@@ -21078,9 +22022,9 @@
1402273792,1402277631,RU
1402277632,1402277887,TJ
1402277888,1402290175,RU
-1402290176,1402306047,NL
-1402306048,1402306303,DE
-1402306304,1402306559,NL
+1402290176,1402306204,NL
+1402306205,1402306205,DE
+1402306206,1402306559,NL
1402306560,1402322943,IT
1402322944,1402339327,RU
1402339328,1402355711,CH
@@ -21098,7 +22042,9 @@
1402433601,1402433601,FR
1402433602,1402437631,GB
1402437632,1402454015,DK
-1402454016,1402470399,GB
+1402454016,1402455551,GB
+1402455552,1402455807,US
+1402455808,1402470399,GB
1402470400,1402994687,FR
1402994688,1403256831,NL
1403256832,1403322367,AT
@@ -21164,9 +22110,9 @@
1404043264,1404051455,EE
1404051456,1404059647,HR
1404059648,1404076031,NO
-1404076032,1404077055,SE
-1404077056,1404081151,LV
-1404081152,1404082175,SE
+1404076032,1404076543,SE
+1404076544,1404081663,LV
+1404081664,1404082175,SE
1404082176,1404083199,DE
1404083200,1404084223,SE
1404084224,1404092415,NO
@@ -21202,11 +22148,14 @@
1404215296,1404219391,LV
1404219392,1404220415,SE
1404220416,1404221439,EE
-1404221440,1404227583,SE
-1404227584,1404231679,LV
+1404221440,1404222463,SE
+1404222464,1404222975,LV
+1404222976,1404227071,SE
+1404227072,1404231679,LV
1404231680,1404232191,SE
1404232192,1404232703,NO
-1404232704,1404234751,SE
+1404232704,1404233215,LV
+1404233216,1404234751,SE
1404234752,1404239871,HR
1404239872,1404305407,SE
1404305408,1404313599,EE
@@ -21246,8 +22195,8 @@
1404780544,1404788735,SE
1404788736,1404796927,NL
1404796928,1404801023,EE
-1404801024,1404803583,SE
-1404803584,1404804095,LV
+1404801024,1404803071,SE
+1404803072,1404804095,LV
1404804096,1404805119,SE
1404805120,1404813311,AT
1404813312,1404815871,EE
@@ -21280,103 +22229,77 @@
1405813760,1405814271,FR
1405814272,1405814527,MQ
1405814528,1405814783,FR
-1405814784,1405815295,MQ
-1405815296,1405816319,FR
-1405816320,1405817343,MQ
-1405817344,1405817599,FR
-1405817600,1405819903,MQ
-1405819904,1405820159,FR
-1405820160,1405821439,MQ
+1405814784,1405815551,MQ
+1405815552,1405816319,FR
+1405816320,1405817087,MQ
+1405817088,1405817599,FR
+1405817600,1405821439,MQ
1405821440,1405821695,FR
-1405821696,1405821951,MQ
-1405821952,1405822207,FR
-1405822208,1405823231,MQ
-1405823232,1405823487,FR
-1405823488,1405823743,MQ
+1405821696,1405823743,MQ
1405823744,1405823999,FR
-1405824000,1405825535,MQ
-1405825536,1405826047,FR
-1405826048,1405826559,MQ
-1405826560,1405826815,FR
-1405826816,1405827583,MQ
+1405824000,1405825791,MQ
+1405825792,1405826047,FR
+1405826048,1405827583,MQ
1405827584,1405827839,FR
1405827840,1405828351,MQ
1405828352,1405828607,FR
-1405828608,1405828863,MQ
-1405828864,1405829119,FR
-1405829120,1405829375,MQ
-1405829376,1405829631,FR
-1405829632,1405830143,MQ
+1405828608,1405829375,MQ
+1405829376,1405829887,FR
+1405829888,1405830143,MQ
1405830144,1405830399,FR
1405830400,1405830911,MQ
1405830912,1405831167,FR
-1405831168,1405834495,MQ
-1405834496,1405835007,FR
-1405835008,1405835519,MQ
-1405835520,1405835775,FR
-1405835776,1405836031,MQ
+1405831168,1405834751,MQ
+1405834752,1405835007,FR
+1405835008,1405836031,MQ
1405836032,1405836287,FR
1405836288,1405836543,MQ
-1405836544,1405837311,FR
-1405837312,1405837567,MQ
-1405837568,1405837823,FR
+1405836544,1405837823,FR
1405837824,1405838079,MQ
1405838080,1405838335,FR
-1405838336,1405839103,MQ
-1405839104,1405839359,FR
-1405839360,1405840383,MQ
-1405840384,1405840895,FR
-1405840896,1405846015,MQ
+1405838336,1405840639,MQ
+1405840640,1405840895,FR
+1405840896,1405842431,MQ
+1405842432,1405842687,FR
+1405842688,1405846015,MQ
1405846016,1405846271,FR
1405846272,1405846783,MQ
1405846784,1405847039,FR
1405847040,1405847551,MQ
1405847552,1405847807,FR
-1405847808,1405848063,MQ
-1405848064,1405849599,FR
-1405849600,1405850879,MQ
-1405850880,1405851391,FR
-1405851392,1405851647,MQ
-1405851648,1405851903,FR
-1405851904,1405852159,MQ
+1405847808,1405848319,MQ
+1405848320,1405849599,FR
+1405849600,1405851135,MQ
+1405851136,1405851391,FR
+1405851392,1405852159,MQ
1405852160,1405852415,FR
1405852416,1405852927,MQ
1405852928,1405853439,FR
1405853440,1405853695,MQ
1405853696,1405853951,FR
-1405853952,1405854207,MQ
-1405854208,1405854975,FR
-1405854976,1405855743,MQ
-1405855744,1405855999,FR
-1405856000,1405858047,MQ
-1405858048,1405858559,FR
-1405858560,1405860607,MQ
+1405853952,1405854463,MQ
+1405854464,1405854975,FR
+1405854976,1405858047,MQ
+1405858048,1405858303,FR
+1405858304,1405860607,MQ
1405860608,1405860863,FR
1405860864,1405861887,MQ
1405861888,1405862399,FR
-1405862400,1405862655,MQ
-1405862656,1405863423,FR
-1405863424,1405864191,MQ
-1405864192,1405866495,FR
+1405862400,1405864191,MQ
+1405864192,1405865983,FR
+1405865984,1405866239,MQ
+1405866240,1405866495,FR
1405866496,1405867519,MQ
-1405867520,1405868031,FR
-1405868032,1405868287,MQ
-1405868288,1405868799,FR
-1405868800,1405869055,MQ
+1405867520,1405867775,FR
+1405867776,1405869055,MQ
1405869056,1405869311,FR
-1405869312,1405870591,MQ
-1405870592,1405870847,FR
-1405870848,1405871103,MQ
-1405871104,1405871359,FR
-1405871360,1405872127,MQ
-1405872128,1405872639,FR
-1405872640,1405873919,MQ
-1405873920,1405874175,FR
-1405874176,1405874431,MQ
+1405869312,1405874431,MQ
1405874432,1405874687,FR
-1405874688,1405876479,MQ
-1405876480,1405876735,FR
-1405876736,1405878271,MQ
+1405874688,1405874943,MQ
+1405874944,1405875199,FR
+1405875200,1405877503,MQ
+1405877504,1405877759,FR
+1405877760,1405878271,MQ
1405878272,1406140415,FR
1406140416,1406205951,CZ
1406205952,1406271487,SE
@@ -21409,17 +22332,15 @@
1406793844,1406793847,GB
1406793848,1406794751,ES
1406794752,1406795775,NL
-1406795776,1406796799,GB
-1406796800,1406797311,IM
-1406797312,1406803711,GB
+1406795776,1406796543,GB
+1406796544,1406796799,IM
+1406796800,1406803711,GB
1406803712,1406803967,IM
1406803968,1406812159,DE
1406812160,1406820351,SE
1406820352,1406828543,PL
1406828544,1406836735,GB
-1406836736,1406837247,AT
-1406837248,1406837503,GB
-1406837504,1406844927,AT
+1406836736,1406844927,AT
1406844928,1406853119,MD
1406853120,1406861311,UA
1406861312,1406869503,RU
@@ -21477,7 +22398,9 @@
1407549440,1407582207,RU
1407582208,1407614975,PL
1407614976,1407680511,ES
-1407680512,1407686119,GB
+1407680512,1407681023,GB
+1407681024,1407681087,ES
+1407681088,1407686119,GB
1407686120,1407686123,CH
1407686124,1407686127,DE
1407686128,1407686131,FR
@@ -21509,13 +22432,7 @@
1408106496,1408172031,PL
1408172032,1408237567,RU
1408237568,1408270335,CZ
-1408270336,1408283135,PT
-1408283136,1408283197,GB
-1408283198,1408283198,PT
-1408283199,1408283329,GB
-1408283330,1408283330,PT
-1408283331,1408283391,GB
-1408283392,1408303103,PT
+1408270336,1408303103,PT
1408303104,1408335871,LV
1408335872,1408368639,SE
1408368640,1408376831,NO
@@ -21633,8 +22550,12 @@
1410711552,1410719743,BG
1410719744,1410727935,RU
1410727936,1410736127,BG
-1410736128,1410744319,RS
-1410744320,1410752511,FR
+1410736128,1410742015,RS
+1410742016,1410742271,XK
+1410742272,1410744319,RS
+1410744320,1410747391,FR
+1410747392,1410747647,GF
+1410747648,1410752511,FR
1410752512,1410760703,NL
1410760704,1410768895,RU
1410768896,1410777087,GB
@@ -21680,12 +22601,9 @@
1411842048,1411850239,NL
1411850240,1411858431,FR
1411858432,1411870719,DE
-1411871744,1411871999,GB
-1411872057,1411872057,GB
-1411872160,1411872161,GB
-1411872196,1411872199,GB
-1411872228,1411872231,GB
-1411872244,1411872255,GB
+1411871744,1411871771,GB
+1411871772,1411871775,FR
+1411871776,1411872255,GB
1411872768,1411874815,NL
1411874816,1411876863,RU
1411878912,1411880959,CH
@@ -21707,7 +22625,9 @@
1411919872,1411921919,DE
1411922432,1411923967,GB
1411923968,1411940351,BG
-1411940352,1411973119,PL
+1411940352,1411961611,PL
+1411961612,1411961612,IE
+1411961613,1411973119,PL
1411973120,1411999743,SI
1411999744,1412001023,BA
1412001024,1412002815,SI
@@ -21737,10 +22657,10 @@
1412412416,1412412671,RO
1412412672,1412413439,RU
1412413440,1412413951,RO
-1412413952,1412414719,RU
-1412414720,1412414975,RO
-1412414976,1412415487,RU
-1412415488,1412419583,AE
+1412413952,1412415487,RU
+1412415488,1412417023,AE
+1412417024,1412417279,IR
+1412417280,1412419583,AE
1412419584,1412427775,IR
1412427776,1412429823,AE
1412429824,1412431871,IR
@@ -21771,13 +22691,13 @@
1412907008,1412923391,SE
1412923392,1412939775,FR
1412939776,1412956159,CH
-1412956160,1413480447,DE
+1412956160,1413455940,DE
+1413455941,1413455941,US
+1413455942,1413480447,DE
1413480448,1414004735,IN
1414004736,1414039551,CH
-1414039552,1414039679,DE
-1414039680,1414040319,CH
-1414040320,1414040575,DE
-1414040576,1414069218,CH
+1414039552,1414040063,DE
+1414040064,1414069218,CH
1414069219,1414069219,AT
1414069220,1414095871,CH
1414095872,1414096127,DE
@@ -21799,9 +22719,7 @@
1416953856,1417019391,RO
1417019392,1417150463,DE
1417150464,1417674751,ES
-1417674752,1420133375,DE
-1420133376,1420133631,LU
-1420133632,1421869055,DE
+1417674752,1421869055,DE
1421869056,1422393343,BE
1422393344,1422413567,DE
1422413568,1422413695,AT
@@ -21831,13 +22749,14 @@
1422907392,1422911487,NL
1422911488,1422915583,GB
1422916608,1422916863,GB
-1422917120,1422917343,GB
1422917344,1422917375,NL
1422917632,1423441919,NO
1423441920,1423704063,SE
1423704064,1423966207,IT
1423966208,1424097279,HU
-1424097280,1424228351,CH
+1424097280,1424163583,CH
+1424163584,1424163839,DE
+1424163840,1424228351,CH
1424228352,1424359423,IL
1424359424,1424490495,FI
1424490496,1424503711,ES
@@ -21845,17 +22764,21 @@
1424503716,1424523263,ES
1424523264,1424556031,RO
1424556032,1424588799,EG
-1424588800,1424595726,GB
+1424588800,1424592639,GB
+1424592640,1424592895,FR
+1424592896,1424595726,GB
1424595727,1424595727,IT
1424595728,1424595743,GB
1424595744,1424595751,IT
1424595752,1424597069,GB
1424597070,1424597070,CZ
-1424597071,1424601887,GB
+1424597071,1424600575,GB
+1424600576,1424600831,FR
+1424600832,1424601887,GB
1424601888,1424601903,NL
-1424601904,1424603023,GB
-1424603024,1424603039,US
-1424603040,1424604975,GB
+1424601904,1424602879,GB
+1424602880,1424603135,US
+1424603136,1424604975,GB
1424604976,1424604991,NL
1424604992,1424607743,GB
1424607744,1424607775,DE
@@ -22006,11 +22929,7 @@
1426660659,1426669567,RO
1426669568,1426685951,IR
1426685952,1426702335,TJ
-1426702336,1426702591,LV
-1426702592,1426702847,RU
-1426702848,1426706687,LV
-1426706688,1426706943,GB
-1426706944,1426716159,LV
+1426702336,1426716159,LV
1426716160,1426716415,RU
1426716416,1426718719,LV
1426718720,1426731007,SI
@@ -22228,8 +23147,7 @@
1433608704,1433610239,GB
1433610240,1433612287,US
1433612288,1433614335,GB
-1433614336,1433614591,NL
-1433614592,1433615027,DE
+1433614336,1433615027,DE
1433615028,1433615028,GB
1433615029,1433615359,DE
1433615360,1433615615,FR
@@ -22278,9 +23196,9 @@
1433860096,1433862143,DE
1433862144,1433864191,CH
1433864192,1433866239,HU
-1433866240,1433867521,NL
-1433867522,1433867522,GB
-1433867523,1433868287,NL
+1433866240,1433867519,NL
+1433867520,1433867775,GB
+1433867776,1433868287,NL
1433868288,1433870335,GB
1433870336,1433872383,TR
1433872384,1433874431,IT
@@ -22313,8 +23231,8 @@
1434451968,1434517503,PL
1434517504,1434550271,DK
1434550272,1434583039,SA
-1434583040,1434595583,BG
-1434595584,1434596351,MK
+1434583040,1434595839,BG
+1434595840,1434596351,MK
1434596352,1434611711,BG
1434611712,1434613759,MK
1434613760,1434615807,BG
@@ -22352,10 +23270,8 @@
1436444672,1436446719,BE
1436446720,1436450815,FR
1436450816,1436452863,BH
-1436452864,1436453119,GB
-1436453120,1436453314,DE
-1436453315,1436453315,GB
-1436453316,1436453631,DE
+1436452864,1436453375,GB
+1436453376,1436453631,DE
1436453632,1436454911,GB
1436454912,1436456959,AZ
1436456960,1436459007,GB
@@ -22401,7 +23317,9 @@
1436545024,1436547071,DE
1436547072,1436549119,GB
1436549120,1436680191,CZ
-1436680192,1436811263,SK
+1436680192,1436745727,SK
+1436745728,1436745728,CZ
+1436745729,1436811263,SK
1436811264,1437073407,NO
1437073408,1437335551,FR
1437335552,1437597695,RU
@@ -22474,7 +23392,9 @@
1439105024,1439121407,AT
1439121408,1439154175,DE
1439154176,1439170559,GB
-1439170560,1439236095,NO
+1439170560,1439231999,NO
+1439232000,1439232255,AU
+1439232256,1439236095,NO
1439236096,1439301631,BE
1439301632,1439305727,RU
1439305728,1439309823,DK
@@ -22494,8 +23414,25 @@
1439372032,1439372287,TR
1439372288,1439372543,IT
1439372544,1439372799,JP
-1439372800,1439373055,MT
-1439373056,1439373311,NL
+1439372800,1439372815,MT
+1439372816,1439372831,AD
+1439372832,1439372847,CY
+1439372848,1439372863,AM
+1439372864,1439372879,BY
+1439372880,1439372895,PK
+1439372896,1439372911,CZ
+1439372912,1439372927,GR
+1439372928,1439372943,IS
+1439372944,1439372959,IM
+1439372960,1439372975,JE
+1439372976,1439372991,XK
+1439372992,1439373007,MK
+1439373008,1439373008,MC
+1439373009,1439373023,MT
+1439373024,1439373039,ME
+1439373040,1439373040,SC
+1439373041,1439373055,MT
+1439373056,1439373311,IT
1439373312,1439373567,AE
1439373568,1439374335,NL
1439374336,1439375359,IT
@@ -22505,14 +23442,18 @@
1439376128,1439376383,SA
1439376384,1439377407,CN
1439377408,1439378431,IT
-1439378432,1439383551,NL
+1439378432,1439378687,NL
+1439378688,1439378943,CA
+1439378944,1439383551,NL
1439383552,1439399935,FR
1439399936,1439432703,DK
1439432704,1439437823,RO
1439437824,1439438335,FR
1439438336,1439438847,RO
1439438848,1439439359,FR
-1439439360,1439440383,RO
+1439439360,1439439615,RO
+1439439616,1439439871,PL
+1439439872,1439440383,RO
1439440384,1439440895,IR
1439440896,1439441919,RO
1439441920,1439442943,ES
@@ -22604,7 +23545,8 @@
1440546816,1440579583,NO
1440579584,1440645119,PL
1440645120,1440653311,GB
-1440653312,1440665599,RS
+1440653312,1440663551,RS
+1440663552,1440665599,FR
1440665600,1440669695,DE
1440669696,1440671743,NL
1440671744,1440672767,EE
@@ -22787,7 +23729,7 @@
1449726720,1449727999,RO
1449728000,1449728255,MD
1449728256,1449734143,RO
-1449734144,1449736191,IT
+1449734144,1449736191,DE
1449736192,1449738239,MD
1449738240,1449742335,RO
1449742336,1449744383,MD
@@ -22832,7 +23774,8 @@
1449793280,1449793535,NL
1449793536,1449794047,IR
1449794048,1449794303,PH
-1449794304,1449810943,RO
+1449794304,1449810687,RO
+1449810688,1449810943,PL
1449810944,1449811199,MD
1449811200,1449811455,BG
1449811456,1449811967,GB
@@ -22939,7 +23882,9 @@
1450442752,1450704895,CH
1450704896,1451229183,RO
1451229184,1455423487,GB
-1455423488,1459617791,FR
+1455423488,1456726527,FR
+1456726528,1456726783,RE
+1456726784,1459617791,FR
1459617792,1461714943,IT
1461714944,1462763519,IE
1462763520,1463812095,DK
@@ -22960,7 +23905,9 @@
1465974784,1466007551,HU
1466007552,1466040319,BG
1466040320,1466073087,EE
-1466073088,1466097663,FR
+1466073088,1466086016,FR
+1466086017,1466086017,ES
+1466086018,1466097663,FR
1466097664,1466099711,ES
1466099712,1466101759,PL
1466101760,1466103807,DE
@@ -23035,7 +23982,9 @@
1467473920,1467482111,RU
1467482112,1467613183,BG
1467613184,1467744255,DE
-1467744256,1467875327,GB
+1467744256,1467777023,GB
+1467777024,1467793407,ES
+1467793408,1467875327,GB
1467875328,1467940863,BG
1467940864,1468006399,GB
1468006400,1472200703,DE
@@ -23052,7 +24001,9 @@
1472724992,1472856063,AE
1472856064,1472987135,GR
1472987136,1473249279,PL
-1473249280,1473773567,NL
+1473249280,1473587455,NL
+1473587456,1473587711,US
+1473587712,1473773567,NL
1473773568,1474297855,ES
1474297856,1474330623,GB
1474330624,1474396159,RU
@@ -23150,8 +24101,11 @@
1475260416,1475262463,FR
1475262464,1475266559,DE
1475266560,1475268607,GB
-1475268608,1475270655,RS
-1475270656,1475272703,GB
+1475268608,1475269375,XK
+1475269376,1475270655,RS
+1475270656,1475271423,GB
+1475271424,1475271551,US
+1475271552,1475272703,GB
1475272704,1475274751,BE
1475274752,1475276799,RU
1475276800,1475278847,ES
@@ -23171,7 +24125,8 @@
1475309568,1475311615,LT
1475311616,1475313663,FI
1475313664,1475315711,DE
-1475315712,1475317759,US
+1475315712,1475317503,US
+1475317504,1475317759,DE
1475317760,1475319807,RU
1475319808,1475321855,BG
1475321856,1475323903,RO
@@ -23206,9 +24161,9 @@
1475575808,1475592191,AT
1475592192,1475608575,GB
1475608576,1475624959,RU
-1475624960,1475625727,JE
-1475625728,1475625855,GG
-1475625856,1475638783,JE
+1475624960,1475638399,JE
+1475638400,1475638527,GG
+1475638528,1475638783,JE
1475638784,1475639039,GB
1475639040,1475639391,JE
1475639392,1475639399,GB
@@ -23224,11 +24179,7 @@
1475641344,1475657727,UA
1475657728,1475674111,SK
1475674112,1475690495,DE
-1475690496,1475693055,CH
-1475693056,1475693069,DE
-1475693070,1475693070,CH
-1475693071,1475693311,DE
-1475693312,1475706879,CH
+1475690496,1475706879,CH
1475706880,1475723263,RU
1475723264,1475723839,GB
1475723840,1475723903,RU
@@ -23247,8 +24198,10 @@
1475724871,1475724927,GB
1475724928,1475725183,RU
1475725184,1475725311,GB
-1475725312,1475725439,RU
-1475725440,1475728639,GB
+1475725312,1475725567,RU
+1475725568,1475726591,GB
+1475726592,1475726847,RU
+1475726848,1475728639,GB
1475728640,1475728767,PL
1475728768,1475729407,GB
1475729408,1475729535,UA
@@ -23297,7 +24250,21 @@
1475969024,1475977215,CZ
1475977216,1475985407,SE
1475985408,1476009983,RU
-1476009984,1476018175,RS
+1476009984,1476010047,RS
+1476010048,1476010111,XK
+1476010112,1476011327,RS
+1476011328,1476012031,XK
+1476012032,1476012095,RS
+1476012096,1476012287,XK
+1476012288,1476013055,RS
+1476013056,1476013823,XK
+1476013824,1476014079,RS
+1476014080,1476014127,XK
+1476014128,1476014135,RS
+1476014136,1476014591,XK
+1476014592,1476015871,RS
+1476015872,1476016127,XK
+1476016128,1476018175,RS
1476018176,1476026367,IT
1476026368,1476034559,BA
1476034560,1476042751,NL
@@ -23351,15 +24318,7 @@
1476378624,1476386815,KZ
1476386816,1476395007,RU
1476395008,1478492159,ES
-1478492160,1478772671,IT
-1478772672,1478772675,SI
-1478772676,1478912623,IT
-1478912624,1478912631,SI
-1478912632,1479296487,IT
-1479296488,1479296495,SI
-1479296496,1479421151,IT
-1479421152,1479421159,SI
-1479421160,1480589311,IT
+1478492160,1480589311,IT
1480589312,1481637887,DE
1481637888,1481646079,SE
1481646080,1481654271,RU
@@ -23374,9 +24333,7 @@
1481719808,1481727999,CZ
1481728000,1481736191,IE
1481736192,1481741055,GG
-1481741056,1481741823,GB
-1481741824,1481742079,GG
-1481742080,1481744383,GB
+1481741056,1481744383,GB
1481744384,1481752575,IT
1481752576,1481760767,RU
1481760768,1481768959,UA
@@ -23389,7 +24346,9 @@
1481818112,1481826303,ES
1481826304,1481834495,DE
1481834496,1481842687,GL
-1481842688,1481850879,SE
+1481842688,1481843007,SE
+1481843008,1481843039,NO
+1481843040,1481850879,SE
1481850880,1481859071,DK
1481859072,1481867263,GB
1481867264,1481875455,SE
@@ -23402,7 +24361,9 @@
1481908224,1481916415,NO
1481916416,1481924607,ES
1481924608,1481932799,SA
-1481932800,1481940991,DE
+1481932800,1481933567,DE
+1481933568,1481933599,GB
+1481933600,1481940991,DE
1481940992,1481949183,NO
1481949184,1481957375,RU
1481957376,1481965567,SE
@@ -23549,7 +24510,9 @@
1489665024,1489666047,IT
1489666048,1489674239,GB
1489674240,1489676287,NL
-1489676288,1489692415,GB
+1489676288,1489688575,GB
+1489688576,1489688831,IL
+1489688832,1489692415,GB
1489692416,1489692431,AU
1489692432,1489692447,GB
1489692448,1489692463,AU
@@ -23631,11 +24594,10 @@
1491075072,1493172223,TR
1493172224,1493303295,DE
1493303296,1493431551,FR
-1493431552,1493432319,GP
-1493432320,1493433087,FR
-1493433088,1493433343,MQ
-1493433344,1493434111,FR
-1493434112,1493434367,MQ
+1493431552,1493431807,GP
+1493431808,1493432063,FR
+1493432064,1493432319,GP
+1493432320,1493434367,FR
1493434368,1493565439,SA
1493565440,1493696511,ES
1493696512,1493958655,NO
@@ -23644,15 +24606,11 @@
1494221824,1494222335,RE
1494222336,1494222591,FR
1494222592,1494222847,RE
-1494222848,1494223103,FR
-1494223104,1494223359,RE
-1494223360,1494224127,FR
-1494224128,1494224383,RE
-1494224384,1494224639,FR
+1494222848,1494223871,FR
+1494223872,1494224127,RE
+1494224128,1494224639,FR
1494224640,1494224895,RE
-1494224896,1494227199,FR
-1494227200,1494227711,GP
-1494227712,1494228991,FR
+1494224896,1494228991,FR
1494228992,1494237183,RU
1494237184,1494245375,IE
1494245376,1494253567,RU
@@ -23820,7 +24778,7 @@
1495333632,1495333887,RO
1495333888,1495335935,MD
1495335936,1495336447,RO
-1495336448,1495336959,NL
+1495336448,1495336959,GB
1495336960,1495339007,RO
1495339008,1495339263,DE
1495339264,1495339519,MD
@@ -23844,7 +24802,9 @@
1495362560,1495363583,ES
1495363584,1495364607,RO
1495364608,1495364863,GB
-1495364864,1495367679,RO
+1495364864,1495365119,PT
+1495365120,1495365375,SE
+1495365376,1495367679,RO
1495367680,1495368191,IR
1495368192,1495369215,RO
1495369216,1495369471,GB
@@ -23993,13 +24953,20 @@
1495566336,1495566591,GB
1495566592,1495566847,RO
1495566848,1495567359,GB
-1495567360,1495571455,RO
+1495567360,1495567871,RO
+1495567872,1495568127,IE
+1495568128,1495571455,RO
1495571456,1495572479,MD
1495572480,1495576575,RO
1495576576,1495580671,IR
1495580672,1495581183,RO
1495581184,1495581695,IR
-1495581696,1495589375,RO
+1495581696,1495584767,RO
+1495584768,1495585791,IT
+1495585792,1495586815,FR
+1495586816,1495587839,DE
+1495587840,1495589119,RO
+1495589120,1495589375,FI
1495589376,1495589887,IR
1495589888,1495596031,RO
1495596032,1495596543,IR
@@ -24049,15 +25016,18 @@
1495683072,1495687167,IR
1495687168,1495688703,RO
1495688704,1495689215,IR
-1495689216,1495700308,RO
-1495700309,1495700309,GB
-1495700310,1495723519,RO
+1495689216,1495699455,RO
+1495699456,1495700479,GB
+1495700480,1495701503,FR
+1495701504,1495723519,RO
1495723520,1495724031,FR
1495724032,1495724543,RO
1495724544,1495725055,IR
1495725056,1495732223,RO
1495732224,1495734271,ES
-1495734272,1495745791,RO
+1495734272,1495736319,RO
+1495736320,1495744511,ES
+1495744512,1495745791,RO
1495745792,1495746047,GB
1495746048,1495747583,RO
1495747584,1495748607,MD
@@ -24122,7 +25092,9 @@
1495820800,1495821311,IR
1495821312,1495821823,DE
1495821824,1495822335,IR
-1495822336,1495826431,RO
+1495822336,1495823359,IT
+1495823360,1495824383,DE
+1495824384,1495826431,IT
1495826432,1495826943,IR
1495826944,1495827967,RO
1495827968,1495828479,DE
@@ -24150,7 +25122,9 @@
1495866112,1495866879,GB
1495866880,1495867391,RO
1495867392,1495867903,IR
-1495867904,1495871743,RO
+1495867904,1495869439,RO
+1495869440,1495870463,IR
+1495870464,1495871743,RO
1495871744,1495872511,GB
1495872512,1495874047,RO
1495874048,1495874559,IR
@@ -24186,7 +25160,9 @@
1495961088,1495963135,RO
1495963136,1495963647,IR
1495963648,1495964415,GB
-1495964416,1495967743,RO
+1495964416,1495965695,RO
+1495965696,1495966719,PL
+1495966720,1495967743,RO
1495967744,1495968767,NL
1495968768,1495970815,RO
1495970816,1495971839,MD
@@ -24237,7 +25213,9 @@
1496057856,1496058111,DE
1496058112,1496066815,RO
1496066816,1496067071,QA
-1496067072,1496073983,RO
+1496067072,1496072383,RO
+1496072384,1496072447,ES
+1496072448,1496073983,RO
1496073984,1496074239,ES
1496074240,1496078335,RO
1496078336,1496079359,MD
@@ -24294,13 +25272,12 @@
1496197120,1496197631,MD
1496197632,1496198143,RO
1496198144,1496198655,IR
-1496198656,1496198911,RO
1496198912,1496199167,GB
1496199168,1496202239,RO
1496202240,1496202751,IR
1496202752,1496203263,RO
-1496203264,1496205311,IT
-1496205312,1496210943,RO
+1496203264,1496207359,IT
+1496207360,1496210943,RO
1496210944,1496211455,IR
1496211456,1496213503,RO
1496213504,1496215551,IT
@@ -24326,7 +25303,7 @@
1496276992,1496285183,RO
1496285184,1496293375,IR
1496293376,1496295423,RO
-1496295424,1496297471,GB
+1496295424,1496297471,PL
1496297472,1496299519,MD
1496299520,1496301567,SE
1496301568,1496302591,RO
@@ -24431,9 +25408,7 @@
1502609408,1502625791,DE
1502625792,1502642175,SA
1502642176,1502658559,IR
-1502658560,1502665983,AT
-1502665984,1502666239,SK
-1502666240,1502674943,AT
+1502658560,1502674943,AT
1502674944,1502691327,DE
1502691328,1502707711,GB
1502707712,1502715903,RU
@@ -24708,11 +25683,11 @@
1504150272,1504150527,DE
1504150528,1504151039,GB
1504151040,1504151295,FR
-1504151296,1504152575,GB
-1504152576,1504152831,IE
-1504152832,1504154623,GB
+1504151296,1504154623,GB
1504154624,1504155647,IE
-1504155648,1504247807,GB
+1504155648,1504173055,GB
+1504173056,1504173311,IE
+1504173312,1504247807,GB
1504247808,1504313343,RU
1504313344,1504378879,FR
1504378880,1504444415,PL
@@ -24847,7 +25822,9 @@
1506459208,1506459247,BE
1506459248,1506459295,GB
1506459296,1506459327,BE
-1506459328,1506459968,GB
+1506459328,1506459763,GB
+1506459764,1506459767,FR
+1506459768,1506459968,GB
1506459969,1506459969,FR
1506459970,1506460151,GB
1506460152,1506460159,FR
@@ -25005,7 +25982,15 @@
1508753408,1508769791,KG
1508769792,1508786175,PL
1508786176,1508802559,DE
-1508802560,1508818943,GB
+1508802560,1508807231,GB
+1508807232,1508807247,CZ
+1508807248,1508811191,GB
+1508811192,1508811195,NL
+1508811196,1508812519,GB
+1508812520,1508812527,CZ
+1508812528,1508817407,GB
+1508817408,1508817663,CZ
+1508817664,1508818943,GB
1508818944,1508830719,RO
1508830720,1508831487,SK
1508831488,1508835327,RO
@@ -25090,94 +26075,80 @@
1509941248,1509947391,SE
1509947392,1509949439,NL
1509949440,1510604799,FR
-1510604800,1510605311,RE
-1510605312,1510605823,FR
-1510605824,1510607615,RE
-1510607616,1510607871,FR
-1510607872,1510608383,RE
-1510608384,1510608639,FR
-1510608640,1510609663,RE
+1510604800,1510605567,RE
+1510605568,1510606079,FR
+1510606080,1510606591,RE
+1510606592,1510606847,FR
+1510606848,1510609663,RE
1510609664,1510609919,FR
1510609920,1510611199,RE
1510611200,1510611711,FR
1510611712,1510614271,RE
-1510614272,1510614783,FR
-1510614784,1510615551,RE
+1510614272,1510614527,FR
+1510614528,1510615551,RE
1510615552,1510615807,FR
1510615808,1510616063,RE
1510616064,1510616319,FR
-1510616320,1510617087,RE
-1510617088,1510617343,FR
-1510617344,1510617599,RE
+1510616320,1510617599,RE
1510617600,1510617855,FR
1510617856,1510619647,RE
1510619648,1510620159,FR
-1510620160,1510623743,RE
-1510623744,1510623999,FR
-1510624000,1510624511,RE
+1510620160,1510620415,RE
+1510620416,1510620671,FR
+1510620672,1510624511,RE
1510624512,1510624767,FR
1510624768,1510625279,RE
1510625280,1510626047,FR
-1510626048,1510628351,RE
-1510628352,1510628607,FR
-1510628608,1510629119,RE
+1510626048,1510626303,RE
+1510626304,1510626559,FR
+1510626560,1510628351,RE
+1510628352,1510628863,FR
+1510628864,1510629119,RE
1510629120,1510629375,FR
1510629376,1510630143,RE
-1510630144,1510630655,FR
-1510630656,1510631167,RE
-1510631168,1510631423,FR
-1510631424,1510631935,RE
-1510631936,1510632447,FR
-1510632448,1510633983,RE
-1510633984,1510634239,FR
-1510634240,1510635263,RE
-1510635264,1510635716,FR
+1510630144,1510630399,FR
+1510630400,1510631423,RE
+1510631424,1510631679,FR
+1510631680,1510631935,RE
+1510631936,1510632191,FR
+1510632192,1510635519,RE
+1510635520,1510635716,FR
1510635717,1510635717,RE
-1510635718,1510637823,FR
-1510637824,1510638079,RE
-1510638080,1510638335,FR
-1510638336,1510638591,RE
+1510635718,1510635775,FR
+1510635776,1510638591,RE
1510638592,1510639103,FR
-1510639104,1510642687,RE
+1510639104,1510640383,RE
+1510640384,1510640639,FR
+1510640640,1510642687,RE
1510642688,1510642943,FR
1510642944,1510643455,RE
1510643456,1510643711,FR
1510643712,1510644991,RE
1510644992,1510645247,FR
1510645248,1510646783,RE
-1510646784,1510647551,FR
-1510647552,1510648063,RE
-1510648064,1510648319,FR
-1510648320,1510648575,RE
-1510648576,1510648831,FR
-1510648832,1510649855,RE
-1510649856,1510650111,FR
-1510650112,1510651135,RE
-1510651136,1510651647,FR
-1510651648,1510652927,RE
-1510652928,1510653183,FR
-1510653184,1510654463,RE
+1510646784,1510647039,FR
+1510647040,1510654463,RE
1510654464,1510654719,FR
1510654720,1510654975,RE
-1510654976,1510655999,FR
-1510656000,1510656255,RE
-1510656256,1510656511,FR
-1510656512,1510657535,RE
-1510657536,1510658047,FR
-1510658048,1510658303,RE
+1510654976,1510655231,FR
+1510655232,1510656767,RE
+1510656768,1510657023,FR
+1510657024,1510657535,RE
+1510657536,1510657791,FR
+1510657792,1510658303,RE
1510658304,1510658559,FR
1510658560,1510658815,RE
-1510658816,1510659327,FR
-1510659328,1510659583,RE
+1510658816,1510659071,FR
+1510659072,1510659583,RE
1510659584,1510659839,FR
1510659840,1510660095,RE
1510660096,1510660607,FR
-1510660608,1510664447,RE
+1510660608,1510662399,RE
+1510662400,1510662655,FR
+1510662656,1510664447,RE
1510664448,1510664703,FR
-1510664704,1510665983,RE
-1510665984,1510666239,FR
-1510666240,1510668031,RE
-1510668032,1510668403,FR
+1510664704,1510667775,RE
+1510667776,1510668403,FR
1510668404,1510668404,RE
1510668405,1510669018,FR
1510669019,1510669019,RE
@@ -25185,38 +26156,28 @@
1510669898,1510669898,RE
1510669899,1510670012,FR
1510670013,1510670013,RE
-1510670014,1511981055,FR
-1511981056,1511981567,GP
-1511981568,1511981823,FR
-1511981824,1511982335,GP
-1511982336,1511982847,FR
-1511982848,1511984127,GP
-1511984128,1511984639,FR
-1511984640,1511985151,GP
+1510670014,1510670079,FR
+1510670080,1510670335,RE
+1510670336,1511981055,FR
+1511981056,1511984127,GP
+1511984128,1511984383,FR
+1511984384,1511985151,GP
1511985152,1511985407,FR
1511985408,1511987199,GP
1511987200,1511987455,FR
-1511987456,1511989759,GP
-1511989760,1511990015,FR
-1511990016,1511990271,GP
-1511990272,1511990527,FR
-1511990528,1511991039,GP
-1511991040,1511991295,FR
-1511991296,1511991807,GP
-1511991808,1511992063,FR
-1511992064,1511994111,GP
-1511994112,1511994367,FR
-1511994368,1511995135,GP
-1511995136,1511995391,FR
-1511995392,1511997439,GP
+1511987456,1511995647,GP
+1511995648,1511995903,FR
+1511995904,1511997439,GP
1511997440,1511998207,FR
1511998208,1511998719,MF
1511998720,1511999487,BL
-1511999488,1512000767,MF
+1511999488,1512000255,MF
+1512000256,1512000511,BL
+1512000512,1512000767,MF
1512000768,1512001023,BL
1512001024,1512002559,FR
-1512002560,1512003583,BL
-1512003584,1512003839,FR
+1512002560,1512003327,BL
+1512003328,1512003839,FR
1512003840,1512004095,BL
1512004096,1512004351,MF
1512004352,1512004607,BL
@@ -25226,8 +26187,7 @@
1512005632,1512006655,FR
1512006656,1512006911,BL
1512006912,1512007167,FR
-1512007168,1512008447,BL
-1512008448,1512008703,FR
+1512007168,1512008703,BL
1512008704,1512008959,MF
1512008960,1512009215,FR
1512009216,1512009471,BL
@@ -25238,62 +26198,50 @@
1512011264,1512011775,FR
1512011776,1512012287,MF
1512012288,1512012543,BL
-1512012544,1512012799,FR
-1512012800,1512013823,MF
-1512013824,1512024831,GF
-1512024832,1512025087,FR
-1512025088,1512026111,GF
-1512026112,1512026367,FR
-1512026368,1512026879,GF
-1512026880,1512027135,FR
-1512027136,1512028159,GF
-1512028160,1512028927,FR
-1512028928,1512029695,GF
-1512029696,1512029951,FR
-1512029952,1512030207,GF
+1512012544,1512012799,MF
+1512012800,1512013055,BL
+1512013056,1512013311,MF
+1512013312,1512013823,BL
+1512013824,1512015359,GF
+1512015360,1512015615,FR
+1512015616,1512017151,GF
+1512017152,1512017407,FR
+1512017408,1512021759,GF
+1512021760,1512022015,FR
+1512022016,1512028671,GF
+1512028672,1512028927,FR
+1512028928,1512030207,GF
1512030208,1512046591,MQ
-1512046592,1512309247,FR
-1512309248,1512311039,GP
-1512311040,1512311295,FR
-1512311296,1512311807,GP
+1512046592,1512308735,FR
+1512308736,1512308991,GP
+1512308992,1512309247,FR
+1512309248,1512311807,GP
1512311808,1512312063,FR
1512312064,1512312575,GP
1512312576,1512312831,FR
-1512312832,1512314111,GP
-1512314112,1512314623,FR
-1512314624,1512315135,GP
-1512315136,1512315391,FR
-1512315392,1512316415,GP
+1512312832,1512314367,GP
+1512314368,1512314623,FR
+1512314624,1512316415,GP
1512316416,1512316671,FR
-1512316672,1512318207,GP
-1512318208,1512318463,FR
-1512318464,1512319487,GP
+1512316672,1512317183,GP
+1512317184,1512317439,FR
+1512317440,1512317951,GP
+1512317952,1512318463,FR
+1512318464,1512318975,GP
+1512318976,1512319231,FR
+1512319232,1512319487,GP
1512319488,1512319743,FR
-1512319744,1512320255,GP
-1512320256,1512320511,FR
-1512320512,1512322559,GP
-1512322560,1512322815,FR
-1512322816,1512323071,GP
-1512323072,1512323839,FR
-1512323840,1512324607,GP
-1512324608,1512324863,FR
-1512324864,1512325631,GP
+1512319744,1512320511,GP
+1512320512,1512320767,FR
+1512320768,1512321279,GP
+1512321280,1512321535,FR
+1512321536,1512325631,GP
1512325632,1512325887,FR
1512325888,1512326143,GP
1512326144,1512326399,FR
-1512326400,1512326655,GP
-1512326656,1512326911,FR
-1512326912,1512327679,GP
-1512327680,1512327935,FR
-1512327936,1512329727,GP
-1512329728,1512330239,FR
-1512330240,1512330751,GP
-1512330752,1512331007,FR
-1512331008,1512331263,GP
-1512331264,1512331519,FR
-1512331520,1512331775,GP
-1512331776,1512332031,FR
-1512332032,1512333567,GP
+1512326400,1512328191,GP
+1512328192,1512328447,FR
+1512328448,1512333567,GP
1512333568,1512335615,FR
1512335616,1512338175,GP
1512338176,1512338431,FR
@@ -25303,55 +26251,43 @@
1512340480,1512340991,FR
1512340992,1512341759,GP
1512341760,1512342015,FR
-1512342016,1512344319,GP
+1512342016,1512342783,GP
+1512342784,1512343039,FR
+1512343040,1512343807,GP
+1512343808,1512344063,FR
+1512344064,1512344319,GP
1512344320,1512344831,FR
-1512344832,1512345343,GP
-1512345344,1512345855,FR
+1512344832,1512345087,GP
+1512345088,1512345343,FR
+1512345344,1512345599,GP
+1512345600,1512345855,FR
1512345856,1512346623,GP
-1512346624,1512347135,FR
-1512347136,1512347647,GP
-1512347648,1512347903,FR
-1512347904,1512348415,GP
-1512348416,1512348671,FR
-1512348672,1512350463,GP
-1512350464,1512350719,FR
-1512350720,1512351999,GP
+1512346624,1512346879,FR
+1512346880,1512350975,GP
+1512350976,1512351231,FR
+1512351232,1512351999,GP
1512352000,1512352255,FR
-1512352256,1512353279,GP
-1512353280,1512353791,FR
-1512353792,1512354047,GP
+1512352256,1512354047,GP
1512354048,1512354303,FR
-1512354304,1512354815,GP
-1512354816,1512355327,FR
+1512354304,1512355071,GP
+1512355072,1512355327,FR
1512355328,1512356607,GP
1512356608,1512357119,FR
-1512357120,1512357375,GP
-1512357376,1512357631,FR
-1512357632,1512357887,GP
-1512357888,1512358399,FR
-1512358400,1512358655,GP
-1512358656,1512359167,FR
-1512359168,1512359423,GP
-1512359424,1512360191,FR
-1512360192,1512360959,GP
+1512357120,1512358655,GP
+1512358656,1512359423,FR
+1512359424,1512359679,GP
+1512359680,1512359935,FR
+1512359936,1512360959,GP
1512360960,1512361215,FR
-1512361216,1512363007,GP
-1512363008,1512363263,FR
-1512363264,1512365055,GP
-1512365056,1512365311,FR
-1512365312,1512365823,GP
+1512361216,1512365823,GP
1512365824,1512366079,FR
1512366080,1512366335,GP
-1512366336,1512366847,FR
-1512366848,1512367103,GP
-1512367104,1512368639,FR
+1512366336,1512368639,FR
1512368640,1512369151,GP
1512369152,1512369407,FR
1512369408,1512370441,GP
1512370442,1512370442,FR
-1512370443,1512370687,GP
-1512370688,1512370943,FR
-1512370944,1512371199,GP
+1512370443,1512371199,GP
1512371200,1512371455,FR
1512371456,1512374271,GP
1512374272,1514143743,FR
@@ -25362,17 +26298,93 @@
1514602496,1514668031,ES
1514668032,1514799103,FR
1514799104,1514930175,ES
-1514930176,1515002367,FR
+1514930176,1514999551,FR
+1514999552,1515000319,ES
+1515000320,1515001087,FR
+1515001088,1515001343,ES
+1515001344,1515001855,FR
+1515001856,1515002111,ES
+1515002112,1515002367,FR
1515002368,1515002623,ES
-1515002624,1515030783,FR
+1515002624,1515002879,FR
+1515002880,1515003135,ES
+1515003136,1515003391,FR
+1515003392,1515003647,ES
+1515003648,1515005183,FR
+1515005184,1515005439,ES
+1515005440,1515005695,FR
+1515005696,1515005951,ES
+1515005952,1515006207,FR
+1515006208,1515006463,ES
+1515006464,1515006975,FR
+1515006976,1515007231,ES
+1515007232,1515008255,FR
+1515008256,1515008511,ES
+1515008512,1515009300,FR
+1515009301,1515009301,ES
+1515009302,1515009535,FR
+1515009536,1515009791,ES
+1515009792,1515011839,FR
+1515011840,1515012095,ES
+1515012096,1515012607,FR
+1515012608,1515012863,ES
+1515012864,1515015167,FR
+1515015168,1515015423,ES
+1515015424,1515017471,FR
+1515017472,1515017983,ES
+1515017984,1515018239,FR
+1515018240,1515018495,ES
+1515018496,1515018751,FR
+1515018752,1515019263,ES
+1515019264,1515019519,FR
+1515019520,1515020031,ES
+1515020032,1515020799,FR
+1515020800,1515021055,ES
+1515021056,1515022591,FR
+1515022592,1515022847,ES
+1515022848,1515026943,FR
+1515026944,1515027199,ES
+1515027200,1515030783,FR
1515030784,1515031039,ES
-1515031040,1515035168,FR
+1515031040,1515032319,FR
+1515032320,1515032575,ES
+1515032576,1515033855,FR
+1515033856,1515034111,ES
+1515034112,1515034367,FR
+1515034368,1515034623,ES
+1515034624,1515035168,FR
1515035169,1515035169,ES
-1515035170,1515051263,FR
+1515035170,1515038971,FR
+1515038972,1515038972,ES
+1515038973,1515039999,FR
+1515040000,1515040255,ES
+1515040256,1515041279,FR
+1515041280,1515041535,ES
+1515041536,1515041791,FR
+1515041792,1515042047,ES
+1515042048,1515045631,FR
+1515045632,1515045887,ES
+1515045888,1515047167,FR
+1515047168,1515047679,ES
+1515047680,1515049471,FR
+1515049472,1515049727,ES
+1515049728,1515049983,FR
+1515049984,1515050495,ES
+1515050496,1515051263,FR
1515051264,1515051519,ES
-1515051520,1515052989,FR
+1515051520,1515052031,FR
+1515052032,1515052287,ES
+1515052288,1515052989,FR
1515052990,1515052990,ES
-1515052991,1515057919,FR
+1515052991,1515053311,FR
+1515053312,1515053567,ES
+1515053568,1515053823,FR
+1515053824,1515054079,ES
+1515054080,1515056639,FR
+1515056640,1515056895,ES
+1515056896,1515057151,FR
+1515057152,1515057407,ES
+1515057408,1515057919,FR
1515057920,1515058175,ES
1515058176,1515059621,FR
1515059622,1515059622,ES
@@ -25397,7 +26409,11 @@
1515489168,1515489535,FR
1515489536,1515489791,US
1515489792,1515491007,NL
-1515491008,1518338047,FR
+1515491008,1516936703,FR
+1516936704,1516936959,ES
+1516936960,1516948479,FR
+1516948480,1516948735,ES
+1516948736,1518338047,FR
1518338048,1518370815,DE
1518370816,1518409727,NL
1518409728,1518411775,SE
@@ -25436,7 +26452,8 @@
1518635008,1518637055,NL
1518637056,1518641151,SE
1518641152,1518649343,NL
-1518649344,1518723071,SE
+1518649344,1518665727,SE
+1518665728,1518723071,LV
1518723072,1518727167,EE
1518727168,1518731263,SE
1518731264,1518747647,DE
@@ -25448,7 +26465,7 @@
1518944256,1518960639,NL
1518960640,1518961663,LT
1518961664,1518962175,EE
-1518962176,1518962687,SE
+1518962176,1518962687,LV
1518962688,1518964735,NO
1518964736,1518966783,HR
1518966784,1518967807,SE
@@ -25456,7 +26473,11 @@
1518977024,1518985215,NL
1518985216,1518989311,SE
1518989312,1518993152,NL
-1518993153,1519190015,SE
+1518993153,1519058943,SE
+1519058944,1519083519,LV
+1519083520,1519091711,SE
+1519091712,1519124479,LV
+1519124480,1519190015,SE
1519190016,1519198207,NL
1519198208,1519200255,SE
1519200256,1519206399,EE
@@ -25477,9 +26498,7 @@
1519321088,1519337471,KZ
1519337472,1519358975,SE
1519358976,1519359231,KZ
-1519359232,1519369215,SE
-1519369216,1519369471,KZ
-1519369472,1519394815,SE
+1519359232,1519394815,SE
1519394816,1519398911,HR
1519398912,1519403007,SE
1519403008,1519419391,NL
@@ -25492,9 +26511,9 @@
1519779840,1519910911,RU
1519910912,1519927295,GB
1519927296,1519927551,NL
-1519927552,1519929855,GB
-1519929856,1519930111,SE
-1519930112,1519931391,GB
+1519927552,1519928063,GB
+1519928064,1519928319,DK
+1519928320,1519931391,GB
1519931392,1519934463,NL
1519934464,1519936191,GB
1519936192,1519936255,DK
@@ -25504,9 +26523,7 @@
1520009216,1520041983,SY
1520041984,1520074751,RU
1520074752,1520107519,BG
-1520107520,1520139767,GB
-1520139768,1520139775,IE
-1520139776,1520140287,GB
+1520107520,1520140287,GB
1520140288,1520173055,RU
1520173056,1520205823,PL
1520205824,1520230399,RU
@@ -25581,7 +26598,8 @@
1533448192,1533450239,KW
1533450240,1533452287,RU
1533452288,1533454335,TR
-1533454336,1533456383,RS
+1533454336,1533454591,XK
+1533454592,1533456383,RS
1533456384,1533458431,UA
1533458432,1533460479,GB
1533460480,1533462527,CH
@@ -25683,7 +26701,9 @@
1533929472,1533932799,GB
1533932800,1533933055,DE
1533933056,1534066687,GB
-1534066688,1534328831,AT
+1534066688,1534246399,AT
+1534246400,1534246655,SK
+1534246656,1534328831,AT
1534328832,1534459903,ES
1534459904,1534590975,AT
1534590976,1534656511,HU
@@ -25719,7 +26739,9 @@
1534717664,1534717679,GB
1534717680,1534717923,FR
1534717924,1534717927,IT
-1534717928,1534718763,FR
+1534717928,1534718087,FR
+1534718088,1534718091,ES
+1534718092,1534718763,FR
1534718764,1534718767,ES
1534718768,1534719747,FR
1534719748,1534719751,ES
@@ -25836,7 +26858,10 @@
1536131072,1536143359,RU
1536143360,1536147455,GB
1536147456,1536151551,IT
-1536151552,1536155647,RS
+1536151552,1536152575,RS
+1536152576,1536152607,XK
+1536152608,1536155135,RS
+1536155136,1536155647,XK
1536155648,1536159743,IL
1536159744,1536163839,DE
1536163840,1536180223,SY
@@ -25859,7 +26884,15 @@
1536393216,1536409599,SA
1536409600,1536425983,HU
1536425984,1536442367,SK
-1536442368,1536458751,RS
+1536442368,1536444927,RS
+1536444928,1536452607,XK
+1536452608,1536453375,RS
+1536453376,1536453631,XK
+1536453632,1536453887,RS
+1536453888,1536453903,XK
+1536453904,1536456191,RS
+1536456192,1536456447,XK
+1536456448,1536458751,RS
1536458752,1536475135,BG
1536475136,1536476545,NL
1536476546,1536476546,GB
@@ -25873,7 +26906,17 @@
1536524288,1536540671,BY
1536540672,1536557055,PL
1536557056,1536573439,FI
-1536573440,1536589823,RS
+1536573440,1536574463,RS
+1536574464,1536574719,XK
+1536574720,1536574975,RS
+1536574976,1536575615,XK
+1536575616,1536579071,RS
+1536579072,1536579327,XK
+1536579328,1536579583,RS
+1536579584,1536579839,XK
+1536579840,1536580351,RS
+1536580352,1536580607,XK
+1536580608,1536589823,RS
1536589824,1536614399,PL
1536614400,1536622591,DK
1536622592,1536626687,GB
@@ -25923,7 +26966,9 @@
1538990080,1538998271,CZ
1538998272,1539006463,AD
1539006464,1539014655,AL
-1539014656,1539022847,RS
+1539014656,1539019775,XK
+1539019776,1539020031,RS
+1539020032,1539022847,XK
1539022848,1539031039,LT
1539031040,1539039231,IT
1539039232,1539047423,PL
@@ -25970,8 +27015,12 @@
1539211264,1539213311,CZ
1539213312,1539215359,SE
1539215360,1539219455,DE
-1539219456,1539219967,GB
-1539219968,1539221503,GG
+1539219456,1539219711,GG
+1539219712,1539220223,GB
+1539220224,1539220479,GG
+1539220480,1539220735,GB
+1539220736,1539221247,GG
+1539221248,1539221503,GB
1539221504,1539223551,FR
1539223552,1539225599,RU
1539225600,1539227647,HU
@@ -26114,7 +27163,8 @@
1539449856,1539450367,DK
1539450368,1539450879,SE
1539450880,1539451391,UA
-1539451392,1539452415,RO
+1539451392,1539451903,GB
+1539451904,1539452415,RO
1539452416,1539452927,GB
1539452928,1539453439,CH
1539453440,1539453951,UA
@@ -26304,8 +27354,7 @@
1539567616,1539568127,DE
1539568128,1539568639,NL
1539568640,1539569151,UA
-1539569152,1539569407,SE
-1539569408,1539569663,EE
+1539569152,1539569663,EE
1539569664,1539570175,UA
1539570176,1539570687,PL
1539570688,1539571711,RU
@@ -26591,7 +27640,6 @@
1539756800,1539757055,BE
1539757056,1539757567,RU
1539757568,1539757823,SI
-1539757824,1539758079,UA
1539758080,1539758335,HR
1539758336,1539758591,PL
1539758848,1539759103,BA
@@ -26938,7 +27986,7 @@
1539950848,1539951103,RU
1539951104,1539951615,UA
1539951616,1539953663,RU
-1539953664,1539954175,AT
+1539953664,1539954175,CH
1539954176,1539954687,KZ
1539954688,1539956735,RO
1539956736,1539957759,UA
@@ -27049,7 +28097,7 @@
1540097024,1540099071,DE
1540099072,1540099583,UA
1540099584,1540099711,US
-1540099712,1540099839,UA
+1540099712,1540099839,DE
1540099840,1540103167,RU
1540103168,1540105215,DE
1540105216,1540106239,UA
@@ -27297,7 +28345,8 @@
1540317696,1540318207,UA
1540318208,1540318719,RU
1540318720,1540319231,RO
-1540319232,1540320255,UA
+1540319232,1540319999,UA
+1540320000,1540320255,RU
1540320768,1540321279,GB
1540321280,1540321791,SE
1540321792,1540322303,RU
@@ -27512,7 +28561,6 @@
1540402688,1540402943,SE
1540402944,1540403199,NL
1540403200,1540403455,AT
-1540403456,1540403711,GB
1540403712,1540404223,RO
1540404224,1540404479,CH
1540404480,1540404735,FR
@@ -27610,7 +28658,7 @@
1540433152,1540433407,GB
1540433408,1540433663,AM
1540433664,1540433919,DK
-1540434176,1540434431,DK
+1540434176,1540434431,CH
1540434432,1540434687,DE
1540434688,1540434943,GB
1540434944,1540435199,FR
@@ -27976,7 +29024,6 @@
1540650240,1540650495,CH
1540650496,1540650751,RU
1540650752,1540651007,FR
-1540651008,1540651263,RO
1540651264,1540651519,CH
1540651520,1540651775,MK
1540652032,1540652543,UA
@@ -28272,6 +29319,7 @@
1540740864,1540741119,RO
1540741120,1540741375,GB
1540741632,1540742143,NL
+1540742144,1540742399,RU
1540742400,1540742655,DE
1540742656,1540742911,AT
1540743168,1540743423,NO
@@ -28711,6 +29759,7 @@
1540988672,1540988927,RU
1540988928,1540989183,GB
1540989184,1540989439,PL
+1540989440,1540989695,RU
1540989696,1540989951,PL
1540989952,1540990207,FR
1540990208,1540990463,DE
@@ -28849,7 +29898,9 @@
1541083136,1541084159,RO
1541084160,1541086207,RU
1541086208,1541086463,NL
-1541086464,1541088255,UA
+1541086464,1541086975,UA
+1541086976,1541087231,RU
+1541087232,1541088255,UA
1541088256,1541089279,RU
1541089280,1541090303,GB
1541090304,1541091327,CZ
@@ -29251,8 +30302,7 @@
1541282816,1541283839,RU
1541283840,1541286911,UA
1541286912,1541287935,DE
-1541287936,1541288191,UA
-1541288192,1541288959,RU
+1541287936,1541288959,RU
1541288960,1541289983,CZ
1541289984,1541291007,PL
1541291008,1541293055,UA
@@ -29329,7 +30379,7 @@
1541349632,1541349887,PL
1541349888,1541350143,RU
1541350144,1541350399,FR
-1541350400,1541350655,SE
+1541350400,1541350655,NO
1541350656,1541350911,RU
1541350912,1541351167,AT
1541351168,1541351423,SI
@@ -30526,7 +31576,8 @@
1542032384,1542032639,UA
1542032640,1542032895,SA
1542032896,1542033407,DK
-1542033408,1542035455,RU
+1542033408,1542034943,RU
+1542035200,1542035455,RU
1542035456,1542036479,GB
1542036480,1542038271,PL
1542038272,1542038527,SI
@@ -31077,7 +32128,6 @@
1542375424,1542376447,RU
1542376448,1542376959,BG
1542376960,1542377215,DK
-1542377216,1542377471,RU
1542377472,1542377983,GB
1542377984,1542378495,RU
1542378496,1542378751,DK
@@ -31235,9 +32285,7 @@
1542456320,1542456831,RO
1542456832,1542457343,RS
1542457344,1542458367,RO
-1542458368,1542458623,UZ
-1542458624,1542458879,RU
-1542458880,1542459391,UZ
+1542458368,1542459391,UZ
1542459392,1542459647,RU
1542459648,1542459903,GB
1542459904,1542460415,UA
@@ -31701,26 +32749,26 @@
1546381312,1546383359,DK
1546383360,1546385407,IT
1546385408,1546387455,FR
-1546387456,1546491647,TR
-1546491648,1546491903,RU
-1546491904,1546518527,TR
+1546387456,1546518527,TR
1546518528,1546649599,KZ
1546649600,1546665983,SA
1546665984,1546682367,GB
1546682368,1546698751,BE
1546698752,1546715135,NL
1546715136,1546731519,LV
-1546731520,1546731775,FR
-1546731776,1546732543,MQ
-1546732544,1546739711,FR
-1546739712,1546739967,GP
-1546739968,1546740991,FR
-1546740992,1546741503,GP
-1546741504,1546745343,FR
-1546745344,1546745599,MQ
-1546745600,1546746111,FR
-1546746112,1546746367,MQ
-1546746368,1546747903,FR
+1546731520,1546735359,FR
+1546735360,1546735615,GP
+1546735616,1546735871,FR
+1546735872,1546736127,MQ
+1546736128,1546739711,FR
+1546739712,1546740223,GP
+1546740224,1546741247,FR
+1546741248,1546741503,GP
+1546741504,1546745855,FR
+1546745856,1546746111,MQ
+1546746112,1546747135,FR
+1546747136,1546747391,MQ
+1546747392,1546747903,FR
1546747904,1546764287,RU
1546764288,1546780671,UA
1546780672,1546797055,IR
@@ -31781,11 +32829,7 @@
1547542528,1547546623,FR
1547546624,1547550719,IR
1547550720,1547554815,IE
-1547554816,1547555071,AT
-1547555072,1547555078,NL
-1547555079,1547555079,AT
-1547555080,1547555327,NL
-1547555328,1547558911,AT
+1547554816,1547558911,AT
1547558912,1547563007,IL
1547563008,1547565055,NL
1547565056,1547565823,US
@@ -31865,7 +32909,9 @@
1548160256,1548160257,BE
1548160258,1548160259,NL
1548160260,1548160511,BE
-1548160512,1548162463,NL
+1548160512,1548161375,NL
+1548161376,1548161407,GB
+1548161408,1548162463,NL
1548162464,1548162495,FR
1548162496,1548169215,NL
1548169216,1548171263,DE
@@ -31939,13 +32985,139 @@
1551577088,1551580159,NL
1551604480,1551604735,SE
1551630336,1551892479,RU
-1551892480,1555696895,FR
-1555696896,1555697151,ES
-1555697152,1555739841,FR
+1551892480,1554514250,FR
+1554514251,1554514251,RE
+1554514252,1554971045,FR
+1554971046,1554971046,ES
+1554971047,1555073117,FR
+1555073118,1555073118,ES
+1555073119,1555073583,FR
+1555073584,1555073584,ES
+1555073585,1555082495,FR
+1555082496,1555082751,ES
+1555082752,1555103999,FR
+1555104000,1555104255,ES
+1555104256,1555108390,FR
+1555108391,1555108391,ES
+1555108392,1555111820,FR
+1555111821,1555111821,ES
+1555111822,1555124991,FR
+1555124992,1555125247,ES
+1555125248,1555628031,FR
+1555628032,1555628287,ES
+1555628288,1555628799,FR
+1555628800,1555629055,ES
+1555629056,1555630079,FR
+1555630080,1555630335,ES
+1555630336,1555630923,FR
+1555630924,1555630924,ES
+1555630925,1555631096,FR
+1555631097,1555631097,ES
+1555631098,1555632530,FR
+1555632531,1555632531,ES
+1555632532,1555633663,FR
+1555633664,1555633919,ES
+1555633920,1555634687,FR
+1555634688,1555634943,ES
+1555634944,1555635199,FR
+1555635200,1555635455,ES
+1555635456,1555635845,FR
+1555635846,1555635846,ES
+1555635847,1555636142,FR
+1555636143,1555636143,ES
+1555636144,1555636437,FR
+1555636438,1555636438,ES
+1555636439,1555637325,FR
+1555637326,1555637326,ES
+1555637327,1555638015,FR
+1555638016,1555638271,ES
+1555638272,1555638527,FR
+1555638528,1555638783,ES
+1555638784,1555639015,FR
+1555639016,1555639016,ES
+1555639017,1555639080,FR
+1555639081,1555639081,ES
+1555639082,1555639099,FR
+1555639100,1555639100,ES
+1555639101,1555645183,FR
+1555645184,1555645439,ES
+1555645440,1555645551,FR
+1555645552,1555645552,ES
+1555645553,1555645920,FR
+1555645921,1555645921,ES
+1555645922,1555649537,FR
+1555649538,1555649538,ES
+1555649539,1555650518,FR
+1555650519,1555650519,ES
+1555650520,1555651327,FR
+1555651328,1555651583,ES
+1555651584,1555655044,FR
+1555655045,1555655045,ES
+1555655046,1555655938,FR
+1555655939,1555655939,ES
+1555655940,1555656505,FR
+1555656506,1555656506,ES
+1555656507,1555656680,FR
+1555656681,1555656681,ES
+1555656682,1555656703,FR
+1555656704,1555656959,ES
+1555656960,1555659421,FR
+1555659422,1555659422,ES
+1555659423,1555660031,FR
+1555660032,1555660287,ES
+1555660288,1555695871,FR
+1555695872,1555696127,ES
+1555696128,1555696639,FR
+1555696640,1555697151,ES
+1555697152,1555697663,FR
+1555697664,1555698175,ES
+1555698176,1555698431,FR
+1555698432,1555698687,ES
+1555698688,1555705087,FR
+1555705088,1555705343,ES
+1555705344,1555707903,FR
+1555707904,1555708159,ES
+1555708160,1555709695,FR
+1555709696,1555709951,ES
+1555709952,1555711231,FR
+1555711232,1555711487,ES
+1555711488,1555713023,FR
+1555713024,1555713279,ES
+1555713280,1555716607,FR
+1555716608,1555716863,ES
+1555716864,1555723263,FR
+1555723264,1555723519,ES
+1555723520,1555724799,FR
+1555724800,1555725311,ES
+1555725312,1555726847,FR
+1555726848,1555727103,ES
+1555727104,1555730275,FR
+1555730276,1555730276,ES
+1555730277,1555731199,FR
+1555731200,1555731455,ES
+1555731456,1555739841,FR
1555739842,1555739842,ES
-1555739843,1555760639,FR
+1555739843,1555742207,FR
+1555742208,1555742463,ES
+1555742464,1555754495,FR
+1555754496,1555754751,ES
+1555754752,1555755007,FR
+1555755008,1555755263,ES
+1555755264,1555758591,FR
+1555758592,1555758847,ES
+1555758848,1555760639,FR
1555760640,1555760895,ES
-1555760896,1556086783,FR
+1555760896,1555762175,FR
+1555762176,1555762431,ES
+1555762432,1555762464,FR
+1555762465,1555762465,ES
+1555762466,1555763199,FR
+1555763200,1555763455,ES
+1555763456,1555765759,FR
+1555765760,1555766015,ES
+1555766016,1555766271,FR
+1555766272,1555766527,ES
+1555766528,1556086783,FR
1556086784,1557069823,DE
1557069824,1557076991,GB
1557076992,1557077247,DE
@@ -31971,7 +33143,9 @@
1558081176,1558081183,BE
1558081184,1558083775,FR
1558083776,1558083791,DE
-1558083792,1558084655,FR
+1558083792,1558083959,FR
+1558083960,1558083963,CZ
+1558083964,1558084655,FR
1558084656,1558084659,BE
1558084660,1558085055,FR
1558085056,1558085071,GB
@@ -31989,7 +33163,9 @@
1558102508,1558102508,DE
1558102509,1558103159,FR
1558103160,1558103167,GB
-1558103168,1558112095,FR
+1558103168,1558107391,FR
+1558107392,1558107455,NL
+1558107456,1558112095,FR
1558112096,1558112127,ES
1558112128,1558112191,FR
1558112192,1558112192,ES
@@ -31997,13 +33173,17 @@
1558112208,1558112208,ES
1558112209,1558112209,FR
1558112210,1558112211,ES
-1558112212,1558118399,FR
+1558112212,1558115327,FR
+1558115328,1558115455,NL
+1558115456,1558118399,FR
1558118400,1558119423,DE
1558119424,1558122495,RU
1558122496,1558123007,SG
1558123008,1558123519,RU
1558123520,1558125567,LU
-1558125568,1558141439,AT
+1558125568,1558126591,AT
+1558126592,1558128639,RU
+1558128640,1558141439,AT
1558141440,1558141695,CY
1558141696,1558147071,AT
1558147072,1558147327,LU
@@ -32031,7 +33211,8 @@
1558180864,1558183935,IT
1558183936,1558708223,DE
1558708224,1558904831,GB
-1558904832,1558970367,BE
+1558904832,1558921215,IE
+1558921216,1558970367,BE
1558970368,1559236607,GB
1559236608,1559240703,IL
1559240704,1559248895,BA
@@ -32049,7 +33230,11 @@
1559322624,1559330815,RU
1559330816,1559339007,BA
1559339008,1559347199,RU
-1559347200,1559355391,SE
+1559347200,1559347967,SE
+1559347968,1559348223,DK
+1559348224,1559348479,SE
+1559348480,1559348735,DK
+1559348736,1559355391,SE
1559355392,1559388159,RU
1559388160,1559396351,UA
1559396352,1559404543,GB
@@ -32091,8 +33276,8 @@
1559887872,1559920639,PT
1559920640,1559932927,LU
1559932928,1559939071,DE
-1559939072,1559942143,LU
-1559942144,1559943167,DE
+1559939072,1559941887,LU
+1559941888,1559943167,DE
1559943168,1559944191,LU
1559944192,1559945727,FR
1559945728,1559946751,LU
@@ -32215,7 +33400,9 @@
1566388224,1566390271,LU
1566390272,1566392319,LT
1566392320,1566394367,ES
-1566394368,1566394528,GB
+1566394368,1566394465,GB
+1566394466,1566394466,NO
+1566394467,1566394528,GB
1566394529,1566394529,FR
1566394530,1566394530,GB
1566394531,1566394531,DE
@@ -32263,9 +33450,7 @@
1566443520,1566445567,NO
1566445568,1566447615,PL
1566447616,1566451711,IT
-1566451712,1566452223,IL
-1566452224,1566452479,TR
-1566452480,1566453759,IL
+1566451712,1566453759,IL
1566453760,1566455807,IQ
1566455808,1566457855,PT
1566457856,1566459903,CH
@@ -32379,7 +33564,9 @@
1567785984,1567786239,MD
1567786240,1567789055,RO
1567789056,1567793151,ES
-1567793152,1567826175,RO
+1567793152,1567804415,RO
+1567804416,1567805439,ES
+1567805440,1567826175,RO
1567826176,1567826431,DE
1567826432,1567827455,RO
1567827456,1567827711,BG
@@ -32465,8 +33652,8 @@
1568145408,1568178175,RO
1568178176,1568210943,RU
1568210944,1568243711,GB
-1568243712,1568247551,GP
-1568247552,1568247807,MF
+1568243712,1568247679,GP
+1568247680,1568247807,MF
1568247808,1568250879,GP
1568250880,1568251135,MF
1568251136,1568254719,GP
@@ -32584,8 +33771,8 @@
1571436288,1571436543,UA
1571436544,1571438591,BA
1571438592,1571440639,UA
-1571440640,1571440895,RU
-1571440896,1571441407,CZ
+1571440640,1571441151,RU
+1571441152,1571441407,CZ
1571441408,1571441663,UA
1571441664,1571441919,RU
1571441920,1571442175,CZ
@@ -32601,7 +33788,9 @@
1571447296,1571447807,RU
1571447808,1571448063,CZ
1571448064,1571448319,RU
-1571448320,1571448575,CZ
+1571448320,1571448328,CZ
+1571448329,1571448329,RU
+1571448330,1571448575,CZ
1571448576,1571448831,RU
1571448832,1571449343,NL
1571449344,1571449855,CZ
@@ -32633,8 +33822,9 @@
1571476480,1571479551,RU
1571479552,1571483647,CZ
1571483648,1571484159,RU
-1571484160,1571485183,CZ
-1571485184,1571486719,RU
+1571484160,1571484671,CZ
+1571484672,1571484927,KZ
+1571484928,1571486719,RU
1571486720,1571486975,CZ
1571486976,1571487231,UA
1571487232,1571487743,CZ
@@ -32658,7 +33848,9 @@
1571524352,1571524607,CZ
1571524608,1571526655,RU
1571526656,1571526911,UA
-1571526912,1571528191,CZ
+1571526912,1571527167,CZ
+1571527168,1571527679,SK
+1571527680,1571528191,CZ
1571528192,1571528703,UA
1571528704,1571529215,BY
1571529216,1571529471,CZ
@@ -32696,9 +33888,11 @@
1571545344,1571545599,UA
1571545600,1571545855,CZ
1571545856,1571546111,RU
-1571546112,1571546879,CZ
+1571546112,1571546623,CZ
+1571546624,1571546879,NL
1571546880,1571547135,RU
-1571547136,1571549183,CZ
+1571547136,1571548159,CZ
+1571548160,1571549183,RU
1571549184,1571550207,UA
1571550208,1571550463,RU
1571550464,1571553279,UA
@@ -32747,21 +33941,15 @@
1571799040,1571815423,UA
1571815424,1571815679,FR
1571815680,1571815935,RE
-1571815936,1571817215,FR
-1571817216,1571817471,RE
-1571817472,1571817727,FR
-1571817728,1571817983,RE
-1571817984,1571823615,FR
-1571823616,1571823871,RE
-1571823872,1571825151,FR
+1571815936,1571819007,FR
+1571819008,1571819263,RE
+1571819264,1571822591,FR
+1571822592,1571822847,RE
+1571822848,1571825151,FR
1571825152,1571825407,RE
-1571825408,1571826687,FR
-1571826688,1571826943,RE
-1571826944,1571827711,FR
-1571827712,1571827967,RE
-1571827968,1571829759,FR
-1571829760,1571830015,RE
-1571830016,1571830527,FR
+1571825408,1571830015,FR
+1571830016,1571830271,RE
+1571830272,1571830527,FR
1571830528,1571830783,RE
1571830784,1571831807,FR
1571831808,1571848191,DK
@@ -32778,10 +33966,8 @@
1572020224,1572028415,SE
1572028416,1572028927,GB
1572028928,1572029183,UA
-1572029184,1572030156,GB
-1572030157,1572030157,RU
-1572030158,1572030463,GB
-1572030464,1572034815,RU
+1572029184,1572029951,GB
+1572029952,1572034815,RU
1572034816,1572034943,BY
1572034944,1572035071,US
1572035072,1572035199,CZ
@@ -32824,7 +34010,8 @@
1572347904,1572351999,FR
1572352000,1572356095,DE
1572356096,1572360191,SK
-1572360192,1572364287,RS
+1572360192,1572362751,XK
+1572362752,1572364287,RS
1572364288,1572368383,NL
1572368384,1572372479,NO
1572372480,1572376575,DE
@@ -32833,10 +34020,8 @@
1572384768,1572388863,DE
1572388864,1572392959,DK
1572392960,1572393471,NL
-1572393472,1572393727,US
-1572393728,1572393983,GB
-1572393984,1572394239,DE
-1572394240,1572394495,US
+1572393472,1572393983,GB
+1572393984,1572394495,DE
1572394496,1572394751,FR
1572394752,1572395263,US
1572395264,1572395519,NL
@@ -32878,9 +34063,8 @@
1572524032,1572528127,GE
1572528128,1572532223,RU
1572532224,1572536319,IT
-1572536320,1572536575,GB
-1572536576,1572537087,GG
-1572537088,1572538367,GB
+1572536320,1572537599,GG
+1572537600,1572538367,GB
1572538368,1572540415,NL
1572540416,1572542463,GB
1572542464,1572544511,IT
@@ -32899,8 +34083,9 @@
1572564992,1572567039,DE
1572567040,1572569087,RU
1572571136,1572573183,BG
-1572573184,1572573439,GB
-1572573440,1572574463,GG
+1572573184,1572573439,GG
+1572573440,1572573951,GB
+1572573952,1572574463,GG
1572574464,1572574719,GB
1572574720,1572574975,GG
1572574976,1572575231,GB
@@ -32914,7 +34099,7 @@
1572591616,1572593663,NL
1572593664,1572595711,GB
1572595712,1572597759,DE
-1572597760,1572599807,XK
+1572597760,1572599807,RS
1572599808,1572601855,DE
1572601856,1572603903,SE
1572603904,1572605951,GE
@@ -32969,16 +34154,12 @@
1572706304,1572708351,DE
1572708352,1572708607,GB
1572708608,1572709375,GG
-1572709376,1572709887,GB
-1572709888,1572710143,GG
-1572710144,1572710399,GB
+1572709376,1572710399,GB
1572710400,1572712447,DE
1572712448,1572714495,ES
1572714496,1572714943,NG
1572714944,1572714959,IT
-1572714960,1572715775,NG
-1572715776,1572716031,IT
-1572716032,1572716543,NG
+1572714960,1572716543,NG
1572716544,1572718591,SA
1572718592,1572720639,RU
1572720640,1572722687,IT
@@ -33044,8 +34225,12 @@
1572843520,1572845567,JO
1572845568,1572847615,FR
1572847616,1572849663,GI
-1572849664,1572850431,JE
-1572850432,1572851711,GB
+1572849664,1572849919,JE
+1572849920,1572850175,GB
+1572850176,1572850431,JE
+1572850432,1572850687,GB
+1572850688,1572850943,JE
+1572850944,1572851711,GB
1572851712,1572853759,DE
1572853760,1572855807,BE
1572855808,1572857855,KZ
@@ -33187,14 +34372,17 @@
1580015616,1580048383,UA
1580048384,1580064767,RU
1580064768,1580072959,GB
-1580072960,1580083199,PT
+1580072960,1580081151,PT
+1580081152,1580083199,TR
1580083200,1580087565,US
1580087566,1580087566,SE
1580087567,1580089102,US
1580089103,1580089103,SE
1580089104,1580089343,US
1580089344,1580097535,PT
-1580097536,1580101955,GB
+1580097536,1580098047,GB
+1580098048,1580098303,US
+1580098304,1580101955,GB
1580101956,1580101956,SE
1580101957,1580105007,GB
1580105008,1580105008,SE
@@ -33247,17 +34435,7 @@
1582252032,1582268415,TR
1582268416,1582284799,DE
1582284800,1582301183,BH
-1582301184,1582452223,IT
-1582452224,1582452231,SI
-1582452232,1582695151,IT
-1582695152,1582695159,SI
-1582695160,1582701383,IT
-1582701384,1582701391,SI
-1582701392,1582704639,IT
-1582704640,1582705663,SI
-1582705664,1582853903,IT
-1582853904,1582853919,SI
-1582853920,1583349759,IT
+1582301184,1583349759,IT
1583349760,1583611903,SA
1583611904,1583615999,LV
1583616000,1583620095,NL
@@ -33281,7 +34459,6 @@
1583693824,1583697919,RU
1583697920,1583702015,TR
1583702016,1583706111,RU
-1583706624,1583706879,RU
1583710208,1583714303,IR
1583714304,1583722495,GB
1583722496,1583726591,IR
@@ -33331,7 +34508,9 @@
1583800320,1583804415,ME
1583804416,1583808511,GB
1583808512,1583812607,MD
-1583812608,1583816703,NL
+1583812608,1583816351,NL
+1583816352,1583816367,GB
+1583816368,1583816703,NL
1583816704,1583820799,TR
1583820800,1583824895,LV
1583824896,1583828991,SI
@@ -33368,9 +34547,9 @@
1585219584,1585221631,NL
1585221632,1585223679,SK
1585223680,1585223935,MQ
-1585223936,1585224063,RE
-1585224064,1585225471,FR
-1585225472,1585225727,YT
+1585223936,1585224191,FR
+1585224192,1585224447,YT
+1585224448,1585225727,FR
1585225728,1585227007,UA
1585227008,1585227263,RU
1585227264,1585227775,UA
@@ -33379,8 +34558,7 @@
1585233920,1585238015,RU
1585238016,1585240063,DE
1585240064,1585241087,FR
-1585241088,1585241343,GP
-1585241344,1585242111,MQ
+1585241088,1585242111,MQ
1585242112,1585244159,RU
1585244160,1585246207,FR
1585246208,1585248255,RU
@@ -33426,8 +34604,7 @@
1585334272,1585336319,DE
1585336320,1585338367,SE
1585338368,1585340415,RU
-1585340416,1585340671,DE
-1585340672,1585342463,AT
+1585340416,1585342463,AT
1585342464,1585344511,GB
1585344512,1585346559,FR
1585346560,1585348607,GB
@@ -33534,9 +34711,7 @@
1586403328,1586405375,IS
1586405376,1586407423,AT
1586407424,1586409471,GB
-1586411520,1586412031,GB
-1586412032,1586412287,US
-1586412288,1586413567,GB
+1586411520,1586413567,GB
1586413568,1586415615,IT
1586415616,1586416255,ES
1586416256,1586417663,AD
@@ -33603,8 +34778,10 @@
1587478528,1587511295,RU
1587511296,1587544063,IL
1587544064,1588068351,IT
-1588068352,1588133887,NL
-1588133888,1588592639,GB
+1588068352,1588134655,NL
+1588134656,1588134911,GB
+1588134912,1588199423,NL
+1588199424,1588592639,GB
1588592640,1588593663,RO
1588593664,1588593919,MD
1588593920,1588594687,RO
@@ -33617,7 +34794,9 @@
1588619776,1588620287,SG
1588620288,1588621311,RO
1588621312,1588625407,MD
-1588625408,1588637695,RO
+1588625408,1588628479,RO
+1588628480,1588628735,ES
+1588628736,1588637695,RO
1588637696,1588638719,ES
1588638720,1588641535,RO
1588641536,1588641791,GB
@@ -33628,7 +34807,7 @@
1588652160,1588654079,RO
1588654080,1588658175,DE
1588658176,1588659199,RO
-1588659200,1588659711,NL
+1588659200,1588659711,GB
1588659712,1588661247,RO
1588661248,1588661503,NL
1588661504,1588663807,RO
@@ -33646,7 +34825,12 @@
1588685312,1588689663,RO
1588689664,1588689919,RU
1588689920,1588690687,GB
-1588690688,1588723711,RO
+1588690688,1588690943,RO
+1588690944,1588692991,PL
+1588692992,1588699135,RO
+1588699136,1588719615,IT
+1588719616,1588722687,RO
+1588722688,1588723711,IT
1588723712,1588854783,UA
1588854784,1588985855,RU
1588985856,1589182463,IR
@@ -33846,9 +35030,7 @@
1592901632,1592934399,RU
1592934400,1592950783,CZ
1592950784,1592967167,RU
-1592967168,1592980351,LU
-1592980352,1592980479,DE
-1592980480,1592983551,LU
+1592967168,1592983551,LU
1592983552,1592999935,RU
1592999936,1593016319,MD
1593016320,1593049087,RU
@@ -33858,19 +35040,22 @@
1593098240,1593114623,CH
1593114624,1593131007,SE
1593131008,1593131023,CH
-1593131024,1593131519,GB
-1593131520,1593131775,CH
-1593131776,1593133055,GB
-1593133056,1593133311,FR
-1593133312,1593134335,GB
-1593134336,1593134351,AT
-1593134352,1593134591,GB
-1593134592,1593134863,SE
-1593134864,1593135615,GB
-1593135616,1593135743,RU
-1593135744,1593143295,GB
-1593143296,1593143551,IE
-1593143552,1593147391,GB
+1593131024,1593131039,SE
+1593131040,1593134079,GB
+1593134080,1593134591,AT
+1593134592,1593134847,GB
+1593134848,1593134863,SE
+1593134864,1593135359,GB
+1593135360,1593135615,IE
+1593135616,1593136639,GB
+1593136640,1593136895,IE
+1593136896,1593137151,GB
+1593137152,1593139199,IE
+1593139200,1593140223,NL
+1593140224,1593140351,IE
+1593140352,1593140479,NL
+1593140480,1593147135,IE
+1593147136,1593147391,GB
1593147392,1593163775,RU
1593163776,1593180159,AT
1593180160,1593196543,NO
@@ -33969,7 +35154,7 @@
1596851200,1596851455,RU
1596851456,1596851711,CZ
1596851712,1596851967,UA
-1596851968,1596852223,CZ
+1596851968,1596852223,LV
1596852224,1596854271,UA
1596854272,1596858367,BY
1596858368,1596858879,CZ
@@ -33979,8 +35164,8 @@
1596876800,1596877055,CZ
1596877056,1596877311,RU
1596877312,1596877823,CZ
-1596877824,1596878847,RU
-1596878848,1596879871,CZ
+1596877824,1596879359,RU
+1596879360,1596879871,CZ
1596879872,1596880895,RU
1596880896,1596881407,UA
1596881408,1596881919,CZ
@@ -34091,9 +35276,7 @@
1599209472,1599242239,IR
1599242240,1599258623,CZ
1599258624,1599324159,RU
-1599324160,1599339007,IE
-1599339008,1599339263,RU
-1599339264,1599340543,IE
+1599324160,1599340543,IE
1599340544,1599356927,RU
1599356928,1599373311,BH
1599373312,1599406079,RU
@@ -34133,9 +35316,7 @@
1600978944,1601011711,SE
1601011712,1601044479,UA
1601044480,1601077247,RU
-1601077248,1601109567,IT
-1601109568,1601109631,FR
-1601109632,1601110015,IT
+1601077248,1601110015,IT
1601110016,1601142783,BG
1601142784,1601175551,UA
1601175552,1601699839,DE
@@ -34307,7 +35488,8 @@
1603081256,1603081263,FI
1603081264,1603081279,GB
1603081280,1603081295,US
-1603081296,1603081471,ES
+1603081296,1603081407,GB
+1603081408,1603081471,ES
1603081472,1603082239,GB
1603082240,1603082495,DE
1603082496,1603082751,GT
@@ -34360,8 +35542,8 @@
1603219456,1603223551,CH
1603223552,1603223807,FR
1603223808,1603225087,GB
-1603225088,1603225343,FR
-1603225344,1603226255,GB
+1603225088,1603225599,FR
+1603225600,1603226255,GB
1603226256,1603226263,DE
1603226264,1603226271,NL
1603226272,1603227647,GB
@@ -34417,7 +35599,9 @@
1604288512,1604304895,RU
1604304896,1604321279,SI
1604321280,1604386815,PL
-1604386816,1604444159,RU
+1604386816,1604433919,RU
+1604433920,1604434943,KZ
+1604434944,1604444159,RU
1604444160,1604445183,KZ
1604445184,1604452351,RU
1604452352,1604517887,RO
@@ -34540,9 +35724,7 @@
1605165056,1605173247,GB
1605173248,1605181439,TR
1605181440,1605189631,LT
-1605189632,1605189887,CZ
-1605189888,1605190143,SK
-1605190144,1605197823,CZ
+1605189632,1605197823,CZ
1605197824,1605206015,DE
1605206016,1605214207,RU
1605214208,1605222399,TR
@@ -34633,7 +35815,9 @@
1607622656,1607624703,ES
1607624704,1607625727,IT
1607625728,1607625983,ES
-1607625984,1607626121,IT
+1607625984,1607625986,IT
+1607625987,1607625987,PT
+1607625988,1607626121,IT
1607626122,1607626122,ES
1607626123,1607626239,IT
1607626240,1607626751,ES
@@ -34804,13 +35988,19 @@
1618866176,1618870271,CA
1618870272,1618984959,US
1618984960,1619001343,CA
-1619001344,1632305151,US
+1619001344,1631865343,US
+1631865344,1631865599,PR
+1631865600,1632305151,US
1632305152,1632321535,CA
1632321536,1632354303,US
1632354304,1632362495,CA
-1632362496,1632978175,US
+1632362496,1632977023,US
+1632977024,1632977151,CA
+1632977152,1632978175,US
1632978176,1632978303,CA
-1632978304,1632980607,US
+1632978304,1632979839,US
+1632979840,1632979967,CA
+1632979968,1632980607,US
1632980608,1632980735,CA
1632980736,1634414591,US
1634414592,1634418687,CA
@@ -34825,7 +36015,8 @@
1652310016,1652481279,US
1652481280,1652481791,CN
1652481792,1653500927,US
-1653500928,1653501183,FR
+1653500928,1653501175,FR
+1653501176,1653501183,US
1653501184,1653501439,IL
1653501440,1653534719,US
1653534720,1653538815,CA
@@ -34847,7 +36038,9 @@
1654648832,1654652927,CA
1654652928,1660149759,US
1660149760,1660149887,CA
-1660149888,1673527295,US
+1660149888,1660560127,US
+1660560128,1660560255,CA
+1660560256,1673527295,US
1673527296,1673560063,CA
1673560064,1673580287,US
1673580288,1673580543,CA
@@ -34900,7 +36093,8 @@
1697996800,1697997823,JP
1697997824,1697998847,CN
1697998848,1698004991,JP
-1698004992,1698037759,AU
+1698004992,1698013183,IN
+1698013184,1698037759,AU
1698037760,1698103295,CN
1698103296,1698136063,KR
1698136064,1698160639,JP
@@ -35192,7 +36386,10 @@
1728389120,1728390143,TW
1728390144,1728391167,CN
1728391168,1728392191,JP
-1728392192,1728393215,SG
+1728392192,1728392215,TW
+1728392216,1728392527,SG
+1728392528,1728392543,TW
+1728392544,1728393215,SG
1728393216,1728394239,ID
1728394240,1728396287,CN
1728396288,1728397311,PH
@@ -35235,7 +36432,6 @@
1728427008,1728428031,MY
1728428032,1728430079,IN
1728430080,1728431103,CN
-1728431104,1728431615,AF
1728431616,1728431871,HK
1728431872,1728432127,SG
1728432128,1728433151,IN
@@ -35251,7 +36447,10 @@
1728441344,1728442367,MY
1728442368,1728443391,SG
1728443392,1728444415,IN
-1728444416,1728445439,JP
+1728444416,1728444671,HK
+1728444672,1728444927,JP
+1728444928,1728445183,HK
+1728445184,1728445439,JP
1728445440,1728446463,CN
1728446464,1728446975,ID
1728446976,1728447231,IN
@@ -35271,7 +36470,8 @@
1728458752,1728459775,HK
1728459776,1728460799,ID
1728460800,1728462847,JP
-1728462848,1728463871,US
+1728462848,1728463359,NZ
+1728463360,1728463871,US
1728463872,1728464895,JP
1728464896,1728465919,KR
1728465920,1728466943,CN
@@ -35291,7 +36491,8 @@
1728476160,1728476415,AU
1728476416,1728476927,ID
1728476928,1728477183,IN
-1728478208,1728480255,HK
+1728478208,1728479231,JP
+1728479232,1728480255,HK
1728480256,1728481279,IN
1728481280,1728483327,HK
1728483328,1728484351,NZ
@@ -35445,7 +36646,9 @@
1728618496,1728619519,MY
1728619520,1728620543,IN
1728620544,1728622591,AU
-1728622592,1728624639,SG
+1728622592,1728624439,SG
+1728624440,1728624447,JP
+1728624448,1728624639,SG
1728624640,1728625663,JP
1728625664,1728626175,IN
1728626176,1728626431,JP
@@ -35562,7 +36765,6 @@
1728736256,1728736511,HK
1728736512,1728736767,IN
1728736768,1728737023,ID
-1728737024,1728737279,CN
1728737280,1728738303,JP
1728738304,1728739327,IN
1728739328,1728740351,ID
@@ -35586,9 +36788,7 @@
1728756736,1728757759,IN
1728757760,1728758783,JP
1728758784,1728759039,MY
-1728759040,1728759257,HK
-1728759258,1728759258,KR
-1728759259,1728759295,HK
+1728759040,1728759295,HK
1728759296,1728759551,MY
1728759552,1728759807,HK
1728759808,1728760831,PH
@@ -35625,7 +36825,7 @@
1728787456,1728788479,AU
1728788480,1728789503,KR
1728789504,1728790527,PK
-1728790528,1728791551,PH
+1728790528,1728791551,US
1728791552,1728792575,PK
1728792576,1728793087,HK
1728793088,1728793599,ID
@@ -35662,7 +36862,6 @@
1728821760,1728822271,ID
1728822272,1728823295,SG
1728823296,1728824319,MN
-1728824320,1728825343,JP
1728825344,1728826367,SG
1728826368,1728827391,AU
1728827392,1728828415,JP
@@ -36044,7 +37243,66 @@
1729167360,1729168383,IN
1729168384,1729169407,JP
1729169408,1729170431,TW
-1729170432,1729171455,HK
+1729170432,1729170462,JP
+1729170463,1729170463,HK
+1729170464,1729170494,JP
+1729170495,1729170495,HK
+1729170496,1729170526,JP
+1729170527,1729170527,HK
+1729170528,1729170558,JP
+1729170559,1729170559,HK
+1729170560,1729170590,JP
+1729170591,1729170591,HK
+1729170592,1729170622,JP
+1729170623,1729170623,HK
+1729170624,1729170654,JP
+1729170655,1729170655,HK
+1729170656,1729170686,JP
+1729170687,1729170687,HK
+1729170688,1729170718,CN
+1729170719,1729170719,HK
+1729170720,1729170750,CN
+1729170751,1729170751,HK
+1729170752,1729170782,CN
+1729170783,1729170783,HK
+1729170784,1729170814,CN
+1729170815,1729170815,HK
+1729170816,1729170846,CN
+1729170847,1729170847,HK
+1729170848,1729170878,CN
+1729170879,1729170879,HK
+1729170880,1729170942,CN
+1729170943,1729170943,HK
+1729170944,1729170974,CN
+1729170975,1729170975,HK
+1729170976,1729171006,CN
+1729171007,1729171007,HK
+1729171008,1729171038,CN
+1729171039,1729171039,HK
+1729171040,1729171070,CN
+1729171071,1729171071,HK
+1729171072,1729171102,CN
+1729171103,1729171135,HK
+1729171136,1729171166,CN
+1729171167,1729171167,HK
+1729171168,1729171198,CN
+1729171199,1729171199,HK
+1729171200,1729171230,JP
+1729171231,1729171231,HK
+1729171232,1729171262,JP
+1729171263,1729171263,HK
+1729171264,1729171294,JP
+1729171295,1729171295,HK
+1729171296,1729171326,JP
+1729171327,1729171327,HK
+1729171328,1729171358,JP
+1729171359,1729171359,HK
+1729171360,1729171390,JP
+1729171391,1729171391,HK
+1729171392,1729171422,JP
+1729171423,1729171423,HK
+1729171424,1729171454,JP
+1729171455,1729171455,HK
1729171456,1729171967,AU
1729171968,1729172223,IN
1729172224,1729172479,MY
@@ -36155,7 +37413,9 @@
1729274880,1729276927,IN
1729276928,1729277951,BN
1729277952,1729278975,VN
-1729280000,1729281023,HK
+1729278976,1729279231,BD
+1729279232,1729279487,ID
+1729279488,1729281023,HK
1729281024,1729281535,AU
1729281536,1729282047,ID
1729282048,1729283071,CN
@@ -36352,13 +37612,11 @@
1729476608,1729477631,IN
1729477632,1729478655,AU
1729478912,1729479423,NZ
-1729479424,1729479679,IN
1729479680,1729480703,TW
1729480704,1729481727,KR
1729481728,1729482751,ID
1729482752,1729483775,CN
1729483776,1729485823,ID
-1729485824,1729486847,HK
1729486848,1729488383,ID
1729488384,1729488895,SB
1729488896,1729490943,IN
@@ -36455,7 +37713,7 @@
1729600512,1729601535,VN
1729601536,1729603583,CN
1729603584,1729604607,HK
-1729604608,1729604863,AU
+1729604608,1729605119,IN
1729605120,1729605375,AU
1729605376,1729605631,ID
1729605632,1729606655,CN
@@ -36466,7 +37724,6 @@
1729610004,1729610063,HK
1729610064,1729610071,SG
1729610072,1729610751,HK
-1729610752,1729611775,JP
1729611776,1729612799,ID
1729612800,1729613823,BD
1729613824,1729614847,SG
@@ -36578,7 +37835,7 @@
1729717248,1729718271,JP
1729718272,1729719295,HK
1729719296,1729720319,ID
-1729720320,1729721087,AU
+1729720320,1729721343,AU
1729721344,1729722367,NZ
1729722368,1729723391,BD
1729723392,1729726463,IN
@@ -36633,7 +37890,9 @@
1729776640,1729777663,CN
1729777664,1729779711,PK
1729779712,1729780735,AU
-1729780736,1729781503,HK
+1729780736,1729780991,HK
+1729780992,1729781247,ID
+1729781248,1729781503,HK
1729781504,1729781759,TL
1729781760,1729782783,IN
1729782784,1729783551,ID
@@ -36821,7 +38080,6 @@
1729952512,1729952767,NZ
1729952768,1729953791,IN
1729954816,1729955839,ID
-1729955840,1729956863,BD
1729956864,1729957887,HK
1729957888,1729958911,CN
1729958912,1729959935,PH
@@ -36829,7 +38087,8 @@
1729960960,1729961471,IN
1729961472,1729961983,NZ
1729961984,1729964031,IN
-1729964032,1729965055,AU
+1729964032,1729964543,AU
+1729964800,1729965055,AU
1729965056,1729966079,IN
1729966080,1729967103,JP
1729967104,1729968127,AU
@@ -36887,10 +38146,10 @@
1730017792,1730019327,PH
1730019328,1730020351,ID
1730020352,1730021375,HK
-1730021376,1730022399,JP
1730022400,1730023423,IN
1730023424,1730024447,HK
1730024448,1730025471,CN
+1730025472,1730026495,HK
1730026496,1730027519,BD
1730027520,1730028543,SG
1730028544,1730029567,VN
@@ -36899,7 +38158,6 @@
1730031616,1730032639,HK
1730032640,1730033663,JP
1730033664,1730034687,ID
-1730034688,1730035711,JP
1730035712,1730036735,IN
1730036736,1730037759,HK
1730037760,1730038783,JP
@@ -36907,7 +38165,7 @@
1730039808,1730040831,IN
1730040832,1730043903,ID
1730043904,1730044927,CN
-1730044928,1730046975,HK
+1730044928,1730045951,HK
1730046976,1730047999,KR
1730048000,1730049023,TL
1730049024,1730050047,IN
@@ -36931,10 +38189,11 @@
1730066432,1730067455,AU
1730067456,1730068479,BD
1730068480,1730069503,IN
+1730069504,1730070527,PK
1730070528,1730071551,CN
1730071552,1730072575,KR
-1730072576,1730073599,SG
-1730073600,1730073855,HK
+1730072576,1730073343,SG
+1730073344,1730073855,HK
1730074112,1730074367,AU
1730074368,1730074623,SG
1730075648,1730076671,ID
@@ -36945,10 +38204,10 @@
1730080768,1730081791,HK
1730081792,1730082815,ID
1730082816,1730083839,PW
+1730083840,1730084863,IN
1730084864,1730085887,CN
1730085888,1730086399,SG
-1730086400,1730086911,AU
-1730086912,1730087935,HK
+1730086400,1730086911,US
1730087936,1730088959,JP
1730088960,1730091007,HK
1730091008,1730091519,SG
@@ -36957,7 +38216,6 @@
1730093056,1730093567,ID
1730093568,1730094079,MY
1730094080,1730095103,ID
-1730095104,1730096127,JP
1730096128,1730097151,ID
1730097152,1730103295,CN
1730103296,1730104319,HK
@@ -36971,7 +38229,6 @@
1730112512,1730112767,BD
1730112768,1730113535,ID
1730113536,1730114559,AU
-1730114560,1730115583,JP
1730115584,1730117631,VN
1730117632,1730118655,KH
1730118656,1730119679,ID
@@ -36987,8 +38244,12 @@
1730128896,1730129919,SG
1730129920,1730130943,BD
1730130944,1730131967,KR
-1730131968,1730132799,HK
-1730132800,1730132831,RO
+1730131968,1730132015,HK
+1730132016,1730132223,US
+1730132224,1730132351,HK
+1730132352,1730132399,GB
+1730132400,1730132735,HK
+1730132736,1730132831,RO
1730132832,1730132991,HK
1730132992,1730134015,IN
1730134016,1730135039,JP
@@ -37133,7 +38394,8 @@
1730503680,1730505727,CN
1730505728,1730508799,JP
1730508800,1730509823,AU
-1730509824,1730510847,CN
+1730509824,1730510591,CN
+1730510592,1730510847,HK
1730510848,1730511871,AU
1730511872,1730512895,JP
1730512896,1730521087,CN
@@ -37309,19 +38571,19 @@
1730753536,1730754559,CN
1730754560,1730755071,IN
1730755072,1730755583,TH
-1730755584,1730756351,JP
-1730756352,1730756607,CN
+1730755584,1730756607,JP
1730756608,1730757631,HK
1730757632,1730758655,SG
-1730758656,1730759679,JP
1730760704,1730761727,HK
1730761728,1730762751,TH
1730762752,1730766847,IN
+1730766848,1730767871,CN
1730767872,1730768127,AU
1730768128,1730768639,ID
1730768640,1730768895,BD
1730769920,1730770943,CN
1730770944,1730771967,ID
+1730771968,1730772991,CN
1730772992,1730774015,SG
1730774016,1730775039,HK
1730775040,1730776063,JP
@@ -37337,7 +38599,8 @@
1730784256,1730785279,HK
1730785280,1730785535,NL
1730785536,1730786303,AU
-1730786304,1730787327,HK
+1730786304,1730787583,HK
+1730787584,1730788351,CN
1730788352,1730790399,ID
1730790400,1730791423,IN
1730791424,1730794495,ID
@@ -37352,12 +38615,12 @@
1730803712,1730804735,HK
1730804736,1730805759,JP
1730805760,1730806783,AF
-1730806784,1730807807,JP
1730807808,1730808831,CN
1730808832,1730809855,HK
1730809856,1730810623,IN
1730810624,1730811903,AU
1730811904,1730814975,CN
+1730814976,1730815999,HK
1730816000,1730817023,ID
1730817024,1730818047,JP
1730818048,1730818815,AU
@@ -37377,7 +38640,6 @@
1730834944,1730835455,IN
1730835456,1730837503,ID
1730837504,1730838527,IN
-1730838528,1730839551,TH
1730839552,1730840575,AU
1730840576,1730841599,SG
1730841600,1730842623,AU
@@ -37400,12 +38662,9 @@
1730859008,1730860031,BN
1730860032,1730861055,HK
1730861056,1730862079,MM
-1730862080,1730863103,JP
1730863104,1730864127,AU
-1730864128,1730865151,TW
1730865152,1730866175,CN
1730866176,1730867199,AU
-1730868224,1730869247,KR
1730869248,1730870271,IN
1730870272,1730871807,ID
1730871808,1730873343,IN
@@ -37435,7 +38694,8 @@
1730895872,1730898943,CN
1730898944,1730899967,MO
1730899968,1730900991,IN
-1730900992,1730901503,AU
+1730900992,1730901247,HK
+1730901248,1730901503,SG
1730901504,1730901759,DE
1730901760,1730902015,AU
1730902016,1730903039,KR
@@ -37450,7 +38710,6 @@
1730910208,1730911231,IN
1730911232,1730912255,NC
1730912256,1730913279,IN
-1730913280,1730914303,CN
1730914304,1730915327,NP
1730915328,1730916351,HK
1730916352,1730918399,AU
@@ -37494,7 +38753,9 @@
1730951168,1730952191,CN
1730952192,1730954239,HK
1730954240,1730955263,SG
-1730955264,1730957311,BD
+1730955264,1730956031,BD
+1730956032,1730956287,NL
+1730956288,1730957311,BD
1730957312,1730958335,CN
1730958336,1730959359,JP
1730959360,1730960383,CN
@@ -37543,7 +38804,6 @@
1731066880,1731067391,PH
1731067392,1731067903,AU
1731067904,1731068927,CN
-1731068928,1731070975,JP
1731070976,1731103743,CN
1731103744,1731103871,TH
1731103872,1731103999,FR
@@ -37552,7 +38812,6 @@
1731104256,1731104511,CN
1731104512,1731104639,MY
1731104640,1731104767,SG
-1731104768,1731105791,TW
1731105792,1731106815,BD
1731106816,1731115007,CN
1731115008,1731116031,HK
@@ -37750,7 +39009,6 @@
1731322880,1731323903,ID
1731323904,1731327487,IN
1731327488,1731327999,HK
-1731328000,1731329023,CN
1731329024,1731330047,IN
1731330048,1731331071,SG
1731331072,1731332095,IN
@@ -37898,14 +39156,17 @@
1731509248,1731510271,HK
1731510272,1731510527,MY
1731510528,1731510783,AU
-1731510784,1731511295,IN
+1731510784,1731511039,IN
+1731511040,1731511295,US
1731511296,1731512319,CN
1731512320,1731513343,KR
1731513344,1731514367,NZ
1731514368,1731515391,IN
1731515392,1731515647,AU
1731515648,1731515903,ID
-1731515904,1731517439,HK
+1731515904,1731516159,HK
+1731516160,1731516415,US
+1731516416,1731517439,HK
1731517440,1731519487,IN
1731519488,1731520511,MM
1731520512,1731523583,JP
@@ -38404,8 +39665,8 @@
1732127744,1732128767,HK
1732128768,1732129023,SG
1732129024,1732129279,NZ
-1732129280,1732129535,AU
-1732129536,1732129791,HK
+1732129280,1732129790,AU
+1732129791,1732129791,HK
1732129792,1732130815,CN
1732130816,1732134911,IN
1732134912,1732140031,CN
@@ -38570,7 +39831,8 @@
1740791808,1740792831,IN
1740792832,1740794879,HK
1740794880,1740795903,KR
-1740795904,1740796415,NZ
+1740795904,1740796159,NZ
+1740796160,1740796415,AU
1740796416,1740796671,IN
1740796672,1740796927,AU
1740796928,1740798207,IN
@@ -38641,7 +39903,8 @@
1740873728,1740874751,CN
1740874752,1740876287,ID
1740876288,1740876799,AU
-1740876800,1740880895,IN
+1740876800,1740880639,IN
+1740880640,1740880895,HK
1740880896,1740881919,SG
1740881920,1740882943,CN
1740882944,1740884991,IN
@@ -38691,7 +39954,6 @@
1740938496,1740938751,IN
1740938752,1740939263,TH
1740939264,1740940287,PK
-1740940288,1740941311,JP
1740941312,1740942335,CN
1740942336,1740943359,TW
1740944384,1740945407,US
@@ -38762,7 +40024,9 @@
1741025280,1741026303,IN
1741026304,1741027327,TH
1741027328,1741028351,BD
-1741028352,1741029375,CN
+1741028352,1741028519,CN
+1741028520,1741028520,HK
+1741028521,1741029375,CN
1741029376,1741029631,SG
1741029632,1741029887,HK
1741029888,1741030399,BD
@@ -38842,7 +40106,6 @@
1741125632,1741128703,IN
1741128704,1741129727,JP
1741129728,1741130751,IN
-1741130752,1741131775,JP
1741131776,1741132799,IN
1741132800,1741133823,HK
1741133824,1741134847,BD
@@ -38863,7 +40126,9 @@
1741157376,1741158399,HK
1741158400,1741160447,CN
1741160448,1741161471,TW
-1741161472,1741162495,SG
+1741161472,1741161727,SG
+1741161728,1741162239,HK
+1741162240,1741162495,SG
1741162496,1741164543,AU
1741164544,1741165567,ID
1741165568,1741167615,VN
@@ -38886,7 +40151,6 @@
1741195264,1741210623,CN
1741210624,1741211647,PK
1741211648,1741212671,SG
-1741212672,1741213695,IR
1741213696,1741214719,SG
1741214720,1741215743,IN
1741215744,1741216767,SG
@@ -38917,7 +40181,7 @@
1741350912,1741351935,US
1741351936,1741366271,CN
1741366272,1741367295,IN
-1741367296,1741368319,HK
+1741367296,1741368319,US
1741368320,1741369343,PK
1741369344,1741370367,HK
1741370368,1741372415,CN
@@ -39037,6 +40301,268 @@
1741521920,1741522943,BD
1741522944,1741523967,CN
1741523968,1741528063,IN
+1741528064,1741529087,PH
+1741529088,1741529599,TH
+1741529600,1741529855,CN
+1741529856,1741530111,IN
+1741530112,1741531135,HK
+1741531136,1741532159,JP
+1741532160,1741533183,IN
+1741533184,1741534207,PK
+1741534208,1741535231,BD
+1741535232,1741535487,JP
+1741535488,1741535743,IN
+1741535744,1741536255,SG
+1741536256,1741540351,CN
+1741540352,1741541375,AU
+1741541376,1741542399,MY
+1741542400,1741546495,IN
+1741546496,1741547519,AU
+1741547520,1741548543,BD
+1741548544,1741549567,CN
+1741549568,1741550591,HK
+1741550592,1741551103,IN
+1741551104,1741551615,AU
+1741551616,1741554687,CN
+1741554688,1741557759,IN
+1741557760,1741558783,AU
+1741558784,1741559807,HK
+1741559808,1741560831,SG
+1741560832,1741561087,AU
+1741561088,1741561855,SG
+1741561856,1741562879,NZ
+1741562880,1741563903,HK
+1741563904,1741564927,SG
+1741564928,1741565951,CN
+1741565952,1741572607,IN
+1741572608,1741573119,KR
+1741573120,1741574143,JP
+1741574144,1741575167,PH
+1741575168,1741576191,PK
+1741576192,1741577215,JP
+1741577216,1741578239,HK
+1741578240,1741578751,IN
+1741578752,1741579007,SG
+1741579008,1741581311,IN
+1741581312,1741582335,CN
+1741582336,1741584383,IN
+1741584384,1741586431,HK
+1741586432,1741591551,IN
+1741591552,1741592575,CN
+1741592576,1741593087,MN
+1741593088,1741593599,AU
+1741593600,1741594111,HK
+1741594112,1741594367,MY
+1741594368,1741596671,IN
+1741596672,1741597695,ID
+1741597696,1741597951,IN
+1741597952,1741598207,MM
+1741598208,1741600767,IN
+1741600768,1741601279,BD
+1741601280,1741601535,ID
+1741601536,1741601791,AU
+1741601792,1741602815,HK
+1741602816,1741603839,MN
+1741603840,1741604863,JP
+1741604864,1741605887,PH
+1741605888,1741606911,TH
+1741606912,1741607935,IN
+1741607936,1741609983,VN
+1741609984,1741612031,IN
+1741612032,1741613055,BD
+1741613056,1741614079,HK
+1741614080,1741615103,AU
+1741615104,1741617151,ID
+1741617152,1741618175,IN
+1741618176,1741619199,ID
+1741619200,1741623295,IN
+1741623296,1741623551,NZ
+1741623552,1741623807,IN
+1741623808,1741624063,AU
+1741624064,1741624319,MY
+1741624320,1741625343,JP
+1741625344,1741626367,HK
+1741626368,1741627391,AU
+1741627392,1741629439,VN
+1741629440,1741631487,IN
+1741631488,1741632511,CN
+1741632512,1741636607,IN
+1741636608,1741637631,HK
+1741637632,1741638655,PH
+1741638656,1741639679,NZ
+1741639680,1741640703,NP
+1741640704,1741641727,PK
+1741641728,1741642751,BD
+1741642752,1741643007,AU
+1741643008,1741643263,HK
+1741643264,1741643775,AU
+1741643776,1741644799,ID
+1741644800,1741645311,IN
+1741645312,1741645567,AU
+1741645568,1741645823,IN
+1741645824,1741646847,CN
+1741646848,1741647871,SG
+1741647872,1741648895,KH
+1741648896,1741649919,HK
+1741649920,1741658111,IN
+1741658112,1741658623,BD
+1741658624,1741659135,AU
+1741659136,1741659647,SG
+1741659648,1741659903,PH
+1741659904,1741660159,HK
+1741660160,1741661183,IN
+1741661184,1741662207,CN
+1741662208,1741666303,IN
+1741666304,1741674495,CN
+1741674496,1741675519,JP
+1741675520,1741676543,CN
+1741676544,1741677567,IN
+1741677568,1741679615,CN
+1741679616,1741680639,ID
+1741680640,1741683711,IN
+1741683712,1741684735,TW
+1741684736,1741685247,HK
+1741685248,1741685503,AU
+1741685504,1741685759,SG
+1741685760,1741686783,AU
+1741686784,1741687807,HK
+1741687808,1741689855,CN
+1741689856,1741690367,IN
+1741690368,1741690623,AU
+1741690624,1741690879,ID
+1741690880,1741691903,TH
+1741691904,1741692927,CN
+1741692928,1741693951,HK
+1741693952,1741694975,TL
+1741694976,1741698047,CN
+1741698048,1741706239,IN
+1741706240,1741706751,AT
+1741706752,1741707263,NZ
+1741707264,1741708287,IN
+1741708288,1741708543,AU
+1741708544,1741708799,US
+1741708800,1741709311,ID
+1741709312,1741710335,JP
+1741710336,1741711359,ID
+1741711360,1741718527,IN
+1741718528,1741719551,BD
+1741719552,1741720063,ID
+1741720064,1741720575,TH
+1741720576,1741721599,NZ
+1741721600,1741722623,IN
+1741722624,1741723647,CN
+1741723648,1741724415,IN
+1741724416,1741724671,AU
+1741724672,1741725695,IN
+1741725696,1741726719,ID
+1741726720,1741727743,NZ
+1741727744,1741729791,IN
+1741729792,1741730815,HK
+1741730816,1741731839,BD
+1741731840,1741733887,AU
+1741733888,1741734911,HK
+1741734912,1741735423,TW
+1741735424,1741735679,IN
+1741735680,1741735935,AU
+1741735936,1741736959,IN
+1741736960,1741737983,ID
+1741737984,1741739007,IN
+1741739008,1741740031,TH
+1741740032,1741741055,AU
+1741741056,1741742079,JP
+1741742080,1741749247,IN
+1741749248,1741750527,SG
+1741750528,1741750783,ID
+1741750784,1741751807,AU
+1741751808,1741752831,ID
+1741752832,1741753087,NZ
+1741753088,1741753343,BD
+1741753344,1741754367,NZ
+1741754368,1741755391,IN
+1741755392,1741756415,BD
+1741756416,1741756927,AU
+1741756928,1741757439,IN
+1741757440,1741758463,HK
+1741758464,1741759487,PK
+1741759488,1741760511,IN
+1741760512,1741761535,HK
+1741761536,1741762559,AU
+1741762560,1741763583,TH
+1741763584,1741764095,PK
+1741764096,1741764351,PG
+1741764352,1741764607,AU
+1741764608,1741765631,PH
+1741765632,1741766655,HK
+1741766656,1741768703,IN
+1741768704,1741769727,AU
+1741769728,1741770751,PK
+1741770752,1741771775,BD
+1741771776,1741772799,PK
+1741772800,1741774591,IN
+1741774592,1741774847,ID
+1741774848,1741775359,IN
+1741775360,1741775615,ID
+1741775616,1741775871,IN
+1741775872,1741777919,MY
+1741777920,1741778431,AU
+1741778432,1741778943,IN
+1741778944,1741779967,CN
+1741779968,1741780991,JP
+1741780992,1741782015,SG
+1741782016,1741783039,AU
+1741783040,1741783551,SG
+1741783552,1741784063,ID
+1741784064,1741785087,IN
+1741785088,1741786111,CN
+1741786112,1741788159,IN
+1741788160,1741789183,JP
+1741789184,1741790207,AU
+1741790208,1741791231,MY
+1741791232,1741792255,AU
+1741792256,1741794303,SG
+1741794304,1741795327,KR
+1741795328,1741797375,IN
+1741797376,1741798399,ID
+1741798400,1741798911,AU
+1741798912,1741799167,SG
+1741799168,1741799423,AU
+1741799424,1741800447,NZ
+1741800448,1741801471,BD
+1741801472,1741802495,CN
+1741802496,1741803519,IN
+1741803520,1741804543,CN
+1741804544,1741805567,IN
+1741805568,1741806591,CN
+1741806592,1741807615,IN
+1741807616,1741808639,NZ
+1741808640,1741809663,BD
+1741809664,1741810687,CN
+1741810688,1741811711,JP
+1741811712,1741812223,IN
+1741812224,1741813759,AU
+1741813760,1741814783,ID
+1741814784,1741815807,JP
+1741815808,1741816831,CN
+1741816832,1741817855,PK
+1741817856,1741818367,PH
+1741818368,1741818879,AU
+1741818880,1741819903,PK
+1741819904,1741820927,BD
+1741820928,1741821951,PH
+1741821952,1741822975,AU
+1741822976,1741824511,IN
+1741824512,1741825023,ID
+1741825024,1741830143,IN
+1741830144,1741832191,BD
+1741832192,1741833215,IN
+1741833216,1741834239,BD
+1741834240,1741835263,IN
+1741835264,1741836287,AU
+1741836288,1741837311,IN
+1741837312,1741838335,JP
+1741838336,1741840383,IN
+1741840384,1741841407,CN
+1741841408,1741843455,IN
1742734336,1742735359,IN
1742735360,1742736383,JP
1742736384,1742737407,PK
@@ -39053,7 +40579,6 @@
1742746112,1742746623,IN
1742746624,1742747135,AU
1742747136,1742747391,IN
-1742747392,1742747647,AU
1742747648,1742748671,HK
1742748672,1742749695,CN
1742749696,1742750719,ID
@@ -39136,7 +40661,9 @@
1742835712,1742836735,JP
1742836736,1742837759,ID
1742837760,1742838783,JP
-1742838784,1742841855,AU
+1742838784,1742840831,AU
+1742840832,1742841087,US
+1742841088,1742841855,AU
1742841856,1742842367,TH
1742842368,1742843391,ID
1742843392,1742843647,IN
@@ -39159,7 +40686,6 @@
1742859264,1742860287,VN
1742860288,1742860799,AU
1742860800,1742861055,ID
-1742861056,1742861311,AU
1742861312,1742862335,NP
1742862336,1742862847,IN
1742862848,1742863359,HK
@@ -39498,7 +41024,7 @@
1743225856,1743226367,IN
1743226368,1743226623,PH
1743226624,1743226879,BD
-1743226880,1743227903,AF
+1743226880,1743227903,IR
1743227904,1743228927,HK
1743228928,1743229951,CN
1743229952,1743230975,VN
@@ -39588,6 +41114,7 @@
1743322112,1743323135,AU
1743323136,1743324159,MY
1743324160,1743325183,CN
+1743325184,1743326207,HK
1743326208,1743327231,SG
1743327232,1743328255,AU
1743328256,1743329279,NZ
@@ -39621,7 +41148,6 @@
1743355904,1743356927,CN
1743356928,1743357951,NZ
1743357952,1743358975,CN
-1743358976,1743359231,AF
1743359488,1743361023,ID
1743361024,1743362047,AU
1743362048,1743364095,ID
@@ -39783,9 +41309,7 @@
1743571200,1743571455,ID
1743571456,1743571967,AU
1743571968,1743574015,IN
-1743574016,1743574527,AU
-1743574528,1743574783,US
-1743574784,1743575039,AU
+1743574016,1743575039,US
1743575040,1743576063,HK
1743576064,1743577087,CN
1743577088,1743578111,JP
@@ -40035,7 +41559,9 @@
1743897600,1743899647,AU
1743899648,1743900671,ID
1743900672,1743901695,JP
-1743901696,1743903743,AU
+1743901696,1743902463,AU
+1743902464,1743902719,US
+1743902720,1743903743,AU
1743903744,1743904767,CN
1743904768,1743905791,IN
1743905792,1743906815,HK
@@ -40137,6 +41663,7 @@
1744006912,1744009215,IN
1744009216,1744010239,JP
1744010240,1744011263,IN
+1744011264,1744012287,HK
1744012288,1744013311,IN
1744013312,1744014335,CN
1744014336,1744015359,BD
@@ -40153,6 +41680,7 @@
1744024320,1744024575,AF
1744024576,1744025599,HK
1744025600,1744026623,IN
+1744026624,1744027647,SG
1744027648,1744028671,MY
1744028672,1744029695,JP
1744029696,1744030719,KR
@@ -40173,9 +41701,8 @@
1744046080,1744047103,SG
1744047104,1744048127,BD
1744048128,1744049151,CN
-1744049152,1744050175,BD
-1744050176,1744051199,HK
1744051200,1744052223,PH
+1744052224,1744053247,IN
1744053248,1744054271,ID
1744054272,1744055295,KR
1744055296,1744056319,HK
@@ -40269,8 +41796,8 @@
1744150528,1744151551,TO
1744151552,1744152319,LA
1744152320,1744152575,TH
-1744152576,1744153599,JP
1744153600,1744154623,NZ
+1744154624,1744154879,SG
1744154880,1744155135,ID
1744155136,1744155647,BD
1744155648,1744156671,ID
@@ -40328,7 +41855,9 @@
1744208384,1744208895,AU
1744208896,1744209919,CN
1744209920,1744210943,AU
-1744210944,1744211967,SG
+1744210944,1744211199,JP
+1744211200,1744211455,HK
+1744211456,1744211967,SG
1744211968,1744212991,KH
1744212992,1744213503,SG
1744213504,1744214015,JP
@@ -40370,7 +41899,8 @@
1744239616,1744240639,JP
1744240640,1744241663,AU
1744241664,1744242687,IN
-1744242688,1744247807,ID
+1744242688,1744245503,ID
+1744245760,1744247807,ID
1744247808,1744248831,IN
1744248832,1744249855,ID
1744249856,1744250367,HK
@@ -40516,7 +42046,8 @@
1744386560,1744387071,ID
1744387072,1744388095,NZ
1744388096,1744388607,ID
-1744388608,1744390143,AU
+1744388608,1744389631,AU
+1744389632,1744390143,RO
1744390144,1744391167,HK
1744391168,1744393215,IN
1744393216,1744394239,MY
@@ -40652,7 +42183,7 @@
1744541696,1744542719,ID
1744542720,1744543743,JP
1744543744,1744544767,CN
-1744544768,1744545791,HK
+1744544768,1744545791,NL
1744545792,1744546047,NZ
1744546048,1744547839,AU
1744547840,1744548863,AF
@@ -40672,7 +42203,7 @@
1744567296,1744568319,JP
1744568320,1744569343,VN
1744569344,1744570367,IN
-1744570880,1744571391,AU
+1744570368,1744571391,AU
1744571392,1744571903,ID
1744571904,1744572415,AU
1744572416,1744573439,HK
@@ -40681,9 +42212,9 @@
1744575488,1744576511,CN
1744577536,1744578559,CN
1744578560,1744580607,IN
-1744580608,1744580863,PH
1744580864,1744581119,SG
1744581120,1744581631,ID
+1744581632,1744582655,IN
1744582656,1744583679,AU
1744583680,1744584703,IN
1744584704,1744585727,CN
@@ -40707,7 +42238,9 @@
1744597152,1744597183,IN
1744597184,1744597215,JP
1744597216,1744598015,SG
+1744598016,1744599039,IN
1744599040,1744601087,JP
+1744601088,1744602111,TW
1744602112,1744603135,HK
1744603136,1744604159,JP
1744604160,1744607231,IN
@@ -40722,6 +42255,7 @@
1744616448,1744616959,ID
1744616960,1744617471,AU
1744617472,1744618495,IN
+1744618496,1744619519,TW
1744619520,1744620543,SG
1744620544,1744622591,CN
1744622592,1744624639,IN
@@ -40761,6 +42295,7 @@
1744656384,1744657407,VN
1744657408,1744658431,AU
1744658432,1744659455,HK
+1744659456,1744660479,JP
1744660480,1744660735,IN
1744660736,1744660991,MY
1744660992,1744661503,ID
@@ -40774,6 +42309,7 @@
1744665856,1744666111,IN
1744666112,1744666367,AU
1744666368,1744666623,PH
+1744666624,1744667647,IN
1744667648,1744668671,TH
1744668672,1744669695,NZ
1744669696,1744670719,HK
@@ -40796,6 +42332,7 @@
1744692224,1744693247,IN
1744693248,1744694271,CN
1744694272,1744695295,HK
+1744695296,1744696319,KR
1744696320,1744697343,PH
1744697344,1744698367,HK
1744698368,1744699391,KH
@@ -40846,6 +42383,7 @@
1744744448,1744745471,CN
1744745472,1744747519,NP
1744747520,1744748543,CN
+1744748544,1744749055,IN
1744749056,1744749567,NZ
1744749568,1744749823,CN
1744750592,1744752639,IN
@@ -40886,7 +42424,6 @@
1744786432,1744787455,VN
1744787456,1744789503,CN
1744789504,1744792575,IN
-1744792576,1744793599,PK
1744793600,1744794623,IN
1744794624,1744795647,KH
1744795648,1744797183,ID
@@ -40954,26 +42491,64 @@
1747304448,1747308543,CA
1747308544,1747316735,US
1747316736,1747317759,CA
-1747317760,1747485016,US
-1747485017,1747485017,NL
-1747485018,1747500223,US
+1747317760,1747484671,US
+1747484672,1747500223,NL
1747500224,1747500224,IE
-1747500225,1747517439,US
-1747517440,1747521535,BR
-1747521536,1747521791,US
-1747521792,1747522303,BR
-1747522304,1747525631,US
-1747525632,1747527679,BR
-1747527680,1747558399,US
+1747500225,1747517439,NL
+1747517440,1747533823,BR
+1747533824,1747550207,IE
+1747550208,1747558399,US
1747558400,1747566591,JP
-1747566592,1747763679,US
+1747566592,1747582975,IE
+1747582976,1747648511,US
+1747648512,1747681279,SG
+1747681280,1747738879,US
+1747738880,1747739135,SG
+1747739136,1747740415,US
+1747740416,1747740671,AU
+1747740672,1747740927,JP
+1747740928,1747741215,US
+1747741216,1747741279,IN
+1747741280,1747741311,US
+1747741312,1747741343,AT
+1747741344,1747741375,US
+1747741376,1747741407,NL
+1747741408,1747741439,BR
+1747741440,1747741471,AU
+1747741472,1747741519,US
+1747741520,1747741551,IN
+1747741552,1747741887,US
+1747741888,1747741919,CL
+1747741920,1747743487,US
+1747743488,1747743743,NL
+1747743744,1747743999,IE
+1747744000,1747744767,US
+1747744768,1747746815,SG
+1747746816,1747763519,US
+1747763520,1747763583,NL
+1747763584,1747763679,US
1747763680,1747763711,AU
-1747763712,1747767887,US
+1747763712,1747763839,HK
+1747763840,1747765983,US
+1747765984,1747766015,CA
+1747766016,1747766151,US
+1747766152,1747766159,IE
+1747766160,1747766167,HK
+1747766168,1747766207,US
+1747766208,1747766271,HK
+1747766272,1747767455,US
+1747767456,1747767487,HK
+1747767488,1747767551,US
+1747767552,1747767615,HK
+1747767616,1747767871,US
+1747767872,1747767887,IE
1747767888,1747767903,AU
1747767904,1747767919,JP
1747767920,1747767935,AU
1747767936,1747767951,JP
-1747767952,1747770623,US
+1747767952,1747770239,US
+1747770240,1747770367,IN
+1747770368,1747770623,US
1747770624,1747770655,JP
1747770656,1747770687,SG
1747770688,1747770719,JP
@@ -40981,15 +42556,37 @@
1747770752,1747770815,AT
1747770816,1747770943,US
1747770944,1747771007,SE
-1747771008,1747771071,AU
-1747771072,1747771135,OM
-1747771136,1747779583,US
-1747779584,1747795967,NL
-1747795968,1747801855,US
-1747801856,1747802111,IE
-1747802112,1747853924,US
-1747853925,1747853925,NL
-1747853926,1749061631,US
+1747771008,1747771135,AU
+1747771136,1747777679,US
+1747777680,1747777743,CA
+1747777744,1747779071,US
+1747779072,1747779135,IN
+1747779136,1747779199,SG
+1747779200,1747779583,US
+1747779584,1747800063,NL
+1747800064,1747812351,IE
+1747812352,1747847167,US
+1747847168,1747849215,IE
+1747849216,1747851263,NL
+1747851264,1747852287,HK
+1747852288,1747853311,AU
+1747853312,1747861503,NL
+1747861504,1747869695,IE
+1747869696,1747877887,US
+1747877888,1747886079,SG
+1747886080,1747894271,HK
+1747894272,1747898367,US
+1747898368,1747906559,JP
+1747906560,1747910655,AU
+1747910656,1747941887,US
+1747941888,1747942143,MY
+1747942144,1747943423,US
+1747943424,1747959807,NL
+1747959808,1747964927,US
+1747964928,1747965951,IN
+1747965952,1747966463,US
+1747966464,1747966975,IE
+1747966976,1749061631,US
1749061632,1749069823,NL
1749069824,1749094399,US
1749094400,1749098495,NL
@@ -41140,7 +42737,11 @@
1753517568,1753517823,NO
1753517824,1753522431,US
1753522432,1753522687,FR
-1753522688,1753529087,US
+1753522688,1753526015,US
+1753526016,1753526271,DE
+1753526272,1753527039,US
+1753527040,1753527295,NL
+1753527296,1753529087,US
1753529088,1753529343,NZ
1753529344,1753547007,US
1753547008,1753547263,DE
@@ -41170,9 +42771,7 @@
1754210304,1754223615,US
1754223616,1754223623,MX
1754223624,1754223631,AU
-1754223632,1754230783,US
-1754230784,1754234879,VG
-1754234880,1754251519,US
+1754223632,1754251519,US
1754251520,1754251775,LY
1754251776,1754252031,US
1754252032,1754252287,MR
@@ -41207,7 +42806,44 @@
1754333184,1754337279,CA
1754337280,1754394367,US
1754394368,1754394623,CA
-1754394624,1754792959,US
+1754394624,1754402815,US
+1754402816,1754402879,NL
+1754402880,1754402943,IE
+1754402944,1754403135,NL
+1754403136,1754403327,IE
+1754403328,1754403519,NL
+1754403520,1754403711,IE
+1754403712,1754403775,HK
+1754403776,1754403839,SG
+1754403840,1754404415,NL
+1754404416,1754404863,IE
+1754404864,1754405887,US
+1754405888,1754405903,NL
+1754405904,1754405919,IE
+1754405920,1754405951,NL
+1754405952,1754405967,IE
+1754405968,1754405983,HK
+1754405984,1754405999,SG
+1754406000,1754406031,NL
+1754406032,1754406063,IE
+1754406064,1754406399,US
+1754406400,1754406527,IE
+1754406528,1754445567,US
+1754445568,1754445823,CA
+1754445824,1754448127,US
+1754448128,1754448383,CA
+1754448384,1754448895,US
+1754448896,1754449407,JP
+1754449408,1754449919,SG
+1754449920,1754451199,NL
+1754451200,1754453247,US
+1754453248,1754453503,BR
+1754453504,1754454271,IE
+1754454272,1754455551,US
+1754455552,1754456063,HK
+1754456064,1754457087,US
+1754457088,1754457343,SG
+1754457344,1754792959,US
1754792960,1754793983,CA
1754793984,1754799103,US
1754799104,1754800127,CA
@@ -41490,7 +43126,22 @@
1758420736,1758420991,MM
1758420992,1758429695,US
1758429696,1758430207,DE
-1758430208,1759128575,US
+1758430208,1758478335,US
+1758478336,1758494719,HK
+1758494720,1758543871,US
+1758543872,1758552063,AU
+1758552064,1758609407,US
+1758609408,1758625791,AU
+1758625792,1758674943,US
+1758674944,1758724095,IN
+1758724096,1758887935,US
+1758887936,1758896127,JP
+1758896128,1758904319,HK
+1758904320,1758920703,NL
+1758920704,1758937087,JP
+1758937088,1758953471,US
+1758953472,1758986239,SG
+1758986240,1759128575,US
1759128576,1759129599,CA
1759129600,1759131647,US
1759131648,1759133695,CA
@@ -41858,9 +43509,7 @@
1761519616,1761521663,PR
1761521664,1761522687,US
1761522688,1761523711,CA
-1761523712,1761524735,US
-1761524736,1761525759,CA
-1761525760,1761526783,US
+1761523712,1761526783,US
1761526784,1761527807,CA
1761527808,1761544191,US
1761544192,1761546239,CA
@@ -42002,6 +43651,12 @@
1778384896,1778385151,CN
1778385152,1778385407,AU
1778385408,1778393087,CN
+1778393088,1778396159,IN
+1778396160,1778397183,CN
+1778397184,1778398207,ID
+1778398208,1778399231,BD
+1778399232,1778400255,IN
+1778400256,1778401279,BD
1778401280,1778417663,CN
1778417664,1778450431,TH
1778450432,1778515967,TW
@@ -42025,8 +43680,10 @@
1790967808,1793064959,IN
1793064960,1794113535,CN
1794113536,1795162111,KR
-1795162112,1795388031,US
-1795388032,1795388415,CA
+1795162112,1795387903,US
+1795387904,1795388159,CA
+1795388160,1795388287,US
+1795388288,1795388415,CA
1795388416,1795555839,US
1795555840,1795555855,CA
1795555856,1795556351,US
@@ -42043,7 +43700,9 @@
1795561984,1795562495,CA
1795562496,1795562911,US
1795562912,1795562943,CA
-1795562944,1795564031,US
+1795562944,1795563263,US
+1795563264,1795563519,CA
+1795563520,1795564031,US
1795564032,1795564543,CA
1795564544,1795565823,US
1795565824,1795566079,CA
@@ -42106,8 +43765,9 @@
1805253632,1805253887,DE
1805253888,1805254143,US
1805254144,1805254399,DE
-1805254400,1805254655,GB
-1805254656,1805582335,US
+1805254400,1805284863,US
+1805284864,1805285119,ES
+1805285120,1805582335,US
1805582336,1805647871,CA
1805647872,1805713407,US
1805713408,1805717503,CA
@@ -42121,9 +43781,7 @@
1805752576,1805753087,CA
1805753088,1805754111,US
1805754112,1805754367,CA
-1805754368,1806134015,US
-1806134016,1806134271,IN
-1806134272,1806172159,US
+1805754368,1806172159,US
1806172160,1806172415,DE
1806172416,1806172671,GB
1806172672,1806172927,DE
@@ -42288,8 +43946,8 @@
1822618368,1822619391,US
1822619392,1822620415,AU
1822620416,1822620927,US
-1822620928,1822621439,DE
-1822621440,1822654463,US
+1822620928,1822621183,DE
+1822621184,1822654463,US
1822654464,1822662143,CA
1822662144,1822662399,US
1822662400,1822670847,CA
@@ -42304,7 +43962,14 @@
1823179008,1823179263,DE
1823179264,1823180287,US
1823180288,1823180543,AU
-1823180544,1823186687,US
+1823180544,1823181055,US
+1823181056,1823181311,DK
+1823181312,1823181567,BR
+1823181568,1823181823,FR
+1823181824,1823182079,CA
+1823182080,1823182335,US
+1823182336,1823182591,SG
+1823182592,1823186687,US
1823186688,1823186943,IN
1823186944,1823211519,US
1823211520,1823342591,CA
@@ -42317,9 +43982,7 @@
1823379456,1823383551,US
1823383552,1823387647,CA
1823387648,1823428607,US
-1823428608,1823430655,CA
-1823430656,1823430911,US
-1823430912,1823432703,CA
+1823428608,1823432703,CA
1823432704,1823440895,US
1823440896,1823444991,CA
1823444992,1823465471,US
@@ -42327,58 +43990,64 @@
1823469568,1823735807,US
1823735808,1823866879,CA
1823866880,1828716543,US
-1828716544,1830106367,FR
-1830106368,1830106623,CH
-1830106624,1830813695,FR
+1828716544,1830813695,FR
1830813696,1831337983,NL
1831337984,1831862271,DE
1831862272,1832124415,PT
1832124416,1832386559,IT
1832386560,1832456959,DK
1832456960,1832457215,SE
-1832457216,1832478463,DK
-1832478464,1832478719,SE
-1832478720,1832517631,DK
+1832457216,1832517631,DK
1832517632,1832583167,SE
-1832583168,1832648703,DK
+1832583168,1832599039,DK
+1832599040,1832599167,SE
+1832599168,1832648703,DK
1832648704,1832681471,HR
1832681472,1832714239,RU
1832714240,1832747007,HU
1832747008,1832779775,RU
-1832779776,1832780799,FR
+1832779776,1832780031,FR
+1832780032,1832780287,MQ
+1832780288,1832780799,FR
1832780800,1832781055,MQ
1832781056,1832782591,FR
-1832782592,1832783103,MQ
-1832783104,1832784639,FR
+1832782592,1832782847,MQ
+1832782848,1832783103,FR
+1832783104,1832783359,MQ
+1832783360,1832784639,FR
1832784640,1832785407,GP
-1832785408,1832786943,FR
-1832786944,1832787967,GF
-1832787968,1832790527,FR
+1832785408,1832785663,FR
+1832785664,1832785919,GP
+1832785920,1832787199,FR
+1832787200,1832787967,GF
+1832787968,1832790015,FR
+1832790016,1832790271,YT
+1832790272,1832790527,FR
1832790528,1832790783,YT
-1832790784,1832794111,FR
-1832794112,1832794879,GP
-1832794880,1832795391,FR
-1832795392,1832795647,GF
-1832795648,1832796415,FR
-1832796416,1832796671,RE
-1832796672,1832796927,FR
+1832790784,1832794623,FR
+1832794624,1832794879,GP
+1832794880,1832796927,FR
1832796928,1832797183,GP
-1832797184,1832798463,FR
-1832798464,1832798975,GP
-1832798976,1832800255,FR
+1832797184,1832798719,FR
+1832798720,1832799231,GP
+1832799232,1832800255,FR
1832800256,1832800511,MQ
1832800512,1832800767,FR
1832800768,1832801535,MQ
-1832801536,1832804351,FR
-1832804352,1832804607,MQ
-1832804608,1832805119,FR
-1832805120,1832805631,MQ
+1832801536,1832803327,FR
+1832803328,1832803583,MQ
+1832803584,1832804863,FR
+1832804864,1832805119,MQ
+1832805120,1832805375,FR
+1832805376,1832805631,MQ
1832805632,1832805887,FR
1832805888,1832806399,MQ
1832806400,1832806911,GP
-1832806912,1832807167,FR
-1832807168,1832807935,GP
-1832807936,1832812543,FR
+1832806912,1832807423,FR
+1832807424,1832807679,GP
+1832807680,1832808191,FR
+1832808192,1832808447,GP
+1832808448,1832812543,FR
1832812544,1832845311,RU
1832845312,1832878079,BH
1832878080,1832910847,RU
@@ -42669,7 +44338,9 @@
1835884544,1835892735,NL
1835892736,1835909119,GB
1835909120,1835911167,RS
-1835911168,1835913215,DE
+1835911168,1835911555,DE
+1835911556,1835911559,US
+1835911560,1835913215,DE
1835913216,1835917311,RU
1835917312,1835917855,GB
1835917856,1835917863,IT
@@ -42902,37 +44573,28 @@
1836646400,1836679167,RS
1836679168,1836680703,BG
1836680704,1836681215,MK
-1836681216,1836711935,BG
+1836681216,1836687359,BG
+1836687360,1836689151,MK
+1836689152,1836711935,BG
1836711936,1836728319,UA
1836728320,1836744703,RS
1836744704,1836746495,FR
1836746496,1836746751,RE
-1836746752,1836747263,FR
-1836747264,1836748031,RE
-1836748032,1836748287,FR
-1836748288,1836748543,RE
-1836748544,1836749567,FR
-1836749568,1836750079,RE
-1836750080,1836750335,FR
-1836750336,1836750591,RE
-1836750592,1836750847,FR
-1836750848,1836751359,RE
-1836751360,1836753919,FR
-1836753920,1836754175,RE
-1836754176,1836754431,FR
-1836754432,1836754687,RE
-1836754688,1836754943,FR
-1836754944,1836755199,RE
-1836755200,1836755967,FR
-1836755968,1836756223,RE
-1836756224,1836756479,FR
-1836756480,1836756735,RE
-1836756736,1836758015,FR
-1836758016,1836758271,RE
-1836758272,1836760063,FR
-1836760064,1836760319,RE
-1836760320,1836760831,FR
-1836760832,1836761087,RE
+1836746752,1836748543,FR
+1836748544,1836748799,RE
+1836748800,1836749567,FR
+1836749568,1836749823,RE
+1836749824,1836750079,FR
+1836750080,1836750847,RE
+1836750848,1836751103,FR
+1836751104,1836751615,RE
+1836751616,1836754175,FR
+1836754176,1836754687,RE
+1836754688,1836755711,FR
+1836755712,1836755967,RE
+1836755968,1836759039,FR
+1836759040,1836759295,RE
+1836759296,1836761087,FR
1836761088,1836777471,IR
1836777472,1836793855,SI
1836793856,1836794567,GB
@@ -43058,7 +44720,11 @@
1839628288,1839661055,RO
1839661056,1839686655,UA
1839686656,1839687167,ES
-1839687168,1839693055,UA
+1839687168,1839688191,UA
+1839688192,1839688703,ES
+1839688704,1839689983,UA
+1839689984,1839690239,ES
+1839690240,1839693055,UA
1839693056,1839693311,ES
1839693312,1839693823,UA
1839693824,1839726591,RU
@@ -43194,20 +44860,19 @@
1842044928,1842053119,GB
1842053120,1842069503,IR
1842069504,1842077695,RU
-1842077696,1842078207,FR
-1842078208,1842078463,MQ
-1842078464,1842079231,FR
-1842079232,1842079743,MQ
-1842079744,1842080255,GP
-1842080256,1842080767,MQ
+1842077696,1842078463,FR
+1842078464,1842078719,MQ
+1842078720,1842079231,FR
+1842079232,1842079487,MQ
+1842079488,1842079743,FR
+1842079744,1842079999,GP
+1842080000,1842080767,MQ
1842080768,1842081023,GP
1842081024,1842081791,MQ
1842081792,1842082047,GP
-1842082048,1842082815,MQ
-1842082816,1842083327,GP
-1842083328,1842084607,MQ
-1842084608,1842084863,GP
-1842084864,1842085887,MQ
+1842082048,1842083327,MQ
+1842083328,1842083583,GP
+1842083584,1842085887,MQ
1842085888,1842118655,GB
1842118656,1842151423,FI
1842151424,1842153471,FR
@@ -43304,7 +44969,9 @@
1843789824,1843806207,SK
1843806208,1843822591,IR
1843822592,1843838975,RU
-1843838976,1843846911,DE
+1843838976,1843840767,DE
+1843840768,1843841023,SE
+1843841024,1843846911,DE
1843846912,1843847167,IR
1843847168,1843853055,DE
1843853056,1843853311,IR
@@ -43567,13 +45234,7 @@
1848393728,1848401919,JP
1848401920,1848406015,PH
1848406016,1848410111,NP
-1848410112,1848411135,JP
-1848411136,1848411391,PH
-1848411392,1848412415,JP
-1848412416,1848412671,PH
-1848412672,1848413439,JP
-1848413440,1848413951,PH
-1848413952,1848414207,JP
+1848410112,1848414207,PH
1848414208,1848418303,CN
1848418304,1848420351,AU
1848420352,1848422399,ID
@@ -43688,12 +45349,11 @@
1860733952,1860734975,AU
1860734976,1860735999,NZ
1860736000,1860737023,AU
-1860737024,1860743167,JP
-1860743168,1860743333,AU
-1860743334,1860743334,HK
-1860743335,1860743462,AU
-1860743463,1860743464,JP
-1860743465,1860744191,AU
+1860737024,1860739071,JP
+1860739072,1860743167,PH
+1860743168,1860743423,HK
+1860743424,1860743679,JP
+1860743680,1860744191,AU
1860744192,1860745215,IN
1860745216,1860746239,AU
1860746240,1860747263,PK
@@ -43807,19 +45467,31 @@
1876557824,1876688895,KR
1876688896,1876754431,AU
1876754432,1876756479,BD
-1876756480,1876761599,SG
+1876756480,1876760575,SG
+1876760576,1876761119,JP
+1876761120,1876761215,SG
+1876761216,1876761599,JP
1876761600,1876761855,CN
-1876761856,1876762623,SG
+1876761856,1876762111,HK
+1876762112,1876762623,SG
1876762624,1876764671,KR
1876764672,1876765695,ID
1876765696,1876766719,SG
1876766720,1876768767,MY
1876768768,1876769791,AU
1876769792,1876770815,JP
-1876770816,1876785407,SG
-1876785408,1876785439,HK
-1876785440,1876787199,SG
+1876770816,1876772351,HK
+1876772352,1876773887,SG
+1876773888,1876774911,HK
+1876774912,1876783103,SG
+1876783104,1876784127,HK
+1876784128,1876785151,SG
+1876785152,1876786175,HK
+1876786176,1876787199,SG
1876787200,1876885503,CN
+1876885504,1876886527,IN
+1876886528,1876890623,CN
+1876890624,1876893695,IN
1876893696,1876901887,TH
1876901888,1876918271,SG
1876918272,1876934655,LK
@@ -43867,8 +45539,7 @@
1884291072,1885863935,CN
1885863936,1885995007,TW
1885995008,1886191615,KR
-1886191616,1886195455,JP
-1886195456,1886195711,PH
+1886191616,1886195711,PH
1886195712,1886197759,ID
1886197760,1886199807,JP
1886199808,1886207999,KR
@@ -43949,7 +45620,9 @@
1896603648,1896605695,IN
1896605696,1896606719,AU
1896606720,1896607743,MY
-1896607744,1896609791,VU
+1896607744,1896609023,VU
+1896609024,1896609279,AU
+1896609280,1896609791,VU
1896609792,1896611839,SG
1896611840,1897070591,CN
1897070592,1897136127,IN
@@ -43966,7 +45639,9 @@
1897170944,1897172991,ID
1897172992,1897175039,PH
1897175040,1897176063,JP
-1897177088,1897201663,JP
+1897176064,1897177087,SG
+1897177088,1897185279,PH
+1897185280,1897201663,JP
1897201664,1897209855,KR
1897209856,1897213951,AU
1897213952,1897218047,JP
@@ -43987,13 +45662,13 @@
1897660416,1897725951,HK
1897725952,1897726463,US
1897726464,1897726527,JP
-1897726528,1897730047,US
-1897730048,1897730303,AU
-1897730304,1897730559,US
+1897726528,1897730559,US
1897730560,1897730815,AU
1897730816,1897735295,US
1897735296,1897735423,HK
-1897735424,1897758719,US
+1897735424,1897746431,US
+1897746432,1897746687,CN
+1897746688,1897758719,US
1897758720,1897779199,KR
1897779200,1897781247,AU
1897781248,1897783295,JP
@@ -44068,7 +45743,10 @@
1908756480,1908760575,KR
1908760576,1908761599,NZ
1908761600,1908762623,CN
-1908762624,1908763647,IN
+1908762624,1908762879,IN
+1908762880,1908763135,US
+1908763136,1908763391,AU
+1908763392,1908763647,US
1908763648,1908764671,ID
1908764672,1908768767,AU
1908768768,1908801535,JP
@@ -44110,6 +45788,10 @@
1914437632,1914503167,CN
1914503168,1914552319,KR
1914552320,1914560511,SG
+1914560512,1914564607,IN
+1914564608,1914566655,TW
+1914566656,1914567679,IN
+1914567680,1914568703,MY
1914568704,1914576895,KR
1914576896,1914580991,TW
1914580992,1914585087,KR
@@ -44141,7 +45823,9 @@
1916272640,1916534783,ID
1916534784,1917124607,CN
1917124608,1917169663,JP
-1917169664,1917181951,NC
+1917169664,1917172223,NC
+1917172224,1917172479,FR
+1917172480,1917181951,NC
1917181952,1917190143,IN
1917190144,1917321215,KR
1917321216,1917779967,AU
@@ -44155,7 +45839,9 @@
1919811584,1919815679,CN
1919815680,1919817727,ID
1919817728,1919819775,KR
-1919819776,1919821823,NZ
+1919819776,1919820543,NZ
+1919820544,1919820799,AU
+1919820800,1919821823,NZ
1919821824,1919823871,ID
1919823872,1919827967,JP
1919827968,1919844351,CN
@@ -44171,8 +45857,8 @@
1920002048,1920003071,CN
1920003072,1920008191,HK
1920008192,1920057343,CN
-1920057344,1920058111,HK
-1920058112,1920069631,CN
+1920057344,1920058367,HK
+1920058368,1920069631,CN
1920069632,1920071167,HK
1920071168,1920072703,CN
1920072704,1920073727,HK
@@ -44219,7 +45905,9 @@
1921867776,1921871871,AU
1921871872,1921872895,US
1921872896,1921873663,NZ
-1921873664,1921875967,US
+1921873664,1921874175,US
+1921874176,1921874687,NZ
+1921874688,1921875967,US
1921875968,1921892351,CN
1921892352,1921896447,AU
1921896448,1921898495,SG
@@ -44229,7 +45917,6 @@
1921943552,1921945599,IN
1921945600,1921949695,HK
1921949696,1921949951,AU
-1921950464,1921950719,AU
1921950976,1921951231,AU
1921953792,1921957887,JP
1921957888,1921974271,GU
@@ -44267,6 +45954,10 @@
1931739136,1932001279,JP
1932001280,1932132351,KR
1932132352,1932140543,AU
+1932140544,1932145663,IN
+1932145664,1932146687,BD
+1932146688,1932147711,CN
+1932147712,1932148735,HK
1932148736,1932152831,PK
1932152832,1932156927,TW
1932156928,1932161023,JP
@@ -44373,7 +46064,10 @@
1940357120,1940389887,JP
1940389888,1940914175,CN
1940914176,1941045247,JP
-1941045248,1941049343,HK
+1941045248,1941045759,HK
+1941045760,1941046783,JP
+1941046784,1941048319,HK
+1941048320,1941049343,SG
1941049344,1941051391,AU
1941051392,1941052415,KH
1941052416,1941053439,AU
@@ -44407,13 +46101,16 @@
1946161152,1946163199,AU
1946163200,1946165247,CN
1946165248,1946173439,PK
-1946173440,1946173695,PG
+1946173440,1946173567,PG
+1946173568,1946173599,HK
+1946173600,1946173695,PG
1946173696,1946173951,TW
1946173952,1946174463,SG
-1946174464,1946174719,TW
-1946174720,1946175487,SG
+1946174464,1946174727,TW
+1946174728,1946175487,SG
1946175488,1946175615,HK
-1946175616,1946175999,SG
+1946175616,1946175743,CN
+1946175744,1946175999,SG
1946176000,1946176255,JP
1946176256,1946176511,SG
1946176512,1946176767,AU
@@ -44442,14 +46139,14 @@
1949440000,1949442047,ID
1949442048,1949446143,TW
1949446144,1949448191,JP
-1949448192,1949449139,AU
-1949449140,1949449140,IN
-1949449141,1949449395,AU
+1949448192,1949448447,IN
+1949448448,1949448703,HK
+1949448704,1949448959,AU
+1949448960,1949449395,IN
1949449396,1949449396,HK
-1949449397,1949449471,AU
+1949449397,1949449471,IN
1949449472,1949449727,JP
-1949449728,1949450239,AU
-1949450240,1949466623,IN
+1949449728,1949466623,IN
1949466624,1949499391,PH
1949499392,1949564927,SG
1949564928,1949958143,CN
@@ -44464,8 +46161,10 @@
1950089216,1950351359,CN
1950351360,1950482431,JP
1950482432,1950515199,CN
-1950515200,1950517247,IN
-1950517248,1950518271,US
+1950515200,1950515711,IN
+1950515712,1950516223,US
+1950516224,1950516735,IN
+1950516736,1950518271,US
1950518272,1950519295,IN
1950519296,1950520319,US
1950520320,1950521343,PH
@@ -44556,7 +46255,7 @@
1958845952,1958846463,HK
1958846464,1958847487,IN
1958847488,1958848511,CN
-1958848512,1958850559,BD
+1958848512,1958848767,BD
1958850560,1958852607,CN
1958852608,1958853631,AU
1958853632,1958854655,ID
@@ -44570,7 +46269,11 @@
1959104512,1959106559,AU
1959108608,1959110655,CN
1959110656,1959112703,JP
-1959112704,1959114751,HK
+1959112704,1959113215,HK
+1959113216,1959113471,IN
+1959113472,1959113727,HK
+1959113728,1959113983,CN
+1959113984,1959114751,HK
1959114752,1959115007,IN
1959115008,1959116287,HK
1959116288,1959116543,AU
@@ -44617,7 +46320,8 @@
1960210432,1960210943,TH
1960210944,1960211455,SG
1960211456,1960211903,AU
-1960211904,1960212479,SG
+1960211904,1960211967,SG
+1960211968,1960212479,AU
1960212480,1960212582,IN
1960212583,1960212583,SG
1960212584,1960212735,IN
@@ -44666,9 +46370,8 @@
1964138496,1964146687,HK
1964146688,1964171263,JP
1964171264,1964173311,BD
-1964173312,1964173776,AU
-1964173777,1964173777,JP
-1964173778,1964173823,AU
+1964173312,1964173567,AU
+1964173568,1964173823,JP
1964173824,1964174079,HK
1964174080,1964174335,AU
1964174336,1964174591,SG
@@ -44745,7 +46448,9 @@
1969707008,1969709055,MH
1969709056,1969713151,TW
1969713152,1969715199,AU
-1969715200,1969717247,IN
+1969715200,1969716223,SG
+1969716224,1969716735,HK
+1969716736,1969717247,IN
1969717248,1969721343,CN
1969721344,1969725439,HK
1969725440,1969727487,JP
@@ -44756,8 +46461,10 @@
1969790976,1969793023,AU
1969793024,1969795071,CN
1969795072,1969797119,NZ
-1969797120,1969798143,SG
-1969798144,1969799167,HK
+1969797120,1969797631,SG
+1969797632,1969798143,BD
+1969798144,1969798399,CN
+1969798400,1969799167,HK
1969799168,1969807359,ID
1969807360,1969809407,AF
1969809408,1969811455,IN
@@ -44771,9 +46478,10 @@
1970800640,1970802943,AU
1970802944,1970803199,SG
1970803200,1970803711,AU
-1970803712,1970803967,HK
-1970803968,1970804479,AU
-1970804480,1970804735,SG
+1970803712,1970804223,HK
+1970804224,1970804519,AU
+1970804520,1970804520,SG
+1970804521,1970804735,AU
1970804736,1970806783,KH
1970806784,1970808831,NZ
1970808832,1970810879,AU
@@ -44849,6 +46557,11 @@
1986461696,1986496511,JP
1986496512,1986498559,BT
1986498560,1986502655,HK
+1986502656,1986503679,IN
+1986503680,1986507775,CN
+1986507776,1986508799,SG
+1986508800,1986509823,AU
+1986509824,1986510847,JP
1986510848,1986519039,KR
1986519040,1986523135,PK
1986523136,1986523904,HK
@@ -44862,7 +46575,6 @@
1986762752,1986764799,JP
1986764800,1986768895,KR
1986768896,1986769919,SG
-1986769920,1986770943,IR
1986770944,1986772991,AU
1986772992,1986789375,MY
1986789376,1987051519,JP
@@ -44886,9 +46598,7 @@
1989662720,1989663743,AU
1989663744,1989664767,ID
1989664768,1990197247,JP
-1990197248,1990448639,TW
-1990448640,1990448895,CN
-1990448896,1990983679,TW
+1990197248,1990983679,TW
1990983680,1991245823,TH
1991245824,1991311359,KR
1991311360,1991376895,JP
@@ -44947,7 +46657,9 @@
1997406208,1997471743,TW
1997471744,1997479935,NZ
1997479936,1997488127,JP
-1997488128,1997492223,AU
+1997488128,1997488383,AU
+1997488384,1997488639,NZ
+1997488640,1997492223,AU
1997492224,1997496319,KH
1997496320,1997500415,AU
1997500416,1997504511,JP
@@ -44985,7 +46697,9 @@
1998272432,1998272447,JP
1998272448,1998272547,SG
1998272548,1998272551,JP
-1998272552,1998274559,SG
+1998272552,1998274047,SG
+1998274048,1998274303,US
+1998274304,1998274559,SG
1998274560,1998454783,CN
1998454784,1998456831,AU
1998456832,1998458879,JP
@@ -45072,7 +46786,9 @@
2001829888,2001841247,HK
2001841248,2001841248,SA
2001841249,2001846271,HK
-2001846272,2001855231,SG
+2001846272,2001855119,SG
+2001855120,2001855135,US
+2001855136,2001855231,SG
2001855232,2001855263,US
2001855264,2001855743,SG
2001855744,2001855999,HK
@@ -45094,8 +46810,7 @@
2001859072,2001859327,HK
2001859328,2001860015,SG
2001860016,2001860031,US
-2001860032,2001860047,HK
-2001860048,2001860143,SG
+2001860032,2001860143,SG
2001860144,2001860159,US
2001860160,2001860263,SG
2001860264,2001860271,US
@@ -45176,7 +46891,8 @@
2007023616,2007025663,IN
2007025664,2007027711,CN
2007027712,2007031807,TH
-2007031808,2007035903,AU
+2007031808,2007033855,NZ
+2007033856,2007035903,AU
2007035904,2007039999,TW
2007040000,2007048191,KR
2007048192,2007064575,AU
@@ -45274,8 +46990,8 @@
2019035136,2019037183,CN
2019037184,2019041279,JP
2019041280,2019045375,IN
-2019045376,2019045887,US
-2019045888,2019049471,JP
+2019045376,2019045631,US
+2019045632,2019049471,JP
2019049472,2019078143,AU
2019078144,2019082239,IN
2019082240,2019098623,HK
@@ -45343,7 +47059,15 @@
2030436352,2030567423,SG
2030567424,2032926719,CN
2032926720,2033057791,AU
-2033057792,2033319935,CN
+2033057792,2033074175,CN
+2033074176,2033075199,PK
+2033075200,2033077247,BD
+2033077248,2033078271,CN
+2033078272,2033079295,HK
+2033079296,2033088511,IN
+2033088512,2033089535,AU
+2033089536,2033090559,IN
+2033090560,2033319935,CN
2033319936,2033321983,IN
2033321984,2033324031,CN
2033324032,2033328127,KR
@@ -45483,9 +47207,18 @@
2050091008,2050097151,JP
2050097152,2050101247,SG
2050101248,2050113535,JP
-2050113536,2050129663,SG
-2050129664,2050129727,JP
-2050129728,2050129919,SG
+2050113536,2050122239,SG
+2050122240,2050122495,JP
+2050122496,2050122751,SG
+2050122752,2050122879,JP
+2050122880,2050126079,SG
+2050126080,2050126207,JP
+2050126208,2050126591,SG
+2050126592,2050126719,JP
+2050126720,2050126783,SG
+2050126784,2050126975,JP
+2050126976,2050129663,SG
+2050129664,2050129919,JP
2050129920,2050162687,IN
2050162688,2050228223,CN
2050228224,2050490367,PH
@@ -45611,7 +47344,7 @@
2060062720,2060066815,JP
2060066816,2060075007,KR
2060075008,2060083199,AU
-2060083200,2060091391,JP
+2060083200,2060091391,PH
2060091392,2060189695,KR
2060189696,2060451839,CN
2060451840,2061500415,JP
@@ -45639,10 +47372,8 @@
2063118080,2063118335,PH
2063118336,2063118591,IN
2063118592,2063119871,JP
-2063119872,2063120127,IN
-2063120128,2063120895,JP
-2063120896,2063121151,AU
-2063121152,2063122431,JP
+2063119872,2063120383,IN
+2063120384,2063122431,JP
2063122432,2063138815,SG
2063138816,2063335423,JP
2063335424,2063341567,AU
@@ -45658,7 +47389,11 @@
2063392768,2063400959,IN
2063400960,2063466495,JP
2063466496,2063482879,TW
-2063482880,2063499263,MN
+2063482880,2063483135,MN
+2063483136,2063483391,JP
+2063483392,2063486975,MN
+2063486976,2063487231,JP
+2063487232,2063499263,MN
2063499264,2063532031,KR
2063532032,2063548415,LK
2063548416,2063550463,CN
@@ -45854,8 +47589,10 @@
2082340864,2082406399,IN
2082406400,2082471935,CN
2082471936,2083007231,JP
-2083007232,2083007999,US
-2083008000,2083024895,JP
+2083007232,2083007487,US
+2083007488,2083008511,JP
+2083008512,2083008767,US
+2083008768,2083024895,JP
2083024896,2083053567,CN
2083053568,2083057663,TH
2083057664,2083058687,CN
@@ -45906,14 +47643,19 @@
2087464960,2087467007,KH
2087467008,2087471103,JP
2087471104,2087472127,SG
-2087472128,2087476223,HK
+2087472128,2087472639,HK
+2087472640,2087473151,SG
+2087473152,2087474687,HK
+2087474688,2087475199,JP
+2087475200,2087476223,HK
2087476224,2087477247,TW
2087477248,2087478271,AU
2087478272,2087485439,HK
2087485440,2087501823,TW
2087501824,2087518207,JP
2087518208,2087519231,TH
-2087519232,2087520255,SG
+2087519232,2087519999,SG
+2087520000,2087520255,PH
2087520256,2087522303,FM
2087524352,2087526399,TH
2087526400,2087534591,PK
@@ -45991,7 +47733,9 @@
2094596096,2094628863,PH
2094628864,2094645247,HK
2094645248,2094653439,KR
-2094653440,2094661631,MY
+2094653440,2094656767,MY
+2094656768,2094657535,SG
+2094657536,2094661631,MY
2094661632,2094759935,TW
2094759936,2094792703,JP
2094792704,2096152575,CN
@@ -46092,8 +47836,8 @@
2111275008,2111307775,HK
2111307776,2111832063,CN
2111832064,2112082431,TW
-2112082432,2112083199,CN
-2112083200,2112487423,TW
+2112082432,2112082943,CN
+2112082944,2112487423,TW
2112487424,2112618495,VN
2112618496,2112880639,NZ
2112880640,2113560063,KR
@@ -46105,9 +47849,9 @@
2113685664,2113685695,SG
2113685696,2113687295,JP
2113687296,2113687551,AU
-2113687552,2113687807,JP
-2113687808,2113688063,AU
-2113688064,2113688959,JP
+2113687552,2113687999,JP
+2113688000,2113688031,AU
+2113688032,2113688959,JP
2113688960,2113688991,SG
2113688992,2113691135,JP
2113691136,2113691391,SG
@@ -46131,7 +47875,9 @@
2113813504,2113830911,AU
2113830912,2113863679,CN
2113863680,2113929215,AU
-2113929216,2130706431,JP
+2113929216,2119228927,JP
+2119228928,2119229183,ES
+2119229184,2130706431,JP
2147483648,2147485695,RO
2147485696,2147487743,DK
2147487744,2147489791,NO
@@ -46161,10 +47907,12 @@
2147528704,2147532799,CZ
2147532800,2147534847,DE
2147534848,2147536895,CY
-2147536896,2147538431,GR
+2147536896,2147537151,GR
+2147537152,2147537407,CY
+2147537408,2147538431,GR
2147538432,2147538943,CY
-2147538944,2147540991,GR
-2147540992,2147549183,CY
+2147538944,2147540479,GR
+2147540480,2147549183,CY
2147549184,2147942399,US
2147942400,2148007935,DE
2148007936,2148532223,US
@@ -46187,9 +47935,7 @@
2151778304,2151780351,RU
2151780352,2151782399,DE
2151782400,2151784447,ES
-2151784448,2151788479,IR
-2151788480,2151788495,IQ
-2151788496,2151792639,IR
+2151784448,2151792639,IR
2151792640,2151794687,CH
2151794688,2151796735,IT
2151796736,2151797759,DE
@@ -46215,9 +47961,12 @@
2153385920,2153385983,US
2153385984,2153387007,GB
2153387008,2153387263,CH
-2153387264,2153387775,US
+2153387264,2153387519,IS
+2153387520,2153387775,IE
2153387776,2153388031,CH
-2153388032,2153396991,US
+2153388032,2153388287,ES
+2153388288,2153388543,PL
+2153388544,2153396991,US
2153396992,2153397247,IL
2153397248,2153397503,IN
2153397504,2153397759,SA
@@ -46372,7 +48121,9 @@
2168651776,2168717311,GB
2168717312,2168782847,US
2168782848,2168913919,DE
-2168913920,2169372671,US
+2168913920,2169235967,US
+2169235968,2169236031,NL
+2169236032,2169372671,US
2169372672,2169438207,AU
2169438208,2170028031,US
2170028032,2170093567,FR
@@ -46455,7 +48206,21 @@
2180448256,2180513791,DE
2180513792,2180579327,US
2180579328,2180644863,JP
-2180644864,2180907007,US
+2180644864,2180645417,US
+2180645418,2180645418,ES
+2180645419,2180645769,US
+2180645770,2180645770,DE
+2180645771,2180645991,US
+2180645992,2180645992,ES
+2180645993,2180646024,US
+2180646025,2180646025,GB
+2180646026,2180646616,US
+2180646617,2180646617,DE
+2180646618,2180646952,US
+2180646953,2180646953,ES
+2180646954,2180649005,US
+2180649006,2180649006,ES
+2180649007,2180907007,US
2180907008,2180972543,KR
2180972544,2181038079,US
2181038080,2181040127,GB
@@ -46563,9 +48328,9 @@
2188725248,2188725503,GB
2188725504,2188728319,US
2188728320,2188728575,GB
-2188728576,2188729855,US
-2188729856,2188730111,ES
-2188730112,2188736511,US
+2188728576,2188729599,US
+2188729600,2188730367,ES
+2188730368,2188736511,US
2188736512,2188736767,GB
2188736768,2188738306,US
2188738307,2188738307,GB
@@ -46573,7 +48338,9 @@
2188749184,2188749311,SL
2188749312,2188754431,US
2188754432,2188754687,RU
-2188754688,2188902399,US
+2188754688,2188763647,US
+2188763648,2188763903,IT
+2188763904,2188902399,US
2188902400,2188967935,FR
2188967936,2189099007,US
2189099008,2189164543,NZ
@@ -46627,7 +48394,9 @@
2193209344,2193211391,FR
2193211392,2193223423,BG
2193223424,2193223679,GB
-2193223680,2193227775,BG
+2193223680,2193226495,BG
+2193226496,2193226751,GB
+2193226752,2193227775,BG
2193227776,2193293311,IT
2193293312,2193358847,US
2193358848,2193424383,FI
@@ -47001,7 +48770,11 @@
2214068224,2214133759,JP
2214133760,2214264831,US
2214264832,2214330367,GB
-2214330368,2214461439,US
+2214330368,2214429375,US
+2214429376,2214429439,NL
+2214429440,2214441791,US
+2214441792,2214441823,NL
+2214441824,2214461439,US
2214461440,2214526975,FR
2214526976,2214527999,BR
2214528000,2214529023,AR
@@ -47084,7 +48857,95 @@
2230607872,2230637567,GB
2230637568,2230638591,SG
2230638592,2230648831,GB
-2230648832,2230714367,US
+2230648832,2230649695,US
+2230649696,2230649727,IE
+2230649728,2230653063,US
+2230653064,2230653135,BR
+2230653136,2230655559,US
+2230655560,2230655711,IE
+2230655712,2230655775,US
+2230655776,2230655791,IE
+2230655792,2230658143,US
+2230658144,2230658159,AT
+2230658160,2230658175,IE
+2230658176,2230665295,US
+2230665296,2230665359,SG
+2230665360,2230666031,US
+2230666032,2230666063,SG
+2230666064,2230666479,US
+2230666480,2230666495,NL
+2230666496,2230666559,SG
+2230666560,2230672407,US
+2230672408,2230672415,IE
+2230672416,2230672431,US
+2230672432,2230672575,IE
+2230672576,2230681599,US
+2230681600,2230682247,HK
+2230682248,2230682343,JP
+2230682344,2230682351,HK
+2230682352,2230682383,JP
+2230682384,2230682415,HK
+2230682416,2230682431,JP
+2230682432,2230682511,HK
+2230682512,2230682543,JP
+2230682544,2230682607,US
+2230682608,2230685695,HK
+2230685696,2230685727,AT
+2230685728,2230685759,HK
+2230685760,2230685855,JP
+2230685856,2230685903,HK
+2230685904,2230685935,US
+2230685936,2230687743,HK
+2230687744,2230688255,US
+2230688256,2230688767,SG
+2230688768,2230689791,BR
+2230689792,2230689999,SG
+2230690000,2230690007,AU
+2230690008,2230690463,SG
+2230690464,2230690639,AU
+2230690640,2230690679,SG
+2230690680,2230690823,AU
+2230690824,2230690831,SG
+2230690832,2230690863,AU
+2230690864,2230690959,SG
+2230690960,2230690975,AU
+2230690976,2230691007,SG
+2230691008,2230691039,MY
+2230691040,2230691071,AU
+2230691072,2230691199,SG
+2230691200,2230691215,AU
+2230691216,2230693887,SG
+2230693888,2230693919,NL
+2230693920,2230694063,US
+2230694064,2230694095,NL
+2230694096,2230697983,US
+2230697984,2230698903,NL
+2230698904,2230698999,FI
+2230699000,2230699007,NL
+2230699008,2230699039,FI
+2230699040,2230702079,NL
+2230702080,2230707199,IE
+2230707200,2230707711,NL
+2230707712,2230710671,US
+2230710672,2230710719,BR
+2230710720,2230710735,US
+2230710736,2230710751,BR
+2230710752,2230710783,KR
+2230710784,2230710799,US
+2230710800,2230710831,BR
+2230710832,2230710847,US
+2230710848,2230710879,BR
+2230710880,2230711599,US
+2230711600,2230711615,IN
+2230711616,2230711631,US
+2230711632,2230711695,IN
+2230711696,2230713663,US
+2230713664,2230713695,HK
+2230713696,2230714047,US
+2230714048,2230714079,BR
+2230714080,2230714255,US
+2230714256,2230714287,BR
+2230714288,2230714367,US
2230714368,2230779903,CA
2230779904,2230910975,MX
2230910976,2231042047,US
@@ -47219,7 +49080,11 @@
2256551936,2256601087,GB
2256601088,2256666623,US
2256666624,2256732159,DE
-2256732160,2257190911,US
+2256732160,2256805375,US
+2256805376,2256805631,CA
+2256805632,2256812031,US
+2256812032,2256812287,GB
+2256812288,2257190911,US
2257190912,2257256447,SE
2257256448,2257453055,US
2257453056,2257518591,GB
@@ -47386,11 +49251,13 @@
2258608656,2258608663,JP
2258608664,2258608671,AU
2258608672,2258608687,JP
-2258608688,2258610179,AU
+2258608688,2258610175,AU
+2258610176,2258610179,GB
2258610180,2258610183,IN
-2258610184,2258610239,AU
+2258610184,2258610239,GB
2258610240,2258610303,IN
-2258610304,2258610703,AU
+2258610304,2258610431,GB
+2258610432,2258610703,AU
2258610704,2258610719,TW
2258610720,2258610751,AU
2258610752,2258610755,TW
@@ -47420,13 +49287,32 @@
2258632704,2258698239,JP
2258698240,2259222527,US
2259222528,2259288063,DE
-2259288064,2259304703,US
-2259304704,2259304719,NL
-2259304720,2259343391,US
-2259343392,2259343423,HK
-2259343424,2259343743,US
-2259343744,2259343775,BR
-2259343776,2259353599,US
+2259288064,2259298303,US
+2259298304,2259300351,IE
+2259300352,2259304447,US
+2259304448,2259308543,NL
+2259308544,2259312639,IE
+2259312640,2259314687,NL
+2259314688,2259320831,US
+2259320832,2259322879,SG
+2259322880,2259324927,HK
+2259324928,2259331071,US
+2259331072,2259333119,IE
+2259333120,2259337215,US
+2259337216,2259339263,HK
+2259339264,2259340287,US
+2259340288,2259340799,NL
+2259340800,2259341311,IE
+2259341312,2259342335,US
+2259342336,2259342847,NL
+2259342848,2259343359,IE
+2259343360,2259343615,HK
+2259343616,2259343871,BR
+2259343872,2259348479,US
+2259348480,2259348991,NL
+2259348992,2259352575,US
+2259352576,2259353343,IE
+2259353344,2259353599,US
2259353600,2259419135,DE
2259419136,2259615743,US
2259681280,2259746815,DE
@@ -47453,7 +49339,9 @@
2261254144,2261385215,US
2261385216,2261450751,PR
2261450752,2261516287,NL
-2261516288,2261647359,US
+2261516288,2261569535,US
+2261569536,2261569791,TH
+2261569792,2261647359,US
2261647360,2261712895,FR
2261712896,2261778431,US
2261778432,2261843967,TW
@@ -47530,23 +49418,19 @@
2280982528,2280982783,US
2280982784,2280983039,FR
2280983040,2280983295,US
-2280983296,2280992779,FR
-2280992780,2280992781,CA
-2280992782,2280993023,FR
-2280993024,2280993035,CA
-2280993036,2280993036,US
-2280993037,2280993279,CA
+2280983296,2280992767,FR
+2280992768,2280993279,US
2280993280,2280998911,FR
2280998912,2280999167,US
2280999168,2281007103,FR
2281007104,2281007359,IN
2281007360,2281023487,FR
2281023488,2281023743,IN
-2281023744,2281701375,FR
+2281023744,2281037823,FR
+2281037824,2281038079,US
+2281038080,2281701375,FR
2281701376,2281705471,CH
-2281705472,2281705727,US
-2281705728,2281705983,CN
-2281705984,2282226175,US
+2281705472,2282226175,US
2282226176,2282226243,AU
2282226244,2282226245,US
2282226246,2282226246,AU
@@ -47600,7 +49484,9 @@
2297233408,2297298943,US
2297298944,2297364479,CH
2297364480,2297626623,US
-2297626624,2297692159,DE
+2297626624,2297661437,DE
+2297661438,2297661438,NL
+2297661439,2297692159,DE
2297692160,2299461631,US
2299461632,2299527167,CA
2299527168,2299592703,US
@@ -47626,13 +49512,41 @@
2302349312,2302351359,HK
2302351360,2302357503,VN
2302357504,2302358527,BD
-2302358528,2302363647,IN
-2302363648,2302364671,JP
-2302364672,2302365695,IN
+2302358528,2302365695,IN
2302365696,2302366719,HK
2302366720,2302367743,IN
2302367744,2302368767,CN
-2302368768,2302369791,IN
+2302368768,2302370815,IN
+2302370816,2302371839,HK
+2302371840,2302372863,VN
+2302372864,2302373887,MY
+2302373888,2302374911,TH
+2302374912,2302375935,VN
+2302375936,2302376959,AF
+2302376960,2302377983,ID
+2302377984,2302382079,IN
+2302382080,2302383103,PK
+2302383104,2302384127,HK
+2302384128,2302385151,BD
+2302385152,2302386175,IN
+2302386176,2302387199,ID
+2302387200,2302388223,IN
+2302388224,2302389247,NZ
+2302389248,2302391295,IN
+2302391296,2302392319,BD
+2302392320,2302393343,HK
+2302393344,2302394367,AU
+2302394368,2302395391,PK
+2302395392,2302396415,AU
+2302396416,2302398463,IN
+2302398464,2302399487,HK
+2302399488,2302400511,IN
+2302400512,2302404607,PK
+2302404608,2302405631,JP
+2302405632,2302406655,HK
+2302406656,2302408703,IN
+2302408704,2302409727,AU
+2302409728,2302410751,JP
2302410752,2302541823,SE
2302541824,2302607359,CH
2302607360,2302625761,SC
@@ -47666,10 +49580,15 @@
2305687552,2305753087,US
2305753088,2305818623,AU
2305818624,2306015231,US
-2306080768,2306129919,US
+2306080768,2306113535,US
+2306113536,2306121727,SG
+2306121728,2306125823,HK
+2306125824,2306129919,US
2306129920,2306138111,NL
2306138112,2306146303,IE
-2306146304,2306342911,US
+2306146304,2306179071,US
+2306179072,2306211839,NL
+2306211840,2306342911,US
2306342912,2306408447,NL
2306408448,2306473983,FR
2306473984,2306539519,CA
@@ -47678,7 +49597,9 @@
2306998272,2307129343,US
2307129344,2307194879,SG
2307194880,2307260415,NO
-2307260416,2307522559,US
+2307260416,2307358719,US
+2307358720,2307391487,IE
+2307391488,2307522559,US
2307522560,2307588095,CH
2307588096,2308112383,US
2308112384,2308177919,AU
@@ -47774,8 +49695,9 @@
2316042240,2316173311,US
2316173312,2316238847,SE
2316238848,2316500991,US
-2316500992,2316533759,AU
-2316533760,2316566527,HK
+2316500992,2316505855,HK
+2316505856,2316506111,AU
+2316506112,2316566527,HK
2316566528,2316613887,US
2316613888,2316614143,GB
2316614144,2316632063,US
@@ -47858,7 +49780,7 @@
2319164416,2319165439,PY
2319165440,2319167487,AR
2319167488,2319168511,HN
-2319168512,2319174655,BR
+2319169536,2319174655,BR
2319174656,2319175679,HN
2319175680,2319184895,BR
2319184896,2319185919,AR
@@ -47881,9 +49803,11 @@
2320433152,2320564223,AU
2320564224,2320629759,CH
2320629760,2320695295,CA
-2320695296,2321223679,US
-2321223680,2321227775,JP
-2321227776,2321416191,US
+2320695296,2321219583,US
+2321219584,2321227775,JP
+2321227776,2321231871,SG
+2321231872,2321235967,IE
+2321235968,2321416191,US
2321416192,2321417215,CO
2321417216,2321419263,BR
2321419264,2321420287,AR
@@ -47898,7 +49822,9 @@
2321447936,2321452031,BR
2321452032,2321453055,MX
2321453056,2321454079,HN
-2321454080,2321471487,BR
+2321454080,2321467136,BR
+2321467137,2321467137,US
+2321467138,2321471487,BR
2321471488,2321472511,HN
2321472512,2321477631,BR
2321477632,2321478655,TT
@@ -47967,7 +49893,7 @@
2321799168,2321800191,BZ
2321800192,2321801215,VE
2321801216,2321802239,CL
-2321802240,2321804287,BR
+2321803264,2321804287,BR
2321804288,2321805311,DO
2321805312,2321809407,BR
2321809408,2321874943,ES
@@ -48101,9 +50027,7 @@
2323690496,2323690751,IN
2323690752,2323699711,US
2323699712,2323700735,NL
-2323700736,2323701759,US
-2323701760,2323709951,VG
-2323709952,2323775487,US
+2323700736,2323775487,US
2323775488,2323841023,AU
2323841024,2323906559,CH
2323906560,2323972095,IT
@@ -48302,6 +50226,7 @@
2332032000,2332033023,AW
2332033024,2332098559,ID
2332098560,2332360703,DE
+2332360704,2332368895,IN
2332426240,2332622847,DE
2332622848,2332688383,CN
2332688384,2332753919,NL
@@ -48320,7 +50245,7 @@
2335637504,2335768575,US
2335768576,2335834111,CA
2335834112,2335899647,SE
-2335899648,2335965183,AU
+2335899648,2335965183,SG
2335965184,2336161791,US
2336161792,2336227327,NL
2336292864,2336358399,US
@@ -48365,9 +50290,7 @@
2338848768,2338914303,US
2338914304,2339962879,NO
2339962880,2340028415,US
-2340028416,2340081663,SE
-2340081664,2340081919,BR
-2340081920,2340093951,SE
+2340028416,2340093951,SE
2340093952,2340159487,FI
2340159488,2340225023,FR
2340225024,2340421631,US
@@ -48406,9 +50329,13 @@
2342700248,2342700248,GB
2342700249,2342701408,US
2342701409,2342701409,GB
-2342701410,2342705120,US
+2342701410,2342704912,US
+2342704913,2342704913,GB
+2342704914,2342705120,US
2342705121,2342705121,GB
-2342705122,2342715391,US
+2342705122,2342706194,US
+2342706195,2342706195,GB
+2342706196,2342715391,US
2342715392,2342780927,AU
2342780928,2342846463,NO
2342846464,2342911999,BE
@@ -48472,7 +50399,9 @@
2355036160,2355101695,US
2355101696,2355167231,TW
2355167232,2355232767,GB
-2355232768,2355691519,US
+2355232768,2355467263,US
+2355467264,2355467519,AU
+2355467520,2355691519,US
2355691520,2355757055,IT
2355757056,2355953663,US
2355953664,2357919743,TW
@@ -48599,7 +50528,10 @@
2371289088,2371616767,DE
2371616768,2371682303,GB
2371682304,2371747839,NL
-2371747840,2371878911,GB
+2371747840,2371813887,GB
+2371813888,2371814143,US
+2371814144,2371814144,CH
+2371814145,2371878911,GB
2371878912,2371944447,BE
2371944448,2372009983,GB
2372075520,2372206591,DE
@@ -48653,9 +50585,7 @@
2372507648,2372509695,IT
2372509696,2372510335,AE
2372510336,2372510336,ES
-2372510337,2372510719,AE
-2372510720,2372510975,AO
-2372510976,2372511743,AE
+2372510337,2372511743,AE
2372511744,2372513791,BA
2372513792,2372534271,GB
2372534272,2372665343,US
@@ -48770,9 +50700,7 @@
2378432512,2378498047,TR
2378498048,2378500607,US
2378500608,2378500863,GB
-2378500864,2378504191,US
-2378504192,2378504447,NL
-2378504448,2378694655,US
+2378500864,2378694655,US
2378694656,2378760191,DE
2378760192,2378825727,AT
2378825728,2378891263,US
@@ -48802,15 +50730,66 @@
2381709312,2381905919,US
2381905920,2381971455,CH
2381971456,2382036991,IT
-2382036992,2382102527,US
+2382036992,2382066943,US
+2382066944,2382067007,IE
+2382067008,2382067199,US
+2382067200,2382067263,IE
+2382067264,2382067455,US
+2382067456,2382067519,IE
+2382067520,2382067711,US
+2382067712,2382067775,IE
+2382067776,2382067967,US
+2382067968,2382068031,IE
+2382068032,2382068223,US
+2382068224,2382068287,IE
+2382068288,2382068479,US
+2382068480,2382068543,IE
+2382068544,2382068735,US
+2382068736,2382068799,IE
+2382068800,2382068991,US
+2382068992,2382069055,IE
+2382069056,2382084799,US
+2382084800,2382084863,IE
+2382084864,2382085055,US
+2382085056,2382085119,IE
+2382085120,2382085247,US
+2382085248,2382085311,AT
+2382085312,2382085375,IE
+2382085376,2382085567,US
+2382085568,2382085631,IE
+2382085632,2382085823,US
+2382085824,2382085887,IE
+2382085888,2382086079,US
+2382086080,2382086143,IE
+2382086144,2382086335,US
+2382086336,2382086399,IE
+2382086400,2382086591,US
+2382086592,2382086655,IE
+2382086656,2382086847,US
+2382086848,2382086911,IE
+2382086912,2382087103,US
+2382087104,2382087167,IE
+2382087168,2382087423,US
+2382087424,2382087487,SG
+2382087488,2382087551,HK
+2382087552,2382087615,SG
+2382087616,2382087679,HK
+2382087680,2382088959,SG
+2382088960,2382093567,US
+2382093568,2382093823,SG
+2382093824,2382099455,US
+2382099456,2382099583,SG
+2382099584,2382099647,US
+2382099648,2382099711,HK
+2382099712,2382102015,US
+2382102016,2382102079,IE
+2382102080,2382102527,US
2382102528,2382168063,NL
2382168064,2382233599,BE
2382233600,2382299135,US
2382299136,2382331903,GR
2382331904,2382335999,FR
-2382336000,2382337279,NL
-2382337280,2382337535,FR
-2382337536,2382340095,NL
+2382336000,2382340095,NL
2382340096,2382342143,CH
2382342144,2382344191,AT
2382344192,2382346239,NL
@@ -48842,7 +50821,11 @@
2382677992,2382678015,CA
2382678016,2382678527,US
2382678528,2382679039,CA
-2382679040,2382680063,US
+2382679040,2382679150,US
+2382679151,2382679151,IO
+2382679152,2382679342,US
+2382679343,2382679343,IO
+2382679344,2382680063,US
2382680064,2382684159,CA
2382684160,2382692351,US
2382692352,2383085567,CA
@@ -48921,7 +50904,11 @@
2392025088,2392063999,US
2392064000,2392096767,CA
2392096768,2392129535,US
-2392129536,2394947583,CA
+2392129536,2393356671,CA
+2393356672,2393356799,US
+2393356800,2393357951,CA
+2393357952,2393358079,US
+2393358080,2394947583,CA
2394947584,2395013119,US
2395013120,2395209727,CA
2395209728,2395340799,US
@@ -49152,7 +51139,9 @@
2415918080,2415919103,BR
2415919104,2415984639,CN
2416050176,2416058367,US
-2416058368,2416084991,NL
+2416058368,2416076543,NL
+2416076544,2416076799,CH
+2416076800,2416084991,NL
2416084992,2416085247,AU
2416085248,2416085503,NL
2416085504,2416085759,US
@@ -49166,9 +51155,7 @@
2416377856,2416443391,CN
2416443392,2416705535,US
2416705536,2416771071,CN
-2416771072,2416916479,US
-2416916480,2416916735,AU
-2416916736,2416967679,US
+2416771072,2416967679,US
2416967680,2417033215,IN
2417033216,2417229823,US
2417229824,2417295359,ES
@@ -49398,9 +51385,7 @@
2429878272,2429943807,JP
2429943808,2430009343,HK
2430009344,2430205951,US
-2430271488,2431846143,US
-2431846144,2431846399,GB
-2431846400,2432172031,US
+2430271488,2432172031,US
2432172032,2432237567,BE
2432237568,2432616447,US
2432616448,2432617471,NL
@@ -49411,9 +51396,7 @@
2433247488,2433810431,NL
2433810432,2433875967,GB
2433875968,2435055615,NL
-2435055616,2435071743,GB
-2435071744,2435071999,NL
-2435072000,2435121151,GB
+2435055616,2435121151,GB
2435121152,2436300799,NL
2436300800,2436366335,GB
2436366336,2436759551,NL
@@ -49423,11 +51406,17 @@
2436775936,2436784127,DE
2436784128,2436825087,GB
2436825088,2441150463,NL
-2441150464,2441215999,BE
+2441150464,2441163519,BE
+2441163520,2441163775,NL
+2441163776,2441215999,BE
2441216000,2446983167,NL
2447048704,2447376383,NL
-2447376384,2447441919,GB
-2447441920,2447507455,DE
+2447376384,2447384575,GB
+2447384576,2447384831,BE
+2447384832,2447441919,GB
+2447441920,2447444991,DE
+2447444992,2447445247,ZA
+2447445248,2447507455,DE
2447507456,2447572991,FR
2447572992,2447638527,GB
2447638528,2447704063,DE
@@ -49455,7 +51444,8 @@
2448851968,2448883711,GB
2448883712,2448949247,FI
2448949248,2449014783,FR
-2449014784,2449045503,RU
+2449014784,2449031167,IR
+2449031168,2449045503,RU
2449045504,2449080319,KZ
2449080320,2449145855,CH
2449145856,2449211391,SE
@@ -49558,7 +51548,13 @@
2454851840,2454852863,US
2454852864,2454853119,BE
2454853120,2454853375,DK
-2454853376,2454887423,US
+2454853376,2454855935,US
+2454855936,2454856169,GB
+2454856170,2454856170,US
+2454856171,2454856191,GB
+2454856192,2454864895,US
+2454864896,2454865151,GB
+2454865152,2454887423,US
2454887424,2454887679,DK
2454887680,2454905919,US
2454905920,2454905951,AR
@@ -49570,7 +51566,6 @@
2455175168,2455240703,GB
2455240704,2455244799,US
2455244800,2455245567,AU
-2455245568,2455245823,SG
2455245824,2455246847,AU
2455246848,2455247871,IN
2455247872,2455248127,AU
@@ -49582,7 +51577,9 @@
2455263232,2455265279,PH
2455265280,2455273471,US
2455273472,2455275519,AU
-2455275520,2455279615,US
+2455275520,2455278079,US
+2455278080,2455278591,NZ
+2455278592,2455279615,US
2455279616,2455280127,MO
2455280128,2455280383,MY
2455280384,2455281663,MO
@@ -49603,9 +51600,7 @@
2456289280,2456354815,NL
2456354816,2456420351,GB
2456485888,2456551423,DE
-2456551424,2456602623,AT
-2456602624,2456602879,DE
-2456602880,2456616959,AT
+2456551424,2456616959,AT
2456616960,2456682495,CH
2456682496,2456748031,HU
2456748032,2456813567,US
@@ -49661,9 +51656,9 @@
2459893760,2459959295,CH
2459959296,2460024831,JP
2460024832,2460090367,FI
-2460090368,2460152319,GB
-2460152320,2460152575,FR
-2460152576,2460155903,GB
+2460090368,2460152575,GB
+2460152576,2460152831,FR
+2460152832,2460155903,GB
2460155904,2460221439,US
2460221440,2460286975,BR
2460286976,2460549119,US
@@ -49672,9 +51667,7 @@
2460680192,2460745727,NZ
2460745728,2460811263,NO
2460811264,2460876799,SE
-2460876800,2460920319,US
-2460920320,2460920575,GB
-2460920576,2460942335,US
+2460876800,2460942335,US
2460942336,2461007871,BE
2461007872,2461138943,GB
2461138944,2461204479,AU
@@ -49688,7 +51681,9 @@
2461605888,2461607935,LB
2461607936,2461609983,FR
2461609984,2461611007,BE
-2461611008,2461612031,NL
+2461611008,2461611519,NL
+2461611520,2461611775,BE
+2461611776,2461612031,NL
2461612032,2461613567,IL
2461613568,2461613823,PS
2461613824,2461614079,IL
@@ -49819,7 +51814,9 @@
2469134336,2469199871,SE
2469199872,2469265407,RU
2469265408,2469396479,KR
-2469396480,2469658623,US
+2469396480,2469527551,US
+2469527552,2469593087,TH
+2469593088,2469658623,US
2469658624,2469724159,GR
2469724160,2469789695,US
2469789696,2469855231,DE
@@ -49828,7 +51825,9 @@
2470248448,2470510591,US
2470510592,2470576127,BR
2470576128,2470641663,AU
-2470641664,2470707199,LU
+2470641664,2470703359,LU
+2470703360,2470703615,BE
+2470703616,2470707199,LU
2470707200,2470772735,GB
2470772736,2470838271,AU
2470838272,2471165951,US
@@ -50010,9 +52009,7 @@
2494103552,2494169087,FR
2494169088,2494562303,US
2494562304,2494627839,GB
-2494627840,2494650623,US
-2494650624,2494650879,BR
-2494650880,2494677759,US
+2494627840,2494677759,US
2494677760,2494678015,AU
2494678016,2494689791,US
2494689792,2494690047,IN
@@ -50022,11 +52019,7 @@
2495021056,2495152127,US
2495217664,2495283199,US
2495283200,2495348735,CH
-2495348736,2495348991,US
-2495348992,2495349051,DE
-2495349052,2495349052,US
-2495349053,2495349247,DE
-2495349248,2495807487,US
+2495348736,2495807487,US
2495807488,2495873023,AU
2495873024,2495938559,CH
2495938560,2496004095,GB
@@ -50041,7 +52034,39 @@
2499110520,2499110527,NI
2499110528,2499477503,MX
2499477504,2499543039,DE
-2499543040,2499674111,GB
+2499543040,2499559679,GB
+2499559680,2499559935,NO
+2499559936,2499560447,GB
+2499560448,2499560703,NO
+2499560704,2499560959,GB
+2499560960,2499561215,NO
+2499561216,2499561471,GB
+2499561472,2499561727,NO
+2499561728,2499562495,GB
+2499562496,2499562751,NO
+2499562752,2499563007,GB
+2499563008,2499563519,NO
+2499563520,2499563775,GB
+2499563776,2499564031,NO
+2499564032,2499564287,GB
+2499564288,2499564543,NO
+2499564544,2499564799,GB
+2499564800,2499565311,NO
+2499565312,2499568127,GB
+2499568128,2499568383,NO
+2499568384,2499569919,GB
+2499569920,2499570431,NO
+2499570432,2499570687,GB
+2499570688,2499571199,NO
+2499571200,2499571711,GB
+2499571712,2499571967,NO
+2499571968,2499572735,GB
+2499572736,2499572991,NO
+2499572992,2499573247,GB
+2499573248,2499573503,NO
+2499573504,2499573759,GB
+2499573760,2499574015,NO
+2499574016,2499674111,GB
2499674112,2499739647,US
2499739648,2499805183,DO
2499805184,2499870719,TR
@@ -50064,8 +52089,8 @@
2500141056,2500141311,IE
2500141312,2500141823,US
2500141824,2500142847,IE
-2500142848,2500143103,US
-2500143104,2500143615,IE
+2500142848,2500143359,US
+2500143360,2500143615,IE
2500143616,2500144895,US
2500144896,2500145151,IE
2500145152,2500149503,US
@@ -50076,9 +52101,7 @@
2500155648,2500155903,GB
2500155904,2500161023,US
2500161024,2500162047,GB
-2500162048,2500162559,US
-2500162560,2500162815,GB
-2500162816,2500166143,US
+2500162048,2500166143,US
2500166144,2500166399,GB
2500166400,2500170751,US
2500170752,2500170752,FI
@@ -50088,21 +52111,25 @@
2500180736,2500180991,HR
2500180992,2500188679,US
2500188680,2500188687,CH
-2500188688,2500191231,US
+2500188688,2500190975,US
+2500190976,2500191103,FR
+2500191104,2500191231,US
2500191232,2500191487,FR
2500191488,2500196351,US
2500196352,2500198399,FI
2500198400,2500198911,US
2500198912,2500199167,GB
-2500199168,2500199471,US
-2500199472,2500199475,IE
-2500199476,2500201535,US
+2500199168,2500199423,US
+2500199424,2500199679,IE
+2500199680,2500201535,US
2500201536,2500201543,GB
-2500201544,2500202879,US
-2500202880,2500203007,ES
+2500201544,2500202751,US
+2500202752,2500203007,ES
2500203008,2500209919,US
2500209920,2500210175,GB
-2500210176,2500212415,US
+2500210176,2500211728,US
+2500211729,2500211730,SI
+2500211731,2500212415,US
2500212416,2500212423,CH
2500212424,2500212991,US
2500212992,2500213247,ES
@@ -50112,9 +52139,15 @@
2500225552,2500225559,ES
2500225560,2500226615,US
2500226616,2500226623,NL
-2500226624,2500230041,US
+2500226624,2500227583,US
+2500227584,2500227839,FR
+2500227840,2500227879,US
+2500227880,2500227887,FR
+2500227888,2500230041,US
2500230042,2500230042,GB
-2500230043,2500235775,US
+2500230043,2500231679,US
+2500231680,2500231935,ES
+2500231936,2500235775,US
2500235776,2500236031,GB
2500236032,2500236837,US
2500236838,2500236838,ES
@@ -50128,22 +52161,22 @@
2500240384,2500240639,FR
2500240640,2500240895,US
2500240896,2500241407,FR
-2500241408,2500246271,US
+2500241408,2500245759,US
+2500245760,2500246015,GB
+2500246016,2500246271,US
2500246272,2500246527,GB
2500246528,2500247551,US
2500247552,2500248575,ES
-2500248576,2500249599,US
-2500249600,2500249855,ES
-2500249856,2500263935,US
-2500263936,2500264191,FR
-2500264192,2500272127,US
+2500248576,2500249343,US
+2500249344,2500249855,ES
+2500249856,2500272127,US
2500272128,2500272383,GB
2500272384,2500273151,US
2500273152,2500273407,GB
2500273408,2500275199,US
2500275200,2500275455,GB
-2500275456,2500276223,US
-2500276224,2500276735,GB
+2500275456,2500275967,US
+2500275968,2500276735,GB
2500276736,2500276991,US
2500276992,2500277247,GB
2500277248,2500278751,US
@@ -50158,9 +52191,7 @@
2500292608,2500292863,DE
2500292864,2500313855,US
2500313856,2500314111,AT
-2500314112,2500318207,US
-2500318208,2500318463,IT
-2500318464,2500319439,US
+2500314112,2500319439,US
2500319440,2500319471,ES
2500319472,2500319487,US
2500319488,2500321279,ES
@@ -50186,19 +52217,12 @@
2500555264,2500555519,FR
2500555520,2500558847,US
2500558848,2500559103,FR
-2500559104,2500559359,US
-2500559360,2500559615,FR
-2500559616,2500562431,US
-2500562432,2500562687,GB
-2500562688,2500562719,US
-2500562720,2500562727,GB
-2500562728,2500562767,US
-2500562768,2500562775,GB
-2500562776,2500562943,US
+2500559104,2500562431,US
+2500562432,2500562943,GB
2500562944,2500563199,ES
2500563200,2500567039,US
-2500567040,2500567295,GB
-2500567296,2500568679,US
+2500567040,2500567551,GB
+2500567552,2500568679,US
2500568680,2500568683,GB
2500568684,2500569687,US
2500569688,2500569695,BE
@@ -50206,7 +52230,9 @@
2500591616,2500595711,GB
2500595712,2500596223,US
2500596224,2500596735,CH
-2500596736,2500616191,US
+2500596736,2500609023,US
+2500609024,2500609279,ES
+2500609280,2500616191,US
2500616192,2500616447,IT
2500616448,2500637727,US
2500637728,2500637759,GB
@@ -50216,31 +52242,39 @@
2500644864,2500645119,FR
2500645120,2500646911,US
2500646912,2500647935,ES
-2500647936,2500666463,US
+2500647936,2500648581,US
+2500648582,2500648582,ES
+2500648583,2500663295,US
+2500663296,2500664319,ES
+2500664320,2500666463,US
2500666464,2500666471,LU
2500666472,2500681759,US
2500681760,2500681767,PL
-2500681768,2500685823,US
+2500681768,2500682495,US
+2500682496,2500682751,PL
+2500682752,2500685823,US
2500685824,2500686079,FR
2500686080,2500687871,US
2500687872,2500689919,FR
-2500689920,2500694527,US
-2500694528,2500694783,IT
-2500694784,2500719103,US
+2500689920,2500694271,US
+2500694272,2500694783,IT
+2500694784,2500695039,US
+2500695040,2500696063,IT
+2500696064,2500719103,US
2500719104,2500721151,IE
2500721152,2500723711,US
-2500723712,2500723799,GB
-2500723800,2500723807,ES
-2500723808,2500723967,GB
+2500723712,2500723967,ES
2500723968,2500728063,US
2500728064,2500728319,GB
-2500728320,2500739599,US
-2500739600,2500739607,DE
-2500739608,2500743215,US
+2500728320,2500739583,US
+2500739584,2500739839,DE
+2500739840,2500743215,US
2500743216,2500743223,GB
2500743224,2500984831,US
2500984832,2501033983,GB
-2501033984,2501574655,US
+2501033984,2501417471,US
+2501417472,2501417727,IN
+2501417728,2501574655,US
2501574656,2501640191,KZ
2501640192,2502033407,US
2502033408,2502037503,LU
@@ -50274,42 +52308,50 @@
2504486912,2504491007,US
2504491008,2504499199,IT
2504499200,2504499455,US
-2504499456,2504499711,IE
-2504499712,2504917503,US
-2504917504,2504917759,IL
-2504917760,2504918642,US
+2504499456,2504499967,IE
+2504499968,2504918642,US
2504918643,2504918643,IL
2504918644,2504919670,US
2504919671,2504919671,IL
-2504919672,2504920831,US
+2504919672,2504920063,US
+2504920064,2504920319,IL
+2504920320,2504920831,US
2504920832,2504921087,IL
-2504921088,2504923135,US
-2504923136,2504923391,IL
-2504923392,2504925695,US
-2504925696,2504926207,IL
-2504926208,2504926719,US
+2504921088,2504922367,US
+2504922368,2504922623,IL
+2504922624,2504923135,US
+2504923136,2504923647,IL
+2504923648,2504926207,US
+2504926208,2504926463,IL
+2504926464,2504926719,US
2504926720,2504926975,IL
-2504926976,2504931583,US
-2504931584,2504931839,IL
-2504931840,2504936191,US
-2504936192,2504936447,IL
-2504936448,2504938495,US
+2504926976,2504928511,US
+2504928512,2504928767,IL
+2504928768,2504929279,US
+2504929280,2504929535,IL
+2504929536,2504934911,US
+2504934912,2504935167,IL
+2504935168,2504936447,US
+2504936448,2504936703,IL
+2504936704,2504938495,US
2504938496,2504938751,IL
2504938752,2504941293,US
2504941294,2504941294,IL
-2504941295,2504943615,US
+2504941295,2504941567,US
+2504941568,2504942079,IL
+2504942080,2504943615,US
2504943616,2504944639,IL
-2504944640,2504945151,US
-2504945152,2504945407,IL
-2504945408,2504945663,US
-2504945664,2504946175,IL
-2504946176,2504946431,US
-2504946432,2504946687,IL
-2504946688,2504949503,US
-2504949504,2504982527,IL
+2504944640,2504945432,US
+2504945433,2504945433,IL
+2504945434,2504946687,US
+2504946688,2504946943,IL
+2504946944,2504949759,US
+2504949760,2504982527,IL
2504982528,2505457663,US
2505457664,2505459711,IE
-2505459712,2505469439,US
+2505459712,2505465855,US
+2505465856,2505467903,GB
+2505467904,2505469439,US
2505469440,2505469951,ES
2505469952,2505474047,NL
2505474048,2505482239,US
@@ -50331,10 +52373,8 @@
2505803776,2506293247,US
2506293248,2506358783,CA
2506358784,2506359039,ES
-2506359040,2506360063,US
-2506360064,2506360319,ES
-2506360320,2506360575,US
-2506360576,2506361087,ES
+2506359040,2506360319,US
+2506360320,2506361087,ES
2506361088,2506399999,US
2506400000,2506400255,IT
2506400256,2506401791,US
@@ -50363,7 +52403,9 @@
2508081408,2508081445,IL
2508081446,2508081446,US
2508081447,2508081663,IL
-2508081664,2508082431,GB
+2508081664,2508081919,GB
+2508081920,2508081920,NL
+2508081921,2508082431,GB
2508082432,2508082943,DE
2508082944,2508083199,GB
2508083200,2508085247,IS
@@ -50382,7 +52424,9 @@
2508324864,2508455935,US
2508455936,2508521471,IT
2508521472,2508587007,CH
-2508587008,2508652543,BE
+2508587008,2508631295,BE
+2508631296,2508631551,US
+2508631552,2508652543,BE
2508652544,2508718079,AU
2508718080,2508914687,US
2508914688,2508980223,IT
@@ -50488,9 +52532,7 @@
2513502208,2513567743,NO
2513567744,2513600511,GR
2513600512,2513633279,NL
-2513633280,2513672495,DE
-2513672496,2513672496,US
-2513672497,2513698815,DE
+2513633280,2513698815,DE
2513698816,2513764351,DK
2513764352,2514419711,DE
2514419712,2514485247,GB
@@ -50596,8 +52638,7 @@
2524971008,2525036543,ES
2525036544,2525037567,IN
2525037568,2525038591,PK
-2525038592,2525039359,CN
-2525039360,2525039615,HK
+2525038592,2525039615,NL
2525039616,2525040639,AU
2525040640,2525041151,BD
2525041152,2525041407,ID
@@ -50864,7 +52905,7 @@
2545811456,2547187711,US
2547187712,2547318783,GB
2547318784,2547515391,US
-2547523584,2547524607,GB
+2547523584,2547524607,DE
2547524608,2547525631,IR
2547525632,2547535871,GB
2547548160,2547580927,NO
@@ -50887,7 +52928,9 @@
2548833280,2548833791,NL
2548833792,2548834303,AT
2548834304,2548842495,GB
-2548842496,2548858879,RU
+2548842496,2548848639,RU
+2548848640,2548848895,UA
+2548848896,2548858879,RU
2548858880,2548867071,NL
2548867072,2548875263,IQ
2548875264,2548877311,KZ
@@ -50912,8 +52955,7 @@
2549614464,2549614591,SE
2549614592,2549616639,IT
2549616640,2549618687,BE
-2549618688,2549618943,US
-2549618944,2549620735,DE
+2549618688,2549620735,DE
2549620736,2549624831,PL
2549624832,2549626879,BE
2549626880,2549628927,PL
@@ -50963,11 +53005,7 @@
2550136832,2550202367,DO
2550202368,2553544703,US
2553544704,2553610239,IN
-2553610240,2554211327,US
-2554211328,2554211383,SG
-2554211384,2554211387,US
-2554211388,2554211583,SG
-2554211584,2554462207,US
+2553610240,2554462207,US
2554462208,2554527743,HU
2554527744,2554789887,US
2554789888,2554855423,GB
@@ -51010,9 +53048,7 @@
2557870080,2557935615,ID
2557935616,2558658499,US
2558658500,2558658500,PR
-2558658501,2558789571,US
-2558789572,2558789572,PR
-2558789573,2558918655,US
+2558658501,2558918655,US
2558918656,2558984191,GB
2558984192,2559246335,US
2559246336,2559311871,CL
@@ -51114,16 +53150,18 @@
2573991936,2574123007,CH
2574123008,2574188543,NO
2574188544,2574254079,NZ
-2574254080,2574286847,SE
-2574286848,2574287103,AU
-2574287104,2574311167,SE
+2574254080,2574311167,SE
2574311168,2574311423,US
2574311424,2574319615,SE
2574319616,2574647295,US
2574647296,2574778367,CN
2574778368,2583582207,JP
2583582208,2583582463,HK
-2583582464,2583691263,JP
+2583582464,2583600127,JP
+2583600128,2583600383,US
+2583600384,2583600639,JP
+2583600640,2583600895,US
+2583600896,2583691263,JP
2583691264,2583695359,ZA
2583695360,2583697407,BW
2583697408,2583699455,CI
@@ -51294,9 +53332,15 @@
2584764416,2584764671,ZA
2584764672,2584775423,US
2584775424,2584775679,KE
-2584775680,2585001983,US
+2584775680,2584780287,US
+2584780288,2584780543,ES
+2584780544,2585001983,US
2585001984,2585067519,CA
-2585067520,2585788415,US
+2585067520,2585330440,US
+2585330441,2585330442,SI
+2585330443,2585330468,US
+2585330469,2585330470,SI
+2585330471,2585788415,US
2585788416,2585853951,GB
2585853952,2585985023,JP
2585985024,2586378751,US
@@ -51334,8 +53378,10 @@
2586733568,2586733823,LT
2586733824,2586734591,US
2586734592,2586735615,LT
-2586735616,2586788863,US
-2586788864,2586789119,GB
+2586735616,2586758143,US
+2586758144,2586758655,DE
+2586758656,2586788607,US
+2586788608,2586789119,GB
2586789120,2586789887,US
2586789888,2586790143,GB
2586790144,2586804223,US
@@ -51391,7 +53437,9 @@
2587128523,2587128523,TR
2587128524,2587131903,US
2587131904,2587132415,FR
-2587132416,2587197439,US
+2587132416,2587164927,US
+2587164928,2587165183,CH
+2587165184,2587197439,US
2587197440,2587197695,ES
2587197696,2587240389,US
2587240390,2587240390,FR
@@ -51399,8 +53447,10 @@
2587249418,2587249418,FR
2587249419,2587361791,US
2587361792,2587362047,MD
-2587362048,2587394559,US
-2587394560,2587395327,ES
+2587362048,2587394047,US
+2587394048,2587394559,ES
+2587394560,2587394815,US
+2587394816,2587395327,ES
2587395328,2587396095,US
2587396096,2587399167,ES
2587399168,2587412223,US
@@ -51428,20 +53478,22 @@
2587544576,2587545599,US
2587545600,2587549695,ES
2587549696,2587582463,US
-2587582464,2587586559,NL
-2587586560,2587592703,US
+2587582464,2587587071,NL
+2587587072,2587592703,US
2587592704,2587594751,GB
-2587594752,2587623423,US
+2587594752,2587596799,US
+2587596800,2587598847,GB
+2587598848,2587623423,US
2587623424,2587631615,BG
2587631616,2587639807,US
2587639808,2587640063,GB
-2587640064,2587926527,US
+2587640064,2587713535,US
+2587713536,2587714559,ES
+2587714560,2587926527,US
2587926528,2587930623,BG
-2587930624,2587938815,US
-2587938816,2587939583,PR
-2587939584,2587939711,US
-2587939712,2587939839,PR
-2587939840,2587940095,US
+2587930624,2587939071,US
+2587939072,2587939583,PR
+2587939584,2587940095,US
2587940096,2587940607,PR
2587940608,2587940863,US
2587940864,2587941119,PR
@@ -51487,6 +53539,7 @@
2588082176,2588147711,RE
2588147712,2588164095,CI
2588164096,2588180479,RW
+2588188672,2588196863,ZA
2588196864,2588213247,NG
2588213248,2588278783,ZA
2588278784,2588295167,KE
@@ -51590,12 +53643,15 @@
2591424512,2591457279,NG
2591457280,2591473663,ML
2591473664,2591477759,AO
-2591477760,2591478783,PT
+2591477760,2591478015,PT
+2591478016,2591478271,AO
+2591478272,2591478783,PT
2591478784,2591479039,AO
2591479040,2591479551,PT
-2591479552,2591479807,AO
-2591479808,2591481855,PT
+2591479552,2591480063,AO
+2591480064,2591481855,PT
2591481856,2591483903,TZ
+2591483904,2591485951,KE
2591485952,2591486975,SO
2591486976,2591487999,ZA
2591488000,2591489023,GA
@@ -51657,9 +53713,7 @@
2601517056,2602565631,US
2602565632,2602631167,NZ
2602631168,2602762495,US
-2602762752,2602774015,US
-2602774016,2602774271,IN
-2602774528,2602825727,US
+2602762752,2602825727,US
2602825728,2602825983,AU
2602825984,2603417599,US
2603417600,2603483135,DE
@@ -51672,7 +53726,9 @@
2604400640,2604466175,AU
2604466176,2604648447,US
2604648448,2604648959,NZ
-2604648960,2604793855,US
+2604648960,2604649983,US
+2604649984,2604650239,CA
+2604650240,2604793855,US
2604793856,2604859391,CH
2604859392,2604990463,US
2604990464,2605055999,SG
@@ -51683,17 +53739,28 @@
2605318144,2606301183,US
2606301184,2606366719,AO
2606366720,2606563327,US
+2606563328,2606596095,NG
+2606596096,2606628863,ZA
2606628864,2607349759,US
2607349760,2607415295,CH
2607415296,2609053695,US
2609053696,2609119231,GB
2609119232,2609184767,FR
-2609184768,2609250303,PL
+2609184768,2609234431,PL
+2609234432,2609234687,PT
+2609234688,2609235967,PL
+2609235968,2609242111,DE
+2609242112,2609250303,PL
2609250304,2609381375,US
-2609381376,2609446911,GB
+2609381376,2609385983,GB
+2609385984,2609386239,PL
+2609386240,2609446911,GB
2609446912,2609512447,DK
2609512448,2609643519,US
-2609643520,2609709055,GB
+2609643520,2609677815,GB
+2609677816,2609677817,FR
+2609677818,2609708799,GB
+2609708800,2609709055,FR
2609709056,2609840127,US
2609840128,2609971199,AU
2609971200,2610036735,GB
@@ -51848,10 +53915,13 @@
2617769984,2617835519,ZA
2617835520,2617901055,US
2617901056,2617966591,FI
-2617966592,2618032127,CA
+2617966592,2618028031,CA
+2618028032,2618028543,IE
+2618028544,2618029055,GB
+2618029056,2618032127,CA
2618032128,2618097663,US
2618097664,2618163199,NZ
-2618163200,2618228735,SI
+2618163200,2618228735,IT
2618228736,2618294271,US
2618359808,2618425343,PL
2618425344,2618490879,FR
@@ -51899,13 +53969,29 @@
2623602688,2623668223,CL
2623668224,2624192511,US
2624192512,2624258047,CH
-2624258048,2624279039,US
+2624258048,2624269313,US
+2624269314,2624269314,AU
+2624269315,2624269317,US
+2624269318,2624269318,AU
+2624269319,2624269321,US
+2624269322,2624269322,AU
+2624269323,2624269345,US
+2624269346,2624269346,AU
+2624269347,2624269349,US
+2624269350,2624269350,AU
+2624269351,2624269353,US
+2624269354,2624269354,AU
+2624269355,2624269377,US
+2624269378,2624269378,AU
+2624269379,2624269381,US
+2624269382,2624269382,AU
+2624269383,2624269385,US
+2624269386,2624269386,AU
+2624269387,2624279039,US
2624279040,2624279071,IN
2624279072,2624279095,US
2624279096,2624279111,IN
-2624279112,2624281087,US
-2624281088,2624281343,IN
-2624281344,2624292863,US
+2624279112,2624292863,US
2624292864,2624292883,SG
2624292884,2624292887,HK
2624292888,2624292891,SG
@@ -51980,7 +54066,23 @@
2624298292,2624298295,PH
2624298296,2624298299,TH
2624298300,2624298495,SG
-2624298496,2624716799,US
+2624298496,2624302081,US
+2624302082,2624302082,AU
+2624302083,2624302085,US
+2624302086,2624302086,AU
+2624302087,2624302089,US
+2624302090,2624302090,AU
+2624302091,2624302113,US
+2624302114,2624302114,AU
+2624302115,2624302117,US
+2624302118,2624302118,AU
+2624302119,2624302121,US
+2624302122,2624302122,AU
+2624302123,2624302149,US
+2624302150,2624302150,AU
+2624302151,2624302153,US
+2624302154,2624302154,AU
+2624302155,2624716799,US
2624716800,2624782335,NL
2624782336,2624847871,CH
2624847872,2624913407,NO
@@ -51992,7 +54094,7 @@
2626093056,2626158591,CH
2626158592,2626879487,US
2626879488,2626945023,KR
-2626945024,2627010559,SI
+2626945024,2627010559,IT
2627010560,2627076095,NZ
2627076096,2627141631,NL
2627141632,2627403775,US
@@ -52014,13 +54116,82 @@
2635988992,2636120063,US
2636120064,2637430783,ID
2637430784,2637438975,CA
-2637438976,2637630975,US
-2637630976,2637631231,IE
-2637631232,2637733151,US
-2637733152,2637733183,JP
-2637733184,2637733375,US
-2637733376,2637733407,SG
-2637733408,2637997055,US
+2637438976,2637627391,US
+2637627392,2637629439,IE
+2637629440,2637629615,NL
+2637629616,2637629631,IE
+2637629632,2637629663,NL
+2637629664,2637629807,IE
+2637629808,2637629823,NL
+2637629824,2637629951,IE
+2637629952,2637630111,NL
+2637630112,2637630119,IE
+2637630120,2637630127,NL
+2637630128,2637630207,IE
+2637630208,2637630335,NL
+2637630336,2637630463,IE
+2637630464,2637630527,NL
+2637630528,2637631487,IE
+2637631488,2637637631,US
+2637637632,2637637887,NL
+2637637888,2637638143,IE
+2637638144,2637638399,NL
+2637638400,2637638463,IE
+2637638464,2637638671,NL
+2637638672,2637638783,IE
+2637638784,2637638879,NL
+2637638880,2637638911,IE
+2637638912,2637639167,NL
+2637639168,2637639199,IE
+2637639200,2637639295,NL
+2637639296,2637639327,IE
+2637639328,2637639359,NL
+2637639360,2637639383,IE
+2637639384,2637639391,NL
+2637639392,2637639423,IE
+2637639424,2637639551,NL
+2637639552,2637639679,IE
+2637639680,2637660159,US
+2637660160,2637660191,SG
+2637660192,2637679743,US
+2637679744,2637679871,IE
+2637679872,2637684735,US
+2637684736,2637684991,IE
+2637684992,2637685247,NL
+2637685248,2637685631,IE
+2637685632,2637686015,NL
+2637686016,2637686143,IE
+2637686144,2637686271,NL
+2637686272,2637686415,IE
+2637686416,2637686431,NL
+2637686432,2637686463,IE
+2637686464,2637686655,NL
+2637686656,2637686815,IE
+2637686816,2637686847,NL
+2637686848,2637686879,IE
+2637686880,2637686911,NL
+2637686912,2637686975,IE
+2637686976,2637687215,NL
+2637687216,2637688447,IE
+2637688448,2637688495,NL
+2637688496,2637688575,IE
+2637688576,2637688831,NL
+2637688832,2637718527,US
+2637718528,2637718559,SG
+2637718560,2637721599,US
+2637721600,2637722143,NL
+2637722144,2637722175,IE
+2637722176,2637723647,NL
+2637723648,2637725695,IE
+2637725696,2637733119,US
+2637733120,2637733375,JP
+2637733376,2637733631,SG
+2637733632,2637742079,US
+2637742080,2637744127,IE
+2637744128,2637756415,US
+2637756416,2637757439,NL
+2637757440,2637758463,IE
+2637758464,2637997055,US
2637997056,2637997311,AU
2637997312,2637998591,US
2637998592,2637998847,AU
@@ -52103,7 +54274,79 @@
2646212608,2646278143,RU
2646278144,2646474751,US
2646474752,2646540287,IE
-2646540288,2646605823,US
+2646540288,2646546953,US
+2646546954,2646546954,CA
+2646546955,2646547013,US
+2646547014,2646547014,MX
+2646547015,2646547017,US
+2646547018,2646547018,MX
+2646547019,2646547021,US
+2646547022,2646547022,CA
+2646547023,2646547077,US
+2646547078,2646547078,CA
+2646547079,2646547081,US
+2646547082,2646547082,CA
+2646547083,2646547209,US
+2646547210,2646547210,CA
+2646547211,2646547269,US
+2646547270,2646547270,MX
+2646547271,2646547273,US
+2646547274,2646547274,MX
+2646547275,2646547277,US
+2646547278,2646547278,CA
+2646547279,2646547333,US
+2646547334,2646547334,CA
+2646547335,2646547337,US
+2646547338,2646547338,CA
+2646547339,2646551561,US
+2646551562,2646551562,CA
+2646551563,2646551621,US
+2646551622,2646551622,MX
+2646551623,2646551625,US
+2646551626,2646551626,MX
+2646551627,2646551629,US
+2646551630,2646551630,CA
+2646551631,2646551685,US
+2646551686,2646551686,CA
+2646551687,2646551689,US
+2646551690,2646551690,CA
+2646551691,2646551817,US
+2646551818,2646551818,CA
+2646551819,2646551877,US
+2646551878,2646551878,MX
+2646551879,2646551881,US
+2646551882,2646551882,MX
+2646551883,2646551885,US
+2646551886,2646551886,CA
+2646551887,2646551941,US
+2646551942,2646551942,CA
+2646551943,2646551945,US
+2646551946,2646551946,CA
+2646551947,2646561033,US
+2646561034,2646561034,CA
+2646561035,2646561093,US
+2646561094,2646561094,MX
+2646561095,2646561097,US
+2646561098,2646561098,MX
+2646561099,2646561101,US
+2646561102,2646561102,CA
+2646561103,2646561157,US
+2646561158,2646561158,CA
+2646561159,2646561161,US
+2646561162,2646561162,CA
+2646561163,2646565129,US
+2646565130,2646565130,CA
+2646565131,2646565189,US
+2646565190,2646565190,MX
+2646565191,2646565193,US
+2646565194,2646565194,MX
+2646565195,2646565197,US
+2646565198,2646565198,CA
+2646565199,2646565253,US
+2646565254,2646565254,CA
+2646565255,2646565257,US
+2646565258,2646565258,CA
+2646565259,2646605823,US
2646605824,2646671359,JP
2646671360,2646736895,BE
2646736896,2646933503,US
@@ -52180,7 +54423,9 @@
2655324800,2655325695,US
2655325696,2655325823,CA
2655325824,2655326207,US
-2655326208,2655326463,CA
+2655326208,2655326287,CA
+2655326288,2655326303,US
+2655326304,2655326463,CA
2655326464,2655373256,US
2655373257,2655373257,CA
2655373258,2655715327,US
@@ -52210,17 +54455,15 @@
2658009088,2658074623,IT
2658074624,2658140159,US
2658140160,2658205695,NO
-2658205696,2658459647,US
-2658459648,2658459648,HU
-2658459649,2658459649,US
-2658459650,2658459903,HU
-2658459904,2658598911,US
+2658205696,2658598911,US
2658598912,2658664447,GB
2658664448,2658926591,US
2658926592,2659057663,GB
2659057664,2659123199,SE
2659123200,2659180543,FI
-2659180544,2659182591,NL
+2659180544,2659181823,NL
+2659181824,2659182079,BE
+2659182080,2659182591,NL
2659182592,2659188735,FI
2659188736,2659254271,CA
2659254272,2659319807,LT
@@ -52273,7 +54516,9 @@
2663579648,2663645183,SK
2663645184,2663710719,CZ
2663710720,2663776255,SK
-2663776256,2663891199,JP
+2663776256,2663877631,JP
+2663877632,2663877887,CN
+2663877888,2663891199,JP
2663891200,2663891455,CN
2663891456,2664955903,JP
2664955904,2665021439,CH
@@ -52291,7 +54536,9 @@
2665545728,2665611263,DE
2665611264,2665676799,CH
2665676800,2665742335,ES
-2665742336,2665805055,US
+2665742336,2665783807,US
+2665783808,2665784063,GB
+2665784064,2665805055,US
2665805056,2665805311,CA
2665805312,2665873407,US
2665873408,2665938943,GB
@@ -52316,7 +54563,8 @@
2667528192,2667532287,FR
2667532288,2667534335,RU
2667534336,2667536383,PL
-2667536384,2667537087,AT
+2667536384,2667536639,FR
+2667536640,2667537087,AT
2667537088,2667537119,FR
2667537120,2667537151,AT
2667537152,2667541503,FR
@@ -52462,7 +54710,11 @@
2675580064,2675580095,AE
2675580096,2675589119,US
2675589120,2675605503,DE
-2675605504,2675606271,US
+2675605504,2675605961,US
+2675605962,2675605962,DE
+2675605963,2675605963,US
+2675605964,2675605964,DE
+2675605965,2675606271,US
2675606272,2675606527,IT
2675606528,2675606975,US
2675606976,2675607039,IT
@@ -52493,7 +54745,9 @@
2677639168,2677639423,CA
2677639424,2677639679,US
2677639680,2677639935,CA
-2677639936,2677642239,US
+2677639936,2677641215,US
+2677641216,2677641471,CA
+2677641472,2677642239,US
2677642240,2677642495,ES
2677642496,2677642751,CA
2677642752,2677643007,SE
@@ -52693,8 +54947,7 @@
2687041536,2687238143,US
2687238144,2687297231,DE
2687297232,2687297239,GB
-2687297240,2687297243,SE
-2687297244,2687560191,DE
+2687297240,2687560191,DE
2687560192,2687560447,ZA
2687560448,2687762431,DE
2687762432,2687827967,AT
@@ -52702,9 +54955,9 @@
2687893504,2688221183,DE
2688221184,2688286719,CH
2688286720,2688352255,DE
-2688352256,2688420351,CH
-2688420352,2688420607,CN
-2688420608,2688548863,CH
+2688352256,2688419711,CH
+2688419712,2688419839,DE
+2688419840,2688548863,CH
2688548864,2688614399,AU
2688614400,2688679935,US
2688679936,2688745471,IT
@@ -52745,8 +54998,8 @@
2689803264,2689803519,GB
2689803520,2689804799,US
2689804800,2689805055,GB
-2689805056,2689818879,US
-2689818880,2689819135,IN
+2689805056,2689818623,US
+2689818624,2689819135,IN
2689819136,2689835007,US
2689835008,2689835263,AU
2689835264,2689925119,US
@@ -52781,7 +55034,9 @@
2696478720,2696871935,JP
2696937472,2697789439,JP
2697789440,2697854975,US
-2697854976,2697889791,AU
+2697854976,2697887743,AU
+2697887744,2697887999,ES
+2697888000,2697889791,AU
2697889792,2697891839,US
2697891840,2697892095,GB
2697892096,2697892863,AU
@@ -52789,7 +55044,9 @@
2697894400,2697920511,AU
2697920512,2698117119,US
2698117120,2698182655,IS
-2698182656,2698248191,DE
+2698182656,2698214911,DE
+2698214912,2698215167,NL
+2698215168,2698248191,DE
2698248192,2698313727,US
2698313728,2698379263,DE
2698379264,2698444799,ES
@@ -53006,7 +55263,11 @@
2714373128,2714373128,SG
2714373129,2714386431,US
2714386432,2714402815,JP
-2714402816,2714407160,US
+2714402816,2714403996,US
+2714403997,2714403997,JP
+2714403998,2714407113,US
+2714407114,2714407114,JP
+2714407115,2714407160,US
2714407161,2714407161,JP
2714407162,2714697727,US
2714697728,2714763263,CN
@@ -53104,7 +55365,8 @@
2728295424,2728296447,CA
2728296448,2728297471,EG
2728297472,2728298495,DK
-2728298496,2728300543,US
+2728298496,2728299519,PH
+2728299520,2728300543,US
2728300544,2728301567,CA
2728301568,2728302591,CH
2728302592,2728303615,GB
@@ -53124,7 +55386,9 @@
2728316928,2728317951,BG
2728317952,2728319999,US
2728320000,2728321023,NO
-2728321024,2731543551,US
+2728321024,2728323071,US
+2728323072,2728324095,BE
+2728324096,2731543551,US
2731543552,2731544575,CA
2731544576,2731549695,US
2731549696,2731550719,CA
@@ -53180,7 +55444,9 @@
2731800576,2731801599,CA
2731801600,2731804671,US
2731804672,2731805695,CA
-2731805696,2731806463,BB
+2731805696,2731805951,BB
+2731805952,2731806207,LC
+2731806208,2731806463,BB
2731806464,2731806719,VG
2731806720,2731807743,US
2731807744,2731808767,CA
@@ -53196,9 +55462,7 @@
2731843584,2731845631,PR
2731845632,2731853823,US
2731853824,2731855871,CA
-2731855872,2731856127,VC
-2731856128,2731856383,LC
-2731856384,2731856895,VC
+2731855872,2731856895,VC
2731856896,2731862015,US
2731862016,2731864063,CA
2731864064,2731870207,US
@@ -53242,7 +55506,7 @@
2732273664,2732275711,CA
2732275712,2732278783,US
2732278784,2732279807,CA
-2732279808,2732302335,US
+2732279808,2732301311,US
2732302336,2732303359,CA
2732303360,2732306431,US
2732306432,2732307455,CA
@@ -53260,8 +55524,8 @@
2732351488,2732353535,PR
2732353536,2732361727,US
2732361728,2732362495,BB
-2732362496,2732363007,DM
-2732363008,2732363775,BB
+2732362496,2732362751,DM
+2732362752,2732363775,BB
2732363776,2732371967,US
2732372992,2732375039,US
2732375040,2732376063,CA
@@ -53283,9 +55547,7 @@
2732455936,2732457983,CA
2732457984,2732472319,US
2732472320,2732474367,CA
-2732474368,2732475391,US
-2732475392,2732476415,CA
-2732476416,2732478463,US
+2732474368,2732478463,US
2732478464,2732479487,CA
2732479488,2732480511,AG
2732480512,2732485631,US
@@ -53586,7 +55848,7 @@
2738207744,2738208767,CN
2738208768,2738209791,ID
2738209792,2738210815,KH
-2738210816,2738213887,IN
+2738210816,2738214911,IN
2738214912,2738215935,HK
2738215936,2738216959,CN
2738216960,2738217983,HK
@@ -53630,7 +55892,9 @@
2745548800,2745565183,DE
2745565184,2745696255,GB
2745696256,2745761791,CH
-2745761792,2746023935,GB
+2745761792,2745962865,GB
+2745962866,2745962866,FR
+2745962867,2746023935,GB
2746023936,2746089471,FR
2746089472,2746155007,NO
2746155008,2746220543,NL
@@ -53689,9 +55953,7 @@
2753953792,2754084863,GB
2754084864,2754117631,KZ
2754117632,2754125823,NL
-2754125824,2754127359,DE
-2754127360,2754127615,US
-2754127616,2754127871,DE
+2754125824,2754127871,DE
2754127872,2754129919,SK
2754129920,2754131967,SE
2754134016,2754138111,DE
@@ -53751,8 +56013,25 @@
2759852032,2759917567,CH
2759917568,2759983103,FR
2759983104,2760048639,IT
-2760048640,2760114175,FR
-2760114176,2760179711,IT
+2760048640,2760119967,FR
+2760119968,2760119983,GB
+2760119984,2760120839,FR
+2760120840,2760120843,PT
+2760120844,2760132911,FR
+2760132912,2760132927,PT
+2760132928,2760145226,FR
+2760145227,2760145227,ES
+2760145228,2760150262,FR
+2760150263,2760150263,PL
+2760150264,2760150871,FR
+2760150872,2760150872,DE
+2760150873,2760151208,FR
+2760151209,2760151209,CZ
+2760151210,2760151335,FR
+2760151336,2760151339,GB
+2760151340,2760154951,FR
+2760154952,2760154955,GB
+2760154956,2760179711,FR
2760179712,2760245247,DE
2760245248,2760310783,GB
2760310784,2760376319,SE
@@ -53826,9 +56105,9 @@
2769747968,2769813503,CA
2769813504,2769879039,US
2769879040,2769944575,ZA
-2769944576,2769999871,US
-2769999872,2769999935,GB
-2769999936,2770272255,US
+2769944576,2769999935,US
+2769999936,2769999999,BE
+2770000000,2770272255,US
2770272256,2770337791,AU
2770337792,2770993151,US
2770993152,2771124223,IN
@@ -53844,13 +56123,14 @@
2773090304,2773221375,US
2773221376,2773286911,JP
2773286912,2773745663,US
-2773745664,2773794815,NZ
+2773745664,2773778431,NZ
+2773778432,2773794815,HK
2773794816,2773798911,IN
2773798912,2773803007,NZ
2773803008,2773803263,GB
-2773803264,2773804031,NZ
+2773803264,2773804031,US
2773804032,2773804287,GB
-2773804288,2773804799,NZ
+2773804288,2773804799,US
2773804800,2773805055,GB
2773805056,2773807103,JP
2773807104,2773811199,IN
@@ -53883,9 +56163,7 @@
2775973888,2776039423,AU
2776039424,2776104959,US
2776104960,2776170495,GB
-2776170496,2776478463,US
-2776478464,2776478719,ZA
-2776478720,2776478975,US
+2776170496,2776478975,US
2776478976,2776479231,AU
2776479232,2776891391,US
2776891392,2777022463,KR
@@ -53923,8 +56201,8 @@
2780929792,2780930047,US
2780930048,2780930559,GB
2780930560,2780931071,US
-2780931072,2780932351,GB
-2780932352,2780932607,US
+2780931072,2780932095,GB
+2780932096,2780932607,US
2780932608,2780933119,GB
2780933120,2780933375,US
2780933376,2780933631,GB
@@ -53939,8 +56217,8 @@
2781207552,2781208575,DE
2781208576,2781478911,US
2781478912,2781544447,HK
-2781544448,2781623807,US
-2781623808,2781624319,CA
+2781544448,2781624063,US
+2781624064,2781624319,CA
2781624320,2781628415,US
2781628416,2781628671,DE
2781628672,2781630463,US
@@ -53958,7 +56236,9 @@
2782724096,2782789631,US
2782789632,2782855167,CH
2782855168,2782995455,US
-2782995456,2782995967,CA
+2782995456,2782995526,CA
+2782995527,2782995527,US
+2782995528,2782995967,CA
2782995968,2783002623,US
2783002624,2783002879,DK
2783002880,2783003135,US
@@ -54027,6 +56307,7 @@
2789998592,2790195199,US
2790195200,2790260735,KR
2790260736,2790326271,US
+2790326272,2790391807,HK
2790391808,2790457343,US
2790457344,2790522879,NZ
2790522880,2790588415,US
@@ -54112,7 +56393,9 @@
2809269026,2809269026,US
2809269027,2809274367,CA
2809274368,2809274623,US
-2809274624,2809277375,CA
+2809274624,2809276083,CA
+2809276084,2809276087,US
+2809276088,2809277375,CA
2809277376,2809277407,FR
2809277408,2809281575,CA
2809281576,2809281583,US
@@ -54177,9 +56460,7 @@
2813263872,2813329407,JP
2813329408,2813526015,US
2813526016,2813591551,NZ
-2813591552,2813908479,US
-2813908480,2813908735,AU
-2813908736,2814181375,US
+2813591552,2814181375,US
2814181376,2814246911,CN
2814246912,2815082495,US
2815082496,2815090687,NL
@@ -54216,8 +56497,7 @@
2817277952,2817294335,NL
2817294336,2817933055,US
2817933056,2817933311,CA
-2817933312,2817933567,PR
-2817933568,2818002943,US
+2817933312,2818002943,US
2818002944,2818003722,GB
2818003723,2818003723,US
2818003724,2818004991,GB
@@ -54233,11 +56513,9 @@
2818124800,2818125823,AR
2818125824,2818126847,BR
2818126848,2818127871,AR
-2818127872,2818138111,BR
-2818139136,2818143231,BR
+2818127872,2818143231,BR
2818143232,2818144255,MX
-2818144256,2818145279,BR
-2818146304,2818162687,BR
+2818144256,2818162687,BR
2818162688,2818164735,AR
2818164736,2818165759,BZ
2818165760,2818168831,BR
@@ -54260,9 +56538,11 @@
2818209792,2818210815,CO
2818210816,2818212863,BR
2818212864,2818213887,CL
-2818213888,2818221055,BR
+2818213888,2818222079,BR
2818222080,2818223103,AR
-2818223104,2818228223,BR
+2818223104,2818225151,BR
+2818225152,2818226175,EC
+2818226176,2818228223,BR
2818228224,2818229247,CR
2818229248,2818231295,BR
2818231296,2818232319,PE
@@ -54280,13 +56560,51 @@
2818586624,2818587647,AR
2818587648,2818593791,BR
2818593792,2818594815,SX
-2818594816,2818600959,BR
+2818594816,2818619391,BR
+2818619392,2818620415,AR
+2818620416,2818623487,BR
+2818623488,2818625535,AR
+2818625536,2818626559,BR
+2818626560,2818627583,HN
+2818627584,2818628607,BR
+2818628608,2818629631,MX
+2818629632,2818634751,BR
+2818634752,2818635775,CO
+2818635776,2818637823,BR
2818637824,2818670591,AU
-2818670592,2822592397,US
-2822592398,2822592398,IE
-2822592399,2822731894,US
+2818670592,2822584319,US
+2822584320,2822586367,NL
+2822586368,2822590463,US
+2822590464,2822591629,IE
+2822591630,2822591630,US
+2822591631,2822594559,IE
+2822594560,2822596607,HK
+2822596608,2822602751,IE
+2822602752,2822643903,US
+2822643904,2822643967,SG
+2822643968,2822644479,US
+2822644480,2822644735,SG
+2822644736,2822646783,US
+2822646784,2822647295,SG
+2822647296,2822701055,US
+2822701056,2822709247,NL
+2822709248,2822723583,IE
+2822723584,2822724095,US
+2822724096,2822724415,SG
+2822724416,2822724607,US
+2822724608,2822725631,IE
+2822725632,2822731894,NL
2822731895,2822731895,GB
-2822731896,2823159807,US
+2822731896,2822732102,NL
+2822732103,2822732103,IE
+2822732104,2822733823,NL
+2822733824,2822741087,HK
+2822741088,2822741103,IE
+2822741104,2822742015,HK
+2822742016,2822750207,SG
+2822750208,2822758399,HK
+2822758400,2822766591,SG
+2822766592,2823159807,US
2823159808,2823225343,HK
2823225344,2823553023,US
2823553024,2823618559,ZA
@@ -54306,6 +56624,36 @@
2824357888,2824358143,CA
2824358144,2824404991,US
2824404992,2824470527,ZA
+2824470528,2824472575,BR
+2824472576,2824473599,AR
+2824473600,2824474623,CO
+2824474624,2824487935,BR
+2824487936,2824488959,MX
+2824488960,2824489983,AR
+2824489984,2824492031,BR
+2824492032,2824493055,AR
+2824493056,2824494079,BR
+2824494080,2824495103,VE
+2824495104,2824496127,HN
+2824496128,2824498175,BR
+2824498176,2824499199,HN
+2824499200,2824503295,BR
+2824503296,2824504319,AR
+2824504320,2824510463,BR
+2824510464,2824511487,CL
+2824511488,2824512511,AR
+2824512512,2824515583,BR
+2824515584,2824516607,PY
+2824516608,2824520703,BR
+2824520704,2824521727,HN
+2824521728,2824526847,BR
+2824526848,2824527871,CL
+2824527872,2824529919,BR
+2824529920,2824530943,CL
+2824530944,2824532991,BR
+2824532992,2824534015,BZ
+2824534016,2824535039,BR
+2824535040,2824536063,AR
2824536064,2824798207,US
2824798208,2824863743,TW
2824863744,2824929279,AR
@@ -54317,6 +56665,30 @@
2826108928,2826174463,KR
2826174464,2826436607,US
2826436608,2826502143,TH
+2826502144,2826510335,BR
+2826510336,2826512383,AR
+2826512384,2826513407,BR
+2826513408,2826515455,PE
+2826515456,2826516479,BR
+2826516480,2826517503,AR
+2826517504,2826518527,MX
+2826518528,2826522623,BR
+2826522624,2826523647,CL
+2826523648,2826524671,SR
+2826524672,2826531839,BR
+2826531840,2826532863,AR
+2826532864,2826534911,BR
+2826534912,2826535935,PA
+2826535936,2826549247,BR
+2826549248,2826550271,UY
+2826550272,2826555391,BR
+2826555392,2826557439,AR
+2826557440,2826558463,BR
+2826558464,2826559487,PE
+2826559488,2826562559,BR
+2826562560,2826563583,PE
+2826563584,2826565631,MX
+2826565632,2826567679,BR
2826567680,2826633215,US
2826633216,2826698751,GU
2826698752,2826829823,US
@@ -54344,10 +56716,14 @@
2828075008,2828533759,US
2828533760,2828599551,AU
2828599552,2828599807,IN
-2828599808,2828664831,AU
+2828599808,2828626687,AU
+2828626688,2828627199,US
+2828627200,2828664831,AU
2828664832,2828730367,KR
2828730368,2828795903,ZA
-2828795904,2829033471,US
+2828795904,2829029375,US
+2829029376,2829029631,CN
+2829029632,2829033471,US
2829033472,2829033727,IN
2829033728,2829041663,US
2829041664,2829041919,AU
@@ -54357,14 +56733,16 @@
2829148416,2829148671,HK
2829148672,2829174783,US
2829174784,2829175039,GB
-2829175040,2829175551,US
-2829175552,2829175807,GB
+2829175040,2829175295,US
+2829175296,2829175807,GB
2829175808,2829254655,US
2829254656,2829320191,CH
2829320192,2829385727,ZA
2829385728,2829451263,MX
2829451264,2829516799,US
-2829516800,2829582335,BW
+2829516800,2829581823,BW
+2829581824,2829582079,AU
+2829582080,2829582335,BW
2829582336,2829590783,US
2829590784,2829591033,GB
2829591034,2829591034,US
@@ -54374,6 +56752,31 @@
2829910016,2830106623,US
2830106624,2830172159,CO
2830172160,2830434303,US
+2830434304,2830436351,BR
+2830436352,2830437375,PE
+2830437376,2830440447,BR
+2830440448,2830441471,AR
+2830441472,2830445567,BR
+2830445568,2830446591,AR
+2830446592,2830447615,BR
+2830447616,2830448639,HN
+2830449664,2830451711,BR
+2830452736,2830453759,AR
+2830454784,2830463999,BR
+2830465024,2830466047,HN
+2830467072,2830475263,BR
+2830475264,2830476287,CR
+2830476288,2830479359,BR
+2830479360,2830480383,AR
+2830480384,2830481407,BR
+2830481408,2830482431,AR
+2830482432,2830483455,BR
+2830485504,2830486527,BR
+2830486528,2830488575,AR
+2830488576,2830492671,BR
+2830492672,2830493695,HN
+2830493696,2830494719,BR
+2830497792,2830499839,BR
2830499840,2830761983,US
2830761984,2830827519,AU
2830827520,2830893055,KW
@@ -54383,6 +56786,9 @@
2831613952,2831810559,US
2831810560,2831876095,IT
2831876096,2832007167,US
+2832007168,2832008191,AR
+2832009216,2832010239,PA
+2832015360,2832016383,BR
2832072704,2832138239,ZA
2832138240,2832269311,US
2832269312,2832465919,ZA
@@ -54416,7 +56822,11 @@
2835177472,2835181567,DZ
2835181568,2835183615,NG
2835183616,2835185663,ZA
-2835185664,2835202047,RE
+2835185664,2835196159,RE
+2835196160,2835196927,YT
+2835196928,2835197695,RE
+2835197696,2835197951,YT
+2835197952,2835202047,RE
2835202048,2835206143,ZA
2835206144,2835208191,NG
2835208192,2835210239,ZA
@@ -54440,8 +56850,8 @@
2838822912,2838865599,US
2838865600,2838865615,KR
2838865616,2838871295,US
-2838871296,2838871311,CA
-2838871312,2838881055,US
+2838871296,2838871551,CA
+2838871552,2838881055,US
2838881056,2838881087,AT
2838881088,2838887871,US
2838887872,2838887887,EC
@@ -54459,9 +56869,7 @@
2838946432,2838946447,CA
2838946448,2838946735,US
2838946736,2838946751,CA
-2838946752,2838958927,US
-2838958928,2838958943,AF
-2838958944,2838962111,US
+2838946752,2838962111,US
2838962112,2838962127,BR
2838962128,2838962527,US
2838962528,2838962543,GB
@@ -54483,7 +56891,8 @@
2845704192,2845769727,CU
2845769728,2845786111,GA
2845786112,2845802495,NG
-2845818880,2845822975,ZA
+2845802496,2845822975,ZA
+2845822976,2845827071,CD
2845835264,2848212991,US
2848212992,2848215039,GB
2848215040,2848244735,US
@@ -54523,8 +56932,7 @@
2851041280,2851042303,GQ
2851042304,2851043327,LY
2851043328,2851044351,TD
-2851044352,2851045887,ZA
-2851045888,2851046399,SC
+2851044352,2851046399,ZA
2851046400,2851047423,AO
2851047424,2851048447,SN
2851048448,2851049471,MU
@@ -54535,7 +56943,13 @@
2851053568,2851054591,KE
2851054592,2851055615,ZA
2851055616,2851057663,KE
-2851057664,2851059711,ZA
+2851057664,2851060735,ZA
+2851060736,2851062783,NG
+2851062784,2851063807,ZA
+2851063808,2851065855,SC
+2851065856,2851066879,ZA
+2851066880,2851067903,CD
+2851067904,2851070975,ZA
2851078144,2851995647,US
2852061184,2852062207,ZA
2852062208,2852063231,CM
@@ -54596,7 +57010,9 @@
2853765120,2853830655,MX
2853830656,2854289407,US
2854289408,2854354943,MY
-2854354944,2854617087,US
+2854354944,2854603775,US
+2854603776,2854604031,NL
+2854604032,2854617087,US
2854617088,2854682623,MY
2854748160,2855469055,US
2855469056,2855484671,PY
@@ -54627,9 +57043,13 @@
2859008000,2859073535,JP
2859073536,2861069055,US
2861069056,2861069311,GB
-2861069312,2861733375,US
+2861069312,2861698559,US
+2861698560,2861698815,CA
+2861698816,2861733375,US
2861733376,2861733631,CA
-2861733632,2861862911,US
+2861733632,2861843711,US
+2861843712,2861843967,SG
+2861843968,2861862911,US
2861862912,2861863167,AU
2861863168,2861876735,US
2861876736,2861876991,GB
@@ -54640,12 +57060,14 @@
2862284800,2862350335,AR
2862350336,2862415871,US
2862415872,2862481407,AU
-2862481408,2863202303,US
+2862481408,2863121311,US
+2863121312,2863121343,CA
+2863121344,2863202303,US
2863202304,2863267839,MX
2863267840,2863595519,US
2863595520,2863661055,CA
2863661056,2863857663,US
-2863857664,2863923199,SG
+2863857664,2863923199,CN
2863923200,2864844799,US
2864844800,2864845055,NL
2864845056,2864848895,US
@@ -54806,7 +57228,9 @@
2868671488,2868674336,GB
2868674337,2868674337,SE
2868674338,2868674559,GB
-2868674560,2868682752,PH
+2868674560,2868676607,PH
+2868676608,2868678655,AU
+2868678656,2868682752,PH
2868682753,2868682753,US
2868682754,2868689151,PH
2868689152,2868689663,AU
@@ -54896,14 +57320,20 @@
2875719680,2877292543,CN
2877292544,2879336447,US
2879336448,2879336703,GB
-2879336704,2881486847,US
+2879336704,2879469567,US
+2879469568,2879469823,IN
+2879469824,2881486847,US
2881486848,2881487103,GB
2881487104,2882469887,US
2882469888,2882535423,SG
2882535424,2883583999,CN
2883584000,2885681151,VN
2885681152,2886667007,US
-2886667008,2886667263,DE
+2886667008,2886667195,DE
+2886667196,2886667196,US
+2886667197,2886667240,DE
+2886667241,2886667241,US
+2886667242,2886667263,DE
2886667264,2886729727,US
2887778304,2891034623,US
2891034624,2891036671,CA
@@ -54990,20 +57420,24 @@
2892171264,2892172287,CA
2892172288,2892174335,US
2892174336,2892177407,CA
-2892177408,2892369919,US
+2892177408,2892365823,US
+2892366848,2892369919,US
2892369920,2892374015,CA
2892374016,2892420607,US
2892420608,2892420863,CA
-2892420864,2892423167,US
+2892420864,2892421631,US
+2892421632,2892421887,CA
+2892421888,2892423167,US
2892423168,2892424191,VI
2892424192,2892425215,CA
2892425216,2892443647,US
2892443648,2892447743,CA
-2892447744,2892464127,VG
+2892447744,2892464127,US
2892464128,2892496895,CA
2892496896,2892906495,US
2892906496,2892910591,CA
-2892910592,2892988415,US
+2892910592,2892941311,US
+2892942336,2892988415,US
2892988416,2892988671,SC
2892988672,2892988927,PA
2892988928,2892989183,SA
@@ -55024,7 +57458,17 @@
2892994560,2892994815,JO
2892994816,2892995327,GB
2892995328,2892995839,AU
-2892995840,2893676543,US
+2892995840,2892996095,CA
+2892996096,2892996607,US
+2892996608,2892996863,CA
+2892996864,2892997119,AU
+2892997120,2892997375,CA
+2892997376,2892997887,AU
+2892997888,2892998655,GB
+2892998656,2892998911,HK
+2892998912,2892999167,MX
+2892999168,2892999423,MT
+2892999424,2893676543,US
2893676544,2893807615,CA
2893807616,2894921727,US
2894921728,2895118335,GB
@@ -55073,10 +57517,12 @@
2905002249,2905002249,NL
2905002250,2905002495,GB
2905002496,2905005055,US
-2905005056,2905005311,GB
+2905005056,2905005087,GB
+2905005088,2905005095,US
+2905005096,2905005311,GB
2905005312,2905044991,US
-2905044992,2905045247,SG
-2905045248,2905345279,US
+2905044992,2905045503,SG
+2905045504,2905345279,US
2905345280,2905345535,AU
2905345536,2905346815,US
2905346816,2905347071,JP
@@ -55095,9 +57541,10 @@
2905415936,2905446655,US
2905446656,2905446911,DE
2905446912,2905456639,US
+2905457152,2905457407,US
2905457664,2905457919,US
-2905458432,2905458687,US
-2905458944,2905460479,US
+2905458176,2905458687,US
+2905458944,2905460223,US
2905460736,2905460991,US
2905461248,2905462271,US
2905463296,2905463551,US
@@ -55433,9 +57880,11 @@
2921594880,2925002751,US
2925002752,2925527039,CA
2925527040,2926575615,US
-2926575616,2927056639,CA
-2927056640,2927057023,US
-2927057024,2927057919,CA
+2926575616,2926777727,CA
+2926777728,2926777791,US
+2926777792,2926779135,CA
+2926779136,2926779519,US
+2926779520,2927057919,CA
2927057920,2927058175,US
2927058176,2927099903,CA
2927099904,2927242751,US
@@ -55510,7 +57959,9 @@
2938961920,2938978303,HK
2938978304,2938986495,AU
2938986496,2938986751,NZ
-2938986752,2938996735,AU
+2938986752,2938988031,AU
+2938988032,2938988287,NZ
+2938988288,2938996735,AU
2938996736,2938998783,JP
2938998784,2939002879,AU
2939002880,2939004927,KR
@@ -55560,6 +58011,12 @@
2943314944,2943315967,CN
2943315968,2943318015,ID
2943318016,2943320063,JP
+2943320064,2943324159,IN
+2943324160,2943332351,CN
+2943332352,2943333375,AU
+2943333376,2943334399,IN
+2943334400,2943335423,CN
+2943335424,2943336447,IN
2943336448,2943352831,TW
2943352832,2944401407,KR
2944401408,2944925695,JP
@@ -55605,7 +58062,10 @@
2947598336,2947602431,AU
2947602432,2947603455,NZ
2947603456,2947604479,TH
-2947604480,2947612671,HK
+2947604480,2947609599,HK
+2947609600,2947609855,AU
+2947609856,2947610111,AF
+2947610112,2947612671,HK
2947612672,2947678207,JP
2947678208,2947743743,CN
2947743744,2947809279,JP
@@ -55642,7 +58102,9 @@
2953596928,2953598975,ES
2953598976,2953601023,IT
2953601024,2953603071,RU
-2953603072,2953605119,GB
+2953603072,2953603977,GB
+2953603978,2953603979,IE
+2953603980,2953605119,GB
2953605120,2953609215,CZ
2953609216,2953707519,IL
2953707520,2953838591,RU
@@ -55897,9 +58359,7 @@
2955034624,2955083775,IE
2955083776,2955149311,GB
2955149312,2955411455,UA
-2955411456,2955631615,TR
-2955631616,2955631871,UA
-2955631872,2955673599,TR
+2955411456,2955673599,TR
2955673600,2955804671,SA
2955804672,2955837439,EE
2955837440,2955845631,IR
@@ -56022,7 +58482,9 @@
2957197312,2957201407,IR
2957201408,2957202679,US
2957202680,2957202680,PT
-2957202681,2957203455,US
+2957202681,2957203127,US
+2957203128,2957203131,XK
+2957203132,2957203455,US
2957203456,2957205503,FR
2957205504,2957213695,PS
2957213696,2957221887,FR
@@ -56463,8 +58925,10 @@
2961064960,2961065215,HK
2961065216,2961065471,AU
2961065472,2961065727,BR
-2961065728,2961065983,HK
-2961065984,2961069567,NL
+2961065728,2961066239,HK
+2961066240,2961067519,NL
+2961067520,2961067775,GB
+2961067776,2961069567,NL
2961069568,2961069823,IN
2961069824,2961072127,NL
2961072128,2961088511,UA
@@ -56520,9 +58984,11 @@
2967396352,2967398399,CZ
2967398400,2967400447,DK
2967400448,2967404543,RU
-2967404544,2967422975,RO
+2967404544,2967421695,RO
+2967421696,2967421951,ES
+2967421952,2967422975,RO
2967422976,2967425023,KZ
-2967425024,2967427071,DE
+2967425024,2967427071,IR
2967427072,2967428095,NL
2967428096,2967432191,RO
2967432192,2967432447,GB
@@ -56578,13 +59044,16 @@
2968648576,2968649727,FR
2968649728,2969042943,IT
2969042944,2969567231,GB
-2969567232,2970294271,BR
-2970295808,2972125183,BR
-2972126208,2973071359,BR
-2973072384,2973079551,BR
-2973082624,2975199231,BR
-2975199744,2975199999,BR
-2975201280,2975594495,BR
+2969567232,2970241023,BR
+2970242048,2970294271,BR
+2970295808,2970343423,BR
+2970344448,2972125183,BR
+2972126208,2973079551,BR
+2973082624,2974466047,BR
+2974470144,2975124479,BR
+2975125504,2975282175,BR
+2975283200,2975290367,BR
+2975291392,2975594495,BR
2975594496,2975596543,PE
2975596544,2977733631,BR
2977734656,2978029567,BR
@@ -56882,7 +59351,9 @@
2988482576,2988482579,CZ
2988482580,2988483027,FR
2988483028,2988483031,ES
-2988483032,2988484831,FR
+2988483032,2988484339,FR
+2988484340,2988484343,PT
+2988484344,2988484831,FR
2988484832,2988484847,GB
2988484848,2988485683,FR
2988485684,2988485687,PL
@@ -57027,7 +59498,9 @@
2988539972,2988539975,ES
2988539976,2988540199,FR
2988540200,2988540207,BE
-2988540208,2988540503,FR
+2988540208,2988540271,FR
+2988540272,2988540275,ES
+2988540276,2988540503,FR
2988540504,2988540507,NL
2988540508,2988540563,FR
2988540564,2988540567,CZ
@@ -57142,7 +59615,9 @@
2989228032,2989490175,RU
2989490176,2989555711,HU
2989555712,2989588479,RU
-2989588480,2989589503,CO
+2989588480,2989588735,CO
+2989588736,2989588991,RU
+2989588992,2989589503,CO
2989589504,2989621247,RU
2989621248,2989752319,BE
2989752320,2989817855,SY
@@ -57187,9 +59662,11 @@
2991308800,2991325183,BG
2991325184,2991341567,AZ
2991341568,2991357951,MD
-2991357952,2991363071,DE
-2991363072,2991363327,US
-2991363328,2991374335,DE
+2991357952,2991367679,DE
+2991367680,2991367935,US
+2991367936,2991372287,DE
+2991372288,2991372543,US
+2991372544,2991374335,DE
2991374336,2991390719,RU
2991390720,2991407103,BA
2991407104,2991423487,DE
@@ -57202,20 +59679,20 @@
2991521792,2991538175,RS
2991538176,2991554559,SI
2991554560,2991570943,GB
-2991570944,2991571711,IT
-2991571712,2991571967,GB
-2991571968,2991587327,IT
+2991570944,2991587327,IT
2991587328,2991718399,SA
2991718400,2991752191,CH
-2991752192,2991752575,DE
-2991752576,2991849471,CH
+2991752192,2991753215,DE
+2991753216,2991849471,CH
2991849472,2991980543,NL
2991980544,2992111615,SA
2992111616,2992373759,KZ
2992373760,2992635903,UA
2992635904,2993684479,GB
2993684480,2993946623,AT
-2993946624,2994208767,BE
+2993946624,2994131711,BE
+2994131712,2994131967,FR
+2994131968,2994208767,BE
2994208768,2994733055,BY
2994733056,2994798591,GR
2994798592,2994929663,RU
@@ -57228,9 +59705,7 @@
2995009536,2995011583,ES
2995011584,2995013631,DE
2995013632,2995015679,SE
-2995015680,2995017215,BG
-2995017216,2995017471,JP
-2995017472,2995017727,BG
+2995015680,2995017727,BG
2995017728,2995019775,IT
2995019776,2995021823,RU
2995021824,2995023871,IT
@@ -57422,7 +59897,7 @@
3000317952,3000319999,PL
3000320000,3000322047,FR
3000322048,3000322303,PL
-3000322304,3000322559,RU
+3000322304,3000322559,GB
3000322560,3000322815,DE
3000322816,3000323071,RU
3000323072,3000323583,DE
@@ -57502,7 +59977,11 @@
3000606720,3000608767,UA
3000608768,3000610815,KG
3000610816,3000612863,RU
-3000612864,3000616959,PL
+3000612864,3000612930,PL
+3000612931,3000612931,PT
+3000612932,3000613241,PL
+3000613242,3000613242,PT
+3000613243,3000616959,PL
3000616960,3000621055,UA
3000621056,3000623103,PL
3000623104,3000625151,RU
@@ -57575,7 +60054,9 @@
3001920256,3001920511,AU
3001920512,3001921535,GB
3001921536,3001929727,RU
-3001929728,3001933823,RS
+3001929728,3001930239,RS
+3001930240,3001930495,XK
+3001930496,3001933823,RS
3001933824,3001937919,ES
3001937920,3001942015,RU
3001946112,3001950207,RU
@@ -57747,7 +60228,9 @@
3003023360,3003039743,RS
3003039744,3003056127,BG
3003056128,3003058175,DE
-3003058176,3003060223,EE
+3003058176,3003058943,EE
+3003058944,3003059199,IL
+3003059200,3003060223,EE
3003060224,3003062271,DE
3003062272,3003064319,NL
3003064320,3003066367,RO
@@ -58351,7 +60834,8 @@
3007312896,3007313919,CL
3007313920,3007314943,AR
3007314944,3007315967,HN
-3007315968,3015648255,BR
+3007315968,3010289663,BR
+3010297856,3015648255,BR
3015651328,3019898879,BR
3019898880,3024093183,JP
3024093184,3024617471,KR
@@ -58361,7 +60845,8 @@
3025403904,3025600511,CN
3025600512,3025601663,IN
3025601664,3025601791,HK
-3025601792,3025602047,IN
+3025601792,3025601919,IN
+3025601920,3025602047,CN
3025602048,3025602303,HK
3025602304,3025603071,IN
3025603072,3025603091,HK
@@ -58396,7 +60881,9 @@
3025616896,3025617439,SG
3025617440,3025617447,IN
3025617448,3025617455,SG
-3025617456,3025618943,IN
+3025617456,3025617487,IN
+3025617488,3025617503,SG
+3025617504,3025618943,IN
3025618944,3025619519,SG
3025619520,3025619583,IN
3025619584,3025619711,SG
@@ -58436,12 +60923,15 @@
3025631748,3025631767,HK
3025631768,3025631999,IN
3025632000,3025632255,HK
-3025632256,3025632415,SG
-3025632416,3025632511,IN
+3025632256,3025632423,SG
+3025632424,3025632511,IN
3025632512,3025632767,SG
3025632768,3025633535,IN
3025633536,3025633791,HK
-3025633792,3025633919,AU
+3025633792,3025633807,AU
+3025633808,3025633823,IN
+3025633824,3025633855,AU
+3025633856,3025633919,IN
3025633920,3025634047,MY
3025634048,3025637151,IN
3025637152,3025637183,MY
@@ -58466,10 +60956,8 @@
3025639424,3025639535,SG
3025639536,3025639551,HK
3025639552,3025639679,SG
-3025639680,3025639807,HK
-3025639808,3025639839,IN
-3025639840,3025639879,HK
-3025639880,3025640191,IN
+3025639680,3025639935,HK
+3025639936,3025640191,IN
3025640192,3025640447,JP
3025640448,3025640799,MY
3025640800,3025641727,IN
@@ -58495,8 +60983,7 @@
3025648092,3025648095,SG
3025648096,3025649151,IN
3025649152,3025649663,HK
-3025649664,3025649919,AE
-3025649920,3025666047,IN
+3025649664,3025666047,IN
3025666048,3025928191,CN
3025928192,3025932287,TW
3025932288,3025944575,JP
@@ -58544,21 +61031,21 @@
3028521984,3028523007,LA
3028523008,3028525055,JP
3028525056,3028533247,HK
-3028533248,3028539135,JP
-3028539136,3028539391,US
-3028539392,3028541951,JP
+3028533248,3028538879,JP
+3028538880,3028539391,US
+3028539392,3028541183,JP
+3028541184,3028541439,US
+3028541440,3028541951,JP
3028541952,3028542207,US
-3028542208,3028544511,JP
-3028544512,3028544767,US
-3028544768,3028545023,JP
-3028545024,3028545791,US
-3028545792,3028546047,JP
-3028546048,3028546303,US
-3028546304,3028547839,JP
-3028547840,3028548095,US
-3028548096,3028548607,JP
-3028548608,3028549119,US
-3028549120,3028549631,JP
+3028542208,3028543743,JP
+3028543744,3028544255,US
+3028544256,3028545535,JP
+3028545536,3028545791,US
+3028545792,3028546559,JP
+3028546560,3028546815,US
+3028546816,3028547071,JP
+3028547072,3028547583,US
+3028547584,3028549631,JP
3028549632,3028811775,KR
3028811776,3029336063,CN
3029336064,3029598207,JP
@@ -58708,7 +61195,8 @@
3035168768,3035193343,CN
3035193344,3035197439,JP
3035197440,3035198463,SG
-3035198464,3035199487,HK
+3035198464,3035198719,KR
+3035198720,3035199487,HK
3035199488,3035200511,IN
3035200512,3035202559,AU
3035202560,3035205631,JP
@@ -58754,7 +61242,9 @@
3039297536,3039363071,PY
3039363072,3039379455,US
3039379456,3039395839,GY
-3039395840,3039412223,US
+3039395840,3039396351,US
+3039396352,3039396607,NL
+3039396608,3039412223,US
3039412224,3039412735,CL
3039412736,3039412991,BR
3039412992,3039413247,US
@@ -59228,7 +61718,8 @@
3051460608,3051462655,AR
3051462656,3051470847,PE
3051470848,3051479039,AR
-3051479040,3051487231,CU
+3051479040,3051486975,CU
+3051486976,3051487231,HU
3051487232,3051552767,CL
3051552768,3051618303,BO
3051618304,3051880447,AR
@@ -59327,11 +61818,13 @@
3057041408,3057049599,MY
3057049600,3057050623,AU
3057050624,3057051647,SG
-3057051648,3057052415,AU
+3057051648,3057052159,AU
+3057052160,3057052415,US
3057052416,3057052671,ES
3057052672,3057052927,IL
3057052928,3057053183,GB
-3057053184,3057053695,AU
+3057053184,3057053439,US
+3057053440,3057053695,SG
3057053696,3057054719,JP
3057054720,3057055743,CN
3057055744,3057057791,JP
@@ -59359,6 +61852,13 @@
3063971840,3063988223,AU
3063988224,3064004607,JP
3064004608,3064012799,LK
+3064012800,3064013823,AU
+3064013824,3064015871,HK
+3064015872,3064016895,AU
+3064016896,3064017919,SG
+3064017920,3064018943,IN
+3064018944,3064019967,NZ
+3064019968,3064020991,HK
3064020992,3064023039,JP
3064023040,3064024063,SG
3064024064,3064025087,JP
@@ -59371,7 +61871,10 @@
3064725504,3064791039,KR
3064791040,3064807423,TW
3064807424,3064808447,IN
-3064808448,3064809471,TW
+3064808448,3064808703,VG
+3064808704,3064808959,JP
+3064808960,3064809215,VN
+3064809216,3064809471,VG
3064809472,3064810495,MY
3064810496,3064811519,HK
3064811520,3064823807,KR
@@ -59420,7 +61923,9 @@
3070181376,3070185471,JP
3070185472,3070197759,AU
3070197760,3070230527,KR
-3070230528,3074949119,CN
+3070230528,3073773183,CN
+3073773184,3073773311,MO
+3073773312,3074949119,CN
3074949120,3075342335,JP
3075342336,3075375103,MY
3075375104,3075383295,KR
@@ -59476,7 +61981,8 @@
3081846784,3081847807,TW
3081847808,3081848831,KR
3081848832,3081850879,SG
-3081850880,3081851903,HK
+3081850880,3081851391,HK
+3081851392,3081851903,SG
3081851904,3081852927,JP
3081852928,3081854975,HK
3081854976,3081859071,MN
@@ -59504,7 +62010,9 @@
3088474112,3088478207,US
3088478208,3088506879,TH
3088506880,3088605183,US
-3088605184,3088609279,NL
+3088605184,3088605695,NL
+3088605696,3088605951,US
+3088605952,3088609279,NL
3088609280,3088629759,US
3088629760,3088633855,NL
3088633856,3088654335,US
@@ -59571,7 +62079,9 @@
3090387968,3090388479,NL
3090388480,3090389503,US
3090389504,3090389631,CA
-3090389632,3090401791,US
+3090389632,3090401023,US
+3090401024,3090401279,KR
+3090401280,3090401791,US
3090401792,3090402047,IN
3090402048,3090415103,US
3090415104,3090415615,NL
@@ -59652,7 +62162,9 @@
3093909657,3093909657,FR
3093909658,3093909812,US
3093909813,3093909813,AT
-3093909814,3093943785,US
+3093909814,3093935103,US
+3093935104,3093935359,CA
+3093935360,3093943785,US
3093943786,3093943786,CZ
3093943787,3093945989,US
3093945990,3093945990,AT
@@ -59767,6 +62279,11 @@
3103865600,3103865855,BG
3103865856,3103866367,DE
3103866368,3103866879,UA
+3103866880,3103867135,RU
+3103867136,3103867391,NO
+3103867392,3103867647,FR
+3103867648,3103867903,RU
+3103867904,3103868159,ES
3103916032,3103917055,CH
3103917056,3103918079,IT
3103918080,3103919103,DE
@@ -59781,7 +62298,9 @@
3103925248,3103926271,PL
3103926272,3103926783,CZ
3103926784,3103927039,SK
-3103927040,3103927295,CZ
+3103927040,3103927167,CZ
+3103927168,3103927199,SK
+3103927200,3103927295,CZ
3103927296,3103929343,NL
3103929344,3103930367,BE
3103930368,3103931391,DE
@@ -60209,7 +62728,8 @@
3104375808,3104376831,DK
3104376832,3104377855,FI
3104377856,3104378879,DE
-3104378880,3104379903,GB
+3104378880,3104379647,GB
+3104379648,3104379903,AT
3104379904,3104380927,FR
3104380928,3104381951,DK
3104381952,3104382975,DE
@@ -60355,6 +62875,7 @@
3104533504,3104534527,PL
3104534528,3104535551,SE
3104535552,3104536575,ES
+3104536576,3104537599,SA
3104537600,3104538623,US
3104538624,3104539647,PL
3104539648,3104540671,RU
@@ -60479,7 +63000,9 @@
3104660480,3104661503,NO
3104661504,3104662527,SE
3104662528,3104663551,FR
-3104663552,3104665599,GB
+3104663552,3104664255,GB
+3104664256,3104664263,CH
+3104664264,3104665599,GB
3104665600,3104668671,RU
3104668672,3104669695,NO
3104669696,3104670719,FR
@@ -60587,7 +63110,9 @@
3104777216,3104778239,DE
3104778240,3104779263,TR
3104779264,3104780287,PL
-3104780288,3104782335,FR
+3104780288,3104781567,FR
+3104781568,3104781823,GB
+3104781824,3104782335,FR
3104782336,3104783359,NL
3104783360,3104784383,RU
3104784384,3104785407,BA
@@ -60861,7 +63386,9 @@
3105052672,3105053695,GB
3105053696,3105054719,TR
3105054720,3105055743,GE
-3105055744,3105056767,NL
+3105055744,3105056243,NL
+3105056244,3105056244,DE
+3105056245,3105056767,NL
3105056768,3105057791,SC
3105057792,3105058815,GB
3105058816,3105059839,JO
@@ -61088,8 +63615,7 @@
3105299456,3105300479,IT
3105300480,3105301503,RU
3105301504,3105302527,ES
-3105302528,3105302783,GB
-3105302784,3105303551,FR
+3105302528,3105303551,FR
3105303552,3105304575,IE
3105304576,3105305599,GE
3105305600,3105308671,GB
@@ -61125,7 +63651,8 @@
3105341440,3105342463,ES
3105342464,3105343487,AE
3105343488,3105344511,TJ
-3105344512,3105345535,NO
+3105344512,3105344767,SE
+3105344768,3105345535,NO
3105345536,3105346559,DE
3105346560,3105347583,NL
3105347584,3105348607,DK
@@ -61178,7 +63705,9 @@
3105400832,3105401855,DK
3105401856,3105402879,NL
3105402880,3105404927,RU
-3105404928,3105405951,FR
+3105404928,3105404928,FR
+3105404929,3105404929,RE
+3105404930,3105405951,FR
3105405952,3105406975,NO
3105406976,3105407999,FR
3105408000,3105410047,PL
@@ -61308,7 +63837,8 @@
3105531904,3105532927,RU
3105532928,3105533951,RS
3105533952,3105534975,BA
-3105534976,3105535794,NO
+3105534976,3105535231,ZA
+3105535232,3105535794,NO
3105535795,3105535795,RU
3105535796,3105535999,NO
3105536000,3105537023,AZ
@@ -61467,7 +63997,8 @@
3105684480,3105686527,GB
3105686528,3105687551,BE
3105687552,3105688063,SE
-3105688064,3105688575,LV
+3105688064,3105688319,LV
+3105688320,3105688575,NL
3105688576,3105689599,PL
3105689600,3105690623,SI
3105690624,3105691647,SE
@@ -61589,7 +64120,9 @@
3105814528,3105815551,JO
3105815552,3105816575,BE
3105816576,3105817599,FR
-3105817600,3105818623,DE
+3105817600,3105818111,DE
+3105818112,3105818367,HU
+3105818368,3105818623,DE
3105818624,3105819647,NL
3105819648,3105820671,GB
3105821696,3105822719,ES
@@ -61603,7 +64136,7 @@
3105829888,3105830911,AT
3105830912,3105831167,IT
3105831168,3105831423,US
-3105831424,3105831679,IT
+3105831424,3105831679,SG
3105831680,3105831935,BR
3105831936,3105832959,DE
3105832960,3105833983,IT
@@ -61858,9 +64391,7 @@
3106067456,3106068479,DE
3106068480,3106070527,NL
3106070528,3106071551,UA
-3106071552,3106072063,BH
-3106072064,3106072319,US
-3106072320,3106072575,BH
+3106071552,3106072575,BH
3106072576,3106073599,GB
3106073600,3106074623,PL
3106074624,3106076671,RU
@@ -62088,7 +64619,9 @@
3106291712,3106292735,CH
3106292736,3106293759,NO
3106293760,3106294783,UA
-3106294784,3106295807,DE
+3106294784,3106295039,DE
+3106295040,3106295295,US
+3106295296,3106295807,DE
3106295808,3106296831,GB
3106296832,3106297855,RU
3106297856,3106298879,NL
@@ -62233,7 +64766,9 @@
3106437120,3106438143,IS
3106438144,3106439167,GB
3106439168,3106440191,RU
-3106440192,3106441215,DE
+3106440192,3106440706,DE
+3106440707,3106440707,CH
+3106440708,3106441215,DE
3106441216,3106442239,HU
3106442240,3106443263,GB
3106443264,3106445311,ES
@@ -62262,7 +64797,7 @@
3106466560,3106466815,RO
3106466816,3106467839,EE
3106467840,3106468863,IR
-3106469888,3106470911,DE
+3106468864,3106470911,DE
3106470912,3106471935,NL
3106471936,3106472959,IR
3106472960,3106473983,FR
@@ -62281,10 +64816,10 @@
3106483426,3106483426,FR
3106483427,3106483429,GB
3106483430,3106483430,IE
-3106483431,3106483761,GB
-3106483762,3106483762,DE
+3106483431,3106483711,GB
+3106483712,3106483762,DE
3106483763,3106483763,CZ
-3106483764,3106483765,GB
+3106483764,3106483765,DE
3106483766,3106483766,IT
3106483767,3106483767,DE
3106483768,3106483768,CZ
@@ -62295,11 +64830,12 @@
3106483773,3106483773,IT
3106483774,3106483774,PL
3106483775,3106483775,IE
-3106483776,3106483815,GB
+3106483776,3106483815,DE
3106483816,3106483816,FR
-3106483817,3106483826,GB
+3106483817,3106483826,DE
3106483827,3106483827,FR
-3106483828,3106484223,GB
+3106483828,3106483967,DE
+3106483968,3106484223,GB
3106484224,3106485247,NL
3106485248,3106486271,CZ
3106486272,3106488319,DE
@@ -62533,7 +65069,9 @@
3106732032,3106735167,GB
3106735168,3106735199,IE
3106735200,3106735231,DE
-3106735232,3106736127,GB
+3106735232,3106735263,GB
+3106735264,3106735295,FR
+3106735296,3106736127,GB
3106736128,3106737151,IE
3106737152,3106738175,RO
3106738176,3106739199,DE
@@ -62549,7 +65087,8 @@
3106748416,3106749439,CZ
3106749440,3106750463,RU
3106750464,3106751487,BG
-3106751488,3106752511,IT
+3106751488,3106751743,IT
+3106751744,3106752511,SM
3106752512,3106753535,ES
3106753536,3106754559,IS
3106754560,3106755583,RU
@@ -62559,7 +65098,7 @@
3106758656,3106759679,GB
3106759680,3106760703,RU
3106760704,3106761727,IE
-3106762752,3106763775,DE
+3106761728,3106763775,DE
3106763776,3106764799,NL
3106764800,3106765823,SE
3106765824,3106766847,CZ
@@ -62663,8 +65202,7 @@
3106865152,3106866175,NL
3106866176,3106867199,AZ
3106867200,3106868223,LV
-3106868224,3106869247,NL
-3106869248,3106870271,ES
+3106868224,3106870271,ES
3106870272,3106871295,NL
3106871296,3106872319,CH
3106872320,3106873343,BE
@@ -62741,8 +65279,8 @@
3106947072,3106948095,AE
3106948096,3106949119,NL
3106949120,3106950143,RU
-3106950144,3106950399,IM
-3106950400,3106951167,GB
+3106950144,3106950911,IM
+3106950912,3106951167,GB
3106951168,3106952191,SE
3106952192,3106954239,ES
3106954240,3106955263,DE
@@ -62781,9 +65319,7 @@
3106992128,3106993151,AM
3106993152,3106994175,DE
3106994176,3106995199,SK
-3106995200,3106995711,FR
-3106995712,3106995967,US
-3106995968,3106996223,FR
+3106995200,3106996223,FR
3106996224,3106997247,SI
3106997248,3106998271,NO
3106998272,3106999295,IT
@@ -62890,7 +65426,8 @@
3107099648,3107099903,UA
3107099904,3107100159,CZ
3107100160,3107100415,RU
-3107100416,3107101695,CZ
+3107100416,3107100671,SK
+3107100672,3107101695,CZ
3107101696,3107102719,RU
3107102720,3107103743,GB
3107103744,3107104767,PL
@@ -62994,7 +65531,7 @@
3107204096,3107205119,FR
3107205120,3107206143,BG
3107206144,3107207167,NL
-3107207168,3107207423,AT
+3107207168,3107208191,RU
3107208192,3107209215,NL
3107209216,3107210239,IT
3107210240,3107213311,RU
@@ -63068,7 +65605,7 @@
3107286016,3107287039,AT
3107287040,3107288063,RS
3107288064,3107289087,NO
-3107289088,3107290111,SI
+3107289088,3107290111,IT
3107290112,3107291135,PL
3107291136,3107292159,NL
3107292160,3107293183,PL
@@ -63431,8 +65968,7 @@
3107639296,3107640319,ES
3107640320,3107641343,DK
3107641344,3107643391,RU
-3107643392,3107643647,GB
-3107643648,3107644415,IT
+3107643392,3107644415,GB
3107644416,3107645439,FR
3107645440,3107646463,IE
3107646464,3107647487,NL
@@ -64082,7 +66618,9 @@
3108333568,3108334591,SK
3108334592,3108335615,IR
3108335616,3108336639,NL
-3108336640,3108337663,GB
+3108336640,3108337151,GB
+3108337152,3108337407,ES
+3108337408,3108337663,GB
3108337664,3108338687,IR
3108338688,3108339711,RU
3108339712,3108340735,NL
@@ -64446,7 +66984,8 @@
3108745216,3108746239,ES
3108746240,3108747263,RU
3108747264,3108748287,DE
-3108748288,3108749311,RU
+3108748288,3108749055,RU
+3108749056,3108749311,KZ
3108749312,3108750335,HU
3108750336,3108751359,IR
3108751360,3108752383,RU
@@ -64779,7 +67318,9 @@
3109083136,3109084159,SE
3109084160,3109084170,GB
3109084171,3109084171,NL
-3109084172,3109085183,GB
+3109084172,3109084178,GB
+3109084179,3109084179,NL
+3109084180,3109085183,GB
3109085184,3109086207,AL
3109086208,3109087231,RU
3109087232,3109088255,NL
@@ -65125,7 +67666,8 @@
3109428224,3109429247,CH
3109429248,3109430271,ES
3109430272,3109431295,IR
-3109431296,3109432319,IL
+3109431296,3109431807,IL
+3109431808,3109432319,IT
3109432320,3109433343,MT
3109433344,3109435391,FR
3109435392,3109436415,UA
@@ -65157,7 +67699,9 @@
3109465088,3109466111,DE
3109466112,3109467135,FR
3109467136,3109468159,IR
-3109468160,3109468351,GB
+3109468160,3109468322,GB
+3109468323,3109468323,ES
+3109468324,3109468351,GB
3109468352,3109468415,ES
3109468416,3109468671,GB
3109468672,3109468799,ES
@@ -65548,7 +68092,8 @@
3109876736,3109877759,ES
3109877760,3109878783,PL
3109878784,3109879807,GB
-3109879808,3109880831,CZ
+3109879808,3109880063,US
+3109880064,3109880831,CZ
3109880832,3109881855,FR
3109881856,3109882879,AT
3109882880,3109883903,NL
@@ -65592,7 +68137,22 @@
3109921792,3109922815,IR
3109922816,3109924863,GB
3109924864,3109925887,IT
-3109925888,3109926911,GB
+3109925888,3109925967,GB
+3109925968,3109925983,DE
+3109925984,3109926015,GB
+3109926016,3109926031,DE
+3109926032,3109926143,GB
+3109926144,3109926159,FR
+3109926160,3109926175,GB
+3109926176,3109926183,IT
+3109926184,3109926207,GB
+3109926208,3109926215,ES
+3109926216,3109926279,GB
+3109926280,3109926287,DE
+3109926288,3109926335,ES
+3109926336,3109926399,GB
+3109926400,3109926655,ES
+3109926656,3109926911,IT
3109926912,3109927935,UA
3109927936,3109928959,DE
3109928960,3109929983,DK
@@ -65678,13 +68238,17 @@
3109982208,3109984255,CH
3109984256,3109985279,RU
3109985280,3109986303,SK
-3109986304,3109987327,SI
+3109986304,3109987327,IT
3109987328,3109988351,RU
3109988352,3109989375,NL
3109989376,3109990399,RU
3109990400,3109991423,GB
3109991424,3109992447,NL
-3109992448,3109995519,GB
+3109992448,3109993471,GB
+3109993472,3109993727,NL
+3109993728,3109993983,FR
+3109993984,3109994239,HU
+3109994240,3109995519,GB
3109995520,3109996543,NL
3109996544,3109997567,IE
3109997568,3109998591,GB
@@ -65840,12 +68404,17 @@
3110159360,3110160383,SI
3110160384,3110161407,BG
3110161408,3110162431,RU
-3110162432,3110163455,IE
+3110162432,3110162687,IE
+3110162688,3110162771,GB
+3110162772,3110162775,IE
+3110162776,3110162943,GB
+3110162944,3110163455,IE
3110163456,3110164479,FR
3110164480,3110165503,SE
3110165504,3110166527,LB
3110166528,3110167551,DE
-3110167552,3110168575,CH
+3110167552,3110167807,FR
+3110167808,3110168575,CH
3110168576,3110169599,LB
3110169600,3110170623,IT
3110170624,3110171647,KZ
@@ -65906,7 +68475,9 @@
3110224896,3110225919,AT
3110225920,3110226943,CH
3110226944,3110227967,KZ
-3110227968,3110231039,RU
+3110227968,3110230015,RU
+3110230016,3110230271,KZ
+3110230272,3110231039,RU
3110231040,3110232063,DE
3110232064,3110233087,DK
3110233088,3110234879,NL
@@ -65987,14 +68558,19 @@
3110304768,3110305791,KZ
3110305792,3110306815,NL
3110306816,3110307327,NZ
-3110307328,3110307452,BY
+3110307328,3110307452,GB
3110307453,3110307453,NL
-3110307454,3110307839,BY
+3110307454,3110307583,GB
+3110307584,3110307683,BY
+3110307684,3110307684,BR
+3110307685,3110307839,BY
3110307840,3110308863,IE
3110308864,3110309887,RS
3110309888,3110310911,DE
3110310912,3110311935,FR
-3110311936,3110315007,RU
+3110311936,3110312959,RU
+3110312960,3110313983,UA
+3110313984,3110315007,RU
3110315008,3110316031,GB
3110316032,3110317055,RU
3110317056,3110318079,PL
@@ -66038,7 +68614,8 @@
3110358016,3110359039,GE
3110359040,3110360063,IT
3110360064,3110360575,RO
-3110360576,3110361087,FI
+3110360576,3110360831,FI
+3110360832,3110361087,RO
3110361088,3110362111,ES
3110362112,3110363135,CZ
3110363136,3110364159,KW
@@ -66261,7 +68838,8 @@
3110595584,3110596607,NL
3110596608,3110597631,SE
3110597632,3110599679,IR
-3110599680,3110600703,RU
+3110599680,3110600191,RU
+3110600192,3110600703,UA
3110600704,3110601727,GR
3110601728,3110602751,RU
3110602752,3110603775,NL
@@ -66339,14 +68917,14 @@
3110685696,3110686719,NL
3110686720,3110687743,BE
3110687744,3110688767,RO
-3110688768,3110689791,RU
+3110688768,3110689791,UA
3110689792,3110690815,IT
3110690816,3110691839,GB
3110691840,3110692863,RU
3110692864,3110693887,IT
3110693888,3110694911,UA
3110694912,3110695935,DE
-3110695936,3110696959,RU
+3110695936,3110696959,UA
3110696960,3110697983,IR
3110697984,3110699007,GB
3110699008,3110700031,IT
@@ -66647,8 +69225,8 @@
3111023616,3111024639,IT
3111024640,3111025663,AT
3111025664,3111026687,DE
-3111026688,3111027711,RU
-3111027712,3111028735,UA
+3111026688,3111027967,RU
+3111027968,3111028735,UA
3111028736,3111029759,AT
3111029760,3111031807,SK
3111031808,3111032831,NO
@@ -66771,7 +69349,8 @@
3111157760,3111158783,IR
3111158784,3111159807,CH
3111159808,3111160831,SE
-3111160832,3111161855,RU
+3111160832,3111161343,RU
+3111161344,3111161855,UA
3111161856,3111162879,IS
3111162880,3111163903,IR
3111163904,3111164927,DE
@@ -66909,8 +69488,8 @@
3111310336,3111313407,DE
3111313408,3111313663,GB
3111313664,3111313919,NL
-3111313920,3111314431,AT
-3111314432,3111315455,GB
+3111313920,3111314175,AT
+3111314176,3111315455,GB
3111315456,3111316479,IT
3111316480,3111317503,NL
3111317504,3111318527,SY
@@ -67029,8 +69608,8 @@
3111444480,3111445503,SA
3111445504,3111446527,RU
3111446528,3111447551,DE
-3111447552,3111447791,NL
-3111447792,3111447807,AT
+3111447552,3111447775,GB
+3111447776,3111447807,AT
3111447808,3111448575,GB
3111448576,3111449599,NO
3111449600,3111451647,DE
@@ -67042,7 +69621,8 @@
3111456256,3111456767,DE
3111456768,3111457791,FR
3111457792,3111458303,GB
-3111458304,3111458815,FR
+3111458304,3111458559,FR
+3111458560,3111458815,GB
3111458816,3111459839,NL
3111459840,3111460863,RU
3111460864,3111461887,GR
@@ -67215,7 +69795,9 @@
3111645184,3111646207,IR
3111646208,3111647231,IT
3111647232,3111648255,ES
-3111648256,3111650559,GB
+3111648256,3111648767,GB
+3111648768,3111649023,NL
+3111649024,3111650559,GB
3111650560,3111650815,NL
3111650816,3111651071,SE
3111651072,3111651327,GB
@@ -67226,7 +69808,8 @@
3111654912,3111655423,FR
3111655424,3111656447,NO
3111656448,3111657471,LB
-3111657472,3111658495,GB
+3111657472,3111658239,GB
+3111658240,3111658495,NL
3111658496,3111659519,AL
3111659520,3111660543,IT
3111660544,3111661567,ES
@@ -67311,9 +69894,12 @@
3111755776,3111756799,NO
3111756800,3111757823,NL
3111757824,3111758335,NZ
-3111758336,3111758847,HR
+3111758336,3111758591,NL
+3111758592,3111758847,GB
3111758848,3111759871,DK
-3111759872,3111760895,IS
+3111759872,3111760383,IS
+3111760384,3111760639,GB
+3111760640,3111760895,IS
3111760896,3111761919,NL
3111761920,3111762943,SY
3111762944,3111763967,NL
@@ -67340,7 +69926,8 @@
3111786496,3111787519,IT
3111787520,3111788543,RU
3111788544,3111789567,KZ
-3111789568,3111790591,GB
+3111789568,3111790335,GB
+3111790336,3111790591,TR
3111790592,3111791615,CZ
3111791616,3111792639,IT
3111792640,3111793663,CH
@@ -67984,10 +70571,476 @@
3112516608,3112517631,SK
3112517632,3112518655,RO
3112518656,3112519679,SE
-3112519680,3112520703,NL
+3112519680,3112520191,NL
+3112520192,3112520447,GB
+3112520448,3112520703,NL
3112520704,3112521727,PT
3112521728,3112522751,FR
3112522752,3112523775,SA
+3112523776,3112524799,PL
+3112524800,3112525823,IT
+3112525824,3112526847,ES
+3112526848,3112527871,CZ
+3112527872,3112528895,DE
+3112528896,3112529919,NL
+3112529920,3112530943,DE
+3112530944,3112531967,FR
+3112531968,3112532991,ES
+3112532992,3112534015,KW
+3112534016,3112535039,FR
+3112535040,3112536063,HR
+3112536064,3112537087,CZ
+3112537088,3112538111,NO
+3112538112,3112539135,CZ
+3112539136,3112540159,NL
+3112540160,3112541183,IR
+3112541184,3112542207,GB
+3112542208,3112543231,PL
+3112543232,3112544255,IR
+3112544256,3112545279,GB
+3112545280,3112546303,DE
+3112546304,3112547327,GB
+3112547328,3112548351,SA
+3112548352,3112549375,SI
+3112549376,3112550399,CZ
+3112550400,3112551423,GB
+3112551424,3112552447,CZ
+3112552448,3112553471,ES
+3112553472,3112554495,SE
+3112554496,3112555519,CH
+3112555520,3112556543,IR
+3112556544,3112557567,IT
+3112557568,3112558591,GB
+3112558592,3112559615,IQ
+3112559616,3112560639,RU
+3112560640,3112561663,FR
+3112561664,3112562687,DE
+3112562688,3112563711,CZ
+3112563712,3112564735,AE
+3112564736,3112565759,GB
+3112565760,3112566783,US
+3112566784,3112567807,CZ
+3112567808,3112568831,DE
+3112568832,3112569855,IT
+3112569856,3112571903,SE
+3112571904,3112572927,DE
+3112572928,3112573951,BE
+3112573952,3112574975,DK
+3112574976,3112577023,RU
+3112577024,3112578047,ES
+3112578048,3112579071,DE
+3112579072,3112580095,GB
+3112580096,3112581119,IT
+3112581120,3112582143,NL
+3112582144,3112583167,CZ
+3112583168,3112584191,NL
+3112584192,3112585215,IT
+3112585216,3112586239,RU
+3112586240,3112587263,LU
+3112587264,3112588287,HU
+3112588288,3112589311,DE
+3112589312,3112590335,FI
+3112590336,3112591359,SE
+3112591360,3112592383,IR
+3112592384,3112593407,FI
+3112593408,3112594431,GB
+3112594432,3112595455,DE
+3112595456,3112596479,GR
+3112596480,3112597503,CY
+3112597504,3112598527,RU
+3112598528,3112599551,NO
+3112599552,3112600575,DE
+3112600576,3112601599,SY
+3112601600,3112602623,ES
+3112602624,3112603647,IT
+3112603648,3112604671,IE
+3112604672,3112605695,RU
+3112605696,3112606719,IT
+3112606720,3112607743,FR
+3112607744,3112608767,CZ
+3112608768,3112609791,CH
+3112609792,3112610815,TJ
+3112610816,3112611839,GE
+3112611840,3112612863,LB
+3112612864,3112613887,GB
+3112613888,3112614911,TR
+3112614912,3112615935,SK
+3112615936,3112616959,BG
+3112616960,3112617983,GB
+3112617984,3112620031,RU
+3112620032,3112621055,NL
+3112621056,3112622079,SK
+3112622080,3112623103,NL
+3112623104,3112624127,DE
+3112624128,3112625151,GB
+3112625152,3112626175,BG
+3112626176,3112627199,RU
+3112627200,3112628223,KZ
+3112628224,3112629247,DE
+3112629248,3112630271,NO
+3112630272,3112631295,NL
+3112631296,3112632319,DK
+3112632320,3112633343,PL
+3112633344,3112634367,CZ
+3112634368,3112635391,DE
+3112635392,3112636415,BE
+3112636416,3112637439,AT
+3112637440,3112638463,CZ
+3112638464,3112639487,DE
+3112639488,3112640511,IR
+3112640512,3112641535,DE
+3112641536,3112642559,GB
+3112642560,3112644607,TR
+3112644608,3112645631,SY
+3112645632,3112646655,DE
+3112646656,3112647679,GB
+3112647680,3112648703,DK
+3112648704,3112649727,RO
+3112649728,3112650751,IQ
+3112650752,3112652799,IR
+3112652800,3112653823,RU
+3112653824,3112654847,IR
+3112654848,3112655871,PL
+3112655872,3112656895,IT
+3112656896,3112657919,CY
+3112657920,3112658943,IT
+3112658944,3112659967,GB
+3112659968,3112660991,TR
+3112660992,3112662015,IT
+3112662016,3112663039,ES
+3112663040,3112664063,PL
+3112664064,3112665087,FR
+3112665088,3112666111,GB
+3112666112,3112667135,CZ
+3112667136,3112668159,CH
+3112668160,3112669183,BE
+3112669184,3112670207,CZ
+3112670208,3112671231,RU
+3112671232,3112672255,US
+3112672256,3112673279,DE
+3112673280,3112674303,FR
+3112674304,3112676351,GB
+3112676352,3112677375,RU
+3112677376,3112678399,FR
+3112678400,3112679423,RU
+3112679424,3112680447,BG
+3112680448,3112681471,IQ
+3112681472,3112682495,PL
+3112682496,3112683519,CZ
+3112683520,3112684543,JO
+3112684544,3112685567,ES
+3112685568,3112687615,GB
+3112687616,3112688639,FR
+3112688640,3112689663,TR
+3112689664,3112690687,PL
+3112690688,3112691711,IR
+3112691712,3112692735,RU
+3112692736,3112693759,FR
+3112693760,3112694783,NL
+3112694784,3112695807,GB
+3112695808,3112696831,LU
+3112696832,3112697855,US
+3112697856,3112699903,NL
+3112699904,3112700927,RO
+3112700928,3112701951,KZ
+3112701952,3112702975,MD
+3112702976,3112703231,SE
+3112703232,3112703487,FI
+3112703488,3112703743,DK
+3112703744,3112703999,NO
+3112704000,3112705023,DE
+3112705024,3112706047,ES
+3112706048,3112707071,RU
+3112707072,3112708095,FI
+3112708096,3112709119,FR
+3112709120,3112710143,IL
+3112710144,3112711167,NO
+3112711168,3112712191,PT
+3112712192,3112713215,TR
+3112713216,3112714239,AT
+3112714240,3112715263,NL
+3112715264,3112717311,GB
+3112717312,3112718335,RU
+3112718336,3112719359,AT
+3112719360,3112720383,TR
+3112720384,3112721407,ES
+3112721408,3112722431,PL
+3112722432,3112722687,US
+3112722688,3112723455,BG
+3112723456,3112724479,IR
+3112724480,3112725503,GB
+3112725504,3112726527,CZ
+3112726528,3112727551,DE
+3112727552,3112728575,DK
+3112728576,3112729599,CH
+3112729600,3112730623,IT
+3112730624,3112731647,NO
+3112731648,3112732671,PL
+3112732672,3112733695,IT
+3112733696,3112734719,DE
+3112734720,3112735743,SY
+3112735744,3112736767,IQ
+3112736768,3112737791,PL
+3112737792,3112738815,GB
+3112738816,3112739839,DE
+3112739840,3112741887,GB
+3112741888,3112742911,IR
+3112742912,3112743935,RO
+3112743936,3112744959,IR
+3112744960,3112745983,US
+3112745984,3112747007,NL
+3112747008,3112748031,IR
+3112748032,3112750079,CZ
+3112750080,3112751103,TR
+3112751104,3112752127,BE
+3112752128,3112753151,AT
+3112753152,3112754175,ES
+3112754176,3112755199,IR
+3112755200,3112756223,PL
+3112756224,3112757247,AT
+3112757248,3112758271,GB
+3112758272,3112759295,NL
+3112759296,3112760319,IQ
+3112760320,3112762367,GB
+3112762368,3112763391,IE
+3112763392,3112764415,GB
+3112764416,3112765439,NO
+3112765440,3112766463,GB
+3112766464,3112767487,DE
+3112767488,3112768511,NL
+3112768512,3112769535,IE
+3112769536,3112770559,IR
+3112770560,3112771583,DE
+3112771584,3112772607,NL
+3112772608,3112773631,UA
+3112773632,3112774655,BE
+3112774656,3112775679,ES
+3112775680,3112776703,PL
+3112776704,3112778751,ES
+3112778752,3112779775,IR
+3112780800,3112781823,ES
+3112781824,3112782847,FR
+3112782848,3112783871,RU
+3112783872,3112784895,NL
+3112784896,3112785919,IT
+3112785920,3112786943,TR
+3112786944,3112787967,DE
+3112787968,3112788991,LU
+3112788992,3112791039,ES
+3112791040,3112792063,IR
+3112792064,3112793087,DK
+3112793088,3112794111,BY
+3112794112,3112795135,DE
+3112795136,3112796159,CZ
+3112796160,3112797183,GB
+3112797184,3112798207,RO
+3112798208,3112799231,DE
+3112799232,3112800255,ES
+3112800256,3112801279,CZ
+3112801280,3112802303,PL
+3112802304,3112803327,ES
+3112803328,3112804351,RO
+3112804352,3112805375,RU
+3112805376,3112806399,CH
+3112806400,3112807423,DE
+3112807424,3112808447,CH
+3112808448,3112809471,RU
+3112809472,3112809983,GB
+3112809984,3112810495,NL
+3112810496,3112811519,DE
+3112811520,3112812543,SE
+3112812544,3112814591,GB
+3112814592,3112815615,NL
+3112815616,3112816639,IT
+3112816640,3112817663,NL
+3112817664,3112818687,TR
+3112818688,3112819711,UA
+3112819712,3112820735,GB
+3112820736,3112821759,IT
+3112821760,3112822783,FR
+3112822784,3112823807,RU
+3112823808,3112824831,CH
+3112824832,3112825855,GB
+3112825856,3112826879,SA
+3112826880,3112827903,PL
+3112827904,3112828927,FR
+3112828928,3112829951,US
+3112829952,3112830975,DE
+3112830976,3112831999,RU
+3112832000,3112833023,AZ
+3112833024,3112834047,ES
+3112834048,3112835071,CH
+3112835072,3112836095,DE
+3112836096,3112837119,ES
+3112837120,3112838143,NO
+3112838144,3112839167,IT
+3112839168,3112840191,GR
+3112840192,3112841215,CZ
+3112841216,3112842239,FI
+3112842240,3112843263,DE
+3112843264,3112844287,NL
+3112844288,3112845311,GB
+3112845312,3112846335,SE
+3112846336,3112847359,CZ
+3112847360,3112848383,NO
+3112848384,3112849407,UA
+3112849408,3112850431,NL
+3112850432,3112851455,TR
+3112851456,3112852479,RU
+3112852480,3112853503,ES
+3112853504,3112854527,BE
+3112854528,3112855551,KG
+3112855552,3112856575,FR
+3112856576,3112857599,CZ
+3112857600,3112858623,IE
+3112858624,3112859647,FR
+3112859648,3112860671,IQ
+3112860672,3112861695,AT
+3112861696,3112862719,RU
+3112862720,3112863743,GB
+3112863744,3112865791,DE
+3112865792,3112866815,DK
+3112866816,3112867839,FR
+3112867840,3112869887,GB
+3112869888,3112870911,RU
+3112870912,3112871935,DE
+3112871936,3112872959,IL
+3112872960,3112873983,IS
+3112873984,3112875007,BG
+3112875008,3112876031,RU
+3112876032,3112877055,KG
+3112877056,3112878079,CZ
+3112878080,3112880127,GB
+3112880128,3112882175,RU
+3112882176,3112883199,NL
+3112883200,3112884223,RU
+3112884224,3112885247,IT
+3112885248,3112886271,CZ
+3112886272,3112887295,PL
+3112887296,3112888319,UA
+3112888320,3112889343,GB
+3112889344,3112890367,PL
+3112890368,3112891391,NL
+3112891392,3112892415,CZ
+3112892416,3112893439,NL
+3112893440,3112894463,RU
+3112894464,3112895487,DE
+3112895488,3112896511,BG
+3112896512,3112897535,SA
+3112897536,3112898559,LB
+3112898560,3112899583,PL
+3112899584,3112900607,FR
+3112900608,3112901631,GB
+3112901632,3112902655,IT
+3112902656,3112903679,DE
+3112903680,3112904703,GB
+3112904704,3112905727,PL
+3112905728,3112906751,BE
+3112906752,3112907775,IT
+3112907776,3112908799,UA
+3112908800,3112909823,GE
+3112909824,3112910847,ES
+3112910848,3112911871,IR
+3112911872,3112912895,RO
+3112912896,3112913919,CH
+3112913920,3112914943,DE
+3112914944,3112916991,DK
+3112916992,3112918015,NO
+3112918016,3112920063,DE
+3112920064,3112921087,DK
+3112921088,3112922111,IT
+3112922112,3112923135,RU
+3112923136,3112924159,DE
+3112924160,3112925183,GE
+3112925184,3112926207,SA
+3112926208,3112927231,PL
+3112927232,3112928255,US
+3112928256,3112929279,FR
+3112929280,3112930303,UZ
+3112930304,3112932351,GB
+3112932352,3112933375,NL
+3112933376,3112934399,NO
+3112934400,3112935423,DE
+3112935424,3112937471,NO
+3112937472,3112938495,FI
+3112938496,3112939519,NO
+3112939520,3112940543,ES
+3112940544,3112941567,IT
+3112941568,3112942591,CH
+3112942592,3112943615,NO
+3112943616,3112944639,ES
+3112944640,3112945663,TR
+3112945664,3112946687,UA
+3112946688,3112947711,DE
+3112947712,3112948735,AT
+3112948736,3112949759,RU
+3112949760,3112950783,CZ
+3112950784,3112951807,JO
+3112951808,3112952831,SK
+3112952832,3112953855,IL
+3112953856,3112954879,DK
+3112954880,3112955903,DE
+3112955904,3112956927,IL
+3112956928,3112958975,FR
+3112958976,3112959999,EE
+3112960000,3112961023,DK
+3112961024,3112962047,IR
+3112962048,3112963071,GB
+3112963072,3112964095,IR
+3112964096,3112965119,GB
+3112965120,3112966143,NL
+3112966144,3112967167,PL
+3112967168,3112968191,SK
+3112968192,3112969215,ES
+3112969216,3112970239,DE
+3112970240,3112971263,SK
+3112971264,3112972287,FR
+3112972288,3112973311,US
+3112973312,3112974335,SE
+3112974336,3112975359,IR
+3112975360,3112977407,ES
+3112977408,3112978431,FR
+3112978432,3112979455,NL
+3112979456,3112980479,PL
+3112980480,3112981503,GB
+3112981504,3112982527,AT
+3112982528,3112983551,CH
+3112983552,3112984575,IE
+3112984576,3112985599,AE
+3112985600,3112986623,PL
+3112986624,3112987647,DE
+3112987648,3112988671,HU
+3112988672,3112989695,AT
+3112989696,3112990719,SE
+3112990720,3112991743,PL
+3112991744,3112992767,TR
+3112992768,3112993791,FR
+3112993792,3112994815,RU
+3112994816,3112995839,FR
+3112995840,3112996863,AT
+3112996864,3112997887,GB
+3112997888,3112998911,RU
+3112998912,3112999935,IT
+3112999936,3113000959,NL
+3113000960,3113001983,RU
+3113001984,3113003007,NL
+3113003008,3113004031,IT
+3113004032,3113006079,US
+3113006080,3113007103,PS
+3113007104,3113008127,NL
+3113008128,3113009151,ES
+3113009152,3113010175,IQ
+3113010176,3113011199,FR
+3113011200,3113013247,DE
+3113013248,3113014271,RU
+3113014272,3113016319,ES
+3113016320,3113017343,FI
+3113017344,3113018367,NL
+3113018368,3113019391,LT
+3113019392,3113020415,IR
+3113020416,3113021439,CZ
+3113021440,3113022463,IR
+3113022464,3113023487,CZ
3113710318,3113710318,CA
3120562176,3120594943,CO
3120594944,3120599039,AR
@@ -68211,16 +71264,15 @@
3133067264,3133071359,PA
3133071360,3133071871,CY
3133071872,3133073407,PA
-3133073408,3133073663,CW
-3133073664,3133073919,AW
-3133073920,3133074431,CW
+3133073408,3133074431,CW
3133074432,3133075455,CL
3133075456,3133079551,CW
3133079552,3133145087,AR
3133145088,3133311999,BR
3133312000,3133313023,MX
3133313024,3134289919,BR
-3134291968,3136961535,BR
+3134291968,3135832063,BR
+3135833088,3136961535,BR
3136962560,3136985087,BR
3136985088,3136986111,AR
3136986112,3140614143,BR
@@ -68273,7 +71325,9 @@
3156933888,3156933909,CN
3156933910,3156933910,SG
3156933911,3156934143,CN
-3156934144,3156934655,SG
+3156934144,3156934527,SG
+3156934528,3156934591,CN
+3156934592,3156934655,SG
3156934656,3157000191,RU
3157000192,3157008383,MK
3157008384,3157016575,RU
@@ -68287,7 +71341,9 @@
3157786624,3158048767,TR
3158048768,3158070548,CH
3158070549,3158070549,SE
-3158070550,3158310911,CH
+3158070550,3158259455,CH
+3158259456,3158259711,DE
+3158259712,3158310911,CH
3158310912,3158312959,FI
3158312960,3158315007,AZ
3158315008,3158317055,DE
@@ -68341,9 +71397,11 @@
3158417408,3158419455,NL
3158419456,3158421503,FR
3158421504,3158423551,GB
-3158423552,3158425159,MT
+3158423552,3158425087,MT
+3158425088,3158425159,NL
3158425160,3158425167,IE
-3158425168,3158425599,MT
+3158425168,3158425343,NL
+3158425344,3158425599,MT
3158425600,3158427647,NL
3158427648,3158429695,DE
3158429696,3158431743,RU
@@ -68368,7 +71426,9 @@
3158638592,3158704127,LT
3158704128,3158835199,KW
3158835200,3158851583,IQ
-3158851584,3158859775,RU
+3158851584,3158853375,RU
+3158853376,3158853631,NL
+3158853632,3158859775,RU
3158859776,3158859903,NL
3158859904,3158860031,CZ
3158860032,3158860287,GB
@@ -68562,29 +71622,25 @@
3161616384,3161618431,GB
3161618432,3161620479,IQ
3161620480,3161636863,DK
-3161636864,3161641215,RU
-3161641216,3161641983,UA
-3161641984,3161642239,RU
-3161642240,3161645055,UA
+3161636864,3161639423,RU
+3161639424,3161639935,UA
+3161639936,3161640447,RU
+3161640448,3161645055,UA
3161645056,3161651975,RU
3161651976,3161651976,SE
3161651977,3161653247,RU
3161653248,3161669631,LU
-3161669632,3161670143,FR
-3161670144,3161670399,RE
-3161670400,3161671423,FR
-3161671424,3161671679,RE
-3161671680,3161671935,FR
-3161671936,3161672191,RE
-3161672192,3161678335,FR
-3161678336,3161678591,MQ
-3161678592,3161679871,FR
+3161669632,3161679871,FR
3161679872,3161680127,GP
3161680128,3161680383,FR
3161680384,3161680895,GP
3161680896,3161681151,FR
3161681152,3161681407,GP
-3161681408,3161686015,FR
+3161681408,3161682431,FR
+3161682432,3161682687,GF
+3161682688,3161684479,FR
+3161684480,3161684735,MQ
+3161684736,3161686015,FR
3161686016,3161702399,UA
3161702400,3161718783,AM
3161718784,3161735167,PL
@@ -68659,9 +71715,7 @@
3162316800,3162324991,PL
3162324992,3162327039,IE
3162327040,3162329087,CH
-3162329088,3162329225,IR
-3162329226,3162329226,IE
-3162329227,3162331135,IR
+3162329088,3162331135,IE
3162331136,3162333183,GB
3162333184,3162341375,IT
3162341376,3162349567,PL
@@ -68768,7 +71822,9 @@
3164936192,3164937749,LT
3164937750,3164937750,FR
3164937751,3164938239,LT
-3164938240,3164946727,FR
+3164938240,3164939705,FR
+3164939706,3164939706,ES
+3164939707,3164946727,FR
3164946728,3164946731,NL
3164946732,3164947067,FR
3164947068,3164947071,IT
@@ -68860,7 +71916,10 @@
3164976160,3164976295,FR
3164976296,3164976303,IT
3164976304,3164995583,FR
-3164995584,3165040639,NL
+3164995584,3165032447,NL
+3165032448,3165036543,GB
+3165036544,3165038591,NL
+3165038592,3165040639,GB
3165040640,3165044735,SG
3165044736,3165048831,NL
3165048832,3165061119,SG
@@ -68901,12 +71960,13 @@
3166306304,3166437375,RU
3166437376,3166568447,BE
3166568448,3166593023,UA
-3166593792,3166594047,UA
3166601216,3166609407,RU
3166609408,3166633983,UA
3166633984,3166639103,RU
3166639104,3166639359,UA
-3166639360,3166642175,RU
+3166639360,3166641407,RU
+3166641408,3166641663,UA
+3166641664,3166642175,RU
3166642176,3166646271,UA
3166646272,3166650367,CZ
3166650368,3166654463,UA
@@ -68979,7 +72039,7 @@
3167899648,3167902719,RO
3167902720,3167902975,BE
3167902976,3167903231,NL
-3167903232,3167903743,RO
+3167903232,3167903743,DE
3167903744,3167932415,IR
3167932416,3167933439,CH
3167933440,3167933695,RO
@@ -69059,7 +72119,7 @@
3168111360,3168111615,IT
3168111616,3168112639,FR
3168112640,3168116735,IR
-3168116736,3168120831,RO
+3168116736,3168120831,IT
3168120832,3168126975,IR
3168126976,3168127999,RO
3168128000,3168128255,MX
@@ -69073,7 +72133,8 @@
3168131712,3168131839,CN
3168131840,3168132095,RO
3168132096,3168133119,MD
-3168133120,3168135679,RO
+3168133120,3168135167,NL
+3168135168,3168135679,RO
3168135680,3168136191,CZ
3168136192,3168137471,RO
3168137472,3168137727,MD
@@ -69117,7 +72178,8 @@
3168192000,3168192255,GB
3168192256,3168192511,RO
3168192512,3168194559,MD
-3168194560,3168198655,RO
+3168194560,3168196607,RO
+3168196608,3168198655,IR
3168198656,3168199167,ES
3168199168,3168199679,RO
3168199680,3168200703,MD
@@ -69131,7 +72193,9 @@
3168212736,3168212991,FR
3168212992,3168215551,RO
3168215552,3168215807,TH
-3168215808,3168223743,RO
+3168215808,3168221183,RO
+3168221184,3168223231,ES
+3168223232,3168223743,RO
3168223744,3168224255,MD
3168224256,3168237567,RO
3168237568,3168239615,PS
@@ -69182,9 +72246,12 @@
3169648640,3169714175,MD
3169714176,3169779711,FI
3169779712,3169845247,UA
-3169845248,3169854463,RO
+3169845248,3169851391,RO
+3169851392,3169853439,NL
+3169853440,3169854463,RO
3169854464,3169854719,ES
-3169854720,3169863167,RO
+3169854720,3169862911,RO
+3169862912,3169863167,IT
3169863168,3169863423,MD
3169863424,3169863679,RO
3169863680,3169864703,MD
@@ -69207,7 +72274,9 @@
3169905664,3169906687,ES
3169906688,3169913855,RO
3169913856,3169914111,GB
-3169914112,3169920767,RO
+3169914112,3169916927,RO
+3169916928,3169918975,PL
+3169918976,3169920767,RO
3169920768,3169921023,BZ
3169921024,3169923071,GB
3169923072,3169927423,RO
@@ -69367,8 +72436,7 @@
3187948544,3187948799,GT
3187948800,3187948927,HN
3187948928,3187949311,GT
-3187949312,3187949439,HN
-3187949440,3187949567,GT
+3187949312,3187949567,HN
3187949568,3187950126,BQ
3187950127,3187950127,CW
3187950128,3187953663,BQ
@@ -69547,9 +72615,7 @@
3191611392,3191619583,VE
3191619584,3191619903,CL
3191619904,3191619935,VE
-3191619936,3191624191,CL
-3191624192,3191624447,CO
-3191624448,3191635967,CL
+3191619936,3191635967,CL
3191635968,3191637759,CO
3191637760,3191638015,AR
3191638016,3191647743,CO
@@ -70027,7 +73093,9 @@
3195235328,3195235583,PA
3195235584,3195236351,CR
3195236352,3195240447,AR
-3195240448,3195256831,HT
+3195240448,3195253247,HT
+3195253248,3195253503,DO
+3195253504,3195256831,HT
3195256832,3195265023,AR
3195265024,3195273215,CO
3195273216,3195535359,PE
@@ -70114,9 +73182,7 @@
3195809280,3195809791,BZ
3195809792,3195811839,PE
3195811840,3195813887,AR
-3195813888,3195814655,DO
-3195814656,3195814911,GP
-3195814912,3195822079,DO
+3195813888,3195822079,DO
3195822080,3195830271,CO
3195830272,3195838463,AR
3195838464,3195840511,HN
@@ -70183,9 +73249,7 @@
3199565824,3199582207,NI
3199582208,3199598591,HN
3199598592,3199631359,CO
-3199631360,3199719167,AR
-3199719168,3199719423,DE
-3199719424,3199729663,AR
+3199631360,3199729663,AR
3199729664,3199762431,NI
3199762432,3199778815,CO
3199778816,3199779839,AR
@@ -70233,10 +73297,10 @@
3201560576,3201561599,PY
3201561600,3201562623,AR
3201562624,3201563647,CL
-3201563648,3201564287,PA
-3201564288,3201564415,GB
-3201564416,3201564543,PA
-3201564544,3201564671,GB
+3201563648,3201563903,CH
+3201563904,3201564159,DE
+3201564160,3201564415,GB
+3201564416,3201564671,NL
3201564672,3201630207,NI
3201630208,3201695743,TT
3201695744,3201761279,EC
@@ -70250,16 +73314,18 @@
3201867776,3201875967,PE
3201875968,3201880063,CO
3201880064,3201884159,EC
-3201884160,3201894399,VE
-3201894400,3201925119,AR
+3201884160,3201891583,VE
+3201891584,3201891839,US
+3201891840,3201894399,VE
+3201894400,3201905407,AR
+3201905408,3201905663,CO
+3201905664,3201925119,AR
3201925120,3201957887,CL
3201957888,3202088959,PA
3202088960,3202127999,AR
3202128000,3202128015,CW
3202128016,3202220031,AR
-3202220032,3202280447,PE
-3202280448,3202280575,SE
-3202280576,3202351103,PE
+3202220032,3202351103,PE
3202351104,3202875391,AR
3202875392,3203399679,PE
3203399680,3203465215,CO
@@ -70384,7 +73450,8 @@
3210765056,3210765071,SE
3210765072,3210765311,BR
3210765312,3210765567,CL
-3210765568,3210766079,US
+3210765568,3210765823,US
+3210765824,3210766079,ES
3210766080,3210766335,CL
3210766336,3210766591,US
3210766592,3210766847,CL
@@ -70709,76 +73776,70 @@
3212574720,3212836863,CL
3212836864,3213885439,BR
3213885440,3214934015,CO
-3214934016,3219652607,BR
-3219652608,3219653119,US
-3219653120,3219653127,BR
+3214934016,3219653127,BR
3219653128,3219653135,US
-3219653136,3219653183,AU
-3219653184,3219653247,BR
-3219653248,3219653663,HK
-3219653664,3219653695,SG
-3219653696,3219653711,AU
-3219653712,3219653727,US
-3219653728,3219653823,JP
-3219653824,3219653887,BR
-3219653888,3219654399,US
-3219654400,3219654463,CH
-3219654464,3219654527,SE
-3219654528,3219657727,US
-3219657728,3219657983,SG
-3219657984,3219658239,HK
-3219658240,3219658495,FI
-3219658496,3219658751,SE
-3219658752,3219673183,US
-3219673184,3219673343,BR
-3219673344,3219673599,US
-3219673600,3219673951,BR
-3219673952,3219673983,IE
-3219673984,3219685375,BR
-3219685376,3219726335,US
+3219653136,3219653715,BR
+3219653716,3219653716,US
+3219653717,3219673087,BR
+3219673088,3219673151,US
+3219673152,3219673215,BR
+3219673216,3219673343,US
+3219673344,3219673727,BR
+3219673728,3219673855,US
+3219673856,3219726335,BR
3219726336,3219734527,JP
3219734528,3219750911,NL
-3219750912,3219783679,US
-3219783680,3219783743,AU
+3219750912,3219755007,BR
+3219755008,3219755263,US
+3219755264,3219761151,BR
+3219761152,3219765247,US
+3219765248,3219783743,BR
3219783744,3219783751,HK
-3219783752,3219783807,BR
-3219783808,3219783871,AU
-3219783872,3219783935,BR
+3219783752,3219783935,BR
3219783936,3219784191,US
3219784192,3219784703,HK
-3219784704,3219787775,US
+3219784704,3219785727,BR
+3219785728,3219786751,US
+3219786752,3219787263,NL
+3219787264,3219787775,IE
3219787776,3219791871,HK
-3219791872,3219800319,US
-3219800320,3219800575,NL
+3219791872,3219800063,US
+3219800064,3219800575,BR
3219800576,3219800591,US
3219800592,3219800703,BR
3219800704,3219800847,US
-3219800848,3219800863,BR
-3219800864,3219800895,US
-3219800896,3219802111,BR
+3219800848,3219802111,BR
3219802112,3219802623,US
-3219802624,3219803135,NL
-3219803136,3219808255,US
-3219808256,3219816447,BR
+3219802624,3219803135,BR
+3219803136,3219803647,SG
+3219803648,3219804159,US
+3219804160,3219808767,BR
+3219808768,3219816447,NL
3219816448,3219818495,US
3219818496,3219819007,BR
3219819008,3219819519,JP
-3219819520,3219820543,HK
-3219820544,3219841023,US
+3219819520,3219820063,HK
+3219820064,3219820079,JP
+3219820080,3219821567,HK
+3219821568,3219824127,BR
+3219824128,3219824639,US
+3219824640,3219841023,BR
3219841024,3219842047,NL
-3219842048,3219842815,US
-3219842816,3219843071,JP
-3219843072,3219844351,US
-3219844352,3219845119,BR
+3219842048,3219843071,BR
+3219843072,3219844095,US
+3219844096,3219845119,BR
3219845120,3219847167,US
3219847168,3219848191,BR
3219848192,3219848447,AU
3219848448,3219849215,BR
-3219849216,3219853311,US
-3219853312,3219865599,BR
-3219865600,3219881983,US
+3219849216,3219851263,US
+3219851264,3219852287,NL
+3219852288,3219853311,IE
+3219853312,3219881983,BR
3219881984,3219914751,IE
-3219914752,3220039679,US
+3219914752,3220029439,US
+3220029440,3220037631,IE
+3220037632,3220039679,US
3220039680,3220040703,NL
3220040704,3220041215,JP
3220041216,3220041471,HK
@@ -70838,7 +73899,9 @@
3221576448,3221577727,US
3221577728,3221577983,CA
3221577984,3221578239,NL
-3221578240,3221589503,US
+3221578240,3221578313,US
+3221578314,3221578314,JP
+3221578315,3221589503,US
3221589504,3221589759,NL
3221589760,3221590015,US
3221590016,3221590271,CA
@@ -70856,9 +73919,7 @@
3221618176,3221618431,NL
3221618432,3221618687,US
3221618688,3221618943,GB
-3221618944,3221621247,US
-3221621248,3221621503,GB
-3221621504,3221647103,US
+3221618944,3221647103,US
3221647104,3221647359,FR
3221647360,3221656831,US
3221656832,3221657087,AU
@@ -70924,7 +73985,21 @@
3222075136,3222075391,NL
3222075392,3222274559,US
3222274560,3222274815,AU
-3222274816,3222305535,US
+3222274816,3222275071,US
+3222275072,3222275583,JP
+3222275584,3222277631,US
+3222277632,3222278143,IT
+3222278144,3222279679,US
+3222279680,3222280191,PL
+3222280192,3222281215,US
+3222281216,3222281727,GB
+3222281728,3222284543,US
+3222284544,3222285055,BR
+3222285056,3222287359,US
+3222287360,3222287871,NL
+3222287872,3222288383,US
+3222288384,3222288895,JP
+3222288896,3222305535,US
3222305536,3222309119,SE
3222309120,3222309375,DE
3222309376,3222313727,SE
@@ -70956,9 +74031,10 @@
3222941696,3222952703,US
3222952704,3222952959,AU
3222952960,3222953215,US
-3222953216,3222953727,AU
+3222953216,3222953471,JP
+3222953472,3222953727,AU
3222953728,3222953983,US
-3222953984,3222954239,AU
+3222953984,3222954239,JP
3222954240,3222956287,US
3222956288,3222957567,FI
3222957824,3222962431,FI
@@ -71045,7 +74121,24 @@
3223316480,3223321343,US
3223321344,3223321599,CA
3223321600,3223321855,FR
-3223321856,3223390719,US
+3223321856,3223331455,US
+3223331456,3223331487,IE
+3223331488,3223332879,US
+3223332880,3223332911,GB
+3223332912,3223333031,US
+3223333032,3223333039,IE
+3223333040,3223333543,US
+3223333544,3223333551,IE
+3223333552,3223333655,US
+3223333656,3223333663,NL
+3223333664,3223333743,US
+3223333744,3223333767,IE
+3223333768,3223333775,US
+3223333776,3223333783,IE
+3223333784,3223333823,NL
+3223333824,3223335703,US
+3223335704,3223335711,SG
+3223335712,3223390719,US
3223390720,3223390975,MU
3223390976,3223391999,US
3223392000,3223392511,NL
@@ -71261,7 +74354,7 @@
3223964160,3223964415,US
3223964416,3223964671,AU
3223964672,3223965183,US
-3223965184,3223965439,AU
+3223965184,3223965439,ID
3223965440,3223966207,US
3223966208,3223966463,NL
3223966464,3223967743,US
@@ -71309,7 +74402,7 @@
3224030464,3224030719,US
3224030720,3224030975,CA
3224030976,3224038655,US
-3224038656,3224038911,AU
+3224038656,3224038911,JP
3224038912,3224084991,US
3224084992,3224087551,SE
3224087552,3224088063,US
@@ -71521,7 +74614,8 @@
3224884480,3224885247,US
3224885248,3224885503,CA
3224885504,3224886015,US
-3224886016,3224886527,AU
+3224886016,3224886271,AU
+3224886272,3224886527,JP
3224886528,3224887295,US
3224887296,3224887551,CA
3224887552,3224889343,US
@@ -71553,7 +74647,9 @@
3225057792,3225060607,US
3225060608,3225061631,AU
3225061632,3225062399,US
-3225062400,3225063423,VC
+3225062400,3225062911,VC
+3225062912,3225063167,LC
+3225063168,3225063423,VC
3225063424,3225076223,US
3225076224,3225076479,CA
3225076480,3225076991,US
@@ -71781,7 +74877,9 @@
3225785600,3225788159,CA
3225788160,3225807359,US
3225807360,3225807615,DE
-3225807616,3225812991,US
+3225807616,3225811711,US
+3225811712,3225811967,GB
+3225811968,3225812991,US
3225812992,3225843711,FR
3225843712,3225847039,US
3225847040,3225847551,NL
@@ -71885,9 +74983,10 @@
3226012672,3226012927,AU
3226012928,3226014463,US
3226014464,3226014975,NL
-3226014976,3226015487,AU
+3226014976,3226015231,NZ
+3226015232,3226015487,AU
3226015488,3226015743,US
-3226015744,3226016255,AU
+3226015744,3226016255,ID
3226016256,3226018303,US
3226018304,3226018559,DE
3226018560,3226021119,CH
@@ -71970,7 +75069,9 @@
3226305536,3226307327,GB
3226307328,3226307583,US
3226307584,3226308095,NL
-3226308096,3226366975,US
+3226308096,3226335231,US
+3226335232,3226335487,RO
+3226335488,3226366975,US
3226366976,3226367231,CA
3226367232,3226374143,US
3226374144,3226375423,DE
@@ -72087,13 +75188,11 @@
3226696192,3226696703,AU
3226696704,3226697727,US
3226697728,3226697983,CA
-3226697984,3226698495,US
-3226698496,3226698751,CA
-3226698752,3226700287,US
-3226700288,3226700799,CA
-3226700800,3226701055,US
-3226701056,3226701567,CA
-3226701568,3226705151,US
+3226697984,3226698239,US
+3226698240,3226699519,CA
+3226699520,3226700287,US
+3226700288,3226701823,CA
+3226701824,3226705151,US
3226705152,3226705407,AU
3226705408,3226705919,US
3226705920,3226706175,FR
@@ -72176,7 +75275,7 @@
3226792960,3226793215,ZA
3226793216,3226793983,DE
3226793984,3226795263,US
-3226795264,3226795519,AU
+3226795264,3226795519,NZ
3226795520,3226800127,US
3226800128,3226800639,DE
3226800640,3226811391,US
@@ -72220,7 +75319,7 @@
3226992640,3226992895,US
3226992896,3226993151,NL
3226993152,3226993663,US
-3226993664,3226993919,NL
+3226993664,3226993919,DE
3226993920,3226994175,US
3226994176,3226994687,AU
3226994688,3226994943,US
@@ -72233,8 +75332,8 @@
3227013120,3227013375,AU
3227013376,3227013887,US
3227013888,3227014399,NL
-3227014400,3227014655,AU
-3227014656,3227014911,NL
+3227014400,3227014655,NZ
+3227014656,3227014911,FI
3227014912,3227017471,US
3227017472,3227017983,NL
3227018240,3227018495,US
@@ -72279,7 +75378,7 @@
3227237120,3227237631,US
3227237632,3227237887,NO
3227237888,3227238143,US
-3227238144,3227238399,NL
+3227238144,3227238399,GB
3227238400,3227240191,US
3227240192,3227240447,GB
3227240704,3227240959,GB
@@ -72336,8 +75435,8 @@
3227312384,3227320319,US
3227320320,3227362047,FR
3227362048,3227362303,US
-3227362304,3227362559,GB
-3227362560,3227385855,FR
+3227362304,3227362815,GB
+3227362816,3227385855,FR
3227385856,3227391999,US
3227392000,3227392255,NL
3227392256,3227393023,US
@@ -72359,7 +75458,7 @@
3227405568,3227414271,US
3227414272,3227416063,GB
3227416064,3227417087,US
-3227417088,3227417343,AU
+3227417088,3227417343,BN
3227417344,3227418111,US
3227418112,3227418367,CA
3227418368,3227425791,US
@@ -72515,7 +75614,9 @@
3227765481,3227765482,US
3227765483,3227765503,CA
3227765504,3227765759,US
-3227765760,3227777759,CA
+3227765760,3227774751,CA
+3227774752,3227774783,US
+3227774784,3227777759,CA
3227777760,3227777763,US
3227777764,3227777951,CA
3227777952,3227777967,US
@@ -72593,7 +75694,7 @@
3227846912,3227847423,US
3227847424,3227847679,NL
3227847680,3227848703,US
-3227848704,3227848959,AU
+3227848704,3227848959,NZ
3227848960,3227851775,US
3227851776,3227852031,NL
3227852032,3227853311,US
@@ -72605,7 +75706,7 @@
3227864064,3227865343,US
3227865344,3227867647,NL
3227867648,3227867903,BR
-3227867904,3227868159,AU
+3227867904,3227868159,TH
3227868160,3227872767,US
3227872768,3227873023,GB
3227873024,3227874047,NL
@@ -72617,7 +75718,9 @@
3227879680,3227879935,NL
3227879936,3227880959,US
3227880960,3227881215,MU
-3227881216,3227885823,US
+3227881216,3227883319,US
+3227883320,3227883320,CA
+3227883321,3227885823,US
3227885824,3227887871,ES
3227887872,3227888127,PR
3227888128,3227888383,NL
@@ -72661,8 +75764,7 @@
3227955712,3227964927,US
3227964928,3227965183,NL
3227965184,3227967487,US
-3227967488,3227967743,FR
-3227967744,3227967999,NL
+3227967488,3227967999,NL
3227968000,3227968255,US
3227968256,3227968767,GB
3227968768,3227969023,RU
@@ -72687,7 +75789,8 @@
3227982848,3227985919,GB
3227985920,3227986175,DE
3227986176,3227986431,US
-3227986432,3227986943,AU
+3227986432,3227986687,AU
+3227986688,3227986943,JP
3227986944,3227987455,US
3227987456,3227987711,AU
3227987712,3227997439,US
@@ -72742,14 +75845,15 @@
3228084480,3228085247,US
3228085248,3228085503,AU
3228085504,3228100607,US
-3228100608,3228101119,AU
+3228100608,3228101119,JP
3228101120,3228102143,US
3228102144,3228102399,NL
3228102400,3228103423,US
3228103424,3228103679,CA
3228103680,3228103935,US
3228103936,3228104191,FR
-3228104192,3228104703,AU
+3228104192,3228104447,JP
+3228104448,3228104703,AU
3228104704,3228104959,NL
3228104960,3228105471,US
3228105472,3228105727,NL
@@ -72784,7 +75888,8 @@
3228264704,3228265983,US
3228265984,3228266239,IE
3228266240,3228266495,PR
-3228266496,3228267007,AU
+3228266496,3228266751,AU
+3228266752,3228267007,NZ
3228267008,3228267263,NL
3228267264,3228269055,US
3228269056,3228269311,PT
@@ -72853,7 +75958,7 @@
3228348160,3228353279,US
3228353280,3228358399,SE
3228358400,3228362239,US
-3228362240,3228362495,AU
+3228362240,3228362495,TH
3228362496,3228363263,US
3228363264,3228363519,CH
3228363520,3228364287,US
@@ -72881,23 +75986,27 @@
3228400640,3228402687,DE
3228403200,3228403711,DE
3228403968,3228404223,DE
-3228404736,3228405503,FR
+3228404736,3228404895,FR
+3228404896,3228404991,GB
+3228404992,3228405503,FR
3228405504,3228405759,DE
3228405760,3228406015,FR
3228406016,3228406271,US
3228406272,3228406527,IN
-3228406528,3228407039,FR
+3228406528,3228406783,BR
+3228406784,3228407039,FR
3228407296,3228420095,DE
3228420608,3228420863,DE
3228421120,3228424447,DE
3228424704,3228424959,US
-3228425472,3228425983,DE
+3228425216,3228426239,DE
3228426752,3228427263,DE
3228427776,3228428031,DE
3228428288,3228430335,DE
3228430592,3228430847,DE
3228430848,3228431103,MU
-3228431872,3228434431,DE
+3228431872,3228433663,DE
+3228433920,3228434431,DE
3228434432,3228456191,US
3228456192,3228456447,CA
3228456448,3228457471,US
@@ -72923,7 +76032,7 @@
3228522496,3228522751,NL
3228522752,3228525823,US
3228525824,3228526079,NL
-3228526080,3228526335,AU
+3228526080,3228526335,NZ
3228526336,3228526847,NL
3228526848,3228527103,AU
3228527104,3228531711,US
@@ -73071,7 +76180,8 @@
3229276160,3229281023,IE
3229281024,3229281791,US
3229281792,3229283071,PT
-3229283072,3229354495,US
+3229283072,3229285887,US
+3229286400,3229354495,US
3229354496,3229355775,AU
3229355776,3229358079,US
3229358080,3229358335,AU
@@ -73092,7 +76202,7 @@
3229382144,3229390847,US
3229390848,3229391103,AU
3229391104,3229391359,US
-3229391360,3229391615,AU
+3229391360,3229391615,CN
3229391616,3229391871,NL
3229391872,3229395455,US
3229395456,3229408255,RU
@@ -73135,7 +76245,8 @@
3229830912,3229831167,NL
3229831168,3229833471,US
3229833472,3229833727,NL
-3229833728,3229834495,AU
+3229833728,3229834239,IN
+3229834240,3229834495,AU
3229834496,3229834751,US
3229834752,3229835007,CA
3229835008,3229835263,US
@@ -73162,11 +76273,11 @@
3229878784,3229879039,IT
3229879040,3229879295,NO
3229879296,3229880063,US
-3229880064,3229880319,AU
+3229880064,3229880319,KR
3229880320,3229881087,US
3229881088,3229881343,CA
3229881344,3229884159,US
-3229884160,3229884415,AU
+3229884160,3229884415,JP
3229884416,3229884927,US
3229884928,3229885183,NL
3229885184,3229885439,BR
@@ -73222,9 +76333,10 @@
3229956864,3229958143,US
3229958144,3229958399,NL
3229958400,3229958655,US
-3229958656,3229959167,AU
-3229959168,3229962079,US
-3229962080,3229962111,CA
+3229958656,3229958911,AU
+3229958912,3229959167,SG
+3229959168,3229962047,US
+3229962048,3229962111,CA
3229962112,3229968127,US
3229968384,3229969407,US
3229969408,3229969663,PT
@@ -73267,7 +76379,9 @@
3230096384,3230096639,JP
3230096640,3230096895,US
3230096896,3230097151,JP
-3230097408,3230100735,JP
+3230097408,3230097663,JP
+3230098688,3230098943,JP
+3230099200,3230100735,JP
3230100736,3230100991,US
3230100992,3230101503,PR
3230101504,3230104319,US
@@ -73296,7 +76410,7 @@
3230126848,3230128895,US
3230128896,3230129151,NL
3230129152,3230129663,US
-3230129664,3230129919,AU
+3230129664,3230129919,JP
3230129920,3230130431,US
3230130432,3230130687,NL
3230130688,3230131711,US
@@ -73330,7 +76444,7 @@
3230152192,3230152447,FR
3230152448,3230153215,BF
3230153216,3230153471,FR
-3230153472,3230153727,AU
+3230153472,3230153727,PF
3230153728,3230153983,US
3230153984,3230154239,NL
3230154240,3230156543,US
@@ -73473,7 +76587,7 @@
3230825472,3230826239,ES
3230826240,3230827519,US
3230827520,3230827775,NL
-3230827776,3230828031,AU
+3230827776,3230828031,NZ
3230828032,3230828543,HU
3230828544,3230829055,GB
3230829568,3230830079,RU
@@ -73504,7 +76618,7 @@
3230845184,3230845951,US
3230845952,3230846207,CZ
3230846208,3230849535,US
-3230849536,3230850047,AU
+3230849536,3230850047,NZ
3230850048,3230851839,US
3230851840,3230852351,NL
3230852352,3230852607,BR
@@ -73646,7 +76760,7 @@
3231028736,3231042047,US
3231042048,3231042303,GU
3231042304,3231043839,US
-3231043840,3231044095,AU
+3231043840,3231044095,JP
3231044096,3231047935,US
3231047936,3231048191,GB
3231048192,3231048447,US
@@ -73875,12 +76989,14 @@
3231308288,3231308799,US
3231308800,3231309055,CA
3231310848,3231316735,US
-3231316736,3231316991,AU
+3231316736,3231316991,NZ
3231316992,3231318783,US
3231319040,3231321343,US
3231321344,3231321599,CA
3231321600,3231322111,US
-3231322112,3231324671,SG
+3231322112,3231322367,JP
+3231322368,3231324159,SG
+3231324160,3231324671,JP
3231324672,3231325183,US
3231325184,3231326207,CA
3231326208,3231352831,US
@@ -73899,15 +77015,16 @@
3231478016,3231482879,US
3231482880,3231483135,BE
3231483136,3231484927,US
-3231484928,3231487999,JP
+3231484928,3231485439,JP
+3231485696,3231487999,JP
3231488512,3231488767,JP
3231489280,3231489535,US
3231489536,3231489791,JP
3231489792,3231490047,AU
3231490048,3231490559,US
-3231490560,3231490815,NL
+3231490560,3231490815,GB
3231490816,3231491327,US
-3231491328,3231491583,AU
+3231491328,3231491583,NZ
3231491584,3231491839,US
3231491840,3231492095,GB
3231492096,3231493631,US
@@ -73997,7 +77114,9 @@
3231588864,3231589119,GB
3231589120,3231591679,US
3231591680,3231591935,AU
-3231591936,3231596031,US
+3231591936,3231593983,US
+3231593984,3231594239,GB
+3231594240,3231596031,US
3231596032,3231596543,PR
3231596544,3231634943,US
3231634944,3231635455,CA
@@ -74037,7 +77156,7 @@
3231711232,3231713023,US
3231713024,3231713279,CA
3231713280,3231713791,US
-3231713792,3231714047,NL
+3231713792,3231714047,GB
3231714048,3231715071,US
3231715072,3231715327,NL
3231715328,3231715583,AU
@@ -74124,7 +77243,7 @@
3231793664,3231800319,US
3231800320,3231801343,CN
3231801344,3231809535,CA
-3231809536,3231810047,AU
+3231809536,3231810047,NZ
3231810048,3231842303,US
3231842304,3231843327,RU
3231843328,3231844351,NO
@@ -74231,7 +77350,11 @@
3232098304,3232100095,SE
3232100096,3232100351,IE
3232100352,3232101119,GB
-3232101120,3232104447,SE
+3232101120,3232102143,SE
+3232102144,3232102144,DK
+3232102145,3232102145,SE
+3232102146,3232102399,DK
+3232102400,3232104447,SE
3232104448,3232106495,DE
3232107520,3232108543,RU
3232108544,3232112639,DE
@@ -74258,9 +77381,7 @@
3232163840,3232165887,RU
3232169216,3232169727,DE
3232169728,3232169983,PL
-3232169984,3232183295,IT
-3232183296,3232184319,SI
-3232184320,3232235519,IT
+3232169984,3232235519,IT
3232301056,3232309247,US
3232309248,3232311807,SG
3232311808,3232399615,US
@@ -74368,7 +77489,7 @@
3233548800,3233549055,NL
3233549056,3233549311,BR
3233549312,3233557247,US
-3233557248,3233557503,AU
+3233557248,3233557503,NZ
3233557504,3233561855,EC
3233561856,3233562367,US
3233562368,3233562879,GB
@@ -74376,7 +77497,7 @@
3233563136,3233563903,US
3233563904,3233564159,NL
3233564160,3233564415,US
-3233564416,3233564671,AU
+3233564416,3233564671,NZ
3233564672,3233564927,US
3233564928,3233566719,JP
3233567744,3233567999,US
@@ -74422,7 +77543,8 @@
3233590016,3233590271,TW
3233590272,3233590527,TH
3233590528,3233590783,PR
-3233590784,3233591295,AU
+3233590784,3233591039,PH
+3233591040,3233591295,ID
3233591296,3233593599,US
3233593600,3233593855,NZ
3233593856,3233594111,AU
@@ -74434,7 +77556,7 @@
3233596928,3233605887,US
3233605888,3233607167,PL
3233607168,3233607935,US
-3233607936,3233608191,AU
+3233607936,3233608191,NZ
3233608192,3233609727,HU
3233609984,3233612031,US
3233612032,3233612287,NL
@@ -74445,7 +77567,7 @@
3233615616,3233617407,US
3233617408,3233617663,CA
3233617664,3233617919,NL
-3233617920,3233618175,AU
+3233617920,3233618175,JP
3233618176,3233620479,US
3233620480,3233620735,AU
3233620736,3233620991,US
@@ -74494,7 +77616,7 @@
3233664256,3233665023,US
3233665024,3233666047,AU
3233666048,3233668863,US
-3233668864,3233669119,AU
+3233668864,3233669119,PH
3233669120,3233670399,US
3233670400,3233670655,AU
3233671680,3233676031,US
@@ -74535,8 +77657,7 @@
3233724416,3233725951,US
3233725952,3233726975,NO
3233726976,3233728767,US
-3233728768,3233729023,GB
-3233729024,3233729279,NL
+3233728768,3233729279,GB
3233729280,3233729535,US
3233729536,3233730047,AU
3233730048,3233730559,US
@@ -74624,7 +77745,7 @@
3234008832,3234013695,US
3234013696,3234013951,AU
3234013952,3234014975,US
-3234014976,3234015487,AU
+3234014976,3234015487,KR
3234015488,3234015743,US
3234015744,3234015999,IE
3234016000,3234016255,GB
@@ -74662,7 +77783,7 @@
3234055680,3234056959,US
3234056960,3234057215,CA
3234057216,3234061055,US
-3234061056,3234061311,AU
+3234061056,3234061311,NZ
3234061312,3234064639,US
3234064640,3234064895,AU
3234064896,3234065407,US
@@ -74752,7 +77873,7 @@
3234557440,3234564607,US
3234564608,3234566911,KR
3234566912,3234568703,US
-3234568704,3234568959,AU
+3234568704,3234568959,NZ
3234568960,3234569215,US
3234569216,3234569727,AU
3234569728,3234569983,CL
@@ -74781,7 +77902,7 @@
3234589696,3234590463,US
3234590464,3234590719,CA
3234590720,3234592511,US
-3234592512,3234592767,AU
+3234592512,3234592767,TH
3234592768,3234726143,US
3234726144,3234726399,CA
3234726400,3234726911,US
@@ -74844,7 +77965,7 @@
3234826752,3234827007,CA
3234827008,3234827519,US
3234827520,3234828031,NL
-3234828032,3234828287,AU
+3234828032,3234828287,NZ
3234828288,3234828799,US
3234828800,3234829055,CL
3234829056,3234830079,US
@@ -74865,7 +77986,7 @@
3234842368,3234842623,US
3234842624,3234844415,BR
3234844416,3234853375,US
-3234853376,3234853631,AU
+3234853376,3234853631,TH
3234853632,3234853887,US
3234853888,3234854143,EC
3234854144,3234854911,US
@@ -74985,7 +78106,13 @@
3235970560,3235970815,CA
3235970816,3235971071,US
3235971072,3235971327,CA
-3235971328,3236044799,US
+3235971328,3235996671,US
+3235996672,3235997183,CA
+3235997184,3235997695,US
+3235997696,3235998207,CA
+3235998208,3235998719,US
+3235998720,3235999231,CA
+3235999232,3236044799,US
3236044800,3236052991,CA
3236052992,3236069375,US
3236069376,3236102143,CA
@@ -75003,12 +78130,28 @@
3236163520,3236163583,IE
3236163584,3236167935,US
3236167936,3236175871,CA
-3236175872,3236191487,US
-3236191744,3236200447,US
+3236175872,3236200447,US
3236200448,3236233215,MY
3236233216,3236239359,US
3236239360,3236241407,CA
-3236241408,3236291071,US
+3236241408,3236267519,US
+3236267520,3236268031,DE
+3236268032,3236268543,ES
+3236268544,3236272639,US
+3236272640,3236272895,HK
+3236272896,3236273919,US
+3236273920,3236274175,DE
+3236274176,3236275199,US
+3236275200,3236275711,FR
+3236275712,3236276223,AU
+3236276224,3236277759,US
+3236277760,3236278783,IN
+3236278784,3236281855,US
+3236281856,3236282367,SG
+3236282368,3236287487,US
+3236287488,3236287743,EC
+3236287744,3236287999,CO
+3236288000,3236291071,US
3236291072,3236291327,GB
3236291328,3236302847,US
3236306944,3236312063,US
@@ -75016,10 +78159,14 @@
3236312320,3236312575,GH
3236312576,3236312831,GR
3236312832,3236313087,QA
-3236313088,3236365567,US
+3236313088,3236314367,US
+3236314368,3236314623,GB
+3236314624,3236319743,US
+3236319744,3236319999,ES
+3236320000,3236365567,US
3236365568,3236365823,CA
3236365824,3236368127,US
-3236368128,3236368383,AU
+3236368128,3236368383,NZ
3236368384,3236372991,US
3236372992,3236373247,AU
3236373248,3236373503,US
@@ -75145,7 +78292,11 @@
3236958208,3236962303,AU
3236962304,3236995623,US
3236995624,3236995631,NL
-3236995632,3237038079,US
+3236995632,3237003263,US
+3237003264,3237003519,GB
+3237003520,3237016831,US
+3237016832,3237017087,GB
+3237017088,3237038079,US
3237038080,3237038335,CA
3237038336,3237043967,US
3237043968,3237044223,CH
@@ -75180,7 +78331,7 @@
3237291264,3237294847,US
3237294848,3237295103,CA
3237295104,3237296639,US
-3237296640,3237297151,AU
+3237296640,3237297151,SG
3237297152,3237297407,CL
3237297408,3237300479,US
3237302528,3237305087,US
@@ -75234,13 +78385,12 @@
3237478400,3237511167,LK
3237511168,3237548031,US
3237548032,3237552127,KR
-3237552128,3237553151,US
-3237553152,3237553407,GB
-3237553408,3237554431,US
+3237552128,3237554431,US
3237554432,3237554434,SG
3237554435,3237554435,US
3237554436,3237554463,SG
-3237554464,3237568511,US
+3237554464,3237554687,AU
+3237554688,3237568511,US
3237568512,3237572607,CA
3237572608,3237576703,US
3237576704,3237609471,CA
@@ -75248,7 +78398,11 @@
3237613568,3237614591,CA
3237614592,3237615615,US
3237615616,3237616895,CA
-3237616896,3237647103,US
+3237616896,3237634559,US
+3237634560,3237634601,GB
+3237634602,3237634603,US
+3237634604,3237634815,GB
+3237634816,3237647103,US
3237647104,3237647359,AU
3237647360,3237653503,US
3237653504,3237653759,IN
@@ -75315,7 +78469,9 @@
3237871488,3237871615,MY
3237871616,3237896191,US
3237896192,3237900287,PR
-3237900288,3237957631,US
+3237900288,3237955071,US
+3237955072,3237955327,NL
+3237955328,3237957631,US
3237957632,3237957887,VE
3237957888,3237958143,AG
3237958144,3237958399,PE
@@ -75554,7 +78710,7 @@
3239063040,3239063295,HU
3239063296,3239063551,UA
3239063552,3239075839,DE
-3239075840,3239076095,MT
+3239075840,3239076095,GB
3239076096,3239076351,DE
3239076352,3239076607,RU
3239076608,3239076863,PL
@@ -75619,8 +78775,7 @@
3239120384,3239120639,PL
3239120896,3239121663,DE
3239121664,3239121919,FR
-3239122176,3239122687,DE
-3239122944,3239123967,DE
+3239121920,3239123967,DE
3239127296,3239127551,PL
3239127552,3239127807,IL
3239127808,3239128063,RU
@@ -75880,7 +79035,8 @@
3239582720,3239582975,GB
3239582976,3239583231,IT
3239583232,3239583487,UA
-3239583744,3239585791,DE
+3239583744,3239584767,DE
+3239585024,3239585279,DE
3239587840,3239591935,DE
3239591936,3239592447,FI
3239592448,3239592703,US
@@ -76463,7 +79619,6 @@
3240309760,3240310783,NO
3240310784,3240311807,GB
3240311808,3240312063,PL
-3240312064,3240312319,RU
3240312320,3240312575,IR
3240312576,3240312831,RU
3240312832,3240316927,GB
@@ -76906,7 +80061,8 @@
3241125120,3241125375,IL
3241125376,3241125631,UA
3241125632,3241125887,SE
-3241125888,3241129983,CH
+3241125888,3241126015,DE
+3241126016,3241129983,CH
3241129984,3241130239,FR
3241130240,3241130495,PT
3241130496,3241130751,DK
@@ -76965,7 +80121,7 @@
3241724416,3241724671,RU
3241724672,3241724927,RE
3241725952,3241734143,FR
-3241734400,3241735935,FR
+3241734400,3241736191,FR
3241738240,3241742335,FR
3241743360,3241743615,DE
3241744384,3241745407,FR
@@ -76984,7 +80140,7 @@
3241779200,3241789439,FR
3241789696,3241789951,FR
3241790464,3241790975,FR
-3241793536,3241795327,FR
+3241793792,3241795327,FR
3241795584,3241803775,FR
3241803776,3241803823,CY
3241803832,3241803839,GB
@@ -77119,9 +80275,7 @@
3243769856,3243900927,DK
3243900928,3243966463,NO
3243966464,3243974655,PL
-3243974656,3243975423,LU
-3243975424,3243975679,FR
-3243975680,3243978751,LU
+3243974656,3243978751,LU
3243978752,3243982847,NL
3243982848,3243991039,HU
3243991040,3243999231,BE
@@ -77220,7 +80374,6 @@
3244828160,3244828415,FI
3244828416,3244828671,FR
3244828672,3244828927,SA
-3244828928,3244829183,MD
3244829184,3244829439,CH
3244829440,3244829695,DK
3244829696,3244829951,IL
@@ -77266,7 +80419,6 @@
3244841216,3244841471,GB
3244841472,3244841727,DE
3244841728,3244842239,GB
-3244842496,3244842751,RU
3244842752,3244843007,DE
3244843008,3244843263,UA
3244843264,3244843519,RU
@@ -77299,7 +80451,7 @@
3244850688,3244850943,GB
3244850944,3244851455,RU
3244851456,3244851711,NL
-3244851712,3244851967,TR
+3244851712,3244851967,RU
3244851968,3244852223,GB
3244852224,3244852479,CH
3244852480,3244852735,UA
@@ -77499,7 +80651,6 @@
3244909312,3244909567,IL
3244909568,3244909823,RU
3244909824,3244910079,NL
-3244910080,3244910335,CY
3244910336,3244910591,DE
3244910592,3244910847,GB
3244910848,3244911103,DE
@@ -77591,7 +80742,6 @@
3244935680,3244935935,PL
3244935936,3244936191,IL
3244936192,3244937215,AT
-3244937216,3244937471,TR
3244937472,3244937727,GB
3244937728,3244937983,UA
3244937984,3244938239,TR
@@ -77805,7 +80955,8 @@
3245127936,3245128191,LV
3245128192,3245128447,IT
3245128448,3245128703,CH
-3245128704,3245129471,DK
+3245128704,3245129215,LU
+3245129216,3245129471,DK
3245129472,3245129983,GB
3245129984,3245130239,DE
3245130240,3245130495,PL
@@ -78127,8 +81278,8 @@
3246370816,3246371073,ES
3246371074,3246371074,PT
3246371075,3246374911,ES
+3246375168,3246375423,ES
3246376960,3246377215,ES
-3246378752,3246379007,ES
3246379008,3246381055,GB
3246387200,3246388223,GB
3246391296,3246613503,GB
@@ -78345,7 +81496,9 @@
3247751168,3247769599,ES
3247769600,3247771647,DE
3247775744,3247783935,DE
-3247783936,3247792127,GB
+3247783936,3247788031,US
+3247788032,3247790079,NL
+3247790080,3247792127,IE
3247792128,3247800319,FR
3247800320,3247816703,DK
3247818752,3247820799,BE
@@ -78485,9 +81638,10 @@
3248557056,3248558079,UA
3248558080,3248575487,NO
3248575488,3248576511,CZ
-3248576512,3248586751,NO
+3248576512,3248582655,NO
+3248584704,3248586751,NO
3248589312,3248589823,NO
-3248590848,3248591871,NO
+3248590848,3248591615,NO
3248592896,3248599039,NO
3248599040,3248603135,SE
3248603136,3248603391,BG
@@ -78823,7 +81977,9 @@
3249863168,3249863423,BE
3249863424,3249863679,SE
3249863680,3249863935,ES
-3249863936,3249865471,SE
+3249863936,3249864447,SE
+3249864448,3249864703,FR
+3249864704,3249865471,SE
3249865472,3249865727,GB
3249865728,3249868031,SE
3249868032,3249868287,DK
@@ -79174,7 +82330,6 @@
3251120640,3251121151,FR
3251121152,3251121663,DK
3251121664,3251122175,PL
-3251122176,3251122687,CH
3251122688,3251123199,PL
3251123712,3251124223,RU
3251124736,3251125247,FR
@@ -79473,10 +82628,10 @@
3251318784,3251319807,UA
3251320832,3251321855,PL
3251321856,3251322879,RU
-3251322880,3251331071,GB
-3251331072,3251331321,FR
-3251331322,3251331322,GB
-3251331323,3251331583,FR
+3251322880,3251331319,GB
+3251331320,3251331321,FR
+3251331322,3251331327,GB
+3251331328,3251331583,FR
3251331584,3251332095,PL
3251332096,3251333119,RU
3251333120,3251333631,CH
@@ -79511,15 +82666,7 @@
3251366912,3251367423,UA
3251367424,3251367935,DE
3251367936,3251372031,GB
-3251372032,3251376127,IT
-3251376128,3251378175,SI
-3251378176,3251406847,IT
-3251406848,3251407871,SI
-3251407872,3251460095,IT
-3251460096,3251462143,SI
-3251462144,3251470335,IT
-3251470336,3251472383,SI
-3251472384,3251634175,IT
+3251372032,3251634175,IT
3251634176,3251896319,FI
3251896320,3252166655,NO
3252166656,3252167679,SE
@@ -79736,7 +82883,7 @@
3252637696,3252641791,CH
3252642304,3252642559,UA
3252642560,3252642815,DK
-3252642816,3252643071,NL
+3252642816,3252643071,AE
3252643072,3252643327,RO
3252643328,3252643583,CH
3252645120,3252645375,CH
@@ -79809,7 +82956,6 @@
3252948992,3252963327,AT
3252965376,3252977663,AT
3252980992,3252981247,GB
-3252981248,3252981503,RU
3252981504,3252981759,SE
3252981760,3252982015,DE
3252982272,3252982527,DE
@@ -79872,9 +83018,7 @@
3253403648,3253403903,PL
3253403904,3253409791,SE
3253409792,3253410047,GB
-3253410048,3253411327,SE
-3253411328,3253411583,NO
-3253411584,3253411839,SE
+3253410048,3253411839,SE
3253411840,3253412095,US
3253412096,3253412351,SE
3253412352,3253412607,US
@@ -80062,21 +83206,19 @@
3253730304,3253730815,RO
3253730816,3253731327,UA
3253731328,3253731583,DE
-3253731584,3253735679,GB
-3253735680,3253735935,FR
-3253735936,3253736959,GB
-3253736960,3253737215,FR
-3253737216,3253737823,GB
+3253731584,3253737823,GB
3253737824,3253737831,PL
3253737832,3253737839,AT
3253737840,3253737847,GB
3253737848,3253737855,HU
-3253737856,3253738559,GB
+3253737856,3253738495,GB
+3253738496,3253738559,FR
3253738560,3253738567,CZ
3253738568,3253738569,BE
3253738570,3253738570,US
3253738571,3253738575,BE
-3253738576,3253741567,GB
+3253738576,3253738751,FR
+3253738752,3253741567,GB
3253741568,3253741679,SE
3253741680,3253741695,RU
3253741696,3253741816,SE
@@ -80100,13 +83242,8 @@
3253760512,3253760767,FR
3253760768,3253761407,GB
3253761408,3253761471,ES
-3253761472,3253761535,GB
-3253761536,3253761791,US
-3253761792,3253762303,GB
-3253762304,3253762559,DE
-3253762560,3253762753,IT
-3253762754,3253762754,ES
-3253762755,3253762815,IT
+3253761472,3253762559,GB
+3253762560,3253762815,IT
3253762816,3253762943,CH
3253762944,3253763071,GB
3253763072,3253763327,SE
@@ -80125,12 +83262,10 @@
3253767680,3253767711,GB
3253767712,3253767743,DE
3253767744,3253768191,GB
-3253768192,3253768447,ES
+3253768192,3253768447,SE
3253768448,3253768565,GB
3253768566,3253768566,DE
-3253768567,3253768959,GB
-3253768960,3253769215,DE
-3253769216,3253770983,GB
+3253768567,3253770983,GB
3253770984,3253770984,DE
3253770985,3253771199,GB
3253771200,3253771263,IE
@@ -80152,7 +83287,11 @@
3253775808,3253775823,DE
3253775824,3253776159,GB
3253776160,3253776175,DE
-3253776176,3253796863,GB
+3253776176,3253778231,GB
+3253778232,3253778239,FR
+3253778240,3253778271,GB
+3253778272,3253778287,DE
+3253778288,3253796863,GB
3253796864,3253862399,SE
3253862400,3253862655,GB
3253862656,3253882879,FR
@@ -80251,9 +83390,7 @@
3253975040,3253977087,DE
3253977088,3253985279,TR
3253985280,3253993471,GB
-3253993472,3254067711,BE
-3254067712,3254067967,CZ
-3254067968,3254124543,BE
+3253993472,3254124543,BE
3254124544,3254255615,CH
3254255616,3254256127,RE
3254256128,3254256639,GP
@@ -80303,13 +83440,10 @@
3254508832,3254509412,FR
3254509413,3254509413,GQ
3254509414,3254607871,FR
-3254607872,3254608895,RE
-3254608896,3254609151,FR
-3254609152,3254610431,RE
-3254610432,3254610687,FR
-3254610688,3254611455,RE
+3254607872,3254611455,RE
3254611456,3254611967,YT
-3254611968,3254615551,RE
+3254611968,3254612223,FR
+3254612224,3254615551,RE
3254615552,3254616063,YT
3254616064,3254648831,FR
3254648832,3254649855,AL
@@ -80596,7 +83730,8 @@
3255148544,3255152639,FR
3255154432,3255155199,FR
3255155712,3255160831,FR
-3255166976,3255169023,FR
+3255167488,3255167743,FR
+3255168512,3255169023,FR
3255172352,3255172607,DE
3255173120,3255173631,GB
3255173648,3255173711,GB
@@ -80877,7 +84012,11 @@
3255822336,3255826431,DE
3255827456,3255828479,DE
3255828480,3256025087,SE
-3256025088,3256057855,NO
+3256025088,3256043007,NO
+3256043008,3256043263,SE
+3256043264,3256051455,NO
+3256051456,3256051711,SE
+3256051712,3256057855,NO
3256057856,3256082431,DK
3256082432,3256090623,LV
3256090624,3256221695,IT
@@ -81063,7 +84202,8 @@
3256864512,3256864767,CH
3256864768,3256866815,DE
3256868096,3256868351,DE
-3256868864,3256870911,DE
+3256869120,3256869375,DE
+3256869632,3256870911,DE
3256870912,3256871167,RU
3256871168,3256871935,DE
3256872448,3256872703,DE
@@ -81080,8 +84220,7 @@
3256899072,3256899583,RU
3256915456,3256915711,RS
3256915712,3256915967,SE
-3256918016,3256920063,GB
-3256922112,3256934399,GB
+3256918016,3256934399,GB
3256942592,3256944639,GB
3256945408,3256945663,GB
3256945664,3256945919,SI
@@ -81147,9 +84286,7 @@
3257093888,3257094143,GB
3257094656,3257095167,GB
3257097472,3257097983,GB
-3257106432,3257120767,GB
-3257121280,3257121535,GB
-3257122304,3257131007,GB
+3257106432,3257131007,GB
3257135104,3257137151,GB
3257138176,3257139199,GB
3257139200,3257139455,DK
@@ -81214,7 +84351,7 @@
3257454592,3257455103,IT
3257455104,3257455359,RO
3257455360,3257455615,SI
-3257455616,3257461759,CH
+3257455616,3257462783,CH
3257464064,3257464319,CH
3257464832,3257465343,CH
3257466880,3257467135,DE
@@ -81290,7 +84427,9 @@
3257742336,3257743359,DE
3257743360,3257748479,NL
3257748480,3257749503,DE
-3257749504,3257765887,NL
+3257749504,3257753087,NL
+3257753088,3257753343,DE
+3257753344,3257765887,NL
3257765888,3257767935,DE
3257767936,3257782271,NL
3257782272,3257784319,DE
@@ -81474,8 +84613,7 @@
3258230784,3258232831,NO
3258232832,3258249215,SE
3258249216,3258253311,NO
-3258253312,3258253567,DE
-3258254080,3258254335,NL
+3258253312,3258254335,NL
3258255360,3258265599,NL
3258267648,3258269695,NL
3258271744,3258272767,NL
@@ -81575,8 +84713,7 @@
3258732800,3258733055,CH
3258733056,3258733311,RO
3258733312,3258734079,GB
-3258735104,3258735359,GB
-3258736640,3258745855,GB
+3258734592,3258745855,GB
3258746880,3258762239,GB
3258764032,3258764287,GB
3258764288,3258764543,DE
@@ -81623,7 +84760,7 @@
3258849280,3258859519,GB
3258859520,3258859775,BY
3258859776,3258860031,GB
-3258860544,3258900479,GB
+3258860544,3258897919,GB
3258902528,3258902783,GB
3258903040,3258903295,FR
3258903296,3258903551,GB
@@ -81648,9 +84785,7 @@
3259226112,3259227391,RU
3259227392,3259227647,KZ
3259227648,3259236351,RU
-3259236352,3259236863,SE
-3259236864,3259237119,CH
-3259237120,3259237887,SE
+3259236352,3259237887,SE
3259237888,3259238143,FR
3259238144,3259243007,SE
3259243008,3259243519,AT
@@ -81696,7 +84831,9 @@
3259303424,3259305983,SE
3259305984,3259310079,NL
3259317248,3259318271,CH
-3259318272,3259334655,GB
+3259318272,3259328190,GB
+3259328191,3259328191,US
+3259328192,3259334655,GB
3259334656,3259338751,DE
3259338752,3259339263,GB
3259339520,3259342847,GB
@@ -81742,10 +84879,7 @@
3259541504,3259543551,NL
3259543552,3259760639,GB
3259761152,3259767295,DE
-3259768064,3259787263,DE
-3259787776,3259788287,DE
-3259788800,3259789311,DE
-3259791872,3259792383,DE
+3259768064,3259793407,DE
3259796480,3259800063,DE
3259800576,3259807743,DE
3259808512,3259808767,DE
@@ -81773,7 +84907,9 @@
3259963392,3259964415,PL
3259964416,3259964927,GB
3259964928,3259964959,NL
-3259964960,3259965439,GB
+3259964960,3259965023,GB
+3259965024,3259965031,DE
+3259965032,3259965439,GB
3259965440,3259966463,RU
3259967488,3259968511,RS
3259968512,3259969535,RU
@@ -81913,8 +85049,7 @@
3261554176,3261554431,DK
3261554432,3261595647,SE
3261595648,3261599743,NL
-3261601792,3261620479,NL
-3261620992,3261622271,NL
+3261601792,3261622271,NL
3261623808,3261624831,NL
3261626368,3261627903,NL
3261628160,3261643775,NL
@@ -81955,10 +85090,9 @@
3261767680,3261775871,RS
3261775872,3261776383,PL
3261776384,3261777407,RU
-3261777408,3261777449,IR
+3261777408,3261777449,GB
3261777450,3261777451,NL
-3261777452,3261777663,IR
-3261777664,3261777919,GB
+3261777452,3261777919,GB
3261777920,3261778431,PL
3261778944,3261779455,RO
3261779456,3261779967,DE
@@ -82066,7 +85200,7 @@
3262043648,3262043903,NL
3262043904,3262044159,GB
3262044160,3262044415,RS
-3262044416,3262044671,DE
+3262044416,3262044671,LU
3262044672,3262044927,GR
3262044928,3262045183,UA
3262045184,3262045439,LT
@@ -82127,8 +85261,7 @@
3262195712,3262196223,DE
3262197760,3262200319,DE
3262200576,3262201087,DE
-3262203648,3262203903,DE
-3262204928,3262221055,DE
+3262201856,3262221311,DE
3262221568,3262221823,DE
3262222080,3262222335,DE
3262223360,3262223871,DE
@@ -82141,8 +85274,7 @@
3262230528,3262235135,DE
3262236672,3262243327,DE
3262243840,3262248191,DE
-3262248448,3262248959,DE
-3262249472,3262283775,DE
+3262248448,3262283775,DE
3262283776,3262284799,RU
3262284800,3262285823,UA
3262286848,3262287871,SE
@@ -82193,8 +85325,7 @@
3262436352,3262436863,SE
3262437888,3262438399,FR
3262438400,3262438911,NL
-3262438912,3262439167,DK
-3262439168,3262439423,SE
+3262438912,3262439423,DK
3262439424,3262439935,AT
3262439936,3262440447,IL
3262440960,3262441471,IL
@@ -82337,7 +85468,9 @@
3262511104,3262511615,GB
3262512128,3262512639,UA
3262512640,3262513151,DE
-3262513152,3262578687,AT
+3262513152,3262566143,AT
+3262566144,3262566399,DE
+3262566400,3262578687,AT
3262578688,3262611455,FR
3262611456,3262627839,GB
3262627840,3262636031,IT
@@ -82458,9 +85591,7 @@
3263104031,3263104031,FR
3263104032,3263104040,DE
3263104041,3263104041,GB
-3263104042,3263127807,DE
-3263128576,3263129599,DE
-3263130368,3263130623,DE
+3263104042,3263131647,DE
3263133696,3263137791,DE
3263137792,3263138303,PL
3263138304,3263138559,DE
@@ -82557,7 +85688,9 @@
3263692800,3263823871,FI
3263823872,3263826943,DE
3263826944,3263827199,AT
-3263827200,3263886079,DE
+3263827200,3263833855,DE
+3263833856,3263833903,GB
+3263833904,3263886079,DE
3263886080,3263886335,SG
3263886336,3263954943,DE
3263954944,3263979519,ES
@@ -82679,7 +85812,8 @@
3264355072,3264355327,FR
3264357632,3264357887,DE
3264359936,3264360191,FR
-3264360448,3264369151,FR
+3264360448,3264364543,FR
+3264365056,3264369151,FR
3264372736,3264373759,FR
3264374784,3264376063,SE
3264376064,3264376319,HR
@@ -82782,16 +85916,16 @@
3264607232,3264607487,IT
3264607488,3264610303,DE
3264610304,3264612479,GB
-3264612480,3264612575,FR
-3264612576,3264613027,GB
+3264612480,3264612607,FR
+3264612608,3264613027,GB
3264613028,3264613031,FR
3264613032,3264614911,GB
3264614912,3264615167,SE
3264615168,3264616263,GB
3264616264,3264616271,CH
3264616272,3264616335,GB
-3264616336,3264616336,CH
-3264616337,3264617983,GB
+3264616336,3264616337,CH
+3264616338,3264617983,GB
3264617984,3264618239,US
3264618240,3264619391,GB
3264619392,3264619519,BE
@@ -82876,8 +86010,7 @@
3264790528,3264806911,HR
3264806912,3264815103,GB
3264815104,3264825343,SE
-3264825856,3264826111,NL
-3264826112,3264826367,GB
+3264825856,3264826367,GB
3264826880,3264827135,NL
3264827136,3264827391,LV
3264827648,3264828159,GR
@@ -82958,7 +86091,7 @@
3264921600,3264929791,LU
3264929792,3264937983,SK
3264937984,3265003519,GB
-3265003520,3265005567,DE
+3265004288,3265005567,DE
3265007616,3265009663,DE
3265009664,3265009919,FR
3265009920,3265010175,DE
@@ -82977,13 +86110,9 @@
3265056256,3265056511,DE
3265056768,3265069055,DE
3265069056,3265134591,FI
-3265134592,3265134863,CH
-3265134864,3265134879,BE
-3265134880,3265135017,CH
-3265135018,3265135018,BE
-3265135019,3265135039,CH
-3265135040,3265135071,BE
-3265135072,3265137983,CH
+3265134592,3265134847,CH
+3265134848,3265135103,BE
+3265135104,3265137983,CH
3265137984,3265138047,NL
3265138048,3265138599,CH
3265138600,3265138607,NL
@@ -82993,9 +86122,9 @@
3265140000,3265140015,BE
3265140016,3265140119,CH
3265140120,3265140127,BE
-3265140128,3265141135,CH
-3265141136,3265141151,GB
-3265141152,3265141551,CH
+3265140128,3265140991,CH
+3265140992,3265141247,GB
+3265141248,3265141551,CH
3265141552,3265141555,IE
3265141556,3265141759,CH
3265141760,3265142015,GB
@@ -83198,7 +86327,7 @@
3266510848,3266543615,ES
3266543616,3266576383,IT
3266576384,3266577919,DE
-3266579456,3266582783,DE
+3266579712,3266582783,DE
3266583552,3266584575,DE
3266587648,3266588927,DE
3266589696,3266591743,DE
@@ -83218,8 +86347,8 @@
3266781184,3266789375,PL
3266789376,3266797567,SM
3266797568,3266797823,GB
-3266797824,3266798079,ES
-3266798080,3266798847,GB
+3266797824,3266798207,ES
+3266798208,3266798847,GB
3266798848,3266798879,CZ
3266798880,3266804099,GB
3266804100,3266804100,NL
@@ -83289,9 +86418,19 @@
3267095552,3267096575,PL
3267096576,3267097599,DE
3267097600,3267098623,KZ
-3267098624,3267099391,GB
-3267099392,3267099399,BE
-3267099400,3267099647,GB
+3267098624,3267098879,GB
+3267098880,3267098895,FR
+3267098896,3267099007,GB
+3267099008,3267099043,FR
+3267099044,3267099135,GB
+3267099136,3267099263,DE
+3267099264,3267099327,NL
+3267099328,3267099383,GB
+3267099384,3267099387,NL
+3267099388,3267099399,BE
+3267099400,3267099407,GB
+3267099408,3267099415,DE
+3267099416,3267099647,GB
3267099648,3267100671,IT
3267100672,3267166207,FI
3267166208,3267231743,GB
@@ -83319,7 +86458,7 @@
3267631096,3267631103,IT
3267631104,3267631615,GB
3267634176,3267635199,GB
-3267648320,3267648335,GB
+3267648256,3267648511,GB
3267650320,3267650335,AT
3267657576,3267657583,RO
3267657696,3267657703,RO
@@ -83389,9 +86528,10 @@
3268236544,3268236607,GB
3268236672,3268236799,GB
3268237824,3268237855,GB
-3268238336,3268238591,GB
-3268238632,3268238783,GB
-3268238816,3268238847,GB
+3268238336,3268238359,GB
+3268238368,3268238399,GB
+3268238472,3268238543,GB
+3268238552,3268238847,GB
3268239584,3268240127,GB
3268240160,3268240191,GB
3268240384,3268240399,GB
@@ -83415,7 +86555,10 @@
3268248512,3268248543,GB
3268249600,3268251311,GB
3268251312,3268251327,IE
-3268251328,3268251647,GB
+3268251328,3268251583,GB
+3268251584,3268251615,DE
+3268251616,3268251631,CH
+3268251632,3268251647,GB
3268254464,3268254543,GB
3268254624,3268254639,GB
3268254896,3268254903,GB
@@ -83517,8 +86660,7 @@
3268765184,3268765695,RU
3268765696,3268766719,UA
3268766720,3268767231,IL
-3268767232,3268767487,UA
-3268767488,3268767743,RU
+3268767232,3268767743,RU
3268767744,3268768255,NL
3268768256,3268768767,BE
3268768768,3268769279,RU
@@ -83701,9 +86843,13 @@
3270670336,3270672383,RU
3270672384,3270680575,GB
3270680576,3270688767,FR
-3270688768,3270836223,IT
+3270688768,3270772079,IT
+3270772080,3270772087,NL
+3270772088,3270836223,IT
3270836224,3270901759,DE
-3270901760,3270903807,IT
+3270901760,3270902783,IT
+3270902784,3270903039,HU
+3270903040,3270903807,IT
3270903808,3270905855,SE
3270905856,3270909951,IT
3270911840,3270911871,PL
@@ -83800,7 +86946,9 @@
3271409664,3271417855,BE
3271419904,3271421951,FR
3271426048,3271491583,FR
-3271491584,3271557119,DK
+3271491584,3271491839,DK
+3271491840,3271492095,SE
+3271492096,3271557119,DK
3271557120,3271589887,BE
3271589888,3271688191,NO
3271691776,3271692031,US
@@ -84332,9 +87480,7 @@
3273048064,3273056255,IT
3273056256,3273064447,MD
3273064448,3273129983,PT
-3273129984,3273132287,DK
-3273132288,3273132543,GB
-3273132544,3273138175,DK
+3273129984,3273138175,DK
3273138176,3273146367,BG
3273146368,3273148415,RU
3273148416,3273150463,LU
@@ -84356,9 +87502,7 @@
3273193472,3273193983,PL
3273194496,3273195007,UA
3273195008,3273195519,RU
-3273195520,3273207807,FR
-3273207808,3273208063,RE
-3273208064,3273261055,FR
+3273195520,3273261055,FR
3273261056,3273261567,NO
3273261568,3273262079,BE
3273262080,3273262591,LU
@@ -84433,8 +87577,20 @@
3273337856,3273338111,DE
3273338624,3273338879,DE
3273339136,3273339391,DE
-3273339392,3273340415,GB
+3273339392,3273339919,GB
+3273339920,3273339943,DE
+3273339944,3273339955,GB
+3273339956,3273339959,DE
+3273339960,3273339967,GB
+3273339968,3273339983,DE
+3273339984,3273340095,GB
+3273340096,3273340111,GI
+3273340112,3273340127,GB
+3273340128,3273340143,DE
+3273340144,3273340415,GB
3273340928,3273341711,FR
+3273342022,3273342022,GB
+3273342034,3273342034,GB
3273342208,3273342231,AE
3273342464,3273342975,DE
3273342976,3273343999,GB
@@ -84545,7 +87701,7 @@
3273436672,3273437183,DE
3273437184,3273437695,RO
3273438208,3273438719,IL
-3273438720,3273439231,GB
+3273438720,3273439231,UA
3273439232,3273439743,RO
3273439744,3273440255,DE
3273440256,3273440767,RO
@@ -84860,7 +88016,8 @@
3274471680,3274471935,GB
3274472960,3274483711,GB
3274489600,3274489855,GB
-3274490176,3274491199,GB
+3274490176,3274490895,GB
+3274490912,3274491199,GB
3274491208,3274491247,GB
3274491256,3274491295,GB
3274491304,3274491319,GB
@@ -84959,7 +88116,9 @@
3274814464,3274815487,GB
3274815488,3274816511,RU
3274816512,3274817535,SK
-3274817536,3274821631,RU
+3274817536,3274821119,RU
+3274821120,3274821375,UA
+3274821376,3274821631,RU
3274821632,3274823679,KZ
3274823680,3274825727,TR
3274825728,3274827775,DE
@@ -85026,9 +88185,7 @@
3275415552,3275423743,UA
3275423744,3275423751,GB
3275423808,3275423839,GB
-3275423872,3275424303,GB
-3275424320,3275424487,GB
-3275424496,3275424719,GB
+3275423872,3275424719,GB
3275424728,3275424735,GB
3275424752,3275425311,GB
3275425328,3275425343,GB
@@ -85079,7 +88236,14 @@
3275460288,3275460295,GB
3275460352,3275460607,IE
3275460608,3275460863,HK
-3275460864,3275463423,GB
+3275460864,3275463183,GB
+3275463192,3275463199,GB
+3275463216,3275463239,GB
+3275463248,3275463263,GB
+3275463267,3275463267,GB
+3275463269,3275463269,GB
+3275463276,3275463276,GB
+3275463296,3275463423,GB
3275463456,3275463495,GB
3275463504,3275463523,GB
3275463528,3275463635,GB
@@ -85095,10 +88259,8 @@
3275475720,3275475791,GB
3275475800,3275475879,GB
3275475968,3275476223,GB
-3275476288,3275476479,GB
-3275476608,3275476631,GB
-3275476656,3275476687,GB
-3275476704,3275476735,GB
+3275476224,3275476479,UA
+3275476480,3275476735,GB
3275476920,3275476927,GB
3275476944,3275476959,GB
3275476992,3275477567,GB
@@ -85331,7 +88493,9 @@
3275915008,3275915263,PT
3275915264,3275915775,SA
3275915776,3275916287,SE
-3275916288,3275916799,US
+3275916288,3275916383,US
+3275916384,3275916415,GB
+3275916416,3275916799,US
3275916800,3275917311,NL
3275917312,3275918847,UA
3275918848,3275919359,RO
@@ -85349,7 +88513,9 @@
3275928944,3275931647,ME
3275931648,3275939839,UA
3275939840,3275948031,GB
-3275948032,3276013567,SE
+3275948032,3275970303,SE
+3275970304,3275970559,DK
+3275970560,3276013567,SE
3276013568,3276014239,GB
3276014240,3276014247,FR
3276014248,3276014335,GB
@@ -85358,13 +88524,11 @@
3276014800,3276014815,FR
3276014816,3276014951,GB
3276014952,3276014959,ES
-3276014960,3276020735,GB
-3276020736,3276020991,FR
-3276020992,3276021503,GB
-3276021504,3276021759,FR
-3276021760,3276025159,GB
+3276014960,3276025159,GB
3276025160,3276025167,FR
-3276025168,3276028543,GB
+3276025168,3276026367,GB
+3276026368,3276026623,FR
+3276026624,3276028543,GB
3276028544,3276028671,FR
3276028672,3276029375,GB
3276029376,3276029439,FR
@@ -85386,9 +88550,9 @@
3276042016,3276042031,FR
3276042032,3276042079,GB
3276042080,3276042095,FR
-3276042096,3276045247,GB
-3276045248,3276045255,FR
-3276045256,3276046335,GB
+3276042096,3276045055,GB
+3276045056,3276045311,FR
+3276045312,3276046335,GB
3276046336,3276062719,RU
3276062720,3276063231,PL
3276063232,3276063743,FR
@@ -85542,7 +88706,6 @@
3276490783,3276490783,CH
3276499504,3276499567,DE
3276503040,3276505087,DE
-3276508928,3276509183,GB
3276509184,3276510207,IT
3276512256,3276513023,ZA
3276518368,3276518383,NL
@@ -85662,8 +88825,8 @@
3276882688,3276883077,GB
3276883078,3276883078,IT
3276883079,3276883711,GB
-3276883712,3276883839,IT
-3276883840,3276886363,GB
+3276883712,3276883967,IT
+3276883968,3276886363,GB
3276886364,3276886367,DE
3276886368,3276886649,GB
3276886650,3276886650,DE
@@ -85690,25 +88853,21 @@
3276902400,3276902655,GB
3276902656,3276902911,SE
3276902912,3276903423,GB
-3276903424,3276903487,SE
-3276903488,3276903551,GB
-3276903552,3276903679,SE
+3276903424,3276903679,SE
3276903680,3276907519,GB
3276907520,3276907551,NL
3276907552,3276911167,GB
3276911168,3276911199,IT
3276911200,3276911679,GB
3276911680,3276911711,IT
-3276911712,3276912207,GB
+3276911712,3276911871,GB
+3276911872,3276912127,IT
+3276912128,3276912207,GB
3276912208,3276912215,IT
3276912216,3276912287,GB
3276912288,3276912319,IT
3276912320,3276912383,GB
-3276912384,3276912639,IT
-3276912640,3276912671,GB
-3276912672,3276912687,IT
-3276912688,3276912879,GB
-3276912880,3276912895,IT
+3276912384,3276912895,IT
3276912896,3276917231,GB
3276917232,3276917247,FR
3276917248,3276917735,GB
@@ -85910,11 +89069,13 @@
3277395456,3277403135,GB
3277403136,3277403471,FR
3277403472,3277403647,GB
-3277403648,3277403903,ES
-3277403904,3277404159,GB
+3277403648,3277403807,ES
+3277403808,3277404159,GB
3277404160,3277404415,DE
3277404416,3277404655,IT
-3277404656,3277404671,GB
+3277404656,3277404664,GB
+3277404665,3277404665,IT
+3277404666,3277404671,GB
3277404672,3277404735,CH
3277404736,3277404927,GB
3277404928,3277405183,NL
@@ -85979,10 +89140,7 @@
3277698560,3277699071,DE
3277699584,3277700607,RU
3277700608,3277701119,UA
-3277701120,3277701311,SE
-3277701312,3277701313,DK
-3277701314,3277701375,SE
-3277701376,3277701631,DK
+3277701120,3277701631,DK
3277701632,3277702143,AT
3277702656,3277703679,DE
3277703680,3277704191,PL
@@ -86122,7 +89280,11 @@
3278241792,3278307327,GB
3278307328,3278372863,IT
3278372864,3278635007,GB
-3278635008,3278766079,NL
+3278635008,3278716671,NL
+3278716672,3278716688,BE
+3278716689,3278716689,NL
+3278716690,3278716927,BE
+3278716928,3278766079,NL
3278767104,3278767615,RO
3278767616,3278768127,UA
3278768128,3278769151,GB
@@ -86302,7 +89464,6 @@
3279054848,3279055359,RU
3279055360,3279055871,SA
3279056896,3279057151,RU
-3279057152,3279057407,GB
3279057408,3279057919,FR
3279058944,3279059455,UA
3279059456,3279060479,RU
@@ -86312,9 +89473,7 @@
3279085568,3279089663,NL
3279089664,3279093759,KG
3279093760,3279123455,FR
-3279123456,3279123714,RE
-3279123715,3279123715,FR
-3279123716,3279123967,RE
+3279123456,3279123967,RE
3279123968,3279159295,FR
3279159296,3279290367,PL
3279292416,3279294463,NL
@@ -86348,7 +89507,9 @@
3279590400,3279590655,US
3279590656,3279590911,GB
3279590912,3279591167,DE
-3279591168,3279593407,GB
+3279591168,3279592703,GB
+3279592704,3279592959,DE
+3279592960,3279593407,GB
3279593408,3279593440,DE
3279593441,3279593599,GB
3279593600,3279593727,DE
@@ -86613,9 +89774,7 @@
3280794624,3280795647,UA
3280795648,3280796671,MZ
3280796672,3280797695,CZ
-3280797696,3280816639,CH
-3280816640,3280816895,DE
-3280816896,3280863231,CH
+3280797696,3280863231,CH
3280863232,3280928767,TR
3280928768,3280928831,GB
3280928832,3280928847,RU
@@ -86689,7 +89848,9 @@
3281035264,3281043455,CH
3281043456,3281059839,RU
3281059840,3281125375,DE
-3281125376,3281133567,SK
+3281125376,3281127167,SK
+3281127168,3281127423,CZ
+3281127424,3281133567,SK
3281133568,3281141759,IR
3281141760,3281149951,RU
3281149952,3281158143,CZ
@@ -86788,9 +89949,7 @@
3281975296,3281976319,RU
3281976320,3281976831,DE
3281976832,3281977343,RU
-3281977344,3282039039,NO
-3282039040,3282039295,SE
-3282039296,3282042879,NO
+3281977344,3282042879,NO
3282042880,3282083839,CH
3282083840,3282084351,DE
3282084352,3282084863,RO
@@ -86980,7 +90139,9 @@
3283263488,3283271679,SE
3283271680,3283279871,RU
3283279872,3283288063,SE
-3283288064,3283419135,DE
+3283288064,3283304319,DE
+3283304320,3283304447,GB
+3283304448,3283419135,DE
3283419136,3283484671,DK
3283484672,3283484927,UA
3283484928,3283485183,NL
@@ -87122,7 +90283,7 @@
3283977728,3283978751,RU
3283978752,3283979263,RO
3283979264,3283979775,IL
-3283979776,3283980287,NO
+3283979776,3283980287,NL
3283980288,3283980799,RO
3283980800,3283981823,CH
3283981824,3283982335,RO
@@ -87201,10 +90362,12 @@
3284025344,3284028139,GB
3284028140,3284028143,US
3284028144,3284028287,GB
-3284028288,3284028319,US
-3284028320,3284029183,GB
-3284029184,3284029199,US
-3284029200,3284030471,GB
+3284028288,3284028415,US
+3284028416,3284029183,GB
+3284029184,3284029439,US
+3284029440,3284029695,GB
+3284029696,3284029951,US
+3284029952,3284030471,GB
3284030472,3284030479,IL
3284030480,3284030495,FR
3284030496,3284030615,GB
@@ -87429,14 +90592,17 @@
3284727808,3284728319,RU
3284728320,3284728831,UA
3284728832,3284729343,PT
-3284729344,3284729855,FR
+3284729344,3284729599,GB
+3284729600,3284729855,FR
3284729856,3284795391,RU
3284795392,3284803583,FR
3284803584,3284811775,DE
3284811776,3284819967,KE
3284819968,3284828159,GB
3284828160,3284844543,AT
-3284844544,3284860927,CH
+3284844544,3284855295,CH
+3284855296,3284855551,DE
+3284855552,3284860927,CH
3284860928,3284926463,DE
3284926464,3284991999,NO
3284992000,3285057535,PL
@@ -87462,8 +90628,7 @@
3285120512,3285121023,RO
3285121024,3285121535,SE
3285121536,3285122047,CY
-3285122048,3285122559,GB
-3285122560,3285123071,RU
+3285122048,3285123071,RU
3285123072,3285188607,BE
3285188608,3285319679,RU
3285319680,3285320191,HU
@@ -87552,6 +90717,7 @@
3285461184,3285461215,NL
3285461808,3285461839,NL
3285463168,3285463199,LU
+3285465600,3285465855,NL
3285472256,3285472271,US
3285472272,3285472287,DE
3285472288,3285472511,US
@@ -87669,9 +90835,9 @@
3285913648,3285913655,IE
3285913656,3285913703,GB
3285913704,3285913711,FI
-3285913712,3285913863,GB
-3285913872,3285913903,GB
+3285913712,3285913903,GB
3285913920,3285913951,GB
+3285915904,3285916159,AT
3285917696,3285918207,GB
3285919744,3285921791,QA
3285922048,3285922303,FR
@@ -87686,7 +90852,7 @@
3285924992,3285924995,FR
3285924996,3285924999,CZ
3285925000,3285925007,RU
-3285925008,3285925015,DE
+3285925008,3285925055,DE
3285925164,3285925171,CH
3285926432,3285926463,CH
3285926592,3285926623,DE
@@ -87702,6 +90868,8 @@
3285939840,3285939967,GB
3285940736,3285940767,IT
3285941248,3285941503,ES
+3285943808,3285944063,CH
+3285947136,3285947151,NL
3285949604,3285949607,CH
3285949856,3285949887,ES
3285950208,3285950463,IT
@@ -87796,15 +90964,9 @@
3286384640,3286401023,DE
3286401024,3286403071,GB
3286403072,3286403327,GG
-3286403328,3286404863,GB
-3286404864,3286405119,GG
-3286405120,3286406655,GB
-3286406656,3286406911,GG
-3286406912,3286407167,GB
+3286403328,3286407167,GB
3286407168,3286407423,GG
-3286407424,3286407679,GB
-3286407680,3286407935,GG
-3286407936,3286409215,GB
+3286407424,3286409215,GB
3286409216,3286417407,DE
3286417408,3286417663,UA
3286417664,3286417919,IT
@@ -87855,7 +91017,6 @@
3286638592,3286646783,AT
3286646784,3286654975,RU
3286654976,3286655231,UA
-3286655232,3286655487,KZ
3286655488,3286655743,LT
3286655744,3286655999,RU
3286656000,3286656255,CH
@@ -87954,7 +91115,9 @@
3286926592,3286926847,DE
3286926848,3286927103,PT
3286927104,3286927359,FI
-3286927360,3286927615,DE
+3286927360,3286927437,DE
+3286927438,3286927439,GB
+3286927440,3286927615,DE
3286927616,3286927871,SI
3286927872,3286928127,BG
3286928128,3286928383,DE
@@ -88550,6 +91713,7 @@
3288782848,3288783359,NG
3288783360,3288784127,KE
3288784128,3288785407,ZA
+3288785408,3288785663,UG
3288787968,3288788223,EG
3288788224,3288792831,ZA
3288792832,3288793087,AO
@@ -88623,9 +91787,7 @@
3289137152,3289153535,BM
3289153536,3289156607,MU
3289156608,3289158655,RW
-3289158656,3289159935,MU
-3289159936,3289160191,RW
-3289160192,3289161727,MU
+3289158656,3289161727,MU
3289161728,3289163263,PR
3289163264,3289163519,US
3289163520,3289169919,PR
@@ -88726,9 +91888,7 @@
3290172160,3290172415,KE
3290172416,3290181631,ZA
3290181632,3290181887,US
-3290181888,3290182911,PR
-3290182912,3290183167,US
-3290183168,3290183423,PR
+3290181888,3290183423,PR
3290183424,3290183679,US
3290183680,3290184959,PR
3290184960,3290185215,US
@@ -88764,12 +91924,13 @@
3290480640,3290482687,AO
3290482688,3290484735,CF
3290484736,3290486783,ZA
+3290486784,3290488831,MA
3290488832,3290489343,NG
3290489344,3290489855,KE
3290489856,3290490367,EG
3290490368,3290492927,ZA
3290492928,3290494975,TZ
-3290497024,3290718975,ZA
+3290494976,3290718975,ZA
3290718976,3290719231,SZ
3290719232,3290955775,ZA
3290955776,3290980351,CR
@@ -88782,7 +91943,7 @@
3291004928,3291021311,NG
3291021312,3291029503,ZA
3291029504,3291037695,TZ
-3291037952,3291038207,ZA
+3291037696,3291038207,ZA
3291045888,3291078655,ZA
3291078656,3291086847,DZ
3291086848,3291103231,PR
@@ -88944,11 +92105,20 @@
3291549696,3291549951,LR
3291549952,3291550207,GA
3291611136,3291611647,ZA
-3291742208,3292004351,US
+3291742208,3291742463,US
+3291742464,3291742591,GB
+3291742592,3291742719,IE
+3291742720,3291750399,US
+3291750400,3291750655,GB
+3291750656,3292004351,US
3292004352,3292266495,SC
3292397568,3292463103,US
3292463104,3292528639,ZA
+3292528640,3294625791,MA
+3294625792,3295674367,KE
+3295674368,3296722943,MA
3296722944,3298820095,EG
+3299344384,3299606527,TG
3299606528,3299868671,GH
3299868672,3300130815,TN
3300130816,3300392959,CI
@@ -89029,6 +92199,7 @@
3301513216,3301515263,EG
3301515264,3301523455,GH
3301523456,3301531647,CI
+3301531648,3301539839,ZA
3301539840,3301544191,KE
3301544192,3301544959,DE
3301544960,3301548031,KE
@@ -89036,8 +92207,8 @@
3301556224,3301557759,DJ
3301557760,3301558015,US
3301558016,3301560319,DJ
-3301560320,3301565695,KE
-3301565696,3301566463,MU
+3301560320,3301565439,KE
+3301565440,3301566463,MU
3301568512,3301570559,EG
3301570560,3301572607,KE
3301572608,3301605375,EG
@@ -89083,7 +92254,6 @@
3302532096,3302533119,NA
3302533120,3302533631,MU
3302533632,3302533887,ZA
-3302533888,3302534143,MU
3302534144,3302535167,ZA
3302535168,3302536191,UG
3302536192,3302537215,GH
@@ -89105,6 +92275,8 @@
3302545920,3302546431,TZ
3302546432,3302546943,SL
3302546944,3302547455,KE
+3302547456,3302547967,ZW
+3302547968,3302548479,CI
3302548480,3302548991,GH
3302548992,3302549503,ZA
3302549504,3302550015,KE
@@ -89183,7 +92355,10 @@
3304062976,3304456191,SC
3304456192,3304521727,NG
3304521728,3304587263,SC
-3304587264,3304718335,ZA
+3304587264,3304669183,ZA
+3304669184,3304685567,TZ
+3304685568,3304701951,ZA
+3304701952,3304718335,AO
3304849408,3305111551,ZA
3305111552,3307208703,TN
3307208704,3309305855,EG
@@ -89230,8 +92405,11 @@
3315138560,3315204095,MA
3315204096,3315269631,ET
3315269632,3315286015,ZA
-3315286016,3315287807,MU
-3315287808,3315288319,KE
+3315286016,3315286271,KE
+3315286272,3315287551,MU
+3315287552,3315287807,KE
+3315287808,3315288063,MU
+3315288064,3315288319,KE
3315288320,3315288413,MU
3315288414,3315288414,KE
3315288415,3315289343,MU
@@ -89466,65 +92644,68 @@
3322691840,3322692095,SE
3322692096,3322698383,US
3322698384,3322698391,CA
-3322698392,3322773759,US
-3322773760,3322774783,CA
-3322774784,3322775039,US
-3322775040,3322776575,CA
+3322698392,3322773503,US
+3322773504,3322773759,CA
+3322773760,3322774271,US
+3322774272,3322774527,CA
+3322774528,3322775039,US
+3322775040,3322775295,CA
+3322775296,3322776063,US
+3322776064,3322776575,CA
3322776576,3322776831,US
-3322776832,3322777599,CA
-3322777600,3322777855,US
-3322777856,3322778367,CA
-3322778368,3322778623,US
-3322778624,3322779903,CA
-3322779904,3322780159,US
-3322780160,3322780415,CA
-3322780416,3322780671,US
-3322780672,3322781695,CA
-3322781696,3322782207,US
-3322782208,3322782975,CA
-3322782976,3322783231,US
-3322783232,3322785791,CA
-3322785792,3322786047,US
-3322786048,3322787839,CA
-3322787840,3322788095,US
-3322788096,3322788351,CA
-3322788352,3322788607,US
-3322788608,3322789375,CA
-3322789376,3322789631,US
-3322789632,3322791167,CA
-3322791168,3322791423,US
-3322791424,3322791679,CA
+3322776832,3322777343,CA
+3322777344,3322777855,US
+3322777856,3322780159,CA
+3322780160,3322780671,US
+3322780672,3322780927,CA
+3322780928,3322781183,US
+3322781184,3322781951,CA
+3322781952,3322782463,US
+3322782464,3322782719,CA
+3322782720,3322782975,US
+3322782976,3322785535,CA
+3322785536,3322786047,US
+3322786048,3322787583,CA
+3322787584,3322788351,US
+3322788352,3322789887,CA
+3322789888,3322790143,US
+3322790144,3322790655,CA
+3322790656,3322790911,US
+3322790912,3322791679,CA
3322791680,3322792191,US
-3322792192,3322792703,CA
-3322792704,3322793215,US
+3322792192,3322792959,CA
+3322792960,3322793215,US
3322793216,3322793471,CA
-3322793472,3322793983,US
-3322793984,3322795007,CA
-3322795008,3322795263,US
+3322793472,3322793727,US
+3322793728,3322794495,CA
+3322794496,3322795263,US
3322795264,3322796031,CA
3322796032,3322796287,US
3322796288,3322796543,CA
-3322796544,3322796799,US
-3322796800,3322799871,CA
-3322799872,3322800127,US
-3322800128,3322800895,CA
-3322800896,3322801151,US
+3322796544,3322797055,US
+3322797056,3322798591,CA
+3322798592,3322798847,US
+3322798848,3322799615,CA
+3322799616,3322800127,US
+3322800128,3322800639,CA
+3322800640,3322801151,US
3322801152,3322801663,CA
-3322801664,3322802431,US
-3322802432,3322802943,CA
+3322801664,3322801919,US
+3322801920,3322802943,CA
3322802944,3322803199,US
-3322803200,3322803711,CA
-3322803712,3322803967,US
-3322803968,3322804479,CA
+3322803200,3322804479,CA
3322804480,3322804735,US
-3322804736,3322805247,CA
-3322805248,3322805503,US
-3322805504,3322806015,CA
-3322806016,3322875903,US
+3322804736,3322805503,CA
+3322805504,3322805759,US
+3322805760,3322806271,CA
+3322806272,3322875903,US
3322880000,3322888191,AU
3322888192,3322945535,US
3322945536,3322951679,CN
-3322951680,3322970111,US
+3322951680,3322953727,US
+3322953728,3322961663,NL
+3322961664,3322969343,US
+3322969344,3322970111,NL
3322970112,3323002879,CA
3323002880,3323003135,US
3323003392,3323004671,US
@@ -89772,7 +92953,8 @@
3325067264,3325100287,CA
3325100288,3325100543,US
3325101056,3325108223,US
-3325110272,3325128703,US
+3325110272,3325122303,US
+3325123072,3325128703,US
3325128704,3325129215,TH
3325129216,3325131775,US
3325131776,3325132031,AU
@@ -89844,7 +93026,9 @@
3325224672,3325224675,US
3325224676,3325225671,CA
3325225672,3325225675,US
-3325225676,3325226592,CA
+3325225676,3325225739,CA
+3325225740,3325225740,US
+3325225741,3325226592,CA
3325226593,3325226593,US
3325226594,3325226751,CA
3325226752,3325227007,US
@@ -89884,11 +93068,8 @@
3325284864,3325285119,AU
3325285376,3325296383,US
3325296384,3325296639,CA
-3325296640,3325303807,US
-3325303808,3325304575,AS
-3325304576,3325304703,US
-3325304704,3325304767,AS
-3325304768,3325304831,US
+3325296640,3325304319,US
+3325304320,3325304831,AS
3325304832,3325307647,CA
3325307648,3325307903,BB
3325307904,3325313023,CA
@@ -89954,7 +93135,8 @@
3325551616,3325552639,CA
3325552640,3325562879,US
3325565440,3325573119,US
-3325573120,3325575167,BB
+3325573120,3325574143,VG
+3325574144,3325575167,BB
3325575168,3325630975,US
3325630976,3325631487,CA
3325631488,3325640703,US
@@ -90222,7 +93404,35 @@
3331194880,3331260415,AU
3331260416,3331269375,US
3331269376,3331269631,AU
-3331269632,3331356671,US
+3331269632,3331269632,IL
+3331269633,3331270399,US
+3331270400,3331270400,SG
+3331270401,3331270655,US
+3331270656,3331270656,IL
+3331270657,3331271167,US
+3331271168,3331271168,JP
+3331271169,3331271423,US
+3331271424,3331271679,FR
+3331271680,3331271680,JP
+3331271681,3331271935,US
+3331271936,3331271936,ES
+3331271937,3331272959,US
+3331272960,3331272960,IT
+3331272961,3331273471,US
+3331273472,3331273727,IL
+3331273728,3331273983,AU
+3331273984,3331273984,HK
+3331273985,3331274239,US
+3331274240,3331274240,SE
+3331274241,3331274495,US
+3331274496,3331274496,PL
+3331274497,3331274751,US
+3331274752,3331274752,BR
+3331274753,3331275263,US
+3331275264,3331275264,CH
+3331275265,3331275775,US
+3331275776,3331275776,CA
+3331275777,3331356671,US
3331356672,3331357183,BZ
3331357184,3331362815,US
3331362816,3331366911,CA
@@ -90374,14 +93584,15 @@
3333018112,3333023231,CA
3333023232,3333025279,US
3333025280,3333029631,CA
-3333029632,3333385983,US
+3333029632,3333374975,US
+3333374976,3333375231,IN
+3333375232,3333385983,US
3333385984,3333386239,JP
3333386240,3333396223,US
3333396224,3333396479,JP
-3333396480,3333396689,GB
-3333396690,3333396691,US
-3333396692,3333396735,GB
-3333396736,3333427967,US
+3333396480,3333396673,US
+3333396674,3333396674,DE
+3333396675,3333427967,US
3333427968,3333428007,GB
3333428008,3333428008,US
3333428009,3333428223,GB
@@ -90481,9 +93692,9 @@
3335475200,3335475455,DE
3335475456,3335524351,US
3335524352,3335524607,AU
-3335524608,3335527167,US
-3335527168,3335527423,DE
-3335527424,3335573759,US
+3335524608,3335546879,US
+3335546880,3335547135,KR
+3335547136,3335573759,US
3335573760,3335574015,IN
3335574016,3335747071,US
3335747072,3335749631,NL
@@ -90544,7 +93755,11 @@
3337650176,3337650431,GB
3337650432,3337650943,US
3337650944,3337651199,HK
-3337651200,3337682943,CH
+3337651200,3337651455,CH
+3337651456,3337651711,SG
+3337651712,3337654783,CH
+3337654784,3337655039,AU
+3337655040,3337682943,CH
3337682944,3337882111,US
3337882112,3337882623,AU
3337882624,3337892607,US
@@ -90769,7 +93984,9 @@
3339679744,3339707391,US
3339707392,3339708415,BM
3339708416,3339728895,US
-3339728896,3339729919,AG
+3339728896,3339729407,AG
+3339729408,3339729663,DM
+3339729664,3339729919,AG
3339729920,3339743231,US
3339743232,3339744255,CA
3339744256,3339747327,US
@@ -90799,7 +94016,9 @@
3339965440,3339968511,CA
3339968512,3339975935,US
3339975936,3339976191,CA
-3339976192,3340080127,US
+3339976192,3339991807,US
+3339991808,3339992063,CA
+3339992064,3340080127,US
3340080128,3340081151,CA
3340081152,3340084223,US
3340084224,3340085247,KN
@@ -90822,9 +94041,7 @@
3340429824,3340430079,PA
3340430080,3340431871,US
3340432384,3340460031,US
-3340460032,3340461055,PR
-3340461056,3340461311,US
-3340461312,3340462079,PR
+3340460032,3340462079,PR
3340462080,3340481535,US
3340481536,3340482559,CA
3340482560,3340490751,US
@@ -90832,7 +94049,6 @@
3340492800,3340584703,US
3340584704,3340584959,KW
3340584960,3340660735,US
-3340660992,3340661247,US
3340661760,3340664831,US
3340664832,3340665855,CA
3340668928,3340677119,US
@@ -90846,7 +94062,7 @@
3340852736,3340853247,CA
3340853248,3340857343,US
3340857344,3340858367,CA
-3340858368,3340888063,US
+3340858368,3340887551,US
3340888576,3340923391,US
3340923904,3340925567,US
3340925568,3340925575,DE
@@ -90952,7 +94168,9 @@
3341863936,3341864959,AG
3341864960,3341867007,US
3341867008,3341869055,CA
-3341869056,3341881087,US
+3341869056,3341870079,US
+3341870080,3341870335,CN
+3341870336,3341881087,US
3341881088,3341881343,SG
3341881344,3341891071,US
3341891072,3341891327,AU
@@ -91001,15 +94219,11 @@
3342657792,3342663423,CA
3342663424,3342831103,US
3342831104,3342831359,IN
-3342831360,3342879487,US
-3342879488,3342879743,GB
-3342879744,3343013887,US
+3342831360,3343013887,US
3343013888,3343015935,CA
3343015936,3343055871,US
3343055872,3343056895,CA
-3343056896,3343090588,US
-3343090589,3343090589,MX
-3343090590,3343129087,US
+3343056896,3343129087,US
3343129600,3343136255,US
3343136768,3343153151,US
3343153152,3343154943,CA
@@ -91045,7 +94259,9 @@
3343649792,3343650815,VI
3343650816,3343653631,US
3343653632,3343653695,CA
-3343653696,3343858687,US
+3343653696,3343654079,US
+3343654080,3343654111,CA
+3343654112,3343858687,US
3343858688,3343859199,VG
3343859200,3344116223,US
3344116224,3344116735,CA
@@ -91113,11 +94329,15 @@
3344656384,3344658431,US
3344658432,3344660479,CA
3344660480,3344670719,US
-3344670720,3344671743,GP
+3344670720,3344671231,GP
+3344671232,3344671487,MQ
+3344671488,3344671743,GP
3344671744,3344676863,US
3344676864,3344677247,CA
3344677248,3344677263,US
-3344677264,3344677407,CA
+3344677264,3344677279,CA
+3344677280,3344677295,US
+3344677296,3344677407,CA
3344677408,3344677423,US
3344677424,3344678911,CA
3344678912,3344681983,US
@@ -91162,8 +94382,8 @@
3345332640,3345332655,US
3345332656,3345332663,RO
3345332664,3345333247,US
-3345333248,3345333503,GP
-3345333504,3345334271,MF
+3345333248,3345333759,GP
+3345333760,3345334271,MF
3345334272,3345339391,US
3345339392,3345340415,CA
3345340416,3345369087,US
@@ -91385,9 +94605,7 @@
3350628352,3350642687,US
3350642688,3350643711,TC
3350643712,3350645759,US
-3350645760,3350645887,CA
-3350645888,3350646015,RU
-3350646016,3350646783,CA
+3350645760,3350646783,CA
3350646784,3350648831,US
3350648832,3350650623,CA
3350650624,3350650631,US
@@ -91398,10 +94616,12 @@
3350814976,3350815231,US
3350815232,3350823423,CA
3350823424,3350823935,US
-3350823936,3350834687,CA
+3350823936,3350825727,CA
+3350825728,3350825983,GB
+3350825984,3350834687,CA
3350834688,3350835199,US
-3350835200,3350836735,CA
-3350836736,3350836991,US
+3350835200,3350836223,CA
+3350836224,3350836991,US
3350836992,3350837247,CA
3350837248,3350837759,US
3350837760,3350843391,CA
@@ -91577,7 +94797,9 @@
3351484416,3351486463,US
3351486464,3351488511,CA
3351488512,3351494911,US
-3351494912,3351495679,SG
+3351494912,3351495195,SG
+3351495196,3351495196,US
+3351495197,3351495679,SG
3351495680,3351495935,US
3351495936,3351495989,SG
3351495990,3351495990,US
@@ -91600,7 +94822,9 @@
3351699200,3351699455,CA
3351699456,3351706367,US
3351706368,3351706623,CA
-3351706624,3351860223,US
+3351706624,3351855615,US
+3351855616,3351855871,GB
+3351855872,3351860223,US
3351860224,3351861247,KY
3351861248,3351869439,US
3351869440,3351871487,CA
@@ -91653,7 +94877,9 @@
3353335336,3353335337,NL
3353335338,3353653503,US
3353653504,3353653759,GB
-3353653760,3353714431,US
+3353653760,3353688063,US
+3353688064,3353688575,GB
+3353688576,3353714431,US
3353714432,3353714687,BE
3353714688,3353722367,US
3353722368,3353722623,GB
@@ -91667,9 +94893,7 @@
3353732608,3353732863,DE
3353732864,3353736191,US
3353736192,3353736447,PR
-3353736448,3353736703,US
-3353736704,3353736959,PR
-3353736960,3353737215,US
+3353736448,3353737215,US
3353737216,3353737471,GB
3353737472,3353780223,US
3353780224,3353780479,GB
@@ -91732,14 +94956,13 @@
3354972416,3355012607,US
3355012608,3355017215,CA
3355017216,3355052287,US
-3355052288,3355053311,CA
+3355052288,3355052543,AU
+3355052544,3355053311,CA
3355053312,3355249151,US
3355249152,3355249663,CA
3355249664,3355260927,US
3355260928,3355262719,CA
-3355262720,3355308287,US
-3355308288,3355308543,GB
-3355308544,3355310591,US
+3355262720,3355310591,US
3355310592,3355311103,CA
3355311104,3355319295,US
3355319296,3355320319,CA
@@ -92133,11 +95356,14 @@
3356157952,3356158207,CL
3356158208,3356158463,MX
3356158464,3356158719,CL
-3356158976,3356159999,CL
+3356158976,3356159743,CL
+3356159744,3356159999,BR
3356160000,3356160255,MX
3356160256,3356160511,GT
3356160512,3356160767,CL
-3356160768,3356162559,MX
+3356160768,3356161279,MX
+3356161280,3356161535,BR
+3356161536,3356162559,MX
3356162560,3356162815,PE
3356162816,3356163583,CL
3356163584,3356163839,VE
@@ -92813,7 +96039,8 @@
3360116736,3360118783,BO
3360118784,3360120831,AR
3360120832,3360124927,CO
-3360124928,3360125951,VE
+3360124928,3360125183,US
+3360125184,3360125951,VE
3360125952,3360127999,BR
3360128000,3360128319,HN
3360128320,3360128327,IT
@@ -93422,8 +96649,7 @@
3382677504,3382681599,BR
3382681600,3382683647,MX
3382683648,3382685695,CL
-3382685696,3382686655,MX
-3382686656,3382686719,US
+3382685696,3382686719,MX
3382686720,3382689791,BR
3382689792,3382695935,MX
3382695936,3382696959,AR
@@ -93610,7 +96836,7 @@
3389035776,3389036031,SG
3389036032,3389036287,AU
3389036288,3389036543,NZ
-3389037056,3389037567,AU
+3389036800,3389037567,AU
3389037568,3389038591,NC
3389038592,3389044735,HK
3389044736,3389046783,AU
@@ -93675,7 +96901,8 @@
3389222912,3389223935,US
3389223936,3389226239,IN
3389226240,3389226495,AU
-3389226496,3389227007,IN
+3389226496,3389226751,SG
+3389226752,3389227007,IN
3389227008,3389227519,CN
3389227520,3389228031,PK
3389228032,3389228799,AU
@@ -93703,6 +96930,7 @@
3389302016,3389302527,AU
3389302528,3389302783,PK
3389302784,3389303039,VN
+3389303040,3389303295,IN
3389303296,3389303807,ID
3389303808,3389304063,IN
3389304064,3389304319,BD
@@ -93717,7 +96945,9 @@
3389306624,3389306879,AU
3389306880,3389307135,SG
3389307136,3389307647,ID
+3389307648,3389307903,IN
3389307904,3389308159,AU
+3389308160,3389308415,ID
3389308416,3389308671,AU
3389308672,3389308927,PH
3389308928,3389317119,HK
@@ -93751,7 +96981,9 @@
3389407744,3389408255,CN
3389408256,3389409279,JP
3389409280,3389409791,CN
-3389409792,3389412351,AU
+3389409792,3389411327,AU
+3389411328,3389411583,IN
+3389411584,3389412351,AU
3389412352,3389412607,NZ
3389412608,3389412863,PH
3389412864,3389413119,AU
@@ -94088,7 +97320,9 @@
3390414336,3390414847,SG
3390414848,3390418943,JP
3390418944,3390423039,MV
-3390423040,3390439423,SG
+3390423040,3390429439,SG
+3390429440,3390429951,HK
+3390429952,3390439423,SG
3390439424,3390441471,NZ
3390441472,3390443519,TH
3390443520,3390447359,NZ
@@ -94112,9 +97346,12 @@
3390770432,3390770687,AU
3390770944,3390771199,AU
3390771200,3390775295,SG
-3390775296,3390801919,NZ
+3390775296,3390790399,NZ
+3390790400,3390790655,AU
+3390790656,3390801919,NZ
3390801920,3390802431,CN
-3390802432,3390832639,NZ
+3390802432,3390825727,NZ
+3390826496,3390832639,NZ
3390832640,3390963711,TH
3390963712,3391094783,KR
3391094784,3391356927,JP
@@ -94126,7 +97363,9 @@
3391444480,3391444991,VN
3391444992,3391453183,NZ
3391453184,3391453439,ID
-3391453440,3391487999,NZ
+3391453440,3391469055,NZ
+3391469056,3391469311,AU
+3391469312,3391487999,NZ
3391488000,3391489023,CN
3391489024,3391490047,NP
3391490048,3391492095,CN
@@ -94188,7 +97427,9 @@
3391717888,3391718399,CN
3391718400,3391718911,IN
3391718912,3391719423,JP
-3391719424,3391721471,NZ
+3391719424,3391720959,NZ
+3391720960,3391721215,CN
+3391721216,3391721471,NZ
3391721472,3391721983,AU
3391721984,3391722239,TW
3391722240,3391722495,PH
@@ -94202,11 +97443,48 @@
3391737856,3391741951,JP
3391741952,3391746047,IN
3391746048,3391750143,CN
-3391750144,3391766783,SG
-3391766784,3391767039,JP
-3391767040,3391810047,SG
+3391750144,3391752475,JP
+3391752476,3391752479,SG
+3391752480,3391753407,JP
+3391753408,3391753471,SG
+3391753472,3391758335,JP
+3391758336,3391765503,SG
+3391765504,3391767295,JP
+3391767296,3391768319,SG
+3391768320,3391774719,JP
+3391774720,3391776767,SG
+3391776768,3391782911,JP
+3391782912,3391784959,SG
+3391784960,3391785119,JP
+3391785120,3391785151,SG
+3391785152,3391786112,JP
+3391786113,3391786113,SG
+3391786114,3391786239,JP
+3391786240,3391791615,SG
+3391791616,3391792383,JP
+3391792384,3391792895,SG
+3391792896,3391793663,JP
+3391793664,3391795455,SG
+3391795456,3391795927,JP
+3391795928,3391795935,SG
+3391795936,3391796335,JP
+3391796336,3391796343,SG
+3391796344,3391796735,JP
+3391796736,3391796991,SG
+3391796992,3391798783,JP
+3391798784,3391804415,SG
+3391804416,3391805183,JP
+3391805184,3391805439,SG
+3391805440,3391806207,JP
+3391806208,3391806975,SG
+3391806976,3391807475,JP
+3391807476,3391807479,SG
+3391807480,3391807999,JP
+3391808000,3391810047,SG
3391810048,3391810303,JP
-3391810304,3391815679,SG
+3391810304,3391813887,SG
+3391813888,3391815423,JP
+3391815424,3391815679,SG
3391815680,3391817727,AU
3391817728,3391819775,TO
3391819776,3391823871,JP
@@ -94279,6 +97557,7 @@
3391947776,3391948287,HK
3391948288,3391948799,IN
3391948800,3391949311,HK
+3391949312,3391949823,IN
3391949824,3391950079,JP
3391950080,3391950335,AU
3391950336,3391950591,HK
@@ -94435,6 +97714,7 @@
3392487424,3392499711,IN
3392499712,3392503807,JP
3392503808,3392505343,HK
+3392505344,3392505855,IN
3392506880,3392507903,HK
3392507904,3392508927,KH
3392508928,3392510975,HK
@@ -94600,7 +97880,6 @@
3393021440,3393021695,IN
3393021696,3393021951,HK
3393021952,3393022463,ID
-3393022464,3393022975,SG
3393022976,3393023231,PH
3393023232,3393023487,AU
3393023488,3393023743,SG
@@ -94611,8 +97890,9 @@
3393025280,3393025535,IN
3393025536,3393025791,PH
3393025792,3393026047,AU
+3393026048,3393026559,IN
3393026560,3393026815,AU
-3393027072,3393028095,ID
+3393027072,3393027839,ID
3393028096,3393060863,AU
3393060864,3393062911,FJ
3393062912,3393069055,ID
@@ -94831,7 +98111,9 @@
3394035712,3394039807,MY
3394039808,3394040575,SG
3394040576,3394040831,IN
-3394040832,3394041855,SG
+3394040832,3394041087,SG
+3394041088,3394041343,MY
+3394041344,3394041855,SG
3394041856,3394042879,AU
3394042880,3394043903,CN
3394043904,3394060287,HK
@@ -94903,9 +98185,7 @@
3394351104,3394355199,CN
3394355200,3394359295,IN
3394359296,3394363391,AU
-3394363392,3394375839,HK
-3394375840,3394375847,CN
-3394375848,3394441215,HK
+3394363392,3394441215,HK
3394441216,3394453503,IN
3394453504,3394461695,AU
3394461696,3394465791,SG
@@ -94924,6 +98204,7 @@
3394502656,3394503679,HK
3394503680,3394507263,CN
3394507264,3394507775,JP
+3394507776,3394508287,AU
3394508544,3394508799,PH
3394508800,3394510847,CN
3394510848,3394514943,BD
@@ -95067,7 +98348,6 @@
3394963456,3394965503,ID
3394965504,3394967551,TH
3394967552,3394969599,ID
-3394969600,3394973695,SG
3394973696,3394977791,JP
3394977792,3394985983,IN
3394985984,3394990079,CN
@@ -95131,10 +98411,11 @@
3395180032,3395180287,JP
3395180288,3395180543,HK
3395180544,3395181055,VN
+3395181056,3395181567,TH
3395181568,3395182591,CN
3395182592,3395190783,SG
3395190784,3395198975,JP
-3395198976,3395203071,MY
+3395200768,3395201023,MY
3395203072,3395215359,JP
3395215360,3395219455,HK
3395219456,3395223551,TH
@@ -95166,6 +98447,7 @@
3397026304,3397026815,TH
3397026816,3397027071,CN
3397027072,3397027327,PH
+3397027328,3397027839,IN
3397027840,3397029887,JP
3397029888,3397033983,MY
3397033984,3397038079,ID
@@ -95175,12 +98457,9 @@
3397070848,3397074943,PH
3397074944,3397083135,HK
3397083136,3397087231,CN
-3397087232,3397088255,JP
3397088256,3397090303,CN
3397090304,3397091327,TW
-3397091328,3397093375,GU
-3397093376,3397093631,MP
-3397093632,3397095679,GU
+3397091328,3397095679,GU
3397095680,3397095935,MP
3397095936,3397099519,GU
3397099520,3397103615,HK
@@ -95224,8 +98503,7 @@
3397213184,3397213439,IN
3397213440,3397213695,AU
3397213696,3397214207,ID
-3397214208,3397214719,BD
-3397214720,3397215231,AU
+3397214208,3397215231,AU
3397215232,3397215743,ID
3397215744,3397216255,PH
3397216256,3397216767,AU
@@ -95259,7 +98537,9 @@
3397323776,3397328895,CN
3397328896,3397330943,ID
3397330944,3397337087,CN
-3397337088,3397338375,HK
+3397337088,3397338039,HK
+3397338040,3397338043,SG
+3397338044,3397338375,HK
3397338376,3397338379,JP
3397338380,3397339647,HK
3397339648,3397339687,SG
@@ -95306,8 +98586,7 @@
3397500928,3397501951,BD
3397501952,3397503999,IN
3397504000,3397505023,TH
-3397505280,3397505535,IN
-3397506048,3397506559,IN
+3397505024,3397506559,IN
3397506560,3397506815,AU
3397506816,3397507071,IN
3397507072,3397507583,ID
@@ -95372,8 +98651,8 @@
3397779456,3397781503,ID
3397781504,3397783551,BD
3397783552,3397785599,VN
-3397785600,3397787391,TO
-3397787392,3397791743,AU
+3397785600,3397787647,TO
+3397787648,3397791743,AU
3397791744,3397791999,NZ
3397792000,3397792767,AU
3397792768,3397793023,IN
@@ -95388,15 +98667,15 @@
3397816320,3397832703,IN
3397832704,3397836799,CN
3397836800,3397844991,AU
-3397844992,3397854719,JP
-3397854720,3397854975,NZ
-3397854976,3397869823,JP
+3397844992,3397869823,JP
3397869824,3397870079,AU
3397870080,3397887999,JP
3397888000,3397889023,IN
3397889024,3397906111,JP
3397906112,3397906175,IN
-3397906176,3397910527,JP
+3397906176,3397908735,JP
+3397908736,3397908991,AU
+3397908992,3397910527,JP
3397910528,3397918719,SG
3397918720,3397922815,AU
3397922816,3397926911,CN
@@ -95517,9 +98796,9 @@
3398640672,3398640695,SG
3398640696,3398642431,JP
3398642432,3398642687,AU
-3398642688,3398646783,JP
-3398646784,3398647039,AU
-3398647040,3398647807,JP
+3398642688,3398643679,JP
+3398643680,3398643695,NZ
+3398643696,3398647807,JP
3398647808,3398655999,IN
3398656000,3398668287,AU
3398668288,3398672383,CN
@@ -95585,6 +98864,7 @@
3399012352,3399016447,JP
3399016448,3399024639,ID
3399024640,3399025663,CN
+3399025664,3399026175,TW
3399026176,3399026431,SG
3399026688,3399028735,HK
3399028736,3399032831,ID
@@ -95744,9 +99024,10 @@
3399983746,3399991295,US
3399991296,3399995391,IN
3399995392,3399999487,KR
-3399999488,3400000255,SG
-3400000256,3400000511,AU
-3400000512,3400002303,SG
+3399999488,3400000475,SG
+3400000476,3400000479,US
+3400000480,3400000487,AU
+3400000488,3400002303,SG
3400002304,3400002367,HK
3400002368,3400004607,SG
3400004608,3400004863,AU
@@ -95863,8 +99144,8 @@
3400433664,3400435711,HK
3400435712,3400435967,BD
3400435968,3400441855,HK
-3400441856,3400446079,NZ
-3400446080,3400446207,AU
+3400441856,3400445951,NZ
+3400445952,3400446207,AU
3400446208,3400450047,NZ
3400450048,3400458239,JP
3400458240,3400466431,AU
@@ -95889,8 +99170,8 @@
3400609792,3400630271,JP
3400630272,3400646655,IN
3400646656,3400646911,HK
-3400646912,3400647679,SG
-3400647680,3400648191,AU
+3400646912,3400647935,SG
+3400647936,3400648191,AU
3400648192,3400648677,SG
3400648678,3400648678,HK
3400648679,3400648815,SG
@@ -95899,8 +99180,8 @@
3400650144,3400650159,HK
3400650160,3400650409,SG
3400650410,3400650410,AU
-3400650411,3400650751,SG
-3400650752,3400654847,AU
+3400650411,3400650495,SG
+3400650496,3400654847,AU
3400654848,3400663039,IN
3400663040,3400683519,MY
3400683520,3400691711,JP
@@ -96391,7 +99672,9 @@
3406649344,3406649855,CN
3406649856,3406650367,AU
3406650368,3406651391,CN
-3406651392,3406669823,AU
+3406651392,3406664191,AU
+3406664192,3406664447,IN
+3406664448,3406669823,AU
3406669824,3406670847,IN
3406670848,3406671103,AU
3406671104,3406671359,CN
@@ -96483,14 +99766,17 @@
3406835968,3406836735,CN
3406836736,3406838271,AU
3406838272,3406838527,CN
-3406838528,3406857471,AU
+3406838528,3406839551,AU
+3406839808,3406857471,AU
3406857472,3406857727,CN
3406857728,3406864639,AU
3406864640,3406865151,CN
3406865152,3406865663,AU
3406865664,3406865919,IN
3406865920,3406869503,AU
-3406869504,3406870527,JP
+3406869504,3406870015,JP
+3406870016,3406870271,AU
+3406870272,3406870527,JP
3406870528,3406871039,AU
3406871040,3406871551,CN
3406871552,3406881791,AU
@@ -96743,7 +100029,8 @@
3407240192,3407241215,CN
3407241216,3407241983,AU
3407241984,3407242239,CN
-3407242240,3407243775,AU
+3407242240,3407243263,AU
+3407243264,3407243775,HK
3407243776,3407244031,CN
3407244032,3407244287,AU
3407244800,3407247871,AU
@@ -96772,7 +100059,8 @@
3407282176,3407282431,CN
3407282688,3407294207,AU
3407294208,3407294463,CN
-3407294464,3407297791,AU
+3407294464,3407295487,AU
+3407295744,3407297791,AU
3407297792,3407298559,CN
3407298560,3407300863,AU
3407300864,3407301119,CN
@@ -96817,7 +100105,8 @@
3407352320,3407352575,CN
3407352576,3407354623,AU
3407354624,3407354879,CN
-3407354880,3407358719,AU
+3407354880,3407357439,AU
+3407357696,3407358719,AU
3407358720,3407358975,CN
3407358976,3407360511,AU
3407360512,3407361023,ID
@@ -96845,8 +100134,8 @@
3407377664,3407378943,AU
3407378944,3407379455,CN
3407379456,3407382015,AU
-3407382016,3407382271,JP
-3407382272,3407384831,AU
+3407382016,3407382527,JP
+3407382528,3407384831,AU
3407384832,3407385087,CN
3407385088,3407386623,AU
3407386624,3407387135,CN
@@ -96921,8 +100210,8 @@
3407473408,3407473919,CN
3407473920,3407475199,AU
3407475200,3407475455,CN
-3407475456,3407480831,AU
-3407480832,3407481223,JP
+3407475456,3407481087,AU
+3407481088,3407481223,JP
3407481224,3407481231,AU
3407481232,3407481599,JP
3407481600,3407481855,AU
@@ -96969,7 +100258,9 @@
3407523328,3407523583,AU
3407523584,3407523839,JP
3407523840,3407524095,CN
-3407524096,3407526143,AU
+3407524096,3407524607,AU
+3407524608,3407524863,NZ
+3407524864,3407526143,AU
3407526144,3407526399,CN
3407526400,3407530495,AU
3407530496,3407531007,CN
@@ -97027,7 +100318,9 @@
3407595520,3407595775,CN
3407595776,3407596031,AU
3407596032,3407596287,CN
-3407596288,3407603967,AU
+3407596288,3407602943,AU
+3407602944,3407603199,JP
+3407603200,3407603967,AU
3407603968,3407604223,CN
3407604224,3407604479,AU
3407604480,3407604735,IN
@@ -97035,7 +100328,9 @@
3407606016,3407606271,CN
3407606272,3407608319,AU
3407608320,3407608575,CN
-3407608576,3407612415,AU
+3407608576,3407608715,AU
+3407608716,3407608736,JP
+3407608737,3407612415,AU
3407612416,3407612671,CN
3407612672,3407612927,AU
3407612928,3407613183,CN
@@ -97155,7 +100450,7 @@
3407748608,3407750655,AU
3407750656,3407751167,SG
3407751168,3407753215,AU
-3407753216,3407753727,SG
+3407753216,3407753727,HK
3407753728,3407757823,AU
3407757824,3407758079,CN
3407758080,3407761663,AU
@@ -97168,7 +100463,8 @@
3407771904,3407772159,CN
3407772160,3407772415,AU
3407772416,3407772671,CN
-3407772672,3407779839,AU
+3407772672,3407773439,AU
+3407773696,3407779839,AU
3407779840,3407780095,CN
3407780096,3407780863,AU
3407780864,3407781119,CN
@@ -97220,7 +100516,9 @@
3407826944,3407827199,CN
3407827200,3407828223,AU
3407828224,3407828479,CN
-3407828480,3407831295,AU
+3407828480,3407828991,AU
+3407828992,3407829503,US
+3407829504,3407831295,AU
3407831296,3407831551,CN
3407831552,3407833343,AU
3407833344,3407833855,CN
@@ -97253,7 +100551,7 @@
3407864320,3407865087,AU
3407865088,3407865343,CN
3407865344,3407866367,AU
-3407866368,3407866623,GB
+3407866368,3407866623,SG
3407866624,3407869951,AU
3407869952,3407870463,CN
3407870464,3407871231,AU
@@ -97294,7 +100592,7 @@
3407910912,3407911167,CN
3407911168,3407919615,AU
3407919616,3407920127,CN
-3407920128,3407921151,AU
+3407920384,3407921151,AU
3407921152,3407921407,CN
3407921408,3407922175,AU
3407922176,3407922431,CN
@@ -97418,7 +100716,8 @@
3408055296,3408056319,CN
3408056320,3408062463,AU
3408062464,3408062719,CN
-3408062720,3408064511,AU
+3408062720,3408063999,AU
+3408064256,3408064511,AU
3408064512,3408064767,CN
3408065024,3408065279,CN
3408065280,3408065791,AU
@@ -97438,7 +100737,7 @@
3409387008,3409387263,CN
3409387264,3409396479,AU
3409396480,3409396735,PH
-3409396736,3409403135,AU
+3409396992,3409403135,AU
3409403136,3409403391,CN
3409403392,3409405183,AU
3409405184,3409405439,CN
@@ -97452,7 +100751,9 @@
3409412096,3409412607,CN
3409412608,3409416703,AU
3409416704,3409417215,CN
-3409417216,3409420287,AU
+3409417216,3409418495,AU
+3409418496,3409418751,PL
+3409418752,3409420287,AU
3409420288,3409420543,IN
3409420544,3409423615,AU
3409423616,3409423871,IN
@@ -97491,8 +100792,8 @@
3409466880,3409467135,AU
3409467136,3409467391,HK
3409467392,3409467903,AU
-3409467904,3409468415,HK
-3409468416,3409469183,AU
+3409467904,3409468159,HK
+3409468160,3409469183,AU
3409469184,3409469439,CN
3409469440,3409473023,AU
3409473024,3409473279,CN
@@ -97763,7 +101064,7 @@
3411278848,3411296255,HK
3411296256,3411312639,AU
3411312640,3411313151,HK
-3411313152,3411313663,TW
+3411313152,3411313663,SG
3411313664,3411313919,AU
3411313920,3411314175,HK
3411314176,3411314687,NZ
@@ -97894,6 +101195,7 @@
3412296192,3412296703,ID
3412296704,3412297727,NZ
3412297728,3412298751,MY
+3412298752,3412299263,TH
3412299264,3412299519,AU
3412299520,3412299775,HK
3412299776,3412302847,AU
@@ -97990,7 +101292,9 @@
3413251072,3413262335,JP
3413262336,3413263359,PH
3413263360,3413264383,IN
-3413264384,3413265407,SG
+3413264384,3413264639,SG
+3413264640,3413264895,AU
+3413264896,3413265407,SG
3413265408,3413266431,AU
3413266432,3413270527,CN
3413270528,3413278719,TH
@@ -98008,7 +101312,9 @@
3413327872,3413344255,IN
3413344256,3413360639,PH
3413360640,3413377023,MY
-3413377024,3413524479,SG
+3413377024,3413405055,SG
+3413405056,3413405183,HK
+3413405184,3413524479,SG
3413524480,3413540863,TH
3413540864,3413557247,NZ
3413557248,3413565439,CN
@@ -98062,16 +101368,79 @@
3413602560,3413604351,CN
3413604352,3413606399,HK
3413606400,3413639167,CN
-3413639168,3413704703,SG
+3413639168,3413639423,SG
+3413639424,3413640959,JP
+3413640960,3413644287,SG
+3413644288,3413645311,JP
+3413645312,3413646079,SG
+3413646080,3413647871,JP
+3413647872,3413648383,SG
+3413648384,3413649359,JP
+3413649360,3413649375,SG
+3413649376,3413649407,JP
+3413649408,3413650687,SG
+3413650688,3413652735,JP
+3413652736,3413653247,SG
+3413653248,3413654015,JP
+3413654016,3413654271,SG
+3413654272,3413655039,JP
+3413655040,3413655295,SG
+3413655296,3413656831,JP
+3413656832,3413657599,SG
+3413657600,3413658879,JP
+3413658880,3413659135,SG
+3413659136,3413659903,JP
+3413659904,3413660159,SG
+3413660160,3413661183,JP
+3413661184,3413661439,SG
+3413661440,3413662719,JP
+3413662720,3413662975,SG
+3413662976,3413665023,JP
+3413665024,3413665791,SG
+3413665792,3413665919,JP
+3413665920,3413665951,SG
+3413665952,3413666463,JP
+3413666464,3413666495,SG
+3413666496,3413667327,JP
+3413667328,3413676543,SG
+3413676544,3413677311,JP
+3413677312,3413678591,SG
+3413678592,3413679359,JP
+3413679360,3413680127,SG
+3413680128,3413680311,JP
+3413680312,3413680315,SG
+3413680316,3413681407,JP
+3413681408,3413686271,SG
+3413686272,3413686335,JP
+3413686336,3413686368,SG
+3413686369,3413686687,JP
+3413686688,3413686719,SG
+3413686720,3413687039,JP
+3413687040,3413688575,SG
+3413688576,3413689343,JP
+3413689344,3413696511,SG
+3413696512,3413697535,JP
+3413697536,3413704703,SG
3413704704,3413737471,MY
3413737472,3413741567,SG
-3413741568,3413742591,TH
+3413741568,3413741823,JP
+3413741824,3413742079,SG
+3413742080,3413742591,JP
3413742592,3413744127,SG
-3413744128,3413748479,TH
+3413744128,3413745407,TH
+3413745408,3413747455,SG
+3413747456,3413747711,JP
+3413747712,3413748223,SG
+3413748224,3413748479,JP
3413748480,3413749503,SG
-3413749504,3413750271,TH
+3413749504,3413750271,JP
3413750272,3413751039,SG
-3413751040,3413753087,TH
+3413751040,3413751295,JP
+3413751296,3413751551,SG
+3413751552,3413752063,JP
+3413752064,3413752575,SG
+3413752576,3413752831,JP
+3413752832,3413753087,SG
3413753088,3413753855,JP
3413753856,3413762047,AU
3413762048,3413770239,TW
@@ -98080,6 +101449,7 @@
3413835776,3413843967,SG
3413843968,3413848063,IN
3413848064,3413850111,SG
+3413850112,3413850623,ID
3413850880,3413851135,AU
3413851136,3413852159,ID
3413852160,3413868543,AU
@@ -98152,7 +101522,7 @@
3414605824,3414616063,IN
3414616064,3414618111,ID
3414618112,3414620159,CN
-3414620672,3414621183,IN
+3414620160,3414621183,IN
3414621184,3414638591,PK
3414638592,3414646783,TW
3414646784,3414654975,CN
@@ -98167,7 +101537,12 @@
3415080960,3415082239,MY
3415082240,3415083007,SG
3415083008,3415083519,AU
-3415083520,3415088127,SG
+3415083520,3415084031,SG
+3415084032,3415084543,CN
+3415084544,3415085055,US
+3415085056,3415087615,SG
+3415087616,3415087871,US
+3415087872,3415088127,SG
3415088128,3415089151,HK
3415089152,3415097343,MY
3415097344,3415103487,ID
@@ -98188,9 +101563,7 @@
3415195648,3415199743,NZ
3415199744,3415220223,AU
3415220224,3415224319,NZ
-3415224320,3415224831,US
-3415224832,3415225087,AU
-3415225088,3415228415,US
+3415224320,3415228415,US
3415228416,3415236607,KH
3415236608,3415244799,CN
3415244800,3415277567,TH
@@ -98227,17 +101600,34 @@
3415572480,3415605247,SG
3415605248,3415736319,TH
3415736320,3415737599,SG
-3415737600,3415737855,TH
+3415737600,3415737855,JP
3415737856,3415738879,SG
-3415738880,3415739135,TH
+3415738880,3415739135,JP
3415739136,3415740159,SG
-3415740160,3415740415,TH
+3415740160,3415740415,JP
3415740416,3415741695,SG
-3415741696,3415747071,TH
+3415741696,3415741951,JP
+3415741952,3415742207,SG
+3415742208,3415742463,JP
+3415742464,3415746047,SG
+3415746048,3415746303,JP
+3415746304,3415746815,SG
+3415746816,3415747071,JP
3415747072,3415747839,SG
-3415747840,3415748351,TH
+3415747840,3415748351,JP
3415748352,3415749375,SG
-3415749376,3415752703,TH
+3415749376,3415749759,JP
+3415749760,3415749791,TH
+3415749792,3415749823,JP
+3415749824,3415749839,TH
+3415749840,3415749887,JP
+3415749888,3415750143,SG
+3415750144,3415750399,JP
+3415750400,3415751423,SG
+3415751424,3415751679,JP
+3415751680,3415751935,TH
+3415751936,3415752191,JP
+3415752192,3415752703,SG
3415752704,3415760895,CN
3415760896,3415769087,NZ
3415769088,3415777279,CN
@@ -98262,7 +101652,7 @@
3415838720,3415842815,KR
3415842816,3415851007,TH
3415851008,3415855103,AU
-3415855616,3415856127,IN
+3415855104,3415856127,IN
3415856128,3415858175,ID
3415858176,3415859199,LK
3415859200,3415867391,AU
@@ -98302,13 +101692,16 @@
3416327168,3416328191,HK
3416328192,3416330239,AU
3416330240,3416334335,ID
-3416334336,3416342527,SG
+3416334336,3416339455,SG
+3416339456,3416339711,IN
+3416339712,3416342527,SG
3416342528,3416371199,AU
3416371200,3416371711,PH
3416371712,3416371967,VN
3416372224,3416372479,CN
3416372480,3416372735,SG
3416372736,3416372991,AU
+3416373248,3416373759,ID
3416373760,3416374271,AU
3416374272,3416374527,PH
3416374528,3416374783,IN
@@ -98331,9 +101724,7 @@
3416522752,3416588287,AU
3416588288,3416653823,JP
3416653824,3416667135,AU
-3416667136,3416667647,US
-3416667648,3416667903,AU
-3416667904,3416668159,US
+3416667136,3416668159,US
3416668160,3416686591,AU
3416686592,3416694783,SG
3416694784,3416702975,CN
@@ -98405,7 +101796,7 @@
3416930816,3416931327,CN
3416931328,3416932351,IN
3416932352,3416936447,PK
-3416936448,3416938495,AU
+3416936448,3416939007,AU
3416939008,3416939519,HK
3416939520,3416940543,AU
3416940544,3416948735,KR
@@ -98580,7 +101971,9 @@
3418282240,3418282495,AU
3418282496,3418283519,PH
3418283520,3418284031,AU
-3418284032,3418286079,SG
+3418284032,3418285567,SG
+3418285568,3418285823,JP
+3418285824,3418286079,SG
3418286080,3418287103,AU
3418287104,3418288127,SG
3418288128,3418290175,ID
@@ -98595,7 +101988,9 @@
3418294272,3418296319,VN
3418296320,3418297343,HK
3418297344,3418298367,CN
-3418298368,3418299391,HK
+3418298368,3418298879,HK
+3418298880,3418299135,CN
+3418299136,3418299391,HK
3418299392,3418300415,CN
3418300416,3418300927,BD
3418300928,3418301439,IN
@@ -98616,15 +102011,13 @@
3418374144,3418382335,AU
3418382336,3418391039,JP
3418391040,3418391295,AU
-3418391296,3418392575,JP
-3418392576,3418392831,AU
-3418392832,3418393919,JP
+3418391296,3418393919,JP
3418393920,3418393927,AU
3418393928,3418394367,JP
3418394368,3418394623,TW
-3418394624,3418397695,JP
-3418397696,3418397951,HK
-3418397952,3418399231,JP
+3418394624,3418397183,JP
+3418397184,3418397439,MY
+3418397440,3418399231,JP
3418399232,3418399247,PH
3418399248,3418400255,JP
3418400256,3418400511,AU
@@ -98668,8 +102061,8 @@
3418643200,3418643455,JP
3418643456,3418644479,AU
3418644480,3418644735,JP
-3418644736,3418644863,AU
-3418644864,3418650807,JP
+3418644736,3418644991,AU
+3418644992,3418650807,JP
3418650808,3418650808,HK
3418650809,3418650823,JP
3418650824,3418650839,HK
@@ -98702,9 +102095,9 @@
3419078656,3419209727,TW
3419209728,3419226111,VN
3419226112,3419234303,CN
-3419234304,3419239423,JP
-3419239424,3419239935,US
-3419239936,3419242495,JP
+3419234304,3419241727,JP
+3419241728,3419242239,US
+3419242240,3419242495,JP
3419242496,3419275263,CN
3419275264,3419340799,AU
3419340800,3419344895,TW
@@ -98858,8 +102251,8 @@
3420437504,3420438527,IN
3420438528,3420454911,HK
3420454912,3422552063,KR
-3422552064,3422850559,US
-3422850560,3422851071,GB
+3422552064,3422850815,US
+3422850816,3422851071,GB
3422851072,3422955519,US
3422955520,3422956799,FR
3422956800,3423076351,US
@@ -98986,9 +102379,7 @@
3425173504,3425304575,CA
3425304576,3425471487,US
3425471488,3425472511,CA
-3425472512,3425484543,US
-3425484544,3425484799,GU
-3425484800,3425697791,US
+3425472512,3425697791,US
3425697792,3425699839,CA
3425699840,3425714175,US
3425714176,3425722367,CA
@@ -99026,7 +102417,9 @@
3426729472,3426729983,CA
3426729984,3426744319,US
3426744320,3426746367,CA
-3426746368,3427109887,US
+3426746368,3427082239,US
+3427082240,3427082495,DE
+3427082496,3427109887,US
3427110400,3427112447,US
3427112448,3427112703,CN
3427112704,3427117055,US
@@ -99434,7 +102827,9 @@
3432134144,3432205311,US
3432205312,3432206335,CA
3432206336,3432265983,US
-3432265984,3432267263,DE
+3432265984,3432266239,DE
+3432266240,3432266751,US
+3432266752,3432267263,DE
3432267264,3432280063,US
3432280064,3432280319,GB
3432280320,3432324607,US
@@ -99517,7 +102912,9 @@
3435271680,3435507711,US
3435507712,3435511807,CA
3435511808,3436249343,US
-3436249344,3436255743,CA
+3436249344,3436252415,CA
+3436252416,3436253183,US
+3436253184,3436255743,CA
3436255744,3436256255,US
3436256256,3436278271,CA
3436278272,3436278527,US
@@ -99722,7 +103119,9 @@
3448987648,3448989695,IN
3448989696,3448990719,HK
3448990720,3448991743,IN
-3448991744,3449098751,US
+3448991744,3449098239,US
+3449098240,3449098495,GB
+3449098496,3449098751,US
3449098752,3449099263,DE
3449099264,3449100799,US
3449100800,3449101311,AU
@@ -99777,7 +103176,9 @@
3449189376,3449189887,US
3449189888,3449190655,CA
3449190656,3449190911,US
-3449190912,3449191679,CA
+3449190912,3449191167,CA
+3449191168,3449191423,US
+3449191424,3449191679,CA
3449191680,3449192447,US
3449192448,3449195775,CA
3449195776,3449196031,US
@@ -99821,9 +103222,9 @@
3449594112,3449599999,US
3449600000,3449600255,CA
3449600256,3449638911,US
-3449638912,3449639186,GB
-3449639187,3449639187,NL
-3449639188,3449639679,GB
+3449638912,3449639167,GB
+3449639168,3449639423,US
+3449639424,3449639679,GB
3449639680,3449639935,US
3449639936,3449640191,GB
3449640192,3449640447,NL
@@ -99891,7 +103292,9 @@
3450974336,3450974463,GB
3450974464,3450986495,US
3450986496,3450986751,HK
-3450986752,3451170303,US
+3450986752,3450987007,US
+3450987008,3450987263,CN
+3450987264,3451170303,US
3451170304,3451170559,VE
3451170560,3451187967,US
3451187968,3451188223,AU
@@ -100197,7 +103600,11 @@
3453408256,3453409023,BB
3453409024,3453409535,KN
3453409536,3453411327,BB
-3453411328,3453552127,US
+3453411328,3453419519,US
+3453419520,3453427711,MO
+3453427712,3453551844,US
+3453551845,3453551845,GB
+3453551846,3453552127,US
3453552128,3453552383,GB
3453552384,3453552639,US
3453552640,3453552895,GB
@@ -100506,7 +103913,11 @@
3459295232,3459296255,KR
3459296256,3459310591,US
3459310592,3459310847,KY
-3459310848,3459312639,US
+3459310848,3459311103,US
+3459311104,3459311142,KY
+3459311143,3459311143,US
+3459311144,3459311615,KY
+3459311616,3459312639,US
3459312640,3459312671,MX
3459312672,3459312767,US
3459312768,3459312895,MX
@@ -100614,7 +104025,7 @@
3459618001,3459620863,CA
3459620864,3459624959,US
3459624960,3459629055,BM
-3459629056,3459631359,US
+3459629056,3459631615,US
3459633152,3459686399,US
3459686400,3459688479,NL
3459688480,3459689215,US
@@ -100972,16 +104383,12 @@
3464388608,3464391935,US
3464391936,3464392191,CA
3464392192,3464394751,US
-3464394752,3464395007,LC
-3464395008,3464395775,VC
-3464395776,3464396031,LC
-3464396032,3464396799,VC
+3464394752,3464396799,VC
3464396800,3464421631,US
3464421632,3464421887,CA
3464421888,3464426495,US
3464426496,3464426751,GD
-3464426752,3464428543,US
-3464428800,3464429311,US
+3464426752,3464429311,US
3464429312,3464429567,CA
3464429568,3464548351,US
3464548352,3464548607,AG
@@ -101024,7 +104431,9 @@
3464782080,3464782335,GB
3464782336,3464785151,US
3464785152,3464785407,AR
-3464785408,3464802303,US
+3464785408,3464789327,US
+3464789328,3464789343,CA
+3464789344,3464802303,US
3464802304,3464806399,CA
3464806400,3465154559,US
3465154560,3465158655,BS
@@ -101056,8 +104465,8 @@
3466072432,3466072439,CA
3466072440,3466072775,US
3466072776,3466072783,CA
-3466072784,3466072831,US
-3466072832,3466073087,CA
+3466072784,3466073055,US
+3466073056,3466073087,CA
3466073088,3466158079,US
3466158080,3466166271,PA
3466166272,3466290687,US
@@ -101098,7 +104507,9 @@
3466938808,3466938811,GB
3466938812,3466958079,US
3466958080,3466958335,CA
-3466958336,3467051007,US
+3466958336,3466965503,US
+3466965504,3466965759,NL
+3466965760,3467051007,US
3467051008,3467068927,CA
3467068928,3467069439,US
3467069440,3467116543,CA
@@ -101221,7 +104632,53 @@
3468619008,3468619263,CA
3468619264,3468623871,US
3468623872,3468656639,CA
-3468656640,3469055743,US
+3468656640,3468682399,US
+3468682400,3468682415,HK
+3468682416,3468682495,SG
+3468682496,3468682559,HK
+3468682560,3468682575,US
+3468682576,3468682591,HK
+3468682592,3468682623,SG
+3468682624,3468682735,HK
+3468682736,3468682751,US
+3468682752,3468682911,HK
+3468682912,3468682927,US
+3468682928,3468683007,HK
+3468683008,3468683023,US
+3468683024,3468683103,HK
+3468683104,3468685311,US
+3468685312,3468685343,NL
+3468685344,3468685663,IE
+3468685664,3468686015,NL
+3468686016,3468687839,US
+3468687840,3468687855,NL
+3468687856,3468687919,US
+3468687920,3468687935,NL
+3468687936,3468688255,US
+3468688256,3468688271,IE
+3468688272,3468688303,NL
+3468688304,3468688335,IE
+3468688336,3468688367,NL
+3468688368,3468688399,IE
+3468688400,3468688431,NL
+3468688432,3468688463,IE
+3468688464,3468688495,NL
+3468688496,3468688527,IE
+3468688528,3468688559,NL
+3468688560,3468688591,IE
+3468688592,3468688623,NL
+3468688624,3468688655,IE
+3468688656,3468688687,NL
+3468688688,3468688719,IE
+3468688720,3468688751,NL
+3468688752,3468688783,IE
+3468688784,3468688815,NL
+3468688816,3468688847,IE
+3468688848,3468688879,NL
+3468688880,3468688911,IE
+3468688912,3468688943,NL
+3468688944,3468688959,IE
+3468688960,3469055743,US
3469055744,3469055999,CA
3469056000,3469070335,US
3469070336,3469070591,CA
@@ -101379,19 +104836,50 @@
3475885952,3475885983,CA
3475885984,3475897471,US
3475897472,3475897503,FR
-3475897504,3475910847,US
-3475910848,3475910879,SG
-3475910880,3475912703,US
-3475912704,3475912959,SG
-3475912960,3475915327,US
-3475915328,3475915359,JP
-3475915360,3475916543,US
-3475916544,3475916799,HK
-3475916800,3475918287,US
-3475918288,3475918303,HK
-3475918304,3475931135,US
+3475897504,3475910655,US
+3475910656,3475911167,SG
+3475911168,3475911423,US
+3475911424,3475911519,SG
+3475911520,3475911551,HK
+3475911552,3475914751,SG
+3475914752,3475914879,US
+3475914880,3475914895,JP
+3475914896,3475915455,US
+3475915456,3475915487,JP
+3475915488,3475915647,US
+3475915648,3475915679,JP
+3475915680,3475915743,HK
+3475915744,3475915775,JP
+3475915776,3475916031,US
+3475916032,3475916047,HK
+3475916048,3475916287,US
+3475916288,3475916863,HK
+3475916864,3475917055,US
+3475917056,3475917183,JP
+3475917184,3475917231,US
+3475917232,3475917311,JP
+3475917312,3475917791,US
+3475917792,3475917823,JP
+3475917824,3475918207,US
+3475918208,3475918271,JP
+3475918272,3475918287,US
+3475918288,3475918319,HK
+3475918320,3475920639,US
+3475920640,3475920895,HK
+3475920896,3475921167,US
+3475921168,3475921183,HK
+3475921184,3475922735,US
+3475922736,3475922751,HK
+3475922752,3475931135,US
3475931136,3475939327,HK
-3475939328,3475996671,US
+3475939328,3475952767,US
+3475952768,3475952895,JP
+3475952896,3475953663,US
+3475953664,3475953919,IE
+3475953920,3475954175,SG
+3475954176,3475955711,US
+3475955712,3475959807,SG
+3475959808,3475996671,US
3475996672,3476029439,CA
3476029440,3476111359,US
3476111360,3476111871,CA
@@ -101401,9 +104889,7 @@
3476447232,3476455423,CA
3476455424,3476881407,US
3476881408,3476946943,CA
-3476946944,3477854719,US
-3477854720,3477854975,CA
-3477854976,3478114303,US
+3476946944,3478114303,US
3478114304,3478118399,PE
3478118400,3478192127,US
3478192128,3478257663,CA
@@ -101562,15 +105048,19 @@
3481665536,3481731071,CA
3481731072,3481812991,US
3481812992,3481829375,CA
-3481829376,3481934591,US
-3481934592,3481934847,CH
-3481934848,3481958271,US
+3481829376,3481843455,US
+3481843456,3481843711,GB
+3481843712,3481951977,US
+3481951978,3481951978,DE
+3481951979,3481958271,US
3481958272,3481958399,NL
3481958400,3481959020,US
3481959021,3481959022,GB
3481959023,3481964575,US
3481964576,3481964579,IE
-3481964580,3481993791,US
+3481964580,3481966591,US
+3481966592,3481966847,CH
+3481966848,3481993791,US
3481993792,3481993799,CA
3481993800,3481994239,US
3481994240,3481994751,CA
@@ -101710,9 +105200,7 @@
3484327424,3484327935,CA
3484327936,3484438527,US
3484438528,3484438783,ZM
-3484438784,3484439039,US
-3484439040,3484439295,GB
-3484439296,3484439551,US
+3484438784,3484439551,US
3484439552,3484439807,ZM
3484439808,3484450815,US
3484450816,3484451839,CA
@@ -101795,13 +105283,15 @@
3485229056,3485270015,US
3485278208,3485317119,US
3485317120,3485318143,IN
-3485318144,3485327359,US
+3485318144,3485319167,US
+3485319168,3485323263,SE
+3485323264,3485327359,US
3485327360,3485335551,CA
3485335552,3485442047,US
3485446144,3485462527,US
-3485462528,3485465343,VC
-3485465344,3485465599,LC
-3485465600,3485466623,VC
+3485462528,3485465855,VC
+3485465856,3485466111,LC
+3485466112,3485466623,VC
3485466624,3485597695,US
3485597696,3485695999,CA
3485696000,3485959423,US
@@ -102016,8 +105506,7 @@
3487039488,3487105023,CA
3487105024,3487172095,US
3487172096,3487172351,MX
-3487172352,3487188991,US
-3487188992,3487189247,GB
+3487172352,3487189247,US
3487189248,3487189503,DK
3487189504,3487197183,US
3487197184,3487197439,DK
@@ -102027,8 +105516,8 @@
3487236096,3487301631,CA
3487301632,3487706367,US
3487706368,3487706623,RU
-3487706624,3487731199,US
-3487731200,3487731455,CN
+3487706624,3487730943,US
+3487730944,3487731455,CN
3487731456,3487766527,US
3487766528,3487768575,CA
3487768576,3487842303,US
@@ -102093,6 +105582,7 @@
3489399040,3489464319,US
3489464320,3489529855,CA
3489529856,3489562623,US
+3489562880,3489563135,US
3489566720,3489575935,US
3489575936,3489576959,CN
3489576960,3489577215,US
@@ -102155,19 +105645,21 @@
3492807160,3492812759,US
3492812760,3492812763,JP
3492812764,3492845823,US
-3492845824,3492846079,CH
+3492845824,3492846079,FR
3492846080,3492864767,US
3492864768,3492865023,CA
-3492865024,3492867327,US
+3492865024,3492865279,US
+3492865280,3492865535,GB
+3492865536,3492867327,US
3492867328,3492867583,GB
3492867584,3492877954,US
3492877955,3492877955,CA
3492877956,3492893951,US
3492893952,3492893969,GB
3492893970,3492893971,US
-3492893972,3492893983,GB
-3492893984,3492894015,US
-3492894016,3492894207,GB
+3492893972,3492893985,GB
+3492893986,3492893986,US
+3492893987,3492894207,GB
3492894208,3492897023,US
3492897024,3492897279,GB
3492897280,3492912127,US
@@ -102184,19 +105676,19 @@
3492957696,3492958207,VI
3492958208,3492960255,US
3492960256,3492960511,ES
-3492960512,3492968191,US
-3492968192,3492968447,GB
+3492960512,3492968319,US
+3492968320,3492968447,GB
3492968448,3492969471,US
3492969472,3492969727,VI
-3492969728,3492998911,US
+3492969728,3492994815,US
+3492994816,3492995071,GB
+3492995072,3492998911,US
3492998912,3492999136,GB
3492999137,3492999137,US
3492999138,3492999167,GB
-3492999168,3493009151,US
-3493009152,3493009205,MX
-3493009206,3493009206,US
-3493009207,3493009407,MX
-3493009408,3493039359,US
+3492999168,3493008127,US
+3493008128,3493008383,GB
+3493008384,3493039359,US
3493039360,3493039615,AR
3493039616,3493073151,US
3493073152,3493073407,BO
@@ -102432,16 +105924,16 @@
3495193600,3495215103,US
3495215104,3495217151,VI
3495217152,3495219199,VC
-3495219200,3495225855,US
-3495225856,3495226111,GB
-3495226112,3495251967,US
+3495219200,3495251967,US
3495251968,3495254015,CA
3495254016,3495260159,US
3495260160,3495261183,CA
3495261184,3495271423,US
3495272192,3495285759,US
3495285760,3495288831,CA
-3495288832,3495332863,US
+3495288832,3495331839,US
+3495331840,3495332095,CA
+3495332096,3495332863,US
3495332864,3495333887,CA
3495333888,3495349247,US
3495349248,3495350271,CA
@@ -102457,7 +105949,9 @@
3495375872,3495376895,CA
3495376896,3495399423,US
3495399424,3495400447,KN
-3495400448,3495406335,US
+3495400448,3495405055,US
+3495405056,3495405567,HK
+3495405568,3495406335,US
3495406336,3495406591,LB
3495406592,3495412735,US
3495412736,3495413759,CA
@@ -102496,8 +105990,8 @@
3495619584,3495620607,US
3495620608,3495622655,CA
3495622656,3495651327,US
-3495653376,3495654143,US
-3495654144,3495654399,CA
+3495653376,3495653887,US
+3495653888,3495654399,CA
3495654400,3495673855,US
3495673856,3495674879,MF
3495674880,3495675162,VG
@@ -102534,11 +106028,11 @@
3495864320,3495864831,DM
3495864832,3495865343,MF
3495865344,3495866367,US
-3495866368,3495867050,VC
+3495866368,3495866623,VC
+3495866624,3495866879,LC
+3495866880,3495867050,VC
3495867051,3495867051,LC
-3495867052,3495867135,VC
-3495867136,3495867391,LC
-3495867392,3495868415,VC
+3495867052,3495868415,VC
3495868416,3495871487,US
3495871488,3495872511,CA
3495872512,3495881471,US
@@ -102593,9 +106087,7 @@
3497161944,3497162495,US
3497162496,3497162751,GB
3497162752,3497163007,NL
-3497163008,3497163167,US
-3497163168,3497163175,GB
-3497163176,3497164799,US
+3497163008,3497164799,US
3497164800,3497181183,CA
3497181184,3497410559,US
3497410560,3497431039,CA
@@ -102782,8 +106274,8 @@
3507012640,3507025407,US
3507025408,3507025663,IQ
3507025664,3507055103,US
-3507055104,3507055359,CN
-3507055360,3507060735,US
+3507055104,3507055615,CN
+3507055616,3507060735,US
3507060736,3507060991,CN
3507060992,3507290111,US
3507290112,3507355647,AR
@@ -103067,7 +106559,9 @@
3509565184,3509566463,CA
3509566464,3509567231,US
3509567232,3509569023,CA
-3509569024,3509572351,US
+3509569024,3509570047,US
+3509570048,3509570303,CA
+3509570304,3509572351,US
3509572352,3509573375,CA
3509573376,3509573439,US
3509573440,3509573455,CA
@@ -103280,8 +106774,8 @@
3512461056,3512463103,PR
3512463104,3512463359,US
3512463360,3512464639,PR
-3512464640,3512465151,US
-3512465152,3512465407,PR
+3512464640,3512464895,US
+3512464896,3512465407,PR
3512465408,3512465663,US
3512465664,3512465919,PR
3512465920,3512466175,US
@@ -103353,7 +106847,9 @@
3513368576,3513376767,CA
3513376768,3513475071,US
3513475072,3513483263,CA
-3513499648,3513501183,US
+3513499648,3513500415,US
+3513500416,3513500671,AU
+3513500672,3513501183,US
3513501184,3513501439,PH
3513501440,3513778175,US
3513778176,3513794559,CA
@@ -103399,7 +106895,9 @@
3515358976,3515359231,MX
3515359232,3515596799,US
3515596800,3515613183,CA
-3515613184,3515711487,US
+3515613184,3515688686,US
+3515688687,3515688687,PT
+3515688688,3515711487,US
3515711488,3515731967,CA
3515731968,3515736063,US
3515736064,3515744255,DE
@@ -103416,7 +106914,9 @@
3516139008,3516139263,GB
3516139264,3516170239,US
3516170240,3516203007,CA
-3516203008,3516334079,US
+3516203008,3516305407,US
+3516305408,3516309503,PK
+3516309504,3516334079,US
3516334080,3516342271,CA
3516342272,3516357631,US
3516357632,3516357887,MY
@@ -103482,7 +106982,9 @@
3517391872,3517392127,CA
3517392128,3517392383,US
3517392384,3517393407,CA
-3517393408,3517394431,US
+3517393408,3517393919,US
+3517393920,3517394175,CA
+3517394176,3517394431,US
3517394432,3517394943,CA
3517394944,3517395199,US
3517395200,3517395455,CA
@@ -103646,7 +107148,9 @@
3518472192,3518762495,US
3518762496,3518762751,GB
3518762752,3518765311,US
-3518765312,3518765567,CA
+3518765312,3518765343,CA
+3518765344,3518765351,US
+3518765352,3518765567,CA
3518765568,3518912511,US
3518912512,3518912767,IN
3518912768,3518918143,US
@@ -103742,11 +107246,8 @@
3521249280,3521314815,CA
3521314816,3521347583,US
3521347584,3521363967,CA
-3521363968,3521366783,US
-3521366784,3521367039,CY
-3521367040,3521802239,US
-3521804544,3521804799,US
-3521806336,3521837055,US
+3521363968,3521380351,IT
+3521380352,3521837055,US
3521837056,3521837311,SG
3521837312,3521904639,US
3521904640,3521921023,JM
@@ -103790,9 +107291,7 @@
3522174976,3522179071,BM
3522179072,3522195455,US
3522195456,3522199551,CA
-3522199552,3522816767,US
-3522816768,3522817023,CA
-3522817024,3522854911,US
+3522199552,3522854911,US
3522854912,3522871295,CA
3522871296,3522893823,US
3522893824,3522894847,CA
@@ -103811,7 +107310,8 @@
3523297280,3523317759,PH
3523317760,3523330047,JP
3523330048,3523338239,AU
-3523338240,3523340287,MY
+3523338240,3523339775,MY
+3523339776,3523340287,HK
3523340288,3523341311,AU
3523341312,3523342335,JP
3523342336,3523346431,BD
@@ -103860,13 +107360,67 @@
3523686400,3523688447,AU
3523688448,3523690495,CN
3523690496,3523698687,IN
-3523698688,3523700735,JP
+3523698688,3523698863,HK
+3523698864,3523698879,JP
+3523698880,3523698943,HK
+3523698944,3523698975,JP
+3523698976,3523699007,HK
+3523699008,3523699071,JP
+3523699072,3523699199,HK
+3523699200,3523699711,US
+3523699712,3523700223,JP
+3523700224,3523700287,US
+3523700288,3523700351,JP
+3523700352,3523700415,US
+3523700416,3523700671,JP
+3523700672,3523700679,HK
+3523700680,3523700735,JP
3523700736,3523701759,HK
-3523701760,3523707903,JP
+3523701760,3523702783,JP
+3523702784,3523702799,SG
+3523702800,3523702807,SN
+3523702808,3523702847,SG
+3523702848,3523702871,JP
+3523702872,3523702911,SG
+3523702912,3523703039,JP
+3523703040,3523703103,SG
+3523703104,3523704703,JP
+3523704704,3523704719,SG
+3523704720,3523704751,JP
+3523704752,3523704783,SG
+3523704784,3523704791,JP
+3523704792,3523704831,SG
+3523704832,3523704839,HK
+3523704840,3523706879,JP
+3523706880,3523707039,AU
+3523707040,3523707071,JP
+3523707072,3523707103,AU
+3523707104,3523707119,JP
+3523707120,3523707135,AU
+3523707136,3523707903,GB
3523707904,3523708159,AU
-3523708160,3523723263,JP
+3523708160,3523708287,JP
+3523708288,3523708319,AU
+3523708320,3523708351,JP
+3523708352,3523708415,AU
+3523708416,3523708927,JP
+3523708928,3523708975,AU
+3523708976,3523708991,JP
+3523708992,3523709183,AU
+3523709184,3523713023,JP
+3523713024,3523713135,AU
+3523713136,3523714047,JP
+3523714048,3523714719,AU
+3523714720,3523714799,JP
+3523714800,3523714943,AU
+3523714944,3523715007,GB
+3523715008,3523715031,JP
+3523715032,3523715071,AU
+3523715072,3523723263,JP
3523723264,3523725311,US
-3523725312,3523739647,JP
+3523725312,3523737599,JP
+3523737600,3523738111,US
+3523738112,3523739647,JP
3523739648,3524001791,AU
3524001792,3524132863,CN
3524132864,3524145151,PH
@@ -103875,9 +107429,20 @@
3524157440,3524161535,AU
3524161536,3524247551,CN
3524247552,3524263935,AU
-3524263936,3524274175,PH
+3524263936,3524266495,PH
+3524266496,3524266751,SG
+3524266752,3524274175,PH
3524274176,3524274431,SG
3524274432,3524280319,PH
+3524280320,3524281343,JP
+3524281344,3524282367,AU
+3524282368,3524288511,IN
+3524288512,3524289535,HK
+3524289536,3524290559,IN
+3524290560,3524291583,CN
+3524291584,3524294655,IN
+3524294656,3524295679,SG
+3524295680,3524296703,PH
3524296704,3524313087,CN
3524313088,3524329471,KR
3524329472,3524362239,TW
@@ -103895,8 +107460,95 @@
3524745984,3524747263,MP
3524747264,3524755455,PH
3524755456,3524763647,AU
-3524763648,3524788223,PH
-3524788224,3524853759,SG
+3524763648,3524781791,PH
+3524781792,3524781823,SG
+3524781824,3524788223,PH
+3524788224,3524790271,SG
+3524790272,3524794367,JP
+3524794368,3524800511,SG
+3524800512,3524800767,JP
+3524800768,3524801023,SG
+3524801024,3524801535,JP
+3524801536,3524801791,SG
+3524801792,3524802047,JP
+3524802048,3524802303,SG
+3524802304,3524802559,JP
+3524802560,3524804863,SG
+3524804864,3524809215,JP
+3524809216,3524809727,SG
+3524809728,3524810239,JP
+3524810240,3524810495,SG
+3524810496,3524812799,JP
+3524812800,3524821503,SG
+3524821504,3524822271,JP
+3524822272,3524822527,SG
+3524822528,3524822783,JP
+3524822784,3524823807,SG
+3524823808,3524824031,JP
+3524824032,3524824319,SG
+3524824320,3524824575,JP
+3524824576,3524824831,SG
+3524824832,3524825343,JP
+3524825344,3524825855,SG
+3524825856,3524826367,JP
+3524826368,3524826879,SG
+3524826880,3524827455,JP
+3524827456,3524827471,SG
+3524827472,3524828159,JP
+3524828160,3524828415,SG
+3524828416,3524829183,JP
+3524829184,3524829439,SG
+3524829440,3524829695,JP
+3524829696,3524830207,SG
+3524830208,3524830463,JP
+3524830464,3524830719,SG
+3524830720,3524830975,JP
+3524830976,3524831487,SG
+3524831488,3524831743,JP
+3524831744,3524832511,SG
+3524832512,3524832767,JP
+3524832768,3524833023,SG
+3524833024,3524835583,JP
+3524835584,3524835839,SG
+3524835840,3524836095,JP
+3524836096,3524836351,SG
+3524836352,3524836607,JP
+3524836608,3524837119,SG
+3524837120,3524837375,JP
+3524837376,3524837631,SG
+3524837632,3524838655,JP
+3524838656,3524839167,SG
+3524839168,3524839935,JP
+3524839936,3524840447,SG
+3524840448,3524840703,JP
+3524840704,3524840959,SG
+3524840960,3524841471,JP
+3524841472,3524842751,SG
+3524842752,3524843007,JP
+3524843008,3524843263,SG
+3524843264,3524843519,JP
+3524843520,3524843775,SG
+3524843776,3524844031,JP
+3524844032,3524844543,SG
+3524844544,3524845567,JP
+3524845568,3524845823,SG
+3524845824,3524846079,JP
+3524846080,3524846335,SG
+3524846336,3524846591,JP
+3524846592,3524847359,SG
+3524847360,3524847615,JP
+3524847616,3524847871,SG
+3524847872,3524848127,JP
+3524848128,3524848383,SG
+3524848384,3524848639,JP
+3524848640,3524849407,SG
+3524849408,3524849663,JP
+3524849664,3524849919,SG
+3524849920,3524850175,JP
+3524850176,3524850431,SG
+3524850432,3524850687,JP
+3524850688,3524851455,SG
+3524851456,3524853759,JP
3524853760,3526361087,CN
3526361088,3526393855,NZ
3526393856,3526395903,JP
@@ -103923,7 +107575,9 @@
3526926336,3526934527,JP
3526934528,3526942719,CN
3526942720,3526950911,AU
-3526950912,3527004159,JP
+3526950912,3527002111,JP
+3527002112,3527003647,IN
+3527003648,3527004159,JP
3527004160,3527008255,ID
3527008256,3527016447,KR
3527016448,3527933951,TW
@@ -103964,9 +107618,7 @@
3531603968,3532290815,JP
3532290816,3532291071,GB
3532291072,3534749695,JP
-3534749696,3534756351,HK
-3534756352,3534756383,CN
-3534756384,3534757887,HK
+3534749696,3534757887,HK
3534757888,3534758143,AU
3534758144,3534758147,JP
3534758148,3534758911,AU
@@ -103980,9 +107632,7 @@
3534760960,3534761983,AU
3534761984,3534787327,HK
3534787328,3534787583,TH
-3534787584,3534852095,HK
-3534852096,3534852351,AU
-3534852352,3534863443,HK
+3534787584,3534863443,HK
3534863444,3534863444,CN
3534863445,3534880767,HK
3534880768,3535273983,KR
@@ -104085,8 +107735,10 @@
3557007360,3557015551,IT
3557015552,3557023743,DE
3557023744,3557027327,GB
-3557027328,3557027455,NL
-3557027456,3557028415,GB
+3557027328,3557027583,BE
+3557027584,3557027839,GB
+3557027840,3557028095,BE
+3557028096,3557028415,GB
3557028416,3557028479,BE
3557028480,3557031935,GB
3557031936,3557040127,IT
@@ -104132,9 +107784,7 @@
3557360128,3557360135,GB
3557360136,3557360263,JE
3557360264,3557360271,GB
-3557360272,3557364555,JE
-3557364556,3557364556,GG
-3557364557,3557365791,JE
+3557360272,3557365791,JE
3557365792,3557365799,GB
3557365800,3557367807,JE
3557367808,3557375999,DE
@@ -104186,11 +107836,16 @@
3557834752,3557842943,IR
3557842944,3557851135,FI
3557851136,3557859327,HU
-3557859328,3557861983,SE
-3557861984,3557862015,FI
-3557862016,3557863295,SE
+3557859328,3557861919,SE
+3557861920,3557862081,FI
+3557862082,3557862082,SE
+3557862083,3557862143,FI
+3557862144,3557863295,SE
3557863296,3557863327,FI
-3557863328,3557864311,SE
+3557863328,3557863887,SE
+3557863888,3557863903,NO
+3557863904,3557863919,FI
+3557863920,3557864311,SE
3557864312,3557864319,FI
3557864320,3557867519,SE
3557867520,3557875711,RU
@@ -104200,9 +107855,9 @@
3557900288,3557916671,AT
3557916672,3557924863,NO
3557924864,3557925887,AX
-3557925888,3557927679,FI
-3557927680,3557927935,AX
-3557927936,3557929983,FI
+3557925888,3557926143,FI
+3557926144,3557926399,AX
+3557926400,3557929983,FI
3557929984,3557933055,AX
3557933056,3557941247,IT
3557941248,3557957631,DE
@@ -104216,8 +107871,7 @@
3558010880,3558012927,FR
3558012928,3558014207,GB
3558014208,3558014463,NL
-3558014464,3558014464,US
-3558014465,3558014719,IL
+3558014464,3558014719,US
3558014720,3558014975,NL
3558014976,3558023167,RU
3558023168,3558031359,DE
@@ -104247,7 +107901,11 @@
3558203392,3558211583,ES
3558211584,3558219775,GB
3558219776,3558227967,ES
-3558227968,3558232063,RU
+3558227968,3558230015,RU
+3558230016,3558231039,PL
+3558231040,3558231551,RU
+3558231552,3558231807,SK
+3558231808,3558232063,FR
3558232064,3558232575,LB
3558232576,3558235647,RU
3558235648,3558235903,LB
@@ -104260,14 +107918,16 @@
3558277120,3558285951,GB
3558285952,3558286079,DE
3558286080,3558286591,GB
-3558286592,3558286655,FR
-3558286656,3558289119,GB
+3558286592,3558286847,FR
+3558286848,3558289119,GB
3558289120,3558289151,FR
3558289152,3558289431,GB
3558289432,3558289439,NL
3558289440,3558289975,GB
3558289976,3558289983,CZ
-3558289984,3558291071,GB
+3558289984,3558290831,GB
+3558290832,3558290847,ES
+3558290848,3558291071,GB
3558291072,3558291135,DE
3558291136,3558292255,GB
3558292256,3558292271,SE
@@ -104369,7 +108029,9 @@
3559089936,3559089951,BE
3559089952,3559090239,GB
3559090240,3559090303,BE
-3559090304,3559092243,GB
+3559090304,3559091711,GB
+3559091712,3559091967,BE
+3559091968,3559092243,GB
3559092244,3559092244,BE
3559092245,3559093311,GB
3559093312,3559093319,BE
@@ -104398,7 +108060,11 @@
3559200256,3559200511,FI
3559200512,3559200639,SE
3559200640,3559200671,FI
-3559200672,3559202815,SE
+3559200672,3559201607,SE
+3559201608,3559201615,FI
+3559201616,3559201871,SE
+3559201872,3559201879,FI
+3559201880,3559202815,SE
3559202816,3559211007,DE
3559211008,3559219199,SK
3559219200,3559227391,SE
@@ -104508,7 +108174,9 @@
3559989248,3559997439,PL
3559997440,3560005631,KE
3560005632,3560013823,RU
-3560013824,3560022751,GB
+3560013824,3560015871,GB
+3560015872,3560016127,ES
+3560016128,3560022751,GB
3560022752,3560022767,ES
3560022768,3560023631,GB
3560023632,3560023639,ES
@@ -104737,7 +108405,9 @@
3561267200,3561275391,UA
3561275392,3561291775,BE
3561291776,3561299967,RS
-3561299968,3561308159,GB
+3561299968,3561302271,GB
+3561302272,3561302527,NL
+3561302528,3561308159,GB
3561308160,3561316351,PL
3561316352,3561324543,RU
3561324544,3561325567,IT
@@ -104761,7 +108431,11 @@
3561472000,3561480191,DE
3561480192,3561488383,GB
3561488384,3561496575,OM
-3561496576,3561502719,GB
+3561496576,3561496831,GB
+3561496832,3561497087,NL
+3561497088,3561498623,GB
+3561498624,3561498879,NL
+3561498880,3561502719,GB
3561502720,3561503743,NL
3561503744,3561504767,GB
3561504768,3561512959,DE
@@ -104790,7 +108464,9 @@
3561611520,3561611775,FR
3561611776,3561612543,GB
3561612544,3561612799,FR
-3561612800,3561615871,GB
+3561612800,3561613567,GB
+3561613568,3561613823,FR
+3561613824,3561615871,GB
3561615872,3561616127,FR
3561616128,3561616639,GB
3561616640,3561616895,FR
@@ -104824,9 +108500,9 @@
3561897984,3561906175,GB
3561906176,3561914367,DE
3561914368,3561922559,ES
-3561922560,3561924863,GB
-3561924864,3561925119,NL
-3561925120,3561925343,GB
+3561922560,3561925023,GB
+3561925024,3561925039,NL
+3561925040,3561925343,GB
3561925344,3561925375,NL
3561925376,3561929967,GB
3561929968,3561929983,NL
@@ -105187,13 +108863,13 @@
3564734744,3564734751,DE
3564734752,3564736535,GB
3564736536,3564736543,DE
-3564736544,3564738815,GB
-3564738816,3564739071,DE
-3564739072,3564739345,GB
+3564736544,3564739345,GB
3564739346,3564739346,DE
3564739347,3564739367,GB
3564739368,3564739375,DE
-3564739376,3564740095,GB
+3564739376,3564739583,GB
+3564739584,3564739839,DE
+3564739840,3564740095,GB
3564740096,3564740351,DE
3564740352,3564740607,GB
3564740608,3564748799,FR
@@ -105234,9 +108910,7 @@
3564889634,3564889634,NL
3564889635,3564891119,GB
3564891120,3564891135,NL
-3564891136,3564892671,GB
-3564892672,3564892927,NL
-3564892928,3564895231,GB
+3564891136,3564895231,GB
3564895232,3564895743,NL
3564895744,3564896255,GB
3564896256,3564904447,RU
@@ -105347,7 +109021,11 @@
3565763884,3565763891,GB
3565764096,3565764183,GB
3565764192,3565764207,GB
-3565764256,3565766655,GB
+3565764256,3565764367,GB
+3565764376,3565764439,GB
+3565764448,3565764455,GB
+3565764464,3565764551,GB
+3565764576,3565766655,GB
3565766912,3565767167,GB
3565767176,3565767255,GB
3565767272,3565767287,GB
@@ -105470,15 +109148,21 @@
3567388352,3567388383,DE
3567388384,3567388543,GB
3567388544,3567388607,DE
-3567388608,3567388927,GB
+3567388608,3567388647,GB
+3567388648,3567388655,DE
+3567388656,3567388927,GB
3567388928,3567389183,DE
-3567389184,3567389439,GB
-3567389440,3567390975,DE
+3567389184,3567389695,GB
+3567389696,3567390975,DE
3567390976,3567391231,GB
3567391232,3567391487,DE
-3567391488,3567394815,GB
+3567391488,3567393801,GB
+3567393802,3567393802,SI
+3567393803,3567394815,GB
3567394816,3567395071,IE
-3567395072,3567403007,GB
+3567395072,3567400703,GB
+3567400704,3567400959,DE
+3567400960,3567403007,GB
3567403008,3567419391,IT
3567419392,3567427583,SA
3567427584,3567435775,SE
@@ -105575,16 +109259,16 @@
3568795648,3568803839,GB
3568803840,3568812031,IT
3568812032,3568828415,ES
-3568828416,3568904191,DE
-3568904192,3568904447,GB
-3568904448,3568959487,DE
+3568828416,3568959487,DE
3568959488,3569025023,AT
3569025024,3569057791,NL
3569057792,3569074687,GB
3569074688,3569074943,IE
3569074944,3569075455,GB
3569075456,3569075711,IE
-3569075712,3569090559,GB
+3569075712,3569076223,GB
+3569076224,3569076479,FR
+3569076480,3569090559,GB
3569090560,3569123327,RU
3569123328,3569156095,GB
3569156096,3569188863,NL
@@ -105638,7 +109322,9 @@
3571321056,3571321071,DE
3571321072,3571321823,GB
3571321824,3571321855,DE
-3571321856,3571384319,GB
+3571321856,3571351551,GB
+3571351552,3571351807,DE
+3571351808,3571384319,GB
3571384320,3571425695,DE
3571425696,3571425727,ES
3571425728,3571474431,DE
@@ -105734,8 +109420,8 @@
3574186816,3574187007,GB
3574187008,3574188031,ES
3574188032,3574190591,GB
-3574190592,3574190847,ES
-3574190848,3574191615,GB
+3574190592,3574191103,ES
+3574191104,3574191615,GB
3574191616,3574192127,ES
3574192128,3574195199,GB
3574195200,3574196223,ES
@@ -105753,15 +109439,9 @@
3574531632,3574531639,GB
3574531640,3574594559,SE
3574594560,3574595583,GB
-3574595584,3574596607,FR
-3574596608,3574596863,MF
-3574596864,3574598143,FR
-3574598144,3574598399,MQ
-3574598400,3574598655,FR
-3574598656,3574598911,MQ
-3574598912,3574599423,FR
-3574599424,3574599679,MQ
-3574599680,3574601215,FR
+3574595584,3574598911,FR
+3574598912,3574599167,MQ
+3574599168,3574601215,FR
3574601216,3574601471,GP
3574601472,3574603775,FR
3574603776,3574611967,BG
@@ -105947,7 +109627,9 @@
3576089776,3576089791,GB
3576091408,3576091423,GB
3576091456,3576091479,GB
-3576091904,3576092159,GB
+3576091968,3576091983,GB
+3576092000,3576092031,GB
+3576092128,3576092159,GB
3576092864,3576092895,GB
3576093064,3576093071,GB
3576093184,3576093247,GB
@@ -105955,9 +109637,13 @@
3576099072,3576100863,GB
3576101376,3576110939,GB
3576110940,3576110943,NL
-3576110944,3576116127,GB
+3576110944,3576113919,GB
+3576113920,3576114175,FR
+3576114176,3576116127,GB
3576116128,3576116135,DE
-3576116136,3576134653,GB
+3576116136,3576126779,GB
+3576126780,3576126783,ES
+3576126784,3576134653,GB
3576134654,3576134654,CH
3576134655,3576135679,GB
3576135680,3576168447,DE
@@ -105981,11 +109667,15 @@
3576254696,3576254703,FR
3576254704,3576254775,GB
3576254776,3576254783,FR
-3576254784,3576260607,GB
+3576254784,3576258303,GB
+3576258304,3576258559,FR
+3576258560,3576260607,GB
3576260608,3576260623,FR
3576260624,3576260863,GB
3576260864,3576261119,FR
-3576261120,3576263919,GB
+3576261120,3576261887,GB
+3576261888,3576262143,FR
+3576262144,3576263919,GB
3576263920,3576263935,FR
3576263936,3576264255,GB
3576264256,3576264263,FR
@@ -106017,34 +109707,21 @@
3577000192,3577020415,GB
3577020416,3577085951,NL
3577085952,3577151487,DE
-3577151488,3577151743,RE
-3577151744,3577153023,FR
+3577151488,3577153023,FR
3577153024,3577153279,RE
-3577153280,3577154303,FR
-3577154304,3577154815,RE
-3577154816,3577155327,FR
-3577155328,3577155839,RE
-3577155840,3577156095,FR
+3577153280,3577156095,FR
3577156096,3577156607,RE
-3577156608,3577157375,FR
-3577157376,3577157631,RE
-3577157632,3577157887,FR
-3577157888,3577158143,RE
-3577158144,3577158399,FR
-3577158400,3577158655,RE
-3577158656,3577159423,FR
+3577156608,3577159423,FR
3577159424,3577159679,RE
-3577159680,3577159935,FR
-3577159936,3577160447,RE
-3577160448,3577161983,FR
-3577161984,3577162751,RE
-3577162752,3577163007,FR
+3577159680,3577161983,FR
+3577161984,3577162239,RE
+3577162240,3577163007,FR
3577163008,3577163263,RE
3577163264,3577164073,FR
3577164074,3577164074,RE
-3577164075,3577166079,FR
-3577166080,3577166335,RE
-3577166336,3577167871,FR
+3577164075,3577166335,FR
+3577166336,3577166591,RE
+3577166592,3577167871,FR
3577167872,3577184255,ET
3577184256,3577217023,CH
3577217024,3577282559,FR
@@ -106059,15 +109736,17 @@
3577628672,3577629695,CH
3577635840,3577636863,DE
3577636864,3577637887,GB
+3577639744,3577639775,FR
3577641200,3577641215,FR
3577641472,3577641983,FR
-3577642496,3577642751,FR
3577650048,3577650063,NL
3577663488,3577664511,SE
3577669632,3577670655,BE
3577675776,3577741311,PT
3577741312,3578003455,SE
-3578003456,3578265599,DE
+3578003456,3578192895,DE
+3578192896,3578193151,NL
+3578193152,3578265599,DE
3578265600,3578331135,GB
3578331136,3578339327,PL
3578339328,3578347519,ES
@@ -106092,11 +109771,11 @@
3579019264,3579052031,DK
3579052032,3579117567,NL
3579117568,3579183103,RU
-3579183104,3579193607,GB
+3579183104,3579193599,GB
+3579193600,3579193607,BE
3579193608,3579193615,NL
-3579193616,3579193759,GB
-3579193760,3579193775,NL
-3579193776,3579197311,GB
+3579193616,3579193855,BE
+3579193856,3579197311,GB
3579197312,3579197439,US
3579197440,3579244831,GB
3579244832,3579244879,AT
@@ -106117,13 +109796,13 @@
3579740160,3579772927,IE
3579772928,3579838463,DE
3579838464,3580100607,ES
-3580100608,3580103679,SE
-3580103680,3580106751,LV
-3580106752,3580112895,SE
+3580100608,3580103167,SE
+3580103168,3580107775,LV
+3580107776,3580112895,SE
3580112896,3580116991,LV
3580116992,3580131327,SE
-3580131328,3580133375,LV
-3580133376,3580135423,SE
+3580131328,3580134399,LV
+3580134400,3580135423,SE
3580135424,3580135935,EE
3580135936,3580136447,SE
3580136448,3580138495,HR
@@ -106133,32 +109812,38 @@
3580162048,3580164095,EE
3580164096,3580165887,SE
3580165888,3580166143,NL
-3580166144,3580199935,SE
+3580166144,3580198911,SE
+3580198912,3580199551,LV
+3580199552,3580199935,SE
3580199936,3580200447,EE
3580200448,3580200959,SE
3580200960,3580203007,LT
-3580203008,3580204543,SE
+3580203008,3580203647,SE
+3580203648,3580203775,AT
+3580203776,3580204543,SE
3580204544,3580205055,NL
3580205056,3580206079,SE
3580206080,3580207103,HR
3580207104,3580208127,LV
3580208128,3580209151,EE
3580209152,3580213247,HR
-3580213248,3580214271,LV
-3580214272,3580215295,SE
+3580213248,3580215295,LV
3580215296,3580217343,EE
-3580217344,3580221439,SE
-3580221440,3580221951,LV
+3580217344,3580220415,SE
+3580220416,3580221951,LV
3580221952,3580223487,SE
3580223488,3580231679,DE
-3580231680,3580232447,SE
+3580231680,3580231935,SE
+3580231936,3580232191,LV
+3580232192,3580232447,SE
3580232448,3580233215,LT
3580233216,3580233727,SE
3580233728,3580235263,LT
3580235264,3580235775,SE
3580235776,3580236799,LT
3580236800,3580237567,LV
-3580237568,3580239871,SE
+3580237568,3580237823,SE
+3580237824,3580239871,LV
3580239872,3580241919,EE
3580241920,3580243967,SE
3580243968,3580244991,EE
@@ -106167,7 +109852,8 @@
3580248064,3580254207,EE
3580254208,3580255231,LV
3580255232,3580258303,DE
-3580258304,3580258815,SE
+3580258304,3580258559,LV
+3580258560,3580258815,SE
3580258816,3580260351,DE
3580260352,3580265471,AT
3580265472,3580266495,SE
@@ -106195,12 +109881,7 @@
3580641280,3580643327,FR
3580643328,3580645375,UA
3580645376,3580647423,PL
-3580647424,3580647679,GB
-3580647680,3580647935,DE
-3580647936,3580648027,GB
-3580648028,3580648028,DE
-3580648029,3580648447,GB
-3580648448,3580649471,DE
+3580647424,3580649471,DE
3580649472,3580651519,SE
3580651520,3580653567,NL
3580653568,3580655615,PL
@@ -106243,9 +109924,7 @@
3581255680,3581258751,FR
3581280256,3581411327,BE
3581411328,3581673471,GB
-3581673472,3581922047,NL
-3581922048,3581922303,GB
-3581922304,3581935615,NL
+3581673472,3581935615,NL
3581935616,3581943807,RU
3581943808,3581951999,FR
3581952000,3581960191,TR
@@ -106302,7 +109981,11 @@
3582255104,3582263295,KW
3582263296,3582271487,ME
3582271488,3582279679,NL
-3582279680,3582287871,GB
+3582279680,3582285311,GB
+3582285312,3582285823,CY
+3582285824,3582286335,GB
+3582286336,3582286591,CY
+3582286592,3582287871,GB
3582287872,3582296063,DE
3582296064,3582304255,GB
3582304256,3582312447,UA
@@ -106322,7 +110005,9 @@
3582443520,3582451711,DE
3582451712,3582459903,LU
3582459904,3582468095,NL
-3582468096,3582476287,SE
+3582468096,3582476239,SE
+3582476240,3582476247,DK
+3582476248,3582476287,SE
3582476288,3582484479,DE
3582484480,3582492671,CI
3582492672,3582509055,IT
@@ -106442,15 +110127,14 @@
3583361024,3583369215,IT
3583369216,3583377407,ES
3583377408,3583385599,AT
-3583385600,3583390207,DK
-3583390208,3583390463,LV
-3583390464,3583393791,DK
+3583385600,3583393791,DK
3583393792,3583401983,RU
3583401984,3583410175,KE
3583410176,3583418367,SE
3583418368,3583426559,TN
3583426560,3583428607,CV
-3583428608,3583430655,CI
+3583428608,3583428863,ZA
+3583428864,3583430655,CI
3583430656,3583434751,ZA
3583434752,3583442943,AT
3583442944,3583451135,RU
@@ -106750,7 +110434,8 @@
3585634688,3585634815,NL
3585634816,3585635071,IT
3585635072,3585635199,NL
-3585635200,3585635455,IL
+3585635200,3585635327,IL
+3585635328,3585635455,AE
3585635456,3585635711,NL
3585635712,3585635967,IL
3585635968,3585636095,NL
@@ -106774,7 +110459,12 @@
3585736704,3585744895,HR
3585744896,3585753087,FR
3585753088,3585761279,PL
-3585761280,3585769471,UA
+3585761280,3585765375,UA
+3585765376,3585765631,RU
+3585765632,3585767679,UA
+3585767680,3585768191,RU
+3585768192,3585769215,UA
+3585769216,3585769471,RU
3585769472,3585777663,TR
3585777664,3585785855,JO
3585785856,3585794047,UA
@@ -106800,9 +110490,7 @@
3585900544,3585906687,NO
3585906688,3585907711,CZ
3585907712,3585908735,NO
-3585908736,3585910015,GP
-3585910016,3585910271,MQ
-3585910272,3585916671,GP
+3585908736,3585916671,GP
3585916672,3585916927,MQ
3585916928,3585925119,IT
3585925120,3585933311,CH
@@ -106839,8 +110527,8 @@
3586162688,3586179071,FI
3586179072,3586195455,ES
3586195456,3586203647,RU
-3586203648,3586204159,KE
-3586204160,3586204671,ZM
+3586203648,3586204415,KE
+3586204416,3586204671,ZM
3586204672,3586205695,KE
3586205696,3586207743,BW
3586207744,3586208767,ZA
@@ -106876,18 +110564,34 @@
3586547712,3586547967,NL
3586547968,3586555903,DE
3586555904,3586572287,IT
-3586572288,3586588671,RS
+3586572288,3586585215,RS
+3586585216,3586585223,XK
+3586585224,3586586255,RS
+3586586256,3586586263,XK
+3586586264,3586588671,RS
3586588672,3586596863,IT
3586596864,3586605055,GB
3586605056,3586621439,SE
3586621440,3586621695,GB
-3586621696,3586625535,IE
-3586625536,3586629631,GB
-3586629632,3586634047,IE
+3586621696,3586625535,NL
+3586625536,3586628095,GB
+3586628096,3586628127,NL
+3586628128,3586628159,GB
+3586628160,3586628191,IE
+3586628192,3586629631,GB
+3586629632,3586633727,IE
+3586633728,3586633983,NL
+3586633984,3586634047,IE
3586634048,3586634079,NL
-3586634080,3586634239,IE
-3586634240,3586634495,NL
-3586634496,3586637823,IE
+3586634080,3586634087,IE
+3586634088,3586634175,NL
+3586634176,3586634239,IE
+3586634240,3586634751,NL
+3586634752,3586634783,IE
+3586634784,3586634879,NL
+3586634880,3586634943,IE
+3586634944,3586635775,NL
+3586635776,3586637823,IE
3586637824,3586654207,PL
3586654208,3586662399,GE
3586662400,3586670591,UA
@@ -106966,7 +110670,9 @@
3587193600,3587194879,DE
3587194880,3587211263,GB
3587211264,3587219455,AT
-3587219456,3587227647,RU
+3587219456,3587222271,RU
+3587222272,3587222527,RO
+3587222528,3587227647,RU
3587227648,3587230719,GB
3587230720,3587230975,NL
3587230976,3587231231,GB
@@ -106985,9 +110691,11 @@
3587239488,3587239495,NL
3587239496,3587239583,GB
3587239584,3587239599,NL
-3587239600,3587239679,GB
-3587239680,3587240191,NL
-3587240192,3587242495,GB
+3587239600,3587239711,GB
+3587239712,3587239727,NL
+3587239728,3587239791,GB
+3587239792,3587239799,NL
+3587239800,3587242495,GB
3587242496,3587242751,NL
3587242752,3587244031,GB
3587244032,3587260415,IT
@@ -107004,8 +110712,8 @@
3587391488,3587407871,KZ
3587407872,3587412223,BE
3587412224,3587413759,NL
-3587413760,3587414015,BE
-3587414016,3587415039,NL
+3587413760,3587414271,BE
+3587414272,3587415039,NL
3587415040,3587422719,BE
3587422720,3587423743,NL
3587423744,3587424255,BE
@@ -107141,7 +110849,9 @@
3589034496,3589037055,GB
3589037056,3589037311,NL
3589037312,3589046271,GB
-3589046272,3589079039,NO
+3589046272,3589055661,NO
+3589055662,3589055662,GB
+3589055663,3589079039,NO
3589079040,3589128191,DK
3589128192,3589144575,GB
3589144576,3589152767,UA
@@ -107180,10 +110890,8 @@
3589537792,3589545983,FR
3589545984,3589554175,DE
3589554176,3589570559,PS
-3589570560,3589578751,GB
-3589578752,3589579007,NL
-3589579008,3589580543,GB
-3589580544,3589581055,NL
+3589570560,3589580799,GB
+3589580800,3589581055,NL
3589581056,3589582975,GB
3589582976,3589583103,NL
3589583104,3589586943,GB
@@ -107210,6 +110918,7 @@
3589810432,3589810687,PL
3589810688,3589816319,RU
3589825792,3589826047,DE
+3589826718,3589826718,AT
3589827584,3589827647,DE
3589827712,3589827839,DE
3589828736,3589828991,NL
@@ -107320,7 +111029,9 @@
3624288256,3624290303,IN
3624290304,3624292351,CA
3624292352,3624292607,MF
-3624292608,3624295423,US
+3624292608,3624295176,US
+3624295177,3624295177,SG
+3624295178,3624295423,US
3624295424,3624295679,CA
3624295680,3624295935,US
3624295936,3624296191,LY
@@ -107341,17 +111052,11 @@
3624357888,3624358143,KN
3624358144,3624359679,US
3624359680,3624360703,CW
-3624360704,3624374447,US
-3624374448,3624374455,ES
-3624374456,3624374559,US
+3624360704,3624374559,US
3624374560,3624374599,ES
3624374600,3624375871,US
3624375872,3624375879,NL
-3624375880,3624376247,US
-3624376248,3624376263,ES
-3624376264,3624376287,US
-3624376288,3624376295,GB
-3624376296,3624376335,US
+3624375880,3624376335,US
3624376336,3624376343,AU
3624376344,3624376351,US
3624376352,3624376359,PT
@@ -107481,7 +111186,9 @@
3628225780,3628225783,GB
3628225784,3628236799,US
3628236800,3628257279,CA
-3628257280,3628598271,US
+3628257280,3628580863,US
+3628580864,3628581119,CA
+3628581120,3628598271,US
3628598272,3628599295,CO
3628599296,3628603391,CL
3628603392,3628604415,US
@@ -107538,9 +111245,7 @@
3628679168,3628683263,CA
3628687360,3628834815,US
3628834816,3628843007,CA
-3628843008,3628850687,US
-3628850688,3628850943,AU
-3628850944,3629187071,US
+3628843008,3629187071,US
3629187072,3629195263,CA
3629195264,3629199359,US
3629199360,3629201439,CA
@@ -107704,8 +111409,8 @@
3630854144,3630895615,US
3630895616,3630895871,CA
3630895872,3630897407,US
-3630897408,3630897919,CA
-3630897920,3630956543,US
+3630897408,3630897663,CA
+3630897664,3630956543,US
3630956544,3631005695,CA
3631005696,3631039487,US
3631039488,3631039743,CA
@@ -107859,9 +111564,7 @@
3634759936,3634880511,US
3634880512,3634888703,CA
3634888704,3634913279,US
-3634913280,3634915663,CA
-3634915664,3634915679,US
-3634915680,3634921471,CA
+3634913280,3634921471,CA
3634921472,3634925567,US
3634925568,3634929663,CA
3634929664,3635044351,US
@@ -107922,9 +111625,7 @@
3635741696,3635741951,US
3635741952,3635745535,CA
3635745536,3635746047,US
-3635746048,3635750143,CA
-3635750144,3635750399,US
-3635750400,3635751935,CA
+3635746048,3635751935,CA
3635751936,3635752191,US
3635752192,3635752447,CA
3635752448,3635752703,US
@@ -107932,9 +111633,7 @@
3635754240,3635754362,US
3635754363,3635754363,CA
3635754364,3635755007,US
-3635755008,3635755519,CA
-3635755520,3635755775,US
-3635755776,3635760895,CA
+3635755008,3635760895,CA
3635760896,3635761151,US
3635761152,3635762687,CA
3635762688,3635762943,US
@@ -107967,7 +111666,9 @@
3635961856,3635963903,SV
3635963904,3635964415,US
3635964416,3635965951,SV
-3635965952,3635966975,US
+3635965952,3635966323,US
+3635966324,3635966324,ES
+3635966325,3635966975,US
3635966976,3635967999,PY
3635968000,3635970047,SV
3635970048,3636019199,US
@@ -108137,8 +111838,12 @@
3639550240,3639550247,MX
3639550248,3639550311,US
3639550312,3639550319,AU
-3639550320,3639554559,US
-3639554560,3639554748,GB
+3639550320,3639550431,US
+3639550432,3639550463,CA
+3639550464,3639554559,US
+3639554560,3639554665,GB
+3639554666,3639554666,US
+3639554667,3639554748,GB
3639554749,3639554749,US
3639554750,3639554815,GB
3639554816,3639555839,US
@@ -108158,7 +111863,9 @@
3639593984,3639595007,GB
3639595008,3639607295,US
3639607296,3639611391,CA
-3639611392,3639656447,US
+3639611392,3639639807,US
+3639639808,3639640063,CA
+3639640064,3639656447,US
3639656448,3639660543,CA
3639660544,3639664639,US
3639664640,3639668735,CA
@@ -108246,17 +111953,7 @@
3639680896,3639680959,CL
3639680960,3639680991,CO
3639680992,3639681023,CL
-3639681024,3639684863,US
-3639684864,3639684865,SA
-3639684866,3639684866,US
-3639684867,3639684897,SA
-3639684898,3639684898,US
-3639684899,3639684961,SA
-3639684962,3639684962,US
-3639684963,3639685071,SA
-3639685072,3639685087,US
-3639685088,3639685119,SA
-3639685120,3639692031,US
+3639681024,3639692031,US
3639692032,3639692287,GB
3639692288,3639704573,US
3639704574,3639704574,GB
@@ -108293,7 +111990,10 @@
3640318208,3640318975,NC
3640318976,3640319231,US
3640319232,3640319487,NG
-3640319488,3640346879,US
+3640319488,3640340479,US
+3640341760,3640342015,US
+3640344064,3640344319,US
+3640344576,3640346879,US
3640346880,3640347134,MX
3640347135,3640360959,US
3640360960,3640369151,CA
@@ -108351,9 +112051,7 @@
3641356536,3641356543,CM
3641356544,3641357983,GB
3641357984,3641358015,SL
-3641358016,3641359615,GB
-3641359616,3641359871,US
-3641359872,3641360383,GB
+3641358016,3641360383,GB
3641360384,3641368575,RO
3641368576,3641372671,GB
3641372672,3641376767,BG
@@ -108591,13 +112289,22 @@
3642355712,3642359807,SE
3642359808,3642367999,RU
3642368000,3642376191,CH
-3642376192,3642380287,RS
+3642376192,3642376447,XK
+3642376448,3642377983,RS
+3642377984,3642378047,XK
+3642378048,3642379007,RS
+3642379008,3642379263,XK
+3642379264,3642379775,RS
+3642379776,3642380063,XK
+3642380064,3642380287,RS
3642380288,3642384383,IT
3642384384,3642392575,NL
3642392576,3642394623,AT
3642394624,3642396671,FR
3642396672,3642404863,MD
-3642408960,3642413055,FR
+3642408960,3642411007,FR
+3642411008,3642411519,AE
+3642411520,3642413055,FR
3642413056,3642415103,RS
3642415104,3642417151,GB
3642417152,3642419199,DE
@@ -108878,7 +112585,7 @@
3645616128,3645620223,AT
3645620224,3645624319,BA
3645624320,3645628415,CZ
-3645628416,3645636607,PT
+3645628416,3645636607,ES
3645636608,3645640703,AM
3645640704,3645644799,NL
3645644800,3645648895,RU
@@ -108978,9 +112685,7 @@
3647209472,3647602687,NL
3647602688,3647733759,RU
3647733760,3647864831,FR
-3647864832,3647880703,DE
-3647880704,3647880959,PL
-3647880960,3647916799,DE
+3647864832,3647916799,DE
3647916800,3647917055,SE
3647917056,3647963135,DE
3647963136,3647963391,BE
@@ -109037,11 +112742,9 @@
3647980544,3647981567,GB
3647981568,3647982591,BE
3647982592,3647983615,IT
-3647983616,3647984031,DE
-3647984032,3647984047,NL
-3647984048,3647984127,DE
-3647984128,3647984383,NL
-3647984384,3647986431,DE
+3647983616,3647983871,DE
+3647983872,3647984127,NL
+3647984128,3647986431,DE
3647986432,3647986687,ES
3647986688,3647987647,DE
3647987648,3647987655,ES
@@ -109220,8 +112923,7 @@
3649855488,3649857791,GB
3649857792,3649858047,IN
3649858048,3649859071,GB
-3649859072,3649859327,US
-3649859328,3649859583,GB
+3649859072,3649859583,US
3649859584,3649863679,SE
3649863680,3649896447,FI
3649896448,3649961983,IT
@@ -109379,23 +113081,31 @@
3650879488,3650912255,RO
3650912256,3650916393,GB
3650916394,3650916394,FR
-3650916395,3650920703,GB
-3650920704,3650920895,LB
-3650920896,3650920927,GR
-3650920928,3650920959,LB
+3650916395,3650918143,GB
+3650918144,3650918399,CH
+3650918400,3650920703,GB
+3650920704,3650920959,GR
3650920960,3650920991,GB
3650920992,3650921007,IL
-3650921008,3650922799,GB
+3650921008,3650921087,GB
+3650921088,3650921215,GR
+3650921216,3650922799,GB
3650922800,3650922815,FR
-3650922816,3650926335,GB
-3650926336,3650926591,DE
+3650922816,3650926591,GB
3650926592,3650929663,ES
-3650929664,3650929847,GB
+3650929664,3650929831,GB
+3650929832,3650929839,DK
+3650929840,3650929847,BE
3650929848,3650929855,FR
3650929856,3650929863,DE
-3650929864,3650930431,GB
-3650930432,3650930687,DE
-3650930688,3650932943,GB
+3650929864,3650929871,JE
+3650929872,3650929879,NL
+3650929880,3650929887,IT
+3650929888,3650929895,LU
+3650929896,3650929903,ES
+3650929904,3650929911,SE
+3650929912,3650929919,CH
+3650929920,3650932943,GB
3650932944,3650932975,IT
3650932976,3650939607,GB
3650939608,3650939615,TR
@@ -109443,7 +113153,9 @@
3651289600,3651338239,CH
3651338240,3651353087,GB
3651353088,3651353343,FR
-3651353344,3651403775,GB
+3651353344,3651360767,GB
+3651360768,3651361023,DE
+3651361024,3651403775,GB
3651403776,3651534847,AE
3651534848,3651600383,NL
3651600384,3651665919,FR
@@ -109562,9 +113274,9 @@
3652157440,3652165631,RU
3652165632,3652170751,FR
3652170752,3652171007,MQ
-3652171008,3652172031,FR
-3652172032,3652172287,RE
-3652172288,3652173823,FR
+3652171008,3652172287,FR
+3652172288,3652172543,RE
+3652172544,3652173823,FR
3652173824,3652177919,AT
3652177920,3652182015,CY
3652182016,3652190207,DE
@@ -109586,7 +113298,11 @@
3653386240,3653390335,DE
3653390336,3653394431,FR
3653394432,3653402623,NL
-3653402624,3653407103,GB
+3653402624,3653406557,GB
+3653406558,3653406558,GN
+3653406559,3653406617,GB
+3653406618,3653406618,GN
+3653406619,3653407103,GB
3653407104,3653407111,UG
3653407112,3653408071,GB
3653408072,3653408079,NG
@@ -109610,7 +113326,11 @@
3653480448,3653484543,DK
3653484544,3653488639,TR
3653488640,3653492735,RU
-3653492736,3653500927,NL
+3653492736,3653497087,NL
+3653497088,3653497343,US
+3653497344,3653499647,NL
+3653499648,3653499903,GB
+3653499904,3653500927,NL
3653500928,3653505023,GB
3653505024,3653509119,KZ
3653509120,3653513215,NL
@@ -109716,7 +113436,7 @@
3663992320,3663992575,MY
3663992576,3663993599,NZ
3663993600,3663996159,ID
-3663996160,3663996415,AU
+3663996160,3663996415,BD
3663996416,3663996671,TH
3663996672,3663997183,AU
3663997184,3663997439,ID
@@ -109817,7 +113537,9 @@
3680403456,3680436223,JP
3680436224,3680501759,MY
3680501760,3682598911,JP
-3682598912,3684696063,CN
+3682598912,3684575268,CN
+3684575269,3684575269,HK
+3684575270,3684696063,CN
3684696064,3688366079,JP
3688366080,3689938943,CN
3689938944,3690070015,KR
@@ -109901,7 +113623,7 @@
3707207680,3707208703,BD
3707208704,3707209727,NZ
3707209728,3707211775,CN
-3707211776,3707215871,ID
+3707211776,3707215871,NZ
3707215872,3707217919,BD
3707217920,3707219967,ID
3707219968,3707222015,AU
@@ -109934,20 +113656,30 @@
3715743744,3715760127,JP
3715760128,3715891199,CN
3715891200,3716153343,HK
-3716153344,3716170751,SG
-3716170752,3716172287,JP
+3716153344,3716171519,SG
+3716171520,3716171775,JP
+3716171776,3716172031,SG
+3716172032,3716172287,JP
3716172288,3716173055,SG
-3716173056,3716174335,JP
-3716174336,3716175359,SG
-3716175360,3716176895,JP
+3716173056,3716173311,JP
+3716173312,3716173567,SG
+3716173568,3716173823,JP
+3716173824,3716174079,SG
+3716174080,3716174335,JP
+3716174336,3716175615,SG
+3716175616,3716176895,JP
3716176896,3716178175,SG
-3716178176,3716178943,TH
+3716178176,3716178943,JP
3716178944,3716179967,SG
-3716179968,3716180991,JP
-3716180992,3716181759,TH
+3716179968,3716181759,JP
3716181760,3716182783,SG
-3716182784,3716184575,TH
-3716184576,3716185087,JP
+3716182784,3716183295,JP
+3716183296,3716183551,SG
+3716183552,3716184063,JP
+3716184064,3716184319,TH
+3716184320,3716184575,JP
+3716184576,3716184831,SG
+3716184832,3716185087,JP
3716185088,3716186111,SG
3716186112,3716415487,CN
3716415488,3716431871,VN
@@ -109983,7 +113715,9 @@
3732832256,3732865023,CN
3732865024,3732930559,PH
3732930560,3733979135,CN
-3733979136,3734503423,JP
+3733979136,3734462975,JP
+3734462976,3734463231,NC
+3734463232,3734503423,JP
3734503424,3734765567,NZ
3734765568,3734896639,TW
3734896640,3735027711,JP
@@ -110075,7 +113809,7 @@
3749840896,3749841919,CN
3749841920,3749842943,AU
3749842944,3749843967,PH
-3749843968,3749846015,AU
+3749844992,3749846015,AU
3749846016,3749847039,IN
3749847040,3749855231,HK
3749855232,3749969919,KR
diff --git a/src/config/geoip6 b/src/config/geoip6
index 94e13e255c..543ea105ab 100644
--- a/src/config/geoip6
+++ b/src/config/geoip6
@@ -1,21 +1,16 @@
-# Last updated based on January 5 2016 Maxmind GeoLite2 Country
+# Last updated based on March 3 2016 Maxmind GeoLite2 Country
# wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz
# gunzip GeoLite2-Country.mmdb.gz
# python mmdb-convert.py GeoLite2-Country.mmdb
+76:96:42:219::,76:96:42:219:ffff:ffff:ffff:ffff,US
600:8801:9400:580::,600:8801:9400:580::,US
2001:200::,2001:200::7fff:ffff:ffff:ffff:ffff,JP
2001:200:120::,2001:200:120:7fff:ffff:ffff:ffff:ffff,JP
-2001:200:148::,2001:200:148:7fff:ffff:ffff:ffff:ffff,JP
2001:200:167::,2001:200:167:7fff:ffff:ffff:ffff:ffff,JP
-2001:200:180::,2001:200:180:ffff:ffff:ffff:ffff:ffff,JP
+2001:200:180:8000::,2001:200:180:ffff:ffff:ffff:ffff:ffff,JP
2001:200:1c0::,2001:200:1c0:7fff:ffff:ffff:ffff:ffff,JP
-2001:200:601::,2001:200:601:7fff:ffff:ffff:ffff:ffff,AU
-2001:200:905::,2001:200:905:7fff:ffff:ffff:ffff:ffff,JP
-2001:208:3::,2001:208:3:7fff:ffff:ffff:ffff:ffff,SG
2001:208:5::,2001:208:5:7fff:ffff:ffff:ffff:ffff,SG
-2001:218::,2001:218:e000:ffff:ffff:ffff:ffff:ffff,JP
-2001:218:e001::,2001:218:e001:7fff:ffff:ffff:ffff:ffff,US
-2001:218:e001:8000::,2001:218:ffff:ffff:ffff:ffff:ffff:ffff,JP
+2001:218::,2001:218:ffff:ffff:ffff:ffff:ffff:ffff,JP
2001:220::,2001:220:ffff:ffff:ffff:ffff:ffff:ffff,KR
2001:230::,2001:230:ffff:ffff:ffff:ffff:ffff:ffff,KR
2001:238::,2001:238:ffff:ffff:ffff:ffff:ffff:ffff,TW
@@ -80,69 +75,29 @@
2001:418::,2001:418:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:420::,2001:420:283f:ffff:ffff:ffff:ffff:ffff,US
2001:420:2840::,2001:420:2840:7fff:ffff:ffff:ffff:ffff,CA
-2001:420:2840:8000::,2001:420:284c:12ff:ffff:ffff:ffff:ffff,US
-2001:420:284c:1300::,2001:420:284c:13ff:ffff:ffff:ffff:ffff,CA
-2001:420:284c:1400::,2001:420:4049:ffff:ffff:ffff:ffff:ffff,US
-2001:420:404a::,2001:420:404a:7fff:ffff:ffff:ffff:ffff,GB
-2001:420:404a:8000::,2001:420:4081:ffff:ffff:ffff:ffff:ffff,US
-2001:420:4082::,2001:420:4082:7fff:ffff:ffff:ffff:ffff,GB
-2001:420:4082:8000::,2001:420:4083:ffff:ffff:ffff:ffff:ffff,US
+2001:420:2840:8000::,2001:420:4083:ffff:ffff:ffff:ffff:ffff,US
2001:420:4084::,2001:420:4084:7fff:ffff:ffff:ffff:ffff,GB
-2001:420:4084:8000::,2001:420:4085:ffff:ffff:ffff:ffff:ffff,US
-2001:420:4086::,2001:420:4086:7fff:ffff:ffff:ffff:ffff,GB
-2001:420:4086:8000::,2001:420:44d9:ffff:ffff:ffff:ffff:ffff,US
-2001:420:44da::,2001:420:44da:7fff:ffff:ffff:ffff:ffff,ES
-2001:420:44da:8000::,2001:420:44ef:ffff:ffff:ffff:ffff:ffff,US
-2001:420:44f0::,2001:420:44f0:7fff:ffff:ffff:ffff:ffff,FR
-2001:420:44f0:8000::,2001:420:4c41:ffff:ffff:ffff:ffff:ffff,US
-2001:420:4c42::,2001:420:4c42:7fff:ffff:ffff:ffff:ffff,SA
-2001:420:4c42:8000::,2001:420:5040:ffff:ffff:ffff:ffff:ffff,US
+2001:420:4084:8000::,2001:420:5040:ffff:ffff:ffff:ffff:ffff,US
2001:420:5041::,2001:420:5041:7fff:ffff:ffff:ffff:ffff,AU
2001:420:5041:8000::,2001:420:5042:ffff:ffff:ffff:ffff:ffff,US
2001:420:5043::,2001:420:5043:7fff:ffff:ffff:ffff:ffff,AU
-2001:420:5043:8000::,2001:420:5044:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5045::,2001:420:5045:7fff:ffff:ffff:ffff:ffff,AU
-2001:420:5045:8000::,2001:420:5046:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5047::,2001:420:5047:7fff:ffff:ffff:ffff:ffff,AU
-2001:420:5047:8000::,2001:420:5049:ffff:ffff:ffff:ffff:ffff,US
+2001:420:5043:8000::,2001:420:5049:ffff:ffff:ffff:ffff:ffff,US
2001:420:504a::,2001:420:504a:7fff:ffff:ffff:ffff:ffff,AU
-2001:420:504a:8000::,2001:420:5441:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5442::,2001:420:5442:7fff:ffff:ffff:ffff:ffff,IN
-2001:420:5442:8000::,2001:420:5442:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5443::,2001:420:5443:7fff:ffff:ffff:ffff:ffff,IN
-2001:420:5443:8000::,2001:420:5504:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5505::,2001:420:5505:7fff:ffff:ffff:ffff:ffff,IN
-2001:420:5505:8000::,2001:420:5882:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5883::,2001:420:5883:7fff:ffff:ffff:ffff:ffff,CN
-2001:420:5883:8000::,2001:420:5894:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5895::,2001:420:5895:7fff:ffff:ffff:ffff:ffff,CN
-2001:420:5895:8000::,2001:420:5a3f:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5a40::,2001:420:5a40:7fff:ffff:ffff:ffff:ffff,CN
-2001:420:5a40:8000::,2001:420:5a44:11ff:ffff:ffff:ffff:ffff,US
-2001:420:5a44:1200::,2001:420:5a44:12ff:ffff:ffff:ffff:ffff,CN
-2001:420:5a44:1300::,2001:420:5c3f:ffff:ffff:ffff:ffff:ffff,US
+2001:420:504a:8000::,2001:420:5899:ffff:ffff:ffff:ffff:ffff,US
+2001:420:589a::,2001:420:589a:7fff:ffff:ffff:ffff:ffff,CN
+2001:420:589a:8000::,2001:420:5c3f:ffff:ffff:ffff:ffff:ffff,US
2001:420:5c40::,2001:420:5c40:7fff:ffff:ffff:ffff:ffff,SG
-2001:420:5c40:8000::,2001:420:5c40:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5c41::,2001:420:5c41:7fff:ffff:ffff:ffff:ffff,SG
-2001:420:5c41:8000::,2001:420:5c41:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5c42::,2001:420:5c42:7fff:ffff:ffff:ffff:ffff,SG
-2001:420:5c42:8000::,2001:420:5c43:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5c44::,2001:420:5c44:7fff:ffff:ffff:ffff:ffff,SG
-2001:420:5c44:8000::,2001:420:5c46:ffff:ffff:ffff:ffff:ffff,US
-2001:420:5c47::,2001:420:5c47:7fff:ffff:ffff:ffff:ffff,SG
-2001:420:5c47:8000::,2001:420:5e40:11ff:ffff:ffff:ffff:ffff,US
-2001:420:5e40:1200::,2001:420:5e40:12ff:ffff:ffff:ffff:ffff,JP
-2001:420:5e40:1300::,2001:420:c0c0:ffff:ffff:ffff:ffff:ffff,US
-2001:420:c0c1::,2001:420:c0c1:7fff:ffff:ffff:ffff:ffff,CH
-2001:420:c0c1:8000::,2001:420:c0cf:ffff:ffff:ffff:ffff:ffff,US
+2001:420:5c40:8000::,2001:420:5e3f:ffff:ffff:ffff:ffff:ffff,US
+2001:420:5e40::,2001:420:5e40:7fff:ffff:ffff:ffff:ffff,JP
+2001:420:5e40:8000::,2001:420:c0cf:ffff:ffff:ffff:ffff:ffff,US
2001:420:c0d0::,2001:420:c0d0:7fff:ffff:ffff:ffff:ffff,AU
-2001:420:c0d0:8000::,2001:420:c0d3:ffff:ffff:ffff:ffff:ffff,US
-2001:420:c0d4::,2001:420:c0d4:7fff:ffff:ffff:ffff:ffff,SG
-2001:420:c0d4:8000::,2001:420:c0d7:ffff:ffff:ffff:ffff:ffff,US
+2001:420:c0d0:8000::,2001:420:c0d7:ffff:ffff:ffff:ffff:ffff,US
2001:420:c0d8::,2001:420:c0d8:7fff:ffff:ffff:ffff:ffff,CN
2001:420:c0d8:8000::,2001:420:c0db:ffff:ffff:ffff:ffff:ffff,US
2001:420:c0dc::,2001:420:c0dc:7fff:ffff:ffff:ffff:ffff,JP
-2001:420:c0dc:8000::,2001:420:ffff:ffff:ffff:ffff:ffff:ffff,US
+2001:420:c0dc:8000::,2001:420:c0df:ffff:ffff:ffff:ffff:ffff,US
+2001:420:c0e0::,2001:420:c0e0:7fff:ffff:ffff:ffff:ffff,IN
+2001:420:c0e0:8000::,2001:420:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:428::,2001:428:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:430::,2001:430:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:438::,2001:438:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -159,66 +114,59 @@
2001:468::,2001:468:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:470::,2001:470:0:284::,US
2001:470:0:284::1,2001:470:0:284::1,AT
-2001:470:0:284::2,2001:470:17:ffff:ffff:ffff:ffff:ffff,US
-2001:470:18::,2001:470:18:7ff:ffff:ffff:ffff:ffff,CN
-2001:470:18:800::,2001:470:18:ffff:ffff:ffff:ffff:ffff,US
-2001:470:19::,2001:470:19:7fff:ffff:ffff:ffff:ffff,HK
-2001:470:19:8000::,2001:470:1c:ff:ffff:ffff:ffff:ffff,US
-2001:470:1c:100::,2001:470:1c:7ff:ffff:ffff:ffff:ffff,CA
-2001:470:1c:800::,2001:470:1c:8ff:ffff:ffff:ffff:ffff,US
-2001:470:1c:900::,2001:470:1c:bff:ffff:ffff:ffff:ffff,CA
-2001:470:1c:c00::,2001:470:1c:ffff:ffff:ffff:ffff:ffff,US
+2001:470:0:284::2,2001:470:5:317:ffff:ffff:ffff:ffff,US
+2001:470:5:318::,2001:470:5:318:ffff:ffff:ffff:ffff,AR
+2001:470:5:319::,2001:470:18:ffff:ffff:ffff:ffff:ffff,US
+2001:470:19::,2001:470:19:7fff:ffff:ffff:ffff:ffff,CN
+2001:470:19:8000::,2001:470:1b:ffff:ffff:ffff:ffff:ffff,US
+2001:470:1c::,2001:470:1c:7fff:ffff:ffff:ffff:ffff,CA
+2001:470:1c:8000::,2001:470:1c:ffff:ffff:ffff:ffff:ffff,US
2001:470:1d::,2001:470:1d:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:1d:8000::,2001:470:23:ffff:ffff:ffff:ffff:ffff,US
-2001:470:24::,2001:470:24:7fff:ffff:ffff:ffff:ffff,TW
-2001:470:24:8000::,2001:470:26:b6c:ffff:ffff:ffff:ffff,US
+2001:470:1d:8000::,2001:470:26:65b:ffff:ffff:ffff:ffff,US
+2001:470:26:65c::,2001:470:26:65c:ffff:ffff:ffff:ffff,CH
+2001:470:26:65d::,2001:470:26:7ff:ffff:ffff:ffff:ffff,US
+2001:470:26:800::,2001:470:26:b6c:ffff:ffff:ffff:ffff,CH
2001:470:26:b6d::,2001:470:26:b6d:ffff:ffff:ffff:ffff,AT
-2001:470:26:b6e::,2001:470:27:1a5:ffff:ffff:ffff:ffff,US
-2001:470:27:1a6::,2001:470:27:1a6:ffff:ffff:ffff:ffff,RU
-2001:470:27:1a7::,2001:470:28:35:ffff:ffff:ffff:ffff,US
+2001:470:26:b6e::,2001:470:26:fff:ffff:ffff:ffff:ffff,CH
+2001:470:26:1000::,2001:470:26:ffff:ffff:ffff:ffff:ffff,US
+2001:470:27::,2001:470:27:7fff:ffff:ffff:ffff:ffff,RU
+2001:470:27:8000::,2001:470:28:35:ffff:ffff:ffff:ffff,US
2001:470:28:36::,2001:470:28:36:ffff:ffff:ffff:ffff,SE
2001:470:28:37::,2001:470:28:1a5:ffff:ffff:ffff:ffff,US
2001:470:28:1a6::,2001:470:28:1a6:ffff:ffff:ffff:ffff,RU
-2001:470:28:1a7::,2001:470:28:9c1:ffff:ffff:ffff:ffff,US
+2001:470:28:1a7::,2001:470:28:2df:ffff:ffff:ffff:ffff,US
+2001:470:28:2e0::,2001:470:28:2e0:ffff:ffff:ffff:ffff,SE
+2001:470:28:2e1::,2001:470:28:9c1:ffff:ffff:ffff:ffff,US
2001:470:28:9c2::,2001:470:28:9c2:ffff:ffff:ffff:ffff,SE
2001:470:28:9c3::,2001:470:28:a2b:ffff:ffff:ffff:ffff,US
2001:470:28:a2c::,2001:470:28:a2c:ffff:ffff:ffff:ffff,SE
-2001:470:28:a2d::,2001:470:3c:ffff:ffff:ffff:ffff:ffff,US
-2001:470:3d::,2001:470:3d:7fff:ffff:ffff:ffff:ffff,PH
-2001:470:3d:8000::,2001:470:6d:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6e::,2001:470:6e:3ff:ffff:ffff:ffff:ffff,CZ
-2001:470:6e:400::,2001:470:6f:49e:ffff:ffff:ffff:ffff,US
+2001:470:28:a2d::,2001:470:6c:ffff:ffff:ffff:ffff:ffff,US
+2001:470:6d::,2001:470:6d:7fff:ffff:ffff:ffff:ffff,RU
+2001:470:6d:8000::,2001:470:6e:ffff:ffff:ffff:ffff:ffff,US
+2001:470:6f::,2001:470:6f:49e:ffff:ffff:ffff:ffff,CZ
2001:470:6f:49f::,2001:470:6f:49f:ffff:ffff:ffff:ffff,SK
-2001:470:6f:4a0::,2001:470:70:6ff:ffff:ffff:ffff:ffff,US
-2001:470:70:700::,2001:470:70:7ff:ffff:ffff:ffff:ffff,RU
-2001:470:70:800::,2001:470:70:ffff:ffff:ffff:ffff:ffff,US
-2001:470:71::,2001:470:71:5ff:ffff:ffff:ffff:ffff,UA
+2001:470:6f:4a0::,2001:470:6f:7fff:ffff:ffff:ffff:ffff,CZ
+2001:470:6f:8000::,2001:470:71:5ff:ffff:ffff:ffff:ffff,US
2001:470:71:600::,2001:470:71:600:ffff:ffff:ffff:ffff,PL
-2001:470:71:601::,2001:470:71:60b:ffff:ffff:ffff:ffff,UA
+2001:470:71:601::,2001:470:71:60b:ffff:ffff:ffff:ffff,US
2001:470:71:60c::,2001:470:71:60c:ffff:ffff:ffff:ffff,PL
-2001:470:71:60d::,2001:470:71:7fff:ffff:ffff:ffff:ffff,UA
-2001:470:71:8000::,2001:470:d2:ffff:ffff:ffff:ffff:ffff,US
+2001:470:71:60d::,2001:470:d2:ffff:ffff:ffff:ffff:ffff,US
2001:470:d3::,2001:470:d3:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:d3:8000::,2001:470:1857:ffff:ffff:ffff:ffff:ffff,US
-2001:470:1858::,2001:470:1858:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:1858:8000::,2001:470:18c1:7fff:ffff:ffff:ffff:ffff,US
-2001:470:18c1:8000::,2001:470:18c1:ffff:ffff:ffff:ffff:ffff,GB
-2001:470:18c2::,2001:470:1f07:ffff:ffff:ffff:ffff:ffff,US
-2001:470:1f08::,2001:470:1f08:1ff:ffff:ffff:ffff:ffff,GB
-2001:470:1f08:200::,2001:470:1f08:415::1,US
-2001:470:1f08:415::2,2001:470:1f08:415::2,GB
-2001:470:1f08:415::3,2001:470:1f08:bff:ffff:ffff:ffff:ffff,US
-2001:470:1f08:c00::,2001:470:1f08:dff:ffff:ffff:ffff:ffff,GB
-2001:470:1f08:e00::,2001:470:1f08:fff:ffff:ffff:ffff:ffff,US
-2001:470:1f08:1000::,2001:470:1f08:11ff:ffff:ffff:ffff:ffff,GB
-2001:470:1f08:1200::,2001:470:1f08:13ff:ffff:ffff:ffff:ffff,RU
-2001:470:1f08:1400::,2001:470:1f08:17ff:ffff:ffff:ffff:ffff,US
-2001:470:1f08:1800::,2001:470:1f08:1fff:ffff:ffff:ffff:ffff,GB
-2001:470:1f08:2000::,2001:470:1f08:ffff:ffff:ffff:ffff:ffff,US
-2001:470:1f09::,2001:470:1f09:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:1f09:8000::,2001:470:1f0a:7ff:ffff:ffff:ffff:ffff,US
-2001:470:1f0a:800::,2001:470:1f0a:bff:ffff:ffff:ffff:ffff,RU
-2001:470:1f0a:c00::,2001:470:1f0b:30e:ffff:ffff:ffff:ffff,US
+2001:470:d3:8000::,2001:470:1eff:ffff:ffff:ffff:ffff:ffff,US
+2001:470:1f00::,2001:470:1f00:7fff:ffff:ffff:ffff:ffff,AU
+2001:470:1f00:8000::,2001:470:1f04:fff:ffff:ffff:ffff:ffff,US
+2001:470:1f04:1000::,2001:470:1f04:1fff:ffff:ffff:ffff:ffff,JP
+2001:470:1f04:2000::,2001:470:1f07:ffff:ffff:ffff:ffff:ffff,US
+2001:470:1f08::,2001:470:1f08:fff:ffff:ffff:ffff:ffff,GB
+2001:470:1f08:1000::,2001:470:1f08:ffff:ffff:ffff:ffff:ffff,US
+2001:470:1f09::,2001:470:1f09:3ff:ffff:ffff:ffff:ffff,GB
+2001:470:1f09:400::,2001:470:1f09:414:ffff:ffff:ffff:ffff,US
+2001:470:1f09:415::,2001:470:1f09:415:ffff:ffff:ffff:ffff,GB
+2001:470:1f09:416::,2001:470:1f09:7ff:ffff:ffff:ffff:ffff,US
+2001:470:1f09:800::,2001:470:1f09:1fff:ffff:ffff:ffff:ffff,GB
+2001:470:1f09:2000::,2001:470:1f09:ffff:ffff:ffff:ffff:ffff,US
+2001:470:1f0a::,2001:470:1f0a:7fff:ffff:ffff:ffff:ffff,RU
+2001:470:1f0a:8000::,2001:470:1f0b:30e:ffff:ffff:ffff:ffff,US
2001:470:1f0b:30f::,2001:470:1f0b:30f:ffff:ffff:ffff:ffff,DE
2001:470:1f0b:310::,2001:470:1f0b:4b0:ffff:ffff:ffff:ffff,US
2001:470:1f0b:4b1::,2001:470:1f0b:4b1:ffff:ffff:ffff:ffff,UA
@@ -226,14 +174,11 @@
2001:470:1f0b:77a::,2001:470:1f0b:77a:ffff:ffff:ffff:ffff,DE
2001:470:1f0b:77b::,2001:470:1f0b:784:ffff:ffff:ffff:ffff,US
2001:470:1f0b:785::,2001:470:1f0b:785:ffff:ffff:ffff:ffff,PL
-2001:470:1f0b:786::,2001:470:1f12:bff:ffff:ffff:ffff:ffff,US
-2001:470:1f12:c00::,2001:470:1f12:fff:ffff:ffff:ffff:ffff,FR
-2001:470:1f12:1000::,2001:470:1f13:7ff:ffff:ffff:ffff:ffff,US
-2001:470:1f13:800::,2001:470:1f13:bff:ffff:ffff:ffff:ffff,FR
-2001:470:1f13:c00::,2001:470:1f13:fff:ffff:ffff:ffff:ffff,GB
-2001:470:1f13:1000::,2001:470:1f13:11ff:ffff:ffff:ffff:ffff,US
-2001:470:1f13:1200::,2001:470:1f13:12ff:ffff:ffff:ffff:ffff,FR
-2001:470:1f13:1300::,2001:470:1f15:44f:ffff:ffff:ffff:ffff,US
+2001:470:1f0b:786::,2001:470:1f11:ffff:ffff:ffff:ffff:ffff,US
+2001:470:1f12::,2001:470:1f12:7fff:ffff:ffff:ffff:ffff,HU
+2001:470:1f12:8000::,2001:470:1f12:ffff:ffff:ffff:ffff:ffff,US
+2001:470:1f13::,2001:470:1f13:7fff:ffff:ffff:ffff:ffff,FR
+2001:470:1f13:8000::,2001:470:1f15:44f:ffff:ffff:ffff:ffff,US
2001:470:1f15:450::,2001:470:1f15:450:ffff:ffff:ffff:ffff,NL
2001:470:1f15:451::,2001:470:1f15:5ab:ffff:ffff:ffff:ffff,US
2001:470:1f15:5ac::,2001:470:1f15:5ac:ffff:ffff:ffff:ffff,NL
@@ -241,209 +186,57 @@
2001:470:1f15:9c6::,2001:470:1f15:9c6:ffff:ffff:ffff:ffff,AT
2001:470:1f15:9c7::,2001:470:1f15:a5f:ffff:ffff:ffff:ffff,US
2001:470:1f15:a60::,2001:470:1f15:a60:ffff:ffff:ffff:ffff,NL
-2001:470:1f15:a61::,2001:470:1f15:ffff:ffff:ffff:ffff:ffff,US
-2001:470:1f16::,2001:470:1f16:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:1f16:8000::,2001:470:1f16:ffff:ffff:ffff:ffff:ffff,US
-2001:470:1f17::,2001:470:1f17:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:1f17:8000::,2001:470:1f1b:ffff:ffff:ffff:ffff:ffff,US
-2001:470:1f1c::,2001:470:1f1c:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:1f1c:8000::,2001:470:1f1d:195:ffff:ffff:ffff:ffff,US
+2001:470:1f15:a61::,2001:470:1f17:ff:ffff:ffff:ffff:ffff,US
+2001:470:1f17:100::,2001:470:1f17:1ff:ffff:ffff:ffff:ffff,CA
+2001:470:1f17:200::,2001:470:1f1a:ffff:ffff:ffff:ffff:ffff,US
+2001:470:1f1b::,2001:470:1f1b:ff:ffff:ffff:ffff:ffff,HU
+2001:470:1f1b:100::,2001:470:1f1d:195:ffff:ffff:ffff:ffff,US
2001:470:1f1d:196::,2001:470:1f1d:196:ffff:ffff:ffff:ffff,GB
-2001:470:1f1d:197::,2001:470:2050:ffff:ffff:ffff:ffff:ffff,US
-2001:470:2051::,2001:470:2051:7fff:ffff:ffff:ffff:ffff,RO
-2001:470:2051:8000::,2001:470:207f:ffff:ffff:ffff:ffff:ffff,US
+2001:470:1f1d:197::,2001:470:207f:ffff:ffff:ffff:ffff:ffff,US
2001:470:2080::,2001:470:2080:7fff:ffff:ffff:ffff:ffff,UA
2001:470:2080:8000::,2001:470:2092:ffff:ffff:ffff:ffff:ffff,US
2001:470:2093::,2001:470:2093:7fff:ffff:ffff:ffff:ffff,SI
2001:470:2093:8000::,2001:470:3028:ffff:ffff:ffff:ffff:ffff,US
2001:470:3029::,2001:470:3029:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:3029:8000::,2001:470:302d:ffff:ffff:ffff:ffff:ffff,US
-2001:470:302e::,2001:470:302e:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:302e:8000::,2001:470:3049:ffff:ffff:ffff:ffff:ffff,US
-2001:470:304a::,2001:470:304a:7fff:ffff:ffff:ffff:ffff,MX
-2001:470:304a:8000::,2001:470:3051:7fff:ffff:ffff:ffff:ffff,US
-2001:470:3051:8000::,2001:470:3051:ffff:ffff:ffff:ffff:ffff,CA
-2001:470:3052::,2001:470:48ab:ffff:ffff:ffff:ffff:ffff,US
-2001:470:48ac::,2001:470:48ac:7fff:ffff:ffff:ffff:ffff,AU
-2001:470:48ac:8000::,2001:470:48d0:ffff:ffff:ffff:ffff:ffff,US
-2001:470:48d1::,2001:470:48d1:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:48d1:8000::,2001:470:49e5:7fff:ffff:ffff:ffff:ffff,US
+2001:470:3029:8000::,2001:470:49e5:7fff:ffff:ffff:ffff:ffff,US
2001:470:49e5:8000::,2001:470:49e5:ffff:ffff:ffff:ffff:ffff,CN
-2001:470:49e6::,2001:470:507c:ffff:ffff:ffff:ffff:ffff,US
-2001:470:507d::,2001:470:507d:7fff:ffff:ffff:ffff:ffff,UA
-2001:470:507d:8000::,2001:470:52ba:ffff:ffff:ffff:ffff:ffff,US
-2001:470:52bb::,2001:470:52bb:7fff:ffff:ffff:ffff:ffff,UA
-2001:470:52bb:8000::,2001:470:52c5:ffff:ffff:ffff:ffff:ffff,US
-2001:470:52c6::,2001:470:52c6:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:52c6:8000::,2001:470:532d:ffff:ffff:ffff:ffff:ffff,US
-2001:470:532e::,2001:470:532e:7fff:ffff:ffff:ffff:ffff,RU
-2001:470:532e:8000::,2001:470:5803:7fff:ffff:ffff:ffff:ffff,US
-2001:470:5803:8000::,2001:470:5803:ffff:ffff:ffff:ffff:ffff,CZ
-2001:470:5804::,2001:470:5853:ffff:ffff:ffff:ffff:ffff,US
-2001:470:5854::,2001:470:5854:7fff:ffff:ffff:ffff:ffff,CZ
-2001:470:5854:8000::,2001:470:591a:ffff:ffff:ffff:ffff:ffff,US
+2001:470:49e6::,2001:470:587d:ffff:ffff:ffff:ffff:ffff,US
+2001:470:587e::,2001:470:587e:7fff:ffff:ffff:ffff:ffff,CZ
+2001:470:587e:8000::,2001:470:591a:ffff:ffff:ffff:ffff:ffff,US
2001:470:591b::,2001:470:591b:7fff:ffff:ffff:ffff:ffff,CZ
2001:470:591b:8000::,2001:470:591c:ffff:ffff:ffff:ffff:ffff,US
2001:470:591d::,2001:470:591d:7fff:ffff:ffff:ffff:ffff,CZ
-2001:470:591d:8000::,2001:470:5948:ffff:ffff:ffff:ffff:ffff,US
-2001:470:5949::,2001:470:5949:7fff:ffff:ffff:ffff:ffff,CZ
-2001:470:5949:8000::,2001:470:598f:ffff:ffff:ffff:ffff:ffff,US
-2001:470:5990::,2001:470:5990:7fff:ffff:ffff:ffff:ffff,CZ
-2001:470:5990:8000::,2001:470:59c0:ffff:ffff:ffff:ffff:ffff,US
-2001:470:59c1::,2001:470:59c1:7fff:ffff:ffff:ffff:ffff,CZ
-2001:470:59c1:8000::,2001:470:59d7:ffff:ffff:ffff:ffff:ffff,US
+2001:470:591d:8000::,2001:470:59d7:ffff:ffff:ffff:ffff:ffff,US
2001:470:59d8::,2001:470:59d8:7fff:ffff:ffff:ffff:ffff,CZ
2001:470:59d8:8000::,2001:470:5a34:ffff:ffff:ffff:ffff:ffff,US
2001:470:5a35::,2001:470:5a35:ffff:ffff:ffff:ffff:ffff,CZ
2001:470:5a36::,2001:470:5a39:ffff:ffff:ffff:ffff:ffff,US
2001:470:5a3a::,2001:470:5a3a:ffff:ffff:ffff:ffff:ffff,CZ
-2001:470:5a3b::,2001:470:60a2:ffff:ffff:ffff:ffff:ffff,US
-2001:470:60a3::,2001:470:60a3:7fff:ffff:ffff:ffff:ffff,BY
-2001:470:60a3:8000::,2001:470:60f4:7fff:ffff:ffff:ffff:ffff,US
-2001:470:60f4:8000::,2001:470:60f4:ffff:ffff:ffff:ffff:ffff,PL
-2001:470:60f5::,2001:470:613f:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6140::,2001:470:6140:7fff:ffff:ffff:ffff:ffff,PL
-2001:470:6140:8000::,2001:470:618d:ffff:ffff:ffff:ffff:ffff,US
-2001:470:618e::,2001:470:618e:7fff:ffff:ffff:ffff:ffff,PL
-2001:470:618e:8000::,2001:470:619f:ffff:ffff:ffff:ffff:ffff,US
-2001:470:61a0::,2001:470:61a0:7fff:ffff:ffff:ffff:ffff,RU
-2001:470:61a0:8000::,2001:470:6228:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6229::,2001:470:6229:7fff:ffff:ffff:ffff:ffff,PL
-2001:470:6229:8000::,2001:470:6808:7fff:ffff:ffff:ffff:ffff,US
-2001:470:6808:8000::,2001:470:6808:ffff:ffff:ffff:ffff:ffff,GB
-2001:470:6809::,2001:470:688b:ffff:ffff:ffff:ffff:ffff,US
-2001:470:688c::,2001:470:688c:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:688c:8000::,2001:470:68a5:ffff:ffff:ffff:ffff:ffff,US
-2001:470:68a6::,2001:470:68a6:7fff:ffff:ffff:ffff:ffff,ES
-2001:470:68a6:8000::,2001:470:68df:ffff:ffff:ffff:ffff:ffff,US
-2001:470:68e0::,2001:470:68e0:7fff:ffff:ffff:ffff:ffff,IL
-2001:470:68e0:8000::,2001:470:68e9:ffff:ffff:ffff:ffff:ffff,US
-2001:470:68ea::,2001:470:68ea:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:68ea:8000::,2001:470:6914:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6915::,2001:470:6915:7fff:ffff:ffff:ffff:ffff,ES
-2001:470:6915:8000::,2001:470:6924:ffff:ffff:ffff:ffff:ffff,US
+2001:470:5a3b::,2001:470:5a80:ffff:ffff:ffff:ffff:ffff,US
+2001:470:5a81::,2001:470:5a81:ffff:ffff:ffff:ffff:ffff,CZ
+2001:470:5a82::,2001:470:6924:ffff:ffff:ffff:ffff:ffff,US
2001:470:6925::,2001:470:6925:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:6925:8000::,2001:470:6978:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6979::,2001:470:6979:7fff:ffff:ffff:ffff:ffff,ES
-2001:470:6979:8000::,2001:470:6a20:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6a21::,2001:470:6a21:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6a21:8000::,2001:470:6a62:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6a63::,2001:470:6a63:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6a63:8000::,2001:470:6af6:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6af7::,2001:470:6af7:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6af7:8000::,2001:470:6b28:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6b29::,2001:470:6b29:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6b29:8000::,2001:470:6b2e:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6b2f::,2001:470:6b2f:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6b2f:8000::,2001:470:6b38:ffff:ffff:ffff:ffff:ffff,US
+2001:470:6925:8000::,2001:470:6b38:ffff:ffff:ffff:ffff:ffff,US
2001:470:6b39::,2001:470:6b39:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6b39:8000::,2001:470:6b76:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6b77::,2001:470:6b77:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6b77:8000::,2001:470:6bba:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6bbb::,2001:470:6bbb:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6bbb:8000::,2001:470:6bd1:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6bd2::,2001:470:6bd2:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6bd2:8000::,2001:470:6bee:7fff:ffff:ffff:ffff:ffff,US
-2001:470:6bee:8000::,2001:470:6bee:ffff:ffff:ffff:ffff:ffff,IN
-2001:470:6bef::,2001:470:6c0d:ffff:ffff:ffff:ffff:ffff,US
+2001:470:6b39:8000::,2001:470:6c0d:ffff:ffff:ffff:ffff:ffff,US
2001:470:6c0e::,2001:470:6c0e:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6c0e:8000::,2001:470:6c1b:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6c1c::,2001:470:6c1c:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6c1c:8000::,2001:470:6c5a:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6c5b::,2001:470:6c5b:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6c5b:8000::,2001:470:6c7f:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6c80::,2001:470:6c80:7fff:ffff:ffff:ffff:ffff,RU
-2001:470:6c80:8000::,2001:470:6c8e:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6c8f::,2001:470:6c8f:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6c8f:8000::,2001:470:6c96:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6c97::,2001:470:6c97:7fff:ffff:ffff:ffff:ffff,RU
-2001:470:6c97:8000::,2001:470:6cee:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6cef::,2001:470:6cef:7fff:ffff:ffff:ffff:ffff,ES
-2001:470:6cef:8000::,2001:470:6d37:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6d38::,2001:470:6d38:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6d38:8000::,2001:470:6d44:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6d45::,2001:470:6d45:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6d45:8000::,2001:470:6d54:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6d55::,2001:470:6d55:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6d55:8000::,2001:470:6d5b:ffff:ffff:ffff:ffff:ffff,US
-2001:470:6d5c::,2001:470:6d5c:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:6d5c:8000::,2001:470:7000:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7001::,2001:470:7001:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:7001:8000::,2001:470:700d:ffff:ffff:ffff:ffff:ffff,US
-2001:470:700e::,2001:470:700e:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:700e:8000::,2001:470:7069:ffff:ffff:ffff:ffff:ffff,US
-2001:470:706a::,2001:470:706a:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:706a:8000::,2001:470:7073:7fff:ffff:ffff:ffff:ffff,US
-2001:470:7073:8000::,2001:470:7073:ffff:ffff:ffff:ffff:ffff,DE
-2001:470:7074::,2001:470:70a1:7fff:ffff:ffff:ffff:ffff,US
+2001:470:6c0e:8000::,2001:470:70a1:7fff:ffff:ffff:ffff:ffff,US
2001:470:70a1:8000::,2001:470:70a1:ffff:ffff:ffff:ffff:ffff,RU
-2001:470:70a2::,2001:470:70a7:ffff:ffff:ffff:ffff:ffff,US
-2001:470:70a8::,2001:470:70a8:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:70a8:8000::,2001:470:70aa:ffff:ffff:ffff:ffff:ffff,US
+2001:470:70a2::,2001:470:70aa:ffff:ffff:ffff:ffff:ffff,US
2001:470:70ab::,2001:470:70ab:7fff:ffff:ffff:ffff:ffff,DE
2001:470:70ab:8000::,2001:470:710f:ffff:ffff:ffff:ffff:ffff,US
2001:470:7110::,2001:470:7110:7fff:ffff:ffff:ffff:ffff,RU
2001:470:7110:8000::,2001:470:7170:ffff:ffff:ffff:ffff:ffff,US
2001:470:7171::,2001:470:7171:ffff:ffff:ffff:ffff:ffff,DE
-2001:470:7172::,2001:470:7179:ffff:ffff:ffff:ffff:ffff,US
-2001:470:717a::,2001:470:717a:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:717a:8000::,2001:470:7192:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7193::,2001:470:7193:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:7193:8000::,2001:470:71d4:ffff:ffff:ffff:ffff:ffff,US
-2001:470:71d5::,2001:470:71d5:7fff:ffff:ffff:ffff:ffff,UA
-2001:470:71d5:8000::,2001:470:7280:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7281::,2001:470:7281:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:7281:8000::,2001:470:7286:ffff:ffff:ffff:ffff:ffff,US
+2001:470:7172::,2001:470:7286:ffff:ffff:ffff:ffff:ffff,US
2001:470:7287::,2001:470:7287:ffff:ffff:ffff:ffff:ffff,PL
-2001:470:7288::,2001:470:72bd:ffff:ffff:ffff:ffff:ffff,US
-2001:470:72be::,2001:470:72be:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:72be:8000::,2001:470:7309:ffff:ffff:ffff:ffff:ffff,US
+2001:470:7288::,2001:470:7309:ffff:ffff:ffff:ffff:ffff,US
2001:470:730a::,2001:470:730a:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:730a:8000::,2001:470:7368:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7369::,2001:470:7369:7fff:ffff:ffff:ffff:ffff,TR
-2001:470:7369:8000::,2001:470:7383:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7384::,2001:470:7384:7fff:ffff:ffff:ffff:ffff,BG
-2001:470:7384:8000::,2001:470:73d1:ffff:ffff:ffff:ffff:ffff,US
-2001:470:73d2::,2001:470:73d2:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:73d2:8000::,2001:470:742b:7fff:ffff:ffff:ffff:ffff,US
-2001:470:742b:8000::,2001:470:742b:ffff:ffff:ffff:ffff:ffff,RU
-2001:470:742c::,2001:470:7479:ffff:ffff:ffff:ffff:ffff,US
-2001:470:747a::,2001:470:747a:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:747a:8000::,2001:470:74b8:ffff:ffff:ffff:ffff:ffff,US
-2001:470:74b9::,2001:470:74b9:7fff:ffff:ffff:ffff:ffff,RS
-2001:470:74b9:8000::,2001:470:74e0:ffff:ffff:ffff:ffff:ffff,US
+2001:470:730a:8000::,2001:470:74e0:ffff:ffff:ffff:ffff:ffff,US
2001:470:74e1::,2001:470:74e1:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:74e1:8000::,2001:470:7552:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7553::,2001:470:7553:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:7553:8000::,2001:470:7563:7fff:ffff:ffff:ffff:ffff,US
-2001:470:7563:8000::,2001:470:7563:ffff:ffff:ffff:ffff:ffff,UA
-2001:470:7564::,2001:470:759e:ffff:ffff:ffff:ffff:ffff,US
-2001:470:759f::,2001:470:759f:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:759f:8000::,2001:470:75c1:ffff:ffff:ffff:ffff:ffff,US
-2001:470:75c2::,2001:470:75c2:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:75c2:8000::,2001:470:75c2:ffff:ffff:ffff:ffff:ffff,US
-2001:470:75c3::,2001:470:75c3:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:75c3:8000::,2001:470:75f0:ffff:ffff:ffff:ffff:ffff,US
-2001:470:75f1::,2001:470:75f1:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:75f1:8000::,2001:470:7804:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7805::,2001:470:7805:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:7805:8000::,2001:470:7859:ffff:ffff:ffff:ffff:ffff,US
+2001:470:74e1:8000::,2001:470:7859:ffff:ffff:ffff:ffff:ffff,US
2001:470:785a::,2001:470:785a:ffff:ffff:ffff:ffff:ffff,AT
-2001:470:785b::,2001:470:78ab:ffff:ffff:ffff:ffff:ffff,US
-2001:470:78ac::,2001:470:78ac:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:78ac:8000::,2001:470:78db:ffff:ffff:ffff:ffff:ffff,US
-2001:470:78dc::,2001:470:78dc:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:78dc:8000::,2001:470:78e3:ffff:ffff:ffff:ffff:ffff,US
-2001:470:78e4::,2001:470:78e4:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:78e4:8000::,2001:470:78e8:ffff:ffff:ffff:ffff:ffff,US
-2001:470:78e9::,2001:470:78e9:7fff:ffff:ffff:ffff:ffff,LV
-2001:470:78e9:8000::,2001:470:790c:ffff:ffff:ffff:ffff:ffff,US
-2001:470:790d::,2001:470:790d:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:790d:8000::,2001:470:79ff:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7a00::,2001:470:7a00:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:7a00:8000::,2001:470:7a91:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7a92::,2001:470:7a92:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:7a92:8000::,2001:470:7a99:ffff:ffff:ffff:ffff:ffff,US
+2001:470:785b::,2001:470:7a99:ffff:ffff:ffff:ffff:ffff,US
2001:470:7a9a::,2001:470:7a9a:ffff:ffff:ffff:ffff:ffff,NL
2001:470:7a9b::,2001:470:7ba6:ffff:ffff:ffff:ffff:ffff,US
2001:470:7ba7::,2001:470:7ba7:7fff:ffff:ffff:ffff:ffff,NL
@@ -451,283 +244,65 @@
2001:470:7bb0::,2001:470:7bb0:7fff:ffff:ffff:ffff:ffff,BE
2001:470:7bb0:8000::,2001:470:7bbf:ffff:ffff:ffff:ffff:ffff,US
2001:470:7bc0::,2001:470:7bc0:ffff:ffff:ffff:ffff:ffff,NL
-2001:470:7bc1::,2001:470:7c01:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7c02::,2001:470:7c02:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:7c02:8000::,2001:470:7c14:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7c15::,2001:470:7c15:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:7c15:8000::,2001:470:7c4f:ffff:ffff:ffff:ffff:ffff,US
+2001:470:7bc1::,2001:470:7c4f:ffff:ffff:ffff:ffff:ffff,US
2001:470:7c50::,2001:470:7c50:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:7c50:8000::,2001:470:7ca1:7fff:ffff:ffff:ffff:ffff,US
-2001:470:7ca1:8000::,2001:470:7ca1:ffff:ffff:ffff:ffff:ffff,NL
-2001:470:7ca2::,2001:470:7d16:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7d17::,2001:470:7d17:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:7d17:8000::,2001:470:7d59:ffff:ffff:ffff:ffff:ffff,US
-2001:470:7d5a::,2001:470:7d5a:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:7d5a:8000::,2001:470:8091:ffff:ffff:ffff:ffff:ffff,US
+2001:470:7c50:8000::,2001:470:8091:ffff:ffff:ffff:ffff:ffff,US
2001:470:8092::,2001:470:8092:7fff:ffff:ffff:ffff:ffff,CN
2001:470:8092:8000::,2001:470:80b6:ffff:ffff:ffff:ffff:ffff,US
2001:470:80b7::,2001:470:80b7:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:80b7:8000::,2001:470:80ec:ffff:ffff:ffff:ffff:ffff,US
-2001:470:80ed::,2001:470:80ed:7fff:ffff:ffff:ffff:ffff,AU
-2001:470:80ed:8000::,2001:470:80f0:ffff:ffff:ffff:ffff:ffff,US
-2001:470:80f1::,2001:470:80f1:7fff:ffff:ffff:ffff:ffff,AU
-2001:470:80f1:8000::,2001:470:814c:ffff:ffff:ffff:ffff:ffff,US
-2001:470:814d::,2001:470:814d:7fff:ffff:ffff:ffff:ffff,AU
-2001:470:814d:8000::,2001:470:81ee:ffff:ffff:ffff:ffff:ffff,US
-2001:470:81ef::,2001:470:81ef:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:81ef:8000::,2001:470:828d:ffff:ffff:ffff:ffff:ffff,US
-2001:470:828e::,2001:470:828e:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:828e:8000::,2001:470:8327:ffff:ffff:ffff:ffff:ffff,US
-2001:470:8328::,2001:470:8328:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:8328:8000::,2001:470:83a2:ffff:ffff:ffff:ffff:ffff,US
-2001:470:83a3::,2001:470:83a3:7fff:ffff:ffff:ffff:ffff,AU
-2001:470:83a3:8000::,2001:470:83bb:ffff:ffff:ffff:ffff:ffff,US
+2001:470:80b7:8000::,2001:470:83bb:ffff:ffff:ffff:ffff:ffff,US
2001:470:83bc::,2001:470:83bc:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:83bc:8000::,2001:470:83d0:7fff:ffff:ffff:ffff:ffff,US
-2001:470:83d0:8000::,2001:470:83d0:ffff:ffff:ffff:ffff:ffff,CN
-2001:470:83d1::,2001:470:83e8:ffff:ffff:ffff:ffff:ffff,US
+2001:470:83bc:8000::,2001:470:83e8:ffff:ffff:ffff:ffff:ffff,US
2001:470:83e9::,2001:470:83e9:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:83e9:8000::,2001:470:8551:ffff:ffff:ffff:ffff:ffff,US
-2001:470:8552::,2001:470:8552:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:8552:8000::,2001:470:8578:ffff:ffff:ffff:ffff:ffff,US
-2001:470:8579::,2001:470:8579:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:8579:8000::,2001:470:859e:ffff:ffff:ffff:ffff:ffff,US
-2001:470:859f::,2001:470:859f:7fff:ffff:ffff:ffff:ffff,AU
-2001:470:859f:8000::,2001:470:8c3f:ffff:ffff:ffff:ffff:ffff,US
-2001:470:8c40::,2001:470:8c40:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:8c40:8000::,2001:470:8c6b:ffff:ffff:ffff:ffff:ffff,US
-2001:470:8c6c::,2001:470:8c6c:7fff:ffff:ffff:ffff:ffff,AU
-2001:470:8c6c:8000::,2001:470:90a6:ffff:ffff:ffff:ffff:ffff,US
-2001:470:90a7::,2001:470:90a7:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:90a7:8000::,2001:470:94f2:7fff:ffff:ffff:ffff:ffff,US
-2001:470:94f2:8000::,2001:470:94f2:ffff:ffff:ffff:ffff:ffff,CZ
-2001:470:94f3::,2001:470:9616:ffff:ffff:ffff:ffff:ffff,US
-2001:470:9617::,2001:470:9617:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:9617:8000::,2001:470:974e:ffff:ffff:ffff:ffff:ffff,US
-2001:470:974f::,2001:470:974f:7fff:ffff:ffff:ffff:ffff,GB
-2001:470:974f:8000::,2001:470:9794:ffff:ffff:ffff:ffff:ffff,US
+2001:470:83e9:8000::,2001:470:9794:ffff:ffff:ffff:ffff:ffff,US
2001:470:9795::,2001:470:9795:ffff:ffff:ffff:ffff:ffff,GB
-2001:470:9796::,2001:470:98e1:ffff:ffff:ffff:ffff:ffff,US
-2001:470:98e2::,2001:470:98e2:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:98e2:8000::,2001:470:999c:ffff:ffff:ffff:ffff:ffff,US
+2001:470:9796::,2001:470:999c:ffff:ffff:ffff:ffff:ffff,US
2001:470:999d::,2001:470:999d:ffff:ffff:ffff:ffff:ffff,DE
-2001:470:999e::,2001:470:99b8:ffff:ffff:ffff:ffff:ffff,US
-2001:470:99b9::,2001:470:99b9:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:99b9:8000::,2001:470:9d38:ffff:ffff:ffff:ffff:ffff,US
+2001:470:999e::,2001:470:9d38:ffff:ffff:ffff:ffff:ffff,US
2001:470:9d39::,2001:470:9d39:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:9d39:8000::,2001:470:9ebf:ffff:ffff:ffff:ffff:ffff,US
-2001:470:9ec0::,2001:470:9ec0:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:9ec0:8000::,2001:470:9f5e:ffff:ffff:ffff:ffff:ffff,US
-2001:470:9f5f::,2001:470:9f5f:7fff:ffff:ffff:ffff:ffff,RU
-2001:470:9f5f:8000::,2001:470:b009:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b00a::,2001:470:b00a:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b00a:8000::,2001:470:b047:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b048::,2001:470:b048:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b048:8000::,2001:470:b083:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b084::,2001:470:b084:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b084:8000::,2001:470:b0e1:ffff:ffff:ffff:ffff:ffff,US
+2001:470:9d39:8000::,2001:470:b0e1:ffff:ffff:ffff:ffff:ffff,US
2001:470:b0e2::,2001:470:b0e2:ffff:ffff:ffff:ffff:ffff,CA
-2001:470:b0e3::,2001:470:b136:7fff:ffff:ffff:ffff:ffff,US
-2001:470:b136:8000::,2001:470:b136:ffff:ffff:ffff:ffff:ffff,CA
-2001:470:b137::,2001:470:b14d:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b14e::,2001:470:b14e:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b14e:8000::,2001:470:b218:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b219::,2001:470:b219:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b219:8000::,2001:470:b23e:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b23f::,2001:470:b23f:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b23f:8000::,2001:470:b24b:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b24c::,2001:470:b24c:7fff:ffff:ffff:ffff:ffff,DO
-2001:470:b24c:8000::,2001:470:b27e:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b27f::,2001:470:b27f:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b27f:8000::,2001:470:b2a6:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b2a7::,2001:470:b2a7:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b2a7:8000::,2001:470:b2d4:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b2d5::,2001:470:b2d5:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b2d5:8000::,2001:470:b2d9:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b2da::,2001:470:b2da:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b2da:8000::,2001:470:b30c:ffff:ffff:ffff:ffff:ffff,US
+2001:470:b0e3::,2001:470:b30c:ffff:ffff:ffff:ffff:ffff,US
2001:470:b30d::,2001:470:b30d:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:b30d:8000::,2001:470:b328:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b329::,2001:470:b329:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b329:8000::,2001:470:b336:7fff:ffff:ffff:ffff:ffff,US
-2001:470:b336:8000::,2001:470:b336:ffff:ffff:ffff:ffff:ffff,CA
-2001:470:b337::,2001:470:b34f:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b350::,2001:470:b350:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b350:8000::,2001:470:b36c:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b36d::,2001:470:b36d:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b36d:8000::,2001:470:b398:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b399::,2001:470:b399:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b399:8000::,2001:470:b3b5:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b3b6::,2001:470:b3b6:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:b3b6:8000::,2001:470:b41b:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b41c::,2001:470:b41c:7fff:ffff:ffff:ffff:ffff,CH
-2001:470:b41c:8000::,2001:470:b431:7fff:ffff:ffff:ffff:ffff,US
-2001:470:b431:8000::,2001:470:b431:ffff:ffff:ffff:ffff:ffff,CH
-2001:470:b432::,2001:470:b4a4:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b4a5::,2001:470:b4a5:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:b4a5:8000::,2001:470:b4e9:ffff:ffff:ffff:ffff:ffff,US
+2001:470:b30d:8000::,2001:470:b4e9:ffff:ffff:ffff:ffff:ffff,US
2001:470:b4ea::,2001:470:b4ea:ffff:ffff:ffff:ffff:ffff,AT
-2001:470:b4eb::,2001:470:b517:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b518::,2001:470:b518:7fff:ffff:ffff:ffff:ffff,PL
-2001:470:b518:8000::,2001:470:b59e:ffff:ffff:ffff:ffff:ffff,US
+2001:470:b4eb::,2001:470:b59e:ffff:ffff:ffff:ffff:ffff,US
2001:470:b59f::,2001:470:b59f:7fff:ffff:ffff:ffff:ffff,CH
-2001:470:b59f:8000::,2001:470:b60d:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b60e::,2001:470:b60e:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:b60e:8000::,2001:470:b625:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b626::,2001:470:b626:7fff:ffff:ffff:ffff:ffff,DE
-2001:470:b626:8000::,2001:470:b7a4:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b7a5::,2001:470:b7a5:7fff:ffff:ffff:ffff:ffff,CH
-2001:470:b7a5:8000::,2001:470:b7b6:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b7b7::,2001:470:b7b7:7fff:ffff:ffff:ffff:ffff,AT
-2001:470:b7b7:8000::,2001:470:b8e6:ffff:ffff:ffff:ffff:ffff,US
-2001:470:b8e7::,2001:470:b8e7:7fff:ffff:ffff:ffff:ffff,CR
-2001:470:b8e7:8000::,2001:470:c17a:ffff:ffff:ffff:ffff:ffff,US
-2001:470:c17b::,2001:470:c17b:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:c17b:8000::,2001:470:c322:ffff:ffff:ffff:ffff:ffff,US
-2001:470:c323::,2001:470:c323:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:c323:8000::,2001:470:c385:ffff:ffff:ffff:ffff:ffff,US
-2001:470:c386::,2001:470:c386:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:c386:8000::,2001:470:c81c:ffff:ffff:ffff:ffff:ffff,US
-2001:470:c81d::,2001:470:c81d:7fff:ffff:ffff:ffff:ffff,TN
-2001:470:c81d:8000::,2001:470:c8b7:7fff:ffff:ffff:ffff:ffff,US
-2001:470:c8b7:8000::,2001:470:c8b7:ffff:ffff:ffff:ffff:ffff,FR
-2001:470:c8b8::,2001:470:c8f1:ffff:ffff:ffff:ffff:ffff,US
-2001:470:c8f2::,2001:470:c8f2:7fff:ffff:ffff:ffff:ffff,ES
-2001:470:c8f2:8000::,2001:470:c9b2:ffff:ffff:ffff:ffff:ffff,US
+2001:470:b59f:8000::,2001:470:b625:ffff:ffff:ffff:ffff:ffff,US
+2001:470:b626::,2001:470:b626:ff:ffff:ffff:ffff:ffff,DE
+2001:470:b626:100::,2001:470:c9b2:ffff:ffff:ffff:ffff:ffff,US
2001:470:c9b3::,2001:470:c9b3:7fff:ffff:ffff:ffff:ffff,ES
-2001:470:c9b3:8000::,2001:470:cd93:7fff:ffff:ffff:ffff:ffff,US
-2001:470:cd93:8000::,2001:470:cd93:ffff:ffff:ffff:ffff:ffff,FR
-2001:470:cd94::,2001:470:d050:ffff:ffff:ffff:ffff:ffff,US
-2001:470:d051::,2001:470:d051:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:d051:8000::,2001:470:d17a:ffff:ffff:ffff:ffff:ffff,US
-2001:470:d17b::,2001:470:d17b:7fff:ffff:ffff:ffff:ffff,PL
-2001:470:d17b:8000::,2001:470:d4ec:ffff:ffff:ffff:ffff:ffff,US
-2001:470:d4ed::,2001:470:d4ed:7fff:ffff:ffff:ffff:ffff,FR
-2001:470:d4ed:8000::,2001:470:d6b8:ffff:ffff:ffff:ffff:ffff,US
+2001:470:c9b3:8000::,2001:470:d6b8:ffff:ffff:ffff:ffff:ffff,US
2001:470:d6b9::,2001:470:d6b9:7fff:ffff:ffff:ffff:ffff,RU
-2001:470:d6b9:8000::,2001:470:d6e2:ffff:ffff:ffff:ffff:ffff,US
-2001:470:d6e3::,2001:470:d6e3:7fff:ffff:ffff:ffff:ffff,NL
-2001:470:d6e3:8000::,2001:470:d890:ffff:ffff:ffff:ffff:ffff,US
-2001:470:d891::,2001:470:d891:7fff:ffff:ffff:ffff:ffff,BR
-2001:470:d891:8000::,2001:470:d9cc:ffff:ffff:ffff:ffff:ffff,US
-2001:470:d9cd::,2001:470:d9cd:7fff:ffff:ffff:ffff:ffff,DO
-2001:470:d9cd:8000::,2001:470:db28:ffff:ffff:ffff:ffff:ffff,US
-2001:470:db29::,2001:470:db29:7fff:ffff:ffff:ffff:ffff,DO
-2001:470:db29:8000::,2001:470:dc00:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dc01::,2001:470:dc01:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:dc01:8000::,2001:470:dc08:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dc09::,2001:470:dc09:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:dc09:8000::,2001:470:dc24:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dc25::,2001:470:dc25:7fff:ffff:ffff:ffff:ffff,RU
-2001:470:dc25:8000::,2001:470:dc59:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dc5a::,2001:470:dc5a:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:dc5a:8000::,2001:470:dcb3:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dcb4::,2001:470:dcb4:7fff:ffff:ffff:ffff:ffff,NO
-2001:470:dcb4:8000::,2001:470:dcc3:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dcc4::,2001:470:dcc4:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:dcc4:8000::,2001:470:dcd0:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dcd1::,2001:470:dcd1:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:dcd1:8000::,2001:470:dd03:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dd04::,2001:470:dd04:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:dd04:8000::,2001:470:dd3a:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dd3b::,2001:470:dd3b:7fff:ffff:ffff:ffff:ffff,FI
-2001:470:dd3b:8000::,2001:470:dd94:ffff:ffff:ffff:ffff:ffff,US
+2001:470:d6b9:8000::,2001:470:dd94:ffff:ffff:ffff:ffff:ffff,US
2001:470:dd95::,2001:470:dd95:7fff:ffff:ffff:ffff:ffff,UA
-2001:470:dd95:8000::,2001:470:dda1:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dda2::,2001:470:dda2:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:dda2:8000::,2001:470:dde6:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dde7::,2001:470:dde7:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:dde7:8000::,2001:470:ddf5:ffff:ffff:ffff:ffff:ffff,US
-2001:470:ddf6::,2001:470:ddf6:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:ddf6:8000::,2001:470:de4a:ffff:ffff:ffff:ffff:ffff,US
-2001:470:de4b::,2001:470:de4b:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:de4b:8000::,2001:470:de8a:ffff:ffff:ffff:ffff:ffff,US
-2001:470:de8b::,2001:470:de8b:7fff:ffff:ffff:ffff:ffff,RU
-2001:470:de8b:8000::,2001:470:deb5:7fff:ffff:ffff:ffff:ffff,US
+2001:470:dd95:8000::,2001:470:deb5:7fff:ffff:ffff:ffff:ffff,US
2001:470:deb5:8000::,2001:470:deb5:ffff:ffff:ffff:ffff:ffff,RU
-2001:470:deb6::,2001:470:debb:ffff:ffff:ffff:ffff:ffff,US
-2001:470:debc::,2001:470:debc:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:debc:8000::,2001:470:dec3:ffff:ffff:ffff:ffff:ffff,US
+2001:470:deb6::,2001:470:dec3:ffff:ffff:ffff:ffff:ffff,US
2001:470:dec4::,2001:470:dec4:ffff:ffff:ffff:ffff:ffff,SE
-2001:470:dec5::,2001:470:df35:ffff:ffff:ffff:ffff:ffff,US
-2001:470:df36::,2001:470:df36:7fff:ffff:ffff:ffff:ffff,RU
-2001:470:df36:8000::,2001:470:df6f:ffff:ffff:ffff:ffff:ffff,US
-2001:470:df70::,2001:470:df70:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:df70:8000::,2001:470:df7c:ffff:ffff:ffff:ffff:ffff,US
-2001:470:df7d::,2001:470:df7d:7fff:ffff:ffff:ffff:ffff,SE
-2001:470:df7d:8000::,2001:470:dfd5:ffff:ffff:ffff:ffff:ffff,US
-2001:470:dfd6::,2001:470:dfd6:7fff:ffff:ffff:ffff:ffff,NO
-2001:470:dfd6:8000::,2001:470:e1e4:ffff:ffff:ffff:ffff:ffff,US
-2001:470:e1e5::,2001:470:e1e5:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:e1e5:8000::,2001:470:e20e:ffff:ffff:ffff:ffff:ffff,US
-2001:470:e20f::,2001:470:e20f:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:e20f:8000::,2001:470:e939:ffff:ffff:ffff:ffff:ffff,US
-2001:470:e93a::,2001:470:e93a:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:e93a:8000::,2001:470:e97e:ffff:ffff:ffff:ffff:ffff,US
-2001:470:e97f::,2001:470:e97f:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:e97f:8000::,2001:470:e9ef:ffff:ffff:ffff:ffff:ffff,US
-2001:470:e9f0::,2001:470:e9f0:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:e9f0:8000::,2001:470:ea08:ffff:ffff:ffff:ffff:ffff,US
-2001:470:ea09::,2001:470:ea09:7fff:ffff:ffff:ffff:ffff,CA
-2001:470:ea09:8000::,2001:470:ea76:ffff:ffff:ffff:ffff:ffff,US
+2001:470:dec5::,2001:470:ea76:ffff:ffff:ffff:ffff:ffff,US
2001:470:ea77::,2001:470:ea77:7fff:ffff:ffff:ffff:ffff,AU
-2001:470:ea77:8000::,2001:470:ecf5:ffff:ffff:ffff:ffff:ffff,US
-2001:470:ecf6::,2001:470:ecf6:7fff:ffff:ffff:ffff:ffff,ID
-2001:470:ecf6:8000::,2001:470:ecf6:ffff:ffff:ffff:ffff:ffff,US
-2001:470:ecf7::,2001:470:ecf7:7fff:ffff:ffff:ffff:ffff,ID
-2001:470:ecf7:8000::,2001:470:ed26:ffff:ffff:ffff:ffff:ffff,US
+2001:470:ea77:8000::,2001:470:ed26:ffff:ffff:ffff:ffff:ffff,US
2001:470:ed27::,2001:470:ed27:7fff:ffff:ffff:ffff:ffff,ID
-2001:470:ed27:8000::,2001:470:ed3c:ffff:ffff:ffff:ffff:ffff,US
-2001:470:ed3d::,2001:470:ed3d:7fff:ffff:ffff:ffff:ffff,SG
-2001:470:ed3d:8000::,2001:470:ed42:ffff:ffff:ffff:ffff:ffff,US
+2001:470:ed27:8000::,2001:470:ed42:ffff:ffff:ffff:ffff:ffff,US
2001:470:ed43::,2001:470:ed43:7fff:ffff:ffff:ffff:ffff,ID
2001:470:ed43:8000::,2001:470:ef84:ffff:ffff:ffff:ffff:ffff,US
2001:470:ef85::,2001:470:ef85:7fff:ffff:ffff:ffff:ffff,CN
2001:470:ef85:8000::,2001:470:f088:ffff:ffff:ffff:ffff:ffff,US
2001:470:f089::,2001:470:f089:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:f089:8000::,2001:470:f091:ffff:ffff:ffff:ffff:ffff,US
-2001:470:f092::,2001:470:f092:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:f092:8000::,2001:470:f1fa:ffff:ffff:ffff:ffff:ffff,US
-2001:470:f1fb::,2001:470:f1fb:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:f1fb:8000::,2001:470:f270:ffff:ffff:ffff:ffff:ffff,US
-2001:470:f271::,2001:470:f271:7fff:ffff:ffff:ffff:ffff,AU
-2001:470:f271:8000::,2001:470:f382:ffff:ffff:ffff:ffff:ffff,US
-2001:470:f383::,2001:470:f383:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:f383:8000::,2001:470:f3bd:ffff:ffff:ffff:ffff:ffff,US
-2001:470:f3be::,2001:470:f3be:ffff:ffff:ffff:ffff:ffff,CN
-2001:470:f3bf::,2001:470:f4b4:7fff:ffff:ffff:ffff:ffff,US
-2001:470:f4b4:8000::,2001:470:f4b4:ffff:ffff:ffff:ffff:ffff,CN
-2001:470:f4b5::,2001:470:f4c3:ffff:ffff:ffff:ffff:ffff,US
-2001:470:f4c4::,2001:470:f4c4:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:f4c4:8000::,2001:470:f818:ffff:ffff:ffff:ffff:ffff,US
+2001:470:f089:8000::,2001:470:f818:ffff:ffff:ffff:ffff:ffff,US
2001:470:f819::,2001:470:f819:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:f819:8000::,2001:470:f83d:7fff:ffff:ffff:ffff:ffff,US
-2001:470:f83d:8000::,2001:470:f83d:ffff:ffff:ffff:ffff:ffff,CN
-2001:470:f83e::,2001:470:f891:ffff:ffff:ffff:ffff:ffff,US
+2001:470:f819:8000::,2001:470:f891:ffff:ffff:ffff:ffff:ffff,US
2001:470:f892::,2001:470:f892:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:f892:8000::,2001:470:f91b:ffff:ffff:ffff:ffff:ffff,US
-2001:470:f91c::,2001:470:f91c:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:f91c:8000::,2001:470:fa48:ffff:ffff:ffff:ffff:ffff,US
-2001:470:fa49::,2001:470:fa49:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:fa49:8000::,2001:470:fa6b:ffff:ffff:ffff:ffff:ffff,US
-2001:470:fa6c::,2001:470:fa6c:7fff:ffff:ffff:ffff:ffff,HK
-2001:470:fa6c:8000::,2001:470:fa87:ffff:ffff:ffff:ffff:ffff,US
-2001:470:fa88::,2001:470:fa88:7fff:ffff:ffff:ffff:ffff,HK
-2001:470:fa88:8000::,2001:470:fabc:ffff:ffff:ffff:ffff:ffff,US
-2001:470:fabd::,2001:470:fabd:7fff:ffff:ffff:ffff:ffff,HK
-2001:470:fabd:8000::,2001:470:fb3b:ffff:ffff:ffff:ffff:ffff,US
+2001:470:f892:8000::,2001:470:fb3b:ffff:ffff:ffff:ffff:ffff,US
2001:470:fb3c::,2001:470:fb3c:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:fb3c:8000::,2001:470:fc62:ffff:ffff:ffff:ffff:ffff,US
-2001:470:fc63::,2001:470:fc63:7fff:ffff:ffff:ffff:ffff,CN
-2001:470:fc63:8000::,2001:470:fc78:ffff:ffff:ffff:ffff:ffff,US
+2001:470:fb3c:8000::,2001:470:fc78:ffff:ffff:ffff:ffff:ffff,US
2001:470:fc79::,2001:470:fc79:7fff:ffff:ffff:ffff:ffff,JP
2001:470:fc79:8000::,2001:470:fc86:7fff:ffff:ffff:ffff:ffff,US
2001:470:fc86:8000::,2001:470:fc86:ffff:ffff:ffff:ffff:ffff,JP
2001:470:fc87::,2001:470:fdfe:ffff:ffff:ffff:ffff:ffff,US
2001:470:fdff::,2001:470:fdff:7fff:ffff:ffff:ffff:ffff,JP
-2001:470:fdff:8000::,2001:470:fe3f:ffff:ffff:ffff:ffff:ffff,US
-2001:470:fe40::,2001:470:fe40:7fff:ffff:ffff:ffff:ffff,JP
-2001:470:fe40:8000::,2001:470:fe7c:7fff:ffff:ffff:ffff:ffff,US
+2001:470:fdff:8000::,2001:470:fe7c:7fff:ffff:ffff:ffff:ffff,US
2001:470:fe7c:8000::,2001:470:fe7c:ffff:ffff:ffff:ffff:ffff,CN
2001:470:fe7d::,2001:470:fecb:ffff:ffff:ffff:ffff:ffff,US
2001:470:fecc::,2001:470:fecc:7fff:ffff:ffff:ffff:ffff,CN
@@ -844,7 +419,8 @@
2001:504:43::,2001:504:45:ffff:ffff:ffff:ffff:ffff,US
2001:504:46::,2001:504:46:ffff:ffff:ffff:ffff:ffff,CA
2001:504:47::,2001:504:47:ffff:ffff:ffff:ffff:ffff,US
-2001:504:57::,2001:504:58:ffff:ffff:ffff:ffff:ffff,US
+2001:504:57::,2001:504:59:ffff:ffff:ffff:ffff:ffff,US
+2001:504:60::,2001:504:60:ffff:ffff:ffff:ffff:ffff,US
2001:506::,2001:506:1:ffff:ffff:ffff:ffff:ffff,US
2001:506:8::,2001:506:8:ffff:ffff:ffff:ffff:ffff,US
2001:506:20::,2001:506:20:ffff:ffff:ffff:ffff:ffff,CA
@@ -867,13 +443,7 @@
2001:550:0:1000::9a19:326,2001:550:0:1000::9a19:326,SI
2001:550:0:1000::9a19:327,2001:550:0:1000::9a36:2631,US
2001:550:0:1000::9a36:2632,2001:550:0:1000::9a36:2632,DE
-2001:550:0:1000::9a36:2633,2001:550:7ff:ffff:ffff:ffff:ffff:ffff,US
-2001:550:800::,2001:550:800:7fff:ffff:ffff:ffff:ffff,CA
-2001:550:800:8000::,2001:550:801:ffff:ffff:ffff:ffff:ffff,US
-2001:550:802::,2001:550:802:7fff:ffff:ffff:ffff:ffff,CA
-2001:550:802:8000::,2001:550:907:ffff:ffff:ffff:ffff:ffff,US
-2001:550:908::,2001:550:908:7fff:ffff:ffff:ffff:ffff,CA
-2001:550:908:8000::,2001:550:909:ffff:ffff:ffff:ffff:ffff,US
+2001:550:0:1000::9a36:2633,2001:550:909:ffff:ffff:ffff:ffff:ffff,US
2001:550:90a::,2001:550:90a:7fff:ffff:ffff:ffff:ffff,CA
2001:550:90a:8000::,2001:550:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:558::,2001:560:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -891,15 +461,11 @@
2001:5b8::,2001:5b8:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:5c0:1000::,2001:5c0:10ff:ffff:ffff:ffff:ffff:ffff,CA
2001:5c0:1100::,2001:5c0:1100::,US
-2001:5c0:1100::1,2001:5c0:1100:7fff:ffff:ffff:ffff:ffff,CA
-2001:5c0:1100:8000::,2001:5c0:1100:bfff:ffff:ffff:ffff:ffff,US
-2001:5c0:1100:c000::,2001:5c0:1501:7fff:ffff:ffff:ffff:ffff,CA
-2001:5c0:1501:8000::,2001:5c0:1501:ffff:ffff:ffff:ffff:ffff,RU
-2001:5c0:1502::,2001:5c0:1505:7fff:ffff:ffff:ffff:ffff,CA
+2001:5c0:1100::1,2001:5c0:13ff:ffff:ffff:ffff:ffff:ffff,CA
+2001:5c0:1400::,2001:5c0:1400:7fff:ffff:ffff:ffff:ffff,UA
+2001:5c0:1400:8000::,2001:5c0:1505:7fff:ffff:ffff:ffff:ffff,CA
2001:5c0:1505:8000::,2001:5c0:1505:ffff:ffff:ffff:ffff:ffff,RU
-2001:5c0:1506::,2001:5c0:1508:7fff:ffff:ffff:ffff:ffff,CA
-2001:5c0:1508:8000::,2001:5c0:1508:ffff:ffff:ffff:ffff:ffff,ES
-2001:5c0:1509::,2001:5c0:1fff:ffff:ffff:ffff:ffff:ffff,CA
+2001:5c0:1506::,2001:5c0:1fff:ffff:ffff:ffff:ffff:ffff,CA
2001:5c8::,2001:5c8:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:5d0::,2001:5d0:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:5d8::,2001:5d8:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -918,11 +484,11 @@
2001:648::,2001:64f:ffff:ffff:ffff:ffff:ffff:ffff,GR
2001:650::,2001:65f:ffff:ffff:ffff:ffff:ffff:ffff,DE
2001:660::,2001:667:ffff:ffff:ffff:ffff:ffff:ffff,FR
-2001:668::,2001:668:1e:ffff:ffff:ffff:ffff:ffff,DE
-2001:668:1f::,2001:668:1f:3d:ffff:ffff:ffff:ffff,US
+2001:668::,2001:668:1f:3d:ffff:ffff:ffff:ffff,DE
2001:668:1f:3e::,2001:668:1f:3e:ffff:ffff:ffff:ffff,GB
-2001:668:1f:3f::,2001:668:1f:7fff:ffff:ffff:ffff:ffff,US
-2001:668:1f:8000::,2001:66f:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2001:668:1f:3f::,2001:668:1f:44:ffff:ffff:ffff:ffff,DE
+2001:668:1f:45::,2001:668:1f:45:ffff:ffff:ffff:ffff,GB
+2001:668:1f:46::,2001:66f:ffff:ffff:ffff:ffff:ffff:ffff,DE
2001:670::,2001:673:ffff:ffff:ffff:ffff:ffff:ffff,FI
2001:678:1::,2001:678:1:ffff:ffff:ffff:ffff:ffff,CZ
2001:678:2::,2001:678:2:ffff:ffff:ffff:ffff:ffff,DE
@@ -983,6 +549,15 @@
2001:678:d0::,2001:678:d0:ffff:ffff:ffff:ffff:ffff,NL
2001:678:d4::,2001:678:d4:ffff:ffff:ffff:ffff:ffff,IT
2001:678:d8::,2001:678:d8:ffff:ffff:ffff:ffff:ffff,LV
+2001:678:dc::,2001:678:dc:ffff:ffff:ffff:ffff:ffff,NL
+2001:678:e0::,2001:678:e0:ffff:ffff:ffff:ffff:ffff,MD
+2001:678:e4::,2001:678:e4:ffff:ffff:ffff:ffff:ffff,SE
+2001:678:e8::,2001:678:e8:ffff:ffff:ffff:ffff:ffff,CZ
+2001:678:ec::,2001:678:ec:ffff:ffff:ffff:ffff:ffff,RU
+2001:678:f0::,2001:678:f0:ffff:ffff:ffff:ffff:ffff,SE
+2001:678:f4::,2001:678:f4:ffff:ffff:ffff:ffff:ffff,RU
+2001:678:f8::,2001:678:f8:ffff:ffff:ffff:ffff:ffff,DE
+2001:678:fc::,2001:678:fc:ffff:ffff:ffff:ffff:ffff,LT
2001:67c::,2001:67c::ffff:ffff:ffff:ffff:ffff,IE
2001:67c:4::,2001:67c:4:ffff:ffff:ffff:ffff:ffff,DE
2001:67c:8::,2001:67c:8:ffff:ffff:ffff:ffff:ffff,CH
@@ -1012,6 +587,7 @@
2001:67c:68::,2001:67c:68:ffff:ffff:ffff:ffff:ffff,CZ
2001:67c:6c::,2001:67c:6c:ffff:ffff:ffff:ffff:ffff,IS
2001:67c:70::,2001:67c:70:ffff:ffff:ffff:ffff:ffff,FR
+2001:67c:78::,2001:67c:78:ffff:ffff:ffff:ffff:ffff,NL
2001:67c:7c::,2001:67c:7c:ffff:ffff:ffff:ffff:ffff,AT
2001:67c:80::,2001:67c:80:ffff:ffff:ffff:ffff:ffff,GB
2001:67c:84::,2001:67c:84:ffff:ffff:ffff:ffff:ffff,CZ
@@ -1227,13 +803,12 @@
2001:67c:3d4::,2001:67c:3d4:ffff:ffff:ffff:ffff:ffff,CZ
2001:67c:3d8::,2001:67c:3d8:ffff:ffff:ffff:ffff:ffff,GB
2001:67c:3dc::,2001:67c:3dc:ffff:ffff:ffff:ffff:ffff,GB
-2001:67c:3e0::,2001:67c:3e0:ffff:ffff:ffff:ffff:ffff,GB
2001:67c:3e4::,2001:67c:3e4:ffff:ffff:ffff:ffff:ffff,GB
2001:67c:3e8::,2001:67c:3e9:ffff:ffff:ffff:ffff:ffff,SA
2001:67c:3f0::,2001:67c:3f0:ffff:ffff:ffff:ffff:ffff,GB
2001:67c:3f4::,2001:67c:3f4:ffff:ffff:ffff:ffff:ffff,HR
2001:67c:3f8::,2001:67c:3f8:ffff:ffff:ffff:ffff:ffff,SI
-2001:67c:3fc::,2001:67c:3fc:ffff:ffff:ffff:ffff:ffff,AT
+2001:67c:3fc::,2001:67c:3fc:ffff:ffff:ffff:ffff:ffff,CH
2001:67c:400::,2001:67c:400:ffff:ffff:ffff:ffff:ffff,RU
2001:67c:404::,2001:67c:404:ffff:ffff:ffff:ffff:ffff,AT
2001:67c:408::,2001:67c:408:ffff:ffff:ffff:ffff:ffff,FR
@@ -1555,7 +1130,6 @@
2001:67c:1154::,2001:67c:1154:ffff:ffff:ffff:ffff:ffff,TR
2001:67c:1158::,2001:67c:1158:ffff:ffff:ffff:ffff:ffff,PL
2001:67c:115c::,2001:67c:115c:ffff:ffff:ffff:ffff:ffff,RO
-2001:67c:1160::,2001:67c:1160:ffff:ffff:ffff:ffff:ffff,RO
2001:67c:1164::,2001:67c:1164:ffff:ffff:ffff:ffff:ffff,UA
2001:67c:1168::,2001:67c:1168:ffff:ffff:ffff:ffff:ffff,PL
2001:67c:116c::,2001:67c:116c:ffff:ffff:ffff:ffff:ffff,SE
@@ -1662,9 +1236,7 @@
2001:67c:1344::,2001:67c:1344:ffff:ffff:ffff:ffff:ffff,RU
2001:67c:1348::,2001:67c:1348:ffff:ffff:ffff:ffff:ffff,FR
2001:67c:134c::,2001:67c:134c:ffff:ffff:ffff:ffff:ffff,CZ
-2001:67c:1350::,2001:67c:1350:1fff:ffff:ffff:ffff:ffff,CY
-2001:67c:1350:2000::,2001:67c:1350:3fff:ffff:ffff:ffff:ffff,SE
-2001:67c:1350:4000::,2001:67c:1350:ffff:ffff:ffff:ffff:ffff,CY
+2001:67c:1350::,2001:67c:1350:ffff:ffff:ffff:ffff:ffff,CY
2001:67c:1354::,2001:67c:1354:ffff:ffff:ffff:ffff:ffff,GB
2001:67c:1358::,2001:67c:1358:ffff:ffff:ffff:ffff:ffff,RU
2001:67c:135c::,2001:67c:135c:ffff:ffff:ffff:ffff:ffff,SE
@@ -1740,7 +1312,6 @@
2001:67c:1508::,2001:67c:1508:ffff:ffff:ffff:ffff:ffff,AT
2001:67c:150c::,2001:67c:150c:ffff:ffff:ffff:ffff:ffff,CH
2001:67c:1510::,2001:67c:1510:ffff:ffff:ffff:ffff:ffff,GB
-2001:67c:1514::,2001:67c:1514:ffff:ffff:ffff:ffff:ffff,RO
2001:67c:1518::,2001:67c:1518:ffff:ffff:ffff:ffff:ffff,UA
2001:67c:151c::,2001:67c:151c:ffff:ffff:ffff:ffff:ffff,AT
2001:67c:1520::,2001:67c:1520:ffff:ffff:ffff:ffff:ffff,GB
@@ -1856,7 +1427,6 @@
2001:67c:177c::,2001:67c:177c:ffff:ffff:ffff:ffff:ffff,LT
2001:67c:1780::,2001:67c:1780:ffff:ffff:ffff:ffff:ffff,CH
2001:67c:1784::,2001:67c:1784:ffff:ffff:ffff:ffff:ffff,SE
-2001:67c:178c::,2001:67c:178c:ffff:ffff:ffff:ffff:ffff,RO
2001:67c:1790::,2001:67c:1790:ffff:ffff:ffff:ffff:ffff,RU
2001:67c:1794::,2001:67c:1794:ffff:ffff:ffff:ffff:ffff,SE
2001:67c:1798::,2001:67c:1798:ffff:ffff:ffff:ffff:ffff,CZ
@@ -1912,7 +1482,6 @@
2001:67c:186c::,2001:67c:186c:ffff:ffff:ffff:ffff:ffff,SE
2001:67c:1870::,2001:67c:1870:ffff:ffff:ffff:ffff:ffff,NL
2001:67c:1874::,2001:67c:1874:ffff:ffff:ffff:ffff:ffff,CZ
-2001:67c:1878::,2001:67c:1878:ffff:ffff:ffff:ffff:ffff,RO
2001:67c:187c::,2001:67c:187c:ffff:ffff:ffff:ffff:ffff,RO
2001:67c:1880::,2001:67c:1880:ffff:ffff:ffff:ffff:ffff,SE
2001:67c:1884::,2001:67c:1884:ffff:ffff:ffff:ffff:ffff,GB
@@ -1973,7 +1542,6 @@
2001:67c:1980::,2001:67c:1980:ffff:ffff:ffff:ffff:ffff,FR
2001:67c:1984::,2001:67c:1984:ffff:ffff:ffff:ffff:ffff,BG
2001:67c:1988::,2001:67c:1988:ffff:ffff:ffff:ffff:ffff,DE
-2001:67c:198c::,2001:67c:198c:ffff:ffff:ffff:ffff:ffff,GB
2001:67c:1990::,2001:67c:1990:ffff:ffff:ffff:ffff:ffff,RO
2001:67c:1994::,2001:67c:1994:ffff:ffff:ffff:ffff:ffff,DE
2001:67c:1998::,2001:67c:1998:ffff:ffff:ffff:ffff:ffff,LU
@@ -2032,7 +1600,6 @@
2001:67c:1b88::,2001:67c:1b88:ffff:ffff:ffff:ffff:ffff,CZ
2001:67c:1b8c::,2001:67c:1b8c:ffff:ffff:ffff:ffff:ffff,PL
2001:67c:1b90::,2001:67c:1b90:ffff:ffff:ffff:ffff:ffff,PL
-2001:67c:1b94::,2001:67c:1b94:ffff:ffff:ffff:ffff:ffff,RO
2001:67c:1b98::,2001:67c:1b98:ffff:ffff:ffff:ffff:ffff,SE
2001:67c:1b9c::,2001:67c:1b9c:ffff:ffff:ffff:ffff:ffff,NL
2001:67c:1ba0::,2001:67c:1ba0:ffff:ffff:ffff:ffff:ffff,AT
@@ -2633,7 +2200,6 @@
2001:67c:29d8::,2001:67c:29d8:ffff:ffff:ffff:ffff:ffff,AE
2001:67c:29dc::,2001:67c:29dc:ffff:ffff:ffff:ffff:ffff,DE
2001:67c:29e0::,2001:67c:29e0:ffff:ffff:ffff:ffff:ffff,UA
-2001:67c:29e4::,2001:67c:29e4:ffff:ffff:ffff:ffff:ffff,DE
2001:67c:29e8::,2001:67c:29e8:ffff:ffff:ffff:ffff:ffff,TR
2001:67c:29ec::,2001:67c:29ec:ffff:ffff:ffff:ffff:ffff,NO
2001:67c:29f0::,2001:67c:29f0:ffff:ffff:ffff:ffff:ffff,BG
@@ -2699,7 +2265,6 @@
2001:67c:2ae0::,2001:67c:2ae0:ffff:ffff:ffff:ffff:ffff,DK
2001:67c:2ae4::,2001:67c:2ae4:ffff:ffff:ffff:ffff:ffff,DE
2001:67c:2ae8::,2001:67c:2ae8:ffff:ffff:ffff:ffff:ffff,DE
-2001:67c:2aec::,2001:67c:2aec:ffff:ffff:ffff:ffff:ffff,CH
2001:67c:2af0::,2001:67c:2af0:ffff:ffff:ffff:ffff:ffff,SE
2001:67c:2af4::,2001:67c:2af4:ffff:ffff:ffff:ffff:ffff,RU
2001:67c:2af8::,2001:67c:2af8:ffff:ffff:ffff:ffff:ffff,SE
@@ -2726,7 +2291,6 @@
2001:67c:2b50::,2001:67c:2b50:ffff:ffff:ffff:ffff:ffff,AT
2001:67c:2b54::,2001:67c:2b54:ffff:ffff:ffff:ffff:ffff,CH
2001:67c:2b58::,2001:67c:2b58:ffff:ffff:ffff:ffff:ffff,SE
-2001:67c:2b5c::,2001:67c:2b5c:ffff:ffff:ffff:ffff:ffff,FR
2001:67c:2b60::,2001:67c:2b60:ffff:ffff:ffff:ffff:ffff,NL
2001:67c:2b64::,2001:67c:2b64:ffff:ffff:ffff:ffff:ffff,RU
2001:67c:2b68::,2001:67c:2b68:ffff:ffff:ffff:ffff:ffff,RO
@@ -2956,6 +2520,40 @@
2001:67c:2f34::,2001:67c:2f34:ffff:ffff:ffff:ffff:ffff,AT
2001:67c:2f38::,2001:67c:2f38:ffff:ffff:ffff:ffff:ffff,GB
2001:67c:2f3c::,2001:67c:2f3c:ffff:ffff:ffff:ffff:ffff,GB
+2001:67c:2f40::,2001:67c:2f40:ffff:ffff:ffff:ffff:ffff,BG
+2001:67c:2f44::,2001:67c:2f44:ffff:ffff:ffff:ffff:ffff,DE
+2001:67c:2f48::,2001:67c:2f48:ffff:ffff:ffff:ffff:ffff,UA
+2001:67c:2f4c::,2001:67c:2f4c:ffff:ffff:ffff:ffff:ffff,BG
+2001:67c:2f50::,2001:67c:2f50:ffff:ffff:ffff:ffff:ffff,SE
+2001:67c:2f54::,2001:67c:2f54:ffff:ffff:ffff:ffff:ffff,PL
+2001:67c:2f58::,2001:67c:2f58:ffff:ffff:ffff:ffff:ffff,GB
+2001:67c:2f5c::,2001:67c:2f5c:ffff:ffff:ffff:ffff:ffff,NL
+2001:67c:2f60::,2001:67c:2f60:ffff:ffff:ffff:ffff:ffff,DE
+2001:67c:2f64::,2001:67c:2f64:ffff:ffff:ffff:ffff:ffff,PL
+2001:67c:2f68::,2001:67c:2f68:ffff:ffff:ffff:ffff:ffff,RO
+2001:67c:2f6c::,2001:67c:2f6c:ffff:ffff:ffff:ffff:ffff,UA
+2001:67c:2f70::,2001:67c:2f70:ffff:ffff:ffff:ffff:ffff,CH
+2001:67c:2f74::,2001:67c:2f74:ffff:ffff:ffff:ffff:ffff,PL
+2001:67c:2f78::,2001:67c:2f78:ffff:ffff:ffff:ffff:ffff,DE
+2001:67c:2f7c::,2001:67c:2f7c:ffff:ffff:ffff:ffff:ffff,SE
+2001:67c:2f80::,2001:67c:2f80:ffff:ffff:ffff:ffff:ffff,SE
+2001:67c:2f84::,2001:67c:2f84:ffff:ffff:ffff:ffff:ffff,DE
+2001:67c:2f88::,2001:67c:2f88:ffff:ffff:ffff:ffff:ffff,NL
+2001:67c:2f8c::,2001:67c:2f8c:ffff:ffff:ffff:ffff:ffff,IT
+2001:67c:2f90::,2001:67c:2f90:ffff:ffff:ffff:ffff:ffff,RU
+2001:67c:2f94::,2001:67c:2f94:ffff:ffff:ffff:ffff:ffff,CH
+2001:67c:2f98::,2001:67c:2f98:ffff:ffff:ffff:ffff:ffff,CH
+2001:67c:2f9c::,2001:67c:2f9c:ffff:ffff:ffff:ffff:ffff,CZ
+2001:67c:2fa0::,2001:67c:2fa0:ffff:ffff:ffff:ffff:ffff,SE
+2001:67c:2fa4::,2001:67c:2fa4:ffff:ffff:ffff:ffff:ffff,DE
+2001:67c:2fa8::,2001:67c:2fa8:ffff:ffff:ffff:ffff:ffff,DE
+2001:67c:2fac::,2001:67c:2fac:ffff:ffff:ffff:ffff:ffff,FI
+2001:67c:2fb0::,2001:67c:2fb0:ffff:ffff:ffff:ffff:ffff,DE
+2001:67c:2fb4::,2001:67c:2fb4:ffff:ffff:ffff:ffff:ffff,RO
+2001:67c:2fb8::,2001:67c:2fb8:ffff:ffff:ffff:ffff:ffff,SE
+2001:67c:2fbc::,2001:67c:2fbc:ffff:ffff:ffff:ffff:ffff,DE
+2001:67c:2fc0::,2001:67c:2fc0:ffff:ffff:ffff:ffff:ffff,FI
+2001:67c:2fc4::,2001:67c:2fc4:ffff:ffff:ffff:ffff:ffff,UA
2001:680::,2001:680:ffff:ffff:ffff:ffff:ffff:ffff,DE
2001:688::,2001:688:ffff:ffff:ffff:ffff:ffff:ffff,FR
2001:690::,2001:697:ffff:ffff:ffff:ffff:ffff:ffff,PT
@@ -2969,43 +2567,19 @@
2001:6e0::,2001:6e0:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:6e8::,2001:6ef:ffff:ffff:ffff:ffff:ffff:ffff,FI
2001:6f0::,2001:6f7:ffff:ffff:ffff:ffff:ffff:ffff,SE
-2001:6f8::,2001:6f8:202:7fff:ffff:ffff:ffff:ffff,GB
-2001:6f8:202:8000::,2001:6f8:202:ffff:ffff:ffff:ffff:ffff,BE
-2001:6f8:203::,2001:6f8:2ff:ffff:ffff:ffff:ffff:ffff,GB
+2001:6f8::,2001:6f8:2ff:ffff:ffff:ffff:ffff:ffff,GB
2001:6f8:300::,2001:6f8:3ff:ffff:ffff:ffff:ffff:ffff,BE
-2001:6f8:400::,2001:6f8:8ff:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:900::,2001:6f8:900:ffff:ffff:ffff:ffff:ffff,DE
-2001:6f8:901::,2001:6f8:91c:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:91d::,2001:6f8:91d:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:91d:8000::,2001:6f8:1011:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:1012::,2001:6f8:1012:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:1012:8000::,2001:6f8:107c:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:107d::,2001:6f8:107d:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:107d:8000::,2001:6f8:10f1:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:10f2::,2001:6f8:10f2:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:10f2:8000::,2001:6f8:11ab:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:11ac::,2001:6f8:11ac:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:11ac:8000::,2001:6f8:11b1:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:11b2::,2001:6f8:11b2:7fff:ffff:ffff:ffff:ffff,AT
-2001:6f8:11b2:8000::,2001:6f8:11cf:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:11d0::,2001:6f8:11d0:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:11d0:8000::,2001:6f8:12ca:7fff:ffff:ffff:ffff:ffff,GB
-2001:6f8:12ca:8000::,2001:6f8:12ca:ffff:ffff:ffff:ffff:ffff,DE
-2001:6f8:12cb::,2001:6f8:12d8:ffff:ffff:ffff:ffff:ffff,GB
+2001:6f8:400::,2001:6f8:900:7fff:ffff:ffff:ffff:ffff,GB
+2001:6f8:900:8000::,2001:6f8:900:ffff:ffff:ffff:ffff:ffff,DE
+2001:6f8:901::,2001:6f8:12d8:ffff:ffff:ffff:ffff:ffff,GB
2001:6f8:12d9::,2001:6f8:12d9:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:12d9:8000::,2001:6f8:13e0:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:13e1::,2001:6f8:13e1:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:13e1:8000::,2001:6f8:13ff:ffff:ffff:ffff:ffff:ffff,GB
+2001:6f8:12d9:8000::,2001:6f8:13ff:ffff:ffff:ffff:ffff:ffff,GB
2001:6f8:1400::,2001:6f8:14ff:ffff:ffff:ffff:ffff:ffff,BE
-2001:6f8:1500::,2001:6f8:1c8a:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:1c8b::,2001:6f8:1c8b:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:1c8b:8000::,2001:6f8:1cba:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:1cbb::,2001:6f8:1cbb:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:1cbb:8000::,2001:6f8:1d57:ffff:ffff:ffff:ffff:ffff,GB
+2001:6f8:1500::,2001:6f8:1c00:7fff:ffff:ffff:ffff:ffff,GB
+2001:6f8:1c00:8000::,2001:6f8:1c00:ffff:ffff:ffff:ffff:ffff,DE
+2001:6f8:1c01::,2001:6f8:1d57:ffff:ffff:ffff:ffff:ffff,GB
2001:6f8:1d58::,2001:6f8:1d58:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:1d58:8000::,2001:6f8:1d69:ffff:ffff:ffff:ffff:ffff,GB
-2001:6f8:1d6a::,2001:6f8:1d6a:7fff:ffff:ffff:ffff:ffff,DE
-2001:6f8:1d6a:8000::,2001:6f8:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2001:6f8:1d58:8000::,2001:6f8:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:700::,2001:700:ffff:ffff:ffff:ffff:ffff:ffff,NO
2001:708::,2001:708:ffff:ffff:ffff:ffff:ffff:ffff,FI
2001:710::,2001:710:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -3031,7 +2605,9 @@
2001:7b8::,2001:7bf:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:7c0::,2001:7c7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2001:7c8::,2001:7c8:ffff:ffff:ffff:ffff:ffff:ffff,IE
-2001:7d0::,2001:7d0:ffff:ffff:ffff:ffff:ffff:ffff,EE
+2001:7d0::,2001:7d0:8cc1:7fff:ffff:ffff:ffff:ffff,EE
+2001:7d0:8cc1:8000::,2001:7d0:8cc1:ffff:ffff:ffff:ffff:ffff,GB
+2001:7d0:8cc2::,2001:7d0:ffff:ffff:ffff:ffff:ffff:ffff,EE
2001:7d8::,2001:7d8:ffff:ffff:ffff:ffff:ffff:ffff,DE
2001:7e0::,2001:7e0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:7e8::,2001:7e8:ffff:ffff:ffff:ffff:ffff:ffff,LU
@@ -3039,6 +2615,7 @@
2001:7f8:1::,2001:7f8:1:ffff:ffff:ffff:ffff:ffff,NL
2001:7f8:2::,2001:7f8:2:ffff:ffff:ffff:ffff:ffff,IT
2001:7f8:3::,2001:7f8:4:ffff:ffff:ffff:ffff:ffff,GB
+2001:7f8:5::,2001:7f8:5:ffff:ffff:ffff:ffff:ffff,RU
2001:7f8:6::,2001:7f8:6:ffff:ffff:ffff:ffff:ffff,BG
2001:7f8:7::,2001:7f8:7:ffff:ffff:ffff:ffff:ffff,FI
2001:7f8:8::,2001:7f8:8:ffff:ffff:ffff:ffff:ffff,DE
@@ -3083,6 +2660,7 @@
2001:7f8:31::,2001:7f8:31:ffff:ffff:ffff:ffff:ffff,NL
2001:7f8:32::,2001:7f8:32:ffff:ffff:ffff:ffff:ffff,IT
2001:7f8:33::,2001:7f8:33:ffff:ffff:ffff:ffff:ffff,DE
+2001:7f8:34::,2001:7f8:34:ffff:ffff:ffff:ffff:ffff,FR
2001:7f8:35::,2001:7f8:35:ffff:ffff:ffff:ffff:ffff,HU
2001:7f8:36::,2001:7f8:36:ffff:ffff:ffff:ffff:ffff,FR
2001:7f8:37::,2001:7f8:38:ffff:ffff:ffff:ffff:ffff,SE
@@ -3119,6 +2697,7 @@
2001:7f8:59::,2001:7f8:59:ffff:ffff:ffff:ffff:ffff,FR
2001:7f8:5a::,2001:7f8:5a:ffff:ffff:ffff:ffff:ffff,BY
2001:7f8:5b::,2001:7f8:5b:ffff:ffff:ffff:ffff:ffff,PL
+2001:7f8:5c::,2001:7f8:5c:ffff:ffff:ffff:ffff:ffff,RU
2001:7f8:5d::,2001:7f8:5d:ffff:ffff:ffff:ffff:ffff,UA
2001:7f8:5e::,2001:7f8:5e:ffff:ffff:ffff:ffff:ffff,CZ
2001:7f8:5f::,2001:7f8:5f:ffff:ffff:ffff:ffff:ffff,IT
@@ -3180,6 +2759,7 @@
2001:7f8:9b::,2001:7f8:9b:ffff:ffff:ffff:ffff:ffff,PL
2001:7f8:9c::,2001:7f8:9e:ffff:ffff:ffff:ffff:ffff,DE
2001:7f8:9f::,2001:7f8:9f:ffff:ffff:ffff:ffff:ffff,BG
+2001:7f8:a0::,2001:7f8:a0:ffff:ffff:ffff:ffff:ffff,ES
2001:7fa:0:1::,2001:7fa::1:ffff:ffff:ffff:ffff,HK
2001:7fa:0:2::,2001:7fa::2:ffff:ffff:ffff:ffff,KR
2001:7fa:0:3::,2001:7fa::3:ffff:ffff:ffff:ffff,JP
@@ -3194,6 +2774,7 @@
2001:7fa:f::,2001:7fa:f:ffff:ffff:ffff:ffff:ffff,ID
2001:7fa:10::,2001:7fa:10:ffff:ffff:ffff:ffff:ffff,CN
2001:7fa:11::,2001:7fa:11:ffff:ffff:ffff:ffff:ffff,AU
+2001:7fc::,2001:7fc:1:ffff:ffff:ffff:ffff:ffff,DE
2001:7fe::,2001:7fe:ffff:ffff:ffff:ffff:ffff:ffff,SE
2001:808::,2001:80f:ffff:ffff:ffff:ffff:ffff:ffff,PL
2001:810::,2001:810:ffff:ffff:ffff:ffff:ffff:ffff,FR
@@ -3214,15 +2795,11 @@
2001:888::,2001:88f:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:890::,2001:891:ffff:ffff:ffff:ffff:ffff:ffff,AT
2001:898::,2001:89f:ffff:ffff:ffff:ffff:ffff:ffff,NL
-2001:8a0::,2001:8a0:5f5e:ffff:ffff:ffff:ffff:ffff,PT
-2001:8a0:5f5f::,2001:8a0:5f5f:7fff:ffff:ffff:ffff:ffff,DE
-2001:8a0:5f5f:8000::,2001:8a0:ddae:7fff:ffff:ffff:ffff:ffff,PT
-2001:8a0:ddae:8000::,2001:8a0:ddae:ffff:ffff:ffff:ffff:ffff,AU
-2001:8a0:ddaf::,2001:8a7:ffff:ffff:ffff:ffff:ffff:ffff,PT
+2001:8a0::,2001:8a7:ffff:ffff:ffff:ffff:ffff:ffff,PT
2001:8a8::,2001:8a8:ffff:ffff:ffff:ffff:ffff:ffff,CH
2001:8b0::,2001:8b0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:8b8::,2001:8bf:ffff:ffff:ffff:ffff:ffff:ffff,FI
-2001:8c0::,2001:8c0:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2001:8c0::,2001:8c7:ffff:ffff:ffff:ffff:ffff:ffff,NO
2001:8c8::,2001:8c8:ffff:ffff:ffff:ffff:ffff:ffff,RS
2001:8d0::,2001:8d0:ffff:ffff:ffff:ffff:ffff:ffff,IT
2001:8d8::,2001:8d8:ffff:ffff:ffff:ffff:ffff:ffff,DE
@@ -3235,19 +2812,9 @@
2001:918::,2001:918:ffff:ffff:ffff:ffff:ffff:ffff,CH
2001:920::,2001:920:1845:ffff:ffff:ffff:ffff:ffff,GB
2001:920:1846::,2001:920:1846:7fff:ffff:ffff:ffff:ffff,DE
-2001:920:1846:8000::,2001:920:186a:ffff:ffff:ffff:ffff:ffff,GB
-2001:920:186b::,2001:920:186b:ffff:ffff:ffff:ffff:ffff,DE
-2001:920:186c::,2001:920:187f:ffff:ffff:ffff:ffff:ffff,GB
-2001:920:1880::,2001:920:1880:7fff:ffff:ffff:ffff:ffff,DE
-2001:920:1880:8000::,2001:920:18a0:ffff:ffff:ffff:ffff:ffff,GB
-2001:920:18a1::,2001:920:18a1:7fff:ffff:ffff:ffff:ffff,DE
-2001:920:18a1:8000::,2001:920:18ad:ffff:ffff:ffff:ffff:ffff,GB
+2001:920:1846:8000::,2001:920:18ad:ffff:ffff:ffff:ffff:ffff,GB
2001:920:18ae::,2001:920:18ae:7fff:ffff:ffff:ffff:ffff,DE
-2001:920:18ae:8000::,2001:920:18bf:ffff:ffff:ffff:ffff:ffff,GB
-2001:920:18c0::,2001:920:18c0:7fff:ffff:ffff:ffff:ffff,DE
-2001:920:18c0:8000::,2001:920:18c0:ffff:ffff:ffff:ffff:ffff,GB
-2001:920:18c1::,2001:920:18c1:7fff:ffff:ffff:ffff:ffff,DE
-2001:920:18c1:8000::,2001:920:5809:ffff:ffff:ffff:ffff:ffff,GB
+2001:920:18ae:8000::,2001:920:5809:ffff:ffff:ffff:ffff:ffff,GB
2001:920:580a::,2001:920:580a:7fff:ffff:ffff:ffff:ffff,ES
2001:920:580a:8000::,2001:920:5845:ffff:ffff:ffff:ffff:ffff,GB
2001:920:5846::,2001:920:5846:ffff:ffff:ffff:ffff:ffff,ES
@@ -3265,16 +2832,14 @@
2001:978:2:39::5:2,2001:978:2:39::5:2,SI
2001:978:2:39::5:3,2001:978:1200:ffff:ffff:ffff:ffff:ffff,DE
2001:978:1201::,2001:978:1201:7fff:ffff:ffff:ffff:ffff,ES
-2001:978:1201:8000::,2001:978:22ff:ffff:ffff:ffff:ffff:ffff,DE
-2001:978:2300::,2001:978:2300:7fff:ffff:ffff:ffff:ffff,GB
-2001:978:2300:8000::,2001:978:29ff:ffff:ffff:ffff:ffff:ffff,DE
+2001:978:1201:8000::,2001:978:2300:2ff:ffff:ffff:ffff:ffff,DE
+2001:978:2300:300::,2001:978:2300:3ff:ffff:ffff:ffff:ffff,GB
+2001:978:2300:400::,2001:978:29ff:ffff:ffff:ffff:ffff:ffff,DE
2001:978:2a00::,2001:978:2a00:ffff:ffff:ffff:ffff:ffff,IE
-2001:978:2a01::,2001:978:3bff:ffff:ffff:ffff:ffff:ffff,DE
-2001:978:3c00::,2001:978:3c00:7fff:ffff:ffff:ffff:ffff,NL
-2001:978:3c00:8000::,2001:978:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2001:980::,2001:984:645a:ffff:ffff:ffff:ffff:ffff,NL
-2001:984:645b::,2001:984:645b:7fff:ffff:ffff:ffff:ffff,US
-2001:984:645b:8000::,2001:987:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2001:978:2a01::,2001:978:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2001:980::,2001:981:1c63:ffff:ffff:ffff:ffff:ffff,NL
+2001:981:1c64::,2001:981:1c64:7fff:ffff:ffff:ffff:ffff,CA
+2001:981:1c64:8000::,2001:987:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:988::,2001:988:ffff:ffff:ffff:ffff:ffff:ffff,FR
2001:990::,2001:990:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:998::,2001:99b:ffff:ffff:ffff:ffff:ffff:ffff,FI
@@ -3311,7 +2876,12 @@
2001:aa8::,2001:ab7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2001:ab8::,2001:ab8:ffff:ffff:ffff:ffff:ffff:ffff,FR
2001:ac0::,2001:ac7:ffff:ffff:ffff:ffff:ffff:ffff,ES
-2001:ac8::,2001:ac8:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2001:ac8::,2001:ac8:20::ffff:ffff:ffff:ffff,GB
+2001:ac8:20:1::,2001:ac8:20:1:ffff:ffff:ffff:ffff,DE
+2001:ac8:20:2::,2001:ac8:27:ffff:ffff:ffff:ffff:ffff,GB
+2001:ac8:28::,2001:ac8:28:ffff:ffff:ffff:ffff:ffff,CH
+2001:ac8:29::,2001:ac8:29:ffff:ffff:ffff:ffff:ffff,AT
+2001:ac8:2a::,2001:ac8:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:ad0::,2001:ad0:ffff:ffff:ffff:ffff:ffff:ffff,EE
2001:ad8::,2001:ae1:ffff:ffff:ffff:ffff:ffff:ffff,DE
2001:ae8::,2001:ae8:ffff:ffff:ffff:ffff:ffff:ffff,CZ
@@ -3343,13 +2913,9 @@
2001:bd0::,2001:bd0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:be0::,2001:be7:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:be8::,2001:be8:ffff:ffff:ffff:ffff:ffff:ffff,SE
-2001:bf0::,2001:bf7:10f:ffff:ffff:ffff:ffff:ffff,DE
-2001:bf7:110::,2001:bf7:110:7fff:ffff:ffff:ffff:ffff,NL
-2001:bf7:110:8000::,2001:bf7:130f:ffff:ffff:ffff:ffff:ffff,DE
+2001:bf0::,2001:bf7:130f:ffff:ffff:ffff:ffff:ffff,DE
2001:bf7:1310::,2001:bf7:1310:7fff:ffff:ffff:ffff:ffff,NL
-2001:bf7:1310:8000::,2001:bf7:131f:ffff:ffff:ffff:ffff:ffff,DE
-2001:bf7:1320::,2001:bf7:1320:7fff:ffff:ffff:ffff:ffff,NL
-2001:bf7:1320:8000::,2001:bf7:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2001:bf7:1310:8000::,2001:bf7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2001:bf8::,2001:bf8:ffff:ffff:ffff:ffff:ffff:ffff,IL
2001:c00::,2001:c00:ffff:ffff:ffff:ffff:ffff:ffff,TH
2001:c08::,2001:c08:ffff:ffff:ffff:ffff:ffff:ffff,TW
@@ -3395,9 +2961,7 @@
2001:d58::,2001:d58:ffff:ffff:ffff:ffff:ffff:ffff,TW
2001:d68::,2001:d68:ffff:ffff:ffff:ffff:ffff:ffff,ID
2001:d70::,2001:d73:ffff:ffff:ffff:ffff:ffff:ffff,JP
-2001:d80::,2001:d80:e07f:ffff:ffff:ffff:ffff:ffff,JP
-2001:d80:e080::,2001:d80:e080:7fff:ffff:ffff:ffff:ffff,CN
-2001:d80:e080:8000::,2001:d80:ffff:ffff:ffff:ffff:ffff:ffff,JP
+2001:d80::,2001:d80:ffff:ffff:ffff:ffff:ffff:ffff,JP
2001:d88::,2001:d88:ffff:ffff:ffff:ffff:ffff:ffff,JP
2001:d90::,2001:d90:ffff:ffff:ffff:ffff:ffff:ffff,JP
2001:d98::,2001:d98:ffff:ffff:ffff:ffff:ffff:ffff,SG
@@ -3690,7 +3254,6 @@
2001:df0:26c::,2001:df0:26c:ffff:ffff:ffff:ffff:ffff,SG
2001:df0:26d::,2001:df0:26f:ffff:ffff:ffff:ffff:ffff,ID
2001:df0:270::,2001:df0:270:ffff:ffff:ffff:ffff:ffff,IN
-2001:df0:271::,2001:df0:271:ffff:ffff:ffff:ffff:ffff,AU
2001:df0:272::,2001:df0:272:ffff:ffff:ffff:ffff:ffff,MY
2001:df0:273::,2001:df0:273:ffff:ffff:ffff:ffff:ffff,ID
2001:df0:274::,2001:df0:277:ffff:ffff:ffff:ffff:ffff,NP
@@ -3869,48 +3432,94 @@
2001:df0:2c00::,2001:df0:2c00:ffff:ffff:ffff:ffff:ffff,AU
2001:df0:2e00::,2001:df0:2e00:ffff:ffff:ffff:ffff:ffff,CN
2001:df0:3000::,2001:df0:3000:ffff:ffff:ffff:ffff:ffff,PH
+2001:df0:3200::,2001:df0:3200:ffff:ffff:ffff:ffff:ffff,PK
+2001:df0:3600::,2001:df0:3600:ffff:ffff:ffff:ffff:ffff,SG
2001:df0:3800::,2001:df0:3800:ffff:ffff:ffff:ffff:ffff,MY
+2001:df0:3a00::,2001:df0:3a00:ffff:ffff:ffff:ffff:ffff,IN
2001:df0:3c00::,2001:df0:3c00:ffff:ffff:ffff:ffff:ffff,AU
+2001:df0:3e00::,2001:df0:3e00:ffff:ffff:ffff:ffff:ffff,AU
2001:df0:4000::,2001:df0:4000:ffff:ffff:ffff:ffff:ffff,HK
+2001:df0:4200::,2001:df0:4200:ffff:ffff:ffff:ffff:ffff,AU
2001:df0:4400::,2001:df0:4400:ffff:ffff:ffff:ffff:ffff,ID
+2001:df0:4600::,2001:df0:4600:ffff:ffff:ffff:ffff:ffff,SG
2001:df0:4800::,2001:df0:4800:ffff:ffff:ffff:ffff:ffff,HK
+2001:df0:4a00::,2001:df0:4a00:ffff:ffff:ffff:ffff:ffff,PK
+2001:df0:4e00::,2001:df0:4e00:ffff:ffff:ffff:ffff:ffff,TW
2001:df0:5000::,2001:df0:5000:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:5200::,2001:df0:5200:ffff:ffff:ffff:ffff:ffff,IN
2001:df0:5400::,2001:df0:5400:ffff:ffff:ffff:ffff:ffff,AU
+2001:df0:5600::,2001:df0:5600:ffff:ffff:ffff:ffff:ffff,MY
2001:df0:5800::,2001:df0:5800:ffff:ffff:ffff:ffff:ffff,ID
+2001:df0:5a00::,2001:df0:5a00:ffff:ffff:ffff:ffff:ffff,BD
2001:df0:5c00::,2001:df0:5c00:ffff:ffff:ffff:ffff:ffff,BD
+2001:df0:5e00::,2001:df0:5e00:ffff:ffff:ffff:ffff:ffff,AU
2001:df0:6000::,2001:df0:6000:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:6200::,2001:df0:6200:ffff:ffff:ffff:ffff:ffff,MY
2001:df0:6400::,2001:df0:6400:ffff:ffff:ffff:ffff:ffff,SG
+2001:df0:6600::,2001:df0:6600:ffff:ffff:ffff:ffff:ffff,SG
2001:df0:6800::,2001:df0:6800:ffff:ffff:ffff:ffff:ffff,JP
+2001:df0:6a00::,2001:df0:6a00:ffff:ffff:ffff:ffff:ffff,HK
+2001:df0:6e00::,2001:df0:6e00:ffff:ffff:ffff:ffff:ffff,BD
2001:df0:7000::,2001:df0:7000:ffff:ffff:ffff:ffff:ffff,AU
+2001:df0:7200::,2001:df0:7200:ffff:ffff:ffff:ffff:ffff,HK
2001:df0:7400::,2001:df0:7400:ffff:ffff:ffff:ffff:ffff,IN
-2001:df0:7800::,2001:df0:7800:ffff:ffff:ffff:ffff:ffff,WS
+2001:df0:7600::,2001:df0:7600:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:7a00::,2001:df0:7a00:ffff:ffff:ffff:ffff:ffff,TL
2001:df0:7c00::,2001:df0:7c00:ffff:ffff:ffff:ffff:ffff,HK
+2001:df0:7e00::,2001:df0:7e00:ffff:ffff:ffff:ffff:ffff,SG
2001:df0:8000::,2001:df0:8000:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:8200::,2001:df0:8200:ffff:ffff:ffff:ffff:ffff,AU
2001:df0:8400::,2001:df0:8400:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:8600::,2001:df0:8600:ffff:ffff:ffff:ffff:ffff,IN
2001:df0:8800::,2001:df0:8800:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:8a00::,2001:df0:8a00:ffff:ffff:ffff:ffff:ffff,NP
2001:df0:8c00::,2001:df0:8c00:ffff:ffff:ffff:ffff:ffff,MY
+2001:df0:8e00::,2001:df0:8e00:ffff:ffff:ffff:ffff:ffff,HK
+2001:df0:9200::,2001:df0:9200:ffff:ffff:ffff:ffff:ffff,MM
2001:df0:9400::,2001:df0:9400:ffff:ffff:ffff:ffff:ffff,HK
+2001:df0:9600::,2001:df0:9600:ffff:ffff:ffff:ffff:ffff,IN
2001:df0:9800::,2001:df0:9800:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:9a00::,2001:df0:9a00:ffff:ffff:ffff:ffff:ffff,CN
2001:df0:9c00::,2001:df0:9c00:ffff:ffff:ffff:ffff:ffff,AU
+2001:df0:9e00::,2001:df0:9e00:ffff:ffff:ffff:ffff:ffff,ID
2001:df0:a000::,2001:df0:a000:ffff:ffff:ffff:ffff:ffff,AU
+2001:df0:a200::,2001:df0:a200:ffff:ffff:ffff:ffff:ffff,ID
2001:df0:a400::,2001:df0:a400:ffff:ffff:ffff:ffff:ffff,AU
+2001:df0:a600::,2001:df0:a600:ffff:ffff:ffff:ffff:ffff,AU
2001:df0:a800::,2001:df0:a800:ffff:ffff:ffff:ffff:ffff,AU
+2001:df0:aa00::,2001:df0:aa00:ffff:ffff:ffff:ffff:ffff,SG
2001:df0:ac00::,2001:df0:ac00:ffff:ffff:ffff:ffff:ffff,NZ
+2001:df0:ae00::,2001:df0:ae00:ffff:ffff:ffff:ffff:ffff,NZ
2001:df0:b000::,2001:df0:b000:ffff:ffff:ffff:ffff:ffff,NZ
+2001:df0:b200::,2001:df0:b200:ffff:ffff:ffff:ffff:ffff,SG
2001:df0:b400::,2001:df0:b400:ffff:ffff:ffff:ffff:ffff,JP
+2001:df0:b600::,2001:df0:b600:ffff:ffff:ffff:ffff:ffff,BD
2001:df0:b800::,2001:df0:b800:ffff:ffff:ffff:ffff:ffff,PH
+2001:df0:ba00::,2001:df0:ba00:ffff:ffff:ffff:ffff:ffff,IN
2001:df0:bc00::,2001:df0:bc00:ffff:ffff:ffff:ffff:ffff,AU
+2001:df0:be00::,2001:df0:be00:ffff:ffff:ffff:ffff:ffff,MY
2001:df0:c000::,2001:df0:c000:ffff:ffff:ffff:ffff:ffff,HK
+2001:df0:c200::,2001:df0:c200:ffff:ffff:ffff:ffff:ffff,AU
2001:df0:c400::,2001:df0:c400:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:c600::,2001:df0:c600:ffff:ffff:ffff:ffff:ffff,IN
2001:df0:c800::,2001:df0:c800:ffff:ffff:ffff:ffff:ffff,AU
+2001:df0:ca00::,2001:df0:ca00:ffff:ffff:ffff:ffff:ffff,AU
2001:df0:cc00::,2001:df0:cc00:ffff:ffff:ffff:ffff:ffff,ID
+2001:df0:ce00::,2001:df0:ce00:ffff:ffff:ffff:ffff:ffff,ID
2001:df0:d000::,2001:df0:d000:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:d200::,2001:df0:d200:ffff:ffff:ffff:ffff:ffff,MY
2001:df0:d400::,2001:df0:d400:ffff:ffff:ffff:ffff:ffff,HK
+2001:df0:d600::,2001:df0:d600:ffff:ffff:ffff:ffff:ffff,MY
2001:df0:d800::,2001:df0:d800:ffff:ffff:ffff:ffff:ffff,AU
2001:df0:dc00::,2001:df0:dc00:ffff:ffff:ffff:ffff:ffff,HK
+2001:df0:de00::,2001:df0:de00:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:e200::,2001:df0:e200:ffff:ffff:ffff:ffff:ffff,AU
2001:df0:e400::,2001:df0:e400:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:e600::,2001:df0:e600:ffff:ffff:ffff:ffff:ffff,SG
2001:df0:e800::,2001:df0:e800:ffff:ffff:ffff:ffff:ffff,AU
+2001:df0:ea00::,2001:df0:ea00:ffff:ffff:ffff:ffff:ffff,ID
2001:df0:ec00::,2001:df0:ec00:ffff:ffff:ffff:ffff:ffff,IN
+2001:df0:ee00::,2001:df0:ee00:ffff:ffff:ffff:ffff:ffff,ID
2001:df0:f000::,2001:df0:f000:ffff:ffff:ffff:ffff:ffff,HK
2001:df0:f400::,2001:df0:f401:ffff:ffff:ffff:ffff:ffff,IN
2001:df0:f800::,2001:df0:f800:ffff:ffff:ffff:ffff:ffff,ID
@@ -3934,7 +3543,6 @@
2001:df1:4800::,2001:df1:4800:ffff:ffff:ffff:ffff:ffff,IN
2001:df1:4c00::,2001:df1:4c00:ffff:ffff:ffff:ffff:ffff,HK
2001:df1:5000::,2001:df1:5000:ffff:ffff:ffff:ffff:ffff,HK
-2001:df1:5400::,2001:df1:5400:ffff:ffff:ffff:ffff:ffff,KR
2001:df1:5800::,2001:df1:5800:ffff:ffff:ffff:ffff:ffff,BD
2001:df1:5c00::,2001:df1:5c00:ffff:ffff:ffff:ffff:ffff,ID
2001:df1:6000::,2001:df1:6000:ffff:ffff:ffff:ffff:ffff,SG
@@ -3991,6 +3599,7 @@
2001:df2:3400::,2001:df2:3400:ffff:ffff:ffff:ffff:ffff,NZ
2001:df2:3800::,2001:df2:3800:ffff:ffff:ffff:ffff:ffff,TH
2001:df2:3c00::,2001:df2:3c07:ffff:ffff:ffff:ffff:ffff,AU
+2001:df2:4000::,2001:df2:4000:ffff:ffff:ffff:ffff:ffff,HK
2001:df2:4400::,2001:df2:4400:ffff:ffff:ffff:ffff:ffff,AU
2001:df2:4c00::,2001:df2:4c00:ffff:ffff:ffff:ffff:ffff,ID
2001:df2:5000::,2001:df2:5000:ffff:ffff:ffff:ffff:ffff,IN
@@ -4218,7 +3827,7 @@
2001:df5:f400::,2001:df5:f401:ffff:ffff:ffff:ffff:ffff,AU
2001:df5:f800::,2001:df5:f800:ffff:ffff:ffff:ffff:ffff,SG
2001:df5:fc00::,2001:df5:fc00:ffff:ffff:ffff:ffff:ffff,IN
-2001:df6::,2001:df6:1:ffff:ffff:ffff:ffff:ffff,IN
+2001:df6::,2001:df6:3:ffff:ffff:ffff:ffff:ffff,IN
2001:df6:400::,2001:df6:400:ffff:ffff:ffff:ffff:ffff,HK
2001:df6:800::,2001:df6:80f:ffff:ffff:ffff:ffff:ffff,HK
2001:df6:c00::,2001:df6:c00:ffff:ffff:ffff:ffff:ffff,TH
@@ -4319,7 +3928,7 @@
2001:df7:9800::,2001:df7:9800:ffff:ffff:ffff:ffff:ffff,NZ
2001:df7:9c00::,2001:df7:9c00:ffff:ffff:ffff:ffff:ffff,AU
2001:df7:a000::,2001:df7:a000:ffff:ffff:ffff:ffff:ffff,AU
-2001:df7:a400::,2001:df7:a400:ffff:ffff:ffff:ffff:ffff,SG
+2001:df7:a400::,2001:df7:a401:ffff:ffff:ffff:ffff:ffff,SG
2001:df7:a800::,2001:df7:a800:ffff:ffff:ffff:ffff:ffff,JP
2001:df7:ac00::,2001:df7:ac00:ffff:ffff:ffff:ffff:ffff,AU
2001:df7:b000::,2001:df7:b000:ffff:ffff:ffff:ffff:ffff,IN
@@ -4343,7 +3952,7 @@
2001:df7:f800::,2001:df7:f800:ffff:ffff:ffff:ffff:ffff,IN
2001:df7:fc00::,2001:df7:fc00:ffff:ffff:ffff:ffff:ffff,SG
2001:df8::,2001:df8:ffff:ffff:ffff:ffff:ffff:ffff,US
-2001:df9::,2001:df9:ffff:ffff:ffff:ffff:ffff:ffff,ID
+2001:df9::,2001:df9:ffff:ffff:ffff:ffff:ffff:ffff,NZ
2001:dfa::,2001:dfa:ffff:ffff:ffff:ffff:ffff:ffff,JP
2001:e00::,2001:e01:ffff:ffff:ffff:ffff:ffff:ffff,ID
2001:e08::,2001:e08:ffff:ffff:ffff:ffff:ffff:ffff,CN
@@ -4510,9 +4119,7 @@
2001:146a::,2001:146a::7fff:ffff:ffff:ffff:ffff,RU
2001:146a:0:8000::,2001:146a:81:ffff:ffff:ffff:ffff:ffff,CZ
2001:146a:82::,2001:146a:82:7fff:ffff:ffff:ffff:ffff,RU
-2001:146a:82:8000::,2001:146a:98:ffff:ffff:ffff:ffff:ffff,CZ
-2001:146a:99::,2001:146a:99:7fff:ffff:ffff:ffff:ffff,RU
-2001:146a:99:8000::,2001:146f:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2001:146a:82:8000::,2001:146f:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2001:1470::,2001:1477:ffff:ffff:ffff:ffff:ffff:ffff,SI
2001:1478::,2001:1478:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:1488::,2001:1488:ffff:ffff:ffff:ffff:ffff:ffff,CZ
@@ -4549,17 +4156,7 @@
2001:15a8::,2001:15a8:ffff:ffff:ffff:ffff:ffff:ffff,IT
2001:15b0::,2001:15b0:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:15b8::,2001:15b8:ffff:ffff:ffff:ffff:ffff:ffff,NL
-2001:15c0::,2001:15c0:65ff:7fff:ffff:ffff:ffff:ffff,SI
-2001:15c0:65ff:8000::,2001:15c0:65ff:ffff:ffff:ffff:ffff:ffff,AT
-2001:15c0:6600::,2001:15c0:665e:ffff:ffff:ffff:ffff:ffff,SI
-2001:15c0:665f::,2001:15c0:665f:7fff:ffff:ffff:ffff:ffff,AT
-2001:15c0:665f:8000::,2001:15c0:66a2:ffff:ffff:ffff:ffff:ffff,SI
-2001:15c0:66a3::,2001:15c0:66a3:7fff:ffff:ffff:ffff:ffff,RO
-2001:15c0:66a3:8000::,2001:15c0:67cc:ffff:ffff:ffff:ffff:ffff,SI
-2001:15c0:67cd::,2001:15c0:67cd:7fff:ffff:ffff:ffff:ffff,AT
-2001:15c0:67cd:8000::,2001:15c0:67d0:ffff:ffff:ffff:ffff:ffff,SI
-2001:15c0:67d1::,2001:15c0:67d1:7fff:ffff:ffff:ffff:ffff,AT
-2001:15c0:67d1:8000::,2001:15c7:ffff:ffff:ffff:ffff:ffff:ffff,SI
+2001:15c0::,2001:15c7:ffff:ffff:ffff:ffff:ffff:ffff,SI
2001:15c8::,2001:15c8:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:15d8::,2001:15df:ffff:ffff:ffff:ffff:ffff:ffff,PT
2001:15e0::,2001:15e0:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -4584,37 +4181,17 @@
2001:1688::,2001:168f:ffff:ffff:ffff:ffff:ffff:ffff,SI
2001:1690::,2001:1690:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:1698::,2001:1698:ffff:ffff:ffff:ffff:ffff:ffff,LU
-2001:16a0::,2001:16a2:1d14:7fff:ffff:ffff:ffff:ffff,SA
-2001:16a2:1d14:8000::,2001:16a2:1d14:ffff:ffff:ffff:ffff:ffff,US
-2001:16a2:1d15::,2001:16a2:a5bf:7fff:ffff:ffff:ffff:ffff,SA
-2001:16a2:a5bf:8000::,2001:16a2:a5bf:ffff:ffff:ffff:ffff:ffff,GB
-2001:16a2:a5c0::,2001:16a7:ffff:ffff:ffff:ffff:ffff:ffff,SA
+2001:16a0::,2001:16a7:ffff:ffff:ffff:ffff:ffff:ffff,SA
2001:16a8::,2001:16a8:ffff:ffff:ffff:ffff:ffff:ffff,IT
2001:16b0::,2001:16b0:ffff:ffff:ffff:ffff:ffff:ffff,PL
2001:16b8::,2001:16b8:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2001:16c0::,2001:16c0:1233:ffff:ffff:ffff:ffff:ffff,IR
-2001:16c0:1234::,2001:16c0:1234:7fff:ffff:ffff:ffff:ffff,AU
-2001:16c0:1234:8000::,2001:16c7:ffff:ffff:ffff:ffff:ffff:ffff,IR
+2001:16c0::,2001:16c7:ffff:ffff:ffff:ffff:ffff:ffff,IR
2001:16d0::,2001:16d0:ffff:ffff:ffff:ffff:ffff:ffff,IT
-2001:16d8::,2001:16d8:dcff:ffff:ffff:ffff:ffff:ffff,SE
-2001:16d8:dd00::,2001:16d8:dd00:ffff:ffff:ffff:ffff:ffff,DK
-2001:16d8:dd01::,2001:16d8:dd72:ffff:ffff:ffff:ffff:ffff,SE
-2001:16d8:dd73::,2001:16d8:dd73:7fff:ffff:ffff:ffff:ffff,DK
-2001:16d8:dd73:8000::,2001:16d8:dd84:ffff:ffff:ffff:ffff:ffff,SE
-2001:16d8:dd85::,2001:16d8:dd85:7fff:ffff:ffff:ffff:ffff,DK
-2001:16d8:dd85:8000::,2001:16d8:dda3:ffff:ffff:ffff:ffff:ffff,SE
+2001:16d8::,2001:16d8:dd43:ffff:ffff:ffff:ffff:ffff,SE
+2001:16d8:dd44::,2001:16d8:dd44:7fff:ffff:ffff:ffff:ffff,DK
+2001:16d8:dd44:8000::,2001:16d8:dda3:ffff:ffff:ffff:ffff:ffff,SE
2001:16d8:dda4::,2001:16d8:dda4:7fff:ffff:ffff:ffff:ffff,DK
-2001:16d8:dda4:8000::,2001:16d8:ddc1:ffff:ffff:ffff:ffff:ffff,SE
-2001:16d8:ddc2::,2001:16d8:ddc2:7fff:ffff:ffff:ffff:ffff,DK
-2001:16d8:ddc2:8000::,2001:16d8:ddd6:ffff:ffff:ffff:ffff:ffff,SE
-2001:16d8:ddd7::,2001:16d8:ddd7:7fff:ffff:ffff:ffff:ffff,DK
-2001:16d8:ddd7:8000::,2001:16d8:ee00:7fff:ffff:ffff:ffff:ffff,SE
-2001:16d8:ee00:8000::,2001:16d8:ee00:ffff:ffff:ffff:ffff:ffff,NO
-2001:16d8:ee01::,2001:16d8:ee8f:7fff:ffff:ffff:ffff:ffff,SE
-2001:16d8:ee8f:8000::,2001:16d8:ee8f:ffff:ffff:ffff:ffff:ffff,NO
-2001:16d8:ee90::,2001:16d8:eeca:ffff:ffff:ffff:ffff:ffff,SE
-2001:16d8:eecb::,2001:16d8:eecb:7fff:ffff:ffff:ffff:ffff,NO
-2001:16d8:eecb:8000::,2001:16d8:ffff:ffff:ffff:ffff:ffff:ffff,SE
+2001:16d8:dda4:8000::,2001:16d8:ffff:ffff:ffff:ffff:ffff:ffff,SE
2001:16e0::,2001:16e7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2001:16e8::,2001:16e8:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:16f0::,2001:16f7:ffff:ffff:ffff:ffff:ffff:ffff,DE
@@ -4667,9 +4244,7 @@
2001:1960::,2001:1960:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:1968::,2001:1968:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:1970::,2001:1970:ffff:ffff:ffff:ffff:ffff:ffff,CA
-2001:1978::,2001:1978:10ff:ffff:ffff:ffff:ffff:ffff,US
-2001:1978:1100::,2001:1978:1100:7fff:ffff:ffff:ffff:ffff,CA
-2001:1978:1100:8000::,2001:1978:ffff:ffff:ffff:ffff:ffff:ffff,US
+2001:1978::,2001:1978:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:1980::,2001:1980:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:1988::,2001:1988:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:1990::,2001:1990:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -4689,12 +4264,12 @@
2001:19f0:5001::,2001:19f0:5800:7fff:ffff:ffff:ffff:ffff,US
2001:19f0:5800:8000::,2001:19f0:5800:ffff:ffff:ffff:ffff:ffff,AU
2001:19f0:5801::,2001:19f0:67ff:ffff:ffff:ffff:ffff:ffff,US
-2001:19f0:6800::,2001:19f0:6800:87ff:ffff:ffff:ffff:ffff,FR
-2001:19f0:6800:8800::,2001:19f0:6c00:7fff:ffff:ffff:ffff:ffff,US
+2001:19f0:6800::,2001:19f0:6800:ffff:ffff:ffff:ffff:ffff,FR
+2001:19f0:6801::,2001:19f0:6c00:7fff:ffff:ffff:ffff:ffff,US
2001:19f0:6c00:8000::,2001:19f0:6c00:ffff:ffff:ffff:ffff:ffff,DE
-2001:19f0:6c01::,2001:19f0:7000:9bc8:ffff:ffff:ffff:ffff,US
-2001:19f0:7000:9bc9::,2001:19f0:7000:9bc9:ffff:ffff:ffff:ffff,JP
-2001:19f0:7000:9bca::,2001:19f0:7400:7fff:ffff:ffff:ffff:ffff,US
+2001:19f0:6c01::,2001:19f0:7000:7fff:ffff:ffff:ffff:ffff,US
+2001:19f0:7000:8000::,2001:19f0:7000:ffff:ffff:ffff:ffff:ffff,JP
+2001:19f0:7001::,2001:19f0:7400:7fff:ffff:ffff:ffff:ffff,US
2001:19f0:7400:8000::,2001:19f0:7400:ffff:ffff:ffff:ffff:ffff,GB
2001:19f0:7401::,2001:19f0:7401:7fff:ffff:ffff:ffff:ffff,US
2001:19f0:7401:8000::,2001:19f0:7401:ffff:ffff:ffff:ffff:ffff,GB
@@ -4765,111 +4340,58 @@
2001:1bf0::,2001:1bf7:ffff:ffff:ffff:ffff:ffff:ffff,EE
2001:1bf8::,2001:1bf8:ffff:ffff:ffff:ffff:ffff:ffff,LV
2001:1c00::,2001:1dff:ffff:ffff:ffff:ffff:ffff:ffff,NL
-2001:2002:2f8::,2001:2002:2f8:7fff:ffff:ffff:ffff:ffff,SE
-2001:2002:2f9:8000::,2001:2002:2f9:ffff:ffff:ffff:ffff:ffff,SE
+2001:2002:2f8::,2001:2002:2f8:ffff:ffff:ffff:ffff:ffff,SE
2001:2002:3e14:8000::,2001:2002:3e14:ffff:ffff:ffff:ffff:ffff,SE
2001:2002:4e42::,2001:2002:4e42:7fff:ffff:ffff:ffff:ffff,SE
-2001:2002:4e43::,2001:2002:4e44:7fff:ffff:ffff:ffff:ffff,SE
-2001:2002:4e45::,2001:2002:4e45:7fff:ffff:ffff:ffff:ffff,SE
-2001:2002:4e48::,2001:2002:4e48:afff:ffff:ffff:ffff:ffff,SE
-2001:2002:4e49::,2001:2002:4e49:ffff:ffff:ffff:ffff:ffff,SE
-2001:2002:51e0::,2001:2002:51e1:7fff:ffff:ffff:ffff:ffff,SE
+2001:2002:4e44:8000::,2001:2002:4e44:bfff:ffff:ffff:ffff:ffff,SE
+2001:2002:4e45::,2001:2002:4e45:bfff:ffff:ffff:ffff:ffff,SE
+2001:2002:4e46::,2001:2002:4e46:7fff:ffff:ffff:ffff:ffff,SE
+2001:2002:4e48:4000::,2001:2002:4e48:7fff:ffff:ffff:ffff:ffff,SE
+2001:2002:4e49::,2001:2002:4e49:3fff:ffff:ffff:ffff:ffff,SE
+2001:2002:4e49:6000::,2001:2002:4e49:ffff:ffff:ffff:ffff:ffff,SE
+2001:2002:51e0::,2001:2002:51e0:ffff:ffff:ffff:ffff:ffff,SE
2001:2002:51e2::,2001:2002:51e2:7fff:ffff:ffff:ffff:ffff,SE
-2001:2002:51e3::,2001:2002:51e5:7fff:ffff:ffff:ffff:ffff,SE
-2001:2002:51e6::,2001:2002:51e6:7fff:ffff:ffff:ffff:ffff,SE
-2001:2002:51e7::,2001:2002:51e9:ffff:ffff:ffff:ffff:ffff,SE
-2001:2002:51eb::,2001:2002:51eb:ffff:ffff:ffff:ffff:ffff,SE
-2001:2002:51ec:8000::,2001:2002:51ec:ffff:ffff:ffff:ffff:ffff,SE
+2001:2002:51e3::,2001:2002:51e3:7fff:ffff:ffff:ffff:ffff,SE
+2001:2002:51e5::,2001:2002:51e5:7fff:ffff:ffff:ffff:ffff,SE
+2001:2002:51e6::,2001:2002:51e6:ffff:ffff:ffff:ffff:ffff,SE
+2001:2002:51e7:8000::,2001:2002:51e8:7fff:ffff:ffff:ffff:ffff,SE
+2001:2002:51e9::,2001:2002:51ec:7fff:ffff:ffff:ffff:ffff,SE
2001:2002:51ed:8000::,2001:2002:51ed:ffff:ffff:ffff:ffff:ffff,SE
2001:2002:5ae0::,2001:2002:5ae1:7fff:ffff:ffff:ffff:ffff,SE
-2001:2002:5ae2::,2001:2002:5ae3:ffff:ffff:ffff:ffff:ffff,SE
-2001:2002:5ae4:8000::,2001:2002:5ae4:ffff:ffff:ffff:ffff:ffff,SE
-2001:2002:5ae5:8000::,2001:2002:5ae6:ffff:ffff:ffff:ffff:ffff,SE
-2001:2002:c2ec:8000::,2001:2002:c2ec:ffff:ffff:ffff:ffff:ffff,SE
-2001:2002:c343:8000::,2001:2002:c343:ffff:ffff:ffff:ffff:ffff,SE
-2001:2002:c3c6::,2001:2002:c3c6:7fff:ffff:ffff:ffff:ffff,SE
-2001:2002:c3fc::,2001:2002:c3fc:7fff:ffff:ffff:ffff:ffff,SE
-2001:2002:d541::,2001:2002:d541:ffff:ffff:ffff:ffff:ffff,SE
-2001:2002:d543::,2001:2002:d543:ffff:ffff:ffff:ffff:ffff,SE
-2001:2002:d9d0::,2001:2002:d9d0:7fff:ffff:ffff:ffff:ffff,SE
-2001:2002:d9d2::,2001:2002:d9d3:ffff:ffff:ffff:ffff:ffff,SE
+2001:2002:5ae2:8000::,2001:2002:5ae3:7fff:ffff:ffff:ffff:ffff,SE
+2001:2002:5ae3:a000::,2001:2002:5ae3:ffff:ffff:ffff:ffff:ffff,SE
+2001:2002:5ae5:8000::,2001:2002:5ae6:7fff:ffff:ffff:ffff:ffff,SE
+2001:2002:5ae7:8000::,2001:2002:5ae7:ffff:ffff:ffff:ffff:ffff,SE
+2001:2002:d4b5:8000::,2001:2002:d4b5:ffff:ffff:ffff:ffff:ffff,SE
+2001:2002:d540::,2001:2002:d540:ffff:ffff:ffff:ffff:ffff,SE
+2001:2002:d541:8000::,2001:2002:d541:ffff:ffff:ffff:ffff:ffff,SE
+2001:2002:d542:1000::,2001:2002:d542:1fff:ffff:ffff:ffff:ffff,SE
+2001:2002:d543:4000::,2001:2002:d543:7fff:ffff:ffff:ffff:ffff,SE
+2001:2002:d9d0:4000::,2001:2002:d9d0:7fff:ffff:ffff:ffff:ffff,SE
+2001:2002:d9d2:8000::,2001:2002:d9d2:ffff:ffff:ffff:ffff:ffff,SE
+2001:2002:d9d3:8000::,2001:2002:d9d3:ffff:ffff:ffff:ffff:ffff,SE
2001:2002:d9d4:8000::,2001:2002:d9d4:ffff:ffff:ffff:ffff:ffff,SE
-2001:2002:d9d7::,2001:2002:d9d7:ffff:ffff:ffff:ffff:ffff,SE
-2001:2003:50dc::,2001:2003:50df:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:54f8:4000::,2001:2003:54fb:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:58c0::,2001:2003:58c1:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:58c3::,2001:2003:58c3:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f042:8000::,2001:2003:f042:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f05e:8000::,2001:2003:f05e:ffff:ffff:ffff:ffff:ffff,FI
+2001:2003:50dc::,2001:2003:50dc:7fff:ffff:ffff:ffff:ffff,FI
+2001:2003:54f9::,2001:2003:54f9:7fff:ffff:ffff:ffff:ffff,FI
2001:2003:f072:8000::,2001:2003:f072:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f0ab::,2001:2003:f0ab:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f0b6::,2001:2003:f0b6:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f0e5:8000::,2001:2003:f0e5:ffff:ffff:ffff:ffff:ffff,FI
2001:2003:f13d:8000::,2001:2003:f13d:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f19b::,2001:2003:f19b:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f19c:8000::,2001:2003:f19c:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f21a::,2001:2003:f21a:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f22c::,2001:2003:f22c:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f237::,2001:2003:f237:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f250:8000::,2001:2003:f250:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f2c3:8000::,2001:2003:f2c3:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f36f::,2001:2003:f36f:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f386::,2001:2003:f386:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f388::,2001:2003:f388:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f3be:8000::,2001:2003:f3be:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f441::,2001:2003:f441:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f447::,2001:2003:f447:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f44a:8000::,2001:2003:f44a:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f45a::,2001:2003:f45a:7fff:ffff:ffff:ffff:ffff,FI
2001:2003:f468:8000::,2001:2003:f468:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f46d:8000::,2001:2003:f46d:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f476::,2001:2003:f476:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f48c:8000::,2001:2003:f48c:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f4a6:8000::,2001:2003:f4a6:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f543::,2001:2003:f543:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f5dc::,2001:2003:f5dc:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f617::,2001:2003:f617:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f620::,2001:2003:f620:7fff:ffff:ffff:ffff:ffff,FI
2001:2003:f639::,2001:2003:f639:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f662::,2001:2003:f662:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f67c:8000::,2001:2003:f67c:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f6a9:8000::,2001:2003:f6a9:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f6ba::,2001:2003:f6ba:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f6da::,2001:2003:f6da:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f72a::,2001:2003:f72a:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f764::,2001:2003:f764:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f798:8000::,2001:2003:f798:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f7a3:8000::,2001:2003:f7a3:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f802::,2001:2003:f802:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f824::,2001:2003:f824:7fff:ffff:ffff:ffff:ffff,FI
2001:2003:f825:8000::,2001:2003:f825:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f839::,2001:2003:f839:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f83c::,2001:2003:f83c:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:f882:8000::,2001:2003:f882:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f8d4::,2001:2003:f8d4:7fff:ffff:ffff:ffff:ffff,FI
2001:2003:f8f6:8000::,2001:2003:f8f6:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f8f9:8000::,2001:2003:f8f9:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f969:8000::,2001:2003:f969:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f9e7:8000::,2001:2003:f9e7:ffff:ffff:ffff:ffff:ffff,FI
-2001:2003:f9f1::,2001:2003:f9f1:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:fa67::,2001:2003:fa67:7fff:ffff:ffff:ffff:ffff,FI
-2001:2003:fa6f:8000::,2001:2003:fa6f:ffff:ffff:ffff:ffff:ffff,FI
-2001:2010:d001::,2001:2010:d001:7fff:ffff:ffff:ffff:ffff,DK
-2001:2010:d002::,2001:2010:d007:7fff:ffff:ffff:ffff:ffff,DK
-2001:2010:d009::,2001:2010:d00a:ffff:ffff:ffff:ffff:ffff,DK
-2001:2010:d00b:8000::,2001:2010:d00c:7fff:ffff:ffff:ffff:ffff,DK
-2001:2010:d00d::,2001:2010:d00d:7fff:ffff:ffff:ffff:ffff,DK
+2001:2010:d002::,2001:2010:d002:7fff:ffff:ffff:ffff:ffff,DK
+2001:2010:d003::,2001:2010:d004:7fff:ffff:ffff:ffff:ffff,DK
+2001:2010:d007::,2001:2010:d007:7fff:ffff:ffff:ffff:ffff,DK
+2001:2010:d00a:8000::,2001:2010:d00a:ffff:ffff:ffff:ffff:ffff,DK
+2001:2010:d00c::,2001:2010:d00c:7fff:ffff:ffff:ffff:ffff,DK
2001:2010:d00e::,2001:2010:d00e:7fff:ffff:ffff:ffff:ffff,DK
-2001:2010:d00f:8000::,2001:2010:d00f:ffff:ffff:ffff:ffff:ffff,DK
-2001:2010:d012:8000::,2001:2010:d014:ffff:ffff:ffff:ffff:ffff,DK
-2001:2010:d01a:8000::,2001:2010:d01c:ffff:ffff:ffff:ffff:ffff,DK
-2001:2010:d01f:8000::,2001:2010:d01f:ffff:ffff:ffff:ffff:ffff,DK
-2001:2010:d023:8000::,2001:2010:d023:ffff:ffff:ffff:ffff:ffff,DK
-2001:2010:d029::,2001:2010:d029:7fff:ffff:ffff:ffff:ffff,DK
-2001:2010:d038:8000::,2001:2010:d038:ffff:ffff:ffff:ffff:ffff,DK
-2001:2010:d039:8000::,2001:2010:d03a:ffff:ffff:ffff:ffff:ffff,DK
+2001:2010:d01c:8000::,2001:2010:d01c:ffff:ffff:ffff:ffff:ffff,DK
2001:2010:d04e:8000::,2001:2010:d04e:ffff:ffff:ffff:ffff:ffff,DK
+2001:2011:c002::,2001:2011:c002:ffff:ffff:ffff:ffff:ffff,DK
+2001:2012:3ec6:8000::,2001:2012:3ec6:ffff:ffff:ffff:ffff:ffff,DK
2001:2040:4b::,2001:2040:4b:ffff:ffff:ffff:ffff:ffff,SE
+2001:2040:c006::,2001:2040:c006:ffff:ffff:ffff:ffff:ffff,SE
+2001:2060:bffb::,2001:2060:bffb:ffff:ffff:ffff:ffff:ffff,FI
2001:4000::,2001:4000:ffff:ffff:ffff:ffff:ffff:ffff,FR
2001:4010::,2001:4010:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:4018::,2001:4018:ffff:ffff:ffff:ffff:ffff:ffff,NL
@@ -4913,7 +4435,7 @@
2001:4168::,2001:4168:ffff:ffff:ffff:ffff:ffff:ffff,CH
2001:4170::,2001:4170:ffff:ffff:ffff:ffff:ffff:ffff,RS
2001:4178::,2001:4180:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2001:4188::,2001:4188:ffff:ffff:ffff:ffff:ffff:ffff,IR
+2001:4188::,2001:418f:ffff:ffff:ffff:ffff:ffff:ffff,IR
2001:4190::,2001:4190:ffff:ffff:ffff:ffff:ffff:ffff,PL
2001:4198::,2001:4198:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:41a0::,2001:41a0:ffff:ffff:ffff:ffff:ffff:ffff,IT
@@ -4923,9 +4445,11 @@
2001:41c0::,2001:41cf:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:41d0::,2001:41d0:2:4dbd:ffff:ffff:ffff:ffff,FR
2001:41d0:2:4dbe::,2001:41d0:2:4dbe:ffff:ffff:ffff:ffff,CZ
-2001:41d0:2:4dbf::,2001:41d0:a:5dff:ffff:ffff:ffff:ffff,FR
-2001:41d0:a:5e00::,2001:41d0:a:5fff:ffff:ffff:ffff:ffff,ES
-2001:41d0:a:6000::,2001:41d0:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2001:41d0:2:4dbf::,2001:41d0:a:7e08:ffff:ffff:ffff:ffff,FR
+2001:41d0:a:7e09::,2001:41d0:a:7e09:ffff:ffff:ffff:ffff,PT
+2001:41d0:a:7e0a::,2001:41d0:129:9bff:ffff:ffff:ffff:ffff,FR
+2001:41d0:129:9c00::,2001:41d0:129:9cff:ffff:ffff:ffff:ffff,NL
+2001:41d0:129:9d00::,2001:41d0:ffff:ffff:ffff:ffff:ffff:ffff,FR
2001:41d8::,2001:41d8:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2001:41e0::,2001:41e0:ffff:ffff:ffff:ffff:ffff:ffff,CH
2001:41e8::,2001:41e8:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -5017,7 +4541,6 @@
2001:43f8:1f0::,2001:43f8:1f5:ffff:ffff:ffff:ffff:ffff,ZA
2001:43f8:200::,2001:43f8:200:ffff:ffff:ffff:ffff:ffff,KE
2001:43f8:210::,2001:43f8:210:ffff:ffff:ffff:ffff:ffff,LS
-2001:43f8:220::,2001:43f8:220:ffff:ffff:ffff:ffff:ffff,MU
2001:43f8:230::,2001:43f8:230:ffff:ffff:ffff:ffff:ffff,ZA
2001:43f8:240::,2001:43f8:241:ffff:ffff:ffff:ffff:ffff,GH
2001:43f8:250::,2001:43f8:250:ffff:ffff:ffff:ffff:ffff,KE
@@ -5105,6 +4628,7 @@
2001:43f8:af0::,2001:43f8:af1:ffff:ffff:ffff:ffff:ffff,BJ
2001:43f8:b00::,2001:43f8:b00:ffff:ffff:ffff:ffff:ffff,KE
2001:43f8:b10::,2001:43f8:b10:ffff:ffff:ffff:ffff:ffff,NG
+2001:43f8:b20::,2001:43f8:b20:ffff:ffff:ffff:ffff:ffff,CI
2001:4400::,2001:4403:ffff:ffff:ffff:ffff:ffff:ffff,NZ
2001:4408::,2001:4408:ffff:ffff:ffff:ffff:ffff:ffff,IN
2001:4410::,2001:4410:ffff:ffff:ffff:ffff:ffff:ffff,NZ
@@ -5137,28 +4661,18 @@
2001:4538::,2001:4538:ffff:ffff:ffff:ffff:ffff:ffff,PK
2001:4540::,2001:455f:ffff:ffff:ffff:ffff:ffff:ffff,TW
2001:4580::,2001:45bf:ffff:ffff:ffff:ffff:ffff:ffff,TW
-2001:4600::,2001:4641:eac9:ffff:ffff:ffff:ffff:ffff,NO
-2001:4641:eaca::,2001:4641:eaca:7fff:ffff:ffff:ffff:ffff,DE
-2001:4641:eaca:8000::,2001:46ff:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2001:4600::,2001:46ff:ffff:ffff:ffff:ffff:ffff:ffff,NO
2001:4800::,2001:4808:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4810::,2001:4810:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4818::,2001:4818:ffff:ffff:ffff:ffff:ffff:ffff,CA
2001:4828::,2001:4828:ffff:ffff:ffff:ffff:ffff:ffff,US
-2001:4830::,2001:4830:1100:81ff:ffff:ffff:ffff:ffff,US
-2001:4830:1100:8200::,2001:4830:1100:82ff:ffff:ffff:ffff:ffff,CA
-2001:4830:1100:8300::,2001:4830:1200:7fff:ffff:ffff:ffff:ffff,US
+2001:4830::,2001:4830:1200:7fff:ffff:ffff:ffff:ffff,US
2001:4830:1200:8000::,2001:4830:1200:ffff:ffff:ffff:ffff:ffff,AU
2001:4830:1201::,2001:4830:1207:ffff:ffff:ffff:ffff:ffff,US
2001:4830:1208::,2001:4830:1208:7fff:ffff:ffff:ffff:ffff,AU
-2001:4830:1208:8000::,2001:4830:1212:ffff:ffff:ffff:ffff:ffff,US
-2001:4830:1213::,2001:4830:1213:7fff:ffff:ffff:ffff:ffff,AU
-2001:4830:1213:8000::,2001:4830:1216:ffff:ffff:ffff:ffff:ffff,US
-2001:4830:1217::,2001:4830:1217:7fff:ffff:ffff:ffff:ffff,AU
-2001:4830:1217:8000::,2001:4830:121d:ffff:ffff:ffff:ffff:ffff,US
+2001:4830:1208:8000::,2001:4830:121d:ffff:ffff:ffff:ffff:ffff,US
2001:4830:121e::,2001:4830:121e:ffff:ffff:ffff:ffff:ffff,AU
-2001:4830:121f::,2001:4830:1301:ffff:ffff:ffff:ffff:ffff,US
-2001:4830:1302::,2001:4830:1302:7fff:ffff:ffff:ffff:ffff,AU
-2001:4830:1302:8000::,2001:4830:600f:ffff:ffff:ffff:ffff:ffff,US
+2001:4830:121f::,2001:4830:600f:ffff:ffff:ffff:ffff:ffff,US
2001:4830:6010::,2001:4830:601f:ffff:ffff:ffff:ffff:ffff,GB
2001:4830:6020::,2001:4830:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4838::,2001:4838:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -5169,28 +4683,16 @@
2001:4860::,2001:4860:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4868::,2001:4868:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4870::,2001:4871:ffff:ffff:ffff:ffff:ffff:ffff,US
-2001:4878::,2001:4878:8203:ffff:ffff:ffff:ffff:ffff,US
-2001:4878:8204::,2001:4878:8204:7fff:ffff:ffff:ffff:ffff,DE
-2001:4878:8204:8000::,2001:4878:8216:ffff:ffff:ffff:ffff:ffff,US
+2001:4878::,2001:4878:8216:ffff:ffff:ffff:ffff:ffff,US
2001:4878:8217::,2001:4878:8217:7fff:ffff:ffff:ffff:ffff,ES
-2001:4878:8217:8000::,2001:4878:821f:ffff:ffff:ffff:ffff:ffff,US
-2001:4878:8220::,2001:4878:8220:7fff:ffff:ffff:ffff:ffff,SE
-2001:4878:8220:8000::,2001:4878:8224:ffff:ffff:ffff:ffff:ffff,US
+2001:4878:8217:8000::,2001:4878:8224:ffff:ffff:ffff:ffff:ffff,US
2001:4878:8225::,2001:4878:8225:7fff:ffff:ffff:ffff:ffff,PL
2001:4878:8225:8000::,2001:4878:8227:ffff:ffff:ffff:ffff:ffff,US
2001:4878:8228::,2001:4878:8228:7fff:ffff:ffff:ffff:ffff,IL
-2001:4878:8228:8000::,2001:4878:8233:ffff:ffff:ffff:ffff:ffff,US
-2001:4878:8234::,2001:4878:8234:7fff:ffff:ffff:ffff:ffff,GB
-2001:4878:8234:8000::,2001:4878:8304:ffff:ffff:ffff:ffff:ffff,US
-2001:4878:8305::,2001:4878:8305:7fff:ffff:ffff:ffff:ffff,IN
-2001:4878:8305:8000::,2001:4878:8321:ffff:ffff:ffff:ffff:ffff,US
-2001:4878:8322::,2001:4878:8322:7fff:ffff:ffff:ffff:ffff,JP
-2001:4878:8322:8000::,2001:4878:ffff:ffff:ffff:ffff:ffff:ffff,US
+2001:4878:8228:8000::,2001:4878:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4888::,2001:4888:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4890::,2001:4890:ffff:ffff:ffff:ffff:ffff:ffff,US
-2001:4898::,2001:4898:de07:ffff:ffff:ffff:ffff:ffff,US
-2001:4898:de08::,2001:4898:de08:7fff:ffff:ffff:ffff:ffff,BR
-2001:4898:de08:8000::,2001:489a:ffff:ffff:ffff:ffff:ffff:ffff,US
+2001:4898::,2001:489a:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:48a0::,2001:48a0:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:48a8::,2001:48a8:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:48b0::,2001:48b0:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -5221,13 +4723,9 @@
2001:4960::,2001:4960:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4968::,2001:4968:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4970::,2001:4970:ffff:ffff:ffff:ffff:ffff:ffff,US
-2001:4978::,2001:4978:1e2:ffff:ffff:ffff:ffff:ffff,US
-2001:4978:1e3::,2001:4978:1e3:7fff:ffff:ffff:ffff:ffff,CA
-2001:4978:1e3:8000::,2001:4978:2d0:ffff:ffff:ffff:ffff:ffff,US
-2001:4978:2d1::,2001:4978:2d1:7fff:ffff:ffff:ffff:ffff,CA
-2001:4978:2d1:8000::,2001:4978:305:ffff:ffff:ffff:ffff:ffff,US
-2001:4978:306::,2001:4978:306:7fff:ffff:ffff:ffff:ffff,CA
-2001:4978:306:8000::,2001:4978:ffff:ffff:ffff:ffff:ffff:ffff,US
+2001:4978::,2001:4978:f:7fff:ffff:ffff:ffff:ffff,US
+2001:4978:f:8000::,2001:4978:f:ffff:ffff:ffff:ffff:ffff,CA
+2001:4978:10::,2001:4978:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4980::,2001:4980:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4988::,2001:4988:ffff:ffff:ffff:ffff:ffff:ffff,US
2001:4990::,2001:4990:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -5278,14 +4776,14 @@
2001:4bf0::,2001:4bf0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:4bf8::,2001:4bf8:ffff:ffff:ffff:ffff:ffff:ffff,CH
2001:4c00::,2001:4c07:ffff:ffff:ffff:ffff:ffff:ffff,IT
-2001:4c08::,2001:4c08:2000:ffff:ffff:ffff:ffff:ffff,GB
-2001:4c08:2001::,2001:4c08:2001:7fff:ffff:ffff:ffff:ffff,NL
-2001:4c08:2001:8000::,2001:4c08:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2001:4c08::,2001:4c08:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:4c10::,2001:4c10:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:4c20::,2001:4c20:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:4c28::,2001:4c28::ffff:ffff:ffff:ffff:ffff,NO
2001:4c28:1::,2001:4c28:1:7fff:ffff:ffff:ffff:ffff,RU
-2001:4c28:1:8000::,2001:4c28:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2001:4c28:1:8000::,2001:4c28:3000:5ff:ffff:ffff:ffff:ffff,NO
+2001:4c28:3000:600::,2001:4c28:3000:6ff:ffff:ffff:ffff:ffff,US
+2001:4c28:3000:700::,2001:4c28:ffff:ffff:ffff:ffff:ffff:ffff,NO
2001:4c30::,2001:4c30:ffff:ffff:ffff:ffff:ffff:ffff,PL
2001:4c38::,2001:4c3f:ffff:ffff:ffff:ffff:ffff:ffff,NL
2001:4c40::,2001:4c40:ffff:ffff:ffff:ffff:ffff:ffff,BE
@@ -5325,9 +4823,7 @@
2001:4d70::,2001:4d70:ffff:ffff:ffff:ffff:ffff:ffff,BG
2001:4d78::,2001:4d78:ffff:ffff:ffff:ffff:ffff:ffff,GB
2001:4d80::,2001:4d80:ffff:ffff:ffff:ffff:ffff:ffff,RO
-2001:4d88::,2001:4d88:1010:ffff:ffff:ffff:ffff:ffff,DE
-2001:4d88:1011::,2001:4d88:1011:7fff:ffff:ffff:ffff:ffff,ZA
-2001:4d88:1011:8000::,2001:4d88:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2001:4d88::,2001:4d88:ffff:ffff:ffff:ffff:ffff:ffff,DE
2001:4d90::,2001:4d90:ffff:ffff:ffff:ffff:ffff:ffff,ES
2001:4d98::,2001:4d98:ffff:ffff:ffff:ffff:ffff:ffff,CH
2001:4da0::,2001:4da7:ffff:ffff:ffff:ffff:ffff:ffff,CH
@@ -5345,32 +4841,10 @@
2001:4df0::,2001:4df0:ffff:ffff:ffff:ffff:ffff:ffff,IL
2001:8000::,2001:8fff:ffff:ffff:ffff:ffff:ffff:ffff,AU
2001:a000::,2001:a7ff:ffff:ffff:ffff:ffff:ffff:ffff,JP
-2001:b000::,2001:b010:fc7f:ffff:ffff:ffff:ffff:ffff,TW
-2001:b010:fc80::,2001:b010:fc80:7fff:ffff:ffff:ffff:ffff,CN
-2001:b010:fc80:8000::,2001:b7ff:ffff:ffff:ffff:ffff:ffff:ffff,TW
+2001:b000::,2001:b7ff:ffff:ffff:ffff:ffff:ffff:ffff,TW
2003::,2003:45:2d04:7fff:ffff:ffff:ffff:ffff,DE
2003:45:2d04:8000::,2003:45:2d04:ffff:ffff:ffff:ffff:ffff,TR
-2003:45:2d05::,2003:45:2d35:7fff:ffff:ffff:ffff:ffff,DE
-2003:45:2d35:8000::,2003:45:2d35:ffff:ffff:ffff:ffff:ffff,TR
-2003:45:2d36::,2003:45:2d36:7fff:ffff:ffff:ffff:ffff,DE
-2003:45:2d36:8000::,2003:45:2d36:ffff:ffff:ffff:ffff:ffff,TR
-2003:45:2d37::,2003:4b:ae58:ffff:ffff:ffff:ffff:ffff,DE
-2003:4b:ae59::,2003:4b:ae59:7fff:ffff:ffff:ffff:ffff,PL
-2003:4b:ae59:8000::,2003:56:ae38:ffff:ffff:ffff:ffff:ffff,DE
-2003:56:ae39::,2003:56:ae39:7fff:ffff:ffff:ffff:ffff,PL
-2003:56:ae39:8000::,2003:61:ea1b:ffff:ffff:ffff:ffff:ffff,DE
-2003:61:ea1c::,2003:61:ea1c:7fff:ffff:ffff:ffff:ffff,GB
-2003:61:ea1c:8000::,2003:62:4e56:7fff:ffff:ffff:ffff:ffff,DE
-2003:62:4e56:8000::,2003:62:4e56:ffff:ffff:ffff:ffff:ffff,CH
-2003:62:4e57::,2003:77:8f34:ffff:ffff:ffff:ffff:ffff,DE
-2003:77:8f35::,2003:77:8f35:7fff:ffff:ffff:ffff:ffff,NL
-2003:77:8f35:8000::,2003:7a:8943:7fff:ffff:ffff:ffff:ffff,DE
-2003:7a:8943:8000::,2003:7a:8943:ffff:ffff:ffff:ffff:ffff,US
-2003:7a:8944::,2003:84:ab78:ffff:ffff:ffff:ffff:ffff,DE
-2003:84:ab79::,2003:84:ab79:7fff:ffff:ffff:ffff:ffff,RO
-2003:84:ab79:8000::,2003:87:292f:ffff:ffff:ffff:ffff:ffff,DE
-2003:87:2930::,2003:87:2930:7fff:ffff:ffff:ffff:ffff,NZ
-2003:87:2930:8000::,2003:1fff:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2003:45:2d05::,2003:1fff:ffff:ffff:ffff:ffff:ffff:ffff,DE
2067:8e00::,2067:8e00:ffff:ffff:ffff:ffff:ffff:ffff,US
2160:150::,2160:150:7fff:ffff:ffff:ffff:ffff:ffff,US
2400::,2400:fff:ffff:ffff:ffff:ffff:ffff:ffff,KR
@@ -5568,13 +5042,8 @@
2400:8780::,2400:8780:ffff:ffff:ffff:ffff:ffff:ffff,CN
2400:8800::,2400:8800:ffff:ffff:ffff:ffff:ffff:ffff,HK
2400:8880::,2400:8880:ffff:ffff:ffff:ffff:ffff:ffff,IN
-2400:8900::,2400:8900::f03c:91ff:fe70:9ac8,SG
-2400:8900::f03c:91ff:fe70:9ac9,2400:8900::f03c:91ff:fe70:9ac9,JP
-2400:8900::f03c:91ff:fe70:9aca,2400:8900:e000:ffff:ffff:ffff:ffff:ffff,SG
-2400:8900:e001::,2400:8900:e001:29ff:ffff:ffff:ffff:ffff,CN
-2400:8900:e001:2a00::,2400:8900:e001:2a00::,SG
-2400:8900:e001:2a00::1,2400:8900:e001:7fff:ffff:ffff:ffff:ffff,CN
-2400:8900:e001:8000::,2400:8901:ffff:ffff:ffff:ffff:ffff:ffff,SG
+2400:8900::,2400:8900::7fff:ffff:ffff:ffff:ffff,JP
+2400:8900:0:8000::,2400:8901:ffff:ffff:ffff:ffff:ffff:ffff,SG
2400:8980::,2400:8980:ffff:ffff:ffff:ffff:ffff:ffff,CN
2400:8a00::,2400:8a00:ffff:ffff:ffff:ffff:ffff:ffff,AU
2400:8a80::,2400:8a80:ffff:ffff:ffff:ffff:ffff:ffff,PH
@@ -5670,7 +5139,6 @@
2400:bc00::,2400:bc00:ffff:ffff:ffff:ffff:ffff:ffff,AU
2400:bc80::,2400:bc80:ffff:ffff:ffff:ffff:ffff:ffff,VN
2400:bd00::,2400:bd00:ffff:ffff:ffff:ffff:ffff:ffff,NZ
-2400:bd80::,2400:bd80:ffff:ffff:ffff:ffff:ffff:ffff,HK
2400:be00::,2400:be00:ffff:ffff:ffff:ffff:ffff:ffff,CN
2400:be80::,2400:be80:ffff:ffff:ffff:ffff:ffff:ffff,HK
2400:bf00::,2400:bf00:ffff:ffff:ffff:ffff:ffff:ffff,CN
@@ -5695,9 +5163,71 @@
2400:c900::,2400:c900:ffff:ffff:ffff:ffff:ffff:ffff,ID
2400:c980::,2400:c980:ffff:ffff:ffff:ffff:ffff:ffff,SG
2400:ca00::,2400:ca00:ffff:ffff:ffff:ffff:ffff:ffff,BD
-2400:cb00::,2400:cb00:f00c:ffff:ffff:ffff:ffff:ffff,HK
-2400:cb00:f00d::,2400:cb00:f00d:7fff:ffff:ffff:ffff:ffff,US
-2400:cb00:f00d:8000::,2400:cb00:ffff:ffff:ffff:ffff:ffff:ffff,HK
+2400:cb00::,2400:cb00:18:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:19::,2400:cb00:19:ffff:ffff:ffff:ffff:ffff,FR
+2400:cb00:1a::,2400:cb00:1f:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:20::,2400:cb00:20:ffff:ffff:ffff:ffff:ffff,NL
+2400:cb00:21::,2400:cb00:21:ffff:ffff:ffff:ffff:ffff,GB
+2400:cb00:22::,2400:cb00:22:ffff:ffff:ffff:ffff:ffff,JP
+2400:cb00:23::,2400:cb00:23:ffff:ffff:ffff:ffff:ffff,HK
+2400:cb00:24::,2400:cb00:25:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:26::,2400:cb00:26:ffff:ffff:ffff:ffff:ffff,AU
+2400:cb00:27::,2400:cb00:28:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:29::,2400:cb00:29:ffff:ffff:ffff:ffff:ffff,CA
+2400:cb00:2a::,2400:cb00:2f:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:30::,2400:cb00:30:ffff:ffff:ffff:ffff:ffff,AT
+2400:cb00:31::,2400:cb00:31:ffff:ffff:ffff:ffff:ffff,CZ
+2400:cb00:32::,2400:cb00:32:ffff:ffff:ffff:ffff:ffff,SE
+2400:cb00:33::,2400:cb00:33:ffff:ffff:ffff:ffff:ffff,PL
+2400:cb00:34::,2400:cb00:34:ffff:ffff:ffff:ffff:ffff,KR
+2400:cb00:35::,2400:cb00:35:ffff:ffff:ffff:ffff:ffff,SG
+2400:cb00:36::,2400:cb00:36:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:37::,2400:cb00:37:ffff:ffff:ffff:ffff:ffff,DE
+2400:cb00:38::,2400:cb00:38:ffff:ffff:ffff:ffff:ffff,CL
+2400:cb00:39::,2400:cb00:39:ffff:ffff:ffff:ffff:ffff,IT
+2400:cb00:3a::,2400:cb00:3f:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:40::,2400:cb00:40:ffff:ffff:ffff:ffff:ffff,ES
+2400:cb00:41::,2400:cb00:41:ffff:ffff:ffff:ffff:ffff,CO
+2400:cb00:42::,2400:cb00:42:ffff:ffff:ffff:ffff:ffff,BR
+2400:cb00:43::,2400:cb00:43:ffff:ffff:ffff:ffff:ffff,PE
+2400:cb00:44::,2400:cb00:44:ffff:ffff:ffff:ffff:ffff,AR
+2400:cb00:45::,2400:cb00:45:ffff:ffff:ffff:ffff:ffff,ZA
+2400:cb00:46::,2400:cb00:46:ffff:ffff:ffff:ffff:ffff,NZ
+2400:cb00:47::,2400:cb00:47:ffff:ffff:ffff:ffff:ffff,AU
+2400:cb00:48::,2400:cb00:48:ffff:ffff:ffff:ffff:ffff,DE
+2400:cb00:49::,2400:cb00:49:ffff:ffff:ffff:ffff:ffff,FR
+2400:cb00:4a::,2400:cb00:4f:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:50::,2400:cb00:50:ffff:ffff:ffff:ffff:ffff,RO
+2400:cb00:51::,2400:cb00:51:ffff:ffff:ffff:ffff:ffff,JP
+2400:cb00:52::,2400:cb00:52:ffff:ffff:ffff:ffff:ffff,IE
+2400:cb00:53::,2400:cb00:53:ffff:ffff:ffff:ffff:ffff,KW
+2400:cb00:54::,2400:cb00:54:ffff:ffff:ffff:ffff:ffff,QA
+2400:cb00:55::,2400:cb00:55:ffff:ffff:ffff:ffff:ffff,OM
+2400:cb00:56::,2400:cb00:56:ffff:ffff:ffff:ffff:ffff,MY
+2400:cb00:57::,2400:cb00:59:ffff:ffff:ffff:ffff:ffff,IN
+2400:cb00:5a::,2400:cb00:5f:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:60::,2400:cb00:60:ffff:ffff:ffff:ffff:ffff,AE
+2400:cb00:61::,2400:cb00:61:ffff:ffff:ffff:ffff:ffff,KE
+2400:cb00:62::,2400:cb00:62:ffff:ffff:ffff:ffff:ffff,EG
+2400:cb00:63::,2400:cb00:63:ffff:ffff:ffff:ffff:ffff,GB
+2400:cb00:64::,2400:cb00:64:ffff:ffff:ffff:ffff:ffff,CH
+2400:cb00:65::,2400:cb00:65:ffff:ffff:ffff:ffff:ffff,DK
+2400:cb00:66::,2400:cb00:66:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:67::,2400:cb00:67:ffff:ffff:ffff:ffff:ffff,DE
+2400:cb00:68::,2400:cb00:68:ffff:ffff:ffff:ffff:ffff,PH
+2400:cb00:69::,2400:cb00:69:ffff:ffff:ffff:ffff:ffff,CA
+2400:cb00:6a::,2400:cb00:6f:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:70::,2400:cb00:70:ffff:ffff:ffff:ffff:ffff,CA
+2400:cb00:71::,2400:cb00:71:ffff:ffff:ffff:ffff:ffff,DE
+2400:cb00:72::,2400:cb00:72:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:73::,2400:cb00:73:ffff:ffff:ffff:ffff:ffff,PL
+2400:cb00:74::,2400:cb00:74:ffff:ffff:ffff:ffff:ffff,BG
+2400:cb00:75::,2400:cb00:75:ffff:ffff:ffff:ffff:ffff,DE
+2400:cb00:76::,2400:cb00:77:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:78::,2400:cb00:78:ffff:ffff:ffff:ffff:ffff,BE
+2400:cb00:79::,2400:cb00:82:ffff:ffff:ffff:ffff:ffff,US
+2400:cb00:83::,2400:cb00:83:ffff:ffff:ffff:ffff:ffff,NO
+2400:cb00:84::,2400:cb00:ffff:ffff:ffff:ffff:ffff:ffff,US
2400:cb80::,2400:cb80:ffff:ffff:ffff:ffff:ffff:ffff,CN
2400:cc00::,2400:cc00:ffff:ffff:ffff:ffff:ffff:ffff,AU
2400:cc80::,2400:cc80:ffff:ffff:ffff:ffff:ffff:ffff,CN
@@ -5839,9 +5369,7 @@
2401:1680::,2401:1680:ffff:ffff:ffff:ffff:ffff:ffff,MY
2401:1700::,2401:1700:ffff:ffff:ffff:ffff:ffff:ffff,ID
2401:1780::,2401:1780:ffff:ffff:ffff:ffff:ffff:ffff,TW
-2401:1800::,2401:1801:7800:ffff:ffff:ffff:ffff:ffff,HK
-2401:1801:7801::,2401:1801:7801:7fff:ffff:ffff:ffff:ffff,AU
-2401:1801:7801:8000::,2401:1801:ffff:ffff:ffff:ffff:ffff:ffff,HK
+2401:1800::,2401:1801:ffff:ffff:ffff:ffff:ffff:ffff,HK
2401:1880::,2401:1880:ffff:ffff:ffff:ffff:ffff:ffff,NZ
2401:1900::,2401:1900:ffff:ffff:ffff:ffff:ffff:ffff,BD
2401:1980::,2401:1980:ffff:ffff:ffff:ffff:ffff:ffff,BD
@@ -6010,8 +5538,7 @@
2401:7e80::,2401:7e80:ffff:ffff:ffff:ffff:ffff:ffff,AU
2401:7f00::,2401:7f00:ffff:ffff:ffff:ffff:ffff:ffff,JP
2401:7f80::,2401:7f80:ffff:ffff:ffff:ffff:ffff:ffff,CN
-2401:8000::,2401:8000::7fff:ffff:ffff:ffff:ffff,CN
-2401:8000:0:8000::,2401:803f:ffff:ffff:ffff:ffff:ffff:ffff,TW
+2401:8000::,2401:803f:ffff:ffff:ffff:ffff:ffff:ffff,TW
2401:8080::,2401:8080:ffff:ffff:ffff:ffff:ffff:ffff,AF
2401:8100::,2401:8100:ffff:ffff:ffff:ffff:ffff:ffff,AU
2401:8180::,2401:8180:ffff:ffff:ffff:ffff:ffff:ffff,AU
@@ -6022,7 +5549,6 @@
2401:8400::,2401:8400:ffff:ffff:ffff:ffff:ffff:ffff,SG
2401:8480::,2401:8480:ffff:ffff:ffff:ffff:ffff:ffff,AU
2401:8500::,2401:8500:ffff:ffff:ffff:ffff:ffff:ffff,HK
-2401:8580::,2401:8580:ffff:ffff:ffff:ffff:ffff:ffff,BD
2401:8600::,2401:8600:ffff:ffff:ffff:ffff:ffff:ffff,CN
2401:8680::,2401:8680:ffff:ffff:ffff:ffff:ffff:ffff,CN
2401:8700::,2401:8700:ffff:ffff:ffff:ffff:ffff:ffff,JP
@@ -6120,7 +5646,6 @@
2401:b800::,2401:b800:ffff:ffff:ffff:ffff:ffff:ffff,VN
2401:b880::,2401:b880:ffff:ffff:ffff:ffff:ffff:ffff,AU
2401:b900::,2401:b900:ffff:ffff:ffff:ffff:ffff:ffff,PH
-2401:b980::,2401:b980:ffff:ffff:ffff:ffff:ffff:ffff,TH
2401:ba00::,2401:ba00:ffff:ffff:ffff:ffff:ffff:ffff,CN
2401:ba80::,2401:ba80:ffff:ffff:ffff:ffff:ffff:ffff,PK
2401:bb00::,2401:bb00:ffff:ffff:ffff:ffff:ffff:ffff,IN
@@ -6128,7 +5653,6 @@
2401:bc00::,2401:bc00:ffff:ffff:ffff:ffff:ffff:ffff,PH
2401:bc80::,2401:bc80:ffff:ffff:ffff:ffff:ffff:ffff,MM
2401:bd00::,2401:bd00:ffff:ffff:ffff:ffff:ffff:ffff,JP
-2401:bd80::,2401:bd80:ffff:ffff:ffff:ffff:ffff:ffff,TW
2401:be00::,2401:be00:ffff:ffff:ffff:ffff:ffff:ffff,CN
2401:be80::,2401:be80:ffff:ffff:ffff:ffff:ffff:ffff,ID
2401:bf00::,2401:bf00:ffff:ffff:ffff:ffff:ffff:ffff,JP
@@ -6151,8 +5675,8 @@
2401:c800::,2401:c800:ffff:ffff:ffff:ffff:ffff:ffff,JP
2401:c880::,2401:c880:ffff:ffff:ffff:ffff:ffff:ffff,IN
2401:c900::,2401:c900:1000:ffff:ffff:ffff:ffff:ffff,SG
-2401:c900:1001::,2401:c900:1001:ff:ffff:ffff:ffff:ffff,JP
-2401:c900:1001:100::,2401:c900:11ff:ffff:ffff:ffff:ffff:ffff,SG
+2401:c900:1001::,2401:c900:1001:7fff:ffff:ffff:ffff:ffff,JP
+2401:c900:1001:8000::,2401:c900:11ff:ffff:ffff:ffff:ffff:ffff,SG
2401:c900:1200::,2401:c900:1201:175:ffff:ffff:ffff:ffff,US
2401:c900:1201:176::,2401:c900:1201:176:ffff:ffff:ffff:ffff,HK
2401:c900:1201:177::,2401:c900:1201:1cb:ffff:ffff:ffff:ffff,US
@@ -6160,9 +5684,7 @@
2401:c900:1201:1cd::,2401:c900:12ff:ffff:ffff:ffff:ffff:ffff,US
2401:c900:1300::,2401:c900:1300:ffff:ffff:ffff:ffff:ffff,SG
2401:c900:1301::,2401:c900:1301:7fff:ffff:ffff:ffff:ffff,AU
-2401:c900:1301:8000::,2401:c900:1400:ffff:ffff:ffff:ffff:ffff,SG
-2401:c900:1401::,2401:c900:1401:7fff:ffff:ffff:ffff:ffff,AU
-2401:c900:1401:8000::,2401:c901:ffff:ffff:ffff:ffff:ffff:ffff,SG
+2401:c900:1301:8000::,2401:c901:ffff:ffff:ffff:ffff:ffff:ffff,SG
2401:c980::,2401:c980:ffff:ffff:ffff:ffff:ffff:ffff,NZ
2401:ca00::,2401:ca00:ffff:ffff:ffff:ffff:ffff:ffff,CN
2401:ca80::,2401:ca80:ffff:ffff:ffff:ffff:ffff:ffff,CN
@@ -6261,37 +5783,34 @@
2401:f880::,2401:f880:ffff:ffff:ffff:ffff:ffff:ffff,MY
2401:f900::,2401:f900:ffff:ffff:ffff:ffff:ffff:ffff,SG
2401:f980::,2401:f980:ffff:ffff:ffff:ffff:ffff:ffff,ID
-2401:fa00::,2401:fa00::ffff:ffff:ffff:ffff:ffff,AU
-2401:fa00:1::,2401:fa00:1:ffff:ffff:ffff:ffff:ffff,TW
-2401:fa00:2::,2401:fa00:2:ffff:ffff:ffff:ffff:ffff,IN
-2401:fa00:3::,2401:fa00:3:ffff:ffff:ffff:ffff:ffff,SG
+2401:fa00::,2401:fa00::7fff:ffff:ffff:ffff:ffff,AU
+2401:fa00:0:8000::,2401:fa00::ffff:ffff:ffff:ffff:ffff,IN
+2401:fa00:1::,2401:fa00:1:7fff:ffff:ffff:ffff:ffff,TW
+2401:fa00:1:8000::,2401:fa00:3:ffff:ffff:ffff:ffff:ffff,IN
2401:fa00:4::,2401:fa00:4:ffff:ffff:ffff:ffff:ffff,JP
2401:fa00:5::,2401:fa00:6:ffff:ffff:ffff:ffff:ffff,IN
-2401:fa00:7::,2401:fa00:7:ffff:ffff:ffff:ffff:ffff,US
-2401:fa00:8::,2401:fa00:8:7fff:ffff:ffff:ffff:ffff,IN
-2401:fa00:8:8000::,2401:fa00:8:ffff:ffff:ffff:ffff:ffff,MY
-2401:fa00:9::,2401:fa00:9:ffff:ffff:ffff:ffff:ffff,AU
-2401:fa00:a::,2401:fa00:c:ffff:ffff:ffff:ffff:ffff,IN
+2401:fa00:7::,2401:fa00:7:7fff:ffff:ffff:ffff:ffff,US
+2401:fa00:7:8000::,2401:fa00:8:ffff:ffff:ffff:ffff:ffff,IN
+2401:fa00:9::,2401:fa00:9:7fff:ffff:ffff:ffff:ffff,AU
+2401:fa00:9:8000::,2401:fa00:c:ffff:ffff:ffff:ffff:ffff,IN
2401:fa00:d::,2401:fa00:d:7fff:ffff:ffff:ffff:ffff,KR
-2401:fa00:d:8000::,2401:fa00:f:7fff:ffff:ffff:ffff:ffff,IN
-2401:fa00:f:8000::,2401:fa00:f:ffff:ffff:ffff:ffff:ffff,SG
-2401:fa00:10::,2401:fa00:10:ffff:ffff:ffff:ffff:ffff,IN
-2401:fa00:11::,2401:fa00:11:ffff:ffff:ffff:ffff:ffff,AU
+2401:fa00:d:8000::,2401:fa00:e:ffff:ffff:ffff:ffff:ffff,IN
+2401:fa00:f::,2401:fa00:f:7fff:ffff:ffff:ffff:ffff,SG
+2401:fa00:f:8000::,2401:fa00:10:ffff:ffff:ffff:ffff:ffff,IN
+2401:fa00:11::,2401:fa00:11:7fff:ffff:ffff:ffff:ffff,AU
+2401:fa00:11:8000::,2401:fa00:11:ffff:ffff:ffff:ffff:ffff,IN
2401:fa00:12::,2401:fa00:12:ffff:ffff:ffff:ffff:ffff,NZ
-2401:fa00:13::,2401:fa00:13:ffff:ffff:ffff:ffff:ffff,HK
-2401:fa00:14::,2401:fa00:15:7fff:ffff:ffff:ffff:ffff,IN
-2401:fa00:15:8000::,2401:fa00:15:ffff:ffff:ffff:ffff:ffff,US
-2401:fa00:16::,2401:fa00:17:ffff:ffff:ffff:ffff:ffff,IN
+2401:fa00:13::,2401:fa00:13:7fff:ffff:ffff:ffff:ffff,HK
+2401:fa00:13:8000::,2401:fa00:17:ffff:ffff:ffff:ffff:ffff,IN
2401:fa00:18::,2401:fa00:18:7fff:ffff:ffff:ffff:ffff,PH
2401:fa00:18:8000::,2401:fa00:18:ffff:ffff:ffff:ffff:ffff,US
-2401:fa00:19::,2401:fa00:1e:ffff:ffff:ffff:ffff:ffff,IN
-2401:fa00:1f::,2401:fa00:1f:7fff:ffff:ffff:ffff:ffff,US
-2401:fa00:1f:8000::,2401:fa00:23:ffff:ffff:ffff:ffff:ffff,IN
+2401:fa00:19::,2401:fa00:23:ffff:ffff:ffff:ffff:ffff,IN
2401:fa00:24::,2401:fa00:24:7fff:ffff:ffff:ffff:ffff,US
-2401:fa00:24:8000::,2401:fa00:24:ffff:ffff:ffff:ffff:ffff,MY
-2401:fa00:25::,2401:fa00:25:ffff:ffff:ffff:ffff:ffff,IN
-2401:fa00:26::,2401:fa00:26:ffff:ffff:ffff:ffff:ffff,US
-2401:fa00:27::,2401:fa00:3f:ffff:ffff:ffff:ffff:ffff,IN
+2401:fa00:24:8000::,2401:fa00:25:ffff:ffff:ffff:ffff:ffff,IN
+2401:fa00:26::,2401:fa00:26:7fff:ffff:ffff:ffff:ffff,US
+2401:fa00:26:8000::,2401:fa00:28:ffff:ffff:ffff:ffff:ffff,IN
+2401:fa00:29::,2401:fa00:29:7fff:ffff:ffff:ffff:ffff,AU
+2401:fa00:29:8000::,2401:fa00:3f:ffff:ffff:ffff:ffff:ffff,IN
2401:fa00:40::,2401:fa00:40:7fff:ffff:ffff:ffff:ffff,CN
2401:fa00:40:8000::,2401:fa00:40:ffff:ffff:ffff:ffff:ffff,IN
2401:fa00:41::,2401:fa00:41:7fff:ffff:ffff:ffff:ffff,CN
@@ -6319,7 +5838,6 @@
2402:700::,2402:700:ffff:ffff:ffff:ffff:ffff:ffff,JP
2402:780::,2402:780:ffff:ffff:ffff:ffff:ffff:ffff,ID
2402:800::,2402:800:ffff:ffff:ffff:ffff:ffff:ffff,VN
-2402:880::,2402:880:ffff:ffff:ffff:ffff:ffff:ffff,CN
2402:900::,2402:900:ffff:ffff:ffff:ffff:ffff:ffff,IN
2402:980::,2402:980:ffff:ffff:ffff:ffff:ffff:ffff,SG
2402:a00::,2402:a00:ffff:ffff:ffff:ffff:ffff:ffff,IN
@@ -6491,15 +6009,9 @@
2402:5e80::,2402:5e80:ffff:ffff:ffff:ffff:ffff:ffff,BD
2402:5f00::,2402:5f00:ffff:ffff:ffff:ffff:ffff:ffff,ID
2402:5f80::,2402:5f80:ffff:ffff:ffff:ffff:ffff:ffff,SG
-2402:6000::,2402:6000:ff:ffff:ffff:ffff:ffff:ffff,AU
-2402:6000:100::,2402:6000:100:7fff:ffff:ffff:ffff:ffff,NZ
-2402:6000:100:8000::,2402:6000:100:ffff:ffff:ffff:ffff:ffff,AU
+2402:6000::,2402:6000:100:ffff:ffff:ffff:ffff:ffff,AU
2402:6000:101::,2402:6000:101:7fff:ffff:ffff:ffff:ffff,NZ
-2402:6000:101:8000::,2402:6000:1ff:7fff:ffff:ffff:ffff:ffff,AU
-2402:6000:1ff:8000::,2402:6000:1ff:ffff:ffff:ffff:ffff:ffff,NZ
-2402:6000:200::,2402:6000:202:ffff:ffff:ffff:ffff:ffff,AU
-2402:6000:203::,2402:6000:203:7fff:ffff:ffff:ffff:ffff,NZ
-2402:6000:203:8000::,2402:6000:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2402:6000:101:8000::,2402:6000:ffff:ffff:ffff:ffff:ffff:ffff,AU
2402:6080::,2402:6080:ffff:ffff:ffff:ffff:ffff:ffff,HK
2402:6100::,2402:6100:ffff:ffff:ffff:ffff:ffff:ffff,KR
2402:6180::,2402:6180:ffff:ffff:ffff:ffff:ffff:ffff,HK
@@ -6519,9 +6031,7 @@
2402:6980::,2402:6980:ffff:ffff:ffff:ffff:ffff:ffff,ID
2402:6a00::,2402:6a00:ffff:ffff:ffff:ffff:ffff:ffff,CN
2402:6a80::,2402:6a80:ffff:ffff:ffff:ffff:ffff:ffff,HK
-2402:6b00::,2402:6b00:4c64:ffff:ffff:ffff:ffff:ffff,JP
-2402:6b00:4c65::,2402:6b00:4c65:7fff:ffff:ffff:ffff:ffff,US
-2402:6b00:4c65:8000::,2402:6b00:ffff:ffff:ffff:ffff:ffff:ffff,JP
+2402:6b00::,2402:6b00:ffff:ffff:ffff:ffff:ffff:ffff,JP
2402:6b80::,2402:6b80:ffff:ffff:ffff:ffff:ffff:ffff,AU
2402:6c00::,2402:6c00:ffff:ffff:ffff:ffff:ffff:ffff,MY
2402:6c80::,2402:6c80:ffff:ffff:ffff:ffff:ffff:ffff,JP
@@ -6623,7 +6133,8 @@
2402:9d00::,2402:9d00:ffff:ffff:ffff:ffff:ffff:ffff,KH
2402:9d80::,2402:9d80:ffff:ffff:ffff:ffff:ffff:ffff,VN
2402:9e00::,2402:9e00:ffff:ffff:ffff:ffff:ffff:ffff,NZ
-2402:9e80::,2402:9e80:ffff:ffff:ffff:ffff:ffff:ffff,HK
+2402:9e80::,2402:9e80::7fff:ffff:ffff:ffff:ffff,CN
+2402:9e80:0:8000::,2402:9e80:ffff:ffff:ffff:ffff:ffff:ffff,HK
2402:9f00::,2402:9f00:ffff:ffff:ffff:ffff:ffff:ffff,AU
2402:9f80::,2402:9f80:ffff:ffff:ffff:ffff:ffff:ffff,CN
2402:a000::,2402:a000:ffff:ffff:ffff:ffff:ffff:ffff,ID
@@ -6683,7 +6194,7 @@
2402:bc00::,2402:bc07:ffff:ffff:ffff:ffff:ffff:ffff,JP
2402:bc80::,2402:bc80:ffff:ffff:ffff:ffff:ffff:ffff,AU
2402:bd00::,2402:bd00:ffff:ffff:ffff:ffff:ffff:ffff,AU
-2402:bd80::,2402:bd80:ffff:ffff:ffff:ffff:ffff:ffff,IN
+2402:bd80::,2402:bd81:ffff:ffff:ffff:ffff:ffff:ffff,IN
2402:be00::,2402:be00:ffff:ffff:ffff:ffff:ffff:ffff,KR
2402:be80::,2402:be80:ffff:ffff:ffff:ffff:ffff:ffff,ID
2402:bf00::,2402:bf00:ffff:ffff:ffff:ffff:ffff:ffff,MY
@@ -7215,11 +6726,7 @@
2403:ca80::,2403:ca80:ffff:ffff:ffff:ffff:ffff:ffff,CN
2403:cb00::,2403:cb00:ffff:ffff:ffff:ffff:ffff:ffff,SG
2403:cb80::,2403:cb80:ffff:ffff:ffff:ffff:ffff:ffff,ID
-2403:cc00::,2403:cc00:3fff:ffff:ffff:ffff:ffff:ffff,SG
-2403:cc00:4000::,2403:cc00:4000:7fff:ffff:ffff:ffff:ffff,AU
-2403:cc00:4000:8000::,2403:cc00:9fff:ffff:ffff:ffff:ffff:ffff,SG
-2403:cc00:a000::,2403:cc00:a000:7fff:ffff:ffff:ffff:ffff,ES
-2403:cc00:a000:8000::,2403:cc00:ffff:ffff:ffff:ffff:ffff:ffff,SG
+2403:cc00::,2403:cc00:ffff:ffff:ffff:ffff:ffff:ffff,SG
2403:cc80::,2403:cc80:ffff:ffff:ffff:ffff:ffff:ffff,BD
2403:cd00::,2403:cd00:ffff:ffff:ffff:ffff:ffff:ffff,PH
2403:cd80::,2403:cd80:ffff:ffff:ffff:ffff:ffff:ffff,PH
@@ -7387,81 +6894,163 @@
2404:1500::,2404:1500:ffff:ffff:ffff:ffff:ffff:ffff,IN
2404:1580::,2404:1580:ffff:ffff:ffff:ffff:ffff:ffff,IN
2404:1600::,2404:1601:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:1680::,2404:1680:ffff:ffff:ffff:ffff:ffff:ffff,TH
2404:1700::,2404:1700:ffff:ffff:ffff:ffff:ffff:ffff,JP
+2404:1780::,2404:1780:ffff:ffff:ffff:ffff:ffff:ffff,MM
2404:1800::,2404:1800:ffff:ffff:ffff:ffff:ffff:ffff,NZ
+2404:1880::,2404:1880:ffff:ffff:ffff:ffff:ffff:ffff,CN
2404:1900::,2404:1900:ffff:ffff:ffff:ffff:ffff:ffff,JP
+2404:1980::,2404:1980:ffff:ffff:ffff:ffff:ffff:ffff,JP
2404:1a00::,2404:1a00:ffff:ffff:ffff:ffff:ffff:ffff,TH
+2404:1a80::,2404:1a80:ffff:ffff:ffff:ffff:ffff:ffff,NZ
2404:1b00::,2404:1b00:ffff:ffff:ffff:ffff:ffff:ffff,JP
+2404:1b80::,2404:1b80:ffff:ffff:ffff:ffff:ffff:ffff,IN
2404:1c00::,2404:1c00:ffff:ffff:ffff:ffff:ffff:ffff,NZ
+2404:1c80::,2404:1c80:ffff:ffff:ffff:ffff:ffff:ffff,CN
2404:1d00::,2404:1d00:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:1d80::,2404:1d80:ffff:ffff:ffff:ffff:ffff:ffff,CN
2404:1e00::,2404:1e00:ffff:ffff:ffff:ffff:ffff:ffff,NZ
+2404:1e80::,2404:1e80:ffff:ffff:ffff:ffff:ffff:ffff,CN
2404:1f00::,2404:1f00:ffff:ffff:ffff:ffff:ffff:ffff,IN
+2404:1f80::,2404:1f80:ffff:ffff:ffff:ffff:ffff:ffff,AU
2404:2000::,2404:2000:ffff:ffff:ffff:ffff:ffff:ffff,NZ
+2404:2080::,2404:2080:ffff:ffff:ffff:ffff:ffff:ffff,AU
2404:2100::,2404:2100:ffff:ffff:ffff:ffff:ffff:ffff,HK
+2404:2180::,2404:2180:ffff:ffff:ffff:ffff:ffff:ffff,SG
2404:2200::,2404:2200:ffff:ffff:ffff:ffff:ffff:ffff,NC
+2404:2280::,2404:2280:ffff:ffff:ffff:ffff:ffff:ffff,SG
2404:2300::,2404:2300:ffff:ffff:ffff:ffff:ffff:ffff,KR
+2404:2380::,2404:2380:ffff:ffff:ffff:ffff:ffff:ffff,PH
2404:2400::,2404:2400:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:2480::,2404:2480:ffff:ffff:ffff:ffff:ffff:ffff,HK
+2404:2580::,2404:2580:ffff:ffff:ffff:ffff:ffff:ffff,TH
2404:2600::,2404:2600:ffff:ffff:ffff:ffff:ffff:ffff,TH
+2404:2680::,2404:2680:ffff:ffff:ffff:ffff:ffff:ffff,JP
2404:2700::,2404:2700:ffff:ffff:ffff:ffff:ffff:ffff,MN
+2404:2780::,2404:2780:ffff:ffff:ffff:ffff:ffff:ffff,AU
2404:2800::,2404:2800:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:2880::,2404:2880:ffff:ffff:ffff:ffff:ffff:ffff,KR
2404:2900::,2404:2900:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:2980::,2404:2980:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:2a00::,2404:2a00:ffff:ffff:ffff:ffff:ffff:ffff,NC
+2404:2a80::,2404:2a80:ffff:ffff:ffff:ffff:ffff:ffff,HK
2404:2b00::,2404:2b00:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:2b80::,2404:2b80:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:2c00::,2404:2c00:ffff:ffff:ffff:ffff:ffff:ffff,NP
+2404:2c80::,2404:2c80:ffff:ffff:ffff:ffff:ffff:ffff,ID
2404:2d00::,2404:2d00:ffff:ffff:ffff:ffff:ffff:ffff,JP
+2404:2d80::,2404:2d80:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:2e00::,2404:2e00:ffff:ffff:ffff:ffff:ffff:ffff,LA
+2404:2e80::,2404:2e80:ffff:ffff:ffff:ffff:ffff:ffff,NP
2404:2f00::,2404:2f00:ffff:ffff:ffff:ffff:ffff:ffff,NZ
+2404:2f80::,2404:2f80:ffff:ffff:ffff:ffff:ffff:ffff,ID
+2404:3080::,2404:3080:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:3100::,2404:3100:ffff:ffff:ffff:ffff:ffff:ffff,PK
+2404:3180::,2404:3180:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:3200::,2404:3200:ffff:ffff:ffff:ffff:ffff:ffff,JP
+2404:3280::,2404:3280:ffff:ffff:ffff:ffff:ffff:ffff,TH
2404:3300::,2404:3300:ffff:ffff:ffff:ffff:ffff:ffff,CN
+2404:3380::,2404:3380:ffff:ffff:ffff:ffff:ffff:ffff,PH
+2404:3480::,2404:3480:ffff:ffff:ffff:ffff:ffff:ffff,CN
2404:3500::,2404:3500:ffff:ffff:ffff:ffff:ffff:ffff,HK
+2404:3580::,2404:3580:ffff:ffff:ffff:ffff:ffff:ffff,ID
2404:3600::,2404:3601:ffff:ffff:ffff:ffff:ffff:ffff,NZ
+2404:3680::,2404:3680:ffff:ffff:ffff:ffff:ffff:ffff,ID
2404:3700::,2404:3700:ffff:ffff:ffff:ffff:ffff:ffff,CN
+2404:3780::,2404:3780:ffff:ffff:ffff:ffff:ffff:ffff,NP
2404:3800::,2404:3800:ffff:ffff:ffff:ffff:ffff:ffff,NZ
+2404:3880::,2404:3880:ffff:ffff:ffff:ffff:ffff:ffff,HK
2404:3900::,2404:3900:ffff:ffff:ffff:ffff:ffff:ffff,ID
+2404:3980::,2404:3980:ffff:ffff:ffff:ffff:ffff:ffff,NZ
2404:3a00::,2404:3a00:ffff:ffff:ffff:ffff:ffff:ffff,VN
+2404:3a80::,2404:3a80:ffff:ffff:ffff:ffff:ffff:ffff,TH
2404:3b00::,2404:3b00:ffff:ffff:ffff:ffff:ffff:ffff,CN
+2404:3b80::,2404:3b80:ffff:ffff:ffff:ffff:ffff:ffff,HK
2404:3c00::,2404:3c00:ffff:ffff:ffff:ffff:ffff:ffff,PH
+2404:3c80::,2404:3c80:ffff:ffff:ffff:ffff:ffff:ffff,PK
2404:3d00::,2404:3d00:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:3d80::,2404:3d80:ffff:ffff:ffff:ffff:ffff:ffff,NZ
2404:3e00::,2404:3e00:ffff:ffff:ffff:ffff:ffff:ffff,ID
+2404:3e80::,2404:3e80:ffff:ffff:ffff:ffff:ffff:ffff,ID
2404:3f00::,2404:3f00:ffff:ffff:ffff:ffff:ffff:ffff,IN
+2404:3f80::,2404:3f80:ffff:ffff:ffff:ffff:ffff:ffff,BD
+2404:4080::,2404:4080:ffff:ffff:ffff:ffff:ffff:ffff,CN
2404:4100::,2404:4100:ffff:ffff:ffff:ffff:ffff:ffff,IN
+2404:4180::,2404:4180:ffff:ffff:ffff:ffff:ffff:ffff,NZ
2404:4200::,2404:4200:ffff:ffff:ffff:ffff:ffff:ffff,ID
+2404:4280::,2404:4280:ffff:ffff:ffff:ffff:ffff:ffff,HK
2404:4300::,2404:4300:ffff:ffff:ffff:ffff:ffff:ffff,MY
+2404:4380::,2404:4380:ffff:ffff:ffff:ffff:ffff:ffff,AU
2404:4400::,2404:440f:ffff:ffff:ffff:ffff:ffff:ffff,NZ
+2404:4480::,2404:4480:ffff:ffff:ffff:ffff:ffff:ffff,IN
+2404:4580::,2404:4580:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:4600::,2404:4600:ffff:ffff:ffff:ffff:ffff:ffff,KR
+2404:4680::,2404:4680:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:4700::,2404:4700:ffff:ffff:ffff:ffff:ffff:ffff,IN
+2404:4780::,2404:4780:ffff:ffff:ffff:ffff:ffff:ffff,ID
2404:4800::,2404:4800:ffff:ffff:ffff:ffff:ffff:ffff,SG
+2404:4880::,2404:4880:ffff:ffff:ffff:ffff:ffff:ffff,NZ
2404:4900::,2404:4900:ffff:ffff:ffff:ffff:ffff:ffff,NZ
+2404:4980::,2404:4980:ffff:ffff:ffff:ffff:ffff:ffff,IN
2404:4a00::,2404:4a00:ffff:ffff:ffff:ffff:ffff:ffff,TH
+2404:4a80::,2404:4a80:ffff:ffff:ffff:ffff:ffff:ffff,IN
+2404:4b80::,2404:4b80:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:4c00::,2404:4c00:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:4c80::,2404:4c80:ffff:ffff:ffff:ffff:ffff:ffff,IN
2404:4d00::,2404:4d00:ffff:ffff:ffff:ffff:ffff:ffff,CN
+2404:4d80::,2404:4d80:ffff:ffff:ffff:ffff:ffff:ffff,AU
2404:4e00::,2404:4e00:ffff:ffff:ffff:ffff:ffff:ffff,SG
+2404:4e80::,2404:4e80:ffff:ffff:ffff:ffff:ffff:ffff,CN
2404:4f00::,2404:4f01:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:4f80::,2404:4f80:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:5000::,2404:5000:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:5080::,2404:5080:ffff:ffff:ffff:ffff:ffff:ffff,AU
2404:5100::,2404:5100:ffff:ffff:ffff:ffff:ffff:ffff,JP
+2404:5180::,2404:5180:ffff:ffff:ffff:ffff:ffff:ffff,AU
2404:5200::,2404:5200:ffff:ffff:ffff:ffff:ffff:ffff,JP
+2404:5280::,2404:5280:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:5300::,2404:5300:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:5380::,2404:5380:ffff:ffff:ffff:ffff:ffff:ffff,MY
2404:5400::,2404:5400:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:5480::,2404:5480:ffff:ffff:ffff:ffff:ffff:ffff,JP
2404:5500::,2404:5500:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:5580::,2404:5580:ffff:ffff:ffff:ffff:ffff:ffff,SG
2404:5600::,2404:5600:ffff:ffff:ffff:ffff:ffff:ffff,ID
+2404:5680::,2404:5680:ffff:ffff:ffff:ffff:ffff:ffff,SG
2404:5700::,2404:5700:ffff:ffff:ffff:ffff:ffff:ffff,NZ
+2404:5780::,2404:5780:ffff:ffff:ffff:ffff:ffff:ffff,IN
2404:5800::,2404:5800:ffff:ffff:ffff:ffff:ffff:ffff,SG
+2404:5880::,2404:5880:ffff:ffff:ffff:ffff:ffff:ffff,AU
2404:5900::,2404:5900:ffff:ffff:ffff:ffff:ffff:ffff,TH
+2404:5980::,2404:5980:ffff:ffff:ffff:ffff:ffff:ffff,ID
2404:5a00::,2404:5a00:ffff:ffff:ffff:ffff:ffff:ffff,ID
+2404:5a80::,2404:5a80:ffff:ffff:ffff:ffff:ffff:ffff,CN
2404:5b00::,2404:5b00:ffff:ffff:ffff:ffff:ffff:ffff,CN
+2404:5b80::,2404:5b80:ffff:ffff:ffff:ffff:ffff:ffff,NZ
2404:5c00::,2404:5c00:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:5c80::,2404:5c80:ffff:ffff:ffff:ffff:ffff:ffff,IN
2404:5d00::,2404:5d00:ffff:ffff:ffff:ffff:ffff:ffff,CN
+2404:5d80::,2404:5d80:ffff:ffff:ffff:ffff:ffff:ffff,JP
2404:5e00::,2404:5e00:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:5e80::,2404:5e80:ffff:ffff:ffff:ffff:ffff:ffff,CN
2404:5f00::,2404:5f00:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2404:5f80::,2404:5f80:ffff:ffff:ffff:ffff:ffff:ffff,PH
2404:6000::,2404:6000:ffff:ffff:ffff:ffff:ffff:ffff,CN
+2404:6080::,2404:6080:ffff:ffff:ffff:ffff:ffff:ffff,AU
2404:6100::,2404:6100:ffff:ffff:ffff:ffff:ffff:ffff,CN
+2404:6180::,2404:6180:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:6200::,2404:6200:ffff:ffff:ffff:ffff:ffff:ffff,TW
+2404:6280::,2404:6280:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:6300::,2404:6300:ffff:ffff:ffff:ffff:ffff:ffff,MY
+2404:6380::,2404:6380:ffff:ffff:ffff:ffff:ffff:ffff,CN
2404:6400::,2404:6400:ffff:ffff:ffff:ffff:ffff:ffff,PG
+2404:6480::,2404:6480:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:6500::,2404:6500:ffff:ffff:ffff:ffff:ffff:ffff,CN
+2404:6580::,2404:6580:ffff:ffff:ffff:ffff:ffff:ffff,BD
2404:6600::,2404:6600:ffff:ffff:ffff:ffff:ffff:ffff,NZ
+2404:6680::,2404:6680:ffff:ffff:ffff:ffff:ffff:ffff,PK
2404:6700::,2404:6700:ffff:ffff:ffff:ffff:ffff:ffff,CN
+2404:6780::,2404:6780:ffff:ffff:ffff:ffff:ffff:ffff,IN
2404:6800::,2404:6800:4002:ffff:ffff:ffff:ffff:ffff,AU
2404:6800:4003::,2404:6800:4003:ffff:ffff:ffff:ffff:ffff,SG
2404:6800:4004::,2404:6800:4007:ffff:ffff:ffff:ffff:ffff,AU
@@ -7769,7 +7358,7 @@
2405:7e00::,2405:7e00:ffff:ffff:ffff:ffff:ffff:ffff,TW
2405:7f00::,2405:7f00:ffff:ffff:ffff:ffff:ffff:ffff,AU
2405:8000::,2405:8000:ffff:ffff:ffff:ffff:ffff:ffff,JP
-2405:8100::,2405:8100:ffff:ffff:ffff:ffff:ffff:ffff,HK
+2405:8100::,2405:8100:ffff:ffff:ffff:ffff:ffff:ffff,US
2405:8200::,2405:8200:ffff:ffff:ffff:ffff:ffff:ffff,BD
2405:8300::,2405:8300:ffff:ffff:ffff:ffff:ffff:ffff,SB
2405:8400::,2405:8400:ffff:ffff:ffff:ffff:ffff:ffff,NZ
@@ -7819,7 +7408,7 @@
2405:b200::,2405:b200:ffff:ffff:ffff:ffff:ffff:ffff,HK
2405:b300::,2405:b300:ffff:ffff:ffff:ffff:ffff:ffff,CN
2405:b400::,2405:b400:ffff:ffff:ffff:ffff:ffff:ffff,NZ
-2405:b500::,2405:b500:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2405:b500::,2405:b500:ffff:ffff:ffff:ffff:ffff:ffff,US
2405:b600::,2405:b600:ffff:ffff:ffff:ffff:ffff:ffff,AU
2405:b800::,2405:b800:ffff:ffff:ffff:ffff:ffff:ffff,PH
2405:b900::,2405:b900:ffff:ffff:ffff:ffff:ffff:ffff,ID
@@ -7919,11 +7508,7 @@
2406:1f00::,2406:1f00:ffff:ffff:ffff:ffff:ffff:ffff,AU
2406:2000::,2406:2000:ef95:ffff:ffff:ffff:ffff:ffff,TW
2406:2000:ef96::,2406:2000:ef96:7fff:ffff:ffff:ffff:ffff,HK
-2406:2000:ef96:8000::,2406:2000:efa5:ffff:ffff:ffff:ffff:ffff,TW
-2406:2000:efa6::,2406:2000:efa6:7fff:ffff:ffff:ffff:ffff,SG
-2406:2000:efa6:8000::,2406:2000:efb9:ffff:ffff:ffff:ffff:ffff,TW
-2406:2000:efba::,2406:2000:efba:7fff:ffff:ffff:ffff:ffff,HK
-2406:2000:efba:8000::,2406:2000:ffff:ffff:ffff:ffff:ffff:ffff,TW
+2406:2000:ef96:8000::,2406:2000:ffff:ffff:ffff:ffff:ffff:ffff,TW
2406:2100::,2406:2100:ffff:ffff:ffff:ffff:ffff:ffff,IN
2406:2200::,2406:2200:ffff:ffff:ffff:ffff:ffff:ffff,AU
2406:2300::,2406:2300:ffff:ffff:ffff:ffff:ffff:ffff,NZ
@@ -8022,7 +7607,7 @@
2406:8600::,2406:8600:ffff:ffff:ffff:ffff:ffff:ffff,IN
2406:8700::,2406:8700:ffff:ffff:ffff:ffff:ffff:ffff,AU
2406:8800::,2406:8800:ffff:ffff:ffff:ffff:ffff:ffff,IN
-2406:8900::,2406:8901:ffff:ffff:ffff:ffff:ffff:ffff,AU
+2406:8900::,2406:8900:ffff:ffff:ffff:ffff:ffff:ffff,AU
2406:8a00::,2406:8a00:ffff:ffff:ffff:ffff:ffff:ffff,AU
2406:8b00::,2406:8b00:ffff:ffff:ffff:ffff:ffff:ffff,MY
2406:8c00::,2406:8c00:ffff:ffff:ffff:ffff:ffff:ffff,JP
@@ -8111,7 +7696,7 @@
2406:e100::,2406:e100:ffff:ffff:ffff:ffff:ffff:ffff,PH
2406:e200::,2406:e200:ffff:ffff:ffff:ffff:ffff:ffff,HK
2406:e300::,2406:e300:ffff:ffff:ffff:ffff:ffff:ffff,HK
-2406:e400::,2406:e400:ffff:ffff:ffff:ffff:ffff:ffff,MV
+2406:e400::,2406:e401:ffff:ffff:ffff:ffff:ffff:ffff,MV
2406:e500::,2406:e500:ffff:ffff:ffff:ffff:ffff:ffff,CN
2406:e600::,2406:e600:ffff:ffff:ffff:ffff:ffff:ffff,AU
2406:e700::,2406:e700:ffff:ffff:ffff:ffff:ffff:ffff,JP
@@ -8295,7 +7880,6 @@
2407:a600::,2407:a600:ffff:ffff:ffff:ffff:ffff:ffff,ID
2407:a700::,2407:a700:ffff:ffff:ffff:ffff:ffff:ffff,HK
2407:a800::,2407:a800:ffff:ffff:ffff:ffff:ffff:ffff,JP
-2407:aa00::,2407:aa00:ffff:ffff:ffff:ffff:ffff:ffff,AU
2407:ab00::,2407:ab00:ffff:ffff:ffff:ffff:ffff:ffff,AU
2407:ac00::,2407:ac00:ffff:ffff:ffff:ffff:ffff:ffff,SG
2407:ad00::,2407:ad00:ffff:ffff:ffff:ffff:ffff:ffff,ID
@@ -8394,13 +7978,7 @@
240d::,240d:1f:ffff:ffff:ffff:ffff:ffff:ffff,JP
240d:8000::,240d:80ff:ffff:ffff:ffff:ffff:ffff:ffff,CN
240e::,240e:fff:ffff:ffff:ffff:ffff:ffff:ffff,CN
-240f::,240f:74:c239:ffff:ffff:ffff:ffff:ffff,JP
-240f:74:c23a::,240f:74:c23a:7fff:ffff:ffff:ffff:ffff,US
-240f:74:c23a:8000::,240f:78:8491:ffff:ffff:ffff:ffff:ffff,JP
-240f:78:8492::,240f:78:8492:7fff:ffff:ffff:ffff:ffff,GB
-240f:78:8492:8000::,240f:93:b6d:ffff:ffff:ffff:ffff:ffff,JP
-240f:93:b6e::,240f:93:b6e:7fff:ffff:ffff:ffff:ffff,US
-240f:93:b6e:8000::,240f:ff:ffff:ffff:ffff:ffff:ffff:ffff,JP
+240f::,240f:ff:ffff:ffff:ffff:ffff:ffff:ffff,JP
240f:8000::,240f:80ff:ffff:ffff:ffff:ffff:ffff:ffff,CN
2600::,2600:7:ffff:ffff:ffff:ffff:ffff:ffff,US
2600:100::,2600:10f:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -8462,13 +8040,7 @@
2600:a000::,2600:a00f:ffff:ffff:ffff:ffff:ffff:ffff,US
2600:a400::,2600:a40f:ffff:ffff:ffff:ffff:ffff:ffff,US
2600:e000::,2600:e00f:ffff:ffff:ffff:ffff:ffff:ffff,CA
-2601::,2601:6:117f:ffff:ffff:ffff:ffff:ffff,US
-2601:6:1180::,2601:6:1180:ffff:ffff:ffff:ffff:ffff,CA
-2601:6:1181::,2601:186:ffff:ffff:ffff:ffff:ffff:ffff,US
-2601:187::,2601:187:1:7fff:ffff:ffff:ffff:ffff,CA
-2601:187:1:8000::,2601:187:7f:ffff:ffff:ffff:ffff:ffff,US
-2601:187:80::,2601:187:80:7fff:ffff:ffff:ffff:ffff,CA
-2601:187:80:8000::,2601:fff:ffff:ffff:ffff:ffff:ffff:ffff,US
+2601::,2601:fff:ffff:ffff:ffff:ffff:ffff:ffff,US
2602::,2602:10f:ffff:ffff:ffff:ffff:ffff:ffff,US
2602:200::,2602:200:ffff:ffff:ffff:ffff:ffff:ffff,CA
2602:210::,2602:210:ffff:ffff:ffff:ffff:ffff:ffff,CA
@@ -8476,6 +8048,17 @@
2602:230::,2602:231:ffff:ffff:ffff:ffff:ffff:ffff,US
2602:240::,2602:25f:ffff:ffff:ffff:ffff:ffff:ffff,US
2602:300::,2602:3ff:ffff:ffff:ffff:ffff:ffff:ffff,US
+2602:ff55::,2602:ff55:fff:ffff:ffff:ffff:ffff:ffff,US
+2602:ff56::,2602:ff56:fff:ffff:ffff:ffff:ffff:ffff,PR
+2602:ff57::,2602:ff57:fff:ffff:ffff:ffff:ffff:ffff,US
+2602:ff58::,2602:ff58:fff:ffff:ffff:ffff:ffff:ffff,US
+2602:ff59::,2602:ff59:fff:ffff:ffff:ffff:ffff:ffff,US
+2602:ff5a::,2602:ff5a:fff:ffff:ffff:ffff:ffff:ffff,US
+2602:ff5b::,2602:ff5b:fff:ffff:ffff:ffff:ffff:ffff,US
+2602:ff5c::,2602:ff5c:fff:ffff:ffff:ffff:ffff:ffff,US
+2602:ff5d::,2602:ff5d:fff:ffff:ffff:ffff:ffff:ffff,US
+2602:ff5e::,2602:ff5e:fff:ffff:ffff:ffff:ffff:ffff,US
+2602:ff5f::,2602:ff5f:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ff60::,2602:ff60:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ff61::,2602:ff61:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ff62::,2602:ff62:fff:ffff:ffff:ffff:ffff:ffff,US
@@ -8500,7 +8083,6 @@
2602:ff75::,2602:ff75:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ff76::,2602:ff76:fff:ffff:ffff:ffff:ffff:ffff,CA
2602:ff77::,2602:ff77:fff:ffff:ffff:ffff:ffff:ffff,US
-2602:ff78::,2602:ff78:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ff79::,2602:ff79:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ff7a::,2602:ff7b:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ff7c::,2602:ff7c:fff:ffff:ffff:ffff:ffff:ffff,US
@@ -8600,9 +8182,7 @@
2602:ffd7::,2602:ffd7:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ffd8::,2602:ffd8:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ffd9::,2602:ffd9:fff:ffff:ffff:ffff:ffff:ffff,US
-2602:ffda::,2602:ffda:aa9:ffff:ffff:ffff:ffff:ffff,US
-2602:ffda:aaa::,2602:ffda:aaa:7fff:ffff:ffff:ffff:ffff,NL
-2602:ffda:aaa:8000::,2602:ffda:fff:ffff:ffff:ffff:ffff:ffff,US
+2602:ffda::,2602:ffda:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ffdb::,2602:ffdb:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ffdc::,2602:ffdc:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ffdd::,2602:ffdd:fff:ffff:ffff:ffff:ffff:ffff,US
@@ -8618,7 +8198,7 @@
2602:ffe7::,2602:ffe7:fff:ffff:ffff:ffff:ffff:ffff,PR
2602:ffe8::,2602:ffe8:3ff:ffff:ffff:ffff:ffff:ffff,US
2602:ffe8:400::,2602:ffe8:4ff:ffff:ffff:ffff:ffff:ffff,AU
-2602:ffe8:500::,2602:ffe9:fff:ffff:ffff:ffff:ffff:ffff,US
+2602:ffe8:500::,2602:ffe8:ffff:ffff:ffff:ffff:ffff:ffff,US
2602:ffea::,2602:ffeb:fff:ffff:ffff:ffff:ffff:ffff,US
2602:ffec::,2602:ffec:fff:ffff:ffff:ffff:ffff:ffff,CA
2602:ffed::,2602:ffed:fff:ffff:ffff:ffff:ffff:ffff,US
@@ -8639,8 +8219,144 @@
2602:fffc::,2602:fffc:ffff:ffff:ffff:ffff:ffff:ffff,US
2602:fffd::,2602:fffd:fff:ffff:ffff:ffff:ffff:ffff,CA
2602:ffff::,2602:ffff:fff:ffff:ffff:ffff:ffff:ffff,US
-2603::,2603:10ff:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603::,2603:100f:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603:1010::,2603:1010::ffff:ffff:ffff:ffff:ffff,AU
+2603:1010:1::,2603:1010:3:ffff:ffff:ffff:ffff:ffff,US
+2603:1010:4::,2603:1010:4:ffff:ffff:ffff:ffff:ffff,AU
+2603:1010:5::,2603:1010:ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1010:100::,2603:1010:100:ffff:ffff:ffff:ffff:ffff,AU
+2603:1010:101::,2603:1010:200:ffff:ffff:ffff:ffff:ffff,US
+2603:1010:201::,2603:1010:201:ffff:ffff:ffff:ffff:ffff,AU
+2603:1010:202::,2603:1015:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603:1016::,2603:1016::ffff:ffff:ffff:ffff:ffff,AU
+2603:1016:1::,2603:1016:1f:ffff:ffff:ffff:ffff:ffff,US
+2603:1016:20::,2603:1016:20:ffff:ffff:ffff:ffff:ffff,AU
+2603:1016:21::,2603:1016:27:ffff:ffff:ffff:ffff:ffff,US
+2603:1016:28::,2603:1016:28:ffff:ffff:ffff:ffff:ffff,AU
+2603:1016:29::,2603:1018:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603:1019::,2603:1019::ffff:ffff:ffff:ffff:ffff,AU
+2603:1019:1::,2603:1019:ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1019:100::,2603:1019:100:ffff:ffff:ffff:ffff:ffff,AU
+2603:1019:101::,2603:1019:1ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1019:200::,2603:1019:200:ffff:ffff:ffff:ffff:ffff,AU
+2603:1019:201::,2603:1020:1ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1020:200::,2603:1020:201:ffff:ffff:ffff:ffff:ffff,NL
+2603:1020:202::,2603:1023:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603:1024::,2603:1024:1:ffff:ffff:ffff:ffff:ffff,IE
+2603:1024:2::,2603:1024:1ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1024:200::,2603:1024:201:ffff:ffff:ffff:ffff:ffff,NL
+2603:1024:202::,2603:1026:2:ffff:ffff:ffff:ffff:ffff,US
+2603:1026:3::,2603:1026:3:ffff:ffff:ffff:ffff:ffff,FI
+2603:1026:4::,2603:1026:5:ffff:ffff:ffff:ffff:ffff,IE
+2603:1026:6::,2603:1026:22:ffff:ffff:ffff:ffff:ffff,US
+2603:1026:23::,2603:1026:23:ffff:ffff:ffff:ffff:ffff,FI
+2603:1026:24::,2603:1026:25:ffff:ffff:ffff:ffff:ffff,IE
+2603:1026:26::,2603:1026:2a:ffff:ffff:ffff:ffff:ffff,US
+2603:1026:2b::,2603:1026:2b:ffff:ffff:ffff:ffff:ffff,FI
+2603:1026:2c::,2603:1026:2d:ffff:ffff:ffff:ffff:ffff,IE
+2603:1026:2e::,2603:1026:202:ffff:ffff:ffff:ffff:ffff,US
+2603:1026:203::,2603:1026:203:ffff:ffff:ffff:ffff:ffff,NL
+2603:1026:204::,2603:1026:222:ffff:ffff:ffff:ffff:ffff,US
+2603:1026:223::,2603:1026:223:ffff:ffff:ffff:ffff:ffff,NL
+2603:1026:224::,2603:1026:2ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1026:300::,2603:1026:300:ffff:ffff:ffff:ffff:ffff,AT
+2603:1026:301::,2603:1026:327:ffff:ffff:ffff:ffff:ffff,US
+2603:1026:328::,2603:1026:328:ffff:ffff:ffff:ffff:ffff,AT
+2603:1026:329::,2603:1026:5ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1026:600::,2603:1026:600:ffff:ffff:ffff:ffff:ffff,GB
+2603:1026:601::,2603:1026:627:ffff:ffff:ffff:ffff:ffff,US
+2603:1026:628::,2603:1026:630:ffff:ffff:ffff:ffff:ffff,GB
+2603:1026:631::,2603:1026:7ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1026:800::,2603:1026:800:ffff:ffff:ffff:ffff:ffff,GB
+2603:1026:801::,2603:1026:827:ffff:ffff:ffff:ffff:ffff,US
+2603:1026:828::,2603:1026:828:ffff:ffff:ffff:ffff:ffff,GB
+2603:1026:829::,2603:1028:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603:1029::,2603:1029::ffff:ffff:ffff:ffff:ffff,DE
+2603:1029:1::,2603:1029:1ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1029:200::,2603:1029:200:ffff:ffff:ffff:ffff:ffff,DE
+2603:1029:201::,2603:1029:2ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1029:300::,2603:1029:300:ffff:ffff:ffff:ffff:ffff,AT
+2603:1029:301::,2603:1029:3ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1029:400::,2603:1029:404:ffff:ffff:ffff:ffff:ffff,IE
+2603:1029:405::,2603:1029:5ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1029:600::,2603:1029:605:ffff:ffff:ffff:ffff:ffff,NL
+2603:1029:606::,2603:1029:606:ffff:ffff:ffff:ffff:ffff,SE
+2603:1029:607::,2603:1029:aff:ffff:ffff:ffff:ffff:ffff,US
+2603:1029:b00::,2603:1029:b00:ffff:ffff:ffff:ffff:ffff,GB
+2603:1029:b01::,2603:1029:bff:ffff:ffff:ffff:ffff:ffff,US
+2603:1029:c00::,2603:1029:c00:ffff:ffff:ffff:ffff:ffff,GB
+2603:1029:c01::,2603:1030:208:ffff:ffff:ffff:ffff:ffff,US
+2603:1030:209::,2603:1030:20b:ffff:ffff:ffff:ffff:ffff,CA
+2603:1030:20c::,2603:1039:dff:ffff:ffff:ffff:ffff:ffff,US
+2603:1039:e00::,2603:1039:e01:ffff:ffff:ffff:ffff:ffff,CA
+2603:1039:e02::,2603:1039:fff:ffff:ffff:ffff:ffff:ffff,US
+2603:1039:1000::,2603:1039:1001:ffff:ffff:ffff:ffff:ffff,CA
+2603:1039:1002::,2603:1040:201:ffff:ffff:ffff:ffff:ffff,US
+2603:1040:202::,2603:1040:203:ffff:ffff:ffff:ffff:ffff,HK
+2603:1040:204::,2603:1040:3ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1040:400::,2603:1040:400:ffff:ffff:ffff:ffff:ffff,JP
+2603:1040:401::,2603:1045:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603:1046::,2603:1046:2:ffff:ffff:ffff:ffff:ffff,SG
+2603:1046:3::,2603:1046:1f:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:20::,2603:1046:22:ffff:ffff:ffff:ffff:ffff,SG
+2603:1046:23::,2603:1046:27:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:28::,2603:1046:2a:ffff:ffff:ffff:ffff:ffff,SG
+2603:1046:2b::,2603:1046:1ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:200::,2603:1046:201:ffff:ffff:ffff:ffff:ffff,HK
+2603:1046:202::,2603:1046:21f:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:220::,2603:1046:221:ffff:ffff:ffff:ffff:ffff,HK
+2603:1046:222::,2603:1046:227:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:228::,2603:1046:229:ffff:ffff:ffff:ffff:ffff,HK
+2603:1046:22a::,2603:1046:3ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:400::,2603:1046:401:ffff:ffff:ffff:ffff:ffff,JP
+2603:1046:402::,2603:1046:41f:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:420::,2603:1046:421:ffff:ffff:ffff:ffff:ffff,JP
+2603:1046:422::,2603:1046:427:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:428::,2603:1046:429:ffff:ffff:ffff:ffff:ffff,JP
+2603:1046:42a::,2603:1046:5ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:600::,2603:1046:601:ffff:ffff:ffff:ffff:ffff,JP
+2603:1046:602::,2603:1046:61f:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:620::,2603:1046:621:ffff:ffff:ffff:ffff:ffff,JP
+2603:1046:622::,2603:1046:627:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:628::,2603:1046:629:ffff:ffff:ffff:ffff:ffff,JP
+2603:1046:62a::,2603:1046:7ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:800::,2603:1046:800:ffff:ffff:ffff:ffff:ffff,MY
+2603:1046:801::,2603:1046:81f:ffff:ffff:ffff:ffff:ffff,US
+2603:1046:820::,2603:1046:820:ffff:ffff:ffff:ffff:ffff,MY
+2603:1046:821::,2603:1046:821:ffff:ffff:ffff:ffff:ffff,KR
+2603:1046:822::,2603:1048:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603:1049::,2603:1049:3:ffff:ffff:ffff:ffff:ffff,SG
+2603:1049:4::,2603:1049:1ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1049:200::,2603:1049:201:ffff:ffff:ffff:ffff:ffff,HK
+2603:1049:202::,2603:1049:3ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1049:400::,2603:1049:401:ffff:ffff:ffff:ffff:ffff,JP
+2603:1049:402::,2603:1049:5ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1049:600::,2603:1049:601:ffff:ffff:ffff:ffff:ffff,JP
+2603:1049:602::,2603:1049:7ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1049:800::,2603:1049:802:ffff:ffff:ffff:ffff:ffff,CN
+2603:1049:803::,2603:1049:9ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1049:a00::,2603:1049:a00:ffff:ffff:ffff:ffff:ffff,CN
+2603:1049:a01::,2603:1049:dff:ffff:ffff:ffff:ffff:ffff,US
+2603:1049:e00::,2603:1049:e00:ffff:ffff:ffff:ffff:ffff,IN
+2603:1049:e01::,2603:1049:fff:ffff:ffff:ffff:ffff:ffff,US
+2603:1049:1000::,2603:1049:1000:ffff:ffff:ffff:ffff:ffff,IN
+2603:1049:1001::,2603:104f:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603:1050::,2603:1050::ffff:ffff:ffff:ffff:ffff,BR
+2603:1050:1::,2603:1056:1f:ffff:ffff:ffff:ffff:ffff,US
+2603:1056:20::,2603:1056:20:ffff:ffff:ffff:ffff:ffff,BR
+2603:1056:21::,2603:1056:27:ffff:ffff:ffff:ffff:ffff,US
+2603:1056:28::,2603:1056:28:ffff:ffff:ffff:ffff:ffff,BR
+2603:1056:29::,2603:1058:f:ffff:ffff:ffff:ffff:ffff,US
+2603:1058:10::,2603:1058:1f:ffff:ffff:ffff:ffff:ffff,CL
+2603:1058:20::,2603:1058:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603:1059::,2603:1059::ffff:ffff:ffff:ffff:ffff,BR
+2603:1059:1::,2603:1059:1:ffff:ffff:ffff:ffff:ffff,CL
+2603:1059:2::,2603:1059:ff:ffff:ffff:ffff:ffff:ffff,US
+2603:1059:100::,2603:1059:100:ffff:ffff:ffff:ffff:ffff,BR
+2603:1059:101::,2603:10ff:ffff:ffff:ffff:ffff:ffff:ffff,US
2603:2000::,2603:30ff:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603:4000::,2603:40ff:ffff:ffff:ffff:ffff:ffff:ffff,US
+2603:5000::,2603:50ff:ffff:ffff:ffff:ffff:ffff:ffff,US
2604::,2604::ffff:ffff:ffff:ffff:ffff:ffff,US
2604:10::,2604:10:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:100::,2604:100:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -8663,7 +8379,6 @@
2604:980::,2604:980:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:a00::,2604:a00:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:a80::,2604:a80:ffff:ffff:ffff:ffff:ffff:ffff,US
-2604:b00::,2604:b00:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:b80::,2604:b80:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:c00::,2604:c00:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:c80::,2604:c80:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -8693,7 +8408,6 @@
2604:1900::,2604:1900:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:1980::,2604:1980:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:1a00::,2604:1a00:ffff:ffff:ffff:ffff:ffff:ffff,US
-2604:1a80::,2604:1a80:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:1b00::,2604:1b00:ffff:ffff:ffff:ffff:ffff:ffff,CA
2604:1b80::,2604:1b80:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:1c00::,2604:1c00:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -8950,7 +8664,7 @@
2604:9c80::,2604:9c80:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:9d00::,2604:9d00:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:9d80::,2604:9d80:ffff:ffff:ffff:ffff:ffff:ffff,US
-2604:9e00::,2604:9e00:ffff:ffff:ffff:ffff:ffff:ffff,US
+2604:9e00::,2604:9e01:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:9e80::,2604:9e80:ffff:ffff:ffff:ffff:ffff:ffff,CA
2604:9f00::,2604:9f00:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:9f80::,2604:9f80:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -8971,8 +8685,8 @@
2604:a780::,2604:a780:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:a800::,2604:a800:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:a880::,2604:a880:cac:ffff:ffff:ffff:ffff:ffff,US
-2604:a880:cad::,2604:a880:cad:7fff:ffff:ffff:ffff:ffff,CA
-2604:a880:cad:8000::,2604:a880:ffff:ffff:ffff:ffff:ffff:ffff,US
+2604:a880:cad::,2604:a880:cad:ffff:ffff:ffff:ffff:ffff,CA
+2604:a880:cae::,2604:a880:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:a900::,2604:a900:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:a980::,2604:a980:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:aa00::,2604:aa00:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -9002,6 +8716,7 @@
2604:b600::,2604:b600:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:b680::,2604:b680:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:b700::,2604:b700:ffff:ffff:ffff:ffff:ffff:ffff,US
+2604:b780::,2604:b780:fff:ffff:ffff:ffff:ffff:ffff,US
2604:b800::,2604:b800:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:b880::,2604:b880:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:b900::,2604:b900:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -9063,7 +8778,7 @@
2604:d600::,2604:d600:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:d680::,2604:d680:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:d700::,2604:d700:ffff:ffff:ffff:ffff:ffff:ffff,US
-2604:d780::,2604:d780:ffff:ffff:ffff:ffff:ffff:ffff,US
+2604:d780::,2604:d780:ffff:ffff:ffff:ffff:ffff:ffff,CA
2604:d800::,2604:d801:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:d900::,2604:d900:ffff:ffff:ffff:ffff:ffff:ffff,US
2604:d980::,2604:d980:ffff:ffff:ffff:ffff:ffff:ffff,CA
@@ -9159,7 +8874,7 @@
2605:900::,2605:900:ffff:ffff:ffff:ffff:ffff:ffff,US
2605:980::,2605:980:ffff:ffff:ffff:ffff:ffff:ffff,US
2605:a00::,2605:a00:ffff:ffff:ffff:ffff:ffff:ffff,US
-2605:a80::,2605:a80:ffff:ffff:ffff:ffff:ffff:ffff,CA
+2605:a80::,2605:a80:ffff:ffff:ffff:ffff:ffff:ffff,US
2605:b00::,2605:b00:fff:ffff:ffff:ffff:ffff:ffff,US
2605:b80::,2605:b80:ffff:ffff:ffff:ffff:ffff:ffff,US
2605:c00::,2605:c00:ffff:ffff:ffff:ffff:ffff:ffff,CA
@@ -9545,7 +9260,7 @@
2605:d180::,2605:d180:ffff:ffff:ffff:ffff:ffff:ffff,US
2605:d280::,2605:d280:ffff:ffff:ffff:ffff:ffff:ffff,US
2605:d300::,2605:d300:ffff:ffff:ffff:ffff:ffff:ffff,US
-2605:d380::,2605:d380:ffff:ffff:ffff:ffff:ffff:ffff,US
+2605:d380::,2605:d380:fff:ffff:ffff:ffff:ffff:ffff,US
2605:d400::,2605:d400:ffff:ffff:ffff:ffff:ffff:ffff,US
2605:d480::,2605:d480:ffff:ffff:ffff:ffff:ffff:ffff,US
2605:d500::,2605:d500:ffff:ffff:ffff:ffff:ffff:ffff,CA
@@ -9668,7 +9383,6 @@
2606:1100::,2606:1100:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:1180::,2606:1180:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:1200::,2606:1200:ffff:ffff:ffff:ffff:ffff:ffff,US
-2606:1280::,2606:1280:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:1300::,2606:1300:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:1380::,2606:1380:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:1400::,2606:1400:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -9710,7 +9424,51 @@
2606:2680::,2606:2680:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:2700::,2606:2700:ffff:ffff:ffff:ffff:ffff:ffff,CA
2606:2780::,2606:2780:ffff:ffff:ffff:ffff:ffff:ffff,US
-2606:2800::,2606:2800:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:2800::,2606:2800:420a:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:420b::,2606:2800:420b:ffff:ffff:ffff:ffff:ffff,BR
+2606:2800:420c::,2606:2800:420c:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:420d::,2606:2800:420d:ffff:ffff:ffff:ffff:ffff,EC
+2606:2800:420e::,2606:2800:5000:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:5001::,2606:2800:5001:ffff:ffff:ffff:ffff:ffff,ES
+2606:2800:5002::,2606:2800:500f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:5010::,2606:2800:5011:ffff:ffff:ffff:ffff:ffff,GB
+2606:2800:5012::,2606:2800:501f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:5020::,2606:2800:5021:ffff:ffff:ffff:ffff:ffff,DE
+2606:2800:5022::,2606:2800:5030:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:5031::,2606:2800:5033:ffff:ffff:ffff:ffff:ffff,FR
+2606:2800:5034::,2606:2800:503f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:5040::,2606:2800:5041:ffff:ffff:ffff:ffff:ffff,NL
+2606:2800:5042::,2606:2800:504f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:5050::,2606:2800:5051:ffff:ffff:ffff:ffff:ffff,AT
+2606:2800:5052::,2606:2800:505f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:5060::,2606:2800:5061:ffff:ffff:ffff:ffff:ffff,SE
+2606:2800:5062::,2606:2800:506f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:5070::,2606:2800:5071:ffff:ffff:ffff:ffff:ffff,DE
+2606:2800:5072::,2606:2800:507f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:5080::,2606:2800:5080:ffff:ffff:ffff:ffff:ffff,IT
+2606:2800:5081::,2606:2800:508f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:5090::,2606:2800:5090:ffff:ffff:ffff:ffff:ffff,PL
+2606:2800:5091::,2606:2800:5fff:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:6000::,2606:2800:6001:ffff:ffff:ffff:ffff:ffff,SG
+2606:2800:6002::,2606:2800:600f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:6010::,2606:2800:6011:ffff:ffff:ffff:ffff:ffff,HK
+2606:2800:6012::,2606:2800:601f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:6020::,2606:2800:6023:ffff:ffff:ffff:ffff:ffff,JP
+2606:2800:6024::,2606:2800:6027:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:6028::,2606:2800:6029:ffff:ffff:ffff:ffff:ffff,JP
+2606:2800:602a::,2606:2800:602a:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:602b::,2606:2800:602b:ffff:ffff:ffff:ffff:ffff,JP
+2606:2800:602c::,2606:2800:602f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:6030::,2606:2800:6031:ffff:ffff:ffff:ffff:ffff,AU
+2606:2800:6032::,2606:2800:6032:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:6033::,2606:2800:6033:ffff:ffff:ffff:ffff:ffff,AU
+2606:2800:6034::,2606:2800:603f:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:6040::,2606:2800:6041:ffff:ffff:ffff:ffff:ffff,HK
+2606:2800:6042::,2606:2800:60ef:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:60f0::,2606:2800:60f3:ffff:ffff:ffff:ffff:ffff,IN
+2606:2800:60f4::,2606:2800:7000:ffff:ffff:ffff:ffff:ffff,US
+2606:2800:7001::,2606:2800:7001:ffff:ffff:ffff:ffff:ffff,CO
+2606:2800:7002::,2606:2800:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:2880::,2606:2880:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:2900::,2606:2900:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:2980::,2606:2980:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -9722,9 +9480,7 @@
2606:2c80::,2606:2c80:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:2d00::,2606:2d00:fff:ffff:ffff:ffff:ffff:ffff,US
2606:2d80::,2606:2d80:ffff:ffff:ffff:ffff:ffff:ffff,US
-2606:2e00::,2606:2e00:8001:ffff:ffff:ffff:ffff:ffff,US
-2606:2e00:8002::,2606:2e00:8002:7fff:ffff:ffff:ffff:ffff,JP
-2606:2e00:8002:8000::,2606:2e00:800a:2:ffff:ffff:ffff:ffff,US
+2606:2e00::,2606:2e00:800a:2:ffff:ffff:ffff:ffff,US
2606:2e00:800a:3::,2606:2e00:800a:3:ffff:ffff:ffff:ffff,HK
2606:2e00:800a:4::,2606:2e00:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:2e80::,2606:2e80:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -9776,7 +9532,9 @@
2606:4580::,2606:4580:ffff:ffff:ffff:ffff:ffff:ffff,CA
2606:4600::,2606:4600:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:4680::,2606:4680:ffff:ffff:ffff:ffff:ffff:ffff,US
-2606:4700::,2606:4700:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:4700::,2606:4700:1000:7fff:ffff:ffff:ffff:ffff,US
+2606:4700:1000:8000::,2606:4700:1000:ffff:ffff:ffff:ffff:ffff,DE
+2606:4700:1001::,2606:4700:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:4780::,2606:4780:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:4800::,2606:4800:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:4880::,2606:4880:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -9895,7 +9653,6 @@
2606:8100::,2606:8100:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:8180::,2606:8180:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:8200::,2606:8200:ffff:ffff:ffff:ffff:ffff:ffff,US
-2606:8280::,2606:8280:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:8300::,2606:830f:ffff:ffff:ffff:ffff:ffff:ffff,CA
2606:8380::,2606:8380:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:8400::,2606:8400:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -10083,43 +9840,82 @@
2606:e000::,2606:e000:ffff:ffff:ffff:ffff:ffff:ffff,CA
2606:e080::,2606:e080:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:e100::,2606:e100:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:e180::,2606:e180:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:e200::,2606:e200:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:e280::,2606:e280:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:e300::,2606:e300:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:e380::,2606:e380:ffff:ffff:ffff:ffff:ffff:ffff,CA
2606:e400::,2606:e400:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:e480::,2606:e480:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:e500::,2606:e500:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:e580::,2606:e580:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:e600::,2606:e600:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:e680::,2606:e680:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:e700::,2606:e700:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:e780::,2606:e780:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:e800::,2606:e800:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:e880::,2606:e880:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:e900::,2606:e900:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:e980::,2606:e980:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:ea00::,2606:ea00:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:ea80::,2606:ea80:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:eb00::,2606:eb00:ffff:ffff:ffff:ffff:ffff:ffff,CA
+2606:eb80::,2606:eb80:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:ec00::,2606:ec00:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:ec80::,2606:ec80:ffff:ffff:ffff:ffff:ffff:ffff,CA
2606:ed00::,2606:ed00:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:ed80::,2606:ed80:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:ee00::,2606:ee00:ffff:ffff:ffff:ffff:ffff:ffff,CA
+2606:ee80::,2606:ee80:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:ef00::,2606:ef00:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:ef80::,2606:ef80:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:f000::,2606:f000:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:f080::,2606:f080:ffff:ffff:ffff:ffff:ffff:ffff,CA
2606:f100::,2606:f100:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:f180::,2606:f180:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:f200::,2606:f200:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:f280::,2606:f280:ffff:ffff:ffff:ffff:ffff:ffff,CA
2606:f300::,2606:f300:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:f380::,2606:f380:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:f400::,2606:f40f:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:f480::,2606:f480:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:f500::,2606:f500:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:f580::,2606:f580:ffff:ffff:ffff:ffff:ffff:ffff,KY
2606:f600::,2606:f600:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:f680::,2606:f680:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:f700::,2606:f700:ffff:ffff:ffff:ffff:ffff:ffff,CA
+2606:f780::,2606:f780:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:f800::,2606:f800:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:f880::,2606:f880:ffff:ffff:ffff:ffff:ffff:ffff,CA
2606:f900::,2606:f900:ffff:ffff:ffff:ffff:ffff:ffff,CA
+2606:f980::,2606:f980:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:fa00::,2606:fa00:ffff:ffff:ffff:ffff:ffff:ffff,CA
+2606:fa80::,2606:fa80:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:fb80::,2606:fb80:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:fc00::,2606:fc00:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:fc80::,2606:fc80:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:fd00::,2606:fd00:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:fd80::,2606:fd80:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:fe00::,2606:fe00:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:fe80::,2606:fe80:ffff:ffff:ffff:ffff:ffff:ffff,US
2606:ff00::,2606:ff00:ffff:ffff:ffff:ffff:ffff:ffff,US
+2606:ff80::,2606:ff80:ffff:ffff:ffff:ffff:ffff:ffff,US
2607::,2607::ffff:ffff:ffff:ffff:ffff:ffff,CA
+2607:80::,2607:80:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:100::,2607:100:ffff:ffff:ffff:ffff:ffff:ffff,CA
+2607:180::,2607:180:ffff:ffff:ffff:ffff:ffff:ffff,CA
2607:200::,2607:200:ffff:ffff:ffff:ffff:ffff:ffff,US
+2607:280::,2607:280:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:300::,2607:300:ffff:ffff:ffff:ffff:ffff:ffff,BS
+2607:380::,2607:380:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:400::,2607:400:ffff:ffff:ffff:ffff:ffff:ffff,US
+2607:480::,2607:480:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:500::,2607:500:ffff:ffff:ffff:ffff:ffff:ffff,US
+2607:580::,2607:580:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:600::,2607:600:ffff:ffff:ffff:ffff:ffff:ffff,US
+2607:680::,2607:680:ffff:ffff:ffff:ffff:ffff:ffff,CA
2607:700::,2607:700:ffff:ffff:ffff:ffff:ffff:ffff,US
+2607:780::,2607:780:ffff:ffff:ffff:ffff:ffff:ffff,CA
2607:800::,2607:800:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:900::,2607:900:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:a00::,2607:a00:ffff:ffff:ffff:ffff:ffff:ffff,CA
@@ -10207,7 +10003,7 @@
2607:5d00::,2607:5d00:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:5e00::,2607:5e00:ffff:ffff:ffff:ffff:ffff:ffff,CA
2607:5f00::,2607:5f00:ffff:ffff:ffff:ffff:ffff:ffff,US
-2607:6000::,2607:6000:ffff:ffff:ffff:ffff:ffff:ffff,US
+2607:6000::,2607:600f:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:6100::,2607:6100:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:6200::,2607:6200:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:6300::,2607:6300:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -10377,14 +10173,8 @@
2607:f0b0::,2607:f0b0:ffff:ffff:ffff:ffff:ffff:ffff,CA
2607:f0c0::,2607:f0c0:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f0c8::,2607:f0c8:ffff:ffff:ffff:ffff:ffff:ffff,CA
-2607:f0d0::,2607:f0d0:1c00:ffff:ffff:ffff:ffff:ffff,US
-2607:f0d0:1c01::,2607:f0d0:1c01:7fff:ffff:ffff:ffff:ffff,MX
-2607:f0d0:1c01:8000::,2607:f0d0:3700:ffff:ffff:ffff:ffff:ffff,US
-2607:f0d0:3701::,2607:f0d0:3701:7fff:ffff:ffff:ffff:ffff,CA
-2607:f0d0:3701:8000::,2607:f0d1:ffff:ffff:ffff:ffff:ffff:ffff,US
-2607:f0d8::,2607:f0dc:5001:7fff:ffff:ffff:ffff:ffff,US
-2607:f0dc:5001:8000::,2607:f0dc:5001:ffff:ffff:ffff:ffff:ffff,TW
-2607:f0dc:5002::,2607:f0e0:ffff:ffff:ffff:ffff:ffff:ffff,US
+2607:f0d0::,2607:f0d1:ffff:ffff:ffff:ffff:ffff:ffff,US
+2607:f0d8::,2607:f0e0:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f0e8::,2607:f0e8:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f0f8::,2607:f0f8:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f100::,2607:f100:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -10447,7 +10237,7 @@
2607:f2e8::,2607:f2e8:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f2f0::,2607:f2f0:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f2f8::,2607:f2f8:ffff:ffff:ffff:ffff:ffff:ffff,US
-2607:f300::,2607:f300:ffff:ffff:ffff:ffff:ffff:ffff,US
+2607:f300::,2607:f300:fff:ffff:ffff:ffff:ffff:ffff,US
2607:f308::,2607:f308:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f310::,2607:f310:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f318::,2607:f318:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -10573,9 +10363,7 @@
2607:f720::,2607:f720:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f728::,2607:f728:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f738::,2607:f738:ffff:ffff:ffff:ffff:ffff:ffff,US
-2607:f740::,2607:f740:8f:ffff:ffff:ffff:ffff:ffff,US
-2607:f740:90::,2607:f740:90:7fff:ffff:ffff:ffff:ffff,HK
-2607:f740:90:8000::,2607:f740:ffff:ffff:ffff:ffff:ffff:ffff,US
+2607:f740::,2607:f740:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f748::,2607:f748:ffff:ffff:ffff:ffff:ffff:ffff,CA
2607:f750::,2607:f750:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:f758::,2607:f758:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -10763,7 +10551,6 @@
2607:fd80::,2607:fd80:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:fd88::,2607:fd88:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:fd90::,2607:fd90:ffff:ffff:ffff:ffff:ffff:ffff,US
-2607:fd98::,2607:fd98:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:fda0::,2607:fda0:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:fda8::,2607:fda8:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:fdb0::,2607:fdb0:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -10779,7 +10566,7 @@
2607:fe00::,2607:fe00:ffff:ffff:ffff:ffff:ffff:ffff,JM
2607:fe08::,2607:fe08:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:fe10::,2607:fe10:ffff:ffff:ffff:ffff:ffff:ffff,US
-2607:fe18::,2607:fe18:ffff:ffff:ffff:ffff:ffff:ffff,US
+2607:fe18::,2607:fe18:fff:ffff:ffff:ffff:ffff:ffff,US
2607:fe20::,2607:fe20:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:fe28::,2607:fe28:ffff:ffff:ffff:ffff:ffff:ffff,US
2607:fe30::,2607:fe30:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -11062,82 +10849,37 @@
2620:0:ee0::,2620::ee0:ffff:ffff:ffff:ffff:ffff,US
2620:0:ef0::,2620::ef0:ffff:ffff:ffff:ffff:ffff,US
2620:0:f00::,2620::f7f:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1000::,2620::100b:ffff:ffff:ffff:ffff:ffff,US
-2620:0:100c::,2620::100c:7fff:ffff:ffff:ffff:ffff,CA
-2620:0:100c:8000::,2620::100c:ffff:ffff:ffff:ffff:ffff,US
+2620:0:1000::,2620::100c:ffff:ffff:ffff:ffff:ffff,US
2620:0:100d::,2620::100d:ffff:ffff:ffff:ffff:ffff,CA
2620:0:100e::,2620::1010:ffff:ffff:ffff:ffff:ffff,US
2620:0:1011::,2620::1011:7fff:ffff:ffff:ffff:ffff,AR
-2620:0:1011:8000::,2620::1017:7fff:ffff:ffff:ffff:ffff,US
-2620:0:1017:8000::,2620::1017:ffff:ffff:ffff:ffff:ffff,CO
-2620:0:1018::,2620::1019:ffff:ffff:ffff:ffff:ffff,US
-2620:0:101a::,2620::101a:7fff:ffff:ffff:ffff:ffff,BR
-2620:0:101a:8000::,2620::101f:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1020::,2620::1020:7fff:ffff:ffff:ffff:ffff,MX
-2620:0:1020:8000::,2620::1024:ffff:ffff:ffff:ffff:ffff,US
+2620:0:1011:8000::,2620::1024:ffff:ffff:ffff:ffff:ffff,US
2620:0:1025::,2620::1025:7fff:ffff:ffff:ffff:ffff,BR
2620:0:1025:8000::,2620::1034:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1035::,2620::1035:ffff:ffff:ffff:ffff:ffff,CA
-2620:0:1036::,2620::103f:ffff:ffff:ffff:ffff:ffff,US
+2620:0:1035::,2620::1035:7fff:ffff:ffff:ffff:ffff,CA
+2620:0:1035:8000::,2620::103f:ffff:ffff:ffff:ffff:ffff,US
2620:0:1040::,2620::1040:7fff:ffff:ffff:ffff:ffff,IE
2620:0:1040:8000::,2620::1041:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1042::,2620::1042:ffff:ffff:ffff:ffff:ffff,GB
+2620:0:1042::,2620::1042:7fff:ffff:ffff:ffff:ffff,GB
+2620:0:1042:8000::,2620::1042:ffff:ffff:ffff:ffff:ffff,US
2620:0:1043::,2620::1043:7fff:ffff:ffff:ffff:ffff,SE
2620:0:1043:8000::,2620::1044:ffff:ffff:ffff:ffff:ffff,US
2620:0:1045::,2620::1045:7fff:ffff:ffff:ffff:ffff,IL
-2620:0:1045:8000::,2620::1045:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1046::,2620::1046:7fff:ffff:ffff:ffff:ffff,DE
-2620:0:1046:8000::,2620::1046:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1047::,2620::1047:7fff:ffff:ffff:ffff:ffff,FR
-2620:0:1047:8000::,2620::1047:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1048::,2620::1048:7fff:ffff:ffff:ffff:ffff,IL
-2620:0:1048:8000::,2620::1048:ffff:ffff:ffff:ffff:ffff,US
+2620:0:1045:8000::,2620::1048:ffff:ffff:ffff:ffff:ffff,US
2620:0:1049::,2620::1049:7fff:ffff:ffff:ffff:ffff,DE
2620:0:1049:8000::,2620::1049:ffff:ffff:ffff:ffff:ffff,US
2620:0:104a::,2620::104a:7fff:ffff:ffff:ffff:ffff,AE
-2620:0:104a:8000::,2620::104a:ffff:ffff:ffff:ffff:ffff,US
-2620:0:104b::,2620::104b:7fff:ffff:ffff:ffff:ffff,NL
-2620:0:104b:8000::,2620::104b:ffff:ffff:ffff:ffff:ffff,US
-2620:0:104c::,2620::104c:7fff:ffff:ffff:ffff:ffff,CH
-2620:0:104c:8000::,2620::104f:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1050::,2620::1050:ffff:ffff:ffff:ffff:ffff,GB
+2620:0:104a:8000::,2620::104f:ffff:ffff:ffff:ffff:ffff,US
+2620:0:1050::,2620::1050:7fff:ffff:ffff:ffff:ffff,GB
+2620:0:1050:8000::,2620::1050:ffff:ffff:ffff:ffff:ffff,US
2620:0:1051::,2620::1051:7fff:ffff:ffff:ffff:ffff,ES
2620:0:1051:8000::,2620::1051:ffff:ffff:ffff:ffff:ffff,US
2620:0:1052::,2620::1052:7fff:ffff:ffff:ffff:ffff,IE
-2620:0:1052:8000::,2620::1052:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1053::,2620::1053:7fff:ffff:ffff:ffff:ffff,FR
-2620:0:1053:8000::,2620::1055:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1056::,2620::1056:7fff:ffff:ffff:ffff:ffff,FR
-2620:0:1056:8000::,2620::1056:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1057::,2620::1057:7fff:ffff:ffff:ffff:ffff,DE
-2620:0:1057:8000::,2620::1059:ffff:ffff:ffff:ffff:ffff,US
-2620:0:105a::,2620::105a:ffff:ffff:ffff:ffff:ffff,UG
-2620:0:105b::,2620::105e:ffff:ffff:ffff:ffff:ffff,US
+2620:0:1052:8000::,2620::105e:ffff:ffff:ffff:ffff:ffff,US
2620:0:105f::,2620::105f:ffff:ffff:ffff:ffff:ffff,CH
-2620:0:1060::,2620::1060:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1061::,2620::1061:7fff:ffff:ffff:ffff:ffff,CH
-2620:0:1061:8000::,2620::1068:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1069::,2620::1069:7fff:ffff:ffff:ffff:ffff,PL
-2620:0:1069:8000::,2620::106a:ffff:ffff:ffff:ffff:ffff,US
-2620:0:106b::,2620::106b:7fff:ffff:ffff:ffff:ffff,RU
-2620:0:106b:8000::,2620::106d:ffff:ffff:ffff:ffff:ffff,US
-2620:0:106e::,2620::106e:7fff:ffff:ffff:ffff:ffff,ZA
-2620:0:106e:8000::,2620::1072:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1073::,2620::1073:ffff:ffff:ffff:ffff:ffff,GB
-2620:0:1074::,2620::1074:7fff:ffff:ffff:ffff:ffff,IE
-2620:0:1074:8000::,2620::1076:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1077::,2620::1077:7fff:ffff:ffff:ffff:ffff,DE
-2620:0:1077:8000::,2620::1078:ffff:ffff:ffff:ffff:ffff,US
-2620:0:1079::,2620::1079:7fff:ffff:ffff:ffff:ffff,DK
-2620:0:1079:8000::,2620::107a:7fff:ffff:ffff:ffff:ffff,US
-2620:0:107a:8000::,2620::107a:ffff:ffff:ffff:ffff:ffff,IE
-2620:0:107b::,2620::107b:ffff:ffff:ffff:ffff:ffff,US
-2620:0:107c::,2620::107c:7fff:ffff:ffff:ffff:ffff,GR
-2620:0:107c:8000::,2620::107e:ffff:ffff:ffff:ffff:ffff,US
-2620:0:107f::,2620::107f:7fff:ffff:ffff:ffff:ffff,BE
-2620:0:107f:8000::,2620::10e7:ffff:ffff:ffff:ffff:ffff,US
-2620:0:10e8::,2620::10e8:7fff:ffff:ffff:ffff:ffff,AR
-2620:0:10e8:8000::,2620::10ff:ffff:ffff:ffff:ffff:ffff,US
+2620:0:1060::,2620::1072:ffff:ffff:ffff:ffff:ffff,US
+2620:0:1073::,2620::1073:7fff:ffff:ffff:ffff:ffff,GB
+2620:0:1073:8000::,2620::10ff:ffff:ffff:ffff:ffff:ffff,US
2620:0:1400::,2620::143f:ffff:ffff:ffff:ffff:ffff,US
2620:0:1500::,2620::157f:ffff:ffff:ffff:ffff:ffff,US
2620:0:1600::,2620::167f:ffff:ffff:ffff:ffff:ffff,US
@@ -11161,7 +10903,7 @@
2620:0:1c00::,2620::1cff:ffff:ffff:ffff:ffff:ffff,US
2620:0:2000::,2620::203f:ffff:ffff:ffff:ffff:ffff,US
2620:0:2210::,2620::2210:ffff:ffff:ffff:ffff:ffff,US
-2620:0:2220::,2620::2220:ffff:ffff:ffff:ffff:ffff,CA
+2620:0:2220::,2620::222f:ffff:ffff:ffff:ffff:ffff,CA
2620:0:2240::,2620::2240:ffff:ffff:ffff:ffff:ffff,US
2620:0:2250::,2620::2250:ffff:ffff:ffff:ffff:ffff,US
2620:0:2260::,2620::2260:ffff:ffff:ffff:ffff:ffff,US
@@ -11404,7 +11146,7 @@
2620:2f:4000::,2620:2f:4000:ffff:ffff:ffff:ffff:ffff,US
2620:2f:8000::,2620:2f:8000:ffff:ffff:ffff:ffff:ffff,US
2620:2f:c000::,2620:2f:c000:ffff:ffff:ffff:ffff:ffff,US
-2620:30::,2620:30::ffff:ffff:ffff:ffff:ffff,US
+2620:30::,2620:30:f:ffff:ffff:ffff:ffff:ffff,US
2620:30:4000::,2620:30:4000:ffff:ffff:ffff:ffff:ffff,US
2620:30:8000::,2620:30:8000:ffff:ffff:ffff:ffff:ffff,US
2620:30:c000::,2620:30:c00f:ffff:ffff:ffff:ffff:ffff,US
@@ -11794,7 +11536,6 @@
2620:98:8000::,2620:98:8000:ffff:ffff:ffff:ffff:ffff,US
2620:98:c000::,2620:98:c000:ffff:ffff:ffff:ffff:ffff,US
2620:99::,2620:99::ffff:ffff:ffff:ffff:ffff,US
-2620:99:4000::,2620:99:4000:ffff:ffff:ffff:ffff:ffff,CA
2620:99:8000::,2620:99:8000:ffff:ffff:ffff:ffff:ffff,US
2620:99:c000::,2620:99:c000:ffff:ffff:ffff:ffff:ffff,US
2620:9a::,2620:9a::ffff:ffff:ffff:ffff:ffff,CA
@@ -11920,7 +11661,7 @@
2620:b9:4000::,2620:b9:4000:ffff:ffff:ffff:ffff:ffff,US
2620:b9:8000::,2620:b9:8000:ffff:ffff:ffff:ffff:ffff,US
2620:b9:c000::,2620:b9:c000:ffff:ffff:ffff:ffff:ffff,US
-2620:ba::,2620:ba::ffff:ffff:ffff:ffff:ffff,US
+2620:ba::,2620:ba:ff:ffff:ffff:ffff:ffff:ffff,US
2620:ba:4000::,2620:ba:4000:ffff:ffff:ffff:ffff:ffff,US
2620:ba:8000::,2620:ba:8000:ffff:ffff:ffff:ffff:ffff,US
2620:ba:c000::,2620:ba:c000:ffff:ffff:ffff:ffff:ffff,US
@@ -12055,7 +11796,7 @@
2620:db:c000::,2620:db:c000:ffff:ffff:ffff:ffff:ffff,US
2620:dc::,2620:dc::ffff:ffff:ffff:ffff:ffff,US
2620:dc:8::,2620:dc:8:ffff:ffff:ffff:ffff:ffff,US
-2620:dc:4000::,2620:dc:4000:ffff:ffff:ffff:ffff:ffff,US
+2620:dc:4000::,2620:dc:40ff:ffff:ffff:ffff:ffff:ffff,US
2620:dc:8000::,2620:dc:8000:ffff:ffff:ffff:ffff:ffff,CA
2620:dc:c000::,2620:dc:c000:ffff:ffff:ffff:ffff:ffff,US
2620:dd::,2620:dd::ffff:ffff:ffff:ffff:ffff,CA
@@ -12135,28 +11876,50 @@
2620:ef:8000::,2620:ef:8000:ffff:ffff:ffff:ffff:ffff,US
2620:ef:c000::,2620:ef:c000:ffff:ffff:ffff:ffff:ffff,US
2620:f0::,2620:f0::ffff:ffff:ffff:ffff:ffff,US
-2620:f0:4000::,2620:f0:4000:ffff:ffff:ffff:ffff:ffff,US
+2620:f0:4000::,2620:f0:400f:ffff:ffff:ffff:ffff:ffff,US
2620:f0:8000::,2620:f0:8000:ffff:ffff:ffff:ffff:ffff,US
+2620:f0:c000::,2620:f0:c00f:ffff:ffff:ffff:ffff:ffff,US
2620:f1::,2620:f1::ffff:ffff:ffff:ffff:ffff,US
+2620:f1:4000::,2620:f1:4000:ffff:ffff:ffff:ffff:ffff,CA
2620:f1:8000::,2620:f1:8000:ffff:ffff:ffff:ffff:ffff,US
+2620:f1:c000::,2620:f1:c000:ffff:ffff:ffff:ffff:ffff,US
2620:f2::,2620:f2::ffff:ffff:ffff:ffff:ffff,CA
+2620:f2:4000::,2620:f2:4000:ffff:ffff:ffff:ffff:ffff,US
2620:f2:8000::,2620:f2:8000:ffff:ffff:ffff:ffff:ffff,US
+2620:f2:c000::,2620:f2:c000:ffff:ffff:ffff:ffff:ffff,US
2620:f3::,2620:f3::ffff:ffff:ffff:ffff:ffff,US
+2620:f3:4000::,2620:f3:4000:ffff:ffff:ffff:ffff:ffff,US
2620:f3:8000::,2620:f3:8000:ffff:ffff:ffff:ffff:ffff,US
+2620:f3:c000::,2620:f3:c000:ffff:ffff:ffff:ffff:ffff,US
2620:f4::,2620:f4::ffff:ffff:ffff:ffff:ffff,US
+2620:f4:4000::,2620:f4:40ff:ffff:ffff:ffff:ffff:ffff,US
2620:f4:8000::,2620:f4:8000:ffff:ffff:ffff:ffff:ffff,CA
+2620:f4:c000::,2620:f4:c000:ffff:ffff:ffff:ffff:ffff,US
2620:f5::,2620:f5::ffff:ffff:ffff:ffff:ffff,US
+2620:f5:4000::,2620:f5:4000:ffff:ffff:ffff:ffff:ffff,US
2620:f5:8000::,2620:f5:8000:ffff:ffff:ffff:ffff:ffff,US
+2620:f5:c000::,2620:f5:c000:ffff:ffff:ffff:ffff:ffff,US
+2620:f6:4000::,2620:f6:4000:ffff:ffff:ffff:ffff:ffff,US
2620:f6:8000::,2620:f6:8000:ffff:ffff:ffff:ffff:ffff,US
+2620:f6:c000::,2620:f6:c000:ffff:ffff:ffff:ffff:ffff,CA
2620:f7::,2620:f7::ffff:ffff:ffff:ffff:ffff,US
+2620:f7:4000::,2620:f7:4000:ffff:ffff:ffff:ffff:ffff,US
2620:f7:8000::,2620:f7:8000:ffff:ffff:ffff:ffff:ffff,US
+2620:f7:c000::,2620:f7:c000:ffff:ffff:ffff:ffff:ffff,US
2620:f8::,2620:f8::ffff:ffff:ffff:ffff:ffff,US
+2620:f8:4000::,2620:f8:4000:ffff:ffff:ffff:ffff:ffff,US
2620:f8:8000::,2620:f8:8000:ffff:ffff:ffff:ffff:ffff,US
+2620:f8:c000::,2620:f8:c000:ffff:ffff:ffff:ffff:ffff,US
2620:f9::,2620:f9:f:ffff:ffff:ffff:ffff:ffff,US
+2620:f9:4000::,2620:f9:4000:ffff:ffff:ffff:ffff:ffff,US
2620:f9:8000::,2620:f9:8000:ffff:ffff:ffff:ffff:ffff,US
+2620:f9:c000::,2620:f9:c000:ffff:ffff:ffff:ffff:ffff,US
2620:fa::,2620:fa::ffff:ffff:ffff:ffff:ffff,US
+2620:fa:4000::,2620:fa:4000:ffff:ffff:ffff:ffff:ffff,US
2620:fa:8000::,2620:fa:8000:ffff:ffff:ffff:ffff:ffff,CA
+2620:fa:c000::,2620:fa:c000:ffff:ffff:ffff:ffff:ffff,US
2620:fb::,2620:fb::ffff:ffff:ffff:ffff:ffff,US
+2620:fb:4000::,2620:fb:4000:ffff:ffff:ffff:ffff:ffff,US
2620:fb:8000::,2620:fb:8000:ffff:ffff:ffff:ffff:ffff,US
2620:fc::,2620:fc::ffff:ffff:ffff:ffff:ffff,CA
2620:fc:8000::,2620:fc:8000:ffff:ffff:ffff:ffff:ffff,US
@@ -12380,9 +12143,13 @@
2620:10d:9000::,2620:10d:900f:ffff:ffff:ffff:ffff:ffff,US
2620:10d:a000::,2620:10d:a0ff:ffff:ffff:ffff:ffff:ffff,US
2620:10d:b000::,2620:10d:b00f:ffff:ffff:ffff:ffff:ffff,US
-2620:10d:c000::,2620:10d:c0f0:ffff:ffff:ffff:ffff:ffff,US
-2620:10d:c0f1::,2620:10d:c0f1:7fff:ffff:ffff:ffff:ffff,KR
-2620:10d:c0f1:8000::,2620:10d:c0ff:ffff:ffff:ffff:ffff:ffff,US
+2620:10d:c000::,2620:10d:c091:ffff:ffff:ffff:ffff:ffff,US
+2620:10d:c092::,2620:10d:c092:7fff:ffff:ffff:ffff:ffff,GB
+2620:10d:c092:8000::,2620:10d:c0c0:ffff:ffff:ffff:ffff:ffff,US
+2620:10d:c0c1::,2620:10d:c0c1:7fff:ffff:ffff:ffff:ffff,IE
+2620:10d:c0c1:8000::,2620:10d:c0e0:ffff:ffff:ffff:ffff:ffff,US
+2620:10d:c0e1::,2620:10d:c0e1:7fff:ffff:ffff:ffff:ffff,AU
+2620:10d:c0e1:8000::,2620:10d:c0ff:ffff:ffff:ffff:ffff:ffff,US
2620:10d:d000::,2620:10d:d00f:ffff:ffff:ffff:ffff:ffff,CA
2620:10d:e000::,2620:10d:e00f:ffff:ffff:ffff:ffff:ffff,CA
2620:10d:f000::,2620:10d:f00f:ffff:ffff:ffff:ffff:ffff,US
@@ -12470,9 +12237,7 @@
2620:113:5000::,2620:113:500f:ffff:ffff:ffff:ffff:ffff,US
2620:113:6000::,2620:113:600f:ffff:ffff:ffff:ffff:ffff,US
2620:113:7000::,2620:113:700f:ffff:ffff:ffff:ffff:ffff,US
-2620:113:8000::,2620:113:80bf:ffff:ffff:ffff:ffff:ffff,US
-2620:113:80c0::,2620:113:80c0:7fff:ffff:ffff:ffff:ffff,DE
-2620:113:80c0:8000::,2620:113:80ff:ffff:ffff:ffff:ffff:ffff,US
+2620:113:8000::,2620:113:80ff:ffff:ffff:ffff:ffff:ffff,US
2620:113:9000::,2620:113:900f:ffff:ffff:ffff:ffff:ffff,US
2620:113:a000::,2620:113:a00f:ffff:ffff:ffff:ffff:ffff,US
2620:113:b000::,2620:113:b00f:ffff:ffff:ffff:ffff:ffff,US
@@ -12506,7 +12271,6 @@
2620:115:8000::,2620:115:800f:ffff:ffff:ffff:ffff:ffff,US
2620:115:9000::,2620:115:900f:ffff:ffff:ffff:ffff:ffff,US
2620:115:a000::,2620:115:a00f:ffff:ffff:ffff:ffff:ffff,US
-2620:115:a096::,2620:115:a096:7fff:ffff:ffff:ffff:ffff,US
2620:115:b000::,2620:115:b00f:ffff:ffff:ffff:ffff:ffff,US
2620:115:c000::,2620:115:c00f:ffff:ffff:ffff:ffff:ffff,US
2620:115:d000::,2620:115:d0ff:ffff:ffff:ffff:ffff:ffff,US
@@ -12750,6 +12514,19 @@
2620:124:a000::,2620:124:a00f:ffff:ffff:ffff:ffff:ffff,US
2620:124:b000::,2620:124:b0ff:ffff:ffff:ffff:ffff:ffff,CA
2620:124:c000::,2620:124:c00f:ffff:ffff:ffff:ffff:ffff,US
+2620:124:d000::,2620:124:d0ff:ffff:ffff:ffff:ffff:ffff,US
+2620:124:e000::,2620:124:e0ff:ffff:ffff:ffff:ffff:ffff,US
+2620:124:f000::,2620:124:f00f:ffff:ffff:ffff:ffff:ffff,US
+2620:125::,2620:125:ff:ffff:ffff:ffff:ffff:ffff,US
+2620:125:1000::,2620:125:100f:ffff:ffff:ffff:ffff:ffff,US
+2620:125:2000::,2620:125:200f:ffff:ffff:ffff:ffff:ffff,US
+2620:125:3000::,2620:125:30ff:ffff:ffff:ffff:ffff:ffff,US
+2620:125:4000::,2620:125:400f:ffff:ffff:ffff:ffff:ffff,US
+2620:125:5000::,2620:125:500f:ffff:ffff:ffff:ffff:ffff,CA
+2620:125:6000::,2620:125:600f:ffff:ffff:ffff:ffff:ffff,US
+2620:125:7000::,2620:125:70ff:ffff:ffff:ffff:ffff:ffff,US
+2620:125:8000::,2620:125:800f:ffff:ffff:ffff:ffff:ffff,US
+2620:125:9000::,2620:125:90ff:ffff:ffff:ffff:ffff:ffff,US
2620:140::,2620:140:3ff:ffff:ffff:ffff:ffff:ffff,US
2620:141::,2620:141:fff:ffff:ffff:ffff:ffff:ffff,US
2620:143::,2620:143:7ff:ffff:ffff:ffff:ffff:ffff,US
@@ -12776,12 +12553,9 @@
2620:159::,2620:159:fff:ffff:ffff:ffff:ffff:ffff,US
2620:15a::,2620:15a:fff:ffff:ffff:ffff:ffff:ffff,US
2620:15b::,2620:15b:fff:ffff:ffff:ffff:ffff:ffff,US
-2620:15c::,2620:15c::7fff:ffff:ffff:ffff:ffff,CA
-2620:15c:0:8000::,2620:15c:4:ffff:ffff:ffff:ffff:ffff,US
+2620:15c::,2620:15c:4:ffff:ffff:ffff:ffff:ffff,US
2620:15c:5::,2620:15c:5:ffff:ffff:ffff:ffff:ffff,BR
-2620:15c:6::,2620:15c:d:ffff:ffff:ffff:ffff:ffff,US
-2620:15c:e::,2620:15c:e:7fff:ffff:ffff:ffff:ffff,MX
-2620:15c:e:8000::,2620:15c:fff:ffff:ffff:ffff:ffff:ffff,US
+2620:15c:6::,2620:15c:fff:ffff:ffff:ffff:ffff:ffff,US
2620:15d::,2620:15e:fff:ffff:ffff:ffff:ffff:ffff,US
2620:15f::,2620:15f:fff:ffff:ffff:ffff:ffff:ffff,US
2620:160::,2620:160:ffff:ffff:ffff:ffff:ffff:ffff,US
@@ -12815,7 +12589,8 @@
2620:1c0::,2620:1c0:ffff:ffff:ffff:ffff:ffff:ffff,US
2620:1d0::,2620:1d1:ffff:ffff:ffff:ffff:ffff:ffff,US
2620:1d2::,2620:1d2:ffff:ffff:ffff:ffff:ffff:ffff,CA
-2620:1d3::,2620:1d3:ffff:ffff:ffff:ffff:ffff:ffff,US
+2620:1d3::,2620:1d5:fff:ffff:ffff:ffff:ffff:ffff,US
+2620:1d6::,2620:1d6:fff:ffff:ffff:ffff:ffff:ffff,US
2620:1e0::,2620:1e1:fff:ffff:ffff:ffff:ffff:ffff,US
2620:1e2::,2620:1e2:fff:ffff:ffff:ffff:ffff:ffff,US
2620:1e3::,2620:1e3:fff:ffff:ffff:ffff:ffff:ffff,US
@@ -12828,7 +12603,6 @@
2620:1ea::,2620:1ea:fff:ffff:ffff:ffff:ffff:ffff,US
2620:1eb::,2620:1eb:fff:ffff:ffff:ffff:ffff:ffff,US
2620:1ec::,2620:1ec:fff:ffff:ffff:ffff:ffff:ffff,US
-2620:1ed::,2620:1ed:fff:ffff:ffff:ffff:ffff:ffff,CA
2620:1ee::,2620:1ee:fff:ffff:ffff:ffff:ffff:ffff,US
2620:1ef::,2620:1ef:fff:ffff:ffff:ffff:ffff:ffff,US
2620:1f0::,2620:1f1:fff:ffff:ffff:ffff:ffff:ffff,US
@@ -13100,7 +12874,6 @@
2801:0:390::,2801::390:ffff:ffff:ffff:ffff:ffff,CO
2801:0:3b0::,2801::3b0:ffff:ffff:ffff:ffff:ffff,CO
2801:0:3c0::,2801::3c0:ffff:ffff:ffff:ffff:ffff,CO
-2801:0:3d0::,2801::3d0:ffff:ffff:ffff:ffff:ffff,CO
2801:0:3e0::,2801::3e0:ffff:ffff:ffff:ffff:ffff,AR
2801:0:3f0::,2801::3f0:ffff:ffff:ffff:ffff:ffff,AR
2801:0:400::,2801::400:ffff:ffff:ffff:ffff:ffff,CL
@@ -13123,6 +12896,7 @@
2801:10:4000::,2801:10:4000:ffff:ffff:ffff:ffff:ffff,AR
2801:10:6000::,2801:10:6000:ffff:ffff:ffff:ffff:ffff,HN
2801:10:8000::,2801:10:8000:ffff:ffff:ffff:ffff:ffff,AR
+2801:10:9000::,2801:10:9000:ffff:ffff:ffff:ffff:ffff,PY
2801:10:a000::,2801:10:a000:ffff:ffff:ffff:ffff:ffff,AR
2801:10:c000::,2801:10:c000:ffff:ffff:ffff:ffff:ffff,CO
2801:10:e000::,2801:10:e000:ffff:ffff:ffff:ffff:ffff,AR
@@ -13191,7 +12965,6 @@
2801:18::,2801:18::ffff:ffff:ffff:ffff:ffff,CR
2801:18:1000::,2801:18:1000:ffff:ffff:ffff:ffff:ffff,PA
2801:18:2000::,2801:18:2000:ffff:ffff:ffff:ffff:ffff,CO
-2801:18:4000::,2801:18:4000:ffff:ffff:ffff:ffff:ffff,CO
2801:18:6000::,2801:18:6000:ffff:ffff:ffff:ffff:ffff,AR
2801:18:8000::,2801:18:8000:ffff:ffff:ffff:ffff:ffff,AR
2801:18:a000::,2801:18:a000:ffff:ffff:ffff:ffff:ffff,BO
@@ -13251,6 +13024,7 @@
2801:1e:a000::,2801:1e:a000:ffff:ffff:ffff:ffff:ffff,AR
2801:1e:e000::,2801:1e:e000:ffff:ffff:ffff:ffff:ffff,SV
2801:1f::,2801:1f::ffff:ffff:ffff:ffff:ffff,AR
+2801:1f:1000::,2801:1f:1000:ffff:ffff:ffff:ffff:ffff,HN
2801:1f:2000::,2801:1f:2000:ffff:ffff:ffff:ffff:ffff,CR
2801:1f:4000::,2801:1f:4000:ffff:ffff:ffff:ffff:ffff,CR
2801:1f:6000::,2801:1f:6000:ffff:ffff:ffff:ffff:ffff,AR
@@ -13540,6 +13314,11 @@
2801:80:1660::,2801:80:1660:ffff:ffff:ffff:ffff:ffff,BR
2801:80:1670::,2801:80:1670:ffff:ffff:ffff:ffff:ffff,BR
2801:80:1680::,2801:80:1680:ffff:ffff:ffff:ffff:ffff,BR
+2801:80:1690::,2801:80:1690:ffff:ffff:ffff:ffff:ffff,BR
+2801:80:16a0::,2801:80:16a0:ffff:ffff:ffff:ffff:ffff,BR
+2801:80:16b0::,2801:80:16b0:ffff:ffff:ffff:ffff:ffff,BR
+2801:80:16c0::,2801:80:16c0:ffff:ffff:ffff:ffff:ffff,BR
+2801:80:1700::,2801:80:17ff:ffff:ffff:ffff:ffff:ffff,BR
2801:82::,2801:82:ffff:ffff:ffff:ffff:ffff:ffff,BR
2801:84::,2801:84:ffff:ffff:ffff:ffff:ffff:ffff,BR
2801:86::,2801:86:ffff:ffff:ffff:ffff:ffff:ffff,BR
@@ -13619,7 +13398,8 @@
2801:1f0::,2801:1f0:ffff:ffff:ffff:ffff:ffff:ffff,AR
2802::,2802:3:ffff:ffff:ffff:ffff:ffff:ffff,CO
2803::,2803::ffff:ffff:ffff:ffff:ffff:ffff,AR
-2803:80::,2803:80:ffff:ffff:ffff:ffff:ffff:ffff,CL
+2803:80::,2803:80::ffff:ffff:ffff:ffff,BR
+2803:80:0:1::,2803:80:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:b4::,2803:b4:ffff:ffff:ffff:ffff:ffff:ffff,BZ
2803:100::,2803:100:ffff:ffff:ffff:ffff:ffff:ffff,HN
2803:140::,2803:140:ffff:ffff:ffff:ffff:ffff:ffff,AR
@@ -13655,19 +13435,16 @@
2803:c40::,2803:c40:ffff:ffff:ffff:ffff:ffff:ffff,CO
2803:c80::,2803:c80:ffff:ffff:ffff:ffff:ffff:ffff,PY
2803:d00::,2803:d00:ffff:ffff:ffff:ffff:ffff:ffff,GY
-2803:d80::,2803:d8f:ffff:ffff:ffff:ffff:ffff:ffff,CO
+2803:d40::,2803:d40:ffff:ffff:ffff:ffff:ffff:ffff,PE
+2803:d80::,2803:d87:ffff:ffff:ffff:ffff:ffff:ffff,CO
2803:e00::,2803:e00:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:e40::,2803:e40:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:e80::,2803:e80:ffff:ffff:ffff:ffff:ffff:ffff,CO
2803:f00::,2803:f00:48a:ffff:ffff:ffff:ffff:ffff,PE
2803:f00:48b::,2803:f00:48e:ffff:ffff:ffff:ffff:ffff,CO
-2803:f00:48f::,2803:f00:4a6:ffff:ffff:ffff:ffff:ffff,PE
-2803:f00:4a7::,2803:f00:4a9:bfff:ffff:ffff:ffff:ffff,CL
-2803:f00:4a9:c000::,2803:f00:4a9:ffff:ffff:ffff:ffff:ffff,PE
-2803:f00:4aa::,2803:f00:4aa:ffff:ffff:ffff:ffff:ffff,CL
-2803:f00:4ab::,2803:f00:68d:7fff:ffff:ffff:ffff:ffff,PE
-2803:f00:68d:8000::,2803:f00:68d:ffff:ffff:ffff:ffff:ffff,CO
-2803:f00:68e::,2803:f00:ffff:ffff:ffff:ffff:ffff:ffff,PE
+2803:f00:48f::,2803:f00:4a9:ffff:ffff:ffff:ffff:ffff,PE
+2803:f00:4aa::,2803:f00:4aa:7fff:ffff:ffff:ffff:ffff,CL
+2803:f00:4aa:8000::,2803:f00:ffff:ffff:ffff:ffff:ffff:ffff,PE
2803:f80::,2803:f80:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:1000::,2803:1000:ffff:ffff:ffff:ffff:ffff:ffff,SV
2803:1040::,2803:1040:ffff:ffff:ffff:ffff:ffff:ffff,NI
@@ -13683,6 +13460,7 @@
2803:1400::,2803:1400:ffff:ffff:ffff:ffff:ffff:ffff,DO
2803:1440::,2803:1440:ffff:ffff:ffff:ffff:ffff:ffff,GT
2803:1500::,2803:1500:ffff:ffff:ffff:ffff:ffff:ffff,TT
+2803:1540::,2803:1540:ffff:ffff:ffff:ffff:ffff:ffff,PE
2803:1580::,2803:1580:ffff:ffff:ffff:ffff:ffff:ffff,CO
2803:1600::,2803:1600:ffff:ffff:ffff:ffff:ffff:ffff,BQ
2803:1640::,2803:1640:ffff:ffff:ffff:ffff:ffff:ffff,NI
@@ -13703,6 +13481,7 @@
2803:1c40::,2803:1c40:ffff:ffff:ffff:ffff:ffff:ffff,NI
2803:1c80::,2803:1c80:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:1d00::,2803:1d00:ffff:ffff:ffff:ffff:ffff:ffff,AR
+2803:1d40::,2803:1d40:ffff:ffff:ffff:ffff:ffff:ffff,PE
2803:1d80::,2803:1d80:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:1e00::,2803:1e00:ffff:ffff:ffff:ffff:ffff:ffff,NI
2803:1e40::,2803:1e40:ffff:ffff:ffff:ffff:ffff:ffff,AR
@@ -13724,6 +13503,7 @@
2803:2440::,2803:2440:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:2480::,2803:2480:ffff:ffff:ffff:ffff:ffff:ffff,PE
2803:2500::,2803:2500:ffff:ffff:ffff:ffff:ffff:ffff,PE
+2803:2540::,2803:2540:ffff:ffff:ffff:ffff:ffff:ffff,EC
2803:2580::,2803:2580:ffff:ffff:ffff:ffff:ffff:ffff,HN
2803:2600::,2803:2600:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:2640::,2803:2640:ffff:ffff:ffff:ffff:ffff:ffff,CO
@@ -13745,6 +13525,7 @@
2803:2c40::,2803:2c40:ffff:ffff:ffff:ffff:ffff:ffff,VE
2803:2c80::,2803:2c80:ffff:ffff:ffff:ffff:ffff:ffff,VE
2803:2d00::,2803:2d00:ffff:ffff:ffff:ffff:ffff:ffff,AR
+2803:2d40::,2803:2d40:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:2d80::,2803:2d80:ffff:ffff:ffff:ffff:ffff:ffff,PA
2803:2e00::,2803:2e00:ffff:ffff:ffff:ffff:ffff:ffff,EC
2803:2e40::,2803:2e40:ffff:ffff:ffff:ffff:ffff:ffff,PA
@@ -13765,6 +13546,7 @@
2803:3440::,2803:3440:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:3480::,2803:3480:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:3500::,2803:3500:ffff:ffff:ffff:ffff:ffff:ffff,AR
+2803:3540::,2803:3540:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:3580::,2803:3580:ffff:ffff:ffff:ffff:ffff:ffff,PE
2803:3600::,2803:3600:ffff:ffff:ffff:ffff:ffff:ffff,CR
2803:3640::,2803:3640:ffff:ffff:ffff:ffff:ffff:ffff,DO
@@ -13828,6 +13610,7 @@
2803:4c40::,2803:4c40:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:4c80::,2803:4c80:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:4d00::,2803:4d00:ffff:ffff:ffff:ffff:ffff:ffff,CL
+2803:4d40::,2803:4d40:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:4d80::,2803:4d80:ffff:ffff:ffff:ffff:ffff:ffff,CW
2803:4e00::,2803:4e00:ffff:ffff:ffff:ffff:ffff:ffff,UY
2803:4e40::,2803:4e40:ffff:ffff:ffff:ffff:ffff:ffff,AR
@@ -13849,6 +13632,7 @@
2803:5440::,2803:5440:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:5480::,2803:5480:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:5500::,2803:5500:ffff:ffff:ffff:ffff:ffff:ffff,AR
+2803:5540::,2803:5540:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:5580::,2803:5580:ffff:ffff:ffff:ffff:ffff:ffff,CR
2803:5600::,2803:5600:ffff:ffff:ffff:ffff:ffff:ffff,HN
2803:5640::,2803:5640:ffff:ffff:ffff:ffff:ffff:ffff,CO
@@ -13889,6 +13673,7 @@
2803:6440::,2803:6440:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:6480::,2803:6480:ffff:ffff:ffff:ffff:ffff:ffff,BZ
2803:6500::,2803:6500:ffff:ffff:ffff:ffff:ffff:ffff,PE
+2803:6540::,2803:6540:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:6580::,2803:6580:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:6600::,2803:6600:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:6640::,2803:6640:ffff:ffff:ffff:ffff:ffff:ffff,DO
@@ -13910,6 +13695,7 @@
2803:6c40::,2803:6c40:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:6c80::,2803:6c80:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:6d00::,2803:6d00:ffff:ffff:ffff:ffff:ffff:ffff,AR
+2803:6d40::,2803:6d40:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:6d80::,2803:6d80:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:6e00::,2803:6e00:ffff:ffff:ffff:ffff:ffff:ffff,SR
2803:6e40::,2803:6e40:ffff:ffff:ffff:ffff:ffff:ffff,AR
@@ -13931,6 +13717,7 @@
2803:7440::,2803:7440:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:7480::,2803:7480:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:7500::,2803:7500:ffff:ffff:ffff:ffff:ffff:ffff,CL
+2803:7540::,2803:7540:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:7580::,2803:7580:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:7600::,2803:7600:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:7640::,2803:7640:ffff:ffff:ffff:ffff:ffff:ffff,CO
@@ -13994,6 +13781,7 @@
2803:8c40::,2803:8c40:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:8c80::,2803:8c80:ffff:ffff:ffff:ffff:ffff:ffff,PA
2803:8d00::,2803:8d00:ffff:ffff:ffff:ffff:ffff:ffff,AR
+2803:8d43::,2803:8d43:ffff:ffff:ffff:ffff:ffff:ffff,HN
2803:8d80::,2803:8d80:ffff:ffff:ffff:ffff:ffff:ffff,UY
2803:8e00::,2803:8e00:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:8e40::,2803:8e40:ffff:ffff:ffff:ffff:ffff:ffff,CL
@@ -14015,6 +13803,7 @@
2803:9440::,2803:9440:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:9480::,2803:9480:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:9500::,2803:9500:ffff:ffff:ffff:ffff:ffff:ffff,AR
+2803:9540::,2803:9540:ffff:ffff:ffff:ffff:ffff:ffff,PE
2803:9580::,2803:9580:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:9600::,2803:9600:ffff:ffff:ffff:ffff:ffff:ffff,CW
2803:9640::,2803:9640:ffff:ffff:ffff:ffff:ffff:ffff,DO
@@ -14036,6 +13825,7 @@
2803:9c40::,2803:9c40:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:9c80::,2803:9c80:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:9d00::,2803:9d00:ffff:ffff:ffff:ffff:ffff:ffff,SV
+2803:9d40::,2803:9d40:ffff:ffff:ffff:ffff:ffff:ffff,HN
2803:9d80::,2803:9d80:ffff:ffff:ffff:ffff:ffff:ffff,SV
2803:9e00::,2803:9e00:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:9e40::,2803:9e40:ffff:ffff:ffff:ffff:ffff:ffff,PA
@@ -14056,6 +13846,7 @@
2803:a440::,2803:a440:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:a480::,2803:a480:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:a500::,2803:a500:ffff:ffff:ffff:ffff:ffff:ffff,AR
+2803:a540::,2803:a540:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:a580::,2803:a580:ffff:ffff:ffff:ffff:ffff:ffff,HT
2803:a600::,2803:a600:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:a640::,2803:a640:ffff:ffff:ffff:ffff:ffff:ffff,DO
@@ -14077,6 +13868,7 @@
2803:ac40::,2803:ac40:ffff:ffff:ffff:ffff:ffff:ffff,PA
2803:ac80::,2803:ac80:ffff:ffff:ffff:ffff:ffff:ffff,CO
2803:ad00::,2803:ad00:ffff:ffff:ffff:ffff:ffff:ffff,AR
+2803:ad40::,2803:ad40:ffff:ffff:ffff:ffff:ffff:ffff,CR
2803:ad80::,2803:ad80:ffff:ffff:ffff:ffff:ffff:ffff,PA
2803:ae00::,2803:ae00:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:ae40::,2803:ae40:ffff:ffff:ffff:ffff:ffff:ffff,PA
@@ -14097,6 +13889,7 @@
2803:b440::,2803:b440:ffff:ffff:ffff:ffff:ffff:ffff,CR
2803:b480::,2803:b480:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:b500::,2803:b500:ffff:ffff:ffff:ffff:ffff:ffff,VE
+2803:b540::,2803:b540:ffff:ffff:ffff:ffff:ffff:ffff,BO
2803:b580::,2803:b580:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:b600::,2803:b600:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:b640::,2803:b640:ffff:ffff:ffff:ffff:ffff:ffff,AW
@@ -14138,6 +13931,7 @@
2803:c440::,2803:c440:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:c480::,2803:c480:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:c500::,2803:c500:ffff:ffff:ffff:ffff:ffff:ffff,AR
+2803:c540::,2803:c540:ffff:ffff:ffff:ffff:ffff:ffff,GT
2803:c580::,2803:c580:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:c600::,2803:c600:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:c640::,2803:c640:ffff:ffff:ffff:ffff:ffff:ffff,AR
@@ -14159,6 +13953,7 @@
2803:cc40::,2803:cc40:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:cc80::,2803:cc80:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:cd00::,2803:cd00:ffff:ffff:ffff:ffff:ffff:ffff,AR
+2803:cd40::,2803:cd40:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:cd80::,2803:cd80:ffff:ffff:ffff:ffff:ffff:ffff,TT
2803:ce00::,2803:ce00:ffff:ffff:ffff:ffff:ffff:ffff,HN
2803:ce40::,2803:ce40:ffff:ffff:ffff:ffff:ffff:ffff,AR
@@ -14181,6 +13976,7 @@
2803:d440::,2803:d440:ffff:ffff:ffff:ffff:ffff:ffff,VE
2803:d480::,2803:d480:ffff:ffff:ffff:ffff:ffff:ffff,VE
2803:d500::,2803:d500:ffff:ffff:ffff:ffff:ffff:ffff,BZ
+2803:d540::,2803:d540:ffff:ffff:ffff:ffff:ffff:ffff,VE
2803:d580::,2803:d580:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:d600::,2803:d600:ffff:ffff:ffff:ffff:ffff:ffff,UY
2803:d640::,2803:d640:ffff:ffff:ffff:ffff:ffff:ffff,SV
@@ -14223,6 +14019,7 @@
2803:e440::,2803:e440:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:e480::,2803:e480:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:e500::,2803:e500:ffff:ffff:ffff:ffff:ffff:ffff,PE
+2803:e540::,2803:e540:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:e580::,2803:e580:ffff:ffff:ffff:ffff:ffff:ffff,CO
2803:e600::,2803:e600:ffff:ffff:ffff:ffff:ffff:ffff,PA
2803:e640::,2803:e640:ffff:ffff:ffff:ffff:ffff:ffff,CL
@@ -14234,7 +14031,6 @@
2803:e880::,2803:e880:ffff:ffff:ffff:ffff:ffff:ffff,GT
2803:e900::,2803:e900:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:e940::,2803:e940:ffff:ffff:ffff:ffff:ffff:ffff,AR
-2803:e980::,2803:e980:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:ea00::,2803:ea00:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:ea40::,2803:ea40:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:ea80::,2803:ea80:ffff:ffff:ffff:ffff:ffff:ffff,AR
@@ -14244,6 +14040,7 @@
2803:ec40::,2803:ec40:ffff:ffff:ffff:ffff:ffff:ffff,EC
2803:ec80::,2803:ec80:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:ed00::,2803:ed00:ffff:ffff:ffff:ffff:ffff:ffff,PE
+2803:ed40::,2803:ed40:ffff:ffff:ffff:ffff:ffff:ffff,PA
2803:ed80::,2803:ed80:ffff:ffff:ffff:ffff:ffff:ffff,CL
2803:ee00::,2803:ee00:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:ee40::,2803:ee40:ffff:ffff:ffff:ffff:ffff:ffff,CR
@@ -14265,6 +14062,7 @@
2803:f440::,2803:f440:ffff:ffff:ffff:ffff:ffff:ffff,PY
2803:f480::,2803:f480:ffff:ffff:ffff:ffff:ffff:ffff,CO
2803:f500::,2803:f500:ffff:ffff:ffff:ffff:ffff:ffff,CW
+2803:f540::,2803:f540:ffff:ffff:ffff:ffff:ffff:ffff,PE
2803:f580::,2803:f580:ffff:ffff:ffff:ffff:ffff:ffff,AR
2803:f600::,2803:f600:ffff:ffff:ffff:ffff:ffff:ffff,CR
2803:f640::,2803:f640:ffff:ffff:ffff:ffff:ffff:ffff,BQ
@@ -14982,7 +14780,6 @@
2804:b68::,2804:b68:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:b6c::,2804:b6c:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:b70::,2804:b70:ffff:ffff:ffff:ffff:ffff:ffff,BR
-2804:b74::,2804:b74:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:b78::,2804:b78:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:b7c::,2804:b7c:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:b80::,2804:b80:ffff:ffff:ffff:ffff:ffff:ffff,BR
@@ -15095,9 +14892,7 @@
2804:d34::,2804:d34:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:d38::,2804:d38:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:d3c::,2804:d3c:ffff:ffff:ffff:ffff:ffff:ffff,BR
-2804:d40::,2804:d41:514:7fff:ffff:ffff:ffff:ffff,BR
-2804:d41:514:8000::,2804:d41:514:ffff:ffff:ffff:ffff:ffff,US
-2804:d41:515::,2804:d60:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:d40::,2804:d60:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:d64::,2804:d64:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:d68::,2804:d68:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:d6c::,2804:d6c:ffff:ffff:ffff:ffff:ffff:ffff,BR
@@ -15223,7 +15018,6 @@
2804:f50::,2804:f50:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:f54::,2804:f54:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:f58::,2804:f58:ffff:ffff:ffff:ffff:ffff:ffff,BR
-2804:f5c::,2804:f5c:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:f60::,2804:f60:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:f64::,2804:f64:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:f68::,2804:f68:ffff:ffff:ffff:ffff:ffff:ffff,BR
@@ -15316,7 +15110,6 @@
2804:10c4::,2804:10c4:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:10c8::,2804:10c8:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:10cc::,2804:10cc:ffff:ffff:ffff:ffff:ffff:ffff,BR
-2804:10d0::,2804:10d0:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:10d4::,2804:10d4:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:10d8::,2804:10d8:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:10dc::,2804:10dc:ffff:ffff:ffff:ffff:ffff:ffff,BR
@@ -16237,6 +16030,7 @@
2804:1f18::,2804:1f18:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:1f1a::,2804:1f1a:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:1f1c::,2804:1f1c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:1f1e::,2804:1f1e:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:2000::,2804:2000:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:2004::,2804:2004:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:2008::,2804:2008:ffff:ffff:ffff:ffff:ffff:ffff,BR
@@ -16397,7 +16191,6 @@
2804:2274::,2804:2274:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:2278::,2804:2278:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:227c::,2804:227c:ffff:ffff:ffff:ffff:ffff:ffff,BR
-2804:2280::,2804:2280:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:2284::,2804:2284:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:2288::,2804:2288:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:228c::,2804:228c:ffff:ffff:ffff:ffff:ffff:ffff,BR
@@ -16521,7 +16314,6 @@
2804:2464::,2804:2464:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:2468::,2804:2468:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:246c::,2804:246c:ffff:ffff:ffff:ffff:ffff:ffff,BR
-2804:2470::,2804:2470:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:2474::,2804:2474:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:2478::,2804:2478:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:247c::,2804:247c:ffff:ffff:ffff:ffff:ffff:ffff,BR
@@ -17058,14 +16850,121 @@
2804:2ccc::,2804:2ccc:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:2cd0::,2804:2cd0:ffff:ffff:ffff:ffff:ffff:ffff,BR
2804:2cd4::,2804:2cd4:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2cd8::,2804:2cd8:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2cdc::,2804:2cdc:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2ce0::,2804:2ce0:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2ce4::,2804:2ce4:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2ce8::,2804:2ce8:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2cec::,2804:2cec:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2cf0::,2804:2cf0:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2cf4::,2804:2cf4:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2cf8::,2804:2cf8:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2cfc::,2804:2cfc:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d00::,2804:2d00:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d04::,2804:2d04:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d08::,2804:2d08:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d0c::,2804:2d0c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d10::,2804:2d10:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d14::,2804:2d14:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d18::,2804:2d18:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d1c::,2804:2d1c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d20::,2804:2d20:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d24::,2804:2d24:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d28::,2804:2d28:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d2c::,2804:2d2c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d30::,2804:2d30:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d34::,2804:2d34:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d38::,2804:2d38:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d3c::,2804:2d3c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d40::,2804:2d40:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d44::,2804:2d44:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d48::,2804:2d48:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d4c::,2804:2d4c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d50::,2804:2d50:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d54::,2804:2d54:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d58::,2804:2d58:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d5c::,2804:2d5c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d60::,2804:2d60:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d64::,2804:2d64:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d68::,2804:2d68:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d6c::,2804:2d6c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d70::,2804:2d70:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d74::,2804:2d74:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d78::,2804:2d78:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d7c::,2804:2d7c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d80::,2804:2d80:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d84::,2804:2d84:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d88::,2804:2d88:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d8c::,2804:2d8c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d90::,2804:2d90:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d94::,2804:2d94:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d98::,2804:2d98:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2d9c::,2804:2d9c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2da0::,2804:2da0:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2da4::,2804:2da4:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2da8::,2804:2da8:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2dac::,2804:2dac:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2db0::,2804:2db0:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2db4::,2804:2db4:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2db8::,2804:2db8:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2dbc::,2804:2dbc:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2dc0::,2804:2dc0:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2dc4::,2804:2dc4:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2dc8::,2804:2dc8:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2dcc::,2804:2dcc:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2dd0::,2804:2dd0:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2dd4::,2804:2dd4:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2dd8::,2804:2dd8:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2ddc::,2804:2ddc:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2de0::,2804:2de0:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2de4::,2804:2de4:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2de8::,2804:2de8:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2dec::,2804:2dec:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2df0::,2804:2df0:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2df4::,2804:2df4:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2df8::,2804:2df8:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2dfc::,2804:2dfc:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e00::,2804:2e00:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e04::,2804:2e04:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e08::,2804:2e08:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e0c::,2804:2e0c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e10::,2804:2e10:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e14::,2804:2e14:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e18::,2804:2e18:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e1c::,2804:2e1c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e20::,2804:2e20:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e24::,2804:2e24:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e28::,2804:2e28:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e2c::,2804:2e2c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e30::,2804:2e30:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e34::,2804:2e34:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e38::,2804:2e38:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e3c::,2804:2e3c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e40::,2804:2e40:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e44::,2804:2e44:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e48::,2804:2e48:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e4c::,2804:2e4c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e50::,2804:2e50:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e54::,2804:2e54:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e58::,2804:2e58:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e5c::,2804:2e5c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e60::,2804:2e60:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e64::,2804:2e64:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e68::,2804:2e68:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e6c::,2804:2e6c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e70::,2804:2e70:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e74::,2804:2e74:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e78::,2804:2e78:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e7c::,2804:2e7c:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e80::,2804:2e80:ffff:ffff:ffff:ffff:ffff:ffff,BR
+2804:2e84::,2804:2e84:ffff:ffff:ffff:ffff:ffff:ffff,BR
2806::,2806:f:ffff:ffff:ffff:ffff:ffff:ffff,MX
2806:200::,2806:216::ffff:ffff:ffff:ffff:ffff,MX
-2806:217::,2806:21d:ffff:ffff:ffff:ffff:ffff:ffff,MX
-2806:220::,2806:220:ffff:ffff:ffff:ffff:ffff:ffff,MX
+2806:217::,2806:220:ffff:ffff:ffff:ffff:ffff:ffff,MX
2806:230::,2806:230:ffff:ffff:ffff:ffff:ffff:ffff,MX
2806:238::,2806:238::ffff:ffff:ffff:ffff:ffff,MX
2806:238:10::,2806:238:10:ffff:ffff:ffff:ffff:ffff,MX
-2806:239::,2806:239:ffff:ffff:ffff:ffff:ffff:ffff,MX
+2806:239::,2806:23a:ffff:ffff:ffff:ffff:ffff:ffff,MX
2806:240::,2806:240:ffff:ffff:ffff:ffff:ffff:ffff,MX
2806:250::,2806:250:ffff:ffff:ffff:ffff:ffff:ffff,MX
2806:260::,2806:260:ffff:ffff:ffff:ffff:ffff:ffff,MX
@@ -17177,9 +17076,7 @@
2a00:ef0::,2a00:ef0:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a00:ef8::,2a00:ef8:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a00:f00::,2a00:f08:ffff:ffff:ffff:ffff:ffff:ffff,RU
-2a00:f10::,2a00:f10:120:ffff:ffff:ffff:ffff:ffff,NL
-2a00:f10:121::,2a00:f10:121:7fff:ffff:ffff:ffff:ffff,FR
-2a00:f10:121:8000::,2a00:f17:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a00:f10::,2a00:f17:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a00:f18::,2a00:f18:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:f20::,2a00:f20:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a00:f28::,2a00:f2f:ffff:ffff:ffff:ffff:ffff:ffff,AE
@@ -17213,14 +17110,12 @@
2a00:1010::,2a00:1010:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:1018::,2a00:1018:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:1020::,2a00:1020:ffff:ffff:ffff:ffff:ffff:ffff,RU
-2a00:1028::,2a00:1028:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a00:1028::,2a00:102f:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a00:1030::,2a00:1030:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:1040::,2a00:1040:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a00:1048::,2a00:1048:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a00:1050::,2a00:1050:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a00:1058::,2a00:1058:111:ffff:ffff:ffff:ffff:ffff,FR
-2a00:1058:112::,2a00:1058:112:7fff:ffff:ffff:ffff:ffff,GB
-2a00:1058:112:8000::,2a00:1058:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a00:1058::,2a00:1058:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a00:1060::,2a00:1060:ffff:ffff:ffff:ffff:ffff:ffff,MT
2a00:1068::,2a00:1068:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:1070::,2a00:1070:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -17254,9 +17149,7 @@
2a00:1160::,2a00:1167:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:1168::,2a00:116f:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a00:1170::,2a00:1170:ffff:ffff:ffff:ffff:ffff:ffff,IE
-2a00:1178::,2a00:1178::ffff:ffff:ffff:ffff:ffff,NL
-2a00:1178:1::,2a00:1178:1:7fff:ffff:ffff:ffff:ffff,US
-2a00:1178:1:8000::,2a00:1178:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a00:1178::,2a00:1178:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a00:1180::,2a00:1180:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:1188::,2a00:1188:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a00:1190::,2a00:1190:ffff:ffff:ffff:ffff:ffff:ffff,FI
@@ -17264,9 +17157,7 @@
2a00:11a8::,2a00:11a8:ffff:ffff:ffff:ffff:ffff:ffff,OM
2a00:11b0::,2a00:11b0:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a00:11b8::,2a00:11b8:ffff:ffff:ffff:ffff:ffff:ffff,GB
-2a00:11c0::,2a00:11c0:4:ffff:ffff:ffff:ffff:ffff,AT
-2a00:11c0:5::,2a00:11c0:5:7fff:ffff:ffff:ffff:ffff,CH
-2a00:11c0:5:8000::,2a00:11c0:7:ffff:ffff:ffff:ffff:ffff,AT
+2a00:11c0::,2a00:11c0:7:ffff:ffff:ffff:ffff:ffff,AT
2a00:11c0:8::,2a00:11c0:8:ffff:ffff:ffff:ffff:ffff,GB
2a00:11c0:9::,2a00:11c0:a:ffff:ffff:ffff:ffff:ffff,AT
2a00:11c0:b::,2a00:11c0:b:ffff:ffff:ffff:ffff:ffff,IT
@@ -17526,9 +17417,7 @@
2a00:1a10::,2a00:1a10:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:1a18::,2a00:1a18:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:1a20::,2a00:1a20:ffff:ffff:ffff:ffff:ffff:ffff,SI
-2a00:1a28::,2a00:1a28:1162:ffff:ffff:ffff:ffff:ffff,SE
-2a00:1a28:1163::,2a00:1a28:1163:7fff:ffff:ffff:ffff:ffff,GB
-2a00:1a28:1163:8000::,2a00:1a28:ffff:ffff:ffff:ffff:ffff:ffff,SE
+2a00:1a28::,2a00:1a28:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a00:1a30::,2a00:1a30:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:1a38::,2a00:1a38:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a00:1a40::,2a00:1a40:ffff:ffff:ffff:ffff:ffff:ffff,PL
@@ -17738,6 +17627,7 @@
2a00:4280::,2a00:4280:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a00:42a0::,2a00:42a0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:42c0::,2a00:42c0:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a00:42e0::,2a00:42e0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:4300::,2a00:4300:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:4320::,2a00:4320:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:4340::,2a00:4340:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -17777,6 +17667,7 @@
2a00:4780::,2a00:4780:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a00:47a0::,2a00:47a0:ffff:ffff:ffff:ffff:ffff:ffff,KG
2a00:47c0::,2a00:47c0:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a00:47e0::,2a00:47e0:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a00:4800::,2a00:4807:ffff:ffff:ffff:ffff:ffff:ffff,BG
2a00:4820::,2a00:4820:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a00:4840::,2a00:4847:ffff:ffff:ffff:ffff:ffff:ffff,DE
@@ -17879,10 +17770,7 @@
2a00:54a0::,2a00:54a0:ffff:ffff:ffff:ffff:ffff:ffff,TR
2a00:54c0::,2a00:54c0:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a00:54e0::,2a00:54e0:ffff:ffff:ffff:ffff:ffff:ffff,IT
-2a00:5500::,2a00:5500::7fff:ffff:ffff:ffff:ffff,AX
-2a00:5500:0:8000::,2a00:5500:1:ffff:ffff:ffff:ffff:ffff,FI
-2a00:5500:2::,2a00:5500:2:7fff:ffff:ffff:ffff:ffff,AX
-2a00:5500:2:8000::,2a00:5500:ffff:ffff:ffff:ffff:ffff:ffff,FI
+2a00:5500::,2a00:5500:ffff:ffff:ffff:ffff:ffff:ffff,FI
2a00:5520::,2a00:5520:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a00:5540::,2a00:5540:385:ffff:ffff:ffff:ffff:ffff,GB
2a00:5540:386::,2a00:5540:387:ffff:ffff:ffff:ffff:ffff,SI
@@ -18021,6 +17909,7 @@
2a00:6620::,2a00:6620:ffff:ffff:ffff:ffff:ffff:ffff,GR
2a00:6640::,2a00:6647:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a00:6660::,2a00:6660:ffff:ffff:ffff:ffff:ffff:ffff,SE
+2a00:6680::,2a00:6680:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:66a0::,2a00:66a0:ffff:ffff:ffff:ffff:ffff:ffff,IL
2a00:66c0::,2a00:66c0:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a00:66e0::,2a00:66e0:ffff:ffff:ffff:ffff:ffff:ffff,TR
@@ -18174,28 +18063,18 @@
2a00:7980::,2a00:7980:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a00:79a0::,2a00:79a0:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a00:79c0::,2a00:79c0:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a00:79e0::,2a00:79e0::ffff:ffff:ffff:ffff:ffff,CH
-2a00:79e0:1::,2a00:79e0:1:7fff:ffff:ffff:ffff:ffff,CZ
-2a00:79e0:1:8000::,2a00:79e0:1:ffff:ffff:ffff:ffff:ffff,CH
-2a00:79e0:2::,2a00:79e0:2:7fff:ffff:ffff:ffff:ffff,PL
-2a00:79e0:2:8000::,2a00:79e0:2:ffff:ffff:ffff:ffff:ffff,CH
-2a00:79e0:3::,2a00:79e0:3:7fff:ffff:ffff:ffff:ffff,IE
-2a00:79e0:3:8000::,2a00:79e0:4:7fff:ffff:ffff:ffff:ffff,CH
-2a00:79e0:4:8000::,2a00:79e0:4:ffff:ffff:ffff:ffff:ffff,FI
-2a00:79e0:5::,2a00:79e0:5:ffff:ffff:ffff:ffff:ffff,CH
-2a00:79e0:6::,2a00:79e0:6:ffff:ffff:ffff:ffff:ffff,GB
-2a00:79e0:7::,2a00:79e0:a:7fff:ffff:ffff:ffff:ffff,CH
-2a00:79e0:a:8000::,2a00:79e0:a:ffff:ffff:ffff:ffff:ffff,GB
-2a00:79e0:b::,2a00:79e0:b:ffff:ffff:ffff:ffff:ffff,IT
-2a00:79e0:c::,2a00:79e0:c:ffff:ffff:ffff:ffff:ffff,GB
-2a00:79e0:d::,2a00:79e0:13:ffff:ffff:ffff:ffff:ffff,CH
+2a00:79e0::,2a00:79e0:13:ffff:ffff:ffff:ffff:ffff,CH
2a00:79e0:14::,2a00:79e0:14:ffff:ffff:ffff:ffff:ffff,ZA
2a00:79e0:15::,2a00:79e0:15:ffff:ffff:ffff:ffff:ffff,DE
2a00:79e0:16::,2a00:79e0:1b:ffff:ffff:ffff:ffff:ffff,CH
2a00:79e0:1c::,2a00:79e0:1c:ffff:ffff:ffff:ffff:ffff,GH
-2a00:79e0:1d::,2a00:79e0:22:ffff:ffff:ffff:ffff:ffff,CH
+2a00:79e0:1d::,2a00:79e0:1e:ffff:ffff:ffff:ffff:ffff,CH
+2a00:79e0:1f::,2a00:79e0:1f:ffff:ffff:ffff:ffff:ffff,LT
+2a00:79e0:20::,2a00:79e0:22:ffff:ffff:ffff:ffff:ffff,CH
2a00:79e0:23::,2a00:79e0:23:ffff:ffff:ffff:ffff:ffff,GB
-2a00:79e0:24::,2a00:79e1:ffff:ffff:ffff:ffff:ffff:ffff,CH
+2a00:79e0:24::,2a00:79e0:26:ffff:ffff:ffff:ffff:ffff,CH
+2a00:79e0:27::,2a00:79e0:27:ffff:ffff:ffff:ffff:ffff,NL
+2a00:79e0:28::,2a00:79e1:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a00:7a00::,2a00:7a00:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a00:7a20::,2a00:7a20:ffff:ffff:ffff:ffff:ffff:ffff,FI
2a00:7a40::,2a00:7a40:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -18308,7 +18187,6 @@
2a00:8800::,2a00:8800:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:8820::,2a00:8820:ffff:ffff:ffff:ffff:ffff:ffff,SA
2a00:8840::,2a00:8840:ffff:ffff:ffff:ffff:ffff:ffff,UZ
-2a00:8860:8001::,2a00:8860:8001:7fff:ffff:ffff:ffff:ffff,US
2a00:8880::,2a00:8880:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a00:88a0::,2a00:88a0:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a00:88c0::,2a00:88c0:ffff:ffff:ffff:ffff:ffff:ffff,RU
@@ -18382,6 +18260,7 @@
2a00:9180::,2a00:9180:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:91a0::,2a00:91a0:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a00:91c0::,2a00:91c0:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a00:91e0::,2a00:91e0:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a00:9200::,2a00:9200:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a00:9220::,2a00:9220:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a00:9240::,2a00:9240:ffff:ffff:ffff:ffff:ffff:ffff,HR
@@ -18461,7 +18340,6 @@
2a00:9ae0::,2a00:9ae0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:9b00::,2a00:9b00:ffff:ffff:ffff:ffff:ffff:ffff,FI
2a00:9b20::,2a00:9b20:ffff:ffff:ffff:ffff:ffff:ffff,IR
-2a00:9b40::,2a00:9b40:ffff:ffff:ffff:ffff:ffff:ffff,KZ
2a00:9b60::,2a00:9b60:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a00:9b80::,2a00:9b80:ffff:ffff:ffff:ffff:ffff:ffff,BE
2a00:9ba0::,2a00:9ba0:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -18543,9 +18421,7 @@
2a00:a520::,2a00:a520:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:a540::,2a00:a540:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a00:a560::,2a00:a560:ffff:ffff:ffff:ffff:ffff:ffff,PL
-2a00:a580::,2a00:a580:10a4:ffff:ffff:ffff:ffff:ffff,FR
-2a00:a580:10a5::,2a00:a580:10a5:7fff:ffff:ffff:ffff:ffff,DE
-2a00:a580:10a5:8000::,2a00:a580:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a00:a580::,2a00:a580:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a00:a5a0::,2a00:a5a0:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a00:a5c0::,2a00:a5c0:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a00:a5e0::,2a00:a5e0:ffff:ffff:ffff:ffff:ffff:ffff,RU
@@ -18633,6 +18509,7 @@
2a00:b040::,2a00:b040:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:b060::,2a00:b060:ffff:ffff:ffff:ffff:ffff:ffff,BE
2a00:b080::,2a00:b080:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a00:b0a0::,2a00:b0a0:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a00:b0c0::,2a00:b0c0:ffff:ffff:ffff:ffff:ffff:ffff,HU
2a00:b0e0::,2a00:b0e0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:b100::,2a00:b100:ffff:ffff:ffff:ffff:ffff:ffff,RU
@@ -18894,7 +18771,9 @@
2a00:d140::,2a00:d140:ffff:ffff:ffff:ffff:ffff:ffff,RS
2a00:d160::,2a00:d160:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a00:d180::,2a00:d180:ffff:ffff:ffff:ffff:ffff:ffff,PT
-2a00:d1a0::,2a00:d1a0:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a00:d1a0::,2a00:d1a0:f:ffff:ffff:ffff:ffff:ffff,DE
+2a00:d1a0:10::,2a00:d1a0:1f:ffff:ffff:ffff:ffff:ffff,GB
+2a00:d1a0:20::,2a00:d1a0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:d1c0::,2a00:d1c0:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a00:d1e0::,2a00:d1e0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:d200::,2a00:d200:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -19065,8 +18944,7 @@
2a00:e760::,2a00:e760:ffff:ffff:ffff:ffff:ffff:ffff,BE
2a00:e780::,2a00:e780:ffff:ffff:ffff:ffff:ffff:ffff,UA
2a00:e7a0::,2a00:e7a0:ffff:ffff:ffff:ffff:ffff:ffff,GB
-2a00:e7c0::,2a00:e7c0::7fff:ffff:ffff:ffff:ffff,LT
-2a00:e7c0:0:8000::,2a00:e7c0:ffff:ffff:ffff:ffff:ffff:ffff,DK
+2a00:e7c0::,2a00:e7c0:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a00:e7e0::,2a00:e7e0:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a00:e800::,2a00:e807:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a00:e840::,2a00:e840:ffff:ffff:ffff:ffff:ffff:ffff,FR
@@ -19103,8 +18981,7 @@
2a00:ec20::,2a00:ec23:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a00:ec40::,2a00:ec47:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:ec80::,2a00:ec80:ffff:ffff:ffff:ffff:ffff:ffff,FR
-2a00:eca0::,2a00:eca0::7fff:ffff:ffff:ffff:ffff,AX
-2a00:eca0:0:8000::,2a00:eca0:ffff:ffff:ffff:ffff:ffff:ffff,FI
+2a00:eca0::,2a00:eca0:ffff:ffff:ffff:ffff:ffff:ffff,FI
2a00:ecc0::,2a00:ecc0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:ece0::,2a00:ece7:ffff:ffff:ffff:ffff:ffff:ffff,RO
2a00:ed00::,2a00:ed00:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -19123,6 +19000,7 @@
2a00:eea0::,2a00:eea0:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a00:eec0::,2a00:eec0:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a00:eee0::,2a00:eee0:ffff:ffff:ffff:ffff:ffff:ffff,TR
+2a00:ef00::,2a00:ef00:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:ef20::,2a00:ef20:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a00:ef40::,2a00:ef40:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a00:ef60::,2a00:ef67:ffff:ffff:ffff:ffff:ffff:ffff,FR
@@ -19200,7 +19078,7 @@
2a00:f8a0::,2a00:f8a0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a00:f8c0::,2a00:f8c0:ffff:ffff:ffff:ffff:ffff:ffff,LI
2a00:f8e0::,2a00:f8e0:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a00:f900::,2a00:f900:ffff:ffff:ffff:ffff:ffff:ffff,MD
+2a00:f900::,2a00:f907:ffff:ffff:ffff:ffff:ffff:ffff,MD
2a00:f920::,2a00:f920:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a00:f940::,2a00:f940:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a00:f960::,2a00:f960:ffff:ffff:ffff:ffff:ffff:ffff,IS
@@ -19244,7 +19122,7 @@
2a00:fe20::,2a00:fe20:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a00:fe40::,2a00:fe40:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a00:fe60::,2a00:fe60:ffff:ffff:ffff:ffff:ffff:ffff,FI
-2a00:fe80::,2a00:fe80:ffff:ffff:ffff:ffff:ffff:ffff,ME
+2a00:fe80::,2a00:fe87:ffff:ffff:ffff:ffff:ffff:ffff,ME
2a00:fea0::,2a00:fea7:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a00:fec0::,2a00:fec0:ffff:ffff:ffff:ffff:ffff:ffff,TR
2a00:fee0::,2a00:fee0:ffff:ffff:ffff:ffff:ffff:ffff,RU
@@ -19284,21 +19162,7 @@
2a01:c8::,2a01:c8:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a01:d0::,2a01:d0:896c:7fff:ffff:ffff:ffff:ffff,UA
2a01:d0:896c:8000::,2a01:d0:896c:ffff:ffff:ffff:ffff:ffff,RU
-2a01:d0:896d::,2a01:d0:8de4:ffff:ffff:ffff:ffff:ffff,UA
-2a01:d0:8de5::,2a01:d0:8de5:7fff:ffff:ffff:ffff:ffff,RU
-2a01:d0:8de5:8000::,2a01:d0:9008:ffff:ffff:ffff:ffff:ffff,UA
-2a01:d0:9009::,2a01:d0:9009:7fff:ffff:ffff:ffff:ffff,RU
-2a01:d0:9009:8000::,2a01:d0:92ea:ffff:ffff:ffff:ffff:ffff,UA
-2a01:d0:92eb::,2a01:d0:92eb:7fff:ffff:ffff:ffff:ffff,RU
-2a01:d0:92eb:8000::,2a01:d0:93ff:ffff:ffff:ffff:ffff:ffff,UA
-2a01:d0:9400::,2a01:d0:9400:7fff:ffff:ffff:ffff:ffff,RU
-2a01:d0:9400:8000::,2a01:d0:95d7:ffff:ffff:ffff:ffff:ffff,UA
-2a01:d0:95d8::,2a01:d0:95d8:7fff:ffff:ffff:ffff:ffff,RU
-2a01:d0:95d8:8000::,2a01:d0:b2f5:ffff:ffff:ffff:ffff:ffff,UA
-2a01:d0:b2f6::,2a01:d0:b2f6:7fff:ffff:ffff:ffff:ffff,RU
-2a01:d0:b2f6:8000::,2a01:d0:bf61:ffff:ffff:ffff:ffff:ffff,UA
-2a01:d0:bf62::,2a01:d0:bf62:7fff:ffff:ffff:ffff:ffff,RU
-2a01:d0:bf62:8000::,2a01:d0:bfcf:ffff:ffff:ffff:ffff:ffff,UA
+2a01:d0:896d::,2a01:d0:bfcf:ffff:ffff:ffff:ffff:ffff,UA
2a01:d0:bfd0::,2a01:d0:bfd0:7fff:ffff:ffff:ffff:ffff,RU
2a01:d0:bfd0:8000::,2a01:d0:ffff:ffff:ffff:ffff:ffff:ffff,UA
2a01:d8::,2a01:d8:ffff:ffff:ffff:ffff:ffff:ffff,RU
@@ -19308,7 +19172,68 @@
2a01:f8::,2a01:f8:ffff:ffff:ffff:ffff:ffff:ffff,AT
2a01:100::,2a01:100:ffff:ffff:ffff:ffff:ffff:ffff,AT
2a01:108::,2a01:108:ffff:ffff:ffff:ffff:ffff:ffff,SK
-2a01:110::,2a01:111:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a01:110::,2a01:111::c6:3fff:ffff:ffff:ffff,GB
+2a01:111:0:c6:4000::,2a01:111::c6:7fff:ffff:ffff:ffff,IE
+2a01:111:0:c6:8000::,2a01:111::cb:bfff:ffff:ffff:ffff,GB
+2a01:111:0:cb:c000::,2a01:111::cb:ffff:ffff:ffff:ffff,US
+2a01:111:0:cc::,2a01:111::d7:ffff:ffff:ffff:ffff,GB
+2a01:111:0:d8::,2a01:111::d8:3fff:ffff:ffff:ffff,US
+2a01:111:0:d8:4000::,2a01:111::e0:7fff:ffff:ffff:ffff,GB
+2a01:111:0:e0:8000::,2a01:111::e0:bfff:ffff:ffff:ffff,US
+2a01:111:0:e0:c000::,2a01:111::11f:ffff:ffff:ffff:ffff,GB
+2a01:111:0:120::,2a01:111::120:3fff:ffff:ffff:ffff,US
+2a01:111:0:120:4000::,2a01:111::121:3fff:ffff:ffff:ffff,GB
+2a01:111:0:121:4000::,2a01:111::121:bfff:ffff:ffff:ffff,US
+2a01:111:0:121:c000::,2a01:111:2000:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:2001::,2a01:111:2001:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:2002::,2a01:111:2006:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:2007::,2a01:111:2007:ffff:ffff:ffff:ffff:ffff,AU
+2a01:111:2008::,2a01:111:2008:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:2009::,2a01:111:2016:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:2017::,2a01:111:2017:ffff:ffff:ffff:ffff:ffff,BR
+2a01:111:2018::,2a01:111:2019:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:201a::,2a01:111:201a:ffff:ffff:ffff:ffff:ffff,SG
+2a01:111:201b::,2a01:111:201c:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:201d::,2a01:111:201d:ffff:ffff:ffff:ffff:ffff,HK
+2a01:111:201e::,2a01:111:201f:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:2020::,2a01:111:2025:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:2026::,2a01:111:2026:ffff:ffff:ffff:ffff:ffff,IE
+2a01:111:2027::,2a01:111:2027:ffff:ffff:ffff:ffff:ffff,NL
+2a01:111:2028::,2a01:111:2028:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:2029::,2a01:111:2029:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:202a::,2a01:111:202a:ffff:ffff:ffff:ffff:ffff,NL
+2a01:111:202b::,2a01:111:202b:ffff:ffff:ffff:ffff:ffff,IE
+2a01:111:202c::,2a01:111:2032:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:2033::,2a01:111:2033:ffff:ffff:ffff:ffff:ffff,IE
+2a01:111:2034::,2a01:111:2034:ffff:ffff:ffff:ffff:ffff,AU
+2a01:111:2035::,2a01:111:2035:ffff:ffff:ffff:ffff:ffff,SG
+2a01:111:2036::,2a01:111:2036:ffff:ffff:ffff:ffff:ffff,JP
+2a01:111:2037::,2a01:111:2037:ffff:ffff:ffff:ffff:ffff,NL
+2a01:111:2038::,2a01:111:2038:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:2039::,2a01:111:2039:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:203a::,2a01:111:203a:ffff:ffff:ffff:ffff:ffff,BR
+2a01:111:203b::,2a01:111:203b:ffff:ffff:ffff:ffff:ffff,AT
+2a01:111:203c::,2a01:111:203c:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:203d::,2a01:111:203d:ffff:ffff:ffff:ffff:ffff,NL
+2a01:111:203e::,2a01:111:203f:ffff:ffff:ffff:ffff:ffff,IN
+2a01:111:2040::,2a01:111:2041:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:2042::,2a01:111:2042:ffff:ffff:ffff:ffff:ffff,FI
+2a01:111:2043::,2a01:111:2045:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:2046::,2a01:111:2046:ffff:ffff:ffff:ffff:ffff,JP
+2a01:111:2047::,2a01:111:2048:ffff:ffff:ffff:ffff:ffff,CA
+2a01:111:2049::,2a01:111:207f:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:2080::,2a01:111:2080:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:2081::,2a01:111:f00f:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:f010::,2a01:111:f013:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:f014::,2a01:111:f0ff:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:f100::,2a01:111:f100:fff:ffff:ffff:ffff:ffff,US
+2a01:111:f100:1000::,2a01:111:f20a:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:f20b::,2a01:111:f20b:ffff:ffff:ffff:ffff:ffff,IE
+2a01:111:f20c::,2a01:111:f20f:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:f210::,2a01:111:f210:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:f211::,2a01:111:f4ff:ffff:ffff:ffff:ffff:ffff,GB
+2a01:111:f500::,2a01:111:f500:ffff:ffff:ffff:ffff:ffff,US
+2a01:111:f501::,2a01:111:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a01:120::,2a01:120:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a01:130::,2a01:138:a01c:ffff:ffff:ffff:ffff:ffff,DE
2a01:138:a01d::,2a01:138:a01d:ffff:ffff:ffff:ffff:ffff,CH
@@ -19331,7 +19256,7 @@
2a01:1b8::,2a01:1b8:ffff:ffff:ffff:ffff:ffff:ffff,EE
2a01:1c0::,2a01:1c0:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a01:1c8::,2a01:1cf:ffff:ffff:ffff:ffff:ffff:ffff,ES
-2a01:1d0::,2a01:1d0:ffff:ffff:ffff:ffff:ffff:ffff,JO
+2a01:1d0::,2a01:1d7:ffff:ffff:ffff:ffff:ffff:ffff,JO
2a01:1d8::,2a01:1df:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a01:1e0::,2a01:1e0:ffff:ffff:ffff:ffff:ffff:ffff,IE
2a01:1e8::,2a01:1e8:ffff:ffff:ffff:ffff:ffff:ffff,DE
@@ -19344,13 +19269,11 @@
2a01:228::,2a01:228:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a01:230::,2a01:230:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a01:238::,2a01:238:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a01:240::,2a01:240:feda:ffff:ffff:ffff:ffff:ffff,FR
-2a01:240:fedb::,2a01:240:fedb:7fff:ffff:ffff:ffff:ffff,PT
-2a01:240:fedb:8000::,2a01:240:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a01:240::,2a01:240:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a01:248::,2a01:248:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a01:250::,2a01:250:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a01:258::,2a01:258:ffff:ffff:ffff:ffff:ffff:ffff,IE
-2a01:260::,2a01:260:ffff:ffff:ffff:ffff:ffff:ffff,SI
+2a01:260::,2a01:267:ffff:ffff:ffff:ffff:ffff:ffff,SI
2a01:268::,2a01:268:ffff:ffff:ffff:ffff:ffff:ffff,IE
2a01:270::,2a01:270:ffff:ffff:ffff:ffff:ffff:ffff,HU
2a01:278::,2a01:27f:ffff:ffff:ffff:ffff:ffff:ffff,CH
@@ -19369,35 +19292,31 @@
2a01:2d0::,2a01:2d0:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a01:2d8::,2a01:2df:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a01:2e0::,2a01:2ef:ffff:ffff:ffff:ffff:ffff:ffff,PL
-2a01:300:22::,2a01:300:22:7fff:ffff:ffff:ffff:ffff,GB
2a01:308::,2a01:308:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a01:310::,2a01:310:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a01:320::,2a01:320:ffff:ffff:ffff:ffff:ffff:ffff,MD
2a01:328::,2a01:328:ffff:ffff:ffff:ffff:ffff:ffff,SK
2a01:330::,2a01:330:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a01:338::,2a01:338:ffff:ffff:ffff:ffff:ffff:ffff,PL
-2a01:348::,2a01:348:338:ffff:ffff:ffff:ffff:ffff,GB
-2a01:348:339::,2a01:348:339:7fff:ffff:ffff:ffff:ffff,NL
-2a01:348:339:8000::,2a01:348:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a01:348::,2a01:348:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a01:350::,2a01:350:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a01:358::,2a01:35f:ffff:ffff:ffff:ffff:ffff:ffff,TR
2a01:360::,2a01:367:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a01:368::,2a01:36f:ffff:ffff:ffff:ffff:ffff:ffff,HU
2a01:378::,2a01:378:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a01:380::,2a01:380:ffff:ffff:ffff:ffff:ffff:ffff,NL
-2a01:388::,2a01:388:24e:ffff:ffff:ffff:ffff:ffff,GB
-2a01:388:24f::,2a01:388:24f:7fff:ffff:ffff:ffff:ffff,NL
-2a01:388:24f:8000::,2a01:38f:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a01:388::,2a01:388:250:ffff:ffff:ffff:ffff:ffff,GB
+2a01:388:251::,2a01:388:251:7fff:ffff:ffff:ffff:ffff,NL
+2a01:388:251:8000::,2a01:38f:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a01:390::,2a01:390:ffff:ffff:ffff:ffff:ffff:ffff,SK
2a01:398::,2a01:398:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a01:3a0::,2a01:3a7:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a01:3a8::,2a01:3a8:ffff:ffff:ffff:ffff:ffff:ffff,NL
-2a01:3b0:1::,2a01:3b0:1:7fff:ffff:ffff:ffff:ffff,DE
-2a01:3b0:c08::,2a01:3b0:c08:7fff:ffff:ffff:ffff:ffff,DE
2a01:3b8::,2a01:3b8:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a01:3c8::,2a01:3c8:ffff:ffff:ffff:ffff:ffff:ffff,IR
2a01:3d8::,2a01:3d8:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a01:3e0:402::,2a01:3e0:403:ffff:ffff:ffff:ffff:ffff,FR
+2a01:3e0:801::,2a01:3e0:801:ffff:ffff:ffff:ffff:ffff,FR
2a01:3e0:d01::,2a01:3e0:d02:ffff:ffff:ffff:ffff:ffff,GB
2a01:3e0:1101::,2a01:3e0:1101:ffff:ffff:ffff:ffff:ffff,NL
2a01:3e0:1200::,2a01:3e0:1200:1ff:ffff:ffff:ffff:ffff,FR
@@ -19408,6 +19327,7 @@
2a01:3e0:1601::,2a01:3e0:1601:ffff:ffff:ffff:ffff:ffff,FI
2a01:3e0:1700::,2a01:3e0:1701:ff:ffff:ffff:ffff:ffff,GB
2a01:3e0:1b00::,2a01:3e0:1b00:ffff:ffff:ffff:ffff:ffff,FI
+2a01:3e0:1d00::,2a01:3e0:1d00:ff:ffff:ffff:ffff:ffff,CH
2a01:3e0:ff24::,2a01:3e0:ff24:ffff:ffff:ffff:ffff:ffff,DE
2a01:3e8::,2a01:3e8:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a01:3f0::,2a01:3f7:ffff:ffff:ffff:ffff:ffff:ffff,SE
@@ -19441,9 +19361,7 @@
2a01:4e0::,2a01:4e7:ffff:ffff:ffff:ffff:ffff:ffff,LV
2a01:4e8::,2a01:4e8:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a01:4f0::,2a01:4f0:ffff:ffff:ffff:ffff:ffff:ffff,DK
-2a01:4f8::,2a01:4f8:201:7fff:ffff:ffff:ffff:ffff,DE
-2a01:4f8:201:8000::,2a01:4f8:201:ffff:ffff:ffff:ffff:ffff,RU
-2a01:4f8:202::,2a01:4ff:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a01:4f8::,2a01:4ff:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a01:500::,2a01:500:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a01:508::,2a01:508:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a01:510::,2a01:510:ffff:ffff:ffff:ffff:ffff:ffff,CZ
@@ -19458,7 +19376,7 @@
2a01:558::,2a01:558:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a01:560::,2a01:567:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a01:568::,2a01:570:ffff:ffff:ffff:ffff:ffff:ffff,GB
-2a01:578::,2a01:578:ffff:ffff:ffff:ffff:ffff:ffff,IE
+2a01:578::,2a01:578:ffff:ffff:ffff:ffff:ffff:ffff,US
2a01:580::,2a01:580:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a01:590::,2a01:590:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a01:598::,2a01:59f:ffff:ffff:ffff:ffff:ffff:ffff,DE
@@ -19533,9 +19451,7 @@
2a01:7e8::,2a01:7e8:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a01:7f0::,2a01:7f0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a01:7f8::,2a01:7f8:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a01:800::,2a01:838:fffe:ffff:ffff:ffff:ffff:ffff,DE
-2a01:838:ffff::,2a01:838:ffff:7fff:ffff:ffff:ffff:ffff,MT
-2a01:838:ffff:8000::,2a01:8ff:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a01:800::,2a01:8ff:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a01:c00::,2a01:c3f:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a01:e00::,2a01:e3f:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a01:1000::,2a01:17ff:ffff:ffff:ffff:ffff:ffff:ffff,PL
@@ -20022,6 +19938,7 @@
2a01:7cc0::,2a01:7cc0:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a01:7ce0::,2a01:7ce0:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a01:7d00::,2a01:7d00:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a01:7d20::,2a01:7d20:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a01:7d40::,2a01:7d40:ffff:ffff:ffff:ffff:ffff:ffff,SK
2a01:7d60::,2a01:7d60:ffff:ffff:ffff:ffff:ffff:ffff,HU
2a01:7d80::,2a01:7d80:ffff:ffff:ffff:ffff:ffff:ffff,HU
@@ -20129,7 +20046,7 @@
2a01:8a40::,2a01:8a40:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a01:8a60::,2a01:8a60:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a01:8a80::,2a01:8a80:ffff:ffff:ffff:ffff:ffff:ffff,SK
-2a01:8aa0::,2a01:8aa0:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a01:8aa0::,2a01:8aa0:ffff:ffff:ffff:ffff:ffff:ffff,IE
2a01:8ac0::,2a01:8ac0:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a01:8ae0::,2a01:8ae0:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a01:8b00::,2a01:8b00:ffff:ffff:ffff:ffff:ffff:ffff,CH
@@ -20140,9 +20057,7 @@
2a01:8ba0::,2a01:8ba7:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a01:8bc0::,2a01:8bc0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a01:8be0::,2a01:8be0:ffff:ffff:ffff:ffff:ffff:ffff,NL
-2a01:8c00::,2a01:8c00:feff:ffff:ffff:ffff:ffff:ffff,CZ
-2a01:8c00:ff00::,2a01:8c00:ff00:7fff:ffff:ffff:ffff:ffff,SK
-2a01:8c00:ff00:8000::,2a01:8c00:ff00:82b0:ffff:ffff:ffff:ffff,CZ
+2a01:8c00::,2a01:8c00:ff00:82b0:ffff:ffff:ffff:ffff,CZ
2a01:8c00:ff00:82b1::,2a01:8c00:ff00:82b1:ffff:ffff:ffff:ffff,US
2a01:8c00:ff00:82b2::,2a01:8c00:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a01:8c20::,2a01:8c20:ffff:ffff:ffff:ffff:ffff:ffff,NL
@@ -20344,6 +20259,7 @@
2a01:a500::,2a01:a500:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a01:a520::,2a01:a520:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a01:a540::,2a01:a540:ffff:ffff:ffff:ffff:ffff:ffff,IR
+2a01:a560::,2a01:a560:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a01:a580::,2a01:a580:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a01:a5a0::,2a01:a5a0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a01:a5c0::,2a01:a5c0:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -20388,6 +20304,7 @@
2a01:aac0::,2a01:aac0:ffff:ffff:ffff:ffff:ffff:ffff,TR
2a01:aae0::,2a01:aae0:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a01:ab00::,2a01:ab00:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a01:ab20::,2a01:ab20:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a01:ab40::,2a01:ab40:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a01:ab60::,2a01:ab60:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a01:ab80::,2a01:ab80:ffff:ffff:ffff:ffff:ffff:ffff,DE
@@ -20483,7 +20400,6 @@
2a01:b740::,2a01:b740:ffff:ffff:ffff:ffff:ffff:ffff,IE
2a01:b760::,2a01:b760:ffff:ffff:ffff:ffff:ffff:ffff,BG
2a01:b780::,2a01:b780:ffff:ffff:ffff:ffff:ffff:ffff,MK
-2a01:b7a0::,2a01:b7a0:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a01:b7c0::,2a01:b7c0:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a01:b7e0::,2a01:b7e0:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a01:b800::,2a01:b800:ffff:ffff:ffff:ffff:ffff:ffff,RS
@@ -20571,9 +20487,7 @@
2a02:a0::,2a02:a0:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a02:a8::,2a02:a8:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:b0::,2a02:b0:ffff:ffff:ffff:ffff:ffff:ffff,GB
-2a02:b8::,2a02:b8::ffff:ffff:ffff:ffff:ffff,LU
-2a02:b8:1::,2a02:b8:1:7fff:ffff:ffff:ffff:ffff,FR
-2a02:b8:1:8000::,2a02:b8:ffff:ffff:ffff:ffff:ffff:ffff,LU
+2a02:b8::,2a02:b8:ffff:ffff:ffff:ffff:ffff:ffff,LU
2a02:c0::,2a02:c0:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a02:c8::,2a02:c8:ffff:ffff:ffff:ffff:ffff:ffff,BE
2a02:d0::,2a02:d0:ffff:ffff:ffff:ffff:ffff:ffff,RU
@@ -20643,8 +20557,7 @@
2a02:2b8::,2a02:2b8:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a02:2c0::,2a02:2c0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:2c8::,2a02:2c8:ffff:ffff:ffff:ffff:ffff:ffff,NO
-2a02:2d8::,2a02:2d8::7fff:ffff:ffff:ffff:ffff,RU
-2a02:2d8:0:8000::,2a02:2d8:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a02:2d8::,2a02:2d8:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:2e0::,2a02:2e7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:2e8::,2a02:2e8:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a02:2f0::,2a02:2f7:ffff:ffff:ffff:ffff:ffff:ffff,DE
@@ -20726,17 +20639,11 @@
2a02:570::,2a02:570:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a02:578::,2a02:578:5002:7fff:ffff:ffff:ffff:ffff,BE
2a02:578:5002:8000::,2a02:578:5002:ffff:ffff:ffff:ffff:ffff,RU
-2a02:578:5003::,2a02:578:5411:ffff:ffff:ffff:ffff:ffff,BE
-2a02:578:5412::,2a02:578:5412:7fff:ffff:ffff:ffff:ffff,RU
-2a02:578:5412:8000::,2a02:578:ffff:ffff:ffff:ffff:ffff:ffff,BE
-2a02:580::,2a02:580:d3ab:ffff:ffff:ffff:ffff:ffff,GR
-2a02:580:d3ac::,2a02:580:d3ac:7fff:ffff:ffff:ffff:ffff,FR
-2a02:580:d3ac:8000::,2a02:587:ffff:ffff:ffff:ffff:ffff:ffff,GR
+2a02:578:5003::,2a02:578:ffff:ffff:ffff:ffff:ffff:ffff,BE
+2a02:580::,2a02:587:ffff:ffff:ffff:ffff:ffff:ffff,GR
2a02:588::,2a02:588:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:590::,2a02:597:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a02:598::,2a02:598:1:ffff:ffff:ffff:ffff:ffff,CZ
-2a02:598:2::,2a02:598:2:7fff:ffff:ffff:ffff:ffff,GB
-2a02:598:2:8000::,2a02:598:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a02:598::,2a02:598:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a02:5a0::,2a02:5a0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:5b0::,2a02:5b0:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a02:5b8::,2a02:5b8:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -20768,8 +20675,7 @@
2a02:6a0::,2a02:6a0:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a02:6a8::,2a02:6a8:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:6b0::,2a02:6b0:ffff:ffff:ffff:ffff:ffff:ffff,RU
-2a02:6b8::,2a02:6b8::29ff:ffff:ffff:ffff:ffff,RU
-2a02:6b8:0:2a00::,2a02:6b8::2bff:ffff:ffff:ffff:ffff,TR
+2a02:6b8::,2a02:6b8::2bff:ffff:ffff:ffff:ffff,RU
2a02:6b8:0:2c00::,2a02:6b8::2fff:ffff:ffff:ffff:ffff,UA
2a02:6b8:0:3000::,2a02:6b8:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a02:6c0::,2a02:6c0:ffff:ffff:ffff:ffff:ffff:ffff,DK
@@ -20906,16 +20812,13 @@
2a02:ae0::,2a02:ae0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:ae8::,2a02:aef:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a02:af0::,2a02:af0:ffff:ffff:ffff:ffff:ffff:ffff,AT
-2a02:af8::,2a02:af8:dad9:ffff:ffff:ffff:ffff:ffff,GB
-2a02:af8:dada::,2a02:af8:dada:7fff:ffff:ffff:ffff:ffff,IT
-2a02:af8:dada:8000::,2a02:af8:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a02:af8::,2a02:af8:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:b00::,2a02:b00:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:b08::,2a02:b0f:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:b10::,2a02:b10:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:b18::,2a02:b18:ffff:ffff:ffff:ffff:ffff:ffff,AT
2a02:b20::,2a02:b20:ffff:ffff:ffff:ffff:ffff:ffff,CZ
-2a02:b28::,2a02:b28:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a02:b30::,2a02:b30:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a02:b28::,2a02:b30:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:b48::,2a02:b48:ff:ffff:ffff:ffff:ffff:ffff,US
2a02:b48:100::,2a02:b4f:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a02:b50::,2a02:b50:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -21059,7 +20962,9 @@
2a02:fe8::,2a02:fe9:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a02:ff0::,2a02:ff0:ffff:ffff:ffff:ffff:ffff:ffff,TR
2a02:1000::,2a02:103f:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a02:1200::,2a02:121f:ffff:ffff:ffff:ffff:ffff:ffff,CH
+2a02:1200::,2a02:1205:5004:7fff:ffff:ffff:ffff:ffff,CH
+2a02:1205:5004:8000::,2a02:1205:5004:ffff:ffff:ffff:ffff:ffff,IT
+2a02:1205:5005::,2a02:121f:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a02:1300::,2a02:1300:ffff:ffff:ffff:ffff:ffff:ffff,IS
2a02:1308::,2a02:1308:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:1310::,2a02:1310:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -21138,9 +21043,11 @@
2a02:1770::,2a02:1770:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a02:1778::,2a02:1778:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a02:1780::,2a02:1780:ffff:ffff:ffff:ffff:ffff:ffff,SE
-2a02:1788::,2a02:1788:4ff:7fff:ffff:ffff:ffff:ffff,GB
-2a02:1788:4ff:8000::,2a02:1788:4ff:ffff:ffff:ffff:ffff:ffff,US
-2a02:1788:500::,2a02:1788:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a02:1788::,2a02:1788:4fe:ffff:ffff:ffff:ffff:ffff,GB
+2a02:1788:4ff::,2a02:1788:4ff:7fff:ffff:ffff:ffff:ffff,RO
+2a02:1788:4ff:8000::,2a02:1788:4ff:83ff:ffff:ffff:ffff:ffff,GB
+2a02:1788:4ff:8400::,2a02:1788:4ff:84ff:ffff:ffff:ffff:ffff,US
+2a02:1788:4ff:8500::,2a02:1788:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:1790::,2a02:1790:ffff:ffff:ffff:ffff:ffff:ffff,FI
2a02:1798::,2a02:179f:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:17a0::,2a02:17a0:ffff:ffff:ffff:ffff:ffff:ffff,CZ
@@ -21389,7 +21296,7 @@
2a02:27a0::,2a02:27a0:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a02:27a8::,2a02:27af:ffff:ffff:ffff:ffff:ffff:ffff,UA
2a02:27b0::,2a02:27b0:ffff:ffff:ffff:ffff:ffff:ffff,BA
-2a02:27b8::,2a02:27b8:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a02:27b8::,2a02:27bf:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a02:27c0::,2a02:27c0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:27c8::,2a02:27c8:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a02:27d0::,2a02:27d0:ffff:ffff:ffff:ffff:ffff:ffff,FR
@@ -21401,9 +21308,7 @@
2a02:2800::,2a02:2800:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:2808::,2a02:2808:1005:ffff:ffff:ffff:ffff:ffff,CZ
2a02:2808:1006::,2a02:2808:1006:ffff:ffff:ffff:ffff:ffff,RU
-2a02:2808:1007::,2a02:2808:2800:ffff:ffff:ffff:ffff:ffff,CZ
-2a02:2808:2801::,2a02:2808:2801:7fff:ffff:ffff:ffff:ffff,RU
-2a02:2808:2801:8000::,2a02:2808:3000:ffff:ffff:ffff:ffff:ffff,CZ
+2a02:2808:1007::,2a02:2808:3000:ffff:ffff:ffff:ffff:ffff,CZ
2a02:2808:3001::,2a02:2808:3001:ffff:ffff:ffff:ffff:ffff,RU
2a02:2808:3002::,2a02:2808:5300:ffff:ffff:ffff:ffff:ffff,CZ
2a02:2808:5301::,2a02:2808:5301:ffff:ffff:ffff:ffff:ffff,RU
@@ -21538,9 +21443,7 @@
2a02:2dc0::,2a02:2dc0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:2de0::,2a02:2de0:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a02:2e00::,2a02:2e1f:ffff:ffff:ffff:ffff:ffff:ffff,ES
-2a02:2f00::,2a02:2f0b:804c:ffff:ffff:ffff:ffff:ffff,RO
-2a02:2f0b:804d::,2a02:2f0b:804d:7fff:ffff:ffff:ffff:ffff,FR
-2a02:2f0b:804d:8000::,2a02:2f0f:ffff:ffff:ffff:ffff:ffff:ffff,RO
+2a02:2f00::,2a02:2f0f:ffff:ffff:ffff:ffff:ffff:ffff,RO
2a02:2f80::,2a02:2f80:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a02:2fc0::,2a02:2fc7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:2fe0::,2a02:2fe0:ffff:ffff:ffff:ffff:ffff:ffff,IT
@@ -21575,6 +21478,7 @@
2a02:4360::,2a02:4360:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a02:4380::,2a02:4380:ffff:ffff:ffff:ffff:ffff:ffff,AZ
2a02:43a0::,2a02:43a0:ffff:ffff:ffff:ffff:ffff:ffff,IQ
+2a02:43c0::,2a02:43c0:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a02:43e0::,2a02:43e0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:4400::,2a02:4400:ffff:ffff:ffff:ffff:ffff:ffff,KZ
2a02:4420::,2a02:4420:ffff:ffff:ffff:ffff:ffff:ffff,ES
@@ -21664,6 +21568,7 @@
2a02:4f20::,2a02:4f20:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:4f40::,2a02:4f40:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a02:4f60::,2a02:4f67:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a02:4f80::,2a02:4f80:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a02:4fa0::,2a02:4fa0:ffff:ffff:ffff:ffff:ffff:ffff,IS
2a02:4fc0::,2a02:4fc0:ffff:ffff:ffff:ffff:ffff:ffff,GR
2a02:4fe0::,2a02:4fe0:ffff:ffff:ffff:ffff:ffff:ffff,CH
@@ -21906,7 +21811,6 @@
2a02:6da0::,2a02:6da0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:6dc0::,2a02:6dc0:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a02:6de0::,2a02:6de0:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a02:6e00:1::,2a02:6e00:1:7fff:ffff:ffff:ffff:ffff,RO
2a02:6e20::,2a02:6e20:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:6e40::,2a02:6e40:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:6e60::,2a02:6e60:ffff:ffff:ffff:ffff:ffff:ffff,RU
@@ -22059,17 +21963,13 @@
2a02:8200::,2a02:821f:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:8300::,2a02:830f:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a02:8380::,2a02:838f:ffff:ffff:ffff:ffff:ffff:ffff,AT
-2a02:8400::,2a02:8434:2543:ffff:ffff:ffff:ffff:ffff,FR
-2a02:8434:2544::,2a02:8434:2544:7fff:ffff:ffff:ffff:ffff,ES
-2a02:8434:2544:8000::,2a02:847f:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a02:8400::,2a02:847f:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a02:8800::,2a02:88ff:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:9000::,2a02:91ff:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a02:a000::,2a02:a03f:ffff:ffff:ffff:ffff:ffff:ffff,BE
2a02:a200::,2a02:a21f:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a02:a300::,2a02:a31f:ffff:ffff:ffff:ffff:ffff:ffff,PL
-2a02:a400::,2a02:a44f:7982:ffff:ffff:ffff:ffff:ffff,NL
-2a02:a44f:7983::,2a02:a44f:7983:7fff:ffff:ffff:ffff:ffff,DE
-2a02:a44f:7983:8000::,2a02:a47f:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a02:a400::,2a02:a47f:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a02:a800::,2a02:a83f:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a02:aa00::,2a02:aa1f:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a02:ab00::,2a02:ab07:ffff:ffff:ffff:ffff:ffff:ffff,SK
@@ -22117,11 +22017,7 @@
2a02:c540::,2a02:c547:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a02:c580::,2a02:c587:ffff:ffff:ffff:ffff:ffff:ffff,IR
2a02:c5c0::,2a02:c5c7:ffff:ffff:ffff:ffff:ffff:ffff,FI
-2a02:c600::,2a02:c600:ff:ffff:ffff:ffff:ffff:ffff,CH
-2a02:c600:100::,2a02:c600:100:7fff:ffff:ffff:ffff:ffff,CZ
-2a02:c600:100:8000::,2a02:c600:100:ffff:ffff:ffff:ffff:ffff,CH
-2a02:c600:101::,2a02:c600:101:7fff:ffff:ffff:ffff:ffff,CZ
-2a02:c600:101:8000::,2a02:c607:ffff:ffff:ffff:ffff:ffff:ffff,CH
+2a02:c600::,2a02:c607:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a02:c640::,2a02:c647:ffff:ffff:ffff:ffff:ffff:ffff,HU
2a02:c680::,2a02:c681:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a02:c690::,2a02:c691:ffff:ffff:ffff:ffff:ffff:ffff,AD
@@ -22343,6 +22239,8 @@
2a02:f9c0::,2a02:f9c7:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:fa00::,2a02:fa07:ffff:ffff:ffff:ffff:ffff:ffff,SA
2a02:fa40::,2a02:fa47:ffff:ffff:ffff:ffff:ffff:ffff,TR
+2a02:fa80::,2a02:fa80:ffff:ffff:ffff:ffff:ffff:ffff,GR
+2a02:faa0::,2a02:faa0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:fb00::,2a02:fb07:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a02:fb40::,2a02:fb47:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a02:fb80::,2a02:fb87:ffff:ffff:ffff:ffff:ffff:ffff,IT
@@ -22630,7 +22528,6 @@
2a03:2060::,2a03:2060:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a03:2080::,2a03:2080:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a03:20a0::,2a03:20a0:ffff:ffff:ffff:ffff:ffff:ffff,GB
-2a03:20c0::,2a03:20c0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a03:20e0::,2a03:20e0:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a03:2100::,2a03:2100:ffff:ffff:ffff:ffff:ffff:ffff,TR
2a03:2120::,2a03:2120:ffff:ffff:ffff:ffff:ffff:ffff,CH
@@ -22647,7 +22544,7 @@
2a03:2280::,2a03:2280:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a03:22a0::,2a03:22a0:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a03:22c0::,2a03:22c0:ffff:ffff:ffff:ffff:ffff:ffff,PL
-2a03:22e0::,2a03:22e0:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a03:22e0::,2a03:22e7:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a03:2300::,2a03:2307:ffff:ffff:ffff:ffff:ffff:ffff,AM
2a03:2320::,2a03:2320:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a03:2340::,2a03:2340:ffff:ffff:ffff:ffff:ffff:ffff,IT
@@ -22670,6 +22567,7 @@
2a03:2560::,2a03:2560:ffff:ffff:ffff:ffff:ffff:ffff,MK
2a03:2580::,2a03:2580:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a03:25a0::,2a03:25a0:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a03:25c0::,2a03:25c0:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a03:25e0::,2a03:25e0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a03:2600::,2a03:2600:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a03:2620::,2a03:2620:ffff:ffff:ffff:ffff:ffff:ffff,TR
@@ -22677,6 +22575,7 @@
2a03:2660::,2a03:2660:ffff:ffff:ffff:ffff:ffff:ffff,RS
2a03:2680::,2a03:2680:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a03:26a0::,2a03:26a0:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a03:26c0::,2a03:26c0:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a03:26e0::,2a03:26e0:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a03:2700::,2a03:2700:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a03:2720::,2a03:2720:ffff:ffff:ffff:ffff:ffff:ffff,DE
@@ -22723,6 +22622,7 @@
2a03:2a80::,2a03:2a80:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a03:2aa0::,2a03:2aa0:ffff:ffff:ffff:ffff:ffff:ffff,AE
2a03:2ac0::,2a03:2ac0:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a03:2ae0::,2a03:2ae0:ffff:ffff:ffff:ffff:ffff:ffff,BE
2a03:2b00::,2a03:2b00:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a03:2b20::,2a03:2b20:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a03:2b40::,2a03:2b40:ffff:ffff:ffff:ffff:ffff:ffff,RU
@@ -22992,7 +22892,8 @@
2a03:4a80:8::,2a03:4a80:8:ffff:ffff:ffff:ffff:ffff,TR
2a03:4a80:9::,2a03:4a80:9:ffff:ffff:ffff:ffff:ffff,UA
2a03:4a80:a::,2a03:4a80:a:ffff:ffff:ffff:ffff:ffff,MX
-2a03:4a80:b::,2a03:4a80:fffe:ffff:ffff:ffff:ffff:ffff,NL
+2a03:4a80:b::,2a03:4a80:b:ffff:ffff:ffff:ffff:ffff,AE
+2a03:4a80:c::,2a03:4a80:fffe:ffff:ffff:ffff:ffff:ffff,NL
2a03:4a80:ffff::,2a03:4a80:ffff:7fff:ffff:ffff:ffff:ffff,US
2a03:4a80:ffff:8000::,2a03:4a80:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a03:4aa0::,2a03:4aa0:ffff:ffff:ffff:ffff:ffff:ffff,NL
@@ -23312,6 +23213,7 @@
2a03:7340::,2a03:7340:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a03:7360::,2a03:7367:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a03:7380::,2a03:7380:ffff:ffff:ffff:ffff:ffff:ffff,UA
+2a03:73a0::,2a03:73a7:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a03:73c0::,2a03:73c0:ffff:ffff:ffff:ffff:ffff:ffff,PT
2a03:73e0::,2a03:73e0:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a03:7400::,2a03:7400:ffff:ffff:ffff:ffff:ffff:ffff,DK
@@ -23675,7 +23577,7 @@
2a03:a0e0::,2a03:a0e0:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a03:a100::,2a03:a100:ffff:ffff:ffff:ffff:ffff:ffff,SI
2a03:a120::,2a03:a120:ffff:ffff:ffff:ffff:ffff:ffff,AE
-2a03:a140::,2a03:a140:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a03:a140::,2a03:a140:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a03:a160::,2a03:a160:ffff:ffff:ffff:ffff:ffff:ffff,AT
2a03:a180::,2a03:a180:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a03:a1a0::,2a03:a1a0:ffff:ffff:ffff:ffff:ffff:ffff,BE
@@ -23695,23 +23597,40 @@
2a03:a380::,2a03:a380:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a03:a3a0::,2a03:a3a0:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a03:a3c0::,2a03:a3c0:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a03:a3e0::,2a03:a3e0:ffff:ffff:ffff:ffff:ffff:ffff,LB
2a03:a400::,2a03:a400:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a03:a420::,2a03:a420:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a03:a440::,2a03:a440:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a03:a460::,2a03:a460:ffff:ffff:ffff:ffff:ffff:ffff,TR
2a03:a480::,2a03:a480:ffff:ffff:ffff:ffff:ffff:ffff,DK
+2a03:a4a0::,2a03:a4a0:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a03:a4c0::,2a03:a4c0:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a03:a4e0::,2a03:a4e0:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a03:a500::,2a03:a500:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a03:a520::,2a03:a520:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a03:a540::,2a03:a540:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a03:a560::,2a03:a560:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a03:a580::,2a03:a580:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a03:a5a0::,2a03:a5a0:ffff:ffff:ffff:ffff:ffff:ffff,TR
2a03:a5c0::,2a03:a5c0:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a03:a5e0::,2a03:a5e0:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a03:a600::,2a03:a600:ffff:ffff:ffff:ffff:ffff:ffff,UA
+2a03:a620::,2a03:a620:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a03:a640::,2a03:a640:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a03:a660::,2a03:a660:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a03:a680::,2a03:a680:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a03:a6c0::,2a03:a6c0:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a03:a6e0::,2a03:a6e0:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a03:a700::,2a03:a700:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a03:a720::,2a03:a727:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a03:a740::,2a03:a740:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a03:a760::,2a03:a760:ffff:ffff:ffff:ffff:ffff:ffff,BG
2a03:a780::,2a03:a780:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a03:a7a0::,2a03:a7a0:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a03:a7c0::,2a03:a7c0:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a03:a7e0::,2a03:a7e7:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a03:a800::,2a03:a800:ffff:ffff:ffff:ffff:ffff:ffff,BE
+2a03:a820::,2a03:a820:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a03:a840::,2a03:a840:ffff:ffff:ffff:ffff:ffff:ffff,UA
2a03:a880::,2a03:a880:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a03:a8c0::,2a03:a8c0:ffff:ffff:ffff:ffff:ffff:ffff,FR
@@ -23726,6 +23645,7 @@
2a03:ab00::,2a03:ab00:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a03:ab40::,2a03:ab40:ffff:ffff:ffff:ffff:ffff:ffff,AT
2a03:ab80::,2a03:ab80:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a03:abc0::,2a03:abc0:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a03:ac00::,2a03:ac00:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a03:ac40::,2a03:ac40:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a03:ac80::,2a03:ac80:ffff:ffff:ffff:ffff:ffff:ffff,SE
@@ -23734,6 +23654,7 @@
2a03:ad40::,2a03:ad40:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a03:ad80::,2a03:ad80:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a03:adc0::,2a03:adc0:ffff:ffff:ffff:ffff:ffff:ffff,TR
+2a03:ae00::,2a03:ae00:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a03:ae40::,2a03:ae40:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a03:ae80::,2a03:ae80:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a03:aec0::,2a03:aec0:ffff:ffff:ffff:ffff:ffff:ffff,NL
@@ -23914,6 +23835,7 @@
2a03:d900::,2a03:d900:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a03:d940::,2a03:d940:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a03:d980::,2a03:d980:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a03:d9c0::,2a03:d9c0:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a03:da00::,2a03:da00:ffff:ffff:ffff:ffff:ffff:ffff,HU
2a03:da40::,2a03:da40:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a03:da80::,2a03:da80:ffff:ffff:ffff:ffff:ffff:ffff,AT
@@ -24240,7 +24162,6 @@
2a04:2b00::,2a04:2b07:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a04:2b40::,2a04:2b47:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a04:2b80::,2a04:2b87:ffff:ffff:ffff:ffff:ffff:ffff,RO
-2a04:2bc0::,2a04:2bc7:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a04:2c00::,2a04:2c07:ffff:ffff:ffff:ffff:ffff:ffff,UA
2a04:2c40:7::,2a04:2c40:7:7fff:ffff:ffff:ffff:ffff,FR
2a04:2c80::,2a04:2c87:ffff:ffff:ffff:ffff:ffff:ffff,UA
@@ -24578,6 +24499,7 @@
2a04:7ec0::,2a04:7ec7:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a04:7f00::,2a04:7f07:ffff:ffff:ffff:ffff:ffff:ffff,BE
2a04:7f40::,2a04:7f47:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a04:7f80::,2a04:7f87:ffff:ffff:ffff:ffff:ffff:ffff,QA
2a04:7fc0::,2a04:7fc7:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a04:8000::,2a04:8007:ffff:ffff:ffff:ffff:ffff:ffff,UA
2a04:8040::,2a04:8047:ffff:ffff:ffff:ffff:ffff:ffff,FR
@@ -24765,8 +24687,7 @@
2a04:acc0::,2a04:acc7:ffff:ffff:ffff:ffff:ffff:ffff,IR
2a04:ad00::,2a04:ad07:ffff:ffff:ffff:ffff:ffff:ffff,IQ
2a04:ad40::,2a04:ad47:ffff:ffff:ffff:ffff:ffff:ffff,FI
-2a04:ad80::,2a04:ad80::7fff:ffff:ffff:ffff:ffff,NL
-2a04:ad80:0:8000::,2a04:ad87:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a04:ad80::,2a04:ad87:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a04:adc0::,2a04:adc7:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a04:ae00::,2a04:ae3f:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a04:b000::,2a04:b007:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -24857,6 +24778,7 @@
2a04:c600::,2a04:c607:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a04:c640::,2a04:c647:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a04:c680::,2a04:c687:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a04:c6c0::,2a04:c6c7:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a04:c700::,2a04:c707:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a04:c740::,2a04:c747:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a04:c780::,2a04:c787:ffff:ffff:ffff:ffff:ffff:ffff,NL
@@ -24915,6 +24837,7 @@
2a04:d4c0::,2a04:d4c7:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a04:d500::,2a04:d507:ffff:ffff:ffff:ffff:ffff:ffff,FI
2a04:d540::,2a04:d547:ffff:ffff:ffff:ffff:ffff:ffff,AT
+2a04:d580::,2a04:d587:ffff:ffff:ffff:ffff:ffff:ffff,SA
2a04:d5c0::,2a04:d5c7:ffff:ffff:ffff:ffff:ffff:ffff,IE
2a04:d600::,2a04:d607:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a04:d640::,2a04:d647:ffff:ffff:ffff:ffff:ffff:ffff,IE
@@ -24972,6 +24895,7 @@
2a04:e340::,2a04:e347:ffff:ffff:ffff:ffff:ffff:ffff,AE
2a04:e380::,2a04:e387:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a04:e3c0::,2a04:e3c7:ffff:ffff:ffff:ffff:ffff:ffff,DK
+2a04:e400::,2a04:e407:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a04:e440::,2a04:e447:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a04:e480::,2a04:e487:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a04:e4c0:10::,2a04:e4c0:10:ffff:ffff:ffff:ffff:ffff,GB
@@ -25009,6 +24933,7 @@
2a04:eac0::,2a04:eac7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a04:eb00::,2a04:eb07:ffff:ffff:ffff:ffff:ffff:ffff,LT
2a04:eb40::,2a04:eb47:ffff:ffff:ffff:ffff:ffff:ffff,AL
+2a04:eb80::,2a04:eb87:ffff:ffff:ffff:ffff:ffff:ffff,RS
2a04:ebc0::,2a04:ebc7:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a04:ec00::,2a04:ec01:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a04:ec10::,2a04:ec11:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -25055,6 +24980,8 @@
2a04:f5c0::,2a04:f5c7:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a04:f600::,2a04:f607:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a04:f680::,2a04:f687:ffff:ffff:ffff:ffff:ffff:ffff,AT
+2a04:f6c0::,2a04:f6c7:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a04:f700::,2a04:f707:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a04:f740::,2a04:f747:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a04:f780::,2a04:f787:ffff:ffff:ffff:ffff:ffff:ffff,IN
2a04:f7c0::,2a04:f7c7:ffff:ffff:ffff:ffff:ffff:ffff,NL
@@ -25092,6 +25019,7 @@
2a04:ff80::,2a04:ff87:ffff:ffff:ffff:ffff:ffff:ffff,BA
2a04:ffc0::,2a04:ffc7:ffff:ffff:ffff:ffff:ffff:ffff,HU
2a05::,2a05:7:ffff:ffff:ffff:ffff:ffff:ffff,BE
+2a05:40::,2a05:47:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a05:80::,2a05:87:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a05:c0::,2a05:c7:ffff:ffff:ffff:ffff:ffff:ffff,DK
2a05:100::,2a05:107:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -25104,7 +25032,6 @@
2a05:300::,2a05:307:ffff:ffff:ffff:ffff:ffff:ffff,TR
2a05:340::,2a05:347:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a05:380::,2a05:387:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a05:3c0::,2a05:3c7:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a05:400::,2a05:407:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a05:440::,2a05:447:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a05:480::,2a05:487:ffff:ffff:ffff:ffff:ffff:ffff,UA
@@ -25138,10 +25065,12 @@
2a05:b80::,2a05:b87:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a05:bc0::,2a05:bc7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a05:c00::,2a05:c07:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a05:c40::,2a05:c47:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a05:c80::,2a05:c87:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a05:cc0::,2a05:cc7:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a05:d00::,2a05:d07:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a05:d40::,2a05:d47:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a05:d80::,2a05:d87:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a05:dc0::,2a05:dc7:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a05:e00::,2a05:e07:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a05:e40::,2a05:e47:ffff:ffff:ffff:ffff:ffff:ffff,AT
@@ -25201,12 +25130,15 @@
2a05:1d80::,2a05:1d87:ffff:ffff:ffff:ffff:ffff:ffff,TR
2a05:1dc0::,2a05:1dc7:ffff:ffff:ffff:ffff:ffff:ffff,IE
2a05:1e00::,2a05:1e07:ffff:ffff:ffff:ffff:ffff:ffff,CH
+2a05:1e40::,2a05:1e47:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a05:1e80::,2a05:1e87:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a05:1ec0::,2a05:1ec7:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a05:1f00::,2a05:1f07:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a05:1f40::,2a05:1f47:ffff:ffff:ffff:ffff:ffff:ffff,FI
2a05:1f80::,2a05:1f87:ffff:ffff:ffff:ffff:ffff:ffff,BA
2a05:1fc0::,2a05:1fc7:ffff:ffff:ffff:ffff:ffff:ffff,RO
2a05:2000::,2a05:2007:ffff:ffff:ffff:ffff:ffff:ffff,SE
+2a05:2040::,2a05:2047:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a05:2080::,2a05:2087:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a05:20c0::,2a05:20c7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a05:2100::,2a05:2107:ffff:ffff:ffff:ffff:ffff:ffff,CZ
@@ -25214,11 +25146,7 @@
2a05:2180::,2a05:2187:ffff:ffff:ffff:ffff:ffff:ffff,TM
2a05:21c0::,2a05:21c7:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a05:2200::,2a05:2207:ffff:ffff:ffff:ffff:ffff:ffff,NL
-2a05:2240::,2a05:2242:436:ffff:ffff:ffff:ffff:ffff,SE
-2a05:2242:437::,2a05:2242:437:7fff:ffff:ffff:ffff:ffff,NO
-2a05:2242:437:8000::,2a05:2242:437:ffff:ffff:ffff:ffff:ffff,SE
-2a05:2242:438::,2a05:2242:438:7fff:ffff:ffff:ffff:ffff,NO
-2a05:2242:438:8000::,2a05:2247:ffff:ffff:ffff:ffff:ffff:ffff,SE
+2a05:2240::,2a05:2247:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a05:2280::,2a05:2287:ffff:ffff:ffff:ffff:ffff:ffff,SI
2a05:22c0::,2a05:22c7:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a05:2300::,2a05:2307:ffff:ffff:ffff:ffff:ffff:ffff,NL
@@ -25232,12 +25160,14 @@
2a05:2500::,2a05:2507:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a05:2540::,2a05:2547:ffff:ffff:ffff:ffff:ffff:ffff,IE
2a05:2580::,2a05:2587:ffff:ffff:ffff:ffff:ffff:ffff,UA
+2a05:25c0::,2a05:25c7:ffff:ffff:ffff:ffff:ffff:ffff,KW
2a05:2600::,2a05:2607:ffff:ffff:ffff:ffff:ffff:ffff,BE
2a05:2640::,2a05:2647:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a05:2680::,2a05:2687:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a05:26c0::,2a05:26c7:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a05:2700::,2a05:2707:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a05:2740::,2a05:2747:ffff:ffff:ffff:ffff:ffff:ffff,CH
+2a05:2780::,2a05:2787:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a05:27c0::,2a05:27c7:ffff:ffff:ffff:ffff:ffff:ffff,KZ
2a05:2800::,2a05:2807:ffff:ffff:ffff:ffff:ffff:ffff,IE
2a05:2840::,2a05:2847:ffff:ffff:ffff:ffff:ffff:ffff,NO
@@ -25282,6 +25212,7 @@
2a05:3200::,2a05:3207:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a05:3240::,2a05:3247:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a05:3280::,2a05:3287:ffff:ffff:ffff:ffff:ffff:ffff,SA
+2a05:32c0::,2a05:32c7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a05:3300::,2a05:3307:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a05:3380::,2a05:3387:ffff:ffff:ffff:ffff:ffff:ffff,YE
2a05:33c0::,2a05:33c7:ffff:ffff:ffff:ffff:ffff:ffff,SI
@@ -25373,6 +25304,7 @@
2a05:4980::,2a05:4987:ffff:ffff:ffff:ffff:ffff:ffff,RS
2a05:49c0::,2a05:49c7:ffff:ffff:ffff:ffff:ffff:ffff,IR
2a05:4a00::,2a05:4a07:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a05:4a40::,2a05:4a47:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a05:4ac0::,2a05:4ac7:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a05:4b00::,2a05:4b07:ffff:ffff:ffff:ffff:ffff:ffff,UA
2a05:4b40::,2a05:4b47:ffff:ffff:ffff:ffff:ffff:ffff,RU
@@ -25449,6 +25381,7 @@
2a05:5c80::,2a05:5c87:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a05:5cc0::,2a05:5cc7:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a05:5d00::,2a05:5d07:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a05:5d40::,2a05:5d47:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a05:5d80::,2a05:5d87:ffff:ffff:ffff:ffff:ffff:ffff,MK
2a05:5dc0::,2a05:5dc7:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a05:5e00::,2a05:5e07:ffff:ffff:ffff:ffff:ffff:ffff,AE
@@ -25526,6 +25459,7 @@
2a05:7000::,2a05:7007:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a05:7040::,2a05:7047:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a05:7080::,2a05:7087:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a05:70c0::,2a05:70c7:ffff:ffff:ffff:ffff:ffff:ffff,HR
2a05:7100::,2a05:7107:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a05:7140::,2a05:7147:ffff:ffff:ffff:ffff:ffff:ffff,MD
2a05:7180::,2a05:7187:ffff:ffff:ffff:ffff:ffff:ffff,DE
@@ -25577,7 +25511,7 @@
2a05:7d00::,2a05:7d07:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a05:7d40::,2a05:7d47:ffff:ffff:ffff:ffff:ffff:ffff,TR
2a05:7d80::,2a05:7d87:ffff:ffff:ffff:ffff:ffff:ffff,YE
-2a05:7dc0::,2a05:7dc1:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a05:7dc0::,2a05:7dc7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a05:7de0::,2a05:7de3:ffff:ffff:ffff:ffff:ffff:ffff,IR
2a05:7e00::,2a05:7e07:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a05:7e40::,2a05:7e47:ffff:ffff:ffff:ffff:ffff:ffff,DE
@@ -25998,6 +25932,7 @@
2a05:e700::,2a05:e707:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a05:e740::,2a05:e747:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a05:e780::,2a05:e787:ffff:ffff:ffff:ffff:ffff:ffff,IR
+2a05:e7c0::,2a05:e7c7:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a05:e800::,2a05:e807:ffff:ffff:ffff:ffff:ffff:ffff,SK
2a05:e840::,2a05:e847:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a05:e880::,2a05:e887:ffff:ffff:ffff:ffff:ffff:ffff,NO
@@ -26077,6 +26012,7 @@
2a05:fb00::,2a05:fb07:ffff:ffff:ffff:ffff:ffff:ffff,SE
2a05:fb80::,2a05:fb87:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a05:fbc0::,2a05:fbc3:ffff:ffff:ffff:ffff:ffff:ffff,TR
+2a05:fbe0::,2a05:fbe3:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a05:fc00::,2a05:fc07:ffff:ffff:ffff:ffff:ffff:ffff,AT
2a05:fc40::,2a05:fc47:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a05:fc80::,2a05:fc87:ffff:ffff:ffff:ffff:ffff:ffff,CH
@@ -26145,9 +26081,7 @@
2a06:cc0::,2a06:cc7:ffff:ffff:ffff:ffff:ffff:ffff,SK
2a06:d00::,2a06:d07:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a06:d40::,2a06:d47:ffff:ffff:ffff:ffff:ffff:ffff,US
-2a06:d80::,2a06:d86:1fe:ffff:ffff:ffff:ffff:ffff,GB
-2a06:d86:1ff::,2a06:d86:1ff:7fff:ffff:ffff:ffff:ffff,US
-2a06:d86:1ff:8000::,2a06:d87:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a06:d80::,2a06:d87:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a06:dc0::,2a06:dc7:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a06:e00::,2a06:e07:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a06:e40::,2a06:e47:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -26164,7 +26098,8 @@
2a06:1100::,2a06:1107:ffff:ffff:ffff:ffff:ffff:ffff,IE
2a06:1140::,2a06:1147:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a06:1180::,2a06:1187:ffff:ffff:ffff:ffff:ffff:ffff,NL
-2a06:11c0::,2a06:11c7:ffff:ffff:ffff:ffff:ffff:ffff,RO
+2a06:11c0::,2a06:11c0:f:ffff:ffff:ffff:ffff:ffff,GB
+2a06:11c0:10::,2a06:11c7:ffff:ffff:ffff:ffff:ffff:ffff,RO
2a06:1200::,2a06:1207:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a06:1240::,2a06:1247:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a06:1280::,2a06:1280:bee0:ffff:ffff:ffff:ffff:ffff,BY
@@ -26295,6 +26230,7 @@
2a06:30c0::,2a06:30c7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a06:3100::,2a06:3107:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a06:3180::,2a06:3187:ffff:ffff:ffff:ffff:ffff:ffff,SA
+2a06:31c0::,2a06:31c7:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a06:3200::,2a06:3207:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a06:3240::,2a06:3247:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a06:3280::,2a06:3287:ffff:ffff:ffff:ffff:ffff:ffff,IT
@@ -26417,6 +26353,8 @@
2a06:50c0::,2a06:50c7:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a06:5100::,2a06:5107:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a06:5140::,2a06:5147:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a06:5180::,2a06:5187:ffff:ffff:ffff:ffff:ffff:ffff,TR
+2a06:51c0::,2a06:51c7:ffff:ffff:ffff:ffff:ffff:ffff,PL
2a06:5200::,2a06:5207:ffff:ffff:ffff:ffff:ffff:ffff,IE
2a06:5240::,2a06:5247:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a06:5280::,2a06:5287:ffff:ffff:ffff:ffff:ffff:ffff,RO
@@ -26544,11 +26482,13 @@
2a06:7180::,2a06:7187:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a06:71c0::,2a06:71c7:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a06:7200::,2a06:7207:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a06:7240::,2a06:7247:ffff:ffff:ffff:ffff:ffff:ffff,AT
+2a06:7240::,2a06:7240:4:ffff:ffff:ffff:ffff:ffff,AT
+2a06:7240:5::,2a06:7240:6:ffff:ffff:ffff:ffff:ffff,NL
+2a06:7240:7::,2a06:7247:ffff:ffff:ffff:ffff:ffff:ffff,AT
2a06:7280::,2a06:7287:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a06:72c0::,2a06:72c7:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a06:7300::,2a06:7307:ffff:ffff:ffff:ffff:ffff:ffff,UA
-2a06:7340::,2a06:7347:ffff:ffff:ffff:ffff:ffff:ffff,RO
+2a06:7340::,2a06:7347:ffff:ffff:ffff:ffff:ffff:ffff,BG
2a06:7380::,2a06:7387:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a06:73c0::,2a06:73c7:ffff:ffff:ffff:ffff:ffff:ffff,AL
2a06:7400::,2a06:7407:ffff:ffff:ffff:ffff:ffff:ffff,RO
@@ -26603,18 +26543,20 @@
2a06:8040::,2a06:8047:ffff:ffff:ffff:ffff:ffff:ffff,FR
2a06:8080::,2a06:8087:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2a06:80c0::,2a06:80c7:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a06:8100::,2a06:8107:ffff:ffff:ffff:ffff:ffff:ffff,RO
+2a06:8100::,2a06:8107:ffff:ffff:ffff:ffff:ffff:ffff,BG
2a06:8140::,2a06:8147:ffff:ffff:ffff:ffff:ffff:ffff,DE
-2a06:8180::,2a06:8181:9f:ffff:ffff:ffff:ffff:ffff,GB
-2a06:8181:a0::,2a06:8181:af:ffff:ffff:ffff:ffff:ffff,NL
-2a06:8181:b0::,2a06:8181:fef:ffff:ffff:ffff:ffff:ffff,GB
+2a06:8180::,2a06:8181:fef:ffff:ffff:ffff:ffff:ffff,GB
2a06:8181:ff0::,2a06:8181:fff:ffff:ffff:ffff:ffff:ffff,AT
2a06:8181:1000::,2a06:8181:1fcf:ffff:ffff:ffff:ffff:ffff,GB
2a06:8181:1fd0::,2a06:8181:1fdf:ffff:ffff:ffff:ffff:ffff,AT
2a06:8181:1fe0::,2a06:8184:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a06:8185::,2a06:8185:ffff:ffff:ffff:ffff:ffff:ffff,CH
2a06:8186::,2a06:8187:fcff:ffff:ffff:ffff:ffff:ffff,GB
-2a06:8187:fd00::,2a06:8187:fdff:ffff:ffff:ffff:ffff:ffff,FR
+2a06:8187:fd00::,2a06:8187:fd02:ffff:ffff:ffff:ffff:ffff,FR
+2a06:8187:fd03::,2a06:8187:fd03:ffff:ffff:ffff:ffff:ffff,IE
+2a06:8187:fd04::,2a06:8187:fd98:ffff:ffff:ffff:ffff:ffff,FR
+2a06:8187:fd99::,2a06:8187:fd99:ffff:ffff:ffff:ffff:ffff,LI
+2a06:8187:fd9a::,2a06:8187:fdff:ffff:ffff:ffff:ffff:ffff,FR
2a06:8187:fe00::,2a06:8187:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a06:81c0::,2a06:81c7:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a06:8200::,2a06:8207:ffff:ffff:ffff:ffff:ffff:ffff,IR
@@ -26665,7 +26607,8 @@
2a06:8d00::,2a06:8d07:ffff:ffff:ffff:ffff:ffff:ffff,IR
2a06:8d40::,2a06:8d47:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a06:8d80::,2a06:8d87:ffff:ffff:ffff:ffff:ffff:ffff,GB
-2a06:8dc0::,2a06:8dc7:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a06:8dc0::,2a06:8dc0:f:ffff:ffff:ffff:ffff:ffff,RO
+2a06:8dc0:10::,2a06:8dc7:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a06:8e00::,2a06:8e07:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a06:8e40::,2a06:8e47:ffff:ffff:ffff:ffff:ffff:ffff,GB
2a06:8e80::,2a06:8e87:ffff:ffff:ffff:ffff:ffff:ffff,GB
@@ -26862,7 +26805,6 @@
2a06:bd00::,2a06:bd07:ffff:ffff:ffff:ffff:ffff:ffff,NO
2a06:bd40::,2a06:bd47:ffff:ffff:ffff:ffff:ffff:ffff,NL
2a06:bd80::,2a06:bd87:ffff:ffff:ffff:ffff:ffff:ffff,IS
-2a06:bdc0::,2a06:bdc7:ffff:ffff:ffff:ffff:ffff:ffff,ES
2a06:be00::,2a06:be07:ffff:ffff:ffff:ffff:ffff:ffff,DE
2a06:be40::,2a06:be47:ffff:ffff:ffff:ffff:ffff:ffff,IT
2a06:be80::,2a06:be87:ffff:ffff:ffff:ffff:ffff:ffff,DE
@@ -27025,6 +26967,241 @@
2a06:e5c0::,2a06:e5c7:ffff:ffff:ffff:ffff:ffff:ffff,RS
2a06:e600::,2a06:e607:ffff:ffff:ffff:ffff:ffff:ffff,RU
2a06:e640::,2a06:e647:ffff:ffff:ffff:ffff:ffff:ffff,PT
+2a06:e680::,2a06:e687:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:e6c0::,2a06:e6c7:ffff:ffff:ffff:ffff:ffff:ffff,LU
+2a06:e700::,2a06:e707:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:e740::,2a06:e747:ffff:ffff:ffff:ffff:ffff:ffff,IR
+2a06:e780::,2a06:e787:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a06:e7c0::,2a06:e7c7:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a06:e800::,2a06:e807:ffff:ffff:ffff:ffff:ffff:ffff,DK
+2a06:e840::,2a06:e847:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a06:e880::,2a06:e881:1ff:ffff:ffff:ffff:ffff:ffff,CH
+2a06:e881:200::,2a06:e881:2ff:ffff:ffff:ffff:ffff:ffff,AT
+2a06:e881:300::,2a06:e887:ffff:ffff:ffff:ffff:ffff:ffff,CH
+2a06:e8c0::,2a06:e8c7:ffff:ffff:ffff:ffff:ffff:ffff,LV
+2a06:e900::,2a06:e907:ffff:ffff:ffff:ffff:ffff:ffff,HU
+2a06:e940::,2a06:e947:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a06:e980::,2a06:e987:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a06:e9c0::,2a06:e9c7:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:ea00::,2a06:ea07:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a06:ea40::,2a06:ea47:ffff:ffff:ffff:ffff:ffff:ffff,SE
+2a06:ea80::,2a06:ea87:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:eac0::,2a06:eac7:ffff:ffff:ffff:ffff:ffff:ffff,DK
+2a06:eb00::,2a06:eb07:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a06:eb40::,2a06:eb47:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:eb80::,2a06:eb87:ffff:ffff:ffff:ffff:ffff:ffff,LB
+2a06:ebc0::,2a06:ebc7:ffff:ffff:ffff:ffff:ffff:ffff,LU
+2a06:ec00::,2a06:ec07:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:ec40::,2a06:ec47:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a06:ec80::,2a06:ec87:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a06:ecc0::,2a06:ecc7:ffff:ffff:ffff:ffff:ffff:ffff,FI
+2a06:ed00::,2a06:ed07:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:ed40::,2a06:ed47:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a06:ed80::,2a06:ed87:ffff:ffff:ffff:ffff:ffff:ffff,TJ
+2a06:edc0::,2a06:edc7:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:ee00::,2a06:ee07:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a06:ee40::,2a06:ee47:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:ee80::,2a06:ee87:ffff:ffff:ffff:ffff:ffff:ffff,IQ
+2a06:eec0::,2a06:eec7:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a06:ef00::,2a06:ef07:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a06:ef40::,2a06:ef47:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:ef80::,2a06:ef87:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a06:efc0::,2a06:efc7:ffff:ffff:ffff:ffff:ffff:ffff,BE
+2a06:f000::,2a06:f007:ffff:ffff:ffff:ffff:ffff:ffff,SK
+2a06:f040::,2a06:f047:ffff:ffff:ffff:ffff:ffff:ffff,FI
+2a06:f080::,2a06:f087:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a06:f0c0::,2a06:f0c7:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a06:f100::,2a06:f107:ffff:ffff:ffff:ffff:ffff:ffff,IR
+2a06:f140::,2a06:f147:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:f180::,2a06:f187:ffff:ffff:ffff:ffff:ffff:ffff,DK
+2a06:f1c0::,2a06:f1c7:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a06:f200::,2a06:f207:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a06:f240::,2a06:f247:ffff:ffff:ffff:ffff:ffff:ffff,DK
+2a06:f280::,2a06:f287:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a06:f2c0::,2a06:f2c7:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a06:f300::,2a06:f307:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a06:f340::,2a06:f347:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a06:f380::,2a06:f387:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a06:f3c0::,2a06:f3c7:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a06:f400::,2a06:f407:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a06:f440::,2a06:f447:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a06:f480::,2a06:f487:ffff:ffff:ffff:ffff:ffff:ffff,CH
+2a06:f4c0::,2a06:f4c7:ffff:ffff:ffff:ffff:ffff:ffff,BE
+2a06:f500::,2a06:f507:ffff:ffff:ffff:ffff:ffff:ffff,IN
+2a06:f540::,2a06:f547:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a06:f580::,2a06:f587:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a06:f5c0::,2a06:f5c7:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a06:f600::,2a06:f607:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a06:f640::,2a06:f647:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a06:f680::,2a06:f687:ffff:ffff:ffff:ffff:ffff:ffff,HU
+2a06:f6c0::,2a06:f6c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a06:f700::,2a06:f707:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a06:f740::,2a06:f747:ffff:ffff:ffff:ffff:ffff:ffff,LU
+2a06:f780::,2a06:f787:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a06:f7c0::,2a06:f7c7:ffff:ffff:ffff:ffff:ffff:ffff,TR
+2a06:f800::,2a06:f807:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a06:f840::,2a06:f847:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a06:f880::,2a06:f887:ffff:ffff:ffff:ffff:ffff:ffff,US
+2a06:f8c0::,2a06:f8c7:ffff:ffff:ffff:ffff:ffff:ffff,TR
+2a06:f900::,2a06:f907:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a06:f940::,2a06:f947:ffff:ffff:ffff:ffff:ffff:ffff,AT
+2a06:f980::,2a06:f987:ffff:ffff:ffff:ffff:ffff:ffff,IE
+2a06:f9c0::,2a06:f9c7:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a06:fa00::,2a06:fa07:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a06:fa40::,2a06:fa47:ffff:ffff:ffff:ffff:ffff:ffff,TR
+2a06:fa80::,2a06:fa87:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a06:fac0::,2a06:fac7:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a06:fb00::,2a06:fb07:ffff:ffff:ffff:ffff:ffff:ffff,BG
+2a06:fb40::,2a06:fb47:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a06:fb80::,2a06:fb87:ffff:ffff:ffff:ffff:ffff:ffff,AT
+2a06:fbc0::,2a06:fbc7:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:fc00::,2a06:fc07:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a06:fc40::,2a06:fc47:ffff:ffff:ffff:ffff:ffff:ffff,DK
+2a06:fc80::,2a06:fc87:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a06:fcc0::,2a06:fcc7:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a06:fd00::,2a06:fd07:ffff:ffff:ffff:ffff:ffff:ffff,BE
+2a06:fd40::,2a06:fd47:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a06:fd80::,2a06:fd87:ffff:ffff:ffff:ffff:ffff:ffff,IQ
+2a06:fdc0::,2a06:fdc7:ffff:ffff:ffff:ffff:ffff:ffff,RO
+2a06:fe00::,2a06:fe07:ffff:ffff:ffff:ffff:ffff:ffff,MA
+2a06:fe40::,2a06:fe47:ffff:ffff:ffff:ffff:ffff:ffff,UZ
+2a06:fe80::,2a06:fe87:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a06:fec0::,2a06:fec7:ffff:ffff:ffff:ffff:ffff:ffff,BE
+2a06:ff00::,2a06:ff07:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a06:ff40::,2a06:ff47:ffff:ffff:ffff:ffff:ffff:ffff,UA
+2a06:ff80::,2a06:ff87:ffff:ffff:ffff:ffff:ffff:ffff,IQ
+2a06:ffc0::,2a06:ffc7:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a07::,2a07:7:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:40::,2a07:47:ffff:ffff:ffff:ffff:ffff:ffff,IR
+2a07:80::,2a07:87:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a07:c0::,2a07:c7:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:100::,2a07:107:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a07:140::,2a07:147:ffff:ffff:ffff:ffff:ffff:ffff,JO
+2a07:180::,2a07:187:ffff:ffff:ffff:ffff:ffff:ffff,UA
+2a07:1c0::,2a07:1c7:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a07:200::,2a07:207:ffff:ffff:ffff:ffff:ffff:ffff,BY
+2a07:280::,2a07:287:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:2c0::,2a07:2c7:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a07:300::,2a07:307:ffff:ffff:ffff:ffff:ffff:ffff,LU
+2a07:340::,2a07:347:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a07:380::,2a07:387:ffff:ffff:ffff:ffff:ffff:ffff,IR
+2a07:3c0::,2a07:3c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a07:400::,2a07:407:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:440::,2a07:447:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:480::,2a07:487:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a07:4c0::,2a07:4c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a07:500::,2a07:507:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:540::,2a07:547:ffff:ffff:ffff:ffff:ffff:ffff,RO
+2a07:580::,2a07:587:ffff:ffff:ffff:ffff:ffff:ffff,RO
+2a07:5c0::,2a07:5c7:ffff:ffff:ffff:ffff:ffff:ffff,CH
+2a07:600::,2a07:607:ffff:ffff:ffff:ffff:ffff:ffff,CH
+2a07:640::,2a07:647:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a07:680::,2a07:687:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:6c0::,2a07:6c7:ffff:ffff:ffff:ffff:ffff:ffff,SE
+2a07:700::,2a07:707:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a07:740::,2a07:747:ffff:ffff:ffff:ffff:ffff:ffff,KW
+2a07:780::,2a07:787:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a07:7c0::,2a07:7c7:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a07:800::,2a07:807:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a07:840::,2a07:847:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:880::,2a07:887:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:8c0::,2a07:8c7:ffff:ffff:ffff:ffff:ffff:ffff,GR
+2a07:900::,2a07:907:ffff:ffff:ffff:ffff:ffff:ffff,CH
+2a07:940::,2a07:947:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:980::,2a07:987:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a07:9c0::,2a07:9c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a07:a00::,2a07:a07:ffff:ffff:ffff:ffff:ffff:ffff,TR
+2a07:a40::,2a07:a47:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:a80::,2a07:a87:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a07:ac0::,2a07:ac7:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:b00::,2a07:b07:ffff:ffff:ffff:ffff:ffff:ffff,SE
+2a07:b40::,2a07:b47:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:b80::,2a07:b87:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:bc0::,2a07:bc7:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a07:c00::,2a07:c07:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:c40::,2a07:c47:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a07:c80::,2a07:c87:ffff:ffff:ffff:ffff:ffff:ffff,UA
+2a07:cc0::,2a07:cc7:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a07:d00::,2a07:d07:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:d40::,2a07:d47:ffff:ffff:ffff:ffff:ffff:ffff,BE
+2a07:d80::,2a07:d87:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a07:dc0::,2a07:dc7:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:e00::,2a07:e07:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:e40::,2a07:e47:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:e80::,2a07:e87:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:ec0::,2a07:ec7:ffff:ffff:ffff:ffff:ffff:ffff,DK
+2a07:f00::,2a07:f07:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:f40::,2a07:f47:ffff:ffff:ffff:ffff:ffff:ffff,RS
+2a07:f80::,2a07:f87:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:fc0::,2a07:fc7:ffff:ffff:ffff:ffff:ffff:ffff,IS
+2a07:1000::,2a07:1007:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:1040::,2a07:1047:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:1080::,2a07:1087:ffff:ffff:ffff:ffff:ffff:ffff,UA
+2a07:10c0::,2a07:10c7:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a07:1100::,2a07:1107:ffff:ffff:ffff:ffff:ffff:ffff,HU
+2a07:1140::,2a07:1147:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:1180::,2a07:1187:ffff:ffff:ffff:ffff:ffff:ffff,EE
+2a07:11c0::,2a07:11c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a07:1200::,2a07:1207:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a07:1240::,2a07:1247:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:1280::,2a07:1287:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a07:12c0::,2a07:12c7:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:1300::,2a07:1307:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:1340::,2a07:1347:ffff:ffff:ffff:ffff:ffff:ffff,UA
+2a07:1380::,2a07:1387:ffff:ffff:ffff:ffff:ffff:ffff,IR
+2a07:13c0::,2a07:13c7:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a07:1400::,2a07:1407:ffff:ffff:ffff:ffff:ffff:ffff,DK
+2a07:1440::,2a07:1447:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:1480::,2a07:1487:ffff:ffff:ffff:ffff:ffff:ffff,DK
+2a07:14c0::,2a07:14c7:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:1500::,2a07:1507:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:1540::,2a07:1547:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a07:1580::,2a07:1587:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:15c0::,2a07:15c7:ffff:ffff:ffff:ffff:ffff:ffff,TR
+2a07:1600::,2a07:1607:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a07:1640::,2a07:1647:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a07:1680::,2a07:1687:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a07:16c0::,2a07:16c7:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a07:1700::,2a07:1707:ffff:ffff:ffff:ffff:ffff:ffff,NO
+2a07:1740::,2a07:1747:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:1780::,2a07:1787:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:17c0::,2a07:17c7:ffff:ffff:ffff:ffff:ffff:ffff,UA
+2a07:1800::,2a07:1807:ffff:ffff:ffff:ffff:ffff:ffff,AT
+2a07:1840::,2a07:1847:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:1880::,2a07:1887:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a07:18c0::,2a07:18c7:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a07:1900::,2a07:1907:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a07:1940::,2a07:1947:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a07:1980::,2a07:1987:ffff:ffff:ffff:ffff:ffff:ffff,IL
+2a07:19c0::,2a07:19c7:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a07:1a00::,2a07:1a07:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a07:1a40::,2a07:1a47:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a07:1a80::,2a07:1a87:ffff:ffff:ffff:ffff:ffff:ffff,SE
+2a07:1ac0::,2a07:1ac7:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:1b00::,2a07:1b07:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:1b40::,2a07:1b47:ffff:ffff:ffff:ffff:ffff:ffff,GB
+2a07:1b80::,2a07:1b87:ffff:ffff:ffff:ffff:ffff:ffff,AT
+2a07:1bc0::,2a07:1bc7:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a07:1c00::,2a07:1c07:ffff:ffff:ffff:ffff:ffff:ffff,DE
+2a07:1c40::,2a07:1c47:ffff:ffff:ffff:ffff:ffff:ffff,AT
+2a07:1c80::,2a07:1c87:ffff:ffff:ffff:ffff:ffff:ffff,SE
+2a07:1cc0::,2a07:1cc7:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a07:1d00::,2a07:1d07:ffff:ffff:ffff:ffff:ffff:ffff,IR
+2a07:1d40::,2a07:1d47:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:1d80::,2a07:1d87:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a07:1dc0::,2a07:1dc7:ffff:ffff:ffff:ffff:ffff:ffff,PL
+2a07:1e00::,2a07:1e07:ffff:ffff:ffff:ffff:ffff:ffff,KZ
+2a07:1e40::,2a07:1e47:ffff:ffff:ffff:ffff:ffff:ffff,RU
+2a07:1e80::,2a07:1e87:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a07:1ec0::,2a07:1ec7:ffff:ffff:ffff:ffff:ffff:ffff,IT
+2a07:1f00::,2a07:1f07:ffff:ffff:ffff:ffff:ffff:ffff,CH
+2a07:1f40::,2a07:1f47:ffff:ffff:ffff:ffff:ffff:ffff,CZ
+2a07:1f80::,2a07:1f87:ffff:ffff:ffff:ffff:ffff:ffff,US
+2a07:1fc0::,2a07:1fc7:ffff:ffff:ffff:ffff:ffff:ffff,FR
+2a07:2000::,2a07:2007:ffff:ffff:ffff:ffff:ffff:ffff,IQ
+2a07:2040::,2a07:2047:ffff:ffff:ffff:ffff:ffff:ffff,ES
+2a07:2080::,2a07:2087:ffff:ffff:ffff:ffff:ffff:ffff,NL
+2a07:20c0::,2a07:20c7:ffff:ffff:ffff:ffff:ffff:ffff,CZ
2c0e::,2c0e:fff:ffff:ffff:ffff:ffff:ffff:ffff,EG
2c0e:2000::,2c0e:2fff:ffff:ffff:ffff:ffff:ffff:ffff,ZA
2c0e:4000::,2c0e:40ff:ffff:ffff:ffff:ffff:ffff:ffff,ZA
@@ -27075,6 +27252,13 @@
2c0f:f560::,2c0f:f560:ffff:ffff:ffff:ffff:ffff:ffff,KM
2c0f:f568::,2c0f:f568:ffff:ffff:ffff:ffff:ffff:ffff,CG
2c0f:f570::,2c0f:f570:ffff:ffff:ffff:ffff:ffff:ffff,ZA
+2c0f:f578::,2c0f:f578:ffff:ffff:ffff:ffff:ffff:ffff,TG
+2c0f:f580::,2c0f:f580:ffff:ffff:ffff:ffff:ffff:ffff,KE
+2c0f:f588::,2c0f:f588:ffff:ffff:ffff:ffff:ffff:ffff,ZA
+2c0f:f590::,2c0f:f590:ffff:ffff:ffff:ffff:ffff:ffff,CI
+2c0f:f598::,2c0f:f598:ffff:ffff:ffff:ffff:ffff:ffff,ZA
+2c0f:f5a0::,2c0f:f5a0:ffff:ffff:ffff:ffff:ffff:ffff,NG
+2c0f:f5a8::,2c0f:f5a8:ffff:ffff:ffff:ffff:ffff:ffff,ZA
2c0f:f600::,2c0f:f600:ffff:ffff:ffff:ffff:ffff:ffff,GN
2c0f:f608::,2c0f:f608:ffff:ffff:ffff:ffff:ffff:ffff,RE
2c0f:f610::,2c0f:f610:ffff:ffff:ffff:ffff:ffff:ffff,ZA
@@ -27329,11 +27513,7 @@
2c0f:fea8::,2c0f:fea8:ffff:ffff:ffff:ffff:ffff:ffff,NG
2c0f:feb0::,2c0f:feb0:16:ffff:ffff:ffff:ffff:ffff,MU
2c0f:feb0:17::,2c0f:feb0:17:7fff:ffff:ffff:ffff:ffff,KE
-2c0f:feb0:17:8000::,2c0f:feb0:1c:ffff:ffff:ffff:ffff:ffff,MU
-2c0f:feb0:1d::,2c0f:feb0:1d:7fff:ffff:ffff:ffff:ffff,MZ
-2c0f:feb0:1d:8000::,2c0f:feb0:1e:ffff:ffff:ffff:ffff:ffff,MU
-2c0f:feb0:1f::,2c0f:feb0:1f:7fff:ffff:ffff:ffff:ffff,ZA
-2c0f:feb0:1f:8000::,2c0f:feb1:ffff:ffff:ffff:ffff:ffff:ffff,MU
+2c0f:feb0:17:8000::,2c0f:feb1:ffff:ffff:ffff:ffff:ffff:ffff,MU
2c0f:feb8::,2c0f:feb8:ffff:ffff:ffff:ffff:ffff:ffff,ZM
2c0f:fec0::,2c0f:fec0:ffff:ffff:ffff:ffff:ffff:ffff,UG
2c0f:fec8::,2c0f:fec8:ffff:ffff:ffff:ffff:ffff:ffff,SD
diff --git a/src/ext/ed25519/donna/ed25519_tor.c b/src/ext/ed25519/donna/ed25519_tor.c
index ac726ba045..52b259dfe1 100644
--- a/src/ext/ed25519/donna/ed25519_tor.c
+++ b/src/ext/ed25519/donna/ed25519_tor.c
@@ -168,8 +168,8 @@ ed25519_donna_seckey_expand(unsigned char *sk, const unsigned char *skseed)
int
ed25519_donna_pubkey(unsigned char *pk, const unsigned char *sk)
{
- bignum256modm a;
- ge25519 ALIGN(16) A;
+ bignum256modm a = {0};
+ ge25519 ALIGN(16) A = {{0}, {0}, {0}, {0}};
/* A = aB */
expand256_modm(a, sk, 32);
@@ -204,8 +204,8 @@ ed25519_donna_sign(unsigned char *sig, const unsigned char *m, size_t mlen,
const unsigned char *sk, const unsigned char *pk)
{
ed25519_hash_context ctx;
- bignum256modm r, S, a;
- ge25519 ALIGN(16) R;
+ bignum256modm r = {0}, S, a;
+ ge25519 ALIGN(16) R = {{0}, {0}, {0}, {0}};
hash_512bits hashr, hram;
/* This is equivalent to the removed `ED25519_FN(ed25519_sign)` routine,
diff --git a/src/ext/eventdns.c b/src/ext/eventdns.c
index 37d8a7a3df..fc5657cbb4 100644
--- a/src/ext/eventdns.c
+++ b/src/ext/eventdns.c
@@ -388,7 +388,7 @@ debug_ntoa(u32 address)
{
static char buf[32];
u32 a = ntohl(address);
- snprintf(buf, sizeof(buf), "%d.%d.%d.%d",
+ tor_snprintf(buf, sizeof(buf), "%d.%d.%d.%d",
(int)(u8)((a>>24)&0xff),
(int)(u8)((a>>16)&0xff),
(int)(u8)((a>>8 )&0xff),
@@ -436,12 +436,7 @@ evdns_log(int warn, const char *fmt, ...)
if (!evdns_log_fn)
return;
va_start(args,fmt);
-#ifdef _WIN32
- _vsnprintf(buf, sizeof(buf), fmt, args);
-#else
- vsnprintf(buf, sizeof(buf), fmt, args);
-#endif
- buf[sizeof(buf)-1] = '\0';
+ tor_vsnprintf(buf, sizeof(buf), fmt, args);
evdns_log_fn(warn, buf);
va_end(args);
}
@@ -762,7 +757,7 @@ reply_handle(struct evdns_request *const req, u16 flags, u32 ttl, struct reply *
/* we regard these errors as marking a bad nameserver */
if (req->reissue_count < global_max_reissues) {
char msg[64];
- snprintf(msg, sizeof(msg), "Bad response %d (%s)",
+ tor_snprintf(msg, sizeof(msg), "Bad response %d (%s)",
error, evdns_err_to_string(error));
nameserver_failed(req->ns, msg);
if (!request_reissue(req)) return;
@@ -1705,7 +1700,7 @@ evdns_server_request_add_ptr_reply(struct evdns_server_request *req, struct in_a
assert(!(in && inaddr_name));
if (in) {
a = ntohl(in->s_addr);
- snprintf(buf, sizeof(buf), "%d.%d.%d.%d.in-addr.arpa",
+ tor_snprintf(buf, sizeof(buf), "%d.%d.%d.%d.in-addr.arpa",
(int)(u8)((a )&0xff),
(int)(u8)((a>>8 )&0xff),
(int)(u8)((a>>16)&0xff),
@@ -2638,7 +2633,7 @@ int evdns_resolve_reverse(const struct in_addr *in, int flags, evdns_callback_ty
u32 a;
assert(in);
a = ntohl(in->s_addr);
- snprintf(buf, sizeof(buf), "%d.%d.%d.%d.in-addr.arpa",
+ tor_snprintf(buf, sizeof(buf), "%d.%d.%d.%d.in-addr.arpa",
(int)(u8)((a )&0xff),
(int)(u8)((a>>8 )&0xff),
(int)(u8)((a>>16)&0xff),
diff --git a/src/ext/trunnel/trunnel-impl.h b/src/ext/trunnel/trunnel-impl.h
index a97caf282f..dfe5f89e1a 100644
--- a/src/ext/trunnel/trunnel-impl.h
+++ b/src/ext/trunnel/trunnel-impl.h
@@ -1,4 +1,4 @@
-/* trunnel-impl.h -- copied from Trunnel v1.4.3
+/* trunnel-impl.h -- copied from Trunnel v1.4.4
* https://gitweb.torproject.org/trunnel.git
* You probably shouldn't edit this file.
*/
diff --git a/src/ext/trunnel/trunnel.c b/src/ext/trunnel/trunnel.c
index 25a46d9022..0ed75aa9a4 100644
--- a/src/ext/trunnel/trunnel.c
+++ b/src/ext/trunnel/trunnel.c
@@ -1,4 +1,4 @@
-/* trunnel.c -- copied from Trunnel v1.4.3
+/* trunnel.c -- copied from Trunnel v1.4.4
* https://gitweb.torproject.org/trunnel.git
* You probably shouldn't edit this file.
*/
diff --git a/src/ext/trunnel/trunnel.h b/src/ext/trunnel/trunnel.h
index 6140a3953f..62e87ee50c 100644
--- a/src/ext/trunnel/trunnel.h
+++ b/src/ext/trunnel/trunnel.h
@@ -1,4 +1,4 @@
-/* trunnel.h -- copied from Trunnel v1.4.3
+/* trunnel.h -- copied from Trunnel v1.4.4
* https://gitweb.torproject.org/trunnel.git
* You probably shouldn't edit this file.
*/
diff --git a/src/or/addressmap.c b/src/or/addressmap.c
index 9c29fb2acb..047a863ef5 100644
--- a/src/or/addressmap.c
+++ b/src/or/addressmap.c
@@ -1,9 +1,18 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file addressmap.c
+ *
+ * \brief The addressmap module manages the processes by which we rewrite
+ * addresses in client requess. It handles the MapAddress controller and
+ * torrc commands, and the TrackHostExits feature, and the client-side DNS
+ * cache (deprecated).
+ */
+
#define ADDRESSMAP_PRIVATE
#include "or.h"
diff --git a/src/or/addressmap.h b/src/or/addressmap.h
index ff108df024..67648d0518 100644
--- a/src/or/addressmap.h
+++ b/src/or/addressmap.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_ADDRESSMAP_H
diff --git a/src/or/buffers.c b/src/or/buffers.c
index cdb499b8da..f93cc48f33 100644
--- a/src/or/buffers.c
+++ b/src/or/buffers.c
@@ -1,14 +1,15 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
* \file buffers.c
* \brief Implements a generic interface buffer. Buffers are
* fairly opaque string holders that can read to or flush from:
- * memory, file descriptors, or TLS connections.
+ * memory, file descriptors, or TLS connections. Buffers are implemented
+ * as linked lists of memory chunks.
**/
#define BUFFERS_PRIVATE
#include "or.h"
diff --git a/src/or/buffers.h b/src/or/buffers.h
index 7f79e3c0b2..2b43ea14b1 100644
--- a/src/or/buffers.h
+++ b/src/or/buffers.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/channel.c b/src/or/channel.c
index 46e833854b..851d8372f5 100644
--- a/src/or/channel.c
+++ b/src/or/channel.c
@@ -1,9 +1,13 @@
-/* * Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* * Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
* \file channel.c
- * \brief OR-to-OR channel abstraction layer
+ *
+ * \brief OR/OP-to-OR channel abstraction layer. A channel's job is to
+ * transfer cells from Tor instance to Tor instance.
+ * Currently, there is only one implementation of the channel abstraction: in
+ * channeltls.c.
**/
/*
diff --git a/src/or/channel.h b/src/or/channel.h
index 5fa2aa8ab7..1fb431015d 100644
--- a/src/or/channel.h
+++ b/src/or/channel.h
@@ -1,4 +1,4 @@
-/* * Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* * Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/channeltls.c b/src/or/channeltls.c
index f0333e8da8..30165bfcf2 100644
--- a/src/or/channeltls.c
+++ b/src/or/channeltls.c
@@ -1,9 +1,11 @@
-/* * Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* * Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
* \file channeltls.c
- * \brief channel_t concrete subclass using or_connection_t
+ *
+ * \brief A concrete subclass of channel_t using or_connection_t to transfer
+ * cells between Tor instances.
**/
/*
@@ -1819,7 +1821,8 @@ channel_tls_process_certs_cell(var_cell_t *cell, channel_tls_t *chan)
chan->conn->handshake_state->authenticated = 1;
{
- const digests_t *id_digests = tor_x509_cert_get_id_digests(id_cert);
+ const common_digests_t *id_digests =
+ tor_x509_cert_get_id_digests(id_cert);
crypto_pk_t *identity_rcvd;
if (!id_digests)
ERR("Couldn't compute digests for key in ID cert");
@@ -2109,7 +2112,7 @@ channel_tls_process_authenticate_cell(var_cell_t *cell, channel_tls_t *chan)
{
crypto_pk_t *identity_rcvd =
tor_tls_cert_get_key(chan->conn->handshake_state->id_cert);
- const digests_t *id_digests =
+ const common_digests_t *id_digests =
tor_x509_cert_get_id_digests(chan->conn->handshake_state->id_cert);
/* This must exist; we checked key type when reading the cert. */
diff --git a/src/or/channeltls.h b/src/or/channeltls.h
index a0df9faac2..a4d9c7a095 100644
--- a/src/or/channeltls.h
+++ b/src/or/channeltls.h
@@ -1,4 +1,4 @@
-/* * Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* * Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/circpathbias.c b/src/or/circpathbias.c
index a0115cc6ec..552947eba2 100644
--- a/src/or/circpathbias.c
+++ b/src/or/circpathbias.c
@@ -1,9 +1,18 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file circpathbias.c
+ *
+ * \brief Code to track success/failure rates of circuits built through
+ * different tor nodes, in an attempt to detect attacks where
+ * an attacker deliberately causes circuits to fail until the client
+ * choses a path they like.
+ */
+
#include "or.h"
#include "channel.h"
#include "circpathbias.h"
diff --git a/src/or/circpathbias.h b/src/or/circpathbias.h
index 9e973850d5..ce76689d5f 100644
--- a/src/or/circpathbias.h
+++ b/src/or/circpathbias.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/circuitbuild.c b/src/or/circuitbuild.c
index 719d27caa9..baa7bad2e6 100644
--- a/src/or/circuitbuild.c
+++ b/src/or/circuitbuild.c
@@ -1,12 +1,14 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
* \file circuitbuild.c
- * \brief The actual details of building circuits.
+ *
+ * \brief Implements the details of building circuits (by chosing paths,
+ * constructing/sending create/extend cells, and so on).
**/
#define CIRCUITBUILD_PRIVATE
@@ -1778,7 +1780,7 @@ pick_tor2web_rendezvous_node(router_crn_flags_t flags,
router_add_running_nodes_to_smartlist(all_live_nodes,
allow_invalid,
0, 0, 0,
- need_desc);
+ need_desc, 0);
/* Filter all_live_nodes to only add live *and* whitelisted RPs to
* the list whitelisted_live_rps. */
@@ -2144,7 +2146,9 @@ choose_good_entry_server(uint8_t purpose, cpath_build_state_t *state)
const node_t *choice;
smartlist_t *excluded;
const or_options_t *options = get_options();
- router_crn_flags_t flags = CRN_NEED_GUARD|CRN_NEED_DESC;
+ /* If possible, choose an entry server with a preferred address,
+ * otherwise, choose one with an allowed address */
+ router_crn_flags_t flags = CRN_NEED_GUARD|CRN_NEED_DESC|CRN_PREF_ADDR;
const node_t *node;
if (state && options->UseEntryGuards &&
@@ -2161,14 +2165,6 @@ choose_good_entry_server(uint8_t purpose, cpath_build_state_t *state)
* family. */
nodelist_add_node_and_family(excluded, node);
}
- if (firewall_is_fascist_or()) {
- /* Exclude all ORs that we can't reach through our firewall */
- smartlist_t *nodes = nodelist_get_list();
- SMARTLIST_FOREACH(nodes, const node_t *, node, {
- if (!fascist_firewall_allows_node(node))
- smartlist_add(excluded, (void*)node);
- });
- }
/* and exclude current entry guards and their families,
* unless we're in a test network, and excluding guards
* would exclude all nodes (i.e. we're in an incredibly small tor network,
@@ -2247,9 +2243,11 @@ onion_extend_cpath(origin_circuit_t *circ)
if (r) {
/* If we're a client, use the preferred address rather than the
primary address, for potentially connecting to an IPv6 OR
- port. */
- info = extend_info_from_node(r, server_mode(get_options()) == 0);
- tor_assert(info);
+ port. Servers always want the primary (IPv4) address. */
+ int client = (server_mode(get_options()) == 0);
+ info = extend_info_from_node(r, client);
+ /* Clients can fail to find an allowed address */
+ tor_assert(info || client);
}
} else {
const node_t *r =
@@ -2324,33 +2322,43 @@ extend_info_new(const char *nickname, const char *digest,
* <b>for_direct_connect</b> is true, in which case the preferred
* address is used instead. May return NULL if there is not enough
* info about <b>node</b> to extend to it--for example, if there is no
- * routerinfo_t or microdesc_t.
+ * routerinfo_t or microdesc_t, or if for_direct_connect is true and none of
+ * the node's addresses are allowed by tor's firewall and IP version config.
**/
extend_info_t *
extend_info_from_node(const node_t *node, int for_direct_connect)
{
tor_addr_port_t ap;
+ int valid_addr = 0;
if (node->ri == NULL && (node->rs == NULL || node->md == NULL))
return NULL;
+ /* Choose a preferred address first, but fall back to an allowed address.
+ * choose_address returns 1 on success, but get_prim_orport returns 0. */
if (for_direct_connect)
- node_get_pref_orport(node, &ap);
+ valid_addr = fascist_firewall_choose_address_node(node,
+ FIREWALL_OR_CONNECTION,
+ 0, &ap);
else
- node_get_prim_orport(node, &ap);
+ valid_addr = !node_get_prim_orport(node, &ap);
- log_debug(LD_CIRC, "using %s for %s",
- fmt_addrport(&ap.addr, ap.port),
- node->ri ? node->ri->nickname : node->rs->nickname);
+ if (valid_addr)
+ log_debug(LD_CIRC, "using %s for %s",
+ fmt_addrport(&ap.addr, ap.port),
+ node->ri ? node->ri->nickname : node->rs->nickname);
+ else
+ log_warn(LD_CIRC, "Could not choose valid address for %s",
+ node->ri ? node->ri->nickname : node->rs->nickname);
- if (node->ri)
+ if (valid_addr && node->ri)
return extend_info_new(node->ri->nickname,
node->identity,
node->ri->onion_pkey,
node->ri->onion_curve25519_pkey,
&ap.addr,
ap.port);
- else if (node->rs && node->md)
+ else if (valid_addr && node->rs && node->md)
return extend_info_new(node->rs->nickname,
node->identity,
node->md->onion_pkey,
diff --git a/src/or/circuitbuild.h b/src/or/circuitbuild.h
index 01563791b7..e9c1d77d94 100644
--- a/src/or/circuitbuild.h
+++ b/src/or/circuitbuild.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/circuitlist.c b/src/or/circuitlist.c
index dcbeb1e2bb..d6532ddc5f 100644
--- a/src/or/circuitlist.c
+++ b/src/or/circuitlist.c
@@ -1,12 +1,13 @@
/* Copyright 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
* \file circuitlist.c
- * \brief Manage the global circuit list.
+ *
+ * \brief Manage the global circuit list, and looking up circuits within it.
**/
#define CIRCUITLIST_PRIVATE
#include "or.h"
@@ -53,6 +54,7 @@ static void cpath_ref_decref(crypt_path_reference_t *cpath_ref);
//static void circuit_set_rend_token(or_circuit_t *circ, int is_rend_circ,
// const uint8_t *token);
static void circuit_clear_rend_token(or_circuit_t *circ);
+static void circuit_about_to_free_atexit(circuit_t *circ);
static void circuit_about_to_free(circuit_t *circ);
/********* END VARIABLES ************/
@@ -901,6 +903,7 @@ circuit_free_all(void)
}
}
tmp->global_circuitlist_idx = -1;
+ circuit_about_to_free_atexit(tmp);
circuit_free(tmp);
SMARTLIST_DEL_CURRENT(lst, tmp);
} SMARTLIST_FOREACH_END(tmp);
@@ -1744,6 +1747,32 @@ circuit_mark_for_close_, (circuit_t *circ, int reason, int line,
smartlist_add(circuits_pending_close, circ);
}
+/** Called immediately before freeing a marked circuit <b>circ</b> from
+ * circuit_free_all() while shutting down Tor; this is a safe-at-shutdown
+ * version of circuit_about_to_free(). It's important that it at least
+ * do circuitmux_detach_circuit() when appropriate.
+ */
+static void
+circuit_about_to_free_atexit(circuit_t *circ)
+{
+
+ if (circ->n_chan) {
+ circuit_clear_cell_queue(circ, circ->n_chan);
+ circuitmux_detach_circuit(circ->n_chan->cmux, circ);
+ circuit_set_n_circid_chan(circ, 0, NULL);
+ }
+
+ if (! CIRCUIT_IS_ORIGIN(circ)) {
+ or_circuit_t *or_circ = TO_OR_CIRCUIT(circ);
+
+ if (or_circ->p_chan) {
+ circuit_clear_cell_queue(circ, or_circ->p_chan);
+ circuitmux_detach_circuit(or_circ->p_chan->cmux, circ);
+ circuit_set_p_circid_chan(or_circ, 0, NULL);
+ }
+ }
+}
+
/** Called immediately before freeing a marked circuit <b>circ</b>.
* Disconnects the circuit from other data structures, launches events
* as appropriate, and performs other housekeeping.
diff --git a/src/or/circuitlist.h b/src/or/circuitlist.h
index 4e600da57d..e4f1f47ce6 100644
--- a/src/or/circuitlist.h
+++ b/src/or/circuitlist.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/circuitmux.c b/src/or/circuitmux.c
index 94d1eb66e3..cc1c4cd401 100644
--- a/src/or/circuitmux.c
+++ b/src/or/circuitmux.c
@@ -1,4 +1,4 @@
-/* * Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* * Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/circuitmux.h b/src/or/circuitmux.h
index 837e3961bf..00745ac4a1 100644
--- a/src/or/circuitmux.h
+++ b/src/or/circuitmux.h
@@ -1,4 +1,4 @@
-/* * Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* * Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/circuitmux_ewma.c b/src/or/circuitmux_ewma.c
index 0c61fb2ec4..b784a140ac 100644
--- a/src/or/circuitmux_ewma.c
+++ b/src/or/circuitmux_ewma.c
@@ -1,4 +1,4 @@
-/* * Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* * Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/circuitmux_ewma.h b/src/or/circuitmux_ewma.h
index 3feef834dd..58aac1e196 100644
--- a/src/or/circuitmux_ewma.h
+++ b/src/or/circuitmux_ewma.h
@@ -1,4 +1,4 @@
-/* * Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* * Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/circuitstats.c b/src/or/circuitstats.c
index 3ced5afad5..9ac2d565b5 100644
--- a/src/or/circuitstats.c
+++ b/src/or/circuitstats.c
@@ -1,9 +1,16 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file circuitstats.c
+ *
+ * \brief Maintains and analyzes statistics about circuit built times, so we
+ * can tell how long we may need to wait for a fast circuit to be constructed.
+ */
+
#define CIRCUITSTATS_PRIVATE
#include "or.h"
diff --git a/src/or/circuitstats.h b/src/or/circuitstats.h
index fe05a24e97..72b160983f 100644
--- a/src/or/circuitstats.h
+++ b/src/or/circuitstats.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/circuituse.c b/src/or/circuituse.c
index 05201a5473..64fcc30057 100644
--- a/src/or/circuituse.c
+++ b/src/or/circuituse.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -2006,8 +2006,13 @@ circuit_get_open_circ_or_launch(entry_connection_t *conn,
if (r && node_has_descriptor(r)) {
/* We might want to connect to an IPv6 bridge for loading
descriptors so we use the preferred address rather than
- the primary. */
+ the primary. */
extend_info = extend_info_from_node(r, conn->want_onehop ? 1 : 0);
+ if (!extend_info) {
+ log_warn(LD_CIRC,"Could not make a one-hop connection to %s. "
+ "Discarding this circuit.", conn->chosen_exit_name);
+ return -1;
+ }
} else {
log_debug(LD_DIR, "considering %d, %s",
want_onehop, conn->chosen_exit_name);
diff --git a/src/or/circuituse.h b/src/or/circuituse.h
index a59f478ac8..5973978c45 100644
--- a/src/or/circuituse.h
+++ b/src/or/circuituse.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/command.c b/src/or/command.c
index af6e0533d8..5ad92bed1e 100644
--- a/src/or/command.c
+++ b/src/or/command.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/command.h b/src/or/command.h
index bea96261bb..12cda6a463 100644
--- a/src/or/command.h
+++ b/src/or/command.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/config.c b/src/or/config.c
index d2d88159df..4f4b9dfbfd 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -190,10 +190,12 @@ static config_var_t option_vars_[] = {
V(CircuitPriorityHalflife, DOUBLE, "-100.0"), /*negative:'Use default'*/
V(ClientDNSRejectInternalAddresses, BOOL,"1"),
V(ClientOnly, BOOL, "0"),
- V(ClientPreferIPv6ORPort, BOOL, "0"),
+ V(ClientPreferIPv6ORPort, AUTOBOOL, "auto"),
+ V(ClientPreferIPv6DirPort, AUTOBOOL, "auto"),
V(ClientRejectInternalAddresses, BOOL, "1"),
V(ClientTransportPlugin, LINELIST, NULL),
V(ClientUseIPv6, BOOL, "0"),
+ V(ClientUseIPv4, BOOL, "1"),
V(ConsensusParams, STRING, NULL),
V(ConnLimit, UINT, "1000"),
V(ConnDirectionStatistics, BOOL, "0"),
@@ -2193,7 +2195,7 @@ print_usage(void)
printf(
"Copyright (c) 2001-2004, Roger Dingledine\n"
"Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson\n"
-"Copyright (c) 2007-2015, The Tor Project, Inc.\n\n"
+"Copyright (c) 2007-2016, The Tor Project, Inc.\n\n"
"tor -f <torrc> [args]\n"
"See man page for options, or https://www.torproject.org/ for "
"documentation.\n");
@@ -2691,7 +2693,7 @@ options_validate_cb(void *old_options, void *options, void *default_options,
/** Log a warning message iff <b>filepath</b> is not absolute.
* Warning message must contain option name <b>option</b> and
- * an absolute path that <b>filepath<b> will resolve to.
+ * an absolute path that <b>filepath</b> will resolve to.
*
* In case <b>filepath</b> is absolute, do nothing.
*/
@@ -2859,7 +2861,7 @@ options_validate(or_options_t *old_options, or_options_t *options,
options->TransProxyType_parsed = TPT_TPROXY;
#endif
} else if (!strcasecmp(options->TransProxyType, "ipfw")) {
-#if !defined(__FreeBSD__) && !defined( DARWIN )
+#ifndef KERNEL_MAY_SUPPORT_IPFW
/* Earlier versions of OS X have ipfw */
REJECT("ipfw is a FreeBSD-specific"
"and OS X/Darwin-specific feature.");
@@ -3078,6 +3080,8 @@ options_validate(or_options_t *old_options, or_options_t *options,
}
}
+ /* Terminate Reachable*Addresses with reject *
+ */
for (i=0; i<3; i++) {
config_line_t **linep =
(i==0) ? &options->ReachableAddresses :
@@ -3087,8 +3091,6 @@ options_validate(or_options_t *old_options, or_options_t *options,
continue;
/* We need to end with a reject *:*, not an implicit accept *:* */
for (;;) {
- if (!strcmp((*linep)->value, "reject *:*")) /* already there */
- break;
linep = &((*linep)->next);
if (!*linep) {
*linep = tor_malloc_zero(sizeof(config_line_t));
@@ -3104,11 +3106,29 @@ options_validate(or_options_t *old_options, or_options_t *options,
if ((options->ReachableAddresses ||
options->ReachableORAddresses ||
- options->ReachableDirAddresses) &&
+ options->ReachableDirAddresses ||
+ options->ClientUseIPv4 == 0) &&
server_mode(options))
REJECT("Servers must be able to freely connect to the rest "
"of the Internet, so they must not set Reachable*Addresses "
- "or FascistFirewall.");
+ "or FascistFirewall or FirewallPorts or ClientUseIPv4 0.");
+
+ /* We check if Reachable*Addresses blocks all addresses in
+ * parse_reachable_addresses(). */
+
+#define WARN_PLEASE_USE_IPV6_LOG_MSG \
+ "ClientPreferIPv6%sPort 1 is ignored unless tor is using IPv6. " \
+ "Please set ClientUseIPv6 1, ClientUseIPv4 0, or configure bridges."
+
+ if (!fascist_firewall_use_ipv6(options)
+ && options->ClientPreferIPv6ORPort == 1)
+ log_warn(LD_CONFIG, WARN_PLEASE_USE_IPV6_LOG_MSG, "OR");
+
+ if (!fascist_firewall_use_ipv6(options)
+ && options->ClientPreferIPv6DirPort == 1)
+ log_warn(LD_CONFIG, WARN_PLEASE_USE_IPV6_LOG_MSG, "Dir");
+
+#undef WARN_PLEASE_USE_IPV6_LOG_MSG
if (options->UseBridges &&
server_mode(options))
@@ -6353,6 +6373,7 @@ parse_port_config(smartlist_t *out,
tor_free(addrtmp);
goto err;
}
+ tor_free(addrtmp);
} else {
/* Try parsing integer port before address, because, who knows?
"9050" might be a valid address. */
diff --git a/src/or/config.h b/src/or/config.h
index c7ce57d2aa..02121cf95c 100644
--- a/src/or/config.h
+++ b/src/or/config.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -14,6 +14,10 @@
#include "testsupport.h"
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(DARWIN)
+#define KERNEL_MAY_SUPPORT_IPFW
+#endif
+
MOCK_DECL(const char*, get_dirportfrontpage, (void));
MOCK_DECL(const or_options_t *, get_options, (void));
MOCK_DECL(or_options_t *, get_options_mutable, (void));
diff --git a/src/or/confparse.c b/src/or/confparse.c
index ac21df25cb..4f446d07c3 100644
--- a/src/or/confparse.c
+++ b/src/or/confparse.c
@@ -1,9 +1,16 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file confparse.c
+ *
+ * \brief Back-end for parsing and generating key-value files, used to
+ * implement the torrc file format and the state file.
+ */
+
#include "or.h"
#include "confparse.h"
#include "routerset.h"
diff --git a/src/or/confparse.h b/src/or/confparse.h
index 83c0f75b52..885c615202 100644
--- a/src/or/confparse.h
+++ b/src/or/confparse.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_CONFPARSE_H
diff --git a/src/or/connection.c b/src/or/connection.c
index 123c33a876..2e1c508894 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -19,6 +19,7 @@
*/
#define TOR_CHANNEL_INTERNAL_
#define CONNECTION_PRIVATE
+#include "backtrace.h"
#include "channel.h"
#include "channeltls.h"
#include "circuitbuild.h"
@@ -37,6 +38,7 @@
#include "ext_orport.h"
#include "geoip.h"
#include "main.h"
+#include "nodelist.h"
#include "policies.h"
#include "reasons.h"
#include "relay.h"
@@ -44,6 +46,7 @@
#include "rendcommon.h"
#include "rephist.h"
#include "router.h"
+#include "routerlist.h"
#include "transports.h"
#include "routerparse.h"
#include "transports.h"
@@ -1058,6 +1061,31 @@ make_socket_reuseable(tor_socket_t sock)
#endif
}
+#ifdef _WIN32
+/** Tell the Windows TCP stack to prevent other applications from receiving
+ * traffic from tor's open ports. Return 0 on success, -1 on failure. */
+static int
+make_win32_socket_exclusive(tor_socket_t sock)
+{
+#ifdef SO_EXCLUSIVEADDRUSE
+ int one=1;
+
+ /* Any socket that sets REUSEADDR on win32 can bind to a port _even when
+ * somebody else already has it bound_, and _even if the original socket
+ * didn't set REUSEADDR_. Use EXCLUSIVEADDRUSE to prevent this port-stealing
+ * on win32. */
+ if (setsockopt(sock, SOL_SOCKET, SO_EXCLUSIVEADDRUSE, (void*) &one,
+ (socklen_t)sizeof(one))) {
+ return -1;
+ }
+ return 0;
+#else
+ (void) sock;
+ return 0;
+#endif
+}
+#endif
+
/** Max backlog to pass to listen. We start at */
static int listen_limit = INT_MAX;
@@ -1111,7 +1139,6 @@ connection_listener_new(const struct sockaddr *listensockaddr,
start_reading = 1;
tor_addr_from_sockaddr(&addr, listensockaddr, &usePort);
-
log_notice(LD_NET, "Opening %s on %s",
conn_type_to_string(type), fmt_addrport(&addr, usePort));
@@ -1135,6 +1162,14 @@ connection_listener_new(const struct sockaddr *listensockaddr,
tor_socket_strerror(errno));
}
+#ifdef _WIN32
+ if (make_win32_socket_exclusive(s) < 0) {
+ log_warn(LD_NET, "Error setting SO_EXCLUSIVEADDRUSE flag on %s: %s",
+ conn_type_to_string(type),
+ tor_socket_strerror(errno));
+ }
+#endif
+
#if defined(USE_TRANSPARENT) && defined(IP_TRANSPARENT)
if (options->TransProxyType_parsed == TPT_TPROXY &&
type == CONN_TYPE_AP_TRANS_LISTENER) {
@@ -1715,6 +1750,74 @@ connection_connect_sockaddr,(connection_t *conn,
return inprogress ? 0 : 1;
}
+/* Log a message if connection attempt is made when IPv4 or IPv6 is disabled.
+ * Log a less severe message if we couldn't conform to ClientPreferIPv6ORPort
+ * or ClientPreferIPv6ORPort. */
+static void
+connection_connect_log_client_use_ip_version(const connection_t *conn)
+{
+ const or_options_t *options = get_options();
+
+ /* Only clients care about ClientUseIPv4/6, bail out early on servers, and
+ * on connections we don't care about */
+ if (server_mode(options) || !conn || conn->type == CONN_TYPE_EXIT) {
+ return;
+ }
+
+ /* We're only prepared to log OR and DIR connections here */
+ if (conn->type != CONN_TYPE_OR && conn->type != CONN_TYPE_DIR) {
+ return;
+ }
+
+ const int must_ipv4 = !fascist_firewall_use_ipv6(options);
+ const int must_ipv6 = (options->ClientUseIPv4 == 0);
+ const int pref_ipv6 = (conn->type == CONN_TYPE_OR
+ ? fascist_firewall_prefer_ipv6_orport(options)
+ : fascist_firewall_prefer_ipv6_dirport(options));
+ tor_addr_t real_addr;
+ tor_addr_make_null(&real_addr, AF_UNSPEC);
+
+ /* OR conns keep the original address in real_addr, as addr gets overwritten
+ * with the descriptor address */
+ if (conn->type == CONN_TYPE_OR) {
+ const or_connection_t *or_conn = TO_OR_CONN((connection_t *)conn);
+ tor_addr_copy(&real_addr, &or_conn->real_addr);
+ } else if (conn->type == CONN_TYPE_DIR) {
+ tor_addr_copy(&real_addr, &conn->addr);
+ }
+
+ /* Check if we broke a mandatory address family restriction */
+ if ((must_ipv4 && tor_addr_family(&real_addr) == AF_INET6)
+ || (must_ipv6 && tor_addr_family(&real_addr) == AF_INET)) {
+ log_warn(LD_BUG, "%s connection to %s violated ClientUseIPv%s 0.",
+ conn->type == CONN_TYPE_OR ? "OR" : "Dir",
+ fmt_addr(&real_addr),
+ options->ClientUseIPv4 == 0 ? "4" : "6");
+ log_backtrace(LOG_WARN, LD_BUG, "Address came from");
+ }
+
+ /* Bridges are allowed to break IPv4/IPv6 ORPort preferences to connect to
+ * the node's configured address when ClientPreferIPv6ORPort is auto */
+ if (options->UseBridges && conn->type == CONN_TYPE_OR
+ && options->ClientPreferIPv6ORPort == -1) {
+ return;
+ }
+
+ /* Check if we couldn't satisfy an address family preference */
+ if ((!pref_ipv6 && tor_addr_family(&real_addr) == AF_INET6)
+ || (pref_ipv6 && tor_addr_family(&real_addr) == AF_INET)) {
+ log_info(LD_NET, "Connection to %s doesn't satisfy ClientPreferIPv6%sPort "
+ "%d, with ClientUseIPv4 %d, and fascist_firewall_use_ipv6 %d "
+ "(ClientUseIPv6 %d and UseBridges %d).",
+ fmt_addr(&real_addr),
+ conn->type == CONN_TYPE_OR ? "OR" : "Dir",
+ conn->type == CONN_TYPE_OR ? options->ClientPreferIPv6ORPort
+ : options->ClientPreferIPv6DirPort,
+ options->ClientUseIPv4, fascist_firewall_use_ipv6(options),
+ options->ClientUseIPv6, options->UseBridges);
+ }
+}
+
/** Take conn, make a nonblocking socket; try to connect to
* addr:port (port arrives in *host order*). If fail, return -1 and if
* applicable put your best guess about errno into *<b>socket_error</b>.
@@ -1739,6 +1842,10 @@ connection_connect(connection_t *conn, const char *address,
const or_options_t *options = get_options();
int protocol_family;
+ /* Log if we didn't stick to ClientUseIPv4/6 or ClientPreferIPv6OR/DirPort
+ */
+ connection_connect_log_client_use_ip_version(conn);
+
if (tor_addr_family(addr) == AF_INET6)
protocol_family = PF_INET6;
else
@@ -2398,7 +2505,8 @@ retry_listener_ports(smartlist_t *old_conns,
/* We don't need to be root to create a UNIX socket, so defer until after
* setuid. */
const or_options_t *options = get_options();
- if (port->is_unix_addr && !geteuid() && strcmp(options->User, "root"))
+ if (port->is_unix_addr && !geteuid() && (options->User) &&
+ strcmp(options->User, "root"))
continue;
#endif
@@ -4246,10 +4354,10 @@ connection_write_to_buf_impl_,(const char *string, size_t len,
/** Return a connection with given type, address, port, and purpose;
* or NULL if no such connection exists (or if all such connections are marked
* for close). */
-connection_t *
-connection_get_by_type_addr_port_purpose(int type,
+MOCK_IMPL(connection_t *,
+connection_get_by_type_addr_port_purpose,(int type,
const tor_addr_t *addr, uint16_t port,
- int purpose)
+ int purpose))
{
CONN_GET_TEMPLATE(conn,
(conn->type == type &&
diff --git a/src/or/connection.h b/src/or/connection.h
index 59ea6d898e..45175cd5a2 100644
--- a/src/or/connection.h
+++ b/src/or/connection.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -186,9 +186,9 @@ connection_get_outbuf_len(connection_t *conn)
connection_t *connection_get_by_global_id(uint64_t id);
connection_t *connection_get_by_type(int type);
-connection_t *connection_get_by_type_addr_port_purpose(int type,
- const tor_addr_t *addr,
- uint16_t port, int purpose);
+MOCK_DECL(connection_t *,connection_get_by_type_addr_port_purpose,(int type,
+ const tor_addr_t *addr,
+ uint16_t port, int purpose));
connection_t *connection_get_by_type_state(int type, int state);
connection_t *connection_get_by_type_state_rendquery(int type, int state,
const char *rendquery);
diff --git a/src/or/connection_edge.c b/src/or/connection_edge.c
index dd81142094..f680e1da83 100644
--- a/src/or/connection_edge.c
+++ b/src/or/connection_edge.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/connection_edge.h b/src/or/connection_edge.h
index 2aba801461..5dfc8af901 100644
--- a/src/or/connection_edge.h
+++ b/src/or/connection_edge.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/connection_or.c b/src/or/connection_or.c
index 29e8153d89..f39d5b2255 100644
--- a/src/or/connection_or.c
+++ b/src/or/connection_or.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -2318,7 +2318,7 @@ connection_or_compute_authenticate_cell_body(or_connection_t *conn,
{
const tor_x509_cert_t *id_cert=NULL, *link_cert=NULL;
- const digests_t *my_digests, *their_digests;
+ const common_digests_t *my_digests, *their_digests;
const uint8_t *my_id, *their_id, *client_id, *server_id;
if (tor_tls_get_my_certs(server, &link_cert, &id_cert))
goto err;
diff --git a/src/or/connection_or.h b/src/or/connection_or.h
index 3877fd5a13..a4b10debb4 100644
--- a/src/or/connection_or.h
+++ b/src/or/connection_or.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/control.c b/src/or/control.c
index 66182fe2a4..2bec8f9317 100644
--- a/src/or/control.c
+++ b/src/or/control.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -2864,12 +2864,26 @@ handle_control_extendcircuit(control_connection_t *conn, uint32_t len,
}
/* now circ refers to something that is ready to be extended */
+ int first_node = zero_circ;
SMARTLIST_FOREACH(nodes, const node_t *, node,
{
- extend_info_t *info = extend_info_from_node(node, 0);
- tor_assert(info); /* True, since node_has_descriptor(node) == true */
+ extend_info_t *info = extend_info_from_node(node, first_node);
+ if (first_node && !info) {
+ log_warn(LD_CONTROL,
+ "controller tried to connect to a node that doesn't have any "
+ "addresses that are allowed by the firewall configuration; "
+ "circuit marked for closing.");
+ circuit_mark_for_close(TO_CIRCUIT(circ), -END_CIRC_REASON_CONNECTFAILED);
+ connection_write_str_to_buf("551 Couldn't start circuit\r\n", conn);
+ goto done;
+ } else {
+ /* True, since node_has_descriptor(node) == true and we are extending
+ * to the node's primary address */
+ tor_assert(info);
+ }
circuit_append_new_exit(circ, info);
extend_info_free(info);
+ first_node = 0;
});
/* now that we've populated the cpath, start extending */
@@ -6370,6 +6384,7 @@ control_event_hs_descriptor_receive_end(const char *action,
*/
void
control_event_hs_descriptor_upload_end(const char *action,
+ const char *onion_address,
const char *id_digest,
const char *reason)
{
@@ -6386,8 +6401,9 @@ control_event_hs_descriptor_upload_end(const char *action,
}
send_control_event(EVENT_HS_DESC,
- "650 HS_DESC %s UNKNOWN UNKNOWN %s%s\r\n",
+ "650 HS_DESC %s %s UNKNOWN %s%s\r\n",
action,
+ rend_hsaddress_str_or_unknown(onion_address),
node_describe_longname_by_id(id_digest),
reason_field ? reason_field : "");
@@ -6417,14 +6433,17 @@ control_event_hs_descriptor_received(const char *onion_address,
* called when we successfully uploaded a hidden service descriptor.
*/
void
-control_event_hs_descriptor_uploaded(const char *id_digest)
+control_event_hs_descriptor_uploaded(const char *id_digest,
+ const char *onion_address)
{
if (!id_digest) {
log_warn(LD_BUG, "Called with id_digest==%p",
id_digest);
return;
}
- control_event_hs_descriptor_upload_end("UPLOADED", id_digest, NULL);
+
+ control_event_hs_descriptor_upload_end("UPLOADED", onion_address,
+ id_digest, NULL);
}
/** Send HS_DESC event to inform controller that query <b>rend_query</b>
@@ -6486,6 +6505,7 @@ control_event_hs_descriptor_content(const char *onion_address,
*/
void
control_event_hs_descriptor_upload_failed(const char *id_digest,
+ const char *onion_address,
const char *reason)
{
if (!id_digest) {
@@ -6493,7 +6513,7 @@ control_event_hs_descriptor_upload_failed(const char *id_digest,
id_digest);
return;
}
- control_event_hs_descriptor_upload_end("UPLOAD_FAILED",
+ control_event_hs_descriptor_upload_end("UPLOAD_FAILED", onion_address,
id_digest, reason);
}
diff --git a/src/or/control.h b/src/or/control.h
index 1f8e2bcdc6..008bfb1c3b 100644
--- a/src/or/control.h
+++ b/src/or/control.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -129,16 +129,19 @@ void control_event_hs_descriptor_receive_end(const char *action,
const char *id_digest,
const char *reason);
void control_event_hs_descriptor_upload_end(const char *action,
+ const char *onion_address,
const char *hs_dir,
const char *reason);
void control_event_hs_descriptor_received(const char *onion_address,
const rend_data_t *rend_data,
const char *id_digest);
-void control_event_hs_descriptor_uploaded(const char *hs_dir);
+void control_event_hs_descriptor_uploaded(const char *hs_dir,
+ const char *onion_address);
void control_event_hs_descriptor_failed(const rend_data_t *rend_data,
const char *id_digest,
const char *reason);
void control_event_hs_descriptor_upload_failed(const char *hs_dir,
+ const char *onion_address,
const char *reason);
void control_event_hs_descriptor_content(const char *onion_address,
const char *desc_id,
diff --git a/src/or/cpuworker.c b/src/or/cpuworker.c
index 76d97e05f2..3109d5a177 100644
--- a/src/or/cpuworker.c
+++ b/src/or/cpuworker.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/cpuworker.h b/src/or/cpuworker.h
index 70a595e472..62cf0eb164 100644
--- a/src/or/cpuworker.h
+++ b/src/or/cpuworker.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/dircollate.c b/src/or/dircollate.c
index 4c812c40e6..b5fe632831 100644
--- a/src/or/dircollate.c
+++ b/src/or/dircollate.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2014, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/dircollate.h b/src/or/dircollate.h
index cd1e8ac96d..8d4dc2cabe 100644
--- a/src/or/dircollate.h
+++ b/src/or/dircollate.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2014, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/directory.c b/src/or/directory.c
index c1fa37f242..e4feda44fc 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -1,9 +1,10 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "or.h"
+#include "backtrace.h"
#include "buffers.h"
#include "circuitbuild.h"
#include "config.h"
@@ -82,18 +83,18 @@ static void dir_microdesc_download_failed(smartlist_t *failed,
static void note_client_request(int purpose, int compressed, size_t bytes);
static int client_likes_consensus(networkstatus_t *v, const char *want_url);
-static void directory_initiate_command_rend(const tor_addr_t *addr,
- uint16_t or_port,
- uint16_t dir_port,
- const char *digest,
- uint8_t dir_purpose,
- uint8_t router_purpose,
- dir_indirection_t indirection,
- const char *resource,
- const char *payload,
- size_t payload_len,
- time_t if_modified_since,
- const rend_data_t *rend_query);
+static void directory_initiate_command_rend(
+ const tor_addr_port_t *or_addr_port,
+ const tor_addr_port_t *dir_addr_port,
+ const char *digest,
+ uint8_t dir_purpose,
+ uint8_t router_purpose,
+ dir_indirection_t indirection,
+ const char *resource,
+ const char *payload,
+ size_t payload_len,
+ time_t if_modified_since,
+ const rend_data_t *rend_query);
/********* START VARIABLES **********/
@@ -313,7 +314,6 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose,
SMARTLIST_FOREACH_BEGIN(dirservers, dir_server_t *, ds) {
routerstatus_t *rs = &(ds->fake_status);
size_t upload_len = payload_len;
- tor_addr_t ds_addr;
if ((type & ds->type) == 0)
continue;
@@ -344,11 +344,12 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose,
log_info(LD_DIR, "Uploading an extrainfo too (length %d)",
(int) extrainfo_len);
}
- tor_addr_from_ipv4h(&ds_addr, ds->addr);
if (purpose_needs_anonymity(dir_purpose, router_purpose)) {
indirection = DIRIND_ANONYMOUS;
- } else if (!fascist_firewall_allows_address_dir(&ds_addr,ds->dir_port)) {
- if (fascist_firewall_allows_address_or(&ds_addr,ds->or_port))
+ } else if (!fascist_firewall_allows_dir_server(ds,
+ FIREWALL_DIR_CONNECTION,
+ 0)) {
+ if (fascist_firewall_allows_dir_server(ds, FIREWALL_OR_CONNECTION, 0))
indirection = DIRIND_ONEHOP;
else
indirection = DIRIND_ANONYMOUS;
@@ -496,11 +497,14 @@ MOCK_IMPL(void, directory_get_from_dirserver, (
const node_t *node = choose_random_dirguard(type);
if (node && node->ri) {
/* every bridge has a routerinfo. */
- tor_addr_t addr;
routerinfo_t *ri = node->ri;
- node_get_addr(node, &addr);
- directory_initiate_command(&addr,
- ri->or_port, 0/*no dirport*/,
+ /* clients always make OR connections to bridges */
+ tor_addr_port_t or_ap;
+ /* we are willing to use a non-preferred address if we need to */
+ fascist_firewall_choose_address_node(node, FIREWALL_OR_CONNECTION, 0,
+ &or_ap);
+ directory_initiate_command(&or_ap.addr, or_ap.port,
+ NULL, 0, /*no dirport*/
ri->cache_info.identity_digest,
dir_purpose,
router_purpose,
@@ -609,6 +613,80 @@ dirind_is_anon(dir_indirection_t ind)
return ind == DIRIND_ANON_DIRPORT || ind == DIRIND_ANONYMOUS;
}
+/* Choose reachable OR and Dir addresses and ports from status, copying them
+ * into use_or_ap and use_dir_ap. If indirection is anonymous, then we're
+ * connecting via another relay, so choose the primary IPv4 address and ports.
+ *
+ * status should have at least one reachable address, if we can't choose a
+ * reachable address, warn and return -1. Otherwise, return 0.
+ */
+static int
+directory_choose_address_routerstatus(const routerstatus_t *status,
+ dir_indirection_t indirection,
+ tor_addr_port_t *use_or_ap,
+ tor_addr_port_t *use_dir_ap)
+{
+ tor_assert(status != NULL);
+ tor_assert(use_or_ap != NULL);
+ tor_assert(use_dir_ap != NULL);
+
+ const int anonymized_connection = dirind_is_anon(indirection);
+ int have_or = 0, have_dir = 0;
+
+ /* We expect status to have at least one reachable address if we're
+ * connecting to it directly.
+ *
+ * Therefore, we can simply use the other address if the one we want isn't
+ * allowed by the firewall.
+ *
+ * (When Tor uploads and downloads a hidden service descriptor, it uses
+ * DIRIND_ANONYMOUS, except for Tor2Web, which uses DIRIND_ONEHOP.
+ * So this code will only modify the address for Tor2Web's HS descriptor
+ * fetches. Even Single Onion Servers (NYI) use DIRIND_ANONYMOUS, to avoid
+ * HSDirs denying service by rejecting descriptors.)
+ */
+
+ /* Initialise the OR / Dir addresses */
+ tor_addr_make_null(&use_or_ap->addr, AF_UNSPEC);
+ use_or_ap->port = 0;
+ tor_addr_make_null(&use_dir_ap->addr, AF_UNSPEC);
+ use_dir_ap->port = 0;
+
+ if (anonymized_connection) {
+ /* Use the primary (IPv4) OR address if we're making an indirect
+ * connection. */
+ tor_addr_from_ipv4h(&use_or_ap->addr, status->addr);
+ use_or_ap->port = status->or_port;
+ have_or = 1;
+ } else {
+ /* We use an IPv6 address if we have one and we prefer it.
+ * Use the preferred address and port if they are reachable, otherwise,
+ * use the alternate address and port (if any).
+ */
+ have_or = fascist_firewall_choose_address_rs(status,
+ FIREWALL_OR_CONNECTION, 0,
+ use_or_ap);
+ }
+
+ have_dir = fascist_firewall_choose_address_rs(status,
+ FIREWALL_DIR_CONNECTION, 0,
+ use_dir_ap);
+
+ /* We rejected both addresses. This isn't great. */
+ if (!have_or && !have_dir) {
+ log_warn(LD_BUG, "Rejected all OR and Dir addresses from %s when "
+ "launching a directory connection to: IPv4 %s OR %d Dir %d "
+ "IPv6 %s OR %d Dir %d", routerstatus_describe(status),
+ fmt_addr32(status->addr), status->or_port,
+ status->dir_port, fmt_addr(&status->ipv6_addr),
+ status->ipv6_orport, status->dir_port);
+ log_backtrace(LOG_WARN, LD_BUG, "Addresses came from");
+ return -1;
+ }
+
+ return 0;
+}
+
/** Same as directory_initiate_command_routerstatus(), but accepts
* rendezvous data to fetch a hidden service descriptor. */
void
@@ -624,8 +702,11 @@ directory_initiate_command_routerstatus_rend(const routerstatus_t *status,
{
const or_options_t *options = get_options();
const node_t *node;
- tor_addr_t addr;
+ tor_addr_port_t use_or_ap, use_dir_ap;
const int anonymized_connection = dirind_is_anon(indirection);
+
+ tor_assert(status != NULL);
+
node = node_get_by_id(status->identity_digest);
if (!node && anonymized_connection) {
@@ -634,7 +715,6 @@ directory_initiate_command_routerstatus_rend(const routerstatus_t *status,
routerstatus_describe(status));
return;
}
- tor_addr_from_ipv4h(&addr, status->addr);
if (options->ExcludeNodes && options->StrictNodes &&
routerset_contains_routerstatus(options->ExcludeNodes, status, -1)) {
@@ -646,13 +726,30 @@ directory_initiate_command_routerstatus_rend(const routerstatus_t *status,
return;
}
- directory_initiate_command_rend(&addr,
- status->or_port, status->dir_port,
- status->identity_digest,
- dir_purpose, router_purpose,
- indirection, resource,
- payload, payload_len, if_modified_since,
- rend_query);
+ /* At this point, if we are a clients making a direct connection to a
+ * directory server, we have selected a server that has at least one address
+ * allowed by ClientUseIPv4/6 and Reachable{"",OR,Dir}Addresses. This
+ * selection uses the preference in ClientPreferIPv6{OR,Dir}Port, if
+ * possible. (If UseBridges is set, clients always use IPv6, and prefer it
+ * by default.)
+ *
+ * Now choose an address that we can use to connect to the directory server.
+ */
+ if (directory_choose_address_routerstatus(status, indirection, &use_or_ap,
+ &use_dir_ap) < 0) {
+ return;
+ }
+
+ /* We don't retry the alternate OR/Dir address for the same directory if
+ * the address we choose fails (#6772).
+ * Instead, we'll retry another directory on failure. */
+
+ directory_initiate_command_rend(&use_or_ap, &use_dir_ap,
+ status->identity_digest,
+ dir_purpose, router_purpose,
+ indirection, resource,
+ payload, payload_len, if_modified_since,
+ rend_query);
}
/** Launch a new connection to the directory server <b>status</b> to
@@ -874,27 +971,52 @@ directory_command_should_use_begindir(const or_options_t *options,
if (indirection == DIRIND_DIRECT_CONN || indirection == DIRIND_ANON_DIRPORT)
return 0;
if (indirection == DIRIND_ONEHOP)
- if (!fascist_firewall_allows_address_or(addr, or_port) ||
+ if (!fascist_firewall_allows_address_addr(addr, or_port,
+ FIREWALL_OR_CONNECTION, 0, 0) ||
directory_fetches_from_authorities(options))
return 0; /* We're firewalled or are acting like a relay -- also no. */
return 1;
}
-/** Helper for directory_initiate_command_routerstatus: send the
- * command to a server whose address is <b>address</b>, whose IP is
- * <b>addr</b>, whose directory port is <b>dir_port</b>, whose tor version
- * <b>supports_begindir</b>, and whose identity key digest is
- * <b>digest</b>. */
+/** Helper for directory_initiate_command_rend: send the
+ * command to a server whose OR address/port is <b>or_addr</b>/<b>or_port</b>,
+ * whose directory address/port is <b>dir_addr</b>/<b>dir_port</b>, whose
+ * identity key digest is <b>digest</b>, with purposes <b>dir_purpose</b> and
+ * <b>router_purpose</b>, making an (in)direct connection as specified in
+ * <b>indirection</b>, with command <b>resource</b>, <b>payload</b> of
+ * <b>payload_len</b>, and asking for a result only <b>if_modified_since</b>.
+ */
void
-directory_initiate_command(const tor_addr_t *_addr,
- uint16_t or_port, uint16_t dir_port,
+directory_initiate_command(const tor_addr_t *or_addr, uint16_t or_port,
+ const tor_addr_t *dir_addr, uint16_t dir_port,
const char *digest,
uint8_t dir_purpose, uint8_t router_purpose,
dir_indirection_t indirection, const char *resource,
const char *payload, size_t payload_len,
time_t if_modified_since)
{
- directory_initiate_command_rend(_addr, or_port, dir_port,
+ tor_addr_port_t or_ap, dir_ap;
+
+ /* Use the null tor_addr and 0 port if the address or port isn't valid. */
+ if (tor_addr_port_is_valid(or_addr, or_port, 0)) {
+ tor_addr_copy(&or_ap.addr, or_addr);
+ or_ap.port = or_port;
+ } else {
+ /* the family doesn't matter here, so make it IPv4 */
+ tor_addr_make_null(&or_ap.addr, AF_INET);
+ or_ap.port = or_port = 0;
+ }
+
+ if (tor_addr_port_is_valid(dir_addr, dir_port, 0)) {
+ tor_addr_copy(&dir_ap.addr, dir_addr);
+ dir_ap.port = dir_port;
+ } else {
+ /* the family doesn't matter here, so make it IPv4 */
+ tor_addr_make_null(&dir_ap.addr, AF_INET);
+ dir_ap.port = dir_port = 0;
+ }
+
+ directory_initiate_command_rend(&or_ap, &dir_ap,
digest, dir_purpose,
router_purpose, indirection,
resource, payload, payload_len,
@@ -914,10 +1036,11 @@ is_sensitive_dir_purpose(uint8_t dir_purpose)
}
/** Same as directory_initiate_command(), but accepts rendezvous data to
- * fetch a hidden service descriptor. */
+ * fetch a hidden service descriptor, and takes its address & port arguments
+ * as tor_addr_port_t. */
static void
-directory_initiate_command_rend(const tor_addr_t *_addr,
- uint16_t or_port, uint16_t dir_port,
+directory_initiate_command_rend(const tor_addr_port_t *or_addr_port,
+ const tor_addr_port_t *dir_addr_port,
const char *digest,
uint8_t dir_purpose, uint8_t router_purpose,
dir_indirection_t indirection,
@@ -926,29 +1049,34 @@ directory_initiate_command_rend(const tor_addr_t *_addr,
time_t if_modified_since,
const rend_data_t *rend_query)
{
+ tor_assert(or_addr_port);
+ tor_assert(dir_addr_port);
+ tor_assert(or_addr_port->port || dir_addr_port->port);
+ tor_assert(digest);
+
dir_connection_t *conn;
const or_options_t *options = get_options();
int socket_error = 0;
- int use_begindir = directory_command_should_use_begindir(options, _addr,
- or_port, router_purpose, indirection);
+ const int use_begindir = directory_command_should_use_begindir(options,
+ &or_addr_port->addr, or_addr_port->port,
+ router_purpose, indirection);
const int anonymized_connection = dirind_is_anon(indirection);
- tor_addr_t addr;
-
- tor_assert(_addr);
- tor_assert(or_port || dir_port);
- tor_assert(digest);
+ const int or_connection = use_begindir || anonymized_connection;
- tor_addr_copy(&addr, _addr);
+ tor_addr_t addr;
+ tor_addr_copy(&addr, &(or_connection ? or_addr_port : dir_addr_port)->addr);
+ uint16_t port = (or_connection ? or_addr_port : dir_addr_port)->port;
+ uint16_t dir_port = dir_addr_port->port;
log_debug(LD_DIR, "anonymized %d, use_begindir %d.",
anonymized_connection, use_begindir);
if (!dir_port && !use_begindir) {
char ipaddr[TOR_ADDR_BUF_LEN];
- tor_addr_to_str(ipaddr, _addr, TOR_ADDR_BUF_LEN, 0);
+ tor_addr_to_str(ipaddr, &addr, TOR_ADDR_BUF_LEN, 0);
log_warn(LD_BUG, "Cannot use directory server without dirport or "
- "begindir! Address: %s, ORPort: %d, DirPort: %d",
- escaped_safe_str_client(ipaddr), or_port, dir_port);
+ "begindir! Address: %s, DirPort: %d, Connection Port: %d",
+ escaped_safe_str_client(ipaddr), dir_port, port);
return;
}
@@ -963,13 +1091,26 @@ directory_initiate_command_rend(const tor_addr_t *_addr,
/* ensure that we don't make direct connections when a SOCKS server is
* configured. */
- if (!anonymized_connection && !use_begindir && !options->HTTPProxy &&
+ if (!or_connection && !options->HTTPProxy &&
(options->Socks4Proxy || options->Socks5Proxy)) {
log_warn(LD_DIR, "Cannot connect to a directory server through a "
"SOCKS proxy!");
return;
}
+ if (or_connection && (!or_addr_port->port
+ || tor_addr_is_null(&or_addr_port->addr))) {
+ log_warn(LD_DIR, "Cannot make an OR connection without an OR port.");
+ log_backtrace(LOG_WARN, LD_BUG, "Address came from");
+ return;
+ } else if (!or_connection && (!dir_addr_port->port
+ || tor_addr_is_null(&dir_addr_port->addr))) {
+ log_warn(LD_DIR, "Cannot make a Dir connection without a Dir port.");
+ log_backtrace(LOG_WARN, LD_BUG, "Address came from");
+
+ return;
+ }
+
/* ensure we don't make excess connections when we're already downloading
* a consensus during bootstrap */
if (connection_dir_avoid_extra_connection_for_purpose(dir_purpose)) {
@@ -980,7 +1121,7 @@ directory_initiate_command_rend(const tor_addr_t *_addr,
/* set up conn so it's got all the data we need to remember */
tor_addr_copy(&conn->base_.addr, &addr);
- conn->base_.port = use_begindir ? or_port : dir_port;
+ conn->base_.port = port;
conn->base_.address = tor_dup_addr(&addr);
memcpy(conn->identity_digest, digest, DIGEST_LEN);
@@ -998,7 +1139,7 @@ directory_initiate_command_rend(const tor_addr_t *_addr,
if (rend_query)
conn->rend_data = rend_data_dup(rend_query);
- if (!anonymized_connection && !use_begindir) {
+ if (!or_connection) {
/* then we want to connect to dirport directly */
if (options->HTTPProxy) {
@@ -1159,6 +1300,23 @@ directory_get_consensus_url(const char *resource)
return url;
}
+/**
+ * Copies the ipv6 from source to destination, subject to buffer size limit
+ * size. If decorate is true, makes sure the copied address is decorated.
+ */
+static void
+copy_ipv6_address(char* destination, const char* source, size_t len,
+ int decorate) {
+ tor_assert(destination);
+ tor_assert(source);
+
+ if (decorate && source[0] != '[') {
+ tor_snprintf(destination, len, "[%s]", source);
+ } else {
+ strlcpy(destination, source, len);
+ }
+}
+
/** Queue an appropriate HTTP command on conn-\>outbuf. The other args
* are as in directory_initiate_command().
*/
@@ -1170,6 +1328,9 @@ directory_send_command(dir_connection_t *conn,
{
char proxystring[256];
char hoststring[128];
+ /* NEEDS to be the same size hoststring.
+ Will be decorated with brackets around it if it is ipv6. */
+ char decorated_address[128];
smartlist_t *headers = smartlist_new();
char *url;
char request[8192];
@@ -1182,12 +1343,20 @@ directory_send_command(dir_connection_t *conn,
if (resource)
conn->requested_resource = tor_strdup(resource);
+ /* decorate the ip address if it is ipv6 */
+ if (strchr(conn->base_.address, ':')) {
+ copy_ipv6_address(decorated_address, conn->base_.address,
+ sizeof(decorated_address), 1);
+ } else {
+ strlcpy(decorated_address, conn->base_.address, sizeof(decorated_address));
+ }
+
/* come up with a string for which Host: we want */
if (conn->base_.port == 80) {
- strlcpy(hoststring, conn->base_.address, sizeof(hoststring));
+ strlcpy(hoststring, decorated_address, sizeof(hoststring));
} else {
- tor_snprintf(hoststring, sizeof(hoststring),"%s:%d",
- conn->base_.address, conn->base_.port);
+ tor_snprintf(hoststring, sizeof(hoststring), "%s:%d",
+ decorated_address, conn->base_.port);
}
/* Format if-modified-since */
@@ -1595,7 +1764,7 @@ load_downloaded_routers(const char *body, smartlist_t *which,
added = router_load_routers_from_string(body, NULL, SAVED_NOWHERE, which,
descriptor_digests, buf);
- if (general)
+ if (added && general)
control_event_bootstrap(BOOTSTRAP_STATUS_LOADING_DESCRIPTORS,
count_loading_descriptors_progress());
return added;
@@ -1796,7 +1965,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
routers_update_all_from_networkstatus(now, 3);
update_microdescs_from_networkstatus(now);
update_microdesc_downloads(now);
- directory_info_has_arrived(now, 0);
+ directory_info_has_arrived(now, 0, 0);
log_info(LD_DIR, "Successfully loaded consensus.");
}
@@ -1832,7 +2001,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
* ones got flushed to disk so it's safe to call this on them */
connection_dir_download_cert_failed(conn, status_code);
} else {
- directory_info_has_arrived(now, 0);
+ directory_info_has_arrived(now, 0, 0);
log_info(LD_DIR, "Successfully loaded certificates from fetch.");
}
} else {
@@ -1946,7 +2115,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
if (load_downloaded_routers(body, which, descriptor_digests,
conn->router_purpose,
conn->base_.address))
- directory_info_has_arrived(now, 0);
+ directory_info_has_arrived(now, 0, 0);
}
}
if (which) { /* mark remaining ones as failed */
@@ -1997,8 +2166,11 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
/* Mark remaining ones as failed. */
dir_microdesc_download_failed(which, status_code);
}
- control_event_bootstrap(BOOTSTRAP_STATUS_LOADING_DESCRIPTORS,
- count_loading_descriptors_progress());
+ if (mds && smartlist_len(mds)) {
+ control_event_bootstrap(BOOTSTRAP_STATUS_LOADING_DESCRIPTORS,
+ count_loading_descriptors_progress());
+ directory_info_has_arrived(now, 0, 1);
+ }
SMARTLIST_FOREACH(which, char *, cp, tor_free(cp));
smartlist_free(which);
smartlist_free(mds);
@@ -2194,17 +2366,23 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
if (conn->base_.purpose == DIR_PURPOSE_UPLOAD_RENDDESC_V2) {
#define SEND_HS_DESC_UPLOAD_FAILED_EVENT(reason) ( \
- control_event_hs_descriptor_upload_failed(conn->identity_digest, \
- reason) )
+ control_event_hs_descriptor_upload_failed( \
+ conn->identity_digest, \
+ conn->rend_data->onion_address, \
+ reason) )
log_info(LD_REND,"Uploaded rendezvous descriptor (status %d "
"(%s))",
status_code, escaped(reason));
+ /* Without the rend data, we'll have a problem identifying what has been
+ * uploaded for which service. */
+ tor_assert(conn->rend_data);
switch (status_code) {
case 200:
log_info(LD_REND,
"Uploading rendezvous descriptor: finished with status "
"200 (%s)", escaped(reason));
- control_event_hs_descriptor_uploaded(conn->identity_digest);
+ control_event_hs_descriptor_uploaded(conn->identity_digest,
+ conn->rend_data->onion_address);
rend_service_desc_has_uploaded(conn->rend_data);
break;
case 400:
diff --git a/src/or/directory.h b/src/or/directory.h
index c5b5a5afe1..03c04c10c9 100644
--- a/src/or/directory.h
+++ b/src/or/directory.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -68,8 +68,8 @@ int connection_dir_process_inbuf(dir_connection_t *conn);
int connection_dir_finished_flushing(dir_connection_t *conn);
int connection_dir_finished_connecting(dir_connection_t *conn);
void connection_dir_about_to_close(dir_connection_t *dir_conn);
-void directory_initiate_command(const tor_addr_t *addr,
- uint16_t or_port, uint16_t dir_port,
+void directory_initiate_command(const tor_addr_t *or_addr, uint16_t or_port,
+ const tor_addr_t *dir_addr, uint16_t dir_port,
const char *digest,
uint8_t dir_purpose, uint8_t router_purpose,
dir_indirection_t indirection,
diff --git a/src/or/dirserv.c b/src/or/dirserv.c
index 491557e9cd..2bbaba1877 100644
--- a/src/or/dirserv.c
+++ b/src/or/dirserv.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define DIRSERV_PRIVATE
@@ -1230,7 +1230,7 @@ free_cached_dir_(void *_d)
void
dirserv_set_cached_consensus_networkstatus(const char *networkstatus,
const char *flavor_name,
- const digests_t *digests,
+ const common_digests_t *digests,
time_t published)
{
cached_dir_t *new_networkstatus;
@@ -1239,7 +1239,7 @@ dirserv_set_cached_consensus_networkstatus(const char *networkstatus,
cached_consensuses = strmap_new();
new_networkstatus = new_cached_dir(tor_strdup(networkstatus), published);
- memcpy(&new_networkstatus->digests, digests, sizeof(digests_t));
+ memcpy(&new_networkstatus->digests, digests, sizeof(common_digests_t));
old_networkstatus = strmap_set(cached_consensuses, flavor_name,
new_networkstatus);
if (old_networkstatus)
@@ -3103,7 +3103,7 @@ dirserv_get_routerdescs(smartlist_t *descs_out, const char *key,
DSR_HEX|DSR_SORT_UNIQ);
SMARTLIST_FOREACH_BEGIN(digests, const char *, d) {
if (router_digest_is_me(d)) {
- /* make sure desc_routerinfo exists */
+ /* calling router_get_my_routerinfo() to make sure it exists */
const routerinfo_t *ri = router_get_my_routerinfo();
if (ri)
smartlist_add(descs_out, (void*) &(ri->cache_info));
diff --git a/src/or/dirserv.h b/src/or/dirserv.h
index d07339bc12..8fcb3b4b77 100644
--- a/src/or/dirserv.h
+++ b/src/or/dirserv.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -63,9 +63,9 @@ int directory_too_idle_to_fetch_descriptors(const or_options_t *options,
cached_dir_t *dirserv_get_consensus(const char *flavor_name);
void dirserv_set_cached_consensus_networkstatus(const char *consensus,
- const char *flavor_name,
- const digests_t *digests,
- time_t published);
+ const char *flavor_name,
+ const common_digests_t *digests,
+ time_t published);
void dirserv_clear_old_networkstatuses(time_t cutoff);
int dirserv_get_routerdesc_fingerprints(smartlist_t *fps_out, const char *key,
const char **msg,
diff --git a/src/or/dirvote.c b/src/or/dirvote.c
index b61b33af79..6d0c5c14d4 100644
--- a/src/or/dirvote.c
+++ b/src/or/dirvote.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define DIRVOTE_PRIVATE
@@ -2114,14 +2114,14 @@ networkstatus_add_detached_signatures(networkstatus_t *target,
/** Make sure all the digests we know match, and at least one matches. */
{
- digests_t *digests = strmap_get(sigs->digests, flavor);
+ common_digests_t *digests = strmap_get(sigs->digests, flavor);
int n_matches = 0;
int alg;
if (!digests) {
*msg_out = "No digests for given consensus flavor";
return -1;
}
- for (alg = DIGEST_SHA1; alg < N_DIGEST_ALGORITHMS; ++alg) {
+ for (alg = DIGEST_SHA1; alg < N_COMMON_DIGEST_ALGORITHMS; ++alg) {
if (!tor_mem_is_zero(digests->d[alg], DIGEST256_LEN)) {
if (fast_memeq(target->digests.d[alg], digests->d[alg],
DIGEST256_LEN)) {
@@ -2314,7 +2314,7 @@ networkstatus_get_detached_signatures(smartlist_t *consensuses)
/* start with SHA256; we don't include SHA1 for anything but the basic
* consensus. */
- for (alg = DIGEST_SHA256; alg < N_DIGEST_ALGORITHMS; ++alg) {
+ for (alg = DIGEST_SHA256; alg < N_COMMON_DIGEST_ALGORITHMS; ++alg) {
char d[HEX_DIGEST256_LEN+1];
const char *alg_name =
crypto_digest_algorithm_get_name(alg);
diff --git a/src/or/dirvote.h b/src/or/dirvote.h
index cc526ea34e..5ab4c1cc16 100644
--- a/src/or/dirvote.h
+++ b/src/or/dirvote.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/dns.c b/src/or/dns.c
index 3f5dfd2a8a..c7adfbc971 100644
--- a/src/or/dns.c
+++ b/src/or/dns.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/dns.h b/src/or/dns.h
index c2778b216c..b14f7dd29c 100644
--- a/src/or/dns.h
+++ b/src/or/dns.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/dnsserv.c b/src/or/dnsserv.c
index ded0d8431b..8ddb414fe5 100644
--- a/src/or/dnsserv.c
+++ b/src/or/dnsserv.c
@@ -1,8 +1,9 @@
-/* Copyright (c) 2007-2015, The Tor Project, Inc. */
+/* Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
- * \file dnsserv.c \brief Implements client-side DNS proxy server code. Note:
+ * \file dnsserv.c
+ * \brief Implements client-side DNS proxy server code. Note:
* this is the DNS Server code, not the Server DNS code. Confused? This code
* runs on client-side, and acts as a DNS server. The code in dns.c, on the
* other hand, runs on Tor servers, and acts as a DNS client.
diff --git a/src/or/dnsserv.h b/src/or/dnsserv.h
index 09ad5d7759..ad0e248c83 100644
--- a/src/or/dnsserv.h
+++ b/src/or/dnsserv.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/entrynodes.c b/src/or/entrynodes.c
index 789c53da17..3287fcd584 100644
--- a/src/or/entrynodes.c
+++ b/src/or/entrynodes.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -87,7 +87,7 @@ get_entry_guards(void)
/** Check whether the entry guard <b>e</b> is usable, given the directory
* authorities' opinion about the router (stored in <b>ri</b>) and the user's
- * configuration (in <b>options</b>). Set <b>e</b>-&gt;bad_since
+ * configuration (in <b>options</b>). Set <b>e</b>->bad_since
* accordingly. Return true iff the entry guard's status changes.
*
* If it's not usable, set *<b>reason</b> to a static string explaining why.
@@ -117,6 +117,9 @@ entry_guard_set_status(entry_guard_t *e, const node_t *node,
*reason = "not recommended as a guard";
else if (routerset_contains_node(options->ExcludeNodes, node))
*reason = "excluded";
+ /* We only care about OR connection connectivity for entry guards. */
+ else if (!fascist_firewall_allows_node(node, FIREWALL_OR_CONNECTION, 0))
+ *reason = "unreachable by config";
else if (e->path_bias_disabled)
*reason = "path-biased";
@@ -268,7 +271,7 @@ entry_is_live(const entry_guard_t *e, entry_is_live_flags_t flags,
*msg = "not fast/stable";
return NULL;
}
- if (!fascist_firewall_allows_node(node)) {
+ if (!fascist_firewall_allows_node(node, FIREWALL_OR_CONNECTION, 0)) {
*msg = "unreachable by config";
return NULL;
}
@@ -918,7 +921,8 @@ entry_guards_set_from_config(const or_options_t *options)
} else if (routerset_contains_node(options->ExcludeNodes, node)) {
SMARTLIST_DEL_CURRENT(entry_nodes, node);
continue;
- } else if (!fascist_firewall_allows_node(node)) {
+ } else if (!fascist_firewall_allows_node(node, FIREWALL_OR_CONNECTION,
+ 0)) {
SMARTLIST_DEL_CURRENT(entry_nodes, node);
continue;
} else if (! node->is_possible_guard) {
@@ -2116,8 +2120,18 @@ launch_direct_bridge_descriptor_fetch(bridge_info_t *bridge)
return;
}
- directory_initiate_command(&bridge->addr,
- bridge->port, 0/*no dirport*/,
+ /* Until we get a descriptor for the bridge, we only know one address for
+ * it. */
+ if (!fascist_firewall_allows_address_addr(&bridge->addr, bridge->port,
+ FIREWALL_OR_CONNECTION, 0, 0)) {
+ log_notice(LD_CONFIG, "Tried to fetch a descriptor directly from a "
+ "bridge, but that bridge is not reachable through our "
+ "firewall.");
+ return;
+ }
+
+ directory_initiate_command(&bridge->addr, bridge->port,
+ NULL, 0, /*no dirport*/
bridge->identity,
DIR_PURPOSE_FETCH_SERVERDESC,
ROUTER_PURPOSE_BRIDGE,
@@ -2178,7 +2192,9 @@ fetch_bridge_descriptors(const or_options_t *options, time_t now)
!options->UpdateBridgesFromAuthority, !num_bridge_auths);
if (ask_bridge_directly &&
- !fascist_firewall_allows_address_or(&bridge->addr, bridge->port)) {
+ !fascist_firewall_allows_address_addr(&bridge->addr, bridge->port,
+ FIREWALL_OR_CONNECTION, 0,
+ 0)) {
log_notice(LD_DIR, "Bridge at '%s' isn't reachable by our "
"firewall policy. %s.",
fmt_addrport(&bridge->addr, bridge->port),
@@ -2226,6 +2242,7 @@ rewrite_node_address_for_bridge(const bridge_info_t *bridge, node_t *node)
* does so through an address from any source other than node_get_addr().
*/
tor_addr_t addr;
+ const or_options_t *options = get_options();
if (node->ri) {
routerinfo_t *ri = node->ri;
@@ -2258,9 +2275,15 @@ rewrite_node_address_for_bridge(const bridge_info_t *bridge, node_t *node)
}
}
- /* Mark which address to use based on which bridge_t we got. */
- node->ipv6_preferred = (tor_addr_family(&bridge->addr) == AF_INET6 &&
- !tor_addr_is_null(&node->ri->ipv6_addr));
+ if (options->ClientPreferIPv6ORPort == -1) {
+ /* Mark which address to use based on which bridge_t we got. */
+ node->ipv6_preferred = (tor_addr_family(&bridge->addr) == AF_INET6 &&
+ !tor_addr_is_null(&node->ri->ipv6_addr));
+ } else {
+ /* Mark which address to use based on user preference */
+ node->ipv6_preferred = (fascist_firewall_prefer_ipv6_orport(options) &&
+ !tor_addr_is_null(&node->ri->ipv6_addr));
+ }
/* XXXipv6 we lack support for falling back to another address for
the same relay, warn the user */
@@ -2269,10 +2292,13 @@ rewrite_node_address_for_bridge(const bridge_info_t *bridge, node_t *node)
node_get_pref_orport(node, &ap);
log_notice(LD_CONFIG,
"Bridge '%s' has both an IPv4 and an IPv6 address. "
- "Will prefer using its %s address (%s).",
+ "Will prefer using its %s address (%s) based on %s.",
ri->nickname,
- tor_addr_family(&ap.addr) == AF_INET6 ? "IPv6" : "IPv4",
- fmt_addrport(&ap.addr, ap.port));
+ node->ipv6_preferred ? "IPv6" : "IPv4",
+ fmt_addrport(&ap.addr, ap.port),
+ options->ClientPreferIPv6ORPort == -1 ?
+ "the configured Bridge address" :
+ "ClientPreferIPv6ORPort");
}
}
if (node->rs) {
diff --git a/src/or/entrynodes.h b/src/or/entrynodes.h
index 107a562506..59147d19b5 100644
--- a/src/or/entrynodes.h
+++ b/src/or/entrynodes.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/eventdns_tor.h b/src/or/eventdns_tor.h
index f41c5c0099..5db09ae043 100644
--- a/src/or/eventdns_tor.h
+++ b/src/or/eventdns_tor.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2015, The Tor Project, Inc. */
+/* Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_EVENTDNS_TOR_H
diff --git a/src/or/ext_orport.c b/src/or/ext_orport.c
index 810fa0d9aa..584abf61fd 100644
--- a/src/or/ext_orport.c
+++ b/src/or/ext_orport.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/ext_orport.h b/src/or/ext_orport.h
index 8b2542f937..33d954e8d0 100644
--- a/src/or/ext_orport.h
+++ b/src/or/ext_orport.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef EXT_ORPORT_H
diff --git a/src/or/fallback_dirs.inc b/src/or/fallback_dirs.inc
index d05f16f4ea..45610fa605 100644
--- a/src/or/fallback_dirs.inc
+++ b/src/or/fallback_dirs.inc
@@ -1,206 +1,298 @@
-/* Trial fallbacks for 0.2.8.1-alpha with ADDRESS_AND_PORT_STABLE_DAYS = 30
+/* Trial fallbacks for 0.2.8.2-alpha with ADDRESS_AND_PORT_STABLE_DAYS = 7
* This works around an issue where relays post a descriptor without a DirPort
- * when restarted. If these relays stay up, they will have been up for 120 days
- * by the 0.2.8 stable release -- teor */
-/* Whitelist & blacklist excluded 1070 of 1091 candidates. */
+ * when restarted. The flag CUTOFFs ensure sufficient relay stability. -- teor
+ */
+/* Whitelist & blacklist excluded 1380 of 1412 candidates. */
/*
Fallback Directory Summary
-Final Count: 21 (Eligible 21, Usable 21, Target 290 (1454 * 0.200000), Clamped to 500)
+Final Count: 32 (Eligible 32, Usable 32, Target 335 (1679 * 0.200000), Clamped to 500)
*/
/* Ignore low fallback numbers in alpha builds -- teor
-#error Fallback Count 21 is too low. Must be at least 100 for diversity. Try adding entries to the whitelist, or setting INCLUDE_UNLISTED_ENTRIES = True.
+#error Fallback Count 32 is too low. Must be at least 50 for diversity. Try adding entries to the whitelist, or setting INCLUDE_UNLISTED_ENTRIES = True.
*/
/*
-Final Weight: 491920 (Eligible 546000)
-Max Weight: 43680 (8.879%) (Clamped to 10.000%)
-Min Weight: 8080 (1.643%) (Clamped to 0.100%)
-Clamped: 54080 (10.994%) Excess Weight, 4 High Weight Fallbacks (19.0%)
+Final Weight: 704514 (Eligible 712270)
+Max Weight: 56981 (8.088%) (Clamped to 10.000%)
+Min Weight: 4450 (0.632%) (Clamped to 0.100%)
+Clamped: 7755 (1.101%) Excess Weight, 3 High Weight Fallbacks (9.4%)
*/
/*
-Onionoo Source: details Date: 2016-01-18 00:00:00 Version: 3.0
-URL: https://onionoo.torproject.org/details?fields=fingerprint%2Cnickname%2Ccontact%2Clast_changed_address_or_port%2Cconsensus_weight%2Cor_addresses%2Cdir_address%2Crecommended_version%2Cflags&flag=V2Dir&type=relay&last_seen_days=-7&first_seen_days=30-
+Onionoo Source: details Date: 2016-02-27 07:00:00 Version: 3.1
+URL: https://onionoo.torproject.org/details?fields=fingerprint%2Cnickname%2Ccontact%2Clast_changed_address_or_port%2Cconsensus_weight%2Cor_addresses%2Cdir_address%2Crecommended_version%2Cflags&flag=V2Dir&type=relay&last_seen_days=-7&first_seen_days=7-
*/
/*
-Onionoo Source: uptime Date: 2016-01-18 00:00:00 Version: 3.0
-URL: https://onionoo.torproject.org/uptime?first_seen_days=30-&flag=V2Dir&type=relay&last_seen_days=-7
+Onionoo Source: uptime Date: 2016-02-27 07:00:00 Version: 3.1
+URL: https://onionoo.torproject.org/uptime?first_seen_days=7-&flag=V2Dir&type=relay&last_seen_days=-7
*/
/*
-wagner
-Flags: Fast Guard Running Stable V2Dir Valid
-Fallback Weight: 43680 / 491920 (8.879%)
-Consensus Weight: 62600 / 546000 (11.465%)
-Rarely used email <trff914 AT gmail DOT com>
-*/
-"5.175.233.86:80 orport=443 id=5525D0429BFE5DC4F1B0E9DE47A4CFA169661E33"
-" weight=43680",
-/*
-kitten2
-Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 43680 / 491920 (8.879%)
-Consensus Weight: 59100 / 546000 (10.824%)
-0xEFB74277ECE4E222 Aeris <aeris+tor AT imirhil DOT fr> - 1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd
-*/
-"62.210.124.124:9130 orport=9101 id=2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E"
-" ipv6=[2001:bc8:3f23:100::1]:9101"
-" weight=43680",
-/*
kitten1
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 43680 / 491920 (8.879%)
-Consensus Weight: 57600 / 546000 (10.549%)
+Fallback Weight: 56981 / 704514 (8.088%)
+Consensus Weight: 61100 / 712270 (8.578%)
0xEFB74277ECE4E222 Aeris <aeris+tor AT imirhil DOT fr> - 1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd
*/
"62.210.124.124:9030 orport=9001 id=86E78DD3720C78DA8673182EF96C54B162CD660C"
" ipv6=[2001:bc8:3f23:100::1]:9001"
-" weight=43680",
+" weight=56981",
/*
fluxe4
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 43680 / 491920 (8.879%)
-Consensus Weight: 49500 / 546000 (9.066%)
+Fallback Weight: 56981 / 704514 (8.088%)
+Consensus Weight: 59800 / 712270 (8.396%)
Sebastian <tor@sebastianhahn.net> - 12NbRAjAG5U3LLWETSF7fSTcdaz32Mu5CN
*/
"131.188.40.188:443 orport=80 id=EBE718E1A49EE229071702964F8DB1F318075FF8"
-" weight=43680",
+" weight=56981",
/*
-BabylonNetwork03
-Flags: Exit Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 38700 / 491920 (7.867%)
-Babylon Network | noc <AT> babylon <DOT> network | PGP 0x2A540FA5 | 1HiSG8pia5DdDLUMyYNkF9sicGozojZLnH
+kitten2
+Flags: Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 56981 / 704514 (8.088%)
+Consensus Weight: 57800 / 712270 (8.115%)
+0xEFB74277ECE4E222 Aeris <aeris+tor AT imirhil DOT fr> - 1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd
*/
-"193.111.136.162:80 orport=443 id=C79552275DFCD486B942510EF663ED36ACA1A84B"
-" ipv6=[2001:4ba0:cafe:10d0::1]:443"
-" weight=38700",
+"62.210.124.124:9130 orport=9101 id=2EBD117806EE43C3CC885A8F1E4DC60F207E7D3E"
+" ipv6=[2001:bc8:3f23:100::1]:9101"
+" weight=56981",
+/*
+fluxe3
+Flags: Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 54800 / 704514 (7.778%)
+Sebastian <tor@sebastianhahn.net> - 12NbRAjAG5U3LLWETSF7fSTcdaz32Mu5CN
+*/
+"78.47.18.110:443 orport=80 id=F8D27B163B9247B232A2EEE68DD8B698695C28DE"
+" weight=54800",
/*
tornoderdednl
-Flags: Fast Guard Running Stable V2Dir Valid
-Fallback Weight: 33000 / 491920 (6.708%)
+Flags: Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 50500 / 704514 (7.168%)
0x4871E82F Thom Wiggers <thom @AT@ RDED POINT NL> BTC 1DLyDFV13zhCWJYHMh5bk5C58yYvpxqxfQ
*/
"178.62.199.226:80 orport=443 id=CBEFF7BA4A4062045133C053F2D70524D8BBE5BE"
" ipv6=[2a03:b0c0:2:d0::b7:5001]:443"
-" weight=33000",
+" weight=50500",
/*
-fluxe3
+pixelminer
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 31500 / 491920 (6.403%)
-Sebastian <tor@sebastianhahn.net> - 12NbRAjAG5U3LLWETSF7fSTcdaz32Mu5CN
+Fallback Weight: 44800 / 704514 (6.359%)
+Christian Sturm <reezer AT pixelminers dot net> - 1Q3PQJTELv33S1nruGcTUMQ7CuWxXmnjkZ
*/
-"78.47.18.110:443 orport=80 id=F8D27B163B9247B232A2EEE68DD8B698695C28DE"
-" weight=31500",
+"81.7.14.246:80 orport=443 id=CE75BF0972ADD52AF8807602374E495C815DB304"
+" ipv6=[2a02:180:a:51::dead]:443"
+" weight=44800",
/*
-BabylonNetwork02
-Flags: Exit Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 27300 / 491920 (5.550%)
-Babylon Network | noc <AT> babylon <DOT> network | PGP 0x2A540FA5 | 1HiSG8pia5DdDLUMyYNkF9sicGozojZLnH
-*/
-"149.202.98.161:80 orport=443 id=54660C671B47E6986B465B80444414BD19E5A34B"
-" ipv6=[2001:41d0:8:4528::161]:443"
-" weight=27300",
-/*
-coby
+bakunin
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 20400 / 491920 (4.147%)
-c0by <coby AT 127001 dot ovh>
+Fallback Weight: 41800 / 704514 (5.933%)
+GTor <contact _AT_ gtor _DOT_ org>
*/
-"51.255.33.237:9091 orport=9001 id=A360C21FA87FFA2046D92C17086A6B47E5C68109"
-" weight=20400",
+"178.16.208.57:80 orport=443 id=92CFD9565B24646CAC2D172D3DB503D69E777B8A"
+" ipv6=[2a00:1c20:4089:1234:7825:2c5d:1ecd:c66f]:443"
+" weight=41800",
/*
kili
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 19300 / 491920 (3.923%)
+Fallback Weight: 23800 / 704514 (3.378%)
0x49CBC553 Joost Rijneveld <joost AT joostrijneveld dot nl>
*/
"178.62.173.203:9030 orport=9001 id=DD85503F2D1F52EF9EAD621E942298F46CD2FC10"
" ipv6=[2a03:b0c0:0:1010::a4:b001]:9001"
-" weight=19300",
+" weight=23800",
/*
-Logforme
+PedicaboMundi
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 18600 / 491920 (3.781%)
-Logforme <m7527 AT abc dot se>
+Fallback Weight: 23000 / 704514 (3.265%)
+0x43DE8191 - 12LiRiasTEL346ZFjgCh5e3nBexQuvDBTg
*/
-"84.219.173.60:9030 orport=443 id=855BC2DABE24C861CD887DB9B2E950424B49FC34"
-" weight=18600",
+"144.76.14.145:110 orport=143 id=14419131033443AE6E21DA82B0D307F7CAE42BDB"
+" ipv6=[2a01:4f8:190:9490::dead]:443"
+" weight=23000",
/*
-eriador
+Doedel26
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 17400 / 491920 (3.537%)
-hwertiout695@safe-mail.net
+Fallback Weight: 22600 / 704514 (3.208%)
+Felix <zwiebel ta quantentunnel tod de>
*/
-"85.25.138.93:9030 orport=4029 id=6DE61A6F72C1E5418A66BFED80DFB63E4C77668F"
-" weight=17400",
+"178.254.20.134:80 orport=443 id=9F5068310818ED7C70B0BC4087AB55CB12CB4377"
+" weight=22600",
/*
Doedel24
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 17000 / 491920 (3.456%)
+Fallback Weight: 20800 / 704514 (2.952%)
Felix <zwiebel ta quantentunnel tod de>
*/
"178.254.20.134:9030 orport=9001 id=2CE96A8A1DA032664C90F574AFFBECE18A6E8DFC"
-" weight=17000",
+" weight=20800",
+/*
+Freebird31
+Flags: Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 20500 / 704514 (2.910%)
+Felix <zwiebel ta quantentunnel tod de>
+*/
+"178.254.13.126:80 orport=443 id=F9246DEF2B653807236DA134F2AEAB103D58ABFE"
+" weight=20500",
+/*
+rueckgrat
+Flags: Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 19200 / 704514 (2.725%)
+Paul Staroch <paulchen AT rueckgr DOT at> - BTC 1G8pF66fnHc4n4oksY87pCN4TRXAV2Nqhh
+*/
+"5.9.110.236:9030 orport=9001 id=0756B7CD4DFC8182BE23143FAC0642F515182CEB"
+" ipv6=[2a01:4f8:162:51e2::2]:9001"
+" weight=19200",
+/*
+coby
+Flags: Fast Guard Running Stable V2Dir Valid
+Fallback Weight: 16700 / 704514 (2.370%)
+c0by <coby AT 127001 dot ovh>
+*/
+"51.255.33.237:9091 orport=9001 id=A360C21FA87FFA2046D92C17086A6B47E5C68109"
+" weight=16700",
/*
-GrmmlLitavis
+Logforme
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 15500 / 491920 (3.151%)
-<tor AT grmml DOT eu>
+Fallback Weight: 16000 / 704514 (2.271%)
+Logforme <m7527 AT abc dot se>
+*/
+"84.219.173.60:9030 orport=443 id=855BC2DABE24C861CD887DB9B2E950424B49FC34"
+" weight=16000",
+/*
+12xBTME1
+Flags: Exit Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 15300 / 704514 (2.172%)
+12xBTM@gmail.com - 12xBTMNArLvKXqvbsbyVhpPQfzUDuUaPGP
*/
-"5.39.88.19:9030 orport=9001 id=7CB8C31432A796731EA7B6BF4025548DFEB25E0C"
-" ipv6=[2001:41d0:8:9a13::1]:9050"
-" weight=15500",
+"81.7.17.171:80 orport=443 id=00C4B4731658D3B4987132A3F77100CFCB190D97"
+" ipv6=[2a02:180:1:1::517:11ab]:443"
+" weight=15300",
/*
Doedel21
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 13800 / 491920 (2.805%)
+Fallback Weight: 14800 / 704514 (2.101%)
Felix <zwiebel ta quantentunnel tod de>
*/
"178.254.44.135:80 orport=443 id=AE6A8C18E7499B586CD36246AC4BCAFFBBF93AB2"
-" weight=13800",
+" weight=14800",
/*
-Unnamed
+Binnacle
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 13400 / 491920 (2.724%)
-monitor0penmailbox0rg
+Fallback Weight: 13700 / 704514 (1.945%)
+starlight dot YYYYqQ at binnacle dot cx
*/
-"217.12.199.208:80 orport=443 id=DF3AED4322B1824BF5539AE54B2D1B38E080FF05"
-" weight=13400",
+"108.53.208.157:80 orport=443 id=4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2"
+" weight=13700",
/*
-Doedel26
+Freebird32
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 12800 / 491920 (2.602%)
+Fallback Weight: 13200 / 704514 (1.874%)
Felix <zwiebel ta quantentunnel tod de>
*/
-"178.254.20.134:80 orport=443 id=9F5068310818ED7C70B0BC4087AB55CB12CB4377"
-" weight=12800",
+"178.254.13.126:9030 orport=9001 id=0C475BA4D3AA3C289B716F95954CAD616E50C4E5"
+" weight=13200",
+/*
+eriador
+Flags: Fast Guard Running Stable V2Dir Valid
+Fallback Weight: 12400 / 704514 (1.760%)
+hwertiout695@safe-mail.net
+*/
+"85.25.138.93:9030 orport=4029 id=6DE61A6F72C1E5418A66BFED80DFB63E4C77668F"
+" weight=12400",
+/*
+Nurnberg04
+Flags: Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 11600 / 704514 (1.647%)
+Please Donate <tor AT use.startmail dot com> - 1GuD8FxCnTqYGeRbx4MceYPhMLNTKDTsTT
+*/
+"88.198.38.226:22 orport=443 id=4B9E2C56FB42B891794FE2CD2FCAD08A320CC3BB"
+" ipv6=[2a01:4f8:a0:1351::2]:80"
+" weight=11600",
+/*
+Nurnberg03
+Flags: Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 11000 / 704514 (1.561%)
+Please Donate <tor AT use.startmail dot com> - 1GuD8FxCnTqYGeRbx4MceYPhMLNTKDTsTT
+*/
+"85.10.201.38:22 orport=443 id=F6279A203C1950ACF592322A235647A05BFBCF91"
+" ipv6=[2a01:4f8:a0:43cc::2]:80"
+" weight=11000",
/*
Doedel22
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 12000 / 491920 (2.439%)
+Fallback Weight: 10600 / 704514 (1.505%)
Felix <zwiebel ta quantentunnel tod de>
*/
"178.254.44.135:9030 orport=9001 id=8FA37B93397015B2BC5A525C908485260BE9F422"
-" weight=12000",
+" weight=10600",
+/*
+Nurnberg01
+Flags: Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 10500 / 704514 (1.490%)
+Please Donate <tor AT use.startmail dot com> - 1GuD8FxCnTqYGeRbx4MceYPhMLNTKDTsTT
+*/
+"213.239.210.204:22 orport=443 id=5BFDECCE9B4A23AE14EC767C5A2C1E10558B00B9"
+" ipv6=[2a01:4f8:a0:9474::2]:80"
+" weight=10500",
/*
kitten4
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 10100 / 491920 (2.053%)
+Fallback Weight: 10400 / 704514 (1.476%)
0xEFB74277ECE4E222 Aeris <aeris+tor AT imirhil DOT fr> - 1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd
*/
"212.47.237.95:9130 orport=9101 id=6FB38EB22E57EF7ED5EF00238F6A48E553735D88"
-" weight=10100",
+" weight=10400",
/*
-Binnacle
+Unnamed
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 8320 / 491920 (1.691%)
-starlight dot YYYYqQ at binnacle dot cx
+Fallback Weight: 9780 / 704514 (1.388%)
+monitor0penmailbox0rg
*/
-"108.53.208.157:80 orport=443 id=4F0DB7E687FC7C0AE55C8F243DA8B0EB27FBF1F2"
-" weight=8320",
+"217.12.210.214:80 orport=443 id=943C0C6841C1E914B9FCA796C6846620A5AF9BC7"
+" weight=9780",
/*
-PedicaboMundi
+Nurnberg02
Flags: Fast Guard HSDir Running Stable V2Dir Valid
-Fallback Weight: 8080 / 491920 (1.643%)
-0x43DE8191 - 12LiRiasTEL346ZFjgCh5e3nBexQuvDBTg
+Fallback Weight: 9490 / 704514 (1.347%)
+Please Donate <tor AT use.startmail dot com> - 1GuD8FxCnTqYGeRbx4MceYPhMLNTKDTsTT
*/
-"144.76.14.145:110 orport=143 id=14419131033443AE6E21DA82B0D307F7CAE42BDB"
-" ipv6=[2a01:4f8:190:9490::dead]:443"
-" weight=8080",
+"213.239.220.25:22 orport=443 id=BEE2317AE127EB681C5AE1551C1EA0630580638A"
+" ipv6=[2a01:4f8:a0:710c::2]:80"
+" weight=9490",
+/*
+kitten3
+Flags: Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 8640 / 704514 (1.226%)
+0xEFB74277ECE4E222 Aeris <aeris+tor AT imirhil DOT fr> - 1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd
+*/
+"212.47.237.95:9030 orport=9001 id=3F5D8A879C58961BB45A3D26AC41B543B40236D6"
+" weight=8640",
+/*
+horizons
+Flags: Fast Guard Running Stable V2Dir Valid
+Fallback Weight: 7860 / 704514 (1.116%)
+kbesig@socal.rr.com
+*/
+"167.114.35.28:9030 orport=9001 id=E65D300F11E1DB12C534B0146BDAB6972F1A8A48"
+" weight=7860",
+/*
+wagner
+Flags: Fast Guard Running Stable V2Dir Valid
+Fallback Weight: 7700 / 704514 (1.093%)
+Rarely used email <trff914 AT gmail DOT com>
+*/
+"5.175.233.86:80 orport=443 id=5525D0429BFE5DC4F1B0E9DE47A4CFA169661E33"
+" weight=7700",
+/*
+Unnamed
+Flags: Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 7650 / 704514 (1.086%)
+monitor0penmailbox0rg
+*/
+"217.12.199.208:80 orport=443 id=DF3AED4322B1824BF5539AE54B2D1B38E080FF05"
+" weight=7650",
+/*
+ratchet
+Flags: Fast Guard HSDir Running Stable V2Dir Valid
+Fallback Weight: 4450 / 704514 (0.632%)
+0x1EB4B68F Sam Lanning <sam AT samlanning dot com>
+*/
+"170.130.1.7:9030 orport=9001 id=FA3415659444AE006E7E9E5375E82F29700CFDFD"
+" weight=4450",
diff --git a/src/or/fp_pair.c b/src/or/fp_pair.c
index c863d4176c..53b311e580 100644
--- a/src/or/fp_pair.c
+++ b/src/or/fp_pair.c
@@ -1,6 +1,14 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file fp_pair.c
+ *
+ * \brief Manages data structures for associating pairs of fingerprints. Used
+ * to handle combinations of identity/signing-key fingerprints for
+ * authorities.
+ **/
+
#include "or.h"
#include "fp_pair.h"
diff --git a/src/or/fp_pair.h b/src/or/fp_pair.h
index 0830ab1f36..b1466581d2 100644
--- a/src/or/fp_pair.h
+++ b/src/or/fp_pair.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/geoip.c b/src/or/geoip.c
index 26030ae52a..b563db0418 100644
--- a/src/or/geoip.c
+++ b/src/or/geoip.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2015, The Tor Project, Inc. */
+/* Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/geoip.h b/src/or/geoip.h
index 3f1bba01f8..070296dd07 100644
--- a/src/or/geoip.h
+++ b/src/or/geoip.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/hibernate.c b/src/or/hibernate.c
index 7f8530b221..9408925d96 100644
--- a/src/or/hibernate.c
+++ b/src/or/hibernate.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/hibernate.h b/src/or/hibernate.h
index e0d0c29bdb..fa9da6de39 100644
--- a/src/or/hibernate.h
+++ b/src/or/hibernate.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/keypin.c b/src/or/keypin.c
index 574a76d51e..1f82eccf86 100644
--- a/src/or/keypin.c
+++ b/src/or/keypin.c
@@ -1,6 +1,13 @@
-/* Copyright (c) 2014, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file keypin.c
+ *
+ * \brief Functions and structures for associating routers' RSA key
+ * fingerprints with their ED25519 keys.
+ */
+
#define KEYPIN_PRIVATE
#include "orconfig.h"
diff --git a/src/or/keypin.h b/src/or/keypin.h
index 798ac1fedb..673f24d9e3 100644
--- a/src/or/keypin.h
+++ b/src/or/keypin.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_KEYPIN_H
diff --git a/src/or/main.c b/src/or/main.c
index bd4f7eaa71..d84e365122 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -191,32 +191,6 @@ int quiet_level = 0;
*
****************************************************************************/
-#if 0 && defined(USE_BUFFEREVENTS)
-static void
-free_old_inbuf(connection_t *conn)
-{
- if (! conn->inbuf)
- return;
-
- tor_assert(conn->outbuf);
- tor_assert(buf_datalen(conn->inbuf) == 0);
- tor_assert(buf_datalen(conn->outbuf) == 0);
- buf_free(conn->inbuf);
- buf_free(conn->outbuf);
- conn->inbuf = conn->outbuf = NULL;
-
- if (conn->read_event) {
- event_del(conn->read_event);
- tor_event_free(conn->read_event);
- }
- if (conn->write_event) {
- event_del(conn->read_event);
- tor_event_free(conn->write_event);
- }
- conn->read_event = conn->write_event = NULL;
-}
-#endif
-
#if defined(_WIN32) && defined(USE_BUFFEREVENTS)
/** Remove the kernel-space send and receive buffers for <b>s</b>. For use
* with IOCP only. */
@@ -946,18 +920,6 @@ conn_close_if_marked(int i)
* would make much more sense to react in
* connection_handle_read_impl, or to just stop reading in
* mark_and_flush */
-#if 0
-#define MARKED_READING_RATE 180
- static ratelim_t marked_read_lim = RATELIM_INIT(MARKED_READING_RATE);
- char *m;
- if ((m = rate_limit_log(&marked_read_lim, now))) {
- log_warn(LD_BUG, "Marked connection (fd %d, type %s, state %s) "
- "is still reading; that shouldn't happen.%s",
- (int)conn->s, conn_type_to_string(conn->type),
- conn_state_to_string(conn->type, conn->state), m);
- tor_free(m);
- }
-#endif
conn->read_blocked_on_bw = 1;
connection_stop_reading(conn);
}
@@ -1040,12 +1002,12 @@ directory_all_unreachable(time_t now)
/** This function is called whenever we successfully pull down some new
* network statuses or server descriptors. */
void
-directory_info_has_arrived(time_t now, int from_cache)
+directory_info_has_arrived(time_t now, int from_cache, int suppress_logs)
{
const or_options_t *options = get_options();
if (!router_have_minimum_dir_info()) {
- int quiet = from_cache ||
+ int quiet = suppress_logs || from_cache ||
directory_too_idle_to_fetch_descriptors(options, now);
tor_log(quiet ? LOG_INFO : LOG_NOTICE, LD_DIR,
"I learned some more directory information, but not enough to "
@@ -1414,11 +1376,23 @@ reschedule_directory_downloads(void)
periodic_event_reschedule(launch_descriptor_fetches_event);
}
+#define LONGEST_TIMER_PERIOD (30 * 86400)
+/** Helper: Return the number of seconds between <b>now</b> and <b>next</b>,
+ * clipped to the range [1 second, LONGEST_TIMER_PERIOD]. */
static inline int
safe_timer_diff(time_t now, time_t next)
{
if (next > now) {
- tor_assert(next - now <= INT_MAX);
+ /* There were no computers at signed TIME_MIN (1902 on 32-bit systems),
+ * and nothing that could run Tor. It's a bug if 'next' is around then.
+ * On 64-bit systems with signed TIME_MIN, TIME_MIN is before the Big
+ * Bang. We cannot extrapolate past a singularity, but there was probably
+ * nothing that could run Tor then, either.
+ **/
+ tor_assert(next > TIME_MIN + LONGEST_TIMER_PERIOD);
+
+ if (next - LONGEST_TIMER_PERIOD > now)
+ return LONGEST_TIMER_PERIOD;
return (int)(next - now);
} else {
return 1;
@@ -2195,7 +2169,10 @@ got_libevent_error(void)
void
ip_address_changed(int at_interface)
{
- int server = server_mode(get_options());
+ const or_options_t *options = get_options();
+ int server = server_mode(options);
+ int exit_reject_private = (server && options->ExitRelay
+ && options->ExitPolicyRejectPrivate);
if (at_interface) {
if (! server) {
@@ -2209,10 +2186,15 @@ ip_address_changed(int at_interface)
reset_bandwidth_test();
stats_n_seconds_working = 0;
router_reset_reachability();
- mark_my_descriptor_dirty("IP address changed");
}
}
+ /* Exit relays incorporate interface addresses in their exit policies when
+ * ExitPolicyRejectPrivate is set */
+ if (exit_reject_private || (server && !at_interface)) {
+ mark_my_descriptor_dirty("IP address changed");
+ }
+
dns_servers_relaunch_checks();
}
@@ -2409,7 +2391,7 @@ do_main_loop(void)
* appropriate.)
*/
now = time(NULL);
- directory_info_has_arrived(now, 1);
+ directory_info_has_arrived(now, 1, 0);
if (server_mode(get_options())) {
/* launch cpuworkers. Need to do this *after* we've read the onion key. */
@@ -3118,7 +3100,6 @@ tor_free_all(int postfork)
connection_free_all();
connection_edge_free_all();
scheduler_free_all();
- memarea_clear_freelist();
nodelist_free_all();
microdesc_free_all();
ext_orport_free_all();
@@ -3319,6 +3300,8 @@ sandbox_init_filter(void)
OPEN_DATADIR2(name, name2 suffix); \
} while (0)
+ OPEN(options->DataDirectory);
+ OPEN_DATADIR("keys");
OPEN_DATADIR_SUFFIX("cached-certs", ".tmp");
OPEN_DATADIR_SUFFIX("cached-consensus", ".tmp");
OPEN_DATADIR_SUFFIX("unverified-consensus", ".tmp");
diff --git a/src/or/main.h b/src/or/main.h
index 37e93d79d3..ad865b8124 100644
--- a/src/or/main.h
+++ b/src/or/main.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -48,7 +48,7 @@ MOCK_DECL(void,connection_start_writing,(connection_t *conn));
void connection_stop_reading_from_linked_conn(connection_t *conn);
void directory_all_unreachable(time_t now);
-void directory_info_has_arrived(time_t now, int from_cache);
+void directory_info_has_arrived(time_t now, int from_cache, int suppress_logs);
void ip_address_changed(int at_interface);
void dns_servers_relaunch_checks(void);
diff --git a/src/or/microdesc.c b/src/or/microdesc.c
index dc23bcb632..9c9e09140c 100644
--- a/src/or/microdesc.c
+++ b/src/or/microdesc.c
@@ -1,6 +1,13 @@
-/* Copyright (c) 2009-2015, The Tor Project, Inc. */
+/* Copyright (c) 2009-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file microdesc.c
+ *
+ * \brief Implements microdescriptors -- an abbreviated description of
+ * less-frequently-changing router information.
+ */
+
#include "or.h"
#include "circuitbuild.h"
#include "config.h"
@@ -840,7 +847,7 @@ microdesc_list_missing_digest256(networkstatus_t *ns, microdesc_cache_t *cache,
/** Launch download requests for microdescriptors as appropriate.
*
* Specifically, we should launch download requests if we are configured to
- * download mirodescriptors, and there are some microdescriptors listed the
+ * download mirodescriptors, and there are some microdescriptors listed in the
* current microdesc consensus that we don't have, and either we never asked
* for them, or we failed to download them but we're willing to retry.
*/
diff --git a/src/or/microdesc.h b/src/or/microdesc.h
index 08571e4bd5..0675e233d6 100644
--- a/src/or/microdesc.h
+++ b/src/or/microdesc.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/networkstatus.c b/src/or/networkstatus.c
index f3a8276689..c5108c2d8a 100644
--- a/src/or/networkstatus.c
+++ b/src/or/networkstatus.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -1526,7 +1526,7 @@ networkstatus_set_current_consensus(const char *consensus,
const unsigned dl_certs = !(flags & NSSET_DONT_DOWNLOAD_CERTS);
const unsigned accept_obsolete = flags & NSSET_ACCEPT_OBSOLETE;
const unsigned require_flavor = flags & NSSET_REQUIRE_FLAVOR;
- const digests_t *current_digests = NULL;
+ const common_digests_t *current_digests = NULL;
consensus_waiting_for_certs_t *waiting = NULL;
time_t current_valid_after = 0;
int free_consensus = 1; /* Free 'c' at the end of the function */
diff --git a/src/or/networkstatus.h b/src/or/networkstatus.h
index 4eab4d83f8..9bbb9a389e 100644
--- a/src/or/networkstatus.h
+++ b/src/or/networkstatus.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/nodelist.c b/src/or/nodelist.c
index 056d5e8cb9..abbb82dfdd 100644
--- a/src/or/nodelist.c
+++ b/src/or/nodelist.c
@@ -1,9 +1,17 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file nodelist.c
+ *
+ * \brief Structures and functions for tracking what we know about the routers
+ * on the Tor network, and correlating information from networkstatus,
+ * routerinfo, and microdescs.
+ */
+
#include "or.h"
#include "address.h"
#include "config.h"
@@ -224,7 +232,6 @@ nodelist_set_consensus(networkstatus_t *ns)
{
const or_options_t *options = get_options();
int authdir = authdir_mode_v3(options);
- int client = !server_mode(options);
init_nodelist();
if (ns->flavor == FLAV_MICRODESC)
@@ -261,7 +268,7 @@ nodelist_set_consensus(networkstatus_t *ns)
node->is_bad_exit = rs->is_bad_exit;
node->is_hs_dir = rs->is_hs_dir;
node->ipv6_preferred = 0;
- if (client && options->ClientPreferIPv6ORPort == 1 &&
+ if (fascist_firewall_prefer_ipv6_orport(options) &&
(tor_addr_is_null(&rs->ipv6_addr) == 0 ||
(node->md && tor_addr_is_null(&node->md->ipv6_addr) == 0)))
node->ipv6_preferred = 1;
@@ -761,6 +768,40 @@ node_exit_policy_is_exact(const node_t *node, sa_family_t family)
return 1;
}
+/* Check if the "addr" and port_field fields from r are a valid non-listening
+ * address/port. If so, set valid to true and add a newly allocated
+ * tor_addr_port_t containing "addr" and port_field to sl.
+ * "addr" is an IPv4 host-order address and port_field is a uint16_t.
+ * r is typically a routerinfo_t or routerstatus_t.
+ */
+#define SL_ADD_NEW_IPV4_AP(r, port_field, sl, valid) \
+ STMT_BEGIN \
+ if (tor_addr_port_is_valid_ipv4h((r)->addr, (r)->port_field, 0)) { \
+ valid = 1; \
+ tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t)); \
+ tor_addr_from_ipv4h(&ap->addr, (r)->addr); \
+ ap->port = (r)->port_field; \
+ smartlist_add((sl), ap); \
+ } \
+ STMT_END
+
+/* Check if the "addr" and port_field fields from r are a valid non-listening
+ * address/port. If so, set valid to true and add a newly allocated
+ * tor_addr_port_t containing "addr" and port_field to sl.
+ * "addr" is a tor_addr_t and port_field is a uint16_t.
+ * r is typically a routerinfo_t or routerstatus_t.
+ */
+#define SL_ADD_NEW_IPV6_AP(r, port_field, sl, valid) \
+ STMT_BEGIN \
+ if (tor_addr_port_is_valid(&(r)->ipv6_addr, (r)->port_field, 0)) { \
+ valid = 1; \
+ tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t)); \
+ tor_addr_copy(&ap->addr, &(r)->ipv6_addr); \
+ ap->port = (r)->port_field; \
+ smartlist_add((sl), ap); \
+ } \
+ STMT_END
+
/** Return list of tor_addr_port_t with all OR ports (in the sense IP
* addr + TCP port) for <b>node</b>. Caller must free all elements
* using tor_free() and free the list using smartlist_free().
@@ -773,30 +814,38 @@ smartlist_t *
node_get_all_orports(const node_t *node)
{
smartlist_t *sl = smartlist_new();
+ int valid = 0;
+ /* Find a valid IPv4 address and port */
if (node->ri != NULL) {
- if (node->ri->addr != 0) {
- tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t));
- tor_addr_from_ipv4h(&ap->addr, node->ri->addr);
- ap->port = node->ri->or_port;
- smartlist_add(sl, ap);
- }
- if (!tor_addr_is_null(&node->ri->ipv6_addr)) {
- tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t));
- tor_addr_copy(&ap->addr, &node->ri->ipv6_addr);
- ap->port = node->ri->or_port;
- smartlist_add(sl, ap);
- }
- } else if (node->rs != NULL) {
- tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t));
- tor_addr_from_ipv4h(&ap->addr, node->rs->addr);
- ap->port = node->rs->or_port;
- smartlist_add(sl, ap);
+ SL_ADD_NEW_IPV4_AP(node->ri, or_port, sl, valid);
+ }
+
+ /* If we didn't find a valid address/port in the ri, try the rs */
+ if (!valid && node->rs != NULL) {
+ SL_ADD_NEW_IPV4_AP(node->rs, or_port, sl, valid);
+ }
+
+ /* Find a valid IPv6 address and port */
+ valid = 0;
+ if (node->ri != NULL) {
+ SL_ADD_NEW_IPV6_AP(node->ri, ipv6_orport, sl, valid);
+ }
+
+ if (!valid && node->rs != NULL) {
+ SL_ADD_NEW_IPV6_AP(node->rs, ipv6_orport, sl, valid);
+ }
+
+ if (!valid && node->md != NULL) {
+ SL_ADD_NEW_IPV6_AP(node->md, ipv6_orport, sl, valid);
}
return sl;
}
+#undef SL_ADD_NEW_IPV4_AP
+#undef SL_ADD_NEW_IPV6_AP
+
/** Wrapper around node_get_prim_orport for backward
compatibility. */
void
@@ -812,9 +861,13 @@ node_get_addr(const node_t *node, tor_addr_t *addr_out)
uint32_t
node_get_prim_addr_ipv4h(const node_t *node)
{
- if (node->ri) {
+ /* Don't check the ORPort or DirPort, as this function isn't port-specific,
+ * and the node might have a valid IPv4 address, yet have a zero
+ * ORPort or DirPort.
+ */
+ if (node->ri && tor_addr_is_valid_ipv4h(node->ri->addr, 0)) {
return node->ri->addr;
- } else if (node->rs) {
+ } else if (node->rs && tor_addr_is_valid_ipv4h(node->rs->addr, 0)) {
return node->rs->addr;
}
return 0;
@@ -825,13 +878,13 @@ node_get_prim_addr_ipv4h(const node_t *node)
void
node_get_address_string(const node_t *node, char *buf, size_t len)
{
- if (node->ri) {
- strlcpy(buf, fmt_addr32(node->ri->addr), len);
- } else if (node->rs) {
+ uint32_t ipv4_addr = node_get_prim_addr_ipv4h(node);
+
+ if (tor_addr_is_valid_ipv4h(ipv4_addr, 0)) {
tor_addr_t addr;
- tor_addr_from_ipv4h(&addr, node->rs->addr);
+ tor_addr_from_ipv4h(&addr, ipv4_addr);
tor_addr_to_str(buf, &addr, len, 0);
- } else {
+ } else if (len > 0) {
buf[0] = '\0';
}
}
@@ -890,30 +943,83 @@ node_get_declared_family(const node_t *node)
return NULL;
}
+/* Does this node have a valid IPv6 address?
+ * Prefer node_has_ipv6_orport() or node_has_ipv6_dirport() for
+ * checking specific ports. */
+int
+node_has_ipv6_addr(const node_t *node)
+{
+ /* Don't check the ORPort or DirPort, as this function isn't port-specific,
+ * and the node might have a valid IPv6 address, yet have a zero
+ * ORPort or DirPort.
+ */
+ if (node->ri && tor_addr_is_valid(&node->ri->ipv6_addr, 0))
+ return 1;
+ if (node->rs && tor_addr_is_valid(&node->rs->ipv6_addr, 0))
+ return 1;
+ if (node->md && tor_addr_is_valid(&node->md->ipv6_addr, 0))
+ return 1;
+
+ return 0;
+}
+
+/* Does this node have a valid IPv6 ORPort? */
+int
+node_has_ipv6_orport(const node_t *node)
+{
+ tor_addr_port_t ipv6_orport;
+ node_get_pref_ipv6_orport(node, &ipv6_orport);
+ return tor_addr_port_is_valid_ap(&ipv6_orport, 0);
+}
+
+/* Does this node have a valid IPv6 DirPort? */
+int
+node_has_ipv6_dirport(const node_t *node)
+{
+ tor_addr_port_t ipv6_dirport;
+ node_get_pref_ipv6_dirport(node, &ipv6_dirport);
+ return tor_addr_port_is_valid_ap(&ipv6_dirport, 0);
+}
+
/** Return 1 if we prefer the IPv6 address and OR TCP port of
* <b>node</b>, else 0.
*
- * We prefer the IPv6 address if the router has an IPv6 address and
+ * We prefer the IPv6 address if the router has an IPv6 address,
+ * and we can use IPv6 addresses, and:
* i) the node_t says that it prefers IPv6
* or
- * ii) the router has no IPv4 address. */
+ * ii) the router has no IPv4 OR address.
+ *
+ * If you don't have a node, consider looking it up.
+ * If there is no node, use fascist_firewall_prefer_ipv6_orport().
+ */
int
-node_ipv6_preferred(const node_t *node)
+node_ipv6_or_preferred(const node_t *node)
{
+ const or_options_t *options = get_options();
tor_addr_port_t ipv4_addr;
node_assert_ok(node);
- if (node->ipv6_preferred || node_get_prim_orport(node, &ipv4_addr)) {
- if (node->ri)
- return !tor_addr_is_null(&node->ri->ipv6_addr);
- if (node->md)
- return !tor_addr_is_null(&node->md->ipv6_addr);
- if (node->rs)
- return !tor_addr_is_null(&node->rs->ipv6_addr);
+ /* XX/teor - node->ipv6_preferred is set from
+ * fascist_firewall_prefer_ipv6_orport() each time the consensus is loaded.
+ */
+ if (!fascist_firewall_use_ipv6(options)) {
+ return 0;
+ } else if (node->ipv6_preferred || node_get_prim_orport(node, &ipv4_addr)) {
+ return node_has_ipv6_orport(node);
}
return 0;
}
+#define RETURN_IPV4_AP(r, port_field, ap_out) \
+ STMT_BEGIN \
+ if (r && tor_addr_port_is_valid_ipv4h((r)->addr, (r)->port_field, 0)) { \
+ tor_addr_from_ipv4h(&(ap_out)->addr, (r)->addr); \
+ (ap_out)->port = (r)->port_field; \
+ return 0; \
+ } \
+ STMT_END
+
/** Copy the primary (IPv4) OR port (IP address and TCP port) for
* <b>node</b> into *<b>ap_out</b>. Return 0 if a valid address and
* port was copied, else return non-zero.*/
@@ -923,20 +1029,10 @@ node_get_prim_orport(const node_t *node, tor_addr_port_t *ap_out)
node_assert_ok(node);
tor_assert(ap_out);
- if (node->ri) {
- if (node->ri->addr == 0 || node->ri->or_port == 0)
- return -1;
- tor_addr_from_ipv4h(&ap_out->addr, node->ri->addr);
- ap_out->port = node->ri->or_port;
- return 0;
- }
- if (node->rs) {
- if (node->rs->addr == 0 || node->rs->or_port == 0)
- return -1;
- tor_addr_from_ipv4h(&ap_out->addr, node->rs->addr);
- ap_out->port = node->rs->or_port;
- return 0;
- }
+ RETURN_IPV4_AP(node->ri, or_port, ap_out);
+ RETURN_IPV4_AP(node->rs, or_port, ap_out);
+ /* Microdescriptors only have an IPv6 address */
+
return -1;
}
@@ -945,21 +1041,12 @@ node_get_prim_orport(const node_t *node, tor_addr_port_t *ap_out)
void
node_get_pref_orport(const node_t *node, tor_addr_port_t *ap_out)
{
- const or_options_t *options = get_options();
tor_assert(ap_out);
- /* Cheap implementation of config option ClientUseIPv6 -- simply
- don't prefer IPv6 when ClientUseIPv6 is not set and we're not a
- client running with bridges. See #4455 for more on this subject.
-
- Note that this filter is too strict since we're hindering not
- only clients! Erring on the safe side shouldn't be a problem
- though. XXX move this check to where outgoing connections are
- made? -LN */
- if ((options->ClientUseIPv6 || options->UseBridges) &&
- node_ipv6_preferred(node)) {
+ if (node_ipv6_or_preferred(node)) {
node_get_pref_ipv6_orport(node, ap_out);
} else {
+ /* the primary ORPort is always on IPv4 */
node_get_prim_orport(node, ap_out);
}
}
@@ -972,20 +1059,115 @@ node_get_pref_ipv6_orport(const node_t *node, tor_addr_port_t *ap_out)
node_assert_ok(node);
tor_assert(ap_out);
- /* We prefer the microdesc over a potential routerstatus here. They
- are not being synchronised atm so there might be a chance that
- they differ at some point, f.ex. when flipping
- UseMicrodescriptors? -LN */
+ /* Prefer routerstatus over microdesc for consistency with the
+ * fascist_firewall_* functions. Also check if the address or port are valid,
+ * and try another alternative if they are not. */
- if (node->ri) {
+ if (node->ri && tor_addr_port_is_valid(&node->ri->ipv6_addr,
+ node->ri->ipv6_orport, 0)) {
tor_addr_copy(&ap_out->addr, &node->ri->ipv6_addr);
ap_out->port = node->ri->ipv6_orport;
- } else if (node->md) {
+ } else if (node->rs && tor_addr_port_is_valid(&node->rs->ipv6_addr,
+ node->rs->ipv6_orport, 0)) {
+ tor_addr_copy(&ap_out->addr, &node->rs->ipv6_addr);
+ ap_out->port = node->rs->ipv6_orport;
+ } else if (node->md && tor_addr_port_is_valid(&node->md->ipv6_addr,
+ node->md->ipv6_orport, 0)) {
tor_addr_copy(&ap_out->addr, &node->md->ipv6_addr);
ap_out->port = node->md->ipv6_orport;
- } else if (node->rs) {
+ } else {
+ tor_addr_make_null(&ap_out->addr, AF_INET6);
+ ap_out->port = 0;
+ }
+}
+
+/** Return 1 if we prefer the IPv6 address and Dir TCP port of
+ * <b>node</b>, else 0.
+ *
+ * We prefer the IPv6 address if the router has an IPv6 address,
+ * and we can use IPv6 addresses, and:
+ * i) the router has no IPv4 Dir address.
+ * or
+ * ii) our preference is for IPv6 Dir addresses.
+ *
+ * If there is no node, use fascist_firewall_prefer_ipv6_dirport().
+ */
+int
+node_ipv6_dir_preferred(const node_t *node)
+{
+ const or_options_t *options = get_options();
+ tor_addr_port_t ipv4_addr;
+ node_assert_ok(node);
+
+ /* node->ipv6_preferred is set from fascist_firewall_prefer_ipv6_orport(),
+ * so we can't use it to determine DirPort IPv6 preference.
+ * This means that bridge clients will use IPv4 DirPorts by default.
+ */
+ if (!fascist_firewall_use_ipv6(options)) {
+ return 0;
+ } else if (node_get_prim_dirport(node, &ipv4_addr)
+ || fascist_firewall_prefer_ipv6_dirport(get_options())) {
+ return node_has_ipv6_dirport(node);
+ }
+ return 0;
+}
+
+/** Copy the primary (IPv4) Dir port (IP address and TCP port) for
+ * <b>node</b> into *<b>ap_out</b>. Return 0 if a valid address and
+ * port was copied, else return non-zero.*/
+int
+node_get_prim_dirport(const node_t *node, tor_addr_port_t *ap_out)
+{
+ node_assert_ok(node);
+ tor_assert(ap_out);
+
+ RETURN_IPV4_AP(node->ri, dir_port, ap_out);
+ RETURN_IPV4_AP(node->rs, dir_port, ap_out);
+ /* Microdescriptors only have an IPv6 address */
+
+ return -1;
+}
+
+#undef RETURN_IPV4_AP
+
+/** Copy the preferred Dir port (IP address and TCP port) for
+ * <b>node</b> into *<b>ap_out</b>. */
+void
+node_get_pref_dirport(const node_t *node, tor_addr_port_t *ap_out)
+{
+ tor_assert(ap_out);
+
+ if (node_ipv6_dir_preferred(node)) {
+ node_get_pref_ipv6_dirport(node, ap_out);
+ } else {
+ /* the primary DirPort is always on IPv4 */
+ node_get_prim_dirport(node, ap_out);
+ }
+}
+
+/** Copy the preferred IPv6 Dir port (IP address and TCP port) for
+ * <b>node</b> into *<b>ap_out</b>. */
+void
+node_get_pref_ipv6_dirport(const node_t *node, tor_addr_port_t *ap_out)
+{
+ node_assert_ok(node);
+ tor_assert(ap_out);
+
+ /* Check if the address or port are valid, and try another alternative if
+ * they are not. Note that microdescriptors have no dir_port. */
+
+ /* Assume IPv4 and IPv6 dirports are the same */
+ if (node->ri && tor_addr_port_is_valid(&node->ri->ipv6_addr,
+ node->ri->dir_port, 0)) {
+ tor_addr_copy(&ap_out->addr, &node->ri->ipv6_addr);
+ ap_out->port = node->ri->dir_port;
+ } else if (node->rs && tor_addr_port_is_valid(&node->rs->ipv6_addr,
+ node->rs->dir_port, 0)) {
tor_addr_copy(&ap_out->addr, &node->rs->ipv6_addr);
- ap_out->port = node->rs->ipv6_orport;
+ ap_out->port = node->rs->dir_port;
+ } else {
+ tor_addr_make_null(&ap_out->addr, AF_INET6);
+ ap_out->port = 0;
}
}
diff --git a/src/or/nodelist.h b/src/or/nodelist.h
index a131e0dd4e..71a91e107f 100644
--- a/src/or/nodelist.h
+++ b/src/or/nodelist.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -55,10 +55,20 @@ void node_get_address_string(const node_t *node, char *cp, size_t len);
long node_get_declared_uptime(const node_t *node);
time_t node_get_published_on(const node_t *node);
const smartlist_t *node_get_declared_family(const node_t *node);
-int node_ipv6_preferred(const node_t *node);
+
+int node_has_ipv6_addr(const node_t *node);
+int node_has_ipv6_orport(const node_t *node);
+int node_has_ipv6_dirport(const node_t *node);
+/* Deprecated - use node_ipv6_or_preferred or node_ipv6_dir_preferred */
+#define node_ipv6_preferred(node) node_ipv6_or_preferred(node)
+int node_ipv6_or_preferred(const node_t *node);
int node_get_prim_orport(const node_t *node, tor_addr_port_t *ap_out);
void node_get_pref_orport(const node_t *node, tor_addr_port_t *ap_out);
void node_get_pref_ipv6_orport(const node_t *node, tor_addr_port_t *ap_out);
+int node_ipv6_dir_preferred(const node_t *node);
+int node_get_prim_dirport(const node_t *node, tor_addr_port_t *ap_out);
+void node_get_pref_dirport(const node_t *node, tor_addr_port_t *ap_out);
+void node_get_pref_ipv6_dirport(const node_t *node, tor_addr_port_t *ap_out);
int node_has_curve25519_onion_key(const node_t *node);
MOCK_DECL(smartlist_t *, nodelist_get_list, (void));
diff --git a/src/or/ntmain.c b/src/or/ntmain.c
index b31ed869d6..ded0e0d307 100644
--- a/src/or/ntmain.c
+++ b/src/or/ntmain.c
@@ -1,8 +1,14 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file ntmain.c
+ *
+ * \brief Entry points for running/configuring Tor as Windows Service.
+ */
+
#ifdef _WIN32
#include "or.h"
diff --git a/src/or/ntmain.h b/src/or/ntmain.h
index eb55a296f6..31bf38c62c 100644
--- a/src/or/ntmain.h
+++ b/src/or/ntmain.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/onion.c b/src/or/onion.c
index 4864792511..d6ef3673dd 100644
--- a/src/or/onion.c
+++ b/src/or/onion.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/onion.h b/src/or/onion.h
index 45454f480d..0275fa00d2 100644
--- a/src/or/onion.h
+++ b/src/or/onion.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/onion_fast.c b/src/or/onion_fast.c
index 22bef4eee0..1f79860596 100644
--- a/src/or/onion_fast.c
+++ b/src/or/onion_fast.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/onion_fast.h b/src/or/onion_fast.h
index d50d503a73..b9626002c3 100644
--- a/src/or/onion_fast.h
+++ b/src/or/onion_fast.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/onion_ntor.c b/src/or/onion_ntor.c
index 539f06f61f..9f97a4cfbe 100644
--- a/src/or/onion_ntor.c
+++ b/src/or/onion_ntor.c
@@ -1,6 +1,12 @@
-/* Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file onion_ntor.c
+ *
+ * \brief Implementation for the ntor handshake.
+ */
+
#include "orconfig.h"
#define ONION_NTOR_PRIVATE
diff --git a/src/or/onion_ntor.h b/src/or/onion_ntor.h
index 0a39c1de16..f637b437fd 100644
--- a/src/or/onion_ntor.h
+++ b/src/or/onion_ntor.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_ONION_NTOR_H
diff --git a/src/or/onion_tap.c b/src/or/onion_tap.c
index 487cbeec04..bfd472351f 100644
--- a/src/or/onion_tap.c
+++ b/src/or/onion_tap.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/onion_tap.h b/src/or/onion_tap.h
index c548b3d99f..a2880f6e98 100644
--- a/src/or/onion_tap.h
+++ b/src/or/onion_tap.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/or.h b/src/or/or.h
index 6faeb34d56..4d145e45ff 100644
--- a/src/or/or.h
+++ b/src/or/or.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -1935,7 +1935,7 @@ typedef struct cached_dir_t {
size_t dir_len; /**< Length of <b>dir</b> (not counting its NUL). */
size_t dir_z_len; /**< Length of <b>dir_z</b>. */
time_t published; /**< When was this object published. */
- digests_t digests; /**< Digests of this object (networkstatus only) */
+ common_digests_t digests; /**< Digests of this object (networkstatus only) */
int refcnt; /**< Reference count for this cached_dir_t. */
} cached_dir_t;
@@ -2414,7 +2414,8 @@ typedef struct node_t {
/* Local info: derived. */
- /** True if the IPv6 OR port is preferred over the IPv4 OR port. */
+ /** True if the IPv6 OR port is preferred over the IPv4 OR port.
+ * XX/teor - can this become out of date if the torrc changes? */
unsigned int ipv6_preferred:1;
/** According to the geoip db what country is this router in? */
@@ -2572,7 +2573,7 @@ typedef struct networkstatus_t {
struct authority_cert_t *cert; /**< Vote only: the voter's certificate. */
/** Digests of this document, as signed. */
- digests_t digests;
+ common_digests_t digests;
/** List of router statuses, sorted by identity digest. For a vote,
* the elements are vote_routerstatus_t; for a consensus, the elements
@@ -4081,12 +4082,24 @@ typedef struct {
* over randomly chosen exits. */
int ClientRejectInternalAddresses;
- /** If true, clients may connect over IPv6. XXX we don't really
- enforce this -- clients _may_ set up outgoing IPv6 connections
- even when this option is not set. */
+ /** If true, clients may connect over IPv4. If false, they will avoid
+ * connecting over IPv4. We enforce this for OR and Dir connections. */
+ int ClientUseIPv4;
+ /** If true, clients may connect over IPv6. If false, they will avoid
+ * connecting over IPv4. We enforce this for OR and Dir connections.
+ * Use fascist_firewall_use_ipv6() instead of accessing this value
+ * directly. */
int ClientUseIPv6;
- /** If true, prefer an IPv6 OR port over an IPv4 one. */
+ /** If true, prefer an IPv6 OR port over an IPv4 one for entry node
+ * connections. If auto, bridge clients prefer IPv6, and other clients
+ * prefer IPv4. Use node_ipv6_or_preferred() instead of accessing this value
+ * directly. */
int ClientPreferIPv6ORPort;
+ /** If true, prefer an IPv6 directory port over an IPv4 one for direct
+ * directory connections. If auto, bridge clients prefer IPv6, and other
+ * clients prefer IPv4. Use fascist_firewall_prefer_ipv6_dirport() instead of
+ * accessing this value directly. */
+ int ClientPreferIPv6DirPort;
/** The length of time that we think a consensus should be fresh. */
int V3AuthVotingInterval;
@@ -5145,6 +5158,8 @@ typedef struct dir_server_t {
char *description;
char *nickname;
char *address; /**< Hostname. */
+ /* XX/teor - why do we duplicate the address and port fields here and in
+ * fake_status? Surely we could just use fake_status (#17867). */
tor_addr_t ipv6_addr; /**< IPv6 address if present; AF_UNSPEC if not */
uint32_t addr; /**< IPv4 address. */
uint16_t dir_port; /**< Directory port. */
@@ -5230,7 +5245,9 @@ typedef enum {
CRN_ALLOW_INVALID = 1<<3,
/* XXXX not used, apparently. */
CRN_WEIGHT_AS_EXIT = 1<<5,
- CRN_NEED_DESC = 1<<6
+ CRN_NEED_DESC = 1<<6,
+ /* On clients, only provide nodes that satisfy ClientPreferIPv6OR */
+ CRN_PREF_ADDR = 1<<7
} router_crn_flags_t;
/** Return value for router_add_to_routerlist() and dirserv_add_descriptor() */
diff --git a/src/or/periodic.c b/src/or/periodic.c
index 109717f738..3fe500ca17 100644
--- a/src/or/periodic.c
+++ b/src/or/periodic.c
@@ -1,6 +1,12 @@
-/* Copyright (c) 2015, The Tor Project, Inc. */
+/* Copyright (c) 2015-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file periodic.c
+ *
+ * \brief Generic backend for handling periodic events.
+ */
+
#include "or.h"
#include "compat_libevent.h"
#include "config.h"
diff --git a/src/or/periodic.h b/src/or/periodic.h
index bab0c91916..021bb4ef5c 100644
--- a/src/or/periodic.h
+++ b/src/or/periodic.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015, The Tor Project, Inc. */
+/* Copyright (c) 2015-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_PERIODIC_H
diff --git a/src/or/policies.c b/src/or/policies.c
index 4706a9da72..f9718b6a95 100644
--- a/src/or/policies.c
+++ b/src/or/policies.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -13,6 +13,7 @@
#include "or.h"
#include "config.h"
#include "dirserv.h"
+#include "networkstatus.h"
#include "nodelist.h"
#include "policies.h"
#include "router.h"
@@ -270,16 +271,76 @@ parse_reachable_addresses(void)
"Error parsing ReachableDirAddresses entry; ignoring.");
ret = -1;
}
+
+ /* We ignore ReachableAddresses for relays */
+ if (!server_mode(options)) {
+ if ((reachable_or_addr_policy
+ && policy_is_reject_star(reachable_or_addr_policy, AF_UNSPEC))
+ || (reachable_dir_addr_policy
+ && policy_is_reject_star(reachable_dir_addr_policy, AF_UNSPEC))) {
+ log_warn(LD_CONFIG, "Tor cannot connect to the Internet if "
+ "ReachableAddresses, ReachableORAddresses, or "
+ "ReachableDirAddresses reject all addresses. Please accept "
+ "some addresses in these options.");
+ } else if (options->ClientUseIPv4 == 1
+ && ((reachable_or_addr_policy
+ && policy_is_reject_star(reachable_or_addr_policy, AF_INET))
+ || (reachable_dir_addr_policy
+ && policy_is_reject_star(reachable_dir_addr_policy, AF_INET)))) {
+ log_warn(LD_CONFIG, "You have set ClientUseIPv4 1, but "
+ "ReachableAddresses, ReachableORAddresses, or "
+ "ReachableDirAddresses reject all IPv4 addresses. "
+ "Tor will not connect using IPv4.");
+ } else if (fascist_firewall_use_ipv6(options)
+ && ((reachable_or_addr_policy
+ && policy_is_reject_star(reachable_or_addr_policy, AF_INET6))
+ || (reachable_dir_addr_policy
+ && policy_is_reject_star(reachable_dir_addr_policy, AF_INET6)))) {
+ log_warn(LD_CONFIG, "You have configured tor to use IPv6 "
+ "(ClientUseIPv6 1 or UseBridges 1), but "
+ "ReachableAddresses, ReachableORAddresses, or "
+ "ReachableDirAddresses reject all IPv6 addresses. "
+ "Tor will not connect using IPv6.");
+ }
+ }
+
return ret;
}
-/** Return true iff the firewall options might block any address:port
- * combination.
+/* Return true iff ClientUseIPv4 0 or ClientUseIPv6 0 might block any OR or Dir
+ * address:port combination. */
+static int
+firewall_is_fascist_impl(void)
+{
+ const or_options_t *options = get_options();
+ /* Assume every non-bridge relay has an IPv4 address.
+ * Clients which use bridges may only know the IPv6 address of their
+ * bridge. */
+ return (options->ClientUseIPv4 == 0
+ || (!fascist_firewall_use_ipv6(options)
+ && options->UseBridges == 1));
+}
+
+/** Return true iff the firewall options, including ClientUseIPv4 0 and
+ * ClientUseIPv6 0, might block any OR address:port combination.
+ * Address preferences may still change which address is selected even if
+ * this function returns false.
*/
int
firewall_is_fascist_or(void)
{
- return reachable_or_addr_policy != NULL;
+ return (reachable_or_addr_policy != NULL || firewall_is_fascist_impl());
+}
+
+/** Return true iff the firewall options, including ClientUseIPv4 0 and
+ * ClientUseIPv6 0, might block any Dir address:port combination.
+ * Address preferences may still change which address is selected even if
+ * this function returns false.
+ */
+int
+firewall_is_fascist_dir(void)
+{
+ return (reachable_dir_addr_policy != NULL || firewall_is_fascist_impl());
}
/** Return true iff <b>policy</b> (possibly NULL) will allow a
@@ -317,49 +378,624 @@ addr_policy_permits_address(uint32_t addr, uint16_t port,
return addr_policy_permits_tor_addr(&a, port, policy);
}
-/** Return true iff we think our firewall will let us make an OR connection to
- * addr:port. */
-int
-fascist_firewall_allows_address_or(const tor_addr_t *addr, uint16_t port)
+/** Return true iff we think our firewall will let us make a connection to
+ * addr:port.
+ *
+ * If we are configured as a server, ignore any address family preference and
+ * just use IPv4.
+ * Otherwise:
+ * - return false for all IPv4 addresses:
+ * - if ClientUseIPv4 is 0, or
+ * if pref_only and pref_ipv6 are both true;
+ * - return false for all IPv6 addresses:
+ * - if fascist_firewall_use_ipv6() is 0, or
+ * - if pref_only is true and pref_ipv6 is false.
+ *
+ * Return false if addr is NULL or tor_addr_is_null(), or if port is 0. */
+STATIC int
+fascist_firewall_allows_address(const tor_addr_t *addr,
+ uint16_t port,
+ smartlist_t *firewall_policy,
+ int pref_only, int pref_ipv6)
{
+ const or_options_t *options = get_options();
+ const int client_mode = !server_mode(options);
+
+ if (!addr || tor_addr_is_null(addr) || !port) {
+ return 0;
+ }
+
+ /* Clients stop using IPv4 if it's disabled. In most cases, clients also
+ * stop using IPv4 if it's not preferred.
+ * Servers must have IPv4 enabled and preferred. */
+ if (tor_addr_family(addr) == AF_INET && client_mode &&
+ (!options->ClientUseIPv4 || (pref_only && pref_ipv6))) {
+ return 0;
+ }
+
+ /* Clients and Servers won't use IPv6 unless it's enabled (and in most
+ * cases, IPv6 must also be preferred before it will be used). */
+ if (tor_addr_family(addr) == AF_INET6 &&
+ (!fascist_firewall_use_ipv6(options) || (pref_only && !pref_ipv6))) {
+ return 0;
+ }
+
return addr_policy_permits_tor_addr(addr, port,
- reachable_or_addr_policy);
+ firewall_policy);
}
-/** Return true iff we think our firewall will let us make an OR connection to
- * <b>ri</b>. */
+/** Is this client configured to use IPv6?
+ * Use node_ipv6_or/dir_preferred() when checking a specific node and OR/Dir
+ * port: it supports bridge client per-node IPv6 preferences.
+ */
int
-fascist_firewall_allows_or(const routerinfo_t *ri)
+fascist_firewall_use_ipv6(const or_options_t *options)
+{
+ /* Clients use IPv6 if it's set, or they use bridges, or they don't use
+ * IPv4 */
+ return (options->ClientUseIPv6 == 1 || options->UseBridges == 1
+ || options->ClientUseIPv4 == 0);
+}
+
+/** Do we prefer to connect to IPv6, ignoring ClientPreferIPv6ORPort and
+ * ClientPreferIPv6DirPort?
+ * If we're unsure, return -1, otherwise, return 1 for IPv6 and 0 for IPv4.
+ */
+static int
+fascist_firewall_prefer_ipv6_impl(const or_options_t *options)
{
- /* XXXX proposal 118 */
- tor_addr_t addr;
- tor_addr_from_ipv4h(&addr, ri->addr);
- return fascist_firewall_allows_address_or(&addr, ri->or_port);
+ /*
+ Cheap implementation of config options ClientUseIPv4 & ClientUseIPv6 --
+ If we're a server or IPv6 is disabled, use IPv4.
+ If IPv4 is disabled, use IPv6.
+ */
+
+ if (server_mode(options) || !fascist_firewall_use_ipv6(options)) {
+ return 0;
+ }
+
+ if (!options->ClientUseIPv4) {
+ return 1;
+ }
+
+ return -1;
}
-/** Return true iff we think our firewall will let us make an OR connection to
- * <b>node</b>. */
+/** Do we prefer to connect to IPv6 ORPorts?
+ * Use node_ipv6_or_preferred() whenever possible: it supports bridge client
+ * per-node IPv6 preferences.
+ */
int
-fascist_firewall_allows_node(const node_t *node)
+fascist_firewall_prefer_ipv6_orport(const or_options_t *options)
{
- if (node->ri) {
- return fascist_firewall_allows_or(node->ri);
- } else if (node->rs) {
- tor_addr_t addr;
- tor_addr_from_ipv4h(&addr, node->rs->addr);
- return fascist_firewall_allows_address_or(&addr, node->rs->or_port);
+ int pref_ipv6 = fascist_firewall_prefer_ipv6_impl(options);
+
+ if (pref_ipv6 >= 0) {
+ return pref_ipv6;
+ }
+
+ /* We can use both IPv4 and IPv6 - which do we prefer? */
+ if (options->ClientPreferIPv6ORPort == 1) {
+ return 1;
+ }
+
+ return 0;
+}
+
+/** Do we prefer to connect to IPv6 DirPorts?
+ *
+ * (node_ipv6_dir_preferred() doesn't support bridge client per-node IPv6
+ * preferences. There's no reason to use it instead of this function.)
+ */
+int
+fascist_firewall_prefer_ipv6_dirport(const or_options_t *options)
+{
+ int pref_ipv6 = fascist_firewall_prefer_ipv6_impl(options);
+
+ if (pref_ipv6 >= 0) {
+ return pref_ipv6;
+ }
+
+ /* We can use both IPv4 and IPv6 - which do we prefer? */
+ if (options->ClientPreferIPv6DirPort == 1) {
+ return 1;
+ }
+
+ return 0;
+}
+
+/** Return true iff we think our firewall will let us make a connection to
+ * addr:port. Uses ReachableORAddresses or ReachableDirAddresses based on
+ * fw_connection.
+ * If pref_only is true, return true if addr is in the client's preferred
+ * address family, which is IPv6 if pref_ipv6 is true, and IPv4 otherwise.
+ * If pref_only is false, ignore pref_ipv6, and return true if addr is allowed.
+ */
+int
+fascist_firewall_allows_address_addr(const tor_addr_t *addr, uint16_t port,
+ firewall_connection_t fw_connection,
+ int pref_only, int pref_ipv6)
+{
+ if (fw_connection == FIREWALL_OR_CONNECTION) {
+ return fascist_firewall_allows_address(addr, port,
+ reachable_or_addr_policy,
+ pref_only, pref_ipv6);
+ } else if (fw_connection == FIREWALL_DIR_CONNECTION) {
+ return fascist_firewall_allows_address(addr, port,
+ reachable_dir_addr_policy,
+ pref_only, pref_ipv6);
} else {
+ log_warn(LD_BUG, "Bad firewall_connection_t value %d.",
+ fw_connection);
+ return 0;
+ }
+}
+
+/** Return true iff we think our firewall will let us make a connection to
+ * addr:port (ap). Uses ReachableORAddresses or ReachableDirAddresses based on
+ * fw_connection.
+ * pref_only and pref_ipv6 work as in fascist_firewall_allows_address_addr().
+ */
+static int
+fascist_firewall_allows_address_ap(const tor_addr_port_t *ap,
+ firewall_connection_t fw_connection,
+ int pref_only, int pref_ipv6)
+{
+ tor_assert(ap);
+ return fascist_firewall_allows_address_addr(&ap->addr, ap->port,
+ fw_connection, pref_only,
+ pref_ipv6);
+}
+
+/* Return true iff we think our firewall will let us make a connection to
+ * ipv4h_or_addr:ipv4_or_port. ipv4h_or_addr is interpreted in host order.
+ * Uses ReachableORAddresses or ReachableDirAddresses based on
+ * fw_connection.
+ * pref_only and pref_ipv6 work as in fascist_firewall_allows_address_addr().
+ */
+static int
+fascist_firewall_allows_address_ipv4h(uint32_t ipv4h_or_addr,
+ uint16_t ipv4_or_port,
+ firewall_connection_t fw_connection,
+ int pref_only, int pref_ipv6)
+{
+ tor_addr_t ipv4_or_addr;
+ tor_addr_from_ipv4h(&ipv4_or_addr, ipv4h_or_addr);
+ return fascist_firewall_allows_address_addr(&ipv4_or_addr, ipv4_or_port,
+ fw_connection, pref_only,
+ pref_ipv6);
+}
+
+/** Return true iff we think our firewall will let us make a connection to
+ * ipv4h_addr/ipv6_addr. Uses ipv4_orport/ipv6_orport/ReachableORAddresses or
+ * ipv4_dirport/ipv6_dirport/ReachableDirAddresses based on IPv4/IPv6 and
+ * <b>fw_connection</b>.
+ * pref_only and pref_ipv6 work as in fascist_firewall_allows_address_addr().
+ */
+static int
+fascist_firewall_allows_base(uint32_t ipv4h_addr, uint16_t ipv4_orport,
+ uint16_t ipv4_dirport,
+ const tor_addr_t *ipv6_addr, uint16_t ipv6_orport,
+ uint16_t ipv6_dirport,
+ firewall_connection_t fw_connection,
+ int pref_only, int pref_ipv6)
+{
+ if (fascist_firewall_allows_address_ipv4h(ipv4h_addr,
+ (fw_connection == FIREWALL_OR_CONNECTION
+ ? ipv4_orport
+ : ipv4_dirport),
+ fw_connection,
+ pref_only, pref_ipv6)) {
return 1;
}
+
+ if (fascist_firewall_allows_address_addr(ipv6_addr,
+ (fw_connection == FIREWALL_OR_CONNECTION
+ ? ipv6_orport
+ : ipv6_dirport),
+ fw_connection,
+ pref_only, pref_ipv6)) {
+ return 1;
+ }
+
+ return 0;
+}
+
+/** Like fascist_firewall_allows_base(), but takes ri. */
+static int
+fascist_firewall_allows_ri_impl(const routerinfo_t *ri,
+ firewall_connection_t fw_connection,
+ int pref_only, int pref_ipv6)
+{
+ if (!ri) {
+ return 0;
+ }
+
+ /* Assume IPv4 and IPv6 DirPorts are the same */
+ return fascist_firewall_allows_base(ri->addr, ri->or_port, ri->dir_port,
+ &ri->ipv6_addr, ri->ipv6_orport,
+ ri->dir_port, fw_connection, pref_only,
+ pref_ipv6);
}
-/** Return true iff we think our firewall will let us make a directory
- * connection to addr:port. */
+/** Like fascist_firewall_allows_rs, but doesn't consult the node. */
+static int
+fascist_firewall_allows_rs_impl(const routerstatus_t *rs,
+ firewall_connection_t fw_connection,
+ int pref_only, int pref_ipv6)
+{
+ if (!rs) {
+ return 0;
+ }
+
+ /* Assume IPv4 and IPv6 DirPorts are the same */
+ return fascist_firewall_allows_base(rs->addr, rs->or_port, rs->dir_port,
+ &rs->ipv6_addr, rs->ipv6_orport,
+ rs->dir_port, fw_connection, pref_only,
+ pref_ipv6);
+}
+
+/** Like fascist_firewall_allows_base(), but takes rs.
+ * Consults the corresponding node, then falls back to rs if node is NULL.
+ * This should only happen when there's no valid consensus, and rs doesn't
+ * correspond to a bridge client's bridge.
+ */
int
-fascist_firewall_allows_address_dir(const tor_addr_t *addr, uint16_t port)
+fascist_firewall_allows_rs(const routerstatus_t *rs,
+ firewall_connection_t fw_connection, int pref_only)
{
- return addr_policy_permits_tor_addr(addr, port,
- reachable_dir_addr_policy);
+ if (!rs) {
+ return 0;
+ }
+
+ const node_t *node = node_get_by_id(rs->identity_digest);
+
+ if (node) {
+ return fascist_firewall_allows_node(node, fw_connection, pref_only);
+ } else {
+ /* There's no node-specific IPv6 preference, so use the generic IPv6
+ * preference instead. */
+ const or_options_t *options = get_options();
+ int pref_ipv6 = (fw_connection == FIREWALL_OR_CONNECTION
+ ? fascist_firewall_prefer_ipv6_orport(options)
+ : fascist_firewall_prefer_ipv6_dirport(options));
+
+ return fascist_firewall_allows_rs_impl(rs, fw_connection, pref_only,
+ pref_ipv6);
+ }
+}
+
+/** Return true iff we think our firewall will let us make a connection to
+ * ipv6_addr:ipv6_orport based on ReachableORAddresses.
+ * If <b>fw_connection</b> is FIREWALL_DIR_CONNECTION, returns 0.
+ * pref_only and pref_ipv6 work as in fascist_firewall_allows_address_addr().
+ */
+static int
+fascist_firewall_allows_md_impl(const microdesc_t *md,
+ firewall_connection_t fw_connection,
+ int pref_only, int pref_ipv6)
+{
+ if (!md) {
+ return 0;
+ }
+
+ /* Can't check dirport, it doesn't have one */
+ if (fw_connection == FIREWALL_DIR_CONNECTION) {
+ return 0;
+ }
+
+ /* Also can't check IPv4, doesn't have that either */
+ return fascist_firewall_allows_address_addr(&md->ipv6_addr, md->ipv6_orport,
+ fw_connection, pref_only,
+ pref_ipv6);
+}
+
+/** Like fascist_firewall_allows_base(), but takes node, and looks up pref_ipv6
+ * from node_ipv6_or/dir_preferred(). */
+int
+fascist_firewall_allows_node(const node_t *node,
+ firewall_connection_t fw_connection,
+ int pref_only)
+{
+ if (!node) {
+ return 0;
+ }
+
+ node_assert_ok(node);
+
+ const int pref_ipv6 = (fw_connection == FIREWALL_OR_CONNECTION
+ ? node_ipv6_or_preferred(node)
+ : node_ipv6_dir_preferred(node));
+
+ /* Sometimes, the rs is missing the IPv6 address info, and we need to go
+ * all the way to the md */
+ if (node->ri && fascist_firewall_allows_ri_impl(node->ri, fw_connection,
+ pref_only, pref_ipv6)) {
+ return 1;
+ } else if (node->rs && fascist_firewall_allows_rs_impl(node->rs,
+ fw_connection,
+ pref_only,
+ pref_ipv6)) {
+ return 1;
+ } else if (node->md && fascist_firewall_allows_md_impl(node->md,
+ fw_connection,
+ pref_only,
+ pref_ipv6)) {
+ return 1;
+ } else {
+ /* If we know nothing, assume it's unreachable, we'll never get an address
+ * to connect to. */
+ return 0;
+ }
+}
+
+/** Like fascist_firewall_allows_rs(), but takes ds. */
+int
+fascist_firewall_allows_dir_server(const dir_server_t *ds,
+ firewall_connection_t fw_connection,
+ int pref_only)
+{
+ if (!ds) {
+ return 0;
+ }
+
+ /* A dir_server_t always has a fake_status. As long as it has the same
+ * addresses/ports in both fake_status and dir_server_t, this works fine.
+ * (See #17867.)
+ * This function relies on fascist_firewall_choose_address_rs looking up the
+ * node if it can, because that will get the latest info for the relay. */
+ return fascist_firewall_allows_rs(&ds->fake_status, fw_connection,
+ pref_only);
+}
+
+/** If a and b are both valid and allowed by fw_connection,
+ * choose one based on want_a and return it.
+ * Otherwise, return whichever is allowed.
+ * Otherwise, return NULL.
+ * pref_only and pref_ipv6 work as in fascist_firewall_allows_address_addr().
+ */
+static const tor_addr_port_t *
+fascist_firewall_choose_address_impl(const tor_addr_port_t *a,
+ const tor_addr_port_t *b,
+ int want_a,
+ firewall_connection_t fw_connection,
+ int pref_only, int pref_ipv6)
+{
+ const tor_addr_port_t *use_a = NULL;
+ const tor_addr_port_t *use_b = NULL;
+
+ if (fascist_firewall_allows_address_ap(a, fw_connection, pref_only,
+ pref_ipv6)) {
+ use_a = a;
+ }
+
+ if (fascist_firewall_allows_address_ap(b, fw_connection, pref_only,
+ pref_ipv6)) {
+ use_b = b;
+ }
+
+ /* If both are allowed */
+ if (use_a && use_b) {
+ /* Choose a if we want it */
+ return (want_a ? use_a : use_b);
+ } else {
+ /* Choose a if we have it */
+ return (use_a ? use_a : use_b);
+ }
+}
+
+/** If a and b are both valid and preferred by fw_connection,
+ * choose one based on want_a and return it.
+ * Otherwise, return whichever is preferred.
+ * If neither are preferred, and pref_only is false:
+ * - If a and b are both allowed by fw_connection,
+ * choose one based on want_a and return it.
+ * - Otherwise, return whichever is preferred.
+ * Otherwise, return NULL. */
+STATIC const tor_addr_port_t *
+fascist_firewall_choose_address(const tor_addr_port_t *a,
+ const tor_addr_port_t *b,
+ int want_a,
+ firewall_connection_t fw_connection,
+ int pref_only, int pref_ipv6)
+{
+ const tor_addr_port_t *pref = fascist_firewall_choose_address_impl(
+ a, b, want_a,
+ fw_connection,
+ 1, pref_ipv6);
+ if (pref_only || pref) {
+ /* If there is a preferred address, use it. If we can only use preferred
+ * addresses, and neither address is preferred, pref will be NULL, and we
+ * want to return NULL, so return it. */
+ return pref;
+ } else {
+ /* If there's no preferred address, and we can return addresses that are
+ * not preferred, use an address that's allowed */
+ return fascist_firewall_choose_address_impl(a, b, want_a, fw_connection,
+ 0, pref_ipv6);
+ }
+}
+
+/** Copy an address and port into <b>ap</b> that we think our firewall will
+ * let us connect to. Uses ipv4_addr/ipv6_addr and
+ * ipv4_orport/ipv6_orport/ReachableORAddresses or
+ * ipv4_dirport/ipv6_dirport/ReachableDirAddresses based on IPv4/IPv6 and
+ * <b>fw_connection</b>.
+ * If pref_only, only choose preferred addresses. In either case, choose
+ * a preferred address before an address that's not preferred.
+ * If both addresses could be chosen (they are both preferred or both allowed)
+ * choose IPv6 if pref_ipv6 is true, otherwise choose IPv4.
+ * If neither address is chosen, return 0, else return 1. */
+static int
+fascist_firewall_choose_address_base(const tor_addr_t *ipv4_addr,
+ uint16_t ipv4_orport,
+ uint16_t ipv4_dirport,
+ const tor_addr_t *ipv6_addr,
+ uint16_t ipv6_orport,
+ uint16_t ipv6_dirport,
+ firewall_connection_t fw_connection,
+ int pref_only,
+ int pref_ipv6,
+ tor_addr_port_t* ap)
+{
+ const tor_addr_port_t *result = NULL;
+ const int want_ipv4 = !pref_ipv6;
+
+ tor_assert(ipv6_addr);
+ tor_assert(ap);
+
+ tor_addr_port_t ipv4_ap;
+ tor_addr_copy(&ipv4_ap.addr, ipv4_addr);
+ ipv4_ap.port = (fw_connection == FIREWALL_OR_CONNECTION
+ ? ipv4_orport
+ : ipv4_dirport);
+
+ tor_addr_port_t ipv6_ap;
+ tor_addr_copy(&ipv6_ap.addr, ipv6_addr);
+ ipv6_ap.port = (fw_connection == FIREWALL_OR_CONNECTION
+ ? ipv6_orport
+ : ipv6_dirport);
+
+ result = fascist_firewall_choose_address(&ipv4_ap, &ipv6_ap,
+ want_ipv4,
+ fw_connection, pref_only,
+ pref_ipv6);
+
+ if (result) {
+ tor_addr_copy(&ap->addr, &result->addr);
+ ap->port = result->port;
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+/** Like fascist_firewall_choose_address_base(), but takes a host-order IPv4
+ * address as the first parameter. */
+static int
+fascist_firewall_choose_address_ipv4h(uint32_t ipv4h_addr,
+ uint16_t ipv4_orport,
+ uint16_t ipv4_dirport,
+ const tor_addr_t *ipv6_addr,
+ uint16_t ipv6_orport,
+ uint16_t ipv6_dirport,
+ firewall_connection_t fw_connection,
+ int pref_only,
+ int pref_ipv6,
+ tor_addr_port_t* ap)
+{
+ tor_addr_t ipv4_addr;
+ tor_addr_from_ipv4h(&ipv4_addr, ipv4h_addr);
+ return fascist_firewall_choose_address_base(&ipv4_addr, ipv4_orport,
+ ipv4_dirport, ipv6_addr,
+ ipv6_orport, ipv6_dirport,
+ fw_connection, pref_only,
+ pref_ipv6, ap);
+}
+
+/** Like fascist_firewall_choose_address_base(), but takes <b>rs</b>.
+ * Consults the corresponding node, then falls back to rs if node is NULL.
+ * This should only happen when there's no valid consensus, and rs doesn't
+ * correspond to a bridge client's bridge.
+ */
+int
+fascist_firewall_choose_address_rs(const routerstatus_t *rs,
+ firewall_connection_t fw_connection,
+ int pref_only, tor_addr_port_t* ap)
+{
+ if (!rs) {
+ return 0;
+ }
+
+ tor_assert(ap);
+
+ const node_t *node = node_get_by_id(rs->identity_digest);
+
+ if (node) {
+ return fascist_firewall_choose_address_node(node, fw_connection, pref_only,
+ ap);
+ } else {
+ /* There's no node-specific IPv6 preference, so use the generic IPv6
+ * preference instead. */
+ const or_options_t *options = get_options();
+ int pref_ipv6 = (fw_connection == FIREWALL_OR_CONNECTION
+ ? fascist_firewall_prefer_ipv6_orport(options)
+ : fascist_firewall_prefer_ipv6_dirport(options));
+
+ /* Assume IPv4 and IPv6 DirPorts are the same.
+ * Assume the IPv6 OR and Dir addresses are the same. */
+ return fascist_firewall_choose_address_ipv4h(rs->addr,
+ rs->or_port,
+ rs->dir_port,
+ &rs->ipv6_addr,
+ rs->ipv6_orport,
+ rs->dir_port,
+ fw_connection,
+ pref_only,
+ pref_ipv6,
+ ap);
+ }
+}
+
+/** Like fascist_firewall_choose_address_base(), but takes <b>node</b>, and
+ * looks up the node's IPv6 preference rather than taking an argument
+ * for pref_ipv6. */
+int
+fascist_firewall_choose_address_node(const node_t *node,
+ firewall_connection_t fw_connection,
+ int pref_only, tor_addr_port_t *ap)
+{
+ if (!node) {
+ return 0;
+ }
+
+ node_assert_ok(node);
+
+ const int pref_ipv6_node = (fw_connection == FIREWALL_OR_CONNECTION
+ ? node_ipv6_or_preferred(node)
+ : node_ipv6_dir_preferred(node));
+
+ tor_addr_port_t ipv4_or_ap;
+ node_get_prim_orport(node, &ipv4_or_ap);
+ tor_addr_port_t ipv4_dir_ap;
+ node_get_prim_dirport(node, &ipv4_dir_ap);
+
+ tor_addr_port_t ipv6_or_ap;
+ node_get_pref_ipv6_orport(node, &ipv6_or_ap);
+ tor_addr_port_t ipv6_dir_ap;
+ node_get_pref_ipv6_dirport(node, &ipv6_dir_ap);
+
+ /* Assume the IPv6 OR and Dir addresses are the same. */
+ return fascist_firewall_choose_address_base(&ipv4_or_ap.addr,
+ ipv4_or_ap.port,
+ ipv4_dir_ap.port,
+ &ipv6_or_ap.addr,
+ ipv6_or_ap.port,
+ ipv6_dir_ap.port,
+ fw_connection,
+ pref_only,
+ pref_ipv6_node,
+ ap);
+}
+
+/** Like fascist_firewall_choose_address_rs(), but takes <b>ds</b>. */
+int
+fascist_firewall_choose_address_dir_server(const dir_server_t *ds,
+ firewall_connection_t fw_connection,
+ int pref_only,
+ tor_addr_port_t *ap)
+{
+ if (!ds) {
+ return 0;
+ }
+
+ /* A dir_server_t always has a fake_status. As long as it has the same
+ * addresses/ports in both fake_status and dir_server_t, this works fine.
+ * (See #17867.)
+ * This function relies on fascist_firewall_choose_address_rs looking up the
+ * node if it can, because that will get the latest info for the relay. */
+ return fascist_firewall_choose_address_rs(&ds->fake_status, fw_connection,
+ pref_only, ap);
}
/** Return 1 if <b>addr</b> is permitted to connect to our dir port,
@@ -1065,19 +1701,21 @@ exit_policy_remove_redundancies(smartlist_t *dest)
/** Reject private helper for policies_parse_exit_policy_internal: rejects
* publicly routable addresses on this exit relay.
*
- * Add reject entries to the linked list *dest:
- * - if configured_addresses is non-NULL, add entries that reject each
- * tor_addr_t* in the list as a destination.
- * - if reject_interface_addresses is true, add entries that reject each
+ * Add reject entries to the linked list *<b>dest</b>:
+ * <ul>
+ * <li>if configured_addresses is non-NULL, add entries that reject each
+ * tor_addr_t in the list as a destination.
+ * <li>if reject_interface_addresses is true, add entries that reject each
* public IPv4 and IPv6 address of each interface on this machine.
- * - if reject_configured_port_addresses is true, add entries that reject
+ * <li>if reject_configured_port_addresses is true, add entries that reject
* each IPv4 and IPv6 address configured for a port.
+ * </ul>
*
* IPv6 entries are only added if ipv6_exit is true. (All IPv6 addresses are
* already blocked by policies_parse_exit_policy_internal if ipv6_exit is
* false.)
*
- * The list *dest is created as needed.
+ * The list in <b>dest</b> is created as needed.
*/
void
policies_parse_exit_policy_reject_private(
diff --git a/src/or/policies.h b/src/or/policies.h
index 007f494482..aaa6fa0a4e 100644
--- a/src/or/policies.h
+++ b/src/or/policies.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -22,13 +22,44 @@
#define EXIT_POLICY_REJECT_PRIVATE (1 << 1)
#define EXIT_POLICY_ADD_DEFAULT (1 << 2)
+typedef enum firewall_connection_t {
+ FIREWALL_OR_CONNECTION = 0,
+ FIREWALL_DIR_CONNECTION = 1
+} firewall_connection_t;
+
typedef int exit_policy_parser_cfg_t;
int firewall_is_fascist_or(void);
-int fascist_firewall_allows_address_or(const tor_addr_t *addr, uint16_t port);
-int fascist_firewall_allows_or(const routerinfo_t *ri);
-int fascist_firewall_allows_node(const node_t *node);
-int fascist_firewall_allows_address_dir(const tor_addr_t *addr, uint16_t port);
+int firewall_is_fascist_dir(void);
+int fascist_firewall_use_ipv6(const or_options_t *options);
+int fascist_firewall_prefer_ipv6_orport(const or_options_t *options);
+int fascist_firewall_prefer_ipv6_dirport(const or_options_t *options);
+
+int fascist_firewall_allows_address_addr(const tor_addr_t *addr,
+ uint16_t port,
+ firewall_connection_t fw_connection,
+ int pref_only, int pref_ipv6);
+
+int fascist_firewall_allows_rs(const routerstatus_t *rs,
+ firewall_connection_t fw_connection,
+ int pref_only);
+int fascist_firewall_allows_node(const node_t *node,
+ firewall_connection_t fw_connection,
+ int pref_only);
+int fascist_firewall_allows_dir_server(const dir_server_t *ds,
+ firewall_connection_t fw_connection,
+ int pref_only);
+
+int fascist_firewall_choose_address_rs(const routerstatus_t *rs,
+ firewall_connection_t fw_connection,
+ int pref_only, tor_addr_port_t* ap);
+int fascist_firewall_choose_address_node(const node_t *node,
+ firewall_connection_t fw_connection,
+ int pref_only, tor_addr_port_t* ap);
+int fascist_firewall_choose_address_dir_server(const dir_server_t *ds,
+ firewall_connection_t fw_connection,
+ int pref_only, tor_addr_port_t* ap);
+
int dir_policy_permits_address(const tor_addr_t *addr);
int socks_policy_permits_address(const tor_addr_t *addr);
int authdir_policy_permits_address(uint32_t addr, uint16_t port);
@@ -94,6 +125,17 @@ addr_policy_result_t compare_tor_addr_to_short_policy(
#ifdef POLICIES_PRIVATE
STATIC void append_exit_policy_string(smartlist_t **policy, const char *more);
+STATIC int fascist_firewall_allows_address(const tor_addr_t *addr,
+ uint16_t port,
+ smartlist_t *firewall_policy,
+ int pref_only, int pref_ipv6);
+STATIC const tor_addr_port_t * fascist_firewall_choose_address(
+ const tor_addr_port_t *a,
+ const tor_addr_port_t *b,
+ int want_a,
+ firewall_connection_t fw_connection,
+ int pref_only, int pref_ipv6);
+
#endif
#endif
diff --git a/src/or/reasons.c b/src/or/reasons.c
index 23ab6041a6..36921cafcd 100644
--- a/src/or/reasons.c
+++ b/src/or/reasons.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/reasons.h b/src/or/reasons.h
index 00a099061b..2e12c93728 100644
--- a/src/or/reasons.h
+++ b/src/or/reasons.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/relay.c b/src/or/relay.c
index aea51a165b..7022c4b37a 100644
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -148,20 +148,15 @@ relay_digest_matches(crypto_digest_t *digest, cell_t *cell)
*
* If <b>encrypt_mode</b> is 1 then encrypt, else decrypt.
*
- * Return -1 if the crypto fails, else return 0.
+ * Returns 0.
*/
static int
relay_crypt_one_payload(crypto_cipher_t *cipher, uint8_t *in,
int encrypt_mode)
{
- int r;
(void)encrypt_mode;
- r = crypto_cipher_crypt_inplace(cipher, (char*) in, CELL_PAYLOAD_SIZE);
+ crypto_cipher_crypt_inplace(cipher, (char*) in, CELL_PAYLOAD_SIZE);
- if (r) {
- log_warn(LD_BUG,"Error during relay encryption");
- return -1;
- }
return 0;
}
diff --git a/src/or/relay.h b/src/or/relay.h
index a4f583d11e..e15551ca51 100644
--- a/src/or/relay.h
+++ b/src/or/relay.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/rendcache.c b/src/or/rendcache.c
index c69671e289..cb8c14b756 100644
--- a/src/or/rendcache.c
+++ b/src/or/rendcache.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015, The Tor Project, Inc. */
+/* Copyright (c) 2015-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -13,6 +13,7 @@
#include "rephist.h"
#include "routerlist.h"
#include "routerparse.h"
+#include "rendcommon.h"
/** Map from service id (as generated by rend_get_service_id) to
* rend_cache_entry_t. */
diff --git a/src/or/rendcache.h b/src/or/rendcache.h
index decb040ee7..867270f996 100644
--- a/src/or/rendcache.h
+++ b/src/or/rendcache.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015, The Tor Project, Inc. */
+/* Copyright (c) 2015-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/rendclient.c b/src/or/rendclient.c
index e812a06ce6..7e1b0e1908 100644
--- a/src/or/rendclient.c
+++ b/src/or/rendclient.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -1367,11 +1367,19 @@ rend_client_get_random_intro_impl(const rend_cache_entry_t *entry,
smartlist_del(usable_nodes, i);
goto again;
}
+#ifdef ENABLE_TOR2WEB_MODE
+ new_extend_info = extend_info_from_node(node, options->Tor2webMode);
+#else
new_extend_info = extend_info_from_node(node, 0);
+#endif
if (!new_extend_info) {
+ const char *alternate_reason = "";
+#ifdef ENABLE_TOR2WEB_MODE
+ alternate_reason = ", or we cannot connect directly to it";
+#endif
log_info(LD_REND, "We don't have a descriptor for the intro-point relay "
- "'%s'; trying another.",
- extend_info_describe(intro->extend_info));
+ "'%s'%s; trying another.",
+ extend_info_describe(intro->extend_info), alternate_reason);
smartlist_del(usable_nodes, i);
goto again;
} else {
diff --git a/src/or/rendclient.h b/src/or/rendclient.h
index 124433ef31..e90dac07ab 100644
--- a/src/or/rendclient.h
+++ b/src/or/rendclient.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/rendcommon.c b/src/or/rendcommon.c
index 8c02b67556..79509cbe2f 100644
--- a/src/or/rendcommon.c
+++ b/src/or/rendcommon.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -17,8 +17,10 @@
#include "rendmid.h"
#include "rendservice.h"
#include "rephist.h"
+#include "router.h"
#include "routerlist.h"
#include "routerparse.h"
+#include "networkstatus.h"
/** Return 0 if one and two are the same service ids, else -1 or 1 */
int
@@ -935,3 +937,75 @@ rend_data_client_create(const char *onion_address, const char *desc_id,
return NULL;
}
+/** Determine the routers that are responsible for <b>id</b> (binary) and
+ * add pointers to those routers' routerstatus_t to <b>responsible_dirs</b>.
+ * Return -1 if we're returning an empty smartlist, else return 0.
+ */
+int
+hid_serv_get_responsible_directories(smartlist_t *responsible_dirs,
+ const char *id)
+{
+ int start, found, n_added = 0, i;
+ networkstatus_t *c = networkstatus_get_latest_consensus();
+ if (!c || !smartlist_len(c->routerstatus_list)) {
+ log_warn(LD_REND, "We don't have a consensus, so we can't perform v2 "
+ "rendezvous operations.");
+ return -1;
+ }
+ tor_assert(id);
+ start = networkstatus_vote_find_entry_idx(c, id, &found);
+ if (start == smartlist_len(c->routerstatus_list)) start = 0;
+ i = start;
+ do {
+ routerstatus_t *r = smartlist_get(c->routerstatus_list, i);
+ if (r->is_hs_dir) {
+ smartlist_add(responsible_dirs, r);
+ if (++n_added == REND_NUMBER_OF_CONSECUTIVE_REPLICAS)
+ return 0;
+ }
+ if (++i == smartlist_len(c->routerstatus_list))
+ i = 0;
+ } while (i != start);
+
+ /* Even though we don't have the desired number of hidden service
+ * directories, be happy if we got any. */
+ return smartlist_len(responsible_dirs) ? 0 : -1;
+}
+
+/** Return true if this node is currently acting as hidden service
+ * directory, false otherwise. */
+int
+hid_serv_acting_as_directory(void)
+{
+ const routerinfo_t *me = router_get_my_routerinfo();
+ if (!me)
+ return 0;
+ return 1;
+}
+
+/** Return true if this node is responsible for storing the descriptor ID
+ * in <b>query</b> and false otherwise. */
+MOCK_IMPL(int, hid_serv_responsible_for_desc_id,
+ (const char *query))
+{
+ const routerinfo_t *me;
+ routerstatus_t *last_rs;
+ const char *my_id, *last_id;
+ int result;
+ smartlist_t *responsible;
+ if (!hid_serv_acting_as_directory())
+ return 0;
+ if (!(me = router_get_my_routerinfo()))
+ return 0; /* This is redundant, but let's be paranoid. */
+ my_id = me->cache_info.identity_digest;
+ responsible = smartlist_new();
+ if (hid_serv_get_responsible_directories(responsible, query) < 0) {
+ smartlist_free(responsible);
+ return 0;
+ }
+ last_rs = smartlist_get(responsible, smartlist_len(responsible)-1);
+ last_id = last_rs->identity_digest;
+ result = rend_id_is_in_interval(my_id, query, last_id);
+ smartlist_free(responsible);
+ return result;
+}
diff --git a/src/or/rendcommon.h b/src/or/rendcommon.h
index 04e34af453..fe45299598 100644
--- a/src/or/rendcommon.h
+++ b/src/or/rendcommon.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -57,6 +57,10 @@ int rend_id_is_in_interval(const char *a, const char *b, const char *c);
void rend_get_descriptor_id_bytes(char *descriptor_id_out,
const char *service_id,
const char *secret_id_part);
+int hid_serv_get_responsible_directories(smartlist_t *responsible_dirs,
+ const char *id);
+int hid_serv_acting_as_directory(void);
+MOCK_DECL(int, hid_serv_responsible_for_desc_id, (const char *id));
rend_data_t *rend_data_dup(const rend_data_t *data);
rend_data_t *rend_data_client_create(const char *onion_address,
diff --git a/src/or/rendmid.c b/src/or/rendmid.c
index cbfbcbe051..a33ad92966 100644
--- a/src/or/rendmid.c
+++ b/src/or/rendmid.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/rendmid.h b/src/or/rendmid.h
index 6bd691a740..10d1287085 100644
--- a/src/or/rendmid.h
+++ b/src/or/rendmid.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/rendservice.c b/src/or/rendservice.c
index 7471c6252f..e9a6c9df31 100644
--- a/src/or/rendservice.c
+++ b/src/or/rendservice.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/rendservice.h b/src/or/rendservice.h
index a16a99cf88..101b37e18d 100644
--- a/src/or/rendservice.h
+++ b/src/or/rendservice.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/rephist.c b/src/or/rephist.c
index d55317947c..8654cd3085 100644
--- a/src/or/rephist.c
+++ b/src/or/rephist.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/rephist.h b/src/or/rephist.h
index f94b4e8ff1..145da97d02 100644
--- a/src/or/rephist.h
+++ b/src/or/rephist.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/replaycache.c b/src/or/replaycache.c
index 82e5c44d3d..23a1737b18 100644
--- a/src/or/replaycache.c
+++ b/src/or/replaycache.c
@@ -1,4 +1,4 @@
- /* Copyright (c) 2012-2015, The Tor Project, Inc. */
+ /* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/*
diff --git a/src/or/replaycache.h b/src/or/replaycache.h
index 9c409f2fd7..64a6caf5f5 100644
--- a/src/or/replaycache.h
+++ b/src/or/replaycache.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/router.c b/src/or/router.c
index 741e1edb22..80732c9036 100644
--- a/src/or/router.c
+++ b/src/or/router.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define ROUTER_PRIVATE
@@ -1293,14 +1293,15 @@ consider_testing_reachability(int test_or, int test_dir)
extend_info_free(ei);
}
+ /* XXX IPv6 self testing */
tor_addr_from_ipv4h(&addr, me->addr);
if (test_dir && !check_whether_dirport_reachable() &&
!connection_get_by_type_addr_port_purpose(
CONN_TYPE_DIR, &addr, me->dir_port,
DIR_PURPOSE_FETCH_SERVERDESC)) {
/* ask myself, via tor, for my server descriptor. */
- directory_initiate_command(&addr,
- me->or_port, me->dir_port,
+ directory_initiate_command(&addr, me->or_port,
+ &addr, me->dir_port,
me->cache_info.identity_digest,
DIR_PURPOSE_FETCH_SERVERDESC,
ROUTER_PURPOSE_GENERAL,
@@ -1739,7 +1740,8 @@ router_upload_dir_desc_to_dirservers(int force)
int
router_compare_to_my_exit_policy(const tor_addr_t *addr, uint16_t port)
{
- if (!router_get_my_routerinfo()) /* make sure desc_routerinfo exists */
+ const routerinfo_t *me = router_get_my_routerinfo();
+ if (!me) /* make sure routerinfo exists */
return -1;
/* make sure it's resolved to something. this way we can't get a
@@ -1747,20 +1749,21 @@ router_compare_to_my_exit_policy(const tor_addr_t *addr, uint16_t port)
if (tor_addr_is_null(addr))
return -1;
- /* look at desc_routerinfo->exit_policy for both the v4 and the v6
- * policies. The exit_policy field in desc_routerinfo is a bit unusual,
- * in that it contains IPv6 and IPv6 entries. We don't want to look
- * at desc_routerinfio->ipv6_exit_policy, since that's a port summary. */
+ /* look at router_get_my_routerinfo()->exit_policy for both the v4 and the
+ * v6 policies. The exit_policy field in router_get_my_routerinfo() is a
+ * bit unusual, in that it contains IPv6 and IPv6 entries. We don't want to
+ * look at router_get_my_routerinfo()->ipv6_exit_policy, since that's a port
+ * summary. */
if ((tor_addr_family(addr) == AF_INET ||
tor_addr_family(addr) == AF_INET6)) {
return compare_tor_addr_to_addr_policy(addr, port,
- desc_routerinfo->exit_policy) != ADDR_POLICY_ACCEPTED;
+ me->exit_policy) != ADDR_POLICY_ACCEPTED;
#if 0
} else if (tor_addr_family(addr) == AF_INET6) {
return get_options()->IPv6Exit &&
desc_routerinfo->ipv6_exit_policy &&
compare_tor_addr_to_short_policy(addr, port,
- desc_routerinfo->ipv6_exit_policy) != ADDR_POLICY_ACCEPTED;
+ me->ipv6_exit_policy) != ADDR_POLICY_ACCEPTED;
#endif
} else {
return -1;
@@ -1772,10 +1775,10 @@ router_compare_to_my_exit_policy(const tor_addr_t *addr, uint16_t port)
MOCK_IMPL(int,
router_my_exit_policy_is_reject_star,(void))
{
- if (!router_get_my_routerinfo()) /* make sure desc_routerinfo exists */
+ if (!router_get_my_routerinfo()) /* make sure routerinfo exists */
return -1;
- return desc_routerinfo->policy_is_reject_star;
+ return router_get_my_routerinfo()->policy_is_reject_star;
}
/** Return true iff I'm a server and <b>digest</b> is equal to
@@ -1834,12 +1837,13 @@ const char *
router_get_my_descriptor(void)
{
const char *body;
- if (!router_get_my_routerinfo())
+ const routerinfo_t *me = router_get_my_routerinfo();
+ if (! me)
return NULL;
- tor_assert(desc_routerinfo->cache_info.saved_location == SAVED_NOWHERE);
- body = signed_descriptor_get_body(&desc_routerinfo->cache_info);
+ tor_assert(me->cache_info.saved_location == SAVED_NOWHERE);
+ body = signed_descriptor_get_body(&me->cache_info);
/* Make sure this is nul-terminated. */
- tor_assert(!body[desc_routerinfo->cache_info.signed_descriptor_len]);
+ tor_assert(!body[me->cache_info.signed_descriptor_len]);
log_debug(LD_GENERAL,"my desc is '%s'", body);
return body;
}
@@ -2242,10 +2246,10 @@ check_descriptor_bandwidth_changed(time_t now)
{
static time_t last_changed = 0;
uint64_t prev, cur;
- if (!desc_routerinfo)
+ if (!router_get_my_routerinfo())
return;
- prev = desc_routerinfo->bandwidthcapacity;
+ prev = router_get_my_routerinfo()->bandwidthcapacity;
cur = we_are_hibernating() ? 0 : rep_hist_bandwidth_assess();
if ((prev != cur && (!prev || !cur)) ||
cur > prev*2 ||
@@ -2299,11 +2303,11 @@ check_descriptor_ipaddress_changed(time_t now)
(void) now;
- if (!desc_routerinfo)
+ if (router_get_my_routerinfo() == NULL)
return;
/* XXXX ipv6 */
- prev = desc_routerinfo->addr;
+ prev = router_get_my_routerinfo()->addr;
if (resolve_my_address(LOG_INFO, options, &cur, &method, &hostname) < 0) {
log_info(LD_CONFIG,"options->Address didn't resolve into an IP.");
return;
@@ -3410,28 +3414,16 @@ router_free_all(void)
/** Return a smartlist of tor_addr_port_t's with all the OR ports of
<b>ri</b>. Note that freeing of the items in the list as well as
- the smartlist itself is the callers responsibility.
-
- XXX duplicating code from node_get_all_orports(). */
+ the smartlist itself is the callers responsibility. */
smartlist_t *
router_get_all_orports(const routerinfo_t *ri)
{
- smartlist_t *sl = smartlist_new();
tor_assert(ri);
-
- if (ri->addr != 0) {
- tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t));
- tor_addr_from_ipv4h(&ap->addr, ri->addr);
- ap->port = ri->or_port;
- smartlist_add(sl, ap);
- }
- if (!tor_addr_is_null(&ri->ipv6_addr)) {
- tor_addr_port_t *ap = tor_malloc(sizeof(tor_addr_port_t));
- tor_addr_copy(&ap->addr, &ri->ipv6_addr);
- ap->port = ri->or_port;
- smartlist_add(sl, ap);
- }
-
- return sl;
+ node_t fake_node;
+ memset(&fake_node, 0, sizeof(fake_node));
+ /* we don't modify ri, fake_node is passed as a const node_t *
+ */
+ fake_node.ri = (routerinfo_t *)ri;
+ return node_get_all_orports(&fake_node);
}
diff --git a/src/or/router.h b/src/or/router.h
index ca590e3217..5165462a13 100644
--- a/src/or/router.h
+++ b/src/or/router.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/routerkeys.c b/src/or/routerkeys.c
index d88bfca13a..34e9fc58ee 100644
--- a/src/or/routerkeys.c
+++ b/src/or/routerkeys.c
@@ -1,6 +1,14 @@
-/* Copyright (c) 2014, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file routerkeys.c
+ *
+ * \brief Functions and structures to handle generating and maintaining the
+ * set of keypairs necessary to be an OR. (Some of the code in router.c
+ * belongs here.)
+ */
+
#include "or.h"
#include "config.h"
#include "router.h"
@@ -927,7 +935,7 @@ generate_ed_link_cert(const or_options_t *options, time_t now)
return -1;
}
- const digests_t *digests = tor_x509_cert_get_cert_digests(link);
+ const common_digests_t *digests = tor_x509_cert_get_cert_digests(link);
if (link_cert_cert &&
! EXPIRES_SOON(link_cert_cert, options->TestingLinkKeySlop) &&
@@ -972,7 +980,7 @@ should_make_new_ed_keys(const or_options_t *options, const time_t now)
if (tor_tls_get_my_certs(1, &link, &id) < 0 || link == NULL)
return 1;
- const digests_t *digests = tor_x509_cert_get_cert_digests(link);
+ const common_digests_t *digests = tor_x509_cert_get_cert_digests(link);
if (!fast_memeq(digests->d[DIGEST_SHA256],
link_cert_cert->signed_key.pubkey,
diff --git a/src/or/routerkeys.h b/src/or/routerkeys.h
index 0e1c62571f..be9b19aea8 100644
--- a/src/or/routerkeys.h
+++ b/src/or/routerkeys.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_ROUTERKEYS_H
diff --git a/src/or/routerlist.c b/src/or/routerlist.c
index 139a2924fc..7f20aa9c3e 100644
--- a/src/or/routerlist.c
+++ b/src/or/routerlist.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -13,6 +13,7 @@
#define ROUTERLIST_PRIVATE
#include "or.h"
+#include "backtrace.h"
#include "crypto_ed25519.h"
#include "circuitstats.h"
#include "config.h"
@@ -1460,9 +1461,190 @@ router_pick_dirserver_generic(smartlist_t *sourcelist,
return router_pick_trusteddirserver_impl(sourcelist, type, flags, NULL);
}
+/* Check if we already have a directory fetch from ap, for serverdesc
+ * (including extrainfo) or microdesc documents.
+ * If so, return 1, if not, return 0.
+ * Also returns 0 if addr is NULL, tor_addr_is_null(addr), or dir_port is 0.
+ */
+STATIC int
+router_is_already_dir_fetching(const tor_addr_port_t *ap, int serverdesc,
+ int microdesc)
+{
+ if (!ap || tor_addr_is_null(&ap->addr) || !ap->port) {
+ return 0;
+ }
+
+ /* XX/teor - we're not checking tunnel connections here, see #17848
+ */
+ if (serverdesc && (
+ connection_get_by_type_addr_port_purpose(
+ CONN_TYPE_DIR, &ap->addr, ap->port, DIR_PURPOSE_FETCH_SERVERDESC)
+ || connection_get_by_type_addr_port_purpose(
+ CONN_TYPE_DIR, &ap->addr, ap->port, DIR_PURPOSE_FETCH_EXTRAINFO))) {
+ return 1;
+ }
+
+ if (microdesc && (
+ connection_get_by_type_addr_port_purpose(
+ CONN_TYPE_DIR, &ap->addr, ap->port, DIR_PURPOSE_FETCH_MICRODESC))) {
+ return 1;
+ }
+
+ return 0;
+}
+
+/* Check if we already have a directory fetch from ds, for serverdesc
+ * (including extrainfo) or microdesc documents.
+ * If so, return 1, if not, return 0.
+ */
+static int
+router_is_already_dir_fetching_ds(const dir_server_t *ds,
+ int serverdesc,
+ int microdesc)
+{
+ tor_addr_port_t ipv4_dir_ap, ipv6_dir_ap;
+
+ /* Assume IPv6 DirPort is the same as IPv4 DirPort */
+ tor_addr_from_ipv4h(&ipv4_dir_ap.addr, ds->addr);
+ ipv4_dir_ap.port = ds->dir_port;
+ tor_addr_copy(&ipv6_dir_ap.addr, &ds->ipv6_addr);
+ ipv6_dir_ap.port = ds->dir_port;
+
+ return (router_is_already_dir_fetching(&ipv4_dir_ap, serverdesc, microdesc)
+ || router_is_already_dir_fetching(&ipv6_dir_ap, serverdesc, microdesc));
+}
+
+/* Check if we already have a directory fetch from rs, for serverdesc
+ * (including extrainfo) or microdesc documents.
+ * If so, return 1, if not, return 0.
+ */
+static int
+router_is_already_dir_fetching_rs(const routerstatus_t *rs,
+ int serverdesc,
+ int microdesc)
+{
+ tor_addr_port_t ipv4_dir_ap, ipv6_dir_ap;
+
+ /* Assume IPv6 DirPort is the same as IPv4 DirPort */
+ tor_addr_from_ipv4h(&ipv4_dir_ap.addr, rs->addr);
+ ipv4_dir_ap.port = rs->dir_port;
+ tor_addr_copy(&ipv6_dir_ap.addr, &rs->ipv6_addr);
+ ipv6_dir_ap.port = rs->dir_port;
+
+ return (router_is_already_dir_fetching(&ipv4_dir_ap, serverdesc, microdesc)
+ || router_is_already_dir_fetching(&ipv6_dir_ap, serverdesc, microdesc));
+}
+
+#ifndef LOG_FALSE_POSITIVES_DURING_BOOTSTRAP
+#define LOG_FALSE_POSITIVES_DURING_BOOTSTRAP 0
+#endif
+
+/* Log a message if rs is not found or not a preferred address */
+static void
+router_picked_poor_directory_log(const routerstatus_t *rs)
+{
+ const networkstatus_t *usable_consensus;
+ usable_consensus = networkstatus_get_reasonably_live_consensus(time(NULL),
+ usable_consensus_flavor());
+
+#if !LOG_FALSE_POSITIVES_DURING_BOOTSTRAP
+ /* Don't log early in the bootstrap process, it's normal to pick from a
+ * small pool of nodes. Of course, this won't help if we're trying to
+ * diagnose bootstrap issues. */
+ if (!smartlist_len(nodelist_get_list()) || !usable_consensus
+ || !router_have_minimum_dir_info()) {
+ return;
+ }
+#endif
+
+ /* We couldn't find a node, or the one we have doesn't fit our preferences.
+ * This might be a bug. */
+ if (!rs) {
+ log_warn(LD_BUG, "Firewall denied all OR and Dir addresses for all relays "
+ "when searching for a directory.");
+ log_backtrace(LOG_WARN, LD_BUG, "Node search initiated by");
+ } else if (!fascist_firewall_allows_rs(rs, FIREWALL_OR_CONNECTION, 1)
+ && !fascist_firewall_allows_rs(rs, FIREWALL_DIR_CONNECTION, 1)
+ ) {
+ log_info(LD_BUG, "Selected a directory %s with non-preferred OR and Dir "
+ "addresses for launching a connection: "
+ "IPv4 %s OR %d Dir %d IPv6 %s OR %d Dir %d",
+ routerstatus_describe(rs),
+ fmt_addr32(rs->addr), rs->or_port,
+ rs->dir_port, fmt_addr(&rs->ipv6_addr),
+ rs->ipv6_orport, rs->dir_port);
+ log_backtrace(LOG_INFO, LD_BUG, "Node search initiated by");
+ }
+}
+
+#undef LOG_FALSE_POSITIVES_DURING_BOOTSTRAP
+
/** How long do we avoid using a directory server after it's given us a 503? */
#define DIR_503_TIMEOUT (60*60)
+/* Common retry code for router_pick_directory_server_impl and
+ * router_pick_trusteddirserver_impl. Retry with the non-preferred IP version.
+ * Must be called before RETRY_WITHOUT_EXCLUDE().
+ *
+ * If we got no result, and we are applying IP preferences, and we are a
+ * client that could use an alternate IP version, try again with the
+ * opposite preferences. */
+#define RETRY_ALTERNATE_IP_VERSION(retry_label) \
+ STMT_BEGIN \
+ if (result == NULL && try_ip_pref && options->ClientUseIPv4 \
+ && fascist_firewall_use_ipv6(options) && !server_mode(options) \
+ && n_not_preferred && !n_busy) { \
+ n_excluded = 0; \
+ n_busy = 0; \
+ try_ip_pref = 0; \
+ n_not_preferred = 0; \
+ goto retry_label; \
+ } \
+ STMT_END \
+
+/* Common retry code for router_pick_directory_server_impl and
+ * router_pick_trusteddirserver_impl. Retry without excluding nodes, but with
+ * the preferred IP version. Must be called after RETRY_ALTERNATE_IP_VERSION().
+ *
+ * If we got no result, and we are excluding nodes, and StrictNodes is
+ * not set, try again without excluding nodes. */
+#define RETRY_WITHOUT_EXCLUDE(retry_label) \
+ STMT_BEGIN \
+ if (result == NULL && try_excluding && !options->StrictNodes \
+ && n_excluded && !n_busy) { \
+ try_excluding = 0; \
+ n_excluded = 0; \
+ n_busy = 0; \
+ try_ip_pref = 1; \
+ n_not_preferred = 0; \
+ goto retry_label; \
+ } \
+ STMT_END
+
+/* When iterating through the routerlist, can OR address/port preference
+ * and reachability checks be skipped?
+ */
+static int
+router_skip_or_reachability(const or_options_t *options, int try_ip_pref)
+{
+ /* Servers always have and prefer IPv4.
+ * And if clients are checking against the firewall for reachability only,
+ * but there's no firewall, don't bother checking */
+ return server_mode(options) || (!try_ip_pref && !firewall_is_fascist_or());
+}
+
+/* When iterating through the routerlist, can Dir address/port preference
+ * and reachability checks be skipped?
+ */
+static int
+router_skip_dir_reachability(const or_options_t *options, int try_ip_pref)
+{
+ /* Servers always have and prefer IPv4.
+ * And if clients are checking against the firewall for reachability only,
+ * but there's no firewall, don't bother checking */
+ return server_mode(options) || (!try_ip_pref && !firewall_is_fascist_dir());
+}
+
/** Pick a random running valid directory server/mirror from our
* routerlist. Arguments are as for router_pick_directory_server(), except:
*
@@ -1487,11 +1669,12 @@ router_pick_directory_server_impl(dirinfo_type_t type, int flags,
const int no_microdesc_fetching = (flags & PDS_NO_EXISTING_MICRODESC_FETCH);
const int for_guard = (flags & PDS_FOR_GUARD);
int try_excluding = 1, n_excluded = 0, n_busy = 0;
+ int try_ip_pref = 1, n_not_preferred = 0;
if (!consensus)
return NULL;
- retry_without_exclude:
+ retry_search:
direct = smartlist_new();
tunnel = smartlist_new();
@@ -1500,11 +1683,13 @@ router_pick_directory_server_impl(dirinfo_type_t type, int flags,
overloaded_direct = smartlist_new();
overloaded_tunnel = smartlist_new();
+ const int skip_or = router_skip_or_reachability(options, try_ip_pref);
+ const int skip_dir = router_skip_dir_reachability(options, try_ip_pref);
+
/* Find all the running dirservers we know about. */
SMARTLIST_FOREACH_BEGIN(nodelist_get_list(), const node_t *, node) {
int is_trusted, is_trusted_extrainfo;
int is_overloaded;
- tor_addr_t addr;
const routerstatus_t *status = node->rs;
const country_t country = node->country;
if (!status)
@@ -1535,36 +1720,34 @@ router_pick_directory_server_impl(dirinfo_type_t type, int flags,
continue;
}
- /* XXXX IP6 proposal 118 */
- tor_addr_from_ipv4h(&addr, status->addr);
-
- if (no_serverdesc_fetching && (
- connection_get_by_type_addr_port_purpose(
- CONN_TYPE_DIR, &addr, status->dir_port, DIR_PURPOSE_FETCH_SERVERDESC)
- || connection_get_by_type_addr_port_purpose(
- CONN_TYPE_DIR, &addr, status->dir_port, DIR_PURPOSE_FETCH_EXTRAINFO)
- )) {
- ++n_busy;
- continue;
- }
-
- if (no_microdesc_fetching && connection_get_by_type_addr_port_purpose(
- CONN_TYPE_DIR, &addr, status->dir_port, DIR_PURPOSE_FETCH_MICRODESC)
- ) {
+ if (router_is_already_dir_fetching_rs(status,
+ no_serverdesc_fetching,
+ no_microdesc_fetching)) {
++n_busy;
continue;
}
is_overloaded = status->last_dir_503_at + DIR_503_TIMEOUT > now;
- if ((!fascistfirewall ||
- fascist_firewall_allows_address_or(&addr, status->or_port)))
+ /* Clients use IPv6 addresses if the server has one and the client
+ * prefers IPv6.
+ * Add the router if its preferred address and port are reachable.
+ * If we don't get any routers, we'll try again with the non-preferred
+ * address for each router (if any). (To ensure correct load-balancing
+ * we try routers that only have one address both times.)
+ */
+ if (!fascistfirewall || skip_or ||
+ fascist_firewall_allows_rs(status, FIREWALL_OR_CONNECTION,
+ try_ip_pref))
smartlist_add(is_trusted ? trusted_tunnel :
is_overloaded ? overloaded_tunnel : tunnel, (void*)node);
- else if (!fascistfirewall ||
- fascist_firewall_allows_address_dir(&addr, status->dir_port))
+ else if (skip_dir ||
+ fascist_firewall_allows_rs(status, FIREWALL_DIR_CONNECTION,
+ try_ip_pref))
smartlist_add(is_trusted ? trusted_direct :
is_overloaded ? overloaded_direct : direct, (void*)node);
+ else if (!tor_addr_is_null(&status->ipv6_addr))
+ ++n_not_preferred;
} SMARTLIST_FOREACH_END(node);
if (smartlist_len(tunnel)) {
@@ -1593,19 +1776,15 @@ router_pick_directory_server_impl(dirinfo_type_t type, int flags,
smartlist_free(overloaded_direct);
smartlist_free(overloaded_tunnel);
- if (result == NULL && try_excluding && !options->StrictNodes && n_excluded
- && !n_busy) {
- /* If we got no result, and we are excluding nodes, and StrictNodes is
- * not set, try again without excluding nodes. */
- try_excluding = 0;
- n_excluded = 0;
- n_busy = 0;
- goto retry_without_exclude;
- }
+ RETRY_ALTERNATE_IP_VERSION(retry_search);
+
+ RETRY_WITHOUT_EXCLUDE(retry_search);
if (n_busy_out)
*n_busy_out = n_busy;
+ router_picked_poor_directory_log(result ? result->rs : NULL);
+
return result ? result->rs : NULL;
}
@@ -1656,22 +1835,25 @@ router_pick_trusteddirserver_impl(const smartlist_t *sourcelist,
smartlist_t *pick_from;
int n_busy = 0;
int try_excluding = 1, n_excluded = 0;
+ int try_ip_pref = 1, n_not_preferred = 0;
if (!sourcelist)
return NULL;
- retry_without_exclude:
+ retry_search:
direct = smartlist_new();
tunnel = smartlist_new();
overloaded_direct = smartlist_new();
overloaded_tunnel = smartlist_new();
+ const int skip_or = router_skip_or_reachability(options, try_ip_pref);
+ const int skip_dir = router_skip_dir_reachability(options, try_ip_pref);
+
SMARTLIST_FOREACH_BEGIN(sourcelist, const dir_server_t *, d)
{
int is_overloaded =
d->fake_status.last_dir_503_at + DIR_503_TIMEOUT > now;
- tor_addr_t addr;
if (!d->is_running) continue;
if ((type & d->type) == 0)
continue;
@@ -1687,35 +1869,29 @@ router_pick_trusteddirserver_impl(const smartlist_t *sourcelist,
continue;
}
- /* XXXX IP6 proposal 118 */
- tor_addr_from_ipv4h(&addr, d->addr);
-
- if (no_serverdesc_fetching) {
- if (connection_get_by_type_addr_port_purpose(
- CONN_TYPE_DIR, &addr, d->dir_port, DIR_PURPOSE_FETCH_SERVERDESC)
- || connection_get_by_type_addr_port_purpose(
- CONN_TYPE_DIR, &addr, d->dir_port, DIR_PURPOSE_FETCH_EXTRAINFO)) {
- //log_debug(LD_DIR, "We have an existing connection to fetch "
- // "descriptor from %s; delaying",d->description);
- ++n_busy;
- continue;
- }
- }
- if (no_microdesc_fetching) {
- if (connection_get_by_type_addr_port_purpose(
- CONN_TYPE_DIR, &addr, d->dir_port, DIR_PURPOSE_FETCH_MICRODESC)) {
- ++n_busy;
- continue;
- }
+ if (router_is_already_dir_fetching_ds(d, no_serverdesc_fetching,
+ no_microdesc_fetching)) {
+ ++n_busy;
+ continue;
}
- if (d->or_port &&
- (!fascistfirewall ||
- fascist_firewall_allows_address_or(&addr, d->or_port)))
+ /* Clients use IPv6 addresses if the server has one and the client
+ * prefers IPv6.
+ * Add the router if its preferred address and port are reachable.
+ * If we don't get any routers, we'll try again with the non-preferred
+ * address for each router (if any). (To ensure correct load-balancing
+ * we try routers that only have one address both times.)
+ */
+ if (!fascistfirewall || skip_or ||
+ fascist_firewall_allows_dir_server(d, FIREWALL_OR_CONNECTION,
+ try_ip_pref))
smartlist_add(is_overloaded ? overloaded_tunnel : tunnel, (void*)d);
- else if (!fascistfirewall ||
- fascist_firewall_allows_address_dir(&addr, d->dir_port))
+ else if (skip_dir ||
+ fascist_firewall_allows_dir_server(d, FIREWALL_DIR_CONNECTION,
+ try_ip_pref))
smartlist_add(is_overloaded ? overloaded_direct : direct, (void*)d);
+ else if (!tor_addr_is_null(&d->ipv6_addr))
+ ++n_not_preferred;
}
SMARTLIST_FOREACH_END(d);
@@ -1742,19 +1918,14 @@ router_pick_trusteddirserver_impl(const smartlist_t *sourcelist,
smartlist_free(overloaded_direct);
smartlist_free(overloaded_tunnel);
- if (result == NULL && try_excluding && !options->StrictNodes && n_excluded
- && !n_busy) {
- /* If we got no result, and we are excluding nodes, and StrictNodes is
- * not set, try again without excluding nodes. */
- try_excluding = 0;
- n_excluded = 0;
- n_busy = 0;
- goto retry_without_exclude;
- }
+ RETRY_ALTERNATE_IP_VERSION(retry_search);
+
+ RETRY_WITHOUT_EXCLUDE(retry_search);
+
+ router_picked_poor_directory_log(result);
if (n_busy_out)
*n_busy_out = n_busy;
-
return result;
}
@@ -1824,8 +1995,12 @@ routerlist_add_node_and_family(smartlist_t *sl, const routerinfo_t *router)
void
router_add_running_nodes_to_smartlist(smartlist_t *sl, int allow_invalid,
int need_uptime, int need_capacity,
- int need_guard, int need_desc)
-{ /* XXXX MOVE */
+ int need_guard, int need_desc,
+ int pref_addr)
+{
+ const int check_reach = !router_skip_or_reachability(get_options(),
+ pref_addr);
+ /* XXXX MOVE */
SMARTLIST_FOREACH_BEGIN(nodelist_get_list(), const node_t *, node) {
if (!node->is_running ||
(!node->is_valid && !allow_invalid))
@@ -1836,6 +2011,11 @@ router_add_running_nodes_to_smartlist(smartlist_t *sl, int allow_invalid,
continue;
if (node_is_unreliable(node, need_uptime, need_capacity, need_guard))
continue;
+ /* Choose a node with an OR address that matches the firewall rules */
+ if (check_reach && !fascist_firewall_allows_node(node,
+ FIREWALL_OR_CONNECTION,
+ pref_addr))
+ continue;
smartlist_add(sl, (void *)node);
} SMARTLIST_FOREACH_END(node);
@@ -2297,6 +2477,10 @@ node_sl_choose_by_bandwidth(const smartlist_t *sl,
* If <b>CRN_NEED_DESC</b> is set in flags, we only consider nodes that
* have a routerinfo or microdescriptor -- that is, enough info to be
* used to build a circuit.
+ * If <b>CRN_PREF_ADDR</b> is set in flags, we only consider nodes that
+ * have an address that is preferred by the ClientPreferIPv6ORPort setting
+ * (regardless of this flag, we exclude nodes that aren't allowed by the
+ * firewall, including ClientUseIPv4 0 and fascist_firewall_use_ipv6() == 0).
*/
const node_t *
router_choose_random_node(smartlist_t *excludedsmartlist,
@@ -2309,6 +2493,7 @@ router_choose_random_node(smartlist_t *excludedsmartlist,
const int allow_invalid = (flags & CRN_ALLOW_INVALID) != 0;
const int weight_for_exit = (flags & CRN_WEIGHT_AS_EXIT) != 0;
const int need_desc = (flags & CRN_NEED_DESC) != 0;
+ const int pref_addr = (flags & CRN_PREF_ADDR) != 0;
smartlist_t *sl=smartlist_new(),
*excludednodes=smartlist_new();
@@ -2334,7 +2519,7 @@ router_choose_random_node(smartlist_t *excludedsmartlist,
router_add_running_nodes_to_smartlist(sl, allow_invalid,
need_uptime, need_capacity,
- need_guard, need_desc);
+ need_guard, need_desc, pref_addr);
log_debug(LD_CIRC,
"We found %d running nodes.",
smartlist_len(sl));
@@ -2363,7 +2548,7 @@ router_choose_random_node(smartlist_t *excludedsmartlist,
choice = node_sl_choose_by_bandwidth(sl, rule);
smartlist_free(sl);
- if (!choice && (need_uptime || need_capacity || need_guard)) {
+ if (!choice && (need_uptime || need_capacity || need_guard || pref_addr)) {
/* try once more -- recurse but with fewer restrictions. */
log_info(LD_CIRC,
"We couldn't find any live%s%s%s routers; falling back "
@@ -2371,7 +2556,8 @@ router_choose_random_node(smartlist_t *excludedsmartlist,
need_capacity?", fast":"",
need_uptime?", stable":"",
need_guard?", guard":"");
- flags &= ~ (CRN_NEED_UPTIME|CRN_NEED_CAPACITY|CRN_NEED_GUARD);
+ flags &= ~ (CRN_NEED_UPTIME|CRN_NEED_CAPACITY|CRN_NEED_GUARD|
+ CRN_PREF_ADDR);
choice = router_choose_random_node(
excludedsmartlist, excludedset, flags);
}
@@ -4266,7 +4452,7 @@ clear_dir_servers(void)
/** For every current directory connection whose purpose is <b>purpose</b>,
* and where the resource being downloaded begins with <b>prefix</b>, split
* rest of the resource into base16 fingerprints (or base64 fingerprints if
- * purpose==DIR_PURPPOSE_FETCH_MICRODESC), decode them, and set the
+ * purpose==DIR_PURPOSE_FETCH_MICRODESC), decode them, and set the
* corresponding elements of <b>result</b> to a nonzero value.
*/
static void
@@ -5209,77 +5395,3 @@ refresh_all_country_info(void)
nodelist_refresh_countries();
}
-
-/** Determine the routers that are responsible for <b>id</b> (binary) and
- * add pointers to those routers' routerstatus_t to <b>responsible_dirs</b>.
- * Return -1 if we're returning an empty smartlist, else return 0.
- */
-int
-hid_serv_get_responsible_directories(smartlist_t *responsible_dirs,
- const char *id)
-{
- int start, found, n_added = 0, i;
- networkstatus_t *c = networkstatus_get_latest_consensus();
- if (!c || !smartlist_len(c->routerstatus_list)) {
- log_warn(LD_REND, "We don't have a consensus, so we can't perform v2 "
- "rendezvous operations.");
- return -1;
- }
- tor_assert(id);
- start = networkstatus_vote_find_entry_idx(c, id, &found);
- if (start == smartlist_len(c->routerstatus_list)) start = 0;
- i = start;
- do {
- routerstatus_t *r = smartlist_get(c->routerstatus_list, i);
- if (r->is_hs_dir) {
- smartlist_add(responsible_dirs, r);
- if (++n_added == REND_NUMBER_OF_CONSECUTIVE_REPLICAS)
- return 0;
- }
- if (++i == smartlist_len(c->routerstatus_list))
- i = 0;
- } while (i != start);
-
- /* Even though we don't have the desired number of hidden service
- * directories, be happy if we got any. */
- return smartlist_len(responsible_dirs) ? 0 : -1;
-}
-
-/** Return true if this node is currently acting as hidden service
- * directory, false otherwise. */
-int
-hid_serv_acting_as_directory(void)
-{
- const routerinfo_t *me = router_get_my_routerinfo();
- if (!me)
- return 0;
- return 1;
-}
-
-/** Return true if this node is responsible for storing the descriptor ID
- * in <b>query</b> and false otherwise. */
-MOCK_IMPL(int, hid_serv_responsible_for_desc_id,
- (const char *query))
-{
- const routerinfo_t *me;
- routerstatus_t *last_rs;
- const char *my_id, *last_id;
- int result;
- smartlist_t *responsible;
- if (!hid_serv_acting_as_directory())
- return 0;
- if (!(me = router_get_my_routerinfo()))
- return 0; /* This is redundant, but let's be paranoid. */
- my_id = me->cache_info.identity_digest;
- responsible = smartlist_new();
- if (hid_serv_get_responsible_directories(responsible, query) < 0) {
- smartlist_free(responsible);
- return 0;
- }
- last_rs = smartlist_get(responsible, smartlist_len(responsible)-1);
- last_id = last_rs->identity_digest;
- result = rend_id_is_in_interval(my_id, query, last_id);
- smartlist_free(responsible);
- return result;
-}
-
diff --git a/src/or/routerlist.h b/src/or/routerlist.h
index dd88aeb179..bc48c2087c 100644
--- a/src/or/routerlist.h
+++ b/src/or/routerlist.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -61,7 +61,8 @@ void router_reset_status_download_failures(void);
int routers_have_same_or_addrs(const routerinfo_t *r1, const routerinfo_t *r2);
void router_add_running_nodes_to_smartlist(smartlist_t *sl, int allow_invalid,
int need_uptime, int need_capacity,
- int need_guard, int need_desc);
+ int need_guard, int need_desc,
+ int pref_addr);
const routerinfo_t *routerlist_find_my_routerinfo(void);
uint32_t router_get_advertised_bandwidth(const routerinfo_t *router);
@@ -201,11 +202,6 @@ void routers_sort_by_identity(smartlist_t *routers);
void refresh_all_country_info(void);
-int hid_serv_get_responsible_directories(smartlist_t *responsible_dirs,
- const char *id);
-int hid_serv_acting_as_directory(void);
-MOCK_DECL(int, hid_serv_responsible_for_desc_id, (const char *id));
-
void list_pending_microdesc_downloads(digest256map_t *result);
void launch_descriptor_downloads(int purpose,
smartlist_t *downloadable,
@@ -245,6 +241,8 @@ MOCK_DECL(STATIC was_router_added_t, extrainfo_insert,
MOCK_DECL(STATIC void, initiate_descriptor_downloads,
(const routerstatus_t *source, int purpose, smartlist_t *digests,
int lo, int hi, int pds_flags));
+STATIC int router_is_already_dir_fetching(const tor_addr_port_t *ap,
+ int serverdesc, int microdesc);
#endif
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index fafba96e95..c4325e3e1e 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -538,7 +538,7 @@ static int router_get_hash_impl(const char *s, size_t s_len, char *digest,
char end_char,
digest_algorithm_t alg);
static int router_get_hashes_impl(const char *s, size_t s_len,
- digests_t *digests,
+ common_digests_t *digests,
const char *start_str, const char *end_str,
char end_char);
static void token_clear(directory_token_t *tok);
@@ -638,7 +638,7 @@ router_get_router_hash(const char *s, size_t s_len, char *digest)
/** Set <b>digests</b> to all the digests of the consensus document in
* <b>s</b> */
int
-router_get_networkstatus_v3_hashes(const char *s, digests_t *digests)
+router_get_networkstatus_v3_hashes(const char *s, common_digests_t *digests)
{
return router_get_hashes_impl(s,strlen(s),digests,
"network-status-version",
@@ -2847,7 +2847,7 @@ networkstatus_parse_vote_from_string(const char *s, const char **eos_out,
smartlist_t *rs_tokens = NULL, *footer_tokens = NULL;
networkstatus_voter_info_t *voter = NULL;
networkstatus_t *ns = NULL;
- digests_t ns_digests;
+ common_digests_t ns_digests;
const char *cert, *end_of_header, *end_of_footer, *s_dup = s;
directory_token_t *tok;
int ok;
@@ -3443,15 +3443,16 @@ networkstatus_parse_vote_from_string(const char *s, const char **eos_out,
return ns;
}
-/** Return the digests_t that holds the digests of the
+/** Return the common_digests_t that holds the digests of the
* <b>flavor_name</b>-flavored networkstatus according to the detached
- * signatures document <b>sigs</b>, allocating a new digests_t as neeeded. */
-static digests_t *
+ * signatures document <b>sigs</b>, allocating a new common_digests_t as
+ * neeeded. */
+static common_digests_t *
detached_get_digests(ns_detached_signatures_t *sigs, const char *flavor_name)
{
- digests_t *d = strmap_get(sigs->digests, flavor_name);
+ common_digests_t *d = strmap_get(sigs->digests, flavor_name);
if (!d) {
- d = tor_malloc_zero(sizeof(digests_t));
+ d = tor_malloc_zero(sizeof(common_digests_t));
strmap_set(sigs->digests, flavor_name, d);
}
return d;
@@ -3459,7 +3460,7 @@ detached_get_digests(ns_detached_signatures_t *sigs, const char *flavor_name)
/** Return the list of signatures of the <b>flavor_name</b>-flavored
* networkstatus according to the detached signatures document <b>sigs</b>,
- * allocating a new digests_t as neeeded. */
+ * allocating a new common_digests_t as neeeded. */
static smartlist_t *
detached_get_signatures(ns_detached_signatures_t *sigs,
const char *flavor_name)
@@ -3481,7 +3482,7 @@ networkstatus_parse_detached_signatures(const char *s, const char *eos)
* networkstatus_parse_vote_from_string(). */
directory_token_t *tok;
memarea_t *area = NULL;
- digests_t *digests;
+ common_digests_t *digests;
smartlist_t *tokens = smartlist_new();
ns_detached_signatures_t *sigs =
@@ -3679,7 +3680,7 @@ networkstatus_parse_detached_signatures(const char *s, const char *eos)
*
* Returns NULL on policy errors.
*
- * Set *<b>malformed_list>/b> to true if the entire policy list should be
+ * Set *<b>malformed_list</b> to true if the entire policy list should be
* discarded. Otherwise, set it to false, and only this item should be ignored
* on error - the rest of the policy list can continue to be processed and
* used.
@@ -4444,7 +4445,7 @@ router_get_hash_impl(const char *s, size_t s_len, char *digest,
/** As router_get_hash_impl, but compute all hashes. */
static int
-router_get_hashes_impl(const char *s, size_t s_len, digests_t *digests,
+router_get_hashes_impl(const char *s, size_t s_len, common_digests_t *digests,
const char *start_str,
const char *end_str, char end_c)
{
@@ -4453,7 +4454,7 @@ router_get_hashes_impl(const char *s, size_t s_len, digests_t *digests,
&start,&end)<0)
return -1;
- if (crypto_digest_all(digests, start, end-start)) {
+ if (crypto_common_digests(digests, start, end-start)) {
log_warn(LD_BUG,"couldn't compute digests");
return -1;
}
diff --git a/src/or/routerparse.h b/src/or/routerparse.h
index 99fd52866c..c46eb1c0ae 100644
--- a/src/or/routerparse.h
+++ b/src/or/routerparse.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -14,7 +14,8 @@
int router_get_router_hash(const char *s, size_t s_len, char *digest);
int router_get_dir_hash(const char *s, char *digest);
-int router_get_networkstatus_v3_hashes(const char *s, digests_t *digests);
+int router_get_networkstatus_v3_hashes(const char *s,
+ common_digests_t *digests);
int router_get_extrainfo_hash(const char *s, size_t s_len, char *digest);
#define DIROBJ_MAX_SIG_LEN 256
char *router_get_dirobj_signature(const char *digest,
diff --git a/src/or/routerset.c b/src/or/routerset.c
index debe9ec6e1..f260914f4b 100644
--- a/src/or/routerset.c
+++ b/src/or/routerset.c
@@ -1,9 +1,16 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file routerset.c
+ *
+ * \brief Functions and structures to handle set-type selection of routers
+ * by name, ID, address, etc.
+ */
+
#define ROUTERSET_PRIVATE
#include "or.h"
diff --git a/src/or/routerset.h b/src/or/routerset.h
index aca7c6e74e..c2f7205c3e 100644
--- a/src/or/routerset.h
+++ b/src/or/routerset.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/scheduler.c b/src/or/scheduler.c
index 931bb6b744..8e4810b199 100644
--- a/src/or/scheduler.c
+++ b/src/or/scheduler.c
@@ -1,4 +1,4 @@
-/* * Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* * Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/scheduler.h b/src/or/scheduler.h
index 27dd2d8388..94a44a0aa3 100644
--- a/src/or/scheduler.h
+++ b/src/or/scheduler.h
@@ -1,4 +1,4 @@
-/* * Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* * Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/statefile.c b/src/or/statefile.c
index 7fe8dc5077..9594d9cec3 100644
--- a/src/or/statefile.c
+++ b/src/or/statefile.c
@@ -1,9 +1,16 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file statefile.c
+ *
+ * \brief Handles parsing and encoding the persistent 'state' file that carries
+ * miscellaneous persistent state between Tor invocations.
+ */
+
#define STATEFILE_PRIVATE
#include "or.h"
#include "circuitstats.h"
diff --git a/src/or/statefile.h b/src/or/statefile.h
index 8c790ea206..b13743481d 100644
--- a/src/or/statefile.h
+++ b/src/or/statefile.h
@@ -1,7 +1,7 @@
/* Copyright (c) 2001 Matej Pfajfar.
* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_STATEFILE_H
diff --git a/src/or/status.c b/src/or/status.c
index 69d10721d2..749cee4edf 100644
--- a/src/or/status.c
+++ b/src/or/status.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Tor Project, Inc. */
+/* Copyright (c) 2010-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/status.h b/src/or/status.h
index 3dd8206e0f..b97e835037 100644
--- a/src/or/status.h
+++ b/src/or/status.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Tor Project, Inc. */
+/* Copyright (c) 2010-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_STATUS_H
diff --git a/src/or/tor_main.c b/src/or/tor_main.c
index 65bb020c2c..ac32eef559 100644
--- a/src/or/tor_main.c
+++ b/src/or/tor_main.c
@@ -1,6 +1,6 @@
/* Copyright 2001-2004 Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/** String describing which Tor Git repository version the source was
diff --git a/src/or/torcert.c b/src/or/torcert.c
index ef5b4c0c3b..de7d28d740 100644
--- a/src/or/torcert.c
+++ b/src/or/torcert.c
@@ -1,6 +1,13 @@
-/* Copyright (c) 2014, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
+/**
+ * \file torcert.c
+ *
+ * \brief Implementation for ed25519-signed certificates as used in the Tor
+ * protocol.
+ */
+
#include "crypto.h"
#include "torcert.h"
#include "ed25519_cert.h"
diff --git a/src/or/torcert.h b/src/or/torcert.h
index b67dc525a2..9c819c0abb 100644
--- a/src/or/torcert.h
+++ b/src/or/torcert.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TORCERT_H_INCLUDED
diff --git a/src/or/transports.c b/src/or/transports.c
index 5a3af85be8..1b8b1e678c 100644
--- a/src/or/transports.c
+++ b/src/or/transports.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011-2015, The Tor Project, Inc. */
+/* Copyright (c) 2011-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/or/transports.h b/src/or/transports.h
index 7c69941496..7de90dcbec 100644
--- a/src/or/transports.h
+++ b/src/or/transports.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2003-2004, Roger Dingledine
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/test/bench.c b/src/test/bench.c
index 1ef54042b2..5aefda5ff2 100644
--- a/src/test/bench.c
+++ b/src/test/bench.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/* Ordinarily defined in tor_main.c; this bit is just here to provide one
diff --git a/src/test/fakechans.h b/src/test/fakechans.h
index 8fb8f420a8..fa0e37dbe6 100644
--- a/src/test/fakechans.h
+++ b/src/test/fakechans.h
@@ -1,4 +1,4 @@
- /* Copyright (c) 2014-2015, The Tor Project, Inc. */
+ /* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_FAKECHANS_H
diff --git a/src/test/include.am b/src/test/include.am
index 786fb77dd0..7d80fdf152 100644
--- a/src/test/include.am
+++ b/src/test/include.am
@@ -151,9 +151,12 @@ src_test_test_switch_id_LDADD = \
src_test_test_LDFLAGS = @TOR_LDFLAGS_zlib@ @TOR_LDFLAGS_openssl@ \
@TOR_LDFLAGS_libevent@
-src_test_test_LDADD = src/or/libtor-testing.a src/common/libor-testing.a \
- src/common/libor-crypto-testing.a $(LIBKECCAK_TINY) $(LIBDONNA) \
- src/common/libor.a src/common/libor-event-testing.a \
+src_test_test_LDADD = src/or/libtor-testing.a \
+ src/common/libor-crypto-testing.a \
+ $(LIBKECCAK_TINY) \
+ $(LIBDONNA) \
+ src/common/libor-testing.a \
+ src/common/libor-event-testing.a \
src/trunnel/libor-trunnel-testing.a \
@TOR_ZLIB_LIBS@ @TOR_LIB_MATH@ @TOR_LIBEVENT_LIBS@ \
@TOR_OPENSSL_LIBS@ @TOR_LIB_WS32@ @TOR_LIB_GDI@ @CURVE25519_LIBS@ \
diff --git a/src/test/log_test_helpers.c b/src/test/log_test_helpers.c
index bcf73a8437..3bb36ac36c 100644
--- a/src/test/log_test_helpers.c
+++ b/src/test/log_test_helpers.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015, The Tor Project, Inc. */
+/* Copyright (c) 2015-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define LOG_PRIVATE
#include "torlog.h"
diff --git a/src/test/log_test_helpers.h b/src/test/log_test_helpers.h
index 298237dddb..1966f170fb 100644
--- a/src/test/log_test_helpers.h
+++ b/src/test/log_test_helpers.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "or.h"
@@ -23,6 +23,7 @@ void mock_clean_saved_logs(void);
const smartlist_t *mock_saved_logs(void);
int setup_capture_of_logs(int new_level);
void teardown_capture_of_logs(int prev);
+
int mock_saved_log_has_message(const char *msg);
int mock_saved_log_has_severity(int severity);
int mock_saved_log_has_entry(void);
diff --git a/src/test/ntor_ref.py b/src/test/ntor_ref.py
index 767da57a9c..df065853f3 100755
--- a/src/test/ntor_ref.py
+++ b/src/test/ntor_ref.py
@@ -322,7 +322,7 @@ def kdf_vectors():
"""
import binascii
def kdf_vec(inp):
- k = kdf(inp, T_KEY, M_EXPAND, 100)
+ k = kdf_rfc5869(inp, T_KEY, M_EXPAND, 100)
print(repr(inp), "\n\""+ binascii.b2a_hex(k)+ "\"")
kdf_vec("")
kdf_vec("Tor")
diff --git a/src/test/rend_test_helpers.c b/src/test/rend_test_helpers.c
index f16d67fa1a..377337bcb9 100644
--- a/src/test/rend_test_helpers.c
+++ b/src/test/rend_test_helpers.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "or.h"
diff --git a/src/test/rend_test_helpers.h b/src/test/rend_test_helpers.h
index 1ef03747d7..180a4e8fde 100644
--- a/src/test/rend_test_helpers.h
+++ b/src/test/rend_test_helpers.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "or.h"
diff --git a/src/test/test-child.c b/src/test/test-child.c
index 2ce01ea9bb..e2552a499d 100644
--- a/src/test/test-child.c
+++ b/src/test/test-child.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2011-2015, The Tor Project, Inc. */
+/* Copyright (c) 2011-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include <stdio.h>
diff --git a/src/test/test.c b/src/test/test.c
index f12ae21ff0..ed167a3e67 100644
--- a/src/test/test.c
+++ b/src/test/test.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
@@ -319,11 +319,7 @@ test_circuit_timeout(void *arg)
int i, runs;
double close_ms;
(void)arg;
- tor_libevent_cfg cfg;
- memset(&cfg, 0, sizeof(cfg));
-
- tor_libevent_initialize(&cfg);
initialize_periodic_events();
circuit_build_times_init(&initial);
diff --git a/src/test/test.h b/src/test/test.h
index 86699c3d07..e618ce1224 100644
--- a/src/test/test.h
+++ b/src/test/test.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2003, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_TEST_H
diff --git a/src/test/test_addr.c b/src/test/test_addr.c
index 85130db4fe..337bddad6b 100644
--- a/src/test/test_addr.c
+++ b/src/test/test_addr.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define ADDRESSMAP_PRIVATE
diff --git a/src/test/test_address.c b/src/test/test_address.c
index 3b17b23571..3e5af56c52 100644
--- a/src/test/test_address.c
+++ b/src/test/test_address.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define ADDRESS_PRIVATE
@@ -297,7 +297,9 @@ test_address_get_if_addrs_ifaddrs(void *arg)
}
done:
- SMARTLIST_FOREACH(results, tor_addr_t *, t, tor_free(t));
+ if (results) {
+ SMARTLIST_FOREACH(results, tor_addr_t *, t, tor_free(t));
+ }
smartlist_free(results);
return;
}
diff --git a/src/test/test_bt_cl.c b/src/test/test_bt_cl.c
index c43143ffe9..2f5e50fbf5 100644
--- a/src/test/test_bt_cl.c
+++ b/src/test/test_bt_cl.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_buffers.c b/src/test/test_buffers.c
index 29ee408616..e5e56edf75 100644
--- a/src/test/test_buffers.c
+++ b/src/test/test_buffers.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define BUFFERS_PRIVATE
diff --git a/src/test/test_cell_formats.c b/src/test/test_cell_formats.c
index e86dc0934f..499a637959 100644
--- a/src/test/test_cell_formats.c
+++ b/src/test/test_cell_formats.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_cell_queue.c b/src/test/test_cell_queue.c
index ed34df2ea2..93ac9854d8 100644
--- a/src/test/test_cell_queue.c
+++ b/src/test/test_cell_queue.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define CIRCUITLIST_PRIVATE
diff --git a/src/test/test_channel.c b/src/test/test_channel.c
index e11ac3f3cc..84eddea5b4 100644
--- a/src/test/test_channel.c
+++ b/src/test/test_channel.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define TOR_CHANNEL_INTERNAL_
diff --git a/src/test/test_channeltls.c b/src/test/test_channeltls.c
index dff1dde87e..04ae9a6da7 100644
--- a/src/test/test_channeltls.c
+++ b/src/test/test_channeltls.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include <math.h>
diff --git a/src/test/test_checkdir.c b/src/test/test_checkdir.c
index d6ef353c87..fbb33f87f6 100644
--- a/src/test/test_checkdir.c
+++ b/src/test/test_checkdir.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_circuitlist.c b/src/test/test_circuitlist.c
index 0760accfc1..1e640b5709 100644
--- a/src/test/test_circuitlist.c
+++ b/src/test/test_circuitlist.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define TOR_CHANNEL_INTERNAL_
diff --git a/src/test/test_circuitmux.c b/src/test/test_circuitmux.c
index 6d93731eea..9e8fb54964 100644
--- a/src/test/test_circuitmux.c
+++ b/src/test/test_circuitmux.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define TOR_CHANNEL_INTERNAL_
@@ -36,11 +36,7 @@ test_cmux_destroy_cell_queue(void *arg)
circuit_t *circ = NULL;
cell_queue_t *cq = NULL;
packed_cell_t *pc = NULL;
- tor_libevent_cfg cfg;
- memset(&cfg, 0, sizeof(cfg));
-
- tor_libevent_initialize(&cfg);
scheduler_init();
(void) arg;
diff --git a/src/test/test_compat_libevent.c b/src/test/test_compat_libevent.c
index f3fe113012..266ebbcf3b 100644
--- a/src/test/test_compat_libevent.c
+++ b/src/test/test_compat_libevent.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Tor Project, Inc. */
+/* Copyright (c) 2010-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define COMPAT_LIBEVENT_PRIVATE
diff --git a/src/test/test_config.c b/src/test/test_config.c
index 85bedd62c9..b11848102e 100644
--- a/src/test/test_config.c
+++ b/src/test/test_config.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
@@ -3752,6 +3752,7 @@ test_config_parse_port_config__listenaddress(void *data)
// Port lines for the same portname
ret = parse_port_config(NULL, config_port1, config_listen_address, "DNS", 0,
NULL, 0, 0);
+
tt_int_op(ret, OP_EQ, -1);
// Test case when we have a listen address, no default port and allow
@@ -3842,14 +3843,16 @@ test_config_parse_port_config__listenaddress(void *data)
tt_int_op(ret, OP_EQ, 0);
done:
- tor_free(config_listen_address);
- tor_free(config_listen_address2);
- tor_free(config_listen_address3);
- tor_free(config_port1);
- tor_free(config_port2);
- tor_free(config_port3);
- tor_free(config_port4);
- tor_free(config_port5);
+ config_free_lines(config_listen_address);
+ config_free_lines(config_listen_address2);
+ config_free_lines(config_listen_address3);
+ config_free_lines(config_port1);
+ /* 2 was linked from 1. */
+ config_free_lines(config_port3);
+ config_free_lines(config_port4);
+ config_free_lines(config_port5);
+ if (slout)
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_free(slout);
}
@@ -3860,7 +3863,6 @@ test_config_parse_port_config__ports__no_ports_given(void *data)
int ret;
smartlist_t *slout = NULL;
port_cfg_t *port_cfg = NULL;
- config_line_t *config_port_invalid = NULL, *config_port_valid = NULL;
slout = smartlist_new();
@@ -3896,6 +3898,7 @@ test_config_parse_port_config__ports__no_ports_given(void *data)
tt_int_op(smartlist_len(slout), OP_EQ, 0);
// Test with defaultport, with defaultaddress and out, adds a new port cfg
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
ret = parse_port_config(slout, NULL, NULL, "DNS", 0, "127.0.0.2", 42, 0);
tt_int_op(ret, OP_EQ, 0);
@@ -3906,6 +3909,7 @@ test_config_parse_port_config__ports__no_ports_given(void *data)
// Test with defaultport, with defaultaddress and out, adds a new port cfg
// for a unix address
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
ret = parse_port_config(slout, NULL, NULL, "DNS", 0, "/foo/bar/unixdomain",
42, CL_PORT_IS_UNIXSOCKET);
@@ -3917,9 +3921,9 @@ test_config_parse_port_config__ports__no_ports_given(void *data)
tt_str_op(port_cfg->unix_addr, OP_EQ, "/foo/bar/unixdomain");
done:
+ if (slout)
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_free(slout);
- tor_free(config_port_invalid);
- tor_free(config_port_valid);
}
static void
@@ -3941,7 +3945,7 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(ret, OP_EQ, -1);
// Test error when encounters an empty unix domain specification
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
config_port_invalid = mock_config_line("DNSPort", "unix:");
ret = parse_port_config(NULL, config_port_invalid, NULL, "DNS", 0, NULL,
0, 0);
@@ -3955,6 +3959,7 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(ret, OP_EQ, -1);
// Test valid unix domain
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
ret = parse_port_config(slout, config_port_valid, NULL, "DNS",
CONN_TYPE_AP_LISTENER, NULL, 0, 0);
@@ -3971,7 +3976,7 @@ test_config_parse_port_config__ports__ports_given(void *data)
// Test failure if we have no ipv4 and no ipv6 (for unix domain sockets,
// this makes no sense - it should be fixed)
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
config_port_invalid = mock_config_line("DNSPort",
"unix:/tmp/foo/bar NoIPv4Traffic");
ret = parse_port_config(NULL, config_port_invalid, NULL, "DNS",
@@ -3981,7 +3986,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
// Test success with no ipv4 but take ipv6 (for unix domain sockets, this
// makes no sense - it should be fixed)
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "unix:/tmp/foo/bar "
"NoIPv4Traffic IPv6Traffic");
@@ -4000,7 +4006,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
// Test success with both ipv4 and ipv6 (for unix domain sockets,
// this makes no sense - it should be fixed)
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "unix:/tmp/foo/bar "
"IPv4Traffic IPv6Traffic");
@@ -4018,28 +4025,29 @@ test_config_parse_port_config__ports__ports_given(void *data)
#endif
// Test failure if we specify world writable for an IP Port
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
config_port_invalid = mock_config_line("DNSPort", "42 WorldWritable");
ret = parse_port_config(NULL, config_port_invalid, NULL, "DNS", 0,
"127.0.0.3", 0, 0);
tt_int_op(ret, OP_EQ, -1);
// Test failure if we specify group writable for an IP Port
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
config_port_invalid = mock_config_line("DNSPort", "42 GroupWritable");
ret = parse_port_config(NULL, config_port_invalid, NULL, "DNS", 0,
"127.0.0.3", 0, 0);
tt_int_op(ret, OP_EQ, -1);
// Test success with only a port (this will fail without a default address)
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
config_port_valid = mock_config_line("DNSPort", "42");
ret = parse_port_config(NULL, config_port_valid, NULL, "DNS", 0,
"127.0.0.3", 0, 0);
tt_int_op(ret, OP_EQ, 0);
// Test success with only a port and isolate destination port
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 IsolateDestPort");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4051,7 +4059,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
ISO_DEFAULT | ISO_DESTPORT);
// Test success with a negative isolate destination port, and plural
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 NoIsolateDestPorts");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4063,7 +4072,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
ISO_DEFAULT & ~ISO_DESTPORT);
// Test success with isolate destination address
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 IsolateDestAddr");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4075,7 +4085,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
ISO_DEFAULT | ISO_DESTADDR);
// Test success with isolate socks AUTH
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 IsolateSOCKSAuth");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4087,7 +4098,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
ISO_DEFAULT | ISO_SOCKSAUTH);
// Test success with isolate client protocol
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 IsolateClientProtocol");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4099,7 +4111,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
ISO_DEFAULT | ISO_CLIENTPROTO);
// Test success with isolate client address
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 IsolateClientAddr");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4111,14 +4124,15 @@ test_config_parse_port_config__ports__ports_given(void *data)
ISO_DEFAULT | ISO_CLIENTADDR);
// Test success with ignored unknown options
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
config_port_valid = mock_config_line("DNSPort", "42 ThisOptionDoesntExist");
ret = parse_port_config(NULL, config_port_valid, NULL, "DNS", 0,
"127.0.0.3", 0, 0);
tt_int_op(ret, OP_EQ, 0);
// Test success with no isolate socks AUTH
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 NoIsolateSOCKSAuth");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4129,7 +4143,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.socks_prefer_no_auth, OP_EQ, 1);
// Test success with prefer ipv6
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 IPv6Traffic PreferIPv6");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS",
@@ -4141,7 +4156,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.prefer_ipv6, OP_EQ, 1);
// Test success with cache ipv4 DNS
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 CacheIPv4DNS");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4153,7 +4169,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.cache_ipv6_answers, OP_EQ, 0);
// Test success with cache ipv6 DNS
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 CacheIPv6DNS");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4165,7 +4182,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.cache_ipv6_answers, OP_EQ, 1);
// Test success with no cache ipv4 DNS
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 NoCacheIPv4DNS");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4177,7 +4195,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.cache_ipv6_answers, OP_EQ, 0);
// Test success with cache DNS
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 CacheDNS");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4189,7 +4208,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.cache_ipv6_answers, OP_EQ, 1);
// Test success with use cached ipv4 DNS
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 UseIPv4Cache");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4201,7 +4221,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.use_cached_ipv6_answers, OP_EQ, 0);
// Test success with use cached ipv6 DNS
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 UseIPv6Cache");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4213,7 +4234,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.use_cached_ipv6_answers, OP_EQ, 1);
// Test success with use cached DNS
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 UseDNSCache");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4225,7 +4247,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.use_cached_ipv6_answers, OP_EQ, 1);
// Test success with not preferring ipv6 automap
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 NoPreferIPv6Automap");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4236,7 +4259,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.prefer_ipv6_virtaddr, OP_EQ, 0);
// Test success with prefer SOCKS no auth
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 PreferSOCKSNoAuth");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4247,8 +4271,9 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.socks_prefer_no_auth, OP_EQ, 1);
// Test failure with both a zero port and a non-zero port
- tor_free(config_port_invalid);
- tor_free(config_port_valid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_invalid = mock_config_line("DNSPort", "0");
config_port_valid = mock_config_line("DNSPort", "42");
@@ -4258,6 +4283,7 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(ret, OP_EQ, -1);
// Test success with warn non-local control
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
ret = parse_port_config(slout, config_port_valid, NULL, "DNS",
CONN_TYPE_CONTROL_LISTENER, "127.0.0.42", 0,
@@ -4265,6 +4291,7 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(ret, OP_EQ, 0);
// Test success with warn non-local listener
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
ret = parse_port_config(slout, config_port_valid, NULL, "DNS",
CONN_TYPE_EXT_OR_LISTENER, "127.0.0.42", 0,
@@ -4272,6 +4299,7 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(ret, OP_EQ, 0);
// Test success with warn non-local other
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
"127.0.0.42", 0, CL_PORT_WARN_NONLOCAL);
@@ -4283,7 +4311,9 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(ret, OP_EQ, 0);
// Test success with both ipv4 and ipv6 but without stream options
- tor_free(config_port_valid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 IPv4Traffic "
"IPv6Traffic");
@@ -4298,7 +4328,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.ipv6_traffic, OP_EQ, 0);
// Test failure for a SessionGroup argument with invalid value
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_invalid = mock_config_line("DNSPort", "42 SessionGroup=invalid");
ret = parse_port_config(slout, config_port_invalid, NULL, "DNS", 0,
@@ -4309,7 +4340,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
// Potential bug.
// Test failure for a SessionGroup argument with valid value but with stream
// options allowed
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_invalid = mock_config_line("DNSPort", "42 SessionGroup=123");
ret = parse_port_config(slout, config_port_invalid, NULL, "DNS", 0,
@@ -4317,7 +4349,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(ret, OP_EQ, -1);
// Test failure for more than one SessionGroup argument
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_invalid = mock_config_line("DNSPort", "42 SessionGroup=123 "
"SessionGroup=321");
@@ -4326,7 +4359,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(ret, OP_EQ, -1);
// Test success with a sessiongroup options
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "42 SessionGroup=1111122");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4337,7 +4371,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(port_cfg->entry_cfg.session_group, OP_EQ, 1111122);
// Test success with a zero unix domain socket, and doesnt add it to out
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "0");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4346,7 +4381,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(smartlist_len(slout), OP_EQ, 0);
// Test success with a one unix domain socket, and doesnt add it to out
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "something");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4358,7 +4394,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_str_op(port_cfg->unix_addr, OP_EQ, "something");
// Test success with a port of auto - it uses the default address
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "auto");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4371,7 +4408,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_assert(tor_addr_eq(&port_cfg->addr, &addr))
// Test success with parsing both an address and an auto port
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "127.0.0.122:auto");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4384,14 +4422,15 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_assert(tor_addr_eq(&port_cfg->addr, &addr))
// Test failure when asked to parse an invalid address followed by auto
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
config_port_invalid = mock_config_line("DNSPort", "invalidstuff!!:auto");
ret = parse_port_config(NULL, config_port_invalid, NULL, "DNS", 0,
"127.0.0.46", 0, 0);
tt_int_op(ret, OP_EQ, -1);
// Test success with parsing both an address and a real port
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "127.0.0.123:656");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0,
@@ -4404,7 +4443,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_assert(tor_addr_eq(&port_cfg->addr, &addr))
// Test failure if we can't parse anything at all
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_invalid = mock_config_line("DNSPort", "something wrong");
ret = parse_port_config(slout, config_port_invalid, NULL, "DNS", 0,
@@ -4412,7 +4452,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
tt_int_op(ret, OP_EQ, -1);
// Test failure if we find both an address, a port and an auto
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_invalid = mock_config_line("DNSPort", "127.0.1.0:123:auto");
ret = parse_port_config(slout, config_port_invalid, NULL, "DNS", 0,
@@ -4421,7 +4462,8 @@ test_config_parse_port_config__ports__ports_given(void *data)
// Test that default to group writeable default sets group writeable for
// domain socket
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "unix:/tmp/somewhere");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS",
@@ -4437,9 +4479,11 @@ test_config_parse_port_config__ports__ports_given(void *data)
#endif
done:
+ if (slout)
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_free(slout);
- tor_free(config_port_invalid);
- tor_free(config_port_valid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ config_free_lines(config_port_valid); config_port_valid = NULL;
}
static void
@@ -4454,7 +4498,7 @@ test_config_parse_port_config__ports__server_options(void *data)
slout = smartlist_new();
// Test success with NoAdvertise option
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
config_port_valid = mock_config_line("DNSPort",
"127.0.0.124:656 NoAdvertise");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, NULL, 0,
@@ -4466,7 +4510,8 @@ test_config_parse_port_config__ports__server_options(void *data)
tt_int_op(port_cfg->server_cfg.no_listen, OP_EQ, 0);
// Test success with NoListen option
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "127.0.0.124:656 NoListen");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, NULL, 0,
@@ -4478,7 +4523,8 @@ test_config_parse_port_config__ports__server_options(void *data)
tt_int_op(port_cfg->server_cfg.no_listen, OP_EQ, 1);
// Test failure with both NoAdvertise and NoListen option
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_invalid = mock_config_line("DNSPort", "127.0.0.124:656 NoListen "
"NoAdvertise");
@@ -4487,7 +4533,8 @@ test_config_parse_port_config__ports__server_options(void *data)
tt_int_op(ret, OP_EQ, -1);
// Test success with IPv4Only
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "127.0.0.124:656 IPv4Only");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, NULL, 0,
@@ -4499,7 +4546,8 @@ test_config_parse_port_config__ports__server_options(void *data)
tt_int_op(port_cfg->server_cfg.bind_ipv6_only, OP_EQ, 0);
// Test success with IPv6Only
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "[::1]:656 IPv6Only");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, NULL, 0,
@@ -4511,7 +4559,8 @@ test_config_parse_port_config__ports__server_options(void *data)
tt_int_op(port_cfg->server_cfg.bind_ipv6_only, OP_EQ, 1);
// Test failure with both IPv4Only and IPv6Only
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_invalid = mock_config_line("DNSPort", "127.0.0.124:656 IPv6Only "
"IPv4Only");
@@ -4520,7 +4569,8 @@ test_config_parse_port_config__ports__server_options(void *data)
tt_int_op(ret, OP_EQ, -1);
// Test success with invalid parameter
- tor_free(config_port_valid);
+ config_free_lines(config_port_valid); config_port_valid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_valid = mock_config_line("DNSPort", "127.0.0.124:656 unknown");
ret = parse_port_config(slout, config_port_valid, NULL, "DNS", 0, NULL, 0,
@@ -4529,7 +4579,8 @@ test_config_parse_port_config__ports__server_options(void *data)
tt_int_op(smartlist_len(slout), OP_EQ, 1);
// Test failure when asked to bind only to ipv6 but gets an ipv4 address
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_invalid = mock_config_line("DNSPort",
"127.0.0.124:656 IPv6Only");
@@ -4538,7 +4589,8 @@ test_config_parse_port_config__ports__server_options(void *data)
tt_int_op(ret, OP_EQ, -1);
// Test failure when asked to bind only to ipv4 but gets an ipv6 address
- tor_free(config_port_invalid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_clear(slout);
config_port_invalid = mock_config_line("DNSPort", "[::1]:656 IPv4Only");
ret = parse_port_config(slout, config_port_invalid, NULL, "DNS", 0, NULL,
@@ -4546,9 +4598,11 @@ test_config_parse_port_config__ports__server_options(void *data)
tt_int_op(ret, OP_EQ, -1);
done:
+ if (slout)
+ SMARTLIST_FOREACH(slout,port_cfg_t *,pf,port_cfg_free(pf));
smartlist_free(slout);
- tor_free(config_port_invalid);
- tor_free(config_port_valid);
+ config_free_lines(config_port_invalid); config_port_invalid = NULL;
+ config_free_lines(config_port_valid); config_port_valid = NULL;
}
#define CONFIG_TEST(name, flags) \
diff --git a/src/test/test_connection.c b/src/test/test_connection.c
index c5ef92931d..15ae973f00 100644
--- a/src/test/test_connection.c
+++ b/src/test/test_connection.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015, The Tor Project, Inc. */
+/* Copyright (c) 2015-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_containers.c b/src/test/test_containers.c
index 1ee240fb0d..fd896760c0 100644
--- a/src/test/test_containers.c
+++ b/src/test/test_containers.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_controller.c b/src/test/test_controller.c
index b40825bb5d..7f9db4312f 100644
--- a/src/test/test_controller.c
+++ b/src/test/test_controller.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015, The Tor Project, Inc. */
+/* Copyright (c) 2015-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define CONTROL_PRIVATE
diff --git a/src/test/test_controller_events.c b/src/test/test_controller_events.c
index 7b439d490d..11e1e3dc8f 100644
--- a/src/test/test_controller_events.c
+++ b/src/test/test_controller_events.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define CONNECTION_PRIVATE
diff --git a/src/test/test_crypto.c b/src/test/test_crypto.c
index fb21f3ad09..6a95e92733 100644
--- a/src/test/test_crypto.c
+++ b/src/test/test_crypto.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
@@ -147,8 +147,14 @@ test_crypto_rng_engine(void *arg)
/* We should correct the method if it's a dummy. */
RAND_set_rand_method(&dummy_method);
+#ifdef LIBRESSL_VERSION_NUMBER
+ /* On libressl, you can't override the RNG. */
+ tt_assert(RAND_get_rand_method() == RAND_OpenSSL());
+ tt_int_op(0, ==, crypto_force_rand_ssleay());
+#else
tt_assert(RAND_get_rand_method() == &dummy_method);
tt_int_op(1, ==, crypto_force_rand_ssleay());
+#endif
tt_assert(RAND_get_rand_method() == RAND_OpenSSL());
/* Make sure we aren't calling dummy_method */
@@ -1084,7 +1090,7 @@ test_crypto_digests(void *arg)
{
crypto_pk_t *k = NULL;
ssize_t r;
- digests_t pkey_digests;
+ common_digests_t pkey_digests;
char digest[DIGEST_LEN];
(void)arg;
@@ -1098,7 +1104,7 @@ test_crypto_digests(void *arg)
tt_mem_op(hex_str(digest, DIGEST_LEN),OP_EQ,
AUTHORITY_SIGNKEY_A_DIGEST, HEX_DIGEST_LEN);
- r = crypto_pk_get_all_digests(k, &pkey_digests);
+ r = crypto_pk_get_common_digests(k, &pkey_digests);
tt_mem_op(hex_str(pkey_digests.d[DIGEST_SHA1], DIGEST_LEN),OP_EQ,
AUTHORITY_SIGNKEY_A_DIGEST, HEX_DIGEST_LEN);
@@ -1108,6 +1114,11 @@ test_crypto_digests(void *arg)
crypto_pk_free(k);
}
+#ifndef OPENSSL_1_1_API
+#define EVP_ENCODE_CTX_new() tor_malloc_zero(sizeof(EVP_ENCODE_CTX))
+#define EVP_ENCODE_CTX_free(ctx) tor_free(ctx)
+#endif
+
/** Encode src into dest with OpenSSL's EVP Encode interface, returning the
* length of the encoded data in bytes.
*/
@@ -1115,12 +1126,13 @@ static int
base64_encode_evp(char *dest, char *src, size_t srclen)
{
const unsigned char *s = (unsigned char*)src;
- EVP_ENCODE_CTX ctx;
+ EVP_ENCODE_CTX *ctx = EVP_ENCODE_CTX_new();
int len, ret;
- EVP_EncodeInit(&ctx);
- EVP_EncodeUpdate(&ctx, (unsigned char *)dest, &len, s, (int)srclen);
- EVP_EncodeFinal(&ctx, (unsigned char *)(dest + len), &ret);
+ EVP_EncodeInit(ctx);
+ EVP_EncodeUpdate(ctx, (unsigned char *)dest, &len, s, (int)srclen);
+ EVP_EncodeFinal(ctx, (unsigned char *)(dest + len), &ret);
+ EVP_ENCODE_CTX_free(ctx);
return ret+ len;
}
diff --git a/src/test/test_crypto_slow.c b/src/test/test_crypto_slow.c
index 853a08d886..9b39199cd0 100644
--- a/src/test/test_crypto_slow.c
+++ b/src/test/test_crypto_slow.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_data.c b/src/test/test_data.c
index 6afba65757..32de54bc84 100644
--- a/src/test/test_data.c
+++ b/src/test/test_data.c
@@ -1,6 +1,6 @@
/* Copyright 2001-2004 Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/* Our unit test expect that the AUTHORITY_CERT_* public keys will sort
diff --git a/src/test/test_dir.c b/src/test/test_dir.c
index 4824a94132..ea179fb02c 100644
--- a/src/test/test_dir.c
+++ b/src/test/test_dir.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
@@ -497,7 +497,6 @@ test_dir_routerinfo_parsing(void *arg)
#undef CHECK_FAIL
#undef CHECK_OK
done:
- memarea_clear_freelist();
routerinfo_free(ri);
}
@@ -601,7 +600,6 @@ test_dir_extrainfo_parsing(void *arg)
done:
escaped(NULL);
- memarea_clear_freelist();
extrainfo_free(ei);
routerinfo_free(ri);
digestmap_free((digestmap_t*)map, routerinfo_free_wrapper_);
@@ -1999,11 +1997,13 @@ test_a_networkstatus(
tt_assert(con_md3);
/* All three should have the same digest. */
- tt_mem_op(&con->digests,OP_EQ, &con2->digests, sizeof(digests_t));
- tt_mem_op(&con->digests,OP_EQ, &con3->digests, sizeof(digests_t));
+ tt_mem_op(&con->digests,OP_EQ, &con2->digests, sizeof(common_digests_t));
+ tt_mem_op(&con->digests,OP_EQ, &con3->digests, sizeof(common_digests_t));
- tt_mem_op(&con_md->digests,OP_EQ, &con_md2->digests, sizeof(digests_t));
- tt_mem_op(&con_md->digests,OP_EQ, &con_md3->digests, sizeof(digests_t));
+ tt_mem_op(&con_md->digests,OP_EQ, &con_md2->digests,
+ sizeof(common_digests_t));
+ tt_mem_op(&con_md->digests,OP_EQ, &con_md3->digests,
+ sizeof(common_digests_t));
/* Extract a detached signature from con3. */
detached_text1 = get_detached_sigs(con3, con_md3);
@@ -2017,7 +2017,7 @@ test_a_networkstatus(
tt_int_op(dsig1->fresh_until,OP_EQ, con3->fresh_until);
tt_int_op(dsig1->valid_until,OP_EQ, con3->valid_until);
{
- digests_t *dsig_digests = strmap_get(dsig1->digests, "ns");
+ common_digests_t *dsig_digests = strmap_get(dsig1->digests, "ns");
tt_assert(dsig_digests);
tt_mem_op(dsig_digests->d[DIGEST_SHA1], OP_EQ,
con3->digests.d[DIGEST_SHA1], DIGEST_LEN);
@@ -3312,7 +3312,6 @@ test_dir_download_status_schedule(void *arg)
tt_assert(increment == expected_increment);
tt_assert(dls_failure.next_attempt_at == TIME_MIN + expected_increment);
-#if TIME_T_IS_SIGNED
delay1 = INT_MAX;
increment = download_status_schedule_get_delay(&dls_failure,
schedule,
@@ -3320,7 +3319,6 @@ test_dir_download_status_schedule(void *arg)
expected_increment = delay1;
tt_assert(increment == expected_increment);
tt_assert(dls_failure.next_attempt_at == TIME_MAX);
-#endif
delay1 = 0;
increment = download_status_schedule_get_delay(&dls_attempt,
diff --git a/src/test/test_dir_common.c b/src/test/test_dir_common.c
index f9e97c973c..0b446c2dfd 100644
--- a/src/test/test_dir_common.c
+++ b/src/test/test_dir_common.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2014, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_dir_common.h b/src/test/test_dir_common.h
index 9557cb7157..9682b0db49 100644
--- a/src/test/test_dir_common.h
+++ b/src/test/test_dir_common.h
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2014, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "or.h"
diff --git a/src/test/test_dir_handle_get.c b/src/test/test_dir_handle_get.c
index e1ac50e66e..954830dcaf 100644
--- a/src/test/test_dir_handle_get.c
+++ b/src/test/test_dir_handle_get.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define RENDCOMMON_PRIVATE
@@ -1764,7 +1764,7 @@ static void
status_vote_current_consensus_ns_test(char **header, char **body,
size_t *body_len)
{
- digests_t digests;
+ common_digests_t digests;
dir_connection_t *conn = NULL;
#define NETWORK_STATUS "some network status string"
@@ -2255,7 +2255,6 @@ status_vote_next_consensus_signatures_test(char **header, char **body,
static void
test_dir_handle_get_status_vote_next_consensus_signatures_not_found(void* data)
{
- dir_connection_t *conn = NULL;
char *header = NULL, *body = NULL;
size_t body_used;
(void) data;
@@ -2266,7 +2265,6 @@ test_dir_handle_get_status_vote_next_consensus_signatures_not_found(void* data)
tt_str_op(NOT_FOUND, OP_EQ, header);
done:
- connection_free_(TO_CONN(conn));
tor_free(header);
tor_free(body);
}
@@ -2308,7 +2306,6 @@ test_dir_handle_get_status_vote_next_consensus_signatures(void* data)
static void
test_dir_handle_get_status_vote_next_consensus_signatures_busy(void* data)
{
- dir_connection_t *conn = NULL;
char *header = NULL, *body = NULL;
size_t body_used;
(void) data;
@@ -2328,7 +2325,6 @@ test_dir_handle_get_status_vote_next_consensus_signatures_busy(void* data)
done:
UNMOCK(get_options);
NS_UNMOCK(dirvote_get_pending_detached_signatures);
- connection_free_(TO_CONN(conn));
tor_free(header);
tor_free(body);
or_options_free(mock_options); mock_options = NULL;
diff --git a/src/test/test_dns.c b/src/test/test_dns.c
index 6fdbe905e0..5289ca58ff 100644
--- a/src/test/test_dns.c
+++ b/src/test/test_dns.c
@@ -490,7 +490,7 @@ NS(test_main)(void *arg)
(void)arg;
- TO_CONN(exitconn)->address = tor_strdup("127.0.0.1.in-addr.arpa");
+ TO_CONN(exitconn)->address = tor_strdup("1.0.0.127.in-addr.arpa");
NS_MOCK(router_my_exit_policy_is_reject_star);
diff --git a/src/test/test_entryconn.c b/src/test/test_entryconn.c
index 6edc166743..9580a1fd3f 100644
--- a/src/test/test_entryconn.c
+++ b/src/test/test_entryconn.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_entrynodes.c b/src/test/test_entrynodes.c
index 0011d3698a..b1c3accfab 100644
--- a/src/test/test_entrynodes.c
+++ b/src/test/test_entrynodes.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
@@ -9,14 +9,16 @@
#include "or.h"
#include "test.h"
+
+#include "config.h"
#include "entrynodes.h"
-#include "routerparse.h"
#include "nodelist.h"
-#include "util.h"
+#include "policies.h"
#include "routerlist.h"
+#include "routerparse.h"
#include "routerset.h"
#include "statefile.h"
-#include "config.h"
+#include "util.h"
#include "test_helpers.h"
@@ -70,6 +72,14 @@ fake_network_setup(const struct testcase_t *testcase)
return dummy_state;
}
+static or_options_t mocked_options;
+
+static const or_options_t *
+mock_get_options(void)
+{
+ return &mocked_options;
+}
+
/** Test choose_random_entry() with none of our routers being guard nodes. */
static void
test_choose_random_entry_no_guards(void *arg)
@@ -78,6 +88,14 @@ test_choose_random_entry_no_guards(void *arg)
(void) arg;
+ MOCK(get_options, mock_get_options);
+
+ /* Check that we get a guard if it passes preferred
+ * address settings */
+ memset(&mocked_options, 0, sizeof(mocked_options));
+ mocked_options.ClientUseIPv4 = 1;
+ mocked_options.ClientPreferIPv6ORPort = 0;
+
/* Try to pick an entry even though none of our routers are guards. */
chosen_entry = choose_random_entry(NULL);
@@ -86,8 +104,55 @@ test_choose_random_entry_no_guards(void *arg)
can't find a proper entry guard. */
tt_assert(chosen_entry);
+ /* And with the other IP version active */
+ mocked_options.ClientUseIPv6 = 1;
+ chosen_entry = choose_random_entry(NULL);
+ tt_assert(chosen_entry);
+
+ /* And with the preference on auto */
+ mocked_options.ClientPreferIPv6ORPort = -1;
+ chosen_entry = choose_random_entry(NULL);
+ tt_assert(chosen_entry);
+
+ /* Check that we don't get a guard if it doesn't pass mandatory address
+ * settings */
+ memset(&mocked_options, 0, sizeof(mocked_options));
+ mocked_options.ClientUseIPv4 = 0;
+ mocked_options.ClientPreferIPv6ORPort = 0;
+
+ chosen_entry = choose_random_entry(NULL);
+
+ /* If we don't allow IPv4 at all, we don't get a guard*/
+ tt_assert(!chosen_entry);
+
+ /* Check that we get a guard if it passes allowed but not preferred address
+ * settings */
+ memset(&mocked_options, 0, sizeof(mocked_options));
+ mocked_options.ClientUseIPv4 = 1;
+ mocked_options.ClientUseIPv6 = 1;
+ mocked_options.ClientPreferIPv6ORPort = 1;
+
+ chosen_entry = choose_random_entry(NULL);
+ tt_assert(chosen_entry);
+
+ /* Check that we get a guard if it passes preferred address settings when
+ * they're auto */
+ memset(&mocked_options, 0, sizeof(mocked_options));
+ mocked_options.ClientUseIPv4 = 1;
+ mocked_options.ClientPreferIPv6ORPort = -1;
+
+ chosen_entry = choose_random_entry(NULL);
+ tt_assert(chosen_entry);
+
+ /* And with IPv6 active */
+ mocked_options.ClientUseIPv6 = 1;
+
+ chosen_entry = choose_random_entry(NULL);
+ tt_assert(chosen_entry);
+
done:
- ;
+ memset(&mocked_options, 0, sizeof(mocked_options));
+ UNMOCK(get_options);
}
/** Test choose_random_entry() with only one of our routers being a
@@ -101,17 +166,78 @@ test_choose_random_entry_one_possible_guard(void *arg)
(void) arg;
+ MOCK(get_options, mock_get_options);
+
/* Set one of the nodes to be a guard. */
our_nodelist = nodelist_get_list();
the_guard = smartlist_get(our_nodelist, 4); /* chosen by fair dice roll */
the_guard->is_possible_guard = 1;
+ /* Check that we get the guard if it passes preferred
+ * address settings */
+ memset(&mocked_options, 0, sizeof(mocked_options));
+ mocked_options.ClientUseIPv4 = 1;
+ mocked_options.ClientPreferIPv6ORPort = 0;
+
/* Pick an entry. Make sure we pick the node we marked as guard. */
chosen_entry = choose_random_entry(NULL);
tt_ptr_op(chosen_entry, OP_EQ, the_guard);
+ /* And with the other IP version active */
+ mocked_options.ClientUseIPv6 = 1;
+ chosen_entry = choose_random_entry(NULL);
+ tt_ptr_op(chosen_entry, OP_EQ, the_guard);
+
+ /* And with the preference on auto */
+ mocked_options.ClientPreferIPv6ORPort = -1;
+ chosen_entry = choose_random_entry(NULL);
+ tt_ptr_op(chosen_entry, OP_EQ, the_guard);
+
+ /* Check that we don't get a guard if it doesn't pass mandatory address
+ * settings */
+ memset(&mocked_options, 0, sizeof(mocked_options));
+ mocked_options.ClientUseIPv4 = 0;
+ mocked_options.ClientPreferIPv6ORPort = 0;
+
+ chosen_entry = choose_random_entry(NULL);
+
+ /* If we don't allow IPv4 at all, we don't get a guard*/
+ tt_assert(!chosen_entry);
+
+ /* Check that we get a node if it passes allowed but not preferred
+ * address settings */
+ memset(&mocked_options, 0, sizeof(mocked_options));
+ mocked_options.ClientUseIPv4 = 1;
+ mocked_options.ClientUseIPv6 = 1;
+ mocked_options.ClientPreferIPv6ORPort = 1;
+
+ chosen_entry = choose_random_entry(NULL);
+
+ /* We disable the guard check and the preferred address check at the same
+ * time, so we can't be sure we get the guard */
+ tt_assert(chosen_entry);
+
+ /* Check that we get a node if it is allowed but not preferred when settings
+ * are auto */
+ memset(&mocked_options, 0, sizeof(mocked_options));
+ mocked_options.ClientUseIPv4 = 1;
+ mocked_options.ClientPreferIPv6ORPort = -1;
+
+ chosen_entry = choose_random_entry(NULL);
+
+ /* We disable the guard check and the preferred address check at the same
+ * time, so we can't be sure we get the guard */
+ tt_assert(chosen_entry);
+
+ /* and with IPv6 active */
+ mocked_options.ClientUseIPv6 = 1;
+
+ chosen_entry = choose_random_entry(NULL);
+ tt_assert(chosen_entry);
+
done:
- ;
+ memset(&mocked_options, 0, sizeof(mocked_options));
+ UNMOCK(get_options);
}
/** Helper to conduct tests for populate_live_entry_guards().
@@ -624,6 +750,93 @@ test_entry_is_live(void *arg)
; /* XXX */
}
+#define TEST_IPV4_ADDR "123.45.67.89"
+#define TEST_IPV6_ADDR "[1234:5678:90ab:cdef::]"
+
+static void
+test_node_preferred_orport(void *arg)
+{
+ (void)arg;
+ tor_addr_t ipv4_addr;
+ const uint16_t ipv4_port = 4444;
+ tor_addr_t ipv6_addr;
+ const uint16_t ipv6_port = 6666;
+ routerinfo_t node_ri;
+ node_t node;
+ tor_addr_port_t ap;
+
+ /* Setup options */
+ memset(&mocked_options, 0, sizeof(mocked_options));
+ /* We don't test ClientPreferIPv6ORPort here, because it's used in
+ * nodelist_set_consensus to setup node.ipv6_preferred, which we set
+ * directly. */
+ MOCK(get_options, mock_get_options);
+
+ /* Setup IP addresses */
+ tor_addr_parse(&ipv4_addr, TEST_IPV4_ADDR);
+ tor_addr_parse(&ipv6_addr, TEST_IPV6_ADDR);
+
+ /* Setup node_ri */
+ memset(&node_ri, 0, sizeof(node_ri));
+ node_ri.addr = tor_addr_to_ipv4h(&ipv4_addr);
+ node_ri.or_port = ipv4_port;
+ tor_addr_copy(&node_ri.ipv6_addr, &ipv6_addr);
+ node_ri.ipv6_orport = ipv6_port;
+
+ /* Setup node */
+ memset(&node, 0, sizeof(node));
+ node.ri = &node_ri;
+
+ /* Check the preferred address is IPv4 if we're only using IPv4, regardless
+ * of whether we prefer it or not */
+ mocked_options.ClientUseIPv4 = 1;
+ mocked_options.ClientUseIPv6 = 0;
+ node.ipv6_preferred = 0;
+ node_get_pref_orport(&node, &ap);
+ tt_assert(tor_addr_eq(&ap.addr, &ipv4_addr));
+ tt_assert(ap.port == ipv4_port);
+
+ node.ipv6_preferred = 1;
+ node_get_pref_orport(&node, &ap);
+ tt_assert(tor_addr_eq(&ap.addr, &ipv4_addr));
+ tt_assert(ap.port == ipv4_port);
+
+ /* Check the preferred address is IPv4 if we're using IPv4 and IPv6, but
+ * don't prefer the IPv6 address */
+ mocked_options.ClientUseIPv4 = 1;
+ mocked_options.ClientUseIPv6 = 1;
+ node.ipv6_preferred = 0;
+ node_get_pref_orport(&node, &ap);
+ tt_assert(tor_addr_eq(&ap.addr, &ipv4_addr));
+ tt_assert(ap.port == ipv4_port);
+
+ /* Check the preferred address is IPv6 if we prefer it and
+ * ClientUseIPv6 is 1, regardless of ClientUseIPv4 */
+ mocked_options.ClientUseIPv4 = 1;
+ mocked_options.ClientUseIPv6 = 1;
+ node.ipv6_preferred = 1;
+ node_get_pref_orport(&node, &ap);
+ tt_assert(tor_addr_eq(&ap.addr, &ipv6_addr));
+ tt_assert(ap.port == ipv6_port);
+
+ mocked_options.ClientUseIPv4 = 0;
+ node_get_pref_orport(&node, &ap);
+ tt_assert(tor_addr_eq(&ap.addr, &ipv6_addr));
+ tt_assert(ap.port == ipv6_port);
+
+ /* Check the preferred address is IPv6 if we don't prefer it, but
+ * ClientUseIPv4 is 0 */
+ mocked_options.ClientUseIPv4 = 0;
+ mocked_options.ClientUseIPv6 = 1;
+ node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(&mocked_options);
+ node_get_pref_orport(&node, &ap);
+ tt_assert(tor_addr_eq(&ap.addr, &ipv6_addr));
+ tt_assert(ap.port == ipv6_port);
+
+ done:
+ UNMOCK(get_options);
+}
+
static const struct testcase_setup_t fake_network = {
fake_network_setup, fake_network_cleanup
};
@@ -654,6 +867,9 @@ struct testcase_t entrynodes_tests[] = {
{ "entry_is_live",
test_entry_is_live,
TT_FORK, &fake_network, NULL },
+ { "node_preferred_orport",
+ test_node_preferred_orport,
+ 0, NULL, NULL },
END_OF_TESTCASES
};
diff --git a/src/test/test_extorport.c b/src/test/test_extorport.c
index 5d38ed8fa2..1f92780177 100644
--- a/src/test/test_extorport.c
+++ b/src/test/test_extorport.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define CONNECTION_PRIVATE
diff --git a/src/test/test_guardfraction.c b/src/test/test_guardfraction.c
index 57063c9085..300590a3d9 100644
--- a/src/test/test_guardfraction.c
+++ b/src/test/test_guardfraction.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define DIRSERV_PRIVATE
diff --git a/src/test/test_helpers.c b/src/test/test_helpers.c
index c3ca0c3554..c6daaf220a 100644
--- a/src/test/test_helpers.c
+++ b/src/test/test_helpers.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/test/test_helpers.h b/src/test/test_helpers.h
index 369243b459..684375e1b1 100644
--- a/src/test/test_helpers.h
+++ b/src/test/test_helpers.h
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#ifndef TOR_TEST_HELPERS_H
diff --git a/src/test/test_hs.c b/src/test/test_hs.c
index 126e211858..49939a53cf 100644
--- a/src/test/test_hs.c
+++ b/src/test/test_hs.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2015, The Tor Project, Inc. */
+/* Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/test/test_introduce.c b/src/test/test_introduce.c
index 0cab8ef4cc..9c7a86da66 100644
--- a/src/test/test_introduce.c
+++ b/src/test/test_introduce.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_keypin.c b/src/test/test_keypin.c
index bd0f6fdd52..95657349c6 100644
--- a/src/test/test_keypin.c
+++ b/src/test/test_keypin.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_link_handshake.c b/src/test/test_link_handshake.c
index 7ad2c30d0f..e8856c60de 100644
--- a/src/test/test_link_handshake.c
+++ b/src/test/test_link_handshake.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_logging.c b/src/test/test_logging.c
index 6205b3bdc5..eb294fe6f8 100644
--- a/src/test/test_logging.c
+++ b/src/test/test_logging.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_microdesc.c b/src/test/test_microdesc.c
index b205eff24e..7db819a622 100644
--- a/src/test/test_microdesc.c
+++ b/src/test/test_microdesc.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Tor Project, Inc. */
+/* Copyright (c) 2010-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_nodelist.c b/src/test/test_nodelist.c
index b0cb87dc60..d58f8a7fca 100644
--- a/src/test/test_nodelist.c
+++ b/src/test/test_nodelist.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2007-2015, The Tor Project, Inc. */
+/* Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/test/test_ntor_cl.c b/src/test/test_ntor_cl.c
index 915a5d0a7c..6df123162e 100644
--- a/src/test/test_ntor_cl.c
+++ b/src/test/test_ntor_cl.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_oom.c b/src/test/test_oom.c
index 41cfcdbd81..2569b6e00f 100644
--- a/src/test/test_oom.c
+++ b/src/test/test_oom.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/* Unit tests for OOM handling logic */
diff --git a/src/test/test_options.c b/src/test/test_options.c
index dcf97f897f..d294e607a2 100644
--- a/src/test/test_options.c
+++ b/src/test/test_options.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define CONFIG_PRIVATE
@@ -158,7 +158,6 @@ test_options_validate_impl(const char *configuration,
}
done:
- memarea_clear_freelist();
escaped(NULL);
policies_free_all();
config_free_lines(cl);
@@ -211,7 +210,7 @@ test_have_enough_mem_for_dircache(void *arg)
{
(void)arg;
or_options_t *opt=NULL;
- or_options_t *dflt;
+ or_options_t *dflt=NULL;
config_line_t *cl=NULL;
char *msg=NULL;;
int r;
@@ -242,6 +241,7 @@ test_have_enough_mem_for_dircache(void *arg)
}
tor_free(msg);
+ config_free_lines(cl); cl = NULL;
configuration = "ORPort 8080\nDirCache 1\nBridgeRelay 1";
r = config_get_lines(configuration, &cl, 1);
tt_int_op(r, OP_EQ, 0);
@@ -264,6 +264,7 @@ test_have_enough_mem_for_dircache(void *arg)
}
tor_free(msg);
+ config_free_lines(cl); cl = NULL;
configuration = "ORPort 8080\nDirCache 0";
r = config_get_lines(configuration, &cl, 1);
tt_int_op(r, OP_EQ, 0);
@@ -291,9 +292,9 @@ test_have_enough_mem_for_dircache(void *arg)
done:
if (msg)
tor_free(msg);
- tor_free(dflt);
- tor_free(opt);
- tor_free(cl);
+ or_options_free(dflt);
+ or_options_free(opt);
+ config_free_lines(cl);
return;
}
@@ -327,6 +328,7 @@ fixed_get_uname(void)
"V3AuthVoteDelay 20\n" \
"V3AuthDistDelay 20\n" \
"V3AuthNIntervalsValid 3\n" \
+ "ClientUseIPv4 1\n" \
"VirtualAddrNetworkIPv4 127.192.0.0/10\n" \
"VirtualAddrNetworkIPv6 [FE80::]/10\n" \
"SchedulerHighWaterMark__ 42\n" \
@@ -392,6 +394,14 @@ free_options_test_data(options_test_data_t *td)
tor_free(td);
}
+#define expect_log_msg(str) \
+ tt_assert_msg(mock_saved_log_has_message(str), \
+ "expected log to contain " # str);
+
+#define expect_no_log_msg(str) \
+ tt_assert_msg(!mock_saved_log_has_message(str), \
+ "expected log to not contain " # str);
+
static void
test_options_validate__uname_for_server(void *ignored)
{
@@ -1048,7 +1058,7 @@ test_options_validate__transproxy(void *ignored)
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
tt_int_op(ret, OP_EQ, -1);
-#if !defined(__FreeBSD__) && !defined( DARWIN )
+#ifndef KERNEL_MAY_SUPPORT_IPFW
tt_str_op(msg, OP_EQ, "ipfw is a FreeBSD-specificand OS X/Darwin-specific "
"feature.");
#else
@@ -1076,7 +1086,7 @@ test_options_validate__transproxy(void *ignored)
tt_int_op(ret, OP_EQ, -1);
tt_assert(!msg);
#endif
-#if defined(__FreeBSD__) || defined( DARWIN )
+#if defined(__FreeBSD_kernel__) || defined( DARWIN )
tdata = get_options_test_data("TransProxyType ipfw\n"
"TransPort 127.0.0.1:123\n");
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
@@ -1715,6 +1725,10 @@ test_options_validate__reachable_addresses(void *ignored)
tt_str_op(tdata->opt->ReachableAddresses->value, OP_EQ, "*:82");
tor_free(msg);
+#define SERVERS_REACHABLE_MSG "Servers must be able to freely connect to" \
+ " the rest of the Internet, so they must not set Reachable*Addresses or" \
+ " FascistFirewall or FirewallPorts or ClientUseIPv4 0."
+
free_options_test_data(tdata);
tdata = get_options_test_data("ReachableAddresses *:82\n"
"ORListenAddress 127.0.0.1:5555\n"
@@ -1726,9 +1740,7 @@ test_options_validate__reachable_addresses(void *ignored)
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
tt_int_op(ret, OP_EQ, -1);
- tt_str_op(msg, OP_EQ, "Servers must be able to freely connect to the rest of"
- " the Internet, so they must not set Reachable*Addresses or"
- " FascistFirewall.");
+ tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG);
tor_free(msg);
free_options_test_data(tdata);
@@ -1742,9 +1754,7 @@ test_options_validate__reachable_addresses(void *ignored)
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
tt_int_op(ret, OP_EQ, -1);
- tt_str_op(msg, OP_EQ, "Servers must be able to freely connect to the rest of"
- " the Internet, so they must not set Reachable*Addresses or"
- " FascistFirewall.");
+ tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG);
tor_free(msg);
free_options_test_data(tdata);
@@ -1758,11 +1768,107 @@ test_options_validate__reachable_addresses(void *ignored)
ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
tt_int_op(ret, OP_EQ, -1);
- tt_str_op(msg, OP_EQ, "Servers must be able to freely connect to the rest of"
- " the Internet, so they must not set Reachable*Addresses or"
- " FascistFirewall.");
+ tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG);
+ tor_free(msg);
+
+ free_options_test_data(tdata);
+ tdata = get_options_test_data("ClientUseIPv4 0\n"
+ "ORListenAddress 127.0.0.1:5555\n"
+ "ORPort 955\n"
+ "MaxClientCircuitsPending 1\n"
+ "ConnLimit 1\n"
+ "SchedulerHighWaterMark__ 42\n"
+ "SchedulerLowWaterMark__ 10\n");
+
+ ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
+ tt_int_op(ret, OP_EQ, -1);
+ tt_str_op(msg, OP_EQ, SERVERS_REACHABLE_MSG);
+ tor_free(msg);
+
+ /* Test IPv4-only clients setting IPv6 preferences */
+
+#define WARN_PLEASE_USE_IPV6_OR_LOG_MSG \
+ "ClientPreferIPv6ORPort 1 is ignored unless tor is using IPv6. " \
+ "Please set ClientUseIPv6 1, ClientUseIPv4 0, or configure bridges.\n"
+
+#define WARN_PLEASE_USE_IPV6_DIR_LOG_MSG \
+ "ClientPreferIPv6DirPort 1 is ignored unless tor is using IPv6. " \
+ "Please set ClientUseIPv6 1, ClientUseIPv4 0, or configure bridges.\n"
+
+ free_options_test_data(tdata);
+ tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES
+ "ClientUseIPv4 1\n"
+ "ClientUseIPv6 0\n"
+ "UseBridges 0\n"
+ "ClientPreferIPv6ORPort 1\n");
+
+ ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
+ tt_int_op(ret, OP_EQ, 0);
+ expect_log_msg(WARN_PLEASE_USE_IPV6_OR_LOG_MSG);
+ tor_free(msg);
+
+ free_options_test_data(tdata);
+ tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES
+ "ClientUseIPv4 1\n"
+ "ClientUseIPv6 0\n"
+ "UseBridges 0\n"
+ "ClientPreferIPv6DirPort 1\n");
+
+ ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
+ tt_int_op(ret, OP_EQ, 0);
+ expect_log_msg(WARN_PLEASE_USE_IPV6_DIR_LOG_MSG);
tor_free(msg);
+ /* Now test an IPv4/IPv6 client setting IPv6 preferences */
+
+ free_options_test_data(tdata);
+ tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES
+ "ClientUseIPv4 1\n"
+ "ClientUseIPv6 1\n"
+ "ClientPreferIPv6ORPort 1\n"
+ "ClientPreferIPv6DirPort 1\n");
+
+ ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
+ tt_int_op(ret, OP_EQ, 0);
+ tt_ptr_op(msg, OP_EQ, NULL);
+
+ /* Now test an IPv6 client setting IPv6 preferences */
+
+ free_options_test_data(tdata);
+ tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES
+ "ClientUseIPv6 1\n"
+ "ClientPreferIPv6ORPort 1\n"
+ "ClientPreferIPv6DirPort 1\n");
+
+ ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
+ tt_int_op(ret, OP_EQ, 0);
+ tt_ptr_op(msg, OP_EQ, NULL);
+
+ /* And an implicit (IPv4 disabled) IPv6 client setting IPv6 preferences */
+
+ free_options_test_data(tdata);
+ tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES
+ "ClientUseIPv4 0\n"
+ "ClientPreferIPv6ORPort 1\n"
+ "ClientPreferIPv6DirPort 1\n");
+
+ ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
+ tt_int_op(ret, OP_EQ, 0);
+ tt_ptr_op(msg, OP_EQ, NULL);
+
+ /* And an implicit (bridge) client setting IPv6 preferences */
+
+ free_options_test_data(tdata);
+ tdata = get_options_test_data(TEST_OPTIONS_DEFAULT_VALUES
+ "UseBridges 1\n"
+ "Bridge 127.0.0.1:12345\n"
+ "ClientPreferIPv6ORPort 1\n"
+ "ClientPreferIPv6DirPort 1\n");
+
+ ret = options_validate(tdata->old_opt, tdata->opt, tdata->def_opt, 0, &msg);
+ tt_int_op(ret, OP_EQ, 0);
+ tt_ptr_op(msg, OP_EQ, NULL);
+
done:
teardown_capture_of_logs(previous_log);
free_options_test_data(tdata);
@@ -1777,6 +1883,7 @@ test_options_validate__use_bridges(void *ignored)
char *msg;
options_test_data_t *tdata = get_options_test_data(
"UseBridges 1\n"
+ "ClientUseIPv4 1\n"
"ORListenAddress 127.0.0.1:5555\n"
"ORPort 955\n"
"MaxClientCircuitsPending 1\n"
@@ -1841,7 +1948,6 @@ test_options_validate__use_bridges(void *ignored)
done:
NS_UNMOCK(geoip_get_country);
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -2079,7 +2185,6 @@ test_options_validate__publish_server_descriptor(void *ignored)
done:
teardown_capture_of_logs(previous_log);
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -2155,7 +2260,6 @@ test_options_validate__testing(void *ignored)
done:
escaped(NULL); // This will free the leaking memory from the previous escaped
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -2203,7 +2307,6 @@ test_options_validate__hidserv(void *ignored)
done:
teardown_capture_of_logs(previous_log);
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -2228,7 +2331,6 @@ test_options_validate__predicted_ports(void *ignored)
done:
teardown_capture_of_logs(previous_log);
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -2431,7 +2533,6 @@ test_options_validate__bandwidth(void *ignored)
tor_free(msg);
done:
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -2519,7 +2620,6 @@ test_options_validate__circuits(void *ignored)
tor_free(msg);
done:
- memarea_clear_freelist();
policies_free_all();
teardown_capture_of_logs(previous_log);
free_options_test_data(tdata);
@@ -2553,7 +2653,6 @@ test_options_validate__port_forwarding(void *ignored)
done:
free_options_test_data(tdata);
- memarea_clear_freelist();
policies_free_all();
tor_free(msg);
}
@@ -2583,7 +2682,6 @@ test_options_validate__tor2web(void *ignored)
tor_free(msg);
done:
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -2650,7 +2748,6 @@ test_options_validate__rend(void *ignored)
tor_free(msg);
done:
- memarea_clear_freelist();
policies_free_all();
teardown_capture_of_logs(previous_log);
free_options_test_data(tdata);
@@ -2770,7 +2867,6 @@ test_options_validate__accounting(void *ignored)
done:
teardown_capture_of_logs(previous_log);
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -3102,7 +3198,6 @@ test_options_validate__proxy(void *ignored)
done:
teardown_capture_of_logs(previous_log);
free_options_test_data(tdata);
- memarea_clear_freelist();
policies_free_all();
// sandbox_free_getaddrinfo_cache();
tor_free(msg);
@@ -3330,7 +3425,6 @@ test_options_validate__control(void *ignored)
done:
teardown_capture_of_logs(previous_log);
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -3403,7 +3497,6 @@ test_options_validate__families(void *ignored)
done:
teardown_capture_of_logs(previous_log);
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -3428,7 +3521,6 @@ test_options_validate__addr_policies(void *ignored)
tor_free(msg);
done:
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -3515,7 +3607,6 @@ test_options_validate__dir_auth(void *ignored)
tor_free(msg);
done:
- memarea_clear_freelist();
policies_free_all();
teardown_capture_of_logs(previous_log);
free_options_test_data(tdata);
@@ -3641,7 +3732,6 @@ test_options_validate__transport(void *ignored)
done:
escaped(NULL); // This will free the leaking memory from the previous escaped
- memarea_clear_freelist();
policies_free_all();
teardown_capture_of_logs(previous_log);
free_options_test_data(tdata);
@@ -3725,7 +3815,6 @@ test_options_validate__constrained_sockets(void *ignored)
tor_free(msg);
done:
- memarea_clear_freelist();
policies_free_all();
teardown_capture_of_logs(previous_log);
free_options_test_data(tdata);
@@ -3945,7 +4034,6 @@ test_options_validate__v3_auth(void *ignored)
tor_free(msg);
done:
- memarea_clear_freelist();
policies_free_all();
teardown_capture_of_logs(previous_log);
free_options_test_data(tdata);
@@ -3980,7 +4068,6 @@ test_options_validate__virtual_addr(void *ignored)
done:
escaped(NULL); // This will free the leaking memory from the previous escaped
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
@@ -4022,7 +4109,6 @@ test_options_validate__exits(void *ignored)
tor_free(msg);
done:
- memarea_clear_freelist();
policies_free_all();
teardown_capture_of_logs(previous_log);
free_options_test_data(tdata);
@@ -4191,7 +4277,6 @@ test_options_validate__testing_options(void *ignored)
tor_free(msg);
done:
- memarea_clear_freelist();
policies_free_all();
teardown_capture_of_logs(previous_log);
free_options_test_data(tdata);
@@ -4245,7 +4330,6 @@ test_options_validate__accel(void *ignored)
tor_free(msg);
done:
- memarea_clear_freelist();
policies_free_all();
free_options_test_data(tdata);
tor_free(msg);
diff --git a/src/test/test_policy.c b/src/test/test_policy.c
index 794978fc42..48e82551e3 100644
--- a/src/test/test_policy.c
+++ b/src/test/test_policy.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2013-2015, The Tor Project, Inc. */
+/* Copyright (c) 2013-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "or.h"
@@ -1129,6 +1129,709 @@ test_policies_getinfo_helper_policies(void *arg)
#undef TEST_IPV4_ADDR
#undef TEST_IPV6_ADDR
+#define TEST_IPV4_ADDR_STR "1.2.3.4"
+#define TEST_IPV6_ADDR_STR "[1002::4567]"
+#define REJECT_IPv4_FINAL_STR "reject 0.0.0.0/0:*"
+#define REJECT_IPv6_FINAL_STR "reject [::]/0:*"
+
+#define OTHER_IPV4_ADDR_STR "6.7.8.9"
+#define OTHER_IPV6_ADDR_STR "[afff::]"
+
+/** Run unit tests for fascist_firewall_allows_address */
+static void
+test_policies_fascist_firewall_allows_address(void *arg)
+{
+ (void)arg;
+ tor_addr_t ipv4_addr, ipv6_addr, r_ipv4_addr, r_ipv6_addr;
+ tor_addr_t n_ipv4_addr, n_ipv6_addr;
+ const uint16_t port = 1234;
+ smartlist_t *policy = NULL;
+ smartlist_t *e_policy = NULL;
+ addr_policy_t *item = NULL;
+ int malformed_list = 0;
+
+ /* Setup the options and the items in the policies */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ MOCK(get_options, mock_get_options);
+
+ policy = smartlist_new();
+ item = router_parse_addr_policy_item_from_string("accept "
+ TEST_IPV4_ADDR_STR ":*",
+ ADDR_POLICY_ACCEPT,
+ &malformed_list);
+ tt_assert(item);
+ tt_assert(!malformed_list);
+ smartlist_add(policy, item);
+ item = router_parse_addr_policy_item_from_string("accept "
+ TEST_IPV6_ADDR_STR,
+ ADDR_POLICY_ACCEPT,
+ &malformed_list);
+ tt_assert(item);
+ tt_assert(!malformed_list);
+ smartlist_add(policy, item);
+ /* Normally, policy_expand_unspec would do this for us */
+ item = router_parse_addr_policy_item_from_string(REJECT_IPv4_FINAL_STR,
+ ADDR_POLICY_ACCEPT,
+ &malformed_list);
+ tt_assert(item);
+ tt_assert(!malformed_list);
+ smartlist_add(policy, item);
+ item = router_parse_addr_policy_item_from_string(REJECT_IPv6_FINAL_STR,
+ ADDR_POLICY_ACCEPT,
+ &malformed_list);
+ tt_assert(item);
+ tt_assert(!malformed_list);
+ smartlist_add(policy, item);
+ item = NULL;
+
+ e_policy = smartlist_new();
+
+ /*
+ char *polstr = policy_dump_to_string(policy, 1, 1);
+ printf("%s\n", polstr);
+ tor_free(polstr);
+ */
+
+ /* Parse the addresses */
+ tor_addr_parse(&ipv4_addr, TEST_IPV4_ADDR_STR);
+ tor_addr_parse(&ipv6_addr, TEST_IPV6_ADDR_STR);
+ tor_addr_parse(&r_ipv4_addr, OTHER_IPV4_ADDR_STR);
+ tor_addr_parse(&r_ipv6_addr, OTHER_IPV6_ADDR_STR);
+ tor_addr_make_null(&n_ipv4_addr, AF_INET);
+ tor_addr_make_null(&n_ipv6_addr, AF_INET6);
+
+ /* Test the function's address matching with IPv4 and IPv6 on */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ClientUseIPv4 = 1;
+ mock_options.ClientUseIPv6 = 1;
+ mock_options.UseBridges = 0;
+
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0)
+ == 0);
+
+ /* Preferring IPv4 */
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 1, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 1, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 1, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 1, 0)
+ == 0);
+
+ /* Preferring IPv6 */
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 1, 1)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 1, 1)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 1, 1)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 1, 1)
+ == 0);
+
+ /* Test the function's address matching with UseBridges on */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ClientUseIPv4 = 1;
+ mock_options.ClientUseIPv6 = 1;
+ mock_options.UseBridges = 1;
+
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0)
+ == 0);
+
+ /* Preferring IPv4 */
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 1, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 1, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 1, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 1, 0)
+ == 0);
+
+ /* Preferring IPv6 */
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 1, 1)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 1, 1)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 1, 1)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 1, 1)
+ == 0);
+
+ /* bridge clients always use IPv6, regardless of ClientUseIPv6 */
+ mock_options.ClientUseIPv4 = 1;
+ mock_options.ClientUseIPv6 = 0;
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0)
+ == 0);
+
+ /* Test the function's address matching with IPv4 on */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ClientUseIPv4 = 1;
+ mock_options.ClientUseIPv6 = 0;
+ mock_options.UseBridges = 0;
+
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0)
+ == 0);
+
+ /* Test the function's address matching with IPv6 on */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ClientUseIPv4 = 0;
+ mock_options.ClientUseIPv6 = 1;
+ mock_options.UseBridges = 0;
+
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0)
+ == 0);
+
+ /* Test the function's address matching with ClientUseIPv4 0.
+ * This means "use IPv6" regardless of the other settings. */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ClientUseIPv4 = 0;
+ mock_options.ClientUseIPv6 = 0;
+ mock_options.UseBridges = 0;
+
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, policy, 0, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, policy, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&r_ipv4_addr, port, policy, 0, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&r_ipv6_addr, port, policy, 0, 0)
+ == 0);
+
+ /* Test the function's address matching for unusual inputs */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ClientUseIPv4 = 1;
+ mock_options.ClientUseIPv6 = 1;
+ mock_options.UseBridges = 1;
+
+ /* NULL and tor_addr_is_null addresses are rejected */
+ tt_assert(fascist_firewall_allows_address(NULL, port, policy, 0, 0) == 0);
+ tt_assert(fascist_firewall_allows_address(&n_ipv4_addr, port, policy, 0, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&n_ipv6_addr, port, policy, 0, 0)
+ == 0);
+
+ /* zero ports are rejected */
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, 0, policy, 0, 0)
+ == 0);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, 0, policy, 0, 0)
+ == 0);
+
+ /* NULL and empty policies accept everything */
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, NULL, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, NULL, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&ipv4_addr, port, e_policy, 0, 0)
+ == 1);
+ tt_assert(fascist_firewall_allows_address(&ipv6_addr, port, e_policy, 0, 0)
+ == 1);
+
+ done:
+ addr_policy_free(item);
+ addr_policy_list_free(policy);
+ addr_policy_list_free(e_policy);
+ UNMOCK(get_options);
+}
+
+#undef REJECT_IPv4_FINAL_STR
+#undef REJECT_IPv6_FINAL_STR
+#undef OTHER_IPV4_ADDR_STR
+#undef OTHER_IPV6_ADDR_STR
+
+#define TEST_IPV4_OR_PORT 1234
+#define TEST_IPV4_DIR_PORT 2345
+#define TEST_IPV6_OR_PORT 61234
+#define TEST_IPV6_DIR_PORT 62345
+
+/* Check that fascist_firewall_choose_address_rs() returns the expected
+ * results. */
+#define CHECK_CHOSEN_ADDR_RS(fake_rs, fw_connection, pref_only, expect_rv, \
+ expect_ap) \
+ STMT_BEGIN \
+ tor_addr_port_t chosen_rs_ap; \
+ tor_addr_make_null(&chosen_rs_ap.addr, AF_INET); \
+ chosen_rs_ap.port = 0; \
+ tt_int_op(fascist_firewall_choose_address_rs(&(fake_rs), \
+ (fw_connection), \
+ (pref_only), \
+ &chosen_rs_ap), \
+ OP_EQ, (expect_rv)); \
+ tt_assert(tor_addr_eq(&(expect_ap).addr, &chosen_rs_ap.addr)); \
+ tt_int_op((expect_ap).port, OP_EQ, chosen_rs_ap.port); \
+ STMT_END
+
+/* Check that fascist_firewall_choose_address_node() returns the expected
+ * results. */
+#define CHECK_CHOSEN_ADDR_NODE(fake_node, fw_connection, pref_only, \
+ expect_rv, expect_ap) \
+ STMT_BEGIN \
+ tor_addr_port_t chosen_node_ap; \
+ tor_addr_make_null(&chosen_node_ap.addr, AF_INET); \
+ chosen_node_ap.port = 0; \
+ tt_int_op(fascist_firewall_choose_address_node(&(fake_node), \
+ (fw_connection), \
+ (pref_only), \
+ &chosen_node_ap), \
+ OP_EQ, (expect_rv)); \
+ tt_assert(tor_addr_eq(&(expect_ap).addr, &chosen_node_ap.addr)); \
+ tt_int_op((expect_ap).port, OP_EQ, chosen_node_ap.port); \
+ STMT_END
+
+/* Check that fascist_firewall_choose_address_rs and
+ * fascist_firewall_choose_address_node() both return the expected results. */
+#define CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, fw_connection, pref_only, \
+ expect_rv, expect_ap) \
+ STMT_BEGIN \
+ CHECK_CHOSEN_ADDR_RS(fake_rs, fw_connection, pref_only, expect_rv, \
+ expect_ap); \
+ CHECK_CHOSEN_ADDR_NODE(fake_node, fw_connection, pref_only, expect_rv, \
+ expect_ap); \
+ STMT_END
+
+/** Run unit tests for fascist_firewall_choose_address */
+static void
+test_policies_fascist_firewall_choose_address(void *arg)
+{
+ (void)arg;
+ tor_addr_port_t ipv4_or_ap, ipv4_dir_ap, ipv6_or_ap, ipv6_dir_ap;
+ tor_addr_port_t n_ipv4_ap, n_ipv6_ap;
+
+ /* Setup the options */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ MOCK(get_options, mock_get_options);
+
+ /* Parse the addresses */
+ tor_addr_parse(&ipv4_or_ap.addr, TEST_IPV4_ADDR_STR);
+ ipv4_or_ap.port = TEST_IPV4_OR_PORT;
+ tor_addr_parse(&ipv4_dir_ap.addr, TEST_IPV4_ADDR_STR);
+ ipv4_dir_ap.port = TEST_IPV4_DIR_PORT;
+
+ tor_addr_parse(&ipv6_or_ap.addr, TEST_IPV6_ADDR_STR);
+ ipv6_or_ap.port = TEST_IPV6_OR_PORT;
+ tor_addr_parse(&ipv6_dir_ap.addr, TEST_IPV6_ADDR_STR);
+ ipv6_dir_ap.port = TEST_IPV6_DIR_PORT;
+
+ tor_addr_make_null(&n_ipv4_ap.addr, AF_INET);
+ n_ipv4_ap.port = 0;
+ tor_addr_make_null(&n_ipv6_ap.addr, AF_INET6);
+ n_ipv6_ap.port = 0;
+
+ /* Sanity check fascist_firewall_choose_address with IPv4 and IPv6 on */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ClientUseIPv4 = 1;
+ mock_options.ClientUseIPv6 = 1;
+ mock_options.UseBridges = 0;
+
+ /* Prefer IPv4 */
+ tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 1,
+ FIREWALL_OR_CONNECTION, 0, 0)
+ == &ipv4_or_ap);
+ tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 1,
+ FIREWALL_OR_CONNECTION, 1, 0)
+ == &ipv4_or_ap);
+ tt_assert(fascist_firewall_choose_address(&ipv4_dir_ap, &ipv6_dir_ap, 1,
+ FIREWALL_DIR_CONNECTION, 0, 0)
+ == &ipv4_dir_ap);
+ tt_assert(fascist_firewall_choose_address(&ipv4_dir_ap, &ipv6_dir_ap, 1,
+ FIREWALL_DIR_CONNECTION, 1, 0)
+ == &ipv4_dir_ap);
+
+ /* Prefer IPv6 */
+ tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 0,
+ FIREWALL_OR_CONNECTION, 0, 1)
+ == &ipv6_or_ap);
+ tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 0,
+ FIREWALL_OR_CONNECTION, 1, 1)
+ == &ipv6_or_ap);
+ tt_assert(fascist_firewall_choose_address(&ipv4_dir_ap, &ipv6_dir_ap, 0,
+ FIREWALL_DIR_CONNECTION, 0, 1)
+ == &ipv6_dir_ap);
+ tt_assert(fascist_firewall_choose_address(&ipv4_dir_ap, &ipv6_dir_ap, 0,
+ FIREWALL_DIR_CONNECTION, 1, 1)
+ == &ipv6_dir_ap);
+
+ /* Unusual inputs */
+
+ /* null preferred OR addresses */
+ tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &n_ipv6_ap, 0,
+ FIREWALL_OR_CONNECTION, 0, 1)
+ == &ipv4_or_ap);
+ tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &ipv6_or_ap, 1,
+ FIREWALL_OR_CONNECTION, 0, 0)
+ == &ipv6_or_ap);
+
+ /* null both OR addresses */
+ tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &n_ipv6_ap, 0,
+ FIREWALL_OR_CONNECTION, 0, 1)
+ == NULL);
+ tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &n_ipv6_ap, 1,
+ FIREWALL_OR_CONNECTION, 0, 0)
+ == NULL);
+
+ /* null preferred Dir addresses */
+ tt_assert(fascist_firewall_choose_address(&ipv4_dir_ap, &n_ipv6_ap, 0,
+ FIREWALL_DIR_CONNECTION, 0, 1)
+ == &ipv4_dir_ap);
+ tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &ipv6_dir_ap, 1,
+ FIREWALL_DIR_CONNECTION, 0, 0)
+ == &ipv6_dir_ap);
+
+ /* null both Dir addresses */
+ tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &n_ipv6_ap, 0,
+ FIREWALL_DIR_CONNECTION, 0, 1)
+ == NULL);
+ tt_assert(fascist_firewall_choose_address(&n_ipv4_ap, &n_ipv6_ap, 1,
+ FIREWALL_DIR_CONNECTION, 0, 0)
+ == NULL);
+
+ /* Prefer IPv4 but want IPv6 (contradictory) */
+ tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 0,
+ FIREWALL_OR_CONNECTION, 0, 0)
+ == &ipv4_or_ap);
+ tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 0,
+ FIREWALL_OR_CONNECTION, 1, 0)
+ == &ipv4_or_ap);
+
+ /* Prefer IPv6 but want IPv4 (contradictory) */
+ tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 1,
+ FIREWALL_OR_CONNECTION, 0, 1)
+ == &ipv6_or_ap);
+ tt_assert(fascist_firewall_choose_address(&ipv4_or_ap, &ipv6_or_ap, 1,
+ FIREWALL_OR_CONNECTION, 1, 1)
+ == &ipv6_or_ap);
+
+ /* Make a fake rs. There will be no corresponding node.
+ * This is what happens when there's no consensus and we're bootstrapping
+ * from authorities / fallbacks. */
+ routerstatus_t fake_rs;
+ memset(&fake_rs, 0, sizeof(routerstatus_t));
+ /* In a routerstatus, the OR and Dir addresses are the same */
+ fake_rs.addr = tor_addr_to_ipv4h(&ipv4_or_ap.addr);
+ fake_rs.or_port = ipv4_or_ap.port;
+ fake_rs.dir_port = ipv4_dir_ap.port;
+
+ tor_addr_copy(&fake_rs.ipv6_addr, &ipv6_or_ap.addr);
+ fake_rs.ipv6_orport = ipv6_or_ap.port;
+ /* In a routerstatus, the IPv4 and IPv6 DirPorts are the same.*/
+ ipv6_dir_ap.port = TEST_IPV4_DIR_PORT;
+
+ /* Make a fake node. Even though it contains the fake_rs, a lookup won't
+ * find the node from the rs, because they're not in the hash table. */
+ node_t fake_node;
+ memset(&fake_node, 0, sizeof(node_t));
+ fake_node.rs = &fake_rs;
+
+ /* Choose an address with IPv4 and IPv6 on */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ClientUseIPv4 = 1;
+ mock_options.ClientUseIPv6 = 1;
+ mock_options.UseBridges = 0;
+
+ /* Preferring IPv4 */
+ mock_options.ClientPreferIPv6ORPort = 0;
+ mock_options.ClientPreferIPv6DirPort = 0;
+ /* Simulate the initialisation of fake_node.ipv6_preferred */
+ fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(
+ &mock_options);
+
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv4_dir_ap);
+
+ /* Auto (Preferring IPv4) */
+ mock_options.ClientPreferIPv6ORPort = -1;
+ mock_options.ClientPreferIPv6DirPort = -1;
+ /* Simulate the initialisation of fake_node.ipv6_preferred */
+ fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(
+ &mock_options);
+
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv4_dir_ap);
+
+ /* Preferring IPv6 */
+ mock_options.ClientPreferIPv6ORPort = 1;
+ mock_options.ClientPreferIPv6DirPort = 1;
+ /* Simulate the initialisation of fake_node.ipv6_preferred */
+ fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(
+ &mock_options);
+
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1,
+ ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1,
+ ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv6_dir_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv6_dir_ap);
+
+ /* Preferring IPv4 OR / IPv6 Dir */
+ mock_options.ClientPreferIPv6ORPort = 0;
+ mock_options.ClientPreferIPv6DirPort = 1;
+ /* Simulate the initialisation of fake_node.ipv6_preferred */
+ fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(
+ &mock_options);
+
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv6_dir_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv6_dir_ap);
+
+ /* Preferring IPv6 OR / IPv4 Dir */
+ mock_options.ClientPreferIPv6ORPort = 1;
+ mock_options.ClientPreferIPv6DirPort = 0;
+ /* Simulate the initialisation of fake_node.ipv6_preferred */
+ fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(
+ &mock_options);
+
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1,
+ ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1,
+ ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv4_dir_ap);
+
+ /* Choose an address with UseBridges on */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.UseBridges = 1;
+ mock_options.ClientUseIPv4 = 1;
+ mock_options.ClientUseIPv6 = 1;
+
+ /* Preferring IPv4 */
+ mock_options.ClientPreferIPv6ORPort = 0;
+ mock_options.ClientPreferIPv6DirPort = 0;
+ /* Simulate the initialisation of fake_node.ipv6_preferred */
+ fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(
+ &mock_options);
+
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv4_dir_ap);
+
+ /* Auto:
+ * - bridge clients prefer the configured bridge OR address from the node,
+ * (the configured address family sets node.ipv6_preferred)
+ * - other clients prefer IPv4 OR by default (see above),
+ * - all clients, including bridge clients, prefer IPv4 Dir by default.
+ */
+ mock_options.ClientPreferIPv6ORPort = -1;
+ mock_options.ClientPreferIPv6DirPort = -1;
+
+ /* Simulate the initialisation of fake_node.ipv6_preferred with a bridge
+ * configured with an IPv4 address */
+ fake_node.ipv6_preferred = 0;
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 0, 1, ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 1, 1, ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv4_dir_ap);
+
+ /* Simulate the initialisation of fake_node.ipv6_preferred with a bridge
+ * configured with an IPv6 address */
+ fake_node.ipv6_preferred = 1;
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 0, 1, ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 1, 1, ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv4_dir_ap);
+
+ /* When a rs has no node, it defaults to IPv4 under auto. */
+ CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_OR_CONNECTION, 0, 1, ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_OR_CONNECTION, 1, 1, ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_DIR_CONNECTION, 0, 1, ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_DIR_CONNECTION, 1, 1, ipv4_dir_ap);
+
+ /* Preferring IPv6 */
+ mock_options.ClientPreferIPv6ORPort = 1;
+ mock_options.ClientPreferIPv6DirPort = 1;
+ /* Simulate the initialisation of fake_node.ipv6_preferred */
+ fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(
+ &mock_options);
+
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1,
+ ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1,
+ ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv6_dir_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv6_dir_ap);
+
+ /* In the default configuration (Auto / IPv6 off), bridge clients should
+ * use both IPv4 and IPv6, but only prefer IPv6 for bridges configured with
+ * an IPv6 address, regardless of ClientUseIPv6. (See above.) */
+ mock_options.ClientUseIPv6 = 0;
+ mock_options.ClientPreferIPv6ORPort = -1;
+ mock_options.ClientPreferIPv6DirPort = -1;
+ /* Simulate the initialisation of fake_node.ipv6_preferred with a bridge
+ * configured with an IPv4 address */
+ fake_node.ipv6_preferred = 0;
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 0, 1, ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 1, 1, ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv4_dir_ap);
+
+ /* Simulate the initialisation of fake_node.ipv6_preferred with a bridge
+ * configured with an IPv6 address */
+ fake_node.ipv6_preferred = 1;
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 0, 1, ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_OR_CONNECTION, 1, 1, ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_NODE(fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv4_dir_ap);
+
+ /* When a rs has no node, it defaults to IPv4 under auto. */
+ CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_OR_CONNECTION, 0, 1, ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_OR_CONNECTION, 1, 1, ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_DIR_CONNECTION, 0, 1, ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_RS(fake_rs, FIREWALL_DIR_CONNECTION, 1, 1, ipv4_dir_ap);
+
+ /* Choose an address with IPv4 on */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ClientUseIPv4 = 1;
+ mock_options.ClientUseIPv6 = 0;
+ /* Simulate the initialisation of fake_node.ipv6_preferred */
+ fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(
+ &mock_options);
+
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv4_dir_ap);
+
+ /* Choose an address with IPv6 on */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ClientUseIPv4 = 0;
+ mock_options.ClientUseIPv6 = 1;
+ /* Simulate the initialisation of fake_node.ipv6_preferred */
+ fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(
+ &mock_options);
+
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1,
+ ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1,
+ ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv6_dir_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv6_dir_ap);
+
+ /* Choose an address with ClientUseIPv4 0.
+ * This means "use IPv6" regardless of the other settings. */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ClientUseIPv4 = 0;
+ mock_options.ClientUseIPv6 = 0;
+ /* Simulate the initialisation of fake_node.ipv6_preferred */
+ fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(
+ &mock_options);
+
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1,
+ ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1,
+ ipv6_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv6_dir_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv6_dir_ap);
+
+ /* Choose an address with ORPort_set 1 (server mode).
+ * This means "use IPv4" regardless of the other settings. */
+ memset(&mock_options, 0, sizeof(or_options_t));
+ mock_options.ORPort_set = 1;
+ mock_options.ClientUseIPv4 = 0;
+ mock_options.ClientUseIPv6 = 1;
+ mock_options.ClientPreferIPv6ORPort = 1;
+ mock_options.ClientPreferIPv6DirPort = 1;
+
+ /* Simulate the initialisation of fake_node.ipv6_preferred */
+ fake_node.ipv6_preferred = fascist_firewall_prefer_ipv6_orport(
+ &mock_options);
+
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 0, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_OR_CONNECTION, 1, 1,
+ ipv4_or_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 0, 1,
+ ipv4_dir_ap);
+ CHECK_CHOSEN_ADDR_RN(fake_rs, fake_node, FIREWALL_DIR_CONNECTION, 1, 1,
+ ipv4_dir_ap);
+
+ done:
+ UNMOCK(get_options);
+}
+
+#undef TEST_IPV4_ADDR_STR
+#undef TEST_IPV6_ADDR_STR
+#undef TEST_IPV4_OR_PORT
+#undef TEST_IPV4_DIR_PORT
+#undef TEST_IPV6_OR_PORT
+#undef TEST_IPV6_DIR_PORT
+
+#undef CHECK_CHOSEN_ADDR_RS
+#undef CHECK_CHOSEN_ADDR_NODE
+#undef CHECK_CHOSEN_ADDR_RN
+
struct testcase_t policy_tests[] = {
{ "router_dump_exit_policy_to_string", test_dump_exit_policy_to_string, 0,
NULL, NULL },
@@ -1139,6 +1842,10 @@ struct testcase_t policy_tests[] = {
{ "reject_interface_address", test_policies_reject_interface_address, 0,
NULL, NULL },
{ "reject_port_address", test_policies_reject_port_address, 0, NULL, NULL },
+ { "fascist_firewall_allows_address",
+ test_policies_fascist_firewall_allows_address, 0, NULL, NULL },
+ { "fascist_firewall_choose_address",
+ test_policies_fascist_firewall_choose_address, 0, NULL, NULL },
END_OF_TESTCASES
};
diff --git a/src/test/test_procmon.c b/src/test/test_procmon.c
index 2855178788..9e63fc006d 100644
--- a/src/test/test_procmon.c
+++ b/src/test/test_procmon.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Tor Project, Inc. */
+/* Copyright (c) 2010-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define PROCMON_PRIVATE
diff --git a/src/test/test_pt.c b/src/test/test_pt.c
index 6c9aefc487..ab8447dcd7 100644
--- a/src/test/test_pt.c
+++ b/src/test/test_pt.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_relay.c b/src/test/test_relay.c
index 6081956d46..a7fcad5401 100644
--- a/src/test/test_relay.c
+++ b/src/test/test_relay.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "or.h"
diff --git a/src/test/test_relaycell.c b/src/test/test_relaycell.c
index 0a6fef729c..1cd9ff064b 100644
--- a/src/test/test_relaycell.c
+++ b/src/test/test_relaycell.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/* Unit tests for handling different kinds of relay cell */
diff --git a/src/test/test_rendcache.c b/src/test/test_rendcache.c
index 77796994b4..eaa8671af0 100644
--- a/src/test/test_rendcache.c
+++ b/src/test/test_rendcache.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Tor Project, Inc. */
+/* Copyright (c) 2010-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
@@ -128,8 +128,8 @@ test_rend_cache_store_v2_desc_as_client(void *data)
// Test bad base32 failure
// This causes an assertion failure if we're running with assertions.
- // But when doing coverage, we can test it.
-#ifdef TOR_COVERAGE
+ // But when building without asserts, we can test it.
+#ifdef DISABLE_ASSERTS_IN_UNIT_TESTS
ret = rend_cache_store_v2_desc_as_client(desc_holder->desc_str,
"!xqunszqnaolrrfmtzgaki7mxelgvkj", mock_rend_query, NULL);
tt_int_op(ret, OP_EQ, RCS_BADDESC);
diff --git a/src/test/test_replay.c b/src/test/test_replay.c
index 7a0f098776..e882bc6164 100644
--- a/src/test/test_replay.c
+++ b/src/test/test_replay.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2012-2015, The Tor Project, Inc. */
+/* Copyright (c) 2012-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define REPLAYCACHE_PRIVATE
diff --git a/src/test/test_routerkeys.c b/src/test/test_routerkeys.c
index a60cba746e..24b0da1c46 100644
--- a/src/test/test_routerkeys.c
+++ b/src/test/test_routerkeys.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_routerlist.c b/src/test/test_routerlist.c
index 8c4254ccd7..497606920d 100644
--- a/src/test/test_routerlist.c
+++ b/src/test/test_routerlist.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
@@ -11,6 +11,7 @@
#define TOR_UNIT_TESTING
#include "or.h"
#include "config.h"
+#include "connection.h"
#include "container.h"
#include "directory.h"
#include "dirvote.h"
@@ -29,7 +30,7 @@ extern const char AUTHORITY_SIGNKEY_2[];
extern const char AUTHORITY_CERT_3[];
extern const char AUTHORITY_SIGNKEY_3[];
-void construct_consensus(const char **consensus_text_md);
+void construct_consensus(char **consensus_text_md);
/* 4 digests + 3 sep + pre + post + NULL */
static char output[4*BASE64_DIGEST256_LEN+3+2+2+1];
@@ -119,7 +120,7 @@ test_routerlist_launch_descriptor_downloads(void *arg)
}
void
-construct_consensus(const char **consensus_text_md)
+construct_consensus(char **consensus_text_md)
{
networkstatus_t *vote = NULL;
networkstatus_t *v1 = NULL, *v2 = NULL, *v3 = NULL;
@@ -129,7 +130,6 @@ construct_consensus(const char **consensus_text_md)
crypto_pk_t *sign_skey_leg=NULL;
time_t now = time(NULL);
smartlist_t *votes = NULL;
- addr_policy_t *pol1 = NULL, *pol2 = NULL, *pol3 = NULL;
int n_vrs;
tt_assert(!dir_common_authority_pk_init(&cert1, &cert2, &cert3,
@@ -140,7 +140,7 @@ construct_consensus(const char **consensus_text_md)
dir_common_construct_vote_1(&vote, cert1, sign_skey_1,
&dir_common_gen_routerstatus_for_v3ns,
&v1, &n_vrs, now, 1);
-
+ networkstatus_vote_free(vote);
tt_assert(v1);
tt_int_op(n_vrs, ==, 4);
tt_int_op(smartlist_len(v1->routerstatus_list), ==, 4);
@@ -148,7 +148,7 @@ construct_consensus(const char **consensus_text_md)
dir_common_construct_vote_2(&vote, cert2, sign_skey_2,
&dir_common_gen_routerstatus_for_v3ns,
&v2, &n_vrs, now, 1);
-
+ networkstatus_vote_free(vote);
tt_assert(v2);
tt_int_op(n_vrs, ==, 4);
tt_int_op(smartlist_len(v2->routerstatus_list), ==, 4);
@@ -160,7 +160,7 @@ construct_consensus(const char **consensus_text_md)
tt_assert(v3);
tt_int_op(n_vrs, ==, 4);
tt_int_op(smartlist_len(v3->routerstatus_list), ==, 4);
-
+ networkstatus_vote_free(vote);
votes = smartlist_new();
smartlist_add(votes, v1);
smartlist_add(votes, v2);
@@ -176,16 +176,18 @@ construct_consensus(const char **consensus_text_md)
tt_assert(*consensus_text_md);
done:
- if (vote)
- tor_free(vote);
- if (voter)
- tor_free(voter);
- if (pol1)
- tor_free(pol1);
- if (pol2)
- tor_free(pol2);
- if (pol3)
- tor_free(pol3);
+ tor_free(voter);
+ networkstatus_vote_free(v1);
+ networkstatus_vote_free(v2);
+ networkstatus_vote_free(v3);
+ smartlist_free(votes);
+ authority_cert_free(cert1);
+ authority_cert_free(cert2);
+ authority_cert_free(cert3);
+ crypto_pk_free(sign_skey_1);
+ crypto_pk_free(sign_skey_2);
+ crypto_pk_free(sign_skey_3);
+ crypto_pk_free(sign_skey_leg);
}
static void
@@ -194,7 +196,7 @@ test_router_pick_directory_server_impl(void *arg)
(void)arg;
networkstatus_t *con_md = NULL;
- const char *consensus_text_md = NULL;
+ char *consensus_text_md = NULL;
int flags = PDS_IGNORE_FASCISTFIREWALL|PDS_RETRY_IF_NO_SERVERS;
or_options_t *options = get_options_mutable();
const routerstatus_t *rs = NULL;
@@ -369,8 +371,83 @@ test_router_pick_directory_server_impl(void *arg)
if (options->ReachableORAddresses ||
options->ReachableDirAddresses)
policies_free_all();
+ tor_free(consensus_text_md);
+ networkstatus_vote_free(con_md);
+}
+
+connection_t *mocked_connection = NULL;
+
+/* Mock connection_get_by_type_addr_port_purpose by returning
+ * mocked_connection. */
+static connection_t *
+mock_connection_get_by_type_addr_port_purpose(int type,
+ const tor_addr_t *addr,
+ uint16_t port, int purpose)
+{
+ (void)type;
+ (void)addr;
+ (void)port;
+ (void)purpose;
+
+ return mocked_connection;
}
+#define TEST_ADDR_STR "127.0.0.1"
+#define TEST_DIR_PORT 12345
+
+static void
+test_routerlist_router_is_already_dir_fetching(void *arg)
+{
+ (void)arg;
+ tor_addr_port_t test_ap, null_addr_ap, zero_port_ap;
+
+ /* Setup */
+ tor_addr_parse(&test_ap.addr, TEST_ADDR_STR);
+ test_ap.port = TEST_DIR_PORT;
+ tor_addr_make_null(&null_addr_ap.addr, AF_INET6);
+ null_addr_ap.port = TEST_DIR_PORT;
+ tor_addr_parse(&zero_port_ap.addr, TEST_ADDR_STR);
+ zero_port_ap.port = 0;
+ MOCK(connection_get_by_type_addr_port_purpose,
+ mock_connection_get_by_type_addr_port_purpose);
+
+ /* Test that we never get 1 from a NULL connection */
+ mocked_connection = NULL;
+ tt_assert(router_is_already_dir_fetching(&test_ap, 1, 1) == 0);
+ tt_assert(router_is_already_dir_fetching(&test_ap, 1, 0) == 0);
+ tt_assert(router_is_already_dir_fetching(&test_ap, 0, 1) == 0);
+ /* We always expect 0 in these cases */
+ tt_assert(router_is_already_dir_fetching(&test_ap, 0, 0) == 0);
+ tt_assert(router_is_already_dir_fetching(NULL, 1, 1) == 0);
+ tt_assert(router_is_already_dir_fetching(&null_addr_ap, 1, 1) == 0);
+ tt_assert(router_is_already_dir_fetching(&zero_port_ap, 1, 1) == 0);
+
+ /* Test that we get 1 with a connection in the appropriate circumstances */
+ mocked_connection = connection_new(CONN_TYPE_DIR, AF_INET);
+ tt_assert(router_is_already_dir_fetching(&test_ap, 1, 1) == 1);
+ tt_assert(router_is_already_dir_fetching(&test_ap, 1, 0) == 1);
+ tt_assert(router_is_already_dir_fetching(&test_ap, 0, 1) == 1);
+
+ /* Test that we get 0 even with a connection in the appropriate
+ * circumstances */
+ tt_assert(router_is_already_dir_fetching(&test_ap, 0, 0) == 0);
+ tt_assert(router_is_already_dir_fetching(NULL, 1, 1) == 0);
+ tt_assert(router_is_already_dir_fetching(&null_addr_ap, 1, 1) == 0);
+ tt_assert(router_is_already_dir_fetching(&zero_port_ap, 1, 1) == 0);
+
+ done:
+ /* If a connection is never set up, connection_free chokes on it. */
+ if (mocked_connection) {
+ buf_free(mocked_connection->inbuf);
+ buf_free(mocked_connection->outbuf);
+ }
+ tor_free(mocked_connection);
+ UNMOCK(connection_get_by_type_addr_port_purpose);
+}
+
+#undef TEST_ADDR_STR
+#undef TEST_DIR_PORT
+
#define NODE(name, flags) \
{ #name, test_routerlist_##name, (flags), NULL, NULL }
#define ROUTER(name,flags) \
@@ -379,6 +456,7 @@ test_router_pick_directory_server_impl(void *arg)
struct testcase_t routerlist_tests[] = {
NODE(initiate_descriptor_downloads, 0),
NODE(launch_descriptor_downloads, 0),
+ NODE(router_is_already_dir_fetching, TT_FORK),
ROUTER(pick_directory_server_impl, TT_FORK),
END_OF_TESTCASES
};
diff --git a/src/test/test_scheduler.c b/src/test/test_scheduler.c
index 79a5534505..977ce6f8ab 100644
--- a/src/test/test_scheduler.c
+++ b/src/test/test_scheduler.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2015, The Tor Project, Inc. */
+/* Copyright (c) 2014-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include <math.h>
diff --git a/src/test/test_slow.c b/src/test/test_slow.c
index 32386b485e..c1d2e81914 100644
--- a/src/test/test_slow.c
+++ b/src/test/test_slow.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/**
diff --git a/src/test/test_socks.c b/src/test/test_socks.c
index 465e427930..6da09fd653 100644
--- a/src/test/test_socks.c
+++ b/src/test/test_socks.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "or.h"
diff --git a/src/test/test_switch_id.c b/src/test/test_switch_id.c
index 3d9c1c8bba..322f5bdc7a 100644
--- a/src/test/test_switch_id.c
+++ b/src/test/test_switch_id.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015, The Tor Project, Inc. */
+/* Copyright (c) 2015-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "or.h"
diff --git a/src/test/test_threads.c b/src/test/test_threads.c
index fe88c9470f..1bbe6f5508 100644
--- a/src/test/test_threads.c
+++ b/src/test/test_threads.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_tortls.c b/src/test/test_tortls.c
index 98f5facc11..973e727b46 100644
--- a/src/test/test_tortls.c
+++ b/src/test/test_tortls.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Tor Project, Inc. */
+/* Copyright (c) 2010-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define TORTLS_PRIVATE
@@ -539,10 +539,10 @@ test_tortls_x509_cert_get_id_digests(void *ignored)
{
(void)ignored;
tor_x509_cert_t *cert;
- digests_t *d;
- const digests_t *res;
+ common_digests_t *d;
+ const common_digests_t *res;
cert = tor_malloc_zero(sizeof(tor_x509_cert_t));
- d = tor_malloc_zero(sizeof(digests_t));
+ d = tor_malloc_zero(sizeof(common_digests_t));
d->d[0][0] = 42;
res = tor_x509_cert_get_id_digests(cert);
@@ -1347,11 +1347,10 @@ test_tortls_get_buffer_sizes(void *ignored)
tls->ssl->s3->wbuf.offset = 0;
tls->ssl->s3->wbuf.left = 43;
+ ret = tor_tls_get_buffer_sizes(tls, &rbuf_c, &rbuf_b, &wbuf_c, &wbuf_b);
#if OPENSSL_VERSION_NUMBER >= OPENSSL_V_SERIES(1,1,0)
- ret = tor_tls_get_buffer_sizes(NULL, NULL, NULL, NULL, NULL);
tt_int_op(ret, OP_EQ, -1);
#else
- ret = tor_tls_get_buffer_sizes(tls, &rbuf_c, &rbuf_b, &wbuf_c, &wbuf_b);
tt_int_op(ret, OP_EQ, 0);
tt_int_op(rbuf_c, OP_EQ, 0);
tt_int_op(wbuf_c, OP_EQ, 0);
@@ -1601,11 +1600,18 @@ test_tortls_block_renegotiation(void *ignored)
tls = tor_malloc_zero(sizeof(tor_tls_t));
tls->ssl = tor_malloc_zero(sizeof(SSL));
tls->ssl->s3 = tor_malloc_zero(sizeof(SSL3_STATE));
- tls->ssl->s3->flags = 0x0010;
+#ifndef SUPPORT_UNSAFE_RENEGOTIATION_FLAG
+#define SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 0
+#endif
+
+ tls->ssl->s3->flags = SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION;
tor_tls_block_renegotiation(tls);
- tt_assert(!(SSL_get_options(tls->ssl) & 0x0010));
+#ifndef OPENSSL_1_1_API
+ tt_assert(!(tls->ssl->s3->flags &
+ SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION));
+#endif
done:
tor_free(tls->ssl->s3);
@@ -1623,7 +1629,9 @@ test_tortls_unblock_renegotiation(void *ignored)
tls->ssl = tor_malloc_zero(sizeof(SSL));
tor_tls_unblock_renegotiation(tls);
- tt_assert(SSL_get_options(tls->ssl) & 0x00040000L);
+ tt_uint_op(SSL_get_options(tls->ssl) &
+ SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION, OP_EQ,
+ SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION);
done:
tor_free(tls->ssl);
@@ -1907,6 +1915,7 @@ fixed_ssl_shutdown(SSL *s)
return fixed_ssl_shutdown_result;
}
+#ifndef LIBRESSL_VERSION_NUMBER
static int fixed_ssl_state_to_set;
static tor_tls_t *fixed_tls;
@@ -1924,6 +1933,7 @@ setting_version_and_state_ssl_shutdown(SSL *s)
s->version = SSL2_VERSION;
return fixed_ssl_shutdown_result;
}
+#endif
static int
dummy_handshake_func(SSL *s)
@@ -1957,6 +1967,7 @@ test_tortls_shutdown(void *ignored)
ret = tor_tls_shutdown(tls);
tt_int_op(ret, OP_EQ, -9);
+#ifndef LIBRESSL_VERSION_NUMBER
tls->ssl->handshake_func = dummy_handshake_func;
fixed_ssl_read_result_index = 0;
@@ -2018,6 +2029,7 @@ test_tortls_shutdown(void *ignored)
method->ssl_shutdown = setting_version_and_state_ssl_shutdown;
ret = tor_tls_shutdown(tls);
tt_int_op(ret, OP_EQ, TOR_TLS_ERROR_MISC);
+#endif
done:
teardown_capture_of_logs(previous_log);
@@ -2080,6 +2092,7 @@ test_tortls_read(void *ignored)
ret = tor_tls_read(tls, buf, 10);
tt_int_op(negotiated_callback_called, OP_EQ, 1);
+#ifndef LIBRESSL_VERSION_NUMBER
fixed_ssl_read_result_index = 0;
fixed_ssl_read_result[0] = 0;
tls->ssl->version = SSL2_VERSION;
@@ -2087,7 +2100,7 @@ test_tortls_read(void *ignored)
ret = tor_tls_read(tls, buf, 10);
tt_int_op(ret, OP_EQ, TOR_TLS_CLOSE);
tt_int_op(tls->state, OP_EQ, TOR_TLS_ST_CLOSED);
-
+#endif
// TODO: fill up
done:
@@ -2594,14 +2607,14 @@ test_tortls_create_certificate(void *ignored)
tt_assert(!ret);
fixed_crypto_pk_get_evp_pkey_result_index = 0;
- fixed_crypto_pk_get_evp_pkey_result[0] = tor_malloc_zero(sizeof(EVP_PKEY));
+ fixed_crypto_pk_get_evp_pkey_result[0] = EVP_PKEY_new();
fixed_crypto_pk_get_evp_pkey_result[1] = NULL;
ret = tor_tls_create_certificate(pk1, pk2, "hello", "hello2", 1);
tt_assert(!ret);
fixed_crypto_pk_get_evp_pkey_result_index = 0;
- fixed_crypto_pk_get_evp_pkey_result[0] = tor_malloc_zero(sizeof(EVP_PKEY));
- fixed_crypto_pk_get_evp_pkey_result[1] = tor_malloc_zero(sizeof(EVP_PKEY));
+ fixed_crypto_pk_get_evp_pkey_result[0] = EVP_PKEY_new();
+ fixed_crypto_pk_get_evp_pkey_result[1] = EVP_PKEY_new();
ret = tor_tls_create_certificate(pk1, pk2, "hello", "hello2", 1);
tt_assert(!ret);
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 37f7d938ea..a63b4b859a 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
@@ -4364,7 +4364,8 @@ test_util_socket(void *arg)
(void)arg;
fd1 = tor_open_socket_with_extensions(domain, SOCK_STREAM, 0, 0, 0);
- if (SOCK_ERR_IS_EPROTO(fd1)) {
+ int err = tor_socket_errno(fd1);
+ if (fd1 < 0 && err == SOCK_ERRNO(EPROTONOSUPPORT)) {
/* Assume we're on an IPv4-only or IPv6-only system, and give up now. */
goto done;
}
diff --git a/src/test/test_util_format.c b/src/test/test_util_format.c
index 45a28ccaac..a25054cd0a 100644
--- a/src/test/test_util_format.c
+++ b/src/test/test_util_format.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Tor Project, Inc. */
+/* Copyright (c) 2010-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_util_process.c b/src/test/test_util_process.c
index 0a4354c043..45c22ef47f 100644
--- a/src/test/test_util_process.c
+++ b/src/test/test_util_process.c
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2015, The Tor Project, Inc. */
+/* Copyright (c) 2010-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#define UTIL_PROCESS_PRIVATE
diff --git a/src/test/test_util_slow.c b/src/test/test_util_slow.c
index dcd0c9af36..1e7160598c 100644
--- a/src/test/test_util_slow.c
+++ b/src/test/test_util_slow.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "orconfig.h"
diff --git a/src/test/test_workqueue.c b/src/test/test_workqueue.c
index 1202f80fa3..cbcf596b22 100644
--- a/src/test/test_workqueue.c
+++ b/src/test/test_workqueue.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
#include "or.h"
diff --git a/src/test/testing_common.c b/src/test/testing_common.c
index e20e9e6095..aeb1fa794d 100644
--- a/src/test/testing_common.c
+++ b/src/test/testing_common.c
@@ -1,6 +1,6 @@
/* Copyright (c) 2001-2004, Roger Dingledine.
* Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
- * Copyright (c) 2007-2015, The Tor Project, Inc. */
+ * Copyright (c) 2007-2016, The Tor Project, Inc. */
/* See LICENSE for licensing information */
/* Ordinarily defined in tor_main.c; this bit is just here to provide one
@@ -228,6 +228,9 @@ main(int c, const char **v)
int loglevel = LOG_ERR;
int accel_crypto = 0;
+ /* We must initialise logs before we call tor_assert() */
+ init_logging(1);
+
#ifdef USE_DMALLOC
{
int r = CRYPTO_set_mem_ex_functions(tor_malloc_, tor_realloc_, tor_free_);
@@ -238,8 +241,12 @@ main(int c, const char **v)
update_approx_time(time(NULL));
options = options_new();
tor_threads_init();
+
+ struct tor_libevent_cfg cfg;
+ memset(&cfg, 0, sizeof(cfg));
+ tor_libevent_initialize(&cfg);
+
control_initialize_event_queue();
- init_logging(1);
configure_backtrace_handler(get_version());
for (i_out = i = 1; i < c; ++i) {
diff --git a/src/trunnel/ed25519_cert.c b/src/trunnel/ed25519_cert.c
index ee010dbff9..f495743667 100644
--- a/src/trunnel/ed25519_cert.c
+++ b/src/trunnel/ed25519_cert.c
@@ -1,4 +1,4 @@
-/* ed25519_cert.c -- generated by Trunnel v1.4.3.
+/* ed25519_cert.c -- generated by Trunnel v1.4.4.
* https://gitweb.torproject.org/trunnel.git
* You probably shouldn't edit this file.
*/
@@ -289,7 +289,8 @@ ed25519_cert_extension_encode(uint8_t *output, const size_t avail, const ed25519
trunnel_assert(written <= avail);
if (avail - written < elt_len)
goto truncated;
- memcpy(ptr, obj->un_unparsed.elts_, elt_len);
+ if (elt_len)
+ memcpy(ptr, obj->un_unparsed.elts_, elt_len);
written += elt_len; ptr += elt_len;
}
break;
@@ -374,7 +375,8 @@ ed25519_cert_extension_parse_into(ed25519_cert_extension_t *obj, const uint8_t *
/* Parse u8 un_unparsed[] */
TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->un_unparsed, remaining, {});
obj->un_unparsed.n_ = remaining;
- memcpy(obj->un_unparsed.elts_, ptr, remaining);
+ if (remaining)
+ memcpy(obj->un_unparsed.elts_, ptr, remaining);
ptr += remaining; remaining -= remaining;
break;
}
diff --git a/src/trunnel/ed25519_cert.h b/src/trunnel/ed25519_cert.h
index face810dbe..75a82d8aff 100644
--- a/src/trunnel/ed25519_cert.h
+++ b/src/trunnel/ed25519_cert.h
@@ -1,4 +1,4 @@
-/* ed25519_cert.h -- generated by by Trunnel v1.4.3.
+/* ed25519_cert.h -- generated by by Trunnel v1.4.4.
* https://gitweb.torproject.org/trunnel.git
* You probably shouldn't edit this file.
*/
diff --git a/src/trunnel/link_handshake.c b/src/trunnel/link_handshake.c
index f9b55f0739..3ef7341ae9 100644
--- a/src/trunnel/link_handshake.c
+++ b/src/trunnel/link_handshake.c
@@ -1,4 +1,4 @@
-/* link_handshake.c -- generated by Trunnel v1.4.3.
+/* link_handshake.c -- generated by Trunnel v1.4.4.
* https://gitweb.torproject.org/trunnel.git
* You probably shouldn't edit this file.
*/
@@ -537,7 +537,8 @@ certs_cell_cert_encode(uint8_t *output, const size_t avail, const certs_cell_cer
trunnel_assert(written <= avail);
if (avail - written < elt_len)
goto truncated;
- memcpy(ptr, obj->body.elts_, elt_len);
+ if (elt_len)
+ memcpy(ptr, obj->body.elts_, elt_len);
written += elt_len; ptr += elt_len;
}
@@ -589,7 +590,8 @@ certs_cell_cert_parse_into(certs_cell_cert_t *obj, const uint8_t *input, const s
CHECK_REMAINING(obj->cert_len, truncated);
TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->body, obj->cert_len, {});
obj->body.n_ = obj->cert_len;
- memcpy(obj->body.elts_, ptr, obj->cert_len);
+ if (obj->cert_len)
+ memcpy(obj->body.elts_, ptr, obj->cert_len);
ptr += obj->cert_len; remaining -= obj->cert_len;
trunnel_assert(ptr + remaining == input + len_in);
return len_in - remaining;
@@ -840,7 +842,8 @@ rsa_ed_crosscert_encode(uint8_t *output, const size_t avail, const rsa_ed_crossc
trunnel_assert(written <= avail);
if (avail - written < elt_len)
goto truncated;
- memcpy(ptr, obj->sig.elts_, elt_len);
+ if (elt_len)
+ memcpy(ptr, obj->sig.elts_, elt_len);
written += elt_len; ptr += elt_len;
}
@@ -899,7 +902,8 @@ rsa_ed_crosscert_parse_into(rsa_ed_crosscert_t *obj, const uint8_t *input, const
CHECK_REMAINING(obj->sig_len, truncated);
TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->sig, obj->sig_len, {});
obj->sig.n_ = obj->sig_len;
- memcpy(obj->sig.elts_, ptr, obj->sig_len);
+ if (obj->sig_len)
+ memcpy(obj->sig.elts_, ptr, obj->sig_len);
ptr += obj->sig_len; remaining -= obj->sig_len;
trunnel_assert(ptr + remaining == input + len_in);
return len_in - remaining;
@@ -1467,7 +1471,8 @@ auth1_encode(uint8_t *output, const size_t avail, const auth1_t *obj, const auth
trunnel_assert(written <= avail);
if (avail - written < elt_len)
goto truncated;
- memcpy(ptr, obj->sig.elts_, elt_len);
+ if (elt_len)
+ memcpy(ptr, obj->sig.elts_, elt_len);
written += elt_len; ptr += elt_len;
}
@@ -1576,7 +1581,8 @@ auth1_parse_into(auth1_t *obj, const uint8_t *input, const size_t len_in, const
/* Parse u8 sig[] */
TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->sig, remaining, {});
obj->sig.n_ = remaining;
- memcpy(obj->sig.elts_, ptr, remaining);
+ if (remaining)
+ memcpy(obj->sig.elts_, ptr, remaining);
ptr += remaining; remaining -= remaining;
trunnel_assert(ptr + remaining == input + len_in);
return len_in - remaining;
diff --git a/src/trunnel/link_handshake.h b/src/trunnel/link_handshake.h
index 60bc28fa33..2749ec7dd4 100644
--- a/src/trunnel/link_handshake.h
+++ b/src/trunnel/link_handshake.h
@@ -1,4 +1,4 @@
-/* link_handshake.h -- generated by by Trunnel v1.4.3.
+/* link_handshake.h -- generated by by Trunnel v1.4.4.
* https://gitweb.torproject.org/trunnel.git
* You probably shouldn't edit this file.
*/
diff --git a/src/trunnel/pwbox.c b/src/trunnel/pwbox.c
index a80fbb949b..9b348a9b30 100644
--- a/src/trunnel/pwbox.c
+++ b/src/trunnel/pwbox.c
@@ -1,4 +1,4 @@
-/* pwbox.c -- generated by Trunnel v1.4.3.
+/* pwbox.c -- generated by Trunnel v1.4.4.
* https://gitweb.torproject.org/trunnel.git
* You probably shouldn't edit this file.
*/
@@ -362,7 +362,8 @@ pwbox_encoded_encode(uint8_t *output, size_t avail, const pwbox_encoded_t *obj)
trunnel_assert(written <= avail);
if (avail - written < elt_len)
goto truncated;
- memcpy(ptr, obj->skey_header.elts_, elt_len);
+ if (elt_len)
+ memcpy(ptr, obj->skey_header.elts_, elt_len);
written += elt_len; ptr += elt_len;
}
@@ -380,7 +381,8 @@ pwbox_encoded_encode(uint8_t *output, size_t avail, const pwbox_encoded_t *obj)
trunnel_assert(written <= avail);
if (avail - written < elt_len)
goto truncated;
- memcpy(ptr, obj->data.elts_, elt_len);
+ if (elt_len)
+ memcpy(ptr, obj->data.elts_, elt_len);
written += elt_len; ptr += elt_len;
}
trunnel_assert(written <= avail);
@@ -460,7 +462,8 @@ pwbox_encoded_parse_into(pwbox_encoded_t *obj, const uint8_t *input, const size_
CHECK_REMAINING(obj->header_len, truncated);
TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->skey_header, obj->header_len, {});
obj->skey_header.n_ = obj->header_len;
- memcpy(obj->skey_header.elts_, ptr, obj->header_len);
+ if (obj->header_len)
+ memcpy(obj->skey_header.elts_, ptr, obj->header_len);
ptr += obj->header_len; remaining -= obj->header_len;
/* Parse u8 iv[16] */
@@ -476,7 +479,8 @@ pwbox_encoded_parse_into(pwbox_encoded_t *obj, const uint8_t *input, const size_
/* Parse u8 data[] */
TRUNNEL_DYNARRAY_EXPAND(uint8_t, &obj->data, remaining, {});
obj->data.n_ = remaining;
- memcpy(obj->data.elts_, ptr, remaining);
+ if (remaining)
+ memcpy(obj->data.elts_, ptr, remaining);
ptr += remaining; remaining -= remaining;
if (remaining != 0)
goto fail;
diff --git a/src/trunnel/pwbox.h b/src/trunnel/pwbox.h
index c357932681..e69e2c1a0e 100644
--- a/src/trunnel/pwbox.h
+++ b/src/trunnel/pwbox.h
@@ -1,4 +1,4 @@
-/* pwbox.h -- generated by by Trunnel v1.4.3.
+/* pwbox.h -- generated by by Trunnel v1.4.4.
* https://gitweb.torproject.org/trunnel.git
* You probably shouldn't edit this file.
*/
diff --git a/src/win32/orconfig.h b/src/win32/orconfig.h
index c0b14e5304..407ffc00fc 100644
--- a/src/win32/orconfig.h
+++ b/src/win32/orconfig.h
@@ -220,9 +220,6 @@
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS
-/* Define to 1 if time_t is signed. */
-#define TIME_T_IS_SIGNED
-
/* Define to 1 iff unaligned int access is allowed */
#define UNALIGNED_INT_ACCESS_OK
@@ -232,7 +229,7 @@
#define USING_TWOS_COMPLEMENT
/* Version number of package */
-#define VERSION "0.2.8.0-alpha-dev"
+#define VERSION "0.2.8.1-alpha-dev"