golang.org/x/net: Update net package to fix race test failure.

TestLimitListener has been flaky. A fix was pushed to the net package.
This change updates our net package to have this fix.

Change-Id: If087a3025c998709335e1918e054fff7643d54a4
diff --git a/go/src/golang.org/x/net/.gitattributes b/go/src/golang.org/x/net/.gitattributes
new file mode 100644
index 0000000..d2f212e
--- /dev/null
+++ b/go/src/golang.org/x/net/.gitattributes
@@ -0,0 +1,10 @@
+# Treat all files in this repo as binary, with no git magic updating
+# line endings. Windows users contributing to Go will need to use a
+# modern version of git and editors capable of LF line endings.
+#
+# We'll prevent accidental CRLF line endings from entering the repo
+# via the git-review gofmt checks.
+#
+# See golang.org/issue/9281
+
+* -text
diff --git a/go/src/golang.org/x/net/CONTRIBUTING.md b/go/src/golang.org/x/net/CONTRIBUTING.md
new file mode 100644
index 0000000..88dff59
--- /dev/null
+++ b/go/src/golang.org/x/net/CONTRIBUTING.md
@@ -0,0 +1,31 @@
+# Contributing to Go
+
+Go is an open source project.
+
+It is the work of hundreds of contributors. We appreciate your help!
+
+
+## Filing issues
+
+When [filing an issue](https://golang.org/issue/new), make sure to answer these five questions:
+
+1. What version of Go are you using (`go version`)?
+2. What operating system and processor architecture are you using?
+3. What did you do?
+4. What did you expect to see?
+5. What did you see instead?
+
+General questions should go to the [golang-nuts mailing list](https://groups.google.com/group/golang-nuts) instead of the issue tracker.
+The gophers there will answer or ask you to file an issue if you've tripped over a bug.
+
+## Contributing code
+
+Please read the [Contribution Guidelines](https://golang.org/doc/contribute.html)
+before sending patches.
+
+**We do not accept GitHub pull requests**
+(we use [Gerrit](https://code.google.com/p/gerrit/) instead for code review).
+
+Unless otherwise noted, the Go source files are distributed under
+the BSD-style license found in the LICENSE file.
+
diff --git a/go/src/golang.org/x/net/README.google b/go/src/golang.org/x/net/README.google
index 88c05df..1fb83b0 100644
--- a/go/src/golang.org/x/net/README.google
+++ b/go/src/golang.org/x/net/README.google
@@ -1,5 +1,5 @@
-URL: https://go.googlesource.com/net/+archive/cbcac7bb8415db9b6cb4d1ebab1dc9afbd688b97.tar.gz
-Version: cbcac7bb8415db9b6cb4d1ebab1dc9afbd688b97
+URL: https://go.googlesource.com/net/+archive/d9558e5c97f85372afee28cf2b6059d7d3818919.tar.gz
+Version: d9558e5c97f85372afee28cf2b6059d7d3818919
 License: New BSD
 License File: LICENSE
 
diff --git a/go/src/golang.org/x/net/codereview.cfg b/go/src/golang.org/x/net/codereview.cfg
new file mode 100644
index 0000000..3f8b14b
--- /dev/null
+++ b/go/src/golang.org/x/net/codereview.cfg
@@ -0,0 +1 @@
+issuerepo: golang/go
diff --git a/go/src/golang.org/x/net/context/context.go b/go/src/golang.org/x/net/context/context.go
index 490245d..e7ee376 100644
--- a/go/src/golang.org/x/net/context/context.go
+++ b/go/src/golang.org/x/net/context/context.go
@@ -64,18 +64,21 @@
 	//
 	// Done is provided for use in select statements:
 	//
-	// 	// DoSomething calls DoSomethingSlow and returns as soon as
-	// 	// it returns or ctx.Done is closed.
-	// 	func DoSomething(ctx context.Context) (Result, error) {
-	// 		c := make(chan Result, 1)
-	// 		go func() { c <- DoSomethingSlow(ctx) }()
-	// 		select {
-	// 		case res := <-c:
-	// 			return res, nil
-	// 		case <-ctx.Done():
-	// 			return nil, ctx.Err()
-	// 		}
-	// 	}
+	//  // Stream generates values with DoSomething and sends them to out
+	//  // until DoSomething returns an error or ctx.Done is closed.
+	//  func Stream(ctx context.Context, out <-chan Value) error {
+	//  	for {
+	//  		v, err := DoSomething(ctx)
+	//  		if err != nil {
+	//  			return err
+	//  		}
+	//  		select {
+	//  		case <-ctx.Done():
+	//  			return ctx.Err()
+	//  		case out <- v:
+	//  		}
+	//  	}
+	//  }
 	//
 	// See http://blog.golang.org/pipelines for more examples of how to use
 	// a Done channel for cancelation.
@@ -202,6 +205,9 @@
 // WithCancel returns a copy of parent with a new Done channel. The returned
 // context's Done channel is closed when the returned cancel function is called
 // or when the parent context's Done channel is closed, whichever happens first.
+//
+// Canceling this context releases resources associated with it, so code should
+// call cancel as soon as the operations running in this Context complete.
 func WithCancel(parent Context) (ctx Context, cancel CancelFunc) {
 	c := newCancelCtx(parent)
 	propagateCancel(parent, &c)
@@ -262,6 +268,19 @@
 	}
 }
 
+// removeChild removes a context from its parent.
+func removeChild(parent Context, child canceler) {
+	p, ok := parentCancelCtx(parent)
+	if !ok {
+		return
+	}
+	p.mu.Lock()
+	if p.children != nil {
+		delete(p.children, child)
+	}
+	p.mu.Unlock()
+}
+
 // A canceler is a context type that can be canceled directly.  The
 // implementations are *cancelCtx and *timerCtx.
 type canceler interface {
@@ -316,13 +335,7 @@
 	c.mu.Unlock()
 
 	if removeFromParent {
-		if p, ok := parentCancelCtx(c.Context); ok {
-			p.mu.Lock()
-			if p.children != nil {
-				delete(p.children, c)
-			}
-			p.mu.Unlock()
-		}
+		removeChild(c.Context, c)
 	}
 }
 
@@ -333,9 +346,8 @@
 // cancel function is called, or when the parent context's Done channel is
 // closed, whichever happens first.
 //
-// Canceling this context releases resources associated with the deadline
-// timer, so code should call cancel as soon as the operations running in this
-// Context complete.
+// Canceling this context releases resources associated with it, so code should
+// call cancel as soon as the operations running in this Context complete.
 func WithDeadline(parent Context, deadline time.Time) (Context, CancelFunc) {
 	if cur, ok := parent.Deadline(); ok && cur.Before(deadline) {
 		// The current deadline is already sooner than the new one.
@@ -380,7 +392,11 @@
 }
 
 func (c *timerCtx) cancel(removeFromParent bool, err error) {
-	c.cancelCtx.cancel(removeFromParent, err)
+	c.cancelCtx.cancel(false, err)
+	if removeFromParent {
+		// Remove this timerCtx from its parent cancelCtx's children.
+		removeChild(c.cancelCtx.Context, c)
+	}
 	c.mu.Lock()
 	if c.timer != nil {
 		c.timer.Stop()
@@ -391,9 +407,8 @@
 
 // WithTimeout returns WithDeadline(parent, time.Now().Add(timeout)).
 //
-// Canceling this context releases resources associated with the deadline
-// timer, so code should call cancel as soon as the operations running in this
-// Context complete:
+// Canceling this context releases resources associated with it, so code should
+// call cancel as soon as the operations running in this Context complete:
 //
 // 	func slowOperationWithTimeout(ctx context.Context) (Result, error) {
 // 		ctx, cancel := context.WithTimeout(ctx, 100*time.Millisecond)
diff --git a/go/src/golang.org/x/net/context/context_test.go b/go/src/golang.org/x/net/context/context_test.go
index 82d2494..faf6772 100644
--- a/go/src/golang.org/x/net/context/context_test.go
+++ b/go/src/golang.org/x/net/context/context_test.go
@@ -551,3 +551,25 @@
 		checkValues("after cancel")
 	}
 }
+
+func TestCancelRemoves(t *testing.T) {
+	checkChildren := func(when string, ctx Context, want int) {
+		if got := len(ctx.(*cancelCtx).children); got != want {
+			t.Errorf("%s: context has %d children, want %d", when, got, want)
+		}
+	}
+
+	ctx, _ := WithCancel(Background())
+	checkChildren("after creation", ctx, 0)
+	_, cancel := WithCancel(ctx)
+	checkChildren("with WithCancel child ", ctx, 1)
+	cancel()
+	checkChildren("after cancelling WithCancel child", ctx, 0)
+
+	ctx, _ = WithCancel(Background())
+	checkChildren("after creation", ctx, 0)
+	_, cancel = WithTimeout(ctx, 60*time.Minute)
+	checkChildren("with WithTimeout child ", ctx, 1)
+	cancel()
+	checkChildren("after cancelling WithTimeout child", ctx, 0)
+}
diff --git a/go/src/golang.org/x/net/html/atom/gen.go b/go/src/golang.org/x/net/html/atom/gen.go
index 9958a71..6bfa866 100644
--- a/go/src/golang.org/x/net/html/atom/gen.go
+++ b/go/src/golang.org/x/net/html/atom/gen.go
@@ -284,8 +284,8 @@
 }
 
 // The lists of element names and attribute keys were taken from
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/section-index.html
-// as of the "HTML Living Standard - Last Updated 30 May 2012" version.
+// https://html.spec.whatwg.org/multipage/indices.html#index
+// as of the "HTML Living Standard - Last Updated 21 February 2015" version.
 
 var elements = []string{
 	"a",
@@ -352,6 +352,7 @@
 	"map",
 	"mark",
 	"menu",
+	"menuitem",
 	"meta",
 	"meter",
 	"nav",
@@ -385,6 +386,7 @@
 	"table",
 	"tbody",
 	"td",
+	"template",
 	"textarea",
 	"tfoot",
 	"th",
@@ -400,7 +402,10 @@
 	"wbr",
 }
 
+// https://html.spec.whatwg.org/multipage/indices.html#attributes-3
+
 var attributes = []string{
+	"abbr",
 	"accept",
 	"accept-charset",
 	"accesskey",
@@ -410,7 +415,6 @@
 	"autocomplete",
 	"autofocus",
 	"autoplay",
-	"border",
 	"challenge",
 	"charset",
 	"checked",
@@ -452,7 +456,7 @@
 	"http-equiv",
 	"icon",
 	"id",
-	"inert",
+	"inputmode",
 	"ismap",
 	"itemid",
 	"itemprop",
@@ -473,6 +477,7 @@
 	"mediagroup",
 	"method",
 	"min",
+	"minlength",
 	"multiple",
 	"muted",
 	"name",
@@ -500,6 +505,8 @@
 	"shape",
 	"size",
 	"sizes",
+	"sortable",
+	"sorted",
 	"span",
 	"src",
 	"srcdoc",
@@ -521,6 +528,8 @@
 
 var eventHandlers = []string{
 	"onabort",
+	"onautocomplete",
+	"onautocompleteerror",
 	"onafterprint",
 	"onbeforeprint",
 	"onbeforeunload",
@@ -552,6 +561,7 @@
 	"onkeydown",
 	"onkeypress",
 	"onkeyup",
+	"onlanguagechange",
 	"onload",
 	"onloadeddata",
 	"onloadedmetadata",
@@ -580,11 +590,13 @@
 	"onseeking",
 	"onselect",
 	"onshow",
+	"onsort",
 	"onstalled",
 	"onstorage",
 	"onsubmit",
 	"onsuspend",
 	"ontimeupdate",
+	"ontoggle",
 	"onunload",
 	"onvolumechange",
 	"onwaiting",
diff --git a/go/src/golang.org/x/net/html/atom/table.go b/go/src/golang.org/x/net/html/atom/table.go
index 20b8b8a..2605ba3 100644
--- a/go/src/golang.org/x/net/html/atom/table.go
+++ b/go/src/golang.org/x/net/html/atom/table.go
@@ -3,692 +3,711 @@
 package atom
 
 const (
-	A                Atom = 0x1
-	Abbr             Atom = 0x4
-	Accept           Atom = 0x2106
-	AcceptCharset    Atom = 0x210e
-	Accesskey        Atom = 0x3309
-	Action           Atom = 0x21b06
-	Address          Atom = 0x5d507
-	Align            Atom = 0x1105
-	Alt              Atom = 0x4503
-	Annotation       Atom = 0x18d0a
-	AnnotationXml    Atom = 0x18d0e
-	Applet           Atom = 0x2d106
-	Area             Atom = 0x31804
-	Article          Atom = 0x39907
-	Aside            Atom = 0x4f05
-	Async            Atom = 0x9305
-	Audio            Atom = 0xaf05
-	Autocomplete     Atom = 0xd50c
-	Autofocus        Atom = 0xe109
-	Autoplay         Atom = 0x10c08
-	B                Atom = 0x101
-	Base             Atom = 0x11404
-	Basefont         Atom = 0x11408
-	Bdi              Atom = 0x1a03
-	Bdo              Atom = 0x12503
-	Bgsound          Atom = 0x13807
-	Big              Atom = 0x14403
-	Blink            Atom = 0x14705
-	Blockquote       Atom = 0x14c0a
-	Body             Atom = 0x2f04
-	Border           Atom = 0x15606
-	Br               Atom = 0x202
-	Button           Atom = 0x15c06
-	Canvas           Atom = 0x4b06
-	Caption          Atom = 0x1e007
-	Center           Atom = 0x2df06
-	Challenge        Atom = 0x23e09
-	Charset          Atom = 0x2807
-	Checked          Atom = 0x33f07
-	Cite             Atom = 0x9704
-	Class            Atom = 0x3d905
-	Code             Atom = 0x16f04
-	Col              Atom = 0x17603
-	Colgroup         Atom = 0x17608
-	Color            Atom = 0x18305
-	Cols             Atom = 0x18804
-	Colspan          Atom = 0x18807
-	Command          Atom = 0x19b07
-	Content          Atom = 0x42c07
-	Contenteditable  Atom = 0x42c0f
-	Contextmenu      Atom = 0x3480b
-	Controls         Atom = 0x1ae08
-	Coords           Atom = 0x1ba06
-	Crossorigin      Atom = 0x1c40b
-	Data             Atom = 0x44304
-	Datalist         Atom = 0x44308
-	Datetime         Atom = 0x25b08
-	Dd               Atom = 0x28802
-	Default          Atom = 0x5207
-	Defer            Atom = 0x17105
-	Del              Atom = 0x4d603
-	Desc             Atom = 0x4804
-	Details          Atom = 0x6507
-	Dfn              Atom = 0x8303
-	Dialog           Atom = 0x1b06
-	Dir              Atom = 0x9d03
-	Dirname          Atom = 0x9d07
-	Disabled         Atom = 0x10008
-	Div              Atom = 0x10703
-	Dl               Atom = 0x13e02
-	Download         Atom = 0x40908
-	Draggable        Atom = 0x1a109
-	Dropzone         Atom = 0x3a208
-	Dt               Atom = 0x4e402
-	Em               Atom = 0x7f02
-	Embed            Atom = 0x7f05
-	Enctype          Atom = 0x23007
-	Face             Atom = 0x2dd04
-	Fieldset         Atom = 0x1d508
-	Figcaption       Atom = 0x1dd0a
-	Figure           Atom = 0x1f106
-	Font             Atom = 0x11804
-	Footer           Atom = 0x5906
-	For              Atom = 0x1fd03
-	ForeignObject    Atom = 0x1fd0d
-	Foreignobject    Atom = 0x20a0d
-	Form             Atom = 0x21704
-	Formaction       Atom = 0x2170a
-	Formenctype      Atom = 0x22c0b
-	Formmethod       Atom = 0x2470a
-	Formnovalidate   Atom = 0x2510e
-	Formtarget       Atom = 0x2660a
-	Frame            Atom = 0x8705
-	Frameset         Atom = 0x8708
-	H1               Atom = 0x13602
-	H2               Atom = 0x29602
-	H3               Atom = 0x2c502
-	H4               Atom = 0x30e02
-	H5               Atom = 0x4e602
-	H6               Atom = 0x27002
-	Head             Atom = 0x2fa04
-	Header           Atom = 0x2fa06
-	Headers          Atom = 0x2fa07
-	Height           Atom = 0x27206
-	Hgroup           Atom = 0x27a06
-	Hidden           Atom = 0x28606
-	High             Atom = 0x29304
-	Hr               Atom = 0x13102
-	Href             Atom = 0x29804
-	Hreflang         Atom = 0x29808
-	Html             Atom = 0x27604
-	HttpEquiv        Atom = 0x2a00a
-	I                Atom = 0x601
-	Icon             Atom = 0x42b04
-	Id               Atom = 0x5102
-	Iframe           Atom = 0x2b406
-	Image            Atom = 0x2ba05
-	Img              Atom = 0x2bf03
-	Inert            Atom = 0x4c105
-	Input            Atom = 0x3f605
-	Ins              Atom = 0x1cd03
-	Isindex          Atom = 0x2c707
-	Ismap            Atom = 0x2ce05
-	Itemid           Atom = 0x9806
-	Itemprop         Atom = 0x57e08
-	Itemref          Atom = 0x2d707
-	Itemscope        Atom = 0x2e509
-	Itemtype         Atom = 0x2ef08
-	Kbd              Atom = 0x1903
-	Keygen           Atom = 0x3906
-	Keytype          Atom = 0x51207
-	Kind             Atom = 0xfd04
-	Label            Atom = 0xba05
-	Lang             Atom = 0x29c04
-	Legend           Atom = 0x1a806
-	Li               Atom = 0x1202
-	Link             Atom = 0x14804
-	List             Atom = 0x44704
-	Listing          Atom = 0x44707
-	Loop             Atom = 0xbe04
-	Low              Atom = 0x13f03
-	Malignmark       Atom = 0x100a
-	Manifest         Atom = 0x5b608
-	Map              Atom = 0x2d003
-	Mark             Atom = 0x1604
-	Marquee          Atom = 0x5f207
-	Math             Atom = 0x2f704
-	Max              Atom = 0x30603
-	Maxlength        Atom = 0x30609
-	Media            Atom = 0xa205
-	Mediagroup       Atom = 0xa20a
-	Menu             Atom = 0x34f04
-	Meta             Atom = 0x45604
-	Meter            Atom = 0x26105
-	Method           Atom = 0x24b06
-	Mglyph           Atom = 0x2c006
-	Mi               Atom = 0x9b02
-	Min              Atom = 0x31003
-	Mn               Atom = 0x25402
-	Mo               Atom = 0x47a02
-	Ms               Atom = 0x2e802
-	Mtext            Atom = 0x31305
-	Multiple         Atom = 0x32108
-	Muted            Atom = 0x32905
-	Name             Atom = 0xa004
-	Nav              Atom = 0x3e03
-	Nobr             Atom = 0x7404
-	Noembed          Atom = 0x7d07
-	Noframes         Atom = 0x8508
-	Noscript         Atom = 0x28b08
-	Novalidate       Atom = 0x2550a
-	Object           Atom = 0x21106
-	Ol               Atom = 0xcd02
-	Onabort          Atom = 0x16007
-	Onafterprint     Atom = 0x1e50c
-	Onbeforeprint    Atom = 0x21f0d
-	Onbeforeunload   Atom = 0x5c90e
-	Onblur           Atom = 0x3e206
-	Oncancel         Atom = 0xb308
-	Oncanplay        Atom = 0x12709
-	Oncanplaythrough Atom = 0x12710
-	Onchange         Atom = 0x3b808
-	Onclick          Atom = 0x2ad07
-	Onclose          Atom = 0x32e07
-	Oncontextmenu    Atom = 0x3460d
-	Oncuechange      Atom = 0x3530b
-	Ondblclick       Atom = 0x35e0a
-	Ondrag           Atom = 0x36806
-	Ondragend        Atom = 0x36809
-	Ondragenter      Atom = 0x3710b
-	Ondragleave      Atom = 0x37c0b
-	Ondragover       Atom = 0x3870a
-	Ondragstart      Atom = 0x3910b
-	Ondrop           Atom = 0x3a006
-	Ondurationchange Atom = 0x3b010
-	Onemptied        Atom = 0x3a709
-	Onended          Atom = 0x3c007
-	Onerror          Atom = 0x3c707
-	Onfocus          Atom = 0x3ce07
-	Onhashchange     Atom = 0x3e80c
-	Oninput          Atom = 0x3f407
-	Oninvalid        Atom = 0x3fb09
-	Onkeydown        Atom = 0x40409
-	Onkeypress       Atom = 0x4110a
-	Onkeyup          Atom = 0x42107
-	Onload           Atom = 0x43b06
-	Onloadeddata     Atom = 0x43b0c
-	Onloadedmetadata Atom = 0x44e10
-	Onloadstart      Atom = 0x4640b
-	Onmessage        Atom = 0x46f09
-	Onmousedown      Atom = 0x4780b
-	Onmousemove      Atom = 0x4830b
-	Onmouseout       Atom = 0x48e0a
-	Onmouseover      Atom = 0x49b0b
-	Onmouseup        Atom = 0x4a609
-	Onmousewheel     Atom = 0x4af0c
-	Onoffline        Atom = 0x4bb09
-	Ononline         Atom = 0x4c608
-	Onpagehide       Atom = 0x4ce0a
-	Onpageshow       Atom = 0x4d90a
-	Onpause          Atom = 0x4e807
-	Onplay           Atom = 0x4f206
-	Onplaying        Atom = 0x4f209
-	Onpopstate       Atom = 0x4fb0a
-	Onprogress       Atom = 0x5050a
-	Onratechange     Atom = 0x5190c
-	Onreset          Atom = 0x52507
-	Onresize         Atom = 0x52c08
-	Onscroll         Atom = 0x53a08
-	Onseeked         Atom = 0x54208
-	Onseeking        Atom = 0x54a09
-	Onselect         Atom = 0x55308
-	Onshow           Atom = 0x55d06
-	Onstalled        Atom = 0x56609
-	Onstorage        Atom = 0x56f09
-	Onsubmit         Atom = 0x57808
-	Onsuspend        Atom = 0x58809
-	Ontimeupdate     Atom = 0x1190c
-	Onunload         Atom = 0x59108
-	Onvolumechange   Atom = 0x5990e
-	Onwaiting        Atom = 0x5a709
-	Open             Atom = 0x58404
-	Optgroup         Atom = 0xc008
-	Optimum          Atom = 0x5b007
-	Option           Atom = 0x5c506
-	Output           Atom = 0x49506
-	P                Atom = 0xc01
-	Param            Atom = 0xc05
-	Pattern          Atom = 0x6e07
-	Ping             Atom = 0xab04
-	Placeholder      Atom = 0xc70b
-	Plaintext        Atom = 0xf109
-	Poster           Atom = 0x17d06
-	Pre              Atom = 0x27f03
-	Preload          Atom = 0x27f07
-	Progress         Atom = 0x50708
-	Prompt           Atom = 0x5bf06
-	Public           Atom = 0x42706
-	Q                Atom = 0x15101
-	Radiogroup       Atom = 0x30a
-	Readonly         Atom = 0x31908
-	Rel              Atom = 0x28003
-	Required         Atom = 0x1f508
-	Reversed         Atom = 0x5e08
-	Rows             Atom = 0x7704
-	Rowspan          Atom = 0x7707
-	Rp               Atom = 0x1eb02
-	Rt               Atom = 0x16502
-	Ruby             Atom = 0xd104
-	S                Atom = 0x2c01
-	Samp             Atom = 0x6b04
-	Sandbox          Atom = 0xe907
-	Scope            Atom = 0x2e905
-	Scoped           Atom = 0x2e906
-	Script           Atom = 0x28d06
-	Seamless         Atom = 0x33308
-	Section          Atom = 0x3dd07
-	Select           Atom = 0x55506
-	Selected         Atom = 0x55508
-	Shape            Atom = 0x1b505
-	Size             Atom = 0x53004
-	Sizes            Atom = 0x53005
-	Small            Atom = 0x1bf05
-	Source           Atom = 0x1cf06
-	Spacer           Atom = 0x30006
-	Span             Atom = 0x7a04
-	Spellcheck       Atom = 0x33a0a
-	Src              Atom = 0x3d403
-	Srcdoc           Atom = 0x3d406
-	Srclang          Atom = 0x41a07
-	Start            Atom = 0x39705
-	Step             Atom = 0x5bc04
-	Strike           Atom = 0x50e06
-	Strong           Atom = 0x53406
-	Style            Atom = 0x5db05
-	Sub              Atom = 0x57a03
-	Summary          Atom = 0x5e007
-	Sup              Atom = 0x5e703
-	Svg              Atom = 0x5ea03
-	System           Atom = 0x5ed06
-	Tabindex         Atom = 0x45c08
-	Table            Atom = 0x43605
-	Target           Atom = 0x26a06
-	Tbody            Atom = 0x2e05
-	Td               Atom = 0x4702
-	Textarea         Atom = 0x31408
-	Tfoot            Atom = 0x5805
-	Th               Atom = 0x13002
-	Thead            Atom = 0x2f905
-	Time             Atom = 0x11b04
-	Title            Atom = 0x8e05
-	Tr               Atom = 0xf902
-	Track            Atom = 0xf905
-	Translate        Atom = 0x16609
-	Tt               Atom = 0x7002
-	Type             Atom = 0x23304
-	Typemustmatch    Atom = 0x2330d
-	U                Atom = 0xb01
-	Ul               Atom = 0x5602
-	Usemap           Atom = 0x4ec06
-	Value            Atom = 0x4005
-	Var              Atom = 0x10903
-	Video            Atom = 0x2a905
-	Wbr              Atom = 0x14103
-	Width            Atom = 0x4e205
-	Wrap             Atom = 0x56204
-	Xmp              Atom = 0xef03
+	A                   Atom = 0x1
+	Abbr                Atom = 0x4
+	Accept              Atom = 0x2106
+	AcceptCharset       Atom = 0x210e
+	Accesskey           Atom = 0x3309
+	Action              Atom = 0x1f606
+	Address             Atom = 0x4f307
+	Align               Atom = 0x1105
+	Alt                 Atom = 0x4503
+	Annotation          Atom = 0x1670a
+	AnnotationXml       Atom = 0x1670e
+	Applet              Atom = 0x2b306
+	Area                Atom = 0x2fa04
+	Article             Atom = 0x38807
+	Aside               Atom = 0x8305
+	Async               Atom = 0x7b05
+	Audio               Atom = 0xa605
+	Autocomplete        Atom = 0x1fc0c
+	Autofocus           Atom = 0xb309
+	Autoplay            Atom = 0xce08
+	B                   Atom = 0x101
+	Base                Atom = 0xd604
+	Basefont            Atom = 0xd608
+	Bdi                 Atom = 0x1a03
+	Bdo                 Atom = 0xe703
+	Bgsound             Atom = 0x11807
+	Big                 Atom = 0x12403
+	Blink               Atom = 0x12705
+	Blockquote          Atom = 0x12c0a
+	Body                Atom = 0x2f04
+	Br                  Atom = 0x202
+	Button              Atom = 0x13606
+	Canvas              Atom = 0x7f06
+	Caption             Atom = 0x1bb07
+	Center              Atom = 0x5b506
+	Challenge           Atom = 0x21f09
+	Charset             Atom = 0x2807
+	Checked             Atom = 0x32807
+	Cite                Atom = 0x3c804
+	Class               Atom = 0x4de05
+	Code                Atom = 0x14904
+	Col                 Atom = 0x15003
+	Colgroup            Atom = 0x15008
+	Color               Atom = 0x15d05
+	Cols                Atom = 0x16204
+	Colspan             Atom = 0x16207
+	Command             Atom = 0x17507
+	Content             Atom = 0x42307
+	Contenteditable     Atom = 0x4230f
+	Contextmenu         Atom = 0x3310b
+	Controls            Atom = 0x18808
+	Coords              Atom = 0x19406
+	Crossorigin         Atom = 0x19f0b
+	Data                Atom = 0x44a04
+	Datalist            Atom = 0x44a08
+	Datetime            Atom = 0x23c08
+	Dd                  Atom = 0x26702
+	Default             Atom = 0x8607
+	Defer               Atom = 0x14b05
+	Del                 Atom = 0x3ef03
+	Desc                Atom = 0x4db04
+	Details             Atom = 0x4807
+	Dfn                 Atom = 0x6103
+	Dialog              Atom = 0x1b06
+	Dir                 Atom = 0x6903
+	Dirname             Atom = 0x6907
+	Disabled            Atom = 0x10c08
+	Div                 Atom = 0x11303
+	Dl                  Atom = 0x11e02
+	Download            Atom = 0x40008
+	Draggable           Atom = 0x17b09
+	Dropzone            Atom = 0x39108
+	Dt                  Atom = 0x50902
+	Em                  Atom = 0x6502
+	Embed               Atom = 0x6505
+	Enctype             Atom = 0x21107
+	Face                Atom = 0x5b304
+	Fieldset            Atom = 0x1b008
+	Figcaption          Atom = 0x1b80a
+	Figure              Atom = 0x1cc06
+	Font                Atom = 0xda04
+	Footer              Atom = 0x8d06
+	For                 Atom = 0x1d803
+	ForeignObject       Atom = 0x1d80d
+	Foreignobject       Atom = 0x1e50d
+	Form                Atom = 0x1f204
+	Formaction          Atom = 0x1f20a
+	Formenctype         Atom = 0x20d0b
+	Formmethod          Atom = 0x2280a
+	Formnovalidate      Atom = 0x2320e
+	Formtarget          Atom = 0x2470a
+	Frame               Atom = 0x9a05
+	Frameset            Atom = 0x9a08
+	H1                  Atom = 0x26e02
+	H2                  Atom = 0x29402
+	H3                  Atom = 0x2a702
+	H4                  Atom = 0x2e902
+	H5                  Atom = 0x2f302
+	H6                  Atom = 0x50b02
+	Head                Atom = 0x2d504
+	Header              Atom = 0x2d506
+	Headers             Atom = 0x2d507
+	Height              Atom = 0x25106
+	Hgroup              Atom = 0x25906
+	Hidden              Atom = 0x26506
+	High                Atom = 0x26b04
+	Hr                  Atom = 0x27002
+	Href                Atom = 0x27004
+	Hreflang            Atom = 0x27008
+	Html                Atom = 0x25504
+	HttpEquiv           Atom = 0x2780a
+	I                   Atom = 0x601
+	Icon                Atom = 0x42204
+	Id                  Atom = 0x8502
+	Iframe              Atom = 0x29606
+	Image               Atom = 0x29c05
+	Img                 Atom = 0x2a103
+	Input               Atom = 0x3e805
+	Inputmode           Atom = 0x3e809
+	Ins                 Atom = 0x1a803
+	Isindex             Atom = 0x2a907
+	Ismap               Atom = 0x2b005
+	Itemid              Atom = 0x33c06
+	Itemprop            Atom = 0x3c908
+	Itemref             Atom = 0x5ad07
+	Itemscope           Atom = 0x2b909
+	Itemtype            Atom = 0x2c308
+	Kbd                 Atom = 0x1903
+	Keygen              Atom = 0x3906
+	Keytype             Atom = 0x53707
+	Kind                Atom = 0x10904
+	Label               Atom = 0xf005
+	Lang                Atom = 0x27404
+	Legend              Atom = 0x18206
+	Li                  Atom = 0x1202
+	Link                Atom = 0x12804
+	List                Atom = 0x44e04
+	Listing             Atom = 0x44e07
+	Loop                Atom = 0xf404
+	Low                 Atom = 0x11f03
+	Malignmark          Atom = 0x100a
+	Manifest            Atom = 0x5f108
+	Map                 Atom = 0x2b203
+	Mark                Atom = 0x1604
+	Marquee             Atom = 0x2cb07
+	Math                Atom = 0x2d204
+	Max                 Atom = 0x2e103
+	Maxlength           Atom = 0x2e109
+	Media               Atom = 0x6e05
+	Mediagroup          Atom = 0x6e0a
+	Menu                Atom = 0x33804
+	Menuitem            Atom = 0x33808
+	Meta                Atom = 0x45d04
+	Meter               Atom = 0x24205
+	Method              Atom = 0x22c06
+	Mglyph              Atom = 0x2a206
+	Mi                  Atom = 0x2eb02
+	Min                 Atom = 0x2eb03
+	Minlength           Atom = 0x2eb09
+	Mn                  Atom = 0x23502
+	Mo                  Atom = 0x3ed02
+	Ms                  Atom = 0x2bc02
+	Mtext               Atom = 0x2f505
+	Multiple            Atom = 0x30308
+	Muted               Atom = 0x30b05
+	Name                Atom = 0x6c04
+	Nav                 Atom = 0x3e03
+	Nobr                Atom = 0x5704
+	Noembed             Atom = 0x6307
+	Noframes            Atom = 0x9808
+	Noscript            Atom = 0x3d208
+	Novalidate          Atom = 0x2360a
+	Object              Atom = 0x1ec06
+	Ol                  Atom = 0xc902
+	Onabort             Atom = 0x13a07
+	Onafterprint        Atom = 0x1c00c
+	Onautocomplete      Atom = 0x1fa0e
+	Onautocompleteerror Atom = 0x1fa13
+	Onbeforeprint       Atom = 0x6040d
+	Onbeforeunload      Atom = 0x4e70e
+	Onblur              Atom = 0xaa06
+	Oncancel            Atom = 0xe908
+	Oncanplay           Atom = 0x28509
+	Oncanplaythrough    Atom = 0x28510
+	Onchange            Atom = 0x3a708
+	Onclick             Atom = 0x31007
+	Onclose             Atom = 0x31707
+	Oncontextmenu       Atom = 0x32f0d
+	Oncuechange         Atom = 0x3420b
+	Ondblclick          Atom = 0x34d0a
+	Ondrag              Atom = 0x35706
+	Ondragend           Atom = 0x35709
+	Ondragenter         Atom = 0x3600b
+	Ondragleave         Atom = 0x36b0b
+	Ondragover          Atom = 0x3760a
+	Ondragstart         Atom = 0x3800b
+	Ondrop              Atom = 0x38f06
+	Ondurationchange    Atom = 0x39f10
+	Onemptied           Atom = 0x39609
+	Onended             Atom = 0x3af07
+	Onerror             Atom = 0x3b607
+	Onfocus             Atom = 0x3bd07
+	Onhashchange        Atom = 0x3da0c
+	Oninput             Atom = 0x3e607
+	Oninvalid           Atom = 0x3f209
+	Onkeydown           Atom = 0x3fb09
+	Onkeypress          Atom = 0x4080a
+	Onkeyup             Atom = 0x41807
+	Onlanguagechange    Atom = 0x43210
+	Onload              Atom = 0x44206
+	Onloadeddata        Atom = 0x4420c
+	Onloadedmetadata    Atom = 0x45510
+	Onloadstart         Atom = 0x46b0b
+	Onmessage           Atom = 0x47609
+	Onmousedown         Atom = 0x47f0b
+	Onmousemove         Atom = 0x48a0b
+	Onmouseout          Atom = 0x4950a
+	Onmouseover         Atom = 0x4a20b
+	Onmouseup           Atom = 0x4ad09
+	Onmousewheel        Atom = 0x4b60c
+	Onoffline           Atom = 0x4c209
+	Ononline            Atom = 0x4cb08
+	Onpagehide          Atom = 0x4d30a
+	Onpageshow          Atom = 0x4fe0a
+	Onpause             Atom = 0x50d07
+	Onplay              Atom = 0x51706
+	Onplaying           Atom = 0x51709
+	Onpopstate          Atom = 0x5200a
+	Onprogress          Atom = 0x52a0a
+	Onratechange        Atom = 0x53e0c
+	Onreset             Atom = 0x54a07
+	Onresize            Atom = 0x55108
+	Onscroll            Atom = 0x55f08
+	Onseeked            Atom = 0x56708
+	Onseeking           Atom = 0x56f09
+	Onselect            Atom = 0x57808
+	Onshow              Atom = 0x58206
+	Onsort              Atom = 0x58b06
+	Onstalled           Atom = 0x59509
+	Onstorage           Atom = 0x59e09
+	Onsubmit            Atom = 0x5a708
+	Onsuspend           Atom = 0x5bb09
+	Ontimeupdate        Atom = 0xdb0c
+	Ontoggle            Atom = 0x5c408
+	Onunload            Atom = 0x5cc08
+	Onvolumechange      Atom = 0x5d40e
+	Onwaiting           Atom = 0x5e209
+	Open                Atom = 0x3cf04
+	Optgroup            Atom = 0xf608
+	Optimum             Atom = 0x5eb07
+	Option              Atom = 0x60006
+	Output              Atom = 0x49c06
+	P                   Atom = 0xc01
+	Param               Atom = 0xc05
+	Pattern             Atom = 0x5107
+	Ping                Atom = 0x7704
+	Placeholder         Atom = 0xc30b
+	Plaintext           Atom = 0xfd09
+	Poster              Atom = 0x15706
+	Pre                 Atom = 0x25e03
+	Preload             Atom = 0x25e07
+	Progress            Atom = 0x52c08
+	Prompt              Atom = 0x5fa06
+	Public              Atom = 0x41e06
+	Q                   Atom = 0x13101
+	Radiogroup          Atom = 0x30a
+	Readonly            Atom = 0x2fb08
+	Rel                 Atom = 0x25f03
+	Required            Atom = 0x1d008
+	Reversed            Atom = 0x5a08
+	Rows                Atom = 0x9204
+	Rowspan             Atom = 0x9207
+	Rp                  Atom = 0x1c602
+	Rt                  Atom = 0x13f02
+	Ruby                Atom = 0xaf04
+	S                   Atom = 0x2c01
+	Samp                Atom = 0x4e04
+	Sandbox             Atom = 0xbb07
+	Scope               Atom = 0x2bd05
+	Scoped              Atom = 0x2bd06
+	Script              Atom = 0x3d406
+	Seamless            Atom = 0x31c08
+	Section             Atom = 0x4e207
+	Select              Atom = 0x57a06
+	Selected            Atom = 0x57a08
+	Shape               Atom = 0x4f905
+	Size                Atom = 0x55504
+	Sizes               Atom = 0x55505
+	Small               Atom = 0x18f05
+	Sortable            Atom = 0x58d08
+	Sorted              Atom = 0x19906
+	Source              Atom = 0x1aa06
+	Spacer              Atom = 0x2db06
+	Span                Atom = 0x9504
+	Spellcheck          Atom = 0x3230a
+	Src                 Atom = 0x3c303
+	Srcdoc              Atom = 0x3c306
+	Srclang             Atom = 0x41107
+	Start               Atom = 0x38605
+	Step                Atom = 0x5f704
+	Strike              Atom = 0x53306
+	Strong              Atom = 0x55906
+	Style               Atom = 0x61105
+	Sub                 Atom = 0x5a903
+	Summary             Atom = 0x61607
+	Sup                 Atom = 0x61d03
+	Svg                 Atom = 0x62003
+	System              Atom = 0x62306
+	Tabindex            Atom = 0x46308
+	Table               Atom = 0x42d05
+	Target              Atom = 0x24b06
+	Tbody               Atom = 0x2e05
+	Td                  Atom = 0x4702
+	Template            Atom = 0x62608
+	Textarea            Atom = 0x2f608
+	Tfoot               Atom = 0x8c05
+	Th                  Atom = 0x22e02
+	Thead               Atom = 0x2d405
+	Time                Atom = 0xdd04
+	Title               Atom = 0xa105
+	Tr                  Atom = 0x10502
+	Track               Atom = 0x10505
+	Translate           Atom = 0x14009
+	Tt                  Atom = 0x5302
+	Type                Atom = 0x21404
+	Typemustmatch       Atom = 0x2140d
+	U                   Atom = 0xb01
+	Ul                  Atom = 0x8a02
+	Usemap              Atom = 0x51106
+	Value               Atom = 0x4005
+	Var                 Atom = 0x11503
+	Video               Atom = 0x28105
+	Wbr                 Atom = 0x12103
+	Width               Atom = 0x50705
+	Wrap                Atom = 0x58704
+	Xmp                 Atom = 0xc103
 )
 
 const hash0 = 0xc17da63e
 
-const maxAtomLen = 16
+const maxAtomLen = 19
 
 var table = [1 << 9]Atom{
-	0x1:   0x4830b, // onmousemove
-	0x2:   0x5a709, // onwaiting
-	0x4:   0x5bf06, // prompt
-	0x7:   0x5b007, // optimum
+	0x1:   0x48a0b, // onmousemove
+	0x2:   0x5e209, // onwaiting
+	0x3:   0x1fa13, // onautocompleteerror
+	0x4:   0x5fa06, // prompt
+	0x7:   0x5eb07, // optimum
 	0x8:   0x1604,  // mark
-	0xa:   0x2d707, // itemref
-	0xb:   0x4d90a, // onpageshow
-	0xc:   0x55506, // select
-	0xd:   0x1a109, // draggable
+	0xa:   0x5ad07, // itemref
+	0xb:   0x4fe0a, // onpageshow
+	0xc:   0x57a06, // select
+	0xd:   0x17b09, // draggable
 	0xe:   0x3e03,  // nav
-	0xf:   0x19b07, // command
+	0xf:   0x17507, // command
 	0x11:  0xb01,   // u
-	0x14:  0x2fa07, // headers
-	0x15:  0x44308, // datalist
-	0x17:  0x6b04,  // samp
-	0x1a:  0x40409, // onkeydown
-	0x1b:  0x53a08, // onscroll
-	0x1c:  0x17603, // col
-	0x20:  0x57e08, // itemprop
-	0x21:  0x2a00a, // http-equiv
-	0x22:  0x5e703, // sup
-	0x24:  0x1f508, // required
-	0x2b:  0x27f07, // preload
-	0x2c:  0x21f0d, // onbeforeprint
-	0x2d:  0x3710b, // ondragenter
-	0x2e:  0x4e402, // dt
-	0x2f:  0x57808, // onsubmit
-	0x30:  0x13102, // hr
-	0x31:  0x3460d, // oncontextmenu
-	0x33:  0x2ba05, // image
-	0x34:  0x4e807, // onpause
-	0x35:  0x27a06, // hgroup
-	0x36:  0xab04,  // ping
-	0x37:  0x55308, // onselect
-	0x3a:  0x10703, // div
-	0x40:  0x9b02,  // mi
-	0x41:  0x33308, // seamless
+	0x14:  0x2d507, // headers
+	0x15:  0x44a08, // datalist
+	0x17:  0x4e04,  // samp
+	0x1a:  0x3fb09, // onkeydown
+	0x1b:  0x55f08, // onscroll
+	0x1c:  0x15003, // col
+	0x20:  0x3c908, // itemprop
+	0x21:  0x2780a, // http-equiv
+	0x22:  0x61d03, // sup
+	0x24:  0x1d008, // required
+	0x2b:  0x25e07, // preload
+	0x2c:  0x6040d, // onbeforeprint
+	0x2d:  0x3600b, // ondragenter
+	0x2e:  0x50902, // dt
+	0x2f:  0x5a708, // onsubmit
+	0x30:  0x27002, // hr
+	0x31:  0x32f0d, // oncontextmenu
+	0x33:  0x29c05, // image
+	0x34:  0x50d07, // onpause
+	0x35:  0x25906, // hgroup
+	0x36:  0x7704,  // ping
+	0x37:  0x57808, // onselect
+	0x3a:  0x11303, // div
+	0x3b:  0x1fa0e, // onautocomplete
+	0x40:  0x2eb02, // mi
+	0x41:  0x31c08, // seamless
 	0x42:  0x2807,  // charset
-	0x43:  0x5102,  // id
-	0x44:  0x4fb0a, // onpopstate
-	0x45:  0x4d603, // del
-	0x46:  0x5f207, // marquee
+	0x43:  0x8502,  // id
+	0x44:  0x5200a, // onpopstate
+	0x45:  0x3ef03, // del
+	0x46:  0x2cb07, // marquee
 	0x47:  0x3309,  // accesskey
-	0x49:  0x5906,  // footer
-	0x4a:  0x2d106, // applet
-	0x4b:  0x2ce05, // ismap
-	0x51:  0x34f04, // menu
+	0x49:  0x8d06,  // footer
+	0x4a:  0x44e04, // list
+	0x4b:  0x2b005, // ismap
+	0x51:  0x33804, // menu
 	0x52:  0x2f04,  // body
-	0x55:  0x8708,  // frameset
-	0x56:  0x52507, // onreset
-	0x57:  0x14705, // blink
-	0x58:  0x8e05,  // title
-	0x59:  0x39907, // article
-	0x5b:  0x13002, // th
-	0x5d:  0x15101, // q
-	0x5e:  0x58404, // open
-	0x5f:  0x31804, // area
-	0x61:  0x43b06, // onload
-	0x62:  0x3f605, // input
-	0x63:  0x11404, // base
-	0x64:  0x18807, // colspan
-	0x65:  0x51207, // keytype
-	0x66:  0x13e02, // dl
-	0x68:  0x1d508, // fieldset
-	0x6a:  0x31003, // min
-	0x6b:  0x10903, // var
-	0x6f:  0x2fa06, // header
-	0x70:  0x16502, // rt
-	0x71:  0x17608, // colgroup
-	0x72:  0x25402, // mn
-	0x74:  0x16007, // onabort
+	0x55:  0x9a08,  // frameset
+	0x56:  0x54a07, // onreset
+	0x57:  0x12705, // blink
+	0x58:  0xa105,  // title
+	0x59:  0x38807, // article
+	0x5b:  0x22e02, // th
+	0x5d:  0x13101, // q
+	0x5e:  0x3cf04, // open
+	0x5f:  0x2fa04, // area
+	0x61:  0x44206, // onload
+	0x62:  0xda04,  // font
+	0x63:  0xd604,  // base
+	0x64:  0x16207, // colspan
+	0x65:  0x53707, // keytype
+	0x66:  0x11e02, // dl
+	0x68:  0x1b008, // fieldset
+	0x6a:  0x2eb03, // min
+	0x6b:  0x11503, // var
+	0x6f:  0x2d506, // header
+	0x70:  0x13f02, // rt
+	0x71:  0x15008, // colgroup
+	0x72:  0x23502, // mn
+	0x74:  0x13a07, // onabort
 	0x75:  0x3906,  // keygen
-	0x76:  0x4bb09, // onoffline
-	0x77:  0x23e09, // challenge
-	0x78:  0x2d003, // map
-	0x7a:  0x30e02, // h4
-	0x7b:  0x3c707, // onerror
-	0x7c:  0x30609, // maxlength
-	0x7d:  0x31305, // mtext
-	0x7e:  0x5805,  // tfoot
-	0x7f:  0x11804, // font
+	0x76:  0x4c209, // onoffline
+	0x77:  0x21f09, // challenge
+	0x78:  0x2b203, // map
+	0x7a:  0x2e902, // h4
+	0x7b:  0x3b607, // onerror
+	0x7c:  0x2e109, // maxlength
+	0x7d:  0x2f505, // mtext
+	0x7e:  0xbb07,  // sandbox
+	0x7f:  0x58b06, // onsort
 	0x80:  0x100a,  // malignmark
-	0x81:  0x45604, // meta
-	0x82:  0x9305,  // async
-	0x83:  0x2c502, // h3
-	0x84:  0x28802, // dd
-	0x85:  0x29804, // href
-	0x86:  0xa20a,  // mediagroup
-	0x87:  0x1ba06, // coords
-	0x88:  0x41a07, // srclang
-	0x89:  0x35e0a, // ondblclick
+	0x81:  0x45d04, // meta
+	0x82:  0x7b05,  // async
+	0x83:  0x2a702, // h3
+	0x84:  0x26702, // dd
+	0x85:  0x27004, // href
+	0x86:  0x6e0a,  // mediagroup
+	0x87:  0x19406, // coords
+	0x88:  0x41107, // srclang
+	0x89:  0x34d0a, // ondblclick
 	0x8a:  0x4005,  // value
-	0x8c:  0xb308,  // oncancel
-	0x8e:  0x33a0a, // spellcheck
-	0x8f:  0x8705,  // frame
-	0x91:  0x14403, // big
-	0x94:  0x21b06, // action
-	0x95:  0x9d03,  // dir
-	0x97:  0x31908, // readonly
-	0x99:  0x43605, // table
-	0x9a:  0x5e007, // summary
-	0x9b:  0x14103, // wbr
+	0x8c:  0xe908,  // oncancel
+	0x8e:  0x3230a, // spellcheck
+	0x8f:  0x9a05,  // frame
+	0x91:  0x12403, // big
+	0x94:  0x1f606, // action
+	0x95:  0x6903,  // dir
+	0x97:  0x2fb08, // readonly
+	0x99:  0x42d05, // table
+	0x9a:  0x61607, // summary
+	0x9b:  0x12103, // wbr
 	0x9c:  0x30a,   // radiogroup
-	0x9d:  0xa004,  // name
-	0x9f:  0x5ed06, // system
-	0xa1:  0x18305, // color
-	0xa2:  0x4b06,  // canvas
-	0xa3:  0x27604, // html
-	0xa5:  0x54a09, // onseeking
-	0xac:  0x1b505, // shape
-	0xad:  0x28003, // rel
-	0xae:  0x12710, // oncanplaythrough
-	0xaf:  0x3870a, // ondragover
-	0xb1:  0x1fd0d, // foreignObject
-	0xb3:  0x7704,  // rows
-	0xb6:  0x44707, // listing
-	0xb7:  0x49506, // output
-	0xb9:  0x3480b, // contextmenu
-	0xbb:  0x13f03, // low
-	0xbc:  0x1eb02, // rp
-	0xbd:  0x58809, // onsuspend
-	0xbe:  0x15c06, // button
-	0xbf:  0x4804,  // desc
-	0xc1:  0x3dd07, // section
-	0xc2:  0x5050a, // onprogress
-	0xc3:  0x56f09, // onstorage
-	0xc4:  0x2f704, // math
-	0xc5:  0x4f206, // onplay
-	0xc7:  0x5602,  // ul
-	0xc8:  0x6e07,  // pattern
-	0xc9:  0x4af0c, // onmousewheel
-	0xca:  0x36809, // ondragend
-	0xcb:  0xd104,  // ruby
+	0x9d:  0x6c04,  // name
+	0x9f:  0x62306, // system
+	0xa1:  0x15d05, // color
+	0xa2:  0x7f06,  // canvas
+	0xa3:  0x25504, // html
+	0xa5:  0x56f09, // onseeking
+	0xac:  0x4f905, // shape
+	0xad:  0x25f03, // rel
+	0xae:  0x28510, // oncanplaythrough
+	0xaf:  0x3760a, // ondragover
+	0xb0:  0x62608, // template
+	0xb1:  0x1d80d, // foreignObject
+	0xb3:  0x9204,  // rows
+	0xb6:  0x44e07, // listing
+	0xb7:  0x49c06, // output
+	0xb9:  0x3310b, // contextmenu
+	0xbb:  0x11f03, // low
+	0xbc:  0x1c602, // rp
+	0xbd:  0x5bb09, // onsuspend
+	0xbe:  0x13606, // button
+	0xbf:  0x4db04, // desc
+	0xc1:  0x4e207, // section
+	0xc2:  0x52a0a, // onprogress
+	0xc3:  0x59e09, // onstorage
+	0xc4:  0x2d204, // math
+	0xc5:  0x4503,  // alt
+	0xc7:  0x8a02,  // ul
+	0xc8:  0x5107,  // pattern
+	0xc9:  0x4b60c, // onmousewheel
+	0xca:  0x35709, // ondragend
+	0xcb:  0xaf04,  // ruby
 	0xcc:  0xc01,   // p
-	0xcd:  0x32e07, // onclose
-	0xce:  0x26105, // meter
-	0xcf:  0x13807, // bgsound
-	0xd2:  0x27206, // height
+	0xcd:  0x31707, // onclose
+	0xce:  0x24205, // meter
+	0xcf:  0x11807, // bgsound
+	0xd2:  0x25106, // height
 	0xd4:  0x101,   // b
-	0xd5:  0x2ef08, // itemtype
-	0xd8:  0x1e007, // caption
-	0xd9:  0x10008, // disabled
-	0xdc:  0x5ea03, // svg
-	0xdd:  0x1bf05, // small
-	0xde:  0x44304, // data
-	0xe0:  0x4c608, // ononline
-	0xe1:  0x2c006, // mglyph
-	0xe3:  0x7f05,  // embed
-	0xe4:  0xf902,  // tr
-	0xe5:  0x4640b, // onloadstart
-	0xe7:  0x3b010, // ondurationchange
-	0xed:  0x12503, // bdo
+	0xd5:  0x2c308, // itemtype
+	0xd8:  0x1bb07, // caption
+	0xd9:  0x10c08, // disabled
+	0xdb:  0x33808, // menuitem
+	0xdc:  0x62003, // svg
+	0xdd:  0x18f05, // small
+	0xde:  0x44a04, // data
+	0xe0:  0x4cb08, // ononline
+	0xe1:  0x2a206, // mglyph
+	0xe3:  0x6505,  // embed
+	0xe4:  0x10502, // tr
+	0xe5:  0x46b0b, // onloadstart
+	0xe7:  0x3c306, // srcdoc
+	0xeb:  0x5c408, // ontoggle
+	0xed:  0xe703,  // bdo
 	0xee:  0x4702,  // td
-	0xef:  0x4f05,  // aside
-	0xf0:  0x29602, // h2
-	0xf1:  0x50708, // progress
-	0xf2:  0x14c0a, // blockquote
-	0xf4:  0xba05,  // label
+	0xef:  0x8305,  // aside
+	0xf0:  0x29402, // h2
+	0xf1:  0x52c08, // progress
+	0xf2:  0x12c0a, // blockquote
+	0xf4:  0xf005,  // label
 	0xf5:  0x601,   // i
-	0xf7:  0x7707,  // rowspan
-	0xfb:  0x4f209, // onplaying
-	0xfd:  0x2bf03, // img
-	0xfe:  0xc008,  // optgroup
-	0xff:  0x42c07, // content
-	0x101: 0x5190c, // onratechange
-	0x103: 0x3e80c, // onhashchange
-	0x104: 0x6507,  // details
-	0x106: 0x40908, // download
-	0x109: 0xe907,  // sandbox
-	0x10b: 0x42c0f, // contenteditable
-	0x10d: 0x37c0b, // ondragleave
+	0xf7:  0x9207,  // rowspan
+	0xfb:  0x51709, // onplaying
+	0xfd:  0x2a103, // img
+	0xfe:  0xf608,  // optgroup
+	0xff:  0x42307, // content
+	0x101: 0x53e0c, // onratechange
+	0x103: 0x3da0c, // onhashchange
+	0x104: 0x4807,  // details
+	0x106: 0x40008, // download
+	0x109: 0x14009, // translate
+	0x10b: 0x4230f, // contenteditable
+	0x10d: 0x36b0b, // ondragleave
 	0x10e: 0x2106,  // accept
-	0x10f: 0x55508, // selected
-	0x112: 0x2170a, // formaction
-	0x113: 0x2df06, // center
-	0x115: 0x44e10, // onloadedmetadata
-	0x116: 0x14804, // link
-	0x117: 0x11b04, // time
-	0x118: 0x1c40b, // crossorigin
-	0x119: 0x3ce07, // onfocus
-	0x11a: 0x56204, // wrap
-	0x11b: 0x42b04, // icon
-	0x11d: 0x2a905, // video
-	0x11e: 0x3d905, // class
-	0x121: 0x5990e, // onvolumechange
-	0x122: 0x3e206, // onblur
-	0x123: 0x2e509, // itemscope
-	0x124: 0x5db05, // style
-	0x127: 0x42706, // public
-	0x129: 0x2510e, // formnovalidate
-	0x12a: 0x55d06, // onshow
-	0x12c: 0x16609, // translate
-	0x12d: 0x9704,  // cite
-	0x12e: 0x2e802, // ms
-	0x12f: 0x1190c, // ontimeupdate
-	0x130: 0xfd04,  // kind
-	0x131: 0x2660a, // formtarget
-	0x135: 0x3c007, // onended
-	0x136: 0x28606, // hidden
+	0x10f: 0x57a08, // selected
+	0x112: 0x1f20a, // formaction
+	0x113: 0x5b506, // center
+	0x115: 0x45510, // onloadedmetadata
+	0x116: 0x12804, // link
+	0x117: 0xdd04,  // time
+	0x118: 0x19f0b, // crossorigin
+	0x119: 0x3bd07, // onfocus
+	0x11a: 0x58704, // wrap
+	0x11b: 0x42204, // icon
+	0x11d: 0x28105, // video
+	0x11e: 0x4de05, // class
+	0x121: 0x5d40e, // onvolumechange
+	0x122: 0xaa06,  // onblur
+	0x123: 0x2b909, // itemscope
+	0x124: 0x61105, // style
+	0x127: 0x41e06, // public
+	0x129: 0x2320e, // formnovalidate
+	0x12a: 0x58206, // onshow
+	0x12c: 0x51706, // onplay
+	0x12d: 0x3c804, // cite
+	0x12e: 0x2bc02, // ms
+	0x12f: 0xdb0c,  // ontimeupdate
+	0x130: 0x10904, // kind
+	0x131: 0x2470a, // formtarget
+	0x135: 0x3af07, // onended
+	0x136: 0x26506, // hidden
 	0x137: 0x2c01,  // s
-	0x139: 0x2470a, // formmethod
-	0x13a: 0x44704, // list
-	0x13c: 0x27002, // h6
-	0x13d: 0xcd02,  // ol
-	0x13e: 0x3530b, // oncuechange
-	0x13f: 0x20a0d, // foreignobject
-	0x143: 0x5c90e, // onbeforeunload
-	0x145: 0x3a709, // onemptied
-	0x146: 0x17105, // defer
-	0x147: 0xef03,  // xmp
-	0x148: 0xaf05,  // audio
+	0x139: 0x2280a, // formmethod
+	0x13a: 0x3e805, // input
+	0x13c: 0x50b02, // h6
+	0x13d: 0xc902,  // ol
+	0x13e: 0x3420b, // oncuechange
+	0x13f: 0x1e50d, // foreignobject
+	0x143: 0x4e70e, // onbeforeunload
+	0x144: 0x2bd05, // scope
+	0x145: 0x39609, // onemptied
+	0x146: 0x14b05, // defer
+	0x147: 0xc103,  // xmp
+	0x148: 0x39f10, // ondurationchange
 	0x149: 0x1903,  // kbd
-	0x14c: 0x46f09, // onmessage
-	0x14d: 0x5c506, // option
-	0x14e: 0x4503,  // alt
-	0x14f: 0x33f07, // checked
-	0x150: 0x10c08, // autoplay
+	0x14c: 0x47609, // onmessage
+	0x14d: 0x60006, // option
+	0x14e: 0x2eb09, // minlength
+	0x14f: 0x32807, // checked
+	0x150: 0xce08,  // autoplay
 	0x152: 0x202,   // br
-	0x153: 0x2550a, // novalidate
-	0x156: 0x7d07,  // noembed
-	0x159: 0x2ad07, // onclick
-	0x15a: 0x4780b, // onmousedown
-	0x15b: 0x3b808, // onchange
-	0x15e: 0x3fb09, // oninvalid
-	0x15f: 0x2e906, // scoped
-	0x160: 0x1ae08, // controls
-	0x161: 0x32905, // muted
-	0x163: 0x4ec06, // usemap
-	0x164: 0x1dd0a, // figcaption
-	0x165: 0x36806, // ondrag
-	0x166: 0x29304, // high
-	0x168: 0x3d403, // src
-	0x169: 0x17d06, // poster
-	0x16b: 0x18d0e, // annotation-xml
-	0x16c: 0x5bc04, // step
+	0x153: 0x2360a, // novalidate
+	0x156: 0x6307,  // noembed
+	0x159: 0x31007, // onclick
+	0x15a: 0x47f0b, // onmousedown
+	0x15b: 0x3a708, // onchange
+	0x15e: 0x3f209, // oninvalid
+	0x15f: 0x2bd06, // scoped
+	0x160: 0x18808, // controls
+	0x161: 0x30b05, // muted
+	0x162: 0x58d08, // sortable
+	0x163: 0x51106, // usemap
+	0x164: 0x1b80a, // figcaption
+	0x165: 0x35706, // ondrag
+	0x166: 0x26b04, // high
+	0x168: 0x3c303, // src
+	0x169: 0x15706, // poster
+	0x16b: 0x1670e, // annotation-xml
+	0x16c: 0x5f704, // step
 	0x16d: 0x4,     // abbr
 	0x16e: 0x1b06,  // dialog
 	0x170: 0x1202,  // li
-	0x172: 0x47a02, // mo
-	0x175: 0x1fd03, // for
-	0x176: 0x1cd03, // ins
-	0x178: 0x53004, // size
-	0x17a: 0x5207,  // default
+	0x172: 0x3ed02, // mo
+	0x175: 0x1d803, // for
+	0x176: 0x1a803, // ins
+	0x178: 0x55504, // size
+	0x179: 0x43210, // onlanguagechange
+	0x17a: 0x8607,  // default
 	0x17b: 0x1a03,  // bdi
-	0x17c: 0x4ce0a, // onpagehide
-	0x17d: 0x9d07,  // dirname
-	0x17e: 0x23304, // type
-	0x17f: 0x21704, // form
-	0x180: 0x4c105, // inert
-	0x181: 0x12709, // oncanplay
-	0x182: 0x8303,  // dfn
-	0x183: 0x45c08, // tabindex
-	0x186: 0x7f02,  // em
-	0x187: 0x29c04, // lang
-	0x189: 0x3a208, // dropzone
-	0x18a: 0x4110a, // onkeypress
-	0x18b: 0x25b08, // datetime
-	0x18c: 0x18804, // cols
+	0x17c: 0x4d30a, // onpagehide
+	0x17d: 0x6907,  // dirname
+	0x17e: 0x21404, // type
+	0x17f: 0x1f204, // form
+	0x181: 0x28509, // oncanplay
+	0x182: 0x6103,  // dfn
+	0x183: 0x46308, // tabindex
+	0x186: 0x6502,  // em
+	0x187: 0x27404, // lang
+	0x189: 0x39108, // dropzone
+	0x18a: 0x4080a, // onkeypress
+	0x18b: 0x23c08, // datetime
+	0x18c: 0x16204, // cols
 	0x18d: 0x1,     // a
-	0x18e: 0x43b0c, // onloadeddata
-	0x191: 0x15606, // border
+	0x18e: 0x4420c, // onloadeddata
+	0x190: 0xa605,  // audio
 	0x192: 0x2e05,  // tbody
-	0x193: 0x24b06, // method
-	0x195: 0xbe04,  // loop
-	0x196: 0x2b406, // iframe
-	0x198: 0x2fa04, // head
-	0x19e: 0x5b608, // manifest
-	0x19f: 0xe109,  // autofocus
-	0x1a0: 0x16f04, // code
-	0x1a1: 0x53406, // strong
-	0x1a2: 0x32108, // multiple
+	0x193: 0x22c06, // method
+	0x195: 0xf404,  // loop
+	0x196: 0x29606, // iframe
+	0x198: 0x2d504, // head
+	0x19e: 0x5f108, // manifest
+	0x19f: 0xb309,  // autofocus
+	0x1a0: 0x14904, // code
+	0x1a1: 0x55906, // strong
+	0x1a2: 0x30308, // multiple
 	0x1a3: 0xc05,   // param
-	0x1a6: 0x23007, // enctype
-	0x1a7: 0x2dd04, // face
-	0x1a8: 0xf109,  // plaintext
-	0x1a9: 0x13602, // h1
-	0x1aa: 0x56609, // onstalled
-	0x1ad: 0x28d06, // script
-	0x1ae: 0x30006, // spacer
-	0x1af: 0x52c08, // onresize
-	0x1b0: 0x49b0b, // onmouseover
-	0x1b1: 0x59108, // onunload
-	0x1b2: 0x54208, // onseeked
-	0x1b4: 0x2330d, // typemustmatch
-	0x1b5: 0x1f106, // figure
-	0x1b6: 0x48e0a, // onmouseout
-	0x1b7: 0x27f03, // pre
-	0x1b8: 0x4e205, // width
-	0x1bb: 0x7404,  // nobr
-	0x1be: 0x7002,  // tt
+	0x1a6: 0x21107, // enctype
+	0x1a7: 0x5b304, // face
+	0x1a8: 0xfd09,  // plaintext
+	0x1a9: 0x26e02, // h1
+	0x1aa: 0x59509, // onstalled
+	0x1ad: 0x3d406, // script
+	0x1ae: 0x2db06, // spacer
+	0x1af: 0x55108, // onresize
+	0x1b0: 0x4a20b, // onmouseover
+	0x1b1: 0x5cc08, // onunload
+	0x1b2: 0x56708, // onseeked
+	0x1b4: 0x2140d, // typemustmatch
+	0x1b5: 0x1cc06, // figure
+	0x1b6: 0x4950a, // onmouseout
+	0x1b7: 0x25e03, // pre
+	0x1b8: 0x50705, // width
+	0x1b9: 0x19906, // sorted
+	0x1bb: 0x5704,  // nobr
+	0x1be: 0x5302,  // tt
 	0x1bf: 0x1105,  // align
-	0x1c0: 0x3f407, // oninput
-	0x1c3: 0x42107, // onkeyup
-	0x1c6: 0x1e50c, // onafterprint
+	0x1c0: 0x3e607, // oninput
+	0x1c3: 0x41807, // onkeyup
+	0x1c6: 0x1c00c, // onafterprint
 	0x1c7: 0x210e,  // accept-charset
-	0x1c8: 0x9806,  // itemid
-	0x1cb: 0x50e06, // strike
-	0x1cc: 0x57a03, // sub
-	0x1cd: 0xf905,  // track
-	0x1ce: 0x39705, // start
-	0x1d0: 0x11408, // basefont
-	0x1d6: 0x1cf06, // source
-	0x1d7: 0x1a806, // legend
-	0x1d8: 0x2f905, // thead
-	0x1da: 0x2e905, // scope
-	0x1dd: 0x21106, // object
-	0x1de: 0xa205,  // media
-	0x1df: 0x18d0a, // annotation
-	0x1e0: 0x22c0b, // formenctype
-	0x1e2: 0x28b08, // noscript
-	0x1e4: 0x53005, // sizes
-	0x1e5: 0xd50c,  // autocomplete
-	0x1e6: 0x7a04,  // span
-	0x1e7: 0x8508,  // noframes
-	0x1e8: 0x26a06, // target
-	0x1e9: 0x3a006, // ondrop
-	0x1ea: 0x3d406, // srcdoc
-	0x1ec: 0x5e08,  // reversed
-	0x1f0: 0x2c707, // isindex
-	0x1f3: 0x29808, // hreflang
-	0x1f5: 0x4e602, // h5
-	0x1f6: 0x5d507, // address
-	0x1fa: 0x30603, // max
-	0x1fb: 0xc70b,  // placeholder
-	0x1fc: 0x31408, // textarea
-	0x1fe: 0x4a609, // onmouseup
-	0x1ff: 0x3910b, // ondragstart
+	0x1c8: 0x33c06, // itemid
+	0x1c9: 0x3e809, // inputmode
+	0x1cb: 0x53306, // strike
+	0x1cc: 0x5a903, // sub
+	0x1cd: 0x10505, // track
+	0x1ce: 0x38605, // start
+	0x1d0: 0xd608,  // basefont
+	0x1d6: 0x1aa06, // source
+	0x1d7: 0x18206, // legend
+	0x1d8: 0x2d405, // thead
+	0x1da: 0x8c05,  // tfoot
+	0x1dd: 0x1ec06, // object
+	0x1de: 0x6e05,  // media
+	0x1df: 0x1670a, // annotation
+	0x1e0: 0x20d0b, // formenctype
+	0x1e2: 0x3d208, // noscript
+	0x1e4: 0x55505, // sizes
+	0x1e5: 0x1fc0c, // autocomplete
+	0x1e6: 0x9504,  // span
+	0x1e7: 0x9808,  // noframes
+	0x1e8: 0x24b06, // target
+	0x1e9: 0x38f06, // ondrop
+	0x1ea: 0x2b306, // applet
+	0x1ec: 0x5a08,  // reversed
+	0x1f0: 0x2a907, // isindex
+	0x1f3: 0x27008, // hreflang
+	0x1f5: 0x2f302, // h5
+	0x1f6: 0x4f307, // address
+	0x1fa: 0x2e103, // max
+	0x1fb: 0xc30b,  // placeholder
+	0x1fc: 0x2f608, // textarea
+	0x1fe: 0x4ad09, // onmouseup
+	0x1ff: 0x3800b, // ondragstart
 }
 
 const atomText = "abbradiogrouparamalignmarkbdialogaccept-charsetbodyaccesskey" +
-	"genavaluealtdescanvasidefaultfootereversedetailsampatternobr" +
-	"owspanoembedfnoframesetitleasyncitemidirnamediagroupingaudio" +
-	"ncancelabelooptgrouplaceholderubyautocompleteautofocusandbox" +
-	"mplaintextrackindisabledivarautoplaybasefontimeupdatebdoncan" +
-	"playthrough1bgsoundlowbrbigblinkblockquoteborderbuttonabortr" +
-	"anslatecodefercolgroupostercolorcolspannotation-xmlcommandra" +
-	"ggablegendcontrolshapecoordsmallcrossoriginsourcefieldsetfig" +
-	"captionafterprintfigurequiredforeignObjectforeignobjectforma" +
-	"ctionbeforeprintformenctypemustmatchallengeformmethodformnov" +
-	"alidatetimeterformtargeth6heightmlhgroupreloadhiddenoscripth" +
-	"igh2hreflanghttp-equivideonclickiframeimageimglyph3isindexis" +
-	"mappletitemrefacenteritemscopeditemtypematheaderspacermaxlen" +
-	"gth4minmtextareadonlymultiplemutedoncloseamlesspellcheckedon" +
-	"contextmenuoncuechangeondblclickondragendondragenterondragle" +
-	"aveondragoverondragstarticleondropzonemptiedondurationchange" +
-	"onendedonerroronfocusrcdoclassectionbluronhashchangeoninputo" +
-	"ninvalidonkeydownloadonkeypressrclangonkeyupublicontentedita" +
-	"bleonloadeddatalistingonloadedmetadatabindexonloadstartonmes" +
-	"sageonmousedownonmousemoveonmouseoutputonmouseoveronmouseupo" +
-	"nmousewheelonofflinertononlineonpagehidelonpageshowidth5onpa" +
-	"usemaponplayingonpopstateonprogresstrikeytypeonratechangeonr" +
-	"esetonresizestrongonscrollonseekedonseekingonselectedonshowr" +
-	"aponstalledonstorageonsubmitempropenonsuspendonunloadonvolum" +
-	"echangeonwaitingoptimumanifestepromptoptionbeforeunloaddress" +
-	"tylesummarysupsvgsystemarquee"
+	"genavaluealtdetailsampatternobreversedfnoembedirnamediagroup" +
+	"ingasyncanvasidefaultfooterowspanoframesetitleaudionblurubya" +
+	"utofocusandboxmplaceholderautoplaybasefontimeupdatebdoncance" +
+	"labelooptgrouplaintextrackindisabledivarbgsoundlowbrbigblink" +
+	"blockquotebuttonabortranslatecodefercolgroupostercolorcolspa" +
+	"nnotation-xmlcommandraggablegendcontrolsmallcoordsortedcross" +
+	"originsourcefieldsetfigcaptionafterprintfigurequiredforeignO" +
+	"bjectforeignobjectformactionautocompleteerrorformenctypemust" +
+	"matchallengeformmethodformnovalidatetimeterformtargetheightm" +
+	"lhgroupreloadhiddenhigh1hreflanghttp-equivideoncanplaythroug" +
+	"h2iframeimageimglyph3isindexismappletitemscopeditemtypemarqu" +
+	"eematheaderspacermaxlength4minlength5mtextareadonlymultiplem" +
+	"utedonclickoncloseamlesspellcheckedoncontextmenuitemidoncuec" +
+	"hangeondblclickondragendondragenterondragleaveondragoverondr" +
+	"agstarticleondropzonemptiedondurationchangeonendedonerroronf" +
+	"ocusrcdocitempropenoscriptonhashchangeoninputmodeloninvalido" +
+	"nkeydownloadonkeypressrclangonkeyupublicontenteditableonlang" +
+	"uagechangeonloadeddatalistingonloadedmetadatabindexonloadsta" +
+	"rtonmessageonmousedownonmousemoveonmouseoutputonmouseoveronm" +
+	"ouseuponmousewheelonofflineononlineonpagehidesclassectionbef" +
+	"oreunloaddresshapeonpageshowidth6onpausemaponplayingonpopsta" +
+	"teonprogresstrikeytypeonratechangeonresetonresizestrongonscr" +
+	"ollonseekedonseekingonselectedonshowraponsortableonstalledon" +
+	"storageonsubmitemrefacenteronsuspendontoggleonunloadonvolume" +
+	"changeonwaitingoptimumanifestepromptoptionbeforeprintstylesu" +
+	"mmarysupsvgsystemplate"
diff --git a/go/src/golang.org/x/net/html/atom/table_test.go b/go/src/golang.org/x/net/html/atom/table_test.go
index db016a1..0f2ecce 100644
--- a/go/src/golang.org/x/net/html/atom/table_test.go
+++ b/go/src/golang.org/x/net/html/atom/table_test.go
@@ -5,6 +5,7 @@
 var testAtomList = []string{
 	"a",
 	"abbr",
+	"abbr",
 	"accept",
 	"accept-charset",
 	"accesskey",
@@ -33,7 +34,6 @@
 	"blink",
 	"blockquote",
 	"body",
-	"border",
 	"br",
 	"button",
 	"canvas",
@@ -125,8 +125,8 @@
 	"iframe",
 	"image",
 	"img",
-	"inert",
 	"input",
+	"inputmode",
 	"ins",
 	"isindex",
 	"ismap",
@@ -160,12 +160,14 @@
 	"media",
 	"mediagroup",
 	"menu",
+	"menuitem",
 	"meta",
 	"meter",
 	"method",
 	"mglyph",
 	"mi",
 	"min",
+	"minlength",
 	"mn",
 	"mo",
 	"ms",
@@ -183,6 +185,8 @@
 	"ol",
 	"onabort",
 	"onafterprint",
+	"onautocomplete",
+	"onautocompleteerror",
 	"onbeforeprint",
 	"onbeforeunload",
 	"onblur",
@@ -213,6 +217,7 @@
 	"onkeydown",
 	"onkeypress",
 	"onkeyup",
+	"onlanguagechange",
 	"onload",
 	"onloadeddata",
 	"onloadedmetadata",
@@ -241,11 +246,13 @@
 	"onseeking",
 	"onselect",
 	"onshow",
+	"onsort",
 	"onstalled",
 	"onstorage",
 	"onsubmit",
 	"onsuspend",
 	"ontimeupdate",
+	"ontoggle",
 	"onunload",
 	"onvolumechange",
 	"onwaiting",
@@ -291,6 +298,8 @@
 	"size",
 	"sizes",
 	"small",
+	"sortable",
+	"sorted",
 	"source",
 	"spacer",
 	"span",
@@ -315,6 +324,7 @@
 	"target",
 	"tbody",
 	"td",
+	"template",
 	"textarea",
 	"tfoot",
 	"th",
diff --git a/go/src/golang.org/x/net/html/charset/charset.go b/go/src/golang.org/x/net/html/charset/charset.go
index 2e5f9ba..464c821 100644
--- a/go/src/golang.org/x/net/html/charset/charset.go
+++ b/go/src/golang.org/x/net/html/charset/charset.go
@@ -5,11 +5,12 @@
 // Package charset provides common text encodings for HTML documents.
 //
 // The mapping from encoding labels to encodings is defined at
-// http://encoding.spec.whatwg.org.
+// https://encoding.spec.whatwg.org/.
 package charset // import "golang.org/x/net/html/charset"
 
 import (
 	"bytes"
+	"fmt"
 	"io"
 	"mime"
 	"strings"
@@ -110,6 +111,18 @@
 	return r, nil
 }
 
+// NewReaderLabel returns a reader that converts from the specified charset to
+// UTF-8. It uses Lookup to find the encoding that corresponds to label, and
+// returns an error if Lookup returns nil. It is suitable for use as
+// encoding/xml.Decoder's CharsetReader function.
+func NewReaderLabel(label string, input io.Reader) (io.Reader, error) {
+	e, _ := Lookup(label)
+	if e == nil {
+		return nil, fmt.Errorf("unsupported charset: %q", label)
+	}
+	return transform.NewReader(input, e.NewDecoder()), nil
+}
+
 func prescan(content []byte) (e encoding.Encoding, name string) {
 	z := html.NewTokenizer(bytes.NewReader(content))
 	for {
diff --git a/go/src/golang.org/x/net/html/charset/charset_test.go b/go/src/golang.org/x/net/html/charset/charset_test.go
index d309f75..8b10399 100644
--- a/go/src/golang.org/x/net/html/charset/charset_test.go
+++ b/go/src/golang.org/x/net/html/charset/charset_test.go
@@ -6,6 +6,7 @@
 
 import (
 	"bytes"
+	"encoding/xml"
 	"io/ioutil"
 	"runtime"
 	"strings"
@@ -213,3 +214,23 @@
 		}
 	}
 }
+
+func TestXML(t *testing.T) {
+	const s = "<?xml version=\"1.0\" encoding=\"windows-1252\"?><a><Word>r\xe9sum\xe9</Word></a>"
+
+	d := xml.NewDecoder(strings.NewReader(s))
+	d.CharsetReader = NewReaderLabel
+
+	var a struct {
+		Word string
+	}
+	err := d.Decode(&a)
+	if err != nil {
+		t.Fatalf("Decode: %v", err)
+	}
+
+	want := "résumé"
+	if a.Word != want {
+		t.Errorf("got %q, want %q", a.Word, want)
+	}
+}
diff --git a/go/src/golang.org/x/net/html/charset/gen.go b/go/src/golang.org/x/net/html/charset/gen.go
index 8b76909..828347f 100644
--- a/go/src/golang.org/x/net/html/charset/gen.go
+++ b/go/src/golang.org/x/net/html/charset/gen.go
@@ -6,7 +6,7 @@
 
 package main
 
-// Download http://encoding.spec.whatwg.org/encodings.json and use it to
+// Download https://encoding.spec.whatwg.org/encodings.json and use it to
 // generate table.go.
 
 import (
@@ -27,7 +27,7 @@
 	Heading   string
 }
 
-const specURL = "http://encoding.spec.whatwg.org/encodings.json"
+const specURL = "https://encoding.spec.whatwg.org/encodings.json"
 
 func main() {
 	resp, err := http.Get(specURL)
diff --git a/go/src/golang.org/x/net/html/charset/testdata/README b/go/src/golang.org/x/net/html/charset/testdata/README
index a8e1fa4..38ef0f9 100644
--- a/go/src/golang.org/x/net/html/charset/testdata/README
+++ b/go/src/golang.org/x/net/html/charset/testdata/README
@@ -1 +1,9 @@
-These test cases come from http://www.w3.org/International/tests/html5/the-input-byte-stream/results-basics
+These test cases come from
+http://www.w3.org/International/tests/repository/html5/the-input-byte-stream/results-basics
+
+Distributed under both the W3C Test Suite License
+(http://www.w3.org/Consortium/Legal/2008/04-testsuite-license)
+and the W3C 3-clause BSD License
+(http://www.w3.org/Consortium/Legal/2008/03-bsd-license).
+To contribute to a W3C Test Suite, see the policies and contribution
+forms (http://www.w3.org/2004/10/27-testcases).
diff --git a/go/src/golang.org/x/net/html/const.go b/go/src/golang.org/x/net/html/const.go
index d7cc8bb..52f651f 100644
--- a/go/src/golang.org/x/net/html/const.go
+++ b/go/src/golang.org/x/net/html/const.go
@@ -6,7 +6,7 @@
 
 // Section 12.2.3.2 of the HTML5 specification says "The following elements
 // have varying levels of special parsing rules".
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#the-stack-of-open-elements
+// https://html.spec.whatwg.org/multipage/syntax.html#the-stack-of-open-elements
 var isSpecialElementMap = map[string]bool{
 	"address":    true,
 	"applet":     true,
@@ -24,7 +24,6 @@
 	"center":     true,
 	"col":        true,
 	"colgroup":   true,
-	"command":    true,
 	"dd":         true,
 	"details":    true,
 	"dir":        true,
@@ -73,17 +72,20 @@
 	"script":     true,
 	"section":    true,
 	"select":     true,
+	"source":     true,
 	"style":      true,
 	"summary":    true,
 	"table":      true,
 	"tbody":      true,
 	"td":         true,
+	"template":   true,
 	"textarea":   true,
 	"tfoot":      true,
 	"th":         true,
 	"thead":      true,
 	"title":      true,
 	"tr":         true,
+	"track":      true,
 	"ul":         true,
 	"wbr":        true,
 	"xmp":        true,
diff --git a/go/src/golang.org/x/net/html/doc.go b/go/src/golang.org/x/net/html/doc.go
index 32379a3..94f4968 100644
--- a/go/src/golang.org/x/net/html/doc.go
+++ b/go/src/golang.org/x/net/html/doc.go
@@ -90,8 +90,8 @@
 	f(doc)
 
 The relevant specifications include:
-http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html and
-http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html
+https://html.spec.whatwg.org/multipage/syntax.html and
+https://html.spec.whatwg.org/multipage/syntax.html#tokenization
 */
 package html // import "golang.org/x/net/html"
 
diff --git a/go/src/golang.org/x/net/html/entity.go b/go/src/golang.org/x/net/html/entity.go
index af8a007..a50c04c 100644
--- a/go/src/golang.org/x/net/html/entity.go
+++ b/go/src/golang.org/x/net/html/entity.go
@@ -8,7 +8,7 @@
 const longestEntityWithoutSemicolon = 6
 
 // entity is a map from HTML entity names to their values. The semicolon matters:
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/named-character-references.html
+// https://html.spec.whatwg.org/multipage/syntax.html#named-character-references
 // lists both "amp" and "amp;" as two separate entries.
 //
 // Note that the HTML5 list is larger than the HTML4 list at
diff --git a/go/src/golang.org/x/net/html/escape.go b/go/src/golang.org/x/net/html/escape.go
index 75bddff..d856139 100644
--- a/go/src/golang.org/x/net/html/escape.go
+++ b/go/src/golang.org/x/net/html/escape.go
@@ -12,7 +12,7 @@
 
 // These replacements permit compatibility with old numeric entities that
 // assumed Windows-1252 encoding.
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#consume-a-character-reference
+// https://html.spec.whatwg.org/multipage/syntax.html#consume-a-character-reference
 var replacementTable = [...]rune{
 	'\u20AC', // First entry is what 0x80 should be replaced with.
 	'\u0081',
@@ -55,7 +55,7 @@
 // Precondition: b[src] == '&' && dst <= src.
 // attribute should be true if parsing an attribute value.
 func unescapeEntity(b []byte, dst, src int, attribute bool) (dst1, src1 int) {
-	// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#consume-a-character-reference
+	// https://html.spec.whatwg.org/multipage/syntax.html#consume-a-character-reference
 
 	// i starts at 1 because we already know that s[0] == '&'.
 	i, s := 1, b[src:]
diff --git a/go/src/golang.org/x/net/html/parse.go b/go/src/golang.org/x/net/html/parse.go
index b42a323..be4b2bf 100644
--- a/go/src/golang.org/x/net/html/parse.go
+++ b/go/src/golang.org/x/net/html/parse.go
@@ -14,7 +14,7 @@
 )
 
 // A parser implements the HTML5 parsing algorithm:
-// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#tree-construction
+// https://html.spec.whatwg.org/multipage/syntax.html#tree-construction
 type parser struct {
 	// tokenizer provides the tokens for the parser.
 	tokenizer *Tokenizer
@@ -59,7 +59,7 @@
 // Stop tags for use in popUntil. These come from section 12.2.3.2.
 var (
 	defaultScopeStopTags = map[string][]a.Atom{
-		"":     {a.Applet, a.Caption, a.Html, a.Table, a.Td, a.Th, a.Marquee, a.Object},
+		"":     {a.Applet, a.Caption, a.Html, a.Table, a.Td, a.Th, a.Marquee, a.Object, a.Template},
 		"math": {a.AnnotationXml, a.Mi, a.Mn, a.Mo, a.Ms, a.Mtext},
 		"svg":  {a.Desc, a.ForeignObject, a.Title},
 	}
@@ -1037,15 +1037,15 @@
 
 func (p *parser) inBodyEndTagFormatting(tagAtom a.Atom) {
 	// This is the "adoption agency" algorithm, described at
-	// http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html#adoptionAgency
+	// https://html.spec.whatwg.org/multipage/syntax.html#adoptionAgency
 
 	// TODO: this is a fairly literal line-by-line translation of that algorithm.
 	// Once the code successfully parses the comprehensive test suite, we should
 	// refactor this code to be more idiomatic.
 
-	// Steps 1-3. The outer loop.
+	// Steps 1-4. The outer loop.
 	for i := 0; i < 8; i++ {
-		// Step 4. Find the formatting element.
+		// Step 5. Find the formatting element.
 		var formattingElement *Node
 		for j := len(p.afe) - 1; j >= 0; j-- {
 			if p.afe[j].Type == scopeMarkerNode {
@@ -1070,7 +1070,7 @@
 			return
 		}
 
-		// Steps 5-6. Find the furthest block.
+		// Steps 9-10. Find the furthest block.
 		var furthestBlock *Node
 		for _, e := range p.oe[feIndex:] {
 			if isSpecialElement(e) {
@@ -1087,47 +1087,47 @@
 			return
 		}
 
-		// Steps 7-8. Find the common ancestor and bookmark node.
+		// Steps 11-12. Find the common ancestor and bookmark node.
 		commonAncestor := p.oe[feIndex-1]
 		bookmark := p.afe.index(formattingElement)
 
-		// Step 9. The inner loop. Find the lastNode to reparent.
+		// Step 13. The inner loop. Find the lastNode to reparent.
 		lastNode := furthestBlock
 		node := furthestBlock
 		x := p.oe.index(node)
-		// Steps 9.1-9.3.
+		// Steps 13.1-13.2
 		for j := 0; j < 3; j++ {
-			// Step 9.4.
+			// Step 13.3.
 			x--
 			node = p.oe[x]
-			// Step 9.5.
+			// Step 13.4 - 13.5.
 			if p.afe.index(node) == -1 {
 				p.oe.remove(node)
 				continue
 			}
-			// Step 9.6.
+			// Step 13.6.
 			if node == formattingElement {
 				break
 			}
-			// Step 9.7.
+			// Step 13.7.
 			clone := node.clone()
 			p.afe[p.afe.index(node)] = clone
 			p.oe[p.oe.index(node)] = clone
 			node = clone
-			// Step 9.8.
+			// Step 13.8.
 			if lastNode == furthestBlock {
 				bookmark = p.afe.index(node) + 1
 			}
-			// Step 9.9.
+			// Step 13.9.
 			if lastNode.Parent != nil {
 				lastNode.Parent.RemoveChild(lastNode)
 			}
 			node.AppendChild(lastNode)
-			// Step 9.10.
+			// Step 13.10.
 			lastNode = node
 		}
 
-		// Step 10. Reparent lastNode to the common ancestor,
+		// Step 14. Reparent lastNode to the common ancestor,
 		// or for misnested table nodes, to the foster parent.
 		if lastNode.Parent != nil {
 			lastNode.Parent.RemoveChild(lastNode)
@@ -1139,13 +1139,13 @@
 			commonAncestor.AppendChild(lastNode)
 		}
 
-		// Steps 11-13. Reparent nodes from the furthest block's children
+		// Steps 15-17. Reparent nodes from the furthest block's children
 		// to a clone of the formatting element.
 		clone := formattingElement.clone()
 		reparentChildren(clone, furthestBlock)
 		furthestBlock.AppendChild(clone)
 
-		// Step 14. Fix up the list of active formatting elements.
+		// Step 18. Fix up the list of active formatting elements.
 		if oldLoc := p.afe.index(formattingElement); oldLoc != -1 && oldLoc < bookmark {
 			// Move the bookmark with the rest of the list.
 			bookmark--
@@ -1153,13 +1153,15 @@
 		p.afe.remove(formattingElement)
 		p.afe.insert(bookmark, clone)
 
-		// Step 15. Fix up the stack of open elements.
+		// Step 19. Fix up the stack of open elements.
 		p.oe.remove(formattingElement)
 		p.oe.insert(p.oe.index(furthestBlock)+1, clone)
 	}
 }
 
 // inBodyEndTagOther performs the "any other end tag" algorithm for inBodyIM.
+// "Any other end tag" handling from 12.2.5.5 The rules for parsing tokens in foreign content
+// https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inforeign
 func (p *parser) inBodyEndTagOther(tagAtom a.Atom) {
 	for i := len(p.oe) - 1; i >= 0; i-- {
 		if p.oe[i].DataAtom == tagAtom {
diff --git a/go/src/golang.org/x/net/html/render.go b/go/src/golang.org/x/net/html/render.go
index 4a833b4..d34564f 100644
--- a/go/src/golang.org/x/net/html/render.go
+++ b/go/src/golang.org/x/net/html/render.go
@@ -14,7 +14,7 @@
 
 type writer interface {
 	io.Writer
-	WriteByte(c byte) error // in Go 1.1, use io.ByteWriter
+	io.ByteWriter
 	WriteString(string) (int, error)
 }
 
diff --git a/go/src/golang.org/x/net/html/token_test.go b/go/src/golang.org/x/net/html/token_test.go
index f6988a8..20221c3 100644
--- a/go/src/golang.org/x/net/html/token_test.go
+++ b/go/src/golang.org/x/net/html/token_test.go
@@ -392,7 +392,7 @@
 		"½",
 	},
 	// Attribute tests:
-	// http://dev.w3.org/html5/spec/Overview.html#attributes-0
+	// http://dev.w3.org/html5/pf-summary/Overview.html#attributes
 	{
 		"Empty attribute",
 		`<input disabled FOO>`,
diff --git a/go/src/golang.org/x/net/icmp/dstunreach.go b/go/src/golang.org/x/net/icmp/dstunreach.go
index 8241017..01dc660 100644
--- a/go/src/golang.org/x/net/icmp/dstunreach.go
+++ b/go/src/golang.org/x/net/icmp/dstunreach.go
@@ -7,35 +7,35 @@
 // A DstUnreach represents an ICMP destination unreachable message
 // body.
 type DstUnreach struct {
-	Data []byte // data
+	Data       []byte      // data, known as original datagram field
+	Extensions []Extension // extensions
 }
 
 // Len implements the Len method of MessageBody interface.
-func (p *DstUnreach) Len() int {
+func (p *DstUnreach) Len(proto int) int {
 	if p == nil {
 		return 0
 	}
-	return 4 + len(p.Data)
+	l, _ := multipartMessageBodyDataLen(proto, p.Data, p.Extensions)
+	return l
 }
 
 // Marshal implements the Marshal method of MessageBody interface.
-func (p *DstUnreach) Marshal() ([]byte, error) {
-	b := make([]byte, 4+len(p.Data))
-	copy(b[4:], p.Data)
-	return b, nil
+func (p *DstUnreach) Marshal(proto int) ([]byte, error) {
+	return marshalMultipartMessageBody(proto, p.Data, p.Extensions)
 }
 
 // parseDstUnreach parses b as an ICMP destination unreachable message
 // body.
-func parseDstUnreach(b []byte) (MessageBody, error) {
-	bodyLen := len(b)
-	if bodyLen < 4 {
+func parseDstUnreach(proto int, b []byte) (MessageBody, error) {
+	if len(b) < 4 {
 		return nil, errMessageTooShort
 	}
 	p := &DstUnreach{}
-	if bodyLen > 4 {
-		p.Data = make([]byte, bodyLen-4)
-		copy(p.Data, b[4:])
+	var err error
+	p.Data, p.Extensions, err = parseMultipartMessageBody(proto, b)
+	if err != nil {
+		return nil, err
 	}
 	return p, nil
 }
diff --git a/go/src/golang.org/x/net/icmp/echo.go b/go/src/golang.org/x/net/icmp/echo.go
index dfac9cb..8943eab 100644
--- a/go/src/golang.org/x/net/icmp/echo.go
+++ b/go/src/golang.org/x/net/icmp/echo.go
@@ -12,7 +12,7 @@
 }
 
 // Len implements the Len method of MessageBody interface.
-func (p *Echo) Len() int {
+func (p *Echo) Len(proto int) int {
 	if p == nil {
 		return 0
 	}
@@ -20,7 +20,7 @@
 }
 
 // Marshal implements the Marshal method of MessageBody interface.
-func (p *Echo) Marshal() ([]byte, error) {
+func (p *Echo) Marshal(proto int) ([]byte, error) {
 	b := make([]byte, 4+len(p.Data))
 	b[0], b[1] = byte(p.ID>>8), byte(p.ID)
 	b[2], b[3] = byte(p.Seq>>8), byte(p.Seq)
@@ -29,7 +29,7 @@
 }
 
 // parseEcho parses b as an ICMP echo request or reply message body.
-func parseEcho(b []byte) (MessageBody, error) {
+func parseEcho(proto int, b []byte) (MessageBody, error) {
 	bodyLen := len(b)
 	if bodyLen < 4 {
 		return nil, errMessageTooShort
diff --git a/go/src/golang.org/x/net/icmp/endpoint.go b/go/src/golang.org/x/net/icmp/endpoint.go
index 5bf2cfe..3de49e6 100644
--- a/go/src/golang.org/x/net/icmp/endpoint.go
+++ b/go/src/golang.org/x/net/icmp/endpoint.go
@@ -6,6 +6,7 @@
 
 import (
 	"net"
+	"runtime"
 	"syscall"
 	"time"
 
@@ -51,6 +52,15 @@
 	if !c.ok() {
 		return 0, nil, syscall.EINVAL
 	}
+	// Please be informed that ipv4.NewPacketConn enables
+	// IP_STRIPHDR option by default on Darwin.
+	// See golang.org/issue/9395 for futher information.
+	if runtime.GOOS == "darwin" {
+		if p, _ := c.ipc.(*ipv4.PacketConn); p != nil {
+			n, _, peer, err := p.ReadFrom(b)
+			return n, peer, err
+		}
+	}
 	return c.c.ReadFrom(b)
 }
 
diff --git a/go/src/golang.org/x/net/icmp/extension.go b/go/src/golang.org/x/net/icmp/extension.go
new file mode 100644
index 0000000..720e167
--- /dev/null
+++ b/go/src/golang.org/x/net/icmp/extension.go
@@ -0,0 +1,87 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package icmp
+
+// An Extension represents an ICMP extension.
+type Extension interface {
+	// Len returns the length of ICMP extension.
+	// Proto must be either the ICMPv4 or ICMPv6 protocol number.
+	Len(proto int) int
+
+	// Marshal returns the binary enconding of ICMP extension.
+	// Proto must be either the ICMPv4 or ICMPv6 protocol number.
+	Marshal(proto int) ([]byte, error)
+}
+
+const extensionVersion = 2
+
+func validExtensionHeader(b []byte) bool {
+	v := int(b[0]&0xf0) >> 4
+	s := uint16(b[2])<<8 | uint16(b[3])
+	if s != 0 {
+		s = checksum(b)
+	}
+	if v != extensionVersion || s != 0 {
+		return false
+	}
+	return true
+}
+
+// parseExtensions parses b as a list of ICMP extensions.
+// The length attribute l must be the length attribute field in
+// received icmp messages.
+//
+// It will return a list of ICMP extensions and an adjusted length
+// attribute that represents the length of the padded original
+// datagram field. Otherwise, it returns an error.
+func parseExtensions(b []byte, l int) ([]Extension, int, error) {
+	// Still a lot of non-RFC 4884 compliant implementations are
+	// out there. Set the length attribute l to 128 when it looks
+	// inappropriate for backwards compatibility.
+	//
+	// A minimal extension at least requires 8 octets; 4 octets
+	// for an extension header, and 4 octets for a single object
+	// header.
+	//
+	// See RFC 4884 for further information.
+	if 128 > l || l+8 > len(b) {
+		l = 128
+	}
+	if l+8 > len(b) {
+		return nil, -1, errNoExtension
+	}
+	if !validExtensionHeader(b[l:]) {
+		if l == 128 {
+			return nil, -1, errNoExtension
+		}
+		l = 128
+		if !validExtensionHeader(b[l:]) {
+			return nil, -1, errNoExtension
+		}
+	}
+	var exts []Extension
+	for b = b[l+4:]; len(b) >= 4; {
+		ol := int(b[0])<<8 | int(b[1])
+		if 4 > ol || ol > len(b) {
+			break
+		}
+		switch b[2] {
+		case classMPLSLabelStack:
+			ext, err := parseMPLSLabelStack(b[:ol])
+			if err != nil {
+				return nil, -1, err
+			}
+			exts = append(exts, ext)
+		case classInterfaceInfo:
+			ext, err := parseInterfaceInfo(b[:ol])
+			if err != nil {
+				return nil, -1, err
+			}
+			exts = append(exts, ext)
+		}
+		b = b[ol:]
+	}
+	return exts, l, nil
+}
diff --git a/go/src/golang.org/x/net/icmp/extension_test.go b/go/src/golang.org/x/net/icmp/extension_test.go
new file mode 100644
index 0000000..0b3f7b9
--- /dev/null
+++ b/go/src/golang.org/x/net/icmp/extension_test.go
@@ -0,0 +1,259 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package icmp
+
+import (
+	"net"
+	"reflect"
+	"testing"
+
+	"golang.org/x/net/internal/iana"
+)
+
+var marshalAndParseExtensionTests = []struct {
+	proto int
+	hdr   []byte
+	obj   []byte
+	exts  []Extension
+}{
+	// MPLS label stack with no label
+	{
+		proto: iana.ProtocolICMP,
+		hdr: []byte{
+			0x20, 0x00, 0x00, 0x00,
+		},
+		obj: []byte{
+			0x00, 0x04, 0x01, 0x01,
+		},
+		exts: []Extension{
+			&MPLSLabelStack{
+				Class: classMPLSLabelStack,
+				Type:  typeIncomingMPLSLabelStack,
+			},
+		},
+	},
+	// MPLS label stack with a single label
+	{
+		proto: iana.ProtocolIPv6ICMP,
+		hdr: []byte{
+			0x20, 0x00, 0x00, 0x00,
+		},
+		obj: []byte{
+			0x00, 0x08, 0x01, 0x01,
+			0x03, 0xe8, 0xe9, 0xff,
+		},
+		exts: []Extension{
+			&MPLSLabelStack{
+				Class: classMPLSLabelStack,
+				Type:  typeIncomingMPLSLabelStack,
+				Labels: []MPLSLabel{
+					{
+						Label: 16014,
+						TC:    0x4,
+						S:     true,
+						TTL:   255,
+					},
+				},
+			},
+		},
+	},
+	// MPLS label stack with multiple labels
+	{
+		proto: iana.ProtocolICMP,
+		hdr: []byte{
+			0x20, 0x00, 0x00, 0x00,
+		},
+		obj: []byte{
+			0x00, 0x0c, 0x01, 0x01,
+			0x03, 0xe8, 0xde, 0xfe,
+			0x03, 0xe8, 0xe1, 0xff,
+		},
+		exts: []Extension{
+			&MPLSLabelStack{
+				Class: classMPLSLabelStack,
+				Type:  typeIncomingMPLSLabelStack,
+				Labels: []MPLSLabel{
+					{
+						Label: 16013,
+						TC:    0x7,
+						S:     false,
+						TTL:   254,
+					},
+					{
+						Label: 16014,
+						TC:    0,
+						S:     true,
+						TTL:   255,
+					},
+				},
+			},
+		},
+	},
+	// Interface information with no attribute
+	{
+		proto: iana.ProtocolICMP,
+		hdr: []byte{
+			0x20, 0x00, 0x00, 0x00,
+		},
+		obj: []byte{
+			0x00, 0x04, 0x02, 0x00,
+		},
+		exts: []Extension{
+			&InterfaceInfo{
+				Class: classInterfaceInfo,
+			},
+		},
+	},
+	// Interface information with ifIndex and name
+	{
+		proto: iana.ProtocolICMP,
+		hdr: []byte{
+			0x20, 0x00, 0x00, 0x00,
+		},
+		obj: []byte{
+			0x00, 0x10, 0x02, 0x0a,
+			0x00, 0x00, 0x00, 0x10,
+			0x08, byte('e'), byte('n'), byte('1'),
+			byte('0'), byte('1'), 0x00, 0x00,
+		},
+		exts: []Extension{
+			&InterfaceInfo{
+				Class: classInterfaceInfo,
+				Type:  0x0a,
+				Interface: &net.Interface{
+					Index: 16,
+					Name:  "en101",
+				},
+			},
+		},
+	},
+	// Interface information with ifIndex, IPAddr, name and MTU
+	{
+		proto: iana.ProtocolIPv6ICMP,
+		hdr: []byte{
+			0x20, 0x00, 0x00, 0x00,
+		},
+		obj: []byte{
+			0x00, 0x28, 0x02, 0x0f,
+			0x00, 0x00, 0x00, 0x0f,
+			0x00, 0x02, 0x00, 0x00,
+			0xfe, 0x80, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x00,
+			0x00, 0x00, 0x00, 0x01,
+			0x08, byte('e'), byte('n'), byte('1'),
+			byte('0'), byte('1'), 0x00, 0x00,
+			0x00, 0x00, 0x20, 0x00,
+		},
+		exts: []Extension{
+			&InterfaceInfo{
+				Class: classInterfaceInfo,
+				Type:  0x0f,
+				Interface: &net.Interface{
+					Index: 15,
+					Name:  "en101",
+					MTU:   8192,
+				},
+				Addr: &net.IPAddr{
+					IP:   net.ParseIP("fe80::1"),
+					Zone: "en101",
+				},
+			},
+		},
+	},
+}
+
+func TestMarshalAndParseExtension(t *testing.T) {
+	for i, tt := range marshalAndParseExtensionTests {
+		for j, ext := range tt.exts {
+			var err error
+			var b []byte
+			switch ext := ext.(type) {
+			case *MPLSLabelStack:
+				b, err = ext.Marshal(tt.proto)
+				if err != nil {
+					t.Errorf("#%v/%v: %v", i, j, err)
+					continue
+				}
+			case *InterfaceInfo:
+				b, err = ext.Marshal(tt.proto)
+				if err != nil {
+					t.Errorf("#%v/%v: %v", i, j, err)
+					continue
+				}
+			}
+			if !reflect.DeepEqual(b, tt.obj) {
+				t.Errorf("#%v/%v: got %#v; want %#v", i, j, b, tt.obj)
+				continue
+			}
+		}
+
+		for j, wire := range []struct {
+			data     []byte // original datagram
+			inlattr  int    // length of padded original datagram, a hint
+			outlattr int    // length of padded original datagram, a want
+			err      error
+		}{
+			{nil, 0, -1, errNoExtension},
+			{make([]byte, 127), 128, -1, errNoExtension},
+
+			{make([]byte, 128), 127, -1, errNoExtension},
+			{make([]byte, 128), 128, -1, errNoExtension},
+			{make([]byte, 128), 129, -1, errNoExtension},
+
+			{append(make([]byte, 128), append(tt.hdr, tt.obj...)...), 127, 128, nil},
+			{append(make([]byte, 128), append(tt.hdr, tt.obj...)...), 128, 128, nil},
+			{append(make([]byte, 128), append(tt.hdr, tt.obj...)...), 129, 128, nil},
+
+			{append(make([]byte, 512), append(tt.hdr, tt.obj...)...), 511, -1, errNoExtension},
+			{append(make([]byte, 512), append(tt.hdr, tt.obj...)...), 512, 512, nil},
+			{append(make([]byte, 512), append(tt.hdr, tt.obj...)...), 513, -1, errNoExtension},
+		} {
+			exts, l, err := parseExtensions(wire.data, wire.inlattr)
+			if err != wire.err {
+				t.Errorf("#%v/%v: got %v; want %v", i, j, err, wire.err)
+				continue
+			}
+			if wire.err != nil {
+				continue
+			}
+			if l != wire.outlattr {
+				t.Errorf("#%v/%v: got %v; want %v", i, j, l, wire.outlattr)
+			}
+			if !reflect.DeepEqual(exts, tt.exts) {
+				for j, ext := range exts {
+					switch ext := ext.(type) {
+					case *MPLSLabelStack:
+						want := tt.exts[j].(*MPLSLabelStack)
+						t.Errorf("#%v/%v: got %#v; want %#v", i, j, ext, want)
+					case *InterfaceInfo:
+						want := tt.exts[j].(*InterfaceInfo)
+						t.Errorf("#%v/%v: got %#v; want %#v", i, j, ext, want)
+					}
+				}
+				continue
+			}
+		}
+	}
+}
+
+var parseInterfaceNameTests = []struct {
+	b []byte
+	error
+}{
+	{[]byte{0, 'e', 'n', '0'}, errInvalidExtension},
+	{[]byte{4, 'e', 'n', '0'}, nil},
+	{[]byte{7, 'e', 'n', '0', 0xff, 0xff, 0xff, 0xff}, errInvalidExtension},
+	{[]byte{8, 'e', 'n', '0', 0xff, 0xff, 0xff}, errMessageTooShort},
+}
+
+func TestParseInterfaceName(t *testing.T) {
+	ifi := InterfaceInfo{Interface: &net.Interface{}}
+	for i, tt := range parseInterfaceNameTests {
+		if _, err := ifi.parseName(tt.b); err != tt.error {
+			t.Errorf("#%d: got %v; want %v", i, err, tt.error)
+		}
+	}
+}
diff --git a/go/src/golang.org/x/net/icmp/helper_unix.go b/go/src/golang.org/x/net/icmp/helper_posix.go
similarity index 95%
rename from go/src/golang.org/x/net/icmp/helper_unix.go
rename to go/src/golang.org/x/net/icmp/helper_posix.go
index ced835c..398fd38 100644
--- a/go/src/golang.org/x/net/icmp/helper_unix.go
+++ b/go/src/golang.org/x/net/icmp/helper_posix.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows
 
 package icmp
 
diff --git a/go/src/golang.org/x/net/icmp/interface.go b/go/src/golang.org/x/net/icmp/interface.go
new file mode 100644
index 0000000..c7bf8dd
--- /dev/null
+++ b/go/src/golang.org/x/net/icmp/interface.go
@@ -0,0 +1,235 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package icmp
+
+import (
+	"net"
+	"strings"
+
+	"golang.org/x/net/internal/iana"
+)
+
+const (
+	classInterfaceInfo = 2
+
+	afiIPv4 = 1
+	afiIPv6 = 2
+)
+
+const (
+	attrMTU = 1 << iota
+	attrName
+	attrIPAddr
+	attrIfIndex
+)
+
+// An InterfaceInfo represents interface and next-hop identification.
+type InterfaceInfo struct {
+	Class     int // extension object class number
+	Type      int // extension object sub-type
+	Interface *net.Interface
+	Addr      *net.IPAddr
+}
+
+func (ifi *InterfaceInfo) nameLen() int {
+	if len(ifi.Interface.Name) > 63 {
+		return 64
+	}
+	l := 1 + len(ifi.Interface.Name)
+	return (l + 3) &^ 3
+}
+
+func (ifi *InterfaceInfo) attrsAndLen(proto int) (attrs, l int) {
+	l = 4
+	if ifi.Interface != nil && ifi.Interface.Index > 0 {
+		attrs |= attrIfIndex
+		l += 4
+		if len(ifi.Interface.Name) > 0 {
+			attrs |= attrName
+			l += ifi.nameLen()
+		}
+		if ifi.Interface.MTU > 0 {
+			attrs |= attrMTU
+			l += 4
+		}
+	}
+	if ifi.Addr != nil {
+		switch proto {
+		case iana.ProtocolICMP:
+			if ifi.Addr.IP.To4() != nil {
+				attrs |= attrIPAddr
+				l += 4 + net.IPv4len
+			}
+		case iana.ProtocolIPv6ICMP:
+			if ifi.Addr.IP.To16() != nil && ifi.Addr.IP.To4() == nil {
+				attrs |= attrIPAddr
+				l += 4 + net.IPv6len
+			}
+		}
+	}
+	return
+}
+
+// Len implements the Len method of Extension interface.
+func (ifi *InterfaceInfo) Len(proto int) int {
+	_, l := ifi.attrsAndLen(proto)
+	return l
+}
+
+// Marshal implements the Marshal method of Extension interface.
+func (ifi *InterfaceInfo) Marshal(proto int) ([]byte, error) {
+	attrs, l := ifi.attrsAndLen(proto)
+	b := make([]byte, l)
+	if err := ifi.marshal(proto, b, attrs, l); err != nil {
+		return nil, err
+	}
+	return b, nil
+}
+
+func (ifi *InterfaceInfo) marshal(proto int, b []byte, attrs, l int) error {
+	b[0], b[1] = byte(l>>8), byte(l)
+	b[2], b[3] = classInterfaceInfo, byte(ifi.Type)
+	for b = b[4:]; len(b) > 0 && attrs != 0; {
+		switch {
+		case attrs&attrIfIndex != 0:
+			b = ifi.marshalIfIndex(proto, b)
+			attrs &^= attrIfIndex
+		case attrs&attrIPAddr != 0:
+			b = ifi.marshalIPAddr(proto, b)
+			attrs &^= attrIPAddr
+		case attrs&attrName != 0:
+			b = ifi.marshalName(proto, b)
+			attrs &^= attrName
+		case attrs&attrMTU != 0:
+			b = ifi.marshalMTU(proto, b)
+			attrs &^= attrMTU
+		}
+	}
+	return nil
+}
+
+func (ifi *InterfaceInfo) marshalIfIndex(proto int, b []byte) []byte {
+	b[0], b[1], b[2], b[3] = byte(ifi.Interface.Index>>24), byte(ifi.Interface.Index>>16), byte(ifi.Interface.Index>>8), byte(ifi.Interface.Index)
+	return b[4:]
+}
+
+func (ifi *InterfaceInfo) parseIfIndex(b []byte) ([]byte, error) {
+	if len(b) < 4 {
+		return nil, errMessageTooShort
+	}
+	ifi.Interface.Index = int(b[0])<<24 | int(b[1])<<16 | int(b[2])<<8 | int(b[3])
+	return b[4:], nil
+}
+
+func (ifi *InterfaceInfo) marshalIPAddr(proto int, b []byte) []byte {
+	switch proto {
+	case iana.ProtocolICMP:
+		b[0], b[1] = byte(afiIPv4>>8), byte(afiIPv4)
+		copy(b[4:4+net.IPv4len], ifi.Addr.IP.To4())
+		b = b[4+net.IPv4len:]
+	case iana.ProtocolIPv6ICMP:
+		b[0], b[1] = byte(afiIPv6>>8), byte(afiIPv6)
+		copy(b[4:4+net.IPv6len], ifi.Addr.IP.To16())
+		b = b[4+net.IPv6len:]
+	}
+	return b
+}
+
+func (ifi *InterfaceInfo) parseIPAddr(b []byte) ([]byte, error) {
+	if len(b) < 4 {
+		return nil, errMessageTooShort
+	}
+	afi := int(b[0])<<8 | int(b[1])
+	b = b[4:]
+	switch afi {
+	case afiIPv4:
+		if len(b) < net.IPv4len {
+			return nil, errMessageTooShort
+		}
+		ifi.Addr.IP = make(net.IP, net.IPv4len)
+		copy(ifi.Addr.IP, b[:net.IPv4len])
+		b = b[net.IPv4len:]
+	case afiIPv6:
+		if len(b) < net.IPv6len {
+			return nil, errMessageTooShort
+		}
+		ifi.Addr.IP = make(net.IP, net.IPv6len)
+		copy(ifi.Addr.IP, b[:net.IPv6len])
+		b = b[net.IPv6len:]
+	}
+	return b, nil
+}
+
+func (ifi *InterfaceInfo) marshalName(proto int, b []byte) []byte {
+	l := byte(ifi.nameLen())
+	b[0] = l
+	copy(b[1:], []byte(ifi.Interface.Name))
+	return b[l:]
+}
+
+func (ifi *InterfaceInfo) parseName(b []byte) ([]byte, error) {
+	if 4 > len(b) || len(b) < int(b[0]) {
+		return nil, errMessageTooShort
+	}
+	l := int(b[0])
+	if l%4 != 0 || 4 > l || l > 64 {
+		return nil, errInvalidExtension
+	}
+	var name [63]byte
+	copy(name[:], b[1:l])
+	ifi.Interface.Name = strings.Trim(string(name[:]), "\000")
+	return b[l:], nil
+}
+
+func (ifi *InterfaceInfo) marshalMTU(proto int, b []byte) []byte {
+	b[0], b[1], b[2], b[3] = byte(ifi.Interface.MTU>>24), byte(ifi.Interface.MTU>>16), byte(ifi.Interface.MTU>>8), byte(ifi.Interface.MTU)
+	return b[4:]
+}
+
+func (ifi *InterfaceInfo) parseMTU(b []byte) ([]byte, error) {
+	if len(b) < 4 {
+		return nil, errMessageTooShort
+	}
+	ifi.Interface.MTU = int(b[0])<<24 | int(b[1])<<16 | int(b[2])<<8 | int(b[3])
+	return b[4:], nil
+}
+
+func parseInterfaceInfo(b []byte) (Extension, error) {
+	ifi := &InterfaceInfo{
+		Class: int(b[2]),
+		Type:  int(b[3]),
+	}
+	if ifi.Type&(attrIfIndex|attrName|attrMTU) != 0 {
+		ifi.Interface = &net.Interface{}
+	}
+	if ifi.Type&attrIPAddr != 0 {
+		ifi.Addr = &net.IPAddr{}
+	}
+	attrs := ifi.Type & (attrIfIndex | attrIPAddr | attrName | attrMTU)
+	for b = b[4:]; len(b) > 0 && attrs != 0; {
+		var err error
+		switch {
+		case attrs&attrIfIndex != 0:
+			b, err = ifi.parseIfIndex(b)
+			attrs &^= attrIfIndex
+		case attrs&attrIPAddr != 0:
+			b, err = ifi.parseIPAddr(b)
+			attrs &^= attrIPAddr
+		case attrs&attrName != 0:
+			b, err = ifi.parseName(b)
+			attrs &^= attrName
+		case attrs&attrMTU != 0:
+			b, err = ifi.parseMTU(b)
+			attrs &^= attrMTU
+		}
+		if err != nil {
+			return nil, err
+		}
+	}
+	if ifi.Interface != nil && ifi.Interface.Name != "" && ifi.Addr != nil && ifi.Addr.IP.To16() != nil && ifi.Addr.IP.To4() == nil {
+		ifi.Addr.Zone = ifi.Interface.Name
+	}
+	return ifi, nil
+}
diff --git a/go/src/golang.org/x/net/icmp/listen_unix.go b/go/src/golang.org/x/net/icmp/listen_posix.go
similarity index 92%
rename from go/src/golang.org/x/net/icmp/listen_unix.go
rename to go/src/golang.org/x/net/icmp/listen_posix.go
index e99e67d..fa1653b 100644
--- a/go/src/golang.org/x/net/icmp/listen_unix.go
+++ b/go/src/golang.org/x/net/icmp/listen_posix.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris windows
 
 package icmp
 
@@ -57,7 +57,7 @@
 			proto = iana.ProtocolIPv6ICMP
 		}
 	}
-	var err error
+	var cerr error
 	var c net.PacketConn
 	switch family {
 	case syscall.AF_INET, syscall.AF_INET6:
@@ -80,12 +80,12 @@
 		}
 		f := os.NewFile(uintptr(s), "datagram-oriented icmp")
 		defer f.Close()
-		c, err = net.FilePacketConn(f)
+		c, cerr = net.FilePacketConn(f)
 	default:
-		c, err = net.ListenPacket(network, address)
+		c, cerr = net.ListenPacket(network, address)
 	}
-	if err != nil {
-		return nil, err
+	if cerr != nil {
+		return nil, cerr
 	}
 	switch proto {
 	case iana.ProtocolICMP:
diff --git a/go/src/golang.org/x/net/icmp/listen_stub.go b/go/src/golang.org/x/net/icmp/listen_stub.go
index 396a556..668728d 100644
--- a/go/src/golang.org/x/net/icmp/listen_stub.go
+++ b/go/src/golang.org/x/net/icmp/listen_stub.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build nacl plan9 windows
+// +build nacl plan9
 
 package icmp
 
diff --git a/go/src/golang.org/x/net/icmp/message.go b/go/src/golang.org/x/net/icmp/message.go
index 3d89108..3f9ccb1 100644
--- a/go/src/golang.org/x/net/icmp/message.go
+++ b/go/src/golang.org/x/net/icmp/message.go
@@ -7,6 +7,10 @@
 // ICMPv4 and ICMPv6.
 //
 // ICMPv4 and ICMPv6 are defined in RFC 792 and RFC 4443.
+// Multi-part message support for ICMP is defined in RFC 4884.
+// ICMP extensions for MPLS are defined in RFC 4950.
+// ICMP extensions for interface and next-hop identification are
+// defined in RFC 5837.
 package icmp // import "golang.org/x/net/icmp"
 
 import (
@@ -20,12 +24,28 @@
 )
 
 var (
-	errMessageTooShort = errors.New("message too short")
-	errHeaderTooShort  = errors.New("header too short")
-	errBufferTooShort  = errors.New("buffer too short")
-	errOpNoSupport     = errors.New("operation not supported")
+	errMessageTooShort  = errors.New("message too short")
+	errHeaderTooShort   = errors.New("header too short")
+	errBufferTooShort   = errors.New("buffer too short")
+	errOpNoSupport      = errors.New("operation not supported")
+	errNoExtension      = errors.New("no extension")
+	errInvalidExtension = errors.New("invalid extension")
 )
 
+func checksum(b []byte) uint16 {
+	csumcv := len(b) - 1 // checksum coverage
+	s := uint32(0)
+	for i := 0; i < csumcv; i += 2 {
+		s += uint32(b[i+1])<<8 | uint32(b[i])
+	}
+	if csumcv&1 == 0 {
+		s += uint32(b[csumcv])
+	}
+	s = s>>16 + s&0xffff
+	s = s + s>>16
+	return ^uint16(s)
+}
+
 // A Type represents an ICMP message type.
 type Type interface {
 	Protocol() int
@@ -62,8 +82,8 @@
 	if m.Type.Protocol() == iana.ProtocolIPv6ICMP && psh != nil {
 		b = append(psh, b...)
 	}
-	if m.Body != nil && m.Body.Len() != 0 {
-		mb, err := m.Body.Marshal()
+	if m.Body != nil && m.Body.Len(m.Type.Protocol()) != 0 {
+		mb, err := m.Body.Marshal(m.Type.Protocol())
 		if err != nil {
 			return nil, err
 		}
@@ -76,24 +96,15 @@
 		off, l := 2*net.IPv6len, len(b)-len(psh)
 		b[off], b[off+1], b[off+2], b[off+3] = byte(l>>24), byte(l>>16), byte(l>>8), byte(l)
 	}
-	csumcv := len(b) - 1 // checksum coverage
-	s := uint32(0)
-	for i := 0; i < csumcv; i += 2 {
-		s += uint32(b[i+1])<<8 | uint32(b[i])
-	}
-	if csumcv&1 == 0 {
-		s += uint32(b[csumcv])
-	}
-	s = s>>16 + s&0xffff
-	s = s + s>>16
+	s := checksum(b)
 	// Place checksum back in header; using ^= avoids the
 	// assumption the checksum bytes are zero.
-	b[len(psh)+2] ^= byte(^s)
-	b[len(psh)+3] ^= byte(^s >> 8)
+	b[len(psh)+2] ^= byte(s)
+	b[len(psh)+3] ^= byte(s >> 8)
 	return b[len(psh):], nil
 }
 
-var parseFns = map[Type]func([]byte) (MessageBody, error){
+var parseFns = map[Type]func(int, []byte) (MessageBody, error){
 	ipv4.ICMPTypeDestinationUnreachable: parseDstUnreach,
 	ipv4.ICMPTypeTimeExceeded:           parseTimeExceeded,
 	ipv4.ICMPTypeParameterProblem:       parseParamProb,
@@ -127,9 +138,9 @@
 		return nil, syscall.EINVAL
 	}
 	if fn, ok := parseFns[m.Type]; !ok {
-		m.Body, err = parseDefaultMessageBody(b[4:])
+		m.Body, err = parseDefaultMessageBody(proto, b[4:])
 	} else {
-		m.Body, err = fn(b[4:])
+		m.Body, err = fn(proto, b[4:])
 	}
 	if err != nil {
 		return nil, err
diff --git a/go/src/golang.org/x/net/icmp/message_test.go b/go/src/golang.org/x/net/icmp/message_test.go
index 162bf7f..5d2605f 100644
--- a/go/src/golang.org/x/net/icmp/message_test.go
+++ b/go/src/golang.org/x/net/icmp/message_test.go
@@ -51,7 +51,7 @@
 }
 
 func TestMarshalAndParseMessageForIPv4(t *testing.T) {
-	for _, tt := range marshalAndParseMessageForIPv4Tests {
+	for i, tt := range marshalAndParseMessageForIPv4Tests {
 		b, err := tt.Marshal(nil)
 		if err != nil {
 			t.Fatal(err)
@@ -61,10 +61,10 @@
 			t.Fatal(err)
 		}
 		if m.Type != tt.Type || m.Code != tt.Code {
-			t.Errorf("got %v; want %v", m, &tt)
+			t.Errorf("#%v: got %v; want %v", i, m, &tt)
 		}
 		if !reflect.DeepEqual(m.Body, tt.Body) {
-			t.Errorf("got %v; want %v", m.Body, tt.Body)
+			t.Errorf("#%v: got %v; want %v", i, m.Body, tt.Body)
 		}
 	}
 }
@@ -113,7 +113,7 @@
 
 func TestMarshalAndParseMessageForIPv6(t *testing.T) {
 	pshicmp := icmp.IPv6PseudoHeader(net.ParseIP("fe80::1"), net.ParseIP("ff02::1"))
-	for _, tt := range marshalAndParseMessageForIPv6Tests {
+	for i, tt := range marshalAndParseMessageForIPv6Tests {
 		for _, psh := range [][]byte{pshicmp, nil} {
 			b, err := tt.Marshal(psh)
 			if err != nil {
@@ -124,10 +124,10 @@
 				t.Fatal(err)
 			}
 			if m.Type != tt.Type || m.Code != tt.Code {
-				t.Errorf("got %v; want %v", m, &tt)
+				t.Errorf("#%v: got %v; want %v", i, m, &tt)
 			}
 			if !reflect.DeepEqual(m.Body, tt.Body) {
-				t.Errorf("got %v; want %v", m.Body, tt.Body)
+				t.Errorf("#%v: got %v; want %v", i, m.Body, tt.Body)
 			}
 		}
 	}
diff --git a/go/src/golang.org/x/net/icmp/messagebody.go b/go/src/golang.org/x/net/icmp/messagebody.go
index f653ab6..d314480 100644
--- a/go/src/golang.org/x/net/icmp/messagebody.go
+++ b/go/src/golang.org/x/net/icmp/messagebody.go
@@ -7,10 +7,12 @@
 // A MessageBody represents an ICMP message body.
 type MessageBody interface {
 	// Len returns the length of ICMP message body.
-	Len() int
+	// Proto must be either the ICMPv4 or ICMPv6 protocol number.
+	Len(proto int) int
 
 	// Marshal returns the binary enconding of ICMP message body.
-	Marshal() ([]byte, error)
+	// Proto must be either the ICMPv4 or ICMPv6 protocol number.
+	Marshal(proto int) ([]byte, error)
 }
 
 // A DefaultMessageBody represents the default message body.
@@ -19,7 +21,7 @@
 }
 
 // Len implements the Len method of MessageBody interface.
-func (p *DefaultMessageBody) Len() int {
+func (p *DefaultMessageBody) Len(proto int) int {
 	if p == nil {
 		return 0
 	}
@@ -27,12 +29,12 @@
 }
 
 // Marshal implements the Marshal method of MessageBody interface.
-func (p *DefaultMessageBody) Marshal() ([]byte, error) {
+func (p *DefaultMessageBody) Marshal(proto int) ([]byte, error) {
 	return p.Data, nil
 }
 
 // parseDefaultMessageBody parses b as an ICMP message body.
-func parseDefaultMessageBody(b []byte) (MessageBody, error) {
+func parseDefaultMessageBody(proto int, b []byte) (MessageBody, error) {
 	p := &DefaultMessageBody{Data: make([]byte, len(b))}
 	copy(p.Data, b)
 	return p, nil
diff --git a/go/src/golang.org/x/net/icmp/mpls.go b/go/src/golang.org/x/net/icmp/mpls.go
new file mode 100644
index 0000000..31bcfe8
--- /dev/null
+++ b/go/src/golang.org/x/net/icmp/mpls.go
@@ -0,0 +1,75 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package icmp
+
+// A MPLSLabel represents a MPLS label stack entry.
+type MPLSLabel struct {
+	Label int  // label value
+	TC    int  // traffic class; formerly experimental use
+	S     bool // bottom of stack
+	TTL   int  // time to live
+}
+
+const (
+	classMPLSLabelStack        = 1
+	typeIncomingMPLSLabelStack = 1
+)
+
+// A MPLSLabelStack represents a MPLS label stack.
+type MPLSLabelStack struct {
+	Class  int // extension object class number
+	Type   int // extension object sub-type
+	Labels []MPLSLabel
+}
+
+// Len implements the Len method of Extension interface.
+func (ls *MPLSLabelStack) Len(proto int) int {
+	return 4 + (4 * len(ls.Labels))
+}
+
+// Marshal implements the Marshal method of Extension interface.
+func (ls *MPLSLabelStack) Marshal(proto int) ([]byte, error) {
+	b := make([]byte, ls.Len(proto))
+	if err := ls.marshal(proto, b); err != nil {
+		return nil, err
+	}
+	return b, nil
+}
+
+func (ls *MPLSLabelStack) marshal(proto int, b []byte) error {
+	l := ls.Len(proto)
+	b[0], b[1] = byte(l>>8), byte(l)
+	b[2], b[3] = classMPLSLabelStack, typeIncomingMPLSLabelStack
+	off := 4
+	for _, ll := range ls.Labels {
+		b[off], b[off+1], b[off+2] = byte(ll.Label>>12), byte(ll.Label>>4&0xff), byte(ll.Label<<4&0xf0)
+		b[off+2] |= byte(ll.TC << 1 & 0x0e)
+		if ll.S {
+			b[off+2] |= 0x1
+		}
+		b[off+3] = byte(ll.TTL)
+		off += 4
+	}
+	return nil
+}
+
+func parseMPLSLabelStack(b []byte) (Extension, error) {
+	ls := &MPLSLabelStack{
+		Class: int(b[2]),
+		Type:  int(b[3]),
+	}
+	for b = b[4:]; len(b) >= 4; b = b[4:] {
+		ll := MPLSLabel{
+			Label: int(b[0])<<12 | int(b[1])<<4 | int(b[2])>>4,
+			TC:    int(b[2]&0x0e) >> 1,
+			TTL:   int(b[3]),
+		}
+		if b[2]&0x1 != 0 {
+			ll.S = true
+		}
+		ls.Labels = append(ls.Labels, ll)
+	}
+	return ls, nil
+}
diff --git a/go/src/golang.org/x/net/icmp/multipart.go b/go/src/golang.org/x/net/icmp/multipart.go
new file mode 100644
index 0000000..54ac8bc
--- /dev/null
+++ b/go/src/golang.org/x/net/icmp/multipart.go
@@ -0,0 +1,109 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package icmp
+
+import "golang.org/x/net/internal/iana"
+
+// multipartMessageBodyDataLen takes b as an original datagram and
+// exts as extensions, and returns a required length for message body
+// and a required length for a padded original datagram in wire
+// format.
+func multipartMessageBodyDataLen(proto int, b []byte, exts []Extension) (bodyLen, dataLen int) {
+	for _, ext := range exts {
+		bodyLen += ext.Len(proto)
+	}
+	if bodyLen > 0 {
+		dataLen = multipartMessageOrigDatagramLen(proto, b)
+		bodyLen += 4 // length of extension header
+	} else {
+		dataLen = len(b)
+	}
+	bodyLen += dataLen
+	return bodyLen, dataLen
+}
+
+// multipartMessageOrigDatagramLen takes b as an original datagram,
+// and returns a required length for a padded orignal datagram in wire
+// format.
+func multipartMessageOrigDatagramLen(proto int, b []byte) int {
+	roundup := func(b []byte, align int) int {
+		// According to RFC 4884, the padded original datagram
+		// field must contain at least 128 octets.
+		if len(b) < 128 {
+			return 128
+		}
+		r := len(b)
+		return (r + align) &^ (align - 1)
+	}
+	switch proto {
+	case iana.ProtocolICMP:
+		return roundup(b, 4)
+	case iana.ProtocolIPv6ICMP:
+		return roundup(b, 8)
+	default:
+		return len(b)
+	}
+}
+
+// marshalMultipartMessageBody takes data as an original datagram and
+// exts as extesnsions, and returns a binary encoding of message body.
+// It can be used for non-multipart message bodies when exts is nil.
+func marshalMultipartMessageBody(proto int, data []byte, exts []Extension) ([]byte, error) {
+	bodyLen, dataLen := multipartMessageBodyDataLen(proto, data, exts)
+	b := make([]byte, 4+bodyLen)
+	copy(b[4:], data)
+	off := dataLen + 4
+	if len(exts) > 0 {
+		b[dataLen+4] = byte(extensionVersion << 4)
+		off += 4 // length of object header
+		for _, ext := range exts {
+			switch ext := ext.(type) {
+			case *MPLSLabelStack:
+				if err := ext.marshal(proto, b[off:]); err != nil {
+					return nil, err
+				}
+				off += ext.Len(proto)
+			case *InterfaceInfo:
+				attrs, l := ext.attrsAndLen(proto)
+				if err := ext.marshal(proto, b[off:], attrs, l); err != nil {
+					return nil, err
+				}
+				off += ext.Len(proto)
+			}
+		}
+		s := checksum(b[dataLen+4:])
+		b[dataLen+4+2] ^= byte(s)
+		b[dataLen+4+3] ^= byte(s >> 8)
+		switch proto {
+		case iana.ProtocolICMP:
+			b[1] = byte(dataLen / 4)
+		case iana.ProtocolIPv6ICMP:
+			b[0] = byte(dataLen / 8)
+		}
+	}
+	return b, nil
+}
+
+// parseMultipartMessageBody parses b as either a non-multipart
+// message body or a multipart message body.
+func parseMultipartMessageBody(proto int, b []byte) ([]byte, []Extension, error) {
+	var l int
+	switch proto {
+	case iana.ProtocolICMP:
+		l = 4 * int(b[1])
+	case iana.ProtocolIPv6ICMP:
+		l = 8 * int(b[0])
+	}
+	if len(b) == 4 {
+		return nil, nil, nil
+	}
+	exts, l, err := parseExtensions(b[4:], l)
+	if err != nil {
+		l = len(b) - 4
+	}
+	data := make([]byte, l)
+	copy(data, b[4:])
+	return data, exts, nil
+}
diff --git a/go/src/golang.org/x/net/icmp/multipart_test.go b/go/src/golang.org/x/net/icmp/multipart_test.go
new file mode 100644
index 0000000..9248e47
--- /dev/null
+++ b/go/src/golang.org/x/net/icmp/multipart_test.go
@@ -0,0 +1,315 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package icmp_test
+
+import (
+	"fmt"
+	"net"
+	"reflect"
+	"testing"
+
+	"golang.org/x/net/icmp"
+	"golang.org/x/net/internal/iana"
+	"golang.org/x/net/ipv4"
+	"golang.org/x/net/ipv6"
+)
+
+var marshalAndParseMultipartMessageForIPv4Tests = []icmp.Message{
+	{
+		Type: ipv4.ICMPTypeDestinationUnreachable, Code: 15,
+		Body: &icmp.DstUnreach{
+			Data: []byte("ERROR-INVOKING-PACKET"),
+			Extensions: []icmp.Extension{
+				&icmp.MPLSLabelStack{
+					Class: 1,
+					Type:  1,
+					Labels: []icmp.MPLSLabel{
+						{
+							Label: 16014,
+							TC:    0x4,
+							S:     true,
+							TTL:   255,
+						},
+					},
+				},
+				&icmp.InterfaceInfo{
+					Class: 2,
+					Type:  0x0f,
+					Interface: &net.Interface{
+						Index: 15,
+						Name:  "en101",
+						MTU:   8192,
+					},
+					Addr: &net.IPAddr{
+						IP: net.IPv4(192, 168, 0, 1).To4(),
+					},
+				},
+			},
+		},
+	},
+	{
+		Type: ipv4.ICMPTypeTimeExceeded, Code: 1,
+		Body: &icmp.TimeExceeded{
+			Data: []byte("ERROR-INVOKING-PACKET"),
+			Extensions: []icmp.Extension{
+				&icmp.InterfaceInfo{
+					Class: 2,
+					Type:  0x0f,
+					Interface: &net.Interface{
+						Index: 15,
+						Name:  "en101",
+						MTU:   8192,
+					},
+					Addr: &net.IPAddr{
+						IP: net.IPv4(192, 168, 0, 1).To4(),
+					},
+				},
+				&icmp.MPLSLabelStack{
+					Class: 1,
+					Type:  1,
+					Labels: []icmp.MPLSLabel{
+						{
+							Label: 16014,
+							TC:    0x4,
+							S:     true,
+							TTL:   255,
+						},
+					},
+				},
+			},
+		},
+	},
+	{
+		Type: ipv4.ICMPTypeParameterProblem, Code: 2,
+		Body: &icmp.ParamProb{
+			Pointer: 8,
+			Data:    []byte("ERROR-INVOKING-PACKET"),
+			Extensions: []icmp.Extension{
+				&icmp.MPLSLabelStack{
+					Class: 1,
+					Type:  1,
+					Labels: []icmp.MPLSLabel{
+						{
+							Label: 16014,
+							TC:    0x4,
+							S:     true,
+							TTL:   255,
+						},
+					},
+				},
+				&icmp.InterfaceInfo{
+					Class: 2,
+					Type:  0x0f,
+					Interface: &net.Interface{
+						Index: 15,
+						Name:  "en101",
+						MTU:   8192,
+					},
+					Addr: &net.IPAddr{
+						IP: net.IPv4(192, 168, 0, 1).To4(),
+					},
+				},
+				&icmp.InterfaceInfo{
+					Class: 2,
+					Type:  0x2f,
+					Interface: &net.Interface{
+						Index: 16,
+						Name:  "en102",
+						MTU:   8192,
+					},
+					Addr: &net.IPAddr{
+						IP: net.IPv4(192, 168, 0, 2).To4(),
+					},
+				},
+			},
+		},
+	},
+}
+
+func TestMarshalAndParseMultipartMessageForIPv4(t *testing.T) {
+	for i, tt := range marshalAndParseMultipartMessageForIPv4Tests {
+		b, err := tt.Marshal(nil)
+		if err != nil {
+			t.Fatal(err)
+		}
+		if b[5] != 32 {
+			t.Errorf("#%v: got %v; want 32", i, b[5])
+		}
+		m, err := icmp.ParseMessage(iana.ProtocolICMP, b)
+		if err != nil {
+			t.Fatal(err)
+		}
+		if m.Type != tt.Type || m.Code != tt.Code {
+			t.Errorf("#%v: got %v; want %v", i, m, &tt)
+		}
+		switch m.Type {
+		case ipv4.ICMPTypeDestinationUnreachable:
+			got, want := m.Body.(*icmp.DstUnreach), tt.Body.(*icmp.DstUnreach)
+			if !reflect.DeepEqual(got.Extensions, want.Extensions) {
+				t.Error(dumpExtensions(i, got.Extensions, want.Extensions))
+			}
+			if len(got.Data) != 128 {
+				t.Errorf("#%v: got %v; want 128", i, len(got.Data))
+			}
+		case ipv4.ICMPTypeTimeExceeded:
+			got, want := m.Body.(*icmp.TimeExceeded), tt.Body.(*icmp.TimeExceeded)
+			if !reflect.DeepEqual(got.Extensions, want.Extensions) {
+				t.Error(dumpExtensions(i, got.Extensions, want.Extensions))
+			}
+			if len(got.Data) != 128 {
+				t.Errorf("#%v: got %v; want 128", i, len(got.Data))
+			}
+		case ipv4.ICMPTypeParameterProblem:
+			got, want := m.Body.(*icmp.ParamProb), tt.Body.(*icmp.ParamProb)
+			if !reflect.DeepEqual(got.Extensions, want.Extensions) {
+				t.Error(dumpExtensions(i, got.Extensions, want.Extensions))
+			}
+			if len(got.Data) != 128 {
+				t.Errorf("#%v: got %v; want 128", i, len(got.Data))
+			}
+		}
+	}
+}
+
+var marshalAndParseMultipartMessageForIPv6Tests = []icmp.Message{
+	{
+		Type: ipv6.ICMPTypeDestinationUnreachable, Code: 6,
+		Body: &icmp.DstUnreach{
+			Data: []byte("ERROR-INVOKING-PACKET"),
+			Extensions: []icmp.Extension{
+				&icmp.MPLSLabelStack{
+					Class: 1,
+					Type:  1,
+					Labels: []icmp.MPLSLabel{
+						{
+							Label: 16014,
+							TC:    0x4,
+							S:     true,
+							TTL:   255,
+						},
+					},
+				},
+				&icmp.InterfaceInfo{
+					Class: 2,
+					Type:  0x0f,
+					Interface: &net.Interface{
+						Index: 15,
+						Name:  "en101",
+						MTU:   8192,
+					},
+					Addr: &net.IPAddr{
+						IP:   net.ParseIP("fe80::1"),
+						Zone: "en101",
+					},
+				},
+			},
+		},
+	},
+	{
+		Type: ipv6.ICMPTypeTimeExceeded, Code: 1,
+		Body: &icmp.TimeExceeded{
+			Data: []byte("ERROR-INVOKING-PACKET"),
+			Extensions: []icmp.Extension{
+				&icmp.InterfaceInfo{
+					Class: 2,
+					Type:  0x0f,
+					Interface: &net.Interface{
+						Index: 15,
+						Name:  "en101",
+						MTU:   8192,
+					},
+					Addr: &net.IPAddr{
+						IP:   net.ParseIP("fe80::1"),
+						Zone: "en101",
+					},
+				},
+				&icmp.MPLSLabelStack{
+					Class: 1,
+					Type:  1,
+					Labels: []icmp.MPLSLabel{
+						{
+							Label: 16014,
+							TC:    0x4,
+							S:     true,
+							TTL:   255,
+						},
+					},
+				},
+				&icmp.InterfaceInfo{
+					Class: 2,
+					Type:  0x2f,
+					Interface: &net.Interface{
+						Index: 16,
+						Name:  "en102",
+						MTU:   8192,
+					},
+					Addr: &net.IPAddr{
+						IP:   net.ParseIP("fe80::1"),
+						Zone: "en102",
+					},
+				},
+			},
+		},
+	},
+}
+
+func TestMarshalAndParseMultipartMessageForIPv6(t *testing.T) {
+	pshicmp := icmp.IPv6PseudoHeader(net.ParseIP("fe80::1"), net.ParseIP("ff02::1"))
+	for i, tt := range marshalAndParseMultipartMessageForIPv6Tests {
+		for _, psh := range [][]byte{pshicmp, nil} {
+			b, err := tt.Marshal(psh)
+			if err != nil {
+				t.Fatal(err)
+			}
+			if b[4] != 16 {
+				t.Errorf("#%v: got %v; want 16", i, b[4])
+			}
+			m, err := icmp.ParseMessage(iana.ProtocolIPv6ICMP, b)
+			if err != nil {
+				t.Fatal(err)
+			}
+			if m.Type != tt.Type || m.Code != tt.Code {
+				t.Errorf("#%v: got %v; want %v", i, m, &tt)
+			}
+			switch m.Type {
+			case ipv6.ICMPTypeDestinationUnreachable:
+				got, want := m.Body.(*icmp.DstUnreach), tt.Body.(*icmp.DstUnreach)
+				if !reflect.DeepEqual(got.Extensions, want.Extensions) {
+					t.Error(dumpExtensions(i, got.Extensions, want.Extensions))
+				}
+				if len(got.Data) != 128 {
+					t.Errorf("#%v: got %v; want 128", i, len(got.Data))
+				}
+			case ipv6.ICMPTypeTimeExceeded:
+				got, want := m.Body.(*icmp.TimeExceeded), tt.Body.(*icmp.TimeExceeded)
+				if !reflect.DeepEqual(got.Extensions, want.Extensions) {
+					t.Error(dumpExtensions(i, got.Extensions, want.Extensions))
+				}
+				if len(got.Data) != 128 {
+					t.Errorf("#%v: got %v; want 128", i, len(got.Data))
+				}
+			}
+		}
+	}
+}
+
+func dumpExtensions(i int, gotExts, wantExts []icmp.Extension) string {
+	var s string
+	for j, got := range gotExts {
+		switch got := got.(type) {
+		case *icmp.MPLSLabelStack:
+			want := wantExts[j].(*icmp.MPLSLabelStack)
+			if !reflect.DeepEqual(got, want) {
+				s += fmt.Sprintf("#%v/%v: got %#v; want %#v\n", i, j, got, want)
+			}
+		case *icmp.InterfaceInfo:
+			want := wantExts[j].(*icmp.InterfaceInfo)
+			if !reflect.DeepEqual(got, want) {
+				s += fmt.Sprintf("#%v/%v: got %#v, %#v, %#v; want %#v, %#v, %#v\n", i, j, got, got.Interface, got.Addr, want, want.Interface, want.Addr)
+			}
+		}
+	}
+	return s[:len(s)-1]
+}
diff --git a/go/src/golang.org/x/net/icmp/packettoobig.go b/go/src/golang.org/x/net/icmp/packettoobig.go
index fc10192..91d289b 100644
--- a/go/src/golang.org/x/net/icmp/packettoobig.go
+++ b/go/src/golang.org/x/net/icmp/packettoobig.go
@@ -7,11 +7,11 @@
 // A PacketTooBig represents an ICMP packet too big message body.
 type PacketTooBig struct {
 	MTU  int    // maximum transmission unit of the nexthop link
-	Data []byte // data
+	Data []byte // data, known as original datagram field
 }
 
 // Len implements the Len method of MessageBody interface.
-func (p *PacketTooBig) Len() int {
+func (p *PacketTooBig) Len(proto int) int {
 	if p == nil {
 		return 0
 	}
@@ -19,7 +19,7 @@
 }
 
 // Marshal implements the Marshal method of MessageBody interface.
-func (p *PacketTooBig) Marshal() ([]byte, error) {
+func (p *PacketTooBig) Marshal(proto int) ([]byte, error) {
 	b := make([]byte, 4+len(p.Data))
 	b[0], b[1], b[2], b[3] = byte(p.MTU>>24), byte(p.MTU>>16), byte(p.MTU>>8), byte(p.MTU)
 	copy(b[4:], p.Data)
@@ -27,7 +27,7 @@
 }
 
 // parsePacketTooBig parses b as an ICMP packet too big message body.
-func parsePacketTooBig(b []byte) (MessageBody, error) {
+func parsePacketTooBig(proto int, b []byte) (MessageBody, error) {
 	bodyLen := len(b)
 	if bodyLen < 4 {
 		return nil, errMessageTooShort
diff --git a/go/src/golang.org/x/net/icmp/paramprob.go b/go/src/golang.org/x/net/icmp/paramprob.go
index be32ce0..f200a7c 100644
--- a/go/src/golang.org/x/net/icmp/paramprob.go
+++ b/go/src/golang.org/x/net/icmp/paramprob.go
@@ -4,38 +4,57 @@
 
 package icmp
 
+import "golang.org/x/net/internal/iana"
+
 // A ParamProb represents an ICMP parameter problem message body.
 type ParamProb struct {
-	Pointer uintptr // offset within the data where the error was detected
-	Data    []byte  // data
+	Pointer    uintptr     // offset within the data where the error was detected
+	Data       []byte      // data, known as original datagram field
+	Extensions []Extension // extensions
 }
 
 // Len implements the Len method of MessageBody interface.
-func (p *ParamProb) Len() int {
+func (p *ParamProb) Len(proto int) int {
 	if p == nil {
 		return 0
 	}
-	return 4 + len(p.Data)
+	l, _ := multipartMessageBodyDataLen(proto, p.Data, p.Extensions)
+	return l
 }
 
 // Marshal implements the Marshal method of MessageBody interface.
-func (p *ParamProb) Marshal() ([]byte, error) {
-	b := make([]byte, 4+len(p.Data))
-	b[0], b[1], b[2], b[3] = byte(p.Pointer>>24), byte(p.Pointer>>16), byte(p.Pointer>>8), byte(p.Pointer)
-	copy(b[4:], p.Data)
+func (p *ParamProb) Marshal(proto int) ([]byte, error) {
+	if proto == iana.ProtocolIPv6ICMP {
+		b := make([]byte, 4+p.Len(proto))
+		b[0], b[1], b[2], b[3] = byte(p.Pointer>>24), byte(p.Pointer>>16), byte(p.Pointer>>8), byte(p.Pointer)
+		copy(b[4:], p.Data)
+		return b, nil
+	}
+	b, err := marshalMultipartMessageBody(proto, p.Data, p.Extensions)
+	if err != nil {
+		return nil, err
+	}
+	b[0] = byte(p.Pointer)
 	return b, nil
 }
 
 // parseParamProb parses b as an ICMP parameter problem message body.
-func parseParamProb(b []byte) (MessageBody, error) {
-	bodyLen := len(b)
-	if bodyLen < 4 {
+func parseParamProb(proto int, b []byte) (MessageBody, error) {
+	if len(b) < 4 {
 		return nil, errMessageTooShort
 	}
-	p := &ParamProb{Pointer: uintptr(b[0])<<24 | uintptr(b[1])<<16 | uintptr(b[2])<<8 | uintptr(b[3])}
-	if bodyLen > 4 {
-		p.Data = make([]byte, bodyLen-4)
+	p := &ParamProb{}
+	if proto == iana.ProtocolIPv6ICMP {
+		p.Pointer = uintptr(b[0])<<24 | uintptr(b[1])<<16 | uintptr(b[2])<<8 | uintptr(b[3])
+		p.Data = make([]byte, len(b)-4)
 		copy(p.Data, b[4:])
+		return p, nil
+	}
+	p.Pointer = uintptr(b[0])
+	var err error
+	p.Data, p.Extensions, err = parseMultipartMessageBody(proto, b)
+	if err != nil {
+		return nil, err
 	}
 	return p, nil
 }
diff --git a/go/src/golang.org/x/net/icmp/ping_test.go b/go/src/golang.org/x/net/icmp/ping_test.go
index f72c21c..be7d537 100644
--- a/go/src/golang.org/x/net/icmp/ping_test.go
+++ b/go/src/golang.org/x/net/icmp/ping_test.go
@@ -6,13 +6,16 @@
 
 import (
 	"errors"
+	"fmt"
 	"net"
 	"os"
 	"runtime"
 	"testing"
+	"time"
 
 	"golang.org/x/net/icmp"
 	"golang.org/x/net/internal/iana"
+	"golang.org/x/net/internal/nettest"
 	"golang.org/x/net/ipv4"
 	"golang.org/x/net/ipv6"
 )
@@ -48,83 +51,116 @@
 	return nil, errors.New("no A or AAAA record")
 }
 
-var pingGoogleTests = []struct {
+type pingTest struct {
 	network, address string
 	protocol         int
 	mtype            icmp.Type
-}{
-	{"udp4", "0.0.0.0", iana.ProtocolICMP, ipv4.ICMPTypeEcho},
-	{"ip4:icmp", "0.0.0.0", iana.ProtocolICMP, ipv4.ICMPTypeEcho},
-
-	{"udp6", "::", iana.ProtocolIPv6ICMP, ipv6.ICMPTypeEchoRequest},
-	{"ip6:ipv6-icmp", "::", iana.ProtocolIPv6ICMP, ipv6.ICMPTypeEchoRequest},
 }
 
-func TestPingGoogle(t *testing.T) {
+var nonPrivilegedPingTests = []pingTest{
+	{"udp4", "0.0.0.0", iana.ProtocolICMP, ipv4.ICMPTypeEcho},
+
+	{"udp6", "::", iana.ProtocolIPv6ICMP, ipv6.ICMPTypeEchoRequest},
+}
+
+func TestNonPrivilegedPing(t *testing.T) {
 	if testing.Short() {
-		t.Skip("to avoid external network")
+		t.Skip("avoid external network")
 	}
 	switch runtime.GOOS {
 	case "darwin":
 	case "linux":
 		t.Log("you may need to adjust the net.ipv4.ping_group_range kernel state")
 	default:
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 
-	for i, tt := range pingGoogleTests {
-		if tt.network[:2] == "ip" && os.Getuid() != 0 {
-			continue
-		}
-		c, err := icmp.ListenPacket(tt.network, tt.address)
-		if err != nil {
+	for i, tt := range nonPrivilegedPingTests {
+		if err := doPing(tt, i); err != nil {
 			t.Error(err)
-			continue
 		}
-		defer c.Close()
+	}
+}
 
-		dst, err := googleAddr(c, tt.protocol)
-		if err != nil {
-			t.Error(err)
-			continue
-		}
+var privilegedPingTests = []pingTest{
+	{"ip4:icmp", "0.0.0.0", iana.ProtocolICMP, ipv4.ICMPTypeEcho},
 
-		wm := icmp.Message{
-			Type: tt.mtype, Code: 0,
-			Body: &icmp.Echo{
-				ID: os.Getpid() & 0xffff, Seq: 1 << uint(i),
-				Data: []byte("HELLO-R-U-THERE"),
-			},
-		}
-		wb, err := wm.Marshal(nil)
-		if err != nil {
-			t.Error(err)
-			continue
-		}
-		if n, err := c.WriteTo(wb, dst); err != nil {
-			t.Error(err, dst)
-			continue
-		} else if n != len(wb) {
-			t.Errorf("got %v; want %v", n, len(wb))
-			continue
-		}
+	{"ip6:ipv6-icmp", "::", iana.ProtocolIPv6ICMP, ipv6.ICMPTypeEchoRequest},
+}
 
-		rb := make([]byte, 1500)
-		n, peer, err := c.ReadFrom(rb)
-		if err != nil {
+func TestPrivilegedPing(t *testing.T) {
+	if testing.Short() {
+		t.Skip("avoid external network")
+	}
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
+	}
+
+	for i, tt := range privilegedPingTests {
+		if err := doPing(tt, i); err != nil {
 			t.Error(err)
-			continue
 		}
-		rm, err := icmp.ParseMessage(tt.protocol, rb[:n])
-		if err != nil {
-			t.Error(err)
-			continue
+	}
+}
+
+func doPing(tt pingTest, seq int) error {
+	c, err := icmp.ListenPacket(tt.network, tt.address)
+	if err != nil {
+		return err
+	}
+	defer c.Close()
+
+	dst, err := googleAddr(c, tt.protocol)
+	if err != nil {
+		return err
+	}
+
+	if tt.protocol == iana.ProtocolIPv6ICMP {
+		var f ipv6.ICMPFilter
+		f.SetAll(true)
+		f.Accept(ipv6.ICMPTypeDestinationUnreachable)
+		f.Accept(ipv6.ICMPTypePacketTooBig)
+		f.Accept(ipv6.ICMPTypeTimeExceeded)
+		f.Accept(ipv6.ICMPTypeParameterProblem)
+		f.Accept(ipv6.ICMPTypeEchoReply)
+		if err := c.IPv6PacketConn().SetICMPFilter(&f); err != nil {
+			return err
 		}
-		switch rm.Type {
-		case ipv4.ICMPTypeEchoReply, ipv6.ICMPTypeEchoReply:
-			t.Logf("got reflection from %v", peer)
-		default:
-			t.Errorf("got %+v; want echo reply", rm)
-		}
+	}
+
+	wm := icmp.Message{
+		Type: tt.mtype, Code: 0,
+		Body: &icmp.Echo{
+			ID: os.Getpid() & 0xffff, Seq: 1 << uint(seq),
+			Data: []byte("HELLO-R-U-THERE"),
+		},
+	}
+	wb, err := wm.Marshal(nil)
+	if err != nil {
+		return err
+	}
+	if n, err := c.WriteTo(wb, dst); err != nil {
+		return err
+	} else if n != len(wb) {
+		return fmt.Errorf("got %v; want %v", n, len(wb))
+	}
+
+	rb := make([]byte, 1500)
+	if err := c.SetReadDeadline(time.Now().Add(3 * time.Second)); err != nil {
+		return err
+	}
+	n, peer, err := c.ReadFrom(rb)
+	if err != nil {
+		return err
+	}
+	rm, err := icmp.ParseMessage(tt.protocol, rb[:n])
+	if err != nil {
+		return err
+	}
+	switch rm.Type {
+	case ipv4.ICMPTypeEchoReply, ipv6.ICMPTypeEchoReply:
+		return nil
+	default:
+		return fmt.Errorf("got %+v from %v; want echo reply", rm, peer)
 	}
 }
diff --git a/go/src/golang.org/x/net/icmp/timeexceeded.go b/go/src/golang.org/x/net/icmp/timeexceeded.go
index 993a150..18628c8 100644
--- a/go/src/golang.org/x/net/icmp/timeexceeded.go
+++ b/go/src/golang.org/x/net/icmp/timeexceeded.go
@@ -6,34 +6,34 @@
 
 // A TimeExceeded represents an ICMP time exceeded message body.
 type TimeExceeded struct {
-	Data []byte // data
+	Data       []byte      // data, known as original datagram field
+	Extensions []Extension // extensions
 }
 
 // Len implements the Len method of MessageBody interface.
-func (p *TimeExceeded) Len() int {
+func (p *TimeExceeded) Len(proto int) int {
 	if p == nil {
 		return 0
 	}
-	return 4 + len(p.Data)
+	l, _ := multipartMessageBodyDataLen(proto, p.Data, p.Extensions)
+	return l
 }
 
 // Marshal implements the Marshal method of MessageBody interface.
-func (p *TimeExceeded) Marshal() ([]byte, error) {
-	b := make([]byte, 4+len(p.Data))
-	copy(b[4:], p.Data)
-	return b, nil
+func (p *TimeExceeded) Marshal(proto int) ([]byte, error) {
+	return marshalMultipartMessageBody(proto, p.Data, p.Extensions)
 }
 
 // parseTimeExceeded parses b as an ICMP time exceeded message body.
-func parseTimeExceeded(b []byte) (MessageBody, error) {
-	bodyLen := len(b)
-	if bodyLen < 4 {
+func parseTimeExceeded(proto int, b []byte) (MessageBody, error) {
+	if len(b) < 4 {
 		return nil, errMessageTooShort
 	}
 	p := &TimeExceeded{}
-	if bodyLen > 4 {
-		p.Data = make([]byte, bodyLen-4)
-		copy(p.Data, b[4:])
+	var err error
+	p.Data, p.Extensions, err = parseMultipartMessageBody(proto, b)
+	if err != nil {
+		return nil, err
 	}
 	return p, nil
 }
diff --git a/go/src/golang.org/x/net/internal/iana/const.go b/go/src/golang.org/x/net/internal/iana/const.go
index 1140ed7..110be4f 100644
--- a/go/src/golang.org/x/net/internal/iana/const.go
+++ b/go/src/golang.org/x/net/internal/iana/const.go
@@ -38,7 +38,7 @@
 	CongestionExperienced = 0x3 // CE (Congestion Experienced)
 )
 
-// Protocol Numbers, Updated: 2014-08-12
+// Protocol Numbers, Updated: 2015-01-06
 const (
 	ProtocolIP             = 0   // IPv4 encapsulation, pseudo protocol number
 	ProtocolHOPOPT         = 0   // IPv6 Hop-by-Hop Option
@@ -94,7 +94,6 @@
 	ProtocolESP            = 50  // Encap Security Payload
 	ProtocolAH             = 51  // Authentication Header
 	ProtocolINLSP          = 52  // Integrated Net Layer Security  TUBA
-	ProtocolSWIPE          = 53  // IP with Encryption
 	ProtocolNARP           = 54  // NBMA Address Resolution Protocol
 	ProtocolMOBILE         = 55  // IP Mobility
 	ProtocolTLSP           = 56  // Transport Layer Security Protocol using Kryptonet key management
@@ -134,7 +133,6 @@
 	ProtocolMTP            = 92  // Multicast Transport Protocol
 	ProtocolAX25           = 93  // AX.25 Frames
 	ProtocolIPIP           = 94  // IP-within-IP Encapsulation Protocol
-	ProtocolMICP           = 95  // Mobile Internetworking Control Pro.
 	ProtocolSCCSP          = 96  // Semaphore Communications Sec. Pro.
 	ProtocolETHERIP        = 97  // Ethernet-within-IP Encapsulation
 	ProtocolENCAP          = 98  // Encapsulation Header
diff --git a/go/src/golang.org/x/net/internal/iana/gen.go b/go/src/golang.org/x/net/internal/iana/gen.go
index c808bde..2d8c07c 100644
--- a/go/src/golang.org/x/net/internal/iana/gen.go
+++ b/go/src/golang.org/x/net/internal/iana/gen.go
@@ -264,6 +264,10 @@
 		" ", "",
 	)
 	for i, pr := range pn.Records {
+		if strings.Contains(pr.Name, "Deprecated") ||
+			strings.Contains(pr.Name, "deprecated") {
+			continue
+		}
 		prs[i].OrigName = pr.Name
 		s := strings.TrimSpace(pr.Name)
 		switch pr.Name {
diff --git a/go/src/golang.org/x/net/internal/nettest/rlimit.go b/go/src/golang.org/x/net/internal/nettest/rlimit.go
new file mode 100644
index 0000000..bb34aec
--- /dev/null
+++ b/go/src/golang.org/x/net/internal/nettest/rlimit.go
@@ -0,0 +1,11 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package nettest
+
+const defaultMaxOpenFiles = 256
+
+// MaxOpenFiles returns the maximum number of open files for the
+// caller's process.
+func MaxOpenFiles() int { return maxOpenFiles() }
diff --git a/go/src/golang.org/x/net/internal/nettest/rlimit_stub.go b/go/src/golang.org/x/net/internal/nettest/rlimit_stub.go
new file mode 100644
index 0000000..102bef9
--- /dev/null
+++ b/go/src/golang.org/x/net/internal/nettest/rlimit_stub.go
@@ -0,0 +1,9 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build nacl plan9
+
+package nettest
+
+func maxOpenFiles() int { return defaultMaxOpenFiles }
diff --git a/go/src/golang.org/x/net/internal/nettest/rlimit_unix.go b/go/src/golang.org/x/net/internal/nettest/rlimit_unix.go
new file mode 100644
index 0000000..eb4312c
--- /dev/null
+++ b/go/src/golang.org/x/net/internal/nettest/rlimit_unix.go
@@ -0,0 +1,17 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package nettest
+
+import "syscall"
+
+func maxOpenFiles() int {
+	var rlim syscall.Rlimit
+	if err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlim); err != nil {
+		return defaultMaxOpenFiles
+	}
+	return int(rlim.Cur)
+}
diff --git a/go/src/golang.org/x/net/internal/nettest/rlimit_windows.go b/go/src/golang.org/x/net/internal/nettest/rlimit_windows.go
new file mode 100644
index 0000000..de927b5
--- /dev/null
+++ b/go/src/golang.org/x/net/internal/nettest/rlimit_windows.go
@@ -0,0 +1,7 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package nettest
+
+func maxOpenFiles() int { return 4 * defaultMaxOpenFiles /* actually it's 16581375 */ }
diff --git a/go/src/golang.org/x/net/internal/nettest/stack_stub.go b/go/src/golang.org/x/net/internal/nettest/stack_stub.go
new file mode 100644
index 0000000..1b5fde1
--- /dev/null
+++ b/go/src/golang.org/x/net/internal/nettest/stack_stub.go
@@ -0,0 +1,18 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build nacl plan9
+
+package nettest
+
+import (
+	"fmt"
+	"runtime"
+)
+
+// SupportsRawIPSocket reports whether the platform supports raw IP
+// sockets.
+func SupportsRawIPSocket() (string, bool) {
+	return fmt.Sprintf("not supported on %s", runtime.GOOS), false
+}
diff --git a/go/src/golang.org/x/net/internal/nettest/stack_unix.go b/go/src/golang.org/x/net/internal/nettest/stack_unix.go
new file mode 100644
index 0000000..af89229
--- /dev/null
+++ b/go/src/golang.org/x/net/internal/nettest/stack_unix.go
@@ -0,0 +1,22 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+
+package nettest
+
+import (
+	"fmt"
+	"os"
+	"runtime"
+)
+
+// SupportsRawIPSocket reports whether the platform supports raw IP
+// sockets.
+func SupportsRawIPSocket() (string, bool) {
+	if os.Getuid() != 0 {
+		return fmt.Sprintf("must be root on %s", runtime.GOOS), false
+	}
+	return "", true
+}
diff --git a/go/src/golang.org/x/net/internal/nettest/stack_windows.go b/go/src/golang.org/x/net/internal/nettest/stack_windows.go
new file mode 100644
index 0000000..a21f499
--- /dev/null
+++ b/go/src/golang.org/x/net/internal/nettest/stack_windows.go
@@ -0,0 +1,32 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package nettest
+
+import (
+	"fmt"
+	"runtime"
+	"syscall"
+)
+
+// SupportsRawIPSocket reports whether the platform supports raw IP
+// sockets.
+func SupportsRawIPSocket() (string, bool) {
+	// From http://msdn.microsoft.com/en-us/library/windows/desktop/ms740548.aspx:
+	// Note: To use a socket of type SOCK_RAW requires administrative privileges.
+	// Users running Winsock applications that use raw sockets must be a member of
+	// the Administrators group on the local computer, otherwise raw socket calls
+	// will fail with an error code of WSAEACCES. On Windows Vista and later, access
+	// for raw sockets is enforced at socket creation. In earlier versions of Windows,
+	// access for raw sockets is enforced during other socket operations.
+	s, err := syscall.Socket(syscall.AF_INET, syscall.SOCK_RAW, 0)
+	if err == syscall.WSAEACCES {
+		return fmt.Sprintf("no access to raw socket allowed on %s", runtime.GOOS), false
+	}
+	if err != nil {
+		return err.Error(), false
+	}
+	syscall.Closesocket(s)
+	return "", true
+}
diff --git a/go/src/golang.org/x/net/internal/timeseries/timeseries.go b/go/src/golang.org/x/net/internal/timeseries/timeseries.go
new file mode 100644
index 0000000..1119f34
--- /dev/null
+++ b/go/src/golang.org/x/net/internal/timeseries/timeseries.go
@@ -0,0 +1,525 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package timeseries implements a time series structure for stats collection.
+package timeseries // import "golang.org/x/net/internal/timeseries"
+
+import (
+	"fmt"
+	"log"
+	"time"
+)
+
+const (
+	timeSeriesNumBuckets       = 64
+	minuteHourSeriesNumBuckets = 60
+)
+
+var timeSeriesResolutions = []time.Duration{
+	1 * time.Second,
+	10 * time.Second,
+	1 * time.Minute,
+	10 * time.Minute,
+	1 * time.Hour,
+	6 * time.Hour,
+	24 * time.Hour,          // 1 day
+	7 * 24 * time.Hour,      // 1 week
+	4 * 7 * 24 * time.Hour,  // 4 weeks
+	16 * 7 * 24 * time.Hour, // 16 weeks
+}
+
+var minuteHourSeriesResolutions = []time.Duration{
+	1 * time.Second,
+	1 * time.Minute,
+}
+
+// An Observable is a kind of data that can be aggregated in a time series.
+type Observable interface {
+	Multiply(ratio float64)    // Multiplies the data in self by a given ratio
+	Add(other Observable)      // Adds the data from a different observation to self
+	Clear()                    // Clears the observation so it can be reused.
+	CopyFrom(other Observable) // Copies the contents of a given observation to self
+}
+
+// Float attaches the methods of Observable to a float64.
+type Float float64
+
+// NewFloat returns a Float.
+func NewFloat() Observable {
+	f := Float(0)
+	return &f
+}
+
+// String returns the float as a string.
+func (f *Float) String() string { return fmt.Sprintf("%g", f.Value()) }
+
+// Value returns the float's value.
+func (f *Float) Value() float64 { return float64(*f) }
+
+func (f *Float) Multiply(ratio float64) { *f *= Float(ratio) }
+
+func (f *Float) Add(other Observable) {
+	o := other.(*Float)
+	*f += *o
+}
+
+func (f *Float) Clear() { *f = 0 }
+
+func (f *Float) CopyFrom(other Observable) {
+	o := other.(*Float)
+	*f = *o
+}
+
+// A Clock tells the current time.
+type Clock interface {
+	Time() time.Time
+}
+
+type defaultClock int
+
+var defaultClockInstance defaultClock
+
+func (defaultClock) Time() time.Time { return time.Now() }
+
+// Information kept per level. Each level consists of a circular list of
+// observations. The start of the level may be derived from end and the
+// len(buckets) * sizeInMillis.
+type tsLevel struct {
+	oldest   int               // index to oldest bucketed Observable
+	newest   int               // index to newest bucketed Observable
+	end      time.Time         // end timestamp for this level
+	size     time.Duration     // duration of the bucketed Observable
+	buckets  []Observable      // collections of observations
+	provider func() Observable // used for creating new Observable
+}
+
+func (l *tsLevel) Clear() {
+	l.oldest = 0
+	l.newest = len(l.buckets) - 1
+	l.end = time.Time{}
+	for i := range l.buckets {
+		if l.buckets[i] != nil {
+			l.buckets[i].Clear()
+			l.buckets[i] = nil
+		}
+	}
+}
+
+func (l *tsLevel) InitLevel(size time.Duration, numBuckets int, f func() Observable) {
+	l.size = size
+	l.provider = f
+	l.buckets = make([]Observable, numBuckets)
+}
+
+// Keeps a sequence of levels. Each level is responsible for storing data at
+// a given resolution. For example, the first level stores data at a one
+// minute resolution while the second level stores data at a one hour
+// resolution.
+
+// Each level is represented by a sequence of buckets. Each bucket spans an
+// interval equal to the resolution of the level. New observations are added
+// to the last bucket.
+type timeSeries struct {
+	provider    func() Observable // make more Observable
+	numBuckets  int               // number of buckets in each level
+	levels      []*tsLevel        // levels of bucketed Observable
+	lastAdd     time.Time         // time of last Observable tracked
+	total       Observable        // convenient aggregation of all Observable
+	clock       Clock             // Clock for getting current time
+	pending     Observable        // observations not yet bucketed
+	pendingTime time.Time         // what time are we keeping in pending
+	dirty       bool              // if there are pending observations
+}
+
+// init initializes a level according to the supplied criteria.
+func (ts *timeSeries) init(resolutions []time.Duration, f func() Observable, numBuckets int, clock Clock) {
+	ts.provider = f
+	ts.numBuckets = numBuckets
+	ts.clock = clock
+	ts.levels = make([]*tsLevel, len(resolutions))
+
+	for i := range resolutions {
+		if i > 0 && resolutions[i-1] >= resolutions[i] {
+			log.Print("timeseries: resolutions must be monotonically increasing")
+			break
+		}
+		newLevel := new(tsLevel)
+		newLevel.InitLevel(resolutions[i], ts.numBuckets, ts.provider)
+		ts.levels[i] = newLevel
+	}
+
+	ts.Clear()
+}
+
+// Clear removes all observations from the time series.
+func (ts *timeSeries) Clear() {
+	ts.lastAdd = time.Time{}
+	ts.total = ts.resetObservation(ts.total)
+	ts.pending = ts.resetObservation(ts.pending)
+	ts.pendingTime = time.Time{}
+	ts.dirty = false
+
+	for i := range ts.levels {
+		ts.levels[i].Clear()
+	}
+}
+
+// Add records an observation at the current time.
+func (ts *timeSeries) Add(observation Observable) {
+	ts.AddWithTime(observation, ts.clock.Time())
+}
+
+// AddWithTime records an observation at the specified time.
+func (ts *timeSeries) AddWithTime(observation Observable, t time.Time) {
+
+	smallBucketDuration := ts.levels[0].size
+
+	if t.After(ts.lastAdd) {
+		ts.lastAdd = t
+	}
+
+	if t.After(ts.pendingTime) {
+		ts.advance(t)
+		ts.mergePendingUpdates()
+		ts.pendingTime = ts.levels[0].end
+		ts.pending.CopyFrom(observation)
+		ts.dirty = true
+	} else if t.After(ts.pendingTime.Add(-1 * smallBucketDuration)) {
+		// The observation is close enough to go into the pending bucket.
+		// This compensates for clock skewing and small scheduling delays
+		// by letting the update stay in the fast path.
+		ts.pending.Add(observation)
+		ts.dirty = true
+	} else {
+		ts.mergeValue(observation, t)
+	}
+}
+
+// mergeValue inserts the observation at the specified time in the past into all levels.
+func (ts *timeSeries) mergeValue(observation Observable, t time.Time) {
+	for _, level := range ts.levels {
+		index := (ts.numBuckets - 1) - int(level.end.Sub(t)/level.size)
+		if 0 <= index && index < ts.numBuckets {
+			bucketNumber := (level.oldest + index) % ts.numBuckets
+			if level.buckets[bucketNumber] == nil {
+				level.buckets[bucketNumber] = level.provider()
+			}
+			level.buckets[bucketNumber].Add(observation)
+		}
+	}
+	ts.total.Add(observation)
+}
+
+// mergePendingUpdates applies the pending updates into all levels.
+func (ts *timeSeries) mergePendingUpdates() {
+	if ts.dirty {
+		ts.mergeValue(ts.pending, ts.pendingTime)
+		ts.pending = ts.resetObservation(ts.pending)
+		ts.dirty = false
+	}
+}
+
+// advance cycles the buckets at each level until the latest bucket in
+// each level can hold the time specified.
+func (ts *timeSeries) advance(t time.Time) {
+	if !t.After(ts.levels[0].end) {
+		return
+	}
+	for i := 0; i < len(ts.levels); i++ {
+		level := ts.levels[i]
+		if !level.end.Before(t) {
+			break
+		}
+
+		// If the time is sufficiently far, just clear the level and advance
+		// directly.
+		if !t.Before(level.end.Add(level.size * time.Duration(ts.numBuckets))) {
+			for _, b := range level.buckets {
+				ts.resetObservation(b)
+			}
+			level.end = time.Unix(0, (t.UnixNano()/level.size.Nanoseconds())*level.size.Nanoseconds())
+		}
+
+		for t.After(level.end) {
+			level.end = level.end.Add(level.size)
+			level.newest = level.oldest
+			level.oldest = (level.oldest + 1) % ts.numBuckets
+			ts.resetObservation(level.buckets[level.newest])
+		}
+
+		t = level.end
+	}
+}
+
+// Latest returns the sum of the num latest buckets from the level.
+func (ts *timeSeries) Latest(level, num int) Observable {
+	now := ts.clock.Time()
+	if ts.levels[0].end.Before(now) {
+		ts.advance(now)
+	}
+
+	ts.mergePendingUpdates()
+
+	result := ts.provider()
+	l := ts.levels[level]
+	index := l.newest
+
+	for i := 0; i < num; i++ {
+		if l.buckets[index] != nil {
+			result.Add(l.buckets[index])
+		}
+		if index == 0 {
+			index = ts.numBuckets
+		}
+		index--
+	}
+
+	return result
+}
+
+// LatestBuckets returns a copy of the num latest buckets from level.
+func (ts *timeSeries) LatestBuckets(level, num int) []Observable {
+	if level < 0 || level > len(ts.levels) {
+		log.Print("timeseries: bad level argument: ", level)
+		return nil
+	}
+	if num < 0 || num >= ts.numBuckets {
+		log.Print("timeseries: bad num argument: ", num)
+		return nil
+	}
+
+	results := make([]Observable, num)
+	now := ts.clock.Time()
+	if ts.levels[0].end.Before(now) {
+		ts.advance(now)
+	}
+
+	ts.mergePendingUpdates()
+
+	l := ts.levels[level]
+	index := l.newest
+
+	for i := 0; i < num; i++ {
+		result := ts.provider()
+		results[i] = result
+		if l.buckets[index] != nil {
+			result.CopyFrom(l.buckets[index])
+		}
+
+		if index == 0 {
+			index = ts.numBuckets
+		}
+		index -= 1
+	}
+	return results
+}
+
+// ScaleBy updates observations by scaling by factor.
+func (ts *timeSeries) ScaleBy(factor float64) {
+	for _, l := range ts.levels {
+		for i := 0; i < ts.numBuckets; i++ {
+			l.buckets[i].Multiply(factor)
+		}
+	}
+
+	ts.total.Multiply(factor)
+	ts.pending.Multiply(factor)
+}
+
+// Range returns the sum of observations added over the specified time range.
+// If start or finish times don't fall on bucket boundaries of the same
+// level, then return values are approximate answers.
+func (ts *timeSeries) Range(start, finish time.Time) Observable {
+	return ts.ComputeRange(start, finish, 1)[0]
+}
+
+// Recent returns the sum of observations from the last delta.
+func (ts *timeSeries) Recent(delta time.Duration) Observable {
+	now := ts.clock.Time()
+	return ts.Range(now.Add(-delta), now)
+}
+
+// Total returns the total of all observations.
+func (ts *timeSeries) Total() Observable {
+	ts.mergePendingUpdates()
+	return ts.total
+}
+
+// ComputeRange computes a specified number of values into a slice using
+// the observations recorded over the specified time period. The return
+// values are approximate if the start or finish times don't fall on the
+// bucket boundaries at the same level or if the number of buckets spanning
+// the range is not an integral multiple of num.
+func (ts *timeSeries) ComputeRange(start, finish time.Time, num int) []Observable {
+	if start.After(finish) {
+		log.Printf("timeseries: start > finish, %v>%v", start, finish)
+		return nil
+	}
+
+	if num < 0 {
+		log.Printf("timeseries: num < 0, %v", num)
+		return nil
+	}
+
+	results := make([]Observable, num)
+
+	for _, l := range ts.levels {
+		if !start.Before(l.end.Add(-l.size * time.Duration(ts.numBuckets))) {
+			ts.extract(l, start, finish, num, results)
+			return results
+		}
+	}
+
+	// Failed to find a level that covers the desired range.  So just
+	// extract from the last level, even if it doesn't cover the entire
+	// desired range.
+	ts.extract(ts.levels[len(ts.levels)-1], start, finish, num, results)
+
+	return results
+}
+
+// RecentList returns the specified number of values in slice over the most
+// recent time period of the specified range.
+func (ts *timeSeries) RecentList(delta time.Duration, num int) []Observable {
+	if delta < 0 {
+		return nil
+	}
+	now := ts.clock.Time()
+	return ts.ComputeRange(now.Add(-delta), now, num)
+}
+
+// extract returns a slice of specified number of observations from a given
+// level over a given range.
+func (ts *timeSeries) extract(l *tsLevel, start, finish time.Time, num int, results []Observable) {
+	ts.mergePendingUpdates()
+
+	srcInterval := l.size
+	dstInterval := finish.Sub(start) / time.Duration(num)
+	dstStart := start
+	srcStart := l.end.Add(-srcInterval * time.Duration(ts.numBuckets))
+
+	srcIndex := 0
+
+	// Where should scanning start?
+	if dstStart.After(srcStart) {
+		advance := dstStart.Sub(srcStart) / srcInterval
+		srcIndex += int(advance)
+		srcStart = srcStart.Add(advance * srcInterval)
+	}
+
+	// The i'th value is computed as show below.
+	// interval = (finish/start)/num
+	// i'th value = sum of observation in range
+	//   [ start + i       * interval,
+	//     start + (i + 1) * interval )
+	for i := 0; i < num; i++ {
+		results[i] = ts.resetObservation(results[i])
+		dstEnd := dstStart.Add(dstInterval)
+		for srcIndex < ts.numBuckets && srcStart.Before(dstEnd) {
+			srcEnd := srcStart.Add(srcInterval)
+			if srcEnd.After(ts.lastAdd) {
+				srcEnd = ts.lastAdd
+			}
+
+			if !srcEnd.Before(dstStart) {
+				srcValue := l.buckets[(srcIndex+l.oldest)%ts.numBuckets]
+				if !srcStart.Before(dstStart) && !srcEnd.After(dstEnd) {
+					// dst completely contains src.
+					if srcValue != nil {
+						results[i].Add(srcValue)
+					}
+				} else {
+					// dst partially overlaps src.
+					overlapStart := maxTime(srcStart, dstStart)
+					overlapEnd := minTime(srcEnd, dstEnd)
+					base := srcEnd.Sub(srcStart)
+					fraction := overlapEnd.Sub(overlapStart).Seconds() / base.Seconds()
+
+					used := ts.provider()
+					if srcValue != nil {
+						used.CopyFrom(srcValue)
+					}
+					used.Multiply(fraction)
+					results[i].Add(used)
+				}
+
+				if srcEnd.After(dstEnd) {
+					break
+				}
+			}
+			srcIndex++
+			srcStart = srcStart.Add(srcInterval)
+		}
+		dstStart = dstStart.Add(dstInterval)
+	}
+}
+
+// resetObservation clears the content so the struct may be reused.
+func (ts *timeSeries) resetObservation(observation Observable) Observable {
+	if observation == nil {
+		observation = ts.provider()
+	} else {
+		observation.Clear()
+	}
+	return observation
+}
+
+// TimeSeries tracks data at granularities from 1 second to 16 weeks.
+type TimeSeries struct {
+	timeSeries
+}
+
+// NewTimeSeries creates a new TimeSeries using the function provided for creating new Observable.
+func NewTimeSeries(f func() Observable) *TimeSeries {
+	return NewTimeSeriesWithClock(f, defaultClockInstance)
+}
+
+// NewTimeSeriesWithClock creates a new TimeSeries using the function provided for creating new Observable and the clock for
+// assigning timestamps.
+func NewTimeSeriesWithClock(f func() Observable, clock Clock) *TimeSeries {
+	ts := new(TimeSeries)
+	ts.timeSeries.init(timeSeriesResolutions, f, timeSeriesNumBuckets, clock)
+	return ts
+}
+
+// MinuteHourSeries tracks data at granularities of 1 minute and 1 hour.
+type MinuteHourSeries struct {
+	timeSeries
+}
+
+// NewMinuteHourSeries creates a new MinuteHourSeries using the function provided for creating new Observable.
+func NewMinuteHourSeries(f func() Observable) *MinuteHourSeries {
+	return NewMinuteHourSeriesWithClock(f, defaultClockInstance)
+}
+
+// NewMinuteHourSeriesWithClock creates a new MinuteHourSeries using the function provided for creating new Observable and the clock for
+// assigning timestamps.
+func NewMinuteHourSeriesWithClock(f func() Observable, clock Clock) *MinuteHourSeries {
+	ts := new(MinuteHourSeries)
+	ts.timeSeries.init(minuteHourSeriesResolutions, f,
+		minuteHourSeriesNumBuckets, clock)
+	return ts
+}
+
+func (ts *MinuteHourSeries) Minute() Observable {
+	return ts.timeSeries.Latest(0, 60)
+}
+
+func (ts *MinuteHourSeries) Hour() Observable {
+	return ts.timeSeries.Latest(1, 60)
+}
+
+func minTime(a, b time.Time) time.Time {
+	if a.Before(b) {
+		return a
+	}
+	return b
+}
+
+func maxTime(a, b time.Time) time.Time {
+	if a.After(b) {
+		return a
+	}
+	return b
+}
diff --git a/go/src/golang.org/x/net/internal/timeseries/timeseries_test.go b/go/src/golang.org/x/net/internal/timeseries/timeseries_test.go
new file mode 100644
index 0000000..66325a9
--- /dev/null
+++ b/go/src/golang.org/x/net/internal/timeseries/timeseries_test.go
@@ -0,0 +1,170 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package timeseries
+
+import (
+	"math"
+	"testing"
+	"time"
+)
+
+func isNear(x *Float, y float64, tolerance float64) bool {
+	return math.Abs(x.Value()-y) < tolerance
+}
+
+func isApproximate(x *Float, y float64) bool {
+	return isNear(x, y, 1e-2)
+}
+
+func checkApproximate(t *testing.T, o Observable, y float64) {
+	x := o.(*Float)
+	if !isApproximate(x, y) {
+		t.Errorf("Wanted %g, got %g", y, x.Value())
+	}
+}
+
+func checkNear(t *testing.T, o Observable, y, tolerance float64) {
+	x := o.(*Float)
+	if !isNear(x, y, tolerance) {
+		t.Errorf("Wanted %g +- %g, got %g", y, tolerance, x.Value())
+	}
+}
+
+var baseTime = time.Date(2013, 1, 1, 0, 0, 0, 0, time.UTC)
+
+func tu(s int64) time.Time {
+	return baseTime.Add(time.Duration(s) * time.Second)
+}
+
+func tu2(s int64, ns int64) time.Time {
+	return baseTime.Add(time.Duration(s)*time.Second + time.Duration(ns)*time.Nanosecond)
+}
+
+func TestBasicTimeSeries(t *testing.T) {
+	ts := NewTimeSeries(NewFloat)
+	fo := new(Float)
+	*fo = Float(10)
+	ts.AddWithTime(fo, tu(1))
+	ts.AddWithTime(fo, tu(1))
+	ts.AddWithTime(fo, tu(1))
+	ts.AddWithTime(fo, tu(1))
+	checkApproximate(t, ts.Range(tu(0), tu(1)), 40)
+	checkApproximate(t, ts.Total(), 40)
+	ts.AddWithTime(fo, tu(3))
+	ts.AddWithTime(fo, tu(3))
+	ts.AddWithTime(fo, tu(3))
+	checkApproximate(t, ts.Range(tu(0), tu(2)), 40)
+	checkApproximate(t, ts.Range(tu(2), tu(4)), 30)
+	checkApproximate(t, ts.Total(), 70)
+	ts.AddWithTime(fo, tu(1))
+	ts.AddWithTime(fo, tu(1))
+	checkApproximate(t, ts.Range(tu(0), tu(2)), 60)
+	checkApproximate(t, ts.Range(tu(2), tu(4)), 30)
+	checkApproximate(t, ts.Total(), 90)
+	*fo = Float(100)
+	ts.AddWithTime(fo, tu(100))
+	checkApproximate(t, ts.Range(tu(99), tu(100)), 100)
+	checkApproximate(t, ts.Range(tu(0), tu(4)), 36)
+	checkApproximate(t, ts.Total(), 190)
+	*fo = Float(10)
+	ts.AddWithTime(fo, tu(1))
+	ts.AddWithTime(fo, tu(1))
+	checkApproximate(t, ts.Range(tu(0), tu(4)), 44)
+	checkApproximate(t, ts.Range(tu(37), tu2(100, 100e6)), 100)
+	checkApproximate(t, ts.Range(tu(50), tu2(100, 100e6)), 100)
+	checkApproximate(t, ts.Range(tu(99), tu2(100, 100e6)), 100)
+	checkApproximate(t, ts.Total(), 210)
+
+	for i, l := range ts.ComputeRange(tu(36), tu(100), 64) {
+		if i == 63 {
+			checkApproximate(t, l, 100)
+		} else {
+			checkApproximate(t, l, 0)
+		}
+	}
+
+	checkApproximate(t, ts.Range(tu(0), tu(100)), 210)
+	checkApproximate(t, ts.Range(tu(10), tu(100)), 100)
+
+	for i, l := range ts.ComputeRange(tu(0), tu(100), 100) {
+		if i < 10 {
+			checkApproximate(t, l, 11)
+		} else if i >= 90 {
+			checkApproximate(t, l, 10)
+		} else {
+			checkApproximate(t, l, 0)
+		}
+	}
+}
+
+func TestFloat(t *testing.T) {
+	f := Float(1)
+	if g, w := f.String(), "1"; g != w {
+		t.Errorf("Float(1).String = %q; want %q", g, w)
+	}
+	f2 := Float(2)
+	var o Observable = &f2
+	f.Add(o)
+	if g, w := f.Value(), 3.0; g != w {
+		t.Errorf("Float post-add = %v; want %v", g, w)
+	}
+	f.Multiply(2)
+	if g, w := f.Value(), 6.0; g != w {
+		t.Errorf("Float post-multiply = %v; want %v", g, w)
+	}
+	f.Clear()
+	if g, w := f.Value(), 0.0; g != w {
+		t.Errorf("Float post-clear = %v; want %v", g, w)
+	}
+	f.CopyFrom(&f2)
+	if g, w := f.Value(), 2.0; g != w {
+		t.Errorf("Float post-CopyFrom = %v; want %v", g, w)
+	}
+}
+
+type mockClock struct {
+	time time.Time
+}
+
+func (m *mockClock) Time() time.Time { return m.time }
+func (m *mockClock) Set(t time.Time) { m.time = t }
+
+const buckets = 6
+
+var testResolutions = []time.Duration{
+	10 * time.Second,  // level holds one minute of observations
+	100 * time.Second, // level holds ten minutes of observations
+	10 * time.Minute,  // level holds one hour of observations
+}
+
+// TestTimeSeries uses a small number of buckets to force a higher
+// error rate on approximations from the timeseries.
+type TestTimeSeries struct {
+	timeSeries
+}
+
+func TestExpectedErrorRate(t *testing.T) {
+	ts := new(TestTimeSeries)
+	fake := new(mockClock)
+	fake.Set(time.Now())
+	ts.timeSeries.init(testResolutions, NewFloat, buckets, fake)
+	for i := 1; i <= 61*61; i++ {
+		fake.Set(fake.Time().Add(1 * time.Second))
+		ob := Float(1)
+		ts.AddWithTime(&ob, fake.Time())
+
+		// The results should be accurate within one missing bucket (1/6) of the observations recorded.
+		checkNear(t, ts.Latest(0, buckets), min(float64(i), 60), 10)
+		checkNear(t, ts.Latest(1, buckets), min(float64(i), 600), 100)
+		checkNear(t, ts.Latest(2, buckets), min(float64(i), 3600), 600)
+	}
+}
+
+func min(a, b float64) float64 {
+	if a < b {
+		return a
+	}
+	return b
+}
diff --git a/go/src/golang.org/x/net/ipv4/doc.go b/go/src/golang.org/x/net/ipv4/doc.go
index 688bc8f..45090e5 100644
--- a/go/src/golang.org/x/net/ipv4/doc.go
+++ b/go/src/golang.org/x/net/ipv4/doc.go
@@ -6,9 +6,15 @@
 // Protocol version 4.
 //
 // The package provides IP-level socket options that allow
-// manipulation of IPv4 facilities.  The IPv4 and basic host
-// requirements for IPv4 are defined in RFC 791, RFC 1112, RFC 1122,
-// RFC 3678 and RFC 4607.
+// manipulation of IPv4 facilities.
+//
+// The IPv4 protocol and basic host requirements for IPv4 are defined
+// in RFC 791 and RFC 1122.
+// Host extensions for multicasting and socket interface extensions
+// for multicast source filters are defined in RFC 1112 and RFC 3678.
+// IGMPv1, IGMPv2 and IGMPv3 are defined in RFC 1112, RFC 2236 and RFC
+// 3376.
+// Source-specific multicast is defined in RFC 4607.
 //
 //
 // Unicasting
@@ -198,10 +204,9 @@
 // Source-specific multicasting
 //
 // An application that uses PacketConn or RawConn on IGMPv3 supported
-// platform is able to join source-specific multicast groups as
-// described in RFC 3678.  The application may use
-// JoinSourceSpecificGroup and LeaveSourceSpecificGroup for the
-// operation known as "include" mode,
+// platform is able to join source-specific multicast groups.
+// The application may use JoinSourceSpecificGroup and
+// LeaveSourceSpecificGroup for the operation known as "include" mode,
 //
 //	ssmgroup := net.UDPAddr{IP: net.IPv4(232, 7, 8, 9)}
 //	ssmsource := net.UDPAddr{IP: net.IPv4(192, 168, 0, 1)})
@@ -231,7 +236,7 @@
 // when an application which runs on IGMPv3 unsupported platform uses
 // JoinSourceSpecificGroup and LeaveSourceSpecificGroup.
 // In general the platform tries to fall back to conversations using
-// IGMPv1 or IGMP2 and starts to listen to multicast traffic.
+// IGMPv1 or IGMPv2 and starts to listen to multicast traffic.
 // In the fallback case, ExcludeSourceSpecificGroup and
 // IncludeSourceSpecificGroup may return an error.
 package ipv4 // import "golang.org/x/net/ipv4"
diff --git a/go/src/golang.org/x/net/ipv4/gen.go b/go/src/golang.org/x/net/ipv4/gen.go
index 09dcd03..8cef7b3 100644
--- a/go/src/golang.org/x/net/ipv4/gen.go
+++ b/go/src/golang.org/x/net/ipv4/gen.go
@@ -52,12 +52,14 @@
 	if err != nil {
 		return err
 	}
-	switch runtime.GOOS {
-	case "dragonfly", "solaris":
-		// The ipv4 pacakge still supports go1.2, and so we
-		// need to take care of additional platforms in go1.3
-		// and above for working with go1.2.
+	// The ipv4 pacakge still supports go1.2, and so we need to
+	// take care of additional platforms in go1.3 and above for
+	// working with go1.2.
+	switch {
+	case runtime.GOOS == "dragonfly" || runtime.GOOS == "solaris":
 		b = bytes.Replace(b, []byte("package ipv4\n"), []byte("// +build "+runtime.GOOS+"\n\npackage ipv4\n"), 1)
+	case runtime.GOOS == "linux" && (runtime.GOARCH == "arm64" || runtime.GOARCH == "ppc64" || runtime.GOARCH == "ppc64le"):
+		b = bytes.Replace(b, []byte("package ipv4\n"), []byte("// +build "+runtime.GOOS+","+runtime.GOARCH+"\n\npackage ipv4\n"), 1)
 	}
 	b, err = format.Source(b)
 	if err != nil {
diff --git a/go/src/golang.org/x/net/ipv4/header.go b/go/src/golang.org/x/net/ipv4/header.go
index ba09d75..b22336c 100644
--- a/go/src/golang.org/x/net/ipv4/header.go
+++ b/go/src/golang.org/x/net/ipv4/header.go
@@ -21,37 +21,12 @@
 	errInvalidConnType = errors.New("invalid conn type")
 )
 
-// References:
-//
-// RFC  791  Internet Protocol
-//	http://tools.ietf.org/html/rfc791
-// RFC 1112  Host Extensions for IP Multicasting
-//	http://tools.ietf.org/html/rfc1112
-// RFC 1122  Requirements for Internet Hosts
-//	http://tools.ietf.org/html/rfc1122
-// RFC 3678  Socket Interface Extensions for Multicast Source Filters
-//	http://tools.ietf.org/html/rfc3678
-// RFC 4607  Source-Specific Multicast for IP
-//	http://tools.ietf.org/html/rfc4607
-
 const (
 	Version      = 4  // protocol version
 	HeaderLen    = 20 // header length without extension headers
 	maxHeaderLen = 60 // sensible default, revisit if later RFCs define new usage of version and header length fields
 )
 
-const (
-	posTOS      = 1  // type-of-service
-	posTotalLen = 2  // packet total length
-	posID       = 4  // identification
-	posFragOff  = 6  // fragment offset
-	posTTL      = 8  // time-to-live
-	posProtocol = 9  // next protocol
-	posChecksum = 10 // checksum
-	posSrc      = 12 // source address
-	posDst      = 16 // destination address
-)
-
 type HeaderFlags int
 
 const (
@@ -83,10 +58,6 @@
 	return fmt.Sprintf("ver: %v, hdrlen: %v, tos: %#x, totallen: %v, id: %#x, flags: %#x, fragoff: %#x, ttl: %v, proto: %v, cksum: %#x, src: %v, dst: %v", h.Version, h.Len, h.TOS, h.TotalLen, h.ID, h.Flags, h.FragOff, h.TTL, h.Protocol, h.Checksum, h.Src, h.Dst)
 }
 
-// Please refer to the online manual; IP(4) on Darwin, FreeBSD and
-// OpenBSD.  IP(7) on Linux.
-const supportsNewIPInput = runtime.GOOS == "linux" || runtime.GOOS == "openbsd"
-
 // Marshal returns the binary encoding of the IPv4 header h.
 func (h *Header) Marshal() ([]byte, error) {
 	if h == nil {
@@ -98,25 +69,26 @@
 	hdrlen := HeaderLen + len(h.Options)
 	b := make([]byte, hdrlen)
 	b[0] = byte(Version<<4 | (hdrlen >> 2 & 0x0f))
-	b[posTOS] = byte(h.TOS)
+	b[1] = byte(h.TOS)
 	flagsAndFragOff := (h.FragOff & 0x1fff) | int(h.Flags<<13)
-	if supportsNewIPInput {
-		b[posTotalLen], b[posTotalLen+1] = byte(h.TotalLen>>8), byte(h.TotalLen)
-		b[posFragOff], b[posFragOff+1] = byte(flagsAndFragOff>>8), byte(flagsAndFragOff)
-	} else {
+	switch runtime.GOOS {
+	case "darwin", "dragonfly", "freebsd", "netbsd":
 		// TODO(mikio): fix potential misaligned memory access
-		*(*uint16)(unsafe.Pointer(&b[posTotalLen : posTotalLen+1][0])) = uint16(h.TotalLen)
-		*(*uint16)(unsafe.Pointer(&b[posFragOff : posFragOff+1][0])) = uint16(flagsAndFragOff)
+		*(*uint16)(unsafe.Pointer(&b[2:3][0])) = uint16(h.TotalLen)
+		*(*uint16)(unsafe.Pointer(&b[6:7][0])) = uint16(flagsAndFragOff)
+	default:
+		b[2], b[3] = byte(h.TotalLen>>8), byte(h.TotalLen)
+		b[6], b[7] = byte(flagsAndFragOff>>8), byte(flagsAndFragOff)
 	}
-	b[posID], b[posID+1] = byte(h.ID>>8), byte(h.ID)
-	b[posTTL] = byte(h.TTL)
-	b[posProtocol] = byte(h.Protocol)
-	b[posChecksum], b[posChecksum+1] = byte(h.Checksum>>8), byte(h.Checksum)
+	b[4], b[5] = byte(h.ID>>8), byte(h.ID)
+	b[8] = byte(h.TTL)
+	b[9] = byte(h.Protocol)
+	b[10], b[11] = byte(h.Checksum>>8), byte(h.Checksum)
 	if ip := h.Src.To4(); ip != nil {
-		copy(b[posSrc:posSrc+net.IPv4len], ip[:net.IPv4len])
+		copy(b[12:16], ip[:net.IPv4len])
 	}
 	if ip := h.Dst.To4(); ip != nil {
-		copy(b[posDst:posDst+net.IPv4len], ip[:net.IPv4len])
+		copy(b[16:20], ip[:net.IPv4len])
 	} else {
 		return nil, errMissingAddress
 	}
@@ -138,30 +110,37 @@
 	if hdrlen > len(b) {
 		return nil, errBufferTooShort
 	}
-	h := &Header{}
-	h.Version = int(b[0] >> 4)
-	h.Len = hdrlen
-	h.TOS = int(b[posTOS])
-	if supportsNewIPInput {
-		h.TotalLen = int(b[posTotalLen])<<8 | int(b[posTotalLen+1])
-		h.FragOff = int(b[posFragOff])<<8 | int(b[posFragOff+1])
-	} else {
+	h := &Header{
+		Version:  int(b[0] >> 4),
+		Len:      hdrlen,
+		TOS:      int(b[1]),
+		ID:       int(b[4])<<8 | int(b[5]),
+		TTL:      int(b[8]),
+		Protocol: int(b[9]),
+		Checksum: int(b[10])<<8 | int(b[11]),
+		Src:      net.IPv4(b[12], b[13], b[14], b[15]),
+		Dst:      net.IPv4(b[16], b[17], b[18], b[19]),
+	}
+	switch runtime.GOOS {
+	case "darwin", "dragonfly", "netbsd":
 		// TODO(mikio): fix potential misaligned memory access
-		h.TotalLen = int(*(*uint16)(unsafe.Pointer(&b[posTotalLen : posTotalLen+1][0])))
-		if runtime.GOOS != "freebsd" || freebsdVersion < 1000000 {
+		h.TotalLen = int(*(*uint16)(unsafe.Pointer(&b[2:3][0]))) + hdrlen
+		// TODO(mikio): fix potential misaligned memory access
+		h.FragOff = int(*(*uint16)(unsafe.Pointer(&b[6:7][0])))
+	case "freebsd":
+		// TODO(mikio): fix potential misaligned memory access
+		h.TotalLen = int(*(*uint16)(unsafe.Pointer(&b[2:3][0])))
+		if freebsdVersion < 1000000 {
 			h.TotalLen += hdrlen
 		}
 		// TODO(mikio): fix potential misaligned memory access
-		h.FragOff = int(*(*uint16)(unsafe.Pointer(&b[posFragOff : posFragOff+1][0])))
+		h.FragOff = int(*(*uint16)(unsafe.Pointer(&b[6:7][0])))
+	default:
+		h.TotalLen = int(b[2])<<8 | int(b[3])
+		h.FragOff = int(b[6])<<8 | int(b[7])
 	}
 	h.Flags = HeaderFlags(h.FragOff&0xe000) >> 13
 	h.FragOff = h.FragOff & 0x1fff
-	h.ID = int(b[posID])<<8 | int(b[posID+1])
-	h.TTL = int(b[posTTL])
-	h.Protocol = int(b[posProtocol])
-	h.Checksum = int(b[posChecksum])<<8 | int(b[posChecksum+1])
-	h.Src = net.IPv4(b[posSrc], b[posSrc+1], b[posSrc+2], b[posSrc+3])
-	h.Dst = net.IPv4(b[posDst], b[posDst+1], b[posDst+2], b[posDst+3])
 	if hdrlen-HeaderLen > 0 {
 		h.Options = make([]byte, hdrlen-HeaderLen)
 		copy(h.Options, b[HeaderLen:])
diff --git a/go/src/golang.org/x/net/ipv4/header_test.go b/go/src/golang.org/x/net/ipv4/header_test.go
index 05e3135..416be6b 100644
--- a/go/src/golang.org/x/net/ipv4/header_test.go
+++ b/go/src/golang.org/x/net/ipv4/header_test.go
@@ -73,10 +73,17 @@
 		t.Fatal(err)
 	}
 	var wh []byte
-	if supportsNewIPInput {
-		wh = wireHeaderToKernel[:]
-	} else {
+	switch runtime.GOOS {
+	case "darwin", "dragonfly", "netbsd":
 		wh = wireHeaderToTradBSDKernel[:]
+	case "freebsd":
+		if freebsdVersion < 1000000 {
+			wh = wireHeaderToTradBSDKernel[:]
+		} else {
+			wh = wireHeaderFromFreeBSD10Kernel[:]
+		}
+	default:
+		wh = wireHeaderToKernel[:]
 	}
 	if !bytes.Equal(b, wh) {
 		t.Fatalf("got %#v; want %#v", b, wh)
@@ -85,14 +92,17 @@
 
 func TestParseHeader(t *testing.T) {
 	var wh []byte
-	if supportsNewIPInput {
-		wh = wireHeaderFromKernel[:]
-	} else {
-		if runtime.GOOS == "freebsd" && freebsdVersion >= 1000000 {
-			wh = wireHeaderFromFreeBSD10Kernel[:]
-		} else {
+	switch runtime.GOOS {
+	case "darwin", "dragonfly", "netbsd":
+		wh = wireHeaderFromTradBSDKernel[:]
+	case "freebsd":
+		if freebsdVersion < 1000000 {
 			wh = wireHeaderFromTradBSDKernel[:]
+		} else {
+			wh = wireHeaderFromFreeBSD10Kernel[:]
 		}
+	default:
+		wh = wireHeaderFromKernel[:]
 	}
 	h, err := ParseHeader(wh)
 	if err != nil {
diff --git a/go/src/golang.org/x/net/ipv4/icmp_test.go b/go/src/golang.org/x/net/ipv4/icmp_test.go
index d398f5b..3324b54 100644
--- a/go/src/golang.org/x/net/ipv4/icmp_test.go
+++ b/go/src/golang.org/x/net/ipv4/icmp_test.go
@@ -6,11 +6,11 @@
 
 import (
 	"net"
-	"os"
 	"reflect"
 	"runtime"
 	"testing"
 
+	"golang.org/x/net/internal/nettest"
 	"golang.org/x/net/ipv4"
 )
 
@@ -36,7 +36,7 @@
 	switch runtime.GOOS {
 	case "linux":
 	default:
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 
 	var f ipv4.ICMPFilter
@@ -64,10 +64,10 @@
 	switch runtime.GOOS {
 	case "linux":
 	default:
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 
 	c, err := net.ListenPacket("ip4:icmp", "127.0.0.1")
diff --git a/go/src/golang.org/x/net/ipv4/multicast_test.go b/go/src/golang.org/x/net/ipv4/multicast_test.go
index d9f3f0d..3f03048 100644
--- a/go/src/golang.org/x/net/ipv4/multicast_test.go
+++ b/go/src/golang.org/x/net/ipv4/multicast_test.go
@@ -30,11 +30,11 @@
 func TestPacketConnReadWriteMulticastUDP(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagMulticast|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
 	for _, tt := range packetConnReadWriteMulticastUDPTests {
@@ -58,7 +58,7 @@
 				switch runtime.GOOS {
 				case "freebsd", "linux":
 				default: // platforms that don't support IGMPv2/3 fail here
-					t.Logf("not supported on %q", runtime.GOOS)
+					t.Logf("not supported on %s", runtime.GOOS)
 					continue
 				}
 				t.Fatal(err)
@@ -83,7 +83,7 @@
 		for i, toggle := range []bool{true, false, true} {
 			if err := p.SetControlMessage(cf, toggle); err != nil {
 				if nettest.ProtocolNotSupported(err) {
-					t.Logf("not supported on %q", runtime.GOOS)
+					t.Logf("not supported on %s", runtime.GOOS)
 					continue
 				}
 				t.Fatal(err)
@@ -120,14 +120,14 @@
 func TestPacketConnReadWriteMulticastICMP(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 	ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagMulticast|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
 	for _, tt := range packetConnReadWriteMulticastICMPTests {
@@ -149,7 +149,7 @@
 				switch runtime.GOOS {
 				case "freebsd", "linux":
 				default: // platforms that don't support IGMPv2/3 fail here
-					t.Logf("not supported on %q", runtime.GOOS)
+					t.Logf("not supported on %s", runtime.GOOS)
 					continue
 				}
 				t.Fatal(err)
@@ -183,7 +183,7 @@
 			}
 			if err := p.SetControlMessage(cf, toggle); err != nil {
 				if nettest.ProtocolNotSupported(err) {
-					t.Logf("not supported on %q", runtime.GOOS)
+					t.Logf("not supported on %s", runtime.GOOS)
 					continue
 				}
 				t.Fatal(err)
@@ -229,12 +229,12 @@
 	if testing.Short() {
 		t.Skip("to avoid external network")
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 	ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagMulticast|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
 	for _, tt := range rawConnReadWriteMulticastICMPTests {
@@ -259,7 +259,7 @@
 				switch runtime.GOOS {
 				case "freebsd", "linux":
 				default: // platforms that don't support IGMPv2/3 fail here
-					t.Logf("not supported on %q", runtime.GOOS)
+					t.Logf("not supported on %s", runtime.GOOS)
 					continue
 				}
 				t.Fatal(err)
@@ -301,7 +301,7 @@
 			}
 			if err := r.SetControlMessage(cf, toggle); err != nil {
 				if nettest.ProtocolNotSupported(err) {
-					t.Logf("not supported on %q", runtime.GOOS)
+					t.Logf("not supported on %s", runtime.GOOS)
 					continue
 				}
 				t.Fatal(err)
diff --git a/go/src/golang.org/x/net/ipv4/multicastlistener_test.go b/go/src/golang.org/x/net/ipv4/multicastlistener_test.go
index f9d7791..e342bf1 100644
--- a/go/src/golang.org/x/net/ipv4/multicastlistener_test.go
+++ b/go/src/golang.org/x/net/ipv4/multicastlistener_test.go
@@ -6,7 +6,6 @@
 
 import (
 	"net"
-	"os"
 	"runtime"
 	"testing"
 
@@ -23,7 +22,7 @@
 func TestUDPSinglePacketConnWithMultipleGroupListeners(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if testing.Short() {
 		t.Skip("to avoid external network")
@@ -63,7 +62,7 @@
 func TestUDPMultiplePacketConnWithMultipleGroupListeners(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if testing.Short() {
 		t.Skip("to avoid external network")
@@ -115,7 +114,7 @@
 func TestUDPPerInterfaceSinglePacketConnWithSingleGroupListener(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if testing.Short() {
 		t.Skip("to avoid external network")
@@ -158,13 +157,13 @@
 func TestIPSingleRawConnWithSingleGroupListener(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if testing.Short() {
 		t.Skip("to avoid external network")
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 
 	c, err := net.ListenPacket("ip4:icmp", "0.0.0.0") // wildcard address
@@ -203,13 +202,13 @@
 func TestIPPerInterfaceSingleRawConnWithSingleGroupListener(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if testing.Short() {
 		t.Skip("to avoid external network")
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 
 	gaddr := net.IPAddr{IP: net.IPv4(224, 0, 0, 254)} // see RFC 4727
diff --git a/go/src/golang.org/x/net/ipv4/multicastsockopt_test.go b/go/src/golang.org/x/net/ipv4/multicastsockopt_test.go
index 7235d68..c76dbe4 100644
--- a/go/src/golang.org/x/net/ipv4/multicastsockopt_test.go
+++ b/go/src/golang.org/x/net/ipv4/multicastsockopt_test.go
@@ -6,7 +6,6 @@
 
 import (
 	"net"
-	"os"
 	"runtime"
 	"testing"
 
@@ -28,16 +27,17 @@
 func TestPacketConnMulticastSocketOptions(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagMulticast|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
+	m, ok := nettest.SupportsRawIPSocket()
 	for _, tt := range packetConnMulticastSocketOptionTests {
-		if tt.net == "ip4" && os.Getuid() != 0 {
-			t.Log("must be root")
+		if tt.net == "ip4" && !ok {
+			t.Log(m)
 			continue
 		}
 		c, err := net.ListenPacket(tt.net+tt.proto, tt.addr)
@@ -67,14 +67,14 @@
 func TestRawConnMulticastSocketOptions(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 	ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagMulticast|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
 	for _, tt := range rawConnMulticastSocketOptionTests {
@@ -158,7 +158,7 @@
 		switch runtime.GOOS {
 		case "freebsd", "linux":
 		default: // platforms that don't support IGMPv2/3 fail here
-			t.Logf("not supported on %q", runtime.GOOS)
+			t.Logf("not supported on %s", runtime.GOOS)
 			return
 		}
 		t.Error(err)
diff --git a/go/src/golang.org/x/net/ipv4/readwrite_test.go b/go/src/golang.org/x/net/ipv4/readwrite_test.go
index e595443..5e6533e 100644
--- a/go/src/golang.org/x/net/ipv4/readwrite_test.go
+++ b/go/src/golang.org/x/net/ipv4/readwrite_test.go
@@ -91,7 +91,7 @@
 func TestPacketConnConcurrentReadWriteUnicastUDP(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 
 	c, err := net.ListenPacket("udp4", "127.0.0.1:0")
@@ -113,7 +113,7 @@
 
 	if err := p.SetControlMessage(cf, true); err != nil { // probe before test
 		if nettest.ProtocolNotSupported(err) {
-			t.Skipf("not supported on %q", runtime.GOOS)
+			t.Skipf("not supported on %s", runtime.GOOS)
 		}
 		t.Fatal(err)
 	}
diff --git a/go/src/golang.org/x/net/ipv4/sockopt_ssmreq_unix.go b/go/src/golang.org/x/net/ipv4/sockopt_ssmreq_unix.go
index 08a6eaa..6f647bc 100644
--- a/go/src/golang.org/x/net/ipv4/sockopt_ssmreq_unix.go
+++ b/go/src/golang.org/x/net/ipv4/sockopt_ssmreq_unix.go
@@ -14,13 +14,28 @@
 	"golang.org/x/net/internal/iana"
 )
 
+var freebsd32o64 bool
+
 func setsockoptGroupReq(fd, name int, ifi *net.Interface, grp net.IP) error {
 	var gr sysGroupReq
 	if ifi != nil {
 		gr.Interface = uint32(ifi.Index)
 	}
 	gr.setGroup(grp)
-	return os.NewSyscallError("setsockopt", setsockopt(fd, iana.ProtocolIP, name, unsafe.Pointer(&gr), sysSizeofGroupReq))
+	var p unsafe.Pointer
+	var l sysSockoptLen
+	if freebsd32o64 {
+		var d [sysSizeofGroupReq + 4]byte
+		s := (*[sysSizeofGroupReq]byte)(unsafe.Pointer(&gr))
+		copy(d[:4], s[:4])
+		copy(d[8:], s[4:])
+		p = unsafe.Pointer(&d[0])
+		l = sysSizeofGroupReq + 4
+	} else {
+		p = unsafe.Pointer(&gr)
+		l = sysSizeofGroupReq
+	}
+	return os.NewSyscallError("setsockopt", setsockopt(fd, iana.ProtocolIP, name, p, l))
 }
 
 func setsockoptGroupSourceReq(fd, name int, ifi *net.Interface, grp, src net.IP) error {
@@ -29,5 +44,18 @@
 		gsr.Interface = uint32(ifi.Index)
 	}
 	gsr.setSourceGroup(grp, src)
-	return os.NewSyscallError("setsockopt", setsockopt(fd, iana.ProtocolIP, name, unsafe.Pointer(&gsr), sysSizeofGroupSourceReq))
+	var p unsafe.Pointer
+	var l sysSockoptLen
+	if freebsd32o64 {
+		var d [sysSizeofGroupSourceReq + 4]byte
+		s := (*[sysSizeofGroupSourceReq]byte)(unsafe.Pointer(&gsr))
+		copy(d[:4], s[:4])
+		copy(d[8:], s[4:])
+		p = unsafe.Pointer(&d[0])
+		l = sysSizeofGroupSourceReq + 4
+	} else {
+		p = unsafe.Pointer(&gsr)
+		l = sysSizeofGroupSourceReq
+	}
+	return os.NewSyscallError("setsockopt", setsockopt(fd, iana.ProtocolIP, name, p, l))
 }
diff --git a/go/src/golang.org/x/net/ipv4/sys_freebsd.go b/go/src/golang.org/x/net/ipv4/sys_freebsd.go
index 7df658c..09ef491 100644
--- a/go/src/golang.org/x/net/ipv4/sys_freebsd.go
+++ b/go/src/golang.org/x/net/ipv4/sys_freebsd.go
@@ -6,6 +6,8 @@
 
 import (
 	"net"
+	"runtime"
+	"strings"
 	"syscall"
 	"unsafe"
 )
@@ -43,6 +45,15 @@
 	if freebsdVersion >= 1000000 {
 		sockOpts[ssoMulticastInterface].typ = ssoTypeIPMreqn
 	}
+	if runtime.GOOS == "freebsd" && runtime.GOARCH == "386" {
+		archs, _ := syscall.Sysctl("kern.supported_archs")
+		for _, s := range strings.Fields(archs) {
+			if s == "amd64" {
+				freebsd32o64 = true
+				break
+			}
+		}
+	}
 }
 
 func (gr *sysGroupReq) setGroup(grp net.IP) {
diff --git a/go/src/golang.org/x/net/ipv4/syscall_unix.go b/go/src/golang.org/x/net/ipv4/syscall_unix.go
index 29e8f16..5fe8e83 100644
--- a/go/src/golang.org/x/net/ipv4/syscall_unix.go
+++ b/go/src/golang.org/x/net/ipv4/syscall_unix.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build darwin dragonfly freebsd linux,amd64 linux,arm netbsd openbsd
+// +build darwin dragonfly freebsd linux,!386 netbsd openbsd
 
 package ipv4
 
diff --git a/go/src/golang.org/x/net/ipv4/unicast_test.go b/go/src/golang.org/x/net/ipv4/unicast_test.go
index dfe8b72..255096a 100644
--- a/go/src/golang.org/x/net/ipv4/unicast_test.go
+++ b/go/src/golang.org/x/net/ipv4/unicast_test.go
@@ -21,11 +21,11 @@
 func TestPacketConnReadWriteUnicastUDP(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
 	c, err := net.ListenPacket("udp4", "127.0.0.1:0")
@@ -46,7 +46,7 @@
 	for i, toggle := range []bool{true, false, true} {
 		if err := p.SetControlMessage(cf, toggle); err != nil {
 			if nettest.ProtocolNotSupported(err) {
-				t.Logf("not supported on %q", runtime.GOOS)
+				t.Logf("not supported on %s", runtime.GOOS)
 				continue
 			}
 			t.Fatal(err)
@@ -77,14 +77,14 @@
 func TestPacketConnReadWriteUnicastICMP(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 	ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
 	c, err := net.ListenPacket("ip4:icmp", "0.0.0.0")
@@ -114,7 +114,7 @@
 		}
 		if err := p.SetControlMessage(cf, toggle); err != nil {
 			if nettest.ProtocolNotSupported(err) {
-				t.Logf("not supported on %q", runtime.GOOS)
+				t.Logf("not supported on %s", runtime.GOOS)
 				continue
 			}
 			t.Fatal(err)
@@ -136,7 +136,7 @@
 		if n, cm, _, err := p.ReadFrom(rb); err != nil {
 			switch runtime.GOOS {
 			case "darwin": // older darwin kernels have some limitation on receiving icmp packet through raw socket
-				t.Logf("not supported on %q", runtime.GOOS)
+				t.Logf("not supported on %s", runtime.GOOS)
 				continue
 			}
 			t.Fatal(err)
@@ -160,14 +160,14 @@
 func TestRawConnReadWriteUnicastICMP(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 	ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
 	c, err := net.ListenPacket("ip4:icmp", "0.0.0.0")
@@ -209,7 +209,7 @@
 		}
 		if err := r.SetControlMessage(cf, toggle); err != nil {
 			if nettest.ProtocolNotSupported(err) {
-				t.Logf("not supported on %q", runtime.GOOS)
+				t.Logf("not supported on %s", runtime.GOOS)
 				continue
 			}
 			t.Fatal(err)
@@ -228,7 +228,7 @@
 		if _, b, cm, err := r.ReadFrom(rb); err != nil {
 			switch runtime.GOOS {
 			case "darwin": // older darwin kernels have some limitation on receiving icmp packet through raw socket
-				t.Logf("not supported on %q", runtime.GOOS)
+				t.Logf("not supported on %s", runtime.GOOS)
 				continue
 			}
 			t.Fatal(err)
diff --git a/go/src/golang.org/x/net/ipv4/unicastsockopt_test.go b/go/src/golang.org/x/net/ipv4/unicastsockopt_test.go
index 7474510..25606f2 100644
--- a/go/src/golang.org/x/net/ipv4/unicastsockopt_test.go
+++ b/go/src/golang.org/x/net/ipv4/unicastsockopt_test.go
@@ -6,7 +6,6 @@
 
 import (
 	"net"
-	"os"
 	"runtime"
 	"testing"
 
@@ -18,11 +17,11 @@
 func TestConnUnicastSocketOptions(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
 	ln, err := net.Listen("tcp4", "127.0.0.1:0")
@@ -55,16 +54,17 @@
 func TestPacketConnUnicastSocketOptions(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
+	m, ok := nettest.SupportsRawIPSocket()
 	for _, tt := range packetConnUnicastSocketOptionTests {
-		if tt.net == "ip4" && os.Getuid() != 0 {
-			t.Log("must be root")
+		if tt.net == "ip4" && !ok {
+			t.Log(m)
 			continue
 		}
 		c, err := net.ListenPacket(tt.net+tt.proto, tt.addr)
@@ -80,14 +80,14 @@
 func TestRawConnUnicastSocketOptions(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 	ifi := nettest.RoutedInterface("ip4", net.FlagUp|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
 	c, err := net.ListenPacket("ip4:icmp", "127.0.0.1")
@@ -116,7 +116,7 @@
 	switch runtime.GOOS {
 	case "windows":
 		// IP_TOS option is supported on Windows 8 and beyond.
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 
 	if err := c.SetTOS(tos); err != nil {
diff --git a/go/src/golang.org/x/net/ipv4/zsys_freebsd_arm.go b/go/src/golang.org/x/net/ipv4/zsys_freebsd_arm.go
index 6fd67e1..ebac6d7 100644
--- a/go/src/golang.org/x/net/ipv4/zsys_freebsd_arm.go
+++ b/go/src/golang.org/x/net/ipv4/zsys_freebsd_arm.go
@@ -44,8 +44,8 @@
 	sysSizeofIPMreq         = 0x8
 	sysSizeofIPMreqn        = 0xc
 	sysSizeofIPMreqSource   = 0xc
-	sysSizeofGroupReq       = 0x84
-	sysSizeofGroupSourceReq = 0x104
+	sysSizeofGroupReq       = 0x88
+	sysSizeofGroupSourceReq = 0x108
 )
 
 type sysSockaddrStorage struct {
@@ -83,11 +83,13 @@
 
 type sysGroupReq struct {
 	Interface uint32
+	Pad_cgo_0 [4]byte
 	Group     sysSockaddrStorage
 }
 
 type sysGroupSourceReq struct {
 	Interface uint32
+	Pad_cgo_0 [4]byte
 	Group     sysSockaddrStorage
 	Source    sysSockaddrStorage
 }
diff --git a/go/src/golang.org/x/net/ipv4/zsys_linux_arm64.go b/go/src/golang.org/x/net/ipv4/zsys_linux_arm64.go
new file mode 100644
index 0000000..ce4194a
--- /dev/null
+++ b/go/src/golang.org/x/net/ipv4/zsys_linux_arm64.go
@@ -0,0 +1,134 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs defs_linux.go
+
+// +build linux,arm64
+
+package ipv4
+
+const (
+	sysIP_TOS             = 0x1
+	sysIP_TTL             = 0x2
+	sysIP_HDRINCL         = 0x3
+	sysIP_OPTIONS         = 0x4
+	sysIP_ROUTER_ALERT    = 0x5
+	sysIP_RECVOPTS        = 0x6
+	sysIP_RETOPTS         = 0x7
+	sysIP_PKTINFO         = 0x8
+	sysIP_PKTOPTIONS      = 0x9
+	sysIP_MTU_DISCOVER    = 0xa
+	sysIP_RECVERR         = 0xb
+	sysIP_RECVTTL         = 0xc
+	sysIP_RECVTOS         = 0xd
+	sysIP_MTU             = 0xe
+	sysIP_FREEBIND        = 0xf
+	sysIP_TRANSPARENT     = 0x13
+	sysIP_RECVRETOPTS     = 0x7
+	sysIP_ORIGDSTADDR     = 0x14
+	sysIP_RECVORIGDSTADDR = 0x14
+	sysIP_MINTTL          = 0x15
+	sysIP_NODEFRAG        = 0x16
+	sysIP_UNICAST_IF      = 0x32
+
+	sysIP_MULTICAST_IF           = 0x20
+	sysIP_MULTICAST_TTL          = 0x21
+	sysIP_MULTICAST_LOOP         = 0x22
+	sysIP_ADD_MEMBERSHIP         = 0x23
+	sysIP_DROP_MEMBERSHIP        = 0x24
+	sysIP_UNBLOCK_SOURCE         = 0x25
+	sysIP_BLOCK_SOURCE           = 0x26
+	sysIP_ADD_SOURCE_MEMBERSHIP  = 0x27
+	sysIP_DROP_SOURCE_MEMBERSHIP = 0x28
+	sysIP_MSFILTER               = 0x29
+	sysMCAST_JOIN_GROUP          = 0x2a
+	sysMCAST_LEAVE_GROUP         = 0x2d
+	sysMCAST_JOIN_SOURCE_GROUP   = 0x2e
+	sysMCAST_LEAVE_SOURCE_GROUP  = 0x2f
+	sysMCAST_BLOCK_SOURCE        = 0x2b
+	sysMCAST_UNBLOCK_SOURCE      = 0x2c
+	sysMCAST_MSFILTER            = 0x30
+	sysIP_MULTICAST_ALL          = 0x31
+
+	sysICMP_FILTER = 0x1
+
+	sysSO_EE_ORIGIN_NONE         = 0x0
+	sysSO_EE_ORIGIN_LOCAL        = 0x1
+	sysSO_EE_ORIGIN_ICMP         = 0x2
+	sysSO_EE_ORIGIN_ICMP6        = 0x3
+	sysSO_EE_ORIGIN_TXSTATUS     = 0x4
+	sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
+
+	sysSizeofKernelSockaddrStorage = 0x80
+	sysSizeofSockaddrInet          = 0x10
+	sysSizeofInetPktinfo           = 0xc
+	sysSizeofSockExtendedErr       = 0x10
+
+	sysSizeofIPMreq         = 0x8
+	sysSizeofIPMreqn        = 0xc
+	sysSizeofIPMreqSource   = 0xc
+	sysSizeofGroupReq       = 0x88
+	sysSizeofGroupSourceReq = 0x108
+
+	sysSizeofICMPFilter = 0x4
+)
+
+type sysKernelSockaddrStorage struct {
+	Family  uint16
+	X__data [126]int8
+}
+
+type sysSockaddrInet struct {
+	Family uint16
+	Port   uint16
+	Addr   [4]byte /* in_addr */
+	X__pad [8]uint8
+}
+
+type sysInetPktinfo struct {
+	Ifindex  int32
+	Spec_dst [4]byte /* in_addr */
+	Addr     [4]byte /* in_addr */
+}
+
+type sysSockExtendedErr struct {
+	Errno  uint32
+	Origin uint8
+	Type   uint8
+	Code   uint8
+	Pad    uint8
+	Info   uint32
+	Data   uint32
+}
+
+type sysIPMreq struct {
+	Multiaddr [4]byte /* in_addr */
+	Interface [4]byte /* in_addr */
+}
+
+type sysIPMreqn struct {
+	Multiaddr [4]byte /* in_addr */
+	Address   [4]byte /* in_addr */
+	Ifindex   int32
+}
+
+type sysIPMreqSource struct {
+	Multiaddr  uint32
+	Interface  uint32
+	Sourceaddr uint32
+}
+
+type sysGroupReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+}
+
+type sysGroupSourceReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+	Source    sysKernelSockaddrStorage
+}
+
+type sysICMPFilter struct {
+	Data uint32
+}
diff --git a/go/src/golang.org/x/net/ipv4/zsys_linux_ppc64.go b/go/src/golang.org/x/net/ipv4/zsys_linux_ppc64.go
new file mode 100644
index 0000000..9fe5ee2
--- /dev/null
+++ b/go/src/golang.org/x/net/ipv4/zsys_linux_ppc64.go
@@ -0,0 +1,134 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs defs_linux.go
+
+// +build linux,ppc64
+
+package ipv4
+
+const (
+	sysIP_TOS             = 0x1
+	sysIP_TTL             = 0x2
+	sysIP_HDRINCL         = 0x3
+	sysIP_OPTIONS         = 0x4
+	sysIP_ROUTER_ALERT    = 0x5
+	sysIP_RECVOPTS        = 0x6
+	sysIP_RETOPTS         = 0x7
+	sysIP_PKTINFO         = 0x8
+	sysIP_PKTOPTIONS      = 0x9
+	sysIP_MTU_DISCOVER    = 0xa
+	sysIP_RECVERR         = 0xb
+	sysIP_RECVTTL         = 0xc
+	sysIP_RECVTOS         = 0xd
+	sysIP_MTU             = 0xe
+	sysIP_FREEBIND        = 0xf
+	sysIP_TRANSPARENT     = 0x13
+	sysIP_RECVRETOPTS     = 0x7
+	sysIP_ORIGDSTADDR     = 0x14
+	sysIP_RECVORIGDSTADDR = 0x14
+	sysIP_MINTTL          = 0x15
+	sysIP_NODEFRAG        = 0x16
+	sysIP_UNICAST_IF      = 0x32
+
+	sysIP_MULTICAST_IF           = 0x20
+	sysIP_MULTICAST_TTL          = 0x21
+	sysIP_MULTICAST_LOOP         = 0x22
+	sysIP_ADD_MEMBERSHIP         = 0x23
+	sysIP_DROP_MEMBERSHIP        = 0x24
+	sysIP_UNBLOCK_SOURCE         = 0x25
+	sysIP_BLOCK_SOURCE           = 0x26
+	sysIP_ADD_SOURCE_MEMBERSHIP  = 0x27
+	sysIP_DROP_SOURCE_MEMBERSHIP = 0x28
+	sysIP_MSFILTER               = 0x29
+	sysMCAST_JOIN_GROUP          = 0x2a
+	sysMCAST_LEAVE_GROUP         = 0x2d
+	sysMCAST_JOIN_SOURCE_GROUP   = 0x2e
+	sysMCAST_LEAVE_SOURCE_GROUP  = 0x2f
+	sysMCAST_BLOCK_SOURCE        = 0x2b
+	sysMCAST_UNBLOCK_SOURCE      = 0x2c
+	sysMCAST_MSFILTER            = 0x30
+	sysIP_MULTICAST_ALL          = 0x31
+
+	sysICMP_FILTER = 0x1
+
+	sysSO_EE_ORIGIN_NONE         = 0x0
+	sysSO_EE_ORIGIN_LOCAL        = 0x1
+	sysSO_EE_ORIGIN_ICMP         = 0x2
+	sysSO_EE_ORIGIN_ICMP6        = 0x3
+	sysSO_EE_ORIGIN_TXSTATUS     = 0x4
+	sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
+
+	sysSizeofKernelSockaddrStorage = 0x80
+	sysSizeofSockaddrInet          = 0x10
+	sysSizeofInetPktinfo           = 0xc
+	sysSizeofSockExtendedErr       = 0x10
+
+	sysSizeofIPMreq         = 0x8
+	sysSizeofIPMreqn        = 0xc
+	sysSizeofIPMreqSource   = 0xc
+	sysSizeofGroupReq       = 0x88
+	sysSizeofGroupSourceReq = 0x108
+
+	sysSizeofICMPFilter = 0x4
+)
+
+type sysKernelSockaddrStorage struct {
+	Family  uint16
+	X__data [126]int8
+}
+
+type sysSockaddrInet struct {
+	Family uint16
+	Port   uint16
+	Addr   [4]byte /* in_addr */
+	X__pad [8]uint8
+}
+
+type sysInetPktinfo struct {
+	Ifindex  int32
+	Spec_dst [4]byte /* in_addr */
+	Addr     [4]byte /* in_addr */
+}
+
+type sysSockExtendedErr struct {
+	Errno  uint32
+	Origin uint8
+	Type   uint8
+	Code   uint8
+	Pad    uint8
+	Info   uint32
+	Data   uint32
+}
+
+type sysIPMreq struct {
+	Multiaddr [4]byte /* in_addr */
+	Interface [4]byte /* in_addr */
+}
+
+type sysIPMreqn struct {
+	Multiaddr [4]byte /* in_addr */
+	Address   [4]byte /* in_addr */
+	Ifindex   int32
+}
+
+type sysIPMreqSource struct {
+	Multiaddr  uint32
+	Interface  uint32
+	Sourceaddr uint32
+}
+
+type sysGroupReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+}
+
+type sysGroupSourceReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+	Source    sysKernelSockaddrStorage
+}
+
+type sysICMPFilter struct {
+	Data uint32
+}
diff --git a/go/src/golang.org/x/net/ipv4/zsys_linux_ppc64le.go b/go/src/golang.org/x/net/ipv4/zsys_linux_ppc64le.go
new file mode 100644
index 0000000..3891f54
--- /dev/null
+++ b/go/src/golang.org/x/net/ipv4/zsys_linux_ppc64le.go
@@ -0,0 +1,134 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs defs_linux.go
+
+// +build linux,ppc64le
+
+package ipv4
+
+const (
+	sysIP_TOS             = 0x1
+	sysIP_TTL             = 0x2
+	sysIP_HDRINCL         = 0x3
+	sysIP_OPTIONS         = 0x4
+	sysIP_ROUTER_ALERT    = 0x5
+	sysIP_RECVOPTS        = 0x6
+	sysIP_RETOPTS         = 0x7
+	sysIP_PKTINFO         = 0x8
+	sysIP_PKTOPTIONS      = 0x9
+	sysIP_MTU_DISCOVER    = 0xa
+	sysIP_RECVERR         = 0xb
+	sysIP_RECVTTL         = 0xc
+	sysIP_RECVTOS         = 0xd
+	sysIP_MTU             = 0xe
+	sysIP_FREEBIND        = 0xf
+	sysIP_TRANSPARENT     = 0x13
+	sysIP_RECVRETOPTS     = 0x7
+	sysIP_ORIGDSTADDR     = 0x14
+	sysIP_RECVORIGDSTADDR = 0x14
+	sysIP_MINTTL          = 0x15
+	sysIP_NODEFRAG        = 0x16
+	sysIP_UNICAST_IF      = 0x32
+
+	sysIP_MULTICAST_IF           = 0x20
+	sysIP_MULTICAST_TTL          = 0x21
+	sysIP_MULTICAST_LOOP         = 0x22
+	sysIP_ADD_MEMBERSHIP         = 0x23
+	sysIP_DROP_MEMBERSHIP        = 0x24
+	sysIP_UNBLOCK_SOURCE         = 0x25
+	sysIP_BLOCK_SOURCE           = 0x26
+	sysIP_ADD_SOURCE_MEMBERSHIP  = 0x27
+	sysIP_DROP_SOURCE_MEMBERSHIP = 0x28
+	sysIP_MSFILTER               = 0x29
+	sysMCAST_JOIN_GROUP          = 0x2a
+	sysMCAST_LEAVE_GROUP         = 0x2d
+	sysMCAST_JOIN_SOURCE_GROUP   = 0x2e
+	sysMCAST_LEAVE_SOURCE_GROUP  = 0x2f
+	sysMCAST_BLOCK_SOURCE        = 0x2b
+	sysMCAST_UNBLOCK_SOURCE      = 0x2c
+	sysMCAST_MSFILTER            = 0x30
+	sysIP_MULTICAST_ALL          = 0x31
+
+	sysICMP_FILTER = 0x1
+
+	sysSO_EE_ORIGIN_NONE         = 0x0
+	sysSO_EE_ORIGIN_LOCAL        = 0x1
+	sysSO_EE_ORIGIN_ICMP         = 0x2
+	sysSO_EE_ORIGIN_ICMP6        = 0x3
+	sysSO_EE_ORIGIN_TXSTATUS     = 0x4
+	sysSO_EE_ORIGIN_TIMESTAMPING = 0x4
+
+	sysSizeofKernelSockaddrStorage = 0x80
+	sysSizeofSockaddrInet          = 0x10
+	sysSizeofInetPktinfo           = 0xc
+	sysSizeofSockExtendedErr       = 0x10
+
+	sysSizeofIPMreq         = 0x8
+	sysSizeofIPMreqn        = 0xc
+	sysSizeofIPMreqSource   = 0xc
+	sysSizeofGroupReq       = 0x88
+	sysSizeofGroupSourceReq = 0x108
+
+	sysSizeofICMPFilter = 0x4
+)
+
+type sysKernelSockaddrStorage struct {
+	Family  uint16
+	X__data [126]int8
+}
+
+type sysSockaddrInet struct {
+	Family uint16
+	Port   uint16
+	Addr   [4]byte /* in_addr */
+	X__pad [8]uint8
+}
+
+type sysInetPktinfo struct {
+	Ifindex  int32
+	Spec_dst [4]byte /* in_addr */
+	Addr     [4]byte /* in_addr */
+}
+
+type sysSockExtendedErr struct {
+	Errno  uint32
+	Origin uint8
+	Type   uint8
+	Code   uint8
+	Pad    uint8
+	Info   uint32
+	Data   uint32
+}
+
+type sysIPMreq struct {
+	Multiaddr [4]byte /* in_addr */
+	Interface [4]byte /* in_addr */
+}
+
+type sysIPMreqn struct {
+	Multiaddr [4]byte /* in_addr */
+	Address   [4]byte /* in_addr */
+	Ifindex   int32
+}
+
+type sysIPMreqSource struct {
+	Multiaddr  uint32
+	Interface  uint32
+	Sourceaddr uint32
+}
+
+type sysGroupReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+}
+
+type sysGroupSourceReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+	Source    sysKernelSockaddrStorage
+}
+
+type sysICMPFilter struct {
+	Data uint32
+}
diff --git a/go/src/golang.org/x/net/ipv6/control.go b/go/src/golang.org/x/net/ipv6/control.go
index 44861be..27f1d2f 100644
--- a/go/src/golang.org/x/net/ipv6/control.go
+++ b/go/src/golang.org/x/net/ipv6/control.go
@@ -17,21 +17,6 @@
 	errNoSuchInterface = errors.New("no such interface")
 )
 
-// References:
-//
-// RFC 2292  Advanced Sockets API for IPv6
-//	http://tools.ietf.org/html/rfc2292
-// RFC 2460  Internet Protocol, Version 6 (IPv6) Specification
-//	http://tools.ietf.org/html/rfc2460
-// RFC 3493  Basic Socket Interface Extensions for IPv6
-//	http://tools.ietf.org/html/rfc3493.html
-// RFC 3542  Advanced Sockets Application Program Interface (API) for IPv6
-//	http://tools.ietf.org/html/rfc3542
-// RFC 3678  Socket Interface Extensions for Multicast Source Filters
-//	http://tools.ietf.org/html/rfc3678
-// RFC 4607  Source-Specific Multicast for IP
-//	http://tools.ietf.org/html/rfc4607
-//
 // Note that RFC 3542 obsoletes RFC 2292 but OS X Snow Leopard and the
 // former still support RFC 2292 only.  Please be aware that almost
 // all protocol implementations prohibit using a combination of RFC
diff --git a/go/src/golang.org/x/net/ipv6/doc.go b/go/src/golang.org/x/net/ipv6/doc.go
index 6b1b782..d536bcb 100644
--- a/go/src/golang.org/x/net/ipv6/doc.go
+++ b/go/src/golang.org/x/net/ipv6/doc.go
@@ -6,9 +6,15 @@
 // Protocol version 6.
 //
 // The package provides IP-level socket options that allow
-// manipulation of IPv6 facilities.  The IPv6 and socket options for
-// IPv6 are defined in RFC 2460, RFC 3493, RFC 3542, RFC 3678 and RFC
-// 4607.
+// manipulation of IPv6 facilities.
+//
+// The IPv6 protocol is defined in RFC 2460.
+// Basic and advanced socket interface extensions are defined in RFC
+// 3493 and RFC 3542.
+// Socket interface extensions for multicast source filters are
+// defined in RFC 3678.
+// MLDv1 and MLDv2 are defined in RFC 2710 and RFC 3810.
+// Source-specific multicast is defined in RFC 4607.
 //
 //
 // Unicasting
@@ -196,8 +202,8 @@
 // Source-specific multicasting
 //
 // An application that uses PacketConn on MLDv2 supported platform is
-// able to join source-specific multicast groups as described in RFC
-// 3678.  The application may use JoinSourceSpecificGroup and
+// able to join source-specific multicast groups.
+// The application may use JoinSourceSpecificGroup and
 // LeaveSourceSpecificGroup for the operation known as "include" mode,
 //
 //	ssmgroup := net.UDPAddr{IP: net.ParseIP("ff32::8000:9")}
diff --git a/go/src/golang.org/x/net/ipv6/gen.go b/go/src/golang.org/x/net/ipv6/gen.go
index 329cf1d..d9186c5 100644
--- a/go/src/golang.org/x/net/ipv6/gen.go
+++ b/go/src/golang.org/x/net/ipv6/gen.go
@@ -52,12 +52,14 @@
 	if err != nil {
 		return err
 	}
-	switch runtime.GOOS {
-	case "dragonfly", "solaris":
-		// The ipv6 pacakge still supports go1.2, and so we
-		// need to take care of additional platforms in go1.3
-		// and above for working with go1.2.
+	// The ipv6 pacakge still supports go1.2, and so we need to
+	// take care of additional platforms in go1.3 and above for
+	// working with go1.2.
+	switch {
+	case runtime.GOOS == "dragonfly" || runtime.GOOS == "solaris":
 		b = bytes.Replace(b, []byte("package ipv6\n"), []byte("// +build "+runtime.GOOS+"\n\npackage ipv6\n"), 1)
+	case runtime.GOOS == "linux" && (runtime.GOARCH == "arm64" || runtime.GOARCH == "ppc64" || runtime.GOARCH == "ppc64le"):
+		b = bytes.Replace(b, []byte("package ipv6\n"), []byte("// +build "+runtime.GOOS+","+runtime.GOARCH+"\n\npackage ipv6\n"), 1)
 	}
 	b, err = format.Source(b)
 	if err != nil {
diff --git a/go/src/golang.org/x/net/ipv6/icmp_test.go b/go/src/golang.org/x/net/ipv6/icmp_test.go
index 76e02dc..e192d6d 100644
--- a/go/src/golang.org/x/net/ipv6/icmp_test.go
+++ b/go/src/golang.org/x/net/ipv6/icmp_test.go
@@ -6,11 +6,11 @@
 
 import (
 	"net"
-	"os"
 	"reflect"
 	"runtime"
 	"testing"
 
+	"golang.org/x/net/internal/nettest"
 	"golang.org/x/net/ipv6"
 )
 
@@ -35,7 +35,7 @@
 func TestICMPFilter(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 
 	var f ipv6.ICMPFilter
@@ -62,13 +62,13 @@
 func TestSetICMPFilter(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 
 	c, err := net.ListenPacket("ip6:ipv6-icmp", "::1")
diff --git a/go/src/golang.org/x/net/ipv6/multicast_test.go b/go/src/golang.org/x/net/ipv6/multicast_test.go
index 768f404..fc10ce1 100644
--- a/go/src/golang.org/x/net/ipv6/multicast_test.go
+++ b/go/src/golang.org/x/net/ipv6/multicast_test.go
@@ -31,16 +31,16 @@
 	switch runtime.GOOS {
 	case "freebsd": // due to a bug on loopback marking
 		// See http://www.freebsd.org/cgi/query-pr.cgi?pr=180065.
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
 	}
 	ifi := nettest.RoutedInterface("ip6", net.FlagUp|net.FlagMulticast|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
 	for _, tt := range packetConnReadWriteMulticastUDPTests {
@@ -64,7 +64,7 @@
 				switch runtime.GOOS {
 				case "freebsd", "linux":
 				default: // platforms that don't support MLDv2 fail here
-					t.Logf("not supported on %q", runtime.GOOS)
+					t.Logf("not supported on %s", runtime.GOOS)
 					continue
 				}
 				t.Fatal(err)
@@ -95,7 +95,7 @@
 		for i, toggle := range []bool{true, false, true} {
 			if err := p.SetControlMessage(cf, toggle); err != nil {
 				if nettest.ProtocolNotSupported(err) {
-					t.Logf("not supported on %q", runtime.GOOS)
+					t.Logf("not supported on %s", runtime.GOOS)
 					continue
 				}
 				t.Fatal(err)
@@ -133,19 +133,19 @@
 	switch runtime.GOOS {
 	case "freebsd": // due to a bug on loopback marking
 		// See http://www.freebsd.org/cgi/query-pr.cgi?pr=180065.
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 	ifi := nettest.RoutedInterface("ip6", net.FlagUp|net.FlagMulticast|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
 	for _, tt := range packetConnReadWriteMulticastICMPTests {
@@ -168,7 +168,7 @@
 				switch runtime.GOOS {
 				case "freebsd", "linux":
 				default: // platforms that don't support MLDv2 fail here
-					t.Logf("not supported on %q", runtime.GOOS)
+					t.Logf("not supported on %s", runtime.GOOS)
 					continue
 				}
 				t.Fatal(err)
@@ -228,7 +228,7 @@
 			}
 			if err := p.SetControlMessage(cf, toggle); err != nil {
 				if nettest.ProtocolNotSupported(err) {
-					t.Logf("not supported on %q", runtime.GOOS)
+					t.Logf("not supported on %s", runtime.GOOS)
 					continue
 				}
 				t.Fatal(err)
@@ -246,7 +246,7 @@
 			if n, cm, _, err := p.ReadFrom(rb); err != nil {
 				switch runtime.GOOS {
 				case "darwin": // older darwin kernels have some limitation on receiving icmp packet through raw socket
-					t.Logf("not supported on %q", runtime.GOOS)
+					t.Logf("not supported on %s", runtime.GOOS)
 					continue
 				}
 				t.Fatal(err)
diff --git a/go/src/golang.org/x/net/ipv6/multicastlistener_test.go b/go/src/golang.org/x/net/ipv6/multicastlistener_test.go
index 78393bf..9711f75 100644
--- a/go/src/golang.org/x/net/ipv6/multicastlistener_test.go
+++ b/go/src/golang.org/x/net/ipv6/multicastlistener_test.go
@@ -7,7 +7,6 @@
 import (
 	"fmt"
 	"net"
-	"os"
 	"runtime"
 	"testing"
 
@@ -24,7 +23,7 @@
 func TestUDPSinglePacketConnWithMultipleGroupListeners(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
@@ -64,7 +63,7 @@
 func TestUDPMultiplePacketConnWithMultipleGroupListeners(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
@@ -116,7 +115,7 @@
 func TestUDPPerInterfaceSinglePacketConnWithSingleGroupListener(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
@@ -159,13 +158,13 @@
 func TestIPSinglePacketConnWithSingleGroupListener(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 
 	c, err := net.ListenPacket("ip6:ipv6-icmp", "::") // wildcard address
@@ -201,15 +200,15 @@
 func TestIPPerInterfaceSinglePacketConnWithSingleGroupListener(t *testing.T) {
 	switch runtime.GOOS {
 	case "darwin", "dragonfly", "openbsd": // platforms that return fe80::1%lo0: bind: can't assign requested address
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 
 	gaddr := net.IPAddr{IP: net.ParseIP("ff02::114")} // see RFC 4727
diff --git a/go/src/golang.org/x/net/ipv6/multicastsockopt_test.go b/go/src/golang.org/x/net/ipv6/multicastsockopt_test.go
index 72e68a0..fe0e6e1 100644
--- a/go/src/golang.org/x/net/ipv6/multicastsockopt_test.go
+++ b/go/src/golang.org/x/net/ipv6/multicastsockopt_test.go
@@ -6,7 +6,6 @@
 
 import (
 	"net"
-	"os"
 	"runtime"
 	"testing"
 
@@ -28,19 +27,20 @@
 func TestPacketConnMulticastSocketOptions(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
 	}
 	ifi := nettest.RoutedInterface("ip6", net.FlagUp|net.FlagMulticast|net.FlagLoopback)
 	if ifi == nil {
-		t.Skipf("not available on %q", runtime.GOOS)
+		t.Skipf("not available on %s", runtime.GOOS)
 	}
 
+	m, ok := nettest.SupportsRawIPSocket()
 	for _, tt := range packetConnMulticastSocketOptionTests {
-		if tt.net == "ip6" && os.Getuid() != 0 {
-			t.Log("must be root")
+		if tt.net == "ip6" && !ok {
+			t.Log(m)
 			continue
 		}
 		c, err := net.ListenPacket(tt.net+tt.proto, tt.addr)
@@ -120,7 +120,7 @@
 		switch runtime.GOOS {
 		case "freebsd", "linux":
 		default: // platforms that don't support MLDv2 fail here
-			t.Logf("not supported on %q", runtime.GOOS)
+			t.Logf("not supported on %s", runtime.GOOS)
 			return
 		}
 		t.Error(err)
diff --git a/go/src/golang.org/x/net/ipv6/readwrite_test.go b/go/src/golang.org/x/net/ipv6/readwrite_test.go
index c5d295c..ff4ea2b 100644
--- a/go/src/golang.org/x/net/ipv6/readwrite_test.go
+++ b/go/src/golang.org/x/net/ipv6/readwrite_test.go
@@ -102,7 +102,7 @@
 func TestPacketConnConcurrentReadWriteUnicastUDP(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
@@ -127,7 +127,7 @@
 
 	if err := p.SetControlMessage(cf, true); err != nil { // probe before test
 		if nettest.ProtocolNotSupported(err) {
-			t.Skipf("not supported on %q", runtime.GOOS)
+			t.Skipf("not supported on %s", runtime.GOOS)
 		}
 		t.Fatal(err)
 	}
diff --git a/go/src/golang.org/x/net/ipv6/sockopt_ssmreq_unix.go b/go/src/golang.org/x/net/ipv6/sockopt_ssmreq_unix.go
index 8e1dcef..c64d6d5 100644
--- a/go/src/golang.org/x/net/ipv6/sockopt_ssmreq_unix.go
+++ b/go/src/golang.org/x/net/ipv6/sockopt_ssmreq_unix.go
@@ -12,13 +12,28 @@
 	"unsafe"
 )
 
+var freebsd32o64 bool
+
 func setsockoptGroupReq(fd int, opt *sockOpt, ifi *net.Interface, grp net.IP) error {
 	var gr sysGroupReq
 	if ifi != nil {
 		gr.Interface = uint32(ifi.Index)
 	}
 	gr.setGroup(grp)
-	return os.NewSyscallError("setsockopt", setsockopt(fd, opt.level, opt.name, unsafe.Pointer(&gr), sysSizeofGroupReq))
+	var p unsafe.Pointer
+	var l sysSockoptLen
+	if freebsd32o64 {
+		var d [sysSizeofGroupReq + 4]byte
+		s := (*[sysSizeofGroupReq]byte)(unsafe.Pointer(&gr))
+		copy(d[:4], s[:4])
+		copy(d[8:], s[4:])
+		p = unsafe.Pointer(&d[0])
+		l = sysSizeofGroupReq + 4
+	} else {
+		p = unsafe.Pointer(&gr)
+		l = sysSizeofGroupReq
+	}
+	return os.NewSyscallError("setsockopt", setsockopt(fd, opt.level, opt.name, p, l))
 }
 
 func setsockoptGroupSourceReq(fd int, opt *sockOpt, ifi *net.Interface, grp, src net.IP) error {
@@ -27,5 +42,18 @@
 		gsr.Interface = uint32(ifi.Index)
 	}
 	gsr.setSourceGroup(grp, src)
-	return os.NewSyscallError("setsockopt", setsockopt(fd, opt.level, opt.name, unsafe.Pointer(&gsr), sysSizeofGroupSourceReq))
+	var p unsafe.Pointer
+	var l sysSockoptLen
+	if freebsd32o64 {
+		var d [sysSizeofGroupSourceReq + 4]byte
+		s := (*[sysSizeofGroupSourceReq]byte)(unsafe.Pointer(&gsr))
+		copy(d[:4], s[:4])
+		copy(d[8:], s[4:])
+		p = unsafe.Pointer(&d[0])
+		l = sysSizeofGroupSourceReq + 4
+	} else {
+		p = unsafe.Pointer(&gsr)
+		l = sysSizeofGroupSourceReq
+	}
+	return os.NewSyscallError("setsockopt", setsockopt(fd, opt.level, opt.name, p, l))
 }
diff --git a/go/src/golang.org/x/net/ipv6/sockopt_test.go b/go/src/golang.org/x/net/ipv6/sockopt_test.go
index 96048bf..9c21903 100644
--- a/go/src/golang.org/x/net/ipv6/sockopt_test.go
+++ b/go/src/golang.org/x/net/ipv6/sockopt_test.go
@@ -7,7 +7,6 @@
 import (
 	"fmt"
 	"net"
-	"os"
 	"runtime"
 	"testing"
 
@@ -21,7 +20,7 @@
 func TestConnInitiatorPathMTU(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
@@ -45,7 +44,7 @@
 	if pmtu, err := ipv6.NewConn(c).PathMTU(); err != nil {
 		switch runtime.GOOS {
 		case "darwin": // older darwin kernels don't support IPV6_PATHMTU option
-			t.Logf("not supported on %q", runtime.GOOS)
+			t.Logf("not supported on %s", runtime.GOOS)
 		default:
 			t.Fatal(err)
 		}
@@ -59,7 +58,7 @@
 func TestConnResponderPathMTU(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
@@ -83,7 +82,7 @@
 	if pmtu, err := ipv6.NewConn(c).PathMTU(); err != nil {
 		switch runtime.GOOS {
 		case "darwin": // older darwin kernels don't support IPV6_PATHMTU option
-			t.Logf("not supported on %q", runtime.GOOS)
+			t.Logf("not supported on %s", runtime.GOOS)
 		default:
 			t.Fatal(err)
 		}
@@ -97,13 +96,13 @@
 func TestPacketConnChecksum(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 
 	c, err := net.ListenPacket(fmt.Sprintf("ip6:%d", iana.ProtocolOSPFIGP), "::") // OSPF for IPv6
diff --git a/go/src/golang.org/x/net/ipv6/sys_freebsd.go b/go/src/golang.org/x/net/ipv6/sys_freebsd.go
index abf3bb9..b68725c 100644
--- a/go/src/golang.org/x/net/ipv6/sys_freebsd.go
+++ b/go/src/golang.org/x/net/ipv6/sys_freebsd.go
@@ -6,6 +6,8 @@
 
 import (
 	"net"
+	"runtime"
+	"strings"
 	"syscall"
 	"unsafe"
 
@@ -45,6 +47,18 @@
 	}
 )
 
+func init() {
+	if runtime.GOOS == "freebsd" && runtime.GOARCH == "386" {
+		archs, _ := syscall.Sysctl("kern.supported_archs")
+		for _, s := range strings.Fields(archs) {
+			if s == "amd64" {
+				freebsd32o64 = true
+				break
+			}
+		}
+	}
+}
+
 func (sa *sysSockaddrInet6) setSockaddr(ip net.IP, i int) {
 	sa.Len = sysSizeofSockaddrInet6
 	sa.Family = syscall.AF_INET6
diff --git a/go/src/golang.org/x/net/ipv6/syscall_unix.go b/go/src/golang.org/x/net/ipv6/syscall_unix.go
index 73b949f..a2bd836 100644
--- a/go/src/golang.org/x/net/ipv6/syscall_unix.go
+++ b/go/src/golang.org/x/net/ipv6/syscall_unix.go
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build darwin dragonfly freebsd linux,amd64 linux,arm netbsd openbsd
+// +build darwin dragonfly freebsd linux,!386 netbsd openbsd
 
 package ipv6
 
diff --git a/go/src/golang.org/x/net/ipv6/unicast_test.go b/go/src/golang.org/x/net/ipv6/unicast_test.go
index 6394965..6165698 100644
--- a/go/src/golang.org/x/net/ipv6/unicast_test.go
+++ b/go/src/golang.org/x/net/ipv6/unicast_test.go
@@ -21,7 +21,7 @@
 func TestPacketConnReadWriteUnicastUDP(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
@@ -54,7 +54,7 @@
 	for i, toggle := range []bool{true, false, true} {
 		if err := p.SetControlMessage(cf, toggle); err != nil {
 			if nettest.ProtocolNotSupported(err) {
-				t.Skipf("not supported on %q", runtime.GOOS)
+				t.Skipf("not supported on %s", runtime.GOOS)
 			}
 			t.Fatal(err)
 		}
@@ -84,13 +84,13 @@
 func TestPacketConnReadWriteUnicastICMP(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
 	}
-	if os.Getuid() != 0 {
-		t.Skip("must be root")
+	if m, ok := nettest.SupportsRawIPSocket(); !ok {
+		t.Skip(m)
 	}
 
 	c, err := net.ListenPacket("ip6:ipv6-icmp", "::1")
@@ -149,7 +149,7 @@
 		}
 		if err := p.SetControlMessage(cf, toggle); err != nil {
 			if nettest.ProtocolNotSupported(err) {
-				t.Skipf("not supported on %q", runtime.GOOS)
+				t.Skipf("not supported on %s", runtime.GOOS)
 			}
 			t.Fatal(err)
 		}
@@ -169,7 +169,7 @@
 		if n, cm, _, err := p.ReadFrom(rb); err != nil {
 			switch runtime.GOOS {
 			case "darwin": // older darwin kernels have some limitation on receiving icmp packet through raw socket
-				t.Logf("not supported on %q", runtime.GOOS)
+				t.Logf("not supported on %s", runtime.GOOS)
 				continue
 			}
 			t.Fatal(err)
diff --git a/go/src/golang.org/x/net/ipv6/unicastsockopt_test.go b/go/src/golang.org/x/net/ipv6/unicastsockopt_test.go
index 97e71a7..7bb2e44 100644
--- a/go/src/golang.org/x/net/ipv6/unicastsockopt_test.go
+++ b/go/src/golang.org/x/net/ipv6/unicastsockopt_test.go
@@ -6,18 +6,18 @@
 
 import (
 	"net"
-	"os"
 	"runtime"
 	"testing"
 
 	"golang.org/x/net/internal/iana"
+	"golang.org/x/net/internal/nettest"
 	"golang.org/x/net/ipv6"
 )
 
 func TestConnUnicastSocketOptions(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
@@ -53,15 +53,17 @@
 func TestPacketConnUnicastSocketOptions(t *testing.T) {
 	switch runtime.GOOS {
 	case "nacl", "plan9", "solaris", "windows":
-		t.Skipf("not supported on %q", runtime.GOOS)
+		t.Skipf("not supported on %s", runtime.GOOS)
 	}
 	if !supportsIPv6 {
 		t.Skip("ipv6 is not supported")
 	}
 
+	m, ok := nettest.SupportsRawIPSocket()
 	for _, tt := range packetConnUnicastSocketOptionTests {
-		if tt.net == "ip6" && os.Getuid() != 0 {
-			t.Skip("must be root")
+		if tt.net == "ip6" && !ok {
+			t.Log(m)
+			continue
 		}
 		c, err := net.ListenPacket(tt.net+tt.proto, tt.addr)
 		if err != nil {
@@ -85,7 +87,7 @@
 	if err := c.SetTrafficClass(tclass); err != nil {
 		switch runtime.GOOS {
 		case "darwin": // older darwin kernels don't support IPV6_TCLASS option
-			t.Logf("not supported on %q", runtime.GOOS)
+			t.Logf("not supported on %s", runtime.GOOS)
 			goto next
 		}
 		t.Fatal(err)
diff --git a/go/src/golang.org/x/net/ipv6/zsys_freebsd_arm.go b/go/src/golang.org/x/net/ipv6/zsys_freebsd_arm.go
index 4ace96f..4a62c2d 100644
--- a/go/src/golang.org/x/net/ipv6/zsys_freebsd_arm.go
+++ b/go/src/golang.org/x/net/ipv6/zsys_freebsd_arm.go
@@ -68,8 +68,8 @@
 	sysSizeofIPv6Mtuinfo     = 0x20
 
 	sysSizeofIPv6Mreq       = 0x14
-	sysSizeofGroupReq       = 0x84
-	sysSizeofGroupSourceReq = 0x104
+	sysSizeofGroupReq       = 0x88
+	sysSizeofGroupSourceReq = 0x108
 
 	sysSizeofICMPv6Filter = 0x20
 )
@@ -108,11 +108,13 @@
 
 type sysGroupReq struct {
 	Interface uint32
+	Pad_cgo_0 [4]byte
 	Group     sysSockaddrStorage
 }
 
 type sysGroupSourceReq struct {
 	Interface uint32
+	Pad_cgo_0 [4]byte
 	Group     sysSockaddrStorage
 	Source    sysSockaddrStorage
 }
diff --git a/go/src/golang.org/x/net/ipv6/zsys_linux_arm64.go b/go/src/golang.org/x/net/ipv6/zsys_linux_arm64.go
new file mode 100644
index 0000000..ab10464
--- /dev/null
+++ b/go/src/golang.org/x/net/ipv6/zsys_linux_arm64.go
@@ -0,0 +1,156 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs defs_linux.go
+
+// +build linux,arm64
+
+package ipv6
+
+const (
+	sysIPV6_ADDRFORM       = 0x1
+	sysIPV6_2292PKTINFO    = 0x2
+	sysIPV6_2292HOPOPTS    = 0x3
+	sysIPV6_2292DSTOPTS    = 0x4
+	sysIPV6_2292RTHDR      = 0x5
+	sysIPV6_2292PKTOPTIONS = 0x6
+	sysIPV6_CHECKSUM       = 0x7
+	sysIPV6_2292HOPLIMIT   = 0x8
+	sysIPV6_NEXTHOP        = 0x9
+	sysIPV6_FLOWINFO       = 0xb
+
+	sysIPV6_UNICAST_HOPS        = 0x10
+	sysIPV6_MULTICAST_IF        = 0x11
+	sysIPV6_MULTICAST_HOPS      = 0x12
+	sysIPV6_MULTICAST_LOOP      = 0x13
+	sysIPV6_ADD_MEMBERSHIP      = 0x14
+	sysIPV6_DROP_MEMBERSHIP     = 0x15
+	sysMCAST_JOIN_GROUP         = 0x2a
+	sysMCAST_LEAVE_GROUP        = 0x2d
+	sysMCAST_JOIN_SOURCE_GROUP  = 0x2e
+	sysMCAST_LEAVE_SOURCE_GROUP = 0x2f
+	sysMCAST_BLOCK_SOURCE       = 0x2b
+	sysMCAST_UNBLOCK_SOURCE     = 0x2c
+	sysMCAST_MSFILTER           = 0x30
+	sysIPV6_ROUTER_ALERT        = 0x16
+	sysIPV6_MTU_DISCOVER        = 0x17
+	sysIPV6_MTU                 = 0x18
+	sysIPV6_RECVERR             = 0x19
+	sysIPV6_V6ONLY              = 0x1a
+	sysIPV6_JOIN_ANYCAST        = 0x1b
+	sysIPV6_LEAVE_ANYCAST       = 0x1c
+
+	sysIPV6_FLOWLABEL_MGR = 0x20
+	sysIPV6_FLOWINFO_SEND = 0x21
+
+	sysIPV6_IPSEC_POLICY = 0x22
+	sysIPV6_XFRM_POLICY  = 0x23
+
+	sysIPV6_RECVPKTINFO  = 0x31
+	sysIPV6_PKTINFO      = 0x32
+	sysIPV6_RECVHOPLIMIT = 0x33
+	sysIPV6_HOPLIMIT     = 0x34
+	sysIPV6_RECVHOPOPTS  = 0x35
+	sysIPV6_HOPOPTS      = 0x36
+	sysIPV6_RTHDRDSTOPTS = 0x37
+	sysIPV6_RECVRTHDR    = 0x38
+	sysIPV6_RTHDR        = 0x39
+	sysIPV6_RECVDSTOPTS  = 0x3a
+	sysIPV6_DSTOPTS      = 0x3b
+	sysIPV6_RECVPATHMTU  = 0x3c
+	sysIPV6_PATHMTU      = 0x3d
+	sysIPV6_DONTFRAG     = 0x3e
+
+	sysIPV6_RECVTCLASS = 0x42
+	sysIPV6_TCLASS     = 0x43
+
+	sysIPV6_ADDR_PREFERENCES = 0x48
+
+	sysIPV6_PREFER_SRC_TMP            = 0x1
+	sysIPV6_PREFER_SRC_PUBLIC         = 0x2
+	sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100
+	sysIPV6_PREFER_SRC_COA            = 0x4
+	sysIPV6_PREFER_SRC_HOME           = 0x400
+	sysIPV6_PREFER_SRC_CGA            = 0x8
+	sysIPV6_PREFER_SRC_NONCGA         = 0x800
+
+	sysIPV6_MINHOPCOUNT = 0x49
+
+	sysIPV6_ORIGDSTADDR     = 0x4a
+	sysIPV6_RECVORIGDSTADDR = 0x4a
+	sysIPV6_TRANSPARENT     = 0x4b
+	sysIPV6_UNICAST_IF      = 0x4c
+
+	sysICMPV6_FILTER = 0x1
+
+	sysICMPV6_FILTER_BLOCK       = 0x1
+	sysICMPV6_FILTER_PASS        = 0x2
+	sysICMPV6_FILTER_BLOCKOTHERS = 0x3
+	sysICMPV6_FILTER_PASSONLY    = 0x4
+
+	sysSizeofKernelSockaddrStorage = 0x80
+	sysSizeofSockaddrInet6         = 0x1c
+	sysSizeofInet6Pktinfo          = 0x14
+	sysSizeofIPv6Mtuinfo           = 0x20
+	sysSizeofIPv6FlowlabelReq      = 0x20
+
+	sysSizeofIPv6Mreq       = 0x14
+	sysSizeofGroupReq       = 0x88
+	sysSizeofGroupSourceReq = 0x108
+
+	sysSizeofICMPv6Filter = 0x20
+)
+
+type sysKernelSockaddrStorage struct {
+	Family  uint16
+	X__data [126]int8
+}
+
+type sysSockaddrInet6 struct {
+	Family   uint16
+	Port     uint16
+	Flowinfo uint32
+	Addr     [16]byte /* in6_addr */
+	Scope_id uint32
+}
+
+type sysInet6Pktinfo struct {
+	Addr    [16]byte /* in6_addr */
+	Ifindex int32
+}
+
+type sysIPv6Mtuinfo struct {
+	Addr sysSockaddrInet6
+	Mtu  uint32
+}
+
+type sysIPv6FlowlabelReq struct {
+	Dst        [16]byte /* in6_addr */
+	Label      uint32
+	Action     uint8
+	Share      uint8
+	Flags      uint16
+	Expires    uint16
+	Linger     uint16
+	X__flr_pad uint32
+}
+
+type sysIPv6Mreq struct {
+	Multiaddr [16]byte /* in6_addr */
+	Ifindex   int32
+}
+
+type sysGroupReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+}
+
+type sysGroupSourceReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+	Source    sysKernelSockaddrStorage
+}
+
+type sysICMPv6Filter struct {
+	Data [8]uint32
+}
diff --git a/go/src/golang.org/x/net/ipv6/zsys_linux_ppc64.go b/go/src/golang.org/x/net/ipv6/zsys_linux_ppc64.go
new file mode 100644
index 0000000..b99b8a5
--- /dev/null
+++ b/go/src/golang.org/x/net/ipv6/zsys_linux_ppc64.go
@@ -0,0 +1,156 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs defs_linux.go
+
+// +build linux,ppc64
+
+package ipv6
+
+const (
+	sysIPV6_ADDRFORM       = 0x1
+	sysIPV6_2292PKTINFO    = 0x2
+	sysIPV6_2292HOPOPTS    = 0x3
+	sysIPV6_2292DSTOPTS    = 0x4
+	sysIPV6_2292RTHDR      = 0x5
+	sysIPV6_2292PKTOPTIONS = 0x6
+	sysIPV6_CHECKSUM       = 0x7
+	sysIPV6_2292HOPLIMIT   = 0x8
+	sysIPV6_NEXTHOP        = 0x9
+	sysIPV6_FLOWINFO       = 0xb
+
+	sysIPV6_UNICAST_HOPS        = 0x10
+	sysIPV6_MULTICAST_IF        = 0x11
+	sysIPV6_MULTICAST_HOPS      = 0x12
+	sysIPV6_MULTICAST_LOOP      = 0x13
+	sysIPV6_ADD_MEMBERSHIP      = 0x14
+	sysIPV6_DROP_MEMBERSHIP     = 0x15
+	sysMCAST_JOIN_GROUP         = 0x2a
+	sysMCAST_LEAVE_GROUP        = 0x2d
+	sysMCAST_JOIN_SOURCE_GROUP  = 0x2e
+	sysMCAST_LEAVE_SOURCE_GROUP = 0x2f
+	sysMCAST_BLOCK_SOURCE       = 0x2b
+	sysMCAST_UNBLOCK_SOURCE     = 0x2c
+	sysMCAST_MSFILTER           = 0x30
+	sysIPV6_ROUTER_ALERT        = 0x16
+	sysIPV6_MTU_DISCOVER        = 0x17
+	sysIPV6_MTU                 = 0x18
+	sysIPV6_RECVERR             = 0x19
+	sysIPV6_V6ONLY              = 0x1a
+	sysIPV6_JOIN_ANYCAST        = 0x1b
+	sysIPV6_LEAVE_ANYCAST       = 0x1c
+
+	sysIPV6_FLOWLABEL_MGR = 0x20
+	sysIPV6_FLOWINFO_SEND = 0x21
+
+	sysIPV6_IPSEC_POLICY = 0x22
+	sysIPV6_XFRM_POLICY  = 0x23
+
+	sysIPV6_RECVPKTINFO  = 0x31
+	sysIPV6_PKTINFO      = 0x32
+	sysIPV6_RECVHOPLIMIT = 0x33
+	sysIPV6_HOPLIMIT     = 0x34
+	sysIPV6_RECVHOPOPTS  = 0x35
+	sysIPV6_HOPOPTS      = 0x36
+	sysIPV6_RTHDRDSTOPTS = 0x37
+	sysIPV6_RECVRTHDR    = 0x38
+	sysIPV6_RTHDR        = 0x39
+	sysIPV6_RECVDSTOPTS  = 0x3a
+	sysIPV6_DSTOPTS      = 0x3b
+	sysIPV6_RECVPATHMTU  = 0x3c
+	sysIPV6_PATHMTU      = 0x3d
+	sysIPV6_DONTFRAG     = 0x3e
+
+	sysIPV6_RECVTCLASS = 0x42
+	sysIPV6_TCLASS     = 0x43
+
+	sysIPV6_ADDR_PREFERENCES = 0x48
+
+	sysIPV6_PREFER_SRC_TMP            = 0x1
+	sysIPV6_PREFER_SRC_PUBLIC         = 0x2
+	sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100
+	sysIPV6_PREFER_SRC_COA            = 0x4
+	sysIPV6_PREFER_SRC_HOME           = 0x400
+	sysIPV6_PREFER_SRC_CGA            = 0x8
+	sysIPV6_PREFER_SRC_NONCGA         = 0x800
+
+	sysIPV6_MINHOPCOUNT = 0x49
+
+	sysIPV6_ORIGDSTADDR     = 0x4a
+	sysIPV6_RECVORIGDSTADDR = 0x4a
+	sysIPV6_TRANSPARENT     = 0x4b
+	sysIPV6_UNICAST_IF      = 0x4c
+
+	sysICMPV6_FILTER = 0x1
+
+	sysICMPV6_FILTER_BLOCK       = 0x1
+	sysICMPV6_FILTER_PASS        = 0x2
+	sysICMPV6_FILTER_BLOCKOTHERS = 0x3
+	sysICMPV6_FILTER_PASSONLY    = 0x4
+
+	sysSizeofKernelSockaddrStorage = 0x80
+	sysSizeofSockaddrInet6         = 0x1c
+	sysSizeofInet6Pktinfo          = 0x14
+	sysSizeofIPv6Mtuinfo           = 0x20
+	sysSizeofIPv6FlowlabelReq      = 0x20
+
+	sysSizeofIPv6Mreq       = 0x14
+	sysSizeofGroupReq       = 0x88
+	sysSizeofGroupSourceReq = 0x108
+
+	sysSizeofICMPv6Filter = 0x20
+)
+
+type sysKernelSockaddrStorage struct {
+	Family  uint16
+	X__data [126]int8
+}
+
+type sysSockaddrInet6 struct {
+	Family   uint16
+	Port     uint16
+	Flowinfo uint32
+	Addr     [16]byte /* in6_addr */
+	Scope_id uint32
+}
+
+type sysInet6Pktinfo struct {
+	Addr    [16]byte /* in6_addr */
+	Ifindex int32
+}
+
+type sysIPv6Mtuinfo struct {
+	Addr sysSockaddrInet6
+	Mtu  uint32
+}
+
+type sysIPv6FlowlabelReq struct {
+	Dst        [16]byte /* in6_addr */
+	Label      uint32
+	Action     uint8
+	Share      uint8
+	Flags      uint16
+	Expires    uint16
+	Linger     uint16
+	X__flr_pad uint32
+}
+
+type sysIPv6Mreq struct {
+	Multiaddr [16]byte /* in6_addr */
+	Ifindex   int32
+}
+
+type sysGroupReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+}
+
+type sysGroupSourceReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+	Source    sysKernelSockaddrStorage
+}
+
+type sysICMPv6Filter struct {
+	Data [8]uint32
+}
diff --git a/go/src/golang.org/x/net/ipv6/zsys_linux_ppc64le.go b/go/src/golang.org/x/net/ipv6/zsys_linux_ppc64le.go
new file mode 100644
index 0000000..992b56e
--- /dev/null
+++ b/go/src/golang.org/x/net/ipv6/zsys_linux_ppc64le.go
@@ -0,0 +1,156 @@
+// Created by cgo -godefs - DO NOT EDIT
+// cgo -godefs defs_linux.go
+
+// +build linux,ppc64le
+
+package ipv6
+
+const (
+	sysIPV6_ADDRFORM       = 0x1
+	sysIPV6_2292PKTINFO    = 0x2
+	sysIPV6_2292HOPOPTS    = 0x3
+	sysIPV6_2292DSTOPTS    = 0x4
+	sysIPV6_2292RTHDR      = 0x5
+	sysIPV6_2292PKTOPTIONS = 0x6
+	sysIPV6_CHECKSUM       = 0x7
+	sysIPV6_2292HOPLIMIT   = 0x8
+	sysIPV6_NEXTHOP        = 0x9
+	sysIPV6_FLOWINFO       = 0xb
+
+	sysIPV6_UNICAST_HOPS        = 0x10
+	sysIPV6_MULTICAST_IF        = 0x11
+	sysIPV6_MULTICAST_HOPS      = 0x12
+	sysIPV6_MULTICAST_LOOP      = 0x13
+	sysIPV6_ADD_MEMBERSHIP      = 0x14
+	sysIPV6_DROP_MEMBERSHIP     = 0x15
+	sysMCAST_JOIN_GROUP         = 0x2a
+	sysMCAST_LEAVE_GROUP        = 0x2d
+	sysMCAST_JOIN_SOURCE_GROUP  = 0x2e
+	sysMCAST_LEAVE_SOURCE_GROUP = 0x2f
+	sysMCAST_BLOCK_SOURCE       = 0x2b
+	sysMCAST_UNBLOCK_SOURCE     = 0x2c
+	sysMCAST_MSFILTER           = 0x30
+	sysIPV6_ROUTER_ALERT        = 0x16
+	sysIPV6_MTU_DISCOVER        = 0x17
+	sysIPV6_MTU                 = 0x18
+	sysIPV6_RECVERR             = 0x19
+	sysIPV6_V6ONLY              = 0x1a
+	sysIPV6_JOIN_ANYCAST        = 0x1b
+	sysIPV6_LEAVE_ANYCAST       = 0x1c
+
+	sysIPV6_FLOWLABEL_MGR = 0x20
+	sysIPV6_FLOWINFO_SEND = 0x21
+
+	sysIPV6_IPSEC_POLICY = 0x22
+	sysIPV6_XFRM_POLICY  = 0x23
+
+	sysIPV6_RECVPKTINFO  = 0x31
+	sysIPV6_PKTINFO      = 0x32
+	sysIPV6_RECVHOPLIMIT = 0x33
+	sysIPV6_HOPLIMIT     = 0x34
+	sysIPV6_RECVHOPOPTS  = 0x35
+	sysIPV6_HOPOPTS      = 0x36
+	sysIPV6_RTHDRDSTOPTS = 0x37
+	sysIPV6_RECVRTHDR    = 0x38
+	sysIPV6_RTHDR        = 0x39
+	sysIPV6_RECVDSTOPTS  = 0x3a
+	sysIPV6_DSTOPTS      = 0x3b
+	sysIPV6_RECVPATHMTU  = 0x3c
+	sysIPV6_PATHMTU      = 0x3d
+	sysIPV6_DONTFRAG     = 0x3e
+
+	sysIPV6_RECVTCLASS = 0x42
+	sysIPV6_TCLASS     = 0x43
+
+	sysIPV6_ADDR_PREFERENCES = 0x48
+
+	sysIPV6_PREFER_SRC_TMP            = 0x1
+	sysIPV6_PREFER_SRC_PUBLIC         = 0x2
+	sysIPV6_PREFER_SRC_PUBTMP_DEFAULT = 0x100
+	sysIPV6_PREFER_SRC_COA            = 0x4
+	sysIPV6_PREFER_SRC_HOME           = 0x400
+	sysIPV6_PREFER_SRC_CGA            = 0x8
+	sysIPV6_PREFER_SRC_NONCGA         = 0x800
+
+	sysIPV6_MINHOPCOUNT = 0x49
+
+	sysIPV6_ORIGDSTADDR     = 0x4a
+	sysIPV6_RECVORIGDSTADDR = 0x4a
+	sysIPV6_TRANSPARENT     = 0x4b
+	sysIPV6_UNICAST_IF      = 0x4c
+
+	sysICMPV6_FILTER = 0x1
+
+	sysICMPV6_FILTER_BLOCK       = 0x1
+	sysICMPV6_FILTER_PASS        = 0x2
+	sysICMPV6_FILTER_BLOCKOTHERS = 0x3
+	sysICMPV6_FILTER_PASSONLY    = 0x4
+
+	sysSizeofKernelSockaddrStorage = 0x80
+	sysSizeofSockaddrInet6         = 0x1c
+	sysSizeofInet6Pktinfo          = 0x14
+	sysSizeofIPv6Mtuinfo           = 0x20
+	sysSizeofIPv6FlowlabelReq      = 0x20
+
+	sysSizeofIPv6Mreq       = 0x14
+	sysSizeofGroupReq       = 0x88
+	sysSizeofGroupSourceReq = 0x108
+
+	sysSizeofICMPv6Filter = 0x20
+)
+
+type sysKernelSockaddrStorage struct {
+	Family  uint16
+	X__data [126]int8
+}
+
+type sysSockaddrInet6 struct {
+	Family   uint16
+	Port     uint16
+	Flowinfo uint32
+	Addr     [16]byte /* in6_addr */
+	Scope_id uint32
+}
+
+type sysInet6Pktinfo struct {
+	Addr    [16]byte /* in6_addr */
+	Ifindex int32
+}
+
+type sysIPv6Mtuinfo struct {
+	Addr sysSockaddrInet6
+	Mtu  uint32
+}
+
+type sysIPv6FlowlabelReq struct {
+	Dst        [16]byte /* in6_addr */
+	Label      uint32
+	Action     uint8
+	Share      uint8
+	Flags      uint16
+	Expires    uint16
+	Linger     uint16
+	X__flr_pad uint32
+}
+
+type sysIPv6Mreq struct {
+	Multiaddr [16]byte /* in6_addr */
+	Ifindex   int32
+}
+
+type sysGroupReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+}
+
+type sysGroupSourceReq struct {
+	Interface uint32
+	Pad_cgo_0 [4]byte
+	Group     sysKernelSockaddrStorage
+	Source    sysKernelSockaddrStorage
+}
+
+type sysICMPv6Filter struct {
+	Data [8]uint32
+}
diff --git a/go/src/golang.org/x/net/netutil/listen_test.go b/go/src/golang.org/x/net/netutil/listen_test.go
index ac87e0e..c0d5bc2 100644
--- a/go/src/golang.org/x/net/netutil/listen_test.go
+++ b/go/src/golang.org/x/net/netutil/listen_test.go
@@ -20,17 +20,20 @@
 	"sync/atomic"
 	"testing"
 	"time"
+
+	"golang.org/x/net/internal/nettest"
 )
 
 func TestLimitListener(t *testing.T) {
-	const (
-		max = 5
-		num = 200
-	)
+	const max = 5
+	attempts := (nettest.MaxOpenFiles() - max) / 2
+	if attempts > 256 { // maximum length of accept queue is 128 by default
+		attempts = 256
+	}
 
 	l, err := net.Listen("tcp", "127.0.0.1:0")
 	if err != nil {
-		t.Fatalf("Listen: %v", err)
+		t.Fatal(err)
 	}
 	defer l.Close()
 	l = LimitListener(l, max)
@@ -47,14 +50,14 @@
 
 	var wg sync.WaitGroup
 	var failed int32
-	for i := 0; i < num; i++ {
+	for i := 0; i < attempts; i++ {
 		wg.Add(1)
 		go func() {
 			defer wg.Done()
 			c := http.Client{Timeout: 3 * time.Second}
 			r, err := c.Get("http://" + l.Addr().String())
 			if err != nil {
-				t.Logf("Get: %v", err)
+				t.Log(err)
 				atomic.AddInt32(&failed, 1)
 				return
 			}
@@ -66,8 +69,8 @@
 
 	// We expect some Gets to fail as the kernel's accept queue is filled,
 	// but most should succeed.
-	if failed >= num/2 {
-		t.Errorf("too many Gets failed: %v", failed)
+	if int(failed) >= attempts/2 {
+		t.Errorf("%d requests failed within %d attempts", failed, attempts)
 	}
 }
 
diff --git a/go/src/golang.org/x/net/publicsuffix/table.go b/go/src/golang.org/x/net/publicsuffix/table.go
index 9f9a797..0e31569 100644
--- a/go/src/golang.org/x/net/publicsuffix/table.go
+++ b/go/src/golang.org/x/net/publicsuffix/table.go
@@ -2,7 +2,7 @@
 
 package publicsuffix
 
-const version = "publicsuffix.org's effective_tld_names.dat, hg revision f2c25ddbd1cf (2014-09-02)"
+const version = "publicsuffix.org's effective_tld_names.dat, hg revision 063babcbcbcc (2014-12-29)"
 
 const (
 	nodesBitsChildren   = 9
@@ -23,383 +23,400 @@
 )
 
 // numTLD is the number of top level domains.
-const numTLD = 819
+const numTLD = 1039
 
 // Text is the combined text of all labels.
-const text = "bievatmpanamabifukagawatch-and-clockashiharabihorologyoutubeppub" +
-	"olognagatorockartuzyukiinetargiitatebayashichinohelparachutingje" +
-	"sdalipetskashiwarabikedavvenjargalsacehimejiiyamanobeeldengeluid" +
-	"urhamburgjovikashiwazakiyosatokamachildrensgardenavigationavuotn" +
-	"akatsugawabilbaogakievenassisibenikihokumakogengerdalaskanitteda" +
-	"lvdalivornobirabillustrationavyatkananporoceanographics3-website" +
-	"-ap-southeast-1bioceanographiquembroideryukuhashimogosenayorohta" +
-	"waramotoineppulmemerckasukabeerbirdartdecoalondonetskasumigauraw" +
-	"a-mazowszexchangetmyipirangausdaloppadovald-aostarostwodzislaweg" +
-	"rowestfalenfshostre-totenkawabirkenesoddtangenoamishirasatodayur" +
-	"ihonjoyoitakarazukamikoaniihamatamakawajimarylhurstockholmestran" +
-	"dvrdnsdojogaszkolahppiacenzakopanewyorkshireggiocalabriabirthpla" +
-	"cemergencyberlevagangaviikarugaulardalorenskoglassassinationalhe" +
-	"ritagematsubarakawachinaganoharaogashimadachicagobodoesntexistan" +
-	"bullensakerbjarkoyusuharabjerkreimmobilienvironmentalconservatio" +
-	"nhs3-website-ap-southeast-2bjugniizabloombergbauernikkoebenhavni" +
-	"kolaevenes3-website-eu-west-1bluenoharabmwfarsundyndns-blogdns3-" +
-	"website-sa-east-1bnpparibaselburgliwicemrbomloabaths3-website-us" +
-	"-east-1bondyndns-freemasonryokamikawanehonbetsuruokamakurazakira" +
-	"bonninohelsinkitakyushuaiabostonakijinsekikogenovarabotanicalgar" +
-	"deninomiyakonojosoyromurabotanicgardenirasakindianapolis-a-blogg" +
-	"erbotanycargodolls3-website-us-gov-west-1boutiquebecarrierbozent" +
-	"sujiiepilepsyzranzanishiawakurabrandywinevalleyusuisservebbs3-we" +
-	"bsite-us-west-1brasiljan-mayenishiazaindianmarketinglobalatinabe" +
-	"auxartsandcrafts3-website-us-west-2bremangerbresciabrindisicilia" +
-	"bristolgamvikasuyameiwamashikeventsakuhokksundyndns-homeftpacces" +
-	"sakuragawabritishcolumbialowiezachpomorskienishigomutashinaindus" +
-	"triesteamlierneustargardyndns-ip6boneat-urlezajsk-uralsk12000bro" +
-	"adcastleasinglesakurainfinitinfoggiabroke-itarnobrzegloboknowsit" +
-	"allfinanz-2brokerbronnoysundyndns-mailosangelesakyotanabellevued" +
-	"atinglogowhalingloppenzaokinawashirosatobamagnitkafjordyndns-off" +
-	"ice-on-the-webcambridgeorgiabrumunddaloteneinsurepbodynathomebui" +
-	"ltarumizusawabrunelblagdenesnaaseralingenkainanaejrietiendaburya" +
-	"tiabrusselsalangenishiharabruxellesjamalborkdalottokigawabryansk" +
-	"jervoyageometre-experts-comptablesalatrobellunordkappgmailouvrev" +
-	"iewsaltdalowiczest-a-la-masionishiizunazukintelligenceverbankasz" +
-	"ubyuulsangoslombardyndns-at-workinggroupowiatatarstanishikatakat" +
-	"orinternationalfirearmsalvadordalikescandyndns-at-homednsalzburg" +
-	"minakamichigangwonishikatsuraginuyamanouchikuhokuryugasakitcheni" +
-	"shikawazukanazawabrynewhampshirecreationishimerabuyshousesamegaw" +
-	"abuzenishinomiyashironostrodabuzzgorabvalle-daostavernishinoomot" +
-	"egostrolekaneyamazoevje-og-hornnesamnangerbwhoswholdingsmolangev" +
-	"agrarboretumbriabzhitomirkutsklepparaglidingmodellingmxjeonnamer" +
-	"ikawauexhibitionishinoshimacivilisationcivilizationcivilwarmiami" +
-	"buildingrongaclaimsantacruzhgorodoyuzhno-sakhalinskautokeinostro" +
-	"wwlkparochesterclickazimierz-dolnyclinicasertaishinomakikugawacl" +
-	"intonoshoesantafederationclothingrossetouchijiwadellogliastrader" +
-	"cloudcontrolledogawarabikomaezakirunore-og-uvdalukowilliamhillur" +
-	"oycloudfrontariodejaneiromskoguchikuzencntgorycollectioncolleger" +
-	"sundcolognewportlligatewaycolonialwilliamsburgroundhandlingrozny" +
-	"coloradoplateaudnedalncolumbusantiquesanukis-a-conservativefsnil" +
-	"lfjordcommunitydalustercomobaracompanycompute-1computerhistoryof" +
-	"science-fictioncondoshibuyachtsaotomelbourneconferenceconstructi" +
-	"onconsuladoomdnsaliascolipicenord-aurdalutskazoconsultanthropolo" +
-	"gyconsultingvolluxembourgrpartis-a-cpaderborncontemporaryartgall" +
-	"eryazanconagawakuyachimatainaikawababia-goracleaningruecontracto" +
-	"rskenconventureshinodesashibetsuikinkobayashijonawatelevisioncoo" +
-	"kinguitarsapporocoolbia-tempio-olbiatempioolbialystokkecoopoczno" +
-	"rfolkebibleborkazunocopenhagencyclopedicasinordre-landyndns-pics" +
-	"amsungqhachijorpelandyndns-remotegildeskalmykiacorporationcorvet" +
-	"temasekchristiansburgujolstercosenzagannakadomari-elasticbeansta" +
-	"lkgulencostumedio-campidano-mediocampidanomediocounciluxurycqldc" +
-	"ranbrookuwanamizuhobby-sitexasiacreditcardsaratovalleaostavropol" +
-	"icecremonashorokanaiecrewindmilluzerncrimeacrotonewspapercrsarde" +
-	"gnaklodzkodairacruisesardiniacuisinellaakesvuemielecceculturalce" +
-	"ntertainmentjeldsundcuneocupcakecxn--1qqw23afhskhabarovskhakassi" +
-	"afhvalerfieldfiguerestaurantjomelhusgardenfilateliafilmemorialvi" +
-	"valled-aostakazakis-a-democratoyonakagyokutomskharkivguernseyfin" +
-	"ancefineartsarlfinlandfinnoyfirebaseappspotenzamamicrolightinguo" +
-	"vdageaidnulvikharkovhachinohekinannestadfirenzefirmdalebtimnetzg" +
-	"radfishingorgets-itoyonezawafitjarchitecturecipesaro-urbino-pesa" +
-	"rourbinopesaromaizurubtsovskjaknoluoktaikicks-assedicateringebui" +
-	"ldersanjournalismolenskatowicexpressexyzgorzeleccoldwarszawafitn" +
-	"essettlementoyonofjalerdalflekkefjordflesbergushikamifuranoshiro" +
-	"oflightsarpsborganicheltenham-radio-operaunitelekommunikationish" +
-	"itosashimizunaminamibosohuissier-justiceflogisticsarufutsunomiya" +
-	"wakasaikaitakoelnfloraflorencefloridafloristanohataiwanairforceo" +
-	"flororoskoleclerchelyabinskodjeffersonidyndns-webhoparisor-froni" +
-	"shiwakinvestmentsannanissanfranciscotlandyndns-wikirkenesannohem" +
-	"bygdsforbundyndns-workshoparliamentateyamaflsmidthruhereggioemil" +
-	"iaromagnakanotoddenflynnhubalsanagochihayaakasakawagoe164fndfoll" +
-	"dalfoooshikamaishikshacknetoyookanzakiyokawarafor-better-thanawa" +
-	"for-ourfor-somedizinhistorischesasayamafor-thedmarkhangelskherso" +
-	"nforgotdnsaseboltoyosatonsbergwangjuifminamiechizenforli-cesena-" +
-	"forlicesenaforlikes-piedmontblancashirehabikinokawairguardforsal" +
-	"egnicagliaridagawawithgoogleapisa-hockeynutoyotaris-a-designerfo" +
-	"rsandasuolocalhistoryfortmissoulan-udefenseljejuegoshikiminokamo" +
-	"enaircraftoyotomiyazakis-a-doctorfortworthachiojiyaitakamatsukaw" +
-	"aforuminamifuranofosnesaskatchewanfotoyotsukaidofredrikstadaokag" +
-	"akiryuoharussiafreiburgxn--30rr7yfreightoyourafribourgzipartners" +
-	"assaris-a-financialadvisor-aurdalfriuli-v-giuliafriuli-ve-giulia" +
-	"friuli-vegiuliafriuli-venezia-giuliafriuli-veneziagiuliafriuli-v" +
-	"giuliafriuliv-giuliafriulive-giuliafriulivegiuliafriulivenezia-g" +
-	"iuliafriuliveneziagiuliafriulivgiuliafrlfrogansatxn--3bst00minam" +
-	"iiserniafrognfrolandfrom-akuneuesquarezzoologyeongnamegawakkanai" +
-	"betsubamericanartanddesignieznodawaraholtalendoftheinternetcmwlo" +
-	"clawekhmelnitskiyamashikokuchuofrom-alfrom-arqponfrom-azjetztoys" +
-	"tre-slidrettozawafrom-cahcesuoloansnasaarlandfrom-coffeedbackhme" +
-	"lnytskyivalledaostaketomisatomaritimekeepingfrom-ctozsdefrom-dch" +
-	"erkasydneyuzawafrom-degreefrom-flakstadtrainingfrom-gafrom-higas" +
-	"hiagatsumagoizumizakisarazure-mobileikangerfrom-iafrom-idfrom-il" +
-	"from-in-the-bandaiwafunefrom-ksaudafrom-kyotobetsumidatlanticher" +
-	"nigovernmentatsunostrowiecartierfrom-lajollanbibaidarfrom-maniwa" +
-	"kuratextileirfjordfrom-mdfrom-meeresauheradfrom-midoris-a-geekhv" +
-	"allee-aosteroyfrom-mnfrom-modalenfrom-msavannahgafrom-mtranarash" +
-	"inofrom-nchernihivanovosibirskydivingretajimakanegasakitahiroshi" +
-	"marburgrimstadyroyrviknakaniikawatanagurafrom-ndfrom-nefrom-nhkl" +
-	"abusheyfrom-njevnakerfrom-nminamiizukamisunagawafrom-nvalleeaost" +
-	"eigenfrom-nyfrom-ohdafrom-oketohmannosegawafrom-orfrom-pacifiche" +
-	"rnivtsicilyngenissedalucaniafrom-praxis-a-anarchistoireisenfrom-" +
-	"ris-a-greenfrom-schlesischesaves-the-whalessandria-trani-barlett" +
-	"a-andriatranibarlettaandriafrom-sdfrom-tnfrom-txn--3ds443gfrom-u" +
-	"tazunjargafrom-vacationsavonamsosnowiechernovtsykkylvenetoeiheij" +
-	"is-a-candidatefrom-vtranbyfrom-wafrom-wielunnerfrom-wvanylvenice" +
-	"from-wyfrosinonefrostalowa-wolawafroyahikobearalvahkikuchikumaga" +
-	"yagawallonieruchomoscienceandindustrynfsteinkjerusalembetsukuis-" +
-	"a-gurunsaitokuyamafujiiderafujikawaguchikonefujiminohkurafujinom" +
-	"iyadafujiokayamansionsayokkaichirurgiens-dentisteschmidtre-gauld" +
-	"alfujisatoshonairlinedre-eikerotikadenagaivuotnagaokakyotambadaj" +
-	"ozorakkestadultrani-andria-barletta-trani-andriafujisawafujishir" +
-	"oishidakabiratoridell-ogliastrakhanamigawafujiyoshidafukayabeard" +
-	"udinkakamigaharafukuchiyamadafukudominichiryukyuragifudaigokasej" +
-	"nynysabaerobaticartoonarteducationalchikugojomediafukuis-a-hard-" +
-	"workerfukumitsukefukuokazakishiwadafukuroishigakisofukushimantov" +
-	"adsoftwarendalenvikingatlantajimidsundfukusakisosakitagatajiris-" +
-	"a-hunterfukuyamagatakahamanxn--3e0b707efunabashiriuchinadafunaga" +
-	"takaharunzenfunahashikamiamakusatsumasendaisenfundaciofuoiskujit" +
-	"awarafuosskoczoworse-thandafurniturepair-traffic-controlleyfurub" +
-	"iraquarelleangaviikagaminogiessenglandfurudonostiafurukawaharafu" +
-	"sogndalfussafetysneschoenbrunnfutabayamaguchinomigawafutboldlygo" +
-	"ingnowhere-for-moregontrailroadfuttsurugashimaoris-a-knightrania" +
-	"ndriabarlettatraniandriafvgfylkesbiblackfridayfyresdalhaldenhals" +
-	"agamiharahammarfeastafricamerakershuscountryestateshinanomachipp" +
-	"ubetsubetsugaruhrhamurakamigoris-a-liberalhandsondriohanggliding" +
-	"hannanmokuizumodernhannoverhallanschweizminamiminowahanyuzenhapm" +
-	"irumarnardalhappoutsystemscloudappasadenakhodkamogawahareidsberg" +
-	"enharstadharvestcelebrationhasamarahasaminami-alpsiellakasamatsu" +
-	"doosandnessjoenhasudahasvikmsciencecentersciencehistoryhatogayai" +
-	"zuwakamatsubushikusakadogawahatoyamazakitakatakanezawahatsukaich" +
-	"iharahattfjelldalhawaiijimarugame-hostinghayashimamotobungotakad" +
-	"avvesiidazaifuchukotkakegawatchandclockokonoehazuminobusenetwork" +
-	"angerhemnescientistordalhemsedalherokusslattuminamiogunionheroyh" +
-	"igashichichibunkyonanaoshimabariaketrzynhigashihiroshimanehigash" +
-	"iizumozakitamifunehigashikagawahigashikagurasoedahigashikawakita" +
-	"aikitamotosumitakaginowaniigatakahashimamakitagawahigashikurumee" +
-	"tranoyhigashimatsushimarumorimachidahigashimatsuyamakitaakitadai" +
-	"toigawahigashimurayamalatvuopmihamadahigashinarusells-for-lesscr" +
-	"apper-sitehigashinehigashiomihachimanagementransportrapaniiminam" +
-	"iawajikis-a-libertarianhigashiosakasayamamotorcyclescrappinghiga" +
-	"shishirakawamatakaokamikitayamatotakadahigashisumiyoshikawaminam" +
-	"iaikitanakagusukumoduminamisanrikubetsupportravellinohigashitsun" +
-	"otteroyhigashiurausukitashiobarahigashiyamatokoriyamanakakogawah" +
-	"igashiyodogawahigashiyoshinogaris-a-linux-useranishiaritabashiib" +
-	"ahccavuotnagasakikonaioirasebastopologyeonggiehtavuoatnagahamaro" +
-	"ygardenebakkeshibechambagriculturennebudapest-a-la-maisondre-lan" +
-	"dhiraizumisatohnoshoohirakatashinagawahiranairtraffichitachinaka" +
-	"gawahirarahiratsukagawahirayakagehistorichouseserveftpassenger-a" +
-	"ssociationhitachiomiyaginozawaonsenhitachiotagotembaixadahitoyos" +
-	"himiharuslivinghistoryhitradinghjartdalhjelmelandholeckobierzyce" +
-	"holidayhomelinuxn--45brj9chitosetogakushimotoganewmexicodynalias" +
-	"coli-picenonoichikawamisatobishimallorcabbottattoolsztynsettlers" +
-	"antabarbarahomessinashikitaurayasudahomeunixn--45q11chocolatelem" +
-	"arkatsushikabeiarnrtaxis-a-catererhonefosservegame-servercellill" +
-	"ehammerfest-le-patrondheiminamitanehongotsukitahatakahatakaishim" +
-	"ofusagaeroclubindallaspeziahonjyoichiropractichofunatorissadonna" +
-	"harimangonohejis-a-celticsfanisshingugehornindalhorsells-for-ust" +
-	"karasjokolobrzegyptianpachigasakidservicesettsurgeonshalloffamel" +
-	"dalhortendofinternetrdhoteledatabaseballangenhoyangerhoylandetro" +
-	"itreehumanitiesevastopolevangerhurdalhurumajis-a-llamarylandhyog" +
-	"oris-a-musicianhyugawaraiwatsukiyonoiwchoseikakudamatsuejgorajpn" +
-	"jurkouhokutamakis-a-republicancerresearchaeologicaliforniakounos" +
-	"unndalkouyamassa-carrara-massacarraramassabuskerudinewjerseykouz" +
-	"ushimasudakozagawakozakis-a-rockstarachowicekrageroticampobassoc" +
-	"iateshimojis-a-socialistmeincheonkrakowroclawtchoshibukawakrasno" +
-	"yarskommunekredkristiansandefjordkristiansundkrodsheradkrokstade" +
-	"lval-daostavalleykryminamiuonumatsumotofukekumatorinokumejimatsu" +
-	"maebashikaois-a-soxfankumenanyokaichibaikaliszczytnord-odalkunis" +
-	"akis-a-studentalkunitachiaraisaijoshkar-olapyatigorskomonokunito" +
-	"migusukukis-a-teacherkassykunneppugliakunstsammlungkunstunddesig" +
-	"nkureportrentino-sud-tirolkurgankurobelaudiokurogiminamiashigara" +
-	"kuroisognekuromatsunaishobaraumagazinemurorankoshigayabukibichuo" +
-	"zuwajimakurotakikawasakis-a-techietis-a-nursells-itrentino-a-adi" +
-	"gekurskomorotsukamishihoronobeokaminokawanishiaizubangekushiroga" +
-	"wakustanais-a-therapistoiakusupplieshimokawakutchannelkutnokuzba" +
-	"ssnoasaikis-an-accountantsewritesthisblogspotrentino-aadigekuzum" +
-	"akis-an-actorkvafjordkvalsundkvamsterdamberkeleykvanangenkvinesd" +
-	"alkvinnheradkviteseidskogkvitsoykwtfastlykyowariasahikawamisconf" +
-	"usedmishimatsusakahogithubusercontentrentino-sudtirolmissileirvi" +
-	"konantanangermisugitokonamegatakasugais-an-artistjohnmitakeharam" +
-	"itourisminamiyamashirokawanabelgorodeomitoyoakemiuramiyazurewebs" +
-	"iteshikagamiishikarikaturindalmiyotamanomjondalenmonmouthadanota" +
-	"ireschokoladenmonticellombardiamondshimokitayamamontrealestateof" +
-	"delawaremarkermonza-brianzamonza-e-della-brianzamonzabrianzamonz" +
-	"aebrianzamonzaedellabrianzamordoviajessheiminanomoriyamatsushige" +
-	"moriyoshiokamitondabayashiogamagoriziamormoneymoroyamatsuuramort" +
-	"gagemoscowwwmoseushistorymosjoenmoskeneshimonitayanagis-an-engin" +
-	"eeringerikemosreggio-calabriamosshimonosekikawamosvikongsbergmov" +
-	"aomoriguchiharambulancertificationmuenstermugivestbyklebesbyglan" +
-	"dmuikamitsuemukochikushinonsennanbusinessebydgoszczecincinnative" +
-	"americanantiqueshimosuwalkis-an-entertainermulhousembokumamotoya" +
-	"materamolisellsyourhomeipharmacienshimotsukemunakatanemuncieszyn" +
-	"muosattemurmanskongsvingermurotorcraftrentino-sued-tirolmusashim" +
-	"urayamatsuzakis-bytomakomaibaramusashinoharamuseetrentino-suedti" +
-	"rolmuseumverenigingmutsuzawamyphotoshibajddarchaeologymytis-a-bo" +
-	"okkeepermincommbankomvuxn--4gbriminingphiladelphiaareadmyblogsit" +
-	"ephilatelyphoenixn--54b7fta0cchoyodontexisteingeekatsuyamashikiy" +
-	"osemitephotographysiopictetrentinoa-adigepictureshimotsumapiemon" +
-	"tepilotshinichinanpinkoninjavaksdalpippupiszpharmacymruovattorne" +
-	"yagawalesundpittsburghofauskedsmokorsetagayaseljordpizzapkonskow" +
-	"olaquilarvikomitamamuraplanetariuminnesotaketakashimatsunoplanta" +
-	"tionplantshinjournalistjordalshalsenplazaplchristmasakimobetsuwa" +
-	"nouchikuseihichisobetsuldaluccapebretonamiastarnbergripescaravan" +
-	"taaplomzaporizhzhiaplumbingpmnpodhaleitungsenpodlasiedlcepodzone" +
-	"pohlpokerpolkowicepoltavaldaostathelleksvikonyvelodingenpomorzes" +
-	"zowpordenoneporsangerporsanguidelmenhorstalbanswedenporsgrunnanp" +
-	"osts-and-telecommunicationshinjukumanopoznanprdpreservationpresi" +
-	"dioprincipeprivneprochowiceproductionshinkamigotoyohashimotokyot" +
-	"angoprofcastresistancexposeducatorahimeshimageandsoundandvisioni" +
-	"shiokoppegardyndns-serverbaniaprojectrentinoaadigepropertieshins" +
-	"hinotsurgerypropertyumenpruszkowprzeworskogptzwpvtrentinoalto-ad" +
-	"igepzqsldshisuifuelverumisakis-an-actresshakotankomaganeshitaram" +
-	"ashizukuishimodateshizuokanonjis-into-animegurovnoshowashriramur" +
-	"skiptveterinairebungoonomichinomiyakembuchikujobshinshirosienams" +
-	"skoganeis-into-carsharis-a-painteractivegarsheis-a-nascarfansigd" +
-	"alsimbirskooris-a-patsfansimple-urlsirdalslgbtrentinoaltoadigesl" +
-	"upskopervikommunalforbundsnzsolarssonsolognesolundsolutionshinto" +
-	"kushimasomasomnapleshintomikasaharasoosopotrentinos-tirolsor-oda" +
-	"lsor-varangersorfoldsorreisahayakawakamiichikaiseiyokoshibahikar" +
-	"iwanumatakayamasortlandsorumisasaguris-an-anarchistoricalsociety" +
-	"svardosouthcarolinazawasouthwesterniikappulawysowaspace-to-renta" +
-	"lshinyoshitomiokaniepcespbaltimore-og-romsdalimomasvuotnakatombe" +
-	"tsupplyomitanobanazawaustraliagroks-theaternopilawakeisenbahnatu" +
-	"ralhistorymuseumcenterhcloudcontrolappalace-burg12spiegelspjelka" +
-	"vikoryolasitespydebergsrvareseminestorenburgstorfjordstpetersbur" +
-	"gstuff-4-salewismillerstuttgartrentinostirolsurreysusakis-into-c" +
-	"artoonsharpaviasusonosuzakanrasuzukanumazurysuzukis-into-gameshe" +
-	"llaskoyabenord-fronsvalbardurbannefrankfurtrentinosud-tirolsveio" +
-	"svelvikosaigawasvizzeraswidnicapetownswiebodzinderoyswinoujscien" +
-	"ceandhistorysxn--55qw42gtromsokndaltrusteetrysilkosakaerodromede" +
-	"cinemailtuis-lostfoldtulavagisketurystykarasjohkaminoyamatsuris-" +
-	"not-certifiedtuscanytuvalle-aostationtverdalvaroyvbambleasecn-no" +
-	"rth-1vchromedicalucernevdonskoseis-a-personaltrainervegaskvollve" +
-	"nneslaskerveronaritakurashikis-savedverranversailleshiojirishiri" +
-	"fujiedaversicherungvestfoldvestneshioyanagawavestre-slidreamhost" +
-	"ershirahamatonbetsurgutsiracusaintlouis-a-bruinsfanvestre-totenr" +
-	"is-slickomakizunokunimimatakasakiyosumypetsherbrookegawavestvago" +
-	"yvevelstadvibo-valentiavibovalentiavideovillasmatartcenterprises" +
-	"akijoburgvinnicapitalvinnytsiavirginiavirtualvirtuelviterbolzano" +
-	"rdlandvladikavkazanvladimirvladivostokaizukarasuyamasfjordenvlog" +
-	"voldavolgogradvolkenkunderseaportrentinosued-tirolvologdanskoshi" +
-	"mizumakis-a-photographermesaverdevolyngdalvoronezhytomyrvossevan" +
-	"genvotevotingvotottoris-uberleetrentino-altoadigevrnxn--80adxhks" +
-	"hirakoenigxn--80ao21axn--80asehdbarcelonagasukesennumalvikarpacz" +
-	"eladz-1xn--80aswgxn--80augustowadaejeonbukoshunantokashikis-a-pl" +
-	"ayerxn--90a3academykolaivano-frankivskiervaapsteiermarkostromaha" +
-	"borovigorlicexn--90azhadselfipartscholarshipschoolkuszlgxn--9dbh" +
-	"blg6dielddanuorrittogitsuliguriaxn--9et52uxn--andy-iraxn--aropor" +
-	"t-byanaizuxn--asky-iraxn--aurskog-hland-jnbargainstitutechnology" +
-	"onabarudmurtiaustrheimatunduhrennesoyokosukareliaquariumbone12xn" +
-	"--avery-yuasakakinokis-very-badaddjamisongdalenxn--b-5gaxn--b4w6" +
-	"05ferdxn--bdddj-mrabdxn--bearalvhki-y4axn--berlevg-jxaxn--bhcavu" +
-	"otna-s4axn--bhccavuotna-k7axn--bidr-5nachikatsuuraxn--bievt-0qax" +
-	"n--bjarky-fyandexeterxn--bjddar-ptakkofuefukihabmerxn--blt-elabo" +
-	"rxn--bmlo-grajewolominamatakinouexn--bod-2naroyxn--brnny-wuaccid" +
-	"ent-investigationjukudoyamaceratabuseat-band-campaniamallamadrid" +
-	"vagsoyerimo-i-ranaamesjevuemielnoboribetsuitachikawakayamagadanc" +
-	"echirealtorlandxn--brnnysund-m8accident-preventionlinebraskaunbi" +
-	"eidsvollxn--brum-voagatrentinosuedtirolxn--btsfjord-9zaxn--c1avg" +
-	"xn--cg4bkis-very-evillagentshimoichinosekigaharaxn--ciqpnxn--clc" +
-	"hc0ea0b2g2a9gcdxn--comunicaes-v6a2oxn--correios-e-telecomunicaes" +
-	"-ghc29axn--czr694barreauctionatuurwetenschappenaumburgjerdrumelo" +
-	"yalistor-elvdalindaskimitsubatamiasakuchinotsuchiurakawalbrzycha" +
-	"mpionshiphopenair-surveillancebinorilskaruizawauthordalandroidir" +
-	"ectorybnikahokutogoppdalimanowarudastronomyokohamamatsudaeguball" +
-	"ooningdyniaeroportalaheadjudygarlandgcadaques3-ap-northeast-1xn-" +
-	"-czrs0trentoshimaxn--czru2dxn--czrw28barrel-of-knowledgemologica" +
-	"ltanissettaipeigersundnipropetrovskarumaintenancebizenakanojohan" +
-	"amakinoharautomotivelandiscountysfjordiscoveryggeelvinckariyalta" +
-	"ijibestadivtasvuodnakamagayahabaghdadivttasvuotnakamurataitogura" +
-	"ukraanghkemerovodkagoshimalopolskanlandiethnologyekaterinburggfa" +
-	"rmerseinexusdecorativearts3-ap-southeast-1xn--d1acj3barrell-of-k" +
-	"nowledgeologyonagoyautoscanadagestangeiseiroumuencheniwaizumiots" +
-	"ukumiyamazonaws3-eu-west-1xn--d1atrevisokanoyakutiaxn--davvenjrg" +
-	"a-y4axn--dnna-grandrapidshiranukanmakiwienxn--drbak-wuaxn--dyry-" +
-	"iraxn--efvy88haebaruminamimakis-a-landscaperugiaxn--eveni-0qa01g" +
-	"axn--finny-yuaxn--fiq228c5hshiraois-certifiedunetnedalxn--fiq64b" +
-	"ashkiriavocatanzaroweddingjemnes3-fips-us-gov-west-1xn--fiqs8shi" +
-	"raokannamilanoxn--fiqz9shiratakahagis-foundationxn--fjord-lraxn-" +
-	"-fjq720axn--fl-ziaxn--flor-jraxn--flw351exn--fpcrj9c3dxn--frde-g" +
-	"ranexn--frna-woarais-very-gooddaxn--frya-hraxn--fzc2c9e2chtraeum" +
-	"tgeradeatnurembergroks-thisayamanashichikashukujukuriyamarcheapa" +
-	"rmaxn--gecrj9chungbukaufenrwildlifedjelenia-goraxn--ggaviika-8ya" +
-	"47hagaxn--gildeskl-g0axn--givuotna-8yaotsurnadalxn--gjvik-wuaxn-" +
-	"-gls-elacaixaxn--gmq050is-very-nicexn--gmqw5axn--h-2familyxn--h1" +
-	"aeghagebostadxn--h2brj9chungnamdalseidfjordxn--hbmer-xqaxn--hces" +
-	"uolo-7ya35basilicataniavouest-mon-blogueurovisionaturbruksgymnat" +
-	"urhistorisches3-sa-east-1xn--hery-iraxn--hgebostad-g3axn--hmmrfe" +
-	"asta-s4achurcharterxn--hnefoss-q1axn--hobl-iraxn--holtlen-hxaxn-" +
-	"-hpmir-xqaxn--hxt814exn--hyanger-q1axn--hylandet-54axn--i1b6b1a6" +
-	"a2exn--indery-fyaroslavlaanderenxn--io0a7is-very-sweetrentino-s-" +
-	"tirollagrigentomologyeongbukomatsushimasoyxn--j1amhaibarakitakam" +
-	"iizumisanoksneschulelxn--j6w193gxn--jlster-byasakaiminatoyakokam" +
-	"isatohokkaidovre-eikerxn--jrpeland-54axn--karmy-yuaxn--kfjord-iu" +
-	"axn--klbu-woaxn--koluokta-7ya57hakatanotogawaxn--kprw13dxn--kpry" +
-	"57dxn--kput3is-with-thebandoxn--krager-gyasugisleofmanchesterxn-" +
-	"-kranghke-b0axn--krdsherad-m8axn--krehamn-dxaxn--krjohka-hwab49j" +
-	"ewelryxn--ksnes-uuaxn--kvfjord-nxaxn--kvitsy-fyasuokaratexn--kvn" +
-	"angen-k0axn--l-1fareastcoastaldefencexn--l1accentureklamusementr" +
-	"oandinosaurexn--laheadju-7yatominamidaitomandalxn--langevg-jxaxn" +
-	"--lcvr32dxn--ldingen-q1axn--leagaviika-52batochigifts3-us-gov-we" +
-	"st-1xn--lesund-huaxn--lgbbat1ad8jewishartrentino-stirolxn--lgrd-" +
-	"poachuvashiaxn--lhppi-xqaxn--linds-pratoyokawaxn--lns-qlavangenx" +
-	"n--loabt-0qaxn--lrdal-sraxn--lrenskog-54axn--lt-liacimperiaxn--l" +
-	"ten-granvindafjordxn--lury-iraxn--mely-iraxn--merker-kuaxn--mgb2" +
-	"ddeshishikuis-gonexn--mgb9awbfermochizukirovogradoyxn--mgba3a4f1" +
-	"6axn--mgba3a4franarusawaxn--mgbaam7a8hakodatexn--mgbab2bdxn--mgb" +
-	"ayh7gpaduaxn--mgbbh1a71exn--mgbc0a9azcgxn--mgberp4a5d4a87gxn--mg" +
-	"berp4a5d4arxn--mgbqly7c0a67fbcngxn--mgbqly7cvafranziskanerimarin" +
-	"exn--mgbtf8flandershisojaworznoxn--mgbx4cd0abogadoes-itrogstadxn" +
-	"--mjndalen-64axn--mk0axisshikiwakunigamihoboleslawiechonangoogle" +
-	"codespotaruis-a-chefashioniyodogawaxn--mlatvuopmi-s4axn--mli-tla" +
-	"zioxn--mlselv-iuaxn--moreke-juaxn--mori-qsakatakatsukissmarterth" +
-	"anyouthachirogatakamoriokamchatkameokameyamashinatsukigatakanabe" +
-	"dzin-addrammenuernbergxn--mosjen-eyatsukaratsuginamikatagamilita" +
-	"ryxn--mot-tlaxn--mre-og-romsdal-qqbatsfjordnpalanakayamatta-varj" +
-	"jatarantomobeneventochiokinoshimamurogawashingtondcarbonia-igles" +
-	"ias-carboniaiglesiascarboniaxaurskog-holandebudejjuedischesapeak" +
-	"ebayerndigitalillesandiegovtambovalle-d-aostavangerxn--msy-ula0h" +
-	"akonexn--mtta-vrjjat-k7aferraraxn--muost-0qaxn--mxtq1misawaxn--n" +
-	"gbc5azdxn--nmesjevuemie-tcbalestrandabergamoarekepnorddalxn--nnx" +
-	"388axn--nodessakegawaxn--nqv7fs00emaxn--nry-yla5gxn--nttery-byae" +
-	"seoullensvangxn--nvuotna-hwaxn--o1achattanooganordreisa-geekosug" +
-	"exn--o3cw4hakubanxn--od0algxn--od0aq3bauhaustevollindesnes3-us-w" +
-	"est-1xn--ogbpf8flatangerxn--oppegrd-ixaxn--ostery-fyatsushiroxn-" +
-	"-osyro-wuaxn--p1acfailxn--p1aiwatarailwayxn--pgbs0dhakuis-a-lawy" +
-	"erxn--porsgu-sta26fetsundxn--q9jyb4circuscultureggio-emilia-roma" +
-	"gnakaiwamizawaxn--qcka1pmciticasadelamonedaxn--rady-iraxn--rdal-" +
-	"poaxn--rde-ulaxn--rdy-0nabariwatexn--rennesy-v1axn--rhkkervju-01" +
-	"afgunmaritimodenakasatsunairportland-4-salernogatagajobojis-a-cu" +
-	"bicle-slaveroykenxn--rholt-mragoworldxn--rhqv96gxn--risa-5naruto" +
-	"korozawaxn--risr-iraxn--rland-uuaxn--rlingen-mxaxn--rmskog-byawa" +
-	"raxn--rros-gratangenxn--rskog-uuaxn--rst-0narviikanagawaxn--rsta" +
-	"-francaiseharaxn--ryken-vuaxn--ryrvik-byawatahamaxn--s-1farmequi" +
-	"pmentromsaitamatsukuris-leetrentino-alto-adigexn--s9brj9citychyl" +
-	"lestadxn--sandnessjen-ogbizhevskotohiradomainsurancexn--sandy-yu" +
-	"axn--seral-lraxn--ses554gxn--sgne-gratis-a-bulls-fanxn--skierv-u" +
-	"tazasnesoddenmarketplacexn--skjervy-v1axn--skjk-soaxn--sknit-yqa" +
-	"xn--sknland-fxaxn--slat-5narvikotouraxn--slt-elabourxn--smla-hra" +
-	"xn--smna-grazxn--snase-nraxn--sndre-land-0cbnlxn--snes-poaxn--sn" +
-	"sa-roaxn--sr-aurdal-l8axn--sr-fron-q1axn--sr-odal-q1axn--sr-vara" +
-	"nger-ggberlincolnaustdalinkasaokamiokamiminers3-us-west-2xn--srf" +
-	"old-byaxn--srreisa-q1axn--srum-graxn--stfold-9xaxn--stjrdal-s1ax" +
-	"n--stjrdalshalsen-sqbernuorokunohealthcareersvpaleobihirosakikam" +
-	"ijimaxn--stre-toten-zcbeskidyn-o-saurlandes3-website-ap-northeas" +
-	"t-1xn--tjme-hraxn--tn0agrinetbankzxn--tnsberg-q1axn--trany-yuaxn" +
-	"--trgstad-r1axn--trna-woaxn--troms-zuaxn--tysvr-vraxn--uc0atvede" +
-	"strandxn--uc0ay4axn--unjrga-rtamayufuettertdasnetzxn--unup4yxn--" +
-	"vads-jraxn--vard-jraxn--vegrshei-c0axn--vermgensberater-ctbetain" +
-	"aboxfordealstahaugesundpalermombetsurfarmsteadrangedalinzaibigaw" +
-	"axn--vermgensberatung-pwbhartipscbgjerstadotsuruginankokubunjibm" +
-	"drobakrehamnaval-d-aosta-valleyonaguniversityoriikashibatakasago" +
-	"uvicenzaporizhzheguriheyakumoldepotherokuappalmspringsakerxn--ve" +
-	"stvgy-ixa6oxn--vg-yiabruzzoologicalabamagasakishimabarahkkeravju" +
-	"daicaarborteaches-yogasawaragusartsaritsynxn--vgan-qoaxn--vgsy-q" +
-	"oa0jfkomforbalsfjordlugolekaluganskarlsoyokotebetsukubahcavuotna" +
-	"garavennagareyamalselvendrellimitednepropetrovskarmoyokozebinagi" +
-	"sodegauraustinnaturalsciencesnaturelles3-ap-southeast-2xn--vhquv" +
-	"arggatrentinosudtirolxn--vler-qoaxn--vre-eiker-k8axn--vrggt-xqad" +
-	"xn--vry-yla5gxn--wcvs22dxn--wgbh1civilaviationxn--wgbl6axn--xhq5" +
-	"21bielawassamukawatarikuzentakatairaxn--xkc2al3hye2axn--xkc2dl3a" +
-	"5ee0hakusandoyxn--yer-znasushiobaraxn--yfro4i67oxn--ygarden-p1ax" +
-	"n--ygbi2ammxn--55qx5dxn--ystre-slidre-ujbiella-speziaxn--zf0ao64" +
-	"axn--zf0avxn--6frz82gxn--zfr164bieszczadygeyachiyodatsunanjoetsu" +
-	"rutaharaxxxn--6qq986b3xlxz"
+const text = "bielawashingtondclkasukabeerhcloudcontrolappalacebinorilskasumig" +
+	"aurawa-mazowszexhibitionavigationavuotnakatsugawabiellaakesvuemi" +
+	"eleccebizenakaniikawatanagurabieszczadygeyachiyodatsunanjoetsuru" +
+	"taharabievatmpalanakayamatsuurabifukagawassamukawataricohdavvenj" +
+	"argamvikasuyameiwamarylhurstjordalshalsenavyatkanazawabihorology" +
+	"ukuhashimoichinosekigaharabikedavvesiidazaifuchukotkakegawatch-a" +
+	"nd-clockaszubyurihonjournalistjohnayoroceanographiquehimejinfini" +
+	"tires3-website-us-east-1bilbaogakijoburgliwicembroideryusuharabi" +
+	"llustrationfshostre-totenkawabiomutashinainfoggiabirdartdecoalop" +
+	"padovald-aostathelleitungsenhs3-website-us-gov-west-1birkenesodd" +
+	"tangenovarabirthplacemergencyberlevagangaviikarugausdalorenskogl" +
+	"obalatinabeauxartsandcrafts3-website-us-west-1bjarkoyusuisserveb" +
+	"bs3-website-us-west-2bjerkreimperiabjugniizabloombergbauernikkoe" +
+	"benhavnikolaeventsakuhokkaidonnakamagayahabaghdadyndns-homeftpac" +
+	"cessakuragawabluenoharabmsakurainsureiseninohelsinkitakatakamori" +
+	"okamchatkameokameyamashinatsukigatakanabedzin-addrammenuernbergl" +
+	"obodoes-itatarstaninomiyakonojosoyrovnoslombardyndns-at-homednsa" +
+	"kyotanabellevuedatinglogowegrowestfalenirasakinuyamanouchikuhoku" +
+	"ryugasakitaurayasudabmwfarmequipmentateyamabnpparibaselburgloppe" +
+	"nzaokinawashirosatobishimagnitkafjordyndns-ip6bolzanordreisa-gee" +
+	"katowicemrbomloabathsbcargodoesntexistanbullensakerbondyndns-mai" +
+	"losangelesalangenishiazainvestmentsalatrobellunordre-landyndns-o" +
+	"ffice-on-the-webcambridgestonewportlligatewayuulminamiechizenish" +
+	"igovtatsunostrodabonnishiharabostonakijinsekikogenishiizunazukis" +
+	"-a-candidatepilepsykkylvenetogoldpointelligencepsongdalenishikat" +
+	"akatoris-a-catererbotanicalgardenishikatsuragivingmailoteneis-a-" +
+	"celticsfanishikawazukaneyamaxunjargabotanicgardenishimerabotanyc" +
+	"arrierboutiquebecartierbozentsujiieu-central-1bradescorporationi" +
+	"shinomiyashironostrolekaniepceverbankatsushikabeiarnrtattoolszty" +
+	"nsettlersalondonetskatsuyamasfjordenishinoomotegostrowiecartoona" +
+	"rteducationalchikugojomediabrandywinevalleyuzawabrasiljan-mayeni" +
+	"shinoshimatsuzakis-a-chefarmerseinewyorkshireggiocalabriabremang" +
+	"erbresciabrindisiciliabristolgaulardalottevje-og-hornnesaltdalot" +
+	"tokigawabritishcolumbialowiezachpomorskienishiokoppegardyndns-pi" +
+	"csalvadordalikes-piedmontblancashirepair-traffic-controlleyuzhno" +
+	"-sakhalinskaufenishitosashimizunaminamiawajikis-a-conservativefs" +
+	"nillfjordyndns-remotegildeskalmykiabroadcastleasinglesalzburgmin" +
+	"akamichigangwonishiwakis-a-cpaderbornissandvikcoromantovaldaosta" +
+	"tionissedalouvrepbodyndns-at-workinggroupowiataxindianmarketingm" +
+	"odalenisshinguernseybroke-itgorybrokerbronnoysundyndns-serverban" +
+	"iabrumunddalowiczest-a-la-masioniyodogawabrunelblagdenesnaaseral" +
+	"ingenkainanaejrietiendaburyatiabrusselsamegawabruxellesjaguarchi" +
+	"tecturecipesaro-urbino-pesarourbinopesaromaintenancexpressexyzgo" +
+	"rabryanskleppaleostrowwlkpalermomasvuotnakatombetsupportjeldsund" +
+	"yndns-webhoppdalucaniabryneuesamnangerbuyshousesamsungmxboxeroxj" +
+	"aworznobuzenrwhalingqldyndns-wikirovogradoybuzzgorzeleccollectio" +
+	"nbwhoswhokksundyndns-workshopalmspringsakerbzhitomirkutskodjeffe" +
+	"rsoncloudcontrolledekaluganskypescaravantaacloudfrontariocntoyoo" +
+	"karasjohkaminokawanishiaizubangecollegersundcolognewhampshireggi" +
+	"o-calabriacolonialwilliamsburgrossetouchijiwadell-ogliastrakhana" +
+	"migawacoloradoplateaudnedalncolumbusantiquesantabarbaracommunity" +
+	"chyllestadcomobaracompanynysabaerobaticasertaipeigersundyroyrvik" +
+	"nakamurataitogitsuliernewspapercompute-1computerhistoryofscience" +
+	"-fictioncondoshichikashukujitawaraconferenceconstructionconsulad" +
+	"oharuovattorneyagawalesundconsultanthropologyconsultingvolluroyc" +
+	"ontemporaryartgalleryazanconagawakkanaibetsubamericanartanddesig" +
+	"nieznodawarahkkeravjudygarlandcontractorskenconventureshinodesas" +
+	"hibetsuikinkobayashikaoizumizakiracookingroundhandlingroznycoolb" +
+	"ia-tempio-olbiatempioolbialystokkecoopocznorfolkebiblebtimnetzgr" +
+	"adcopenhagencyclopedicasinore-og-uvdaluccapetowncorsicadaquesant" +
+	"acruziparachutingrparaglidingruecorvettemasekhabarovskhakassiaco" +
+	"senzagannakadomari-elasticbeanstalkharkivalleaostavropolicecostu" +
+	"medio-campidano-mediocampidanomediocouncilustercoursesantafedera" +
+	"tioncqponcranbrookuwanalyticsanukis-a-designercreditcardcremonas" +
+	"horokanaiecrewindmillutskharkovalled-aostakazakis-a-doctoraycric" +
+	"ketrzyncrimearthruhereggio-emilia-romagnagatorokunohealthcareers" +
+	"aotomelbournecrotonewjerseycrowncrsapodhaleluxembourguidelloglia" +
+	"stradercruisesapporocuisinellahppiacenzakopaneraircraftoyosatosh" +
+	"imaculturalcentertainmentoyotaris-a-financialadvisor-aurdaluxury" +
+	"cuneocupcakecxn--0trq7p7nnferraraferreroticahcesuoloanswedenfets" +
+	"undfguitarsaratovalledaostaketomisatomaritimekeepingujolsterfhva" +
+	"lerfiguerestaurantoyotomiyazakis-a-geekhersonfilateliafilminamif" +
+	"uranofinaluzernfinancefineartsardegnaklodzkodairafinlandfinnoyfi" +
+	"rebaseappspotenzamamicrolightingulenfirenzefirestonexusdecorativ" +
+	"eartsardiniafirmdaleclercateringebuildersvpanamafishingolfarmste" +
+	"adfitjarfitnessettlementoyotsukaidovre-eikerfjalerdalvivano-fran" +
+	"kivskhmelnitskiyamashikeflesbergunmarcheapartmentsarlflightsarps" +
+	"borganicfdflogisticsarufutsunomiyawakasaikaitakoelnfloraflorence" +
+	"floridafloristanohataiwanairguardfloromskoguchikuzenflowersasaya" +
+	"maflsmidthachinohekinannestadflynnhubalsanagochihayaakasakawagoe" +
+	"164fndfolldalfootballooninguovdageaidnulsanfranciscotlandfor-bet" +
+	"ter-thanawafor-ourfor-somedizinhistorischesaseboknowsitallfor-th" +
+	"edmarketsaskatchewanggouvicenzaforexeterforgotdnsassaris-a-green" +
+	"forli-cesena-forlicesenaforliguriaforsalegalsaceforsandasuolocal" +
+	"historyfortmissoulan-udefensejnyfortworthachiojiyaitakaharulvikh" +
+	"melnytskyivallee-aosteroyforuminamiiserniafosnesatxn--1ctwolomin" +
+	"amatakinouefotherokuapparisor-fronfredrikstadtoyourafreiburgushi" +
+	"kamifuranoshiroomurafreightoystre-slidrettozawafribourgwangjuifm" +
+	"inamiizukamitondabayashiogamagoriziafriuli-v-giuliafriuli-ve-giu" +
+	"liafriuli-vegiuliafriuli-venezia-giuliafriuli-veneziagiuliafriul" +
+	"i-vgiuliafriuliv-giuliafriulive-giuliafriulivegiuliafriulivenezi" +
+	"a-giuliafriuliveneziagiuliafriulivgiuliafrlfrogansaudafrognfrola" +
+	"ndfrom-akunemurorankoshigayabukidsauheradfrom-alfrom-arfrom-azjc" +
+	"bnlfrom-camerakershuscountryestateshinanomachippubetsubetsugaruh" +
+	"rfrom-coldwarszawafrom-ctozsdevenesavannahgafrom-dchernigovernme" +
+	"ntjomelhusgardenfrom-degreefrom-flandersaves-the-whalessandria-t" +
+	"rani-barletta-andriatranibarlettaandriafrom-gafrom-higashiagatsu" +
+	"magois-a-gurunsaitokuyamafrom-iafrom-idfrom-ilfrom-in-the-bandai" +
+	"wafunefrom-ksavonamsosnowiechernihivguccircleborkautokeinofrom-k" +
+	"yotobetsumidatlantichernivtsicilyngenfrom-langevagrarboretumbria" +
+	"from-mangonohejis-a-hard-workerfrom-mdfrom-meeresaxofrom-microso" +
+	"ftwaremarkerfrom-mnfrom-mochizukiryuohkurafrom-msayokkaichirurgi" +
+	"ens-dentistesbschoenbrunnfrom-mtnfrom-nchernovtsydneyfrom-ndfrom" +
+	"-nefrom-nhkhvalleeaosteigenfrom-njeonnamerikawauefrom-nminamimak" +
+	"is-a-hunterfrom-nvanylvenicefrom-nyfrom-ohtawaramotoineppugliafr" +
+	"om-oketogurafrom-orfrom-pacifichiryukyuragifudaigokaseekazimierz" +
+	"-dolnyfrom-praxis-a-anarchistoireggioemiliaromagnakanojohanamaki" +
+	"noharafrom-rittohmaniwakuratenris-a-knightrainingxn--1lqs03nfrom" +
+	"-schmidtre-gauldalfrom-sdfrom-tnfrom-txn--1lqs71dfrom-utazunzenf" +
+	"rom-vadsogndalfrom-vtranapleschokoladenfrom-wafrom-wielunnerfrom" +
+	"-wvaomoriguchiharamcoacharterfrom-wyfrosinonefrostalowa-wolawafr" +
+	"oyahikobearalvahkikuchikumagayagawallonieruchomoscienceandindust" +
+	"rynfstcgrouparliamentranbyfujiiderafujikawaguchikonefujiminohach" +
+	"irogatakahashimamakitahatakahatakaishimogosenfujinomiyadafujioka" +
+	"yamannosegawafujisatoshonairlinebraskaunbieidsvollfujisawafujish" +
+	"iroishidakabiratorideliverybnikahokutogakushimotoganewmexicoffee" +
+	"dbacklabusinessebydgoszczecincinnativeamericanantiquescholarship" +
+	"schoolkuszlgzminamiminowafujiyoshidafukayabeardudinkakamigaharav" +
+	"ennagasakikugawalterfukuchiyamadafukudominichitachinakagawawildl" +
+	"ifestylefukuis-a-landscaperugiafukumitsukefukuokazakisarazure-mo" +
+	"bilegnicampobassociateschulevangerfukuroishigakishiwadafukusakis" +
+	"ofukushimansionschwarzparmafukuyamagatajimidoris-a-lawyerfunabas" +
+	"hiriuchinadafunagatajiris-a-liberalfunahashikamiamakusatsumasend" +
+	"aisennangooglecodespotrani-andria-barletta-trani-andriafundaciof" +
+	"uoiskujukuriyamanxn--1qqw23afuosskoczowindowschweizwithgoogleapi" +
+	"sa-hockeynutraniandriabarlettatraniandriafurniturehabikinokawair" +
+	"portland-4-salernogatagajobsciencecentersciencehistoryfurubiraqu" +
+	"arelleangaviikagaminogiessenvironmentalconservationfurudonostiaf" +
+	"urukawaharafusognefussafetysfjordfutabayamaguchinomigawafutboldl" +
+	"ygoingnowhere-for-moregontrailroadfuttsurugashimaoris-a-libertar" +
+	"ianfvgfylkesbiblackfridayfyresdalhannanmokuizumodenakanotoddenha" +
+	"nnovhadanotairescientistor-elvdalhanyuzenhapmirumarnardalhappous" +
+	"livinghistoryhareidsbergenharstadharvestcelebrationhasamarahasam" +
+	"inami-alpsienakasatsunairteledatabaseballangenoamishirasatobamag" +
+	"azinedre-eikerhasudahasvikmscrapper-sitehatogayaizuwakamatsubush" +
+	"ikusakadogawahatoyamazakitakamiizumisanofieldhatsukaichiharahatt" +
+	"fjelldalhawaiijimarriottranoyhayashimamotobunkyonanaoshimabariak" +
+	"ehazuminobuseljordhemnescrappinghemsedalherokusslattuminamisanri" +
+	"kubetsupplyheroyhigashichichibusheyhigashihiroshimanehigashiizum" +
+	"ozakitakyushuaiahigashikagawahigashikagurasoedahigashikawakitaai" +
+	"kitamidsundhigashikurumeetnedalhigashimatsushimarugame-hostinghi" +
+	"gashimatsuyamakitaakitadaitoigawahigashimurayamalatvuopmifunehig" +
+	"ashinarusells-for-lesserveftparservegame-servercellikescandynath" +
+	"omebuiltransportrapaniiminamiashigarahigashinehigashiomihachiman" +
+	"agementravellinohigashiosakasayamamotorcycleservicesettsurgeonsh" +
+	"alloffameldalhigashishirakawamatakanezawahigashisumiyoshikawamin" +
+	"amiaikitamotosumitakaginowanidhigashitsunotteroyhigashiurausukit" +
+	"anakagusukumodernhigashiyamatokoriyamanakakogawahigashiyodogawah" +
+	"igashiyoshinogaris-a-musicianhiraizumisatohnoshoooshikamaishimod" +
+	"atextileirvikokonoehirakatashinagawahiranairtraffichitosetoeihei" +
+	"jis-a-cubicle-slaveroykenhirarahiratsukagawahirayakagehistoricho" +
+	"usesevastopolewismillerhitachiomiyaginozawaonsenhitachiotagopart" +
+	"is-a-nascarfanhitoyoshimihamadahitradinghjartdalhjelmelandholeck" +
+	"obierzyceholidayhomelinuxn--2m4a15ehomessinashikitashiobarahomeu" +
+	"nixn--30rr7yhondahonefossewloclawekolobrzegyptianpachigasakieven" +
+	"assisibenikihokumakogeniwaizumiotsukumiyamazonawshakotankomagane" +
+	"hongorgets-itrdhonjyoichiropractichloehornindalhorsells-for-ustk" +
+	"arasuyamazoehortendofinternetreehotelefonicapebretonamiastarostw" +
+	"odzislawritesthisblogspotrentino-a-adigehotmailhoyangerhoylandet" +
+	"roitrentino-aadigehurdalhurumajis-a-nursells-itrentino-alto-adig" +
+	"ehyogoris-a-painteractivegarsheis-a-patsfanhyugawaraiwchocolatel" +
+	"evisionjewishartrentino-sudtiroljfkomitamamurajgorajlchofunatori" +
+	"kuzentakatairajoyoitakaokamikitayamatotakadajpnjprshimonosekikaw" +
+	"ajurkozagawakozakis-a-teacherkassymantechnologykragerotikamisuna" +
+	"gawakrakowroclawtcmwtfarsundkrasnoyarskomonokredstonekristiansan" +
+	"defjordkristiansundkrodsheradkrokstadelval-daostavalleykryminami" +
+	"tanekumatorinokumejimasudakumenanyokaichibaikaliszczytnordkappgk" +
+	"unisakis-a-techietis-a-photographermesaverdelmenhorstalbansharis" +
+	"-a-personaltrainerkunitachiaraisaijoshkar-olanshimotsumakunitomi" +
+	"gusukukis-a-therapistoiakunneppulawykunstsammlungkunstunddesignk" +
+	"ureitrentino-sued-tirolkurgankurobelaudiokurogimimatakasagotemba" +
+	"ixadakuroisohuissier-justicekuromatsunaishobaraholtalengerdalask" +
+	"anittedalvdalkurotakikawasakis-an-accountantsharpartnershellasko" +
+	"yabenorddalkurskomorotsukamishihoronobeokamiminershimosuwalkis-a" +
+	"-socialistmeincheonkushirogawakustanais-an-actorkusupplieshinich" +
+	"inankutchannelkutnokuzbassnoasagamiharakuzumakis-an-actressherbr" +
+	"ookegawakvafjordkvalsundkvamlidlugolekadenagahamaroygardenglandk" +
+	"vanangenkvinesdalkvinnheradkviteseidskogkvitsoykwwwkyowariasahik" +
+	"awamishimatsumaebashikshacknetrentino-suedtirolmissileksvikongsb" +
+	"ergmisugitokonamegatakashimatsumotofukemitakeharamitourismolensk" +
+	"ongsvingermitoyoakemiuramiyazurewebsiteshikagamiishikarikaturind" +
+	"almiyotamanomjondalenmonmouthagamonticellombardiamondshinjukuman" +
+	"omontrealestateofdelawarendalenvikingatlantakasugais-an-entertai" +
+	"nermonza-brianzaporizhzhiamonza-e-della-brianzaramonzabrianzamon" +
+	"zaebrianzamonzaedellabrianzamordoviajessheiminamiuonumateramolis" +
+	"ellsyourhomeipartshinjournalismolapyatigorskomvuxn--32vp30haebar" +
+	"uminamiogunionmoriyamatsunomoriyoshiokamitsuemormoneymoroyamatsu" +
+	"sakahogithubusercontentrentinoa-adigemortgagemoscowmoseushistory" +
+	"mosjoenmoskeneshinkamigotoyohashimotokyotangomosshinshinotsurger" +
+	"ymosvikoninjamisonmovistargardmtpchonanbuildingretajimakanegasak" +
+	"itagawamuenstermugivestbyklebesbyglandmuikamogawamukochikushinon" +
+	"senergymulhousembokumamotoyamassa-carrara-massacarraramassabuske" +
+	"rudineustarnbergmunakatanemuncieszynmuosattemurmanskonskowolaqui" +
+	"larvikommunalforbundmurotorcraftrentinoaadigemusashimurayamatsus" +
+	"higemusashinoharamuseetrentinoalto-adigemuseumverenigingmutsuzaw" +
+	"amyphotoshibajddarchaeologyeongnamegawakuyachimatainaikawababia-" +
+	"goracleaningmytis-a-bookkeeperminamiyamashirokawanabelgorodeopas" +
+	"senger-associationpaviapharmacienshinshiropharmacymrussiaphilade" +
+	"lphiaareadmyblogsitephilatelyphilipshintokushimaphoenixn--3bst00" +
+	"minanophotographysiopiagetmyipartysvardoomdnsaliascolipicenord-f" +
+	"ronpictetrentinoaltoadigepictureshintomikasaharapiemontepilotshi" +
+	"nyoshitomiokanmakitchenpippuwajimapiszpittsburghofashionpizzapko" +
+	"nyvelodingenplanetariumincommbankonantanangerplantationplantshio" +
+	"jirishirifujiedaplazaplchoseikakudamatsueplomzaporizhzhelpasaden" +
+	"akhodkanagawaplumbingopmnpodlasiellakasamatsudoosandnessjoenpodz" +
+	"onepohlpokerpolkowicepoltavalle-aostatoilpomorzeszowpordenonepor" +
+	"nporsangerporsangugeporsgrunnanposts-and-telecommunicationshioya" +
+	"nagawapoznanprdpreservationpresidioprincipeprivneprochowiceprodu" +
+	"ctionshirahamatonbetsurgutsiracusaikis-bytomakomaibaraprofastlyp" +
+	"rojectrentinos-tirolpromombetsurfauskedsmokorsetagayaseljejuegos" +
+	"hikiminokamoenairforcertificationpropertieshirakoenigpropertyume" +
+	"npruszkowprzeworskogptzpvtrentinostirolpzqsldsolundsolutionshira" +
+	"ois-certifieducatorahimeshimageandsoundandvisionsomasomnamsskoga" +
+	"neis-into-carshimokawasoosopotrentinosudtirolsor-odalsor-varange" +
+	"rsorfoldsorreisahayakawakamiichikaiseiyokoshibahikariwanumatakay" +
+	"amasortlandsorumisakis-an-artisteinkjerusalembetsukuis-a-republi" +
+	"cancerresearchaeologicaliforniasouthcarolinazawasouthwesterniika" +
+	"ppusowaspace-to-rentalshiraokanonjis-foundationspbaltimore-og-ro" +
+	"msdalimoldepotaruibmdnepropetrovskaruizawaustrheimatunduhrenneso" +
+	"yokote-burggfamilyokoze12spiegelspjelkavikoryolasitespreadbettin" +
+	"gspydebergsrvareseminestordalstorenburgstorfjordstpetersburgstud" +
+	"yndns-blogdnshiratakahagis-gonestuff-4-salezajskosaigawastuttgar" +
+	"trentinosued-tirolsurreysusakis-into-cartoonshimokitayamasusonos" +
+	"uzakanumazurysuzukanzakiwakunigamihoboleslawiechoshibukawasuzuki" +
+	"s-into-gameshimonitayanagis-a-rockstarachowicesvalbardurbannefra" +
+	"nkfurtrentinosuedtirolsveiosvelvikosakaerodromedecinemailsvizzer" +
+	"aswidnicapitalswiebodzindianapolis-a-bloggerswinoujscienceandhis" +
+	"toryswisshikis-leetrentino-altoadigesxn--3ds443gtuis-savedtulava" +
+	"gisketurystykarasjoksneshishikuis-into-animegurovigorlicetuscany" +
+	"tushumanitieshisokanoyakutiatuvalle-d-aostavangertverdalvaroyvba" +
+	"mbleasecn-north-1vchoyodobashibuyachtsangovdonskoshimizumakiyose" +
+	"mitevegaskvollvenneslaskerveronarashinoverranversailleshisuifuel" +
+	"veruminnesotaketakasakis-an-anarchistoricalsocietysneshimojis-a-" +
+	"playerversicherungvestfoldvestneshitaramavestre-slidreamhostersh" +
+	"izukuishimofusaintlouis-a-bruinsfanshiranukannamiharuvestre-tote" +
+	"nnishiawakuravestvagoyvevelstadvibo-valentiavibovalentiavideovil" +
+	"lasmatartcenterprisesakikonaioirasebastopologyeonggiehtavuoatnad" +
+	"exchangeiseiroumuenchendoftheinternetcimmobilienebakkeshibechamb" +
+	"agriculturennebudapest-a-la-maisondriodejaneirochestervinnicarbo" +
+	"nia-iglesias-carboniaiglesiascarboniavinnytsiavirginiavirtualvir" +
+	"tuelvistaprinternationalfirearmshizuokanraviterboltroandinosaure" +
+	"portrentottoris-lostfoldvladikavkazanvladimirvladivostokaizukara" +
+	"tevlogvoldavolgogradvolkenkunderseaportrogstadvologdanskoshunant" +
+	"okashikiyosumypetshimotsukevolyngdalvoronezhytomyrvossevangenvot" +
+	"evotingvotoyakokamisatohobby-sitevrnxn--4it168dxn--4it797kostrom" +
+	"ahabororoskoleirfjordxn--4pvxshowaxn--54b7fta0cchtraeumtgeradeat" +
+	"nurembergrimstadxn--55qw42gxn--55qx5dxn--5js045dxn--5rtp49chungb" +
+	"ukazoxn--5rtq34kosugexn--6btw5axn--6frz82gxn--6orx2rxn--6qq986b3" +
+	"xlxn--7t0a264chungnamdalseidfjordxn--80adxhkshriramsterdamberkel" +
+	"eyxn--80ao21axn--80asehdbarcelonagareyamalopolskanlandnipropetro" +
+	"vskarumaifareastcoastaldefencebetsukubahcavuotnagaivuotnagaokaky" +
+	"otambadajozorakkestadultargiheyakumoduminamidaitomandalindaskimi" +
+	"tsubatamiasakuchinotsuchiurakawalbrzychattanooganord-odalindesne" +
+	"s3-eu-west-1xn--80aswgxn--80augustowadaejeonbukotohiradomainsura" +
+	"ncexn--8ltr62kotouraxn--8pvr4uxn--90a3academykolaivanovosibirski" +
+	"ervaapsteiermarkhangelskiptveterinairealtorlandxn--90azhagebosta" +
+	"dxn--9dbhblg6diethnologyxn--9et52uxn--andy-iraxn--aroport-byanai" +
+	"zuxn--asky-iraxn--aurskog-hland-jnbarclaycards3-fips-us-gov-west" +
+	"-1xn--avery-yuasakakinokis-slickomakiyokawaraxn--b-5gaxn--b4w605" +
+	"ferdxn--bdddj-mrabdxn--bearalvhki-y4axn--berlevg-jxaxn--bhcavuot" +
+	"na-s4axn--bhccavuotna-k7axn--bidr-5nachikatsuuraxn--bievt-0qaxn-" +
+	"-bjarky-fyandexposedogawarabikomaezakirunortonsbergxn--bjddar-pt" +
+	"akkofuefukihabmerxn--blt-elaborxn--bmlo-grajeworldxn--bod-2narit" +
+	"akurashikis-uberleetrentino-s-tirollagrigentomologyeongbukomatsu" +
+	"shimashikiyosatokamachildrensgardenxn--brnny-wuaccident-investig" +
+	"ationjukudoyamaceratabuseat-band-campaniamallamadridvagsoyerimo-" +
+	"i-ranaamesjevuemielnoboribetsuitachikawakayamagadancechirebungoo" +
+	"nomichinomiyakeisenbahnxn--brnnysund-m8accident-preventionlineat" +
+	"-urlxn--brum-voagatromsaitamatsukuris-not-certifiedunetworkanger" +
+	"xn--btsfjord-9zaxn--c1avgxn--c3s14misasaguris-an-engineeringerik" +
+	"exn--cg4bkis-very-badaddjamalborkdalxn--ciqpnxn--clchc0ea0b2g2a9" +
+	"gcdxn--comunicaes-v6a2oxn--correios-e-telecomunicaes-ghc29axn--c" +
+	"zr694barclays3-sa-east-1xn--czrs0tromsolarssonxn--czru2dxn--czrw" +
+	"28bargainstitutelekommunikationaturalhistorymuseumcentereviews3-" +
+	"us-gov-west-1xn--d1acj3barreauctionaturalsciencesnaturelles3-us-" +
+	"west-1xn--d1atrusteexn--d5qv7z876churcheltenham-radio-operaunite" +
+	"lemarkazunoxn--davvenjrga-y4axn--djrs72d6uyxn--djty4kouhokutamak" +
+	"izunokunimilitaryxn--dnna-grandrapidsigdalxn--drbak-wuaxn--dyry-" +
+	"iraxn--eckvdtc9dxn--efvn9simbirskooris-a-soxfanxn--efvy88haibara" +
+	"kitahiroshimaritimodellingxn--ehqz56nxn--elqq16hakatanotogawaxn-" +
+	"-eveni-0qa01gaxn--f6qx53axn--finny-yuaxn--fiq228c5hsimple-urlxn-" +
+	"-fiq64barrel-of-knowledgeometre-experts-comptablest-mon-blogueur" +
+	"ovisionaturbruksgymnaturhistorisches3-us-west-2xn--fiqs8sirdalxn" +
+	"--fiqz9slgbtrentinosud-tirolxn--fjord-lraxn--fjq720axn--fl-ziaxn" +
+	"--flor-jraxn--flw351exn--fpcrj9c3dxn--frde-granexn--frna-woarais" +
+	"-very-evillagexn--frya-hraxn--fzc2c9e2chuvashiaxn--gecrj9circusc" +
+	"ulturecreationxn--ggaviika-8ya47hakodatexasiaxn--gildeskl-g0axn-" +
+	"-givuotna-8yaotsurnadalxn--gjvik-wuaxn--gls-elacaixaxn--gmq050is" +
+	"-very-gooddaxn--gmqw5axn--h-2failxn--h1aeghakonexn--h2brj9citica" +
+	"sadelamonedaxn--hbmer-xqaxn--hcesuolo-7ya35barrell-of-knowledgeo" +
+	"rgiauthordalandroidiscountydalillesandiegotsukisosakitagatakaham" +
+	"arburgjemnes3-ap-southeast-1xn--hery-iraxn--hgebostad-g3axn--hmm" +
+	"rfeasta-s4acityeatsanjotoyonezawaxn--hnefoss-q1axn--hobl-iraxn--" +
+	"holtlen-hxaxn--hpmir-xqaxn--hxt814exn--hyanger-q1axn--hylandet-5" +
+	"4axn--i1b6b1a6a2exn--imr513nxn--indery-fyaroslavlaanderenxn--io0" +
+	"a7is-very-nicexn--j1amhakubanxn--j6w193gxn--jlster-byasakaiminat" +
+	"oyokawaxn--jrpeland-54axn--k7yn95exn--karmy-yuaxn--kbrq7oxn--kcr" +
+	"x77d1x4axn--kfjord-iuaxn--klbu-woaxn--klt787dxn--kltp7dxn--kltx9" +
+	"axn--klty5xn--3e0b707exn--koluokta-7ya57hakuis-a-linux-useranish" +
+	"iaritabashijonawatexn--kprw13dxn--kpry57dxn--kput3is-very-sweetr" +
+	"entino-stirolxn--krager-gyasugis-with-thebandontexisteingeekomfo" +
+	"rbalsfjordivttasvuotnakaiwamizawaustraliaisondre-landebudejjuedi" +
+	"schesapeakebayerndirectoryggeelvinckarpaczeladz-2xn--kranghke-b0" +
+	"axn--krdsherad-m8axn--krehamn-dxaxn--krjohka-hwab49jetztrentino-" +
+	"sud-tirolxn--ksnes-uuaxn--kvfjord-nxaxn--kvitsy-fyasuokaratsugin" +
+	"amikatagamilanoxn--kvnangen-k0axn--l-1fairwindslupskopervikommun" +
+	"exn--l1accentureklamurskjaknoluoktaikicks-assedicivilaviationxn-" +
+	"-laheadju-7yatominamibosojavaksdalxn--langevg-jxaxn--lcvr32dxn--" +
+	"ldingen-q1axn--leagaviika-52bashkiriautomotivelandiscoveryokamik" +
+	"awanehonbetsuruokamakurazakirkenes3-ap-southeast-2xn--lesund-hua" +
+	"xn--lgbbat1ad8jevnakerxn--lgrd-poacivilisationxn--lhppi-xqaxn--l" +
+	"inds-pratoyonakagyokutomskounosunndalxn--lns-qlavangenxn--loabt-" +
+	"0qaxn--lrdal-sraxn--lrenskog-54axn--lt-liacivilizationxn--lten-g" +
+	"ranvindafjordxn--lury-iraxn--mely-iraxn--merker-kuaxn--mgb2ddesn" +
+	"zxn--mgb9awbfcastresistancexn--mgba3a3ejtrysilkoseis-a-studental" +
+	"xn--mgba3a4f16axn--mgba3a4franamizuholdingsmileikangerxn--mgbaam" +
+	"7a8hakusandoyxn--mgbab2bdxn--mgbayh7gpaduaxn--mgbb9fbpobanazawax" +
+	"n--mgbbh1a71exn--mgbc0a9azcgxn--mgberp4a5d4a87gxn--mgberp4a5d4ar" +
+	"xn--mgbqly7c0a67fbcivilwarmiamibungotakadaxn--mgbqly7cvafranzisk" +
+	"anerimarinexn--mgbt3dhdxn--mgbtf8flatangerxn--mgbx4cd0abogadocsc" +
+	"bgxn--mjndalen-64axn--mk0axisleofmanchesterxn--mkru45issmarterth" +
+	"anyouthadselfipirangaxn--mlatvuopmi-s4axn--mli-tlazioxn--mlselv-" +
+	"iuaxn--moreke-juaxn--mori-qsakatakatsukiwatarailwayxn--mosjen-ey" +
+	"atsukareliaxn--mot-tlaxn--mre-og-romsdal-qqbasilicataniautoscana" +
+	"dagestangeologyomitanobihirosakikamijimatta-varjjatarantomobenev" +
+	"entochiokinoshimalselvendrellimanowarudastronomyokohamamatsudaeg" +
+	"ubs3-ap-northeast-1xn--msy-ula0haldenxn--mtta-vrjjat-k7aflakstad" +
+	"aokagakibichuozuerichampionshiphopenair-surveillanceoxn--muost-0" +
+	"qaxn--mxtq1misawaxn--ngbc5azdxn--ngbe9e0axn--nit225kouyamashikok" +
+	"uchuoxn--nmesjevuemie-tcbalestrandabergamoarekepnordlandxn--nnx3" +
+	"88axn--nodessakegawaxn--nqv7fs00emaxn--nry-yla5gxn--ntso0iqx3axn" +
+	"--ntsq17gxn--nttery-byaeseoullensvangxn--nvuotna-hwaxn--nyqy26ax" +
+	"n--o1achelyabinskydivingxn--o3cw4halsagaeroclubindallaspeziaxn--" +
+	"od0algxn--od0aq3batochigifts3-website-ap-northeast-1xn--ogbpf8fl" +
+	"ekkefjordxn--oppegrd-ixaxn--ostery-fyatsushiroxn--osyro-wuaxn--p" +
+	"1acfagentsolognexn--p1aiwatexn--pgbs0dhammarfeastafricanonoichik" +
+	"awamisatodayxn--porsgu-sta26fedjelenia-goraxn--pssu33lxn--q9jyb4" +
+	"claimsannanxn--qcka1pmclickchristiansburgripexn--qqqt11misconfus" +
+	"edxn--rady-iraxn--rdal-poaxn--rde-ulaxn--rdy-0nabariwatsukiyonow" +
+	"ruzhgorodoyxn--rennesy-v1axn--rhkkervju-01afermobilyxn--rholt-mr" +
+	"agoworse-thandaxn--rhqv96gxn--rht27zxn--rht3dxn--rht61exn--risa-" +
+	"5naroyxn--risr-iraxn--rland-uuaxn--rlingen-mxaxn--rmskog-byawara" +
+	"xn--rny31hamurakamigoris-a-llamarumorimachidaxn--rros-gratangenx" +
+	"n--rskog-uuaxn--rst-0narusawaxn--rsta-francaiseharaxn--ryken-vua" +
+	"xn--ryrvik-byawatahamaxn--s-1faithandsoniigatakamatsukawaxn--s9b" +
+	"rj9clinicodynaliascoli-picenord-aurdalukowilliamhillupinkddieldd" +
+	"anuorrissadollsannohembygdsforbundxn--sandnessjen-ogbizhevskouzu" +
+	"shimasoyxn--sandy-yuaxn--seral-lraxn--ses554gxn--sgne-gratis-a-b" +
+	"ulls-fanxn--skierv-utazasnesoddenmarketplacexn--skjervy-v1axn--s" +
+	"kjk-soaxn--sknit-yqaxn--sknland-fxaxn--slat-5narutokorozawaxn--s" +
+	"lt-elabourxn--smla-hraxn--smna-grazxn--snase-nraxn--sndre-land-0" +
+	"cbatsfjordnpagespeedmobilizerobiravocatanzaroweddingjerdrumemori" +
+	"alimitedivtasvuodnaharimamurogawaukraanghkemerovodkagoshimaizuru" +
+	"btsovskjervoyagemologicallfinanz-1xn--snes-poaxn--snsa-roaxn--sr" +
+	"-aurdal-l8axn--sr-fron-q1axn--sr-odal-q1axn--sr-varanger-ggbauha" +
+	"ustevollinkasaokaminoyamatsuriinetarnobrzegjerstadotsuruginankok" +
+	"ubunjiitatebayashiibahccavuotnagaraumallorcabbottarumizusawavoue" +
+	"squarezzoologyonabarudmurtiaurskog-holandroverhalla-speziamuseme" +
+	"ntambovalle-daostavernarvikarlsoyekaterinburgdyniaeroportalahead" +
+	"judaicaarborteaches-yogasawaracing12000xn--srfold-byaxn--srreisa" +
+	"-q1axn--srum-graxn--stfold-9xaxn--stjrdal-s1axn--stjrdalshalsen-" +
+	"sqbbcngjesdalinzaiiyamanobeeldengeluidownloadrangedalipetskashib" +
+	"atakarazukamiokamikoaniihamatamakawajimarylandrobakrehamnatuurwe" +
+	"tenschappenaumburgjovikashiharaxaustinnasushiobaraquariumeloyali" +
+	"stockholmestrandigitalillehammerfest-le-patrondheimemerckarmoyok" +
+	"osukariyaltaijibigawagroks-theaternopilawakembuchikujobojibestad" +
+	"gcagliaridagawatchandclock-uralsk12xn--stre-toten-zcbbvacationsn" +
+	"asaarlandurhamburglassassinationalheritagematsubarakawachinagano" +
+	"haraogashimadachicagoboats3-website-ap-southeast-1xn--tjme-hraxn" +
+	"--tn0agrinetbankzxn--tnsberg-q1axn--tor131oxn--trany-yuaxn--trgs" +
+	"tad-r1axn--trna-woaxn--troms-zuaxn--tysvr-vraxn--uc0atvedestrand" +
+	"xn--uc0ay4axn--uist22hangglidingxn--uisz3gxn--unjrga-rtamayufuet" +
+	"tertdasnetzxn--unup4yxn--uuwu58axn--vads-jraxn--vard-jraxn--vegr" +
+	"shei-c0axn--vermgensberater-ctbeppubolognagasukesennumalvikashiw" +
+	"araxn--vermgensberatung-pwberlincolnaustdalivornoceanographics3-" +
+	"website-ap-southeast-2xn--vestvgy-ixa6oxn--vg-yiabruzzoologicala" +
+	"bamagasakishimabaragusartsaritsynxn--vgan-qoaxn--vgsy-qoa0jewelr" +
+	"yxn--vgu402clintonoshoesanokfhskgroks-thisayamanashichinoheguris" +
+	"-a-democratoyonoxn--vhquvarggatrevisokndalxn--vler-qoaxn--vre-ei" +
+	"ker-k8axn--vrggt-xqadxn--vry-yla5gxn--vuq861bernuorockartuzyonag" +
+	"oyaxn--wcvs22dxn--wgbh1clothingrongaxn--wgbl6axn--xhq521beskidyn" +
+	"-o-saurlandes3-website-eu-west-1xn--xkc2al3hye2axn--xkc2dl3a5ee0" +
+	"hangoutsystemscloudapparocherkasyzranzanxn--yer-znarviikananporo" +
+	"xn--yfro4i67oxn--ygarden-p1axn--ygbi2ammxn--45brj9christmasakimo" +
+	"betsuwanouchikuseihichisobetsuldalucernexn--ystre-slidre-ujbetai" +
+	"naboxfordealstahaugesundvrdnsdojogaszkolajollanbibaidarqhachijor" +
+	"pelandyndns-freemasonryonaguniversityoriikashiwazakiwienaval-d-a" +
+	"osta-valleyoutubentleyukindustriesteambulancebinagisodegauraxn--" +
+	"zbx025dxn--zf0ao64axn--zf0avxn--45q11chromedicaltanissettaishino" +
+	"makinderoyxn--zfr164bhartipschlesisches3-website-sa-east-1xxxn--" +
+	"4gbriminingxz"
 
 // nodes is the list of nodes. Each node is represented as a uint32, which
 // encodes the node's children, wildcard bit and node type (as an index into
@@ -418,6843 +435,7112 @@
 //	[15 bits] text index
 //	[ 6 bits] text length
 var nodes = [...]uint32{
-	0x002a09c6, // n0x0000 c0x0000 (---------------)  + I abbott
-	0x0033eac7, // n0x0001 c0x0000 (---------------)  + I abogado
-	0x01a01d82, // n0x0002 c0x0006 (n0x0333-n0x0339)  + I ac
-	0x002fe307, // n0x0003 c0x0000 (---------------)  + I academy
-	0x00333ac9, // n0x0004 c0x0000 (---------------)  + I accenture
-	0x002b83cb, // n0x0005 c0x0000 (---------------)  + I accountants
-	0x002df886, // n0x0006 c0x0000 (---------------)  + I active
-	0x00237f05, // n0x0007 c0x0000 (---------------)  + I actor
-	0x01e08902, // n0x0008 c0x0007 (n0x0339-n0x033a)  + I ad
-	0x022100c2, // n0x0009 c0x0008 (n0x033a-n0x0341)  + I ae
-	0x0267a1c4, // n0x000a c0x0009 (n0x0341-n0x039a)  + I aero
-	0x02a18302, // n0x000b c0x000a (n0x039a-n0x039f)  + I af
-	0x00284506, // n0x000c c0x0000 (---------------)  + I africa
-	0x02e00482, // n0x000d c0x000b (n0x039f-n0x03a4)  + I ag
-	0x0023a686, // n0x000e c0x0000 (---------------)  + I agency
-	0x032135c2, // n0x000f c0x000c (n0x03a4-n0x03a8)  + I ai
-	0x0024cdc8, // n0x0010 c0x0000 (---------------)  + I airforce
-	0x03602082, // n0x0011 c0x000d (n0x03a8-n0x03ae)  + I al
-	0x0021d009, // n0x0012 c0x0000 (---------------)  + I allfinanz
-	0x00202806, // n0x0013 c0x0000 (---------------)  + I alsace
-	0x00200282, // n0x0014 c0x0000 (---------------)  + I am
-	0x002b97c9, // n0x0015 c0x0000 (---------------)  + I amsterdam
-	0x03a00202, // n0x0016 c0x000e (n0x03ae-n0x03b2)  + I an
-	0x00310dc7, // n0x0017 c0x0000 (---------------)  + I android
-	0x03e04382, // n0x0018 c0x000f (n0x03b2-n0x03b8)  + I ao
-	0x00280082, // n0x0019 c0x0000 (---------------)  + I aq
-	0x00280089, // n0x001a c0x0000 (---------------)  + I aquarelle
-	0x04200a42, // n0x001b c0x0010 (n0x03b8-n0x03c1)  + I ar
-	0x00246805, // n0x001c c0x0000 (---------------)  + I archi
-	0x0032eac4, // n0x001d c0x0000 (---------------)  + I army
-	0x04aeb204, // n0x001e c0x0012 (n0x03c2-n0x03c8)  + I arpa
-	0x04e00902, // n0x001f c0x0013 (n0x03c8-n0x03c9)  + I as
-	0x0023e704, // n0x0020 c0x0000 (---------------)  + I asia
-	0x002aceca, // n0x0021 c0x0000 (---------------)  + I associates
-	0x05200102, // n0x0022 c0x0014 (n0x03c9-n0x03d0)  + I at
-	0x002cfe48, // n0x0023 c0x0000 (---------------)  + I attorney
-	0x05a07ec2, // n0x0024 c0x0016 (n0x03d1-n0x03e3)  + I au
-	0x0030e587, // n0x0025 c0x0000 (---------------)  + I auction
-	0x002b39c5, // n0x0026 c0x0000 (---------------)  + I audio
-	0x003194c5, // n0x0027 c0x0000 (---------------)  + I autos
-	0x06a00502, // n0x0028 c0x001a (n0x03f1-n0x03f2)  + I aw
-	0x0026d8c2, // n0x0029 c0x0000 (---------------)  + I ax
-	0x003466c3, // n0x002a c0x0000 (---------------)  + I axa
-	0x06e034c2, // n0x002b c0x001b (n0x03f2-n0x03fe)  + I az
-	0x07201902, // n0x002c c0x001c (n0x03fe-n0x0408)  + I ba
-	0x00265304, // n0x002d c0x0000 (---------------)  + I band
-	0x0020d2c3, // n0x002e c0x0000 (---------------)  + I bar
-	0x002fc809, // n0x002f c0x0000 (---------------)  + I barcelona
-	0x00301a88, // n0x0030 c0x0000 (---------------)  + I bargains
-	0x0034c947, // n0x0031 c0x0000 (---------------)  + I bauhaus
-	0x00347046, // n0x0032 c0x0000 (---------------)  + I bayern
-	0x07616e42, // n0x0033 c0x001d (n0x0408-n0x0412)  + I bb
-	0x0033d703, // n0x0034 c0x0000 (---------------)  + I bcn
-	0x01704282, // n0x0035 c0x0005 (---------------)* o I bd
-	0x07a00e82, // n0x0036 c0x001e (n0x0412-n0x0414)  + I be
-	0x002076c4, // n0x0037 c0x0000 (---------------)  + I beer
-	0x0035e1c6, // n0x0038 c0x0000 (---------------)  + I berlin
-	0x003160c4, // n0x0039 c0x0000 (---------------)  + I best
-	0x07f3a702, // n0x003a c0x001f (n0x0414-n0x0415)  + I bf
-	0x08367842, // n0x003b c0x0020 (n0x0415-n0x0439)  + I bg
-	0x0864dc02, // n0x003c c0x0021 (n0x0439-n0x043e)  + I bh
-	0x00367606, // n0x003d c0x0000 (---------------)  + I bharti
-	0x08a00002, // n0x003e c0x0022 (n0x043e-n0x0443)  + I bi
-	0x0023a185, // n0x003f c0x0000 (---------------)  + I bible
-	0x003057c3, // n0x0040 c0x0000 (---------------)  + I bid
-	0x00202484, // n0x0041 c0x0000 (---------------)  + I bike
-	0x002063c3, // n0x0042 c0x0000 (---------------)  + I bio
-	0x08f14c43, // n0x0043 c0x0023 (n0x0443-n0x044a)  + I biz
-	0x0920e2c2, // n0x0044 c0x0024 (n0x044a-n0x044e)  + I bj
-	0x002838c5, // n0x0045 c0x0000 (---------------)  + I black
-	0x002838cb, // n0x0046 c0x0000 (---------------)  + I blackfriday
-	0x0020f909, // n0x0047 c0x0000 (---------------)  + I bloomberg
-	0x00210744, // n0x0048 c0x0000 (---------------)  + I blue
-	0x096109c2, // n0x0049 c0x0025 (n0x044e-n0x0453)  + I bm
-	0x002109c3, // n0x004a c0x0000 (---------------)  + I bmw
-	0x01611442, // n0x004b c0x0005 (---------------)* o I bn
-	0x0035cac3, // n0x004c c0x0000 (---------------)  + I bnl
-	0x0021144a, // n0x004d c0x0000 (---------------)  + I bnpparibas
-	0x09a00fc2, // n0x004e c0x0026 (n0x0453-n0x045c)  + I bo
-	0x002121c4, // n0x004f c0x0000 (---------------)  + I bond
-	0x002cbf83, // n0x0050 c0x0000 (---------------)  + I boo
-	0x00215a48, // n0x0051 c0x0000 (---------------)  + I boutique
-	0x09e06842, // n0x0052 c0x0027 (n0x045c-n0x04a2)  + I br
-	0x002210c8, // n0x0053 c0x0000 (---------------)  + I brussels
-	0x0a605ec2, // n0x0054 c0x0029 (n0x04a3-n0x04a8)  + I bs
-	0x0aa45dc2, // n0x0055 c0x002a (n0x04a8-n0x04ad)  + I bt
-	0x0029a948, // n0x0056 c0x0000 (---------------)  + I budapest
-	0x0022c005, // n0x0057 c0x0000 (---------------)  + I build
-	0x00247f48, // n0x0058 c0x0000 (---------------)  + I builders
-	0x002c6848, // n0x0059 c0x0000 (---------------)  + I business
-	0x00228744, // n0x005a c0x0000 (---------------)  + I buzz
-	0x00228942, // n0x005b c0x0000 (---------------)  + I bv
-	0x0ae29a82, // n0x005c c0x002b (n0x04ad-n0x04af)  + I bw
-	0x0b224042, // n0x005d c0x002c (n0x04af-n0x04b3)  + I by
-	0x0b62a402, // n0x005e c0x002d (n0x04b3-n0x04b9)  + I bz
-	0x0022a403, // n0x005f c0x0000 (---------------)  + I bzh
-	0x0ba0bc02, // n0x0060 c0x002e (n0x04b9-n0x04ca)  + I ca
-	0x002a0983, // n0x0061 c0x0000 (---------------)  + I cab
-	0x0020bc03, // n0x0062 c0x0000 (---------------)  + I cal
-	0x00284606, // n0x0063 c0x0000 (---------------)  + I camera
-	0x0023d484, // n0x0064 c0x0000 (---------------)  + I camp
-	0x002aa6ce, // n0x0065 c0x0000 (---------------)  + I cancerresearch
-	0x002ed748, // n0x0066 c0x0000 (---------------)  + I capetown
-	0x002f7387, // n0x0067 c0x0000 (---------------)  + I capital
-	0x002d3e47, // n0x0068 c0x0000 (---------------)  + I caravan
-	0x0023e985, // n0x0069 c0x0000 (---------------)  + I cards
-	0x00360984, // n0x006a c0x0000 (---------------)  + I care
-	0x00360986, // n0x006b c0x0000 (---------------)  + I career
-	0x00360987, // n0x006c c0x0000 (---------------)  + I careers
-	0x00266647, // n0x006d c0x0000 (---------------)  + I cartier
-	0x00350744, // n0x006e c0x0000 (---------------)  + I casa
-	0x00254804, // n0x006f c0x0000 (---------------)  + I cash
-	0x00247d03, // n0x0070 c0x0000 (---------------)  + I cat
-	0x00247d08, // n0x0071 c0x0000 (---------------)  + I catering
-	0x00349643, // n0x0072 c0x0000 (---------------)  + I cba
-	0x0035ca83, // n0x0073 c0x0000 (---------------)  + I cbn
-	0x0be19f02, // n0x0074 c0x002f (n0x04ca-n0x04ce)  + I cc
-	0x0c30d342, // n0x0075 c0x0030 (n0x04ce-n0x04cf)  + I cd
-	0x00240f86, // n0x0076 c0x0000 (---------------)  + I center
-	0x0024cf43, // n0x0077 c0x0000 (---------------)  + I ceo
-	0x002f1484, // n0x0078 c0x0000 (---------------)  + I cern
-	0x0c74e442, // n0x0079 c0x0031 (n0x04cf-n0x04d0)  + I cf
-	0x0034e443, // n0x007a c0x0000 (---------------)  + I cfa
-	0x002147c2, // n0x007b c0x0000 (---------------)  + I cg
-	0x0ca00602, // n0x007c c0x0032 (n0x04d0-n0x04d1)  + I ch
-	0x002b7bc7, // n0x007d c0x0000 (---------------)  + I channel
-	0x00322e85, // n0x007e c0x0000 (---------------)  + I cheap
-	0x002d2ac9, // n0x007f c0x0000 (---------------)  + I christmas
-	0x002f1186, // n0x0080 c0x0000 (---------------)  + I chrome
-	0x00329206, // n0x0081 c0x0000 (---------------)  + I church
-	0x0ce18c02, // n0x0082 c0x0033 (n0x04d1-n0x04e0)  + I ci
-	0x00350645, // n0x0083 c0x0000 (---------------)  + I citic
-	0x00357e04, // n0x0084 c0x0000 (---------------)  + I city
-	0x0d200882, // n0x0085 c0x0034 (n0x04e0-n0x04e1)* o I ck
-	0x0d6007c2, // n0x0086 c0x0035 (n0x04e1-n0x04e5)  + I cl
-	0x0022c346, // n0x0087 c0x0000 (---------------)  + I claims
-	0x00237b08, // n0x0088 c0x0000 (---------------)  + I cleaning
-	0x0022d3c5, // n0x0089 c0x0000 (---------------)  + I click
-	0x0022d886, // n0x008a c0x0000 (---------------)  + I clinic
-	0x0022e648, // n0x008b c0x0000 (---------------)  + I clothing
-	0x002a4284, // n0x008c c0x0000 (---------------)  + I club
-	0x0da5fec2, // n0x008d c0x0036 (n0x04e5-n0x04e9)  + I cm
-	0x0de309c2, // n0x008e c0x0037 (n0x04e9-n0x0516)  + I cn
-	0x0ea07a02, // n0x008f c0x003a (n0x0518-n0x0525)  + I co
-	0x00340005, // n0x0090 c0x0000 (---------------)  + I codes
-	0x00261c86, // n0x0091 c0x0000 (---------------)  + I coffee
-	0x00230e07, // n0x0092 c0x0000 (---------------)  + I college
-	0x00231107, // n0x0093 c0x0000 (---------------)  + I cologne
-	0x0ee22603, // n0x0094 c0x003b (n0x0525-n0x05e8)  + I com
-	0x002cc2c8, // n0x0095 c0x0000 (---------------)  + I commbank
-	0x00233189, // n0x0096 c0x0000 (---------------)  + I community
-	0x002337c7, // n0x0097 c0x0000 (---------------)  + I company
-	0x00233bc8, // n0x0098 c0x0000 (---------------)  + I computer
-	0x002343c6, // n0x0099 c0x0000 (---------------)  + I condos
-	0x00234d8c, // n0x009a c0x0000 (---------------)  + I construction
-	0x0023608a, // n0x009b c0x0000 (---------------)  + I consulting
-	0x00237dcb, // n0x009c c0x0000 (---------------)  + I contractors
-	0x00238f47, // n0x009d c0x0000 (---------------)  + I cooking
-	0x00239404, // n0x009e c0x0000 (---------------)  + I cool
-	0x00239dc4, // n0x009f c0x0000 (---------------)  + I coop
-	0x00284947, // n0x00a0 c0x0000 (---------------)  + I country
-	0x0fe18282, // n0x00a1 c0x003f (n0x0609-n0x0610)  + I cr
-	0x0023e806, // n0x00a2 c0x0000 (---------------)  + I credit
-	0x0023e80a, // n0x00a3 c0x0000 (---------------)  + I creditcard
-	0x0023fe43, // n0x00a4 c0x0000 (---------------)  + I crs
-	0x002403c7, // n0x00a5 c0x0000 (---------------)  + I cruises
-	0x10240742, // n0x00a6 c0x0040 (n0x0610-n0x0616)  + I cu
-	0x0024074a, // n0x00a7 c0x0000 (---------------)  + I cuisinella
-	0x107350c2, // n0x00a8 c0x0041 (n0x0616-n0x0617)  + I cv
-	0x10b4c1c2, // n0x00a9 c0x0042 (n0x0617-n0x061b)  + I cw
-	0x10e41802, // n0x00aa c0x0043 (n0x061b-n0x061d)  + I cx
-	0x0160c202, // n0x00ab c0x0005 (---------------)* o I cy
-	0x002cfc85, // n0x00ac c0x0000 (---------------)  + I cymru
-	0x11223342, // n0x00ad c0x0044 (n0x061d-n0x061e)  + I cz
-	0x00220e45, // n0x00ae c0x0000 (---------------)  + I dabur
-	0x00303783, // n0x00af c0x0000 (---------------)  + I dad
-	0x00309f05, // n0x00b0 c0x0000 (---------------)  + I dance
-	0x0021dfc6, // n0x00b1 c0x0000 (---------------)  + I dating
-	0x00374c86, // n0x00b2 c0x0000 (---------------)  + I datsun
-	0x00209ec3, // n0x00b3 c0x0000 (---------------)  + I day
-	0x11602dc2, // n0x00b4 c0x0045 (n0x061e-n0x0626)  + I de
-	0x003661c5, // n0x00b5 c0x0000 (---------------)  + I deals
-	0x00263506, // n0x00b6 c0x0000 (---------------)  + I degree
-	0x00243588, // n0x00b7 c0x0000 (---------------)  + I democrat
-	0x002b1286, // n0x00b8 c0x0000 (---------------)  + I dental
-	0x00275a47, // n0x00b9 c0x0000 (---------------)  + I dentist
-	0x00255d84, // n0x00ba c0x0000 (---------------)  + I desi
-	0x002bf708, // n0x00bb c0x0000 (---------------)  + I diamonds
-	0x00317984, // n0x00bc c0x0000 (---------------)  + I diet
-	0x003471c7, // n0x00bd c0x0000 (---------------)  + I digital
-	0x00310f46, // n0x00be c0x0000 (---------------)  + I direct
-	0x00310f49, // n0x00bf c0x0000 (---------------)  + I directory
-	0x003155c8, // n0x00c0 c0x0000 (---------------)  + I discount
-	0x0024d702, // n0x00c1 c0x0000 (---------------)  + I dj
-	0x11a22c02, // n0x00c2 c0x0046 (n0x0626-n0x0627)  + I dk
-	0x11e3f6c2, // n0x00c3 c0x0047 (n0x0627-n0x062c)  + I dm
-	0x00344a83, // n0x00c4 c0x0000 (---------------)  + I dnp
-	0x12207b82, // n0x00c5 c0x0048 (n0x062c-n0x0636)  + I do
-	0x003589c7, // n0x00c6 c0x0000 (---------------)  + I domains
-	0x00289006, // n0x00c7 c0x0000 (---------------)  + I doosan
-	0x002ec686, // n0x00c8 c0x0000 (---------------)  + I durban
-	0x00308fc4, // n0x00c9 c0x0000 (---------------)  + I dvag
-	0x12608dc2, // n0x00ca c0x0049 (n0x0636-n0x063e)  + I dz
-	0x0021b903, // n0x00cb c0x0000 (---------------)  + I eat
-	0x12a079c2, // n0x00cc c0x004a (n0x063e-n0x064a)  + I ec
-	0x0027a643, // n0x00cd c0x0000 (---------------)  + I edu
-	0x0027a649, // n0x00ce c0x0000 (---------------)  + I education
-	0x12e02d02, // n0x00cf c0x004b (n0x064a-n0x0654)  + I ee
-	0x13208f82, // n0x00d0 c0x004c (n0x0654-n0x065d)  + I eg
-	0x002ef0c5, // n0x00d1 c0x0000 (---------------)  + I email
-	0x00207406, // n0x00d2 c0x0000 (---------------)  + I emerck
-	0x002c3ec8, // n0x00d3 c0x0000 (---------------)  + I engineer
-	0x002c3ecb, // n0x00d4 c0x0000 (---------------)  + I engineering
-	0x002f6d4b, // n0x00d5 c0x0000 (---------------)  + I enterprises
-	0x00356f09, // n0x00d6 c0x0000 (---------------)  + I equipment
-	0x01604c02, // n0x00d7 c0x0005 (---------------)* o I er
-	0x0020fc04, // n0x00d8 c0x0000 (---------------)  + I erni
-	0x13601fc2, // n0x00d9 c0x004d (n0x065d-n0x0662)  + I es
-	0x0025e7c3, // n0x00da c0x0000 (---------------)  + I esq
-	0x00284b06, // n0x00db c0x0000 (---------------)  + I estate
-	0x13e01642, // n0x00dc c0x004f (n0x0663-n0x066a)  + I et
-	0x00210502, // n0x00dd c0x0000 (---------------)  + I eu
-	0x003279ca, // n0x00de c0x0000 (---------------)  + I eurovision
-	0x0021b383, // n0x00df c0x0000 (---------------)  + I eus
-	0x00219746, // n0x00e0 c0x0000 (---------------)  + I events
-	0x00223d48, // n0x00e1 c0x0000 (---------------)  + I everbank
-	0x00208248, // n0x00e2 c0x0000 (---------------)  + I exchange
-	0x00222406, // n0x00e3 c0x0000 (---------------)  + I expert
-	0x002d9547, // n0x00e4 c0x0000 (---------------)  + I exposed
-	0x0034e484, // n0x00e5 c0x0000 (---------------)  + I fail
-	0x002a5683, // n0x00e6 c0x0000 (---------------)  + I fan
-	0x00317f84, // n0x00e7 c0x0000 (---------------)  + I farm
-	0x003404c7, // n0x00e8 c0x0000 (---------------)  + I fashion
-	0x00261d48, // n0x00e9 c0x0000 (---------------)  + I feedback
-	0x1421c5c2, // n0x00ea c0x0050 (n0x066a-n0x066d)  + I fi
-	0x00243f47, // n0x00eb c0x0000 (---------------)  + I finance
-	0x0025a289, // n0x00ec c0x0000 (---------------)  + I financial
-	0x00245bc8, // n0x00ed c0x0000 (---------------)  + I firmdale
-	0x002460c4, // n0x00ee c0x0000 (---------------)  + I fish
-	0x002460c7, // n0x00ef c0x0000 (---------------)  + I fishing
-	0x00248f07, // n0x00f0 c0x0000 (---------------)  + I fitness
-	0x0161ec82, // n0x00f1 c0x0005 (---------------)* o I fj
-	0x0176c102, // n0x00f2 c0x0005 (---------------)* o I fk
-	0x0024a047, // n0x00f3 c0x0000 (---------------)  + I flights
-	0x0024c947, // n0x00f4 c0x0000 (---------------)  + I florist
-	0x0024fa88, // n0x00f5 c0x0000 (---------------)  + I flsmidth
-	0x002504c3, // n0x00f6 c0x0000 (---------------)  + I fly
-	0x00253942, // n0x00f7 c0x0000 (---------------)  + I fm
-	0x0021c782, // n0x00f8 c0x0000 (---------------)  + I fo
-	0x002510c3, // n0x00f9 c0x0000 (---------------)  + I foo
-	0x00254e87, // n0x00fa c0x0000 (---------------)  + I forsale
-	0x0031f98a, // n0x00fb c0x0000 (---------------)  + I foundation
-	0x14612442, // n0x00fc c0x0051 (n0x066d-n0x0685)  + I fr
-	0x0025d943, // n0x00fd c0x0000 (---------------)  + I frl
-	0x0025da07, // n0x00fe c0x0000 (---------------)  + I frogans
-	0x0027eb84, // n0x00ff c0x0000 (---------------)  + I fund
-	0x0027f6c9, // n0x0100 c0x0000 (---------------)  + I furniture
-	0x00281d46, // n0x0101 c0x0000 (---------------)  + I futbol
-	0x002004c2, // n0x0102 c0x0000 (---------------)  + I ga
-	0x002027c3, // n0x0103 c0x0000 (---------------)  + I gal
-	0x00236f07, // n0x0104 c0x0000 (---------------)  + I gallery
-	0x00203ac6, // n0x0105 c0x0000 (---------------)  + I garden
-	0x0020fb02, // n0x0106 c0x0000 (---------------)  + I gb
-	0x003585c4, // n0x0107 c0x0000 (---------------)  + I gbiz
-	0x00210e82, // n0x0108 c0x0000 (---------------)  + I gd
-	0x00210e83, // n0x0109 c0x0000 (---------------)  + I gdn
-	0x14a02e82, // n0x010a c0x0052 (n0x0685-n0x068c)  + I ge
-	0x0030c5c4, // n0x010b c0x0000 (---------------)  + I gent
-	0x00262ac2, // n0x010c c0x0000 (---------------)  + I gf
-	0x14e0bb02, // n0x010d c0x0053 (n0x068c-n0x068f)  + I gg
-	0x00315b84, // n0x010e c0x0000 (---------------)  + I ggee
-	0x15244e02, // n0x010f c0x0054 (n0x068f-n0x0694)  + I gh
-	0x15601742, // n0x0110 c0x0055 (n0x0694-n0x069a)  + I gi
-	0x00335c04, // n0x0111 c0x0000 (---------------)  + I gift
-	0x00335c05, // n0x0112 c0x0000 (---------------)  + I gifts
-	0x002c5b05, // n0x0113 c0x0000 (---------------)  + I gives
-	0x0020cb42, // n0x0114 c0x0000 (---------------)  + I gl
-	0x0020cb45, // n0x0115 c0x0000 (---------------)  + I glass
-	0x0021c303, // n0x0116 c0x0000 (---------------)  + I gle
-	0x00217cc6, // n0x0117 c0x0000 (---------------)  + I global
-	0x0021cd05, // n0x0118 c0x0000 (---------------)  + I globo
-	0x00222d42, // n0x0119 c0x0000 (---------------)  + I gm
-	0x00222d45, // n0x011a c0x0000 (---------------)  + I gmail
-	0x0022aac3, // n0x011b c0x0000 (---------------)  + I gmo
-	0x0022ad03, // n0x011c c0x0000 (---------------)  + I gmx
-	0x15a010c2, // n0x011d c0x0056 (n0x069a-n0x06a0)  + I gn
-	0x00255586, // n0x011e c0x0000 (---------------)  + I google
-	0x002d9083, // n0x011f c0x0000 (---------------)  + I gop
-	0x002157c3, // n0x0120 c0x0000 (---------------)  + I gov
-	0x15ecc942, // n0x0121 c0x0057 (n0x06a0-n0x06a6)  + I gp
-	0x0023b142, // n0x0122 c0x0000 (---------------)  + I gq
-	0x16205bc2, // n0x0123 c0x0058 (n0x06a6-n0x06ac)  + I gr
-	0x00205bc8, // n0x0124 c0x0000 (---------------)  + I graphics
-	0x00359886, // n0x0125 c0x0000 (---------------)  + I gratis
-	0x0026e185, // n0x0126 c0x0000 (---------------)  + I green
-	0x002d3cc5, // n0x0127 c0x0000 (---------------)  + I gripe
-	0x002248c5, // n0x0128 c0x0000 (---------------)  + I group
-	0x00229d82, // n0x0129 c0x0000 (---------------)  + I gs
-	0x166ee5c2, // n0x012a c0x0059 (n0x06ac-n0x06b3)  + I gt
-	0x01630742, // n0x012b c0x0005 (---------------)* o I gu
-	0x002a58c4, // n0x012c c0x0000 (---------------)  + I guge
-	0x002d66c5, // n0x012d c0x0000 (---------------)  + I guide
-	0x002390c7, // n0x012e c0x0000 (---------------)  + I guitars
-	0x00274084, // n0x012f c0x0000 (---------------)  + I guru
-	0x00226382, // n0x0130 c0x0000 (---------------)  + I gw
-	0x16a00d02, // n0x0131 c0x005a (n0x06b3-n0x06b6)  + I gy
-	0x00203087, // n0x0132 c0x0000 (---------------)  + I hamburg
-	0x0034ca04, // n0x0133 c0x0000 (---------------)  + I haus
-	0x0036080a, // n0x0134 c0x0000 (---------------)  + I healthcare
-	0x00201c04, // n0x0135 c0x0000 (---------------)  + I help
-	0x0024fd04, // n0x0136 c0x0000 (---------------)  + I here
-	0x002fa546, // n0x0137 c0x0000 (---------------)  + I hermes
-	0x00310186, // n0x0138 c0x0000 (---------------)  + I hiphop
-	0x002693c3, // n0x0139 c0x0000 (---------------)  + I hiv
-	0x16e6af42, // n0x013a c0x005b (n0x06b6-n0x06cc)  + I hk
-	0x00260182, // n0x013b c0x0000 (---------------)  + I hm
-	0x1722c942, // n0x013c c0x005c (n0x06cc-n0x06d2)  + I hn
-	0x00229c08, // n0x013d c0x0000 (---------------)  + I holdings
-	0x0029f007, // n0x013e c0x0000 (---------------)  + I holiday
-	0x002a12c5, // n0x013f c0x0000 (---------------)  + I homes
-	0x002a5c05, // n0x0140 c0x0000 (---------------)  + I horse
-	0x00209344, // n0x0141 c0x0000 (---------------)  + I host
-	0x0028b887, // n0x0142 c0x0000 (---------------)  + I hosting
-	0x00227d05, // n0x0143 c0x0000 (---------------)  + I house
-	0x002ac983, // n0x0144 c0x0000 (---------------)  + I how
-	0x17635e42, // n0x0145 c0x005d (n0x06d2-n0x06d6)  + I hr
-	0x17a06f42, // n0x0146 c0x005e (n0x06d6-n0x06e7)  + I ht
-	0x17e01e02, // n0x0147 c0x005f (n0x06e7-n0x0707)  + I hu
-	0x00367f43, // n0x0148 c0x0000 (---------------)  + I ibm
-	0x18202f82, // n0x0149 c0x0060 (n0x0707-n0x0712)  + I id
-	0x18600042, // n0x014a c0x0061 (n0x0712-n0x0714)  + I ie
-	0x00253903, // n0x014b c0x0000 (---------------)  + I ifm
-	0x00201585, // n0x014c c0x0000 (---------------)  + I iinet
-	0x18a03902, // n0x014d c0x0062 (n0x0714-n0x0715)* o I il
-	0x192029c2, // n0x014e c0x0064 (n0x0716-n0x071d)  + I im
-	0x0020e804, // n0x014f c0x0000 (---------------)  + I immo
-	0x0020e80a, // n0x0150 c0x0000 (---------------)  + I immobilien
-	0x19a015c2, // n0x0151 c0x0066 (n0x071f-n0x072c)  + I in
-	0x0021aeca, // n0x0152 c0x0000 (---------------)  + I industries
-	0x0021c548, // n0x0153 c0x0000 (---------------)  + I infiniti
-	0x19e1c704, // n0x0154 c0x0067 (n0x072c-n0x0736)  + I info
-	0x00201ec3, // n0x0155 c0x0000 (---------------)  + I ing
-	0x002132c3, // n0x0156 c0x0000 (---------------)  + I ink
-	0x00301bc9, // n0x0157 c0x0000 (---------------)  + I institute
-	0x0021fac6, // n0x0158 c0x0000 (---------------)  + I insure
-	0x1a223a83, // n0x0159 c0x0068 (n0x0736-n0x0737)  + I int
-	0x0022508d, // n0x015a c0x0000 (---------------)  + I international
-	0x0024e18b, // n0x015b c0x0000 (---------------)  + I investments
-	0x1a603dc2, // n0x015c c0x0069 (n0x0737-n0x073a)  + I io
-	0x00208508, // n0x015d c0x0000 (---------------)  + I ipiranga
-	0x1aa06702, // n0x015e c0x006a (n0x073a-n0x0740)  + I iq
-	0x1ae05302, // n0x015f c0x006b (n0x0740-n0x0749)  + I ir
-	0x002f2e05, // n0x0160 c0x0000 (---------------)  + I irish
-	0x1b2046c2, // n0x0161 c0x006c (n0x0749-n0x0750)  + I is
-	0x0020dec3, // n0x0162 c0x0000 (---------------)  + I ist
-	0x0020dec8, // n0x0163 c0x0000 (---------------)  + I istanbul
-	0x1b6017c2, // n0x0164 c0x006d (n0x0750-n0x08c1)  + I it
-	0x002a9903, // n0x0165 c0x0000 (---------------)  + I iwc
-	0x002cf684, // n0x0166 c0x0000 (---------------)  + I java
-	0x1ba01f82, // n0x0167 c0x006e (n0x08c1-n0x08c4)  + I je
-	0x00260e05, // n0x0168 c0x0000 (---------------)  + I jetzt
-	0x01762202, // n0x0169 c0x0005 (---------------)* o I jm
-	0x1be03242, // n0x016a c0x006f (n0x08c4-n0x08cc)  + I jo
-	0x002deb44, // n0x016b c0x0000 (---------------)  + I jobs
-	0x002f70c6, // n0x016c c0x0000 (---------------)  + I joburg
-	0x1c2a9f42, // n0x016d c0x0070 (n0x08cc-n0x090c)  + I jp
-	0x00256b86, // n0x016e c0x0000 (---------------)  + I juegos
-	0x00323506, // n0x016f c0x0000 (---------------)  + I kaufen
-	0x01602502, // n0x0170 c0x0005 (---------------)* o I ke
-	0x29e3d042, // n0x0171 c0x00a7 (n0x0fa0-n0x0fa6)  + I kg
-	0x0160ad42, // n0x0172 c0x0005 (---------------)* o I kh
-	0x2a201542, // n0x0173 c0x00a8 (n0x0fa6-n0x0fad)  + I ki
-	0x00256d83, // n0x0174 c0x0000 (---------------)  + I kim
-	0x00226e07, // n0x0175 c0x0000 (---------------)  + I kitchen
-	0x0031b904, // n0x0176 c0x0000 (---------------)  + I kiwi
-	0x2a689682, // n0x0177 c0x00a9 (n0x0fad-n0x0fbe)  + I km
-	0x2aa1ce42, // n0x0178 c0x00aa (n0x0fbe-n0x0fc2)  + I kn
-	0x0024c305, // n0x0179 c0x0000 (---------------)  + I koeln
-	0x2ae2d0c2, // n0x017a c0x00ab (n0x0fc2-n0x0fc8)  + I kp
-	0x2b20e742, // n0x017b c0x00ac (n0x0fc8-n0x0fe6)  + I kr
-	0x00331443, // n0x017c c0x0000 (---------------)  + I krd
-	0x002ae2c4, // n0x017d c0x0000 (---------------)  + I kred
-	0x016ba802, // n0x017e c0x0005 (---------------)* o I kw
-	0x2b613442, // n0x017f c0x00ad (n0x0fe6-n0x0feb)  + I ky
-	0x2bb62802, // n0x0180 c0x00ae (n0x0feb-n0x0ff1)  + I kz
-	0x2be04d02, // n0x0181 c0x00af (n0x0ff1-n0x0ffa)  + I la
-	0x00325187, // n0x0182 c0x0000 (---------------)  + I lacaixa
-	0x0023ac84, // n0x0183 c0x0000 (---------------)  + I land
-	0x002228c7, // n0x0184 c0x0000 (---------------)  + I latrobe
-	0x0034ef06, // n0x0185 c0x0000 (---------------)  + I lawyer
-	0x2c204302, // n0x0186 c0x00b0 (n0x0ffa-n0x0fff)  + I lb
-	0x2c60ed02, // n0x0187 c0x00b1 (n0x0fff-n0x1005)  + I lc
-	0x00241383, // n0x0188 c0x0000 (---------------)  + I lds
-	0x002f0d85, // n0x0189 c0x0000 (---------------)  + I lease
-	0x0024d287, // n0x018a c0x0000 (---------------)  + I leclerc
-	0x002e0a84, // n0x018b c0x0000 (---------------)  + I lgbt
-	0x002020c2, // n0x018c c0x0000 (---------------)  + I li
-	0x003237c4, // n0x018d c0x0000 (---------------)  + I life
-	0x00244d88, // n0x018e c0x0000 (---------------)  + I lighting
-	0x0036d707, // n0x018f c0x0000 (---------------)  + I limited
-	0x002e6b04, // n0x0190 c0x0000 (---------------)  + I limo
-	0x0035e5c4, // n0x0191 c0x0000 (---------------)  + I link
-	0x2ca2d082, // n0x0192 c0x00b2 (n0x1005-n0x1013)  + I lk
-	0x00261785, // n0x0193 c0x0000 (---------------)  + I loans
-	0x00207ac6, // n0x0194 c0x0000 (---------------)  + I london
-	0x00221b85, // n0x0195 c0x0000 (---------------)  + I lotto
-	0x2ce82682, // n0x0196 c0x00b3 (n0x1013-n0x1018)  + I lr
-	0x2d202842, // n0x0197 c0x00b4 (n0x1018-n0x101a)  + I ls
-	0x2d620002, // n0x0198 c0x00b5 (n0x101a-n0x101b)  + I lt
-	0x00223144, // n0x0199 c0x0000 (---------------)  + I ltda
-	0x00202f02, // n0x019a c0x0000 (---------------)  + I lu
-	0x002363c4, // n0x019b c0x0000 (---------------)  + I luxe
-	0x0023dd46, // n0x019c c0x0000 (---------------)  + I luxury
-	0x2da05002, // n0x019d c0x00b6 (n0x101b-n0x1024)  + I lv
-	0x2de39bc2, // n0x019e c0x00b7 (n0x1024-n0x102d)  + I ly
-	0x2e2002c2, // n0x019f c0x00b8 (n0x102d-n0x1033)  + I ma
-	0x00308e86, // n0x01a0 c0x0000 (---------------)  + I madrid
-	0x0029acc6, // n0x01a1 c0x0000 (---------------)  + I maison
-	0x0029388a, // n0x01a2 c0x0000 (---------------)  + I management
-	0x002a5105, // n0x01a3 c0x0000 (---------------)  + I mango
-	0x00217ac6, // n0x01a4 c0x0000 (---------------)  + I market
-	0x00217ac9, // n0x01a5 c0x0000 (---------------)  + I marketing
-	0x2e6e83c2, // n0x01a6 c0x00b9 (n0x1033-n0x1035)  + I mc
-	0x00235302, // n0x01a7 c0x0000 (---------------)  + I md
-	0x2ea02a02, // n0x01a8 c0x00ba (n0x1035-n0x103d)  + I me
-	0x0027ab45, // n0x01a9 c0x0000 (---------------)  + I media
-	0x00290f44, // n0x01aa c0x0000 (---------------)  + I meet
-	0x002348c9, // n0x01ab c0x0000 (---------------)  + I melbourne
-	0x002073c4, // n0x01ac c0x0000 (---------------)  + I meme
-	0x003432c4, // n0x01ad c0x0000 (---------------)  + I menu
-	0x2ef39f02, // n0x01ae c0x00bb (n0x103d-n0x1045)  + I mg
-	0x0022fe42, // n0x01af c0x0000 (---------------)  + I mh
-	0x0022bec5, // n0x01b0 c0x0000 (---------------)  + I miami
-	0x0023f703, // n0x01b1 c0x0000 (---------------)  + I mil
-	0x002798c4, // n0x01b2 c0x0000 (---------------)  + I mini
-	0x2f33f482, // n0x01b3 c0x00bc (n0x1045-n0x104c)  + I mk
-	0x2f611ac2, // n0x01b4 c0x00bd (n0x104c-n0x1053)  + I ml
-	0x0160e842, // n0x01b5 c0x0005 (---------------)* o I mm
-	0x2fa298c2, // n0x01b6 c0x00be (n0x1053-n0x1057)  + I mn
-	0x2fe06c42, // n0x01b7 c0x00bf (n0x1057-n0x105c)  + I mo
-	0x0020e884, // n0x01b8 c0x0000 (---------------)  + I mobi
-	0x00268684, // n0x01b9 c0x0000 (---------------)  + I moda
-	0x00256f83, // n0x01ba c0x0000 (---------------)  + I moe
-	0x0023f186, // n0x01bb c0x0000 (---------------)  + I monash
-	0x00254609, // n0x01bc c0x0000 (---------------)  + I montblanc
-	0x002c2986, // n0x01bd c0x0000 (---------------)  + I mormon
-	0x002c2f08, // n0x01be c0x0000 (---------------)  + I mortgage
-	0x002c3106, // n0x01bf c0x0000 (---------------)  + I moscow
-	0x00294a4b, // n0x01c0 c0x0000 (---------------)  + I motorcycles
-	0x002c4f43, // n0x01c1 c0x0000 (---------------)  + I mov
-	0x00200182, // n0x01c2 c0x0000 (---------------)  + I mp
-	0x00325482, // n0x01c3 c0x0000 (---------------)  + I mq
-	0x302119c2, // n0x01c4 c0x00c0 (n0x105c-n0x105e)  + I mr
-	0x30625542, // n0x01c5 c0x00c1 (n0x105e-n0x1063)  + I ms
-	0x30a68d82, // n0x01c6 c0x00c2 (n0x1063-n0x1067)  + I mt
-	0x30e14542, // n0x01c7 c0x00c3 (n0x1067-n0x106e)  + I mu
-	0x312cb0c6, // n0x01c8 c0x00c4 (n0x106e-n0x1292)  + I museum
-	0x31619242, // n0x01c9 c0x00c5 (n0x1292-n0x12a0)  + I mv
-	0x31a10a02, // n0x01ca c0x00c6 (n0x12a0-n0x12ab)  + I mw
-	0x31e2ad42, // n0x01cb c0x00c7 (n0x12ab-n0x12b1)  + I mx
-	0x32208482, // n0x01cc c0x00c8 (n0x12b1-n0x12b8)  + I my
-	0x326d4182, // n0x01cd c0x00c9 (n0x12b8-n0x12b9)* o I mz
-	0x32a00242, // n0x01ce c0x00ca (n0x12b9-n0x12ca)  + I na
-	0x00319386, // n0x01cf c0x0000 (---------------)  + I nagoya
-	0x32e2aec4, // n0x01d0 c0x00cb (n0x12ca-n0x12cc)  + I name
-	0x002056c4, // n0x01d1 c0x0000 (---------------)  + I navy
-	0x33a0c1c2, // n0x01d2 c0x00ce (n0x12ce-n0x12cf)  + I nc
-	0x00201602, // n0x01d3 c0x0000 (---------------)  + I ne
-	0x33e01603, // n0x01d4 c0x00cf (n0x12cf-n0x12fe)  + I net
-	0x00362687, // n0x01d5 c0x0000 (---------------)  + I netbank
-	0x0028ce47, // n0x01d6 c0x0000 (---------------)  + I network
-	0x0021b347, // n0x01d7 c0x0000 (---------------)  + I neustar
-	0x0020b803, // n0x01d8 c0x0000 (---------------)  + I new
-	0x003181c5, // n0x01d9 c0x0000 (---------------)  + I nexus
-	0x34e09282, // n0x01da c0x00d3 (n0x1305-n0x130f)  + I nf
-	0x35201f02, // n0x01db c0x00d4 (n0x130f-n0x1318)  + I ng
-	0x00224203, // n0x01dc c0x0000 (---------------)  + I ngo
-	0x0026af03, // n0x01dd c0x0000 (---------------)  + I nhk
-	0x01604802, // n0x01de c0x0005 (---------------)* o I ni
-	0x002cf5c5, // n0x01df c0x0000 (---------------)  + I ninja
-	0x0024e546, // n0x01e0 c0x0000 (---------------)  + I nissan
-	0x35644442, // n0x01e1 c0x00d5 (n0x1318-n0x131b)  + I nl
-	0x35a01b82, // n0x01e2 c0x00d6 (n0x131b-n0x15f1)  + I no
-	0x01605942, // n0x01e3 c0x0005 (---------------)* o I np
-	0x3de12642, // n0x01e4 c0x00f7 (n0x1619-n0x1620)  + I nr
-	0x002eb6c3, // n0x01e5 c0x0000 (---------------)  + I nra
-	0x00323643, // n0x01e6 c0x0000 (---------------)  + I nrw
-	0x3e2267c2, // n0x01e7 c0x00f8 (n0x1620-n0x1623)  + I nu
-	0x00215183, // n0x01e8 c0x0000 (---------------)  + I nyc
-	0x3e60b642, // n0x01e9 c0x00f9 (n0x1623-n0x1633)  + I nz
-	0x0021e607, // n0x01ea c0x0000 (---------------)  + I okinawa
-	0x3ee0f9c2, // n0x01eb c0x00fb (n0x1634-n0x163d)  + I om
-	0x0022c243, // n0x01ec c0x0000 (---------------)  + I ong
-	0x0030ac03, // n0x01ed c0x0000 (---------------)  + I onl
-	0x00251103, // n0x01ee c0x0000 (---------------)  + I ooo
-	0x00237a46, // n0x01ef c0x0000 (---------------)  + I oracle
-	0x3f21f5c3, // n0x01f0 c0x00fc (n0x163d-n0x1672)  + I org
-	0x0024a347, // n0x01f1 c0x0000 (---------------)  + I organic
-	0x002589c6, // n0x01f2 c0x0000 (---------------)  + I otsuka
-	0x00245483, // n0x01f3 c0x0000 (---------------)  + I ovh
-	0x3fa001c2, // n0x01f4 c0x00fe (n0x1674-n0x167f)  + I pa
-	0x0024dcc5, // n0x01f5 c0x0000 (---------------)  + I paris
-	0x00259e08, // n0x01f6 c0x0000 (---------------)  + I partners
-	0x002ff745, // n0x01f7 c0x0000 (---------------)  + I parts
-	0x3fe02142, // n0x01f8 c0x00ff (n0x167f-n0x1686)  + I pe
-	0x4034d302, // n0x01f9 c0x0100 (n0x1686-n0x1689)  + I pf
-	0x01622d02, // n0x01fa c0x0005 (---------------)* o I pg
-	0x40605c82, // n0x01fb c0x0101 (n0x1689-n0x1691)  + I ph
-	0x002cfb08, // n0x01fc c0x0000 (---------------)  + I pharmacy
-	0x002cb785, // n0x01fd c0x0000 (---------------)  + I photo
-	0x002ce1cb, // n0x01fe c0x0000 (---------------)  + I photography
-	0x002cb786, // n0x01ff c0x0000 (---------------)  + I photos
-	0x002ce3c6, // n0x0200 c0x0000 (---------------)  + I physio
-	0x0023af04, // n0x0201 c0x0000 (---------------)  + I pics
-	0x002ce546, // n0x0202 c0x0000 (---------------)  + I pictet
-	0x002cea48, // n0x0203 c0x0000 (---------------)  + I pictures
-	0x002cf484, // n0x0204 c0x0000 (---------------)  + I pink
-	0x002d0cc5, // n0x0205 c0x0000 (---------------)  + I pizza
-	0x40ad0e02, // n0x0206 c0x0102 (n0x1691-n0x169f)  + I pk
-	0x40e0bf42, // n0x0207 c0x0103 (n0x169f-n0x174a)  + I pl
-	0x0020bf45, // n0x0208 c0x0000 (---------------)  + I place
-	0x002d44c8, // n0x0209 c0x0000 (---------------)  + I plumbing
-	0x00286f82, // n0x020a c0x0000 (---------------)  + I pm
-	0x416a9f82, // n0x020b c0x0105 (n0x1753-n0x1758)  + I pn
-	0x002d5004, // n0x020c c0x0000 (---------------)  + I pohl
-	0x002d5105, // n0x020d c0x0000 (---------------)  + I poker
-	0x002d6fc4, // n0x020e c0x0000 (---------------)  + I post
-	0x41a487c2, // n0x020f c0x0106 (n0x1758-n0x1765)  + I pr
-	0x0026d845, // n0x0210 c0x0000 (---------------)  + I praxi
-	0x002487c5, // n0x0211 c0x0000 (---------------)  + I press
-	0x41ed8443, // n0x0212 c0x0107 (n0x1765-n0x176c)  + I pro
-	0x002d86c4, // n0x0213 c0x0000 (---------------)  + I prod
-	0x002d86cb, // n0x0214 c0x0000 (---------------)  + I productions
-	0x002d9104, // n0x0215 c0x0000 (---------------)  + I prof
-	0x002dac8a, // n0x0216 c0x0000 (---------------)  + I properties
-	0x002db308, // n0x0217 c0x0000 (---------------)  + I property
-	0x42216282, // n0x0218 c0x0108 (n0x176c-n0x1773)  + I ps
-	0x426226c2, // n0x0219 c0x0109 (n0x1773-n0x177c)  + I pt
-	0x00200f43, // n0x021a c0x0000 (---------------)  + I pub
-	0x42b67582, // n0x021b c0x010a (n0x177c-n0x1782)  + I pw
-	0x42eb1ac2, // n0x021c c0x010b (n0x1782-n0x1789)  + I py
-	0x43305f42, // n0x021d c0x010c (n0x1789-n0x1791)  + I qa
-	0x00260b44, // n0x021e c0x0000 (---------------)  + I qpon
-	0x00215b86, // n0x021f c0x0000 (---------------)  + I quebec
-	0x436039c2, // n0x0220 c0x010d (n0x1791-n0x1795)  + I re
-	0x0030a107, // n0x0221 c0x0000 (---------------)  + I realtor
-	0x00246a87, // n0x0222 c0x0000 (---------------)  + I recipes
-	0x0023e843, // n0x0223 c0x0000 (---------------)  + I red
-	0x00254945, // n0x0224 c0x0000 (---------------)  + I rehab
-	0x0026dd45, // n0x0225 c0x0000 (---------------)  + I reise
-	0x0026dd46, // n0x0226 c0x0000 (---------------)  + I reisen
-	0x002039c3, // n0x0227 c0x0000 (---------------)  + I ren
-	0x002e5ec7, // n0x0228 c0x0000 (---------------)  + I rentals
-	0x0027f886, // n0x0229 c0x0000 (---------------)  + I repair
-	0x002b30c6, // n0x022a c0x0000 (---------------)  + I report
-	0x002aa50a, // n0x022b c0x0000 (---------------)  + I republican
-	0x00242484, // n0x022c c0x0000 (---------------)  + I rest
-	0x0024248a, // n0x022d c0x0000 (---------------)  + I restaurant
-	0x00222f47, // n0x022e c0x0000 (---------------)  + I reviews
-	0x0029c984, // n0x022f c0x0000 (---------------)  + I rich
-	0x00230343, // n0x0230 c0x0000 (---------------)  + I rio
-	0x002d3d03, // n0x0231 c0x0000 (---------------)  + I rip
-	0x43a00c02, // n0x0232 c0x010e (n0x1795-n0x17a1)  + I ro
-	0x002ac705, // n0x0233 c0x0000 (---------------)  + I rocks
-	0x002bd845, // n0x0234 c0x0000 (---------------)  + I rodeo
-	0x43e0ac02, // n0x0235 c0x010f (n0x17a1-n0x17a7)  + I rs
-	0x00360ac4, // n0x0236 c0x0000 (---------------)  + I rsvp
-	0x4420c6c2, // n0x0237 c0x0110 (n0x17a7-n0x182b)  + I ru
-	0x00285344, // n0x0238 c0x0000 (---------------)  + I ruhr
-	0x4470e842, // n0x0239 c0x0111 (n0x182b-n0x1834)  + I rw
-	0x00279a86, // n0x023a c0x0000 (---------------)  + I ryukyu
-	0x44a02882, // n0x023b c0x0112 (n0x1834-n0x183c)  + I sa
-	0x00261948, // n0x023c c0x0000 (---------------)  + I saarland
-	0x0023afc7, // n0x023d c0x0000 (---------------)  + I samsung
-	0x00239243, // n0x023e c0x0000 (---------------)  + I sap
-	0x002442c4, // n0x023f c0x0000 (---------------)  + I sarl
-	0x44e31a42, // n0x0240 c0x0113 (n0x183c-n0x1841)  + I sb
-	0x45218bc2, // n0x0241 c0x0114 (n0x1841-n0x1846)  + I sc
-	0x00225903, // n0x0242 c0x0000 (---------------)  + I sca
-	0x003677c3, // n0x0243 c0x0000 (---------------)  + I scb
-	0x00275c47, // n0x0244 c0x0000 (---------------)  + I schmidt
-	0x002ff84c, // n0x0245 c0x0000 (---------------)  + I scholarships
-	0x0032d386, // n0x0246 c0x0000 (---------------)  + I schule
-	0x0024e844, // n0x0247 c0x0000 (---------------)  + I scot
-	0x45602002, // n0x0248 c0x0115 (n0x1846-n0x184e)  + I sd
-	0x45a06d42, // n0x0249 c0x0116 (n0x184e-n0x1877)  + I se
-	0x003088c4, // n0x024a c0x0000 (---------------)  + I seat
-	0x002a6888, // n0x024b c0x0000 (---------------)  + I services
-	0x002b8643, // n0x024c c0x0000 (---------------)  + I sew
-	0x002488c4, // n0x024d c0x0000 (---------------)  + I sexy
-	0x45e03a82, // n0x024e c0x0117 (n0x1877-n0x187e)  + I sg
-	0x46200942, // n0x024f c0x0118 (n0x187e-n0x1883)  + I sh
-	0x002eb185, // n0x0250 c0x0000 (---------------)  + I sharp
-	0x002513c7, // n0x0251 c0x0000 (---------------)  + I shiksha
-	0x0022e185, // n0x0252 c0x0000 (---------------)  + I shoes
-	0x002dddc7, // n0x0253 c0x0000 (---------------)  + I shriram
-	0x00204682, // n0x0254 c0x0000 (---------------)  + I si
-	0x0021c247, // n0x0255 c0x0000 (---------------)  + I singles
-	0x00221882, // n0x0256 c0x0000 (---------------)  + I sj
-	0x46602202, // n0x0257 c0x0119 (n0x1883-n0x1884)  + I sk
-	0x00262103, // n0x0258 c0x0000 (---------------)  + I sky
-	0x46a08e82, // n0x0259 c0x011a (n0x1884-n0x1889)  + I sl
-	0x00229dc2, // n0x025a c0x0000 (---------------)  + I sm
-	0x46e0dd82, // n0x025b c0x011b (n0x1889-n0x1890)  + I sn
-	0x47206102, // n0x025c c0x011c (n0x1890-n0x1893)  + I so
-	0x002ad3c6, // n0x025d c0x0000 (---------------)  + I social
-	0x0027c088, // n0x025e c0x0000 (---------------)  + I software
-	0x0024b584, // n0x025f c0x0000 (---------------)  + I sohu
-	0x002e1705, // n0x0260 c0x0000 (---------------)  + I solar
-	0x002e1c89, // n0x0261 c0x0000 (---------------)  + I solutions
-	0x00214403, // n0x0262 c0x0000 (---------------)  + I soy
-	0x002e5c85, // n0x0263 c0x0000 (---------------)  + I space
-	0x002e8c87, // n0x0264 c0x0000 (---------------)  + I spiegel
-	0x002c4342, // n0x0265 c0x0000 (---------------)  + I sr
-	0x47605502, // n0x0266 c0x011d (n0x1893-n0x189f)  + I st
-	0x00204102, // n0x0267 c0x0000 (---------------)  + I su
-	0x002b7708, // n0x0268 c0x0000 (---------------)  + I supplies
-	0x002e7046, // n0x0269 c0x0000 (---------------)  + I supply
-	0x00296947, // n0x026a c0x0000 (---------------)  + I support
-	0x00366884, // n0x026b c0x0000 (---------------)  + I surf
-	0x002db147, // n0x026c c0x0000 (---------------)  + I surgery
-	0x002ebb06, // n0x026d c0x0000 (---------------)  + I suzuki
-	0x47a40a82, // n0x026e c0x011e (n0x189f-n0x18a4)  + I sv
-	0x47eee302, // n0x026f c0x011f (n0x18a4-n0x18a5)  + I sx
-	0x482162c2, // n0x0270 c0x0120 (n0x18a5-n0x18ab)  + I sy
-	0x002874c7, // n0x0271 c0x0000 (---------------)  + I systems
-	0x486081c2, // n0x0272 c0x0121 (n0x18ab-n0x18ae)  + I sz
-	0x00314246, // n0x0273 c0x0000 (---------------)  + I taipei
-	0x00224b05, // n0x0274 c0x0000 (---------------)  + I tatar
-	0x002a0b06, // n0x0275 c0x0000 (---------------)  + I tattoo
-	0x002a24c3, // n0x0276 c0x0000 (---------------)  + I tax
-	0x002005c2, // n0x0277 c0x0000 (---------------)  + I tc
-	0x48a07942, // n0x0278 c0x0122 (n0x18ae-n0x18af)  + I td
-	0x00301d8a, // n0x0279 c0x0000 (---------------)  + I technology
-	0x00223b03, // n0x027a c0x0000 (---------------)  + I tel
-	0x0023c007, // n0x027b c0x0000 (---------------)  + I temasek
-	0x00209142, // n0x027c c0x0000 (---------------)  + I tf
-	0x00230a42, // n0x027d c0x0000 (---------------)  + I tg
-	0x48e061c2, // n0x027e c0x0123 (n0x18af-n0x18b6)  + I th
-	0x00220d46, // n0x027f c0x0000 (---------------)  + I tienda
-	0x00367704, // n0x0280 c0x0000 (---------------)  + I tips
-	0x002b3545, // n0x0281 c0x0000 (---------------)  + I tirol
-	0x492412c2, // n0x0282 c0x0124 (n0x18b6-n0x18c5)  + I tj
-	0x00205802, // n0x0283 c0x0000 (---------------)  + I tk
-	0x4961c142, // n0x0284 c0x0125 (n0x18c5-n0x18c6)  + I tl
-	0x49a00142, // n0x0285 c0x0126 (n0x18c6-n0x18ce)  + I tm
-	0x49e03f82, // n0x0286 c0x0127 (n0x18ce-n0x18e2)  + I tn
-	0x4a201202, // n0x0287 c0x0128 (n0x18e2-n0x18e8)  + I to
-	0x00209e45, // n0x0288 c0x0000 (---------------)  + I today
-	0x002d8e85, // n0x0289 c0x0000 (---------------)  + I tokyo
-	0x002a0bc5, // n0x028a c0x0000 (---------------)  + I tools
-	0x002997c3, // n0x028b c0x0000 (---------------)  + I top
-	0x002cb847, // n0x028c c0x0000 (---------------)  + I toshiba
-	0x002ed844, // n0x028d c0x0000 (---------------)  + I town
-	0x00260f04, // n0x028e c0x0000 (---------------)  + I toys
-	0x00219e42, // n0x028f c0x0000 (---------------)  + I tp
-	0x4a605542, // n0x0290 c0x0129 (n0x18e8-n0x18fd)  + I tr
-	0x0022ee85, // n0x0291 c0x0000 (---------------)  + I trade
-	0x002639c8, // n0x0292 c0x0000 (---------------)  + I training
-	0x00296ac6, // n0x0293 c0x0000 (---------------)  + I travel
-	0x4ae04ec2, // n0x0294 c0x012b (n0x18fe-n0x190f)  + I tt
-	0x002ef203, // n0x0295 c0x0000 (---------------)  + I tui
-	0x4b292602, // n0x0296 c0x012c (n0x190f-n0x1913)  + I tv
-	0x4b608d02, // n0x0297 c0x012d (n0x1913-n0x1921)  + I tw
-	0x4ba45f42, // n0x0298 c0x012e (n0x1921-n0x192d)  + I tz
-	0x4be13582, // n0x0299 c0x012f (n0x192d-n0x197b)  + I ua
-	0x4c204142, // n0x029a c0x0130 (n0x197b-n0x1983)  + I ug
-	0x4c600402, // n0x029b c0x0131 (n0x1983-n0x198e)  + I uk
-	0x003688ca, // n0x029c c0x0000 (---------------)  + I university
-	0x00222b03, // n0x029d c0x0000 (---------------)  + I uno
-	0x002561c3, // n0x029e c0x0000 (---------------)  + I uol
-	0x4d2054c2, // n0x029f c0x0134 (n0x1990-n0x19cf)  + I us
-	0x5b6193c2, // n0x02a0 c0x016d (n0x1a72-n0x1a78)  + I uy
-	0x5ba01442, // n0x02a1 c0x016e (n0x1a78-n0x1a7c)  + I uz
-	0x002000c2, // n0x02a2 c0x0000 (---------------)  + I va
-	0x002703c9, // n0x02a3 c0x0000 (---------------)  + I vacations
-	0x5bef1142, // n0x02a4 c0x016f (n0x1a7c-n0x1a82)  + I vc
-	0x5c202642, // n0x02a5 c0x0170 (n0x1a82-n0x1a93)  + I ve
-	0x002f1d05, // n0x02a6 c0x0000 (---------------)  + I vegas
-	0x00238208, // n0x02a7 c0x0000 (---------------)  + I ventures
-	0x002f31cc, // n0x02a8 c0x0000 (---------------)  + I versicherung
-	0x0023bf43, // n0x02a9 c0x0000 (---------------)  + I vet
-	0x00243d02, // n0x02aa c0x0000 (---------------)  + I vg
-	0x5c6032c2, // n0x02ab c0x0171 (n0x1a93-n0x1a98)  + I vi
-	0x002c1806, // n0x02ac c0x0000 (---------------)  + I viajes
-	0x002f6a06, // n0x02ad c0x0000 (---------------)  + I villas
-	0x00238dc6, // n0x02ae c0x0000 (---------------)  + I vision
-	0x0032b58a, // n0x02af c0x0000 (---------------)  + I vlaanderen
-	0x5ca0ff42, // n0x02b0 c0x0172 (n0x1a98-n0x1aa4)  + I vn
-	0x00317385, // n0x02b1 c0x0000 (---------------)  + I vodka
-	0x002fb0c4, // n0x02b2 c0x0000 (---------------)  + I vote
-	0x002fb1c6, // n0x02b3 c0x0000 (---------------)  + I voting
-	0x002fb344, // n0x02b4 c0x0000 (---------------)  + I voto
-	0x002220c6, // n0x02b5 c0x0000 (---------------)  + I voyage
-	0x5ce03ec2, // n0x02b6 c0x0173 (n0x1aa4-n0x1aa8)  + I vu
-	0x002d0105, // n0x02b7 c0x0000 (---------------)  + I wales
-	0x00253784, // n0x02b8 c0x0000 (---------------)  + I wang
-	0x00200545, // n0x02b9 c0x0000 (---------------)  + I watch
-	0x0021f2c6, // n0x02ba c0x0000 (---------------)  + I webcam
-	0x00205e47, // n0x02bb c0x0000 (---------------)  + I website
-	0x002d6bc3, // n0x02bc c0x0000 (---------------)  + I wed
-	0x0031e4c7, // n0x02bd c0x0000 (---------------)  + I wedding
-	0x00210a42, // n0x02be c0x0000 (---------------)  + I wf
-	0x00229ac7, // n0x02bf c0x0000 (---------------)  + I whoswho
-	0x0031b984, // n0x02c0 c0x0000 (---------------)  + I wien
-	0x0024ebc4, // n0x02c1 c0x0000 (---------------)  + I wiki
-	0x0022fccb, // n0x02c2 c0x0000 (---------------)  + I williamhill
-	0x0029fc43, // n0x02c3 c0x0000 (---------------)  + I wme
-	0x00224704, // n0x02c4 c0x0000 (---------------)  + I work
-	0x0024f485, // n0x02c5 c0x0000 (---------------)  + I works
-	0x00353805, // n0x02c6 c0x0000 (---------------)  + I world
-	0x5d208182, // n0x02c7 c0x0174 (n0x1aa8-n0x1aaf)  + I ws
-	0x002adb03, // n0x02c8 c0x0000 (---------------)  + I wtc
-	0x002ba843, // n0x02c9 c0x0000 (---------------)  + I wtf
-	0x0024184b, // n0x02ca c0x0000 (---------------)  + I xn--1qqw23a
-	0x002595ca, // n0x02cb c0x0000 (---------------)  + I xn--30rr7y
-	0x0025dc4b, // n0x02cc c0x0000 (---------------)  + I xn--3bst00m
-	0x0026fbcb, // n0x02cd c0x0000 (---------------)  + I xn--3ds443g
-	0x0027d6cc, // n0x02ce c0x0000 (---------------)  + I xn--3e0b707e
-	0x0029f3cb, // n0x02cf c0x0000 (---------------)  + I xn--45brj9c
-	0x002a1aca, // n0x02d0 c0x0000 (---------------)  + I xn--45q11c
-	0x002cc5ca, // n0x02d1 c0x0000 (---------------)  + I xn--4gbrim
-	0x002cd40e, // n0x02d2 c0x0000 (---------------)  + I xn--54b7fta0cc
-	0x002ee34b, // n0x02d3 c0x0000 (---------------)  + I xn--55qw42g
-	0x003732ca, // n0x02d4 c0x0000 (---------------)  + I xn--55qx5d
-	0x0037428b, // n0x02d5 c0x0000 (---------------)  + I xn--6frz82g
-	0x0037528e, // n0x02d6 c0x0000 (---------------)  + I xn--6qq986b3xl
-	0x002fbd0c, // n0x02d7 c0x0000 (---------------)  + I xn--80adxhks
-	0x002fc28b, // n0x02d8 c0x0000 (---------------)  + I xn--80ao21a
-	0x002fc54c, // n0x02d9 c0x0000 (---------------)  + I xn--80asehdb
-	0x002fd1ca, // n0x02da c0x0000 (---------------)  + I xn--80aswg
-	0x5d6fe10a, // n0x02db c0x0175 (n0x1aaf-n0x1ab5)  + I xn--90a3ac
-	0x0030080a, // n0x02dc c0x0000 (---------------)  + I xn--9et52u
-	0x00303e0e, // n0x02dd c0x0000 (---------------)  + I xn--b4w605ferd
-	0x0030bdc9, // n0x02de c0x0000 (---------------)  + I xn--c1avg
-	0x0030c00a, // n0x02df c0x0000 (---------------)  + I xn--cg4bki
-	0x0030ce56, // n0x02e0 c0x0000 (---------------)  + I xn--clchc0ea0b2g2a9gcd
-	0x0030e1cb, // n0x02e1 c0x0000 (---------------)  + I xn--czr694b
-	0x00312f4a, // n0x02e2 c0x0000 (---------------)  + I xn--czrs0t
-	0x0031344a, // n0x02e3 c0x0000 (---------------)  + I xn--czru2d
-	0x00318a8b, // n0x02e4 c0x0000 (---------------)  + I xn--d1acj3b
-	0x0031c0cb, // n0x02e5 c0x0000 (---------------)  + I xn--efvy88h
-	0x0031d38e, // n0x02e6 c0x0000 (---------------)  + I xn--fiq228c5hs
-	0x0031dd8a, // n0x02e7 c0x0000 (---------------)  + I xn--fiq64b
-	0x0031ed0a, // n0x02e8 c0x0000 (---------------)  + I xn--fiqs8s
-	0x0031f38a, // n0x02e9 c0x0000 (---------------)  + I xn--fiqz9s
-	0x0031ff4b, // n0x02ea c0x0000 (---------------)  + I xn--fjq720a
-	0x0032078b, // n0x02eb c0x0000 (---------------)  + I xn--flw351e
-	0x00320a4d, // n0x02ec c0x0000 (---------------)  + I xn--fpcrj9c3d
-	0x00321b0d, // n0x02ed c0x0000 (---------------)  + I xn--fzc2c9e2c
-	0x003230cb, // n0x02ee c0x0000 (---------------)  + I xn--gecrj9c
-	0x0032634b, // n0x02ef c0x0000 (---------------)  + I xn--h2brj9c
-	0x0032a28b, // n0x02f0 c0x0000 (---------------)  + I xn--hxt814e
-	0x0032ad0f, // n0x02f1 c0x0000 (---------------)  + I xn--i1b6b1a6a2e
-	0x0032b80a, // n0x02f2 c0x0000 (---------------)  + I xn--io0a7i
-	0x0032ca89, // n0x02f3 c0x0000 (---------------)  + I xn--j1amh
-	0x0032d54b, // n0x02f4 c0x0000 (---------------)  + I xn--j6w193g
-	0x0032fb4b, // n0x02f5 c0x0000 (---------------)  + I xn--kprw13d
-	0x0032fe0b, // n0x02f6 c0x0000 (---------------)  + I xn--kpry57d
-	0x003300ca, // n0x02f7 c0x0000 (---------------)  + I xn--kput3i
-	0x00333949, // n0x02f8 c0x0000 (---------------)  + I xn--l1acc
-	0x0033648f, // n0x02f9 c0x0000 (---------------)  + I xn--lgbbat1ad8j
-	0x00339e0c, // n0x02fa c0x0000 (---------------)  + I xn--mgb2ddes
-	0x0033a48c, // n0x02fb c0x0000 (---------------)  + I xn--mgb9awbf
-	0x0033accf, // n0x02fc c0x0000 (---------------)  + I xn--mgba3a4f16a
-	0x0033b08e, // n0x02fd c0x0000 (---------------)  + I xn--mgba3a4fra
-	0x0033b60e, // n0x02fe c0x0000 (---------------)  + I xn--mgbaam7a8h
-	0x0033bb4c, // n0x02ff c0x0000 (---------------)  + I xn--mgbab2bd
-	0x0033be4e, // n0x0300 c0x0000 (---------------)  + I xn--mgbayh7gpa
-	0x0033c28e, // n0x0301 c0x0000 (---------------)  + I xn--mgbbh1a71e
-	0x0033c60f, // n0x0302 c0x0000 (---------------)  + I xn--mgbc0a9azcg
-	0x0033c9d3, // n0x0303 c0x0000 (---------------)  + I xn--mgberp4a5d4a87g
-	0x0033ce91, // n0x0304 c0x0000 (---------------)  + I xn--mgberp4a5d4ar
-	0x0033d2d3, // n0x0305 c0x0000 (---------------)  + I xn--mgbqly7c0a67fbc
-	0x0033d810, // n0x0306 c0x0000 (---------------)  + I xn--mgbqly7cvafr
-	0x0033e04c, // n0x0307 c0x0000 (---------------)  + I xn--mgbtf8fl
-	0x0033e7ce, // n0x0308 c0x0000 (---------------)  + I xn--mgbx4cd0ab
-	0x00348b0a, // n0x0309 c0x0000 (---------------)  + I xn--mxtq1m
-	0x00348ecc, // n0x030a c0x0000 (---------------)  + I xn--ngbc5azd
-	0x00349e4b, // n0x030b c0x0000 (---------------)  + I xn--nnx388a
-	0x0034a108, // n0x030c c0x0000 (---------------)  + I xn--node
-	0x0034a549, // n0x030d c0x0000 (---------------)  + I xn--nqv7f
-	0x0034a54f, // n0x030e c0x0000 (---------------)  + I xn--nqv7fs00ema
-	0x0034c04a, // n0x030f c0x0000 (---------------)  + I xn--o3cw4h
-	0x0034d14c, // n0x0310 c0x0000 (---------------)  + I xn--ogbpf8fl
-	0x0034e289, // n0x0311 c0x0000 (---------------)  + I xn--p1acf
-	0x0034e588, // n0x0312 c0x0000 (---------------)  + I xn--p1ai
-	0x0034ea4b, // n0x0313 c0x0000 (---------------)  + I xn--pgbs0dh
-	0x0034f64b, // n0x0314 c0x0000 (---------------)  + I xn--q9jyb4c
-	0x0035038c, // n0x0315 c0x0000 (---------------)  + I xn--qcka1pmc
-	0x0035394b, // n0x0316 c0x0000 (---------------)  + I xn--rhqv96g
-	0x00357b8b, // n0x0317 c0x0000 (---------------)  + I xn--s9brj9c
-	0x0035938b, // n0x0318 c0x0000 (---------------)  + I xn--ses554g
-	0x00364c8a, // n0x0319 c0x0000 (---------------)  + I xn--unup4y
-	0x00365917, // n0x031a c0x0000 (---------------)  + I xn--vermgensberater-ctb
-	0x00367058, // n0x031b c0x0000 (---------------)  + I xn--vermgensberatung-pwb
-	0x0036edc9, // n0x031c c0x0000 (---------------)  + I xn--vhquv
-	0x0037060a, // n0x031d c0x0000 (---------------)  + I xn--wgbh1c
-	0x00370b8a, // n0x031e c0x0000 (---------------)  + I xn--wgbl6a
-	0x00370e0b, // n0x031f c0x0000 (---------------)  + I xn--xhq521b
-	0x00371910, // n0x0320 c0x0000 (---------------)  + I xn--xkc2al3hye2a
-	0x00371d11, // n0x0321 c0x0000 (---------------)  + I xn--xkc2dl3a5ee0h
-	0x003728cd, // n0x0322 c0x0000 (---------------)  + I xn--yfro4i67o
-	0x00372fcd, // n0x0323 c0x0000 (---------------)  + I xn--ygbi2ammx
-	0x0037454b, // n0x0324 c0x0000 (---------------)  + I xn--zfr164b
-	0x00375203, // n0x0325 c0x0000 (---------------)  + I xxx
-	0x00248943, // n0x0326 c0x0000 (---------------)  + I xyz
-	0x00234646, // n0x0327 c0x0000 (---------------)  + I yachts
-	0x003062c6, // n0x0328 c0x0000 (---------------)  + I yandex
-	0x016176c2, // n0x0329 c0x0005 (---------------)* o I ye
-	0x0036b484, // n0x032a c0x0000 (---------------)  + I yoga
-	0x00311a88, // n0x032b c0x0000 (---------------)  + I yokohama
-	0x00200d47, // n0x032c c0x0000 (---------------)  + I youtube
-	0x00262082, // n0x032d c0x0000 (---------------)  + I yt
-	0x01603502, // n0x032e c0x0005 (---------------)* o I za
-	0x00259d83, // n0x032f c0x0000 (---------------)  + I zip
-	0x016869c2, // n0x0330 c0x0005 (---------------)* o I zm
-	0x002d4f04, // n0x0331 c0x0000 (---------------)  + I zone
-	0x016dbb42, // n0x0332 c0x0005 (---------------)* o I zw
-	0x00222603, // n0x0333 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0334 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0335 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x0336 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x0337 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0338 c0x0000 (---------------)  + I org
-	0x00214103, // n0x0339 c0x0000 (---------------)  + I nom
-	0x00201d82, // n0x033a c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x033b c0x0000 (---------------)  + I co
-	0x002157c3, // n0x033c c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x033d c0x0000 (---------------)  + I mil
-	0x00201603, // n0x033e c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x033f c0x0000 (---------------)  + I org
-	0x002526c3, // n0x0340 c0x0000 (---------------)  + I sch
-	0x00307ed6, // n0x0341 c0x0000 (---------------)  + I accident-investigation
-	0x0030a7d3, // n0x0342 c0x0000 (---------------)  + I accident-prevention
-	0x0027a1c9, // n0x0343 c0x0000 (---------------)  + I aerobatic
-	0x002a4188, // n0x0344 c0x0000 (---------------)  + I aeroclub
-	0x002eed49, // n0x0345 c0x0000 (---------------)  + I aerodrome
-	0x0030c586, // n0x0346 c0x0000 (---------------)  + I agents
-	0x00310390, // n0x0347 c0x0000 (---------------)  + I air-surveillance
-	0x0027f953, // n0x0348 c0x0000 (---------------)  + I air-traffic-control
-	0x00257088, // n0x0349 c0x0000 (---------------)  + I aircraft
-	0x00276387, // n0x034a c0x0000 (---------------)  + I airline
-	0x00352647, // n0x034b c0x0000 (---------------)  + I airport
-	0x0029baca, // n0x034c c0x0000 (---------------)  + I airtraffic
-	0x002c5389, // n0x034d c0x0000 (---------------)  + I ambulance
-	0x00333d89, // n0x034e c0x0000 (---------------)  + I amusement
-	0x0029cfcb, // n0x034f c0x0000 (---------------)  + I association
-	0x00310b86, // n0x0350 c0x0000 (---------------)  + I author
-	0x00311f0a, // n0x0351 c0x0000 (---------------)  + I ballooning
-	0x0021d2c6, // n0x0352 c0x0000 (---------------)  + I broker
-	0x0036b0c3, // n0x0353 c0x0000 (---------------)  + I caa
-	0x00215205, // n0x0354 c0x0000 (---------------)  + I cargo
-	0x00247d08, // n0x0355 c0x0000 (---------------)  + I catering
-	0x002c554d, // n0x0356 c0x0000 (---------------)  + I certification
-	0x0030ff4c, // n0x0357 c0x0000 (---------------)  + I championship
-	0x00329307, // n0x0358 c0x0000 (---------------)  + I charter
-	0x0037084d, // n0x0359 c0x0000 (---------------)  + I civilaviation
-	0x002a4284, // n0x035a c0x0000 (---------------)  + I club
-	0x00234b0a, // n0x035b c0x0000 (---------------)  + I conference
-	0x00235bca, // n0x035c c0x0000 (---------------)  + I consultant
-	0x0023608a, // n0x035d c0x0000 (---------------)  + I consulting
-	0x0022f147, // n0x035e c0x0000 (---------------)  + I control
-	0x0023dbc7, // n0x035f c0x0000 (---------------)  + I council
-	0x0023f544, // n0x0360 c0x0000 (---------------)  + I crew
-	0x00255d86, // n0x0361 c0x0000 (---------------)  + I design
-	0x003128c4, // n0x0362 c0x0000 (---------------)  + I dgca
-	0x002d9688, // n0x0363 c0x0000 (---------------)  + I educator
-	0x0020c049, // n0x0364 c0x0000 (---------------)  + I emergency
-	0x002c3ec6, // n0x0365 c0x0000 (---------------)  + I engine
-	0x002c3ec8, // n0x0366 c0x0000 (---------------)  + I engineer
-	0x00240fcd, // n0x0367 c0x0000 (---------------)  + I entertainment
-	0x00356f09, // n0x0368 c0x0000 (---------------)  + I equipment
-	0x00208248, // n0x0369 c0x0000 (---------------)  + I exchange
-	0x00248747, // n0x036a c0x0000 (---------------)  + I express
-	0x0022e3ca, // n0x036b c0x0000 (---------------)  + I federation
-	0x0024a046, // n0x036c c0x0000 (---------------)  + I flight
-	0x00259847, // n0x036d c0x0000 (---------------)  + I freight
-	0x002dc3c4, // n0x036e c0x0000 (---------------)  + I fuel
-	0x0022a947, // n0x036f c0x0000 (---------------)  + I gliding
-	0x0026608a, // n0x0370 c0x0000 (---------------)  + I government
-	0x00231b4e, // n0x0371 c0x0000 (---------------)  + I groundhandling
-	0x002248c5, // n0x0372 c0x0000 (---------------)  + I group
-	0x00285d4b, // n0x0373 c0x0000 (---------------)  + I hanggliding
-	0x0021fe49, // n0x0374 c0x0000 (---------------)  + I homebuilt
-	0x00358ac9, // n0x0375 c0x0000 (---------------)  + I insurance
-	0x002481c7, // n0x0376 c0x0000 (---------------)  + I journal
-	0x002d234a, // n0x0377 c0x0000 (---------------)  + I journalist
-	0x0021c187, // n0x0378 c0x0000 (---------------)  + I leasing
-	0x0024ba49, // n0x0379 c0x0000 (---------------)  + I logistics
-	0x002b4788, // n0x037a c0x0000 (---------------)  + I magazine
-	0x0031498b, // n0x037b c0x0000 (---------------)  + I maintenance
-	0x0035a34b, // n0x037c c0x0000 (---------------)  + I marketplace
-	0x0027ab45, // n0x037d c0x0000 (---------------)  + I media
-	0x00244c4a, // n0x037e c0x0000 (---------------)  + I microlight
-	0x0022ab09, // n0x037f c0x0000 (---------------)  + I modelling
-	0x00203c0a, // n0x0380 c0x0000 (---------------)  + I navigation
-	0x00201ccb, // n0x0381 c0x0000 (---------------)  + I parachuting
-	0x0022a84b, // n0x0382 c0x0000 (---------------)  + I paragliding
-	0x0029cd55, // n0x0383 c0x0000 (---------------)  + I passenger-association
-	0x002cf085, // n0x0384 c0x0000 (---------------)  + I pilot
-	0x002487c5, // n0x0385 c0x0000 (---------------)  + I press
-	0x002d86ca, // n0x0386 c0x0000 (---------------)  + I production
-	0x0022778a, // n0x0387 c0x0000 (---------------)  + I recreation
-	0x0021fbc7, // n0x0388 c0x0000 (---------------)  + I repbody
-	0x00218b43, // n0x0389 c0x0000 (---------------)  + I res
-	0x002aa848, // n0x038a c0x0000 (---------------)  + I research
-	0x002c970a, // n0x038b c0x0000 (---------------)  + I rotorcraft
-	0x00281286, // n0x038c c0x0000 (---------------)  + I safety
-	0x0028d289, // n0x038d c0x0000 (---------------)  + I scientist
-	0x002a6888, // n0x038e c0x0000 (---------------)  + I services
-	0x002ddc84, // n0x038f c0x0000 (---------------)  + I show
-	0x00269709, // n0x0390 c0x0000 (---------------)  + I skydiving
-	0x0027c088, // n0x0391 c0x0000 (---------------)  + I software
-	0x002b11c7, // n0x0392 c0x0000 (---------------)  + I student
-	0x002a24c4, // n0x0393 c0x0000 (---------------)  + I taxi
-	0x0022ee86, // n0x0394 c0x0000 (---------------)  + I trader
-	0x0029e607, // n0x0395 c0x0000 (---------------)  + I trading
-	0x002f1b47, // n0x0396 c0x0000 (---------------)  + I trainer
-	0x0028dd45, // n0x0397 c0x0000 (---------------)  + I union
-	0x0022470c, // n0x0398 c0x0000 (---------------)  + I workinggroup
-	0x0024f485, // n0x0399 c0x0000 (---------------)  + I works
-	0x00222603, // n0x039a c0x0000 (---------------)  + I com
-	0x0027a643, // n0x039b c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x039c c0x0000 (---------------)  + I gov
-	0x00201603, // n0x039d c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x039e c0x0000 (---------------)  + I org
-	0x00207a02, // n0x039f c0x0000 (---------------)  + I co
-	0x00222603, // n0x03a0 c0x0000 (---------------)  + I com
-	0x00201603, // n0x03a1 c0x0000 (---------------)  + I net
-	0x00214103, // n0x03a2 c0x0000 (---------------)  + I nom
-	0x0021f5c3, // n0x03a3 c0x0000 (---------------)  + I org
-	0x00222603, // n0x03a4 c0x0000 (---------------)  + I com
-	0x00201603, // n0x03a5 c0x0000 (---------------)  + I net
-	0x0021ef43, // n0x03a6 c0x0000 (---------------)  + I off
-	0x0021f5c3, // n0x03a7 c0x0000 (---------------)  + I org
-	0x00222603, // n0x03a8 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x03a9 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x03aa c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x03ab c0x0000 (---------------)  + I mil
-	0x00201603, // n0x03ac c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x03ad c0x0000 (---------------)  + I org
-	0x00222603, // n0x03ae c0x0000 (---------------)  + I com
-	0x0027a643, // n0x03af c0x0000 (---------------)  + I edu
-	0x00201603, // n0x03b0 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x03b1 c0x0000 (---------------)  + I org
-	0x00207a02, // n0x03b2 c0x0000 (---------------)  + I co
-	0x00202542, // n0x03b3 c0x0000 (---------------)  + I ed
-	0x002362c2, // n0x03b4 c0x0000 (---------------)  + I gv
-	0x002017c2, // n0x03b5 c0x0000 (---------------)  + I it
-	0x00200cc2, // n0x03b6 c0x0000 (---------------)  + I og
-	0x0021fc42, // n0x03b7 c0x0000 (---------------)  + I pb
-	0x04622603, // n0x03b8 c0x0011 (n0x03c1-n0x03c2)  + I com
-	0x0027a643, // n0x03b9 c0x0000 (---------------)  + I edu
-	0x0020dbc3, // n0x03ba c0x0000 (---------------)  + I gob
-	0x002157c3, // n0x03bb c0x0000 (---------------)  + I gov
-	0x00223a83, // n0x03bc c0x0000 (---------------)  + I int
-	0x0023f703, // n0x03bd c0x0000 (---------------)  + I mil
-	0x00201603, // n0x03be c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x03bf c0x0000 (---------------)  + I org
-	0x002382c3, // n0x03c0 c0x0000 (---------------)  + I tur
-	0x000b8948, // n0x03c1 c0x0000 (---------------)  +   blogspot
-	0x00250d44, // n0x03c2 c0x0000 (---------------)  + I e164
-	0x00343087, // n0x03c3 c0x0000 (---------------)  + I in-addr
-	0x0021b783, // n0x03c4 c0x0000 (---------------)  + I ip6
-	0x0027cec4, // n0x03c5 c0x0000 (---------------)  + I iris
-	0x00209f83, // n0x03c6 c0x0000 (---------------)  + I uri
-	0x00234a03, // n0x03c7 c0x0000 (---------------)  + I urn
-	0x002157c3, // n0x03c8 c0x0000 (---------------)  + I gov
-	0x00201d82, // n0x03c9 c0x0000 (---------------)  + I ac
-	0x00114c43, // n0x03ca c0x0000 (---------------)  +   biz
-	0x05607a02, // n0x03cb c0x0015 (n0x03d0-n0x03d1)  + I co
-	0x002362c2, // n0x03cc c0x0000 (---------------)  + I gv
-	0x0001c704, // n0x03cd c0x0000 (---------------)  +   info
-	0x00200bc2, // n0x03ce c0x0000 (---------------)  + I or
-	0x000d82c4, // n0x03cf c0x0000 (---------------)  +   priv
-	0x000b8948, // n0x03d0 c0x0000 (---------------)  +   blogspot
-	0x00237f03, // n0x03d1 c0x0000 (---------------)  + I act
-	0x002adf03, // n0x03d2 c0x0000 (---------------)  + I asn
-	0x05e22603, // n0x03d3 c0x0017 (n0x03e3-n0x03e4)  + I com
-	0x00234b04, // n0x03d4 c0x0000 (---------------)  + I conf
-	0x0627a643, // n0x03d5 c0x0018 (n0x03e4-n0x03ec)  + I edu
-	0x066157c3, // n0x03d6 c0x0019 (n0x03ec-n0x03f1)  + I gov
-	0x00202f82, // n0x03d7 c0x0000 (---------------)  + I id
-	0x0021c704, // n0x03d8 c0x0000 (---------------)  + I info
-	0x00201603, // n0x03d9 c0x0000 (---------------)  + I net
-	0x002d6b43, // n0x03da c0x0000 (---------------)  + I nsw
-	0x0020ddc2, // n0x03db c0x0000 (---------------)  + I nt
-	0x0021f5c3, // n0x03dc c0x0000 (---------------)  + I org
-	0x00215ec2, // n0x03dd c0x0000 (---------------)  + I oz
-	0x0023df03, // n0x03de c0x0000 (---------------)  + I qld
-	0x00202882, // n0x03df c0x0000 (---------------)  + I sa
-	0x0021ad03, // n0x03e0 c0x0000 (---------------)  + I tas
-	0x002a6943, // n0x03e1 c0x0000 (---------------)  + I vic
-	0x00200542, // n0x03e2 c0x0000 (---------------)  + I wa
-	0x000b8948, // n0x03e3 c0x0000 (---------------)  +   blogspot
-	0x00237f03, // n0x03e4 c0x0000 (---------------)  + I act
-	0x002d6b43, // n0x03e5 c0x0000 (---------------)  + I nsw
-	0x0020ddc2, // n0x03e6 c0x0000 (---------------)  + I nt
-	0x0023df03, // n0x03e7 c0x0000 (---------------)  + I qld
-	0x00202882, // n0x03e8 c0x0000 (---------------)  + I sa
-	0x0021ad03, // n0x03e9 c0x0000 (---------------)  + I tas
-	0x002a6943, // n0x03ea c0x0000 (---------------)  + I vic
-	0x00200542, // n0x03eb c0x0000 (---------------)  + I wa
-	0x0023df03, // n0x03ec c0x0000 (---------------)  + I qld
-	0x00202882, // n0x03ed c0x0000 (---------------)  + I sa
-	0x0021ad03, // n0x03ee c0x0000 (---------------)  + I tas
-	0x002a6943, // n0x03ef c0x0000 (---------------)  + I vic
-	0x00200542, // n0x03f0 c0x0000 (---------------)  + I wa
-	0x00222603, // n0x03f1 c0x0000 (---------------)  + I com
-	0x00314c43, // n0x03f2 c0x0000 (---------------)  + I biz
-	0x00222603, // n0x03f3 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x03f4 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x03f5 c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x03f6 c0x0000 (---------------)  + I info
-	0x00223a83, // n0x03f7 c0x0000 (---------------)  + I int
-	0x0023f703, // n0x03f8 c0x0000 (---------------)  + I mil
-	0x0022aec4, // n0x03f9 c0x0000 (---------------)  + I name
-	0x00201603, // n0x03fa c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x03fb c0x0000 (---------------)  + I org
-	0x00200f02, // n0x03fc c0x0000 (---------------)  + I pp
-	0x002d8443, // n0x03fd c0x0000 (---------------)  + I pro
-	0x00207a02, // n0x03fe c0x0000 (---------------)  + I co
-	0x00222603, // n0x03ff c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0400 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0401 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x0402 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x0403 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0404 c0x0000 (---------------)  + I org
-	0x0020ac02, // n0x0405 c0x0000 (---------------)  + I rs
-	0x0030af04, // n0x0406 c0x0000 (---------------)  + I unbi
-	0x00274144, // n0x0407 c0x0000 (---------------)  + I unsa
-	0x00314c43, // n0x0408 c0x0000 (---------------)  + I biz
-	0x00207a02, // n0x0409 c0x0000 (---------------)  + I co
-	0x00222603, // n0x040a c0x0000 (---------------)  + I com
-	0x0027a643, // n0x040b c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x040c c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x040d c0x0000 (---------------)  + I info
-	0x00201603, // n0x040e c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x040f c0x0000 (---------------)  + I org
-	0x002e9885, // n0x0410 c0x0000 (---------------)  + I store
-	0x00292602, // n0x0411 c0x0000 (---------------)  + I tv
-	0x00201d82, // n0x0412 c0x0000 (---------------)  + I ac
-	0x000b8948, // n0x0413 c0x0000 (---------------)  +   blogspot
-	0x002157c3, // n0x0414 c0x0000 (---------------)  + I gov
-	0x0021be81, // n0x0415 c0x0000 (---------------)  + I 0
-	0x00206381, // n0x0416 c0x0000 (---------------)  + I 1
-	0x0020f681, // n0x0417 c0x0000 (---------------)  + I 2
-	0x00205dc1, // n0x0418 c0x0000 (---------------)  + I 3
-	0x00250e01, // n0x0419 c0x0000 (---------------)  + I 4
-	0x0029f501, // n0x041a c0x0000 (---------------)  + I 5
-	0x0021b801, // n0x041b c0x0000 (---------------)  + I 6
-	0x002597c1, // n0x041c c0x0000 (---------------)  + I 7
-	0x002fbe01, // n0x041d c0x0000 (---------------)  + I 8
-	0x0029f601, // n0x041e c0x0000 (---------------)  + I 9
-	0x00200101, // n0x041f c0x0000 (---------------)  + I a
-	0x00200001, // n0x0420 c0x0000 (---------------)  + I b
-	0x00200601, // n0x0421 c0x0000 (---------------)  + I c
-	0x00200741, // n0x0422 c0x0000 (---------------)  + I d
-	0x00200081, // n0x0423 c0x0000 (---------------)  + I e
-	0x002003c1, // n0x0424 c0x0000 (---------------)  + I f
-	0x002004c1, // n0x0425 c0x0000 (---------------)  + I g
-	0x00200641, // n0x0426 c0x0000 (---------------)  + I h
-	0x00200041, // n0x0427 c0x0000 (---------------)  + I i
-	0x00201f81, // n0x0428 c0x0000 (---------------)  + I j
-	0x00200441, // n0x0429 c0x0000 (---------------)  + I k
-	0x00200801, // n0x042a c0x0000 (---------------)  + I l
-	0x00200181, // n0x042b c0x0000 (---------------)  + I m
-	0x00200241, // n0x042c c0x0000 (---------------)  + I n
-	0x00200841, // n0x042d c0x0000 (---------------)  + I o
-	0x002001c1, // n0x042e c0x0000 (---------------)  + I p
-	0x00206741, // n0x042f c0x0000 (---------------)  + I q
-	0x00200a81, // n0x0430 c0x0000 (---------------)  + I r
-	0x00200941, // n0x0431 c0x0000 (---------------)  + I s
-	0x00200141, // n0x0432 c0x0000 (---------------)  + I t
-	0x00200401, // n0x0433 c0x0000 (---------------)  + I u
-	0x002000c1, // n0x0434 c0x0000 (---------------)  + I v
-	0x00200541, // n0x0435 c0x0000 (---------------)  + I w
-	0x00208281, // n0x0436 c0x0000 (---------------)  + I x
-	0x00200d41, // n0x0437 c0x0000 (---------------)  + I y
-	0x00201481, // n0x0438 c0x0000 (---------------)  + I z
-	0x00222603, // n0x0439 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x043a c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x043b c0x0000 (---------------)  + I gov
-	0x00201603, // n0x043c c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x043d c0x0000 (---------------)  + I org
-	0x00207a02, // n0x043e c0x0000 (---------------)  + I co
-	0x00222603, // n0x043f c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0440 c0x0000 (---------------)  + I edu
-	0x00200bc2, // n0x0441 c0x0000 (---------------)  + I or
-	0x0021f5c3, // n0x0442 c0x0000 (---------------)  + I org
-	0x00010c06, // n0x0443 c0x0000 (---------------)  +   dyndns
-	0x00051b8a, // n0x0444 c0x0000 (---------------)  +   for-better
-	0x000822c8, // n0x0445 c0x0000 (---------------)  +   for-more
-	0x000521c8, // n0x0446 c0x0000 (---------------)  +   for-some
-	0x000529c7, // n0x0447 c0x0000 (---------------)  +   for-the
-	0x000ff606, // n0x0448 c0x0000 (---------------)  +   selfip
-	0x0004db86, // n0x0449 c0x0000 (---------------)  +   webhop
-	0x0029cfc4, // n0x044a c0x0000 (---------------)  + I asso
-	0x0030e447, // n0x044b c0x0000 (---------------)  + I barreau
-	0x000b8948, // n0x044c c0x0000 (---------------)  +   blogspot
-	0x00368f84, // n0x044d c0x0000 (---------------)  + I gouv
-	0x00222603, // n0x044e c0x0000 (---------------)  + I com
-	0x0027a643, // n0x044f c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0450 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x0451 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0452 c0x0000 (---------------)  + I org
-	0x00222603, // n0x0453 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0454 c0x0000 (---------------)  + I edu
-	0x0020dbc3, // n0x0455 c0x0000 (---------------)  + I gob
-	0x002157c3, // n0x0456 c0x0000 (---------------)  + I gov
-	0x00223a83, // n0x0457 c0x0000 (---------------)  + I int
-	0x0023f703, // n0x0458 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x0459 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x045a c0x0000 (---------------)  + I org
-	0x00292602, // n0x045b c0x0000 (---------------)  + I tv
-	0x002ccd43, // n0x045c c0x0000 (---------------)  + I adm
-	0x0025a4c3, // n0x045d c0x0000 (---------------)  + I adv
-	0x0022a003, // n0x045e c0x0000 (---------------)  + I agr
-	0x00200282, // n0x045f c0x0000 (---------------)  + I am
-	0x00260ac3, // n0x0460 c0x0000 (---------------)  + I arq
-	0x00201383, // n0x0461 c0x0000 (---------------)  + I art
-	0x002011c3, // n0x0462 c0x0000 (---------------)  + I ato
-	0x00200001, // n0x0463 c0x0000 (---------------)  + I b
-	0x002063c3, // n0x0464 c0x0000 (---------------)  + I bio
-	0x00210dc4, // n0x0465 c0x0000 (---------------)  + I blog
-	0x00367f83, // n0x0466 c0x0000 (---------------)  + I bmd
-	0x00338cc3, // n0x0467 c0x0000 (---------------)  + I cim
-	0x0033d743, // n0x0468 c0x0000 (---------------)  + I cng
-	0x002309c3, // n0x0469 c0x0000 (---------------)  + I cnt
-	0x0a222603, // n0x046a c0x0028 (n0x04a2-n0x04a3)  + I com
-	0x00239dc4, // n0x046b c0x0000 (---------------)  + I coop
-	0x002f0e83, // n0x046c c0x0000 (---------------)  + I ecn
-	0x002079c3, // n0x046d c0x0000 (---------------)  + I eco
-	0x0027a643, // n0x046e c0x0000 (---------------)  + I edu
-	0x00236c43, // n0x046f c0x0000 (---------------)  + I emp
-	0x00202e03, // n0x0470 c0x0000 (---------------)  + I eng
-	0x002e6583, // n0x0471 c0x0000 (---------------)  + I esp
-	0x0025fe43, // n0x0472 c0x0000 (---------------)  + I etc
-	0x00217bc3, // n0x0473 c0x0000 (---------------)  + I eti
-	0x00210a83, // n0x0474 c0x0000 (---------------)  + I far
-	0x0024ba04, // n0x0475 c0x0000 (---------------)  + I flog
-	0x00253942, // n0x0476 c0x0000 (---------------)  + I fm
-	0x00250e43, // n0x0477 c0x0000 (---------------)  + I fnd
-	0x00258883, // n0x0478 c0x0000 (---------------)  + I fot
-	0x00273983, // n0x0479 c0x0000 (---------------)  + I fst
-	0x002e8bc3, // n0x047a c0x0000 (---------------)  + I g12
-	0x00317f03, // n0x047b c0x0000 (---------------)  + I ggf
-	0x002157c3, // n0x047c c0x0000 (---------------)  + I gov
-	0x002e00c3, // n0x047d c0x0000 (---------------)  + I imb
-	0x00214b03, // n0x047e c0x0000 (---------------)  + I ind
-	0x0021c543, // n0x047f c0x0000 (---------------)  + I inf
-	0x0021ecc3, // n0x0480 c0x0000 (---------------)  + I jor
-	0x0024b843, // n0x0481 c0x0000 (---------------)  + I jus
-	0x00230ec3, // n0x0482 c0x0000 (---------------)  + I leg
-	0x0032d483, // n0x0483 c0x0000 (---------------)  + I lel
-	0x0020a743, // n0x0484 c0x0000 (---------------)  + I mat
-	0x00225d03, // n0x0485 c0x0000 (---------------)  + I med
-	0x0023f703, // n0x0486 c0x0000 (---------------)  + I mil
-	0x00200182, // n0x0487 c0x0000 (---------------)  + I mp
-	0x002a91c3, // n0x0488 c0x0000 (---------------)  + I mus
-	0x00201603, // n0x0489 c0x0000 (---------------)  + I net
-	0x01614103, // n0x048a c0x0005 (---------------)* o I nom
-	0x002502c3, // n0x048b c0x0000 (---------------)  + I not
-	0x0022f1c3, // n0x048c c0x0000 (---------------)  + I ntr
-	0x0020dc83, // n0x048d c0x0000 (---------------)  + I odo
-	0x0021f5c3, // n0x048e c0x0000 (---------------)  + I org
-	0x00222cc3, // n0x048f c0x0000 (---------------)  + I ppg
-	0x002d8443, // n0x0490 c0x0000 (---------------)  + I pro
-	0x002ffac3, // n0x0491 c0x0000 (---------------)  + I psc
-	0x00288c03, // n0x0492 c0x0000 (---------------)  + I psi
-	0x002dc143, // n0x0493 c0x0000 (---------------)  + I qsl
-	0x0024a785, // n0x0494 c0x0000 (---------------)  + I radio
-	0x00227783, // n0x0495 c0x0000 (---------------)  + I rec
-	0x002e0a43, // n0x0496 c0x0000 (---------------)  + I slg
-	0x002e9583, // n0x0497 c0x0000 (---------------)  + I srv
-	0x002a24c4, // n0x0498 c0x0000 (---------------)  + I taxi
-	0x002bff03, // n0x0499 c0x0000 (---------------)  + I teo
-	0x00200143, // n0x049a c0x0000 (---------------)  + I tmp
-	0x002a74c3, // n0x049b c0x0000 (---------------)  + I trd
-	0x002382c3, // n0x049c c0x0000 (---------------)  + I tur
-	0x00292602, // n0x049d c0x0000 (---------------)  + I tv
-	0x0023bf43, // n0x049e c0x0000 (---------------)  + I vet
-	0x002f8f04, // n0x049f c0x0000 (---------------)  + I vlog
-	0x0024ebc4, // n0x04a0 c0x0000 (---------------)  + I wiki
-	0x002ffd43, // n0x04a1 c0x0000 (---------------)  + I zlg
-	0x000b8948, // n0x04a2 c0x0000 (---------------)  +   blogspot
-	0x00222603, // n0x04a3 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x04a4 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x04a5 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x04a6 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x04a7 c0x0000 (---------------)  + I org
-	0x00222603, // n0x04a8 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x04a9 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x04aa c0x0000 (---------------)  + I gov
-	0x00201603, // n0x04ab c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x04ac c0x0000 (---------------)  + I org
-	0x00207a02, // n0x04ad c0x0000 (---------------)  + I co
-	0x0021f5c3, // n0x04ae c0x0000 (---------------)  + I org
-	0x00222603, // n0x04af c0x0000 (---------------)  + I com
-	0x002157c3, // n0x04b0 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x04b1 c0x0000 (---------------)  + I mil
-	0x0021ef42, // n0x04b2 c0x0000 (---------------)  + I of
-	0x00222603, // n0x04b3 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x04b4 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x04b5 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x04b6 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x04b7 c0x0000 (---------------)  + I org
-	0x00003502, // n0x04b8 c0x0000 (---------------)  +   za
-	0x00200302, // n0x04b9 c0x0000 (---------------)  + I ab
-	0x0021f342, // n0x04ba c0x0000 (---------------)  + I bc
-	0x000b8948, // n0x04bb c0x0000 (---------------)  +   blogspot
-	0x00007a02, // n0x04bc c0x0000 (---------------)  +   co
-	0x0030d302, // n0x04bd c0x0000 (---------------)  + I gc
-	0x00203102, // n0x04be c0x0000 (---------------)  + I mb
-	0x0020dfc2, // n0x04bf c0x0000 (---------------)  + I nb
-	0x00209282, // n0x04c0 c0x0000 (---------------)  + I nf
-	0x00244442, // n0x04c1 c0x0000 (---------------)  + I nl
-	0x00203a42, // n0x04c2 c0x0000 (---------------)  + I ns
-	0x0020ddc2, // n0x04c3 c0x0000 (---------------)  + I nt
-	0x002267c2, // n0x04c4 c0x0000 (---------------)  + I nu
-	0x00203e02, // n0x04c5 c0x0000 (---------------)  + I on
-	0x00202142, // n0x04c6 c0x0000 (---------------)  + I pe
-	0x00350482, // n0x04c7 c0x0000 (---------------)  + I qc
-	0x00202202, // n0x04c8 c0x0000 (---------------)  + I sk
-	0x0023bac2, // n0x04c9 c0x0000 (---------------)  + I yk
-	0x00019e09, // n0x04ca c0x0000 (---------------)  +   ftpaccess
-	0x000a2b8b, // n0x04cb c0x0000 (---------------)  +   game-server
-	0x000cb708, // n0x04cc c0x0000 (---------------)  +   myphotos
-	0x00094cc9, // n0x04cd c0x0000 (---------------)  +   scrapping
-	0x002157c3, // n0x04ce c0x0000 (---------------)  + I gov
-	0x000b8948, // n0x04cf c0x0000 (---------------)  +   blogspot
-	0x000b8948, // n0x04d0 c0x0000 (---------------)  +   blogspot
-	0x00201d82, // n0x04d1 c0x0000 (---------------)  + I ac
-	0x0029cfc4, // n0x04d2 c0x0000 (---------------)  + I asso
-	0x00207a02, // n0x04d3 c0x0000 (---------------)  + I co
-	0x00222603, // n0x04d4 c0x0000 (---------------)  + I com
-	0x00202542, // n0x04d5 c0x0000 (---------------)  + I ed
-	0x0027a643, // n0x04d6 c0x0000 (---------------)  + I edu
-	0x00206cc2, // n0x04d7 c0x0000 (---------------)  + I go
-	0x00368f84, // n0x04d8 c0x0000 (---------------)  + I gouv
-	0x00223a83, // n0x04d9 c0x0000 (---------------)  + I int
-	0x00235302, // n0x04da c0x0000 (---------------)  + I md
-	0x00201603, // n0x04db c0x0000 (---------------)  + I net
-	0x00200bc2, // n0x04dc c0x0000 (---------------)  + I or
-	0x0021f5c3, // n0x04dd c0x0000 (---------------)  + I org
-	0x002487c6, // n0x04de c0x0000 (---------------)  + I presse
-	0x00300d8f, // n0x04df c0x0000 (---------------)  + I xn--aroport-bya
-	0x006c3243, // n0x04e0 c0x0001 (---------------)  ! I www
-	0x00207a02, // n0x04e1 c0x0000 (---------------)  + I co
-	0x0020dbc3, // n0x04e2 c0x0000 (---------------)  + I gob
-	0x002157c3, // n0x04e3 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x04e4 c0x0000 (---------------)  + I mil
-	0x00207a02, // n0x04e5 c0x0000 (---------------)  + I co
-	0x00222603, // n0x04e6 c0x0000 (---------------)  + I com
-	0x002157c3, // n0x04e7 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x04e8 c0x0000 (---------------)  + I net
-	0x00201d82, // n0x04e9 c0x0000 (---------------)  + I ac
-	0x0020b442, // n0x04ea c0x0000 (---------------)  + I ah
-	0x0e31a189, // n0x04eb c0x0038 (n0x0516-n0x0517)  o I amazonaws
-	0x0020e2c2, // n0x04ec c0x0000 (---------------)  + I bj
-	0x00222603, // n0x04ed c0x0000 (---------------)  + I com
-	0x0023dec2, // n0x04ee c0x0000 (---------------)  + I cq
-	0x0027a643, // n0x04ef c0x0000 (---------------)  + I edu
-	0x0021ec82, // n0x04f0 c0x0000 (---------------)  + I fj
-	0x00210e82, // n0x04f1 c0x0000 (---------------)  + I gd
-	0x002157c3, // n0x04f2 c0x0000 (---------------)  + I gov
-	0x00229d82, // n0x04f3 c0x0000 (---------------)  + I gs
-	0x00259582, // n0x04f4 c0x0000 (---------------)  + I gx
-	0x00259d42, // n0x04f5 c0x0000 (---------------)  + I gz
-	0x00200a02, // n0x04f6 c0x0000 (---------------)  + I ha
-	0x002fffc2, // n0x04f7 c0x0000 (---------------)  + I hb
-	0x00201c02, // n0x04f8 c0x0000 (---------------)  + I he
-	0x00200982, // n0x04f9 c0x0000 (---------------)  + I hi
-	0x0026af42, // n0x04fa c0x0000 (---------------)  + I hk
-	0x0026e482, // n0x04fb c0x0000 (---------------)  + I hl
-	0x0022c942, // n0x04fc c0x0000 (---------------)  + I hn
-	0x0032d902, // n0x04fd c0x0000 (---------------)  + I jl
-	0x0021bb82, // n0x04fe c0x0000 (---------------)  + I js
-	0x00304cc2, // n0x04ff c0x0000 (---------------)  + I jx
-	0x0022d7c2, // n0x0500 c0x0000 (---------------)  + I ln
-	0x0023f703, // n0x0501 c0x0000 (---------------)  + I mil
-	0x00206c42, // n0x0502 c0x0000 (---------------)  + I mo
-	0x00201603, // n0x0503 c0x0000 (---------------)  + I net
-	0x0020eb82, // n0x0504 c0x0000 (---------------)  + I nm
-	0x0027d682, // n0x0505 c0x0000 (---------------)  + I nx
-	0x0021f5c3, // n0x0506 c0x0000 (---------------)  + I org
-	0x0023b182, // n0x0507 c0x0000 (---------------)  + I qh
-	0x00218bc2, // n0x0508 c0x0000 (---------------)  + I sc
-	0x00202002, // n0x0509 c0x0000 (---------------)  + I sd
-	0x00200942, // n0x050a c0x0000 (---------------)  + I sh
-	0x0020dd82, // n0x050b c0x0000 (---------------)  + I sn
-	0x002ee302, // n0x050c c0x0000 (---------------)  + I sx
-	0x002412c2, // n0x050d c0x0000 (---------------)  + I tj
-	0x00208d02, // n0x050e c0x0000 (---------------)  + I tw
-	0x0022ad82, // n0x050f c0x0000 (---------------)  + I xj
-	0x003732ca, // n0x0510 c0x0000 (---------------)  + I xn--55qx5d
-	0x0032b80a, // n0x0511 c0x0000 (---------------)  + I xn--io0a7i
-	0x0034c44a, // n0x0512 c0x0000 (---------------)  + I xn--od0alg
-	0x00375602, // n0x0513 c0x0000 (---------------)  + I xz
-	0x00210c42, // n0x0514 c0x0000 (---------------)  + I yn
-	0x00260dc2, // n0x0515 c0x0000 (---------------)  + I zj
-	0x0e433987, // n0x0516 c0x0039 (n0x0517-n0x0518)  +   compute
-	0x000f0eca, // n0x0517 c0x0000 (---------------)  +   cn-north-1
-	0x002180c4, // n0x0518 c0x0000 (---------------)  + I arts
-	0x00222603, // n0x0519 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x051a c0x0000 (---------------)  + I edu
-	0x00245bc4, // n0x051b c0x0000 (---------------)  + I firm
-	0x002157c3, // n0x051c c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x051d c0x0000 (---------------)  + I info
-	0x00223a83, // n0x051e c0x0000 (---------------)  + I int
-	0x0023f703, // n0x051f c0x0000 (---------------)  + I mil
-	0x00201603, // n0x0520 c0x0000 (---------------)  + I net
-	0x00214103, // n0x0521 c0x0000 (---------------)  + I nom
-	0x0021f5c3, // n0x0522 c0x0000 (---------------)  + I org
-	0x00227783, // n0x0523 c0x0000 (---------------)  + I rec
-	0x00205e43, // n0x0524 c0x0000 (---------------)  + I web
-	0x00084506, // n0x0525 c0x0000 (---------------)  +   africa
-	0x0f31a189, // n0x0526 c0x003c (n0x05e8-n0x05ff)  o I amazonaws
-	0x00044907, // n0x0527 c0x0000 (---------------)  +   appspot
-	0x00000a42, // n0x0528 c0x0000 (---------------)  +   ar
-	0x00165e8a, // n0x0529 c0x0000 (---------------)  +   betainabox
-	0x00010dc7, // n0x052a c0x0000 (---------------)  +   blogdns
-	0x000b8948, // n0x052b c0x0000 (---------------)  +   blogspot
-	0x00006842, // n0x052c c0x0000 (---------------)  +   br
-	0x00109fc7, // n0x052d c0x0000 (---------------)  +   cechire
-	0x000e85cf, // n0x052e c0x0000 (---------------)  +   cloudcontrolapp
-	0x0002f00f, // n0x052f c0x0000 (---------------)  +   cloudcontrolled
-	0x000309c2, // n0x0530 c0x0000 (---------------)  +   cn
-	0x00007a02, // n0x0531 c0x0000 (---------------)  +   co
-	0x00140008, // n0x0532 c0x0000 (---------------)  +   codespot
-	0x00002dc2, // n0x0533 c0x0000 (---------------)  +   de
-	0x00035348, // n0x0534 c0x0000 (---------------)  +   dnsalias
-	0x0000b0c7, // n0x0535 c0x0000 (---------------)  +   dnsdojo
-	0x0000dccb, // n0x0536 c0x0000 (---------------)  +   doesntexist
-	0x000cd889, // n0x0537 c0x0000 (---------------)  +   dontexist
-	0x00035247, // n0x0538 c0x0000 (---------------)  +   doomdns
-	0x000f3dcc, // n0x0539 c0x0000 (---------------)  +   dreamhosters
-	0x001616ca, // n0x053a c0x0000 (---------------)  +   dyn-o-saur
-	0x0009fe08, // n0x053b c0x0000 (---------------)  +   dynalias
-	0x00025a0e, // n0x053c c0x0000 (---------------)  +   dyndns-at-home
-	0x0002448e, // n0x053d c0x0000 (---------------)  +   dyndns-at-work
-	0x00010c0b, // n0x053e c0x0000 (---------------)  +   dyndns-blog
-	0x0001228b, // n0x053f c0x0000 (---------------)  +   dyndns-free
-	0x00019b4b, // n0x0540 c0x0000 (---------------)  +   dyndns-home
-	0x0001b5c9, // n0x0541 c0x0000 (---------------)  +   dyndns-ip
-	0x0001d6cb, // n0x0542 c0x0000 (---------------)  +   dyndns-mail
-	0x0001ed8d, // n0x0543 c0x0000 (---------------)  +   dyndns-office
-	0x0003ad4b, // n0x0544 c0x0000 (---------------)  +   dyndns-pics
-	0x0003b50d, // n0x0545 c0x0000 (---------------)  +   dyndns-remote
-	0x000da30d, // n0x0546 c0x0000 (---------------)  +   dyndns-server
-	0x0004d9ca, // n0x0547 c0x0000 (---------------)  +   dyndns-web
-	0x0004ea0b, // n0x0548 c0x0000 (---------------)  +   dyndns-wiki
-	0x0004f2cb, // n0x0549 c0x0000 (---------------)  +   dyndns-work
-	0x0003cc90, // n0x054a c0x0000 (---------------)  +   elasticbeanstalk
-	0x0009aa8f, // n0x054b c0x0000 (---------------)  +   est-a-la-maison
-	0x000233cf, // n0x054c c0x0000 (---------------)  +   est-a-la-masion
-	0x000a320d, // n0x054d c0x0000 (---------------)  +   est-le-patron
-	0x00127690, // n0x054e c0x0000 (---------------)  +   est-mon-blogueur
-	0x00010502, // n0x054f c0x0000 (---------------)  +   eu
-	0x0004470b, // n0x0550 c0x0000 (---------------)  +   firebaseapp
-	0x000504c8, // n0x0551 c0x0000 (---------------)  +   flynnhub
-	0x0005e507, // n0x0552 c0x0000 (---------------)  +   from-ak
-	0x000607c7, // n0x0553 c0x0000 (---------------)  +   from-al
-	0x00060987, // n0x0554 c0x0000 (---------------)  +   from-ar
-	0x00061447, // n0x0555 c0x0000 (---------------)  +   from-ca
-	0x00062b07, // n0x0556 c0x0000 (---------------)  +   from-ct
-	0x00062e07, // n0x0557 c0x0000 (---------------)  +   from-dc
-	0x000633c7, // n0x0558 c0x0000 (---------------)  +   from-de
-	0x00063687, // n0x0559 c0x0000 (---------------)  +   from-fl
-	0x00063bc7, // n0x055a c0x0000 (---------------)  +   from-ga
-	0x00063d87, // n0x055b c0x0000 (---------------)  +   from-hi
-	0x00064ac7, // n0x055c c0x0000 (---------------)  +   from-ia
-	0x00064c87, // n0x055d c0x0000 (---------------)  +   from-id
-	0x00064e47, // n0x055e c0x0000 (---------------)  +   from-il
-	0x00065007, // n0x055f c0x0000 (---------------)  +   from-in
-	0x00065607, // n0x0560 c0x0000 (---------------)  +   from-ks
-	0x000658c7, // n0x0561 c0x0000 (---------------)  +   from-ky
-	0x00066d47, // n0x0562 c0x0000 (---------------)  +   from-ma
-	0x00067487, // n0x0563 c0x0000 (---------------)  +   from-md
-	0x00067ac7, // n0x0564 c0x0000 (---------------)  +   from-mi
-	0x00068387, // n0x0565 c0x0000 (---------------)  +   from-mn
-	0x00068547, // n0x0566 c0x0000 (---------------)  +   from-mo
-	0x00068847, // n0x0567 c0x0000 (---------------)  +   from-ms
-	0x00068c47, // n0x0568 c0x0000 (---------------)  +   from-mt
-	0x000690c7, // n0x0569 c0x0000 (---------------)  +   from-nc
-	0x0006aa47, // n0x056a c0x0000 (---------------)  +   from-nd
-	0x0006ac07, // n0x056b c0x0000 (---------------)  +   from-ne
-	0x0006adc7, // n0x056c c0x0000 (---------------)  +   from-nh
-	0x0006b1c7, // n0x056d c0x0000 (---------------)  +   from-nj
-	0x0006b547, // n0x056e c0x0000 (---------------)  +   from-nm
-	0x0006bc07, // n0x056f c0x0000 (---------------)  +   from-nv
-	0x0006c307, // n0x0570 c0x0000 (---------------)  +   from-oh
-	0x0006c547, // n0x0571 c0x0000 (---------------)  +   from-ok
-	0x0006cac7, // n0x0572 c0x0000 (---------------)  +   from-or
-	0x0006cc87, // n0x0573 c0x0000 (---------------)  +   from-pa
-	0x0006d707, // n0x0574 c0x0000 (---------------)  +   from-pr
-	0x0006dec7, // n0x0575 c0x0000 (---------------)  +   from-ri
-	0x0006e2c7, // n0x0576 c0x0000 (---------------)  +   from-sc
-	0x0006f6c7, // n0x0577 c0x0000 (---------------)  +   from-sd
-	0x0006f887, // n0x0578 c0x0000 (---------------)  +   from-tn
-	0x0006fa47, // n0x0579 c0x0000 (---------------)  +   from-tx
-	0x0006fe87, // n0x057a c0x0000 (---------------)  +   from-ut
-	0x00070287, // n0x057b c0x0000 (---------------)  +   from-va
-	0x00071387, // n0x057c c0x0000 (---------------)  +   from-vt
-	0x00071687, // n0x057d c0x0000 (---------------)  +   from-wa
-	0x00071847, // n0x057e c0x0000 (---------------)  +   from-wi
-	0x00071bc7, // n0x057f c0x0000 (---------------)  +   from-wv
-	0x00072007, // n0x0580 c0x0000 (---------------)  +   from-wy
-	0x0000fb02, // n0x0581 c0x0000 (---------------)  +   gb
-	0x000083c7, // n0x0582 c0x0000 (---------------)  +   getmyip
-	0x000bb511, // n0x0583 c0x0000 (---------------)  +   githubusercontent
-	0x0005558a, // n0x0584 c0x0000 (---------------)  +   googleapis
-	0x0013fe8a, // n0x0585 c0x0000 (---------------)  +   googlecode
-	0x00053106, // n0x0586 c0x0000 (---------------)  +   gotdns
-	0x00005bc2, // n0x0587 c0x0000 (---------------)  +   gr
-	0x001698c9, // n0x0588 c0x0000 (---------------)  +   herokuapp
-	0x0008d809, // n0x0589 c0x0000 (---------------)  +   herokussl
-	0x0003e44a, // n0x058a c0x0000 (---------------)  +   hobby-site
-	0x0009f1c9, // n0x058b c0x0000 (---------------)  +   homelinux
-	0x000a1908, // n0x058c c0x0000 (---------------)  +   homeunix
-	0x00001e02, // n0x058d c0x0000 (---------------)  +   hu
-	0x00108cc9, // n0x058e c0x0000 (---------------)  +   iamallama
-	0x0006d94e, // n0x058f c0x0000 (---------------)  +   is-a-anarchist
-	0x00014d8c, // n0x0590 c0x0000 (---------------)  +   is-a-blogger
-	0x000cbe4f, // n0x0591 c0x0000 (---------------)  +   is-a-bookkeeper
-	0x0015998e, // n0x0592 c0x0000 (---------------)  +   is-a-bulls-fan
-	0x000a258c, // n0x0593 c0x0000 (---------------)  +   is-a-caterer
-	0x001402c9, // n0x0594 c0x0000 (---------------)  +   is-a-chef
-	0x00032a91, // n0x0595 c0x0000 (---------------)  +   is-a-conservative
-	0x00036788, // n0x0596 c0x0000 (---------------)  +   is-a-cpa
-	0x00152e52, // n0x0597 c0x0000 (---------------)  +   is-a-cubicle-slave
-	0x0004344d, // n0x0598 c0x0000 (---------------)  +   is-a-democrat
-	0x00055c4d, // n0x0599 c0x0000 (---------------)  +   is-a-designer
-	0x0005758b, // n0x059a c0x0000 (---------------)  +   is-a-doctor
-	0x0005a155, // n0x059b c0x0000 (---------------)  +   is-a-financialadvisor
-	0x00067d49, // n0x059c c0x0000 (---------------)  +   is-a-geek
-	0x0006e04a, // n0x059d c0x0000 (---------------)  +   is-a-green
-	0x00073f49, // n0x059e c0x0000 (---------------)  +   is-a-guru
-	0x0007ad90, // n0x059f c0x0000 (---------------)  +   is-a-hard-worker
-	0x0007cf4b, // n0x05a0 c0x0000 (---------------)  +   is-a-hunter
-	0x0011c74f, // n0x05a1 c0x0000 (---------------)  +   is-a-landscaper
-	0x0014edcb, // n0x05a2 c0x0000 (---------------)  +   is-a-lawyer
-	0x0008578c, // n0x05a3 c0x0000 (---------------)  +   is-a-liberal
-	0x000941d0, // n0x05a4 c0x0000 (---------------)  +   is-a-libertarian
-	0x000a8b0a, // n0x05a5 c0x0000 (---------------)  +   is-a-llama
-	0x000a908d, // n0x05a6 c0x0000 (---------------)  +   is-a-musician
-	0x000dfb8e, // n0x05a7 c0x0000 (---------------)  +   is-a-nascarfan
-	0x000b58ca, // n0x05a8 c0x0000 (---------------)  +   is-a-nurse
-	0x000df58c, // n0x05a9 c0x0000 (---------------)  +   is-a-painter
-	0x000f1814, // n0x05aa c0x0000 (---------------)  +   is-a-personaltrainer
-	0x000fa1d1, // n0x05ab c0x0000 (---------------)  +   is-a-photographer
-	0x000fde4b, // n0x05ac c0x0000 (---------------)  +   is-a-player
-	0x000aa3cf, // n0x05ad c0x0000 (---------------)  +   is-a-republican
-	0x000ac5cd, // n0x05ae c0x0000 (---------------)  +   is-a-rockstar
-	0x000ad28e, // n0x05af c0x0000 (---------------)  +   is-a-socialist
-	0x000b108c, // n0x05b0 c0x0000 (---------------)  +   is-a-student
-	0x000b224c, // n0x05b1 c0x0000 (---------------)  +   is-a-teacher
-	0x000b55cb, // n0x05b2 c0x0000 (---------------)  +   is-a-techie
-	0x000b724e, // n0x05b3 c0x0000 (---------------)  +   is-a-therapist
-	0x000b8250, // n0x05b4 c0x0000 (---------------)  +   is-an-accountant
-	0x000b908b, // n0x05b5 c0x0000 (---------------)  +   is-an-actor
-	0x000dc70d, // n0x05b6 c0x0000 (---------------)  +   is-an-actress
-	0x000e490f, // n0x05b7 c0x0000 (---------------)  +   is-an-anarchist
-	0x000bc94c, // n0x05b8 c0x0000 (---------------)  +   is-an-artist
-	0x000c3d4e, // n0x05b9 c0x0000 (---------------)  +   is-an-engineer
-	0x000c7691, // n0x05ba c0x0000 (---------------)  +   is-an-entertainer
-	0x0011d84c, // n0x05bb c0x0000 (---------------)  +   is-certified
-	0x0013a2c7, // n0x05bc c0x0000 (---------------)  +   is-gone
-	0x000dd78d, // n0x05bd c0x0000 (---------------)  +   is-into-anime
-	0x000df1cc, // n0x05be c0x0000 (---------------)  +   is-into-cars
-	0x000eadd0, // n0x05bf c0x0000 (---------------)  +   is-into-cartoons
-	0x000ebc4d, // n0x05c0 c0x0000 (---------------)  +   is-into-games
-	0x00157547, // n0x05c1 c0x0000 (---------------)  +   is-leet
-	0x000eff50, // n0x05c2 c0x0000 (---------------)  +   is-not-certified
-	0x000f5008, // n0x05c3 c0x0000 (---------------)  +   is-slick
-	0x000fb54b, // n0x05c4 c0x0000 (---------------)  +   is-uberleet
-	0x0013030f, // n0x05c5 c0x0000 (---------------)  +   is-with-theband
-	0x0014bd08, // n0x05c6 c0x0000 (---------------)  +   isa-geek
-	0x0005578d, // n0x05c7 c0x0000 (---------------)  +   isa-hockeynut
-	0x00141d50, // n0x05c8 c0x0000 (---------------)  +   issmarterthanyou
-	0x000a9f43, // n0x05c9 c0x0000 (---------------)  +   jpn
-	0x0000e742, // n0x05ca c0x0000 (---------------)  +   kr
-	0x00054389, // n0x05cb c0x0000 (---------------)  +   likes-pie
-	0x0002580a, // n0x05cc c0x0000 (---------------)  +   likescandy
-	0x0009fc83, // n0x05cd c0x0000 (---------------)  +   mex
-	0x0001b8c8, // n0x05ce c0x0000 (---------------)  +   neat-url
-	0x00009287, // n0x05cf c0x0000 (---------------)  +   nfshost
-	0x00001b82, // n0x05d0 c0x0000 (---------------)  +   no
-	0x0004a90a, // n0x05d1 c0x0000 (---------------)  +   operaunite
-	0x0008740f, // n0x05d2 c0x0000 (---------------)  +   outsystemscloud
-	0x00150482, // n0x05d3 c0x0000 (---------------)  +   qc
-	0x000e8547, // n0x05d4 c0x0000 (---------------)  +   rhcloud
-	0x00000c02, // n0x05d5 c0x0000 (---------------)  +   ro
-	0x0000c6c2, // n0x05d6 c0x0000 (---------------)  +   ru
-	0x00002882, // n0x05d7 c0x0000 (---------------)  +   sa
-	0x0006e6d0, // n0x05d8 c0x0000 (---------------)  +   saves-the-whales
-	0x00006d42, // n0x05d9 c0x0000 (---------------)  +   se
-	0x000ff606, // n0x05da c0x0000 (---------------)  +   selfip
-	0x00092c0e, // n0x05db c0x0000 (---------------)  +   sells-for-less
-	0x000a5ccb, // n0x05dc c0x0000 (---------------)  +   sells-for-u
-	0x00016d08, // n0x05dd c0x0000 (---------------)  +   servebbs
-	0x000e064a, // n0x05de c0x0000 (---------------)  +   simple-url
-	0x000e5c8d, // n0x05df c0x0000 (---------------)  +   space-to-rent
-	0x0016b28c, // n0x05e0 c0x0000 (---------------)  +   teaches-yoga
-	0x00000402, // n0x05e1 c0x0000 (---------------)  +   uk
-	0x000054c2, // n0x05e2 c0x0000 (---------------)  +   us
-	0x000193c2, // n0x05e3 c0x0000 (---------------)  +   uy
-	0x0005548a, // n0x05e4 c0x0000 (---------------)  +   withgoogle
-	0x000b86ce, // n0x05e5 c0x0000 (---------------)  +   writesthisblog
-	0x000e9148, // n0x05e6 c0x0000 (---------------)  +   yolasite
-	0x00003502, // n0x05e7 c0x0000 (---------------)  +   za
-	0x0f433987, // n0x05e8 c0x003d (n0x05ff-n0x0607)  +   compute
-	0x0f833989, // n0x05e9 c0x003e (n0x0607-n0x0609)  +   compute-1
-	0x000116c3, // n0x05ea c0x0000 (---------------)  +   elb
-	0x00005d82, // n0x05eb c0x0000 (---------------)  +   s3
-	0x00112b11, // n0x05ec c0x0000 (---------------)  +   s3-ap-northeast-1
-	0x00118651, // n0x05ed c0x0000 (---------------)  +   s3-ap-southeast-1
-	0x0016e991, // n0x05ee c0x0000 (---------------)  +   s3-ap-southeast-2
-	0x0011a38c, // n0x05ef c0x0000 (---------------)  +   s3-eu-west-1
-	0x0011e7d5, // n0x05f0 c0x0000 (---------------)  +   s3-fips-us-gov-west-1
-	0x0012834c, // n0x05f1 c0x0000 (---------------)  +   s3-sa-east-1
-	0x00135d10, // n0x05f2 c0x0000 (---------------)  +   s3-us-gov-west-1
-	0x0014ce4c, // n0x05f3 c0x0000 (---------------)  +   s3-us-west-1
-	0x0015eb4c, // n0x05f4 c0x0000 (---------------)  +   s3-us-west-2
-	0x00161a99, // n0x05f5 c0x0000 (---------------)  +   s3-website-ap-northeast-1
-	0x00005d99, // n0x05f6 c0x0000 (---------------)  +   s3-website-ap-southeast-1
-	0x0000f099, // n0x05f7 c0x0000 (---------------)  +   s3-website-ap-southeast-2
-	0x00010254, // n0x05f8 c0x0000 (---------------)  +   s3-website-eu-west-1
-	0x00010f54, // n0x05f9 c0x0000 (---------------)  +   s3-website-sa-east-1
-	0x00011cd4, // n0x05fa c0x0000 (---------------)  +   s3-website-us-east-1
-	0x00015458, // n0x05fb c0x0000 (---------------)  +   s3-website-us-gov-west-1
-	0x00016ed4, // n0x05fc c0x0000 (---------------)  +   s3-website-us-west-1
-	0x000183d4, // n0x05fd c0x0000 (---------------)  +   s3-website-us-west-2
-	0x00011f89, // n0x05fe c0x0000 (---------------)  +   us-east-1
-	0x00112bce, // n0x05ff c0x0000 (---------------)  +   ap-northeast-1
-	0x0000604e, // n0x0600 c0x0000 (---------------)  +   ap-southeast-1
-	0x0000f34e, // n0x0601 c0x0000 (---------------)  +   ap-southeast-2
-	0x00010509, // n0x0602 c0x0000 (---------------)  +   eu-west-1
-	0x00011209, // n0x0603 c0x0000 (---------------)  +   sa-east-1
-	0x0001570d, // n0x0604 c0x0000 (---------------)  +   us-gov-west-1
-	0x00017189, // n0x0605 c0x0000 (---------------)  +   us-west-1
-	0x00018689, // n0x0606 c0x0000 (---------------)  +   us-west-2
-	0x000fd103, // n0x0607 c0x0000 (---------------)  +   z-1
-	0x0001d203, // n0x0608 c0x0000 (---------------)  +   z-2
-	0x00201d82, // n0x0609 c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x060a c0x0000 (---------------)  + I co
-	0x00202542, // n0x060b c0x0000 (---------------)  + I ed
-	0x0021c5c2, // n0x060c c0x0000 (---------------)  + I fi
-	0x00206cc2, // n0x060d c0x0000 (---------------)  + I go
-	0x00200bc2, // n0x060e c0x0000 (---------------)  + I or
-	0x00202882, // n0x060f c0x0000 (---------------)  + I sa
-	0x00222603, // n0x0610 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0611 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0612 c0x0000 (---------------)  + I gov
-	0x0021c543, // n0x0613 c0x0000 (---------------)  + I inf
-	0x00201603, // n0x0614 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0615 c0x0000 (---------------)  + I org
-	0x000b8948, // n0x0616 c0x0000 (---------------)  +   blogspot
-	0x00222603, // n0x0617 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0618 c0x0000 (---------------)  + I edu
-	0x00201603, // n0x0619 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x061a c0x0000 (---------------)  + I org
-	0x00011c03, // n0x061b c0x0000 (---------------)  +   ath
-	0x002157c3, // n0x061c c0x0000 (---------------)  + I gov
-	0x000b8948, // n0x061d c0x0000 (---------------)  +   blogspot
-	0x000b8948, // n0x061e c0x0000 (---------------)  +   blogspot
-	0x00022603, // n0x061f c0x0000 (---------------)  +   com
-	0x001648cf, // n0x0620 c0x0000 (---------------)  +   fuettertdasnetz
-	0x000cda0a, // n0x0621 c0x0000 (---------------)  +   isteingeek
-	0x000ad547, // n0x0622 c0x0000 (---------------)  +   istmein
-	0x00045d4a, // n0x0623 c0x0000 (---------------)  +   lebtimnetz
-	0x000d48ca, // n0x0624 c0x0000 (---------------)  +   leitungsen
-	0x00121e8d, // n0x0625 c0x0000 (---------------)  +   traeumtgerade
-	0x000b8948, // n0x0626 c0x0000 (---------------)  +   blogspot
-	0x00222603, // n0x0627 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0628 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0629 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x062a c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x062b c0x0000 (---------------)  + I org
-	0x00201383, // n0x062c c0x0000 (---------------)  + I art
-	0x00222603, // n0x062d c0x0000 (---------------)  + I com
-	0x0027a643, // n0x062e c0x0000 (---------------)  + I edu
-	0x0020dbc3, // n0x062f c0x0000 (---------------)  + I gob
-	0x002157c3, // n0x0630 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x0631 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x0632 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0633 c0x0000 (---------------)  + I org
-	0x002dc183, // n0x0634 c0x0000 (---------------)  + I sld
-	0x00205e43, // n0x0635 c0x0000 (---------------)  + I web
-	0x00201383, // n0x0636 c0x0000 (---------------)  + I art
-	0x0029cfc4, // n0x0637 c0x0000 (---------------)  + I asso
-	0x00222603, // n0x0638 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0639 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x063a c0x0000 (---------------)  + I gov
-	0x00201603, // n0x063b c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x063c c0x0000 (---------------)  + I org
-	0x00214cc3, // n0x063d c0x0000 (---------------)  + I pol
-	0x00222603, // n0x063e c0x0000 (---------------)  + I com
-	0x0027a643, // n0x063f c0x0000 (---------------)  + I edu
-	0x0021c5c3, // n0x0640 c0x0000 (---------------)  + I fin
-	0x0020dbc3, // n0x0641 c0x0000 (---------------)  + I gob
-	0x002157c3, // n0x0642 c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x0643 c0x0000 (---------------)  + I info
-	0x0021bdc3, // n0x0644 c0x0000 (---------------)  + I k12
-	0x00225d03, // n0x0645 c0x0000 (---------------)  + I med
-	0x0023f703, // n0x0646 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x0647 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0648 c0x0000 (---------------)  + I org
-	0x002d8443, // n0x0649 c0x0000 (---------------)  + I pro
-	0x00314283, // n0x064a c0x0000 (---------------)  + I aip
-	0x00222603, // n0x064b c0x0000 (---------------)  + I com
-	0x0027a643, // n0x064c c0x0000 (---------------)  + I edu
-	0x00242203, // n0x064d c0x0000 (---------------)  + I fie
-	0x002157c3, // n0x064e c0x0000 (---------------)  + I gov
-	0x002858c3, // n0x064f c0x0000 (---------------)  + I lib
-	0x00225d03, // n0x0650 c0x0000 (---------------)  + I med
-	0x0021f5c3, // n0x0651 c0x0000 (---------------)  + I org
-	0x002d80c3, // n0x0652 c0x0000 (---------------)  + I pri
-	0x00368b84, // n0x0653 c0x0000 (---------------)  + I riik
-	0x00222603, // n0x0654 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0655 c0x0000 (---------------)  + I edu
-	0x002a19c3, // n0x0656 c0x0000 (---------------)  + I eun
-	0x002157c3, // n0x0657 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x0658 c0x0000 (---------------)  + I mil
-	0x0022aec4, // n0x0659 c0x0000 (---------------)  + I name
-	0x00201603, // n0x065a c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x065b c0x0000 (---------------)  + I org
-	0x00218bc3, // n0x065c c0x0000 (---------------)  + I sci
-	0x13a22603, // n0x065d c0x004e (n0x0662-n0x0663)  + I com
-	0x0027a643, // n0x065e c0x0000 (---------------)  + I edu
-	0x0020dbc3, // n0x065f c0x0000 (---------------)  + I gob
-	0x00214103, // n0x0660 c0x0000 (---------------)  + I nom
-	0x0021f5c3, // n0x0661 c0x0000 (---------------)  + I org
-	0x000b8948, // n0x0662 c0x0000 (---------------)  +   blogspot
-	0x00314c43, // n0x0663 c0x0000 (---------------)  + I biz
-	0x00222603, // n0x0664 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0665 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0666 c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x0667 c0x0000 (---------------)  + I info
-	0x0022aec4, // n0x0668 c0x0000 (---------------)  + I name
-	0x0021f5c3, // n0x0669 c0x0000 (---------------)  + I org
-	0x00310d45, // n0x066a c0x0000 (---------------)  + I aland
-	0x000b8948, // n0x066b c0x0000 (---------------)  +   blogspot
-	0x00004843, // n0x066c c0x0000 (---------------)  +   iki
-	0x00312288, // n0x066d c0x0000 (---------------)  + I aeroport
-	0x00247b87, // n0x066e c0x0000 (---------------)  + I assedic
-	0x0029cfc4, // n0x066f c0x0000 (---------------)  + I asso
-	0x0031e1c6, // n0x0670 c0x0000 (---------------)  + I avocat
-	0x00327586, // n0x0671 c0x0000 (---------------)  + I avoues
-	0x000b8948, // n0x0672 c0x0000 (---------------)  +   blogspot
-	0x00307f03, // n0x0673 c0x0000 (---------------)  + I cci
-	0x0029a489, // n0x0674 c0x0000 (---------------)  + I chambagri
-	0x00275755, // n0x0675 c0x0000 (---------------)  + I chirurgiens-dentistes
-	0x00222603, // n0x0676 c0x0000 (---------------)  + I com
-	0x00222412, // n0x0677 c0x0000 (---------------)  + I experts-comptables
-	0x002221cf, // n0x0678 c0x0000 (---------------)  + I geometre-expert
-	0x00368f84, // n0x0679 c0x0000 (---------------)  + I gouv
-	0x00269905, // n0x067a c0x0000 (---------------)  + I greta
-	0x0024b610, // n0x067b c0x0000 (---------------)  + I huissier-justice
-	0x002eef07, // n0x067c c0x0000 (---------------)  + I medecin
-	0x00214103, // n0x067d c0x0000 (---------------)  + I nom
-	0x002bef08, // n0x067e c0x0000 (---------------)  + I notaires
-	0x002c860a, // n0x067f c0x0000 (---------------)  + I pharmacien
-	0x00231304, // n0x0680 c0x0000 (---------------)  + I port
-	0x002d7b03, // n0x0681 c0x0000 (---------------)  + I prd
-	0x002487c6, // n0x0682 c0x0000 (---------------)  + I presse
-	0x00200142, // n0x0683 c0x0000 (---------------)  + I tm
-	0x002de14b, // n0x0684 c0x0000 (---------------)  + I veterinaire
-	0x00222603, // n0x0685 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0686 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0687 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x0688 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x0689 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x068a c0x0000 (---------------)  + I org
-	0x002dbbc3, // n0x068b c0x0000 (---------------)  + I pvt
-	0x00207a02, // n0x068c c0x0000 (---------------)  + I co
-	0x00201603, // n0x068d c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x068e c0x0000 (---------------)  + I org
-	0x00222603, // n0x068f c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0690 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0691 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x0692 c0x0000 (---------------)  + I mil
-	0x0021f5c3, // n0x0693 c0x0000 (---------------)  + I org
-	0x00222603, // n0x0694 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0695 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0696 c0x0000 (---------------)  + I gov
-	0x00223143, // n0x0697 c0x0000 (---------------)  + I ltd
-	0x0022ab03, // n0x0698 c0x0000 (---------------)  + I mod
-	0x0021f5c3, // n0x0699 c0x0000 (---------------)  + I org
-	0x00201d82, // n0x069a c0x0000 (---------------)  + I ac
-	0x00222603, // n0x069b c0x0000 (---------------)  + I com
-	0x0027a643, // n0x069c c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x069d c0x0000 (---------------)  + I gov
-	0x00201603, // n0x069e c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x069f c0x0000 (---------------)  + I org
-	0x0029cfc4, // n0x06a0 c0x0000 (---------------)  + I asso
-	0x00222603, // n0x06a1 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x06a2 c0x0000 (---------------)  + I edu
-	0x0020e884, // n0x06a3 c0x0000 (---------------)  + I mobi
-	0x00201603, // n0x06a4 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x06a5 c0x0000 (---------------)  + I org
-	0x000b8948, // n0x06a6 c0x0000 (---------------)  +   blogspot
-	0x00222603, // n0x06a7 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x06a8 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x06a9 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x06aa c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x06ab c0x0000 (---------------)  + I org
-	0x00222603, // n0x06ac c0x0000 (---------------)  + I com
-	0x0027a643, // n0x06ad c0x0000 (---------------)  + I edu
-	0x0020dbc3, // n0x06ae c0x0000 (---------------)  + I gob
-	0x00214b03, // n0x06af c0x0000 (---------------)  + I ind
-	0x0023f703, // n0x06b0 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x06b1 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x06b2 c0x0000 (---------------)  + I org
-	0x00207a02, // n0x06b3 c0x0000 (---------------)  + I co
-	0x00222603, // n0x06b4 c0x0000 (---------------)  + I com
-	0x00201603, // n0x06b5 c0x0000 (---------------)  + I net
-	0x000b8948, // n0x06b6 c0x0000 (---------------)  +   blogspot
-	0x00222603, // n0x06b7 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x06b8 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x06b9 c0x0000 (---------------)  + I gov
-	0x00308f83, // n0x06ba c0x0000 (---------------)  + I idv
-	0x00201603, // n0x06bb c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x06bc c0x0000 (---------------)  + I org
-	0x003732ca, // n0x06bd c0x0000 (---------------)  + I xn--55qx5d
-	0x0030cc09, // n0x06be c0x0000 (---------------)  + I xn--ciqpn
-	0x0032534b, // n0x06bf c0x0000 (---------------)  + I xn--gmq050i
-	0x003258ca, // n0x06c0 c0x0000 (---------------)  + I xn--gmqw5a
-	0x0032b80a, // n0x06c1 c0x0000 (---------------)  + I xn--io0a7i
-	0x00334f8b, // n0x06c2 c0x0000 (---------------)  + I xn--lcvr32d
-	0x0033f38a, // n0x06c3 c0x0000 (---------------)  + I xn--mk0axi
-	0x00348b0a, // n0x06c4 c0x0000 (---------------)  + I xn--mxtq1m
-	0x0034c44a, // n0x06c5 c0x0000 (---------------)  + I xn--od0alg
-	0x0034c6cb, // n0x06c6 c0x0000 (---------------)  + I xn--od0aq3b
-	0x003623c9, // n0x06c7 c0x0000 (---------------)  + I xn--tn0ag
-	0x00363cca, // n0x06c8 c0x0000 (---------------)  + I xn--uc0atv
-	0x0036418b, // n0x06c9 c0x0000 (---------------)  + I xn--uc0ay4a
-	0x0037034b, // n0x06ca c0x0000 (---------------)  + I xn--wcvs22d
-	0x0037404a, // n0x06cb c0x0000 (---------------)  + I xn--zf0avx
-	0x00222603, // n0x06cc c0x0000 (---------------)  + I com
-	0x0027a643, // n0x06cd c0x0000 (---------------)  + I edu
-	0x0020dbc3, // n0x06ce c0x0000 (---------------)  + I gob
-	0x0023f703, // n0x06cf c0x0000 (---------------)  + I mil
-	0x00201603, // n0x06d0 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x06d1 c0x0000 (---------------)  + I org
-	0x00222603, // n0x06d2 c0x0000 (---------------)  + I com
-	0x0025e504, // n0x06d3 c0x0000 (---------------)  + I from
-	0x0020f842, // n0x06d4 c0x0000 (---------------)  + I iz
-	0x0022aec4, // n0x06d5 c0x0000 (---------------)  + I name
-	0x00277285, // n0x06d6 c0x0000 (---------------)  + I adult
-	0x00201383, // n0x06d7 c0x0000 (---------------)  + I art
-	0x0029cfc4, // n0x06d8 c0x0000 (---------------)  + I asso
-	0x00222603, // n0x06d9 c0x0000 (---------------)  + I com
-	0x00239dc4, // n0x06da c0x0000 (---------------)  + I coop
-	0x0027a643, // n0x06db c0x0000 (---------------)  + I edu
-	0x00245bc4, // n0x06dc c0x0000 (---------------)  + I firm
-	0x00368f84, // n0x06dd c0x0000 (---------------)  + I gouv
-	0x0021c704, // n0x06de c0x0000 (---------------)  + I info
-	0x00225d03, // n0x06df c0x0000 (---------------)  + I med
-	0x00201603, // n0x06e0 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x06e1 c0x0000 (---------------)  + I org
-	0x002f1945, // n0x06e2 c0x0000 (---------------)  + I perso
-	0x00214cc3, // n0x06e3 c0x0000 (---------------)  + I pol
-	0x002d8443, // n0x06e4 c0x0000 (---------------)  + I pro
-	0x00280183, // n0x06e5 c0x0000 (---------------)  + I rel
-	0x0024f584, // n0x06e6 c0x0000 (---------------)  + I shop
-	0x0021be44, // n0x06e7 c0x0000 (---------------)  + I 2000
-	0x0022a005, // n0x06e8 c0x0000 (---------------)  + I agrar
-	0x000b8948, // n0x06e9 c0x0000 (---------------)  +   blogspot
-	0x00253344, // n0x06ea c0x0000 (---------------)  + I bolt
-	0x0023a9c6, // n0x06eb c0x0000 (---------------)  + I casino
-	0x00357e04, // n0x06ec c0x0000 (---------------)  + I city
-	0x00207a02, // n0x06ed c0x0000 (---------------)  + I co
-	0x002acc07, // n0x06ee c0x0000 (---------------)  + I erotica
-	0x00276707, // n0x06ef c0x0000 (---------------)  + I erotika
-	0x00242cc4, // n0x06f0 c0x0000 (---------------)  + I film
-	0x00258045, // n0x06f1 c0x0000 (---------------)  + I forum
-	0x002ebe45, // n0x06f2 c0x0000 (---------------)  + I games
-	0x002a7585, // n0x06f3 c0x0000 (---------------)  + I hotel
-	0x0021c704, // n0x06f4 c0x0000 (---------------)  + I info
-	0x0027c4c8, // n0x06f5 c0x0000 (---------------)  + I ingatlan
-	0x0020b206, // n0x06f6 c0x0000 (---------------)  + I jogasz
-	0x002d5a88, // n0x06f7 c0x0000 (---------------)  + I konyvelo
-	0x00288d45, // n0x06f8 c0x0000 (---------------)  + I lakas
-	0x0027ab45, // n0x06f9 c0x0000 (---------------)  + I media
-	0x0023fc04, // n0x06fa c0x0000 (---------------)  + I news
-	0x0021f5c3, // n0x06fb c0x0000 (---------------)  + I org
-	0x002d82c4, // n0x06fc c0x0000 (---------------)  + I priv
-	0x00333c86, // n0x06fd c0x0000 (---------------)  + I reklam
-	0x002488c3, // n0x06fe c0x0000 (---------------)  + I sex
-	0x0024f584, // n0x06ff c0x0000 (---------------)  + I shop
-	0x00293bc5, // n0x0700 c0x0000 (---------------)  + I sport
-	0x003005c4, // n0x0701 c0x0000 (---------------)  + I suli
-	0x002081c4, // n0x0702 c0x0000 (---------------)  + I szex
-	0x00200142, // n0x0703 c0x0000 (---------------)  + I tm
-	0x00262c86, // n0x0704 c0x0000 (---------------)  + I tozsde
-	0x00359fc6, // n0x0705 c0x0000 (---------------)  + I utazas
-	0x002f68c5, // n0x0706 c0x0000 (---------------)  + I video
-	0x00201d82, // n0x0707 c0x0000 (---------------)  + I ac
-	0x00314c43, // n0x0708 c0x0000 (---------------)  + I biz
-	0x00207a02, // n0x0709 c0x0000 (---------------)  + I co
-	0x00238504, // n0x070a c0x0000 (---------------)  + I desa
-	0x00206cc2, // n0x070b c0x0000 (---------------)  + I go
-	0x0023f703, // n0x070c c0x0000 (---------------)  + I mil
-	0x00208482, // n0x070d c0x0000 (---------------)  + I my
-	0x00201603, // n0x070e c0x0000 (---------------)  + I net
-	0x00200bc2, // n0x070f c0x0000 (---------------)  + I or
-	0x002526c3, // n0x0710 c0x0000 (---------------)  + I sch
-	0x00205e43, // n0x0711 c0x0000 (---------------)  + I web
-	0x000b8948, // n0x0712 c0x0000 (---------------)  +   blogspot
-	0x002157c3, // n0x0713 c0x0000 (---------------)  + I gov
-	0x18e07a02, // n0x0714 c0x0063 (n0x0715-n0x0716)  o I co
-	0x000b8948, // n0x0715 c0x0000 (---------------)  +   blogspot
-	0x00201d82, // n0x0716 c0x0000 (---------------)  + I ac
-	0x19607a02, // n0x0717 c0x0065 (n0x071d-n0x071f)  + I co
-	0x00222603, // n0x0718 c0x0000 (---------------)  + I com
-	0x00201603, // n0x0719 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x071a c0x0000 (---------------)  + I org
-	0x00204ec2, // n0x071b c0x0000 (---------------)  + I tt
-	0x00292602, // n0x071c c0x0000 (---------------)  + I tv
-	0x00223143, // n0x071d c0x0000 (---------------)  + I ltd
-	0x002d2a43, // n0x071e c0x0000 (---------------)  + I plc
-	0x00201d82, // n0x071f c0x0000 (---------------)  + I ac
-	0x000b8948, // n0x0720 c0x0000 (---------------)  +   blogspot
-	0x00207a02, // n0x0721 c0x0000 (---------------)  + I co
-	0x0027a643, // n0x0722 c0x0000 (---------------)  + I edu
-	0x00245bc4, // n0x0723 c0x0000 (---------------)  + I firm
-	0x00204b03, // n0x0724 c0x0000 (---------------)  + I gen
-	0x002157c3, // n0x0725 c0x0000 (---------------)  + I gov
-	0x00214b03, // n0x0726 c0x0000 (---------------)  + I ind
-	0x0023f703, // n0x0727 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x0728 c0x0000 (---------------)  + I net
-	0x00213e03, // n0x0729 c0x0000 (---------------)  + I nic
-	0x0021f5c3, // n0x072a c0x0000 (---------------)  + I org
-	0x00218b43, // n0x072b c0x0000 (---------------)  + I res
-	0x00113953, // n0x072c c0x0000 (---------------)  +   barrel-of-knowledge
-	0x00118d14, // n0x072d c0x0000 (---------------)  +   barrell-of-knowledge
-	0x00010c06, // n0x072e c0x0000 (---------------)  +   dyndns
-	0x00052007, // n0x072f c0x0000 (---------------)  +   for-our
-	0x000e7789, // n0x0730 c0x0000 (---------------)  +   groks-the
-	0x0012244a, // n0x0731 c0x0000 (---------------)  +   groks-this
-	0x0008218d, // n0x0732 c0x0000 (---------------)  +   here-for-more
-	0x0001ce4a, // n0x0733 c0x0000 (---------------)  +   knowsitall
-	0x000ff606, // n0x0734 c0x0000 (---------------)  +   selfip
-	0x0004db86, // n0x0735 c0x0000 (---------------)  +   webhop
-	0x00210502, // n0x0736 c0x0000 (---------------)  + I eu
-	0x00222603, // n0x0737 c0x0000 (---------------)  + I com
-	0x000bb506, // n0x0738 c0x0000 (---------------)  +   github
-	0x0004d943, // n0x0739 c0x0000 (---------------)  +   nid
-	0x00222603, // n0x073a c0x0000 (---------------)  + I com
-	0x0027a643, // n0x073b c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x073c c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x073d c0x0000 (---------------)  + I mil
-	0x00201603, // n0x073e c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x073f c0x0000 (---------------)  + I org
-	0x00201d82, // n0x0740 c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x0741 c0x0000 (---------------)  + I co
-	0x002157c3, // n0x0742 c0x0000 (---------------)  + I gov
-	0x00202f82, // n0x0743 c0x0000 (---------------)  + I id
-	0x00201603, // n0x0744 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0745 c0x0000 (---------------)  + I org
-	0x002526c3, // n0x0746 c0x0000 (---------------)  + I sch
-	0x0033accf, // n0x0747 c0x0000 (---------------)  + I xn--mgba3a4f16a
-	0x0033b08e, // n0x0748 c0x0000 (---------------)  + I xn--mgba3a4fra
-	0x00222603, // n0x0749 c0x0000 (---------------)  + I com
-	0x00041647, // n0x074a c0x0000 (---------------)  +   cupcake
-	0x0027a643, // n0x074b c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x074c c0x0000 (---------------)  + I gov
-	0x00223a83, // n0x074d c0x0000 (---------------)  + I int
-	0x00201603, // n0x074e c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x074f c0x0000 (---------------)  + I org
-	0x0020bcc3, // n0x0750 c0x0000 (---------------)  + I abr
-	0x0036a507, // n0x0751 c0x0000 (---------------)  + I abruzzo
-	0x00200482, // n0x0752 c0x0000 (---------------)  + I ag
-	0x0032c189, // n0x0753 c0x0000 (---------------)  + I agrigento
-	0x00202082, // n0x0754 c0x0000 (---------------)  + I al
-	0x0026e9cb, // n0x0755 c0x0000 (---------------)  + I alessandria
-	0x002dbe4a, // n0x0756 c0x0000 (---------------)  + I alto-adige
-	0x002e0d49, // n0x0757 c0x0000 (---------------)  + I altoadige
-	0x00200202, // n0x0758 c0x0000 (---------------)  + I an
-	0x00237146, // n0x0759 c0x0000 (---------------)  + I ancona
-	0x00277515, // n0x075a c0x0000 (---------------)  + I andria-barletta-trani
-	0x0026eb15, // n0x075b c0x0000 (---------------)  + I andria-trani-barletta
-	0x00282fd3, // n0x075c c0x0000 (---------------)  + I andriabarlettatrani
-	0x0026f093, // n0x075d c0x0000 (---------------)  + I andriatranibarletta
-	0x00204382, // n0x075e c0x0000 (---------------)  + I ao
-	0x00208b05, // n0x075f c0x0000 (---------------)  + I aosta
-	0x003684cc, // n0x0760 c0x0000 (---------------)  + I aosta-valley
-	0x002af18b, // n0x0761 c0x0000 (---------------)  + I aostavalley
-	0x00268185, // n0x0762 c0x0000 (---------------)  + I aoste
-	0x00205c42, // n0x0763 c0x0000 (---------------)  + I ap
-	0x00280082, // n0x0764 c0x0000 (---------------)  + I aq
-	0x002d1086, // n0x0765 c0x0000 (---------------)  + I aquila
-	0x00200a42, // n0x0766 c0x0000 (---------------)  + I ar
-	0x0025e8c6, // n0x0767 c0x0000 (---------------)  + I arezzo
-	0x0029ff8d, // n0x0768 c0x0000 (---------------)  + I ascoli-piceno
-	0x002354cc, // n0x0769 c0x0000 (---------------)  + I ascolipiceno
-	0x0023cd04, // n0x076a c0x0000 (---------------)  + I asti
-	0x00200102, // n0x076b c0x0000 (---------------)  + I at
-	0x002025c2, // n0x076c c0x0000 (---------------)  + I av
-	0x00296b48, // n0x076d c0x0000 (---------------)  + I avellino
-	0x00201902, // n0x076e c0x0000 (---------------)  + I ba
-	0x00250686, // n0x076f c0x0000 (---------------)  + I balsan
-	0x0028e704, // n0x0770 c0x0000 (---------------)  + I bari
-	0x002776d5, // n0x0771 c0x0000 (---------------)  + I barletta-trani-andria
-	0x00283153, // n0x0772 c0x0000 (---------------)  + I barlettatraniandria
-	0x00211603, // n0x0773 c0x0000 (---------------)  + I bas
-	0x0032728a, // n0x0774 c0x0000 (---------------)  + I basilicata
-	0x00222a07, // n0x0775 c0x0000 (---------------)  + I belluno
-	0x003452c9, // n0x0776 c0x0000 (---------------)  + I benevento
-	0x00349947, // n0x0777 c0x0000 (---------------)  + I bergamo
-	0x00367842, // n0x0778 c0x0000 (---------------)  + I bg
-	0x00200002, // n0x0779 c0x0000 (---------------)  + I bi
-	0x00373a06, // n0x077a c0x0000 (---------------)  + I biella
-	0x0020f902, // n0x077b c0x0000 (---------------)  + I bl
-	0x000b8948, // n0x077c c0x0000 (---------------)  +   blogspot
-	0x00211442, // n0x077d c0x0000 (---------------)  + I bn
-	0x00200fc2, // n0x077e c0x0000 (---------------)  + I bo
-	0x00200fc7, // n0x077f c0x0000 (---------------)  + I bologna
-	0x002f7e47, // n0x0780 c0x0000 (---------------)  + I bolzano
-	0x00215e85, // n0x0781 c0x0000 (---------------)  + I bozen
-	0x00206842, // n0x0782 c0x0000 (---------------)  + I br
-	0x00218b07, // n0x0783 c0x0000 (---------------)  + I brescia
-	0x00218cc8, // n0x0784 c0x0000 (---------------)  + I brindisi
-	0x00205ec2, // n0x0785 c0x0000 (---------------)  + I bs
-	0x00245dc2, // n0x0786 c0x0000 (---------------)  + I bt
-	0x0022a402, // n0x0787 c0x0000 (---------------)  + I bz
-	0x0020bc02, // n0x0788 c0x0000 (---------------)  + I ca
-	0x00255108, // n0x0789 c0x0000 (---------------)  + I cagliari
-	0x0020bc03, // n0x078a c0x0000 (---------------)  + I cal
-	0x0020bc08, // n0x078b c0x0000 (---------------)  + I calabria
-	0x00313f8d, // n0x078c c0x0000 (---------------)  + I caltanissetta
-	0x0021f383, // n0x078d c0x0000 (---------------)  + I cam
-	0x00308b48, // n0x078e c0x0000 (---------------)  + I campania
-	0x0023d48f, // n0x078f c0x0000 (---------------)  + I campidano-medio
-	0x0023d84e, // n0x0790 c0x0000 (---------------)  + I campidanomedio
-	0x002acd4a, // n0x0791 c0x0000 (---------------)  + I campobasso
-	0x00345c91, // n0x0792 c0x0000 (---------------)  + I carbonia-iglesias
-	0x00346110, // n0x0793 c0x0000 (---------------)  + I carboniaiglesias
-	0x002ab44d, // n0x0794 c0x0000 (---------------)  + I carrara-massa
-	0x002ab78c, // n0x0795 c0x0000 (---------------)  + I carraramassa
-	0x0022d9c7, // n0x0796 c0x0000 (---------------)  + I caserta
-	0x00327407, // n0x0797 c0x0000 (---------------)  + I catania
-	0x0031e289, // n0x0798 c0x0000 (---------------)  + I catanzaro
-	0x0023ce02, // n0x0799 c0x0000 (---------------)  + I cb
-	0x00202902, // n0x079a c0x0000 (---------------)  + I ce
-	0x00253e4c, // n0x079b c0x0000 (---------------)  + I cesena-forli
-	0x0025414b, // n0x079c c0x0000 (---------------)  + I cesenaforli
-	0x00200602, // n0x079d c0x0000 (---------------)  + I ch
-	0x002b5786, // n0x079e c0x0000 (---------------)  + I chieti
-	0x00218c02, // n0x079f c0x0000 (---------------)  + I ci
-	0x002007c2, // n0x07a0 c0x0000 (---------------)  + I cl
-	0x002309c2, // n0x07a1 c0x0000 (---------------)  + I cn
-	0x00207a02, // n0x07a2 c0x0000 (---------------)  + I co
-	0x002335c4, // n0x07a3 c0x0000 (---------------)  + I como
-	0x0023c747, // n0x07a4 c0x0000 (---------------)  + I cosenza
-	0x00218282, // n0x07a5 c0x0000 (---------------)  + I cr
-	0x0023f0c7, // n0x07a6 c0x0000 (---------------)  + I cremona
-	0x0023fac7, // n0x07a7 c0x0000 (---------------)  + I crotone
-	0x00205d42, // n0x07a8 c0x0000 (---------------)  + I cs
-	0x00230cc2, // n0x07a9 c0x0000 (---------------)  + I ct
-	0x00241505, // n0x07aa c0x0000 (---------------)  + I cuneo
-	0x00223342, // n0x07ab c0x0000 (---------------)  + I cz
-	0x0027844e, // n0x07ac c0x0000 (---------------)  + I dell-ogliastra
-	0x0022ec0d, // n0x07ad c0x0000 (---------------)  + I dellogliastra
-	0x0027a643, // n0x07ae c0x0000 (---------------)  + I edu
-	0x0034fd4e, // n0x07af c0x0000 (---------------)  + I emilia-romagna
-	0x0024ff0d, // n0x07b0 c0x0000 (---------------)  + I emiliaromagna
-	0x00211983, // n0x07b1 c0x0000 (---------------)  + I emr
-	0x00202682, // n0x07b2 c0x0000 (---------------)  + I en
-	0x002c6704, // n0x07b3 c0x0000 (---------------)  + I enna
-	0x002d91c2, // n0x07b4 c0x0000 (---------------)  + I fc
-	0x0022e3c2, // n0x07b5 c0x0000 (---------------)  + I fe
-	0x0033a745, // n0x07b6 c0x0000 (---------------)  + I fermo
-	0x00348607, // n0x07b7 c0x0000 (---------------)  + I ferrara
-	0x00352042, // n0x07b8 c0x0000 (---------------)  + I fg
-	0x0021c5c2, // n0x07b9 c0x0000 (---------------)  + I fi
-	0x00245a07, // n0x07ba c0x0000 (---------------)  + I firenze
-	0x0024c588, // n0x07bb c0x0000 (---------------)  + I florence
-	0x00253942, // n0x07bc c0x0000 (---------------)  + I fm
-	0x0021c786, // n0x07bd c0x0000 (---------------)  + I foggia
-	0x00253ccc, // n0x07be c0x0000 (---------------)  + I forli-cesena
-	0x0025400b, // n0x07bf c0x0000 (---------------)  + I forlicesena
-	0x00212442, // n0x07c0 c0x0000 (---------------)  + I fr
-	0x0025a84f, // n0x07c1 c0x0000 (---------------)  + I friuli-v-giulia
-	0x0025ac10, // n0x07c2 c0x0000 (---------------)  + I friuli-ve-giulia
-	0x0025b00f, // n0x07c3 c0x0000 (---------------)  + I friuli-vegiulia
-	0x0025b3d5, // n0x07c4 c0x0000 (---------------)  + I friuli-venezia-giulia
-	0x0025b914, // n0x07c5 c0x0000 (---------------)  + I friuli-veneziagiulia
-	0x0025be0e, // n0x07c6 c0x0000 (---------------)  + I friuli-vgiulia
-	0x0025c18e, // n0x07c7 c0x0000 (---------------)  + I friuliv-giulia
-	0x0025c50f, // n0x07c8 c0x0000 (---------------)  + I friulive-giulia
-	0x0025c8ce, // n0x07c9 c0x0000 (---------------)  + I friulivegiulia
-	0x0025cc54, // n0x07ca c0x0000 (---------------)  + I friulivenezia-giulia
-	0x0025d153, // n0x07cb c0x0000 (---------------)  + I friuliveneziagiulia
-	0x0025d60d, // n0x07cc c0x0000 (---------------)  + I friulivgiulia
-	0x002721c9, // n0x07cd c0x0000 (---------------)  + I frosinone
-	0x00283603, // n0x07ce c0x0000 (---------------)  + I fvg
-	0x00202e82, // n0x07cf c0x0000 (---------------)  + I ge
-	0x00209ac5, // n0x07d0 c0x0000 (---------------)  + I genoa
-	0x00213b06, // n0x07d1 c0x0000 (---------------)  + I genova
-	0x00206cc2, // n0x07d2 c0x0000 (---------------)  + I go
-	0x002c27c7, // n0x07d3 c0x0000 (---------------)  + I gorizia
-	0x002157c3, // n0x07d4 c0x0000 (---------------)  + I gov
-	0x00205bc2, // n0x07d5 c0x0000 (---------------)  + I gr
-	0x0022e808, // n0x07d6 c0x0000 (---------------)  + I grosseto
-	0x00345ed1, // n0x07d7 c0x0000 (---------------)  + I iglesias-carbonia
-	0x00346310, // n0x07d8 c0x0000 (---------------)  + I iglesiascarbonia
-	0x002029c2, // n0x07d9 c0x0000 (---------------)  + I im
-	0x00338d07, // n0x07da c0x0000 (---------------)  + I imperia
-	0x002046c2, // n0x07db c0x0000 (---------------)  + I is
-	0x0025e047, // n0x07dc c0x0000 (---------------)  + I isernia
-	0x0020e742, // n0x07dd c0x0000 (---------------)  + I kr
-	0x00373b09, // n0x07de c0x0000 (---------------)  + I la-spezia
-	0x002d1047, // n0x07df c0x0000 (---------------)  + I laquila
-	0x002a44c8, // n0x07e0 c0x0000 (---------------)  + I laspezia
-	0x00217e06, // n0x07e1 c0x0000 (---------------)  + I latina
-	0x002d2943, // n0x07e2 c0x0000 (---------------)  + I laz
-	0x00340f85, // n0x07e3 c0x0000 (---------------)  + I lazio
-	0x0020ed02, // n0x07e4 c0x0000 (---------------)  + I lc
-	0x00209202, // n0x07e5 c0x0000 (---------------)  + I le
-	0x00240c45, // n0x07e6 c0x0000 (---------------)  + I lecce
-	0x00248b45, // n0x07e7 c0x0000 (---------------)  + I lecco
-	0x002020c2, // n0x07e8 c0x0000 (---------------)  + I li
-	0x00223bc3, // n0x07e9 c0x0000 (---------------)  + I lig
-	0x00300647, // n0x07ea c0x0000 (---------------)  + I liguria
-	0x00205107, // n0x07eb c0x0000 (---------------)  + I livorno
-	0x00200802, // n0x07ec c0x0000 (---------------)  + I lo
-	0x002d5c04, // n0x07ed c0x0000 (---------------)  + I lodi
-	0x00224303, // n0x07ee c0x0000 (---------------)  + I lom
-	0x002bf589, // n0x07ef c0x0000 (---------------)  + I lombardia
-	0x00224308, // n0x07f0 c0x0000 (---------------)  + I lombardy
-	0x00220002, // n0x07f1 c0x0000 (---------------)  + I lt
-	0x00202f02, // n0x07f2 c0x0000 (---------------)  + I lu
-	0x0026d547, // n0x07f3 c0x0000 (---------------)  + I lucania
-	0x002d3685, // n0x07f4 c0x0000 (---------------)  + I lucca
-	0x00308648, // n0x07f5 c0x0000 (---------------)  + I macerata
-	0x0027be87, // n0x07f6 c0x0000 (---------------)  + I mantova
-	0x0020aa43, // n0x07f7 c0x0000 (---------------)  + I mar
-	0x00322dc6, // n0x07f8 c0x0000 (---------------)  + I marche
-	0x002ab2cd, // n0x07f9 c0x0000 (---------------)  + I massa-carrara
-	0x002ab64c, // n0x07fa c0x0000 (---------------)  + I massacarrara
-	0x002c8006, // n0x07fb c0x0000 (---------------)  + I matera
-	0x00203102, // n0x07fc c0x0000 (---------------)  + I mb
-	0x002e83c2, // n0x07fd c0x0000 (---------------)  + I mc
-	0x00202a02, // n0x07fe c0x0000 (---------------)  + I me
-	0x0023d30f, // n0x07ff c0x0000 (---------------)  + I medio-campidano
-	0x0023d70e, // n0x0800 c0x0000 (---------------)  + I mediocampidano
-	0x002a1347, // n0x0801 c0x0000 (---------------)  + I messina
-	0x00207e02, // n0x0802 c0x0000 (---------------)  + I mi
-	0x0031f205, // n0x0803 c0x0000 (---------------)  + I milan
-	0x0031f206, // n0x0804 c0x0000 (---------------)  + I milano
-	0x002298c2, // n0x0805 c0x0000 (---------------)  + I mn
-	0x00206c42, // n0x0806 c0x0000 (---------------)  + I mo
-	0x003522c6, // n0x0807 c0x0000 (---------------)  + I modena
-	0x00229e03, // n0x0808 c0x0000 (---------------)  + I mol
-	0x002c8186, // n0x0809 c0x0000 (---------------)  + I molise
-	0x002c0385, // n0x080a c0x0000 (---------------)  + I monza
-	0x002c038d, // n0x080b c0x0000 (---------------)  + I monza-brianza
-	0x002c06d5, // n0x080c c0x0000 (---------------)  + I monza-e-della-brianza
-	0x002c0c0c, // n0x080d c0x0000 (---------------)  + I monzabrianza
-	0x002c0f0d, // n0x080e c0x0000 (---------------)  + I monzaebrianza
-	0x002c1252, // n0x080f c0x0000 (---------------)  + I monzaedellabrianza
-	0x00225542, // n0x0810 c0x0000 (---------------)  + I ms
-	0x00268d82, // n0x0811 c0x0000 (---------------)  + I mt
-	0x00200242, // n0x0812 c0x0000 (---------------)  + I na
-	0x002e2386, // n0x0813 c0x0000 (---------------)  + I naples
-	0x00214c46, // n0x0814 c0x0000 (---------------)  + I napoli
-	0x00201b82, // n0x0815 c0x0000 (---------------)  + I no
-	0x00213b86, // n0x0816 c0x0000 (---------------)  + I novara
-	0x002267c2, // n0x0817 c0x0000 (---------------)  + I nu
-	0x003605c5, // n0x0818 c0x0000 (---------------)  + I nuoro
-	0x00200cc2, // n0x0819 c0x0000 (---------------)  + I og
-	0x0022ed09, // n0x081a c0x0000 (---------------)  + I ogliastra
-	0x0023948c, // n0x081b c0x0000 (---------------)  + I olbia-tempio
-	0x002397cb, // n0x081c c0x0000 (---------------)  + I olbiatempio
-	0x00200bc2, // n0x081d c0x0000 (---------------)  + I or
-	0x0024c9c8, // n0x081e c0x0000 (---------------)  + I oristano
-	0x00203f42, // n0x081f c0x0000 (---------------)  + I ot
-	0x002001c2, // n0x0820 c0x0000 (---------------)  + I pa
-	0x002088c6, // n0x0821 c0x0000 (---------------)  + I padova
-	0x0033c145, // n0x0822 c0x0000 (---------------)  + I padua
-	0x003665c7, // n0x0823 c0x0000 (---------------)  + I palermo
-	0x00322f85, // n0x0824 c0x0000 (---------------)  + I parma
-	0x002eb285, // n0x0825 c0x0000 (---------------)  + I pavia
-	0x002416c2, // n0x0826 c0x0000 (---------------)  + I pc
-	0x00311502, // n0x0827 c0x0000 (---------------)  + I pd
-	0x00202142, // n0x0828 c0x0000 (---------------)  + I pe
-	0x0031ca47, // n0x0829 c0x0000 (---------------)  + I perugia
-	0x00246b8d, // n0x082a c0x0000 (---------------)  + I pesaro-urbino
-	0x00246f0c, // n0x082b c0x0000 (---------------)  + I pesarourbino
-	0x002d3d87, // n0x082c c0x0000 (---------------)  + I pescara
-	0x00222d02, // n0x082d c0x0000 (---------------)  + I pg
-	0x00208542, // n0x082e c0x0000 (---------------)  + I pi
-	0x0020b508, // n0x082f c0x0000 (---------------)  + I piacenza
-	0x00254508, // n0x0830 c0x0000 (---------------)  + I piedmont
-	0x002cee88, // n0x0831 c0x0000 (---------------)  + I piemonte
-	0x00255744, // n0x0832 c0x0000 (---------------)  + I pisa
-	0x002b74c7, // n0x0833 c0x0000 (---------------)  + I pistoia
-	0x002d46c3, // n0x0834 c0x0000 (---------------)  + I pmn
-	0x002a9f82, // n0x0835 c0x0000 (---------------)  + I pn
-	0x00205982, // n0x0836 c0x0000 (---------------)  + I po
-	0x002d60c9, // n0x0837 c0x0000 (---------------)  + I pordenone
-	0x00244a07, // n0x0838 c0x0000 (---------------)  + I potenza
-	0x002487c2, // n0x0839 c0x0000 (---------------)  + I pr
-	0x003378c5, // n0x083a c0x0000 (---------------)  + I prato
-	0x002226c2, // n0x083b c0x0000 (---------------)  + I pt
-	0x00200f42, // n0x083c c0x0000 (---------------)  + I pu
-	0x002b2803, // n0x083d c0x0000 (---------------)  + I pug
-	0x002b2806, // n0x083e c0x0000 (---------------)  + I puglia
-	0x002dbbc2, // n0x083f c0x0000 (---------------)  + I pv
-	0x002dc0c2, // n0x0840 c0x0000 (---------------)  + I pz
-	0x00200a82, // n0x0841 c0x0000 (---------------)  + I ra
-	0x0036b686, // n0x0842 c0x0000 (---------------)  + I ragusa
-	0x0036d087, // n0x0843 c0x0000 (---------------)  + I ravenna
-	0x002074c2, // n0x0844 c0x0000 (---------------)  + I rc
-	0x002039c2, // n0x0845 c0x0000 (---------------)  + I re
-	0x002c438f, // n0x0846 c0x0000 (---------------)  + I reggio-calabria
-	0x0034fb8d, // n0x0847 c0x0000 (---------------)  + I reggio-emilia
-	0x0020ba8e, // n0x0848 c0x0000 (---------------)  + I reggiocalabria
-	0x0024fd8c, // n0x0849 c0x0000 (---------------)  + I reggioemilia
-	0x00201702, // n0x084a c0x0000 (---------------)  + I rg
-	0x00209fc2, // n0x084b c0x0000 (---------------)  + I ri
-	0x00220c85, // n0x084c c0x0000 (---------------)  + I rieti
-	0x002cc786, // n0x084d c0x0000 (---------------)  + I rimini
-	0x00225502, // n0x084e c0x0000 (---------------)  + I rm
-	0x00205202, // n0x084f c0x0000 (---------------)  + I rn
-	0x00200c02, // n0x0850 c0x0000 (---------------)  + I ro
-	0x00247304, // n0x0851 c0x0000 (---------------)  + I roma
-	0x002eee84, // n0x0852 c0x0000 (---------------)  + I rome
-	0x002ff086, // n0x0853 c0x0000 (---------------)  + I rovigo
-	0x00202882, // n0x0854 c0x0000 (---------------)  + I sa
-	0x003529c7, // n0x0855 c0x0000 (---------------)  + I salerno
-	0x0023ea83, // n0x0856 c0x0000 (---------------)  + I sar
-	0x0023fec8, // n0x0857 c0x0000 (---------------)  + I sardegna
-	0x00240548, // n0x0858 c0x0000 (---------------)  + I sardinia
-	0x00259fc7, // n0x0859 c0x0000 (---------------)  + I sassari
-	0x002705c6, // n0x085a c0x0000 (---------------)  + I savona
-	0x00204682, // n0x085b c0x0000 (---------------)  + I si
-	0x00218e43, // n0x085c c0x0000 (---------------)  + I sic
-	0x00218e47, // n0x085d c0x0000 (---------------)  + I sicilia
-	0x0026d146, // n0x085e c0x0000 (---------------)  + I sicily
-	0x002dee45, // n0x085f c0x0000 (---------------)  + I siena
-	0x002f45c8, // n0x0860 c0x0000 (---------------)  + I siracusa
-	0x00206102, // n0x0861 c0x0000 (---------------)  + I so
-	0x00285b87, // n0x0862 c0x0000 (---------------)  + I sondrio
-	0x0023fcc2, // n0x0863 c0x0000 (---------------)  + I sp
-	0x002c4342, // n0x0864 c0x0000 (---------------)  + I sr
-	0x00204642, // n0x0865 c0x0000 (---------------)  + I ss
-	0x002cae89, // n0x0866 c0x0000 (---------------)  + I suedtirol
-	0x00240a82, // n0x0867 c0x0000 (---------------)  + I sv
-	0x00201682, // n0x0868 c0x0000 (---------------)  + I ta
-	0x0026f4c3, // n0x0869 c0x0000 (---------------)  + I taa
-	0x00345087, // n0x086a c0x0000 (---------------)  + I taranto
-	0x00201882, // n0x086b c0x0000 (---------------)  + I te
-	0x0023960c, // n0x086c c0x0000 (---------------)  + I tempio-olbia
-	0x0023990b, // n0x086d c0x0000 (---------------)  + I tempioolbia
-	0x002c8086, // n0x086e c0x0000 (---------------)  + I teramo
-	0x002e57c5, // n0x086f c0x0000 (---------------)  + I terni
-	0x00203f82, // n0x0870 c0x0000 (---------------)  + I tn
-	0x00201202, // n0x0871 c0x0000 (---------------)  + I to
-	0x002afbc6, // n0x0872 c0x0000 (---------------)  + I torino
-	0x0024b043, // n0x0873 c0x0000 (---------------)  + I tos
-	0x00319547, // n0x0874 c0x0000 (---------------)  + I toscana
-	0x00219e42, // n0x0875 c0x0000 (---------------)  + I tp
-	0x00205542, // n0x0876 c0x0000 (---------------)  + I tr
-	0x00277395, // n0x0877 c0x0000 (---------------)  + I trani-andria-barletta
-	0x0026ecd5, // n0x0878 c0x0000 (---------------)  + I trani-barletta-andria
-	0x00282e93, // n0x0879 c0x0000 (---------------)  + I traniandriabarletta
-	0x0026f213, // n0x087a c0x0000 (---------------)  + I tranibarlettaandria
-	0x00293cc7, // n0x087b c0x0000 (---------------)  + I trapani
-	0x002b3208, // n0x087c c0x0000 (---------------)  + I trentino
-	0x002b5c90, // n0x087d c0x0000 (---------------)  + I trentino-a-adige
-	0x002b8b0f, // n0x087e c0x0000 (---------------)  + I trentino-aadige
-	0x003576d3, // n0x087f c0x0000 (---------------)  + I trentino-alto-adige
-	0x002fb7d2, // n0x0880 c0x0000 (---------------)  + I trentino-altoadige
-	0x0032bd50, // n0x0881 c0x0000 (---------------)  + I trentino-s-tirol
-	0x00336a0f, // n0x0882 c0x0000 (---------------)  + I trentino-stirol
-	0x002b3212, // n0x0883 c0x0000 (---------------)  + I trentino-sud-tirol
-	0x002bb911, // n0x0884 c0x0000 (---------------)  + I trentino-sudtirol
-	0x002c9953, // n0x0885 c0x0000 (---------------)  + I trentino-sued-tirol
-	0x002cac52, // n0x0886 c0x0000 (---------------)  + I trentino-suedtirol
-	0x002ce68f, // n0x0887 c0x0000 (---------------)  + I trentinoa-adige
-	0x002da90e, // n0x0888 c0x0000 (---------------)  + I trentinoaadige
-	0x002dbc52, // n0x0889 c0x0000 (---------------)  + I trentinoalto-adige
-	0x002e0b51, // n0x088a c0x0000 (---------------)  + I trentinoaltoadige
-	0x002e2a8f, // n0x088b c0x0000 (---------------)  + I trentinos-tirol
-	0x002ea78e, // n0x088c c0x0000 (---------------)  + I trentinostirol
-	0x002eca91, // n0x088d c0x0000 (---------------)  + I trentinosud-tirol
-	0x0036f150, // n0x088e c0x0000 (---------------)  + I trentinosudtirol
-	0x002f9812, // n0x088f c0x0000 (---------------)  + I trentinosued-tirol
-	0x0030b591, // n0x0890 c0x0000 (---------------)  + I trentinosuedtirol
-	0x00313186, // n0x0891 c0x0000 (---------------)  + I trento
-	0x0031a847, // n0x0892 c0x0000 (---------------)  + I treviso
-	0x0021b007, // n0x0893 c0x0000 (---------------)  + I trieste
-	0x002021c2, // n0x0894 c0x0000 (---------------)  + I ts
-	0x002be585, // n0x0895 c0x0000 (---------------)  + I turin
-	0x002f0347, // n0x0896 c0x0000 (---------------)  + I tuscany
-	0x00292602, // n0x0897 c0x0000 (---------------)  + I tv
-	0x0022f0c2, // n0x0898 c0x0000 (---------------)  + I ud
-	0x002abc05, // n0x0899 c0x0000 (---------------)  + I udine
-	0x0021a503, // n0x089a c0x0000 (---------------)  + I umb
-	0x0022a286, // n0x089b c0x0000 (---------------)  + I umbria
-	0x00246d4d, // n0x089c c0x0000 (---------------)  + I urbino-pesaro
-	0x0024708c, // n0x089d c0x0000 (---------------)  + I urbinopesaro
-	0x002000c2, // n0x089e c0x0000 (---------------)  + I va
-	0x0036834b, // n0x089f c0x0000 (---------------)  + I val-d-aosta
-	0x002af04a, // n0x08a0 c0x0000 (---------------)  + I val-daosta
-	0x002089ca, // n0x08a1 c0x0000 (---------------)  + I vald-aosta
-	0x002d55c9, // n0x08a2 c0x0000 (---------------)  + I valdaosta
-	0x002f058b, // n0x08a3 c0x0000 (---------------)  + I valle-aosta
-	0x0034780d, // n0x08a4 c0x0000 (---------------)  + I valle-d-aosta
-	0x0022898c, // n0x08a5 c0x0000 (---------------)  + I valle-daosta
-	0x0023ec0a, // n0x08a6 c0x0000 (---------------)  + I valleaosta
-	0x0024300c, // n0x08a7 c0x0000 (---------------)  + I valled-aosta
-	0x0026220b, // n0x08a8 c0x0000 (---------------)  + I valledaosta
-	0x00267fcc, // n0x08a9 c0x0000 (---------------)  + I vallee-aoste
-	0x0026bd8b, // n0x08aa c0x0000 (---------------)  + I valleeaoste
-	0x002c4fc3, // n0x08ab c0x0000 (---------------)  + I vao
-	0x002e9606, // n0x08ac c0x0000 (---------------)  + I varese
-	0x002f0c42, // n0x08ad c0x0000 (---------------)  + I vb
-	0x002f1142, // n0x08ae c0x0000 (---------------)  + I vc
-	0x00205043, // n0x08af c0x0000 (---------------)  + I vda
-	0x00202642, // n0x08b0 c0x0000 (---------------)  + I ve
-	0x00202643, // n0x08b1 c0x0000 (---------------)  + I ven
-	0x00270d06, // n0x08b2 c0x0000 (---------------)  + I veneto
-	0x0025b587, // n0x08b3 c0x0000 (---------------)  + I venezia
-	0x00271e86, // n0x08b4 c0x0000 (---------------)  + I venice
-	0x002da588, // n0x08b5 c0x0000 (---------------)  + I verbania
-	0x002a2d88, // n0x08b6 c0x0000 (---------------)  + I vercelli
-	0x002f2286, // n0x08b7 c0x0000 (---------------)  + I verona
-	0x002032c2, // n0x08b8 c0x0000 (---------------)  + I vi
-	0x002f628d, // n0x08b9 c0x0000 (---------------)  + I vibo-valentia
-	0x002f65cc, // n0x08ba c0x0000 (---------------)  + I vibovalentia
-	0x00369047, // n0x08bb c0x0000 (---------------)  + I vicenza
-	0x002f7d07, // n0x08bc c0x0000 (---------------)  + I viterbo
-	0x0020b042, // n0x08bd c0x0000 (---------------)  + I vr
-	0x00241d82, // n0x08be c0x0000 (---------------)  + I vs
-	0x0026d0c2, // n0x08bf c0x0000 (---------------)  + I vt
-	0x00202602, // n0x08c0 c0x0000 (---------------)  + I vv
-	0x00207a02, // n0x08c1 c0x0000 (---------------)  + I co
-	0x00201603, // n0x08c2 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x08c3 c0x0000 (---------------)  + I org
-	0x00222603, // n0x08c4 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x08c5 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x08c6 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x08c7 c0x0000 (---------------)  + I mil
-	0x0022aec4, // n0x08c8 c0x0000 (---------------)  + I name
-	0x00201603, // n0x08c9 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x08ca c0x0000 (---------------)  + I org
-	0x002526c3, // n0x08cb c0x0000 (---------------)  + I sch
-	0x00201d82, // n0x08cc c0x0000 (---------------)  + I ac
-	0x00208902, // n0x08cd c0x0000 (---------------)  + I ad
-	0x1c6756c5, // n0x08ce c0x0071 (n0x090c-n0x0940)  + I aichi
-	0x1ca69d05, // n0x08cf c0x0072 (n0x0940-n0x095c)  + I akita
-	0x1cec5006, // n0x08d0 c0x0073 (n0x095c-n0x0972)  + I aomori
-	0x000b8948, // n0x08d1 c0x0000 (---------------)  +   blogspot
-	0x1d2b0885, // n0x08d2 c0x0074 (n0x0972-n0x09ac)  + I chiba
-	0x00207a02, // n0x08d3 c0x0000 (---------------)  + I co
-	0x00202542, // n0x08d4 c0x0000 (---------------)  + I ed
-	0x1d602945, // n0x08d5 c0x0075 (n0x09ac-n0x09c2)  + I ehime
-	0x1da7ac85, // n0x08d6 c0x0076 (n0x09c2-n0x09d1)  + I fukui
-	0x1de7b447, // n0x08d7 c0x0077 (n0x09d1-n0x0a10)  + I fukuoka
-	0x1e27bcc9, // n0x08d8 c0x0078 (n0x0a10-n0x0a43)  + I fukushima
-	0x1e679c84, // n0x08d9 c0x0079 (n0x0a43-n0x0a69)  + I gifu
-	0x00206cc2, // n0x08da c0x0000 (---------------)  + I go
-	0x00205bc2, // n0x08db c0x0000 (---------------)  + I gr
-	0x1eb52085, // n0x08dc c0x007a (n0x0a69-n0x0a8d)  + I gunma
-	0x1ee69e49, // n0x08dd c0x007b (n0x0a8d-n0x0aa6)  + I hiroshima
-	0x1f32e148, // n0x08de c0x007c (n0x0aa6-n0x0b34)  + I hokkaido
-	0x1f6a8f05, // n0x08df c0x007d (n0x0b34-n0x0b62)  + I hyogo
-	0x1fb2cd07, // n0x08e0 c0x007e (n0x0b62-n0x0b95)  + I ibaraki
-	0x1fe26fc8, // n0x08e1 c0x007f (n0x0b95-n0x0ba8)  + I ishikawa
-	0x20351705, // n0x08e2 c0x0080 (n0x0ba8-n0x0bca)  + I iwate
-	0x20600446, // n0x08e3 c0x0081 (n0x0bca-n0x0bd9)  + I kagawa
-	0x20b17449, // n0x08e4 c0x0082 (n0x0bd9-n0x0bed)  + I kagoshima
-	0x20f55c08, // n0x08e5 c0x0083 (n0x0bed-n0x0c0b)  + I kanagawa
-	0x212b5408, // n0x08e6 c0x0084 (n0x0c0b-n0x0c0c)* o I kawasaki
-	0x2161334a, // n0x08e7 c0x0085 (n0x0c0c-n0x0c0d)* o I kitakyushu
-	0x21a72a04, // n0x08e8 c0x0086 (n0x0c0d-n0x0c0e)* o I kobe
-	0x21ec6385, // n0x08e9 c0x0087 (n0x0c0e-n0x0c2d)  + I kochi
-	0x222c7d88, // n0x08ea c0x0088 (n0x0c2d-n0x0c47)  + I kumamoto
-	0x22665a05, // n0x08eb c0x0089 (n0x0c47-n0x0c66)  + I kyoto
-	0x00213f02, // n0x08ec c0x0000 (---------------)  + I lg
-	0x22a2d5c3, // n0x08ed c0x008a (n0x0c66-n0x0c84)  + I mie
-	0x22e9d486, // n0x08ee c0x008b (n0x0c84-n0x0ca5)  + I miyagi
-	0x232573c8, // n0x08ef c0x008c (n0x0ca5-n0x0cc0)  + I miyazaki
-	0x2360d586, // n0x08f0 c0x008d (n0x0cc0-n0x0d0b)  + I nagano
-	0x23a99248, // n0x08f1 c0x008e (n0x0d0b-n0x0d21)  + I nagasaki
-	0x23f19386, // n0x08f2 c0x008f (n0x0d21-n0x0d22)* o I nagoya
-	0x24268e84, // n0x08f3 c0x0090 (n0x0d22-n0x0d48)  + I nara
-	0x00201602, // n0x08f4 c0x0000 (---------------)  + I ne
-	0x24690607, // n0x08f5 c0x0091 (n0x0d48-n0x0d6a)  + I niigata
-	0x24a0a1c4, // n0x08f6 c0x0092 (n0x0d6a-n0x0d7d)  + I oita
-	0x24e75247, // n0x08f7 c0x0093 (n0x0d7d-n0x0d97)  + I okayama
-	0x2521e607, // n0x08f8 c0x0094 (n0x0d97-n0x0dc1)  + I okinawa
-	0x00200bc2, // n0x08f9 c0x0000 (---------------)  + I or
-	0x25694785, // n0x08fa c0x0095 (n0x0dc1-n0x0df3)  + I osaka
-	0x25a83fc4, // n0x08fb c0x0096 (n0x0df3-n0x0e0d)  + I saga
-	0x25f57207, // n0x08fc c0x0097 (n0x0e0d-n0x0e52)  + I saitama
-	0x26239247, // n0x08fd c0x0098 (n0x0e52-n0x0e53)* o I sapporo
-	0x2667e946, // n0x08fe c0x0099 (n0x0e53-n0x0e54)* o I sendai
-	0x26a7ba85, // n0x08ff c0x009a (n0x0e54-n0x0e6b)  + I shiga
-	0x26e8ecc7, // n0x0900 c0x009b (n0x0e6b-n0x0e82)  + I shimane
-	0x272dd488, // n0x0901 c0x009c (n0x0e82-n0x0ea6)  + I shizuoka
-	0x27735ac7, // n0x0902 c0x009d (n0x0ea6-n0x0ec5)  + I tochigi
-	0x27ae1f89, // n0x0903 c0x009e (n0x0ec5-n0x0ed6)  + I tokushima
-	0x27ed8e85, // n0x0904 c0x009f (n0x0ed6-n0x0f0f)  + I tokyo
-	0x282fb3c7, // n0x0905 c0x00a0 (n0x0f0f-n0x0f1c)  + I tottori
-	0x2868a786, // n0x0906 c0x00a1 (n0x0f1c-n0x0f34)  + I toyama
-	0x28b09c88, // n0x0907 c0x00a2 (n0x0f34-n0x0f51)  + I wakayama
-	0x28e7d308, // n0x0908 c0x00a3 (n0x0f51-n0x0f73)  + I yamagata
-	0x29281909, // n0x0909 c0x00a4 (n0x0f73-n0x0f83)  + I yamaguchi
-	0x29722709, // n0x090a c0x00a5 (n0x0f83-n0x0f9f)  + I yamanashi
-	0x29b11a88, // n0x090b c0x00a6 (n0x0f9f-n0x0fa0)* o I yokohama
-	0x002b16c5, // n0x090c c0x0000 (---------------)  + I aisai
-	0x00200283, // n0x090d c0x0000 (---------------)  + I ama
-	0x00248144, // n0x090e c0x0000 (---------------)  + I anjo
-	0x002fca85, // n0x090f c0x0000 (---------------)  + I asuke
-	0x002799c6, // n0x0910 c0x0000 (---------------)  + I chiryu
-	0x0029bd05, // n0x0911 c0x0000 (---------------)  + I chita
-	0x00280f84, // n0x0912 c0x0000 (---------------)  + I fuso
-	0x002c26c8, // n0x0913 c0x0000 (---------------)  + I gamagori
-	0x0027f585, // n0x0914 c0x0000 (---------------)  + I handa
-	0x0028cb44, // n0x0915 c0x0000 (---------------)  + I hazu
-	0x002456c7, // n0x0916 c0x0000 (---------------)  + I hekinan
-	0x002971ca, // n0x0917 c0x0000 (---------------)  + I higashiura
-	0x002de64a, // n0x0918 c0x0000 (---------------)  + I ichinomiya
-	0x002e5407, // n0x0919 c0x0000 (---------------)  + I inazawa
-	0x00226787, // n0x091a c0x0000 (---------------)  + I inuyama
-	0x0033f5c7, // n0x091b c0x0000 (---------------)  + I isshiki
-	0x00266f47, // n0x091c c0x0000 (---------------)  + I iwakura
-	0x002e63c5, // n0x091d c0x0000 (---------------)  + I kanie
-	0x00315dc6, // n0x091e c0x0000 (---------------)  + I kariya
-	0x002bc7c7, // n0x091f c0x0000 (---------------)  + I kasugai
-	0x00212f04, // n0x0920 c0x0000 (---------------)  + I kira
-	0x002f57c6, // n0x0921 c0x0000 (---------------)  + I kiyosu
-	0x002f51c6, // n0x0922 c0x0000 (---------------)  + I komaki
-	0x002bc005, // n0x0923 c0x0000 (---------------)  + I konan
-	0x002dcac4, // n0x0924 c0x0000 (---------------)  + I kota
-	0x00292746, // n0x0925 c0x0000 (---------------)  + I mihama
-	0x00295c07, // n0x0926 c0x0000 (---------------)  + I miyoshi
-	0x002d9f86, // n0x0927 c0x0000 (---------------)  + I nishio
-	0x002a5707, // n0x0928 c0x0000 (---------------)  + I nisshin
-	0x0028bd43, // n0x0929 c0x0000 (---------------)  + I obu
-	0x00230706, // n0x092a c0x0000 (---------------)  + I oguchi
-	0x00259185, // n0x092b c0x0000 (---------------)  + I oharu
-	0x0027b547, // n0x092c c0x0000 (---------------)  + I okazaki
-	0x002baaca, // n0x092d c0x0000 (---------------)  + I owariasahi
-	0x0022e904, // n0x092e c0x0000 (---------------)  + I seto
-	0x002264c8, // n0x092f c0x0000 (---------------)  + I shikatsu
-	0x002dec09, // n0x0930 c0x0000 (---------------)  + I shinshiro
-	0x002dce07, // n0x0931 c0x0000 (---------------)  + I shitara
-	0x00375086, // n0x0932 c0x0000 (---------------)  + I tahara
-	0x0027d488, // n0x0933 c0x0000 (---------------)  + I takahama
-	0x002a0649, // n0x0934 c0x0000 (---------------)  + I tobishima
-	0x00270e04, // n0x0935 c0x0000 (---------------)  + I toei
-	0x003113c4, // n0x0936 c0x0000 (---------------)  + I togo
-	0x002f88c5, // n0x0937 c0x0000 (---------------)  + I tokai
-	0x002bc4c8, // n0x0938 c0x0000 (---------------)  + I tokoname
-	0x002bda07, // n0x0939 c0x0000 (---------------)  + I toyoake
-	0x002d8bc9, // n0x093a c0x0000 (---------------)  + I toyohashi
-	0x00337988, // n0x093b c0x0000 (---------------)  + I toyokawa
-	0x00246486, // n0x093c c0x0000 (---------------)  + I toyone
-	0x00255a86, // n0x093d c0x0000 (---------------)  + I toyota
-	0x002913c8, // n0x093e c0x0000 (---------------)  + I tsushima
-	0x00334686, // n0x093f c0x0000 (---------------)  + I yatomi
-	0x00269d05, // n0x0940 c0x0000 (---------------)  + I akita
-	0x0027ea06, // n0x0941 c0x0000 (---------------)  + I daisen
-	0x00276088, // n0x0942 c0x0000 (---------------)  + I fujisato
-	0x0027aa46, // n0x0943 c0x0000 (---------------)  + I gojome
-	0x0034218b, // n0x0944 c0x0000 (---------------)  + I hachirogata
-	0x00287306, // n0x0945 c0x0000 (---------------)  + I happou
-	0x0029294d, // n0x0946 c0x0000 (---------------)  + I higashinaruse
-	0x0020a045, // n0x0947 c0x0000 (---------------)  + I honjo
-	0x002a46c6, // n0x0948 c0x0000 (---------------)  + I honjyo
-	0x00212805, // n0x0949 c0x0000 (---------------)  + I ikawa
-	0x0020a449, // n0x094a c0x0000 (---------------)  + I kamikoani
-	0x0035e7c7, // n0x094b c0x0000 (---------------)  + I kamioka
-	0x00343d08, // n0x094c c0x0000 (---------------)  + I katagami
-	0x0023a386, // n0x094d c0x0000 (---------------)  + I kazuno
-	0x00291d09, // n0x094e c0x0000 (---------------)  + I kitaakita
-	0x002eec06, // n0x094f c0x0000 (---------------)  + I kosaka
-	0x002baa45, // n0x0950 c0x0000 (---------------)  + I kyowa
-	0x002625c6, // n0x0951 c0x0000 (---------------)  + I misato
-	0x002a3746, // n0x0952 c0x0000 (---------------)  + I mitane
-	0x002c2009, // n0x0953 c0x0000 (---------------)  + I moriyoshi
-	0x003111c6, // n0x0954 c0x0000 (---------------)  + I nikaho
-	0x00249e47, // n0x0955 c0x0000 (---------------)  + I noshiro
-	0x002dd345, // n0x0956 c0x0000 (---------------)  + I odate
-	0x002043c3, // n0x0957 c0x0000 (---------------)  + I oga
-	0x00342305, // n0x0958 c0x0000 (---------------)  + I ogata
-	0x002c7c47, // n0x0959 c0x0000 (---------------)  + I semboku
-	0x0036ca06, // n0x095a c0x0000 (---------------)  + I yokote
-	0x00209f49, // n0x095b c0x0000 (---------------)  + I yurihonjo
-	0x002c5006, // n0x095c c0x0000 (---------------)  + I aomori
-	0x002a51c6, // n0x095d c0x0000 (---------------)  + I gonohe
-	0x00245509, // n0x095e c0x0000 (---------------)  + I hachinohe
-	0x0027e409, // n0x095f c0x0000 (---------------)  + I hashikami
-	0x0029b987, // n0x0960 c0x0000 (---------------)  + I hiranai
-	0x00360d48, // n0x0961 c0x0000 (---------------)  + I hirosaki
-	0x002c3b49, // n0x0962 c0x0000 (---------------)  + I itayanagi
-	0x0027b948, // n0x0963 c0x0000 (---------------)  + I kuroishi
-	0x00348d46, // n0x0964 c0x0000 (---------------)  + I misawa
-	0x002cb4c5, // n0x0965 c0x0000 (---------------)  + I mutsu
-	0x0023c9ca, // n0x0966 c0x0000 (---------------)  + I nakadomari
-	0x002a5246, // n0x0967 c0x0000 (---------------)  + I noheji
-	0x00299586, // n0x0968 c0x0000 (---------------)  + I oirase
-	0x00290545, // n0x0969 c0x0000 (---------------)  + I owani
-	0x00360688, // n0x096a c0x0000 (---------------)  + I rokunohe
-	0x0024ee07, // n0x096b c0x0000 (---------------)  + I sannohe
-	0x00201a0a, // n0x096c c0x0000 (---------------)  + I shichinohe
-	0x00246146, // n0x096d c0x0000 (---------------)  + I shingo
-	0x00306845, // n0x096e c0x0000 (---------------)  + I takko
-	0x002fd706, // n0x096f c0x0000 (---------------)  + I towada
-	0x00285207, // n0x0970 c0x0000 (---------------)  + I tsugaru
-	0x00374f47, // n0x0971 c0x0000 (---------------)  + I tsuruta
-	0x0022f545, // n0x0972 c0x0000 (---------------)  + I abiko
-	0x002bac05, // n0x0973 c0x0000 (---------------)  + I asahi
-	0x0033fd06, // n0x0974 c0x0000 (---------------)  + I chonan
-	0x002a9986, // n0x0975 c0x0000 (---------------)  + I chosei
-	0x002adb86, // n0x0976 c0x0000 (---------------)  + I choshi
-	0x002606c4, // n0x0977 c0x0000 (---------------)  + I chuo
-	0x0027d9c9, // n0x0978 c0x0000 (---------------)  + I funabashi
-	0x002827c6, // n0x0979 c0x0000 (---------------)  + I futtsu
-	0x0027880a, // n0x097a c0x0000 (---------------)  + I hanamigawa
-	0x0028af48, // n0x097b c0x0000 (---------------)  + I ichihara
-	0x002a0348, // n0x097c c0x0000 (---------------)  + I ichikawa
-	0x002de64a, // n0x097d c0x0000 (---------------)  + I ichinomiya
-	0x00366d85, // n0x097e c0x0000 (---------------)  + I inzai
-	0x00295b45, // n0x097f c0x0000 (---------------)  + I isumi
-	0x00316508, // n0x0980 c0x0000 (---------------)  + I kamagaya
-	0x00287b48, // n0x0981 c0x0000 (---------------)  + I kamogawa
-	0x00202247, // n0x0982 c0x0000 (---------------)  + I kashiwa
-	0x00224f46, // n0x0983 c0x0000 (---------------)  + I katori
-	0x00305a88, // n0x0984 c0x0000 (---------------)  + I katsuura
-	0x0030f507, // n0x0985 c0x0000 (---------------)  + I kimitsu
-	0x002644c8, // n0x0986 c0x0000 (---------------)  + I kisarazu
-	0x002ac486, // n0x0987 c0x0000 (---------------)  + I kozaki
-	0x00322b48, // n0x0988 c0x0000 (---------------)  + I kujukuri
-	0x0028e3c6, // n0x0989 c0x0000 (---------------)  + I kyonan
-	0x00288ec7, // n0x098a c0x0000 (---------------)  + I matsudo
-	0x00267c06, // n0x098b c0x0000 (---------------)  + I midori
-	0x00292746, // n0x098c c0x0000 (---------------)  + I mihama
-	0x0024b38a, // n0x098d c0x0000 (---------------)  + I minamiboso
-	0x00233646, // n0x098e c0x0000 (---------------)  + I mobara
-	0x002cb4c9, // n0x098f c0x0000 (---------------)  + I mutsuzawa
-	0x0036cf86, // n0x0990 c0x0000 (---------------)  + I nagara
-	0x0036d1ca, // n0x0991 c0x0000 (---------------)  + I nagareyama
-	0x00268e89, // n0x0992 c0x0000 (---------------)  + I narashino
-	0x002f2386, // n0x0993 c0x0000 (---------------)  + I narita
-	0x0025f744, // n0x0994 c0x0000 (---------------)  + I noda
-	0x00209b8d, // n0x0995 c0x0000 (---------------)  + I oamishirasato
-	0x00281b87, // n0x0996 c0x0000 (---------------)  + I omigawa
-	0x003083c6, // n0x0997 c0x0000 (---------------)  + I onjuku
-	0x002b52c5, // n0x0998 c0x0000 (---------------)  + I otaki
-	0x002eec85, // n0x0999 c0x0000 (---------------)  + I sakae
-	0x0021a006, // n0x099a c0x0000 (---------------)  + I sakura
-	0x002a3f09, // n0x099b c0x0000 (---------------)  + I shimofusa
-	0x002fbfc7, // n0x099c c0x0000 (---------------)  + I shirako
-	0x00277f06, // n0x099d c0x0000 (---------------)  + I shiroi
-	0x002dc246, // n0x099e c0x0000 (---------------)  + I shisui
-	0x0036e009, // n0x099f c0x0000 (---------------)  + I sodegaura
-	0x0027cb84, // n0x09a0 c0x0000 (---------------)  + I sosa
-	0x0024c284, // n0x09a1 c0x0000 (---------------)  + I tako
-	0x0024f888, // n0x09a2 c0x0000 (---------------)  + I tateyama
-	0x0029fac6, // n0x09a3 c0x0000 (---------------)  + I togane
-	0x0029b308, // n0x09a4 c0x0000 (---------------)  + I tohnosho
-	0x00262548, // n0x09a5 c0x0000 (---------------)  + I tomisato
-	0x002a16c7, // n0x09a6 c0x0000 (---------------)  + I urayasu
-	0x00237449, // n0x09a7 c0x0000 (---------------)  + I yachimata
-	0x00374ac7, // n0x09a8 c0x0000 (---------------)  + I yachiyo
-	0x002b074a, // n0x09a9 c0x0000 (---------------)  + I yokaichiba
-	0x002e3c8f, // n0x09aa c0x0000 (---------------)  + I yokoshibahikari
-	0x0025898a, // n0x09ab c0x0000 (---------------)  + I yotsukaido
-	0x00220a85, // n0x09ac c0x0000 (---------------)  + I ainan
-	0x002762c5, // n0x09ad c0x0000 (---------------)  + I honai
-	0x00224e05, // n0x09ae c0x0000 (---------------)  + I ikata
-	0x0028e647, // n0x09af c0x0000 (---------------)  + I imabari
-	0x002035c3, // n0x09b0 c0x0000 (---------------)  + I iyo
-	0x00360f48, // n0x09b1 c0x0000 (---------------)  + I kamijima
-	0x00204886, // n0x09b2 c0x0000 (---------------)  + I kihoku
-	0x00204989, // n0x09b3 c0x0000 (---------------)  + I kumakogen
-	0x002d2c46, // n0x09b4 c0x0000 (---------------)  + I masaki
-	0x002d1cc7, // n0x09b5 c0x0000 (---------------)  + I matsuno
-	0x00291ac9, // n0x09b6 c0x0000 (---------------)  + I matsuyama
-	0x00343c08, // n0x09b7 c0x0000 (---------------)  + I namikata
-	0x0020a607, // n0x09b8 c0x0000 (---------------)  + I niihama
-	0x002b4fc3, // n0x09b9 c0x0000 (---------------)  + I ozu
-	0x002b1745, // n0x09ba c0x0000 (---------------)  + I saijo
-	0x002e3bc5, // n0x09bb c0x0000 (---------------)  + I seiyo
-	0x0026050b, // n0x09bc c0x0000 (---------------)  + I shikokuchuo
-	0x00265ac4, // n0x09bd c0x0000 (---------------)  + I tobe
-	0x0027a484, // n0x09be c0x0000 (---------------)  + I toon
-	0x00274906, // n0x09bf c0x0000 (---------------)  + I uchiko
-	0x002b5047, // n0x09c0 c0x0000 (---------------)  + I uwajima
-	0x003569ca, // n0x09c1 c0x0000 (---------------)  + I yawatahama
-	0x00253b07, // n0x09c2 c0x0000 (---------------)  + I echizen
-	0x00270e87, // n0x09c3 c0x0000 (---------------)  + I eiheiji
-	0x0027ac85, // n0x09c4 c0x0000 (---------------)  + I fukui
-	0x002024c5, // n0x09c5 c0x0000 (---------------)  + I ikeda
-	0x002cdc49, // n0x09c6 c0x0000 (---------------)  + I katsuyama
-	0x00292746, // n0x09c7 c0x0000 (---------------)  + I mihama
-	0x0025398d, // n0x09c8 c0x0000 (---------------)  + I minamiechizen
-	0x0021e9c5, // n0x09c9 c0x0000 (---------------)  + I obama
-	0x00296d03, // n0x09ca c0x0000 (---------------)  + I ohi
-	0x002142c3, // n0x09cb c0x0000 (---------------)  + I ono
-	0x0027a105, // n0x09cc c0x0000 (---------------)  + I sabae
-	0x0032db85, // n0x09cd c0x0000 (---------------)  + I sakai
-	0x0027d488, // n0x09ce c0x0000 (---------------)  + I takahama
-	0x00282887, // n0x09cf c0x0000 (---------------)  + I tsuruga
-	0x0024c006, // n0x09d0 c0x0000 (---------------)  + I wakasa
-	0x002978c6, // n0x09d1 c0x0000 (---------------)  + I ashiya
-	0x00228045, // n0x09d2 c0x0000 (---------------)  + I buzen
-	0x0027a907, // n0x09d3 c0x0000 (---------------)  + I chikugo
-	0x00226a07, // n0x09d4 c0x0000 (---------------)  + I chikuho
-	0x002dea07, // n0x09d5 c0x0000 (---------------)  + I chikujo
-	0x002c640a, // n0x09d6 c0x0000 (---------------)  + I chikushino
-	0x002307c8, // n0x09d7 c0x0000 (---------------)  + I chikuzen
-	0x002606c4, // n0x09d8 c0x0000 (---------------)  + I chuo
-	0x0028c1c7, // n0x09d9 c0x0000 (---------------)  + I dazaifu
-	0x00279407, // n0x09da c0x0000 (---------------)  + I fukuchi
-	0x0032f7c6, // n0x09db c0x0000 (---------------)  + I hakata
-	0x00263ec7, // n0x09dc c0x0000 (---------------)  + I higashi
-	0x002bd488, // n0x09dd c0x0000 (---------------)  + I hirokawa
-	0x00322608, // n0x09de c0x0000 (---------------)  + I hisayama
-	0x0026b806, // n0x09df c0x0000 (---------------)  + I iizuka
-	0x00342b88, // n0x09e0 c0x0000 (---------------)  + I inatsuki
-	0x002bb404, // n0x09e1 c0x0000 (---------------)  + I kaho
-	0x002bc7c6, // n0x09e2 c0x0000 (---------------)  + I kasuga
-	0x00219306, // n0x09e3 c0x0000 (---------------)  + I kasuya
-	0x00251a06, // n0x09e4 c0x0000 (---------------)  + I kawara
-	0x002e7cc6, // n0x09e5 c0x0000 (---------------)  + I keisen
-	0x00297e44, // n0x09e6 c0x0000 (---------------)  + I koga
-	0x00267006, // n0x09e7 c0x0000 (---------------)  + I kurate
-	0x002b3b06, // n0x09e8 c0x0000 (---------------)  + I kurogi
-	0x00290e46, // n0x09e9 c0x0000 (---------------)  + I kurume
-	0x0024b386, // n0x09ea c0x0000 (---------------)  + I minami
-	0x00214186, // n0x09eb c0x0000 (---------------)  + I miyako
-	0x002bd2c6, // n0x09ec c0x0000 (---------------)  + I miyama
-	0x0024bf08, // n0x09ed c0x0000 (---------------)  + I miyawaka
-	0x002fa008, // n0x09ee c0x0000 (---------------)  + I mizumaki
-	0x002c8b08, // n0x09ef c0x0000 (---------------)  + I munakata
-	0x0029bf08, // n0x09f0 c0x0000 (---------------)  + I nakagawa
-	0x00316486, // n0x09f1 c0x0000 (---------------)  + I nakama
-	0x002164c5, // n0x09f2 c0x0000 (---------------)  + I nishi
-	0x00352b06, // n0x09f3 c0x0000 (---------------)  + I nogata
-	0x002a8f85, // n0x09f4 c0x0000 (---------------)  + I ogori
-	0x00258f07, // n0x09f5 c0x0000 (---------------)  + I okagaki
-	0x002519c5, // n0x09f6 c0x0000 (---------------)  + I okawa
-	0x0021e603, // n0x09f7 c0x0000 (---------------)  + I oki
-	0x0021ac45, // n0x09f8 c0x0000 (---------------)  + I omuta
-	0x0022c244, // n0x09f9 c0x0000 (---------------)  + I onga
-	0x002142c5, // n0x09fa c0x0000 (---------------)  + I onojo
-	0x00207143, // n0x09fb c0x0000 (---------------)  + I oto
-	0x002ed207, // n0x09fc c0x0000 (---------------)  + I saigawa
-	0x002e4748, // n0x09fd c0x0000 (---------------)  + I sasaguri
-	0x002a57c6, // n0x09fe c0x0000 (---------------)  + I shingu
-	0x002e604d, // n0x09ff c0x0000 (---------------)  + I shinyoshitomi
-	0x00276286, // n0x0a00 c0x0000 (---------------)  + I shonai
-	0x0028fb05, // n0x0a01 c0x0000 (---------------)  + I soeda
-	0x002a9d43, // n0x0a02 c0x0000 (---------------)  + I sue
-	0x002b1509, // n0x0a03 c0x0000 (---------------)  + I tachiarai
-	0x00290b06, // n0x0a04 c0x0000 (---------------)  + I tagawa
-	0x0028aa06, // n0x0a05 c0x0000 (---------------)  + I takata
-	0x0032e0c4, // n0x0a06 c0x0000 (---------------)  + I toho
-	0x00258907, // n0x0a07 c0x0000 (---------------)  + I toyotsu
-	0x00238746, // n0x0a08 c0x0000 (---------------)  + I tsuiki
-	0x00306a85, // n0x0a09 c0x0000 (---------------)  + I ukiha
-	0x00207dc3, // n0x0a0a c0x0000 (---------------)  + I umi
-	0x00216bc4, // n0x0a0b c0x0000 (---------------)  + I usui
-	0x002795c6, // n0x0a0c c0x0000 (---------------)  + I yamada
-	0x00219404, // n0x0a0d c0x0000 (---------------)  + I yame
-	0x002f3948, // n0x0a0e c0x0000 (---------------)  + I yanagawa
-	0x00206a09, // n0x0a0f c0x0000 (---------------)  + I yukuhashi
-	0x002b6b89, // n0x0a10 c0x0000 (---------------)  + I aizubange
-	0x0029b10a, // n0x0a11 c0x0000 (---------------)  + I aizumisato
-	0x00289f8d, // n0x0a12 c0x0000 (---------------)  + I aizuwakamatsu
-	0x00250b07, // n0x0a13 c0x0000 (---------------)  + I asakawa
-	0x00265306, // n0x0a14 c0x0000 (---------------)  + I bandai
-	0x00271284, // n0x0a15 c0x0000 (---------------)  + I date
-	0x0027bcc9, // n0x0a16 c0x0000 (---------------)  + I fukushima
-	0x00280988, // n0x0a17 c0x0000 (---------------)  + I furudono
-	0x00281786, // n0x0a18 c0x0000 (---------------)  + I futaba
-	0x00251e86, // n0x0a19 c0x0000 (---------------)  + I hanawa
-	0x00263ec7, // n0x0a1a c0x0000 (---------------)  + I higashi
-	0x0031f606, // n0x0a1b c0x0000 (---------------)  + I hirata
-	0x00228446, // n0x0a1c c0x0000 (---------------)  + I hirono
-	0x00201786, // n0x0a1d c0x0000 (---------------)  + I iitate
-	0x0021e68a, // n0x0a1e c0x0000 (---------------)  + I inawashiro
-	0x00226fc8, // n0x0a1f c0x0000 (---------------)  + I ishikawa
-	0x0024e085, // n0x0a20 c0x0000 (---------------)  + I iwaki
-	0x00264309, // n0x0a21 c0x0000 (---------------)  + I izumizaki
-	0x002be18a, // n0x0a22 c0x0000 (---------------)  + I kagamiishi
-	0x00229248, // n0x0a23 c0x0000 (---------------)  + I kaneyama
-	0x00295208, // n0x0a24 c0x0000 (---------------)  + I kawamata
-	0x0028a988, // n0x0a25 c0x0000 (---------------)  + I kitakata
-	0x0029750c, // n0x0a26 c0x0000 (---------------)  + I kitashiobara
-	0x002e0245, // n0x0a27 c0x0000 (---------------)  + I koori
-	0x00297b48, // n0x0a28 c0x0000 (---------------)  + I koriyama
-	0x002f5446, // n0x0a29 c0x0000 (---------------)  + I kunimi
-	0x0029e086, // n0x0a2a c0x0000 (---------------)  + I miharu
-	0x002bb107, // n0x0a2b c0x0000 (---------------)  + I mishima
-	0x00253a05, // n0x0a2c c0x0000 (---------------)  + I namie
-	0x0033fdc5, // n0x0a2d c0x0000 (---------------)  + I nango
-	0x002b6a49, // n0x0a2e c0x0000 (---------------)  + I nishiaizu
-	0x0021aac7, // n0x0a2f c0x0000 (---------------)  + I nishigo
-	0x00204945, // n0x0a30 c0x0000 (---------------)  + I okuma
-	0x00228f07, // n0x0a31 c0x0000 (---------------)  + I omotego
-	0x002142c3, // n0x0a32 c0x0000 (---------------)  + I ono
-	0x002be845, // n0x0a33 c0x0000 (---------------)  + I otama
-	0x00227e48, // n0x0a34 c0x0000 (---------------)  + I samegawa
-	0x00206b87, // n0x0a35 c0x0000 (---------------)  + I shimogo
-	0x002950c9, // n0x0a36 c0x0000 (---------------)  + I shirakawa
-	0x002ddc85, // n0x0a37 c0x0000 (---------------)  + I showa
-	0x002e21c4, // n0x0a38 c0x0000 (---------------)  + I soma
-	0x0029c3c8, // n0x0a39 c0x0000 (---------------)  + I sukagawa
-	0x0022db07, // n0x0a3a c0x0000 (---------------)  + I taishin
-	0x0020a7c8, // n0x0a3b c0x0000 (---------------)  + I tamakawa
-	0x0026a848, // n0x0a3c c0x0000 (---------------)  + I tanagura
-	0x0021f9c5, // n0x0a3d c0x0000 (---------------)  + I tenei
-	0x002b4d06, // n0x0a3e c0x0000 (---------------)  + I yabuki
-	0x002956c6, // n0x0a3f c0x0000 (---------------)  + I yamato
-	0x002efd49, // n0x0a40 c0x0000 (---------------)  + I yamatsuri
-	0x003010c7, // n0x0a41 c0x0000 (---------------)  + I yanaizu
-	0x002a9406, // n0x0a42 c0x0000 (---------------)  + I yugawa
-	0x002a6507, // n0x0a43 c0x0000 (---------------)  + I anpachi
-	0x00203bc3, // n0x0a44 c0x0000 (---------------)  + I ena
-	0x00279c84, // n0x0a45 c0x0000 (---------------)  + I gifu
-	0x00367c05, // n0x0a46 c0x0000 (---------------)  + I ginan
-	0x002152c4, // n0x0a47 c0x0000 (---------------)  + I godo
-	0x0023c504, // n0x0a48 c0x0000 (---------------)  + I gujo
-	0x00290847, // n0x0a49 c0x0000 (---------------)  + I hashima
-	0x002d32c7, // n0x0a4a c0x0000 (---------------)  + I hichiso
-	0x002780c4, // n0x0a4b c0x0000 (---------------)  + I hida
-	0x00294f10, // n0x0a4c c0x0000 (---------------)  + I higashishirakawa
-	0x00366e87, // n0x0a4d c0x0000 (---------------)  + I ibigawa
-	0x002024c5, // n0x0a4e c0x0000 (---------------)  + I ikeda
-	0x0027910c, // n0x0a4f c0x0000 (---------------)  + I kakamigahara
-	0x00204dc4, // n0x0a50 c0x0000 (---------------)  + I kani
-	0x002e26c8, // n0x0a51 c0x0000 (---------------)  + I kasahara
-	0x00288dc9, // n0x0a52 c0x0000 (---------------)  + I kasamatsu
-	0x0022b046, // n0x0a53 c0x0000 (---------------)  + I kawaue
-	0x0027cc88, // n0x0a54 c0x0000 (---------------)  + I kitagata
-	0x00256e04, // n0x0a55 c0x0000 (---------------)  + I mino
-	0x00256e08, // n0x0a56 c0x0000 (---------------)  + I minokamo
-	0x002bcd46, // n0x0a57 c0x0000 (---------------)  + I mitake
-	0x0024b208, // n0x0a58 c0x0000 (---------------)  + I mizunami
-	0x00290186, // n0x0a59 c0x0000 (---------------)  + I motosu
-	0x00203fcb, // n0x0a5a c0x0000 (---------------)  + I nakatsugawa
-	0x002043c5, // n0x0a5b c0x0000 (---------------)  + I ogaki
-	0x002bb388, // n0x0a5c c0x0000 (---------------)  + I sakahogi
-	0x00213984, // n0x0a5d c0x0000 (---------------)  + I seki
-	0x0030c98a, // n0x0a5e c0x0000 (---------------)  + I sekigahara
-	0x002950c9, // n0x0a5f c0x0000 (---------------)  + I shirakawa
-	0x0027c6c6, // n0x0a60 c0x0000 (---------------)  + I tajimi
-	0x002e41c8, // n0x0a61 c0x0000 (---------------)  + I takayama
-	0x003401c5, // n0x0a62 c0x0000 (---------------)  + I tarui
-	0x00221c44, // n0x0a63 c0x0000 (---------------)  + I toki
-	0x002e25c6, // n0x0a64 c0x0000 (---------------)  + I tomika
-	0x002d2f88, // n0x0a65 c0x0000 (---------------)  + I wanouchi
-	0x0027d308, // n0x0a66 c0x0000 (---------------)  + I yamagata
-	0x00324906, // n0x0a67 c0x0000 (---------------)  + I yaotsu
-	0x00206e44, // n0x0a68 c0x0000 (---------------)  + I yoro
-	0x0023c946, // n0x0a69 c0x0000 (---------------)  + I annaka
-	0x00374b47, // n0x0a6a c0x0000 (---------------)  + I chiyoda
-	0x00275147, // n0x0a6b c0x0000 (---------------)  + I fujioka
-	0x00263ecf, // n0x0a6c c0x0000 (---------------)  + I higashiagatsuma
-	0x002f6f07, // n0x0a6d c0x0000 (---------------)  + I isesaki
-	0x002f2447, // n0x0a6e c0x0000 (---------------)  + I itakura
-	0x0031f0c5, // n0x0a6f c0x0000 (---------------)  + I kanna
-	0x002eb645, // n0x0a70 c0x0000 (---------------)  + I kanra
-	0x0029b649, // n0x0a71 c0x0000 (---------------)  + I katashina
-	0x00237786, // n0x0a72 c0x0000 (---------------)  + I kawaba
-	0x00259045, // n0x0a73 c0x0000 (---------------)  + I kiryu
-	0x0027e707, // n0x0a74 c0x0000 (---------------)  + I kusatsu
-	0x002b0008, // n0x0a75 c0x0000 (---------------)  + I maebashi
-	0x00219485, // n0x0a76 c0x0000 (---------------)  + I meiwa
-	0x00267c06, // n0x0a77 c0x0000 (---------------)  + I midori
-	0x00226008, // n0x0a78 c0x0000 (---------------)  + I minakami
-	0x0020d58a, // n0x0a79 c0x0000 (---------------)  + I naganohara
-	0x00314d48, // n0x0a7a c0x0000 (---------------)  + I nakanojo
-	0x002860c7, // n0x0a7b c0x0000 (---------------)  + I nanmoku
-	0x002e40c6, // n0x0a7c c0x0000 (---------------)  + I numata
-	0x002642c6, // n0x0a7d c0x0000 (---------------)  + I oizumi
-	0x00228883, // n0x0a7e c0x0000 (---------------)  + I ora
-	0x00213d43, // n0x0a7f c0x0000 (---------------)  + I ota
-	0x002adc49, // n0x0a80 c0x0000 (---------------)  + I shibukawa
-	0x002c39c9, // n0x0a81 c0x0000 (---------------)  + I shimonita
-	0x002e1e86, // n0x0a82 c0x0000 (---------------)  + I shinto
-	0x002ddc85, // n0x0a83 c0x0000 (---------------)  + I showa
-	0x002f5648, // n0x0a84 c0x0000 (---------------)  + I takasaki
-	0x002e41c8, // n0x0a85 c0x0000 (---------------)  + I takayama
-	0x002d13c8, // n0x0a86 c0x0000 (---------------)  + I tamamura
-	0x0020180b, // n0x0a87 c0x0000 (---------------)  + I tatebayashi
-	0x002e6287, // n0x0a88 c0x0000 (---------------)  + I tomioka
-	0x002a96c9, // n0x0a89 c0x0000 (---------------)  + I tsukiyono
-	0x00264148, // n0x0a8a c0x0000 (---------------)  + I tsumagoi
-	0x002107c4, // n0x0a8b c0x0000 (---------------)  + I ueno
-	0x002c2108, // n0x0a8c c0x0000 (---------------)  + I yoshioka
-	0x00288909, // n0x0a8d c0x0000 (---------------)  + I asaminami
-	0x002653c5, // n0x0a8e c0x0000 (---------------)  + I daiwa
-	0x00269987, // n0x0a8f c0x0000 (---------------)  + I etajima
-	0x0028c305, // n0x0a90 c0x0000 (---------------)  + I fuchu
-	0x0027d208, // n0x0a91 c0x0000 (---------------)  + I fukuyama
-	0x0028ad8b, // n0x0a92 c0x0000 (---------------)  + I hatsukaichi
-	0x0028ea10, // n0x0a93 c0x0000 (---------------)  + I higashihiroshima
-	0x002a38c5, // n0x0a94 c0x0000 (---------------)  + I hongo
-	0x002138cc, // n0x0a95 c0x0000 (---------------)  + I jinsekikogen
-	0x0024c1c5, // n0x0a96 c0x0000 (---------------)  + I kaita
-	0x00273ec3, // n0x0a97 c0x0000 (---------------)  + I kui
-	0x002d7806, // n0x0a98 c0x0000 (---------------)  + I kumano
-	0x002b3044, // n0x0a99 c0x0000 (---------------)  + I kure
-	0x002840c6, // n0x0a9a c0x0000 (---------------)  + I mihara
-	0x00295c07, // n0x0a9b c0x0000 (---------------)  + I miyoshi
-	0x00203fc4, // n0x0a9c c0x0000 (---------------)  + I naka
-	0x002de548, // n0x0a9d c0x0000 (---------------)  + I onomichi
-	0x00360e0d, // n0x0a9e c0x0000 (---------------)  + I osakikamijima
-	0x002d19c5, // n0x0a9f c0x0000 (---------------)  + I otake
-	0x00250b44, // n0x0aa0 c0x0000 (---------------)  + I saka
-	0x002207c4, // n0x0aa1 c0x0000 (---------------)  + I sera
-	0x00298ac9, // n0x0aa2 c0x0000 (---------------)  + I seranishi
-	0x002cf1c8, // n0x0aa3 c0x0000 (---------------)  + I shinichi
-	0x002b4587, // n0x0aa4 c0x0000 (---------------)  + I shobara
-	0x002bcdc8, // n0x0aa5 c0x0000 (---------------)  + I takehara
-	0x0027da88, // n0x0aa6 c0x0000 (---------------)  + I abashiri
-	0x00278205, // n0x0aa7 c0x0000 (---------------)  + I abira
-	0x0025ef87, // n0x0aa8 c0x0000 (---------------)  + I aibetsu
-	0x00278187, // n0x0aa9 c0x0000 (---------------)  + I akabira
-	0x0029a247, // n0x0aaa c0x0000 (---------------)  + I akkeshi
-	0x002bac09, // n0x0aab c0x0000 (---------------)  + I asahikawa
-	0x002385c9, // n0x0aac c0x0000 (---------------)  + I ashibetsu
-	0x0023f246, // n0x0aad c0x0000 (---------------)  + I ashoro
-	0x002ab986, // n0x0aae c0x0000 (---------------)  + I assabu
-	0x00264106, // n0x0aaf c0x0000 (---------------)  + I atsuma
-	0x00266b45, // n0x0ab0 c0x0000 (---------------)  + I bibai
-	0x0030af84, // n0x0ab1 c0x0000 (---------------)  + I biei
-	0x00200346, // n0x0ab2 c0x0000 (---------------)  + I bifuka
-	0x00200b06, // n0x0ab3 c0x0000 (---------------)  + I bihoro
-	0x00278248, // n0x0ab4 c0x0000 (---------------)  + I biratori
-	0x00284ecb, // n0x0ab5 c0x0000 (---------------)  + I chippubetsu
-	0x0029f647, // n0x0ab6 c0x0000 (---------------)  + I chitose
-	0x00271284, // n0x0ab7 c0x0000 (---------------)  + I date
-	0x0036cb46, // n0x0ab8 c0x0000 (---------------)  + I ebetsu
-	0x00273d07, // n0x0ab9 c0x0000 (---------------)  + I embetsu
-	0x00319cc5, // n0x0aba c0x0000 (---------------)  + I eniwa
-	0x00309185, // n0x0abb c0x0000 (---------------)  + I erimo
-	0x0022e244, // n0x0abc c0x0000 (---------------)  + I esan
-	0x00238546, // n0x0abd c0x0000 (---------------)  + I esashi
-	0x002003c8, // n0x0abe c0x0000 (---------------)  + I fukagawa
-	0x0027bcc9, // n0x0abf c0x0000 (---------------)  + I fukushima
-	0x00249d46, // n0x0ac0 c0x0000 (---------------)  + I furano
-	0x0027fec8, // n0x0ac1 c0x0000 (---------------)  + I furubira
-	0x002fef86, // n0x0ac2 c0x0000 (---------------)  + I haboro
-	0x0033b948, // n0x0ac3 c0x0000 (---------------)  + I hakodate
-	0x002f41cc, // n0x0ac4 c0x0000 (---------------)  + I hamatonbetsu
-	0x002780c6, // n0x0ac5 c0x0000 (---------------)  + I hidaka
-	0x0028f7cd, // n0x0ac6 c0x0000 (---------------)  + I higashikagura
-	0x0028fc4b, // n0x0ac7 c0x0000 (---------------)  + I higashikawa
-	0x00249f05, // n0x0ac8 c0x0000 (---------------)  + I hiroo
-	0x00226b47, // n0x0ac9 c0x0000 (---------------)  + I hokuryu
-	0x003112c6, // n0x0aca c0x0000 (---------------)  + I hokuto
-	0x002129c8, // n0x0acb c0x0000 (---------------)  + I honbetsu
-	0x0023f2c9, // n0x0acc c0x0000 (---------------)  + I horokanai
-	0x002b6588, // n0x0acd c0x0000 (---------------)  + I horonobe
-	0x002024c5, // n0x0ace c0x0000 (---------------)  + I ikeda
-	0x00269a87, // n0x0acf c0x0000 (---------------)  + I imakane
-	0x002be308, // n0x0ad0 c0x0000 (---------------)  + I ishikari
-	0x00350149, // n0x0ad1 c0x0000 (---------------)  + I iwamizawa
-	0x0024ccc6, // n0x0ad2 c0x0000 (---------------)  + I iwanai
-	0x00249c4a, // n0x0ad3 c0x0000 (---------------)  + I kamifurano
-	0x00212748, // n0x0ad4 c0x0000 (---------------)  + I kamikawa
-	0x002b63cb, // n0x0ad5 c0x0000 (---------------)  + I kamishihoro
-	0x0026b90c, // n0x0ad6 c0x0000 (---------------)  + I kamisunagawa
-	0x00256f08, // n0x0ad7 c0x0000 (---------------)  + I kamoenai
-	0x00278dc6, // n0x0ad8 c0x0000 (---------------)  + I kayabe
-	0x002de8c8, // n0x0ad9 c0x0000 (---------------)  + I kembuchi
-	0x002993c7, // n0x0ada c0x0000 (---------------)  + I kikonai
-	0x002d2d49, // n0x0adb c0x0000 (---------------)  + I kimobetsu
-	0x00269d4d, // n0x0adc c0x0000 (---------------)  + I kitahiroshima
-	0x0028f206, // n0x0add c0x0000 (---------------)  + I kitami
-	0x00203588, // n0x0ade c0x0000 (---------------)  + I kiyosato
-	0x002f9ec9, // n0x0adf c0x0000 (---------------)  + I koshimizu
-	0x002b2688, // n0x0ae0 c0x0000 (---------------)  + I kunneppu
-	0x00322c48, // n0x0ae1 c0x0000 (---------------)  + I kuriyama
-	0x002b428c, // n0x0ae2 c0x0000 (---------------)  + I kuromatsunai
-	0x002b6dc7, // n0x0ae3 c0x0000 (---------------)  + I kushiro
-	0x002b7b07, // n0x0ae4 c0x0000 (---------------)  + I kutchan
-	0x002baa45, // n0x0ae5 c0x0000 (---------------)  + I kyowa
-	0x002195c7, // n0x0ae6 c0x0000 (---------------)  + I mashike
-	0x002afec8, // n0x0ae7 c0x0000 (---------------)  + I matsumae
-	0x002e2646, // n0x0ae8 c0x0000 (---------------)  + I mikasa
-	0x0025814c, // n0x0ae9 c0x0000 (---------------)  + I minamifurano
-	0x00366708, // n0x0aea c0x0000 (---------------)  + I mombetsu
-	0x002c3308, // n0x0aeb c0x0000 (---------------)  + I moseushi
-	0x00371306, // n0x0aec c0x0000 (---------------)  + I mukawa
-	0x002b4987, // n0x0aed c0x0000 (---------------)  + I muroran
-	0x0023f444, // n0x0aee c0x0000 (---------------)  + I naie
-	0x0029bf08, // n0x0aef c0x0000 (---------------)  + I nakagawa
-	0x003523cc, // n0x0af0 c0x0000 (---------------)  + I nakasatsunai
-	0x002e6dcc, // n0x0af1 c0x0000 (---------------)  + I nakatombetsu
-	0x00220b05, // n0x0af2 c0x0000 (---------------)  + I nanae
-	0x002058c7, // n0x0af3 c0x0000 (---------------)  + I nanporo
-	0x00206dc6, // n0x0af4 c0x0000 (---------------)  + I nayoro
-	0x002b4906, // n0x0af5 c0x0000 (---------------)  + I nemuro
-	0x002e5888, // n0x0af6 c0x0000 (---------------)  + I niikappu
-	0x00204804, // n0x0af7 c0x0000 (---------------)  + I niki
-	0x002d9f8b, // n0x0af8 c0x0000 (---------------)  + I nishiokoppe
-	0x003097cb, // n0x0af9 c0x0000 (---------------)  + I noboribetsu
-	0x002e40c6, // n0x0afa c0x0000 (---------------)  + I numata
-	0x00360c87, // n0x0afb c0x0000 (---------------)  + I obihiro
-	0x00205285, // n0x0afc c0x0000 (---------------)  + I obira
-	0x0026c685, // n0x0afd c0x0000 (---------------)  + I oketo
-	0x002da0c6, // n0x0afe c0x0000 (---------------)  + I okoppe
-	0x00340185, // n0x0aff c0x0000 (---------------)  + I otaru
-	0x00265a85, // n0x0b00 c0x0000 (---------------)  + I otobe
-	0x002af907, // n0x0b01 c0x0000 (---------------)  + I otofuke
-	0x00207149, // n0x0b02 c0x0000 (---------------)  + I otoineppu
-	0x00319ac4, // n0x0b03 c0x0000 (---------------)  + I oumu
-	0x00277005, // n0x0b04 c0x0000 (---------------)  + I ozora
-	0x002cf8c5, // n0x0b05 c0x0000 (---------------)  + I pippu
-	0x002b4a88, // n0x0b06 c0x0000 (---------------)  + I rankoshi
-	0x002de385, // n0x0b07 c0x0000 (---------------)  + I rebun
-	0x00296789, // n0x0b08 c0x0000 (---------------)  + I rikubetsu
-	0x002f2e47, // n0x0b09 c0x0000 (---------------)  + I rishiri
-	0x002f2e4b, // n0x0b0a c0x0000 (---------------)  + I rishirifuji
-	0x00247286, // n0x0b0b c0x0000 (---------------)  + I saroma
-	0x0024bc49, // n0x0b0c c0x0000 (---------------)  + I sarufutsu
-	0x002dca08, // n0x0b0d c0x0000 (---------------)  + I shakotan
-	0x002df485, // n0x0b0e c0x0000 (---------------)  + I shari
-	0x0029a348, // n0x0b0f c0x0000 (---------------)  + I shibecha
-	0x00238608, // n0x0b10 c0x0000 (---------------)  + I shibetsu
-	0x002a21c7, // n0x0b11 c0x0000 (---------------)  + I shikabe
-	0x002b0147, // n0x0b12 c0x0000 (---------------)  + I shikaoi
-	0x002908c9, // n0x0b13 c0x0000 (---------------)  + I shimamaki
-	0x0024b147, // n0x0b14 c0x0000 (---------------)  + I shimizu
-	0x002b78c9, // n0x0b15 c0x0000 (---------------)  + I shimokawa
-	0x002daecc, // n0x0b16 c0x0000 (---------------)  + I shinshinotsu
-	0x002e1e88, // n0x0b17 c0x0000 (---------------)  + I shintoku
-	0x0031b609, // n0x0b18 c0x0000 (---------------)  + I shiranuka
-	0x0031d6c7, // n0x0b19 c0x0000 (---------------)  + I shiraoi
-	0x0027db49, // n0x0b1a c0x0000 (---------------)  + I shiriuchi
-	0x002d3407, // n0x0b1b c0x0000 (---------------)  + I sobetsu
-	0x0026ba08, // n0x0b1c c0x0000 (---------------)  + I sunagawa
-	0x00247945, // n0x0b1d c0x0000 (---------------)  + I taiki
-	0x002bc746, // n0x0b1e c0x0000 (---------------)  + I takasu
-	0x002b5308, // n0x0b1f c0x0000 (---------------)  + I takikawa
-	0x00307648, // n0x0b20 c0x0000 (---------------)  + I takinoue
-	0x002be049, // n0x0b21 c0x0000 (---------------)  + I teshikaga
-	0x00265ac7, // n0x0b22 c0x0000 (---------------)  + I tobetsu
-	0x0026c745, // n0x0b23 c0x0000 (---------------)  + I tohma
-	0x002ca489, // n0x0b24 c0x0000 (---------------)  + I tomakomai
-	0x002626c6, // n0x0b25 c0x0000 (---------------)  + I tomari
-	0x0028a784, // n0x0b26 c0x0000 (---------------)  + I toya
-	0x0032ddc6, // n0x0b27 c0x0000 (---------------)  + I toyako
-	0x00257248, // n0x0b28 c0x0000 (---------------)  + I toyotomi
-	0x002599c7, // n0x0b29 c0x0000 (---------------)  + I toyoura
-	0x002850c8, // n0x0b2a c0x0000 (---------------)  + I tsubetsu
-	0x00342c49, // n0x0b2b c0x0000 (---------------)  + I tsukigata
-	0x0030fc47, // n0x0b2c c0x0000 (---------------)  + I urakawa
-	0x00297386, // n0x0b2d c0x0000 (---------------)  + I urausu
-	0x00226c04, // n0x0b2e c0x0000 (---------------)  + I uryu
-	0x0021acc9, // n0x0b2f c0x0000 (---------------)  + I utashinai
-	0x0025ee08, // n0x0b30 c0x0000 (---------------)  + I wakkanai
-	0x003711c7, // n0x0b31 c0x0000 (---------------)  + I wassamu
-	0x003695c6, // n0x0b32 c0x0000 (---------------)  + I yakumo
-	0x002a47c6, // n0x0b33 c0x0000 (---------------)  + I yoichi
-	0x00299504, // n0x0b34 c0x0000 (---------------)  + I aioi
-	0x002d1b46, // n0x0b35 c0x0000 (---------------)  + I akashi
-	0x00204a43, // n0x0b36 c0x0000 (---------------)  + I ako
-	0x0036a949, // n0x0b37 c0x0000 (---------------)  + I amagasaki
-	0x00204386, // n0x0b38 c0x0000 (---------------)  + I aogaki
-	0x00368ec5, // n0x0b39 c0x0000 (---------------)  + I asago
-	0x002978c6, // n0x0b3a c0x0000 (---------------)  + I ashiya
-	0x0020a905, // n0x0b3b c0x0000 (---------------)  + I awaji
-	0x0027c988, // n0x0b3c c0x0000 (---------------)  + I fukusaki
-	0x00256c47, // n0x0b3d c0x0000 (---------------)  + I goshiki
-	0x002a5006, // n0x0b3e c0x0000 (---------------)  + I harima
-	0x00202986, // n0x0b3f c0x0000 (---------------)  + I himeji
-	0x002a0348, // n0x0b40 c0x0000 (---------------)  + I ichikawa
-	0x0029b7c7, // n0x0b41 c0x0000 (---------------)  + I inagawa
-	0x0028f245, // n0x0b42 c0x0000 (---------------)  + I itami
-	0x00297dc8, // n0x0b43 c0x0000 (---------------)  + I kakogawa
-	0x002855c8, // n0x0b44 c0x0000 (---------------)  + I kamigori
-	0x00212748, // n0x0b45 c0x0000 (---------------)  + I kamikawa
-	0x0024c085, // n0x0b46 c0x0000 (---------------)  + I kasai
-	0x002bc7c6, // n0x0b47 c0x0000 (---------------)  + I kasuga
-	0x002b6949, // n0x0b48 c0x0000 (---------------)  + I kawanishi
-	0x00295544, // n0x0b49 c0x0000 (---------------)  + I miki
-	0x00293ecb, // n0x0b4a c0x0000 (---------------)  + I minamiawaji
-	0x0022814b, // n0x0b4b c0x0000 (---------------)  + I nishinomiya
-	0x0024df89, // n0x0b4c c0x0000 (---------------)  + I nishiwaki
-	0x002142c3, // n0x0b4d c0x0000 (---------------)  + I ono
-	0x00256045, // n0x0b4e c0x0000 (---------------)  + I sanda
-	0x0024e406, // n0x0b4f c0x0000 (---------------)  + I sannan
-	0x002527c8, // n0x0b50 c0x0000 (---------------)  + I sasayama
-	0x00275544, // n0x0b51 c0x0000 (---------------)  + I sayo
-	0x002a57c6, // n0x0b52 c0x0000 (---------------)  + I shingu
-	0x002c6549, // n0x0b53 c0x0000 (---------------)  + I shinonsen
-	0x0033e485, // n0x0b54 c0x0000 (---------------)  + I shiso
-	0x002af846, // n0x0b55 c0x0000 (---------------)  + I sumoto
-	0x0022db06, // n0x0b56 c0x0000 (---------------)  + I taishi
-	0x0020a244, // n0x0b57 c0x0000 (---------------)  + I taka
-	0x0020a24a, // n0x0b58 c0x0000 (---------------)  + I takarazuka
-	0x00368e08, // n0x0b59 c0x0000 (---------------)  + I takasago
-	0x00307646, // n0x0b5a c0x0000 (---------------)  + I takino
-	0x00276e05, // n0x0b5b c0x0000 (---------------)  + I tamba
-	0x002662c7, // n0x0b5c c0x0000 (---------------)  + I tatsuno
-	0x00251687, // n0x0b5d c0x0000 (---------------)  + I toyooka
-	0x002b4d04, // n0x0b5e c0x0000 (---------------)  + I yabu
-	0x00228387, // n0x0b5f c0x0000 (---------------)  + I yashiro
-	0x002126c4, // n0x0b60 c0x0000 (---------------)  + I yoka
-	0x00251986, // n0x0b61 c0x0000 (---------------)  + I yokawa
-	0x00209bc3, // n0x0b62 c0x0000 (---------------)  + I ami
-	0x002bac05, // n0x0b63 c0x0000 (---------------)  + I asahi
-	0x003305c5, // n0x0b64 c0x0000 (---------------)  + I bando
-	0x002d30c8, // n0x0b65 c0x0000 (---------------)  + I chikusei
-	0x00279d85, // n0x0b66 c0x0000 (---------------)  + I daigo
-	0x00277e09, // n0x0b67 c0x0000 (---------------)  + I fujishiro
-	0x0029bd47, // n0x0b68 c0x0000 (---------------)  + I hitachi
-	0x0029bd4b, // n0x0b69 c0x0000 (---------------)  + I hitachinaka
-	0x0029d28c, // n0x0b6a c0x0000 (---------------)  + I hitachiomiya
-	0x0029d8ca, // n0x0b6b c0x0000 (---------------)  + I hitachiota
-	0x0032cd07, // n0x0b6c c0x0000 (---------------)  + I ibaraki
-	0x0020cd43, // n0x0b6d c0x0000 (---------------)  + I ina
-	0x002a1448, // n0x0b6e c0x0000 (---------------)  + I inashiki
-	0x0024c245, // n0x0b6f c0x0000 (---------------)  + I itako
-	0x00219505, // n0x0b70 c0x0000 (---------------)  + I iwama
-	0x00214384, // n0x0b71 c0x0000 (---------------)  + I joso
-	0x0026b906, // n0x0b72 c0x0000 (---------------)  + I kamisu
-	0x00288dc6, // n0x0b73 c0x0000 (---------------)  + I kasama
-	0x002d1b87, // n0x0b74 c0x0000 (---------------)  + I kashima
-	0x00207d0b, // n0x0b75 c0x0000 (---------------)  + I kasumigaura
-	0x00297e44, // n0x0b76 c0x0000 (---------------)  + I koga
-	0x0033f984, // n0x0b77 c0x0000 (---------------)  + I miho
-	0x002bcfc4, // n0x0b78 c0x0000 (---------------)  + I mito
-	0x002c1c06, // n0x0b79 c0x0000 (---------------)  + I moriya
-	0x00203fc4, // n0x0b7a c0x0000 (---------------)  + I naka
-	0x002bc5c8, // n0x0b7b c0x0000 (---------------)  + I namegata
-	0x00321385, // n0x0b7c c0x0000 (---------------)  + I oarai
-	0x0022f3c5, // n0x0b7d c0x0000 (---------------)  + I ogawa
-	0x002d1307, // n0x0b7e c0x0000 (---------------)  + I omitama
-	0x00226c49, // n0x0b7f c0x0000 (---------------)  + I ryugasaki
-	0x0032db85, // n0x0b80 c0x0000 (---------------)  + I sakai
-	0x0021a00a, // n0x0b81 c0x0000 (---------------)  + I sakuragawa
-	0x002dd249, // n0x0b82 c0x0000 (---------------)  + I shimodate
-	0x002cec0a, // n0x0b83 c0x0000 (---------------)  + I shimotsuma
-	0x0021e7c9, // n0x0b84 c0x0000 (---------------)  + I shirosato
-	0x002e5b84, // n0x0b85 c0x0000 (---------------)  + I sowa
-	0x002dc305, // n0x0b86 c0x0000 (---------------)  + I suifu
-	0x0031f708, // n0x0b87 c0x0000 (---------------)  + I takahagi
-	0x003572cb, // n0x0b88 c0x0000 (---------------)  + I tamatsukuri
-	0x002f88c5, // n0x0b89 c0x0000 (---------------)  + I tokai
-	0x003451c6, // n0x0b8a c0x0000 (---------------)  + I tomobe
-	0x0023fb84, // n0x0b8b c0x0000 (---------------)  + I tone
-	0x00278346, // n0x0b8c c0x0000 (---------------)  + I toride
-	0x0030fac9, // n0x0b8d c0x0000 (---------------)  + I tsuchiura
-	0x0036cc07, // n0x0b8e c0x0000 (---------------)  + I tsukuba
-	0x002c51c8, // n0x0b8f c0x0000 (---------------)  + I uchihara
-	0x0028a306, // n0x0b90 c0x0000 (---------------)  + I ushiku
-	0x00374ac7, // n0x0b91 c0x0000 (---------------)  + I yachiyo
-	0x0027d308, // n0x0b92 c0x0000 (---------------)  + I yamagata
-	0x00354f06, // n0x0b93 c0x0000 (---------------)  + I yawara
-	0x002014c4, // n0x0b94 c0x0000 (---------------)  + I yuki
-	0x0023e287, // n0x0b95 c0x0000 (---------------)  + I anamizu
-	0x0034ecc5, // n0x0b96 c0x0000 (---------------)  + I hakui
-	0x00372107, // n0x0b97 c0x0000 (---------------)  + I hakusan
-	0x00200444, // n0x0b98 c0x0000 (---------------)  + I kaga
-	0x00311246, // n0x0b99 c0x0000 (---------------)  + I kahoku
-	0x00227248, // n0x0b9a c0x0000 (---------------)  + I kanazawa
-	0x0028fe08, // n0x0b9b c0x0000 (---------------)  + I kawakita
-	0x0032c6c7, // n0x0b9c c0x0000 (---------------)  + I komatsu
-	0x002501c8, // n0x0b9d c0x0000 (---------------)  + I nakanoto
-	0x0028e485, // n0x0b9e c0x0000 (---------------)  + I nanao
-	0x00214104, // n0x0b9f c0x0000 (---------------)  + I nomi
-	0x002a0248, // n0x0ba0 c0x0000 (---------------)  + I nonoichi
-	0x002502c4, // n0x0ba1 c0x0000 (---------------)  + I noto
-	0x00224d85, // n0x0ba2 c0x0000 (---------------)  + I shika
-	0x002eb784, // n0x0ba3 c0x0000 (---------------)  + I suzu
-	0x0030f607, // n0x0ba4 c0x0000 (---------------)  + I tsubata
-	0x00367ac7, // n0x0ba5 c0x0000 (---------------)  + I tsurugi
-	0x0027dc88, // n0x0ba6 c0x0000 (---------------)  + I uchinada
-	0x0020a946, // n0x0ba7 c0x0000 (---------------)  + I wajima
-	0x00279d05, // n0x0ba8 c0x0000 (---------------)  + I fudai
-	0x00277c08, // n0x0ba9 c0x0000 (---------------)  + I fujisawa
-	0x00314f48, // n0x0baa c0x0000 (---------------)  + I hanamaki
-	0x0029b049, // n0x0bab c0x0000 (---------------)  + I hiraizumi
-	0x00228446, // n0x0bac c0x0000 (---------------)  + I hirono
-	0x00201a88, // n0x0bad c0x0000 (---------------)  + I ichinohe
-	0x0030c80a, // n0x0bae c0x0000 (---------------)  + I ichinoseki
-	0x00319d48, // n0x0baf c0x0000 (---------------)  + I iwaizumi
-	0x00351705, // n0x0bb0 c0x0000 (---------------)  + I iwate
-	0x00352d06, // n0x0bb1 c0x0000 (---------------)  + I joboji
-	0x00251288, // n0x0bb2 c0x0000 (---------------)  + I kamaishi
-	0x00269b4a, // n0x0bb3 c0x0000 (---------------)  + I kanegasaki
-	0x00314887, // n0x0bb4 c0x0000 (---------------)  + I karumai
-	0x00254bc5, // n0x0bb5 c0x0000 (---------------)  + I kawai
-	0x0032ce48, // n0x0bb6 c0x0000 (---------------)  + I kitakami
-	0x0027eec4, // n0x0bb7 c0x0000 (---------------)  + I kuji
-	0x00360706, // n0x0bb8 c0x0000 (---------------)  + I kunohe
-	0x002b8ec8, // n0x0bb9 c0x0000 (---------------)  + I kuzumaki
-	0x00214186, // n0x0bba c0x0000 (---------------)  + I miyako
-	0x00220148, // n0x0bbb c0x0000 (---------------)  + I mizusawa
-	0x003424c7, // n0x0bbc c0x0000 (---------------)  + I morioka
-	0x002130c6, // n0x0bbd c0x0000 (---------------)  + I ninohe
-	0x0025f744, // n0x0bbe c0x0000 (---------------)  + I noda
-	0x002a4bc7, // n0x0bbf c0x0000 (---------------)  + I ofunato
-	0x002fda84, // n0x0bc0 c0x0000 (---------------)  + I oshu
-	0x0030fa87, // n0x0bc1 c0x0000 (---------------)  + I otsuchi
-	0x0037150d, // n0x0bc2 c0x0000 (---------------)  + I rikuzentakata
-	0x002022c5, // n0x0bc3 c0x0000 (---------------)  + I shiwa
-	0x002dd04b, // n0x0bc4 c0x0000 (---------------)  + I shizukuishi
-	0x00290286, // n0x0bc5 c0x0000 (---------------)  + I sumita
-	0x0024cac8, // n0x0bc6 c0x0000 (---------------)  + I tanohata
-	0x0022e084, // n0x0bc7 c0x0000 (---------------)  + I tono
-	0x00316686, // n0x0bc8 c0x0000 (---------------)  + I yahaba
-	0x002795c6, // n0x0bc9 c0x0000 (---------------)  + I yamada
-	0x00272fc7, // n0x0bca c0x0000 (---------------)  + I ayagawa
-	0x0028f48d, // n0x0bcb c0x0000 (---------------)  + I higashikagawa
-	0x002dd607, // n0x0bcc c0x0000 (---------------)  + I kanonji
-	0x003587c8, // n0x0bcd c0x0000 (---------------)  + I kotohira
-	0x0026c805, // n0x0bce c0x0000 (---------------)  + I manno
-	0x0028b648, // n0x0bcf c0x0000 (---------------)  + I marugame
-	0x002bd986, // n0x0bd0 c0x0000 (---------------)  + I mitoyo
-	0x0028e508, // n0x0bd1 c0x0000 (---------------)  + I naoshima
-	0x00232946, // n0x0bd2 c0x0000 (---------------)  + I sanuki
-	0x003679c7, // n0x0bd3 c0x0000 (---------------)  + I tadotsu
-	0x00257d09, // n0x0bd4 c0x0000 (---------------)  + I takamatsu
-	0x0022e087, // n0x0bd5 c0x0000 (---------------)  + I tonosho
-	0x00281a48, // n0x0bd6 c0x0000 (---------------)  + I uchinomi
-	0x0026ffc5, // n0x0bd7 c0x0000 (---------------)  + I utazu
-	0x00215f08, // n0x0bd8 c0x0000 (---------------)  + I zentsuji
-	0x0025e645, // n0x0bd9 c0x0000 (---------------)  + I akune
-	0x00244b85, // n0x0bda c0x0000 (---------------)  + I amami
-	0x00345545, // n0x0bdb c0x0000 (---------------)  + I hioki
-	0x0022b803, // n0x0bdc c0x0000 (---------------)  + I isa
-	0x0026ddc4, // n0x0bdd c0x0000 (---------------)  + I isen
-	0x00264305, // n0x0bde c0x0000 (---------------)  + I izumi
-	0x00317449, // n0x0bdf c0x0000 (---------------)  + I kagoshima
-	0x0031aa06, // n0x0be0 c0x0000 (---------------)  + I kanoya
-	0x002bd588, // n0x0be1 c0x0000 (---------------)  + I kawanabe
-	0x00238845, // n0x0be2 c0x0000 (---------------)  + I kinko
-	0x002ab187, // n0x0be3 c0x0000 (---------------)  + I kouyama
-	0x00212d0a, // n0x0be4 c0x0000 (---------------)  + I makurazaki
-	0x002af789, // n0x0be5 c0x0000 (---------------)  + I matsumoto
-	0x002a364a, // n0x0be6 c0x0000 (---------------)  + I minamitane
-	0x002c8b88, // n0x0be7 c0x0000 (---------------)  + I nakatane
-	0x00228d4c, // n0x0be8 c0x0000 (---------------)  + I nishinoomote
-	0x0027e78d, // n0x0be9 c0x0000 (---------------)  + I satsumasendai
-	0x002e28c3, // n0x0bea c0x0000 (---------------)  + I soo
-	0x00220048, // n0x0beb c0x0000 (---------------)  + I tarumizu
-	0x00216b85, // n0x0bec c0x0000 (---------------)  + I yusui
-	0x00237706, // n0x0bed c0x0000 (---------------)  + I aikawa
-	0x00343a86, // n0x0bee c0x0000 (---------------)  + I atsugi
-	0x002d0a45, // n0x0bef c0x0000 (---------------)  + I ayase
-	0x002a6609, // n0x0bf0 c0x0000 (---------------)  + I chigasaki
-	0x0036de45, // n0x0bf1 c0x0000 (---------------)  + I ebina
-	0x00277c08, // n0x0bf2 c0x0000 (---------------)  + I fujisawa
-	0x002bee06, // n0x0bf3 c0x0000 (---------------)  + I hadano
-	0x00347fc6, // n0x0bf4 c0x0000 (---------------)  + I hakone
-	0x0029c289, // n0x0bf5 c0x0000 (---------------)  + I hiratsuka
-	0x003561c7, // n0x0bf6 c0x0000 (---------------)  + I isehara
-	0x002e3b06, // n0x0bf7 c0x0000 (---------------)  + I kaisei
-	0x00212c88, // n0x0bf8 c0x0000 (---------------)  + I kamakura
-	0x00251908, // n0x0bf9 c0x0000 (---------------)  + I kiyokawa
-	0x00311c87, // n0x0bfa c0x0000 (---------------)  + I matsuda
-	0x002b3c8e, // n0x0bfb c0x0000 (---------------)  + I minamiashigara
-	0x002bdbc5, // n0x0bfc c0x0000 (---------------)  + I miura
-	0x00350045, // n0x0bfd c0x0000 (---------------)  + I nakai
-	0x00214088, // n0x0bfe c0x0000 (---------------)  + I ninomiya
-	0x0025f787, // n0x0bff c0x0000 (---------------)  + I odawara
-	0x002068c2, // n0x0c00 c0x0000 (---------------)  + I oi
-	0x002b40c4, // n0x0c01 c0x0000 (---------------)  + I oiso
-	0x00283fca, // n0x0c02 c0x0000 (---------------)  + I sagamihara
-	0x00371288, // n0x0c03 c0x0000 (---------------)  + I samukawa
-	0x00273e06, // n0x0c04 c0x0000 (---------------)  + I tsukui
-	0x00291c08, // n0x0c05 c0x0000 (---------------)  + I yamakita
-	0x002956c6, // n0x0c06 c0x0000 (---------------)  + I yamato
-	0x00302908, // n0x0c07 c0x0000 (---------------)  + I yokosuka
-	0x002a9408, // n0x0c08 c0x0000 (---------------)  + I yugawara
-	0x00244b44, // n0x0c09 c0x0000 (---------------)  + I zama
-	0x002abfc5, // n0x0c0a c0x0000 (---------------)  + I zushi
-	0x00757e04, // n0x0c0b c0x0001 (---------------)  ! I city
-	0x00757e04, // n0x0c0c c0x0001 (---------------)  ! I city
-	0x00757e04, // n0x0c0d c0x0001 (---------------)  ! I city
-	0x00203543, // n0x0c0e c0x0000 (---------------)  + I aki
-	0x00319906, // n0x0c0f c0x0000 (---------------)  + I geisei
-	0x002780c6, // n0x0c10 c0x0000 (---------------)  + I hidaka
-	0x00296d4c, // n0x0c11 c0x0000 (---------------)  + I higashitsuno
-	0x00201b43, // n0x0c12 c0x0000 (---------------)  + I ino
-	0x00280486, // n0x0c13 c0x0000 (---------------)  + I kagami
-	0x0020a444, // n0x0c14 c0x0000 (---------------)  + I kami
-	0x00290a88, // n0x0c15 c0x0000 (---------------)  + I kitagawa
-	0x002c6385, // n0x0c16 c0x0000 (---------------)  + I kochi
-	0x002840c6, // n0x0c17 c0x0000 (---------------)  + I mihara
-	0x002c7e88, // n0x0c18 c0x0000 (---------------)  + I motoyama
-	0x002c9686, // n0x0c19 c0x0000 (---------------)  + I muroto
-	0x002a4f86, // n0x0c1a c0x0000 (---------------)  + I nahari
-	0x00316bc8, // n0x0c1b c0x0000 (---------------)  + I nakamura
-	0x00367c87, // n0x0c1c c0x0000 (---------------)  + I nankoku
-	0x0024af09, // n0x0c1d c0x0000 (---------------)  + I nishitosa
-	0x0034064a, // n0x0c1e c0x0000 (---------------)  + I niyodogawa
-	0x00250884, // n0x0c1f c0x0000 (---------------)  + I ochi
-	0x002519c5, // n0x0c20 c0x0000 (---------------)  + I okawa
-	0x002588c5, // n0x0c21 c0x0000 (---------------)  + I otoyo
-	0x002a39c6, // n0x0c22 c0x0000 (---------------)  + I otsuki
-	0x00250b46, // n0x0c23 c0x0000 (---------------)  + I sakawa
-	0x00296346, // n0x0c24 c0x0000 (---------------)  + I sukumo
-	0x002eac86, // n0x0c25 c0x0000 (---------------)  + I susaki
-	0x0024b044, // n0x0c26 c0x0000 (---------------)  + I tosa
-	0x0024b04b, // n0x0c27 c0x0000 (---------------)  + I tosashimizu
-	0x00243744, // n0x0c28 c0x0000 (---------------)  + I toyo
-	0x0024bdc5, // n0x0c29 c0x0000 (---------------)  + I tsuno
-	0x002a8a05, // n0x0c2a c0x0000 (---------------)  + I umaji
-	0x002a1786, // n0x0c2b c0x0000 (---------------)  + I yasuda
-	0x0020e448, // n0x0c2c c0x0000 (---------------)  + I yusuhara
-	0x0027e647, // n0x0c2d c0x0000 (---------------)  + I amakusa
-	0x0020d744, // n0x0c2e c0x0000 (---------------)  + I arao
-	0x00212583, // n0x0c2f c0x0000 (---------------)  + I aso
-	0x002cd745, // n0x0c30 c0x0000 (---------------)  + I choyo
-	0x00243947, // n0x0c31 c0x0000 (---------------)  + I gyokuto
-	0x0029de49, // n0x0c32 c0x0000 (---------------)  + I hitoyoshi
-	0x0027e54b, // n0x0c33 c0x0000 (---------------)  + I kamiamakusa
-	0x002d1b87, // n0x0c34 c0x0000 (---------------)  + I kashima
-	0x00272cc7, // n0x0c35 c0x0000 (---------------)  + I kikuchi
-	0x002ed184, // n0x0c36 c0x0000 (---------------)  + I kosa
-	0x002c7d88, // n0x0c37 c0x0000 (---------------)  + I kumamoto
-	0x002cde07, // n0x0c38 c0x0000 (---------------)  + I mashiki
-	0x0028f306, // n0x0c39 c0x0000 (---------------)  + I mifune
-	0x003074c8, // n0x0c3a c0x0000 (---------------)  + I minamata
-	0x0028db4b, // n0x0c3b c0x0000 (---------------)  + I minamioguni
-	0x002fc9c6, // n0x0c3c c0x0000 (---------------)  + I nagasu
-	0x00221449, // n0x0c3d c0x0000 (---------------)  + I nishihara
-	0x0028dcc5, // n0x0c3e c0x0000 (---------------)  + I oguni
-	0x002b4fc3, // n0x0c3f c0x0000 (---------------)  + I ozu
-	0x002af846, // n0x0c40 c0x0000 (---------------)  + I sumoto
-	0x003423c8, // n0x0c41 c0x0000 (---------------)  + I takamori
-	0x00201503, // n0x0c42 c0x0000 (---------------)  + I uki
-	0x0022cd03, // n0x0c43 c0x0000 (---------------)  + I uto
-	0x0027d306, // n0x0c44 c0x0000 (---------------)  + I yamaga
-	0x002956c6, // n0x0c45 c0x0000 (---------------)  + I yamato
-	0x0034dcca, // n0x0c46 c0x0000 (---------------)  + I yatsushiro
-	0x00278e05, // n0x0c47 c0x0000 (---------------)  + I ayabe
-	0x0027940b, // n0x0c48 c0x0000 (---------------)  + I fukuchiyama
-	0x0029780b, // n0x0c49 c0x0000 (---------------)  + I higashiyama
-	0x00206903, // n0x0c4a c0x0000 (---------------)  + I ide
-	0x002015c3, // n0x0c4b c0x0000 (---------------)  + I ine
-	0x0020a104, // n0x0c4c c0x0000 (---------------)  + I joyo
-	0x003427c7, // n0x0c4d c0x0000 (---------------)  + I kameoka
-	0x00256f04, // n0x0c4e c0x0000 (---------------)  + I kamo
-	0x00213344, // n0x0c4f c0x0000 (---------------)  + I kita
-	0x002f52c4, // n0x0c50 c0x0000 (---------------)  + I kizu
-	0x0031a048, // n0x0c51 c0x0000 (---------------)  + I kumiyama
-	0x00276d48, // n0x0c52 c0x0000 (---------------)  + I kyotamba
-	0x0021dc09, // n0x0c53 c0x0000 (---------------)  + I kyotanabe
-	0x002d8f08, // n0x0c54 c0x0000 (---------------)  + I kyotango
-	0x00247387, // n0x0c55 c0x0000 (---------------)  + I maizuru
-	0x0024b386, // n0x0c56 c0x0000 (---------------)  + I minami
-	0x002bd1cf, // n0x0c57 c0x0000 (---------------)  + I minamiyamashiro
-	0x002bdd06, // n0x0c58 c0x0000 (---------------)  + I miyazu
-	0x002c6304, // n0x0c59 c0x0000 (---------------)  + I muko
-	0x00276b8a, // n0x0c5a c0x0000 (---------------)  + I nagaokakyo
-	0x00243847, // n0x0c5b c0x0000 (---------------)  + I nakagyo
-	0x002bc086, // n0x0c5c c0x0000 (---------------)  + I nantan
-	0x0028a7c9, // n0x0c5d c0x0000 (---------------)  + I oyamazaki
-	0x0021db85, // n0x0c5e c0x0000 (---------------)  + I sakyo
-	0x002a9a45, // n0x0c5f c0x0000 (---------------)  + I seika
-	0x0021dcc6, // n0x0c60 c0x0000 (---------------)  + I tanabe
-	0x00216043, // n0x0c61 c0x0000 (---------------)  + I uji
-	0x0027ef09, // n0x0c62 c0x0000 (---------------)  + I ujitawara
-	0x00227146, // n0x0c63 c0x0000 (---------------)  + I wazuka
-	0x00342a09, // n0x0c64 c0x0000 (---------------)  + I yamashina
-	0x003569c6, // n0x0c65 c0x0000 (---------------)  + I yawata
-	0x002bac05, // n0x0c66 c0x0000 (---------------)  + I asahi
-	0x00217ec5, // n0x0c67 c0x0000 (---------------)  + I inabe
-	0x00240483, // n0x0c68 c0x0000 (---------------)  + I ise
-	0x00342908, // n0x0c69 c0x0000 (---------------)  + I kameyama
-	0x00250bc7, // n0x0c6a c0x0000 (---------------)  + I kawagoe
-	0x00204884, // n0x0c6b c0x0000 (---------------)  + I kiho
-	0x0027cb08, // n0x0c6c c0x0000 (---------------)  + I kisosaki
-	0x0033f704, // n0x0c6d c0x0000 (---------------)  + I kiwa
-	0x002b1d06, // n0x0c6e c0x0000 (---------------)  + I komono
-	0x002d7806, // n0x0c6f c0x0000 (---------------)  + I kumano
-	0x0023e1c6, // n0x0c70 c0x0000 (---------------)  + I kuwana
-	0x002bb249, // n0x0c71 c0x0000 (---------------)  + I matsusaka
-	0x00219485, // n0x0c72 c0x0000 (---------------)  + I meiwa
-	0x00292746, // n0x0c73 c0x0000 (---------------)  + I mihama
-	0x0025dec9, // n0x0c74 c0x0000 (---------------)  + I minamiise
-	0x002bc346, // n0x0c75 c0x0000 (---------------)  + I misugi
-	0x002bd2c6, // n0x0c76 c0x0000 (---------------)  + I miyama
-	0x003515c6, // n0x0c77 c0x0000 (---------------)  + I nabari
-	0x0020d8c5, // n0x0c78 c0x0000 (---------------)  + I shima
-	0x002eb786, // n0x0c79 c0x0000 (---------------)  + I suzuka
-	0x003679c4, // n0x0c7a c0x0000 (---------------)  + I tado
-	0x00247945, // n0x0c7b c0x0000 (---------------)  + I taiki
-	0x002b5304, // n0x0c7c c0x0000 (---------------)  + I taki
-	0x002aa286, // n0x0c7d c0x0000 (---------------)  + I tamaki
-	0x0021e984, // n0x0c7e c0x0000 (---------------)  + I toba
-	0x002040c3, // n0x0c7f c0x0000 (---------------)  + I tsu
-	0x00280a45, // n0x0c80 c0x0000 (---------------)  + I udono
-	0x00238308, // n0x0c81 c0x0000 (---------------)  + I ureshino
-	0x0034e787, // n0x0c82 c0x0000 (---------------)  + I watarai
-	0x002755c9, // n0x0c83 c0x0000 (---------------)  + I yokkaichi
-	0x00280c88, // n0x0c84 c0x0000 (---------------)  + I furukawa
-	0x00291191, // n0x0c85 c0x0000 (---------------)  + I higashimatsushima
-	0x0022db8a, // n0x0c86 c0x0000 (---------------)  + I ishinomaki
-	0x002e4007, // n0x0c87 c0x0000 (---------------)  + I iwanuma
-	0x002a9b06, // n0x0c88 c0x0000 (---------------)  + I kakuda
-	0x0020a444, // n0x0c89 c0x0000 (---------------)  + I kami
-	0x002b5408, // n0x0c8a c0x0000 (---------------)  + I kawasaki
-	0x002fcb49, // n0x0c8b c0x0000 (---------------)  + I kesennuma
-	0x00291548, // n0x0c8c c0x0000 (---------------)  + I marumori
-	0x0029134a, // n0x0c8d c0x0000 (---------------)  + I matsushima
-	0x0029654d, // n0x0c8e c0x0000 (---------------)  + I minamisanriku
-	0x002625c6, // n0x0c8f c0x0000 (---------------)  + I misato
-	0x00316cc6, // n0x0c90 c0x0000 (---------------)  + I murata
-	0x002a4c86, // n0x0c91 c0x0000 (---------------)  + I natori
-	0x0022f3c7, // n0x0c92 c0x0000 (---------------)  + I ogawara
-	0x0029b505, // n0x0c93 c0x0000 (---------------)  + I ohira
-	0x00237207, // n0x0c94 c0x0000 (---------------)  + I onagawa
-	0x0027cbc5, // n0x0c95 c0x0000 (---------------)  + I osaki
-	0x002f2f84, // n0x0c96 c0x0000 (---------------)  + I rifu
-	0x002e9706, // n0x0c97 c0x0000 (---------------)  + I semine
-	0x00368cc7, // n0x0c98 c0x0000 (---------------)  + I shibata
-	0x0032288d, // n0x0c99 c0x0000 (---------------)  + I shichikashuku
-	0x002511c7, // n0x0c9a c0x0000 (---------------)  + I shikama
-	0x002c25c8, // n0x0c9b c0x0000 (---------------)  + I shiogama
-	0x00277f09, // n0x0c9c c0x0000 (---------------)  + I shiroishi
-	0x00352c06, // n0x0c9d c0x0000 (---------------)  + I tagajo
-	0x0024cc45, // n0x0c9e c0x0000 (---------------)  + I taiwa
-	0x00234844, // n0x0c9f c0x0000 (---------------)  + I tome
-	0x00257346, // n0x0ca0 c0x0000 (---------------)  + I tomiya
-	0x00237346, // n0x0ca1 c0x0000 (---------------)  + I wakuya
-	0x00371406, // n0x0ca2 c0x0000 (---------------)  + I watari
-	0x00294948, // n0x0ca3 c0x0000 (---------------)  + I yamamoto
-	0x0021e583, // n0x0ca4 c0x0000 (---------------)  + I zao
-	0x00201943, // n0x0ca5 c0x0000 (---------------)  + I aya
-	0x00310745, // n0x0ca6 c0x0000 (---------------)  + I ebino
-	0x00279e46, // n0x0ca7 c0x0000 (---------------)  + I gokase
-	0x002a93c5, // n0x0ca8 c0x0000 (---------------)  + I hyuga
-	0x0028a508, // n0x0ca9 c0x0000 (---------------)  + I kadogawa
-	0x00295dca, // n0x0caa c0x0000 (---------------)  + I kawaminami
-	0x002f7044, // n0x0cab c0x0000 (---------------)  + I kijo
-	0x00290a88, // n0x0cac c0x0000 (---------------)  + I kitagawa
-	0x0028a988, // n0x0cad c0x0000 (---------------)  + I kitakata
-	0x002a15c7, // n0x0cae c0x0000 (---------------)  + I kitaura
-	0x00238909, // n0x0caf c0x0000 (---------------)  + I kobayashi
-	0x002b1e88, // n0x0cb0 c0x0000 (---------------)  + I kunitomi
-	0x0027bd47, // n0x0cb1 c0x0000 (---------------)  + I kushima
-	0x002f5546, // n0x0cb2 c0x0000 (---------------)  + I mimata
-	0x0021418a, // n0x0cb3 c0x0000 (---------------)  + I miyakonojo
-	0x002573c8, // n0x0cb4 c0x0000 (---------------)  + I miyazaki
-	0x002b6209, // n0x0cb5 c0x0000 (---------------)  + I morotsuka
-	0x002cf288, // n0x0cb6 c0x0000 (---------------)  + I nichinan
-	0x002279c9, // n0x0cb7 c0x0000 (---------------)  + I nishimera
-	0x002b6687, // n0x0cb8 c0x0000 (---------------)  + I nobeoka
-	0x002741c5, // n0x0cb9 c0x0000 (---------------)  + I saito
-	0x00298ec6, // n0x0cba c0x0000 (---------------)  + I shiiba
-	0x002e24c8, // n0x0cbb c0x0000 (---------------)  + I shintomi
-	0x0027e008, // n0x0cbc c0x0000 (---------------)  + I takaharu
-	0x00342e08, // n0x0cbd c0x0000 (---------------)  + I takanabe
-	0x00243288, // n0x0cbe c0x0000 (---------------)  + I takazaki
-	0x0024bdc5, // n0x0cbf c0x0000 (---------------)  + I tsuno
-	0x00203844, // n0x0cc0 c0x0000 (---------------)  + I achi
-	0x0020d0c8, // n0x0cc1 c0x0000 (---------------)  + I agematsu
-	0x00205884, // n0x0cc2 c0x0000 (---------------)  + I anan
-	0x0021e5c4, // n0x0cc3 c0x0000 (---------------)  + I aoki
-	0x002bac05, // n0x0cc4 c0x0000 (---------------)  + I asahi
-	0x0028cb87, // n0x0cc5 c0x0000 (---------------)  + I azumino
-	0x00226a09, // n0x0cc6 c0x0000 (---------------)  + I chikuhoku
-	0x00272dc7, // n0x0cc7 c0x0000 (---------------)  + I chikuma
-	0x00201ac5, // n0x0cc8 c0x0000 (---------------)  + I chino
-	0x00274b06, // n0x0cc9 c0x0000 (---------------)  + I fujimi
-	0x0034c286, // n0x0cca c0x0000 (---------------)  + I hakuba
-	0x00200a04, // n0x0ccb c0x0000 (---------------)  + I hara
-	0x0029c5c6, // n0x0ccc c0x0000 (---------------)  + I hiraya
-	0x0028c144, // n0x0ccd c0x0000 (---------------)  + I iida
-	0x0028b546, // n0x0cce c0x0000 (---------------)  + I iijima
-	0x00202ac6, // n0x0ccf c0x0000 (---------------)  + I iiyama
-	0x00223846, // n0x0cd0 c0x0000 (---------------)  + I iizuna
-	0x002024c5, // n0x0cd1 c0x0000 (---------------)  + I ikeda
-	0x0028a3c7, // n0x0cd2 c0x0000 (---------------)  + I ikusaka
-	0x0020cd43, // n0x0cd3 c0x0000 (---------------)  + I ina
-	0x00310989, // n0x0cd4 c0x0000 (---------------)  + I karuizawa
-	0x002e3808, // n0x0cd5 c0x0000 (---------------)  + I kawakami
-	0x0027bbc4, // n0x0cd6 c0x0000 (---------------)  + I kiso
-	0x0027bbcd, // n0x0cd7 c0x0000 (---------------)  + I kisofukushima
-	0x0028ff08, // n0x0cd8 c0x0000 (---------------)  + I kitaaiki
-	0x002dcc08, // n0x0cd9 c0x0000 (---------------)  + I komagane
-	0x002b6186, // n0x0cda c0x0000 (---------------)  + I komoro
-	0x00257e09, // n0x0cdb c0x0000 (---------------)  + I matsukawa
-	0x002af789, // n0x0cdc c0x0000 (---------------)  + I matsumoto
-	0x0030f7c5, // n0x0cdd c0x0000 (---------------)  + I miasa
-	0x00295eca, // n0x0cde c0x0000 (---------------)  + I minamiaiki
-	0x0031c50a, // n0x0cdf c0x0000 (---------------)  + I minamimaki
-	0x00286a0c, // n0x0ce0 c0x0000 (---------------)  + I minamiminowa
-	0x00286b86, // n0x0ce1 c0x0000 (---------------)  + I minowa
-	0x00274fc6, // n0x0ce2 c0x0000 (---------------)  + I miyada
-	0x002be786, // n0x0ce3 c0x0000 (---------------)  + I miyota
-	0x0033a809, // n0x0ce4 c0x0000 (---------------)  + I mochizuki
-	0x0020d586, // n0x0ce5 c0x0000 (---------------)  + I nagano
-	0x00237246, // n0x0ce6 c0x0000 (---------------)  + I nagawa
-	0x0036df06, // n0x0ce7 c0x0000 (---------------)  + I nagiso
-	0x0029bf08, // n0x0ce8 c0x0000 (---------------)  + I nakagawa
-	0x002501c6, // n0x0ce9 c0x0000 (---------------)  + I nakano
-	0x0029d60b, // n0x0cea c0x0000 (---------------)  + I nozawaonsen
-	0x0028cd05, // n0x0ceb c0x0000 (---------------)  + I obuse
-	0x0022f3c5, // n0x0cec c0x0000 (---------------)  + I ogawa
-	0x00275245, // n0x0ced c0x0000 (---------------)  + I okaya
-	0x00284e06, // n0x0cee c0x0000 (---------------)  + I omachi
-	0x00214143, // n0x0cef c0x0000 (---------------)  + I omi
-	0x0023e146, // n0x0cf0 c0x0000 (---------------)  + I ookuwa
-	0x00251147, // n0x0cf1 c0x0000 (---------------)  + I ooshika
-	0x002b52c5, // n0x0cf2 c0x0000 (---------------)  + I otaki
-	0x00255b45, // n0x0cf3 c0x0000 (---------------)  + I otari
-	0x002eec85, // n0x0cf4 c0x0000 (---------------)  + I sakae
-	0x003032c6, // n0x0cf5 c0x0000 (---------------)  + I sakaki
-	0x00219884, // n0x0cf6 c0x0000 (---------------)  + I saku
-	0x00219886, // n0x0cf7 c0x0000 (---------------)  + I sakuho
-	0x002c73c9, // n0x0cf8 c0x0000 (---------------)  + I shimosuwa
-	0x00284c8c, // n0x0cf9 c0x0000 (---------------)  + I shinanomachi
-	0x002f2cc8, // n0x0cfa c0x0000 (---------------)  + I shiojiri
-	0x002c7504, // n0x0cfb c0x0000 (---------------)  + I suwa
-	0x002eb546, // n0x0cfc c0x0000 (---------------)  + I suzaka
-	0x00290386, // n0x0cfd c0x0000 (---------------)  + I takagi
-	0x003423c8, // n0x0cfe c0x0000 (---------------)  + I takamori
-	0x002e41c8, // n0x0cff c0x0000 (---------------)  + I takayama
-	0x00284b89, // n0x0d00 c0x0000 (---------------)  + I tateshina
-	0x002662c7, // n0x0d01 c0x0000 (---------------)  + I tatsuno
-	0x0029f809, // n0x0d02 c0x0000 (---------------)  + I togakushi
-	0x00316e86, // n0x0d03 c0x0000 (---------------)  + I togura
-	0x0022a504, // n0x0d04 c0x0000 (---------------)  + I tomi
-	0x0021df44, // n0x0d05 c0x0000 (---------------)  + I ueda
-	0x0027b7c4, // n0x0d06 c0x0000 (---------------)  + I wada
-	0x0027d308, // n0x0d07 c0x0000 (---------------)  + I yamagata
-	0x0022684a, // n0x0d08 c0x0000 (---------------)  + I yamanouchi
-	0x0032db06, // n0x0d09 c0x0000 (---------------)  + I yasaka
-	0x00332b87, // n0x0d0a c0x0000 (---------------)  + I yasuoka
-	0x0022ea47, // n0x0d0b c0x0000 (---------------)  + I chijiwa
-	0x0024bd45, // n0x0d0c c0x0000 (---------------)  + I futsu
-	0x002d8b44, // n0x0d0d c0x0000 (---------------)  + I goto
-	0x002888c6, // n0x0d0e c0x0000 (---------------)  + I hasami
-	0x003588c6, // n0x0d0f c0x0000 (---------------)  + I hirado
-	0x00204843, // n0x0d10 c0x0000 (---------------)  + I iki
-	0x002e3647, // n0x0d11 c0x0000 (---------------)  + I isahaya
-	0x0026a748, // n0x0d12 c0x0000 (---------------)  + I kawatana
-	0x0030f90a, // n0x0d13 c0x0000 (---------------)  + I kuchinotsu
-	0x002c2d08, // n0x0d14 c0x0000 (---------------)  + I matsuura
-	0x00299248, // n0x0d15 c0x0000 (---------------)  + I nagasaki
-	0x0021e9c5, // n0x0d16 c0x0000 (---------------)  + I obama
-	0x00214505, // n0x0d17 c0x0000 (---------------)  + I omura
-	0x0029f745, // n0x0d18 c0x0000 (---------------)  + I oseto
-	0x0024c106, // n0x0d19 c0x0000 (---------------)  + I saikai
-	0x00253246, // n0x0d1a c0x0000 (---------------)  + I sasebo
-	0x002d3205, // n0x0d1b c0x0000 (---------------)  + I seihi
-	0x0036ab89, // n0x0d1c c0x0000 (---------------)  + I shimabara
-	0x002d894c, // n0x0d1d c0x0000 (---------------)  + I shinkamigoto
-	0x00300487, // n0x0d1e c0x0000 (---------------)  + I togitsu
-	0x002913c8, // n0x0d1f c0x0000 (---------------)  + I tsushima
-	0x0027e1c5, // n0x0d20 c0x0000 (---------------)  + I unzen
-	0x00757e04, // n0x0d21 c0x0001 (---------------)  ! I city
-	0x00330604, // n0x0d22 c0x0000 (---------------)  + I ando
-	0x00206cc4, // n0x0d23 c0x0000 (---------------)  + I gose
-	0x003693c6, // n0x0d24 c0x0000 (---------------)  + I heguri
-	0x0029838e, // n0x0d25 c0x0000 (---------------)  + I higashiyoshino
-	0x0020c607, // n0x0d26 c0x0000 (---------------)  + I ikaruga
-	0x0022f5c5, // n0x0d27 c0x0000 (---------------)  + I ikoma
-	0x002954cc, // n0x0d28 c0x0000 (---------------)  + I kamikitayama
-	0x0031b7c7, // n0x0d29 c0x0000 (---------------)  + I kanmaki
-	0x00368c47, // n0x0d2a c0x0000 (---------------)  + I kashiba
-	0x002008c9, // n0x0d2b c0x0000 (---------------)  + I kashihara
-	0x00226589, // n0x0d2c c0x0000 (---------------)  + I katsuragi
-	0x00254bc5, // n0x0d2d c0x0000 (---------------)  + I kawai
-	0x002e3808, // n0x0d2e c0x0000 (---------------)  + I kawakami
-	0x002b6949, // n0x0d2f c0x0000 (---------------)  + I kawanishi
-	0x002e9085, // n0x0d30 c0x0000 (---------------)  + I koryo
-	0x002b5208, // n0x0d31 c0x0000 (---------------)  + I kurotaki
-	0x002c6186, // n0x0d32 c0x0000 (---------------)  + I mitsue
-	0x002de7c6, // n0x0d33 c0x0000 (---------------)  + I miyake
-	0x00268e84, // n0x0d34 c0x0000 (---------------)  + I nara
-	0x0026c8c8, // n0x0d35 c0x0000 (---------------)  + I nosegawa
-	0x00257b83, // n0x0d36 c0x0000 (---------------)  + I oji
-	0x00287704, // n0x0d37 c0x0000 (---------------)  + I ouda
-	0x002cd7c5, // n0x0d38 c0x0000 (---------------)  + I oyodo
-	0x0021c3c7, // n0x0d39 c0x0000 (---------------)  + I sakurai
-	0x00224185, // n0x0d3a c0x0000 (---------------)  + I sango
-	0x0030c6c9, // n0x0d3b c0x0000 (---------------)  + I shimoichi
-	0x002bf8cd, // n0x0d3c c0x0000 (---------------)  + I shimokitayama
-	0x002d2246, // n0x0d3d c0x0000 (---------------)  + I shinjo
-	0x0024d8c4, // n0x0d3e c0x0000 (---------------)  + I soni
-	0x00224ec8, // n0x0d3f c0x0000 (---------------)  + I takatori
-	0x00206f8a, // n0x0d40 c0x0000 (---------------)  + I tawaramoto
-	0x00209587, // n0x0d41 c0x0000 (---------------)  + I tenkawa
-	0x002f4f05, // n0x0d42 c0x0000 (---------------)  + I tenri
-	0x00265803, // n0x0d43 c0x0000 (---------------)  + I uda
-	0x002979ce, // n0x0d44 c0x0000 (---------------)  + I yamatokoriyama
-	0x002956cc, // n0x0d45 c0x0000 (---------------)  + I yamatotakada
-	0x00229347, // n0x0d46 c0x0000 (---------------)  + I yamazoe
-	0x00298547, // n0x0d47 c0x0000 (---------------)  + I yoshino
-	0x00200483, // n0x0d48 c0x0000 (---------------)  + I aga
-	0x0020d5c5, // n0x0d49 c0x0000 (---------------)  + I agano
-	0x00206cc5, // n0x0d4a c0x0000 (---------------)  + I gosen
-	0x00291fc8, // n0x0d4b c0x0000 (---------------)  + I itoigawa
-	0x0028f049, // n0x0d4c c0x0000 (---------------)  + I izumozaki
-	0x00374e86, // n0x0d4d c0x0000 (---------------)  + I joetsu
-	0x00256f04, // n0x0d4e c0x0000 (---------------)  + I kamo
-	0x002e3f46, // n0x0d4f c0x0000 (---------------)  + I kariwa
-	0x0020334b, // n0x0d50 c0x0000 (---------------)  + I kashiwazaki
-	0x002af50c, // n0x0d51 c0x0000 (---------------)  + I minamiuonuma
-	0x0027b287, // n0x0d52 c0x0000 (---------------)  + I mitsuke
-	0x002c6045, // n0x0d53 c0x0000 (---------------)  + I muika
-	0x002854c8, // n0x0d54 c0x0000 (---------------)  + I murakami
-	0x00311a45, // n0x0d55 c0x0000 (---------------)  + I myoko
-	0x00276b87, // n0x0d56 c0x0000 (---------------)  + I nagaoka
-	0x00290607, // n0x0d57 c0x0000 (---------------)  + I niigata
-	0x00257b85, // n0x0d58 c0x0000 (---------------)  + I ojiya
-	0x00214143, // n0x0d59 c0x0000 (---------------)  + I omi
-	0x002a4e44, // n0x0d5a c0x0000 (---------------)  + I sado
-	0x00248105, // n0x0d5b c0x0000 (---------------)  + I sanjo
-	0x003199c5, // n0x0d5c c0x0000 (---------------)  + I seiro
-	0x003199c6, // n0x0d5d c0x0000 (---------------)  + I seirou
-	0x002c49c8, // n0x0d5e c0x0000 (---------------)  + I sekikawa
-	0x00368cc7, // n0x0d5f c0x0000 (---------------)  + I shibata
-	0x00343d86, // n0x0d60 c0x0000 (---------------)  + I tagami
-	0x00237606, // n0x0d61 c0x0000 (---------------)  + I tainai
-	0x00345486, // n0x0d62 c0x0000 (---------------)  + I tochio
-	0x00203709, // n0x0d63 c0x0000 (---------------)  + I tokamachi
-	0x0025f087, // n0x0d64 c0x0000 (---------------)  + I tsubame
-	0x00374d06, // n0x0d65 c0x0000 (---------------)  + I tsunan
-	0x002af686, // n0x0d66 c0x0000 (---------------)  + I uonuma
-	0x00272906, // n0x0d67 c0x0000 (---------------)  + I yahiko
-	0x0020a185, // n0x0d68 c0x0000 (---------------)  + I yoita
-	0x00263246, // n0x0d69 c0x0000 (---------------)  + I yuzawa
-	0x00200e85, // n0x0d6a c0x0000 (---------------)  + I beppu
-	0x002de408, // n0x0d6b c0x0000 (---------------)  + I bungoono
-	0x0028bd8b, // n0x0d6c c0x0000 (---------------)  + I bungotakada
-	0x002886c6, // n0x0d6d c0x0000 (---------------)  + I hasama
-	0x0022ea84, // n0x0d6e c0x0000 (---------------)  + I hiji
-	0x002d98c9, // n0x0d6f c0x0000 (---------------)  + I himeshima
-	0x0029bd44, // n0x0d70 c0x0000 (---------------)  + I hita
-	0x002c6108, // n0x0d71 c0x0000 (---------------)  + I kamitsue
-	0x0028c987, // n0x0d72 c0x0000 (---------------)  + I kokonoe
-	0x00322b44, // n0x0d73 c0x0000 (---------------)  + I kuju
-	0x002b0ec8, // n0x0d74 c0x0000 (---------------)  + I kunisaki
-	0x002b7684, // n0x0d75 c0x0000 (---------------)  + I kusu
-	0x0020a1c4, // n0x0d76 c0x0000 (---------------)  + I oita
-	0x002b8145, // n0x0d77 c0x0000 (---------------)  + I saiki
-	0x002d1a06, // n0x0d78 c0x0000 (---------------)  + I taketa
-	0x00319f87, // n0x0d79 c0x0000 (---------------)  + I tsukumi
-	0x00220203, // n0x0d7a c0x0000 (---------------)  + I usa
-	0x00297445, // n0x0d7b c0x0000 (---------------)  + I usuki
-	0x00364844, // n0x0d7c c0x0000 (---------------)  + I yufu
-	0x00350086, // n0x0d7d c0x0000 (---------------)  + I akaiwa
-	0x0030f848, // n0x0d7e c0x0000 (---------------)  + I asakuchi
-	0x00314c45, // n0x0d7f c0x0000 (---------------)  + I bizen
-	0x0028ba49, // n0x0d80 c0x0000 (---------------)  + I hayashima
-	0x002ca685, // n0x0d81 c0x0000 (---------------)  + I ibara
-	0x00280488, // n0x0d82 c0x0000 (---------------)  + I kagamino
-	0x0035e687, // n0x0d83 c0x0000 (---------------)  + I kasaoka
-	0x002b4e08, // n0x0d84 c0x0000 (---------------)  + I kibichuo
-	0x002b0587, // n0x0d85 c0x0000 (---------------)  + I kumenan
-	0x002f2509, // n0x0d86 c0x0000 (---------------)  + I kurashiki
-	0x00266e86, // n0x0d87 c0x0000 (---------------)  + I maniwa
-	0x002dc5c6, // n0x0d88 c0x0000 (---------------)  + I misaki
-	0x002c3c84, // n0x0d89 c0x0000 (---------------)  + I nagi
-	0x00293e05, // n0x0d8a c0x0000 (---------------)  + I niimi
-	0x002164cc, // n0x0d8b c0x0000 (---------------)  + I nishiawakura
-	0x00275247, // n0x0d8c c0x0000 (---------------)  + I okayama
-	0x00276187, // n0x0d8d c0x0000 (---------------)  + I satosho
-	0x0022e908, // n0x0d8e c0x0000 (---------------)  + I setouchi
-	0x002d2246, // n0x0d8f c0x0000 (---------------)  + I shinjo
-	0x0029b444, // n0x0d90 c0x0000 (---------------)  + I shoo
-	0x0033e544, // n0x0d91 c0x0000 (---------------)  + I soja
-	0x00290749, // n0x0d92 c0x0000 (---------------)  + I takahashi
-	0x002be886, // n0x0d93 c0x0000 (---------------)  + I tamano
-	0x00291b47, // n0x0d94 c0x0000 (---------------)  + I tsuyama
-	0x002e7c44, // n0x0d95 c0x0000 (---------------)  + I wake
-	0x0029c6c6, // n0x0d96 c0x0000 (---------------)  + I yakage
-	0x00368845, // n0x0d97 c0x0000 (---------------)  + I aguni
-	0x00290487, // n0x0d98 c0x0000 (---------------)  + I ginowan
-	0x0029d586, // n0x0d99 c0x0000 (---------------)  + I ginoza
-	0x00249b09, // n0x0d9a c0x0000 (---------------)  + I gushikami
-	0x0031c347, // n0x0d9b c0x0000 (---------------)  + I haebaru
-	0x00263ec7, // n0x0d9c c0x0000 (---------------)  + I higashi
-	0x0029c106, // n0x0d9d c0x0000 (---------------)  + I hirara
-	0x00369505, // n0x0d9e c0x0000 (---------------)  + I iheya
-	0x0027ba48, // n0x0d9f c0x0000 (---------------)  + I ishigaki
-	0x00226fc8, // n0x0da0 c0x0000 (---------------)  + I ishikawa
-	0x00334986, // n0x0da1 c0x0000 (---------------)  + I itoman
-	0x00314c85, // n0x0da2 c0x0000 (---------------)  + I izena
-	0x00276846, // n0x0da3 c0x0000 (---------------)  + I kadena
-	0x00214ac3, // n0x0da4 c0x0000 (---------------)  + I kin
-	0x00291e49, // n0x0da5 c0x0000 (---------------)  + I kitadaito
-	0x002960ce, // n0x0da6 c0x0000 (---------------)  + I kitanakagusuku
-	0x002afd48, // n0x0da7 c0x0000 (---------------)  + I kumejima
-	0x0033f808, // n0x0da8 c0x0000 (---------------)  + I kunigami
-	0x0033478b, // n0x0da9 c0x0000 (---------------)  + I minamidaito
-	0x0028bc86, // n0x0daa c0x0000 (---------------)  + I motobu
-	0x002507c4, // n0x0dab c0x0000 (---------------)  + I nago
-	0x0027e384, // n0x0dac c0x0000 (---------------)  + I naha
-	0x002961ca, // n0x0dad c0x0000 (---------------)  + I nakagusuku
-	0x002137c7, // n0x0dae c0x0000 (---------------)  + I nakijin
-	0x00374dc5, // n0x0daf c0x0000 (---------------)  + I nanjo
-	0x00221449, // n0x0db0 c0x0000 (---------------)  + I nishihara
-	0x002b3bc5, // n0x0db1 c0x0000 (---------------)  + I ogimi
-	0x0021e607, // n0x0db2 c0x0000 (---------------)  + I okinawa
-	0x0022ae44, // n0x0db3 c0x0000 (---------------)  + I onna
-	0x002ad107, // n0x0db4 c0x0000 (---------------)  + I shimoji
-	0x00262448, // n0x0db5 c0x0000 (---------------)  + I taketomi
-	0x002dcec6, // n0x0db6 c0x0000 (---------------)  + I tarama
-	0x002fdc49, // n0x0db7 c0x0000 (---------------)  + I tokashiki
-	0x002b1f8a, // n0x0db8 c0x0000 (---------------)  + I tomigusuku
-	0x00213746, // n0x0db9 c0x0000 (---------------)  + I tonaki
-	0x0028fa46, // n0x0dba c0x0000 (---------------)  + I urasoe
-	0x002a8985, // n0x0dbb c0x0000 (---------------)  + I uruma
-	0x0034af45, // n0x0dbc c0x0000 (---------------)  + I yaese
-	0x002e7187, // n0x0dbd c0x0000 (---------------)  + I yomitan
-	0x00301fc8, // n0x0dbe c0x0000 (---------------)  + I yonabaru
-	0x00368788, // n0x0dbf c0x0000 (---------------)  + I yonaguni
-	0x00244b46, // n0x0dc0 c0x0000 (---------------)  + I zamami
-	0x002ec1c5, // n0x0dc1 c0x0000 (---------------)  + I abeno
-	0x002508ce, // n0x0dc2 c0x0000 (---------------)  + I chihayaakasaka
-	0x002606c4, // n0x0dc3 c0x0000 (---------------)  + I chuo
-	0x00291f45, // n0x0dc4 c0x0000 (---------------)  + I daito
-	0x00274489, // n0x0dc5 c0x0000 (---------------)  + I fujiidera
-	0x002549c8, // n0x0dc6 c0x0000 (---------------)  + I habikino
-	0x00286006, // n0x0dc7 c0x0000 (---------------)  + I hannan
-	0x002945cc, // n0x0dc8 c0x0000 (---------------)  + I higashiosaka
-	0x002959d0, // n0x0dc9 c0x0000 (---------------)  + I higashisumiyoshi
-	0x00297fcf, // n0x0dca c0x0000 (---------------)  + I higashiyodogawa
-	0x0029b548, // n0x0dcb c0x0000 (---------------)  + I hirakata
-	0x0032cd07, // n0x0dcc c0x0000 (---------------)  + I ibaraki
-	0x002024c5, // n0x0dcd c0x0000 (---------------)  + I ikeda
-	0x00264305, // n0x0dce c0x0000 (---------------)  + I izumi
-	0x00319e09, // n0x0dcf c0x0000 (---------------)  + I izumiotsu
-	0x0032d049, // n0x0dd0 c0x0000 (---------------)  + I izumisano
-	0x0023ca46, // n0x0dd1 c0x0000 (---------------)  + I kadoma
-	0x002f8947, // n0x0dd2 c0x0000 (---------------)  + I kaizuka
-	0x00205845, // n0x0dd3 c0x0000 (---------------)  + I kanan
-	0x00202249, // n0x0dd4 c0x0000 (---------------)  + I kashiwara
-	0x0032f846, // n0x0dd5 c0x0000 (---------------)  + I katano
-	0x0020d3cd, // n0x0dd6 c0x0000 (---------------)  + I kawachinagano
-	0x0027b689, // n0x0dd7 c0x0000 (---------------)  + I kishiwada
-	0x00213344, // n0x0dd8 c0x0000 (---------------)  + I kita
-	0x002afac8, // n0x0dd9 c0x0000 (---------------)  + I kumatori
-	0x0020d189, // n0x0dda c0x0000 (---------------)  + I matsubara
-	0x0032dcc6, // n0x0ddb c0x0000 (---------------)  + I minato
-	0x00274c05, // n0x0ddc c0x0000 (---------------)  + I minoh
-	0x002dc5c6, // n0x0ddd c0x0000 (---------------)  + I misaki
-	0x002c5089, // n0x0dde c0x0000 (---------------)  + I moriguchi
-	0x002cff88, // n0x0ddf c0x0000 (---------------)  + I neyagawa
-	0x002164c5, // n0x0de0 c0x0000 (---------------)  + I nishi
-	0x0026c8c4, // n0x0de1 c0x0000 (---------------)  + I nose
-	0x0029478b, // n0x0de2 c0x0000 (---------------)  + I osakasayama
-	0x0032db85, // n0x0de3 c0x0000 (---------------)  + I sakai
-	0x00252846, // n0x0de4 c0x0000 (---------------)  + I sayama
-	0x002c66c6, // n0x0de5 c0x0000 (---------------)  + I sennan
-	0x002a6a46, // n0x0de6 c0x0000 (---------------)  + I settsu
-	0x00238a8b, // n0x0de7 c0x0000 (---------------)  + I shijonawate
-	0x0028bb49, // n0x0de8 c0x0000 (---------------)  + I shimamoto
-	0x00309a05, // n0x0de9 c0x0000 (---------------)  + I suita
-	0x00258e07, // n0x0dea c0x0000 (---------------)  + I tadaoka
-	0x0022db06, // n0x0deb c0x0000 (---------------)  + I taishi
-	0x0027ce06, // n0x0dec c0x0000 (---------------)  + I tajiri
-	0x002a3dc8, // n0x0ded c0x0000 (---------------)  + I takaishi
-	0x00341b49, // n0x0dee c0x0000 (---------------)  + I takatsuki
-	0x002c238c, // n0x0def c0x0000 (---------------)  + I tondabayashi
-	0x00243748, // n0x0df0 c0x0000 (---------------)  + I toyonaka
-	0x002492c6, // n0x0df1 c0x0000 (---------------)  + I toyono
-	0x00324903, // n0x0df2 c0x0000 (---------------)  + I yao
-	0x0028e746, // n0x0df3 c0x0000 (---------------)  + I ariake
-	0x00298d05, // n0x0df4 c0x0000 (---------------)  + I arita
-	0x00279748, // n0x0df5 c0x0000 (---------------)  + I fukudomi
-	0x00220986, // n0x0df6 c0x0000 (---------------)  + I genkai
-	0x0020a6c8, // n0x0df7 c0x0000 (---------------)  + I hamatama
-	0x00253b85, // n0x0df8 c0x0000 (---------------)  + I hizen
-	0x0033de85, // n0x0df9 c0x0000 (---------------)  + I imari
-	0x0035e908, // n0x0dfa c0x0000 (---------------)  + I kamimine
-	0x002517c7, // n0x0dfb c0x0000 (---------------)  + I kanzaki
-	0x003439c7, // n0x0dfc c0x0000 (---------------)  + I karatsu
-	0x002d1b87, // n0x0dfd c0x0000 (---------------)  + I kashima
-	0x0027cc88, // n0x0dfe c0x0000 (---------------)  + I kitagata
-	0x002a3ac8, // n0x0dff c0x0000 (---------------)  + I kitahata
-	0x00260386, // n0x0e00 c0x0000 (---------------)  + I kiyama
-	0x002aa0c7, // n0x0e01 c0x0000 (---------------)  + I kouhoku
-	0x00279b47, // n0x0e02 c0x0000 (---------------)  + I kyuragi
-	0x00298bca, // n0x0e03 c0x0000 (---------------)  + I nishiarita
-	0x0024ba83, // n0x0e04 c0x0000 (---------------)  + I ogi
-	0x00284e06, // n0x0e05 c0x0000 (---------------)  + I omachi
-	0x00226985, // n0x0e06 c0x0000 (---------------)  + I ouchi
-	0x00283fc4, // n0x0e07 c0x0000 (---------------)  + I saga
-	0x00277f09, // n0x0e08 c0x0000 (---------------)  + I shiroishi
-	0x002f2484, // n0x0e09 c0x0000 (---------------)  + I taku
-	0x002ac844, // n0x0e0a c0x0000 (---------------)  + I tara
-	0x00290204, // n0x0e0b c0x0000 (---------------)  + I tosu
-	0x0029854b, // n0x0e0c c0x0000 (---------------)  + I yoshinogari
-	0x0020d307, // n0x0e0d c0x0000 (---------------)  + I arakawa
-	0x00250b05, // n0x0e0e c0x0000 (---------------)  + I asaka
-	0x0028e188, // n0x0e0f c0x0000 (---------------)  + I chichibu
-	0x00274b06, // n0x0e10 c0x0000 (---------------)  + I fujimi
-	0x00274b08, // n0x0e11 c0x0000 (---------------)  + I fujimino
-	0x00278d46, // n0x0e12 c0x0000 (---------------)  + I fukaya
-	0x002864c5, // n0x0e13 c0x0000 (---------------)  + I hanno
-	0x00286d05, // n0x0e14 c0x0000 (---------------)  + I hanyu
-	0x002893c6, // n0x0e15 c0x0000 (---------------)  + I hasuda
-	0x00289dc8, // n0x0e16 c0x0000 (---------------)  + I hatogaya
-	0x0028a708, // n0x0e17 c0x0000 (---------------)  + I hatoyama
-	0x002780c6, // n0x0e18 c0x0000 (---------------)  + I hidaka
-	0x0028dfcf, // n0x0e19 c0x0000 (---------------)  + I higashichichibu
-	0x00291910, // n0x0e1a c0x0000 (---------------)  + I higashimatsuyama
-	0x0020a045, // n0x0e1b c0x0000 (---------------)  + I honjo
-	0x0020cd43, // n0x0e1c c0x0000 (---------------)  + I ina
-	0x00287005, // n0x0e1d c0x0000 (---------------)  + I iruma
-	0x002a9608, // n0x0e1e c0x0000 (---------------)  + I iwatsuki
-	0x0032cf49, // n0x0e1f c0x0000 (---------------)  + I kamiizumi
-	0x00212748, // n0x0e20 c0x0000 (---------------)  + I kamikawa
-	0x0032df48, // n0x0e21 c0x0000 (---------------)  + I kamisato
-	0x00207548, // n0x0e22 c0x0000 (---------------)  + I kasukabe
-	0x00250bc7, // n0x0e23 c0x0000 (---------------)  + I kawagoe
-	0x002747c9, // n0x0e24 c0x0000 (---------------)  + I kawaguchi
-	0x0020a8c8, // n0x0e25 c0x0000 (---------------)  + I kawajima
-	0x00235ac4, // n0x0e26 c0x0000 (---------------)  + I kazo
-	0x00290088, // n0x0e27 c0x0000 (---------------)  + I kitamoto
-	0x002b4b49, // n0x0e28 c0x0000 (---------------)  + I koshigaya
-	0x002aae87, // n0x0e29 c0x0000 (---------------)  + I kounosu
-	0x002b2184, // n0x0e2a c0x0000 (---------------)  + I kuki
-	0x00272e88, // n0x0e2b c0x0000 (---------------)  + I kumagaya
-	0x0028a18a, // n0x0e2c c0x0000 (---------------)  + I matsubushi
-	0x002c1a86, // n0x0e2d c0x0000 (---------------)  + I minano
-	0x002625c6, // n0x0e2e c0x0000 (---------------)  + I misato
-	0x00228309, // n0x0e2f c0x0000 (---------------)  + I miyashiro
-	0x00295c07, // n0x0e30 c0x0000 (---------------)  + I miyoshi
-	0x002c2b88, // n0x0e31 c0x0000 (---------------)  + I moroyama
-	0x00201108, // n0x0e32 c0x0000 (---------------)  + I nagatoro
-	0x0025ec88, // n0x0e33 c0x0000 (---------------)  + I namegawa
-	0x0020f7c5, // n0x0e34 c0x0000 (---------------)  + I niiza
-	0x0034bac5, // n0x0e35 c0x0000 (---------------)  + I ogano
-	0x0022f3c5, // n0x0e36 c0x0000 (---------------)  + I ogawa
-	0x00206c85, // n0x0e37 c0x0000 (---------------)  + I ogose
-	0x002f5c47, // n0x0e38 c0x0000 (---------------)  + I okegawa
-	0x00214145, // n0x0e39 c0x0000 (---------------)  + I omiya
-	0x002b52c5, // n0x0e3a c0x0000 (---------------)  + I otaki
-	0x00216386, // n0x0e3b c0x0000 (---------------)  + I ranzan
-	0x00212687, // n0x0e3c c0x0000 (---------------)  + I ryokami
-	0x00357207, // n0x0e3d c0x0000 (---------------)  + I saitama
-	0x0028a486, // n0x0e3e c0x0000 (---------------)  + I sakado
-	0x002c90c5, // n0x0e3f c0x0000 (---------------)  + I satte
-	0x00252846, // n0x0e40 c0x0000 (---------------)  + I sayama
-	0x00256cc5, // n0x0e41 c0x0000 (---------------)  + I shiki
-	0x0031ef48, // n0x0e42 c0x0000 (---------------)  + I shiraoka
-	0x0031a984, // n0x0e43 c0x0000 (---------------)  + I soka
-	0x002bc3c6, // n0x0e44 c0x0000 (---------------)  + I sugito
-	0x00209e44, // n0x0e45 c0x0000 (---------------)  + I toda
-	0x00221c48, // n0x0e46 c0x0000 (---------------)  + I tokigawa
-	0x00353f8a, // n0x0e47 c0x0000 (---------------)  + I tokorozawa
-	0x0028288c, // n0x0e48 c0x0000 (---------------)  + I tsurugashima
-	0x00207f05, // n0x0e49 c0x0000 (---------------)  + I urawa
-	0x00202386, // n0x0e4a c0x0000 (---------------)  + I warabi
-	0x002c2546, // n0x0e4b c0x0000 (---------------)  + I yashio
-	0x0036dd06, // n0x0e4c c0x0000 (---------------)  + I yokoze
-	0x00249344, // n0x0e4d c0x0000 (---------------)  + I yono
-	0x00368b05, // n0x0e4e c0x0000 (---------------)  + I yorii
-	0x00278b87, // n0x0e4f c0x0000 (---------------)  + I yoshida
-	0x00295c89, // n0x0e50 c0x0000 (---------------)  + I yoshikawa
-	0x0029df47, // n0x0e51 c0x0000 (---------------)  + I yoshimi
-	0x00757e04, // n0x0e52 c0x0001 (---------------)  ! I city
-	0x00757e04, // n0x0e53 c0x0001 (---------------)  ! I city
-	0x002b4505, // n0x0e54 c0x0000 (---------------)  + I aisho
-	0x00349a04, // n0x0e55 c0x0000 (---------------)  + I gamo
-	0x002934ca, // n0x0e56 c0x0000 (---------------)  + I higashiomi
-	0x00274986, // n0x0e57 c0x0000 (---------------)  + I hikone
-	0x0032dec4, // n0x0e58 c0x0000 (---------------)  + I koka
-	0x002bc005, // n0x0e59 c0x0000 (---------------)  + I konan
-	0x002f1705, // n0x0e5a c0x0000 (---------------)  + I kosei
-	0x003587c4, // n0x0e5b c0x0000 (---------------)  + I koto
-	0x0027e707, // n0x0e5c c0x0000 (---------------)  + I kusatsu
-	0x002ca607, // n0x0e5d c0x0000 (---------------)  + I maibara
-	0x002c1c08, // n0x0e5e c0x0000 (---------------)  + I moriyama
-	0x00299d88, // n0x0e5f c0x0000 (---------------)  + I nagahama
-	0x00217749, // n0x0e60 c0x0000 (---------------)  + I nishiazai
-	0x0032f948, // n0x0e61 c0x0000 (---------------)  + I notogawa
-	0x0029368b, // n0x0e62 c0x0000 (---------------)  + I omihachiman
-	0x002589c4, // n0x0e63 c0x0000 (---------------)  + I otsu
-	0x003003c5, // n0x0e64 c0x0000 (---------------)  + I ritto
-	0x002590c5, // n0x0e65 c0x0000 (---------------)  + I ryuoh
-	0x002d1b09, // n0x0e66 c0x0000 (---------------)  + I takashima
-	0x00341b49, // n0x0e67 c0x0000 (---------------)  + I takatsuki
-	0x002d97c8, // n0x0e68 c0x0000 (---------------)  + I torahime
-	0x00253408, // n0x0e69 c0x0000 (---------------)  + I toyosato
-	0x002a1784, // n0x0e6a c0x0000 (---------------)  + I yasu
-	0x002903c5, // n0x0e6b c0x0000 (---------------)  + I akagi
-	0x00200283, // n0x0e6c c0x0000 (---------------)  + I ama
-	0x002a3985, // n0x0e6d c0x0000 (---------------)  + I gotsu
-	0x002927c6, // n0x0e6e c0x0000 (---------------)  + I hamada
-	0x0028ee8c, // n0x0e6f c0x0000 (---------------)  + I higashiizumo
-	0x00227046, // n0x0e70 c0x0000 (---------------)  + I hikawa
-	0x00256d06, // n0x0e71 c0x0000 (---------------)  + I hikimi
-	0x00286285, // n0x0e72 c0x0000 (---------------)  + I izumo
-	0x00303348, // n0x0e73 c0x0000 (---------------)  + I kakinoki
-	0x002ac106, // n0x0e74 c0x0000 (---------------)  + I masuda
-	0x002a9c86, // n0x0e75 c0x0000 (---------------)  + I matsue
-	0x002625c6, // n0x0e76 c0x0000 (---------------)  + I misato
-	0x0022b3cc, // n0x0e77 c0x0000 (---------------)  + I nishinoshima
-	0x0026c444, // n0x0e78 c0x0000 (---------------)  + I ohda
-	0x003455ca, // n0x0e79 c0x0000 (---------------)  + I okinoshima
-	0x002861c8, // n0x0e7a c0x0000 (---------------)  + I okuizumo
-	0x0028ecc7, // n0x0e7b c0x0000 (---------------)  + I shimane
-	0x00364746, // n0x0e7c c0x0000 (---------------)  + I tamayu
-	0x002d2ec7, // n0x0e7d c0x0000 (---------------)  + I tsuwano
-	0x002d6e85, // n0x0e7e c0x0000 (---------------)  + I unnan
-	0x003695c6, // n0x0e7f c0x0000 (---------------)  + I yakumo
-	0x00330a06, // n0x0e80 c0x0000 (---------------)  + I yasugi
-	0x00343887, // n0x0e81 c0x0000 (---------------)  + I yatsuka
-	0x002a9544, // n0x0e82 c0x0000 (---------------)  + I arai
-	0x0030f705, // n0x0e83 c0x0000 (---------------)  + I atami
-	0x00274484, // n0x0e84 c0x0000 (---------------)  + I fuji
-	0x002f3007, // n0x0e85 c0x0000 (---------------)  + I fujieda
-	0x002746c8, // n0x0e86 c0x0000 (---------------)  + I fujikawa
-	0x00274e4a, // n0x0e87 c0x0000 (---------------)  + I fujinomiya
-	0x0027b8c7, // n0x0e88 c0x0000 (---------------)  + I fukuroi
-	0x0029db47, // n0x0e89 c0x0000 (---------------)  + I gotemba
-	0x0032cc87, // n0x0e8a c0x0000 (---------------)  + I haibara
-	0x00311b89, // n0x0e8b c0x0000 (---------------)  + I hamamatsu
-	0x0028ee8a, // n0x0e8c c0x0000 (---------------)  + I higashiizu
-	0x0022a4c3, // n0x0e8d c0x0000 (---------------)  + I ito
-	0x0034e745, // n0x0e8e c0x0000 (---------------)  + I iwata
-	0x00220183, // n0x0e8f c0x0000 (---------------)  + I izu
-	0x002f5309, // n0x0e90 c0x0000 (---------------)  + I izunokuni
-	0x0028c508, // n0x0e91 c0x0000 (---------------)  + I kakegawa
-	0x0031f0c7, // n0x0e92 c0x0000 (---------------)  + I kannami
-	0x00212849, // n0x0e93 c0x0000 (---------------)  + I kawanehon
-	0x002270c6, // n0x0e94 c0x0000 (---------------)  + I kawazu
-	0x0022dd88, // n0x0e95 c0x0000 (---------------)  + I kikugawa
-	0x002ed185, // n0x0e96 c0x0000 (---------------)  + I kosai
-	0x0031504a, // n0x0e97 c0x0000 (---------------)  + I makinohara
-	0x002ca149, // n0x0e98 c0x0000 (---------------)  + I matsuzaki
-	0x0026b6c9, // n0x0e99 c0x0000 (---------------)  + I minamiizu
-	0x002bb107, // n0x0e9a c0x0000 (---------------)  + I mishima
-	0x00291649, // n0x0e9b c0x0000 (---------------)  + I morimachi
-	0x00223748, // n0x0e9c c0x0000 (---------------)  + I nishiizu
-	0x002eb906, // n0x0e9d c0x0000 (---------------)  + I numazu
-	0x0022f648, // n0x0e9e c0x0000 (---------------)  + I omaezaki
-	0x0020d8c7, // n0x0e9f c0x0000 (---------------)  + I shimada
-	0x0024b147, // n0x0ea0 c0x0000 (---------------)  + I shimizu
-	0x002dd247, // n0x0ea1 c0x0000 (---------------)  + I shimoda
-	0x002dd488, // n0x0ea2 c0x0000 (---------------)  + I shizuoka
-	0x002eb3c6, // n0x0ea3 c0x0000 (---------------)  + I susono
-	0x00289f45, // n0x0ea4 c0x0000 (---------------)  + I yaizu
-	0x00278b87, // n0x0ea5 c0x0000 (---------------)  + I yoshida
-	0x0028f548, // n0x0ea6 c0x0000 (---------------)  + I ashikaga
-	0x00335a44, // n0x0ea7 c0x0000 (---------------)  + I bato
-	0x00324084, // n0x0ea8 c0x0000 (---------------)  + I haga
-	0x002e3a07, // n0x0ea9 c0x0000 (---------------)  + I ichikai
-	0x00265447, // n0x0eaa c0x0000 (---------------)  + I iwafune
-	0x002b67ca, // n0x0eab c0x0000 (---------------)  + I kaminokawa
-	0x002eb886, // n0x0eac c0x0000 (---------------)  + I kanuma
-	0x002f8a8a, // n0x0ead c0x0000 (---------------)  + I karasuyama
-	0x002b4007, // n0x0eae c0x0000 (---------------)  + I kuroiso
-	0x00260487, // n0x0eaf c0x0000 (---------------)  + I mashiko
-	0x0022bf84, // n0x0eb0 c0x0000 (---------------)  + I mibu
-	0x002b7984, // n0x0eb1 c0x0000 (---------------)  + I moka
-	0x0023b746, // n0x0eb2 c0x0000 (---------------)  + I motegi
-	0x003725c4, // n0x0eb3 c0x0000 (---------------)  + I nasu
-	0x003725cc, // n0x0eb4 c0x0000 (---------------)  + I nasushiobara
-	0x0020fc85, // n0x0eb5 c0x0000 (---------------)  + I nikko
-	0x00224d09, // n0x0eb6 c0x0000 (---------------)  + I nishikata
-	0x00280604, // n0x0eb7 c0x0000 (---------------)  + I nogi
-	0x0029b505, // n0x0eb8 c0x0000 (---------------)  + I ohira
-	0x00206f08, // n0x0eb9 c0x0000 (---------------)  + I ohtawara
-	0x0028a7c5, // n0x0eba c0x0000 (---------------)  + I oyama
-	0x0021a006, // n0x0ebb c0x0000 (---------------)  + I sakura
-	0x0032d184, // n0x0ebc c0x0000 (---------------)  + I sano
-	0x002c888a, // n0x0ebd c0x0000 (---------------)  + I shimotsuke
-	0x002f3846, // n0x0ebe c0x0000 (---------------)  + I shioya
-	0x0028ab0a, // n0x0ebf c0x0000 (---------------)  + I takanezawa
-	0x00335ac7, // n0x0ec0 c0x0000 (---------------)  + I tochigi
-	0x002040c5, // n0x0ec1 c0x0000 (---------------)  + I tsuga
-	0x00216045, // n0x0ec2 c0x0000 (---------------)  + I ujiie
-	0x0024bd8a, // n0x0ec3 c0x0000 (---------------)  + I utsunomiya
-	0x00257c45, // n0x0ec4 c0x0000 (---------------)  + I yaita
-	0x0029b106, // n0x0ec5 c0x0000 (---------------)  + I aizumi
-	0x00205884, // n0x0ec6 c0x0000 (---------------)  + I anan
-	0x002b0846, // n0x0ec7 c0x0000 (---------------)  + I ichiba
-	0x002e7245, // n0x0ec8 c0x0000 (---------------)  + I itano
-	0x00220a46, // n0x0ec9 c0x0000 (---------------)  + I kainan
-	0x0032c6cc, // n0x0eca c0x0000 (---------------)  + I komatsushima
-	0x002c1d8a, // n0x0ecb c0x0000 (---------------)  + I matsushige
-	0x002f5544, // n0x0ecc c0x0000 (---------------)  + I mima
-	0x0024b386, // n0x0ecd c0x0000 (---------------)  + I minami
-	0x00295c07, // n0x0ece c0x0000 (---------------)  + I miyoshi
-	0x002c5a84, // n0x0ecf c0x0000 (---------------)  + I mugi
-	0x0029bf08, // n0x0ed0 c0x0000 (---------------)  + I nakagawa
-	0x00353e86, // n0x0ed1 c0x0000 (---------------)  + I naruto
-	0x00250749, // n0x0ed2 c0x0000 (---------------)  + I sanagochi
-	0x0033a0c9, // n0x0ed3 c0x0000 (---------------)  + I shishikui
-	0x002e1f89, // n0x0ed4 c0x0000 (---------------)  + I tokushima
-	0x00294086, // n0x0ed5 c0x0000 (---------------)  + I wajiki
-	0x0020d9c6, // n0x0ed6 c0x0000 (---------------)  + I adachi
-	0x0022f787, // n0x0ed7 c0x0000 (---------------)  + I akiruno
-	0x0036aac8, // n0x0ed8 c0x0000 (---------------)  + I akishima
-	0x0020d7c9, // n0x0ed9 c0x0000 (---------------)  + I aogashima
-	0x0020d307, // n0x0eda c0x0000 (---------------)  + I arakawa
-	0x0028e306, // n0x0edb c0x0000 (---------------)  + I bunkyo
-	0x00374b47, // n0x0edc c0x0000 (---------------)  + I chiyoda
-	0x002a4b45, // n0x0edd c0x0000 (---------------)  + I chofu
-	0x002606c4, // n0x0ede c0x0000 (---------------)  + I chuo
-	0x0022f347, // n0x0edf c0x0000 (---------------)  + I edogawa
-	0x0028c305, // n0x0ee0 c0x0000 (---------------)  + I fuchu
-	0x002811c5, // n0x0ee1 c0x0000 (---------------)  + I fussa
-	0x0023b1c7, // n0x0ee2 c0x0000 (---------------)  + I hachijo
-	0x00257a48, // n0x0ee3 c0x0000 (---------------)  + I hachioji
-	0x00285446, // n0x0ee4 c0x0000 (---------------)  + I hamura
-	0x00290c8d, // n0x0ee5 c0x0000 (---------------)  + I higashikurume
-	0x002921cf, // n0x0ee6 c0x0000 (---------------)  + I higashimurayama
-	0x0029780d, // n0x0ee7 c0x0000 (---------------)  + I higashiyamato
-	0x00201b04, // n0x0ee8 c0x0000 (---------------)  + I hino
-	0x00238406, // n0x0ee9 c0x0000 (---------------)  + I hinode
-	0x002ca908, // n0x0eea c0x0000 (---------------)  + I hinohara
-	0x0036dec5, // n0x0eeb c0x0000 (---------------)  + I inagi
-	0x00298d88, // n0x0eec c0x0000 (---------------)  + I itabashi
-	0x002a208a, // n0x0eed c0x0000 (---------------)  + I katsushika
-	0x00213344, // n0x0eee c0x0000 (---------------)  + I kita
-	0x002cdf46, // n0x0eef c0x0000 (---------------)  + I kiyose
-	0x00240207, // n0x0ef0 c0x0000 (---------------)  + I kodaira
-	0x002df047, // n0x0ef1 c0x0000 (---------------)  + I koganei
-	0x00367d49, // n0x0ef2 c0x0000 (---------------)  + I kokubunji
-	0x0022f605, // n0x0ef3 c0x0000 (---------------)  + I komae
-	0x003587c4, // n0x0ef4 c0x0000 (---------------)  + I koto
-	0x002abf0a, // n0x0ef5 c0x0000 (---------------)  + I kouzushima
-	0x002b1409, // n0x0ef6 c0x0000 (---------------)  + I kunitachi
-	0x00291747, // n0x0ef7 c0x0000 (---------------)  + I machida
-	0x002dda46, // n0x0ef8 c0x0000 (---------------)  + I meguro
-	0x0032dcc6, // n0x0ef9 c0x0000 (---------------)  + I minato
-	0x00290306, // n0x0efa c0x0000 (---------------)  + I mitaka
-	0x0023e346, // n0x0efb c0x0000 (---------------)  + I mizuho
-	0x002c9e0f, // n0x0efc c0x0000 (---------------)  + I musashimurayama
-	0x002ca7c9, // n0x0efd c0x0000 (---------------)  + I musashino
-	0x002501c6, // n0x0efe c0x0000 (---------------)  + I nakano
-	0x0033ddc6, // n0x0eff c0x0000 (---------------)  + I nerima
-	0x0036b4c9, // n0x0f00 c0x0000 (---------------)  + I ogasawara
-	0x002aa1c7, // n0x0f01 c0x0000 (---------------)  + I okutama
-	0x00219d43, // n0x0f02 c0x0000 (---------------)  + I ome
-	0x0022b546, // n0x0f03 c0x0000 (---------------)  + I oshima
-	0x00213d43, // n0x0f04 c0x0000 (---------------)  + I ota
-	0x002d0908, // n0x0f05 c0x0000 (---------------)  + I setagaya
-	0x00234507, // n0x0f06 c0x0000 (---------------)  + I shibuya
-	0x0029b749, // n0x0f07 c0x0000 (---------------)  + I shinagawa
-	0x002d7688, // n0x0f08 c0x0000 (---------------)  + I shinjuku
-	0x00343b08, // n0x0f09 c0x0000 (---------------)  + I suginami
-	0x00265c06, // n0x0f0a c0x0000 (---------------)  + I sumida
-	0x00309ac9, // n0x0f0b c0x0000 (---------------)  + I tachikawa
-	0x00316dc5, // n0x0f0c c0x0000 (---------------)  + I taito
-	0x0020a7c4, // n0x0f0d c0x0000 (---------------)  + I tama
-	0x00313287, // n0x0f0e c0x0000 (---------------)  + I toshima
-	0x0033a885, // n0x0f0f c0x0000 (---------------)  + I chizu
-	0x00201b04, // n0x0f10 c0x0000 (---------------)  + I hino
-	0x00280d88, // n0x0f11 c0x0000 (---------------)  + I kawahara
-	0x00204a84, // n0x0f12 c0x0000 (---------------)  + I koge
-	0x0035b787, // n0x0f13 c0x0000 (---------------)  + I kotoura
-	0x002e46c6, // n0x0f14 c0x0000 (---------------)  + I misasa
-	0x002c6785, // n0x0f15 c0x0000 (---------------)  + I nanbu
-	0x002cf288, // n0x0f16 c0x0000 (---------------)  + I nichinan
-	0x0032db8b, // n0x0f17 c0x0000 (---------------)  + I sakaiminato
-	0x002fb3c7, // n0x0f18 c0x0000 (---------------)  + I tottori
-	0x0024c006, // n0x0f19 c0x0000 (---------------)  + I wakasa
-	0x002bdd84, // n0x0f1a c0x0000 (---------------)  + I yazu
-	0x00319306, // n0x0f1b c0x0000 (---------------)  + I yonago
-	0x002bac05, // n0x0f1c c0x0000 (---------------)  + I asahi
-	0x0028c305, // n0x0f1d c0x0000 (---------------)  + I fuchu
-	0x0027b189, // n0x0f1e c0x0000 (---------------)  + I fukumitsu
-	0x0027e309, // n0x0f1f c0x0000 (---------------)  + I funahashi
-	0x0024b184, // n0x0f20 c0x0000 (---------------)  + I himi
-	0x0024b1c5, // n0x0f21 c0x0000 (---------------)  + I imizu
-	0x0024b3c5, // n0x0f22 c0x0000 (---------------)  + I inami
-	0x00314ec6, // n0x0f23 c0x0000 (---------------)  + I johana
-	0x002e3908, // n0x0f24 c0x0000 (---------------)  + I kamiichi
-	0x002b3806, // n0x0f25 c0x0000 (---------------)  + I kurobe
-	0x0026a58b, // n0x0f26 c0x0000 (---------------)  + I nakaniikawa
-	0x0022aeca, // n0x0f27 c0x0000 (---------------)  + I namerikawa
-	0x002fdb85, // n0x0f28 c0x0000 (---------------)  + I nanto
-	0x00286d86, // n0x0f29 c0x0000 (---------------)  + I nyuzen
-	0x002ec145, // n0x0f2a c0x0000 (---------------)  + I oyabe
-	0x003717c5, // n0x0f2b c0x0000 (---------------)  + I taira
-	0x00295387, // n0x0f2c c0x0000 (---------------)  + I takaoka
-	0x0024f888, // n0x0f2d c0x0000 (---------------)  + I tateyama
-	0x00289e44, // n0x0f2e c0x0000 (---------------)  + I toga
-	0x002d3906, // n0x0f2f c0x0000 (---------------)  + I tonami
-	0x0028a786, // n0x0f30 c0x0000 (---------------)  + I toyama
-	0x00223907, // n0x0f31 c0x0000 (---------------)  + I unazuki
-	0x002b4f84, // n0x0f32 c0x0000 (---------------)  + I uozu
-	0x002795c6, // n0x0f33 c0x0000 (---------------)  + I yamada
-	0x00255245, // n0x0f34 c0x0000 (---------------)  + I arida
-	0x00255249, // n0x0f35 c0x0000 (---------------)  + I aridagawa
-	0x0020dbc4, // n0x0f36 c0x0000 (---------------)  + I gobo
-	0x002d8cc9, // n0x0f37 c0x0000 (---------------)  + I hashimoto
-	0x002780c6, // n0x0f38 c0x0000 (---------------)  + I hidaka
-	0x002b6e88, // n0x0f39 c0x0000 (---------------)  + I hirogawa
-	0x0024b3c5, // n0x0f3a c0x0000 (---------------)  + I inami
-	0x0022eb45, // n0x0f3b c0x0000 (---------------)  + I iwade
-	0x00220a46, // n0x0f3c c0x0000 (---------------)  + I kainan
-	0x002c2289, // n0x0f3d c0x0000 (---------------)  + I kamitonda
-	0x00226589, // n0x0f3e c0x0000 (---------------)  + I katsuragi
-	0x00256d86, // n0x0f3f c0x0000 (---------------)  + I kimino
-	0x00254ac8, // n0x0f40 c0x0000 (---------------)  + I kinokawa
-	0x002955c8, // n0x0f41 c0x0000 (---------------)  + I kitayama
-	0x002ec104, // n0x0f42 c0x0000 (---------------)  + I koya
-	0x002ac284, // n0x0f43 c0x0000 (---------------)  + I koza
-	0x002ac288, // n0x0f44 c0x0000 (---------------)  + I kozagawa
-	0x003084c8, // n0x0f45 c0x0000 (---------------)  + I kudoyama
-	0x0029f909, // n0x0f46 c0x0000 (---------------)  + I kushimoto
-	0x00292746, // n0x0f47 c0x0000 (---------------)  + I mihama
-	0x002625c6, // n0x0f48 c0x0000 (---------------)  + I misato
-	0x0030594d, // n0x0f49 c0x0000 (---------------)  + I nachikatsuura
-	0x002a57c6, // n0x0f4a c0x0000 (---------------)  + I shingu
-	0x002f4089, // n0x0f4b c0x0000 (---------------)  + I shirahama
-	0x00315f85, // n0x0f4c c0x0000 (---------------)  + I taiji
-	0x0021dcc6, // n0x0f4d c0x0000 (---------------)  + I tanabe
-	0x00309c88, // n0x0f4e c0x0000 (---------------)  + I wakayama
-	0x00303205, // n0x0f4f c0x0000 (---------------)  + I yuasa
-	0x00279b84, // n0x0f50 c0x0000 (---------------)  + I yura
-	0x002bac05, // n0x0f51 c0x0000 (---------------)  + I asahi
-	0x0027de88, // n0x0f52 c0x0000 (---------------)  + I funagata
-	0x00293289, // n0x0f53 c0x0000 (---------------)  + I higashine
-	0x00274544, // n0x0f54 c0x0000 (---------------)  + I iide
-	0x00311246, // n0x0f55 c0x0000 (---------------)  + I kahoku
-	0x002efbca, // n0x0f56 c0x0000 (---------------)  + I kaminoyama
-	0x00229248, // n0x0f57 c0x0000 (---------------)  + I kaneyama
-	0x002b6949, // n0x0f58 c0x0000 (---------------)  + I kawanishi
-	0x003457ca, // n0x0f59 c0x0000 (---------------)  + I mamurogawa
-	0x002127c6, // n0x0f5a c0x0000 (---------------)  + I mikawa
-	0x00292388, // n0x0f5b c0x0000 (---------------)  + I murayama
-	0x00276945, // n0x0f5c c0x0000 (---------------)  + I nagai
-	0x00344c08, // n0x0f5d c0x0000 (---------------)  + I nakayama
-	0x002b0685, // n0x0f5e c0x0000 (---------------)  + I nanyo
-	0x00226f89, // n0x0f5f c0x0000 (---------------)  + I nishikawa
-	0x002e7349, // n0x0f60 c0x0000 (---------------)  + I obanazawa
-	0x0020dd02, // n0x0f61 c0x0000 (---------------)  + I oe
-	0x0028dcc5, // n0x0f62 c0x0000 (---------------)  + I oguni
-	0x00274cc6, // n0x0f63 c0x0000 (---------------)  + I ohkura
-	0x00278007, // n0x0f64 c0x0000 (---------------)  + I oishida
-	0x002a40c5, // n0x0f65 c0x0000 (---------------)  + I sagae
-	0x00341a46, // n0x0f66 c0x0000 (---------------)  + I sakata
-	0x0034a348, // n0x0f67 c0x0000 (---------------)  + I sakegawa
-	0x002d2246, // n0x0f68 c0x0000 (---------------)  + I shinjo
-	0x0031f5c9, // n0x0f69 c0x0000 (---------------)  + I shirataka
-	0x00276286, // n0x0f6a c0x0000 (---------------)  + I shonai
-	0x002a3c48, // n0x0f6b c0x0000 (---------------)  + I takahata
-	0x002a7185, // n0x0f6c c0x0000 (---------------)  + I tendo
-	0x002612c6, // n0x0f6d c0x0000 (---------------)  + I tozawa
-	0x00212b08, // n0x0f6e c0x0000 (---------------)  + I tsuruoka
-	0x0027d308, // n0x0f6f c0x0000 (---------------)  + I yamagata
-	0x00202b48, // n0x0f70 c0x0000 (---------------)  + I yamanobe
-	0x00246508, // n0x0f71 c0x0000 (---------------)  + I yonezawa
-	0x00263244, // n0x0f72 c0x0000 (---------------)  + I yuza
-	0x00220e83, // n0x0f73 c0x0000 (---------------)  + I abu
-	0x0031f804, // n0x0f74 c0x0000 (---------------)  + I hagi
-	0x002be386, // n0x0f75 c0x0000 (---------------)  + I hikari
-	0x002a4b84, // n0x0f76 c0x0000 (---------------)  + I hofu
-	0x0033f747, // n0x0f77 c0x0000 (---------------)  + I iwakuni
-	0x002a9b89, // n0x0f78 c0x0000 (---------------)  + I kudamatsu
-	0x002bcfc5, // n0x0f79 c0x0000 (---------------)  + I mitou
-	0x00201106, // n0x0f7a c0x0000 (---------------)  + I nagato
-	0x0022b546, // n0x0f7b c0x0000 (---------------)  + I oshima
-	0x002c480b, // n0x0f7c c0x0000 (---------------)  + I shimonoseki
-	0x002fdac6, // n0x0f7d c0x0000 (---------------)  + I shunan
-	0x003087c6, // n0x0f7e c0x0000 (---------------)  + I tabuse
-	0x00274288, // n0x0f7f c0x0000 (---------------)  + I tokuyama
-	0x00255a86, // n0x0f80 c0x0000 (---------------)  + I toyota
-	0x00200e43, // n0x0f81 c0x0000 (---------------)  + I ube
-	0x00224083, // n0x0f82 c0x0000 (---------------)  + I yuu
-	0x002606c4, // n0x0f83 c0x0000 (---------------)  + I chuo
-	0x00234485, // n0x0f84 c0x0000 (---------------)  + I doshi
-	0x00306987, // n0x0f85 c0x0000 (---------------)  + I fuefuki
-	0x002746c8, // n0x0f86 c0x0000 (---------------)  + I fujikawa
-	0x002746cf, // n0x0f87 c0x0000 (---------------)  + I fujikawaguchiko
-	0x00278a8b, // n0x0f88 c0x0000 (---------------)  + I fujiyoshida
-	0x002e3708, // n0x0f89 c0x0000 (---------------)  + I hayakawa
-	0x003112c6, // n0x0f8a c0x0000 (---------------)  + I hokuto
-	0x002a034e, // n0x0f8b c0x0000 (---------------)  + I ichikawamisato
-	0x00220a43, // n0x0f8c c0x0000 (---------------)  + I kai
-	0x00306904, // n0x0f8d c0x0000 (---------------)  + I kofu
-	0x002fda45, // n0x0f8e c0x0000 (---------------)  + I koshu
-	0x0034bec6, // n0x0f8f c0x0000 (---------------)  + I kosuge
-	0x002889cb, // n0x0f90 c0x0000 (---------------)  + I minami-alps
-	0x0028cc46, // n0x0f91 c0x0000 (---------------)  + I minobu
-	0x00226089, // n0x0f92 c0x0000 (---------------)  + I nakamichi
-	0x002c6785, // n0x0f93 c0x0000 (---------------)  + I nanbu
-	0x0033b408, // n0x0f94 c0x0000 (---------------)  + I narusawa
-	0x00214948, // n0x0f95 c0x0000 (---------------)  + I nirasaki
-	0x0022644c, // n0x0f96 c0x0000 (---------------)  + I nishikatsura
-	0x00298586, // n0x0f97 c0x0000 (---------------)  + I oshino
-	0x002a39c6, // n0x0f98 c0x0000 (---------------)  + I otsuki
-	0x002ddc85, // n0x0f99 c0x0000 (---------------)  + I showa
-	0x00281808, // n0x0f9a c0x0000 (---------------)  + I tabayama
-	0x00212b05, // n0x0f9b c0x0000 (---------------)  + I tsuru
-	0x002107c8, // n0x0f9c c0x0000 (---------------)  + I uenohara
-	0x00297c4a, // n0x0f9d c0x0000 (---------------)  + I yamanakako
-	0x00322709, // n0x0f9e c0x0000 (---------------)  + I yamanashi
-	0x00757e04, // n0x0f9f c0x0001 (---------------)  ! I city
-	0x00222603, // n0x0fa0 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0fa1 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0fa2 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x0fa3 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x0fa4 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0fa5 c0x0000 (---------------)  + I org
-	0x00314c43, // n0x0fa6 c0x0000 (---------------)  + I biz
-	0x00222603, // n0x0fa7 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0fa8 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0fa9 c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x0faa c0x0000 (---------------)  + I info
-	0x00201603, // n0x0fab c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0fac c0x0000 (---------------)  + I org
-	0x00204603, // n0x0fad c0x0000 (---------------)  + I ass
-	0x0029cfc4, // n0x0fae c0x0000 (---------------)  + I asso
-	0x00222603, // n0x0faf c0x0000 (---------------)  + I com
-	0x00239dc4, // n0x0fb0 c0x0000 (---------------)  + I coop
-	0x0027a643, // n0x0fb1 c0x0000 (---------------)  + I edu
-	0x00368f84, // n0x0fb2 c0x0000 (---------------)  + I gouv
-	0x002157c3, // n0x0fb3 c0x0000 (---------------)  + I gov
-	0x002eef07, // n0x0fb4 c0x0000 (---------------)  + I medecin
-	0x0023f703, // n0x0fb5 c0x0000 (---------------)  + I mil
-	0x00214103, // n0x0fb6 c0x0000 (---------------)  + I nom
-	0x002bef08, // n0x0fb7 c0x0000 (---------------)  + I notaires
-	0x0021f5c3, // n0x0fb8 c0x0000 (---------------)  + I org
-	0x002c860b, // n0x0fb9 c0x0000 (---------------)  + I pharmaciens
-	0x002d7b03, // n0x0fba c0x0000 (---------------)  + I prd
-	0x002487c6, // n0x0fbb c0x0000 (---------------)  + I presse
-	0x00200142, // n0x0fbc c0x0000 (---------------)  + I tm
-	0x002de14b, // n0x0fbd c0x0000 (---------------)  + I veterinaire
-	0x0027a643, // n0x0fbe c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0fbf c0x0000 (---------------)  + I gov
-	0x00201603, // n0x0fc0 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0fc1 c0x0000 (---------------)  + I org
-	0x00222603, // n0x0fc2 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0fc3 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0fc4 c0x0000 (---------------)  + I gov
-	0x0021f5c3, // n0x0fc5 c0x0000 (---------------)  + I org
-	0x0021fbc3, // n0x0fc6 c0x0000 (---------------)  + I rep
-	0x00205543, // n0x0fc7 c0x0000 (---------------)  + I tra
-	0x00201d82, // n0x0fc8 c0x0000 (---------------)  + I ac
-	0x000b8948, // n0x0fc9 c0x0000 (---------------)  +   blogspot
-	0x002326c5, // n0x0fca c0x0000 (---------------)  + I busan
-	0x00323348, // n0x0fcb c0x0000 (---------------)  + I chungbuk
-	0x003265c8, // n0x0fcc c0x0000 (---------------)  + I chungnam
-	0x00207a02, // n0x0fcd c0x0000 (---------------)  + I co
-	0x00311dc5, // n0x0fce c0x0000 (---------------)  + I daegu
-	0x002fd807, // n0x0fcf c0x0000 (---------------)  + I daejeon
-	0x00201fc2, // n0x0fd0 c0x0000 (---------------)  + I es
-	0x002262c7, // n0x0fd1 c0x0000 (---------------)  + I gangwon
-	0x00206cc2, // n0x0fd2 c0x0000 (---------------)  + I go
-	0x00253747, // n0x0fd3 c0x0000 (---------------)  + I gwangju
-	0x0032c4c9, // n0x0fd4 c0x0000 (---------------)  + I gyeongbuk
-	0x00299948, // n0x0fd5 c0x0000 (---------------)  + I gyeonggi
-	0x0025eb09, // n0x0fd6 c0x0000 (---------------)  + I gyeongnam
-	0x0020f042, // n0x0fd7 c0x0000 (---------------)  + I hs
-	0x002ad687, // n0x0fd8 c0x0000 (---------------)  + I incheon
-	0x00256b04, // n0x0fd9 c0x0000 (---------------)  + I jeju
-	0x002fd8c7, // n0x0fda c0x0000 (---------------)  + I jeonbuk
-	0x0022adc7, // n0x0fdb c0x0000 (---------------)  + I jeonnam
-	0x0023d042, // n0x0fdc c0x0000 (---------------)  + I kg
-	0x0023f703, // n0x0fdd c0x0000 (---------------)  + I mil
-	0x00225542, // n0x0fde c0x0000 (---------------)  + I ms
-	0x00201602, // n0x0fdf c0x0000 (---------------)  + I ne
-	0x00200bc2, // n0x0fe0 c0x0000 (---------------)  + I or
-	0x00202142, // n0x0fe1 c0x0000 (---------------)  + I pe
-	0x002039c2, // n0x0fe2 c0x0000 (---------------)  + I re
-	0x00218bc2, // n0x0fe3 c0x0000 (---------------)  + I sc
-	0x0034b005, // n0x0fe4 c0x0000 (---------------)  + I seoul
-	0x00224105, // n0x0fe5 c0x0000 (---------------)  + I ulsan
-	0x00222603, // n0x0fe6 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0fe7 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0fe8 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x0fe9 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0fea c0x0000 (---------------)  + I org
-	0x00222603, // n0x0feb c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0fec c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0fed c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x0fee c0x0000 (---------------)  + I mil
-	0x00201603, // n0x0fef c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0ff0 c0x0000 (---------------)  + I org
-	0x00000601, // n0x0ff1 c0x0000 (---------------)  +   c
-	0x00222603, // n0x0ff2 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0ff3 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0ff4 c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x0ff5 c0x0000 (---------------)  + I info
-	0x00223a83, // n0x0ff6 c0x0000 (---------------)  + I int
-	0x00201603, // n0x0ff7 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0ff8 c0x0000 (---------------)  + I org
-	0x00222483, // n0x0ff9 c0x0000 (---------------)  + I per
-	0x00222603, // n0x0ffa c0x0000 (---------------)  + I com
-	0x0027a643, // n0x0ffb c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x0ffc c0x0000 (---------------)  + I gov
-	0x00201603, // n0x0ffd c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x0ffe c0x0000 (---------------)  + I org
-	0x00207a02, // n0x0fff c0x0000 (---------------)  + I co
-	0x00222603, // n0x1000 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1001 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1002 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x1003 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1004 c0x0000 (---------------)  + I org
-	0x002b7fc4, // n0x1005 c0x0000 (---------------)  + I assn
-	0x00222603, // n0x1006 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1007 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1008 c0x0000 (---------------)  + I gov
-	0x00236603, // n0x1009 c0x0000 (---------------)  + I grp
-	0x002a7585, // n0x100a c0x0000 (---------------)  + I hotel
-	0x00223a83, // n0x100b c0x0000 (---------------)  + I int
-	0x00223143, // n0x100c c0x0000 (---------------)  + I ltd
-	0x00201603, // n0x100d c0x0000 (---------------)  + I net
-	0x00224203, // n0x100e c0x0000 (---------------)  + I ngo
-	0x0021f5c3, // n0x100f c0x0000 (---------------)  + I org
-	0x002526c3, // n0x1010 c0x0000 (---------------)  + I sch
-	0x0029d043, // n0x1011 c0x0000 (---------------)  + I soc
-	0x00205e43, // n0x1012 c0x0000 (---------------)  + I web
-	0x00222603, // n0x1013 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1014 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1015 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x1016 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1017 c0x0000 (---------------)  + I org
-	0x00207a02, // n0x1018 c0x0000 (---------------)  + I co
-	0x0021f5c3, // n0x1019 c0x0000 (---------------)  + I org
-	0x002157c3, // n0x101a c0x0000 (---------------)  + I gov
-	0x002adf03, // n0x101b c0x0000 (---------------)  + I asn
-	0x00222603, // n0x101c c0x0000 (---------------)  + I com
-	0x00234b04, // n0x101d c0x0000 (---------------)  + I conf
-	0x0027a643, // n0x101e c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x101f c0x0000 (---------------)  + I gov
-	0x00202f82, // n0x1020 c0x0000 (---------------)  + I id
-	0x0023f703, // n0x1021 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x1022 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1023 c0x0000 (---------------)  + I org
-	0x00222603, // n0x1024 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1025 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1026 c0x0000 (---------------)  + I gov
-	0x00202f82, // n0x1027 c0x0000 (---------------)  + I id
-	0x00225d03, // n0x1028 c0x0000 (---------------)  + I med
-	0x00201603, // n0x1029 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x102a c0x0000 (---------------)  + I org
-	0x002d2a43, // n0x102b c0x0000 (---------------)  + I plc
-	0x002526c3, // n0x102c c0x0000 (---------------)  + I sch
-	0x00201d82, // n0x102d c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x102e c0x0000 (---------------)  + I co
-	0x002157c3, // n0x102f c0x0000 (---------------)  + I gov
-	0x00201603, // n0x1030 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1031 c0x0000 (---------------)  + I org
-	0x002487c5, // n0x1032 c0x0000 (---------------)  + I press
-	0x0029cfc4, // n0x1033 c0x0000 (---------------)  + I asso
-	0x00200142, // n0x1034 c0x0000 (---------------)  + I tm
-	0x00201d82, // n0x1035 c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x1036 c0x0000 (---------------)  + I co
-	0x0027a643, // n0x1037 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1038 c0x0000 (---------------)  + I gov
-	0x002602c3, // n0x1039 c0x0000 (---------------)  + I its
-	0x00201603, // n0x103a c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x103b c0x0000 (---------------)  + I org
-	0x002d82c4, // n0x103c c0x0000 (---------------)  + I priv
-	0x00222603, // n0x103d c0x0000 (---------------)  + I com
-	0x0027a643, // n0x103e c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x103f c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x1040 c0x0000 (---------------)  + I mil
-	0x00214103, // n0x1041 c0x0000 (---------------)  + I nom
-	0x0021f5c3, // n0x1042 c0x0000 (---------------)  + I org
-	0x002d7b03, // n0x1043 c0x0000 (---------------)  + I prd
-	0x00200142, // n0x1044 c0x0000 (---------------)  + I tm
-	0x00222603, // n0x1045 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1046 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1047 c0x0000 (---------------)  + I gov
-	0x0021c543, // n0x1048 c0x0000 (---------------)  + I inf
-	0x0022aec4, // n0x1049 c0x0000 (---------------)  + I name
-	0x00201603, // n0x104a c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x104b c0x0000 (---------------)  + I org
-	0x00222603, // n0x104c c0x0000 (---------------)  + I com
-	0x0027a643, // n0x104d c0x0000 (---------------)  + I edu
-	0x00368f84, // n0x104e c0x0000 (---------------)  + I gouv
-	0x002157c3, // n0x104f c0x0000 (---------------)  + I gov
-	0x00201603, // n0x1050 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1051 c0x0000 (---------------)  + I org
-	0x002487c6, // n0x1052 c0x0000 (---------------)  + I presse
-	0x0027a643, // n0x1053 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1054 c0x0000 (---------------)  + I gov
-	0x00015183, // n0x1055 c0x0000 (---------------)  +   nyc
-	0x0021f5c3, // n0x1056 c0x0000 (---------------)  + I org
-	0x00222603, // n0x1057 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1058 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1059 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x105a c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x105b c0x0000 (---------------)  + I org
-	0x000b8948, // n0x105c c0x0000 (---------------)  +   blogspot
-	0x002157c3, // n0x105d c0x0000 (---------------)  + I gov
-	0x00222603, // n0x105e c0x0000 (---------------)  + I com
-	0x0027a643, // n0x105f c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1060 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x1061 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1062 c0x0000 (---------------)  + I org
-	0x00222603, // n0x1063 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1064 c0x0000 (---------------)  + I edu
-	0x00201603, // n0x1065 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1066 c0x0000 (---------------)  + I org
-	0x00201d82, // n0x1067 c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x1068 c0x0000 (---------------)  + I co
-	0x00222603, // n0x1069 c0x0000 (---------------)  + I com
-	0x002157c3, // n0x106a c0x0000 (---------------)  + I gov
-	0x00201603, // n0x106b c0x0000 (---------------)  + I net
-	0x00200bc2, // n0x106c c0x0000 (---------------)  + I or
-	0x0021f5c3, // n0x106d c0x0000 (---------------)  + I org
-	0x002fe307, // n0x106e c0x0000 (---------------)  + I academy
-	0x0029a5cb, // n0x106f c0x0000 (---------------)  + I agriculture
-	0x002402c3, // n0x1070 c0x0000 (---------------)  + I air
-	0x00254c88, // n0x1071 c0x0000 (---------------)  + I airguard
-	0x0036a847, // n0x1072 c0x0000 (---------------)  + I alabama
-	0x00204cc6, // n0x1073 c0x0000 (---------------)  + I alaska
-	0x002b9985, // n0x1074 c0x0000 (---------------)  + I amber
-	0x002c5389, // n0x1075 c0x0000 (---------------)  + I ambulance
-	0x0025f188, // n0x1076 c0x0000 (---------------)  + I american
-	0x0025f189, // n0x1077 c0x0000 (---------------)  + I americana
-	0x002c7010, // n0x1078 c0x0000 (---------------)  + I americanantiques
-	0x0025f18b, // n0x1079 c0x0000 (---------------)  + I americanart
-	0x002b97c9, // n0x107a c0x0000 (---------------)  + I amsterdam
-	0x002006c3, // n0x107b c0x0000 (---------------)  + I and
-	0x002ec789, // n0x107c c0x0000 (---------------)  + I annefrank
-	0x00235d86, // n0x107d c0x0000 (---------------)  + I anthro
-	0x00235d8c, // n0x107e c0x0000 (---------------)  + I anthropology
-	0x00232788, // n0x107f c0x0000 (---------------)  + I antiques
-	0x00302c08, // n0x1080 c0x0000 (---------------)  + I aquarium
-	0x0022a0c9, // n0x1081 c0x0000 (---------------)  + I arboretum
-	0x002aa94e, // n0x1082 c0x0000 (---------------)  + I archaeological
-	0x002cbacb, // n0x1083 c0x0000 (---------------)  + I archaeology
-	0x0024680c, // n0x1084 c0x0000 (---------------)  + I architecture
-	0x00201383, // n0x1085 c0x0000 (---------------)  + I art
-	0x0025f38c, // n0x1086 c0x0000 (---------------)  + I artanddesign
-	0x002f6c49, // n0x1087 c0x0000 (---------------)  + I artcenter
-	0x002078c7, // n0x1088 c0x0000 (---------------)  + I artdeco
-	0x0027a58c, // n0x1089 c0x0000 (---------------)  + I arteducation
-	0x00236e4a, // n0x108a c0x0000 (---------------)  + I artgallery
-	0x002180c4, // n0x108b c0x0000 (---------------)  + I arts
-	0x002180cd, // n0x108c c0x0000 (---------------)  + I artsandcrafts
-	0x002f6b08, // n0x108d c0x0000 (---------------)  + I asmatart
-	0x0020cbcd, // n0x108e c0x0000 (---------------)  + I assassination
-	0x00204606, // n0x108f c0x0000 (---------------)  + I assisi
-	0x0029cfcb, // n0x1090 c0x0000 (---------------)  + I association
-	0x00311889, // n0x1091 c0x0000 (---------------)  + I astronomy
-	0x0027c587, // n0x1092 c0x0000 (---------------)  + I atlanta
-	0x0036e206, // n0x1093 c0x0000 (---------------)  + I austin
-	0x002e7549, // n0x1094 c0x0000 (---------------)  + I australia
-	0x0031528a, // n0x1095 c0x0000 (---------------)  + I automotive
-	0x00370988, // n0x1096 c0x0000 (---------------)  + I aviation
-	0x0026d8c4, // n0x1097 c0x0000 (---------------)  + I axis
-	0x00276ec7, // n0x1098 c0x0000 (---------------)  + I badajoz
-	0x00316787, // n0x1099 c0x0000 (---------------)  + I baghdad
-	0x002e7e44, // n0x109a c0x0000 (---------------)  + I bahn
-	0x00349684, // n0x109b c0x0000 (---------------)  + I bale
-	0x002e6649, // n0x109c c0x0000 (---------------)  + I baltimore
-	0x002fc809, // n0x109d c0x0000 (---------------)  + I barcelona
-	0x002a7808, // n0x109e c0x0000 (---------------)  + I baseball
-	0x00211605, // n0x109f c0x0000 (---------------)  + I basel
-	0x00211bc5, // n0x10a0 c0x0000 (---------------)  + I baths
-	0x0020fb46, // n0x10a1 c0x0000 (---------------)  + I bauern
-	0x00217f89, // n0x10a2 c0x0000 (---------------)  + I beauxarts
-	0x00202ccd, // n0x10a3 c0x0000 (---------------)  + I beeldengeluid
-	0x0021ddc8, // n0x10a4 c0x0000 (---------------)  + I bellevue
-	0x0020fa47, // n0x10a5 c0x0000 (---------------)  + I bergbau
-	0x002b9a08, // n0x10a6 c0x0000 (---------------)  + I berkeley
-	0x0035e1c6, // n0x10a7 c0x0000 (---------------)  + I berlin
-	0x00360504, // n0x10a8 c0x0000 (---------------)  + I bern
-	0x0023a185, // n0x10a9 c0x0000 (---------------)  + I bible
-	0x00204286, // n0x10aa c0x0000 (---------------)  + I bilbao
-	0x002053c4, // n0x10ab c0x0000 (---------------)  + I bill
-	0x002077c7, // n0x10ac c0x0000 (---------------)  + I birdart
-	0x0020be0a, // n0x10ad c0x0000 (---------------)  + I birthplace
-	0x00213004, // n0x10ae c0x0000 (---------------)  + I bonn
-	0x00213686, // n0x10af c0x0000 (---------------)  + I boston
-	0x00213d09, // n0x10b0 c0x0000 (---------------)  + I botanical
-	0x00213d0f, // n0x10b1 c0x0000 (---------------)  + I botanicalgarden
-	0x0021464d, // n0x10b2 c0x0000 (---------------)  + I botanicgarden
-	0x00215086, // n0x10b3 c0x0000 (---------------)  + I botany
-	0x002167d0, // n0x10b4 c0x0000 (---------------)  + I brandywinevalley
-	0x002173c6, // n0x10b5 c0x0000 (---------------)  + I brasil
-	0x00219007, // n0x10b6 c0x0000 (---------------)  + I bristol
-	0x0021a287, // n0x10b7 c0x0000 (---------------)  + I british
-	0x0021a28f, // n0x10b8 c0x0000 (---------------)  + I britishcolumbia
-	0x0021bf49, // n0x10b9 c0x0000 (---------------)  + I broadcast
-	0x00220346, // n0x10ba c0x0000 (---------------)  + I brunel
-	0x002210c7, // n0x10bb c0x0000 (---------------)  + I brussel
-	0x002210c8, // n0x10bc c0x0000 (---------------)  + I brussels
-	0x00221689, // n0x10bd c0x0000 (---------------)  + I bruxelles
-	0x0022c008, // n0x10be c0x0000 (---------------)  + I building
-	0x002d0447, // n0x10bf c0x0000 (---------------)  + I burghof
-	0x002326c3, // n0x10c0 c0x0000 (---------------)  + I bus
-	0x0026b046, // n0x10c1 c0x0000 (---------------)  + I bushey
-	0x00312948, // n0x10c2 c0x0000 (---------------)  + I cadaques
-	0x002aac0a, // n0x10c3 c0x0000 (---------------)  + I california
-	0x0021f389, // n0x10c4 c0x0000 (---------------)  + I cambridge
-	0x00225943, // n0x10c5 c0x0000 (---------------)  + I can
-	0x00319606, // n0x10c6 c0x0000 (---------------)  + I canada
-	0x002d374a, // n0x10c7 c0x0000 (---------------)  + I capebreton
-	0x00215cc7, // n0x10c8 c0x0000 (---------------)  + I carrier
-	0x0027a3ca, // n0x10c9 c0x0000 (---------------)  + I cartoonart
-	0x0035074e, // n0x10ca c0x0000 (---------------)  + I casadelamoneda
-	0x0021c086, // n0x10cb c0x0000 (---------------)  + I castle
-	0x002d9207, // n0x10cc c0x0000 (---------------)  + I castres
-	0x002a54c6, // n0x10cd c0x0000 (---------------)  + I celtic
-	0x00240f86, // n0x10ce c0x0000 (---------------)  + I center
-	0x0034b8cb, // n0x10cf c0x0000 (---------------)  + I chattanooga
-	0x0024a4ca, // n0x10d0 c0x0000 (---------------)  + I cheltenham
-	0x00346dcd, // n0x10d1 c0x0000 (---------------)  + I chesapeakebay
-	0x0020da87, // n0x10d2 c0x0000 (---------------)  + I chicago
-	0x00203888, // n0x10d3 c0x0000 (---------------)  + I children
-	0x00203889, // n0x10d4 c0x0000 (---------------)  + I childrens
-	0x0020388f, // n0x10d5 c0x0000 (---------------)  + I childrensgarden
-	0x002a488c, // n0x10d6 c0x0000 (---------------)  + I chiropractic
-	0x002a1d09, // n0x10d7 c0x0000 (---------------)  + I chocolate
-	0x0023c1ce, // n0x10d8 c0x0000 (---------------)  + I christiansburg
-	0x002c6d0a, // n0x10d9 c0x0000 (---------------)  + I cincinnati
-	0x002ef006, // n0x10da c0x0000 (---------------)  + I cinema
-	0x0034f8c6, // n0x10db c0x0000 (---------------)  + I circus
-	0x0022b6cc, // n0x10dc c0x0000 (---------------)  + I civilisation
-	0x0022b9cc, // n0x10dd c0x0000 (---------------)  + I civilization
-	0x0022bcc8, // n0x10de c0x0000 (---------------)  + I civilwar
-	0x0022df87, // n0x10df c0x0000 (---------------)  + I clinton
-	0x002007c5, // n0x10e0 c0x0000 (---------------)  + I clock
-	0x00207a04, // n0x10e1 c0x0000 (---------------)  + I coal
-	0x003335ce, // n0x10e2 c0x0000 (---------------)  + I coastaldefence
-	0x0029fd84, // n0x10e3 c0x0000 (---------------)  + I cody
-	0x00248c07, // n0x10e4 c0x0000 (---------------)  + I coldwar
-	0x00230b8a, // n0x10e5 c0x0000 (---------------)  + I collection
-	0x00231694, // n0x10e6 c0x0000 (---------------)  + I colonialwilliamsburg
-	0x0023200f, // n0x10e7 c0x0000 (---------------)  + I coloradoplateau
-	0x0021a448, // n0x10e8 c0x0000 (---------------)  + I columbia
-	0x00232588, // n0x10e9 c0x0000 (---------------)  + I columbus
-	0x002d734d, // n0x10ea c0x0000 (---------------)  + I communication
-	0x002d734e, // n0x10eb c0x0000 (---------------)  + I communications
-	0x00233189, // n0x10ec c0x0000 (---------------)  + I community
-	0x00233bc8, // n0x10ed c0x0000 (---------------)  + I computer
-	0x00233bcf, // n0x10ee c0x0000 (---------------)  + I computerhistory
-	0x00236b4c, // n0x10ef c0x0000 (---------------)  + I contemporary
-	0x00236b4f, // n0x10f0 c0x0000 (---------------)  + I contemporaryart
-	0x00238147, // n0x10f1 c0x0000 (---------------)  + I convent
-	0x0023a50a, // n0x10f2 c0x0000 (---------------)  + I copenhagen
-	0x0023bbcb, // n0x10f3 c0x0000 (---------------)  + I corporation
-	0x0023be88, // n0x10f4 c0x0000 (---------------)  + I corvette
-	0x0023d1c7, // n0x10f5 c0x0000 (---------------)  + I costume
-	0x0028494d, // n0x10f6 c0x0000 (---------------)  + I countryestate
-	0x00315686, // n0x10f7 c0x0000 (---------------)  + I county
-	0x00218286, // n0x10f8 c0x0000 (---------------)  + I crafts
-	0x0023dfc9, // n0x10f9 c0x0000 (---------------)  + I cranbrook
-	0x00227808, // n0x10fa c0x0000 (---------------)  + I creation
-	0x00240d88, // n0x10fb c0x0000 (---------------)  + I cultural
-	0x00240d8e, // n0x10fc c0x0000 (---------------)  + I culturalcenter
-	0x0029a6c7, // n0x10fd c0x0000 (---------------)  + I culture
-	0x0020c205, // n0x10fe c0x0000 (---------------)  + I cyber
-	0x002cfc85, // n0x10ff c0x0000 (---------------)  + I cymru
-	0x00202044, // n0x1100 c0x0000 (---------------)  + I dali
-	0x002a4406, // n0x1101 c0x0000 (---------------)  + I dallas
-	0x002a7708, // n0x1102 c0x0000 (---------------)  + I database
-	0x00343183, // n0x1103 c0x0000 (---------------)  + I ddr
-	0x0031830e, // n0x1104 c0x0000 (---------------)  + I decorativearts
-	0x002c0008, // n0x1105 c0x0000 (---------------)  + I delaware
-	0x002d678b, // n0x1106 c0x0000 (---------------)  + I delmenhorst
-	0x0035a287, // n0x1107 c0x0000 (---------------)  + I denmark
-	0x00369785, // n0x1108 c0x0000 (---------------)  + I depot
-	0x00255d86, // n0x1109 c0x0000 (---------------)  + I design
-	0x002a7ec7, // n0x110a c0x0000 (---------------)  + I detroit
-	0x003340c8, // n0x110b c0x0000 (---------------)  + I dinosaur
-	0x00315949, // n0x110c c0x0000 (---------------)  + I discovery
-	0x00215345, // n0x110d c0x0000 (---------------)  + I dolls
-	0x00280a88, // n0x110e c0x0000 (---------------)  + I donostia
-	0x00202fc6, // n0x110f c0x0000 (---------------)  + I durham
-	0x0028440a, // n0x1110 c0x0000 (---------------)  + I eastafrica
-	0x003334c9, // n0x1111 c0x0000 (---------------)  + I eastcoast
-	0x0027a649, // n0x1112 c0x0000 (---------------)  + I education
-	0x0027a64b, // n0x1113 c0x0000 (---------------)  + I educational
-	0x002a6388, // n0x1114 c0x0000 (---------------)  + I egyptian
-	0x002e7d09, // n0x1115 c0x0000 (---------------)  + I eisenbahn
-	0x002116c6, // n0x1116 c0x0000 (---------------)  + I elburg
-	0x0036d4ca, // n0x1117 c0x0000 (---------------)  + I elvendrell
-	0x002067ca, // n0x1118 c0x0000 (---------------)  + I embroidery
-	0x0023a70c, // n0x1119 c0x0000 (---------------)  + I encyclopedic
-	0x002807c7, // n0x111a c0x0000 (---------------)  + I england
-	0x0032c2ca, // n0x111b c0x0000 (---------------)  + I entomology
-	0x0020ea0b, // n0x111c c0x0000 (---------------)  + I environment
-	0x0020ea19, // n0x111d c0x0000 (---------------)  + I environmentalconservation
-	0x00216148, // n0x111e c0x0000 (---------------)  + I epilepsy
-	0x00248845, // n0x111f c0x0000 (---------------)  + I essex
-	0x00284b06, // n0x1120 c0x0000 (---------------)  + I estate
-	0x00317a09, // n0x1121 c0x0000 (---------------)  + I ethnology
-	0x003063c6, // n0x1122 c0x0000 (---------------)  + I exeter
-	0x0022b18a, // n0x1123 c0x0000 (---------------)  + I exhibition
-	0x00325d06, // n0x1124 c0x0000 (---------------)  + I family
-	0x00317f84, // n0x1125 c0x0000 (---------------)  + I farm
-	0x00356e0d, // n0x1126 c0x0000 (---------------)  + I farmequipment
-	0x00317f87, // n0x1127 c0x0000 (---------------)  + I farmers
-	0x00366949, // n0x1128 c0x0000 (---------------)  + I farmstead
-	0x00242205, // n0x1129 c0x0000 (---------------)  + I field
-	0x00242348, // n0x112a c0x0000 (---------------)  + I figueres
-	0x00242a89, // n0x112b c0x0000 (---------------)  + I filatelia
-	0x00242cc4, // n0x112c c0x0000 (---------------)  + I film
-	0x00244107, // n0x112d c0x0000 (---------------)  + I fineart
-	0x00244108, // n0x112e c0x0000 (---------------)  + I finearts
-	0x002443c7, // n0x112f c0x0000 (---------------)  + I finland
-	0x0033e2c8, // n0x1130 c0x0000 (---------------)  + I flanders
-	0x0024c787, // n0x1131 c0x0000 (---------------)  + I florida
-	0x0024ce85, // n0x1132 c0x0000 (---------------)  + I force
-	0x0025654c, // n0x1133 c0x0000 (---------------)  + I fortmissoula
-	0x00257849, // n0x1134 c0x0000 (---------------)  + I fortworth
-	0x0031f98a, // n0x1135 c0x0000 (---------------)  + I foundation
-	0x00356049, // n0x1136 c0x0000 (---------------)  + I francaise
-	0x002ec889, // n0x1137 c0x0000 (---------------)  + I frankfurt
-	0x0033db8c, // n0x1138 c0x0000 (---------------)  + I franziskaner
-	0x0021244b, // n0x1139 c0x0000 (---------------)  + I freemasonry
-	0x002593c8, // n0x113a c0x0000 (---------------)  + I freiburg
-	0x00259b88, // n0x113b c0x0000 (---------------)  + I fribourg
-	0x0025da04, // n0x113c c0x0000 (---------------)  + I frog
-	0x0027eb88, // n0x113d c0x0000 (---------------)  + I fundacio
-	0x0027f6c9, // n0x113e c0x0000 (---------------)  + I furniture
-	0x00236f07, // n0x113f c0x0000 (---------------)  + I gallery
-	0x00203ac6, // n0x1140 c0x0000 (---------------)  + I garden
-	0x002314c7, // n0x1141 c0x0000 (---------------)  + I gateway
-	0x00315bc9, // n0x1142 c0x0000 (---------------)  + I geelvinck
-	0x00313d8b, // n0x1143 c0x0000 (---------------)  + I gemological
-	0x00319187, // n0x1144 c0x0000 (---------------)  + I geology
-	0x0021f547, // n0x1145 c0x0000 (---------------)  + I georgia
-	0x00280687, // n0x1146 c0x0000 (---------------)  + I giessen
-	0x0020cb44, // n0x1147 c0x0000 (---------------)  + I glas
-	0x0020cb45, // n0x1148 c0x0000 (---------------)  + I glass
-	0x00246245, // n0x1149 c0x0000 (---------------)  + I gorge
-	0x0031b38b, // n0x114a c0x0000 (---------------)  + I grandrapids
-	0x0035c244, // n0x114b c0x0000 (---------------)  + I graz
-	0x00243d48, // n0x114c c0x0000 (---------------)  + I guernsey
-	0x002a6d4a, // n0x114d c0x0000 (---------------)  + I halloffame
-	0x00203087, // n0x114e c0x0000 (---------------)  + I hamburg
-	0x00285a87, // n0x114f c0x0000 (---------------)  + I handson
-	0x00288252, // n0x1150 c0x0000 (---------------)  + I harvestcelebration
-	0x0028b446, // n0x1151 c0x0000 (---------------)  + I hawaii
-	0x00360806, // n0x1152 c0x0000 (---------------)  + I health
-	0x0030248e, // n0x1153 c0x0000 (---------------)  + I heimatunduhren
-	0x002ebf86, // n0x1154 c0x0000 (---------------)  + I hellas
-	0x002131c8, // n0x1155 c0x0000 (---------------)  + I helsinki
-	0x0024ef4f, // n0x1156 c0x0000 (---------------)  + I hembygdsforbund
-	0x0020cf88, // n0x1157 c0x0000 (---------------)  + I heritage
-	0x0026dbc8, // n0x1158 c0x0000 (---------------)  + I histoire
-	0x002e4bca, // n0x1159 c0x0000 (---------------)  + I historical
-	0x002e4bd1, // n0x115a c0x0000 (---------------)  + I historicalsociety
-	0x0029c84e, // n0x115b c0x0000 (---------------)  + I historichouses
-	0x0025250a, // n0x115c c0x0000 (---------------)  + I historisch
-	0x0025250c, // n0x115d c0x0000 (---------------)  + I historisches
-	0x00233dc7, // n0x115e c0x0000 (---------------)  + I history
-	0x00233dd0, // n0x115f c0x0000 (---------------)  + I historyofscience
-	0x00200b88, // n0x1160 c0x0000 (---------------)  + I horology
-	0x00227d05, // n0x1161 c0x0000 (---------------)  + I house
-	0x002a814a, // n0x1162 c0x0000 (---------------)  + I humanities
-	0x0020540c, // n0x1163 c0x0000 (---------------)  + I illustration
-	0x002d9a4d, // n0x1164 c0x0000 (---------------)  + I imageandsound
-	0x00214b06, // n0x1165 c0x0000 (---------------)  + I indian
-	0x00214b07, // n0x1166 c0x0000 (---------------)  + I indiana
-	0x00214b0c, // n0x1167 c0x0000 (---------------)  + I indianapolis
-	0x0021794c, // n0x1168 c0x0000 (---------------)  + I indianmarket
-	0x00223a8c, // n0x1169 c0x0000 (---------------)  + I intelligence
-	0x002df74b, // n0x116a c0x0000 (---------------)  + I interactive
-	0x00280004, // n0x116b c0x0000 (---------------)  + I iraq
-	0x0020eac4, // n0x116c c0x0000 (---------------)  + I iron
-	0x00330b49, // n0x116d c0x0000 (---------------)  + I isleofman
-	0x00303887, // n0x116e c0x0000 (---------------)  + I jamison
-	0x0024d749, // n0x116f c0x0000 (---------------)  + I jefferson
-	0x00273b49, // n0x1170 c0x0000 (---------------)  + I jerusalem
-	0x00331fc7, // n0x1171 c0x0000 (---------------)  + I jewelry
-	0x00336806, // n0x1172 c0x0000 (---------------)  + I jewish
-	0x00336809, // n0x1173 c0x0000 (---------------)  + I jewishart
-	0x0036c0c3, // n0x1174 c0x0000 (---------------)  + I jfk
-	0x002481ca, // n0x1175 c0x0000 (---------------)  + I journalism
-	0x0036af87, // n0x1176 c0x0000 (---------------)  + I judaica
-	0x0031264b, // n0x1177 c0x0000 (---------------)  + I judygarland
-	0x00346c4a, // n0x1178 c0x0000 (---------------)  + I juedisches
-	0x00253884, // n0x1179 c0x0000 (---------------)  + I juif
-	0x00332cc6, // n0x117a c0x0000 (---------------)  + I karate
-	0x002be409, // n0x117b c0x0000 (---------------)  + I karikatur
-	0x002a67c4, // n0x117c c0x0000 (---------------)  + I kids
-	0x0020fd4a, // n0x117d c0x0000 (---------------)  + I koebenhavn
-	0x0024c305, // n0x117e c0x0000 (---------------)  + I koeln
-	0x002b2985, // n0x117f c0x0000 (---------------)  + I kunst
-	0x002b298d, // n0x1180 c0x0000 (---------------)  + I kunstsammlung
-	0x002b2cce, // n0x1181 c0x0000 (---------------)  + I kunstunddesign
-	0x00306f05, // n0x1182 c0x0000 (---------------)  + I labor
-	0x0035bb86, // n0x1183 c0x0000 (---------------)  + I labour
-	0x00266947, // n0x1184 c0x0000 (---------------)  + I lajolla
-	0x0025474a, // n0x1185 c0x0000 (---------------)  + I lancashire
-	0x00361946, // n0x1186 c0x0000 (---------------)  + I landes
-	0x00286784, // n0x1187 c0x0000 (---------------)  + I lans
-	0x002e1787, // n0x1188 c0x0000 (---------------)  + I larsson
-	0x002ea2cb, // n0x1189 c0x0000 (---------------)  + I lewismiller
-	0x0035e287, // n0x118a c0x0000 (---------------)  + I lincoln
-	0x00366d44, // n0x118b c0x0000 (---------------)  + I linz
-	0x0029e246, // n0x118c c0x0000 (---------------)  + I living
-	0x0029e24d, // n0x118d c0x0000 (---------------)  + I livinghistory
-	0x0025624c, // n0x118e c0x0000 (---------------)  + I localhistory
-	0x00207ac6, // n0x118f c0x0000 (---------------)  + I london
-	0x0021d94a, // n0x1190 c0x0000 (---------------)  + I losangeles
-	0x00222e46, // n0x1191 c0x0000 (---------------)  + I louvre
-	0x0030ef88, // n0x1192 c0x0000 (---------------)  + I loyalist
-	0x002f1407, // n0x1193 c0x0000 (---------------)  + I lucerne
-	0x002363ca, // n0x1194 c0x0000 (---------------)  + I luxembourg
-	0x0023f7c6, // n0x1195 c0x0000 (---------------)  + I luzern
-	0x0020d983, // n0x1196 c0x0000 (---------------)  + I mad
-	0x00308e86, // n0x1197 c0x0000 (---------------)  + I madrid
-	0x002a0808, // n0x1198 c0x0000 (---------------)  + I mallorca
-	0x00330cca, // n0x1199 c0x0000 (---------------)  + I manchester
-	0x00275387, // n0x119a c0x0000 (---------------)  + I mansion
-	0x00275388, // n0x119b c0x0000 (---------------)  + I mansions
-	0x0027d604, // n0x119c c0x0000 (---------------)  + I manx
-	0x0026a007, // n0x119d c0x0000 (---------------)  + I marburg
-	0x00262748, // n0x119e c0x0000 (---------------)  + I maritime
-	0x00352148, // n0x119f c0x0000 (---------------)  + I maritimo
-	0x002a8d08, // n0x11a0 c0x0000 (---------------)  + I maryland
-	0x0020aa4a, // n0x11a1 c0x0000 (---------------)  + I marylhurst
-	0x0027ab45, // n0x11a2 c0x0000 (---------------)  + I media
-	0x002f1287, // n0x11a3 c0x0000 (---------------)  + I medical
-	0x00252353, // n0x11a4 c0x0000 (---------------)  + I medizinhistorisches
-	0x00267786, // n0x11a5 c0x0000 (---------------)  + I meeres
-	0x00242d88, // n0x11a6 c0x0000 (---------------)  + I memorial
-	0x002fa609, // n0x11a7 c0x0000 (---------------)  + I mesaverde
-	0x00226188, // n0x11a8 c0x0000 (---------------)  + I michigan
-	0x00265c8b, // n0x11a9 c0x0000 (---------------)  + I midatlantic
-	0x00343e88, // n0x11aa c0x0000 (---------------)  + I military
-	0x0023f704, // n0x11ab c0x0000 (---------------)  + I mill
-	0x0035ea06, // n0x11ac c0x0000 (---------------)  + I miners
-	0x002cc806, // n0x11ad c0x0000 (---------------)  + I mining
-	0x002d1849, // n0x11ae c0x0000 (---------------)  + I minnesota
-	0x002bbd47, // n0x11af c0x0000 (---------------)  + I missile
-	0x00256648, // n0x11b0 c0x0000 (---------------)  + I missoula
-	0x00286346, // n0x11b1 c0x0000 (---------------)  + I modern
-	0x002e6b84, // n0x11b2 c0x0000 (---------------)  + I moma
-	0x002c2a45, // n0x11b3 c0x0000 (---------------)  + I money
-	0x002bec48, // n0x11b4 c0x0000 (---------------)  + I monmouth
-	0x002bf38a, // n0x11b5 c0x0000 (---------------)  + I monticello
-	0x002bfc08, // n0x11b6 c0x0000 (---------------)  + I montreal
-	0x002c3106, // n0x11b7 c0x0000 (---------------)  + I moscow
-	0x00294a4a, // n0x11b8 c0x0000 (---------------)  + I motorcycle
-	0x00319b48, // n0x11b9 c0x0000 (---------------)  + I muenchen
-	0x002c5888, // n0x11ba c0x0000 (---------------)  + I muenster
-	0x002c7ac8, // n0x11bb c0x0000 (---------------)  + I mulhouse
-	0x002c8d86, // n0x11bc c0x0000 (---------------)  + I muncie
-	0x002cab06, // n0x11bd c0x0000 (---------------)  + I museet
-	0x002e828c, // n0x11be c0x0000 (---------------)  + I museumcenter
-	0x002cb0d0, // n0x11bf c0x0000 (---------------)  + I museumvereniging
-	0x002a91c5, // n0x11c0 c0x0000 (---------------)  + I music
-	0x0020cd88, // n0x11c1 c0x0000 (---------------)  + I national
-	0x002251d0, // n0x11c2 c0x0000 (---------------)  + I nationalfirearms
-	0x0020cd90, // n0x11c3 c0x0000 (---------------)  + I nationalheritage
-	0x002c6e8e, // n0x11c4 c0x0000 (---------------)  + I nativeamerican
-	0x002e7f0e, // n0x11c5 c0x0000 (---------------)  + I naturalhistory
-	0x002e7f14, // n0x11c6 c0x0000 (---------------)  + I naturalhistorymuseum
-	0x0036e38f, // n0x11c7 c0x0000 (---------------)  + I naturalsciences
-	0x0036e746, // n0x11c8 c0x0000 (---------------)  + I nature
-	0x00327f51, // n0x11c9 c0x0000 (---------------)  + I naturhistorisches
-	0x0030e713, // n0x11ca c0x0000 (---------------)  + I natuurwetenschappen
-	0x0030eb88, // n0x11cb c0x0000 (---------------)  + I naumburg
-	0x003682c5, // n0x11cc c0x0000 (---------------)  + I naval
-	0x0030ad08, // n0x11cd c0x0000 (---------------)  + I nebraska
-	0x0025e705, // n0x11ce c0x0000 (---------------)  + I neues
-	0x0022750c, // n0x11cf c0x0000 (---------------)  + I newhampshire
-	0x002abcc9, // n0x11d0 c0x0000 (---------------)  + I newjersey
-	0x0029fbc9, // n0x11d1 c0x0000 (---------------)  + I newmexico
-	0x00231247, // n0x11d2 c0x0000 (---------------)  + I newport
-	0x0023fc09, // n0x11d3 c0x0000 (---------------)  + I newspaper
-	0x0020b807, // n0x11d4 c0x0000 (---------------)  + I newyork
-	0x002e6446, // n0x11d5 c0x0000 (---------------)  + I niepce
-	0x00239f87, // n0x11d6 c0x0000 (---------------)  + I norfolk
-	0x002f0f85, // n0x11d7 c0x0000 (---------------)  + I north
-	0x00323643, // n0x11d8 c0x0000 (---------------)  + I nrw
-	0x00343349, // n0x11d9 c0x0000 (---------------)  + I nuernberg
-	0x00322249, // n0x11da c0x0000 (---------------)  + I nuremberg
-	0x00215183, // n0x11db c0x0000 (---------------)  + I nyc
-	0x0027a004, // n0x11dc c0x0000 (---------------)  + I nyny
-	0x00205a4d, // n0x11dd c0x0000 (---------------)  + I oceanographic
-	0x0020644f, // n0x11de c0x0000 (---------------)  + I oceanographique
-	0x002feec5, // n0x11df c0x0000 (---------------)  + I omaha
-	0x0030ac06, // n0x11e0 c0x0000 (---------------)  + I online
-	0x00230247, // n0x11e1 c0x0000 (---------------)  + I ontario
-	0x00310287, // n0x11e2 c0x0000 (---------------)  + I openair
-	0x00282406, // n0x11e3 c0x0000 (---------------)  + I oregon
-	0x0028240b, // n0x11e4 c0x0000 (---------------)  + I oregontrail
-	0x0029da85, // n0x11e5 c0x0000 (---------------)  + I otago
-	0x00366086, // n0x11e6 c0x0000 (---------------)  + I oxford
-	0x0026cdc7, // n0x11e7 c0x0000 (---------------)  + I pacific
-	0x00236909, // n0x11e8 c0x0000 (---------------)  + I paderborn
-	0x002e8946, // n0x11e9 c0x0000 (---------------)  + I palace
-	0x00360b85, // n0x11ea c0x0000 (---------------)  + I paleo
-	0x00369acb, // n0x11eb c0x0000 (---------------)  + I palmsprings
-	0x002001c6, // n0x11ec c0x0000 (---------------)  + I panama
-	0x0024dcc5, // n0x11ed c0x0000 (---------------)  + I paris
-	0x00287848, // n0x11ee c0x0000 (---------------)  + I pasadena
-	0x002cfb08, // n0x11ef c0x0000 (---------------)  + I pharmacy
-	0x002cc98c, // n0x11f0 c0x0000 (---------------)  + I philadelphia
-	0x002cc990, // n0x11f1 c0x0000 (---------------)  + I philadelphiaarea
-	0x002cd049, // n0x11f2 c0x0000 (---------------)  + I philately
-	0x002cd287, // n0x11f3 c0x0000 (---------------)  + I phoenix
-	0x002ce1cb, // n0x11f4 c0x0000 (---------------)  + I photography
-	0x002cf086, // n0x11f5 c0x0000 (---------------)  + I pilots
-	0x002d030a, // n0x11f6 c0x0000 (---------------)  + I pittsburgh
-	0x002d15cb, // n0x11f7 c0x0000 (---------------)  + I planetarium
-	0x002d1e8a, // n0x11f8 c0x0000 (---------------)  + I plantation
-	0x002d2106, // n0x11f9 c0x0000 (---------------)  + I plants
-	0x002d2905, // n0x11fa c0x0000 (---------------)  + I plaza
-	0x00312386, // n0x11fb c0x0000 (---------------)  + I portal
-	0x00352708, // n0x11fc c0x0000 (---------------)  + I portland
-	0x0023130a, // n0x11fd c0x0000 (---------------)  + I portlligat
-	0x002d6fdc, // n0x11fe c0x0000 (---------------)  + I posts-and-telecommunications
-	0x002d7bcc, // n0x11ff c0x0000 (---------------)  + I preservation
-	0x002d7ec8, // n0x1200 c0x0000 (---------------)  + I presidio
-	0x002487c5, // n0x1201 c0x0000 (---------------)  + I press
-	0x002da787, // n0x1202 c0x0000 (---------------)  + I project
-	0x002aa586, // n0x1203 c0x0000 (---------------)  + I public
-	0x00200f45, // n0x1204 c0x0000 (---------------)  + I pubol
-	0x00215b86, // n0x1205 c0x0000 (---------------)  + I quebec
-	0x002825c8, // n0x1206 c0x0000 (---------------)  + I railroad
-	0x0034e887, // n0x1207 c0x0000 (---------------)  + I railway
-	0x002aa848, // n0x1208 c0x0000 (---------------)  + I research
-	0x002d930a, // n0x1209 c0x0000 (---------------)  + I resistance
-	0x0023034c, // n0x120a c0x0000 (---------------)  + I riodejaneiro
-	0x0022d189, // n0x120b c0x0000 (---------------)  + I rochester
-	0x00201287, // n0x120c c0x0000 (---------------)  + I rockart
-	0x00247304, // n0x120d c0x0000 (---------------)  + I roma
-	0x00259246, // n0x120e c0x0000 (---------------)  + I russia
-	0x002f474a, // n0x120f c0x0000 (---------------)  + I saintlouis
-	0x00273c45, // n0x1210 c0x0000 (---------------)  + I salem
-	0x0022558c, // n0x1211 c0x0000 (---------------)  + I salvadordali
-	0x00225e08, // n0x1212 c0x0000 (---------------)  + I salzburg
-	0x00347488, // n0x1213 c0x0000 (---------------)  + I sandiego
-	0x0024e60c, // n0x1214 c0x0000 (---------------)  + I sanfrancisco
-	0x002a0fcc, // n0x1215 c0x0000 (---------------)  + I santabarbara
-	0x0022c489, // n0x1216 c0x0000 (---------------)  + I santacruz
-	0x0022e287, // n0x1217 c0x0000 (---------------)  + I santafe
-	0x0025858c, // n0x1218 c0x0000 (---------------)  + I saskatchewan
-	0x0025db84, // n0x1219 c0x0000 (---------------)  + I satx
-	0x002689ca, // n0x121a c0x0000 (---------------)  + I savannahga
-	0x0026e40c, // n0x121b c0x0000 (---------------)  + I schlesisches
-	0x002814cb, // n0x121c c0x0000 (---------------)  + I schoenbrunn
-	0x002bf0cb, // n0x121d c0x0000 (---------------)  + I schokoladen
-	0x002ffb06, // n0x121e c0x0000 (---------------)  + I school
-	0x00286847, // n0x121f c0x0000 (---------------)  + I schweiz
-	0x00234007, // n0x1220 c0x0000 (---------------)  + I science
-	0x0023400f, // n0x1221 c0x0000 (---------------)  + I science-fiction
-	0x002eded1, // n0x1222 c0x0000 (---------------)  + I scienceandhistory
-	0x002734d2, // n0x1223 c0x0000 (---------------)  + I scienceandindustry
-	0x0028970d, // n0x1224 c0x0000 (---------------)  + I sciencecenter
-	0x0028970e, // n0x1225 c0x0000 (---------------)  + I sciencecenters
-	0x00289a4e, // n0x1226 c0x0000 (---------------)  + I sciencehistory
-	0x0036e548, // n0x1227 c0x0000 (---------------)  + I sciences
-	0x0036e552, // n0x1228 c0x0000 (---------------)  + I sciencesnaturelles
-	0x0024e848, // n0x1229 c0x0000 (---------------)  + I scotland
-	0x002f9687, // n0x122a c0x0000 (---------------)  + I seaport
-	0x0024908a, // n0x122b c0x0000 (---------------)  + I settlement
-	0x002a0e08, // n0x122c c0x0000 (---------------)  + I settlers
-	0x002ebf45, // n0x122d c0x0000 (---------------)  + I shell
-	0x002f5a8a, // n0x122e c0x0000 (---------------)  + I sherbrooke
-	0x00204707, // n0x122f c0x0000 (---------------)  + I sibenik
-	0x002eeb44, // n0x1230 c0x0000 (---------------)  + I silk
-	0x0021a9c3, // n0x1231 c0x0000 (---------------)  + I ski
-	0x0024d1c5, // n0x1232 c0x0000 (---------------)  + I skole
-	0x002e4e47, // n0x1233 c0x0000 (---------------)  + I society
-	0x002e1947, // n0x1234 c0x0000 (---------------)  + I sologne
-	0x002d9c4e, // n0x1235 c0x0000 (---------------)  + I soundandvision
-	0x002e518d, // n0x1236 c0x0000 (---------------)  + I southcarolina
-	0x002e55c9, // n0x1237 c0x0000 (---------------)  + I southwest
-	0x002e5c85, // n0x1238 c0x0000 (---------------)  + I space
-	0x002e9343, // n0x1239 c0x0000 (---------------)  + I spy
-	0x0025e806, // n0x123a c0x0000 (---------------)  + I square
-	0x002638c5, // n0x123b c0x0000 (---------------)  + I stadt
-	0x002d69c8, // n0x123c c0x0000 (---------------)  + I stalbans
-	0x002d3ac9, // n0x123d c0x0000 (---------------)  + I starnberg
-	0x00284b45, // n0x123e c0x0000 (---------------)  + I state
-	0x002bfe4f, // n0x123f c0x0000 (---------------)  + I stateofdelaware
-	0x002f0787, // n0x1240 c0x0000 (---------------)  + I station
-	0x0021b105, // n0x1241 c0x0000 (---------------)  + I steam
-	0x002feb4a, // n0x1242 c0x0000 (---------------)  + I steiermark
-	0x002bcbc6, // n0x1243 c0x0000 (---------------)  + I stjohn
-	0x0020ac49, // n0x1244 c0x0000 (---------------)  + I stockholm
-	0x002e9d4c, // n0x1245 c0x0000 (---------------)  + I stpetersburg
-	0x002ea589, // n0x1246 c0x0000 (---------------)  + I stuttgart
-	0x00216c06, // n0x1247 c0x0000 (---------------)  + I suisse
-	0x002a6b4c, // n0x1248 c0x0000 (---------------)  + I surgeonshall
-	0x002eab06, // n0x1249 c0x0000 (---------------)  + I surrey
-	0x002ed3c8, // n0x124a c0x0000 (---------------)  + I svizzera
-	0x002d6b86, // n0x124b c0x0000 (---------------)  + I sweden
-	0x00263106, // n0x124c c0x0000 (---------------)  + I sydney
-	0x002dcb44, // n0x124d c0x0000 (---------------)  + I tank
-	0x0025fe83, // n0x124e c0x0000 (---------------)  + I tcm
-	0x00301d8a, // n0x124f c0x0000 (---------------)  + I technology
-	0x0024ab11, // n0x1250 c0x0000 (---------------)  + I telekommunikation
-	0x00238cca, // n0x1251 c0x0000 (---------------)  + I television
-	0x0023e645, // n0x1252 c0x0000 (---------------)  + I texas
-	0x00267107, // n0x1253 c0x0000 (---------------)  + I textile
-	0x002e7907, // n0x1254 c0x0000 (---------------)  + I theater
-	0x00262844, // n0x1255 c0x0000 (---------------)  + I time
-	0x0026284b, // n0x1256 c0x0000 (---------------)  + I timekeeping
-	0x002997c8, // n0x1257 c0x0000 (---------------)  + I topology
-	0x002afbc6, // n0x1258 c0x0000 (---------------)  + I torino
-	0x0022e985, // n0x1259 c0x0000 (---------------)  + I touch
-	0x002ed844, // n0x125a c0x0000 (---------------)  + I town
-	0x00293ac9, // n0x125b c0x0000 (---------------)  + I transport
-	0x002a8044, // n0x125c c0x0000 (---------------)  + I tree
-	0x0027fd07, // n0x125d c0x0000 (---------------)  + I trolley
-	0x002ee8c5, // n0x125e c0x0000 (---------------)  + I trust
-	0x002ee8c7, // n0x125f c0x0000 (---------------)  + I trustee
-	0x003026c5, // n0x1260 c0x0000 (---------------)  + I uhren
-	0x00207343, // n0x1261 c0x0000 (---------------)  + I ulm
-	0x002f9548, // n0x1262 c0x0000 (---------------)  + I undersea
-	0x003688ca, // n0x1263 c0x0000 (---------------)  + I university
-	0x00220203, // n0x1264 c0x0000 (---------------)  + I usa
-	0x0023270a, // n0x1265 c0x0000 (---------------)  + I usantiques
-	0x0036b746, // n0x1266 c0x0000 (---------------)  + I usarts
-	0x002848cf, // n0x1267 c0x0000 (---------------)  + I uscountryestate
-	0x0034f9c9, // n0x1268 c0x0000 (---------------)  + I usculture
-	0x00318290, // n0x1269 c0x0000 (---------------)  + I usdecorativearts
-	0x00242888, // n0x126a c0x0000 (---------------)  + I usgarden
-	0x002c3409, // n0x126b c0x0000 (---------------)  + I ushistory
-	0x002134c7, // n0x126c c0x0000 (---------------)  + I ushuaia
-	0x0029e1cf, // n0x126d c0x0000 (---------------)  + I uslivinghistory
-	0x00375044, // n0x126e c0x0000 (---------------)  + I utah
-	0x00369004, // n0x126f c0x0000 (---------------)  + I uvic
-	0x00216a46, // n0x1270 c0x0000 (---------------)  + I valley
-	0x002d3f46, // n0x1271 c0x0000 (---------------)  + I vantaa
-	0x002f2a8a, // n0x1272 c0x0000 (---------------)  + I versailles
-	0x0027c406, // n0x1273 c0x0000 (---------------)  + I viking
-	0x0030c487, // n0x1274 c0x0000 (---------------)  + I village
-	0x002f7788, // n0x1275 c0x0000 (---------------)  + I virginia
-	0x002f7987, // n0x1276 c0x0000 (---------------)  + I virtual
-	0x002f7b47, // n0x1277 c0x0000 (---------------)  + I virtuel
-	0x0032b58a, // n0x1278 c0x0000 (---------------)  + I vlaanderen
-	0x002f938b, // n0x1279 c0x0000 (---------------)  + I volkenkunde
-	0x002d0105, // n0x127a c0x0000 (---------------)  + I wales
-	0x00273108, // n0x127b c0x0000 (---------------)  + I wallonie
-	0x00202383, // n0x127c c0x0000 (---------------)  + I war
-	0x003459cc, // n0x127d c0x0000 (---------------)  + I washingtondc
-	0x0020054f, // n0x127e c0x0000 (---------------)  + I watch-and-clock
-	0x0028c68d, // n0x127f c0x0000 (---------------)  + I watchandclock
-	0x002e5707, // n0x1280 c0x0000 (---------------)  + I western
-	0x00209089, // n0x1281 c0x0000 (---------------)  + I westfalen
-	0x0021e247, // n0x1282 c0x0000 (---------------)  + I whaling
-	0x003236c8, // n0x1283 c0x0000 (---------------)  + I wildlife
-	0x0023188c, // n0x1284 c0x0000 (---------------)  + I williamsburg
-	0x0023f608, // n0x1285 c0x0000 (---------------)  + I windmill
-	0x0024f488, // n0x1286 c0x0000 (---------------)  + I workshop
-	0x002ffe0e, // n0x1287 c0x0000 (---------------)  + I xn--9dbhblg6di
-	0x0030d3d4, // n0x1288 c0x0000 (---------------)  + I xn--comunicaes-v6a2o
-	0x0030d8e4, // n0x1289 c0x0000 (---------------)  + I xn--correios-e-telecomunicaes-ghc29a
-	0x00325e8a, // n0x128a c0x0000 (---------------)  + I xn--h1aegh
-	0x00337b8b, // n0x128b c0x0000 (---------------)  + I xn--lns-qla
-	0x0020b8c4, // n0x128c c0x0000 (---------------)  + I york
-	0x0020b8c9, // n0x128d c0x0000 (---------------)  + I yorkshire
-	0x002cdfc8, // n0x128e c0x0000 (---------------)  + I yosemite
-	0x00342085, // n0x128f c0x0000 (---------------)  + I youth
-	0x0036a64a, // n0x1290 c0x0000 (---------------)  + I zoological
-	0x0025e9c7, // n0x1291 c0x0000 (---------------)  + I zoology
-	0x0027a1c4, // n0x1292 c0x0000 (---------------)  + I aero
-	0x00314c43, // n0x1293 c0x0000 (---------------)  + I biz
-	0x00222603, // n0x1294 c0x0000 (---------------)  + I com
-	0x00239dc4, // n0x1295 c0x0000 (---------------)  + I coop
-	0x0027a643, // n0x1296 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1297 c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x1298 c0x0000 (---------------)  + I info
-	0x00223a83, // n0x1299 c0x0000 (---------------)  + I int
-	0x0023f703, // n0x129a c0x0000 (---------------)  + I mil
-	0x002cb0c6, // n0x129b c0x0000 (---------------)  + I museum
-	0x0022aec4, // n0x129c c0x0000 (---------------)  + I name
-	0x00201603, // n0x129d c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x129e c0x0000 (---------------)  + I org
-	0x002d8443, // n0x129f c0x0000 (---------------)  + I pro
-	0x00201d82, // n0x12a0 c0x0000 (---------------)  + I ac
-	0x00314c43, // n0x12a1 c0x0000 (---------------)  + I biz
-	0x00207a02, // n0x12a2 c0x0000 (---------------)  + I co
-	0x00222603, // n0x12a3 c0x0000 (---------------)  + I com
-	0x00239dc4, // n0x12a4 c0x0000 (---------------)  + I coop
-	0x0027a643, // n0x12a5 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x12a6 c0x0000 (---------------)  + I gov
-	0x00223a83, // n0x12a7 c0x0000 (---------------)  + I int
-	0x002cb0c6, // n0x12a8 c0x0000 (---------------)  + I museum
-	0x00201603, // n0x12a9 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x12aa c0x0000 (---------------)  + I org
-	0x000b8948, // n0x12ab c0x0000 (---------------)  +   blogspot
-	0x00222603, // n0x12ac c0x0000 (---------------)  + I com
-	0x0027a643, // n0x12ad c0x0000 (---------------)  + I edu
-	0x0020dbc3, // n0x12ae c0x0000 (---------------)  + I gob
-	0x00201603, // n0x12af c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x12b0 c0x0000 (---------------)  + I org
-	0x00222603, // n0x12b1 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x12b2 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x12b3 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x12b4 c0x0000 (---------------)  + I mil
-	0x0022aec4, // n0x12b5 c0x0000 (---------------)  + I name
-	0x00201603, // n0x12b6 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x12b7 c0x0000 (---------------)  + I org
-	0x006a7608, // n0x12b8 c0x0001 (---------------)  ! I teledata
-	0x0020bc02, // n0x12b9 c0x0000 (---------------)  + I ca
-	0x00219f02, // n0x12ba c0x0000 (---------------)  + I cc
-	0x00207a02, // n0x12bb c0x0000 (---------------)  + I co
-	0x00222603, // n0x12bc c0x0000 (---------------)  + I com
-	0x00203982, // n0x12bd c0x0000 (---------------)  + I dr
-	0x002015c2, // n0x12be c0x0000 (---------------)  + I in
-	0x0021c704, // n0x12bf c0x0000 (---------------)  + I info
-	0x0020e884, // n0x12c0 c0x0000 (---------------)  + I mobi
-	0x0022ad42, // n0x12c1 c0x0000 (---------------)  + I mx
-	0x0022aec4, // n0x12c2 c0x0000 (---------------)  + I name
-	0x00200bc2, // n0x12c3 c0x0000 (---------------)  + I or
-	0x0021f5c3, // n0x12c4 c0x0000 (---------------)  + I org
-	0x002d8443, // n0x12c5 c0x0000 (---------------)  + I pro
-	0x002ffb06, // n0x12c6 c0x0000 (---------------)  + I school
-	0x00292602, // n0x12c7 c0x0000 (---------------)  + I tv
-	0x002054c2, // n0x12c8 c0x0000 (---------------)  + I us
-	0x00208182, // n0x12c9 c0x0000 (---------------)  + I ws
-	0x3320cf83, // n0x12ca c0x00cc (n0x12cc-n0x12cd)  o I her
-	0x33633dc3, // n0x12cb c0x00cd (n0x12cd-n0x12ce)  o I his
-	0x00053046, // n0x12cc c0x0000 (---------------)  +   forgot
-	0x00053046, // n0x12cd c0x0000 (---------------)  +   forgot
-	0x0029cfc4, // n0x12ce c0x0000 (---------------)  + I asso
-	0x0010894c, // n0x12cf c0x0000 (---------------)  +   at-band-camp
-	0x0006460c, // n0x12d0 c0x0000 (---------------)  +   azure-mobile
-	0x000bddcd, // n0x12d1 c0x0000 (---------------)  +   azurewebsites
-	0x00010dc7, // n0x12d2 c0x0000 (---------------)  +   blogdns
-	0x0001c908, // n0x12d3 c0x0000 (---------------)  +   broke-it
-	0x00027c0a, // n0x12d4 c0x0000 (---------------)  +   buyshouses
-	0x00087688, // n0x12d5 c0x0000 (---------------)  +   cloudapp
-	0x0003008a, // n0x12d6 c0x0000 (---------------)  +   cloudfront
-	0x00035348, // n0x12d7 c0x0000 (---------------)  +   dnsalias
-	0x0000b0c7, // n0x12d8 c0x0000 (---------------)  +   dnsdojo
-	0x0013ec07, // n0x12d9 c0x0000 (---------------)  +   does-it
-	0x000cd889, // n0x12da c0x0000 (---------------)  +   dontexist
-	0x0009fe08, // n0x12db c0x0000 (---------------)  +   dynalias
-	0x0001fd09, // n0x12dc c0x0000 (---------------)  +   dynathome
-	0x000a71cd, // n0x12dd c0x0000 (---------------)  +   endofinternet
-	0x342ba8c6, // n0x12de c0x00d0 (n0x12fe-n0x1300)  o I fastly
-	0x00060c47, // n0x12df c0x0000 (---------------)  +   from-az
-	0x00061b47, // n0x12e0 c0x0000 (---------------)  +   from-co
-	0x00066807, // n0x12e1 c0x0000 (---------------)  +   from-la
-	0x0006c147, // n0x12e2 c0x0000 (---------------)  +   from-ny
-	0x0000fb02, // n0x12e3 c0x0000 (---------------)  +   gb
-	0x00046307, // n0x12e4 c0x0000 (---------------)  +   gets-it
-	0x0004a68c, // n0x12e5 c0x0000 (---------------)  +   ham-radio-op
-	0x00019d07, // n0x12e6 c0x0000 (---------------)  +   homeftp
-	0x000c84c6, // n0x12e7 c0x0000 (---------------)  +   homeip
-	0x0009f1c9, // n0x12e8 c0x0000 (---------------)  +   homelinux
-	0x000a1908, // n0x12e9 c0x0000 (---------------)  +   homeunix
-	0x00001e02, // n0x12ea c0x0000 (---------------)  +   hu
-	0x000015c2, // n0x12eb c0x0000 (---------------)  +   in
-	0x0006514b, // n0x12ec c0x0000 (---------------)  +   in-the-band
-	0x001402c9, // n0x12ed c0x0000 (---------------)  +   is-a-chef
-	0x00067d49, // n0x12ee c0x0000 (---------------)  +   is-a-geek
-	0x0014bd08, // n0x12ef c0x0000 (---------------)  +   isa-geek
-	0x000a9f42, // n0x12f0 c0x0000 (---------------)  +   jp
-	0x00047a09, // n0x12f1 c0x0000 (---------------)  +   kicks-ass
-	0x0001ef4d, // n0x12f2 c0x0000 (---------------)  +   office-on-the
-	0x000d4e47, // n0x12f3 c0x0000 (---------------)  +   podzone
-	0x00092f4d, // n0x12f4 c0x0000 (---------------)  +   scrapper-site
-	0x00006d42, // n0x12f5 c0x0000 (---------------)  +   se
-	0x000ff606, // n0x12f6 c0x0000 (---------------)  +   selfip
-	0x000b5ac8, // n0x12f7 c0x0000 (---------------)  +   sells-it
-	0x00016d08, // n0x12f8 c0x0000 (---------------)  +   servebbs
-	0x0009cb88, // n0x12f9 c0x0000 (---------------)  +   serveftp
-	0x0004fc08, // n0x12fa c0x0000 (---------------)  +   thruhere
-	0x00000402, // n0x12fb c0x0000 (---------------)  +   uk
-	0x0004db86, // n0x12fc c0x0000 (---------------)  +   webhop
-	0x00003502, // n0x12fd c0x0000 (---------------)  +   za
-	0x346d86c4, // n0x12fe c0x00d1 (n0x1300-n0x1302)  o I prod
-	0x34a8d983, // n0x12ff c0x00d2 (n0x1302-n0x1305)  o I ssl
-	0x00000101, // n0x1300 c0x0000 (---------------)  +   a
-	0x00017cc6, // n0x1301 c0x0000 (---------------)  +   global
-	0x00000101, // n0x1302 c0x0000 (---------------)  +   a
-	0x00000001, // n0x1303 c0x0000 (---------------)  +   b
-	0x00017cc6, // n0x1304 c0x0000 (---------------)  +   global
-	0x002180c4, // n0x1305 c0x0000 (---------------)  + I arts
-	0x00222603, // n0x1306 c0x0000 (---------------)  + I com
-	0x00245bc4, // n0x1307 c0x0000 (---------------)  + I firm
-	0x0021c704, // n0x1308 c0x0000 (---------------)  + I info
-	0x00201603, // n0x1309 c0x0000 (---------------)  + I net
-	0x00369845, // n0x130a c0x0000 (---------------)  + I other
-	0x00222483, // n0x130b c0x0000 (---------------)  + I per
-	0x00227783, // n0x130c c0x0000 (---------------)  + I rec
-	0x002e9885, // n0x130d c0x0000 (---------------)  + I store
-	0x00205e43, // n0x130e c0x0000 (---------------)  + I web
-	0x00222603, // n0x130f c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1310 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1311 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x1312 c0x0000 (---------------)  + I mil
-	0x0020e884, // n0x1313 c0x0000 (---------------)  + I mobi
-	0x0022aec4, // n0x1314 c0x0000 (---------------)  + I name
-	0x00201603, // n0x1315 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1316 c0x0000 (---------------)  + I org
-	0x002526c3, // n0x1317 c0x0000 (---------------)  + I sch
-	0x000b8948, // n0x1318 c0x0000 (---------------)  +   blogspot
-	0x00228942, // n0x1319 c0x0000 (---------------)  + I bv
-	0x00007a02, // n0x131a c0x0000 (---------------)  +   co
-	0x35e20742, // n0x131b c0x00d7 (n0x15f1-n0x15f2)  + I aa
-	0x0036b108, // n0x131c c0x0000 (---------------)  + I aarborte
-	0x00220bc6, // n0x131d c0x0000 (---------------)  + I aejrie
-	0x0021ec46, // n0x131e c0x0000 (---------------)  + I afjord
-	0x00220547, // n0x131f c0x0000 (---------------)  + I agdenes
-	0x3620b442, // n0x1320 c0x00d8 (n0x15f2-n0x15f3)  + I ah
-	0x36684748, // n0x1321 c0x00d9 (n0x15f3-n0x15f4)  o I akershus
-	0x0024774a, // n0x1322 c0x0000 (---------------)  + I aknoluokta
-	0x00368108, // n0x1323 c0x0000 (---------------)  + I akrehamn
-	0x00202082, // n0x1324 c0x0000 (---------------)  + I al
-	0x00312489, // n0x1325 c0x0000 (---------------)  + I alaheadju
-	0x002d0147, // n0x1326 c0x0000 (---------------)  + I alesund
-	0x00213ec6, // n0x1327 c0x0000 (---------------)  + I algard
-	0x00366249, // n0x1328 c0x0000 (---------------)  + I alstahaug
-	0x00313fc4, // n0x1329 c0x0000 (---------------)  + I alta
-	0x00204fc6, // n0x132a c0x0000 (---------------)  + I alvdal
-	0x0021b1c4, // n0x132b c0x0000 (---------------)  + I amli
-	0x002070c4, // n0x132c c0x0000 (---------------)  + I amot
-	0x00256089, // n0x132d c0x0000 (---------------)  + I andasuolo
-	0x00346a06, // n0x132e c0x0000 (---------------)  + I andebu
-	0x00372245, // n0x132f c0x0000 (---------------)  + I andoy
-	0x0020c845, // n0x1330 c0x0000 (---------------)  + I ardal
-	0x002c0147, // n0x1331 c0x0000 (---------------)  + I aremark
-	0x0027c1c7, // n0x1332 c0x0000 (---------------)  + I arendal
-	0x00287104, // n0x1333 c0x0000 (---------------)  + I arna
-	0x00220786, // n0x1334 c0x0000 (---------------)  + I aseral
-	0x002f2145, // n0x1335 c0x0000 (---------------)  + I asker
-	0x0030f485, // n0x1336 c0x0000 (---------------)  + I askim
-	0x002ec085, // n0x1337 c0x0000 (---------------)  + I askoy
-	0x002f1dc7, // n0x1338 c0x0000 (---------------)  + I askvoll
-	0x0035a0c5, // n0x1339 c0x0000 (---------------)  + I asnes
-	0x00232349, // n0x133a c0x0000 (---------------)  + I audnedaln
-	0x00316fc5, // n0x133b c0x0000 (---------------)  + I aukra
-	0x00334204, // n0x133c c0x0000 (---------------)  + I aure
-	0x00361887, // n0x133d c0x0000 (---------------)  + I aurland
-	0x0034674e, // n0x133e c0x0000 (---------------)  + I aurskog-holand
-	0x0034ca49, // n0x133f c0x0000 (---------------)  + I austevoll
-	0x00302349, // n0x1340 c0x0000 (---------------)  + I austrheim
-	0x00353206, // n0x1341 c0x0000 (---------------)  + I averoy
-	0x00303708, // n0x1342 c0x0000 (---------------)  + I badaddja
-	0x0036cd4b, // n0x1343 c0x0000 (---------------)  + I bahcavuotna
-	0x00298fcc, // n0x1344 c0x0000 (---------------)  + I bahccavuotna
-	0x00266bc6, // n0x1345 c0x0000 (---------------)  + I baidar
-	0x002cb987, // n0x1346 c0x0000 (---------------)  + I bajddar
-	0x00217d85, // n0x1347 c0x0000 (---------------)  + I balat
-	0x0034968a, // n0x1348 c0x0000 (---------------)  + I balestrand
-	0x002a7909, // n0x1349 c0x0000 (---------------)  + I ballangen
-	0x0036c2c9, // n0x134a c0x0000 (---------------)  + I balsfjord
-	0x002f0c86, // n0x134b c0x0000 (---------------)  + I bamble
-	0x002ec5c5, // n0x134c c0x0000 (---------------)  + I bardu
-	0x0031c405, // n0x134d c0x0000 (---------------)  + I barum
-	0x00344889, // n0x134e c0x0000 (---------------)  + I batsfjord
-	0x00272a8b, // n0x134f c0x0000 (---------------)  + I bearalvahki
-	0x00278ec6, // n0x1350 c0x0000 (---------------)  + I beardu
-	0x002a2306, // n0x1351 c0x0000 (---------------)  + I beiarn
-	0x0020fa44, // n0x1352 c0x0000 (---------------)  + I berg
-	0x00287f06, // n0x1353 c0x0000 (---------------)  + I bergen
-	0x0020c288, // n0x1354 c0x0000 (---------------)  + I berlevag
-	0x00200006, // n0x1355 c0x0000 (---------------)  + I bievat
-	0x002a4346, // n0x1356 c0x0000 (---------------)  + I bindal
-	0x00209748, // n0x1357 c0x0000 (---------------)  + I birkenes
-	0x0020e2c7, // n0x1358 c0x0000 (---------------)  + I bjarkoy
-	0x0020e649, // n0x1359 c0x0000 (---------------)  + I bjerkreim
-	0x0020f6c5, // n0x135a c0x0000 (---------------)  + I bjugn
-	0x000b8948, // n0x135b c0x0000 (---------------)  +   blogspot
-	0x0020dc44, // n0x135c c0x0000 (---------------)  + I bodo
-	0x0021cdc4, // n0x135d c0x0000 (---------------)  + I bokn
-	0x00211a45, // n0x135e c0x0000 (---------------)  + I bomlo
-	0x002188c9, // n0x135f c0x0000 (---------------)  + I bremanger
-	0x0021d447, // n0x1360 c0x0000 (---------------)  + I bronnoy
-	0x0021d44b, // n0x1361 c0x0000 (---------------)  + I bronnoysund
-	0x0021f70a, // n0x1362 c0x0000 (---------------)  + I brumunddal
-	0x00227445, // n0x1363 c0x0000 (---------------)  + I bryne
-	0x36a03142, // n0x1364 c0x00da (n0x15f4-n0x15f5)  + I bu
-	0x00346b07, // n0x1365 c0x0000 (---------------)  + I budejju
-	0x36eaba88, // n0x1366 c0x00db (n0x15f5-n0x15f6)  o I buskerud
-	0x002c5e87, // n0x1367 c0x0000 (---------------)  + I bygland
-	0x002c5c85, // n0x1368 c0x0000 (---------------)  + I bykle
-	0x0026158a, // n0x1369 c0x0000 (---------------)  + I cahcesuolo
-	0x00007a02, // n0x136a c0x0000 (---------------)  +   co
-	0x0020258b, // n0x136b c0x0000 (---------------)  + I davvenjarga
-	0x0028bfca, // n0x136c c0x0000 (---------------)  + I davvesiida
-	0x00322146, // n0x136d c0x0000 (---------------)  + I deatnu
-	0x00369783, // n0x136e c0x0000 (---------------)  + I dep
-	0x0030010d, // n0x136f c0x0000 (---------------)  + I dielddanuorri
-	0x0031620c, // n0x1370 c0x0000 (---------------)  + I divtasvuodna
-	0x0031690d, // n0x1371 c0x0000 (---------------)  + I divttasvuotna
-	0x002a4ec5, // n0x1372 c0x0000 (---------------)  + I donna
-	0x0032e2c5, // n0x1373 c0x0000 (---------------)  + I dovre
-	0x003431c7, // n0x1374 c0x0000 (---------------)  + I drammen
-	0x00366b49, // n0x1375 c0x0000 (---------------)  + I drangedal
-	0x00368006, // n0x1376 c0x0000 (---------------)  + I drobak
-	0x0026a345, // n0x1377 c0x0000 (---------------)  + I dyroy
-	0x00230f08, // n0x1378 c0x0000 (---------------)  + I egersund
-	0x00287e03, // n0x1379 c0x0000 (---------------)  + I eid
-	0x003268c8, // n0x137a c0x0000 (---------------)  + I eidfjord
-	0x00287e08, // n0x137b c0x0000 (---------------)  + I eidsberg
-	0x002ba487, // n0x137c c0x0000 (---------------)  + I eidskog
-	0x0030b008, // n0x137d c0x0000 (---------------)  + I eidsvoll
-	0x00314349, // n0x137e c0x0000 (---------------)  + I eigersund
-	0x002dc447, // n0x137f c0x0000 (---------------)  + I elverum
-	0x0029a147, // n0x1380 c0x0000 (---------------)  + I enebakk
-	0x00204b48, // n0x1381 c0x0000 (---------------)  + I engerdal
-	0x0031dbc4, // n0x1382 c0x0000 (---------------)  + I etne
-	0x0031dbc7, // n0x1383 c0x0000 (---------------)  + I etnedal
-	0x00204508, // n0x1384 c0x0000 (---------------)  + I evenassi
-	0x00210106, // n0x1385 c0x0000 (---------------)  + I evenes
-	0x002294cf, // n0x1386 c0x0000 (---------------)  + I evje-og-hornnes
-	0x00210a87, // n0x1387 c0x0000 (---------------)  + I farsund
-	0x002d05c6, // n0x1388 c0x0000 (---------------)  + I fauske
-	0x00323845, // n0x1389 c0x0000 (---------------)  + I fedje
-	0x00281303, // n0x138a c0x0000 (---------------)  + I fet
-	0x0034f487, // n0x138b c0x0000 (---------------)  + I fetsund
-	0x00241b03, // n0x138c c0x0000 (---------------)  + I fhs
-	0x00244586, // n0x138d c0x0000 (---------------)  + I finnoy
-	0x00246706, // n0x138e c0x0000 (---------------)  + I fitjar
-	0x00249446, // n0x138f c0x0000 (---------------)  + I fjaler
-	0x0028b245, // n0x1390 c0x0000 (---------------)  + I fjell
-	0x002637c3, // n0x1391 c0x0000 (---------------)  + I fla
-	0x002637c8, // n0x1392 c0x0000 (---------------)  + I flakstad
-	0x0034d3c9, // n0x1393 c0x0000 (---------------)  + I flatanger
-	0x0024968b, // n0x1394 c0x0000 (---------------)  + I flekkefjord
-	0x00249948, // n0x1395 c0x0000 (---------------)  + I flesberg
-	0x0024c445, // n0x1396 c0x0000 (---------------)  + I flora
-	0x0024d005, // n0x1397 c0x0000 (---------------)  + I floro
-	0x37253942, // n0x1398 c0x00dc (n0x15f6-n0x15f7)  + I fm
-	0x0023a049, // n0x1399 c0x0000 (---------------)  + I folkebibl
-	0x00250f07, // n0x139a c0x0000 (---------------)  + I folldal
-	0x00366105, // n0x139b c0x0000 (---------------)  + I forde
-	0x00255f87, // n0x139c c0x0000 (---------------)  + I forsand
-	0x00258446, // n0x139d c0x0000 (---------------)  + I fosnes
-	0x0033b345, // n0x139e c0x0000 (---------------)  + I frana
-	0x00258c0b, // n0x139f c0x0000 (---------------)  + I fredrikstad
-	0x002593c4, // n0x13a0 c0x0000 (---------------)  + I frei
-	0x0025e205, // n0x13a1 c0x0000 (---------------)  + I frogn
-	0x0025e347, // n0x13a2 c0x0000 (---------------)  + I froland
-	0x00272406, // n0x13a3 c0x0000 (---------------)  + I frosta
-	0x00272845, // n0x13a4 c0x0000 (---------------)  + I froya
-	0x0027ed87, // n0x13a5 c0x0000 (---------------)  + I fuoisku
-	0x0027f147, // n0x13a6 c0x0000 (---------------)  + I fuossko
-	0x002a4044, // n0x13a7 c0x0000 (---------------)  + I fusa
-	0x002836ca, // n0x13a8 c0x0000 (---------------)  + I fylkesbibl
-	0x00283b88, // n0x13a9 c0x0000 (---------------)  + I fyresdal
-	0x002769c9, // n0x13aa c0x0000 (---------------)  + I gaivuotna
-	0x002027c5, // n0x13ab c0x0000 (---------------)  + I galsa
-	0x002191c6, // n0x13ac c0x0000 (---------------)  + I gamvik
-	0x0020c44a, // n0x13ad c0x0000 (---------------)  + I gangaviika
-	0x0020c746, // n0x13ae c0x0000 (---------------)  + I gaular
-	0x00208687, // n0x13af c0x0000 (---------------)  + I gausdal
-	0x00299acd, // n0x13b0 c0x0000 (---------------)  + I giehtavuoatna
-	0x0023b849, // n0x13b1 c0x0000 (---------------)  + I gildeskal
-	0x002ef6c5, // n0x13b2 c0x0000 (---------------)  + I giske
-	0x0031e647, // n0x13b3 c0x0000 (---------------)  + I gjemnes
-	0x0030ed48, // n0x13b4 c0x0000 (---------------)  + I gjerdrum
-	0x00367888, // n0x13b5 c0x0000 (---------------)  + I gjerstad
-	0x00201f47, // n0x13b6 c0x0000 (---------------)  + I gjesdal
-	0x00203206, // n0x13b7 c0x0000 (---------------)  + I gjovik
-	0x0021e3c7, // n0x13b8 c0x0000 (---------------)  + I gloppen
-	0x0036c583, // n0x13b9 c0x0000 (---------------)  + I gol
-	0x0031b384, // n0x13ba c0x0000 (---------------)  + I gran
-	0x00320fc5, // n0x13bb c0x0000 (---------------)  + I grane
-	0x00339107, // n0x13bc c0x0000 (---------------)  + I granvin
-	0x003552c9, // n0x13bd c0x0000 (---------------)  + I gratangen
-	0x0026a188, // n0x13be c0x0000 (---------------)  + I grimstad
-	0x0022c1c5, // n0x13bf c0x0000 (---------------)  + I grong
-	0x00237cc4, // n0x13c0 c0x0000 (---------------)  + I grue
-	0x0023d085, // n0x13c1 c0x0000 (---------------)  + I gulen
-	0x00244f4d, // n0x13c2 c0x0000 (---------------)  + I guovdageaidnu
-	0x00200a02, // n0x13c3 c0x0000 (---------------)  + I ha
-	0x00306b46, // n0x13c4 c0x0000 (---------------)  + I habmer
-	0x002ff546, // n0x13c5 c0x0000 (---------------)  + I hadsel
-	0x003260ca, // n0x13c6 c0x0000 (---------------)  + I hagebostad
-	0x00283d86, // n0x13c7 c0x0000 (---------------)  + I halden
-	0x00283f05, // n0x13c8 c0x0000 (---------------)  + I halsa
-	0x00299e85, // n0x13c9 c0x0000 (---------------)  + I hamar
-	0x00299e87, // n0x13ca c0x0000 (---------------)  + I hamaroy
-	0x0028424c, // n0x13cb c0x0000 (---------------)  + I hammarfeasta
-	0x002a304a, // n0x13cc c0x0000 (---------------)  + I hammerfest
-	0x00286f06, // n0x13cd c0x0000 (---------------)  + I hapmir
-	0x002bcec5, // n0x13ce c0x0000 (---------------)  + I haram
-	0x00287d46, // n0x13cf c0x0000 (---------------)  + I hareid
-	0x00288087, // n0x13d0 c0x0000 (---------------)  + I harstad
-	0x00289546, // n0x13d1 c0x0000 (---------------)  + I hasvik
-	0x0028b14c, // n0x13d2 c0x0000 (---------------)  + I hattfjelldal
-	0x00366389, // n0x13d3 c0x0000 (---------------)  + I haugesund
-	0x37652b07, // n0x13d4 c0x00dd (n0x15f7-n0x15fa)  o I hedmark
-	0x0028d145, // n0x13d5 c0x0000 (---------------)  + I hemne
-	0x0028d146, // n0x13d6 c0x0000 (---------------)  + I hemnes
-	0x0028d608, // n0x13d7 c0x0000 (---------------)  + I hemsedal
-	0x00267985, // n0x13d8 c0x0000 (---------------)  + I herad
-	0x0029e585, // n0x13d9 c0x0000 (---------------)  + I hitra
-	0x0029e7c8, // n0x13da c0x0000 (---------------)  + I hjartdal
-	0x0029e9ca, // n0x13db c0x0000 (---------------)  + I hjelmeland
-	0x37a6e482, // n0x13dc c0x00de (n0x15fa-n0x15fb)  + I hl
-	0x37e60182, // n0x13dd c0x00df (n0x15fb-n0x15fc)  + I hm
-	0x0033fa05, // n0x13de c0x0000 (---------------)  + I hobol
-	0x002a4b83, // n0x13df c0x0000 (---------------)  + I hof
-	0x00219988, // n0x13e0 c0x0000 (---------------)  + I hokksund
-	0x0020ad83, // n0x13e1 c0x0000 (---------------)  + I hol
-	0x0029ec44, // n0x13e2 c0x0000 (---------------)  + I hole
-	0x0020ad8b, // n0x13e3 c0x0000 (---------------)  + I holmestrand
-	0x0025f948, // n0x13e4 c0x0000 (---------------)  + I holtalen
-	0x002a2888, // n0x13e5 c0x0000 (---------------)  + I honefoss
-	0x38310c49, // n0x13e6 c0x00e0 (n0x15fc-n0x15fd)  o I hordaland
-	0x002a59c9, // n0x13e7 c0x0000 (---------------)  + I hornindal
-	0x002a70c6, // n0x13e8 c0x0000 (---------------)  + I horten
-	0x002a7b48, // n0x13e9 c0x0000 (---------------)  + I hoyanger
-	0x002a7d49, // n0x13ea c0x0000 (---------------)  + I hoylandet
-	0x002a87c6, // n0x13eb c0x0000 (---------------)  + I hurdal
-	0x002a8945, // n0x13ec c0x0000 (---------------)  + I hurum
-	0x00242086, // n0x13ed c0x0000 (---------------)  + I hvaler
-	0x00357f49, // n0x13ee c0x0000 (---------------)  + I hyllestad
-	0x00316087, // n0x13ef c0x0000 (---------------)  + I ibestad
-	0x00261186, // n0x13f0 c0x0000 (---------------)  + I idrett
-	0x002edb47, // n0x13f1 c0x0000 (---------------)  + I inderoy
-	0x00315447, // n0x13f2 c0x0000 (---------------)  + I iveland
-	0x00243cc4, // n0x13f3 c0x0000 (---------------)  + I ivgu
-	0x38617549, // n0x13f4 c0x00e1 (n0x15fd-n0x15fe)  + I jan-mayen
-	0x002c18c8, // n0x13f5 c0x0000 (---------------)  + I jessheim
-	0x0026b348, // n0x13f6 c0x0000 (---------------)  + I jevnaker
-	0x0023c587, // n0x13f7 c0x0000 (---------------)  + I jolster
-	0x002bea46, // n0x13f8 c0x0000 (---------------)  + I jondal
-	0x0023b309, // n0x13f9 c0x0000 (---------------)  + I jorpeland
-	0x0021ec07, // n0x13fa c0x0000 (---------------)  + I kafjord
-	0x002ef9ca, // n0x13fb c0x0000 (---------------)  + I karasjohka
-	0x002a6008, // n0x13fc c0x0000 (---------------)  + I karasjok
-	0x0036c887, // n0x13fd c0x0000 (---------------)  + I karlsoy
-	0x0036dbc6, // n0x13fe c0x0000 (---------------)  + I karmoy
-	0x0022cc8a, // n0x13ff c0x0000 (---------------)  + I kautokeino
-	0x0024ec48, // n0x1400 c0x0000 (---------------)  + I kirkenes
-	0x0026af85, // n0x1401 c0x0000 (---------------)  + I klabu
-	0x0022a745, // n0x1402 c0x0000 (---------------)  + I klepp
-	0x002ae107, // n0x1403 c0x0000 (---------------)  + I kommune
-	0x002c4d09, // n0x1404 c0x0000 (---------------)  + I kongsberg
-	0x002c93cb, // n0x1405 c0x0000 (---------------)  + I kongsvinger
-	0x002e10c8, // n0x1406 c0x0000 (---------------)  + I kopervik
-	0x00317049, // n0x1407 c0x0000 (---------------)  + I kraanghke
-	0x002acb07, // n0x1408 c0x0000 (---------------)  + I kragero
-	0x002ae3cc, // n0x1409 c0x0000 (---------------)  + I kristiansand
-	0x002ae84c, // n0x140a c0x0000 (---------------)  + I kristiansund
-	0x002aeb4a, // n0x140b c0x0000 (---------------)  + I krodsherad
-	0x002aedcc, // n0x140c c0x0000 (---------------)  + I krokstadelva
-	0x002b9348, // n0x140d c0x0000 (---------------)  + I kvafjord
-	0x002b9548, // n0x140e c0x0000 (---------------)  + I kvalsund
-	0x002b9744, // n0x140f c0x0000 (---------------)  + I kvam
-	0x002b9c09, // n0x1410 c0x0000 (---------------)  + I kvanangen
-	0x002b9e49, // n0x1411 c0x0000 (---------------)  + I kvinesdal
-	0x002ba08a, // n0x1412 c0x0000 (---------------)  + I kvinnherad
-	0x002ba309, // n0x1413 c0x0000 (---------------)  + I kviteseid
-	0x002ba647, // n0x1414 c0x0000 (---------------)  + I kvitsoy
-	0x0024094c, // n0x1415 c0x0000 (---------------)  + I laakesvuemie
-	0x0020b406, // n0x1416 c0x0000 (---------------)  + I lahppi
-	0x00229e88, // n0x1417 c0x0000 (---------------)  + I langevag
-	0x0020c806, // n0x1418 c0x0000 (---------------)  + I lardal
-	0x002d1186, // n0x1419 c0x0000 (---------------)  + I larvik
-	0x002ef5c7, // n0x141a c0x0000 (---------------)  + I lavagis
-	0x00337dc8, // n0x141b c0x0000 (---------------)  + I lavangen
-	0x0028024b, // n0x141c c0x0000 (---------------)  + I leangaviika
-	0x002c5d47, // n0x141d c0x0000 (---------------)  + I lebesby
-	0x00264889, // n0x141e c0x0000 (---------------)  + I leikanger
-	0x00267249, // n0x141f c0x0000 (---------------)  + I leirfjord
-	0x002bbe87, // n0x1420 c0x0000 (---------------)  + I leirvik
-	0x002291c4, // n0x1421 c0x0000 (---------------)  + I leka
-	0x002d5907, // n0x1422 c0x0000 (---------------)  + I leksvik
-	0x0027c346, // n0x1423 c0x0000 (---------------)  + I lenvik
-	0x00249506, // n0x1424 c0x0000 (---------------)  + I lerdal
-	0x00221805, // n0x1425 c0x0000 (---------------)  + I lesja
-	0x002a85c8, // n0x1426 c0x0000 (---------------)  + I levanger
-	0x0021b244, // n0x1427 c0x0000 (---------------)  + I lier
-	0x0021b246, // n0x1428 c0x0000 (---------------)  + I lierne
-	0x002a2f0b, // n0x1429 c0x0000 (---------------)  + I lillehammer
-	0x00347349, // n0x142a c0x0000 (---------------)  + I lillesand
-	0x0030f386, // n0x142b c0x0000 (---------------)  + I lindas
-	0x0034cc49, // n0x142c c0x0000 (---------------)  + I lindesnes
-	0x00211b06, // n0x142d c0x0000 (---------------)  + I loabat
-	0x002d5c08, // n0x142e c0x0000 (---------------)  + I lodingen
-	0x00224303, // n0x142f c0x0000 (---------------)  + I lom
-	0x00208805, // n0x1430 c0x0000 (---------------)  + I loppa
-	0x0020c949, // n0x1431 c0x0000 (---------------)  + I lorenskog
-	0x0021f945, // n0x1432 c0x0000 (---------------)  + I loten
-	0x002e1b84, // n0x1433 c0x0000 (---------------)  + I lund
-	0x00271a46, // n0x1434 c0x0000 (---------------)  + I lunner
-	0x0022ff45, // n0x1435 c0x0000 (---------------)  + I luroy
-	0x00233446, // n0x1436 c0x0000 (---------------)  + I luster
-	0x002fa8c7, // n0x1437 c0x0000 (---------------)  + I lyngdal
-	0x0026d246, // n0x1438 c0x0000 (---------------)  + I lyngen
-	0x0029250b, // n0x1439 c0x0000 (---------------)  + I malatvuopmi
-	0x0036d3c7, // n0x143a c0x0000 (---------------)  + I malselv
-	0x002fcd06, // n0x143b c0x0000 (---------------)  + I malvik
-	0x00334a46, // n0x143c c0x0000 (---------------)  + I mandal
-	0x002c0206, // n0x143d c0x0000 (---------------)  + I marker
-	0x002870c9, // n0x143e c0x0000 (---------------)  + I marnardal
-	0x002f8c8a, // n0x143f c0x0000 (---------------)  + I masfjorden
-	0x0032c945, // n0x1440 c0x0000 (---------------)  + I masoy
-	0x00344d8d, // n0x1441 c0x0000 (---------------)  + I matta-varjjat
-	0x0029eac6, // n0x1442 c0x0000 (---------------)  + I meland
-	0x002a6f46, // n0x1443 c0x0000 (---------------)  + I meldal
-	0x00242786, // n0x1444 c0x0000 (---------------)  + I melhus
-	0x0030ef05, // n0x1445 c0x0000 (---------------)  + I meloy
-	0x00284687, // n0x1446 c0x0000 (---------------)  + I meraker
-	0x0027c7c7, // n0x1447 c0x0000 (---------------)  + I midsund
-	0x00275d0e, // n0x1448 c0x0000 (---------------)  + I midtre-gauldal
-	0x0023f703, // n0x1449 c0x0000 (---------------)  + I mil
-	0x002bea09, // n0x144a c0x0000 (---------------)  + I mjondalen
-	0x00309249, // n0x144b c0x0000 (---------------)  + I mo-i-rana
-	0x00349a87, // n0x144c c0x0000 (---------------)  + I moareke
-	0x00268687, // n0x144d c0x0000 (---------------)  + I modalen
-	0x00296445, // n0x144e c0x0000 (---------------)  + I modum
-	0x003696c5, // n0x144f c0x0000 (---------------)  + I molde
-	0x38ae678f, // n0x1450 c0x00e2 (n0x15fe-n0x1600)  o I more-og-romsdal
-	0x002c3647, // n0x1451 c0x0000 (---------------)  + I mosjoen
-	0x002c3808, // n0x1452 c0x0000 (---------------)  + I moskenes
-	0x002c4744, // n0x1453 c0x0000 (---------------)  + I moss
-	0x002c4bc6, // n0x1454 c0x0000 (---------------)  + I mosvik
-	0x38e119c2, // n0x1455 c0x00e3 (n0x1600-n0x1601)  + I mr
-	0x002c9006, // n0x1456 c0x0000 (---------------)  + I muosat
-	0x002cb0c6, // n0x1457 c0x0000 (---------------)  + I museum
-	0x0030940e, // n0x1458 c0x0000 (---------------)  + I naamesjevuemie
-	0x0032670a, // n0x1459 c0x0000 (---------------)  + I namdalseid
-	0x002706c6, // n0x145a c0x0000 (---------------)  + I namsos
-	0x002def0a, // n0x145b c0x0000 (---------------)  + I namsskogan
-	0x002457c9, // n0x145c c0x0000 (---------------)  + I nannestad
-	0x00307a85, // n0x145d c0x0000 (---------------)  + I naroy
-	0x00355a88, // n0x145e c0x0000 (---------------)  + I narviika
-	0x0035b646, // n0x145f c0x0000 (---------------)  + I narvik
-	0x0035e408, // n0x1460 c0x0000 (---------------)  + I naustdal
-	0x00203e48, // n0x1461 c0x0000 (---------------)  + I navuotna
-	0x002764cb, // n0x1462 c0x0000 (---------------)  + I nedre-eiker
-	0x00220645, // n0x1463 c0x0000 (---------------)  + I nesna
-	0x0035a148, // n0x1464 c0x0000 (---------------)  + I nesodden
-	0x0020988c, // n0x1465 c0x0000 (---------------)  + I nesoddtangen
-	0x002c6947, // n0x1466 c0x0000 (---------------)  + I nesseby
-	0x00248fc6, // n0x1467 c0x0000 (---------------)  + I nesset
-	0x0026d388, // n0x1468 c0x0000 (---------------)  + I nissedal
-	0x00204e48, // n0x1469 c0x0000 (---------------)  + I nittedal
-	0x39244442, // n0x146a c0x00e4 (n0x1601-n0x1602)  + I nl
-	0x0023574b, // n0x146b c0x0000 (---------------)  + I nord-aurdal
-	0x002ec289, // n0x146c c0x0000 (---------------)  + I nord-fron
-	0x002b0c89, // n0x146d c0x0000 (---------------)  + I nord-odal
-	0x00349c87, // n0x146e c0x0000 (---------------)  + I norddal
-	0x00222b48, // n0x146f c0x0000 (---------------)  + I nordkapp
-	0x396f7f88, // n0x1470 c0x00e5 (n0x1602-n0x1606)  o I nordland
-	0x0023aacb, // n0x1471 c0x0000 (---------------)  + I nordre-land
-	0x0034bb89, // n0x1472 c0x0000 (---------------)  + I nordreisa
-	0x0022f8cd, // n0x1473 c0x0000 (---------------)  + I nore-og-uvdal
-	0x002502c8, // n0x1474 c0x0000 (---------------)  + I notodden
-	0x00296fc8, // n0x1475 c0x0000 (---------------)  + I notteroy
-	0x39a0ddc2, // n0x1476 c0x00e6 (n0x1606-n0x1607)  + I nt
-	0x00321704, // n0x1477 c0x0000 (---------------)  + I odda
-	0x39e1ef42, // n0x1478 c0x00e7 (n0x1607-n0x1608)  + I of
-	0x0032d246, // n0x1479 c0x0000 (---------------)  + I oksnes
-	0x3a200c42, // n0x147a c0x00e8 (n0x1608-n0x1609)  + I ol
-	0x002e6bca, // n0x147b c0x0000 (---------------)  + I omasvuotna
-	0x00311486, // n0x147c c0x0000 (---------------)  + I oppdal
-	0x002da148, // n0x147d c0x0000 (---------------)  + I oppegard
-	0x0028cf48, // n0x147e c0x0000 (---------------)  + I orkanger
-	0x00221a46, // n0x147f c0x0000 (---------------)  + I orkdal
-	0x0030a246, // n0x1480 c0x0000 (---------------)  + I orland
-	0x002db946, // n0x1481 c0x0000 (---------------)  + I orskog
-	0x002d6945, // n0x1482 c0x0000 (---------------)  + I orsta
-	0x00206d04, // n0x1483 c0x0000 (---------------)  + I osen
-	0x3a624284, // n0x1484 c0x00e9 (n0x1609-n0x160a)  + I oslo
-	0x002143c6, // n0x1485 c0x0000 (---------------)  + I osoyro
-	0x002681c7, // n0x1486 c0x0000 (---------------)  + I osteroy
-	0x3aaef387, // n0x1487 c0x00ea (n0x160a-n0x160b)  o I ostfold
-	0x0020938b, // n0x1488 c0x0000 (---------------)  + I ostre-toten
-	0x002865c9, // n0x1489 c0x0000 (---------------)  + I overhalla
-	0x0032e30a, // n0x148a c0x0000 (---------------)  + I ovre-eiker
-	0x00309104, // n0x148b c0x0000 (---------------)  + I oyer
-	0x00299fc8, // n0x148c c0x0000 (---------------)  + I oygarden
-	0x00260f4d, // n0x148d c0x0000 (---------------)  + I oystre-slidre
-	0x002d6309, // n0x148e c0x0000 (---------------)  + I porsanger
-	0x002d6548, // n0x148f c0x0000 (---------------)  + I porsangu
-	0x002d6d09, // n0x1490 c0x0000 (---------------)  + I porsgrunn
-	0x002d82c4, // n0x1491 c0x0000 (---------------)  + I priv
-	0x0022eec4, // n0x1492 c0x0000 (---------------)  + I rade
-	0x0033ab85, // n0x1493 c0x0000 (---------------)  + I radoy
-	0x0036ad4b, // n0x1494 c0x0000 (---------------)  + I rahkkeravju
-	0x0025f8c6, // n0x1495 c0x0000 (---------------)  + I raholt
-	0x002b1685, // n0x1496 c0x0000 (---------------)  + I raisa
-	0x002770c9, // n0x1497 c0x0000 (---------------)  + I rakkestad
-	0x00220848, // n0x1498 c0x0000 (---------------)  + I ralingen
-	0x00268e04, // n0x1499 c0x0000 (---------------)  + I rana
-	0x00349809, // n0x149a c0x0000 (---------------)  + I randaberg
-	0x002b46c5, // n0x149b c0x0000 (---------------)  + I rauma
-	0x0027c208, // n0x149c c0x0000 (---------------)  + I rendalen
-	0x0029a807, // n0x149d c0x0000 (---------------)  + I rennebu
-	0x00302748, // n0x149e c0x0000 (---------------)  + I rennesoy
-	0x002be606, // n0x149f c0x0000 (---------------)  + I rindal
-	0x00247e07, // n0x14a0 c0x0000 (---------------)  + I ringebu
-	0x002c4089, // n0x14a1 c0x0000 (---------------)  + I ringerike
-	0x00369c49, // n0x14a2 c0x0000 (---------------)  + I ringsaker
-	0x0024dd45, // n0x14a3 c0x0000 (---------------)  + I risor
-	0x002a4d85, // n0x14a4 c0x0000 (---------------)  + I rissa
-	0x3ae0c302, // n0x14a5 c0x00eb (n0x160b-n0x160c)  + I rl
-	0x00333fc4, // n0x14a6 c0x0000 (---------------)  + I roan
-	0x0022c785, // n0x14a7 c0x0000 (---------------)  + I rodoy
-	0x0032c086, // n0x14a8 c0x0000 (---------------)  + I rollag
-	0x00357145, // n0x14a9 c0x0000 (---------------)  + I romsa
-	0x002305c7, // n0x14aa c0x0000 (---------------)  + I romskog
-	0x0024d0c5, // n0x14ab c0x0000 (---------------)  + I roros
-	0x00208c44, // n0x14ac c0x0000 (---------------)  + I rost
-	0x003532c6, // n0x14ad c0x0000 (---------------)  + I royken
-	0x0026a3c7, // n0x14ae c0x0000 (---------------)  + I royrvik
-	0x002cfd46, // n0x14af c0x0000 (---------------)  + I ruovat
-	0x00315b05, // n0x14b0 c0x0000 (---------------)  + I rygge
-	0x00221288, // n0x14b1 c0x0000 (---------------)  + I salangen
-	0x00222845, // n0x14b2 c0x0000 (---------------)  + I salat
-	0x002230c7, // n0x14b3 c0x0000 (---------------)  + I saltdal
-	0x00229849, // n0x14b4 c0x0000 (---------------)  + I samnanger
-	0x002ae5ca, // n0x14b5 c0x0000 (---------------)  + I sandefjord
-	0x002890c7, // n0x14b6 c0x0000 (---------------)  + I sandnes
-	0x002890cc, // n0x14b7 c0x0000 (---------------)  + I sandnessjoen
-	0x00372206, // n0x14b8 c0x0000 (---------------)  + I sandoy
-	0x0024a1c9, // n0x14b9 c0x0000 (---------------)  + I sarpsborg
-	0x00265785, // n0x14ba c0x0000 (---------------)  + I sauda
-	0x002678c8, // n0x14bb c0x0000 (---------------)  + I sauherad
-	0x00211683, // n0x14bc c0x0000 (---------------)  + I sel
-	0x00211685, // n0x14bd c0x0000 (---------------)  + I selbu
-	0x00256a45, // n0x14be c0x0000 (---------------)  + I selje
-	0x002d0b07, // n0x14bf c0x0000 (---------------)  + I seljord
-	0x3b24f102, // n0x14c0 c0x00ec (n0x160c-n0x160d)  + I sf
-	0x00288c47, // n0x14c1 c0x0000 (---------------)  + I siellak
-	0x002dff06, // n0x14c2 c0x0000 (---------------)  + I sigdal
-	0x00217486, // n0x14c3 c0x0000 (---------------)  + I siljan
-	0x002e08c6, // n0x14c4 c0x0000 (---------------)  + I sirdal
-	0x00204d86, // n0x14c5 c0x0000 (---------------)  + I skanit
-	0x003177c8, // n0x14c6 c0x0000 (---------------)  + I skanland
-	0x0030ae45, // n0x14c7 c0x0000 (---------------)  + I skaun
-	0x002d0687, // n0x14c8 c0x0000 (---------------)  + I skedsmo
-	0x002d068d, // n0x14c9 c0x0000 (---------------)  + I skedsmokorset
-	0x0021a9c3, // n0x14ca c0x0000 (---------------)  + I ski
-	0x0021a9c5, // n0x14cb c0x0000 (---------------)  + I skien
-	0x002fe907, // n0x14cc c0x0000 (---------------)  + I skierva
-	0x002de008, // n0x14cd c0x0000 (---------------)  + I skiptvet
-	0x00247685, // n0x14ce c0x0000 (---------------)  + I skjak
-	0x00221f88, // n0x14cf c0x0000 (---------------)  + I skjervoy
-	0x0024d646, // n0x14d0 c0x0000 (---------------)  + I skodje
-	0x0028d9c7, // n0x14d1 c0x0000 (---------------)  + I slattum
-	0x00229dc5, // n0x14d2 c0x0000 (---------------)  + I smola
-	0x002206c6, // n0x14d3 c0x0000 (---------------)  + I snaase
-	0x00261885, // n0x14d4 c0x0000 (---------------)  + I snasa
-	0x00232f0a, // n0x14d5 c0x0000 (---------------)  + I snillfjord
-	0x002b8046, // n0x14d6 c0x0000 (---------------)  + I snoasa
-	0x00281007, // n0x14d7 c0x0000 (---------------)  + I sogndal
-	0x002b4145, // n0x14d8 c0x0000 (---------------)  + I sogne
-	0x002ee707, // n0x14d9 c0x0000 (---------------)  + I sokndal
-	0x002e1704, // n0x14da c0x0000 (---------------)  + I sola
-	0x002e1b06, // n0x14db c0x0000 (---------------)  + I solund
-	0x002e22c5, // n0x14dc c0x0000 (---------------)  + I somna
-	0x0029ad8b, // n0x14dd c0x0000 (---------------)  + I sondre-land
-	0x00303989, // n0x14de c0x0000 (---------------)  + I songdalen
-	0x0025a5ca, // n0x14df c0x0000 (---------------)  + I sor-aurdal
-	0x0024ddc8, // n0x14e0 c0x0000 (---------------)  + I sor-fron
-	0x002e2e48, // n0x14e1 c0x0000 (---------------)  + I sor-odal
-	0x002e304c, // n0x14e2 c0x0000 (---------------)  + I sor-varanger
-	0x002e3347, // n0x14e3 c0x0000 (---------------)  + I sorfold
-	0x002e3508, // n0x14e4 c0x0000 (---------------)  + I sorreisa
-	0x002e43c8, // n0x14e5 c0x0000 (---------------)  + I sortland
-	0x002e45c5, // n0x14e6 c0x0000 (---------------)  + I sorum
-	0x002e8e4a, // n0x14e7 c0x0000 (---------------)  + I spjelkavik
-	0x002e9349, // n0x14e8 c0x0000 (---------------)  + I spydeberg
-	0x3b605502, // n0x14e9 c0x00ed (n0x160d-n0x160e)  + I st
-	0x00319806, // n0x14ea c0x0000 (---------------)  + I stange
-	0x00284b44, // n0x14eb c0x0000 (---------------)  + I stat
-	0x002d5749, // n0x14ec c0x0000 (---------------)  + I stathelle
-	0x00347a89, // n0x14ed c0x0000 (---------------)  + I stavanger
-	0x00228bc7, // n0x14ee c0x0000 (---------------)  + I stavern
-	0x0026bf87, // n0x14ef c0x0000 (---------------)  + I steigen
-	0x002739c9, // n0x14f0 c0x0000 (---------------)  + I steinkjer
-	0x002d2548, // n0x14f1 c0x0000 (---------------)  + I stjordal
-	0x002d254f, // n0x14f2 c0x0000 (---------------)  + I stjordalshalsen
-	0x00239c46, // n0x14f3 c0x0000 (---------------)  + I stokke
-	0x0030f10b, // n0x14f4 c0x0000 (---------------)  + I stor-elvdal
-	0x0028d445, // n0x14f5 c0x0000 (---------------)  + I stord
-	0x0028d447, // n0x14f6 c0x0000 (---------------)  + I stordal
-	0x002e9b09, // n0x14f7 c0x0000 (---------------)  + I storfjord
-	0x0020aec6, // n0x14f8 c0x0000 (---------------)  + I strand
-	0x00349787, // n0x14f9 c0x0000 (---------------)  + I stranda
-	0x00273845, // n0x14fa c0x0000 (---------------)  + I stryn
-	0x00235144, // n0x14fb c0x0000 (---------------)  + I sula
-	0x002d3546, // n0x14fc c0x0000 (---------------)  + I suldal
-	0x00210b44, // n0x14fd c0x0000 (---------------)  + I sund
-	0x002aafc7, // n0x14fe c0x0000 (---------------)  + I sunndal
-	0x00324a08, // n0x14ff c0x0000 (---------------)  + I surnadal
-	0x3baec4c8, // n0x1500 c0x00ee (n0x160e-n0x160f)  + I svalbard
-	0x002ecec5, // n0x1501 c0x0000 (---------------)  + I sveio
-	0x002ed007, // n0x1502 c0x0000 (---------------)  + I svelvik
-	0x00270b89, // n0x1503 c0x0000 (---------------)  + I sykkylven
-	0x0021dcc4, // n0x1504 c0x0000 (---------------)  + I tana
-	0x002bc148, // n0x1505 c0x0000 (---------------)  + I tananger
-	0x3bea1ec8, // n0x1506 c0x00ef (n0x160f-n0x1611)  o I telemark
-	0x00262844, // n0x1507 c0x0000 (---------------)  + I time
-	0x00236208, // n0x1508 c0x0000 (---------------)  + I tingvoll
-	0x0036e2c4, // n0x1509 c0x0000 (---------------)  + I tinn
-	0x002412c9, // n0x150a c0x0000 (---------------)  + I tjeldsund
-	0x002426c5, // n0x150b c0x0000 (---------------)  + I tjome
-	0x3c200142, // n0x150c c0x00f0 (n0x1611-n0x1612)  + I tm
-	0x00239c85, // n0x150d c0x0000 (---------------)  + I tokke
-	0x00219105, // n0x150e c0x0000 (---------------)  + I tolga
-	0x00253588, // n0x150f c0x0000 (---------------)  + I tonsberg
-	0x00237f87, // n0x1510 c0x0000 (---------------)  + I torsken
-	0x3c605542, // n0x1511 c0x00f1 (n0x1612-n0x1613)  + I tr
-	0x00268dc5, // n0x1512 c0x0000 (---------------)  + I trana
-	0x00271506, // n0x1513 c0x0000 (---------------)  + I tranby
-	0x00291006, // n0x1514 c0x0000 (---------------)  + I tranoy
-	0x00333f88, // n0x1515 c0x0000 (---------------)  + I troandin
-	0x0033ed88, // n0x1516 c0x0000 (---------------)  + I trogstad
-	0x00357106, // n0x1517 c0x0000 (---------------)  + I tromsa
-	0x002ee606, // n0x1518 c0x0000 (---------------)  + I tromso
-	0x002a3449, // n0x1519 c0x0000 (---------------)  + I trondheim
-	0x002eea86, // n0x151a c0x0000 (---------------)  + I trysil
-	0x00363ecb, // n0x151b c0x0000 (---------------)  + I tvedestrand
-	0x00233345, // n0x151c c0x0000 (---------------)  + I tydal
-	0x002a0d46, // n0x151d c0x0000 (---------------)  + I tynset
-	0x00315788, // n0x151e c0x0000 (---------------)  + I tysfjord
-	0x00281386, // n0x151f c0x0000 (---------------)  + I tysnes
-	0x002e4f86, // n0x1520 c0x0000 (---------------)  + I tysvar
-	0x0020e04a, // n0x1521 c0x0000 (---------------)  + I ullensaker
-	0x0034b0ca, // n0x1522 c0x0000 (---------------)  + I ullensvang
-	0x00245245, // n0x1523 c0x0000 (---------------)  + I ulvik
-	0x002700c7, // n0x1524 c0x0000 (---------------)  + I unjarga
-	0x002f4546, // n0x1525 c0x0000 (---------------)  + I utsira
-	0x3ca000c2, // n0x1526 c0x00f2 (n0x1613-n0x1614)  + I va
-	0x002fea47, // n0x1527 c0x0000 (---------------)  + I vaapste
-	0x0027bfc5, // n0x1528 c0x0000 (---------------)  + I vadso
-	0x0020c3c4, // n0x1529 c0x0000 (---------------)  + I vaga
-	0x0020c3c5, // n0x152a c0x0000 (---------------)  + I vagan
-	0x00309006, // n0x152b c0x0000 (---------------)  + I vagsoy
-	0x002cf707, // n0x152c c0x0000 (---------------)  + I vaksdal
-	0x00216a45, // n0x152d c0x0000 (---------------)  + I valle
-	0x002a8644, // n0x152e c0x0000 (---------------)  + I vang
-	0x00271d48, // n0x152f c0x0000 (---------------)  + I vanylven
-	0x002e5045, // n0x1530 c0x0000 (---------------)  + I vardo
-	0x0036efc7, // n0x1531 c0x0000 (---------------)  + I varggat
-	0x002f0b05, // n0x1532 c0x0000 (---------------)  + I varoy
-	0x00232e45, // n0x1533 c0x0000 (---------------)  + I vefsn
-	0x002a2b04, // n0x1534 c0x0000 (---------------)  + I vega
-	0x002df989, // n0x1535 c0x0000 (---------------)  + I vegarshei
-	0x002f1f88, // n0x1536 c0x0000 (---------------)  + I vennesla
-	0x002f0986, // n0x1537 c0x0000 (---------------)  + I verdal
-	0x002f2906, // n0x1538 c0x0000 (---------------)  + I verran
-	0x002c5b86, // n0x1539 c0x0000 (---------------)  + I vestby
-	0x3cef34c8, // n0x153a c0x00f3 (n0x1614-n0x1615)  o I vestfold
-	0x002f36c7, // n0x153b c0x0000 (---------------)  + I vestnes
-	0x002f3b4d, // n0x153c c0x0000 (---------------)  + I vestre-slidre
-	0x002f4ccc, // n0x153d c0x0000 (---------------)  + I vestre-toten
-	0x002f5e09, // n0x153e c0x0000 (---------------)  + I vestvagoy
-	0x002f6049, // n0x153f c0x0000 (---------------)  + I vevelstad
-	0x3d332602, // n0x1540 c0x00f4 (n0x1615-n0x1616)  + I vf
-	0x0036be83, // n0x1541 c0x0000 (---------------)  + I vgs
-	0x002032c3, // n0x1542 c0x0000 (---------------)  + I vik
-	0x0026a4c5, // n0x1543 c0x0000 (---------------)  + I vikna
-	0x0033920a, // n0x1544 c0x0000 (---------------)  + I vindafjord
-	0x0030b446, // n0x1545 c0x0000 (---------------)  + I voagat
-	0x002f9005, // n0x1546 c0x0000 (---------------)  + I volda
-	0x002fae04, // n0x1547 c0x0000 (---------------)  + I voss
-	0x002fae0b, // n0x1548 c0x0000 (---------------)  + I vossevangen
-	0x00300a8c, // n0x1549 c0x0000 (---------------)  + I xn--andy-ira
-	0x0030128c, // n0x154a c0x0000 (---------------)  + I xn--asky-ira
-	0x00301595, // n0x154b c0x0000 (---------------)  + I xn--aurskog-hland-jnb
-	0x00302f8d, // n0x154c c0x0000 (---------------)  + I xn--avery-yua
-	0x0030418f, // n0x154d c0x0000 (---------------)  + I xn--bdddj-mrabd
-	0x00304552, // n0x154e c0x0000 (---------------)  + I xn--bearalvhki-y4a
-	0x003049cf, // n0x154f c0x0000 (---------------)  + I xn--berlevg-jxa
-	0x00304d92, // n0x1550 c0x0000 (---------------)  + I xn--bhcavuotna-s4a
-	0x00305213, // n0x1551 c0x0000 (---------------)  + I xn--bhccavuotna-k7a
-	0x003056cd, // n0x1552 c0x0000 (---------------)  + I xn--bidr-5nac
-	0x00305c8d, // n0x1553 c0x0000 (---------------)  + I xn--bievt-0qa
-	0x00305fce, // n0x1554 c0x0000 (---------------)  + I xn--bjarky-fya
-	0x0030654e, // n0x1555 c0x0000 (---------------)  + I xn--bjddar-pta
-	0x00306ccc, // n0x1556 c0x0000 (---------------)  + I xn--blt-elab
-	0x0030704c, // n0x1557 c0x0000 (---------------)  + I xn--bmlo-gra
-	0x0030784b, // n0x1558 c0x0000 (---------------)  + I xn--bod-2na
-	0x00307bce, // n0x1559 c0x0000 (---------------)  + I xn--brnny-wuac
-	0x0030a3d2, // n0x155a c0x0000 (---------------)  + I xn--brnnysund-m8ac
-	0x0030b20c, // n0x155b c0x0000 (---------------)  + I xn--brum-voa
-	0x0030b9d0, // n0x155c c0x0000 (---------------)  + I xn--btsfjord-9za
-	0x0031acd2, // n0x155d c0x0000 (---------------)  + I xn--davvenjrga-y4a
-	0x0031b14c, // n0x155e c0x0000 (---------------)  + I xn--dnna-gra
-	0x0031ba8d, // n0x155f c0x0000 (---------------)  + I xn--drbak-wua
-	0x0031bdcc, // n0x1560 c0x0000 (---------------)  + I xn--dyry-ira
-	0x0031cc11, // n0x1561 c0x0000 (---------------)  + I xn--eveni-0qa01ga
-	0x0031d04d, // n0x1562 c0x0000 (---------------)  + I xn--finny-yua
-	0x0031fc0d, // n0x1563 c0x0000 (---------------)  + I xn--fjord-lra
-	0x0032020a, // n0x1564 c0x0000 (---------------)  + I xn--fl-zia
-	0x0032048c, // n0x1565 c0x0000 (---------------)  + I xn--flor-jra
-	0x00320d8c, // n0x1566 c0x0000 (---------------)  + I xn--frde-gra
-	0x0032110c, // n0x1567 c0x0000 (---------------)  + I xn--frna-woa
-	0x0032180c, // n0x1568 c0x0000 (---------------)  + I xn--frya-hra
-	0x00323c13, // n0x1569 c0x0000 (---------------)  + I xn--ggaviika-8ya47h
-	0x00324190, // n0x156a c0x0000 (---------------)  + I xn--gildeskl-g0a
-	0x00324590, // n0x156b c0x0000 (---------------)  + I xn--givuotna-8ya
-	0x00324c0d, // n0x156c c0x0000 (---------------)  + I xn--gjvik-wua
-	0x00324f4c, // n0x156d c0x0000 (---------------)  + I xn--gls-elac
-	0x00325b49, // n0x156e c0x0000 (---------------)  + I xn--h-2fa
-	0x00326acd, // n0x156f c0x0000 (---------------)  + I xn--hbmer-xqa
-	0x00326e13, // n0x1570 c0x0000 (---------------)  + I xn--hcesuolo-7ya35b
-	0x00328951, // n0x1571 c0x0000 (---------------)  + I xn--hgebostad-g3a
-	0x00328d93, // n0x1572 c0x0000 (---------------)  + I xn--hmmrfeasta-s4ac
-	0x003294cf, // n0x1573 c0x0000 (---------------)  + I xn--hnefoss-q1a
-	0x0032988c, // n0x1574 c0x0000 (---------------)  + I xn--hobl-ira
-	0x00329b8f, // n0x1575 c0x0000 (---------------)  + I xn--holtlen-hxa
-	0x00329f4d, // n0x1576 c0x0000 (---------------)  + I xn--hpmir-xqa
-	0x0032a54f, // n0x1577 c0x0000 (---------------)  + I xn--hyanger-q1a
-	0x0032a910, // n0x1578 c0x0000 (---------------)  + I xn--hylandet-54a
-	0x0032b0ce, // n0x1579 c0x0000 (---------------)  + I xn--indery-fya
-	0x0032d80e, // n0x157a c0x0000 (---------------)  + I xn--jlster-bya
-	0x0032e590, // n0x157b c0x0000 (---------------)  + I xn--jrpeland-54a
-	0x0032e98d, // n0x157c c0x0000 (---------------)  + I xn--karmy-yua
-	0x0032ecce, // n0x157d c0x0000 (---------------)  + I xn--kfjord-iua
-	0x0032f04c, // n0x157e c0x0000 (---------------)  + I xn--klbu-woa
-	0x0032f353, // n0x157f c0x0000 (---------------)  + I xn--koluokta-7ya57h
-	0x0033070e, // n0x1580 c0x0000 (---------------)  + I xn--krager-gya
-	0x00330f50, // n0x1581 c0x0000 (---------------)  + I xn--kranghke-b0a
-	0x00331351, // n0x1582 c0x0000 (---------------)  + I xn--krdsherad-m8a
-	0x0033178f, // n0x1583 c0x0000 (---------------)  + I xn--krehamn-dxa
-	0x00331b53, // n0x1584 c0x0000 (---------------)  + I xn--krjohka-hwab49j
-	0x0033218d, // n0x1585 c0x0000 (---------------)  + I xn--ksnes-uua
-	0x003324cf, // n0x1586 c0x0000 (---------------)  + I xn--kvfjord-nxa
-	0x0033288e, // n0x1587 c0x0000 (---------------)  + I xn--kvitsy-fya
-	0x00332e50, // n0x1588 c0x0000 (---------------)  + I xn--kvnangen-k0a
-	0x00333249, // n0x1589 c0x0000 (---------------)  + I xn--l-1fa
-	0x00334310, // n0x158a c0x0000 (---------------)  + I xn--laheadju-7ya
-	0x00334bcf, // n0x158b c0x0000 (---------------)  + I xn--langevg-jxa
-	0x0033524f, // n0x158c c0x0000 (---------------)  + I xn--ldingen-q1a
-	0x00335612, // n0x158d c0x0000 (---------------)  + I xn--leagaviika-52b
-	0x0033610e, // n0x158e c0x0000 (---------------)  + I xn--lesund-hua
-	0x00336dcd, // n0x158f c0x0000 (---------------)  + I xn--lgrd-poac
-	0x0033730d, // n0x1590 c0x0000 (---------------)  + I xn--lhppi-xqa
-	0x0033764d, // n0x1591 c0x0000 (---------------)  + I xn--linds-pra
-	0x00337fcd, // n0x1592 c0x0000 (---------------)  + I xn--loabt-0qa
-	0x0033830d, // n0x1593 c0x0000 (---------------)  + I xn--lrdal-sra
-	0x00338650, // n0x1594 c0x0000 (---------------)  + I xn--lrenskog-54a
-	0x00338a4b, // n0x1595 c0x0000 (---------------)  + I xn--lt-liac
-	0x00338ecc, // n0x1596 c0x0000 (---------------)  + I xn--lten-gra
-	0x0033948c, // n0x1597 c0x0000 (---------------)  + I xn--lury-ira
-	0x0033978c, // n0x1598 c0x0000 (---------------)  + I xn--mely-ira
-	0x00339a8e, // n0x1599 c0x0000 (---------------)  + I xn--merker-kua
-	0x0033ef90, // n0x159a c0x0000 (---------------)  + I xn--mjndalen-64a
-	0x003408d2, // n0x159b c0x0000 (---------------)  + I xn--mlatvuopmi-s4a
-	0x00340d4b, // n0x159c c0x0000 (---------------)  + I xn--mli-tla
-	0x003410ce, // n0x159d c0x0000 (---------------)  + I xn--mlselv-iua
-	0x0034144e, // n0x159e c0x0000 (---------------)  + I xn--moreke-jua
-	0x0034358e, // n0x159f c0x0000 (---------------)  + I xn--mosjen-eya
-	0x0034408b, // n0x15a0 c0x0000 (---------------)  + I xn--mot-tla
-	0x3d744356, // n0x15a1 c0x00f5 (n0x1616-n0x1618)  o I xn--mre-og-romsdal-qqb
-	0x00347ccd, // n0x15a2 c0x0000 (---------------)  + I xn--msy-ula0h
-	0x00348154, // n0x15a3 c0x0000 (---------------)  + I xn--mtta-vrjjat-k7af
-	0x003487cd, // n0x15a4 c0x0000 (---------------)  + I xn--muost-0qa
-	0x003491d5, // n0x15a5 c0x0000 (---------------)  + I xn--nmesjevuemie-tcba
-	0x0034a90d, // n0x15a6 c0x0000 (---------------)  + I xn--nry-yla5g
-	0x0034ac4f, // n0x15a7 c0x0000 (---------------)  + I xn--nttery-byae
-	0x0034b34f, // n0x15a8 c0x0000 (---------------)  + I xn--nvuotna-hwa
-	0x0034d60f, // n0x15a9 c0x0000 (---------------)  + I xn--oppegrd-ixa
-	0x0034d9ce, // n0x15aa c0x0000 (---------------)  + I xn--ostery-fya
-	0x0034df4d, // n0x15ab c0x0000 (---------------)  + I xn--osyro-wua
-	0x0034f091, // n0x15ac c0x0000 (---------------)  + I xn--porsgu-sta26f
-	0x00350acc, // n0x15ad c0x0000 (---------------)  + I xn--rady-ira
-	0x00350dcc, // n0x15ae c0x0000 (---------------)  + I xn--rdal-poa
-	0x003510cb, // n0x15af c0x0000 (---------------)  + I xn--rde-ula
-	0x0035138c, // n0x15b0 c0x0000 (---------------)  + I xn--rdy-0nab
-	0x0035184f, // n0x15b1 c0x0000 (---------------)  + I xn--rennesy-v1a
-	0x00351c12, // n0x15b2 c0x0000 (---------------)  + I xn--rhkkervju-01af
-	0x0035344d, // n0x15b3 c0x0000 (---------------)  + I xn--rholt-mra
-	0x00353c0c, // n0x15b4 c0x0000 (---------------)  + I xn--risa-5na
-	0x0035420c, // n0x15b5 c0x0000 (---------------)  + I xn--risr-ira
-	0x0035450d, // n0x15b6 c0x0000 (---------------)  + I xn--rland-uua
-	0x0035484f, // n0x15b7 c0x0000 (---------------)  + I xn--rlingen-mxa
-	0x00354c0e, // n0x15b8 c0x0000 (---------------)  + I xn--rmskog-bya
-	0x0035508c, // n0x15b9 c0x0000 (---------------)  + I xn--rros-gra
-	0x0035550d, // n0x15ba c0x0000 (---------------)  + I xn--rskog-uua
-	0x0035584b, // n0x15bb c0x0000 (---------------)  + I xn--rst-0na
-	0x00355e0c, // n0x15bc c0x0000 (---------------)  + I xn--rsta-fra
-	0x0035638d, // n0x15bd c0x0000 (---------------)  + I xn--ryken-vua
-	0x003566ce, // n0x15be c0x0000 (---------------)  + I xn--ryrvik-bya
-	0x00356c49, // n0x15bf c0x0000 (---------------)  + I xn--s-1fa
-	0x00358193, // n0x15c0 c0x0000 (---------------)  + I xn--sandnessjen-ogb
-	0x00358d0d, // n0x15c1 c0x0000 (---------------)  + I xn--sandy-yua
-	0x0035904d, // n0x15c2 c0x0000 (---------------)  + I xn--seral-lra
-	0x0035964c, // n0x15c3 c0x0000 (---------------)  + I xn--sgne-gra
-	0x00359d0e, // n0x15c4 c0x0000 (---------------)  + I xn--skierv-uta
-	0x0035a60f, // n0x15c5 c0x0000 (---------------)  + I xn--skjervy-v1a
-	0x0035a9cc, // n0x15c6 c0x0000 (---------------)  + I xn--skjk-soa
-	0x0035accd, // n0x15c7 c0x0000 (---------------)  + I xn--sknit-yqa
-	0x0035b00f, // n0x15c8 c0x0000 (---------------)  + I xn--sknland-fxa
-	0x0035b3cc, // n0x15c9 c0x0000 (---------------)  + I xn--slat-5na
-	0x0035b94c, // n0x15ca c0x0000 (---------------)  + I xn--slt-elab
-	0x0035bd0c, // n0x15cb c0x0000 (---------------)  + I xn--smla-hra
-	0x0035c00c, // n0x15cc c0x0000 (---------------)  + I xn--smna-gra
-	0x0035c34d, // n0x15cd c0x0000 (---------------)  + I xn--snase-nra
-	0x0035c692, // n0x15ce c0x0000 (---------------)  + I xn--sndre-land-0cb
-	0x0035cb8c, // n0x15cf c0x0000 (---------------)  + I xn--snes-poa
-	0x0035ce8c, // n0x15d0 c0x0000 (---------------)  + I xn--snsa-roa
-	0x0035d191, // n0x15d1 c0x0000 (---------------)  + I xn--sr-aurdal-l8a
-	0x0035d5cf, // n0x15d2 c0x0000 (---------------)  + I xn--sr-fron-q1a
-	0x0035d98f, // n0x15d3 c0x0000 (---------------)  + I xn--sr-odal-q1a
-	0x0035dd53, // n0x15d4 c0x0000 (---------------)  + I xn--sr-varanger-ggb
-	0x0035ee4e, // n0x15d5 c0x0000 (---------------)  + I xn--srfold-bya
-	0x0035f1cf, // n0x15d6 c0x0000 (---------------)  + I xn--srreisa-q1a
-	0x0035f58c, // n0x15d7 c0x0000 (---------------)  + I xn--srum-gra
-	0x3db5f88e, // n0x15d8 c0x00f6 (n0x1618-n0x1619)  o I xn--stfold-9xa
-	0x0035fc0f, // n0x15d9 c0x0000 (---------------)  + I xn--stjrdal-s1a
-	0x0035ffd6, // n0x15da c0x0000 (---------------)  + I xn--stjrdalshalsen-sqb
-	0x00361152, // n0x15db c0x0000 (---------------)  + I xn--stre-toten-zcb
-	0x003620cc, // n0x15dc c0x0000 (---------------)  + I xn--tjme-hra
-	0x0036288f, // n0x15dd c0x0000 (---------------)  + I xn--tnsberg-q1a
-	0x00362c4d, // n0x15de c0x0000 (---------------)  + I xn--trany-yua
-	0x00362f8f, // n0x15df c0x0000 (---------------)  + I xn--trgstad-r1a
-	0x0036334c, // n0x15e0 c0x0000 (---------------)  + I xn--trna-woa
-	0x0036364d, // n0x15e1 c0x0000 (---------------)  + I xn--troms-zua
-	0x0036398d, // n0x15e2 c0x0000 (---------------)  + I xn--tysvr-vra
-	0x0036444e, // n0x15e3 c0x0000 (---------------)  + I xn--unjrga-rta
-	0x00364f0c, // n0x15e4 c0x0000 (---------------)  + I xn--vads-jra
-	0x0036520c, // n0x15e5 c0x0000 (---------------)  + I xn--vard-jra
-	0x00365510, // n0x15e6 c0x0000 (---------------)  + I xn--vegrshei-c0a
-	0x00369e91, // n0x15e7 c0x0000 (---------------)  + I xn--vestvgy-ixa6o
-	0x0036a2cb, // n0x15e8 c0x0000 (---------------)  + I xn--vg-yiab
-	0x0036ba8c, // n0x15e9 c0x0000 (---------------)  + I xn--vgan-qoa
-	0x0036bd8e, // n0x15ea c0x0000 (---------------)  + I xn--vgsy-qoa0j
-	0x0036f851, // n0x15eb c0x0000 (---------------)  + I xn--vre-eiker-k8a
-	0x0036fc8e, // n0x15ec c0x0000 (---------------)  + I xn--vrggt-xqad
-	0x0037000d, // n0x15ed c0x0000 (---------------)  + I xn--vry-yla5g
-	0x0037238b, // n0x15ee c0x0000 (---------------)  + I xn--yer-zna
-	0x00372c0f, // n0x15ef c0x0000 (---------------)  + I xn--ygarden-p1a
-	0x00373554, // n0x15f0 c0x0000 (---------------)  + I xn--ystre-slidre-ujb
-	0x00229d82, // n0x15f1 c0x0000 (---------------)  + I gs
-	0x00229d82, // n0x15f2 c0x0000 (---------------)  + I gs
-	0x00209883, // n0x15f3 c0x0000 (---------------)  + I nes
-	0x00229d82, // n0x15f4 c0x0000 (---------------)  + I gs
-	0x00209883, // n0x15f5 c0x0000 (---------------)  + I nes
-	0x00229d82, // n0x15f6 c0x0000 (---------------)  + I gs
-	0x00203642, // n0x15f7 c0x0000 (---------------)  + I os
-	0x002420c5, // n0x15f8 c0x0000 (---------------)  + I valer
-	0x0036f54c, // n0x15f9 c0x0000 (---------------)  + I xn--vler-qoa
-	0x00229d82, // n0x15fa c0x0000 (---------------)  + I gs
-	0x00229d82, // n0x15fb c0x0000 (---------------)  + I gs
-	0x00203642, // n0x15fc c0x0000 (---------------)  + I os
-	0x00229d82, // n0x15fd c0x0000 (---------------)  + I gs
-	0x0028de85, // n0x15fe c0x0000 (---------------)  + I heroy
-	0x002ae5c5, // n0x15ff c0x0000 (---------------)  + I sande
-	0x00229d82, // n0x1600 c0x0000 (---------------)  + I gs
-	0x00229d82, // n0x1601 c0x0000 (---------------)  + I gs
-	0x00200fc2, // n0x1602 c0x0000 (---------------)  + I bo
-	0x0028de85, // n0x1603 c0x0000 (---------------)  + I heroy
-	0x00303bc9, // n0x1604 c0x0000 (---------------)  + I xn--b-5ga
-	0x0032864c, // n0x1605 c0x0000 (---------------)  + I xn--hery-ira
-	0x00229d82, // n0x1606 c0x0000 (---------------)  + I gs
-	0x00229d82, // n0x1607 c0x0000 (---------------)  + I gs
-	0x00229d82, // n0x1608 c0x0000 (---------------)  + I gs
-	0x00229d82, // n0x1609 c0x0000 (---------------)  + I gs
-	0x002420c5, // n0x160a c0x0000 (---------------)  + I valer
-	0x00229d82, // n0x160b c0x0000 (---------------)  + I gs
-	0x00229d82, // n0x160c c0x0000 (---------------)  + I gs
-	0x00229d82, // n0x160d c0x0000 (---------------)  + I gs
-	0x00229d82, // n0x160e c0x0000 (---------------)  + I gs
-	0x00200fc2, // n0x160f c0x0000 (---------------)  + I bo
-	0x00303bc9, // n0x1610 c0x0000 (---------------)  + I xn--b-5ga
-	0x00229d82, // n0x1611 c0x0000 (---------------)  + I gs
-	0x00229d82, // n0x1612 c0x0000 (---------------)  + I gs
-	0x00229d82, // n0x1613 c0x0000 (---------------)  + I gs
-	0x002ae5c5, // n0x1614 c0x0000 (---------------)  + I sande
-	0x00229d82, // n0x1615 c0x0000 (---------------)  + I gs
-	0x002ae5c5, // n0x1616 c0x0000 (---------------)  + I sande
-	0x0032864c, // n0x1617 c0x0000 (---------------)  + I xn--hery-ira
-	0x0036f54c, // n0x1618 c0x0000 (---------------)  + I xn--vler-qoa
-	0x00314c43, // n0x1619 c0x0000 (---------------)  + I biz
-	0x00222603, // n0x161a c0x0000 (---------------)  + I com
-	0x0027a643, // n0x161b c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x161c c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x161d c0x0000 (---------------)  + I info
-	0x00201603, // n0x161e c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x161f c0x0000 (---------------)  + I org
-	0x00118048, // n0x1620 c0x0000 (---------------)  +   merseine
-	0x000e9784, // n0x1621 c0x0000 (---------------)  +   mine
-	0x000514c8, // n0x1622 c0x0000 (---------------)  +   shacknet
-	0x00201d82, // n0x1623 c0x0000 (---------------)  + I ac
-	0x3ea07a02, // n0x1624 c0x00fa (n0x1633-n0x1634)  + I co
-	0x0023f943, // n0x1625 c0x0000 (---------------)  + I cri
-	0x00267e84, // n0x1626 c0x0000 (---------------)  + I geek
-	0x00204b03, // n0x1627 c0x0000 (---------------)  + I gen
-	0x00347604, // n0x1628 c0x0000 (---------------)  + I govt
-	0x00360806, // n0x1629 c0x0000 (---------------)  + I health
-	0x00211883, // n0x162a c0x0000 (---------------)  + I iwi
-	0x0031b904, // n0x162b c0x0000 (---------------)  + I kiwi
-	0x00282b05, // n0x162c c0x0000 (---------------)  + I maori
-	0x0023f703, // n0x162d c0x0000 (---------------)  + I mil
-	0x00201603, // n0x162e c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x162f c0x0000 (---------------)  + I org
-	0x0024f64a, // n0x1630 c0x0000 (---------------)  + I parliament
-	0x002ffb06, // n0x1631 c0x0000 (---------------)  + I school
-	0x003417cc, // n0x1632 c0x0000 (---------------)  + I xn--mori-qsa
-	0x000b8948, // n0x1633 c0x0000 (---------------)  +   blogspot
-	0x00207a02, // n0x1634 c0x0000 (---------------)  + I co
-	0x00222603, // n0x1635 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1636 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1637 c0x0000 (---------------)  + I gov
-	0x00225d03, // n0x1638 c0x0000 (---------------)  + I med
-	0x002cb0c6, // n0x1639 c0x0000 (---------------)  + I museum
-	0x00201603, // n0x163a c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x163b c0x0000 (---------------)  + I org
-	0x002d8443, // n0x163c c0x0000 (---------------)  + I pro
-	0x000100c2, // n0x163d c0x0000 (---------------)  +   ae
-	0x00010dc7, // n0x163e c0x0000 (---------------)  +   blogdns
-	0x000cce48, // n0x163f c0x0000 (---------------)  +   blogsite
-	0x00081e12, // n0x1640 c0x0000 (---------------)  +   boldlygoingnowhere
-	0x00035348, // n0x1641 c0x0000 (---------------)  +   dnsalias
-	0x0000b0c7, // n0x1642 c0x0000 (---------------)  +   dnsdojo
-	0x0000dccb, // n0x1643 c0x0000 (---------------)  +   doesntexist
-	0x000cd889, // n0x1644 c0x0000 (---------------)  +   dontexist
-	0x00035247, // n0x1645 c0x0000 (---------------)  +   doomdns
-	0x0000b006, // n0x1646 c0x0000 (---------------)  +   dvrdns
-	0x0009fe08, // n0x1647 c0x0000 (---------------)  +   dynalias
-	0x3f410c06, // n0x1648 c0x00fd (n0x1672-n0x1674)  +   dyndns
-	0x000a71cd, // n0x1649 c0x0000 (---------------)  +   endofinternet
-	0x0005fad0, // n0x164a c0x0000 (---------------)  +   endoftheinternet
-	0x00067647, // n0x164b c0x0000 (---------------)  +   from-me
-	0x0008b749, // n0x164c c0x0000 (---------------)  +   game-host
-	0x00053106, // n0x164d c0x0000 (---------------)  +   gotdns
-	0x0003e44a, // n0x164e c0x0000 (---------------)  +   hobby-site
-	0x00025c87, // n0x164f c0x0000 (---------------)  +   homedns
-	0x00019d07, // n0x1650 c0x0000 (---------------)  +   homeftp
-	0x0009f1c9, // n0x1651 c0x0000 (---------------)  +   homelinux
-	0x000a1908, // n0x1652 c0x0000 (---------------)  +   homeunix
-	0x000f494e, // n0x1653 c0x0000 (---------------)  +   is-a-bruinsfan
-	0x0007100e, // n0x1654 c0x0000 (---------------)  +   is-a-candidate
-	0x000a538f, // n0x1655 c0x0000 (---------------)  +   is-a-celticsfan
-	0x001402c9, // n0x1656 c0x0000 (---------------)  +   is-a-chef
-	0x00067d49, // n0x1657 c0x0000 (---------------)  +   is-a-geek
-	0x00082c0b, // n0x1658 c0x0000 (---------------)  +   is-a-knight
-	0x000987cf, // n0x1659 c0x0000 (---------------)  +   is-a-linux-user
-	0x000e034c, // n0x165a c0x0000 (---------------)  +   is-a-patsfan
-	0x000b02cb, // n0x165b c0x0000 (---------------)  +   is-a-soxfan
-	0x0011f8c8, // n0x165c c0x0000 (---------------)  +   is-found
-	0x000ef287, // n0x165d c0x0000 (---------------)  +   is-lost
-	0x000f2708, // n0x165e c0x0000 (---------------)  +   is-saved
-	0x0010350b, // n0x165f c0x0000 (---------------)  +   is-very-bad
-	0x0010c24c, // n0x1660 c0x0000 (---------------)  +   is-very-evil
-	0x0012148c, // n0x1661 c0x0000 (---------------)  +   is-very-good
-	0x001255cc, // n0x1662 c0x0000 (---------------)  +   is-very-nice
-	0x0012ba4d, // n0x1663 c0x0000 (---------------)  +   is-very-sweet
-	0x0014bd08, // n0x1664 c0x0000 (---------------)  +   isa-geek
-	0x00047a09, // n0x1665 c0x0000 (---------------)  +   kicks-ass
-	0x000bae4b, // n0x1666 c0x0000 (---------------)  +   misconfused
-	0x000d4e47, // n0x1667 c0x0000 (---------------)  +   podzone
-	0x000cccca, // n0x1668 c0x0000 (---------------)  +   readmyblog
-	0x000ff606, // n0x1669 c0x0000 (---------------)  +   selfip
-	0x000c828d, // n0x166a c0x0000 (---------------)  +   sellsyourhome
-	0x00016d08, // n0x166b c0x0000 (---------------)  +   servebbs
-	0x0009cb88, // n0x166c c0x0000 (---------------)  +   serveftp
-	0x000a2a49, // n0x166d c0x0000 (---------------)  +   servegame
-	0x000ea04c, // n0x166e c0x0000 (---------------)  +   stuff-4-sale
-	0x000054c2, // n0x166f c0x0000 (---------------)  +   us
-	0x0004db86, // n0x1670 c0x0000 (---------------)  +   webhop
-	0x00003502, // n0x1671 c0x0000 (---------------)  +   za
-	0x00006cc2, // n0x1672 c0x0000 (---------------)  +   go
-	0x00019d04, // n0x1673 c0x0000 (---------------)  +   home
-	0x00212fc3, // n0x1674 c0x0000 (---------------)  + I abo
-	0x00201d82, // n0x1675 c0x0000 (---------------)  + I ac
-	0x00222603, // n0x1676 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1677 c0x0000 (---------------)  + I edu
-	0x0020dbc3, // n0x1678 c0x0000 (---------------)  + I gob
-	0x00201ec3, // n0x1679 c0x0000 (---------------)  + I ing
-	0x00225d03, // n0x167a c0x0000 (---------------)  + I med
-	0x00201603, // n0x167b c0x0000 (---------------)  + I net
-	0x00214103, // n0x167c c0x0000 (---------------)  + I nom
-	0x0021f5c3, // n0x167d c0x0000 (---------------)  + I org
-	0x002dc183, // n0x167e c0x0000 (---------------)  + I sld
-	0x00222603, // n0x167f c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1680 c0x0000 (---------------)  + I edu
-	0x0020dbc3, // n0x1681 c0x0000 (---------------)  + I gob
-	0x0023f703, // n0x1682 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x1683 c0x0000 (---------------)  + I net
-	0x00214103, // n0x1684 c0x0000 (---------------)  + I nom
-	0x0021f5c3, // n0x1685 c0x0000 (---------------)  + I org
-	0x00222603, // n0x1686 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1687 c0x0000 (---------------)  + I edu
-	0x0021f5c3, // n0x1688 c0x0000 (---------------)  + I org
-	0x00222603, // n0x1689 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x168a c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x168b c0x0000 (---------------)  + I gov
-	0x00200041, // n0x168c c0x0000 (---------------)  + I i
-	0x0023f703, // n0x168d c0x0000 (---------------)  + I mil
-	0x00201603, // n0x168e c0x0000 (---------------)  + I net
-	0x00224203, // n0x168f c0x0000 (---------------)  + I ngo
-	0x0021f5c3, // n0x1690 c0x0000 (---------------)  + I org
-	0x00314c43, // n0x1691 c0x0000 (---------------)  + I biz
-	0x00222603, // n0x1692 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1693 c0x0000 (---------------)  + I edu
-	0x002a6ec3, // n0x1694 c0x0000 (---------------)  + I fam
-	0x0020dbc3, // n0x1695 c0x0000 (---------------)  + I gob
-	0x00279e43, // n0x1696 c0x0000 (---------------)  + I gok
-	0x002824c3, // n0x1697 c0x0000 (---------------)  + I gon
-	0x002d9083, // n0x1698 c0x0000 (---------------)  + I gop
-	0x00206cc3, // n0x1699 c0x0000 (---------------)  + I gos
-	0x002157c3, // n0x169a c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x169b c0x0000 (---------------)  + I info
-	0x00201603, // n0x169c c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x169d c0x0000 (---------------)  + I org
-	0x00205e43, // n0x169e c0x0000 (---------------)  + I web
-	0x0021b805, // n0x169f c0x0000 (---------------)  + I 6bone
-	0x002e7744, // n0x16a0 c0x0000 (---------------)  + I agro
-	0x00245143, // n0x16a1 c0x0000 (---------------)  + I aid
-	0x00201383, // n0x16a2 c0x0000 (---------------)  + I art
-	0x00200103, // n0x16a3 c0x0000 (---------------)  + I atm
-	0x002fd5c8, // n0x16a4 c0x0000 (---------------)  + I augustow
-	0x0022ccc4, // n0x16a5 c0x0000 (---------------)  + I auto
-	0x0023788a, // n0x16a6 c0x0000 (---------------)  + I babia-gora
-	0x00342f86, // n0x16a7 c0x0000 (---------------)  + I bedzin
-	0x00361587, // n0x16a8 c0x0000 (---------------)  + I beskidy
-	0x0021a58a, // n0x16a9 c0x0000 (---------------)  + I bialowieza
-	0x00239b09, // n0x16aa c0x0000 (---------------)  + I bialystok
-	0x00371087, // n0x16ab c0x0000 (---------------)  + I bielawa
-	0x003747ca, // n0x16ac c0x0000 (---------------)  + I bieszczady
-	0x00314c43, // n0x16ad c0x0000 (---------------)  + I biz
-	0x0033fa8b, // n0x16ae c0x0000 (---------------)  + I boleslawiec
-	0x002c6a89, // n0x16af c0x0000 (---------------)  + I bydgoszcz
-	0x002ca405, // n0x16b0 c0x0000 (---------------)  + I bytom
-	0x002c8e47, // n0x16b1 c0x0000 (---------------)  + I cieszyn
-	0x00007a02, // n0x16b2 c0x0000 (---------------)  +   co
-	0x00222603, // n0x16b3 c0x0000 (---------------)  + I com
-	0x002fcf87, // n0x16b4 c0x0000 (---------------)  + I czeladz
-	0x00223345, // n0x16b5 c0x0000 (---------------)  + I czest
-	0x0036c4c9, // n0x16b6 c0x0000 (---------------)  + I dlugoleka
-	0x0027a643, // n0x16b7 c0x0000 (---------------)  + I edu
-	0x00220446, // n0x16b8 c0x0000 (---------------)  + I elblag
-	0x002b7d03, // n0x16b9 c0x0000 (---------------)  + I elk
-	0x002dff83, // n0x16ba c0x0000 (---------------)  + I gda
-	0x002f9d86, // n0x16bb c0x0000 (---------------)  + I gdansk
-	0x00312146, // n0x16bc c0x0000 (---------------)  + I gdynia
-	0x00211807, // n0x16bd c0x0000 (---------------)  + I gliwice
-	0x0021e106, // n0x16be c0x0000 (---------------)  + I glogow
-	0x00225fc5, // n0x16bf c0x0000 (---------------)  + I gmina
-	0x0025f607, // n0x16c0 c0x0000 (---------------)  + I gniezno
-	0x002ff187, // n0x16c1 c0x0000 (---------------)  + I gorlice
-	0x412157c3, // n0x16c2 c0x0104 (n0x174a-n0x1753)  + I gov
-	0x00307287, // n0x16c3 c0x0000 (---------------)  + I grajewo
-	0x00229d83, // n0x16c4 c0x0000 (---------------)  + I gsm
-	0x002e7b85, // n0x16c5 c0x0000 (---------------)  + I ilawa
-	0x0021c704, // n0x16c6 c0x0000 (---------------)  + I info
-	0x002570c3, // n0x16c7 c0x0000 (---------------)  + I irc
-	0x0033e5c8, // n0x16c8 c0x0000 (---------------)  + I jaworzno
-	0x0032390c, // n0x16c9 c0x0000 (---------------)  + I jelenia-gora
-	0x002a9e05, // n0x16ca c0x0000 (---------------)  + I jgora
-	0x002b0a06, // n0x16cb c0x0000 (---------------)  + I kalisz
-	0x002fce47, // n0x16cc c0x0000 (---------------)  + I karpacz
-	0x00201347, // n0x16cd c0x0000 (---------------)  + I kartuzy
-	0x00223f07, // n0x16ce c0x0000 (---------------)  + I kaszuby
-	0x00248588, // n0x16cf c0x0000 (---------------)  + I katowice
-	0x0022d4cf, // n0x16d0 c0x0000 (---------------)  + I kazimierz-dolny
-	0x00349bc5, // n0x16d1 c0x0000 (---------------)  + I kepno
-	0x0028e847, // n0x16d2 c0x0000 (---------------)  + I ketrzyn
-	0x002400c7, // n0x16d3 c0x0000 (---------------)  + I klodzko
-	0x0029ed8a, // n0x16d4 c0x0000 (---------------)  + I kobierzyce
-	0x002a61c9, // n0x16d5 c0x0000 (---------------)  + I kolobrzeg
-	0x002cf545, // n0x16d6 c0x0000 (---------------)  + I konin
-	0x002d0e4a, // n0x16d7 c0x0000 (---------------)  + I konskowola
-	0x002ad846, // n0x16d8 c0x0000 (---------------)  + I krakow
-	0x002b7d85, // n0x16d9 c0x0000 (---------------)  + I kutno
-	0x002b1a44, // n0x16da c0x0000 (---------------)  + I lapy
-	0x0023a246, // n0x16db c0x0000 (---------------)  + I lebork
-	0x00254fc7, // n0x16dc c0x0000 (---------------)  + I legnica
-	0x0021ba87, // n0x16dd c0x0000 (---------------)  + I lezajsk
-	0x003115c8, // n0x16de c0x0000 (---------------)  + I limanowa
-	0x002d4105, // n0x16df c0x0000 (---------------)  + I lomza
-	0x00223246, // n0x16e0 c0x0000 (---------------)  + I lowicz
-	0x002a42c5, // n0x16e1 c0x0000 (---------------)  + I lubin
-	0x0022fbc5, // n0x16e2 c0x0000 (---------------)  + I lukow
-	0x0021d884, // n0x16e3 c0x0000 (---------------)  + I mail
-	0x00221947, // n0x16e4 c0x0000 (---------------)  + I malbork
-	0x0031760a, // n0x16e5 c0x0000 (---------------)  + I malopolska
-	0x00208088, // n0x16e6 c0x0000 (---------------)  + I mazowsze
-	0x002eb986, // n0x16e7 c0x0000 (---------------)  + I mazury
-	0x00302dc5, // n0x16e8 c0x0000 (---------------)  + I mbone
-	0x00225d03, // n0x16e9 c0x0000 (---------------)  + I med
-	0x0027ab45, // n0x16ea c0x0000 (---------------)  + I media
-	0x002d3a06, // n0x16eb c0x0000 (---------------)  + I miasta
-	0x00240b86, // n0x16ec c0x0000 (---------------)  + I mielec
-	0x003096c6, // n0x16ed c0x0000 (---------------)  + I mielno
-	0x0023f703, // n0x16ee c0x0000 (---------------)  + I mil
-	0x003536c7, // n0x16ef c0x0000 (---------------)  + I mragowo
-	0x00240045, // n0x16f0 c0x0000 (---------------)  + I naklo
-	0x00201603, // n0x16f1 c0x0000 (---------------)  + I net
-	0x00224203, // n0x16f2 c0x0000 (---------------)  + I ngo
-	0x0027324d, // n0x16f3 c0x0000 (---------------)  + I nieruchomosci
-	0x00214103, // n0x16f4 c0x0000 (---------------)  + I nom
-	0x003116c8, // n0x16f5 c0x0000 (---------------)  + I nowaruda
-	0x0027a084, // n0x16f6 c0x0000 (---------------)  + I nysa
-	0x00272705, // n0x16f7 c0x0000 (---------------)  + I olawa
-	0x0029ec86, // n0x16f8 c0x0000 (---------------)  + I olecko
-	0x002ffc06, // n0x16f9 c0x0000 (---------------)  + I olkusz
-	0x002a0c47, // n0x16fa c0x0000 (---------------)  + I olsztyn
-	0x00239e47, // n0x16fb c0x0000 (---------------)  + I opoczno
-	0x002a8505, // n0x16fc c0x0000 (---------------)  + I opole
-	0x0021f5c3, // n0x16fd c0x0000 (---------------)  + I org
-	0x00228587, // n0x16fe c0x0000 (---------------)  + I ostroda
-	0x00229089, // n0x16ff c0x0000 (---------------)  + I ostroleka
-	0x00266449, // n0x1700 c0x0000 (---------------)  + I ostrowiec
-	0x0022ceca, // n0x1701 c0x0000 (---------------)  + I ostrowwlkp
-	0x002416c2, // n0x1702 c0x0000 (---------------)  + I pc
-	0x002e7b44, // n0x1703 c0x0000 (---------------)  + I pila
-	0x002cfa04, // n0x1704 c0x0000 (---------------)  + I pisz
-	0x002d4787, // n0x1705 c0x0000 (---------------)  + I podhale
-	0x002d4b48, // n0x1706 c0x0000 (---------------)  + I podlasie
-	0x002d5249, // n0x1707 c0x0000 (---------------)  + I polkowice
-	0x0021a889, // n0x1708 c0x0000 (---------------)  + I pomorskie
-	0x002d5e07, // n0x1709 c0x0000 (---------------)  + I pomorze
-	0x002249c6, // n0x170a c0x0000 (---------------)  + I powiat
-	0x002d7986, // n0x170b c0x0000 (---------------)  + I poznan
-	0x002d82c4, // n0x170c c0x0000 (---------------)  + I priv
-	0x002d844a, // n0x170d c0x0000 (---------------)  + I prochowice
-	0x002db608, // n0x170e c0x0000 (---------------)  + I pruszkow
-	0x002db809, // n0x170f c0x0000 (---------------)  + I przeworsk
-	0x002e5a06, // n0x1710 c0x0000 (---------------)  + I pulawy
-	0x00358945, // n0x1711 c0x0000 (---------------)  + I radom
-	0x00207f48, // n0x1712 c0x0000 (---------------)  + I rawa-maz
-	0x002bfd0a, // n0x1713 c0x0000 (---------------)  + I realestate
-	0x00280183, // n0x1714 c0x0000 (---------------)  + I rel
-	0x00311106, // n0x1715 c0x0000 (---------------)  + I rybnik
-	0x002d5f07, // n0x1716 c0x0000 (---------------)  + I rzeszow
-	0x0032d185, // n0x1717 c0x0000 (---------------)  + I sanok
-	0x00279f45, // n0x1718 c0x0000 (---------------)  + I sejny
-	0x002488c3, // n0x1719 c0x0000 (---------------)  + I sex
-	0x0024f584, // n0x171a c0x0000 (---------------)  + I shop
-	0x002d4c87, // n0x171b c0x0000 (---------------)  + I siedlce
-	0x0022a705, // n0x171c c0x0000 (---------------)  + I sklep
-	0x0027f247, // n0x171d c0x0000 (---------------)  + I skoczow
-	0x002f20c5, // n0x171e c0x0000 (---------------)  + I slask
-	0x002e0f86, // n0x171f c0x0000 (---------------)  + I slupsk
-	0x002e2985, // n0x1720 c0x0000 (---------------)  + I sopot
-	0x00270783, // n0x1721 c0x0000 (---------------)  + I sos
-	0x00270789, // n0x1722 c0x0000 (---------------)  + I sosnowiec
-	0x002724cc, // n0x1723 c0x0000 (---------------)  + I stalowa-wola
-	0x002ac80c, // n0x1724 c0x0000 (---------------)  + I starachowice
-	0x0021b408, // n0x1725 c0x0000 (---------------)  + I stargard
-	0x002c7507, // n0x1726 c0x0000 (---------------)  + I suwalki
-	0x002ed5c8, // n0x1727 c0x0000 (---------------)  + I swidnica
-	0x002ed94a, // n0x1728 c0x0000 (---------------)  + I swiebodzin
-	0x002edd0b, // n0x1729 c0x0000 (---------------)  + I swinoujscie
-	0x002c6bc8, // n0x172a c0x0000 (---------------)  + I szczecin
-	0x002b0b08, // n0x172b c0x0000 (---------------)  + I szczytno
-	0x0020b306, // n0x172c c0x0000 (---------------)  + I szkola
-	0x00201685, // n0x172d c0x0000 (---------------)  + I targi
-	0x0021caca, // n0x172e c0x0000 (---------------)  + I tarnobrzeg
-	0x00230a45, // n0x172f c0x0000 (---------------)  + I tgory
-	0x00200142, // n0x1730 c0x0000 (---------------)  + I tm
-	0x002bd047, // n0x1731 c0x0000 (---------------)  + I tourism
-	0x00296ac6, // n0x1732 c0x0000 (---------------)  + I travel
-	0x00333c05, // n0x1733 c0x0000 (---------------)  + I turek
-	0x002ef809, // n0x1734 c0x0000 (---------------)  + I turystyka
-	0x00357e85, // n0x1735 c0x0000 (---------------)  + I tychy
-	0x0028cd86, // n0x1736 c0x0000 (---------------)  + I usenet
-	0x002a5f45, // n0x1737 c0x0000 (---------------)  + I ustka
-	0x0030fd89, // n0x1738 c0x0000 (---------------)  + I walbrzych
-	0x0022be06, // n0x1739 c0x0000 (---------------)  + I warmia
-	0x00248d08, // n0x173a c0x0000 (---------------)  + I warszawa
-	0x00255403, // n0x173b c0x0000 (---------------)  + I waw
-	0x00208f46, // n0x173c c0x0000 (---------------)  + I wegrow
-	0x00271986, // n0x173d c0x0000 (---------------)  + I wielun
-	0x0025ff45, // n0x173e c0x0000 (---------------)  + I wlocl
-	0x0025ff49, // n0x173f c0x0000 (---------------)  + I wloclawek
-	0x00208d49, // n0x1740 c0x0000 (---------------)  + I wodzislaw
-	0x003073c7, // n0x1741 c0x0000 (---------------)  + I wolomin
-	0x002ad984, // n0x1742 c0x0000 (---------------)  + I wroc
-	0x002ad987, // n0x1743 c0x0000 (---------------)  + I wroclaw
-	0x0021a789, // n0x1744 c0x0000 (---------------)  + I zachpomor
-	0x0023c885, // n0x1745 c0x0000 (---------------)  + I zagan
-	0x0020b688, // n0x1746 c0x0000 (---------------)  + I zakopane
-	0x0031e3c5, // n0x1747 c0x0000 (---------------)  + I zarow
-	0x00228805, // n0x1748 c0x0000 (---------------)  + I zgora
-	0x002489c9, // n0x1749 c0x0000 (---------------)  + I zgorzelec
-	0x002001c2, // n0x174a c0x0000 (---------------)  + I pa
-	0x00205982, // n0x174b c0x0000 (---------------)  + I po
-	0x00206102, // n0x174c c0x0000 (---------------)  + I so
-	0x002c4342, // n0x174d c0x0000 (---------------)  + I sr
-	0x00208b89, // n0x174e c0x0000 (---------------)  + I starostwo
-	0x00204142, // n0x174f c0x0000 (---------------)  + I ug
-	0x002049c2, // n0x1750 c0x0000 (---------------)  + I um
-	0x00224984, // n0x1751 c0x0000 (---------------)  + I upow
-	0x0023e202, // n0x1752 c0x0000 (---------------)  + I uw
-	0x00207a02, // n0x1753 c0x0000 (---------------)  + I co
-	0x0027a643, // n0x1754 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1755 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x1756 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1757 c0x0000 (---------------)  + I org
-	0x00201d82, // n0x1758 c0x0000 (---------------)  + I ac
-	0x00314c43, // n0x1759 c0x0000 (---------------)  + I biz
-	0x00222603, // n0x175a c0x0000 (---------------)  + I com
-	0x0027a643, // n0x175b c0x0000 (---------------)  + I edu
-	0x002090c3, // n0x175c c0x0000 (---------------)  + I est
-	0x002157c3, // n0x175d c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x175e c0x0000 (---------------)  + I info
-	0x00208e44, // n0x175f c0x0000 (---------------)  + I isla
-	0x0022aec4, // n0x1760 c0x0000 (---------------)  + I name
-	0x00201603, // n0x1761 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1762 c0x0000 (---------------)  + I org
-	0x002d8443, // n0x1763 c0x0000 (---------------)  + I pro
-	0x002d9104, // n0x1764 c0x0000 (---------------)  + I prof
-	0x00270403, // n0x1765 c0x0000 (---------------)  + I aca
-	0x0020d2c3, // n0x1766 c0x0000 (---------------)  + I bar
-	0x002368c3, // n0x1767 c0x0000 (---------------)  + I cpa
-	0x00202e03, // n0x1768 c0x0000 (---------------)  + I eng
-	0x002aa003, // n0x1769 c0x0000 (---------------)  + I jur
-	0x00208ec3, // n0x176a c0x0000 (---------------)  + I law
-	0x00225d03, // n0x176b c0x0000 (---------------)  + I med
-	0x00222603, // n0x176c c0x0000 (---------------)  + I com
-	0x0027a643, // n0x176d c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x176e c0x0000 (---------------)  + I gov
-	0x00201603, // n0x176f c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1770 c0x0000 (---------------)  + I org
-	0x002d40c3, // n0x1771 c0x0000 (---------------)  + I plo
-	0x002f0e43, // n0x1772 c0x0000 (---------------)  + I sec
-	0x000b8948, // n0x1773 c0x0000 (---------------)  +   blogspot
-	0x00222603, // n0x1774 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1775 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1776 c0x0000 (---------------)  + I gov
-	0x00223a83, // n0x1777 c0x0000 (---------------)  + I int
-	0x00201603, // n0x1778 c0x0000 (---------------)  + I net
-	0x0023da04, // n0x1779 c0x0000 (---------------)  + I nome
-	0x0021f5c3, // n0x177a c0x0000 (---------------)  + I org
-	0x002aa584, // n0x177b c0x0000 (---------------)  + I publ
-	0x002b3905, // n0x177c c0x0000 (---------------)  + I belau
-	0x00207a02, // n0x177d c0x0000 (---------------)  + I co
-	0x00202542, // n0x177e c0x0000 (---------------)  + I ed
-	0x00206cc2, // n0x177f c0x0000 (---------------)  + I go
-	0x00201602, // n0x1780 c0x0000 (---------------)  + I ne
-	0x00200bc2, // n0x1781 c0x0000 (---------------)  + I or
-	0x00222603, // n0x1782 c0x0000 (---------------)  + I com
-	0x00239dc4, // n0x1783 c0x0000 (---------------)  + I coop
-	0x0027a643, // n0x1784 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1785 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x1786 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x1787 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1788 c0x0000 (---------------)  + I org
-	0x00222603, // n0x1789 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x178a c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x178b c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x178c c0x0000 (---------------)  + I mil
-	0x0022aec4, // n0x178d c0x0000 (---------------)  + I name
-	0x00201603, // n0x178e c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x178f c0x0000 (---------------)  + I org
-	0x002526c3, // n0x1790 c0x0000 (---------------)  + I sch
-	0x0029cfc4, // n0x1791 c0x0000 (---------------)  + I asso
-	0x000b8948, // n0x1792 c0x0000 (---------------)  +   blogspot
-	0x00222603, // n0x1793 c0x0000 (---------------)  + I com
-	0x00214103, // n0x1794 c0x0000 (---------------)  + I nom
-	0x002180c4, // n0x1795 c0x0000 (---------------)  + I arts
-	0x000b8948, // n0x1796 c0x0000 (---------------)  +   blogspot
-	0x00222603, // n0x1797 c0x0000 (---------------)  + I com
-	0x00245bc4, // n0x1798 c0x0000 (---------------)  + I firm
-	0x0021c704, // n0x1799 c0x0000 (---------------)  + I info
-	0x00214103, // n0x179a c0x0000 (---------------)  + I nom
-	0x0020ddc2, // n0x179b c0x0000 (---------------)  + I nt
-	0x0021f5c3, // n0x179c c0x0000 (---------------)  + I org
-	0x00227783, // n0x179d c0x0000 (---------------)  + I rec
-	0x002e9885, // n0x179e c0x0000 (---------------)  + I store
-	0x00200142, // n0x179f c0x0000 (---------------)  + I tm
-	0x002c3243, // n0x17a0 c0x0000 (---------------)  + I www
-	0x00201d82, // n0x17a1 c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x17a2 c0x0000 (---------------)  + I co
-	0x0027a643, // n0x17a3 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x17a4 c0x0000 (---------------)  + I gov
-	0x002015c2, // n0x17a5 c0x0000 (---------------)  + I in
-	0x0021f5c3, // n0x17a6 c0x0000 (---------------)  + I org
-	0x00201d82, // n0x17a7 c0x0000 (---------------)  + I ac
-	0x00374987, // n0x17a8 c0x0000 (---------------)  + I adygeya
-	0x00315f05, // n0x17a9 c0x0000 (---------------)  + I altai
-	0x00285484, // n0x17aa c0x0000 (---------------)  + I amur
-	0x002ddf06, // n0x17ab c0x0000 (---------------)  + I amursk
-	0x00252c0b, // n0x17ac c0x0000 (---------------)  + I arkhangelsk
-	0x00278689, // n0x17ad c0x0000 (---------------)  + I astrakhan
-	0x002b0946, // n0x17ae c0x0000 (---------------)  + I baikal
-	0x0031dfc9, // n0x17af c0x0000 (---------------)  + I bashkiria
-	0x002bd708, // n0x17b0 c0x0000 (---------------)  + I belgorod
-	0x002052c3, // n0x17b1 c0x0000 (---------------)  + I bir
-	0x00221e47, // n0x17b2 c0x0000 (---------------)  + I bryansk
-	0x00220ec8, // n0x17b3 c0x0000 (---------------)  + I buryatia
-	0x00367803, // n0x17b4 c0x0000 (---------------)  + I cbg
-	0x0024a4c4, // n0x17b5 c0x0000 (---------------)  + I chel
-	0x0024d40b, // n0x17b6 c0x0000 (---------------)  + I chelyabinsk
-	0x0029bd05, // n0x17b7 c0x0000 (---------------)  + I chita
-	0x0028c388, // n0x17b8 c0x0000 (---------------)  + I chukotka
-	0x003370c9, // n0x17b9 c0x0000 (---------------)  + I chuvashia
-	0x0025fec3, // n0x17ba c0x0000 (---------------)  + I cmw
-	0x00222603, // n0x17bb c0x0000 (---------------)  + I com
-	0x00319708, // n0x17bc c0x0000 (---------------)  + I dagestan
-	0x00278fc7, // n0x17bd c0x0000 (---------------)  + I dudinka
-	0x002e8a86, // n0x17be c0x0000 (---------------)  + I e-burg
-	0x0027a643, // n0x17bf c0x0000 (---------------)  + I edu
-	0x00333407, // n0x17c0 c0x0000 (---------------)  + I fareast
-	0x002157c3, // n0x17c1 c0x0000 (---------------)  + I gov
-	0x00231e86, // n0x17c2 c0x0000 (---------------)  + I grozny
-	0x00223a83, // n0x17c3 c0x0000 (---------------)  + I int
-	0x0022a5c7, // n0x17c4 c0x0000 (---------------)  + I irkutsk
-	0x00269407, // n0x17c5 c0x0000 (---------------)  + I ivanovo
-	0x00358647, // n0x17c6 c0x0000 (---------------)  + I izhevsk
-	0x002218c5, // n0x17c7 c0x0000 (---------------)  + I jamal
-	0x00202703, // n0x17c8 c0x0000 (---------------)  + I jar
-	0x002b180b, // n0x17c9 c0x0000 (---------------)  + I joshkar-ola
-	0x0021bc08, // n0x17ca c0x0000 (---------------)  + I k-uralsk
-	0x0023b9c8, // n0x17cb c0x0000 (---------------)  + I kalmykia
-	0x0036c686, // n0x17cc c0x0000 (---------------)  + I kaluga
-	0x00342609, // n0x17cd c0x0000 (---------------)  + I kamchatka
-	0x00302a87, // n0x17ce c0x0000 (---------------)  + I karelia
-	0x002f8385, // n0x17cf c0x0000 (---------------)  + I kazan
-	0x0023c184, // n0x17d0 c0x0000 (---------------)  + I kchr
-	0x00317208, // n0x17d1 c0x0000 (---------------)  + I kemerovo
-	0x00241bca, // n0x17d2 c0x0000 (---------------)  + I khabarovsk
-	0x00241e09, // n0x17d3 c0x0000 (---------------)  + I khakassia
-	0x00267f43, // n0x17d4 c0x0000 (---------------)  + I khv
-	0x0033a9c5, // n0x17d5 c0x0000 (---------------)  + I kirov
-	0x00289683, // n0x17d6 c0x0000 (---------------)  + I kms
-	0x002fc106, // n0x17d7 c0x0000 (---------------)  + I koenig
-	0x002d12c4, // n0x17d8 c0x0000 (---------------)  + I komi
-	0x002fed88, // n0x17d9 c0x0000 (---------------)  + I kostroma
-	0x002ade8b, // n0x17da c0x0000 (---------------)  + I krasnoyarsk
-	0x0034c305, // n0x17db c0x0000 (---------------)  + I kuban
-	0x002b3686, // n0x17dc c0x0000 (---------------)  + I kurgan
-	0x002b6085, // n0x17dd c0x0000 (---------------)  + I kursk
-	0x002b7088, // n0x17de c0x0000 (---------------)  + I kustanai
-	0x002b7ec7, // n0x17df c0x0000 (---------------)  + I kuzbass
-	0x002020c7, // n0x17e0 c0x0000 (---------------)  + I lipetsk
-	0x00309e07, // n0x17e1 c0x0000 (---------------)  + I magadan
-	0x0021ea88, // n0x17e2 c0x0000 (---------------)  + I magnitka
-	0x0023cb44, // n0x17e3 c0x0000 (---------------)  + I mari
-	0x0023cb47, // n0x17e4 c0x0000 (---------------)  + I mari-el
-	0x0033dec6, // n0x17e5 c0x0000 (---------------)  + I marine
-	0x0023f703, // n0x17e6 c0x0000 (---------------)  + I mil
-	0x002c16c8, // n0x17e7 c0x0000 (---------------)  + I mordovia
-	0x002c42c6, // n0x17e8 c0x0000 (---------------)  + I mosreg
-	0x00230643, // n0x17e9 c0x0000 (---------------)  + I msk
-	0x002c9208, // n0x17ea c0x0000 (---------------)  + I murmansk
-	0x002cbd85, // n0x17eb c0x0000 (---------------)  + I mytis
-	0x002879c8, // n0x17ec c0x0000 (---------------)  + I nakhodka
-	0x0027a847, // n0x17ed c0x0000 (---------------)  + I nalchik
-	0x00201603, // n0x17ee c0x0000 (---------------)  + I net
-	0x003627c3, // n0x17ef c0x0000 (---------------)  + I nkz
-	0x00286544, // n0x17f0 c0x0000 (---------------)  + I nnov
-	0x00310807, // n0x17f1 c0x0000 (---------------)  + I norilsk
-	0x00213b83, // n0x17f2 c0x0000 (---------------)  + I nov
-	0x002694cb, // n0x17f3 c0x0000 (---------------)  + I novosibirsk
-	0x0020ca43, // n0x17f4 c0x0000 (---------------)  + I nsk
-	0x00230604, // n0x17f5 c0x0000 (---------------)  + I omsk
-	0x002e9908, // n0x17f6 c0x0000 (---------------)  + I orenburg
-	0x0021f5c3, // n0x17f7 c0x0000 (---------------)  + I org
-	0x002e90c5, // n0x17f8 c0x0000 (---------------)  + I oryol
-	0x0024d185, // n0x17f9 c0x0000 (---------------)  + I oskol
-	0x00344b06, // n0x17fa c0x0000 (---------------)  + I palana
-	0x0021e4c5, // n0x17fb c0x0000 (---------------)  + I penza
-	0x002cc144, // n0x17fc c0x0000 (---------------)  + I perm
-	0x00200f02, // n0x17fd c0x0000 (---------------)  + I pp
-	0x002dbac3, // n0x17fe c0x0000 (---------------)  + I ptz
-	0x002b1aca, // n0x17ff c0x0000 (---------------)  + I pyatigorsk
-	0x00347143, // n0x1800 c0x0000 (---------------)  + I rnd
-	0x002474c9, // n0x1801 c0x0000 (---------------)  + I rubtsovsk
-	0x00237046, // n0x1802 c0x0000 (---------------)  + I ryazan
-	0x0022ca48, // n0x1803 c0x0000 (---------------)  + I sakhalin
-	0x00288746, // n0x1804 c0x0000 (---------------)  + I samara
-	0x0023ea87, // n0x1805 c0x0000 (---------------)  + I saratov
-	0x002e0088, // n0x1806 c0x0000 (---------------)  + I simbirsk
-	0x002483c8, // n0x1807 c0x0000 (---------------)  + I smolensk
-	0x002e1643, // n0x1808 c0x0000 (---------------)  + I snz
-	0x002e65c3, // n0x1809 c0x0000 (---------------)  + I spb
-	0x0023edc9, // n0x180a c0x0000 (---------------)  + I stavropol
-	0x002f5e83, // n0x180b c0x0000 (---------------)  + I stv
-	0x002f4446, // n0x180c c0x0000 (---------------)  + I surgut
-	0x002162c6, // n0x180d c0x0000 (---------------)  + I syzran
-	0x003476c6, // n0x180e c0x0000 (---------------)  + I tambov
-	0x00224b09, // n0x180f c0x0000 (---------------)  + I tatarstan
-	0x002b8784, // n0x1810 c0x0000 (---------------)  + I test
-	0x0022a503, // n0x1811 c0x0000 (---------------)  + I tom
-	0x00243a85, // n0x1812 c0x0000 (---------------)  + I tomsk
-	0x0036b849, // n0x1813 c0x0000 (---------------)  + I tsaritsyn
-	0x002021c3, // n0x1814 c0x0000 (---------------)  + I tsk
-	0x002ef544, // n0x1815 c0x0000 (---------------)  + I tula
-	0x002f0504, // n0x1816 c0x0000 (---------------)  + I tuva
-	0x002f0944, // n0x1817 c0x0000 (---------------)  + I tver
-	0x002db486, // n0x1818 c0x0000 (---------------)  + I tyumen
-	0x00302183, // n0x1819 c0x0000 (---------------)  + I udm
-	0x00302188, // n0x181a c0x0000 (---------------)  + I udmurtia
-	0x00256788, // n0x181b c0x0000 (---------------)  + I ulan-ude
-	0x002f15c6, // n0x181c c0x0000 (---------------)  + I vdonsk
-	0x002f818b, // n0x181d c0x0000 (---------------)  + I vladikavkaz
-	0x002f84c8, // n0x181e c0x0000 (---------------)  + I vladimir
-	0x002f86cb, // n0x181f c0x0000 (---------------)  + I vladivostok
-	0x002f9149, // n0x1820 c0x0000 (---------------)  + I volgograd
-	0x002f9c87, // n0x1821 c0x0000 (---------------)  + I vologda
-	0x002faa88, // n0x1822 c0x0000 (---------------)  + I voronezh
-	0x002fbc43, // n0x1823 c0x0000 (---------------)  + I vrn
-	0x00205746, // n0x1824 c0x0000 (---------------)  + I vyatka
-	0x0031ab07, // n0x1825 c0x0000 (---------------)  + I yakutia
-	0x00292485, // n0x1826 c0x0000 (---------------)  + I yamal
-	0x0032b3c9, // n0x1827 c0x0000 (---------------)  + I yaroslavl
-	0x00317c0d, // n0x1828 c0x0000 (---------------)  + I yekaterinburg
-	0x0022c891, // n0x1829 c0x0000 (---------------)  + I yuzhno-sakhalinsk
-	0x00245f85, // n0x182a c0x0000 (---------------)  + I zgrad
-	0x00201d82, // n0x182b c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x182c c0x0000 (---------------)  + I co
-	0x00222603, // n0x182d c0x0000 (---------------)  + I com
-	0x0027a643, // n0x182e c0x0000 (---------------)  + I edu
-	0x00368f84, // n0x182f c0x0000 (---------------)  + I gouv
-	0x002157c3, // n0x1830 c0x0000 (---------------)  + I gov
-	0x00223a83, // n0x1831 c0x0000 (---------------)  + I int
-	0x0023f703, // n0x1832 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x1833 c0x0000 (---------------)  + I net
-	0x00222603, // n0x1834 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1835 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1836 c0x0000 (---------------)  + I gov
-	0x00225d03, // n0x1837 c0x0000 (---------------)  + I med
-	0x00201603, // n0x1838 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1839 c0x0000 (---------------)  + I org
-	0x00200f43, // n0x183a c0x0000 (---------------)  + I pub
-	0x002526c3, // n0x183b c0x0000 (---------------)  + I sch
-	0x00222603, // n0x183c c0x0000 (---------------)  + I com
-	0x0027a643, // n0x183d c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x183e c0x0000 (---------------)  + I gov
-	0x00201603, // n0x183f c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1840 c0x0000 (---------------)  + I org
-	0x00222603, // n0x1841 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1842 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1843 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x1844 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1845 c0x0000 (---------------)  + I org
-	0x00222603, // n0x1846 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1847 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1848 c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x1849 c0x0000 (---------------)  + I info
-	0x00225d03, // n0x184a c0x0000 (---------------)  + I med
-	0x00201603, // n0x184b c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x184c c0x0000 (---------------)  + I org
-	0x00292602, // n0x184d c0x0000 (---------------)  + I tv
-	0x00200101, // n0x184e c0x0000 (---------------)  + I a
-	0x00201d82, // n0x184f c0x0000 (---------------)  + I ac
-	0x00200001, // n0x1850 c0x0000 (---------------)  + I b
-	0x00304282, // n0x1851 c0x0000 (---------------)  + I bd
-	0x000b8948, // n0x1852 c0x0000 (---------------)  +   blogspot
-	0x002167c5, // n0x1853 c0x0000 (---------------)  + I brand
-	0x00200601, // n0x1854 c0x0000 (---------------)  + I c
-	0x00022603, // n0x1855 c0x0000 (---------------)  +   com
-	0x00200741, // n0x1856 c0x0000 (---------------)  + I d
-	0x00200081, // n0x1857 c0x0000 (---------------)  + I e
-	0x002003c1, // n0x1858 c0x0000 (---------------)  + I f
-	0x00241b02, // n0x1859 c0x0000 (---------------)  + I fh
-	0x00241b04, // n0x185a c0x0000 (---------------)  + I fhsk
-	0x00242043, // n0x185b c0x0000 (---------------)  + I fhv
-	0x002004c1, // n0x185c c0x0000 (---------------)  + I g
-	0x00200641, // n0x185d c0x0000 (---------------)  + I h
-	0x00200041, // n0x185e c0x0000 (---------------)  + I i
-	0x00200441, // n0x185f c0x0000 (---------------)  + I k
-	0x0036c147, // n0x1860 c0x0000 (---------------)  + I komforb
-	0x002e128f, // n0x1861 c0x0000 (---------------)  + I kommunalforbund
-	0x002cc486, // n0x1862 c0x0000 (---------------)  + I komvux
-	0x00200801, // n0x1863 c0x0000 (---------------)  + I l
-	0x00266a86, // n0x1864 c0x0000 (---------------)  + I lanbib
-	0x00200181, // n0x1865 c0x0000 (---------------)  + I m
-	0x00200241, // n0x1866 c0x0000 (---------------)  + I n
-	0x00327c0e, // n0x1867 c0x0000 (---------------)  + I naturbruksgymn
-	0x00200841, // n0x1868 c0x0000 (---------------)  + I o
-	0x0021f5c3, // n0x1869 c0x0000 (---------------)  + I org
-	0x002001c1, // n0x186a c0x0000 (---------------)  + I p
-	0x00236685, // n0x186b c0x0000 (---------------)  + I parti
-	0x00200f02, // n0x186c c0x0000 (---------------)  + I pp
-	0x002487c5, // n0x186d c0x0000 (---------------)  + I press
-	0x00200a81, // n0x186e c0x0000 (---------------)  + I r
-	0x00200941, // n0x186f c0x0000 (---------------)  + I s
-	0x00200141, // n0x1870 c0x0000 (---------------)  + I t
-	0x00200142, // n0x1871 c0x0000 (---------------)  + I tm
-	0x00200401, // n0x1872 c0x0000 (---------------)  + I u
-	0x00200541, // n0x1873 c0x0000 (---------------)  + I w
-	0x00208281, // n0x1874 c0x0000 (---------------)  + I x
-	0x00200d41, // n0x1875 c0x0000 (---------------)  + I y
-	0x00201481, // n0x1876 c0x0000 (---------------)  + I z
-	0x000b8948, // n0x1877 c0x0000 (---------------)  +   blogspot
-	0x00222603, // n0x1878 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1879 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x187a c0x0000 (---------------)  + I gov
-	0x00201603, // n0x187b c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x187c c0x0000 (---------------)  + I org
-	0x00222483, // n0x187d c0x0000 (---------------)  + I per
-	0x00222603, // n0x187e c0x0000 (---------------)  + I com
-	0x002157c3, // n0x187f c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x1880 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x1881 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1882 c0x0000 (---------------)  + I org
-	0x000b8948, // n0x1883 c0x0000 (---------------)  +   blogspot
-	0x00222603, // n0x1884 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1885 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1886 c0x0000 (---------------)  + I gov
-	0x00201603, // n0x1887 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1888 c0x0000 (---------------)  + I org
-	0x00201383, // n0x1889 c0x0000 (---------------)  + I art
-	0x00222603, // n0x188a c0x0000 (---------------)  + I com
-	0x0027a643, // n0x188b c0x0000 (---------------)  + I edu
-	0x00368f84, // n0x188c c0x0000 (---------------)  + I gouv
-	0x0021f5c3, // n0x188d c0x0000 (---------------)  + I org
-	0x002f1945, // n0x188e c0x0000 (---------------)  + I perso
-	0x003688c4, // n0x188f c0x0000 (---------------)  + I univ
-	0x00222603, // n0x1890 c0x0000 (---------------)  + I com
-	0x00201603, // n0x1891 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1892 c0x0000 (---------------)  + I org
-	0x00207a02, // n0x1893 c0x0000 (---------------)  + I co
-	0x00222603, // n0x1894 c0x0000 (---------------)  + I com
-	0x00235089, // n0x1895 c0x0000 (---------------)  + I consulado
-	0x0027a643, // n0x1896 c0x0000 (---------------)  + I edu
-	0x0029dc09, // n0x1897 c0x0000 (---------------)  + I embaixada
-	0x002157c3, // n0x1898 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x1899 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x189a c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x189b c0x0000 (---------------)  + I org
-	0x002d80c8, // n0x189c c0x0000 (---------------)  + I principe
-	0x00234787, // n0x189d c0x0000 (---------------)  + I saotome
-	0x002e9885, // n0x189e c0x0000 (---------------)  + I store
-	0x00222603, // n0x189f c0x0000 (---------------)  + I com
-	0x0027a643, // n0x18a0 c0x0000 (---------------)  + I edu
-	0x0020dbc3, // n0x18a1 c0x0000 (---------------)  + I gob
-	0x0021f5c3, // n0x18a2 c0x0000 (---------------)  + I org
-	0x0023e843, // n0x18a3 c0x0000 (---------------)  + I red
-	0x002157c3, // n0x18a4 c0x0000 (---------------)  + I gov
-	0x00222603, // n0x18a5 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x18a6 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x18a7 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x18a8 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x18a9 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x18aa c0x0000 (---------------)  + I org
-	0x00201d82, // n0x18ab c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x18ac c0x0000 (---------------)  + I co
-	0x0021f5c3, // n0x18ad c0x0000 (---------------)  + I org
-	0x000b8948, // n0x18ae c0x0000 (---------------)  +   blogspot
-	0x00201d82, // n0x18af c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x18b0 c0x0000 (---------------)  + I co
-	0x00206cc2, // n0x18b1 c0x0000 (---------------)  + I go
-	0x002015c2, // n0x18b2 c0x0000 (---------------)  + I in
-	0x00207e02, // n0x18b3 c0x0000 (---------------)  + I mi
-	0x00201603, // n0x18b4 c0x0000 (---------------)  + I net
-	0x00200bc2, // n0x18b5 c0x0000 (---------------)  + I or
-	0x00201d82, // n0x18b6 c0x0000 (---------------)  + I ac
-	0x00314c43, // n0x18b7 c0x0000 (---------------)  + I biz
-	0x00207a02, // n0x18b8 c0x0000 (---------------)  + I co
-	0x00222603, // n0x18b9 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x18ba c0x0000 (---------------)  + I edu
-	0x00206cc2, // n0x18bb c0x0000 (---------------)  + I go
-	0x002157c3, // n0x18bc c0x0000 (---------------)  + I gov
-	0x00223a83, // n0x18bd c0x0000 (---------------)  + I int
-	0x0023f703, // n0x18be c0x0000 (---------------)  + I mil
-	0x0022aec4, // n0x18bf c0x0000 (---------------)  + I name
-	0x00201603, // n0x18c0 c0x0000 (---------------)  + I net
-	0x00213e03, // n0x18c1 c0x0000 (---------------)  + I nic
-	0x0021f5c3, // n0x18c2 c0x0000 (---------------)  + I org
-	0x002b8784, // n0x18c3 c0x0000 (---------------)  + I test
-	0x00205e43, // n0x18c4 c0x0000 (---------------)  + I web
-	0x002157c3, // n0x18c5 c0x0000 (---------------)  + I gov
-	0x00207a02, // n0x18c6 c0x0000 (---------------)  + I co
-	0x00222603, // n0x18c7 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x18c8 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x18c9 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x18ca c0x0000 (---------------)  + I mil
-	0x00201603, // n0x18cb c0x0000 (---------------)  + I net
-	0x00214103, // n0x18cc c0x0000 (---------------)  + I nom
-	0x0021f5c3, // n0x18cd c0x0000 (---------------)  + I org
-	0x00362587, // n0x18ce c0x0000 (---------------)  + I agrinet
-	0x00222603, // n0x18cf c0x0000 (---------------)  + I com
-	0x00256907, // n0x18d0 c0x0000 (---------------)  + I defense
-	0x0031dac6, // n0x18d1 c0x0000 (---------------)  + I edunet
-	0x00203a03, // n0x18d2 c0x0000 (---------------)  + I ens
-	0x0021c5c3, // n0x18d3 c0x0000 (---------------)  + I fin
-	0x002157c3, // n0x18d4 c0x0000 (---------------)  + I gov
-	0x00214b03, // n0x18d5 c0x0000 (---------------)  + I ind
-	0x0021c704, // n0x18d6 c0x0000 (---------------)  + I info
-	0x002f47c4, // n0x18d7 c0x0000 (---------------)  + I intl
-	0x002cc206, // n0x18d8 c0x0000 (---------------)  + I mincom
-	0x0020cd83, // n0x18d9 c0x0000 (---------------)  + I nat
-	0x00201603, // n0x18da c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x18db c0x0000 (---------------)  + I org
-	0x002f1945, // n0x18dc c0x0000 (---------------)  + I perso
-	0x002a2404, // n0x18dd c0x0000 (---------------)  + I rnrt
-	0x00243e03, // n0x18de c0x0000 (---------------)  + I rns
-	0x00360583, // n0x18df c0x0000 (---------------)  + I rnu
-	0x002bd047, // n0x18e0 c0x0000 (---------------)  + I tourism
-	0x0029a785, // n0x18e1 c0x0000 (---------------)  + I turen
-	0x00222603, // n0x18e2 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x18e3 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x18e4 c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x18e5 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x18e6 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x18e7 c0x0000 (---------------)  + I org
-	0x002025c2, // n0x18e8 c0x0000 (---------------)  + I av
-	0x00216e43, // n0x18e9 c0x0000 (---------------)  + I bbs
-	0x0021ddc3, // n0x18ea c0x0000 (---------------)  + I bel
-	0x00314c43, // n0x18eb c0x0000 (---------------)  + I biz
-	0x00222603, // n0x18ec c0x0000 (---------------)  + I com
-	0x00203982, // n0x18ed c0x0000 (---------------)  + I dr
-	0x0027a643, // n0x18ee c0x0000 (---------------)  + I edu
-	0x00204b03, // n0x18ef c0x0000 (---------------)  + I gen
-	0x002157c3, // n0x18f0 c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x18f1 c0x0000 (---------------)  + I info
-	0x0021bdc3, // n0x18f2 c0x0000 (---------------)  + I k12
-	0x00349bc3, // n0x18f3 c0x0000 (---------------)  + I kep
-	0x0023f703, // n0x18f4 c0x0000 (---------------)  + I mil
-	0x0022aec4, // n0x18f5 c0x0000 (---------------)  + I name
-	0x4aa0c1c2, // n0x18f6 c0x012a (n0x18fd-n0x18fe)  + I nc
-	0x00201603, // n0x18f7 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x18f8 c0x0000 (---------------)  + I org
-	0x00214cc3, // n0x18f9 c0x0000 (---------------)  + I pol
-	0x00223b03, // n0x18fa c0x0000 (---------------)  + I tel
-	0x00292602, // n0x18fb c0x0000 (---------------)  + I tv
-	0x00205e43, // n0x18fc c0x0000 (---------------)  + I web
-	0x002157c3, // n0x18fd c0x0000 (---------------)  + I gov
-	0x0027a1c4, // n0x18fe c0x0000 (---------------)  + I aero
-	0x00314c43, // n0x18ff c0x0000 (---------------)  + I biz
-	0x00207a02, // n0x1900 c0x0000 (---------------)  + I co
-	0x00222603, // n0x1901 c0x0000 (---------------)  + I com
-	0x00239dc4, // n0x1902 c0x0000 (---------------)  + I coop
-	0x0027a643, // n0x1903 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1904 c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x1905 c0x0000 (---------------)  + I info
-	0x00223a83, // n0x1906 c0x0000 (---------------)  + I int
-	0x002deb44, // n0x1907 c0x0000 (---------------)  + I jobs
-	0x0020e884, // n0x1908 c0x0000 (---------------)  + I mobi
-	0x002cb0c6, // n0x1909 c0x0000 (---------------)  + I museum
-	0x0022aec4, // n0x190a c0x0000 (---------------)  + I name
-	0x00201603, // n0x190b c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x190c c0x0000 (---------------)  + I org
-	0x002d8443, // n0x190d c0x0000 (---------------)  + I pro
-	0x00296ac6, // n0x190e c0x0000 (---------------)  + I travel
-	0x00051c8b, // n0x190f c0x0000 (---------------)  +   better-than
-	0x00010c06, // n0x1910 c0x0000 (---------------)  +   dyndns
-	0x0001f10a, // n0x1911 c0x0000 (---------------)  +   on-the-web
-	0x0007f3ca, // n0x1912 c0x0000 (---------------)  +   worse-than
-	0x000b8948, // n0x1913 c0x0000 (---------------)  +   blogspot
-	0x002a4284, // n0x1914 c0x0000 (---------------)  + I club
-	0x00222603, // n0x1915 c0x0000 (---------------)  + I com
-	0x00314c04, // n0x1916 c0x0000 (---------------)  + I ebiz
-	0x0027a643, // n0x1917 c0x0000 (---------------)  + I edu
-	0x0028b744, // n0x1918 c0x0000 (---------------)  + I game
-	0x002157c3, // n0x1919 c0x0000 (---------------)  + I gov
-	0x00308f83, // n0x191a c0x0000 (---------------)  + I idv
-	0x0023f703, // n0x191b c0x0000 (---------------)  + I mil
-	0x00201603, // n0x191c c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x191d c0x0000 (---------------)  + I org
-	0x003136cb, // n0x191e c0x0000 (---------------)  + I xn--czrw28b
-	0x00363cca, // n0x191f c0x0000 (---------------)  + I xn--uc0atv
-	0x00373d4c, // n0x1920 c0x0000 (---------------)  + I xn--zf0ao64a
-	0x00201d82, // n0x1921 c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x1922 c0x0000 (---------------)  + I co
-	0x00206cc2, // n0x1923 c0x0000 (---------------)  + I go
-	0x002a7585, // n0x1924 c0x0000 (---------------)  + I hotel
-	0x0021c704, // n0x1925 c0x0000 (---------------)  + I info
-	0x00202a02, // n0x1926 c0x0000 (---------------)  + I me
-	0x0023f703, // n0x1927 c0x0000 (---------------)  + I mil
-	0x0020e884, // n0x1928 c0x0000 (---------------)  + I mobi
-	0x00201602, // n0x1929 c0x0000 (---------------)  + I ne
-	0x00200bc2, // n0x192a c0x0000 (---------------)  + I or
-	0x00218bc2, // n0x192b c0x0000 (---------------)  + I sc
-	0x00292602, // n0x192c c0x0000 (---------------)  + I tv
-	0x002b2449, // n0x192d c0x0000 (---------------)  + I cherkassy
-	0x00262f88, // n0x192e c0x0000 (---------------)  + I cherkasy
-	0x00265f09, // n0x192f c0x0000 (---------------)  + I chernigov
-	0x00269249, // n0x1930 c0x0000 (---------------)  + I chernihiv
-	0x0026cf4a, // n0x1931 c0x0000 (---------------)  + I chernivtsi
-	0x0027098a, // n0x1932 c0x0000 (---------------)  + I chernovtsy
-	0x00200882, // n0x1933 c0x0000 (---------------)  + I ck
-	0x002309c2, // n0x1934 c0x0000 (---------------)  + I cn
-	0x00207a02, // n0x1935 c0x0000 (---------------)  + I co
-	0x00222603, // n0x1936 c0x0000 (---------------)  + I com
-	0x00218282, // n0x1937 c0x0000 (---------------)  + I cr
-	0x0023f946, // n0x1938 c0x0000 (---------------)  + I crimea
-	0x003350c2, // n0x1939 c0x0000 (---------------)  + I cv
-	0x0020b0c2, // n0x193a c0x0000 (---------------)  + I dn
-	0x0036d88e, // n0x193b c0x0000 (---------------)  + I dnepropetrovsk
-	0x0031454e, // n0x193c c0x0000 (---------------)  + I dnipropetrovsk
-	0x00279847, // n0x193d c0x0000 (---------------)  + I dominic
-	0x00207b87, // n0x193e c0x0000 (---------------)  + I donetsk
-	0x002d02c2, // n0x193f c0x0000 (---------------)  + I dp
-	0x0027a643, // n0x1940 c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1941 c0x0000 (---------------)  + I gov
-	0x00200382, // n0x1942 c0x0000 (---------------)  + I if
-	0x002015c2, // n0x1943 c0x0000 (---------------)  + I in
-	0x002fe5cf, // n0x1944 c0x0000 (---------------)  + I ivano-frankivsk
-	0x0020ad42, // n0x1945 c0x0000 (---------------)  + I kh
-	0x00243b87, // n0x1946 c0x0000 (---------------)  + I kharkiv
-	0x00245347, // n0x1947 c0x0000 (---------------)  + I kharkov
-	0x00252e87, // n0x1948 c0x0000 (---------------)  + I kherson
-	0x0026014c, // n0x1949 c0x0000 (---------------)  + I khmelnitskiy
-	0x00261f0c, // n0x194a c0x0000 (---------------)  + I khmelnytskyi
-	0x00204484, // n0x194b c0x0000 (---------------)  + I kiev
-	0x0033a9ca, // n0x194c c0x0000 (---------------)  + I kirovograd
-	0x00289682, // n0x194d c0x0000 (---------------)  + I km
-	0x0020e742, // n0x194e c0x0000 (---------------)  + I kr
-	0x002af444, // n0x194f c0x0000 (---------------)  + I krym
-	0x0020b982, // n0x1950 c0x0000 (---------------)  + I ks
-	0x002b9342, // n0x1951 c0x0000 (---------------)  + I kv
-	0x00262144, // n0x1952 c0x0000 (---------------)  + I kyiv
-	0x00213f02, // n0x1953 c0x0000 (---------------)  + I lg
-	0x00220002, // n0x1954 c0x0000 (---------------)  + I lt
-	0x0036c707, // n0x1955 c0x0000 (---------------)  + I lugansk
-	0x002359c5, // n0x1956 c0x0000 (---------------)  + I lutsk
-	0x00205002, // n0x1957 c0x0000 (---------------)  + I lv
-	0x00242f44, // n0x1958 c0x0000 (---------------)  + I lviv
-	0x0033f482, // n0x1959 c0x0000 (---------------)  + I mk
-	0x002fe448, // n0x195a c0x0000 (---------------)  + I mykolaiv
-	0x00201603, // n0x195b c0x0000 (---------------)  + I net
-	0x0020ff88, // n0x195c c0x0000 (---------------)  + I nikolaev
-	0x00208d82, // n0x195d c0x0000 (---------------)  + I od
-	0x002384c5, // n0x195e c0x0000 (---------------)  + I odesa
-	0x0034a246, // n0x195f c0x0000 (---------------)  + I odessa
-	0x0021f5c3, // n0x1960 c0x0000 (---------------)  + I org
-	0x0020bf42, // n0x1961 c0x0000 (---------------)  + I pl
-	0x002d5487, // n0x1962 c0x0000 (---------------)  + I poltava
-	0x00200f02, // n0x1963 c0x0000 (---------------)  + I pp
-	0x002d8305, // n0x1964 c0x0000 (---------------)  + I rivne
-	0x002ddb45, // n0x1965 c0x0000 (---------------)  + I rovno
-	0x0020ee82, // n0x1966 c0x0000 (---------------)  + I rv
-	0x00231a42, // n0x1967 c0x0000 (---------------)  + I sb
-	0x0029968a, // n0x1968 c0x0000 (---------------)  + I sebastopol
-	0x002a838a, // n0x1969 c0x0000 (---------------)  + I sevastopol
-	0x00229dc2, // n0x196a c0x0000 (---------------)  + I sm
-	0x002f58c4, // n0x196b c0x0000 (---------------)  + I sumy
-	0x00201882, // n0x196c c0x0000 (---------------)  + I te
-	0x002e7a08, // n0x196d c0x0000 (---------------)  + I ternopil
-	0x00201442, // n0x196e c0x0000 (---------------)  + I uz
-	0x0022c648, // n0x196f c0x0000 (---------------)  + I uzhgorod
-	0x002f7247, // n0x1970 c0x0000 (---------------)  + I vinnica
-	0x002f7549, // n0x1971 c0x0000 (---------------)  + I vinnytsia
-	0x0020ff42, // n0x1972 c0x0000 (---------------)  + I vn
-	0x002fa845, // n0x1973 c0x0000 (---------------)  + I volyn
-	0x00315ec5, // n0x1974 c0x0000 (---------------)  + I yalta
-	0x0036918b, // n0x1975 c0x0000 (---------------)  + I zaporizhzhe
-	0x002d41cc, // n0x1976 c0x0000 (---------------)  + I zaporizhzhia
-	0x0022a448, // n0x1977 c0x0000 (---------------)  + I zhitomir
-	0x002fac08, // n0x1978 c0x0000 (---------------)  + I zhytomyr
-	0x002cfac2, // n0x1979 c0x0000 (---------------)  + I zp
-	0x00260ec2, // n0x197a c0x0000 (---------------)  + I zt
-	0x00201d82, // n0x197b c0x0000 (---------------)  + I ac
-	0x00207a02, // n0x197c c0x0000 (---------------)  + I co
-	0x00222603, // n0x197d c0x0000 (---------------)  + I com
-	0x00206cc2, // n0x197e c0x0000 (---------------)  + I go
-	0x00201602, // n0x197f c0x0000 (---------------)  + I ne
-	0x00200bc2, // n0x1980 c0x0000 (---------------)  + I or
-	0x0021f5c3, // n0x1981 c0x0000 (---------------)  + I org
-	0x00218bc2, // n0x1982 c0x0000 (---------------)  + I sc
-	0x00201d82, // n0x1983 c0x0000 (---------------)  + I ac
-	0x4ca07a02, // n0x1984 c0x0132 (n0x198e-n0x198f)  + I co
-	0x4ce157c3, // n0x1985 c0x0133 (n0x198f-n0x1990)  + I gov
-	0x00223143, // n0x1986 c0x0000 (---------------)  + I ltd
-	0x00202a02, // n0x1987 c0x0000 (---------------)  + I me
-	0x00201603, // n0x1988 c0x0000 (---------------)  + I net
-	0x0020f003, // n0x1989 c0x0000 (---------------)  + I nhs
-	0x0021f5c3, // n0x198a c0x0000 (---------------)  + I org
-	0x002d2a43, // n0x198b c0x0000 (---------------)  + I plc
-	0x0023ef46, // n0x198c c0x0000 (---------------)  + I police
-	0x016526c3, // n0x198d c0x0005 (---------------)* o I sch
-	0x000b8948, // n0x198e c0x0000 (---------------)  +   blogspot
-	0x000a6887, // n0x198f c0x0000 (---------------)  +   service
-	0x4d603542, // n0x1990 c0x0135 (n0x19cf-n0x19d2)  + I ak
-	0x4da02082, // n0x1991 c0x0136 (n0x19d2-n0x19d5)  + I al
-	0x4de00a42, // n0x1992 c0x0137 (n0x19d5-n0x19d8)  + I ar
-	0x4e200902, // n0x1993 c0x0138 (n0x19d8-n0x19db)  + I as
-	0x4e6034c2, // n0x1994 c0x0139 (n0x19db-n0x19de)  + I az
-	0x4ea0bc02, // n0x1995 c0x013a (n0x19de-n0x19e1)  + I ca
-	0x4ee07a02, // n0x1996 c0x013b (n0x19e1-n0x19e4)  + I co
-	0x4f230cc2, // n0x1997 c0x013c (n0x19e4-n0x19e7)  + I ct
-	0x4f618242, // n0x1998 c0x013d (n0x19e7-n0x19ea)  + I dc
-	0x4fa02dc2, // n0x1999 c0x013e (n0x19ea-n0x19ed)  + I de
-	0x002ed683, // n0x199a c0x0000 (---------------)  + I dni
-	0x0022e3c3, // n0x199b c0x0000 (---------------)  + I fed
-	0x4fe49682, // n0x199c c0x013f (n0x19ed-n0x19f0)  + I fl
-	0x502004c2, // n0x199d c0x0140 (n0x19f0-n0x19f3)  + I ga
-	0x50630742, // n0x199e c0x0141 (n0x19f3-n0x19f6)  + I gu
-	0x50a00982, // n0x199f c0x0142 (n0x19f6-n0x19f8)  + I hi
-	0x50e0b542, // n0x19a0 c0x0143 (n0x19f8-n0x19fb)  + I ia
-	0x51202f82, // n0x19a1 c0x0144 (n0x19fb-n0x19fe)  + I id
-	0x51603902, // n0x19a2 c0x0145 (n0x19fe-n0x1a01)  + I il
-	0x51a015c2, // n0x19a3 c0x0146 (n0x1a01-n0x1a04)  + I in
-	0x000ca345, // n0x19a4 c0x0000 (---------------)  +   is-by
-	0x0022b803, // n0x19a5 c0x0000 (---------------)  + I isa
-	0x002a67c4, // n0x19a6 c0x0000 (---------------)  + I kids
-	0x51e0b982, // n0x19a7 c0x0147 (n0x1a04-n0x1a07)  + I ks
-	0x52213442, // n0x19a8 c0x0148 (n0x1a07-n0x1a0a)  + I ky
-	0x52604d02, // n0x19a9 c0x0149 (n0x1a0a-n0x1a0d)  + I la
-	0x0015280b, // n0x19aa c0x0000 (---------------)  +   land-4-sale
-	0x52a002c2, // n0x19ab c0x014a (n0x1a0d-n0x1a10)  + I ma
-	0x53235302, // n0x19ac c0x014c (n0x1a13-n0x1a16)  + I md
-	0x53602a02, // n0x19ad c0x014d (n0x1a16-n0x1a19)  + I me
-	0x53a07e02, // n0x19ae c0x014e (n0x1a19-n0x1a1c)  + I mi
-	0x53e298c2, // n0x19af c0x014f (n0x1a1c-n0x1a1f)  + I mn
-	0x54206c42, // n0x19b0 c0x0150 (n0x1a1f-n0x1a22)  + I mo
-	0x54625542, // n0x19b1 c0x0151 (n0x1a22-n0x1a25)  + I ms
-	0x54a68d82, // n0x19b2 c0x0152 (n0x1a25-n0x1a28)  + I mt
-	0x54e0c1c2, // n0x19b3 c0x0153 (n0x1a28-n0x1a2b)  + I nc
-	0x55200702, // n0x19b4 c0x0154 (n0x1a2b-n0x1a2d)  + I nd
-	0x55601602, // n0x19b5 c0x0155 (n0x1a2d-n0x1a30)  + I ne
-	0x55a0f002, // n0x19b6 c0x0156 (n0x1a30-n0x1a33)  + I nh
-	0x55e026c2, // n0x19b7 c0x0157 (n0x1a33-n0x1a36)  + I nj
-	0x5620eb82, // n0x19b8 c0x0158 (n0x1a36-n0x1a39)  + I nm
-	0x00261843, // n0x19b9 c0x0000 (---------------)  + I nsn
-	0x5660ea42, // n0x19ba c0x0159 (n0x1a39-n0x1a3c)  + I nv
-	0x56a15182, // n0x19bb c0x015a (n0x1a3c-n0x1a3f)  + I ny
-	0x56e01bc2, // n0x19bc c0x015b (n0x1a3f-n0x1a42)  + I oh
-	0x57203742, // n0x19bd c0x015c (n0x1a42-n0x1a45)  + I ok
-	0x57600bc2, // n0x19be c0x015d (n0x1a45-n0x1a48)  + I or
-	0x57a001c2, // n0x19bf c0x015e (n0x1a48-n0x1a4b)  + I pa
-	0x57e487c2, // n0x19c0 c0x015f (n0x1a4b-n0x1a4e)  + I pr
-	0x58209fc2, // n0x19c1 c0x0160 (n0x1a4e-n0x1a51)  + I ri
-	0x58618bc2, // n0x19c2 c0x0161 (n0x1a51-n0x1a54)  + I sc
-	0x58a02002, // n0x19c3 c0x0162 (n0x1a54-n0x1a56)  + I sd
-	0x000ea04c, // n0x19c4 c0x0000 (---------------)  +   stuff-4-sale
-	0x58e03f82, // n0x19c5 c0x0163 (n0x1a56-n0x1a59)  + I tn
-	0x5925dc02, // n0x19c6 c0x0164 (n0x1a59-n0x1a5c)  + I tx
-	0x59600dc2, // n0x19c7 c0x0165 (n0x1a5c-n0x1a5f)  + I ut
-	0x59a000c2, // n0x19c8 c0x0166 (n0x1a5f-n0x1a62)  + I va
-	0x59e032c2, // n0x19c9 c0x0167 (n0x1a62-n0x1a65)  + I vi
-	0x5a26d0c2, // n0x19ca c0x0168 (n0x1a65-n0x1a68)  + I vt
-	0x5a600542, // n0x19cb c0x0169 (n0x1a68-n0x1a6b)  + I wa
-	0x5aa118c2, // n0x19cc c0x016a (n0x1a6b-n0x1a6e)  + I wi
-	0x5ae71d02, // n0x19cd c0x016b (n0x1a6e-n0x1a6f)  + I wv
-	0x5b20b882, // n0x19ce c0x016c (n0x1a6f-n0x1a72)  + I wy
-	0x00219f02, // n0x19cf c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19d0 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19d1 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19d2 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19d3 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19d4 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19d5 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19d6 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19d7 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19d8 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19d9 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19da c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19db c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19dc c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19dd c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19de c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19df c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19e0 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19e1 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19e2 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19e3 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19e4 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19e5 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19e6 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19e7 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19e8 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19e9 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19ea c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19eb c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19ec c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19ed c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19ee c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19ef c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19f0 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19f1 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19f2 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19f3 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19f4 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19f5 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19f6 c0x0000 (---------------)  + I cc
-	0x002858c3, // n0x19f7 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19f8 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19f9 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19fa c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19fb c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19fc c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x19fd c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x19fe c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x19ff c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a00 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a01 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a02 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a03 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a04 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a05 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a06 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a07 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a08 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a09 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a0a c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a0b c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a0c c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a0d c0x0000 (---------------)  + I cc
-	0x52e1bdc3, // n0x1a0e c0x014b (n0x1a10-n0x1a13)  + I k12
-	0x002858c3, // n0x1a0f c0x0000 (---------------)  + I lib
-	0x00321e04, // n0x1a10 c0x0000 (---------------)  + I chtr
-	0x0022d106, // n0x1a11 c0x0000 (---------------)  + I paroch
-	0x002dbbc3, // n0x1a12 c0x0000 (---------------)  + I pvt
-	0x00219f02, // n0x1a13 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a14 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a15 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a16 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a17 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a18 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a19 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a1a c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a1b c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a1c c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a1d c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a1e c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a1f c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a20 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a21 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a22 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a23 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a24 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a25 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a26 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a27 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a28 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a29 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a2a c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a2b c0x0000 (---------------)  + I cc
-	0x002858c3, // n0x1a2c c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a2d c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a2e c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a2f c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a30 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a31 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a32 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a33 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a34 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a35 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a36 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a37 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a38 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a39 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a3a c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a3b c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a3c c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a3d c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a3e c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a3f c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a40 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a41 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a42 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a43 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a44 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a45 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a46 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a47 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a48 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a49 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a4a c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a4b c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a4c c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a4d c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a4e c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a4f c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a50 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a51 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a52 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a53 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a54 c0x0000 (---------------)  + I cc
-	0x002858c3, // n0x1a55 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a56 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a57 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a58 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a59 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a5a c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a5b c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a5c c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a5d c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a5e c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a5f c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a60 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a61 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a62 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a63 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a64 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a65 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a66 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a67 c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a68 c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a69 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a6a c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a6b c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a6c c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a6d c0x0000 (---------------)  + I lib
-	0x00219f02, // n0x1a6e c0x0000 (---------------)  + I cc
-	0x00219f02, // n0x1a6f c0x0000 (---------------)  + I cc
-	0x0021bdc3, // n0x1a70 c0x0000 (---------------)  + I k12
-	0x002858c3, // n0x1a71 c0x0000 (---------------)  + I lib
-	0x00222603, // n0x1a72 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1a73 c0x0000 (---------------)  + I edu
-	0x00311e83, // n0x1a74 c0x0000 (---------------)  + I gub
-	0x0023f703, // n0x1a75 c0x0000 (---------------)  + I mil
-	0x00201603, // n0x1a76 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1a77 c0x0000 (---------------)  + I org
-	0x00207a02, // n0x1a78 c0x0000 (---------------)  + I co
-	0x00222603, // n0x1a79 c0x0000 (---------------)  + I com
-	0x00201603, // n0x1a7a c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1a7b c0x0000 (---------------)  + I org
-	0x00222603, // n0x1a7c c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1a7d c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1a7e c0x0000 (---------------)  + I gov
-	0x0023f703, // n0x1a7f c0x0000 (---------------)  + I mil
-	0x00201603, // n0x1a80 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1a81 c0x0000 (---------------)  + I org
-	0x002180c4, // n0x1a82 c0x0000 (---------------)  + I arts
-	0x00207a02, // n0x1a83 c0x0000 (---------------)  + I co
-	0x00222603, // n0x1a84 c0x0000 (---------------)  + I com
-	0x00302ec3, // n0x1a85 c0x0000 (---------------)  + I e12
-	0x0027a643, // n0x1a86 c0x0000 (---------------)  + I edu
-	0x00245bc4, // n0x1a87 c0x0000 (---------------)  + I firm
-	0x0020dbc3, // n0x1a88 c0x0000 (---------------)  + I gob
-	0x002157c3, // n0x1a89 c0x0000 (---------------)  + I gov
-	0x0021c704, // n0x1a8a c0x0000 (---------------)  + I info
-	0x00223a83, // n0x1a8b c0x0000 (---------------)  + I int
-	0x0023f703, // n0x1a8c c0x0000 (---------------)  + I mil
-	0x00201603, // n0x1a8d c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1a8e c0x0000 (---------------)  + I org
-	0x00227783, // n0x1a8f c0x0000 (---------------)  + I rec
-	0x002e9885, // n0x1a90 c0x0000 (---------------)  + I store
-	0x00246943, // n0x1a91 c0x0000 (---------------)  + I tec
-	0x00205e43, // n0x1a92 c0x0000 (---------------)  + I web
-	0x00207a02, // n0x1a93 c0x0000 (---------------)  + I co
-	0x00222603, // n0x1a94 c0x0000 (---------------)  + I com
-	0x0021bdc3, // n0x1a95 c0x0000 (---------------)  + I k12
-	0x00201603, // n0x1a96 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1a97 c0x0000 (---------------)  + I org
-	0x00201d82, // n0x1a98 c0x0000 (---------------)  + I ac
-	0x00314c43, // n0x1a99 c0x0000 (---------------)  + I biz
-	0x00222603, // n0x1a9a c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1a9b c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1a9c c0x0000 (---------------)  + I gov
-	0x00360806, // n0x1a9d c0x0000 (---------------)  + I health
-	0x0021c704, // n0x1a9e c0x0000 (---------------)  + I info
-	0x00223a83, // n0x1a9f c0x0000 (---------------)  + I int
-	0x0022aec4, // n0x1aa0 c0x0000 (---------------)  + I name
-	0x00201603, // n0x1aa1 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1aa2 c0x0000 (---------------)  + I org
-	0x002d8443, // n0x1aa3 c0x0000 (---------------)  + I pro
-	0x00222603, // n0x1aa4 c0x0000 (---------------)  + I com
-	0x0027a643, // n0x1aa5 c0x0000 (---------------)  + I edu
-	0x00201603, // n0x1aa6 c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1aa7 c0x0000 (---------------)  + I org
-	0x00222603, // n0x1aa8 c0x0000 (---------------)  + I com
-	0x00010c06, // n0x1aa9 c0x0000 (---------------)  +   dyndns
-	0x0027a643, // n0x1aaa c0x0000 (---------------)  + I edu
-	0x002157c3, // n0x1aab c0x0000 (---------------)  + I gov
-	0x000f5946, // n0x1aac c0x0000 (---------------)  +   mypets
-	0x00201603, // n0x1aad c0x0000 (---------------)  + I net
-	0x0021f5c3, // n0x1aae c0x0000 (---------------)  + I org
-	0x002fd448, // n0x1aaf c0x0000 (---------------)  + I xn--80au
-	0x002ff349, // n0x1ab0 c0x0000 (---------------)  + I xn--90azh
-	0x0030bdc9, // n0x1ab1 c0x0000 (---------------)  + I xn--c1avg
-	0x0031a688, // n0x1ab2 c0x0000 (---------------)  + I xn--d1at
-	0x0034b708, // n0x1ab3 c0x0000 (---------------)  + I xn--o1ac
-	0x0034b709, // n0x1ab4 c0x0000 (---------------)  + I xn--o1ach
+	0x00364ac3, // n0x0000 c0x0000 (---------------)  + I abb
+	0x00364ac6, // n0x0001 c0x0000 (---------------)  + I abbott
+	0x0033fd87, // n0x0002 c0x0000 (---------------)  + I abogado
+	0x01a00b82, // n0x0003 c0x0006 (n0x040f-n0x0415)  + I ac
+	0x002fe987, // n0x0004 c0x0000 (---------------)  + I academy
+	0x003321c9, // n0x0005 c0x0000 (---------------)  + I accenture
+	0x002ac88a, // n0x0006 c0x0000 (---------------)  + I accountant
+	0x002ac88b, // n0x0007 c0x0000 (---------------)  + I accountants
+	0x002a04c6, // n0x0008 c0x0000 (---------------)  + I active
+	0x002388c5, // n0x0009 c0x0000 (---------------)  + I actor
+	0x01e02902, // n0x000a c0x0007 (n0x0415-n0x0416)  + I ad
+	0x0026d143, // n0x000b c0x0000 (---------------)  + I ads
+	0x002fb4c5, // n0x000c c0x0000 (---------------)  + I adult
+	0x0220d2c2, // n0x000d c0x0008 (n0x0416-n0x041e)  + I ae
+	0x02633784, // n0x000e c0x0009 (n0x041e-n0x0477)  + I aero
+	0x02a0b5c2, // n0x000f c0x000a (n0x0477-n0x047c)  + I af
+	0x0024ddc3, // n0x0010 c0x0000 (---------------)  + I afl
+	0x0034fc46, // n0x0011 c0x0000 (---------------)  + I africa
+	0x02e02602, // n0x0012 c0x000b (n0x047c-n0x0481)  + I ag
+	0x0023b206, // n0x0013 c0x0000 (---------------)  + I agency
+	0x03205a42, // n0x0014 c0x000c (n0x0481-n0x0485)  + I ai
+	0x00269b83, // n0x0015 c0x0000 (---------------)  + I aig
+	0x002d2388, // n0x0016 c0x0000 (---------------)  + I airforce
+	0x00285586, // n0x0017 c0x0000 (---------------)  + I airtel
+	0x03600b02, // n0x0018 c0x000d (n0x0485-n0x048b)  + I al
+	0x003615c9, // n0x0019 c0x0000 (---------------)  + I allfinanz
+	0x00253a86, // n0x001a c0x0000 (---------------)  + I alsace
+	0x00203582, // n0x001b c0x0000 (---------------)  + I am
+	0x002f8c49, // n0x001c c0x0000 (---------------)  + I amsterdam
+	0x03a02342, // n0x001d c0x000e (n0x048b-n0x048f)  + I an
+	0x0023f509, // n0x001e c0x0000 (---------------)  + I analytics
+	0x00322307, // n0x001f c0x0000 (---------------)  + I android
+	0x03e07702, // n0x0020 c0x000f (n0x048f-n0x0495)  + I ao
+	0x0024ca0a, // n0x0021 c0x0000 (---------------)  + I apartments
+	0x0023be02, // n0x0022 c0x0000 (---------------)  + I aq
+	0x0027ef49, // n0x0023 c0x0000 (---------------)  + I aquarelle
+	0x042030c2, // n0x0024 c0x0010 (n0x0495-n0x049e)  + I ar
+	0x0026e3c6, // n0x0025 c0x0000 (---------------)  + I aramco
+	0x00229ec5, // n0x0026 c0x0000 (---------------)  + I archi
+	0x003289c4, // n0x0027 c0x0000 (---------------)  + I army
+	0x04aacb84, // n0x0028 c0x0012 (n0x049f-n0x04a5)  + I arpa
+	0x0021dfc4, // n0x0029 c0x0000 (---------------)  + I arte
+	0x04e00182, // n0x002a c0x0013 (n0x04a5-n0x04a6)  + I as
+	0x0031ea44, // n0x002b c0x0000 (---------------)  + I asia
+	0x0027834a, // n0x002c c0x0000 (---------------)  + I associates
+	0x05201702, // n0x002d c0x0014 (n0x04a6-n0x04ad)  + I at
+	0x002361c8, // n0x002e c0x0000 (---------------)  + I attorney
+	0x05a01002, // n0x002f c0x0016 (n0x04ae-n0x04c0)  + I au
+	0x00312707, // n0x0030 c0x0000 (---------------)  + I auction
+	0x002aa905, // n0x0031 c0x0000 (---------------)  + I audio
+	0x003220c6, // n0x0032 c0x0000 (---------------)  + I author
+	0x00262c44, // n0x0033 c0x0000 (---------------)  + I auto
+	0x00343dc5, // n0x0034 c0x0000 (---------------)  + I autos
+	0x06a00102, // n0x0035 c0x001a (n0x04ce-n0x04cf)  + I aw
+	0x0021a6c2, // n0x0036 c0x0000 (---------------)  + I ax
+	0x0036b783, // n0x0037 c0x0000 (---------------)  + I axa
+	0x06e01202, // n0x0038 c0x001b (n0x04cf-n0x04db)  + I az
+	0x00277e05, // n0x0039 c0x0000 (---------------)  + I azure
+	0x072076c2, // n0x003a c0x001c (n0x04db-n0x04e5)  + I ba
+	0x00261e84, // n0x003b c0x0000 (---------------)  + I band
+	0x0021c844, // n0x003c c0x0000 (---------------)  + I bank
+	0x00210ac3, // n0x003d c0x0000 (---------------)  + I bar
+	0x002f9609, // n0x003e c0x0000 (---------------)  + I barcelona
+	0x0030188b, // n0x003f c0x0000 (---------------)  + I barclaycard
+	0x00310148, // n0x0040 c0x0000 (---------------)  + I barclays
+	0x00311088, // n0x0041 c0x0000 (---------------)  + I bargains
+	0x00362ec7, // n0x0042 c0x0000 (---------------)  + I bauhaus
+	0x0032e2c6, // n0x0043 c0x0000 (---------------)  + I bayern
+	0x0760bfc2, // n0x0044 c0x001d (n0x04e5-n0x04ef)  + I bb
+	0x00369083, // n0x0045 c0x0000 (---------------)  + I bbc
+	0x0036ed04, // n0x0046 c0x0000 (---------------)  + I bbva
+	0x003690c3, // n0x0047 c0x0000 (---------------)  + I bcn
+	0x01703202, // n0x0048 c0x0005 (---------------)* o I bd
+	0x07a00602, // n0x0049 c0x001e (n0x04ef-n0x04f1)  + I be
+	0x00200604, // n0x004a c0x0000 (---------------)  + I beer
+	0x003833c7, // n0x004b c0x0000 (---------------)  + I bentley
+	0x00376686, // n0x004c c0x0000 (---------------)  + I berlin
+	0x0036de84, // n0x004d c0x0000 (---------------)  + I best
+	0x07f3a2c2, // n0x004e c0x001f (n0x04f1-n0x04f2)  + I bf
+	0x08340002, // n0x004f c0x0020 (n0x04f2-n0x0516)  + I bg
+	0x0862c202, // n0x0050 c0x0021 (n0x0516-n0x051b)  + I bh
+	0x00385506, // n0x0051 c0x0000 (---------------)  + I bharti
+	0x08a00002, // n0x0052 c0x0022 (n0x051b-n0x0520)  + I bi
+	0x0023ac45, // n0x0053 c0x0000 (---------------)  + I bible
+	0x00304743, // n0x0054 c0x0000 (---------------)  + I bid
+	0x00205684, // n0x0055 c0x0000 (---------------)  + I bike
+	0x002cc444, // n0x0056 c0x0000 (---------------)  + I bing
+	0x002cc445, // n0x0057 c0x0000 (---------------)  + I bingo
+	0x00208743, // n0x0058 c0x0000 (---------------)  + I bio
+	0x08e02183, // n0x0059 c0x0023 (n0x0520-n0x0527)  + I biz
+	0x0920bb82, // n0x005a c0x0024 (n0x0527-n0x052b)  + I bj
+	0x00282385, // n0x005b c0x0000 (---------------)  + I black
+	0x0028238b, // n0x005c c0x0000 (---------------)  + I blackfriday
+	0x0020cb09, // n0x005d c0x0000 (---------------)  + I bloomberg
+	0x0020e344, // n0x005e c0x0000 (---------------)  + I blue
+	0x0960e5c2, // n0x005f c0x0025 (n0x052b-n0x0530)  + I bm
+	0x0020e5c3, // n0x0060 c0x0000 (---------------)  + I bms
+	0x00212503, // n0x0061 c0x0000 (---------------)  + I bmw
+	0x01612ac2, // n0x0062 c0x0005 (---------------)* o I bn
+	0x0025d003, // n0x0063 c0x0000 (---------------)  + I bnl
+	0x00212aca, // n0x0064 c0x0000 (---------------)  + I bnpparibas
+	0x09a10042, // n0x0065 c0x0026 (n0x0530-n0x0539)  + I bo
+	0x00370545, // n0x0066 c0x0000 (---------------)  + I boats
+	0x00214283, // n0x0067 c0x0000 (---------------)  + I bom
+	0x00214cc4, // n0x0068 c0x0000 (---------------)  + I bond
+	0x002c4503, // n0x0069 c0x0000 (---------------)  + I boo
+	0x00219483, // n0x006a c0x0000 (---------------)  + I bot
+	0x0021b188, // n0x006b c0x0000 (---------------)  + I boutique
+	0x09e07bc2, // n0x006c c0x0027 (n0x0539-n0x057f)  + I br
+	0x0021bb88, // n0x006d c0x0000 (---------------)  + I bradesco
+	0x002164cb, // n0x006e c0x0000 (---------------)  + I bridgestone
+	0x00227806, // n0x006f c0x0000 (---------------)  + I broker
+	0x002297c8, // n0x0070 c0x0000 (---------------)  + I brussels
+	0x0a607242, // n0x0071 c0x0029 (n0x0580-n0x0585)  + I bs
+	0x0aa3ad82, // n0x0072 c0x002a (n0x0585-n0x058a)  + I bt
+	0x002ee388, // n0x0073 c0x0000 (---------------)  + I budapest
+	0x0024a845, // n0x0074 c0x0000 (---------------)  + I build
+	0x0024a848, // n0x0075 c0x0000 (---------------)  + I builders
+	0x002741c8, // n0x0076 c0x0000 (---------------)  + I business
+	0x0022c983, // n0x0077 c0x0000 (---------------)  + I buy
+	0x0022dac4, // n0x0078 c0x0000 (---------------)  + I buzz
+	0x0036ed42, // n0x0079 c0x0000 (---------------)  + I bv
+	0x0ae2e042, // n0x007a c0x002b (n0x058a-n0x058c)  + I bw
+	0x0b206302, // n0x007b c0x002c (n0x058c-n0x0590)  + I by
+	0x0b62eac2, // n0x007c c0x002d (n0x0590-n0x0596)  + I bz
+	0x0022eac3, // n0x007d c0x0000 (---------------)  + I bzh
+	0x0ba14582, // n0x007e c0x002e (n0x0596-n0x05a7)  + I ca
+	0x00364a83, // n0x007f c0x0000 (---------------)  + I cab
+	0x00219603, // n0x0080 c0x0000 (---------------)  + I cal
+	0x00361584, // n0x0081 c0x0000 (---------------)  + I call
+	0x0025d206, // n0x0082 c0x0000 (---------------)  + I camera
+	0x0023e184, // n0x0083 c0x0000 (---------------)  + I camp
+	0x002d800e, // n0x0084 c0x0000 (---------------)  + I cancerresearch
+	0x0034fd45, // n0x0085 c0x0000 (---------------)  + I canon
+	0x0023ba08, // n0x0086 c0x0000 (---------------)  + I capetown
+	0x002e21c7, // n0x0087 c0x0000 (---------------)  + I capital
+	0x0022f847, // n0x0088 c0x0000 (---------------)  + I caravan
+	0x00301a45, // n0x0089 c0x0000 (---------------)  + I cards
+	0x00241e44, // n0x008a c0x0000 (---------------)  + I care
+	0x00241e46, // n0x008b c0x0000 (---------------)  + I career
+	0x00241e47, // n0x008c c0x0000 (---------------)  + I careers
+	0x002d5284, // n0x008d c0x0000 (---------------)  + I cars
+	0x0021b407, // n0x008e c0x0000 (---------------)  + I cartier
+	0x00320f84, // n0x008f c0x0000 (---------------)  + I casa
+	0x00222744, // n0x0090 c0x0000 (---------------)  + I cash
+	0x0023b546, // n0x0091 c0x0000 (---------------)  + I casino
+	0x002192c3, // n0x0092 c0x0000 (---------------)  + I cat
+	0x0024a608, // n0x0093 c0x0000 (---------------)  + I catering
+	0x003495c3, // n0x0094 c0x0000 (---------------)  + I cba
+	0x0025cfc3, // n0x0095 c0x0000 (---------------)  + I cbn
+	0x0be020c2, // n0x0096 c0x002f (n0x05a7-n0x05ab)  + I cc
+	0x0c30f042, // n0x0097 c0x0030 (n0x05ab-n0x05ac)  + I cd
+	0x002442c6, // n0x0098 c0x0000 (---------------)  + I center
+	0x00347c83, // n0x0099 c0x0000 (---------------)  + I ceo
+	0x003808c4, // n0x009a c0x0000 (---------------)  + I cern
+	0x0c64d1c2, // n0x009b c0x0031 (n0x05ac-n0x05ad)  + I cf
+	0x0034f083, // n0x009c c0x0000 (---------------)  + I cfa
+	0x0024d1c3, // n0x009d c0x0000 (---------------)  + I cfd
+	0x0021aa82, // n0x009e c0x0000 (---------------)  + I cg
+	0x0ca02ac2, // n0x009f c0x0032 (n0x05ad-n0x05ae)  + I ch
+	0x002af1c7, // n0x00a0 c0x0000 (---------------)  + I channel
+	0x0020f104, // n0x00a1 c0x0000 (---------------)  + I chat
+	0x0024c945, // n0x00a2 c0x0000 (---------------)  + I cheap
+	0x0029c845, // n0x00a3 c0x0000 (---------------)  + I chloe
+	0x0037fc89, // n0x00a4 c0x0000 (---------------)  + I christmas
+	0x00384946, // n0x00a5 c0x0000 (---------------)  + I chrome
+	0x00313846, // n0x00a6 c0x0000 (---------------)  + I church
+	0x0ce20182, // n0x00a7 c0x0033 (n0x05ae-n0x05bd)  + I ci
+	0x002629c6, // n0x00a8 c0x0000 (---------------)  + I circle
+	0x00320e85, // n0x00a9 c0x0000 (---------------)  + I citic
+	0x003242c4, // n0x00aa c0x0000 (---------------)  + I city
+	0x003242c8, // n0x00ab c0x0000 (---------------)  + I cityeats
+	0x0d206182, // n0x00ac c0x0034 (n0x05bd-n0x05be)* o I ck
+	0x0d600402, // n0x00ad c0x0035 (n0x05be-n0x05c2)  + I cl
+	0x00351006, // n0x00ae c0x0000 (---------------)  + I claims
+	0x002c4108, // n0x00af c0x0000 (---------------)  + I cleaning
+	0x00351585, // n0x00b0 c0x0000 (---------------)  + I click
+	0x003590c6, // n0x00b1 c0x0000 (---------------)  + I clinic
+	0x0037c5c8, // n0x00b2 c0x0000 (---------------)  + I clothing
+	0x0034cac4, // n0x00b3 c0x0000 (---------------)  + I club
+	0x0daa4442, // n0x00b4 c0x0036 (n0x05c2-n0x05c6)  + I cm
+	0x0de2fe42, // n0x00b5 c0x0037 (n0x05c6-n0x05f3)  + I cn
+	0x0ea00882, // n0x00b6 c0x003a (n0x05f5-n0x0602)  + I co
+	0x0026e4c5, // n0x00b7 c0x0000 (---------------)  + I coach
+	0x0027b385, // n0x00b8 c0x0000 (---------------)  + I codes
+	0x00273e86, // n0x00b9 c0x0000 (---------------)  + I coffee
+	0x00230807, // n0x00ba c0x0000 (---------------)  + I college
+	0x00230b07, // n0x00bb c0x0000 (---------------)  + I cologne
+	0x0ee32dc3, // n0x00bc c0x003b (n0x0602-n0x06c7)  + I com
+	0x002ca648, // n0x00bd c0x0000 (---------------)  + I commbank
+	0x00232dc9, // n0x00be c0x0000 (---------------)  + I community
+	0x00233487, // n0x00bf c0x0000 (---------------)  + I company
+	0x00234a08, // n0x00c0 c0x0000 (---------------)  + I computer
+	0x00235206, // n0x00c1 c0x0000 (---------------)  + I condos
+	0x00235b0c, // n0x00c2 c0x0000 (---------------)  + I construction
+	0x00236b4a, // n0x00c3 c0x0000 (---------------)  + I consulting
+	0x0023878b, // n0x00c4 c0x0000 (---------------)  + I contractors
+	0x00239887, // n0x00c5 c0x0000 (---------------)  + I cooking
+	0x00239ec4, // n0x00c6 c0x0000 (---------------)  + I cool
+	0x0023a884, // n0x00c7 c0x0000 (---------------)  + I coop
+	0x0023bc07, // n0x00c8 c0x0000 (---------------)  + I corsica
+	0x0025d547, // n0x00c9 c0x0000 (---------------)  + I country
+	0x0023ebc7, // n0x00ca c0x0000 (---------------)  + I courses
+	0x0fe0b542, // n0x00cb c0x003f (n0x06e9-n0x06f0)  + I cr
+	0x0023fb86, // n0x00cc c0x0000 (---------------)  + I credit
+	0x0023fb8a, // n0x00cd c0x0000 (---------------)  + I creditcard
+	0x00240f07, // n0x00ce c0x0000 (---------------)  + I cricket
+	0x002426c5, // n0x00cf c0x0000 (---------------)  + I crown
+	0x00242803, // n0x00d0 c0x0000 (---------------)  + I crs
+	0x002431c7, // n0x00d1 c0x0000 (---------------)  + I cruises
+	0x0033ff43, // n0x00d2 c0x0000 (---------------)  + I csc
+	0x10243502, // n0x00d3 c0x0040 (n0x06f0-n0x06f6)  + I cu
+	0x0024350a, // n0x00d4 c0x0000 (---------------)  + I cuisinella
+	0x10733d82, // n0x00d5 c0x0041 (n0x06f6-n0x06f7)  + I cv
+	0x10b4c782, // n0x00d6 c0x0042 (n0x06f7-n0x06fb)  + I cw
+	0x10e45302, // n0x00d7 c0x0043 (n0x06fb-n0x06fd)  + I cx
+	0x0160a6c2, // n0x00d8 c0x0005 (---------------)* o I cy
+	0x002c5c05, // n0x00d9 c0x0000 (---------------)  + I cymru
+	0x11202882, // n0x00da c0x0044 (n0x06fd-n0x06fe)  + I cz
+	0x00229545, // n0x00db c0x0000 (---------------)  + I dabur
+	0x0020db83, // n0x00dc c0x0000 (---------------)  + I dad
+	0x0030ac05, // n0x00dd c0x0000 (---------------)  + I dance
+	0x00218204, // n0x00de c0x0000 (---------------)  + I date
+	0x002113c6, // n0x00df c0x0000 (---------------)  + I dating
+	0x00202c06, // n0x00e0 c0x0000 (---------------)  + I datsun
+	0x00282583, // n0x00e1 c0x0000 (---------------)  + I day
+	0x002003c4, // n0x00e2 c0x0000 (---------------)  + I dclk
+	0x11607cc2, // n0x00e3 c0x0045 (n0x06fe-n0x0706)  + I de
+	0x00381205, // n0x00e4 c0x0000 (---------------)  + I deals
+	0x0025f546, // n0x00e5 c0x0000 (---------------)  + I degree
+	0x002734c8, // n0x00e6 c0x0000 (---------------)  + I delivery
+	0x00231b44, // n0x00e7 c0x0000 (---------------)  + I dell
+	0x0037a0c8, // n0x00e8 c0x0000 (---------------)  + I democrat
+	0x0033ae86, // n0x00e9 c0x0000 (---------------)  + I dental
+	0x00266107, // n0x00ea c0x0000 (---------------)  + I dentist
+	0x00237ec4, // n0x00eb c0x0000 (---------------)  + I desi
+	0x00237ec6, // n0x00ec c0x0000 (---------------)  + I design
+	0x0025e703, // n0x00ed c0x0000 (---------------)  + I dev
+	0x002b5b88, // n0x00ee c0x0000 (---------------)  + I diamonds
+	0x00300344, // n0x00ef c0x0000 (---------------)  + I diet
+	0x0036c3c7, // n0x00f0 c0x0000 (---------------)  + I digital
+	0x0032e446, // n0x00f1 c0x0000 (---------------)  + I direct
+	0x0032e449, // n0x00f2 c0x0000 (---------------)  + I directory
+	0x00322488, // n0x00f3 c0x0000 (---------------)  + I discount
+	0x0022ee82, // n0x00f4 c0x0000 (---------------)  + I dj
+	0x11aa46c2, // n0x00f5 c0x0046 (n0x0706-n0x0707)  + I dk
+	0x11e22502, // n0x00f6 c0x0047 (n0x0707-n0x070c)  + I dm
+	0x0035f243, // n0x00f7 c0x0000 (---------------)  + I dnp
+	0x12209082, // n0x00f8 c0x0048 (n0x070c-n0x0716)  + I do
+	0x0033fec4, // n0x00f9 c0x0000 (---------------)  + I docs
+	0x002288c3, // n0x00fa c0x0000 (---------------)  + I dog
+	0x00235fc4, // n0x00fb c0x0000 (---------------)  + I doha
+	0x002fdd87, // n0x00fc c0x0000 (---------------)  + I domains
+	0x002ccb46, // n0x00fd c0x0000 (---------------)  + I doosan
+	0x00369948, // n0x00fe c0x0000 (---------------)  + I download
+	0x002e0d46, // n0x00ff c0x0000 (---------------)  + I durban
+	0x00309cc4, // n0x0100 c0x0000 (---------------)  + I dvag
+	0x1260fa42, // n0x0101 c0x0049 (n0x0716-n0x071e)  + I dz
+	0x002412c5, // n0x0102 c0x0000 (---------------)  + I earth
+	0x002f5f43, // n0x0103 c0x0000 (---------------)  + I eat
+	0x12a02082, // n0x0104 c0x004a (n0x071e-n0x072a)  + I ec
+	0x0022f445, // n0x0105 c0x0000 (---------------)  + I edeka
+	0x0021e083, // n0x0106 c0x0000 (---------------)  + I edu
+	0x0021e089, // n0x0107 c0x0000 (---------------)  + I education
+	0x12e00642, // n0x0108 c0x004b (n0x072a-n0x0734)  + I ee
+	0x13205d82, // n0x0109 c0x004c (n0x0734-n0x073d)  + I eg
+	0x002e1d05, // n0x010a c0x0000 (---------------)  + I email
+	0x0036ccc6, // n0x010b c0x0000 (---------------)  + I emerck
+	0x002bf046, // n0x010c c0x0000 (---------------)  + I energy
+	0x0030dc48, // n0x010d c0x0000 (---------------)  + I engineer
+	0x0030dc4b, // n0x010e c0x0000 (---------------)  + I engineering
+	0x002ec28b, // n0x010f c0x0000 (---------------)  + I enterprises
+	0x00218b85, // n0x0110 c0x0000 (---------------)  + I epson
+	0x002126c9, // n0x0111 c0x0000 (---------------)  + I equipment
+	0x01600682, // n0x0112 c0x0005 (---------------)* o I er
+	0x0020ce04, // n0x0113 c0x0000 (---------------)  + I erni
+	0x13601e42, // n0x0114 c0x004d (n0x073d-n0x0742)  + I es
+	0x00364fc3, // n0x0115 c0x0000 (---------------)  + I esq
+	0x0025d706, // n0x0116 c0x0000 (---------------)  + I estate
+	0x13e02e82, // n0x0117 c0x004f (n0x0743-n0x074a)  + I et
+	0x0021b882, // n0x0118 c0x0000 (---------------)  + I eu
+	0x00319f4a, // n0x0119 c0x0000 (---------------)  + I eurovision
+	0x002bbd83, // n0x011a c0x0000 (---------------)  + I eus
+	0x0020d306, // n0x011b c0x0000 (---------------)  + I events
+	0x0021c748, // n0x011c c0x0000 (---------------)  + I everbank
+	0x002ed008, // n0x011d c0x0000 (---------------)  + I exchange
+	0x00319806, // n0x011e c0x0000 (---------------)  + I expert
+	0x00305347, // n0x011f c0x0000 (---------------)  + I exposed
+	0x0034f0c4, // n0x0120 c0x0000 (---------------)  + I fage
+	0x00320744, // n0x0121 c0x0000 (---------------)  + I fail
+	0x00331989, // n0x0122 c0x0000 (---------------)  + I fairwinds
+	0x00358745, // n0x0123 c0x0000 (---------------)  + I faith
+	0x0021a1c3, // n0x0124 c0x0000 (---------------)  + I fan
+	0x002ea804, // n0x0125 c0x0000 (---------------)  + I fans
+	0x002125c4, // n0x0126 c0x0000 (---------------)  + I farm
+	0x002c9c47, // n0x0127 c0x0000 (---------------)  + I fashion
+	0x002d0e44, // n0x0128 c0x0000 (---------------)  + I fast
+	0x00273f48, // n0x0129 c0x0000 (---------------)  + I feedback
+	0x00245847, // n0x012a c0x0000 (---------------)  + I ferrero
+	0x14206f02, // n0x012b c0x0050 (n0x074a-n0x074d)  + I fi
+	0x00248145, // n0x012c c0x0000 (---------------)  + I final
+	0x002483c7, // n0x012d c0x0000 (---------------)  + I finance
+	0x00244909, // n0x012e c0x0000 (---------------)  + I financial
+	0x00249ac9, // n0x012f c0x0000 (---------------)  + I firestone
+	0x0024a308, // n0x0130 c0x0000 (---------------)  + I firmdale
+	0x0024ac04, // n0x0131 c0x0000 (---------------)  + I fish
+	0x0024ac07, // n0x0132 c0x0000 (---------------)  + I fishing
+	0x0024b083, // n0x0133 c0x0000 (---------------)  + I fit
+	0x0024b207, // n0x0134 c0x0000 (---------------)  + I fitness
+	0x01613802, // n0x0135 c0x0005 (---------------)* o I fj
+	0x016a1842, // n0x0136 c0x0005 (---------------)* o I fk
+	0x0024cd47, // n0x0137 c0x0000 (---------------)  + I flights
+	0x0024e1c7, // n0x0138 c0x0000 (---------------)  + I florist
+	0x0024ed07, // n0x0139 c0x0000 (---------------)  + I flowers
+	0x0024f088, // n0x013a c0x0000 (---------------)  + I flsmidth
+	0x0024f743, // n0x013b c0x0000 (---------------)  + I fly
+	0x00257f82, // n0x013c c0x0000 (---------------)  + I fm
+	0x00208ac2, // n0x013d c0x0000 (---------------)  + I fo
+	0x00250343, // n0x013e c0x0000 (---------------)  + I foo
+	0x00250348, // n0x013f c0x0000 (---------------)  + I football
+	0x00381144, // n0x0140 c0x0000 (---------------)  + I ford
+	0x002527c5, // n0x0141 c0x0000 (---------------)  + I forex
+	0x00253887, // n0x0142 c0x0000 (---------------)  + I forsale
+	0x002d994a, // n0x0143 c0x0000 (---------------)  + I foundation
+	0x1462fc02, // n0x0144 c0x0051 (n0x074d-n0x0765)  + I fr
+	0x0025ba03, // n0x0145 c0x0000 (---------------)  + I frl
+	0x0025bac7, // n0x0146 c0x0000 (---------------)  + I frogans
+	0x0027bdc4, // n0x0147 c0x0000 (---------------)  + I fund
+	0x0027da49, // n0x0148 c0x0000 (---------------)  + I furniture
+	0x00280e06, // n0x0149 c0x0000 (---------------)  + I futbol
+	0x00200fc2, // n0x014a c0x0000 (---------------)  + I ga
+	0x00237383, // n0x014b c0x0000 (---------------)  + I gal
+	0x00237387, // n0x014c c0x0000 (---------------)  + I gallery
+	0x002196c6, // n0x014d c0x0000 (---------------)  + I garden
+	0x0020cd02, // n0x014e c0x0000 (---------------)  + I gb
+	0x0035acc4, // n0x014f c0x0000 (---------------)  + I gbiz
+	0x00218cc2, // n0x0150 c0x0000 (---------------)  + I gd
+	0x002dd243, // n0x0151 c0x0000 (---------------)  + I gdn
+	0x14a029c2, // n0x0152 c0x0052 (n0x0765-n0x076c)  + I ge
+	0x00250803, // n0x0153 c0x0000 (---------------)  + I gea
+	0x00307a04, // n0x0154 c0x0000 (---------------)  + I gent
+	0x00282142, // n0x0155 c0x0000 (---------------)  + I gf
+	0x14e08b42, // n0x0156 c0x0053 (n0x076c-n0x076f)  + I gg
+	0x0032e684, // n0x0157 c0x0000 (---------------)  + I ggee
+	0x1520db02, // n0x0158 c0x0054 (n0x076f-n0x0774)  + I gh
+	0x15608b82, // n0x0159 c0x0055 (n0x0774-n0x077a)  + I gi
+	0x0034d5c4, // n0x015a c0x0000 (---------------)  + I gift
+	0x0034d5c5, // n0x015b c0x0000 (---------------)  + I gifts
+	0x002be445, // n0x015c c0x0000 (---------------)  + I gives
+	0x00219b06, // n0x015d c0x0000 (---------------)  + I giving
+	0x002079c2, // n0x015e c0x0000 (---------------)  + I gl
+	0x0036f445, // n0x015f c0x0000 (---------------)  + I glass
+	0x00224c83, // n0x0160 c0x0000 (---------------)  + I gle
+	0x0020af86, // n0x0161 c0x0000 (---------------)  + I global
+	0x0020ff85, // n0x0162 c0x0000 (---------------)  + I globo
+	0x00219c42, // n0x0163 c0x0000 (---------------)  + I gm
+	0x00219c45, // n0x0164 c0x0000 (---------------)  + I gmail
+	0x00226f83, // n0x0165 c0x0000 (---------------)  + I gmo
+	0x0022cd43, // n0x0166 c0x0000 (---------------)  + I gmx
+	0x15a0c982, // n0x0167 c0x0056 (n0x077a-n0x0780)  + I gn
+	0x00218749, // n0x0168 c0x0000 (---------------)  + I goldpoint
+	0x0024ad84, // n0x0169 c0x0000 (---------------)  + I golf
+	0x0027b203, // n0x016a c0x0000 (---------------)  + I goo
+	0x0027b204, // n0x016b c0x0000 (---------------)  + I goog
+	0x0027b206, // n0x016c c0x0000 (---------------)  + I google
+	0x00297e83, // n0x016d c0x0000 (---------------)  + I gop
+	0x00252ac3, // n0x016e c0x0000 (---------------)  + I got
+	0x00209ac3, // n0x016f c0x0000 (---------------)  + I gov
+	0x15ed2d02, // n0x0170 c0x0057 (n0x0780-n0x0786)  + I gp
+	0x0022d4c2, // n0x0171 c0x0000 (---------------)  + I gq
+	0x16206b02, // n0x0172 c0x0058 (n0x0786-n0x078c)  + I gr
+	0x00376d88, // n0x0173 c0x0000 (---------------)  + I graphics
+	0x0035bd86, // n0x0174 c0x0000 (---------------)  + I gratis
+	0x00252ec5, // n0x0175 c0x0000 (---------------)  + I green
+	0x00351a05, // n0x0176 c0x0000 (---------------)  + I gripe
+	0x00226905, // n0x0177 c0x0000 (---------------)  + I group
+	0x00209602, // n0x0178 c0x0000 (---------------)  + I gs
+	0x166002c2, // n0x0179 c0x0059 (n0x078c-n0x0793)  + I gt
+	0x01602642, // n0x017a c0x0005 (---------------)* o I gu
+	0x00262905, // n0x017b c0x0000 (---------------)  + I gucci
+	0x002ce404, // n0x017c c0x0000 (---------------)  + I guge
+	0x00242d05, // n0x017d c0x0000 (---------------)  + I guide
+	0x00246107, // n0x017e c0x0000 (---------------)  + I guitars
+	0x00261244, // n0x017f c0x0000 (---------------)  + I guru
+	0x002252c2, // n0x0180 c0x0000 (---------------)  + I gw
+	0x16a04f82, // n0x0181 c0x005a (n0x0793-n0x0796)  + I gy
+	0x0036f2c7, // n0x0182 c0x0000 (---------------)  + I hamburg
+	0x0037e007, // n0x0183 c0x0000 (---------------)  + I hangout
+	0x00362f84, // n0x0184 c0x0000 (---------------)  + I haus
+	0x00241cca, // n0x0185 c0x0000 (---------------)  + I healthcare
+	0x002cbd84, // n0x0186 c0x0000 (---------------)  + I help
+	0x00241484, // n0x0187 c0x0000 (---------------)  + I here
+	0x002a7806, // n0x0188 c0x0000 (---------------)  + I hermes
+	0x00347706, // n0x0189 c0x0000 (---------------)  + I hiphop
+	0x00276b07, // n0x018a c0x0000 (---------------)  + I hitachi
+	0x00262843, // n0x018b c0x0000 (---------------)  + I hiv
+	0x16e301c2, // n0x018c c0x005b (n0x0796-n0x07ae)  + I hk
+	0x0024c142, // n0x018d c0x0000 (---------------)  + I hm
+	0x17206802, // n0x018e c0x005c (n0x07ae-n0x07b4)  + I hn
+	0x0033b8c8, // n0x018f c0x0000 (---------------)  + I holdings
+	0x00299247, // n0x0190 c0x0000 (---------------)  + I holiday
+	0x002998c5, // n0x0191 c0x0000 (---------------)  + I homes
+	0x0029a305, // n0x0192 c0x0000 (---------------)  + I honda
+	0x0029cbc5, // n0x0193 c0x0000 (---------------)  + I horse
+	0x00208344, // n0x0194 c0x0000 (---------------)  + I host
+	0x0028cdc7, // n0x0195 c0x0000 (---------------)  + I hosting
+	0x0029ea07, // n0x0196 c0x0000 (---------------)  + I hotmail
+	0x0022ca85, // n0x0197 c0x0000 (---------------)  + I house
+	0x002cfd43, // n0x0198 c0x0000 (---------------)  + I how
+	0x17636902, // n0x0199 c0x005d (n0x07b4-n0x07b8)  + I hr
+	0x002144c4, // n0x019a c0x0000 (---------------)  + I hsbc
+	0x17a496c2, // n0x019b c0x005e (n0x07b8-n0x07c9)  + I ht
+	0x17e045c2, // n0x019c c0x005f (n0x07c9-n0x07e9)  + I hu
+	0x002da443, // n0x019d c0x0000 (---------------)  + I ibm
+	0x00207ac3, // n0x019e c0x0000 (---------------)  + I ice
+	0x18205942, // n0x019f c0x0060 (n0x07e9-n0x07f4)  + I id
+	0x18600042, // n0x01a0 c0x0061 (n0x07f4-n0x07f6)  + I ie
+	0x00257f43, // n0x01a1 c0x0000 (---------------)  + I ifm
+	0x00363745, // n0x01a2 c0x0000 (---------------)  + I iinet
+	0x18a00d82, // n0x01a3 c0x0062 (n0x07f6-n0x07f7)* o I il
+	0x192051c2, // n0x01a4 c0x0064 (n0x07f8-n0x07ff)  + I im
+	0x002ed984, // n0x01a5 c0x0000 (---------------)  + I immo
+	0x002ed98a, // n0x01a6 c0x0000 (---------------)  + I immobilien
+	0x19a00242, // n0x01a7 c0x0066 (n0x0801-n0x080e)  + I in
+	0x0038360a, // n0x01a8 c0x0000 (---------------)  + I industries
+	0x00206e88, // n0x01a9 c0x0000 (---------------)  + I infiniti
+	0x19e08a44, // n0x01aa c0x0067 (n0x080e-n0x0818)  + I info
+	0x00200243, // n0x01ab c0x0000 (---------------)  + I ing
+	0x0020ec03, // n0x01ac c0x0000 (---------------)  + I ink
+	0x003111c9, // n0x01ad c0x0000 (---------------)  + I institute
+	0x0020e7c6, // n0x01ae c0x0000 (---------------)  + I insure
+	0x1a2188c3, // n0x01af c0x0068 (n0x0818-n0x0819)  + I int
+	0x002f02cd, // n0x01b0 c0x0000 (---------------)  + I international
+	0x0021560b, // n0x01b1 c0x0000 (---------------)  + I investments
+	0x1a601542, // n0x01b2 c0x0069 (n0x0819-n0x081c)  + I io
+	0x00341348, // n0x01b3 c0x0000 (---------------)  + I ipiranga
+	0x1aa06c42, // n0x01b4 c0x006a (n0x081c-n0x0822)  + I iq
+	0x1ae07042, // n0x01b5 c0x006b (n0x0822-n0x082b)  + I ir
+	0x002cb045, // n0x01b6 c0x0000 (---------------)  + I irish
+	0x1b2066c2, // n0x01b7 c0x006c (n0x082b-n0x0832)  + I is
+	0x002066c3, // n0x01b8 c0x0000 (---------------)  + I ist
+	0x002148c8, // n0x01b9 c0x0000 (---------------)  + I istanbul
+	0x1b6014c2, // n0x01ba c0x006d (n0x0832-n0x09a3)  + I it
+	0x00212204, // n0x01bb c0x0000 (---------------)  + I itau
+	0x002a0d03, // n0x01bc c0x0000 (---------------)  + I iwc
+	0x00229dc6, // n0x01bd c0x0000 (---------------)  + I jaguar
+	0x00333644, // n0x01be c0x0000 (---------------)  + I java
+	0x0025cf83, // n0x01bf c0x0000 (---------------)  + I jcb
+	0x1ba0c582, // n0x01c0 c0x006e (n0x09a3-n0x09a6)  + I je
+	0x0032fcc5, // n0x01c1 c0x0000 (---------------)  + I jetzt
+	0x002a1cc3, // n0x01c2 c0x0000 (---------------)  + I jlc
+	0x01770dc2, // n0x01c3 c0x0005 (---------------)* o I jm
+	0x1be02e02, // n0x01c4 c0x006f (n0x09a6-n0x09ae)  + I jo
+	0x0027e604, // n0x01c5 c0x0000 (---------------)  + I jobs
+	0x00207886, // n0x01c6 c0x0000 (---------------)  + I joburg
+	0x00324543, // n0x01c7 c0x0000 (---------------)  + I jot
+	0x002a2383, // n0x01c8 c0x0000 (---------------)  + I joy
+	0x1c2a2b02, // n0x01c9 c0x0070 (n0x09ae-n0x0a1d)  + I jp
+	0x002a2bc4, // n0x01ca c0x0000 (---------------)  + I jprs
+	0x002d1e86, // n0x01cb c0x0000 (---------------)  + I juegos
+	0x00223286, // n0x01cc c0x0000 (---------------)  + I kaufen
+	0x00359e04, // n0x01cd c0x0000 (---------------)  + I kddi
+	0x01601e02, // n0x01ce c0x0005 (---------------)* o I ke
+	0x003796c3, // n0x01cf c0x0000 (---------------)  + I kfh
+	0x29f797c2, // n0x01d0 c0x00a7 (n0x10b1-n0x10b7)  + I kg
+	0x016230c2, // n0x01d1 c0x0005 (---------------)* o I kh
+	0x2a205482, // n0x01d2 c0x00a8 (n0x10b7-n0x10be)  + I ki
+	0x002d2083, // n0x01d3 c0x0000 (---------------)  + I kim
+	0x00385086, // n0x01d4 c0x0000 (---------------)  + I kinder
+	0x002c9407, // n0x01d5 c0x0000 (---------------)  + I kitchen
+	0x00382c84, // n0x01d6 c0x0000 (---------------)  + I kiwi
+	0x2a686642, // n0x01d7 c0x00a9 (n0x10be-n0x10cf)  + I km
+	0x2aa33fc2, // n0x01d8 c0x00aa (n0x10cf-n0x10d3)  + I kn
+	0x0024db85, // n0x01d9 c0x0000 (---------------)  + I koeln
+	0x2ae2b602, // n0x01da c0x00ab (n0x10d3-n0x10d9)  + I kp
+	0x2b20c642, // n0x01db c0x00ac (n0x10d9-n0x10f7)  + I kr
+	0x0032f143, // n0x01dc c0x0000 (---------------)  + I krd
+	0x002a4b04, // n0x01dd c0x0000 (---------------)  + I kred
+	0x016b1bc2, // n0x01de c0x0005 (---------------)* o I kw
+	0x2b611002, // n0x01df c0x00ad (n0x10f7-n0x10fc)  + I ky
+	0x00262fc5, // n0x01e0 c0x0000 (---------------)  + I kyoto
+	0x2bb713c2, // n0x01e1 c0x00ae (n0x10fc-n0x1102)  + I kz
+	0x2be000c2, // n0x01e2 c0x00af (n0x1102-n0x110b)  + I la
+	0x0031fb47, // n0x01e3 c0x0000 (---------------)  + I lacaixa
+	0x00215d44, // n0x01e4 c0x0000 (---------------)  + I land
+	0x00365949, // n0x01e5 c0x0000 (---------------)  + I landrover
+	0x0020b0c3, // n0x01e6 c0x0000 (---------------)  + I lat
+	0x00215907, // n0x01e7 c0x0000 (---------------)  + I latrobe
+	0x00279cc6, // n0x01e8 c0x0000 (---------------)  + I lawyer
+	0x2c207682, // n0x01e9 c0x00b0 (n0x110b-n0x1110)  + I lb
+	0x2c61e302, // n0x01ea c0x00b1 (n0x1110-n0x1116)  + I lc
+	0x0022be83, // n0x01eb c0x0000 (---------------)  + I lds
+	0x002e6085, // n0x01ec c0x0000 (---------------)  + I lease
+	0x0024a487, // n0x01ed c0x0000 (---------------)  + I leclerc
+	0x002539c5, // n0x01ee c0x0000 (---------------)  + I legal
+	0x0031b204, // n0x01ef c0x0000 (---------------)  + I lgbt
+	0x00206682, // n0x01f0 c0x0000 (---------------)  + I li
+	0x0032d987, // n0x01f1 c0x0000 (---------------)  + I liaison
+	0x002b0704, // n0x01f2 c0x0000 (---------------)  + I lidl
+	0x00276fc4, // n0x01f3 c0x0000 (---------------)  + I life
+	0x00276fc9, // n0x01f4 c0x0000 (---------------)  + I lifestyle
+	0x00249608, // n0x01f5 c0x0000 (---------------)  + I lighting
+	0x002222c4, // n0x01f6 c0x0000 (---------------)  + I like
+	0x00360047, // n0x01f7 c0x0000 (---------------)  + I limited
+	0x002da104, // n0x01f8 c0x0000 (---------------)  + I limo
+	0x00376747, // n0x01f9 c0x0000 (---------------)  + I lincoln
+	0x002fce05, // n0x01fa c0x0000 (---------------)  + I linde
+	0x003631c4, // n0x01fb c0x0000 (---------------)  + I link
+	0x0025a6c4, // n0x01fc c0x0000 (---------------)  + I live
+	0x2ca00442, // n0x01fd c0x00b2 (n0x1116-n0x1124)  + I lk
+	0x00245c84, // n0x01fe c0x0000 (---------------)  + I loan
+	0x00245c85, // n0x01ff c0x0000 (---------------)  + I loans
+	0x0021d286, // n0x0200 c0x0000 (---------------)  + I london
+	0x00220945, // n0x0201 c0x0000 (---------------)  + I lotte
+	0x00220f45, // n0x0202 c0x0000 (---------------)  + I lotto
+	0x2ce81742, // n0x0203 c0x00b3 (n0x1124-n0x1129)  + I lr
+	0x2d200dc2, // n0x0204 c0x00b4 (n0x1129-n0x112b)  + I ls
+	0x2d61a082, // n0x0205 c0x00b5 (n0x112b-n0x112c)  + I lt
+	0x00220e43, // n0x0206 c0x0000 (---------------)  + I ltd
+	0x00220e44, // n0x0207 c0x0000 (---------------)  + I ltda
+	0x00208042, // n0x0208 c0x0000 (---------------)  + I lu
+	0x00359cc5, // n0x0209 c0x0000 (---------------)  + I lupin
+	0x00242ac4, // n0x020a c0x0000 (---------------)  + I luxe
+	0x00244e86, // n0x020b c0x0000 (---------------)  + I luxury
+	0x2da18582, // n0x020c c0x00b6 (n0x112c-n0x1135)  + I lv
+	0x2de3a682, // n0x020d c0x00b7 (n0x1135-n0x113e)  + I ly
+	0x2e2011c2, // n0x020e c0x00b8 (n0x113e-n0x1144)  + I ma
+	0x00309b86, // n0x020f c0x0000 (---------------)  + I madrid
+	0x002fa184, // n0x0210 c0x0000 (---------------)  + I maif
+	0x002ee706, // n0x0211 c0x0000 (---------------)  + I maison
+	0x00211c83, // n0x0212 c0x0000 (---------------)  + I man
+	0x0028ff4a, // n0x0213 c0x0000 (---------------)  + I management
+	0x00264145, // n0x0214 c0x0000 (---------------)  + I mango
+	0x00226d86, // n0x0215 c0x0000 (---------------)  + I market
+	0x00226d89, // n0x0216 c0x0000 (---------------)  + I marketing
+	0x00252087, // n0x0217 c0x0000 (---------------)  + I markets
+	0x00288408, // n0x0218 c0x0000 (---------------)  + I marriott
+	0x2e60f0c2, // n0x0219 c0x00b9 (n0x1144-n0x1146)  + I mc
+	0x0024a3c2, // n0x021a c0x0000 (---------------)  + I md
+	0x2ea04342, // n0x021b c0x00ba (n0x1146-n0x114e)  + I me
+	0x0021e585, // n0x021c c0x0000 (---------------)  + I media
+	0x0028c584, // n0x021d c0x0000 (---------------)  + I meet
+	0x00242109, // n0x021e c0x0000 (---------------)  + I melbourne
+	0x0036cc84, // n0x021f c0x0000 (---------------)  + I meme
+	0x0035fe88, // n0x0220 c0x0000 (---------------)  + I memorial
+	0x0020fd04, // n0x0221 c0x0000 (---------------)  + I menu
+	0x0020f283, // n0x0222 c0x0000 (---------------)  + I meo
+	0x2ef39dc2, // n0x0223 c0x00bb (n0x114e-n0x1156)  + I mg
+	0x002e9dc2, // n0x0224 c0x0000 (---------------)  + I mh
+	0x0033e685, // n0x0225 c0x0000 (---------------)  + I miami
+	0x00264e49, // n0x0226 c0x0000 (---------------)  + I microsoft
+	0x00240443, // n0x0227 c0x0000 (---------------)  + I mil
+	0x002769c4, // n0x0228 c0x0000 (---------------)  + I mini
+	0x2f340582, // n0x0229 c0x00bc (n0x1156-n0x115d)  + I mk
+	0x2f614302, // n0x022a c0x00bd (n0x115d-n0x1164)  + I ml
+	0x0160fcc2, // n0x022b c0x0005 (---------------)* o I mm
+	0x0034fa03, // n0x022c c0x0000 (---------------)  + I mma
+	0x2fa2c7c2, // n0x022d c0x00be (n0x1164-n0x1168)  + I mn
+	0x2fe05202, // n0x022e c0x00bf (n0x1168-n0x116d)  + I mo
+	0x00277f84, // n0x022f c0x0000 (---------------)  + I mobi
+	0x00353b86, // n0x0230 c0x0000 (---------------)  + I mobily
+	0x00226fc4, // n0x0231 c0x0000 (---------------)  + I moda
+	0x002d2283, // n0x0232 c0x0000 (---------------)  + I moe
+	0x00205203, // n0x0233 c0x0000 (---------------)  + I moi
+	0x0023fec6, // n0x0234 c0x0000 (---------------)  + I monash
+	0x002bac05, // n0x0235 c0x0000 (---------------)  + I money
+	0x00222549, // n0x0236 c0x0000 (---------------)  + I montblanc
+	0x002bab46, // n0x0237 c0x0000 (---------------)  + I mormon
+	0x002bb948, // n0x0238 c0x0000 (---------------)  + I mortgage
+	0x002bbb46, // n0x0239 c0x0000 (---------------)  + I moscow
+	0x0029088b, // n0x023a c0x0000 (---------------)  + I motorcycles
+	0x002bd483, // n0x023b c0x0000 (---------------)  + I mov
+	0x002bd488, // n0x023c c0x0000 (---------------)  + I movistar
+	0x00203302, // n0x023d c0x0000 (---------------)  + I mp
+	0x0031fe42, // n0x023e c0x0000 (---------------)  + I mq
+	0x30214202, // n0x023f c0x00c0 (n0x116d-n0x116f)  + I mr
+	0x3060e602, // n0x0240 c0x00c1 (n0x116f-n0x1174)  + I ms
+	0x30a66782, // n0x0241 c0x00c2 (n0x1174-n0x1178)  + I mt
+	0x00266783, // n0x0242 c0x0000 (---------------)  + I mtn
+	0x002bd784, // n0x0243 c0x0000 (---------------)  + I mtpc
+	0x30e03b02, // n0x0244 c0x00c3 (n0x1178-n0x117f)  + I mu
+	0x312c2a06, // n0x0245 c0x00c4 (n0x117f-n0x13a3)  + I museum
+	0x31604102, // n0x0246 c0x00c5 (n0x13a3-n0x13b1)  + I mv
+	0x31a12542, // n0x0247 c0x00c6 (n0x13b1-n0x13bc)  + I mw
+	0x31e2cd82, // n0x0248 c0x00c7 (n0x13bc-n0x13c2)  + I mx
+	0x32224782, // n0x0249 c0x00c8 (n0x13c2-n0x13c9)  + I my
+	0x326cbb02, // n0x024a c0x00c9 (n0x13c9-n0x13ca)* o I mz
+	0x32a015c2, // n0x024b c0x00ca (n0x13ca-n0x13db)  + I na
+	0x002ecf45, // n0x024c c0x0000 (---------------)  + I nadex
+	0x0037bf46, // n0x024d c0x0000 (---------------)  + I nagoya
+	0x32e67944, // n0x024e c0x00cb (n0x13db-n0x13dd)  + I name
+	0x00204a04, // n0x024f c0x0000 (---------------)  + I navy
+	0x33a0a682, // n0x0250 c0x00ce (n0x13df-n0x13e0)  + I nc
+	0x00209e82, // n0x0251 c0x0000 (---------------)  + I ne
+	0x33e18643, // n0x0252 c0x00cf (n0x13e0-n0x140f)  + I net
+	0x00371247, // n0x0253 c0x0000 (---------------)  + I netbank
+	0x0030cd07, // n0x0254 c0x0000 (---------------)  + I network
+	0x002c0107, // n0x0255 c0x0000 (---------------)  + I neustar
+	0x00216703, // n0x0256 c0x0000 (---------------)  + I new
+	0x00234584, // n0x0257 c0x0000 (---------------)  + I news
+	0x00249c85, // n0x0258 c0x0000 (---------------)  + I nexus
+	0x34e06ec2, // n0x0259 c0x00d3 (n0x1416-n0x1420)  + I nf
+	0x35200282, // n0x025a c0x00d4 (n0x1420-n0x1429)  + I ng
+	0x0024ad43, // n0x025b c0x0000 (---------------)  + I ngo
+	0x00267203, // n0x025c c0x0000 (---------------)  + I nhk
+	0x01602382, // n0x025d c0x0005 (---------------)* o I ni
+	0x00359184, // n0x025e c0x0000 (---------------)  + I nico
+	0x002bd205, // n0x025f c0x0000 (---------------)  + I ninja
+	0x00225906, // n0x0260 c0x0000 (---------------)  + I nissan
+	0x35648cc2, // n0x0261 c0x00d5 (n0x1429-n0x142c)  + I nl
+	0x35a00cc2, // n0x0262 c0x00d6 (n0x142c-n0x1702)  + I no
+	0x00305a06, // n0x0263 c0x0000 (---------------)  + I norton
+	0x00352f46, // n0x0264 c0x0000 (---------------)  + I nowruz
+	0x01612b02, // n0x0265 c0x0005 (---------------)* o I np
+	0x3de1ccc2, // n0x0266 c0x00f7 (n0x172a-n0x1731)  + I nr
+	0x002f09c3, // n0x0267 c0x0000 (---------------)  + I nra
+	0x0022d2c3, // n0x0268 c0x0000 (---------------)  + I nrw
+	0x0034b343, // n0x0269 c0x0000 (---------------)  + I ntt
+	0x3e20fd82, // n0x026a c0x00f8 (n0x1731-n0x1734)  + I nu
+	0x0021af43, // n0x026b c0x0000 (---------------)  + I nyc
+	0x3e613002, // n0x026c c0x00f9 (n0x1734-n0x1744)  + I nz
+	0x00213483, // n0x026d c0x0000 (---------------)  + I obi
+	0x002130c7, // n0x026e c0x0000 (---------------)  + I okinawa
+	0x3ee087c2, // n0x026f c0x00fb (n0x1745-n0x174e)  + I om
+	0x002166c3, // n0x0270 c0x0000 (---------------)  + I one
+	0x00218c43, // n0x0271 c0x0000 (---------------)  + I ong
+	0x0030be03, // n0x0272 c0x0000 (---------------)  + I onl
+	0x00294bc3, // n0x0273 c0x0000 (---------------)  + I ooo
+	0x002c4046, // n0x0274 c0x0000 (---------------)  + I oracle
+	0x3f24d043, // n0x0275 c0x00fc (n0x174e-n0x1784)  + I org
+	0x0024d047, // n0x0276 c0x0000 (---------------)  + I organic
+	0x002905c5, // n0x0277 c0x0000 (---------------)  + I osaka
+	0x0024b686, // n0x0278 c0x0000 (---------------)  + I otsuka
+	0x00283083, // n0x0279 c0x0000 (---------------)  + I ovh
+	0x3fa00ac2, // n0x027a c0x00fe (n0x1786-n0x1791)  + I pa
+	0x0035f2c4, // n0x027b c0x0000 (---------------)  + I page
+	0x00243a87, // n0x027c c0x0000 (---------------)  + I panerai
+	0x00256585, // n0x027d c0x0000 (---------------)  + I paris
+	0x0028e704, // n0x027e c0x0000 (---------------)  + I pars
+	0x002acc08, // n0x027f c0x0000 (---------------)  + I partners
+	0x002b9345, // n0x0280 c0x0000 (---------------)  + I parts
+	0x002c7745, // n0x0281 c0x0000 (---------------)  + I party
+	0x3fe0c782, // n0x0282 c0x00ff (n0x1791-n0x1798)  + I pe
+	0x4034dec2, // n0x0283 c0x0100 (n0x1798-n0x179b)  + I pf
+	0x016a6f42, // n0x0284 c0x0005 (---------------)* o I pg
+	0x40606bc2, // n0x0285 c0x0101 (n0x179b-n0x17a3)  + I ph
+	0x002c5a88, // n0x0286 c0x0000 (---------------)  + I pharmacy
+	0x002c6747, // n0x0287 c0x0000 (---------------)  + I philips
+	0x002a75c5, // n0x0288 c0x0000 (---------------)  + I photo
+	0x002c718b, // n0x0289 c0x0000 (---------------)  + I photography
+	0x002c30c6, // n0x028a c0x0000 (---------------)  + I photos
+	0x002c7386, // n0x028b c0x0000 (---------------)  + I physio
+	0x002c7506, // n0x028c c0x0000 (---------------)  + I piaget
+	0x00221f84, // n0x028d c0x0000 (---------------)  + I pics
+	0x002c80c6, // n0x028e c0x0000 (---------------)  + I pictet
+	0x002c8648, // n0x028f c0x0000 (---------------)  + I pictures
+	0x00246c03, // n0x0290 c0x0000 (---------------)  + I pin
+	0x00359d44, // n0x0291 c0x0000 (---------------)  + I pink
+	0x002c9e05, // n0x0292 c0x0000 (---------------)  + I pizza
+	0x40ac9f42, // n0x0293 c0x0102 (n0x17a3-n0x17b1)  + I pk
+	0x40e0a402, // n0x0294 c0x0103 (n0x17b1-n0x1856)  + I pl
+	0x0020a405, // n0x0295 c0x0000 (---------------)  + I place
+	0x002cc348, // n0x0296 c0x0000 (---------------)  + I plumbing
+	0x002127c2, // n0x0297 c0x0000 (---------------)  + I pm
+	0x416a2b42, // n0x0298 c0x0105 (n0x185f-n0x1864)  + I pn
+	0x002cd0c4, // n0x0299 c0x0000 (---------------)  + I pohl
+	0x002cd1c5, // n0x029a c0x0000 (---------------)  + I poker
+	0x002cdf44, // n0x029b c0x0000 (---------------)  + I porn
+	0x002ce7c4, // n0x029c c0x0000 (---------------)  + I post
+	0x41a2ad42, // n0x029d c0x0106 (n0x1864-n0x1871)  + I pr
+	0x0026a2c5, // n0x029e c0x0000 (---------------)  + I praxi
+	0x0022ad45, // n0x029f c0x0000 (---------------)  + I press
+	0x41ecfc43, // n0x02a0 c0x0107 (n0x1871-n0x1878)  + I pro
+	0x002cfec4, // n0x02a1 c0x0000 (---------------)  + I prod
+	0x002cfecb, // n0x02a2 c0x0000 (---------------)  + I productions
+	0x002d0d84, // n0x02a3 c0x0000 (---------------)  + I prof
+	0x002d1505, // n0x02a4 c0x0000 (---------------)  + I promo
+	0x002d284a, // n0x02a5 c0x0000 (---------------)  + I properties
+	0x002d2d48, // n0x02a6 c0x0000 (---------------)  + I property
+	0x42218402, // n0x02a7 c0x0108 (n0x1878-n0x187f)  + I ps
+	0x4269ab02, // n0x02a8 c0x0109 (n0x187f-n0x1888)  + I pt
+	0x0025dbc3, // n0x02a9 c0x0000 (---------------)  + I pub
+	0x42b76602, // n0x02aa c0x010a (n0x1888-n0x188e)  + I pw
+	0x42eb9882, // n0x02ab c0x010b (n0x188e-n0x1895)  + I py
+	0x43304ec2, // n0x02ac c0x010c (n0x1895-n0x189d)  + I qa
+	0x0023f144, // n0x02ad c0x0000 (---------------)  + I qpon
+	0x0021b2c6, // n0x02ae c0x0000 (---------------)  + I quebec
+	0x00367706, // n0x02af c0x0000 (---------------)  + I racing
+	0x43607082, // n0x02b0 c0x010d (n0x189d-n0x18a1)  + I re
+	0x002c6184, // n0x02b1 c0x0000 (---------------)  + I read
+	0x002ff907, // n0x02b2 c0x0000 (---------------)  + I realtor
+	0x0022a147, // n0x02b3 c0x0000 (---------------)  + I recipes
+	0x0023fbc3, // n0x02b4 c0x0000 (---------------)  + I red
+	0x002a4b48, // n0x02b5 c0x0000 (---------------)  + I redstone
+	0x0027dc05, // n0x02b6 c0x0000 (---------------)  + I rehab
+	0x0020e8c5, // n0x02b7 c0x0000 (---------------)  + I reise
+	0x0020e8c6, // n0x02b8 c0x0000 (---------------)  + I reisen
+	0x002aa044, // n0x02b9 c0x0000 (---------------)  + I reit
+	0x0020ae03, // n0x02ba c0x0000 (---------------)  + I ren
+	0x0029e644, // n0x02bb c0x0000 (---------------)  + I rent
+	0x002d9407, // n0x02bc c0x0000 (---------------)  + I rentals
+	0x00222886, // n0x02bd c0x0000 (---------------)  + I repair
+	0x002f0f86, // n0x02be c0x0000 (---------------)  + I report
+	0x002d7e4a, // n0x02bf c0x0000 (---------------)  + I republican
+	0x00247204, // n0x02c0 c0x0000 (---------------)  + I rest
+	0x0024720a, // n0x02c1 c0x0000 (---------------)  + I restaurant
+	0x00311dc6, // n0x02c2 c0x0000 (---------------)  + I review
+	0x00311dc7, // n0x02c3 c0x0000 (---------------)  + I reviews
+	0x00296ec4, // n0x02c4 c0x0000 (---------------)  + I rich
+	0x00203d05, // n0x02c5 c0x0000 (---------------)  + I ricoh
+	0x0020ef83, // n0x02c6 c0x0000 (---------------)  + I rio
+	0x00351a43, // n0x02c7 c0x0000 (---------------)  + I rip
+	0x43a00982, // n0x02c8 c0x010e (n0x18a1-n0x18ad)  + I ro
+	0x0037e5c6, // n0x02c9 c0x0000 (---------------)  + I rocher
+	0x002e0785, // n0x02ca c0x0000 (---------------)  + I rocks
+	0x002c4e05, // n0x02cb c0x0000 (---------------)  + I rodeo
+	0x00257344, // n0x02cc c0x0000 (---------------)  + I room
+	0x43e04642, // n0x02cd c0x010f (n0x18ad-n0x18b3)  + I rs
+	0x0024a9c4, // n0x02ce c0x0000 (---------------)  + I rsvp
+	0x44202f82, // n0x02cf c0x0110 (n0x18b3-n0x1937)  + I ru
+	0x0025df44, // n0x02d0 c0x0000 (---------------)  + I ruhr
+	0x4462d302, // n0x02d1 c0x0111 (n0x1937-n0x1940)  + I rw
+	0x00269846, // n0x02d2 c0x0000 (---------------)  + I ryukyu
+	0x44a03a82, // n0x02d3 c0x0112 (n0x1940-n0x1948)  + I sa
+	0x0036f048, // n0x02d4 c0x0000 (---------------)  + I saarland
+	0x00280544, // n0x02d5 c0x0000 (---------------)  + I safe
+	0x0020e0c6, // n0x02d6 c0x0000 (---------------)  + I sakura
+	0x00253944, // n0x02d7 c0x0000 (---------------)  + I sale
+	0x0021d205, // n0x02d8 c0x0000 (---------------)  + I salon
+	0x0022cbc7, // n0x02d9 c0x0000 (---------------)  + I samsung
+	0x002259c7, // n0x02da c0x0000 (---------------)  + I sandvik
+	0x002259cf, // n0x02db c0x0000 (---------------)  + I sandvikcoromant
+	0x00287906, // n0x02dc c0x0000 (---------------)  + I sanofi
+	0x00242883, // n0x02dd c0x0000 (---------------)  + I sap
+	0x00242884, // n0x02de c0x0000 (---------------)  + I sapo
+	0x0024cc44, // n0x02df c0x0000 (---------------)  + I sarl
+	0x00264c04, // n0x02e0 c0x0000 (---------------)  + I saxo
+	0x44e14502, // n0x02e1 c0x0113 (n0x1948-n0x194d)  + I sb
+	0x00266303, // n0x02e2 c0x0000 (---------------)  + I sbs
+	0x4521bcc2, // n0x02e3 c0x0114 (n0x194d-n0x1952)  + I sc
+	0x0022f803, // n0x02e4 c0x0000 (---------------)  + I sca
+	0x0033ff83, // n0x02e5 c0x0000 (---------------)  + I scb
+	0x0026c047, // n0x02e6 c0x0000 (---------------)  + I schmidt
+	0x00274d4c, // n0x02e7 c0x0000 (---------------)  + I scholarships
+	0x00275006, // n0x02e8 c0x0000 (---------------)  + I school
+	0x00278586, // n0x02e9 c0x0000 (---------------)  + I schule
+	0x002793c7, // n0x02ea c0x0000 (---------------)  + I schwarz
+	0x00234e47, // n0x02eb c0x0000 (---------------)  + I science
+	0x0021bcc4, // n0x02ec c0x0000 (---------------)  + I scor
+	0x00250c44, // n0x02ed c0x0000 (---------------)  + I scot
+	0x4560acc2, // n0x02ee c0x0115 (n0x1952-n0x195a)  + I sd
+	0x45a04982, // n0x02ef c0x0116 (n0x195a-n0x1983)  + I se
+	0x003095c4, // n0x02f0 c0x0000 (---------------)  + I seat
+	0x00269d04, // n0x02f1 c0x0000 (---------------)  + I seek
+	0x002bf005, // n0x02f2 c0x0000 (---------------)  + I sener
+	0x00290b08, // n0x02f3 c0x0000 (---------------)  + I services
+	0x0029a603, // n0x02f4 c0x0000 (---------------)  + I sew
+	0x0022ae43, // n0x02f5 c0x0000 (---------------)  + I sex
+	0x0022ae44, // n0x02f6 c0x0000 (---------------)  + I sexy
+	0x45e5f242, // n0x02f7 c0x0117 (n0x1983-n0x198a)  + I sg
+	0x462001c2, // n0x02f8 c0x0118 (n0x198a-n0x198f)  + I sh
+	0x002acb05, // n0x02f9 c0x0000 (---------------)  + I sharp
+	0x00215484, // n0x02fa c0x0000 (---------------)  + I shia
+	0x002b2487, // n0x02fb c0x0000 (---------------)  + I shiksha
+	0x003794c5, // n0x02fc c0x0000 (---------------)  + I shoes
+	0x002f8b07, // n0x02fd c0x0000 (---------------)  + I shriram
+	0x002058c2, // n0x02fe c0x0000 (---------------)  + I si
+	0x00224bc7, // n0x02ff c0x0000 (---------------)  + I singles
+	0x00229d82, // n0x0300 c0x0000 (---------------)  + I sj
+	0x46600e02, // n0x0301 c0x0119 (n0x198f-n0x1990)  + I sk
+	0x0022f6c3, // n0x0302 c0x0000 (---------------)  + I sky
+	0x0022f6c5, // n0x0303 c0x0000 (---------------)  + I skype
+	0x46a109c2, // n0x0304 c0x011a (n0x1990-n0x1995)  + I sl
+	0x0024f102, // n0x0305 c0x0000 (---------------)  + I sm
+	0x0033ba85, // n0x0306 c0x0000 (---------------)  + I smile
+	0x46e14782, // n0x0307 c0x011b (n0x1995-n0x199c)  + I sn
+	0x47209f02, // n0x0308 c0x011c (n0x199c-n0x199f)  + I so
+	0x002ae046, // n0x0309 c0x0000 (---------------)  + I social
+	0x00264f88, // n0x030a c0x0000 (---------------)  + I software
+	0x002ab284, // n0x030b c0x0000 (---------------)  + I sohu
+	0x00310945, // n0x030c c0x0000 (---------------)  + I solar
+	0x002d3cc9, // n0x030d c0x0000 (---------------)  + I solutions
+	0x002107c3, // n0x030e c0x0000 (---------------)  + I soy
+	0x002d91c5, // n0x030f c0x0000 (---------------)  + I space
+	0x002db647, // n0x0310 c0x0000 (---------------)  + I spiegel
+	0x002dbd0d, // n0x0311 c0x0000 (---------------)  + I spreadbetting
+	0x002dc282, // n0x0312 c0x0000 (---------------)  + I sr
+	0x47604682, // n0x0313 c0x011d (n0x199f-n0x19ab)  + I st
+	0x00346f05, // n0x0314 c0x0000 (---------------)  + I stada
+	0x002cd887, // n0x0315 c0x0000 (---------------)  + I statoil
+	0x00270103, // n0x0316 c0x0000 (---------------)  + I stc
+	0x00270108, // n0x0317 c0x0000 (---------------)  + I stcgroup
+	0x0036c009, // n0x0318 c0x0000 (---------------)  + I stockholm
+	0x002dcf05, // n0x0319 c0x0000 (---------------)  + I study
+	0x002770c5, // n0x031a c0x0000 (---------------)  + I style
+	0x00200502, // n0x031b c0x0000 (---------------)  + I su
+	0x002aec88, // n0x031c c0x0000 (---------------)  + I supplies
+	0x0028a146, // n0x031d c0x0000 (---------------)  + I supply
+	0x0022bc47, // n0x031e c0x0000 (---------------)  + I support
+	0x002d1744, // n0x031f c0x0000 (---------------)  + I surf
+	0x002bce87, // n0x0320 c0x0000 (---------------)  + I surgery
+	0x002dfe86, // n0x0321 c0x0000 (---------------)  + I suzuki
+	0x47a01e82, // n0x0322 c0x011e (n0x19ab-n0x19b0)  + I sv
+	0x002e3105, // n0x0323 c0x0000 (---------------)  + I swiss
+	0x47ee3902, // n0x0324 c0x011f (n0x19b0-n0x19b1)  + I sx
+	0x48218442, // n0x0325 c0x0120 (n0x19b1-n0x19b7)  + I sy
+	0x00266bc6, // n0x0326 c0x0000 (---------------)  + I sydney
+	0x002a3808, // n0x0327 c0x0000 (---------------)  + I symantec
+	0x0037e1c7, // n0x0328 c0x0000 (---------------)  + I systems
+	0x48601302, // n0x0329 c0x0121 (n0x19b7-n0x19ba)  + I sz
+	0x00232b83, // n0x032a c0x0000 (---------------)  + I tab
+	0x00233ac6, // n0x032b c0x0000 (---------------)  + I taipei
+	0x00210245, // n0x032c c0x0000 (---------------)  + I tatar
+	0x0021cd46, // n0x032d c0x0000 (---------------)  + I tattoo
+	0x00226b43, // n0x032e c0x0000 (---------------)  + I tax
+	0x00205ec2, // n0x032f c0x0000 (---------------)  + I tc
+	0x002ed903, // n0x0330 c0x0000 (---------------)  + I tci
+	0x48a08dc2, // n0x0331 c0x0122 (n0x19ba-n0x19bb)  + I td
+	0x002a394a, // n0x0332 c0x0000 (---------------)  + I technology
+	0x00218943, // n0x0333 c0x0000 (---------------)  + I tel
+	0x0029d88a, // n0x0334 c0x0000 (---------------)  + I telefonica
+	0x0023c987, // n0x0335 c0x0000 (---------------)  + I temasek
+	0x002eaf86, // n0x0336 c0x0000 (---------------)  + I tennis
+	0x00211842, // n0x0337 c0x0000 (---------------)  + I tf
+	0x002276c2, // n0x0338 c0x0000 (---------------)  + I tg
+	0x48e09382, // n0x0339 c0x0123 (n0x19bb-n0x19c2)  + I th
+	0x00229446, // n0x033a c0x0000 (---------------)  + I tienda
+	0x00385604, // n0x033b c0x0000 (---------------)  + I tips
+	0x00207005, // n0x033c c0x0000 (---------------)  + I tires
+	0x002a16c5, // n0x033d c0x0000 (---------------)  + I tirol
+	0x492046c2, // n0x033e c0x0124 (n0x19c2-n0x19d1)  + I tj
+	0x00204b42, // n0x033f c0x0000 (---------------)  + I tk
+	0x49616882, // n0x0340 c0x0125 (n0x19d1-n0x19d2)  + I tl
+	0x49a032c2, // n0x0341 c0x0126 (n0x19d2-n0x19da)  + I tm
+	0x49e01942, // n0x0342 c0x0127 (n0x19da-n0x19ee)  + I tn
+	0x4a200302, // n0x0343 c0x0128 (n0x19ee-n0x19f4)  + I to
+	0x003501c5, // n0x0344 c0x0000 (---------------)  + I today
+	0x002bc8c5, // n0x0345 c0x0000 (---------------)  + I tokyo
+	0x0021ce05, // n0x0346 c0x0000 (---------------)  + I tools
+	0x00297203, // n0x0347 c0x0000 (---------------)  + I top
+	0x00240dc5, // n0x0348 c0x0000 (---------------)  + I toray
+	0x002c3187, // n0x0349 c0x0000 (---------------)  + I toshiba
+	0x0023bb04, // n0x034a c0x0000 (---------------)  + I town
+	0x00257684, // n0x034b c0x0000 (---------------)  + I toys
+	0x0020df02, // n0x034c c0x0000 (---------------)  + I tp
+	0x4a600942, // n0x034d c0x0129 (n0x19f4-n0x1a09)  + I tr
+	0x00243045, // n0x034e c0x0000 (---------------)  + I trade
+	0x00298847, // n0x034f c0x0000 (---------------)  + I trading
+	0x0026ba48, // n0x0350 c0x0000 (---------------)  + I training
+	0x00290186, // n0x0351 c0x0000 (---------------)  + I travel
+	0x00313345, // n0x0352 c0x0000 (---------------)  + I trust
+	0x4b21cdc2, // n0x0353 c0x012c (n0x1a0b-n0x1a1c)  + I tt
+	0x002e3c03, // n0x0354 c0x0000 (---------------)  + I tui
+	0x002e5005, // n0x0355 c0x0000 (---------------)  + I tushu
+	0x4b68dc82, // n0x0356 c0x012d (n0x1a1c-n0x1a20)  + I tv
+	0x4ba548c2, // n0x0357 c0x012e (n0x1a20-n0x1a2e)  + I tw
+	0x4be3af02, // n0x0358 c0x012f (n0x1a2e-n0x1a3a)  + I tz
+	0x4c229e82, // n0x0359 c0x0130 (n0x1a3a-n0x1a88)  + I ua
+	0x00346003, // n0x035a c0x0000 (---------------)  + I ubs
+	0x4c601b02, // n0x035b c0x0131 (n0x1a88-n0x1a90)  + I ug
+	0x4ca00542, // n0x035c c0x0132 (n0x1a90-n0x1a9b)  + I uk
+	0x003826ca, // n0x035d c0x0000 (---------------)  + I university
+	0x00215b43, // n0x035e c0x0000 (---------------)  + I uno
+	0x00245c03, // n0x035f c0x0000 (---------------)  + I uol
+	0x4d6073c2, // n0x0360 c0x0135 (n0x1a9d-n0x1adc)  + I us
+	0x5ba04282, // n0x0361 c0x016e (n0x1b7f-n0x1b85)  + I uy
+	0x5be1eac2, // n0x0362 c0x016f (n0x1b85-n0x1b89)  + I uz
+	0x00203242, // n0x0363 c0x0000 (---------------)  + I va
+	0x0036ed89, // n0x0364 c0x0000 (---------------)  + I vacations
+	0x002b1004, // n0x0365 c0x0000 (---------------)  + I vana
+	0x5c2e6442, // n0x0366 c0x0170 (n0x1b89-n0x1b8f)  + I vc
+	0x5c603f02, // n0x0367 c0x0171 (n0x1b8f-n0x1ba0)  + I ve
+	0x002e7105, // n0x0368 c0x0000 (---------------)  + I vegas
+	0x00238bc8, // n0x0369 c0x0000 (---------------)  + I ventures
+	0x002e918c, // n0x036a c0x0000 (---------------)  + I versicherung
+	0x0023c8c3, // n0x036b c0x0000 (---------------)  + I vet
+	0x0025a082, // n0x036c c0x0000 (---------------)  + I vg
+	0x5ca01642, // n0x036d c0x0172 (n0x1ba0-n0x1ba5)  + I vi
+	0x002b8846, // n0x036e c0x0000 (---------------)  + I viajes
+	0x002ebe05, // n0x036f c0x0000 (---------------)  + I video
+	0x002ebf46, // n0x0370 c0x0000 (---------------)  + I villas
+	0x002efb86, // n0x0371 c0x0000 (---------------)  + I virgin
+	0x002a1046, // n0x0372 c0x0000 (---------------)  + I vision
+	0x002bd505, // n0x0373 c0x0000 (---------------)  + I vista
+	0x002f010a, // n0x0374 c0x0000 (---------------)  + I vistaprint
+	0x0024bd44, // n0x0375 c0x0000 (---------------)  + I viva
+	0x00326bca, // n0x0376 c0x0000 (---------------)  + I vlaanderen
+	0x5ce0d142, // n0x0377 c0x0173 (n0x1ba5-n0x1bb1)  + I vn
+	0x00360bc5, // n0x0378 c0x0000 (---------------)  + I vodka
+	0x002f3f44, // n0x0379 c0x0000 (---------------)  + I vote
+	0x002f4046, // n0x037a c0x0000 (---------------)  + I voting
+	0x002f41c4, // n0x037b c0x0000 (---------------)  + I voto
+	0x00361286, // n0x037c c0x0000 (---------------)  + I voyage
+	0x5d201882, // n0x037d c0x0174 (n0x1bb1-n0x1bb5)  + I vu
+	0x00236485, // n0x037e c0x0000 (---------------)  + I wales
+	0x00276386, // n0x037f c0x0000 (---------------)  + I walter
+	0x00252444, // n0x0380 c0x0000 (---------------)  + I wang
+	0x00252447, // n0x0381 c0x0000 (---------------)  + I wanggou
+	0x00205e45, // n0x0382 c0x0000 (---------------)  + I watch
+	0x00216346, // n0x0383 c0x0000 (---------------)  + I webcam
+	0x002071c7, // n0x0384 c0x0000 (---------------)  + I website
+	0x00245dc3, // n0x0385 c0x0000 (---------------)  + I wed
+	0x0035fb47, // n0x0386 c0x0000 (---------------)  + I wedding
+	0x00212582, // n0x0387 c0x0000 (---------------)  + I wf
+	0x0022e087, // n0x0388 c0x0000 (---------------)  + I whoswho
+	0x00382d04, // n0x0389 c0x0000 (---------------)  + I wien
+	0x0022d744, // n0x038a c0x0000 (---------------)  + I wiki
+	0x00359a4b, // n0x038b c0x0000 (---------------)  + I williamhill
+	0x0021e843, // n0x038c c0x0000 (---------------)  + I win
+	0x0027c987, // n0x038d c0x0000 (---------------)  + I windows
+	0x00273d43, // n0x038e c0x0000 (---------------)  + I wme
+	0x00226744, // n0x038f c0x0000 (---------------)  + I work
+	0x0022e545, // n0x0390 c0x0000 (---------------)  + I works
+	0x00306b45, // n0x0391 c0x0000 (---------------)  + I world
+	0x5d6012c2, // n0x0392 c0x0175 (n0x1bb5-n0x1bbc)  + I ws
+	0x002a43c3, // n0x0393 c0x0000 (---------------)  + I wtc
+	0x002a44c3, // n0x0394 c0x0000 (---------------)  + I wtf
+	0x0022cdc4, // n0x0395 c0x0000 (---------------)  + I xbox
+	0x0022ce85, // n0x0396 c0x0000 (---------------)  + I xerox
+	0x00226bc3, // n0x0397 c0x0000 (---------------)  + I xin
+	0x0027c44b, // n0x0398 c0x0000 (---------------)  + I xn--1qqw23a
+	0x0029a08a, // n0x0399 c0x0000 (---------------)  + I xn--30rr7y
+	0x002c6d8b, // n0x039a c0x0000 (---------------)  + I xn--3bst00m
+	0x002e394b, // n0x039b c0x0000 (---------------)  + I xn--3ds443g
+	0x0032a28c, // n0x039c c0x0000 (---------------)  + I xn--3e0b707e
+	0x0037fa0b, // n0x039d c0x0000 (---------------)  + I xn--45brj9c
+	0x0038470a, // n0x039e c0x0000 (---------------)  + I xn--45q11c
+	0x00385f0a, // n0x039f c0x0000 (---------------)  + I xn--4gbrim
+	0x002f588e, // n0x03a0 c0x0000 (---------------)  + I xn--54b7fta0cc
+	0x002f640b, // n0x03a1 c0x0000 (---------------)  + I xn--55qw42g
+	0x002f66ca, // n0x03a2 c0x0000 (---------------)  + I xn--55qx5d
+	0x002f77cb, // n0x03a3 c0x0000 (---------------)  + I xn--6frz82g
+	0x002f7d0e, // n0x03a4 c0x0000 (---------------)  + I xn--6qq986b3xl
+	0x002f884c, // n0x03a5 c0x0000 (---------------)  + I xn--80adxhks
+	0x002f908b, // n0x03a6 c0x0000 (---------------)  + I xn--80ao21a
+	0x002f934c, // n0x03a7 c0x0000 (---------------)  + I xn--80asehdb
+	0x002fd30a, // n0x03a8 c0x0000 (---------------)  + I xn--80aswg
+	0x5dafe78a, // n0x03a9 c0x0176 (n0x1bbc-n0x1bc2)  + I xn--90a3ac
+	0x0030060a, // n0x03aa c0x0000 (---------------)  + I xn--9et52u
+	0x00302d8e, // n0x03ab c0x0000 (---------------)  + I xn--b4w605ferd
+	0x0030d409, // n0x03ac c0x0000 (---------------)  + I xn--c1avg
+	0x0030e04a, // n0x03ad c0x0000 (---------------)  + I xn--cg4bki
+	0x0030eb56, // n0x03ae c0x0000 (---------------)  + I xn--clchc0ea0b2g2a9gcd
+	0x0030fecb, // n0x03af c0x0000 (---------------)  + I xn--czr694b
+	0x0031060a, // n0x03b0 c0x0000 (---------------)  + I xn--czrs0t
+	0x00310b8a, // n0x03b1 c0x0000 (---------------)  + I xn--czru2d
+	0x0031234b, // n0x03b2 c0x0000 (---------------)  + I xn--d1acj3b
+	0x003160cd, // n0x03b3 c0x0000 (---------------)  + I xn--eckvdtc9d
+	0x00316bcb, // n0x03b4 c0x0000 (---------------)  + I xn--efvy88h
+	0x0031898e, // n0x03b5 c0x0000 (---------------)  + I xn--fiq228c5hs
+	0x00318f4a, // n0x03b6 c0x0000 (---------------)  + I xn--fiq64b
+	0x0031abca, // n0x03b7 c0x0000 (---------------)  + I xn--fiqs8s
+	0x0031af8a, // n0x03b8 c0x0000 (---------------)  + I xn--fiqz9s
+	0x0031ba4b, // n0x03b9 c0x0000 (---------------)  + I xn--fjq720a
+	0x0031c28b, // n0x03ba c0x0000 (---------------)  + I xn--flw351e
+	0x0031c54d, // n0x03bb c0x0000 (---------------)  + I xn--fpcrj9c3d
+	0x0031d68d, // n0x03bc c0x0000 (---------------)  + I xn--fzc2c9e2c
+	0x0031dbcb, // n0x03bd c0x0000 (---------------)  + I xn--gecrj9c
+	0x00320c0b, // n0x03be c0x0000 (---------------)  + I xn--h2brj9c
+	0x0032560b, // n0x03bf c0x0000 (---------------)  + I xn--hxt814e
+	0x0032608f, // n0x03c0 c0x0000 (---------------)  + I xn--i1b6b1a6a2e
+	0x0032644b, // n0x03c1 c0x0000 (---------------)  + I xn--imr513n
+	0x00326e4a, // n0x03c2 c0x0000 (---------------)  + I xn--io0a7i
+	0x00327389, // n0x03c3 c0x0000 (---------------)  + I xn--j1amh
+	0x0032774b, // n0x03c4 c0x0000 (---------------)  + I xn--j6w193g
+	0x00328e4f, // n0x03c5 c0x0000 (---------------)  + I xn--kcrx77d1x4a
+	0x0032b4cb, // n0x03c6 c0x0000 (---------------)  + I xn--kprw13d
+	0x0032b78b, // n0x03c7 c0x0000 (---------------)  + I xn--kpry57d
+	0x0032ba4a, // n0x03c8 c0x0000 (---------------)  + I xn--kput3i
+	0x00332049, // n0x03c9 c0x0000 (---------------)  + I xn--l1acc
+	0x0033600f, // n0x03ca c0x0000 (---------------)  + I xn--lgbbat1ad8j
+	0x00339ccc, // n0x03cb c0x0000 (---------------)  + I xn--mgb2ddes
+	0x0033a04c, // n0x03cc c0x0000 (---------------)  + I xn--mgb9awbf
+	0x0033a6ce, // n0x03cd c0x0000 (---------------)  + I xn--mgba3a3ejt
+	0x0033b00f, // n0x03ce c0x0000 (---------------)  + I xn--mgba3a4f16a
+	0x0033b3ce, // n0x03cf c0x0000 (---------------)  + I xn--mgba3a4fra
+	0x0033bd8e, // n0x03d0 c0x0000 (---------------)  + I xn--mgbaam7a8h
+	0x0033c34c, // n0x03d1 c0x0000 (---------------)  + I xn--mgbab2bd
+	0x0033c64e, // n0x03d2 c0x0000 (---------------)  + I xn--mgbayh7gpa
+	0x0033ca8e, // n0x03d3 c0x0000 (---------------)  + I xn--mgbb9fbpob
+	0x0033cfce, // n0x03d4 c0x0000 (---------------)  + I xn--mgbbh1a71e
+	0x0033d34f, // n0x03d5 c0x0000 (---------------)  + I xn--mgbc0a9azcg
+	0x0033d713, // n0x03d6 c0x0000 (---------------)  + I xn--mgberp4a5d4a87g
+	0x0033dbd1, // n0x03d7 c0x0000 (---------------)  + I xn--mgberp4a5d4ar
+	0x0033e013, // n0x03d8 c0x0000 (---------------)  + I xn--mgbqly7c0a67fbc
+	0x0033ea90, // n0x03d9 c0x0000 (---------------)  + I xn--mgbqly7cvafr
+	0x0033f2cc, // n0x03da c0x0000 (---------------)  + I xn--mgbt3dhd
+	0x0033f5cc, // n0x03db c0x0000 (---------------)  + I xn--mgbtf8fl
+	0x0033fa8e, // n0x03dc c0x0000 (---------------)  + I xn--mgbx4cd0ab
+	0x0034808a, // n0x03dd c0x0000 (---------------)  + I xn--mxtq1m
+	0x0034844c, // n0x03de c0x0000 (---------------)  + I xn--ngbc5azd
+	0x0034874c, // n0x03df c0x0000 (---------------)  + I xn--ngbe9e0a
+	0x00349e0b, // n0x03e0 c0x0000 (---------------)  + I xn--nnx388a
+	0x0034a0c8, // n0x03e1 c0x0000 (---------------)  + I xn--node
+	0x0034a509, // n0x03e2 c0x0000 (---------------)  + I xn--nqv7f
+	0x0034a50f, // n0x03e3 c0x0000 (---------------)  + I xn--nqv7fs00ema
+	0x0034bd0b, // n0x03e4 c0x0000 (---------------)  + I xn--nyqy26a
+	0x0034c60a, // n0x03e5 c0x0000 (---------------)  + I xn--o3cw4h
+	0x0034dd0c, // n0x03e6 c0x0000 (---------------)  + I xn--ogbpf8fl
+	0x0034eec9, // n0x03e7 c0x0000 (---------------)  + I xn--p1acf
+	0x0034f408, // n0x03e8 c0x0000 (---------------)  + I xn--p1ai
+	0x0034f70b, // n0x03e9 c0x0000 (---------------)  + I xn--pgbs0dh
+	0x00350d8b, // n0x03ea c0x0000 (---------------)  + I xn--q9jyb4c
+	0x003512cc, // n0x03eb c0x0000 (---------------)  + I xn--qcka1pmc
+	0x003543cb, // n0x03ec c0x0000 (---------------)  + I xn--rhqv96g
+	0x00358e4b, // n0x03ed c0x0000 (---------------)  + I xn--s9brj9c
+	0x0035b88b, // n0x03ee c0x0000 (---------------)  + I xn--ses554g
+	0x003742ca, // n0x03ef c0x0000 (---------------)  + I xn--unup4y
+	0x00375217, // n0x03f0 c0x0000 (---------------)  + I xn--vermgensberater-ctb
+	0x003760d8, // n0x03f1 c0x0000 (---------------)  + I xn--vermgensberatung-pwb
+	0x0037a409, // n0x03f2 c0x0000 (---------------)  + I xn--vhquv
+	0x0037b88b, // n0x03f3 c0x0000 (---------------)  + I xn--vuq861b
+	0x0037c38a, // n0x03f4 c0x0000 (---------------)  + I xn--wgbh1c
+	0x0037c90a, // n0x03f5 c0x0000 (---------------)  + I xn--wgbl6a
+	0x0037cb8b, // n0x03f6 c0x0000 (---------------)  + I xn--xhq521b
+	0x0037d810, // n0x03f7 c0x0000 (---------------)  + I xn--xkc2al3hye2a
+	0x0037dc11, // n0x03f8 c0x0000 (---------------)  + I xn--xkc2dl3a5ee0h
+	0x0037f00d, // n0x03f9 c0x0000 (---------------)  + I xn--yfro4i67o
+	0x0037f70d, // n0x03fa c0x0000 (---------------)  + I xn--ygbi2ammx
+	0x0038528b, // n0x03fb c0x0000 (---------------)  + I xn--zfr164b
+	0x00385e83, // n0x03fc c0x0000 (---------------)  + I xxx
+	0x0022aec3, // n0x03fd c0x0000 (---------------)  + I xyz
+	0x002e6806, // n0x03fe c0x0000 (---------------)  + I yachts
+	0x0021a607, // n0x03ff c0x0000 (---------------)  + I yamaxun
+	0x00305246, // n0x0400 c0x0000 (---------------)  + I yandex
+	0x0161ef02, // n0x0401 c0x0005 (---------------)* o I ye
+	0x002e6549, // n0x0402 c0x0000 (---------------)  + I yodobashi
+	0x00367504, // n0x0403 c0x0000 (---------------)  + I yoga
+	0x00345bc8, // n0x0404 c0x0000 (---------------)  + I yokohama
+	0x00383287, // n0x0405 c0x0000 (---------------)  + I youtube
+	0x0023f602, // n0x0406 c0x0000 (---------------)  + I yt
+	0x016028c2, // n0x0407 c0x0005 (---------------)* o I za
+	0x002b7b44, // n0x0408 c0x0000 (---------------)  + I zara
+	0x0035f684, // n0x0409 c0x0000 (---------------)  + I zero
+	0x0023c103, // n0x040a c0x0000 (---------------)  + I zip
+	0x01675302, // n0x040b c0x0005 (---------------)* o I zm
+	0x002ccfc4, // n0x040c c0x0000 (---------------)  + I zone
+	0x00347387, // n0x040d c0x0000 (---------------)  + I zuerich
+	0x0167cc82, // n0x040e c0x0005 (---------------)* o I zw
+	0x00232dc3, // n0x040f c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0410 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0411 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x0412 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x0413 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0414 c0x0000 (---------------)  + I org
+	0x002104c3, // n0x0415 c0x0000 (---------------)  + I nom
+	0x00200b82, // n0x0416 c0x0000 (---------------)  + I ac
+	0x0009e448, // n0x0417 c0x0000 (---------------)  +   blogspot
+	0x00200882, // n0x0418 c0x0000 (---------------)  + I co
+	0x00209ac3, // n0x0419 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x041a c0x0000 (---------------)  + I mil
+	0x00218643, // n0x041b c0x0000 (---------------)  + I net
+	0x0024d043, // n0x041c c0x0000 (---------------)  + I org
+	0x00251983, // n0x041d c0x0000 (---------------)  + I sch
+	0x00308bd6, // n0x041e c0x0000 (---------------)  + I accident-investigation
+	0x0030b9d3, // n0x041f c0x0000 (---------------)  + I accident-prevention
+	0x00233789, // n0x0420 c0x0000 (---------------)  + I aerobatic
+	0x0034c9c8, // n0x0421 c0x0000 (---------------)  + I aeroclub
+	0x002e1989, // n0x0422 c0x0000 (---------------)  + I aerodrome
+	0x0034f106, // n0x0423 c0x0000 (---------------)  + I agents
+	0x00347910, // n0x0424 c0x0000 (---------------)  + I air-surveillance
+	0x00222953, // n0x0425 c0x0000 (---------------)  + I air-traffic-control
+	0x00243bc8, // n0x0426 c0x0000 (---------------)  + I aircraft
+	0x00272647, // n0x0427 c0x0000 (---------------)  + I airline
+	0x0027df47, // n0x0428 c0x0000 (---------------)  + I airport
+	0x00295a4a, // n0x0429 c0x0000 (---------------)  + I airtraffic
+	0x00383909, // n0x042a c0x0000 (---------------)  + I ambulance
+	0x00365e49, // n0x042b c0x0000 (---------------)  + I amusement
+	0x002c51cb, // n0x042c c0x0000 (---------------)  + I association
+	0x003220c6, // n0x042d c0x0000 (---------------)  + I author
+	0x0025044a, // n0x042e c0x0000 (---------------)  + I ballooning
+	0x00227806, // n0x042f c0x0000 (---------------)  + I broker
+	0x00367143, // n0x0430 c0x0000 (---------------)  + I caa
+	0x00214585, // n0x0431 c0x0000 (---------------)  + I cargo
+	0x0024a608, // n0x0432 c0x0000 (---------------)  + I catering
+	0x002d250d, // n0x0433 c0x0000 (---------------)  + I certification
+	0x003474cc, // n0x0434 c0x0000 (---------------)  + I championship
+	0x0026e587, // n0x0435 c0x0000 (---------------)  + I charter
+	0x00332c0d, // n0x0436 c0x0000 (---------------)  + I civilaviation
+	0x0034cac4, // n0x0437 c0x0000 (---------------)  + I club
+	0x0023588a, // n0x0438 c0x0000 (---------------)  + I conference
+	0x0023668a, // n0x0439 c0x0000 (---------------)  + I consultant
+	0x00236b4a, // n0x043a c0x0000 (---------------)  + I consulting
+	0x00200887, // n0x043b c0x0000 (---------------)  + I control
+	0x0023e8c7, // n0x043c c0x0000 (---------------)  + I council
+	0x00240284, // n0x043d c0x0000 (---------------)  + I crew
+	0x00237ec6, // n0x043e c0x0000 (---------------)  + I design
+	0x0036dfc4, // n0x043f c0x0000 (---------------)  + I dgca
+	0x002d42c8, // n0x0440 c0x0000 (---------------)  + I educator
+	0x0020a509, // n0x0441 c0x0000 (---------------)  + I emergency
+	0x0030dc46, // n0x0442 c0x0000 (---------------)  + I engine
+	0x0030dc48, // n0x0443 c0x0000 (---------------)  + I engineer
+	0x0024430d, // n0x0444 c0x0000 (---------------)  + I entertainment
+	0x002126c9, // n0x0445 c0x0000 (---------------)  + I equipment
+	0x002ed008, // n0x0446 c0x0000 (---------------)  + I exchange
+	0x0022acc7, // n0x0447 c0x0000 (---------------)  + I express
+	0x0023ee8a, // n0x0448 c0x0000 (---------------)  + I federation
+	0x0024cd46, // n0x0449 c0x0000 (---------------)  + I flight
+	0x00257507, // n0x044a c0x0000 (---------------)  + I freight
+	0x002e7f04, // n0x044b c0x0000 (---------------)  + I fuel
+	0x0023c587, // n0x044c c0x0000 (---------------)  + I gliding
+	0x0025ee0a, // n0x044d c0x0000 (---------------)  + I government
+	0x00239a0e, // n0x044e c0x0000 (---------------)  + I groundhandling
+	0x00226905, // n0x044f c0x0000 (---------------)  + I group
+	0x0037354b, // n0x0450 c0x0000 (---------------)  + I hanggliding
+	0x0028efc9, // n0x0451 c0x0000 (---------------)  + I homebuilt
+	0x002fde89, // n0x0452 c0x0000 (---------------)  + I insurance
+	0x00206507, // n0x0453 c0x0000 (---------------)  + I journal
+	0x0020650a, // n0x0454 c0x0000 (---------------)  + I journalist
+	0x00224b07, // n0x0455 c0x0000 (---------------)  + I leasing
+	0x0024d2c9, // n0x0456 c0x0000 (---------------)  + I logistics
+	0x00285f48, // n0x0457 c0x0000 (---------------)  + I magazine
+	0x0022aa4b, // n0x0458 c0x0000 (---------------)  + I maintenance
+	0x0035c84b, // n0x0459 c0x0000 (---------------)  + I marketplace
+	0x0021e585, // n0x045a c0x0000 (---------------)  + I media
+	0x002494ca, // n0x045b c0x0000 (---------------)  + I microlight
+	0x00317449, // n0x045c c0x0000 (---------------)  + I modelling
+	0x002015ca, // n0x045d c0x0000 (---------------)  + I navigation
+	0x0023c18b, // n0x045e c0x0000 (---------------)  + I parachuting
+	0x0023c48b, // n0x045f c0x0000 (---------------)  + I paragliding
+	0x002c4f55, // n0x0460 c0x0000 (---------------)  + I passenger-association
+	0x002c8e05, // n0x0461 c0x0000 (---------------)  + I pilot
+	0x0022ad45, // n0x0462 c0x0000 (---------------)  + I press
+	0x002cfeca, // n0x0463 c0x0000 (---------------)  + I production
+	0x0031e10a, // n0x0464 c0x0000 (---------------)  + I recreation
+	0x00226387, // n0x0465 c0x0000 (---------------)  + I repbody
+	0x00207083, // n0x0466 c0x0000 (---------------)  + I res
+	0x002d8188, // n0x0467 c0x0000 (---------------)  + I research
+	0x002c158a, // n0x0468 c0x0000 (---------------)  + I rotorcraft
+	0x00280546, // n0x0469 c0x0000 (---------------)  + I safety
+	0x002833c9, // n0x046a c0x0000 (---------------)  + I scientist
+	0x00290b08, // n0x046b c0x0000 (---------------)  + I services
+	0x002f5744, // n0x046c c0x0000 (---------------)  + I show
+	0x0034c3c9, // n0x046d c0x0000 (---------------)  + I skydiving
+	0x00264f88, // n0x046e c0x0000 (---------------)  + I software
+	0x0033adc7, // n0x046f c0x0000 (---------------)  + I student
+	0x00226b44, // n0x0470 c0x0000 (---------------)  + I taxi
+	0x00243046, // n0x0471 c0x0000 (---------------)  + I trader
+	0x00298847, // n0x0472 c0x0000 (---------------)  + I trading
+	0x002a82c7, // n0x0473 c0x0000 (---------------)  + I trainer
+	0x002ba245, // n0x0474 c0x0000 (---------------)  + I union
+	0x0022674c, // n0x0475 c0x0000 (---------------)  + I workinggroup
+	0x0022e545, // n0x0476 c0x0000 (---------------)  + I works
+	0x00232dc3, // n0x0477 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0478 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0479 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x047a c0x0000 (---------------)  + I net
+	0x0024d043, // n0x047b c0x0000 (---------------)  + I org
+	0x00200882, // n0x047c c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x047d c0x0000 (---------------)  + I com
+	0x00218643, // n0x047e c0x0000 (---------------)  + I net
+	0x002104c3, // n0x047f c0x0000 (---------------)  + I nom
+	0x0024d043, // n0x0480 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x0481 c0x0000 (---------------)  + I com
+	0x00218643, // n0x0482 c0x0000 (---------------)  + I net
+	0x00215fc3, // n0x0483 c0x0000 (---------------)  + I off
+	0x0024d043, // n0x0484 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x0485 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0486 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0487 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x0488 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x0489 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x048a c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x048b c0x0000 (---------------)  + I com
+	0x0021e083, // n0x048c c0x0000 (---------------)  + I edu
+	0x00218643, // n0x048d c0x0000 (---------------)  + I net
+	0x0024d043, // n0x048e c0x0000 (---------------)  + I org
+	0x00200882, // n0x048f c0x0000 (---------------)  + I co
+	0x00205742, // n0x0490 c0x0000 (---------------)  + I ed
+	0x00236d82, // n0x0491 c0x0000 (---------------)  + I gv
+	0x002014c2, // n0x0492 c0x0000 (---------------)  + I it
+	0x00204f42, // n0x0493 c0x0000 (---------------)  + I og
+	0x00226402, // n0x0494 c0x0000 (---------------)  + I pb
+	0x04632dc3, // n0x0495 c0x0011 (n0x049e-n0x049f)  + I com
+	0x0021e083, // n0x0496 c0x0000 (---------------)  + I edu
+	0x003704c3, // n0x0497 c0x0000 (---------------)  + I gob
+	0x00209ac3, // n0x0498 c0x0000 (---------------)  + I gov
+	0x002188c3, // n0x0499 c0x0000 (---------------)  + I int
+	0x00240443, // n0x049a c0x0000 (---------------)  + I mil
+	0x00218643, // n0x049b c0x0000 (---------------)  + I net
+	0x0024d043, // n0x049c c0x0000 (---------------)  + I org
+	0x0022a0c3, // n0x049d c0x0000 (---------------)  + I tur
+	0x0009e448, // n0x049e c0x0000 (---------------)  +   blogspot
+	0x0024ffc4, // n0x049f c0x0000 (---------------)  + I e164
+	0x0020fac7, // n0x04a0 c0x0000 (---------------)  + I in-addr
+	0x00213ac3, // n0x04a1 c0x0000 (---------------)  + I ip6
+	0x0027a544, // n0x04a2 c0x0000 (---------------)  + I iris
+	0x00206383, // n0x04a3 c0x0000 (---------------)  + I uri
+	0x00206583, // n0x04a4 c0x0000 (---------------)  + I urn
+	0x00209ac3, // n0x04a5 c0x0000 (---------------)  + I gov
+	0x00200b82, // n0x04a6 c0x0000 (---------------)  + I ac
+	0x00002183, // n0x04a7 c0x0000 (---------------)  +   biz
+	0x05600882, // n0x04a8 c0x0015 (n0x04ad-n0x04ae)  + I co
+	0x00236d82, // n0x04a9 c0x0000 (---------------)  + I gv
+	0x00008a44, // n0x04aa c0x0000 (---------------)  +   info
+	0x00200d02, // n0x04ab c0x0000 (---------------)  + I or
+	0x000cfac4, // n0x04ac c0x0000 (---------------)  +   priv
+	0x0009e448, // n0x04ad c0x0000 (---------------)  +   blogspot
+	0x002388c3, // n0x04ae c0x0000 (---------------)  + I act
+	0x002a4783, // n0x04af c0x0000 (---------------)  + I asn
+	0x05e32dc3, // n0x04b0 c0x0017 (n0x04c0-n0x04c1)  + I com
+	0x00235884, // n0x04b1 c0x0000 (---------------)  + I conf
+	0x0621e083, // n0x04b2 c0x0018 (n0x04c1-n0x04c9)  + I edu
+	0x06609ac3, // n0x04b3 c0x0019 (n0x04c9-n0x04ce)  + I gov
+	0x00205942, // n0x04b4 c0x0000 (---------------)  + I id
+	0x00208a44, // n0x04b5 c0x0000 (---------------)  + I info
+	0x00218643, // n0x04b6 c0x0000 (---------------)  + I net
+	0x00245d43, // n0x04b7 c0x0000 (---------------)  + I nsw
+	0x00200902, // n0x04b8 c0x0000 (---------------)  + I nt
+	0x0024d043, // n0x04b9 c0x0000 (---------------)  + I org
+	0x0021b602, // n0x04ba c0x0000 (---------------)  + I oz
+	0x0022d503, // n0x04bb c0x0000 (---------------)  + I qld
+	0x00203a82, // n0x04bc c0x0000 (---------------)  + I sa
+	0x00208883, // n0x04bd c0x0000 (---------------)  + I tas
+	0x00252603, // n0x04be c0x0000 (---------------)  + I vic
+	0x00200142, // n0x04bf c0x0000 (---------------)  + I wa
+	0x0009e448, // n0x04c0 c0x0000 (---------------)  +   blogspot
+	0x002388c3, // n0x04c1 c0x0000 (---------------)  + I act
+	0x00245d43, // n0x04c2 c0x0000 (---------------)  + I nsw
+	0x00200902, // n0x04c3 c0x0000 (---------------)  + I nt
+	0x0022d503, // n0x04c4 c0x0000 (---------------)  + I qld
+	0x00203a82, // n0x04c5 c0x0000 (---------------)  + I sa
+	0x00208883, // n0x04c6 c0x0000 (---------------)  + I tas
+	0x00252603, // n0x04c7 c0x0000 (---------------)  + I vic
+	0x00200142, // n0x04c8 c0x0000 (---------------)  + I wa
+	0x0022d503, // n0x04c9 c0x0000 (---------------)  + I qld
+	0x00203a82, // n0x04ca c0x0000 (---------------)  + I sa
+	0x00208883, // n0x04cb c0x0000 (---------------)  + I tas
+	0x00252603, // n0x04cc c0x0000 (---------------)  + I vic
+	0x00200142, // n0x04cd c0x0000 (---------------)  + I wa
+	0x00232dc3, // n0x04ce c0x0000 (---------------)  + I com
+	0x00202183, // n0x04cf c0x0000 (---------------)  + I biz
+	0x00232dc3, // n0x04d0 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x04d1 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x04d2 c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x04d3 c0x0000 (---------------)  + I info
+	0x002188c3, // n0x04d4 c0x0000 (---------------)  + I int
+	0x00240443, // n0x04d5 c0x0000 (---------------)  + I mil
+	0x00267944, // n0x04d6 c0x0000 (---------------)  + I name
+	0x00218643, // n0x04d7 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x04d8 c0x0000 (---------------)  + I org
+	0x00200a82, // n0x04d9 c0x0000 (---------------)  + I pp
+	0x002cfc43, // n0x04da c0x0000 (---------------)  + I pro
+	0x00200882, // n0x04db c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x04dc c0x0000 (---------------)  + I com
+	0x0021e083, // n0x04dd c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x04de c0x0000 (---------------)  + I gov
+	0x00240443, // n0x04df c0x0000 (---------------)  + I mil
+	0x00218643, // n0x04e0 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x04e1 c0x0000 (---------------)  + I org
+	0x00204642, // n0x04e2 c0x0000 (---------------)  + I rs
+	0x00272984, // n0x04e3 c0x0000 (---------------)  + I unbi
+	0x00261304, // n0x04e4 c0x0000 (---------------)  + I unsa
+	0x00202183, // n0x04e5 c0x0000 (---------------)  + I biz
+	0x00200882, // n0x04e6 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x04e7 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x04e8 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x04e9 c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x04ea c0x0000 (---------------)  + I info
+	0x00218643, // n0x04eb c0x0000 (---------------)  + I net
+	0x0024d043, // n0x04ec c0x0000 (---------------)  + I org
+	0x002dc745, // n0x04ed c0x0000 (---------------)  + I store
+	0x0028dc82, // n0x04ee c0x0000 (---------------)  + I tv
+	0x00200b82, // n0x04ef c0x0000 (---------------)  + I ac
+	0x0009e448, // n0x04f0 c0x0000 (---------------)  +   blogspot
+	0x00209ac3, // n0x04f1 c0x0000 (---------------)  + I gov
+	0x00245441, // n0x04f2 c0x0000 (---------------)  + I 0
+	0x002075c1, // n0x04f3 c0x0000 (---------------)  + I 1
+	0x0020c501, // n0x04f4 c0x0000 (---------------)  + I 2
+	0x00207141, // n0x04f5 c0x0000 (---------------)  + I 3
+	0x00250081, // n0x04f6 c0x0000 (---------------)  + I 4
+	0x00299841, // n0x04f7 c0x0000 (---------------)  + I 5
+	0x00213b41, // n0x04f8 c0x0000 (---------------)  + I 6
+	0x00245541, // n0x04f9 c0x0000 (---------------)  + I 7
+	0x002f4b41, // n0x04fa c0x0000 (---------------)  + I 8
+	0x002f4dc1, // n0x04fb c0x0000 (---------------)  + I 9
+	0x00200101, // n0x04fc c0x0000 (---------------)  + I a
+	0x00200001, // n0x04fd c0x0000 (---------------)  + I b
+	0x00200401, // n0x04fe c0x0000 (---------------)  + I c
+	0x002003c1, // n0x04ff c0x0000 (---------------)  + I d
+	0x00200081, // n0x0500 c0x0000 (---------------)  + I e
+	0x00203841, // n0x0501 c0x0000 (---------------)  + I f
+	0x002002c1, // n0x0502 c0x0000 (---------------)  + I g
+	0x00200201, // n0x0503 c0x0000 (---------------)  + I h
+	0x00200041, // n0x0504 c0x0000 (---------------)  + I i
+	0x00202e01, // n0x0505 c0x0000 (---------------)  + I j
+	0x00200481, // n0x0506 c0x0000 (---------------)  + I k
+	0x002000c1, // n0x0507 c0x0000 (---------------)  + I l
+	0x00200f41, // n0x0508 c0x0000 (---------------)  + I m
+	0x00200281, // n0x0509 c0x0000 (---------------)  + I n
+	0x00200341, // n0x050a c0x0000 (---------------)  + I o
+	0x00200a81, // n0x050b c0x0000 (---------------)  + I p
+	0x00206c81, // n0x050c c0x0000 (---------------)  + I q
+	0x002006c1, // n0x050d c0x0000 (---------------)  + I r
+	0x002001c1, // n0x050e c0x0000 (---------------)  + I s
+	0x00200301, // n0x050f c0x0000 (---------------)  + I t
+	0x00200541, // n0x0510 c0x0000 (---------------)  + I u
+	0x00201641, // n0x0511 c0x0000 (---------------)  + I v
+	0x00200141, // n0x0512 c0x0000 (---------------)  + I w
+	0x002013c1, // n0x0513 c0x0000 (---------------)  + I x
+	0x00202981, // n0x0514 c0x0000 (---------------)  + I y
+	0x00201241, // n0x0515 c0x0000 (---------------)  + I z
+	0x00232dc3, // n0x0516 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0517 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0518 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x0519 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x051a c0x0000 (---------------)  + I org
+	0x00200882, // n0x051b c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x051c c0x0000 (---------------)  + I com
+	0x0021e083, // n0x051d c0x0000 (---------------)  + I edu
+	0x00200d02, // n0x051e c0x0000 (---------------)  + I or
+	0x0024d043, // n0x051f c0x0000 (---------------)  + I org
+	0x0000dc06, // n0x0520 c0x0000 (---------------)  +   dyndns
+	0x00050e4a, // n0x0521 c0x0000 (---------------)  +   for-better
+	0x00081388, // n0x0522 c0x0000 (---------------)  +   for-more
+	0x00051488, // n0x0523 c0x0000 (---------------)  +   for-some
+	0x00051e87, // n0x0524 c0x0000 (---------------)  +   for-the
+	0x00141246, // n0x0525 c0x0000 (---------------)  +   selfip
+	0x0002c186, // n0x0526 c0x0000 (---------------)  +   webhop
+	0x00278344, // n0x0527 c0x0000 (---------------)  + I asso
+	0x003125c7, // n0x0528 c0x0000 (---------------)  + I barreau
+	0x0009e448, // n0x0529 c0x0000 (---------------)  +   blogspot
+	0x00252544, // n0x052a c0x0000 (---------------)  + I gouv
+	0x00232dc3, // n0x052b c0x0000 (---------------)  + I com
+	0x0021e083, // n0x052c c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x052d c0x0000 (---------------)  + I gov
+	0x00218643, // n0x052e c0x0000 (---------------)  + I net
+	0x0024d043, // n0x052f c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x0530 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0531 c0x0000 (---------------)  + I edu
+	0x003704c3, // n0x0532 c0x0000 (---------------)  + I gob
+	0x00209ac3, // n0x0533 c0x0000 (---------------)  + I gov
+	0x002188c3, // n0x0534 c0x0000 (---------------)  + I int
+	0x00240443, // n0x0535 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x0536 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0537 c0x0000 (---------------)  + I org
+	0x0028dc82, // n0x0538 c0x0000 (---------------)  + I tv
+	0x002c6203, // n0x0539 c0x0000 (---------------)  + I adm
+	0x00244b43, // n0x053a c0x0000 (---------------)  + I adv
+	0x00263c03, // n0x053b c0x0000 (---------------)  + I agr
+	0x00203582, // n0x053c c0x0000 (---------------)  + I am
+	0x00381d43, // n0x053d c0x0000 (---------------)  + I arq
+	0x00208d43, // n0x053e c0x0000 (---------------)  + I art
+	0x00213403, // n0x053f c0x0000 (---------------)  + I ato
+	0x00200001, // n0x0540 c0x0000 (---------------)  + I b
+	0x00208743, // n0x0541 c0x0000 (---------------)  + I bio
+	0x0029e444, // n0x0542 c0x0000 (---------------)  + I blog
+	0x002da483, // n0x0543 c0x0000 (---------------)  + I bmd
+	0x002ed943, // n0x0544 c0x0000 (---------------)  + I cim
+	0x00369103, // n0x0545 c0x0000 (---------------)  + I cng
+	0x0022fe43, // n0x0546 c0x0000 (---------------)  + I cnt
+	0x0a232dc3, // n0x0547 c0x0028 (n0x057f-n0x0580)  + I com
+	0x0023a884, // n0x0548 c0x0000 (---------------)  + I coop
+	0x002e6183, // n0x0549 c0x0000 (---------------)  + I ecn
+	0x00208e43, // n0x054a c0x0000 (---------------)  + I eco
+	0x0021e083, // n0x054b c0x0000 (---------------)  + I edu
+	0x002370c3, // n0x054c c0x0000 (---------------)  + I emp
+	0x002abd43, // n0x054d c0x0000 (---------------)  + I eng
+	0x0027b443, // n0x054e c0x0000 (---------------)  + I esp
+	0x002ed8c3, // n0x054f c0x0000 (---------------)  + I etc
+	0x00226e83, // n0x0550 c0x0000 (---------------)  + I eti
+	0x002125c3, // n0x0551 c0x0000 (---------------)  + I far
+	0x0024d284, // n0x0552 c0x0000 (---------------)  + I flog
+	0x00257f82, // n0x0553 c0x0000 (---------------)  + I fm
+	0x002500c3, // n0x0554 c0x0000 (---------------)  + I fnd
+	0x002562c3, // n0x0555 c0x0000 (---------------)  + I fot
+	0x002700c3, // n0x0556 c0x0000 (---------------)  + I fst
+	0x00367843, // n0x0557 c0x0000 (---------------)  + I g12
+	0x002db283, // n0x0558 c0x0000 (---------------)  + I ggf
+	0x00209ac3, // n0x0559 c0x0000 (---------------)  + I gov
+	0x00316683, // n0x055a c0x0000 (---------------)  + I imb
+	0x002202c3, // n0x055b c0x0000 (---------------)  + I ind
+	0x00206e83, // n0x055c c0x0000 (---------------)  + I inf
+	0x00204703, // n0x055d c0x0000 (---------------)  + I jor
+	0x002ab543, // n0x055e c0x0000 (---------------)  + I jus
+	0x002308c3, // n0x055f c0x0000 (---------------)  + I leg
+	0x00242a43, // n0x0560 c0x0000 (---------------)  + I lel
+	0x002035c3, // n0x0561 c0x0000 (---------------)  + I mat
+	0x00210e83, // n0x0562 c0x0000 (---------------)  + I med
+	0x00240443, // n0x0563 c0x0000 (---------------)  + I mil
+	0x00203302, // n0x0564 c0x0000 (---------------)  + I mp
+	0x00294543, // n0x0565 c0x0000 (---------------)  + I mus
+	0x00218643, // n0x0566 c0x0000 (---------------)  + I net
+	0x016104c3, // n0x0567 c0x0005 (---------------)* o I nom
+	0x00282d83, // n0x0568 c0x0000 (---------------)  + I not
+	0x00200903, // n0x0569 c0x0000 (---------------)  + I ntr
+	0x00210083, // n0x056a c0x0000 (---------------)  + I odo
+	0x0024d043, // n0x056b c0x0000 (---------------)  + I org
+	0x002a6f03, // n0x056c c0x0000 (---------------)  + I ppg
+	0x002cfc43, // n0x056d c0x0000 (---------------)  + I pro
+	0x00274fc3, // n0x056e c0x0000 (---------------)  + I psc
+	0x00285203, // n0x056f c0x0000 (---------------)  + I psi
+	0x002d3a43, // n0x0570 c0x0000 (---------------)  + I qsl
+	0x00313c05, // n0x0571 c0x0000 (---------------)  + I radio
+	0x0022a143, // n0x0572 c0x0000 (---------------)  + I rec
+	0x0031b1c3, // n0x0573 c0x0000 (---------------)  + I slg
+	0x002dc283, // n0x0574 c0x0000 (---------------)  + I srv
+	0x00226b44, // n0x0575 c0x0000 (---------------)  + I taxi
+	0x002b6343, // n0x0576 c0x0000 (---------------)  + I teo
+	0x002032c3, // n0x0577 c0x0000 (---------------)  + I tmp
+	0x0029c303, // n0x0578 c0x0000 (---------------)  + I trd
+	0x0022a0c3, // n0x0579 c0x0000 (---------------)  + I tur
+	0x0028dc82, // n0x057a c0x0000 (---------------)  + I tv
+	0x0023c8c3, // n0x057b c0x0000 (---------------)  + I vet
+	0x002f2084, // n0x057c c0x0000 (---------------)  + I vlog
+	0x0022d744, // n0x057d c0x0000 (---------------)  + I wiki
+	0x00275243, // n0x057e c0x0000 (---------------)  + I zlg
+	0x0009e448, // n0x057f c0x0000 (---------------)  +   blogspot
+	0x00232dc3, // n0x0580 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0581 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0582 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x0583 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0584 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x0585 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0586 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0587 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x0588 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0589 c0x0000 (---------------)  + I org
+	0x00200882, // n0x058a c0x0000 (---------------)  + I co
+	0x0024d043, // n0x058b c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x058c c0x0000 (---------------)  + I com
+	0x00209ac3, // n0x058d c0x0000 (---------------)  + I gov
+	0x00240443, // n0x058e c0x0000 (---------------)  + I mil
+	0x00215fc2, // n0x058f c0x0000 (---------------)  + I of
+	0x00232dc3, // n0x0590 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0591 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0592 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x0593 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0594 c0x0000 (---------------)  + I org
+	0x000028c2, // n0x0595 c0x0000 (---------------)  +   za
+	0x002005c2, // n0x0596 c0x0000 (---------------)  + I ab
+	0x00214542, // n0x0597 c0x0000 (---------------)  + I bc
+	0x0009e448, // n0x0598 c0x0000 (---------------)  +   blogspot
+	0x00000882, // n0x0599 c0x0000 (---------------)  +   co
+	0x0030f002, // n0x059a c0x0000 (---------------)  + I gc
+	0x00207b82, // n0x059b c0x0000 (---------------)  + I mb
+	0x0020fe82, // n0x059c c0x0000 (---------------)  + I nb
+	0x00206ec2, // n0x059d c0x0000 (---------------)  + I nf
+	0x00248cc2, // n0x059e c0x0000 (---------------)  + I nl
+	0x0020ae82, // n0x059f c0x0000 (---------------)  + I ns
+	0x00200902, // n0x05a0 c0x0000 (---------------)  + I nt
+	0x0020fd82, // n0x05a1 c0x0000 (---------------)  + I nu
+	0x00200342, // n0x05a2 c0x0000 (---------------)  + I on
+	0x0020c782, // n0x05a3 c0x0000 (---------------)  + I pe
+	0x003513c2, // n0x05a4 c0x0000 (---------------)  + I qc
+	0x00200e02, // n0x05a5 c0x0000 (---------------)  + I sk
+	0x00218482, // n0x05a6 c0x0000 (---------------)  + I yk
+	0x0000dec9, // n0x05a7 c0x0000 (---------------)  +   ftpaccess
+	0x0008e90b, // n0x05a8 c0x0000 (---------------)  +   game-server
+	0x000c3048, // n0x05a9 c0x0000 (---------------)  +   myphotos
+	0x000895c9, // n0x05aa c0x0000 (---------------)  +   scrapping
+	0x00209ac3, // n0x05ab c0x0000 (---------------)  + I gov
+	0x0009e448, // n0x05ac c0x0000 (---------------)  +   blogspot
+	0x0009e448, // n0x05ad c0x0000 (---------------)  +   blogspot
+	0x00200b82, // n0x05ae c0x0000 (---------------)  + I ac
+	0x00278344, // n0x05af c0x0000 (---------------)  + I asso
+	0x00200882, // n0x05b0 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x05b1 c0x0000 (---------------)  + I com
+	0x00205742, // n0x05b2 c0x0000 (---------------)  + I ed
+	0x0021e083, // n0x05b3 c0x0000 (---------------)  + I edu
+	0x00209ac2, // n0x05b4 c0x0000 (---------------)  + I go
+	0x00252544, // n0x05b5 c0x0000 (---------------)  + I gouv
+	0x002188c3, // n0x05b6 c0x0000 (---------------)  + I int
+	0x0024a3c2, // n0x05b7 c0x0000 (---------------)  + I md
+	0x00218643, // n0x05b8 c0x0000 (---------------)  + I net
+	0x00200d02, // n0x05b9 c0x0000 (---------------)  + I or
+	0x0024d043, // n0x05ba c0x0000 (---------------)  + I org
+	0x0022ad46, // n0x05bb c0x0000 (---------------)  + I presse
+	0x00300b8f, // n0x05bc c0x0000 (---------------)  + I xn--aroport-bya
+	0x006b1c03, // n0x05bd c0x0001 (---------------)  ! I www
+	0x00200882, // n0x05be c0x0000 (---------------)  + I co
+	0x003704c3, // n0x05bf c0x0000 (---------------)  + I gob
+	0x00209ac3, // n0x05c0 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x05c1 c0x0000 (---------------)  + I mil
+	0x00200882, // n0x05c2 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x05c3 c0x0000 (---------------)  + I com
+	0x00209ac3, // n0x05c4 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x05c5 c0x0000 (---------------)  + I net
+	0x00200b82, // n0x05c6 c0x0000 (---------------)  + I ac
+	0x00203042, // n0x05c7 c0x0000 (---------------)  + I ah
+	0x0e29ba09, // n0x05c8 c0x0038 (n0x05f3-n0x05f4)  o I amazonaws
+	0x0020bb82, // n0x05c9 c0x0000 (---------------)  + I bj
+	0x00232dc3, // n0x05ca c0x0000 (---------------)  + I com
+	0x0023f102, // n0x05cb c0x0000 (---------------)  + I cq
+	0x0021e083, // n0x05cc c0x0000 (---------------)  + I edu
+	0x00213802, // n0x05cd c0x0000 (---------------)  + I fj
+	0x00218cc2, // n0x05ce c0x0000 (---------------)  + I gd
+	0x00209ac3, // n0x05cf c0x0000 (---------------)  + I gov
+	0x00209602, // n0x05d0 c0x0000 (---------------)  + I gs
+	0x0026bc02, // n0x05d1 c0x0000 (---------------)  + I gx
+	0x002752c2, // n0x05d2 c0x0000 (---------------)  + I gz
+	0x00203082, // n0x05d3 c0x0000 (---------------)  + I ha
+	0x00300202, // n0x05d4 c0x0000 (---------------)  + I hb
+	0x002093c2, // n0x05d5 c0x0000 (---------------)  + I he
+	0x00200202, // n0x05d6 c0x0000 (---------------)  + I hi
+	0x002301c2, // n0x05d7 c0x0000 (---------------)  + I hk
+	0x0029c882, // n0x05d8 c0x0000 (---------------)  + I hl
+	0x00206802, // n0x05d9 c0x0000 (---------------)  + I hn
+	0x002a1cc2, // n0x05da c0x0000 (---------------)  + I jl
+	0x002ddb42, // n0x05db c0x0000 (---------------)  + I js
+	0x00303c42, // n0x05dc c0x0000 (---------------)  + I jx
+	0x00232682, // n0x05dd c0x0000 (---------------)  + I ln
+	0x00240443, // n0x05de c0x0000 (---------------)  + I mil
+	0x00205202, // n0x05df c0x0000 (---------------)  + I mo
+	0x00218643, // n0x05e0 c0x0000 (---------------)  + I net
+	0x00226d42, // n0x05e1 c0x0000 (---------------)  + I nm
+	0x0027c402, // n0x05e2 c0x0000 (---------------)  + I nx
+	0x0024d043, // n0x05e3 c0x0000 (---------------)  + I org
+	0x00381dc2, // n0x05e4 c0x0000 (---------------)  + I qh
+	0x0021bcc2, // n0x05e5 c0x0000 (---------------)  + I sc
+	0x0020acc2, // n0x05e6 c0x0000 (---------------)  + I sd
+	0x002001c2, // n0x05e7 c0x0000 (---------------)  + I sh
+	0x00214782, // n0x05e8 c0x0000 (---------------)  + I sn
+	0x002e3902, // n0x05e9 c0x0000 (---------------)  + I sx
+	0x002046c2, // n0x05ea c0x0000 (---------------)  + I tj
+	0x002548c2, // n0x05eb c0x0000 (---------------)  + I tw
+	0x0022cf82, // n0x05ec c0x0000 (---------------)  + I xj
+	0x002f66ca, // n0x05ed c0x0000 (---------------)  + I xn--55qx5d
+	0x00326e4a, // n0x05ee c0x0000 (---------------)  + I xn--io0a7i
+	0x0034cf0a, // n0x05ef c0x0000 (---------------)  + I xn--od0alg
+	0x003862c2, // n0x05f0 c0x0000 (---------------)  + I xz
+	0x0020dc42, // n0x05f1 c0x0000 (---------------)  + I yn
+	0x0025cf42, // n0x05f2 c0x0000 (---------------)  + I zj
+	0x0e4347c7, // n0x05f3 c0x0039 (n0x05f4-n0x05f5)  +   compute
+	0x000e61ca, // n0x05f4 c0x0000 (---------------)  +   cn-north-1
+	0x0020b384, // n0x05f5 c0x0000 (---------------)  + I arts
+	0x00232dc3, // n0x05f6 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x05f7 c0x0000 (---------------)  + I edu
+	0x0024a304, // n0x05f8 c0x0000 (---------------)  + I firm
+	0x00209ac3, // n0x05f9 c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x05fa c0x0000 (---------------)  + I info
+	0x002188c3, // n0x05fb c0x0000 (---------------)  + I int
+	0x00240443, // n0x05fc c0x0000 (---------------)  + I mil
+	0x00218643, // n0x05fd c0x0000 (---------------)  + I net
+	0x002104c3, // n0x05fe c0x0000 (---------------)  + I nom
+	0x0024d043, // n0x05ff c0x0000 (---------------)  + I org
+	0x0022a143, // n0x0600 c0x0000 (---------------)  + I rec
+	0x002071c3, // n0x0601 c0x0000 (---------------)  + I web
+	0x0014fc46, // n0x0602 c0x0000 (---------------)  +   africa
+	0x0f29ba09, // n0x0603 c0x003c (n0x06c7-n0x06de)  o I amazonaws
+	0x00049187, // n0x0604 c0x0000 (---------------)  +   appspot
+	0x000030c2, // n0x0605 c0x0000 (---------------)  +   ar
+	0x00180eca, // n0x0606 c0x0000 (---------------)  +   betainabox
+	0x000dd187, // n0x0607 c0x0000 (---------------)  +   blogdns
+	0x0009e448, // n0x0608 c0x0000 (---------------)  +   blogspot
+	0x00007bc2, // n0x0609 c0x0000 (---------------)  +   br
+	0x0010acc7, // n0x060a c0x0000 (---------------)  +   cechire
+	0x0000074f, // n0x060b c0x0000 (---------------)  +   cloudcontrolapp
+	0x0002f10f, // n0x060c c0x0000 (---------------)  +   cloudcontrolled
+	0x0002fe42, // n0x060d c0x0000 (---------------)  +   cn
+	0x00000882, // n0x060e c0x0000 (---------------)  +   co
+	0x0007b388, // n0x060f c0x0000 (---------------)  +   codespot
+	0x00007cc2, // n0x0610 c0x0000 (---------------)  +   de
+	0x000c7a88, // n0x0611 c0x0000 (---------------)  +   dnsalias
+	0x00181687, // n0x0612 c0x0000 (---------------)  +   dnsdojo
+	0x000146cb, // n0x0613 c0x0000 (---------------)  +   doesntexist
+	0x0012cb09, // n0x0614 c0x0000 (---------------)  +   dontexist
+	0x000c7987, // n0x0615 c0x0000 (---------------)  +   doomdns
+	0x000e9ccc, // n0x0616 c0x0000 (---------------)  +   dreamhosters
+	0x0017cf4a, // n0x0617 c0x0000 (---------------)  +   dyn-o-saur
+	0x00159288, // n0x0618 c0x0000 (---------------)  +   dynalias
+	0x00010b8e, // n0x0619 c0x0000 (---------------)  +   dyndns-at-home
+	0x000264ce, // n0x061a c0x0000 (---------------)  +   dyndns-at-work
+	0x000dcfcb, // n0x061b c0x0000 (---------------)  +   dyndns-blog
+	0x0018214b, // n0x061c c0x0000 (---------------)  +   dyndns-free
+	0x0000dc0b, // n0x061d c0x0000 (---------------)  +   dyndns-home
+	0x00013909, // n0x061e c0x0000 (---------------)  +   dyndns-ip
+	0x00014d8b, // n0x061f c0x0000 (---------------)  +   dyndns-mail
+	0x00015e0d, // n0x0620 c0x0000 (---------------)  +   dyndns-office
+	0x00021dcb, // n0x0621 c0x0000 (---------------)  +   dyndns-pics
+	0x0002420d, // n0x0622 c0x0000 (---------------)  +   dyndns-remote
+	0x00027c0d, // n0x0623 c0x0000 (---------------)  +   dyndns-server
+	0x0002bfca, // n0x0624 c0x0000 (---------------)  +   dyndns-web
+	0x0002d58b, // n0x0625 c0x0000 (---------------)  +   dyndns-wiki
+	0x0002e38b, // n0x0626 c0x0000 (---------------)  +   dyndns-work
+	0x0003d4d0, // n0x0627 c0x0000 (---------------)  +   elasticbeanstalk
+	0x000ee4cf, // n0x0628 c0x0000 (---------------)  +   est-a-la-maison
+	0x0002844f, // n0x0629 c0x0000 (---------------)  +   est-a-la-masion
+	0x0016c84d, // n0x062a c0x0000 (---------------)  +   est-le-patron
+	0x00119c10, // n0x062b c0x0000 (---------------)  +   est-mon-blogueur
+	0x0001b882, // n0x062c c0x0000 (---------------)  +   eu
+	0x00048f8b, // n0x062d c0x0000 (---------------)  +   firebaseapp
+	0x0004f748, // n0x062e c0x0000 (---------------)  +   flynnhub
+	0x0005c087, // n0x062f c0x0000 (---------------)  +   from-ak
+	0x0005ca47, // n0x0630 c0x0000 (---------------)  +   from-al
+	0x0005cc07, // n0x0631 c0x0000 (---------------)  +   from-ar
+	0x0005d0c7, // n0x0632 c0x0000 (---------------)  +   from-ca
+	0x0005e487, // n0x0633 c0x0000 (---------------)  +   from-ct
+	0x0005eb07, // n0x0634 c0x0000 (---------------)  +   from-dc
+	0x0005f407, // n0x0635 c0x0000 (---------------)  +   from-de
+	0x0005f6c7, // n0x0636 c0x0000 (---------------)  +   from-fl
+	0x000609c7, // n0x0637 c0x0000 (---------------)  +   from-ga
+	0x00060b87, // n0x0638 c0x0000 (---------------)  +   from-hi
+	0x00061647, // n0x0639 c0x0000 (---------------)  +   from-ia
+	0x00061807, // n0x063a c0x0000 (---------------)  +   from-id
+	0x000619c7, // n0x063b c0x0000 (---------------)  +   from-il
+	0x00061b87, // n0x063c c0x0000 (---------------)  +   from-in
+	0x00062187, // n0x063d c0x0000 (---------------)  +   from-ks
+	0x00062e87, // n0x063e c0x0000 (---------------)  +   from-ky
+	0x00064007, // n0x063f c0x0000 (---------------)  +   from-ma
+	0x000647c7, // n0x0640 c0x0000 (---------------)  +   from-md
+	0x00064d07, // n0x0641 c0x0000 (---------------)  +   from-mi
+	0x00065307, // n0x0642 c0x0000 (---------------)  +   from-mn
+	0x000654c7, // n0x0643 c0x0000 (---------------)  +   from-mo
+	0x00065a87, // n0x0644 c0x0000 (---------------)  +   from-ms
+	0x00066647, // n0x0645 c0x0000 (---------------)  +   from-mt
+	0x00066847, // n0x0646 c0x0000 (---------------)  +   from-nc
+	0x00066d47, // n0x0647 c0x0000 (---------------)  +   from-nd
+	0x00066f07, // n0x0648 c0x0000 (---------------)  +   from-ne
+	0x000670c7, // n0x0649 c0x0000 (---------------)  +   from-nh
+	0x000676c7, // n0x064a c0x0000 (---------------)  +   from-nj
+	0x00067c47, // n0x064b c0x0000 (---------------)  +   from-nm
+	0x000682c7, // n0x064c c0x0000 (---------------)  +   from-nv
+	0x000688c7, // n0x064d c0x0000 (---------------)  +   from-oh
+	0x00068f87, // n0x064e c0x0000 (---------------)  +   from-ok
+	0x00069307, // n0x064f c0x0000 (---------------)  +   from-or
+	0x000694c7, // n0x0650 c0x0000 (---------------)  +   from-pa
+	0x0006a187, // n0x0651 c0x0000 (---------------)  +   from-pr
+	0x0006b187, // n0x0652 c0x0000 (---------------)  +   from-ri
+	0x0006bf07, // n0x0653 c0x0000 (---------------)  +   from-sc
+	0x0006c487, // n0x0654 c0x0000 (---------------)  +   from-sd
+	0x0006c647, // n0x0655 c0x0000 (---------------)  +   from-tn
+	0x0006c807, // n0x0656 c0x0000 (---------------)  +   from-tx
+	0x0006cc47, // n0x0657 c0x0000 (---------------)  +   from-ut
+	0x0006cfc7, // n0x0658 c0x0000 (---------------)  +   from-va
+	0x0006d387, // n0x0659 c0x0000 (---------------)  +   from-vt
+	0x0006d9c7, // n0x065a c0x0000 (---------------)  +   from-wa
+	0x0006db87, // n0x065b c0x0000 (---------------)  +   from-wi
+	0x0006df07, // n0x065c c0x0000 (---------------)  +   from-wv
+	0x0006e747, // n0x065d c0x0000 (---------------)  +   from-wy
+	0x0000cd02, // n0x065e c0x0000 (---------------)  +   gb
+	0x000c75c7, // n0x065f c0x0000 (---------------)  +   getmyip
+	0x000bb191, // n0x0660 c0x0000 (---------------)  +   githubusercontent
+	0x0007cdca, // n0x0661 c0x0000 (---------------)  +   googleapis
+	0x0007b20a, // n0x0662 c0x0000 (---------------)  +   googlecode
+	0x00052ac6, // n0x0663 c0x0000 (---------------)  +   gotdns
+	0x00006b02, // n0x0664 c0x0000 (---------------)  +   gr
+	0x00056389, // n0x0665 c0x0000 (---------------)  +   herokuapp
+	0x00089a09, // n0x0666 c0x0000 (---------------)  +   herokussl
+	0x000301c2, // n0x0667 c0x0000 (---------------)  +   hk
+	0x000f45ca, // n0x0668 c0x0000 (---------------)  +   hobby-site
+	0x00099409, // n0x0669 c0x0000 (---------------)  +   homelinux
+	0x00099ec8, // n0x066a c0x0000 (---------------)  +   homeunix
+	0x000045c2, // n0x066b c0x0000 (---------------)  +   hu
+	0x001099c9, // n0x066c c0x0000 (---------------)  +   iamallama
+	0x0006a3ce, // n0x066d c0x0000 (---------------)  +   is-a-anarchist
+	0x000e280c, // n0x066e c0x0000 (---------------)  +   is-a-blogger
+	0x000c43cf, // n0x066f c0x0000 (---------------)  +   is-a-bookkeeper
+	0x0015be8e, // n0x0670 c0x0000 (---------------)  +   is-a-bulls-fan
+	0x0001918c, // n0x0671 c0x0000 (---------------)  +   is-a-caterer
+	0x0001f409, // n0x0672 c0x0000 (---------------)  +   is-a-chef
+	0x00023b51, // n0x0673 c0x0000 (---------------)  +   is-a-conservative
+	0x00025588, // n0x0674 c0x0000 (---------------)  +   is-a-cpa
+	0x00096052, // n0x0675 c0x0000 (---------------)  +   is-a-cubicle-slave
+	0x00179f8d, // n0x0676 c0x0000 (---------------)  +   is-a-democrat
+	0x0003f84d, // n0x0677 c0x0000 (---------------)  +   is-a-designer
+	0x00040bcb, // n0x0678 c0x0000 (---------------)  +   is-a-doctor
+	0x000447d5, // n0x0679 c0x0000 (---------------)  +   is-a-financialadvisor
+	0x00047789, // n0x067a c0x0000 (---------------)  +   is-a-geek
+	0x00052d8a, // n0x067b c0x0000 (---------------)  +   is-a-green
+	0x00061109, // n0x067c c0x0000 (---------------)  +   is-a-guru
+	0x000643d0, // n0x067d c0x0000 (---------------)  +   is-a-hard-worker
+	0x0006800b, // n0x067e c0x0000 (---------------)  +   is-a-hunter
+	0x0007730f, // n0x067f c0x0000 (---------------)  +   is-a-landscaper
+	0x00079b8b, // n0x0680 c0x0000 (---------------)  +   is-a-lawyer
+	0x0007a5cc, // n0x0681 c0x0000 (---------------)  +   is-a-liberal
+	0x00081cd0, // n0x0682 c0x0000 (---------------)  +   is-a-libertarian
+	0x0015658a, // n0x0683 c0x0000 (---------------)  +   is-a-llama
+	0x0009440d, // n0x0684 c0x0000 (---------------)  +   is-a-musician
+	0x0009800e, // n0x0685 c0x0000 (---------------)  +   is-a-nascarfan
+	0x0009f7ca, // n0x0686 c0x0000 (---------------)  +   is-a-nurse
+	0x000a01cc, // n0x0687 c0x0000 (---------------)  +   is-a-painter
+	0x000a7f94, // n0x0688 c0x0000 (---------------)  +   is-a-personaltrainer
+	0x000a7491, // n0x0689 c0x0000 (---------------)  +   is-a-photographer
+	0x000e8ecb, // n0x068a c0x0000 (---------------)  +   is-a-player
+	0x000d7d0f, // n0x068b c0x0000 (---------------)  +   is-a-republican
+	0x000e064d, // n0x068c c0x0000 (---------------)  +   is-a-rockstar
+	0x000adf0e, // n0x068d c0x0000 (---------------)  +   is-a-socialist
+	0x0013ac8c, // n0x068e c0x0000 (---------------)  +   is-a-student
+	0x000a344c, // n0x068f c0x0000 (---------------)  +   is-a-teacher
+	0x000a718b, // n0x0690 c0x0000 (---------------)  +   is-a-techie
+	0x000a91ce, // n0x0691 c0x0000 (---------------)  +   is-a-therapist
+	0x000ac710, // n0x0692 c0x0000 (---------------)  +   is-an-accountant
+	0x000ae94b, // n0x0693 c0x0000 (---------------)  +   is-an-actor
+	0x000afb8d, // n0x0694 c0x0000 (---------------)  +   is-an-actress
+	0x000e858f, // n0x0695 c0x0000 (---------------)  +   is-an-anarchist
+	0x000d750c, // n0x0696 c0x0000 (---------------)  +   is-an-artist
+	0x0010dace, // n0x0697 c0x0000 (---------------)  +   is-an-engineer
+	0x000b6c91, // n0x0698 c0x0000 (---------------)  +   is-an-entertainer
+	0x000d404c, // n0x0699 c0x0000 (---------------)  +   is-certified
+	0x000dd607, // n0x069a c0x0000 (---------------)  +   is-gone
+	0x000e47cd, // n0x069b c0x0000 (---------------)  +   is-into-anime
+	0x000d508c, // n0x069c c0x0000 (---------------)  +   is-into-cars
+	0x000de750, // n0x069d c0x0000 (---------------)  +   is-into-cartoons
+	0x000dffcd, // n0x069e c0x0000 (---------------)  +   is-into-games
+	0x000e3307, // n0x069f c0x0000 (---------------)  +   is-leet
+	0x0010c8d0, // n0x06a0 c0x0000 (---------------)  +   is-not-certified
+	0x00102608, // n0x06a1 c0x0000 (---------------)  +   is-slick
+	0x0010724b, // n0x06a2 c0x0000 (---------------)  +   is-uberleet
+	0x0012c78f, // n0x06a3 c0x0000 (---------------)  +   is-with-theband
+	0x00013e48, // n0x06a4 c0x0000 (---------------)  +   isa-geek
+	0x0007cfcd, // n0x06a5 c0x0000 (---------------)  +   isa-hockeynut
+	0x00140d50, // n0x06a6 c0x0000 (---------------)  +   issmarterthanyou
+	0x000a2b03, // n0x06a7 c0x0000 (---------------)  +   jpn
+	0x0000c642, // n0x06a8 c0x0000 (---------------)  +   kr
+	0x000222c9, // n0x06a9 c0x0000 (---------------)  +   likes-pie
+	0x0008ec8a, // n0x06aa c0x0000 (---------------)  +   likescandy
+	0x00073d83, // n0x06ab c0x0000 (---------------)  +   mex
+	0x0010bf08, // n0x06ac c0x0000 (---------------)  +   neat-url
+	0x00008287, // n0x06ad c0x0000 (---------------)  +   nfshost
+	0x00000cc2, // n0x06ae c0x0000 (---------------)  +   no
+	0x00113d8a, // n0x06af c0x0000 (---------------)  +   operaunite
+	0x0017e10f, // n0x06b0 c0x0000 (---------------)  +   outsystemscloud
+	0x0015f2d2, // n0x06b1 c0x0000 (---------------)  +   pagespeedmobilizer
+	0x001513c2, // n0x06b2 c0x0000 (---------------)  +   qc
+	0x000006c7, // n0x06b3 c0x0000 (---------------)  +   rhcloud
+	0x00000982, // n0x06b4 c0x0000 (---------------)  +   ro
+	0x00002f82, // n0x06b5 c0x0000 (---------------)  +   ru
+	0x00003a82, // n0x06b6 c0x0000 (---------------)  +   sa
+	0x0005f9d0, // n0x06b7 c0x0000 (---------------)  +   saves-the-whales
+	0x00004982, // n0x06b8 c0x0000 (---------------)  +   se
+	0x00141246, // n0x06b9 c0x0000 (---------------)  +   selfip
+	0x0008e20e, // n0x06ba c0x0000 (---------------)  +   sells-for-less
+	0x0009cc8b, // n0x06bb c0x0000 (---------------)  +   sells-for-u
+	0x0000be88, // n0x06bc c0x0000 (---------------)  +   servebbs
+	0x00118cca, // n0x06bd c0x0000 (---------------)  +   simple-url
+	0x000d91cd, // n0x06be c0x0000 (---------------)  +   space-to-rent
+	0x0016730c, // n0x06bf c0x0000 (---------------)  +   teaches-yoga
+	0x00000542, // n0x06c0 c0x0000 (---------------)  +   uk
+	0x000073c2, // n0x06c1 c0x0000 (---------------)  +   us
+	0x00004282, // n0x06c2 c0x0000 (---------------)  +   uy
+	0x0007ccca, // n0x06c3 c0x0000 (---------------)  +   withgoogle
+	0x0009e1ce, // n0x06c4 c0x0000 (---------------)  +   writesthisblog
+	0x000dbb08, // n0x06c5 c0x0000 (---------------)  +   yolasite
+	0x000028c2, // n0x06c6 c0x0000 (---------------)  +   za
+	0x0f4347c7, // n0x06c7 c0x003d (n0x06de-n0x06e7)  +   compute
+	0x0f8347c9, // n0x06c8 c0x003e (n0x06e7-n0x06e9)  +   compute-1
+	0x00012d43, // n0x06c9 c0x0000 (---------------)  +   elb
+	0x00007102, // n0x06ca c0x0000 (---------------)  +   s3
+	0x00146091, // n0x06cb c0x0000 (---------------)  +   s3-ap-northeast-1
+	0x001232d1, // n0x06cc c0x0000 (---------------)  +   s3-ap-southeast-1
+	0x00135851, // n0x06cd c0x0000 (---------------)  +   s3-ap-southeast-2
+	0x000fd00c, // n0x06ce c0x0000 (---------------)  +   s3-eu-west-1
+	0x00101b55, // n0x06cf c0x0000 (---------------)  +   s3-fips-us-gov-west-1
+	0x0011030c, // n0x06d0 c0x0000 (---------------)  +   s3-sa-east-1
+	0x00111f50, // n0x06d1 c0x0000 (---------------)  +   s3-us-gov-west-1
+	0x00112e8c, // n0x06d2 c0x0000 (---------------)  +   s3-us-west-1
+	0x0011a8cc, // n0x06d3 c0x0000 (---------------)  +   s3-us-west-2
+	0x0014d6d9, // n0x06d4 c0x0000 (---------------)  +   s3-website-ap-northeast-1
+	0x00170659, // n0x06d5 c0x0000 (---------------)  +   s3-website-ap-southeast-1
+	0x00176f59, // n0x06d6 c0x0000 (---------------)  +   s3-website-ap-southeast-2
+	0x0017d314, // n0x06d7 c0x0000 (---------------)  +   s3-website-eu-west-1
+	0x00185994, // n0x06d8 c0x0000 (---------------)  +   s3-website-sa-east-1
+	0x00007114, // n0x06d9 c0x0000 (---------------)  +   s3-website-us-east-1
+	0x00009758, // n0x06da c0x0000 (---------------)  +   s3-website-us-gov-west-1
+	0x0000b694, // n0x06db c0x0000 (---------------)  +   s3-website-us-west-1
+	0x0000c054, // n0x06dc c0x0000 (---------------)  +   s3-website-us-west-2
+	0x000073c9, // n0x06dd c0x0000 (---------------)  +   us-east-1
+	0x0014614e, // n0x06de c0x0000 (---------------)  +   ap-northeast-1
+	0x0012338e, // n0x06df c0x0000 (---------------)  +   ap-southeast-1
+	0x0013590e, // n0x06e0 c0x0000 (---------------)  +   ap-southeast-2
+	0x0001b88c, // n0x06e1 c0x0000 (---------------)  +   eu-central-1
+	0x000fd0c9, // n0x06e2 c0x0000 (---------------)  +   eu-west-1
+	0x001103c9, // n0x06e3 c0x0000 (---------------)  +   sa-east-1
+	0x00009a0d, // n0x06e4 c0x0000 (---------------)  +   us-gov-west-1
+	0x0000b949, // n0x06e5 c0x0000 (---------------)  +   us-west-1
+	0x0000c309, // n0x06e6 c0x0000 (---------------)  +   us-west-2
+	0x001617c3, // n0x06e7 c0x0000 (---------------)  +   z-1
+	0x0012eb83, // n0x06e8 c0x0000 (---------------)  +   z-2
+	0x00200b82, // n0x06e9 c0x0000 (---------------)  + I ac
+	0x00200882, // n0x06ea c0x0000 (---------------)  + I co
+	0x00205742, // n0x06eb c0x0000 (---------------)  + I ed
+	0x00206f02, // n0x06ec c0x0000 (---------------)  + I fi
+	0x00209ac2, // n0x06ed c0x0000 (---------------)  + I go
+	0x00200d02, // n0x06ee c0x0000 (---------------)  + I or
+	0x00203a82, // n0x06ef c0x0000 (---------------)  + I sa
+	0x00232dc3, // n0x06f0 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x06f1 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x06f2 c0x0000 (---------------)  + I gov
+	0x00206e83, // n0x06f3 c0x0000 (---------------)  + I inf
+	0x00218643, // n0x06f4 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x06f5 c0x0000 (---------------)  + I org
+	0x0009e448, // n0x06f6 c0x0000 (---------------)  +   blogspot
+	0x00232dc3, // n0x06f7 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x06f8 c0x0000 (---------------)  + I edu
+	0x00218643, // n0x06f9 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x06fa c0x0000 (---------------)  + I org
+	0x00009343, // n0x06fb c0x0000 (---------------)  +   ath
+	0x00209ac3, // n0x06fc c0x0000 (---------------)  + I gov
+	0x0009e448, // n0x06fd c0x0000 (---------------)  +   blogspot
+	0x0009e448, // n0x06fe c0x0000 (---------------)  +   blogspot
+	0x00032dc3, // n0x06ff c0x0000 (---------------)  +   com
+	0x00173f0f, // n0x0700 c0x0000 (---------------)  +   fuettertdasnetz
+	0x0012cc8a, // n0x0701 c0x0000 (---------------)  +   isteingeek
+	0x000ae1c7, // n0x0702 c0x0000 (---------------)  +   istmein
+	0x0003ad0a, // n0x0703 c0x0000 (---------------)  +   lebtimnetz
+	0x0000948a, // n0x0704 c0x0000 (---------------)  +   leitungsen
+	0x000f5c4d, // n0x0705 c0x0000 (---------------)  +   traeumtgerade
+	0x0009e448, // n0x0706 c0x0000 (---------------)  +   blogspot
+	0x00232dc3, // n0x0707 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0708 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0709 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x070a c0x0000 (---------------)  + I net
+	0x0024d043, // n0x070b c0x0000 (---------------)  + I org
+	0x00208d43, // n0x070c c0x0000 (---------------)  + I art
+	0x00232dc3, // n0x070d c0x0000 (---------------)  + I com
+	0x0021e083, // n0x070e c0x0000 (---------------)  + I edu
+	0x003704c3, // n0x070f c0x0000 (---------------)  + I gob
+	0x00209ac3, // n0x0710 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x0711 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x0712 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0713 c0x0000 (---------------)  + I org
+	0x002d3a83, // n0x0714 c0x0000 (---------------)  + I sld
+	0x002071c3, // n0x0715 c0x0000 (---------------)  + I web
+	0x00208d43, // n0x0716 c0x0000 (---------------)  + I art
+	0x00278344, // n0x0717 c0x0000 (---------------)  + I asso
+	0x00232dc3, // n0x0718 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0719 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x071a c0x0000 (---------------)  + I gov
+	0x00218643, // n0x071b c0x0000 (---------------)  + I net
+	0x0024d043, // n0x071c c0x0000 (---------------)  + I org
+	0x002369c3, // n0x071d c0x0000 (---------------)  + I pol
+	0x00232dc3, // n0x071e c0x0000 (---------------)  + I com
+	0x0021e083, // n0x071f c0x0000 (---------------)  + I edu
+	0x00206f03, // n0x0720 c0x0000 (---------------)  + I fin
+	0x003704c3, // n0x0721 c0x0000 (---------------)  + I gob
+	0x00209ac3, // n0x0722 c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x0723 c0x0000 (---------------)  + I info
+	0x0036e803, // n0x0724 c0x0000 (---------------)  + I k12
+	0x00210e83, // n0x0725 c0x0000 (---------------)  + I med
+	0x00240443, // n0x0726 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x0727 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0728 c0x0000 (---------------)  + I org
+	0x002cfc43, // n0x0729 c0x0000 (---------------)  + I pro
+	0x00233b03, // n0x072a c0x0000 (---------------)  + I aip
+	0x00232dc3, // n0x072b c0x0000 (---------------)  + I com
+	0x0021e083, // n0x072c c0x0000 (---------------)  + I edu
+	0x00287a03, // n0x072d c0x0000 (---------------)  + I fie
+	0x00209ac3, // n0x072e c0x0000 (---------------)  + I gov
+	0x0027a703, // n0x072f c0x0000 (---------------)  + I lib
+	0x00210e83, // n0x0730 c0x0000 (---------------)  + I med
+	0x0024d043, // n0x0731 c0x0000 (---------------)  + I org
+	0x0022e843, // n0x0732 c0x0000 (---------------)  + I pri
+	0x00382984, // n0x0733 c0x0000 (---------------)  + I riik
+	0x00232dc3, // n0x0734 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0735 c0x0000 (---------------)  + I edu
+	0x00299f83, // n0x0736 c0x0000 (---------------)  + I eun
+	0x00209ac3, // n0x0737 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x0738 c0x0000 (---------------)  + I mil
+	0x00267944, // n0x0739 c0x0000 (---------------)  + I name
+	0x00218643, // n0x073a c0x0000 (---------------)  + I net
+	0x0024d043, // n0x073b c0x0000 (---------------)  + I org
+	0x00220143, // n0x073c c0x0000 (---------------)  + I sci
+	0x13a32dc3, // n0x073d c0x004e (n0x0742-n0x0743)  + I com
+	0x0021e083, // n0x073e c0x0000 (---------------)  + I edu
+	0x003704c3, // n0x073f c0x0000 (---------------)  + I gob
+	0x002104c3, // n0x0740 c0x0000 (---------------)  + I nom
+	0x0024d043, // n0x0741 c0x0000 (---------------)  + I org
+	0x0009e448, // n0x0742 c0x0000 (---------------)  +   blogspot
+	0x00202183, // n0x0743 c0x0000 (---------------)  + I biz
+	0x00232dc3, // n0x0744 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0745 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0746 c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x0747 c0x0000 (---------------)  + I info
+	0x00267944, // n0x0748 c0x0000 (---------------)  + I name
+	0x0024d043, // n0x0749 c0x0000 (---------------)  + I org
+	0x00322285, // n0x074a c0x0000 (---------------)  + I aland
+	0x0009e448, // n0x074b c0x0000 (---------------)  +   blogspot
+	0x00023ac3, // n0x074c c0x0000 (---------------)  +   iki
+	0x00366c48, // n0x074d c0x0000 (---------------)  + I aeroport
+	0x00332a87, // n0x074e c0x0000 (---------------)  + I assedic
+	0x00278344, // n0x074f c0x0000 (---------------)  + I asso
+	0x0035f846, // n0x0750 c0x0000 (---------------)  + I avocat
+	0x00364ec6, // n0x0751 c0x0000 (---------------)  + I avoues
+	0x0009e448, // n0x0752 c0x0000 (---------------)  +   blogspot
+	0x00262983, // n0x0753 c0x0000 (---------------)  + I cci
+	0x002edec9, // n0x0754 c0x0000 (---------------)  + I chambagri
+	0x00265e15, // n0x0755 c0x0000 (---------------)  + I chirurgiens-dentistes
+	0x00232dc3, // n0x0756 c0x0000 (---------------)  + I com
+	0x00319812, // n0x0757 c0x0000 (---------------)  + I experts-comptables
+	0x003195cf, // n0x0758 c0x0000 (---------------)  + I geometre-expert
+	0x00252544, // n0x0759 c0x0000 (---------------)  + I gouv
+	0x002bdb85, // n0x075a c0x0000 (---------------)  + I greta
+	0x002ab310, // n0x075b c0x0000 (---------------)  + I huissier-justice
+	0x002e1b47, // n0x075c c0x0000 (---------------)  + I medecin
+	0x002104c3, // n0x075d c0x0000 (---------------)  + I nom
+	0x00283208, // n0x075e c0x0000 (---------------)  + I notaires
+	0x002c55ca, // n0x075f c0x0000 (---------------)  + I pharmacien
+	0x002167c4, // n0x0760 c0x0000 (---------------)  + I port
+	0x002cf303, // n0x0761 c0x0000 (---------------)  + I prd
+	0x0022ad46, // n0x0762 c0x0000 (---------------)  + I presse
+	0x002032c2, // n0x0763 c0x0000 (---------------)  + I tm
+	0x002ff6cb, // n0x0764 c0x0000 (---------------)  + I veterinaire
+	0x00232dc3, // n0x0765 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0766 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0767 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x0768 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x0769 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x076a c0x0000 (---------------)  + I org
+	0x002d35c3, // n0x076b c0x0000 (---------------)  + I pvt
+	0x00200882, // n0x076c c0x0000 (---------------)  + I co
+	0x00218643, // n0x076d c0x0000 (---------------)  + I net
+	0x0024d043, // n0x076e c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x076f c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0770 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0771 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x0772 c0x0000 (---------------)  + I mil
+	0x0024d043, // n0x0773 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x0774 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0775 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0776 c0x0000 (---------------)  + I gov
+	0x00220e43, // n0x0777 c0x0000 (---------------)  + I ltd
+	0x00226fc3, // n0x0778 c0x0000 (---------------)  + I mod
+	0x0024d043, // n0x0779 c0x0000 (---------------)  + I org
+	0x00200b82, // n0x077a c0x0000 (---------------)  + I ac
+	0x00232dc3, // n0x077b c0x0000 (---------------)  + I com
+	0x0021e083, // n0x077c c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x077d c0x0000 (---------------)  + I gov
+	0x00218643, // n0x077e c0x0000 (---------------)  + I net
+	0x0024d043, // n0x077f c0x0000 (---------------)  + I org
+	0x00278344, // n0x0780 c0x0000 (---------------)  + I asso
+	0x00232dc3, // n0x0781 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0782 c0x0000 (---------------)  + I edu
+	0x00277f84, // n0x0783 c0x0000 (---------------)  + I mobi
+	0x00218643, // n0x0784 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0785 c0x0000 (---------------)  + I org
+	0x0009e448, // n0x0786 c0x0000 (---------------)  +   blogspot
+	0x00232dc3, // n0x0787 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0788 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0789 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x078a c0x0000 (---------------)  + I net
+	0x0024d043, // n0x078b c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x078c c0x0000 (---------------)  + I com
+	0x0021e083, // n0x078d c0x0000 (---------------)  + I edu
+	0x003704c3, // n0x078e c0x0000 (---------------)  + I gob
+	0x002202c3, // n0x078f c0x0000 (---------------)  + I ind
+	0x00240443, // n0x0790 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x0791 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0792 c0x0000 (---------------)  + I org
+	0x00200882, // n0x0793 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x0794 c0x0000 (---------------)  + I com
+	0x00218643, // n0x0795 c0x0000 (---------------)  + I net
+	0x0009e448, // n0x0796 c0x0000 (---------------)  +   blogspot
+	0x00232dc3, // n0x0797 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x0798 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x0799 c0x0000 (---------------)  + I gov
+	0x00309c83, // n0x079a c0x0000 (---------------)  + I idv
+	0x000746c3, // n0x079b c0x0000 (---------------)  +   inc
+	0x00020e43, // n0x079c c0x0000 (---------------)  +   ltd
+	0x00218643, // n0x079d c0x0000 (---------------)  + I net
+	0x0024d043, // n0x079e c0x0000 (---------------)  + I org
+	0x002f66ca, // n0x079f c0x0000 (---------------)  + I xn--55qx5d
+	0x0030e909, // n0x07a0 c0x0000 (---------------)  + I xn--ciqpn
+	0x0031fd0b, // n0x07a1 c0x0000 (---------------)  + I xn--gmq050i
+	0x0032030a, // n0x07a2 c0x0000 (---------------)  + I xn--gmqw5a
+	0x00326e4a, // n0x07a3 c0x0000 (---------------)  + I xn--io0a7i
+	0x00333c4b, // n0x07a4 c0x0000 (---------------)  + I xn--lcvr32d
+	0x0034048a, // n0x07a5 c0x0000 (---------------)  + I xn--mk0axi
+	0x0034808a, // n0x07a6 c0x0000 (---------------)  + I xn--mxtq1m
+	0x0034cf0a, // n0x07a7 c0x0000 (---------------)  + I xn--od0alg
+	0x0034d18b, // n0x07a8 c0x0000 (---------------)  + I xn--od0aq3b
+	0x00370f89, // n0x07a9 c0x0000 (---------------)  + I xn--tn0ag
+	0x00372b4a, // n0x07aa c0x0000 (---------------)  + I xn--uc0atv
+	0x0037300b, // n0x07ab c0x0000 (---------------)  + I xn--uc0ay4a
+	0x0037c0cb, // n0x07ac c0x0000 (---------------)  + I xn--wcvs22d
+	0x003844ca, // n0x07ad c0x0000 (---------------)  + I xn--zf0avx
+	0x00232dc3, // n0x07ae c0x0000 (---------------)  + I com
+	0x0021e083, // n0x07af c0x0000 (---------------)  + I edu
+	0x003704c3, // n0x07b0 c0x0000 (---------------)  + I gob
+	0x00240443, // n0x07b1 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x07b2 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x07b3 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x07b4 c0x0000 (---------------)  + I com
+	0x0025c084, // n0x07b5 c0x0000 (---------------)  + I from
+	0x002021c2, // n0x07b6 c0x0000 (---------------)  + I iz
+	0x00267944, // n0x07b7 c0x0000 (---------------)  + I name
+	0x002fb4c5, // n0x07b8 c0x0000 (---------------)  + I adult
+	0x00208d43, // n0x07b9 c0x0000 (---------------)  + I art
+	0x00278344, // n0x07ba c0x0000 (---------------)  + I asso
+	0x00232dc3, // n0x07bb c0x0000 (---------------)  + I com
+	0x0023a884, // n0x07bc c0x0000 (---------------)  + I coop
+	0x0021e083, // n0x07bd c0x0000 (---------------)  + I edu
+	0x0024a304, // n0x07be c0x0000 (---------------)  + I firm
+	0x00252544, // n0x07bf c0x0000 (---------------)  + I gouv
+	0x00208a44, // n0x07c0 c0x0000 (---------------)  + I info
+	0x00210e83, // n0x07c1 c0x0000 (---------------)  + I med
+	0x00218643, // n0x07c2 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x07c3 c0x0000 (---------------)  + I org
+	0x002a80c5, // n0x07c4 c0x0000 (---------------)  + I perso
+	0x002369c3, // n0x07c5 c0x0000 (---------------)  + I pol
+	0x002cfc43, // n0x07c6 c0x0000 (---------------)  + I pro
+	0x0027f043, // n0x07c7 c0x0000 (---------------)  + I rel
+	0x0022e644, // n0x07c8 c0x0000 (---------------)  + I shop
+	0x003678c4, // n0x07c9 c0x0000 (---------------)  + I 2000
+	0x00263c05, // n0x07ca c0x0000 (---------------)  + I agrar
+	0x0009e448, // n0x07cb c0x0000 (---------------)  +   blogspot
+	0x002f0bc4, // n0x07cc c0x0000 (---------------)  + I bolt
+	0x0023b546, // n0x07cd c0x0000 (---------------)  + I casino
+	0x003242c4, // n0x07ce c0x0000 (---------------)  + I city
+	0x00200882, // n0x07cf c0x0000 (---------------)  + I co
+	0x00245947, // n0x07d0 c0x0000 (---------------)  + I erotica
+	0x002a3cc7, // n0x07d1 c0x0000 (---------------)  + I erotika
+	0x00247d84, // n0x07d2 c0x0000 (---------------)  + I film
+	0x00255645, // n0x07d3 c0x0000 (---------------)  + I forum
+	0x002e01c5, // n0x07d4 c0x0000 (---------------)  + I games
+	0x0029d805, // n0x07d5 c0x0000 (---------------)  + I hotel
+	0x00208a44, // n0x07d6 c0x0000 (---------------)  + I info
+	0x002b6888, // n0x07d7 c0x0000 (---------------)  + I ingatlan
+	0x003817c6, // n0x07d8 c0x0000 (---------------)  + I jogasz
+	0x002c9f88, // n0x07d9 c0x0000 (---------------)  + I konyvelo
+	0x002cc885, // n0x07da c0x0000 (---------------)  + I lakas
+	0x0021e585, // n0x07db c0x0000 (---------------)  + I media
+	0x00234584, // n0x07dc c0x0000 (---------------)  + I news
+	0x0024d043, // n0x07dd c0x0000 (---------------)  + I org
+	0x002cfac4, // n0x07de c0x0000 (---------------)  + I priv
+	0x00332386, // n0x07df c0x0000 (---------------)  + I reklam
+	0x0022ae43, // n0x07e0 c0x0000 (---------------)  + I sex
+	0x0022e644, // n0x07e1 c0x0000 (---------------)  + I shop
+	0x0028f2c5, // n0x07e2 c0x0000 (---------------)  + I sport
+	0x00234404, // n0x07e3 c0x0000 (---------------)  + I suli
+	0x00201304, // n0x07e4 c0x0000 (---------------)  + I szex
+	0x002032c2, // n0x07e5 c0x0000 (---------------)  + I tm
+	0x0025e606, // n0x07e6 c0x0000 (---------------)  + I tozsde
+	0x0035c4c6, // n0x07e7 c0x0000 (---------------)  + I utazas
+	0x002ebe05, // n0x07e8 c0x0000 (---------------)  + I video
+	0x00200b82, // n0x07e9 c0x0000 (---------------)  + I ac
+	0x00202183, // n0x07ea c0x0000 (---------------)  + I biz
+	0x00200882, // n0x07eb c0x0000 (---------------)  + I co
+	0x00238ec4, // n0x07ec c0x0000 (---------------)  + I desa
+	0x00209ac2, // n0x07ed c0x0000 (---------------)  + I go
+	0x00240443, // n0x07ee c0x0000 (---------------)  + I mil
+	0x00224782, // n0x07ef c0x0000 (---------------)  + I my
+	0x00218643, // n0x07f0 c0x0000 (---------------)  + I net
+	0x00200d02, // n0x07f1 c0x0000 (---------------)  + I or
+	0x00251983, // n0x07f2 c0x0000 (---------------)  + I sch
+	0x002071c3, // n0x07f3 c0x0000 (---------------)  + I web
+	0x0009e448, // n0x07f4 c0x0000 (---------------)  +   blogspot
+	0x00209ac3, // n0x07f5 c0x0000 (---------------)  + I gov
+	0x18e00882, // n0x07f6 c0x0063 (n0x07f7-n0x07f8)  o I co
+	0x0009e448, // n0x07f7 c0x0000 (---------------)  +   blogspot
+	0x00200b82, // n0x07f8 c0x0000 (---------------)  + I ac
+	0x19600882, // n0x07f9 c0x0065 (n0x07ff-n0x0801)  + I co
+	0x00232dc3, // n0x07fa c0x0000 (---------------)  + I com
+	0x00218643, // n0x07fb c0x0000 (---------------)  + I net
+	0x0024d043, // n0x07fc c0x0000 (---------------)  + I org
+	0x0021cdc2, // n0x07fd c0x0000 (---------------)  + I tt
+	0x0028dc82, // n0x07fe c0x0000 (---------------)  + I tv
+	0x00220e43, // n0x07ff c0x0000 (---------------)  + I ltd
+	0x002cb543, // n0x0800 c0x0000 (---------------)  + I plc
+	0x00200b82, // n0x0801 c0x0000 (---------------)  + I ac
+	0x0009e448, // n0x0802 c0x0000 (---------------)  +   blogspot
+	0x00200882, // n0x0803 c0x0000 (---------------)  + I co
+	0x0021e083, // n0x0804 c0x0000 (---------------)  + I edu
+	0x0024a304, // n0x0805 c0x0000 (---------------)  + I firm
+	0x0020a0c3, // n0x0806 c0x0000 (---------------)  + I gen
+	0x00209ac3, // n0x0807 c0x0000 (---------------)  + I gov
+	0x002202c3, // n0x0808 c0x0000 (---------------)  + I ind
+	0x00240443, // n0x0809 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x080a c0x0000 (---------------)  + I net
+	0x00219583, // n0x080b c0x0000 (---------------)  + I nic
+	0x0024d043, // n0x080c c0x0000 (---------------)  + I org
+	0x00207083, // n0x080d c0x0000 (---------------)  + I res
+	0x00119193, // n0x080e c0x0000 (---------------)  +   barrel-of-knowledge
+	0x00121ad4, // n0x080f c0x0000 (---------------)  +   barrell-of-knowledge
+	0x0000dc06, // n0x0810 c0x0000 (---------------)  +   dyndns
+	0x000512c7, // n0x0811 c0x0000 (---------------)  +   for-our
+	0x0016d549, // n0x0812 c0x0000 (---------------)  +   groks-the
+	0x0017980a, // n0x0813 c0x0000 (---------------)  +   groks-this
+	0x0008124d, // n0x0814 c0x0000 (---------------)  +   here-for-more
+	0x00051c0a, // n0x0815 c0x0000 (---------------)  +   knowsitall
+	0x00141246, // n0x0816 c0x0000 (---------------)  +   selfip
+	0x0002c186, // n0x0817 c0x0000 (---------------)  +   webhop
+	0x0021b882, // n0x0818 c0x0000 (---------------)  + I eu
+	0x00232dc3, // n0x0819 c0x0000 (---------------)  + I com
+	0x000bb186, // n0x081a c0x0000 (---------------)  +   github
+	0x000926c3, // n0x081b c0x0000 (---------------)  +   nid
+	0x00232dc3, // n0x081c c0x0000 (---------------)  + I com
+	0x0021e083, // n0x081d c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x081e c0x0000 (---------------)  + I gov
+	0x00240443, // n0x081f c0x0000 (---------------)  + I mil
+	0x00218643, // n0x0820 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0821 c0x0000 (---------------)  + I org
+	0x00200b82, // n0x0822 c0x0000 (---------------)  + I ac
+	0x00200882, // n0x0823 c0x0000 (---------------)  + I co
+	0x00209ac3, // n0x0824 c0x0000 (---------------)  + I gov
+	0x00205942, // n0x0825 c0x0000 (---------------)  + I id
+	0x00218643, // n0x0826 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0827 c0x0000 (---------------)  + I org
+	0x00251983, // n0x0828 c0x0000 (---------------)  + I sch
+	0x0033b00f, // n0x0829 c0x0000 (---------------)  + I xn--mgba3a4f16a
+	0x0033b3ce, // n0x082a c0x0000 (---------------)  + I xn--mgba3a4fra
+	0x00232dc3, // n0x082b c0x0000 (---------------)  + I com
+	0x00045147, // n0x082c c0x0000 (---------------)  +   cupcake
+	0x0021e083, // n0x082d c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x082e c0x0000 (---------------)  + I gov
+	0x002188c3, // n0x082f c0x0000 (---------------)  + I int
+	0x00218643, // n0x0830 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x0831 c0x0000 (---------------)  + I org
+	0x0021e683, // n0x0832 c0x0000 (---------------)  + I abr
+	0x00377c07, // n0x0833 c0x0000 (---------------)  + I abruzzo
+	0x00202602, // n0x0834 c0x0000 (---------------)  + I ag
+	0x00307909, // n0x0835 c0x0000 (---------------)  + I agrigento
+	0x00200b02, // n0x0836 c0x0000 (---------------)  + I al
+	0x0025fccb, // n0x0837 c0x0000 (---------------)  + I alessandria
+	0x0029fdca, // n0x0838 c0x0000 (---------------)  + I alto-adige
+	0x002c8409, // n0x0839 c0x0000 (---------------)  + I altoadige
+	0x00202342, // n0x083a c0x0000 (---------------)  + I an
+	0x002375c6, // n0x083b c0x0000 (---------------)  + I ancona
+	0x0027b6d5, // n0x083c c0x0000 (---------------)  + I andria-barletta-trani
+	0x0025fe15, // n0x083d c0x0000 (---------------)  + I andria-trani-barletta
+	0x0027d413, // n0x083e c0x0000 (---------------)  + I andriabarlettatrani
+	0x00260393, // n0x083f c0x0000 (---------------)  + I andriatranibarletta
+	0x00207702, // n0x0840 c0x0000 (---------------)  + I ao
+	0x00209245, // n0x0841 c0x0000 (---------------)  + I aosta
+	0x00382fcc, // n0x0842 c0x0000 (---------------)  + I aosta-valley
+	0x002a5b0b, // n0x0843 c0x0000 (---------------)  + I aostavalley
+	0x00255445, // n0x0844 c0x0000 (---------------)  + I aoste
+	0x00200a42, // n0x0845 c0x0000 (---------------)  + I ap
+	0x0023be02, // n0x0846 c0x0000 (---------------)  + I aq
+	0x002c0f06, // n0x0847 c0x0000 (---------------)  + I aquila
+	0x002030c2, // n0x0848 c0x0000 (---------------)  + I ar
+	0x003650c6, // n0x0849 c0x0000 (---------------)  + I arezzo
+	0x0035940d, // n0x084a c0x0000 (---------------)  + I ascoli-piceno
+	0x002c7c0c, // n0x084b c0x0000 (---------------)  + I ascolipiceno
+	0x0023d544, // n0x084c c0x0000 (---------------)  + I asti
+	0x00201702, // n0x084d c0x0000 (---------------)  + I at
+	0x00201602, // n0x084e c0x0000 (---------------)  + I av
+	0x00290208, // n0x084f c0x0000 (---------------)  + I avellino
+	0x002076c2, // n0x0850 c0x0000 (---------------)  + I ba
+	0x0024f906, // n0x0851 c0x0000 (---------------)  + I balsan
+	0x00288e84, // n0x0852 c0x0000 (---------------)  + I bari
+	0x0027b895, // n0x0853 c0x0000 (---------------)  + I barletta-trani-andria
+	0x0027d593, // n0x0854 c0x0000 (---------------)  + I barlettatraniandria
+	0x00212c83, // n0x0855 c0x0000 (---------------)  + I bas
+	0x00343aca, // n0x0856 c0x0000 (---------------)  + I basilicata
+	0x00215a47, // n0x0857 c0x0000 (---------------)  + I belluno
+	0x00344ec9, // n0x0858 c0x0000 (---------------)  + I benevento
+	0x003498c7, // n0x0859 c0x0000 (---------------)  + I bergamo
+	0x00340002, // n0x085a c0x0000 (---------------)  + I bg
+	0x00200002, // n0x085b c0x0000 (---------------)  + I bi
+	0x00201c46, // n0x085c c0x0000 (---------------)  + I biella
+	0x0020cb02, // n0x085d c0x0000 (---------------)  + I bl
+	0x0009e448, // n0x085e c0x0000 (---------------)  +   blogspot
+	0x00212ac2, // n0x085f c0x0000 (---------------)  + I bn
+	0x00210042, // n0x0860 c0x0000 (---------------)  + I bo
+	0x003758c7, // n0x0861 c0x0000 (---------------)  + I bologna
+	0x00213b87, // n0x0862 c0x0000 (---------------)  + I bolzano
+	0x0021b5c5, // n0x0863 c0x0000 (---------------)  + I bozen
+	0x00207bc2, // n0x0864 c0x0000 (---------------)  + I br
+	0x00220087, // n0x0865 c0x0000 (---------------)  + I brescia
+	0x00220248, // n0x0866 c0x0000 (---------------)  + I brindisi
+	0x00207242, // n0x0867 c0x0000 (---------------)  + I bs
+	0x0023ad82, // n0x0868 c0x0000 (---------------)  + I bt
+	0x0022eac2, // n0x0869 c0x0000 (---------------)  + I bz
+	0x00214582, // n0x086a c0x0000 (---------------)  + I ca
+	0x0036e048, // n0x086b c0x0000 (---------------)  + I cagliari
+	0x00219603, // n0x086c c0x0000 (---------------)  + I cal
+	0x0021fc48, // n0x086d c0x0000 (---------------)  + I calabria
+	0x00384b4d, // n0x086e c0x0000 (---------------)  + I caltanissetta
+	0x00216403, // n0x086f c0x0000 (---------------)  + I cam
+	0x00309848, // n0x0870 c0x0000 (---------------)  + I campania
+	0x0023e18f, // n0x0871 c0x0000 (---------------)  + I campidano-medio
+	0x0023e54e, // n0x0872 c0x0000 (---------------)  + I campidanomedio
+	0x002781ca, // n0x0873 c0x0000 (---------------)  + I campobasso
+	0x002eeed1, // n0x0874 c0x0000 (---------------)  + I carbonia-iglesias
+	0x002ef350, // n0x0875 c0x0000 (---------------)  + I carboniaiglesias
+	0x002bf88d, // n0x0876 c0x0000 (---------------)  + I carrara-massa
+	0x002bfbcc, // n0x0877 c0x0000 (---------------)  + I carraramassa
+	0x00233987, // n0x0878 c0x0000 (---------------)  + I caserta
+	0x00343c47, // n0x0879 c0x0000 (---------------)  + I catania
+	0x0035f909, // n0x087a c0x0000 (---------------)  + I catanzaro
+	0x0023d642, // n0x087b c0x0000 (---------------)  + I cb
+	0x00200bc2, // n0x087c c0x0000 (---------------)  + I ce
+	0x0025318c, // n0x087d c0x0000 (---------------)  + I cesena-forli
+	0x0025348b, // n0x087e c0x0000 (---------------)  + I cesenaforli
+	0x00202ac2, // n0x087f c0x0000 (---------------)  + I ch
+	0x002a7346, // n0x0880 c0x0000 (---------------)  + I chieti
+	0x00220182, // n0x0881 c0x0000 (---------------)  + I ci
+	0x00200402, // n0x0882 c0x0000 (---------------)  + I cl
+	0x0022fe42, // n0x0883 c0x0000 (---------------)  + I cn
+	0x00200882, // n0x0884 c0x0000 (---------------)  + I co
+	0x00233284, // n0x0885 c0x0000 (---------------)  + I como
+	0x0023cf87, // n0x0886 c0x0000 (---------------)  + I cosenza
+	0x0020b542, // n0x0887 c0x0000 (---------------)  + I cr
+	0x0023fe07, // n0x0888 c0x0000 (---------------)  + I cremona
+	0x00242347, // n0x0889 c0x0000 (---------------)  + I crotone
+	0x0021a142, // n0x088a c0x0000 (---------------)  + I cs
+	0x0022a082, // n0x088b c0x0000 (---------------)  + I ct
+	0x00245005, // n0x088c c0x0000 (---------------)  + I cuneo
+	0x00202882, // n0x088d c0x0000 (---------------)  + I cz
+	0x00231b4e, // n0x088e c0x0000 (---------------)  + I dell-ogliastra
+	0x00242dcd, // n0x088f c0x0000 (---------------)  + I dellogliastra
+	0x0021e083, // n0x0890 c0x0000 (---------------)  + I edu
+	0x002416ce, // n0x0891 c0x0000 (---------------)  + I emilia-romagna
+	0x0026a94d, // n0x0892 c0x0000 (---------------)  + I emiliaromagna
+	0x002141c3, // n0x0893 c0x0000 (---------------)  + I emr
+	0x00202242, // n0x0894 c0x0000 (---------------)  + I en
+	0x00276004, // n0x0895 c0x0000 (---------------)  + I enna
+	0x0033a302, // n0x0896 c0x0000 (---------------)  + I fc
+	0x00223342, // n0x0897 c0x0000 (---------------)  + I fe
+	0x00353ac5, // n0x0898 c0x0000 (---------------)  + I fermo
+	0x00245687, // n0x0899 c0x0000 (---------------)  + I ferrara
+	0x002460c2, // n0x089a c0x0000 (---------------)  + I fg
+	0x00206f02, // n0x089b c0x0000 (---------------)  + I fi
+	0x00249907, // n0x089c c0x0000 (---------------)  + I firenze
+	0x0024de08, // n0x089d c0x0000 (---------------)  + I florence
+	0x00257f82, // n0x089e c0x0000 (---------------)  + I fm
+	0x00208ac6, // n0x089f c0x0000 (---------------)  + I foggia
+	0x0025300c, // n0x08a0 c0x0000 (---------------)  + I forli-cesena
+	0x0025334b, // n0x08a1 c0x0000 (---------------)  + I forlicesena
+	0x0022fc02, // n0x08a2 c0x0000 (---------------)  + I fr
+	0x0025890f, // n0x08a3 c0x0000 (---------------)  + I friuli-v-giulia
+	0x00258cd0, // n0x08a4 c0x0000 (---------------)  + I friuli-ve-giulia
+	0x002590cf, // n0x08a5 c0x0000 (---------------)  + I friuli-vegiulia
+	0x00259495, // n0x08a6 c0x0000 (---------------)  + I friuli-venezia-giulia
+	0x002599d4, // n0x08a7 c0x0000 (---------------)  + I friuli-veneziagiulia
+	0x00259ece, // n0x08a8 c0x0000 (---------------)  + I friuli-vgiulia
+	0x0025a24e, // n0x08a9 c0x0000 (---------------)  + I friuliv-giulia
+	0x0025a5cf, // n0x08aa c0x0000 (---------------)  + I friulive-giulia
+	0x0025a98e, // n0x08ab c0x0000 (---------------)  + I friulivegiulia
+	0x0025ad14, // n0x08ac c0x0000 (---------------)  + I friulivenezia-giulia
+	0x0025b213, // n0x08ad c0x0000 (---------------)  + I friuliveneziagiulia
+	0x0025b6cd, // n0x08ae c0x0000 (---------------)  + I friulivgiulia
+	0x0026e909, // n0x08af c0x0000 (---------------)  + I frosinone
+	0x002820c3, // n0x08b0 c0x0000 (---------------)  + I fvg
+	0x002029c2, // n0x08b1 c0x0000 (---------------)  + I ge
+	0x00285ac5, // n0x08b2 c0x0000 (---------------)  + I genoa
+	0x0020a0c6, // n0x08b3 c0x0000 (---------------)  + I genova
+	0x00209ac2, // n0x08b4 c0x0000 (---------------)  + I go
+	0x00258747, // n0x08b5 c0x0000 (---------------)  + I gorizia
+	0x00209ac3, // n0x08b6 c0x0000 (---------------)  + I gov
+	0x00206b02, // n0x08b7 c0x0000 (---------------)  + I gr
+	0x00231748, // n0x08b8 c0x0000 (---------------)  + I grosseto
+	0x002ef111, // n0x08b9 c0x0000 (---------------)  + I iglesias-carbonia
+	0x002ef550, // n0x08ba c0x0000 (---------------)  + I iglesiascarbonia
+	0x002051c2, // n0x08bb c0x0000 (---------------)  + I im
+	0x0020c707, // n0x08bc c0x0000 (---------------)  + I imperia
+	0x002066c2, // n0x08bd c0x0000 (---------------)  + I is
+	0x002558c7, // n0x08be c0x0000 (---------------)  + I isernia
+	0x0020c642, // n0x08bf c0x0000 (---------------)  + I kr
+	0x00365c49, // n0x08c0 c0x0000 (---------------)  + I la-spezia
+	0x002c0ec7, // n0x08c1 c0x0000 (---------------)  + I laquila
+	0x0034cd08, // n0x08c2 c0x0000 (---------------)  + I laspezia
+	0x0020b0c6, // n0x08c3 c0x0000 (---------------)  + I latina
+	0x002cb443, // n0x08c4 c0x0000 (---------------)  + I laz
+	0x00341c05, // n0x08c5 c0x0000 (---------------)  + I lazio
+	0x0021e302, // n0x08c6 c0x0000 (---------------)  + I lc
+	0x00202042, // n0x08c7 c0x0000 (---------------)  + I le
+	0x00202045, // n0x08c8 c0x0000 (---------------)  + I lecce
+	0x0022dd05, // n0x08c9 c0x0000 (---------------)  + I lecco
+	0x00206682, // n0x08ca c0x0000 (---------------)  + I li
+	0x00216903, // n0x08cb c0x0000 (---------------)  + I lig
+	0x002536c7, // n0x08cc c0x0000 (---------------)  + I liguria
+	0x00376a87, // n0x08cd c0x0000 (---------------)  + I livorno
+	0x00200782, // n0x08ce c0x0000 (---------------)  + I lo
+	0x002ca104, // n0x08cf c0x0000 (---------------)  + I lodi
+	0x00210a03, // n0x08d0 c0x0000 (---------------)  + I lom
+	0x002b5a09, // n0x08d1 c0x0000 (---------------)  + I lombardia
+	0x00210a08, // n0x08d2 c0x0000 (---------------)  + I lombardy
+	0x0021a082, // n0x08d3 c0x0000 (---------------)  + I lt
+	0x00208042, // n0x08d4 c0x0000 (---------------)  + I lu
+	0x0022c3c7, // n0x08d5 c0x0000 (---------------)  + I lucania
+	0x0023b945, // n0x08d6 c0x0000 (---------------)  + I lucca
+	0x00309348, // n0x08d7 c0x0000 (---------------)  + I macerata
+	0x00225c87, // n0x08d8 c0x0000 (---------------)  + I mantova
+	0x00204483, // n0x08d9 c0x0000 (---------------)  + I mar
+	0x0024c886, // n0x08da c0x0000 (---------------)  + I marche
+	0x002bf70d, // n0x08db c0x0000 (---------------)  + I massa-carrara
+	0x002bfa8c, // n0x08dc c0x0000 (---------------)  + I massacarrara
+	0x002b8d46, // n0x08dd c0x0000 (---------------)  + I matera
+	0x00207b82, // n0x08de c0x0000 (---------------)  + I mb
+	0x0020f0c2, // n0x08df c0x0000 (---------------)  + I mc
+	0x00204342, // n0x08e0 c0x0000 (---------------)  + I me
+	0x0023e00f, // n0x08e1 c0x0000 (---------------)  + I medio-campidano
+	0x0023e40e, // n0x08e2 c0x0000 (---------------)  + I mediocampidano
+	0x00299947, // n0x08e3 c0x0000 (---------------)  + I messina
+	0x00200f42, // n0x08e4 c0x0000 (---------------)  + I mi
+	0x00331245, // n0x08e5 c0x0000 (---------------)  + I milan
+	0x00331246, // n0x08e6 c0x0000 (---------------)  + I milano
+	0x0022c7c2, // n0x08e7 c0x0000 (---------------)  + I mn
+	0x00205202, // n0x08e8 c0x0000 (---------------)  + I mo
+	0x00282b86, // n0x08e9 c0x0000 (---------------)  + I modena
+	0x002b3e43, // n0x08ea c0x0000 (---------------)  + I mol
+	0x002b8ec6, // n0x08eb c0x0000 (---------------)  + I molise
+	0x002b70c5, // n0x08ec c0x0000 (---------------)  + I monza
+	0x002b70cd, // n0x08ed c0x0000 (---------------)  + I monza-brianza
+	0x002b7695, // n0x08ee c0x0000 (---------------)  + I monza-e-della-brianza
+	0x002b7c4c, // n0x08ef c0x0000 (---------------)  + I monzabrianza
+	0x002b7f4d, // n0x08f0 c0x0000 (---------------)  + I monzaebrianza
+	0x002b8292, // n0x08f1 c0x0000 (---------------)  + I monzaedellabrianza
+	0x0020e602, // n0x08f2 c0x0000 (---------------)  + I ms
+	0x00266782, // n0x08f3 c0x0000 (---------------)  + I mt
+	0x002015c2, // n0x08f4 c0x0000 (---------------)  + I na
+	0x0026d5c6, // n0x08f5 c0x0000 (---------------)  + I naples
+	0x002e26c6, // n0x08f6 c0x0000 (---------------)  + I napoli
+	0x00200cc2, // n0x08f7 c0x0000 (---------------)  + I no
+	0x0020a146, // n0x08f8 c0x0000 (---------------)  + I novara
+	0x0020fd82, // n0x08f9 c0x0000 (---------------)  + I nu
+	0x0037bbc5, // n0x08fa c0x0000 (---------------)  + I nuoro
+	0x00204f42, // n0x08fb c0x0000 (---------------)  + I og
+	0x00231c89, // n0x08fc c0x0000 (---------------)  + I ogliastra
+	0x00239f4c, // n0x08fd c0x0000 (---------------)  + I olbia-tempio
+	0x0023a28b, // n0x08fe c0x0000 (---------------)  + I olbiatempio
+	0x00200d02, // n0x08ff c0x0000 (---------------)  + I or
+	0x0024e248, // n0x0900 c0x0000 (---------------)  + I oristano
+	0x00201902, // n0x0901 c0x0000 (---------------)  + I ot
+	0x00200ac2, // n0x0902 c0x0000 (---------------)  + I pa
+	0x00209006, // n0x0903 c0x0000 (---------------)  + I padova
+	0x0033c945, // n0x0904 c0x0000 (---------------)  + I padua
+	0x0022b647, // n0x0905 c0x0000 (---------------)  + I palermo
+	0x00279585, // n0x0906 c0x0000 (---------------)  + I parma
+	0x002c5485, // n0x0907 c0x0000 (---------------)  + I pavia
+	0x0021c6c2, // n0x0908 c0x0000 (---------------)  + I pc
+	0x0022c302, // n0x0909 c0x0000 (---------------)  + I pd
+	0x0020c782, // n0x090a c0x0000 (---------------)  + I pe
+	0x00277607, // n0x090b c0x0000 (---------------)  + I perugia
+	0x0022a24d, // n0x090c c0x0000 (---------------)  + I pesaro-urbino
+	0x0022a5cc, // n0x090d c0x0000 (---------------)  + I pesarourbino
+	0x0022f787, // n0x090e c0x0000 (---------------)  + I pescara
+	0x002a6f42, // n0x090f c0x0000 (---------------)  + I pg
+	0x00218302, // n0x0910 c0x0000 (---------------)  + I pi
+	0x00243808, // n0x0911 c0x0000 (---------------)  + I piacenza
+	0x00222448, // n0x0912 c0x0000 (---------------)  + I piedmont
+	0x002c8c08, // n0x0913 c0x0000 (---------------)  + I piemonte
+	0x0027cf84, // n0x0914 c0x0000 (---------------)  + I pisa
+	0x002a9447, // n0x0915 c0x0000 (---------------)  + I pistoia
+	0x002cc583, // n0x0916 c0x0000 (---------------)  + I pmn
+	0x002a2b42, // n0x0917 c0x0000 (---------------)  + I pn
+	0x002167c2, // n0x0918 c0x0000 (---------------)  + I po
+	0x002cdd09, // n0x0919 c0x0000 (---------------)  + I pordenone
+	0x00249287, // n0x091a c0x0000 (---------------)  + I potenza
+	0x0022ad42, // n0x091b c0x0000 (---------------)  + I pr
+	0x00337145, // n0x091c c0x0000 (---------------)  + I prato
+	0x0029ab02, // n0x091d c0x0000 (---------------)  + I pt
+	0x00234882, // n0x091e c0x0000 (---------------)  + I pu
+	0x00268e03, // n0x091f c0x0000 (---------------)  + I pug
+	0x00268e06, // n0x0920 c0x0000 (---------------)  + I puglia
+	0x002d35c2, // n0x0921 c0x0000 (---------------)  + I pv
+	0x002d39c2, // n0x0922 c0x0000 (---------------)  + I pz
+	0x00201082, // n0x0923 c0x0000 (---------------)  + I ra
+	0x00378446, // n0x0924 c0x0000 (---------------)  + I ragusa
+	0x00275f47, // n0x0925 c0x0000 (---------------)  + I ravenna
+	0x00229f02, // n0x0926 c0x0000 (---------------)  + I rc
+	0x00207082, // n0x0927 c0x0000 (---------------)  + I re
+	0x00230ecf, // n0x0928 c0x0000 (---------------)  + I reggio-calabria
+	0x0024150d, // n0x0929 c0x0000 (---------------)  + I reggio-emilia
+	0x0021face, // n0x092a c0x0000 (---------------)  + I reggiocalabria
+	0x0026a7cc, // n0x092b c0x0000 (---------------)  + I reggioemilia
+	0x00204042, // n0x092c c0x0000 (---------------)  + I rg
+	0x00200d42, // n0x092d c0x0000 (---------------)  + I ri
+	0x00229385, // n0x092e c0x0000 (---------------)  + I rieti
+	0x003860c6, // n0x092f c0x0000 (---------------)  + I rimini
+	0x00212642, // n0x0930 c0x0000 (---------------)  + I rm
+	0x002065c2, // n0x0931 c0x0000 (---------------)  + I rn
+	0x00200982, // n0x0932 c0x0000 (---------------)  + I ro
+	0x00225c04, // n0x0933 c0x0000 (---------------)  + I roma
+	0x002e1ac4, // n0x0934 c0x0000 (---------------)  + I rome
+	0x002e4b86, // n0x0935 c0x0000 (---------------)  + I rovigo
+	0x00203a82, // n0x0936 c0x0000 (---------------)  + I sa
+	0x0027e2c7, // n0x0937 c0x0000 (---------------)  + I salerno
+	0x0022a2c3, // n0x0938 c0x0000 (---------------)  + I sar
+	0x00248748, // n0x0939 c0x0000 (---------------)  + I sardegna
+	0x0024a108, // n0x093a c0x0000 (---------------)  + I sardinia
+	0x00252c07, // n0x093b c0x0000 (---------------)  + I sassari
+	0x00262306, // n0x093c c0x0000 (---------------)  + I savona
+	0x002058c2, // n0x093d c0x0000 (---------------)  + I si
+	0x002203c3, // n0x093e c0x0000 (---------------)  + I sic
+	0x002203c7, // n0x093f c0x0000 (---------------)  + I sicilia
+	0x002636c6, // n0x0940 c0x0000 (---------------)  + I sicily
+	0x00285245, // n0x0941 c0x0000 (---------------)  + I siena
+	0x002d0688, // n0x0942 c0x0000 (---------------)  + I siracusa
+	0x00209f02, // n0x0943 c0x0000 (---------------)  + I so
+	0x002ee7c7, // n0x0944 c0x0000 (---------------)  + I sondrio
+	0x0022e802, // n0x0945 c0x0000 (---------------)  + I sp
+	0x002dc282, // n0x0946 c0x0000 (---------------)  + I sr
+	0x00203a42, // n0x0947 c0x0000 (---------------)  + I ss
+	0x002b2989, // n0x0948 c0x0000 (---------------)  + I suedtirol
+	0x00201e82, // n0x0949 c0x0000 (---------------)  + I sv
+	0x00202542, // n0x094a c0x0000 (---------------)  + I ta
+	0x0022fa03, // n0x094b c0x0000 (---------------)  + I taa
+	0x00344c87, // n0x094c c0x0000 (---------------)  + I taranto
+	0x00207302, // n0x094d c0x0000 (---------------)  + I te
+	0x0023a0cc, // n0x094e c0x0000 (---------------)  + I tempio-olbia
+	0x0023a3cb, // n0x094f c0x0000 (---------------)  + I tempioolbia
+	0x002b8dc6, // n0x0950 c0x0000 (---------------)  + I teramo
+	0x002d8e05, // n0x0951 c0x0000 (---------------)  + I terni
+	0x00201942, // n0x0952 c0x0000 (---------------)  + I tn
+	0x00200302, // n0x0953 c0x0000 (---------------)  + I to
+	0x002a6206, // n0x0954 c0x0000 (---------------)  + I torino
+	0x00223503, // n0x0955 c0x0000 (---------------)  + I tos
+	0x00343e47, // n0x0956 c0x0000 (---------------)  + I toscana
+	0x0020df02, // n0x0957 c0x0000 (---------------)  + I tp
+	0x00200942, // n0x0958 c0x0000 (---------------)  + I tr
+	0x0027b555, // n0x0959 c0x0000 (---------------)  + I trani-andria-barletta
+	0x0025ffd5, // n0x095a c0x0000 (---------------)  + I trani-barletta-andria
+	0x0027d2d3, // n0x095b c0x0000 (---------------)  + I traniandriabarletta
+	0x00260513, // n0x095c c0x0000 (---------------)  + I tranibarlettaandria
+	0x0028f3c7, // n0x095d c0x0000 (---------------)  + I trapani
+	0x0029e608, // n0x095e c0x0000 (---------------)  + I trentino
+	0x0029e610, // n0x095f c0x0000 (---------------)  + I trentino-a-adige
+	0x0029f0cf, // n0x0960 c0x0000 (---------------)  + I trentino-aadige
+	0x0029fb93, // n0x0961 c0x0000 (---------------)  + I trentino-alto-adige
+	0x002e3492, // n0x0962 c0x0000 (---------------)  + I trentino-altoadige
+	0x003074d0, // n0x0963 c0x0000 (---------------)  + I trentino-s-tirol
+	0x0032bf8f, // n0x0964 c0x0000 (---------------)  + I trentino-stirol
+	0x0032fdd2, // n0x0965 c0x0000 (---------------)  + I trentino-sud-tirol
+	0x002a13d1, // n0x0966 c0x0000 (---------------)  + I trentino-sudtirol
+	0x002aa113, // n0x0967 c0x0000 (---------------)  + I trentino-sued-tirol
+	0x002b2752, // n0x0968 c0x0000 (---------------)  + I trentino-suedtirol
+	0x002bb58f, // n0x0969 c0x0000 (---------------)  + I trentinoa-adige
+	0x002c17ce, // n0x096a c0x0000 (---------------)  + I trentinoaadige
+	0x002c2592, // n0x096b c0x0000 (---------------)  + I trentinoalto-adige
+	0x002c8211, // n0x096c c0x0000 (---------------)  + I trentinoaltoadige
+	0x002d114f, // n0x096d c0x0000 (---------------)  + I trentinos-tirol
+	0x002d364e, // n0x096e c0x0000 (---------------)  + I trentinostirol
+	0x0031b2d1, // n0x096f c0x0000 (---------------)  + I trentinosud-tirol
+	0x002d5750, // n0x0970 c0x0000 (---------------)  + I trentinosudtirol
+	0x002de012, // n0x0971 c0x0000 (---------------)  + I trentinosued-tirol
+	0x002e1151, // n0x0972 c0x0000 (---------------)  + I trentinosuedtirol
+	0x002f10c6, // n0x0973 c0x0000 (---------------)  + I trento
+	0x0037a787, // n0x0974 c0x0000 (---------------)  + I treviso
+	0x00383747, // n0x0975 c0x0000 (---------------)  + I trieste
+	0x00201a82, // n0x0976 c0x0000 (---------------)  + I ts
+	0x002b4e85, // n0x0977 c0x0000 (---------------)  + I turin
+	0x002e4e47, // n0x0978 c0x0000 (---------------)  + I tuscany
+	0x0028dc82, // n0x0979 c0x0000 (---------------)  + I tv
+	0x00200802, // n0x097a c0x0000 (---------------)  + I ud
+	0x002c0045, // n0x097b c0x0000 (---------------)  + I udine
+	0x00221483, // n0x097c c0x0000 (---------------)  + I umb
+	0x00263e86, // n0x097d c0x0000 (---------------)  + I umbria
+	0x0022a40d, // n0x097e c0x0000 (---------------)  + I urbino-pesaro
+	0x0022a74c, // n0x097f c0x0000 (---------------)  + I urbinopesaro
+	0x00203242, // n0x0980 c0x0000 (---------------)  + I va
+	0x00382e4b, // n0x0981 c0x0000 (---------------)  + I val-d-aosta
+	0x002a59ca, // n0x0982 c0x0000 (---------------)  + I val-daosta
+	0x0020910a, // n0x0983 c0x0000 (---------------)  + I vald-aosta
+	0x00225dc9, // n0x0984 c0x0000 (---------------)  + I valdaosta
+	0x002cd68b, // n0x0985 c0x0000 (---------------)  + I valle-aosta
+	0x002e578d, // n0x0986 c0x0000 (---------------)  + I valle-d-aosta
+	0x0036618c, // n0x0987 c0x0000 (---------------)  + I valle-daosta
+	0x0023da0a, // n0x0988 c0x0000 (---------------)  + I valleaosta
+	0x0024078c, // n0x0989 c0x0000 (---------------)  + I valled-aosta
+	0x0024640b, // n0x098a c0x0000 (---------------)  + I valledaosta
+	0x0025528c, // n0x098b c0x0000 (---------------)  + I vallee-aoste
+	0x0026730b, // n0x098c c0x0000 (---------------)  + I valleeaoste
+	0x0026e083, // n0x098d c0x0000 (---------------)  + I vao
+	0x002dc306, // n0x098e c0x0000 (---------------)  + I varese
+	0x002e5f42, // n0x098f c0x0000 (---------------)  + I vb
+	0x002e6442, // n0x0990 c0x0000 (---------------)  + I vc
+	0x0023b883, // n0x0991 c0x0000 (---------------)  + I vda
+	0x00203f02, // n0x0992 c0x0000 (---------------)  + I ve
+	0x00203f03, // n0x0993 c0x0000 (---------------)  + I ven
+	0x002185c6, // n0x0994 c0x0000 (---------------)  + I veneto
+	0x00259647, // n0x0995 c0x0000 (---------------)  + I venezia
+	0x00268586, // n0x0996 c0x0000 (---------------)  + I venice
+	0x00227e88, // n0x0997 c0x0000 (---------------)  + I verbania
+	0x0028eb08, // n0x0998 c0x0000 (---------------)  + I vercelli
+	0x002e7686, // n0x0999 c0x0000 (---------------)  + I verona
+	0x00201642, // n0x099a c0x0000 (---------------)  + I vi
+	0x002eb7cd, // n0x099b c0x0000 (---------------)  + I vibo-valentia
+	0x002ebb0c, // n0x099c c0x0000 (---------------)  + I vibovalentia
+	0x00252607, // n0x099d c0x0000 (---------------)  + I vicenza
+	0x002f0a87, // n0x099e c0x0000 (---------------)  + I viterbo
+	0x00226342, // n0x099f c0x0000 (---------------)  + I vr
+	0x0023ccc2, // n0x09a0 c0x0000 (---------------)  + I vs
+	0x002170c2, // n0x09a1 c0x0000 (---------------)  + I vt
+	0x00203ec2, // n0x09a2 c0x0000 (---------------)  + I vv
+	0x00200882, // n0x09a3 c0x0000 (---------------)  + I co
+	0x00218643, // n0x09a4 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x09a5 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x09a6 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x09a7 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x09a8 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x09a9 c0x0000 (---------------)  + I mil
+	0x00267944, // n0x09aa c0x0000 (---------------)  + I name
+	0x00218643, // n0x09ab c0x0000 (---------------)  + I net
+	0x0024d043, // n0x09ac c0x0000 (---------------)  + I org
+	0x00251983, // n0x09ad c0x0000 (---------------)  + I sch
+	0x00200b82, // n0x09ae c0x0000 (---------------)  + I ac
+	0x00202902, // n0x09af c0x0000 (---------------)  + I ad
+	0x1c665d85, // n0x09b0 c0x0071 (n0x0a1d-n0x0a51)  + I aichi
+	0x1ca12185, // n0x09b1 c0x0072 (n0x0a51-n0x0a6d)  + I akita
+	0x1ce6e0c6, // n0x09b2 c0x0073 (n0x0a6d-n0x0a83)  + I aomori
+	0x0009e448, // n0x09b3 c0x0000 (---------------)  +   blogspot
+	0x1d2a6985, // n0x09b4 c0x0074 (n0x0a83-n0x0abd)  + I chiba
+	0x00200882, // n0x09b5 c0x0000 (---------------)  + I co
+	0x00205742, // n0x09b6 c0x0000 (---------------)  + I ed
+	0x1d606d05, // n0x09b7 c0x0075 (n0x0abd-n0x0ad3)  + I ehime
+	0x1da77205, // n0x09b8 c0x0076 (n0x0ad3-n0x0ae2)  + I fukui
+	0x1de77a87, // n0x09b9 c0x0077 (n0x0ae2-n0x0b21)  + I fukuoka
+	0x1e279049, // n0x09ba c0x0078 (n0x0b21-n0x0b54)  + I fukushima
+	0x1e669a44, // n0x09bb c0x0079 (n0x0b54-n0x0b7a)  + I gifu
+	0x00209ac2, // n0x09bc c0x0000 (---------------)  + I go
+	0x00206b02, // n0x09bd c0x0000 (---------------)  + I gr
+	0x1ea4c7c5, // n0x09be c0x007a (n0x0b7a-n0x0b9e)  + I gunma
+	0x1ee8aa89, // n0x09bf c0x007b (n0x0b9e-n0x0bb7)  + I hiroshima
+	0x1f20d548, // n0x09c0 c0x007c (n0x0bb7-n0x0c45)  + I hokkaido
+	0x1f6a0045, // n0x09c1 c0x007d (n0x0c45-n0x0c73)  + I hyogo
+	0x1fb16ec7, // n0x09c2 c0x007e (n0x0c73-n0x0ca6)  + I ibaraki
+	0x1fe1a288, // n0x09c3 c0x007f (n0x0ca6-n0x0cb9)  + I ishikawa
+	0x2034f5c5, // n0x09c4 c0x0080 (n0x0cb9-n0x0cdb)  + I iwate
+	0x206038c6, // n0x09c5 c0x0081 (n0x0cdb-n0x0cea)  + I kagawa
+	0x20b60c89, // n0x09c6 c0x0082 (n0x0cea-n0x0cfe)  + I kagoshima
+	0x20ecc148, // n0x09c7 c0x0083 (n0x0cfe-n0x0d1c)  + I kanagawa
+	0x212ac548, // n0x09c8 c0x0084 (n0x0d1c-n0x0d1d)* o I kawasaki
+	0x2168b0ca, // n0x09c9 c0x0085 (n0x0d1d-n0x0d1e)* o I kitakyushu
+	0x21a6f144, // n0x09ca c0x0086 (n0x0d1e-n0x0d1f)* o I kobe
+	0x21ebecc5, // n0x09cb c0x0087 (n0x0d1f-n0x0d3e)  + I kochi
+	0x222bf488, // n0x09cc c0x0088 (n0x0d3e-n0x0d58)  + I kumamoto
+	0x22662fc5, // n0x09cd c0x0089 (n0x0d58-n0x0d77)  + I kyoto
+	0x00219682, // n0x09ce c0x0000 (---------------)  + I lg
+	0x22a01f83, // n0x09cf c0x008a (n0x0d77-n0x0d95)  + I mie
+	0x22e977c6, // n0x09d0 c0x008b (n0x0d95-n0x0db6)  + I miyagi
+	0x232475c8, // n0x09d1 c0x008c (n0x0db6-n0x0dd1)  + I miyazaki
+	0x2376fe86, // n0x09d2 c0x008d (n0x0dd1-n0x0e1c)  + I nagano
+	0x23a76088, // n0x09d3 c0x008e (n0x0e1c-n0x0e32)  + I nagasaki
+	0x23f7bf46, // n0x09d4 c0x008f (n0x0e32-n0x0e33)* o I nagoya
+	0x242e7784, // n0x09d5 c0x0090 (n0x0e33-n0x0e59)  + I nara
+	0x00209e82, // n0x09d6 c0x0000 (---------------)  + I ne
+	0x247589c7, // n0x09d7 c0x0091 (n0x0e59-n0x0e7b)  + I niigata
+	0x24aa2444, // n0x09d8 c0x0092 (n0x0e7b-n0x0e8e)  + I oita
+	0x24e71f47, // n0x09d9 c0x0093 (n0x0e8e-n0x0ea8)  + I okayama
+	0x252130c7, // n0x09da c0x0094 (n0x0ea8-n0x0ed2)  + I okinawa
+	0x00200d02, // n0x09db c0x0000 (---------------)  + I or
+	0x256905c5, // n0x09dc c0x0095 (n0x0ed2-n0x0f04)  + I osaka
+	0x25aaf744, // n0x09dd c0x0096 (n0x0f04-n0x0f1e)  + I saga
+	0x25f0c587, // n0x09de c0x0097 (n0x0f1e-n0x0f63)  + I saitama
+	0x26243347, // n0x09df c0x0098 (n0x0f63-n0x0f64)* o I sapporo
+	0x2667af06, // n0x09e0 c0x0099 (n0x0f64-n0x0f65)* o I sendai
+	0x26a5c545, // n0x09e1 c0x009a (n0x0f65-n0x0f7c)  + I shiga
+	0x26e8ab87, // n0x09e2 c0x009b (n0x0f7c-n0x0f93)  + I shimane
+	0x272f07c8, // n0x09e3 c0x009c (n0x0f93-n0x0fb7)  + I shizuoka
+	0x2774d487, // n0x09e4 c0x009d (n0x0fb7-n0x0fd6)  + I tochigi
+	0x27ac69c9, // n0x09e5 c0x009e (n0x0fd6-n0x0fe7)  + I tokushima
+	0x27ebc8c5, // n0x09e6 c0x009f (n0x0fe7-n0x1020)  + I tokyo
+	0x282f11c7, // n0x09e7 c0x00a0 (n0x1020-n0x102d)  + I tottori
+	0x286873c6, // n0x09e8 c0x00a1 (n0x102d-n0x1045)  + I toyama
+	0x28b0a988, // n0x09e9 c0x00a2 (n0x1045-n0x1062)  + I wakayama
+	0x0024534d, // n0x09ea c0x0000 (---------------)  + I xn--0trq7p7nn
+	0x00255c89, // n0x09eb c0x0000 (---------------)  + I xn--1ctwo
+	0x0026bc4b, // n0x09ec c0x0000 (---------------)  + I xn--1lqs03n
+	0x0026c98b, // n0x09ed c0x0000 (---------------)  + I xn--1lqs71d
+	0x0029960b, // n0x09ee c0x0000 (---------------)  + I xn--2m4a15e
+	0x002b9c0b, // n0x09ef c0x0000 (---------------)  + I xn--32vp30h
+	0x002f490b, // n0x09f0 c0x0000 (---------------)  + I xn--4it168d
+	0x002f4bcb, // n0x09f1 c0x0000 (---------------)  + I xn--4it797k
+	0x002f5549, // n0x09f2 c0x0000 (---------------)  + I xn--4pvxs
+	0x002f694b, // n0x09f3 c0x0000 (---------------)  + I xn--5js045d
+	0x002f6c0b, // n0x09f4 c0x0000 (---------------)  + I xn--5rtp49c
+	0x002f714b, // n0x09f5 c0x0000 (---------------)  + I xn--5rtq34k
+	0x002f754a, // n0x09f6 c0x0000 (---------------)  + I xn--6btw5a
+	0x002f7a8a, // n0x09f7 c0x0000 (---------------)  + I xn--6orx2r
+	0x002f808c, // n0x09f8 c0x0000 (---------------)  + I xn--7t0a264c
+	0x002fe0cb, // n0x09f9 c0x0000 (---------------)  + I xn--8ltr62k
+	0x002fe50a, // n0x09fa c0x0000 (---------------)  + I xn--8pvr4u
+	0x0030d64a, // n0x09fb c0x0000 (---------------)  + I xn--c3s14m
+	0x0031350e, // n0x09fc c0x0000 (---------------)  + I xn--d5qv7z876c
+	0x0031474e, // n0x09fd c0x0000 (---------------)  + I xn--djrs72d6uy
+	0x00314aca, // n0x09fe c0x0000 (---------------)  + I xn--djty4k
+	0x0031640a, // n0x09ff c0x0000 (---------------)  + I xn--efvn9s
+	0x0031768b, // n0x0a00 c0x0000 (---------------)  + I xn--ehqz56n
+	0x0031794b, // n0x0a01 c0x0000 (---------------)  + I xn--elqq16h
+	0x0031838b, // n0x0a02 c0x0000 (---------------)  + I xn--f6qx53a
+	0x003285cb, // n0x0a03 c0x0000 (---------------)  + I xn--k7yn95e
+	0x00328bca, // n0x0a04 c0x0000 (---------------)  + I xn--kbrq7o
+	0x0032988b, // n0x0a05 c0x0000 (---------------)  + I xn--klt787d
+	0x00329b4a, // n0x0a06 c0x0000 (---------------)  + I xn--kltp7d
+	0x00329dca, // n0x0a07 c0x0000 (---------------)  + I xn--kltx9a
+	0x0032a04a, // n0x0a08 c0x0000 (---------------)  + I xn--klty5x
+	0x00340acb, // n0x0a09 c0x0000 (---------------)  + I xn--mkru45i
+	0x00348a4b, // n0x0a0a c0x0000 (---------------)  + I xn--nit225k
+	0x0034ac0e, // n0x0a0b c0x0000 (---------------)  + I xn--ntso0iqx3a
+	0x0034af8b, // n0x0a0c c0x0000 (---------------)  + I xn--ntsq17g
+	0x00350acb, // n0x0a0d c0x0000 (---------------)  + I xn--pssu33l
+	0x00351b4b, // n0x0a0e c0x0000 (---------------)  + I xn--qqqt11m
+	0x0035468a, // n0x0a0f c0x0000 (---------------)  + I xn--rht27z
+	0x00354909, // n0x0a10 c0x0000 (---------------)  + I xn--rht3d
+	0x00354b4a, // n0x0a11 c0x0000 (---------------)  + I xn--rht61e
+	0x0035600a, // n0x0a12 c0x0000 (---------------)  + I xn--rny31h
+	0x0037180b, // n0x0a13 c0x0000 (---------------)  + I xn--tor131o
+	0x003732cb, // n0x0a14 c0x0000 (---------------)  + I xn--uist22h
+	0x0037380a, // n0x0a15 c0x0000 (---------------)  + I xn--uisz3g
+	0x0037454b, // n0x0a16 c0x0000 (---------------)  + I xn--uuwu58a
+	0x0037904b, // n0x0a17 c0x0000 (---------------)  + I xn--vgu402c
+	0x00383f0b, // n0x0a18 c0x0000 (---------------)  + I xn--zbx025d
+	0x28e797c8, // n0x0a19 c0x00a3 (n0x1062-n0x1084)  + I yamagata
+	0x292809c9, // n0x0a1a c0x00a4 (n0x1084-n0x1094)  + I yamaguchi
+	0x29779ac9, // n0x0a1b c0x00a5 (n0x1094-n0x10b0)  + I yamanashi
+	0x29b45bc8, // n0x0a1c c0x00a6 (n0x10b0-n0x10b1)* o I yokohama
+	0x002a8745, // n0x0a1d c0x0000 (---------------)  + I aisai
+	0x00203583, // n0x0a1e c0x0000 (---------------)  + I ama
+	0x00202d84, // n0x0a1f c0x0000 (---------------)  + I anjo
+	0x00375ac5, // n0x0a20 c0x0000 (---------------)  + I asuke
+	0x00269786, // n0x0a21 c0x0000 (---------------)  + I chiryu
+	0x00276ac5, // n0x0a22 c0x0000 (---------------)  + I chita
+	0x002802c4, // n0x0a23 c0x0000 (---------------)  + I fuso
+	0x00258648, // n0x0a24 c0x0000 (---------------)  + I gamagori
+	0x00354285, // n0x0a25 c0x0000 (---------------)  + I handa
+	0x00289044, // n0x0a26 c0x0000 (---------------)  + I hazu
+	0x0024f407, // n0x0a27 c0x0000 (---------------)  + I hekinan
+	0x00292c0a, // n0x0a28 c0x0000 (---------------)  + I higashiura
+	0x0030b0ca, // n0x0a29 c0x0000 (---------------)  + I ichinomiya
+	0x002d8a47, // n0x0a2a c0x0000 (---------------)  + I inazawa
+	0x00211b47, // n0x0a2b c0x0000 (---------------)  + I inuyama
+	0x002e3187, // n0x0a2c c0x0000 (---------------)  + I isshiki
+	0x0026b507, // n0x0a2d c0x0000 (---------------)  + I iwakura
+	0x0021c585, // n0x0a2e c0x0000 (---------------)  + I kanie
+	0x0036d0c6, // n0x0a2f c0x0000 (---------------)  + I kariya
+	0x002b6b07, // n0x0a30 c0x0000 (---------------)  + I kasugai
+	0x00239784, // n0x0a31 c0x0000 (---------------)  + I kira
+	0x002f3186, // n0x0a32 c0x0000 (---------------)  + I kiyosu
+	0x003027c6, // n0x0a33 c0x0000 (---------------)  + I komaki
+	0x002ca805, // n0x0a34 c0x0000 (---------------)  + I konan
+	0x0029bcc4, // n0x0a35 c0x0000 (---------------)  + I kota
+	0x002985c6, // n0x0a36 c0x0000 (---------------)  + I mihama
+	0x00291c87, // n0x0a37 c0x0000 (---------------)  + I miyoshi
+	0x00221a46, // n0x0a38 c0x0000 (---------------)  + I nishio
+	0x00227147, // n0x0a39 c0x0000 (---------------)  + I nisshin
+	0x002078c3, // n0x0a3a c0x0000 (---------------)  + I obu
+	0x0024ea46, // n0x0a3b c0x0000 (---------------)  + I oguchi
+	0x00236005, // n0x0a3c c0x0000 (---------------)  + I oharu
+	0x00277b87, // n0x0a3d c0x0000 (---------------)  + I okazaki
+	0x002b1d4a, // n0x0a3e c0x0000 (---------------)  + I owariasahi
+	0x00231844, // n0x0a3f c0x0000 (---------------)  + I seto
+	0x00219888, // n0x0a40 c0x0000 (---------------)  + I shikatsu
+	0x002c5849, // n0x0a41 c0x0000 (---------------)  + I shinshiro
+	0x002e9807, // n0x0a42 c0x0000 (---------------)  + I shitara
+	0x00203006, // n0x0a43 c0x0000 (---------------)  + I tahara
+	0x00322e48, // n0x0a44 c0x0000 (---------------)  + I takahama
+	0x00213449, // n0x0a45 c0x0000 (---------------)  + I tobishima
+	0x00295e44, // n0x0a46 c0x0000 (---------------)  + I toei
+	0x002186c4, // n0x0a47 c0x0000 (---------------)  + I togo
+	0x002f1d45, // n0x0a48 c0x0000 (---------------)  + I tokai
+	0x002b3248, // n0x0a49 c0x0000 (---------------)  + I tokoname
+	0x002b4307, // n0x0a4a c0x0000 (---------------)  + I toyoake
+	0x002bc609, // n0x0a4b c0x0000 (---------------)  + I toyohashi
+	0x00327fc8, // n0x0a4c c0x0000 (---------------)  + I toyokawa
+	0x003245c6, // n0x0a4d c0x0000 (---------------)  + I toyone
+	0x00244606, // n0x0a4e c0x0000 (---------------)  + I toyota
+	0x0028ca08, // n0x0a4f c0x0000 (---------------)  + I tsushima
+	0x003332c6, // n0x0a50 c0x0000 (---------------)  + I yatomi
+	0x00212185, // n0x0a51 c0x0000 (---------------)  + I akita
+	0x0027afc6, // n0x0a52 c0x0000 (---------------)  + I daisen
+	0x00272348, // n0x0a53 c0x0000 (---------------)  + I fujisato
+	0x0021e486, // n0x0a54 c0x0000 (---------------)  + I gojome
+	0x00270f0b, // n0x0a55 c0x0000 (---------------)  + I hachirogata
+	0x00283e46, // n0x0a56 c0x0000 (---------------)  + I happou
+	0x0028df4d, // n0x0a57 c0x0000 (---------------)  + I higashinaruse
+	0x00206445, // n0x0a58 c0x0000 (---------------)  + I honjo
+	0x0029c3c6, // n0x0a59 c0x0000 (---------------)  + I honjyo
+	0x00202405, // n0x0a5a c0x0000 (---------------)  + I ikawa
+	0x0036a389, // n0x0a5b c0x0000 (---------------)  + I kamikoani
+	0x0036a247, // n0x0a5c c0x0000 (---------------)  + I kamioka
+	0x003310c8, // n0x0a5d c0x0000 (---------------)  + I katagami
+	0x00314146, // n0x0a5e c0x0000 (---------------)  + I kazuno
+	0x0028d389, // n0x0a5f c0x0000 (---------------)  + I kitaakita
+	0x002e1846, // n0x0a60 c0x0000 (---------------)  + I kosaka
+	0x002b1cc5, // n0x0a61 c0x0000 (---------------)  + I kyowa
+	0x002467c6, // n0x0a62 c0x0000 (---------------)  + I misato
+	0x002a5f86, // n0x0a63 c0x0000 (---------------)  + I mitane
+	0x002ba6c9, // n0x0a64 c0x0000 (---------------)  + I moriyoshi
+	0x00273706, // n0x0a65 c0x0000 (---------------)  + I nikaho
+	0x00257207, // n0x0a66 c0x0000 (---------------)  + I noshiro
+	0x00294f85, // n0x0a67 c0x0000 (---------------)  + I odate
+	0x00207743, // n0x0a68 c0x0000 (---------------)  + I oga
+	0x00271085, // n0x0a69 c0x0000 (---------------)  + I ogata
+	0x002bf347, // n0x0a6a c0x0000 (---------------)  + I semboku
+	0x002db006, // n0x0a6b c0x0000 (---------------)  + I yokote
+	0x00206349, // n0x0a6c c0x0000 (---------------)  + I yurihonjo
+	0x0026e0c6, // n0x0a6d c0x0000 (---------------)  + I aomori
+	0x00264206, // n0x0a6e c0x0000 (---------------)  + I gonohe
+	0x0024f249, // n0x0a6f c0x0000 (---------------)  + I hachinohe
+	0x0027a9c9, // n0x0a70 c0x0000 (---------------)  + I hashikami
+	0x00295907, // n0x0a71 c0x0000 (---------------)  + I hiranai
+	0x00344608, // n0x0a72 c0x0000 (---------------)  + I hirosaki
+	0x002e0449, // n0x0a73 c0x0000 (---------------)  + I itayanagi
+	0x00278908, // n0x0a74 c0x0000 (---------------)  + I kuroishi
+	0x003482c6, // n0x0a75 c0x0000 (---------------)  + I misawa
+	0x002c2e05, // n0x0a76 c0x0000 (---------------)  + I mutsu
+	0x0023d20a, // n0x0a77 c0x0000 (---------------)  + I nakadomari
+	0x00264286, // n0x0a78 c0x0000 (---------------)  + I noheji
+	0x002ec746, // n0x0a79 c0x0000 (---------------)  + I oirase
+	0x00292605, // n0x0a7a c0x0000 (---------------)  + I owani
+	0x00241b48, // n0x0a7b c0x0000 (---------------)  + I rokunohe
+	0x0035a387, // n0x0a7c c0x0000 (---------------)  + I sannohe
+	0x00379c4a, // n0x0a7d c0x0000 (---------------)  + I shichinohe
+	0x0024ac86, // n0x0a7e c0x0000 (---------------)  + I shingo
+	0x00305fc5, // n0x0a7f c0x0000 (---------------)  + I takko
+	0x002fd846, // n0x0a80 c0x0000 (---------------)  + I towada
+	0x0025de07, // n0x0a81 c0x0000 (---------------)  + I tsugaru
+	0x00202ec7, // n0x0a82 c0x0000 (---------------)  + I tsuruta
+	0x00305685, // n0x0a83 c0x0000 (---------------)  + I abiko
+	0x002b1e85, // n0x0a84 c0x0000 (---------------)  + I asahi
+	0x002bd846, // n0x0a85 c0x0000 (---------------)  + I chonan
+	0x002cb5c6, // n0x0a86 c0x0000 (---------------)  + I chosei
+	0x002dfb86, // n0x0a87 c0x0000 (---------------)  + I choshi
+	0x00347284, // n0x0a88 c0x0000 (---------------)  + I chuo
+	0x00279e49, // n0x0a89 c0x0000 (---------------)  + I funabashi
+	0x00281886, // n0x0a8a c0x0000 (---------------)  + I futtsu
+	0x00231f0a, // n0x0a8b c0x0000 (---------------)  + I hanamigawa
+	0x00287d08, // n0x0a8c c0x0000 (---------------)  + I ichihara
+	0x0034fec8, // n0x0a8d c0x0000 (---------------)  + I ichikawa
+	0x0030b0ca, // n0x0a8e c0x0000 (---------------)  + I ichinomiya
+	0x00369345, // n0x0a8f c0x0000 (---------------)  + I inzai
+	0x00291bc5, // n0x0a90 c0x0000 (---------------)  + I isumi
+	0x0020d808, // n0x0a91 c0x0000 (---------------)  + I kamagaya
+	0x002bea48, // n0x0a92 c0x0000 (---------------)  + I kamogawa
+	0x00375e87, // n0x0a93 c0x0000 (---------------)  + I kashiwa
+	0x00219046, // n0x0a94 c0x0000 (---------------)  + I katori
+	0x00304a08, // n0x0a95 c0x0000 (---------------)  + I katsuura
+	0x002fbf07, // n0x0a96 c0x0000 (---------------)  + I kimitsu
+	0x00277cc8, // n0x0a97 c0x0000 (---------------)  + I kisarazu
+	0x002a3306, // n0x0a98 c0x0000 (---------------)  + I kozaki
+	0x0027c108, // n0x0a99 c0x0000 (---------------)  + I kujukuri
+	0x00288b46, // n0x0a9a c0x0000 (---------------)  + I kyonan
+	0x002cca07, // n0x0a9b c0x0000 (---------------)  + I matsudo
+	0x00279a46, // n0x0a9c c0x0000 (---------------)  + I midori
+	0x002985c6, // n0x0a9d c0x0000 (---------------)  + I mihama
+	0x003333ca, // n0x0a9e c0x0000 (---------------)  + I minamiboso
+	0x00233306, // n0x0a9f c0x0000 (---------------)  + I mobara
+	0x002c2e09, // n0x0aa0 c0x0000 (---------------)  + I mutsuzawa
+	0x00364746, // n0x0aa1 c0x0000 (---------------)  + I nagara
+	0x002f97ca, // n0x0aa2 c0x0000 (---------------)  + I nagareyama
+	0x002e7789, // n0x0aa3 c0x0000 (---------------)  + I narashino
+	0x00306ec6, // n0x0aa4 c0x0000 (---------------)  + I narita
+	0x00238104, // n0x0aa5 c0x0000 (---------------)  + I noda
+	0x00285b8d, // n0x0aa6 c0x0000 (---------------)  + I oamishirasato
+	0x00280c47, // n0x0aa7 c0x0000 (---------------)  + I omigawa
+	0x003090c6, // n0x0aa8 c0x0000 (---------------)  + I onjuku
+	0x002ac405, // n0x0aa9 c0x0000 (---------------)  + I otaki
+	0x002e18c5, // n0x0aaa c0x0000 (---------------)  + I sakae
+	0x0020e0c6, // n0x0aab c0x0000 (---------------)  + I sakura
+	0x002ea189, // n0x0aac c0x0000 (---------------)  + I shimofusa
+	0x002d2a87, // n0x0aad c0x0000 (---------------)  + I shirako
+	0x00272f86, // n0x0aae c0x0000 (---------------)  + I shiroi
+	0x002e7d86, // n0x0aaf c0x0000 (---------------)  + I shisui
+	0x00383cc9, // n0x0ab0 c0x0000 (---------------)  + I sodegaura
+	0x00322bc4, // n0x0ab1 c0x0000 (---------------)  + I sosa
+	0x0024db04, // n0x0ab2 c0x0000 (---------------)  + I tako
+	0x002128c8, // n0x0ab3 c0x0000 (---------------)  + I tateyama
+	0x00273bc6, // n0x0ab4 c0x0000 (---------------)  + I togane
+	0x00294a08, // n0x0ab5 c0x0000 (---------------)  + I tohnosho
+	0x00246748, // n0x0ab6 c0x0000 (---------------)  + I tomisato
+	0x002122c7, // n0x0ab7 c0x0000 (---------------)  + I urayasu
+	0x002c3a49, // n0x0ab8 c0x0000 (---------------)  + I yachimata
+	0x00202a47, // n0x0ab9 c0x0000 (---------------)  + I yachiyo
+	0x002a684a, // n0x0aba c0x0000 (---------------)  + I yokaichiba
+	0x002d698f, // n0x0abb c0x0000 (---------------)  + I yokoshibahikari
+	0x0024b64a, // n0x0abc c0x0000 (---------------)  + I yotsukaido
+	0x00229185, // n0x0abd c0x0000 (---------------)  + I ainan
+	0x00272585, // n0x0abe c0x0000 (---------------)  + I honai
+	0x00218f05, // n0x0abf c0x0000 (---------------)  + I ikata
+	0x00288dc7, // n0x0ac0 c0x0000 (---------------)  + I imabari
+	0x00202b43, // n0x0ac1 c0x0000 (---------------)  + I iyo
+	0x00344808, // n0x0ac2 c0x0000 (---------------)  + I kamijima
+	0x0029b286, // n0x0ac3 c0x0000 (---------------)  + I kihoku
+	0x0029b389, // n0x0ac4 c0x0000 (---------------)  + I kumakogen
+	0x0037fe06, // n0x0ac5 c0x0000 (---------------)  + I masaki
+	0x002ba507, // n0x0ac6 c0x0000 (---------------)  + I matsuno
+	0x0028d149, // n0x0ac7 c0x0000 (---------------)  + I matsuyama
+	0x00330fc8, // n0x0ac8 c0x0000 (---------------)  + I namikata
+	0x0036a547, // n0x0ac9 c0x0000 (---------------)  + I niihama
+	0x00347343, // n0x0aca c0x0000 (---------------)  + I ozu
+	0x002a87c5, // n0x0acb c0x0000 (---------------)  + I saijo
+	0x002d68c5, // n0x0acc c0x0000 (---------------)  + I seiyo
+	0x00348e8b, // n0x0acd c0x0000 (---------------)  + I shikokuchuo
+	0x00263084, // n0x0ace c0x0000 (---------------)  + I tobe
+	0x0021dec4, // n0x0acf c0x0000 (---------------)  + I toon
+	0x00270b06, // n0x0ad0 c0x0000 (---------------)  + I uchiko
+	0x002c96c7, // n0x0ad1 c0x0000 (---------------)  + I uwajima
+	0x0035830a, // n0x0ad2 c0x0000 (---------------)  + I yawatahama
+	0x00216d87, // n0x0ad3 c0x0000 (---------------)  + I echizen
+	0x00295ec7, // n0x0ad4 c0x0000 (---------------)  + I eiheiji
+	0x00277205, // n0x0ad5 c0x0000 (---------------)  + I fukui
+	0x002056c5, // n0x0ad6 c0x0000 (---------------)  + I ikeda
+	0x0021d4c9, // n0x0ad7 c0x0000 (---------------)  + I katsuyama
+	0x002985c6, // n0x0ad8 c0x0000 (---------------)  + I mihama
+	0x00216c0d, // n0x0ad9 c0x0000 (---------------)  + I minamiechizen
+	0x00285e85, // n0x0ada c0x0000 (---------------)  + I obama
+	0x002903c3, // n0x0adb c0x0000 (---------------)  + I ohi
+	0x00210683, // n0x0adc c0x0000 (---------------)  + I ono
+	0x002336c5, // n0x0add c0x0000 (---------------)  + I sabae
+	0x00327d85, // n0x0ade c0x0000 (---------------)  + I sakai
+	0x00322e48, // n0x0adf c0x0000 (---------------)  + I takahama
+	0x00281947, // n0x0ae0 c0x0000 (---------------)  + I tsuruga
+	0x0024d886, // n0x0ae1 c0x0000 (---------------)  + I wakasa
+	0x00293506, // n0x0ae2 c0x0000 (---------------)  + I ashiya
+	0x0022d1c5, // n0x0ae3 c0x0000 (---------------)  + I buzen
+	0x0021e347, // n0x0ae4 c0x0000 (---------------)  + I chikugo
+	0x00211dc7, // n0x0ae5 c0x0000 (---------------)  + I chikuho
+	0x0036dbc7, // n0x0ae6 c0x0000 (---------------)  + I chikujo
+	0x002bed4a, // n0x0ae7 c0x0000 (---------------)  + I chikushino
+	0x0024eb08, // n0x0ae8 c0x0000 (---------------)  + I chikuzen
+	0x00347284, // n0x0ae9 c0x0000 (---------------)  + I chuo
+	0x00205987, // n0x0aea c0x0000 (---------------)  + I dazaifu
+	0x00276507, // n0x0aeb c0x0000 (---------------)  + I fukuchi
+	0x00317bc6, // n0x0aec c0x0000 (---------------)  + I hakata
+	0x00260cc7, // n0x0aed c0x0000 (---------------)  + I higashi
+	0x002c4a48, // n0x0aee c0x0000 (---------------)  + I hirokawa
+	0x003799c8, // n0x0aef c0x0000 (---------------)  + I hisayama
+	0x00258106, // n0x0af0 c0x0000 (---------------)  + I iizuka
+	0x0020f5c8, // n0x0af1 c0x0000 (---------------)  + I inatsuki
+	0x00273784, // n0x0af2 c0x0000 (---------------)  + I kaho
+	0x002b6b06, // n0x0af3 c0x0000 (---------------)  + I kasuga
+	0x002041c6, // n0x0af4 c0x0000 (---------------)  + I kasuya
+	0x003029c6, // n0x0af5 c0x0000 (---------------)  + I kawara
+	0x0030b346, // n0x0af6 c0x0000 (---------------)  + I keisen
+	0x00293a84, // n0x0af7 c0x0000 (---------------)  + I koga
+	0x0026b5c6, // n0x0af8 c0x0000 (---------------)  + I kurate
+	0x002aaa46, // n0x0af9 c0x0000 (---------------)  + I kurogi
+	0x0028c486, // n0x0afa c0x0000 (---------------)  + I kurume
+	0x00216c06, // n0x0afb c0x0000 (---------------)  + I minami
+	0x00210546, // n0x0afc c0x0000 (---------------)  + I miyako
+	0x0029b946, // n0x0afd c0x0000 (---------------)  + I miyama
+	0x0024d788, // n0x0afe c0x0000 (---------------)  + I miyawaka
+	0x002e6d08, // n0x0aff c0x0000 (---------------)  + I mizumaki
+	0x002c0408, // n0x0b00 c0x0000 (---------------)  + I munakata
+	0x00276cc8, // n0x0b01 c0x0000 (---------------)  + I nakagawa
+	0x0020d786, // n0x0b02 c0x0000 (---------------)  + I nakama
+	0x00215405, // n0x0b03 c0x0000 (---------------)  + I nishi
+	0x0027e406, // n0x0b04 c0x0000 (---------------)  + I nogata
+	0x002a00c5, // n0x0b05 c0x0000 (---------------)  + I ogori
+	0x00347047, // n0x0b06 c0x0000 (---------------)  + I okagaki
+	0x00230345, // n0x0b07 c0x0000 (---------------)  + I okawa
+	0x002130c3, // n0x0b08 c0x0000 (---------------)  + I oki
+	0x002087c5, // n0x0b09 c0x0000 (---------------)  + I omuta
+	0x0037c804, // n0x0b0a c0x0000 (---------------)  + I onga
+	0x00210685, // n0x0b0b c0x0000 (---------------)  + I onojo
+	0x00242043, // n0x0b0c c0x0000 (---------------)  + I oto
+	0x002ddc47, // n0x0b0d c0x0000 (---------------)  + I saigawa
+	0x0030d908, // n0x0b0e c0x0000 (---------------)  + I sasaguri
+	0x00227206, // n0x0b0f c0x0000 (---------------)  + I shingu
+	0x002c8f4d, // n0x0b10 c0x0000 (---------------)  + I shinyoshitomi
+	0x00272546, // n0x0b11 c0x0000 (---------------)  + I shonai
+	0x0028ba85, // n0x0b12 c0x0000 (---------------)  + I soeda
+	0x002aa343, // n0x0b13 c0x0000 (---------------)  + I sue
+	0x002a8589, // n0x0b14 c0x0000 (---------------)  + I tachiarai
+	0x002be046, // n0x0b15 c0x0000 (---------------)  + I tagawa
+	0x0020ed06, // n0x0b16 c0x0000 (---------------)  + I takata
+	0x002f4544, // n0x0b17 c0x0000 (---------------)  + I toho
+	0x0024b5c7, // n0x0b18 c0x0000 (---------------)  + I toyotsu
+	0x00239106, // n0x0b19 c0x0000 (---------------)  + I tsuiki
+	0x00306205, // n0x0b1a c0x0000 (---------------)  + I ukiha
+	0x00200f03, // n0x0b1b c0x0000 (---------------)  + I umi
+	0x0020bd44, // n0x0b1c c0x0000 (---------------)  + I usui
+	0x002766c6, // n0x0b1d c0x0000 (---------------)  + I yamada
+	0x002042c4, // n0x0b1e c0x0000 (---------------)  + I yame
+	0x002cef88, // n0x0b1f c0x0000 (---------------)  + I yanagawa
+	0x00204fc9, // n0x0b20 c0x0000 (---------------)  + I yukuhashi
+	0x002305c9, // n0x0b21 c0x0000 (---------------)  + I aizubange
+	0x0029480a, // n0x0b22 c0x0000 (---------------)  + I aizumisato
+	0x00286bcd, // n0x0b23 c0x0000 (---------------)  + I aizuwakamatsu
+	0x0024fd87, // n0x0b24 c0x0000 (---------------)  + I asakawa
+	0x00261e86, // n0x0b25 c0x0000 (---------------)  + I bandai
+	0x00218204, // n0x0b26 c0x0000 (---------------)  + I date
+	0x00279049, // n0x0b27 c0x0000 (---------------)  + I fukushima
+	0x0027fcc8, // n0x0b28 c0x0000 (---------------)  + I furudono
+	0x00280846, // n0x0b29 c0x0000 (---------------)  + I futaba
+	0x00251146, // n0x0b2a c0x0000 (---------------)  + I hanawa
+	0x00260cc7, // n0x0b2b c0x0000 (---------------)  + I higashi
+	0x002dd346, // n0x0b2c c0x0000 (---------------)  + I hirata
+	0x0021c286, // n0x0b2d c0x0000 (---------------)  + I hirono
+	0x00364146, // n0x0b2e c0x0000 (---------------)  + I iitate
+	0x0021314a, // n0x0b2f c0x0000 (---------------)  + I inawashiro
+	0x0021a288, // n0x0b30 c0x0000 (---------------)  + I ishikawa
+	0x00225485, // n0x0b31 c0x0000 (---------------)  + I iwaki
+	0x002395c9, // n0x0b32 c0x0000 (---------------)  + I izumizaki
+	0x002b4a8a, // n0x0b33 c0x0000 (---------------)  + I kagamiishi
+	0x0021a508, // n0x0b34 c0x0000 (---------------)  + I kaneyama
+	0x00291648, // n0x0b35 c0x0000 (---------------)  + I kawamata
+	0x0020ec88, // n0x0b36 c0x0000 (---------------)  + I kitakata
+	0x00299bcc, // n0x0b37 c0x0000 (---------------)  + I kitashiobara
+	0x00316805, // n0x0b38 c0x0000 (---------------)  + I koori
+	0x00293788, // n0x0b39 c0x0000 (---------------)  + I koriyama
+	0x00315146, // n0x0b3a c0x0000 (---------------)  + I kunimi
+	0x002eabc6, // n0x0b3b c0x0000 (---------------)  + I miharu
+	0x002b20c7, // n0x0b3c c0x0000 (---------------)  + I mishima
+	0x00216c85, // n0x0b3d c0x0000 (---------------)  + I namie
+	0x0027b145, // n0x0b3e c0x0000 (---------------)  + I nango
+	0x00230489, // n0x0b3f c0x0000 (---------------)  + I nishiaizu
+	0x00216f07, // n0x0b40 c0x0000 (---------------)  + I nishigo
+	0x0029b345, // n0x0b41 c0x0000 (---------------)  + I okuma
+	0x0021da87, // n0x0b42 c0x0000 (---------------)  + I omotego
+	0x00210683, // n0x0b43 c0x0000 (---------------)  + I ono
+	0x002b5145, // n0x0b44 c0x0000 (---------------)  + I otama
+	0x00229988, // n0x0b45 c0x0000 (---------------)  + I samegawa
+	0x002718c7, // n0x0b46 c0x0000 (---------------)  + I shimogo
+	0x00291509, // n0x0b47 c0x0000 (---------------)  + I shirakawa
+	0x002f5745, // n0x0b48 c0x0000 (---------------)  + I showa
+	0x002d4c04, // n0x0b49 c0x0000 (---------------)  + I soma
+	0x00296908, // n0x0b4a c0x0000 (---------------)  + I sukagawa
+	0x00384e07, // n0x0b4b c0x0000 (---------------)  + I taishin
+	0x0036a708, // n0x0b4c c0x0000 (---------------)  + I tamakawa
+	0x00202548, // n0x0b4d c0x0000 (---------------)  + I tanagura
+	0x00219dc5, // n0x0b4e c0x0000 (---------------)  + I tenei
+	0x0025c686, // n0x0b4f c0x0000 (---------------)  + I yabuki
+	0x00293606, // n0x0b50 c0x0000 (---------------)  + I yamato
+	0x00363549, // n0x0b51 c0x0000 (---------------)  + I yamatsuri
+	0x00300ec7, // n0x0b52 c0x0000 (---------------)  + I yanaizu
+	0x002a0b06, // n0x0b53 c0x0000 (---------------)  + I yugawa
+	0x0029abc7, // n0x0b54 c0x0000 (---------------)  + I anpachi
+	0x00202243, // n0x0b55 c0x0000 (---------------)  + I ena
+	0x00269a44, // n0x0b56 c0x0000 (---------------)  + I gifu
+	0x00363e05, // n0x0b57 c0x0000 (---------------)  + I ginan
+	0x00214644, // n0x0b58 c0x0000 (---------------)  + I godo
+	0x00246cc4, // n0x0b59 c0x0000 (---------------)  + I gujo
+	0x00271247, // n0x0b5a c0x0000 (---------------)  + I hashima
+	0x00380487, // n0x0b5b c0x0000 (---------------)  + I hichiso
+	0x00273144, // n0x0b5c c0x0000 (---------------)  + I hida
+	0x00291350, // n0x0b5d c0x0000 (---------------)  + I higashishirakawa
+	0x0036d387, // n0x0b5e c0x0000 (---------------)  + I ibigawa
+	0x002056c5, // n0x0b5f c0x0000 (---------------)  + I ikeda
+	0x00275ccc, // n0x0b60 c0x0000 (---------------)  + I kakamigahara
+	0x00202304, // n0x0b61 c0x0000 (---------------)  + I kani
+	0x002c8a08, // n0x0b62 c0x0000 (---------------)  + I kasahara
+	0x002cc909, // n0x0b63 c0x0000 (---------------)  + I kasamatsu
+	0x00267ac6, // n0x0b64 c0x0000 (---------------)  + I kawaue
+	0x00322cc8, // n0x0b65 c0x0000 (---------------)  + I kitagata
+	0x00230284, // n0x0b66 c0x0000 (---------------)  + I mino
+	0x002d2108, // n0x0b67 c0x0000 (---------------)  + I minokamo
+	0x002b39c6, // n0x0b68 c0x0000 (---------------)  + I mitake
+	0x002236c8, // n0x0b69 c0x0000 (---------------)  + I mizunami
+	0x00292246, // n0x0b6a c0x0000 (---------------)  + I motosu
+	0x0020198b, // n0x0b6b c0x0000 (---------------)  + I nakatsugawa
+	0x00207745, // n0x0b6c c0x0000 (---------------)  + I ogaki
+	0x002bb008, // n0x0b6d c0x0000 (---------------)  + I sakahogi
+	0x00205404, // n0x0b6e c0x0000 (---------------)  + I seki
+	0x0020540a, // n0x0b6f c0x0000 (---------------)  + I sekigahara
+	0x00291509, // n0x0b70 c0x0000 (---------------)  + I shirakawa
+	0x00279946, // n0x0b71 c0x0000 (---------------)  + I tajimi
+	0x002d6ec8, // n0x0b72 c0x0000 (---------------)  + I takayama
+	0x002da345, // n0x0b73 c0x0000 (---------------)  + I tarui
+	0x00221004, // n0x0b74 c0x0000 (---------------)  + I toki
+	0x002c8906, // n0x0b75 c0x0000 (---------------)  + I tomika
+	0x00380148, // n0x0b76 c0x0000 (---------------)  + I wanouchi
+	0x002797c8, // n0x0b77 c0x0000 (---------------)  + I yamagata
+	0x0031f2c6, // n0x0b78 c0x0000 (---------------)  + I yaotsu
+	0x002068c4, // n0x0b79 c0x0000 (---------------)  + I yoro
+	0x0023d186, // n0x0b7a c0x0000 (---------------)  + I annaka
+	0x00202ac7, // n0x0b7b c0x0000 (---------------)  + I chiyoda
+	0x00271e47, // n0x0b7c c0x0000 (---------------)  + I fujioka
+	0x00260ccf, // n0x0b7d c0x0000 (---------------)  + I higashiagatsuma
+	0x002ec447, // n0x0b7e c0x0000 (---------------)  + I isesaki
+	0x00306f87, // n0x0b7f c0x0000 (---------------)  + I itakura
+	0x002eaa85, // n0x0b80 c0x0000 (---------------)  + I kanna
+	0x002f0945, // n0x0b81 c0x0000 (---------------)  + I kanra
+	0x002955c9, // n0x0b82 c0x0000 (---------------)  + I katashina
+	0x002c3d86, // n0x0b83 c0x0000 (---------------)  + I kawaba
+	0x002657c5, // n0x0b84 c0x0000 (---------------)  + I kiryu
+	0x0027acc7, // n0x0b85 c0x0000 (---------------)  + I kusatsu
+	0x002b2348, // n0x0b86 c0x0000 (---------------)  + I maebashi
+	0x00204345, // n0x0b87 c0x0000 (---------------)  + I meiwa
+	0x00279a46, // n0x0b88 c0x0000 (---------------)  + I midori
+	0x00224f48, // n0x0b89 c0x0000 (---------------)  + I minakami
+	0x0036fe8a, // n0x0b8a c0x0000 (---------------)  + I naganohara
+	0x0026ac08, // n0x0b8b c0x0000 (---------------)  + I nakanojo
+	0x00282907, // n0x0b8c c0x0000 (---------------)  + I nanmoku
+	0x002d6dc6, // n0x0b8d c0x0000 (---------------)  + I numata
+	0x00239586, // n0x0b8e c0x0000 (---------------)  + I oizumi
+	0x0021be03, // n0x0b8f c0x0000 (---------------)  + I ora
+	0x00211083, // n0x0b90 c0x0000 (---------------)  + I ota
+	0x002dfc49, // n0x0b91 c0x0000 (---------------)  + I shibukawa
+	0x002e02c9, // n0x0b92 c0x0000 (---------------)  + I shimonita
+	0x002c68c6, // n0x0b93 c0x0000 (---------------)  + I shinto
+	0x002f5745, // n0x0b94 c0x0000 (---------------)  + I showa
+	0x002e83c8, // n0x0b95 c0x0000 (---------------)  + I takasaki
+	0x002d6ec8, // n0x0b96 c0x0000 (---------------)  + I takayama
+	0x002a1988, // n0x0b97 c0x0000 (---------------)  + I tamamura
+	0x003641cb, // n0x0b98 c0x0000 (---------------)  + I tatebayashi
+	0x002c9187, // n0x0b99 c0x0000 (---------------)  + I tomioka
+	0x00352d89, // n0x0b9a c0x0000 (---------------)  + I tsukiyono
+	0x00260f48, // n0x0b9b c0x0000 (---------------)  + I tsumagoi
+	0x0020e3c4, // n0x0b9c c0x0000 (---------------)  + I ueno
+	0x002ba7c8, // n0x0b9d c0x0000 (---------------)  + I yoshioka
+	0x00284f09, // n0x0b9e c0x0000 (---------------)  + I asaminami
+	0x00261f45, // n0x0b9f c0x0000 (---------------)  + I daiwa
+	0x002bdc07, // n0x0ba0 c0x0000 (---------------)  + I etajima
+	0x00205ac5, // n0x0ba1 c0x0000 (---------------)  + I fuchu
+	0x002796c8, // n0x0ba2 c0x0000 (---------------)  + I fukuyama
+	0x00287b4b, // n0x0ba3 c0x0000 (---------------)  + I hatsukaichi
+	0x0028a8d0, // n0x0ba4 c0x0000 (---------------)  + I higashihiroshima
+	0x0029c005, // n0x0ba5 c0x0000 (---------------)  + I hongo
+	0x0021798c, // n0x0ba6 c0x0000 (---------------)  + I jinsekikogen
+	0x0024da45, // n0x0ba7 c0x0000 (---------------)  + I kaita
+	0x00277283, // n0x0ba8 c0x0000 (---------------)  + I kui
+	0x002b5ec6, // n0x0ba9 c0x0000 (---------------)  + I kumano
+	0x002a9fc4, // n0x0baa c0x0000 (---------------)  + I kure
+	0x002af846, // n0x0bab c0x0000 (---------------)  + I mihara
+	0x00291c87, // n0x0bac c0x0000 (---------------)  + I miyoshi
+	0x00201984, // n0x0bad c0x0000 (---------------)  + I naka
+	0x0030afc8, // n0x0bae c0x0000 (---------------)  + I onomichi
+	0x003446cd, // n0x0baf c0x0000 (---------------)  + I osakikamijima
+	0x002e8285, // n0x0bb0 c0x0000 (---------------)  + I otake
+	0x0024fdc4, // n0x0bb1 c0x0000 (---------------)  + I saka
+	0x00228ec4, // n0x0bb2 c0x0000 (---------------)  + I sera
+	0x0032ae09, // n0x0bb3 c0x0000 (---------------)  + I seranishi
+	0x002aee48, // n0x0bb4 c0x0000 (---------------)  + I shinichi
+	0x002aba07, // n0x0bb5 c0x0000 (---------------)  + I shobara
+	0x002b3a48, // n0x0bb6 c0x0000 (---------------)  + I takehara
+	0x00279f08, // n0x0bb7 c0x0000 (---------------)  + I abashiri
+	0x00273285, // n0x0bb8 c0x0000 (---------------)  + I abira
+	0x00237947, // n0x0bb9 c0x0000 (---------------)  + I aibetsu
+	0x00273207, // n0x0bba c0x0000 (---------------)  + I akabira
+	0x002edc87, // n0x0bbb c0x0000 (---------------)  + I akkeshi
+	0x002b1e89, // n0x0bbc c0x0000 (---------------)  + I asahikawa
+	0x00238f89, // n0x0bbd c0x0000 (---------------)  + I ashibetsu
+	0x0023ff86, // n0x0bbe c0x0000 (---------------)  + I ashoro
+	0x002bfdc6, // n0x0bbf c0x0000 (---------------)  + I assabu
+	0x00260f06, // n0x0bc0 c0x0000 (---------------)  + I atsuma
+	0x00381bc5, // n0x0bc1 c0x0000 (---------------)  + I bibai
+	0x00272a04, // n0x0bc2 c0x0000 (---------------)  + I biei
+	0x002037c6, // n0x0bc3 c0x0000 (---------------)  + I bifuka
+	0x00204d86, // n0x0bc4 c0x0000 (---------------)  + I bihoro
+	0x002732c8, // n0x0bc5 c0x0000 (---------------)  + I biratori
+	0x0025dacb, // n0x0bc6 c0x0000 (---------------)  + I chippubetsu
+	0x00295c87, // n0x0bc7 c0x0000 (---------------)  + I chitose
+	0x00218204, // n0x0bc8 c0x0000 (---------------)  + I date
+	0x002fa746, // n0x0bc9 c0x0000 (---------------)  + I ebetsu
+	0x002d7ac7, // n0x0bca c0x0000 (---------------)  + I embetsu
+	0x0029b545, // n0x0bcb c0x0000 (---------------)  + I eniwa
+	0x00309e85, // n0x0bcc c0x0000 (---------------)  + I erimo
+	0x00232a84, // n0x0bcd c0x0000 (---------------)  + I esan
+	0x00238f06, // n0x0bce c0x0000 (---------------)  + I esashi
+	0x00203848, // n0x0bcf c0x0000 (---------------)  + I fukagawa
+	0x00279049, // n0x0bd0 c0x0000 (---------------)  + I fukushima
+	0x00247fc6, // n0x0bd1 c0x0000 (---------------)  + I furano
+	0x0027ed88, // n0x0bd2 c0x0000 (---------------)  + I furubira
+	0x002f5046, // n0x0bd3 c0x0000 (---------------)  + I haboro
+	0x0031e808, // n0x0bd4 c0x0000 (---------------)  + I hakodate
+	0x002d028c, // n0x0bd5 c0x0000 (---------------)  + I hamatonbetsu
+	0x00273146, // n0x0bd6 c0x0000 (---------------)  + I hidaka
+	0x0028b74d, // n0x0bd7 c0x0000 (---------------)  + I higashikagura
+	0x0028bbcb, // n0x0bd8 c0x0000 (---------------)  + I higashikawa
+	0x002572c5, // n0x0bd9 c0x0000 (---------------)  + I hiroo
+	0x00211f07, // n0x0bda c0x0000 (---------------)  + I hokuryu
+	0x00273806, // n0x0bdb c0x0000 (---------------)  + I hokuto
+	0x00335148, // n0x0bdc c0x0000 (---------------)  + I honbetsu
+	0x00240009, // n0x0bdd c0x0000 (---------------)  + I horokanai
+	0x002ad7c8, // n0x0bde c0x0000 (---------------)  + I horonobe
+	0x002056c5, // n0x0bdf c0x0000 (---------------)  + I ikeda
+	0x002bdd07, // n0x0be0 c0x0000 (---------------)  + I imakane
+	0x002b4c08, // n0x0be1 c0x0000 (---------------)  + I ishikari
+	0x0032d609, // n0x0be2 c0x0000 (---------------)  + I iwamizawa
+	0x0024e546, // n0x0be3 c0x0000 (---------------)  + I iwanai
+	0x0025700a, // n0x0be4 c0x0000 (---------------)  + I kamifurano
+	0x00334ec8, // n0x0be5 c0x0000 (---------------)  + I kamikawa
+	0x002ad60b, // n0x0be6 c0x0000 (---------------)  + I kamishihoro
+	0x002a3e0c, // n0x0be7 c0x0000 (---------------)  + I kamisunagawa
+	0x002d2208, // n0x0be8 c0x0000 (---------------)  + I kamoenai
+	0x00275986, // n0x0be9 c0x0000 (---------------)  + I kayabe
+	0x0036da88, // n0x0bea c0x0000 (---------------)  + I kembuchi
+	0x002ec587, // n0x0beb c0x0000 (---------------)  + I kikonai
+	0x0037ff09, // n0x0bec c0x0000 (---------------)  + I kimobetsu
+	0x0031700d, // n0x0bed c0x0000 (---------------)  + I kitahiroshima
+	0x0028c006, // n0x0bee c0x0000 (---------------)  + I kitami
+	0x00308208, // n0x0bef c0x0000 (---------------)  + I kiyosato
+	0x002e6bc9, // n0x0bf0 c0x0000 (---------------)  + I koshimizu
+	0x002a9608, // n0x0bf1 c0x0000 (---------------)  + I kunneppu
+	0x0027c208, // n0x0bf2 c0x0000 (---------------)  + I kuriyama
+	0x002ab70c, // n0x0bf3 c0x0000 (---------------)  + I kuromatsunai
+	0x002ae4c7, // n0x0bf4 c0x0000 (---------------)  + I kushiro
+	0x002af107, // n0x0bf5 c0x0000 (---------------)  + I kutchan
+	0x002b1cc5, // n0x0bf6 c0x0000 (---------------)  + I kyowa
+	0x0024c447, // n0x0bf7 c0x0000 (---------------)  + I mashike
+	0x002b2208, // n0x0bf8 c0x0000 (---------------)  + I matsumae
+	0x002c8986, // n0x0bf9 c0x0000 (---------------)  + I mikasa
+	0x00247e4c, // n0x0bfa c0x0000 (---------------)  + I minamifurano
+	0x002d15c8, // n0x0bfb c0x0000 (---------------)  + I mombetsu
+	0x002bbcc8, // n0x0bfc c0x0000 (---------------)  + I moseushi
+	0x00203b06, // n0x0bfd c0x0000 (---------------)  + I mukawa
+	0x0025c307, // n0x0bfe c0x0000 (---------------)  + I muroran
+	0x00240184, // n0x0bff c0x0000 (---------------)  + I naie
+	0x00276cc8, // n0x0c00 c0x0000 (---------------)  + I nakagawa
+	0x0028530c, // n0x0c01 c0x0000 (---------------)  + I nakasatsunai
+	0x0022b9cc, // n0x0c02 c0x0000 (---------------)  + I nakatombetsu
+	0x00229205, // n0x0c03 c0x0000 (---------------)  + I nanae
+	0x0037ee47, // n0x0c04 c0x0000 (---------------)  + I nanporo
+	0x00206846, // n0x0c05 c0x0000 (---------------)  + I nayoro
+	0x0025c286, // n0x0c06 c0x0000 (---------------)  + I nemuro
+	0x002d8ec8, // n0x0c07 c0x0000 (---------------)  + I niikappu
+	0x0029b204, // n0x0c08 c0x0000 (---------------)  + I niki
+	0x00221a4b, // n0x0c09 c0x0000 (---------------)  + I nishiokoppe
+	0x0030a4cb, // n0x0c0a c0x0000 (---------------)  + I noboribetsu
+	0x002d6dc6, // n0x0c0b c0x0000 (---------------)  + I numata
+	0x00344547, // n0x0c0c c0x0000 (---------------)  + I obihiro
+	0x0035f745, // n0x0c0d c0x0000 (---------------)  + I obira
+	0x002690c5, // n0x0c0e c0x0000 (---------------)  + I oketo
+	0x00221b86, // n0x0c0f c0x0000 (---------------)  + I okoppe
+	0x002da305, // n0x0c10 c0x0000 (---------------)  + I otaru
+	0x00263045, // n0x0c11 c0x0000 (---------------)  + I otobe
+	0x002b3807, // n0x0c12 c0x0000 (---------------)  + I otofuke
+	0x00268c49, // n0x0c13 c0x0000 (---------------)  + I otoineppu
+	0x002ed344, // n0x0c14 c0x0000 (---------------)  + I oumu
+	0x002fb245, // n0x0c15 c0x0000 (---------------)  + I ozora
+	0x002c95c5, // n0x0c16 c0x0000 (---------------)  + I pippu
+	0x0025c408, // n0x0c17 c0x0000 (---------------)  + I rankoshi
+	0x0030ae05, // n0x0c18 c0x0000 (---------------)  + I rebun
+	0x00289f89, // n0x0c19 c0x0000 (---------------)  + I rikubetsu
+	0x002cb087, // n0x0c1a c0x0000 (---------------)  + I rishiri
+	0x002cb08b, // n0x0c1b c0x0000 (---------------)  + I rishirifuji
+	0x0022a946, // n0x0c1c c0x0000 (---------------)  + I saroma
+	0x0024d4c9, // n0x0c1d c0x0000 (---------------)  + I sarufutsu
+	0x0029bc08, // n0x0c1e c0x0000 (---------------)  + I shakotan
+	0x002a7e85, // n0x0c1f c0x0000 (---------------)  + I shari
+	0x002edd88, // n0x0c20 c0x0000 (---------------)  + I shibecha
+	0x00238fc8, // n0x0c21 c0x0000 (---------------)  + I shibetsu
+	0x0021ca47, // n0x0c22 c0x0000 (---------------)  + I shikabe
+	0x00239447, // n0x0c23 c0x0000 (---------------)  + I shikaoi
+	0x002712c9, // n0x0c24 c0x0000 (---------------)  + I shimamaki
+	0x00223607, // n0x0c25 c0x0000 (---------------)  + I shimizu
+	0x002d5349, // n0x0c26 c0x0000 (---------------)  + I shimokawa
+	0x002bcc0c, // n0x0c27 c0x0000 (---------------)  + I shinshinotsu
+	0x002c68c8, // n0x0c28 c0x0000 (---------------)  + I shintoku
+	0x002ea8c9, // n0x0c29 c0x0000 (---------------)  + I shiranuka
+	0x002d3ec7, // n0x0c2a c0x0000 (---------------)  + I shiraoi
+	0x00279fc9, // n0x0c2b c0x0000 (---------------)  + I shiriuchi
+	0x003805c7, // n0x0c2c c0x0000 (---------------)  + I sobetsu
+	0x002a3f08, // n0x0c2d c0x0000 (---------------)  + I sunagawa
+	0x00332845, // n0x0c2e c0x0000 (---------------)  + I taiki
+	0x002b6a86, // n0x0c2f c0x0000 (---------------)  + I takasu
+	0x002ac448, // n0x0c30 c0x0000 (---------------)  + I takikawa
+	0x002560c8, // n0x0c31 c0x0000 (---------------)  + I takinoue
+	0x002b4949, // n0x0c32 c0x0000 (---------------)  + I teshikaga
+	0x00263087, // n0x0c33 c0x0000 (---------------)  + I tobetsu
+	0x0026b385, // n0x0c34 c0x0000 (---------------)  + I tohma
+	0x002d0a49, // n0x0c35 c0x0000 (---------------)  + I tomakomai
+	0x002468c6, // n0x0c36 c0x0000 (---------------)  + I tomari
+	0x002873c4, // n0x0c37 c0x0000 (---------------)  + I toya
+	0x002f4246, // n0x0c38 c0x0000 (---------------)  + I toyako
+	0x00247448, // n0x0c39 c0x0000 (---------------)  + I toyotomi
+	0x00256b47, // n0x0c3a c0x0000 (---------------)  + I toyoura
+	0x0025dcc8, // n0x0c3b c0x0000 (---------------)  + I tsubetsu
+	0x0020f689, // n0x0c3c c0x0000 (---------------)  + I tsukigata
+	0x002fc647, // n0x0c3d c0x0000 (---------------)  + I urakawa
+	0x00292dc6, // n0x0c3e c0x0000 (---------------)  + I urausu
+	0x00211fc4, // n0x0c3f c0x0000 (---------------)  + I uryu
+	0x00208849, // n0x0c40 c0x0000 (---------------)  + I utashinai
+	0x002377c8, // n0x0c41 c0x0000 (---------------)  + I wakkanai
+	0x002039c7, // n0x0c42 c0x0000 (---------------)  + I wassamu
+	0x002fb786, // n0x0c43 c0x0000 (---------------)  + I yakumo
+	0x0029c4c6, // n0x0c44 c0x0000 (---------------)  + I yoichi
+	0x002ec6c4, // n0x0c45 c0x0000 (---------------)  + I aioi
+	0x002b3506, // n0x0c46 c0x0000 (---------------)  + I akashi
+	0x00210603, // n0x0c47 c0x0000 (---------------)  + I ako
+	0x00378049, // n0x0c48 c0x0000 (---------------)  + I amagasaki
+	0x00207706, // n0x0c49 c0x0000 (---------------)  + I aogaki
+	0x002aad85, // n0x0c4a c0x0000 (---------------)  + I asago
+	0x00293506, // n0x0c4b c0x0000 (---------------)  + I ashiya
+	0x002239c5, // n0x0c4c c0x0000 (---------------)  + I awaji
+	0x00278dc8, // n0x0c4d c0x0000 (---------------)  + I fukusaki
+	0x002d1f47, // n0x0c4e c0x0000 (---------------)  + I goshiki
+	0x003604c6, // n0x0c4f c0x0000 (---------------)  + I harima
+	0x00206d46, // n0x0c50 c0x0000 (---------------)  + I himeji
+	0x0034fec8, // n0x0c51 c0x0000 (---------------)  + I ichikawa
+	0x00295747, // n0x0c52 c0x0000 (---------------)  + I inagawa
+	0x0028c045, // n0x0c53 c0x0000 (---------------)  + I itami
+	0x00293a08, // n0x0c54 c0x0000 (---------------)  + I kakogawa
+	0x003563c8, // n0x0c55 c0x0000 (---------------)  + I kamigori
+	0x00334ec8, // n0x0c56 c0x0000 (---------------)  + I kamikawa
+	0x0024d905, // n0x0c57 c0x0000 (---------------)  + I kasai
+	0x002b6b06, // n0x0c58 c0x0000 (---------------)  + I kasuga
+	0x00230389, // n0x0c59 c0x0000 (---------------)  + I kawanishi
+	0x002a2684, // n0x0c5a c0x0000 (---------------)  + I miki
+	0x0022384b, // n0x0c5b c0x0000 (---------------)  + I minamiawaji
+	0x0021bf8b, // n0x0c5c c0x0000 (---------------)  + I nishinomiya
+	0x00225389, // n0x0c5d c0x0000 (---------------)  + I nishiwaki
+	0x00210683, // n0x0c5e c0x0000 (---------------)  + I ono
+	0x00253cc5, // n0x0c5f c0x0000 (---------------)  + I sanda
+	0x00351146, // n0x0c60 c0x0000 (---------------)  + I sannan
+	0x0024ee88, // n0x0c61 c0x0000 (---------------)  + I sasayama
+	0x00265c04, // n0x0c62 c0x0000 (---------------)  + I sayo
+	0x00227206, // n0x0c63 c0x0000 (---------------)  + I shingu
+	0x002bee89, // n0x0c64 c0x0000 (---------------)  + I shinonsen
+	0x002e5305, // n0x0c65 c0x0000 (---------------)  + I shiso
+	0x002b3746, // n0x0c66 c0x0000 (---------------)  + I sumoto
+	0x00384e06, // n0x0c67 c0x0000 (---------------)  + I taishi
+	0x0020ed04, // n0x0c68 c0x0000 (---------------)  + I taka
+	0x0036a04a, // n0x0c69 c0x0000 (---------------)  + I takarazuka
+	0x002aacc8, // n0x0c6a c0x0000 (---------------)  + I takasago
+	0x002560c6, // n0x0c6b c0x0000 (---------------)  + I takino
+	0x002fb045, // n0x0c6c c0x0000 (---------------)  + I tamba
+	0x00217107, // n0x0c6d c0x0000 (---------------)  + I tatsuno
+	0x0022fec7, // n0x0c6e c0x0000 (---------------)  + I toyooka
+	0x0025c684, // n0x0c6f c0x0000 (---------------)  + I yabu
+	0x0021c1c7, // n0x0c70 c0x0000 (---------------)  + I yashiro
+	0x002a6844, // n0x0c71 c0x0000 (---------------)  + I yoka
+	0x00302946, // n0x0c72 c0x0000 (---------------)  + I yokawa
+	0x00216cc3, // n0x0c73 c0x0000 (---------------)  + I ami
+	0x002b1e85, // n0x0c74 c0x0000 (---------------)  + I asahi
+	0x0032ca45, // n0x0c75 c0x0000 (---------------)  + I bando
+	0x00380288, // n0x0c76 c0x0000 (---------------)  + I chikusei
+	0x00269b45, // n0x0c77 c0x0000 (---------------)  + I daigo
+	0x00272e89, // n0x0c78 c0x0000 (---------------)  + I fujishiro
+	0x00276b07, // n0x0c79 c0x0000 (---------------)  + I hitachi
+	0x00276b0b, // n0x0c7a c0x0000 (---------------)  + I hitachinaka
+	0x002975cc, // n0x0c7b c0x0000 (---------------)  + I hitachiomiya
+	0x00297c0a, // n0x0c7c c0x0000 (---------------)  + I hitachiota
+	0x00316ec7, // n0x0c7d c0x0000 (---------------)  + I ibaraki
+	0x00208983, // n0x0c7e c0x0000 (---------------)  + I ina
+	0x00299a48, // n0x0c7f c0x0000 (---------------)  + I inashiki
+	0x0024dac5, // n0x0c80 c0x0000 (---------------)  + I itako
+	0x002043c5, // n0x0c81 c0x0000 (---------------)  + I iwama
+	0x00210744, // n0x0c82 c0x0000 (---------------)  + I joso
+	0x002a3e06, // n0x0c83 c0x0000 (---------------)  + I kamisu
+	0x002cc906, // n0x0c84 c0x0000 (---------------)  + I kasama
+	0x002b3547, // n0x0c85 c0x0000 (---------------)  + I kashima
+	0x00200e4b, // n0x0c86 c0x0000 (---------------)  + I kasumigaura
+	0x00293a84, // n0x0c87 c0x0000 (---------------)  + I koga
+	0x002df804, // n0x0c88 c0x0000 (---------------)  + I miho
+	0x00258284, // n0x0c89 c0x0000 (---------------)  + I mito
+	0x002ba386, // n0x0c8a c0x0000 (---------------)  + I moriya
+	0x00201984, // n0x0c8b c0x0000 (---------------)  + I naka
+	0x002b3348, // n0x0c8c c0x0000 (---------------)  + I namegata
+	0x0031ce85, // n0x0c8d c0x0000 (---------------)  + I oarai
+	0x00228905, // n0x0c8e c0x0000 (---------------)  + I ogawa
+	0x002a18c7, // n0x0c8f c0x0000 (---------------)  + I omitama
+	0x00212009, // n0x0c90 c0x0000 (---------------)  + I ryugasaki
+	0x00327d85, // n0x0c91 c0x0000 (---------------)  + I sakai
+	0x0020e0ca, // n0x0c92 c0x0000 (---------------)  + I sakuragawa
+	0x00294e89, // n0x0c93 c0x0000 (---------------)  + I shimodate
+	0x002a8b8a, // n0x0c94 c0x0000 (---------------)  + I shimotsuma
+	0x00213289, // n0x0c95 c0x0000 (---------------)  + I shirosato
+	0x002d90c4, // n0x0c96 c0x0000 (---------------)  + I sowa
+	0x002e7e45, // n0x0c97 c0x0000 (---------------)  + I suifu
+	0x002dd448, // n0x0c98 c0x0000 (---------------)  + I takahagi
+	0x0030c64b, // n0x0c99 c0x0000 (---------------)  + I tamatsukuri
+	0x002f1d45, // n0x0c9a c0x0000 (---------------)  + I tokai
+	0x00344dc6, // n0x0c9b c0x0000 (---------------)  + I tomobe
+	0x00216684, // n0x0c9c c0x0000 (---------------)  + I tone
+	0x002733c6, // n0x0c9d c0x0000 (---------------)  + I toride
+	0x002fc4c9, // n0x0c9e c0x0000 (---------------)  + I tsuchiura
+	0x002fa807, // n0x0c9f c0x0000 (---------------)  + I tsukuba
+	0x0026e288, // n0x0ca0 c0x0000 (---------------)  + I uchihara
+	0x00286f46, // n0x0ca1 c0x0000 (---------------)  + I ushiku
+	0x00202a47, // n0x0ca2 c0x0000 (---------------)  + I yachiyo
+	0x002797c8, // n0x0ca3 c0x0000 (---------------)  + I yamagata
+	0x00355e86, // n0x0ca4 c0x0000 (---------------)  + I yawara
+	0x00383544, // n0x0ca5 c0x0000 (---------------)  + I yuki
+	0x0033b707, // n0x0ca6 c0x0000 (---------------)  + I anamizu
+	0x0032aa05, // n0x0ca7 c0x0000 (---------------)  + I hakui
+	0x0033c0c7, // n0x0ca8 c0x0000 (---------------)  + I hakusan
+	0x002038c4, // n0x0ca9 c0x0000 (---------------)  + I kaga
+	0x00273786, // n0x0caa c0x0000 (---------------)  + I kahoku
+	0x00204b88, // n0x0cab c0x0000 (---------------)  + I kanazawa
+	0x0028bd88, // n0x0cac c0x0000 (---------------)  + I kawakita
+	0x00307e47, // n0x0cad c0x0000 (---------------)  + I komatsu
+	0x00282c88, // n0x0cae c0x0000 (---------------)  + I nakanoto
+	0x00288c05, // n0x0caf c0x0000 (---------------)  + I nanao
+	0x002104c4, // n0x0cb0 c0x0000 (---------------)  + I nomi
+	0x0034fdc8, // n0x0cb1 c0x0000 (---------------)  + I nonoichi
+	0x00282d84, // n0x0cb2 c0x0000 (---------------)  + I noto
+	0x00218e85, // n0x0cb3 c0x0000 (---------------)  + I shika
+	0x002df344, // n0x0cb4 c0x0000 (---------------)  + I suzu
+	0x002fc007, // n0x0cb5 c0x0000 (---------------)  + I tsubata
+	0x00363cc7, // n0x0cb6 c0x0000 (---------------)  + I tsurugi
+	0x0027a108, // n0x0cb7 c0x0000 (---------------)  + I uchinada
+	0x002c9706, // n0x0cb8 c0x0000 (---------------)  + I wajima
+	0x00269ac5, // n0x0cb9 c0x0000 (---------------)  + I fudai
+	0x00272c88, // n0x0cba c0x0000 (---------------)  + I fujisawa
+	0x0026ae08, // n0x0cbb c0x0000 (---------------)  + I hanamaki
+	0x00294749, // n0x0cbc c0x0000 (---------------)  + I hiraizumi
+	0x0021c286, // n0x0cbd c0x0000 (---------------)  + I hirono
+	0x00379cc8, // n0x0cbe c0x0000 (---------------)  + I ichinohe
+	0x0020528a, // n0x0cbf c0x0000 (---------------)  + I ichinoseki
+	0x0029b5c8, // n0x0cc0 c0x0000 (---------------)  + I iwaizumi
+	0x0034f5c5, // n0x0cc1 c0x0000 (---------------)  + I iwate
+	0x0036dd06, // n0x0cc2 c0x0000 (---------------)  + I joboji
+	0x00294d48, // n0x0cc3 c0x0000 (---------------)  + I kamaishi
+	0x002bddca, // n0x0cc4 c0x0000 (---------------)  + I kanegasaki
+	0x002fa087, // n0x0cc5 c0x0000 (---------------)  + I karumai
+	0x0027de85, // n0x0cc6 c0x0000 (---------------)  + I kawai
+	0x002875c8, // n0x0cc7 c0x0000 (---------------)  + I kitakami
+	0x00235604, // n0x0cc8 c0x0000 (---------------)  + I kuji
+	0x00241bc6, // n0x0cc9 c0x0000 (---------------)  + I kunohe
+	0x002af9c8, // n0x0cca c0x0000 (---------------)  + I kuzumaki
+	0x00210546, // n0x0ccb c0x0000 (---------------)  + I miyako
+	0x00364d08, // n0x0ccc c0x0000 (---------------)  + I mizusawa
+	0x0020ef07, // n0x0ccd c0x0000 (---------------)  + I morioka
+	0x0020ea06, // n0x0cce c0x0000 (---------------)  + I ninohe
+	0x00238104, // n0x0ccf c0x0000 (---------------)  + I noda
+	0x002a1dc7, // n0x0cd0 c0x0000 (---------------)  + I ofunato
+	0x002f2e04, // n0x0cd1 c0x0000 (---------------)  + I oshu
+	0x002fc487, // n0x0cd2 c0x0000 (---------------)  + I otsuchi
+	0x002a1f8d, // n0x0cd3 c0x0000 (---------------)  + I rikuzentakata
+	0x00225405, // n0x0cd4 c0x0000 (---------------)  + I shiwa
+	0x002e9f8b, // n0x0cd5 c0x0000 (---------------)  + I shizukuishi
+	0x00292346, // n0x0cd6 c0x0000 (---------------)  + I sumita
+	0x0024e348, // n0x0cd7 c0x0000 (---------------)  + I tanohata
+	0x003793c4, // n0x0cd8 c0x0000 (---------------)  + I tono
+	0x0020d986, // n0x0cd9 c0x0000 (---------------)  + I yahaba
+	0x002766c6, // n0x0cda c0x0000 (---------------)  + I yamada
+	0x0026f707, // n0x0cdb c0x0000 (---------------)  + I ayagawa
+	0x0028b40d, // n0x0cdc c0x0000 (---------------)  + I higashikagawa
+	0x002d9707, // n0x0cdd c0x0000 (---------------)  + I kanonji
+	0x002fdb88, // n0x0cde c0x0000 (---------------)  + I kotohira
+	0x00272085, // n0x0cdf c0x0000 (---------------)  + I manno
+	0x0028cb88, // n0x0ce0 c0x0000 (---------------)  + I marugame
+	0x002b4286, // n0x0ce1 c0x0000 (---------------)  + I mitoyo
+	0x00288c88, // n0x0ce2 c0x0000 (---------------)  + I naoshima
+	0x0023f706, // n0x0ce3 c0x0000 (---------------)  + I sanuki
+	0x00363bc7, // n0x0ce4 c0x0000 (---------------)  + I tadotsu
+	0x00358b09, // n0x0ce5 c0x0000 (---------------)  + I takamatsu
+	0x003793c7, // n0x0ce6 c0x0000 (---------------)  + I tonosho
+	0x00280b08, // n0x0ce7 c0x0000 (---------------)  + I uchinomi
+	0x0026cd85, // n0x0ce8 c0x0000 (---------------)  + I utazu
+	0x0021b648, // n0x0ce9 c0x0000 (---------------)  + I zentsuji
+	0x0025c1c5, // n0x0cea c0x0000 (---------------)  + I akune
+	0x00249405, // n0x0ceb c0x0000 (---------------)  + I amami
+	0x00345145, // n0x0cec c0x0000 (---------------)  + I hioki
+	0x00213e43, // n0x0ced c0x0000 (---------------)  + I isa
+	0x0020e944, // n0x0cee c0x0000 (---------------)  + I isen
+	0x002395c5, // n0x0cef c0x0000 (---------------)  + I izumi
+	0x00360c89, // n0x0cf0 c0x0000 (---------------)  + I kagoshima
+	0x002e5446, // n0x0cf1 c0x0000 (---------------)  + I kanoya
+	0x002c4b48, // n0x0cf2 c0x0000 (---------------)  + I kawanabe
+	0x00239205, // n0x0cf3 c0x0000 (---------------)  + I kinko
+	0x00348cc7, // n0x0cf4 c0x0000 (---------------)  + I kouyama
+	0x0033548a, // n0x0cf5 c0x0000 (---------------)  + I makurazaki
+	0x002b3689, // n0x0cf6 c0x0000 (---------------)  + I matsumoto
+	0x002a5e8a, // n0x0cf7 c0x0000 (---------------)  + I minamitane
+	0x002c0488, // n0x0cf8 c0x0000 (---------------)  + I nakatane
+	0x0021d8cc, // n0x0cf9 c0x0000 (---------------)  + I nishinoomote
+	0x0027ad4d, // n0x0cfa c0x0000 (---------------)  + I satsumasendai
+	0x002d5583, // n0x0cfb c0x0000 (---------------)  + I soo
+	0x00364c08, // n0x0cfc c0x0000 (---------------)  + I tarumizu
+	0x0020bd05, // n0x0cfd c0x0000 (---------------)  + I yusui
+	0x002c3d06, // n0x0cfe c0x0000 (---------------)  + I aikawa
+	0x00330e46, // n0x0cff c0x0000 (---------------)  + I atsugi
+	0x002d1c85, // n0x0d00 c0x0000 (---------------)  + I ayase
+	0x0029acc9, // n0x0d01 c0x0000 (---------------)  + I chigasaki
+	0x00383b05, // n0x0d02 c0x0000 (---------------)  + I ebina
+	0x00272c88, // n0x0d03 c0x0000 (---------------)  + I fujisawa
+	0x00283106, // n0x0d04 c0x0000 (---------------)  + I hadano
+	0x00320a86, // n0x0d05 c0x0000 (---------------)  + I hakone
+	0x002967c9, // n0x0d06 c0x0000 (---------------)  + I hiratsuka
+	0x00357b07, // n0x0d07 c0x0000 (---------------)  + I isehara
+	0x002d6806, // n0x0d08 c0x0000 (---------------)  + I kaisei
+	0x00335408, // n0x0d09 c0x0000 (---------------)  + I kamakura
+	0x003028c8, // n0x0d0a c0x0000 (---------------)  + I kiyokawa
+	0x00345dc7, // n0x0d0b c0x0000 (---------------)  + I matsuda
+	0x0028f5ce, // n0x0d0c c0x0000 (---------------)  + I minamiashigara
+	0x002b44c5, // n0x0d0d c0x0000 (---------------)  + I miura
+	0x0032d505, // n0x0d0e c0x0000 (---------------)  + I nakai
+	0x00210448, // n0x0d0f c0x0000 (---------------)  + I ninomiya
+	0x00238147, // n0x0d10 c0x0000 (---------------)  + I odawara
+	0x00205242, // n0x0d11 c0x0000 (---------------)  + I oi
+	0x002ab204, // n0x0d12 c0x0000 (---------------)  + I oiso
+	0x002af74a, // n0x0d13 c0x0000 (---------------)  + I sagamihara
+	0x00203a88, // n0x0d14 c0x0000 (---------------)  + I samukawa
+	0x002d7bc6, // n0x0d15 c0x0000 (---------------)  + I tsukui
+	0x0028d288, // n0x0d16 c0x0000 (---------------)  + I yamakita
+	0x00293606, // n0x0d17 c0x0000 (---------------)  + I yamato
+	0x0036cf48, // n0x0d18 c0x0000 (---------------)  + I yokosuka
+	0x002a0b08, // n0x0d19 c0x0000 (---------------)  + I yugawara
+	0x002493c4, // n0x0d1a c0x0000 (---------------)  + I zama
+	0x0035af85, // n0x0d1b c0x0000 (---------------)  + I zushi
+	0x007242c4, // n0x0d1c c0x0001 (---------------)  ! I city
+	0x007242c4, // n0x0d1d c0x0001 (---------------)  ! I city
+	0x007242c4, // n0x0d1e c0x0001 (---------------)  ! I city
+	0x002077c3, // n0x0d1f c0x0000 (---------------)  + I aki
+	0x002ed186, // n0x0d20 c0x0000 (---------------)  + I geisei
+	0x00273146, // n0x0d21 c0x0000 (---------------)  + I hidaka
+	0x0029278c, // n0x0d22 c0x0000 (---------------)  + I higashitsuno
+	0x00200c83, // n0x0d23 c0x0000 (---------------)  + I ino
+	0x0027f346, // n0x0d24 c0x0000 (---------------)  + I kagami
+	0x00225044, // n0x0d25 c0x0000 (---------------)  + I kami
+	0x002bdfc8, // n0x0d26 c0x0000 (---------------)  + I kitagawa
+	0x002becc5, // n0x0d27 c0x0000 (---------------)  + I kochi
+	0x002af846, // n0x0d28 c0x0000 (---------------)  + I mihara
+	0x002bf588, // n0x0d29 c0x0000 (---------------)  + I motoyama
+	0x002c1506, // n0x0d2a c0x0000 (---------------)  + I muroto
+	0x00360446, // n0x0d2b c0x0000 (---------------)  + I nahari
+	0x00234008, // n0x0d2c c0x0000 (---------------)  + I nakamura
+	0x00363e87, // n0x0d2d c0x0000 (---------------)  + I nankoku
+	0x002233c9, // n0x0d2e c0x0000 (---------------)  + I nishitosa
+	0x002287ca, // n0x0d2f c0x0000 (---------------)  + I niyodogawa
+	0x0024fb04, // n0x0d30 c0x0000 (---------------)  + I ochi
+	0x00230345, // n0x0d31 c0x0000 (---------------)  + I okawa
+	0x002bc5c5, // n0x0d32 c0x0000 (---------------)  + I otoyo
+	0x00322a46, // n0x0d33 c0x0000 (---------------)  + I otsuki
+	0x0024fdc6, // n0x0d34 c0x0000 (---------------)  + I sakawa
+	0x002931c6, // n0x0d35 c0x0000 (---------------)  + I sukumo
+	0x002de606, // n0x0d36 c0x0000 (---------------)  + I susaki
+	0x00223504, // n0x0d37 c0x0000 (---------------)  + I tosa
+	0x0022350b, // n0x0d38 c0x0000 (---------------)  + I tosashimizu
+	0x0022fec4, // n0x0d39 c0x0000 (---------------)  + I toyo
+	0x00217185, // n0x0d3a c0x0000 (---------------)  + I tsuno
+	0x0029f6c5, // n0x0d3b c0x0000 (---------------)  + I umaji
+	0x00212386, // n0x0d3c c0x0000 (---------------)  + I yasuda
+	0x00207d88, // n0x0d3d c0x0000 (---------------)  + I yusuhara
+	0x0027ac07, // n0x0d3e c0x0000 (---------------)  + I amakusa
+	0x00370044, // n0x0d3f c0x0000 (---------------)  + I arao
+	0x0028ba43, // n0x0d40 c0x0000 (---------------)  + I aso
+	0x002e6485, // n0x0d41 c0x0000 (---------------)  + I choyo
+	0x00337407, // n0x0d42 c0x0000 (---------------)  + I gyokuto
+	0x00298389, // n0x0d43 c0x0000 (---------------)  + I hitoyoshi
+	0x0027ab0b, // n0x0d44 c0x0000 (---------------)  + I kamiamakusa
+	0x002b3547, // n0x0d45 c0x0000 (---------------)  + I kashima
+	0x0026f407, // n0x0d46 c0x0000 (---------------)  + I kikuchi
+	0x002ddbc4, // n0x0d47 c0x0000 (---------------)  + I kosa
+	0x002bf488, // n0x0d48 c0x0000 (---------------)  + I kumamoto
+	0x003080c7, // n0x0d49 c0x0000 (---------------)  + I mashiki
+	0x0028ddc6, // n0x0d4a c0x0000 (---------------)  + I mifune
+	0x00255f48, // n0x0d4b c0x0000 (---------------)  + I minamata
+	0x002ba04b, // n0x0d4c c0x0000 (---------------)  + I minamioguni
+	0x00375a06, // n0x0d4d c0x0000 (---------------)  + I nagasu
+	0x00217509, // n0x0d4e c0x0000 (---------------)  + I nishihara
+	0x002ba1c5, // n0x0d4f c0x0000 (---------------)  + I oguni
+	0x00347343, // n0x0d50 c0x0000 (---------------)  + I ozu
+	0x002b3746, // n0x0d51 c0x0000 (---------------)  + I sumoto
+	0x0020ee08, // n0x0d52 c0x0000 (---------------)  + I takamori
+	0x0020f703, // n0x0d53 c0x0000 (---------------)  + I uki
+	0x00262c83, // n0x0d54 c0x0000 (---------------)  + I uto
+	0x002797c6, // n0x0d55 c0x0000 (---------------)  + I yamaga
+	0x00293606, // n0x0d56 c0x0000 (---------------)  + I yamato
+	0x0034e90a, // n0x0d57 c0x0000 (---------------)  + I yatsushiro
+	0x002759c5, // n0x0d58 c0x0000 (---------------)  + I ayabe
+	0x0027650b, // n0x0d59 c0x0000 (---------------)  + I fukuchiyama
+	0x0029344b, // n0x0d5a c0x0000 (---------------)  + I higashiyama
+	0x00207c83, // n0x0d5b c0x0000 (---------------)  + I ide
+	0x0021e883, // n0x0d5c c0x0000 (---------------)  + I ine
+	0x002a2384, // n0x0d5d c0x0000 (---------------)  + I joyo
+	0x0020f207, // n0x0d5e c0x0000 (---------------)  + I kameoka
+	0x0020ee84, // n0x0d5f c0x0000 (---------------)  + I kamo
+	0x0020ec84, // n0x0d60 c0x0000 (---------------)  + I kita
+	0x00314fc4, // n0x0d61 c0x0000 (---------------)  + I kizu
+	0x0029b8c8, // n0x0d62 c0x0000 (---------------)  + I kumiyama
+	0x002faf88, // n0x0d63 c0x0000 (---------------)  + I kyotamba
+	0x00211009, // n0x0d64 c0x0000 (---------------)  + I kyotanabe
+	0x002bc948, // n0x0d65 c0x0000 (---------------)  + I kyotango
+	0x00360e47, // n0x0d66 c0x0000 (---------------)  + I maizuru
+	0x00216c06, // n0x0d67 c0x0000 (---------------)  + I minami
+	0x002c478f, // n0x0d68 c0x0000 (---------------)  + I minamiyamashiro
+	0x002b4606, // n0x0d69 c0x0000 (---------------)  + I miyazu
+	0x002bec44, // n0x0d6a c0x0000 (---------------)  + I muko
+	0x002fadca, // n0x0d6b c0x0000 (---------------)  + I nagaokakyo
+	0x00337307, // n0x0d6c c0x0000 (---------------)  + I nakagyo
+	0x002ca886, // n0x0d6d c0x0000 (---------------)  + I nantan
+	0x00287409, // n0x0d6e c0x0000 (---------------)  + I oyamazaki
+	0x00210f85, // n0x0d6f c0x0000 (---------------)  + I sakyo
+	0x002cb685, // n0x0d70 c0x0000 (---------------)  + I seika
+	0x002110c6, // n0x0d71 c0x0000 (---------------)  + I tanabe
+	0x0021b783, // n0x0d72 c0x0000 (---------------)  + I uji
+	0x00235649, // n0x0d73 c0x0000 (---------------)  + I ujitawara
+	0x0021a406, // n0x0d74 c0x0000 (---------------)  + I wazuka
+	0x0020f449, // n0x0d75 c0x0000 (---------------)  + I yamashina
+	0x00358306, // n0x0d76 c0x0000 (---------------)  + I yawata
+	0x002b1e85, // n0x0d77 c0x0000 (---------------)  + I asahi
+	0x0020b185, // n0x0d78 c0x0000 (---------------)  + I inabe
+	0x0020e943, // n0x0d79 c0x0000 (---------------)  + I ise
+	0x0020f348, // n0x0d7a c0x0000 (---------------)  + I kameyama
+	0x0024fe47, // n0x0d7b c0x0000 (---------------)  + I kawagoe
+	0x0029b284, // n0x0d7c c0x0000 (---------------)  + I kiho
+	0x00322b48, // n0x0d7d c0x0000 (---------------)  + I kisosaki
+	0x002df584, // n0x0d7e c0x0000 (---------------)  + I kiwa
+	0x002a4986, // n0x0d7f c0x0000 (---------------)  + I komono
+	0x002b5ec6, // n0x0d80 c0x0000 (---------------)  + I kumano
+	0x0023f446, // n0x0d81 c0x0000 (---------------)  + I kuwana
+	0x002baec9, // n0x0d82 c0x0000 (---------------)  + I matsusaka
+	0x00204345, // n0x0d83 c0x0000 (---------------)  + I meiwa
+	0x002985c6, // n0x0d84 c0x0000 (---------------)  + I mihama
+	0x00255749, // n0x0d85 c0x0000 (---------------)  + I minamiise
+	0x002b30c6, // n0x0d86 c0x0000 (---------------)  + I misugi
+	0x0029b946, // n0x0d87 c0x0000 (---------------)  + I miyama
+	0x00352b86, // n0x0d88 c0x0000 (---------------)  + I nabari
+	0x00213545, // n0x0d89 c0x0000 (---------------)  + I shima
+	0x002df346, // n0x0d8a c0x0000 (---------------)  + I suzuka
+	0x00363bc4, // n0x0d8b c0x0000 (---------------)  + I tado
+	0x00332845, // n0x0d8c c0x0000 (---------------)  + I taiki
+	0x002560c4, // n0x0d8d c0x0000 (---------------)  + I taki
+	0x00314ec6, // n0x0d8e c0x0000 (---------------)  + I tamaki
+	0x00285e44, // n0x0d8f c0x0000 (---------------)  + I toba
+	0x00201a83, // n0x0d90 c0x0000 (---------------)  + I tsu
+	0x0027fd85, // n0x0d91 c0x0000 (---------------)  + I udono
+	0x00238cc8, // n0x0d92 c0x0000 (---------------)  + I ureshino
+	0x00342a07, // n0x0d93 c0x0000 (---------------)  + I watarai
+	0x00265c89, // n0x0d94 c0x0000 (---------------)  + I yokkaichi
+	0x0027ffc8, // n0x0d95 c0x0000 (---------------)  + I furukawa
+	0x0028c7d1, // n0x0d96 c0x0000 (---------------)  + I higashimatsushima
+	0x00384e8a, // n0x0d97 c0x0000 (---------------)  + I ishinomaki
+	0x002d6d07, // n0x0d98 c0x0000 (---------------)  + I iwanuma
+	0x002cb746, // n0x0d99 c0x0000 (---------------)  + I kakuda
+	0x00225044, // n0x0d9a c0x0000 (---------------)  + I kami
+	0x002ac548, // n0x0d9b c0x0000 (---------------)  + I kawasaki
+	0x00375b89, // n0x0d9c c0x0000 (---------------)  + I kesennuma
+	0x00356788, // n0x0d9d c0x0000 (---------------)  + I marumori
+	0x0028c98a, // n0x0d9e c0x0000 (---------------)  + I matsushima
+	0x00289d4d, // n0x0d9f c0x0000 (---------------)  + I minamisanriku
+	0x002467c6, // n0x0da0 c0x0000 (---------------)  + I misato
+	0x00234106, // n0x0da1 c0x0000 (---------------)  + I murata
+	0x002a1e86, // n0x0da2 c0x0000 (---------------)  + I natori
+	0x00305507, // n0x0da3 c0x0000 (---------------)  + I ogawara
+	0x002fdc45, // n0x0da4 c0x0000 (---------------)  + I ohira
+	0x00237687, // n0x0da5 c0x0000 (---------------)  + I onagawa
+	0x00322c05, // n0x0da6 c0x0000 (---------------)  + I osaki
+	0x002cb1c4, // n0x0da7 c0x0000 (---------------)  + I rifu
+	0x002dc406, // n0x0da8 c0x0000 (---------------)  + I semine
+	0x00369f07, // n0x0da9 c0x0000 (---------------)  + I shibata
+	0x0023534d, // n0x0daa c0x0000 (---------------)  + I shichikashuku
+	0x00294c87, // n0x0dab c0x0000 (---------------)  + I shikama
+	0x00258548, // n0x0dac c0x0000 (---------------)  + I shiogama
+	0x00272f89, // n0x0dad c0x0000 (---------------)  + I shiroishi
+	0x0027e506, // n0x0dae c0x0000 (---------------)  + I tagajo
+	0x0024e4c5, // n0x0daf c0x0000 (---------------)  + I taiwa
+	0x00242084, // n0x0db0 c0x0000 (---------------)  + I tome
+	0x00247546, // n0x0db1 c0x0000 (---------------)  + I tomiya
+	0x002c3946, // n0x0db2 c0x0000 (---------------)  + I wakuya
+	0x00203c06, // n0x0db3 c0x0000 (---------------)  + I watari
+	0x00290788, // n0x0db4 c0x0000 (---------------)  + I yamamoto
+	0x00213043, // n0x0db5 c0x0000 (---------------)  + I zao
+	0x00203503, // n0x0db6 c0x0000 (---------------)  + I aya
+	0x00200c05, // n0x0db7 c0x0000 (---------------)  + I ebino
+	0x00269c06, // n0x0db8 c0x0000 (---------------)  + I gokase
+	0x002a0ac5, // n0x0db9 c0x0000 (---------------)  + I hyuga
+	0x00287148, // n0x0dba c0x0000 (---------------)  + I kadogawa
+	0x00291e4a, // n0x0dbb c0x0000 (---------------)  + I kawaminami
+	0x00207804, // n0x0dbc c0x0000 (---------------)  + I kijo
+	0x002bdfc8, // n0x0dbd c0x0000 (---------------)  + I kitagawa
+	0x0020ec88, // n0x0dbe c0x0000 (---------------)  + I kitakata
+	0x002121c7, // n0x0dbf c0x0000 (---------------)  + I kitaura
+	0x002392c9, // n0x0dc0 c0x0000 (---------------)  + I kobayashi
+	0x002a8e08, // n0x0dc1 c0x0000 (---------------)  + I kunitomi
+	0x002790c7, // n0x0dc2 c0x0000 (---------------)  + I kushima
+	0x002aabc6, // n0x0dc3 c0x0000 (---------------)  + I mimata
+	0x0021054a, // n0x0dc4 c0x0000 (---------------)  + I miyakonojo
+	0x002475c8, // n0x0dc5 c0x0000 (---------------)  + I miyazaki
+	0x002ad449, // n0x0dc6 c0x0000 (---------------)  + I morotsuka
+	0x002aef08, // n0x0dc7 c0x0000 (---------------)  + I nichinan
+	0x0021ac09, // n0x0dc8 c0x0000 (---------------)  + I nishimera
+	0x002ad8c7, // n0x0dc9 c0x0000 (---------------)  + I nobeoka
+	0x00261385, // n0x0dca c0x0000 (---------------)  + I saito
+	0x003643c6, // n0x0dcb c0x0000 (---------------)  + I shiiba
+	0x002c8808, // n0x0dcc c0x0000 (---------------)  + I shintomi
+	0x00254cc8, // n0x0dcd c0x0000 (---------------)  + I takaharu
+	0x0020f848, // n0x0dce c0x0000 (---------------)  + I takanabe
+	0x00240a08, // n0x0dcf c0x0000 (---------------)  + I takazaki
+	0x00217185, // n0x0dd0 c0x0000 (---------------)  + I tsuno
+	0x00202a84, // n0x0dd1 c0x0000 (---------------)  + I achi
+	0x0036f9c8, // n0x0dd2 c0x0000 (---------------)  + I agematsu
+	0x00274b04, // n0x0dd3 c0x0000 (---------------)  + I anan
+	0x00213084, // n0x0dd4 c0x0000 (---------------)  + I aoki
+	0x002b1e85, // n0x0dd5 c0x0000 (---------------)  + I asahi
+	0x00289087, // n0x0dd6 c0x0000 (---------------)  + I azumino
+	0x00211dc9, // n0x0dd7 c0x0000 (---------------)  + I chikuhoku
+	0x0026f507, // n0x0dd8 c0x0000 (---------------)  + I chikuma
+	0x002052c5, // n0x0dd9 c0x0000 (---------------)  + I chino
+	0x00270d06, // n0x0dda c0x0000 (---------------)  + I fujimi
+	0x00327586, // n0x0ddb c0x0000 (---------------)  + I hakuba
+	0x00203084, // n0x0ddc c0x0000 (---------------)  + I hara
+	0x00296b06, // n0x0ddd c0x0000 (---------------)  + I hiraya
+	0x00205904, // n0x0dde c0x0000 (---------------)  + I iida
+	0x00288306, // n0x0ddf c0x0000 (---------------)  + I iijima
+	0x00369446, // n0x0de0 c0x0000 (---------------)  + I iiyama
+	0x00217d46, // n0x0de1 c0x0000 (---------------)  + I iizuna
+	0x002056c5, // n0x0de2 c0x0000 (---------------)  + I ikeda
+	0x00287007, // n0x0de3 c0x0000 (---------------)  + I ikusaka
+	0x00208983, // n0x0de4 c0x0000 (---------------)  + I ina
+	0x002da849, // n0x0de5 c0x0000 (---------------)  + I karuizawa
+	0x002d6508, // n0x0de6 c0x0000 (---------------)  + I kawakami
+	0x00278f44, // n0x0de7 c0x0000 (---------------)  + I kiso
+	0x00278f4d, // n0x0de8 c0x0000 (---------------)  + I kisofukushima
+	0x0028be88, // n0x0de9 c0x0000 (---------------)  + I kitaaiki
+	0x0029be08, // n0x0dea c0x0000 (---------------)  + I komagane
+	0x002ad3c6, // n0x0deb c0x0000 (---------------)  + I komoro
+	0x00358c09, // n0x0dec c0x0000 (---------------)  + I matsukawa
+	0x002b3689, // n0x0ded c0x0000 (---------------)  + I matsumoto
+	0x002fc1c5, // n0x0dee c0x0000 (---------------)  + I miasa
+	0x00291f4a, // n0x0def c0x0000 (---------------)  + I minamiaiki
+	0x00267dca, // n0x0df0 c0x0000 (---------------)  + I minamimaki
+	0x0027534c, // n0x0df1 c0x0000 (---------------)  + I minamiminowa
+	0x002754c6, // n0x0df2 c0x0000 (---------------)  + I minowa
+	0x00271cc6, // n0x0df3 c0x0000 (---------------)  + I miyada
+	0x002b5086, // n0x0df4 c0x0000 (---------------)  + I miyota
+	0x00265609, // n0x0df5 c0x0000 (---------------)  + I mochizuki
+	0x0036fe86, // n0x0df6 c0x0000 (---------------)  + I nagano
+	0x002376c6, // n0x0df7 c0x0000 (---------------)  + I nagawa
+	0x00383bc6, // n0x0df8 c0x0000 (---------------)  + I nagiso
+	0x00276cc8, // n0x0df9 c0x0000 (---------------)  + I nakagawa
+	0x0026ac06, // n0x0dfa c0x0000 (---------------)  + I nakano
+	0x0029794b, // n0x0dfb c0x0000 (---------------)  + I nozawaonsen
+	0x00289205, // n0x0dfc c0x0000 (---------------)  + I obuse
+	0x00228905, // n0x0dfd c0x0000 (---------------)  + I ogawa
+	0x00271f45, // n0x0dfe c0x0000 (---------------)  + I okaya
+	0x0025da06, // n0x0dff c0x0000 (---------------)  + I omachi
+	0x00210503, // n0x0e00 c0x0000 (---------------)  + I omi
+	0x0023f3c6, // n0x0e01 c0x0000 (---------------)  + I ookuwa
+	0x00294c07, // n0x0e02 c0x0000 (---------------)  + I ooshika
+	0x002ac405, // n0x0e03 c0x0000 (---------------)  + I otaki
+	0x002446c5, // n0x0e04 c0x0000 (---------------)  + I otari
+	0x002e18c5, // n0x0e05 c0x0000 (---------------)  + I sakae
+	0x003023c6, // n0x0e06 c0x0000 (---------------)  + I sakaki
+	0x0020d444, // n0x0e07 c0x0000 (---------------)  + I saku
+	0x0020d446, // n0x0e08 c0x0000 (---------------)  + I sakuho
+	0x002adc49, // n0x0e09 c0x0000 (---------------)  + I shimosuwa
+	0x0025d88c, // n0x0e0a c0x0000 (---------------)  + I shinanomachi
+	0x002caf08, // n0x0e0b c0x0000 (---------------)  + I shiojiri
+	0x002add84, // n0x0e0c c0x0000 (---------------)  + I suwa
+	0x002defc6, // n0x0e0d c0x0000 (---------------)  + I suzaka
+	0x00292446, // n0x0e0e c0x0000 (---------------)  + I takagi
+	0x0020ee08, // n0x0e0f c0x0000 (---------------)  + I takamori
+	0x002d6ec8, // n0x0e10 c0x0000 (---------------)  + I takayama
+	0x0025d789, // n0x0e11 c0x0000 (---------------)  + I tateshina
+	0x00217107, // n0x0e12 c0x0000 (---------------)  + I tatsuno
+	0x00273909, // n0x0e13 c0x0000 (---------------)  + I togakushi
+	0x00269186, // n0x0e14 c0x0000 (---------------)  + I togura
+	0x0022ebc4, // n0x0e15 c0x0000 (---------------)  + I tomi
+	0x00211344, // n0x0e16 c0x0000 (---------------)  + I ueda
+	0x00278cc4, // n0x0e17 c0x0000 (---------------)  + I wada
+	0x002797c8, // n0x0e18 c0x0000 (---------------)  + I yamagata
+	0x00211c0a, // n0x0e19 c0x0000 (---------------)  + I yamanouchi
+	0x00327d06, // n0x0e1a c0x0000 (---------------)  + I yasaka
+	0x00330c47, // n0x0e1b c0x0000 (---------------)  + I yasuoka
+	0x00231987, // n0x0e1c c0x0000 (---------------)  + I chijiwa
+	0x0024d5c5, // n0x0e1d c0x0000 (---------------)  + I futsu
+	0x002bc584, // n0x0e1e c0x0000 (---------------)  + I goto
+	0x00284ec6, // n0x0e1f c0x0000 (---------------)  + I hasami
+	0x002fdc86, // n0x0e20 c0x0000 (---------------)  + I hirado
+	0x00223ac3, // n0x0e21 c0x0000 (---------------)  + I iki
+	0x002d6347, // n0x0e22 c0x0000 (---------------)  + I isahaya
+	0x00202448, // n0x0e23 c0x0000 (---------------)  + I kawatana
+	0x002fc30a, // n0x0e24 c0x0000 (---------------)  + I kuchinotsu
+	0x002035c8, // n0x0e25 c0x0000 (---------------)  + I matsuura
+	0x00276088, // n0x0e26 c0x0000 (---------------)  + I nagasaki
+	0x00285e85, // n0x0e27 c0x0000 (---------------)  + I obama
+	0x002573c5, // n0x0e28 c0x0000 (---------------)  + I omura
+	0x00295d85, // n0x0e29 c0x0000 (---------------)  + I oseto
+	0x0024d986, // n0x0e2a c0x0000 (---------------)  + I saikai
+	0x00251a86, // n0x0e2b c0x0000 (---------------)  + I sasebo
+	0x003803c5, // n0x0e2c c0x0000 (---------------)  + I seihi
+	0x00378289, // n0x0e2d c0x0000 (---------------)  + I shimabara
+	0x002bc38c, // n0x0e2e c0x0000 (---------------)  + I shinkamigoto
+	0x002342c7, // n0x0e2f c0x0000 (---------------)  + I togitsu
+	0x0028ca08, // n0x0e30 c0x0000 (---------------)  + I tsushima
+	0x0026ce85, // n0x0e31 c0x0000 (---------------)  + I unzen
+	0x007242c4, // n0x0e32 c0x0001 (---------------)  ! I city
+	0x0032ca84, // n0x0e33 c0x0000 (---------------)  + I ando
+	0x00271a04, // n0x0e34 c0x0000 (---------------)  + I gose
+	0x00379e46, // n0x0e35 c0x0000 (---------------)  + I heguri
+	0x00293fce, // n0x0e36 c0x0000 (---------------)  + I higashiyoshino
+	0x0020aac7, // n0x0e37 c0x0000 (---------------)  + I ikaruga
+	0x00305705, // n0x0e38 c0x0000 (---------------)  + I ikoma
+	0x002a260c, // n0x0e39 c0x0000 (---------------)  + I kamikitayama
+	0x002c92c7, // n0x0e3a c0x0000 (---------------)  + I kanmaki
+	0x00369e87, // n0x0e3b c0x0000 (---------------)  + I kashiba
+	0x0036b589, // n0x0e3c c0x0000 (---------------)  + I kashihara
+	0x00219949, // n0x0e3d c0x0000 (---------------)  + I katsuragi
+	0x0027de85, // n0x0e3e c0x0000 (---------------)  + I kawai
+	0x002d6508, // n0x0e3f c0x0000 (---------------)  + I kawakami
+	0x00230389, // n0x0e40 c0x0000 (---------------)  + I kawanishi
+	0x002dba45, // n0x0e41 c0x0000 (---------------)  + I koryo
+	0x002ac348, // n0x0e42 c0x0000 (---------------)  + I kurotaki
+	0x002ba9c6, // n0x0e43 c0x0000 (---------------)  + I mitsue
+	0x0030b246, // n0x0e44 c0x0000 (---------------)  + I miyake
+	0x002e7784, // n0x0e45 c0x0000 (---------------)  + I nara
+	0x00272148, // n0x0e46 c0x0000 (---------------)  + I nosegawa
+	0x00254b43, // n0x0e47 c0x0000 (---------------)  + I oji
+	0x0037e404, // n0x0e48 c0x0000 (---------------)  + I ouda
+	0x002e6505, // n0x0e49 c0x0000 (---------------)  + I oyodo
+	0x0020e647, // n0x0e4a c0x0000 (---------------)  + I sakurai
+	0x002e6945, // n0x0e4b c0x0000 (---------------)  + I sango
+	0x00205149, // n0x0e4c c0x0000 (---------------)  + I shimoichi
+	0x002deb0d, // n0x0e4d c0x0000 (---------------)  + I shimokitayama
+	0x002b9446, // n0x0e4e c0x0000 (---------------)  + I shinjo
+	0x00358944, // n0x0e4f c0x0000 (---------------)  + I soni
+	0x00218fc8, // n0x0e50 c0x0000 (---------------)  + I takatori
+	0x00268a8a, // n0x0e51 c0x0000 (---------------)  + I tawaramoto
+	0x00208587, // n0x0e52 c0x0000 (---------------)  + I tenkawa
+	0x0026b6c5, // n0x0e53 c0x0000 (---------------)  + I tenri
+	0x00212443, // n0x0e54 c0x0000 (---------------)  + I uda
+	0x0029360e, // n0x0e55 c0x0000 (---------------)  + I yamatokoriyama
+	0x002a280c, // n0x0e56 c0x0000 (---------------)  + I yamatotakada
+	0x0029d147, // n0x0e57 c0x0000 (---------------)  + I yamazoe
+	0x00294187, // n0x0e58 c0x0000 (---------------)  + I yoshino
+	0x00203903, // n0x0e59 c0x0000 (---------------)  + I aga
+	0x0036fec5, // n0x0e5a c0x0000 (---------------)  + I agano
+	0x00271a05, // n0x0e5b c0x0000 (---------------)  + I gosen
+	0x0028d648, // n0x0e5c c0x0000 (---------------)  + I itoigawa
+	0x0028af09, // n0x0e5d c0x0000 (---------------)  + I izumozaki
+	0x00202e06, // n0x0e5e c0x0000 (---------------)  + I joetsu
+	0x0020ee84, // n0x0e5f c0x0000 (---------------)  + I kamo
+	0x002d6c46, // n0x0e60 c0x0000 (---------------)  + I kariwa
+	0x00382a4b, // n0x0e61 c0x0000 (---------------)  + I kashiwazaki
+	0x002b8acc, // n0x0e62 c0x0000 (---------------)  + I minamiuonuma
+	0x002778c7, // n0x0e63 c0x0000 (---------------)  + I mitsuke
+	0x002be985, // n0x0e64 c0x0000 (---------------)  + I muika
+	0x003562c8, // n0x0e65 c0x0000 (---------------)  + I murakami
+	0x00345b85, // n0x0e66 c0x0000 (---------------)  + I myoko
+	0x002fadc7, // n0x0e67 c0x0000 (---------------)  + I nagaoka
+	0x003589c7, // n0x0e68 c0x0000 (---------------)  + I niigata
+	0x00254b45, // n0x0e69 c0x0000 (---------------)  + I ojiya
+	0x00210503, // n0x0e6a c0x0000 (---------------)  + I omi
+	0x0035a204, // n0x0e6b c0x0000 (---------------)  + I sado
+	0x00324485, // n0x0e6c c0x0000 (---------------)  + I sanjo
+	0x002ed245, // n0x0e6d c0x0000 (---------------)  + I seiro
+	0x002ed246, // n0x0e6e c0x0000 (---------------)  + I seirou
+	0x002a2e48, // n0x0e6f c0x0000 (---------------)  + I sekikawa
+	0x00369f07, // n0x0e70 c0x0000 (---------------)  + I shibata
+	0x00331146, // n0x0e71 c0x0000 (---------------)  + I tagami
+	0x002c3c06, // n0x0e72 c0x0000 (---------------)  + I tainai
+	0x00345086, // n0x0e73 c0x0000 (---------------)  + I tochio
+	0x00308389, // n0x0e74 c0x0000 (---------------)  + I tokamachi
+	0x00237a47, // n0x0e75 c0x0000 (---------------)  + I tsubame
+	0x00202c86, // n0x0e76 c0x0000 (---------------)  + I tsunan
+	0x002b8c46, // n0x0e77 c0x0000 (---------------)  + I uonuma
+	0x0026f046, // n0x0e78 c0x0000 (---------------)  + I yahiko
+	0x002a2405, // n0x0e79 c0x0000 (---------------)  + I yoita
+	0x0021ea86, // n0x0e7a c0x0000 (---------------)  + I yuzawa
+	0x00375785, // n0x0e7b c0x0000 (---------------)  + I beppu
+	0x0030ae88, // n0x0e7c c0x0000 (---------------)  + I bungoono
+	0x0033e7cb, // n0x0e7d c0x0000 (---------------)  + I bungotakada
+	0x00284cc6, // n0x0e7e c0x0000 (---------------)  + I hasama
+	0x002319c4, // n0x0e7f c0x0000 (---------------)  + I hiji
+	0x002d4509, // n0x0e80 c0x0000 (---------------)  + I himeshima
+	0x00276b04, // n0x0e81 c0x0000 (---------------)  + I hita
+	0x002ba948, // n0x0e82 c0x0000 (---------------)  + I kamitsue
+	0x00295307, // n0x0e83 c0x0000 (---------------)  + I kokonoe
+	0x0027c104, // n0x0e84 c0x0000 (---------------)  + I kuju
+	0x002a6fc8, // n0x0e85 c0x0000 (---------------)  + I kunisaki
+	0x002aec04, // n0x0e86 c0x0000 (---------------)  + I kusu
+	0x002a2444, // n0x0e87 c0x0000 (---------------)  + I oita
+	0x002d0805, // n0x0e88 c0x0000 (---------------)  + I saiki
+	0x002e82c6, // n0x0e89 c0x0000 (---------------)  + I taketa
+	0x0029b807, // n0x0e8a c0x0000 (---------------)  + I tsukumi
+	0x00232883, // n0x0e8b c0x0000 (---------------)  + I usa
+	0x00292e85, // n0x0e8c c0x0000 (---------------)  + I usuki
+	0x00373e84, // n0x0e8d c0x0000 (---------------)  + I yufu
+	0x0032d546, // n0x0e8e c0x0000 (---------------)  + I akaiwa
+	0x002fc248, // n0x0e8f c0x0000 (---------------)  + I asakuchi
+	0x00202185, // n0x0e90 c0x0000 (---------------)  + I bizen
+	0x00288749, // n0x0e91 c0x0000 (---------------)  + I hayashima
+	0x002d0c45, // n0x0e92 c0x0000 (---------------)  + I ibara
+	0x0027f348, // n0x0e93 c0x0000 (---------------)  + I kagamino
+	0x00363287, // n0x0e94 c0x0000 (---------------)  + I kasaoka
+	0x00347188, // n0x0e95 c0x0000 (---------------)  + I kibichuo
+	0x002a6687, // n0x0e96 c0x0000 (---------------)  + I kumenan
+	0x00307049, // n0x0e97 c0x0000 (---------------)  + I kurashiki
+	0x0026b446, // n0x0e98 c0x0000 (---------------)  + I maniwa
+	0x002d73c6, // n0x0e99 c0x0000 (---------------)  + I misaki
+	0x002e0584, // n0x0e9a c0x0000 (---------------)  + I nagi
+	0x0028f505, // n0x0e9b c0x0000 (---------------)  + I niimi
+	0x002eb04c, // n0x0e9c c0x0000 (---------------)  + I nishiawakura
+	0x00271f47, // n0x0e9d c0x0000 (---------------)  + I okayama
+	0x00272447, // n0x0e9e c0x0000 (---------------)  + I satosho
+	0x00231848, // n0x0e9f c0x0000 (---------------)  + I setouchi
+	0x002b9446, // n0x0ea0 c0x0000 (---------------)  + I shinjo
+	0x00294b44, // n0x0ea1 c0x0000 (---------------)  + I shoo
+	0x003335c4, // n0x0ea2 c0x0000 (---------------)  + I soja
+	0x00271149, // n0x0ea3 c0x0000 (---------------)  + I takahashi
+	0x002b5186, // n0x0ea4 c0x0000 (---------------)  + I tamano
+	0x0021d547, // n0x0ea5 c0x0000 (---------------)  + I tsuyama
+	0x0036da04, // n0x0ea6 c0x0000 (---------------)  + I wake
+	0x00296c06, // n0x0ea7 c0x0000 (---------------)  + I yakage
+	0x00382645, // n0x0ea8 c0x0000 (---------------)  + I aguni
+	0x00292547, // n0x0ea9 c0x0000 (---------------)  + I ginowan
+	0x002978c6, // n0x0eaa c0x0000 (---------------)  + I ginoza
+	0x00256ec9, // n0x0eab c0x0000 (---------------)  + I gushikami
+	0x002b9e87, // n0x0eac c0x0000 (---------------)  + I haebaru
+	0x00260cc7, // n0x0ead c0x0000 (---------------)  + I higashi
+	0x00296646, // n0x0eae c0x0000 (---------------)  + I hirara
+	0x002fb6c5, // n0x0eaf c0x0000 (---------------)  + I iheya
+	0x00278a08, // n0x0eb0 c0x0000 (---------------)  + I ishigaki
+	0x0021a288, // n0x0eb1 c0x0000 (---------------)  + I ishikawa
+	0x002fbb86, // n0x0eb2 c0x0000 (---------------)  + I itoman
+	0x002021c5, // n0x0eb3 c0x0000 (---------------)  + I izena
+	0x002b0946, // n0x0eb4 c0x0000 (---------------)  + I kadena
+	0x00211b03, // n0x0eb5 c0x0000 (---------------)  + I kin
+	0x0028d4c9, // n0x0eb6 c0x0000 (---------------)  + I kitadaito
+	0x00292f4e, // n0x0eb7 c0x0000 (---------------)  + I kitanakagusuku
+	0x002a6388, // n0x0eb8 c0x0000 (---------------)  + I kumejima
+	0x002df688, // n0x0eb9 c0x0000 (---------------)  + I kunigami
+	0x002fb98b, // n0x0eba c0x0000 (---------------)  + I minamidaito
+	0x00288986, // n0x0ebb c0x0000 (---------------)  + I motobu
+	0x0024fa44, // n0x0ebc c0x0000 (---------------)  + I nago
+	0x0027a944, // n0x0ebd c0x0000 (---------------)  + I naha
+	0x0029304a, // n0x0ebe c0x0000 (---------------)  + I nakagusuku
+	0x00217887, // n0x0ebf c0x0000 (---------------)  + I nakijin
+	0x00202d45, // n0x0ec0 c0x0000 (---------------)  + I nanjo
+	0x00217509, // n0x0ec1 c0x0000 (---------------)  + I nishihara
+	0x002aab05, // n0x0ec2 c0x0000 (---------------)  + I ogimi
+	0x002130c7, // n0x0ec3 c0x0000 (---------------)  + I okinawa
+	0x0020d704, // n0x0ec4 c0x0000 (---------------)  + I onna
+	0x002e8d47, // n0x0ec5 c0x0000 (---------------)  + I shimoji
+	0x00246648, // n0x0ec6 c0x0000 (---------------)  + I taketomi
+	0x002e98c6, // n0x0ec7 c0x0000 (---------------)  + I tarama
+	0x002f2fc9, // n0x0ec8 c0x0000 (---------------)  + I tokashiki
+	0x002a8f0a, // n0x0ec9 c0x0000 (---------------)  + I tomigusuku
+	0x00217806, // n0x0eca c0x0000 (---------------)  + I tonaki
+	0x0028b9c6, // n0x0ecb c0x0000 (---------------)  + I urasoe
+	0x0029f645, // n0x0ecc c0x0000 (---------------)  + I uruma
+	0x0034b545, // n0x0ecd c0x0000 (---------------)  + I yaese
+	0x00344387, // n0x0ece c0x0000 (---------------)  + I yomitan
+	0x00365348, // n0x0ecf c0x0000 (---------------)  + I yonabaru
+	0x00382588, // n0x0ed0 c0x0000 (---------------)  + I yonaguni
+	0x002493c6, // n0x0ed1 c0x0000 (---------------)  + I zamami
+	0x002ad045, // n0x0ed2 c0x0000 (---------------)  + I abeno
+	0x0024fb4e, // n0x0ed3 c0x0000 (---------------)  + I chihayaakasaka
+	0x00347284, // n0x0ed4 c0x0000 (---------------)  + I chuo
+	0x0028d5c5, // n0x0ed5 c0x0000 (---------------)  + I daito
+	0x00270689, // n0x0ed6 c0x0000 (---------------)  + I fujiidera
+	0x0027dc88, // n0x0ed7 c0x0000 (---------------)  + I habikino
+	0x00282846, // n0x0ed8 c0x0000 (---------------)  + I hannan
+	0x0029040c, // n0x0ed9 c0x0000 (---------------)  + I higashiosaka
+	0x00291a50, // n0x0eda c0x0000 (---------------)  + I higashisumiyoshi
+	0x00293c0f, // n0x0edb c0x0000 (---------------)  + I higashiyodogawa
+	0x002954c8, // n0x0edc c0x0000 (---------------)  + I hirakata
+	0x00316ec7, // n0x0edd c0x0000 (---------------)  + I ibaraki
+	0x002056c5, // n0x0ede c0x0000 (---------------)  + I ikeda
+	0x002395c5, // n0x0edf c0x0000 (---------------)  + I izumi
+	0x0029b689, // n0x0ee0 c0x0000 (---------------)  + I izumiotsu
+	0x002877c9, // n0x0ee1 c0x0000 (---------------)  + I izumisano
+	0x0023d286, // n0x0ee2 c0x0000 (---------------)  + I kadoma
+	0x002f1dc7, // n0x0ee3 c0x0000 (---------------)  + I kaizuka
+	0x0037edc5, // n0x0ee4 c0x0000 (---------------)  + I kanan
+	0x00375e89, // n0x0ee5 c0x0000 (---------------)  + I kashiwara
+	0x00317c46, // n0x0ee6 c0x0000 (---------------)  + I katano
+	0x0036fccd, // n0x0ee7 c0x0000 (---------------)  + I kawachinagano
+	0x00278b89, // n0x0ee8 c0x0000 (---------------)  + I kishiwada
+	0x0020ec84, // n0x0ee9 c0x0000 (---------------)  + I kita
+	0x002a6108, // n0x0eea c0x0000 (---------------)  + I kumatori
+	0x0036fa89, // n0x0eeb c0x0000 (---------------)  + I matsubara
+	0x00327ec6, // n0x0eec c0x0000 (---------------)  + I minato
+	0x00270e05, // n0x0eed c0x0000 (---------------)  + I minoh
+	0x002d73c6, // n0x0eee c0x0000 (---------------)  + I misaki
+	0x0026e149, // n0x0eef c0x0000 (---------------)  + I moriguchi
+	0x00236308, // n0x0ef0 c0x0000 (---------------)  + I neyagawa
+	0x00215405, // n0x0ef1 c0x0000 (---------------)  + I nishi
+	0x00205384, // n0x0ef2 c0x0000 (---------------)  + I nose
+	0x002905cb, // n0x0ef3 c0x0000 (---------------)  + I osakasayama
+	0x00327d85, // n0x0ef4 c0x0000 (---------------)  + I sakai
+	0x0024ef06, // n0x0ef5 c0x0000 (---------------)  + I sayama
+	0x0027b086, // n0x0ef6 c0x0000 (---------------)  + I sennan
+	0x00290cc6, // n0x0ef7 c0x0000 (---------------)  + I settsu
+	0x0032b20b, // n0x0ef8 c0x0000 (---------------)  + I shijonawate
+	0x00288849, // n0x0ef9 c0x0000 (---------------)  + I shimamoto
+	0x0030a705, // n0x0efa c0x0000 (---------------)  + I suita
+	0x00346f47, // n0x0efb c0x0000 (---------------)  + I tadaoka
+	0x00384e06, // n0x0efc c0x0000 (---------------)  + I taishi
+	0x0027a486, // n0x0efd c0x0000 (---------------)  + I tajiri
+	0x00271788, // n0x0efe c0x0000 (---------------)  + I takaishi
+	0x003427c9, // n0x0eff c0x0000 (---------------)  + I takatsuki
+	0x0025830c, // n0x0f00 c0x0000 (---------------)  + I tondabayashi
+	0x00337208, // n0x0f01 c0x0000 (---------------)  + I toyonaka
+	0x0037a286, // n0x0f02 c0x0000 (---------------)  + I toyono
+	0x0031f2c3, // n0x0f03 c0x0000 (---------------)  + I yao
+	0x00288ec6, // n0x0f04 c0x0000 (---------------)  + I ariake
+	0x00306f05, // n0x0f05 c0x0000 (---------------)  + I arita
+	0x00276848, // n0x0f06 c0x0000 (---------------)  + I fukudomi
+	0x00229086, // n0x0f07 c0x0000 (---------------)  + I genkai
+	0x0036a608, // n0x0f08 c0x0000 (---------------)  + I hamatama
+	0x00216e05, // n0x0f09 c0x0000 (---------------)  + I hizen
+	0x00317285, // n0x0f0a c0x0000 (---------------)  + I imari
+	0x002ada08, // n0x0f0b c0x0000 (---------------)  + I kamimine
+	0x002df447, // n0x0f0c c0x0000 (---------------)  + I kanzaki
+	0x00330d87, // n0x0f0d c0x0000 (---------------)  + I karatsu
+	0x002b3547, // n0x0f0e c0x0000 (---------------)  + I kashima
+	0x00322cc8, // n0x0f0f c0x0000 (---------------)  + I kitagata
+	0x00271488, // n0x0f10 c0x0000 (---------------)  + I kitahata
+	0x0024c346, // n0x0f11 c0x0000 (---------------)  + I kiyama
+	0x00314d07, // n0x0f12 c0x0000 (---------------)  + I kouhoku
+	0x00269907, // n0x0f13 c0x0000 (---------------)  + I kyuragi
+	0x0032af0a, // n0x0f14 c0x0000 (---------------)  + I nishiarita
+	0x00234303, // n0x0f15 c0x0000 (---------------)  + I ogi
+	0x0025da06, // n0x0f16 c0x0000 (---------------)  + I omachi
+	0x00211d45, // n0x0f17 c0x0000 (---------------)  + I ouchi
+	0x002af744, // n0x0f18 c0x0000 (---------------)  + I saga
+	0x00272f89, // n0x0f19 c0x0000 (---------------)  + I shiroishi
+	0x00306fc4, // n0x0f1a c0x0000 (---------------)  + I taku
+	0x002e08c4, // n0x0f1b c0x0000 (---------------)  + I tara
+	0x002922c4, // n0x0f1c c0x0000 (---------------)  + I tosu
+	0x0029418b, // n0x0f1d c0x0000 (---------------)  + I yoshinogari
+	0x0036fc07, // n0x0f1e c0x0000 (---------------)  + I arakawa
+	0x0024fd85, // n0x0f1f c0x0000 (---------------)  + I asaka
+	0x0028a5c8, // n0x0f20 c0x0000 (---------------)  + I chichibu
+	0x00270d06, // n0x0f21 c0x0000 (---------------)  + I fujimi
+	0x00270d08, // n0x0f22 c0x0000 (---------------)  + I fujimino
+	0x00275906, // n0x0f23 c0x0000 (---------------)  + I fukaya
+	0x00282f85, // n0x0f24 c0x0000 (---------------)  + I hanno
+	0x00283845, // n0x0f25 c0x0000 (---------------)  + I hanyu
+	0x00286386, // n0x0f26 c0x0000 (---------------)  + I hasuda
+	0x00286a08, // n0x0f27 c0x0000 (---------------)  + I hatogaya
+	0x00287348, // n0x0f28 c0x0000 (---------------)  + I hatoyama
+	0x00273146, // n0x0f29 c0x0000 (---------------)  + I hidaka
+	0x0028a40f, // n0x0f2a c0x0000 (---------------)  + I higashichichibu
+	0x0028cf90, // n0x0f2b c0x0000 (---------------)  + I higashimatsuyama
+	0x00206445, // n0x0f2c c0x0000 (---------------)  + I honjo
+	0x00208983, // n0x0f2d c0x0000 (---------------)  + I ina
+	0x00283b45, // n0x0f2e c0x0000 (---------------)  + I iruma
+	0x00352cc8, // n0x0f2f c0x0000 (---------------)  + I iwatsuki
+	0x002876c9, // n0x0f30 c0x0000 (---------------)  + I kamiizumi
+	0x00334ec8, // n0x0f31 c0x0000 (---------------)  + I kamikawa
+	0x002f43c8, // n0x0f32 c0x0000 (---------------)  + I kamisato
+	0x00200488, // n0x0f33 c0x0000 (---------------)  + I kasukabe
+	0x0024fe47, // n0x0f34 c0x0000 (---------------)  + I kawagoe
+	0x002709c9, // n0x0f35 c0x0000 (---------------)  + I kawaguchi
+	0x0036a808, // n0x0f36 c0x0000 (---------------)  + I kawajima
+	0x002f7044, // n0x0f37 c0x0000 (---------------)  + I kazo
+	0x00292148, // n0x0f38 c0x0000 (---------------)  + I kitamoto
+	0x0025c4c9, // n0x0f39 c0x0000 (---------------)  + I koshigaya
+	0x00337647, // n0x0f3a c0x0000 (---------------)  + I kounosu
+	0x002a9104, // n0x0f3b c0x0000 (---------------)  + I kuki
+	0x0026f5c8, // n0x0f3c c0x0000 (---------------)  + I kumagaya
+	0x00286dca, // n0x0f3d c0x0000 (---------------)  + I matsubushi
+	0x002c7006, // n0x0f3e c0x0000 (---------------)  + I minano
+	0x002467c6, // n0x0f3f c0x0000 (---------------)  + I misato
+	0x0021c149, // n0x0f40 c0x0000 (---------------)  + I miyashiro
+	0x00291c87, // n0x0f41 c0x0000 (---------------)  + I miyoshi
+	0x002bad48, // n0x0f42 c0x0000 (---------------)  + I moroyama
+	0x002419c8, // n0x0f43 c0x0000 (---------------)  + I nagatoro
+	0x002c37c8, // n0x0f44 c0x0000 (---------------)  + I namegawa
+	0x0020c9c5, // n0x0f45 c0x0000 (---------------)  + I niiza
+	0x002fcb45, // n0x0f46 c0x0000 (---------------)  + I ogano
+	0x00228905, // n0x0f47 c0x0000 (---------------)  + I ogawa
+	0x002719c5, // n0x0f48 c0x0000 (---------------)  + I ogose
+	0x002b0047, // n0x0f49 c0x0000 (---------------)  + I okegawa
+	0x00210505, // n0x0f4a c0x0000 (---------------)  + I omiya
+	0x002ac405, // n0x0f4b c0x0000 (---------------)  + I otaki
+	0x0037e886, // n0x0f4c c0x0000 (---------------)  + I ranzan
+	0x00334e07, // n0x0f4d c0x0000 (---------------)  + I ryokami
+	0x0030c587, // n0x0f4e c0x0000 (---------------)  + I saitama
+	0x002870c6, // n0x0f4f c0x0000 (---------------)  + I sakado
+	0x002c09c5, // n0x0f50 c0x0000 (---------------)  + I satte
+	0x0024ef06, // n0x0f51 c0x0000 (---------------)  + I sayama
+	0x00299b05, // n0x0f52 c0x0000 (---------------)  + I shiki
+	0x002d9588, // n0x0f53 c0x0000 (---------------)  + I shiraoka
+	0x002e53c4, // n0x0f54 c0x0000 (---------------)  + I soka
+	0x002b3146, // n0x0f55 c0x0000 (---------------)  + I sugito
+	0x003501c4, // n0x0f56 c0x0000 (---------------)  + I toda
+	0x00221008, // n0x0f57 c0x0000 (---------------)  + I tokigawa
+	0x0035dc4a, // n0x0f58 c0x0000 (---------------)  + I tokorozawa
+	0x0028194c, // n0x0f59 c0x0000 (---------------)  + I tsurugashima
+	0x00201045, // n0x0f5a c0x0000 (---------------)  + I urawa
+	0x003055c6, // n0x0f5b c0x0000 (---------------)  + I warabi
+	0x002584c6, // n0x0f5c c0x0000 (---------------)  + I yashio
+	0x002db446, // n0x0f5d c0x0000 (---------------)  + I yokoze
+	0x00352ec4, // n0x0f5e c0x0000 (---------------)  + I yono
+	0x00382905, // n0x0f5f c0x0000 (---------------)  + I yorii
+	0x00275747, // n0x0f60 c0x0000 (---------------)  + I yoshida
+	0x00291d09, // n0x0f61 c0x0000 (---------------)  + I yoshikawa
+	0x00298487, // n0x0f62 c0x0000 (---------------)  + I yoshimi
+	0x007242c4, // n0x0f63 c0x0001 (---------------)  ! I city
+	0x007242c4, // n0x0f64 c0x0001 (---------------)  ! I city
+	0x002ab985, // n0x0f65 c0x0000 (---------------)  + I aisho
+	0x002b5784, // n0x0f66 c0x0000 (---------------)  + I gamo
+	0x0028fb8a, // n0x0f67 c0x0000 (---------------)  + I higashiomi
+	0x00270b86, // n0x0f68 c0x0000 (---------------)  + I hikone
+	0x002f4344, // n0x0f69 c0x0000 (---------------)  + I koka
+	0x002ca805, // n0x0f6a c0x0000 (---------------)  + I konan
+	0x0033ab85, // n0x0f6b c0x0000 (---------------)  + I kosei
+	0x002fdb84, // n0x0f6c c0x0000 (---------------)  + I koto
+	0x0027acc7, // n0x0f6d c0x0000 (---------------)  + I kusatsu
+	0x002d0bc7, // n0x0f6e c0x0000 (---------------)  + I maibara
+	0x002ba388, // n0x0f6f c0x0000 (---------------)  + I moriyama
+	0x002b0a48, // n0x0f70 c0x0000 (---------------)  + I nagahama
+	0x00215409, // n0x0f71 c0x0000 (---------------)  + I nishiazai
+	0x00317d48, // n0x0f72 c0x0000 (---------------)  + I notogawa
+	0x0028fd4b, // n0x0f73 c0x0000 (---------------)  + I omihachiman
+	0x0024b684, // n0x0f74 c0x0000 (---------------)  + I otsu
+	0x0026b2c5, // n0x0f75 c0x0000 (---------------)  + I ritto
+	0x00265845, // n0x0f76 c0x0000 (---------------)  + I ryuoh
+	0x002b34c9, // n0x0f77 c0x0000 (---------------)  + I takashima
+	0x003427c9, // n0x0f78 c0x0000 (---------------)  + I takatsuki
+	0x002d4408, // n0x0f79 c0x0000 (---------------)  + I torahime
+	0x00243d88, // n0x0f7a c0x0000 (---------------)  + I toyosato
+	0x00212384, // n0x0f7b c0x0000 (---------------)  + I yasu
+	0x00292485, // n0x0f7c c0x0000 (---------------)  + I akagi
+	0x00203583, // n0x0f7d c0x0000 (---------------)  + I ama
+	0x00322a05, // n0x0f7e c0x0000 (---------------)  + I gotsu
+	0x00298646, // n0x0f7f c0x0000 (---------------)  + I hamada
+	0x0028ad4c, // n0x0f80 c0x0000 (---------------)  + I higashiizumo
+	0x0021a306, // n0x0f81 c0x0000 (---------------)  + I hikawa
+	0x002d2006, // n0x0f82 c0x0000 (---------------)  + I hikimi
+	0x00282ac5, // n0x0f83 c0x0000 (---------------)  + I izumo
+	0x00302448, // n0x0f84 c0x0000 (---------------)  + I kakinoki
+	0x002a6506, // n0x0f85 c0x0000 (---------------)  + I masuda
+	0x002cb8c6, // n0x0f86 c0x0000 (---------------)  + I matsue
+	0x002467c6, // n0x0f87 c0x0000 (---------------)  + I misato
+	0x0021ef8c, // n0x0f88 c0x0000 (---------------)  + I nishinoshima
+	0x00203dc4, // n0x0f89 c0x0000 (---------------)  + I ohda
+	0x003451ca, // n0x0f8a c0x0000 (---------------)  + I okinoshima
+	0x00282a08, // n0x0f8b c0x0000 (---------------)  + I okuizumo
+	0x0028ab87, // n0x0f8c c0x0000 (---------------)  + I shimane
+	0x00373d86, // n0x0f8d c0x0000 (---------------)  + I tamayu
+	0x00380087, // n0x0f8e c0x0000 (---------------)  + I tsuwano
+	0x002ce685, // n0x0f8f c0x0000 (---------------)  + I unnan
+	0x002fb786, // n0x0f90 c0x0000 (---------------)  + I yakumo
+	0x0032c646, // n0x0f91 c0x0000 (---------------)  + I yasugi
+	0x00342fc7, // n0x0f92 c0x0000 (---------------)  + I yatsuka
+	0x002a0c44, // n0x0f93 c0x0000 (---------------)  + I arai
+	0x002fc105, // n0x0f94 c0x0000 (---------------)  + I atami
+	0x00270684, // n0x0f95 c0x0000 (---------------)  + I fuji
+	0x002cb247, // n0x0f96 c0x0000 (---------------)  + I fujieda
+	0x002708c8, // n0x0f97 c0x0000 (---------------)  + I fujikawa
+	0x00271b4a, // n0x0f98 c0x0000 (---------------)  + I fujinomiya
+	0x00278887, // n0x0f99 c0x0000 (---------------)  + I fukuroi
+	0x002aae47, // n0x0f9a c0x0000 (---------------)  + I gotemba
+	0x00316e47, // n0x0f9b c0x0000 (---------------)  + I haibara
+	0x00345cc9, // n0x0f9c c0x0000 (---------------)  + I hamamatsu
+	0x0028ad4a, // n0x0f9d c0x0000 (---------------)  + I higashiizu
+	0x002234c3, // n0x0f9e c0x0000 (---------------)  + I ito
+	0x003429c5, // n0x0f9f c0x0000 (---------------)  + I iwata
+	0x00217d83, // n0x0fa0 c0x0000 (---------------)  + I izu
+	0x00315009, // n0x0fa1 c0x0000 (---------------)  + I izunokuni
+	0x00205cc8, // n0x0fa2 c0x0000 (---------------)  + I kakegawa
+	0x002eaa87, // n0x0fa3 c0x0000 (---------------)  + I kannami
+	0x00334fc9, // n0x0fa4 c0x0000 (---------------)  + I kawanehon
+	0x0021a386, // n0x0fa5 c0x0000 (---------------)  + I kawazu
+	0x00276208, // n0x0fa6 c0x0000 (---------------)  + I kikugawa
+	0x002ddbc5, // n0x0fa7 c0x0000 (---------------)  + I kosai
+	0x0026af0a, // n0x0fa8 c0x0000 (---------------)  + I makinohara
+	0x0021f209, // n0x0fa9 c0x0000 (---------------)  + I matsuzaki
+	0x00257fc9, // n0x0faa c0x0000 (---------------)  + I minamiizu
+	0x002b20c7, // n0x0fab c0x0000 (---------------)  + I mishima
+	0x00356889, // n0x0fac c0x0000 (---------------)  + I morimachi
+	0x00217c48, // n0x0fad c0x0000 (---------------)  + I nishiizu
+	0x002df146, // n0x0fae c0x0000 (---------------)  + I numazu
+	0x00305788, // n0x0faf c0x0000 (---------------)  + I omaezaki
+	0x003701c7, // n0x0fb0 c0x0000 (---------------)  + I shimada
+	0x00223607, // n0x0fb1 c0x0000 (---------------)  + I shimizu
+	0x00294e87, // n0x0fb2 c0x0000 (---------------)  + I shimoda
+	0x002f07c8, // n0x0fb3 c0x0000 (---------------)  + I shizuoka
+	0x002dee46, // n0x0fb4 c0x0000 (---------------)  + I susono
+	0x00286b85, // n0x0fb5 c0x0000 (---------------)  + I yaizu
+	0x00275747, // n0x0fb6 c0x0000 (---------------)  + I yoshida
+	0x0028b4c8, // n0x0fb7 c0x0000 (---------------)  + I ashikaga
+	0x0034d404, // n0x0fb8 c0x0000 (---------------)  + I bato
+	0x002b5704, // n0x0fb9 c0x0000 (---------------)  + I haga
+	0x002d6707, // n0x0fba c0x0000 (---------------)  + I ichikai
+	0x00261fc7, // n0x0fbb c0x0000 (---------------)  + I iwafune
+	0x0023020a, // n0x0fbc c0x0000 (---------------)  + I kaminokawa
+	0x002df0c6, // n0x0fbd c0x0000 (---------------)  + I kanuma
+	0x0029cfca, // n0x0fbe c0x0000 (---------------)  + I karasuyama
+	0x002ab147, // n0x0fbf c0x0000 (---------------)  + I kuroiso
+	0x00348e07, // n0x0fc0 c0x0000 (---------------)  + I mashiko
+	0x0033e744, // n0x0fc1 c0x0000 (---------------)  + I mibu
+	0x002d5404, // n0x0fc2 c0x0000 (---------------)  + I moka
+	0x00224446, // n0x0fc3 c0x0000 (---------------)  + I motegi
+	0x0036b984, // n0x0fc4 c0x0000 (---------------)  + I nasu
+	0x0036b98c, // n0x0fc5 c0x0000 (---------------)  + I nasushiobara
+	0x0020ce85, // n0x0fc6 c0x0000 (---------------)  + I nikko
+	0x00218e09, // n0x0fc7 c0x0000 (---------------)  + I nishikata
+	0x0027f4c4, // n0x0fc8 c0x0000 (---------------)  + I nogi
+	0x002fdc45, // n0x0fc9 c0x0000 (---------------)  + I ohira
+	0x00268a08, // n0x0fca c0x0000 (---------------)  + I ohtawara
+	0x00287405, // n0x0fcb c0x0000 (---------------)  + I oyama
+	0x0020e0c6, // n0x0fcc c0x0000 (---------------)  + I sakura
+	0x00287904, // n0x0fcd c0x0000 (---------------)  + I sano
+	0x002f344a, // n0x0fce c0x0000 (---------------)  + I shimotsuke
+	0x002cee86, // n0x0fcf c0x0000 (---------------)  + I shioya
+	0x002917ca, // n0x0fd0 c0x0000 (---------------)  + I takanezawa
+	0x0034d487, // n0x0fd1 c0x0000 (---------------)  + I tochigi
+	0x00201a85, // n0x0fd2 c0x0000 (---------------)  + I tsuga
+	0x0021b785, // n0x0fd3 c0x0000 (---------------)  + I ujiie
+	0x0024d60a, // n0x0fd4 c0x0000 (---------------)  + I utsunomiya
+	0x00254c05, // n0x0fd5 c0x0000 (---------------)  + I yaita
+	0x00294806, // n0x0fd6 c0x0000 (---------------)  + I aizumi
+	0x00274b04, // n0x0fd7 c0x0000 (---------------)  + I anan
+	0x002a6946, // n0x0fd8 c0x0000 (---------------)  + I ichiba
+	0x00344445, // n0x0fd9 c0x0000 (---------------)  + I itano
+	0x00229146, // n0x0fda c0x0000 (---------------)  + I kainan
+	0x00307e4c, // n0x0fdb c0x0000 (---------------)  + I komatsushima
+	0x002c1e8a, // n0x0fdc c0x0000 (---------------)  + I matsushige
+	0x00267ec4, // n0x0fdd c0x0000 (---------------)  + I mima
+	0x00216c06, // n0x0fde c0x0000 (---------------)  + I minami
+	0x00291c87, // n0x0fdf c0x0000 (---------------)  + I miyoshi
+	0x002be3c4, // n0x0fe0 c0x0000 (---------------)  + I mugi
+	0x00276cc8, // n0x0fe1 c0x0000 (---------------)  + I nakagawa
+	0x0035db46, // n0x0fe2 c0x0000 (---------------)  + I naruto
+	0x0024f9c9, // n0x0fe3 c0x0000 (---------------)  + I sanagochi
+	0x002e45c9, // n0x0fe4 c0x0000 (---------------)  + I shishikui
+	0x002c69c9, // n0x0fe5 c0x0000 (---------------)  + I tokushima
+	0x00223a06, // n0x0fe6 c0x0000 (---------------)  + I wajiki
+	0x003702c6, // n0x0fe7 c0x0000 (---------------)  + I adachi
+	0x003058c7, // n0x0fe8 c0x0000 (---------------)  + I akiruno
+	0x003781c8, // n0x0fe9 c0x0000 (---------------)  + I akishima
+	0x003700c9, // n0x0fea c0x0000 (---------------)  + I aogashima
+	0x0036fc07, // n0x0feb c0x0000 (---------------)  + I arakawa
+	0x00288a86, // n0x0fec c0x0000 (---------------)  + I bunkyo
+	0x00202ac7, // n0x0fed c0x0000 (---------------)  + I chiyoda
+	0x002a1d45, // n0x0fee c0x0000 (---------------)  + I chofu
+	0x00347284, // n0x0fef c0x0000 (---------------)  + I chuo
+	0x00305487, // n0x0ff0 c0x0000 (---------------)  + I edogawa
+	0x00205ac5, // n0x0ff1 c0x0000 (---------------)  + I fuchu
+	0x00280485, // n0x0ff2 c0x0000 (---------------)  + I fussa
+	0x00381e07, // n0x0ff3 c0x0000 (---------------)  + I hachijo
+	0x00254a08, // n0x0ff4 c0x0000 (---------------)  + I hachioji
+	0x00356246, // n0x0ff5 c0x0000 (---------------)  + I hamura
+	0x0028c2cd, // n0x0ff6 c0x0000 (---------------)  + I higashikurume
+	0x0028d84f, // n0x0ff7 c0x0000 (---------------)  + I higashimurayama
+	0x0029344d, // n0x0ff8 c0x0000 (---------------)  + I higashiyamato
+	0x00205304, // n0x0ff9 c0x0000 (---------------)  + I hino
+	0x00238dc6, // n0x0ffa c0x0000 (---------------)  + I hinode
+	0x002c2248, // n0x0ffb c0x0000 (---------------)  + I hinohara
+	0x00383b85, // n0x0ffc c0x0000 (---------------)  + I inagi
+	0x0032b0c8, // n0x0ffd c0x0000 (---------------)  + I itabashi
+	0x0021c90a, // n0x0ffe c0x0000 (---------------)  + I katsushika
+	0x0020ec84, // n0x0fff c0x0000 (---------------)  + I kita
+	0x002e6e86, // n0x1000 c0x0000 (---------------)  + I kiyose
+	0x00248a87, // n0x1001 c0x0000 (---------------)  + I kodaira
+	0x002d4f07, // n0x1002 c0x0000 (---------------)  + I koganei
+	0x00363f49, // n0x1003 c0x0000 (---------------)  + I kokubunji
+	0x00305745, // n0x1004 c0x0000 (---------------)  + I komae
+	0x002fdb84, // n0x1005 c0x0000 (---------------)  + I koto
+	0x0035aeca, // n0x1006 c0x0000 (---------------)  + I kouzushima
+	0x002a8489, // n0x1007 c0x0000 (---------------)  + I kunitachi
+	0x00356987, // n0x1008 c0x0000 (---------------)  + I machida
+	0x002e4a86, // n0x1009 c0x0000 (---------------)  + I meguro
+	0x00327ec6, // n0x100a c0x0000 (---------------)  + I minato
+	0x002923c6, // n0x100b c0x0000 (---------------)  + I mitaka
+	0x0033b7c6, // n0x100c c0x0000 (---------------)  + I mizuho
+	0x002c1b4f, // n0x100d c0x0000 (---------------)  + I musashimurayama
+	0x002c2109, // n0x100e c0x0000 (---------------)  + I musashino
+	0x0026ac06, // n0x100f c0x0000 (---------------)  + I nakano
+	0x0033f046, // n0x1010 c0x0000 (---------------)  + I nerima
+	0x00367549, // n0x1011 c0x0000 (---------------)  + I ogasawara
+	0x00314e07, // n0x1012 c0x0000 (---------------)  + I okutama
+	0x0020de03, // n0x1013 c0x0000 (---------------)  + I ome
+	0x0021f106, // n0x1014 c0x0000 (---------------)  + I oshima
+	0x00211083, // n0x1015 c0x0000 (---------------)  + I ota
+	0x002d1b48, // n0x1016 c0x0000 (---------------)  + I setagaya
+	0x002e66c7, // n0x1017 c0x0000 (---------------)  + I shibuya
+	0x002956c9, // n0x1018 c0x0000 (---------------)  + I shinagawa
+	0x002b5d48, // n0x1019 c0x0000 (---------------)  + I shinjuku
+	0x00330ec8, // n0x101a c0x0000 (---------------)  + I suginami
+	0x002631c6, // n0x101b c0x0000 (---------------)  + I sumida
+	0x0030a7c9, // n0x101c c0x0000 (---------------)  + I tachikawa
+	0x00234205, // n0x101d c0x0000 (---------------)  + I taito
+	0x002a1984, // n0x101e c0x0000 (---------------)  + I tama
+	0x00243f07, // n0x101f c0x0000 (---------------)  + I toshima
+	0x00265685, // n0x1020 c0x0000 (---------------)  + I chizu
+	0x00205304, // n0x1021 c0x0000 (---------------)  + I hino
+	0x002800c8, // n0x1022 c0x0000 (---------------)  + I kawahara
+	0x00217b44, // n0x1023 c0x0000 (---------------)  + I koge
+	0x002fe347, // n0x1024 c0x0000 (---------------)  + I kotoura
+	0x0030d886, // n0x1025 c0x0000 (---------------)  + I misasa
+	0x002bd905, // n0x1026 c0x0000 (---------------)  + I nanbu
+	0x002aef08, // n0x1027 c0x0000 (---------------)  + I nichinan
+	0x00327d8b, // n0x1028 c0x0000 (---------------)  + I sakaiminato
+	0x002f11c7, // n0x1029 c0x0000 (---------------)  + I tottori
+	0x0024d886, // n0x102a c0x0000 (---------------)  + I wakasa
+	0x002b4684, // n0x102b c0x0000 (---------------)  + I yazu
+	0x0037bec6, // n0x102c c0x0000 (---------------)  + I yonago
+	0x002b1e85, // n0x102d c0x0000 (---------------)  + I asahi
+	0x00205ac5, // n0x102e c0x0000 (---------------)  + I fuchu
+	0x002777c9, // n0x102f c0x0000 (---------------)  + I fukumitsu
+	0x0027a8c9, // n0x1030 c0x0000 (---------------)  + I funahashi
+	0x00223644, // n0x1031 c0x0000 (---------------)  + I himi
+	0x00223685, // n0x1032 c0x0000 (---------------)  + I imizu
+	0x00216c45, // n0x1033 c0x0000 (---------------)  + I inami
+	0x0026ad86, // n0x1034 c0x0000 (---------------)  + I johana
+	0x002d6608, // n0x1035 c0x0000 (---------------)  + I kamiichi
+	0x002aa746, // n0x1036 c0x0000 (---------------)  + I kurobe
+	0x0020228b, // n0x1037 c0x0000 (---------------)  + I nakaniikawa
+	0x0026794a, // n0x1038 c0x0000 (---------------)  + I namerikawa
+	0x002f2f05, // n0x1039 c0x0000 (---------------)  + I nanto
+	0x002838c6, // n0x103a c0x0000 (---------------)  + I nyuzen
+	0x002acfc5, // n0x103b c0x0000 (---------------)  + I oyabe
+	0x002a2245, // n0x103c c0x0000 (---------------)  + I taira
+	0x002a24c7, // n0x103d c0x0000 (---------------)  + I takaoka
+	0x002128c8, // n0x103e c0x0000 (---------------)  + I tateyama
+	0x00273904, // n0x103f c0x0000 (---------------)  + I toga
+	0x0029dc46, // n0x1040 c0x0000 (---------------)  + I tonami
+	0x002873c6, // n0x1041 c0x0000 (---------------)  + I toyama
+	0x00217e07, // n0x1042 c0x0000 (---------------)  + I unazuki
+	0x00347304, // n0x1043 c0x0000 (---------------)  + I uozu
+	0x002766c6, // n0x1044 c0x0000 (---------------)  + I yamada
+	0x0036e185, // n0x1045 c0x0000 (---------------)  + I arida
+	0x0036e189, // n0x1046 c0x0000 (---------------)  + I aridagawa
+	0x003704c4, // n0x1047 c0x0000 (---------------)  + I gobo
+	0x002bc709, // n0x1048 c0x0000 (---------------)  + I hashimoto
+	0x00273146, // n0x1049 c0x0000 (---------------)  + I hidaka
+	0x002ae588, // n0x104a c0x0000 (---------------)  + I hirogawa
+	0x00216c45, // n0x104b c0x0000 (---------------)  + I inami
+	0x00231a85, // n0x104c c0x0000 (---------------)  + I iwade
+	0x00229146, // n0x104d c0x0000 (---------------)  + I kainan
+	0x00258209, // n0x104e c0x0000 (---------------)  + I kamitonda
+	0x00219949, // n0x104f c0x0000 (---------------)  + I katsuragi
+	0x002d2086, // n0x1050 c0x0000 (---------------)  + I kimino
+	0x0027dd88, // n0x1051 c0x0000 (---------------)  + I kinokawa
+	0x002a2708, // n0x1052 c0x0000 (---------------)  + I kitayama
+	0x002acf84, // n0x1053 c0x0000 (---------------)  + I koya
+	0x002a3104, // n0x1054 c0x0000 (---------------)  + I koza
+	0x002a3108, // n0x1055 c0x0000 (---------------)  + I kozagawa
+	0x003091c8, // n0x1056 c0x0000 (---------------)  + I kudoyama
+	0x00273a09, // n0x1057 c0x0000 (---------------)  + I kushimoto
+	0x002985c6, // n0x1058 c0x0000 (---------------)  + I mihama
+	0x002467c6, // n0x1059 c0x0000 (---------------)  + I misato
+	0x003048cd, // n0x105a c0x0000 (---------------)  + I nachikatsuura
+	0x00227206, // n0x105b c0x0000 (---------------)  + I shingu
+	0x002d0149, // n0x105c c0x0000 (---------------)  + I shirahama
+	0x0036d285, // n0x105d c0x0000 (---------------)  + I taiji
+	0x002110c6, // n0x105e c0x0000 (---------------)  + I tanabe
+	0x0030a988, // n0x105f c0x0000 (---------------)  + I wakayama
+	0x00302305, // n0x1060 c0x0000 (---------------)  + I yuasa
+	0x00269944, // n0x1061 c0x0000 (---------------)  + I yura
+	0x002b1e85, // n0x1062 c0x0000 (---------------)  + I asahi
+	0x0027a308, // n0x1063 c0x0000 (---------------)  + I funagata
+	0x0028f949, // n0x1064 c0x0000 (---------------)  + I higashine
+	0x00270744, // n0x1065 c0x0000 (---------------)  + I iide
+	0x00273786, // n0x1066 c0x0000 (---------------)  + I kahoku
+	0x003633ca, // n0x1067 c0x0000 (---------------)  + I kaminoyama
+	0x0021a508, // n0x1068 c0x0000 (---------------)  + I kaneyama
+	0x00230389, // n0x1069 c0x0000 (---------------)  + I kawanishi
+	0x003605ca, // n0x106a c0x0000 (---------------)  + I mamurogawa
+	0x00334f46, // n0x106b c0x0000 (---------------)  + I mikawa
+	0x0028da08, // n0x106c c0x0000 (---------------)  + I murayama
+	0x002fab85, // n0x106d c0x0000 (---------------)  + I nagai
+	0x00203448, // n0x106e c0x0000 (---------------)  + I nakayama
+	0x002a6785, // n0x106f c0x0000 (---------------)  + I nanyo
+	0x0021a249, // n0x1070 c0x0000 (---------------)  + I nishikawa
+	0x0033cd89, // n0x1071 c0x0000 (---------------)  + I obanazawa
+	0x00202e42, // n0x1072 c0x0000 (---------------)  + I oe
+	0x002ba1c5, // n0x1073 c0x0000 (---------------)  + I oguni
+	0x00265906, // n0x1074 c0x0000 (---------------)  + I ohkura
+	0x00273087, // n0x1075 c0x0000 (---------------)  + I oishida
+	0x0034c905, // n0x1076 c0x0000 (---------------)  + I sagae
+	0x003426c6, // n0x1077 c0x0000 (---------------)  + I sakata
+	0x0034a308, // n0x1078 c0x0000 (---------------)  + I sakegawa
+	0x002b9446, // n0x1079 c0x0000 (---------------)  + I shinjo
+	0x002dd309, // n0x107a c0x0000 (---------------)  + I shirataka
+	0x00272546, // n0x107b c0x0000 (---------------)  + I shonai
+	0x00271608, // n0x107c c0x0000 (---------------)  + I takahata
+	0x0029d3c5, // n0x107d c0x0000 (---------------)  + I tendo
+	0x00257a46, // n0x107e c0x0000 (---------------)  + I tozawa
+	0x00335288, // n0x107f c0x0000 (---------------)  + I tsuruoka
+	0x002797c8, // n0x1080 c0x0000 (---------------)  + I yamagata
+	0x003694c8, // n0x1081 c0x0000 (---------------)  + I yamanobe
+	0x00324648, // n0x1082 c0x0000 (---------------)  + I yonezawa
+	0x0021ea84, // n0x1083 c0x0000 (---------------)  + I yuza
+	0x00229583, // n0x1084 c0x0000 (---------------)  + I abu
+	0x002dd544, // n0x1085 c0x0000 (---------------)  + I hagi
+	0x002b4c86, // n0x1086 c0x0000 (---------------)  + I hikari
+	0x002a1d84, // n0x1087 c0x0000 (---------------)  + I hofu
+	0x002df5c7, // n0x1088 c0x0000 (---------------)  + I iwakuni
+	0x002cb7c9, // n0x1089 c0x0000 (---------------)  + I kudamatsu
+	0x002b3c45, // n0x108a c0x0000 (---------------)  + I mitou
+	0x002419c6, // n0x108b c0x0000 (---------------)  + I nagato
+	0x0021f106, // n0x108c c0x0000 (---------------)  + I oshima
+	0x002a2c8b, // n0x108d c0x0000 (---------------)  + I shimonoseki
+	0x002f2e46, // n0x108e c0x0000 (---------------)  + I shunan
+	0x003094c6, // n0x108f c0x0000 (---------------)  + I tabuse
+	0x00261448, // n0x1090 c0x0000 (---------------)  + I tokuyama
+	0x00244606, // n0x1091 c0x0000 (---------------)  + I toyota
+	0x0025dc03, // n0x1092 c0x0000 (---------------)  + I ube
+	0x00216b03, // n0x1093 c0x0000 (---------------)  + I yuu
+	0x00347284, // n0x1094 c0x0000 (---------------)  + I chuo
+	0x002352c5, // n0x1095 c0x0000 (---------------)  + I doshi
+	0x00306107, // n0x1096 c0x0000 (---------------)  + I fuefuki
+	0x002708c8, // n0x1097 c0x0000 (---------------)  + I fujikawa
+	0x002708cf, // n0x1098 c0x0000 (---------------)  + I fujikawaguchiko
+	0x0027564b, // n0x1099 c0x0000 (---------------)  + I fujiyoshida
+	0x002d6408, // n0x109a c0x0000 (---------------)  + I hayakawa
+	0x00273806, // n0x109b c0x0000 (---------------)  + I hokuto
+	0x0034fece, // n0x109c c0x0000 (---------------)  + I ichikawamisato
+	0x0020d603, // n0x109d c0x0000 (---------------)  + I kai
+	0x00306084, // n0x109e c0x0000 (---------------)  + I kofu
+	0x002f2dc5, // n0x109f c0x0000 (---------------)  + I koshu
+	0x002f73c6, // n0x10a0 c0x0000 (---------------)  + I kosuge
+	0x00284fcb, // n0x10a1 c0x0000 (---------------)  + I minami-alps
+	0x00289146, // n0x10a2 c0x0000 (---------------)  + I minobu
+	0x00224fc9, // n0x10a3 c0x0000 (---------------)  + I nakamichi
+	0x002bd905, // n0x10a4 c0x0000 (---------------)  + I nanbu
+	0x00357548, // n0x10a5 c0x0000 (---------------)  + I narusawa
+	0x00211988, // n0x10a6 c0x0000 (---------------)  + I nirasaki
+	0x0021980c, // n0x10a7 c0x0000 (---------------)  + I nishikatsura
+	0x002941c6, // n0x10a8 c0x0000 (---------------)  + I oshino
+	0x00322a46, // n0x10a9 c0x0000 (---------------)  + I otsuki
+	0x002f5745, // n0x10aa c0x0000 (---------------)  + I showa
+	0x002808c8, // n0x10ab c0x0000 (---------------)  + I tabayama
+	0x00202ec5, // n0x10ac c0x0000 (---------------)  + I tsuru
+	0x0020e3c8, // n0x10ad c0x0000 (---------------)  + I uenohara
+	0x0029388a, // n0x10ae c0x0000 (---------------)  + I yamanakako
+	0x00379ac9, // n0x10af c0x0000 (---------------)  + I yamanashi
+	0x007242c4, // n0x10b0 c0x0001 (---------------)  ! I city
+	0x00232dc3, // n0x10b1 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x10b2 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x10b3 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x10b4 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x10b5 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x10b6 c0x0000 (---------------)  + I org
+	0x00202183, // n0x10b7 c0x0000 (---------------)  + I biz
+	0x00232dc3, // n0x10b8 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x10b9 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x10ba c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x10bb c0x0000 (---------------)  + I info
+	0x00218643, // n0x10bc c0x0000 (---------------)  + I net
+	0x0024d043, // n0x10bd c0x0000 (---------------)  + I org
+	0x00203a03, // n0x10be c0x0000 (---------------)  + I ass
+	0x00278344, // n0x10bf c0x0000 (---------------)  + I asso
+	0x00232dc3, // n0x10c0 c0x0000 (---------------)  + I com
+	0x0023a884, // n0x10c1 c0x0000 (---------------)  + I coop
+	0x0021e083, // n0x10c2 c0x0000 (---------------)  + I edu
+	0x00252544, // n0x10c3 c0x0000 (---------------)  + I gouv
+	0x00209ac3, // n0x10c4 c0x0000 (---------------)  + I gov
+	0x002e1b47, // n0x10c5 c0x0000 (---------------)  + I medecin
+	0x00240443, // n0x10c6 c0x0000 (---------------)  + I mil
+	0x002104c3, // n0x10c7 c0x0000 (---------------)  + I nom
+	0x00283208, // n0x10c8 c0x0000 (---------------)  + I notaires
+	0x0024d043, // n0x10c9 c0x0000 (---------------)  + I org
+	0x002c55cb, // n0x10ca c0x0000 (---------------)  + I pharmaciens
+	0x002cf303, // n0x10cb c0x0000 (---------------)  + I prd
+	0x0022ad46, // n0x10cc c0x0000 (---------------)  + I presse
+	0x002032c2, // n0x10cd c0x0000 (---------------)  + I tm
+	0x002ff6cb, // n0x10ce c0x0000 (---------------)  + I veterinaire
+	0x0021e083, // n0x10cf c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x10d0 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x10d1 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x10d2 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x10d3 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x10d4 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x10d5 c0x0000 (---------------)  + I gov
+	0x0024d043, // n0x10d6 c0x0000 (---------------)  + I org
+	0x00222883, // n0x10d7 c0x0000 (---------------)  + I rep
+	0x00208103, // n0x10d8 c0x0000 (---------------)  + I tra
+	0x00200b82, // n0x10d9 c0x0000 (---------------)  + I ac
+	0x0009e448, // n0x10da c0x0000 (---------------)  +   blogspot
+	0x00232845, // n0x10db c0x0000 (---------------)  + I busan
+	0x002f6e88, // n0x10dc c0x0000 (---------------)  + I chungbuk
+	0x002f8348, // n0x10dd c0x0000 (---------------)  + I chungnam
+	0x00200882, // n0x10de c0x0000 (---------------)  + I co
+	0x00345f05, // n0x10df c0x0000 (---------------)  + I daegu
+	0x002fd947, // n0x10e0 c0x0000 (---------------)  + I daejeon
+	0x00201e42, // n0x10e1 c0x0000 (---------------)  + I es
+	0x00225207, // n0x10e2 c0x0000 (---------------)  + I gangwon
+	0x00209ac2, // n0x10e3 c0x0000 (---------------)  + I go
+	0x00257d87, // n0x10e4 c0x0000 (---------------)  + I gwangju
+	0x00307c49, // n0x10e5 c0x0000 (---------------)  + I gyeongbuk
+	0x002ecb08, // n0x10e6 c0x0000 (---------------)  + I gyeonggi
+	0x002c3649, // n0x10e7 c0x0000 (---------------)  + I gyeongnam
+	0x00209702, // n0x10e8 c0x0000 (---------------)  + I hs
+	0x002ae307, // n0x10e9 c0x0000 (---------------)  + I incheon
+	0x002d1e04, // n0x10ea c0x0000 (---------------)  + I jeju
+	0x002fda07, // n0x10eb c0x0000 (---------------)  + I jeonbuk
+	0x00267847, // n0x10ec c0x0000 (---------------)  + I jeonnam
+	0x003797c2, // n0x10ed c0x0000 (---------------)  + I kg
+	0x00240443, // n0x10ee c0x0000 (---------------)  + I mil
+	0x0020e602, // n0x10ef c0x0000 (---------------)  + I ms
+	0x00209e82, // n0x10f0 c0x0000 (---------------)  + I ne
+	0x00200d02, // n0x10f1 c0x0000 (---------------)  + I or
+	0x0020c782, // n0x10f2 c0x0000 (---------------)  + I pe
+	0x00207082, // n0x10f3 c0x0000 (---------------)  + I re
+	0x0021bcc2, // n0x10f4 c0x0000 (---------------)  + I sc
+	0x0034b605, // n0x10f5 c0x0000 (---------------)  + I seoul
+	0x00250985, // n0x10f6 c0x0000 (---------------)  + I ulsan
+	0x00232dc3, // n0x10f7 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x10f8 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x10f9 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x10fa c0x0000 (---------------)  + I net
+	0x0024d043, // n0x10fb c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x10fc c0x0000 (---------------)  + I com
+	0x0021e083, // n0x10fd c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x10fe c0x0000 (---------------)  + I gov
+	0x00240443, // n0x10ff c0x0000 (---------------)  + I mil
+	0x00218643, // n0x1100 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1101 c0x0000 (---------------)  + I org
+	0x00000401, // n0x1102 c0x0000 (---------------)  +   c
+	0x00232dc3, // n0x1103 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1104 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1105 c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x1106 c0x0000 (---------------)  + I info
+	0x002188c3, // n0x1107 c0x0000 (---------------)  + I int
+	0x00218643, // n0x1108 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1109 c0x0000 (---------------)  + I org
+	0x0020c783, // n0x110a c0x0000 (---------------)  + I per
+	0x00232dc3, // n0x110b c0x0000 (---------------)  + I com
+	0x0021e083, // n0x110c c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x110d c0x0000 (---------------)  + I gov
+	0x00218643, // n0x110e c0x0000 (---------------)  + I net
+	0x0024d043, // n0x110f c0x0000 (---------------)  + I org
+	0x00200882, // n0x1110 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x1111 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1112 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1113 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x1114 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1115 c0x0000 (---------------)  + I org
+	0x002af5c4, // n0x1116 c0x0000 (---------------)  + I assn
+	0x00232dc3, // n0x1117 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1118 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1119 c0x0000 (---------------)  + I gov
+	0x0023c403, // n0x111a c0x0000 (---------------)  + I grp
+	0x0029d805, // n0x111b c0x0000 (---------------)  + I hotel
+	0x002188c3, // n0x111c c0x0000 (---------------)  + I int
+	0x00220e43, // n0x111d c0x0000 (---------------)  + I ltd
+	0x00218643, // n0x111e c0x0000 (---------------)  + I net
+	0x0024ad43, // n0x111f c0x0000 (---------------)  + I ngo
+	0x0024d043, // n0x1120 c0x0000 (---------------)  + I org
+	0x00251983, // n0x1121 c0x0000 (---------------)  + I sch
+	0x002783c3, // n0x1122 c0x0000 (---------------)  + I soc
+	0x002071c3, // n0x1123 c0x0000 (---------------)  + I web
+	0x00232dc3, // n0x1124 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1125 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1126 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x1127 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1128 c0x0000 (---------------)  + I org
+	0x00200882, // n0x1129 c0x0000 (---------------)  + I co
+	0x0024d043, // n0x112a c0x0000 (---------------)  + I org
+	0x00209ac3, // n0x112b c0x0000 (---------------)  + I gov
+	0x002a4783, // n0x112c c0x0000 (---------------)  + I asn
+	0x00232dc3, // n0x112d c0x0000 (---------------)  + I com
+	0x00235884, // n0x112e c0x0000 (---------------)  + I conf
+	0x0021e083, // n0x112f c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1130 c0x0000 (---------------)  + I gov
+	0x00205942, // n0x1131 c0x0000 (---------------)  + I id
+	0x00240443, // n0x1132 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x1133 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1134 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x1135 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1136 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1137 c0x0000 (---------------)  + I gov
+	0x00205942, // n0x1138 c0x0000 (---------------)  + I id
+	0x00210e83, // n0x1139 c0x0000 (---------------)  + I med
+	0x00218643, // n0x113a c0x0000 (---------------)  + I net
+	0x0024d043, // n0x113b c0x0000 (---------------)  + I org
+	0x002cb543, // n0x113c c0x0000 (---------------)  + I plc
+	0x00251983, // n0x113d c0x0000 (---------------)  + I sch
+	0x00200b82, // n0x113e c0x0000 (---------------)  + I ac
+	0x00200882, // n0x113f c0x0000 (---------------)  + I co
+	0x00209ac3, // n0x1140 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x1141 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1142 c0x0000 (---------------)  + I org
+	0x0022ad45, // n0x1143 c0x0000 (---------------)  + I press
+	0x00278344, // n0x1144 c0x0000 (---------------)  + I asso
+	0x002032c2, // n0x1145 c0x0000 (---------------)  + I tm
+	0x00200b82, // n0x1146 c0x0000 (---------------)  + I ac
+	0x00200882, // n0x1147 c0x0000 (---------------)  + I co
+	0x0021e083, // n0x1148 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1149 c0x0000 (---------------)  + I gov
+	0x00234383, // n0x114a c0x0000 (---------------)  + I its
+	0x00218643, // n0x114b c0x0000 (---------------)  + I net
+	0x0024d043, // n0x114c c0x0000 (---------------)  + I org
+	0x002cfac4, // n0x114d c0x0000 (---------------)  + I priv
+	0x00232dc3, // n0x114e c0x0000 (---------------)  + I com
+	0x0021e083, // n0x114f c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1150 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x1151 c0x0000 (---------------)  + I mil
+	0x002104c3, // n0x1152 c0x0000 (---------------)  + I nom
+	0x0024d043, // n0x1153 c0x0000 (---------------)  + I org
+	0x002cf303, // n0x1154 c0x0000 (---------------)  + I prd
+	0x002032c2, // n0x1155 c0x0000 (---------------)  + I tm
+	0x00232dc3, // n0x1156 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1157 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1158 c0x0000 (---------------)  + I gov
+	0x00206e83, // n0x1159 c0x0000 (---------------)  + I inf
+	0x00267944, // n0x115a c0x0000 (---------------)  + I name
+	0x00218643, // n0x115b c0x0000 (---------------)  + I net
+	0x0024d043, // n0x115c c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x115d c0x0000 (---------------)  + I com
+	0x0021e083, // n0x115e c0x0000 (---------------)  + I edu
+	0x00252544, // n0x115f c0x0000 (---------------)  + I gouv
+	0x00209ac3, // n0x1160 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x1161 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1162 c0x0000 (---------------)  + I org
+	0x0022ad46, // n0x1163 c0x0000 (---------------)  + I presse
+	0x0021e083, // n0x1164 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1165 c0x0000 (---------------)  + I gov
+	0x0001af43, // n0x1166 c0x0000 (---------------)  +   nyc
+	0x0024d043, // n0x1167 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x1168 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1169 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x116a c0x0000 (---------------)  + I gov
+	0x00218643, // n0x116b c0x0000 (---------------)  + I net
+	0x0024d043, // n0x116c c0x0000 (---------------)  + I org
+	0x0009e448, // n0x116d c0x0000 (---------------)  +   blogspot
+	0x00209ac3, // n0x116e c0x0000 (---------------)  + I gov
+	0x00232dc3, // n0x116f c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1170 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1171 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x1172 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1173 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x1174 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1175 c0x0000 (---------------)  + I edu
+	0x00218643, // n0x1176 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1177 c0x0000 (---------------)  + I org
+	0x00200b82, // n0x1178 c0x0000 (---------------)  + I ac
+	0x00200882, // n0x1179 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x117a c0x0000 (---------------)  + I com
+	0x00209ac3, // n0x117b c0x0000 (---------------)  + I gov
+	0x00218643, // n0x117c c0x0000 (---------------)  + I net
+	0x00200d02, // n0x117d c0x0000 (---------------)  + I or
+	0x0024d043, // n0x117e c0x0000 (---------------)  + I org
+	0x002fe987, // n0x117f c0x0000 (---------------)  + I academy
+	0x002ee00b, // n0x1180 c0x0000 (---------------)  + I agriculture
+	0x00222943, // n0x1181 c0x0000 (---------------)  + I air
+	0x0024e648, // n0x1182 c0x0000 (---------------)  + I airguard
+	0x00377f47, // n0x1183 c0x0000 (---------------)  + I alabama
+	0x002abec6, // n0x1184 c0x0000 (---------------)  + I alaska
+	0x002f8e05, // n0x1185 c0x0000 (---------------)  + I amber
+	0x00383909, // n0x1186 c0x0000 (---------------)  + I ambulance
+	0x00237b48, // n0x1187 c0x0000 (---------------)  + I american
+	0x00237b49, // n0x1188 c0x0000 (---------------)  + I americana
+	0x00274990, // n0x1189 c0x0000 (---------------)  + I americanantiques
+	0x00237b4b, // n0x118a c0x0000 (---------------)  + I americanart
+	0x002f8c49, // n0x118b c0x0000 (---------------)  + I amsterdam
+	0x00205fc3, // n0x118c c0x0000 (---------------)  + I and
+	0x002e0e49, // n0x118d c0x0000 (---------------)  + I annefrank
+	0x00236846, // n0x118e c0x0000 (---------------)  + I anthro
+	0x0023684c, // n0x118f c0x0000 (---------------)  + I anthropology
+	0x00232908, // n0x1190 c0x0000 (---------------)  + I antiques
+	0x0036bc48, // n0x1191 c0x0000 (---------------)  + I aquarium
+	0x00263cc9, // n0x1192 c0x0000 (---------------)  + I arboretum
+	0x002d828e, // n0x1193 c0x0000 (---------------)  + I archaeological
+	0x002c340b, // n0x1194 c0x0000 (---------------)  + I archaeology
+	0x00229ecc, // n0x1195 c0x0000 (---------------)  + I architecture
+	0x00208d43, // n0x1196 c0x0000 (---------------)  + I art
+	0x00237d4c, // n0x1197 c0x0000 (---------------)  + I artanddesign
+	0x002ec189, // n0x1198 c0x0000 (---------------)  + I artcenter
+	0x00208d47, // n0x1199 c0x0000 (---------------)  + I artdeco
+	0x0021dfcc, // n0x119a c0x0000 (---------------)  + I arteducation
+	0x002372ca, // n0x119b c0x0000 (---------------)  + I artgallery
+	0x0020b384, // n0x119c c0x0000 (---------------)  + I arts
+	0x0020b38d, // n0x119d c0x0000 (---------------)  + I artsandcrafts
+	0x002ec048, // n0x119e c0x0000 (---------------)  + I asmatart
+	0x0036f4cd, // n0x119f c0x0000 (---------------)  + I assassination
+	0x0029b006, // n0x11a0 c0x0000 (---------------)  + I assisi
+	0x002c51cb, // n0x11a1 c0x0000 (---------------)  + I association
+	0x003459c9, // n0x11a2 c0x0000 (---------------)  + I astronomy
+	0x002b6947, // n0x11a3 c0x0000 (---------------)  + I atlanta
+	0x0036b806, // n0x11a4 c0x0000 (---------------)  + I austin
+	0x0032d809, // n0x11a5 c0x0000 (---------------)  + I australia
+	0x0033490a, // n0x11a6 c0x0000 (---------------)  + I automotive
+	0x00332d48, // n0x11a7 c0x0000 (---------------)  + I aviation
+	0x0026a344, // n0x11a8 c0x0000 (---------------)  + I axis
+	0x002fb107, // n0x11a9 c0x0000 (---------------)  + I badajoz
+	0x0020da87, // n0x11aa c0x0000 (---------------)  + I baghdad
+	0x0030b4c4, // n0x11ab c0x0000 (---------------)  + I bahn
+	0x00349604, // n0x11ac c0x0000 (---------------)  + I bale
+	0x002d9c49, // n0x11ad c0x0000 (---------------)  + I baltimore
+	0x002f9609, // n0x11ae c0x0000 (---------------)  + I barcelona
+	0x00285848, // n0x11af c0x0000 (---------------)  + I baseball
+	0x00212c85, // n0x11b0 c0x0000 (---------------)  + I basel
+	0x00214405, // n0x11b1 c0x0000 (---------------)  + I baths
+	0x0020cd46, // n0x11b2 c0x0000 (---------------)  + I bauern
+	0x0020b249, // n0x11b3 c0x0000 (---------------)  + I beauxarts
+	0x0036964d, // n0x11b4 c0x0000 (---------------)  + I beeldengeluid
+	0x002111c8, // n0x11b5 c0x0000 (---------------)  + I bellevue
+	0x0020cc47, // n0x11b6 c0x0000 (---------------)  + I bergbau
+	0x002f8e88, // n0x11b7 c0x0000 (---------------)  + I berkeley
+	0x00376686, // n0x11b8 c0x0000 (---------------)  + I berlin
+	0x0037bb04, // n0x11b9 c0x0000 (---------------)  + I bern
+	0x0023ac45, // n0x11ba c0x0000 (---------------)  + I bible
+	0x00207606, // n0x11bb c0x0000 (---------------)  + I bilbao
+	0x00207f84, // n0x11bc c0x0000 (---------------)  + I bill
+	0x00208c47, // n0x11bd c0x0000 (---------------)  + I birdart
+	0x0020a2ca, // n0x11be c0x0000 (---------------)  + I birthplace
+	0x00217444, // n0x11bf c0x0000 (---------------)  + I bonn
+	0x00217746, // n0x11c0 c0x0000 (---------------)  + I boston
+	0x00219489, // n0x11c1 c0x0000 (---------------)  + I botanical
+	0x0021948f, // n0x11c2 c0x0000 (---------------)  + I botanicalgarden
+	0x0021a90d, // n0x11c3 c0x0000 (---------------)  + I botanicgarden
+	0x0021ae46, // n0x11c4 c0x0000 (---------------)  + I botany
+	0x0021e6d0, // n0x11c5 c0x0000 (---------------)  + I brandywinevalley
+	0x0021ec06, // n0x11c6 c0x0000 (---------------)  + I brasil
+	0x00220587, // n0x11c7 c0x0000 (---------------)  + I bristol
+	0x00221207, // n0x11c8 c0x0000 (---------------)  + I british
+	0x0022120f, // n0x11c9 c0x0000 (---------------)  + I britishcolumbia
+	0x002248c9, // n0x11ca c0x0000 (---------------)  + I broadcast
+	0x00228a46, // n0x11cb c0x0000 (---------------)  + I brunel
+	0x002297c7, // n0x11cc c0x0000 (---------------)  + I brussel
+	0x002297c8, // n0x11cd c0x0000 (---------------)  + I brussels
+	0x00229b89, // n0x11ce c0x0000 (---------------)  + I bruxelles
+	0x002bd9c8, // n0x11cf c0x0000 (---------------)  + I building
+	0x002c9ac7, // n0x11d0 c0x0000 (---------------)  + I burghof
+	0x00232843, // n0x11d1 c0x0000 (---------------)  + I bus
+	0x0028a746, // n0x11d2 c0x0000 (---------------)  + I bushey
+	0x0023bd48, // n0x11d3 c0x0000 (---------------)  + I cadaques
+	0x002d854a, // n0x11d4 c0x0000 (---------------)  + I california
+	0x00216409, // n0x11d5 c0x0000 (---------------)  + I cambridge
+	0x002180c3, // n0x11d6 c0x0000 (---------------)  + I can
+	0x00343f06, // n0x11d7 c0x0000 (---------------)  + I canada
+	0x0029da8a, // n0x11d8 c0x0000 (---------------)  + I capebreton
+	0x0021afc7, // n0x11d9 c0x0000 (---------------)  + I carrier
+	0x0021de0a, // n0x11da c0x0000 (---------------)  + I cartoonart
+	0x00320f8e, // n0x11db c0x0000 (---------------)  + I casadelamoneda
+	0x00224a06, // n0x11dc c0x0000 (---------------)  + I castle
+	0x0033a347, // n0x11dd c0x0000 (---------------)  + I castres
+	0x0021a006, // n0x11de c0x0000 (---------------)  + I celtic
+	0x002442c6, // n0x11df c0x0000 (---------------)  + I center
+	0x002fc94b, // n0x11e0 c0x0000 (---------------)  + I chattanooga
+	0x0031394a, // n0x11e1 c0x0000 (---------------)  + I cheltenham
+	0x0032e04d, // n0x11e2 c0x0000 (---------------)  + I chesapeakebay
+	0x00370387, // n0x11e3 c0x0000 (---------------)  + I chicago
+	0x00308508, // n0x11e4 c0x0000 (---------------)  + I children
+	0x00308509, // n0x11e5 c0x0000 (---------------)  + I childrens
+	0x0030850f, // n0x11e6 c0x0000 (---------------)  + I childrensgarden
+	0x0029c58c, // n0x11e7 c0x0000 (---------------)  + I chiropractic
+	0x002a0d89, // n0x11e8 c0x0000 (---------------)  + I chocolate
+	0x003516ce, // n0x11e9 c0x0000 (---------------)  + I christiansburg
+	0x0027468a, // n0x11ea c0x0000 (---------------)  + I cincinnati
+	0x002e1c46, // n0x11eb c0x0000 (---------------)  + I cinema
+	0x0031de46, // n0x11ec c0x0000 (---------------)  + I circus
+	0x0033688c, // n0x11ed c0x0000 (---------------)  + I civilisation
+	0x00338a8c, // n0x11ee c0x0000 (---------------)  + I civilization
+	0x0033e488, // n0x11ef c0x0000 (---------------)  + I civilwar
+	0x003792c7, // n0x11f0 c0x0000 (---------------)  + I clinton
+	0x002060c5, // n0x11f1 c0x0000 (---------------)  + I clock
+	0x00208e84, // n0x11f2 c0x0000 (---------------)  + I coal
+	0x002fa40e, // n0x11f3 c0x0000 (---------------)  + I coastaldefence
+	0x00359204, // n0x11f4 c0x0000 (---------------)  + I cody
+	0x0025e187, // n0x11f5 c0x0000 (---------------)  + I coldwar
+	0x0022ddca, // n0x11f6 c0x0000 (---------------)  + I collection
+	0x00231294, // n0x11f7 c0x0000 (---------------)  + I colonialwilliamsburg
+	0x0023218f, // n0x11f8 c0x0000 (---------------)  + I coloradoplateau
+	0x002213c8, // n0x11f9 c0x0000 (---------------)  + I columbia
+	0x00232708, // n0x11fa c0x0000 (---------------)  + I columbus
+	0x002ceb4d, // n0x11fb c0x0000 (---------------)  + I communication
+	0x002ceb4e, // n0x11fc c0x0000 (---------------)  + I communications
+	0x00232dc9, // n0x11fd c0x0000 (---------------)  + I community
+	0x00234a08, // n0x11fe c0x0000 (---------------)  + I computer
+	0x00234a0f, // n0x11ff c0x0000 (---------------)  + I computerhistory
+	0x00236fcc, // n0x1200 c0x0000 (---------------)  + I contemporary
+	0x00236fcf, // n0x1201 c0x0000 (---------------)  + I contemporaryart
+	0x00238b07, // n0x1202 c0x0000 (---------------)  + I convent
+	0x0023b08a, // n0x1203 c0x0000 (---------------)  + I copenhagen
+	0x0021bd0b, // n0x1204 c0x0000 (---------------)  + I corporation
+	0x0023c808, // n0x1205 c0x0000 (---------------)  + I corvette
+	0x0023dec7, // n0x1206 c0x0000 (---------------)  + I costume
+	0x0025d54d, // n0x1207 c0x0000 (---------------)  + I countryestate
+	0x00322546, // n0x1208 c0x0000 (---------------)  + I county
+	0x0020b546, // n0x1209 c0x0000 (---------------)  + I crafts
+	0x0023f249, // n0x120a c0x0000 (---------------)  + I cranbrook
+	0x0031e188, // n0x120b c0x0000 (---------------)  + I creation
+	0x002440c8, // n0x120c c0x0000 (---------------)  + I cultural
+	0x002440ce, // n0x120d c0x0000 (---------------)  + I culturalcenter
+	0x002ee107, // n0x120e c0x0000 (---------------)  + I culture
+	0x0020a6c5, // n0x120f c0x0000 (---------------)  + I cyber
+	0x002c5c05, // n0x1210 c0x0000 (---------------)  + I cymru
+	0x00222244, // n0x1211 c0x0000 (---------------)  + I dali
+	0x0034cc46, // n0x1212 c0x0000 (---------------)  + I dallas
+	0x00285748, // n0x1213 c0x0000 (---------------)  + I database
+	0x0020fbc3, // n0x1214 c0x0000 (---------------)  + I ddr
+	0x00249dce, // n0x1215 c0x0000 (---------------)  + I decorativearts
+	0x002b6448, // n0x1216 c0x0000 (---------------)  + I delaware
+	0x002a7a8b, // n0x1217 c0x0000 (---------------)  + I delmenhorst
+	0x0035c787, // n0x1218 c0x0000 (---------------)  + I denmark
+	0x002da245, // n0x1219 c0x0000 (---------------)  + I depot
+	0x00237ec6, // n0x121a c0x0000 (---------------)  + I design
+	0x0029ef47, // n0x121b c0x0000 (---------------)  + I detroit
+	0x002f0dc8, // n0x121c c0x0000 (---------------)  + I dinosaur
+	0x00334c49, // n0x121d c0x0000 (---------------)  + I discovery
+	0x0035a285, // n0x121e c0x0000 (---------------)  + I dolls
+	0x0027fdc8, // n0x121f c0x0000 (---------------)  + I donostia
+	0x0036f206, // n0x1220 c0x0000 (---------------)  + I durham
+	0x0034fb4a, // n0x1221 c0x0000 (---------------)  + I eastafrica
+	0x002fa309, // n0x1222 c0x0000 (---------------)  + I eastcoast
+	0x0021e089, // n0x1223 c0x0000 (---------------)  + I education
+	0x0021e08b, // n0x1224 c0x0000 (---------------)  + I educational
+	0x0029aa48, // n0x1225 c0x0000 (---------------)  + I egyptian
+	0x0030b389, // n0x1226 c0x0000 (---------------)  + I eisenbahn
+	0x00212d46, // n0x1227 c0x0000 (---------------)  + I elburg
+	0x003454ca, // n0x1228 c0x0000 (---------------)  + I elvendrell
+	0x00207b4a, // n0x1229 c0x0000 (---------------)  + I embroidery
+	0x0023b28c, // n0x122a c0x0000 (---------------)  + I encyclopedic
+	0x002b0e07, // n0x122b c0x0000 (---------------)  + I england
+	0x00307a4a, // n0x122c c0x0000 (---------------)  + I entomology
+	0x0027f68b, // n0x122d c0x0000 (---------------)  + I environment
+	0x0027f699, // n0x122e c0x0000 (---------------)  + I environmentalconservation
+	0x002182c8, // n0x122f c0x0000 (---------------)  + I epilepsy
+	0x0022adc5, // n0x1230 c0x0000 (---------------)  + I essex
+	0x0025d706, // n0x1231 c0x0000 (---------------)  + I estate
+	0x003003c9, // n0x1232 c0x0000 (---------------)  + I ethnology
+	0x00252886, // n0x1233 c0x0000 (---------------)  + I exeter
+	0x0020138a, // n0x1234 c0x0000 (---------------)  + I exhibition
+	0x002db306, // n0x1235 c0x0000 (---------------)  + I family
+	0x002125c4, // n0x1236 c0x0000 (---------------)  + I farm
+	0x002125cd, // n0x1237 c0x0000 (---------------)  + I farmequipment
+	0x0021f607, // n0x1238 c0x0000 (---------------)  + I farmers
+	0x0024ae49, // n0x1239 c0x0000 (---------------)  + I farmstead
+	0x00287a05, // n0x123a c0x0000 (---------------)  + I field
+	0x002470c8, // n0x123b c0x0000 (---------------)  + I figueres
+	0x00247b49, // n0x123c c0x0000 (---------------)  + I filatelia
+	0x00247d84, // n0x123d c0x0000 (---------------)  + I film
+	0x00248587, // n0x123e c0x0000 (---------------)  + I fineart
+	0x00248588, // n0x123f c0x0000 (---------------)  + I finearts
+	0x00248c47, // n0x1240 c0x0000 (---------------)  + I finland
+	0x0025f808, // n0x1241 c0x0000 (---------------)  + I flanders
+	0x0024e007, // n0x1242 c0x0000 (---------------)  + I florida
+	0x002d2445, // n0x1243 c0x0000 (---------------)  + I force
+	0x002541cc, // n0x1244 c0x0000 (---------------)  + I fortmissoula
+	0x00254809, // n0x1245 c0x0000 (---------------)  + I fortworth
+	0x002d994a, // n0x1246 c0x0000 (---------------)  + I foundation
+	0x00357989, // n0x1247 c0x0000 (---------------)  + I francaise
+	0x002e0f49, // n0x1248 c0x0000 (---------------)  + I frankfurt
+	0x0033ee0c, // n0x1249 c0x0000 (---------------)  + I franziskaner
+	0x0038230b, // n0x124a c0x0000 (---------------)  + I freemasonry
+	0x00256d08, // n0x124b c0x0000 (---------------)  + I freiburg
+	0x00257bc8, // n0x124c c0x0000 (---------------)  + I fribourg
+	0x0025bac4, // n0x124d c0x0000 (---------------)  + I frog
+	0x0027bdc8, // n0x124e c0x0000 (---------------)  + I fundacio
+	0x0027da49, // n0x124f c0x0000 (---------------)  + I furniture
+	0x00237387, // n0x1250 c0x0000 (---------------)  + I gallery
+	0x002196c6, // n0x1251 c0x0000 (---------------)  + I garden
+	0x00216987, // n0x1252 c0x0000 (---------------)  + I gateway
+	0x0032e6c9, // n0x1253 c0x0000 (---------------)  + I geelvinck
+	0x0036138b, // n0x1254 c0x0000 (---------------)  + I gemological
+	0x00344207, // n0x1255 c0x0000 (---------------)  + I geology
+	0x00321f47, // n0x1256 c0x0000 (---------------)  + I georgia
+	0x0027f547, // n0x1257 c0x0000 (---------------)  + I giessen
+	0x0036f444, // n0x1258 c0x0000 (---------------)  + I glas
+	0x0036f445, // n0x1259 c0x0000 (---------------)  + I glass
+	0x0029c0c5, // n0x125a c0x0000 (---------------)  + I gorge
+	0x0031568b, // n0x125b c0x0000 (---------------)  + I grandrapids
+	0x0035e7c4, // n0x125c c0x0000 (---------------)  + I graz
+	0x00227308, // n0x125d c0x0000 (---------------)  + I guernsey
+	0x00290fca, // n0x125e c0x0000 (---------------)  + I halloffame
+	0x0036f2c7, // n0x125f c0x0000 (---------------)  + I hamburg
+	0x00358847, // n0x1260 c0x0000 (---------------)  + I handson
+	0x00284852, // n0x1261 c0x0000 (---------------)  + I harvestcelebration
+	0x00288206, // n0x1262 c0x0000 (---------------)  + I hawaii
+	0x00241cc6, // n0x1263 c0x0000 (---------------)  + I health
+	0x002dab8e, // n0x1264 c0x0000 (---------------)  + I heimatunduhren
+	0x002ace06, // n0x1265 c0x0000 (---------------)  + I hellas
+	0x0020eb08, // n0x1266 c0x0000 (---------------)  + I helsinki
+	0x0035a4cf, // n0x1267 c0x0000 (---------------)  + I hembygdsforbund
+	0x0036f888, // n0x1268 c0x0000 (---------------)  + I heritage
+	0x0026a648, // n0x1269 c0x0000 (---------------)  + I histoire
+	0x002e884a, // n0x126a c0x0000 (---------------)  + I historical
+	0x002e8851, // n0x126b c0x0000 (---------------)  + I historicalsociety
+	0x00296d8e, // n0x126c c0x0000 (---------------)  + I historichouses
+	0x002517ca, // n0x126d c0x0000 (---------------)  + I historisch
+	0x002517cc, // n0x126e c0x0000 (---------------)  + I historisches
+	0x00234c07, // n0x126f c0x0000 (---------------)  + I history
+	0x00234c10, // n0x1270 c0x0000 (---------------)  + I historyofscience
+	0x00204e08, // n0x1271 c0x0000 (---------------)  + I horology
+	0x0022ca85, // n0x1272 c0x0000 (---------------)  + I house
+	0x002e50ca, // n0x1273 c0x0000 (---------------)  + I humanities
+	0x00207fcc, // n0x1274 c0x0000 (---------------)  + I illustration
+	0x002d468d, // n0x1275 c0x0000 (---------------)  + I imageandsound
+	0x00226c06, // n0x1276 c0x0000 (---------------)  + I indian
+	0x002e2587, // n0x1277 c0x0000 (---------------)  + I indiana
+	0x002e258c, // n0x1278 c0x0000 (---------------)  + I indianapolis
+	0x00226c0c, // n0x1279 c0x0000 (---------------)  + I indianmarket
+	0x002188cc, // n0x127a c0x0000 (---------------)  + I intelligence
+	0x002a038b, // n0x127b c0x0000 (---------------)  + I interactive
+	0x0027eec4, // n0x127c c0x0000 (---------------)  + I iraq
+	0x0021c2c4, // n0x127d c0x0000 (---------------)  + I iron
+	0x003406c9, // n0x127e c0x0000 (---------------)  + I isleofman
+	0x002bd2c7, // n0x127f c0x0000 (---------------)  + I jamison
+	0x0022eec9, // n0x1280 c0x0000 (---------------)  + I jefferson
+	0x002d7909, // n0x1281 c0x0000 (---------------)  + I jerusalem
+	0x00378e87, // n0x1282 c0x0000 (---------------)  + I jewelry
+	0x002a11c6, // n0x1283 c0x0000 (---------------)  + I jewish
+	0x002a11c9, // n0x1284 c0x0000 (---------------)  + I jewishart
+	0x002a1803, // n0x1285 c0x0000 (---------------)  + I jfk
+	0x002b954a, // n0x1286 c0x0000 (---------------)  + I journalism
+	0x00367007, // n0x1287 c0x0000 (---------------)  + I judaica
+	0x002384cb, // n0x1288 c0x0000 (---------------)  + I judygarland
+	0x0032deca, // n0x1289 c0x0000 (---------------)  + I juedisches
+	0x00257ec4, // n0x128a c0x0000 (---------------)  + I juif
+	0x002f1f06, // n0x128b c0x0000 (---------------)  + I karate
+	0x002b4d09, // n0x128c c0x0000 (---------------)  + I karikatur
+	0x0025c784, // n0x128d c0x0000 (---------------)  + I kids
+	0x0020cf4a, // n0x128e c0x0000 (---------------)  + I koebenhavn
+	0x0024db85, // n0x128f c0x0000 (---------------)  + I koeln
+	0x002a9905, // n0x1290 c0x0000 (---------------)  + I kunst
+	0x002a990d, // n0x1291 c0x0000 (---------------)  + I kunstsammlung
+	0x002a9c4e, // n0x1292 c0x0000 (---------------)  + I kunstunddesign
+	0x00306685, // n0x1293 c0x0000 (---------------)  + I labor
+	0x0035e106, // n0x1294 c0x0000 (---------------)  + I labour
+	0x003819c7, // n0x1295 c0x0000 (---------------)  + I lajolla
+	0x0022268a, // n0x1296 c0x0000 (---------------)  + I lancashire
+	0x0037d1c6, // n0x1297 c0x0000 (---------------)  + I landes
+	0x002a8ac4, // n0x1298 c0x0000 (---------------)  + I lans
+	0x003109c7, // n0x1299 c0x0000 (---------------)  + I larsson
+	0x0029730b, // n0x129a c0x0000 (---------------)  + I lewismiller
+	0x00376747, // n0x129b c0x0000 (---------------)  + I lincoln
+	0x00369304, // n0x129c c0x0000 (---------------)  + I linz
+	0x00284006, // n0x129d c0x0000 (---------------)  + I living
+	0x0028400d, // n0x129e c0x0000 (---------------)  + I livinghistory
+	0x00253ecc, // n0x129f c0x0000 (---------------)  + I localhistory
+	0x0021d286, // n0x12a0 c0x0000 (---------------)  + I london
+	0x0021500a, // n0x12a1 c0x0000 (---------------)  + I losangeles
+	0x00226286, // n0x12a2 c0x0000 (---------------)  + I louvre
+	0x0036be88, // n0x12a3 c0x0000 (---------------)  + I loyalist
+	0x00380847, // n0x12a4 c0x0000 (---------------)  + I lucerne
+	0x00242aca, // n0x12a5 c0x0000 (---------------)  + I luxembourg
+	0x00248246, // n0x12a6 c0x0000 (---------------)  + I luzern
+	0x00276743, // n0x12a7 c0x0000 (---------------)  + I mad
+	0x00309b86, // n0x12a8 c0x0000 (---------------)  + I madrid
+	0x00364908, // n0x12a9 c0x0000 (---------------)  + I mallorca
+	0x0034084a, // n0x12aa c0x0000 (---------------)  + I manchester
+	0x00279207, // n0x12ab c0x0000 (---------------)  + I mansion
+	0x00279208, // n0x12ac c0x0000 (---------------)  + I mansions
+	0x0027c384, // n0x12ad c0x0000 (---------------)  + I manx
+	0x00322fc7, // n0x12ae c0x0000 (---------------)  + I marburg
+	0x00246948, // n0x12af c0x0000 (---------------)  + I maritime
+	0x003172c8, // n0x12b0 c0x0000 (---------------)  + I maritimo
+	0x0036a988, // n0x12b1 c0x0000 (---------------)  + I maryland
+	0x0020448a, // n0x12b2 c0x0000 (---------------)  + I marylhurst
+	0x0021e585, // n0x12b3 c0x0000 (---------------)  + I media
+	0x00384a47, // n0x12b4 c0x0000 (---------------)  + I medical
+	0x00251613, // n0x12b5 c0x0000 (---------------)  + I medizinhistorisches
+	0x00264ac6, // n0x12b6 c0x0000 (---------------)  + I meeres
+	0x0035fe88, // n0x12b7 c0x0000 (---------------)  + I memorial
+	0x002a78c9, // n0x12b8 c0x0000 (---------------)  + I mesaverde
+	0x002250c8, // n0x12b9 c0x0000 (---------------)  + I michigan
+	0x0026324b, // n0x12ba c0x0000 (---------------)  + I midatlantic
+	0x00315248, // n0x12bb c0x0000 (---------------)  + I military
+	0x00240444, // n0x12bc c0x0000 (---------------)  + I mill
+	0x002adb06, // n0x12bd c0x0000 (---------------)  + I miners
+	0x00386146, // n0x12be c0x0000 (---------------)  + I mining
+	0x002e8109, // n0x12bf c0x0000 (---------------)  + I minnesota
+	0x002b2bc7, // n0x12c0 c0x0000 (---------------)  + I missile
+	0x002542c8, // n0x12c1 c0x0000 (---------------)  + I missoula
+	0x002932c6, // n0x12c2 c0x0000 (---------------)  + I modern
+	0x0022b784, // n0x12c3 c0x0000 (---------------)  + I moma
+	0x002bac05, // n0x12c4 c0x0000 (---------------)  + I money
+	0x002b5548, // n0x12c5 c0x0000 (---------------)  + I monmouth
+	0x002b580a, // n0x12c6 c0x0000 (---------------)  + I monticello
+	0x002b6048, // n0x12c7 c0x0000 (---------------)  + I montreal
+	0x002bbb46, // n0x12c8 c0x0000 (---------------)  + I moscow
+	0x0029088a, // n0x12c9 c0x0000 (---------------)  + I motorcycle
+	0x002ed3c8, // n0x12ca c0x0000 (---------------)  + I muenchen
+	0x002be1c8, // n0x12cb c0x0000 (---------------)  + I muenster
+	0x002bf1c8, // n0x12cc c0x0000 (---------------)  + I mulhouse
+	0x002c0686, // n0x12cd c0x0000 (---------------)  + I muncie
+	0x002c2446, // n0x12ce c0x0000 (---------------)  + I museet
+	0x00311b0c, // n0x12cf c0x0000 (---------------)  + I museumcenter
+	0x002c2a10, // n0x12d0 c0x0000 (---------------)  + I museumvereniging
+	0x00294545, // n0x12d1 c0x0000 (---------------)  + I music
+	0x002f0408, // n0x12d2 c0x0000 (---------------)  + I national
+	0x002f0410, // n0x12d3 c0x0000 (---------------)  + I nationalfirearms
+	0x0036f690, // n0x12d4 c0x0000 (---------------)  + I nationalheritage
+	0x0027480e, // n0x12d5 c0x0000 (---------------)  + I nativeamerican
+	0x0031178e, // n0x12d6 c0x0000 (---------------)  + I naturalhistory
+	0x00311794, // n0x12d7 c0x0000 (---------------)  + I naturalhistorymuseum
+	0x0031288f, // n0x12d8 c0x0000 (---------------)  + I naturalsciences
+	0x00312c46, // n0x12d9 c0x0000 (---------------)  + I nature
+	0x0031a4d1, // n0x12da c0x0000 (---------------)  + I naturhistorisches
+	0x0036ae13, // n0x12db c0x0000 (---------------)  + I natuurwetenschappen
+	0x0036b288, // n0x12dc c0x0000 (---------------)  + I naumburg
+	0x00382dc5, // n0x12dd c0x0000 (---------------)  + I naval
+	0x00272788, // n0x12de c0x0000 (---------------)  + I nebraska
+	0x0022c645, // n0x12df c0x0000 (---------------)  + I neues
+	0x00230c4c, // n0x12e0 c0x0000 (---------------)  + I newhampshire
+	0x00242489, // n0x12e1 c0x0000 (---------------)  + I newjersey
+	0x00273cc9, // n0x12e2 c0x0000 (---------------)  + I newmexico
+	0x00216707, // n0x12e3 c0x0000 (---------------)  + I newport
+	0x00234589, // n0x12e4 c0x0000 (---------------)  + I newspaper
+	0x0021f847, // n0x12e5 c0x0000 (---------------)  + I newyork
+	0x0021c606, // n0x12e6 c0x0000 (---------------)  + I niepce
+	0x0023aa47, // n0x12e7 c0x0000 (---------------)  + I norfolk
+	0x002e6285, // n0x12e8 c0x0000 (---------------)  + I north
+	0x0022d2c3, // n0x12e9 c0x0000 (---------------)  + I nrw
+	0x0020fd89, // n0x12ea c0x0000 (---------------)  + I nuernberg
+	0x002f6009, // n0x12eb c0x0000 (---------------)  + I nuremberg
+	0x0021af43, // n0x12ec c0x0000 (---------------)  + I nyc
+	0x002335c4, // n0x12ed c0x0000 (---------------)  + I nyny
+	0x00376c0d, // n0x12ee c0x0000 (---------------)  + I oceanographic
+	0x0020698f, // n0x12ef c0x0000 (---------------)  + I oceanographique
+	0x002f4f85, // n0x12f0 c0x0000 (---------------)  + I omaha
+	0x0030be06, // n0x12f1 c0x0000 (---------------)  + I online
+	0x0022fc87, // n0x12f2 c0x0000 (---------------)  + I ontario
+	0x00347807, // n0x12f3 c0x0000 (---------------)  + I openair
+	0x002814c6, // n0x12f4 c0x0000 (---------------)  + I oregon
+	0x002814cb, // n0x12f5 c0x0000 (---------------)  + I oregontrail
+	0x00297dc5, // n0x12f6 c0x0000 (---------------)  + I otago
+	0x003810c6, // n0x12f7 c0x0000 (---------------)  + I oxford
+	0x00269607, // n0x12f8 c0x0000 (---------------)  + I pacific
+	0x00225709, // n0x12f9 c0x0000 (---------------)  + I paderborn
+	0x00200ac6, // n0x12fa c0x0000 (---------------)  + I palace
+	0x0022b305, // n0x12fb c0x0000 (---------------)  + I paleo
+	0x0022e70b, // n0x12fc c0x0000 (---------------)  + I palmsprings
+	0x0024aa86, // n0x12fd c0x0000 (---------------)  + I panama
+	0x00256585, // n0x12fe c0x0000 (---------------)  + I paris
+	0x002cbe48, // n0x12ff c0x0000 (---------------)  + I pasadena
+	0x002c5a88, // n0x1300 c0x0000 (---------------)  + I pharmacy
+	0x002c5e4c, // n0x1301 c0x0000 (---------------)  + I philadelphia
+	0x002c5e50, // n0x1302 c0x0000 (---------------)  + I philadelphiaarea
+	0x002c6509, // n0x1303 c0x0000 (---------------)  + I philately
+	0x002c6c07, // n0x1304 c0x0000 (---------------)  + I phoenix
+	0x002c718b, // n0x1305 c0x0000 (---------------)  + I photography
+	0x002c8e06, // n0x1306 c0x0000 (---------------)  + I pilots
+	0x002c998a, // n0x1307 c0x0000 (---------------)  + I pittsburgh
+	0x002ca30b, // n0x1308 c0x0000 (---------------)  + I planetarium
+	0x002cab4a, // n0x1309 c0x0000 (---------------)  + I plantation
+	0x002cadc6, // n0x130a c0x0000 (---------------)  + I plants
+	0x002cb405, // n0x130b c0x0000 (---------------)  + I plaza
+	0x00366d46, // n0x130c c0x0000 (---------------)  + I portal
+	0x0027e008, // n0x130d c0x0000 (---------------)  + I portland
+	0x002167ca, // n0x130e c0x0000 (---------------)  + I portlligat
+	0x002ce7dc, // n0x130f c0x0000 (---------------)  + I posts-and-telecommunications
+	0x002cf3cc, // n0x1310 c0x0000 (---------------)  + I preservation
+	0x002cf6c8, // n0x1311 c0x0000 (---------------)  + I presidio
+	0x0022ad45, // n0x1312 c0x0000 (---------------)  + I press
+	0x002d0fc7, // n0x1313 c0x0000 (---------------)  + I project
+	0x002d7ec6, // n0x1314 c0x0000 (---------------)  + I public
+	0x00375845, // n0x1315 c0x0000 (---------------)  + I pubol
+	0x0021b2c6, // n0x1316 c0x0000 (---------------)  + I quebec
+	0x00281688, // n0x1317 c0x0000 (---------------)  + I railroad
+	0x00342b07, // n0x1318 c0x0000 (---------------)  + I railway
+	0x002d8188, // n0x1319 c0x0000 (---------------)  + I research
+	0x0033a44a, // n0x131a c0x0000 (---------------)  + I resistance
+	0x002ee8cc, // n0x131b c0x0000 (---------------)  + I riodejaneiro
+	0x002eeb49, // n0x131c c0x0000 (---------------)  + I rochester
+	0x0037bc87, // n0x131d c0x0000 (---------------)  + I rockart
+	0x00225c04, // n0x131e c0x0000 (---------------)  + I roma
+	0x002c5cc6, // n0x131f c0x0000 (---------------)  + I russia
+	0x002ea34a, // n0x1320 c0x0000 (---------------)  + I saintlouis
+	0x002d7a05, // n0x1321 c0x0000 (---------------)  + I salem
+	0x0022204c, // n0x1322 c0x0000 (---------------)  + I salvadordali
+	0x00224d48, // n0x1323 c0x0000 (---------------)  + I salzburg
+	0x00322888, // n0x1324 c0x0000 (---------------)  + I sandiego
+	0x00250a0c, // n0x1325 c0x0000 (---------------)  + I sanfrancisco
+	0x00232acc, // n0x1326 c0x0000 (---------------)  + I santabarbara
+	0x0023bf09, // n0x1327 c0x0000 (---------------)  + I santacruz
+	0x0023ed47, // n0x1328 c0x0000 (---------------)  + I santafe
+	0x0025220c, // n0x1329 c0x0000 (---------------)  + I saskatchewan
+	0x00255bc4, // n0x132a c0x0000 (---------------)  + I satx
+	0x0025e88a, // n0x132b c0x0000 (---------------)  + I savannahga
+	0x003856cc, // n0x132c c0x0000 (---------------)  + I schlesisches
+	0x0026638b, // n0x132d c0x0000 (---------------)  + I schoenbrunn
+	0x0026d70b, // n0x132e c0x0000 (---------------)  + I schokoladen
+	0x00275006, // n0x132f c0x0000 (---------------)  + I school
+	0x0027cb07, // n0x1330 c0x0000 (---------------)  + I schweiz
+	0x00234e47, // n0x1331 c0x0000 (---------------)  + I science
+	0x00234e4f, // n0x1332 c0x0000 (---------------)  + I science-fiction
+	0x002e2cd1, // n0x1333 c0x0000 (---------------)  + I scienceandhistory
+	0x0026fc12, // n0x1334 c0x0000 (---------------)  + I scienceandindustry
+	0x0027e6cd, // n0x1335 c0x0000 (---------------)  + I sciencecenter
+	0x0027e6ce, // n0x1336 c0x0000 (---------------)  + I sciencecenters
+	0x0027ea0e, // n0x1337 c0x0000 (---------------)  + I sciencehistory
+	0x00312a48, // n0x1338 c0x0000 (---------------)  + I sciences
+	0x00312a52, // n0x1339 c0x0000 (---------------)  + I sciencesnaturelles
+	0x00250c48, // n0x133a c0x0000 (---------------)  + I scotland
+	0x002f2807, // n0x133b c0x0000 (---------------)  + I seaport
+	0x0024b38a, // n0x133c c0x0000 (---------------)  + I settlement
+	0x0021d048, // n0x133d c0x0000 (---------------)  + I settlers
+	0x002acdc5, // n0x133e c0x0000 (---------------)  + I shell
+	0x002afe8a, // n0x133f c0x0000 (---------------)  + I sherbrooke
+	0x0029b107, // n0x1340 c0x0000 (---------------)  + I sibenik
+	0x0033aac4, // n0x1341 c0x0000 (---------------)  + I silk
+	0x00221943, // n0x1342 c0x0000 (---------------)  + I ski
+	0x002f5245, // n0x1343 c0x0000 (---------------)  + I skole
+	0x002e8ac7, // n0x1344 c0x0000 (---------------)  + I society
+	0x0034f247, // n0x1345 c0x0000 (---------------)  + I sologne
+	0x002d488e, // n0x1346 c0x0000 (---------------)  + I soundandvision
+	0x002d87cd, // n0x1347 c0x0000 (---------------)  + I southcarolina
+	0x002d8c09, // n0x1348 c0x0000 (---------------)  + I southwest
+	0x002d91c5, // n0x1349 c0x0000 (---------------)  + I space
+	0x002dc043, // n0x134a c0x0000 (---------------)  + I spy
+	0x00365006, // n0x134b c0x0000 (---------------)  + I square
+	0x00256a45, // n0x134c c0x0000 (---------------)  + I stadt
+	0x002a7cc8, // n0x134d c0x0000 (---------------)  + I stalbans
+	0x002c01c9, // n0x134e c0x0000 (---------------)  + I starnberg
+	0x0025d745, // n0x134f c0x0000 (---------------)  + I state
+	0x002b628f, // n0x1350 c0x0000 (---------------)  + I stateofdelaware
+	0x00225f47, // n0x1351 c0x0000 (---------------)  + I station
+	0x00383845, // n0x1352 c0x0000 (---------------)  + I steam
+	0x002ff18a, // n0x1353 c0x0000 (---------------)  + I steiermark
+	0x00206706, // n0x1354 c0x0000 (---------------)  + I stjohn
+	0x0036c009, // n0x1355 c0x0000 (---------------)  + I stockholm
+	0x002dcc0c, // n0x1356 c0x0000 (---------------)  + I stpetersburg
+	0x002dde09, // n0x1357 c0x0000 (---------------)  + I stuttgart
+	0x0020bd86, // n0x1358 c0x0000 (---------------)  + I suisse
+	0x00290dcc, // n0x1359 c0x0000 (---------------)  + I surgeonshall
+	0x002de486, // n0x135a c0x0000 (---------------)  + I surrey
+	0x002e1e48, // n0x135b c0x0000 (---------------)  + I svizzera
+	0x00245d86, // n0x135c c0x0000 (---------------)  + I sweden
+	0x00266bc6, // n0x135d c0x0000 (---------------)  + I sydney
+	0x0029bd44, // n0x135e c0x0000 (---------------)  + I tank
+	0x002a4403, // n0x135f c0x0000 (---------------)  + I tcm
+	0x002a394a, // n0x1360 c0x0000 (---------------)  + I technology
+	0x00311391, // n0x1361 c0x0000 (---------------)  + I telekommunikation
+	0x002a0f4a, // n0x1362 c0x0000 (---------------)  + I television
+	0x0031e985, // n0x1363 c0x0000 (---------------)  + I texas
+	0x00295047, // n0x1364 c0x0000 (---------------)  + I textile
+	0x0036d6c7, // n0x1365 c0x0000 (---------------)  + I theater
+	0x00246a44, // n0x1366 c0x0000 (---------------)  + I time
+	0x00246a4b, // n0x1367 c0x0000 (---------------)  + I timekeeping
+	0x002ec988, // n0x1368 c0x0000 (---------------)  + I topology
+	0x002a6206, // n0x1369 c0x0000 (---------------)  + I torino
+	0x002318c5, // n0x136a c0x0000 (---------------)  + I touch
+	0x0023bb04, // n0x136b c0x0000 (---------------)  + I town
+	0x0028f1c9, // n0x136c c0x0000 (---------------)  + I transport
+	0x0029d704, // n0x136d c0x0000 (---------------)  + I tree
+	0x00222d07, // n0x136e c0x0000 (---------------)  + I trolley
+	0x00313345, // n0x136f c0x0000 (---------------)  + I trust
+	0x00313347, // n0x1370 c0x0000 (---------------)  + I trustee
+	0x002dadc5, // n0x1371 c0x0000 (---------------)  + I uhren
+	0x00216b83, // n0x1372 c0x0000 (---------------)  + I ulm
+	0x002f26c8, // n0x1373 c0x0000 (---------------)  + I undersea
+	0x003826ca, // n0x1374 c0x0000 (---------------)  + I university
+	0x00232883, // n0x1375 c0x0000 (---------------)  + I usa
+	0x0023288a, // n0x1376 c0x0000 (---------------)  + I usantiques
+	0x00378506, // n0x1377 c0x0000 (---------------)  + I usarts
+	0x0025d4cf, // n0x1378 c0x0000 (---------------)  + I uscountryestate
+	0x0031df49, // n0x1379 c0x0000 (---------------)  + I usculture
+	0x00249d50, // n0x137a c0x0000 (---------------)  + I usdecorativearts
+	0x0025f208, // n0x137b c0x0000 (---------------)  + I usgarden
+	0x002bbdc9, // n0x137c c0x0000 (---------------)  + I ushistory
+	0x0028b247, // n0x137d c0x0000 (---------------)  + I ushuaia
+	0x00283f8f, // n0x137e c0x0000 (---------------)  + I uslivinghistory
+	0x00202fc4, // n0x137f c0x0000 (---------------)  + I utah
+	0x002525c4, // n0x1380 c0x0000 (---------------)  + I uvic
+	0x0021e946, // n0x1381 c0x0000 (---------------)  + I valley
+	0x0022f946, // n0x1382 c0x0000 (---------------)  + I vantaa
+	0x002e7b4a, // n0x1383 c0x0000 (---------------)  + I versailles
+	0x002b67c6, // n0x1384 c0x0000 (---------------)  + I viking
+	0x0031d1c7, // n0x1385 c0x0000 (---------------)  + I village
+	0x002efb88, // n0x1386 c0x0000 (---------------)  + I virginia
+	0x002efd87, // n0x1387 c0x0000 (---------------)  + I virtual
+	0x002eff47, // n0x1388 c0x0000 (---------------)  + I virtuel
+	0x00326bca, // n0x1389 c0x0000 (---------------)  + I vlaanderen
+	0x002f250b, // n0x138a c0x0000 (---------------)  + I volkenkunde
+	0x00236485, // n0x138b c0x0000 (---------------)  + I wales
+	0x0026f848, // n0x138c c0x0000 (---------------)  + I wallonie
+	0x00235783, // n0x138d c0x0000 (---------------)  + I war
+	0x0020014c, // n0x138e c0x0000 (---------------)  + I washingtondc
+	0x00205e4f, // n0x138f c0x0000 (---------------)  + I watch-and-clock
+	0x0036e34d, // n0x1390 c0x0000 (---------------)  + I watchandclock
+	0x002d8d47, // n0x1391 c0x0000 (---------------)  + I western
+	0x00211789, // n0x1392 c0x0000 (---------------)  + I westfalen
+	0x0022d347, // n0x1393 c0x0000 (---------------)  + I whaling
+	0x00276ec8, // n0x1394 c0x0000 (---------------)  + I wildlife
+	0x0023148c, // n0x1395 c0x0000 (---------------)  + I williamsburg
+	0x00240348, // n0x1396 c0x0000 (---------------)  + I windmill
+	0x0022e548, // n0x1397 c0x0000 (---------------)  + I workshop
+	0x0030004e, // n0x1398 c0x0000 (---------------)  + I xn--9dbhblg6di
+	0x0030f0d4, // n0x1399 c0x0000 (---------------)  + I xn--comunicaes-v6a2o
+	0x0030f5e4, // n0x139a c0x0000 (---------------)  + I xn--correios-e-telecomunicaes-ghc29a
+	0x0032084a, // n0x139b c0x0000 (---------------)  + I xn--h1aegh
+	0x0033794b, // n0x139c c0x0000 (---------------)  + I xn--lns-qla
+	0x0021f904, // n0x139d c0x0000 (---------------)  + I york
+	0x0021f909, // n0x139e c0x0000 (---------------)  + I yorkshire
+	0x002e6f08, // n0x139f c0x0000 (---------------)  + I yosemite
+	0x00341085, // n0x13a0 c0x0000 (---------------)  + I youth
+	0x00377d4a, // n0x13a1 c0x0000 (---------------)  + I zoological
+	0x003651c7, // n0x13a2 c0x0000 (---------------)  + I zoology
+	0x00233784, // n0x13a3 c0x0000 (---------------)  + I aero
+	0x00202183, // n0x13a4 c0x0000 (---------------)  + I biz
+	0x00232dc3, // n0x13a5 c0x0000 (---------------)  + I com
+	0x0023a884, // n0x13a6 c0x0000 (---------------)  + I coop
+	0x0021e083, // n0x13a7 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x13a8 c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x13a9 c0x0000 (---------------)  + I info
+	0x002188c3, // n0x13aa c0x0000 (---------------)  + I int
+	0x00240443, // n0x13ab c0x0000 (---------------)  + I mil
+	0x002c2a06, // n0x13ac c0x0000 (---------------)  + I museum
+	0x00267944, // n0x13ad c0x0000 (---------------)  + I name
+	0x00218643, // n0x13ae c0x0000 (---------------)  + I net
+	0x0024d043, // n0x13af c0x0000 (---------------)  + I org
+	0x002cfc43, // n0x13b0 c0x0000 (---------------)  + I pro
+	0x00200b82, // n0x13b1 c0x0000 (---------------)  + I ac
+	0x00202183, // n0x13b2 c0x0000 (---------------)  + I biz
+	0x00200882, // n0x13b3 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x13b4 c0x0000 (---------------)  + I com
+	0x0023a884, // n0x13b5 c0x0000 (---------------)  + I coop
+	0x0021e083, // n0x13b6 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x13b7 c0x0000 (---------------)  + I gov
+	0x002188c3, // n0x13b8 c0x0000 (---------------)  + I int
+	0x002c2a06, // n0x13b9 c0x0000 (---------------)  + I museum
+	0x00218643, // n0x13ba c0x0000 (---------------)  + I net
+	0x0024d043, // n0x13bb c0x0000 (---------------)  + I org
+	0x0009e448, // n0x13bc c0x0000 (---------------)  +   blogspot
+	0x00232dc3, // n0x13bd c0x0000 (---------------)  + I com
+	0x0021e083, // n0x13be c0x0000 (---------------)  + I edu
+	0x003704c3, // n0x13bf c0x0000 (---------------)  + I gob
+	0x00218643, // n0x13c0 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x13c1 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x13c2 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x13c3 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x13c4 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x13c5 c0x0000 (---------------)  + I mil
+	0x00267944, // n0x13c6 c0x0000 (---------------)  + I name
+	0x00218643, // n0x13c7 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x13c8 c0x0000 (---------------)  + I org
+	0x00685648, // n0x13c9 c0x0001 (---------------)  ! I teledata
+	0x00214582, // n0x13ca c0x0000 (---------------)  + I ca
+	0x002020c2, // n0x13cb c0x0000 (---------------)  + I cc
+	0x00200882, // n0x13cc c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x13cd c0x0000 (---------------)  + I com
+	0x0020fc02, // n0x13ce c0x0000 (---------------)  + I dr
+	0x00200242, // n0x13cf c0x0000 (---------------)  + I in
+	0x00208a44, // n0x13d0 c0x0000 (---------------)  + I info
+	0x00277f84, // n0x13d1 c0x0000 (---------------)  + I mobi
+	0x0022cd82, // n0x13d2 c0x0000 (---------------)  + I mx
+	0x00267944, // n0x13d3 c0x0000 (---------------)  + I name
+	0x00200d02, // n0x13d4 c0x0000 (---------------)  + I or
+	0x0024d043, // n0x13d5 c0x0000 (---------------)  + I org
+	0x002cfc43, // n0x13d6 c0x0000 (---------------)  + I pro
+	0x00275006, // n0x13d7 c0x0000 (---------------)  + I school
+	0x0028dc82, // n0x13d8 c0x0000 (---------------)  + I tv
+	0x002073c2, // n0x13d9 c0x0000 (---------------)  + I us
+	0x002012c2, // n0x13da c0x0000 (---------------)  + I ws
+	0x33241483, // n0x13db c0x00cc (n0x13dd-n0x13de)  o I her
+	0x33634c03, // n0x13dc c0x00cd (n0x13de-n0x13df)  o I his
+	0x00052a06, // n0x13dd c0x0000 (---------------)  +   forgot
+	0x00052a06, // n0x13de c0x0000 (---------------)  +   forgot
+	0x00278344, // n0x13df c0x0000 (---------------)  + I asso
+	0x0010964c, // n0x13e0 c0x0000 (---------------)  +   at-band-camp
+	0x00077e0c, // n0x13e1 c0x0000 (---------------)  +   azure-mobile
+	0x000b46cd, // n0x13e2 c0x0000 (---------------)  +   azurewebsites
+	0x000dd187, // n0x13e3 c0x0000 (---------------)  +   blogdns
+	0x00027508, // n0x13e4 c0x0000 (---------------)  +   broke-it
+	0x0002c98a, // n0x13e5 c0x0000 (---------------)  +   buyshouses
+	0x0017e388, // n0x13e6 c0x0000 (---------------)  +   cloudapp
+	0x0002faca, // n0x13e7 c0x0000 (---------------)  +   cloudfront
+	0x000c7a88, // n0x13e8 c0x0000 (---------------)  +   dnsalias
+	0x00181687, // n0x13e9 c0x0000 (---------------)  +   dnsdojo
+	0x000100c7, // n0x13ea c0x0000 (---------------)  +   does-it
+	0x0012cb09, // n0x13eb c0x0000 (---------------)  +   dontexist
+	0x00159288, // n0x13ec c0x0000 (---------------)  +   dynalias
+	0x0008ee89, // n0x13ed c0x0000 (---------------)  +   dynathome
+	0x0009d40d, // n0x13ee c0x0000 (---------------)  +   endofinternet
+	0x342d0e46, // n0x13ef c0x00d0 (n0x140f-n0x1411)  o I fastly
+	0x0005cdc7, // n0x13f0 c0x0000 (---------------)  +   from-az
+	0x0005e047, // n0x13f1 c0x0000 (---------------)  +   from-co
+	0x00063947, // n0x13f2 c0x0000 (---------------)  +   from-la
+	0x00068707, // n0x13f3 c0x0000 (---------------)  +   from-ny
+	0x0000cd02, // n0x13f4 c0x0000 (---------------)  +   gb
+	0x0009c187, // n0x13f5 c0x0000 (---------------)  +   gets-it
+	0x00113b0c, // n0x13f6 c0x0000 (---------------)  +   ham-radio-op
+	0x0000ddc7, // n0x13f7 c0x0000 (---------------)  +   homeftp
+	0x000b9206, // n0x13f8 c0x0000 (---------------)  +   homeip
+	0x00099409, // n0x13f9 c0x0000 (---------------)  +   homelinux
+	0x00099ec8, // n0x13fa c0x0000 (---------------)  +   homeunix
+	0x000045c2, // n0x13fb c0x0000 (---------------)  +   hu
+	0x00000242, // n0x13fc c0x0000 (---------------)  +   in
+	0x00061ccb, // n0x13fd c0x0000 (---------------)  +   in-the-band
+	0x0001f409, // n0x13fe c0x0000 (---------------)  +   is-a-chef
+	0x00047789, // n0x13ff c0x0000 (---------------)  +   is-a-geek
+	0x00013e48, // n0x1400 c0x0000 (---------------)  +   isa-geek
+	0x000a2b02, // n0x1401 c0x0000 (---------------)  +   jp
+	0x00132909, // n0x1402 c0x0000 (---------------)  +   kicks-ass
+	0x00015fcd, // n0x1403 c0x0000 (---------------)  +   office-on-the
+	0x000ccf07, // n0x1404 c0x0000 (---------------)  +   podzone
+	0x000866cd, // n0x1405 c0x0000 (---------------)  +   scrapper-site
+	0x00004982, // n0x1406 c0x0000 (---------------)  +   se
+	0x00141246, // n0x1407 c0x0000 (---------------)  +   selfip
+	0x0009f9c8, // n0x1408 c0x0000 (---------------)  +   sells-it
+	0x0000be88, // n0x1409 c0x0000 (---------------)  +   servebbs
+	0x0008e548, // n0x140a c0x0000 (---------------)  +   serveftp
+	0x00041388, // n0x140b c0x0000 (---------------)  +   thruhere
+	0x00000542, // n0x140c c0x0000 (---------------)  +   uk
+	0x0002c186, // n0x140d c0x0000 (---------------)  +   webhop
+	0x000028c2, // n0x140e c0x0000 (---------------)  +   za
+	0x346cfec4, // n0x140f c0x00d1 (n0x1411-n0x1413)  o I prod
+	0x34a89b83, // n0x1410 c0x00d2 (n0x1413-n0x1416)  o I ssl
+	0x00000101, // n0x1411 c0x0000 (---------------)  +   a
+	0x0000af86, // n0x1412 c0x0000 (---------------)  +   global
+	0x00000101, // n0x1413 c0x0000 (---------------)  +   a
+	0x00000001, // n0x1414 c0x0000 (---------------)  +   b
+	0x0000af86, // n0x1415 c0x0000 (---------------)  +   global
+	0x0020b384, // n0x1416 c0x0000 (---------------)  + I arts
+	0x00232dc3, // n0x1417 c0x0000 (---------------)  + I com
+	0x0024a304, // n0x1418 c0x0000 (---------------)  + I firm
+	0x00208a44, // n0x1419 c0x0000 (---------------)  + I info
+	0x00218643, // n0x141a c0x0000 (---------------)  + I net
+	0x00256305, // n0x141b c0x0000 (---------------)  + I other
+	0x0020c783, // n0x141c c0x0000 (---------------)  + I per
+	0x0022a143, // n0x141d c0x0000 (---------------)  + I rec
+	0x002dc745, // n0x141e c0x0000 (---------------)  + I store
+	0x002071c3, // n0x141f c0x0000 (---------------)  + I web
+	0x00232dc3, // n0x1420 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1421 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1422 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x1423 c0x0000 (---------------)  + I mil
+	0x00277f84, // n0x1424 c0x0000 (---------------)  + I mobi
+	0x00267944, // n0x1425 c0x0000 (---------------)  + I name
+	0x00218643, // n0x1426 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1427 c0x0000 (---------------)  + I org
+	0x00251983, // n0x1428 c0x0000 (---------------)  + I sch
+	0x0009e448, // n0x1429 c0x0000 (---------------)  +   blogspot
+	0x0036ed42, // n0x142a c0x0000 (---------------)  + I bv
+	0x00000882, // n0x142b c0x0000 (---------------)  +   co
+	0x35e01d82, // n0x142c c0x00d7 (n0x1702-n0x1703)  + I aa
+	0x00367188, // n0x142d c0x0000 (---------------)  + I aarborte
+	0x002292c6, // n0x142e c0x0000 (---------------)  + I aejrie
+	0x002137c6, // n0x142f c0x0000 (---------------)  + I afjord
+	0x00228c47, // n0x1430 c0x0000 (---------------)  + I agdenes
+	0x36203042, // n0x1431 c0x00d8 (n0x1703-n0x1704)  + I ah
+	0x3665d348, // n0x1432 c0x00d9 (n0x1704-n0x1705)  o I akershus
+	0x0033264a, // n0x1433 c0x0000 (---------------)  + I aknoluokta
+	0x0036ac48, // n0x1434 c0x0000 (---------------)  + I akrehamn
+	0x00200b02, // n0x1435 c0x0000 (---------------)  + I al
+	0x00366e49, // n0x1436 c0x0000 (---------------)  + I alaheadju
+	0x002364c7, // n0x1437 c0x0000 (---------------)  + I alesund
+	0x00219646, // n0x1438 c0x0000 (---------------)  + I algard
+	0x00381289, // n0x1439 c0x0000 (---------------)  + I alstahaug
+	0x0036d204, // n0x143a c0x0000 (---------------)  + I alta
+	0x002ac1c6, // n0x143b c0x0000 (---------------)  + I alvdal
+	0x002b0684, // n0x143c c0x0000 (---------------)  + I amli
+	0x00268bc4, // n0x143d c0x0000 (---------------)  + I amot
+	0x00253d09, // n0x143e c0x0000 (---------------)  + I andasuolo
+	0x0032dc86, // n0x143f c0x0000 (---------------)  + I andebu
+	0x0033c205, // n0x1440 c0x0000 (---------------)  + I andoy
+	0x00220845, // n0x1441 c0x0000 (---------------)  + I ardal
+	0x002650c7, // n0x1442 c0x0000 (---------------)  + I aremark
+	0x002b6587, // n0x1443 c0x0000 (---------------)  + I arendal
+	0x00283c44, // n0x1444 c0x0000 (---------------)  + I arna
+	0x00228e86, // n0x1445 c0x0000 (---------------)  + I aseral
+	0x002e7545, // n0x1446 c0x0000 (---------------)  + I asker
+	0x002fbe85, // n0x1447 c0x0000 (---------------)  + I askim
+	0x002acf05, // n0x1448 c0x0000 (---------------)  + I askoy
+	0x002e71c7, // n0x1449 c0x0000 (---------------)  + I askvoll
+	0x0035c5c5, // n0x144a c0x0000 (---------------)  + I asnes
+	0x002324c9, // n0x144b c0x0000 (---------------)  + I audnedaln
+	0x00360805, // n0x144c c0x0000 (---------------)  + I aukra
+	0x002f0f04, // n0x144d c0x0000 (---------------)  + I aure
+	0x0037d107, // n0x144e c0x0000 (---------------)  + I aurland
+	0x003656ce, // n0x144f c0x0000 (---------------)  + I aurskog-holand
+	0x00362fc9, // n0x1450 c0x0000 (---------------)  + I austevoll
+	0x002daa49, // n0x1451 c0x0000 (---------------)  + I austrheim
+	0x00296406, // n0x1452 c0x0000 (---------------)  + I averoy
+	0x0030e488, // n0x1453 c0x0000 (---------------)  + I badaddja
+	0x002fa94b, // n0x1454 c0x0000 (---------------)  + I bahcavuotna
+	0x003644cc, // n0x1455 c0x0000 (---------------)  + I bahccavuotna
+	0x00381c46, // n0x1456 c0x0000 (---------------)  + I baidar
+	0x002c32c7, // n0x1457 c0x0000 (---------------)  + I bajddar
+	0x0020b045, // n0x1458 c0x0000 (---------------)  + I balat
+	0x0034960a, // n0x1459 c0x0000 (---------------)  + I balestrand
+	0x00285949, // n0x145a c0x0000 (---------------)  + I ballangen
+	0x0032d049, // n0x145b c0x0000 (---------------)  + I balsfjord
+	0x002e5f86, // n0x145c c0x0000 (---------------)  + I bamble
+	0x002e0c85, // n0x145d c0x0000 (---------------)  + I bardu
+	0x002b9f45, // n0x145e c0x0000 (---------------)  + I barum
+	0x0035f049, // n0x145f c0x0000 (---------------)  + I batsfjord
+	0x0026f1cb, // n0x1460 c0x0000 (---------------)  + I bearalvahki
+	0x00275a86, // n0x1461 c0x0000 (---------------)  + I beardu
+	0x0021cb86, // n0x1462 c0x0000 (---------------)  + I beiarn
+	0x0020cc44, // n0x1463 c0x0000 (---------------)  + I berg
+	0x00284506, // n0x1464 c0x0000 (---------------)  + I bergen
+	0x0020a748, // n0x1465 c0x0000 (---------------)  + I berlevag
+	0x00203186, // n0x1466 c0x0000 (---------------)  + I bievat
+	0x0034cb86, // n0x1467 c0x0000 (---------------)  + I bindal
+	0x00209d48, // n0x1468 c0x0000 (---------------)  + I birkenes
+	0x0020bb87, // n0x1469 c0x0000 (---------------)  + I bjarkoy
+	0x0020c549, // n0x146a c0x0000 (---------------)  + I bjerkreim
+	0x0020c8c5, // n0x146b c0x0000 (---------------)  + I bjugn
+	0x0009e448, // n0x146c c0x0000 (---------------)  +   blogspot
+	0x00210044, // n0x146d c0x0000 (---------------)  + I bodo
+	0x00251b84, // n0x146e c0x0000 (---------------)  + I bokn
+	0x00214285, // n0x146f c0x0000 (---------------)  + I bomlo
+	0x0021fe49, // n0x1470 c0x0000 (---------------)  + I bremanger
+	0x00227987, // n0x1471 c0x0000 (---------------)  + I bronnoy
+	0x0022798b, // n0x1472 c0x0000 (---------------)  + I bronnoysund
+	0x0022808a, // n0x1473 c0x0000 (---------------)  + I brumunddal
+	0x0022c585, // n0x1474 c0x0000 (---------------)  + I bryne
+	0x36a07902, // n0x1475 c0x00da (n0x1705-n0x1706)  + I bu
+	0x0032dd87, // n0x1476 c0x0000 (---------------)  + I budejju
+	0x36ebfec8, // n0x1477 c0x00db (n0x1706-n0x1707)  o I buskerud
+	0x002be7c7, // n0x1478 c0x0000 (---------------)  + I bygland
+	0x002be5c5, // n0x1479 c0x0000 (---------------)  + I bykle
+	0x00245a8a, // n0x147a c0x0000 (---------------)  + I cahcesuolo
+	0x00000882, // n0x147b c0x0000 (---------------)  +   co
+	0x00203e4b, // n0x147c c0x0000 (---------------)  + I davvenjarga
+	0x0020578a, // n0x147d c0x0000 (---------------)  + I davvesiida
+	0x002f5f06, // n0x147e c0x0000 (---------------)  + I deatnu
+	0x002da243, // n0x147f c0x0000 (---------------)  + I dep
+	0x00359e8d, // n0x1480 c0x0000 (---------------)  + I dielddanuorri
+	0x003601cc, // n0x1481 c0x0000 (---------------)  + I divtasvuodna
+	0x0032d24d, // n0x1482 c0x0000 (---------------)  + I divttasvuotna
+	0x0020d6c5, // n0x1483 c0x0000 (---------------)  + I donna
+	0x0024b845, // n0x1484 c0x0000 (---------------)  + I dovre
+	0x0020fc07, // n0x1485 c0x0000 (---------------)  + I drammen
+	0x00369b09, // n0x1486 c0x0000 (---------------)  + I drangedal
+	0x0036ab46, // n0x1487 c0x0000 (---------------)  + I drobak
+	0x00233dc5, // n0x1488 c0x0000 (---------------)  + I dyroy
+	0x00230908, // n0x1489 c0x0000 (---------------)  + I egersund
+	0x00272a83, // n0x148a c0x0000 (---------------)  + I eid
+	0x002f8648, // n0x148b c0x0000 (---------------)  + I eidfjord
+	0x00284408, // n0x148c c0x0000 (---------------)  + I eidsberg
+	0x002b1847, // n0x148d c0x0000 (---------------)  + I eidskog
+	0x00272a88, // n0x148e c0x0000 (---------------)  + I eidsvoll
+	0x00233bc9, // n0x148f c0x0000 (---------------)  + I eigersund
+	0x002e7f87, // n0x1490 c0x0000 (---------------)  + I elverum
+	0x002edb87, // n0x1491 c0x0000 (---------------)  + I enebakk
+	0x002abd48, // n0x1492 c0x0000 (---------------)  + I engerdal
+	0x0028c604, // n0x1493 c0x0000 (---------------)  + I etne
+	0x0028c607, // n0x1494 c0x0000 (---------------)  + I etnedal
+	0x0029af08, // n0x1495 c0x0000 (---------------)  + I evenassi
+	0x0025e746, // n0x1496 c0x0000 (---------------)  + I evenes
+	0x00220a4f, // n0x1497 c0x0000 (---------------)  + I evje-og-hornnes
+	0x002a4547, // n0x1498 c0x0000 (---------------)  + I farsund
+	0x002d1806, // n0x1499 c0x0000 (---------------)  + I fauske
+	0x00350705, // n0x149a c0x0000 (---------------)  + I fedje
+	0x00245f03, // n0x149b c0x0000 (---------------)  + I fet
+	0x00245f07, // n0x149c c0x0000 (---------------)  + I fetsund
+	0x00379703, // n0x149d c0x0000 (---------------)  + I fhs
+	0x00248e06, // n0x149e c0x0000 (---------------)  + I finnoy
+	0x0024b086, // n0x149f c0x0000 (---------------)  + I fitjar
+	0x0024bb06, // n0x14a0 c0x0000 (---------------)  + I fjaler
+	0x00288005, // n0x14a1 c0x0000 (---------------)  + I fjell
+	0x0025f803, // n0x14a2 c0x0000 (---------------)  + I fla
+	0x00346e08, // n0x14a3 c0x0000 (---------------)  + I flakstad
+	0x0033f849, // n0x14a4 c0x0000 (---------------)  + I flatanger
+	0x0034df8b, // n0x14a5 c0x0000 (---------------)  + I flekkefjord
+	0x0024c608, // n0x14a6 c0x0000 (---------------)  + I flesberg
+	0x0024dcc5, // n0x14a7 c0x0000 (---------------)  + I flora
+	0x0024e845, // n0x14a8 c0x0000 (---------------)  + I floro
+	0x37257f82, // n0x14a9 c0x00dc (n0x1707-n0x1708)  + I fm
+	0x0023ab09, // n0x14aa c0x0000 (---------------)  + I folkebibl
+	0x00250187, // n0x14ab c0x0000 (---------------)  + I folldal
+	0x00381145, // n0x14ac c0x0000 (---------------)  + I forde
+	0x00253c07, // n0x14ad c0x0000 (---------------)  + I forsand
+	0x00255a86, // n0x14ae c0x0000 (---------------)  + I fosnes
+	0x0033b685, // n0x14af c0x0000 (---------------)  + I frana
+	0x0025688b, // n0x14b0 c0x0000 (---------------)  + I fredrikstad
+	0x00256d04, // n0x14b1 c0x0000 (---------------)  + I frei
+	0x0025bd85, // n0x14b2 c0x0000 (---------------)  + I frogn
+	0x0025bec7, // n0x14b3 c0x0000 (---------------)  + I froland
+	0x0026eb46, // n0x14b4 c0x0000 (---------------)  + I frosta
+	0x0026ef85, // n0x14b5 c0x0000 (---------------)  + I froya
+	0x0027bfc7, // n0x14b6 c0x0000 (---------------)  + I fuoisku
+	0x0027c707, // n0x14b7 c0x0000 (---------------)  + I fuossko
+	0x002ea2c4, // n0x14b8 c0x0000 (---------------)  + I fusa
+	0x0028218a, // n0x14b9 c0x0000 (---------------)  + I fylkesbibl
+	0x00282648, // n0x14ba c0x0000 (---------------)  + I fyresdal
+	0x002fac09, // n0x14bb c0x0000 (---------------)  + I gaivuotna
+	0x00253a45, // n0x14bc c0x0000 (---------------)  + I galsa
+	0x00204086, // n0x14bd c0x0000 (---------------)  + I gamvik
+	0x0020a90a, // n0x14be c0x0000 (---------------)  + I gangaviika
+	0x00220746, // n0x14bf c0x0000 (---------------)  + I gaular
+	0x0020ac07, // n0x14c0 c0x0000 (---------------)  + I gausdal
+	0x002ecc8d, // n0x14c1 c0x0000 (---------------)  + I giehtavuoatna
+	0x00224549, // n0x14c2 c0x0000 (---------------)  + I gildeskal
+	0x002e4005, // n0x14c3 c0x0000 (---------------)  + I giske
+	0x00323147, // n0x14c4 c0x0000 (---------------)  + I gjemnes
+	0x0035fcc8, // n0x14c5 c0x0000 (---------------)  + I gjerdrum
+	0x00363a88, // n0x14c6 c0x0000 (---------------)  + I gjerstad
+	0x00369187, // n0x14c7 c0x0000 (---------------)  + I gjesdal
+	0x0036b446, // n0x14c8 c0x0000 (---------------)  + I gjovik
+	0x00212e87, // n0x14c9 c0x0000 (---------------)  + I gloppen
+	0x00218743, // n0x14ca c0x0000 (---------------)  + I gol
+	0x00315684, // n0x14cb c0x0000 (---------------)  + I gran
+	0x0031cac5, // n0x14cc c0x0000 (---------------)  + I grane
+	0x00338fc7, // n0x14cd c0x0000 (---------------)  + I granvin
+	0x00356d89, // n0x14ce c0x0000 (---------------)  + I gratangen
+	0x002f6208, // n0x14cf c0x0000 (---------------)  + I grimstad
+	0x0037c785, // n0x14d0 c0x0000 (---------------)  + I grong
+	0x0023c704, // n0x14d1 c0x0000 (---------------)  + I grue
+	0x002497c5, // n0x14d2 c0x0000 (---------------)  + I gulen
+	0x0025068d, // n0x14d3 c0x0000 (---------------)  + I guovdageaidnu
+	0x00203082, // n0x14d4 c0x0000 (---------------)  + I ha
+	0x003062c6, // n0x14d5 c0x0000 (---------------)  + I habmer
+	0x00341186, // n0x14d6 c0x0000 (---------------)  + I hadsel
+	0x002ffdca, // n0x14d7 c0x0000 (---------------)  + I hagebostad
+	0x003467c6, // n0x14d8 c0x0000 (---------------)  + I halden
+	0x0034c845, // n0x14d9 c0x0000 (---------------)  + I halsa
+	0x002b0b45, // n0x14da c0x0000 (---------------)  + I hamar
+	0x002b0b47, // n0x14db c0x0000 (---------------)  + I hamaroy
+	0x0034f98c, // n0x14dc c0x0000 (---------------)  + I hammarfeasta
+	0x0036c68a, // n0x14dd c0x0000 (---------------)  + I hammerfest
+	0x00283a46, // n0x14de c0x0000 (---------------)  + I hapmir
+	0x0026e385, // n0x14df c0x0000 (---------------)  + I haram
+	0x00284346, // n0x14e0 c0x0000 (---------------)  + I hareid
+	0x00284687, // n0x14e1 c0x0000 (---------------)  + I harstad
+	0x00286506, // n0x14e2 c0x0000 (---------------)  + I hasvik
+	0x00287f0c, // n0x14e3 c0x0000 (---------------)  + I hattfjelldal
+	0x003813c9, // n0x14e4 c0x0000 (---------------)  + I haugesund
+	0x37651fc7, // n0x14e5 c0x00dd (n0x1708-n0x170b)  o I hedmark
+	0x00289485, // n0x14e6 c0x0000 (---------------)  + I hemne
+	0x00289486, // n0x14e7 c0x0000 (---------------)  + I hemnes
+	0x00289808, // n0x14e8 c0x0000 (---------------)  + I hemsedal
+	0x0025c905, // n0x14e9 c0x0000 (---------------)  + I herad
+	0x002987c5, // n0x14ea c0x0000 (---------------)  + I hitra
+	0x00298a08, // n0x14eb c0x0000 (---------------)  + I hjartdal
+	0x00298c0a, // n0x14ec c0x0000 (---------------)  + I hjelmeland
+	0x37a9c882, // n0x14ed c0x00de (n0x170b-n0x170c)  + I hl
+	0x37e4c142, // n0x14ee c0x00df (n0x170c-n0x170d)  + I hm
+	0x002df885, // n0x14ef c0x0000 (---------------)  + I hobol
+	0x002a1d83, // n0x14f0 c0x0000 (---------------)  + I hof
+	0x0022e1c8, // n0x14f1 c0x0000 (---------------)  + I hokksund
+	0x00274dc3, // n0x14f2 c0x0000 (---------------)  + I hol
+	0x00298e84, // n0x14f3 c0x0000 (---------------)  + I hole
+	0x0036c14b, // n0x14f4 c0x0000 (---------------)  + I holmestrand
+	0x002abbc8, // n0x14f5 c0x0000 (---------------)  + I holtalen
+	0x0029a448, // n0x14f6 c0x0000 (---------------)  + I honefoss
+	0x38322189, // n0x14f7 c0x00e0 (n0x170d-n0x170e)  o I hordaland
+	0x0029c989, // n0x14f8 c0x0000 (---------------)  + I hornindal
+	0x0029d306, // n0x14f9 c0x0000 (---------------)  + I horten
+	0x0029ebc8, // n0x14fa c0x0000 (---------------)  + I hoyanger
+	0x0029edc9, // n0x14fb c0x0000 (---------------)  + I hoylandet
+	0x0029f486, // n0x14fc c0x0000 (---------------)  + I hurdal
+	0x0029f605, // n0x14fd c0x0000 (---------------)  + I hurum
+	0x00246f46, // n0x14fe c0x0000 (---------------)  + I hvaler
+	0x00233049, // n0x14ff c0x0000 (---------------)  + I hyllestad
+	0x0036de47, // n0x1500 c0x0000 (---------------)  + I ibestad
+	0x00257906, // n0x1501 c0x0000 (---------------)  + I idrett
+	0x003850c7, // n0x1502 c0x0000 (---------------)  + I inderoy
+	0x00334ac7, // n0x1503 c0x0000 (---------------)  + I iveland
+	0x00262884, // n0x1504 c0x0000 (---------------)  + I ivgu
+	0x3861ed89, // n0x1505 c0x00e1 (n0x170e-n0x170f)  + I jan-mayen
+	0x002b8908, // n0x1506 c0x0000 (---------------)  + I jessheim
+	0x00336388, // n0x1507 c0x0000 (---------------)  + I jevnaker
+	0x00246d47, // n0x1508 c0x0000 (---------------)  + I jolster
+	0x002b5346, // n0x1509 c0x0000 (---------------)  + I jondal
+	0x00381f49, // n0x150a c0x0000 (---------------)  + I jorpeland
+	0x00213787, // n0x150b c0x0000 (---------------)  + I kafjord
+	0x0023000a, // n0x150c c0x0000 (---------------)  + I karasjohka
+	0x002e4308, // n0x150d c0x0000 (---------------)  + I karasjok
+	0x00366687, // n0x150e c0x0000 (---------------)  + I karlsoy
+	0x0036ce06, // n0x150f c0x0000 (---------------)  + I karmoy
+	0x00262c0a, // n0x1510 c0x0000 (---------------)  + I kautokeino
+	0x00335688, // n0x1511 c0x0000 (---------------)  + I kirkenes
+	0x00274105, // n0x1512 c0x0000 (---------------)  + I klabu
+	0x0022b205, // n0x1513 c0x0000 (---------------)  + I klepp
+	0x00331e87, // n0x1514 c0x0000 (---------------)  + I kommune
+	0x002b2e89, // n0x1515 c0x0000 (---------------)  + I kongsberg
+	0x002b3fcb, // n0x1516 c0x0000 (---------------)  + I kongsvinger
+	0x00331cc8, // n0x1517 c0x0000 (---------------)  + I kopervik
+	0x00360889, // n0x1518 c0x0000 (---------------)  + I kraanghke
+	0x002a3bc7, // n0x1519 c0x0000 (---------------)  + I kragero
+	0x002a4d4c, // n0x151a c0x0000 (---------------)  + I kristiansand
+	0x002a51cc, // n0x151b c0x0000 (---------------)  + I kristiansund
+	0x002a54ca, // n0x151c c0x0000 (---------------)  + I krodsherad
+	0x002a574c, // n0x151d c0x0000 (---------------)  + I krokstadelva
+	0x002b0208, // n0x151e c0x0000 (---------------)  + I kvafjord
+	0x002b0408, // n0x151f c0x0000 (---------------)  + I kvalsund
+	0x002b0604, // n0x1520 c0x0000 (---------------)  + I kvam
+	0x002b0fc9, // n0x1521 c0x0000 (---------------)  + I kvanangen
+	0x002b1209, // n0x1522 c0x0000 (---------------)  + I kvinesdal
+	0x002b144a, // n0x1523 c0x0000 (---------------)  + I kvinnherad
+	0x002b16c9, // n0x1524 c0x0000 (---------------)  + I kviteseid
+	0x002b1a07, // n0x1525 c0x0000 (---------------)  + I kvitsoy
+	0x00201d4c, // n0x1526 c0x0000 (---------------)  + I laakesvuemie
+	0x00243706, // n0x1527 c0x0000 (---------------)  + I lahppi
+	0x00263a88, // n0x1528 c0x0000 (---------------)  + I langevag
+	0x00220806, // n0x1529 c0x0000 (---------------)  + I lardal
+	0x002c1006, // n0x152a c0x0000 (---------------)  + I larvik
+	0x002e3f07, // n0x152b c0x0000 (---------------)  + I lavagis
+	0x00337b88, // n0x152c c0x0000 (---------------)  + I lavangen
+	0x0027f10b, // n0x152d c0x0000 (---------------)  + I leangaviika
+	0x002be687, // n0x152e c0x0000 (---------------)  + I lebesby
+	0x0033bb49, // n0x152f c0x0000 (---------------)  + I leikanger
+	0x002f5309, // n0x1530 c0x0000 (---------------)  + I leirfjord
+	0x00295187, // n0x1531 c0x0000 (---------------)  + I leirvik
+	0x0021c504, // n0x1532 c0x0000 (---------------)  + I leka
+	0x002b2d07, // n0x1533 c0x0000 (---------------)  + I leksvik
+	0x002b6706, // n0x1534 c0x0000 (---------------)  + I lenvik
+	0x0024bbc6, // n0x1535 c0x0000 (---------------)  + I lerdal
+	0x00229d05, // n0x1536 c0x0000 (---------------)  + I lesja
+	0x00278688, // n0x1537 c0x0000 (---------------)  + I levanger
+	0x00234484, // n0x1538 c0x0000 (---------------)  + I lier
+	0x00234486, // n0x1539 c0x0000 (---------------)  + I lierne
+	0x0036c54b, // n0x153a c0x0000 (---------------)  + I lillehammer
+	0x00322749, // n0x153b c0x0000 (---------------)  + I lillesand
+	0x002fbd86, // n0x153c c0x0000 (---------------)  + I lindas
+	0x002fce09, // n0x153d c0x0000 (---------------)  + I lindesnes
+	0x00214346, // n0x153e c0x0000 (---------------)  + I loabat
+	0x002ca108, // n0x153f c0x0000 (---------------)  + I lodingen
+	0x00210a03, // n0x1540 c0x0000 (---------------)  + I lom
+	0x00208f45, // n0x1541 c0x0000 (---------------)  + I loppa
+	0x0020ad89, // n0x1542 c0x0000 (---------------)  + I lorenskog
+	0x00219d45, // n0x1543 c0x0000 (---------------)  + I loten
+	0x002d3bc4, // n0x1544 c0x0000 (---------------)  + I lund
+	0x0026dd86, // n0x1545 c0x0000 (---------------)  + I lunner
+	0x00236e85, // n0x1546 c0x0000 (---------------)  + I luroy
+	0x0023ea46, // n0x1547 c0x0000 (---------------)  + I luster
+	0x002f3747, // n0x1548 c0x0000 (---------------)  + I lyngdal
+	0x002637c6, // n0x1549 c0x0000 (---------------)  + I lyngen
+	0x0028db8b, // n0x154a c0x0000 (---------------)  + I malatvuopmi
+	0x003453c7, // n0x154b c0x0000 (---------------)  + I malselv
+	0x00375d46, // n0x154c c0x0000 (---------------)  + I malvik
+	0x002fbc46, // n0x154d c0x0000 (---------------)  + I mandal
+	0x00265186, // n0x154e c0x0000 (---------------)  + I marker
+	0x00283c09, // n0x154f c0x0000 (---------------)  + I marnardal
+	0x0021d68a, // n0x1550 c0x0000 (---------------)  + I masfjorden
+	0x0035b0c5, // n0x1551 c0x0000 (---------------)  + I masoy
+	0x0034498d, // n0x1552 c0x0000 (---------------)  + I matta-varjjat
+	0x00298d06, // n0x1553 c0x0000 (---------------)  + I meland
+	0x002911c6, // n0x1554 c0x0000 (---------------)  + I meldal
+	0x0025f106, // n0x1555 c0x0000 (---------------)  + I melhus
+	0x0036be05, // n0x1556 c0x0000 (---------------)  + I meloy
+	0x0025d287, // n0x1557 c0x0000 (---------------)  + I meraker
+	0x0028c107, // n0x1558 c0x0000 (---------------)  + I midsund
+	0x0026c10e, // n0x1559 c0x0000 (---------------)  + I midtre-gauldal
+	0x00240443, // n0x155a c0x0000 (---------------)  + I mil
+	0x002b5309, // n0x155b c0x0000 (---------------)  + I mjondalen
+	0x00309f49, // n0x155c c0x0000 (---------------)  + I mo-i-rana
+	0x00349a07, // n0x155d c0x0000 (---------------)  + I moareke
+	0x00226fc7, // n0x155e c0x0000 (---------------)  + I modalen
+	0x002fb885, // n0x155f c0x0000 (---------------)  + I modum
+	0x002da185, // n0x1560 c0x0000 (---------------)  + I molde
+	0x38ad9d8f, // n0x1561 c0x00e2 (n0x170f-n0x1711)  o I more-og-romsdal
+	0x002bc007, // n0x1562 c0x0000 (---------------)  + I mosjoen
+	0x002bc1c8, // n0x1563 c0x0000 (---------------)  + I moskenes
+	0x002bcb44, // n0x1564 c0x0000 (---------------)  + I moss
+	0x002bd046, // n0x1565 c0x0000 (---------------)  + I mosvik
+	0x38e14202, // n0x1566 c0x00e3 (n0x1711-n0x1712)  + I mr
+	0x002c0906, // n0x1567 c0x0000 (---------------)  + I muosat
+	0x002c2a06, // n0x1568 c0x0000 (---------------)  + I museum
+	0x0030a10e, // n0x1569 c0x0000 (---------------)  + I naamesjevuemie
+	0x002f848a, // n0x156a c0x0000 (---------------)  + I namdalseid
+	0x00262406, // n0x156b c0x0000 (---------------)  + I namsos
+	0x002d4dca, // n0x156c c0x0000 (---------------)  + I namsskogan
+	0x0024f509, // n0x156d c0x0000 (---------------)  + I nannestad
+	0x00355045, // n0x156e c0x0000 (---------------)  + I naroy
+	0x0037ec48, // n0x156f c0x0000 (---------------)  + I narviika
+	0x00366546, // n0x1570 c0x0000 (---------------)  + I narvik
+	0x003768c8, // n0x1571 c0x0000 (---------------)  + I naustdal
+	0x00201808, // n0x1572 c0x0000 (---------------)  + I navuotna
+	0x002860cb, // n0x1573 c0x0000 (---------------)  + I nedre-eiker
+	0x00228d45, // n0x1574 c0x0000 (---------------)  + I nesna
+	0x0035c648, // n0x1575 c0x0000 (---------------)  + I nesodden
+	0x00209e8c, // n0x1576 c0x0000 (---------------)  + I nesoddtangen
+	0x002742c7, // n0x1577 c0x0000 (---------------)  + I nesseby
+	0x0024b2c6, // n0x1578 c0x0000 (---------------)  + I nesset
+	0x002260c8, // n0x1579 c0x0000 (---------------)  + I nissedal
+	0x002ac048, // n0x157a c0x0000 (---------------)  + I nittedal
+	0x39248cc2, // n0x157b c0x00e4 (n0x1712-n0x1713)  + I nl
+	0x003596cb, // n0x157c c0x0000 (---------------)  + I nord-aurdal
+	0x002c7e89, // n0x157d c0x0000 (---------------)  + I nord-fron
+	0x002fcc09, // n0x157e c0x0000 (---------------)  + I nord-odal
+	0x002ad107, // n0x157f c0x0000 (---------------)  + I norddal
+	0x002a6d88, // n0x1580 c0x0000 (---------------)  + I nordkapp
+	0x39749c08, // n0x1581 c0x00e5 (n0x1713-n0x1717)  o I nordland
+	0x00215b8b, // n0x1582 c0x0000 (---------------)  + I nordre-land
+	0x00213cc9, // n0x1583 c0x0000 (---------------)  + I nordreisa
+	0x0023b64d, // n0x1584 c0x0000 (---------------)  + I nore-og-uvdal
+	0x00282d88, // n0x1585 c0x0000 (---------------)  + I notodden
+	0x00292a08, // n0x1586 c0x0000 (---------------)  + I notteroy
+	0x39a00902, // n0x1587 c0x00e6 (n0x1717-n0x1718)  + I nt
+	0x00320204, // n0x1588 c0x0000 (---------------)  + I odda
+	0x39e15fc2, // n0x1589 c0x00e7 (n0x1718-n0x1719)  + I of
+	0x002e4486, // n0x158a c0x0000 (---------------)  + I oksnes
+	0x3a2009c2, // n0x158b c0x00e8 (n0x1719-n0x171a)  + I ol
+	0x0022b7ca, // n0x158c c0x0000 (---------------)  + I omasvuotna
+	0x0022c286, // n0x158d c0x0000 (---------------)  + I oppdal
+	0x00221c08, // n0x158e c0x0000 (---------------)  + I oppegard
+	0x0030ce08, // n0x158f c0x0000 (---------------)  + I orkanger
+	0x0030e786, // n0x1590 c0x0000 (---------------)  + I orkdal
+	0x002ffa46, // n0x1591 c0x0000 (---------------)  + I orland
+	0x002d3386, // n0x1592 c0x0000 (---------------)  + I orskog
+	0x002a7c45, // n0x1593 c0x0000 (---------------)  + I orsta
+	0x0023cfc4, // n0x1594 c0x0000 (---------------)  + I osen
+	0x3a610984, // n0x1595 c0x00e9 (n0x171a-n0x171b)  + I oslo
+	0x00210786, // n0x1596 c0x0000 (---------------)  + I osoyro
+	0x00255487, // n0x1597 c0x0000 (---------------)  + I osteroy
+	0x3aaf1447, // n0x1598 c0x00ea (n0x171b-n0x171c)  o I ostfold
+	0x0020838b, // n0x1599 c0x0000 (---------------)  + I ostre-toten
+	0x00365a89, // n0x159a c0x0000 (---------------)  + I overhalla
+	0x0024b88a, // n0x159b c0x0000 (---------------)  + I ovre-eiker
+	0x00309e04, // n0x159c c0x0000 (---------------)  + I oyer
+	0x002b0c88, // n0x159d c0x0000 (---------------)  + I oygarden
+	0x002576cd, // n0x159e c0x0000 (---------------)  + I oystre-slidre
+	0x002ce049, // n0x159f c0x0000 (---------------)  + I porsanger
+	0x002ce288, // n0x15a0 c0x0000 (---------------)  + I porsangu
+	0x002ce509, // n0x15a1 c0x0000 (---------------)  + I porsgrunn
+	0x002cfac4, // n0x15a2 c0x0000 (---------------)  + I priv
+	0x0021bbc4, // n0x15a3 c0x0000 (---------------)  + I rade
+	0x0022d985, // n0x15a4 c0x0000 (---------------)  + I radoy
+	0x0023828b, // n0x15a5 c0x0000 (---------------)  + I rahkkeravju
+	0x002abb46, // n0x15a6 c0x0000 (---------------)  + I raholt
+	0x002a8705, // n0x15a7 c0x0000 (---------------)  + I raisa
+	0x002fb309, // n0x15a8 c0x0000 (---------------)  + I rakkestad
+	0x00228f48, // n0x15a9 c0x0000 (---------------)  + I ralingen
+	0x0026d544, // n0x15aa c0x0000 (---------------)  + I rana
+	0x00349789, // n0x15ab c0x0000 (---------------)  + I randaberg
+	0x00364845, // n0x15ac c0x0000 (---------------)  + I rauma
+	0x002b65c8, // n0x15ad c0x0000 (---------------)  + I rendalen
+	0x002ee247, // n0x15ae c0x0000 (---------------)  + I rennebu
+	0x002dae48, // n0x15af c0x0000 (---------------)  + I rennesoy
+	0x002b4f06, // n0x15b0 c0x0000 (---------------)  + I rindal
+	0x0024a707, // n0x15b1 c0x0000 (---------------)  + I ringebu
+	0x0030de09, // n0x15b2 c0x0000 (---------------)  + I ringerike
+	0x0022e889, // n0x15b3 c0x0000 (---------------)  + I ringsaker
+	0x00256605, // n0x15b4 c0x0000 (---------------)  + I risor
+	0x0035a145, // n0x15b5 c0x0000 (---------------)  + I rissa
+	0x3ae0a7c2, // n0x15b6 c0x00eb (n0x171c-n0x171d)  + I rl
+	0x002f0cc4, // n0x15b7 c0x0000 (---------------)  + I roan
+	0x00353185, // n0x15b8 c0x0000 (---------------)  + I rodoy
+	0x00307806, // n0x15b9 c0x0000 (---------------)  + I rollag
+	0x0030c4c5, // n0x15ba c0x0000 (---------------)  + I romsa
+	0x0024e907, // n0x15bb c0x0000 (---------------)  + I romskog
+	0x002f5145, // n0x15bc c0x0000 (---------------)  + I roros
+	0x0026eb84, // n0x15bd c0x0000 (---------------)  + I rost
+	0x002964c6, // n0x15be c0x0000 (---------------)  + I royken
+	0x00233e47, // n0x15bf c0x0000 (---------------)  + I royrvik
+	0x002360c6, // n0x15c0 c0x0000 (---------------)  + I ruovat
+	0x0032e605, // n0x15c1 c0x0000 (---------------)  + I rygge
+	0x00215248, // n0x15c2 c0x0000 (---------------)  + I salangen
+	0x00215885, // n0x15c3 c0x0000 (---------------)  + I salat
+	0x00220dc7, // n0x15c4 c0x0000 (---------------)  + I saltdal
+	0x0022c749, // n0x15c5 c0x0000 (---------------)  + I samnanger
+	0x002a4f4a, // n0x15c6 c0x0000 (---------------)  + I sandefjord
+	0x002ccc07, // n0x15c7 c0x0000 (---------------)  + I sandnes
+	0x002ccc0c, // n0x15c8 c0x0000 (---------------)  + I sandnessjoen
+	0x0033c1c6, // n0x15c9 c0x0000 (---------------)  + I sandoy
+	0x0024cec9, // n0x15ca c0x0000 (---------------)  + I sarpsborg
+	0x0025bc45, // n0x15cb c0x0000 (---------------)  + I sauda
+	0x0025c848, // n0x15cc c0x0000 (---------------)  + I sauherad
+	0x00212d03, // n0x15cd c0x0000 (---------------)  + I sel
+	0x00212d05, // n0x15ce c0x0000 (---------------)  + I selbu
+	0x002d1d45, // n0x15cf c0x0000 (---------------)  + I selje
+	0x002892c7, // n0x15d0 c0x0000 (---------------)  + I seljord
+	0x3b21a182, // n0x15d1 c0x00ec (n0x171d-n0x171e)  + I sf
+	0x002cc787, // n0x15d2 c0x0000 (---------------)  + I siellak
+	0x00315906, // n0x15d3 c0x0000 (---------------)  + I sigdal
+	0x0021ecc6, // n0x15d4 c0x0000 (---------------)  + I siljan
+	0x0031ae06, // n0x15d5 c0x0000 (---------------)  + I sirdal
+	0x002abf86, // n0x15d6 c0x0000 (---------------)  + I skanit
+	0x002f9b88, // n0x15d7 c0x0000 (---------------)  + I skanland
+	0x002728c5, // n0x15d8 c0x0000 (---------------)  + I skaun
+	0x002d18c7, // n0x15d9 c0x0000 (---------------)  + I skedsmo
+	0x002d18cd, // n0x15da c0x0000 (---------------)  + I skedsmokorset
+	0x00221943, // n0x15db c0x0000 (---------------)  + I ski
+	0x00221945, // n0x15dc c0x0000 (---------------)  + I skien
+	0x002fef47, // n0x15dd c0x0000 (---------------)  + I skierva
+	0x002ff588, // n0x15de c0x0000 (---------------)  + I skiptvet
+	0x00332585, // n0x15df c0x0000 (---------------)  + I skjak
+	0x00361148, // n0x15e0 c0x0000 (---------------)  + I skjervoy
+	0x0022edc6, // n0x15e1 c0x0000 (---------------)  + I skodje
+	0x00289bc7, // n0x15e2 c0x0000 (---------------)  + I slattum
+	0x002b9745, // n0x15e3 c0x0000 (---------------)  + I smola
+	0x00228dc6, // n0x15e4 c0x0000 (---------------)  + I snaase
+	0x0036ef85, // n0x15e5 c0x0000 (---------------)  + I snasa
+	0x00223fca, // n0x15e6 c0x0000 (---------------)  + I snillfjord
+	0x002af646, // n0x15e7 c0x0000 (---------------)  + I snoasa
+	0x0026d1c7, // n0x15e8 c0x0000 (---------------)  + I sogndal
+	0x00280345, // n0x15e9 c0x0000 (---------------)  + I sogne
+	0x0037a8c7, // n0x15ea c0x0000 (---------------)  + I sokndal
+	0x00310944, // n0x15eb c0x0000 (---------------)  + I sola
+	0x002d3b46, // n0x15ec c0x0000 (---------------)  + I solund
+	0x002d4d05, // n0x15ed c0x0000 (---------------)  + I somna
+	0x0032da8b, // n0x15ee c0x0000 (---------------)  + I sondre-land
+	0x00218c09, // n0x15ef c0x0000 (---------------)  + I songdalen
+	0x00244c4a, // n0x15f0 c0x0000 (---------------)  + I sor-aurdal
+	0x00256688, // n0x15f1 c0x0000 (---------------)  + I sor-fron
+	0x002d5b48, // n0x15f2 c0x0000 (---------------)  + I sor-odal
+	0x002d5d4c, // n0x15f3 c0x0000 (---------------)  + I sor-varanger
+	0x002d6047, // n0x15f4 c0x0000 (---------------)  + I sorfold
+	0x002d6208, // n0x15f5 c0x0000 (---------------)  + I sorreisa
+	0x002d70c8, // n0x15f6 c0x0000 (---------------)  + I sortland
+	0x002d72c5, // n0x15f7 c0x0000 (---------------)  + I sorum
+	0x002db80a, // n0x15f8 c0x0000 (---------------)  + I spjelkavik
+	0x002dc049, // n0x15f9 c0x0000 (---------------)  + I spydeberg
+	0x3b604682, // n0x15fa c0x00ed (n0x171e-n0x171f)  + I st
+	0x00344106, // n0x15fb c0x0000 (---------------)  + I stange
+	0x002092c4, // n0x15fc c0x0000 (---------------)  + I stat
+	0x002092c9, // n0x15fd c0x0000 (---------------)  + I stathelle
+	0x002e5a09, // n0x15fe c0x0000 (---------------)  + I stavanger
+	0x003663c7, // n0x15ff c0x0000 (---------------)  + I stavern
+	0x00267507, // n0x1600 c0x0000 (---------------)  + I steigen
+	0x002d7789, // n0x1601 c0x0000 (---------------)  + I steinkjer
+	0x00204688, // n0x1602 c0x0000 (---------------)  + I stjordal
+	0x0020468f, // n0x1603 c0x0000 (---------------)  + I stjordalshalsen
+	0x0023a706, // n0x1604 c0x0000 (---------------)  + I stokke
+	0x0028358b, // n0x1605 c0x0000 (---------------)  + I stor-elvdal
+	0x002dc585, // n0x1606 c0x0000 (---------------)  + I stord
+	0x002dc587, // n0x1607 c0x0000 (---------------)  + I stordal
+	0x002dc9c9, // n0x1608 c0x0000 (---------------)  + I storfjord
+	0x00349706, // n0x1609 c0x0000 (---------------)  + I strand
+	0x00349707, // n0x160a c0x0000 (---------------)  + I stranda
+	0x0026ff85, // n0x160b c0x0000 (---------------)  + I stryn
+	0x00235ec4, // n0x160c c0x0000 (---------------)  + I sula
+	0x00380706, // n0x160d c0x0000 (---------------)  + I suldal
+	0x00227b44, // n0x160e c0x0000 (---------------)  + I sund
+	0x00337787, // n0x160f c0x0000 (---------------)  + I sunndal
+	0x0031f3c8, // n0x1610 c0x0000 (---------------)  + I surnadal
+	0x3bae0b88, // n0x1611 c0x00ee (n0x171f-n0x1720)  + I svalbard
+	0x002e1585, // n0x1612 c0x0000 (---------------)  + I sveio
+	0x002e16c7, // n0x1613 c0x0000 (---------------)  + I svelvik
+	0x00218449, // n0x1614 c0x0000 (---------------)  + I sykkylven
+	0x00202544, // n0x1615 c0x0000 (---------------)  + I tana
+	0x002ca948, // n0x1616 c0x0000 (---------------)  + I tananger
+	0x3bf13f88, // n0x1617 c0x00ef (n0x1720-n0x1722)  o I telemark
+	0x00246a44, // n0x1618 c0x0000 (---------------)  + I time
+	0x00236cc8, // n0x1619 c0x0000 (---------------)  + I tingvoll
+	0x0036b8c4, // n0x161a c0x0000 (---------------)  + I tinn
+	0x0022bdc9, // n0x161b c0x0000 (---------------)  + I tjeldsund
+	0x0025f045, // n0x161c c0x0000 (---------------)  + I tjome
+	0x3c2032c2, // n0x161d c0x00f0 (n0x1722-n0x1723)  + I tm
+	0x0023a745, // n0x161e c0x0000 (---------------)  + I tokke
+	0x00220685, // n0x161f c0x0000 (---------------)  + I tolga
+	0x00305ac8, // n0x1620 c0x0000 (---------------)  + I tonsberg
+	0x00238947, // n0x1621 c0x0000 (---------------)  + I torsken
+	0x3c600942, // n0x1622 c0x00f1 (n0x1723-n0x1724)  + I tr
+	0x0026d505, // n0x1623 c0x0000 (---------------)  + I trana
+	0x00270506, // n0x1624 c0x0000 (---------------)  + I tranby
+	0x002885c6, // n0x1625 c0x0000 (---------------)  + I tranoy
+	0x002f0c88, // n0x1626 c0x0000 (---------------)  + I troandin
+	0x002f2988, // n0x1627 c0x0000 (---------------)  + I trogstad
+	0x0030c486, // n0x1628 c0x0000 (---------------)  + I tromsa
+	0x00310846, // n0x1629 c0x0000 (---------------)  + I tromso
+	0x0036ca89, // n0x162a c0x0000 (---------------)  + I trondheim
+	0x0033aa06, // n0x162b c0x0000 (---------------)  + I trysil
+	0x00372d4b, // n0x162c c0x0000 (---------------)  + I tvedestrand
+	0x00322645, // n0x162d c0x0000 (---------------)  + I tydal
+	0x0021cf86, // n0x162e c0x0000 (---------------)  + I tynset
+	0x00280648, // n0x162f c0x0000 (---------------)  + I tysfjord
+	0x002e8c06, // n0x1630 c0x0000 (---------------)  + I tysnes
+	0x002c7806, // n0x1631 c0x0000 (---------------)  + I tysvar
+	0x00214a4a, // n0x1632 c0x0000 (---------------)  + I ullensaker
+	0x0034b6ca, // n0x1633 c0x0000 (---------------)  + I ullensvang
+	0x00254e85, // n0x1634 c0x0000 (---------------)  + I ulvik
+	0x0021a747, // n0x1635 c0x0000 (---------------)  + I unjarga
+	0x002d0606, // n0x1636 c0x0000 (---------------)  + I utsira
+	0x3ca03242, // n0x1637 c0x00f2 (n0x1724-n0x1725)  + I va
+	0x002ff087, // n0x1638 c0x0000 (---------------)  + I vaapste
+	0x0026d105, // n0x1639 c0x0000 (---------------)  + I vadso
+	0x0020a884, // n0x163a c0x0000 (---------------)  + I vaga
+	0x0020a885, // n0x163b c0x0000 (---------------)  + I vagan
+	0x00309d06, // n0x163c c0x0000 (---------------)  + I vagsoy
+	0x003336c7, // n0x163d c0x0000 (---------------)  + I vaksdal
+	0x0021e945, // n0x163e c0x0000 (---------------)  + I valle
+	0x00278704, // n0x163f c0x0000 (---------------)  + I vang
+	0x00268448, // n0x1640 c0x0000 (---------------)  + I vanylven
+	0x002c78c5, // n0x1641 c0x0000 (---------------)  + I vardo
+	0x0037a607, // n0x1642 c0x0000 (---------------)  + I varggat
+	0x002e5e05, // n0x1643 c0x0000 (---------------)  + I varoy
+	0x00223f05, // n0x1644 c0x0000 (---------------)  + I vefsn
+	0x0028e884, // n0x1645 c0x0000 (---------------)  + I vega
+	0x002a05c9, // n0x1646 c0x0000 (---------------)  + I vegarshei
+	0x002e7388, // n0x1647 c0x0000 (---------------)  + I vennesla
+	0x002e5c86, // n0x1648 c0x0000 (---------------)  + I verdal
+	0x002e79c6, // n0x1649 c0x0000 (---------------)  + I verran
+	0x002be4c6, // n0x164a c0x0000 (---------------)  + I vestby
+	0x3cee9488, // n0x164b c0x00f3 (n0x1725-n0x1726)  o I vestfold
+	0x002e9687, // n0x164c c0x0000 (---------------)  + I vestnes
+	0x002e9a4d, // n0x164d c0x0000 (---------------)  + I vestre-slidre
+	0x002ead4c, // n0x164e c0x0000 (---------------)  + I vestre-toten
+	0x002eb349, // n0x164f c0x0000 (---------------)  + I vestvagoy
+	0x002eb589, // n0x1650 c0x0000 (---------------)  + I vevelstad
+	0x3d3306c2, // n0x1651 c0x00f4 (n0x1726-n0x1727)  + I vf
+	0x00378c43, // n0x1652 c0x0000 (---------------)  + I vgs
+	0x00204143, // n0x1653 c0x0000 (---------------)  + I vik
+	0x00233f45, // n0x1654 c0x0000 (---------------)  + I vikna
+	0x003390ca, // n0x1655 c0x0000 (---------------)  + I vindafjord
+	0x0030c346, // n0x1656 c0x0000 (---------------)  + I voagat
+	0x002f2185, // n0x1657 c0x0000 (---------------)  + I volda
+	0x002f3c84, // n0x1658 c0x0000 (---------------)  + I voss
+	0x002f3c8b, // n0x1659 c0x0000 (---------------)  + I vossevangen
+	0x0030088c, // n0x165a c0x0000 (---------------)  + I xn--andy-ira
+	0x0030108c, // n0x165b c0x0000 (---------------)  + I xn--asky-ira
+	0x00301395, // n0x165c c0x0000 (---------------)  + I xn--aurskog-hland-jnb
+	0x0030208d, // n0x165d c0x0000 (---------------)  + I xn--avery-yua
+	0x0030310f, // n0x165e c0x0000 (---------------)  + I xn--bdddj-mrabd
+	0x003034d2, // n0x165f c0x0000 (---------------)  + I xn--bearalvhki-y4a
+	0x0030394f, // n0x1660 c0x0000 (---------------)  + I xn--berlevg-jxa
+	0x00303d12, // n0x1661 c0x0000 (---------------)  + I xn--bhcavuotna-s4a
+	0x00304193, // n0x1662 c0x0000 (---------------)  + I xn--bhccavuotna-k7a
+	0x0030464d, // n0x1663 c0x0000 (---------------)  + I xn--bidr-5nac
+	0x00304c0d, // n0x1664 c0x0000 (---------------)  + I xn--bievt-0qa
+	0x00304f4e, // n0x1665 c0x0000 (---------------)  + I xn--bjarky-fya
+	0x00305cce, // n0x1666 c0x0000 (---------------)  + I xn--bjddar-pta
+	0x0030644c, // n0x1667 c0x0000 (---------------)  + I xn--blt-elab
+	0x003067cc, // n0x1668 c0x0000 (---------------)  + I xn--bmlo-gra
+	0x00306c8b, // n0x1669 c0x0000 (---------------)  + I xn--bod-2na
+	0x003088ce, // n0x166a c0x0000 (---------------)  + I xn--brnny-wuac
+	0x0030b5d2, // n0x166b c0x0000 (---------------)  + I xn--brnnysund-m8ac
+	0x0030c10c, // n0x166c c0x0000 (---------------)  + I xn--brum-voa
+	0x0030d010, // n0x166d c0x0000 (---------------)  + I xn--btsfjord-9za
+	0x003142d2, // n0x166e c0x0000 (---------------)  + I xn--davvenjrga-y4a
+	0x0031544c, // n0x166f c0x0000 (---------------)  + I xn--dnna-gra
+	0x00315a8d, // n0x1670 c0x0000 (---------------)  + I xn--drbak-wua
+	0x00315dcc, // n0x1671 c0x0000 (---------------)  + I xn--dyry-ira
+	0x00317f51, // n0x1672 c0x0000 (---------------)  + I xn--eveni-0qa01ga
+	0x0031864d, // n0x1673 c0x0000 (---------------)  + I xn--finny-yua
+	0x0031b70d, // n0x1674 c0x0000 (---------------)  + I xn--fjord-lra
+	0x0031bd0a, // n0x1675 c0x0000 (---------------)  + I xn--fl-zia
+	0x0031bf8c, // n0x1676 c0x0000 (---------------)  + I xn--flor-jra
+	0x0031c88c, // n0x1677 c0x0000 (---------------)  + I xn--frde-gra
+	0x0031cc0c, // n0x1678 c0x0000 (---------------)  + I xn--frna-woa
+	0x0031d38c, // n0x1679 c0x0000 (---------------)  + I xn--frya-hra
+	0x0031e393, // n0x167a c0x0000 (---------------)  + I xn--ggaviika-8ya47h
+	0x0031eb50, // n0x167b c0x0000 (---------------)  + I xn--gildeskl-g0a
+	0x0031ef50, // n0x167c c0x0000 (---------------)  + I xn--givuotna-8ya
+	0x0031f5cd, // n0x167d c0x0000 (---------------)  + I xn--gjvik-wua
+	0x0031f90c, // n0x167e c0x0000 (---------------)  + I xn--gls-elac
+	0x00320589, // n0x167f c0x0000 (---------------)  + I xn--h-2fa
+	0x0032130d, // n0x1680 c0x0000 (---------------)  + I xn--hbmer-xqa
+	0x00321653, // n0x1681 c0x0000 (---------------)  + I xn--hcesuolo-7ya35b
+	0x00323a11, // n0x1682 c0x0000 (---------------)  + I xn--hgebostad-g3a
+	0x00323e53, // n0x1683 c0x0000 (---------------)  + I xn--hmmrfeasta-s4ac
+	0x0032484f, // n0x1684 c0x0000 (---------------)  + I xn--hnefoss-q1a
+	0x00324c0c, // n0x1685 c0x0000 (---------------)  + I xn--hobl-ira
+	0x00324f0f, // n0x1686 c0x0000 (---------------)  + I xn--holtlen-hxa
+	0x003252cd, // n0x1687 c0x0000 (---------------)  + I xn--hpmir-xqa
+	0x003258cf, // n0x1688 c0x0000 (---------------)  + I xn--hyanger-q1a
+	0x00325c90, // n0x1689 c0x0000 (---------------)  + I xn--hylandet-54a
+	0x0032670e, // n0x168a c0x0000 (---------------)  + I xn--indery-fya
+	0x00327a0e, // n0x168b c0x0000 (---------------)  + I xn--jlster-bya
+	0x003281d0, // n0x168c c0x0000 (---------------)  + I xn--jrpeland-54a
+	0x0032888d, // n0x168d c0x0000 (---------------)  + I xn--karmy-yua
+	0x0032920e, // n0x168e c0x0000 (---------------)  + I xn--kfjord-iua
+	0x0032958c, // n0x168f c0x0000 (---------------)  + I xn--klbu-woa
+	0x0032a593, // n0x1690 c0x0000 (---------------)  + I xn--koluokta-7ya57h
+	0x0032c34e, // n0x1691 c0x0000 (---------------)  + I xn--krager-gya
+	0x0032ec50, // n0x1692 c0x0000 (---------------)  + I xn--kranghke-b0a
+	0x0032f051, // n0x1693 c0x0000 (---------------)  + I xn--krdsherad-m8a
+	0x0032f48f, // n0x1694 c0x0000 (---------------)  + I xn--krehamn-dxa
+	0x0032f853, // n0x1695 c0x0000 (---------------)  + I xn--krjohka-hwab49j
+	0x0033024d, // n0x1696 c0x0000 (---------------)  + I xn--ksnes-uua
+	0x0033058f, // n0x1697 c0x0000 (---------------)  + I xn--kvfjord-nxa
+	0x0033094e, // n0x1698 c0x0000 (---------------)  + I xn--kvitsy-fya
+	0x003313d0, // n0x1699 c0x0000 (---------------)  + I xn--kvnangen-k0a
+	0x003317c9, // n0x169a c0x0000 (---------------)  + I xn--l-1fa
+	0x00332f50, // n0x169b c0x0000 (---------------)  + I xn--laheadju-7ya
+	0x0033388f, // n0x169c c0x0000 (---------------)  + I xn--langevg-jxa
+	0x00333f0f, // n0x169d c0x0000 (---------------)  + I xn--ldingen-q1a
+	0x003342d2, // n0x169e c0x0000 (---------------)  + I xn--leagaviika-52b
+	0x00335c8e, // n0x169f c0x0000 (---------------)  + I xn--lesund-hua
+	0x0033658d, // n0x16a0 c0x0000 (---------------)  + I xn--lgrd-poac
+	0x00336b8d, // n0x16a1 c0x0000 (---------------)  + I xn--lhppi-xqa
+	0x00336ecd, // n0x16a2 c0x0000 (---------------)  + I xn--linds-pra
+	0x00337d8d, // n0x16a3 c0x0000 (---------------)  + I xn--loabt-0qa
+	0x003380cd, // n0x16a4 c0x0000 (---------------)  + I xn--lrdal-sra
+	0x00338410, // n0x16a5 c0x0000 (---------------)  + I xn--lrenskog-54a
+	0x0033880b, // n0x16a6 c0x0000 (---------------)  + I xn--lt-liac
+	0x00338d8c, // n0x16a7 c0x0000 (---------------)  + I xn--lten-gra
+	0x0033934c, // n0x16a8 c0x0000 (---------------)  + I xn--lury-ira
+	0x0033964c, // n0x16a9 c0x0000 (---------------)  + I xn--mely-ira
+	0x0033994e, // n0x16aa c0x0000 (---------------)  + I xn--merker-kua
+	0x00340090, // n0x16ab c0x0000 (---------------)  + I xn--mjndalen-64a
+	0x00341552, // n0x16ac c0x0000 (---------------)  + I xn--mlatvuopmi-s4a
+	0x003419cb, // n0x16ad c0x0000 (---------------)  + I xn--mli-tla
+	0x00341d4e, // n0x16ae c0x0000 (---------------)  + I xn--mlselv-iua
+	0x003420ce, // n0x16af c0x0000 (---------------)  + I xn--moreke-jua
+	0x00342cce, // n0x16b0 c0x0000 (---------------)  + I xn--mosjen-eya
+	0x003432cb, // n0x16b1 c0x0000 (---------------)  + I xn--mot-tla
+	0x3d743596, // n0x16b2 c0x00f5 (n0x1727-n0x1729)  o I xn--mre-og-romsdal-qqb
+	0x003464cd, // n0x16b3 c0x0000 (---------------)  + I xn--msy-ula0h
+	0x00346954, // n0x16b4 c0x0000 (---------------)  + I xn--mtta-vrjjat-k7af
+	0x00347d4d, // n0x16b5 c0x0000 (---------------)  + I xn--muost-0qa
+	0x00349155, // n0x16b6 c0x0000 (---------------)  + I xn--nmesjevuemie-tcba
+	0x0034a8cd, // n0x16b7 c0x0000 (---------------)  + I xn--nry-yla5g
+	0x0034b24f, // n0x16b8 c0x0000 (---------------)  + I xn--nttery-byae
+	0x0034b94f, // n0x16b9 c0x0000 (---------------)  + I xn--nvuotna-hwa
+	0x0034e24f, // n0x16ba c0x0000 (---------------)  + I xn--oppegrd-ixa
+	0x0034e60e, // n0x16bb c0x0000 (---------------)  + I xn--ostery-fya
+	0x0034eb8d, // n0x16bc c0x0000 (---------------)  + I xn--osyro-wua
+	0x00350311, // n0x16bd c0x0000 (---------------)  + I xn--porsgu-sta26f
+	0x0035208c, // n0x16be c0x0000 (---------------)  + I xn--rady-ira
+	0x0035238c, // n0x16bf c0x0000 (---------------)  + I xn--rdal-poa
+	0x0035268b, // n0x16c0 c0x0000 (---------------)  + I xn--rde-ula
+	0x0035294c, // n0x16c1 c0x0000 (---------------)  + I xn--rdy-0nab
+	0x003532cf, // n0x16c2 c0x0000 (---------------)  + I xn--rennesy-v1a
+	0x00353692, // n0x16c3 c0x0000 (---------------)  + I xn--rhkkervju-01af
+	0x00353d0d, // n0x16c4 c0x0000 (---------------)  + I xn--rholt-mra
+	0x00354dcc, // n0x16c5 c0x0000 (---------------)  + I xn--risa-5na
+	0x0035518c, // n0x16c6 c0x0000 (---------------)  + I xn--risr-ira
+	0x0035548d, // n0x16c7 c0x0000 (---------------)  + I xn--rland-uua
+	0x003557cf, // n0x16c8 c0x0000 (---------------)  + I xn--rlingen-mxa
+	0x00355b8e, // n0x16c9 c0x0000 (---------------)  + I xn--rmskog-bya
+	0x00356b4c, // n0x16ca c0x0000 (---------------)  + I xn--rros-gra
+	0x00356fcd, // n0x16cb c0x0000 (---------------)  + I xn--rskog-uua
+	0x0035730b, // n0x16cc c0x0000 (---------------)  + I xn--rst-0na
+	0x0035774c, // n0x16cd c0x0000 (---------------)  + I xn--rsta-fra
+	0x00357ccd, // n0x16ce c0x0000 (---------------)  + I xn--ryken-vua
+	0x0035800e, // n0x16cf c0x0000 (---------------)  + I xn--ryrvik-bya
+	0x00358589, // n0x16d0 c0x0000 (---------------)  + I xn--s-1fa
+	0x0035a893, // n0x16d1 c0x0000 (---------------)  + I xn--sandnessjen-ogb
+	0x0035b20d, // n0x16d2 c0x0000 (---------------)  + I xn--sandy-yua
+	0x0035b54d, // n0x16d3 c0x0000 (---------------)  + I xn--seral-lra
+	0x0035bb4c, // n0x16d4 c0x0000 (---------------)  + I xn--sgne-gra
+	0x0035c20e, // n0x16d5 c0x0000 (---------------)  + I xn--skierv-uta
+	0x0035cb0f, // n0x16d6 c0x0000 (---------------)  + I xn--skjervy-v1a
+	0x0035cecc, // n0x16d7 c0x0000 (---------------)  + I xn--skjk-soa
+	0x0035d1cd, // n0x16d8 c0x0000 (---------------)  + I xn--sknit-yqa
+	0x0035d50f, // n0x16d9 c0x0000 (---------------)  + I xn--sknland-fxa
+	0x0035d8cc, // n0x16da c0x0000 (---------------)  + I xn--slat-5na
+	0x0035decc, // n0x16db c0x0000 (---------------)  + I xn--slt-elab
+	0x0035e28c, // n0x16dc c0x0000 (---------------)  + I xn--smla-hra
+	0x0035e58c, // n0x16dd c0x0000 (---------------)  + I xn--smna-gra
+	0x0035e8cd, // n0x16de c0x0000 (---------------)  + I xn--snase-nra
+	0x0035ec12, // n0x16df c0x0000 (---------------)  + I xn--sndre-land-0cb
+	0x0036188c, // n0x16e0 c0x0000 (---------------)  + I xn--snes-poa
+	0x00361b8c, // n0x16e1 c0x0000 (---------------)  + I xn--snsa-roa
+	0x00361e91, // n0x16e2 c0x0000 (---------------)  + I xn--sr-aurdal-l8a
+	0x003622cf, // n0x16e3 c0x0000 (---------------)  + I xn--sr-fron-q1a
+	0x0036268f, // n0x16e4 c0x0000 (---------------)  + I xn--sr-odal-q1a
+	0x00362a53, // n0x16e5 c0x0000 (---------------)  + I xn--sr-varanger-ggb
+	0x003679ce, // n0x16e6 c0x0000 (---------------)  + I xn--srfold-bya
+	0x00367d4f, // n0x16e7 c0x0000 (---------------)  + I xn--srreisa-q1a
+	0x0036810c, // n0x16e8 c0x0000 (---------------)  + I xn--srum-gra
+	0x3db6840e, // n0x16e9 c0x00f6 (n0x1729-n0x172a)  o I xn--stfold-9xa
+	0x0036878f, // n0x16ea c0x0000 (---------------)  + I xn--stjrdal-s1a
+	0x00368b56, // n0x16eb c0x0000 (---------------)  + I xn--stjrdalshalsen-sqb
+	0x0036e8d2, // n0x16ec c0x0000 (---------------)  + I xn--stre-toten-zcb
+	0x00370c8c, // n0x16ed c0x0000 (---------------)  + I xn--tjme-hra
+	0x0037144f, // n0x16ee c0x0000 (---------------)  + I xn--tnsberg-q1a
+	0x00371acd, // n0x16ef c0x0000 (---------------)  + I xn--trany-yua
+	0x00371e0f, // n0x16f0 c0x0000 (---------------)  + I xn--trgstad-r1a
+	0x003721cc, // n0x16f1 c0x0000 (---------------)  + I xn--trna-woa
+	0x003724cd, // n0x16f2 c0x0000 (---------------)  + I xn--troms-zua
+	0x0037280d, // n0x16f3 c0x0000 (---------------)  + I xn--tysvr-vra
+	0x00373a8e, // n0x16f4 c0x0000 (---------------)  + I xn--unjrga-rta
+	0x0037480c, // n0x16f5 c0x0000 (---------------)  + I xn--vads-jra
+	0x00374b0c, // n0x16f6 c0x0000 (---------------)  + I xn--vard-jra
+	0x00374e10, // n0x16f7 c0x0000 (---------------)  + I xn--vegrshei-c0a
+	0x00377591, // n0x16f8 c0x0000 (---------------)  + I xn--vestvgy-ixa6o
+	0x003779cb, // n0x16f9 c0x0000 (---------------)  + I xn--vg-yiab
+	0x0037884c, // n0x16fa c0x0000 (---------------)  + I xn--vgan-qoa
+	0x00378b4e, // n0x16fb c0x0000 (---------------)  + I xn--vgsy-qoa0j
+	0x0037ad91, // n0x16fc c0x0000 (---------------)  + I xn--vre-eiker-k8a
+	0x0037b1ce, // n0x16fd c0x0000 (---------------)  + I xn--vrggt-xqad
+	0x0037b54d, // n0x16fe c0x0000 (---------------)  + I xn--vry-yla5g
+	0x0037ea0b, // n0x16ff c0x0000 (---------------)  + I xn--yer-zna
+	0x0037f34f, // n0x1700 c0x0000 (---------------)  + I xn--ygarden-p1a
+	0x00380a14, // n0x1701 c0x0000 (---------------)  + I xn--ystre-slidre-ujb
+	0x00209602, // n0x1702 c0x0000 (---------------)  + I gs
+	0x00209602, // n0x1703 c0x0000 (---------------)  + I gs
+	0x00209e83, // n0x1704 c0x0000 (---------------)  + I nes
+	0x00209602, // n0x1705 c0x0000 (---------------)  + I gs
+	0x00209e83, // n0x1706 c0x0000 (---------------)  + I nes
+	0x00209602, // n0x1707 c0x0000 (---------------)  + I gs
+	0x002053c2, // n0x1708 c0x0000 (---------------)  + I os
+	0x00246f85, // n0x1709 c0x0000 (---------------)  + I valer
+	0x0037aa8c, // n0x170a c0x0000 (---------------)  + I xn--vler-qoa
+	0x00209602, // n0x170b c0x0000 (---------------)  + I gs
+	0x00209602, // n0x170c c0x0000 (---------------)  + I gs
+	0x002053c2, // n0x170d c0x0000 (---------------)  + I os
+	0x00209602, // n0x170e c0x0000 (---------------)  + I gs
+	0x0028a2c5, // n0x170f c0x0000 (---------------)  + I heroy
+	0x002a4f45, // n0x1710 c0x0000 (---------------)  + I sande
+	0x00209602, // n0x1711 c0x0000 (---------------)  + I gs
+	0x00209602, // n0x1712 c0x0000 (---------------)  + I gs
+	0x00210042, // n0x1713 c0x0000 (---------------)  + I bo
+	0x0028a2c5, // n0x1714 c0x0000 (---------------)  + I heroy
+	0x00302b49, // n0x1715 c0x0000 (---------------)  + I xn--b-5ga
+	0x0032370c, // n0x1716 c0x0000 (---------------)  + I xn--hery-ira
+	0x00209602, // n0x1717 c0x0000 (---------------)  + I gs
+	0x00209602, // n0x1718 c0x0000 (---------------)  + I gs
+	0x00209602, // n0x1719 c0x0000 (---------------)  + I gs
+	0x00209602, // n0x171a c0x0000 (---------------)  + I gs
+	0x00246f85, // n0x171b c0x0000 (---------------)  + I valer
+	0x00209602, // n0x171c c0x0000 (---------------)  + I gs
+	0x00209602, // n0x171d c0x0000 (---------------)  + I gs
+	0x00209602, // n0x171e c0x0000 (---------------)  + I gs
+	0x00209602, // n0x171f c0x0000 (---------------)  + I gs
+	0x00210042, // n0x1720 c0x0000 (---------------)  + I bo
+	0x00302b49, // n0x1721 c0x0000 (---------------)  + I xn--b-5ga
+	0x00209602, // n0x1722 c0x0000 (---------------)  + I gs
+	0x00209602, // n0x1723 c0x0000 (---------------)  + I gs
+	0x00209602, // n0x1724 c0x0000 (---------------)  + I gs
+	0x002a4f45, // n0x1725 c0x0000 (---------------)  + I sande
+	0x00209602, // n0x1726 c0x0000 (---------------)  + I gs
+	0x002a4f45, // n0x1727 c0x0000 (---------------)  + I sande
+	0x0032370c, // n0x1728 c0x0000 (---------------)  + I xn--hery-ira
+	0x0037aa8c, // n0x1729 c0x0000 (---------------)  + I xn--vler-qoa
+	0x00202183, // n0x172a c0x0000 (---------------)  + I biz
+	0x00232dc3, // n0x172b c0x0000 (---------------)  + I com
+	0x0021e083, // n0x172c c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x172d c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x172e c0x0000 (---------------)  + I info
+	0x00218643, // n0x172f c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1730 c0x0000 (---------------)  + I org
+	0x0001f6c8, // n0x1731 c0x0000 (---------------)  +   merseine
+	0x000adb04, // n0x1732 c0x0000 (---------------)  +   mine
+	0x000b2588, // n0x1733 c0x0000 (---------------)  +   shacknet
+	0x00200b82, // n0x1734 c0x0000 (---------------)  + I ac
+	0x3ea00882, // n0x1735 c0x00fa (n0x1744-n0x1745)  + I co
+	0x00240f03, // n0x1736 c0x0000 (---------------)  + I cri
+	0x00213f44, // n0x1737 c0x0000 (---------------)  + I geek
+	0x0020a0c3, // n0x1738 c0x0000 (---------------)  + I gen
+	0x00217044, // n0x1739 c0x0000 (---------------)  + I govt
+	0x00241cc6, // n0x173a c0x0000 (---------------)  + I health
+	0x00207a43, // n0x173b c0x0000 (---------------)  + I iwi
+	0x00382c84, // n0x173c c0x0000 (---------------)  + I kiwi
+	0x00281bc5, // n0x173d c0x0000 (---------------)  + I maori
+	0x00240443, // n0x173e c0x0000 (---------------)  + I mil
+	0x00218643, // n0x173f c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1740 c0x0000 (---------------)  + I org
+	0x002702ca, // n0x1741 c0x0000 (---------------)  + I parliament
+	0x00275006, // n0x1742 c0x0000 (---------------)  + I school
+	0x0034244c, // n0x1743 c0x0000 (---------------)  + I xn--mori-qsa
+	0x0009e448, // n0x1744 c0x0000 (---------------)  +   blogspot
+	0x00200882, // n0x1745 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x1746 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1747 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1748 c0x0000 (---------------)  + I gov
+	0x00210e83, // n0x1749 c0x0000 (---------------)  + I med
+	0x002c2a06, // n0x174a c0x0000 (---------------)  + I museum
+	0x00218643, // n0x174b c0x0000 (---------------)  + I net
+	0x0024d043, // n0x174c c0x0000 (---------------)  + I org
+	0x002cfc43, // n0x174d c0x0000 (---------------)  + I pro
+	0x0000d2c2, // n0x174e c0x0000 (---------------)  +   ae
+	0x000dd187, // n0x174f c0x0000 (---------------)  +   blogdns
+	0x000c6308, // n0x1750 c0x0000 (---------------)  +   blogsite
+	0x00080ed2, // n0x1751 c0x0000 (---------------)  +   boldlygoingnowhere
+	0x000c7a88, // n0x1752 c0x0000 (---------------)  +   dnsalias
+	0x00181687, // n0x1753 c0x0000 (---------------)  +   dnsdojo
+	0x000146cb, // n0x1754 c0x0000 (---------------)  +   doesntexist
+	0x0012cb09, // n0x1755 c0x0000 (---------------)  +   dontexist
+	0x000c7987, // n0x1756 c0x0000 (---------------)  +   doomdns
+	0x001815c6, // n0x1757 c0x0000 (---------------)  +   dvrdns
+	0x00159288, // n0x1758 c0x0000 (---------------)  +   dynalias
+	0x3f40dc06, // n0x1759 c0x00fd (n0x1784-n0x1786)  +   dyndns
+	0x0009d40d, // n0x175a c0x0000 (---------------)  +   endofinternet
+	0x000ed550, // n0x175b c0x0000 (---------------)  +   endoftheinternet
+	0x00064987, // n0x175c c0x0000 (---------------)  +   from-me
+	0x0008cc89, // n0x175d c0x0000 (---------------)  +   game-host
+	0x00052ac6, // n0x175e c0x0000 (---------------)  +   gotdns
+	0x000301c2, // n0x175f c0x0000 (---------------)  +   hk
+	0x000f45ca, // n0x1760 c0x0000 (---------------)  +   hobby-site
+	0x00010e07, // n0x1761 c0x0000 (---------------)  +   homedns
+	0x0000ddc7, // n0x1762 c0x0000 (---------------)  +   homeftp
+	0x00099409, // n0x1763 c0x0000 (---------------)  +   homelinux
+	0x00099ec8, // n0x1764 c0x0000 (---------------)  +   homeunix
+	0x000ea54e, // n0x1765 c0x0000 (---------------)  +   is-a-bruinsfan
+	0x00017f8e, // n0x1766 c0x0000 (---------------)  +   is-a-candidate
+	0x00019ecf, // n0x1767 c0x0000 (---------------)  +   is-a-celticsfan
+	0x0001f409, // n0x1768 c0x0000 (---------------)  +   is-a-chef
+	0x00047789, // n0x1769 c0x0000 (---------------)  +   is-a-geek
+	0x0006b7cb, // n0x176a c0x0000 (---------------)  +   is-a-knight
+	0x0012ab0f, // n0x176b c0x0000 (---------------)  +   is-a-linux-user
+	0x000a07cc, // n0x176c c0x0000 (---------------)  +   is-a-patsfan
+	0x0011690b, // n0x176d c0x0000 (---------------)  +   is-a-soxfan
+	0x000d9888, // n0x176e c0x0000 (---------------)  +   is-found
+	0x000f1347, // n0x176f c0x0000 (---------------)  +   is-lost
+	0x000e3c88, // n0x1770 c0x0000 (---------------)  +   is-saved
+	0x0010e28b, // n0x1771 c0x0000 (---------------)  +   is-very-bad
+	0x0011cf8c, // n0x1772 c0x0000 (---------------)  +   is-very-evil
+	0x0011ff8c, // n0x1773 c0x0000 (---------------)  +   is-very-good
+	0x0012708c, // n0x1774 c0x0000 (---------------)  +   is-very-nice
+	0x0012bc8d, // n0x1775 c0x0000 (---------------)  +   is-very-sweet
+	0x00013e48, // n0x1776 c0x0000 (---------------)  +   isa-geek
+	0x00132909, // n0x1777 c0x0000 (---------------)  +   kicks-ass
+	0x00151dcb, // n0x1778 c0x0000 (---------------)  +   misconfused
+	0x000ccf07, // n0x1779 c0x0000 (---------------)  +   podzone
+	0x000c618a, // n0x177a c0x0000 (---------------)  +   readmyblog
+	0x00141246, // n0x177b c0x0000 (---------------)  +   selfip
+	0x000b8fcd, // n0x177c c0x0000 (---------------)  +   sellsyourhome
+	0x0000be88, // n0x177d c0x0000 (---------------)  +   servebbs
+	0x0008e548, // n0x177e c0x0000 (---------------)  +   serveftp
+	0x0008e7c9, // n0x177f c0x0000 (---------------)  +   servegame
+	0x000dd7cc, // n0x1780 c0x0000 (---------------)  +   stuff-4-sale
+	0x000073c2, // n0x1781 c0x0000 (---------------)  +   us
+	0x0002c186, // n0x1782 c0x0000 (---------------)  +   webhop
+	0x000028c2, // n0x1783 c0x0000 (---------------)  +   za
+	0x00009ac2, // n0x1784 c0x0000 (---------------)  +   go
+	0x0000ddc4, // n0x1785 c0x0000 (---------------)  +   home
+	0x00217403, // n0x1786 c0x0000 (---------------)  + I abo
+	0x00200b82, // n0x1787 c0x0000 (---------------)  + I ac
+	0x00232dc3, // n0x1788 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1789 c0x0000 (---------------)  + I edu
+	0x003704c3, // n0x178a c0x0000 (---------------)  + I gob
+	0x00200243, // n0x178b c0x0000 (---------------)  + I ing
+	0x00210e83, // n0x178c c0x0000 (---------------)  + I med
+	0x00218643, // n0x178d c0x0000 (---------------)  + I net
+	0x002104c3, // n0x178e c0x0000 (---------------)  + I nom
+	0x0024d043, // n0x178f c0x0000 (---------------)  + I org
+	0x002d3a83, // n0x1790 c0x0000 (---------------)  + I sld
+	0x00232dc3, // n0x1791 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1792 c0x0000 (---------------)  + I edu
+	0x003704c3, // n0x1793 c0x0000 (---------------)  + I gob
+	0x00240443, // n0x1794 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x1795 c0x0000 (---------------)  + I net
+	0x002104c3, // n0x1796 c0x0000 (---------------)  + I nom
+	0x0024d043, // n0x1797 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x1798 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1799 c0x0000 (---------------)  + I edu
+	0x0024d043, // n0x179a c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x179b c0x0000 (---------------)  + I com
+	0x0021e083, // n0x179c c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x179d c0x0000 (---------------)  + I gov
+	0x00200041, // n0x179e c0x0000 (---------------)  + I i
+	0x00240443, // n0x179f c0x0000 (---------------)  + I mil
+	0x00218643, // n0x17a0 c0x0000 (---------------)  + I net
+	0x0024ad43, // n0x17a1 c0x0000 (---------------)  + I ngo
+	0x0024d043, // n0x17a2 c0x0000 (---------------)  + I org
+	0x00202183, // n0x17a3 c0x0000 (---------------)  + I biz
+	0x00232dc3, // n0x17a4 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x17a5 c0x0000 (---------------)  + I edu
+	0x00291143, // n0x17a6 c0x0000 (---------------)  + I fam
+	0x003704c3, // n0x17a7 c0x0000 (---------------)  + I gob
+	0x00269c03, // n0x17a8 c0x0000 (---------------)  + I gok
+	0x00264203, // n0x17a9 c0x0000 (---------------)  + I gon
+	0x00297e83, // n0x17aa c0x0000 (---------------)  + I gop
+	0x0021dbc3, // n0x17ab c0x0000 (---------------)  + I gos
+	0x00209ac3, // n0x17ac c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x17ad c0x0000 (---------------)  + I info
+	0x00218643, // n0x17ae c0x0000 (---------------)  + I net
+	0x0024d043, // n0x17af c0x0000 (---------------)  + I org
+	0x002071c3, // n0x17b0 c0x0000 (---------------)  + I web
+	0x0036d504, // n0x17b1 c0x0000 (---------------)  + I agro
+	0x0020d643, // n0x17b2 c0x0000 (---------------)  + I aid
+	0x00008d43, // n0x17b3 c0x0000 (---------------)  +   art
+	0x00203283, // n0x17b4 c0x0000 (---------------)  + I atm
+	0x002fd708, // n0x17b5 c0x0000 (---------------)  + I augustow
+	0x00262c44, // n0x17b6 c0x0000 (---------------)  + I auto
+	0x002c3e8a, // n0x17b7 c0x0000 (---------------)  + I babia-gora
+	0x0020f9c6, // n0x17b8 c0x0000 (---------------)  + I bedzin
+	0x0037ce07, // n0x17b9 c0x0000 (---------------)  + I beskidy
+	0x0022150a, // n0x17ba c0x0000 (---------------)  + I bialowieza
+	0x0023a5c9, // n0x17bb c0x0000 (---------------)  + I bialystok
+	0x00200007, // n0x17bc c0x0000 (---------------)  + I bielawa
+	0x0020274a, // n0x17bd c0x0000 (---------------)  + I bieszczady
+	0x00202183, // n0x17be c0x0000 (---------------)  + I biz
+	0x002df90b, // n0x17bf c0x0000 (---------------)  + I boleslawiec
+	0x00274409, // n0x17c0 c0x0000 (---------------)  + I bydgoszcz
+	0x002d09c5, // n0x17c1 c0x0000 (---------------)  + I bytom
+	0x002c0747, // n0x17c2 c0x0000 (---------------)  + I cieszyn
+	0x00000882, // n0x17c3 c0x0000 (---------------)  +   co
+	0x00232dc3, // n0x17c4 c0x0000 (---------------)  + I com
+	0x0032ea07, // n0x17c5 c0x0000 (---------------)  + I czeladz
+	0x002283c5, // n0x17c6 c0x0000 (---------------)  + I czest
+	0x002b0789, // n0x17c7 c0x0000 (---------------)  + I dlugoleka
+	0x0021e083, // n0x17c8 c0x0000 (---------------)  + I edu
+	0x00228b46, // n0x17c9 c0x0000 (---------------)  + I elblag
+	0x002af303, // n0x17ca c0x0000 (---------------)  + I elk
+	0x00018cc3, // n0x17cb c0x0000 (---------------)  +   gda
+	0x000f2c86, // n0x17cc c0x0000 (---------------)  +   gdansk
+	0x00166b06, // n0x17cd c0x0000 (---------------)  +   gdynia
+	0x000079c7, // n0x17ce c0x0000 (---------------)  +   gliwice
+	0x00211506, // n0x17cf c0x0000 (---------------)  + I glogow
+	0x00224f05, // n0x17d0 c0x0000 (---------------)  + I gmina
+	0x00237fc7, // n0x17d1 c0x0000 (---------------)  + I gniezno
+	0x002e4c87, // n0x17d2 c0x0000 (---------------)  + I gorlice
+	0x41209ac3, // n0x17d3 c0x0104 (n0x1856-n0x185f)  + I gov
+	0x00306a07, // n0x17d4 c0x0000 (---------------)  + I grajewo
+	0x0033ba43, // n0x17d5 c0x0000 (---------------)  + I gsm
+	0x0036d945, // n0x17d6 c0x0000 (---------------)  + I ilawa
+	0x00208a44, // n0x17d7 c0x0000 (---------------)  + I info
+	0x0022cfc8, // n0x17d8 c0x0000 (---------------)  + I jaworzno
+	0x003507cc, // n0x17d9 c0x0000 (---------------)  + I jelenia-gora
+	0x002a1b85, // n0x17da c0x0000 (---------------)  + I jgora
+	0x002a6b06, // n0x17db c0x0000 (---------------)  + I kalisz
+	0x0032e8c7, // n0x17dc c0x0000 (---------------)  + I karpacz
+	0x0037bd47, // n0x17dd c0x0000 (---------------)  + I kartuzy
+	0x002061c7, // n0x17de c0x0000 (---------------)  + I kaszuby
+	0x00214008, // n0x17df c0x0000 (---------------)  + I katowice
+	0x00269dcf, // n0x17e0 c0x0000 (---------------)  + I kazimierz-dolny
+	0x00349b45, // n0x17e1 c0x0000 (---------------)  + I kepno
+	0x00241007, // n0x17e2 c0x0000 (---------------)  + I ketrzyn
+	0x00248947, // n0x17e3 c0x0000 (---------------)  + I klodzko
+	0x00298fca, // n0x17e4 c0x0000 (---------------)  + I kobierzyce
+	0x0029a889, // n0x17e5 c0x0000 (---------------)  + I kolobrzeg
+	0x002bd185, // n0x17e6 c0x0000 (---------------)  + I konin
+	0x002c0cca, // n0x17e7 c0x0000 (---------------)  + I konskowola
+	0x000a4106, // n0x17e8 c0x0000 (---------------)  +   krakow
+	0x002af385, // n0x17e9 c0x0000 (---------------)  + I kutno
+	0x002b9804, // n0x17ea c0x0000 (---------------)  + I lapy
+	0x00262ac6, // n0x17eb c0x0000 (---------------)  + I lebork
+	0x00278087, // n0x17ec c0x0000 (---------------)  + I legnica
+	0x002dda47, // n0x17ed c0x0000 (---------------)  + I lezajsk
+	0x00345708, // n0x17ee c0x0000 (---------------)  + I limanowa
+	0x002cba85, // n0x17ef c0x0000 (---------------)  + I lomza
+	0x002282c6, // n0x17f0 c0x0000 (---------------)  + I lowicz
+	0x0034cb05, // n0x17f1 c0x0000 (---------------)  + I lubin
+	0x00359945, // n0x17f2 c0x0000 (---------------)  + I lukow
+	0x00214f44, // n0x17f3 c0x0000 (---------------)  + I mail
+	0x0030e687, // n0x17f4 c0x0000 (---------------)  + I malbork
+	0x002f99ca, // n0x17f5 c0x0000 (---------------)  + I malopolska
+	0x002011c8, // n0x17f6 c0x0000 (---------------)  + I mazowsze
+	0x002df1c6, // n0x17f7 c0x0000 (---------------)  + I mazury
+	0x00010e83, // n0x17f8 c0x0000 (---------------)  +   med
+	0x0021e585, // n0x17f9 c0x0000 (---------------)  + I media
+	0x0029dd46, // n0x17fa c0x0000 (---------------)  + I miasta
+	0x00201f86, // n0x17fb c0x0000 (---------------)  + I mielec
+	0x0030a3c6, // n0x17fc c0x0000 (---------------)  + I mielno
+	0x00240443, // n0x17fd c0x0000 (---------------)  + I mil
+	0x00353f87, // n0x17fe c0x0000 (---------------)  + I mragowo
+	0x002488c5, // n0x17ff c0x0000 (---------------)  + I naklo
+	0x00218643, // n0x1800 c0x0000 (---------------)  + I net
+	0x0026f98d, // n0x1801 c0x0000 (---------------)  + I nieruchomosci
+	0x002104c3, // n0x1802 c0x0000 (---------------)  + I nom
+	0x00345808, // n0x1803 c0x0000 (---------------)  + I nowaruda
+	0x00233644, // n0x1804 c0x0000 (---------------)  + I nysa
+	0x0026ee45, // n0x1805 c0x0000 (---------------)  + I olawa
+	0x00298ec6, // n0x1806 c0x0000 (---------------)  + I olecko
+	0x00275106, // n0x1807 c0x0000 (---------------)  + I olkusz
+	0x0021ce87, // n0x1808 c0x0000 (---------------)  + I olsztyn
+	0x0023a907, // n0x1809 c0x0000 (---------------)  + I opoczno
+	0x00297245, // n0x180a c0x0000 (---------------)  + I opole
+	0x0024d043, // n0x180b c0x0000 (---------------)  + I org
+	0x00217287, // n0x180c c0x0000 (---------------)  + I ostroda
+	0x0021c3c9, // n0x180d c0x0000 (---------------)  + I ostroleka
+	0x0021dc09, // n0x180e c0x0000 (---------------)  + I ostrowiec
+	0x0022b40a, // n0x180f c0x0000 (---------------)  + I ostrowwlkp
+	0x0021c6c2, // n0x1810 c0x0000 (---------------)  + I pc
+	0x0036d904, // n0x1811 c0x0000 (---------------)  + I pila
+	0x002c9884, // n0x1812 c0x0000 (---------------)  + I pisz
+	0x00242907, // n0x1813 c0x0000 (---------------)  + I podhale
+	0x002cc648, // n0x1814 c0x0000 (---------------)  + I podlasie
+	0x002cd309, // n0x1815 c0x0000 (---------------)  + I polkowice
+	0x00221809, // n0x1816 c0x0000 (---------------)  + I pomorskie
+	0x002cda47, // n0x1817 c0x0000 (---------------)  + I pomorze
+	0x00226a06, // n0x1818 c0x0000 (---------------)  + I powiat
+	0x000cf186, // n0x1819 c0x0000 (---------------)  +   poznan
+	0x002cfac4, // n0x181a c0x0000 (---------------)  + I priv
+	0x002cfc4a, // n0x181b c0x0000 (---------------)  + I prochowice
+	0x002d3048, // n0x181c c0x0000 (---------------)  + I pruszkow
+	0x002d3249, // n0x181d c0x0000 (---------------)  + I przeworsk
+	0x002a9786, // n0x181e c0x0000 (---------------)  + I pulawy
+	0x002fdd05, // n0x181f c0x0000 (---------------)  + I radom
+	0x00201088, // n0x1820 c0x0000 (---------------)  + I rawa-maz
+	0x002b614a, // n0x1821 c0x0000 (---------------)  + I realestate
+	0x0027f043, // n0x1822 c0x0000 (---------------)  + I rel
+	0x00273646, // n0x1823 c0x0000 (---------------)  + I rybnik
+	0x002cdb47, // n0x1824 c0x0000 (---------------)  + I rzeszow
+	0x003795c5, // n0x1825 c0x0000 (---------------)  + I sanok
+	0x002546c5, // n0x1826 c0x0000 (---------------)  + I sejny
+	0x0022ae43, // n0x1827 c0x0000 (---------------)  + I sex
+	0x0022e644, // n0x1828 c0x0000 (---------------)  + I shop
+	0x0022b1c5, // n0x1829 c0x0000 (---------------)  + I sklep
+	0x0027c807, // n0x182a c0x0000 (---------------)  + I skoczow
+	0x002e74c5, // n0x182b c0x0000 (---------------)  + I slask
+	0x00331b86, // n0x182c c0x0000 (---------------)  + I slupsk
+	0x000d5645, // n0x182d c0x0000 (---------------)  +   sopot
+	0x002624c3, // n0x182e c0x0000 (---------------)  + I sos
+	0x002624c9, // n0x182f c0x0000 (---------------)  + I sosnowiec
+	0x0026ec0c, // n0x1830 c0x0000 (---------------)  + I stalowa-wola
+	0x002e088c, // n0x1831 c0x0000 (---------------)  + I starachowice
+	0x002bd588, // n0x1832 c0x0000 (---------------)  + I stargard
+	0x002add87, // n0x1833 c0x0000 (---------------)  + I suwalki
+	0x002e2048, // n0x1834 c0x0000 (---------------)  + I swidnica
+	0x002e238a, // n0x1835 c0x0000 (---------------)  + I swiebodzin
+	0x002e2b0b, // n0x1836 c0x0000 (---------------)  + I swinoujscie
+	0x00274548, // n0x1837 c0x0000 (---------------)  + I szczecin
+	0x002a6c08, // n0x1838 c0x0000 (---------------)  + I szczytno
+	0x003818c6, // n0x1839 c0x0000 (---------------)  + I szkola
+	0x002fb5c5, // n0x183a c0x0000 (---------------)  + I targi
+	0x0036384a, // n0x183b c0x0000 (---------------)  + I tarnobrzeg
+	0x002276c5, // n0x183c c0x0000 (---------------)  + I tgory
+	0x002032c2, // n0x183d c0x0000 (---------------)  + I tm
+	0x002b3cc7, // n0x183e c0x0000 (---------------)  + I tourism
+	0x00290186, // n0x183f c0x0000 (---------------)  + I travel
+	0x00332305, // n0x1840 c0x0000 (---------------)  + I turek
+	0x002e4149, // n0x1841 c0x0000 (---------------)  + I turystyka
+	0x00232f85, // n0x1842 c0x0000 (---------------)  + I tychy
+	0x0029cf05, // n0x1843 c0x0000 (---------------)  + I ustka
+	0x002fc789, // n0x1844 c0x0000 (---------------)  + I walbrzych
+	0x0033e5c6, // n0x1845 c0x0000 (---------------)  + I warmia
+	0x0025e288, // n0x1846 c0x0000 (---------------)  + I warszawa
+	0x00276e43, // n0x1847 c0x0000 (---------------)  + I waw
+	0x00211646, // n0x1848 c0x0000 (---------------)  + I wegrow
+	0x0026dcc6, // n0x1849 c0x0000 (---------------)  + I wielun
+	0x0029a685, // n0x184a c0x0000 (---------------)  + I wlocl
+	0x0029a689, // n0x184b c0x0000 (---------------)  + I wloclawek
+	0x0029dfc9, // n0x184c c0x0000 (---------------)  + I wodzislaw
+	0x00255e47, // n0x184d c0x0000 (---------------)  + I wolomin
+	0x000a4244, // n0x184e c0x0000 (---------------)  +   wroc
+	0x002a4247, // n0x184f c0x0000 (---------------)  + I wroclaw
+	0x00221709, // n0x1850 c0x0000 (---------------)  + I zachpomor
+	0x0023d0c5, // n0x1851 c0x0000 (---------------)  + I zagan
+	0x00043988, // n0x1852 c0x0000 (---------------)  +   zakopane
+	0x0035fa45, // n0x1853 c0x0000 (---------------)  + I zarow
+	0x0022af45, // n0x1854 c0x0000 (---------------)  + I zgora
+	0x0022db89, // n0x1855 c0x0000 (---------------)  + I zgorzelec
+	0x00200ac2, // n0x1856 c0x0000 (---------------)  + I pa
+	0x002167c2, // n0x1857 c0x0000 (---------------)  + I po
+	0x00209f02, // n0x1858 c0x0000 (---------------)  + I so
+	0x002dc282, // n0x1859 c0x0000 (---------------)  + I sr
+	0x0029de09, // n0x185a c0x0000 (---------------)  + I starostwo
+	0x00201b02, // n0x185b c0x0000 (---------------)  + I ug
+	0x00200f02, // n0x185c c0x0000 (---------------)  + I um
+	0x002269c4, // n0x185d c0x0000 (---------------)  + I upow
+	0x0023f482, // n0x185e c0x0000 (---------------)  + I uw
+	0x00200882, // n0x185f c0x0000 (---------------)  + I co
+	0x0021e083, // n0x1860 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1861 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x1862 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1863 c0x0000 (---------------)  + I org
+	0x00200b82, // n0x1864 c0x0000 (---------------)  + I ac
+	0x00202183, // n0x1865 c0x0000 (---------------)  + I biz
+	0x00232dc3, // n0x1866 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1867 c0x0000 (---------------)  + I edu
+	0x00209c03, // n0x1868 c0x0000 (---------------)  + I est
+	0x00209ac3, // n0x1869 c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x186a c0x0000 (---------------)  + I info
+	0x0029e0c4, // n0x186b c0x0000 (---------------)  + I isla
+	0x00267944, // n0x186c c0x0000 (---------------)  + I name
+	0x00218643, // n0x186d c0x0000 (---------------)  + I net
+	0x0024d043, // n0x186e c0x0000 (---------------)  + I org
+	0x002cfc43, // n0x186f c0x0000 (---------------)  + I pro
+	0x002d0d84, // n0x1870 c0x0000 (---------------)  + I prof
+	0x002bfb83, // n0x1871 c0x0000 (---------------)  + I aca
+	0x00210ac3, // n0x1872 c0x0000 (---------------)  + I bar
+	0x002256c3, // n0x1873 c0x0000 (---------------)  + I cpa
+	0x002abd43, // n0x1874 c0x0000 (---------------)  + I eng
+	0x002a3043, // n0x1875 c0x0000 (---------------)  + I jur
+	0x002000c3, // n0x1876 c0x0000 (---------------)  + I law
+	0x00210e83, // n0x1877 c0x0000 (---------------)  + I med
+	0x00232dc3, // n0x1878 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1879 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x187a c0x0000 (---------------)  + I gov
+	0x00218643, // n0x187b c0x0000 (---------------)  + I net
+	0x0024d043, // n0x187c c0x0000 (---------------)  + I org
+	0x002cba43, // n0x187d c0x0000 (---------------)  + I plo
+	0x002e6143, // n0x187e c0x0000 (---------------)  + I sec
+	0x0009e448, // n0x187f c0x0000 (---------------)  +   blogspot
+	0x00232dc3, // n0x1880 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1881 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1882 c0x0000 (---------------)  + I gov
+	0x002188c3, // n0x1883 c0x0000 (---------------)  + I int
+	0x00218643, // n0x1884 c0x0000 (---------------)  + I net
+	0x0023e704, // n0x1885 c0x0000 (---------------)  + I nome
+	0x0024d043, // n0x1886 c0x0000 (---------------)  + I org
+	0x002d7ec4, // n0x1887 c0x0000 (---------------)  + I publ
+	0x002aa845, // n0x1888 c0x0000 (---------------)  + I belau
+	0x00200882, // n0x1889 c0x0000 (---------------)  + I co
+	0x00205742, // n0x188a c0x0000 (---------------)  + I ed
+	0x00209ac2, // n0x188b c0x0000 (---------------)  + I go
+	0x00209e82, // n0x188c c0x0000 (---------------)  + I ne
+	0x00200d02, // n0x188d c0x0000 (---------------)  + I or
+	0x00232dc3, // n0x188e c0x0000 (---------------)  + I com
+	0x0023a884, // n0x188f c0x0000 (---------------)  + I coop
+	0x0021e083, // n0x1890 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1891 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x1892 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x1893 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1894 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x1895 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1896 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1897 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x1898 c0x0000 (---------------)  + I mil
+	0x00267944, // n0x1899 c0x0000 (---------------)  + I name
+	0x00218643, // n0x189a c0x0000 (---------------)  + I net
+	0x0024d043, // n0x189b c0x0000 (---------------)  + I org
+	0x00251983, // n0x189c c0x0000 (---------------)  + I sch
+	0x00278344, // n0x189d c0x0000 (---------------)  + I asso
+	0x0009e448, // n0x189e c0x0000 (---------------)  +   blogspot
+	0x00232dc3, // n0x189f c0x0000 (---------------)  + I com
+	0x002104c3, // n0x18a0 c0x0000 (---------------)  + I nom
+	0x0020b384, // n0x18a1 c0x0000 (---------------)  + I arts
+	0x0009e448, // n0x18a2 c0x0000 (---------------)  +   blogspot
+	0x00232dc3, // n0x18a3 c0x0000 (---------------)  + I com
+	0x0024a304, // n0x18a4 c0x0000 (---------------)  + I firm
+	0x00208a44, // n0x18a5 c0x0000 (---------------)  + I info
+	0x002104c3, // n0x18a6 c0x0000 (---------------)  + I nom
+	0x00200902, // n0x18a7 c0x0000 (---------------)  + I nt
+	0x0024d043, // n0x18a8 c0x0000 (---------------)  + I org
+	0x0022a143, // n0x18a9 c0x0000 (---------------)  + I rec
+	0x002dc745, // n0x18aa c0x0000 (---------------)  + I store
+	0x002032c2, // n0x18ab c0x0000 (---------------)  + I tm
+	0x002b1c03, // n0x18ac c0x0000 (---------------)  + I www
+	0x00200b82, // n0x18ad c0x0000 (---------------)  + I ac
+	0x00200882, // n0x18ae c0x0000 (---------------)  + I co
+	0x0021e083, // n0x18af c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x18b0 c0x0000 (---------------)  + I gov
+	0x00200242, // n0x18b1 c0x0000 (---------------)  + I in
+	0x0024d043, // n0x18b2 c0x0000 (---------------)  + I org
+	0x00200b82, // n0x18b3 c0x0000 (---------------)  + I ac
+	0x00202907, // n0x18b4 c0x0000 (---------------)  + I adygeya
+	0x0036d205, // n0x18b5 c0x0000 (---------------)  + I altai
+	0x002340c4, // n0x18b6 c0x0000 (---------------)  + I amur
+	0x00332486, // n0x18b7 c0x0000 (---------------)  + I amursk
+	0x002ff34b, // n0x18b8 c0x0000 (---------------)  + I arkhangelsk
+	0x00231d89, // n0x18b9 c0x0000 (---------------)  + I astrakhan
+	0x002a6a46, // n0x18ba c0x0000 (---------------)  + I baikal
+	0x00334709, // n0x18bb c0x0000 (---------------)  + I bashkiria
+	0x002c4cc8, // n0x18bc c0x0000 (---------------)  + I belgorod
+	0x00208c43, // n0x18bd c0x0000 (---------------)  + I bir
+	0x0009e448, // n0x18be c0x0000 (---------------)  +   blogspot
+	0x0022b087, // n0x18bf c0x0000 (---------------)  + I bryansk
+	0x002295c8, // n0x18c0 c0x0000 (---------------)  + I buryatia
+	0x0033ffc3, // n0x18c1 c0x0000 (---------------)  + I cbg
+	0x00313944, // n0x18c2 c0x0000 (---------------)  + I chel
+	0x0034c18b, // n0x18c3 c0x0000 (---------------)  + I chelyabinsk
+	0x00276ac5, // n0x18c4 c0x0000 (---------------)  + I chita
+	0x00205b48, // n0x18c5 c0x0000 (---------------)  + I chukotka
+	0x0031d989, // n0x18c6 c0x0000 (---------------)  + I chuvashia
+	0x002a4443, // n0x18c7 c0x0000 (---------------)  + I cmw
+	0x00232dc3, // n0x18c8 c0x0000 (---------------)  + I com
+	0x00344008, // n0x18c9 c0x0000 (---------------)  + I dagestan
+	0x00275b87, // n0x18ca c0x0000 (---------------)  + I dudinka
+	0x002db146, // n0x18cb c0x0000 (---------------)  + I e-burg
+	0x0021e083, // n0x18cc c0x0000 (---------------)  + I edu
+	0x002fa247, // n0x18cd c0x0000 (---------------)  + I fareast
+	0x00209ac3, // n0x18ce c0x0000 (---------------)  + I gov
+	0x00239d46, // n0x18cf c0x0000 (---------------)  + I grozny
+	0x002188c3, // n0x18d0 c0x0000 (---------------)  + I int
+	0x0022ec87, // n0x18d1 c0x0000 (---------------)  + I irkutsk
+	0x002fec47, // n0x18d2 c0x0000 (---------------)  + I ivanovo
+	0x0035ad47, // n0x18d3 c0x0000 (---------------)  + I izhevsk
+	0x0030e605, // n0x18d4 c0x0000 (---------------)  + I jamal
+	0x00203fc3, // n0x18d5 c0x0000 (---------------)  + I jar
+	0x002a888b, // n0x18d6 c0x0000 (---------------)  + I joshkar-ola
+	0x0036e648, // n0x18d7 c0x0000 (---------------)  + I k-uralsk
+	0x002246c8, // n0x18d8 c0x0000 (---------------)  + I kalmykia
+	0x0022f506, // n0x18d9 c0x0000 (---------------)  + I kaluga
+	0x0020f049, // n0x18da c0x0000 (---------------)  + I kamchatka
+	0x00343107, // n0x18db c0x0000 (---------------)  + I karelia
+	0x002f1805, // n0x18dc c0x0000 (---------------)  + I kazan
+	0x00351684, // n0x18dd c0x0000 (---------------)  + I kchr
+	0x00360a48, // n0x18de c0x0000 (---------------)  + I kemerovo
+	0x0023cb0a, // n0x18df c0x0000 (---------------)  + I khabarovsk
+	0x0023cd49, // n0x18e0 c0x0000 (---------------)  + I khakassia
+	0x00267283, // n0x18e1 c0x0000 (---------------)  + I khv
+	0x0022d7c5, // n0x18e2 c0x0000 (---------------)  + I kirov
+	0x00286643, // n0x18e3 c0x0000 (---------------)  + I kms
+	0x002d2bc6, // n0x18e4 c0x0000 (---------------)  + I koenig
+	0x002a1884, // n0x18e5 c0x0000 (---------------)  + I komi
+	0x002f4e48, // n0x18e6 c0x0000 (---------------)  + I kostroma
+	0x002a470b, // n0x18e7 c0x0000 (---------------)  + I krasnoyarsk
+	0x00327605, // n0x18e8 c0x0000 (---------------)  + I kuban
+	0x002aa5c6, // n0x18e9 c0x0000 (---------------)  + I kurgan
+	0x002ad2c5, // n0x18ea c0x0000 (---------------)  + I kursk
+	0x002ae788, // n0x18eb c0x0000 (---------------)  + I kustanai
+	0x002af4c7, // n0x18ec c0x0000 (---------------)  + I kuzbass
+	0x00369d07, // n0x18ed c0x0000 (---------------)  + I lipetsk
+	0x0030ab07, // n0x18ee c0x0000 (---------------)  + I magadan
+	0x00213608, // n0x18ef c0x0000 (---------------)  + I magnitka
+	0x0023d384, // n0x18f0 c0x0000 (---------------)  + I mari
+	0x0023d387, // n0x18f1 c0x0000 (---------------)  + I mari-el
+	0x0033f146, // n0x18f2 c0x0000 (---------------)  + I marine
+	0x00240443, // n0x18f3 c0x0000 (---------------)  + I mil
+	0x002b8708, // n0x18f4 c0x0000 (---------------)  + I mordovia
+	0x0024e983, // n0x18f5 c0x0000 (---------------)  + I msk
+	0x002c0b08, // n0x18f6 c0x0000 (---------------)  + I murmansk
+	0x002c4305, // n0x18f7 c0x0000 (---------------)  + I mytis
+	0x002cbfc8, // n0x18f8 c0x0000 (---------------)  + I nakhodka
+	0x0021e287, // n0x18f9 c0x0000 (---------------)  + I nalchik
+	0x00218643, // n0x18fa c0x0000 (---------------)  + I net
+	0x00371383, // n0x18fb c0x0000 (---------------)  + I nkz
+	0x00283004, // n0x18fc c0x0000 (---------------)  + I nnov
+	0x00200cc7, // n0x18fd c0x0000 (---------------)  + I norilsk
+	0x0020a143, // n0x18fe c0x0000 (---------------)  + I nov
+	0x002fed0b, // n0x18ff c0x0000 (---------------)  + I novosibirsk
+	0x0020ae83, // n0x1900 c0x0000 (---------------)  + I nsk
+	0x0024e944, // n0x1901 c0x0000 (---------------)  + I omsk
+	0x002dc7c8, // n0x1902 c0x0000 (---------------)  + I orenburg
+	0x0024d043, // n0x1903 c0x0000 (---------------)  + I org
+	0x002dba85, // n0x1904 c0x0000 (---------------)  + I oryol
+	0x002f5205, // n0x1905 c0x0000 (---------------)  + I oskol
+	0x00203346, // n0x1906 c0x0000 (---------------)  + I palana
+	0x00212f85, // n0x1907 c0x0000 (---------------)  + I penza
+	0x002c46c4, // n0x1908 c0x0000 (---------------)  + I perm
+	0x00200a82, // n0x1909 c0x0000 (---------------)  + I pp
+	0x002d3503, // n0x190a c0x0000 (---------------)  + I ptz
+	0x002b988a, // n0x190b c0x0000 (---------------)  + I pyatigorsk
+	0x0032e3c3, // n0x190c c0x0000 (---------------)  + I rnd
+	0x00360f89, // n0x190d c0x0000 (---------------)  + I rubtsovsk
+	0x002374c6, // n0x190e c0x0000 (---------------)  + I ryazan
+	0x00223048, // n0x190f c0x0000 (---------------)  + I sakhalin
+	0x00284d46, // n0x1910 c0x0000 (---------------)  + I samara
+	0x00246287, // n0x1911 c0x0000 (---------------)  + I saratov
+	0x00316648, // n0x1912 c0x0000 (---------------)  + I simbirsk
+	0x002b3e08, // n0x1913 c0x0000 (---------------)  + I smolensk
+	0x00339f83, // n0x1914 c0x0000 (---------------)  + I snz
+	0x002d9bc3, // n0x1915 c0x0000 (---------------)  + I spb
+	0x0023dbc9, // n0x1916 c0x0000 (---------------)  + I stavropol
+	0x002eb3c3, // n0x1917 c0x0000 (---------------)  + I stv
+	0x002d0506, // n0x1918 c0x0000 (---------------)  + I surgut
+	0x0037e7c6, // n0x1919 c0x0000 (---------------)  + I syzran
+	0x00366046, // n0x191a c0x0000 (---------------)  + I tambov
+	0x00210249, // n0x191b c0x0000 (---------------)  + I tatarstan
+	0x0029e284, // n0x191c c0x0000 (---------------)  + I test
+	0x0022bac3, // n0x191d c0x0000 (---------------)  + I tom
+	0x00337545, // n0x191e c0x0000 (---------------)  + I tomsk
+	0x00378609, // n0x191f c0x0000 (---------------)  + I tsaritsyn
+	0x0021d443, // n0x1920 c0x0000 (---------------)  + I tsk
+	0x002e3e84, // n0x1921 c0x0000 (---------------)  + I tula
+	0x002e5704, // n0x1922 c0x0000 (---------------)  + I tuva
+	0x002e5c44, // n0x1923 c0x0000 (---------------)  + I tver
+	0x002d2ec6, // n0x1924 c0x0000 (---------------)  + I tyumen
+	0x00365503, // n0x1925 c0x0000 (---------------)  + I udm
+	0x00365508, // n0x1926 c0x0000 (---------------)  + I udmurtia
+	0x00254408, // n0x1927 c0x0000 (---------------)  + I ulan-ude
+	0x002e6a86, // n0x1928 c0x0000 (---------------)  + I vdonsk
+	0x002f160b, // n0x1929 c0x0000 (---------------)  + I vladikavkaz
+	0x002f1948, // n0x192a c0x0000 (---------------)  + I vladimir
+	0x002f1b4b, // n0x192b c0x0000 (---------------)  + I vladivostok
+	0x002f22c9, // n0x192c c0x0000 (---------------)  + I volgograd
+	0x002f2b87, // n0x192d c0x0000 (---------------)  + I vologda
+	0x002f3908, // n0x192e c0x0000 (---------------)  + I voronezh
+	0x002f4843, // n0x192f c0x0000 (---------------)  + I vrn
+	0x00204a86, // n0x1930 c0x0000 (---------------)  + I vyatka
+	0x002e5547, // n0x1931 c0x0000 (---------------)  + I yakutia
+	0x0028db05, // n0x1932 c0x0000 (---------------)  + I yamal
+	0x00326a09, // n0x1933 c0x0000 (---------------)  + I yaroslavl
+	0x0036680d, // n0x1934 c0x0000 (---------------)  + I yekaterinburg
+	0x00222e91, // n0x1935 c0x0000 (---------------)  + I yuzhno-sakhalinsk
+	0x0023af45, // n0x1936 c0x0000 (---------------)  + I zgrad
+	0x00200b82, // n0x1937 c0x0000 (---------------)  + I ac
+	0x00200882, // n0x1938 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x1939 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x193a c0x0000 (---------------)  + I edu
+	0x00252544, // n0x193b c0x0000 (---------------)  + I gouv
+	0x00209ac3, // n0x193c c0x0000 (---------------)  + I gov
+	0x002188c3, // n0x193d c0x0000 (---------------)  + I int
+	0x00240443, // n0x193e c0x0000 (---------------)  + I mil
+	0x00218643, // n0x193f c0x0000 (---------------)  + I net
+	0x00232dc3, // n0x1940 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1941 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1942 c0x0000 (---------------)  + I gov
+	0x00210e83, // n0x1943 c0x0000 (---------------)  + I med
+	0x00218643, // n0x1944 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1945 c0x0000 (---------------)  + I org
+	0x0025dbc3, // n0x1946 c0x0000 (---------------)  + I pub
+	0x00251983, // n0x1947 c0x0000 (---------------)  + I sch
+	0x00232dc3, // n0x1948 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1949 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x194a c0x0000 (---------------)  + I gov
+	0x00218643, // n0x194b c0x0000 (---------------)  + I net
+	0x0024d043, // n0x194c c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x194d c0x0000 (---------------)  + I com
+	0x0021e083, // n0x194e c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x194f c0x0000 (---------------)  + I gov
+	0x00218643, // n0x1950 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1951 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x1952 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1953 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1954 c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x1955 c0x0000 (---------------)  + I info
+	0x00210e83, // n0x1956 c0x0000 (---------------)  + I med
+	0x00218643, // n0x1957 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1958 c0x0000 (---------------)  + I org
+	0x0028dc82, // n0x1959 c0x0000 (---------------)  + I tv
+	0x00200101, // n0x195a c0x0000 (---------------)  + I a
+	0x00200b82, // n0x195b c0x0000 (---------------)  + I ac
+	0x00200001, // n0x195c c0x0000 (---------------)  + I b
+	0x00303202, // n0x195d c0x0000 (---------------)  + I bd
+	0x0009e448, // n0x195e c0x0000 (---------------)  +   blogspot
+	0x0021e6c5, // n0x195f c0x0000 (---------------)  + I brand
+	0x00200401, // n0x1960 c0x0000 (---------------)  + I c
+	0x00032dc3, // n0x1961 c0x0000 (---------------)  +   com
+	0x002003c1, // n0x1962 c0x0000 (---------------)  + I d
+	0x00200081, // n0x1963 c0x0000 (---------------)  + I e
+	0x00203841, // n0x1964 c0x0000 (---------------)  + I f
+	0x00246f02, // n0x1965 c0x0000 (---------------)  + I fh
+	0x00379704, // n0x1966 c0x0000 (---------------)  + I fhsk
+	0x00246f03, // n0x1967 c0x0000 (---------------)  + I fhv
+	0x002002c1, // n0x1968 c0x0000 (---------------)  + I g
+	0x00200201, // n0x1969 c0x0000 (---------------)  + I h
+	0x00200041, // n0x196a c0x0000 (---------------)  + I i
+	0x00200481, // n0x196b c0x0000 (---------------)  + I k
+	0x0032cec7, // n0x196c c0x0000 (---------------)  + I komforb
+	0x002c114f, // n0x196d c0x0000 (---------------)  + I kommunalforbund
+	0x002b9ac6, // n0x196e c0x0000 (---------------)  + I komvux
+	0x002000c1, // n0x196f c0x0000 (---------------)  + I l
+	0x00381b06, // n0x1970 c0x0000 (---------------)  + I lanbib
+	0x00200f41, // n0x1971 c0x0000 (---------------)  + I m
+	0x00200281, // n0x1972 c0x0000 (---------------)  + I n
+	0x0031a18e, // n0x1973 c0x0000 (---------------)  + I naturbruksgymn
+	0x00200341, // n0x1974 c0x0000 (---------------)  + I o
+	0x0024d043, // n0x1975 c0x0000 (---------------)  + I org
+	0x00200a81, // n0x1976 c0x0000 (---------------)  + I p
+	0x00297f05, // n0x1977 c0x0000 (---------------)  + I parti
+	0x00200a82, // n0x1978 c0x0000 (---------------)  + I pp
+	0x0022ad45, // n0x1979 c0x0000 (---------------)  + I press
+	0x002006c1, // n0x197a c0x0000 (---------------)  + I r
+	0x002001c1, // n0x197b c0x0000 (---------------)  + I s
+	0x00200301, // n0x197c c0x0000 (---------------)  + I t
+	0x002032c2, // n0x197d c0x0000 (---------------)  + I tm
+	0x00200541, // n0x197e c0x0000 (---------------)  + I u
+	0x00200141, // n0x197f c0x0000 (---------------)  + I w
+	0x002013c1, // n0x1980 c0x0000 (---------------)  + I x
+	0x00202981, // n0x1981 c0x0000 (---------------)  + I y
+	0x00201241, // n0x1982 c0x0000 (---------------)  + I z
+	0x0009e448, // n0x1983 c0x0000 (---------------)  +   blogspot
+	0x00232dc3, // n0x1984 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1985 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1986 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x1987 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1988 c0x0000 (---------------)  + I org
+	0x0020c783, // n0x1989 c0x0000 (---------------)  + I per
+	0x00232dc3, // n0x198a c0x0000 (---------------)  + I com
+	0x00209ac3, // n0x198b c0x0000 (---------------)  + I gov
+	0x00240443, // n0x198c c0x0000 (---------------)  + I mil
+	0x00218643, // n0x198d c0x0000 (---------------)  + I net
+	0x0024d043, // n0x198e c0x0000 (---------------)  + I org
+	0x0009e448, // n0x198f c0x0000 (---------------)  +   blogspot
+	0x00232dc3, // n0x1990 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1991 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1992 c0x0000 (---------------)  + I gov
+	0x00218643, // n0x1993 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1994 c0x0000 (---------------)  + I org
+	0x00208d43, // n0x1995 c0x0000 (---------------)  + I art
+	0x00232dc3, // n0x1996 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1997 c0x0000 (---------------)  + I edu
+	0x00252544, // n0x1998 c0x0000 (---------------)  + I gouv
+	0x0024d043, // n0x1999 c0x0000 (---------------)  + I org
+	0x002a80c5, // n0x199a c0x0000 (---------------)  + I perso
+	0x003826c4, // n0x199b c0x0000 (---------------)  + I univ
+	0x00232dc3, // n0x199c c0x0000 (---------------)  + I com
+	0x00218643, // n0x199d c0x0000 (---------------)  + I net
+	0x0024d043, // n0x199e c0x0000 (---------------)  + I org
+	0x00200882, // n0x199f c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x19a0 c0x0000 (---------------)  + I com
+	0x00235e09, // n0x19a1 c0x0000 (---------------)  + I consulado
+	0x0021e083, // n0x19a2 c0x0000 (---------------)  + I edu
+	0x002aaf09, // n0x19a3 c0x0000 (---------------)  + I embaixada
+	0x00209ac3, // n0x19a4 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x19a5 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x19a6 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x19a7 c0x0000 (---------------)  + I org
+	0x002cf8c8, // n0x19a8 c0x0000 (---------------)  + I principe
+	0x00241fc7, // n0x19a9 c0x0000 (---------------)  + I saotome
+	0x002dc745, // n0x19aa c0x0000 (---------------)  + I store
+	0x00232dc3, // n0x19ab c0x0000 (---------------)  + I com
+	0x0021e083, // n0x19ac c0x0000 (---------------)  + I edu
+	0x003704c3, // n0x19ad c0x0000 (---------------)  + I gob
+	0x0024d043, // n0x19ae c0x0000 (---------------)  + I org
+	0x0023fbc3, // n0x19af c0x0000 (---------------)  + I red
+	0x00209ac3, // n0x19b0 c0x0000 (---------------)  + I gov
+	0x00232dc3, // n0x19b1 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x19b2 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x19b3 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x19b4 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x19b5 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x19b6 c0x0000 (---------------)  + I org
+	0x00200b82, // n0x19b7 c0x0000 (---------------)  + I ac
+	0x00200882, // n0x19b8 c0x0000 (---------------)  + I co
+	0x0024d043, // n0x19b9 c0x0000 (---------------)  + I org
+	0x0009e448, // n0x19ba c0x0000 (---------------)  +   blogspot
+	0x00200b82, // n0x19bb c0x0000 (---------------)  + I ac
+	0x00200882, // n0x19bc c0x0000 (---------------)  + I co
+	0x00209ac2, // n0x19bd c0x0000 (---------------)  + I go
+	0x00200242, // n0x19be c0x0000 (---------------)  + I in
+	0x00200f42, // n0x19bf c0x0000 (---------------)  + I mi
+	0x00218643, // n0x19c0 c0x0000 (---------------)  + I net
+	0x00200d02, // n0x19c1 c0x0000 (---------------)  + I or
+	0x00200b82, // n0x19c2 c0x0000 (---------------)  + I ac
+	0x00202183, // n0x19c3 c0x0000 (---------------)  + I biz
+	0x00200882, // n0x19c4 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x19c5 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x19c6 c0x0000 (---------------)  + I edu
+	0x00209ac2, // n0x19c7 c0x0000 (---------------)  + I go
+	0x00209ac3, // n0x19c8 c0x0000 (---------------)  + I gov
+	0x002188c3, // n0x19c9 c0x0000 (---------------)  + I int
+	0x00240443, // n0x19ca c0x0000 (---------------)  + I mil
+	0x00267944, // n0x19cb c0x0000 (---------------)  + I name
+	0x00218643, // n0x19cc c0x0000 (---------------)  + I net
+	0x00219583, // n0x19cd c0x0000 (---------------)  + I nic
+	0x0024d043, // n0x19ce c0x0000 (---------------)  + I org
+	0x0029e284, // n0x19cf c0x0000 (---------------)  + I test
+	0x002071c3, // n0x19d0 c0x0000 (---------------)  + I web
+	0x00209ac3, // n0x19d1 c0x0000 (---------------)  + I gov
+	0x00200882, // n0x19d2 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x19d3 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x19d4 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x19d5 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x19d6 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x19d7 c0x0000 (---------------)  + I net
+	0x002104c3, // n0x19d8 c0x0000 (---------------)  + I nom
+	0x0024d043, // n0x19d9 c0x0000 (---------------)  + I org
+	0x00371147, // n0x19da c0x0000 (---------------)  + I agrinet
+	0x00232dc3, // n0x19db c0x0000 (---------------)  + I com
+	0x00254587, // n0x19dc c0x0000 (---------------)  + I defense
+	0x0030cc46, // n0x19dd c0x0000 (---------------)  + I edunet
+	0x0020ae43, // n0x19de c0x0000 (---------------)  + I ens
+	0x00206f03, // n0x19df c0x0000 (---------------)  + I fin
+	0x00209ac3, // n0x19e0 c0x0000 (---------------)  + I gov
+	0x002202c3, // n0x19e1 c0x0000 (---------------)  + I ind
+	0x00208a44, // n0x19e2 c0x0000 (---------------)  + I info
+	0x002ea3c4, // n0x19e3 c0x0000 (---------------)  + I intl
+	0x002ca586, // n0x19e4 c0x0000 (---------------)  + I mincom
+	0x0020f603, // n0x19e5 c0x0000 (---------------)  + I nat
+	0x00218643, // n0x19e6 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x19e7 c0x0000 (---------------)  + I org
+	0x002a80c5, // n0x19e8 c0x0000 (---------------)  + I perso
+	0x0021cc84, // n0x19e9 c0x0000 (---------------)  + I rnrt
+	0x002273c3, // n0x19ea c0x0000 (---------------)  + I rns
+	0x0037bb83, // n0x19eb c0x0000 (---------------)  + I rnu
+	0x002b3cc7, // n0x19ec c0x0000 (---------------)  + I tourism
+	0x002ee1c5, // n0x19ed c0x0000 (---------------)  + I turen
+	0x00232dc3, // n0x19ee c0x0000 (---------------)  + I com
+	0x0021e083, // n0x19ef c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x19f0 c0x0000 (---------------)  + I gov
+	0x00240443, // n0x19f1 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x19f2 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x19f3 c0x0000 (---------------)  + I org
+	0x00201602, // n0x19f4 c0x0000 (---------------)  + I av
+	0x0020bfc3, // n0x19f5 c0x0000 (---------------)  + I bbs
+	0x002111c3, // n0x19f6 c0x0000 (---------------)  + I bel
+	0x00202183, // n0x19f7 c0x0000 (---------------)  + I biz
+	0x4aa32dc3, // n0x19f8 c0x012a (n0x1a09-n0x1a0a)  + I com
+	0x0020fc02, // n0x19f9 c0x0000 (---------------)  + I dr
+	0x0021e083, // n0x19fa c0x0000 (---------------)  + I edu
+	0x0020a0c3, // n0x19fb c0x0000 (---------------)  + I gen
+	0x00209ac3, // n0x19fc c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x19fd c0x0000 (---------------)  + I info
+	0x0036e803, // n0x19fe c0x0000 (---------------)  + I k12
+	0x00349b43, // n0x19ff c0x0000 (---------------)  + I kep
+	0x00240443, // n0x1a00 c0x0000 (---------------)  + I mil
+	0x00267944, // n0x1a01 c0x0000 (---------------)  + I name
+	0x4ae0a682, // n0x1a02 c0x012b (n0x1a0a-n0x1a0b)  + I nc
+	0x00218643, // n0x1a03 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1a04 c0x0000 (---------------)  + I org
+	0x002369c3, // n0x1a05 c0x0000 (---------------)  + I pol
+	0x00218943, // n0x1a06 c0x0000 (---------------)  + I tel
+	0x0028dc82, // n0x1a07 c0x0000 (---------------)  + I tv
+	0x002071c3, // n0x1a08 c0x0000 (---------------)  + I web
+	0x0009e448, // n0x1a09 c0x0000 (---------------)  +   blogspot
+	0x00209ac3, // n0x1a0a c0x0000 (---------------)  + I gov
+	0x00233784, // n0x1a0b c0x0000 (---------------)  + I aero
+	0x00202183, // n0x1a0c c0x0000 (---------------)  + I biz
+	0x00200882, // n0x1a0d c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x1a0e c0x0000 (---------------)  + I com
+	0x0023a884, // n0x1a0f c0x0000 (---------------)  + I coop
+	0x0021e083, // n0x1a10 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1a11 c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x1a12 c0x0000 (---------------)  + I info
+	0x002188c3, // n0x1a13 c0x0000 (---------------)  + I int
+	0x0027e604, // n0x1a14 c0x0000 (---------------)  + I jobs
+	0x00277f84, // n0x1a15 c0x0000 (---------------)  + I mobi
+	0x002c2a06, // n0x1a16 c0x0000 (---------------)  + I museum
+	0x00267944, // n0x1a17 c0x0000 (---------------)  + I name
+	0x00218643, // n0x1a18 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1a19 c0x0000 (---------------)  + I org
+	0x002cfc43, // n0x1a1a c0x0000 (---------------)  + I pro
+	0x00290186, // n0x1a1b c0x0000 (---------------)  + I travel
+	0x00050f4b, // n0x1a1c c0x0000 (---------------)  +   better-than
+	0x0000dc06, // n0x1a1d c0x0000 (---------------)  +   dyndns
+	0x0001618a, // n0x1a1e c0x0000 (---------------)  +   on-the-web
+	0x001540ca, // n0x1a1f c0x0000 (---------------)  +   worse-than
+	0x0009e448, // n0x1a20 c0x0000 (---------------)  +   blogspot
+	0x0034cac4, // n0x1a21 c0x0000 (---------------)  + I club
+	0x00232dc3, // n0x1a22 c0x0000 (---------------)  + I com
+	0x00202144, // n0x1a23 c0x0000 (---------------)  + I ebiz
+	0x0021e083, // n0x1a24 c0x0000 (---------------)  + I edu
+	0x0028cc84, // n0x1a25 c0x0000 (---------------)  + I game
+	0x00209ac3, // n0x1a26 c0x0000 (---------------)  + I gov
+	0x00309c83, // n0x1a27 c0x0000 (---------------)  + I idv
+	0x00240443, // n0x1a28 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x1a29 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1a2a c0x0000 (---------------)  + I org
+	0x00310e0b, // n0x1a2b c0x0000 (---------------)  + I xn--czrw28b
+	0x00372b4a, // n0x1a2c c0x0000 (---------------)  + I xn--uc0atv
+	0x003841cc, // n0x1a2d c0x0000 (---------------)  + I xn--zf0ao64a
+	0x00200b82, // n0x1a2e c0x0000 (---------------)  + I ac
+	0x00200882, // n0x1a2f c0x0000 (---------------)  + I co
+	0x00209ac2, // n0x1a30 c0x0000 (---------------)  + I go
+	0x0029d805, // n0x1a31 c0x0000 (---------------)  + I hotel
+	0x00208a44, // n0x1a32 c0x0000 (---------------)  + I info
+	0x00204342, // n0x1a33 c0x0000 (---------------)  + I me
+	0x00240443, // n0x1a34 c0x0000 (---------------)  + I mil
+	0x00277f84, // n0x1a35 c0x0000 (---------------)  + I mobi
+	0x00209e82, // n0x1a36 c0x0000 (---------------)  + I ne
+	0x00200d02, // n0x1a37 c0x0000 (---------------)  + I or
+	0x0021bcc2, // n0x1a38 c0x0000 (---------------)  + I sc
+	0x0028dc82, // n0x1a39 c0x0000 (---------------)  + I tv
+	0x002a3649, // n0x1a3a c0x0000 (---------------)  + I cherkassy
+	0x0037e648, // n0x1a3b c0x0000 (---------------)  + I cherkasy
+	0x0025ec89, // n0x1a3c c0x0000 (---------------)  + I chernigov
+	0x002626c9, // n0x1a3d c0x0000 (---------------)  + I chernihiv
+	0x002634ca, // n0x1a3e c0x0000 (---------------)  + I chernivtsi
+	0x002669ca, // n0x1a3f c0x0000 (---------------)  + I chernovtsy
+	0x00206182, // n0x1a40 c0x0000 (---------------)  + I ck
+	0x0022fe42, // n0x1a41 c0x0000 (---------------)  + I cn
+	0x00200882, // n0x1a42 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x1a43 c0x0000 (---------------)  + I com
+	0x0020b542, // n0x1a44 c0x0000 (---------------)  + I cr
+	0x002411c6, // n0x1a45 c0x0000 (---------------)  + I crimea
+	0x00333d82, // n0x1a46 c0x0000 (---------------)  + I cv
+	0x0020dcc2, // n0x1a47 c0x0000 (---------------)  + I dn
+	0x002da50e, // n0x1a48 c0x0000 (---------------)  + I dnepropetrovsk
+	0x002f9d4e, // n0x1a49 c0x0000 (---------------)  + I dnipropetrovsk
+	0x00276947, // n0x1a4a c0x0000 (---------------)  + I dominic
+	0x0021d347, // n0x1a4b c0x0000 (---------------)  + I donetsk
+	0x00218802, // n0x1a4c c0x0000 (---------------)  + I dp
+	0x0021e083, // n0x1a4d c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1a4e c0x0000 (---------------)  + I gov
+	0x00203802, // n0x1a4f c0x0000 (---------------)  + I if
+	0x00200242, // n0x1a50 c0x0000 (---------------)  + I in
+	0x0024bd8f, // n0x1a51 c0x0000 (---------------)  + I ivano-frankivsk
+	0x002230c2, // n0x1a52 c0x0000 (---------------)  + I kh
+	0x0023d887, // n0x1a53 c0x0000 (---------------)  + I kharkiv
+	0x00240607, // n0x1a54 c0x0000 (---------------)  + I kharkov
+	0x00247987, // n0x1a55 c0x0000 (---------------)  + I kherson
+	0x0024c10c, // n0x1a56 c0x0000 (---------------)  + I khmelnitskiy
+	0x00254f8c, // n0x1a57 c0x0000 (---------------)  + I khmelnytskyi
+	0x0029ae84, // n0x1a58 c0x0000 (---------------)  + I kiev
+	0x0022d7ca, // n0x1a59 c0x0000 (---------------)  + I kirovograd
+	0x00286642, // n0x1a5a c0x0000 (---------------)  + I km
+	0x0020c642, // n0x1a5b c0x0000 (---------------)  + I kr
+	0x002a5dc4, // n0x1a5c c0x0000 (---------------)  + I krym
+	0x0021f9c2, // n0x1a5d c0x0000 (---------------)  + I ks
+	0x002b0202, // n0x1a5e c0x0000 (---------------)  + I kv
+	0x002551c4, // n0x1a5f c0x0000 (---------------)  + I kyiv
+	0x00219682, // n0x1a60 c0x0000 (---------------)  + I lg
+	0x0021a082, // n0x1a61 c0x0000 (---------------)  + I lt
+	0x0022f587, // n0x1a62 c0x0000 (---------------)  + I lugansk
+	0x00240505, // n0x1a63 c0x0000 (---------------)  + I lutsk
+	0x00218582, // n0x1a64 c0x0000 (---------------)  + I lv
+	0x0024bd04, // n0x1a65 c0x0000 (---------------)  + I lviv
+	0x00340582, // n0x1a66 c0x0000 (---------------)  + I mk
+	0x002feac8, // n0x1a67 c0x0000 (---------------)  + I mykolaiv
+	0x00218643, // n0x1a68 c0x0000 (---------------)  + I net
+	0x0020d188, // n0x1a69 c0x0000 (---------------)  + I nikolaev
+	0x00202bc2, // n0x1a6a c0x0000 (---------------)  + I od
+	0x00238e85, // n0x1a6b c0x0000 (---------------)  + I odesa
+	0x0034a206, // n0x1a6c c0x0000 (---------------)  + I odessa
+	0x0024d043, // n0x1a6d c0x0000 (---------------)  + I org
+	0x0020a402, // n0x1a6e c0x0000 (---------------)  + I pl
+	0x002cd547, // n0x1a6f c0x0000 (---------------)  + I poltava
+	0x00200a82, // n0x1a70 c0x0000 (---------------)  + I pp
+	0x002cfb05, // n0x1a71 c0x0000 (---------------)  + I rivne
+	0x00210885, // n0x1a72 c0x0000 (---------------)  + I rovno
+	0x0020bf02, // n0x1a73 c0x0000 (---------------)  + I rv
+	0x00214502, // n0x1a74 c0x0000 (---------------)  + I sb
+	0x002ec84a, // n0x1a75 c0x0000 (---------------)  + I sebastopol
+	0x002970ca, // n0x1a76 c0x0000 (---------------)  + I sevastopol
+	0x0024f102, // n0x1a77 c0x0000 (---------------)  + I sm
+	0x002f3284, // n0x1a78 c0x0000 (---------------)  + I sumy
+	0x00207302, // n0x1a79 c0x0000 (---------------)  + I te
+	0x0036d7c8, // n0x1a7a c0x0000 (---------------)  + I ternopil
+	0x0021eac2, // n0x1a7b c0x0000 (---------------)  + I uz
+	0x00353048, // n0x1a7c c0x0000 (---------------)  + I uzhgorod
+	0x002eed87, // n0x1a7d c0x0000 (---------------)  + I vinnica
+	0x002ef949, // n0x1a7e c0x0000 (---------------)  + I vinnytsia
+	0x0020d142, // n0x1a7f c0x0000 (---------------)  + I vn
+	0x002f36c5, // n0x1a80 c0x0000 (---------------)  + I volyn
+	0x0036d1c5, // n0x1a81 c0x0000 (---------------)  + I yalta
+	0x002cbb4b, // n0x1a82 c0x0000 (---------------)  + I zaporizhzhe
+	0x002b738c, // n0x1a83 c0x0000 (---------------)  + I zaporizhzhia
+	0x0022eb08, // n0x1a84 c0x0000 (---------------)  + I zhitomir
+	0x002f3a88, // n0x1a85 c0x0000 (---------------)  + I zhytomyr
+	0x00279542, // n0x1a86 c0x0000 (---------------)  + I zp
+	0x0021cf42, // n0x1a87 c0x0000 (---------------)  + I zt
+	0x00200b82, // n0x1a88 c0x0000 (---------------)  + I ac
+	0x00200882, // n0x1a89 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x1a8a c0x0000 (---------------)  + I com
+	0x00209ac2, // n0x1a8b c0x0000 (---------------)  + I go
+	0x00209e82, // n0x1a8c c0x0000 (---------------)  + I ne
+	0x00200d02, // n0x1a8d c0x0000 (---------------)  + I or
+	0x0024d043, // n0x1a8e c0x0000 (---------------)  + I org
+	0x0021bcc2, // n0x1a8f c0x0000 (---------------)  + I sc
+	0x00200b82, // n0x1a90 c0x0000 (---------------)  + I ac
+	0x4ce00882, // n0x1a91 c0x0133 (n0x1a9b-n0x1a9c)  + I co
+	0x4d209ac3, // n0x1a92 c0x0134 (n0x1a9c-n0x1a9d)  + I gov
+	0x00220e43, // n0x1a93 c0x0000 (---------------)  + I ltd
+	0x00204342, // n0x1a94 c0x0000 (---------------)  + I me
+	0x00218643, // n0x1a95 c0x0000 (---------------)  + I net
+	0x002096c3, // n0x1a96 c0x0000 (---------------)  + I nhs
+	0x0024d043, // n0x1a97 c0x0000 (---------------)  + I org
+	0x002cb543, // n0x1a98 c0x0000 (---------------)  + I plc
+	0x0023dd46, // n0x1a99 c0x0000 (---------------)  + I police
+	0x01651983, // n0x1a9a c0x0005 (---------------)* o I sch
+	0x0009e448, // n0x1a9b c0x0000 (---------------)  +   blogspot
+	0x00090b07, // n0x1a9c c0x0000 (---------------)  +   service
+	0x4da019c2, // n0x1a9d c0x0136 (n0x1adc-n0x1adf)  + I ak
+	0x4de00b02, // n0x1a9e c0x0137 (n0x1adf-n0x1ae2)  + I al
+	0x4e2030c2, // n0x1a9f c0x0138 (n0x1ae2-n0x1ae5)  + I ar
+	0x4e600182, // n0x1aa0 c0x0139 (n0x1ae5-n0x1ae8)  + I as
+	0x4ea01202, // n0x1aa1 c0x013a (n0x1ae8-n0x1aeb)  + I az
+	0x4ee14582, // n0x1aa2 c0x013b (n0x1aeb-n0x1aee)  + I ca
+	0x4f200882, // n0x1aa3 c0x013c (n0x1aee-n0x1af1)  + I co
+	0x4f62a082, // n0x1aa4 c0x013d (n0x1af1-n0x1af4)  + I ct
+	0x4fa003c2, // n0x1aa5 c0x013e (n0x1af4-n0x1af7)  + I dc
+	0x4fe07cc2, // n0x1aa6 c0x013f (n0x1af7-n0x1afa)  + I de
+	0x002e2103, // n0x1aa7 c0x0000 (---------------)  + I dni
+	0x0023ee83, // n0x1aa8 c0x0000 (---------------)  + I fed
+	0x5024c602, // n0x1aa9 c0x0140 (n0x1afa-n0x1afd)  + I fl
+	0x50600fc2, // n0x1aaa c0x0141 (n0x1afd-n0x1b00)  + I ga
+	0x50a02642, // n0x1aab c0x0142 (n0x1b00-n0x1b03)  + I gu
+	0x50e00202, // n0x1aac c0x0143 (n0x1b03-n0x1b05)  + I hi
+	0x51208bc2, // n0x1aad c0x0144 (n0x1b05-n0x1b08)  + I ia
+	0x51605942, // n0x1aae c0x0145 (n0x1b08-n0x1b0b)  + I id
+	0x51a00d82, // n0x1aaf c0x0146 (n0x1b0b-n0x1b0e)  + I il
+	0x51e00242, // n0x1ab0 c0x0147 (n0x1b0e-n0x1b11)  + I in
+	0x000d0905, // n0x1ab1 c0x0000 (---------------)  +   is-by
+	0x00213e43, // n0x1ab2 c0x0000 (---------------)  + I isa
+	0x0025c784, // n0x1ab3 c0x0000 (---------------)  + I kids
+	0x5221f9c2, // n0x1ab4 c0x0148 (n0x1b11-n0x1b14)  + I ks
+	0x52611002, // n0x1ab5 c0x0149 (n0x1b14-n0x1b17)  + I ky
+	0x52a000c2, // n0x1ab6 c0x014a (n0x1b17-n0x1b1a)  + I la
+	0x0007e10b, // n0x1ab7 c0x0000 (---------------)  +   land-4-sale
+	0x52e011c2, // n0x1ab8 c0x014b (n0x1b1a-n0x1b1d)  + I ma
+	0x5364a3c2, // n0x1ab9 c0x014d (n0x1b20-n0x1b23)  + I md
+	0x53a04342, // n0x1aba c0x014e (n0x1b23-n0x1b26)  + I me
+	0x53e00f42, // n0x1abb c0x014f (n0x1b26-n0x1b29)  + I mi
+	0x5422c7c2, // n0x1abc c0x0150 (n0x1b29-n0x1b2c)  + I mn
+	0x54605202, // n0x1abd c0x0151 (n0x1b2c-n0x1b2f)  + I mo
+	0x54a0e602, // n0x1abe c0x0152 (n0x1b2f-n0x1b32)  + I ms
+	0x54e66782, // n0x1abf c0x0153 (n0x1b32-n0x1b35)  + I mt
+	0x5520a682, // n0x1ac0 c0x0154 (n0x1b35-n0x1b38)  + I nc
+	0x55600382, // n0x1ac1 c0x0155 (n0x1b38-n0x1b3a)  + I nd
+	0x55a09e82, // n0x1ac2 c0x0156 (n0x1b3a-n0x1b3d)  + I ne
+	0x55e096c2, // n0x1ac3 c0x0157 (n0x1b3d-n0x1b40)  + I nh
+	0x56202dc2, // n0x1ac4 c0x0158 (n0x1b40-n0x1b43)  + I nj
+	0x56626d42, // n0x1ac5 c0x0159 (n0x1b43-n0x1b46)  + I nm
+	0x0036ef43, // n0x1ac6 c0x0000 (---------------)  + I nsn
+	0x56a15642, // n0x1ac7 c0x015a (n0x1b46-n0x1b49)  + I nv
+	0x56e1af42, // n0x1ac8 c0x015b (n0x1b49-n0x1b4c)  + I ny
+	0x57203dc2, // n0x1ac9 c0x015c (n0x1b4c-n0x1b4f)  + I oh
+	0x5760d582, // n0x1aca c0x015d (n0x1b4f-n0x1b52)  + I ok
+	0x57a00d02, // n0x1acb c0x015e (n0x1b52-n0x1b55)  + I or
+	0x57e00ac2, // n0x1acc c0x015f (n0x1b55-n0x1b58)  + I pa
+	0x5822ad42, // n0x1acd c0x0160 (n0x1b58-n0x1b5b)  + I pr
+	0x58600d42, // n0x1ace c0x0161 (n0x1b5b-n0x1b5e)  + I ri
+	0x58a1bcc2, // n0x1acf c0x0162 (n0x1b5e-n0x1b61)  + I sc
+	0x58e0acc2, // n0x1ad0 c0x0163 (n0x1b61-n0x1b63)  + I sd
+	0x000dd7cc, // n0x1ad1 c0x0000 (---------------)  +   stuff-4-sale
+	0x59201942, // n0x1ad2 c0x0164 (n0x1b63-n0x1b66)  + I tn
+	0x59655c42, // n0x1ad3 c0x0165 (n0x1b66-n0x1b69)  + I tx
+	0x59a02fc2, // n0x1ad4 c0x0166 (n0x1b69-n0x1b6c)  + I ut
+	0x59e03242, // n0x1ad5 c0x0167 (n0x1b6c-n0x1b6f)  + I va
+	0x5a201642, // n0x1ad6 c0x0168 (n0x1b6f-n0x1b72)  + I vi
+	0x5a6170c2, // n0x1ad7 c0x0169 (n0x1b72-n0x1b75)  + I vt
+	0x5aa00142, // n0x1ad8 c0x016a (n0x1b75-n0x1b78)  + I wa
+	0x5ae07a82, // n0x1ad9 c0x016b (n0x1b78-n0x1b7b)  + I wi
+	0x5b26e042, // n0x1ada c0x016c (n0x1b7b-n0x1b7c)  + I wv
+	0x5b61f8c2, // n0x1adb c0x016d (n0x1b7c-n0x1b7f)  + I wy
+	0x002020c2, // n0x1adc c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1add c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1ade c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1adf c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1ae0 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1ae1 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1ae2 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1ae3 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1ae4 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1ae5 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1ae6 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1ae7 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1ae8 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1ae9 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1aea c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1aeb c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1aec c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1aed c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1aee c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1aef c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1af0 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1af1 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1af2 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1af3 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1af4 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1af5 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1af6 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1af7 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1af8 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1af9 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1afa c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1afb c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1afc c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1afd c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1afe c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1aff c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b00 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b01 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b02 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b03 c0x0000 (---------------)  + I cc
+	0x0027a703, // n0x1b04 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b05 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b06 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b07 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b08 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b09 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b0a c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b0b c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b0c c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b0d c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b0e c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b0f c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b10 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b11 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b12 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b13 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b14 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b15 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b16 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b17 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b18 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b19 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b1a c0x0000 (---------------)  + I cc
+	0x5336e803, // n0x1b1b c0x014c (n0x1b1d-n0x1b20)  + I k12
+	0x0027a703, // n0x1b1c c0x0000 (---------------)  + I lib
+	0x002f5bc4, // n0x1b1d c0x0000 (---------------)  + I chtr
+	0x0037e546, // n0x1b1e c0x0000 (---------------)  + I paroch
+	0x002d35c3, // n0x1b1f c0x0000 (---------------)  + I pvt
+	0x002020c2, // n0x1b20 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b21 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b22 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b23 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b24 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b25 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b26 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b27 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b28 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b29 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b2a c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b2b c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b2c c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b2d c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b2e c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b2f c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b30 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b31 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b32 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b33 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b34 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b35 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b36 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b37 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b38 c0x0000 (---------------)  + I cc
+	0x0027a703, // n0x1b39 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b3a c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b3b c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b3c c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b3d c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b3e c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b3f c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b40 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b41 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b42 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b43 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b44 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b45 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b46 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b47 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b48 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b49 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b4a c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b4b c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b4c c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b4d c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b4e c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b4f c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b50 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b51 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b52 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b53 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b54 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b55 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b56 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b57 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b58 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b59 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b5a c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b5b c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b5c c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b5d c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b5e c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b5f c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b60 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b61 c0x0000 (---------------)  + I cc
+	0x0027a703, // n0x1b62 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b63 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b64 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b65 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b66 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b67 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b68 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b69 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b6a c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b6b c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b6c c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b6d c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b6e c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b6f c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b70 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b71 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b72 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b73 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b74 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b75 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b76 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b77 c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b78 c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b79 c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b7a c0x0000 (---------------)  + I lib
+	0x002020c2, // n0x1b7b c0x0000 (---------------)  + I cc
+	0x002020c2, // n0x1b7c c0x0000 (---------------)  + I cc
+	0x0036e803, // n0x1b7d c0x0000 (---------------)  + I k12
+	0x0027a703, // n0x1b7e c0x0000 (---------------)  + I lib
+	0x00232dc3, // n0x1b7f c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1b80 c0x0000 (---------------)  + I edu
+	0x00345fc3, // n0x1b81 c0x0000 (---------------)  + I gub
+	0x00240443, // n0x1b82 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x1b83 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1b84 c0x0000 (---------------)  + I org
+	0x00200882, // n0x1b85 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x1b86 c0x0000 (---------------)  + I com
+	0x00218643, // n0x1b87 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1b88 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x1b89 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1b8a c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1b8b c0x0000 (---------------)  + I gov
+	0x00240443, // n0x1b8c c0x0000 (---------------)  + I mil
+	0x00218643, // n0x1b8d c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1b8e c0x0000 (---------------)  + I org
+	0x0020b384, // n0x1b8f c0x0000 (---------------)  + I arts
+	0x00200882, // n0x1b90 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x1b91 c0x0000 (---------------)  + I com
+	0x002db583, // n0x1b92 c0x0000 (---------------)  + I e12
+	0x0021e083, // n0x1b93 c0x0000 (---------------)  + I edu
+	0x0024a304, // n0x1b94 c0x0000 (---------------)  + I firm
+	0x003704c3, // n0x1b95 c0x0000 (---------------)  + I gob
+	0x00209ac3, // n0x1b96 c0x0000 (---------------)  + I gov
+	0x00208a44, // n0x1b97 c0x0000 (---------------)  + I info
+	0x002188c3, // n0x1b98 c0x0000 (---------------)  + I int
+	0x00240443, // n0x1b99 c0x0000 (---------------)  + I mil
+	0x00218643, // n0x1b9a c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1b9b c0x0000 (---------------)  + I org
+	0x0022a143, // n0x1b9c c0x0000 (---------------)  + I rec
+	0x002dc745, // n0x1b9d c0x0000 (---------------)  + I store
+	0x0022a003, // n0x1b9e c0x0000 (---------------)  + I tec
+	0x002071c3, // n0x1b9f c0x0000 (---------------)  + I web
+	0x00200882, // n0x1ba0 c0x0000 (---------------)  + I co
+	0x00232dc3, // n0x1ba1 c0x0000 (---------------)  + I com
+	0x0036e803, // n0x1ba2 c0x0000 (---------------)  + I k12
+	0x00218643, // n0x1ba3 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1ba4 c0x0000 (---------------)  + I org
+	0x00200b82, // n0x1ba5 c0x0000 (---------------)  + I ac
+	0x00202183, // n0x1ba6 c0x0000 (---------------)  + I biz
+	0x00232dc3, // n0x1ba7 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1ba8 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1ba9 c0x0000 (---------------)  + I gov
+	0x00241cc6, // n0x1baa c0x0000 (---------------)  + I health
+	0x00208a44, // n0x1bab c0x0000 (---------------)  + I info
+	0x002188c3, // n0x1bac c0x0000 (---------------)  + I int
+	0x00267944, // n0x1bad c0x0000 (---------------)  + I name
+	0x00218643, // n0x1bae c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1baf c0x0000 (---------------)  + I org
+	0x002cfc43, // n0x1bb0 c0x0000 (---------------)  + I pro
+	0x00232dc3, // n0x1bb1 c0x0000 (---------------)  + I com
+	0x0021e083, // n0x1bb2 c0x0000 (---------------)  + I edu
+	0x00218643, // n0x1bb3 c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1bb4 c0x0000 (---------------)  + I org
+	0x00232dc3, // n0x1bb5 c0x0000 (---------------)  + I com
+	0x0000dc06, // n0x1bb6 c0x0000 (---------------)  +   dyndns
+	0x0021e083, // n0x1bb7 c0x0000 (---------------)  + I edu
+	0x00209ac3, // n0x1bb8 c0x0000 (---------------)  + I gov
+	0x000f3306, // n0x1bb9 c0x0000 (---------------)  +   mypets
+	0x00218643, // n0x1bba c0x0000 (---------------)  + I net
+	0x0024d043, // n0x1bbb c0x0000 (---------------)  + I org
+	0x002fd588, // n0x1bbc c0x0000 (---------------)  + I xn--80au
+	0x002ffbc9, // n0x1bbd c0x0000 (---------------)  + I xn--90azh
+	0x0030d409, // n0x1bbe c0x0000 (---------------)  + I xn--c1avg
+	0x00313188, // n0x1bbf c0x0000 (---------------)  + I xn--d1at
+	0x0034bfc8, // n0x1bc0 c0x0000 (---------------)  + I xn--o1ac
+	0x0034bfc9, // n0x1bc1 c0x0000 (---------------)  + I xn--o1ach
 }
 
 // children is the list of nodes' children, the parent's wildcard bit and the
@@ -7274,378 +7560,379 @@
 	0x40000000, // c0x0003 (---------------)* +
 	0x50000000, // c0x0004 (---------------)* !
 	0x60000000, // c0x0005 (---------------)* o
-	0x00ce4333, // c0x0006 (n0x0333-n0x0339)  +
-	0x00ce8339, // c0x0007 (n0x0339-n0x033a)  +
-	0x00d0433a, // c0x0008 (n0x033a-n0x0341)  +
-	0x00e68341, // c0x0009 (n0x0341-n0x039a)  +
-	0x00e7c39a, // c0x000a (n0x039a-n0x039f)  +
-	0x00e9039f, // c0x000b (n0x039f-n0x03a4)  +
-	0x00ea03a4, // c0x000c (n0x03a4-n0x03a8)  +
-	0x00eb83a8, // c0x000d (n0x03a8-n0x03ae)  +
-	0x00ec83ae, // c0x000e (n0x03ae-n0x03b2)  +
-	0x00ee03b2, // c0x000f (n0x03b2-n0x03b8)  +
-	0x00f043b8, // c0x0010 (n0x03b8-n0x03c1)  +
-	0x00f083c1, // c0x0011 (n0x03c1-n0x03c2)  +
-	0x00f203c2, // c0x0012 (n0x03c2-n0x03c8)  +
-	0x00f243c8, // c0x0013 (n0x03c8-n0x03c9)  +
-	0x00f403c9, // c0x0014 (n0x03c9-n0x03d0)  +
-	0x00f443d0, // c0x0015 (n0x03d0-n0x03d1)  +
-	0x00f8c3d1, // c0x0016 (n0x03d1-n0x03e3)  +
-	0x00f903e3, // c0x0017 (n0x03e3-n0x03e4)  +
-	0x00fb03e4, // c0x0018 (n0x03e4-n0x03ec)  +
-	0x00fc43ec, // c0x0019 (n0x03ec-n0x03f1)  +
-	0x00fc83f1, // c0x001a (n0x03f1-n0x03f2)  +
-	0x00ff83f2, // c0x001b (n0x03f2-n0x03fe)  +
-	0x010203fe, // c0x001c (n0x03fe-n0x0408)  +
-	0x01048408, // c0x001d (n0x0408-n0x0412)  +
-	0x01050412, // c0x001e (n0x0412-n0x0414)  +
-	0x01054414, // c0x001f (n0x0414-n0x0415)  +
-	0x010e4415, // c0x0020 (n0x0415-n0x0439)  +
-	0x010f8439, // c0x0021 (n0x0439-n0x043e)  +
-	0x0110c43e, // c0x0022 (n0x043e-n0x0443)  +
-	0x01128443, // c0x0023 (n0x0443-n0x044a)  +
-	0x0113844a, // c0x0024 (n0x044a-n0x044e)  +
-	0x0114c44e, // c0x0025 (n0x044e-n0x0453)  +
-	0x01170453, // c0x0026 (n0x0453-n0x045c)  +
-	0x0128845c, // c0x0027 (n0x045c-n0x04a2)  +
-	0x0128c4a2, // c0x0028 (n0x04a2-n0x04a3)  +
-	0x012a04a3, // c0x0029 (n0x04a3-n0x04a8)  +
-	0x012b44a8, // c0x002a (n0x04a8-n0x04ad)  +
-	0x012bc4ad, // c0x002b (n0x04ad-n0x04af)  +
-	0x012cc4af, // c0x002c (n0x04af-n0x04b3)  +
-	0x012e44b3, // c0x002d (n0x04b3-n0x04b9)  +
-	0x013284b9, // c0x002e (n0x04b9-n0x04ca)  +
-	0x013384ca, // c0x002f (n0x04ca-n0x04ce)  +
-	0x0133c4ce, // c0x0030 (n0x04ce-n0x04cf)  +
-	0x013404cf, // c0x0031 (n0x04cf-n0x04d0)  +
-	0x013444d0, // c0x0032 (n0x04d0-n0x04d1)  +
-	0x013804d1, // c0x0033 (n0x04d1-n0x04e0)  +
-	0x613844e0, // c0x0034 (n0x04e0-n0x04e1)* o
-	0x013944e1, // c0x0035 (n0x04e1-n0x04e5)  +
-	0x013a44e5, // c0x0036 (n0x04e5-n0x04e9)  +
-	0x014584e9, // c0x0037 (n0x04e9-n0x0516)  +
-	0x2145c516, // c0x0038 (n0x0516-n0x0517)  o
-	0x01460517, // c0x0039 (n0x0517-n0x0518)  +
-	0x01494518, // c0x003a (n0x0518-n0x0525)  +
-	0x017a0525, // c0x003b (n0x0525-n0x05e8)  +
-	0x217fc5e8, // c0x003c (n0x05e8-n0x05ff)  o
-	0x0181c5ff, // c0x003d (n0x05ff-n0x0607)  +
-	0x01824607, // c0x003e (n0x0607-n0x0609)  +
-	0x01840609, // c0x003f (n0x0609-n0x0610)  +
-	0x01858610, // c0x0040 (n0x0610-n0x0616)  +
-	0x0185c616, // c0x0041 (n0x0616-n0x0617)  +
-	0x0186c617, // c0x0042 (n0x0617-n0x061b)  +
-	0x0187461b, // c0x0043 (n0x061b-n0x061d)  +
-	0x0187861d, // c0x0044 (n0x061d-n0x061e)  +
-	0x0189861e, // c0x0045 (n0x061e-n0x0626)  +
-	0x0189c626, // c0x0046 (n0x0626-n0x0627)  +
-	0x018b0627, // c0x0047 (n0x0627-n0x062c)  +
-	0x018d862c, // c0x0048 (n0x062c-n0x0636)  +
-	0x018f8636, // c0x0049 (n0x0636-n0x063e)  +
-	0x0192863e, // c0x004a (n0x063e-n0x064a)  +
-	0x0195064a, // c0x004b (n0x064a-n0x0654)  +
-	0x01974654, // c0x004c (n0x0654-n0x065d)  +
-	0x0198865d, // c0x004d (n0x065d-n0x0662)  +
-	0x0198c662, // c0x004e (n0x0662-n0x0663)  +
-	0x019a8663, // c0x004f (n0x0663-n0x066a)  +
-	0x019b466a, // c0x0050 (n0x066a-n0x066d)  +
-	0x01a1466d, // c0x0051 (n0x066d-n0x0685)  +
-	0x01a30685, // c0x0052 (n0x0685-n0x068c)  +
-	0x01a3c68c, // c0x0053 (n0x068c-n0x068f)  +
-	0x01a5068f, // c0x0054 (n0x068f-n0x0694)  +
-	0x01a68694, // c0x0055 (n0x0694-n0x069a)  +
-	0x01a8069a, // c0x0056 (n0x069a-n0x06a0)  +
-	0x01a986a0, // c0x0057 (n0x06a0-n0x06a6)  +
-	0x01ab06a6, // c0x0058 (n0x06a6-n0x06ac)  +
-	0x01acc6ac, // c0x0059 (n0x06ac-n0x06b3)  +
-	0x01ad86b3, // c0x005a (n0x06b3-n0x06b6)  +
-	0x01b306b6, // c0x005b (n0x06b6-n0x06cc)  +
-	0x01b486cc, // c0x005c (n0x06cc-n0x06d2)  +
-	0x01b586d2, // c0x005d (n0x06d2-n0x06d6)  +
-	0x01b9c6d6, // c0x005e (n0x06d6-n0x06e7)  +
-	0x01c1c6e7, // c0x005f (n0x06e7-n0x0707)  +
-	0x01c48707, // c0x0060 (n0x0707-n0x0712)  +
-	0x01c50712, // c0x0061 (n0x0712-n0x0714)  +
-	0x61c54714, // c0x0062 (n0x0714-n0x0715)* o
-	0x21c58715, // c0x0063 (n0x0715-n0x0716)  o
-	0x01c74716, // c0x0064 (n0x0716-n0x071d)  +
-	0x01c7c71d, // c0x0065 (n0x071d-n0x071f)  +
-	0x01cb071f, // c0x0066 (n0x071f-n0x072c)  +
-	0x01cd872c, // c0x0067 (n0x072c-n0x0736)  +
-	0x01cdc736, // c0x0068 (n0x0736-n0x0737)  +
-	0x01ce8737, // c0x0069 (n0x0737-n0x073a)  +
-	0x01d0073a, // c0x006a (n0x073a-n0x0740)  +
-	0x01d24740, // c0x006b (n0x0740-n0x0749)  +
-	0x01d40749, // c0x006c (n0x0749-n0x0750)  +
-	0x02304750, // c0x006d (n0x0750-n0x08c1)  +
-	0x023108c1, // c0x006e (n0x08c1-n0x08c4)  +
-	0x023308c4, // c0x006f (n0x08c4-n0x08cc)  +
-	0x024308cc, // c0x0070 (n0x08cc-n0x090c)  +
-	0x0250090c, // c0x0071 (n0x090c-n0x0940)  +
-	0x02570940, // c0x0072 (n0x0940-n0x095c)  +
-	0x025c895c, // c0x0073 (n0x095c-n0x0972)  +
-	0x026b0972, // c0x0074 (n0x0972-n0x09ac)  +
-	0x027089ac, // c0x0075 (n0x09ac-n0x09c2)  +
-	0x027449c2, // c0x0076 (n0x09c2-n0x09d1)  +
-	0x028409d1, // c0x0077 (n0x09d1-n0x0a10)  +
-	0x0290ca10, // c0x0078 (n0x0a10-n0x0a43)  +
-	0x029a4a43, // c0x0079 (n0x0a43-n0x0a69)  +
-	0x02a34a69, // c0x007a (n0x0a69-n0x0a8d)  +
-	0x02a98a8d, // c0x007b (n0x0a8d-n0x0aa6)  +
-	0x02cd0aa6, // c0x007c (n0x0aa6-n0x0b34)  +
-	0x02d88b34, // c0x007d (n0x0b34-n0x0b62)  +
-	0x02e54b62, // c0x007e (n0x0b62-n0x0b95)  +
-	0x02ea0b95, // c0x007f (n0x0b95-n0x0ba8)  +
-	0x02f28ba8, // c0x0080 (n0x0ba8-n0x0bca)  +
-	0x02f64bca, // c0x0081 (n0x0bca-n0x0bd9)  +
-	0x02fb4bd9, // c0x0082 (n0x0bd9-n0x0bed)  +
-	0x0302cbed, // c0x0083 (n0x0bed-n0x0c0b)  +
-	0x63030c0b, // c0x0084 (n0x0c0b-n0x0c0c)* o
-	0x63034c0c, // c0x0085 (n0x0c0c-n0x0c0d)* o
-	0x63038c0d, // c0x0086 (n0x0c0d-n0x0c0e)* o
-	0x030b4c0e, // c0x0087 (n0x0c0e-n0x0c2d)  +
-	0x0311cc2d, // c0x0088 (n0x0c2d-n0x0c47)  +
-	0x03198c47, // c0x0089 (n0x0c47-n0x0c66)  +
-	0x03210c66, // c0x008a (n0x0c66-n0x0c84)  +
-	0x03294c84, // c0x008b (n0x0c84-n0x0ca5)  +
-	0x03300ca5, // c0x008c (n0x0ca5-n0x0cc0)  +
-	0x0342ccc0, // c0x008d (n0x0cc0-n0x0d0b)  +
-	0x03484d0b, // c0x008e (n0x0d0b-n0x0d21)  +
-	0x63488d21, // c0x008f (n0x0d21-n0x0d22)* o
-	0x03520d22, // c0x0090 (n0x0d22-n0x0d48)  +
-	0x035a8d48, // c0x0091 (n0x0d48-n0x0d6a)  +
-	0x035f4d6a, // c0x0092 (n0x0d6a-n0x0d7d)  +
-	0x0365cd7d, // c0x0093 (n0x0d7d-n0x0d97)  +
-	0x03704d97, // c0x0094 (n0x0d97-n0x0dc1)  +
-	0x037ccdc1, // c0x0095 (n0x0dc1-n0x0df3)  +
-	0x03834df3, // c0x0096 (n0x0df3-n0x0e0d)  +
-	0x03948e0d, // c0x0097 (n0x0e0d-n0x0e52)  +
-	0x6394ce52, // c0x0098 (n0x0e52-n0x0e53)* o
-	0x63950e53, // c0x0099 (n0x0e53-n0x0e54)* o
-	0x039ace54, // c0x009a (n0x0e54-n0x0e6b)  +
-	0x03a08e6b, // c0x009b (n0x0e6b-n0x0e82)  +
-	0x03a98e82, // c0x009c (n0x0e82-n0x0ea6)  +
-	0x03b14ea6, // c0x009d (n0x0ea6-n0x0ec5)  +
-	0x03b58ec5, // c0x009e (n0x0ec5-n0x0ed6)  +
-	0x03c3ced6, // c0x009f (n0x0ed6-n0x0f0f)  +
-	0x03c70f0f, // c0x00a0 (n0x0f0f-n0x0f1c)  +
-	0x03cd0f1c, // c0x00a1 (n0x0f1c-n0x0f34)  +
-	0x03d44f34, // c0x00a2 (n0x0f34-n0x0f51)  +
-	0x03dccf51, // c0x00a3 (n0x0f51-n0x0f73)  +
-	0x03e0cf73, // c0x00a4 (n0x0f73-n0x0f83)  +
-	0x03e7cf83, // c0x00a5 (n0x0f83-n0x0f9f)  +
-	0x63e80f9f, // c0x00a6 (n0x0f9f-n0x0fa0)* o
-	0x03e98fa0, // c0x00a7 (n0x0fa0-n0x0fa6)  +
-	0x03eb4fa6, // c0x00a8 (n0x0fa6-n0x0fad)  +
-	0x03ef8fad, // c0x00a9 (n0x0fad-n0x0fbe)  +
-	0x03f08fbe, // c0x00aa (n0x0fbe-n0x0fc2)  +
-	0x03f20fc2, // c0x00ab (n0x0fc2-n0x0fc8)  +
-	0x03f98fc8, // c0x00ac (n0x0fc8-n0x0fe6)  +
-	0x03facfe6, // c0x00ad (n0x0fe6-n0x0feb)  +
-	0x03fc4feb, // c0x00ae (n0x0feb-n0x0ff1)  +
-	0x03fe8ff1, // c0x00af (n0x0ff1-n0x0ffa)  +
-	0x03ffcffa, // c0x00b0 (n0x0ffa-n0x0fff)  +
-	0x04014fff, // c0x00b1 (n0x0fff-n0x1005)  +
-	0x0404d005, // c0x00b2 (n0x1005-n0x1013)  +
-	0x04061013, // c0x00b3 (n0x1013-n0x1018)  +
-	0x04069018, // c0x00b4 (n0x1018-n0x101a)  +
-	0x0406d01a, // c0x00b5 (n0x101a-n0x101b)  +
-	0x0409101b, // c0x00b6 (n0x101b-n0x1024)  +
-	0x040b5024, // c0x00b7 (n0x1024-n0x102d)  +
-	0x040cd02d, // c0x00b8 (n0x102d-n0x1033)  +
-	0x040d5033, // c0x00b9 (n0x1033-n0x1035)  +
-	0x040f5035, // c0x00ba (n0x1035-n0x103d)  +
-	0x0411503d, // c0x00bb (n0x103d-n0x1045)  +
-	0x04131045, // c0x00bc (n0x1045-n0x104c)  +
-	0x0414d04c, // c0x00bd (n0x104c-n0x1053)  +
-	0x0415d053, // c0x00be (n0x1053-n0x1057)  +
-	0x04171057, // c0x00bf (n0x1057-n0x105c)  +
-	0x0417905c, // c0x00c0 (n0x105c-n0x105e)  +
-	0x0418d05e, // c0x00c1 (n0x105e-n0x1063)  +
-	0x0419d063, // c0x00c2 (n0x1063-n0x1067)  +
-	0x041b9067, // c0x00c3 (n0x1067-n0x106e)  +
-	0x04a4906e, // c0x00c4 (n0x106e-n0x1292)  +
-	0x04a81292, // c0x00c5 (n0x1292-n0x12a0)  +
-	0x04aad2a0, // c0x00c6 (n0x12a0-n0x12ab)  +
-	0x04ac52ab, // c0x00c7 (n0x12ab-n0x12b1)  +
-	0x04ae12b1, // c0x00c8 (n0x12b1-n0x12b8)  +
-	0x64ae52b8, // c0x00c9 (n0x12b8-n0x12b9)* o
-	0x04b292b9, // c0x00ca (n0x12b9-n0x12ca)  +
-	0x04b312ca, // c0x00cb (n0x12ca-n0x12cc)  +
-	0x24b352cc, // c0x00cc (n0x12cc-n0x12cd)  o
-	0x24b392cd, // c0x00cd (n0x12cd-n0x12ce)  o
-	0x04b3d2ce, // c0x00ce (n0x12ce-n0x12cf)  +
-	0x04bf92cf, // c0x00cf (n0x12cf-n0x12fe)  +
-	0x24c012fe, // c0x00d0 (n0x12fe-n0x1300)  o
-	0x24c09300, // c0x00d1 (n0x1300-n0x1302)  o
-	0x24c15302, // c0x00d2 (n0x1302-n0x1305)  o
-	0x04c3d305, // c0x00d3 (n0x1305-n0x130f)  +
-	0x04c6130f, // c0x00d4 (n0x130f-n0x1318)  +
-	0x04c6d318, // c0x00d5 (n0x1318-n0x131b)  +
-	0x057c531b, // c0x00d6 (n0x131b-n0x15f1)  +
-	0x057c95f1, // c0x00d7 (n0x15f1-n0x15f2)  +
-	0x057cd5f2, // c0x00d8 (n0x15f2-n0x15f3)  +
-	0x257d15f3, // c0x00d9 (n0x15f3-n0x15f4)  o
-	0x057d55f4, // c0x00da (n0x15f4-n0x15f5)  +
-	0x257d95f5, // c0x00db (n0x15f5-n0x15f6)  o
-	0x057dd5f6, // c0x00dc (n0x15f6-n0x15f7)  +
-	0x257e95f7, // c0x00dd (n0x15f7-n0x15fa)  o
-	0x057ed5fa, // c0x00de (n0x15fa-n0x15fb)  +
-	0x057f15fb, // c0x00df (n0x15fb-n0x15fc)  +
-	0x257f55fc, // c0x00e0 (n0x15fc-n0x15fd)  o
-	0x057f95fd, // c0x00e1 (n0x15fd-n0x15fe)  +
-	0x258015fe, // c0x00e2 (n0x15fe-n0x1600)  o
-	0x05805600, // c0x00e3 (n0x1600-n0x1601)  +
-	0x05809601, // c0x00e4 (n0x1601-n0x1602)  +
-	0x25819602, // c0x00e5 (n0x1602-n0x1606)  o
-	0x0581d606, // c0x00e6 (n0x1606-n0x1607)  +
-	0x05821607, // c0x00e7 (n0x1607-n0x1608)  +
-	0x05825608, // c0x00e8 (n0x1608-n0x1609)  +
-	0x05829609, // c0x00e9 (n0x1609-n0x160a)  +
-	0x2582d60a, // c0x00ea (n0x160a-n0x160b)  o
-	0x0583160b, // c0x00eb (n0x160b-n0x160c)  +
-	0x0583560c, // c0x00ec (n0x160c-n0x160d)  +
-	0x0583960d, // c0x00ed (n0x160d-n0x160e)  +
-	0x0583d60e, // c0x00ee (n0x160e-n0x160f)  +
-	0x2584560f, // c0x00ef (n0x160f-n0x1611)  o
-	0x05849611, // c0x00f0 (n0x1611-n0x1612)  +
-	0x0584d612, // c0x00f1 (n0x1612-n0x1613)  +
-	0x05851613, // c0x00f2 (n0x1613-n0x1614)  +
-	0x25855614, // c0x00f3 (n0x1614-n0x1615)  o
-	0x05859615, // c0x00f4 (n0x1615-n0x1616)  +
-	0x25861616, // c0x00f5 (n0x1616-n0x1618)  o
-	0x25865618, // c0x00f6 (n0x1618-n0x1619)  o
-	0x05881619, // c0x00f7 (n0x1619-n0x1620)  +
-	0x0588d620, // c0x00f8 (n0x1620-n0x1623)  +
-	0x058cd623, // c0x00f9 (n0x1623-n0x1633)  +
-	0x058d1633, // c0x00fa (n0x1633-n0x1634)  +
-	0x058f5634, // c0x00fb (n0x1634-n0x163d)  +
-	0x059c963d, // c0x00fc (n0x163d-n0x1672)  +
-	0x059d1672, // c0x00fd (n0x1672-n0x1674)  +
-	0x059fd674, // c0x00fe (n0x1674-n0x167f)  +
-	0x05a1967f, // c0x00ff (n0x167f-n0x1686)  +
-	0x05a25686, // c0x0100 (n0x1686-n0x1689)  +
-	0x05a45689, // c0x0101 (n0x1689-n0x1691)  +
-	0x05a7d691, // c0x0102 (n0x1691-n0x169f)  +
-	0x05d2969f, // c0x0103 (n0x169f-n0x174a)  +
-	0x05d4d74a, // c0x0104 (n0x174a-n0x1753)  +
-	0x05d61753, // c0x0105 (n0x1753-n0x1758)  +
-	0x05d95758, // c0x0106 (n0x1758-n0x1765)  +
-	0x05db1765, // c0x0107 (n0x1765-n0x176c)  +
-	0x05dcd76c, // c0x0108 (n0x176c-n0x1773)  +
-	0x05df1773, // c0x0109 (n0x1773-n0x177c)  +
-	0x05e0977c, // c0x010a (n0x177c-n0x1782)  +
-	0x05e25782, // c0x010b (n0x1782-n0x1789)  +
-	0x05e45789, // c0x010c (n0x1789-n0x1791)  +
-	0x05e55791, // c0x010d (n0x1791-n0x1795)  +
-	0x05e85795, // c0x010e (n0x1795-n0x17a1)  +
-	0x05e9d7a1, // c0x010f (n0x17a1-n0x17a7)  +
-	0x060ad7a7, // c0x0110 (n0x17a7-n0x182b)  +
-	0x060d182b, // c0x0111 (n0x182b-n0x1834)  +
-	0x060f1834, // c0x0112 (n0x1834-n0x183c)  +
-	0x0610583c, // c0x0113 (n0x183c-n0x1841)  +
-	0x06119841, // c0x0114 (n0x1841-n0x1846)  +
-	0x06139846, // c0x0115 (n0x1846-n0x184e)  +
-	0x061dd84e, // c0x0116 (n0x184e-n0x1877)  +
-	0x061f9877, // c0x0117 (n0x1877-n0x187e)  +
-	0x0620d87e, // c0x0118 (n0x187e-n0x1883)  +
-	0x06211883, // c0x0119 (n0x1883-n0x1884)  +
-	0x06225884, // c0x011a (n0x1884-n0x1889)  +
-	0x06241889, // c0x011b (n0x1889-n0x1890)  +
-	0x0624d890, // c0x011c (n0x1890-n0x1893)  +
-	0x0627d893, // c0x011d (n0x1893-n0x189f)  +
-	0x0629189f, // c0x011e (n0x189f-n0x18a4)  +
-	0x062958a4, // c0x011f (n0x18a4-n0x18a5)  +
-	0x062ad8a5, // c0x0120 (n0x18a5-n0x18ab)  +
-	0x062b98ab, // c0x0121 (n0x18ab-n0x18ae)  +
-	0x062bd8ae, // c0x0122 (n0x18ae-n0x18af)  +
-	0x062d98af, // c0x0123 (n0x18af-n0x18b6)  +
-	0x063158b6, // c0x0124 (n0x18b6-n0x18c5)  +
-	0x063198c5, // c0x0125 (n0x18c5-n0x18c6)  +
-	0x063398c6, // c0x0126 (n0x18c6-n0x18ce)  +
-	0x063898ce, // c0x0127 (n0x18ce-n0x18e2)  +
-	0x063a18e2, // c0x0128 (n0x18e2-n0x18e8)  +
-	0x063f58e8, // c0x0129 (n0x18e8-n0x18fd)  +
-	0x063f98fd, // c0x012a (n0x18fd-n0x18fe)  +
-	0x0643d8fe, // c0x012b (n0x18fe-n0x190f)  +
-	0x0644d90f, // c0x012c (n0x190f-n0x1913)  +
-	0x06485913, // c0x012d (n0x1913-n0x1921)  +
-	0x064b5921, // c0x012e (n0x1921-n0x192d)  +
-	0x065ed92d, // c0x012f (n0x192d-n0x197b)  +
-	0x0660d97b, // c0x0130 (n0x197b-n0x1983)  +
-	0x06639983, // c0x0131 (n0x1983-n0x198e)  +
-	0x0663d98e, // c0x0132 (n0x198e-n0x198f)  +
-	0x0664198f, // c0x0133 (n0x198f-n0x1990)  +
-	0x0673d990, // c0x0134 (n0x1990-n0x19cf)  +
-	0x067499cf, // c0x0135 (n0x19cf-n0x19d2)  +
-	0x067559d2, // c0x0136 (n0x19d2-n0x19d5)  +
-	0x067619d5, // c0x0137 (n0x19d5-n0x19d8)  +
-	0x0676d9d8, // c0x0138 (n0x19d8-n0x19db)  +
-	0x067799db, // c0x0139 (n0x19db-n0x19de)  +
-	0x067859de, // c0x013a (n0x19de-n0x19e1)  +
-	0x067919e1, // c0x013b (n0x19e1-n0x19e4)  +
-	0x0679d9e4, // c0x013c (n0x19e4-n0x19e7)  +
-	0x067a99e7, // c0x013d (n0x19e7-n0x19ea)  +
-	0x067b59ea, // c0x013e (n0x19ea-n0x19ed)  +
-	0x067c19ed, // c0x013f (n0x19ed-n0x19f0)  +
-	0x067cd9f0, // c0x0140 (n0x19f0-n0x19f3)  +
-	0x067d99f3, // c0x0141 (n0x19f3-n0x19f6)  +
-	0x067e19f6, // c0x0142 (n0x19f6-n0x19f8)  +
-	0x067ed9f8, // c0x0143 (n0x19f8-n0x19fb)  +
-	0x067f99fb, // c0x0144 (n0x19fb-n0x19fe)  +
-	0x068059fe, // c0x0145 (n0x19fe-n0x1a01)  +
-	0x06811a01, // c0x0146 (n0x1a01-n0x1a04)  +
-	0x0681da04, // c0x0147 (n0x1a04-n0x1a07)  +
-	0x06829a07, // c0x0148 (n0x1a07-n0x1a0a)  +
-	0x06835a0a, // c0x0149 (n0x1a0a-n0x1a0d)  +
-	0x06841a0d, // c0x014a (n0x1a0d-n0x1a10)  +
-	0x0684da10, // c0x014b (n0x1a10-n0x1a13)  +
-	0x06859a13, // c0x014c (n0x1a13-n0x1a16)  +
-	0x06865a16, // c0x014d (n0x1a16-n0x1a19)  +
-	0x06871a19, // c0x014e (n0x1a19-n0x1a1c)  +
-	0x0687da1c, // c0x014f (n0x1a1c-n0x1a1f)  +
-	0x06889a1f, // c0x0150 (n0x1a1f-n0x1a22)  +
-	0x06895a22, // c0x0151 (n0x1a22-n0x1a25)  +
-	0x068a1a25, // c0x0152 (n0x1a25-n0x1a28)  +
-	0x068ada28, // c0x0153 (n0x1a28-n0x1a2b)  +
-	0x068b5a2b, // c0x0154 (n0x1a2b-n0x1a2d)  +
-	0x068c1a2d, // c0x0155 (n0x1a2d-n0x1a30)  +
-	0x068cda30, // c0x0156 (n0x1a30-n0x1a33)  +
-	0x068d9a33, // c0x0157 (n0x1a33-n0x1a36)  +
-	0x068e5a36, // c0x0158 (n0x1a36-n0x1a39)  +
-	0x068f1a39, // c0x0159 (n0x1a39-n0x1a3c)  +
-	0x068fda3c, // c0x015a (n0x1a3c-n0x1a3f)  +
-	0x06909a3f, // c0x015b (n0x1a3f-n0x1a42)  +
-	0x06915a42, // c0x015c (n0x1a42-n0x1a45)  +
-	0x06921a45, // c0x015d (n0x1a45-n0x1a48)  +
-	0x0692da48, // c0x015e (n0x1a48-n0x1a4b)  +
-	0x06939a4b, // c0x015f (n0x1a4b-n0x1a4e)  +
-	0x06945a4e, // c0x0160 (n0x1a4e-n0x1a51)  +
-	0x06951a51, // c0x0161 (n0x1a51-n0x1a54)  +
-	0x06959a54, // c0x0162 (n0x1a54-n0x1a56)  +
-	0x06965a56, // c0x0163 (n0x1a56-n0x1a59)  +
-	0x06971a59, // c0x0164 (n0x1a59-n0x1a5c)  +
-	0x0697da5c, // c0x0165 (n0x1a5c-n0x1a5f)  +
-	0x06989a5f, // c0x0166 (n0x1a5f-n0x1a62)  +
-	0x06995a62, // c0x0167 (n0x1a62-n0x1a65)  +
-	0x069a1a65, // c0x0168 (n0x1a65-n0x1a68)  +
-	0x069ada68, // c0x0169 (n0x1a68-n0x1a6b)  +
-	0x069b9a6b, // c0x016a (n0x1a6b-n0x1a6e)  +
-	0x069bda6e, // c0x016b (n0x1a6e-n0x1a6f)  +
-	0x069c9a6f, // c0x016c (n0x1a6f-n0x1a72)  +
-	0x069e1a72, // c0x016d (n0x1a72-n0x1a78)  +
-	0x069f1a78, // c0x016e (n0x1a78-n0x1a7c)  +
-	0x06a09a7c, // c0x016f (n0x1a7c-n0x1a82)  +
-	0x06a4da82, // c0x0170 (n0x1a82-n0x1a93)  +
-	0x06a61a93, // c0x0171 (n0x1a93-n0x1a98)  +
-	0x06a91a98, // c0x0172 (n0x1a98-n0x1aa4)  +
-	0x06aa1aa4, // c0x0173 (n0x1aa4-n0x1aa8)  +
-	0x06abdaa8, // c0x0174 (n0x1aa8-n0x1aaf)  +
-	0x06ad5aaf, // c0x0175 (n0x1aaf-n0x1ab5)  +
+	0x0105440f, // c0x0006 (n0x040f-n0x0415)  +
+	0x01058415, // c0x0007 (n0x0415-n0x0416)  +
+	0x01078416, // c0x0008 (n0x0416-n0x041e)  +
+	0x011dc41e, // c0x0009 (n0x041e-n0x0477)  +
+	0x011f0477, // c0x000a (n0x0477-n0x047c)  +
+	0x0120447c, // c0x000b (n0x047c-n0x0481)  +
+	0x01214481, // c0x000c (n0x0481-n0x0485)  +
+	0x0122c485, // c0x000d (n0x0485-n0x048b)  +
+	0x0123c48b, // c0x000e (n0x048b-n0x048f)  +
+	0x0125448f, // c0x000f (n0x048f-n0x0495)  +
+	0x01278495, // c0x0010 (n0x0495-n0x049e)  +
+	0x0127c49e, // c0x0011 (n0x049e-n0x049f)  +
+	0x0129449f, // c0x0012 (n0x049f-n0x04a5)  +
+	0x012984a5, // c0x0013 (n0x04a5-n0x04a6)  +
+	0x012b44a6, // c0x0014 (n0x04a6-n0x04ad)  +
+	0x012b84ad, // c0x0015 (n0x04ad-n0x04ae)  +
+	0x013004ae, // c0x0016 (n0x04ae-n0x04c0)  +
+	0x013044c0, // c0x0017 (n0x04c0-n0x04c1)  +
+	0x013244c1, // c0x0018 (n0x04c1-n0x04c9)  +
+	0x013384c9, // c0x0019 (n0x04c9-n0x04ce)  +
+	0x0133c4ce, // c0x001a (n0x04ce-n0x04cf)  +
+	0x0136c4cf, // c0x001b (n0x04cf-n0x04db)  +
+	0x013944db, // c0x001c (n0x04db-n0x04e5)  +
+	0x013bc4e5, // c0x001d (n0x04e5-n0x04ef)  +
+	0x013c44ef, // c0x001e (n0x04ef-n0x04f1)  +
+	0x013c84f1, // c0x001f (n0x04f1-n0x04f2)  +
+	0x014584f2, // c0x0020 (n0x04f2-n0x0516)  +
+	0x0146c516, // c0x0021 (n0x0516-n0x051b)  +
+	0x0148051b, // c0x0022 (n0x051b-n0x0520)  +
+	0x0149c520, // c0x0023 (n0x0520-n0x0527)  +
+	0x014ac527, // c0x0024 (n0x0527-n0x052b)  +
+	0x014c052b, // c0x0025 (n0x052b-n0x0530)  +
+	0x014e4530, // c0x0026 (n0x0530-n0x0539)  +
+	0x015fc539, // c0x0027 (n0x0539-n0x057f)  +
+	0x0160057f, // c0x0028 (n0x057f-n0x0580)  +
+	0x01614580, // c0x0029 (n0x0580-n0x0585)  +
+	0x01628585, // c0x002a (n0x0585-n0x058a)  +
+	0x0163058a, // c0x002b (n0x058a-n0x058c)  +
+	0x0164058c, // c0x002c (n0x058c-n0x0590)  +
+	0x01658590, // c0x002d (n0x0590-n0x0596)  +
+	0x0169c596, // c0x002e (n0x0596-n0x05a7)  +
+	0x016ac5a7, // c0x002f (n0x05a7-n0x05ab)  +
+	0x016b05ab, // c0x0030 (n0x05ab-n0x05ac)  +
+	0x016b45ac, // c0x0031 (n0x05ac-n0x05ad)  +
+	0x016b85ad, // c0x0032 (n0x05ad-n0x05ae)  +
+	0x016f45ae, // c0x0033 (n0x05ae-n0x05bd)  +
+	0x616f85bd, // c0x0034 (n0x05bd-n0x05be)* o
+	0x017085be, // c0x0035 (n0x05be-n0x05c2)  +
+	0x017185c2, // c0x0036 (n0x05c2-n0x05c6)  +
+	0x017cc5c6, // c0x0037 (n0x05c6-n0x05f3)  +
+	0x217d05f3, // c0x0038 (n0x05f3-n0x05f4)  o
+	0x017d45f4, // c0x0039 (n0x05f4-n0x05f5)  +
+	0x018085f5, // c0x003a (n0x05f5-n0x0602)  +
+	0x01b1c602, // c0x003b (n0x0602-n0x06c7)  +
+	0x21b786c7, // c0x003c (n0x06c7-n0x06de)  o
+	0x01b9c6de, // c0x003d (n0x06de-n0x06e7)  +
+	0x01ba46e7, // c0x003e (n0x06e7-n0x06e9)  +
+	0x01bc06e9, // c0x003f (n0x06e9-n0x06f0)  +
+	0x01bd86f0, // c0x0040 (n0x06f0-n0x06f6)  +
+	0x01bdc6f6, // c0x0041 (n0x06f6-n0x06f7)  +
+	0x01bec6f7, // c0x0042 (n0x06f7-n0x06fb)  +
+	0x01bf46fb, // c0x0043 (n0x06fb-n0x06fd)  +
+	0x01bf86fd, // c0x0044 (n0x06fd-n0x06fe)  +
+	0x01c186fe, // c0x0045 (n0x06fe-n0x0706)  +
+	0x01c1c706, // c0x0046 (n0x0706-n0x0707)  +
+	0x01c30707, // c0x0047 (n0x0707-n0x070c)  +
+	0x01c5870c, // c0x0048 (n0x070c-n0x0716)  +
+	0x01c78716, // c0x0049 (n0x0716-n0x071e)  +
+	0x01ca871e, // c0x004a (n0x071e-n0x072a)  +
+	0x01cd072a, // c0x004b (n0x072a-n0x0734)  +
+	0x01cf4734, // c0x004c (n0x0734-n0x073d)  +
+	0x01d0873d, // c0x004d (n0x073d-n0x0742)  +
+	0x01d0c742, // c0x004e (n0x0742-n0x0743)  +
+	0x01d28743, // c0x004f (n0x0743-n0x074a)  +
+	0x01d3474a, // c0x0050 (n0x074a-n0x074d)  +
+	0x01d9474d, // c0x0051 (n0x074d-n0x0765)  +
+	0x01db0765, // c0x0052 (n0x0765-n0x076c)  +
+	0x01dbc76c, // c0x0053 (n0x076c-n0x076f)  +
+	0x01dd076f, // c0x0054 (n0x076f-n0x0774)  +
+	0x01de8774, // c0x0055 (n0x0774-n0x077a)  +
+	0x01e0077a, // c0x0056 (n0x077a-n0x0780)  +
+	0x01e18780, // c0x0057 (n0x0780-n0x0786)  +
+	0x01e30786, // c0x0058 (n0x0786-n0x078c)  +
+	0x01e4c78c, // c0x0059 (n0x078c-n0x0793)  +
+	0x01e58793, // c0x005a (n0x0793-n0x0796)  +
+	0x01eb8796, // c0x005b (n0x0796-n0x07ae)  +
+	0x01ed07ae, // c0x005c (n0x07ae-n0x07b4)  +
+	0x01ee07b4, // c0x005d (n0x07b4-n0x07b8)  +
+	0x01f247b8, // c0x005e (n0x07b8-n0x07c9)  +
+	0x01fa47c9, // c0x005f (n0x07c9-n0x07e9)  +
+	0x01fd07e9, // c0x0060 (n0x07e9-n0x07f4)  +
+	0x01fd87f4, // c0x0061 (n0x07f4-n0x07f6)  +
+	0x61fdc7f6, // c0x0062 (n0x07f6-n0x07f7)* o
+	0x21fe07f7, // c0x0063 (n0x07f7-n0x07f8)  o
+	0x01ffc7f8, // c0x0064 (n0x07f8-n0x07ff)  +
+	0x020047ff, // c0x0065 (n0x07ff-n0x0801)  +
+	0x02038801, // c0x0066 (n0x0801-n0x080e)  +
+	0x0206080e, // c0x0067 (n0x080e-n0x0818)  +
+	0x02064818, // c0x0068 (n0x0818-n0x0819)  +
+	0x02070819, // c0x0069 (n0x0819-n0x081c)  +
+	0x0208881c, // c0x006a (n0x081c-n0x0822)  +
+	0x020ac822, // c0x006b (n0x0822-n0x082b)  +
+	0x020c882b, // c0x006c (n0x082b-n0x0832)  +
+	0x0268c832, // c0x006d (n0x0832-n0x09a3)  +
+	0x026989a3, // c0x006e (n0x09a3-n0x09a6)  +
+	0x026b89a6, // c0x006f (n0x09a6-n0x09ae)  +
+	0x028749ae, // c0x0070 (n0x09ae-n0x0a1d)  +
+	0x02944a1d, // c0x0071 (n0x0a1d-n0x0a51)  +
+	0x029b4a51, // c0x0072 (n0x0a51-n0x0a6d)  +
+	0x02a0ca6d, // c0x0073 (n0x0a6d-n0x0a83)  +
+	0x02af4a83, // c0x0074 (n0x0a83-n0x0abd)  +
+	0x02b4cabd, // c0x0075 (n0x0abd-n0x0ad3)  +
+	0x02b88ad3, // c0x0076 (n0x0ad3-n0x0ae2)  +
+	0x02c84ae2, // c0x0077 (n0x0ae2-n0x0b21)  +
+	0x02d50b21, // c0x0078 (n0x0b21-n0x0b54)  +
+	0x02de8b54, // c0x0079 (n0x0b54-n0x0b7a)  +
+	0x02e78b7a, // c0x007a (n0x0b7a-n0x0b9e)  +
+	0x02edcb9e, // c0x007b (n0x0b9e-n0x0bb7)  +
+	0x03114bb7, // c0x007c (n0x0bb7-n0x0c45)  +
+	0x031ccc45, // c0x007d (n0x0c45-n0x0c73)  +
+	0x03298c73, // c0x007e (n0x0c73-n0x0ca6)  +
+	0x032e4ca6, // c0x007f (n0x0ca6-n0x0cb9)  +
+	0x0336ccb9, // c0x0080 (n0x0cb9-n0x0cdb)  +
+	0x033a8cdb, // c0x0081 (n0x0cdb-n0x0cea)  +
+	0x033f8cea, // c0x0082 (n0x0cea-n0x0cfe)  +
+	0x03470cfe, // c0x0083 (n0x0cfe-n0x0d1c)  +
+	0x63474d1c, // c0x0084 (n0x0d1c-n0x0d1d)* o
+	0x63478d1d, // c0x0085 (n0x0d1d-n0x0d1e)* o
+	0x6347cd1e, // c0x0086 (n0x0d1e-n0x0d1f)* o
+	0x034f8d1f, // c0x0087 (n0x0d1f-n0x0d3e)  +
+	0x03560d3e, // c0x0088 (n0x0d3e-n0x0d58)  +
+	0x035dcd58, // c0x0089 (n0x0d58-n0x0d77)  +
+	0x03654d77, // c0x008a (n0x0d77-n0x0d95)  +
+	0x036d8d95, // c0x008b (n0x0d95-n0x0db6)  +
+	0x03744db6, // c0x008c (n0x0db6-n0x0dd1)  +
+	0x03870dd1, // c0x008d (n0x0dd1-n0x0e1c)  +
+	0x038c8e1c, // c0x008e (n0x0e1c-n0x0e32)  +
+	0x638cce32, // c0x008f (n0x0e32-n0x0e33)* o
+	0x03964e33, // c0x0090 (n0x0e33-n0x0e59)  +
+	0x039ece59, // c0x0091 (n0x0e59-n0x0e7b)  +
+	0x03a38e7b, // c0x0092 (n0x0e7b-n0x0e8e)  +
+	0x03aa0e8e, // c0x0093 (n0x0e8e-n0x0ea8)  +
+	0x03b48ea8, // c0x0094 (n0x0ea8-n0x0ed2)  +
+	0x03c10ed2, // c0x0095 (n0x0ed2-n0x0f04)  +
+	0x03c78f04, // c0x0096 (n0x0f04-n0x0f1e)  +
+	0x03d8cf1e, // c0x0097 (n0x0f1e-n0x0f63)  +
+	0x63d90f63, // c0x0098 (n0x0f63-n0x0f64)* o
+	0x63d94f64, // c0x0099 (n0x0f64-n0x0f65)* o
+	0x03df0f65, // c0x009a (n0x0f65-n0x0f7c)  +
+	0x03e4cf7c, // c0x009b (n0x0f7c-n0x0f93)  +
+	0x03edcf93, // c0x009c (n0x0f93-n0x0fb7)  +
+	0x03f58fb7, // c0x009d (n0x0fb7-n0x0fd6)  +
+	0x03f9cfd6, // c0x009e (n0x0fd6-n0x0fe7)  +
+	0x04080fe7, // c0x009f (n0x0fe7-n0x1020)  +
+	0x040b5020, // c0x00a0 (n0x1020-n0x102d)  +
+	0x0411502d, // c0x00a1 (n0x102d-n0x1045)  +
+	0x04189045, // c0x00a2 (n0x1045-n0x1062)  +
+	0x04211062, // c0x00a3 (n0x1062-n0x1084)  +
+	0x04251084, // c0x00a4 (n0x1084-n0x1094)  +
+	0x042c1094, // c0x00a5 (n0x1094-n0x10b0)  +
+	0x642c50b0, // c0x00a6 (n0x10b0-n0x10b1)* o
+	0x042dd0b1, // c0x00a7 (n0x10b1-n0x10b7)  +
+	0x042f90b7, // c0x00a8 (n0x10b7-n0x10be)  +
+	0x0433d0be, // c0x00a9 (n0x10be-n0x10cf)  +
+	0x0434d0cf, // c0x00aa (n0x10cf-n0x10d3)  +
+	0x043650d3, // c0x00ab (n0x10d3-n0x10d9)  +
+	0x043dd0d9, // c0x00ac (n0x10d9-n0x10f7)  +
+	0x043f10f7, // c0x00ad (n0x10f7-n0x10fc)  +
+	0x044090fc, // c0x00ae (n0x10fc-n0x1102)  +
+	0x0442d102, // c0x00af (n0x1102-n0x110b)  +
+	0x0444110b, // c0x00b0 (n0x110b-n0x1110)  +
+	0x04459110, // c0x00b1 (n0x1110-n0x1116)  +
+	0x04491116, // c0x00b2 (n0x1116-n0x1124)  +
+	0x044a5124, // c0x00b3 (n0x1124-n0x1129)  +
+	0x044ad129, // c0x00b4 (n0x1129-n0x112b)  +
+	0x044b112b, // c0x00b5 (n0x112b-n0x112c)  +
+	0x044d512c, // c0x00b6 (n0x112c-n0x1135)  +
+	0x044f9135, // c0x00b7 (n0x1135-n0x113e)  +
+	0x0451113e, // c0x00b8 (n0x113e-n0x1144)  +
+	0x04519144, // c0x00b9 (n0x1144-n0x1146)  +
+	0x04539146, // c0x00ba (n0x1146-n0x114e)  +
+	0x0455914e, // c0x00bb (n0x114e-n0x1156)  +
+	0x04575156, // c0x00bc (n0x1156-n0x115d)  +
+	0x0459115d, // c0x00bd (n0x115d-n0x1164)  +
+	0x045a1164, // c0x00be (n0x1164-n0x1168)  +
+	0x045b5168, // c0x00bf (n0x1168-n0x116d)  +
+	0x045bd16d, // c0x00c0 (n0x116d-n0x116f)  +
+	0x045d116f, // c0x00c1 (n0x116f-n0x1174)  +
+	0x045e1174, // c0x00c2 (n0x1174-n0x1178)  +
+	0x045fd178, // c0x00c3 (n0x1178-n0x117f)  +
+	0x04e8d17f, // c0x00c4 (n0x117f-n0x13a3)  +
+	0x04ec53a3, // c0x00c5 (n0x13a3-n0x13b1)  +
+	0x04ef13b1, // c0x00c6 (n0x13b1-n0x13bc)  +
+	0x04f093bc, // c0x00c7 (n0x13bc-n0x13c2)  +
+	0x04f253c2, // c0x00c8 (n0x13c2-n0x13c9)  +
+	0x64f293c9, // c0x00c9 (n0x13c9-n0x13ca)* o
+	0x04f6d3ca, // c0x00ca (n0x13ca-n0x13db)  +
+	0x04f753db, // c0x00cb (n0x13db-n0x13dd)  +
+	0x24f793dd, // c0x00cc (n0x13dd-n0x13de)  o
+	0x24f7d3de, // c0x00cd (n0x13de-n0x13df)  o
+	0x04f813df, // c0x00ce (n0x13df-n0x13e0)  +
+	0x0503d3e0, // c0x00cf (n0x13e0-n0x140f)  +
+	0x2504540f, // c0x00d0 (n0x140f-n0x1411)  o
+	0x2504d411, // c0x00d1 (n0x1411-n0x1413)  o
+	0x25059413, // c0x00d2 (n0x1413-n0x1416)  o
+	0x05081416, // c0x00d3 (n0x1416-n0x1420)  +
+	0x050a5420, // c0x00d4 (n0x1420-n0x1429)  +
+	0x050b1429, // c0x00d5 (n0x1429-n0x142c)  +
+	0x05c0942c, // c0x00d6 (n0x142c-n0x1702)  +
+	0x05c0d702, // c0x00d7 (n0x1702-n0x1703)  +
+	0x05c11703, // c0x00d8 (n0x1703-n0x1704)  +
+	0x25c15704, // c0x00d9 (n0x1704-n0x1705)  o
+	0x05c19705, // c0x00da (n0x1705-n0x1706)  +
+	0x25c1d706, // c0x00db (n0x1706-n0x1707)  o
+	0x05c21707, // c0x00dc (n0x1707-n0x1708)  +
+	0x25c2d708, // c0x00dd (n0x1708-n0x170b)  o
+	0x05c3170b, // c0x00de (n0x170b-n0x170c)  +
+	0x05c3570c, // c0x00df (n0x170c-n0x170d)  +
+	0x25c3970d, // c0x00e0 (n0x170d-n0x170e)  o
+	0x05c3d70e, // c0x00e1 (n0x170e-n0x170f)  +
+	0x25c4570f, // c0x00e2 (n0x170f-n0x1711)  o
+	0x05c49711, // c0x00e3 (n0x1711-n0x1712)  +
+	0x05c4d712, // c0x00e4 (n0x1712-n0x1713)  +
+	0x25c5d713, // c0x00e5 (n0x1713-n0x1717)  o
+	0x05c61717, // c0x00e6 (n0x1717-n0x1718)  +
+	0x05c65718, // c0x00e7 (n0x1718-n0x1719)  +
+	0x05c69719, // c0x00e8 (n0x1719-n0x171a)  +
+	0x05c6d71a, // c0x00e9 (n0x171a-n0x171b)  +
+	0x25c7171b, // c0x00ea (n0x171b-n0x171c)  o
+	0x05c7571c, // c0x00eb (n0x171c-n0x171d)  +
+	0x05c7971d, // c0x00ec (n0x171d-n0x171e)  +
+	0x05c7d71e, // c0x00ed (n0x171e-n0x171f)  +
+	0x05c8171f, // c0x00ee (n0x171f-n0x1720)  +
+	0x25c89720, // c0x00ef (n0x1720-n0x1722)  o
+	0x05c8d722, // c0x00f0 (n0x1722-n0x1723)  +
+	0x05c91723, // c0x00f1 (n0x1723-n0x1724)  +
+	0x05c95724, // c0x00f2 (n0x1724-n0x1725)  +
+	0x25c99725, // c0x00f3 (n0x1725-n0x1726)  o
+	0x05c9d726, // c0x00f4 (n0x1726-n0x1727)  +
+	0x25ca5727, // c0x00f5 (n0x1727-n0x1729)  o
+	0x25ca9729, // c0x00f6 (n0x1729-n0x172a)  o
+	0x05cc572a, // c0x00f7 (n0x172a-n0x1731)  +
+	0x05cd1731, // c0x00f8 (n0x1731-n0x1734)  +
+	0x05d11734, // c0x00f9 (n0x1734-n0x1744)  +
+	0x05d15744, // c0x00fa (n0x1744-n0x1745)  +
+	0x05d39745, // c0x00fb (n0x1745-n0x174e)  +
+	0x05e1174e, // c0x00fc (n0x174e-n0x1784)  +
+	0x05e19784, // c0x00fd (n0x1784-n0x1786)  +
+	0x05e45786, // c0x00fe (n0x1786-n0x1791)  +
+	0x05e61791, // c0x00ff (n0x1791-n0x1798)  +
+	0x05e6d798, // c0x0100 (n0x1798-n0x179b)  +
+	0x05e8d79b, // c0x0101 (n0x179b-n0x17a3)  +
+	0x05ec57a3, // c0x0102 (n0x17a3-n0x17b1)  +
+	0x061597b1, // c0x0103 (n0x17b1-n0x1856)  +
+	0x0617d856, // c0x0104 (n0x1856-n0x185f)  +
+	0x0619185f, // c0x0105 (n0x185f-n0x1864)  +
+	0x061c5864, // c0x0106 (n0x1864-n0x1871)  +
+	0x061e1871, // c0x0107 (n0x1871-n0x1878)  +
+	0x061fd878, // c0x0108 (n0x1878-n0x187f)  +
+	0x0622187f, // c0x0109 (n0x187f-n0x1888)  +
+	0x06239888, // c0x010a (n0x1888-n0x188e)  +
+	0x0625588e, // c0x010b (n0x188e-n0x1895)  +
+	0x06275895, // c0x010c (n0x1895-n0x189d)  +
+	0x0628589d, // c0x010d (n0x189d-n0x18a1)  +
+	0x062b58a1, // c0x010e (n0x18a1-n0x18ad)  +
+	0x062cd8ad, // c0x010f (n0x18ad-n0x18b3)  +
+	0x064dd8b3, // c0x0110 (n0x18b3-n0x1937)  +
+	0x06501937, // c0x0111 (n0x1937-n0x1940)  +
+	0x06521940, // c0x0112 (n0x1940-n0x1948)  +
+	0x06535948, // c0x0113 (n0x1948-n0x194d)  +
+	0x0654994d, // c0x0114 (n0x194d-n0x1952)  +
+	0x06569952, // c0x0115 (n0x1952-n0x195a)  +
+	0x0660d95a, // c0x0116 (n0x195a-n0x1983)  +
+	0x06629983, // c0x0117 (n0x1983-n0x198a)  +
+	0x0663d98a, // c0x0118 (n0x198a-n0x198f)  +
+	0x0664198f, // c0x0119 (n0x198f-n0x1990)  +
+	0x06655990, // c0x011a (n0x1990-n0x1995)  +
+	0x06671995, // c0x011b (n0x1995-n0x199c)  +
+	0x0667d99c, // c0x011c (n0x199c-n0x199f)  +
+	0x066ad99f, // c0x011d (n0x199f-n0x19ab)  +
+	0x066c19ab, // c0x011e (n0x19ab-n0x19b0)  +
+	0x066c59b0, // c0x011f (n0x19b0-n0x19b1)  +
+	0x066dd9b1, // c0x0120 (n0x19b1-n0x19b7)  +
+	0x066e99b7, // c0x0121 (n0x19b7-n0x19ba)  +
+	0x066ed9ba, // c0x0122 (n0x19ba-n0x19bb)  +
+	0x067099bb, // c0x0123 (n0x19bb-n0x19c2)  +
+	0x067459c2, // c0x0124 (n0x19c2-n0x19d1)  +
+	0x067499d1, // c0x0125 (n0x19d1-n0x19d2)  +
+	0x067699d2, // c0x0126 (n0x19d2-n0x19da)  +
+	0x067b99da, // c0x0127 (n0x19da-n0x19ee)  +
+	0x067d19ee, // c0x0128 (n0x19ee-n0x19f4)  +
+	0x068259f4, // c0x0129 (n0x19f4-n0x1a09)  +
+	0x06829a09, // c0x012a (n0x1a09-n0x1a0a)  +
+	0x0682da0a, // c0x012b (n0x1a0a-n0x1a0b)  +
+	0x06871a0b, // c0x012c (n0x1a0b-n0x1a1c)  +
+	0x06881a1c, // c0x012d (n0x1a1c-n0x1a20)  +
+	0x068b9a20, // c0x012e (n0x1a20-n0x1a2e)  +
+	0x068e9a2e, // c0x012f (n0x1a2e-n0x1a3a)  +
+	0x06a21a3a, // c0x0130 (n0x1a3a-n0x1a88)  +
+	0x06a41a88, // c0x0131 (n0x1a88-n0x1a90)  +
+	0x06a6da90, // c0x0132 (n0x1a90-n0x1a9b)  +
+	0x06a71a9b, // c0x0133 (n0x1a9b-n0x1a9c)  +
+	0x06a75a9c, // c0x0134 (n0x1a9c-n0x1a9d)  +
+	0x06b71a9d, // c0x0135 (n0x1a9d-n0x1adc)  +
+	0x06b7dadc, // c0x0136 (n0x1adc-n0x1adf)  +
+	0x06b89adf, // c0x0137 (n0x1adf-n0x1ae2)  +
+	0x06b95ae2, // c0x0138 (n0x1ae2-n0x1ae5)  +
+	0x06ba1ae5, // c0x0139 (n0x1ae5-n0x1ae8)  +
+	0x06badae8, // c0x013a (n0x1ae8-n0x1aeb)  +
+	0x06bb9aeb, // c0x013b (n0x1aeb-n0x1aee)  +
+	0x06bc5aee, // c0x013c (n0x1aee-n0x1af1)  +
+	0x06bd1af1, // c0x013d (n0x1af1-n0x1af4)  +
+	0x06bddaf4, // c0x013e (n0x1af4-n0x1af7)  +
+	0x06be9af7, // c0x013f (n0x1af7-n0x1afa)  +
+	0x06bf5afa, // c0x0140 (n0x1afa-n0x1afd)  +
+	0x06c01afd, // c0x0141 (n0x1afd-n0x1b00)  +
+	0x06c0db00, // c0x0142 (n0x1b00-n0x1b03)  +
+	0x06c15b03, // c0x0143 (n0x1b03-n0x1b05)  +
+	0x06c21b05, // c0x0144 (n0x1b05-n0x1b08)  +
+	0x06c2db08, // c0x0145 (n0x1b08-n0x1b0b)  +
+	0x06c39b0b, // c0x0146 (n0x1b0b-n0x1b0e)  +
+	0x06c45b0e, // c0x0147 (n0x1b0e-n0x1b11)  +
+	0x06c51b11, // c0x0148 (n0x1b11-n0x1b14)  +
+	0x06c5db14, // c0x0149 (n0x1b14-n0x1b17)  +
+	0x06c69b17, // c0x014a (n0x1b17-n0x1b1a)  +
+	0x06c75b1a, // c0x014b (n0x1b1a-n0x1b1d)  +
+	0x06c81b1d, // c0x014c (n0x1b1d-n0x1b20)  +
+	0x06c8db20, // c0x014d (n0x1b20-n0x1b23)  +
+	0x06c99b23, // c0x014e (n0x1b23-n0x1b26)  +
+	0x06ca5b26, // c0x014f (n0x1b26-n0x1b29)  +
+	0x06cb1b29, // c0x0150 (n0x1b29-n0x1b2c)  +
+	0x06cbdb2c, // c0x0151 (n0x1b2c-n0x1b2f)  +
+	0x06cc9b2f, // c0x0152 (n0x1b2f-n0x1b32)  +
+	0x06cd5b32, // c0x0153 (n0x1b32-n0x1b35)  +
+	0x06ce1b35, // c0x0154 (n0x1b35-n0x1b38)  +
+	0x06ce9b38, // c0x0155 (n0x1b38-n0x1b3a)  +
+	0x06cf5b3a, // c0x0156 (n0x1b3a-n0x1b3d)  +
+	0x06d01b3d, // c0x0157 (n0x1b3d-n0x1b40)  +
+	0x06d0db40, // c0x0158 (n0x1b40-n0x1b43)  +
+	0x06d19b43, // c0x0159 (n0x1b43-n0x1b46)  +
+	0x06d25b46, // c0x015a (n0x1b46-n0x1b49)  +
+	0x06d31b49, // c0x015b (n0x1b49-n0x1b4c)  +
+	0x06d3db4c, // c0x015c (n0x1b4c-n0x1b4f)  +
+	0x06d49b4f, // c0x015d (n0x1b4f-n0x1b52)  +
+	0x06d55b52, // c0x015e (n0x1b52-n0x1b55)  +
+	0x06d61b55, // c0x015f (n0x1b55-n0x1b58)  +
+	0x06d6db58, // c0x0160 (n0x1b58-n0x1b5b)  +
+	0x06d79b5b, // c0x0161 (n0x1b5b-n0x1b5e)  +
+	0x06d85b5e, // c0x0162 (n0x1b5e-n0x1b61)  +
+	0x06d8db61, // c0x0163 (n0x1b61-n0x1b63)  +
+	0x06d99b63, // c0x0164 (n0x1b63-n0x1b66)  +
+	0x06da5b66, // c0x0165 (n0x1b66-n0x1b69)  +
+	0x06db1b69, // c0x0166 (n0x1b69-n0x1b6c)  +
+	0x06dbdb6c, // c0x0167 (n0x1b6c-n0x1b6f)  +
+	0x06dc9b6f, // c0x0168 (n0x1b6f-n0x1b72)  +
+	0x06dd5b72, // c0x0169 (n0x1b72-n0x1b75)  +
+	0x06de1b75, // c0x016a (n0x1b75-n0x1b78)  +
+	0x06dedb78, // c0x016b (n0x1b78-n0x1b7b)  +
+	0x06df1b7b, // c0x016c (n0x1b7b-n0x1b7c)  +
+	0x06dfdb7c, // c0x016d (n0x1b7c-n0x1b7f)  +
+	0x06e15b7f, // c0x016e (n0x1b7f-n0x1b85)  +
+	0x06e25b85, // c0x016f (n0x1b85-n0x1b89)  +
+	0x06e3db89, // c0x0170 (n0x1b89-n0x1b8f)  +
+	0x06e81b8f, // c0x0171 (n0x1b8f-n0x1ba0)  +
+	0x06e95ba0, // c0x0172 (n0x1ba0-n0x1ba5)  +
+	0x06ec5ba5, // c0x0173 (n0x1ba5-n0x1bb1)  +
+	0x06ed5bb1, // c0x0174 (n0x1bb1-n0x1bb5)  +
+	0x06ef1bb5, // c0x0175 (n0x1bb5-n0x1bbc)  +
+	0x06f09bbc, // c0x0176 (n0x1bbc-n0x1bc2)  +
 }
 
-// max children 373 (capacity 511)
-// max text offset 23896 (capacity 32767)
+// max children 374 (capacity 511)
+// max text offset 24971 (capacity 32767)
 // max text length 36 (capacity 63)
-// max hi 6837 (capacity 16383)
-// max lo 6831 (capacity 16383)
+// max hi 7106 (capacity 16383)
+// max lo 7100 (capacity 16383)
diff --git a/go/src/golang.org/x/net/publicsuffix/table_test.go b/go/src/golang.org/x/net/publicsuffix/table_test.go
index f92963a..df2b191 100644
--- a/go/src/golang.org/x/net/publicsuffix/table_test.go
+++ b/go/src/golang.org/x/net/publicsuffix/table_test.go
@@ -1325,6 +1325,53 @@
 	"yamagata.jp",
 	"yamaguchi.jp",
 	"yamanashi.jp",
+	"xn--4pvxs.jp",
+	"xn--vgu402c.jp",
+	"xn--c3s14m.jp",
+	"xn--f6qx53a.jp",
+	"xn--8pvr4u.jp",
+	"xn--uist22h.jp",
+	"xn--djrs72d6uy.jp",
+	"xn--mkru45i.jp",
+	"xn--0trq7p7nn.jp",
+	"xn--8ltr62k.jp",
+	"xn--2m4a15e.jp",
+	"xn--efvn9s.jp",
+	"xn--32vp30h.jp",
+	"xn--4it797k.jp",
+	"xn--1lqs71d.jp",
+	"xn--5rtp49c.jp",
+	"xn--5js045d.jp",
+	"xn--ehqz56n.jp",
+	"xn--1lqs03n.jp",
+	"xn--qqqt11m.jp",
+	"xn--kbrq7o.jp",
+	"xn--pssu33l.jp",
+	"xn--ntsq17g.jp",
+	"xn--uisz3g.jp",
+	"xn--6btw5a.jp",
+	"xn--1ctwo.jp",
+	"xn--6orx2r.jp",
+	"xn--rht61e.jp",
+	"xn--rht27z.jp",
+	"xn--djty4k.jp",
+	"xn--nit225k.jp",
+	"xn--rht3d.jp",
+	"xn--klty5x.jp",
+	"xn--kltx9a.jp",
+	"xn--kltp7d.jp",
+	"xn--uuwu58a.jp",
+	"xn--zbx025d.jp",
+	"xn--ntso0iqx3a.jp",
+	"xn--elqq16h.jp",
+	"xn--4it168d.jp",
+	"xn--klt787d.jp",
+	"xn--rny31h.jp",
+	"xn--7t0a264c.jp",
+	"xn--5rtq34k.jp",
+	"xn--k7yn95e.jp",
+	"xn--tor131o.jp",
+	"xn--d5qv7z876c.jp",
 	"*.kawasaki.jp",
 	"*.kitakyushu.jp",
 	"*.kobe.jp",
@@ -4740,24 +4787,26 @@
 	"gos.pk",
 	"info.pk",
 	"pl",
+	"com.pl",
+	"net.pl",
+	"org.pl",
+	"info.pl",
+	"waw.pl",
+	"gov.pl",
 	"aid.pl",
 	"agro.pl",
 	"atm.pl",
 	"auto.pl",
 	"biz.pl",
-	"com.pl",
 	"edu.pl",
 	"gmina.pl",
 	"gsm.pl",
-	"info.pl",
 	"mail.pl",
 	"miasta.pl",
 	"media.pl",
 	"mil.pl",
-	"net.pl",
 	"nieruchomosci.pl",
 	"nom.pl",
-	"org.pl",
 	"pc.pl",
 	"powiat.pl",
 	"priv.pl",
@@ -4773,10 +4822,6 @@
 	"tourism.pl",
 	"travel.pl",
 	"turystyka.pl",
-	"6bone.pl",
-	"art.pl",
-	"mbone.pl",
-	"gov.pl",
 	"uw.gov.pl",
 	"um.gov.pl",
 	"ug.gov.pl",
@@ -4786,9 +4831,6 @@
 	"sr.gov.pl",
 	"po.gov.pl",
 	"pa.gov.pl",
-	"ngo.pl",
-	"irc.pl",
-	"usenet.pl",
 	"augustow.pl",
 	"babia-gora.pl",
 	"bedzin.pl",
@@ -4874,7 +4916,6 @@
 	"rzeszow.pl",
 	"sanok.pl",
 	"sejny.pl",
-	"siedlce.pl",
 	"slask.pl",
 	"slupsk.pl",
 	"sosnowiec.pl",
@@ -4896,7 +4937,6 @@
 	"walbrzych.pl",
 	"warmia.pl",
 	"warszawa.pl",
-	"waw.pl",
 	"wegrow.pl",
 	"wielun.pl",
 	"wlocl.pl",
@@ -4909,16 +4949,6 @@
 	"zarow.pl",
 	"zgora.pl",
 	"zgorzelec.pl",
-	"gda.pl",
-	"gdansk.pl",
-	"gdynia.pl",
-	"med.pl",
-	"sopot.pl",
-	"gliwice.pl",
-	"krakow.pl",
-	"poznan.pl",
-	"wroc.pl",
-	"zakopane.pl",
 	"pm",
 	"pn",
 	"gov.pn",
@@ -5070,7 +5100,6 @@
 	"mari-el.ru",
 	"marine.ru",
 	"mordovia.ru",
-	"mosreg.ru",
 	"msk.ru",
 	"murmansk.ru",
 	"nalchik.ru",
@@ -5886,66 +5915,98 @@
 	"*.za",
 	"*.zm",
 	"*.zw",
+	"abb",
 	"abbott",
 	"abogado",
 	"academy",
 	"accenture",
+	"accountant",
 	"accountants",
 	"active",
 	"actor",
+	"ads",
+	"adult",
+	"afl",
 	"africa",
 	"agency",
+	"aig",
 	"airforce",
+	"airtel",
 	"allfinanz",
 	"alsace",
 	"amsterdam",
+	"analytics",
 	"android",
+	"apartments",
 	"aquarelle",
+	"aramco",
 	"archi",
 	"army",
+	"arte",
 	"associates",
 	"attorney",
 	"auction",
 	"audio",
+	"author",
+	"auto",
 	"autos",
 	"axa",
+	"azure",
 	"band",
+	"bank",
 	"bar",
 	"barcelona",
+	"barclaycard",
+	"barclays",
 	"bargains",
 	"bauhaus",
 	"bayern",
+	"bbc",
+	"bbva",
 	"bcn",
 	"beer",
+	"bentley",
 	"berlin",
 	"best",
 	"bharti",
 	"bible",
 	"bid",
 	"bike",
+	"bing",
+	"bingo",
 	"bio",
 	"black",
 	"blackfriday",
 	"bloomberg",
 	"blue",
+	"bms",
 	"bmw",
 	"bnl",
 	"bnpparibas",
+	"boats",
+	"bom",
 	"bond",
 	"boo",
+	"bot",
 	"boutique",
+	"bradesco",
+	"bridgestone",
+	"broker",
 	"brussels",
 	"budapest",
 	"build",
 	"builders",
 	"business",
+	"buy",
 	"buzz",
 	"bzh",
 	"cab",
 	"cal",
+	"call",
 	"camera",
 	"camp",
 	"cancerresearch",
+	"canon",
 	"capetown",
 	"capital",
 	"caravan",
@@ -5953,9 +6014,11 @@
 	"care",
 	"career",
 	"careers",
+	"cars",
 	"cartier",
 	"casa",
 	"cash",
+	"casino",
 	"catering",
 	"cba",
 	"cbn",
@@ -5963,19 +6026,25 @@
 	"ceo",
 	"cern",
 	"cfa",
+	"cfd",
 	"channel",
+	"chat",
 	"cheap",
+	"chloe",
 	"christmas",
 	"chrome",
 	"church",
+	"circle",
 	"citic",
 	"city",
+	"cityeats",
 	"claims",
 	"cleaning",
 	"click",
 	"clinic",
 	"clothing",
 	"club",
+	"coach",
 	"codes",
 	"coffee",
 	"college",
@@ -5990,25 +6059,36 @@
 	"contractors",
 	"cooking",
 	"cool",
+	"corsica",
 	"country",
+	"courses",
 	"credit",
 	"creditcard",
+	"cricket",
+	"crown",
 	"crs",
 	"cruises",
+	"csc",
 	"cuisinella",
 	"cymru",
 	"dabur",
 	"dad",
 	"dance",
+	"date",
 	"dating",
 	"datsun",
 	"day",
+	"dclk",
 	"deals",
 	"degree",
+	"delivery",
+	"dell",
 	"democrat",
 	"dental",
 	"dentist",
 	"desi",
+	"design",
+	"dev",
 	"diamonds",
 	"diet",
 	"digital",
@@ -6016,17 +6096,25 @@
 	"directory",
 	"discount",
 	"dnp",
+	"docs",
+	"dog",
+	"doha",
 	"domains",
 	"doosan",
+	"download",
 	"durban",
 	"dvag",
+	"earth",
 	"eat",
+	"edeka",
 	"education",
 	"email",
 	"emerck",
+	"energy",
 	"engineer",
 	"engineering",
 	"enterprises",
+	"epson",
 	"equipment",
 	"erni",
 	"esq",
@@ -6038,22 +6126,35 @@
 	"exchange",
 	"expert",
 	"exposed",
+	"fage",
 	"fail",
+	"fairwinds",
+	"faith",
 	"fan",
+	"fans",
 	"farm",
 	"fashion",
+	"fast",
 	"feedback",
+	"ferrero",
+	"final",
 	"finance",
 	"financial",
+	"firestone",
 	"firmdale",
 	"fish",
 	"fishing",
+	"fit",
 	"fitness",
 	"flights",
 	"florist",
+	"flowers",
 	"flsmidth",
 	"fly",
 	"foo",
+	"football",
+	"ford",
+	"forex",
 	"forsale",
 	"foundation",
 	"frl",
@@ -6066,11 +6167,13 @@
 	"garden",
 	"gbiz",
 	"gdn",
+	"gea",
 	"gent",
 	"ggee",
 	"gift",
 	"gifts",
 	"gives",
+	"giving",
 	"glass",
 	"gle",
 	"global",
@@ -6078,34 +6181,46 @@
 	"gmail",
 	"gmo",
 	"gmx",
+	"goldpoint",
+	"golf",
+	"goo",
+	"goog",
 	"google",
 	"gop",
+	"got",
 	"graphics",
 	"gratis",
 	"green",
 	"gripe",
 	"group",
+	"gucci",
 	"guge",
 	"guide",
 	"guitars",
 	"guru",
 	"hamburg",
+	"hangout",
 	"haus",
 	"healthcare",
 	"help",
 	"here",
 	"hermes",
 	"hiphop",
+	"hitachi",
 	"hiv",
 	"holdings",
 	"holiday",
 	"homes",
+	"honda",
 	"horse",
 	"host",
 	"hosting",
+	"hotmail",
 	"house",
 	"how",
+	"hsbc",
 	"ibm",
+	"ice",
 	"ifm",
 	"iinet",
 	"immo",
@@ -6122,150 +6237,236 @@
 	"irish",
 	"ist",
 	"istanbul",
+	"itau",
 	"iwc",
+	"jaguar",
 	"java",
+	"jcb",
 	"jetzt",
+	"jlc",
 	"joburg",
+	"jot",
+	"joy",
+	"jprs",
 	"juegos",
 	"kaufen",
+	"kddi",
+	"kfh",
 	"kim",
+	"kinder",
 	"kitchen",
 	"kiwi",
 	"koeln",
 	"krd",
 	"kred",
+	"kyoto",
 	"lacaixa",
 	"land",
+	"landrover",
+	"lat",
 	"latrobe",
 	"lawyer",
 	"lds",
 	"lease",
 	"leclerc",
+	"legal",
 	"lgbt",
+	"liaison",
+	"lidl",
 	"life",
+	"lifestyle",
 	"lighting",
+	"like",
 	"limited",
 	"limo",
+	"lincoln",
+	"linde",
 	"link",
+	"live",
+	"loan",
 	"loans",
 	"london",
+	"lotte",
 	"lotto",
+	"ltd",
 	"ltda",
+	"lupin",
 	"luxe",
 	"luxury",
 	"madrid",
+	"maif",
 	"maison",
+	"man",
 	"management",
 	"mango",
 	"market",
 	"marketing",
+	"markets",
+	"marriott",
 	"media",
 	"meet",
 	"melbourne",
 	"meme",
+	"memorial",
 	"menu",
+	"meo",
 	"miami",
+	"microsoft",
 	"mini",
+	"mma",
+	"mobily",
 	"moda",
 	"moe",
+	"moi",
 	"monash",
+	"money",
 	"montblanc",
 	"mormon",
 	"mortgage",
 	"moscow",
 	"motorcycles",
 	"mov",
+	"movistar",
+	"mtn",
+	"mtpc",
+	"nadex",
 	"nagoya",
 	"navy",
 	"netbank",
 	"network",
 	"neustar",
 	"new",
+	"news",
 	"nexus",
 	"ngo",
 	"nhk",
+	"nico",
 	"ninja",
 	"nissan",
+	"norton",
+	"nowruz",
 	"nra",
 	"nrw",
+	"ntt",
 	"nyc",
+	"obi",
 	"okinawa",
+	"one",
 	"ong",
 	"onl",
 	"ooo",
 	"oracle",
 	"organic",
+	"osaka",
 	"otsuka",
 	"ovh",
+	"page",
+	"panerai",
 	"paris",
+	"pars",
 	"partners",
 	"parts",
+	"party",
 	"pharmacy",
+	"philips",
 	"photo",
 	"photography",
 	"photos",
 	"physio",
+	"piaget",
 	"pics",
 	"pictet",
 	"pictures",
+	"pin",
 	"pink",
 	"pizza",
 	"place",
 	"plumbing",
 	"pohl",
 	"poker",
+	"porn",
 	"praxi",
 	"press",
 	"prod",
 	"productions",
 	"prof",
+	"promo",
 	"properties",
 	"property",
 	"pub",
 	"qpon",
 	"quebec",
+	"racing",
+	"read",
 	"realtor",
 	"recipes",
 	"red",
+	"redstone",
 	"rehab",
 	"reise",
 	"reisen",
+	"reit",
 	"ren",
+	"rent",
 	"rentals",
 	"repair",
 	"report",
 	"republican",
 	"rest",
 	"restaurant",
+	"review",
 	"reviews",
 	"rich",
+	"ricoh",
 	"rio",
 	"rip",
+	"rocher",
 	"rocks",
 	"rodeo",
+	"room",
 	"rsvp",
 	"ruhr",
 	"ryukyu",
 	"saarland",
+	"safe",
+	"sakura",
+	"sale",
+	"salon",
 	"samsung",
+	"sandvik",
+	"sandvikcoromant",
+	"sanofi",
 	"sap",
+	"sapo",
 	"sarl",
+	"saxo",
+	"sbs",
 	"sca",
 	"scb",
 	"schmidt",
 	"scholarships",
+	"school",
 	"schule",
+	"schwarz",
+	"science",
+	"scor",
 	"scot",
 	"seat",
+	"seek",
+	"sener",
 	"services",
 	"sew",
+	"sex",
 	"sexy",
 	"sharp",
+	"shia",
 	"shiksha",
 	"shoes",
 	"shriram",
 	"singles",
 	"sky",
+	"skype",
+	"smile",
 	"social",
 	"software",
 	"sohu",
@@ -6274,43 +6475,70 @@
 	"soy",
 	"space",
 	"spiegel",
+	"spreadbetting",
+	"stada",
+	"statoil",
+	"stc",
+	"stcgroup",
+	"stockholm",
+	"study",
+	"style",
 	"supplies",
 	"supply",
 	"support",
 	"surf",
 	"surgery",
 	"suzuki",
+	"swiss",
+	"sydney",
+	"symantec",
 	"systems",
+	"tab",
 	"taipei",
 	"tatar",
 	"tattoo",
 	"tax",
+	"tci",
 	"technology",
+	"telefonica",
 	"temasek",
+	"tennis",
 	"tienda",
 	"tips",
+	"tires",
 	"tirol",
 	"today",
 	"tokyo",
 	"tools",
 	"top",
+	"toray",
 	"toshiba",
 	"town",
 	"toys",
 	"trade",
+	"trading",
 	"training",
+	"trust",
 	"tui",
+	"tushu",
+	"ubs",
 	"university",
 	"uno",
 	"uol",
 	"vacations",
+	"vana",
 	"vegas",
 	"ventures",
 	"versicherung",
 	"vet",
 	"viajes",
+	"video",
 	"villas",
+	"virgin",
 	"vision",
+	"vista",
+	"vistaprint",
+	"viva",
 	"vlaanderen",
 	"vodka",
 	"vote",
@@ -6318,7 +6546,9 @@
 	"voto",
 	"voyage",
 	"wales",
+	"walter",
 	"wang",
+	"wanggou",
 	"watch",
 	"webcam",
 	"website",
@@ -6328,12 +6558,17 @@
 	"wien",
 	"wiki",
 	"williamhill",
+	"win",
+	"windows",
 	"wme",
 	"work",
 	"works",
 	"world",
 	"wtc",
 	"wtf",
+	"xbox",
+	"xerox",
+	"xin",
 	"xn--1qqw23a",
 	"xn--30rr7y",
 	"xn--3bst00m",
@@ -6355,6 +6590,7 @@
 	"xn--czrs0t",
 	"xn--czru2d",
 	"xn--d1acj3b",
+	"xn--eckvdtc9d",
 	"xn--efvy88h",
 	"xn--fiq228c5hs",
 	"xn--fiq64b",
@@ -6362,13 +6598,20 @@
 	"xn--flw351e",
 	"xn--hxt814e",
 	"xn--i1b6b1a6a2e",
+	"xn--imr513n",
 	"xn--io0a7i",
+	"xn--kcrx77d1x4a",
 	"xn--kput3i",
+	"xn--mgba3a3ejt",
 	"xn--mgbab2bd",
+	"xn--mgbb9fbpob",
+	"xn--mgbt3dhd",
 	"xn--mxtq1m",
 	"xn--ngbc5azd",
+	"xn--ngbe9e0a",
 	"xn--nqv7f",
 	"xn--nqv7fs00ema",
+	"xn--nyqy26a",
 	"xn--p1acf",
 	"xn--q9jyb4c",
 	"xn--qcka1pmc",
@@ -6378,16 +6621,22 @@
 	"xn--vermgensberater-ctb",
 	"xn--vermgensberatung-pwb",
 	"xn--vhquv",
+	"xn--vuq861b",
 	"xn--xhq521b",
 	"xn--zfr164b",
 	"xyz",
 	"yachts",
+	"yamaxun",
 	"yandex",
+	"yodobashi",
 	"yoga",
 	"yokohama",
 	"youtube",
+	"zara",
+	"zero",
 	"zip",
 	"zone",
+	"zuerich",
 	"cloudfront.net",
 	"ap-northeast-1.compute.amazonaws.com",
 	"ap-southeast-1.compute.amazonaws.com",
@@ -6397,6 +6646,7 @@
 	"compute.amazonaws.com",
 	"compute-1.amazonaws.com",
 	"eu-west-1.compute.amazonaws.com",
+	"eu-central-1.compute.amazonaws.com",
 	"sa-east-1.compute.amazonaws.com",
 	"us-east-1.amazonaws.com",
 	"us-gov-west-1.compute.amazonaws.com",
@@ -6757,6 +7007,7 @@
 	"githubusercontent.com",
 	"ro.com",
 	"appspot.com",
+	"blogspot.ae",
 	"blogspot.be",
 	"blogspot.bj",
 	"blogspot.ca",
@@ -6771,6 +7022,7 @@
 	"blogspot.com.au",
 	"blogspot.com.br",
 	"blogspot.com.es",
+	"blogspot.com.tr",
 	"blogspot.cv",
 	"blogspot.cz",
 	"blogspot.de",
@@ -6792,6 +7044,7 @@
 	"blogspot.pt",
 	"blogspot.re",
 	"blogspot.ro",
+	"blogspot.ru",
 	"blogspot.se",
 	"blogspot.sg",
 	"blogspot.sk",
@@ -6800,6 +7053,7 @@
 	"codespot.com",
 	"googleapis.com",
 	"googlecode.com",
+	"pagespeedmobilizer.com",
 	"withgoogle.com",
 	"herokuapp.com",
 	"herokussl.com",
@@ -6815,46 +7069,72 @@
 	"nid.io",
 	"operaunite.com",
 	"outsystemscloud.com",
+	"art.pl",
+	"gliwice.pl",
+	"krakow.pl",
+	"poznan.pl",
+	"wroc.pl",
+	"zakopane.pl",
 	"rhcloud.com",
 	"service.gov.uk",
 	"priv.at",
+	"gda.pl",
+	"gdansk.pl",
+	"gdynia.pl",
+	"med.pl",
+	"sopot.pl",
+	"hk.com",
+	"hk.org",
+	"ltd.hk",
+	"inc.hk",
 	"yolasite.com",
 	"za.net",
 	"za.org",
 }
 
 var nodeLabels = [...]string{
+	"abb",
 	"abbott",
 	"abogado",
 	"ac",
 	"academy",
 	"accenture",
+	"accountant",
 	"accountants",
 	"active",
 	"actor",
 	"ad",
+	"ads",
+	"adult",
 	"ae",
 	"aero",
 	"af",
+	"afl",
 	"africa",
 	"ag",
 	"agency",
 	"ai",
+	"aig",
 	"airforce",
+	"airtel",
 	"al",
 	"allfinanz",
 	"alsace",
 	"am",
 	"amsterdam",
 	"an",
+	"analytics",
 	"android",
 	"ao",
+	"apartments",
 	"aq",
 	"aquarelle",
 	"ar",
+	"aramco",
 	"archi",
 	"army",
 	"arpa",
+	"arte",
 	"as",
 	"asia",
 	"associates",
@@ -6863,23 +7143,32 @@
 	"au",
 	"auction",
 	"audio",
+	"author",
+	"auto",
 	"autos",
 	"aw",
 	"ax",
 	"axa",
 	"az",
+	"azure",
 	"ba",
 	"band",
+	"bank",
 	"bar",
 	"barcelona",
+	"barclaycard",
+	"barclays",
 	"bargains",
 	"bauhaus",
 	"bayern",
 	"bb",
+	"bbc",
+	"bbva",
 	"bcn",
 	"bd",
 	"be",
 	"beer",
+	"bentley",
 	"berlin",
 	"best",
 	"bf",
@@ -6890,6 +7179,8 @@
 	"bible",
 	"bid",
 	"bike",
+	"bing",
+	"bingo",
 	"bio",
 	"biz",
 	"bj",
@@ -6898,15 +7189,22 @@
 	"bloomberg",
 	"blue",
 	"bm",
+	"bms",
 	"bmw",
 	"bn",
 	"bnl",
 	"bnpparibas",
 	"bo",
+	"boats",
+	"bom",
 	"bond",
 	"boo",
+	"bot",
 	"boutique",
 	"br",
+	"bradesco",
+	"bridgestone",
+	"broker",
 	"brussels",
 	"bs",
 	"bt",
@@ -6914,6 +7212,7 @@
 	"build",
 	"builders",
 	"business",
+	"buy",
 	"buzz",
 	"bv",
 	"bw",
@@ -6923,9 +7222,11 @@
 	"ca",
 	"cab",
 	"cal",
+	"call",
 	"camera",
 	"camp",
 	"cancerresearch",
+	"canon",
 	"capetown",
 	"capital",
 	"caravan",
@@ -6933,9 +7234,11 @@
 	"care",
 	"career",
 	"careers",
+	"cars",
 	"cartier",
 	"casa",
 	"cash",
+	"casino",
 	"cat",
 	"catering",
 	"cba",
@@ -6947,16 +7250,21 @@
 	"cern",
 	"cf",
 	"cfa",
+	"cfd",
 	"cg",
 	"ch",
 	"channel",
+	"chat",
 	"cheap",
+	"chloe",
 	"christmas",
 	"chrome",
 	"church",
 	"ci",
+	"circle",
 	"citic",
 	"city",
+	"cityeats",
 	"ck",
 	"cl",
 	"claims",
@@ -6968,6 +7276,7 @@
 	"cm",
 	"cn",
 	"co",
+	"coach",
 	"codes",
 	"coffee",
 	"college",
@@ -6984,12 +7293,17 @@
 	"cooking",
 	"cool",
 	"coop",
+	"corsica",
 	"country",
+	"courses",
 	"cr",
 	"credit",
 	"creditcard",
+	"cricket",
+	"crown",
 	"crs",
 	"cruises",
+	"csc",
 	"cu",
 	"cuisinella",
 	"cv",
@@ -7001,16 +7315,22 @@
 	"dabur",
 	"dad",
 	"dance",
+	"date",
 	"dating",
 	"datsun",
 	"day",
+	"dclk",
 	"de",
 	"deals",
 	"degree",
+	"delivery",
+	"dell",
 	"democrat",
 	"dental",
 	"dentist",
 	"desi",
+	"design",
+	"dev",
 	"diamonds",
 	"diet",
 	"digital",
@@ -7022,22 +7342,30 @@
 	"dm",
 	"dnp",
 	"do",
+	"docs",
+	"dog",
+	"doha",
 	"domains",
 	"doosan",
+	"download",
 	"durban",
 	"dvag",
 	"dz",
+	"earth",
 	"eat",
 	"ec",
+	"edeka",
 	"edu",
 	"education",
 	"ee",
 	"eg",
 	"email",
 	"emerck",
+	"energy",
 	"engineer",
 	"engineering",
 	"enterprises",
+	"epson",
 	"equipment",
 	"er",
 	"erni",
@@ -7053,27 +7381,40 @@
 	"exchange",
 	"expert",
 	"exposed",
+	"fage",
 	"fail",
+	"fairwinds",
+	"faith",
 	"fan",
+	"fans",
 	"farm",
 	"fashion",
+	"fast",
 	"feedback",
+	"ferrero",
 	"fi",
+	"final",
 	"finance",
 	"financial",
+	"firestone",
 	"firmdale",
 	"fish",
 	"fishing",
+	"fit",
 	"fitness",
 	"fj",
 	"fk",
 	"flights",
 	"florist",
+	"flowers",
 	"flsmidth",
 	"fly",
 	"fm",
 	"fo",
 	"foo",
+	"football",
+	"ford",
+	"forex",
 	"forsale",
 	"foundation",
 	"fr",
@@ -7091,6 +7432,7 @@
 	"gd",
 	"gdn",
 	"ge",
+	"gea",
 	"gent",
 	"gf",
 	"gg",
@@ -7100,6 +7442,7 @@
 	"gift",
 	"gifts",
 	"gives",
+	"giving",
 	"gl",
 	"glass",
 	"gle",
@@ -7110,8 +7453,13 @@
 	"gmo",
 	"gmx",
 	"gn",
+	"goldpoint",
+	"golf",
+	"goo",
+	"goog",
 	"google",
 	"gop",
+	"got",
 	"gov",
 	"gp",
 	"gq",
@@ -7124,6 +7472,7 @@
 	"gs",
 	"gt",
 	"gu",
+	"gucci",
 	"guge",
 	"guide",
 	"guitars",
@@ -7131,12 +7480,14 @@
 	"gw",
 	"gy",
 	"hamburg",
+	"hangout",
 	"haus",
 	"healthcare",
 	"help",
 	"here",
 	"hermes",
 	"hiphop",
+	"hitachi",
 	"hiv",
 	"hk",
 	"hm",
@@ -7144,15 +7495,19 @@
 	"holdings",
 	"holiday",
 	"homes",
+	"honda",
 	"horse",
 	"host",
 	"hosting",
+	"hotmail",
 	"house",
 	"how",
 	"hr",
+	"hsbc",
 	"ht",
 	"hu",
 	"ibm",
+	"ice",
 	"id",
 	"ie",
 	"ifm",
@@ -7181,22 +7536,32 @@
 	"ist",
 	"istanbul",
 	"it",
+	"itau",
 	"iwc",
+	"jaguar",
 	"java",
+	"jcb",
 	"je",
 	"jetzt",
+	"jlc",
 	"jm",
 	"jo",
 	"jobs",
 	"joburg",
+	"jot",
+	"joy",
 	"jp",
+	"jprs",
 	"juegos",
 	"kaufen",
+	"kddi",
 	"ke",
+	"kfh",
 	"kg",
 	"kh",
 	"ki",
 	"kim",
+	"kinder",
 	"kitchen",
 	"kiwi",
 	"km",
@@ -7208,10 +7573,13 @@
 	"kred",
 	"kw",
 	"ky",
+	"kyoto",
 	"kz",
 	"la",
 	"lacaixa",
 	"land",
+	"landrover",
+	"lat",
 	"latrobe",
 	"lawyer",
 	"lb",
@@ -7219,33 +7587,49 @@
 	"lds",
 	"lease",
 	"leclerc",
+	"legal",
 	"lgbt",
 	"li",
+	"liaison",
+	"lidl",
 	"life",
+	"lifestyle",
 	"lighting",
+	"like",
 	"limited",
 	"limo",
+	"lincoln",
+	"linde",
 	"link",
+	"live",
 	"lk",
+	"loan",
 	"loans",
 	"london",
+	"lotte",
 	"lotto",
 	"lr",
 	"ls",
 	"lt",
+	"ltd",
 	"ltda",
 	"lu",
+	"lupin",
 	"luxe",
 	"luxury",
 	"lv",
 	"ly",
 	"ma",
 	"madrid",
+	"maif",
 	"maison",
+	"man",
 	"management",
 	"mango",
 	"market",
 	"marketing",
+	"markets",
+	"marriott",
 	"mc",
 	"md",
 	"me",
@@ -7253,32 +7637,42 @@
 	"meet",
 	"melbourne",
 	"meme",
+	"memorial",
 	"menu",
+	"meo",
 	"mg",
 	"mh",
 	"miami",
+	"microsoft",
 	"mil",
 	"mini",
 	"mk",
 	"ml",
 	"mm",
+	"mma",
 	"mn",
 	"mo",
 	"mobi",
+	"mobily",
 	"moda",
 	"moe",
+	"moi",
 	"monash",
+	"money",
 	"montblanc",
 	"mormon",
 	"mortgage",
 	"moscow",
 	"motorcycles",
 	"mov",
+	"movistar",
 	"mp",
 	"mq",
 	"mr",
 	"ms",
 	"mt",
+	"mtn",
+	"mtpc",
 	"mu",
 	"museum",
 	"mv",
@@ -7287,6 +7681,7 @@
 	"my",
 	"mz",
 	"na",
+	"nadex",
 	"nagoya",
 	"name",
 	"navy",
@@ -7297,49 +7692,64 @@
 	"network",
 	"neustar",
 	"new",
+	"news",
 	"nexus",
 	"nf",
 	"ng",
 	"ngo",
 	"nhk",
 	"ni",
+	"nico",
 	"ninja",
 	"nissan",
 	"nl",
 	"no",
+	"norton",
+	"nowruz",
 	"np",
 	"nr",
 	"nra",
 	"nrw",
+	"ntt",
 	"nu",
 	"nyc",
 	"nz",
+	"obi",
 	"okinawa",
 	"om",
+	"one",
 	"ong",
 	"onl",
 	"ooo",
 	"oracle",
 	"org",
 	"organic",
+	"osaka",
 	"otsuka",
 	"ovh",
 	"pa",
+	"page",
+	"panerai",
 	"paris",
+	"pars",
 	"partners",
 	"parts",
+	"party",
 	"pe",
 	"pf",
 	"pg",
 	"ph",
 	"pharmacy",
+	"philips",
 	"photo",
 	"photography",
 	"photos",
 	"physio",
+	"piaget",
 	"pics",
 	"pictet",
 	"pictures",
+	"pin",
 	"pink",
 	"pizza",
 	"pk",
@@ -7350,6 +7760,7 @@
 	"pn",
 	"pohl",
 	"poker",
+	"porn",
 	"post",
 	"pr",
 	"praxi",
@@ -7358,6 +7769,7 @@
 	"prod",
 	"productions",
 	"prof",
+	"promo",
 	"properties",
 	"property",
 	"ps",
@@ -7368,27 +7780,36 @@
 	"qa",
 	"qpon",
 	"quebec",
+	"racing",
 	"re",
+	"read",
 	"realtor",
 	"recipes",
 	"red",
+	"redstone",
 	"rehab",
 	"reise",
 	"reisen",
+	"reit",
 	"ren",
+	"rent",
 	"rentals",
 	"repair",
 	"report",
 	"republican",
 	"rest",
 	"restaurant",
+	"review",
 	"reviews",
 	"rich",
+	"ricoh",
 	"rio",
 	"rip",
 	"ro",
+	"rocher",
 	"rocks",
 	"rodeo",
+	"room",
 	"rs",
 	"rsvp",
 	"ru",
@@ -7397,26 +7818,44 @@
 	"ryukyu",
 	"sa",
 	"saarland",
+	"safe",
+	"sakura",
+	"sale",
+	"salon",
 	"samsung",
+	"sandvik",
+	"sandvikcoromant",
+	"sanofi",
 	"sap",
+	"sapo",
 	"sarl",
+	"saxo",
 	"sb",
+	"sbs",
 	"sc",
 	"sca",
 	"scb",
 	"schmidt",
 	"scholarships",
+	"school",
 	"schule",
+	"schwarz",
+	"science",
+	"scor",
 	"scot",
 	"sd",
 	"se",
 	"seat",
+	"seek",
+	"sener",
 	"services",
 	"sew",
+	"sex",
 	"sexy",
 	"sg",
 	"sh",
 	"sharp",
+	"shia",
 	"shiksha",
 	"shoes",
 	"shriram",
@@ -7425,8 +7864,10 @@
 	"sj",
 	"sk",
 	"sky",
+	"skype",
 	"sl",
 	"sm",
+	"smile",
 	"sn",
 	"so",
 	"social",
@@ -7437,8 +7878,16 @@
 	"soy",
 	"space",
 	"spiegel",
+	"spreadbetting",
 	"sr",
 	"st",
+	"stada",
+	"statoil",
+	"stc",
+	"stcgroup",
+	"stockholm",
+	"study",
+	"style",
 	"su",
 	"supplies",
 	"supply",
@@ -7447,24 +7896,32 @@
 	"surgery",
 	"suzuki",
 	"sv",
+	"swiss",
 	"sx",
 	"sy",
+	"sydney",
+	"symantec",
 	"systems",
 	"sz",
+	"tab",
 	"taipei",
 	"tatar",
 	"tattoo",
 	"tax",
 	"tc",
+	"tci",
 	"td",
 	"technology",
 	"tel",
+	"telefonica",
 	"temasek",
+	"tennis",
 	"tf",
 	"tg",
 	"th",
 	"tienda",
 	"tips",
+	"tires",
 	"tirol",
 	"tj",
 	"tk",
@@ -7476,20 +7933,25 @@
 	"tokyo",
 	"tools",
 	"top",
+	"toray",
 	"toshiba",
 	"town",
 	"toys",
 	"tp",
 	"tr",
 	"trade",
+	"trading",
 	"training",
 	"travel",
+	"trust",
 	"tt",
 	"tui",
+	"tushu",
 	"tv",
 	"tw",
 	"tz",
 	"ua",
+	"ubs",
 	"ug",
 	"uk",
 	"university",
@@ -7500,6 +7962,7 @@
 	"uz",
 	"va",
 	"vacations",
+	"vana",
 	"vc",
 	"ve",
 	"vegas",
@@ -7509,8 +7972,13 @@
 	"vg",
 	"vi",
 	"viajes",
+	"video",
 	"villas",
+	"virgin",
 	"vision",
+	"vista",
+	"vistaprint",
+	"viva",
 	"vlaanderen",
 	"vn",
 	"vodka",
@@ -7520,7 +7988,9 @@
 	"voyage",
 	"vu",
 	"wales",
+	"walter",
 	"wang",
+	"wanggou",
 	"watch",
 	"webcam",
 	"website",
@@ -7531,6 +8001,8 @@
 	"wien",
 	"wiki",
 	"williamhill",
+	"win",
+	"windows",
 	"wme",
 	"work",
 	"works",
@@ -7538,6 +8010,9 @@
 	"ws",
 	"wtc",
 	"wtf",
+	"xbox",
+	"xerox",
+	"xin",
 	"xn--1qqw23a",
 	"xn--30rr7y",
 	"xn--3bst00m",
@@ -7565,6 +8040,7 @@
 	"xn--czrs0t",
 	"xn--czru2d",
 	"xn--d1acj3b",
+	"xn--eckvdtc9d",
 	"xn--efvy88h",
 	"xn--fiq228c5hs",
 	"xn--fiq64b",
@@ -7578,9 +8054,11 @@
 	"xn--h2brj9c",
 	"xn--hxt814e",
 	"xn--i1b6b1a6a2e",
+	"xn--imr513n",
 	"xn--io0a7i",
 	"xn--j1amh",
 	"xn--j6w193g",
+	"xn--kcrx77d1x4a",
 	"xn--kprw13d",
 	"xn--kpry57d",
 	"xn--kput3i",
@@ -7588,25 +8066,30 @@
 	"xn--lgbbat1ad8j",
 	"xn--mgb2ddes",
 	"xn--mgb9awbf",
+	"xn--mgba3a3ejt",
 	"xn--mgba3a4f16a",
 	"xn--mgba3a4fra",
 	"xn--mgbaam7a8h",
 	"xn--mgbab2bd",
 	"xn--mgbayh7gpa",
+	"xn--mgbb9fbpob",
 	"xn--mgbbh1a71e",
 	"xn--mgbc0a9azcg",
 	"xn--mgberp4a5d4a87g",
 	"xn--mgberp4a5d4ar",
 	"xn--mgbqly7c0a67fbc",
 	"xn--mgbqly7cvafr",
+	"xn--mgbt3dhd",
 	"xn--mgbtf8fl",
 	"xn--mgbx4cd0ab",
 	"xn--mxtq1m",
 	"xn--ngbc5azd",
+	"xn--ngbe9e0a",
 	"xn--nnx388a",
 	"xn--node",
 	"xn--nqv7f",
 	"xn--nqv7fs00ema",
+	"xn--nyqy26a",
 	"xn--o3cw4h",
 	"xn--ogbpf8fl",
 	"xn--p1acf",
@@ -7621,6 +8104,7 @@
 	"xn--vermgensberater-ctb",
 	"xn--vermgensberatung-pwb",
 	"xn--vhquv",
+	"xn--vuq861b",
 	"xn--wgbh1c",
 	"xn--wgbl6a",
 	"xn--xhq521b",
@@ -7632,16 +8116,21 @@
 	"xxx",
 	"xyz",
 	"yachts",
+	"yamaxun",
 	"yandex",
 	"ye",
+	"yodobashi",
 	"yoga",
 	"yokohama",
 	"youtube",
 	"yt",
 	"za",
+	"zara",
+	"zero",
 	"zip",
 	"zm",
 	"zone",
+	"zuerich",
 	"zw",
 	"com",
 	"edu",
@@ -7651,6 +8140,7 @@
 	"org",
 	"nom",
 	"ac",
+	"blogspot",
 	"co",
 	"gov",
 	"mil",
@@ -8242,6 +8732,7 @@
 	"gr",
 	"herokuapp",
 	"herokussl",
+	"hk",
 	"hobby-site",
 	"homelinux",
 	"homeunix",
@@ -8315,6 +8806,7 @@
 	"no",
 	"operaunite",
 	"outsystemscloud",
+	"pagespeedmobilizer",
 	"qc",
 	"rhcloud",
 	"ro",
@@ -8362,6 +8854,7 @@
 	"ap-northeast-1",
 	"ap-southeast-1",
 	"ap-southeast-2",
+	"eu-central-1",
 	"eu-west-1",
 	"sa-east-1",
 	"us-gov-west-1",
@@ -8547,6 +9040,8 @@
 	"edu",
 	"gov",
 	"idv",
+	"inc",
+	"ltd",
 	"net",
 	"org",
 	"xn--55qx5d",
@@ -9136,6 +9631,53 @@
 	"tottori",
 	"toyama",
 	"wakayama",
+	"xn--0trq7p7nn",
+	"xn--1ctwo",
+	"xn--1lqs03n",
+	"xn--1lqs71d",
+	"xn--2m4a15e",
+	"xn--32vp30h",
+	"xn--4it168d",
+	"xn--4it797k",
+	"xn--4pvxs",
+	"xn--5js045d",
+	"xn--5rtp49c",
+	"xn--5rtq34k",
+	"xn--6btw5a",
+	"xn--6orx2r",
+	"xn--7t0a264c",
+	"xn--8ltr62k",
+	"xn--8pvr4u",
+	"xn--c3s14m",
+	"xn--d5qv7z876c",
+	"xn--djrs72d6uy",
+	"xn--djty4k",
+	"xn--efvn9s",
+	"xn--ehqz56n",
+	"xn--elqq16h",
+	"xn--f6qx53a",
+	"xn--k7yn95e",
+	"xn--kbrq7o",
+	"xn--klt787d",
+	"xn--kltp7d",
+	"xn--kltx9a",
+	"xn--klty5x",
+	"xn--mkru45i",
+	"xn--nit225k",
+	"xn--ntso0iqx3a",
+	"xn--ntsq17g",
+	"xn--pssu33l",
+	"xn--qqqt11m",
+	"xn--rht27z",
+	"xn--rht3d",
+	"xn--rht61e",
+	"xn--rny31h",
+	"xn--tor131o",
+	"xn--uist22h",
+	"xn--uisz3g",
+	"xn--uuwu58a",
+	"xn--vgu402c",
+	"xn--zbx025d",
 	"yamagata",
 	"yamaguchi",
 	"yamanashi",
@@ -12534,6 +13076,7 @@
 	"from-me",
 	"game-host",
 	"gotdns",
+	"hk",
 	"hobby-site",
 	"homedns",
 	"homeftp",
@@ -12615,7 +13158,6 @@
 	"net",
 	"org",
 	"web",
-	"6bone",
 	"agro",
 	"aid",
 	"art",
@@ -12655,7 +13197,6 @@
 	"gsm",
 	"ilawa",
 	"info",
-	"irc",
 	"jaworzno",
 	"jelenia-gora",
 	"jgora",
@@ -12688,7 +13229,6 @@
 	"malopolska",
 	"mazowsze",
 	"mazury",
-	"mbone",
 	"med",
 	"media",
 	"miasta",
@@ -12698,7 +13238,6 @@
 	"mragowo",
 	"naklo",
 	"net",
-	"ngo",
 	"nieruchomosci",
 	"nom",
 	"nowaruda",
@@ -12739,7 +13278,6 @@
 	"sejny",
 	"sex",
 	"shop",
-	"siedlce",
 	"sklep",
 	"skoczow",
 	"slask",
@@ -12766,7 +13304,6 @@
 	"turek",
 	"turystyka",
 	"tychy",
-	"usenet",
 	"ustka",
 	"walbrzych",
 	"warmia",
@@ -12890,6 +13427,7 @@
 	"bashkiria",
 	"belgorod",
 	"bir",
+	"blogspot",
 	"bryansk",
 	"buryatia",
 	"cbg",
@@ -12944,7 +13482,6 @@
 	"marine",
 	"mil",
 	"mordovia",
-	"mosreg",
 	"msk",
 	"murmansk",
 	"mytis",
@@ -13221,6 +13758,7 @@
 	"tel",
 	"tv",
 	"web",
+	"blogspot",
 	"gov",
 	"aero",
 	"biz",
diff --git a/go/src/golang.org/x/net/spdy/dictionary.go b/go/src/golang.org/x/net/spdy/dictionary.go
deleted file mode 100644
index 5a5ff0e..0000000
--- a/go/src/golang.org/x/net/spdy/dictionary.go
+++ /dev/null
@@ -1,187 +0,0 @@
-// Copyright 2013 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package spdy
-
-// headerDictionary is the dictionary sent to the zlib compressor/decompressor.
-var headerDictionary = []byte{
-	0x00, 0x00, 0x00, 0x07, 0x6f, 0x70, 0x74, 0x69,
-	0x6f, 0x6e, 0x73, 0x00, 0x00, 0x00, 0x04, 0x68,
-	0x65, 0x61, 0x64, 0x00, 0x00, 0x00, 0x04, 0x70,
-	0x6f, 0x73, 0x74, 0x00, 0x00, 0x00, 0x03, 0x70,
-	0x75, 0x74, 0x00, 0x00, 0x00, 0x06, 0x64, 0x65,
-	0x6c, 0x65, 0x74, 0x65, 0x00, 0x00, 0x00, 0x05,
-	0x74, 0x72, 0x61, 0x63, 0x65, 0x00, 0x00, 0x00,
-	0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x00,
-	0x00, 0x00, 0x0e, 0x61, 0x63, 0x63, 0x65, 0x70,
-	0x74, 0x2d, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65,
-	0x74, 0x00, 0x00, 0x00, 0x0f, 0x61, 0x63, 0x63,
-	0x65, 0x70, 0x74, 0x2d, 0x65, 0x6e, 0x63, 0x6f,
-	0x64, 0x69, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x0f,
-	0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2d, 0x6c,
-	0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x00,
-	0x00, 0x00, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x70,
-	0x74, 0x2d, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73,
-	0x00, 0x00, 0x00, 0x03, 0x61, 0x67, 0x65, 0x00,
-	0x00, 0x00, 0x05, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
-	0x00, 0x00, 0x00, 0x0d, 0x61, 0x75, 0x74, 0x68,
-	0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
-	0x6e, 0x00, 0x00, 0x00, 0x0d, 0x63, 0x61, 0x63,
-	0x68, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72,
-	0x6f, 0x6c, 0x00, 0x00, 0x00, 0x0a, 0x63, 0x6f,
-	0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
-	0x00, 0x00, 0x00, 0x0c, 0x63, 0x6f, 0x6e, 0x74,
-	0x65, 0x6e, 0x74, 0x2d, 0x62, 0x61, 0x73, 0x65,
-	0x00, 0x00, 0x00, 0x10, 0x63, 0x6f, 0x6e, 0x74,
-	0x65, 0x6e, 0x74, 0x2d, 0x65, 0x6e, 0x63, 0x6f,
-	0x64, 0x69, 0x6e, 0x67, 0x00, 0x00, 0x00, 0x10,
-	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d,
-	0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65,
-	0x00, 0x00, 0x00, 0x0e, 0x63, 0x6f, 0x6e, 0x74,
-	0x65, 0x6e, 0x74, 0x2d, 0x6c, 0x65, 0x6e, 0x67,
-	0x74, 0x68, 0x00, 0x00, 0x00, 0x10, 0x63, 0x6f,
-	0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x6c, 0x6f,
-	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00,
-	0x00, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
-	0x74, 0x2d, 0x6d, 0x64, 0x35, 0x00, 0x00, 0x00,
-	0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
-	0x2d, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x00,
-	0x00, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e,
-	0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x00, 0x00,
-	0x00, 0x04, 0x64, 0x61, 0x74, 0x65, 0x00, 0x00,
-	0x00, 0x04, 0x65, 0x74, 0x61, 0x67, 0x00, 0x00,
-	0x00, 0x06, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74,
-	0x00, 0x00, 0x00, 0x07, 0x65, 0x78, 0x70, 0x69,
-	0x72, 0x65, 0x73, 0x00, 0x00, 0x00, 0x04, 0x66,
-	0x72, 0x6f, 0x6d, 0x00, 0x00, 0x00, 0x04, 0x68,
-	0x6f, 0x73, 0x74, 0x00, 0x00, 0x00, 0x08, 0x69,
-	0x66, 0x2d, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x00,
-	0x00, 0x00, 0x11, 0x69, 0x66, 0x2d, 0x6d, 0x6f,
-	0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x2d, 0x73,
-	0x69, 0x6e, 0x63, 0x65, 0x00, 0x00, 0x00, 0x0d,
-	0x69, 0x66, 0x2d, 0x6e, 0x6f, 0x6e, 0x65, 0x2d,
-	0x6d, 0x61, 0x74, 0x63, 0x68, 0x00, 0x00, 0x00,
-	0x08, 0x69, 0x66, 0x2d, 0x72, 0x61, 0x6e, 0x67,
-	0x65, 0x00, 0x00, 0x00, 0x13, 0x69, 0x66, 0x2d,
-	0x75, 0x6e, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69,
-	0x65, 0x64, 0x2d, 0x73, 0x69, 0x6e, 0x63, 0x65,
-	0x00, 0x00, 0x00, 0x0d, 0x6c, 0x61, 0x73, 0x74,
-	0x2d, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65,
-	0x64, 0x00, 0x00, 0x00, 0x08, 0x6c, 0x6f, 0x63,
-	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00,
-	0x0c, 0x6d, 0x61, 0x78, 0x2d, 0x66, 0x6f, 0x72,
-	0x77, 0x61, 0x72, 0x64, 0x73, 0x00, 0x00, 0x00,
-	0x06, 0x70, 0x72, 0x61, 0x67, 0x6d, 0x61, 0x00,
-	0x00, 0x00, 0x12, 0x70, 0x72, 0x6f, 0x78, 0x79,
-	0x2d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74,
-	0x69, 0x63, 0x61, 0x74, 0x65, 0x00, 0x00, 0x00,
-	0x13, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2d, 0x61,
-	0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x00, 0x00, 0x00, 0x05,
-	0x72, 0x61, 0x6e, 0x67, 0x65, 0x00, 0x00, 0x00,
-	0x07, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x72,
-	0x00, 0x00, 0x00, 0x0b, 0x72, 0x65, 0x74, 0x72,
-	0x79, 0x2d, 0x61, 0x66, 0x74, 0x65, 0x72, 0x00,
-	0x00, 0x00, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65,
-	0x72, 0x00, 0x00, 0x00, 0x02, 0x74, 0x65, 0x00,
-	0x00, 0x00, 0x07, 0x74, 0x72, 0x61, 0x69, 0x6c,
-	0x65, 0x72, 0x00, 0x00, 0x00, 0x11, 0x74, 0x72,
-	0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2d, 0x65,
-	0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x00,
-	0x00, 0x00, 0x07, 0x75, 0x70, 0x67, 0x72, 0x61,
-	0x64, 0x65, 0x00, 0x00, 0x00, 0x0a, 0x75, 0x73,
-	0x65, 0x72, 0x2d, 0x61, 0x67, 0x65, 0x6e, 0x74,
-	0x00, 0x00, 0x00, 0x04, 0x76, 0x61, 0x72, 0x79,
-	0x00, 0x00, 0x00, 0x03, 0x76, 0x69, 0x61, 0x00,
-	0x00, 0x00, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69,
-	0x6e, 0x67, 0x00, 0x00, 0x00, 0x10, 0x77, 0x77,
-	0x77, 0x2d, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e,
-	0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x00, 0x00,
-	0x00, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
-	0x00, 0x00, 0x00, 0x03, 0x67, 0x65, 0x74, 0x00,
-	0x00, 0x00, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
-	0x73, 0x00, 0x00, 0x00, 0x06, 0x32, 0x30, 0x30,
-	0x20, 0x4f, 0x4b, 0x00, 0x00, 0x00, 0x07, 0x76,
-	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x00, 0x00,
-	0x00, 0x08, 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31,
-	0x2e, 0x31, 0x00, 0x00, 0x00, 0x03, 0x75, 0x72,
-	0x6c, 0x00, 0x00, 0x00, 0x06, 0x70, 0x75, 0x62,
-	0x6c, 0x69, 0x63, 0x00, 0x00, 0x00, 0x0a, 0x73,
-	0x65, 0x74, 0x2d, 0x63, 0x6f, 0x6f, 0x6b, 0x69,
-	0x65, 0x00, 0x00, 0x00, 0x0a, 0x6b, 0x65, 0x65,
-	0x70, 0x2d, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x00,
-	0x00, 0x00, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69,
-	0x6e, 0x31, 0x30, 0x30, 0x31, 0x30, 0x31, 0x32,
-	0x30, 0x31, 0x32, 0x30, 0x32, 0x32, 0x30, 0x35,
-	0x32, 0x30, 0x36, 0x33, 0x30, 0x30, 0x33, 0x30,
-	0x32, 0x33, 0x30, 0x33, 0x33, 0x30, 0x34, 0x33,
-	0x30, 0x35, 0x33, 0x30, 0x36, 0x33, 0x30, 0x37,
-	0x34, 0x30, 0x32, 0x34, 0x30, 0x35, 0x34, 0x30,
-	0x36, 0x34, 0x30, 0x37, 0x34, 0x30, 0x38, 0x34,
-	0x30, 0x39, 0x34, 0x31, 0x30, 0x34, 0x31, 0x31,
-	0x34, 0x31, 0x32, 0x34, 0x31, 0x33, 0x34, 0x31,
-	0x34, 0x34, 0x31, 0x35, 0x34, 0x31, 0x36, 0x34,
-	0x31, 0x37, 0x35, 0x30, 0x32, 0x35, 0x30, 0x34,
-	0x35, 0x30, 0x35, 0x32, 0x30, 0x33, 0x20, 0x4e,
-	0x6f, 0x6e, 0x2d, 0x41, 0x75, 0x74, 0x68, 0x6f,
-	0x72, 0x69, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65,
-	0x20, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61,
-	0x74, 0x69, 0x6f, 0x6e, 0x32, 0x30, 0x34, 0x20,
-	0x4e, 0x6f, 0x20, 0x43, 0x6f, 0x6e, 0x74, 0x65,
-	0x6e, 0x74, 0x33, 0x30, 0x31, 0x20, 0x4d, 0x6f,
-	0x76, 0x65, 0x64, 0x20, 0x50, 0x65, 0x72, 0x6d,
-	0x61, 0x6e, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x34,
-	0x30, 0x30, 0x20, 0x42, 0x61, 0x64, 0x20, 0x52,
-	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x34, 0x30,
-	0x31, 0x20, 0x55, 0x6e, 0x61, 0x75, 0x74, 0x68,
-	0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x34, 0x30,
-	0x33, 0x20, 0x46, 0x6f, 0x72, 0x62, 0x69, 0x64,
-	0x64, 0x65, 0x6e, 0x34, 0x30, 0x34, 0x20, 0x4e,
-	0x6f, 0x74, 0x20, 0x46, 0x6f, 0x75, 0x6e, 0x64,
-	0x35, 0x30, 0x30, 0x20, 0x49, 0x6e, 0x74, 0x65,
-	0x72, 0x6e, 0x61, 0x6c, 0x20, 0x53, 0x65, 0x72,
-	0x76, 0x65, 0x72, 0x20, 0x45, 0x72, 0x72, 0x6f,
-	0x72, 0x35, 0x30, 0x31, 0x20, 0x4e, 0x6f, 0x74,
-	0x20, 0x49, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65,
-	0x6e, 0x74, 0x65, 0x64, 0x35, 0x30, 0x33, 0x20,
-	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x20,
-	0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61,
-	0x62, 0x6c, 0x65, 0x4a, 0x61, 0x6e, 0x20, 0x46,
-	0x65, 0x62, 0x20, 0x4d, 0x61, 0x72, 0x20, 0x41,
-	0x70, 0x72, 0x20, 0x4d, 0x61, 0x79, 0x20, 0x4a,
-	0x75, 0x6e, 0x20, 0x4a, 0x75, 0x6c, 0x20, 0x41,
-	0x75, 0x67, 0x20, 0x53, 0x65, 0x70, 0x74, 0x20,
-	0x4f, 0x63, 0x74, 0x20, 0x4e, 0x6f, 0x76, 0x20,
-	0x44, 0x65, 0x63, 0x20, 0x30, 0x30, 0x3a, 0x30,
-	0x30, 0x3a, 0x30, 0x30, 0x20, 0x4d, 0x6f, 0x6e,
-	0x2c, 0x20, 0x54, 0x75, 0x65, 0x2c, 0x20, 0x57,
-	0x65, 0x64, 0x2c, 0x20, 0x54, 0x68, 0x75, 0x2c,
-	0x20, 0x46, 0x72, 0x69, 0x2c, 0x20, 0x53, 0x61,
-	0x74, 0x2c, 0x20, 0x53, 0x75, 0x6e, 0x2c, 0x20,
-	0x47, 0x4d, 0x54, 0x63, 0x68, 0x75, 0x6e, 0x6b,
-	0x65, 0x64, 0x2c, 0x74, 0x65, 0x78, 0x74, 0x2f,
-	0x68, 0x74, 0x6d, 0x6c, 0x2c, 0x69, 0x6d, 0x61,
-	0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 0x2c, 0x69,
-	0x6d, 0x61, 0x67, 0x65, 0x2f, 0x6a, 0x70, 0x67,
-	0x2c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x67,
-	0x69, 0x66, 0x2c, 0x61, 0x70, 0x70, 0x6c, 0x69,
-	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
-	0x6d, 0x6c, 0x2c, 0x61, 0x70, 0x70, 0x6c, 0x69,
-	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x78,
-	0x68, 0x74, 0x6d, 0x6c, 0x2b, 0x78, 0x6d, 0x6c,
-	0x2c, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x70, 0x6c,
-	0x61, 0x69, 0x6e, 0x2c, 0x74, 0x65, 0x78, 0x74,
-	0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72,
-	0x69, 0x70, 0x74, 0x2c, 0x70, 0x75, 0x62, 0x6c,
-	0x69, 0x63, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74,
-	0x65, 0x6d, 0x61, 0x78, 0x2d, 0x61, 0x67, 0x65,
-	0x3d, 0x67, 0x7a, 0x69, 0x70, 0x2c, 0x64, 0x65,
-	0x66, 0x6c, 0x61, 0x74, 0x65, 0x2c, 0x73, 0x64,
-	0x63, 0x68, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65,
-	0x74, 0x3d, 0x75, 0x74, 0x66, 0x2d, 0x38, 0x63,
-	0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x69,
-	0x73, 0x6f, 0x2d, 0x38, 0x38, 0x35, 0x39, 0x2d,
-	0x31, 0x2c, 0x75, 0x74, 0x66, 0x2d, 0x2c, 0x2a,
-	0x2c, 0x65, 0x6e, 0x71, 0x3d, 0x30, 0x2e,
-}
diff --git a/go/src/golang.org/x/net/spdy/read.go b/go/src/golang.org/x/net/spdy/read.go
deleted file mode 100644
index 9359a95..0000000
--- a/go/src/golang.org/x/net/spdy/read.go
+++ /dev/null
@@ -1,348 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package spdy
-
-import (
-	"compress/zlib"
-	"encoding/binary"
-	"io"
-	"net/http"
-	"strings"
-)
-
-func (frame *SynStreamFrame) read(h ControlFrameHeader, f *Framer) error {
-	return f.readSynStreamFrame(h, frame)
-}
-
-func (frame *SynReplyFrame) read(h ControlFrameHeader, f *Framer) error {
-	return f.readSynReplyFrame(h, frame)
-}
-
-func (frame *RstStreamFrame) read(h ControlFrameHeader, f *Framer) error {
-	frame.CFHeader = h
-	if err := binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil {
-		return err
-	}
-	if err := binary.Read(f.r, binary.BigEndian, &frame.Status); err != nil {
-		return err
-	}
-	if frame.Status == 0 {
-		return &Error{InvalidControlFrame, frame.StreamId}
-	}
-	if frame.StreamId == 0 {
-		return &Error{ZeroStreamId, 0}
-	}
-	return nil
-}
-
-func (frame *SettingsFrame) read(h ControlFrameHeader, f *Framer) error {
-	frame.CFHeader = h
-	var numSettings uint32
-	if err := binary.Read(f.r, binary.BigEndian, &numSettings); err != nil {
-		return err
-	}
-	frame.FlagIdValues = make([]SettingsFlagIdValue, numSettings)
-	for i := uint32(0); i < numSettings; i++ {
-		if err := binary.Read(f.r, binary.BigEndian, &frame.FlagIdValues[i].Id); err != nil {
-			return err
-		}
-		frame.FlagIdValues[i].Flag = SettingsFlag((frame.FlagIdValues[i].Id & 0xff000000) >> 24)
-		frame.FlagIdValues[i].Id &= 0xffffff
-		if err := binary.Read(f.r, binary.BigEndian, &frame.FlagIdValues[i].Value); err != nil {
-			return err
-		}
-	}
-	return nil
-}
-
-func (frame *PingFrame) read(h ControlFrameHeader, f *Framer) error {
-	frame.CFHeader = h
-	if err := binary.Read(f.r, binary.BigEndian, &frame.Id); err != nil {
-		return err
-	}
-	if frame.Id == 0 {
-		return &Error{ZeroStreamId, 0}
-	}
-	if frame.CFHeader.Flags != 0 {
-		return &Error{InvalidControlFrame, StreamId(frame.Id)}
-	}
-	return nil
-}
-
-func (frame *GoAwayFrame) read(h ControlFrameHeader, f *Framer) error {
-	frame.CFHeader = h
-	if err := binary.Read(f.r, binary.BigEndian, &frame.LastGoodStreamId); err != nil {
-		return err
-	}
-	if frame.CFHeader.Flags != 0 {
-		return &Error{InvalidControlFrame, frame.LastGoodStreamId}
-	}
-	if frame.CFHeader.length != 8 {
-		return &Error{InvalidControlFrame, frame.LastGoodStreamId}
-	}
-	if err := binary.Read(f.r, binary.BigEndian, &frame.Status); err != nil {
-		return err
-	}
-	return nil
-}
-
-func (frame *HeadersFrame) read(h ControlFrameHeader, f *Framer) error {
-	return f.readHeadersFrame(h, frame)
-}
-
-func (frame *WindowUpdateFrame) read(h ControlFrameHeader, f *Framer) error {
-	frame.CFHeader = h
-	if err := binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil {
-		return err
-	}
-	if frame.CFHeader.Flags != 0 {
-		return &Error{InvalidControlFrame, frame.StreamId}
-	}
-	if frame.CFHeader.length != 8 {
-		return &Error{InvalidControlFrame, frame.StreamId}
-	}
-	if err := binary.Read(f.r, binary.BigEndian, &frame.DeltaWindowSize); err != nil {
-		return err
-	}
-	return nil
-}
-
-func newControlFrame(frameType ControlFrameType) (controlFrame, error) {
-	ctor, ok := cframeCtor[frameType]
-	if !ok {
-		return nil, &Error{Err: InvalidControlFrame}
-	}
-	return ctor(), nil
-}
-
-var cframeCtor = map[ControlFrameType]func() controlFrame{
-	TypeSynStream:    func() controlFrame { return new(SynStreamFrame) },
-	TypeSynReply:     func() controlFrame { return new(SynReplyFrame) },
-	TypeRstStream:    func() controlFrame { return new(RstStreamFrame) },
-	TypeSettings:     func() controlFrame { return new(SettingsFrame) },
-	TypePing:         func() controlFrame { return new(PingFrame) },
-	TypeGoAway:       func() controlFrame { return new(GoAwayFrame) },
-	TypeHeaders:      func() controlFrame { return new(HeadersFrame) },
-	TypeWindowUpdate: func() controlFrame { return new(WindowUpdateFrame) },
-}
-
-func (f *Framer) uncorkHeaderDecompressor(payloadSize int64) error {
-	if f.headerDecompressor != nil {
-		f.headerReader.N = payloadSize
-		return nil
-	}
-	f.headerReader = io.LimitedReader{R: f.r, N: payloadSize}
-	decompressor, err := zlib.NewReaderDict(&f.headerReader, []byte(headerDictionary))
-	if err != nil {
-		return err
-	}
-	f.headerDecompressor = decompressor
-	return nil
-}
-
-// ReadFrame reads SPDY encoded data and returns a decompressed Frame.
-func (f *Framer) ReadFrame() (Frame, error) {
-	var firstWord uint32
-	if err := binary.Read(f.r, binary.BigEndian, &firstWord); err != nil {
-		return nil, err
-	}
-	if firstWord&0x80000000 != 0 {
-		frameType := ControlFrameType(firstWord & 0xffff)
-		version := uint16(firstWord >> 16 & 0x7fff)
-		return f.parseControlFrame(version, frameType)
-	}
-	return f.parseDataFrame(StreamId(firstWord & 0x7fffffff))
-}
-
-func (f *Framer) parseControlFrame(version uint16, frameType ControlFrameType) (Frame, error) {
-	var length uint32
-	if err := binary.Read(f.r, binary.BigEndian, &length); err != nil {
-		return nil, err
-	}
-	flags := ControlFlags((length & 0xff000000) >> 24)
-	length &= 0xffffff
-	header := ControlFrameHeader{version, frameType, flags, length}
-	cframe, err := newControlFrame(frameType)
-	if err != nil {
-		return nil, err
-	}
-	if err = cframe.read(header, f); err != nil {
-		return nil, err
-	}
-	return cframe, nil
-}
-
-func parseHeaderValueBlock(r io.Reader, streamId StreamId) (http.Header, error) {
-	var numHeaders uint32
-	if err := binary.Read(r, binary.BigEndian, &numHeaders); err != nil {
-		return nil, err
-	}
-	var e error
-	h := make(http.Header, int(numHeaders))
-	for i := 0; i < int(numHeaders); i++ {
-		var length uint32
-		if err := binary.Read(r, binary.BigEndian, &length); err != nil {
-			return nil, err
-		}
-		nameBytes := make([]byte, length)
-		if _, err := io.ReadFull(r, nameBytes); err != nil {
-			return nil, err
-		}
-		name := string(nameBytes)
-		if name != strings.ToLower(name) {
-			e = &Error{UnlowercasedHeaderName, streamId}
-			name = strings.ToLower(name)
-		}
-		if h[name] != nil {
-			e = &Error{DuplicateHeaders, streamId}
-		}
-		if err := binary.Read(r, binary.BigEndian, &length); err != nil {
-			return nil, err
-		}
-		value := make([]byte, length)
-		if _, err := io.ReadFull(r, value); err != nil {
-			return nil, err
-		}
-		valueList := strings.Split(string(value), headerValueSeparator)
-		for _, v := range valueList {
-			h.Add(name, v)
-		}
-	}
-	if e != nil {
-		return h, e
-	}
-	return h, nil
-}
-
-func (f *Framer) readSynStreamFrame(h ControlFrameHeader, frame *SynStreamFrame) error {
-	frame.CFHeader = h
-	var err error
-	if err = binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil {
-		return err
-	}
-	if err = binary.Read(f.r, binary.BigEndian, &frame.AssociatedToStreamId); err != nil {
-		return err
-	}
-	if err = binary.Read(f.r, binary.BigEndian, &frame.Priority); err != nil {
-		return err
-	}
-	frame.Priority >>= 5
-	if err = binary.Read(f.r, binary.BigEndian, &frame.Slot); err != nil {
-		return err
-	}
-	reader := f.r
-	if !f.headerCompressionDisabled {
-		err := f.uncorkHeaderDecompressor(int64(h.length - 10))
-		if err != nil {
-			return err
-		}
-		reader = f.headerDecompressor
-	}
-	frame.Headers, err = parseHeaderValueBlock(reader, frame.StreamId)
-	if !f.headerCompressionDisabled && (err == io.EOF && f.headerReader.N == 0 || f.headerReader.N != 0) {
-		err = &Error{WrongCompressedPayloadSize, 0}
-	}
-	if err != nil {
-		return err
-	}
-	for h := range frame.Headers {
-		if invalidReqHeaders[h] {
-			return &Error{InvalidHeaderPresent, frame.StreamId}
-		}
-	}
-	if frame.StreamId == 0 {
-		return &Error{ZeroStreamId, 0}
-	}
-	return nil
-}
-
-func (f *Framer) readSynReplyFrame(h ControlFrameHeader, frame *SynReplyFrame) error {
-	frame.CFHeader = h
-	var err error
-	if err = binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil {
-		return err
-	}
-	reader := f.r
-	if !f.headerCompressionDisabled {
-		err := f.uncorkHeaderDecompressor(int64(h.length - 4))
-		if err != nil {
-			return err
-		}
-		reader = f.headerDecompressor
-	}
-	frame.Headers, err = parseHeaderValueBlock(reader, frame.StreamId)
-	if !f.headerCompressionDisabled && (err == io.EOF && f.headerReader.N == 0 || f.headerReader.N != 0) {
-		err = &Error{WrongCompressedPayloadSize, 0}
-	}
-	if err != nil {
-		return err
-	}
-	for h := range frame.Headers {
-		if invalidRespHeaders[h] {
-			return &Error{InvalidHeaderPresent, frame.StreamId}
-		}
-	}
-	if frame.StreamId == 0 {
-		return &Error{ZeroStreamId, 0}
-	}
-	return nil
-}
-
-func (f *Framer) readHeadersFrame(h ControlFrameHeader, frame *HeadersFrame) error {
-	frame.CFHeader = h
-	var err error
-	if err = binary.Read(f.r, binary.BigEndian, &frame.StreamId); err != nil {
-		return err
-	}
-	reader := f.r
-	if !f.headerCompressionDisabled {
-		err := f.uncorkHeaderDecompressor(int64(h.length - 4))
-		if err != nil {
-			return err
-		}
-		reader = f.headerDecompressor
-	}
-	frame.Headers, err = parseHeaderValueBlock(reader, frame.StreamId)
-	if !f.headerCompressionDisabled && (err == io.EOF && f.headerReader.N == 0 || f.headerReader.N != 0) {
-		err = &Error{WrongCompressedPayloadSize, 0}
-	}
-	if err != nil {
-		return err
-	}
-	var invalidHeaders map[string]bool
-	if frame.StreamId%2 == 0 {
-		invalidHeaders = invalidReqHeaders
-	} else {
-		invalidHeaders = invalidRespHeaders
-	}
-	for h := range frame.Headers {
-		if invalidHeaders[h] {
-			return &Error{InvalidHeaderPresent, frame.StreamId}
-		}
-	}
-	if frame.StreamId == 0 {
-		return &Error{ZeroStreamId, 0}
-	}
-	return nil
-}
-
-func (f *Framer) parseDataFrame(streamId StreamId) (*DataFrame, error) {
-	var length uint32
-	if err := binary.Read(f.r, binary.BigEndian, &length); err != nil {
-		return nil, err
-	}
-	var frame DataFrame
-	frame.StreamId = streamId
-	frame.Flags = DataFlags(length >> 24)
-	length &= 0xffffff
-	frame.Data = make([]byte, length)
-	if _, err := io.ReadFull(f.r, frame.Data); err != nil {
-		return nil, err
-	}
-	if frame.StreamId == 0 {
-		return nil, &Error{ZeroStreamId, 0}
-	}
-	return &frame, nil
-}
diff --git a/go/src/golang.org/x/net/spdy/spdy_test.go b/go/src/golang.org/x/net/spdy/spdy_test.go
deleted file mode 100644
index ce581f1..0000000
--- a/go/src/golang.org/x/net/spdy/spdy_test.go
+++ /dev/null
@@ -1,644 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package spdy
-
-import (
-	"bytes"
-	"compress/zlib"
-	"encoding/base64"
-	"io"
-	"io/ioutil"
-	"net/http"
-	"reflect"
-	"testing"
-)
-
-var HeadersFixture = http.Header{
-	"Url":     []string{"http://www.google.com/"},
-	"Method":  []string{"get"},
-	"Version": []string{"http/1.1"},
-}
-
-func TestHeaderParsing(t *testing.T) {
-	var headerValueBlockBuf bytes.Buffer
-	writeHeaderValueBlock(&headerValueBlockBuf, HeadersFixture)
-	const bogusStreamId = 1
-	newHeaders, err := parseHeaderValueBlock(&headerValueBlockBuf, bogusStreamId)
-	if err != nil {
-		t.Fatal("parseHeaderValueBlock:", err)
-	}
-	if !reflect.DeepEqual(HeadersFixture, newHeaders) {
-		t.Fatal("got: ", newHeaders, "\nwant: ", HeadersFixture)
-	}
-}
-
-func TestCreateParseSynStreamFrameCompressionDisable(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	// Fixture framer for no compression test.
-	framer := &Framer{
-		headerCompressionDisabled: true,
-		w:         buffer,
-		headerBuf: new(bytes.Buffer),
-		r:         buffer,
-	}
-	synStreamFrame := SynStreamFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeSynStream,
-		},
-		StreamId: 2,
-		Headers:  HeadersFixture,
-	}
-	if err := framer.WriteFrame(&synStreamFrame); err != nil {
-		t.Fatal("WriteFrame without compression:", err)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame without compression:", err)
-	}
-	parsedSynStreamFrame, ok := frame.(*SynStreamFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) {
-		t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame)
-	}
-}
-
-func TestCreateParseSynStreamFrameCompressionEnable(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	framer, err := NewFramer(buffer, buffer)
-	synStreamFrame := SynStreamFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeSynStream,
-		},
-		StreamId: 2,
-		Headers:  HeadersFixture,
-	}
-	if err != nil {
-		t.Fatal("Failed to create new framer:", err)
-	}
-	if err := framer.WriteFrame(&synStreamFrame); err != nil {
-		t.Fatal("WriteFrame with compression:", err)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame with compression:", err)
-	}
-	parsedSynStreamFrame, ok := frame.(*SynStreamFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) {
-		t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame)
-	}
-}
-
-func TestCreateParseSynReplyFrameCompressionDisable(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	framer := &Framer{
-		headerCompressionDisabled: true,
-		w:         buffer,
-		headerBuf: new(bytes.Buffer),
-		r:         buffer,
-	}
-	synReplyFrame := SynReplyFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeSynReply,
-		},
-		StreamId: 2,
-		Headers:  HeadersFixture,
-	}
-	if err := framer.WriteFrame(&synReplyFrame); err != nil {
-		t.Fatal("WriteFrame without compression:", err)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame without compression:", err)
-	}
-	parsedSynReplyFrame, ok := frame.(*SynReplyFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if !reflect.DeepEqual(synReplyFrame, *parsedSynReplyFrame) {
-		t.Fatal("got: ", *parsedSynReplyFrame, "\nwant: ", synReplyFrame)
-	}
-}
-
-func TestCreateParseSynReplyFrameCompressionEnable(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	framer, err := NewFramer(buffer, buffer)
-	synReplyFrame := SynReplyFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeSynReply,
-		},
-		StreamId: 2,
-		Headers:  HeadersFixture,
-	}
-	if err != nil {
-		t.Fatal("Failed to create new framer:", err)
-	}
-	if err := framer.WriteFrame(&synReplyFrame); err != nil {
-		t.Fatal("WriteFrame with compression:", err)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame with compression:", err)
-	}
-	parsedSynReplyFrame, ok := frame.(*SynReplyFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if !reflect.DeepEqual(synReplyFrame, *parsedSynReplyFrame) {
-		t.Fatal("got: ", *parsedSynReplyFrame, "\nwant: ", synReplyFrame)
-	}
-}
-
-func TestCreateParseRstStream(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	framer, err := NewFramer(buffer, buffer)
-	if err != nil {
-		t.Fatal("Failed to create new framer:", err)
-	}
-	rstStreamFrame := RstStreamFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeRstStream,
-		},
-		StreamId: 1,
-		Status:   InvalidStream,
-	}
-	if err := framer.WriteFrame(&rstStreamFrame); err != nil {
-		t.Fatal("WriteFrame:", err)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame:", err)
-	}
-	parsedRstStreamFrame, ok := frame.(*RstStreamFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if !reflect.DeepEqual(rstStreamFrame, *parsedRstStreamFrame) {
-		t.Fatal("got: ", *parsedRstStreamFrame, "\nwant: ", rstStreamFrame)
-	}
-}
-
-func TestCreateParseSettings(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	framer, err := NewFramer(buffer, buffer)
-	if err != nil {
-		t.Fatal("Failed to create new framer:", err)
-	}
-	settingsFrame := SettingsFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeSettings,
-		},
-		FlagIdValues: []SettingsFlagIdValue{
-			{FlagSettingsPersistValue, SettingsCurrentCwnd, 10},
-			{FlagSettingsPersisted, SettingsUploadBandwidth, 1},
-		},
-	}
-	if err := framer.WriteFrame(&settingsFrame); err != nil {
-		t.Fatal("WriteFrame:", err)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame:", err)
-	}
-	parsedSettingsFrame, ok := frame.(*SettingsFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if !reflect.DeepEqual(settingsFrame, *parsedSettingsFrame) {
-		t.Fatal("got: ", *parsedSettingsFrame, "\nwant: ", settingsFrame)
-	}
-}
-
-func TestCreateParsePing(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	framer, err := NewFramer(buffer, buffer)
-	if err != nil {
-		t.Fatal("Failed to create new framer:", err)
-	}
-	pingFrame := PingFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypePing,
-		},
-		Id: 31337,
-	}
-	if err := framer.WriteFrame(&pingFrame); err != nil {
-		t.Fatal("WriteFrame:", err)
-	}
-	if pingFrame.CFHeader.Flags != 0 {
-		t.Fatal("Incorrect frame type:", pingFrame)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame:", err)
-	}
-	parsedPingFrame, ok := frame.(*PingFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if parsedPingFrame.CFHeader.Flags != 0 {
-		t.Fatal("Parsed incorrect frame type:", parsedPingFrame)
-	}
-	if !reflect.DeepEqual(pingFrame, *parsedPingFrame) {
-		t.Fatal("got: ", *parsedPingFrame, "\nwant: ", pingFrame)
-	}
-}
-
-func TestCreateParseGoAway(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	framer, err := NewFramer(buffer, buffer)
-	if err != nil {
-		t.Fatal("Failed to create new framer:", err)
-	}
-	goAwayFrame := GoAwayFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeGoAway,
-		},
-		LastGoodStreamId: 31337,
-		Status:           1,
-	}
-	if err := framer.WriteFrame(&goAwayFrame); err != nil {
-		t.Fatal("WriteFrame:", err)
-	}
-	if goAwayFrame.CFHeader.Flags != 0 {
-		t.Fatal("Incorrect frame type:", goAwayFrame)
-	}
-	if goAwayFrame.CFHeader.length != 8 {
-		t.Fatal("Incorrect frame type:", goAwayFrame)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame:", err)
-	}
-	parsedGoAwayFrame, ok := frame.(*GoAwayFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if parsedGoAwayFrame.CFHeader.Flags != 0 {
-		t.Fatal("Incorrect frame type:", parsedGoAwayFrame)
-	}
-	if parsedGoAwayFrame.CFHeader.length != 8 {
-		t.Fatal("Incorrect frame type:", parsedGoAwayFrame)
-	}
-	if !reflect.DeepEqual(goAwayFrame, *parsedGoAwayFrame) {
-		t.Fatal("got: ", *parsedGoAwayFrame, "\nwant: ", goAwayFrame)
-	}
-}
-
-func TestCreateParseHeadersFrame(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	framer := &Framer{
-		headerCompressionDisabled: true,
-		w:         buffer,
-		headerBuf: new(bytes.Buffer),
-		r:         buffer,
-	}
-	headersFrame := HeadersFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeHeaders,
-		},
-		StreamId: 2,
-	}
-	headersFrame.Headers = HeadersFixture
-	if err := framer.WriteFrame(&headersFrame); err != nil {
-		t.Fatal("WriteFrame without compression:", err)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame without compression:", err)
-	}
-	parsedHeadersFrame, ok := frame.(*HeadersFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) {
-		t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame)
-	}
-}
-
-func TestCreateParseHeadersFrameCompressionEnable(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	headersFrame := HeadersFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeHeaders,
-		},
-		StreamId: 2,
-	}
-	headersFrame.Headers = HeadersFixture
-
-	framer, err := NewFramer(buffer, buffer)
-	if err := framer.WriteFrame(&headersFrame); err != nil {
-		t.Fatal("WriteFrame with compression:", err)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame with compression:", err)
-	}
-	parsedHeadersFrame, ok := frame.(*HeadersFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) {
-		t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame)
-	}
-}
-
-func TestCreateParseWindowUpdateFrame(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	framer, err := NewFramer(buffer, buffer)
-	if err != nil {
-		t.Fatal("Failed to create new framer:", err)
-	}
-	windowUpdateFrame := WindowUpdateFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeWindowUpdate,
-		},
-		StreamId:        31337,
-		DeltaWindowSize: 1,
-	}
-	if err := framer.WriteFrame(&windowUpdateFrame); err != nil {
-		t.Fatal("WriteFrame:", err)
-	}
-	if windowUpdateFrame.CFHeader.Flags != 0 {
-		t.Fatal("Incorrect frame type:", windowUpdateFrame)
-	}
-	if windowUpdateFrame.CFHeader.length != 8 {
-		t.Fatal("Incorrect frame type:", windowUpdateFrame)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame:", err)
-	}
-	parsedWindowUpdateFrame, ok := frame.(*WindowUpdateFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if parsedWindowUpdateFrame.CFHeader.Flags != 0 {
-		t.Fatal("Incorrect frame type:", parsedWindowUpdateFrame)
-	}
-	if parsedWindowUpdateFrame.CFHeader.length != 8 {
-		t.Fatal("Incorrect frame type:", parsedWindowUpdateFrame)
-	}
-	if !reflect.DeepEqual(windowUpdateFrame, *parsedWindowUpdateFrame) {
-		t.Fatal("got: ", *parsedWindowUpdateFrame, "\nwant: ", windowUpdateFrame)
-	}
-}
-
-func TestCreateParseDataFrame(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	framer, err := NewFramer(buffer, buffer)
-	if err != nil {
-		t.Fatal("Failed to create new framer:", err)
-	}
-	dataFrame := DataFrame{
-		StreamId: 1,
-		Data:     []byte{'h', 'e', 'l', 'l', 'o'},
-	}
-	if err := framer.WriteFrame(&dataFrame); err != nil {
-		t.Fatal("WriteFrame:", err)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame:", err)
-	}
-	parsedDataFrame, ok := frame.(*DataFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if !reflect.DeepEqual(dataFrame, *parsedDataFrame) {
-		t.Fatal("got: ", *parsedDataFrame, "\nwant: ", dataFrame)
-	}
-}
-
-func TestCompressionContextAcrossFrames(t *testing.T) {
-	buffer := new(bytes.Buffer)
-	framer, err := NewFramer(buffer, buffer)
-	if err != nil {
-		t.Fatal("Failed to create new framer:", err)
-	}
-	headersFrame := HeadersFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeHeaders,
-		},
-		StreamId: 2,
-		Headers:  HeadersFixture,
-	}
-	if err := framer.WriteFrame(&headersFrame); err != nil {
-		t.Fatal("WriteFrame (HEADERS):", err)
-	}
-	synStreamFrame := SynStreamFrame{
-		ControlFrameHeader{
-			Version,
-			TypeSynStream,
-			0, // Flags
-			0, // length
-		},
-		2,   // StreamId
-		0,   // AssociatedTOStreamID
-		0,   // Priority
-		1,   // Slot
-		nil, // Headers
-	}
-	synStreamFrame.Headers = HeadersFixture
-
-	if err := framer.WriteFrame(&synStreamFrame); err != nil {
-		t.Fatal("WriteFrame (SYN_STREAM):", err)
-	}
-	frame, err := framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame (HEADERS):", err, buffer.Bytes())
-	}
-	parsedHeadersFrame, ok := frame.(*HeadersFrame)
-	if !ok {
-		t.Fatalf("expected HeadersFrame; got %T %v", frame, frame)
-	}
-	if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) {
-		t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame)
-	}
-	frame, err = framer.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame (SYN_STREAM):", err, buffer.Bytes())
-	}
-	parsedSynStreamFrame, ok := frame.(*SynStreamFrame)
-	if !ok {
-		t.Fatalf("expected SynStreamFrame; got %T %v", frame, frame)
-	}
-	if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) {
-		t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame)
-	}
-}
-
-func TestMultipleSPDYFrames(t *testing.T) {
-	// Initialize the framers.
-	pr1, pw1 := io.Pipe()
-	pr2, pw2 := io.Pipe()
-	writer, err := NewFramer(pw1, pr2)
-	if err != nil {
-		t.Fatal("Failed to create writer:", err)
-	}
-	reader, err := NewFramer(pw2, pr1)
-	if err != nil {
-		t.Fatal("Failed to create reader:", err)
-	}
-
-	// Set up the frames we're actually transferring.
-	headersFrame := HeadersFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeHeaders,
-		},
-		StreamId: 2,
-		Headers:  HeadersFixture,
-	}
-	synStreamFrame := SynStreamFrame{
-		CFHeader: ControlFrameHeader{
-			version:   Version,
-			frameType: TypeSynStream,
-		},
-		StreamId: 2,
-		Headers:  HeadersFixture,
-	}
-
-	// Start the goroutines to write the frames.
-	go func() {
-		if err := writer.WriteFrame(&headersFrame); err != nil {
-			t.Fatal("WriteFrame (HEADERS): ", err)
-		}
-		if err := writer.WriteFrame(&synStreamFrame); err != nil {
-			t.Fatal("WriteFrame (SYN_STREAM): ", err)
-		}
-	}()
-
-	// Read the frames and verify they look as expected.
-	frame, err := reader.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame (HEADERS): ", err)
-	}
-	parsedHeadersFrame, ok := frame.(*HeadersFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type:", frame)
-	}
-	if !reflect.DeepEqual(headersFrame, *parsedHeadersFrame) {
-		t.Fatal("got: ", *parsedHeadersFrame, "\nwant: ", headersFrame)
-	}
-	frame, err = reader.ReadFrame()
-	if err != nil {
-		t.Fatal("ReadFrame (SYN_STREAM):", err)
-	}
-	parsedSynStreamFrame, ok := frame.(*SynStreamFrame)
-	if !ok {
-		t.Fatal("Parsed incorrect frame type.")
-	}
-	if !reflect.DeepEqual(synStreamFrame, *parsedSynStreamFrame) {
-		t.Fatal("got: ", *parsedSynStreamFrame, "\nwant: ", synStreamFrame)
-	}
-}
-
-func TestReadMalformedZlibHeader(t *testing.T) {
-	// These were constructed by corrupting the first byte of the zlib
-	// header after writing.
-	malformedStructs := map[string]string{
-		"SynStreamFrame": "gAIAAQAAABgAAAACAAAAAAAAF/nfolGyYmAAAAAA//8=",
-		"SynReplyFrame":  "gAIAAgAAABQAAAACAAAX+d+iUbJiYAAAAAD//w==",
-		"HeadersFrame":   "gAIACAAAABQAAAACAAAX+d+iUbJiYAAAAAD//w==",
-	}
-	for name, bad := range malformedStructs {
-		b, err := base64.StdEncoding.DecodeString(bad)
-		if err != nil {
-			t.Errorf("Unable to decode base64 encoded frame %s: %v", name, err)
-		}
-		buf := bytes.NewBuffer(b)
-		reader, err := NewFramer(buf, buf)
-		if err != nil {
-			t.Fatalf("NewFramer: %v", err)
-		}
-		_, err = reader.ReadFrame()
-		if err != zlib.ErrHeader {
-			t.Errorf("Frame %s, expected: %#v, actual: %#v", name, zlib.ErrHeader, err)
-		}
-	}
-}
-
-// TODO: these tests are too weak for updating SPDY spec. Fix me.
-
-type zeroStream struct {
-	frame   Frame
-	encoded string
-}
-
-var streamIdZeroFrames = map[string]zeroStream{
-	"SynStreamFrame": {
-		&SynStreamFrame{StreamId: 0},
-		"gAIAAQAAABgAAAAAAAAAAAAAePnfolGyYmAAAAAA//8=",
-	},
-	"SynReplyFrame": {
-		&SynReplyFrame{StreamId: 0},
-		"gAIAAgAAABQAAAAAAAB4+d+iUbJiYAAAAAD//w==",
-	},
-	"RstStreamFrame": {
-		&RstStreamFrame{StreamId: 0},
-		"gAIAAwAAAAgAAAAAAAAAAA==",
-	},
-	"HeadersFrame": {
-		&HeadersFrame{StreamId: 0},
-		"gAIACAAAABQAAAAAAAB4+d+iUbJiYAAAAAD//w==",
-	},
-	"DataFrame": {
-		&DataFrame{StreamId: 0},
-		"AAAAAAAAAAA=",
-	},
-	"PingFrame": {
-		&PingFrame{Id: 0},
-		"gAIABgAAAAQAAAAA",
-	},
-}
-
-func TestNoZeroStreamId(t *testing.T) {
-	t.Log("skipping") // TODO: update to work with SPDY3
-	return
-
-	for name, f := range streamIdZeroFrames {
-		b, err := base64.StdEncoding.DecodeString(f.encoded)
-		if err != nil {
-			t.Errorf("Unable to decode base64 encoded frame %s: %v", f, err)
-			continue
-		}
-		framer, err := NewFramer(ioutil.Discard, bytes.NewReader(b))
-		if err != nil {
-			t.Fatalf("NewFramer: %v", err)
-		}
-		err = framer.WriteFrame(f.frame)
-		checkZeroStreamId(t, name, "WriteFrame", err)
-
-		_, err = framer.ReadFrame()
-		checkZeroStreamId(t, name, "ReadFrame", err)
-	}
-}
-
-func checkZeroStreamId(t *testing.T, frame string, method string, err error) {
-	if err == nil {
-		t.Errorf("%s ZeroStreamId, no error on %s", method, frame)
-		return
-	}
-	eerr, ok := err.(*Error)
-	if !ok || eerr.Err != ZeroStreamId {
-		t.Errorf("%s ZeroStreamId, incorrect error %#v, frame %s", method, eerr, frame)
-	}
-}
diff --git a/go/src/golang.org/x/net/spdy/types.go b/go/src/golang.org/x/net/spdy/types.go
deleted file mode 100644
index f0b6d2b..0000000
--- a/go/src/golang.org/x/net/spdy/types.go
+++ /dev/null
@@ -1,275 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Package spdy implements the SPDY protocol (currently SPDY/3), described in
-// http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft3.
-package spdy // import "golang.org/x/net/spdy"
-
-import (
-	"bytes"
-	"compress/zlib"
-	"io"
-	"net/http"
-)
-
-// Version is the protocol version number that this package implements.
-const Version = 3
-
-// ControlFrameType stores the type field in a control frame header.
-type ControlFrameType uint16
-
-const (
-	TypeSynStream    ControlFrameType = 0x0001
-	TypeSynReply                      = 0x0002
-	TypeRstStream                     = 0x0003
-	TypeSettings                      = 0x0004
-	TypePing                          = 0x0006
-	TypeGoAway                        = 0x0007
-	TypeHeaders                       = 0x0008
-	TypeWindowUpdate                  = 0x0009
-)
-
-// ControlFlags are the flags that can be set on a control frame.
-type ControlFlags uint8
-
-const (
-	ControlFlagFin                   ControlFlags = 0x01
-	ControlFlagUnidirectional                     = 0x02
-	ControlFlagSettingsClearSettings              = 0x01
-)
-
-// DataFlags are the flags that can be set on a data frame.
-type DataFlags uint8
-
-const (
-	DataFlagFin DataFlags = 0x01
-)
-
-// MaxDataLength is the maximum number of bytes that can be stored in one frame.
-const MaxDataLength = 1<<24 - 1
-
-// headerValueSepator separates multiple header values.
-const headerValueSeparator = "\x00"
-
-// Frame is a single SPDY frame in its unpacked in-memory representation. Use
-// Framer to read and write it.
-type Frame interface {
-	write(f *Framer) error
-}
-
-// ControlFrameHeader contains all the fields in a control frame header,
-// in its unpacked in-memory representation.
-type ControlFrameHeader struct {
-	// Note, high bit is the "Control" bit.
-	version   uint16 // spdy version number
-	frameType ControlFrameType
-	Flags     ControlFlags
-	length    uint32 // length of data field
-}
-
-type controlFrame interface {
-	Frame
-	read(h ControlFrameHeader, f *Framer) error
-}
-
-// StreamId represents a 31-bit value identifying the stream.
-type StreamId uint32
-
-// SynStreamFrame is the unpacked, in-memory representation of a SYN_STREAM
-// frame.
-type SynStreamFrame struct {
-	CFHeader             ControlFrameHeader
-	StreamId             StreamId
-	AssociatedToStreamId StreamId // stream id for a stream which this stream is associated to
-	Priority             uint8    // priority of this frame (3-bit)
-	Slot                 uint8    // index in the server's credential vector of the client certificate
-	Headers              http.Header
-}
-
-// SynReplyFrame is the unpacked, in-memory representation of a SYN_REPLY frame.
-type SynReplyFrame struct {
-	CFHeader ControlFrameHeader
-	StreamId StreamId
-	Headers  http.Header
-}
-
-// RstStreamStatus represents the status that led to a RST_STREAM.
-type RstStreamStatus uint32
-
-const (
-	ProtocolError RstStreamStatus = iota + 1
-	InvalidStream
-	RefusedStream
-	UnsupportedVersion
-	Cancel
-	InternalError
-	FlowControlError
-	StreamInUse
-	StreamAlreadyClosed
-	InvalidCredentials
-	FrameTooLarge
-)
-
-// RstStreamFrame is the unpacked, in-memory representation of a RST_STREAM
-// frame.
-type RstStreamFrame struct {
-	CFHeader ControlFrameHeader
-	StreamId StreamId
-	Status   RstStreamStatus
-}
-
-// SettingsFlag represents a flag in a SETTINGS frame.
-type SettingsFlag uint8
-
-const (
-	FlagSettingsPersistValue SettingsFlag = 0x1
-	FlagSettingsPersisted                 = 0x2
-)
-
-// SettingsFlag represents the id of an id/value pair in a SETTINGS frame.
-type SettingsId uint32
-
-const (
-	SettingsUploadBandwidth SettingsId = iota + 1
-	SettingsDownloadBandwidth
-	SettingsRoundTripTime
-	SettingsMaxConcurrentStreams
-	SettingsCurrentCwnd
-	SettingsDownloadRetransRate
-	SettingsInitialWindowSize
-	SettingsClientCretificateVectorSize
-)
-
-// SettingsFlagIdValue is the unpacked, in-memory representation of the
-// combined flag/id/value for a setting in a SETTINGS frame.
-type SettingsFlagIdValue struct {
-	Flag  SettingsFlag
-	Id    SettingsId
-	Value uint32
-}
-
-// SettingsFrame is the unpacked, in-memory representation of a SPDY
-// SETTINGS frame.
-type SettingsFrame struct {
-	CFHeader     ControlFrameHeader
-	FlagIdValues []SettingsFlagIdValue
-}
-
-// PingFrame is the unpacked, in-memory representation of a PING frame.
-type PingFrame struct {
-	CFHeader ControlFrameHeader
-	Id       uint32 // unique id for this ping, from server is even, from client is odd.
-}
-
-// GoAwayStatus represents the status in a GoAwayFrame.
-type GoAwayStatus uint32
-
-const (
-	GoAwayOK GoAwayStatus = iota
-	GoAwayProtocolError
-	GoAwayInternalError
-)
-
-// GoAwayFrame is the unpacked, in-memory representation of a GOAWAY frame.
-type GoAwayFrame struct {
-	CFHeader         ControlFrameHeader
-	LastGoodStreamId StreamId // last stream id which was accepted by sender
-	Status           GoAwayStatus
-}
-
-// HeadersFrame is the unpacked, in-memory representation of a HEADERS frame.
-type HeadersFrame struct {
-	CFHeader ControlFrameHeader
-	StreamId StreamId
-	Headers  http.Header
-}
-
-// WindowUpdateFrame is the unpacked, in-memory representation of a
-// WINDOW_UPDATE frame.
-type WindowUpdateFrame struct {
-	CFHeader        ControlFrameHeader
-	StreamId        StreamId
-	DeltaWindowSize uint32 // additional number of bytes to existing window size
-}
-
-// TODO: Implement credential frame and related methods.
-
-// DataFrame is the unpacked, in-memory representation of a DATA frame.
-type DataFrame struct {
-	// Note, high bit is the "Control" bit. Should be 0 for data frames.
-	StreamId StreamId
-	Flags    DataFlags
-	Data     []byte // payload data of this frame
-}
-
-// A SPDY specific error.
-type ErrorCode string
-
-const (
-	UnlowercasedHeaderName     ErrorCode = "header was not lowercased"
-	DuplicateHeaders                     = "multiple headers with same name"
-	WrongCompressedPayloadSize           = "compressed payload size was incorrect"
-	UnknownFrameType                     = "unknown frame type"
-	InvalidControlFrame                  = "invalid control frame"
-	InvalidDataFrame                     = "invalid data frame"
-	InvalidHeaderPresent                 = "frame contained invalid header"
-	ZeroStreamId                         = "stream id zero is disallowed"
-)
-
-// Error contains both the type of error and additional values. StreamId is 0
-// if Error is not associated with a stream.
-type Error struct {
-	Err      ErrorCode
-	StreamId StreamId
-}
-
-func (e *Error) Error() string {
-	return string(e.Err)
-}
-
-var invalidReqHeaders = map[string]bool{
-	"Connection":        true,
-	"Host":              true,
-	"Keep-Alive":        true,
-	"Proxy-Connection":  true,
-	"Transfer-Encoding": true,
-}
-
-var invalidRespHeaders = map[string]bool{
-	"Connection":        true,
-	"Keep-Alive":        true,
-	"Proxy-Connection":  true,
-	"Transfer-Encoding": true,
-}
-
-// Framer handles serializing/deserializing SPDY frames, including compressing/
-// decompressing payloads.
-type Framer struct {
-	headerCompressionDisabled bool
-	w                         io.Writer
-	headerBuf                 *bytes.Buffer
-	headerCompressor          *zlib.Writer
-	r                         io.Reader
-	headerReader              io.LimitedReader
-	headerDecompressor        io.ReadCloser
-}
-
-// NewFramer allocates a new Framer for a given SPDY connection, represented by
-// a io.Writer and io.Reader. Note that Framer will read and write individual fields
-// from/to the Reader and Writer, so the caller should pass in an appropriately
-// buffered implementation to optimize performance.
-func NewFramer(w io.Writer, r io.Reader) (*Framer, error) {
-	compressBuf := new(bytes.Buffer)
-	compressor, err := zlib.NewWriterLevelDict(compressBuf, zlib.BestCompression, []byte(headerDictionary))
-	if err != nil {
-		return nil, err
-	}
-	framer := &Framer{
-		w:                w,
-		headerBuf:        compressBuf,
-		headerCompressor: compressor,
-		r:                r,
-	}
-	return framer, nil
-}
diff --git a/go/src/golang.org/x/net/spdy/write.go b/go/src/golang.org/x/net/spdy/write.go
deleted file mode 100644
index b212f66..0000000
--- a/go/src/golang.org/x/net/spdy/write.go
+++ /dev/null
@@ -1,318 +0,0 @@
-// Copyright 2011 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-package spdy
-
-import (
-	"encoding/binary"
-	"io"
-	"net/http"
-	"strings"
-)
-
-func (frame *SynStreamFrame) write(f *Framer) error {
-	return f.writeSynStreamFrame(frame)
-}
-
-func (frame *SynReplyFrame) write(f *Framer) error {
-	return f.writeSynReplyFrame(frame)
-}
-
-func (frame *RstStreamFrame) write(f *Framer) (err error) {
-	if frame.StreamId == 0 {
-		return &Error{ZeroStreamId, 0}
-	}
-	frame.CFHeader.version = Version
-	frame.CFHeader.frameType = TypeRstStream
-	frame.CFHeader.Flags = 0
-	frame.CFHeader.length = 8
-
-	// Serialize frame to Writer.
-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
-		return
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
-		return
-	}
-	if frame.Status == 0 {
-		return &Error{InvalidControlFrame, frame.StreamId}
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.Status); err != nil {
-		return
-	}
-	return
-}
-
-func (frame *SettingsFrame) write(f *Framer) (err error) {
-	frame.CFHeader.version = Version
-	frame.CFHeader.frameType = TypeSettings
-	frame.CFHeader.length = uint32(len(frame.FlagIdValues)*8 + 4)
-
-	// Serialize frame to Writer.
-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
-		return
-	}
-	if err = binary.Write(f.w, binary.BigEndian, uint32(len(frame.FlagIdValues))); err != nil {
-		return
-	}
-	for _, flagIdValue := range frame.FlagIdValues {
-		flagId := uint32(flagIdValue.Flag)<<24 | uint32(flagIdValue.Id)
-		if err = binary.Write(f.w, binary.BigEndian, flagId); err != nil {
-			return
-		}
-		if err = binary.Write(f.w, binary.BigEndian, flagIdValue.Value); err != nil {
-			return
-		}
-	}
-	return
-}
-
-func (frame *PingFrame) write(f *Framer) (err error) {
-	if frame.Id == 0 {
-		return &Error{ZeroStreamId, 0}
-	}
-	frame.CFHeader.version = Version
-	frame.CFHeader.frameType = TypePing
-	frame.CFHeader.Flags = 0
-	frame.CFHeader.length = 4
-
-	// Serialize frame to Writer.
-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
-		return
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.Id); err != nil {
-		return
-	}
-	return
-}
-
-func (frame *GoAwayFrame) write(f *Framer) (err error) {
-	frame.CFHeader.version = Version
-	frame.CFHeader.frameType = TypeGoAway
-	frame.CFHeader.Flags = 0
-	frame.CFHeader.length = 8
-
-	// Serialize frame to Writer.
-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
-		return
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.LastGoodStreamId); err != nil {
-		return
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.Status); err != nil {
-		return
-	}
-	return nil
-}
-
-func (frame *HeadersFrame) write(f *Framer) error {
-	return f.writeHeadersFrame(frame)
-}
-
-func (frame *WindowUpdateFrame) write(f *Framer) (err error) {
-	frame.CFHeader.version = Version
-	frame.CFHeader.frameType = TypeWindowUpdate
-	frame.CFHeader.Flags = 0
-	frame.CFHeader.length = 8
-
-	// Serialize frame to Writer.
-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
-		return
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
-		return
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.DeltaWindowSize); err != nil {
-		return
-	}
-	return nil
-}
-
-func (frame *DataFrame) write(f *Framer) error {
-	return f.writeDataFrame(frame)
-}
-
-// WriteFrame writes a frame.
-func (f *Framer) WriteFrame(frame Frame) error {
-	return frame.write(f)
-}
-
-func writeControlFrameHeader(w io.Writer, h ControlFrameHeader) error {
-	if err := binary.Write(w, binary.BigEndian, 0x8000|h.version); err != nil {
-		return err
-	}
-	if err := binary.Write(w, binary.BigEndian, h.frameType); err != nil {
-		return err
-	}
-	flagsAndLength := uint32(h.Flags)<<24 | h.length
-	if err := binary.Write(w, binary.BigEndian, flagsAndLength); err != nil {
-		return err
-	}
-	return nil
-}
-
-func writeHeaderValueBlock(w io.Writer, h http.Header) (n int, err error) {
-	n = 0
-	if err = binary.Write(w, binary.BigEndian, uint32(len(h))); err != nil {
-		return
-	}
-	n += 2
-	for name, values := range h {
-		if err = binary.Write(w, binary.BigEndian, uint32(len(name))); err != nil {
-			return
-		}
-		n += 2
-		name = strings.ToLower(name)
-		if _, err = io.WriteString(w, name); err != nil {
-			return
-		}
-		n += len(name)
-		v := strings.Join(values, headerValueSeparator)
-		if err = binary.Write(w, binary.BigEndian, uint32(len(v))); err != nil {
-			return
-		}
-		n += 2
-		if _, err = io.WriteString(w, v); err != nil {
-			return
-		}
-		n += len(v)
-	}
-	return
-}
-
-func (f *Framer) writeSynStreamFrame(frame *SynStreamFrame) (err error) {
-	if frame.StreamId == 0 {
-		return &Error{ZeroStreamId, 0}
-	}
-	// Marshal the headers.
-	var writer io.Writer = f.headerBuf
-	if !f.headerCompressionDisabled {
-		writer = f.headerCompressor
-	}
-	if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil {
-		return
-	}
-	if !f.headerCompressionDisabled {
-		f.headerCompressor.Flush()
-	}
-
-	// Set ControlFrameHeader.
-	frame.CFHeader.version = Version
-	frame.CFHeader.frameType = TypeSynStream
-	frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 10)
-
-	// Serialize frame to Writer.
-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
-		return err
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
-		return err
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.AssociatedToStreamId); err != nil {
-		return err
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.Priority<<5); err != nil {
-		return err
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.Slot); err != nil {
-		return err
-	}
-	if _, err = f.w.Write(f.headerBuf.Bytes()); err != nil {
-		return err
-	}
-	f.headerBuf.Reset()
-	return nil
-}
-
-func (f *Framer) writeSynReplyFrame(frame *SynReplyFrame) (err error) {
-	if frame.StreamId == 0 {
-		return &Error{ZeroStreamId, 0}
-	}
-	// Marshal the headers.
-	var writer io.Writer = f.headerBuf
-	if !f.headerCompressionDisabled {
-		writer = f.headerCompressor
-	}
-	if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil {
-		return
-	}
-	if !f.headerCompressionDisabled {
-		f.headerCompressor.Flush()
-	}
-
-	// Set ControlFrameHeader.
-	frame.CFHeader.version = Version
-	frame.CFHeader.frameType = TypeSynReply
-	frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 4)
-
-	// Serialize frame to Writer.
-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
-		return
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
-		return
-	}
-	if _, err = f.w.Write(f.headerBuf.Bytes()); err != nil {
-		return
-	}
-	f.headerBuf.Reset()
-	return
-}
-
-func (f *Framer) writeHeadersFrame(frame *HeadersFrame) (err error) {
-	if frame.StreamId == 0 {
-		return &Error{ZeroStreamId, 0}
-	}
-	// Marshal the headers.
-	var writer io.Writer = f.headerBuf
-	if !f.headerCompressionDisabled {
-		writer = f.headerCompressor
-	}
-	if _, err = writeHeaderValueBlock(writer, frame.Headers); err != nil {
-		return
-	}
-	if !f.headerCompressionDisabled {
-		f.headerCompressor.Flush()
-	}
-
-	// Set ControlFrameHeader.
-	frame.CFHeader.version = Version
-	frame.CFHeader.frameType = TypeHeaders
-	frame.CFHeader.length = uint32(len(f.headerBuf.Bytes()) + 4)
-
-	// Serialize frame to Writer.
-	if err = writeControlFrameHeader(f.w, frame.CFHeader); err != nil {
-		return
-	}
-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
-		return
-	}
-	if _, err = f.w.Write(f.headerBuf.Bytes()); err != nil {
-		return
-	}
-	f.headerBuf.Reset()
-	return
-}
-
-func (f *Framer) writeDataFrame(frame *DataFrame) (err error) {
-	if frame.StreamId == 0 {
-		return &Error{ZeroStreamId, 0}
-	}
-	if frame.StreamId&0x80000000 != 0 || len(frame.Data) > MaxDataLength {
-		return &Error{InvalidDataFrame, frame.StreamId}
-	}
-
-	// Serialize frame to Writer.
-	if err = binary.Write(f.w, binary.BigEndian, frame.StreamId); err != nil {
-		return
-	}
-	flagsAndLength := uint32(frame.Flags)<<24 | uint32(len(frame.Data))
-	if err = binary.Write(f.w, binary.BigEndian, flagsAndLength); err != nil {
-		return
-	}
-	if _, err = f.w.Write(frame.Data); err != nil {
-		return
-	}
-	return nil
-}
diff --git a/go/src/golang.org/x/net/trace/histogram.go b/go/src/golang.org/x/net/trace/histogram.go
new file mode 100644
index 0000000..bb42aa5
--- /dev/null
+++ b/go/src/golang.org/x/net/trace/histogram.go
@@ -0,0 +1,356 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package trace
+
+// This file implements histogramming for RPC statistics collection.
+
+import (
+	"bytes"
+	"fmt"
+	"html/template"
+	"log"
+	"math"
+
+	"golang.org/x/net/internal/timeseries"
+)
+
+const (
+	bucketCount = 38
+)
+
+// histogram keeps counts of values in buckets that are spaced
+// out in powers of 2: 0-1, 2-3, 4-7...
+// histogram implements timeseries.Observable
+type histogram struct {
+	sum          int64   // running total of measurements
+	sumOfSquares float64 // square of running total
+	buckets      []int64 // bucketed values for histogram
+	value        int     // holds a single value as an optimization
+	valueCount   int64   // number of values recorded for single value
+}
+
+// AddMeasurement records a value measurement observation to the histogram.
+func (h *histogram) addMeasurement(value int64) {
+	// TODO: assert invariant
+	h.sum += value
+	h.sumOfSquares += float64(value) * float64(value)
+
+	bucketIndex := getBucket(value)
+
+	if h.valueCount == 0 || (h.valueCount > 0 && h.value == bucketIndex) {
+		h.value = bucketIndex
+		h.valueCount++
+	} else {
+		h.allocateBuckets()
+		h.buckets[bucketIndex]++
+	}
+}
+
+func (h *histogram) allocateBuckets() {
+	if h.buckets == nil {
+		h.buckets = make([]int64, bucketCount)
+		h.buckets[h.value] = h.valueCount
+		h.value = 0
+		h.valueCount = -1
+	}
+}
+
+func log2(i int64) int {
+	n := 0
+	for ; i >= 0x100; i >>= 8 {
+		n += 8
+	}
+	for ; i > 0; i >>= 1 {
+		n += 1
+	}
+	return n
+}
+
+func getBucket(i int64) (index int) {
+	index = log2(i) - 1
+	if index < 0 {
+		index = 0
+	}
+	if index >= bucketCount {
+		index = bucketCount - 1
+	}
+	return
+}
+
+// Total returns the number of recorded observations.
+func (h *histogram) total() (total int64) {
+	if h.valueCount >= 0 {
+		total = h.valueCount
+	}
+	for _, val := range h.buckets {
+		total += int64(val)
+	}
+	return
+}
+
+// Average returns the average value of recorded observations.
+func (h *histogram) average() float64 {
+	t := h.total()
+	if t == 0 {
+		return 0
+	}
+	return float64(h.sum) / float64(t)
+}
+
+// Variance returns the variance of recorded observations.
+func (h *histogram) variance() float64 {
+	t := float64(h.total())
+	if t == 0 {
+		return 0
+	}
+	s := float64(h.sum) / t
+	return h.sumOfSquares/t - s*s
+}
+
+// StandardDeviation returns the standard deviation of recorded observations.
+func (h *histogram) standardDeviation() float64 {
+	return math.Sqrt(h.variance())
+}
+
+// PercentileBoundary estimates the value that the given fraction of recorded
+// observations are less than.
+func (h *histogram) percentileBoundary(percentile float64) int64 {
+	total := h.total()
+
+	// Corner cases (make sure result is strictly less than Total())
+	if total == 0 {
+		return 0
+	} else if total == 1 {
+		return int64(h.average())
+	}
+
+	percentOfTotal := round(float64(total) * percentile)
+	var runningTotal int64
+
+	for i := range h.buckets {
+		value := h.buckets[i]
+		runningTotal += value
+		if runningTotal == percentOfTotal {
+			// We hit an exact bucket boundary. If the next bucket has data, it is a
+			// good estimate of the value. If the bucket is empty, we interpolate the
+			// midpoint between the next bucket's boundary and the next non-zero
+			// bucket. If the remaining buckets are all empty, then we use the
+			// boundary for the next bucket as the estimate.
+			j := uint8(i + 1)
+			min := bucketBoundary(j)
+			if runningTotal < total {
+				for h.buckets[j] == 0 {
+					j++
+				}
+			}
+			max := bucketBoundary(j)
+			return min + round(float64(max-min)/2)
+		} else if runningTotal > percentOfTotal {
+			// The value is in this bucket. Interpolate the value.
+			delta := runningTotal - percentOfTotal
+			percentBucket := float64(value-delta) / float64(value)
+			bucketMin := bucketBoundary(uint8(i))
+			nextBucketMin := bucketBoundary(uint8(i + 1))
+			bucketSize := nextBucketMin - bucketMin
+			return bucketMin + round(percentBucket*float64(bucketSize))
+		}
+	}
+	return bucketBoundary(bucketCount - 1)
+}
+
+// Median returns the estimated median of the observed values.
+func (h *histogram) median() int64 {
+	return h.percentileBoundary(0.5)
+}
+
+// Add adds other to h.
+func (h *histogram) Add(other timeseries.Observable) {
+	o := other.(*histogram)
+	if o.valueCount == 0 {
+		// Other histogram is empty
+	} else if h.valueCount >= 0 && o.valueCount > 0 && h.value == o.value {
+		// Both have a single bucketed value, aggregate them
+		h.valueCount += o.valueCount
+	} else {
+		// Two different values necessitate buckets in this histogram
+		h.allocateBuckets()
+		if o.valueCount >= 0 {
+			h.buckets[o.value] += o.valueCount
+		} else {
+			for i := range h.buckets {
+				h.buckets[i] += o.buckets[i]
+			}
+		}
+	}
+	h.sumOfSquares += o.sumOfSquares
+	h.sum += o.sum
+}
+
+// Clear resets the histogram to an empty state, removing all observed values.
+func (h *histogram) Clear() {
+	h.buckets = nil
+	h.value = 0
+	h.valueCount = 0
+	h.sum = 0
+	h.sumOfSquares = 0
+}
+
+// CopyFrom copies from other, which must be a *histogram, into h.
+func (h *histogram) CopyFrom(other timeseries.Observable) {
+	o := other.(*histogram)
+	if o.valueCount == -1 {
+		h.allocateBuckets()
+		copy(h.buckets, o.buckets)
+	}
+	h.sum = o.sum
+	h.sumOfSquares = o.sumOfSquares
+	h.value = o.value
+	h.valueCount = o.valueCount
+}
+
+// Multiply scales the histogram by the specified ratio.
+func (h *histogram) Multiply(ratio float64) {
+	if h.valueCount == -1 {
+		for i := range h.buckets {
+			h.buckets[i] = int64(float64(h.buckets[i]) * ratio)
+		}
+	} else {
+		h.valueCount = int64(float64(h.valueCount) * ratio)
+	}
+	h.sum = int64(float64(h.sum) * ratio)
+	h.sumOfSquares = h.sumOfSquares * ratio
+}
+
+// New creates a new histogram.
+func (h *histogram) New() timeseries.Observable {
+	r := new(histogram)
+	r.Clear()
+	return r
+}
+
+func (h *histogram) String() string {
+	return fmt.Sprintf("%d, %f, %d, %d, %v",
+		h.sum, h.sumOfSquares, h.value, h.valueCount, h.buckets)
+}
+
+// round returns the closest int64 to the argument
+func round(in float64) int64 {
+	return int64(math.Floor(in + 0.5))
+}
+
+// bucketBoundary returns the first value in the bucket.
+func bucketBoundary(bucket uint8) int64 {
+	if bucket == 0 {
+		return 0
+	}
+	return 1 << bucket
+}
+
+// bucketData holds data about a specific bucket for use in distTmpl.
+type bucketData struct {
+	Lower, Upper       int64
+	N                  int64
+	Pct, CumulativePct float64
+	GraphWidth         int
+}
+
+// data holds data about a Distribution for use in distTmpl.
+type data struct {
+	Buckets                 []*bucketData
+	Count, Median           int64
+	Mean, StandardDeviation float64
+}
+
+// maxHTMLBarWidth is the maximum width of the HTML bar for visualizing buckets.
+const maxHTMLBarWidth = 350.0
+
+// newData returns data representing h for use in distTmpl.
+func (h *histogram) newData() *data {
+	// Force the allocation of buckets to simplify the rendering implementation
+	h.allocateBuckets()
+	// We scale the bars on the right so that the largest bar is
+	// maxHTMLBarWidth pixels in width.
+	maxBucket := int64(0)
+	for _, n := range h.buckets {
+		if n > maxBucket {
+			maxBucket = n
+		}
+	}
+	total := h.total()
+	barsizeMult := maxHTMLBarWidth / float64(maxBucket)
+	var pctMult float64
+	if total == 0 {
+		pctMult = 1.0
+	} else {
+		pctMult = 100.0 / float64(total)
+	}
+
+	buckets := make([]*bucketData, len(h.buckets))
+	runningTotal := int64(0)
+	for i, n := range h.buckets {
+		if n == 0 {
+			continue
+		}
+		runningTotal += n
+		var upperBound int64
+		if i < bucketCount-1 {
+			upperBound = bucketBoundary(uint8(i + 1))
+		} else {
+			upperBound = math.MaxInt64
+		}
+		buckets[i] = &bucketData{
+			Lower:         bucketBoundary(uint8(i)),
+			Upper:         upperBound,
+			N:             n,
+			Pct:           float64(n) * pctMult,
+			CumulativePct: float64(runningTotal) * pctMult,
+			GraphWidth:    int(float64(n) * barsizeMult),
+		}
+	}
+	return &data{
+		Buckets:           buckets,
+		Count:             total,
+		Median:            h.median(),
+		Mean:              h.average(),
+		StandardDeviation: h.standardDeviation(),
+	}
+}
+
+func (h *histogram) html() template.HTML {
+	buf := new(bytes.Buffer)
+	if err := distTmpl.Execute(buf, h.newData()); err != nil {
+		buf.Reset()
+		log.Printf("net/trace: couldn't execute template: %v", err)
+	}
+	return template.HTML(buf.String())
+}
+
+// Input: data
+var distTmpl = template.Must(template.New("distTmpl").Parse(`
+<table>
+<tr>
+    <td style="padding:0.25em">Count: {{.Count}}</td>
+    <td style="padding:0.25em">Mean: {{printf "%.0f" .Mean}}</td>
+    <td style="padding:0.25em">StdDev: {{printf "%.0f" .StandardDeviation}}</td>
+    <td style="padding:0.25em">Median: {{.Median}}</td>
+</tr>
+</table>
+<hr>
+<table>
+{{range $b := .Buckets}}
+{{if $b}}
+  <tr>
+    <td style="padding:0 0 0 0.25em">[</td>
+    <td style="text-align:right;padding:0 0.25em">{{.Lower}},</td>
+    <td style="text-align:right;padding:0 0.25em">{{.Upper}})</td>
+    <td style="text-align:right;padding:0 0.25em">{{.N}}</td>
+    <td style="text-align:right;padding:0 0.25em">{{printf "%#.3f" .Pct}}%</td>
+    <td style="text-align:right;padding:0 0.25em">{{printf "%#.3f" .CumulativePct}}%</td>
+    <td><div style="background-color: blue; height: 1em; width: {{.GraphWidth}};"></div></td>
+  </tr>
+{{end}}
+{{end}}
+</table>
+`))
diff --git a/go/src/golang.org/x/net/trace/histogram_test.go b/go/src/golang.org/x/net/trace/histogram_test.go
new file mode 100644
index 0000000..d384b93
--- /dev/null
+++ b/go/src/golang.org/x/net/trace/histogram_test.go
@@ -0,0 +1,325 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package trace
+
+import (
+	"math"
+	"testing"
+)
+
+type sumTest struct {
+	value        int64
+	sum          int64
+	sumOfSquares float64
+	total        int64
+}
+
+var sumTests = []sumTest{
+	{100, 100, 10000, 1},
+	{50, 150, 12500, 2},
+	{50, 200, 15000, 3},
+	{50, 250, 17500, 4},
+}
+
+type bucketingTest struct {
+	in     int64
+	log    int
+	bucket int
+}
+
+var bucketingTests = []bucketingTest{
+	{0, 0, 0},
+	{1, 1, 0},
+	{2, 2, 1},
+	{3, 2, 1},
+	{4, 3, 2},
+	{1000, 10, 9},
+	{1023, 10, 9},
+	{1024, 11, 10},
+	{1000000, 20, 19},
+}
+
+type multiplyTest struct {
+	in                   int64
+	ratio                float64
+	expectedSum          int64
+	expectedTotal        int64
+	expectedSumOfSquares float64
+}
+
+var multiplyTests = []multiplyTest{
+	{15, 2.5, 37, 2, 562.5},
+	{128, 4.6, 758, 13, 77953.9},
+}
+
+type percentileTest struct {
+	fraction float64
+	expected int64
+}
+
+var percentileTests = []percentileTest{
+	{0.25, 48},
+	{0.5, 96},
+	{0.6, 109},
+	{0.75, 128},
+	{0.90, 205},
+	{0.95, 230},
+	{0.99, 256},
+}
+
+func TestSum(t *testing.T) {
+	var h histogram
+
+	for _, test := range sumTests {
+		h.addMeasurement(test.value)
+		sum := h.sum
+		if sum != test.sum {
+			t.Errorf("h.Sum = %v WANT: %v", sum, test.sum)
+		}
+
+		sumOfSquares := h.sumOfSquares
+		if sumOfSquares != test.sumOfSquares {
+			t.Errorf("h.SumOfSquares = %v WANT: %v", sumOfSquares, test.sumOfSquares)
+		}
+
+		total := h.total()
+		if total != test.total {
+			t.Errorf("h.Total = %v WANT: %v", total, test.total)
+		}
+	}
+}
+
+func TestMultiply(t *testing.T) {
+	var h histogram
+	for i, test := range multiplyTests {
+		h.addMeasurement(test.in)
+		h.Multiply(test.ratio)
+		if h.sum != test.expectedSum {
+			t.Errorf("#%v: h.sum = %v WANT: %v", i, h.sum, test.expectedSum)
+		}
+		if h.total() != test.expectedTotal {
+			t.Errorf("#%v: h.total = %v WANT: %v", i, h.total(), test.expectedTotal)
+		}
+		if h.sumOfSquares != test.expectedSumOfSquares {
+			t.Errorf("#%v: h.SumOfSquares = %v WANT: %v", i, test.expectedSumOfSquares, h.sumOfSquares)
+		}
+	}
+}
+
+func TestBucketingFunctions(t *testing.T) {
+	for _, test := range bucketingTests {
+		log := log2(test.in)
+		if log != test.log {
+			t.Errorf("log2 = %v WANT: %v", log, test.log)
+		}
+
+		bucket := getBucket(test.in)
+		if bucket != test.bucket {
+			t.Errorf("getBucket = %v WANT: %v", bucket, test.bucket)
+		}
+	}
+}
+
+func TestAverage(t *testing.T) {
+	a := new(histogram)
+	average := a.average()
+	if average != 0 {
+		t.Errorf("Average of empty histogram was %v WANT: 0", average)
+	}
+
+	a.addMeasurement(1)
+	a.addMeasurement(1)
+	a.addMeasurement(3)
+	const expected = float64(5) / float64(3)
+	average = a.average()
+
+	if !isApproximate(average, expected) {
+		t.Errorf("Average = %g WANT: %v", average, expected)
+	}
+}
+
+func TestStandardDeviation(t *testing.T) {
+	a := new(histogram)
+	add(a, 10, 1<<4)
+	add(a, 10, 1<<5)
+	add(a, 10, 1<<6)
+	stdDev := a.standardDeviation()
+	const expected = 19.95
+
+	if !isApproximate(stdDev, expected) {
+		t.Errorf("StandardDeviation = %v WANT: %v", stdDev, expected)
+	}
+
+	// No values
+	a = new(histogram)
+	stdDev = a.standardDeviation()
+
+	if !isApproximate(stdDev, 0) {
+		t.Errorf("StandardDeviation = %v WANT: 0", stdDev)
+	}
+
+	add(a, 1, 1<<4)
+	if !isApproximate(stdDev, 0) {
+		t.Errorf("StandardDeviation = %v WANT: 0", stdDev)
+	}
+
+	add(a, 10, 1<<4)
+	if !isApproximate(stdDev, 0) {
+		t.Errorf("StandardDeviation = %v WANT: 0", stdDev)
+	}
+}
+
+func TestPercentileBoundary(t *testing.T) {
+	a := new(histogram)
+	add(a, 5, 1<<4)
+	add(a, 10, 1<<6)
+	add(a, 5, 1<<7)
+
+	for _, test := range percentileTests {
+		percentile := a.percentileBoundary(test.fraction)
+		if percentile != test.expected {
+			t.Errorf("h.PercentileBoundary (fraction=%v) = %v WANT: %v", test.fraction, percentile, test.expected)
+		}
+	}
+}
+
+func TestCopyFrom(t *testing.T) {
+	a := histogram{5, 25, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+		19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38}, 4, -1}
+	b := histogram{6, 36, []int64{2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+		20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39}, 5, -1}
+
+	a.CopyFrom(&b)
+
+	if a.String() != b.String() {
+		t.Errorf("a.String = %s WANT: %s", a.String(), b.String())
+	}
+}
+
+func TestClear(t *testing.T) {
+	a := histogram{5, 25, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+		19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38}, 4, -1}
+
+	a.Clear()
+
+	expected := "0, 0.000000, 0, 0, []"
+	if a.String() != expected {
+		t.Errorf("a.String = %s WANT %s", a.String(), expected)
+	}
+}
+
+func TestNew(t *testing.T) {
+	a := histogram{5, 25, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+		19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38}, 4, -1}
+	b := a.New()
+
+	expected := "0, 0.000000, 0, 0, []"
+	if b.(*histogram).String() != expected {
+		t.Errorf("b.(*histogram).String = %s WANT: %s", b.(*histogram).String(), expected)
+	}
+}
+
+func TestAdd(t *testing.T) {
+	// The tests here depend on the associativity of addMeasurement and Add.
+	// Add empty observation
+	a := histogram{5, 25, []int64{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+		19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38}, 4, -1}
+	b := a.New()
+
+	expected := a.String()
+	a.Add(b)
+	if a.String() != expected {
+		t.Errorf("a.String = %s WANT: %s", a.String(), expected)
+	}
+
+	// Add same bucketed value, no new buckets
+	c := new(histogram)
+	d := new(histogram)
+	e := new(histogram)
+	c.addMeasurement(12)
+	d.addMeasurement(11)
+	e.addMeasurement(12)
+	e.addMeasurement(11)
+	c.Add(d)
+	if c.String() != e.String() {
+		t.Errorf("c.String = %s WANT: %s", c.String(), e.String())
+	}
+
+	// Add bucketed values
+	f := new(histogram)
+	g := new(histogram)
+	h := new(histogram)
+	f.addMeasurement(4)
+	f.addMeasurement(12)
+	f.addMeasurement(100)
+	g.addMeasurement(18)
+	g.addMeasurement(36)
+	g.addMeasurement(255)
+	h.addMeasurement(4)
+	h.addMeasurement(12)
+	h.addMeasurement(100)
+	h.addMeasurement(18)
+	h.addMeasurement(36)
+	h.addMeasurement(255)
+	f.Add(g)
+	if f.String() != h.String() {
+		t.Errorf("f.String = %q WANT: %q", f.String(), h.String())
+	}
+
+	// add buckets to no buckets
+	i := new(histogram)
+	j := new(histogram)
+	k := new(histogram)
+	j.addMeasurement(18)
+	j.addMeasurement(36)
+	j.addMeasurement(255)
+	k.addMeasurement(18)
+	k.addMeasurement(36)
+	k.addMeasurement(255)
+	i.Add(j)
+	if i.String() != k.String() {
+		t.Errorf("i.String = %q WANT: %q", i.String(), k.String())
+	}
+
+	// add buckets to single value (no overlap)
+	l := new(histogram)
+	m := new(histogram)
+	n := new(histogram)
+	l.addMeasurement(0)
+	m.addMeasurement(18)
+	m.addMeasurement(36)
+	m.addMeasurement(255)
+	n.addMeasurement(0)
+	n.addMeasurement(18)
+	n.addMeasurement(36)
+	n.addMeasurement(255)
+	l.Add(m)
+	if l.String() != n.String() {
+		t.Errorf("l.String = %q WANT: %q", l.String(), n.String())
+	}
+
+	// mixed order
+	o := new(histogram)
+	p := new(histogram)
+	o.addMeasurement(0)
+	o.addMeasurement(2)
+	o.addMeasurement(0)
+	p.addMeasurement(0)
+	p.addMeasurement(0)
+	p.addMeasurement(2)
+	if o.String() != p.String() {
+		t.Errorf("o.String = %q WANT: %q", o.String(), p.String())
+	}
+}
+
+func add(h *histogram, times int, val int64) {
+	for i := 0; i < times; i++ {
+		h.addMeasurement(val)
+	}
+}
+
+func isApproximate(x, y float64) bool {
+	return math.Abs(x-y) < 1e-2
+}
diff --git a/go/src/golang.org/x/net/trace/trace.go b/go/src/golang.org/x/net/trace/trace.go
new file mode 100644
index 0000000..0bd8d1e
--- /dev/null
+++ b/go/src/golang.org/x/net/trace/trace.go
@@ -0,0 +1,1004 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+/*
+Package trace implements tracing of requests.
+It exports an HTTP interface on /debug/requests.
+
+A request handler might be implemented like this:
+	func myHandler(w http.ResponseWriter, req *http.Request) {
+		tr := trace.New("Received", req.URL.Path)
+		defer tr.Finish()
+		...
+		tr.LazyPrintf("some event %q happened", str)
+		...
+		if err := somethingImportant(); err != nil {
+			tr.LazyPrintf("somethingImportant failed: %v", err)
+			tr.SetError()
+		}
+	}
+*/
+package trace // import "golang.org/x/net/trace"
+
+import (
+	"bytes"
+	"fmt"
+	"html/template"
+	"io"
+	"log"
+	"net"
+	"net/http"
+	"runtime"
+	"sort"
+	"strconv"
+	"sync"
+	"sync/atomic"
+	"time"
+
+	"golang.org/x/net/context"
+	"golang.org/x/net/internal/timeseries"
+)
+
+// DebugUseAfterFinish controls whether to debug uses of Trace values after finishing.
+// FOR DEBUGGING ONLY. This will slow down the program.
+var DebugUseAfterFinish = false
+
+// AuthRequest determines whether a specific request is permitted to load the /debug/requests page.
+// It returns two bools; the first indicates whether the page may be viewed at all,
+// and the second indicates whether sensitive events will be shown.
+//
+// AuthRequest may be replaced by a program to customise its authorisation requirements.
+//
+// The default AuthRequest function returns (true, true) iff the request comes from localhost/127.0.0.1/[::1].
+var AuthRequest = func(req *http.Request) (any, sensitive bool) {
+	host, _, err := net.SplitHostPort(req.RemoteAddr)
+	switch {
+	case err != nil: // Badly formed address; fail closed.
+		return false, false
+	case host == "localhost" || host == "127.0.0.1" || host == "::1":
+		return true, true
+	default:
+		return false, false
+	}
+}
+
+func init() {
+	http.HandleFunc("/debug/requests", func(w http.ResponseWriter, req *http.Request) {
+		any, sensitive := AuthRequest(req)
+		if !any {
+			http.Error(w, "not allowed", http.StatusUnauthorized)
+			return
+		}
+		render(w, req, sensitive)
+	})
+}
+
+// render renders the HTML page.
+// req may be nil.
+func render(w io.Writer, req *http.Request, sensitive bool) {
+	data := &struct {
+		Families         []string
+		ActiveTraceCount map[string]int
+		CompletedTraces  map[string]*family
+
+		// Set when a bucket has been selected.
+		Traces        traceList
+		Family        string
+		Bucket        int
+		Expanded      bool
+		Traced        bool
+		Active        bool
+		ShowSensitive bool // whether to show sensitive events
+
+		Histogram       template.HTML
+		HistogramWindow string // e.g. "last minute", "last hour", "all time"
+
+		// If non-zero, the set of traces is a partial set,
+		// and this is the total number.
+		Total int
+	}{
+		CompletedTraces: completedTraces,
+	}
+
+	data.ShowSensitive = sensitive
+	if req != nil {
+		// Allow show_sensitive=0 to force hiding of sensitive data for testing.
+		// This only goes one way; you can't use show_sensitive=1 to see things.
+		if req.FormValue("show_sensitive") == "0" {
+			data.ShowSensitive = false
+		}
+
+		if exp, err := strconv.ParseBool(req.FormValue("exp")); err == nil {
+			data.Expanded = exp
+		}
+		if exp, err := strconv.ParseBool(req.FormValue("rtraced")); err == nil {
+			data.Traced = exp
+		}
+	}
+
+	completedMu.RLock()
+	data.Families = make([]string, 0, len(completedTraces))
+	for fam, _ := range completedTraces {
+		data.Families = append(data.Families, fam)
+	}
+	completedMu.RUnlock()
+	sort.Strings(data.Families)
+
+	// We are careful here to minimize the time spent locking activeMu,
+	// since that lock is required every time an RPC starts and finishes.
+	data.ActiveTraceCount = make(map[string]int, len(data.Families))
+	activeMu.RLock()
+	for fam, s := range activeTraces {
+		data.ActiveTraceCount[fam] = s.Len()
+	}
+	activeMu.RUnlock()
+
+	var ok bool
+	data.Family, data.Bucket, ok = parseArgs(req)
+	switch {
+	case !ok:
+		// No-op
+	case data.Bucket == -1:
+		data.Active = true
+		n := data.ActiveTraceCount[data.Family]
+		data.Traces = getActiveTraces(data.Family)
+		if len(data.Traces) < n {
+			data.Total = n
+		}
+	case data.Bucket < bucketsPerFamily:
+		if b := lookupBucket(data.Family, data.Bucket); b != nil {
+			data.Traces = b.Copy(data.Traced)
+		}
+	default:
+		if f := getFamily(data.Family, false); f != nil {
+			var obs timeseries.Observable
+			f.LatencyMu.RLock()
+			switch o := data.Bucket - bucketsPerFamily; o {
+			case 0:
+				obs = f.Latency.Minute()
+				data.HistogramWindow = "last minute"
+			case 1:
+				obs = f.Latency.Hour()
+				data.HistogramWindow = "last hour"
+			case 2:
+				obs = f.Latency.Total()
+				data.HistogramWindow = "all time"
+			}
+			f.LatencyMu.RUnlock()
+			if obs != nil {
+				data.Histogram = obs.(*histogram).html()
+			}
+		}
+	}
+
+	if data.Traces != nil {
+		defer data.Traces.Free()
+		sort.Sort(data.Traces)
+	}
+
+	completedMu.RLock()
+	defer completedMu.RUnlock()
+	if err := pageTmpl.ExecuteTemplate(w, "Page", data); err != nil {
+		log.Printf("net/trace: Failed executing template: %v", err)
+	}
+}
+
+func parseArgs(req *http.Request) (fam string, b int, ok bool) {
+	if req == nil {
+		return "", 0, false
+	}
+	fam, bStr := req.FormValue("fam"), req.FormValue("b")
+	if fam == "" || bStr == "" {
+		return "", 0, false
+	}
+	b, err := strconv.Atoi(bStr)
+	if err != nil || b < -1 {
+		return "", 0, false
+	}
+
+	return fam, b, true
+}
+
+func lookupBucket(fam string, b int) *traceBucket {
+	f := getFamily(fam, false)
+	if f == nil || b < 0 || b >= len(f.Buckets) {
+		return nil
+	}
+	return f.Buckets[b]
+}
+
+type contextKeyT string
+
+var contextKey = contextKeyT("golang.org/x/net/trace.Trace")
+
+// NewContext returns a copy of the parent context
+// and associates it with a Trace.
+func NewContext(ctx context.Context, tr Trace) context.Context {
+	return context.WithValue(ctx, contextKey, tr)
+}
+
+// FromContext returns the Trace bound to the context, if any.
+func FromContext(ctx context.Context) (tr Trace, ok bool) {
+	tr, ok = ctx.Value(contextKey).(Trace)
+	return
+}
+
+// Trace represents an active request.
+type Trace interface {
+	// LazyLog adds x to the event log. It will be evaluated each time the
+	// /debug/requests page is rendered. Any memory referenced by x will be
+	// pinned until the trace is finished and later discarded.
+	LazyLog(x fmt.Stringer, sensitive bool)
+
+	// LazyPrintf evaluates its arguments with fmt.Sprintf each time the
+	// /debug/requests page is rendered. Any memory referenced by a will be
+	// pinned until the trace is finished and later discarded.
+	LazyPrintf(format string, a ...interface{})
+
+	// SetError declares that this trace resulted in an error.
+	SetError()
+
+	// SetRecycler sets a recycler for the trace.
+	// f will be called for each event passed to LazyLog at a time when
+	// it is no longer required, whether while the trace is still active
+	// and the event is discarded, or when a completed trace is discarded.
+	SetRecycler(f func(interface{}))
+
+	// SetTraceInfo sets the trace info for the trace.
+	// This is currently unused.
+	SetTraceInfo(traceID, spanID uint64)
+
+	// SetMaxEvents sets the maximum number of events that will be stored
+	// in the trace. This has no effect if any events have already been
+	// added to the trace.
+	SetMaxEvents(m int)
+
+	// Finish declares that this trace is complete.
+	// The trace should not be used after calling this method.
+	Finish()
+}
+
+type lazySprintf struct {
+	format string
+	a      []interface{}
+}
+
+func (l *lazySprintf) String() string {
+	return fmt.Sprintf(l.format, l.a...)
+}
+
+// New returns a new Trace with the specified family and title.
+func New(family, title string) Trace {
+	tr := newTrace()
+	tr.ref()
+	tr.Family, tr.Title = family, title
+	tr.Start = time.Now()
+	tr.events = make([]event, 0, maxEventsPerTrace)
+
+	activeMu.RLock()
+	s := activeTraces[tr.Family]
+	activeMu.RUnlock()
+	if s == nil {
+		activeMu.Lock()
+		s = activeTraces[tr.Family] // check again
+		if s == nil {
+			s = new(traceSet)
+			activeTraces[tr.Family] = s
+		}
+		activeMu.Unlock()
+	}
+	s.Add(tr)
+
+	// Trigger allocation of the completed trace structure for this family.
+	// This will cause the family to be present in the request page during
+	// the first trace of this family. We don't care about the return value,
+	// nor is there any need for this to run inline, so we execute it in its
+	// own goroutine, but only if the family isn't allocated yet.
+	completedMu.RLock()
+	if _, ok := completedTraces[tr.Family]; !ok {
+		go allocFamily(tr.Family)
+	}
+	completedMu.RUnlock()
+
+	return tr
+}
+
+func (tr *trace) Finish() {
+	tr.Elapsed = time.Now().Sub(tr.Start)
+	if DebugUseAfterFinish {
+		buf := make([]byte, 4<<10) // 4 KB should be enough
+		n := runtime.Stack(buf, false)
+		tr.finishStack = buf[:n]
+	}
+
+	activeMu.RLock()
+	m := activeTraces[tr.Family]
+	activeMu.RUnlock()
+	m.Remove(tr)
+
+	f := getFamily(tr.Family, true)
+	for _, b := range f.Buckets {
+		if b.Cond.match(tr) {
+			b.Add(tr)
+		}
+	}
+	// Add a sample of elapsed time as microseconds to the family's timeseries
+	h := new(histogram)
+	h.addMeasurement(tr.Elapsed.Nanoseconds() / 1e3)
+	f.LatencyMu.Lock()
+	f.Latency.Add(h)
+	f.LatencyMu.Unlock()
+
+	tr.unref() // matches ref in New
+}
+
+const (
+	bucketsPerFamily    = 9
+	tracesPerBucket     = 10
+	maxActiveTraces     = 20 // Maximum number of active traces to show.
+	maxEventsPerTrace   = 10
+	numHistogramBuckets = 38
+)
+
+var (
+	// The active traces.
+	activeMu     sync.RWMutex
+	activeTraces = make(map[string]*traceSet) // family -> traces
+
+	// Families of completed traces.
+	completedMu     sync.RWMutex
+	completedTraces = make(map[string]*family) // family -> traces
+)
+
+type traceSet struct {
+	mu sync.RWMutex
+	m  map[*trace]bool
+
+	// We could avoid the entire map scan in FirstN by having a slice of all the traces
+	// ordered by start time, and an index into that from the trace struct, with a periodic
+	// repack of the slice after enough traces finish; we could also use a skip list or similar.
+	// However, that would shift some of the expense from /debug/requests time to RPC time,
+	// which is probably the wrong trade-off.
+}
+
+func (ts *traceSet) Len() int {
+	ts.mu.RLock()
+	defer ts.mu.RUnlock()
+	return len(ts.m)
+}
+
+func (ts *traceSet) Add(tr *trace) {
+	ts.mu.Lock()
+	if ts.m == nil {
+		ts.m = make(map[*trace]bool)
+	}
+	ts.m[tr] = true
+	ts.mu.Unlock()
+}
+
+func (ts *traceSet) Remove(tr *trace) {
+	ts.mu.Lock()
+	delete(ts.m, tr)
+	ts.mu.Unlock()
+}
+
+// FirstN returns the first n traces ordered by time.
+func (ts *traceSet) FirstN(n int) traceList {
+	ts.mu.RLock()
+	defer ts.mu.RUnlock()
+
+	if n > len(ts.m) {
+		n = len(ts.m)
+	}
+	trl := make(traceList, 0, n)
+
+	// Fast path for when no selectivity is needed.
+	if n == len(ts.m) {
+		for tr := range ts.m {
+			tr.ref()
+			trl = append(trl, tr)
+		}
+		sort.Sort(trl)
+		return trl
+	}
+
+	// Pick the oldest n traces.
+	// This is inefficient. See the comment in the traceSet struct.
+	for tr := range ts.m {
+		// Put the first n traces into trl in the order they occur.
+		// When we have n, sort trl, and thereafter maintain its order.
+		if len(trl) < n {
+			tr.ref()
+			trl = append(trl, tr)
+			if len(trl) == n {
+				// This is guaranteed to happen exactly once during this loop.
+				sort.Sort(trl)
+			}
+			continue
+		}
+		if tr.Start.After(trl[n-1].Start) {
+			continue
+		}
+
+		// Find where to insert this one.
+		tr.ref()
+		i := sort.Search(n, func(i int) bool { return trl[i].Start.After(tr.Start) })
+		trl[n-1].unref()
+		copy(trl[i+1:], trl[i:])
+		trl[i] = tr
+	}
+
+	return trl
+}
+
+func getActiveTraces(fam string) traceList {
+	activeMu.RLock()
+	s := activeTraces[fam]
+	activeMu.RUnlock()
+	if s == nil {
+		return nil
+	}
+	return s.FirstN(maxActiveTraces)
+}
+
+func getFamily(fam string, allocNew bool) *family {
+	completedMu.RLock()
+	f := completedTraces[fam]
+	completedMu.RUnlock()
+	if f == nil && allocNew {
+		f = allocFamily(fam)
+	}
+	return f
+}
+
+func allocFamily(fam string) *family {
+	completedMu.Lock()
+	defer completedMu.Unlock()
+	f := completedTraces[fam]
+	if f == nil {
+		f = newFamily()
+		completedTraces[fam] = f
+	}
+	return f
+}
+
+// family represents a set of trace buckets and associated latency information.
+type family struct {
+	// traces may occur in multiple buckets.
+	Buckets [bucketsPerFamily]*traceBucket
+
+	// latency time series
+	LatencyMu sync.RWMutex
+	Latency   *timeseries.MinuteHourSeries
+}
+
+func newFamily() *family {
+	return &family{
+		Buckets: [bucketsPerFamily]*traceBucket{
+			{Cond: minCond(0)},
+			{Cond: minCond(50 * time.Millisecond)},
+			{Cond: minCond(100 * time.Millisecond)},
+			{Cond: minCond(200 * time.Millisecond)},
+			{Cond: minCond(500 * time.Millisecond)},
+			{Cond: minCond(1 * time.Second)},
+			{Cond: minCond(10 * time.Second)},
+			{Cond: minCond(100 * time.Second)},
+			{Cond: errorCond{}},
+		},
+		Latency: timeseries.NewMinuteHourSeries(func() timeseries.Observable { return new(histogram) }),
+	}
+}
+
+// traceBucket represents a size-capped bucket of historic traces,
+// along with a condition for a trace to belong to the bucket.
+type traceBucket struct {
+	Cond cond
+
+	// Ring buffer implementation of a fixed-size FIFO queue.
+	mu     sync.RWMutex
+	buf    [tracesPerBucket]*trace
+	start  int // < tracesPerBucket
+	length int // <= tracesPerBucket
+}
+
+func (b *traceBucket) Add(tr *trace) {
+	b.mu.Lock()
+	defer b.mu.Unlock()
+
+	i := b.start + b.length
+	if i >= tracesPerBucket {
+		i -= tracesPerBucket
+	}
+	if b.length == tracesPerBucket {
+		// "Remove" an element from the bucket.
+		b.buf[i].unref()
+		b.start++
+		if b.start == tracesPerBucket {
+			b.start = 0
+		}
+	}
+	b.buf[i] = tr
+	if b.length < tracesPerBucket {
+		b.length++
+	}
+	tr.ref()
+}
+
+// Copy returns a copy of the traces in the bucket.
+// If tracedOnly is true, only the traces with trace information will be returned.
+// The logs will be ref'd before returning; the caller should call
+// the Free method when it is done with them.
+// TODO(dsymonds): keep track of traced requests in separate buckets.
+func (b *traceBucket) Copy(tracedOnly bool) traceList {
+	b.mu.RLock()
+	defer b.mu.RUnlock()
+
+	trl := make(traceList, 0, b.length)
+	for i, x := 0, b.start; i < b.length; i++ {
+		tr := b.buf[x]
+		if !tracedOnly || tr.spanID != 0 {
+			tr.ref()
+			trl = append(trl, tr)
+		}
+		x++
+		if x == b.length {
+			x = 0
+		}
+	}
+	return trl
+}
+
+func (b *traceBucket) Empty() bool {
+	b.mu.RLock()
+	defer b.mu.RUnlock()
+	return b.length == 0
+}
+
+// cond represents a condition on a trace.
+type cond interface {
+	match(t *trace) bool
+	String() string
+}
+
+type minCond time.Duration
+
+func (m minCond) match(t *trace) bool { return t.Elapsed >= time.Duration(m) }
+func (m minCond) String() string      { return fmt.Sprintf("≥%gs", time.Duration(m).Seconds()) }
+
+type errorCond struct{}
+
+func (e errorCond) match(t *trace) bool { return t.IsError }
+func (e errorCond) String() string      { return "errors" }
+
+type traceList []*trace
+
+// Free calls unref on each element of the list.
+func (trl traceList) Free() {
+	for _, t := range trl {
+		t.unref()
+	}
+}
+
+// traceList may be sorted in reverse chronological order.
+func (trl traceList) Len() int           { return len(trl) }
+func (trl traceList) Less(i, j int) bool { return trl[i].Start.After(trl[j].Start) }
+func (trl traceList) Swap(i, j int)      { trl[i], trl[j] = trl[j], trl[i] }
+
+// An event is a timestamped log entry in a trace.
+type event struct {
+	When       time.Time
+	Elapsed    time.Duration // since previous event in trace
+	NewDay     bool          // whether this event is on a different day to the previous event
+	Recyclable bool          // whether this event was passed via LazyLog
+	What       interface{}   // string or fmt.Stringer
+	Sensitive  bool          // whether this event contains sensitive information
+}
+
+// WhenString returns a string representation of the elapsed time of the event.
+// It will include the date if midnight was crossed.
+func (e event) WhenString() string {
+	if e.NewDay {
+		return e.When.Format("2006/01/02 15:04:05.000000")
+	}
+	return e.When.Format("15:04:05.000000")
+}
+
+// discarded represents a number of discarded events.
+// It is stored as *discarded to make it easier to update in-place.
+type discarded int
+
+func (d *discarded) String() string {
+	return fmt.Sprintf("(%d events discarded)", int(*d))
+}
+
+// trace represents an active or complete request,
+// either sent or received by this program.
+type trace struct {
+	// Family is the top-level grouping of traces to which this belongs.
+	Family string
+
+	// Title is the title of this trace.
+	Title string
+
+	// Timing information.
+	Start   time.Time
+	Elapsed time.Duration // zero while active
+
+	// Trace information if non-zero.
+	traceID uint64
+	spanID  uint64
+
+	// Whether this trace resulted in an error.
+	IsError bool
+
+	// Append-only sequence of events (modulo discards).
+	mu     sync.RWMutex
+	events []event
+
+	refs     int32 // how many buckets this is in
+	recycler func(interface{})
+	disc     discarded // scratch space to avoid allocation
+
+	finishStack []byte // where finish was called, if DebugUseAfterFinish is set
+}
+
+func (tr *trace) reset() {
+	// Clear all but the mutex. Mutexes may not be copied, even when unlocked.
+	tr.Family = ""
+	tr.Title = ""
+	tr.Start = time.Time{}
+	tr.Elapsed = 0
+	tr.traceID = 0
+	tr.spanID = 0
+	tr.IsError = false
+	tr.events = nil
+	tr.refs = 0
+	tr.recycler = nil
+	tr.disc = 0
+	tr.finishStack = nil
+}
+
+// delta returns the elapsed time since the last event or the trace start,
+// and whether it spans midnight.
+// L >= tr.mu
+func (tr *trace) delta(t time.Time) (time.Duration, bool) {
+	if len(tr.events) == 0 {
+		return t.Sub(tr.Start), false
+	}
+	prev := tr.events[len(tr.events)-1].When
+	return t.Sub(prev), prev.Day() != t.Day()
+}
+
+func (tr *trace) addEvent(x interface{}, recyclable, sensitive bool) {
+	if DebugUseAfterFinish && tr.finishStack != nil {
+		buf := make([]byte, 4<<10) // 4 KB should be enough
+		n := runtime.Stack(buf, false)
+		log.Printf("net/trace: trace used after finish:\nFinished at:\n%s\nUsed at:\n%s", tr.finishStack, buf[:n])
+	}
+
+	/*
+		NOTE TO DEBUGGERS
+
+		If you are here because your program panicked in this code,
+		it is almost definitely the fault of code using this package,
+		and very unlikely to be the fault of this code.
+
+		The most likely scenario is that some code elsewhere is using
+		a requestz.Trace after its Finish method is called.
+		You can temporarily set the DebugUseAfterFinish var
+		to help discover where that is; do not leave that var set,
+		since it makes this package much less efficient.
+	*/
+
+	e := event{When: time.Now(), What: x, Recyclable: recyclable, Sensitive: sensitive}
+	tr.mu.Lock()
+	e.Elapsed, e.NewDay = tr.delta(e.When)
+	if len(tr.events) < cap(tr.events) {
+		tr.events = append(tr.events, e)
+	} else {
+		// Discard the middle events.
+		di := int((cap(tr.events) - 1) / 2)
+		if d, ok := tr.events[di].What.(*discarded); ok {
+			(*d)++
+		} else {
+			// disc starts at two to count for the event it is replacing,
+			// plus the next one that we are about to drop.
+			tr.disc = 2
+			if tr.recycler != nil && tr.events[di].Recyclable {
+				go tr.recycler(tr.events[di].What)
+			}
+			tr.events[di].What = &tr.disc
+		}
+		// The timestamp of the discarded meta-event should be
+		// the time of the last event it is representing.
+		tr.events[di].When = tr.events[di+1].When
+
+		if tr.recycler != nil && tr.events[di+1].Recyclable {
+			go tr.recycler(tr.events[di+1].What)
+		}
+		copy(tr.events[di+1:], tr.events[di+2:])
+		tr.events[cap(tr.events)-1] = e
+	}
+	tr.mu.Unlock()
+}
+
+func (tr *trace) LazyLog(x fmt.Stringer, sensitive bool) {
+	tr.addEvent(x, true, sensitive)
+}
+
+func (tr *trace) LazyPrintf(format string, a ...interface{}) {
+	tr.addEvent(&lazySprintf{format, a}, false, false)
+}
+
+func (tr *trace) SetError() { tr.IsError = true }
+
+func (tr *trace) SetRecycler(f func(interface{})) {
+	tr.recycler = f
+}
+
+func (tr *trace) SetTraceInfo(traceID, spanID uint64) {
+	tr.traceID, tr.spanID = traceID, spanID
+}
+
+func (tr *trace) SetMaxEvents(m int) {
+	// Always keep at least three events: first, discarded count, last.
+	if len(tr.events) == 0 && m > 3 {
+		tr.events = make([]event, 0, m)
+	}
+}
+
+func (tr *trace) ref() {
+	atomic.AddInt32(&tr.refs, 1)
+}
+
+func (tr *trace) unref() {
+	if atomic.AddInt32(&tr.refs, -1) == 0 {
+		if tr.recycler != nil {
+			// freeTrace clears tr, so we hold tr.recycler and tr.events here.
+			go func(f func(interface{}), es []event) {
+				for _, e := range es {
+					if e.Recyclable {
+						f(e.What)
+					}
+				}
+			}(tr.recycler, tr.events)
+		}
+
+		freeTrace(tr)
+	}
+}
+
+func (tr *trace) When() string {
+	return tr.Start.Format("2006/01/02 15:04:05.000000")
+}
+
+func (tr *trace) ElapsedTime() string {
+	t := tr.Elapsed
+	if t == 0 {
+		// Active trace.
+		t = time.Since(tr.Start)
+	}
+	return fmt.Sprintf("%.6f", t.Seconds())
+}
+
+func (tr *trace) Events() []event {
+	tr.mu.RLock()
+	defer tr.mu.RUnlock()
+	return tr.events
+}
+
+var traceFreeList = make(chan *trace, 1000) // TODO(dsymonds): Use sync.Pool?
+
+// newTrace returns a trace ready to use.
+func newTrace() *trace {
+	select {
+	case tr := <-traceFreeList:
+		return tr
+	default:
+		return new(trace)
+	}
+}
+
+// freeTrace adds tr to traceFreeList if there's room.
+// This is non-blocking.
+func freeTrace(tr *trace) {
+	if DebugUseAfterFinish {
+		return // never reuse
+	}
+	tr.reset()
+	select {
+	case traceFreeList <- tr:
+	default:
+	}
+}
+
+func elapsed(d time.Duration) string {
+	b := []byte(fmt.Sprintf("%.6f", d.Seconds()))
+
+	// For subsecond durations, blank all zeros before decimal point,
+	// and all zeros between the decimal point and the first non-zero digit.
+	if d < time.Second {
+		dot := bytes.IndexByte(b, '.')
+		for i := 0; i < dot; i++ {
+			b[i] = ' '
+		}
+		for i := dot + 1; i < len(b); i++ {
+			if b[i] == '0' {
+				b[i] = ' '
+			} else {
+				break
+			}
+		}
+	}
+
+	return string(b)
+}
+
+var pageTmpl = template.Must(template.New("Page").Funcs(template.FuncMap{
+	"elapsed": elapsed,
+	"add":     func(a, b int) int { return a + b },
+}).Parse(pageHTML))
+
+const pageHTML = `
+{{template "Prolog" .}}
+{{template "StatusTable" .}}
+{{template "Epilog" .}}
+
+{{define "Prolog"}}
+<html>
+	<head>
+	<title>/debug/requests</title>
+	<style type="text/css">
+		body {
+			font-family: sans-serif;
+		}
+		table#tr-status td.family {
+			padding-right: 2em;
+		}
+		table#tr-status td.active {
+			padding-right: 1em;
+		}
+		table#tr-status td.latency-first {
+			padding-left: 1em;
+		}
+		table#tr-status td.empty {
+			color: #aaa;
+		}
+		table#reqs {
+			margin-top: 1em;
+		}
+		table#reqs tr.first {
+			{{if $.Expanded}}font-weight: bold;{{end}}
+		}
+		table#reqs td {
+			font-family: monospace;
+		}
+		table#reqs td.when {
+			text-align: right;
+			white-space: nowrap;
+		}
+		table#reqs td.elapsed {
+			padding: 0 0.5em;
+			text-align: right;
+			white-space: pre;
+			width: 10em;
+		}
+		address {
+			font-size: smaller;
+			margin-top: 5em;
+		}
+	</style>
+	</head>
+	<body>
+
+<h1>/debug/requests</h1>
+{{end}} {{/* end of Prolog */}}
+
+{{define "StatusTable"}}
+<table id="tr-status">
+	{{range $fam := .Families}}
+	<tr>
+		<td class="family">{{$fam}}</td>
+
+		{{$n := index $.ActiveTraceCount $fam}}
+		<td class="active {{if not $n}}empty{{end}}">
+			{{if $n}}<a href="/debug/requests?fam={{$fam}}&b=-1{{if $.Expanded}}&exp=1{{end}}">{{end}}
+			[{{$n}} active]
+			{{if $n}}</a>{{end}}
+		</td>
+
+		{{$f := index $.CompletedTraces $fam}}
+		{{range $i, $b := $f.Buckets}}
+		{{$empty := $b.Empty}}
+		<td {{if $empty}}class="empty"{{end}}>
+		{{if not $empty}}<a href="/debug/requests?fam={{$fam}}&b={{$i}}{{if $.Expanded}}&exp=1{{end}}">{{end}}
+		[{{.Cond}}]
+		{{if not $empty}}</a>{{end}}
+		</td>
+		{{end}}
+
+		{{$nb := len $f.Buckets}}
+		<td class="latency-first">
+		<a href="/debug/requests?fam={{$fam}}&b={{$nb}}">[minute]</a>
+		</td>
+		<td>
+		<a href="/debug/requests?fam={{$fam}}&b={{add $nb 1}}">[hour]</a>
+		</td>
+		<td>
+		<a href="/debug/requests?fam={{$fam}}&b={{add $nb 2}}">[total]</a>
+		</td>
+
+	</tr>
+	{{end}}
+</table>
+{{end}} {{/* end of StatusTable */}}
+
+{{define "Epilog"}}
+{{if $.Traces}}
+<hr />
+<h3>Family: {{$.Family}}</h3>
+
+{{if or $.Expanded $.Traced}}
+  <a href="/debug/requests?fam={{$.Family}}&b={{$.Bucket}}">[Normal/Summary]</a>
+{{else}}
+  [Normal/Summary]
+{{end}}
+
+{{if or (not $.Expanded) $.Traced}}
+  <a href="/debug/requests?fam={{$.Family}}&b={{$.Bucket}}&exp=1">[Normal/Expanded]</a>
+{{else}}
+  [Normal/Expanded]
+{{end}}
+
+{{if not $.Active}}
+	{{if or $.Expanded (not $.Traced)}}
+	<a href="/debug/requests?fam={{$.Family}}&b={{$.Bucket}}&rtraced=1">[Traced/Summary]</a>
+	{{else}}
+	[Traced/Summary]
+	{{end}}
+	{{if or (not $.Expanded) (not $.Traced)}}
+	<a href="/debug/requests?fam={{$.Family}}&b={{$.Bucket}}&exp=1&rtraced=1">[Traced/Expanded]</a>
+        {{else}}
+	[Traced/Expanded]
+	{{end}}
+{{end}}
+
+{{if $.Total}}
+<p><em>Showing <b>{{len $.Traces}}</b> of <b>{{$.Total}}</b> traces.</em></p>
+{{end}}
+
+<table id="reqs">
+	<caption>
+		{{if $.Active}}Active{{else}}Completed{{end}} Requests
+	</caption>
+	<tr><th>When</th><th>Elapsed&nbsp;(s)</th></tr>
+	{{range $tr := $.Traces}}
+	<tr class="first">
+		<td class="when">{{$tr.When}}</td>
+		<td class="elapsed">{{$tr.ElapsedTime}}</td>
+		<td>{{$tr.Title}}</td>
+		{{/* TODO: include traceID/spanID */}}
+	</tr>
+	{{if $.Expanded}}
+	{{range $tr.Events}}
+	<tr>
+		<td class="when">{{.WhenString}}</td>
+		<td class="elapsed">{{elapsed .Elapsed}}</td>
+		<td>{{if or $.ShowSensitive (not .Sensitive)}}... {{.What}}{{else}}<em>[redacted]</em>{{end}}</td>
+	</tr>
+	{{end}}
+	{{end}}
+	{{end}}
+</table>
+{{end}} {{/* if $.Traces */}}
+
+{{if $.Histogram}}
+<h4>Latency (&micro;s) of {{$.Family}} over {{$.HistogramWindow}}</h4>
+{{$.Histogram}}
+{{end}} {{/* if $.Histogram */}}
+
+	</body>
+</html>
+{{end}} {{/* end of Epilog */}}
+`
diff --git a/go/src/golang.org/x/net/trace/trace_test.go b/go/src/golang.org/x/net/trace/trace_test.go
new file mode 100644
index 0000000..82f0f6b
--- /dev/null
+++ b/go/src/golang.org/x/net/trace/trace_test.go
@@ -0,0 +1,32 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package trace
+
+import (
+	"reflect"
+	"testing"
+)
+
+type s struct{}
+
+func (s) String() string { return "lazy string" }
+
+// TestReset checks whether all the fields are zeroed after reset.
+func TestReset(t *testing.T) {
+	tr := New("foo", "bar")
+	tr.LazyLog(s{}, false)
+	tr.LazyPrintf("%d", 1)
+	tr.SetRecycler(func(_ interface{}) {})
+	tr.SetTraceInfo(3, 4)
+	tr.SetMaxEvents(100)
+	tr.SetError()
+	tr.Finish()
+
+	tr.(*trace).reset()
+
+	if !reflect.DeepEqual(tr, new(trace)) {
+		t.Errorf("reset didn't clear all fields: %+v", tr)
+	}
+}
diff --git a/go/src/golang.org/x/net/webdav/file.go b/go/src/golang.org/x/net/webdav/file.go
index 097fe6b..3d95c6c 100644
--- a/go/src/golang.org/x/net/webdav/file.go
+++ b/go/src/golang.org/x/net/webdav/file.go
@@ -5,29 +5,49 @@
 package webdav
 
 import (
+	"encoding/xml"
 	"io"
 	"net/http"
 	"os"
 	"path"
 	"path/filepath"
 	"strings"
+	"sync"
+	"time"
 )
 
+// slashClean is equivalent to but slightly more efficient than
+// path.Clean("/" + name).
+func slashClean(name string) string {
+	if name == "" || name[0] != '/' {
+		name = "/" + name
+	}
+	return path.Clean(name)
+}
+
 // A FileSystem implements access to a collection of named files. The elements
 // in a file path are separated by slash ('/', U+002F) characters, regardless
 // of host operating system convention.
 //
 // Each method has the same semantics as the os package's function of the same
 // name.
+//
+// Note that the os.Rename documentation says that "OS-specific restrictions
+// might apply". In particular, whether or not renaming a file or directory
+// overwriting another existing file or directory is an error is OS-dependent.
 type FileSystem interface {
 	Mkdir(name string, perm os.FileMode) error
 	OpenFile(name string, flag int, perm os.FileMode) (File, error)
 	RemoveAll(name string) error
+	Rename(oldName, newName string) error
 	Stat(name string) (os.FileInfo, error)
 }
 
 // A File is returned by a FileSystem's OpenFile method and can be served by a
 // Handler.
+//
+// A File may optionally implement the DeadPropsHolder interface, if it can
+// load and save dead properties.
 type File interface {
 	http.File
 	io.Writer
@@ -53,7 +73,7 @@
 	if dir == "" {
 		dir = "."
 	}
-	return filepath.Join(dir, filepath.FromSlash(path.Clean("/"+name)))
+	return filepath.Join(dir, filepath.FromSlash(slashClean(name)))
 }
 
 func (d Dir) Mkdir(name string, perm os.FileMode) error {
@@ -67,7 +87,11 @@
 	if name = d.resolve(name); name == "" {
 		return nil, os.ErrNotExist
 	}
-	return os.OpenFile(name, flag, perm)
+	f, err := os.OpenFile(name, flag, perm)
+	if err != nil {
+		return nil, err
+	}
+	return f, nil
 }
 
 func (d Dir) RemoveAll(name string) error {
@@ -81,6 +105,20 @@
 	return os.RemoveAll(name)
 }
 
+func (d Dir) Rename(oldName, newName string) error {
+	if oldName = d.resolve(oldName); oldName == "" {
+		return os.ErrNotExist
+	}
+	if newName = d.resolve(newName); newName == "" {
+		return os.ErrNotExist
+	}
+	if root := filepath.Clean(string(d)); root == oldName || root == newName {
+		// Prohibit renaming from or to the virtual root directory.
+		return os.ErrInvalid
+	}
+	return os.Rename(oldName, newName)
+}
+
 func (d Dir) Stat(name string) (os.FileInfo, error) {
 	if name = d.resolve(name); name == "" {
 		return nil, os.ErrNotExist
@@ -88,4 +126,669 @@
 	return os.Stat(name)
 }
 
-// TODO: a MemFS implementation.
+// NewMemFS returns a new in-memory FileSystem implementation.
+func NewMemFS() FileSystem {
+	return &memFS{
+		root: memFSNode{
+			children: make(map[string]*memFSNode),
+			mode:     0660 | os.ModeDir,
+			modTime:  time.Now(),
+		},
+	}
+}
+
+// A memFS implements FileSystem, storing all metadata and actual file data
+// in-memory. No limits on filesystem size are used, so it is not recommended
+// this be used where the clients are untrusted.
+//
+// Concurrent access is permitted. The tree structure is protected by a mutex,
+// and each node's contents and metadata are protected by a per-node mutex.
+//
+// TODO: Enforce file permissions.
+type memFS struct {
+	mu   sync.Mutex
+	root memFSNode
+}
+
+// TODO: clean up and rationalize the walk/find code.
+
+// walk walks the directory tree for the fullname, calling f at each step. If f
+// returns an error, the walk will be aborted and return that same error.
+//
+// dir is the directory at that step, frag is the name fragment, and final is
+// whether it is the final step. For example, walking "/foo/bar/x" will result
+// in 3 calls to f:
+//   - "/", "foo", false
+//   - "/foo/", "bar", false
+//   - "/foo/bar/", "x", true
+// The frag argument will be empty only if dir is the root node and the walk
+// ends at that root node.
+func (fs *memFS) walk(op, fullname string, f func(dir *memFSNode, frag string, final bool) error) error {
+	original := fullname
+	fullname = slashClean(fullname)
+
+	// Strip any leading "/"s to make fullname a relative path, as the walk
+	// starts at fs.root.
+	if fullname[0] == '/' {
+		fullname = fullname[1:]
+	}
+	dir := &fs.root
+
+	for {
+		frag, remaining := fullname, ""
+		i := strings.IndexRune(fullname, '/')
+		final := i < 0
+		if !final {
+			frag, remaining = fullname[:i], fullname[i+1:]
+		}
+		if frag == "" && dir != &fs.root {
+			panic("webdav: empty path fragment for a clean path")
+		}
+		if err := f(dir, frag, final); err != nil {
+			return &os.PathError{
+				Op:   op,
+				Path: original,
+				Err:  err,
+			}
+		}
+		if final {
+			break
+		}
+		child := dir.children[frag]
+		if child == nil {
+			return &os.PathError{
+				Op:   op,
+				Path: original,
+				Err:  os.ErrNotExist,
+			}
+		}
+		if !child.mode.IsDir() {
+			return &os.PathError{
+				Op:   op,
+				Path: original,
+				Err:  os.ErrInvalid,
+			}
+		}
+		dir, fullname = child, remaining
+	}
+	return nil
+}
+
+// find returns the parent of the named node and the relative name fragment
+// from the parent to the child. For example, if finding "/foo/bar/baz" then
+// parent will be the node for "/foo/bar" and frag will be "baz".
+//
+// If the fullname names the root node, then parent, frag and err will be zero.
+//
+// find returns an error if the parent does not already exist or the parent
+// isn't a directory, but it will not return an error per se if the child does
+// not already exist. The error returned is either nil or an *os.PathError
+// whose Op is op.
+func (fs *memFS) find(op, fullname string) (parent *memFSNode, frag string, err error) {
+	err = fs.walk(op, fullname, func(parent0 *memFSNode, frag0 string, final bool) error {
+		if !final {
+			return nil
+		}
+		if frag0 != "" {
+			parent, frag = parent0, frag0
+		}
+		return nil
+	})
+	return parent, frag, err
+}
+
+func (fs *memFS) Mkdir(name string, perm os.FileMode) error {
+	fs.mu.Lock()
+	defer fs.mu.Unlock()
+
+	dir, frag, err := fs.find("mkdir", name)
+	if err != nil {
+		return err
+	}
+	if dir == nil {
+		// We can't create the root.
+		return os.ErrInvalid
+	}
+	if _, ok := dir.children[frag]; ok {
+		return os.ErrExist
+	}
+	dir.children[frag] = &memFSNode{
+		children: make(map[string]*memFSNode),
+		mode:     perm.Perm() | os.ModeDir,
+		modTime:  time.Now(),
+	}
+	return nil
+}
+
+func (fs *memFS) OpenFile(name string, flag int, perm os.FileMode) (File, error) {
+	fs.mu.Lock()
+	defer fs.mu.Unlock()
+
+	dir, frag, err := fs.find("open", name)
+	if err != nil {
+		return nil, err
+	}
+	var n *memFSNode
+	if dir == nil {
+		// We're opening the root.
+		if flag&(os.O_WRONLY|os.O_RDWR) != 0 {
+			return nil, os.ErrPermission
+		}
+		n, frag = &fs.root, "/"
+
+	} else {
+		n = dir.children[frag]
+		if flag&(os.O_SYNC|os.O_APPEND) != 0 {
+			// memFile doesn't support these flags yet.
+			return nil, os.ErrInvalid
+		}
+		if flag&os.O_CREATE != 0 {
+			if flag&os.O_EXCL != 0 && n != nil {
+				return nil, os.ErrExist
+			}
+			if n == nil {
+				n = &memFSNode{
+					mode: perm.Perm(),
+				}
+				dir.children[frag] = n
+			}
+		}
+		if n == nil {
+			return nil, os.ErrNotExist
+		}
+		if flag&(os.O_WRONLY|os.O_RDWR) != 0 && flag&os.O_TRUNC != 0 {
+			n.mu.Lock()
+			n.data = nil
+			n.mu.Unlock()
+		}
+	}
+
+	children := make([]os.FileInfo, 0, len(n.children))
+	for cName, c := range n.children {
+		children = append(children, c.stat(cName))
+	}
+	return &memFile{
+		n:                n,
+		nameSnapshot:     frag,
+		childrenSnapshot: children,
+	}, nil
+}
+
+func (fs *memFS) RemoveAll(name string) error {
+	fs.mu.Lock()
+	defer fs.mu.Unlock()
+
+	dir, frag, err := fs.find("remove", name)
+	if err != nil {
+		return err
+	}
+	if dir == nil {
+		// We can't remove the root.
+		return os.ErrInvalid
+	}
+	delete(dir.children, frag)
+	return nil
+}
+
+func (fs *memFS) Rename(oldName, newName string) error {
+	fs.mu.Lock()
+	defer fs.mu.Unlock()
+
+	oldName = slashClean(oldName)
+	newName = slashClean(newName)
+	if oldName == newName {
+		return nil
+	}
+	if strings.HasPrefix(newName, oldName+"/") {
+		// We can't rename oldName to be a sub-directory of itself.
+		return os.ErrInvalid
+	}
+
+	oDir, oFrag, err := fs.find("rename", oldName)
+	if err != nil {
+		return err
+	}
+	if oDir == nil {
+		// We can't rename from the root.
+		return os.ErrInvalid
+	}
+
+	nDir, nFrag, err := fs.find("rename", newName)
+	if err != nil {
+		return err
+	}
+	if nDir == nil {
+		// We can't rename to the root.
+		return os.ErrInvalid
+	}
+
+	oNode, ok := oDir.children[oFrag]
+	if !ok {
+		return os.ErrNotExist
+	}
+	if oNode.children != nil {
+		if nNode, ok := nDir.children[nFrag]; ok {
+			if nNode.children == nil {
+				return errNotADirectory
+			}
+			if len(nNode.children) != 0 {
+				return errDirectoryNotEmpty
+			}
+		}
+	}
+	delete(oDir.children, oFrag)
+	nDir.children[nFrag] = oNode
+	return nil
+}
+
+func (fs *memFS) Stat(name string) (os.FileInfo, error) {
+	fs.mu.Lock()
+	defer fs.mu.Unlock()
+
+	dir, frag, err := fs.find("stat", name)
+	if err != nil {
+		return nil, err
+	}
+	if dir == nil {
+		// We're stat'ting the root.
+		return fs.root.stat("/"), nil
+	}
+	if n, ok := dir.children[frag]; ok {
+		return n.stat(path.Base(name)), nil
+	}
+	return nil, os.ErrNotExist
+}
+
+// A memFSNode represents a single entry in the in-memory filesystem and also
+// implements os.FileInfo.
+type memFSNode struct {
+	// children is protected by memFS.mu.
+	children map[string]*memFSNode
+
+	mu        sync.Mutex
+	data      []byte
+	mode      os.FileMode
+	modTime   time.Time
+	deadProps map[xml.Name]Property
+}
+
+func (n *memFSNode) stat(name string) *memFileInfo {
+	n.mu.Lock()
+	defer n.mu.Unlock()
+	return &memFileInfo{
+		name:    name,
+		size:    int64(len(n.data)),
+		mode:    n.mode,
+		modTime: n.modTime,
+	}
+}
+
+func (n *memFSNode) DeadProps() (map[xml.Name]Property, error) {
+	n.mu.Lock()
+	defer n.mu.Unlock()
+	if len(n.deadProps) == 0 {
+		return nil, nil
+	}
+	ret := make(map[xml.Name]Property, len(n.deadProps))
+	for k, v := range n.deadProps {
+		ret[k] = v
+	}
+	return ret, nil
+}
+
+func (n *memFSNode) Patch(patches []Proppatch) ([]Propstat, error) {
+	n.mu.Lock()
+	defer n.mu.Unlock()
+	pstat := Propstat{Status: http.StatusOK}
+	for _, patch := range patches {
+		for _, p := range patch.Props {
+			pstat.Props = append(pstat.Props, Property{XMLName: p.XMLName})
+			if patch.Remove {
+				delete(n.deadProps, p.XMLName)
+				continue
+			}
+			if n.deadProps == nil {
+				n.deadProps = map[xml.Name]Property{}
+			}
+			n.deadProps[p.XMLName] = p
+		}
+	}
+	return []Propstat{pstat}, nil
+}
+
+type memFileInfo struct {
+	name    string
+	size    int64
+	mode    os.FileMode
+	modTime time.Time
+}
+
+func (f *memFileInfo) Name() string       { return f.name }
+func (f *memFileInfo) Size() int64        { return f.size }
+func (f *memFileInfo) Mode() os.FileMode  { return f.mode }
+func (f *memFileInfo) ModTime() time.Time { return f.modTime }
+func (f *memFileInfo) IsDir() bool        { return f.mode.IsDir() }
+func (f *memFileInfo) Sys() interface{}   { return nil }
+
+// A memFile is a File implementation for a memFSNode. It is a per-file (not
+// per-node) read/write position, and a snapshot of the memFS' tree structure
+// (a node's name and children) for that node.
+type memFile struct {
+	n                *memFSNode
+	nameSnapshot     string
+	childrenSnapshot []os.FileInfo
+	// pos is protected by n.mu.
+	pos int
+}
+
+// A *memFile implements the optional DeadPropsHolder interface.
+var _ DeadPropsHolder = (*memFile)(nil)
+
+func (f *memFile) DeadProps() (map[xml.Name]Property, error)     { return f.n.DeadProps() }
+func (f *memFile) Patch(patches []Proppatch) ([]Propstat, error) { return f.n.Patch(patches) }
+
+func (f *memFile) Close() error {
+	return nil
+}
+
+func (f *memFile) Read(p []byte) (int, error) {
+	f.n.mu.Lock()
+	defer f.n.mu.Unlock()
+	if f.n.mode.IsDir() {
+		return 0, os.ErrInvalid
+	}
+	if f.pos >= len(f.n.data) {
+		return 0, io.EOF
+	}
+	n := copy(p, f.n.data[f.pos:])
+	f.pos += n
+	return n, nil
+}
+
+func (f *memFile) Readdir(count int) ([]os.FileInfo, error) {
+	f.n.mu.Lock()
+	defer f.n.mu.Unlock()
+	if !f.n.mode.IsDir() {
+		return nil, os.ErrInvalid
+	}
+	old := f.pos
+	if old >= len(f.childrenSnapshot) {
+		// The os.File Readdir docs say that at the end of a directory,
+		// the error is io.EOF if count > 0 and nil if count <= 0.
+		if count > 0 {
+			return nil, io.EOF
+		}
+		return nil, nil
+	}
+	if count > 0 {
+		f.pos += count
+		if f.pos > len(f.childrenSnapshot) {
+			f.pos = len(f.childrenSnapshot)
+		}
+	} else {
+		f.pos = len(f.childrenSnapshot)
+		old = 0
+	}
+	return f.childrenSnapshot[old:f.pos], nil
+}
+
+func (f *memFile) Seek(offset int64, whence int) (int64, error) {
+	f.n.mu.Lock()
+	defer f.n.mu.Unlock()
+	npos := f.pos
+	// TODO: How to handle offsets greater than the size of system int?
+	switch whence {
+	case os.SEEK_SET:
+		npos = int(offset)
+	case os.SEEK_CUR:
+		npos += int(offset)
+	case os.SEEK_END:
+		npos = len(f.n.data) + int(offset)
+	default:
+		npos = -1
+	}
+	if npos < 0 {
+		return 0, os.ErrInvalid
+	}
+	f.pos = npos
+	return int64(f.pos), nil
+}
+
+func (f *memFile) Stat() (os.FileInfo, error) {
+	return f.n.stat(f.nameSnapshot), nil
+}
+
+func (f *memFile) Write(p []byte) (int, error) {
+	lenp := len(p)
+	f.n.mu.Lock()
+	defer f.n.mu.Unlock()
+
+	if f.n.mode.IsDir() {
+		return 0, os.ErrInvalid
+	}
+	if f.pos < len(f.n.data) {
+		n := copy(f.n.data[f.pos:], p)
+		f.pos += n
+		p = p[n:]
+	} else if f.pos > len(f.n.data) {
+		// Write permits the creation of holes, if we've seek'ed past the
+		// existing end of file.
+		if f.pos <= cap(f.n.data) {
+			oldLen := len(f.n.data)
+			f.n.data = f.n.data[:f.pos]
+			hole := f.n.data[oldLen:]
+			for i := range hole {
+				hole[i] = 0
+			}
+		} else {
+			d := make([]byte, f.pos, f.pos+len(p))
+			copy(d, f.n.data)
+			f.n.data = d
+		}
+	}
+
+	if len(p) > 0 {
+		// We should only get here if f.pos == len(f.n.data).
+		f.n.data = append(f.n.data, p...)
+		f.pos = len(f.n.data)
+	}
+	f.n.modTime = time.Now()
+	return lenp, nil
+}
+
+// moveFiles moves files and/or directories from src to dst.
+//
+// See section 9.9.4 for when various HTTP status codes apply.
+func moveFiles(fs FileSystem, src, dst string, overwrite bool) (status int, err error) {
+	created := false
+	if _, err := fs.Stat(dst); err != nil {
+		if !os.IsNotExist(err) {
+			return http.StatusForbidden, err
+		}
+		created = true
+	} else if overwrite {
+		// Section 9.9.3 says that "If a resource exists at the destination
+		// and the Overwrite header is "T", then prior to performing the move,
+		// the server must perform a DELETE with "Depth: infinity" on the
+		// destination resource.
+		if err := fs.RemoveAll(dst); err != nil {
+			return http.StatusForbidden, err
+		}
+	} else {
+		return http.StatusPreconditionFailed, os.ErrExist
+	}
+	if err := fs.Rename(src, dst); err != nil {
+		return http.StatusForbidden, err
+	}
+	if created {
+		return http.StatusCreated, nil
+	}
+	return http.StatusNoContent, nil
+}
+
+func copyProps(dst, src File) error {
+	d, ok := dst.(DeadPropsHolder)
+	if !ok {
+		return nil
+	}
+	s, ok := src.(DeadPropsHolder)
+	if !ok {
+		return nil
+	}
+	m, err := s.DeadProps()
+	if err != nil {
+		return err
+	}
+	props := make([]Property, 0, len(m))
+	for _, prop := range m {
+		props = append(props, prop)
+	}
+	_, err = d.Patch([]Proppatch{{Props: props}})
+	return err
+}
+
+// copyFiles copies files and/or directories from src to dst.
+//
+// See section 9.8.5 for when various HTTP status codes apply.
+func copyFiles(fs FileSystem, src, dst string, overwrite bool, depth int, recursion int) (status int, err error) {
+	if recursion == 1000 {
+		return http.StatusInternalServerError, errRecursionTooDeep
+	}
+	recursion++
+
+	// TODO: section 9.8.3 says that "Note that an infinite-depth COPY of /A/
+	// into /A/B/ could lead to infinite recursion if not handled correctly."
+
+	srcFile, err := fs.OpenFile(src, os.O_RDONLY, 0)
+	if err != nil {
+		if os.IsNotExist(err) {
+			return http.StatusNotFound, err
+		}
+		return http.StatusInternalServerError, err
+	}
+	defer srcFile.Close()
+	srcStat, err := srcFile.Stat()
+	if err != nil {
+		if os.IsNotExist(err) {
+			return http.StatusNotFound, err
+		}
+		return http.StatusInternalServerError, err
+	}
+	srcPerm := srcStat.Mode() & os.ModePerm
+
+	created := false
+	if _, err := fs.Stat(dst); err != nil {
+		if os.IsNotExist(err) {
+			created = true
+		} else {
+			return http.StatusForbidden, err
+		}
+	} else {
+		if !overwrite {
+			return http.StatusPreconditionFailed, os.ErrExist
+		}
+		if err := fs.RemoveAll(dst); err != nil && !os.IsNotExist(err) {
+			return http.StatusForbidden, err
+		}
+	}
+
+	if srcStat.IsDir() {
+		if err := fs.Mkdir(dst, srcPerm); err != nil {
+			return http.StatusForbidden, err
+		}
+		if depth == infiniteDepth {
+			children, err := srcFile.Readdir(-1)
+			if err != nil {
+				return http.StatusForbidden, err
+			}
+			for _, c := range children {
+				name := c.Name()
+				s := path.Join(src, name)
+				d := path.Join(dst, name)
+				cStatus, cErr := copyFiles(fs, s, d, overwrite, depth, recursion)
+				if cErr != nil {
+					// TODO: MultiStatus.
+					return cStatus, cErr
+				}
+			}
+		}
+
+	} else {
+		dstFile, err := fs.OpenFile(dst, os.O_RDWR|os.O_CREATE|os.O_TRUNC, srcPerm)
+		if err != nil {
+			if os.IsNotExist(err) {
+				return http.StatusConflict, err
+			}
+			return http.StatusForbidden, err
+
+		}
+		_, copyErr := io.Copy(dstFile, srcFile)
+		propsErr := copyProps(dstFile, srcFile)
+		closeErr := dstFile.Close()
+		if copyErr != nil {
+			return http.StatusInternalServerError, copyErr
+		}
+		if propsErr != nil {
+			return http.StatusInternalServerError, propsErr
+		}
+		if closeErr != nil {
+			return http.StatusInternalServerError, closeErr
+		}
+	}
+
+	if created {
+		return http.StatusCreated, nil
+	}
+	return http.StatusNoContent, nil
+}
+
+// walkFS traverses filesystem fs starting at name up to depth levels.
+//
+// Allowed values for depth are 0, 1 or infiniteDepth. For each visited node,
+// walkFS calls walkFn. If a visited file system node is a directory and
+// walkFn returns filepath.SkipDir, walkFS will skip traversal of this node.
+func walkFS(fs FileSystem, depth int, name string, info os.FileInfo, walkFn filepath.WalkFunc) error {
+	// This implementation is based on Walk's code in the standard path/filepath package.
+	err := walkFn(name, info, nil)
+	if err != nil {
+		if info.IsDir() && err == filepath.SkipDir {
+			return nil
+		}
+		return err
+	}
+	if !info.IsDir() || depth == 0 {
+		return nil
+	}
+	if depth == 1 {
+		depth = 0
+	}
+
+	// Read directory names.
+	f, err := fs.OpenFile(name, os.O_RDONLY, 0)
+	if err != nil {
+		return walkFn(name, info, err)
+	}
+	fileInfos, err := f.Readdir(0)
+	f.Close()
+	if err != nil {
+		return walkFn(name, info, err)
+	}
+
+	for _, fileInfo := range fileInfos {
+		filename := path.Join(name, fileInfo.Name())
+		fileInfo, err := fs.Stat(filename)
+		if err != nil {
+			if err := walkFn(filename, fileInfo, err); err != nil && err != filepath.SkipDir {
+				return err
+			}
+		} else {
+			err = walkFS(fs, depth, filename, fileInfo, walkFn)
+			if err != nil {
+				if !fileInfo.IsDir() || err != filepath.SkipDir {
+					return err
+				}
+			}
+		}
+	}
+	return nil
+}
diff --git a/go/src/golang.org/x/net/webdav/file_test.go b/go/src/golang.org/x/net/webdav/file_test.go
index 502b236..16c7ac9 100644
--- a/go/src/golang.org/x/net/webdav/file_test.go
+++ b/go/src/golang.org/x/net/webdav/file_test.go
@@ -5,11 +5,45 @@
 package webdav
 
 import (
+	"encoding/xml"
+	"fmt"
+	"io"
+	"io/ioutil"
+	"os"
+	"path"
 	"path/filepath"
+	"reflect"
+	"sort"
+	"strconv"
+	"strings"
 	"testing"
 )
 
-func TestDir(t *testing.T) {
+func TestSlashClean(t *testing.T) {
+	testCases := []string{
+		"",
+		".",
+		"/",
+		"/./",
+		"//",
+		"//.",
+		"//a",
+		"/a",
+		"/a/b/c",
+		"/a//b/./../c/d/",
+		"a",
+		"a/b/c",
+	}
+	for _, tc := range testCases {
+		got := slashClean(tc)
+		want := path.Clean("/" + tc)
+		if got != want {
+			t.Errorf("tc=%q: got %q, want %q", tc, got, want)
+		}
+	}
+}
+
+func TestDirResolve(t *testing.T) {
 	testCases := []struct {
 		dir, name, want string
 	}{
@@ -115,3 +149,1010 @@
 		}
 	}
 }
+
+func TestWalk(t *testing.T) {
+	type walkStep struct {
+		name, frag string
+		final      bool
+	}
+
+	testCases := []struct {
+		dir  string
+		want []walkStep
+	}{
+		{"", []walkStep{
+			{"", "", true},
+		}},
+		{"/", []walkStep{
+			{"", "", true},
+		}},
+		{"/a", []walkStep{
+			{"", "a", true},
+		}},
+		{"/a/", []walkStep{
+			{"", "a", true},
+		}},
+		{"/a/b", []walkStep{
+			{"", "a", false},
+			{"a", "b", true},
+		}},
+		{"/a/b/", []walkStep{
+			{"", "a", false},
+			{"a", "b", true},
+		}},
+		{"/a/b/c", []walkStep{
+			{"", "a", false},
+			{"a", "b", false},
+			{"b", "c", true},
+		}},
+		// The following test case is the one mentioned explicitly
+		// in the method description.
+		{"/foo/bar/x", []walkStep{
+			{"", "foo", false},
+			{"foo", "bar", false},
+			{"bar", "x", true},
+		}},
+	}
+
+	for _, tc := range testCases {
+		fs := NewMemFS().(*memFS)
+
+		parts := strings.Split(tc.dir, "/")
+		for p := 2; p < len(parts); p++ {
+			d := strings.Join(parts[:p], "/")
+			if err := fs.Mkdir(d, 0666); err != nil {
+				t.Errorf("tc.dir=%q: mkdir: %q: %v", tc.dir, d, err)
+			}
+		}
+
+		i, prevFrag := 0, ""
+		err := fs.walk("test", tc.dir, func(dir *memFSNode, frag string, final bool) error {
+			got := walkStep{
+				name:  prevFrag,
+				frag:  frag,
+				final: final,
+			}
+			want := tc.want[i]
+
+			if got != want {
+				return fmt.Errorf("got %+v, want %+v", got, want)
+			}
+			i, prevFrag = i+1, frag
+			return nil
+		})
+		if err != nil {
+			t.Errorf("tc.dir=%q: %v", tc.dir, err)
+		}
+	}
+}
+
+// find appends to ss the names of the named file and its children. It is
+// analogous to the Unix find command.
+//
+// The returned strings are not guaranteed to be in any particular order.
+func find(ss []string, fs FileSystem, name string) ([]string, error) {
+	stat, err := fs.Stat(name)
+	if err != nil {
+		return nil, err
+	}
+	ss = append(ss, name)
+	if stat.IsDir() {
+		f, err := fs.OpenFile(name, os.O_RDONLY, 0)
+		if err != nil {
+			return nil, err
+		}
+		defer f.Close()
+		children, err := f.Readdir(-1)
+		if err != nil {
+			return nil, err
+		}
+		for _, c := range children {
+			ss, err = find(ss, fs, path.Join(name, c.Name()))
+			if err != nil {
+				return nil, err
+			}
+		}
+	}
+	return ss, nil
+}
+
+func testFS(t *testing.T, fs FileSystem) {
+	errStr := func(err error) string {
+		switch {
+		case os.IsExist(err):
+			return "errExist"
+		case os.IsNotExist(err):
+			return "errNotExist"
+		case err != nil:
+			return "err"
+		}
+		return "ok"
+	}
+
+	// The non-"find" non-"stat" test cases should change the file system state. The
+	// indentation of the "find"s and "stat"s helps distinguish such test cases.
+	testCases := []string{
+		"  stat / want dir",
+		"  stat /a want errNotExist",
+		"  stat /d want errNotExist",
+		"  stat /d/e want errNotExist",
+		"create /a A want ok",
+		"  stat /a want 1",
+		"create /d/e EEE want errNotExist",
+		"mk-dir /a want errExist",
+		"mk-dir /d/m want errNotExist",
+		"mk-dir /d want ok",
+		"  stat /d want dir",
+		"create /d/e EEE want ok",
+		"  stat /d/e want 3",
+		"  find / /a /d /d/e",
+		"create /d/f FFFF want ok",
+		"create /d/g GGGGGGG want ok",
+		"mk-dir /d/m want ok",
+		"mk-dir /d/m want errExist",
+		"create /d/m/p PPPPP want ok",
+		"  stat /d/e want 3",
+		"  stat /d/f want 4",
+		"  stat /d/g want 7",
+		"  stat /d/h want errNotExist",
+		"  stat /d/m want dir",
+		"  stat /d/m/p want 5",
+		"  find / /a /d /d/e /d/f /d/g /d/m /d/m/p",
+		"rm-all /d want ok",
+		"  stat /a want 1",
+		"  stat /d want errNotExist",
+		"  stat /d/e want errNotExist",
+		"  stat /d/f want errNotExist",
+		"  stat /d/g want errNotExist",
+		"  stat /d/m want errNotExist",
+		"  stat /d/m/p want errNotExist",
+		"  find / /a",
+		"mk-dir /d/m want errNotExist",
+		"mk-dir /d want ok",
+		"create /d/f FFFF want ok",
+		"rm-all /d/f want ok",
+		"mk-dir /d/m want ok",
+		"rm-all /z want ok",
+		"rm-all / want err",
+		"create /b BB want ok",
+		"  stat / want dir",
+		"  stat /a want 1",
+		"  stat /b want 2",
+		"  stat /c want errNotExist",
+		"  stat /d want dir",
+		"  stat /d/m want dir",
+		"  find / /a /b /d /d/m",
+		"move__ o=F /b /c want ok",
+		"  stat /b want errNotExist",
+		"  stat /c want 2",
+		"  stat /d/m want dir",
+		"  stat /d/n want errNotExist",
+		"  find / /a /c /d /d/m",
+		"move__ o=F /d/m /d/n want ok",
+		"create /d/n/q QQQQ want ok",
+		"  stat /d/m want errNotExist",
+		"  stat /d/n want dir",
+		"  stat /d/n/q want 4",
+		"move__ o=F /d /d/n/z want err",
+		"move__ o=T /c /d/n/q want ok",
+		"  stat /c want errNotExist",
+		"  stat /d/n/q want 2",
+		"  find / /a /d /d/n /d/n/q",
+		"create /d/n/r RRRRR want ok",
+		"mk-dir /u want ok",
+		"mk-dir /u/v want ok",
+		"move__ o=F /d/n /u want errExist",
+		"create /t TTTTTT want ok",
+		"move__ o=F /d/n /t want errExist",
+		"rm-all /t want ok",
+		"move__ o=F /d/n /t want ok",
+		"  stat /d want dir",
+		"  stat /d/n want errNotExist",
+		"  stat /d/n/r want errNotExist",
+		"  stat /t want dir",
+		"  stat /t/q want 2",
+		"  stat /t/r want 5",
+		"  find / /a /d /t /t/q /t/r /u /u/v",
+		"move__ o=F /t / want errExist",
+		"move__ o=T /t /u/v want ok",
+		"  stat /u/v/r want 5",
+		"move__ o=F / /z want err",
+		"  find / /a /d /u /u/v /u/v/q /u/v/r",
+		"  stat /a want 1",
+		"  stat /b want errNotExist",
+		"  stat /c want errNotExist",
+		"  stat /u/v/r want 5",
+		"copy__ o=F d=0 /a /b want ok",
+		"copy__ o=T d=0 /a /c want ok",
+		"  stat /a want 1",
+		"  stat /b want 1",
+		"  stat /c want 1",
+		"  stat /u/v/r want 5",
+		"copy__ o=F d=0 /u/v/r /b want errExist",
+		"  stat /b want 1",
+		"copy__ o=T d=0 /u/v/r /b want ok",
+		"  stat /a want 1",
+		"  stat /b want 5",
+		"  stat /u/v/r want 5",
+		"rm-all /a want ok",
+		"rm-all /b want ok",
+		"mk-dir /u/v/w want ok",
+		"create /u/v/w/s SSSSSSSS want ok",
+		"  stat /d want dir",
+		"  stat /d/x want errNotExist",
+		"  stat /d/y want errNotExist",
+		"  stat /u/v/r want 5",
+		"  stat /u/v/w/s want 8",
+		"  find / /c /d /u /u/v /u/v/q /u/v/r /u/v/w /u/v/w/s",
+		"copy__ o=T d=0 /u/v /d/x want ok",
+		"copy__ o=T d=∞ /u/v /d/y want ok",
+		"rm-all /u want ok",
+		"  stat /d/x want dir",
+		"  stat /d/x/q want errNotExist",
+		"  stat /d/x/r want errNotExist",
+		"  stat /d/x/w want errNotExist",
+		"  stat /d/x/w/s want errNotExist",
+		"  stat /d/y want dir",
+		"  stat /d/y/q want 2",
+		"  stat /d/y/r want 5",
+		"  stat /d/y/w want dir",
+		"  stat /d/y/w/s want 8",
+		"  stat /u want errNotExist",
+		"  find / /c /d /d/x /d/y /d/y/q /d/y/r /d/y/w /d/y/w/s",
+		"copy__ o=F d=∞ /d/y /d/x want errExist",
+	}
+
+	for i, tc := range testCases {
+		tc = strings.TrimSpace(tc)
+		j := strings.IndexByte(tc, ' ')
+		if j < 0 {
+			t.Fatalf("test case #%d %q: invalid command", i, tc)
+		}
+		op, arg := tc[:j], tc[j+1:]
+
+		switch op {
+		default:
+			t.Fatalf("test case #%d %q: invalid operation %q", i, tc, op)
+
+		case "create":
+			parts := strings.Split(arg, " ")
+			if len(parts) != 4 || parts[2] != "want" {
+				t.Fatalf("test case #%d %q: invalid write", i, tc)
+			}
+			f, opErr := fs.OpenFile(parts[0], os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)
+			if got := errStr(opErr); got != parts[3] {
+				t.Fatalf("test case #%d %q: OpenFile: got %q (%v), want %q", i, tc, got, opErr, parts[3])
+			}
+			if f != nil {
+				if _, err := f.Write([]byte(parts[1])); err != nil {
+					t.Fatalf("test case #%d %q: Write: %v", i, tc, err)
+				}
+				if err := f.Close(); err != nil {
+					t.Fatalf("test case #%d %q: Close: %v", i, tc, err)
+				}
+			}
+
+		case "find":
+			got, err := find(nil, fs, "/")
+			if err != nil {
+				t.Fatalf("test case #%d %q: find: %v", i, tc, err)
+			}
+			sort.Strings(got)
+			want := strings.Split(arg, " ")
+			if !reflect.DeepEqual(got, want) {
+				t.Fatalf("test case #%d %q:\ngot  %s\nwant %s", i, tc, got, want)
+			}
+
+		case "copy__", "mk-dir", "move__", "rm-all", "stat":
+			nParts := 3
+			switch op {
+			case "copy__":
+				nParts = 6
+			case "move__":
+				nParts = 5
+			}
+			parts := strings.Split(arg, " ")
+			if len(parts) != nParts {
+				t.Fatalf("test case #%d %q: invalid %s", i, tc, op)
+			}
+
+			got, opErr := "", error(nil)
+			switch op {
+			case "copy__":
+				depth := 0
+				if parts[1] == "d=∞" {
+					depth = infiniteDepth
+				}
+				_, opErr = copyFiles(fs, parts[2], parts[3], parts[0] == "o=T", depth, 0)
+			case "mk-dir":
+				opErr = fs.Mkdir(parts[0], 0777)
+			case "move__":
+				_, opErr = moveFiles(fs, parts[1], parts[2], parts[0] == "o=T")
+			case "rm-all":
+				opErr = fs.RemoveAll(parts[0])
+			case "stat":
+				var stat os.FileInfo
+				fileName := parts[0]
+				if stat, opErr = fs.Stat(fileName); opErr == nil {
+					if stat.IsDir() {
+						got = "dir"
+					} else {
+						got = strconv.Itoa(int(stat.Size()))
+					}
+
+					if fileName == "/" {
+						// For a Dir FileSystem, the virtual file system root maps to a
+						// real file system name like "/tmp/webdav-test012345", which does
+						// not end with "/". We skip such cases.
+					} else if statName := stat.Name(); path.Base(fileName) != statName {
+						t.Fatalf("test case #%d %q: file name %q inconsistent with stat name %q",
+							i, tc, fileName, statName)
+					}
+				}
+			}
+			if got == "" {
+				got = errStr(opErr)
+			}
+
+			if parts[len(parts)-2] != "want" {
+				t.Fatalf("test case #%d %q: invalid %s", i, tc, op)
+			}
+			if want := parts[len(parts)-1]; got != want {
+				t.Fatalf("test case #%d %q: got %q (%v), want %q", i, tc, got, opErr, want)
+			}
+		}
+	}
+}
+
+func TestDir(t *testing.T) {
+	td, err := ioutil.TempDir("", "webdav-test")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer os.RemoveAll(td)
+	testFS(t, Dir(td))
+}
+
+func TestMemFS(t *testing.T) {
+	testFS(t, NewMemFS())
+}
+
+func TestMemFSRoot(t *testing.T) {
+	fs := NewMemFS()
+	for i := 0; i < 5; i++ {
+		stat, err := fs.Stat("/")
+		if err != nil {
+			t.Fatalf("i=%d: Stat: %v", i, err)
+		}
+		if !stat.IsDir() {
+			t.Fatalf("i=%d: Stat.IsDir is false, want true", i)
+		}
+
+		f, err := fs.OpenFile("/", os.O_RDONLY, 0)
+		if err != nil {
+			t.Fatalf("i=%d: OpenFile: %v", i, err)
+		}
+		defer f.Close()
+		children, err := f.Readdir(-1)
+		if err != nil {
+			t.Fatalf("i=%d: Readdir: %v", i, err)
+		}
+		if len(children) != i {
+			t.Fatalf("i=%d: got %d children, want %d", i, len(children), i)
+		}
+
+		if _, err := f.Write(make([]byte, 1)); err == nil {
+			t.Fatalf("i=%d: Write: got nil error, want non-nil", i)
+		}
+
+		if err := fs.Mkdir(fmt.Sprintf("/dir%d", i), 0777); err != nil {
+			t.Fatalf("i=%d: Mkdir: %v", i, err)
+		}
+	}
+}
+
+func TestMemFileReaddir(t *testing.T) {
+	fs := NewMemFS()
+	if err := fs.Mkdir("/foo", 0777); err != nil {
+		t.Fatalf("Mkdir: %v", err)
+	}
+	readdir := func(count int) ([]os.FileInfo, error) {
+		f, err := fs.OpenFile("/foo", os.O_RDONLY, 0)
+		if err != nil {
+			t.Fatalf("OpenFile: %v", err)
+		}
+		defer f.Close()
+		return f.Readdir(count)
+	}
+	if got, err := readdir(-1); len(got) != 0 || err != nil {
+		t.Fatalf("readdir(-1): got %d fileInfos with err=%v, want 0, <nil>", len(got), err)
+	}
+	if got, err := readdir(+1); len(got) != 0 || err != io.EOF {
+		t.Fatalf("readdir(+1): got %d fileInfos with err=%v, want 0, EOF", len(got), err)
+	}
+}
+
+func TestMemFile(t *testing.T) {
+	testCases := []string{
+		"wantData ",
+		"wantSize 0",
+		"write abc",
+		"wantData abc",
+		"write de",
+		"wantData abcde",
+		"wantSize 5",
+		"write 5*x",
+		"write 4*y+2*z",
+		"write 3*st",
+		"wantData abcdexxxxxyyyyzzststst",
+		"wantSize 22",
+		"seek set 4 want 4",
+		"write EFG",
+		"wantData abcdEFGxxxyyyyzzststst",
+		"wantSize 22",
+		"seek set 2 want 2",
+		"read cdEF",
+		"read Gx",
+		"seek cur 0 want 8",
+		"seek cur 2 want 10",
+		"seek cur -1 want 9",
+		"write J",
+		"wantData abcdEFGxxJyyyyzzststst",
+		"wantSize 22",
+		"seek cur -4 want 6",
+		"write ghijk",
+		"wantData abcdEFghijkyyyzzststst",
+		"wantSize 22",
+		"read yyyz",
+		"seek cur 0 want 15",
+		"write ",
+		"seek cur 0 want 15",
+		"read ",
+		"seek cur 0 want 15",
+		"seek end -3 want 19",
+		"write ZZ",
+		"wantData abcdEFghijkyyyzzstsZZt",
+		"wantSize 22",
+		"write 4*A",
+		"wantData abcdEFghijkyyyzzstsZZAAAA",
+		"wantSize 25",
+		"seek end 0 want 25",
+		"seek end -5 want 20",
+		"read Z+4*A",
+		"write 5*B",
+		"wantData abcdEFghijkyyyzzstsZZAAAABBBBB",
+		"wantSize 30",
+		"seek end 10 want 40",
+		"write C",
+		"wantData abcdEFghijkyyyzzstsZZAAAABBBBB..........C",
+		"wantSize 41",
+		"write D",
+		"wantData abcdEFghijkyyyzzstsZZAAAABBBBB..........CD",
+		"wantSize 42",
+		"seek set 43 want 43",
+		"write E",
+		"wantData abcdEFghijkyyyzzstsZZAAAABBBBB..........CD.E",
+		"wantSize 44",
+		"seek set 0 want 0",
+		"write 5*123456789_",
+		"wantData 123456789_123456789_123456789_123456789_123456789_",
+		"wantSize 50",
+		"seek cur 0 want 50",
+		"seek cur -99 want err",
+	}
+
+	const filename = "/foo"
+	fs := NewMemFS()
+	f, err := fs.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)
+	if err != nil {
+		t.Fatalf("OpenFile: %v", err)
+	}
+	defer f.Close()
+
+	for i, tc := range testCases {
+		j := strings.IndexByte(tc, ' ')
+		if j < 0 {
+			t.Fatalf("test case #%d %q: invalid command", i, tc)
+		}
+		op, arg := tc[:j], tc[j+1:]
+
+		// Expand an arg like "3*a+2*b" to "aaabb".
+		parts := strings.Split(arg, "+")
+		for j, part := range parts {
+			if k := strings.IndexByte(part, '*'); k >= 0 {
+				repeatCount, repeatStr := part[:k], part[k+1:]
+				n, err := strconv.Atoi(repeatCount)
+				if err != nil {
+					t.Fatalf("test case #%d %q: invalid repeat count %q", i, tc, repeatCount)
+				}
+				parts[j] = strings.Repeat(repeatStr, n)
+			}
+		}
+		arg = strings.Join(parts, "")
+
+		switch op {
+		default:
+			t.Fatalf("test case #%d %q: invalid operation %q", i, tc, op)
+
+		case "read":
+			buf := make([]byte, len(arg))
+			if _, err := io.ReadFull(f, buf); err != nil {
+				t.Fatalf("test case #%d %q: ReadFull: %v", i, tc, err)
+			}
+			if got := string(buf); got != arg {
+				t.Fatalf("test case #%d %q:\ngot  %q\nwant %q", i, tc, got, arg)
+			}
+
+		case "seek":
+			parts := strings.Split(arg, " ")
+			if len(parts) != 4 {
+				t.Fatalf("test case #%d %q: invalid seek", i, tc)
+			}
+
+			whence := 0
+			switch parts[0] {
+			default:
+				t.Fatalf("test case #%d %q: invalid seek whence", i, tc)
+			case "set":
+				whence = os.SEEK_SET
+			case "cur":
+				whence = os.SEEK_CUR
+			case "end":
+				whence = os.SEEK_END
+			}
+			offset, err := strconv.Atoi(parts[1])
+			if err != nil {
+				t.Fatalf("test case #%d %q: invalid offset %q", i, tc, parts[1])
+			}
+
+			if parts[2] != "want" {
+				t.Fatalf("test case #%d %q: invalid seek", i, tc)
+			}
+			if parts[3] == "err" {
+				_, err := f.Seek(int64(offset), whence)
+				if err == nil {
+					t.Fatalf("test case #%d %q: Seek returned nil error, want non-nil", i, tc)
+				}
+			} else {
+				got, err := f.Seek(int64(offset), whence)
+				if err != nil {
+					t.Fatalf("test case #%d %q: Seek: %v", i, tc, err)
+				}
+				want, err := strconv.Atoi(parts[3])
+				if err != nil {
+					t.Fatalf("test case #%d %q: invalid want %q", i, tc, parts[3])
+				}
+				if got != int64(want) {
+					t.Fatalf("test case #%d %q: got %d, want %d", i, tc, got, want)
+				}
+			}
+
+		case "write":
+			n, err := f.Write([]byte(arg))
+			if err != nil {
+				t.Fatalf("test case #%d %q: write: %v", i, tc, err)
+			}
+			if n != len(arg) {
+				t.Fatalf("test case #%d %q: write returned %d bytes, want %d", i, tc, n, len(arg))
+			}
+
+		case "wantData":
+			g, err := fs.OpenFile(filename, os.O_RDONLY, 0666)
+			if err != nil {
+				t.Fatalf("test case #%d %q: OpenFile: %v", i, tc, err)
+			}
+			gotBytes, err := ioutil.ReadAll(g)
+			if err != nil {
+				t.Fatalf("test case #%d %q: ReadAll: %v", i, tc, err)
+			}
+			for i, c := range gotBytes {
+				if c == '\x00' {
+					gotBytes[i] = '.'
+				}
+			}
+			got := string(gotBytes)
+			if got != arg {
+				t.Fatalf("test case #%d %q:\ngot  %q\nwant %q", i, tc, got, arg)
+			}
+			if err := g.Close(); err != nil {
+				t.Fatalf("test case #%d %q: Close: %v", i, tc, err)
+			}
+
+		case "wantSize":
+			n, err := strconv.Atoi(arg)
+			if err != nil {
+				t.Fatalf("test case #%d %q: invalid size %q", i, tc, arg)
+			}
+			fi, err := fs.Stat(filename)
+			if err != nil {
+				t.Fatalf("test case #%d %q: Stat: %v", i, tc, err)
+			}
+			if got, want := fi.Size(), int64(n); got != want {
+				t.Fatalf("test case #%d %q: got %d, want %d", i, tc, got, want)
+			}
+		}
+	}
+}
+
+// TestMemFileWriteAllocs tests that writing N consecutive 1KiB chunks to a
+// memFile doesn't allocate a new buffer for each of those N times. Otherwise,
+// calling io.Copy(aMemFile, src) is likely to have quadratic complexity.
+func TestMemFileWriteAllocs(t *testing.T) {
+	fs := NewMemFS()
+	f, err := fs.OpenFile("/xxx", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)
+	if err != nil {
+		t.Fatalf("OpenFile: %v", err)
+	}
+	defer f.Close()
+
+	xxx := make([]byte, 1024)
+	for i := range xxx {
+		xxx[i] = 'x'
+	}
+
+	a := testing.AllocsPerRun(100, func() {
+		f.Write(xxx)
+	})
+	// AllocsPerRun returns an integral value, so we compare the rounded-down
+	// number to zero.
+	if a > 0 {
+		t.Fatalf("%v allocs per run, want 0", a)
+	}
+}
+
+func BenchmarkMemFileWrite(b *testing.B) {
+	fs := NewMemFS()
+	xxx := make([]byte, 1024)
+	for i := range xxx {
+		xxx[i] = 'x'
+	}
+
+	b.ResetTimer()
+	for i := 0; i < b.N; i++ {
+		f, err := fs.OpenFile("/xxx", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)
+		if err != nil {
+			b.Fatalf("OpenFile: %v", err)
+		}
+		for j := 0; j < 100; j++ {
+			f.Write(xxx)
+		}
+		if err := f.Close(); err != nil {
+			b.Fatalf("Close: %v", err)
+		}
+		if err := fs.RemoveAll("/xxx"); err != nil {
+			b.Fatalf("RemoveAll: %v", err)
+		}
+	}
+}
+
+func TestCopyMoveProps(t *testing.T) {
+	fs := NewMemFS()
+	create := func(name string) error {
+		f, err := fs.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)
+		if err != nil {
+			return err
+		}
+		_, wErr := f.Write([]byte("contents"))
+		cErr := f.Close()
+		if wErr != nil {
+			return wErr
+		}
+		return cErr
+	}
+	patch := func(name string, patches ...Proppatch) error {
+		f, err := fs.OpenFile(name, os.O_RDWR, 0666)
+		if err != nil {
+			return err
+		}
+		_, pErr := f.(DeadPropsHolder).Patch(patches)
+		cErr := f.Close()
+		if pErr != nil {
+			return pErr
+		}
+		return cErr
+	}
+	props := func(name string) (map[xml.Name]Property, error) {
+		f, err := fs.OpenFile(name, os.O_RDWR, 0666)
+		if err != nil {
+			return nil, err
+		}
+		m, pErr := f.(DeadPropsHolder).DeadProps()
+		cErr := f.Close()
+		if pErr != nil {
+			return nil, pErr
+		}
+		if cErr != nil {
+			return nil, cErr
+		}
+		return m, nil
+	}
+
+	p0 := Property{
+		XMLName:  xml.Name{Space: "x:", Local: "boat"},
+		InnerXML: []byte("pea-green"),
+	}
+	p1 := Property{
+		XMLName:  xml.Name{Space: "x:", Local: "ring"},
+		InnerXML: []byte("1 shilling"),
+	}
+	p2 := Property{
+		XMLName:  xml.Name{Space: "x:", Local: "spoon"},
+		InnerXML: []byte("runcible"),
+	}
+	p3 := Property{
+		XMLName:  xml.Name{Space: "x:", Local: "moon"},
+		InnerXML: []byte("light"),
+	}
+
+	if err := create("/src"); err != nil {
+		t.Fatalf("create /src: %v", err)
+	}
+	if err := patch("/src", Proppatch{Props: []Property{p0, p1}}); err != nil {
+		t.Fatalf("patch /src +p0 +p1: %v", err)
+	}
+	if _, err := copyFiles(fs, "/src", "/tmp", true, infiniteDepth, 0); err != nil {
+		t.Fatalf("copyFiles /src /tmp: %v", err)
+	}
+	if _, err := moveFiles(fs, "/tmp", "/dst", true); err != nil {
+		t.Fatalf("moveFiles /tmp /dst: %v", err)
+	}
+	if err := patch("/src", Proppatch{Props: []Property{p0}, Remove: true}); err != nil {
+		t.Fatalf("patch /src -p0: %v", err)
+	}
+	if err := patch("/src", Proppatch{Props: []Property{p2}}); err != nil {
+		t.Fatalf("patch /src +p2: %v", err)
+	}
+	if err := patch("/dst", Proppatch{Props: []Property{p1}, Remove: true}); err != nil {
+		t.Fatalf("patch /dst -p1: %v", err)
+	}
+	if err := patch("/dst", Proppatch{Props: []Property{p3}}); err != nil {
+		t.Fatalf("patch /dst +p3: %v", err)
+	}
+
+	gotSrc, err := props("/src")
+	if err != nil {
+		t.Fatalf("props /src: %v", err)
+	}
+	wantSrc := map[xml.Name]Property{
+		p1.XMLName: p1,
+		p2.XMLName: p2,
+	}
+	if !reflect.DeepEqual(gotSrc, wantSrc) {
+		t.Fatalf("props /src:\ngot  %v\nwant %v", gotSrc, wantSrc)
+	}
+
+	gotDst, err := props("/dst")
+	if err != nil {
+		t.Fatalf("props /dst: %v", err)
+	}
+	wantDst := map[xml.Name]Property{
+		p0.XMLName: p0,
+		p3.XMLName: p3,
+	}
+	if !reflect.DeepEqual(gotDst, wantDst) {
+		t.Fatalf("props /dst:\ngot  %v\nwant %v", gotDst, wantDst)
+	}
+}
+
+func TestWalkFS(t *testing.T) {
+	testCases := []struct {
+		desc    string
+		buildfs []string
+		startAt string
+		depth   int
+		walkFn  filepath.WalkFunc
+		want    []string
+	}{{
+		"just root",
+		[]string{},
+		"/",
+		infiniteDepth,
+		nil,
+		[]string{
+			"/",
+		},
+	}, {
+		"infinite walk from root",
+		[]string{
+			"mkdir /a",
+			"mkdir /a/b",
+			"touch /a/b/c",
+			"mkdir /a/d",
+			"mkdir /e",
+			"touch /f",
+		},
+		"/",
+		infiniteDepth,
+		nil,
+		[]string{
+			"/",
+			"/a",
+			"/a/b",
+			"/a/b/c",
+			"/a/d",
+			"/e",
+			"/f",
+		},
+	}, {
+		"infinite walk from subdir",
+		[]string{
+			"mkdir /a",
+			"mkdir /a/b",
+			"touch /a/b/c",
+			"mkdir /a/d",
+			"mkdir /e",
+			"touch /f",
+		},
+		"/a",
+		infiniteDepth,
+		nil,
+		[]string{
+			"/a",
+			"/a/b",
+			"/a/b/c",
+			"/a/d",
+		},
+	}, {
+		"depth 1 walk from root",
+		[]string{
+			"mkdir /a",
+			"mkdir /a/b",
+			"touch /a/b/c",
+			"mkdir /a/d",
+			"mkdir /e",
+			"touch /f",
+		},
+		"/",
+		1,
+		nil,
+		[]string{
+			"/",
+			"/a",
+			"/e",
+			"/f",
+		},
+	}, {
+		"depth 1 walk from subdir",
+		[]string{
+			"mkdir /a",
+			"mkdir /a/b",
+			"touch /a/b/c",
+			"mkdir /a/b/g",
+			"mkdir /a/b/g/h",
+			"touch /a/b/g/i",
+			"touch /a/b/g/h/j",
+		},
+		"/a/b",
+		1,
+		nil,
+		[]string{
+			"/a/b",
+			"/a/b/c",
+			"/a/b/g",
+		},
+	}, {
+		"depth 0 walk from subdir",
+		[]string{
+			"mkdir /a",
+			"mkdir /a/b",
+			"touch /a/b/c",
+			"mkdir /a/b/g",
+			"mkdir /a/b/g/h",
+			"touch /a/b/g/i",
+			"touch /a/b/g/h/j",
+		},
+		"/a/b",
+		0,
+		nil,
+		[]string{
+			"/a/b",
+		},
+	}, {
+		"infinite walk from file",
+		[]string{
+			"mkdir /a",
+			"touch /a/b",
+			"touch /a/c",
+		},
+		"/a/b",
+		0,
+		nil,
+		[]string{
+			"/a/b",
+		},
+	}, {
+		"infinite walk with skipped subdir",
+		[]string{
+			"mkdir /a",
+			"mkdir /a/b",
+			"touch /a/b/c",
+			"mkdir /a/b/g",
+			"mkdir /a/b/g/h",
+			"touch /a/b/g/i",
+			"touch /a/b/g/h/j",
+			"touch /a/b/z",
+		},
+		"/",
+		infiniteDepth,
+		func(path string, info os.FileInfo, err error) error {
+			if path == "/a/b/g" {
+				return filepath.SkipDir
+			}
+			return nil
+		},
+		[]string{
+			"/",
+			"/a",
+			"/a/b",
+			"/a/b/c",
+			"/a/b/z",
+		},
+	}}
+	for _, tc := range testCases {
+		fs, err := buildTestFS(tc.buildfs)
+		if err != nil {
+			t.Fatalf("%s: cannot create test filesystem: %v", tc.desc, err)
+		}
+		var got []string
+		traceFn := func(path string, info os.FileInfo, err error) error {
+			if tc.walkFn != nil {
+				err = tc.walkFn(path, info, err)
+				if err != nil {
+					return err
+				}
+			}
+			got = append(got, path)
+			return nil
+		}
+		fi, err := fs.Stat(tc.startAt)
+		if err != nil {
+			t.Fatalf("%s: cannot stat: %v", tc.desc, err)
+		}
+		err = walkFS(fs, tc.depth, tc.startAt, fi, traceFn)
+		if err != nil {
+			t.Errorf("%s:\ngot error %v, want nil", tc.desc, err)
+			continue
+		}
+		sort.Strings(got)
+		sort.Strings(tc.want)
+		if !reflect.DeepEqual(got, tc.want) {
+			t.Errorf("%s:\ngot  %q\nwant %q", tc.desc, got, tc.want)
+			continue
+		}
+	}
+}
+
+func buildTestFS(buildfs []string) (FileSystem, error) {
+	// TODO: Could this be merged with the build logic in TestFS?
+
+	fs := NewMemFS()
+	for _, b := range buildfs {
+		op := strings.Split(b, " ")
+		switch op[0] {
+		case "mkdir":
+			err := fs.Mkdir(op[1], os.ModeDir|0777)
+			if err != nil {
+				return nil, err
+			}
+		case "touch":
+			f, err := fs.OpenFile(op[1], os.O_RDWR|os.O_CREATE, 0666)
+			if err != nil {
+				return nil, err
+			}
+			f.Close()
+		case "write":
+			f, err := fs.OpenFile(op[1], os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)
+			if err != nil {
+				return nil, err
+			}
+			_, err = f.Write([]byte(op[2]))
+			f.Close()
+			if err != nil {
+				return nil, err
+			}
+		default:
+			return nil, fmt.Errorf("unknown file operation %q", op[0])
+		}
+	}
+	return fs, nil
+}
diff --git a/go/src/golang.org/x/net/webdav/litmus_test_server.go b/go/src/golang.org/x/net/webdav/litmus_test_server.go
new file mode 100644
index 0000000..514db5d
--- /dev/null
+++ b/go/src/golang.org/x/net/webdav/litmus_test_server.go
@@ -0,0 +1,94 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build ignore
+
+/*
+This program is a server for the WebDAV 'litmus' compliance test at
+http://www.webdav.org/neon/litmus/
+To run the test:
+
+go run litmus_test_server.go
+
+and separately, from the downloaded litmus-xxx directory:
+
+make URL=http://localhost:9999/ check
+*/
+package main
+
+import (
+	"flag"
+	"fmt"
+	"log"
+	"net/http"
+	"net/url"
+
+	"golang.org/x/net/webdav"
+)
+
+var port = flag.Int("port", 9999, "server port")
+
+func main() {
+	flag.Parse()
+	log.SetFlags(0)
+	h := &webdav.Handler{
+		FileSystem: webdav.NewMemFS(),
+		LockSystem: webdav.NewMemLS(),
+		Logger: func(r *http.Request, err error) {
+			litmus := r.Header.Get("X-Litmus")
+			if len(litmus) > 19 {
+				litmus = litmus[:16] + "..."
+			}
+
+			switch r.Method {
+			case "COPY", "MOVE":
+				dst := ""
+				if u, err := url.Parse(r.Header.Get("Destination")); err == nil {
+					dst = u.Path
+				}
+				o := r.Header.Get("Overwrite")
+				log.Printf("%-20s%-10s%-30s%-30so=%-2s%v", litmus, r.Method, r.URL.Path, dst, o, err)
+			default:
+				log.Printf("%-20s%-10s%-30s%v", litmus, r.Method, r.URL.Path, err)
+			}
+		},
+	}
+
+	// The next line would normally be:
+	//	http.Handle("/", h)
+	// but we wrap that HTTP handler h to cater for a special case.
+	//
+	// The propfind_invalid2 litmus test case expects an empty namespace prefix
+	// declaration to be an error. The FAQ in the webdav litmus test says:
+	//
+	// "What does the "propfind_invalid2" test check for?...
+	//
+	// If a request was sent with an XML body which included an empty namespace
+	// prefix declaration (xmlns:ns1=""), then the server must reject that with
+	// a "400 Bad Request" response, as it is invalid according to the XML
+	// Namespace specification."
+	//
+	// On the other hand, the Go standard library's encoding/xml package
+	// accepts an empty xmlns namespace, as per the discussion at
+	// https://github.com/golang/go/issues/8068
+	//
+	// Empty namespaces seem disallowed in the second (2006) edition of the XML
+	// standard, but allowed in a later edition. The grammar differs between
+	// http://www.w3.org/TR/2006/REC-xml-names-20060816/#ns-decl and
+	// http://www.w3.org/TR/REC-xml-names/#dt-prefix
+	//
+	// Thus, we assume that the propfind_invalid2 test is obsolete, and
+	// hard-code the 400 Bad Request response that the test expects.
+	http.Handle("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+		if r.Header.Get("X-Litmus") == "props: 3 (propfind_invalid2)" {
+			http.Error(w, "400 Bad Request", http.StatusBadRequest)
+			return
+		}
+		h.ServeHTTP(w, r)
+	}))
+
+	addr := fmt.Sprintf(":%d", *port)
+	log.Printf("Serving %v", addr)
+	log.Fatal(http.ListenAndServe(addr, nil))
+}
diff --git a/go/src/golang.org/x/net/webdav/lock.go b/go/src/golang.org/x/net/webdav/lock.go
index 6538ded..344ac5c 100644
--- a/go/src/golang.org/x/net/webdav/lock.go
+++ b/go/src/golang.org/x/net/webdav/lock.go
@@ -5,15 +5,23 @@
 package webdav
 
 import (
+	"container/heap"
 	"errors"
-	"io"
+	"strconv"
+	"strings"
+	"sync"
 	"time"
 )
 
 var (
+	// ErrConfirmationFailed is returned by a LockSystem's Confirm method.
 	ErrConfirmationFailed = errors.New("webdav: confirmation failed")
-	ErrForbidden          = errors.New("webdav: forbidden")
-	ErrNoSuchLock         = errors.New("webdav: no such lock")
+	// ErrForbidden is returned by a LockSystem's Unlock method.
+	ErrForbidden = errors.New("webdav: forbidden")
+	// ErrLocked is returned by a LockSystem's Create, Refresh and Unlock methods.
+	ErrLocked = errors.New("webdav: locked")
+	// ErrNoSuchLock is returned by a LockSystem's Refresh and Unlock methods.
+	ErrNoSuchLock = errors.New("webdav: no such lock")
 )
 
 // Condition can match a WebDAV resource, based on a token or ETag.
@@ -24,21 +32,414 @@
 	ETag  string
 }
 
+// LockSystem manages access to a collection of named resources. The elements
+// in a lock name are separated by slash ('/', U+002F) characters, regardless
+// of host operating system convention.
 type LockSystem interface {
-	// TODO: comment that the conditions should be ANDed together.
-	Confirm(path string, conditions ...Condition) (c io.Closer, err error)
-	// TODO: comment that token should be an absolute URI as defined by RFC 3986,
-	// Section 4.3. In particular, it should not contain whitespace.
-	Create(path string, now time.Time, ld LockDetails) (token string, c io.Closer, err error)
-	Refresh(token string, now time.Time, duration time.Duration) (ld LockDetails, c io.Closer, err error)
-	Unlock(token string) error
+	// Confirm confirms that the caller can claim all of the locks specified by
+	// the given conditions, and that holding the union of all of those locks
+	// gives exclusive access to all of the named resources. Up to two resources
+	// can be named. Empty names are ignored.
+	//
+	// Exactly one of release and err will be non-nil. If release is non-nil,
+	// all of the requested locks are held until release is called. Calling
+	// release does not unlock the lock, in the WebDAV UNLOCK sense, but once
+	// Confirm has confirmed that a lock claim is valid, that lock cannot be
+	// Confirmed again until it has been released.
+	//
+	// If Confirm returns ErrConfirmationFailed then the Handler will continue
+	// to try any other set of locks presented (a WebDAV HTTP request can
+	// present more than one set of locks). If it returns any other non-nil
+	// error, the Handler will write a "500 Internal Server Error" HTTP status.
+	Confirm(now time.Time, name0, name1 string, conditions ...Condition) (release func(), err error)
+
+	// Create creates a lock with the given depth, duration, owner and root
+	// (name). The depth will either be negative (meaning infinite) or zero.
+	//
+	// If Create returns ErrLocked then the Handler will write a "423 Locked"
+	// HTTP status. If it returns any other non-nil error, the Handler will
+	// write a "500 Internal Server Error" HTTP status.
+	//
+	// See http://www.webdav.org/specs/rfc4918.html#rfc.section.9.10.6 for
+	// when to use each error.
+	//
+	// The token returned identifies the created lock. It should be an absolute
+	// URI as defined by RFC 3986, Section 4.3. In particular, it should not
+	// contain whitespace.
+	Create(now time.Time, details LockDetails) (token string, err error)
+
+	// Refresh refreshes the lock with the given token.
+	//
+	// If Refresh returns ErrLocked then the Handler will write a "423 Locked"
+	// HTTP Status. If Refresh returns ErrNoSuchLock then the Handler will write
+	// a "412 Precondition Failed" HTTP Status. If it returns any other non-nil
+	// error, the Handler will write a "500 Internal Server Error" HTTP status.
+	//
+	// See http://www.webdav.org/specs/rfc4918.html#rfc.section.9.10.6 for
+	// when to use each error.
+	Refresh(now time.Time, token string, duration time.Duration) (LockDetails, error)
+
+	// Unlock unlocks the lock with the given token.
+	//
+	// If Unlock returns ErrForbidden then the Handler will write a "403
+	// Forbidden" HTTP Status. If Unlock returns ErrLocked then the Handler
+	// will write a "423 Locked" HTTP status. If Unlock returns ErrNoSuchLock
+	// then the Handler will write a "409 Conflict" HTTP Status. If it returns
+	// any other non-nil error, the Handler will write a "500 Internal Server
+	// Error" HTTP status.
+	//
+	// See http://www.webdav.org/specs/rfc4918.html#rfc.section.9.11.1 for
+	// when to use each error.
+	Unlock(now time.Time, token string) error
 }
 
+// LockDetails are a lock's metadata.
 type LockDetails struct {
-	Depth    int           // Negative means infinite depth.
-	Duration time.Duration // Negative means unlimited duration.
-	OwnerXML string        // Verbatim XML.
-	Path     string
+	// Root is the root resource name being locked. For a zero-depth lock, the
+	// root is the only resource being locked.
+	Root string
+	// Duration is the lock timeout. A negative duration means infinite.
+	Duration time.Duration
+	// OwnerXML is the verbatim <owner> XML given in a LOCK HTTP request.
+	//
+	// TODO: does the "verbatim" nature play well with XML namespaces?
+	// Does the OwnerXML field need to have more structure? See
+	// https://codereview.appspot.com/175140043/#msg2
+	OwnerXML string
+	// ZeroDepth is whether the lock has zero depth. If it does not have zero
+	// depth, it has infinite depth.
+	ZeroDepth bool
 }
 
-// TODO: a MemLS implementation.
+// NewMemLS returns a new in-memory LockSystem.
+func NewMemLS() LockSystem {
+	return &memLS{
+		byName:  make(map[string]*memLSNode),
+		byToken: make(map[string]*memLSNode),
+		gen:     uint64(time.Now().Unix()),
+	}
+}
+
+type memLS struct {
+	mu      sync.Mutex
+	byName  map[string]*memLSNode
+	byToken map[string]*memLSNode
+	gen     uint64
+	// byExpiry only contains those nodes whose LockDetails have a finite
+	// Duration and are yet to expire.
+	byExpiry byExpiry
+}
+
+func (m *memLS) nextToken() string {
+	m.gen++
+	return strconv.FormatUint(m.gen, 10)
+}
+
+func (m *memLS) collectExpiredNodes(now time.Time) {
+	for len(m.byExpiry) > 0 {
+		if now.Before(m.byExpiry[0].expiry) {
+			break
+		}
+		m.remove(m.byExpiry[0])
+	}
+}
+
+func (m *memLS) Confirm(now time.Time, name0, name1 string, conditions ...Condition) (func(), error) {
+	m.mu.Lock()
+	defer m.mu.Unlock()
+	m.collectExpiredNodes(now)
+
+	var n0, n1 *memLSNode
+	if name0 != "" {
+		if n0 = m.lookup(slashClean(name0), conditions...); n0 == nil {
+			return nil, ErrConfirmationFailed
+		}
+	}
+	if name1 != "" {
+		if n1 = m.lookup(slashClean(name1), conditions...); n1 == nil {
+			return nil, ErrConfirmationFailed
+		}
+	}
+
+	// Don't hold the same node twice.
+	if n1 == n0 {
+		n1 = nil
+	}
+
+	if n0 != nil {
+		m.hold(n0)
+	}
+	if n1 != nil {
+		m.hold(n1)
+	}
+	return func() {
+		m.mu.Lock()
+		defer m.mu.Unlock()
+		if n1 != nil {
+			m.unhold(n1)
+		}
+		if n0 != nil {
+			m.unhold(n0)
+		}
+	}, nil
+}
+
+// lookup returns the node n that locks the named resource, provided that n
+// matches at least one of the given conditions and that lock isn't held by
+// another party. Otherwise, it returns nil.
+//
+// n may be a parent of the named resource, if n is an infinite depth lock.
+func (m *memLS) lookup(name string, conditions ...Condition) (n *memLSNode) {
+	// TODO: support Condition.Not and Condition.ETag.
+	for _, c := range conditions {
+		n = m.byToken[c.Token]
+		if n == nil || n.held {
+			continue
+		}
+		if name == n.details.Root {
+			return n
+		}
+		if n.details.ZeroDepth {
+			continue
+		}
+		if n.details.Root == "/" || strings.HasPrefix(name, n.details.Root+"/") {
+			return n
+		}
+	}
+	return nil
+}
+
+func (m *memLS) hold(n *memLSNode) {
+	if n.held {
+		panic("webdav: memLS inconsistent held state")
+	}
+	n.held = true
+	if n.details.Duration >= 0 && n.byExpiryIndex >= 0 {
+		heap.Remove(&m.byExpiry, n.byExpiryIndex)
+	}
+}
+
+func (m *memLS) unhold(n *memLSNode) {
+	if !n.held {
+		panic("webdav: memLS inconsistent held state")
+	}
+	n.held = false
+	if n.details.Duration >= 0 {
+		heap.Push(&m.byExpiry, n)
+	}
+}
+
+func (m *memLS) Create(now time.Time, details LockDetails) (string, error) {
+	m.mu.Lock()
+	defer m.mu.Unlock()
+	m.collectExpiredNodes(now)
+	details.Root = slashClean(details.Root)
+
+	if !m.canCreate(details.Root, details.ZeroDepth) {
+		return "", ErrLocked
+	}
+	n := m.create(details.Root)
+	n.token = m.nextToken()
+	m.byToken[n.token] = n
+	n.details = details
+	if n.details.Duration >= 0 {
+		n.expiry = now.Add(n.details.Duration)
+		heap.Push(&m.byExpiry, n)
+	}
+	return n.token, nil
+}
+
+func (m *memLS) Refresh(now time.Time, token string, duration time.Duration) (LockDetails, error) {
+	m.mu.Lock()
+	defer m.mu.Unlock()
+	m.collectExpiredNodes(now)
+
+	n := m.byToken[token]
+	if n == nil {
+		return LockDetails{}, ErrNoSuchLock
+	}
+	if n.held {
+		return LockDetails{}, ErrLocked
+	}
+	if n.byExpiryIndex >= 0 {
+		heap.Remove(&m.byExpiry, n.byExpiryIndex)
+	}
+	n.details.Duration = duration
+	if n.details.Duration >= 0 {
+		n.expiry = now.Add(n.details.Duration)
+		heap.Push(&m.byExpiry, n)
+	}
+	return n.details, nil
+}
+
+func (m *memLS) Unlock(now time.Time, token string) error {
+	m.mu.Lock()
+	defer m.mu.Unlock()
+	m.collectExpiredNodes(now)
+
+	n := m.byToken[token]
+	if n == nil {
+		return ErrNoSuchLock
+	}
+	if n.held {
+		return ErrLocked
+	}
+	m.remove(n)
+	return nil
+}
+
+func (m *memLS) canCreate(name string, zeroDepth bool) bool {
+	return walkToRoot(name, func(name0 string, first bool) bool {
+		n := m.byName[name0]
+		if n == nil {
+			return true
+		}
+		if first {
+			if n.token != "" {
+				// The target node is already locked.
+				return false
+			}
+			if !zeroDepth {
+				// The requested lock depth is infinite, and the fact that n exists
+				// (n != nil) means that a descendent of the target node is locked.
+				return false
+			}
+		} else if n.token != "" && !n.details.ZeroDepth {
+			// An ancestor of the target node is locked with infinite depth.
+			return false
+		}
+		return true
+	})
+}
+
+func (m *memLS) create(name string) (ret *memLSNode) {
+	walkToRoot(name, func(name0 string, first bool) bool {
+		n := m.byName[name0]
+		if n == nil {
+			n = &memLSNode{
+				details: LockDetails{
+					Root: name0,
+				},
+				byExpiryIndex: -1,
+			}
+			m.byName[name0] = n
+		}
+		n.refCount++
+		if first {
+			ret = n
+		}
+		return true
+	})
+	return ret
+}
+
+func (m *memLS) remove(n *memLSNode) {
+	delete(m.byToken, n.token)
+	n.token = ""
+	walkToRoot(n.details.Root, func(name0 string, first bool) bool {
+		x := m.byName[name0]
+		x.refCount--
+		if x.refCount == 0 {
+			delete(m.byName, name0)
+		}
+		return true
+	})
+	if n.byExpiryIndex >= 0 {
+		heap.Remove(&m.byExpiry, n.byExpiryIndex)
+	}
+}
+
+func walkToRoot(name string, f func(name0 string, first bool) bool) bool {
+	for first := true; ; first = false {
+		if !f(name, first) {
+			return false
+		}
+		if name == "/" {
+			break
+		}
+		name = name[:strings.LastIndex(name, "/")]
+		if name == "" {
+			name = "/"
+		}
+	}
+	return true
+}
+
+type memLSNode struct {
+	// details are the lock metadata. Even if this node's name is not explicitly locked,
+	// details.Root will still equal the node's name.
+	details LockDetails
+	// token is the unique identifier for this node's lock. An empty token means that
+	// this node is not explicitly locked.
+	token string
+	// refCount is the number of self-or-descendent nodes that are explicitly locked.
+	refCount int
+	// expiry is when this node's lock expires.
+	expiry time.Time
+	// byExpiryIndex is the index of this node in memLS.byExpiry. It is -1
+	// if this node does not expire, or has expired.
+	byExpiryIndex int
+	// held is whether this node's lock is actively held by a Confirm call.
+	held bool
+}
+
+type byExpiry []*memLSNode
+
+func (b *byExpiry) Len() int {
+	return len(*b)
+}
+
+func (b *byExpiry) Less(i, j int) bool {
+	return (*b)[i].expiry.Before((*b)[j].expiry)
+}
+
+func (b *byExpiry) Swap(i, j int) {
+	(*b)[i], (*b)[j] = (*b)[j], (*b)[i]
+	(*b)[i].byExpiryIndex = i
+	(*b)[j].byExpiryIndex = j
+}
+
+func (b *byExpiry) Push(x interface{}) {
+	n := x.(*memLSNode)
+	n.byExpiryIndex = len(*b)
+	*b = append(*b, n)
+}
+
+func (b *byExpiry) Pop() interface{} {
+	i := len(*b) - 1
+	n := (*b)[i]
+	(*b)[i] = nil
+	n.byExpiryIndex = -1
+	*b = (*b)[:i]
+	return n
+}
+
+const infiniteTimeout = -1
+
+// parseTimeout parses the Timeout HTTP header, as per section 10.7. If s is
+// empty, an infiniteTimeout is returned.
+func parseTimeout(s string) (time.Duration, error) {
+	if s == "" {
+		return infiniteTimeout, nil
+	}
+	if i := strings.IndexByte(s, ','); i >= 0 {
+		s = s[:i]
+	}
+	s = strings.TrimSpace(s)
+	if s == "Infinite" {
+		return infiniteTimeout, nil
+	}
+	const pre = "Second-"
+	if !strings.HasPrefix(s, pre) {
+		return 0, errInvalidTimeout
+	}
+	s = s[len(pre):]
+	if s == "" || s[0] < '0' || '9' < s[0] {
+		return 0, errInvalidTimeout
+	}
+	n, err := strconv.ParseInt(s, 10, 64)
+	if err != nil || 1<<32-1 < n {
+		return 0, errInvalidTimeout
+	}
+	return time.Duration(n) * time.Second, nil
+}
diff --git a/go/src/golang.org/x/net/webdav/lock_test.go b/go/src/golang.org/x/net/webdav/lock_test.go
new file mode 100644
index 0000000..116d6c0
--- /dev/null
+++ b/go/src/golang.org/x/net/webdav/lock_test.go
@@ -0,0 +1,731 @@
+// Copyright 2014 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package webdav
+
+import (
+	"fmt"
+	"math/rand"
+	"path"
+	"reflect"
+	"sort"
+	"strconv"
+	"strings"
+	"testing"
+	"time"
+)
+
+func TestWalkToRoot(t *testing.T) {
+	testCases := []struct {
+		name string
+		want []string
+	}{{
+		"/a/b/c/d",
+		[]string{
+			"/a/b/c/d",
+			"/a/b/c",
+			"/a/b",
+			"/a",
+			"/",
+		},
+	}, {
+		"/a",
+		[]string{
+			"/a",
+			"/",
+		},
+	}, {
+		"/",
+		[]string{
+			"/",
+		},
+	}}
+
+	for _, tc := range testCases {
+		var got []string
+		if !walkToRoot(tc.name, func(name0 string, first bool) bool {
+			if first != (len(got) == 0) {
+				t.Errorf("name=%q: first=%t but len(got)==%d", tc.name, first, len(got))
+				return false
+			}
+			got = append(got, name0)
+			return true
+		}) {
+			continue
+		}
+		if !reflect.DeepEqual(got, tc.want) {
+			t.Errorf("name=%q:\ngot  %q\nwant %q", tc.name, got, tc.want)
+		}
+	}
+}
+
+var lockTestDurations = []time.Duration{
+	infiniteTimeout, // infiniteTimeout means to never expire.
+	0,               // A zero duration means to expire immediately.
+	100 * time.Hour, // A very large duration will not expire in these tests.
+}
+
+// lockTestNames are the names of a set of mutually compatible locks. For each
+// name fragment:
+//	- _ means no explicit lock.
+//	- i means a infinite-depth lock,
+//	- z means a zero-depth lock,
+var lockTestNames = []string{
+	"/_/_/_/_/z",
+	"/_/_/i",
+	"/_/z",
+	"/_/z/i",
+	"/_/z/z",
+	"/_/z/_/i",
+	"/_/z/_/z",
+	"/i",
+	"/z",
+	"/z/_/i",
+	"/z/_/z",
+}
+
+func lockTestZeroDepth(name string) bool {
+	switch name[len(name)-1] {
+	case 'i':
+		return false
+	case 'z':
+		return true
+	}
+	panic(fmt.Sprintf("lock name %q did not end with 'i' or 'z'", name))
+}
+
+func TestMemLSCanCreate(t *testing.T) {
+	now := time.Unix(0, 0)
+	m := NewMemLS().(*memLS)
+
+	for _, name := range lockTestNames {
+		_, err := m.Create(now, LockDetails{
+			Root:      name,
+			Duration:  infiniteTimeout,
+			ZeroDepth: lockTestZeroDepth(name),
+		})
+		if err != nil {
+			t.Fatalf("creating lock for %q: %v", name, err)
+		}
+	}
+
+	wantCanCreate := func(name string, zeroDepth bool) bool {
+		for _, n := range lockTestNames {
+			switch {
+			case n == name:
+				// An existing lock has the same name as the proposed lock.
+				return false
+			case strings.HasPrefix(n, name):
+				// An existing lock would be a child of the proposed lock,
+				// which conflicts if the proposed lock has infinite depth.
+				if !zeroDepth {
+					return false
+				}
+			case strings.HasPrefix(name, n):
+				// An existing lock would be an ancestor of the proposed lock,
+				// which conflicts if the ancestor has infinite depth.
+				if n[len(n)-1] == 'i' {
+					return false
+				}
+			}
+		}
+		return true
+	}
+
+	var check func(int, string)
+	check = func(recursion int, name string) {
+		for _, zeroDepth := range []bool{false, true} {
+			got := m.canCreate(name, zeroDepth)
+			want := wantCanCreate(name, zeroDepth)
+			if got != want {
+				t.Errorf("canCreate name=%q zeroDepth=%t: got %t, want %t", name, zeroDepth, got, want)
+			}
+		}
+		if recursion == 6 {
+			return
+		}
+		if name != "/" {
+			name += "/"
+		}
+		for _, c := range "_iz" {
+			check(recursion+1, name+string(c))
+		}
+	}
+	check(0, "/")
+}
+
+func TestMemLSLookup(t *testing.T) {
+	now := time.Unix(0, 0)
+	m := NewMemLS().(*memLS)
+
+	badToken := m.nextToken()
+	t.Logf("badToken=%q", badToken)
+
+	for _, name := range lockTestNames {
+		token, err := m.Create(now, LockDetails{
+			Root:      name,
+			Duration:  infiniteTimeout,
+			ZeroDepth: lockTestZeroDepth(name),
+		})
+		if err != nil {
+			t.Fatalf("creating lock for %q: %v", name, err)
+		}
+		t.Logf("%-15q -> node=%p token=%q", name, m.byName[name], token)
+	}
+
+	baseNames := append([]string{"/a", "/b/c"}, lockTestNames...)
+	for _, baseName := range baseNames {
+		for _, suffix := range []string{"", "/0", "/1/2/3"} {
+			name := baseName + suffix
+
+			goodToken := ""
+			base := m.byName[baseName]
+			if base != nil && (suffix == "" || !lockTestZeroDepth(baseName)) {
+				goodToken = base.token
+			}
+
+			for _, token := range []string{badToken, goodToken} {
+				if token == "" {
+					continue
+				}
+
+				got := m.lookup(name, Condition{Token: token})
+				want := base
+				if token == badToken {
+					want = nil
+				}
+				if got != want {
+					t.Errorf("name=%-20qtoken=%q (bad=%t): got %p, want %p",
+						name, token, token == badToken, got, want)
+				}
+			}
+		}
+	}
+}
+
+func TestMemLSConfirm(t *testing.T) {
+	now := time.Unix(0, 0)
+	m := NewMemLS().(*memLS)
+	alice, err := m.Create(now, LockDetails{
+		Root:      "/alice",
+		Duration:  infiniteTimeout,
+		ZeroDepth: false,
+	})
+	tweedle, err := m.Create(now, LockDetails{
+		Root:      "/tweedle",
+		Duration:  infiniteTimeout,
+		ZeroDepth: false,
+	})
+	if err != nil {
+		t.Fatalf("Create: %v", err)
+	}
+	if err := m.consistent(); err != nil {
+		t.Fatalf("Create: inconsistent state: %v", err)
+	}
+
+	// Test a mismatch between name and condition.
+	_, err = m.Confirm(now, "/tweedle/dee", "", Condition{Token: alice})
+	if err != ErrConfirmationFailed {
+		t.Fatalf("Confirm (mismatch): got %v, want ErrConfirmationFailed", err)
+	}
+	if err := m.consistent(); err != nil {
+		t.Fatalf("Confirm (mismatch): inconsistent state: %v", err)
+	}
+
+	// Test two names (that fall under the same lock) in the one Confirm call.
+	release, err := m.Confirm(now, "/tweedle/dee", "/tweedle/dum", Condition{Token: tweedle})
+	if err != nil {
+		t.Fatalf("Confirm (twins): %v", err)
+	}
+	if err := m.consistent(); err != nil {
+		t.Fatalf("Confirm (twins): inconsistent state: %v", err)
+	}
+	release()
+	if err := m.consistent(); err != nil {
+		t.Fatalf("release (twins): inconsistent state: %v", err)
+	}
+
+	// Test the same two names in overlapping Confirm / release calls.
+	releaseDee, err := m.Confirm(now, "/tweedle/dee", "", Condition{Token: tweedle})
+	if err != nil {
+		t.Fatalf("Confirm (sequence #0): %v", err)
+	}
+	if err := m.consistent(); err != nil {
+		t.Fatalf("Confirm (sequence #0): inconsistent state: %v", err)
+	}
+
+	_, err = m.Confirm(now, "/tweedle/dum", "", Condition{Token: tweedle})
+	if err != ErrConfirmationFailed {
+		t.Fatalf("Confirm (sequence #1): got %v, want ErrConfirmationFailed", err)
+	}
+	if err := m.consistent(); err != nil {
+		t.Fatalf("Confirm (sequence #1): inconsistent state: %v", err)
+	}
+
+	releaseDee()
+	if err := m.consistent(); err != nil {
+		t.Fatalf("release (sequence #2): inconsistent state: %v", err)
+	}
+
+	releaseDum, err := m.Confirm(now, "/tweedle/dum", "", Condition{Token: tweedle})
+	if err != nil {
+		t.Fatalf("Confirm (sequence #3): %v", err)
+	}
+	if err := m.consistent(); err != nil {
+		t.Fatalf("Confirm (sequence #3): inconsistent state: %v", err)
+	}
+
+	// Test that you can't unlock a held lock.
+	err = m.Unlock(now, tweedle)
+	if err != ErrLocked {
+		t.Fatalf("Unlock (sequence #4): got %v, want ErrLocked", err)
+	}
+
+	releaseDum()
+	if err := m.consistent(); err != nil {
+		t.Fatalf("release (sequence #5): inconsistent state: %v", err)
+	}
+
+	err = m.Unlock(now, tweedle)
+	if err != nil {
+		t.Fatalf("Unlock (sequence #6): %v", err)
+	}
+	if err := m.consistent(); err != nil {
+		t.Fatalf("Unlock (sequence #6): inconsistent state: %v", err)
+	}
+}
+
+func TestMemLSNonCanonicalRoot(t *testing.T) {
+	now := time.Unix(0, 0)
+	m := NewMemLS().(*memLS)
+	token, err := m.Create(now, LockDetails{
+		Root:     "/foo/./bar//",
+		Duration: 1 * time.Second,
+	})
+	if err != nil {
+		t.Fatalf("Create: %v", err)
+	}
+	if err := m.consistent(); err != nil {
+		t.Fatalf("Create: inconsistent state: %v", err)
+	}
+	if err := m.Unlock(now, token); err != nil {
+		t.Fatalf("Unlock: %v", err)
+	}
+	if err := m.consistent(); err != nil {
+		t.Fatalf("Unlock: inconsistent state: %v", err)
+	}
+}
+
+func TestMemLSExpiry(t *testing.T) {
+	m := NewMemLS().(*memLS)
+	testCases := []string{
+		"setNow 0",
+		"create /a.5",
+		"want /a.5",
+		"create /c.6",
+		"want /a.5 /c.6",
+		"create /a/b.7",
+		"want /a.5 /a/b.7 /c.6",
+		"setNow 4",
+		"want /a.5 /a/b.7 /c.6",
+		"setNow 5",
+		"want /a/b.7 /c.6",
+		"setNow 6",
+		"want /a/b.7",
+		"setNow 7",
+		"want ",
+		"setNow 8",
+		"want ",
+		"create /a.12",
+		"create /b.13",
+		"create /c.15",
+		"create /a/d.16",
+		"want /a.12 /a/d.16 /b.13 /c.15",
+		"refresh /a.14",
+		"want /a.14 /a/d.16 /b.13 /c.15",
+		"setNow 12",
+		"want /a.14 /a/d.16 /b.13 /c.15",
+		"setNow 13",
+		"want /a.14 /a/d.16 /c.15",
+		"setNow 14",
+		"want /a/d.16 /c.15",
+		"refresh /a/d.20",
+		"refresh /c.20",
+		"want /a/d.20 /c.20",
+		"setNow 20",
+		"want ",
+	}
+
+	tokens := map[string]string{}
+	zTime := time.Unix(0, 0)
+	now := zTime
+	for i, tc := range testCases {
+		j := strings.IndexByte(tc, ' ')
+		if j < 0 {
+			t.Fatalf("test case #%d %q: invalid command", i, tc)
+		}
+		op, arg := tc[:j], tc[j+1:]
+		switch op {
+		default:
+			t.Fatalf("test case #%d %q: invalid operation %q", i, tc, op)
+
+		case "create", "refresh":
+			parts := strings.Split(arg, ".")
+			if len(parts) != 2 {
+				t.Fatalf("test case #%d %q: invalid create", i, tc)
+			}
+			root := parts[0]
+			d, err := strconv.Atoi(parts[1])
+			if err != nil {
+				t.Fatalf("test case #%d %q: invalid duration", i, tc)
+			}
+			dur := time.Unix(0, 0).Add(time.Duration(d) * time.Second).Sub(now)
+
+			switch op {
+			case "create":
+				token, err := m.Create(now, LockDetails{
+					Root:      root,
+					Duration:  dur,
+					ZeroDepth: true,
+				})
+				if err != nil {
+					t.Fatalf("test case #%d %q: Create: %v", i, tc, err)
+				}
+				tokens[root] = token
+
+			case "refresh":
+				token := tokens[root]
+				if token == "" {
+					t.Fatalf("test case #%d %q: no token for %q", i, tc, root)
+				}
+				got, err := m.Refresh(now, token, dur)
+				if err != nil {
+					t.Fatalf("test case #%d %q: Refresh: %v", i, tc, err)
+				}
+				want := LockDetails{
+					Root:      root,
+					Duration:  dur,
+					ZeroDepth: true,
+				}
+				if got != want {
+					t.Fatalf("test case #%d %q:\ngot  %v\nwant %v", i, tc, got, want)
+				}
+			}
+
+		case "setNow":
+			d, err := strconv.Atoi(arg)
+			if err != nil {
+				t.Fatalf("test case #%d %q: invalid duration", i, tc)
+			}
+			now = time.Unix(0, 0).Add(time.Duration(d) * time.Second)
+
+		case "want":
+			m.mu.Lock()
+			m.collectExpiredNodes(now)
+			got := make([]string, 0, len(m.byToken))
+			for _, n := range m.byToken {
+				got = append(got, fmt.Sprintf("%s.%d",
+					n.details.Root, n.expiry.Sub(zTime)/time.Second))
+			}
+			m.mu.Unlock()
+			sort.Strings(got)
+			want := []string{}
+			if arg != "" {
+				want = strings.Split(arg, " ")
+			}
+			if !reflect.DeepEqual(got, want) {
+				t.Fatalf("test case #%d %q:\ngot  %q\nwant %q", i, tc, got, want)
+			}
+		}
+
+		if err := m.consistent(); err != nil {
+			t.Fatalf("test case #%d %q: inconsistent state: %v", i, tc, err)
+		}
+	}
+}
+
+func TestMemLS(t *testing.T) {
+	now := time.Unix(0, 0)
+	m := NewMemLS().(*memLS)
+	rng := rand.New(rand.NewSource(0))
+	tokens := map[string]string{}
+	nConfirm, nCreate, nRefresh, nUnlock := 0, 0, 0, 0
+	const N = 2000
+
+	for i := 0; i < N; i++ {
+		name := lockTestNames[rng.Intn(len(lockTestNames))]
+		duration := lockTestDurations[rng.Intn(len(lockTestDurations))]
+		confirmed, unlocked := false, false
+
+		// If the name was already locked, we randomly confirm/release, refresh
+		// or unlock it. Otherwise, we create a lock.
+		token := tokens[name]
+		if token != "" {
+			switch rng.Intn(3) {
+			case 0:
+				confirmed = true
+				nConfirm++
+				release, err := m.Confirm(now, name, "", Condition{Token: token})
+				if err != nil {
+					t.Fatalf("iteration #%d: Confirm %q: %v", i, name, err)
+				}
+				if err := m.consistent(); err != nil {
+					t.Fatalf("iteration #%d: inconsistent state: %v", i, err)
+				}
+				release()
+
+			case 1:
+				nRefresh++
+				if _, err := m.Refresh(now, token, duration); err != nil {
+					t.Fatalf("iteration #%d: Refresh %q: %v", i, name, err)
+				}
+
+			case 2:
+				unlocked = true
+				nUnlock++
+				if err := m.Unlock(now, token); err != nil {
+					t.Fatalf("iteration #%d: Unlock %q: %v", i, name, err)
+				}
+			}
+
+		} else {
+			nCreate++
+			var err error
+			token, err = m.Create(now, LockDetails{
+				Root:      name,
+				Duration:  duration,
+				ZeroDepth: lockTestZeroDepth(name),
+			})
+			if err != nil {
+				t.Fatalf("iteration #%d: Create %q: %v", i, name, err)
+			}
+		}
+
+		if !confirmed {
+			if duration == 0 || unlocked {
+				// A zero-duration lock should expire immediately and is
+				// effectively equivalent to being unlocked.
+				tokens[name] = ""
+			} else {
+				tokens[name] = token
+			}
+		}
+
+		if err := m.consistent(); err != nil {
+			t.Fatalf("iteration #%d: inconsistent state: %v", i, err)
+		}
+	}
+
+	if nConfirm < N/10 {
+		t.Fatalf("too few Confirm calls: got %d, want >= %d", nConfirm, N/10)
+	}
+	if nCreate < N/10 {
+		t.Fatalf("too few Create calls: got %d, want >= %d", nCreate, N/10)
+	}
+	if nRefresh < N/10 {
+		t.Fatalf("too few Refresh calls: got %d, want >= %d", nRefresh, N/10)
+	}
+	if nUnlock < N/10 {
+		t.Fatalf("too few Unlock calls: got %d, want >= %d", nUnlock, N/10)
+	}
+}
+
+func (m *memLS) consistent() error {
+	m.mu.Lock()
+	defer m.mu.Unlock()
+
+	// If m.byName is non-empty, then it must contain an entry for the root "/",
+	// and its refCount should equal the number of locked nodes.
+	if len(m.byName) > 0 {
+		n := m.byName["/"]
+		if n == nil {
+			return fmt.Errorf(`non-empty m.byName does not contain the root "/"`)
+		}
+		if n.refCount != len(m.byToken) {
+			return fmt.Errorf("root node refCount=%d, differs from len(m.byToken)=%d", n.refCount, len(m.byToken))
+		}
+	}
+
+	for name, n := range m.byName {
+		// The map keys should be consistent with the node's copy of the key.
+		if n.details.Root != name {
+			return fmt.Errorf("node name %q != byName map key %q", n.details.Root, name)
+		}
+
+		// A name must be clean, and start with a "/".
+		if len(name) == 0 || name[0] != '/' {
+			return fmt.Errorf(`node name %q does not start with "/"`, name)
+		}
+		if name != path.Clean(name) {
+			return fmt.Errorf(`node name %q is not clean`, name)
+		}
+
+		// A node's refCount should be positive.
+		if n.refCount <= 0 {
+			return fmt.Errorf("non-positive refCount for node at name %q", name)
+		}
+
+		// A node's refCount should be the number of self-or-descendents that
+		// are locked (i.e. have a non-empty token).
+		var list []string
+		for name0, n0 := range m.byName {
+			// All of lockTestNames' name fragments are one byte long: '_', 'i' or 'z',
+			// so strings.HasPrefix is equivalent to self-or-descendent name match.
+			// We don't have to worry about "/foo/bar" being a false positive match
+			// for "/foo/b".
+			if strings.HasPrefix(name0, name) && n0.token != "" {
+				list = append(list, name0)
+			}
+		}
+		if n.refCount != len(list) {
+			sort.Strings(list)
+			return fmt.Errorf("node at name %q has refCount %d but locked self-or-descendents are %q (len=%d)",
+				name, n.refCount, list, len(list))
+		}
+
+		// A node n is in m.byToken if it has a non-empty token.
+		if n.token != "" {
+			if _, ok := m.byToken[n.token]; !ok {
+				return fmt.Errorf("node at name %q has token %q but not in m.byToken", name, n.token)
+			}
+		}
+
+		// A node n is in m.byExpiry if it has a non-negative byExpiryIndex.
+		if n.byExpiryIndex >= 0 {
+			if n.byExpiryIndex >= len(m.byExpiry) {
+				return fmt.Errorf("node at name %q has byExpiryIndex %d but m.byExpiry has length %d", name, n.byExpiryIndex, len(m.byExpiry))
+			}
+			if n != m.byExpiry[n.byExpiryIndex] {
+				return fmt.Errorf("node at name %q has byExpiryIndex %d but that indexes a different node", name, n.byExpiryIndex)
+			}
+		}
+	}
+
+	for token, n := range m.byToken {
+		// The map keys should be consistent with the node's copy of the key.
+		if n.token != token {
+			return fmt.Errorf("node token %q != byToken map key %q", n.token, token)
+		}
+
+		// Every node in m.byToken is in m.byName.
+		if _, ok := m.byName[n.details.Root]; !ok {
+			return fmt.Errorf("node at name %q in m.byToken but not in m.byName", n.details.Root)
+		}
+	}
+
+	for i, n := range m.byExpiry {
+		// The slice indices should be consistent with the node's copy of the index.
+		if n.byExpiryIndex != i {
+			return fmt.Errorf("node byExpiryIndex %d != byExpiry slice index %d", n.byExpiryIndex, i)
+		}
+
+		// Every node in m.byExpiry is in m.byName.
+		if _, ok := m.byName[n.details.Root]; !ok {
+			return fmt.Errorf("node at name %q in m.byExpiry but not in m.byName", n.details.Root)
+		}
+
+		// No node in m.byExpiry should be held.
+		if n.held {
+			return fmt.Errorf("node at name %q in m.byExpiry is held", n.details.Root)
+		}
+	}
+	return nil
+}
+
+func TestParseTimeout(t *testing.T) {
+	testCases := []struct {
+		s       string
+		want    time.Duration
+		wantErr error
+	}{{
+		"",
+		infiniteTimeout,
+		nil,
+	}, {
+		"Infinite",
+		infiniteTimeout,
+		nil,
+	}, {
+		"Infinitesimal",
+		0,
+		errInvalidTimeout,
+	}, {
+		"infinite",
+		0,
+		errInvalidTimeout,
+	}, {
+		"Second-0",
+		0 * time.Second,
+		nil,
+	}, {
+		"Second-123",
+		123 * time.Second,
+		nil,
+	}, {
+		"  Second-456    ",
+		456 * time.Second,
+		nil,
+	}, {
+		"Second-4100000000",
+		4100000000 * time.Second,
+		nil,
+	}, {
+		"junk",
+		0,
+		errInvalidTimeout,
+	}, {
+		"Second-",
+		0,
+		errInvalidTimeout,
+	}, {
+		"Second--1",
+		0,
+		errInvalidTimeout,
+	}, {
+		"Second--123",
+		0,
+		errInvalidTimeout,
+	}, {
+		"Second-+123",
+		0,
+		errInvalidTimeout,
+	}, {
+		"Second-0x123",
+		0,
+		errInvalidTimeout,
+	}, {
+		"second-123",
+		0,
+		errInvalidTimeout,
+	}, {
+		"Second-4294967295",
+		4294967295 * time.Second,
+		nil,
+	}, {
+		// Section 10.7 says that "The timeout value for TimeType "Second"
+		// must not be greater than 2^32-1."
+		"Second-4294967296",
+		0,
+		errInvalidTimeout,
+	}, {
+		// This test case comes from section 9.10.9 of the spec. It says,
+		//
+		// "In this request, the client has specified that it desires an
+		// infinite-length lock, if available, otherwise a timeout of 4.1
+		// billion seconds, if available."
+		//
+		// The Go WebDAV package always supports infinite length locks,
+		// and ignores the fallback after the comma.
+		"Infinite, Second-4100000000",
+		infiniteTimeout,
+		nil,
+	}}
+
+	for _, tc := range testCases {
+		got, gotErr := parseTimeout(tc.s)
+		if got != tc.want || gotErr != tc.wantErr {
+			t.Errorf("parsing %q:\ngot  %v, %v\nwant %v, %v", tc.s, got, gotErr, tc.want, tc.wantErr)
+		}
+	}
+}
diff --git a/go/src/golang.org/x/net/webdav/prop.go b/go/src/golang.org/x/net/webdav/prop.go
new file mode 100644
index 0000000..9431f5e
--- /dev/null
+++ b/go/src/golang.org/x/net/webdav/prop.go
@@ -0,0 +1,384 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package webdav
+
+import (
+	"encoding/xml"
+	"fmt"
+	"io"
+	"mime"
+	"net/http"
+	"os"
+	"path/filepath"
+	"strconv"
+)
+
+// Proppatch describes a property update instruction as defined in RFC 4918.
+// See http://www.webdav.org/specs/rfc4918.html#METHOD_PROPPATCH
+type Proppatch struct {
+	// Remove specifies whether this patch removes properties. If it does not
+	// remove them, it sets them.
+	Remove bool
+	// Props contains the properties to be set or removed.
+	Props []Property
+}
+
+// Propstat describes a XML propstat element as defined in RFC 4918.
+// See http://www.webdav.org/specs/rfc4918.html#ELEMENT_propstat
+type Propstat struct {
+	// Props contains the properties for which Status applies.
+	Props []Property
+
+	// Status defines the HTTP status code of the properties in Prop.
+	// Allowed values include, but are not limited to the WebDAV status
+	// code extensions for HTTP/1.1.
+	// http://www.webdav.org/specs/rfc4918.html#status.code.extensions.to.http11
+	Status int
+
+	// XMLError contains the XML representation of the optional error element.
+	// XML content within this field must not rely on any predefined
+	// namespace declarations or prefixes. If empty, the XML error element
+	// is omitted.
+	XMLError string
+
+	// ResponseDescription contains the contents of the optional
+	// responsedescription field. If empty, the XML element is omitted.
+	ResponseDescription string
+}
+
+// makePropstats returns a slice containing those of x and y whose Props slice
+// is non-empty. If both are empty, it returns a slice containing an otherwise
+// zero Propstat whose HTTP status code is 200 OK.
+func makePropstats(x, y Propstat) []Propstat {
+	pstats := make([]Propstat, 0, 2)
+	if len(x.Props) != 0 {
+		pstats = append(pstats, x)
+	}
+	if len(y.Props) != 0 {
+		pstats = append(pstats, y)
+	}
+	if len(pstats) == 0 {
+		pstats = append(pstats, Propstat{
+			Status: http.StatusOK,
+		})
+	}
+	return pstats
+}
+
+// DeadPropsHolder holds the dead properties of a resource.
+//
+// Dead properties are those properties that are explicitly defined. In
+// comparison, live properties, such as DAV:getcontentlength, are implicitly
+// defined by the underlying resource, and cannot be explicitly overridden or
+// removed. See the Terminology section of
+// http://www.webdav.org/specs/rfc4918.html#rfc.section.3
+//
+// There is a whitelist of the names of live properties. This package handles
+// all live properties, and will only pass non-whitelisted names to the Patch
+// method of DeadPropsHolder implementations.
+type DeadPropsHolder interface {
+	// DeadProps returns a copy of the dead properties held.
+	DeadProps() (map[xml.Name]Property, error)
+
+	// Patch patches the dead properties held.
+	//
+	// Patching is atomic; either all or no patches succeed. It returns (nil,
+	// non-nil) if an internal server error occurred, otherwise the Propstats
+	// collectively contain one Property for each proposed patch Property. If
+	// all patches succeed, Patch returns a slice of length one and a Propstat
+	// element with a 200 OK HTTP status code. If none succeed, for reasons
+	// other than an internal server error, no Propstat has status 200 OK.
+	//
+	// For more details on when various HTTP status codes apply, see
+	// http://www.webdav.org/specs/rfc4918.html#PROPPATCH-status
+	Patch([]Proppatch) ([]Propstat, error)
+}
+
+// liveProps contains all supported, protected DAV: properties.
+var liveProps = map[xml.Name]struct {
+	// findFn implements the propfind function of this property. If nil,
+	// it indicates a hidden property.
+	findFn func(FileSystem, LockSystem, string, os.FileInfo) (string, error)
+	// dir is true if the property applies to directories.
+	dir bool
+}{
+	xml.Name{Space: "DAV:", Local: "resourcetype"}: {
+		findFn: findResourceType,
+		dir:    true,
+	},
+	xml.Name{Space: "DAV:", Local: "displayname"}: {
+		findFn: findDisplayName,
+		dir:    true,
+	},
+	xml.Name{Space: "DAV:", Local: "getcontentlength"}: {
+		findFn: findContentLength,
+		dir:    true,
+	},
+	xml.Name{Space: "DAV:", Local: "getlastmodified"}: {
+		findFn: findLastModified,
+		dir:    true,
+	},
+	xml.Name{Space: "DAV:", Local: "creationdate"}: {
+		findFn: nil,
+		dir:    true,
+	},
+	xml.Name{Space: "DAV:", Local: "getcontentlanguage"}: {
+		findFn: nil,
+		dir:    true,
+	},
+	xml.Name{Space: "DAV:", Local: "getcontenttype"}: {
+		findFn: findContentType,
+		dir:    true,
+	},
+	xml.Name{Space: "DAV:", Local: "getetag"}: {
+		findFn: findETag,
+		// findETag implements ETag as the concatenated hex values of a file's
+		// modification time and size. This is not a reliable synchronization
+		// mechanism for directories, so we do not advertise getetag for DAV
+		// collections.
+		dir: false,
+	},
+
+	// TODO: The lockdiscovery property requires LockSystem to list the
+	// active locks on a resource.
+	xml.Name{Space: "DAV:", Local: "lockdiscovery"}: {},
+	xml.Name{Space: "DAV:", Local: "supportedlock"}: {
+		findFn: findSupportedLock,
+		dir:    true,
+	},
+}
+
+// TODO(nigeltao) merge props and allprop?
+
+// Props returns the status of the properties named pnames for resource name.
+//
+// Each Propstat has a unique status and each property name will only be part
+// of one Propstat element.
+func props(fs FileSystem, ls LockSystem, name string, pnames []xml.Name) ([]Propstat, error) {
+	f, err := fs.OpenFile(name, os.O_RDONLY, 0)
+	if err != nil {
+		return nil, err
+	}
+	defer f.Close()
+	fi, err := f.Stat()
+	if err != nil {
+		return nil, err
+	}
+	isDir := fi.IsDir()
+
+	var deadProps map[xml.Name]Property
+	if dph, ok := f.(DeadPropsHolder); ok {
+		deadProps, err = dph.DeadProps()
+		if err != nil {
+			return nil, err
+		}
+	}
+
+	pstatOK := Propstat{Status: http.StatusOK}
+	pstatNotFound := Propstat{Status: http.StatusNotFound}
+	for _, pn := range pnames {
+		// If this file has dead properties, check if they contain pn.
+		if dp, ok := deadProps[pn]; ok {
+			pstatOK.Props = append(pstatOK.Props, dp)
+			continue
+		}
+		// Otherwise, it must either be a live property or we don't know it.
+		if prop := liveProps[pn]; prop.findFn != nil && (prop.dir || !isDir) {
+			innerXML, err := prop.findFn(fs, ls, name, fi)
+			if err != nil {
+				return nil, err
+			}
+			pstatOK.Props = append(pstatOK.Props, Property{
+				XMLName:  pn,
+				InnerXML: []byte(innerXML),
+			})
+		} else {
+			pstatNotFound.Props = append(pstatNotFound.Props, Property{
+				XMLName: pn,
+			})
+		}
+	}
+	return makePropstats(pstatOK, pstatNotFound), nil
+}
+
+// Propnames returns the property names defined for resource name.
+func propnames(fs FileSystem, ls LockSystem, name string) ([]xml.Name, error) {
+	f, err := fs.OpenFile(name, os.O_RDONLY, 0)
+	if err != nil {
+		return nil, err
+	}
+	defer f.Close()
+	fi, err := f.Stat()
+	if err != nil {
+		return nil, err
+	}
+	isDir := fi.IsDir()
+
+	var deadProps map[xml.Name]Property
+	if dph, ok := f.(DeadPropsHolder); ok {
+		deadProps, err = dph.DeadProps()
+		if err != nil {
+			return nil, err
+		}
+	}
+
+	pnames := make([]xml.Name, 0, len(liveProps)+len(deadProps))
+	for pn, prop := range liveProps {
+		if prop.findFn != nil && (prop.dir || !isDir) {
+			pnames = append(pnames, pn)
+		}
+	}
+	for pn := range deadProps {
+		pnames = append(pnames, pn)
+	}
+	return pnames, nil
+}
+
+// Allprop returns the properties defined for resource name and the properties
+// named in include.
+//
+// Note that RFC 4918 defines 'allprop' to return the DAV: properties defined
+// within the RFC plus dead properties. Other live properties should only be
+// returned if they are named in 'include'.
+//
+// See http://www.webdav.org/specs/rfc4918.html#METHOD_PROPFIND
+func allprop(fs FileSystem, ls LockSystem, name string, include []xml.Name) ([]Propstat, error) {
+	pnames, err := propnames(fs, ls, name)
+	if err != nil {
+		return nil, err
+	}
+	// Add names from include if they are not already covered in pnames.
+	nameset := make(map[xml.Name]bool)
+	for _, pn := range pnames {
+		nameset[pn] = true
+	}
+	for _, pn := range include {
+		if !nameset[pn] {
+			pnames = append(pnames, pn)
+		}
+	}
+	return props(fs, ls, name, pnames)
+}
+
+// Patch patches the properties of resource name. The return values are
+// constrained in the same manner as DeadPropsHolder.Patch.
+func patch(fs FileSystem, ls LockSystem, name string, patches []Proppatch) ([]Propstat, error) {
+	conflict := false
+loop:
+	for _, patch := range patches {
+		for _, p := range patch.Props {
+			if _, ok := liveProps[p.XMLName]; ok {
+				conflict = true
+				break loop
+			}
+		}
+	}
+	if conflict {
+		pstatForbidden := Propstat{
+			Status:   http.StatusForbidden,
+			XMLError: `<D:cannot-modify-protected-property xmlns:D="DAV:"/>`,
+		}
+		pstatFailedDep := Propstat{
+			Status: StatusFailedDependency,
+		}
+		for _, patch := range patches {
+			for _, p := range patch.Props {
+				if _, ok := liveProps[p.XMLName]; ok {
+					pstatForbidden.Props = append(pstatForbidden.Props, Property{XMLName: p.XMLName})
+				} else {
+					pstatFailedDep.Props = append(pstatFailedDep.Props, Property{XMLName: p.XMLName})
+				}
+			}
+		}
+		return makePropstats(pstatForbidden, pstatFailedDep), nil
+	}
+
+	f, err := fs.OpenFile(name, os.O_RDWR, 0)
+	if err != nil {
+		return nil, err
+	}
+	defer f.Close()
+	if dph, ok := f.(DeadPropsHolder); ok {
+		ret, err := dph.Patch(patches)
+		if err != nil {
+			return nil, err
+		}
+		// http://www.webdav.org/specs/rfc4918.html#ELEMENT_propstat says that
+		// "The contents of the prop XML element must only list the names of
+		// properties to which the result in the status element applies."
+		for _, pstat := range ret {
+			for i, p := range pstat.Props {
+				pstat.Props[i] = Property{XMLName: p.XMLName}
+			}
+		}
+		return ret, nil
+	}
+	// The file doesn't implement the optional DeadPropsHolder interface, so
+	// all patches are forbidden.
+	pstat := Propstat{Status: http.StatusForbidden}
+	for _, patch := range patches {
+		for _, p := range patch.Props {
+			pstat.Props = append(pstat.Props, Property{XMLName: p.XMLName})
+		}
+	}
+	return []Propstat{pstat}, nil
+}
+
+func findResourceType(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {
+	if fi.IsDir() {
+		return `<D:collection xmlns:D="DAV:"/>`, nil
+	}
+	return "", nil
+}
+
+func findDisplayName(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {
+	if slashClean(name) == "/" {
+		// Hide the real name of a possibly prefixed root directory.
+		return "", nil
+	}
+	return fi.Name(), nil
+}
+
+func findContentLength(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {
+	return strconv.FormatInt(fi.Size(), 10), nil
+}
+
+func findLastModified(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {
+	return fi.ModTime().Format(http.TimeFormat), nil
+}
+
+func findContentType(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {
+	f, err := fs.OpenFile(name, os.O_RDONLY, 0)
+	if err != nil {
+		return "", err
+	}
+	defer f.Close()
+	// This implementation is based on serveContent's code in the standard net/http package.
+	ctype := mime.TypeByExtension(filepath.Ext(name))
+	if ctype == "" {
+		// Read a chunk to decide between utf-8 text and binary.
+		var buf [512]byte
+		n, _ := io.ReadFull(f, buf[:])
+		ctype = http.DetectContentType(buf[:n])
+		// Rewind file.
+		_, err = f.Seek(0, os.SEEK_SET)
+	}
+	return ctype, err
+}
+
+func findETag(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {
+	// The Apache http 2.4 web server by default concatenates the
+	// modification time and size of a file. We replicate the heuristic
+	// with nanosecond granularity.
+	return fmt.Sprintf(`"%x%x"`, fi.ModTime().UnixNano(), fi.Size()), nil
+}
+
+func findSupportedLock(fs FileSystem, ls LockSystem, name string, fi os.FileInfo) (string, error) {
+	return `` +
+		`<D:lockentry xmlns:D="DAV:">` +
+		`<D:lockscope><D:exclusive/></D:lockscope>` +
+		`<D:locktype><D:write/></D:locktype>` +
+		`</D:lockentry>`, nil
+}
diff --git a/go/src/golang.org/x/net/webdav/prop_test.go b/go/src/golang.org/x/net/webdav/prop_test.go
new file mode 100644
index 0000000..8bf4aee
--- /dev/null
+++ b/go/src/golang.org/x/net/webdav/prop_test.go
@@ -0,0 +1,618 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package webdav
+
+import (
+	"encoding/xml"
+	"fmt"
+	"net/http"
+	"os"
+	"reflect"
+	"sort"
+	"testing"
+)
+
+func TestMemPS(t *testing.T) {
+	// calcProps calculates the getlastmodified and getetag DAV: property
+	// values in pstats for resource name in file-system fs.
+	calcProps := func(name string, fs FileSystem, ls LockSystem, pstats []Propstat) error {
+		fi, err := fs.Stat(name)
+		if err != nil {
+			return err
+		}
+		for _, pst := range pstats {
+			for i, p := range pst.Props {
+				switch p.XMLName {
+				case xml.Name{Space: "DAV:", Local: "getlastmodified"}:
+					p.InnerXML = []byte(fi.ModTime().Format(http.TimeFormat))
+					pst.Props[i] = p
+				case xml.Name{Space: "DAV:", Local: "getetag"}:
+					if fi.IsDir() {
+						continue
+					}
+					etag, err := findETag(fs, ls, name, fi)
+					if err != nil {
+						return err
+					}
+					p.InnerXML = []byte(etag)
+					pst.Props[i] = p
+				}
+			}
+		}
+		return nil
+	}
+
+	const (
+		lockEntry = `` +
+			`<D:lockentry xmlns:D="DAV:">` +
+			`<D:lockscope><D:exclusive/></D:lockscope>` +
+			`<D:locktype><D:write/></D:locktype>` +
+			`</D:lockentry>`
+		statForbiddenError = `<D:cannot-modify-protected-property xmlns:D="DAV:"/>`
+	)
+
+	type propOp struct {
+		op            string
+		name          string
+		pnames        []xml.Name
+		patches       []Proppatch
+		wantPnames    []xml.Name
+		wantPropstats []Propstat
+	}
+
+	testCases := []struct {
+		desc        string
+		noDeadProps bool
+		buildfs     []string
+		propOp      []propOp
+	}{{
+		desc:    "propname",
+		buildfs: []string{"mkdir /dir", "touch /file"},
+		propOp: []propOp{{
+			op:   "propname",
+			name: "/dir",
+			wantPnames: []xml.Name{
+				xml.Name{Space: "DAV:", Local: "resourcetype"},
+				xml.Name{Space: "DAV:", Local: "displayname"},
+				xml.Name{Space: "DAV:", Local: "getcontentlength"},
+				xml.Name{Space: "DAV:", Local: "getlastmodified"},
+				xml.Name{Space: "DAV:", Local: "getcontenttype"},
+				xml.Name{Space: "DAV:", Local: "supportedlock"},
+			},
+		}, {
+			op:   "propname",
+			name: "/file",
+			wantPnames: []xml.Name{
+				xml.Name{Space: "DAV:", Local: "resourcetype"},
+				xml.Name{Space: "DAV:", Local: "displayname"},
+				xml.Name{Space: "DAV:", Local: "getcontentlength"},
+				xml.Name{Space: "DAV:", Local: "getlastmodified"},
+				xml.Name{Space: "DAV:", Local: "getcontenttype"},
+				xml.Name{Space: "DAV:", Local: "getetag"},
+				xml.Name{Space: "DAV:", Local: "supportedlock"},
+			},
+		}},
+	}, {
+		desc:    "allprop dir and file",
+		buildfs: []string{"mkdir /dir", "write /file foobarbaz"},
+		propOp: []propOp{{
+			op:   "allprop",
+			name: "/dir",
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "DAV:", Local: "resourcetype"},
+					InnerXML: []byte(`<D:collection xmlns:D="DAV:"/>`),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "displayname"},
+					InnerXML: []byte("dir"),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "getcontentlength"},
+					InnerXML: []byte("0"),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "getlastmodified"},
+					InnerXML: nil, // Calculated during test.
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "getcontenttype"},
+					InnerXML: []byte("text/plain; charset=utf-8"),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "supportedlock"},
+					InnerXML: []byte(lockEntry),
+				}},
+			}},
+		}, {
+			op:   "allprop",
+			name: "/file",
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "DAV:", Local: "resourcetype"},
+					InnerXML: []byte(""),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "displayname"},
+					InnerXML: []byte("file"),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "getcontentlength"},
+					InnerXML: []byte("9"),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "getlastmodified"},
+					InnerXML: nil, // Calculated during test.
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "getcontenttype"},
+					InnerXML: []byte("text/plain; charset=utf-8"),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "getetag"},
+					InnerXML: nil, // Calculated during test.
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "supportedlock"},
+					InnerXML: []byte(lockEntry),
+				}},
+			}},
+		}, {
+			op:   "allprop",
+			name: "/file",
+			pnames: []xml.Name{
+				{"DAV:", "resourcetype"},
+				{"foo", "bar"},
+			},
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "DAV:", Local: "resourcetype"},
+					InnerXML: []byte(""),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "displayname"},
+					InnerXML: []byte("file"),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "getcontentlength"},
+					InnerXML: []byte("9"),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "getlastmodified"},
+					InnerXML: nil, // Calculated during test.
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "getcontenttype"},
+					InnerXML: []byte("text/plain; charset=utf-8"),
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "getetag"},
+					InnerXML: nil, // Calculated during test.
+				}, {
+					XMLName:  xml.Name{Space: "DAV:", Local: "supportedlock"},
+					InnerXML: []byte(lockEntry),
+				}}}, {
+				Status: http.StatusNotFound,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}}},
+			},
+		}},
+	}, {
+		desc:    "propfind DAV:resourcetype",
+		buildfs: []string{"mkdir /dir", "touch /file"},
+		propOp: []propOp{{
+			op:     "propfind",
+			name:   "/dir",
+			pnames: []xml.Name{{"DAV:", "resourcetype"}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "DAV:", Local: "resourcetype"},
+					InnerXML: []byte(`<D:collection xmlns:D="DAV:"/>`),
+				}},
+			}},
+		}, {
+			op:     "propfind",
+			name:   "/file",
+			pnames: []xml.Name{{"DAV:", "resourcetype"}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "DAV:", Local: "resourcetype"},
+					InnerXML: []byte(""),
+				}},
+			}},
+		}},
+	}, {
+		desc:    "propfind unsupported DAV properties",
+		buildfs: []string{"mkdir /dir"},
+		propOp: []propOp{{
+			op:     "propfind",
+			name:   "/dir",
+			pnames: []xml.Name{{"DAV:", "getcontentlanguage"}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusNotFound,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "DAV:", Local: "getcontentlanguage"},
+				}},
+			}},
+		}, {
+			op:     "propfind",
+			name:   "/dir",
+			pnames: []xml.Name{{"DAV:", "creationdate"}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusNotFound,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "DAV:", Local: "creationdate"},
+				}},
+			}},
+		}},
+	}, {
+		desc:    "propfind getetag for files but not for directories",
+		buildfs: []string{"mkdir /dir", "touch /file"},
+		propOp: []propOp{{
+			op:     "propfind",
+			name:   "/dir",
+			pnames: []xml.Name{{"DAV:", "getetag"}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusNotFound,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "DAV:", Local: "getetag"},
+				}},
+			}},
+		}, {
+			op:     "propfind",
+			name:   "/file",
+			pnames: []xml.Name{{"DAV:", "getetag"}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "DAV:", Local: "getetag"},
+					InnerXML: nil, // Calculated during test.
+				}},
+			}},
+		}},
+	}, {
+		desc:        "proppatch property on no-dead-properties file system",
+		buildfs:     []string{"mkdir /dir"},
+		noDeadProps: true,
+		propOp: []propOp{{
+			op:   "proppatch",
+			name: "/dir",
+			patches: []Proppatch{{
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}},
+			}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusForbidden,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}},
+			}},
+		}, {
+			op:   "proppatch",
+			name: "/dir",
+			patches: []Proppatch{{
+				Props: []Property{{
+					XMLName: xml.Name{Space: "DAV:", Local: "getetag"},
+				}},
+			}},
+			wantPropstats: []Propstat{{
+				Status:   http.StatusForbidden,
+				XMLError: statForbiddenError,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "DAV:", Local: "getetag"},
+				}},
+			}},
+		}},
+	}, {
+		desc:    "proppatch dead property",
+		buildfs: []string{"mkdir /dir"},
+		propOp: []propOp{{
+			op:   "proppatch",
+			name: "/dir",
+			patches: []Proppatch{{
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "foo", Local: "bar"},
+					InnerXML: []byte("baz"),
+				}},
+			}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}},
+			}},
+		}, {
+			op:     "propfind",
+			name:   "/dir",
+			pnames: []xml.Name{{Space: "foo", Local: "bar"}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "foo", Local: "bar"},
+					InnerXML: []byte("baz"),
+				}},
+			}},
+		}},
+	}, {
+		desc:    "proppatch dead property with failed dependency",
+		buildfs: []string{"mkdir /dir"},
+		propOp: []propOp{{
+			op:   "proppatch",
+			name: "/dir",
+			patches: []Proppatch{{
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "foo", Local: "bar"},
+					InnerXML: []byte("baz"),
+				}},
+			}, {
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "DAV:", Local: "displayname"},
+					InnerXML: []byte("xxx"),
+				}},
+			}},
+			wantPropstats: []Propstat{{
+				Status:   http.StatusForbidden,
+				XMLError: statForbiddenError,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "DAV:", Local: "displayname"},
+				}},
+			}, {
+				Status: StatusFailedDependency,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}},
+			}},
+		}, {
+			op:     "propfind",
+			name:   "/dir",
+			pnames: []xml.Name{{Space: "foo", Local: "bar"}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusNotFound,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}},
+			}},
+		}},
+	}, {
+		desc:    "proppatch remove dead property",
+		buildfs: []string{"mkdir /dir"},
+		propOp: []propOp{{
+			op:   "proppatch",
+			name: "/dir",
+			patches: []Proppatch{{
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "foo", Local: "bar"},
+					InnerXML: []byte("baz"),
+				}, {
+					XMLName:  xml.Name{Space: "spam", Local: "ham"},
+					InnerXML: []byte("eggs"),
+				}},
+			}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}, {
+					XMLName: xml.Name{Space: "spam", Local: "ham"},
+				}},
+			}},
+		}, {
+			op:   "propfind",
+			name: "/dir",
+			pnames: []xml.Name{
+				{Space: "foo", Local: "bar"},
+				{Space: "spam", Local: "ham"},
+			},
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "foo", Local: "bar"},
+					InnerXML: []byte("baz"),
+				}, {
+					XMLName:  xml.Name{Space: "spam", Local: "ham"},
+					InnerXML: []byte("eggs"),
+				}},
+			}},
+		}, {
+			op:   "proppatch",
+			name: "/dir",
+			patches: []Proppatch{{
+				Remove: true,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}},
+			}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}},
+			}},
+		}, {
+			op:   "propfind",
+			name: "/dir",
+			pnames: []xml.Name{
+				{Space: "foo", Local: "bar"},
+				{Space: "spam", Local: "ham"},
+			},
+			wantPropstats: []Propstat{{
+				Status: http.StatusNotFound,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}},
+			}, {
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "spam", Local: "ham"},
+					InnerXML: []byte("eggs"),
+				}},
+			}},
+		}},
+	}, {
+		desc:    "propname with dead property",
+		buildfs: []string{"touch /file"},
+		propOp: []propOp{{
+			op:   "proppatch",
+			name: "/file",
+			patches: []Proppatch{{
+				Props: []Property{{
+					XMLName:  xml.Name{Space: "foo", Local: "bar"},
+					InnerXML: []byte("baz"),
+				}},
+			}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}},
+			}},
+		}, {
+			op:   "propname",
+			name: "/file",
+			wantPnames: []xml.Name{
+				xml.Name{Space: "DAV:", Local: "resourcetype"},
+				xml.Name{Space: "DAV:", Local: "displayname"},
+				xml.Name{Space: "DAV:", Local: "getcontentlength"},
+				xml.Name{Space: "DAV:", Local: "getlastmodified"},
+				xml.Name{Space: "DAV:", Local: "getcontenttype"},
+				xml.Name{Space: "DAV:", Local: "getetag"},
+				xml.Name{Space: "DAV:", Local: "supportedlock"},
+				xml.Name{Space: "foo", Local: "bar"},
+			},
+		}},
+	}, {
+		desc:    "proppatch remove unknown dead property",
+		buildfs: []string{"mkdir /dir"},
+		propOp: []propOp{{
+			op:   "proppatch",
+			name: "/dir",
+			patches: []Proppatch{{
+				Remove: true,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}},
+			}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusOK,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo", Local: "bar"},
+				}},
+			}},
+		}},
+	}, {
+		desc:    "bad: propfind unknown property",
+		buildfs: []string{"mkdir /dir"},
+		propOp: []propOp{{
+			op:     "propfind",
+			name:   "/dir",
+			pnames: []xml.Name{{"foo:", "bar"}},
+			wantPropstats: []Propstat{{
+				Status: http.StatusNotFound,
+				Props: []Property{{
+					XMLName: xml.Name{Space: "foo:", Local: "bar"},
+				}},
+			}},
+		}},
+	}}
+
+	for _, tc := range testCases {
+		fs, err := buildTestFS(tc.buildfs)
+		if err != nil {
+			t.Fatalf("%s: cannot create test filesystem: %v", tc.desc, err)
+		}
+		if tc.noDeadProps {
+			fs = noDeadPropsFS{fs}
+		}
+		ls := NewMemLS()
+		for _, op := range tc.propOp {
+			desc := fmt.Sprintf("%s: %s %s", tc.desc, op.op, op.name)
+			if err = calcProps(op.name, fs, ls, op.wantPropstats); err != nil {
+				t.Fatalf("%s: calcProps: %v", desc, err)
+			}
+
+			// Call property system.
+			var propstats []Propstat
+			switch op.op {
+			case "propname":
+				pnames, err := propnames(fs, ls, op.name)
+				if err != nil {
+					t.Errorf("%s: got error %v, want nil", desc, err)
+					continue
+				}
+				sort.Sort(byXMLName(pnames))
+				sort.Sort(byXMLName(op.wantPnames))
+				if !reflect.DeepEqual(pnames, op.wantPnames) {
+					t.Errorf("%s: pnames\ngot  %q\nwant %q", desc, pnames, op.wantPnames)
+				}
+				continue
+			case "allprop":
+				propstats, err = allprop(fs, ls, op.name, op.pnames)
+			case "propfind":
+				propstats, err = props(fs, ls, op.name, op.pnames)
+			case "proppatch":
+				propstats, err = patch(fs, ls, op.name, op.patches)
+			default:
+				t.Fatalf("%s: %s not implemented", desc, op.op)
+			}
+			if err != nil {
+				t.Errorf("%s: got error %v, want nil", desc, err)
+				continue
+			}
+			// Compare return values from allprop, propfind or proppatch.
+			for _, pst := range propstats {
+				sort.Sort(byPropname(pst.Props))
+			}
+			for _, pst := range op.wantPropstats {
+				sort.Sort(byPropname(pst.Props))
+			}
+			sort.Sort(byStatus(propstats))
+			sort.Sort(byStatus(op.wantPropstats))
+			if !reflect.DeepEqual(propstats, op.wantPropstats) {
+				t.Errorf("%s: propstat\ngot  %q\nwant %q", desc, propstats, op.wantPropstats)
+			}
+		}
+	}
+}
+
+func cmpXMLName(a, b xml.Name) bool {
+	if a.Space != b.Space {
+		return a.Space < b.Space
+	}
+	return a.Local < b.Local
+}
+
+type byXMLName []xml.Name
+
+func (b byXMLName) Len() int           { return len(b) }
+func (b byXMLName) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }
+func (b byXMLName) Less(i, j int) bool { return cmpXMLName(b[i], b[j]) }
+
+type byPropname []Property
+
+func (b byPropname) Len() int           { return len(b) }
+func (b byPropname) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }
+func (b byPropname) Less(i, j int) bool { return cmpXMLName(b[i].XMLName, b[j].XMLName) }
+
+type byStatus []Propstat
+
+func (b byStatus) Len() int           { return len(b) }
+func (b byStatus) Swap(i, j int)      { b[i], b[j] = b[j], b[i] }
+func (b byStatus) Less(i, j int) bool { return b[i].Status < b[j].Status }
+
+type noDeadPropsFS struct {
+	FileSystem
+}
+
+func (fs noDeadPropsFS) OpenFile(name string, flag int, perm os.FileMode) (File, error) {
+	f, err := fs.FileSystem.OpenFile(name, flag, perm)
+	if err != nil {
+		return nil, err
+	}
+	return noDeadPropsFile{f}, nil
+}
+
+// noDeadPropsFile wraps a File but strips any optional DeadPropsHolder methods
+// provided by the underlying File implementation.
+type noDeadPropsFile struct {
+	f File
+}
+
+func (f noDeadPropsFile) Close() error                              { return f.f.Close() }
+func (f noDeadPropsFile) Read(p []byte) (int, error)                { return f.f.Read(p) }
+func (f noDeadPropsFile) Readdir(count int) ([]os.FileInfo, error)  { return f.f.Readdir(count) }
+func (f noDeadPropsFile) Seek(off int64, whence int) (int64, error) { return f.f.Seek(off, whence) }
+func (f noDeadPropsFile) Stat() (os.FileInfo, error)                { return f.f.Stat() }
+func (f noDeadPropsFile) Write(p []byte) (int, error)               { return f.f.Write(p) }
diff --git a/go/src/golang.org/x/net/webdav/webdav.go b/go/src/golang.org/x/net/webdav/webdav.go
index 8a8f6dc..9bc4543 100644
--- a/go/src/golang.org/x/net/webdav/webdav.go
+++ b/go/src/golang.org/x/net/webdav/webdav.go
@@ -5,40 +5,58 @@
 // Package webdav etc etc TODO.
 package webdav // import "golang.org/x/net/webdav"
 
-// TODO: ETag, properties.
-
 import (
 	"errors"
+	"fmt"
 	"io"
+	"log"
 	"net/http"
+	"net/url"
 	"os"
+	"runtime"
+	"strings"
 	"time"
 )
 
-// TODO: define the PropSystem interface.
-type PropSystem interface{}
+// Package webdav's XML output requires the standard library's encoding/xml
+// package version 1.5 or greater. Otherwise, it will produce malformed XML.
+//
+// As of May 2015, the Go stable release is version 1.4, so we print a message
+// to let users know that this golang.org/x/etc package won't work yet.
+//
+// This package also won't work with Go 1.3 and earlier, but making this
+// runtime version check catch all the earlier versions too, and not just
+// "1.4.x", isn't worth the complexity.
+//
+// TODO: delete this check at some point after Go 1.5 is released.
+var go1Dot4 = strings.HasPrefix(runtime.Version(), "go1.4.")
+
+func init() {
+	if go1Dot4 {
+		log.Println("package webdav requires Go version 1.5 or greater")
+	}
+}
 
 type Handler struct {
 	// FileSystem is the virtual file system.
 	FileSystem FileSystem
 	// LockSystem is the lock management system.
 	LockSystem LockSystem
-	// PropSystem is an optional property management system. If non-nil, TODO.
-	PropSystem PropSystem
 	// Logger is an optional error logger. If non-nil, it will be called
-	// whenever handling a http.Request results in an error.
+	// for all HTTP requests.
 	Logger func(*http.Request, error)
 }
 
 func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
-	status, err := http.StatusBadRequest, error(nil)
+	status, err := http.StatusBadRequest, errUnsupportedMethod
 	if h.FileSystem == nil {
 		status, err = http.StatusInternalServerError, errNoFileSystem
 	} else if h.LockSystem == nil {
 		status, err = http.StatusInternalServerError, errNoLockSystem
 	} else {
-		// TODO: COPY, MOVE, PROPFIND, PROPPATCH methods. Also, OPTIONS??
 		switch r.Method {
+		case "OPTIONS":
+			status, err = h.handleOptions(w, r)
 		case "GET", "HEAD", "POST":
 			status, err = h.handleGetHeadPost(w, r)
 		case "DELETE":
@@ -47,10 +65,16 @@
 			status, err = h.handlePut(w, r)
 		case "MKCOL":
 			status, err = h.handleMkcol(w, r)
+		case "COPY", "MOVE":
+			status, err = h.handleCopyMove(w, r)
 		case "LOCK":
 			status, err = h.handleLock(w, r)
 		case "UNLOCK":
 			status, err = h.handleUnlock(w, r)
+		case "PROPFIND":
+			status, err = h.handlePropfind(w, r)
+		case "PROPPATCH":
+			status, err = h.handleProppatch(w, r)
 		}
 	}
 
@@ -60,32 +84,111 @@
 			w.Write([]byte(StatusText(status)))
 		}
 	}
-	if h.Logger != nil && err != nil {
+	if h.Logger != nil {
 		h.Logger(r, err)
 	}
 }
 
-func (h *Handler) confirmLocks(r *http.Request) (closer io.Closer, status int, err error) {
-	ih, ok := parseIfHeader(r.Header.Get("If"))
+func (h *Handler) lock(now time.Time, root string) (token string, status int, err error) {
+	token, err = h.LockSystem.Create(now, LockDetails{
+		Root:      root,
+		Duration:  infiniteTimeout,
+		ZeroDepth: true,
+	})
+	if err != nil {
+		if err == ErrLocked {
+			return "", StatusLocked, err
+		}
+		return "", http.StatusInternalServerError, err
+	}
+	return token, 0, nil
+}
+
+func (h *Handler) confirmLocks(r *http.Request, src, dst string) (release func(), status int, err error) {
+	hdr := r.Header.Get("If")
+	if hdr == "" {
+		// An empty If header means that the client hasn't previously created locks.
+		// Even if this client doesn't care about locks, we still need to check that
+		// the resources aren't locked by another client, so we create temporary
+		// locks that would conflict with another client's locks. These temporary
+		// locks are unlocked at the end of the HTTP request.
+		now, srcToken, dstToken := time.Now(), "", ""
+		if src != "" {
+			srcToken, status, err = h.lock(now, src)
+			if err != nil {
+				return nil, status, err
+			}
+		}
+		if dst != "" {
+			dstToken, status, err = h.lock(now, dst)
+			if err != nil {
+				if srcToken != "" {
+					h.LockSystem.Unlock(now, srcToken)
+				}
+				return nil, status, err
+			}
+		}
+
+		return func() {
+			if dstToken != "" {
+				h.LockSystem.Unlock(now, dstToken)
+			}
+			if srcToken != "" {
+				h.LockSystem.Unlock(now, srcToken)
+			}
+		}, 0, nil
+	}
+
+	ih, ok := parseIfHeader(hdr)
 	if !ok {
 		return nil, http.StatusBadRequest, errInvalidIfHeader
 	}
 	// ih is a disjunction (OR) of ifLists, so any ifList will do.
 	for _, l := range ih.lists {
-		path := l.resourceTag
-		if path == "" {
-			path = r.URL.Path
+		lsrc := l.resourceTag
+		if lsrc == "" {
+			lsrc = src
+		} else {
+			u, err := url.Parse(lsrc)
+			if err != nil {
+				continue
+			}
+			if u.Host != r.Host {
+				continue
+			}
+			lsrc = u.Path
 		}
-		closer, err = h.LockSystem.Confirm(path, l.conditions...)
+		release, err = h.LockSystem.Confirm(time.Now(), lsrc, dst, l.conditions...)
 		if err == ErrConfirmationFailed {
 			continue
 		}
 		if err != nil {
 			return nil, http.StatusInternalServerError, err
 		}
-		return closer, 0, nil
+		return release, 0, nil
 	}
-	return nil, http.StatusPreconditionFailed, errLocked
+	// Section 10.4.1 says that "If this header is evaluated and all state lists
+	// fail, then the request must fail with a 412 (Precondition Failed) status."
+	// We follow the spec even though the cond_put_corrupt_token test case from
+	// the litmus test warns on seeing a 412 instead of a 423 (Locked).
+	return nil, http.StatusPreconditionFailed, ErrLocked
+}
+
+func (h *Handler) handleOptions(w http.ResponseWriter, r *http.Request) (status int, err error) {
+	allow := "OPTIONS, LOCK, PUT, MKCOL"
+	if fi, err := h.FileSystem.Stat(r.URL.Path); err == nil {
+		if fi.IsDir() {
+			allow = "OPTIONS, LOCK, GET, HEAD, POST, DELETE, PROPPATCH, COPY, MOVE, UNLOCK, PROPFIND"
+		} else {
+			allow = "OPTIONS, LOCK, GET, HEAD, POST, DELETE, PROPPATCH, COPY, MOVE, UNLOCK, PROPFIND, PUT"
+		}
+	}
+	w.Header().Set("Allow", allow)
+	// http://www.webdav.org/specs/rfc4918.html#dav.compliance.classes
+	w.Header().Set("DAV", "1, 2")
+	// http://msdn.microsoft.com/en-au/library/cc250217.aspx
+	w.Header().Set("MS-Author-Via", "DAV")
+	return 0, nil
 }
 
 func (h *Handler) handleGetHeadPost(w http.ResponseWriter, r *http.Request) (status int, err error) {
@@ -99,49 +202,86 @@
 	if err != nil {
 		return http.StatusNotFound, err
 	}
+	if !fi.IsDir() {
+		etag, err := findETag(h.FileSystem, h.LockSystem, r.URL.Path, fi)
+		if err != nil {
+			return http.StatusInternalServerError, err
+		}
+		w.Header().Set("ETag", etag)
+	}
+	// Let ServeContent determine the Content-Type header.
 	http.ServeContent(w, r, r.URL.Path, fi.ModTime(), f)
 	return 0, nil
 }
 
 func (h *Handler) handleDelete(w http.ResponseWriter, r *http.Request) (status int, err error) {
-	closer, status, err := h.confirmLocks(r)
+	release, status, err := h.confirmLocks(r, r.URL.Path, "")
 	if err != nil {
 		return status, err
 	}
-	defer closer.Close()
+	defer release()
 
+	// TODO: return MultiStatus where appropriate.
+
+	// "godoc os RemoveAll" says that "If the path does not exist, RemoveAll
+	// returns nil (no error)." WebDAV semantics are that it should return a
+	// "404 Not Found". We therefore have to Stat before we RemoveAll.
+	if _, err := h.FileSystem.Stat(r.URL.Path); err != nil {
+		if os.IsNotExist(err) {
+			return http.StatusNotFound, err
+		}
+		return http.StatusMethodNotAllowed, err
+	}
 	if err := h.FileSystem.RemoveAll(r.URL.Path); err != nil {
-		// TODO: MultiStatus.
 		return http.StatusMethodNotAllowed, err
 	}
 	return http.StatusNoContent, nil
 }
 
 func (h *Handler) handlePut(w http.ResponseWriter, r *http.Request) (status int, err error) {
-	closer, status, err := h.confirmLocks(r)
+	release, status, err := h.confirmLocks(r, r.URL.Path, "")
 	if err != nil {
 		return status, err
 	}
-	defer closer.Close()
+	defer release()
+	// TODO(rost): Support the If-Match, If-None-Match headers? See bradfitz'
+	// comments in http.checkEtag.
 
 	f, err := h.FileSystem.OpenFile(r.URL.Path, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)
 	if err != nil {
 		return http.StatusNotFound, err
 	}
-	defer f.Close()
-	if _, err := io.Copy(f, r.Body); err != nil {
-		return http.StatusMethodNotAllowed, err
+	_, copyErr := io.Copy(f, r.Body)
+	fi, statErr := f.Stat()
+	closeErr := f.Close()
+	// TODO(rost): Returning 405 Method Not Allowed might not be appropriate.
+	if copyErr != nil {
+		return http.StatusMethodNotAllowed, copyErr
 	}
+	if statErr != nil {
+		return http.StatusMethodNotAllowed, statErr
+	}
+	if closeErr != nil {
+		return http.StatusMethodNotAllowed, closeErr
+	}
+	etag, err := findETag(h.FileSystem, h.LockSystem, r.URL.Path, fi)
+	if err != nil {
+		return http.StatusInternalServerError, err
+	}
+	w.Header().Set("ETag", etag)
 	return http.StatusCreated, nil
 }
 
 func (h *Handler) handleMkcol(w http.ResponseWriter, r *http.Request) (status int, err error) {
-	closer, status, err := h.confirmLocks(r)
+	release, status, err := h.confirmLocks(r, r.URL.Path, "")
 	if err != nil {
 		return status, err
 	}
-	defer closer.Close()
+	defer release()
 
+	if r.ContentLength > 0 {
+		return http.StatusUnsupportedMediaType, nil
+	}
 	if err := h.FileSystem.Mkdir(r.URL.Path, 0777); err != nil {
 		if os.IsNotExist(err) {
 			return http.StatusConflict, err
@@ -151,6 +291,70 @@
 	return http.StatusCreated, nil
 }
 
+func (h *Handler) handleCopyMove(w http.ResponseWriter, r *http.Request) (status int, err error) {
+	hdr := r.Header.Get("Destination")
+	if hdr == "" {
+		return http.StatusBadRequest, errInvalidDestination
+	}
+	u, err := url.Parse(hdr)
+	if err != nil {
+		return http.StatusBadRequest, errInvalidDestination
+	}
+	if u.Host != r.Host {
+		return http.StatusBadGateway, errInvalidDestination
+	}
+
+	dst, src := u.Path, r.URL.Path
+	if dst == "" {
+		return http.StatusBadGateway, errInvalidDestination
+	}
+	if dst == src {
+		return http.StatusForbidden, errDestinationEqualsSource
+	}
+
+	if r.Method == "COPY" {
+		// Section 7.5.1 says that a COPY only needs to lock the destination,
+		// not both destination and source. Strictly speaking, this is racy,
+		// even though a COPY doesn't modify the source, if a concurrent
+		// operation modifies the source. However, the litmus test explicitly
+		// checks that COPYing a locked-by-another source is OK.
+		release, status, err := h.confirmLocks(r, "", dst)
+		if err != nil {
+			return status, err
+		}
+		defer release()
+
+		// Section 9.8.3 says that "The COPY method on a collection without a Depth
+		// header must act as if a Depth header with value "infinity" was included".
+		depth := infiniteDepth
+		if hdr := r.Header.Get("Depth"); hdr != "" {
+			depth = parseDepth(hdr)
+			if depth != 0 && depth != infiniteDepth {
+				// Section 9.8.3 says that "A client may submit a Depth header on a
+				// COPY on a collection with a value of "0" or "infinity"."
+				return http.StatusBadRequest, errInvalidDepth
+			}
+		}
+		return copyFiles(h.FileSystem, src, dst, r.Header.Get("Overwrite") != "F", depth, 0)
+	}
+
+	release, status, err := h.confirmLocks(r, src, dst)
+	if err != nil {
+		return status, err
+	}
+	defer release()
+
+	// Section 9.9.2 says that "The MOVE method on a collection must act as if
+	// a "Depth: infinity" header was used on it. A client must not submit a
+	// Depth header on a MOVE on a collection with any value but "infinity"."
+	if hdr := r.Header.Get("Depth"); hdr != "" {
+		if parseDepth(hdr) != infiniteDepth {
+			return http.StatusBadRequest, errInvalidDepth
+		}
+	}
+	return moveFiles(h.FileSystem, src, dst, r.Header.Get("Overwrite") == "T")
+}
+
 func (h *Handler) handleLock(w http.ResponseWriter, r *http.Request) (retStatus int, retErr error) {
 	duration, err := parseTimeout(r.Header.Get("Timeout"))
 	if err != nil {
@@ -161,7 +365,7 @@
 		return status, err
 	}
 
-	token, ld := "", LockDetails{}
+	token, ld, now, created := "", LockDetails{}, time.Now(), false
 	if li == (lockInfo{}) {
 		// An empty lockInfo means to refresh the lock.
 		ih, ok := parseIfHeader(r.Header.Get("If"))
@@ -174,38 +378,44 @@
 		if token == "" {
 			return http.StatusBadRequest, errInvalidLockToken
 		}
-		var closer io.Closer
-		ld, closer, err = h.LockSystem.Refresh(token, time.Now(), duration)
+		ld, err = h.LockSystem.Refresh(now, token, duration)
 		if err != nil {
 			if err == ErrNoSuchLock {
 				return http.StatusPreconditionFailed, err
 			}
 			return http.StatusInternalServerError, err
 		}
-		defer closer.Close()
 
 	} else {
-		depth, err := parseDepth(r.Header.Get("Depth"))
-		if err != nil {
-			return http.StatusBadRequest, err
+		// Section 9.10.3 says that "If no Depth header is submitted on a LOCK request,
+		// then the request MUST act as if a "Depth:infinity" had been submitted."
+		depth := infiniteDepth
+		if hdr := r.Header.Get("Depth"); hdr != "" {
+			depth = parseDepth(hdr)
+			if depth != 0 && depth != infiniteDepth {
+				// Section 9.10.3 says that "Values other than 0 or infinity must not be
+				// used with the Depth header on a LOCK method".
+				return http.StatusBadRequest, errInvalidDepth
+			}
 		}
 		ld = LockDetails{
-			Depth:    depth,
-			Duration: duration,
-			OwnerXML: li.Owner.InnerXML,
-			Path:     r.URL.Path,
+			Root:      r.URL.Path,
+			Duration:  duration,
+			OwnerXML:  li.Owner.InnerXML,
+			ZeroDepth: depth == 0,
 		}
-		var closer io.Closer
-		token, closer, err = h.LockSystem.Create(r.URL.Path, time.Now(), ld)
+		token, err = h.LockSystem.Create(now, ld)
 		if err != nil {
+			if err == ErrLocked {
+				return StatusLocked, err
+			}
 			return http.StatusInternalServerError, err
 		}
 		defer func() {
 			if retErr != nil {
-				h.LockSystem.Unlock(token)
+				h.LockSystem.Unlock(now, token)
 			}
 		}()
-		defer closer.Close()
 
 		// Create the resource if it didn't previously exist.
 		if _, err := h.FileSystem.Stat(r.URL.Path); err != nil {
@@ -215,14 +425,21 @@
 				return http.StatusInternalServerError, err
 			}
 			f.Close()
-			w.WriteHeader(http.StatusCreated)
-			// http://www.webdav.org/specs/rfc4918.html#HEADER_Lock-Token says that the
-			// Lock-Token value is a Coded-URL. We add angle brackets.
-			w.Header().Set("Lock-Token", "<"+token+">")
+			created = true
 		}
+
+		// http://www.webdav.org/specs/rfc4918.html#HEADER_Lock-Token says that the
+		// Lock-Token value is a Coded-URL. We add angle brackets.
+		w.Header().Set("Lock-Token", "<"+token+">")
 	}
 
 	w.Header().Set("Content-Type", "application/xml; charset=utf-8")
+	if created {
+		// This is "w.WriteHeader(http.StatusCreated)" and not "return
+		// http.StatusCreated, nil" because we write our own (XML) response to w
+		// and Handler.ServeHTTP would otherwise write "Created".
+		w.WriteHeader(http.StatusCreated)
+	}
 	writeLockInfo(w, token, ld)
 	return 0, nil
 }
@@ -236,11 +453,13 @@
 	}
 	t = t[1 : len(t)-1]
 
-	switch err = h.LockSystem.Unlock(t); err {
+	switch err = h.LockSystem.Unlock(time.Now(), t); err {
 	case nil:
 		return http.StatusNoContent, err
 	case ErrForbidden:
 		return http.StatusForbidden, err
+	case ErrLocked:
+		return StatusLocked, err
 	case ErrNoSuchLock:
 		return http.StatusConflict, err
 	default:
@@ -248,14 +467,165 @@
 	}
 }
 
-func parseDepth(s string) (int, error) {
-	// TODO: implement.
-	return -1, nil
+func (h *Handler) handlePropfind(w http.ResponseWriter, r *http.Request) (status int, err error) {
+	fi, err := h.FileSystem.Stat(r.URL.Path)
+	if err != nil {
+		if os.IsNotExist(err) {
+			return http.StatusNotFound, err
+		}
+		return http.StatusMethodNotAllowed, err
+	}
+	depth := infiniteDepth
+	if hdr := r.Header.Get("Depth"); hdr != "" {
+		depth = parseDepth(hdr)
+		if depth == invalidDepth {
+			return http.StatusBadRequest, errInvalidDepth
+		}
+	}
+	pf, status, err := readPropfind(r.Body)
+	if err != nil {
+		return status, err
+	}
+
+	mw := multistatusWriter{w: w}
+
+	walkFn := func(path string, info os.FileInfo, err error) error {
+		if err != nil {
+			return err
+		}
+		var pstats []Propstat
+		if pf.Propname != nil {
+			pnames, err := propnames(h.FileSystem, h.LockSystem, path)
+			if err != nil {
+				return err
+			}
+			pstat := Propstat{Status: http.StatusOK}
+			for _, xmlname := range pnames {
+				pstat.Props = append(pstat.Props, Property{XMLName: xmlname})
+			}
+			pstats = append(pstats, pstat)
+		} else if pf.Allprop != nil {
+			pstats, err = allprop(h.FileSystem, h.LockSystem, path, pf.Prop)
+		} else {
+			pstats, err = props(h.FileSystem, h.LockSystem, path, pf.Prop)
+		}
+		if err != nil {
+			return err
+		}
+		return mw.write(makePropstatResponse(path, pstats))
+	}
+
+	walkErr := walkFS(h.FileSystem, depth, r.URL.Path, fi, walkFn)
+	closeErr := mw.close()
+	if walkErr != nil {
+		return http.StatusInternalServerError, walkErr
+	}
+	if closeErr != nil {
+		return http.StatusInternalServerError, closeErr
+	}
+	return 0, nil
 }
 
-func parseTimeout(s string) (time.Duration, error) {
-	// TODO: implement.
-	return 1 * time.Second, nil
+func (h *Handler) handleProppatch(w http.ResponseWriter, r *http.Request) (status int, err error) {
+	release, status, err := h.confirmLocks(r, r.URL.Path, "")
+	if err != nil {
+		return status, err
+	}
+	defer release()
+
+	if _, err := h.FileSystem.Stat(r.URL.Path); err != nil {
+		if os.IsNotExist(err) {
+			return http.StatusNotFound, err
+		}
+		return http.StatusMethodNotAllowed, err
+	}
+	patches, status, err := readProppatch(r.Body)
+	if err != nil {
+		return status, err
+	}
+	pstats, err := patch(h.FileSystem, h.LockSystem, r.URL.Path, patches)
+	if err != nil {
+		return http.StatusInternalServerError, err
+	}
+	mw := multistatusWriter{w: w}
+	writeErr := mw.write(makePropstatResponse(r.URL.Path, pstats))
+	closeErr := mw.close()
+	if writeErr != nil {
+		return http.StatusInternalServerError, writeErr
+	}
+	if closeErr != nil {
+		return http.StatusInternalServerError, closeErr
+	}
+	return 0, nil
+}
+
+func makePropstatResponse(href string, pstats []Propstat) *response {
+	resp := response{
+		Href:     []string{href},
+		Propstat: make([]propstat, 0, len(pstats)),
+	}
+	for _, p := range pstats {
+		var xmlErr *xmlError
+		if p.XMLError != "" {
+			xmlErr = &xmlError{InnerXML: []byte(p.XMLError)}
+		}
+		resp.Propstat = append(resp.Propstat, propstat{
+			Status:              fmt.Sprintf("HTTP/1.1 %d %s", p.Status, StatusText(p.Status)),
+			Prop:                p.Props,
+			ResponseDescription: p.ResponseDescription,
+			Error:               xmlErr,
+		})
+	}
+	return &resp
+}
+
+const (
+	infiniteDepth = -1
+	invalidDepth  = -2
+)
+
+// parseDepth maps the strings "0", "1" and "infinity" to 0, 1 and
+// infiniteDepth. Parsing any other string returns invalidDepth.
+//
+// Different WebDAV methods have further constraints on valid depths:
+//	- PROPFIND has no further restrictions, as per section 9.1.
+//	- COPY accepts only "0" or "infinity", as per section 9.8.3.
+//	- MOVE accepts only "infinity", as per section 9.9.2.
+//	- LOCK accepts only "0" or "infinity", as per section 9.10.3.
+// These constraints are enforced by the handleXxx methods.
+func parseDepth(s string) int {
+	switch s {
+	case "0":
+		return 0
+	case "1":
+		return 1
+	case "infinity":
+		return infiniteDepth
+	}
+	return invalidDepth
+}
+
+// StripPrefix is like http.StripPrefix but it also strips the prefix from any
+// Destination headers, so that COPY and MOVE requests also see stripped paths.
+func StripPrefix(prefix string, h http.Handler) http.Handler {
+	if prefix == "" {
+		return h
+	}
+	h = http.StripPrefix(prefix, h)
+	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+		dsts := r.Header["Destination"]
+		for i, dst := range dsts {
+			u, err := url.Parse(dst)
+			if err != nil {
+				continue
+			}
+			if p := strings.TrimPrefix(u.Path, prefix); len(p) < len(u.Path) {
+				u.Path = p
+				dsts[i] = u.String()
+			}
+		}
+		h.ServeHTTP(w, r)
+	})
 }
 
 // http://www.webdav.org/specs/rfc4918.html#status.code.extensions.to.http11
@@ -284,11 +654,21 @@
 }
 
 var (
-	errInvalidIfHeader     = errors.New("webdav: invalid If header")
-	errInvalidLockInfo     = errors.New("webdav: invalid lock info")
-	errInvalidLockToken    = errors.New("webdav: invalid lock token")
-	errLocked              = errors.New("webdav: locked")
-	errNoFileSystem        = errors.New("webdav: no file system")
-	errNoLockSystem        = errors.New("webdav: no lock system")
-	errUnsupportedLockInfo = errors.New("webdav: unsupported lock info")
+	errDestinationEqualsSource = errors.New("webdav: destination equals source")
+	errDirectoryNotEmpty       = errors.New("webdav: directory not empty")
+	errInvalidDepth            = errors.New("webdav: invalid depth")
+	errInvalidDestination      = errors.New("webdav: invalid destination")
+	errInvalidIfHeader         = errors.New("webdav: invalid If header")
+	errInvalidLockInfo         = errors.New("webdav: invalid lock info")
+	errInvalidLockToken        = errors.New("webdav: invalid lock token")
+	errInvalidPropfind         = errors.New("webdav: invalid propfind")
+	errInvalidProppatch        = errors.New("webdav: invalid proppatch")
+	errInvalidResponse         = errors.New("webdav: invalid response")
+	errInvalidTimeout          = errors.New("webdav: invalid timeout")
+	errNoFileSystem            = errors.New("webdav: no file system")
+	errNoLockSystem            = errors.New("webdav: no lock system")
+	errNotADirectory           = errors.New("webdav: not a directory")
+	errRecursionTooDeep        = errors.New("webdav: recursion too deep")
+	errUnsupportedLockInfo     = errors.New("webdav: unsupported lock info")
+	errUnsupportedMethod       = errors.New("webdav: unsupported method")
 )
diff --git a/go/src/golang.org/x/net/webdav/webdav_test.go b/go/src/golang.org/x/net/webdav/webdav_test.go
new file mode 100644
index 0000000..c422860
--- /dev/null
+++ b/go/src/golang.org/x/net/webdav/webdav_test.go
@@ -0,0 +1,161 @@
+// Copyright 2015 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package webdav
+
+import (
+	"fmt"
+	"io"
+	"net/http"
+	"net/http/httptest"
+	"reflect"
+	"sort"
+	"strings"
+	"testing"
+)
+
+// TestStripPrefix tests the StripPrefix function. We can't test the
+// StripPrefix function with the litmus test, even though all of the litmus
+// test paths start with "/litmus/", because one of the first things that the
+// litmus test does is "MKCOL /litmus/". That request succeeds without a
+// StripPrefix, but fails with a StripPrefix because you cannot MKCOL the root
+// directory of a FileSystem.
+func TestStripPrefix(t *testing.T) {
+	const dst, blah = "Destination", "blah blah blah"
+
+	do := func(method, urlStr string, body io.Reader, wantStatusCode int, headers ...string) error {
+		req, err := http.NewRequest(method, urlStr, body)
+		if err != nil {
+			return err
+		}
+		for len(headers) >= 2 {
+			req.Header.Add(headers[0], headers[1])
+			headers = headers[2:]
+		}
+		res, err := http.DefaultClient.Do(req)
+		if err != nil {
+			return err
+		}
+		defer res.Body.Close()
+		if res.StatusCode != wantStatusCode {
+			return fmt.Errorf("got status code %d, want %d", res.StatusCode, wantStatusCode)
+		}
+		return nil
+	}
+
+	prefixes := []string{
+		"/",
+		"/a/",
+		"/a/b/",
+		"/a/b/c/",
+	}
+	for _, prefix := range prefixes {
+		fs := NewMemFS()
+		h := http.Handler(&Handler{
+			FileSystem: fs,
+			LockSystem: NewMemLS(),
+		})
+		mux := http.NewServeMux()
+		if prefix != "/" {
+			// Note that this is webdav.StripPrefix, not http.StripPrefix.
+			h = StripPrefix(prefix, h)
+		}
+		mux.Handle(prefix, h)
+		srv := httptest.NewServer(mux)
+		defer srv.Close()
+
+		// The script is:
+		//	MKCOL /a
+		//	MKCOL /a/b
+		//	PUT   /a/b/c
+		//	COPY  /a/b/c /a/b/d
+		//	MKCOL /a/b/e
+		//	MOVE  /a/b/d /a/b/e/f
+		// which should yield the (possibly stripped) filenames /a/b/c and
+		// /a/b/e/f, plus their parent directories.
+
+		wantA := map[string]int{
+			"/":       http.StatusCreated,
+			"/a/":     http.StatusMovedPermanently,
+			"/a/b/":   http.StatusNotFound,
+			"/a/b/c/": http.StatusNotFound,
+		}[prefix]
+		if err := do("MKCOL", srv.URL+"/a", nil, wantA); err != nil {
+			t.Errorf("prefix=%-9q MKCOL /a: %v", prefix, err)
+			continue
+		}
+
+		wantB := map[string]int{
+			"/":       http.StatusCreated,
+			"/a/":     http.StatusCreated,
+			"/a/b/":   http.StatusMovedPermanently,
+			"/a/b/c/": http.StatusNotFound,
+		}[prefix]
+		if err := do("MKCOL", srv.URL+"/a/b", nil, wantB); err != nil {
+			t.Errorf("prefix=%-9q MKCOL /a/b: %v", prefix, err)
+			continue
+		}
+
+		wantC := map[string]int{
+			"/":       http.StatusCreated,
+			"/a/":     http.StatusCreated,
+			"/a/b/":   http.StatusCreated,
+			"/a/b/c/": http.StatusMovedPermanently,
+		}[prefix]
+		if err := do("PUT", srv.URL+"/a/b/c", strings.NewReader(blah), wantC); err != nil {
+			t.Errorf("prefix=%-9q PUT /a/b/c: %v", prefix, err)
+			continue
+		}
+
+		wantD := map[string]int{
+			"/":       http.StatusCreated,
+			"/a/":     http.StatusCreated,
+			"/a/b/":   http.StatusCreated,
+			"/a/b/c/": http.StatusMovedPermanently,
+		}[prefix]
+		if err := do("COPY", srv.URL+"/a/b/c", nil, wantD, dst, srv.URL+"/a/b/d"); err != nil {
+			t.Errorf("prefix=%-9q COPY /a/b/c /a/b/d: %v", prefix, err)
+			continue
+		}
+
+		wantE := map[string]int{
+			"/":       http.StatusCreated,
+			"/a/":     http.StatusCreated,
+			"/a/b/":   http.StatusCreated,
+			"/a/b/c/": http.StatusNotFound,
+		}[prefix]
+		if err := do("MKCOL", srv.URL+"/a/b/e", nil, wantE); err != nil {
+			t.Errorf("prefix=%-9q MKCOL /a/b/e: %v", prefix, err)
+			continue
+		}
+
+		wantF := map[string]int{
+			"/":       http.StatusCreated,
+			"/a/":     http.StatusCreated,
+			"/a/b/":   http.StatusCreated,
+			"/a/b/c/": http.StatusNotFound,
+		}[prefix]
+		if err := do("MOVE", srv.URL+"/a/b/d", nil, wantF, dst, srv.URL+"/a/b/e/f"); err != nil {
+			t.Errorf("prefix=%-9q MOVE /a/b/d /a/b/e/f: %v", prefix, err)
+			continue
+		}
+
+		got, err := find(nil, fs, "/")
+		if err != nil {
+			t.Errorf("prefix=%-9q find: %v", prefix, err)
+			continue
+		}
+		sort.Strings(got)
+		want := map[string][]string{
+			"/":       []string{"/", "/a", "/a/b", "/a/b/c", "/a/b/e", "/a/b/e/f"},
+			"/a/":     []string{"/", "/b", "/b/c", "/b/e", "/b/e/f"},
+			"/a/b/":   []string{"/", "/c", "/e", "/e/f"},
+			"/a/b/c/": []string{"/"},
+		}[prefix]
+		if !reflect.DeepEqual(got, want) {
+			t.Errorf("prefix=%-9q find:\ngot  %v\nwant %v", prefix, got, want)
+			continue
+		}
+	}
+}
diff --git a/go/src/golang.org/x/net/webdav/xml.go b/go/src/golang.org/x/net/webdav/xml.go
index 5939373..79e5d07 100644
--- a/go/src/golang.org/x/net/webdav/xml.go
+++ b/go/src/golang.org/x/net/webdav/xml.go
@@ -13,7 +13,6 @@
 	"fmt"
 	"io"
 	"net/http"
-	"strconv"
 	"time"
 )
 
@@ -65,8 +64,8 @@
 
 func writeLockInfo(w io.Writer, token string, ld LockDetails) (int, error) {
 	depth := "infinity"
-	if d := ld.Depth; d >= 0 {
-		depth = strconv.Itoa(d)
+	if ld.ZeroDepth {
+		depth = "0"
 	}
 	timeout := ld.Duration / time.Second
 	return fmt.Fprintf(w, "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"+
@@ -79,7 +78,7 @@
 		"	<D:locktoken><D:href>%s</D:href></D:locktoken>\n"+
 		"	<D:lockroot><D:href>%s</D:href></D:lockroot>\n"+
 		"</D:activelock></D:lockdiscovery></D:prop>",
-		depth, ld.OwnerXML, timeout, escape(token), escape(ld.Path),
+		depth, ld.OwnerXML, timeout, escape(token), escape(ld.Root),
 	)
 }
 
@@ -94,3 +93,376 @@
 	}
 	return s
 }
+
+// Next returns the next token, if any, in the XML stream of d.
+// RFC 4918 requires to ignore comments, processing instructions
+// and directives.
+// http://www.webdav.org/specs/rfc4918.html#property_values
+// http://www.webdav.org/specs/rfc4918.html#xml-extensibility
+func next(d *xml.Decoder) (xml.Token, error) {
+	for {
+		t, err := d.Token()
+		if err != nil {
+			return t, err
+		}
+		switch t.(type) {
+		case xml.Comment, xml.Directive, xml.ProcInst:
+			continue
+		default:
+			return t, nil
+		}
+	}
+}
+
+// http://www.webdav.org/specs/rfc4918.html#ELEMENT_prop (for propfind)
+type propfindProps []xml.Name
+
+// UnmarshalXML appends the property names enclosed within start to pn.
+//
+// It returns an error if start does not contain any properties or if
+// properties contain values. Character data between properties is ignored.
+func (pn *propfindProps) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+	for {
+		t, err := next(d)
+		if err != nil {
+			return err
+		}
+		switch t.(type) {
+		case xml.EndElement:
+			if len(*pn) == 0 {
+				return fmt.Errorf("%s must not be empty", start.Name.Local)
+			}
+			return nil
+		case xml.StartElement:
+			name := t.(xml.StartElement).Name
+			t, err = next(d)
+			if err != nil {
+				return err
+			}
+			if _, ok := t.(xml.EndElement); !ok {
+				return fmt.Errorf("unexpected token %T", t)
+			}
+			*pn = append(*pn, name)
+		}
+	}
+}
+
+// http://www.webdav.org/specs/rfc4918.html#ELEMENT_propfind
+type propfind struct {
+	XMLName  xml.Name      `xml:"DAV: propfind"`
+	Allprop  *struct{}     `xml:"DAV: allprop"`
+	Propname *struct{}     `xml:"DAV: propname"`
+	Prop     propfindProps `xml:"DAV: prop"`
+	Include  propfindProps `xml:"DAV: include"`
+}
+
+func readPropfind(r io.Reader) (pf propfind, status int, err error) {
+	c := countingReader{r: r}
+	if err = xml.NewDecoder(&c).Decode(&pf); err != nil {
+		if err == io.EOF {
+			if c.n == 0 {
+				// An empty body means to propfind allprop.
+				// http://www.webdav.org/specs/rfc4918.html#METHOD_PROPFIND
+				return propfind{Allprop: new(struct{})}, 0, nil
+			}
+			err = errInvalidPropfind
+		}
+		return propfind{}, http.StatusBadRequest, err
+	}
+
+	if pf.Allprop == nil && pf.Include != nil {
+		return propfind{}, http.StatusBadRequest, errInvalidPropfind
+	}
+	if pf.Allprop != nil && (pf.Prop != nil || pf.Propname != nil) {
+		return propfind{}, http.StatusBadRequest, errInvalidPropfind
+	}
+	if pf.Prop != nil && pf.Propname != nil {
+		return propfind{}, http.StatusBadRequest, errInvalidPropfind
+	}
+	if pf.Propname == nil && pf.Allprop == nil && pf.Prop == nil {
+		return propfind{}, http.StatusBadRequest, errInvalidPropfind
+	}
+	return pf, 0, nil
+}
+
+// Property represents a single DAV resource property as defined in RFC 4918.
+// See http://www.webdav.org/specs/rfc4918.html#data.model.for.resource.properties
+type Property struct {
+	// XMLName is the fully qualified name that identifies this property.
+	XMLName xml.Name
+
+	// Lang is an optional xml:lang attribute.
+	Lang string `xml:"xml:lang,attr,omitempty"`
+
+	// InnerXML contains the XML representation of the property value.
+	// See http://www.webdav.org/specs/rfc4918.html#property_values
+	//
+	// Property values of complex type or mixed-content must have fully
+	// expanded XML namespaces or be self-contained with according
+	// XML namespace declarations. They must not rely on any XML
+	// namespace declarations within the scope of the XML document,
+	// even including the DAV: namespace.
+	InnerXML []byte `xml:",innerxml"`
+}
+
+// http://www.webdav.org/specs/rfc4918.html#ELEMENT_error
+// See multistatusWriter for the "D:" namespace prefix.
+type xmlError struct {
+	XMLName  xml.Name `xml:"D:error"`
+	InnerXML []byte   `xml:",innerxml"`
+}
+
+// http://www.webdav.org/specs/rfc4918.html#ELEMENT_propstat
+// See multistatusWriter for the "D:" namespace prefix.
+type propstat struct {
+	Prop                []Property `xml:"D:prop>_ignored_"`
+	Status              string     `xml:"D:status"`
+	Error               *xmlError  `xml:"D:error"`
+	ResponseDescription string     `xml:"D:responsedescription,omitempty"`
+}
+
+// MarshalXML prepends the "D:" namespace prefix on properties in the DAV: namespace
+// before encoding. See multistatusWriter.
+func (ps propstat) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
+	for k, prop := range ps.Prop {
+		if prop.XMLName.Space == "DAV:" {
+			prop.XMLName = xml.Name{Space: "", Local: "D:" + prop.XMLName.Local}
+			ps.Prop[k] = prop
+		}
+	}
+	// Distinct type to avoid infinite recursion of MarshalXML.
+	type newpropstat propstat
+	return e.EncodeElement(newpropstat(ps), start)
+}
+
+// http://www.webdav.org/specs/rfc4918.html#ELEMENT_response
+// See multistatusWriter for the "D:" namespace prefix.
+type response struct {
+	XMLName             xml.Name   `xml:"D:response"`
+	Href                []string   `xml:"D:href"`
+	Propstat            []propstat `xml:"D:propstat"`
+	Status              string     `xml:"D:status,omitempty"`
+	Error               *xmlError  `xml:"D:error"`
+	ResponseDescription string     `xml:"D:responsedescription,omitempty"`
+}
+
+// MultistatusWriter marshals one or more Responses into a XML
+// multistatus response.
+// See http://www.webdav.org/specs/rfc4918.html#ELEMENT_multistatus
+// TODO(rsto, mpl): As a workaround, the "D:" namespace prefix, defined as
+// "DAV:" on this element, is prepended on the nested response, as well as on all
+// its nested elements. All property names in the DAV: namespace are prefixed as
+// well. This is because some versions of Mini-Redirector (on windows 7) ignore
+// elements with a default namespace (no prefixed namespace). A less intrusive fix
+// should be possible after golang.org/cl/11074. See https://golang.org/issue/11177
+type multistatusWriter struct {
+	// ResponseDescription contains the optional responsedescription
+	// of the multistatus XML element. Only the latest content before
+	// close will be emitted. Empty response descriptions are not
+	// written.
+	responseDescription string
+
+	w   http.ResponseWriter
+	enc *xml.Encoder
+}
+
+// Write validates and emits a DAV response as part of a multistatus response
+// element.
+//
+// It sets the HTTP status code of its underlying http.ResponseWriter to 207
+// (Multi-Status) and populates the Content-Type header. If r is the
+// first, valid response to be written, Write prepends the XML representation
+// of r with a multistatus tag. Callers must call close after the last response
+// has been written.
+func (w *multistatusWriter) write(r *response) error {
+	switch len(r.Href) {
+	case 0:
+		return errInvalidResponse
+	case 1:
+		if len(r.Propstat) > 0 != (r.Status == "") {
+			return errInvalidResponse
+		}
+	default:
+		if len(r.Propstat) > 0 || r.Status == "" {
+			return errInvalidResponse
+		}
+	}
+	err := w.writeHeader()
+	if err != nil {
+		return err
+	}
+	return w.enc.Encode(r)
+}
+
+// writeHeader writes a XML multistatus start element on w's underlying
+// http.ResponseWriter and returns the result of the write operation.
+// After the first write attempt, writeHeader becomes a no-op.
+func (w *multistatusWriter) writeHeader() error {
+	if w.enc != nil {
+		return nil
+	}
+	w.w.Header().Add("Content-Type", "text/xml; charset=utf-8")
+	w.w.WriteHeader(StatusMulti)
+	_, err := fmt.Fprintf(w.w, `<?xml version="1.0" encoding="UTF-8"?>`)
+	if err != nil {
+		return err
+	}
+	w.enc = xml.NewEncoder(w.w)
+	return w.enc.EncodeToken(xml.StartElement{
+		Name: xml.Name{
+			Space: "DAV:",
+			Local: "multistatus",
+		},
+		Attr: []xml.Attr{{
+			Name:  xml.Name{Space: "xmlns", Local: "D"},
+			Value: "DAV:",
+		}},
+	})
+}
+
+// Close completes the marshalling of the multistatus response. It returns
+// an error if the multistatus response could not be completed. If both the
+// return value and field enc of w are nil, then no multistatus response has
+// been written.
+func (w *multistatusWriter) close() error {
+	if w.enc == nil {
+		return nil
+	}
+	var end []xml.Token
+	if w.responseDescription != "" {
+		name := xml.Name{Space: "DAV:", Local: "responsedescription"}
+		end = append(end,
+			xml.StartElement{Name: name},
+			xml.CharData(w.responseDescription),
+			xml.EndElement{Name: name},
+		)
+	}
+	end = append(end, xml.EndElement{
+		Name: xml.Name{Space: "DAV:", Local: "multistatus"},
+	})
+	for _, t := range end {
+		err := w.enc.EncodeToken(t)
+		if err != nil {
+			return err
+		}
+	}
+	return w.enc.Flush()
+}
+
+// http://www.webdav.org/specs/rfc4918.html#ELEMENT_prop (for proppatch)
+type proppatchProps []Property
+
+var xmlLangName = xml.Name{Space: "http://www.w3.org/XML/1998/namespace", Local: "lang"}
+
+func xmlLang(s xml.StartElement, d string) string {
+	for _, attr := range s.Attr {
+		if attr.Name == xmlLangName {
+			return attr.Value
+		}
+	}
+	return d
+}
+
+type xmlValue []byte
+
+func (v *xmlValue) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+	// The XML value of a property can be arbitrary, mixed-content XML.
+	// To make sure that the unmarshalled value contains all required
+	// namespaces, we encode all the property value XML tokens into a
+	// buffer. This forces the encoder to redeclare any used namespaces.
+	var b bytes.Buffer
+	e := xml.NewEncoder(&b)
+	for {
+		t, err := next(d)
+		if err != nil {
+			return err
+		}
+		if e, ok := t.(xml.EndElement); ok && e.Name == start.Name {
+			break
+		}
+		if err = e.EncodeToken(t); err != nil {
+			return err
+		}
+	}
+	err := e.Flush()
+	if err != nil {
+		return err
+	}
+	*v = b.Bytes()
+	return nil
+}
+
+// UnmarshalXML appends the property names and values enclosed within start
+// to ps.
+//
+// An xml:lang attribute that is defined either on the DAV:prop or property
+// name XML element is propagated to the property's Lang field.
+//
+// UnmarshalXML returns an error if start does not contain any properties or if
+// property values contain syntactically incorrect XML.
+func (ps *proppatchProps) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+	lang := xmlLang(start, "")
+	for {
+		t, err := next(d)
+		if err != nil {
+			return err
+		}
+		switch elem := t.(type) {
+		case xml.EndElement:
+			if len(*ps) == 0 {
+				return fmt.Errorf("%s must not be empty", start.Name.Local)
+			}
+			return nil
+		case xml.StartElement:
+			p := Property{
+				XMLName: t.(xml.StartElement).Name,
+				Lang:    xmlLang(t.(xml.StartElement), lang),
+			}
+			err = d.DecodeElement(((*xmlValue)(&p.InnerXML)), &elem)
+			if err != nil {
+				return err
+			}
+			*ps = append(*ps, p)
+		}
+	}
+}
+
+// http://www.webdav.org/specs/rfc4918.html#ELEMENT_set
+// http://www.webdav.org/specs/rfc4918.html#ELEMENT_remove
+type setRemove struct {
+	XMLName xml.Name
+	Lang    string         `xml:"xml:lang,attr,omitempty"`
+	Prop    proppatchProps `xml:"DAV: prop"`
+}
+
+// http://www.webdav.org/specs/rfc4918.html#ELEMENT_propertyupdate
+type propertyupdate struct {
+	XMLName   xml.Name    `xml:"DAV: propertyupdate"`
+	Lang      string      `xml:"xml:lang,attr,omitempty"`
+	SetRemove []setRemove `xml:",any"`
+}
+
+func readProppatch(r io.Reader) (patches []Proppatch, status int, err error) {
+	var pu propertyupdate
+	if err = xml.NewDecoder(r).Decode(&pu); err != nil {
+		return nil, http.StatusBadRequest, err
+	}
+	for _, op := range pu.SetRemove {
+		remove := false
+		switch op.XMLName {
+		case xml.Name{Space: "DAV:", Local: "set"}:
+			// No-op.
+		case xml.Name{Space: "DAV:", Local: "remove"}:
+			for _, p := range op.Prop {
+				if len(p.InnerXML) > 0 {
+					return nil, http.StatusBadRequest, errInvalidProppatch
+				}
+			}
+			remove = true
+		default:
+			return nil, http.StatusBadRequest, errInvalidProppatch
+		}
+		patches = append(patches, Proppatch{Remove: remove, Props: op.Prop})
+	}
+	return patches, 0, nil
+}
diff --git a/go/src/golang.org/x/net/webdav/xml_test.go b/go/src/golang.org/x/net/webdav/xml_test.go
index 26149a2..51fba87 100644
--- a/go/src/golang.org/x/net/webdav/xml_test.go
+++ b/go/src/golang.org/x/net/webdav/xml_test.go
@@ -5,14 +5,19 @@
 package webdav
 
 import (
+	"bytes"
 	"encoding/xml"
+	"fmt"
+	"io"
 	"net/http"
+	"net/http/httptest"
 	"reflect"
+	"sort"
 	"strings"
 	"testing"
 )
 
-func TestParseLockInfo(t *testing.T) {
+func TestReadLockInfo(t *testing.T) {
 	// The "section x.y.z" test cases come from section x.y.z of the spec at
 	// http://www.webdav.org/specs/rfc4918.html
 	testCases := []struct {
@@ -127,3 +132,777 @@
 		}
 	}
 }
+
+func TestReadPropfind(t *testing.T) {
+	testCases := []struct {
+		desc       string
+		input      string
+		wantPF     propfind
+		wantStatus int
+	}{{
+		desc: "propfind: propname",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:propname/>\n" +
+			"</A:propfind>",
+		wantPF: propfind{
+			XMLName:  xml.Name{Space: "DAV:", Local: "propfind"},
+			Propname: new(struct{}),
+		},
+	}, {
+		desc:  "propfind: empty body means allprop",
+		input: "",
+		wantPF: propfind{
+			Allprop: new(struct{}),
+		},
+	}, {
+		desc: "propfind: allprop",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"   <A:allprop/>\n" +
+			"</A:propfind>",
+		wantPF: propfind{
+			XMLName: xml.Name{Space: "DAV:", Local: "propfind"},
+			Allprop: new(struct{}),
+		},
+	}, {
+		desc: "propfind: allprop followed by include",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:allprop/>\n" +
+			"  <A:include><A:displayname/></A:include>\n" +
+			"</A:propfind>",
+		wantPF: propfind{
+			XMLName: xml.Name{Space: "DAV:", Local: "propfind"},
+			Allprop: new(struct{}),
+			Include: propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}},
+		},
+	}, {
+		desc: "propfind: include followed by allprop",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:include><A:displayname/></A:include>\n" +
+			"  <A:allprop/>\n" +
+			"</A:propfind>",
+		wantPF: propfind{
+			XMLName: xml.Name{Space: "DAV:", Local: "propfind"},
+			Allprop: new(struct{}),
+			Include: propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}},
+		},
+	}, {
+		desc: "propfind: propfind",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:prop><A:displayname/></A:prop>\n" +
+			"</A:propfind>",
+		wantPF: propfind{
+			XMLName: xml.Name{Space: "DAV:", Local: "propfind"},
+			Prop:    propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}},
+		},
+	}, {
+		desc: "propfind: prop with ignored comments",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:prop>\n" +
+			"    <!-- ignore -->\n" +
+			"    <A:displayname><!-- ignore --></A:displayname>\n" +
+			"  </A:prop>\n" +
+			"</A:propfind>",
+		wantPF: propfind{
+			XMLName: xml.Name{Space: "DAV:", Local: "propfind"},
+			Prop:    propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}},
+		},
+	}, {
+		desc: "propfind: propfind with ignored whitespace",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:prop>   <A:displayname/></A:prop>\n" +
+			"</A:propfind>",
+		wantPF: propfind{
+			XMLName: xml.Name{Space: "DAV:", Local: "propfind"},
+			Prop:    propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}},
+		},
+	}, {
+		desc: "propfind: propfind with ignored mixed-content",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:prop>foo<A:displayname/>bar</A:prop>\n" +
+			"</A:propfind>",
+		wantPF: propfind{
+			XMLName: xml.Name{Space: "DAV:", Local: "propfind"},
+			Prop:    propfindProps{xml.Name{Space: "DAV:", Local: "displayname"}},
+		},
+	}, {
+		desc: "propfind: propname with ignored element (section A.4)",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:propname/>\n" +
+			"  <E:leave-out xmlns:E='E:'>*boss*</E:leave-out>\n" +
+			"</A:propfind>",
+		wantPF: propfind{
+			XMLName:  xml.Name{Space: "DAV:", Local: "propfind"},
+			Propname: new(struct{}),
+		},
+	}, {
+		desc:       "propfind: bad: junk",
+		input:      "xxx",
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "propfind: bad: propname and allprop (section A.3)",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:propname/>" +
+			"  <A:allprop/>" +
+			"</A:propfind>",
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "propfind: bad: propname and prop",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:prop><A:displayname/></A:prop>\n" +
+			"  <A:propname/>\n" +
+			"</A:propfind>",
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "propfind: bad: allprop and prop",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:allprop/>\n" +
+			"  <A:prop><A:foo/><A:/prop>\n" +
+			"</A:propfind>",
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "propfind: bad: empty propfind with ignored element (section A.4)",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <E:expired-props/>\n" +
+			"</A:propfind>",
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "propfind: bad: empty prop",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:prop/>\n" +
+			"</A:propfind>",
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "propfind: bad: prop with just chardata",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:prop>foo</A:prop>\n" +
+			"</A:propfind>",
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "bad: interrupted prop",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:prop><A:foo></A:prop>\n",
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "bad: malformed end element prop",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:prop><A:foo/></A:bar></A:prop>\n",
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "propfind: bad: property with chardata value",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:prop><A:foo>bar</A:foo></A:prop>\n" +
+			"</A:propfind>",
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "propfind: bad: property with whitespace value",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:prop><A:foo> </A:foo></A:prop>\n" +
+			"</A:propfind>",
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "propfind: bad: include without allprop",
+		input: "" +
+			"<A:propfind xmlns:A='DAV:'>\n" +
+			"  <A:include><A:foo/></A:include>\n" +
+			"</A:propfind>",
+		wantStatus: http.StatusBadRequest,
+	}}
+
+	for _, tc := range testCases {
+		pf, status, err := readPropfind(strings.NewReader(tc.input))
+		if tc.wantStatus != 0 {
+			if err == nil {
+				t.Errorf("%s: got nil error, want non-nil", tc.desc)
+				continue
+			}
+		} else if err != nil {
+			t.Errorf("%s: %v", tc.desc, err)
+			continue
+		}
+		if !reflect.DeepEqual(pf, tc.wantPF) || status != tc.wantStatus {
+			t.Errorf("%s:\ngot  propfind=%v, status=%v\nwant propfind=%v, status=%v",
+				tc.desc, pf, status, tc.wantPF, tc.wantStatus)
+			continue
+		}
+	}
+}
+
+func TestMultistatusWriter(t *testing.T) {
+	if go1Dot4 {
+		t.Skip("TestMultistatusWriter requires Go version 1.5 or greater")
+	}
+
+	///The "section x.y.z" test cases come from section x.y.z of the spec at
+	// http://www.webdav.org/specs/rfc4918.html
+	testCases := []struct {
+		desc        string
+		responses   []response
+		respdesc    string
+		writeHeader bool
+		wantXML     string
+		wantCode    int
+		wantErr     error
+	}{{
+		desc: "section 9.2.2 (failed dependency)",
+		responses: []response{{
+			Href: []string{"http://example.com/foo"},
+			Propstat: []propstat{{
+				Prop: []Property{{
+					XMLName: xml.Name{
+						Space: "http://ns.example.com/",
+						Local: "Authors",
+					},
+				}},
+				Status: "HTTP/1.1 424 Failed Dependency",
+			}, {
+				Prop: []Property{{
+					XMLName: xml.Name{
+						Space: "http://ns.example.com/",
+						Local: "Copyright-Owner",
+					},
+				}},
+				Status: "HTTP/1.1 409 Conflict",
+			}},
+			ResponseDescription: "Copyright Owner cannot be deleted or altered.",
+		}},
+		wantXML: `` +
+			`<?xml version="1.0" encoding="UTF-8"?>` +
+			`<multistatus xmlns="DAV:">` +
+			`  <response>` +
+			`    <href>http://example.com/foo</href>` +
+			`    <propstat>` +
+			`      <prop>` +
+			`        <Authors xmlns="http://ns.example.com/"></Authors>` +
+			`      </prop>` +
+			`      <status>HTTP/1.1 424 Failed Dependency</status>` +
+			`    </propstat>` +
+			`    <propstat xmlns="DAV:">` +
+			`      <prop>` +
+			`        <Copyright-Owner xmlns="http://ns.example.com/"></Copyright-Owner>` +
+			`      </prop>` +
+			`      <status>HTTP/1.1 409 Conflict</status>` +
+			`    </propstat>` +
+			`  <responsedescription>Copyright Owner cannot be deleted or altered.</responsedescription>` +
+			`</response>` +
+			`</multistatus>`,
+		wantCode: StatusMulti,
+	}, {
+		desc: "section 9.6.2 (lock-token-submitted)",
+		responses: []response{{
+			Href:   []string{"http://example.com/foo"},
+			Status: "HTTP/1.1 423 Locked",
+			Error: &xmlError{
+				InnerXML: []byte(`<lock-token-submitted xmlns="DAV:"/>`),
+			},
+		}},
+		wantXML: `` +
+			`<?xml version="1.0" encoding="UTF-8"?>` +
+			`<multistatus xmlns="DAV:">` +
+			`  <response>` +
+			`    <href>http://example.com/foo</href>` +
+			`    <status>HTTP/1.1 423 Locked</status>` +
+			`    <error><lock-token-submitted xmlns="DAV:"/></error>` +
+			`  </response>` +
+			`</multistatus>`,
+		wantCode: StatusMulti,
+	}, {
+		desc: "section 9.1.3",
+		responses: []response{{
+			Href: []string{"http://example.com/foo"},
+			Propstat: []propstat{{
+				Prop: []Property{{
+					XMLName: xml.Name{Space: "http://ns.example.com/boxschema/", Local: "bigbox"},
+					InnerXML: []byte(`` +
+						`<BoxType xmlns="http://ns.example.com/boxschema/">` +
+						`Box type A` +
+						`</BoxType>`),
+				}, {
+					XMLName: xml.Name{Space: "http://ns.example.com/boxschema/", Local: "author"},
+					InnerXML: []byte(`` +
+						`<Name xmlns="http://ns.example.com/boxschema/">` +
+						`J.J. Johnson` +
+						`</Name>`),
+				}},
+				Status: "HTTP/1.1 200 OK",
+			}, {
+				Prop: []Property{{
+					XMLName: xml.Name{Space: "http://ns.example.com/boxschema/", Local: "DingALing"},
+				}, {
+					XMLName: xml.Name{Space: "http://ns.example.com/boxschema/", Local: "Random"},
+				}},
+				Status:              "HTTP/1.1 403 Forbidden",
+				ResponseDescription: "The user does not have access to the DingALing property.",
+			}},
+		}},
+		respdesc: "There has been an access violation error.",
+		wantXML: `` +
+			`<?xml version="1.0" encoding="UTF-8"?>` +
+			`<multistatus xmlns="DAV:" xmlns:B="http://ns.example.com/boxschema/">` +
+			`  <response>` +
+			`    <href>http://example.com/foo</href>` +
+			`    <propstat>` +
+			`      <prop>` +
+			`        <B:bigbox><B:BoxType>Box type A</B:BoxType></B:bigbox>` +
+			`        <B:author><B:Name>J.J. Johnson</B:Name></B:author>` +
+			`      </prop>` +
+			`      <status>HTTP/1.1 200 OK</status>` +
+			`    </propstat>` +
+			`    <propstat>` +
+			`      <prop>` +
+			`        <B:DingALing/>` +
+			`        <B:Random/>` +
+			`      </prop>` +
+			`      <status>HTTP/1.1 403 Forbidden</status>` +
+			`      <responsedescription>The user does not have access to the DingALing property.</responsedescription>` +
+			`    </propstat>` +
+			`  </response>` +
+			`  <responsedescription>There has been an access violation error.</responsedescription>` +
+			`</multistatus>`,
+		wantCode: StatusMulti,
+	}, {
+		desc: "no response written",
+		// default of http.responseWriter
+		wantCode: http.StatusOK,
+	}, {
+		desc:     "no response written (with description)",
+		respdesc: "too bad",
+		// default of http.responseWriter
+		wantCode: http.StatusOK,
+	}, {
+		desc:        "empty multistatus with header",
+		writeHeader: true,
+		wantXML:     `<multistatus xmlns="DAV:"></multistatus>`,
+		wantCode:    StatusMulti,
+	}, {
+		desc: "bad: no href",
+		responses: []response{{
+			Propstat: []propstat{{
+				Prop: []Property{{
+					XMLName: xml.Name{
+						Space: "http://example.com/",
+						Local: "foo",
+					},
+				}},
+				Status: "HTTP/1.1 200 OK",
+			}},
+		}},
+		wantErr: errInvalidResponse,
+		// default of http.responseWriter
+		wantCode: http.StatusOK,
+	}, {
+		desc: "bad: multiple hrefs and no status",
+		responses: []response{{
+			Href: []string{"http://example.com/foo", "http://example.com/bar"},
+		}},
+		wantErr: errInvalidResponse,
+		// default of http.responseWriter
+		wantCode: http.StatusOK,
+	}, {
+		desc: "bad: one href and no propstat",
+		responses: []response{{
+			Href: []string{"http://example.com/foo"},
+		}},
+		wantErr: errInvalidResponse,
+		// default of http.responseWriter
+		wantCode: http.StatusOK,
+	}, {
+		desc: "bad: status with one href and propstat",
+		responses: []response{{
+			Href: []string{"http://example.com/foo"},
+			Propstat: []propstat{{
+				Prop: []Property{{
+					XMLName: xml.Name{
+						Space: "http://example.com/",
+						Local: "foo",
+					},
+				}},
+				Status: "HTTP/1.1 200 OK",
+			}},
+			Status: "HTTP/1.1 200 OK",
+		}},
+		wantErr: errInvalidResponse,
+		// default of http.responseWriter
+		wantCode: http.StatusOK,
+	}, {
+		desc: "bad: multiple hrefs and propstat",
+		responses: []response{{
+			Href: []string{
+				"http://example.com/foo",
+				"http://example.com/bar",
+			},
+			Propstat: []propstat{{
+				Prop: []Property{{
+					XMLName: xml.Name{
+						Space: "http://example.com/",
+						Local: "foo",
+					},
+				}},
+				Status: "HTTP/1.1 200 OK",
+			}},
+		}},
+		wantErr: errInvalidResponse,
+		// default of http.responseWriter
+		wantCode: http.StatusOK,
+	}}
+
+	n := xmlNormalizer{omitWhitespace: true}
+loop:
+	for _, tc := range testCases {
+		rec := httptest.NewRecorder()
+		w := multistatusWriter{w: rec, responseDescription: tc.respdesc}
+		if tc.writeHeader {
+			if err := w.writeHeader(); err != nil {
+				t.Errorf("%s: got writeHeader error %v, want nil", tc.desc, err)
+				continue
+			}
+		}
+		for _, r := range tc.responses {
+			if err := w.write(&r); err != nil {
+				if err != tc.wantErr {
+					t.Errorf("%s: got write error %v, want %v",
+						tc.desc, err, tc.wantErr)
+				}
+				continue loop
+			}
+		}
+		if err := w.close(); err != tc.wantErr {
+			t.Errorf("%s: got close error %v, want %v",
+				tc.desc, err, tc.wantErr)
+			continue
+		}
+		if rec.Code != tc.wantCode {
+			t.Errorf("%s: got HTTP status code %d, want %d\n",
+				tc.desc, rec.Code, tc.wantCode)
+			continue
+		}
+		gotXML := rec.Body.String()
+		eq, err := n.equalXML(strings.NewReader(gotXML), strings.NewReader(tc.wantXML))
+		if err != nil {
+			t.Errorf("%s: equalXML: %v", tc.desc, err)
+			continue
+		}
+		if !eq {
+			t.Errorf("%s: XML body\ngot  %s\nwant %s", tc.desc, gotXML, tc.wantXML)
+		}
+	}
+}
+
+func TestReadProppatch(t *testing.T) {
+	ppStr := func(pps []Proppatch) string {
+		var outer []string
+		for _, pp := range pps {
+			var inner []string
+			for _, p := range pp.Props {
+				inner = append(inner, fmt.Sprintf("{XMLName: %q, Lang: %q, InnerXML: %q}",
+					p.XMLName, p.Lang, p.InnerXML))
+			}
+			outer = append(outer, fmt.Sprintf("{Remove: %t, Props: [%s]}",
+				pp.Remove, strings.Join(inner, ", ")))
+		}
+		return "[" + strings.Join(outer, ", ") + "]"
+	}
+
+	testCases := []struct {
+		desc       string
+		input      string
+		wantPP     []Proppatch
+		wantStatus int
+	}{{
+		desc: "proppatch: section 9.2 (with simple property value)",
+		input: `` +
+			`<?xml version="1.0" encoding="utf-8" ?>` +
+			`<D:propertyupdate xmlns:D="DAV:"` +
+			`                  xmlns:Z="http://ns.example.com/z/">` +
+			`    <D:set>` +
+			`         <D:prop><Z:Authors>somevalue</Z:Authors></D:prop>` +
+			`    </D:set>` +
+			`    <D:remove>` +
+			`         <D:prop><Z:Copyright-Owner/></D:prop>` +
+			`    </D:remove>` +
+			`</D:propertyupdate>`,
+		wantPP: []Proppatch{{
+			Props: []Property{{
+				xml.Name{Space: "http://ns.example.com/z/", Local: "Authors"},
+				"",
+				[]byte(`somevalue`),
+			}},
+		}, {
+			Remove: true,
+			Props: []Property{{
+				xml.Name{Space: "http://ns.example.com/z/", Local: "Copyright-Owner"},
+				"",
+				nil,
+			}},
+		}},
+	}, {
+		desc: "proppatch: lang attribute on prop",
+		input: `` +
+			`<?xml version="1.0" encoding="utf-8" ?>` +
+			`<D:propertyupdate xmlns:D="DAV:">` +
+			`    <D:set>` +
+			`         <D:prop xml:lang="en">` +
+			`              <foo xmlns="http://example.com/ns"/>` +
+			`         </D:prop>` +
+			`    </D:set>` +
+			`</D:propertyupdate>`,
+		wantPP: []Proppatch{{
+			Props: []Property{{
+				xml.Name{Space: "http://example.com/ns", Local: "foo"},
+				"en",
+				nil,
+			}},
+		}},
+	}, {
+		desc: "bad: remove with value",
+		input: `` +
+			`<?xml version="1.0" encoding="utf-8" ?>` +
+			`<D:propertyupdate xmlns:D="DAV:"` +
+			`                  xmlns:Z="http://ns.example.com/z/">` +
+			`    <D:remove>` +
+			`         <D:prop>` +
+			`              <Z:Authors>` +
+			`              <Z:Author>Jim Whitehead</Z:Author>` +
+			`              </Z:Authors>` +
+			`         </D:prop>` +
+			`    </D:remove>` +
+			`</D:propertyupdate>`,
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "bad: empty propertyupdate",
+		input: `` +
+			`<?xml version="1.0" encoding="utf-8" ?>` +
+			`<D:propertyupdate xmlns:D="DAV:"` +
+			`</D:propertyupdate>`,
+		wantStatus: http.StatusBadRequest,
+	}, {
+		desc: "bad: empty prop",
+		input: `` +
+			`<?xml version="1.0" encoding="utf-8" ?>` +
+			`<D:propertyupdate xmlns:D="DAV:"` +
+			`                  xmlns:Z="http://ns.example.com/z/">` +
+			`    <D:remove>` +
+			`        <D:prop/>` +
+			`    </D:remove>` +
+			`</D:propertyupdate>`,
+		wantStatus: http.StatusBadRequest,
+	}}
+
+	for _, tc := range testCases {
+		pp, status, err := readProppatch(strings.NewReader(tc.input))
+		if tc.wantStatus != 0 {
+			if err == nil {
+				t.Errorf("%s: got nil error, want non-nil", tc.desc)
+				continue
+			}
+		} else if err != nil {
+			t.Errorf("%s: %v", tc.desc, err)
+			continue
+		}
+		if status != tc.wantStatus {
+			t.Errorf("%s: got status %d, want %d", tc.desc, status, tc.wantStatus)
+			continue
+		}
+		if !reflect.DeepEqual(pp, tc.wantPP) || status != tc.wantStatus {
+			t.Errorf("%s: proppatch\ngot  %v\nwant %v", tc.desc, ppStr(pp), ppStr(tc.wantPP))
+		}
+	}
+}
+
+func TestUnmarshalXMLValue(t *testing.T) {
+	testCases := []struct {
+		desc    string
+		input   string
+		wantVal string
+	}{{
+		desc:    "simple char data",
+		input:   "<root>foo</root>",
+		wantVal: "foo",
+	}, {
+		desc:    "empty element",
+		input:   "<root><foo/></root>",
+		wantVal: "<foo/>",
+	}, {
+		desc:    "preserve namespace",
+		input:   `<root><foo xmlns="bar"/></root>`,
+		wantVal: `<foo xmlns="bar"/>`,
+	}, {
+		desc:    "preserve root element namespace",
+		input:   `<root xmlns:bar="bar"><bar:foo/></root>`,
+		wantVal: `<foo xmlns="bar"/>`,
+	}, {
+		desc:    "preserve whitespace",
+		input:   "<root>  \t </root>",
+		wantVal: "  \t ",
+	}, {
+		desc:    "preserve mixed content",
+		input:   `<root xmlns="bar">  <foo>a<bam xmlns="baz"/> </foo> </root>`,
+		wantVal: `  <foo xmlns="bar">a<bam xmlns="baz"/> </foo> `,
+	}, {
+		desc: "section 9.2",
+		input: `` +
+			`<Z:Authors xmlns:Z="http://ns.example.com/z/">` +
+			`  <Z:Author>Jim Whitehead</Z:Author>` +
+			`  <Z:Author>Roy Fielding</Z:Author>` +
+			`</Z:Authors>`,
+		wantVal: `` +
+			`  <Author xmlns="http://ns.example.com/z/">Jim Whitehead</Author>` +
+			`  <Author xmlns="http://ns.example.com/z/">Roy Fielding</Author>`,
+	}, {
+		desc: "section 4.3.1 (mixed content)",
+		input: `` +
+			`<x:author ` +
+			`    xmlns:x='http://example.com/ns' ` +
+			`    xmlns:D="DAV:">` +
+			`  <x:name>Jane Doe</x:name>` +
+			`  <!-- Jane's contact info -->` +
+			`  <x:uri type='email'` +
+			`         added='2005-11-26'>mailto:jane.doe@example.com</x:uri>` +
+			`  <x:uri type='web'` +
+			`         added='2005-11-27'>http://www.example.com</x:uri>` +
+			`  <x:notes xmlns:h='http://www.w3.org/1999/xhtml'>` +
+			`    Jane has been working way <h:em>too</h:em> long on the` +
+			`    long-awaited revision of <![CDATA[<RFC2518>]]>.` +
+			`  </x:notes>` +
+			`</x:author>`,
+		wantVal: `` +
+			`  <name xmlns="http://example.com/ns">Jane Doe</name>` +
+			`  ` +
+			`  <uri type='email'` +
+			`       xmlns="http://example.com/ns" ` +
+			`       added='2005-11-26'>mailto:jane.doe@example.com</uri>` +
+			`  <uri added='2005-11-27'` +
+			`       type='web'` +
+			`       xmlns="http://example.com/ns">http://www.example.com</uri>` +
+			`  <notes xmlns="http://example.com/ns" ` +
+			`         xmlns:h="http://www.w3.org/1999/xhtml">` +
+			`    Jane has been working way <h:em>too</h:em> long on the` +
+			`    long-awaited revision of &lt;RFC2518&gt;.` +
+			`  </notes>`,
+	}}
+
+	var n xmlNormalizer
+	for _, tc := range testCases {
+		d := xml.NewDecoder(strings.NewReader(tc.input))
+		var v xmlValue
+		if err := d.Decode(&v); err != nil {
+			t.Errorf("%s: got error %v, want nil", tc.desc, err)
+			continue
+		}
+		eq, err := n.equalXML(bytes.NewReader(v), strings.NewReader(tc.wantVal))
+		if err != nil {
+			t.Errorf("%s: equalXML: %v", tc.desc, err)
+			continue
+		}
+		if !eq {
+			t.Errorf("%s:\ngot  %s\nwant %s", tc.desc, string(v), tc.wantVal)
+		}
+	}
+}
+
+// xmlNormalizer normalizes XML.
+type xmlNormalizer struct {
+	// omitWhitespace instructs to ignore whitespace between element tags.
+	omitWhitespace bool
+	// omitComments instructs to ignore XML comments.
+	omitComments bool
+}
+
+// normalize writes the normalized XML content of r to w. It applies the
+// following rules
+//
+//     * Rename namespace prefixes according to an internal heuristic.
+//     * Remove unnecessary namespace declarations.
+//     * Sort attributes in XML start elements in lexical order of their
+//       fully qualified name.
+//     * Remove XML directives and processing instructions.
+//     * Remove CDATA between XML tags that only contains whitespace, if
+//       instructed to do so.
+//     * Remove comments, if instructed to do so.
+//
+func (n *xmlNormalizer) normalize(w io.Writer, r io.Reader) error {
+	d := xml.NewDecoder(r)
+	e := xml.NewEncoder(w)
+	for {
+		t, err := d.Token()
+		if err != nil {
+			if t == nil && err == io.EOF {
+				break
+			}
+			return err
+		}
+		switch val := t.(type) {
+		case xml.Directive, xml.ProcInst:
+			continue
+		case xml.Comment:
+			if n.omitComments {
+				continue
+			}
+		case xml.CharData:
+			if n.omitWhitespace && len(bytes.TrimSpace(val)) == 0 {
+				continue
+			}
+		case xml.StartElement:
+			start, _ := xml.CopyToken(val).(xml.StartElement)
+			attr := start.Attr[:0]
+			for _, a := range start.Attr {
+				if a.Name.Space == "xmlns" || a.Name.Local == "xmlns" {
+					continue
+				}
+				attr = append(attr, a)
+			}
+			sort.Sort(byName(attr))
+			start.Attr = attr
+			t = start
+		}
+		err = e.EncodeToken(t)
+		if err != nil {
+			return err
+		}
+	}
+	return e.Flush()
+}
+
+// equalXML tests for equality of the normalized XML contents of a and b.
+func (n *xmlNormalizer) equalXML(a, b io.Reader) (bool, error) {
+	var buf bytes.Buffer
+	if err := n.normalize(&buf, a); err != nil {
+		return false, err
+	}
+	normA := buf.String()
+	buf.Reset()
+	if err := n.normalize(&buf, b); err != nil {
+		return false, err
+	}
+	normB := buf.String()
+	return normA == normB, nil
+}
+
+type byName []xml.Attr
+
+func (a byName) Len() int      { return len(a) }
+func (a byName) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
+func (a byName) Less(i, j int) bool {
+	if a[i].Name.Space != a[j].Name.Space {
+		return a[i].Name.Space < a[j].Name.Space
+	}
+	return a[i].Name.Local < a[j].Name.Local
+}
diff --git a/go/src/golang.org/x/net/websocket/client.go b/go/src/golang.org/x/net/websocket/client.go
index a861bb9..20d1e1e 100644
--- a/go/src/golang.org/x/net/websocket/client.go
+++ b/go/src/golang.org/x/net/websocket/client.go
@@ -64,6 +64,20 @@
 	return DialConfig(config)
 }
 
+var portMap = map[string]string{
+	"ws":  "80",
+	"wss": "443",
+}
+
+func parseAuthority(location *url.URL) string {
+	if _, ok := portMap[location.Scheme]; ok {
+		if _, _, err := net.SplitHostPort(location.Host); err != nil {
+			return net.JoinHostPort(location.Host, portMap[location.Scheme])
+		}
+	}
+	return location.Host
+}
+
 // DialConfig opens a new client connection to a WebSocket with a config.
 func DialConfig(config *Config) (ws *Conn, err error) {
 	var client net.Conn
@@ -75,10 +89,10 @@
 	}
 	switch config.Location.Scheme {
 	case "ws":
-		client, err = net.Dial("tcp", config.Location.Host)
+		client, err = net.Dial("tcp", parseAuthority(config.Location))
 
 	case "wss":
-		client, err = tls.Dial("tcp", config.Location.Host, config.TlsConfig)
+		client, err = tls.Dial("tcp", parseAuthority(config.Location), config.TlsConfig)
 
 	default:
 		err = ErrBadScheme
@@ -89,6 +103,7 @@
 
 	ws, err = NewClient(config, client)
 	if err != nil {
+		client.Close()
 		goto Error
 	}
 	return
diff --git a/go/src/golang.org/x/net/websocket/server.go b/go/src/golang.org/x/net/websocket/server.go
index 7032213..33f99b1 100644
--- a/go/src/golang.org/x/net/websocket/server.go
+++ b/go/src/golang.org/x/net/websocket/server.go
@@ -95,8 +95,8 @@
 // You might want to verify websocket.Conn.Config().Origin in the func.
 // If you use Server instead of Handler, you could call websocket.Origin and
 // check the origin in your Handshake func. So, if you want to accept
-// non-browser client, which doesn't send Origin header, you could use Server
-//. that doesn't check origin in its Handshake.
+// non-browser clients, which do not send an Origin header, set a
+// Server.Handshake that does not check the origin.
 type Handler func(*Conn)
 
 func checkOrigin(config *Config, req *http.Request) (err error) {
diff --git a/go/src/golang.org/x/net/websocket/websocket.go b/go/src/golang.org/x/net/websocket/websocket.go
index b8d2e6d..6068400 100644
--- a/go/src/golang.org/x/net/websocket/websocket.go
+++ b/go/src/golang.org/x/net/websocket/websocket.go
@@ -216,10 +216,11 @@
 // Close implements the io.Closer interface.
 func (ws *Conn) Close() error {
 	err := ws.frameHandler.WriteClose(ws.defaultCloseStatus)
+	err1 := ws.rwc.Close()
 	if err != nil {
 		return err
 	}
-	return ws.rwc.Close()
+	return err1
 }
 
 func (ws *Conn) IsClientConn() bool { return ws.request == nil }
diff --git a/go/src/golang.org/x/net/websocket/websocket_test.go b/go/src/golang.org/x/net/websocket/websocket_test.go
index 48f14b6..725a79f 100644
--- a/go/src/golang.org/x/net/websocket/websocket_test.go
+++ b/go/src/golang.org/x/net/websocket/websocket_test.go
@@ -16,6 +16,7 @@
 	"strings"
 	"sync"
 	"testing"
+	"time"
 )
 
 var serverAddr string
@@ -339,3 +340,113 @@
 	}
 	conn.Close()
 }
+
+var parseAuthorityTests = []struct {
+	in  *url.URL
+	out string
+}{
+	{
+		&url.URL{
+			Scheme: "ws",
+			Host:   "www.google.com",
+		},
+		"www.google.com:80",
+	},
+	{
+		&url.URL{
+			Scheme: "wss",
+			Host:   "www.google.com",
+		},
+		"www.google.com:443",
+	},
+	{
+		&url.URL{
+			Scheme: "ws",
+			Host:   "www.google.com:80",
+		},
+		"www.google.com:80",
+	},
+	{
+		&url.URL{
+			Scheme: "wss",
+			Host:   "www.google.com:443",
+		},
+		"www.google.com:443",
+	},
+	// some invalid ones for parseAuthority. parseAuthority doesn't
+	// concern itself with the scheme unless it actually knows about it
+	{
+		&url.URL{
+			Scheme: "http",
+			Host:   "www.google.com",
+		},
+		"www.google.com",
+	},
+	{
+		&url.URL{
+			Scheme: "http",
+			Host:   "www.google.com:80",
+		},
+		"www.google.com:80",
+	},
+	{
+		&url.URL{
+			Scheme: "asdf",
+			Host:   "127.0.0.1",
+		},
+		"127.0.0.1",
+	},
+	{
+		&url.URL{
+			Scheme: "asdf",
+			Host:   "www.google.com",
+		},
+		"www.google.com",
+	},
+}
+
+func TestParseAuthority(t *testing.T) {
+	for _, tt := range parseAuthorityTests {
+		out := parseAuthority(tt.in)
+		if out != tt.out {
+			t.Errorf("got %v; want %v", out, tt.out)
+		}
+	}
+}
+
+type closerConn struct {
+	net.Conn
+	closed int // count of the number of times Close was called
+}
+
+func (c *closerConn) Close() error {
+	c.closed++
+	return c.Conn.Close()
+}
+
+func TestClose(t *testing.T) {
+	once.Do(startServer)
+
+	conn, err := net.Dial("tcp", serverAddr)
+	if err != nil {
+		t.Fatal("dialing", err)
+	}
+
+	cc := closerConn{Conn: conn}
+
+	client, err := NewClient(newConfig(t, "/echo"), &cc)
+	if err != nil {
+		t.Fatalf("WebSocket handshake: %v", err)
+	}
+
+	// set the deadline to ten minutes ago, which will have expired by the time
+	// client.Close sends the close status frame.
+	conn.SetDeadline(time.Now().Add(-10 * time.Minute))
+
+	if err := client.Close(); err == nil {
+		t.Errorf("ws.Close(): expected error, got %v", err)
+	}
+	if cc.closed < 1 {
+		t.Fatalf("ws.Close(): expected underlying ws.rwc.Close to be called > 0 times, got: %v", cc.closed)
+	}
+}