Author: sidney
Date: Thu Feb 7 19:22:58 2008
New Revision: 619753
URL: http://svn.apache.org/viewvc?rev=619753&view=rev
Log:
bug 5813: correct TLD lookup to match current ICANN list and add all
TLDs to regression tests
Modified:
spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
spamassassin/trunk/lib/Mail/SpamAssassin/Util/
RegistrarBoundaries.pm
spamassassin/trunk/t/uri_text.t
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
URL:
http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm?rev=619753&r1=619752&r2=619753&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm
(original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/PerMsgStatus.pm Thu
Feb 7 19:22:58 2008
@@ -1665,17 +1665,17 @@
# regexps for finding plain text non-scheme hostnames with valid TLDs.
# the list from %VALID_TLDS in Util/RegistrarBoundaries.pm, as a
-# Regexp::Optimize optimized regexp ;) accurate as of 20050318
+# Regexp::List optimized regexp ;) accurate as of 20080208
my $tldsRE = qr/
- (?=[a-wyz])
- (?:a(?:e(?:ro)?|r(?:pa)?|[cdfgilmnoqstuwzx])|b(?:iz?|
[abdefghjmnorstvwyz])
- |c(?:o(?:m|op)?|[acdfghiklmnrsu])|d[ejkmoz]|e[ceghrst]|
f[ijkmor]
- |g(?:[abdefghilmnpqrstuwy]|ov)|h[kmnrtu]|i(?:n(?:fo|t)?|
[delmoqrst])
- |j[emop]|k[eghimnprwyz]|l[abcikrstuvy]
- |m(?:u(?:seum)?|[acdghkmnopqrstvwxyz]|i?l)|n(?:a(?:me)?|et?|
[cfgilopruz])
- |o(?:m|rg)|p(?:ro?|[aefghklmnstwy])|r[eouw]|
s[abcdeghijklmnortvyzu]
- |t[cdfghjklmnoprtvwz]|u[agkmsyz]|v[aceginu]|w[fs]|xxx|y[etu]|
z[amw]|ed?u|qa
- )/ix;
+ (?=[a-wyz])
+ (?:a(?:e(?:ro)?|r(?:pa)?|s(?:ia)?|[cdfgilmnoqtuwxz])|b(?:iz?|
[abdefghjmnorstvwyz])
+ |c(?:at?|o(?:m|op)?|[cdfghiklmnruvxyz])|d[ejkmoz]|e(?:[cegrst]|
d?u)|f[ijkmor]
+ |g(?:[abdefghilmnpqrstuwy]|ov)|h[kmnrtu]|i(?:n(?:fo|t)?|
[delmoqrst])
+ |j(?:o(?:bs)?|[emp])|k[eghimnprwyz]|l[abcikrstuvy]
+ |m(?:o(?:bi)?|u(?:seum)?|[acdeghkmnpqrstvwxyz]|i?l)|
n(?:a(?:me)?|et?|[cfgilopruz])
+ |o(?:m|rg)|p(?:ro?|[aefghklmnstwy])|r[eosuw]|
s[abcdeghijklmnortuvyz]
+ |t(?:r(?:avel)?|[cdfghjkmnoptvwz]|e?l)|u[agkmsyz]|v[aceginu]|
w[fs]|y[etu]|z[amw]|qa
+ )/ix;
# knownscheme regexp looks for either a https?: or ftp: scheme, or
www\d*\. or ftp\. prefix, i.e., likely to start a URL
# schemeless regexp looks for a valid TLD at the end of what may be
a FQDN, followed by optional ., optional :portnum, optional /
rest_of_uri
Modified: spamassassin/trunk/lib/Mail/SpamAssassin/Util/
RegistrarBoundaries.pm
URL:
http://svn.apache.org/viewvc/spamassassin/trunk/lib/Mail/SpamAssassin/Util/RegistrarBoundaries.pm?rev=619753&r1=619752&r2=619753&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- spamassassin/trunk/lib/Mail/SpamAssassin/Util/
RegistrarBoundaries.pm (original)
+++ spamassassin/trunk/lib/Mail/SpamAssassin/Util/
RegistrarBoundaries.pm Thu Feb 7 19:22:58 2008
@@ -31,28 +31,22 @@
# The list of currently-valid TLDs for the DNS system.
#
-# http://www.iana.org/cctld/cctld-whois.htm
-# "su" Extra from http://www.iana.org/root-whois/
-# http://www.iana.org/gtld/gtld.htm
-# http://www.iana.org/arpa-dom/
+# http://data.iana.org/TLD/tlds-alpha-by-domain.txt
+# Version 2008020601, Last Updated Thu Feb 7 09:07:00 2008 UTC
foreach (qw/
- ac ad ae af ag ai al am an ao aq ar as at au aw az ax ba bb bd be
bf bg bh bi
- bj bm bn bo br bs bt bv bw by bz ca cc cd cf cg ch ci ck cl cm cn
co cr cs cu
- cv cx cy cz de dj dk dm do dz ec ee eg eh er es et fi fj fk fm fo
fr ga gb gd
- ge gf gg gh gi gl gm gn gp gq gr gs gt gu gw gy hk hm hn hr ht hu
id ie il im
- in io iq ir is it je jm jo jp ke kg kh ki km kn kp kr kw ky kz la
lb lc li lk
- lr ls lt lu lv ly ma mc md mg mh mk ml mm mn mo mp mq mr ms mt mu
mv mw mx my
- mz na nc ne nf ng ni nl no np nr nu nz om pa pe pf pg ph pk pl pm
pn pr ps pt
- pw py qa re ro ru rw sa sb sc sd se sg sh si sj sk sl sm sn so sr
st sv sy sz
- tc td tf tg th tj tk tl tm tn to tp tr tt tv tw tz ua ug uk um us
uy uz va vc
- ve vg vi vn vu wf ws ye yt yu za zm zw
- su
- aero biz com coop info museum name net org pro gov edu mil int
- arpa
- eu
- jobs travel
- xxx
- mobi asia cat tel
+ ac ad ae aero af ag ai al am an ao aq ar arpa as asia at au aw ax
az
+ ba bb bd be bf bg bh bi biz bj bm bn bo br bs bt bv bw by bz ca
cat cc
+ cd cf cg ch ci ck cl cm cn co com coop cr cu cv cx cy cz de dj dk
dm
+ do dz ec edu ee eg er es et eu fi fj fk fm fo fr ga gb gd ge gf
gg gh
+ gi gl gm gn gov gp gq gr gs gt gu gw gy hk hm hn hr ht hu id ie
il im
+ in info int io iq ir is it je jm jo jobs jp ke kg kh ki km kn kp
kr kw
+ ky kz la lb lc li lk lr ls lt lu lv ly ma mc md me mg mh mil mk
ml mm
+ mn mo mobi mp mq mr ms mt mu museum mv mw mx my mz na name nc ne
net
+ nf ng ni nl no np nr nu nz om org pa pe pf pg ph pk pl pm pn pr
pro ps
+ pt pw py qa re ro rs ru rw sa sb sc sd se sg sh si sj sk sl sm sn
so
+ sr st su sv sy sz tc td tel tf tg th tj tk tl tm tn to tp tr
travel tt
+ tv tw tz ua ug uk um us uy uz va vc ve vg vi vn vu wf ws ye yt yu
za
+ zm zw
/) {
$VALID_TLDS{$_} = 1;
}
Modified: spamassassin/trunk/t/uri_text.t
URL:
http://svn.apache.org/viewvc/spamassassin/trunk/t/uri_text.t?rev=619753&r1=619752&r2=619753&view=diff
=
=
=
=
=
=
=
=
======================================================================
--- spamassassin/trunk/t/uri_text.t (original)
+++ spamassassin/trunk/t/uri_text.t Thu Feb 7 19:22:58 2008
@@ -24,7 +24,7 @@
use vars qw(%patterns %anti_patterns);
# settings
-plan tests => 406;
+plan tests => 678;
# initialize SpamAssassin
my $sa = create_saobj({'dont_copy_prefs' => 1});
@@ -282,11 +282,289 @@
# check all the TLDs (might as well be thorough)
# first confirm that it will fail on not a TLD
+example.foo !^http://example.foo$
+example.xxx !^http://example.xxx$
+
+example.ac ^http://example.ac$
+example.ad ^http://example.ad$
+example.ae ^http://example.ae$
+example.aero ^http://example.aero$
+example.af ^http://example.af$
+example.ag ^http://example.ag$
+example.ai ^http://example.ai$
+example.al ^http://example.al$
+example.am ^http://example.am$
+example.an ^http://example.an$
+example.ao ^http://example.ao$
+example.aq ^http://example.aq$
+example.ar ^http://example.ar$
+example.arpa ^http://example.arpa$
+example.as ^http://example.as$
+example.asia ^http://example.asia$
+example.at ^http://example.at$
+example.au ^http://example.au$
+example.aw ^http://example.aw$
+example.ax ^http://example.ax$
+example.az ^http://example.az$
+example.ba ^http://example.ba$
+example.bb ^http://example.bb$
+example.bd ^http://example.bd$
+example.be ^http://example.be$
+example.bf ^http://example.bf$
+example.bg ^http://example.bg$
+example.bh ^http://example.bh$
+example.bi ^http://example.bi$
+example.biz ^http://example.biz$
+example.bj ^http://example.bj$
+example.bm ^http://example.bm$
+example.bn ^http://example.bn$
+example.bo ^http://example.bo$
+example.br ^http://example.br$
+example.bs ^http://example.bs$
+example.bt ^http://example.bt$
+example.bv ^http://example.bv$
+example.bw ^http://example.bw$
+example.by ^http://example.by$
+example.bz ^http://example.bz$
+example.ca ^http://example.ca$
+example.cat ^http://example.cat$
+example.cc ^http://example.cc$
+example.cd ^http://example.cd$
+example.cf ^http://example.cf$
+example.cg ^http://example.cg$
+example.ch ^http://example.ch$
+example.ci ^http://example.ci$
+example.ck ^http://example.ck$
+example.cl ^http://example.cl$
+example.cm ^http://example.cm$
+example.cn ^http://example.cn$
+example.co ^http://example.co$
+example.com ^http://example.com$
+example.coop ^http://example.coop$
+example.cr ^http://example.cr$
+example.cu ^http://example.cu$
+example.cv ^http://example.cv$
+example.cx ^http://example.cx$
+example.cy ^http://example.cy$
+example.cz ^http://example.cz$
+example.de ^http://example.de$
+example.dj ^http://example.dj$
+example.dk ^http://example.dk$
+example.dm ^http://example.dm$
+example.do ^http://example.do$
+example.dz ^http://example.dz$
+example.ec ^http://example.ec$
+example.edu ^http://example.edu$
+example.ee ^http://example.ee$
+example.eg ^http://example.eg$
+example.er ^http://example.er$
+example.es ^http://example.es$
+example.et ^http://example.et$
+example.eu ^http://example.eu$
+example.fi ^http://example.fi$
+example.fj ^http://example.fj$
+example.fk ^http://example.fk$
+example.fm ^http://example.fm$
+example.fo ^http://example.fo$
+example.fr ^http://example.fr$
+example.ga ^http://example.ga$
+example.gb ^http://example.gb$
+example.gd ^http://example.gd$
+example.ge ^http://example.ge$
+example.gf ^http://example.gf$
+example.gg ^http://example.gg$
+example.gh ^http://example.gh$
+example.gi ^http://example.gi$
+example.gl ^http://example.gl$
+example.gm ^http://example.gm$
+example.gn ^http://example.gn$
+example.gov ^http://example.gov$
+example.gp ^http://example.gp$
+example.gq ^http://example.gq$
+example.gr ^http://example.gr$
+example.gs ^http://example.gs$
+example.gt ^http://example.gt$
+example.gu ^http://example.gu$
+example.gw ^http://example.gw$
+example.gy ^http://example.gy$
+example.hk ^http://example.hk$
+example.hm ^http://example.hm$
+example.hn ^http://example.hn$
+example.hr ^http://example.hr$
+example.ht ^http://example.ht$
+example.hu ^http://example.hu$
+example.id ^http://example.id$
+example.ie ^http://example.ie$
+example.il ^http://example.il$
+example.im ^http://example.im$
+example.in ^http://example.in$
+example.info ^http://example.info$
+example.int ^http://example.int$
+example.io ^http://example.io$
+example.iq ^http://example.iq$
+example.ir ^http://example.ir$
+example.is ^http://example.is$
+example.it ^http://example.it$
+example.je ^http://example.je$
+example.jm ^http://example.jm$
+example.jo ^http://example.jo$
+example.jobs ^http://example.jobs$
+example.jp ^http://example.jp$
+example.ke ^http://example.ke$
+example.kg ^http://example.kg$
+example.kh ^http://example.kh$
+example.ki ^http://example.ki$
+example.km ^http://example.km$
+example.kn ^http://example.kn$
+example.kp ^http://example.kp$
+example.kr ^http://example.kr$
+example.kw ^http://example.kw$
+example.ky ^http://example.ky$
+example.kz ^http://example.kz$
+example.la ^http://example.la$
+example.lb ^http://example.lb$
+example.lc ^http://example.lc$
+example.li ^http://example.li$
+example.lk ^http://example.lk$
+example.lr ^http://example.lr$
+example.ls ^http://example.ls$
+example.lt ^http://example.lt$
+example.lu ^http://example.lu$
+example.lv ^http://example.lv$
+example.ly ^http://example.ly$
+example.ma ^http://example.ma$
+example.mc ^http://example.mc$
+example.md ^http://example.md$
+example.me ^http://example.me$
+example.mg ^http://example.mg$
+example.mh ^http://example.mh$
+example.mil ^http://example.mil$
+example.mk ^http://example.mk$
+example.ml ^http://example.ml$
+example.mm ^http://example.mm$
+example.mn ^http://example.mn$
+example.mo ^http://example.mo$
+example.mobi ^http://example.mobi$
+example.mp ^http://example.mp$
+example.mq ^http://example.mq$
+example.mr ^http://example.mr$
+example.ms ^http://example.ms$
+example.mt ^http://example.mt$
+example.mu ^http://example.mu$
+example.museum ^http://example.museum$
+example.mv ^http://example.mv$
+example.mw ^http://example.mw$
+example.mx ^http://example.mx$
+example.my ^http://example.my$
+example.mz ^http://example.mz$
+example.na ^http://example.na$
+example.name ^http://example.name$
+example.nc ^http://example.nc$
+example.ne ^http://example.ne$
+example.net ^http://example.net$
+example.nf ^http://example.nf$
+example.ng ^http://example.ng$
+example.ni ^http://example.ni$
+example.nl ^http://example.nl$
+example.no ^http://example.no$
+example.np ^http://example.np$
+example.nr ^http://example.nr$
+example.nu ^http://example.nu$
+example.nz ^http://example.nz$
+example.om ^http://example.om$
+example.org ^http://example.org$
+example.pa ^http://example.pa$
+example.pe ^http://example.pe$
+example.pf ^http://example.pf$
+example.pg ^http://example.pg$
+example.ph ^http://example.ph$
+example.pk ^http://example.pk$
+example.pl ^http://example.pl$
+example.pm ^http://example.pm$
+example.pn ^http://example.pn$
+example.pr ^http://example.pr$
+example.pro ^http://example.pro$
+example.ps ^http://example.ps$
+example.pt ^http://example.pt$
+example.pw ^http://example.pw$
+example.py ^http://example.py$
+example.qa ^http://example.qa$
+example.re ^http://example.re$
+example.ro ^http://example.ro$
+example.rs ^http://example.rs$
+example.ru ^http://example.ru$
+example.rw ^http://example.rw$
+example.sa ^http://example.sa$
+example.sb ^http://example.sb$
+example.sc ^http://example.sc$
+example.sd ^http://example.sd$
+example.se ^http://example.se$
+example.sg ^http://example.sg$
+example.sh ^http://example.sh$
+example.si ^http://example.si$
+example.sj ^http://example.sj$
+example.sk ^http://example.sk$
+example.sl ^http://example.sl$
+example.sm ^http://example.sm$
+example.sn ^http://example.sn$
+example.so ^http://example.so$
+example.sr ^http://example.sr$
+example.st ^http://example.st$
+example.su ^http://example.su$
+example.sv ^http://example.sv$
+example.sy ^http://example.sy$
+example.sz ^http://example.sz$
+example.tc ^http://example.tc$
+example.td ^http://example.td$
+example.tel ^http://example.tel$
+example.tf ^http://example.tf$
+example.tg ^http://example.tg$
+example.th ^http://example.th$
+example.tj ^http://example.tj$
+example.tk ^http://example.tk$
+example.tl ^http://example.tl$
+example.tm ^http://example.tm$
+example.tn ^http://example.tn$
+example.to ^http://example.to$
+example.tp ^http://example.tp$
+example.tr ^http://example.tr$
+example.travel ^http://example.travel$
+example.tt ^http://example.tt$
+example.tv ^http://example.tv$
+example.tw ^http://example.tw$
+example.tz ^http://example.tz$
+example.ua ^http://example.ua$
+example.ug ^http://example.ug$
+example.uk ^http://example.uk$
+example.um ^http://example.um$
+example.us ^http://example.us$
+example.uy ^http://example.uy$
+example.uz ^http://example.uz$
+example.va ^http://example.va$
+example.vc ^http://example.vc$
+example.ve ^http://example.ve$
+example.vg ^http://example.vg$
+example.vi ^http://example.vi$
+example.vn ^http://example.vn$
+example.vu ^http://example.vu$
+example.wf ^http://example.wf$
+example.ws ^http://example.ws$
+example.ye ^http://example.ye$
+example.yt ^http://example.yt$
+example.yu ^http://example.yu$
+example.za ^http://example.za$
+example.zm ^http://example.zm$
+example.zw ^http://example.zw$
+
+# with www. prefix tests a different table of TLDs
+
www.example.foo !^http://www.example.foo$
+www.example.xxx !^http://www.example.xxx$
www.example.ac ^http://www.example.ac$
www.example.ad ^http://www.example.ad$
www.example.ae ^http://www.example.ae$
+www.example.aero ^http://www.example.aero$
www.example.af ^http://www.example.af$
www.example.ag ^http://www.example.ag$
www.example.ai ^http://www.example.ai$
@@ -296,12 +574,14 @@
www.example.ao ^http://www.example.ao$
www.example.aq ^http://www.example.aq$
www.example.ar ^http://www.example.ar$
+www.example.arpa ^http://www.example.arpa$
www.example.as ^http://www.example.as$
+www.example.asia ^http://www.example.asia$
www.example.at ^http://www.example.at$
www.example.au ^http://www.example.au$
www.example.aw ^http://www.example.aw$
-www.example.az ^http://www.example.az$
www.example.ax ^http://www.example.ax$
+www.example.az ^http://www.example.az$
www.example.ba ^http://www.example.ba$
www.example.bb ^http://www.example.bb$
www.example.bd ^http://www.example.bd$
@@ -310,6 +590,7 @@
www.example.bg ^http://www.example.bg$
www.example.bh ^http://www.example.bh$
www.example.bi ^http://www.example.bi$
+www.example.biz ^http://www.example.biz$
www.example.bj ^http://www.example.bj$
www.example.bm ^http://www.example.bm$
www.example.bn ^http://www.example.bn$
@@ -322,6 +603,7 @@
www.example.by ^http://www.example.by$
www.example.bz ^http://www.example.bz$
www.example.ca ^http://www.example.ca$
+www.example.cat ^http://www.example.cat$
www.example.cc ^http://www.example.cc$
www.example.cd ^http://www.example.cd$
www.example.cf ^http://www.example.cf$
@@ -333,8 +615,9 @@
www.example.cm ^http://www.example.cm$
www.example.cn ^http://www.example.cn$
www.example.co ^http://www.example.co$
+www.example.com ^http://www.example.com$
+www.example.coop ^http://www.example.coop$
www.example.cr ^http://www.example.cr$
-www.example.cs ^http://www.example.cs$
www.example.cu ^http://www.example.cu$
www.example.cv ^http://www.example.cv$
www.example.cx ^http://www.example.cx$
@@ -347,12 +630,13 @@
www.example.do ^http://www.example.do$
www.example.dz ^http://www.example.dz$
www.example.ec ^http://www.example.ec$
+www.example.edu ^http://www.example.edu$
www.example.ee ^http://www.example.ee$
www.example.eg ^http://www.example.eg$
-www.example.eh ^http://www.example.eh$
www.example.er ^http://www.example.er$
www.example.es ^http://www.example.es$
www.example.et ^http://www.example.et$
+www.example.eu ^http://www.example.eu$
www.example.fi ^http://www.example.fi$
www.example.fj ^http://www.example.fj$
www.example.fk ^http://www.example.fk$
@@ -370,6 +654,7 @@
www.example.gl ^http://www.example.gl$
www.example.gm ^http://www.example.gm$
www.example.gn ^http://www.example.gn$
+www.example.gov ^http://www.example.gov$
www.example.gp ^http://www.example.gp$
www.example.gq ^http://www.example.gq$
www.example.gr ^http://www.example.gr$
@@ -389,6 +674,8 @@
www.example.il ^http://www.example.il$
www.example.im ^http://www.example.im$
www.example.in ^http://www.example.in$
+www.example.info ^http://www.example.info$
+www.example.int ^http://www.example.int$
www.example.io ^http://www.example.io$
www.example.iq ^http://www.example.iq$
www.example.ir ^http://www.example.ir$
@@ -397,6 +684,7 @@
www.example.je ^http://www.example.je$
www.example.jm ^http://www.example.jm$
www.example.jo ^http://www.example.jo$
+www.example.jobs ^http://www.example.jobs$
www.example.jp ^http://www.example.jp$
www.example.ke ^http://www.example.ke$
www.example.kg ^http://www.example.kg$
@@ -423,27 +711,33 @@
www.example.ma ^http://www.example.ma$
www.example.mc ^http://www.example.mc$
www.example.md ^http://www.example.md$
+www.example.me ^http://www.example.me$
www.example.mg ^http://www.example.mg$
www.example.mh ^http://www.example.mh$
+www.example.mil ^http://www.example.mil$
www.example.mk ^http://www.example.mk$
www.example.ml ^http://www.example.ml$
www.example.mm ^http://www.example.mm$
www.example.mn ^http://www.example.mn$
www.example.mo ^http://www.example.mo$
+www.example.mobi ^http://www.example.mobi$
www.example.mp ^http://www.example.mp$
www.example.mq ^http://www.example.mq$
www.example.mr ^http://www.example.mr$
www.example.ms ^http://www.example.ms$
www.example.mt ^http://www.example.mt$
www.example.mu ^http://www.example.mu$
+www.example.museum ^http://www.example.museum$
www.example.mv ^http://www.example.mv$
www.example.mw ^http://www.example.mw$
www.example.mx ^http://www.example.mx$
www.example.my ^http://www.example.my$
www.example.mz ^http://www.example.mz$
www.example.na ^http://www.example.na$
+www.example.name ^http://www.example.name$
www.example.nc ^http://www.example.nc$
www.example.ne ^http://www.example.ne$
+www.example.net ^http://www.example.net$
www.example.nf ^http://www.example.nf$
www.example.ng ^http://www.example.ng$
www.example.ni ^http://www.example.ni$
@@ -454,6 +748,7 @@
www.example.nu ^http://www.example.nu$
www.example.nz ^http://www.example.nz$
www.example.om ^http://www.example.om$
+www.example.org ^http://www.example.org$
www.example.pa ^http://www.example.pa$
www.example.pe ^http://www.example.pe$
www.example.pf ^http://www.example.pf$
@@ -464,6 +759,7 @@
www.example.pm ^http://www.example.pm$
www.example.pn ^http://www.example.pn$
www.example.pr ^http://www.example.pr$
+www.example.pro ^http://www.example.pro$
www.example.ps ^http://www.example.ps$
www.example.pt ^http://www.example.pt$
www.example.pw ^http://www.example.pw$
@@ -471,6 +767,7 @@
www.example.qa ^http://www.example.qa$
www.example.re ^http://www.example.re$
www.example.ro ^http://www.example.ro$
+www.example.rs ^http://www.example.rs$
www.example.ru ^http://www.example.ru$
www.example.rw ^http://www.example.rw$
www.example.sa ^http://www.example.sa$
@@ -489,11 +786,13 @@
www.example.so ^http://www.example.so$
www.example.sr ^http://www.example.sr$
www.example.st ^http://www.example.st$
+www.example.su ^http://www.example.su$
www.example.sv ^http://www.example.sv$
www.example.sy ^http://www.example.sy$
www.example.sz ^http://www.example.sz$
www.example.tc ^http://www.example.tc$
www.example.td ^http://www.example.td$
+www.example.tel ^http://www.example.tel$
www.example.tf ^http://www.example.tf$
www.example.tg ^http://www.example.tg$
www.example.th ^http://www.example.th$
@@ -505,6 +804,7 @@
www.example.to ^http://www.example.to$
www.example.tp ^http://www.example.tp$
www.example.tr ^http://www.example.tr$
+www.example.travel ^http://www.example.travel$
www.example.tt ^http://www.example.tt$
www.example.tv ^http://www.example.tv$
www.example.tw ^http://www.example.tw$
@@ -531,27 +831,3 @@
www.example.za ^http://www.example.za$
www.example.zm ^http://www.example.zm$
www.example.zw ^http://www.example.zw$
-www.example.su ^http://www.example.su$
-www.example.aero ^http://www.example.aero$
-www.example.biz ^http://www.example.biz$
-www.example.com ^http://www.example.com$
-www.example.coop ^http://www.example.coop$
-www.example.info ^http://www.example.info$
-www.example.museum ^http://www.example.museum$
-www.example.name ^http://www.example.name$
-www.example.net ^http://www.example.net$
-www.example.org ^http://www.example.org$
-www.example.pro ^http://www.example.pro$
-www.example.gov ^http://www.example.gov$
-www.example.edu ^http://www.example.edu$
-www.example.mil ^http://www.example.mil$
-www.example.int ^http://www.example.int$
-www.example.arpa ^http://www.example.arpa$
-www.example.eu ^http://www.example.eu$
-www.example.jobs ^http://www.example.jobs$
-www.example.travel ^http://www.example.travel$
-www.example.xxx ^http://www.example.xxx$
-www.example.mobi ^http://www.example.mobi$
-www.example.asia ^http://www.example.asia$
-www.example.cat ^http://www.example.cat$
-www.example.tel ^http://www.example.tel$